@cortexkit/opencode-magic-context 0.49.12 → 0.49.14

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 (141) hide show
  1. package/dist/auto-search-worker.js +3 -3
  2. package/dist/chunk-embedding-write-worker.js +89 -0
  3. package/dist/config/schema/agent-overrides.d.ts +12 -12
  4. package/dist/config/schema/magic-context.d.ts +88 -88
  5. package/dist/{conflict-warning-hook-f4x5wed7.js → conflict-warning-hook-mgq17yr3.js} +3 -3
  6. package/dist/{context-dam8p201.js → context-cpxqpkzv.js} +55 -71
  7. package/dist/{derive-budgets-5306b1jt.js → derive-budgets-zn7yzd2d.js} +1 -1
  8. package/dist/{embedding-backfill-qbfcbp87.js → embedding-backfill-5e1t5wha.js} +6 -5
  9. package/dist/embedding-worker.js +1 -1
  10. package/dist/features/magic-context/chunk-embedding-write-worker.d.ts +2 -0
  11. package/dist/features/magic-context/chunk-embedding-write-worker.d.ts.map +1 -0
  12. package/dist/features/magic-context/chunk-embedding-writer.d.ts +48 -0
  13. package/dist/features/magic-context/chunk-embedding-writer.d.ts.map +1 -0
  14. package/dist/features/magic-context/compartment-chunk-embedding.d.ts +1 -1
  15. package/dist/features/magic-context/compartment-chunk-embedding.d.ts.map +1 -1
  16. package/dist/features/magic-context/dreamer/hidden-single-shot.d.ts +3 -2
  17. package/dist/features/magic-context/dreamer/hidden-single-shot.d.ts.map +1 -1
  18. package/dist/features/magic-context/dreamer/map-memories.d.ts +8 -1
  19. package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
  20. package/dist/features/magic-context/dreamer/retrospective-raw-provider.d.ts +2 -0
  21. package/dist/features/magic-context/dreamer/retrospective-raw-provider.d.ts.map +1 -1
  22. package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts +5 -0
  23. package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts.map +1 -1
  24. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
  25. package/dist/features/magic-context/dreamer/verify-prompt.d.ts +6 -1
  26. package/dist/features/magic-context/dreamer/verify-prompt.d.ts.map +1 -1
  27. package/dist/features/magic-context/dreamer/verify.d.ts +25 -11
  28. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
  29. package/dist/features/magic-context/mural/compress-cues.d.ts +3 -0
  30. package/dist/features/magic-context/mural/compress-cues.d.ts.map +1 -1
  31. package/dist/features/magic-context/project-embedding-registry.d.ts +5 -0
  32. package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
  33. package/dist/features/magic-context/storage-tags.d.ts +2 -0
  34. package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
  35. package/dist/hooks/magic-context/apply-operations.d.ts +3 -1
  36. package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
  37. package/dist/hooks/magic-context/auto-embed-session.d.ts +10 -0
  38. package/dist/hooks/magic-context/auto-embed-session.d.ts.map +1 -0
  39. package/dist/hooks/magic-context/compartment-runner.d.ts +4 -0
  40. package/dist/hooks/magic-context/compartment-runner.d.ts.map +1 -1
  41. package/dist/hooks/magic-context/compartment-trigger.d.ts +1 -1
  42. package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
  43. package/dist/hooks/magic-context/degraded-pass-refusal.d.ts +2 -0
  44. package/dist/hooks/magic-context/degraded-pass-refusal.d.ts.map +1 -1
  45. package/dist/hooks/magic-context/embed-session-state.d.ts +8 -1
  46. package/dist/hooks/magic-context/embed-session-state.d.ts.map +1 -1
  47. package/dist/hooks/magic-context/hook.d.ts +3 -1
  48. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  49. package/dist/hooks/magic-context/pending-drop-eligibility.d.ts +14 -0
  50. package/dist/hooks/magic-context/pending-drop-eligibility.d.ts.map +1 -0
  51. package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -1
  52. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +1 -0
  53. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  54. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  55. package/dist/{index-fx90bvjd.js → index-3kdm78zp.js} +2 -2
  56. package/dist/{index-gf0psee3.js → index-3kx0kg0f.js} +60 -3
  57. package/dist/{index-1wwh38fk.js → index-5591fg8y.js} +471 -139
  58. package/dist/{index-b16gpywn.js → index-944w16m0.js} +2 -2
  59. package/dist/{index-6sz25c3s.js → index-bxdg2nbt.js} +2 -2
  60. package/dist/{index-7h8a1xpc.js → index-e4dsjj1p.js} +1 -1
  61. package/dist/{index-05n6ykca.js → index-kf4epshg.js} +3 -3
  62. package/dist/index-saews2s3.js +229 -0
  63. package/dist/{index-yx5kgp2x.js → index-t4q9zbbf.js} +95 -73
  64. package/dist/{index-wqs4q74r.js → index-thvnpfsv.js} +8 -8
  65. package/dist/{index-95s8xaj1.js → index-tyckte5c.js} +4 -4
  66. package/dist/{index-qtbdx42g.js → index-w900fbhd.js} +110 -25
  67. package/dist/{index-6sytd5w3.js → index-xn6q9pg6.js} +7 -7
  68. package/dist/{index-7zd5asz9.js → index-y1qysm3q.js} +196 -243
  69. package/dist/{index-x2xjyq8f.js → index-yxycg7fs.js} +9 -9
  70. package/dist/index.js +54 -92
  71. package/dist/{message-index-df7swgy1.js → message-index-a6gztaqx.js} +7 -7
  72. package/dist/{message-index-bounded-nq6rp8xa.js → message-index-bounded-vtgpq6b4.js} +4 -4
  73. package/dist/migration-worker.js +2 -2
  74. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  75. package/dist/{project-embedding-registry-q0ysjyzc.js → project-embedding-registry-x45bv3qr.js} +5 -4
  76. package/dist/raw-ordinal-warmup-worker.js +3 -3
  77. package/dist/{read-session-chunk-ax05f7gr.js → read-session-chunk-3ae3nfdn.js} +2 -2
  78. package/dist/{recomp-orchestrator-a0mvby4e.js → recomp-orchestrator-xqb9gwgm.js} +21 -20
  79. package/dist/{search-fm002702.js → search-deajrd90.js} +16 -15
  80. package/dist/{send-session-notification-y2wg3fkh.js → send-session-notification-24r4esbh.js} +2 -2
  81. package/dist/shared/model-suggestion-retry.d.ts +2 -0
  82. package/dist/shared/model-suggestion-retry.d.ts.map +1 -1
  83. package/dist/shared/prompt-async-transport.d.ts.map +1 -1
  84. package/dist/{storage-tags-yygfb9c8.js → storage-tags-s5bg1ahx.js} +1 -1
  85. package/dist/{transform-postprocess-phase-s84rdf32.js → transform-postprocess-phase-k5t63qm5.js} +21 -20
  86. package/dist/v2/auto-search-worker.js +3 -3
  87. package/dist/v2/chunk-embedding-write-worker.js +88 -0
  88. package/dist/v2/{context-x60fa16g.js → context-k4jrq71s.js} +611 -210
  89. package/dist/v2/{derive-budgets-z25jw3py.js → derive-budgets-2zh4gm2c.js} +2 -2
  90. package/dist/v2/{embedding-backfill-mbjyza2a.js → embedding-backfill-jmaf8zrr.js} +6 -5
  91. package/dist/v2/embedding-worker.js +1 -1
  92. package/dist/v2/hidden-completion.d.ts +3 -2
  93. package/dist/v2/hidden-completion.d.ts.map +1 -1
  94. package/dist/v2/hooks/hidden-child.d.ts.map +1 -1
  95. package/dist/v2/hooks/transform-features.d.ts +2 -2
  96. package/dist/v2/hooks/transform-features.d.ts.map +1 -1
  97. package/dist/v2/{message-index-bounded-pgv1ndpb.js → message-index-bounded-rxxznd34.js} +4 -4
  98. package/dist/v2/{message-index-5nayhm1r.js → message-index-f947qtbz.js} +7 -7
  99. package/dist/v2/migration-worker.js +2 -2
  100. package/dist/v2/{project-embedding-registry-jbmjc0p4.js → project-embedding-registry-0msp56p8.js} +5 -4
  101. package/dist/v2/raw-ordinal-warmup-worker.js +3 -3
  102. package/dist/v2/{read-session-chunk-hr3w5bjk.js → read-session-chunk-rq9nx1nn.js} +2 -2
  103. package/dist/v2/{recomp-orchestrator-8w3449eb.js → recomp-orchestrator-1j1nqrrr.js} +21 -20
  104. package/dist/v2/retrospective-raw-provider.d.ts.map +1 -1
  105. package/dist/v2/{search-mhmxgq0e.js → search-n8wqxb1j.js} +16 -15
  106. package/dist/v2/{send-session-notification-jevgj9fe.js → send-session-notification-8ghn9tnv.js} +2 -2
  107. package/dist/v2/{server-f7jfmrrz.js → server-34kwfsr4.js} +1 -1
  108. package/dist/v2/server-4gn3z5an.js +229 -0
  109. package/dist/v2/{server-4c10404h.js → server-6cdy4rc0.js} +2 -2
  110. package/dist/v2/{server-25tg45b4.js → server-cfbr1s2x.js} +7 -7
  111. package/dist/v2/{server-nmrm2rjy.js → server-e298hswg.js} +8 -8
  112. package/dist/v2/{server-9ewkzqgd.js → server-ef89gdsx.js} +2 -2
  113. package/dist/v2/{server-m97brnat.js → server-ehyava47.js} +2 -2
  114. package/dist/v2/{server-5gvkzzrf.js → server-fnqxt9j6.js} +95 -71
  115. package/dist/v2/{server-sz8jj92q.js → server-hek6z3w6.js} +194 -241
  116. package/dist/v2/{server-50mkkhy1.js → server-kmbarfmn.js} +9 -9
  117. package/dist/v2/{server-vknbt0gq.js → server-qhfvvfxj.js} +60 -3
  118. package/dist/v2/{server-37ngj8qw.js → server-zc3e54vy.js} +1 -1
  119. package/dist/v2/server.js +9 -8
  120. package/dist/v2/{storage-tags-a2gq6dw7.js → storage-tags-hcc2adpf.js} +1 -1
  121. package/dist/v2/store-reader.d.ts +1 -0
  122. package/dist/v2/store-reader.d.ts.map +1 -1
  123. package/dist/v2/{wrapup-orchestrator-r82y780v.js → wrapup-orchestrator-hkv8apcc.js} +16 -15
  124. package/dist/{wrapup-orchestrator-vmt6z3q5.js → wrapup-orchestrator-kxqj4rwh.js} +22 -21
  125. package/package.json +6 -5
  126. package/src/shared/model-suggestion-retry.test.ts +34 -0
  127. package/src/shared/model-suggestion-retry.ts +23 -3
  128. package/src/shared/prompt-async-transport.test.ts +1 -1
  129. package/src/shared/prompt-async-transport.ts +16 -3
  130. package/dist/{index-e6xnpach.js → index-b7p25tm0.js} +0 -0
  131. package/dist/{index-2pgxcncf.js → index-dgs16axy.js} +0 -0
  132. package/dist/{index-9vqb5p1s.js → index-e20m7284.js} +0 -0
  133. package/dist/{index-fwefky9w.js → index-mht7bq0z.js} +0 -0
  134. package/dist/{index-8ketfacn.js → index-v10f1rjv.js} +3 -3
  135. package/dist/{index-tdn0zkw4.js → index-wk0n1cgt.js} +0 -0
  136. package/dist/v2/{index-e6xnpach.js → index-b7p25tm0.js} +0 -0
  137. package/dist/v2/{server-bxpwy6fy.js → server-atbc19ab.js} +0 -0
  138. package/dist/v2/{server-2x42esxd.js → server-g10mdym6.js} +0 -0
  139. package/dist/v2/{server-fa75w6gp.js → server-k2bzedxk.js} +0 -0
  140. package/dist/v2/{server-kn9n2qgd.js → server-tbe1femw.js} +3 -3
  141. /package/dist/v2/{server-83ygfha2.js → server-vbe4se57.js} +0 -0
@@ -858,13 +858,17 @@ function loadUnembeddedShadowChunkCandidates(db, projectPath, primaryModelId, sh
858
858
  const rows = getShadowBackfillCandidateStatement(db).all(projectPath, projectPath, primaryModelId);
859
859
  return selectHashIncompleteChunkCandidates(db, projectPath, shadowModelId, mapBackfillCandidateRows(rows), Math.max(1, limit), shadowMaxInputTokens);
860
860
  }
861
- async function loadUnembeddedCompartmentChunkCandidatesPolite(db, projectPath, modelId, limit, maxInputTokens = DEFAULT_COMPARTMENT_CHUNK_MAX_INPUT_TOKENS, leaseHeldRenumber = false) {
861
+ async function loadUnembeddedCompartmentChunkCandidatesPolite(db, projectPath, modelId, limit, maxInputTokens = DEFAULT_COMPARTMENT_CHUNK_MAX_INPUT_TOKENS, leaseHeldRenumber = false, isEligible) {
862
862
  const rows = getBackfillCandidateStatement(db).all(projectPath);
863
863
  const candidates = mapBackfillCandidateRows(rows);
864
864
  const missing = [];
865
865
  const stale = [];
866
866
  let sliceStarted = performance.now();
867
867
  for (const candidate of candidates) {
868
+ if (isEligible && !isEligible(candidate)) {
869
+ sliceStarted = await yieldCoverageSlice(sliceStarted);
870
+ continue;
871
+ }
868
872
  const classification = classifyChunkCoverageDefect(db, projectPath, modelId, candidate, maxInputTokens);
869
873
  if (classification.defect === "missing")
870
874
  missing.push(candidate);
@@ -1019,7 +1023,7 @@ function memoizedCoverageWindows(candidate, canonicalText, sourceKey, modelId, m
1019
1023
  return windows;
1020
1024
  }
1021
1025
  async function yieldCoverageSlice(started) {
1022
- if (performance.now() - started < 35)
1026
+ if (performance.now() - started < 8)
1023
1027
  return started;
1024
1028
  await new Promise((resolve) => setTimeout(resolve, 0));
1025
1029
  return performance.now();
@@ -1093,6 +1097,47 @@ function selectHashIncompleteChunkCandidates(db, projectPath, modelId, candidate
1093
1097
  return [...missing, ...stale].slice(0, limit);
1094
1098
  }
1095
1099
  var sessionBackfillCandidateStatements = new WeakMap;
1100
+ function loadUnembeddedSessionChunkCandidates(db, projectPath, sessionId, modelId, limit, excludeIds, maxInputTokens = DEFAULT_COMPARTMENT_CHUNK_MAX_INPUT_TOKENS, leaseHeldRenumber = false) {
1101
+ const exclusions = excludeIds && excludeIds.length > 0 ? excludeIds : [];
1102
+ const exclusionSql = exclusions.length > 0 ? `AND c.id NOT IN (${exclusions.map(() => "?").join(", ")})` : "";
1103
+ const stmt = exclusions.length > 0 ? db.prepare(`SELECT c.id AS id,
1104
+ c.session_id AS sessionId,
1105
+ c.start_message AS startMessage,
1106
+ c.end_message AS endMessage,
1107
+ c.title AS title
1108
+ FROM compartments c
1109
+ JOIN session_projects sp
1110
+ ON sp.session_id = c.session_id
1111
+ AND sp.harness = c.harness
1112
+ AND sp.project_path = ?
1113
+ WHERE c.session_id = ?
1114
+ AND c.start_message IS NOT NULL
1115
+ AND c.end_message IS NOT NULL
1116
+ ${exclusionSql}
1117
+ ORDER BY c.start_message ASC, c.id ASC`) : (() => {
1118
+ let cached = sessionBackfillCandidateStatements.get(db);
1119
+ if (!cached) {
1120
+ cached = db.prepare(`SELECT c.id AS id,
1121
+ c.session_id AS sessionId,
1122
+ c.start_message AS startMessage,
1123
+ c.end_message AS endMessage,
1124
+ c.title AS title
1125
+ FROM compartments c
1126
+ JOIN session_projects sp
1127
+ ON sp.session_id = c.session_id
1128
+ AND sp.harness = c.harness
1129
+ AND sp.project_path = ?
1130
+ WHERE c.session_id = ?
1131
+ AND c.start_message IS NOT NULL
1132
+ AND c.end_message IS NOT NULL
1133
+ ORDER BY c.start_message ASC, c.id ASC`);
1134
+ sessionBackfillCandidateStatements.set(db, cached);
1135
+ }
1136
+ return cached;
1137
+ })();
1138
+ const rows = stmt.all(projectPath, sessionId, ...exclusions);
1139
+ return selectHashIncompleteChunkCandidates(db, projectPath, modelId, mapBackfillCandidateRows(rows), Math.max(1, limit), maxInputTokens, leaseHeldRenumber);
1140
+ }
1096
1141
  async function loadUnembeddedSessionChunkCandidatesPolite(db, projectPath, sessionId, modelId, limit, excludeIds = [], maxInputTokens = DEFAULT_COMPARTMENT_CHUNK_MAX_INPUT_TOKENS, leaseHeldRenumber = false) {
1097
1142
  const excluded = new Set(excludeIds);
1098
1143
  const missing = [];
@@ -1109,10 +1154,22 @@ async function loadUnembeddedSessionChunkCandidatesPolite(db, projectPath, sessi
1109
1154
  else if (leaseHeldRenumber) {
1110
1155
  applyLeaseHeldCoverageRepair(db, candidate, projectPath, modelId, classification);
1111
1156
  }
1157
+ if (missing.length >= Math.max(1, limit))
1158
+ return missing;
1112
1159
  started = await yieldCoverageSlice(started);
1113
1160
  }
1114
1161
  return [...missing, ...stale].slice(0, Math.max(1, limit));
1115
1162
  }
1163
+ function countUnembeddedSessionCompartments(db, projectPath, sessionId, modelId, maxInputTokens = DEFAULT_COMPARTMENT_CHUNK_MAX_INPUT_TOKENS) {
1164
+ const rows = getSessionBackfillRows(db, projectPath, sessionId);
1165
+ let count = 0;
1166
+ for (const candidate of rows) {
1167
+ const { defect } = classifyChunkCoverageDefect(db, projectPath, modelId, candidate, maxInputTokens);
1168
+ if (defect === "missing" || defect === "stale")
1169
+ count++;
1170
+ }
1171
+ return count;
1172
+ }
1116
1173
  function countSessionCompartmentEmbedCoverage(db, projectPath, sessionId, modelId, maxInputTokens = DEFAULT_COMPARTMENT_CHUNK_MAX_INPUT_TOKENS) {
1117
1174
  const candidates = getSessionBackfillRows(db, projectPath, sessionId);
1118
1175
  let embedded = 0;
@@ -1165,4 +1222,4 @@ async function countUnembeddedSessionCompartmentsPolite(db, projectPath, session
1165
1222
  return count;
1166
1223
  }
1167
1224
 
1168
- export { DEFAULT_COMPARTMENT_CHUNK_MAX_INPUT_TOKENS, CHUNK_WINDOW_SAFETY_RATIO, normalizeCompartmentChunkMaxInputTokens, buildCanonicalChunkTextFromFts, buildCompartmentSummaryFallbackText, canonicalizeInMemoryChunkTextForEmbedding, chunkCanonicalText, chunkEmbeddingWindowsAreCurrent, replaceCompartmentChunkEmbeddings, loadCompartmentChunkEmbeddingsForSearch, loadUnembeddedShadowChunkCandidates, loadUnembeddedCompartmentChunkCandidatesPolite, deleteChunkEmbedBackoffForSession, recordChunkEmbedBackoff, chunkWindowSourceKey, loadUnembeddedSessionChunkCandidatesPolite, countSessionCompartmentEmbedCoverage, countSessionCompartmentEmbedCoveragePolite, countUnembeddedSessionCompartmentsPolite };
1225
+ export { DEFAULT_COMPARTMENT_CHUNK_MAX_INPUT_TOKENS, CHUNK_WINDOW_SAFETY_RATIO, normalizeCompartmentChunkMaxInputTokens, buildCanonicalChunkTextFromFts, buildCompartmentSummaryFallbackText, canonicalizeInMemoryChunkTextForEmbedding, chunkCanonicalText, chunkEmbeddingWindowsAreCurrent, replaceCompartmentChunkEmbeddings, loadCompartmentChunkEmbeddingsForSearch, loadUnembeddedShadowChunkCandidates, loadUnembeddedCompartmentChunkCandidatesPolite, deleteChunkEmbedBackoffForSession, recordChunkEmbedBackoff, chunkWindowSourceKey, loadUnembeddedSessionChunkCandidates, loadUnembeddedSessionChunkCandidatesPolite, countUnembeddedSessionCompartments, countSessionCompartmentEmbedCoverage, countSessionCompartmentEmbedCoveragePolite, countUnembeddedSessionCompartmentsPolite };