@cortexkit/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/README.md +6 -0
- 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 +123 -15
package/README.md
CHANGED
|
@@ -85,6 +85,12 @@ The wizard auto-detects which harnesses you have (OpenCode, Pi, or both), adds t
|
|
|
85
85
|
|
|
86
86
|
**Troubleshooting:** `npx @cortexkit/magic-context@latest doctor` auto-detects your harnesses, checks for conflicts (compaction, OMO hooks, DCP), verifies the plugin and TUI sidebar, runs an integrity check on the database, and fixes what it can. Add `--issue` to file a ready-to-submit bug report.
|
|
87
87
|
|
|
88
|
+
### Adding Magic Context to an existing project
|
|
89
|
+
|
|
90
|
+
Magic Context is not limited to greenfield work. Run the setup wizard from the root of the project you already use with OpenCode or Pi, then restart the harness in that same directory so the plugin can attach to the existing project identity. New turns will be captured automatically, and older raw session history is summarized as the historian runs.
|
|
91
|
+
|
|
92
|
+
If you want to start organizing existing knowledge right away, use `/ctx-recomp` after setup to rebuild compartments from available history and `/ctx-dream` to run dreamer maintenance on demand. The dashboard can also inspect the shared CortexKit database, memories, compartments, and dreamer runs without starting a coding session.
|
|
93
|
+
|
|
88
94
|
<details>
|
|
89
95
|
<summary><strong>Compatibility with other context-management plugins</strong></summary>
|
|
90
96
|
|
|
@@ -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 {
|
|
@@ -565,10 +568,13 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
565
568
|
api_key: z.ZodOptional<z.ZodString>;
|
|
566
569
|
input_type: z.ZodOptional<z.ZodString>;
|
|
567
570
|
truncate: z.ZodOptional<z.ZodString>;
|
|
571
|
+
max_input_tokens: z.ZodOptional<z.ZodNumber>;
|
|
568
572
|
}, z.core.$strip>, z.ZodTransform<{
|
|
573
|
+
max_input_tokens?: number | undefined;
|
|
569
574
|
provider: "local";
|
|
570
575
|
model: string;
|
|
571
576
|
} | {
|
|
577
|
+
max_input_tokens?: number | undefined;
|
|
572
578
|
truncate?: string | undefined;
|
|
573
579
|
input_type?: string | undefined;
|
|
574
580
|
api_key?: string | undefined;
|
|
@@ -577,7 +583,6 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
577
583
|
endpoint: string;
|
|
578
584
|
} | {
|
|
579
585
|
provider: "off";
|
|
580
|
-
model?: undefined;
|
|
581
586
|
}, {
|
|
582
587
|
provider: "off" | "local" | "openai-compatible";
|
|
583
588
|
model?: string | undefined;
|
|
@@ -585,6 +590,7 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
585
590
|
api_key?: string | undefined;
|
|
586
591
|
input_type?: string | undefined;
|
|
587
592
|
truncate?: string | undefined;
|
|
593
|
+
max_input_tokens?: number | undefined;
|
|
588
594
|
}>>>;
|
|
589
595
|
temporal_awareness: z.ZodDefault<z.ZodBoolean>;
|
|
590
596
|
keep_subagents: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -695,9 +701,11 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
695
701
|
mmap_size_mb: number;
|
|
696
702
|
};
|
|
697
703
|
embedding: {
|
|
704
|
+
max_input_tokens?: number | undefined;
|
|
698
705
|
provider: "local";
|
|
699
706
|
model: string;
|
|
700
707
|
} | {
|
|
708
|
+
max_input_tokens?: number | undefined;
|
|
701
709
|
truncate?: string | undefined;
|
|
702
710
|
input_type?: string | undefined;
|
|
703
711
|
api_key?: string | undefined;
|
|
@@ -706,7 +714,6 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
706
714
|
endpoint: string;
|
|
707
715
|
} | {
|
|
708
716
|
provider: "off";
|
|
709
|
-
model?: undefined;
|
|
710
717
|
};
|
|
711
718
|
temporal_awareness: boolean;
|
|
712
719
|
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;
|