@wolfx/opencode-magic-context 0.23.1 → 0.24.1
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/config/schema/magic-context.d.ts +10 -3
- package/dist/config/schema/magic-context.d.ts.map +1 -1
- package/dist/features/builtin-commands/commands.d.ts.map +1 -1
- package/dist/features/magic-context/compartment-chunk-embedding.d.ts +80 -0
- package/dist/features/magic-context/compartment-chunk-embedding.d.ts.map +1 -0
- package/dist/features/magic-context/compartment-embedding.d.ts +22 -26
- package/dist/features/magic-context/compartment-embedding.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-backfill.d.ts +3 -2
- package/dist/features/magic-context/memory/embedding-backfill.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-cache.d.ts +3 -2
- package/dist/features/magic-context/memory/embedding-cache.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-local.d.ts +2 -1
- package/dist/features/magic-context/memory/embedding-local.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-openai.d.ts +17 -0
- package/dist/features/magic-context/memory/embedding-openai.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-provider.d.ts +2 -0
- package/dist/features/magic-context/memory/embedding-provider.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding.d.ts +1 -1
- package/dist/features/magic-context/memory/embedding.d.ts.map +1 -1
- package/dist/features/magic-context/memory/storage-memory-embeddings.d.ts +5 -1
- package/dist/features/magic-context/memory/storage-memory-embeddings.d.ts.map +1 -1
- package/dist/features/magic-context/memory/storage-memory-fts.d.ts +1 -7
- package/dist/features/magic-context/memory/storage-memory-fts.d.ts.map +1 -1
- package/dist/features/magic-context/memory/storage-memory.d.ts +18 -12
- package/dist/features/magic-context/memory/storage-memory.d.ts.map +1 -1
- package/dist/features/magic-context/migrations.d.ts.map +1 -1
- package/dist/features/magic-context/project-embedding-registry.d.ts +53 -0
- package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
- package/dist/features/magic-context/search.d.ts +14 -1
- package/dist/features/magic-context/search.d.ts.map +1 -1
- package/dist/features/magic-context/session-project-storage.d.ts +17 -0
- package/dist/features/magic-context/session-project-storage.d.ts.map +1 -0
- package/dist/features/magic-context/storage-db.d.ts +1 -1
- package/dist/features/magic-context/storage-db.d.ts.map +1 -1
- package/dist/features/magic-context/storage-memory-mutation-log.d.ts +2 -0
- package/dist/features/magic-context/storage-memory-mutation-log.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta-persisted.d.ts +16 -0
- package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta-session.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta-shared.d.ts +3 -1
- package/dist/features/magic-context/storage-meta-shared.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta.d.ts +1 -1
- package/dist/features/magic-context/storage-meta.d.ts.map +1 -1
- package/dist/features/magic-context/storage-tags.d.ts +10 -1
- package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
- package/dist/features/magic-context/storage.d.ts +3 -2
- package/dist/features/magic-context/storage.d.ts.map +1 -1
- package/dist/features/magic-context/types.d.ts +1 -0
- package/dist/features/magic-context/types.d.ts.map +1 -1
- package/dist/features/magic-context/workspaces.d.ts +20 -0
- package/dist/features/magic-context/workspaces.d.ts.map +1 -0
- package/dist/hooks/magic-context/apply-operations.d.ts +23 -0
- package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
- package/dist/hooks/magic-context/auto-search-hint.d.ts.map +1 -1
- package/dist/hooks/magic-context/command-handler.d.ts +5 -0
- package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-partial-recomp.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-types.d.ts +11 -1
- package/dist/hooks/magic-context/compartment-runner-types.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner.d.ts.map +1 -1
- package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts +7 -2
- package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts.map +1 -1
- package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -1
- package/dist/hooks/magic-context/hook.d.ts.map +1 -1
- package/dist/hooks/magic-context/inject-compartments.d.ts +23 -3
- package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
- package/dist/hooks/magic-context/recomp-orchestrator.d.ts +1 -1
- package/dist/hooks/magic-context/recomp-orchestrator.d.ts.map +1 -1
- package/dist/hooks/magic-context/reference-retrieval.d.ts.map +1 -1
- package/dist/hooks/magic-context/sentinel.d.ts +33 -28
- package/dist/hooks/magic-context/sentinel.d.ts.map +1 -1
- package/dist/hooks/magic-context/strip-content.d.ts +34 -17
- package/dist/hooks/magic-context/strip-content.d.ts.map +1 -1
- package/dist/hooks/magic-context/strip-structural-noise.d.ts +5 -7
- package/dist/hooks/magic-context/strip-structural-noise.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +4 -5
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform.d.ts.map +1 -1
- package/dist/index.js +2411 -365
- package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
- package/dist/shared/announcement.d.ts +1 -1
- package/dist/shared/rpc-types.d.ts +1 -1
- package/dist/shared/rpc-types.d.ts.map +1 -1
- package/dist/shared/tui-preferences.d.ts +32 -0
- package/dist/shared/tui-preferences.d.ts.map +1 -0
- package/dist/tools/ctx-memory/tools.d.ts.map +1 -1
- package/dist/tools/ctx-search/tools.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/shared/announcement.ts +6 -6
- package/src/shared/rpc-types.ts +1 -1
- package/src/shared/tui-preferences.test.ts +210 -0
- package/src/shared/tui-preferences.ts +303 -0
- package/src/tui/index.tsx +5 -3
- package/src/tui/slots/sidebar-content.tsx +119 -14
|
@@ -243,10 +243,13 @@ export declare const EmbeddingConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
243
243
|
api_key: z.ZodOptional<z.ZodString>;
|
|
244
244
|
input_type: z.ZodOptional<z.ZodString>;
|
|
245
245
|
truncate: z.ZodOptional<z.ZodString>;
|
|
246
|
+
max_input_tokens: z.ZodOptional<z.ZodNumber>;
|
|
246
247
|
}, z.core.$strip>, z.ZodTransform<{
|
|
248
|
+
max_input_tokens?: number | undefined;
|
|
247
249
|
provider: "local";
|
|
248
250
|
model: string;
|
|
249
251
|
} | {
|
|
252
|
+
max_input_tokens?: number | undefined;
|
|
250
253
|
truncate?: string | undefined;
|
|
251
254
|
input_type?: string | undefined;
|
|
252
255
|
api_key?: string | undefined;
|
|
@@ -255,7 +258,6 @@ export declare const EmbeddingConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
255
258
|
endpoint: string;
|
|
256
259
|
} | {
|
|
257
260
|
provider: "off";
|
|
258
|
-
model?: undefined;
|
|
259
261
|
}, {
|
|
260
262
|
provider: "off" | "local" | "openai-compatible";
|
|
261
263
|
model?: string | undefined;
|
|
@@ -263,6 +265,7 @@ export declare const EmbeddingConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
263
265
|
api_key?: string | undefined;
|
|
264
266
|
input_type?: string | undefined;
|
|
265
267
|
truncate?: string | undefined;
|
|
268
|
+
max_input_tokens?: number | undefined;
|
|
266
269
|
}>>;
|
|
267
270
|
export type EmbeddingConfig = z.infer<typeof EmbeddingConfigSchema>;
|
|
268
271
|
export interface MagicContextConfig {
|
|
@@ -568,10 +571,13 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
568
571
|
api_key: z.ZodOptional<z.ZodString>;
|
|
569
572
|
input_type: z.ZodOptional<z.ZodString>;
|
|
570
573
|
truncate: z.ZodOptional<z.ZodString>;
|
|
574
|
+
max_input_tokens: z.ZodOptional<z.ZodNumber>;
|
|
571
575
|
}, z.core.$strip>, z.ZodTransform<{
|
|
576
|
+
max_input_tokens?: number | undefined;
|
|
572
577
|
provider: "local";
|
|
573
578
|
model: string;
|
|
574
579
|
} | {
|
|
580
|
+
max_input_tokens?: number | undefined;
|
|
575
581
|
truncate?: string | undefined;
|
|
576
582
|
input_type?: string | undefined;
|
|
577
583
|
api_key?: string | undefined;
|
|
@@ -580,7 +586,6 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
580
586
|
endpoint: string;
|
|
581
587
|
} | {
|
|
582
588
|
provider: "off";
|
|
583
|
-
model?: undefined;
|
|
584
589
|
}, {
|
|
585
590
|
provider: "off" | "local" | "openai-compatible";
|
|
586
591
|
model?: string | undefined;
|
|
@@ -588,6 +593,7 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
588
593
|
api_key?: string | undefined;
|
|
589
594
|
input_type?: string | undefined;
|
|
590
595
|
truncate?: string | undefined;
|
|
596
|
+
max_input_tokens?: number | undefined;
|
|
591
597
|
}>>>;
|
|
592
598
|
temporal_awareness: z.ZodDefault<z.ZodBoolean>;
|
|
593
599
|
keep_subagents: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -702,9 +708,11 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
702
708
|
mmap_size_mb: number;
|
|
703
709
|
};
|
|
704
710
|
embedding: {
|
|
711
|
+
max_input_tokens?: number | undefined;
|
|
705
712
|
provider: "local";
|
|
706
713
|
model: string;
|
|
707
714
|
} | {
|
|
715
|
+
max_input_tokens?: number | undefined;
|
|
708
716
|
truncate?: string | undefined;
|
|
709
717
|
input_type?: string | undefined;
|
|
710
718
|
api_key?: string | undefined;
|
|
@@ -713,7 +721,6 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
713
721
|
endpoint: string;
|
|
714
722
|
} | {
|
|
715
723
|
provider: "off";
|
|
716
|
-
model?: undefined;
|
|
717
724
|
};
|
|
718
725
|
temporal_awareness: boolean;
|
|
719
726
|
keep_subagents: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magic-context.d.ts","sourceRoot":"","sources":["../../../src/config/schema/magic-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,oCAAoC,KAAK,CAAC;AAOvD,eAAO,MAAM,6BAA6B,2TACkR,CAAC;AAC7T,eAAO,MAAM,4BAA4B,SAAU,CAAC;AACpD,eAAO,MAAM,iCAAiC,OAAO,CAAC;AACtD,eAAO,MAAM,6BAA6B,4BAA4B,CAAC;AAEvE,eAAO,MAAM,aAAa,iFAMhB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;EAAwB,CAAC;AACxD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,qBAAqB,EAAE,YAAY,EAK/C,CAAC;AAEF;;iEAEiE;AACjE,eAAO,MAAM,qBAAqB;;;;;;;GAEnB,CAAC;AAChB,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,wDAAwD;AACxD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0E/B,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAMpB,CAAC;AACd,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;AAE/E;;;;2CAI2C;AAC3C,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAUrB,CAAC;AACd,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"magic-context.d.ts","sourceRoot":"","sources":["../../../src/config/schema/magic-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/features/builtin-commands/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,wBAAgB,8BAA8B,IAAI,oBAAoB,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/features/builtin-commands/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,wBAAgB,8BAA8B,IAAI,oBAAoB,CAkCrE"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { Database } from "../../shared/sqlite";
|
|
2
|
+
export declare const DEFAULT_COMPARTMENT_CHUNK_MAX_INPUT_TOKENS = 512;
|
|
3
|
+
/**
|
|
4
|
+
* Fraction of the configured `max_input_tokens` we actually fill per window.
|
|
5
|
+
*
|
|
6
|
+
* `max_input_tokens` is the provider's HARD context ceiling, but we window using
|
|
7
|
+
* our own `estimateTokens` heuristic, which drifts from the provider's real
|
|
8
|
+
* tokenizer (observed ~1% on Qwen3 — a chunk we sized at 8192 counted 8261 on
|
|
9
|
+
* the server and was silently truncated). Targeting 90% of the ceiling absorbs
|
|
10
|
+
* that cross-tokenizer drift so a window never exceeds the provider limit.
|
|
11
|
+
*/
|
|
12
|
+
export declare const CHUNK_WINDOW_SAFETY_RATIO = 0.9;
|
|
13
|
+
export interface CompartmentChunkBackfillCandidate {
|
|
14
|
+
id: number;
|
|
15
|
+
sessionId: string;
|
|
16
|
+
startMessage: number;
|
|
17
|
+
endMessage: number;
|
|
18
|
+
title: string;
|
|
19
|
+
}
|
|
20
|
+
export interface CompartmentChunkWindow {
|
|
21
|
+
windowIndex: number;
|
|
22
|
+
startOrdinal: number;
|
|
23
|
+
endOrdinal: number;
|
|
24
|
+
text: string;
|
|
25
|
+
chunkHash: string;
|
|
26
|
+
}
|
|
27
|
+
export interface StoredCompartmentChunkEmbedding {
|
|
28
|
+
compartmentId: number;
|
|
29
|
+
sessionId: string;
|
|
30
|
+
title: string;
|
|
31
|
+
startOrdinal: number;
|
|
32
|
+
endOrdinal: number;
|
|
33
|
+
windowIndex: number;
|
|
34
|
+
windowStartOrdinal: number;
|
|
35
|
+
windowEndOrdinal: number;
|
|
36
|
+
chunkHash: string;
|
|
37
|
+
modelId: string;
|
|
38
|
+
dims: number;
|
|
39
|
+
vector: Float32Array;
|
|
40
|
+
}
|
|
41
|
+
export interface SaveCompartmentChunkEmbeddingInput {
|
|
42
|
+
compartmentId: number;
|
|
43
|
+
sessionId: string;
|
|
44
|
+
projectPath: string;
|
|
45
|
+
window: CompartmentChunkWindow;
|
|
46
|
+
modelId: string;
|
|
47
|
+
vector: Float32Array;
|
|
48
|
+
createdAt?: number;
|
|
49
|
+
}
|
|
50
|
+
export declare function normalizeCompartmentChunkMaxInputTokens(value: unknown): number;
|
|
51
|
+
export declare function buildCanonicalChunkTextFromFts(db: Database, sessionId: string, startOrdinal: number, endOrdinal: number): string;
|
|
52
|
+
/**
|
|
53
|
+
* Convert historian input text into the same embeddable subset used by the FTS
|
|
54
|
+
* backfill producer: only U:/A: conversational lines remain, and TC: tool-call
|
|
55
|
+
* summaries are removed because they are better served by exact FTS probes.
|
|
56
|
+
*/
|
|
57
|
+
export declare function canonicalizeInMemoryChunkTextForEmbedding(chunkText: string, startOrdinal?: number, endOrdinal?: number): string;
|
|
58
|
+
export declare function chunkCanonicalText(canonicalText: string, startOrdinal: number, endOrdinal: number, maxInputTokens: number): CompartmentChunkWindow[];
|
|
59
|
+
export declare function getExistingChunkHashes(db: Database, compartmentId: number, modelId: string, projectPath?: string): Map<number, string>;
|
|
60
|
+
export declare function chunkEmbeddingWindowsAreCurrent(db: Database, compartmentId: number, modelId: string, windows: readonly CompartmentChunkWindow[], projectPath?: string): boolean;
|
|
61
|
+
export declare function replaceCompartmentChunkEmbeddings(db: Database, rows: readonly SaveCompartmentChunkEmbeddingInput[]): void;
|
|
62
|
+
export declare function getDistinctChunkEmbeddingModelIds(db: Database, projectPath: string): Set<string | null>;
|
|
63
|
+
export declare function clearChunkEmbeddingsForProject(db: Database, projectPath: string, modelId?: string): number;
|
|
64
|
+
export declare function loadCompartmentChunkEmbeddingsForSearch(db: Database, sessionId: string, projectPath: string, modelId?: string | null): StoredCompartmentChunkEmbedding[];
|
|
65
|
+
export declare function loadUnembeddedCompartmentChunkCandidates(db: Database, projectPath: string, modelId: string, limit: number): CompartmentChunkBackfillCandidate[];
|
|
66
|
+
/** Session-scoped variant of {@link loadUnembeddedCompartmentChunkCandidates}.
|
|
67
|
+
* Used by the on-demand `/ctx-embed-history` command, which backfills ONE
|
|
68
|
+
* session at a time (oldest-first so the user watches it fill chronologically),
|
|
69
|
+
* unlike the project-wide passive drain. A compartment is a candidate when it
|
|
70
|
+
* has no chunk-embedding row for `modelId` yet.
|
|
71
|
+
*
|
|
72
|
+
* `excludeIds` lets the drain loop advance past compartments that produced no
|
|
73
|
+
* embeddable work this run (empty canonical text / windows already current) so
|
|
74
|
+
* one un-embeddable old compartment can't block every newer one — without it
|
|
75
|
+
* the oldest-first query would re-select the same stuck prefix forever. */
|
|
76
|
+
export declare function loadUnembeddedSessionChunkCandidates(db: Database, projectPath: string, sessionId: string, modelId: string, limit: number, excludeIds?: readonly number[]): CompartmentChunkBackfillCandidate[];
|
|
77
|
+
/** Count compartments in this session that still lack a chunk embedding for
|
|
78
|
+
* `modelId` — drives the `/ctx-embed-history` progress total. */
|
|
79
|
+
export declare function countUnembeddedSessionCompartments(db: Database, projectPath: string, sessionId: string, modelId: string): number;
|
|
80
|
+
//# sourceMappingURL=compartment-chunk-embedding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compartment-chunk-embedding.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/compartment-chunk-embedding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +1,30 @@
|
|
|
1
1
|
import type { Database } from "../../shared/sqlite";
|
|
2
2
|
/**
|
|
3
|
-
* Compartment
|
|
3
|
+
* Compartment chunk embedding (v2).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* for
|
|
9
|
-
*
|
|
10
|
-
* - future dreamer cross-compartment linking (e.g. "key-files 2 months ago
|
|
11
|
-
* ↔ key-files now").
|
|
5
|
+
* Each compartment's raw `[ordinal] U:/A:` conversational text (TC: tool
|
|
6
|
+
* summaries stripped) is embedded — whole-compartment when it fits the
|
|
7
|
+
* provider's input window, otherwise windowed — and stored in
|
|
8
|
+
* `compartment_chunk_embeddings`. This is the semantic substrate for ctx_search
|
|
9
|
+
* over session history.
|
|
12
10
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
11
|
+
* The older per-compartment `p1_embedding` (summary vector) was retired once
|
|
12
|
+
* chunk embeddings landed: it had no remaining reader (search uses chunks), and
|
|
13
|
+
* the only prospective consumer — dreamer cross-compartment linking — does not
|
|
14
|
+
* exist yet and can derive its own representation when built. The
|
|
15
|
+
* `compartments.p1_embedding` column is left inert; dreamer v2 decides whether
|
|
16
|
+
* to repopulate or drop it.
|
|
17
|
+
*
|
|
18
|
+
* Fire-and-forget + best-effort: a missing/slow embedding provider must never
|
|
19
|
+
* block or fail a historian publish. Gated by `memory.enabled` so a memory-off
|
|
20
|
+
* user never hits the embedding endpoint.
|
|
17
21
|
*/
|
|
18
|
-
interface
|
|
22
|
+
export interface CompartmentChunkToEmbed {
|
|
19
23
|
id: number;
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
startMessage: number;
|
|
25
|
+
endMessage: number;
|
|
26
|
+
/** Optional publish-time chunk text. When present, TC: tool summaries are stripped. */
|
|
27
|
+
sourceChunkText?: string;
|
|
22
28
|
}
|
|
23
|
-
|
|
24
|
-
* Embed the P1 text of the given compartments and persist each vector into
|
|
25
|
-
* `compartments.p1_embedding` (+ `p1_embedding_model_id`). Best-effort per row:
|
|
26
|
-
* one failure logs and continues. Never throws.
|
|
27
|
-
*
|
|
28
|
-
* `embedTextForProject` resolves the project's configured provider/model, so the
|
|
29
|
-
* stored `model_id` stays consistent with memory embeddings for the same project
|
|
30
|
-
* (vector compatibility for cross-corpus search later).
|
|
31
|
-
*/
|
|
32
|
-
export declare function embedAndStoreCompartments(db: Database, sessionId: string, projectPath: string, compartments: readonly CompartmentToEmbed[]): Promise<void>;
|
|
33
|
-
export {};
|
|
29
|
+
export declare function embedAndStoreCompartmentChunks(db: Database, sessionId: string, projectPath: string, compartments: readonly CompartmentChunkToEmbed[]): Promise<void>;
|
|
34
30
|
//# sourceMappingURL=compartment-embedding.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compartment-embedding.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/compartment-embedding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"compartment-embedding.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/compartment-embedding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAepD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,uBAAuB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAsB,8BAA8B,CAChD,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,SAAS,uBAAuB,EAAE,GACjD,OAAO,CAAC,IAAI,CAAC,CAsFf"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { Database } from "../../../shared/sqlite";
|
|
2
|
+
import { type StoredMemoryEmbedding } from "./storage-memory-embeddings";
|
|
2
3
|
import type { Memory } from "./types";
|
|
3
4
|
export declare function ensureMemoryEmbeddings(args: {
|
|
4
5
|
db: Database;
|
|
5
6
|
projectIdentity: string;
|
|
6
7
|
memories: Memory[];
|
|
7
|
-
existingEmbeddings: Map<number,
|
|
8
|
-
}): Promise<Map<number,
|
|
8
|
+
existingEmbeddings: Map<number, StoredMemoryEmbedding>;
|
|
9
|
+
}): Promise<Map<number, StoredMemoryEmbedding>>;
|
|
9
10
|
//# sourceMappingURL=embedding-backfill.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-backfill.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/embedding-backfill.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"embedding-backfill.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/embedding-backfill.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,KAAK,qBAAqB,EAAiB,MAAM,6BAA6B,CAAC;AACxF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IAC/C,EAAE,EAAE,QAAQ,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAC1D,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAmD9C"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Database } from "../../../shared/sqlite";
|
|
2
|
-
|
|
3
|
-
export declare function
|
|
2
|
+
import { type StoredMemoryEmbedding } from "./storage-memory-embeddings";
|
|
3
|
+
export declare function getProjectEmbeddings(db: Database, projectPath: string): Map<number, StoredMemoryEmbedding>;
|
|
4
|
+
export declare function peekProjectEmbeddings(projectPath: string): Map<number, StoredMemoryEmbedding> | null;
|
|
4
5
|
export declare function invalidateProject(projectPath: string): void;
|
|
5
6
|
export declare function invalidateMemory(projectPath: string, memoryId: number): void;
|
|
6
7
|
export declare function resetEmbeddingCacheForTests(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-cache.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/embedding-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"embedding-cache.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/embedding-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AA2B5F,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,GACpB,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAYpC;AAED,wBAAgB,qBAAqB,CACjC,WAAW,EAAE,MAAM,GACpB,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,IAAI,CAE3C;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAE3D;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAG5E;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAGlD;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEhE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { EmbeddingProvider } from "./embedding-provider";
|
|
2
2
|
export declare class LocalEmbeddingProvider implements EmbeddingProvider {
|
|
3
3
|
readonly modelId: string;
|
|
4
|
+
readonly maxInputTokens: number;
|
|
4
5
|
private readonly model;
|
|
5
6
|
private pipeline;
|
|
6
7
|
private initPromise;
|
|
@@ -8,7 +9,7 @@ export declare class LocalEmbeddingProvider implements EmbeddingProvider {
|
|
|
8
9
|
private disposing;
|
|
9
10
|
private disposePromise;
|
|
10
11
|
private readonly inFlightWaiters;
|
|
11
|
-
constructor(model?: string);
|
|
12
|
+
constructor(model?: string, maxInputTokens?: number);
|
|
12
13
|
initialize(): Promise<boolean>;
|
|
13
14
|
private waitForInFlightToDrain;
|
|
14
15
|
private finishInFlight;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-local.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/embedding-local.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAmU9D,qBAAa,sBAAuB,YAAW,iBAAiB;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"embedding-local.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/embedding-local.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAmU9D,qBAAa,sBAAuB,YAAW,iBAAiB;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyB;gBAE7C,KAAK,SAAgC,EAAE,cAAc,SAAM;IAMjE,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAuIpC,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,cAAc;IAShB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAoCvE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC;IAyCnF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B9B,QAAQ,IAAI,OAAO;CAGtB"}
|
|
@@ -7,10 +7,23 @@ interface OpenAICompatibleEmbeddingProviderOptions {
|
|
|
7
7
|
inputType?: string;
|
|
8
8
|
/** Optional `truncate` body field (e.g. NVIDIA NIM 'NONE'/'START'/'END'). */
|
|
9
9
|
truncate?: string;
|
|
10
|
+
/** Maximum safe input tokens for chunk embeddings. */
|
|
11
|
+
maxInputTokens?: number;
|
|
10
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Whether the model an endpoint served is the model we asked for.
|
|
15
|
+
*
|
|
16
|
+
* Exact match after trim+lowercase, with prefix/suffix tolerance so a server
|
|
17
|
+
* that version-expands a name (`text-embedding-3-small` → `…-small-v1`) or
|
|
18
|
+
* trims a vendor prefix still counts as a match. A genuine substitution to a
|
|
19
|
+
* DIFFERENT model (e.g. requested `qwen3-embedding-4b-dwq`, served
|
|
20
|
+
* `text-embedding-qwen3-embedding-0.6b` — neither contains the other) does not.
|
|
21
|
+
*/
|
|
22
|
+
export declare function embeddingModelsMatch(served: string, requested: string): boolean;
|
|
11
23
|
type CircuitState = "closed" | "open" | "half_open";
|
|
12
24
|
export declare class OpenAICompatibleEmbeddingProvider implements EmbeddingProvider {
|
|
13
25
|
readonly modelId: string;
|
|
26
|
+
readonly maxInputTokens: number;
|
|
14
27
|
private readonly endpoint;
|
|
15
28
|
private readonly model;
|
|
16
29
|
private readonly apiKey;
|
|
@@ -20,6 +33,10 @@ export declare class OpenAICompatibleEmbeddingProvider implements EmbeddingProvi
|
|
|
20
33
|
private failureTimes;
|
|
21
34
|
private circuitOpenUntil;
|
|
22
35
|
private openLogged;
|
|
36
|
+
/** One-shot guard so a persistent model substitution doesn't flood the log
|
|
37
|
+
* with one line per batch. Resets with the provider instance (i.e. on any
|
|
38
|
+
* config change), so a corrected config logs again if it regresses. */
|
|
39
|
+
private modelMismatchLogged;
|
|
23
40
|
/** True while a half-open probe is in flight. Only the caller who set this
|
|
24
41
|
* to true is allowed to make a real HTTP call; everyone else short-
|
|
25
42
|
* circuits as if the circuit were still OPEN. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-openai.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/embedding-openai.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,UAAU,wCAAwC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"embedding-openai.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/embedding-openai.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,UAAU,wCAAwC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAK/E;AA+BD,KAAK,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAEpD,qBAAa,iCAAkC,YAAW,iBAAiB;IACvE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,WAAW,CAAS;IAI5B,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B;;4EAEwE;IACxE,OAAO,CAAC,mBAAmB,CAAS;IACpC;;sDAEkD;IAClD,OAAO,CAAC,qBAAqB,CAAS;gBAE1B,OAAO,EAAE,wCAAwC;IAmBvD,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IA0B9B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAKvE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC;IA4KnF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,QAAQ,IAAI,OAAO;IAInB;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAsBhC,OAAO,CAAC,aAAa;IAiCrB,OAAO,CAAC,aAAa;IAUrB,gBAAgB,IAAI,YAAY;IAQhC,gBAAgB,IAAI,MAAM;IAG1B,aAAa,IAAI,IAAI;CAMxB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export interface EmbeddingProvider {
|
|
2
2
|
readonly modelId: string;
|
|
3
|
+
/** Maximum safe input window for one embedding request. Unknown providers default to 512. */
|
|
4
|
+
readonly maxInputTokens?: number;
|
|
3
5
|
initialize(): Promise<boolean>;
|
|
4
6
|
/** Embed a single text. `signal` lets callers abort the underlying network
|
|
5
7
|
* request (or long-running local inference) before the provider's internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-provider.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/embedding-provider.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B;;;iFAG6E;IAC7E,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACxE;yFACqF;IACrF,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IACpF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,QAAQ,IAAI,OAAO,CAAC;CACvB"}
|
|
1
|
+
{"version":3,"file":"embedding-provider.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/embedding-provider.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,6FAA6F;IAC7F,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B;;;iFAG6E;IAC7E,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACxE;yFACqF;IACrF,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IACpF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,QAAQ,IAAI,OAAO,CAAC;CACvB"}
|
|
@@ -2,7 +2,7 @@ import type { EmbeddingConfig } from "../../../config/schema/magic-context";
|
|
|
2
2
|
import type { Database } from "../../../shared/sqlite";
|
|
3
3
|
import { cosineSimilarity } from "./cosine-similarity";
|
|
4
4
|
export type { EmbeddingFeatures, ProjectEmbeddingRegistrationSnapshot, } from "../project-embedding-registry";
|
|
5
|
-
export { _resetProjectEmbeddingRegistryForTests, _setTestProviderFactoryForProject, embedBatchForProject, embedTextForProject, embedUnembeddedMemoriesForProject, getProjectEmbeddingSnapshot, registerProjectEmbeddingAndMaybeWipe, registerProjectInObservationMode, sweepAllRegisteredProjects, unregisterProjectEmbedding, } from "../project-embedding-registry";
|
|
5
|
+
export { _resetProjectEmbeddingRegistryForTests, _setTestProviderFactoryForProject, embedBatchForProject, embedTextForProject, embedUnembeddedCompartmentChunksForProject, embedUnembeddedMemoriesForProject, getProjectEmbeddingSnapshot, registerProjectEmbeddingAndMaybeWipe, registerProjectInObservationMode, sweepAllRegisteredProjects, unregisterProjectEmbedding, } from "../project-embedding-registry";
|
|
6
6
|
export declare function initializeEmbedding(config: EmbeddingConfig): void;
|
|
7
7
|
export declare function isEmbeddingEnabled(): boolean;
|
|
8
8
|
export declare function ensureEmbeddingModel(): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/embedding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAG5E,OAAO,KAAK,EAAE,QAAQ,EAAkC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/embedding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAG5E,OAAO,KAAK,EAAE,QAAQ,EAAkC,MAAM,wBAAwB,CAAC;AAEvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAOvD,YAAY,EACR,iBAAiB,EACjB,oCAAoC,GACvC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACH,sCAAsC,EACtC,iCAAiC,EACjC,oBAAoB,EACpB,mBAAmB,EACnB,0CAA0C,EAC1C,iCAAiC,EACjC,2BAA2B,EAC3B,oCAAoC,EACpC,gCAAgC,EAChC,0BAA0B,EAC1B,0BAA0B,GAC7B,MAAM,+BAA+B,CAAC;AA6GvC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAoBjE;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO7D;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAWhG;AAED,wBAAsB,UAAU,CAC5B,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,CAelC;AAED,wBAAsB,uBAAuB,CACzC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,EACvB,SAAS,SAAK,GACf,OAAO,CAAC,MAAM,CAAC,CAEjB;AAgBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,0BAA0B,CAC5C,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,eAAe,EACvB,SAAS,SAAK,GACf,OAAO,CAAC,MAAM,CAAC,CAsEjB;AAED,8CAA8C;AAC9C,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAmDD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAS3D"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { Database } from "../../../shared/sqlite";
|
|
2
|
+
export interface StoredMemoryEmbedding {
|
|
3
|
+
embedding: Float32Array;
|
|
4
|
+
modelId: string | null;
|
|
5
|
+
}
|
|
2
6
|
export declare function saveEmbedding(db: Database, memoryId: number, embedding: Float32Array, modelId: string): void;
|
|
3
|
-
export declare function loadAllEmbeddings(db: Database, projectPath: string): Map<number,
|
|
7
|
+
export declare function loadAllEmbeddings(db: Database, projectPath: string): Map<number, StoredMemoryEmbedding>;
|
|
4
8
|
export declare function deleteEmbedding(db: Database, memoryId: number): void;
|
|
5
9
|
export declare function getStoredModelId(db: Database, projectPath: string): string | null;
|
|
6
10
|
export declare function clearEmbeddingsForProject(db: Database, projectPath: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-memory-embeddings.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/storage-memory-embeddings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAkC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"storage-memory-embeddings.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/storage-memory-embeddings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAkC,MAAM,wBAAwB,CAAC;AAQvF,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,YAAY,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAoGD,wBAAgB,aAAa,CACzB,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,MAAM,GAChB,IAAI,CAGN;AAED,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,GACpB,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAYpC;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEpE;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGjF;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAEjF;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAG/F"}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
import type { Database } from "../../../shared/sqlite";
|
|
2
2
|
import type { Memory } from "./types";
|
|
3
|
-
/**
|
|
4
|
-
* Sanitize a user query for FTS5 MATCH syntax.
|
|
5
|
-
*
|
|
6
|
-
* FTS5 interprets characters like `-`, `:`, `*`, `(`, `)` as operators.
|
|
7
|
-
* This wraps each whitespace-delimited token in double quotes so special
|
|
8
|
-
* characters are treated as literal content rather than query syntax.
|
|
9
|
-
*/
|
|
10
3
|
export declare function sanitizeFtsQuery(query: string): string;
|
|
11
4
|
export declare function searchMemoriesFTS(db: Database, projectPath: string, query: string, limit?: number): Memory[];
|
|
5
|
+
export declare function searchMemoriesFTSUnion(db: Database, projectPaths: readonly string[], query: string, limit?: number, ownIdentities?: readonly string[], shareCategories?: readonly string[] | null): Memory[];
|
|
12
6
|
//# sourceMappingURL=storage-memory-fts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-memory-fts.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/storage-memory-fts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAkC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"storage-memory-fts.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/storage-memory-fts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAkC,MAAM,wBAAwB,CAAC;AAOvF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AA8CtC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKtD;AAED,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,KAAK,SAAuB,GAC7B,MAAM,EAAE,CAgBV;AAED,wBAAgB,sBAAsB,CAClC,EAAE,EAAE,QAAQ,EACZ,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,KAAK,EAAE,MAAM,EACb,KAAK,SAAuB,EAC5B,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,EACjC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAC3C,MAAM,EAAE,CA8BV"}
|
|
@@ -17,18 +17,24 @@ export declare function toMemory(row: Memory): Memory;
|
|
|
17
17
|
export declare function insertMemory(db: Database, input: MemoryInput): Memory;
|
|
18
18
|
export declare function getMemoryByHash(db: Database, projectPath: string, category: MemoryCategory, normalizedHash: string): Memory | null;
|
|
19
19
|
export declare function getMemoriesByProject(db: Database, projectPath: string, statuses?: MemoryStatus[], expiryCutoff?: number): Memory[];
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
20
|
+
export interface WorkspaceMemorySharingFilter {
|
|
21
|
+
ownIdentities?: readonly string[];
|
|
22
|
+
shareCategories?: readonly string[] | null;
|
|
23
|
+
}
|
|
24
|
+
export interface WorkspaceMemorySqlFilter {
|
|
25
|
+
clause: string;
|
|
26
|
+
params: string[];
|
|
27
|
+
active: boolean;
|
|
28
|
+
}
|
|
29
|
+
export declare function buildWorkspaceMemorySqlFilter(args: {
|
|
30
|
+
identities: readonly string[];
|
|
31
|
+
ownIdentities?: readonly string[];
|
|
32
|
+
shareCategories?: readonly string[] | null;
|
|
33
|
+
tableName?: string;
|
|
34
|
+
}): WorkspaceMemorySqlFilter;
|
|
35
|
+
export declare function getMemoriesByProjects(db: Database, projectPaths: readonly string[], statuses?: MemoryStatus[], expiryCutoff?: number, ownIdentities?: readonly string[], shareCategories?: readonly string[] | null): Memory[];
|
|
36
|
+
export declare function getMaxMemoryIdForProjects(db: Database, projectPaths: readonly string[], ownIdentities?: readonly string[], shareCategories?: readonly string[] | null): number;
|
|
37
|
+
export declare function readNewMemoriesForM1Union(db: Database, projectPaths: readonly string[], afterId: number, expiryCutoff: number, ownIdentities?: readonly string[], shareCategories?: readonly string[] | null): Memory[];
|
|
32
38
|
export declare function getAllActiveMemoriesForMigration(db: Database, projectPath: string): Memory[];
|
|
33
39
|
export declare function getMemoryById(db: Database, id: number): Memory | null;
|
|
34
40
|
export declare function updateMemorySeenCount(db: Database, id: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-memory.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/storage-memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAkC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"storage-memory.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/storage-memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/migrations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/migrations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AA85CpD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAGtC,CAAC;AAmBF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAkBjG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAgEhD"}
|
|
@@ -15,11 +15,14 @@ export interface ProjectEmbeddingRegistrationSnapshot {
|
|
|
15
15
|
enabled: boolean;
|
|
16
16
|
gitCommitEnabled: boolean;
|
|
17
17
|
modelId: string;
|
|
18
|
+
chunkModelId: string;
|
|
18
19
|
}
|
|
19
20
|
export declare function registerProjectEmbeddingAndMaybeWipe(db: Database, projectIdentity: string, config: EmbeddingConfig, features: EmbeddingFeatures, sourceDirectory: string): ProjectEmbeddingRegistrationSnapshot;
|
|
20
21
|
export declare function registerProjectInObservationMode(db: Database, projectIdentity: string, sourceDirectory: string, failedConfig: EmbeddingConfig, failureSummary: string): ProjectEmbeddingRegistrationSnapshot;
|
|
21
22
|
export declare function unregisterProjectEmbedding(projectIdentity: string): void;
|
|
22
23
|
export declare function getProjectEmbeddingSnapshot(projectIdentity: string): ProjectEmbeddingRegistrationSnapshot | null;
|
|
24
|
+
export declare function getProjectChunkEmbeddingModelId(projectIdentity: string): string;
|
|
25
|
+
export declare function getProjectEmbeddingMaxInputTokens(projectIdentity: string): number;
|
|
23
26
|
export declare function embedTextForProject(projectIdentity: string, text: string, signal?: AbortSignal): Promise<{
|
|
24
27
|
vector: Float32Array;
|
|
25
28
|
modelId: string;
|
|
@@ -31,12 +34,62 @@ export declare function embedBatchForProject(projectIdentity: string, texts: str
|
|
|
31
34
|
generation: number;
|
|
32
35
|
} | null>;
|
|
33
36
|
export declare function embedUnembeddedMemoriesForProject(db: Database, projectIdentity: string, batchSize?: number): Promise<number>;
|
|
37
|
+
export declare function embedUnembeddedCompartmentChunksForProject(db: Database, projectIdentity: string): Promise<number>;
|
|
38
|
+
export interface SessionChunkBackfillProgress {
|
|
39
|
+
/** Compartments fully embedded so far this run. */
|
|
40
|
+
embedded: number;
|
|
41
|
+
/** Total compartments that needed embedding when the run started. */
|
|
42
|
+
total: number;
|
|
43
|
+
}
|
|
44
|
+
export type SessionChunkBackfillOutcome = {
|
|
45
|
+
status: "done";
|
|
46
|
+
embedded: number;
|
|
47
|
+
total: number;
|
|
48
|
+
} | {
|
|
49
|
+
status: "nothing";
|
|
50
|
+
embedded: 0;
|
|
51
|
+
total: 0;
|
|
52
|
+
} | {
|
|
53
|
+
status: "disabled";
|
|
54
|
+
embedded: 0;
|
|
55
|
+
total: 0;
|
|
56
|
+
} | {
|
|
57
|
+
status: "busy";
|
|
58
|
+
embedded: 0;
|
|
59
|
+
total: number;
|
|
60
|
+
} | {
|
|
61
|
+
status: "aborted";
|
|
62
|
+
embedded: number;
|
|
63
|
+
total: number;
|
|
64
|
+
} | {
|
|
65
|
+
status: "stalled";
|
|
66
|
+
embedded: number;
|
|
67
|
+
total: number;
|
|
68
|
+
remaining: number;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Backfill ALL un-embedded compartment chunks for ONE session in a single run
|
|
72
|
+
* (the `/ctx-embed-history` command path), oldest-first so progress fills
|
|
73
|
+
* chronologically. Unlike the passive project drain this has no per-sweep cap —
|
|
74
|
+
* the user asked for the whole session — but it still runs under the per-project
|
|
75
|
+
* embedding coordinator lease (mutual exclusion with the passive sweep + sibling
|
|
76
|
+
* processes) and yields between batches so an 8-core MiniLM burst stays
|
|
77
|
+
* interruptible. Idempotent + resumable via chunk_hash; re-running embeds only
|
|
78
|
+
* what's still missing.
|
|
79
|
+
*/
|
|
80
|
+
export declare function embedSessionCompartmentChunks(db: Database, projectIdentity: string, sessionId: string, options?: {
|
|
81
|
+
signal?: AbortSignal;
|
|
82
|
+
onProgress?: (p: SessionChunkBackfillProgress) => void;
|
|
83
|
+
batchSize?: number;
|
|
84
|
+
}): Promise<SessionChunkBackfillOutcome>;
|
|
34
85
|
export declare function sweepAllRegisteredProjects(db: Database, batchSize?: number): Promise<{
|
|
35
86
|
memoriesEmbedded: number;
|
|
36
87
|
commitsEmbedded: number;
|
|
88
|
+
chunksEmbedded: number;
|
|
37
89
|
perProject: Map<string, {
|
|
38
90
|
memories: number;
|
|
39
91
|
commits: number;
|
|
92
|
+
chunks: number;
|
|
40
93
|
}>;
|
|
41
94
|
}>;
|
|
42
95
|
export declare function _setTestProviderFactoryForProject(factory: ((config: EmbeddingConfig) => EmbeddingProvider | null) | null): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-embedding-registry.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/project-embedding-registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGzE,OAAO,KAAK,EAAE,QAAQ,EAAkC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"project-embedding-registry.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/project-embedding-registry.ts"],"names":[],"mappings":"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"}
|