@massa-ai/core 1.57.0 → 1.58.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data/symbol/symbol-repo-workspace.d.ts +17 -0
- package/dist/data/symbol/symbol-repo-workspace.d.ts.map +1 -1
- package/dist/data/symbol/symbol-repo-workspace.js +29 -0
- package/dist/data/symbol/symbol-repo-workspace.js.map +1 -1
- package/dist/generated/prisma/edge.js +5 -4
- package/dist/generated/prisma/index-browser.js +1 -0
- package/dist/generated/prisma/index.d.ts +71 -1
- package/dist/generated/prisma/index.js +5 -4
- package/dist/generated/prisma/package.json +1 -1
- package/dist/generated/prisma/schema.prisma +3 -0
- package/dist/kernel/inference-probe.d.ts +18 -0
- package/dist/kernel/inference-probe.d.ts.map +1 -0
- package/dist/kernel/inference-probe.js +34 -0
- package/dist/kernel/inference-probe.js.map +1 -0
- package/dist/services/embeddings/config.d.ts +11 -0
- package/dist/services/embeddings/config.d.ts.map +1 -1
- package/dist/services/embeddings/config.js +63 -10
- package/dist/services/embeddings/config.js.map +1 -1
- package/dist/services/embeddings/index.d.ts +10 -2
- package/dist/services/embeddings/index.d.ts.map +1 -1
- package/dist/services/embeddings/index.js.map +1 -1
- package/dist/services/etl/pipeline.d.ts.map +1 -1
- package/dist/services/etl/pipeline.js +37 -0
- package/dist/services/etl/pipeline.js.map +1 -1
- package/dist/services/health/local-health-checker.d.ts +32 -1
- package/dist/services/health/local-health-checker.d.ts.map +1 -1
- package/dist/services/health/local-health-checker.js +88 -16
- package/dist/services/health/local-health-checker.js.map +1 -1
- package/dist/services/memory/llm-client.d.ts +13 -0
- package/dist/services/memory/llm-client.d.ts.map +1 -1
- package/dist/services/memory/llm-client.js +76 -3
- package/dist/services/memory/llm-client.js.map +1 -1
- package/dist/services/search/embedding-freshness.d.ts +94 -0
- package/dist/services/search/embedding-freshness.d.ts.map +1 -0
- package/dist/services/search/embedding-freshness.js +114 -0
- package/dist/services/search/embedding-freshness.js.map +1 -0
- package/dist/services/search/ignore-patterns.d.ts +7 -0
- package/dist/services/search/ignore-patterns.d.ts.map +1 -1
- package/dist/services/search/ignore-patterns.js +9 -0
- package/dist/services/search/ignore-patterns.js.map +1 -1
- package/dist/services/search/project-indexer.d.ts +15 -1
- package/dist/services/search/project-indexer.d.ts.map +1 -1
- package/dist/services/search/project-indexer.js +40 -6
- package/dist/services/search/project-indexer.js.map +1 -1
- package/dist/services/search/search-controller.d.ts.map +1 -1
- package/dist/services/search/search-controller.js +31 -1
- package/dist/services/search/search-controller.js.map +1 -1
- package/package.json +2 -2
- package/prisma/migrations/20260919120000_add_embedding_fingerprint/migration.sql +11 -0
- package/prisma/schema.prisma +3 -0
|
@@ -1,39 +1,111 @@
|
|
|
1
1
|
/** PostgreSQL/pgvector health checks used by local system status endpoints. */
|
|
2
2
|
import { config } from "@massa-ai/shared";
|
|
3
|
-
import { requirePostgresDatabaseUrl } from "@massa-ai/shared/config";
|
|
3
|
+
import { requirePostgresDatabaseUrl, loadConfigSafe } from "@massa-ai/shared/config";
|
|
4
|
+
import { INFERENCE_PROVIDERS, } from "@massa-ai/shared/inference-providers";
|
|
5
|
+
import { probeProvider } from "../../kernel/inference-probe.js";
|
|
4
6
|
import { getPgPool } from "../../kernel/db-connection.js";
|
|
5
7
|
import fs from "fs/promises";
|
|
6
8
|
import { existsSync } from "fs";
|
|
7
9
|
import path from "path";
|
|
8
10
|
import { getSearchDiagnostics, } from "../../kernel/search-diagnostics.js";
|
|
9
11
|
export class LocalHealthChecker {
|
|
10
|
-
ollamaBaseUrl = process.env.OLLAMA_BASE_URL || "http://localhost:11434";
|
|
11
12
|
dataDir = config.get("dataDir");
|
|
13
|
+
/**
|
|
14
|
+
* `config.json`'s `embedding` block, mirroring `embeddings/config.ts`'s own
|
|
15
|
+
* `fileEmbedding` read — `config.get()`/`config.getAll()` (the `@massa-ai/shared`
|
|
16
|
+
* default export) is a *different* runtime-defaults object (`ServerConfig`)
|
|
17
|
+
* with no `embedding` key at all, so reading the provider from there would
|
|
18
|
+
* always silently resolve `undefined` rather than throw. Read defensively:
|
|
19
|
+
* an unconfigured install has no file, and this must fall back to `ollama`
|
|
20
|
+
* rather than crash the health check.
|
|
21
|
+
*/
|
|
22
|
+
fileEmbedding() {
|
|
23
|
+
try {
|
|
24
|
+
return loadConfigSafe().embedding;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/** Which local-inference provider is configured: `EMBEDDING_PROVIDER` env >
|
|
31
|
+
* `config.json`'s `embedding.provider` > `ollama` (mirrors
|
|
32
|
+
* `embeddings/config.ts`'s `selectedProvider` precedence). */
|
|
33
|
+
resolveProviderId() {
|
|
34
|
+
const provider = process.env.EMBEDDING_PROVIDER || this.fileEmbedding()?.provider;
|
|
35
|
+
return provider === "lmstudio" ? "lmstudio" : "ollama";
|
|
36
|
+
}
|
|
37
|
+
resolveProviderBaseUrl(id) {
|
|
38
|
+
const spec = INFERENCE_PROVIDERS[id];
|
|
39
|
+
const envUrl = process.env[spec.envNames.baseUrl];
|
|
40
|
+
if (envUrl)
|
|
41
|
+
return envUrl;
|
|
42
|
+
const embedding = this.fileEmbedding();
|
|
43
|
+
if (embedding?.provider === id && embedding?.baseURL)
|
|
44
|
+
return embedding.baseURL;
|
|
45
|
+
return spec.defaultEmbeddingBaseUrl;
|
|
46
|
+
}
|
|
47
|
+
resolveConfiguredEmbeddingModel(envName) {
|
|
48
|
+
const envModel = process.env[envName];
|
|
49
|
+
if (envModel)
|
|
50
|
+
return envModel;
|
|
51
|
+
const fileModel = this.fileEmbedding()?.model;
|
|
52
|
+
if (fileModel)
|
|
53
|
+
return fileModel;
|
|
54
|
+
return "nomic-embed-text:latest";
|
|
55
|
+
}
|
|
12
56
|
async checkAll() {
|
|
13
57
|
const [ollama, dataDirectory, database] = await Promise.all([this.checkOllama(), this.checkDataDirectory(), this.checkPostgres()]);
|
|
14
|
-
const services = { ollama, dataDirectory, vectorStore: database, keywordSearch: database, cache: database, embeddingCache: database };
|
|
58
|
+
const services = { ollama, inference: ollama, dataDirectory, vectorStore: database, keywordSearch: database, cache: database, embeddingCache: database };
|
|
15
59
|
const unique = [ollama, dataDirectory, database];
|
|
16
60
|
const healthy = unique.filter((status) => status.available).length;
|
|
17
61
|
const failed = unique.length - healthy;
|
|
18
62
|
const status = failed === 0 ? "healthy" : healthy > failed ? "degraded" : "unhealthy";
|
|
19
63
|
return { status, mode: "postgresql", timestamp: new Date().toISOString(), services, diagnostics: { search: getSearchDiagnostics() }, summary: { total: unique.length, healthy, degraded: 0, failed }, recommendations: this.generateRecommendations(services) };
|
|
20
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Provider-aware reachability + model-listing check, kept under the
|
|
67
|
+
* `ollama` name for compatibility (LIP-10: `services.ollama` and
|
|
68
|
+
* `GET /api/v1/system/ollama` are public surfaces, never renamed in
|
|
69
|
+
* place). Discriminates by response body shape via `probeProvider`
|
|
70
|
+
* (kernel/inference-probe.ts) rather than trusting `response.ok` — LM
|
|
71
|
+
* Studio answers HTTP 200 with `{"error": "..."}` for an Ollama-shaped
|
|
72
|
+
* endpoint, so a status-code check alone reports "Ollama healthy" against
|
|
73
|
+
* a server that is not Ollama.
|
|
74
|
+
*/
|
|
21
75
|
async checkOllama() {
|
|
22
76
|
const start = Date.now();
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
catch (error) {
|
|
35
|
-
return { available: false, latency: Date.now() - start, error: `Ollama unreachable: ${error.message}` };
|
|
77
|
+
const providerId = this.resolveProviderId();
|
|
78
|
+
const spec = INFERENCE_PROVIDERS[providerId];
|
|
79
|
+
const baseUrl = this.resolveProviderBaseUrl(providerId);
|
|
80
|
+
const result = await probeProvider(spec, baseUrl);
|
|
81
|
+
const latency = Date.now() - start;
|
|
82
|
+
if (!result.reachable) {
|
|
83
|
+
return {
|
|
84
|
+
available: false,
|
|
85
|
+
latency,
|
|
86
|
+
error: `${spec.id} ${result.reason} at ${baseUrl}`,
|
|
87
|
+
};
|
|
36
88
|
}
|
|
89
|
+
const embeddingModel = this.resolveConfiguredEmbeddingModel(spec.envNames.model);
|
|
90
|
+
return {
|
|
91
|
+
available: true,
|
|
92
|
+
latency,
|
|
93
|
+
details: {
|
|
94
|
+
provider: spec.id,
|
|
95
|
+
url: baseUrl,
|
|
96
|
+
modelsAvailable: result.models.length,
|
|
97
|
+
models: result.models,
|
|
98
|
+
embeddingModel,
|
|
99
|
+
hasEmbeddingModel: result.models.some((name) => name === embeddingModel || name.startsWith(embeddingModel.split(":")[0])),
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Neutral alias for `checkOllama` (LIP-10) — identical provider-aware
|
|
105
|
+
* probe, added beside the Ollama-branded name rather than replacing it.
|
|
106
|
+
*/
|
|
107
|
+
async checkInference() {
|
|
108
|
+
return this.checkOllama();
|
|
37
109
|
}
|
|
38
110
|
async checkDataDirectory() {
|
|
39
111
|
const start = Date.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-health-checker.js","sourceRoot":"","sources":["../../../src/services/health/local-health-checker.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"local-health-checker.js","sourceRoot":"","sources":["../../../src/services/health/local-health-checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* bootstrap; Phase 5: auto-improve; Phase 7: compression) MUST treat a
|
|
15
15
|
* `{ ok: false }` result as "fall through to the non-LLM path".
|
|
16
16
|
*/
|
|
17
|
+
import { type InferenceProviderSpec } from "@massa-ai/shared/inference-providers";
|
|
17
18
|
import { z } from "zod";
|
|
18
19
|
/**
|
|
19
20
|
* Which model role a call targets. `"instruct"` (default) selects the
|
|
@@ -55,6 +56,18 @@ export declare function _setJsonSchemaSupportedForTesting(flag: boolean | null):
|
|
|
55
56
|
/** Whether the LLM is enabled at the current config. Cheap, side-effect-free. */
|
|
56
57
|
export declare function isLlmEnabled(): boolean;
|
|
57
58
|
export declare function _setLlmEnabledForTesting(flag: boolean | null): void;
|
|
59
|
+
export declare function _setLlmBaseUrlForTesting(url: string | null): void;
|
|
60
|
+
/**
|
|
61
|
+
* Resolve which local-inference provider `llm.baseUrl` targets (design.md
|
|
62
|
+
* §4, LIP-07): the two Ollama-only behaviours below must not fire against
|
|
63
|
+
* LM Studio. Primary signal is a host:port match against each provider's
|
|
64
|
+
* `defaultLlmBaseUrl`; a baseUrl that matches none of them (custom host, or
|
|
65
|
+
* a provider's default port overridden) falls back to `embedding.provider`
|
|
66
|
+
* when it names a local-inference id, then to `ollama` — today's only
|
|
67
|
+
* behaviour, so an unresolvable baseUrl regresses to nothing.
|
|
68
|
+
* @internal
|
|
69
|
+
*/
|
|
70
|
+
export declare function resolveInferenceSpec(baseUrl: string): InferenceProviderSpec;
|
|
58
71
|
/**
|
|
59
72
|
* Best-effort `think:false` injection. Ollama's OpenAI-compat layer honors a
|
|
60
73
|
* top-level `think` field for qwen3. Wrapped fetch keeps the SDK contract
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../../src/services/memory/llm-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../../src/services/memory/llm-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,EAKL,KAAK,qBAAqB,EAC3B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;CAE3D;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,MAAM;IACnC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAWD;;;;;;GAMG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC,CA4ChE;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAE5E;AAID,iFAAiF;AACjF,wBAAgB,YAAY,IAAI,OAAO,CAOtC;AAQD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAEnE;AA+BD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEjE;AAiCD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CAoB3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,OAAO,UAAU,CAAC,KAAK,GACjC,OAAO,UAAU,CAAC,KAAK,CAgBzB;AAoBD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAgCpD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAmCpE;AAOD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAS5D;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CA0C5B;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACtB,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAuGvB;AAED;;;GAGG;AACH,eAAO,MAAM,GAAG;;;;CAIf,CAAC"}
|
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
import { generateText, generateObject } from "ai";
|
|
18
18
|
import { createOpenAI } from "@ai-sdk/openai";
|
|
19
19
|
import { config, logger, DEFAULT_LLM_MODEL } from "@massa-ai/shared";
|
|
20
|
+
import { loadConfigSafe } from "@massa-ai/shared/config";
|
|
21
|
+
import { INFERENCE_PROVIDERS, LOCAL_INFERENCE_IDS, inferenceProviderList, } from "@massa-ai/shared/inference-providers";
|
|
20
22
|
// ── json_schema constrained decoding (W7-07) ─────────────────────────────
|
|
21
23
|
/**
|
|
22
24
|
* Cached Ollama json_schema support flag. `null` = not yet checked.
|
|
@@ -36,6 +38,17 @@ export async function _checkJsonSchemaSupport() {
|
|
|
36
38
|
return _jsonSchemaSupported;
|
|
37
39
|
try {
|
|
38
40
|
const llm = getLlmConfig();
|
|
41
|
+
const spec = resolveInferenceSpec(llm.baseUrl);
|
|
42
|
+
if (!spec.supportsOllamaVersionProbe) {
|
|
43
|
+
// LM Studio (and any other non-Ollama local provider) implements the
|
|
44
|
+
// OpenAI-native response_format:{type:"json_schema"} path directly —
|
|
45
|
+
// no version handshake exists to probe, and none is needed (LIP-07).
|
|
46
|
+
_jsonSchemaSupported = true;
|
|
47
|
+
logger.info("json_schema: native support assumed (non-Ollama provider)", {
|
|
48
|
+
provider: spec.id,
|
|
49
|
+
});
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
39
52
|
// Ollama's version endpoint is at /api/version (no /v1 prefix).
|
|
40
53
|
const versionUrl = llm.baseUrl.replace(/\/v1\/?$/, "") + "/api/version";
|
|
41
54
|
const res = await fetch(versionUrl, { signal: AbortSignal.timeout(5000) });
|
|
@@ -115,6 +128,18 @@ export function _setLlmEnabledForTesting(flag) {
|
|
|
115
128
|
* Config: `MASSA_AI_LLM_DISABLE_THINK` (default `"1"`). When disabled, behavior
|
|
116
129
|
* regresses to today's (content-only) path exactly.
|
|
117
130
|
*/
|
|
131
|
+
/**
|
|
132
|
+
* Test seam: force the resolved `llm.baseUrl` without touching config or
|
|
133
|
+
* mocking `@massa-ai/shared` (this file's own test suite deliberately avoids
|
|
134
|
+
* that mock — see llm-client.test.ts's docblock — since bun's mock.module is
|
|
135
|
+
* process-wide and would collide with sibling test files). Pass `null` to
|
|
136
|
+
* clear.
|
|
137
|
+
* @internal
|
|
138
|
+
*/
|
|
139
|
+
let testBaseUrlOverride = null;
|
|
140
|
+
export function _setLlmBaseUrlForTesting(url) {
|
|
141
|
+
testBaseUrlOverride = url;
|
|
142
|
+
}
|
|
118
143
|
/** Read the llm config block with safe defaults (defensive against partial/missing config). */
|
|
119
144
|
function getLlmConfig(opts) {
|
|
120
145
|
const cfg = config.get("llm");
|
|
@@ -125,7 +150,7 @@ function getLlmConfig(opts) {
|
|
|
125
150
|
? cfg?.codeModel ?? cfg?.model ?? DEFAULT_LLM_MODEL
|
|
126
151
|
: cfg?.model ?? DEFAULT_LLM_MODEL;
|
|
127
152
|
return {
|
|
128
|
-
baseUrl: cfg?.baseUrl ?? "http://localhost:11434/v1",
|
|
153
|
+
baseUrl: testBaseUrlOverride ?? cfg?.baseUrl ?? "http://localhost:11434/v1",
|
|
129
154
|
apiKey: cfg?.apiKey ?? "ollama",
|
|
130
155
|
model,
|
|
131
156
|
temperature: cfg?.temperature ?? 0.2,
|
|
@@ -134,6 +159,47 @@ function getLlmConfig(opts) {
|
|
|
134
159
|
disableThink: cfg?.disableThink ?? true,
|
|
135
160
|
};
|
|
136
161
|
}
|
|
162
|
+
/** host:port for a URL, or `null` when it doesn't parse. */
|
|
163
|
+
function hostPort(url) {
|
|
164
|
+
try {
|
|
165
|
+
const u = new URL(url);
|
|
166
|
+
return `${u.hostname}:${u.port || (u.protocol === "https:" ? "443" : "80")}`;
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Resolve which local-inference provider `llm.baseUrl` targets (design.md
|
|
174
|
+
* §4, LIP-07): the two Ollama-only behaviours below must not fire against
|
|
175
|
+
* LM Studio. Primary signal is a host:port match against each provider's
|
|
176
|
+
* `defaultLlmBaseUrl`; a baseUrl that matches none of them (custom host, or
|
|
177
|
+
* a provider's default port overridden) falls back to `embedding.provider`
|
|
178
|
+
* when it names a local-inference id, then to `ollama` — today's only
|
|
179
|
+
* behaviour, so an unresolvable baseUrl regresses to nothing.
|
|
180
|
+
* @internal
|
|
181
|
+
*/
|
|
182
|
+
export function resolveInferenceSpec(baseUrl) {
|
|
183
|
+
const target = hostPort(baseUrl);
|
|
184
|
+
if (target) {
|
|
185
|
+
const match = inferenceProviderList().find((spec) => hostPort(spec.defaultLlmBaseUrl) === target);
|
|
186
|
+
if (match)
|
|
187
|
+
return match;
|
|
188
|
+
}
|
|
189
|
+
let embeddingProvider = process.env.EMBEDDING_PROVIDER;
|
|
190
|
+
if (!embeddingProvider) {
|
|
191
|
+
try {
|
|
192
|
+
embeddingProvider = loadConfigSafe().embedding?.provider;
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
embeddingProvider = undefined;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (embeddingProvider && LOCAL_INFERENCE_IDS.includes(embeddingProvider)) {
|
|
199
|
+
return INFERENCE_PROVIDERS[embeddingProvider];
|
|
200
|
+
}
|
|
201
|
+
return INFERENCE_PROVIDERS.ollama;
|
|
202
|
+
}
|
|
137
203
|
/**
|
|
138
204
|
* Best-effort `think:false` injection. Ollama's OpenAI-compat layer honors a
|
|
139
205
|
* top-level `think` field for qwen3. Wrapped fetch keeps the SDK contract
|
|
@@ -165,12 +231,19 @@ export function _wrapFetchDisableThink(baseFetch) {
|
|
|
165
231
|
function buildProvider(llm) {
|
|
166
232
|
// Ollama exposes an OpenAI-compatible API at /v1; createOpenAI over baseURL
|
|
167
233
|
// is sufficient (no special compatibility flag in @ai-sdk/openai v3).
|
|
234
|
+
const spec = resolveInferenceSpec(llm.baseUrl);
|
|
168
235
|
const openai = createOpenAI({
|
|
169
236
|
baseURL: llm.baseUrl,
|
|
170
237
|
apiKey: llm.apiKey,
|
|
171
|
-
...(llm.disableThink
|
|
238
|
+
...(llm.disableThink && spec.injectsDisableThink
|
|
239
|
+
? { fetch: _wrapFetchDisableThink(globalThis.fetch) }
|
|
240
|
+
: {}),
|
|
172
241
|
});
|
|
173
|
-
|
|
242
|
+
// The default callable resolves to the Responses API, which LM Studio serves
|
|
243
|
+
// while dropping `text.format` — gating json_schema on correctly still yields
|
|
244
|
+
// prose there. `.chat()` is the endpoint that honours it. See
|
|
245
|
+
// `requiresChatCompletionsApi`.
|
|
246
|
+
return spec.requiresChatCompletionsApi ? openai.chat(llm.model) : openai(llm.model);
|
|
174
247
|
}
|
|
175
248
|
/**
|
|
176
249
|
* Normalize the reasoning channel exposed by the AI SDK (v5+) into a single
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-client.js","sourceRoot":"","sources":["../../../src/services/memory/llm-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AA+BrE,4EAA4E;AAE5E;;;;GAIG;AACH,IAAI,oBAAoB,GAAmB,IAAI,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,IAAI,oBAAoB,KAAK,IAAI;QAAE,OAAO,oBAAoB,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;QAC3B,gEAAgE;QAChE,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,cAAc,CAAC;QACxE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,oBAAoB,GAAG,KAAK,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAChF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,oBAAoB,GAAG,KAAK,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACxE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;QAC3D,oBAAoB,GAAG,SAAS,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5E,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,oBAAoB,GAAG,KAAK,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,gEAAgE,EAAE;YAC5E,KAAK,EAAG,CAAW,CAAC,OAAO;SAC5B,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iCAAiC,CAAC,IAAoB;IACpE,oBAAoB,GAAG,IAAI,CAAC;AAC9B,CAAC;AAED,4EAA4E;AAE5E,iFAAiF;AACjF,MAAM,UAAU,YAAY;IAC1B,IAAI,mBAAmB,KAAK,IAAI;QAAE,OAAO,mBAAmB,CAAC;IAC7D,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,IAAI,mBAAmB,GAAmB,IAAI,CAAC;AAC/C,MAAM,UAAU,wBAAwB,CAAC,IAAoB;IAC3D,mBAAmB,GAAG,IAAI,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AAEH,+FAA+F;AAC/F,SAAS,YAAY,CAAC,IAAmC;IACvD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,EAAE,SAAS,IAAI,UAAU,CAAC;IAC3C,0EAA0E;IAC1E,kFAAkF;IAClF,MAAM,KAAK,GACT,IAAI,KAAK,MAAM;QACb,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,GAAG,EAAE,KAAK,IAAI,iBAAiB;QACnD,CAAC,CAAC,GAAG,EAAE,KAAK,IAAI,iBAAiB,CAAC;IACtC,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,2BAA2B;QACpD,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,QAAQ;QAC/B,KAAK;QACL,WAAW,EAAE,GAAG,EAAE,WAAW,IAAI,GAAG;QACpC,eAAe,EAAE,GAAG,EAAE,eAAe,IAAI,IAAI;QAC7C,SAAS,EAAE,GAAG,EAAE,SAAS,IAAI,KAAK;QAClC,YAAY,EAAE,GAAG,EAAE,YAAY,IAAI,IAAI;KACxC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAAkC;IAElC,MAAM,OAAO,GAAG,KAAK,EAAE,KAAU,EAAE,IAAU,EAAqB,EAAE;QAClE,IAAI,CAAC;YACH,IAAI,IAAI,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC;oBACjE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;oBACrB,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;QACD,OAAO,SAAS,CAAC,KAAY,EAAE,IAAW,CAAC,CAAC;IAC9C,CAAC,CAAC;IACF,OAAO,OAA6C,CAAC;AACvD,CAAC;AAED,SAAS,aAAa,CAAC,GAAoC;IACzD,4EAA4E;IAC5E,sEAAsE;IACtE,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,sBAAsB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAW;IAC1C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;IAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG;aACP,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aAChE,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC3C,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC,aAAa,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC/E,wEAAwE;IACxE,0EAA0E;IAC1E,MAAM,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,SAAS;YAChD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBAC7B,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;wBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBAC7B,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;wBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACvD,IAAI,KAAK;QAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACf,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,GAAG;gBAAE,GAAG,GAAG,KAAK,CAAC;iBAChB,IAAI,CAAC,KAAK,IAAI;gBAAE,GAAG,GAAG,IAAI,CAAC;iBAC3B,IAAI,CAAC,KAAK,GAAG;gBAAE,KAAK,GAAG,KAAK,CAAC;QACpC,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACrB,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACrB,KAAK,EAAE,CAAC;QACV,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACrB,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,GAAG,GAAG,CAAC,CAAC;gBACR,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,SAAiB;IACtC,4DAA4D;IAC5D,OAAO,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAY;IACjD,IAAI,GAAG,GAAQ,GAAG,CAAC;IACnB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,YAAY;YAAE,OAAO,IAAI,CAAC;QAClE,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,IAAI,kCAAkC,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,OAA2B,EAAE;IAE7B,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAChC,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC;YACzB,MAAM;YACN,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,eAAe,EAAE,GAAG,CAAC,eAAe;YACpC,WAAW,EAAE,aAAa,CAAC,SAAS,CAAC;SACtC,CAAC,CAAC;QACH,MAAM,IAAI,GAAI,MAAc,CAAC,IAAI,IAAI,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACtD,6DAA6D;QAC7D,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,+DAA+D,EAAE;oBAC3E,YAAY,EAAE,SAAS,CAAC,MAAM;iBAC/B,CAAC,CAAC;gBACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACxC,CAAC;YACD,4EAA4E;YAC5E,2EAA2E;YAC3E,6EAA6E;YAC7E,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;gBAC1C,YAAY,EAAE,KAAK;gBACnB,YAAY,EAAG,MAAc,EAAE,YAAY,IAAI,IAAI;aACpD,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,yDAAyD,EAAE,EAAE,CAAC,CAAC;QAC3E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;IAChE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,gDAAgD,EAAE;YAC5D,KAAK,EAAG,CAAW,CAAC,OAAO;SAC5B,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC;IACpD,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAc,EACd,MAAsB,EACtB,OAAyB,EAAE;IAE3B,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC;IAClD,IAAI,MAAM,GAAQ,IAAI,CAAC;IACvB,IAAI,CAAC;QACH,kEAAkE;QAClE,oEAAoE;QACpE,yEAAyE;QACzE,sEAAsE;QACtE,mEAAmE;QACnE,MAAM,aAAa,GAAG,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,uBAAuB,EAAE,CAAC,CAAC;QAE5E,IAAI,aAAa,EAAE,CAAC;YAClB,2EAA2E;YAC3E,0EAA0E;YAC1E,MAAM,GAAG,MAAM,cAAc,CAAC;gBAC5B,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC;gBACzB,MAAM;gBACN,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM;gBACN,UAAU,EAAE,UAAU;gBACtB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,eAAe,EAAE,GAAG,CAAC,eAAe;gBACpC,WAAW,EAAE,aAAa,CAAC,SAAS,CAAC;aACtC,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAC;YAC1D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC5C,CAAC;QAED,2EAA2E;QAC3E,yEAAyE;QACzE,qEAAqE;QACrE,MAAM,GAAG,MAAM,cAAc,CAAC;YAC5B,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC;YACzB,MAAM;YACN,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,eAAe,EAAE,GAAG,CAAC,eAAe;YACpC,WAAW,EAAE,aAAa,CAAC,SAAS,CAAC;SACtC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,kDAAkD,EAAE,EAAE,CAAC,CAAC;YACpE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;QAC7C,CAAC;QACD,8EAA8E;QAC9E,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBAC7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBAC3C,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;wBACtB,MAAM,CAAC,IAAI,CAAC,oEAAoE,EAAE;4BAChF,YAAY,EAAE,SAAS,CAAC,MAAM;yBAC/B,CAAC,CAAC;wBACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;oBAC7C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;YACnD,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SAClE,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,0CAA0C,EAAE,CAAC;IAC1E,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,6EAA6E;QAC7E,0EAA0E;QAC1E,4EAA4E;QAC5E,0EAA0E;QAC1E,yEAAyE;QACzE,6DAA6D;QAC7D,IAAI,GAAG,CAAC,YAAY,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,MAAM,SAAS,GACb,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACvF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBAC7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBAC3C,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;wBACtB,MAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE;4BAChE,YAAY,EAAE,SAAS,CAAC,MAAM;yBAC/B,CAAC,CAAC;wBACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;oBAC7C,CAAC;gBACH,CAAC;YACH,CAAC;YACD,sEAAsE;YACtE,gFAAgF;YAChF,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;gBAC1C,YAAY,EAAE,KAAK;gBACnB,YAAY,EAAG,CAAS,EAAE,YAAY,IAAI,IAAI;aAC/C,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE;YAC1D,KAAK,EAAG,CAAW,CAAC,OAAO;SAC5B,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC;IACpD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,YAAY;CACxB,CAAC"}
|
|
1
|
+
{"version":3,"file":"llm-client.js","sourceRoot":"","sources":["../../../src/services/memory/llm-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LIP-15 — the embedding-fingerprint vocabulary, extracted from
|
|
3
|
+
* `project-indexer.ts`.
|
|
4
|
+
*
|
|
5
|
+
* A workspace is indexed under one `${provider}:${model}:${dimensions}`
|
|
6
|
+
* triple. Querying or appending to it under a different one mixes two vector
|
|
7
|
+
* spaces in one table, which degrades silently rather than failing — so both
|
|
8
|
+
* the read gate (`checkSearchAdmission`) and the write gate
|
|
9
|
+
* (`ensureFreshIndex`'s `needsFullReindex`) compare the stored fingerprint
|
|
10
|
+
* against the live one.
|
|
11
|
+
*
|
|
12
|
+
* It lives here rather than in `project-indexer.ts` for two reasons, and the
|
|
13
|
+
* first is the one that forced it: adding this gate took that file from 640 to
|
|
14
|
+
* 761 LOC, past the 700-LOC hub ceiling `scripts/search-hub-metric.ts`
|
|
15
|
+
* enforces (G-HUB) — caught by CI, not locally, because that gate runs only
|
|
16
|
+
* from `ci.yml` and is not wired into `bun run test:scripts`.
|
|
17
|
+
*
|
|
18
|
+
* **`project-indexer.ts` now sits at exactly 700, with zero headroom.** The
|
|
19
|
+
* next line added to it reddens G-HUB. That is the gate working as intended —
|
|
20
|
+
* it wants the hub decomposed further, and the honest reading is that this
|
|
21
|
+
* extraction paid the immediate debt without finishing the job. Take the next
|
|
22
|
+
* cohesive unit out (the result types, or `indexProjectInternal`) rather than
|
|
23
|
+
* shaving comments to buy a line. The second is that both gates were restating the same
|
|
24
|
+
* three-clause predicate independently, which is exactly the drift this
|
|
25
|
+
* module's `embeddingFingerprintMismatch` now makes impossible.
|
|
26
|
+
*
|
|
27
|
+
* `project-indexer.ts` re-exports `EmbeddingIndexStaleError` and
|
|
28
|
+
* `currentEmbeddingFingerprint` so no importer had to change.
|
|
29
|
+
*
|
|
30
|
+
* ## Which gate actually runs in production (post-review, 2026-09-19)
|
|
31
|
+
*
|
|
32
|
+
* `ensureFreshIndex`'s `needsFullReindex` branch — not just its fingerprint
|
|
33
|
+
* arm — has **zero production callers**. Its only caller is
|
|
34
|
+
* `SearchController.handleAutoReindex`, which hardcodes
|
|
35
|
+
* `allowFullReindex: false`, so every `needsFullReindex === true` outcome is
|
|
36
|
+
* deferred and never reaches `deps.indexProject` or the stamp beside it.
|
|
37
|
+
*
|
|
38
|
+
* The reachable production recovery for a stale fingerprint is `index_project`
|
|
39
|
+
* with `forceReindex: true`, which runs `EtlPipeline.run()`
|
|
40
|
+
* (`services/etl/pipeline.ts`) — a separate full-reindex mechanism that never
|
|
41
|
+
* calls `ensureFreshIndex`, and where the fingerprint is actually stamped.
|
|
42
|
+
* Both sites use the same `stampEmbeddingFingerprint` /
|
|
43
|
+
* `currentEmbeddingFingerprint` pair, so they cannot disagree on the *value*,
|
|
44
|
+
* only on whether they currently run.
|
|
45
|
+
*
|
|
46
|
+
* That branch is kept, tested and correct for the day a caller passes
|
|
47
|
+
* `allowFullReindex: true` — deleting documented, correct behaviour to chase
|
|
48
|
+
* "no dead code" would be the wrong trade — but it must not be read as *the*
|
|
49
|
+
* write gate. See `search-controller.ts`'s Tier 1b comment for why the read
|
|
50
|
+
* gate stays unconditional instead of giving this branch a reachable caller.
|
|
51
|
+
*/
|
|
52
|
+
/**
|
|
53
|
+
* Raised by the search entry path when the workspace's stored embedding
|
|
54
|
+
* fingerprint (`${provider}:${model}:${dimensions}`, stamped by the last full
|
|
55
|
+
* reindex) disagrees with the currently configured embedding. Search must
|
|
56
|
+
* never fall through to a table holding two mixed embedding spaces — the
|
|
57
|
+
* caller throws this instead of returning rows.
|
|
58
|
+
*/
|
|
59
|
+
export declare class EmbeddingIndexStaleError extends Error {
|
|
60
|
+
readonly projectId: string;
|
|
61
|
+
readonly storedFingerprint: string;
|
|
62
|
+
readonly currentFingerprint: string;
|
|
63
|
+
constructor(projectId: string, storedFingerprint: string, currentFingerprint: string);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The live embedding fingerprint (design.md §5): `${provider}:${model}:${dimensions}`
|
|
67
|
+
* for the currently *selected* provider — `getProvidersByPriority()[0]`, the
|
|
68
|
+
* priority-1 entry `services/embeddings/config.ts` resolves synchronously
|
|
69
|
+
* from env + config.json at module load (no network probe, no fallback
|
|
70
|
+
* chain walk — that is `createEmbeddingProvider`'s job, not this gate's).
|
|
71
|
+
* `null` when any component is not resolvable — every caller here treats
|
|
72
|
+
* "unknown" the same as "no mismatch": warn or skip, never block on a value
|
|
73
|
+
* we can't compute.
|
|
74
|
+
*/
|
|
75
|
+
export declare function currentEmbeddingFingerprint(): string | null;
|
|
76
|
+
/**
|
|
77
|
+
* The mismatch pair, or `null` when there is nothing to act on.
|
|
78
|
+
*
|
|
79
|
+
* The three clauses are the whole gate, and the two `null` cases are
|
|
80
|
+
* deliberate rather than defensive: a stored `null` is a legacy or
|
|
81
|
+
* never-stamped workspace (the next full reindex stamps it), and a live
|
|
82
|
+
* `null` means the configured embedding is not resolvable. Neither is
|
|
83
|
+
* evidence of a *disagreement*, so neither blocks — only a stored value that
|
|
84
|
+
* actively contradicts a resolvable live one does.
|
|
85
|
+
*
|
|
86
|
+
* Both gates previously spelled this out separately, in the two shapes the
|
|
87
|
+
* call sites happened to want (a boolean, and an object). One predicate, two
|
|
88
|
+
* readings of its result, so they cannot drift into two different rules.
|
|
89
|
+
*/
|
|
90
|
+
export declare function embeddingFingerprintMismatch(storedFingerprint: string | null, liveFingerprint?: string | null): {
|
|
91
|
+
stored: string;
|
|
92
|
+
current: string;
|
|
93
|
+
} | null;
|
|
94
|
+
//# sourceMappingURL=embedding-freshness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-freshness.d.ts","sourceRoot":"","sources":["../../../src/services/search/embedding-freshness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAIH;;;;;;GAMG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IAE/C,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM;gBAF1B,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EACzB,kBAAkB,EAAE,MAAM;CAUtC;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,GAAG,IAAI,CAM3D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAChC,eAAe,GAAE,MAAM,GAAG,IAAoC,GAC7D;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAS5C"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LIP-15 — the embedding-fingerprint vocabulary, extracted from
|
|
3
|
+
* `project-indexer.ts`.
|
|
4
|
+
*
|
|
5
|
+
* A workspace is indexed under one `${provider}:${model}:${dimensions}`
|
|
6
|
+
* triple. Querying or appending to it under a different one mixes two vector
|
|
7
|
+
* spaces in one table, which degrades silently rather than failing — so both
|
|
8
|
+
* the read gate (`checkSearchAdmission`) and the write gate
|
|
9
|
+
* (`ensureFreshIndex`'s `needsFullReindex`) compare the stored fingerprint
|
|
10
|
+
* against the live one.
|
|
11
|
+
*
|
|
12
|
+
* It lives here rather than in `project-indexer.ts` for two reasons, and the
|
|
13
|
+
* first is the one that forced it: adding this gate took that file from 640 to
|
|
14
|
+
* 761 LOC, past the 700-LOC hub ceiling `scripts/search-hub-metric.ts`
|
|
15
|
+
* enforces (G-HUB) — caught by CI, not locally, because that gate runs only
|
|
16
|
+
* from `ci.yml` and is not wired into `bun run test:scripts`.
|
|
17
|
+
*
|
|
18
|
+
* **`project-indexer.ts` now sits at exactly 700, with zero headroom.** The
|
|
19
|
+
* next line added to it reddens G-HUB. That is the gate working as intended —
|
|
20
|
+
* it wants the hub decomposed further, and the honest reading is that this
|
|
21
|
+
* extraction paid the immediate debt without finishing the job. Take the next
|
|
22
|
+
* cohesive unit out (the result types, or `indexProjectInternal`) rather than
|
|
23
|
+
* shaving comments to buy a line. The second is that both gates were restating the same
|
|
24
|
+
* three-clause predicate independently, which is exactly the drift this
|
|
25
|
+
* module's `embeddingFingerprintMismatch` now makes impossible.
|
|
26
|
+
*
|
|
27
|
+
* `project-indexer.ts` re-exports `EmbeddingIndexStaleError` and
|
|
28
|
+
* `currentEmbeddingFingerprint` so no importer had to change.
|
|
29
|
+
*
|
|
30
|
+
* ## Which gate actually runs in production (post-review, 2026-09-19)
|
|
31
|
+
*
|
|
32
|
+
* `ensureFreshIndex`'s `needsFullReindex` branch — not just its fingerprint
|
|
33
|
+
* arm — has **zero production callers**. Its only caller is
|
|
34
|
+
* `SearchController.handleAutoReindex`, which hardcodes
|
|
35
|
+
* `allowFullReindex: false`, so every `needsFullReindex === true` outcome is
|
|
36
|
+
* deferred and never reaches `deps.indexProject` or the stamp beside it.
|
|
37
|
+
*
|
|
38
|
+
* The reachable production recovery for a stale fingerprint is `index_project`
|
|
39
|
+
* with `forceReindex: true`, which runs `EtlPipeline.run()`
|
|
40
|
+
* (`services/etl/pipeline.ts`) — a separate full-reindex mechanism that never
|
|
41
|
+
* calls `ensureFreshIndex`, and where the fingerprint is actually stamped.
|
|
42
|
+
* Both sites use the same `stampEmbeddingFingerprint` /
|
|
43
|
+
* `currentEmbeddingFingerprint` pair, so they cannot disagree on the *value*,
|
|
44
|
+
* only on whether they currently run.
|
|
45
|
+
*
|
|
46
|
+
* That branch is kept, tested and correct for the day a caller passes
|
|
47
|
+
* `allowFullReindex: true` — deleting documented, correct behaviour to chase
|
|
48
|
+
* "no dead code" would be the wrong trade — but it must not be read as *the*
|
|
49
|
+
* write gate. See `search-controller.ts`'s Tier 1b comment for why the read
|
|
50
|
+
* gate stays unconditional instead of giving this branch a reachable caller.
|
|
51
|
+
*/
|
|
52
|
+
import { getProvidersByPriority } from "../embeddings/config.js";
|
|
53
|
+
/**
|
|
54
|
+
* Raised by the search entry path when the workspace's stored embedding
|
|
55
|
+
* fingerprint (`${provider}:${model}:${dimensions}`, stamped by the last full
|
|
56
|
+
* reindex) disagrees with the currently configured embedding. Search must
|
|
57
|
+
* never fall through to a table holding two mixed embedding spaces — the
|
|
58
|
+
* caller throws this instead of returning rows.
|
|
59
|
+
*/
|
|
60
|
+
export class EmbeddingIndexStaleError extends Error {
|
|
61
|
+
projectId;
|
|
62
|
+
storedFingerprint;
|
|
63
|
+
currentFingerprint;
|
|
64
|
+
constructor(projectId, storedFingerprint, currentFingerprint) {
|
|
65
|
+
super(`Project '${projectId}' was indexed with embedding fingerprint ` +
|
|
66
|
+
`'${storedFingerprint}', but the configured embedding is now ` +
|
|
67
|
+
`'${currentFingerprint}'. Run index_project with forceReindex: true ` +
|
|
68
|
+
`to rebuild the index for the new embedding.`);
|
|
69
|
+
this.projectId = projectId;
|
|
70
|
+
this.storedFingerprint = storedFingerprint;
|
|
71
|
+
this.currentFingerprint = currentFingerprint;
|
|
72
|
+
this.name = "EmbeddingIndexStaleError";
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The live embedding fingerprint (design.md §5): `${provider}:${model}:${dimensions}`
|
|
77
|
+
* for the currently *selected* provider — `getProvidersByPriority()[0]`, the
|
|
78
|
+
* priority-1 entry `services/embeddings/config.ts` resolves synchronously
|
|
79
|
+
* from env + config.json at module load (no network probe, no fallback
|
|
80
|
+
* chain walk — that is `createEmbeddingProvider`'s job, not this gate's).
|
|
81
|
+
* `null` when any component is not resolvable — every caller here treats
|
|
82
|
+
* "unknown" the same as "no mismatch": warn or skip, never block on a value
|
|
83
|
+
* we can't compute.
|
|
84
|
+
*/
|
|
85
|
+
export function currentEmbeddingFingerprint() {
|
|
86
|
+
const [, active] = getProvidersByPriority()[0] ?? [];
|
|
87
|
+
if (!active?.provider || !active?.model || active.dimensions === undefined) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
return `${active.provider}:${active.model}:${active.dimensions}`;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* The mismatch pair, or `null` when there is nothing to act on.
|
|
94
|
+
*
|
|
95
|
+
* The three clauses are the whole gate, and the two `null` cases are
|
|
96
|
+
* deliberate rather than defensive: a stored `null` is a legacy or
|
|
97
|
+
* never-stamped workspace (the next full reindex stamps it), and a live
|
|
98
|
+
* `null` means the configured embedding is not resolvable. Neither is
|
|
99
|
+
* evidence of a *disagreement*, so neither blocks — only a stored value that
|
|
100
|
+
* actively contradicts a resolvable live one does.
|
|
101
|
+
*
|
|
102
|
+
* Both gates previously spelled this out separately, in the two shapes the
|
|
103
|
+
* call sites happened to want (a boolean, and an object). One predicate, two
|
|
104
|
+
* readings of its result, so they cannot drift into two different rules.
|
|
105
|
+
*/
|
|
106
|
+
export function embeddingFingerprintMismatch(storedFingerprint, liveFingerprint = currentEmbeddingFingerprint()) {
|
|
107
|
+
if (storedFingerprint === null ||
|
|
108
|
+
liveFingerprint === null ||
|
|
109
|
+
storedFingerprint === liveFingerprint) {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
return { stored: storedFingerprint, current: liveFingerprint };
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=embedding-freshness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-freshness.js","sourceRoot":"","sources":["../../../src/services/search/embedding-freshness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAEtC;IACA;IACA;IAHX,YACW,SAAiB,EACjB,iBAAyB,EACzB,kBAA0B;QAEnC,KAAK,CACH,YAAY,SAAS,2CAA2C;YAC9D,IAAI,iBAAiB,yCAAyC;YAC9D,IAAI,kBAAkB,+CAA+C;YACrE,6CAA6C,CAChD,CAAC;QATO,cAAS,GAAT,SAAS,CAAQ;QACjB,sBAAiB,GAAjB,iBAAiB,CAAQ;QACzB,uBAAkB,GAAlB,kBAAkB,CAAQ;QAQnC,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,2BAA2B;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,sBAAsB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,4BAA4B,CAC1C,iBAAgC,EAChC,kBAAiC,2BAA2B,EAAE;IAE9D,IACE,iBAAiB,KAAK,IAAI;QAC1B,eAAe,KAAK,IAAI;QACxB,iBAAiB,KAAK,eAAe,EACrC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;AACjE,CAAC"}
|
|
@@ -65,4 +65,11 @@ export declare function getActiveCapturePolicy(): Policy;
|
|
|
65
65
|
* compose: a path is indexed iff `!ig.ignores(path) && applyCapturePolicy(path) !== 'Drop'`.
|
|
66
66
|
*/
|
|
67
67
|
export declare function loadProjectIgnore(projectPath: string): Promise<Ignore>;
|
|
68
|
+
/**
|
|
69
|
+
* Historical alias for {@link loadProjectIgnore}, kept because
|
|
70
|
+
* `contextual-search-rlm.ts` and two test suites reach for this name. It lived
|
|
71
|
+
* in `project-indexer.ts` purely as a re-export; gitignore loading is this
|
|
72
|
+
* module's concern, not the indexer's.
|
|
73
|
+
*/
|
|
74
|
+
export declare function loadGitignore(projectPath: string): Promise<Ignore>;
|
|
68
75
|
//# sourceMappingURL=ignore-patterns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ignore-patterns.d.ts","sourceRoot":"","sources":["../../../src/services/search/ignore-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAqB,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAI1E,eAAO,MAAM,kBAAkB,UAAgE,CAAC;AAEhG;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAE1E;AAED,eAAO,MAAM,eAAe,UAmC3B,CAAC;AAyBF,oEAAoE;AACpE,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAEhE;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAwB5E"}
|
|
1
|
+
{"version":3,"file":"ignore-patterns.d.ts","sourceRoot":"","sources":["../../../src/services/search/ignore-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAqB,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAI1E,eAAO,MAAM,kBAAkB,UAAgE,CAAC;AAEhG;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAE1E;AAED,eAAO,MAAM,eAAe,UAmC3B,CAAC;AAyBF,oEAAoE;AACpE,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAEhE;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAwB5E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,mBAEhD"}
|
|
@@ -155,4 +155,13 @@ export async function loadProjectIgnore(projectPath) {
|
|
|
155
155
|
}
|
|
156
156
|
return ig;
|
|
157
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* Historical alias for {@link loadProjectIgnore}, kept because
|
|
160
|
+
* `contextual-search-rlm.ts` and two test suites reach for this name. It lived
|
|
161
|
+
* in `project-indexer.ts` purely as a re-export; gitignore loading is this
|
|
162
|
+
* module's concern, not the indexer's.
|
|
163
|
+
*/
|
|
164
|
+
export function loadGitignore(projectPath) {
|
|
165
|
+
return loadProjectIgnore(projectPath);
|
|
166
|
+
}
|
|
158
167
|
//# sourceMappingURL=ignore-patterns.js.map
|