chore: Enable more lint rules, disable some that trigger a lot. Will clean up later.

This commit is contained in:
cpojer
2026-01-31 16:03:28 +09:00
parent 481f696a87
commit 15792b153f
292 changed files with 643 additions and 699 deletions

View File

@@ -95,14 +95,14 @@ async function createLocalEmbeddingProvider(
embedQuery: async (text) => {
const ctx = await ensureContext();
const embedding = await ctx.getEmbeddingFor(text);
return Array.from(embedding.vector) as number[];
return Array.from(embedding.vector);
},
embedBatch: async (texts) => {
const ctx = await ensureContext();
const embeddings = await Promise.all(
texts.map(async (text) => {
const embedding = await ctx.getEmbeddingFor(text);
return Array.from(embedding.vector) as number[];
return Array.from(embedding.vector);
}),
);
return embeddings;
@@ -155,7 +155,7 @@ export async function createEmbeddingProvider(
missingKeyErrors.push(message);
continue;
}
throw new Error(message);
throw new Error(message, { cause: err });
}
}
@@ -181,10 +181,14 @@ export async function createEmbeddingProvider(
fallbackReason: reason,
};
} catch (fallbackErr) {
throw new Error(`${reason}\n\nFallback to ${fallback} failed: ${formatError(fallbackErr)}`);
throw new Error(
`${reason}\n\nFallback to ${fallback} failed: ${formatError(fallbackErr)}`,
{ cause: primaryErr },
{ cause: fallbackErr },
);
}
}
throw new Error(reason);
throw new Error(reason, { cause: primaryErr });
}
}

View File

@@ -107,5 +107,5 @@ export function mergeHybridResults(params: {
};
});
return merged.sort((a, b) => b.score - a.score);
return merged.toSorted((a, b) => b.score - a.score);
}

View File

@@ -12,8 +12,8 @@ export function computeMemoryManagerCacheKey(params: {
const fingerprint = hashText(
JSON.stringify({
enabled: settings.enabled,
sources: [...settings.sources].sort((a, b) => a.localeCompare(b)),
extraPaths: [...settings.extraPaths].sort((a, b) => a.localeCompare(b)),
sources: [...settings.sources].toSorted((a, b) => a.localeCompare(b)),
extraPaths: [...settings.extraPaths].toSorted((a, b) => a.localeCompare(b)),
provider: settings.provider,
model: settings.model,
fallback: settings.fallback,

View File

@@ -79,7 +79,7 @@ export async function searchVector(params: {
}))
.filter((entry) => Number.isFinite(entry.score));
return scored
.sort((a, b) => b.score - a.score)
.toSorted((a, b) => b.score - a.score)
.slice(0, params.limit)
.map((entry) => ({
id: entry.chunk.id,

View File

@@ -1730,7 +1730,7 @@ export class MemoryIndexManager {
if (this.provider.id === "openai" && this.openAi) {
const entries = Object.entries(this.openAi.headers)
.filter(([key]) => key.toLowerCase() !== "authorization")
.sort(([a], [b]) => a.localeCompare(b))
.toSorted(([a], [b]) => a.localeCompare(b))
.map(([key, value]) => [key, value]);
return hashText(
JSON.stringify({
@@ -1747,7 +1747,7 @@ export class MemoryIndexManager {
const lower = key.toLowerCase();
return lower !== "authorization" && lower !== "x-goog-api-key";
})
.sort(([a], [b]) => a.localeCompare(b))
.toSorted(([a], [b]) => a.localeCompare(b))
.map(([key, value]) => [key, value]);
return hashText(
JSON.stringify({

View File

@@ -4,7 +4,7 @@ export function resolveMemoryVectorState(vector: { enabled: boolean; available?:
tone: Tone;
state: "ready" | "unavailable" | "disabled" | "unknown";
} {
if (vector.enabled === false) return { tone: "muted", state: "disabled" };
if (!vector.enabled) return { tone: "muted", state: "disabled" };
if (vector.available === true) return { tone: "ok", state: "ready" };
if (vector.available === false) return { tone: "warn", state: "unavailable" };
return { tone: "muted", state: "unknown" };
@@ -14,7 +14,7 @@ export function resolveMemoryFtsState(fts: { enabled: boolean; available: boolea
tone: Tone;
state: "ready" | "unavailable" | "disabled";
} {
if (fts.enabled === false) return { tone: "muted", state: "disabled" };
if (!fts.enabled) return { tone: "muted", state: "disabled" };
return fts.available ? { tone: "ok", state: "ready" } : { tone: "warn", state: "unavailable" };
}