@cortexkit/opencode-magic-context 0.49.0 → 0.49.2

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 (195) hide show
  1. package/dist/{announcement-fp14dw0n.js → announcement-hdbkt8v5.js} +1 -1
  2. package/dist/auto-search-worker.js +3 -3
  3. package/dist/config/{mural-model-deprecation.d.ts → deprecated-config.d.ts} +4 -1
  4. package/dist/config/deprecated-config.d.ts.map +1 -0
  5. package/dist/config/index.d.ts.map +1 -1
  6. package/dist/config/project-security.d.ts +2 -2
  7. package/dist/config/schema/magic-context.d.ts +4 -4
  8. package/dist/config/schema/magic-context.d.ts.map +1 -1
  9. package/dist/{conflict-warning-hook-kzx4dmk1.js → conflict-warning-hook-asnt6hfc.js} +3 -3
  10. package/dist/{context-nj5f293n.js → context-tfyhtdcs.js} +111 -45
  11. package/dist/{derive-budgets-qz5rrr08.js → derive-budgets-j4ry8j8n.js} +1 -1
  12. package/dist/{embedding-backfill-aetxv1vt.js → embedding-backfill-wyc3ykyf.js} +7 -7
  13. package/dist/embedding-worker-process.js +30 -0
  14. package/dist/embedding-worker.js +5 -5
  15. package/dist/features/magic-context/dreamer/task-registry.d.ts +2 -3
  16. package/dist/features/magic-context/dreamer/task-registry.d.ts.map +1 -1
  17. package/dist/features/magic-context/memory/embedding-worker-client.d.ts +8 -1
  18. package/dist/features/magic-context/memory/embedding-worker-client.d.ts.map +1 -1
  19. package/dist/features/magic-context/memory/embedding-worker-process.d.ts +2 -0
  20. package/dist/features/magic-context/memory/embedding-worker-process.d.ts.map +1 -0
  21. package/dist/features/magic-context/memory/onnx-telemetry.d.ts +3 -0
  22. package/dist/features/magic-context/memory/onnx-telemetry.d.ts.map +1 -0
  23. package/dist/features/magic-context/overflow-detection.d.ts +1 -2
  24. package/dist/features/magic-context/overflow-detection.d.ts.map +1 -1
  25. package/dist/features/magic-context/storage-session-tables.d.ts.map +1 -1
  26. package/dist/features/magic-context/transform-decision-log.d.ts +1 -1
  27. package/dist/features/magic-context/transform-decision-log.d.ts.map +1 -1
  28. package/dist/features/magic-context/user-memory/storage-user-memory.d.ts +1 -0
  29. package/dist/features/magic-context/user-memory/storage-user-memory.d.ts.map +1 -1
  30. package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
  31. package/dist/hooks/magic-context/final-wire-token-estimate.d.ts +1 -0
  32. package/dist/hooks/magic-context/final-wire-token-estimate.d.ts.map +1 -1
  33. package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -1
  34. package/dist/hooks/magic-context/hook.d.ts +1 -0
  35. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  36. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  37. package/dist/hooks/magic-context/lkg-measured-request.d.ts +3 -1
  38. package/dist/hooks/magic-context/lkg-measured-request.d.ts.map +1 -1
  39. package/dist/hooks/magic-context/lkg-persist.d.ts +8 -14
  40. package/dist/hooks/magic-context/lkg-persist.d.ts.map +1 -1
  41. package/dist/hooks/magic-context/lkg-recovery-fence.d.ts +62 -0
  42. package/dist/hooks/magic-context/lkg-recovery-fence.d.ts.map +1 -0
  43. package/dist/hooks/magic-context/lkg-recovery-prefix.d.ts +38 -0
  44. package/dist/hooks/magic-context/lkg-recovery-prefix.d.ts.map +1 -0
  45. package/dist/hooks/magic-context/lkg-replay.d.ts +3 -1
  46. package/dist/hooks/magic-context/lkg-replay.d.ts.map +1 -1
  47. package/dist/hooks/magic-context/lkg-slot.d.ts.map +1 -1
  48. package/dist/hooks/magic-context/opaque-thinking.d.ts +12 -0
  49. package/dist/hooks/magic-context/opaque-thinking.d.ts.map +1 -0
  50. package/dist/hooks/magic-context/pass-outcome.d.ts +2 -2
  51. package/dist/hooks/magic-context/pending-materialization.d.ts +8 -0
  52. package/dist/hooks/magic-context/pending-materialization.d.ts.map +1 -0
  53. package/dist/hooks/magic-context/read-session-db.d.ts +3 -0
  54. package/dist/hooks/magic-context/read-session-db.d.ts.map +1 -1
  55. package/dist/hooks/magic-context/recomp-orchestrator.d.ts.map +1 -1
  56. package/dist/hooks/magic-context/rust-mode-transform.d.ts +1 -0
  57. package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
  58. package/dist/hooks/magic-context/strip-content.d.ts +5 -2
  59. package/dist/hooks/magic-context/strip-content.d.ts.map +1 -1
  60. package/dist/hooks/magic-context/system-date-refresh.d.ts +29 -0
  61. package/dist/hooks/magic-context/system-date-refresh.d.ts.map +1 -0
  62. package/dist/hooks/magic-context/system-prompt-dates.d.ts +6 -0
  63. package/dist/hooks/magic-context/system-prompt-dates.d.ts.map +1 -0
  64. package/dist/hooks/magic-context/system-prompt-delivery.d.ts +47 -0
  65. package/dist/hooks/magic-context/system-prompt-delivery.d.ts.map +1 -0
  66. package/dist/hooks/magic-context/system-prompt-hash.d.ts +4 -0
  67. package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
  68. package/dist/hooks/magic-context/tag-messages.d.ts +8 -0
  69. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  70. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +2 -0
  71. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  72. package/dist/hooks/magic-context/transform.d.ts +6 -0
  73. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  74. package/dist/{index-9qjqq45k.js → index-0pjvpfkf.js} +21 -1
  75. package/dist/index-6m7rdv7y.js +733 -0
  76. package/dist/{index-1r0k9js3.js → index-6tfxmc4n.js} +10 -10
  77. package/dist/{index-gzcmtmar.js → index-7w18gg78.js} +25 -1
  78. package/dist/{index-nm6a8xpd.js → index-att4bfan.js} +1 -1
  79. package/dist/{index-ezmszwbd.js → index-eypn4ba6.js} +7 -4
  80. package/dist/{index-ha87j7a8.js → index-fdtkt5r1.js} +6 -6
  81. package/dist/{index-kp5qe690.js → index-fg00p1cg.js} +38 -36
  82. package/dist/{index-1bc61ans.js → index-fvnzcnww.js} +44 -1
  83. package/dist/index-gbmqa9x9.js +1170 -0
  84. package/dist/{index-pxwp2hjk.js → index-gzky5rva.js} +30 -53
  85. package/dist/{index-kq57tdf0.js → index-k6xvbj2e.js} +255 -1075
  86. package/dist/{index-0w56v4fm.js → index-mw7c950g.js} +1 -1
  87. package/dist/{index-1g30axtz.js → index-p0n5ryq8.js} +82 -900
  88. package/dist/{index-b7mv1jx3.js → index-p1hnwfd8.js} +1 -1
  89. package/dist/{index-peshmj6h.js → index-r2zcs71c.js} +6 -4
  90. package/dist/{index-kmpvemph.js → index-rafsaxac.js} +2 -2
  91. package/dist/{index-stbr4ce6.js → index-s7fc0fkn.js} +1 -1
  92. package/dist/{index-hj2q50k0.js → index-sfhndpcb.js} +463 -6
  93. package/dist/index-sv0bb7vg.js +6972 -0
  94. package/dist/{index-57mrqed8.js → index-w23dh319.js} +17 -258
  95. package/dist/{index-9rt53q79.js → index-xgrwmj82.js} +1 -1
  96. package/dist/{index-h2py7207.js → index-xnanvj3w.js} +765 -1255
  97. package/dist/{index-2jcbj7r1.js → index-zfzdpeq2.js} +2269 -3802
  98. package/dist/{index-s4j7t92z.js → index-zg8yq4ya.js} +29 -744
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +209 -61
  101. package/dist/{message-index-bounded-h0mrd4pr.js → message-index-bounded-hqktkhdy.js} +7 -6
  102. package/dist/migration-worker.js +6 -5
  103. package/dist/plugin/hooks/create-session-hooks.d.ts +3 -1
  104. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  105. package/dist/plugin/messages-transform.d.ts.map +1 -1
  106. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  107. package/dist/{project-embedding-registry-rtt0djyb.js → project-embedding-registry-0gv3h6y8.js} +6 -6
  108. package/dist/raw-ordinal-warmup-worker.js +1 -1
  109. package/dist/{read-session-chunk-ty89v75e.js → read-session-chunk-5mh0bh8y.js} +5 -4
  110. package/dist/{recomp-orchestrator-4f1yyd1q.js → recomp-orchestrator-kpkhkjhq.js} +20 -19
  111. package/dist/{search-pz4f4wge.js → search-p9w39qv4.js} +15 -14
  112. package/dist/{send-session-notification-38cd5dqt.js → send-session-notification-xffh3bbe.js} +2 -2
  113. package/dist/shared/models-dev-cache.d.ts.map +1 -1
  114. package/dist/shared/storage-file-mutex.d.ts +9 -0
  115. package/dist/shared/storage-file-mutex.d.ts.map +1 -0
  116. package/dist/shared/storage-permissions.d.ts +6 -0
  117. package/dist/shared/storage-permissions.d.ts.map +1 -1
  118. package/dist/shared/window-geometry.d.ts +9 -66
  119. package/dist/shared/window-geometry.d.ts.map +1 -1
  120. package/dist/standalone-plugin-marker.d.ts +8 -0
  121. package/dist/standalone-plugin-marker.d.ts.map +1 -0
  122. package/dist/tools/ctx-reduce/constants.d.ts +1 -2
  123. package/dist/tools/ctx-reduce/constants.d.ts.map +1 -1
  124. package/dist/tools/ctx-reduce/tools.d.ts +1 -1
  125. package/dist/tools/ctx-reduce/tools.d.ts.map +1 -1
  126. package/dist/{transform-postprocess-phase-tck4g20s.js → transform-postprocess-phase-481j5a7z.js} +20 -19
  127. package/dist/v2/auto-search-worker.js +3 -3
  128. package/dist/v2/{context-crbt6p1y.js → context-gsdtha5v.js} +873 -2122
  129. package/dist/v2/{derive-budgets-fgej9j46.js → derive-budgets-enckmg7y.js} +2 -2
  130. package/dist/v2/{embedding-backfill-ph1qfyn3.js → embedding-backfill-dbvjbcmm.js} +8 -9
  131. package/dist/v2/embedding-worker-process.js +29 -0
  132. package/dist/v2/embedding-worker.js +3 -4
  133. package/dist/v2/hooks/context.d.ts.map +1 -1
  134. package/dist/v2/hooks/copied-tag-notation.d.ts +19 -0
  135. package/dist/v2/hooks/copied-tag-notation.d.ts.map +1 -0
  136. package/dist/v2/hooks/payload.d.ts.map +1 -1
  137. package/dist/v2/hooks/system-prompt-response.d.ts +5 -0
  138. package/dist/v2/hooks/system-prompt-response.d.ts.map +1 -0
  139. package/dist/v2/{message-index-bounded-xwqdywxg.js → message-index-bounded-p6v0n8qh.js} +8 -7
  140. package/dist/v2/migration-worker.js +6 -5
  141. package/dist/v2/{project-embedding-registry-d6m7tyxr.js → project-embedding-registry-nyq7z8y6.js} +7 -8
  142. package/dist/v2/raw-ordinal-warmup-worker.js +2 -2
  143. package/dist/v2/{read-session-chunk-8p5mdryx.js → read-session-chunk-fhyfe4qa.js} +6 -5
  144. package/dist/v2/{recomp-orchestrator-ckfgt6wq.js → recomp-orchestrator-5xy7w136.js} +22 -22
  145. package/dist/v2/{search-ym8rehhz.js → search-j7bakcwa.js} +17 -17
  146. package/dist/v2/{send-session-notification-5m0yapqx.js → send-session-notification-f6v698r5.js} +2 -2
  147. package/dist/v2/{server-jvxzm1jy.js → server-1fszbabv.js} +28 -28
  148. package/dist/v2/{server-3j4d00kf.js → server-2htmbqbv.js} +25 -1
  149. package/dist/v2/{server-c5rrgrcd.js → server-4c7jt8gq.js} +25 -1
  150. package/dist/v2/{server-ycw9qqcy.js → server-4enr7s6x.js} +1 -1
  151. package/dist/v2/{server-v4mewb78.js → server-6tcrjfw8.js} +1 -1
  152. package/dist/v2/{server-x4hscabv.js → server-7spkq1y6.js} +2257 -3746
  153. package/dist/v2/{server-sa8jvrfc.js → server-7vkj6zhb.js} +29 -744
  154. package/dist/v2/{server-xwz4dqh9.js → server-8xmq9h3f.js} +30 -53
  155. package/dist/v2/{server-1tk82krw.js → server-bgzy0phk.js} +463 -6
  156. package/dist/v2/server-c7n2ftng.js +6860 -0
  157. package/dist/v2/server-cvgn49tr.js +733 -0
  158. package/dist/v2/{server-zm570tr2.js → server-cw6521wn.js} +232 -7
  159. package/dist/v2/{server-pj4pjv02.js → server-czb2rkpk.js} +21 -1
  160. package/dist/v2/{server-19zjmn02.js → server-d6g4whc2.js} +20 -14
  161. package/dist/v2/{server-1bc61ans.js → server-fvnzcnww.js} +44 -1
  162. package/dist/v2/{server-w32kmdez.js → server-kh958yj8.js} +3 -3
  163. package/dist/v2/{server-q4ph9bwn.js → server-mqvtz7wz.js} +7 -7
  164. package/dist/v2/{server-2s6ayq3t.js → server-ras2sxnc.js} +133 -13
  165. package/dist/v2/{server-ss95ky04.js → server-s2st631p.js} +1 -1
  166. package/dist/v2/{server-2s9qz6n7.js → server-t528t8qm.js} +1 -1
  167. package/dist/v2/{server-8k2agx29.js → server-vb7pbd9p.js} +17 -258
  168. package/dist/v2/{server-zp53y8js.js → server-zbxjj2mz.js} +2 -2
  169. package/dist/v2/server.d.ts.map +1 -1
  170. package/dist/v2/server.js +149 -5
  171. package/dist/v2/{storage-tags-8vw924zn.js → storage-tags-5yxrvkaf.js} +1 -1
  172. package/dist/v2/{wrapup-orchestrator-a7efxaax.js → wrapup-orchestrator-yem5422s.js} +28 -28
  173. package/dist/{wrapup-orchestrator-barbc6h9.js → wrapup-orchestrator-xvrr27ws.js} +21 -20
  174. package/package.json +4 -4
  175. package/src/config/{mural-model-deprecation.ts → deprecated-config.ts} +19 -0
  176. package/src/config/index.test.ts +15 -37
  177. package/src/config/index.ts +2 -3
  178. package/src/config/project-security.ts +3 -3
  179. package/src/config/schema/magic-context.ts +11 -7
  180. package/src/features/magic-context/dreamer/task-registry.ts +2 -3
  181. package/src/shared/models-dev-cache.ts +1 -7
  182. package/src/shared/sqlite-640-review.test.ts +5 -1
  183. package/src/shared/storage-file-mutex-review.test.ts +162 -0
  184. package/src/shared/storage-file-mutex.ts +130 -0
  185. package/src/shared/storage-permissions.ts +46 -0
  186. package/src/shared/window-geometry.test.ts +102 -236
  187. package/src/shared/window-geometry.ts +23 -413
  188. package/dist/config/mural-model-deprecation.d.ts.map +0 -1
  189. package/dist/index-2jgwttpt.js +0 -3269
  190. package/dist/index-mfkzp7qj.js +0 -229
  191. package/dist/v2/server-4ez8mntn.js +0 -3213
  192. package/dist/v2/server-mfkzp7qj.js +0 -229
  193. package/src/shared/__fixtures__/window-overlay.v1.json +0 -337
  194. /package/dist/{index-2pp04pmg.js → index-69vas84q.js} +0 -0
  195. /package/dist/v2/{index-2pp04pmg.js → index-69vas84q.js} +0 -0
@@ -8,12 +8,6 @@ import {
8
8
  releaseCompartmentLeaseBestEffort,
9
9
  getCompartments,
10
10
  getLastCompartmentEndMessage,
11
- getWrapupInProgressState,
12
- acquireWrapupInProgress,
13
- updateWrapupInProgress,
14
- releaseWrapupInProgress,
15
- getHistorianFailureState,
16
- clearEmergencyRecovery,
17
11
  describeBoundaryDiagnostics,
18
12
  resolveWrapupProtectedTailBoundary,
19
13
  hasRunnableCompartmentWindow,
@@ -21,20 +15,26 @@ import {
21
15
  getActiveCompartmentRun,
22
16
  markActiveCompartmentRunPublished,
23
17
  registerActiveCompartmentRun
24
- } from "./index-2jcbj7r1.js";
18
+ } from "./index-zfzdpeq2.js";
25
19
  import {
20
+ getWrapupInProgressState,
21
+ acquireWrapupInProgress,
22
+ updateWrapupInProgress,
23
+ releaseWrapupInProgress,
24
+ getHistorianFailureState,
25
+ clearEmergencyRecovery,
26
26
  prepareRawSessionOrdinals2
27
- } from "./index-2jgwttpt.js";
27
+ } from "./index-sv0bb7vg.js";
28
28
  import {
29
29
  pushNotification2
30
30
  } from "./index-x8a7jmkh.js";
31
31
  import {
32
32
  sendStatusNotification2
33
- } from "./index-9rt53q79.js";
33
+ } from "./index-xgrwmj82.js";
34
34
  import {
35
35
  setRecompStarting2,
36
36
  setRecompTerminal2
37
- } from "./index-ezmszwbd.js";
37
+ } from "./index-eypn4ba6.js";
38
38
 
39
39
  // src/hooks/magic-context/wrapup-orchestrator.ts
40
40
  import * as crypto from "node:crypto";
@@ -6,6 +6,30 @@ import {
6
6
  logSlowWriteTransaction
7
7
  } from "./index-4mjhqadz.js";
8
8
 
9
+ // src/shared/project-directory-key.ts
10
+ import { realpathSync } from "node:fs";
11
+ import path from "node:path";
12
+ function projectDirectoryKey(directory) {
13
+ const slashed = directory.replaceAll("\\", "/").replace(/^\/\/\?\/UNC\//i, "//").replace(/^\/\/\?\//, "");
14
+ if (/^[a-z]:\//i.test(slashed) || slashed.startsWith("//")) {
15
+ return path.win32.normalize(slashed).replaceAll("\\", "/").replace(/\/$/, "").toLowerCase();
16
+ }
17
+ return path.resolve(directory);
18
+ }
19
+ function sameProjectDirectory(a, b) {
20
+ if (a.length === 0 || b.length === 0)
21
+ return false;
22
+ return projectDirectoryKey(a) === projectDirectoryKey(b);
23
+ }
24
+ var realpathForCanonicalDirectory = (directory) => realpathSync.native(directory);
25
+ function canonicalProjectDirectory(directory) {
26
+ let resolved = directory;
27
+ try {
28
+ resolved = realpathForCanonicalDirectory(directory);
29
+ } catch {}
30
+ return projectDirectoryKey(resolved);
31
+ }
32
+
9
33
  // src/features/magic-context/message-fts-rowid-map.ts
10
34
  import { createHash } from "node:crypto";
11
35
  var MESSAGE_FTS_ROWID_MAP_BACKFILL_BATCH_SIZE = 100;
@@ -168,4 +192,4 @@ function deleteUnmappedMessageFtsRows(db, sessionIds) {
168
192
  WHERE rowid > ? AND session_id IN (${placeholders})`).run(state.watermarkRowid, ...sessionIds);
169
193
  }
170
194
 
171
- export { recordMessageFtsRowid, recordIndexedMessageTime, startMessageFtsRowidMapBackfill, messageFtsOrdinalRangeIsMapped, deleteUnmappedMessageFtsRows };
195
+ export { projectDirectoryKey, sameProjectDirectory, canonicalProjectDirectory, recordMessageFtsRowid, recordIndexedMessageTime, startMessageFtsRowidMapBackfill, messageFtsOrdinalRangeIsMapped, deleteUnmappedMessageFtsRows };
@@ -20,7 +20,7 @@ import {
20
20
  import {
21
21
  normalizeStoredProjectPath,
22
22
  storedPathBelongsToIdentity
23
- } from "./index-pxwp2hjk.js";
23
+ } from "./index-gzky5rva.js";
24
24
  import {
25
25
  logSlowWriteTransaction
26
26
  } from "./index-4mjhqadz.js";
@@ -2,14 +2,17 @@ import {
2
2
  sessionLog2
3
3
  } from "./index-nsjyysj0.js";
4
4
  import {
5
- clearEmergencyRecovery,
5
+ clearEmergencyRecovery
6
+ } from "./index-sv0bb7vg.js";
7
+ import {
8
+ requestPendingMaterialization,
6
9
  dropSlot,
7
10
  executeContextRecomp
8
- } from "./index-2jcbj7r1.js";
11
+ } from "./index-zfzdpeq2.js";
9
12
  import {
10
13
  renderUserFacingFailure,
11
14
  userFacingFailureCode
12
- } from "./index-kmpvemph.js";
15
+ } from "./index-rafsaxac.js";
13
16
 
14
17
  // src/hooks/magic-context/recomp-orchestrator.ts
15
18
  function resolveLiveModelKey(liveSessionState, sessionId) {
@@ -100,7 +103,7 @@ function buildRecompDeps2(ctx, sessionId) {
100
103
  getNotificationParams: () => ctx.getNotificationParams(sessionId),
101
104
  onCompartmentStatePublished: (sid) => {
102
105
  ctx.liveSessionState.historyRefreshSessions.add(sid);
103
- ctx.liveSessionState.pendingMaterializationSessions.add(sid);
106
+ requestPendingMaterialization(ctx.liveSessionState.pendingMaterializationSessions, sid, "recomp");
104
107
  },
105
108
  onDeferredMarkerPending: (sid) => {
106
109
  ctx.liveSessionState.deferredHistoryRefreshSessions.add(sid);
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  buildCanonicalChunkTextFromFts,
21
21
  loadCompartmentChunkEmbeddingsForSearch
22
- } from "./index-b7mv1jx3.js";
22
+ } from "./index-p1hnwfd8.js";
23
23
  import {
24
24
  recordEmbeddingMeasurement,
25
25
  saveCommitEmbedding,
@@ -36,7 +36,7 @@ import {
36
36
  enqueueShadowEmbeddingItems2,
37
37
  getProjectEmbeddingSnapshot2,
38
38
  embedItemsForProject2
39
- } from "./index-kp5qe690.js";
39
+ } from "./index-fg00p1cg.js";
40
40
  import {
41
41
  getProjectEmbeddings2
42
42
  } from "./index-4dhv7mqz.js";
@@ -45,7 +45,7 @@ import {
45
45
  isEmbeddingEnabled,
46
46
  embedText,
47
47
  ensureMemoryEmbeddings2
48
- } from "./index-peshmj6h.js";
48
+ } from "./index-r2zcs71c.js";
49
49
  import {
50
50
  ModuleMemoryAuthorityError2,
51
51
  getMemoriesByProject2,
@@ -60,20 +60,20 @@ import {
60
60
  sanitizeFtsQuery,
61
61
  searchMemoriesFTS,
62
62
  searchMemoriesFTSUnion
63
- } from "./index-kmpvemph.js";
63
+ } from "./index-rafsaxac.js";
64
64
  import {
65
65
  isRecord
66
66
  } from "./index-nydv6g8r.js";
67
67
  import {
68
68
  getIndexedMessageCorpusSize
69
- } from "./index-hj2q50k0.js";
69
+ } from "./index-sfhndpcb.js";
70
70
  import {
71
71
  resolveWorkspaceShareCategories,
72
72
  resolveWorkspaceIdentitySet,
73
73
  expandWorkspaceIdentitySetWithAliases,
74
74
  resolveStoredPathWorkspaceIdentity,
75
75
  sourceNameForMemory
76
- } from "./index-nm6a8xpd.js";
76
+ } from "./index-att4bfan.js";
77
77
  import {
78
78
  isKnownAutocommit
79
79
  } from "./index-8ajstryz.js";
@@ -8,7 +8,12 @@ import {
8
8
  import {
9
9
  isUserHomeDirectory,
10
10
  setBootQuietPeriodForTests
11
- } from "./index-pxwp2hjk.js";
11
+ } from "./index-gzky5rva.js";
12
+ import {
13
+ withSqliteBackgroundWriter2,
14
+ withoutSqliteTransformPass2,
15
+ isTransientSqliteError2
16
+ } from "./index-kb9nn0a0.js";
12
17
  import {
13
18
  estimateTokens
14
19
  } from "./index-qx53vezw.js";
@@ -18,11 +23,6 @@ import {
18
23
  getSynapseBatchRequestKey,
19
24
  SynapseEmbeddingProvider
20
25
  } from "./index-vkbqdnkj.js";
21
- import {
22
- withSqliteBackgroundWriter2,
23
- withoutSqliteTransformPass2,
24
- isTransientSqliteError2
25
- } from "./index-kb9nn0a0.js";
26
26
  import {
27
27
  CHUNK_WINDOW_SAFETY_RATIO,
28
28
  normalizeCompartmentChunkMaxInputTokens,
@@ -39,15 +39,10 @@ import {
39
39
  countSessionCompartmentEmbedCoverage,
40
40
  countSessionCompartmentEmbedCoveragePolite,
41
41
  countUnembeddedSessionCompartmentsPolite
42
- } from "./index-b7mv1jx3.js";
42
+ } from "./index-p1hnwfd8.js";
43
43
  import {
44
- DEFAULT_LOCAL_EMBEDDING_MODEL,
45
- embeddingModelsMatch,
46
- resolveEmbeddingTextPrefixes,
47
- getEmbeddingProviderIdentity,
48
- dominantEmbeddingFailure,
49
- LocalEmbeddingProvider
50
- } from "./index-kq57tdf0.js";
44
+ DEFAULT_LOCAL_EMBEDDING_MODEL
45
+ } from "./index-k6xvbj2e.js";
51
46
  import {
52
47
  isEmbeddingHostBusy2
53
48
  } from "./index-qt1qqasc.js";
@@ -56,6 +51,13 @@ import {
56
51
  getMemoryEmbedCoverage,
57
52
  invalidateProject2
58
53
  } from "./index-4dhv7mqz.js";
54
+ import {
55
+ embeddingModelsMatch,
56
+ resolveEmbeddingTextPrefixes,
57
+ getEmbeddingProviderIdentity,
58
+ dominantEmbeddingFailure,
59
+ LocalEmbeddingProvider
60
+ } from "./index-gbmqa9x9.js";
59
61
  import {
60
62
  logSlowWriteTransaction
61
63
  } from "./index-4mjhqadz.js";
@@ -142,6 +144,27 @@ function repairMisScopedCompartmentChunkEmbeddingsForProject(db, projectPath, id
142
144
  )`).run(...ids, projectPath, projectPath).changes;
143
145
  }
144
146
 
147
+ // src/shared/background-batch-drain.ts
148
+ async function drainBackgroundBatches(step, options = {}) {
149
+ const now = options.now ?? (() => performance.now());
150
+ const deadline = now() + (options.budgetMs ?? 2000);
151
+ const yieldFn = options.yieldFn ?? (() => new Promise((resolve) => setTimeout(resolve, 0)));
152
+ let batches = 0;
153
+ while (now() < deadline) {
154
+ try {
155
+ if (!withoutSqliteTransformPass2(() => withSqliteBackgroundWriter2(step)))
156
+ break;
157
+ } catch (error) {
158
+ if (isTransientSqliteError2(error))
159
+ break;
160
+ throw error;
161
+ }
162
+ batches++;
163
+ await yieldFn();
164
+ }
165
+ return batches;
166
+ }
167
+
145
168
  // src/features/magic-context/storage-embedding-measurements.ts
146
169
  import { createHash } from "node:crypto";
147
170
  function normalizedQueryHash(query) {
@@ -600,27 +623,6 @@ class OpenAICompatibleEmbeddingProvider {
600
623
  // src/features/magic-context/project-embedding-registry.ts
601
624
  import { createHash as createHash2, randomUUID } from "node:crypto";
602
625
 
603
- // src/shared/background-batch-drain.ts
604
- async function drainBackgroundBatches(step, options = {}) {
605
- const now = options.now ?? (() => performance.now());
606
- const deadline = now() + (options.budgetMs ?? 2000);
607
- const yieldFn = options.yieldFn ?? (() => new Promise((resolve) => setTimeout(resolve, 0)));
608
- let batches = 0;
609
- while (now() < deadline) {
610
- try {
611
- if (!withoutSqliteTransformPass2(() => withSqliteBackgroundWriter2(step)))
612
- break;
613
- } catch (error) {
614
- if (isTransientSqliteError2(error))
615
- break;
616
- throw error;
617
- }
618
- batches++;
619
- await yieldFn();
620
- }
621
- return batches;
622
- }
623
-
624
626
  // src/features/magic-context/git-commits/storage-git-commit-embeddings.ts
625
627
  var saveStatements = new WeakMap;
626
628
  var loadProjectStatements = new WeakMap;
@@ -3027,4 +3029,4 @@ function _resetProjectEmbeddingRegistryForTests2() {
3027
3029
  setBootQuietPeriodForTests(null);
3028
3030
  }
3029
3031
 
3030
- export { recordSessionProjectIdentity, hasRecordedSessionProjectIdentity, recordEmbeddingMeasurement, OpenAICompatibleEmbeddingProvider, drainBackgroundBatches, saveCommitEmbedding, loadProjectCommitEmbeddings, loadUnembeddedCommits, countEmbeddedCommits, upsertCommits, getLatestIndexedCommitSha, enforceProjectCap, GIT_SWEEP_LEASE_RENEWAL_MS, acquireGitSweepLease, renewGitSweepLease, markGitSweepSuccessAndRelease, parkGitSweepNonIndexable, releaseGitSweepLease, describeShadowBackfillWriteRefusal2, listShadowBackfillStalls2, getShadowBackfillStopReason2, markProjectLoadUntrusted2, contentSha2562, drainProjectEmbeddingIdentityMaintenance2, drainStaleEmbeddingIdentitiesForProject2, registerProjectEmbedding2, registerProjectShadowEmbedding2, getShadowEmbeddingMeasurementCohort2, getPrimaryEmbeddingMeasurementCohort2, embedShadowTextForProject2, enqueueShadowEmbeddingItems2, getShadowBackfillRemaining2, flushShadowEmbeddingBacklog2, registerProjectInObservationMode2, unregisterProjectShadowEmbedding2, unregisterProjectEmbedding2, getProjectEmbeddingSnapshot2, installProjectEmbeddingSearchBridge2, getProjectChunkEmbeddingModelId2, getProjectEmbeddingMaxInputTokens2, embedTextForProject2, embedBatchForProject2, embedItemsForProject2, embedUnembeddedMemoriesForProject2, embedUnembeddedMemoriesForProjectOutcome2, drainCommitBacklogForProject2, embedUnembeddedCompartmentChunksForProject2, embedSessionCompartmentChunks2, getEmbeddingCoverageStatus2, getAutoEmbeddingSessionCoverage2, sweepAllRegisteredProjects2, _setTestProviderFactoryForProject2, _resetProjectEmbeddingRegistryForTests2 };
3032
+ export { recordSessionProjectIdentity, hasRecordedSessionProjectIdentity, drainBackgroundBatches, recordEmbeddingMeasurement, OpenAICompatibleEmbeddingProvider, saveCommitEmbedding, loadProjectCommitEmbeddings, loadUnembeddedCommits, countEmbeddedCommits, upsertCommits, getLatestIndexedCommitSha, enforceProjectCap, GIT_SWEEP_LEASE_RENEWAL_MS, acquireGitSweepLease, renewGitSweepLease, markGitSweepSuccessAndRelease, parkGitSweepNonIndexable, releaseGitSweepLease, describeShadowBackfillWriteRefusal2, listShadowBackfillStalls2, getShadowBackfillStopReason2, markProjectLoadUntrusted2, contentSha2562, drainProjectEmbeddingIdentityMaintenance2, drainStaleEmbeddingIdentitiesForProject2, registerProjectEmbedding2, registerProjectShadowEmbedding2, getShadowEmbeddingMeasurementCohort2, getPrimaryEmbeddingMeasurementCohort2, embedShadowTextForProject2, enqueueShadowEmbeddingItems2, getShadowBackfillRemaining2, flushShadowEmbeddingBacklog2, registerProjectInObservationMode2, unregisterProjectShadowEmbedding2, unregisterProjectEmbedding2, getProjectEmbeddingSnapshot2, installProjectEmbeddingSearchBridge2, getProjectChunkEmbeddingModelId2, getProjectEmbeddingMaxInputTokens2, embedTextForProject2, embedBatchForProject2, embedItemsForProject2, embedUnembeddedMemoriesForProject2, embedUnembeddedMemoriesForProjectOutcome2, drainCommitBacklogForProject2, embedUnembeddedCompartmentChunksForProject2, embedSessionCompartmentChunks2, getEmbeddingCoverageStatus2, getAutoEmbeddingSessionCoverage2, sweepAllRegisteredProjects2, _setTestProviderFactoryForProject2, _resetProjectEmbeddingRegistryForTests2 };
@@ -4,6 +4,7 @@ import {
4
4
  chmodSync,
5
5
  closeSync,
6
6
  createWriteStream,
7
+ fsyncSync,
7
8
  lstatSync,
8
9
  mkdirSync,
9
10
  openSync,
@@ -32,6 +33,14 @@ function ensureStorageDirectorySync(directory, forcePrivate = false, recursive =
32
33
  ...privateMode ? { mode: 448 } : {}
33
34
  });
34
35
  }
36
+ function ensurePrivateStorageDirectorySync(directory) {
37
+ ensureStorageDirectorySync(directory, true);
38
+ const stat = lstatSync(directory);
39
+ if (!stat.isDirectory() || stat.isSymbolicLink())
40
+ throw new Error("Private storage directory is not a real directory");
41
+ if (process.platform !== "win32")
42
+ chmodSync(directory, 448);
43
+ }
35
44
  function writeStorageFileSync(filePath, content, options = {}) {
36
45
  const { forcePrivate = false, ...writeOptions } = options;
37
46
  const privateMode = forcePrivate || shouldEnforcePrivateStoragePermissions();
@@ -51,6 +60,35 @@ function writeStorageFileAtomicSync(filePath, content, forcePrivate = false) {
51
60
  throw error;
52
61
  }
53
62
  }
63
+ function syncStorageDirectorySync(directory) {
64
+ const fd = openSync(directory, "r");
65
+ try {
66
+ fsyncSync(fd);
67
+ } finally {
68
+ closeSync(fd);
69
+ }
70
+ }
71
+ function writeStorageFileDurableAtomicSync(filePath, content, afterTempSync) {
72
+ const directory = dirname(filePath);
73
+ ensurePrivateStorageDirectorySync(directory);
74
+ const tempPath = `${filePath}.${process.pid}.${randomBytes(12).toString("hex")}.tmp`;
75
+ let fd;
76
+ try {
77
+ fd = openStorageFileSync(tempPath, "wx", true);
78
+ writeFileSync(fd, content, "utf8");
79
+ fsyncSync(fd);
80
+ closeSync(fd);
81
+ fd = undefined;
82
+ afterTempSync?.();
83
+ renameSync(tempPath, filePath);
84
+ syncStorageDirectorySync(directory);
85
+ syncStorageDirectorySync(dirname(directory));
86
+ } finally {
87
+ if (fd !== undefined)
88
+ closeSync(fd);
89
+ rmSync(tempPath, { force: true });
90
+ }
91
+ }
54
92
  function copyStorageFileSync(sourcePath, destinationPath, forcePrivate = false) {
55
93
  ensureStorageDirectorySync(dirname(destinationPath), forcePrivate);
56
94
  const privateMode = forcePrivate || shouldEnforcePrivateStoragePermissions();
@@ -94,6 +132,11 @@ function copyStorageTreeSync(sourcePath, destinationPath, forcePrivate = false)
94
132
  copyStorageTreeSync(join(sourcePath, entry), join(destinationPath, entry), forcePrivate);
95
133
  }
96
134
  }
135
+ function openStorageFileSync(filePath, flags, forcePrivate = false) {
136
+ ensureStorageDirectorySync(dirname(filePath), forcePrivate);
137
+ const privateMode = forcePrivate || shouldEnforcePrivateStoragePermissions();
138
+ return openSync(filePath, flags, privateMode ? 384 : 438);
139
+ }
97
140
  async function writeStorageFileAsync(filePath, content, forcePrivate = false) {
98
141
  const privateMode = forcePrivate || shouldEnforcePrivateStoragePermissions();
99
142
  ensureStorageDirectorySync(dirname(filePath), privateMode);
@@ -151,4 +194,4 @@ function tightenStorageTreeSync(root) {
151
194
  return { tightened, failures };
152
195
  }
153
196
 
154
- export { setStoragePrivatePermissionEnforcement, shouldEnforcePrivateStoragePermissions, ensureStorageDirectorySync, writeStorageFileSync, writeStorageFileAtomicSync, copyStorageFileSync, copyStorageTreeSync, writeStorageFileAsync, writeStorageFileHandleAsync, createStorageWriteStream, createStorageFileHandleAsync, tightenStorageTreeSync };
197
+ export { setStoragePrivatePermissionEnforcement, shouldEnforcePrivateStoragePermissions, ensureStorageDirectorySync, ensurePrivateStorageDirectorySync, writeStorageFileSync, writeStorageFileAtomicSync, syncStorageDirectorySync, writeStorageFileDurableAtomicSync, copyStorageFileSync, copyStorageTreeSync, writeStorageFileAsync, writeStorageFileHandleAsync, createStorageWriteStream, createStorageFileHandleAsync, tightenStorageTreeSync };