@cortexkit/opencode-magic-context 0.25.0 → 0.27.0

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 (316) hide show
  1. package/README.md +14 -12
  2. package/dist/agents/dreamer.d.ts +19 -0
  3. package/dist/agents/dreamer.d.ts.map +1 -1
  4. package/dist/agents/hidden-agent-registrations.d.ts +67 -0
  5. package/dist/agents/hidden-agent-registrations.d.ts.map +1 -0
  6. package/dist/agents/historian.d.ts +1 -0
  7. package/dist/agents/historian.d.ts.map +1 -1
  8. package/dist/agents/permissions.d.ts +19 -42
  9. package/dist/agents/permissions.d.ts.map +1 -1
  10. package/dist/agents/smart-note-compiler.d.ts +2 -0
  11. package/dist/agents/smart-note-compiler.d.ts.map +1 -0
  12. package/dist/config/index.d.ts +1 -1
  13. package/dist/config/index.d.ts.map +1 -1
  14. package/dist/config/migrate-config-location.d.ts +89 -0
  15. package/dist/config/migrate-config-location.d.ts.map +1 -0
  16. package/dist/config/migrate-dreamer-v2.d.ts +37 -0
  17. package/dist/config/migrate-dreamer-v2.d.ts.map +1 -0
  18. package/dist/config/migrate-experimental.d.ts.map +1 -1
  19. package/dist/config/project-security.d.ts +3 -0
  20. package/dist/config/project-security.d.ts.map +1 -1
  21. package/dist/config/prune-config-leaf.d.ts.map +1 -1
  22. package/dist/config/schema/magic-context.d.ts +606 -60
  23. package/dist/config/schema/magic-context.d.ts.map +1 -1
  24. package/dist/features/magic-context/compaction-marker.d.ts +9 -3
  25. package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
  26. package/dist/features/magic-context/compartment-chunk-embedding.d.ts +18 -1
  27. package/dist/features/magic-context/compartment-chunk-embedding.d.ts.map +1 -1
  28. package/dist/features/magic-context/compartment-embedding.d.ts.map +1 -1
  29. package/dist/features/magic-context/dreamer/classify-prompt.d.ts +50 -0
  30. package/dist/features/magic-context/dreamer/classify-prompt.d.ts.map +1 -0
  31. package/dist/features/magic-context/dreamer/classify.d.ts +22 -0
  32. package/dist/features/magic-context/dreamer/classify.d.ts.map +1 -0
  33. package/dist/features/magic-context/dreamer/cron.d.ts +72 -0
  34. package/dist/features/magic-context/dreamer/cron.d.ts.map +1 -0
  35. package/dist/features/magic-context/dreamer/evaluate-smart-notes.d.ts +30 -0
  36. package/dist/features/magic-context/dreamer/evaluate-smart-notes.d.ts.map +1 -0
  37. package/dist/features/magic-context/dreamer/index.d.ts +1 -3
  38. package/dist/features/magic-context/dreamer/index.d.ts.map +1 -1
  39. package/dist/features/magic-context/dreamer/lease.d.ts +44 -6
  40. package/dist/features/magic-context/dreamer/lease.d.ts.map +1 -1
  41. package/dist/features/magic-context/dreamer/maintain-docs-protected-enforcement.d.ts +13 -0
  42. package/dist/features/magic-context/dreamer/maintain-docs-protected-enforcement.d.ts.map +1 -0
  43. package/dist/features/magic-context/dreamer/map-memories-prompt.d.ts +36 -0
  44. package/dist/features/magic-context/dreamer/map-memories-prompt.d.ts.map +1 -0
  45. package/dist/features/magic-context/dreamer/map-memories.d.ts +22 -0
  46. package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -0
  47. package/dist/features/magic-context/dreamer/open-opencode-db.d.ts +7 -0
  48. package/dist/features/magic-context/dreamer/open-opencode-db.d.ts.map +1 -0
  49. package/dist/features/magic-context/dreamer/primer-seed.d.ts +25 -0
  50. package/dist/features/magic-context/dreamer/primer-seed.d.ts.map +1 -0
  51. package/dist/features/magic-context/dreamer/promote-primers.d.ts +21 -0
  52. package/dist/features/magic-context/dreamer/promote-primers.d.ts.map +1 -0
  53. package/dist/features/magic-context/dreamer/protected-regions.d.ts +19 -0
  54. package/dist/features/magic-context/dreamer/protected-regions.d.ts.map +1 -0
  55. package/dist/features/magic-context/dreamer/refresh-primers.d.ts +30 -0
  56. package/dist/features/magic-context/dreamer/refresh-primers.d.ts.map +1 -0
  57. package/dist/features/magic-context/dreamer/retrospective-learnings.d.ts +47 -0
  58. package/dist/features/magic-context/dreamer/retrospective-learnings.d.ts.map +1 -0
  59. package/dist/features/magic-context/dreamer/retrospective-orphan-sweep.d.ts +48 -0
  60. package/dist/features/magic-context/dreamer/retrospective-orphan-sweep.d.ts.map +1 -0
  61. package/dist/features/magic-context/dreamer/retrospective-raw-provider.d.ts +81 -0
  62. package/dist/features/magic-context/dreamer/retrospective-raw-provider.d.ts.map +1 -0
  63. package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts +8 -0
  64. package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts.map +1 -1
  65. package/dist/features/magic-context/dreamer/storage-task-schedule.d.ts +82 -0
  66. package/dist/features/magic-context/dreamer/storage-task-schedule.d.ts.map +1 -0
  67. package/dist/features/magic-context/dreamer/task-config.d.ts +28 -0
  68. package/dist/features/magic-context/dreamer/task-config.d.ts.map +1 -0
  69. package/dist/features/magic-context/dreamer/task-executor.d.ts +49 -0
  70. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -0
  71. package/dist/features/magic-context/dreamer/task-gates.d.ts +29 -0
  72. package/dist/features/magic-context/dreamer/task-gates.d.ts.map +1 -0
  73. package/dist/features/magic-context/dreamer/task-prompts.d.ts +37 -6
  74. package/dist/features/magic-context/dreamer/task-prompts.d.ts.map +1 -1
  75. package/dist/features/magic-context/dreamer/task-registry.d.ts +48 -0
  76. package/dist/features/magic-context/dreamer/task-registry.d.ts.map +1 -0
  77. package/dist/features/magic-context/dreamer/task-scheduler.d.ts +88 -0
  78. package/dist/features/magic-context/dreamer/task-scheduler.d.ts.map +1 -0
  79. package/dist/features/magic-context/dreamer/verify-gate.d.ts +43 -0
  80. package/dist/features/magic-context/dreamer/verify-gate.d.ts.map +1 -0
  81. package/dist/features/magic-context/dreamer/verify-prompt.d.ts +41 -0
  82. package/dist/features/magic-context/dreamer/verify-prompt.d.ts.map +1 -0
  83. package/dist/features/magic-context/dreamer/verify.d.ts +43 -0
  84. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -0
  85. package/dist/features/magic-context/git-commits/search-git-commits.d.ts +2 -0
  86. package/dist/features/magic-context/git-commits/search-git-commits.d.ts.map +1 -1
  87. package/dist/features/magic-context/git-commits/storage-git-commit-embeddings.d.ts +4 -4
  88. package/dist/features/magic-context/git-commits/storage-git-commit-embeddings.d.ts.map +1 -1
  89. package/dist/features/magic-context/index.d.ts +1 -0
  90. package/dist/features/magic-context/index.d.ts.map +1 -1
  91. package/dist/features/magic-context/memory/embedding-cache.d.ts +2 -2
  92. package/dist/features/magic-context/memory/embedding-cache.d.ts.map +1 -1
  93. package/dist/features/magic-context/memory/embedding-identity.d.ts.map +1 -1
  94. package/dist/features/magic-context/memory/embedding-local.d.ts +3 -3
  95. package/dist/features/magic-context/memory/embedding-local.d.ts.map +1 -1
  96. package/dist/features/magic-context/memory/embedding-openai.d.ts +20 -9
  97. package/dist/features/magic-context/memory/embedding-openai.d.ts.map +1 -1
  98. package/dist/features/magic-context/memory/embedding-provider.d.ts +8 -4
  99. package/dist/features/magic-context/memory/embedding-provider.d.ts.map +1 -1
  100. package/dist/features/magic-context/memory/embedding.d.ts +2 -2
  101. package/dist/features/magic-context/memory/embedding.d.ts.map +1 -1
  102. package/dist/features/magic-context/memory/index.d.ts +4 -1
  103. package/dist/features/magic-context/memory/index.d.ts.map +1 -1
  104. package/dist/features/magic-context/memory/memory-migration.d.ts +1 -0
  105. package/dist/features/magic-context/memory/memory-migration.d.ts.map +1 -1
  106. package/dist/features/magic-context/memory/promotion.d.ts +16 -4
  107. package/dist/features/magic-context/memory/promotion.d.ts.map +1 -1
  108. package/dist/features/magic-context/memory/relocate-memory.d.ts +58 -0
  109. package/dist/features/magic-context/memory/relocate-memory.d.ts.map +1 -0
  110. package/dist/features/magic-context/memory/storage-memory-embeddings.d.ts +2 -2
  111. package/dist/features/magic-context/memory/storage-memory-embeddings.d.ts.map +1 -1
  112. package/dist/features/magic-context/memory/storage-memory-verifications.d.ts +31 -0
  113. package/dist/features/magic-context/memory/storage-memory-verifications.d.ts.map +1 -0
  114. package/dist/features/magic-context/memory/storage-memory.d.ts +12 -1
  115. package/dist/features/magic-context/memory/storage-memory.d.ts.map +1 -1
  116. package/dist/features/magic-context/memory/types.d.ts +4 -0
  117. package/dist/features/magic-context/memory/types.d.ts.map +1 -1
  118. package/dist/features/magic-context/memory/verification-paths.d.ts +32 -0
  119. package/dist/features/magic-context/memory/verification-paths.d.ts.map +1 -0
  120. package/dist/features/magic-context/message-index.d.ts.map +1 -1
  121. package/dist/features/magic-context/migrations.d.ts.map +1 -1
  122. package/dist/features/magic-context/overflow-detection.d.ts.map +1 -1
  123. package/dist/features/magic-context/primer-clustering.d.ts +29 -0
  124. package/dist/features/magic-context/primer-clustering.d.ts.map +1 -0
  125. package/dist/features/magic-context/project-embedding-registry.d.ts +28 -4
  126. package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
  127. package/dist/features/magic-context/search.d.ts +12 -2
  128. package/dist/features/magic-context/search.d.ts.map +1 -1
  129. package/dist/features/magic-context/sidekick/agent.d.ts.map +1 -1
  130. package/dist/features/magic-context/smart-notes/capabilities.d.ts +31 -0
  131. package/dist/features/magic-context/smart-notes/capabilities.d.ts.map +1 -0
  132. package/dist/features/magic-context/smart-notes/compiler-prompt.d.ts +2 -0
  133. package/dist/features/magic-context/smart-notes/compiler-prompt.d.ts.map +1 -0
  134. package/dist/features/magic-context/smart-notes/compiler.d.ts +52 -0
  135. package/dist/features/magic-context/smart-notes/compiler.d.ts.map +1 -0
  136. package/dist/features/magic-context/smart-notes/index.d.ts +10 -0
  137. package/dist/features/magic-context/smart-notes/index.d.ts.map +1 -0
  138. package/dist/features/magic-context/smart-notes/runner.d.ts +18 -0
  139. package/dist/features/magic-context/smart-notes/runner.d.ts.map +1 -0
  140. package/dist/features/magic-context/smart-notes/sandbox-runner.d.ts +22 -0
  141. package/dist/features/magic-context/smart-notes/sandbox-runner.d.ts.map +1 -0
  142. package/dist/features/magic-context/smart-notes/schedule.d.ts +9 -0
  143. package/dist/features/magic-context/smart-notes/schedule.d.ts.map +1 -0
  144. package/dist/features/magic-context/smart-notes/ssrf-guard.d.ts +49 -0
  145. package/dist/features/magic-context/smart-notes/ssrf-guard.d.ts.map +1 -0
  146. package/dist/features/magic-context/smart-notes/storage.d.ts +27 -0
  147. package/dist/features/magic-context/smart-notes/storage.d.ts.map +1 -0
  148. package/dist/features/magic-context/smart-notes/types.d.ts +63 -0
  149. package/dist/features/magic-context/smart-notes/types.d.ts.map +1 -0
  150. package/dist/features/magic-context/storage-db.d.ts +6 -1
  151. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  152. package/dist/features/magic-context/storage-meta-persisted.d.ts +45 -4
  153. package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
  154. package/dist/features/magic-context/storage-meta-session.d.ts.map +1 -1
  155. package/dist/features/magic-context/storage-meta-shared.d.ts +5 -1
  156. package/dist/features/magic-context/storage-meta-shared.d.ts.map +1 -1
  157. package/dist/features/magic-context/storage-meta.d.ts +1 -1
  158. package/dist/features/magic-context/storage-meta.d.ts.map +1 -1
  159. package/dist/features/magic-context/storage-notes.d.ts +15 -0
  160. package/dist/features/magic-context/storage-notes.d.ts.map +1 -1
  161. package/dist/features/magic-context/storage-primers.d.ts +85 -0
  162. package/dist/features/magic-context/storage-primers.d.ts.map +1 -0
  163. package/dist/features/magic-context/storage-tags.d.ts +68 -2
  164. package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
  165. package/dist/features/magic-context/storage.d.ts +4 -3
  166. package/dist/features/magic-context/storage.d.ts.map +1 -1
  167. package/dist/features/magic-context/tagger.d.ts +7 -1
  168. package/dist/features/magic-context/tagger.d.ts.map +1 -1
  169. package/dist/features/magic-context/tool-owner-backfill.d.ts.map +1 -1
  170. package/dist/features/magic-context/transform-decision-log.d.ts +59 -0
  171. package/dist/features/magic-context/transform-decision-log.d.ts.map +1 -0
  172. package/dist/features/magic-context/types.d.ts +2 -0
  173. package/dist/features/magic-context/types.d.ts.map +1 -1
  174. package/dist/features/magic-context/user-memory/review-user-memories.d.ts +5 -0
  175. package/dist/features/magic-context/user-memory/review-user-memories.d.ts.map +1 -1
  176. package/dist/features/magic-context/user-memory/storage-user-memory.d.ts +18 -0
  177. package/dist/features/magic-context/user-memory/storage-user-memory.d.ts.map +1 -1
  178. package/dist/features/magic-context/v22-deferred-backfill.d.ts.map +1 -1
  179. package/dist/hooks/auto-update-checker/semver.d.ts +9 -0
  180. package/dist/hooks/auto-update-checker/semver.d.ts.map +1 -1
  181. package/dist/hooks/magic-context/auto-search-hint.d.ts.map +1 -1
  182. package/dist/hooks/magic-context/auto-search-runner.d.ts.map +1 -1
  183. package/dist/hooks/magic-context/command-handler.d.ts +8 -15
  184. package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
  185. package/dist/hooks/magic-context/compaction-marker-manager.d.ts.map +1 -1
  186. package/dist/hooks/magic-context/compartment-parser.d.ts +9 -0
  187. package/dist/hooks/magic-context/compartment-parser.d.ts.map +1 -1
  188. package/dist/hooks/magic-context/compartment-prompt.d.ts +4 -1
  189. package/dist/hooks/magic-context/compartment-prompt.d.ts.map +1 -1
  190. package/dist/hooks/magic-context/compartment-runner-historian.d.ts +1 -0
  191. package/dist/hooks/magic-context/compartment-runner-historian.d.ts.map +1 -1
  192. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  193. package/dist/hooks/magic-context/compartment-runner-partial-recomp.d.ts.map +1 -1
  194. package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
  195. package/dist/hooks/magic-context/compartment-runner-types.d.ts +8 -0
  196. package/dist/hooks/magic-context/compartment-runner-types.d.ts.map +1 -1
  197. package/dist/hooks/magic-context/compartment-runner-validation.d.ts.map +1 -1
  198. package/dist/hooks/magic-context/compartment-trigger.d.ts +1 -1
  199. package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
  200. package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts.map +1 -1
  201. package/dist/hooks/magic-context/derive-budgets.d.ts +5 -9
  202. package/dist/hooks/magic-context/derive-budgets.d.ts.map +1 -1
  203. package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
  204. package/dist/hooks/magic-context/event-payloads.d.ts +1 -0
  205. package/dist/hooks/magic-context/event-payloads.d.ts.map +1 -1
  206. package/dist/hooks/magic-context/event-resolvers.d.ts.map +1 -1
  207. package/dist/hooks/magic-context/heuristic-cleanup.d.ts +1 -0
  208. package/dist/hooks/magic-context/heuristic-cleanup.d.ts.map +1 -1
  209. package/dist/hooks/magic-context/historian-prompt.generated.d.ts +1 -1
  210. package/dist/hooks/magic-context/historian-prompt.generated.d.ts.map +1 -1
  211. package/dist/hooks/magic-context/historian-state-file.d.ts.map +1 -1
  212. package/dist/hooks/magic-context/hook-handlers.d.ts +2 -1
  213. package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -1
  214. package/dist/hooks/magic-context/hook.d.ts +1 -0
  215. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  216. package/dist/hooks/magic-context/inject-compartments.d.ts +0 -3
  217. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  218. package/dist/hooks/magic-context/protected-tail-boundary.d.ts +10 -0
  219. package/dist/hooks/magic-context/protected-tail-boundary.d.ts.map +1 -1
  220. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
  221. package/dist/hooks/magic-context/send-session-notification.d.ts +2 -0
  222. package/dist/hooks/magic-context/send-session-notification.d.ts.map +1 -1
  223. package/dist/hooks/magic-context/system-prompt-hash.d.ts +17 -0
  224. package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
  225. package/dist/hooks/magic-context/tag-id-fallback.d.ts.map +1 -1
  226. package/dist/hooks/magic-context/tag-messages.d.ts +10 -0
  227. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  228. package/dist/hooks/magic-context/transform-compartment-phase.d.ts +32 -1
  229. package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -1
  230. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +14 -5
  231. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  232. package/dist/hooks/magic-context/transform.d.ts +0 -2
  233. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  234. package/dist/index.d.ts +2 -2
  235. package/dist/index.d.ts.map +1 -1
  236. package/dist/index.js +17664 -4236
  237. package/dist/plugin/dream-timer.d.ts +17 -9
  238. package/dist/plugin/dream-timer.d.ts.map +1 -1
  239. package/dist/plugin/embedding-bootstrap-helpers.d.ts +1 -1
  240. package/dist/plugin/embedding-bootstrap-helpers.d.ts.map +1 -1
  241. package/dist/plugin/embedding-bootstrap.d.ts.map +1 -1
  242. package/dist/plugin/hooks/create-session-hooks.d.ts +211 -0
  243. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  244. package/dist/plugin/instance-disposal.d.ts +2 -0
  245. package/dist/plugin/instance-disposal.d.ts.map +1 -0
  246. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  247. package/dist/shared/announcement.d.ts +1 -1
  248. package/dist/shared/announcement.d.ts.map +1 -1
  249. package/dist/shared/data-path.d.ts +26 -7
  250. package/dist/shared/data-path.d.ts.map +1 -1
  251. package/dist/shared/index.d.ts +0 -1
  252. package/dist/shared/index.d.ts.map +1 -1
  253. package/dist/shared/model-suggestion-retry.d.ts +48 -2
  254. package/dist/shared/model-suggestion-retry.d.ts.map +1 -1
  255. package/dist/shared/redaction.d.ts +7 -0
  256. package/dist/shared/redaction.d.ts.map +1 -0
  257. package/dist/shared/resolve-fallbacks.d.ts +28 -16
  258. package/dist/shared/resolve-fallbacks.d.ts.map +1 -1
  259. package/dist/shared/rpc-server.d.ts.map +1 -1
  260. package/dist/shared/rpc-types.d.ts +2 -0
  261. package/dist/shared/rpc-types.d.ts.map +1 -1
  262. package/dist/shared/subagent-runner.d.ts +12 -3
  263. package/dist/shared/subagent-runner.d.ts.map +1 -1
  264. package/dist/shared/tui-config.d.ts.map +1 -1
  265. package/dist/tools/ctx-memory/tools.d.ts.map +1 -1
  266. package/dist/tools/ctx-memory/types.d.ts.map +1 -1
  267. package/dist/tools/ctx-memory/verification-recording.d.ts +8 -0
  268. package/dist/tools/ctx-memory/verification-recording.d.ts.map +1 -0
  269. package/dist/tools/ctx-search/tools.d.ts.map +1 -1
  270. package/dist/tools/ctx-search/types.d.ts +1 -1
  271. package/dist/tools/ctx-search/types.d.ts.map +1 -1
  272. package/dist/tui/data/context-db.d.ts +2 -0
  273. package/dist/tui/data/context-db.d.ts.map +1 -1
  274. package/package.json +3 -1
  275. package/src/shared/announcement.test.ts +20 -0
  276. package/src/shared/announcement.ts +19 -7
  277. package/src/shared/data-path.test.ts +70 -6
  278. package/src/shared/data-path.ts +50 -8
  279. package/src/shared/index.ts +0 -1
  280. package/src/shared/model-suggestion-retry.test.ts +79 -2
  281. package/src/shared/model-suggestion-retry.ts +181 -3
  282. package/src/shared/redaction.test.ts +48 -0
  283. package/src/shared/redaction.ts +240 -0
  284. package/src/shared/resolve-fallbacks.test.ts +37 -71
  285. package/src/shared/resolve-fallbacks.ts +30 -26
  286. package/src/shared/rpc-server.ts +24 -0
  287. package/src/shared/rpc-types.ts +2 -0
  288. package/src/shared/subagent-runner.ts +12 -3
  289. package/src/shared/tui-config.test.ts +63 -0
  290. package/src/shared/tui-config.ts +67 -39
  291. package/src/tui/data/context-db.ts +12 -0
  292. package/src/tui/index.tsx +87 -17
  293. package/src/tui/slots/sidebar-content.tsx +15 -7
  294. package/dist/features/magic-context/dreamer/queue.d.ts +0 -55
  295. package/dist/features/magic-context/dreamer/queue.d.ts.map +0 -1
  296. package/dist/features/magic-context/dreamer/runner.d.ts +0 -92
  297. package/dist/features/magic-context/dreamer/runner.d.ts.map +0 -1
  298. package/dist/features/magic-context/dreamer/scheduler.d.ts +0 -29
  299. package/dist/features/magic-context/dreamer/scheduler.d.ts.map +0 -1
  300. package/dist/features/magic-context/key-files/aft-availability.d.ts +0 -11
  301. package/dist/features/magic-context/key-files/aft-availability.d.ts.map +0 -1
  302. package/dist/features/magic-context/key-files/identify-key-files.d.ts +0 -84
  303. package/dist/features/magic-context/key-files/identify-key-files.d.ts.map +0 -1
  304. package/dist/features/magic-context/key-files/project-key-files.d.ts +0 -42
  305. package/dist/features/magic-context/key-files/project-key-files.d.ts.map +0 -1
  306. package/dist/features/magic-context/key-files/read-history.d.ts +0 -26
  307. package/dist/features/magic-context/key-files/read-history.d.ts.map +0 -1
  308. package/dist/features/magic-context/key-files/read-stats.d.ts +0 -18
  309. package/dist/features/magic-context/key-files/read-stats.d.ts.map +0 -1
  310. package/dist/features/magic-context/key-files/storage-key-files.d.ts +0 -20
  311. package/dist/features/magic-context/key-files/storage-key-files.d.ts.map +0 -1
  312. package/dist/hooks/magic-context/key-files-block.d.ts +0 -27
  313. package/dist/hooks/magic-context/key-files-block.d.ts.map +0 -1
  314. package/dist/shared/model-requirements.d.ts +0 -26
  315. package/dist/shared/model-requirements.d.ts.map +0 -1
  316. package/src/shared/model-requirements.ts +0 -86
@@ -0,0 +1,88 @@
1
+ import type { PiThinkingLevel } from "../../../config/schema/magic-context";
2
+ import type { Database } from "../../../shared/sqlite";
3
+ import { type DreamTaskName } from "./task-registry";
4
+ /** Bounded retry before a transient failure stops hot-retrying and waits for the
5
+ * next cron occurrence. */
6
+ export declare const MAX_TASK_RETRIES = 3;
7
+ /** Resolved per-task config the scheduler operates on (decoupled from the Zod
8
+ * schema — step 5 produces this from config; the scheduler just consumes it). */
9
+ export interface DreamTaskRuntimeConfig {
10
+ task: DreamTaskName;
11
+ /** Cron string; `""` = disabled (never due). */
12
+ schedule: string;
13
+ model?: string;
14
+ fallbackModels?: readonly string[];
15
+ thinkingLevel?: PiThinkingLevel;
16
+ timeoutMinutes: number;
17
+ /** review-user-memories */
18
+ promotionThreshold?: number;
19
+ }
20
+ export interface TaskExecOutcome {
21
+ status: "completed" | "failed";
22
+ /** A transient failure (provider/network/rate-limit/timeout) hot-retries up to
23
+ * MAX_TASK_RETRIES; a permanent failure advances to the next cron slot. */
24
+ transient?: boolean;
25
+ error?: string;
26
+ schedulePatch?: {
27
+ /** retrospective content watermark (max message ts scanned this run). */
28
+ retrospectiveWatermarkMs?: number | null;
29
+ };
30
+ }
31
+ /** Runs ONE task's actual work (LLM loop). Supplied by the runner (step 4). The
32
+ * scheduler holds the domain lease + `holderId`; the executor must verify the
33
+ * lease holder under BEGIN IMMEDIATE immediately before any durable write. */
34
+ export type TaskExecutor = (task: DreamTaskRuntimeConfig, ctx: {
35
+ db: Database;
36
+ projectIdentity: string;
37
+ holderId: string;
38
+ leaseKey: string;
39
+ }) => Promise<TaskExecOutcome>;
40
+ export interface RunDueTasksDeps {
41
+ db: Database;
42
+ projectIdentity: string;
43
+ tasks: readonly DreamTaskRuntimeConfig[];
44
+ executor: TaskExecutor;
45
+ now?: number;
46
+ }
47
+ interface DueTask {
48
+ config: DreamTaskRuntimeConfig;
49
+ /** The next_due_at slot being satisfied — excluded from the next computation
50
+ * to prevent a DST repeated-minute double-fire. */
51
+ scheduledAt: number;
52
+ }
53
+ /** Pure-ish decision: seed missing rows, then collect tasks whose next_due_at has
54
+ * arrived. Gate evaluation happens in the drain (pre- AND post-lease). Exported
55
+ * for testing. */
56
+ export declare function planDueTasks(db: Database, projectIdentity: string, tasks: readonly DreamTaskRuntimeConfig[], now: number): DueTask[];
57
+ export interface ManualRunResult {
58
+ /** Tasks that actually executed (gate passed, lease acquired). */
59
+ ran: string[];
60
+ /** Tasks that were skipped because their activity gate failed. */
61
+ skippedNoWork: string[];
62
+ /** Tasks whose domain lease was busy (another run in progress). */
63
+ deferredBusy: string[];
64
+ /** Tasks that ran but failed. */
65
+ failed: string[];
66
+ }
67
+ /**
68
+ * Manual `/ctx-dream` run: run dream tasks NOW, IGNORING their schedule.
69
+ *
70
+ * - No `task` arg → run every ENABLED task (schedule != "") whose activity gate
71
+ * passes, grouped by domain under leases (same concurrency rules as the timer).
72
+ * - `task` arg → force-run that ONE task NOW, IGNORING its gate (explicit user
73
+ * intent), honoring its lease. Works even if the task's schedule is "".
74
+ *
75
+ * Still advances next_due_at on completion so the manual run resets the cadence.
76
+ */
77
+ export declare function runManualDream(deps: Omit<RunDueTasksDeps, "now"> & {
78
+ task?: DreamTaskName;
79
+ }): Promise<ManualRunResult>;
80
+ /**
81
+ * One scheduler pass for a project: seed missing rows, collect due tasks,
82
+ * pre-gate them, group by conflict-domain, and run domains CONCURRENTLY (tasks
83
+ * within a domain sequentially in canonical order under one lease). Returns the
84
+ * number of tasks actually executed (for logging/tests).
85
+ */
86
+ export declare function runDueTasksForProject(deps: RunDueTasksDeps): Promise<number>;
87
+ export {};
88
+ //# sourceMappingURL=task-scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-scheduler.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/dreamer/task-scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAWvD,OAAO,EAAoB,KAAK,aAAa,EAA6B,MAAM,iBAAiB,CAAC;AAElG;4BAC4B;AAC5B,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;kFACkF;AAClF,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,aAAa,CAAC;IACpB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B;gFAC4E;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE;QACZ,yEAAyE;QACzE,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5C,CAAC;CACL;AAED;;+EAE+E;AAC/E,MAAM,MAAM,YAAY,GAAG,CACvB,IAAI,EAAE,sBAAsB,EAC5B,GAAG,EAAE;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,KACjF,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9B,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,QAAQ,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACzC,QAAQ,EAAE,YAAY,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAkED,UAAU,OAAO;IACb,MAAM,EAAE,sBAAsB,CAAC;IAC/B;wDACoD;IACpD,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;mBAEmB;AACnB,wBAAgB,YAAY,CACxB,EAAE,EAAE,QAAQ,EACZ,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,SAAS,sBAAsB,EAAE,EACxC,GAAG,EAAE,MAAM,GACZ,OAAO,EAAE,CA0BX;AAwLD,MAAM,WAAW,eAAe;IAC5B,kEAAkE;IAClE,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,kEAAkE;IAClE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,mEAAmE;IACnE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iCAAiC;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAChC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,aAAa,CAAA;CAAE,GAC9D,OAAO,CAAC,eAAe,CAAC,CAiE1B;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAuClF"}
@@ -0,0 +1,43 @@
1
+ import type { Database } from "../../../shared/sqlite";
2
+ import type { VerifyPromptMemory } from "./verify-prompt";
3
+ /**
4
+ * Per-memory verify scope (DreamerV2 rework).
5
+ *
6
+ * Replaces the old GLOBAL commit-watermark + all-or-nothing coverage gate. Now
7
+ * each memory carries its own `verified_at` (set by the verify apply), so:
8
+ * - partial progress STICKS: a timed-out verify banks the memories it checked;
9
+ * the next run skips them and continues (the cold-start trap is gone).
10
+ * - there is no watermark to advance and no coverage check.
11
+ *
12
+ * Scope = active memories that have a REAL backing-file mapping (recorded by the
13
+ * map-memories backfill). Excluded:
14
+ * - file-independent memories (no-file sentinel) — they describe external
15
+ * behavior and cannot be checked against local code; curate + age decay own
16
+ * them.
17
+ * - unmapped memories — map-memories maps them first; once mapped they enter
18
+ * verify scope as never-verified (verified_at = 0).
19
+ *
20
+ * Modes:
21
+ * - `verify` (incremental, default): a candidate is in scope if it was never
22
+ * content-verified (verified_at = 0) OR any mapped file changed since THAT
23
+ * memory's verified_at (committed change-time newer, an uncommitted edit, or
24
+ * the file was deleted).
25
+ * - `verify-broad` (`forceBroad`): every candidate, regardless of change time —
26
+ * full-pool drift catching over the file-mapped memories.
27
+ */
28
+ export interface VerifyGateResult {
29
+ runStartedAt: number;
30
+ mode: "non-git" | "full" | "broad" | "incremental";
31
+ inScope: VerifyPromptMemory[];
32
+ inScopeIds: number[];
33
+ skippedIds: number[];
34
+ reason: string;
35
+ }
36
+ export declare function partitionVerifyScope(args: {
37
+ db: Database;
38
+ projectIdentity: string;
39
+ projectDirectory: string;
40
+ forceBroad?: boolean;
41
+ now?: number;
42
+ }): Promise<VerifyGateResult>;
43
+ //# sourceMappingURL=verify-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-gate.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/dreamer/verify-gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAUvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,WAAW,gBAAgB;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;IACnD,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAClB;AAOD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC7C,EAAE,EAAE,QAAQ,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsG5B"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * verify prompt + manifest parser.
3
+ *
4
+ * verify checks each in-scope project memory against the CURRENT source and
5
+ * emits ONE XML manifest (verified / update / archive). The agent reads code
6
+ * and changes nothing; the HOST parses the manifest and applies the DB writes
7
+ * (so the agent never needs a mutation tool). Calibrated in the shadow harness
8
+ * with planted ground-truth controls (4/4: caught a stale number → update, a
9
+ * wrong tool-count → archive, a same-session change → archive, and kept the
10
+ * correct control verified). See .alfonso/plans/dreamer-v2-rework.md.
11
+ *
12
+ * The DANGEROUS failure mode is WRONG ARCHIVAL (deleting a TRUE memory), so the
13
+ * prompt and the host apply both bias hard toward keeping memories.
14
+ */
15
+ export declare const VERIFY_SYSTEM_PROMPT = "You are a memory verifier for the magic-context system. You verify project memories against the CURRENT code.\n\nEach memory below comes with its backing file(s) \u2014 the code it makes a claim about. For EACH memory: read its backing files (you may read more if needed) and decide whether the memory is still accurate.\n\nTools (read-only): read, grep, glob, aft_search, aft_outline, aft_zoom. You read code to check claims; you change nothing.\n\nDecide ONE of three outcomes per memory:\n- VERIFIED \u2014 still accurate. Keep it as-is.\n- UPDATE \u2014 the underlying fact is still true but a DETAIL drifted (a renamed symbol, moved file, changed number/name). Provide corrected content in terse present tense (\"X uses Y\", not \"X was changed to Y\"). Only update for genuine drift, not style.\n- ARCHIVE \u2014 the code CLEARLY contradicts the memory, or the thing it describes no longer exists.\n\nBE CONSERVATIVE ABOUT ARCHIVING. Wrong archival of a TRUE memory is the worst possible outcome \u2014 far worse than leaving a slightly-stale memory. If you cannot find the code, or you are unsure, or it might still be true somewhere you didn't look: mark it VERIFIED, never archived. Archive ONLY when you have positive evidence the code contradicts it.\n\nOutput ONE XML manifest at the very end and NOTHING else \u2014 no narration, no per-memory commentary, no reasoning:\n<verify>\n<verified id=\"N\" files=\"path/a.ts,path/b.ts\"/>\n<update id=\"M\" files=\"path/c.ts\">corrected present-tense content</update>\n<archive id=\"K\" reason=\"specific evidence the code contradicts it\"/>\n</verify>\n\nRules:\n- Every input memory id MUST appear exactly once, in exactly one of verified/update/archive.\n- files = the COMPLETE current backing set (repo-relative, comma-separated). It may differ from the given mapping if a file moved \u2014 record what you actually verified against.\n- Default to VERIFIED. update and archive are the exceptions, not the norm.";
16
+ export interface VerifyPromptMemory {
17
+ id: number;
18
+ category: string;
19
+ content: string;
20
+ mappedFiles: string[];
21
+ }
22
+ export declare function buildVerifyPrompt(projectPath: string, memories: VerifyPromptMemory[]): string;
23
+ export interface ParsedVerifyManifest {
24
+ verified: Array<{
25
+ id: number;
26
+ files: string[];
27
+ }>;
28
+ updated: Array<{
29
+ id: number;
30
+ files: string[];
31
+ content: string;
32
+ }>;
33
+ archived: Array<{
34
+ id: number;
35
+ reason: string;
36
+ }>;
37
+ }
38
+ /** Parse the agent's `<verify>` manifest. Tolerant of attribute order, and of
39
+ * `<update>` either self-closing or wrapping its corrected content. */
40
+ export declare function parseVerifyManifest(text: string): ParsedVerifyManifest;
41
+ //# sourceMappingURL=verify-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-prompt.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/dreamer/verify-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,oBAAoB,u7DAuB2C,CAAC;AAE7E,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAgB7F;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACjD,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAcD;wEACwE;AACxE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAkBtE"}
@@ -0,0 +1,43 @@
1
+ import type { PluginContext } from "../../../plugin/types";
2
+ import type { Database } from "../../../shared/sqlite";
3
+ import { type VerifyPromptMemory } from "./verify-prompt";
4
+ export interface VerifyArgs {
5
+ db: Database;
6
+ client: PluginContext["client"];
7
+ projectIdentity: string;
8
+ parentSessionId: string | undefined;
9
+ sessionDirectory: string;
10
+ holderId: string;
11
+ leaseKey: string;
12
+ deadline: number;
13
+ forceBroad?: boolean;
14
+ model?: string;
15
+ fallbackModels?: readonly string[];
16
+ }
17
+ export interface VerifyResult {
18
+ verified: number;
19
+ updated: number;
20
+ archived: number;
21
+ batches: number;
22
+ inScope: number;
23
+ mode: string;
24
+ }
25
+ export declare function runVerify(args: VerifyArgs): Promise<VerifyResult>;
26
+ /**
27
+ * Apply the manifest host-side. Only ids that were IN this batch are touched.
28
+ * - verified: re-record the (normalized) backing files with verified_at = now
29
+ * (banks the per-memory verify progress).
30
+ * - update: rewrite the memory content via the cache-neutral mutation log, then
31
+ * clear old file mappings and embeddings so the new content is mapped and
32
+ * verified again next cycle.
33
+ * - archive: archive + queue an archive mutation (m[1] delta). Skipped when the
34
+ * memory is no longer primary-mutable (already archived/superseded), so a stale
35
+ * manifest can't fight a concurrent change.
36
+ * All writes happen under ONE lease-guarded transaction.
37
+ */
38
+ export declare function applyVerifyManifest(args: VerifyArgs, batch: VerifyPromptMemory[], manifestText: string): Promise<{
39
+ verified: number;
40
+ updated: number;
41
+ archived: number;
42
+ }>;
43
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/dreamer/verify.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAO3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAiBvD,OAAO,EAIH,KAAK,kBAAkB,EAC1B,MAAM,iBAAiB,CAAC;AAqBzB,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,QAAQ,CAAC;IACb,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAqDvE;AA8FD;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CACrC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,kBAAkB,EAAE,EAC3B,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA4FlE"}
@@ -23,6 +23,8 @@ export interface SearchGitCommitsOptions {
23
23
  singleSourcePenalty?: number;
24
24
  /** Pre-computed query embedding. When omitted, we skip the semantic pass. */
25
25
  queryEmbedding?: Float32Array | null;
26
+ /** ID of the model that generated queryEmbedding; commit vectors are read only from the same model space. */
27
+ queryModelId?: string | null;
26
28
  }
27
29
  /**
28
30
  * Return top-K commits matching `query` for `projectPath`, combining FTS
@@ -1 +1 @@
1
- {"version":3,"file":"search-git-commits.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/git-commits/search-git-commits.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAkC,MAAM,wBAAwB,CAAC;AAIvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAuE7D,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;CAC5C;AAED,MAAM,WAAW,uBAAuB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;wDACoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,cAAc,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACxC;AAOD;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,uBAAuB,GACjC,kBAAkB,EAAE,CAmGtB"}
1
+ {"version":3,"file":"search-git-commits.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/git-commits/search-git-commits.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAkC,MAAM,wBAAwB,CAAC;AAIvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAuE7D,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;CAC5C;AAED,MAAM,WAAW,uBAAuB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;wDACoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,cAAc,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,6GAA6G;IAC7G,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAOD;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,uBAAuB,GACjC,kBAAkB,EAAE,CAmGtB"}
@@ -8,12 +8,12 @@
8
8
  */
9
9
  import type { Database } from "../../../shared/sqlite";
10
10
  export declare function saveCommitEmbedding(db: Database, sha: string, embedding: Float32Array, modelId: string): void;
11
- export declare function loadProjectCommitEmbeddings(db: Database, projectPath: string): Map<string, Float32Array>;
12
- export declare function loadUnembeddedCommits(db: Database, projectPath: string, limit: number): Array<{
11
+ export declare function loadProjectCommitEmbeddings(db: Database, projectPath: string, modelId: string): Map<string, Float32Array>;
12
+ export declare function loadUnembeddedCommits(db: Database, projectPath: string, modelId: string, limit: number): Array<{
13
13
  sha: string;
14
14
  message: string;
15
15
  }>;
16
- export declare function countEmbeddedCommits(db: Database, projectPath: string): number;
17
- export declare function clearProjectCommitEmbeddings(db: Database, projectPath: string): number;
16
+ export declare function countEmbeddedCommits(db: Database, projectPath: string, modelId: string): number;
17
+ export declare function clearProjectCommitEmbeddings(db: Database, projectPath: string, modelId?: string): number;
18
18
  export declare function getDistinctCommitEmbeddingModelIds(db: Database, projectPath: string): Set<string | null>;
19
19
  //# sourceMappingURL=storage-git-commit-embeddings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-git-commit-embeddings.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/git-commits/storage-git-commit-embeddings.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAkC,MAAM,wBAAwB,CAAC;AA4GvF,wBAAgB,mBAAmB,CAC/B,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,MAAM,GAChB,IAAI,CAGN;AAED,wBAAgB,2BAA2B,CACvC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,GACpB,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAW3B;AAED,wBAAgB,qBAAqB,CACjC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACd,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAEzC;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAG9E;AAED,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,wBAAgB,kCAAkC,CAC9C,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,GACpB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAGpB"}
1
+ {"version":3,"file":"storage-git-commit-embeddings.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/git-commits/storage-git-commit-embeddings.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAkC,MAAM,wBAAwB,CAAC;AAwHvF,wBAAgB,mBAAmB,CAC/B,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,MAAM,GAChB,IAAI,CAGN;AAED,wBAAgB,2BAA2B,CACvC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GAChB,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAW3B;AAED,wBAAgB,qBAAqB,CACjC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACd,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAEzC;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAK/F;AAED,wBAAgB,4BAA4B,CACxC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACjB,MAAM,CAKR;AAED,wBAAgB,kCAAkC,CAC9C,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,GACpB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAGpB"}
@@ -6,6 +6,7 @@ export * from "./range-parser";
6
6
  export * from "./scheduler";
7
7
  export * from "./search";
8
8
  export * from "./sidekick";
9
+ export * from "./smart-notes";
9
10
  export * from "./storage";
10
11
  export * from "./tagger";
11
12
  export * from "./types";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { Database } from "../../../shared/sqlite";
2
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;
3
+ export declare function getProjectEmbeddings(db: Database, projectPath: string, modelId: string): Map<number, StoredMemoryEmbedding>;
4
+ export declare function peekProjectEmbeddings(projectPath: string, modelId: string): Map<number, StoredMemoryEmbedding> | null;
5
5
  export declare function invalidateProject(projectPath: string): void;
6
6
  export declare function invalidateMemory(projectPath: string, memoryId: number): void;
7
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;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
+ {"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;AAkC5F,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GAChB,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAYpC;AAED,wBAAgB,qBAAqB,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GAChB,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,IAAI,CAE3C;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAM3D;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAU5E;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAGlD;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEhE"}
@@ -1 +1 @@
1
- {"version":3,"file":"embedding-identity.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/embedding-identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAQ5E;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CA0B5E"}
1
+ {"version":3,"file":"embedding-identity.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/embedding-identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAQ5E;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAoC5E"}
@@ -1,4 +1,4 @@
1
- import type { EmbeddingProvider } from "./embedding-provider";
1
+ import type { EmbeddingProvider, EmbeddingPurpose } from "./embedding-provider";
2
2
  /** Whether local embeddings have been disabled this process due to a missing
3
3
  * native runtime (issue #128). Used by callers/tests to detect the degraded state. */
4
4
  export declare function isLocalEmbeddingRuntimeMissing(): boolean;
@@ -17,8 +17,8 @@ export declare class LocalEmbeddingProvider implements EmbeddingProvider {
17
17
  initialize(): Promise<boolean>;
18
18
  private waitForInFlightToDrain;
19
19
  private finishInFlight;
20
- embed(text: string, signal?: AbortSignal): Promise<Float32Array | null>;
21
- embedBatch(texts: string[], signal?: AbortSignal): Promise<(Float32Array | null)[]>;
20
+ embed(text: string, signal?: AbortSignal, _purpose?: EmbeddingPurpose): Promise<Float32Array | null>;
21
+ embedBatch(texts: string[], signal?: AbortSignal, _purpose?: EmbeddingPurpose): Promise<(Float32Array | null)[]>;
22
22
  dispose(): Promise<void>;
23
23
  isLoaded(): boolean;
24
24
  }
@@ -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;AA2Q9D;sFACsF;AACtF,wBAAgB,8BAA8B,IAAI,OAAO,CAExD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAwBnE;AA0ED,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;IA6JpC,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"}
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,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AA2QhF;sFACsF;AACtF,wBAAgB,8BAA8B,IAAI,OAAO,CAExD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAwBnE;AA0ED,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;IAuKpC,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,cAAc;IAShB,KAAK,CACP,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,gBAAgB,GAC5B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAoCzB,UAAU,CACZ,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,gBAAgB,GAC5B,OAAO,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC;IAyC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B9B,QAAQ,IAAI,OAAO;CAGtB"}
@@ -1,10 +1,12 @@
1
- import type { EmbeddingProvider } from "./embedding-provider";
1
+ import type { EmbeddingProvider, EmbeddingPurpose } from "./embedding-provider";
2
2
  interface OpenAICompatibleEmbeddingProviderOptions {
3
3
  endpoint?: string;
4
4
  model?: string;
5
5
  apiKey?: string;
6
- /** Optional `input_type` body field (e.g. NVIDIA NIM 'query'/'passage'). */
6
+ /** Default/passage `input_type` body field (e.g. NVIDIA NIM 'passage'). */
7
7
  inputType?: string;
8
+ /** Optional query `input_type` for search embeddings; falls back to inputType when unset. */
9
+ queryInputType?: string;
8
10
  /** Optional `truncate` body field (e.g. NVIDIA NIM 'NONE'/'START'/'END'). */
9
11
  truncate?: string;
10
12
  /** Maximum safe input tokens for chunk embeddings. */
@@ -13,11 +15,18 @@ interface OpenAICompatibleEmbeddingProviderOptions {
13
15
  /**
14
16
  * Whether the model an endpoint served is the model we asked for.
15
17
  *
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.
18
+ * Exact match after trim+lowercase, with TOKEN-BOUNDARY prefix/suffix tolerance
19
+ * so a server that version-expands a name (`text-embedding-3-small` →
20
+ * `…-small-v1`) or trims a vendor prefix (`openai/text-embedding-3-small`
21
+ * `text-embedding-3-small`) still counts as a match.
22
+ *
23
+ * Crucially this is NOT a plain substring test. A loose `a.includes(b)` would
24
+ * MATCH a broadly-configured name against an unrelated served model that merely
25
+ * contains it as a middle token — e.g. configured `qwen3-embedding`, served
26
+ * `text-embedding-qwen3-embedding-0.6b` → store 0.6b vectors under the broad
27
+ * identity (wrong-dim corruption, the exact failure this guard exists to stop).
28
+ * So the shorter name must align on a `-`/`/` boundary as a genuine PREFIX or
29
+ * SUFFIX of the longer, never as an interior fragment.
21
30
  */
22
31
  export declare function embeddingModelsMatch(served: string, requested: string): boolean;
23
32
  type CircuitState = "closed" | "open" | "half_open";
@@ -28,6 +37,7 @@ export declare class OpenAICompatibleEmbeddingProvider implements EmbeddingProvi
28
37
  private readonly model;
29
38
  private readonly apiKey;
30
39
  private readonly inputType;
40
+ private readonly queryInputType;
31
41
  private readonly truncate;
32
42
  private initialized;
33
43
  private failureTimes;
@@ -43,8 +53,9 @@ export declare class OpenAICompatibleEmbeddingProvider implements EmbeddingProvi
43
53
  private halfOpenProbeInFlight;
44
54
  constructor(options: OpenAICompatibleEmbeddingProviderOptions);
45
55
  initialize(): Promise<boolean>;
46
- embed(text: string, signal?: AbortSignal): Promise<Float32Array | null>;
47
- embedBatch(texts: string[], signal?: AbortSignal): Promise<(Float32Array | null)[]>;
56
+ private resolveInputTypeForPurpose;
57
+ embed(text: string, signal?: AbortSignal, purpose?: EmbeddingPurpose): Promise<Float32Array | null>;
58
+ embedBatch(texts: string[], signal?: AbortSignal, purpose?: EmbeddingPurpose): Promise<(Float32Array | null)[]>;
48
59
  dispose(): Promise<void>;
49
60
  isLoaded(): boolean;
50
61
  /**
@@ -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;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
+ {"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,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGhF,UAAU,wCAAwC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAiBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAc/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,cAAc,CAAS;IACxC,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;IA0BvD,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IA0BpC,OAAO,CAAC,0BAA0B;IAO5B,KAAK,CACP,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAKzB,UAAU,CACZ,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC;IA6K7B,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,3 +1,4 @@
1
+ export type EmbeddingPurpose = "query" | "passage";
1
2
  export interface EmbeddingProvider {
2
3
  readonly modelId: string;
3
4
  /** Maximum safe input window for one embedding request. Unknown providers default to 512. */
@@ -6,11 +7,14 @@ export interface EmbeddingProvider {
6
7
  /** Embed a single text. `signal` lets callers abort the underlying network
7
8
  * request (or long-running local inference) before the provider's internal
8
9
  * timeout fires — used by transform-hot-path callers that have their own
9
- * sub-timeout (e.g. 3s auto-search wants to cancel the 30s embed fetch). */
10
- embed(text: string, signal?: AbortSignal): Promise<Float32Array | null>;
10
+ * sub-timeout (e.g. 3s auto-search wants to cancel the 30s embed fetch).
11
+ * `purpose` selects asymmetric input_type on openai-compatible providers;
12
+ * defaults to `"passage"` (indexed/stored content). */
13
+ embed(text: string, signal?: AbortSignal, purpose?: EmbeddingPurpose): Promise<Float32Array | null>;
11
14
  /** Batch variant of `embed`. Same signal semantics: aborting cancels the
12
- * whole batch request (including the underlying HTTP call for remote providers). */
13
- embedBatch(texts: string[], signal?: AbortSignal): Promise<(Float32Array | null)[]>;
15
+ * whole batch request (including the underlying HTTP call for remote providers).
16
+ * `purpose` defaults to `"passage"`. */
17
+ embedBatch(texts: string[], signal?: AbortSignal, purpose?: EmbeddingPurpose): Promise<(Float32Array | null)[]>;
14
18
  dispose(): Promise<void>;
15
19
  isLoaded(): boolean;
16
20
  }
@@ -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,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"}
1
+ {"version":3,"file":"embedding-provider.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/embedding-provider.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,SAAS,CAAC;AAEnD,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;;;;;4DAKwD;IACxD,KAAK,CACD,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAChC;;6CAEyC;IACzC,UAAU,CACN,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IACpC,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, embedUnembeddedCompartmentChunksForProject, embedUnembeddedMemoriesForProject, getProjectEmbeddingSnapshot, registerProjectEmbeddingAndMaybeWipe, registerProjectInObservationMode, sweepAllRegisteredProjects, unregisterProjectEmbedding, } from "../project-embedding-registry";
5
+ export { _resetProjectEmbeddingRegistryForTests, _setTestProviderFactoryForProject, embedBatchForProject, embedTextForProject, embedUnembeddedCompartmentChunksForProject, embedUnembeddedMemoriesForProject, getProjectEmbeddingSnapshot, markProjectLoadUntrusted, registerProjectEmbedding, 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>;
@@ -27,7 +27,7 @@ export declare function embedUnembeddedMemories(db: Database, projectPath: strin
27
27
  * 15-min tick fires, that tick is a no-op.
28
28
  *
29
29
  * Used by the dream timer for proactive embedding coverage. After a
30
- * provider change wipes embeddings, this path drains the full backlog on
30
+ * provider change creates a model-specific backlog, this path drains the full backlog on
31
31
  * a single tick (bounded by wall clock) instead of trickling 10/15min.
32
32
  */
33
33
  export declare function embedAllUnembeddedMemories(db: Database, config: EmbeddingConfig, batchSize?: number): Promise<number>;
@@ -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;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
+ {"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,wBAAwB,EACxB,wBAAwB,EACxB,gCAAgC,EAChC,0BAA0B,EAC1B,0BAA0B,GAC7B,MAAM,+BAA+B,CAAC;AAgHvC,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,CA0EjB;AAED,8CAA8C;AAC9C,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAkDD,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAS3D"}
@@ -4,9 +4,12 @@ export * from "./embedding-backfill";
4
4
  export * from "./embedding-cache";
5
5
  export * from "./normalize-hash";
6
6
  export * from "./project-identity";
7
- export { promoteSessionFactsToMemory } from "./promotion";
7
+ export type { PromotedMemoryRef } from "./promotion";
8
+ export { embedPromotedFacts, promoteSessionFactsDurable } from "./promotion";
8
9
  export * from "./storage-memory";
9
10
  export * from "./storage-memory-embeddings";
10
11
  export * from "./storage-memory-fts";
12
+ export * from "./storage-memory-verifications";
11
13
  export * from "./types";
14
+ export * from "./verification-paths";
12
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAC7E,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC"}
@@ -87,6 +87,7 @@ export declare function applyMemoryMigration(db: Database, projectPath: string,
87
87
  * applyMemoryMigration will delete; `permanent` (user-curated) memories are
88
88
  * never re-evaluated, so they're excluded. */
89
89
  export declare function loadMemoriesForMigration(db: Database, directory: string): Memory[];
90
+ export declare const MIGRATION_SYSTEM_PROMPT: string;
90
91
  export interface MemoryMigrationOutcome {
91
92
  /** True when the migration actually ran (vs. skipped because already done / empty / disabled). */
92
93
  ran: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"memory-migration.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/memory-migration.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKvD,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAMtD,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAClD,UAAU,eAAe;IACrB,OAAO,EAAE;QACL,MAAM,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,KAAK,CAAC;QACd,QAAQ,EAAE,KAAK,CAAC;QAChB,MAAM,EAAE,KAAK,CAAC;KACjB,CAAC;CACL;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAShF;AAED,kEAAkE;AAClE,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAI/E;AAWD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CA4C9E;AAED,MAAM,WAAW,qBAAqB;IAClC,+CAA+C;IAC/C,QAAQ,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B;;;6EAGyE;IACzE,MAAM,EAAE,OAAO,CAAC;CACnB;AAMD,oFAAoF;AACpF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAqB9E;AAWD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,qBAAqB,GAC9B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAwCvC;AAED;;;;+CAI+C;AAC/C,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAGlF;AAMD,MAAM,WAAW,sBAAsB;IACnC,kGAAkG;IAClG,GAAG,EAAE,OAAO,CAAC;IACb,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,eAAe,CAAC;IACxB,EAAE,EAAE,QAAQ,CAAC;IACb,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,eAAe,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;;yEAKqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACpC,IAAI,EAAE,sBAAsB,GAC7B,OAAO,CAAC,sBAAsB,CAAC,CA4NjC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"memory-migration.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/memory-migration.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKvD,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAMtD,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAClD,UAAU,eAAe;IACrB,OAAO,EAAE;QACL,MAAM,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,KAAK,CAAC;QACd,QAAQ,EAAE,KAAK,CAAC;QAChB,MAAM,EAAE,KAAK,CAAC;KACjB,CAAC;CACL;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAShF;AAED,kEAAkE;AAClE,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAI/E;AAWD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CA4C9E;AAED,MAAM,WAAW,qBAAqB;IAClC,+CAA+C;IAC/C,QAAQ,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B;;;6EAGyE;IACzE,MAAM,EAAE,OAAO,CAAC;CACnB;AAMD,oFAAoF;AACpF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAqB9E;AAWD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,qBAAqB,GAC9B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAwCvC;AAED;;;;+CAI+C;AAC/C,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAGlF;AAED,eAAO,MAAM,uBAAuB,QAE2D,CAAC;AAEhG,MAAM,WAAW,sBAAsB;IACnC,kGAAkG;IAClG,GAAG,EAAE,OAAO,CAAC;IACb,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,eAAe,CAAC;IACxB,EAAE,EAAE,QAAQ,CAAC;IACb,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,eAAe,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;;yEAKqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACpC,IAAI,EAAE,sBAAsB,GAC7B,OAAO,CAAC,sBAAsB,CAAC,CAoOjC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -3,11 +3,23 @@ interface SessionFact {
3
3
  category: string;
4
4
  content: string;
5
5
  }
6
+ export interface PromotedMemoryRef {
7
+ memoryId: number;
8
+ content: string;
9
+ }
10
+ /**
11
+ * Synchronously promote eligible session facts to cross-session memories.
12
+ *
13
+ * Transaction contract: callers may run this inside their publish transaction.
14
+ * Storage failures deliberately propagate so the enclosing publication rolls
15
+ * back atomically with the boundary; malformed/unpromotable facts are validation
16
+ * skips and do not abort the publish.
17
+ */
18
+ export declare function promoteSessionFactsDurable(db: Database, sessionId: string, projectPath: string, facts: SessionFact[]): PromotedMemoryRef[];
6
19
  /**
7
- * Promote eligible session facts to cross-session memories.
8
- * Called after replaceAllCompartmentState() commits.
9
- * Uses normalized_hash for fast dedup. Async embedding runs post-commit.
20
+ * Best-effort asynchronous embedding for newly promoted facts. Must run after
21
+ * the durable publish transaction commits.
10
22
  */
11
- export declare function promoteSessionFactsToMemory(db: Database, sessionId: string, projectPath: string, facts: SessionFact[]): void;
23
+ export declare function embedPromotedFacts(db: Database, sessionId: string, projectPath: string, refs: PromotedMemoryRef[]): Promise<void>;
12
24
  export {};
13
25
  //# sourceMappingURL=promotion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"promotion.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/promotion.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAQvD,UAAU,WAAW;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACnB;AAWD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACvC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,WAAW,EAAE,GACrB,IAAI,CAoCN"}
1
+ {"version":3,"file":"promotion.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/promotion.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAQvD,UAAU,WAAW;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACnB;AAWD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACtC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,WAAW,EAAE,GACrB,iBAAiB,EAAE,CAqCrB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACpC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,iBAAiB,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CAIf"}