@remnic/core 9.3.727 → 9.3.728
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/access-boundary.js +6 -6
- package/dist/access-cli.js +11 -11
- package/dist/access-http.js +10 -10
- package/dist/access-mcp.js +9 -9
- package/dist/access-operations-batch.js +7 -7
- package/dist/access-operations.d.ts +1 -1
- package/dist/access-operations.js +8 -8
- package/dist/access-schema.d.ts +4 -4
- package/dist/access-service.js +5 -5
- package/dist/capabilities.d.ts +43 -1
- package/dist/capabilities.js +5 -3
- package/dist/{chunk-DVRHLN2O.js → chunk-3RCBIOOJ.js} +18 -2
- package/dist/{chunk-DVRHLN2O.js.map → chunk-3RCBIOOJ.js.map} +1 -1
- package/dist/{chunk-R7IYU5DZ.js → chunk-4ESAR77N.js} +2 -2
- package/dist/{chunk-SNKPUJHR.js → chunk-76NHR6ZL.js} +3 -3
- package/dist/{chunk-6PY5YJAV.js → chunk-BQCHEV7O.js} +8 -3
- package/dist/{chunk-6PY5YJAV.js.map → chunk-BQCHEV7O.js.map} +1 -1
- package/dist/{chunk-ZA2S2VLL.js → chunk-C2PG7IEH.js} +5 -2
- package/dist/chunk-C2PG7IEH.js.map +1 -0
- package/dist/{chunk-MJIHJ7OG.js → chunk-H5BWGCRZ.js} +11 -10
- package/dist/chunk-H5BWGCRZ.js.map +1 -0
- package/dist/{chunk-N3VNUM4Z.js → chunk-HGNOCPZX.js} +4 -4
- package/dist/{chunk-CSRXQ6NB.js → chunk-I5REUWLH.js} +10 -4
- package/dist/chunk-I5REUWLH.js.map +1 -0
- package/dist/{chunk-NSA5ZRUL.js → chunk-M4AYVEWS.js} +3 -3
- package/dist/{chunk-OEEW4KJA.js → chunk-O6YH5F47.js} +3 -3
- package/dist/{chunk-XPHVAOBT.js → chunk-QNEUZIAH.js} +45 -36
- package/dist/chunk-QNEUZIAH.js.map +1 -0
- package/dist/{chunk-27QQC7ZX.js → chunk-UM5AWJNQ.js} +6 -5
- package/dist/chunk-UM5AWJNQ.js.map +1 -0
- package/dist/{chunk-2KAYTPPT.js → chunk-UTHQPSRC.js} +2 -2
- package/dist/{chunk-CTOQEZSN.js → chunk-V4GNSDFH.js} +2 -2
- package/dist/{chunk-EHISUJFN.js → chunk-WAS3NV46.js} +6 -3
- package/dist/chunk-WAS3NV46.js.map +1 -0
- package/dist/{chunk-DKJCRGWM.js → chunk-YGIQORJ3.js} +2 -2
- package/dist/cli.js +13 -13
- package/dist/embedding-fallback.js +2 -1
- package/dist/extraction.js +2 -1
- package/dist/{first-start-migration-PG5HBC3K.js → first-start-migration-22LPFHD5.js} +6 -2
- package/dist/first-start-migration-22LPFHD5.js.map +1 -0
- package/dist/index.js +16 -16
- package/dist/namespaces/migrate.js +5 -4
- package/dist/namespaces/search.js +4 -3
- package/dist/operator-toolkit.js +6 -6
- package/dist/orchestrator.js +7 -7
- package/dist/schemas.d.ts +22 -22
- package/dist/search/embed-helper.js +2 -1
- package/dist/search/factory.js +3 -2
- package/dist/search/index.js +3 -2
- package/dist/transfer/types.d.ts +12 -12
- package/package.json +2 -2
- package/src/access-service.ts +2 -1
- package/src/capabilities.test.ts +155 -0
- package/src/capabilities.ts +91 -0
- package/src/chat/chat-engine.test.ts +39 -1
- package/src/chat/chat-session.ts +25 -2
- package/src/cli.ts +3 -2
- package/src/embedding-fallback.ts +2 -1
- package/src/extraction.ts +7 -3
- package/src/maintenance/first-start-migration.ts +3 -1
- package/src/orchestrator.ts +38 -26
- package/src/search/embed-helper.ts +3 -2
- package/dist/chunk-27QQC7ZX.js.map +0 -1
- package/dist/chunk-CSRXQ6NB.js.map +0 -1
- package/dist/chunk-EHISUJFN.js.map +0 -1
- package/dist/chunk-MJIHJ7OG.js.map +0 -1
- package/dist/chunk-XPHVAOBT.js.map +0 -1
- package/dist/chunk-ZA2S2VLL.js.map +0 -1
- package/dist/first-start-migration-PG5HBC3K.js.map +0 -1
- /package/dist/{chunk-R7IYU5DZ.js.map → chunk-4ESAR77N.js.map} +0 -0
- /package/dist/{chunk-SNKPUJHR.js.map → chunk-76NHR6ZL.js.map} +0 -0
- /package/dist/{chunk-N3VNUM4Z.js.map → chunk-HGNOCPZX.js.map} +0 -0
- /package/dist/{chunk-NSA5ZRUL.js.map → chunk-M4AYVEWS.js.map} +0 -0
- /package/dist/{chunk-OEEW4KJA.js.map → chunk-O6YH5F47.js.map} +0 -0
- /package/dist/{chunk-2KAYTPPT.js.map → chunk-UTHQPSRC.js.map} +0 -0
- /package/dist/{chunk-CTOQEZSN.js.map → chunk-V4GNSDFH.js.map} +0 -0
- /package/dist/{chunk-DKJCRGWM.js.map → chunk-YGIQORJ3.js.map} +0 -0
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk-SANZHXY2.js";
|
|
13
13
|
import {
|
|
14
14
|
EmbedHelper
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-WAS3NV46.js";
|
|
16
16
|
import {
|
|
17
17
|
LanceDbBackend
|
|
18
18
|
} from "./chunk-5CEJH5ZN.js";
|
|
@@ -170,4 +170,4 @@ export {
|
|
|
170
170
|
createConversationSearchBackend,
|
|
171
171
|
createConversationIndexRuntime
|
|
172
172
|
};
|
|
173
|
-
//# sourceMappingURL=chunk-
|
|
173
|
+
//# sourceMappingURL=chunk-UTHQPSRC.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createSearchBackend
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UTHQPSRC.js";
|
|
4
4
|
import {
|
|
5
5
|
namespaceIdentityToken,
|
|
6
6
|
normalizeNamespaceIdentity
|
|
@@ -401,4 +401,4 @@ export {
|
|
|
401
401
|
namespaceCollectionName,
|
|
402
402
|
NamespaceSearchRouter
|
|
403
403
|
};
|
|
404
|
-
//# sourceMappingURL=chunk-
|
|
404
|
+
//# sourceMappingURL=chunk-V4GNSDFH.js.map
|
|
@@ -5,6 +5,9 @@ import {
|
|
|
5
5
|
getHostEmbeddingProvider,
|
|
6
6
|
normalizeHostEmbeddingVector
|
|
7
7
|
} from "./chunk-3ONXXHQO.js";
|
|
8
|
+
import {
|
|
9
|
+
resolveMemoryLifecycleCapabilities
|
|
10
|
+
} from "./chunk-3RCBIOOJ.js";
|
|
8
11
|
import {
|
|
9
12
|
log
|
|
10
13
|
} from "./chunk-NU3CSQ4H.js";
|
|
@@ -129,7 +132,7 @@ var EmbedHelper = class {
|
|
|
129
132
|
return this.cachedProvider;
|
|
130
133
|
}
|
|
131
134
|
resolveProvider(options = {}) {
|
|
132
|
-
if (!this.config.
|
|
135
|
+
if (!resolveMemoryLifecycleCapabilities(this.config).embeddingFallback) return null;
|
|
133
136
|
if (options.includeHost !== false && this.config.hostEmbeddingProviderEnabled !== false) {
|
|
134
137
|
const hostProvider = this.resolveHostEmbeddingProvider();
|
|
135
138
|
if (hostProvider) {
|
|
@@ -155,7 +158,7 @@ var EmbedHelper = class {
|
|
|
155
158
|
return null;
|
|
156
159
|
}
|
|
157
160
|
resolveFallbackProviderForIdentity(identity) {
|
|
158
|
-
if (!this.config.
|
|
161
|
+
if (!resolveMemoryLifecycleCapabilities(this.config).embeddingFallback) return null;
|
|
159
162
|
const separator = identity.indexOf(":");
|
|
160
163
|
if (separator <= 0 || separator === identity.length - 1) return null;
|
|
161
164
|
const type = identity.slice(0, separator);
|
|
@@ -305,4 +308,4 @@ function normalizeHttpEmbeddingVector(vector) {
|
|
|
305
308
|
export {
|
|
306
309
|
EmbedHelper
|
|
307
310
|
};
|
|
308
|
-
//# sourceMappingURL=chunk-
|
|
311
|
+
//# sourceMappingURL=chunk-WAS3NV46.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/search/embed-helper.ts"],"sourcesContent":["import { log } from \"../logger.js\";\nimport { resolveMemoryLifecycleCapabilities } from \"../capabilities.js\";\nimport type { PluginConfig } from \"../types.js\";\nimport { isAbortError } from \"../abort-error.js\";\nimport { withTimeoutSignal } from \"./abort.js\";\nimport {\n getHostEmbeddingProvider,\n type HostEmbeddingProvider,\n type HostEmbeddingInputType,\n normalizeHostEmbeddingVector,\n} from \"../host-embedding-provider.js\";\n\ntype ProviderConfig = {\n type: \"openai\" | \"local\" | \"host\";\n model: string;\n endpoint?: string;\n headers?: Record<string, string>;\n hostProvider?: HostEmbeddingProvider;\n};\n\ntype HostEmbeddingScopeConfig = PluginConfig & {\n /**\n * Internal namespace-router metadata. Host adapters register providers at\n * the root memoryDir while namespace backends operate under scoped dirs.\n */\n hostEmbeddingProviderScope?: string;\n};\n\ntype EmbedHelperOptions = {\n /** Backend-local vector schema dimension for host-provider validation. */\n hostEmbeddingExpectedDimension?: number;\n};\n\nexport type EmbedProviderIdentity = `${ProviderConfig[\"type\"]}:${string}`;\n\nexport type EmbedWithProviderResult = {\n vector: number[];\n providerIdentity: EmbedProviderIdentity;\n};\n\nexport type EmbedBatchWithProviderResult = {\n vectors: (number[] | null)[];\n providerIdentity: EmbedProviderIdentity;\n};\n\nconst DEFAULT_OPENAI_MODEL = \"text-embedding-3-small\";\nconst DEFAULT_PROVIDER_CACHE_TTL_MS = 250;\n\n/**\n * Standalone embedding helper for search backend adapters.\n *\n * NOTE: This intentionally duplicates provider resolution from EmbeddingFallback.\n * EmbeddingFallback is tightly integrated with the plugin lifecycle (telemetry,\n * rate-limit backoff, provider rotation). This class is a lightweight standalone\n * utility used by LanceDB/Orama backends which operate outside plugin context.\n * Merging them would break the port/adapter separation between search and plugin layers.\n */\nexport class EmbedHelper {\n private cachedProvider: ProviderConfig | null | undefined;\n private cachedProviderAt = 0;\n private providerCacheTtlMs = DEFAULT_PROVIDER_CACHE_TTL_MS;\n\n constructor(\n private readonly config: PluginConfig,\n private readonly options: EmbedHelperOptions = {},\n ) {}\n\n /**\n * Whether an embedding provider is available.\n * Re-resolves periodically so late host-provider registration is visible\n * without repeatedly probing provider state on every hot-path call.\n */\n isAvailable(): boolean {\n return this.getProvider() !== null;\n }\n\n /**\n * Embed a single text string. Returns null if no provider is available.\n */\n async embed(text: string, options: { signal?: AbortSignal } = {}): Promise<number[] | null> {\n return (await this.embedWithProvider(text, options))?.vector ?? null;\n }\n\n async embedWithProvider(\n text: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<EmbedWithProviderResult | null> {\n const provider = this.getProvider();\n if (!provider) return null;\n const result = await this.callEmbed(text, provider, options.signal, \"query\");\n if (result) {\n return {\n vector: result,\n providerIdentity: providerIdentity(provider),\n };\n }\n if (provider.type !== \"host\") return null;\n const fallbackProvider = this.resolveProvider({ includeHost: false });\n if (!fallbackProvider) return null;\n const fallbackResult = await this.callEmbed(text, fallbackProvider, options.signal, \"query\");\n return fallbackResult\n ? {\n vector: fallbackResult,\n providerIdentity: providerIdentity(fallbackProvider),\n }\n : null;\n }\n\n async embedWithFallbackProviderIdentity(\n text: string,\n identity: EmbedProviderIdentity,\n options: { signal?: AbortSignal } = {},\n ): Promise<EmbedWithProviderResult | null> {\n const provider = this.resolveFallbackProviderForIdentity(identity);\n if (!provider) return null;\n const result = await this.callEmbed(text, provider, options.signal, \"query\");\n return result\n ? {\n vector: result,\n providerIdentity: providerIdentity(provider),\n }\n : null;\n }\n\n /**\n * Embed a batch of texts. Returns an array parallel to input; entries are null on failure.\n */\n async embedBatch(\n texts: string[],\n batchSize = 32,\n options: { signal?: AbortSignal } = {},\n ): Promise<(number[] | null)[]> {\n return (await this.embedBatchWithProvider(texts, batchSize, options))?.vectors ?? texts.map(() => null);\n }\n\n async embedBatchWithProvider(\n texts: string[],\n batchSize = 32,\n options: { signal?: AbortSignal } = {},\n ): Promise<EmbedBatchWithProviderResult | null> {\n const provider = this.getProvider();\n if (!provider) return null;\n\n if (provider.type === \"host\") {\n const hostResults = await this.embedAllWithProvider(texts, batchSize, provider, options);\n if (!hostResults.some((result) => result === null)) {\n return {\n vectors: hostResults,\n providerIdentity: providerIdentity(provider),\n };\n }\n const fallbackProvider = this.resolveProvider({ includeHost: false });\n if (!fallbackProvider) {\n return {\n vectors: hostResults,\n providerIdentity: providerIdentity(provider),\n };\n }\n const fallbackResults = await this.embedAllWithProvider(texts, batchSize, fallbackProvider, options);\n return {\n vectors: fallbackResults,\n providerIdentity: providerIdentity(fallbackProvider),\n };\n }\n\n return {\n vectors: await this.embedAllWithProvider(texts, batchSize, provider, options),\n providerIdentity: providerIdentity(provider),\n };\n }\n\n getProviderIdentity(): EmbedProviderIdentity | null {\n const provider = this.getProvider();\n return provider ? providerIdentity(provider) : null;\n }\n\n private async embedAllWithProvider(\n texts: string[],\n batchSize: number,\n provider: ProviderConfig,\n options: { signal?: AbortSignal } = {},\n ): Promise<(number[] | null)[]> {\n const results: (number[] | null)[] = new Array(texts.length).fill(null);\n for (let i = 0; i < texts.length; i += batchSize) {\n const batch = texts.slice(i, i + batchSize);\n const batchResults =\n provider.type === \"host\" && provider.hostProvider?.embedBatch\n ? await this.callHostEmbedBatch(batch, provider.hostProvider, options.signal)\n : await Promise.all(\n batch.map((t) => this.callEmbed(t, provider, options.signal, \"document\")),\n );\n for (let j = 0; j < batchResults.length; j++) {\n results[i + j] = batchResults[j];\n }\n }\n return results;\n }\n\n private getProvider(): ProviderConfig | null {\n const now = Date.now();\n if (\n this.cachedProvider !== undefined &&\n now - this.cachedProviderAt < this.providerCacheTtlMs\n ) {\n return this.cachedProvider;\n }\n this.cachedProvider = this.resolveProvider();\n this.cachedProviderAt = now;\n return this.cachedProvider;\n }\n\n private resolveProvider(options: { includeHost?: boolean } = {}): ProviderConfig | null {\n if (!resolveMemoryLifecycleCapabilities(this.config).embeddingFallback) return null;\n\n if (\n options.includeHost !== false &&\n this.config.hostEmbeddingProviderEnabled !== false\n ) {\n const hostProvider = this.resolveHostEmbeddingProvider();\n if (hostProvider) {\n return {\n type: \"host\",\n model: hostProvider.model || hostProvider.id,\n hostProvider,\n };\n }\n }\n\n const preferred = this.config.embeddingFallbackProvider;\n const providers = preferred === \"auto\" ? [\"openai\", \"local\"] : [preferred];\n\n for (const p of providers) {\n if (p === \"openai\") {\n const provider = this.createOpenAiProvider();\n if (provider) return provider;\n }\n\n if (p === \"local\") {\n const provider = this.createLocalProvider();\n if (provider) return provider;\n }\n }\n\n return null;\n }\n\n private resolveFallbackProviderForIdentity(identity: EmbedProviderIdentity): ProviderConfig | null {\n if (!resolveMemoryLifecycleCapabilities(this.config).embeddingFallback) return null;\n const separator = identity.indexOf(\":\");\n if (separator <= 0 || separator === identity.length - 1) return null;\n const type = identity.slice(0, separator);\n const model = identity.slice(separator + 1);\n\n if (type === \"openai\") {\n const provider = this.createOpenAiProvider();\n return provider && provider.model === model ? provider : null;\n }\n if (type === \"local\") {\n const provider = this.createLocalProvider();\n return provider && provider.model === model ? provider : null;\n }\n return null;\n }\n\n private createOpenAiProvider(): ProviderConfig | null {\n if (!this.config.openaiApiKey) return null;\n const baseUrl = this.config.openaiBaseUrl ?? \"https://api.openai.com/v1\";\n return {\n type: \"openai\",\n model: DEFAULT_OPENAI_MODEL,\n endpoint: `${baseUrl.replace(/\\/$/, \"\")}/embeddings`,\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.config.openaiApiKey}`,\n },\n };\n }\n\n private createLocalProvider(): ProviderConfig | null {\n if (!this.config.localLlmEnabled || !this.config.localLlmUrl) return null;\n const base = this.config.localLlmUrl.replace(/\\/$/, \"\");\n const endpoint = /\\/v1$/i.test(base) ? `${base}/embeddings` : `${base}/v1/embeddings`;\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n ...(this.config.localLlmHeaders ?? {}),\n };\n if (this.config.localLlmApiKey && this.config.localLlmAuthHeader !== false) {\n headers.Authorization = `Bearer ${this.config.localLlmApiKey}`;\n }\n return {\n type: \"local\",\n model:\n this.config.embeddingFallbackModel ||\n this.config.localLlmModel ||\n DEFAULT_OPENAI_MODEL,\n endpoint,\n headers,\n };\n }\n\n private resolveHostEmbeddingProvider(): HostEmbeddingProvider | undefined {\n const scopedConfig = this.config as HostEmbeddingScopeConfig;\n const scopes = [\n scopedConfig.memoryDir,\n scopedConfig.hostEmbeddingProviderScope,\n ].filter((scope): scope is string => typeof scope === \"string\" && scope.trim().length > 0);\n\n for (const scope of new Set(scopes)) {\n const provider = getHostEmbeddingProvider(scope);\n if (provider) return provider;\n }\n return undefined;\n }\n\n private async callEmbed(\n input: string,\n provider: ProviderConfig,\n signal?: AbortSignal,\n inputType: HostEmbeddingInputType = \"document\",\n ): Promise<number[] | null> {\n if (provider.type === \"host\") {\n return this.callHostEmbed(input, provider.hostProvider, signal, inputType);\n }\n if (!provider.endpoint || !provider.headers) return null;\n try {\n const res = await fetch(provider.endpoint, {\n method: \"POST\",\n headers: provider.headers,\n body: JSON.stringify({\n model: provider.model,\n input: input.slice(0, 8000),\n encoding_format: \"float\",\n }),\n signal: withTimeoutSignal(signal, 30_000),\n });\n if (!res.ok) {\n log.debug(`EmbedHelper request failed: ${provider.type} ${res.status}`);\n return null;\n }\n const payload = (await res.json()) as any;\n const vector = payload?.data?.[0]?.embedding;\n return normalizeHttpEmbeddingVector(vector);\n } catch (err) {\n if (isAbortError(err)) throw err;\n log.debug(`EmbedHelper error: ${err}`);\n return null;\n }\n }\n\n private async callHostEmbed(\n input: string,\n provider: HostEmbeddingProvider | undefined,\n signal?: AbortSignal,\n inputType: HostEmbeddingInputType = \"document\",\n ): Promise<number[] | null> {\n if (!provider) return null;\n try {\n const vector = await provider.embed(input.slice(0, 8000), {\n signal: withTimeoutSignal(signal, 30_000),\n inputType,\n });\n return this.normalizeHostEmbeddingVector(vector);\n } catch (err) {\n if (isAbortError(err)) throw err;\n log.debug(`EmbedHelper host provider error: ${err}`);\n return null;\n }\n }\n\n private async callHostEmbedBatch(\n inputs: string[],\n provider: HostEmbeddingProvider,\n signal?: AbortSignal,\n ): Promise<(number[] | null)[]> {\n try {\n const vectors = await provider.embedBatch?.(\n inputs.map((input) => input.slice(0, 8000)),\n {\n signal: withTimeoutSignal(signal, 30_000),\n inputType: \"document\",\n },\n );\n if (!Array.isArray(vectors)) return inputs.map(() => null);\n return inputs.map((_, index) => this.normalizeHostEmbeddingVector(vectors[index]));\n } catch (err) {\n if (isAbortError(err)) throw err;\n log.debug(`EmbedHelper host provider batch error: ${err}`);\n return inputs.map(() => null);\n }\n }\n\n private normalizeHostEmbeddingVector(value: unknown): number[] | null {\n const vector = normalizeHostEmbeddingVector(value);\n if (!vector) return null;\n const expectedDimension = this.resolveHostEmbeddingExpectedDimension();\n if (expectedDimension !== null && vector.length !== expectedDimension) {\n return null;\n }\n return vector;\n }\n\n private resolveHostEmbeddingExpectedDimension(): number | null {\n const value = this.options.hostEmbeddingExpectedDimension;\n return typeof value === \"number\" && Number.isInteger(value) && value > 0\n ? value\n : null;\n }\n}\n\nfunction providerIdentity(provider: ProviderConfig): EmbedProviderIdentity {\n return `${provider.type}:${provider.model}`;\n}\n\nfunction normalizeHttpEmbeddingVector(vector: unknown): number[] | null {\n if (!Array.isArray(vector)) return null;\n const normalized: number[] = [];\n for (const component of vector) {\n if (typeof component !== \"number\" || !Number.isFinite(component)) {\n return null;\n }\n normalized.push(component);\n }\n return normalized;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-3TSTGI6F.js";
|
|
4
4
|
import {
|
|
5
5
|
namespaceCollectionName
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-V4GNSDFH.js";
|
|
7
7
|
import {
|
|
8
8
|
namespaceIdentityFromToken,
|
|
9
9
|
namespaceIdentityToken
|
|
@@ -204,4 +204,4 @@ export {
|
|
|
204
204
|
verifyNamespaces,
|
|
205
205
|
runNamespaceMigration
|
|
206
206
|
};
|
|
207
|
-
//# sourceMappingURL=chunk-
|
|
207
|
+
//# sourceMappingURL=chunk-YGIQORJ3.js.map
|
package/dist/cli.js
CHANGED
|
@@ -90,7 +90,7 @@ import {
|
|
|
90
90
|
runWorkProductStatusCliCommand,
|
|
91
91
|
runWorkProjectCliCommand,
|
|
92
92
|
runWorkTaskCliCommand
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-H5BWGCRZ.js";
|
|
94
94
|
import "./chunk-MC4FJXPA.js";
|
|
95
95
|
import "./chunk-LQHDIS7L.js";
|
|
96
96
|
import "./chunk-7F7Z6MOS.js";
|
|
@@ -123,8 +123,8 @@ import "./chunk-HOHVIVDR.js";
|
|
|
123
123
|
import "./chunk-TGQ2NTWH.js";
|
|
124
124
|
import "./chunk-CKFLLAIS.js";
|
|
125
125
|
import "./chunk-3T74IZB3.js";
|
|
126
|
-
import "./chunk-
|
|
127
|
-
import "./chunk-
|
|
126
|
+
import "./chunk-M4AYVEWS.js";
|
|
127
|
+
import "./chunk-YGIQORJ3.js";
|
|
128
128
|
import "./chunk-HL4DB7TO.js";
|
|
129
129
|
import "./chunk-7XH7VJN4.js";
|
|
130
130
|
import "./chunk-EZ25VE3G.js";
|
|
@@ -169,7 +169,7 @@ import "./chunk-G6NKALRN.js";
|
|
|
169
169
|
import "./chunk-OO42R444.js";
|
|
170
170
|
import "./chunk-K6MV3TRQ.js";
|
|
171
171
|
import "./chunk-OADWQ5CR.js";
|
|
172
|
-
import "./chunk-
|
|
172
|
+
import "./chunk-HGNOCPZX.js";
|
|
173
173
|
import "./chunk-SEDEKFYQ.js";
|
|
174
174
|
import "./chunk-JBPKEARU.js";
|
|
175
175
|
import "./chunk-TMSXWOBZ.js";
|
|
@@ -178,10 +178,10 @@ import "./chunk-RSUYKGGZ.js";
|
|
|
178
178
|
import "./chunk-42NQ7AVG.js";
|
|
179
179
|
import "./chunk-7RXCMVFQ.js";
|
|
180
180
|
import "./chunk-7WV3F5DQ.js";
|
|
181
|
-
import "./chunk-
|
|
181
|
+
import "./chunk-BQCHEV7O.js";
|
|
182
182
|
import "./chunk-D24OXEPB.js";
|
|
183
|
-
import "./chunk-
|
|
184
|
-
import "./chunk-
|
|
183
|
+
import "./chunk-76NHR6ZL.js";
|
|
184
|
+
import "./chunk-O6YH5F47.js";
|
|
185
185
|
import "./chunk-ZQNCHPTZ.js";
|
|
186
186
|
import "./chunk-YF6FMLBT.js";
|
|
187
187
|
import "./chunk-R6OVFAX6.js";
|
|
@@ -189,8 +189,8 @@ import "./chunk-PLBIPT6I.js";
|
|
|
189
189
|
import "./chunk-35NN3ZFA.js";
|
|
190
190
|
import "./chunk-T4WDJPEZ.js";
|
|
191
191
|
import "./chunk-FVZ2ISIX.js";
|
|
192
|
-
import "./chunk-
|
|
193
|
-
import "./chunk-
|
|
192
|
+
import "./chunk-4ESAR77N.js";
|
|
193
|
+
import "./chunk-UM5AWJNQ.js";
|
|
194
194
|
import "./chunk-GDASG7NC.js";
|
|
195
195
|
import "./chunk-GDB4J2H3.js";
|
|
196
196
|
import "./chunk-ARV3AUOM.js";
|
|
@@ -212,13 +212,13 @@ import "./chunk-DRUDC2UX.js";
|
|
|
212
212
|
import "./chunk-AQEJKOKI.js";
|
|
213
213
|
import "./chunk-6HMYUWXR.js";
|
|
214
214
|
import "./chunk-J6BH2OBA.js";
|
|
215
|
-
import "./chunk-
|
|
216
|
-
import "./chunk-
|
|
215
|
+
import "./chunk-V4GNSDFH.js";
|
|
216
|
+
import "./chunk-UTHQPSRC.js";
|
|
217
217
|
import "./chunk-WRFKZEO6.js";
|
|
218
218
|
import "./chunk-CYEPCZN5.js";
|
|
219
219
|
import "./chunk-LQ6JI4VH.js";
|
|
220
220
|
import "./chunk-SANZHXY2.js";
|
|
221
|
-
import "./chunk-
|
|
221
|
+
import "./chunk-WAS3NV46.js";
|
|
222
222
|
import "./chunk-5CEJH5ZN.js";
|
|
223
223
|
import "./chunk-AER6MT24.js";
|
|
224
224
|
import "./chunk-CINZGPSJ.js";
|
|
@@ -238,7 +238,7 @@ import "./chunk-QDW3E4RD.js";
|
|
|
238
238
|
import "./chunk-EH5ED3C6.js";
|
|
239
239
|
import "./chunk-3ONXXHQO.js";
|
|
240
240
|
import "./chunk-ODPLEWB6.js";
|
|
241
|
-
import "./chunk-
|
|
241
|
+
import "./chunk-3RCBIOOJ.js";
|
|
242
242
|
import "./chunk-ZY2MNJR6.js";
|
|
243
243
|
import "./chunk-SQNED75R.js";
|
|
244
244
|
import "./chunk-EHQ5HO5T.js";
|
|
@@ -2,8 +2,9 @@ import {
|
|
|
2
2
|
EmbeddingFallback,
|
|
3
3
|
EmbeddingProviderUnavailableError,
|
|
4
4
|
EmbeddingTimeoutError
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-C2PG7IEH.js";
|
|
6
6
|
import "./chunk-3ONXXHQO.js";
|
|
7
|
+
import "./chunk-3RCBIOOJ.js";
|
|
7
8
|
import "./chunk-JUC24CTX.js";
|
|
8
9
|
import "./chunk-NU3CSQ4H.js";
|
|
9
10
|
import "./chunk-PZ5AY32C.js";
|
package/dist/extraction.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ExtractionEngine
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-I5REUWLH.js";
|
|
4
4
|
import "./chunk-4RA3C3EV.js";
|
|
5
5
|
import "./chunk-5GSUBCZM.js";
|
|
6
6
|
import "./chunk-54V4BZWP.js";
|
|
@@ -13,6 +13,7 @@ import "./chunk-EI6V5UXY.js";
|
|
|
13
13
|
import "./chunk-PNLCEFE4.js";
|
|
14
14
|
import "./chunk-O75CRYGF.js";
|
|
15
15
|
import "./chunk-QDW3E4RD.js";
|
|
16
|
+
import "./chunk-3RCBIOOJ.js";
|
|
16
17
|
import "./chunk-VUA4S7P6.js";
|
|
17
18
|
import "./chunk-IQVQJJL7.js";
|
|
18
19
|
import "./chunk-L2EXJQJP.js";
|
|
@@ -10,6 +10,9 @@ import {
|
|
|
10
10
|
} from "./chunk-S75M5ZRK.js";
|
|
11
11
|
import "./chunk-2F6NP3NT.js";
|
|
12
12
|
import "./chunk-TERNBNJB.js";
|
|
13
|
+
import {
|
|
14
|
+
resolveMemoryLifecycleCapabilities
|
|
15
|
+
} from "./chunk-3RCBIOOJ.js";
|
|
13
16
|
import "./chunk-TBBDFYXW.js";
|
|
14
17
|
import "./chunk-A2IYSXDQ.js";
|
|
15
18
|
import "./chunk-LPSF4OQH.js";
|
|
@@ -100,6 +103,7 @@ async function runFirstStartMigration(options) {
|
|
|
100
103
|
signal
|
|
101
104
|
} = options;
|
|
102
105
|
const now = (options.now ?? (() => /* @__PURE__ */ new Date()))();
|
|
106
|
+
const lifecycleCaps = resolveMemoryLifecycleCapabilities(config);
|
|
103
107
|
const abortedResult = (candidateCount2 = 0, demotedCount2 = 0, failureCount2 = 0) => ({
|
|
104
108
|
skipped: candidateCount2 === 0 && demotedCount2 === 0 && failureCount2 === 0,
|
|
105
109
|
skipReason: candidateCount2 === 0 && demotedCount2 === 0 && failureCount2 === 0 ? "aborted" : void 0,
|
|
@@ -112,7 +116,7 @@ async function runFirstStartMigration(options) {
|
|
|
112
116
|
if (signal?.aborted) {
|
|
113
117
|
return abortedResult();
|
|
114
118
|
}
|
|
115
|
-
if (!
|
|
119
|
+
if (!lifecycleCaps.lifecyclePolicy) {
|
|
116
120
|
return {
|
|
117
121
|
skipped: true,
|
|
118
122
|
skipReason: "lifecyclePolicyEnabled is false",
|
|
@@ -260,4 +264,4 @@ export {
|
|
|
260
264
|
LIFECYCLE_INIT_DONE_MARKER,
|
|
261
265
|
runFirstStartMigration
|
|
262
266
|
};
|
|
263
|
-
//# sourceMappingURL=first-start-migration-
|
|
267
|
+
//# sourceMappingURL=first-start-migration-22LPFHD5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/maintenance/first-start-migration.ts"],"sourcesContent":["/**\n * First-start lifecycle migration (issue #686 retention-completion).\n *\n * When `lifecyclePolicyEnabled` is true but the memoryDir has never been\n * touched by the lifecycle policy (i.e. the state marker\n * `.lifecycle-init-done` does not exist), run a one-time, rate-limited\n * demotion sweep so the hot tier isn't flooded on the first real cron pass.\n *\n * Design constraints:\n * - Capped at `FIRST_START_DEMOTION_CAP` (default 50) demotions per run\n * so a large pre-existing corpus doesn't stall startup.\n * - Resumable: subsequent invocations see the marker and skip.\n * - The marker is written AFTER all mutations succeed so a crash during\n * migration doesn't leave a false \"done\" marker (CLAUDE.md rule #12).\n * - Dry-run mode reports candidates without mutating anything or writing\n * the marker (safe to call from tests).\n */\n\nimport path from \"node:path\";\nimport { access, mkdir, readFile, unlink, writeFile } from \"node:fs/promises\";\nimport { resolveMemoryLifecycleCapabilities } from \"../capabilities.js\";\nimport type { StorageManager } from \"../storage.js\";\nimport type { PluginConfig } from \"../types.js\";\nimport {\n decideTierTransition,\n type TierRoutingPolicy,\n} from \"../tier-routing.js\";\nimport { TierMigrationExecutor } from \"../tier-migration.js\";\nimport type { SearchBackend } from \"../search/port.js\";\nimport {\n applyUtilityPromotionRuntimePolicy,\n loadUtilityRuntimeValues,\n} from \"../utility-runtime.js\";\n\nexport const FIRST_START_DEMOTION_CAP = 50;\nexport const LIFECYCLE_INIT_DONE_MARKER = \".lifecycle-init-done\";\nconst LIFECYCLE_QMD_REFRESH_PENDING_MARKER = \".lifecycle-qmd-refresh-pending\";\n\ntype QmdRefreshPendingMarker = {\n createdAt: string;\n collection: string;\n};\n\nexport interface FirstStartMigrationOptions {\n storage: StorageManager;\n config: PluginConfig;\n /** Override the per-run demotion cap (default: FIRST_START_DEMOTION_CAP). */\n demotionCap?: number;\n /** When true, report candidates but do not mutate or write the marker. */\n dryRun?: boolean;\n /** Optional QMD backend used to journal demotions and refresh tier collections. */\n qmd?: SearchBackend;\n /** Hot-tier QMD collection name. Defaults to config.qmdCollection. */\n hotCollection?: string;\n /** Cold-tier QMD collection name. Defaults to config.qmdColdCollection. */\n coldCollection?: string;\n /** Optional shutdown signal. When aborted, the migration stops without writing the done marker. */\n signal?: AbortSignal;\n /** Override clock for tests. */\n now?: () => Date;\n}\n\nexport interface FirstStartMigrationResult {\n skipped: boolean;\n skipReason?: string;\n dryRun: boolean;\n candidateCount: number;\n demotedCount: number;\n /** Number of individual demotion failures. When > 0, the init-done marker is\n * NOT written so the next start can retry the failed demotions. */\n failureCount: number;\n cappedAt: number;\n}\n\nfunction markerPath(memoryDir: string): string {\n return path.join(memoryDir, \"state\", LIFECYCLE_INIT_DONE_MARKER);\n}\n\nfunction qmdRefreshPendingPath(memoryDir: string): string {\n return path.join(memoryDir, \"state\", LIFECYCLE_QMD_REFRESH_PENDING_MARKER);\n}\n\nasync function markerExists(memoryDir: string): Promise<boolean> {\n try {\n await access(markerPath(memoryDir));\n return true;\n } catch {\n return false;\n }\n}\n\nasync function writeMarker(memoryDir: string, now: Date): Promise<void> {\n const p = markerPath(memoryDir);\n await mkdir(path.dirname(p), { recursive: true });\n await writeFile(p, JSON.stringify({ createdAt: now.toISOString() }), \"utf-8\");\n}\n\nasync function readQmdRefreshPending(memoryDir: string): Promise<QmdRefreshPendingMarker | null> {\n try {\n const raw = await readFile(qmdRefreshPendingPath(memoryDir), \"utf-8\");\n const parsed = JSON.parse(raw) as unknown;\n if (\n parsed &&\n typeof parsed === \"object\" &&\n typeof (parsed as { createdAt?: unknown }).createdAt === \"string\" &&\n typeof (parsed as { collection?: unknown }).collection === \"string\" &&\n (parsed as { collection: string }).collection.length > 0\n ) {\n return parsed as QmdRefreshPendingMarker;\n }\n return null;\n } catch {\n return null;\n }\n}\n\nasync function pathExists(p: string): Promise<boolean> {\n try {\n await access(p);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function writeQmdRefreshPending(memoryDir: string, now: Date, collection: string): Promise<void> {\n const p = qmdRefreshPendingPath(memoryDir);\n await mkdir(path.dirname(p), { recursive: true });\n await writeFile(p, JSON.stringify({ createdAt: now.toISOString(), collection }), \"utf-8\");\n}\n\nasync function clearQmdRefreshPending(memoryDir: string): Promise<void> {\n await unlink(qmdRefreshPendingPath(memoryDir)).catch(() => {});\n}\n\nasync function buildTierRoutingPolicy(config: PluginConfig): Promise<TierRoutingPolicy> {\n const basePolicy: TierRoutingPolicy = {\n enabled: config.qmdTierMigrationEnabled,\n demotionMinAgeDays: config.qmdTierDemotionMinAgeDays,\n demotionValueThreshold: config.qmdTierDemotionValueThreshold,\n promotionValueThreshold: config.qmdTierPromotionValueThreshold,\n };\n const runtime = await loadUtilityRuntimeValues({\n memoryDir: config.memoryDir,\n memoryUtilityLearningEnabled: config.memoryUtilityLearningEnabled,\n promotionByOutcomeEnabled: config.promotionByOutcomeEnabled,\n });\n return applyUtilityPromotionRuntimePolicy(basePolicy, runtime);\n}\n\nasync function refreshQmdCollection(\n qmd: SearchBackend,\n collection: string,\n signal?: AbortSignal,\n): Promise<void> {\n if (typeof qmd.updateCollectionStrict === \"function\") {\n await qmd.updateCollectionStrict(collection, { signal });\n return;\n }\n await qmd.updateCollection(collection, { signal });\n}\n\n/**\n * Run the first-start migration sweep. No-ops when:\n * - `lifecyclePolicyEnabled` is false, or\n * - `qmdTierMigrationEnabled` is false (no tier migration configured), or\n * - the state marker already exists (already ran).\n *\n * Returns a structured result describing what happened.\n */\nexport async function runFirstStartMigration(\n options: FirstStartMigrationOptions,\n): Promise<FirstStartMigrationResult> {\n const {\n storage,\n config,\n demotionCap = FIRST_START_DEMOTION_CAP,\n dryRun = false,\n qmd,\n signal,\n } = options;\n const now = (options.now ?? (() => new Date()))();\n const lifecycleCaps = resolveMemoryLifecycleCapabilities(config);\n const abortedResult = (candidateCount = 0, demotedCount = 0, failureCount = 0): FirstStartMigrationResult => ({\n skipped: candidateCount === 0 && demotedCount === 0 && failureCount === 0,\n skipReason: candidateCount === 0 && demotedCount === 0 && failureCount === 0 ? \"aborted\" : undefined,\n dryRun,\n candidateCount,\n demotedCount,\n failureCount,\n cappedAt: demotionCap,\n });\n\n if (signal?.aborted) {\n return abortedResult();\n }\n\n if (!lifecycleCaps.lifecyclePolicy) {\n return {\n skipped: true,\n skipReason: \"lifecyclePolicyEnabled is false\",\n dryRun,\n candidateCount: 0,\n demotedCount: 0,\n failureCount: 0,\n cappedAt: demotionCap,\n };\n }\n\n if (!config.qmdTierMigrationEnabled) {\n return {\n skipped: true,\n skipReason: \"qmdTierMigrationEnabled is false\",\n dryRun,\n candidateCount: 0,\n demotedCount: 0,\n failureCount: 0,\n cappedAt: demotionCap,\n };\n }\n\n if (await markerExists(config.memoryDir)) {\n return {\n skipped: true,\n skipReason: \"lifecycle-init-done marker already present\",\n dryRun,\n candidateCount: 0,\n demotedCount: 0,\n failureCount: 0,\n cappedAt: demotionCap,\n };\n }\n\n if (signal?.aborted) {\n return abortedResult();\n }\n\n const policy = await buildTierRoutingPolicy(config);\n if (signal?.aborted) {\n return abortedResult();\n }\n\n const hotMemories = await storage.readAllMemories();\n if (signal?.aborted) {\n return abortedResult();\n }\n\n // Find hot memories that should be demoted to cold\n const demotionCandidates = hotMemories.filter((m) => {\n const decision = decideTierTransition(m, \"hot\", policy, now);\n return decision.changed && decision.nextTier === \"cold\";\n });\n\n const candidateCount = demotionCandidates.length;\n // Apply cap\n const batch = demotionCandidates.slice(0, demotionCap);\n\n if (dryRun) {\n return {\n skipped: false,\n dryRun: true,\n candidateCount,\n demotedCount: 0,\n failureCount: 0,\n cappedAt: demotionCap,\n };\n }\n\n let demotedCount = 0;\n let failureCount = 0;\n let qmdRefreshPendingForRun = false;\n const executor = qmd\n ? new TierMigrationExecutor({\n storage,\n qmd,\n hotCollection: options.hotCollection ?? config.qmdCollection ?? \"openclaw-engram\",\n coldCollection: options.coldCollection ?? config.qmdColdCollection ?? \"openclaw-engram-cold\",\n })\n : null;\n const coldCollection = options.coldCollection ?? config.qmdColdCollection ?? \"openclaw-engram-cold\";\n\n for (const memory of batch) {\n if (signal?.aborted) {\n return abortedResult(candidateCount, demotedCount, failureCount);\n }\n try {\n if (executor) {\n await executor.migrateMemory({\n memory,\n fromTier: \"hot\",\n toTier: \"cold\",\n reason: \"first-start-lifecycle-migration\",\n });\n } else {\n await storage.migrateMemoryToTier(memory, \"cold\");\n }\n demotedCount += 1;\n } catch {\n const targetPath = storage.buildTierMemoryPath(memory, \"cold\");\n const [targetExists, sourceExists] = await Promise.all([\n pathExists(targetPath),\n pathExists(memory.path),\n ]);\n const movedToCold = targetExists && !sourceExists;\n if (movedToCold) {\n if (!qmd) {\n demotedCount += 1;\n continue;\n }\n try {\n await refreshQmdCollection(qmd, coldCollection, signal);\n demotedCount += 1;\n continue;\n } catch {\n qmdRefreshPendingForRun = true;\n try {\n await writeQmdRefreshPending(config.memoryDir, now, coldCollection);\n } catch {\n // The end-of-run retry below still gets a chance to repair the QMD\n // state before we decide whether the init marker is safe to write.\n }\n demotedCount += 1;\n continue;\n }\n }\n // Non-fatal — individual migration failures are counted but do not abort\n // the sweep. We track them so the marker is only written when ALL\n // attempted demotions succeeded (CLAUDE.md rule #12: don't write a\n // success marker after a partial failure).\n failureCount += 1;\n }\n }\n\n // Write marker AFTER all mutations succeed (CLAUDE.md rule #12).\n // If any demotion failed, skip the marker so the next start retries.\n if (signal?.aborted) {\n return abortedResult(candidateCount, demotedCount, failureCount);\n }\n const persistedQmdRefreshPending = qmd ? await readQmdRefreshPending(config.memoryDir) : null;\n const hasPersistedQmdRefreshPending = persistedQmdRefreshPending?.collection === coldCollection;\n if (qmd && persistedQmdRefreshPending && persistedQmdRefreshPending.collection !== coldCollection) {\n failureCount += 1;\n }\n if (qmd && (qmdRefreshPendingForRun || hasPersistedQmdRefreshPending)) {\n try {\n await refreshQmdCollection(qmd, coldCollection, signal);\n await clearQmdRefreshPending(config.memoryDir);\n } catch {\n failureCount += 1;\n }\n }\n if (failureCount === 0) {\n await writeMarker(config.memoryDir, now);\n }\n\n return {\n skipped: false,\n dryRun: false,\n candidateCount,\n demotedCount,\n failureCount,\n cappedAt: demotionCap,\n };\n}\n"],"mappings":"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","names":["candidateCount","demotedCount","failureCount"]}
|
package/dist/index.js
CHANGED
|
@@ -76,7 +76,7 @@ import {
|
|
|
76
76
|
registerTrainingExportAdapter,
|
|
77
77
|
runBulkImportCliCommand,
|
|
78
78
|
runWearablesCliCommand
|
|
79
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-H5BWGCRZ.js";
|
|
80
80
|
import "./chunk-MC4FJXPA.js";
|
|
81
81
|
import "./chunk-LQHDIS7L.js";
|
|
82
82
|
import "./chunk-7F7Z6MOS.js";
|
|
@@ -131,8 +131,8 @@ import {
|
|
|
131
131
|
import {
|
|
132
132
|
parseStrictCliDate
|
|
133
133
|
} from "./chunk-3T74IZB3.js";
|
|
134
|
-
import "./chunk-
|
|
135
|
-
import "./chunk-
|
|
134
|
+
import "./chunk-M4AYVEWS.js";
|
|
135
|
+
import "./chunk-YGIQORJ3.js";
|
|
136
136
|
import "./chunk-HL4DB7TO.js";
|
|
137
137
|
import "./chunk-7XH7VJN4.js";
|
|
138
138
|
import "./chunk-EZ25VE3G.js";
|
|
@@ -171,7 +171,7 @@ import {
|
|
|
171
171
|
saveTaxonomy,
|
|
172
172
|
validateSlug,
|
|
173
173
|
validateTaxonomy
|
|
174
|
-
} from "./chunk-
|
|
174
|
+
} from "./chunk-QNEUZIAH.js";
|
|
175
175
|
import {
|
|
176
176
|
WEARABLE_SOURCE_PREFIX,
|
|
177
177
|
buildExtractionTurns,
|
|
@@ -293,7 +293,7 @@ import {
|
|
|
293
293
|
import "./chunk-LTHVM4XN.js";
|
|
294
294
|
import {
|
|
295
295
|
ExtractionEngine
|
|
296
|
-
} from "./chunk-
|
|
296
|
+
} from "./chunk-I5REUWLH.js";
|
|
297
297
|
import "./chunk-4RA3C3EV.js";
|
|
298
298
|
import "./chunk-5GSUBCZM.js";
|
|
299
299
|
import "./chunk-54V4BZWP.js";
|
|
@@ -339,7 +339,7 @@ import {
|
|
|
339
339
|
FILTER_LABELS,
|
|
340
340
|
isDirectAnswerEligible
|
|
341
341
|
} from "./chunk-6HEM6HTQ.js";
|
|
342
|
-
import "./chunk-
|
|
342
|
+
import "./chunk-C2PG7IEH.js";
|
|
343
343
|
import {
|
|
344
344
|
buildEntityRecallSection
|
|
345
345
|
} from "./chunk-YOLZS7NY.js";
|
|
@@ -468,7 +468,7 @@ import "./chunk-K6MV3TRQ.js";
|
|
|
468
468
|
import "./chunk-OADWQ5CR.js";
|
|
469
469
|
import {
|
|
470
470
|
EngramAccessHttpServer
|
|
471
|
-
} from "./chunk-
|
|
471
|
+
} from "./chunk-HGNOCPZX.js";
|
|
472
472
|
import "./chunk-SEDEKFYQ.js";
|
|
473
473
|
import "./chunk-JBPKEARU.js";
|
|
474
474
|
import "./chunk-TMSXWOBZ.js";
|
|
@@ -482,15 +482,15 @@ import {
|
|
|
482
482
|
} from "./chunk-7WV3F5DQ.js";
|
|
483
483
|
import {
|
|
484
484
|
EngramMcpServer
|
|
485
|
-
} from "./chunk-
|
|
485
|
+
} from "./chunk-BQCHEV7O.js";
|
|
486
486
|
import {
|
|
487
487
|
buildCitationGuidance,
|
|
488
488
|
formatOaiMemCitation,
|
|
489
489
|
parseOaiMemCitation,
|
|
490
490
|
sanitizeNoteForCitation
|
|
491
491
|
} from "./chunk-D24OXEPB.js";
|
|
492
|
-
import "./chunk-
|
|
493
|
-
import "./chunk-
|
|
492
|
+
import "./chunk-76NHR6ZL.js";
|
|
493
|
+
import "./chunk-O6YH5F47.js";
|
|
494
494
|
import "./chunk-ZQNCHPTZ.js";
|
|
495
495
|
import "./chunk-YF6FMLBT.js";
|
|
496
496
|
import {
|
|
@@ -528,13 +528,13 @@ import {
|
|
|
528
528
|
suggestionSubmitRequestSchema,
|
|
529
529
|
validateRequest
|
|
530
530
|
} from "./chunk-FVZ2ISIX.js";
|
|
531
|
-
import "./chunk-
|
|
531
|
+
import "./chunk-4ESAR77N.js";
|
|
532
532
|
import {
|
|
533
533
|
EngramAccessInputError,
|
|
534
534
|
EngramAccessService,
|
|
535
535
|
computeProcedureStats,
|
|
536
536
|
formatProcedureStatsText
|
|
537
|
-
} from "./chunk-
|
|
537
|
+
} from "./chunk-UM5AWJNQ.js";
|
|
538
538
|
import "./chunk-GDASG7NC.js";
|
|
539
539
|
import "./chunk-GDB4J2H3.js";
|
|
540
540
|
import {
|
|
@@ -594,8 +594,8 @@ import {
|
|
|
594
594
|
resolveGitContext,
|
|
595
595
|
stableHash
|
|
596
596
|
} from "./chunk-J6BH2OBA.js";
|
|
597
|
-
import "./chunk-
|
|
598
|
-
import "./chunk-
|
|
597
|
+
import "./chunk-V4GNSDFH.js";
|
|
598
|
+
import "./chunk-UTHQPSRC.js";
|
|
599
599
|
import {
|
|
600
600
|
MeilisearchBackend
|
|
601
601
|
} from "./chunk-WRFKZEO6.js";
|
|
@@ -604,7 +604,7 @@ import {
|
|
|
604
604
|
OramaBackend
|
|
605
605
|
} from "./chunk-LQ6JI4VH.js";
|
|
606
606
|
import "./chunk-SANZHXY2.js";
|
|
607
|
-
import "./chunk-
|
|
607
|
+
import "./chunk-WAS3NV46.js";
|
|
608
608
|
import {
|
|
609
609
|
LanceDbBackend
|
|
610
610
|
} from "./chunk-5CEJH5ZN.js";
|
|
@@ -641,7 +641,7 @@ import {
|
|
|
641
641
|
CrossNamespaceBudget,
|
|
642
642
|
DEFAULT_CROSS_NAMESPACE_BUDGET
|
|
643
643
|
} from "./chunk-ODPLEWB6.js";
|
|
644
|
-
import "./chunk-
|
|
644
|
+
import "./chunk-3RCBIOOJ.js";
|
|
645
645
|
import "./chunk-ZY2MNJR6.js";
|
|
646
646
|
import "./chunk-SQNED75R.js";
|
|
647
647
|
import "./chunk-EHQ5HO5T.js";
|
|
@@ -2,15 +2,15 @@ import {
|
|
|
2
2
|
listNamespaces,
|
|
3
3
|
runNamespaceMigration,
|
|
4
4
|
verifyNamespaces
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-YGIQORJ3.js";
|
|
6
6
|
import "../chunk-3TSTGI6F.js";
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
7
|
+
import "../chunk-V4GNSDFH.js";
|
|
8
|
+
import "../chunk-UTHQPSRC.js";
|
|
9
9
|
import "../chunk-WRFKZEO6.js";
|
|
10
10
|
import "../chunk-CYEPCZN5.js";
|
|
11
11
|
import "../chunk-LQ6JI4VH.js";
|
|
12
12
|
import "../chunk-SANZHXY2.js";
|
|
13
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-WAS3NV46.js";
|
|
14
14
|
import "../chunk-5CEJH5ZN.js";
|
|
15
15
|
import "../chunk-AER6MT24.js";
|
|
16
16
|
import "../chunk-CINZGPSJ.js";
|
|
@@ -23,6 +23,7 @@ import "../chunk-K43PI6DQ.js";
|
|
|
23
23
|
import "../chunk-YNQ6DFSV.js";
|
|
24
24
|
import "../chunk-O75CRYGF.js";
|
|
25
25
|
import "../chunk-3ONXXHQO.js";
|
|
26
|
+
import "../chunk-3RCBIOOJ.js";
|
|
26
27
|
import "../chunk-7RLCCNHU.js";
|
|
27
28
|
import "../chunk-L2B3EE7B.js";
|
|
28
29
|
import "../chunk-M7XQSUBB.js";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
NamespaceSearchRouter,
|
|
3
3
|
namespaceCollectionName
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-V4GNSDFH.js";
|
|
5
|
+
import "../chunk-UTHQPSRC.js";
|
|
6
6
|
import "../chunk-WRFKZEO6.js";
|
|
7
7
|
import "../chunk-CYEPCZN5.js";
|
|
8
8
|
import "../chunk-LQ6JI4VH.js";
|
|
9
9
|
import "../chunk-SANZHXY2.js";
|
|
10
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-WAS3NV46.js";
|
|
11
11
|
import "../chunk-5CEJH5ZN.js";
|
|
12
12
|
import "../chunk-AER6MT24.js";
|
|
13
13
|
import "../chunk-CINZGPSJ.js";
|
|
@@ -20,6 +20,7 @@ import "../chunk-K43PI6DQ.js";
|
|
|
20
20
|
import "../chunk-YNQ6DFSV.js";
|
|
21
21
|
import "../chunk-O75CRYGF.js";
|
|
22
22
|
import "../chunk-3ONXXHQO.js";
|
|
23
|
+
import "../chunk-3RCBIOOJ.js";
|
|
23
24
|
import "../chunk-5GPPACXK.js";
|
|
24
25
|
import "../chunk-AWJ2FHCF.js";
|
|
25
26
|
import "../chunk-42JKGUFJ.js";
|
package/dist/operator-toolkit.js
CHANGED
|
@@ -13,8 +13,8 @@ import {
|
|
|
13
13
|
summarizeProvenanceCoverage,
|
|
14
14
|
summarizeTierDistribution,
|
|
15
15
|
summarizeTombstoneStatus
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-M4AYVEWS.js";
|
|
17
|
+
import "./chunk-YGIQORJ3.js";
|
|
18
18
|
import "./chunk-7XH7VJN4.js";
|
|
19
19
|
import "./chunk-YBPYIAA5.js";
|
|
20
20
|
import "./chunk-CMTINOFS.js";
|
|
@@ -33,13 +33,13 @@ import "./chunk-OO42R444.js";
|
|
|
33
33
|
import "./chunk-K6MV3TRQ.js";
|
|
34
34
|
import "./chunk-4NOI577P.js";
|
|
35
35
|
import "./chunk-J6BH2OBA.js";
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
36
|
+
import "./chunk-V4GNSDFH.js";
|
|
37
|
+
import "./chunk-UTHQPSRC.js";
|
|
38
38
|
import "./chunk-WRFKZEO6.js";
|
|
39
39
|
import "./chunk-CYEPCZN5.js";
|
|
40
40
|
import "./chunk-LQ6JI4VH.js";
|
|
41
41
|
import "./chunk-SANZHXY2.js";
|
|
42
|
-
import "./chunk-
|
|
42
|
+
import "./chunk-WAS3NV46.js";
|
|
43
43
|
import "./chunk-5CEJH5ZN.js";
|
|
44
44
|
import "./chunk-AER6MT24.js";
|
|
45
45
|
import "./chunk-CINZGPSJ.js";
|
|
@@ -52,7 +52,7 @@ import "./chunk-K43PI6DQ.js";
|
|
|
52
52
|
import "./chunk-YNQ6DFSV.js";
|
|
53
53
|
import "./chunk-O75CRYGF.js";
|
|
54
54
|
import "./chunk-3ONXXHQO.js";
|
|
55
|
-
import "./chunk-
|
|
55
|
+
import "./chunk-3RCBIOOJ.js";
|
|
56
56
|
import "./chunk-EHQ5HO5T.js";
|
|
57
57
|
import "./chunk-2LSZVONP.js";
|
|
58
58
|
import "./chunk-DEUNUKTD.js";
|
package/dist/orchestrator.js
CHANGED
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
sanitizeSessionKeyForFilename,
|
|
29
29
|
shouldFilterLifecycleRecallCandidate,
|
|
30
30
|
summarizeGraphShadowComparison
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-QNEUZIAH.js";
|
|
32
32
|
import "./chunk-4T3BMHKD.js";
|
|
33
33
|
import "./chunk-MLKWJOAJ.js";
|
|
34
34
|
import "./chunk-7HYPN2GC.js";
|
|
@@ -79,7 +79,7 @@ import "./chunk-PD6O7AXF.js";
|
|
|
79
79
|
import "./chunk-XHYGJVXL.js";
|
|
80
80
|
import "./chunk-3NN73CM7.js";
|
|
81
81
|
import "./chunk-LTHVM4XN.js";
|
|
82
|
-
import "./chunk-
|
|
82
|
+
import "./chunk-I5REUWLH.js";
|
|
83
83
|
import "./chunk-4RA3C3EV.js";
|
|
84
84
|
import "./chunk-5GSUBCZM.js";
|
|
85
85
|
import "./chunk-54V4BZWP.js";
|
|
@@ -96,7 +96,7 @@ import "./chunk-EO5QWINU.js";
|
|
|
96
96
|
import "./chunk-VEWZZM3H.js";
|
|
97
97
|
import "./chunk-Q6IP2ARR.js";
|
|
98
98
|
import "./chunk-6HEM6HTQ.js";
|
|
99
|
-
import "./chunk-
|
|
99
|
+
import "./chunk-C2PG7IEH.js";
|
|
100
100
|
import "./chunk-YOLZS7NY.js";
|
|
101
101
|
import "./chunk-2PRQG7PV.js";
|
|
102
102
|
import "./chunk-WIWPSQYU.js";
|
|
@@ -150,13 +150,13 @@ import "./chunk-DRUDC2UX.js";
|
|
|
150
150
|
import "./chunk-AQEJKOKI.js";
|
|
151
151
|
import "./chunk-6HMYUWXR.js";
|
|
152
152
|
import "./chunk-J6BH2OBA.js";
|
|
153
|
-
import "./chunk-
|
|
154
|
-
import "./chunk-
|
|
153
|
+
import "./chunk-V4GNSDFH.js";
|
|
154
|
+
import "./chunk-UTHQPSRC.js";
|
|
155
155
|
import "./chunk-WRFKZEO6.js";
|
|
156
156
|
import "./chunk-CYEPCZN5.js";
|
|
157
157
|
import "./chunk-LQ6JI4VH.js";
|
|
158
158
|
import "./chunk-SANZHXY2.js";
|
|
159
|
-
import "./chunk-
|
|
159
|
+
import "./chunk-WAS3NV46.js";
|
|
160
160
|
import "./chunk-5CEJH5ZN.js";
|
|
161
161
|
import "./chunk-AER6MT24.js";
|
|
162
162
|
import "./chunk-CINZGPSJ.js";
|
|
@@ -173,7 +173,7 @@ import "./chunk-O75CRYGF.js";
|
|
|
173
173
|
import "./chunk-QDW3E4RD.js";
|
|
174
174
|
import "./chunk-EH5ED3C6.js";
|
|
175
175
|
import "./chunk-3ONXXHQO.js";
|
|
176
|
-
import "./chunk-
|
|
176
|
+
import "./chunk-3RCBIOOJ.js";
|
|
177
177
|
import "./chunk-SQNED75R.js";
|
|
178
178
|
import "./chunk-EHQ5HO5T.js";
|
|
179
179
|
import "./chunk-2LSZVONP.js";
|