@cortexkit/pi-magic-context 0.49.16 → 0.49.18

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.
Files changed (51) hide show
  1. package/dist/auto-search-worker.js +76 -63
  2. package/dist/chunk-embedding-write-worker.js +10 -10
  3. package/dist/{compaction-marker-candidates-k4tqg4jb.js → compaction-marker-candidates-wjzqbspm.js} +2 -2
  4. package/dist/compaction-marker-candidates-worker.js +2 -2
  5. package/dist/embedding-backfill-vwag34t0.js +23 -0
  6. package/dist/embedding-worker-process.js +1 -1
  7. package/dist/embedding-worker.js +4 -4
  8. package/dist/historian-calibration-extension.js +4 -1
  9. package/dist/{index-g4jf772p.js → index-1kcfwk9c.js} +22 -2
  10. package/dist/{index-657xh9w4.js → index-2mmy81qt.js} +2 -2
  11. package/dist/{index-x3k1530z.js → index-4bv5bttd.js} +3 -3
  12. package/dist/index-4knyh1kt.js +1387 -0
  13. package/dist/{index-ja1c33qa.js → index-d21pdr8v.js} +2 -2
  14. package/dist/{index-xmzhrht0.js → index-d43hmn31.js} +29 -18
  15. package/dist/{index-6dz2ed1v.js → index-d8gc0112.js} +2 -2
  16. package/dist/{index-hy44m6jc.js → index-e1rza8gp.js} +1 -1
  17. package/dist/{index-ajfpyk0x.js → index-fa485mqs.js} +59 -1
  18. package/dist/{index-fhyy4ave.js → index-fvjthct0.js} +851 -73
  19. package/dist/{index-y5c73caa.js → index-g7p75667.js} +32 -3
  20. package/dist/{index-tympym62.js → index-gdjv1nnd.js} +2 -2
  21. package/dist/{index-v8d4vgam.js → index-gp928w10.js} +6 -6
  22. package/dist/{index-46q4e104.js → index-qpq6w67c.js} +1 -1
  23. package/dist/{index-44h64qza.js → index-r9f4f6s1.js} +14 -10
  24. package/dist/{index-dne4ja7a.js → index-rhprywn6.js} +4 -4
  25. package/dist/{index-asrxgdt4.js → index-rrwv9y2k.js} +8 -0
  26. package/dist/{index-mx59cve4.js → index-svgkv4g2.js} +1 -1
  27. package/dist/{index-qqxqwqhp.js → index-vktahpdj.js} +1 -1
  28. package/dist/{index-n3r2d2pr.js → index-vmcgew7x.js} +10 -7
  29. package/dist/{index-afy3dzf9.js → index-xnch62s6.js} +12 -6
  30. package/dist/{index-4178cbfw.js → index-xxn1tpnv.js} +124 -2039
  31. package/dist/{index-s1xn8qfw.js → index-yygsh681.js} +6 -3
  32. package/dist/{index-p3evwech.js → index-z2rkv0mb.js} +3 -3
  33. package/dist/index.js +1109 -355
  34. package/dist/{message-fts-rowid-map-mbanfkt1.js → message-fts-rowid-map-cvpy2dmb.js} +5 -3
  35. package/dist/{message-index-easvmz22.js → message-index-74qdqmq7.js} +11 -11
  36. package/dist/{message-index-bounded-xzerjxmp.js → message-index-bounded-g9hgresf.js} +15 -15
  37. package/dist/{message-time-backfill-3q4kemfc.js → message-time-backfill-ssshbdy8.js} +1 -1
  38. package/dist/migration-worker.js +7 -7
  39. package/dist/{project-embedding-registry-xwnmqmx8.js → project-embedding-registry-vf1ncptn.js} +10 -10
  40. package/dist/raw-ordinal-warmup-worker.js +10 -10
  41. package/dist/{read-session-chunk-1sb5n7zs.js → read-session-chunk-chepqmw5.js} +5 -5
  42. package/dist/{read-session-raw-jz5e9jz0.js → read-session-raw-9s3xn7fc.js} +2 -2
  43. package/dist/{search-x3fa0561.js → search-6ztbx25v.js} +17 -17
  44. package/dist/{search-archive-3ma5n0wr.js → search-archive-jg4a1kcx.js} +6 -6
  45. package/dist/{sqlite-adjpy399.js → sqlite-fsp0sf3r.js} +1 -1
  46. package/dist/{storage-memory-axnsk5t1.js → storage-memory-yxxc5v4n.js} +2 -2
  47. package/dist/{storage-tags-jtessrec.js → storage-tags-1kets0q8.js} +3 -3
  48. package/dist/subagent-entry.js +22 -21
  49. package/dist/tag-snapshot-worker-pi.js +9 -9
  50. package/package.json +6 -1
  51. package/dist/embedding-backfill-c4bdw8pp.js +0 -23
@@ -1,9 +1,10 @@
1
1
  // ../plugin/src/hooks/magic-context/auto-search-worker.ts
2
2
  import { parentPort, workerData } from "node:worker_threads";
3
- var port = parentPort;
4
- if (!port)
3
+ if (!parentPort)
5
4
  throw new Error("auto-search worker requires a parent port");
5
+ var port = parentPort;
6
6
  var input = workerData;
7
+ var persistent = input.persistent === true;
7
8
  if (input.job === "messages") {
8
9
  port.postMessage({ kind: "accepted" });
9
10
  }
@@ -18,19 +19,18 @@ var [
18
19
  { Database, registerSqliteDiagnosticSink },
19
20
  { log }
20
21
  ] = await Promise.all([
21
- import("./embedding-backfill-c4bdw8pp.js"),
22
+ import("./embedding-backfill-vwag34t0.js"),
22
23
  import("./embedding-cache-7rp4gqzr.js"),
23
- import("./storage-memory-axnsk5t1.js"),
24
- import("./project-embedding-registry-xwnmqmx8.js"),
25
- import("./search-x3fa0561.js"),
24
+ import("./storage-memory-yxxc5v4n.js"),
25
+ import("./project-embedding-registry-vf1ncptn.js"),
26
+ import("./search-6ztbx25v.js"),
26
27
  import("./embedding-activity-ew6dshfd.js"),
27
28
  import("./harness-9872e0ym.js"),
28
- import("./sqlite-adjpy399.js"),
29
+ import("./sqlite-fsp0sf3r.js"),
29
30
  import("./logger-dygt96rn.js")
30
31
  ]);
31
32
  setHarness(input.harness);
32
33
  registerSqliteDiagnosticSink(log, getHarness);
33
- setEmbeddingSessionBusy(input.sessionId, input.embeddingHostBusy === true);
34
34
  var nextId = 0;
35
35
  var pending = new Map;
36
36
  var queryDimensions = null;
@@ -51,65 +51,78 @@ function request(message) {
51
51
  port?.postMessage({ ...message, id });
52
52
  });
53
53
  }
54
- if (input.snapshot) {
55
- installProjectEmbeddingSearchBridge(input.snapshot, {
56
- modelId: input.snapshot.modelId,
57
- initialize: async () => true,
58
- isLoaded: () => true,
59
- dispose: async () => {},
60
- embed: async (text) => {
61
- const result = (await request({ kind: "query", text })).result;
62
- return result instanceof Float32Array ? result : result?.vector ?? null;
63
- },
64
- embedBatch: async (texts, _signal, purpose = "passage") => {
65
- const passage = (await request({ kind: "batch", texts, purpose })).passage;
66
- const captured = input.snapshot;
67
- if (!passage || !captured || passage.generation !== captured.generation || passage.modelId !== captured.modelId || passage.providerIdentity !== captured.providerIdentity || passage.runtimeFingerprint !== captured.runtimeFingerprint || !queryDimensions || passage.dimensions !== queryDimensions || passage.vectors.length !== texts.length)
68
- return texts.map(() => null);
69
- return passage.vectors.map((vector) => vector && vector.length === queryDimensions && vector.every(Number.isFinite) ? vector : null);
70
- }
71
- });
72
- }
73
54
  db = new Database(input.path, input.job === "backfill" ? undefined : { readonly: true });
74
55
  db.exec("PRAGMA busy_timeout = 250");
75
- try {
76
- if (input.job === "backfill") {
77
- if (input.snapshot?.enabled && input.snapshot.features.memoryEnabled) {
78
- await request({ kind: "query", text: input.query });
79
- if (queryDimensions) {
80
- const existingEmbeddings = getProjectEmbeddings(db, input.projectPath, input.snapshot.modelId);
81
- const memories = getMemoriesByProject(db, input.projectPath).filter((memory) => !existingEmbeddings.has(memory.id)).slice(0, 50);
82
- await ensureMemoryEmbeddings({
83
- db,
84
- projectIdentity: input.projectPath,
85
- memories,
86
- existingEmbeddings
87
- });
56
+ async function run(jobInput) {
57
+ input = jobInput;
58
+ queryDimensions = null;
59
+ setEmbeddingSessionBusy(input.sessionId, input.embeddingHostBusy === true);
60
+ if (input.snapshot) {
61
+ installProjectEmbeddingSearchBridge(input.snapshot, {
62
+ modelId: input.snapshot.modelId,
63
+ initialize: async () => true,
64
+ isLoaded: () => true,
65
+ dispose: async () => {},
66
+ embed: async (text) => {
67
+ const result = (await request({ kind: "query", text })).result;
68
+ return result instanceof Float32Array ? result : result?.vector ?? null;
69
+ },
70
+ embedBatch: async (texts, _signal, purpose = "passage") => {
71
+ const passage = (await request({ kind: "batch", texts, purpose })).passage;
72
+ const captured = input.snapshot;
73
+ if (!passage || !captured || passage.generation !== captured.generation || passage.modelId !== captured.modelId || passage.providerIdentity !== captured.providerIdentity || passage.runtimeFingerprint !== captured.runtimeFingerprint || !queryDimensions || passage.dimensions !== queryDimensions || passage.vectors.length !== texts.length)
74
+ return texts.map(() => null);
75
+ return passage.vectors.map((vector) => vector && vector.length === queryDimensions && vector.every(Number.isFinite) ? vector : null);
88
76
  }
77
+ });
78
+ }
79
+ try {
80
+ if (input.job === "backfill") {
81
+ if (input.snapshot?.enabled && input.snapshot.features.memoryEnabled) {
82
+ await request({ kind: "query", text: input.query });
83
+ if (queryDimensions) {
84
+ const existingEmbeddings = getProjectEmbeddings(db, input.projectPath, input.snapshot.modelId);
85
+ const memories = getMemoriesByProject(db, input.projectPath).filter((memory) => !existingEmbeddings.has(memory.id)).slice(0, 50);
86
+ await ensureMemoryEmbeddings({
87
+ db,
88
+ projectIdentity: input.projectPath,
89
+ memories,
90
+ existingEmbeddings
91
+ });
92
+ }
93
+ }
94
+ port.postMessage({ kind: "result", results: [] });
95
+ } else if (input.job === "messages") {
96
+ if (!input.messageRequest)
97
+ throw new Error("message search job carries no request");
98
+ const outcome = searchMessageHistory(db, input.messageRequest);
99
+ port.postMessage({ kind: "messages", outcome });
100
+ } else {
101
+ const results = await unifiedSearch(db, input.sessionId, input.projectPath, input.query, {
102
+ ...input.options,
103
+ backfillMemoryEmbeddings: false,
104
+ countRetrievals: false,
105
+ measurementDisabled: true,
106
+ embedQuery: async (text) => (await request({ kind: "query", text })).result ?? null,
107
+ isEmbeddingRuntimeEnabled: () => input.embeddingRuntimeEnabled
108
+ });
109
+ port.postMessage({ kind: "result", results });
89
110
  }
90
- port.postMessage({ kind: "result", results: [] });
91
- } else if (input.job === "messages") {
92
- if (!input.messageRequest)
93
- throw new Error("message search job carries no request");
94
- const outcome = searchMessageHistory(db, input.messageRequest);
95
- port.postMessage({ kind: "messages", outcome });
96
- } else {
97
- const results = await unifiedSearch(db, input.sessionId, input.projectPath, input.query, {
98
- ...input.options,
99
- backfillMemoryEmbeddings: false,
100
- countRetrievals: false,
101
- measurementDisabled: true,
102
- embedQuery: async (text) => (await request({ kind: "query", text })).result ?? null,
103
- isEmbeddingRuntimeEnabled: () => input.embeddingRuntimeEnabled
111
+ } catch (error) {
112
+ port.postMessage({
113
+ kind: "error",
114
+ error: error instanceof Error ? error.message : String(error)
104
115
  });
105
- port.postMessage({ kind: "result", results });
116
+ } finally {
117
+ setEmbeddingSessionBusy(input.sessionId, false);
118
+ if (!persistent) {
119
+ db.close();
120
+ port?.close();
121
+ }
106
122
  }
107
- } catch (error) {
108
- port.postMessage({
109
- kind: "error",
110
- error: error instanceof Error ? error.message : String(error)
111
- });
112
- } finally {
113
- db.close();
114
- port.close();
115
123
  }
124
+ port.on("message", (message) => {
125
+ if (message.kind === "run" && message.input)
126
+ run(message.input);
127
+ });
128
+ await run(input);
@@ -3,35 +3,35 @@ import {
3
3
  } from "./index-0h2mkab2.js";
4
4
  import {
5
5
  Database2
6
- } from "./index-asrxgdt4.js";
6
+ } from "./index-rrwv9y2k.js";
7
7
  import {
8
8
  configureContextDatabasePragmas2
9
9
  } from "./index-fapenpch.js";
10
- import"./index-g4jf772p.js";
10
+ import"./index-1kcfwk9c.js";
11
11
  import"./index-7bqrfyny.js";
12
- import"./index-6dz2ed1v.js";
12
+ import"./index-d8gc0112.js";
13
13
  import"./index-399p688g.js";
14
- import"./index-qqxqwqhp.js";
15
- import"./index-s1xn8qfw.js";
14
+ import"./index-vktahpdj.js";
15
+ import"./index-yygsh681.js";
16
16
  import {
17
17
  replaceCompartmentChunkEmbeddings,
18
18
  recordChunkEmbedBackoff,
19
19
  loadUnembeddedSessionChunkCandidates,
20
20
  countUnembeddedSessionCompartments
21
- } from "./index-afy3dzf9.js";
21
+ } from "./index-xnch62s6.js";
22
22
  import {
23
23
  recordSessionProjectIdentity,
24
24
  acquireGitSweepLease,
25
25
  renewGitSweepLease,
26
26
  releaseGitSweepLease
27
- } from "./index-mx59cve4.js";
28
- import"./index-y5c73caa.js";
27
+ } from "./index-svgkv4g2.js";
28
+ import"./index-g7p75667.js";
29
29
  import"./index-apgwdby5.js";
30
30
  import {
31
31
  LATEST_SUPPORTED_VERSION,
32
32
  enforceSchemaFence
33
- } from "./index-v8d4vgam.js";
34
- import"./index-tympym62.js";
33
+ } from "./index-gp928w10.js";
34
+ import"./index-gdjv1nnd.js";
35
35
  import"./index-jrap43gc.js";
36
36
  import"./index-135e8hvg.js";
37
37
  import"./index-8976mezv.js";
@@ -4,9 +4,9 @@ import {
4
4
  readMarkerCandidateBasis2,
5
5
  prepareMarkerCandidateBasis2,
6
6
  scanMarkerCandidateSnapshot2
7
- } from "./index-46q4e104.js";
7
+ } from "./index-qpq6w67c.js";
8
8
  import"./index-399p688g.js";
9
- import"./index-asrxgdt4.js";
9
+ import"./index-rrwv9y2k.js";
10
10
  import"./index-7bqrfyny.js";
11
11
  import"./index-0h2mkab2.js";
12
12
  export {
@@ -5,8 +5,8 @@ if (!port)
5
5
  throw new Error("marker candidate worker requires a parent port");
6
6
  port.postMessage({ kind: "accepted" });
7
7
  var [{ Database }, { scanMarkerCandidateSnapshot }] = await Promise.all([
8
- import("./sqlite-adjpy399.js"),
9
- import("./compaction-marker-candidates-k4tqg4jb.js")
8
+ import("./sqlite-fsp0sf3r.js"),
9
+ import("./compaction-marker-candidates-wjzqbspm.js")
10
10
  ]);
11
11
  var input = workerData;
12
12
  var db;
@@ -0,0 +1,23 @@
1
+ import {
2
+ ensureMemoryEmbeddings2
3
+ } from "./index-z2rkv0mb.js";
4
+ import"./index-vmcgew7x.js";
5
+ import"./index-9p40dgkm.js";
6
+ import"./index-yhzhdp3m.js";
7
+ import"./index-svgkv4g2.js";
8
+ import"./index-xnch62s6.js";
9
+ import"./index-2mmy81qt.js";
10
+ import"./index-d8gc0112.js";
11
+ import"./index-bxmf4dhr.js";
12
+ import"./index-g7p75667.js";
13
+ import"./index-yygsh681.js";
14
+ import"./index-vktahpdj.js";
15
+ import"./index-399p688g.js";
16
+ import"./index-d4dt19md.js";
17
+ import"./index-1kcfwk9c.js";
18
+ import"./index-rrwv9y2k.js";
19
+ import"./index-7bqrfyny.js";
20
+ import"./index-0h2mkab2.js";
21
+ export {
22
+ ensureMemoryEmbeddings2 as ensureMemoryEmbeddings
23
+ };
@@ -4,7 +4,7 @@ import {
4
4
  } from "./index-7bqrfyny.js";
5
5
  import {
6
6
  inRootAsyncContext2
7
- } from "./index-asrxgdt4.js";
7
+ } from "./index-rrwv9y2k.js";
8
8
 
9
9
  // ../plugin/src/features/magic-context/memory/embedding-worker-process.ts
10
10
  import { Worker } from "node:worker_threads";
@@ -5,14 +5,14 @@ import {
5
5
  log2
6
6
  } from "./index-7bqrfyny.js";
7
7
  import"./index-bxmf4dhr.js";
8
- import"./index-6dz2ed1v.js";
9
- import"./index-g4jf772p.js";
10
- import"./index-asrxgdt4.js";
8
+ import"./index-d8gc0112.js";
9
+ import"./index-1kcfwk9c.js";
10
+ import"./index-rrwv9y2k.js";
11
11
  import {
12
12
  resolveLocalEmbeddingWorkerRuntime,
13
13
  getLocalEmbeddingNativeMemoryStats,
14
14
  LocalEmbeddingProvider
15
- } from "./index-657xh9w4.js";
15
+ } from "./index-2mmy81qt.js";
16
16
  import {
17
17
  setStoragePrivatePermissionEnforcement
18
18
  } from "./index-81nthk8j.js";
@@ -1,16 +1,19 @@
1
1
  import {
2
2
  HISTORIAN_TEMPERATURE_ENV2,
3
+ HISTORIAN_CACHE_TAIL_ENV2,
3
4
  HISTORIAN_MAX_OUTPUT_TOKENS_ENV2,
4
5
  SUBAGENT_OUTPUT_CEILING_ENV2,
5
6
  calibrateHistorianProviderPayload2,
6
7
  ceilProviderOutputTokens2,
7
8
  withoutProviderTemperature2,
8
9
  historianCalibrationExtension
9
- } from "./index-ajfpyk0x.js";
10
+ } from "./index-fa485mqs.js";
11
+ import"./index-4knyh1kt.js";
10
12
  import"./index-6x556c2q.js";
11
13
  import"./index-7bqrfyny.js";
12
14
  import"./index-0h2mkab2.js";
13
15
  export {
16
+ HISTORIAN_CACHE_TAIL_ENV2 as HISTORIAN_CACHE_TAIL_ENV,
14
17
  HISTORIAN_MAX_OUTPUT_TOKENS_ENV2 as HISTORIAN_MAX_OUTPUT_TOKENS_ENV,
15
18
  HISTORIAN_TEMPERATURE_ENV2 as HISTORIAN_TEMPERATURE_ENV,
16
19
  SUBAGENT_OUTPUT_CEILING_ENV2 as SUBAGENT_OUTPUT_CEILING_ENV,
@@ -29,7 +29,27 @@ function isSystemDirective(text) {
29
29
  return text.trimStart().startsWith(SYSTEM_DIRECTIVE_PREFIX);
30
30
  }
31
31
  function removeSystemReminders(text) {
32
- return text.replace(/<system-reminder>[\s\S]*?<\/system-reminder>/gi, "").trim();
32
+ return removeNestedBlocks(text, ["system-reminder"]).trim();
33
+ }
34
+ function removeNestedBlocks(text, names) {
35
+ const tags = new RegExp(`<(/?)(${names.join("|")})(?:\\s[^<>]*?)?\\s*(/?)>`, "gi");
36
+ const stack = [];
37
+ let end = 0;
38
+ let result = "";
39
+ for (const match of text.matchAll(tags)) {
40
+ if (stack.length === 0)
41
+ result += text.slice(end, match.index);
42
+ const name = match[2].toLowerCase();
43
+ if (match[1]) {
44
+ if (stack[stack.length - 1] === name)
45
+ stack.pop();
46
+ } else if (!match[3])
47
+ stack.push(name);
48
+ end = match.index + match[0].length;
49
+ }
50
+ if (stack.length === 0)
51
+ result += text.slice(end);
52
+ return result;
33
53
  }
34
54
 
35
55
  // ../plugin/src/hooks/magic-context/token-count-exact.ts
@@ -688,4 +708,4 @@ function mergeCommitHashes(existing, next) {
688
708
  return merged;
689
709
  }
690
710
 
691
- export { textMentionsRecentCommit, OMO_INTERNAL_INITIATOR_MARKER, isSystemDirective, removeSystemReminders, hasMeaningfulUserText2, extractTexts2, extractToolResultBodyTokens, extractToolCallSummaries, preloadTokenizer, getTokenEstimatorFingerprint, hasTokenizerForFit, tokenCountUsesByteBound, estimateTokens, createTokenCountMemo, estimateFixedPromptTokens, normalizeText, compactRole, formatBlock, compactTextForSummary, mergeCommitHashes };
711
+ export { textMentionsRecentCommit, OMO_INTERNAL_INITIATOR_MARKER, isSystemDirective, removeSystemReminders, removeNestedBlocks, hasMeaningfulUserText2, extractTexts2, extractToolResultBodyTokens, extractToolCallSummaries, preloadTokenizer, getTokenEstimatorFingerprint, hasTokenizerForFit, tokenCountUsesByteBound, estimateTokens, createTokenCountMemo, estimateFixedPromptTokens, normalizeText, compactRole, formatBlock, compactTextForSummary, mergeCommitHashes };
@@ -3,7 +3,7 @@ import {
3
3
  } from "./index-bxmf4dhr.js";
4
4
  import {
5
5
  getSynapseLaneIdentity
6
- } from "./index-6dz2ed1v.js";
6
+ } from "./index-d8gc0112.js";
7
7
  import {
8
8
  getHarness2
9
9
  } from "./index-0h2mkab2.js";
@@ -14,7 +14,7 @@ import {
14
14
  } from "./index-7bqrfyny.js";
15
15
  import {
16
16
  inRootAsyncContext2
17
- } from "./index-asrxgdt4.js";
17
+ } from "./index-rrwv9y2k.js";
18
18
  import {
19
19
  computeNormalizedHash
20
20
  } from "./index-9x1f96r8.js";
@@ -7,14 +7,14 @@ import {
7
7
  import {
8
8
  getTagsBySession2,
9
9
  getTagsByNumbers2
10
- } from "./index-dne4ja7a.js";
10
+ } from "./index-rhprywn6.js";
11
11
  import {
12
12
  inRootAsyncContext2,
13
13
  getSqliteDatabasePath2
14
- } from "./index-asrxgdt4.js";
14
+ } from "./index-rrwv9y2k.js";
15
15
  import {
16
16
  createFailClosedBlockingError
17
- } from "./index-v8d4vgam.js";
17
+ } from "./index-gp928w10.js";
18
18
 
19
19
  // src/tag-snapshot-worker-client-pi.ts
20
20
  import { setImmediate as yieldImmediate } from "node:timers/promises";