@sema-ai/core 1.275.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (962) hide show
  1. package/CHANGELOG.md +5433 -0
  2. package/LICENSE +27 -0
  3. package/NOTICE.md +30 -0
  4. package/README.md +1040 -0
  5. package/dist/agents/agent-definition.d.ts +10 -0
  6. package/dist/agents/agent-definition.d.ts.map +1 -0
  7. package/dist/agents/agent-definition.js +18 -0
  8. package/dist/agents/agent-definition.js.map +1 -0
  9. package/dist/agents/builtin-agents.d.ts +69 -0
  10. package/dist/agents/builtin-agents.d.ts.map +1 -0
  11. package/dist/agents/builtin-agents.js +177 -0
  12. package/dist/agents/builtin-agents.js.map +1 -0
  13. package/dist/agents/cascade.d.ts +101 -0
  14. package/dist/agents/cascade.d.ts.map +1 -0
  15. package/dist/agents/cascade.js +189 -0
  16. package/dist/agents/cascade.js.map +1 -0
  17. package/dist/agents/observer.d.ts +209 -0
  18. package/dist/agents/observer.d.ts.map +1 -0
  19. package/dist/agents/observer.js +495 -0
  20. package/dist/agents/observer.js.map +1 -0
  21. package/dist/agents/repair-loop.d.ts +236 -0
  22. package/dist/agents/repair-loop.d.ts.map +1 -0
  23. package/dist/agents/repair-loop.js +293 -0
  24. package/dist/agents/repair-loop.js.map +1 -0
  25. package/dist/agents/session-util.d.ts +8 -0
  26. package/dist/agents/session-util.d.ts.map +1 -0
  27. package/dist/agents/session-util.js +9 -0
  28. package/dist/agents/session-util.js.map +1 -0
  29. package/dist/agents/subagent-steps.d.ts +93 -0
  30. package/dist/agents/subagent-steps.d.ts.map +1 -0
  31. package/dist/agents/subagent-steps.js +206 -0
  32. package/dist/agents/subagent-steps.js.map +1 -0
  33. package/dist/agents/subagent.d.ts +441 -0
  34. package/dist/agents/subagent.d.ts.map +1 -0
  35. package/dist/agents/subagent.js +2492 -0
  36. package/dist/agents/subagent.js.map +1 -0
  37. package/dist/agents/suspend-guard.d.ts +35 -0
  38. package/dist/agents/suspend-guard.d.ts.map +1 -0
  39. package/dist/agents/suspend-guard.js +48 -0
  40. package/dist/agents/suspend-guard.js.map +1 -0
  41. package/dist/agents/teacher.d.ts +137 -0
  42. package/dist/agents/teacher.d.ts.map +1 -0
  43. package/dist/agents/teacher.js +575 -0
  44. package/dist/agents/teacher.js.map +1 -0
  45. package/dist/agents/team.d.ts +211 -0
  46. package/dist/agents/team.d.ts.map +1 -0
  47. package/dist/agents/team.js +293 -0
  48. package/dist/agents/team.js.map +1 -0
  49. package/dist/agents/tool-filter.d.ts +29 -0
  50. package/dist/agents/tool-filter.d.ts.map +1 -0
  51. package/dist/agents/tool-filter.js +50 -0
  52. package/dist/agents/tool-filter.js.map +1 -0
  53. package/dist/agents/verify.d.ts +177 -0
  54. package/dist/agents/verify.d.ts.map +1 -0
  55. package/dist/agents/verify.js +305 -0
  56. package/dist/agents/verify.js.map +1 -0
  57. package/dist/bench/metrics.d.ts +714 -0
  58. package/dist/bench/metrics.d.ts.map +1 -0
  59. package/dist/bench/metrics.js +618 -0
  60. package/dist/bench/metrics.js.map +1 -0
  61. package/dist/bin/sema-tb.d.ts +3 -0
  62. package/dist/bin/sema-tb.d.ts.map +1 -0
  63. package/dist/bin/sema-tb.js +516 -0
  64. package/dist/bin/sema-tb.js.map +1 -0
  65. package/dist/bin/tb-env.d.ts +13 -0
  66. package/dist/bin/tb-env.d.ts.map +1 -0
  67. package/dist/bin/tb-env.js +26 -0
  68. package/dist/bin/tb-env.js.map +1 -0
  69. package/dist/brain/anthropic.d.ts +46 -0
  70. package/dist/brain/anthropic.d.ts.map +1 -0
  71. package/dist/brain/anthropic.js +830 -0
  72. package/dist/brain/anthropic.js.map +1 -0
  73. package/dist/brain/circuit-breaker.d.ts +46 -0
  74. package/dist/brain/circuit-breaker.d.ts.map +1 -0
  75. package/dist/brain/circuit-breaker.js +173 -0
  76. package/dist/brain/circuit-breaker.js.map +1 -0
  77. package/dist/brain/degrading.d.ts +98 -0
  78. package/dist/brain/degrading.d.ts.map +1 -0
  79. package/dist/brain/degrading.js +249 -0
  80. package/dist/brain/degrading.js.map +1 -0
  81. package/dist/brain/errors.d.ts +31 -0
  82. package/dist/brain/errors.d.ts.map +1 -0
  83. package/dist/brain/errors.js +58 -0
  84. package/dist/brain/errors.js.map +1 -0
  85. package/dist/brain/failover.d.ts +18 -0
  86. package/dist/brain/failover.d.ts.map +1 -0
  87. package/dist/brain/failover.js +118 -0
  88. package/dist/brain/failover.js.map +1 -0
  89. package/dist/brain/model-presets.d.ts +36 -0
  90. package/dist/brain/model-presets.d.ts.map +1 -0
  91. package/dist/brain/model-presets.js +54 -0
  92. package/dist/brain/model-presets.js.map +1 -0
  93. package/dist/brain/openai.d.ts +43 -0
  94. package/dist/brain/openai.d.ts.map +1 -0
  95. package/dist/brain/openai.js +784 -0
  96. package/dist/brain/openai.js.map +1 -0
  97. package/dist/brain/reasoning.d.ts +138 -0
  98. package/dist/brain/reasoning.d.ts.map +1 -0
  99. package/dist/brain/reasoning.js +146 -0
  100. package/dist/brain/reasoning.js.map +1 -0
  101. package/dist/brain/repetition.d.ts +60 -0
  102. package/dist/brain/repetition.d.ts.map +1 -0
  103. package/dist/brain/repetition.js +121 -0
  104. package/dist/brain/repetition.js.map +1 -0
  105. package/dist/brain/request-params.d.ts +29 -0
  106. package/dist/brain/request-params.d.ts.map +1 -0
  107. package/dist/brain/request-params.js +78 -0
  108. package/dist/brain/request-params.js.map +1 -0
  109. package/dist/brain/retry.d.ts +18 -0
  110. package/dist/brain/retry.d.ts.map +1 -0
  111. package/dist/brain/retry.js +42 -0
  112. package/dist/brain/retry.js.map +1 -0
  113. package/dist/brain/routing.d.ts +19 -0
  114. package/dist/brain/routing.d.ts.map +1 -0
  115. package/dist/brain/routing.js +44 -0
  116. package/dist/brain/routing.js.map +1 -0
  117. package/dist/brain/status-sink.d.ts +46 -0
  118. package/dist/brain/status-sink.d.ts.map +1 -0
  119. package/dist/brain/status-sink.js +36 -0
  120. package/dist/brain/status-sink.js.map +1 -0
  121. package/dist/brain/stream-engine.d.ts +85 -0
  122. package/dist/brain/stream-engine.d.ts.map +1 -0
  123. package/dist/brain/stream-engine.js +391 -0
  124. package/dist/brain/stream-engine.js.map +1 -0
  125. package/dist/brain/timeout.d.ts +44 -0
  126. package/dist/brain/timeout.d.ts.map +1 -0
  127. package/dist/brain/timeout.js +41 -0
  128. package/dist/brain/timeout.js.map +1 -0
  129. package/dist/brain/tool-call-repair.d.ts +15 -0
  130. package/dist/brain/tool-call-repair.d.ts.map +1 -0
  131. package/dist/brain/tool-call-repair.js +67 -0
  132. package/dist/brain/tool-call-repair.js.map +1 -0
  133. package/dist/brain/walltime.d.ts +14 -0
  134. package/dist/brain/walltime.d.ts.map +1 -0
  135. package/dist/brain/walltime.js +14 -0
  136. package/dist/brain/walltime.js.map +1 -0
  137. package/dist/core/arg-summary.d.ts +19 -0
  138. package/dist/core/arg-summary.d.ts.map +1 -0
  139. package/dist/core/arg-summary.js +96 -0
  140. package/dist/core/arg-summary.js.map +1 -0
  141. package/dist/core/ask-question.d.ts +113 -0
  142. package/dist/core/ask-question.d.ts.map +1 -0
  143. package/dist/core/ask-question.js +246 -0
  144. package/dist/core/ask-question.js.map +1 -0
  145. package/dist/core/auto-compaction.d.ts +341 -0
  146. package/dist/core/auto-compaction.d.ts.map +1 -0
  147. package/dist/core/auto-compaction.js +495 -0
  148. package/dist/core/auto-compaction.js.map +1 -0
  149. package/dist/core/auto-promote.d.ts +126 -0
  150. package/dist/core/auto-promote.d.ts.map +1 -0
  151. package/dist/core/auto-promote.js +171 -0
  152. package/dist/core/auto-promote.js.map +1 -0
  153. package/dist/core/background-shell.d.ts +128 -0
  154. package/dist/core/background-shell.d.ts.map +1 -0
  155. package/dist/core/background-shell.js +42 -0
  156. package/dist/core/background-shell.js.map +1 -0
  157. package/dist/core/cache-break-detector.d.ts +63 -0
  158. package/dist/core/cache-break-detector.d.ts.map +1 -0
  159. package/dist/core/cache-break-detector.js +0 -0
  160. package/dist/core/cache-break-detector.js.map +1 -0
  161. package/dist/core/canonical-json.d.ts +45 -0
  162. package/dist/core/canonical-json.d.ts.map +1 -0
  163. package/dist/core/canonical-json.js +132 -0
  164. package/dist/core/canonical-json.js.map +1 -0
  165. package/dist/core/checkpoint-store.d.ts +1101 -0
  166. package/dist/core/checkpoint-store.d.ts.map +1 -0
  167. package/dist/core/checkpoint-store.js +514 -0
  168. package/dist/core/checkpoint-store.js.map +1 -0
  169. package/dist/core/consolidate-scope.d.ts +94 -0
  170. package/dist/core/consolidate-scope.d.ts.map +1 -0
  171. package/dist/core/consolidate-scope.js +158 -0
  172. package/dist/core/consolidate-scope.js.map +1 -0
  173. package/dist/core/context-edit.d.ts +82 -0
  174. package/dist/core/context-edit.d.ts.map +1 -0
  175. package/dist/core/context-edit.js +149 -0
  176. package/dist/core/context-edit.js.map +1 -0
  177. package/dist/core/context-guard.d.ts +43 -0
  178. package/dist/core/context-guard.d.ts.map +1 -0
  179. package/dist/core/context-guard.js +171 -0
  180. package/dist/core/context-guard.js.map +1 -0
  181. package/dist/core/dynamic-recall.d.ts +100 -0
  182. package/dist/core/dynamic-recall.d.ts.map +1 -0
  183. package/dist/core/dynamic-recall.js +108 -0
  184. package/dist/core/dynamic-recall.js.map +1 -0
  185. package/dist/core/exec-gate.d.ts +74 -0
  186. package/dist/core/exec-gate.d.ts.map +1 -0
  187. package/dist/core/exec-gate.js +143 -0
  188. package/dist/core/exec-gate.js.map +1 -0
  189. package/dist/core/exec-output-tail.d.ts +37 -0
  190. package/dist/core/exec-output-tail.d.ts.map +1 -0
  191. package/dist/core/exec-output-tail.js +63 -0
  192. package/dist/core/exec-output-tail.js.map +1 -0
  193. package/dist/core/file-snapshot-store.d.ts +137 -0
  194. package/dist/core/file-snapshot-store.d.ts.map +1 -0
  195. package/dist/core/file-snapshot-store.js +319 -0
  196. package/dist/core/file-snapshot-store.js.map +1 -0
  197. package/dist/core/git-worktree-env.d.ts +41 -0
  198. package/dist/core/git-worktree-env.d.ts.map +1 -0
  199. package/dist/core/git-worktree-env.js +64 -0
  200. package/dist/core/git-worktree-env.js.map +1 -0
  201. package/dist/core/hooks.d.ts +372 -0
  202. package/dist/core/hooks.d.ts.map +1 -0
  203. package/dist/core/hooks.js +269 -0
  204. package/dist/core/hooks.js.map +1 -0
  205. package/dist/core/lsp-diagnostics.d.ts +74 -0
  206. package/dist/core/lsp-diagnostics.d.ts.map +1 -0
  207. package/dist/core/lsp-diagnostics.js +125 -0
  208. package/dist/core/lsp-diagnostics.js.map +1 -0
  209. package/dist/core/lsp-protocol.d.ts +28 -0
  210. package/dist/core/lsp-protocol.d.ts.map +1 -0
  211. package/dist/core/lsp-protocol.js +179 -0
  212. package/dist/core/lsp-protocol.js.map +1 -0
  213. package/dist/core/lsp-session.d.ts +56 -0
  214. package/dist/core/lsp-session.d.ts.map +1 -0
  215. package/dist/core/lsp-session.js +185 -0
  216. package/dist/core/lsp-session.js.map +1 -0
  217. package/dist/core/lsp.d.ts +132 -0
  218. package/dist/core/lsp.d.ts.map +1 -0
  219. package/dist/core/lsp.js +147 -0
  220. package/dist/core/lsp.js.map +1 -0
  221. package/dist/core/mcp.d.ts +294 -0
  222. package/dist/core/mcp.d.ts.map +1 -0
  223. package/dist/core/mcp.js +992 -0
  224. package/dist/core/mcp.js.map +1 -0
  225. package/dist/core/media-byte-cap.d.ts +34 -0
  226. package/dist/core/media-byte-cap.d.ts.map +1 -0
  227. package/dist/core/media-byte-cap.js +76 -0
  228. package/dist/core/media-byte-cap.js.map +1 -0
  229. package/dist/core/memory-engine/data-plane.d.ts +103 -0
  230. package/dist/core/memory-engine/data-plane.d.ts.map +1 -0
  231. package/dist/core/memory-engine/data-plane.js +272 -0
  232. package/dist/core/memory-engine/data-plane.js.map +1 -0
  233. package/dist/core/memory-engine/dual-root.d.ts +40 -0
  234. package/dist/core/memory-engine/dual-root.d.ts.map +1 -0
  235. package/dist/core/memory-engine/dual-root.js +95 -0
  236. package/dist/core/memory-engine/dual-root.js.map +1 -0
  237. package/dist/core/memory-engine/engine.d.ts +161 -0
  238. package/dist/core/memory-engine/engine.d.ts.map +1 -0
  239. package/dist/core/memory-engine/engine.js +1110 -0
  240. package/dist/core/memory-engine/engine.js.map +1 -0
  241. package/dist/core/memory-engine/file-backend.d.ts +162 -0
  242. package/dist/core/memory-engine/file-backend.d.ts.map +1 -0
  243. package/dist/core/memory-engine/file-backend.js +948 -0
  244. package/dist/core/memory-engine/file-backend.js.map +1 -0
  245. package/dist/core/memory-engine/frontmatter.d.ts +24 -0
  246. package/dist/core/memory-engine/frontmatter.d.ts.map +1 -0
  247. package/dist/core/memory-engine/frontmatter.js +135 -0
  248. package/dist/core/memory-engine/frontmatter.js.map +1 -0
  249. package/dist/core/memory-engine/index.d.ts +13 -0
  250. package/dist/core/memory-engine/index.d.ts.map +1 -0
  251. package/dist/core/memory-engine/index.js +28 -0
  252. package/dist/core/memory-engine/index.js.map +1 -0
  253. package/dist/core/memory-engine/layout.d.ts +123 -0
  254. package/dist/core/memory-engine/layout.d.ts.map +1 -0
  255. package/dist/core/memory-engine/layout.js +643 -0
  256. package/dist/core/memory-engine/layout.js.map +1 -0
  257. package/dist/core/memory-engine/memory-backend-contract.d.ts +22 -0
  258. package/dist/core/memory-engine/memory-backend-contract.d.ts.map +1 -0
  259. package/dist/core/memory-engine/memory-backend-contract.js +271 -0
  260. package/dist/core/memory-engine/memory-backend-contract.js.map +1 -0
  261. package/dist/core/memory-engine/migrate.d.ts +17 -0
  262. package/dist/core/memory-engine/migrate.d.ts.map +1 -0
  263. package/dist/core/memory-engine/migrate.js +35 -0
  264. package/dist/core/memory-engine/migrate.js.map +1 -0
  265. package/dist/core/memory-engine/scan.d.ts +20 -0
  266. package/dist/core/memory-engine/scan.d.ts.map +1 -0
  267. package/dist/core/memory-engine/scan.js +84 -0
  268. package/dist/core/memory-engine/scan.js.map +1 -0
  269. package/dist/core/memory-engine/scope-contract.d.ts +104 -0
  270. package/dist/core/memory-engine/scope-contract.d.ts.map +1 -0
  271. package/dist/core/memory-engine/scope-contract.js +288 -0
  272. package/dist/core/memory-engine/scope-contract.js.map +1 -0
  273. package/dist/core/memory-engine/sync-client.d.ts +100 -0
  274. package/dist/core/memory-engine/sync-client.d.ts.map +1 -0
  275. package/dist/core/memory-engine/sync-client.js +328 -0
  276. package/dist/core/memory-engine/sync-client.js.map +1 -0
  277. package/dist/core/memory-engine/sync.d.ts +97 -0
  278. package/dist/core/memory-engine/sync.d.ts.map +1 -0
  279. package/dist/core/memory-engine/sync.js +91 -0
  280. package/dist/core/memory-engine/sync.js.map +1 -0
  281. package/dist/core/memory-engine/types.d.ts +279 -0
  282. package/dist/core/memory-engine/types.d.ts.map +1 -0
  283. package/dist/core/memory-engine/types.js +9 -0
  284. package/dist/core/memory-engine/types.js.map +1 -0
  285. package/dist/core/memory-recall.d.ts +261 -0
  286. package/dist/core/memory-recall.d.ts.map +1 -0
  287. package/dist/core/memory-recall.js +600 -0
  288. package/dist/core/memory-recall.js.map +1 -0
  289. package/dist/core/memory-vector.d.ts +24 -0
  290. package/dist/core/memory-vector.d.ts.map +1 -0
  291. package/dist/core/memory-vector.js +51 -0
  292. package/dist/core/memory-vector.js.map +1 -0
  293. package/dist/core/memory.d.ts +502 -0
  294. package/dist/core/memory.d.ts.map +1 -0
  295. package/dist/core/memory.js +881 -0
  296. package/dist/core/memory.js.map +1 -0
  297. package/dist/core/message-utils.d.ts +7 -0
  298. package/dist/core/message-utils.d.ts.map +1 -0
  299. package/dist/core/message-utils.js +10 -0
  300. package/dist/core/message-utils.js.map +1 -0
  301. package/dist/core/oracle-isolation.d.ts +85 -0
  302. package/dist/core/oracle-isolation.d.ts.map +1 -0
  303. package/dist/core/oracle-isolation.js +121 -0
  304. package/dist/core/oracle-isolation.js.map +1 -0
  305. package/dist/core/permission-rules.d.ts +102 -0
  306. package/dist/core/permission-rules.d.ts.map +1 -0
  307. package/dist/core/permission-rules.js +357 -0
  308. package/dist/core/permission-rules.js.map +1 -0
  309. package/dist/core/present-plan-tool.d.ts +28 -0
  310. package/dist/core/present-plan-tool.d.ts.map +1 -0
  311. package/dist/core/present-plan-tool.js +119 -0
  312. package/dist/core/present-plan-tool.js.map +1 -0
  313. package/dist/core/pricing.d.ts +48 -0
  314. package/dist/core/pricing.d.ts.map +1 -0
  315. package/dist/core/pricing.js +46 -0
  316. package/dist/core/pricing.js.map +1 -0
  317. package/dist/core/property-harness.d.ts +126 -0
  318. package/dist/core/property-harness.d.ts.map +1 -0
  319. package/dist/core/property-harness.js +192 -0
  320. package/dist/core/property-harness.js.map +1 -0
  321. package/dist/core/push-queue.d.ts +10 -0
  322. package/dist/core/push-queue.d.ts.map +1 -0
  323. package/dist/core/push-queue.js +42 -0
  324. package/dist/core/push-queue.js.map +1 -0
  325. package/dist/core/remote-env.d.ts +432 -0
  326. package/dist/core/remote-env.d.ts.map +1 -0
  327. package/dist/core/remote-env.js +77 -0
  328. package/dist/core/remote-env.js.map +1 -0
  329. package/dist/core/roles.d.ts +74 -0
  330. package/dist/core/roles.d.ts.map +1 -0
  331. package/dist/core/roles.js +272 -0
  332. package/dist/core/roles.js.map +1 -0
  333. package/dist/core/runner/active-skill-scope.d.ts +64 -0
  334. package/dist/core/runner/active-skill-scope.d.ts.map +1 -0
  335. package/dist/core/runner/active-skill-scope.js +197 -0
  336. package/dist/core/runner/active-skill-scope.js.map +1 -0
  337. package/dist/core/runner/assemble-result.d.ts +191 -0
  338. package/dist/core/runner/assemble-result.d.ts.map +1 -0
  339. package/dist/core/runner/assemble-result.js +250 -0
  340. package/dist/core/runner/assemble-result.js.map +1 -0
  341. package/dist/core/runner/call-cap.d.ts +130 -0
  342. package/dist/core/runner/call-cap.d.ts.map +1 -0
  343. package/dist/core/runner/call-cap.js +151 -0
  344. package/dist/core/runner/call-cap.js.map +1 -0
  345. package/dist/core/runner/grounding-signal.d.ts +12 -0
  346. package/dist/core/runner/grounding-signal.d.ts.map +1 -0
  347. package/dist/core/runner/grounding-signal.js +94 -0
  348. package/dist/core/runner/grounding-signal.js.map +1 -0
  349. package/dist/core/runner/image.d.ts +23 -0
  350. package/dist/core/runner/image.d.ts.map +1 -0
  351. package/dist/core/runner/image.js +151 -0
  352. package/dist/core/runner/image.js.map +1 -0
  353. package/dist/core/runner/memory-consolidation.d.ts +112 -0
  354. package/dist/core/runner/memory-consolidation.d.ts.map +1 -0
  355. package/dist/core/runner/memory-consolidation.js +372 -0
  356. package/dist/core/runner/memory-consolidation.js.map +1 -0
  357. package/dist/core/runner/prepare-task.d.ts +583 -0
  358. package/dist/core/runner/prepare-task.d.ts.map +1 -0
  359. package/dist/core/runner/prepare-task.js +3612 -0
  360. package/dist/core/runner/prepare-task.js.map +1 -0
  361. package/dist/core/runner/prompt-suggestions.d.ts +33 -0
  362. package/dist/core/runner/prompt-suggestions.d.ts.map +1 -0
  363. package/dist/core/runner/prompt-suggestions.js +116 -0
  364. package/dist/core/runner/prompt-suggestions.js.map +1 -0
  365. package/dist/core/runner/runtask.d.ts +274 -0
  366. package/dist/core/runner/runtask.d.ts.map +1 -0
  367. package/dist/core/runner/runtask.js +4606 -0
  368. package/dist/core/runner/runtask.js.map +1 -0
  369. package/dist/core/runner/session-rule-policy.d.ts +28 -0
  370. package/dist/core/runner/session-rule-policy.d.ts.map +1 -0
  371. package/dist/core/runner/session-rule-policy.js +110 -0
  372. package/dist/core/runner/session-rule-policy.js.map +1 -0
  373. package/dist/core/runner/strict-output-schema.d.ts +36 -0
  374. package/dist/core/runner/strict-output-schema.d.ts.map +1 -0
  375. package/dist/core/runner/strict-output-schema.js +365 -0
  376. package/dist/core/runner/strict-output-schema.js.map +1 -0
  377. package/dist/core/runner/synthetic-tools.d.ts +72 -0
  378. package/dist/core/runner/synthetic-tools.d.ts.map +1 -0
  379. package/dist/core/runner/synthetic-tools.js +203 -0
  380. package/dist/core/runner/synthetic-tools.js.map +1 -0
  381. package/dist/core/runner/tool-disclosure.d.ts +117 -0
  382. package/dist/core/runner/tool-disclosure.d.ts.map +1 -0
  383. package/dist/core/runner/tool-disclosure.js +0 -0
  384. package/dist/core/runner/tool-disclosure.js.map +1 -0
  385. package/dist/core/runner/turn-attachments.d.ts +381 -0
  386. package/dist/core/runner/turn-attachments.d.ts.map +1 -0
  387. package/dist/core/runner/turn-attachments.js +596 -0
  388. package/dist/core/runner/turn-attachments.js.map +1 -0
  389. package/dist/core/runner/usage-accounting.d.ts +35 -0
  390. package/dist/core/runner/usage-accounting.d.ts.map +1 -0
  391. package/dist/core/runner/usage-accounting.js +45 -0
  392. package/dist/core/runner/usage-accounting.js.map +1 -0
  393. package/dist/core/runtime.d.ts +9 -0
  394. package/dist/core/runtime.d.ts.map +1 -0
  395. package/dist/core/runtime.js +17 -0
  396. package/dist/core/runtime.js.map +1 -0
  397. package/dist/core/safety-axis-vocab.d.ts +33 -0
  398. package/dist/core/safety-axis-vocab.d.ts.map +1 -0
  399. package/dist/core/safety-axis-vocab.js +35 -0
  400. package/dist/core/safety-axis-vocab.js.map +1 -0
  401. package/dist/core/safety-merge-corpus.d.ts +48 -0
  402. package/dist/core/safety-merge-corpus.d.ts.map +1 -0
  403. package/dist/core/safety-merge-corpus.js +203 -0
  404. package/dist/core/safety-merge-corpus.js.map +1 -0
  405. package/dist/core/scheduler.d.ts +126 -0
  406. package/dist/core/scheduler.d.ts.map +1 -0
  407. package/dist/core/scheduler.js +54 -0
  408. package/dist/core/scheduler.js.map +1 -0
  409. package/dist/core/secret-env.d.ts +23 -0
  410. package/dist/core/secret-env.d.ts.map +1 -0
  411. package/dist/core/secret-env.js +35 -0
  412. package/dist/core/secret-env.js.map +1 -0
  413. package/dist/core/select-model.d.ts +26 -0
  414. package/dist/core/select-model.d.ts.map +1 -0
  415. package/dist/core/select-model.js +58 -0
  416. package/dist/core/select-model.js.map +1 -0
  417. package/dist/core/sensitive-path-policy.d.ts +24 -0
  418. package/dist/core/sensitive-path-policy.d.ts.map +1 -0
  419. package/dist/core/sensitive-path-policy.js +96 -0
  420. package/dist/core/sensitive-path-policy.js.map +1 -0
  421. package/dist/core/session-policy-store.d.ts +102 -0
  422. package/dist/core/session-policy-store.d.ts.map +1 -0
  423. package/dist/core/session-policy-store.js +177 -0
  424. package/dist/core/session-policy-store.js.map +1 -0
  425. package/dist/core/session-reconcile.d.ts +63 -0
  426. package/dist/core/session-reconcile.d.ts.map +1 -0
  427. package/dist/core/session-reconcile.js +71 -0
  428. package/dist/core/session-reconcile.js.map +1 -0
  429. package/dist/core/session-store.d.ts +99 -0
  430. package/dist/core/session-store.d.ts.map +1 -0
  431. package/dist/core/session-store.js +298 -0
  432. package/dist/core/session-store.js.map +1 -0
  433. package/dist/core/session.d.ts +144 -0
  434. package/dist/core/session.d.ts.map +1 -0
  435. package/dist/core/session.js +56 -0
  436. package/dist/core/session.js.map +1 -0
  437. package/dist/core/spec-contract.d.ts +147 -0
  438. package/dist/core/spec-contract.d.ts.map +1 -0
  439. package/dist/core/spec-contract.js +340 -0
  440. package/dist/core/spec-contract.js.map +1 -0
  441. package/dist/core/strategy-store.d.ts +50 -0
  442. package/dist/core/strategy-store.d.ts.map +1 -0
  443. package/dist/core/strategy-store.js +100 -0
  444. package/dist/core/strategy-store.js.map +1 -0
  445. package/dist/core/stub-env.d.ts +35 -0
  446. package/dist/core/stub-env.d.ts.map +1 -0
  447. package/dist/core/stub-env.js +69 -0
  448. package/dist/core/stub-env.js.map +1 -0
  449. package/dist/core/task-notification.d.ts +115 -0
  450. package/dist/core/task-notification.d.ts.map +1 -0
  451. package/dist/core/task-notification.js +247 -0
  452. package/dist/core/task-notification.js.map +1 -0
  453. package/dist/core/task-outcome.d.ts +80 -0
  454. package/dist/core/task-outcome.d.ts.map +1 -0
  455. package/dist/core/task-outcome.js +40 -0
  456. package/dist/core/task-outcome.js.map +1 -0
  457. package/dist/core/task-registry.d.ts +349 -0
  458. package/dist/core/task-registry.d.ts.map +1 -0
  459. package/dist/core/task-registry.js +1751 -0
  460. package/dist/core/task-registry.js.map +1 -0
  461. package/dist/core/tighten-task-spec.d.ts +27 -0
  462. package/dist/core/tighten-task-spec.d.ts.map +1 -0
  463. package/dist/core/tighten-task-spec.js +95 -0
  464. package/dist/core/tighten-task-spec.js.map +1 -0
  465. package/dist/core/tool-detach.d.ts +31 -0
  466. package/dist/core/tool-detach.d.ts.map +1 -0
  467. package/dist/core/tool-detach.js +62 -0
  468. package/dist/core/tool-detach.js.map +1 -0
  469. package/dist/core/tool-errors.d.ts +72 -0
  470. package/dist/core/tool-errors.d.ts.map +1 -0
  471. package/dist/core/tool-errors.js +194 -0
  472. package/dist/core/tool-errors.js.map +1 -0
  473. package/dist/core/tool-name-aliases.d.ts +5 -0
  474. package/dist/core/tool-name-aliases.d.ts.map +1 -0
  475. package/dist/core/tool-name-aliases.js +130 -0
  476. package/dist/core/tool-name-aliases.js.map +1 -0
  477. package/dist/core/tool-policy.d.ts +295 -0
  478. package/dist/core/tool-policy.d.ts.map +1 -0
  479. package/dist/core/tool-policy.js +567 -0
  480. package/dist/core/tool-policy.js.map +1 -0
  481. package/dist/core/tool-result-budget.d.ts +44 -0
  482. package/dist/core/tool-result-budget.d.ts.map +1 -0
  483. package/dist/core/tool-result-budget.js +140 -0
  484. package/dist/core/tool-result-budget.js.map +1 -0
  485. package/dist/core/tool-result-store.d.ts +136 -0
  486. package/dist/core/tool-result-store.d.ts.map +1 -0
  487. package/dist/core/tool-result-store.js +219 -0
  488. package/dist/core/tool-result-store.js.map +1 -0
  489. package/dist/core/tools.d.ts +14 -0
  490. package/dist/core/tools.d.ts.map +1 -0
  491. package/dist/core/tools.js +98 -0
  492. package/dist/core/tools.js.map +1 -0
  493. package/dist/core/trace.d.ts +340 -0
  494. package/dist/core/trace.d.ts.map +1 -0
  495. package/dist/core/trace.js +12 -0
  496. package/dist/core/trace.js.map +1 -0
  497. package/dist/core/types.d.ts +2828 -0
  498. package/dist/core/types.d.ts.map +1 -0
  499. package/dist/core/types.js +2 -0
  500. package/dist/core/types.js.map +1 -0
  501. package/dist/core/untrusted-egress.d.ts +32 -0
  502. package/dist/core/untrusted-egress.d.ts.map +1 -0
  503. package/dist/core/untrusted-egress.js +49 -0
  504. package/dist/core/untrusted-egress.js.map +1 -0
  505. package/dist/core/untrusted-text.d.ts +64 -0
  506. package/dist/core/untrusted-text.d.ts.map +1 -0
  507. package/dist/core/untrusted-text.js +119 -0
  508. package/dist/core/untrusted-text.js.map +1 -0
  509. package/dist/core/warm-resume.d.ts +23 -0
  510. package/dist/core/warm-resume.d.ts.map +1 -0
  511. package/dist/core/warm-resume.js +28 -0
  512. package/dist/core/warm-resume.js.map +1 -0
  513. package/dist/core/with-retry.d.ts +43 -0
  514. package/dist/core/with-retry.d.ts.map +1 -0
  515. package/dist/core/with-retry.js +59 -0
  516. package/dist/core/with-retry.js.map +1 -0
  517. package/dist/core/workflow-journal-store.d.ts +44 -0
  518. package/dist/core/workflow-journal-store.d.ts.map +1 -0
  519. package/dist/core/workflow-journal-store.js +47 -0
  520. package/dist/core/workflow-journal-store.js.map +1 -0
  521. package/dist/core/workflow-run-store-contract.d.ts +31 -0
  522. package/dist/core/workflow-run-store-contract.d.ts.map +1 -0
  523. package/dist/core/workflow-run-store-contract.js +191 -0
  524. package/dist/core/workflow-run-store-contract.js.map +1 -0
  525. package/dist/core/workflow-run-store.d.ts +149 -0
  526. package/dist/core/workflow-run-store.d.ts.map +1 -0
  527. package/dist/core/workflow-run-store.js +110 -0
  528. package/dist/core/workflow-run-store.js.map +1 -0
  529. package/dist/engine/compaction/compaction.d.ts +139 -0
  530. package/dist/engine/compaction/compaction.d.ts.map +1 -0
  531. package/dist/engine/compaction/compaction.js +1030 -0
  532. package/dist/engine/compaction/compaction.js.map +1 -0
  533. package/dist/engine/compaction/utils.d.ts +45 -0
  534. package/dist/engine/compaction/utils.d.ts.map +1 -0
  535. package/dist/engine/compaction/utils.js +203 -0
  536. package/dist/engine/compaction/utils.js.map +1 -0
  537. package/dist/engine/execution-env/kill-tree.d.ts +20 -0
  538. package/dist/engine/execution-env/kill-tree.d.ts.map +1 -0
  539. package/dist/engine/execution-env/kill-tree.js +183 -0
  540. package/dist/engine/execution-env/kill-tree.js.map +1 -0
  541. package/dist/engine/execution-env/node-execution-env.d.ts +133 -0
  542. package/dist/engine/execution-env/node-execution-env.d.ts.map +1 -0
  543. package/dist/engine/execution-env/node-execution-env.js +1031 -0
  544. package/dist/engine/execution-env/node-execution-env.js.map +1 -0
  545. package/dist/engine/harness/agent-harness.d.ts +174 -0
  546. package/dist/engine/harness/agent-harness.d.ts.map +1 -0
  547. package/dist/engine/harness/agent-harness.js +1053 -0
  548. package/dist/engine/harness/agent-harness.js.map +1 -0
  549. package/dist/engine/harness/messages.d.ts +17 -0
  550. package/dist/engine/harness/messages.d.ts.map +1 -0
  551. package/dist/engine/harness/messages.js +122 -0
  552. package/dist/engine/harness/messages.js.map +1 -0
  553. package/dist/engine/harness/types.d.ts +713 -0
  554. package/dist/engine/harness/types.d.ts.map +1 -0
  555. package/dist/engine/harness/types.js +100 -0
  556. package/dist/engine/harness/types.js.map +1 -0
  557. package/dist/engine/llm/diagnostics.d.ts +23 -0
  558. package/dist/engine/llm/diagnostics.d.ts.map +1 -0
  559. package/dist/engine/llm/diagnostics.js +32 -0
  560. package/dist/engine/llm/diagnostics.js.map +1 -0
  561. package/dist/engine/llm/event-stream.d.ts +25 -0
  562. package/dist/engine/llm/event-stream.d.ts.map +1 -0
  563. package/dist/engine/llm/event-stream.js +103 -0
  564. package/dist/engine/llm/event-stream.js.map +1 -0
  565. package/dist/engine/llm/index.d.ts +12 -0
  566. package/dist/engine/llm/index.d.ts.map +1 -0
  567. package/dist/engine/llm/index.js +12 -0
  568. package/dist/engine/llm/index.js.map +1 -0
  569. package/dist/engine/llm/types.d.ts +753 -0
  570. package/dist/engine/llm/types.d.ts.map +1 -0
  571. package/dist/engine/llm/types.js +2 -0
  572. package/dist/engine/llm/types.js.map +1 -0
  573. package/dist/engine/llm/validation.d.ts +8 -0
  574. package/dist/engine/llm/validation.d.ts.map +1 -0
  575. package/dist/engine/llm/validation.js +318 -0
  576. package/dist/engine/llm/validation.js.map +1 -0
  577. package/dist/engine/loop/agent-loop.d.ts +74 -0
  578. package/dist/engine/loop/agent-loop.d.ts.map +1 -0
  579. package/dist/engine/loop/agent-loop.js +1490 -0
  580. package/dist/engine/loop/agent-loop.js.map +1 -0
  581. package/dist/engine/loop/runtime-deps.d.ts +17 -0
  582. package/dist/engine/loop/runtime-deps.d.ts.map +1 -0
  583. package/dist/engine/loop/runtime-deps.js +21 -0
  584. package/dist/engine/loop/runtime-deps.js.map +1 -0
  585. package/dist/engine/loop/types.d.ts +609 -0
  586. package/dist/engine/loop/types.d.ts.map +1 -0
  587. package/dist/engine/loop/types.js +2 -0
  588. package/dist/engine/loop/types.js.map +1 -0
  589. package/dist/engine/lsp/frame-decoder.d.ts +16 -0
  590. package/dist/engine/lsp/frame-decoder.d.ts.map +1 -0
  591. package/dist/engine/lsp/frame-decoder.js +53 -0
  592. package/dist/engine/lsp/frame-decoder.js.map +1 -0
  593. package/dist/engine/lsp/node-lsp-manager.d.ts +105 -0
  594. package/dist/engine/lsp/node-lsp-manager.d.ts.map +1 -0
  595. package/dist/engine/lsp/node-lsp-manager.js +343 -0
  596. package/dist/engine/lsp/node-lsp-manager.js.map +1 -0
  597. package/dist/engine/lsp/stdio-lsp-transport.d.ts +37 -0
  598. package/dist/engine/lsp/stdio-lsp-transport.d.ts.map +1 -0
  599. package/dist/engine/lsp/stdio-lsp-transport.js +185 -0
  600. package/dist/engine/lsp/stdio-lsp-transport.js.map +1 -0
  601. package/dist/engine/session/import-validate.d.ts +44 -0
  602. package/dist/engine/session/import-validate.d.ts.map +1 -0
  603. package/dist/engine/session/import-validate.js +92 -0
  604. package/dist/engine/session/import-validate.js.map +1 -0
  605. package/dist/engine/session/memory-repo.d.ts +25 -0
  606. package/dist/engine/session/memory-repo.d.ts.map +1 -0
  607. package/dist/engine/session/memory-repo.js +59 -0
  608. package/dist/engine/session/memory-repo.js.map +1 -0
  609. package/dist/engine/session/memory-storage.d.ts +14 -0
  610. package/dist/engine/session/memory-storage.d.ts.map +1 -0
  611. package/dist/engine/session/memory-storage.js +17 -0
  612. package/dist/engine/session/memory-storage.js.map +1 -0
  613. package/dist/engine/session/repo-utils.d.ts +11 -0
  614. package/dist/engine/session/repo-utils.d.ts.map +1 -0
  615. package/dist/engine/session/repo-utils.js +40 -0
  616. package/dist/engine/session/repo-utils.js.map +1 -0
  617. package/dist/engine/session/session.d.ts +34 -0
  618. package/dist/engine/session/session.d.ts.map +1 -0
  619. package/dist/engine/session/session.js +227 -0
  620. package/dist/engine/session/session.js.map +1 -0
  621. package/dist/engine/session/storage-base.d.ts +38 -0
  622. package/dist/engine/session/storage-base.d.ts.map +1 -0
  623. package/dist/engine/session/storage-base.js +157 -0
  624. package/dist/engine/session/storage-base.js.map +1 -0
  625. package/dist/engine/session/timestamps.d.ts +3 -0
  626. package/dist/engine/session/timestamps.d.ts.map +1 -0
  627. package/dist/engine/session/timestamps.js +15 -0
  628. package/dist/engine/session/timestamps.js.map +1 -0
  629. package/dist/engine/session/uuid.d.ts +2 -0
  630. package/dist/engine/session/uuid.d.ts.map +1 -0
  631. package/dist/engine/session/uuid.js +50 -0
  632. package/dist/engine/session/uuid.js.map +1 -0
  633. package/dist/index.d.ts +160 -0
  634. package/dist/index.d.ts.map +1 -0
  635. package/dist/index.js +374 -0
  636. package/dist/index.js.map +1 -0
  637. package/dist/internal/harness.d.ts +26 -0
  638. package/dist/internal/harness.d.ts.map +1 -0
  639. package/dist/internal/harness.js +24 -0
  640. package/dist/internal/harness.js.map +1 -0
  641. package/dist/internal/llm.d.ts +9 -0
  642. package/dist/internal/llm.d.ts.map +1 -0
  643. package/dist/internal/llm.js +8 -0
  644. package/dist/internal/llm.js.map +1 -0
  645. package/dist/orchestration/builtin-workflows.d.ts +44 -0
  646. package/dist/orchestration/builtin-workflows.d.ts.map +1 -0
  647. package/dist/orchestration/builtin-workflows.js +165 -0
  648. package/dist/orchestration/builtin-workflows.js.map +1 -0
  649. package/dist/orchestration/dev-vm-script-runner.d.ts +24 -0
  650. package/dist/orchestration/dev-vm-script-runner.d.ts.map +1 -0
  651. package/dist/orchestration/dev-vm-script-runner.js +106 -0
  652. package/dist/orchestration/dev-vm-script-runner.js.map +1 -0
  653. package/dist/orchestration/goal.d.ts +97 -0
  654. package/dist/orchestration/goal.d.ts.map +1 -0
  655. package/dist/orchestration/goal.js +248 -0
  656. package/dist/orchestration/goal.js.map +1 -0
  657. package/dist/orchestration/run-spec.d.ts +63 -0
  658. package/dist/orchestration/run-spec.d.ts.map +1 -0
  659. package/dist/orchestration/run-spec.js +274 -0
  660. package/dist/orchestration/run-spec.js.map +1 -0
  661. package/dist/orchestration/run-workflow-tool.d.ts +187 -0
  662. package/dist/orchestration/run-workflow-tool.d.ts.map +1 -0
  663. package/dist/orchestration/run-workflow-tool.js +612 -0
  664. package/dist/orchestration/run-workflow-tool.js.map +1 -0
  665. package/dist/orchestration/workflow-governance.d.ts +70 -0
  666. package/dist/orchestration/workflow-governance.d.ts.map +1 -0
  667. package/dist/orchestration/workflow-governance.js +176 -0
  668. package/dist/orchestration/workflow-governance.js.map +1 -0
  669. package/dist/orchestration/workflow-meta.d.ts +41 -0
  670. package/dist/orchestration/workflow-meta.d.ts.map +1 -0
  671. package/dist/orchestration/workflow-meta.js +426 -0
  672. package/dist/orchestration/workflow-meta.js.map +1 -0
  673. package/dist/orchestration/workflow-observe.d.ts +77 -0
  674. package/dist/orchestration/workflow-observe.d.ts.map +1 -0
  675. package/dist/orchestration/workflow-observe.js +177 -0
  676. package/dist/orchestration/workflow-observe.js.map +1 -0
  677. package/dist/orchestration/workflow-primitives.d.ts +31 -0
  678. package/dist/orchestration/workflow-primitives.d.ts.map +1 -0
  679. package/dist/orchestration/workflow-primitives.js +104 -0
  680. package/dist/orchestration/workflow-primitives.js.map +1 -0
  681. package/dist/orchestration/workflow-sandbox-conformance.d.ts +34 -0
  682. package/dist/orchestration/workflow-sandbox-conformance.d.ts.map +1 -0
  683. package/dist/orchestration/workflow-sandbox-conformance.js +301 -0
  684. package/dist/orchestration/workflow-sandbox-conformance.js.map +1 -0
  685. package/dist/orchestration/workflow-script-runner.d.ts +127 -0
  686. package/dist/orchestration/workflow-script-runner.d.ts.map +1 -0
  687. package/dist/orchestration/workflow-script-runner.js +48 -0
  688. package/dist/orchestration/workflow-script-runner.js.map +1 -0
  689. package/dist/orchestration/workflow-script-store.d.ts +99 -0
  690. package/dist/orchestration/workflow-script-store.d.ts.map +1 -0
  691. package/dist/orchestration/workflow-script-store.js +133 -0
  692. package/dist/orchestration/workflow-script-store.js.map +1 -0
  693. package/dist/orchestration/workflow-size-guideline.d.ts +50 -0
  694. package/dist/orchestration/workflow-size-guideline.d.ts.map +1 -0
  695. package/dist/orchestration/workflow-size-guideline.js +78 -0
  696. package/dist/orchestration/workflow-size-guideline.js.map +1 -0
  697. package/dist/orchestration/workflow.d.ts +624 -0
  698. package/dist/orchestration/workflow.d.ts.map +1 -0
  699. package/dist/orchestration/workflow.js +1596 -0
  700. package/dist/orchestration/workflow.js.map +1 -0
  701. package/dist/prompts/default.d.ts +474 -0
  702. package/dist/prompts/default.d.ts.map +1 -0
  703. package/dist/prompts/default.js +676 -0
  704. package/dist/prompts/default.js.map +1 -0
  705. package/dist/prompts/supervisor.d.ts +60 -0
  706. package/dist/prompts/supervisor.d.ts.map +1 -0
  707. package/dist/prompts/supervisor.js +162 -0
  708. package/dist/prompts/supervisor.js.map +1 -0
  709. package/dist/scenarios/env.d.ts +41 -0
  710. package/dist/scenarios/env.d.ts.map +1 -0
  711. package/dist/scenarios/env.js +65 -0
  712. package/dist/scenarios/env.js.map +1 -0
  713. package/dist/scenarios/full-body.d.ts +47 -0
  714. package/dist/scenarios/full-body.d.ts.map +1 -0
  715. package/dist/scenarios/full-body.js +36 -0
  716. package/dist/scenarios/full-body.js.map +1 -0
  717. package/dist/scenarios/scenario-registry.d.ts +107 -0
  718. package/dist/scenarios/scenario-registry.d.ts.map +1 -0
  719. package/dist/scenarios/scenario-registry.js +192 -0
  720. package/dist/scenarios/scenario-registry.js.map +1 -0
  721. package/dist/scenarios/teacher-quickstart.d.ts +41 -0
  722. package/dist/scenarios/teacher-quickstart.d.ts.map +1 -0
  723. package/dist/scenarios/teacher-quickstart.js +32 -0
  724. package/dist/scenarios/teacher-quickstart.js.map +1 -0
  725. package/dist/server/http.d.ts +36 -0
  726. package/dist/server/http.d.ts.map +1 -0
  727. package/dist/server/http.js +144 -0
  728. package/dist/server/http.js.map +1 -0
  729. package/dist/stores/file/checkpoint-store.d.ts +62 -0
  730. package/dist/stores/file/checkpoint-store.d.ts.map +1 -0
  731. package/dist/stores/file/checkpoint-store.js +250 -0
  732. package/dist/stores/file/checkpoint-store.js.map +1 -0
  733. package/dist/stores/file/file-snapshot-store.d.ts +43 -0
  734. package/dist/stores/file/file-snapshot-store.d.ts.map +1 -0
  735. package/dist/stores/file/file-snapshot-store.js +374 -0
  736. package/dist/stores/file/file-snapshot-store.js.map +1 -0
  737. package/dist/stores/file/fs-atomic.d.ts +95 -0
  738. package/dist/stores/file/fs-atomic.d.ts.map +1 -0
  739. package/dist/stores/file/fs-atomic.js +415 -0
  740. package/dist/stores/file/fs-atomic.js.map +1 -0
  741. package/dist/stores/file/index.d.ts +98 -0
  742. package/dist/stores/file/index.d.ts.map +1 -0
  743. package/dist/stores/file/index.js +109 -0
  744. package/dist/stores/file/index.js.map +1 -0
  745. package/dist/stores/file/memory-store.d.ts +95 -0
  746. package/dist/stores/file/memory-store.d.ts.map +1 -0
  747. package/dist/stores/file/memory-store.js +393 -0
  748. package/dist/stores/file/memory-store.js.map +1 -0
  749. package/dist/stores/file/session-policy-store.d.ts +24 -0
  750. package/dist/stores/file/session-policy-store.d.ts.map +1 -0
  751. package/dist/stores/file/session-policy-store.js +123 -0
  752. package/dist/stores/file/session-policy-store.js.map +1 -0
  753. package/dist/stores/file/session-store.d.ts +34 -0
  754. package/dist/stores/file/session-store.d.ts.map +1 -0
  755. package/dist/stores/file/session-store.js +175 -0
  756. package/dist/stores/file/session-store.js.map +1 -0
  757. package/dist/stores/file/tool-result-store.d.ts +23 -0
  758. package/dist/stores/file/tool-result-store.d.ts.map +1 -0
  759. package/dist/stores/file/tool-result-store.js +61 -0
  760. package/dist/stores/file/tool-result-store.js.map +1 -0
  761. package/dist/stores/file/workflow-journal-store.d.ts +36 -0
  762. package/dist/stores/file/workflow-journal-store.d.ts.map +1 -0
  763. package/dist/stores/file/workflow-journal-store.js +157 -0
  764. package/dist/stores/file/workflow-journal-store.js.map +1 -0
  765. package/dist/stores/file/workflow-run-store.d.ts +58 -0
  766. package/dist/stores/file/workflow-run-store.d.ts.map +1 -0
  767. package/dist/stores/file/workflow-run-store.js +178 -0
  768. package/dist/stores/file/workflow-run-store.js.map +1 -0
  769. package/dist/stores/pg.d.ts +210 -0
  770. package/dist/stores/pg.d.ts.map +1 -0
  771. package/dist/stores/pg.js +652 -0
  772. package/dist/stores/pg.js.map +1 -0
  773. package/dist/tools/fs/encoding.d.ts +51 -0
  774. package/dist/tools/fs/encoding.d.ts.map +1 -0
  775. package/dist/tools/fs/encoding.js +74 -0
  776. package/dist/tools/fs/encoding.js.map +1 -0
  777. package/dist/tools/fs/gh-rate-limit.d.ts +19 -0
  778. package/dist/tools/fs/gh-rate-limit.d.ts.map +1 -0
  779. package/dist/tools/fs/gh-rate-limit.js +35 -0
  780. package/dist/tools/fs/gh-rate-limit.js.map +1 -0
  781. package/dist/tools/fs/index.d.ts +246 -0
  782. package/dist/tools/fs/index.d.ts.map +1 -0
  783. package/dist/tools/fs/index.js +2130 -0
  784. package/dist/tools/fs/index.js.map +1 -0
  785. package/dist/tools/fs/pdf.d.ts +106 -0
  786. package/dist/tools/fs/pdf.d.ts.map +1 -0
  787. package/dist/tools/fs/pdf.js +178 -0
  788. package/dist/tools/fs/pdf.js.map +1 -0
  789. package/dist/tools/fs/repo-map.d.ts +15 -0
  790. package/dist/tools/fs/repo-map.d.ts.map +1 -0
  791. package/dist/tools/fs/repo-map.js +251 -0
  792. package/dist/tools/fs/repo-map.js.map +1 -0
  793. package/dist/tools/fs/safety.d.ts +168 -0
  794. package/dist/tools/fs/safety.d.ts.map +1 -0
  795. package/dist/tools/fs/safety.js +479 -0
  796. package/dist/tools/fs/safety.js.map +1 -0
  797. package/dist/tools/fs/search.d.ts +118 -0
  798. package/dist/tools/fs/search.d.ts.map +1 -0
  799. package/dist/tools/fs/search.js +650 -0
  800. package/dist/tools/fs/search.js.map +1 -0
  801. package/dist/tools/gitea-issue.d.ts +39 -0
  802. package/dist/tools/gitea-issue.d.ts.map +1 -0
  803. package/dist/tools/gitea-issue.js +91 -0
  804. package/dist/tools/gitea-issue.js.map +1 -0
  805. package/dist/tools/monitor.d.ts +64 -0
  806. package/dist/tools/monitor.d.ts.map +1 -0
  807. package/dist/tools/monitor.js +135 -0
  808. package/dist/tools/monitor.js.map +1 -0
  809. package/dist/tools/scheduler-tools.d.ts +48 -0
  810. package/dist/tools/scheduler-tools.d.ts.map +1 -0
  811. package/dist/tools/scheduler-tools.js +449 -0
  812. package/dist/tools/scheduler-tools.js.map +1 -0
  813. package/dist/tools/sql-adapters.d.ts +32 -0
  814. package/dist/tools/sql-adapters.d.ts.map +1 -0
  815. package/dist/tools/sql-adapters.js +31 -0
  816. package/dist/tools/sql-adapters.js.map +1 -0
  817. package/dist/tools/sql.d.ts +36 -0
  818. package/dist/tools/sql.d.ts.map +1 -0
  819. package/dist/tools/sql.js +131 -0
  820. package/dist/tools/sql.js.map +1 -0
  821. package/dist/tools/task-list.d.ts +26 -0
  822. package/dist/tools/task-list.d.ts.map +1 -0
  823. package/dist/tools/task-list.js +352 -0
  824. package/dist/tools/task-list.js.map +1 -0
  825. package/dist/tools/todo.d.ts +11 -0
  826. package/dist/tools/todo.d.ts.map +1 -0
  827. package/dist/tools/todo.js +126 -0
  828. package/dist/tools/todo.js.map +1 -0
  829. package/dist/tools/web.d.ts +59 -0
  830. package/dist/tools/web.d.ts.map +1 -0
  831. package/dist/tools/web.js +607 -0
  832. package/dist/tools/web.js.map +1 -0
  833. package/dist/tools/worktree.d.ts +88 -0
  834. package/dist/tools/worktree.d.ts.map +1 -0
  835. package/dist/tools/worktree.js +434 -0
  836. package/dist/tools/worktree.js.map +1 -0
  837. package/docs/A1-ATTRIBUTION-ROUND1-2026-07-09.md +181 -0
  838. package/docs/AB-ORACLE-GATE-VERDICT-2026-07-10.md +100 -0
  839. package/docs/ANCHOR-GAP-INVENTORY-2026-07-09.md +143 -0
  840. package/docs/ARCHITECTURE.md +125 -0
  841. package/docs/BUGHUNT-2026-07-05-NIGHT.md +98 -0
  842. package/docs/BUILD.md +63 -0
  843. package/docs/CANCEL-ASYNC-ATTRIBUTION-2026-07-09.md +98 -0
  844. package/docs/CC-198-VS-201-DRIFT-2026-07-09.md +70 -0
  845. package/docs/CC-BASELINE-FAKE-ZERO-AUDIT-2026-07-09.md +51 -0
  846. package/docs/CC-DRIFT-198-206-AGENT-TYPES-2026-07-10.md +82 -0
  847. package/docs/CC-DRIFT-198-206-CHANGELOG-2026-07-10.md +82 -0
  848. package/docs/CC-DRIFT-198-206-REMINDERS-2026-07-10.md +96 -0
  849. package/docs/CC-DRIFT-198-206-ROADMAP-2026-07-10.md +110 -0
  850. package/docs/CC-DRIFT-198-206-TOOL-INVENTORY-2026-07-10.md +53 -0
  851. package/docs/CC-DRIFT-198-206-USAGE-CONSTANTS-2026-07-10.md +64 -0
  852. package/docs/CC-DRIFT-198-206-WORKFLOW-2026-07-10.md +83 -0
  853. package/docs/CC-PARITY-CHECKLIST.md +220 -0
  854. package/docs/CC-PARITY-DEEP-SWEEP-2026-07-07.md +149 -0
  855. package/docs/CC-SUBAGENT-PROMPT-STUDY-2026-07-09.md +219 -0
  856. package/docs/CC-TASK-REMINDER-CADENCE-STUDY-2026-07-09.md +396 -0
  857. package/docs/CC-TOOL-PARITY-SWEEP-2026-07.md +56 -0
  858. package/docs/CC-TOOL-PROMPT-DEEP-DIFF-2026-07-08.md +274 -0
  859. package/docs/CC-TOOLSURFACE-DEEP-DIVE-2026-07-07.md +197 -0
  860. package/docs/CC206-OBSERVER-ANCHORS-2026-07-11.md +463 -0
  861. package/docs/CC207-CORE-SWEEP-BACKLOG-2026-07-12.md +155 -0
  862. package/docs/CENTER-CONTROL-PLANE-SEAM.md +86 -0
  863. package/docs/CLEANUP-CONTRACT-ANCHOR-2026-07-09.md +83 -0
  864. package/docs/COLD-START-RSI-2026-07-09.md +72 -0
  865. package/docs/COMPACTION-LIVE-AUDIT-2026-07-09.md +114 -0
  866. package/docs/CONTEXT-lifecycle-extension-points-and-stop-attribution.md +71 -0
  867. package/docs/COREWARS-POLYGLOT-TRIAGE-2026-07-09.md +85 -0
  868. package/docs/DEADTARGET-OVERFULL-HBOX-2026-07-10.md +92 -0
  869. package/docs/DEADTARGET-PATH-TRACING-REVERSE-2026-07-10.md +87 -0
  870. package/docs/DEADTARGET-WINNING-AVG-COREWARS-2026-07-10.md +96 -0
  871. package/docs/DEEPSEEK-API-LIMITS-PROBE-2026-07-09.md +118 -0
  872. package/docs/DESIGN-140-MOCK-VERIFY-2026-07-11.md +79 -0
  873. package/docs/DESIGN-140-VERIFICATION-2026-07-11.md +43 -0
  874. package/docs/DESIGN-DRAFT-workflow-collab-2026-07-11.md +56 -0
  875. package/docs/DESIGN-ORACLE-GROUNDING-GATE-2026-07-10.md +167 -0
  876. package/docs/DESIGN-TFRAG-RECONCILE-SCAFFOLD-2026-07-09.md +102 -0
  877. package/docs/EXP-PA2-PE-DESIGN-2026-07-11.md +220 -0
  878. package/docs/EXT-DOGFOOD-2026-07-12.md +50 -0
  879. package/docs/FINAL-VERIFY-SURFACE-AUDIT-2026-07-09.md +44 -0
  880. package/docs/FRAG-RECON-INVESTIGATION-2026-07-09.md +183 -0
  881. package/docs/HANDOFF.md +121 -0
  882. package/docs/KNOWN-ISSUES.md +96 -0
  883. package/docs/LEGW-WINDOW-TAX-2026-07-10.md +82 -0
  884. package/docs/LIVE-PROBE-BATCH-2026-07-11.md +207 -0
  885. package/docs/M2-CERT-ATTRIBUTION-2026-07-10.md +61 -0
  886. package/docs/M25-LEG-VARIANCE-ATTRIBUTION-2026-07-10.md +81 -0
  887. package/docs/MAILMAN-TIMEOUT-ATTRIBUTION-2026-07-10.md +88 -0
  888. package/docs/MEMORY-BACKEND-DIALECT-NOTES.md +69 -0
  889. package/docs/MTEB-ESCAPE-HATCH-ATTRIBUTION-2026-07-09.md +57 -0
  890. package/docs/MTEB-LEADERBOARD-ATTRIBUTION-2026-07-10.md +134 -0
  891. package/docs/ORACLE-GATE-NEGATIVE-SAMPLE-2026-07-11.md +28 -0
  892. package/docs/PARITY-CONTEXT-TRANSACTIONS-2026-07-10.md +67 -0
  893. package/docs/PARITY-PROGRESS-MATRIX-2026-07-10.md +37 -0
  894. package/docs/PARITY-SPOT-AGENT-TYPES-2026-07-10.md +70 -0
  895. package/docs/PARITY-SPOT-REMINDERS-2026-07-10.md +144 -0
  896. package/docs/PARITY-SPOT-TOOL-INVENTORY-2026-07-10.md +61 -0
  897. package/docs/PARITY-SPOT-USAGE-CONSTANTS-2026-07-10.md +95 -0
  898. package/docs/PARITY-SPOT-WORKFLOW-2026-07-10.md +93 -0
  899. package/docs/PASSWORD-RECOVERY-PANEL-VERDICT-2026-07-10.md +62 -0
  900. package/docs/R8-R9-FINALIZE-COORDINATION-2026-07-09.md +124 -0
  901. package/docs/REPL-CODE-MODE-EVALUATION-2026-07-10.md +187 -0
  902. package/docs/REPORT-1249-TARGETED.md +48 -0
  903. package/docs/RESEARCH-3P-MEMORY-SWAP-2026-07-12.md +273 -0
  904. package/docs/ROADMAP.md +111 -0
  905. package/docs/RSI-CLOUD-DEPLOY-2026-07-06.md +289 -0
  906. package/docs/RSI-PROCESS-AI-COLDSTART-2026-07-11.md +68 -0
  907. package/docs/S18-THOROUGHNESS-AUDIT-2026-07-09.md +113 -0
  908. package/docs/SERVICE-INTEGRATION-GUIDE.md +298 -0
  909. package/docs/SUBAGENT-STREAM-RESILIENCE-PARITY-2026-07-10.md +118 -0
  910. package/docs/SWEBENCH-PRO-RECON-2026-07-11.md +31 -0
  911. package/docs/TB-EFFICIENCY-TELEMETRY-2026-07-08.md +114 -0
  912. package/docs/TB-FAILURE-AUTOPSY-2026-07-05-RERUN.md +67 -0
  913. package/docs/TB-FAIRNESS-AUDIT-2026-07-08.md +141 -0
  914. package/docs/TB-FULL-1257-2026-07-08.md +77 -0
  915. package/docs/TB-LEG-GAP-ATTRIBUTION-1261-1263-2026-07-11.md +154 -0
  916. package/docs/TB-REGRESSION-DAEMON-KILL-2026-07-08.md +58 -0
  917. package/docs/TB-RSI-CROSSCHECK-2026-07-06.md +68 -0
  918. package/docs/TB-RSI-LEDGER.md +30 -0
  919. package/docs/TB-STABLE-SET-2026-07-08.md +127 -0
  920. package/docs/TB21-RECON-2026-07-11.md +28 -0
  921. package/docs/TEST-DESIGN-BATCH-1-2-3.md +97 -0
  922. package/docs/THIRD-PARTY-INTEGRATION.md +45 -0
  923. package/docs/TOKEN-ESTIMATE-CALIBRATION-LIVE-2026-07-09.md +102 -0
  924. package/docs/audit-2026-06-10-/347/254/254/344/272/214/350/275/256-/347/251/272/347/231/275/345/214/272/344/270/216/345/277/230/346/216/245/347/272/277.md +147 -0
  925. package/docs/audit-2026-06-10-/350/256/241/347/256/227bug/346/211/253/346/217/217.md +163 -0
  926. package/docs/audit-2026-06-11-/344/277/256/345/244/215/345/244/215/345/256/241/344/270/216/345/233/236/345/275/222/344/270/223/346/211/253.md +95 -0
  927. package/docs/audit-2026-06-12-design71-P1/346/275/234/344/274/217/351/235/242/350/243/201/345/206/263/344/270/216/345/220/236/351/224/231/345/256/241/350/256/241.md +45 -0
  928. package/docs/audit-2026-06-12-/345/205/254/345/274/200/346/227/213/351/222/256/346/264/273/346/200/247/344/270/216vendored/346/255/273/350/267/257.md +63 -0
  929. package/docs/audit-2026-06-15/ADDENDUM-second-pass.md +88 -0
  930. package/docs/audit-2026-06-15/ARCHITECTURE-AND-ROADMAP.md +187 -0
  931. package/docs/audit-2026-06-15/DOC-CORRECTIONS.md +105 -0
  932. package/docs/audit-2026-06-15/INDEX.md +49 -0
  933. package/docs/audit-2026-06-15/ORCHESTRATION-STATUS.md +98 -0
  934. package/docs/audit-2026-06-15/PRODUCTION-ISSUES.md +189 -0
  935. package/docs/audit-2026-06-15/REFERENCES-literature.md +139 -0
  936. package/docs/audit-2026-06-15/VENDOR-REFACTOR-PLAN.md +96 -0
  937. package/docs/cc-probe-198/README.md +72 -0
  938. package/docs/cc-probe-198/STABILITY-AUDIT.md +118 -0
  939. package/docs/cc-probe-198/live-schema-monitor-worktree-2026-07-09.json +56 -0
  940. package/docs/cc-probe-198/mount-variants.json +536 -0
  941. package/docs/cc-probe-198/plan-mode-run.json +1 -0
  942. package/docs/cc-probe-198/probe-bash-bg.json +224 -0
  943. package/docs/cc-probe-198/probe-edit-mismatch.json +120 -0
  944. package/docs/cc-probe-198/probe-read-missing.json +62 -0
  945. package/docs/cc-probe-198/probe-search-empty.json +127 -0
  946. package/docs/cc-probe-198/probe-task-family.json +227 -0
  947. package/docs/cc-probe-198/probes.status +6 -0
  948. package/docs/cc-probe-198/raw-capture-interactive.json +948 -0
  949. package/docs/cc-probe-198/raw-capture-print.json +787 -0
  950. package/docs/cc-probe-198/raw-capture2-interactive.json +948 -0
  951. package/docs/cc-probe-198/raw-capture2-print.json +787 -0
  952. package/docs/cc-probe-198/system-prompt.txt +135 -0
  953. package/docs/cc-probe-198/tools-array.json +962 -0
  954. package/docs/durability-boundary.md +63 -0
  955. package/docs/fix-2026-06-10-/350/256/241/347/256/227bug/344/277/256/345/244/215-search/346/211/271.md +75 -0
  956. package/docs/fix-2026-06-11-/347/254/254/344/272/214/350/275/256-/344/277/256/345/244/215-search/346/211/271.md +62 -0
  957. package/docs/parity-sweep/REPORT-DYNAMIC.md +97 -0
  958. package/docs/parity-sweep/REPORT-STATIC-GGB.md +127 -0
  959. package/docs/parity-sweep/REPORT-STATIC-RWE.md +133 -0
  960. package/docs/vendor-history.md +385 -0
  961. package/docs/vendored-upstream-diff-2026-07.md +83 -0
  962. package/package.json +70 -0
@@ -0,0 +1,279 @@
1
+ /**
2
+ * Structured header fields of one memory entry (the CC frontmatter shape: `name`/`description`/
3
+ * `metadata.type`). `extra` preserves any additional frontmatter lines VERBATIM (round-trip safety:
4
+ * the engine must never destroy model-authored frontmatter it doesn't understand — same posture as
5
+ * the file store's unknown-op replay skip).
6
+ */
7
+ export interface MemoryEntryFrontmatter {
8
+ /** Short kebab-case slug (CC `name:`). Defaults to the file slug when the model omits it. */
9
+ name?: string;
10
+ /** One-line summary used for recall relevance (CC `description:`). */
11
+ description?: string;
12
+ /** CC `metadata.type`: user | feedback | project | reference (unknown strings degrade, design/65). */
13
+ type?: string;
14
+ /** design/138 §2.4 删除防线 — the EXPLICIT tombstone. A file that merely disappears is NEVER a
15
+ * delete; only `deleted: true` in frontmatter produces a delete patch. */
16
+ deleted?: boolean;
17
+ /** Unknown frontmatter lines preserved verbatim (order kept), re-serialized on projection. */
18
+ extra?: string[];
19
+ }
20
+ /** design/138 §2.1 — one memory entry (the unit the backend stores and the engine projects to a file). */
21
+ export interface MemoryEntry {
22
+ /** IMMUTABLE uuid — survives slug renames (consolidation cursors/vectors/dedup all key on it).
23
+ * Hidden in the file's frontmatter as `id:`; minted at harvest for id-less new files. */
24
+ id: string;
25
+ /** File-name identity (the path relative to its scope dir, without `.md`) — model-visible, renameable. */
26
+ slug: string;
27
+ frontmatter: MemoryEntryFrontmatter;
28
+ /** The markdown body (everything after the frontmatter block). */
29
+ body: string;
30
+ /** CAS baseline — a content hash over (id, frontmatter, body). See {@link computeEntryRev}. */
31
+ rev: string;
32
+ /** Owning scope (tenant/layer key, same vocabulary as `TaskSpec.memory.scopes`). */
33
+ scope: string;
34
+ }
35
+ /** Manifest-level header: enough to judge relevance / build the derived index, never the body. */
36
+ export interface MemoryEntryHeader {
37
+ id: string;
38
+ slug: string;
39
+ scope: string;
40
+ name?: string;
41
+ description?: string;
42
+ type?: string;
43
+ /** Last content change (ms epoch) — drives the natural-language age rendering in the derived index. */
44
+ mtimeMs: number;
45
+ rev: string;
46
+ /** Approximate stored size (bytes of body+frontmatter) — drives the per-scope materialization budget. */
47
+ sizeBytes: number;
48
+ }
49
+ /** A scored search hit (FileBackend = lexical floor; PgBackend = design/81 vector rungs, S3). */
50
+ export interface ScoredMemoryEntry extends MemoryEntryHeader {
51
+ /** Cosine-DISTANCE ∈ [0,2], 0 = identical (same contract as {@link import("../memory.js").ScoredMemory}). */
52
+ score: number;
53
+ }
54
+ /**
55
+ * design/138 §2.1 — one entry transaction. `add`/`delete` are naturally commutative; `update` carries
56
+ * a per-id CAS baseline (`baseRev`): when the backend's current rev differs, the patch is reported as a
57
+ * CONFLICT (never blind-written) and the next task re-materializes fresh state (§2.4 并发).
58
+ */
59
+ export interface NotePatch {
60
+ op: "add" | "update" | "delete";
61
+ /** The immutable entry id this patch addresses. */
62
+ id: string;
63
+ /** The full new entry state (`add`/`update`). Absent for `delete`. */
64
+ entry?: MemoryEntry;
65
+ /** CAS baseline for `update`/`delete`: the rev this patch was computed against. Absent (a brand-new
66
+ * add) ⇒ no CAS. */
67
+ baseRev?: string;
68
+ /** ADD-ONLY guard (design/142 S2.5, E-02). Meaningful only on `op: "add"`:
69
+ * - `"absent"` ⇒ add-if-absent: if the target id already exists, the backend compares revs —
70
+ * same rev AND same projection (scope+slug) = idempotent apply; DIFFERENT rev, or same rev at a
71
+ * DIFFERENT projection (三轮复查: rev hashes id/frontmatter/body, not slug/scope — a same-content
72
+ * copy at another slug/scope is no no-op, "applying" it would mint a duplicate file for the id) =
73
+ * a REPORTED conflict (`add_guard_absent_conflict`, carrying `currentRev`), NEVER a blind
74
+ * overwrite or a duplicate. This is for sync's first-round pull adds, where a concurrent local
75
+ * create during the RTT must not be clobbered.
76
+ * A plain add WITHOUT this guard keeps its existing idempotent-overwrite semantics (the
77
+ * `same-scope re-add of an existing id is the idempotent overwrite` contract clause is unchanged).
78
+ * Ignored on `update`/`delete`. */
79
+ guard?: "absent";
80
+ }
81
+ /** Result of {@link MemoryBackend.applyPatches} — applied ops + per-id CAS conflicts (reported, not thrown). */
82
+ export interface PatchReport {
83
+ applied: Array<{
84
+ op: NotePatch["op"];
85
+ id: string;
86
+ slug?: string;
87
+ }>;
88
+ conflicts: Array<{
89
+ op: NotePatch["op"];
90
+ id: string;
91
+ reason: string;
92
+ baseRev?: string;
93
+ currentRev?: string;
94
+ }>;
95
+ }
96
+ /**
97
+ * design/138 §2.1 — the storage seam under the MemoryEngine. NOT a MemoryStore replacement shim: this
98
+ * is the S1 new-architecture surface (the legacy `MemoryStore` path is untouched and switched off it).
99
+ */
100
+ export interface MemoryBackend {
101
+ /** Headers for every entry in the given scopes (manifest surface — bodies excluded). */
102
+ listHeaders(scopes: readonly string[]): Promise<MemoryEntryHeader[]>;
103
+ /** Full entries for the selected ids (unknown ids silently skipped). */
104
+ getByIds(ids: readonly string[]): Promise<MemoryEntry[]>;
105
+ /** Scored retrieval (FileBackend = lexical floor; vector rungs live in the S3 PgBackend). */
106
+ search(query: string, scopes: readonly string[], opts?: {
107
+ limit?: number;
108
+ }): Promise<ScoredMemoryEntry[]>;
109
+ /**
110
+ * Apply entry transactions (add/update/delete) against the backend's CURRENT state (per-id CAS).
111
+ *
112
+ * Behavior clauses a conforming implementation MUST honor (ext-dogfood F1 — each is asserted by
113
+ * `memoryBackendContract`, listed here so a third party doesn't have to discover them case by case):
114
+ * - a repeated id WITHIN one batch: first op wins, later ones conflict with reason matching
115
+ * /duplicate id in batch/;
116
+ * - `entry.id !== patch.id` (either op) is refused with reason matching /malformed patch refused/
117
+ * — never silently rekeyed;
118
+ * - an `add` whose slug is taken by a DIFFERENT id in the same scope gets a deterministic `-n`
119
+ * suffix (`taken` → `taken-2`); the id stays the identity anchor;
120
+ * - re-`add` of an EXISTING id is the idempotent overwrite (and into another scope = the MOVE:
121
+ * the old scope loses the entry) — not a conflict;
122
+ * - an `add` carrying `guard: "absent"` is add-if-absent: onto a MISSING id it is a plain add;
123
+ * onto an EXISTING id it is idempotent when the rev AND the projection (scope+slug) match, else a
124
+ * REPORTED conflict with reason matching /add_guard_absent_conflict/ carrying `currentRev` —
125
+ * NEVER a blind overwrite, never a second file for one id (E-02 + 三轮复查投影校验);
126
+ * - `update` MAY move an entry across scopes; a stale `baseRev` is a REPORTED conflict, never
127
+ * thrown, never blind-written;
128
+ * - conflicts are per-patch and non-fatal: the rest of the batch still applies.
129
+ */
130
+ applyPatches(patches: readonly NotePatch[]): Promise<PatchReport>;
131
+ /** design/84 Seam B cursor pair, migrated verbatim onto the entry-id plane (S2 rewires consolidation). */
132
+ getConsolidationCursor(scope: string): Promise<string | undefined>;
133
+ setConsolidationCursor(scope: string, cursor: string): Promise<void>;
134
+ }
135
+ /** One file the engine materialized into the session memory directory. */
136
+ export interface MaterializedFile {
137
+ /** Absolute canonical path of the projected file. */
138
+ path: string;
139
+ /** Path relative to the memory dir root (the link target used in the derived MEMORY.md index). */
140
+ relPath: string;
141
+ scope: string;
142
+ id: string;
143
+ slug: string;
144
+ /** Rev of the ON-DISK content at materialize time (for a stub: the stub content's rev). */
145
+ rev: string;
146
+ /** True when this file is a budget stub (frontmatter+description only, body archived — §2.3). */
147
+ stub: boolean;
148
+ /** True when the file belongs to a read-only inherited layer (chmod-protected, never harvested as a write). */
149
+ readonly: boolean;
150
+ }
151
+ /**
152
+ * design/138 §2.2 — the session handle `materialize` returns and `harvest`/`rebaseline` consume.
153
+ * `materialized` IS the harvest diff domain (plus session-new files under `writableRoot`): an entry
154
+ * that was never materialized can never be deleted by its absence (镜头 G).
155
+ */
156
+ export interface MemorySessionHandle {
157
+ /** The memory directory root. PURE CONFIG (§2.7 r2.1): a project scope may live IN-REPO
158
+ * (git-tracked `memory/`), a user/personal scope OUTSIDE — the engine never asserts either.
159
+ * TODO(S1b): per-scope PHYSICAL roots (project scope in-repo + user scope in the home mount in ONE
160
+ * session) — `fileToScope` already keys absolute paths, so only the layout mapping needs the split. */
161
+ memoryDir: string;
162
+ /** The single directory the model may write memory into (the writeScope's home). Equals `memoryDir`
163
+ * when the writeScope owns the root (the standard TOC layout). */
164
+ writableRoot: string;
165
+ writeScope: string | null;
166
+ scopes: string[];
167
+ /** The materialized manifest = the harvest diff domain. */
168
+ materialized: MaterializedFile[];
169
+ /** Absolute file path → owning scope. */
170
+ fileToScope: Map<string, string>;
171
+ /** Absolute file path → materialize-time rev (the per-id CAS baseline harvest sends with updates). */
172
+ baseRevs: Map<string, string>;
173
+ /** Absolute file path → entry id at materialize time (rename/id-restore bookkeeping). */
174
+ baseIds: Map<string, string>;
175
+ /** Lines of the derived MEMORY.md at materialize time (the index-cleared fuse baseline). */
176
+ indexBaselineLines: number;
177
+ /** 评审 M6 — the derived index TEXT as of materialize. `inject` reads THIS when no on-disk
178
+ * MEMORY.md exists (a read-only layering never writes one), so first-session read-only injection
179
+ * works without a disk round-trip. */
180
+ indexText: string;
181
+ }
182
+ /** Stable rejection codes a harvest gate can produce (model-visible gate events — 镜头 I). */
183
+ export type HarvestRejectionCode = "outside_root" | "symlink" | "secret" | "injection" | "filename" | "too_large" | "file_cap" | "readonly_layer" | "stub_modified" | "nested_too_deep" | "quarantine_failed" | "invalid";
184
+ /** One rejected file: path (relative to the memory dir), stable code, and a model-readable reason. */
185
+ export interface HarvestRejection {
186
+ path: string;
187
+ code: HarvestRejectionCode;
188
+ reason: string;
189
+ }
190
+ /**
191
+ * design/138 S2-C — one finding from the shared write-time/harvest scan rule set
192
+ * (`scan.ts` `scanMemoryWrite`/`scanMemoryFileName`; ONE rule set, TWO mount points).
193
+ */
194
+ export interface ScanFinding {
195
+ /** The subset of {@link HarvestRejectionCode} the scan can produce. */
196
+ code: "secret" | "injection" | "filename" | "too_large";
197
+ /** Engine-composed, model-readable reason fragment (for `secret`: the pattern LABEL, never the value). */
198
+ reason: string;
199
+ }
200
+ /**
201
+ * design/138 S2-B — one queued memory-change announcement, drained into the NEXT session's first
202
+ * injection (时机① only; there is no in-run delivery lane — O-F2/C-F4 裁撤). Queued via the
203
+ * journaled control-plane queue ({@link import("./layout.js").enqueueMemoryAnnouncement}) so
204
+ * concurrent writers never overwrite each other (O-F6/C-F5).
205
+ */
206
+ export interface MemoryAnnouncement {
207
+ /** `gate` = engine gate/harvest events (rejections, quarantine, incidents, restores, conflicts,
208
+ * degradation, applied-patch summary); `external` = out-of-session changes the backend's read-side
209
+ * detected (disk rev ≠ ledger: adopted external edits + inbound-gate rejects). */
210
+ kind: "gate" | "external";
211
+ /** ms epoch at enqueue. */
212
+ at: number;
213
+ /** Optional producing-session id (repo-level event stream — Q-G: no worktree attribution in S2). */
214
+ sessionId?: string;
215
+ /** Engine-composed single-line items. O-F1/C-F8: every model/collaborator-controllable identifier
216
+ * (path/slug/name/description) is neutralized (inlineUntrusted) AND JSON-quoted at ENQUEUE time —
217
+ * the stored strings are already render-safe; the render step only adds the trusted lead/frame. */
218
+ items: string[];
219
+ }
220
+ /**
221
+ * design/138 §2.4 — the harvest outcome. Rejections are MODEL-VISIBLE gate events: S1 delivers the
222
+ * structure; the runner's boundary-announcement wiring (attachments member) lands in S2 (TODO(S2)).
223
+ */
224
+ export interface HarvestReport {
225
+ /** False ⇔ the whole harvest was refused (deletion fuse / missing dir / corrupt sidecar incident). */
226
+ ok: boolean;
227
+ /** Set when a fuse tripped (§2.4 删除防线 / B3 fail-closed): the harvest is refused wholesale, NO
228
+ * patches (especially no deletes) are produced, and the report is surfaced as an alert. */
229
+ incident?: {
230
+ kind: "mass_deletion" | "index_cleared" | "dir_missing" | "sidecar_corrupt";
231
+ detail: string;
232
+ };
233
+ /** Patch counts actually APPLIED by the backend. */
234
+ patches: {
235
+ add: number;
236
+ update: number;
237
+ delete: number;
238
+ };
239
+ /** Per-id CAS conflicts from the backend (reported, never blind-written). */
240
+ conflicts: PatchReport["conflicts"];
241
+ rejections: HarvestRejection[];
242
+ /** Non-`.md` / non-structural files found in the diff domain — listed, never persisted (they stay
243
+ * on disk: they may be the model's working files). Files REMOVED from the model-visible plane go
244
+ * in {@link movedToQuarantine}. */
245
+ quarantined: string[];
246
+ /** Gate-rejected files physically MOVED into the control plane's `quarantine/` (out of the scan
247
+ * domain and off the model-visible disk — B2/验收 L4: secret-bearing files never linger). */
248
+ movedToQuarantine: string[];
249
+ /** C-F9 (S2-0) — quarantine escalations: any deviation from the clean capture+remove path is
250
+ * REPORT-VISIBLE here (never a debug-only downgrade). `contained` = the suspect content no longer
251
+ * sits raw on the model-visible plane (deleted / cleared in place / overwritten with the committed
252
+ * copy); `contained: false` is the worst case — residue remains and a human/runner must act. */
253
+ quarantineFailures?: Array<{
254
+ path: string;
255
+ contained: boolean;
256
+ detail: string;
257
+ }>;
258
+ /** Materialized files absent at harvest. NOT deletes (§2.4: 文件缺失≠删除). Files whose entry id
259
+ * re-appears at another path (a RENAME) are NOT counted here (验收 M1 — a rename is an id-keyed
260
+ * update, never a missing file, and never feeds the deletion fuse). */
261
+ missing: string[];
262
+ /** B1 committed-shadow recovery: missing (non-tombstoned) files RESTORED onto disk from the
263
+ * committed copy (backend/shadow). Disclosed here (the restore is an engine action, never silent).
264
+ * Restored paths also appear in {@link missing} (the honest record of what vanished). */
265
+ restored: string[];
266
+ /** Index self-heal notes (L8): suspected-duplicate index lines kept-with-warning, cleared orphans. */
267
+ warnings: string[];
268
+ /** M7 harvest budget: set when the deadline/file budget cut the harvest short. `pending` files were
269
+ * NOT processed this round (no patches, still on disk) — the next boundary harvest picks them up. */
270
+ degraded?: {
271
+ reason: "deadline" | "file_budget";
272
+ pending: string[];
273
+ };
274
+ /** B2 §2.7 r2.1 inbound gate: findings from scanning changes that did NOT originate in this session
275
+ * (e.g. a git-pull-borne edit of an in-repo memory dir — a write channel that bypasses the harvest
276
+ * gate). Populated by the backend's read-side sync gate and drained into the report at harvest. */
277
+ inboundFindings?: HarvestRejection[];
278
+ }
279
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/memory-engine/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ // design/138 S1 — MemoryEngine contract types (§2.1: 条目为本体,文件为投影).
2
+ //
3
+ // The ENTRY is the unit of truth; files are the engine's projection of entries into a directory the
4
+ // model manipulates with its ordinary file skills (CC file-based-memory parity, live capture §12).
5
+ // The backend seam below is deliberately CONDITION-FREE across deployments: FileBackend (TOC 权威盘,
6
+ // this slice) and PgBackend (TOB, S3) implement the SAME entry-transactional surface, so the engine —
7
+ // and therefore the model-facing behavior — never forks on the storage tier.
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/memory-engine/types.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,EAAE;AACF,oGAAoG;AACpG,mGAAmG;AACnG,kGAAkG;AAClG,sGAAsG;AACtG,6EAA6E"}
@@ -0,0 +1,261 @@
1
+ import type { MemoryNoteHeader, MemoryNoteRecord, MemoryStore } from "./memory.js";
2
+ import type { ModelRef, TaskSpec, TaskResult } from "./types.js";
3
+ /**
4
+ * Selective memory recall (design/65 §2.2 — port of CC `findRelevantMemories`). For a LARGE memory scope,
5
+ * instead of injecting the whole `<user_memory>` block (inject-all), we inject a compact **manifest** (one
6
+ * header line per note) + a side-query that picks the ≤K relevant note ids + only those bodies. Small
7
+ * scopes keep inject-all (the common case after consolidation) — this path is threshold-gated, so most
8
+ * tasks pay nothing.
9
+ *
10
+ * The model side-query is an injected **seam** ({@link MemorySelector}); core provides a brain-backed
11
+ * default ({@link createBrainMemorySelector}) and a deployment can override it. The pipeline here is pure +
12
+ * deterministic given a selector: it validates the returned ids against the manifest (rejects hallucinated
13
+ * ids, council #5), caps at K, applies a hard timeout (council #12), and on ANY selector failure/timeout
14
+ * DEGRADES to inject-all (council #4 — never silently drop knowledge). Output goes in the variable tail
15
+ * (manifest + selected bodies are per-user/volatile, like the current memory block).
16
+ */
17
+ /** Default max notes the side-query may select (CC `findRelevantMemories` ≤5). */
18
+ export declare const DEFAULT_MAX_SELECTED = 5;
19
+ /** Default max 1-hop link-followed notes appended after the selected ones (design/65 P3). */
20
+ export declare const DEFAULT_MAX_LINKED = 3;
21
+ /** Default side-query hard timeout (ms) — council #12; on timeout we degrade to inject-all. */
22
+ export declare const DEFAULT_SELECT_TIMEOUT_MS = 5000;
23
+ /**
24
+ * Render a memory note's age as a natural-language phrase (CC-parity P0-1, design/65). CC's eval found
25
+ * models reason about memory age much better from natural language ("3 days ago") than from a boolean
26
+ * "older note" flag (verify-claims 0/2 → 3/3 once the age was spelled out), because the model can weigh
27
+ * staleness proportionally instead of as a single cliff. This is the relative phrase only; the
28
+ * point-in-time / verify-before-trust discipline still lives in {@link RECALL_CAVEAT} + the per-note
29
+ * "verify it's still current" hint (the age is ADDITIONAL signal, not a replacement).
30
+ *
31
+ * Buckets (each chooses the coarsest unit that's ≥1): `today` (<1 day, incl. future mtime / clock skew →
32
+ * clamped to today, never a negative age), `yesterday` (1–2 days), `N days ago` (2–7 days),
33
+ * `N weeks ago` (1 week – ~1 month), `N months ago` (≥ ~1 month). N is floored to the whole unit.
34
+ */
35
+ export declare function formatMemoryAge(ageMs: number): string;
36
+ /**
37
+ * Read-side recall caveat (design/65 §8#2 / §9#1 — ported from CC's MEMORY_DRIFT_CAVEAT +
38
+ * TRUSTING_RECALL_SECTION). The council found CC's two-section form is **eval-validated** (verify-claims
39
+ * 0/2→3/3) and that the structure carries the effect: the precise decision-point heading
40
+ * "## Before recommending from memory" scored 3/3 while an abstract heading or a buried bullet scored 0/3.
41
+ * So this is deliberately TWO sections — a drift bullet + a titled action section with the frame-shift
42
+ * sentence and concrete verify actions — NOT one merged paragraph (same semantics, 3× worse eval).
43
+ * MEMORY_SAFETY already carries the authority hierarchy; this adds the point-in-time / verify-before-trust
44
+ * discipline selective recall specifically needs.
45
+ */
46
+ export declare const RECALL_CAVEAT: string;
47
+ export interface MemorySelectRequest {
48
+ /** The task objective the recall is for. */
49
+ objective: string;
50
+ /** The manifest the selector chooses from (id + description [+ type]). */
51
+ manifest: MemoryNoteHeader[];
52
+ /** Tools the task will use — for these, keep gotchas/warnings, skip pure usage notes (design/65 §2.2). */
53
+ recentTools?: string[];
54
+ }
55
+ /** The side-query seam: pick the relevant note ids from the manifest. MUST be fail-fast (throw → degrade). */
56
+ export type MemorySelector = (req: MemorySelectRequest, signal?: AbortSignal) => Promise<string[]>;
57
+ export interface SelectiveRecallOptions {
58
+ store: MemoryStore;
59
+ scope: string;
60
+ objective: string;
61
+ selector: MemorySelector;
62
+ recentTools?: string[];
63
+ /** Absolute time for the freshness caveat (default Date.now()). */
64
+ nowMs?: number;
65
+ maxSelected?: number;
66
+ /** Max 1-hop `[[name]]` link-followed notes appended after the selected ones (design/65 P3).
67
+ * `0` disables link-following. Default {@link DEFAULT_MAX_LINKED}. */
68
+ maxLinked?: number;
69
+ timeoutMs?: number;
70
+ signal?: AbortSignal;
71
+ /**
72
+ * CC-parity P1 (durable cross-worker recall de-dup). Note ids ALREADY surfaced to this logical
73
+ * conversation in earlier turns/runs (CC's in-process `alreadySurfaced`/readFileState filter, lifted
74
+ * to a **durable, caller-owned** set so it survives task hops, resume, and multi-worker fan-out). When
75
+ * provided, these ids are **filtered out of the manifest BEFORE the selector sees it** — the selector
76
+ * never sees an already-shown note, so it cannot re-select it, so a long/resumed/multi-worker session
77
+ * does not re-inject the same bodies. core does NOT store this set (like {@link CheckpointStore}, the
78
+ * durable store is the caller's): the caller persists {@link surfacedIds} from one call and feeds it
79
+ * back here as `priorSurfacedIds` on the next. Omitted ⇒ no filtering (the prior, non-de-duped behavior).
80
+ */
81
+ priorSurfacedIds?: ReadonlySet<string>;
82
+ }
83
+ /**
84
+ * Result of {@link selectAndComposeMemory}. `surfacedIds` (CC-parity P1) is the set of note ids whose
85
+ * BODIES this call injected into the prompt — the caller appends them to its durable surfaced-set and
86
+ * feeds that back as {@link SelectiveRecallOptions.priorSurfacedIds} next time, so a long/resumed/
87
+ * multi-worker session does not re-inject the same notes. THREE shapes (all carry `surfacedIds`):
88
+ *
89
+ * - **block branch** (`{ block: string }`): a selective-recall block was rendered. `surfacedIds` = the
90
+ * validated selection + the 1-hop linked notes (everything whose body was rendered). The caller injects
91
+ * `block` verbatim.
92
+ *
93
+ * - **no-new branch** (`{ block: undefined }`): a SUCCESS, NOT a degrade. Every selectable candidate was
94
+ * already surfaced earlier (filtered out by {@link SelectiveRecallOptions.priorSurfacedIds}), so there is
95
+ * NOTHING NEW to inject. The caller injects NOTHING (no block) — it must NOT fall back to inject-all,
96
+ * because inject-all would re-dump the WHOLE scope including the already-shown notes, defeating the
97
+ * de-dup. `surfacedIds` is `[]` (this call added no new note to the durable set; the prior ids are
98
+ * already in the caller's store). Distinguished from `degrade` precisely so the caller does not
99
+ * re-inject (the bug this branch fixes). `"block" in result` is TRUE here (the key is present, value
100
+ * `undefined`), so the caller's `"degrade" in result` narrow routes this to the non-degrade path.
101
+ *
102
+ * - **degrade branch** (`{ degrade: true }`): a true FALLBACK — the store can't do selective recall
103
+ * (missing manifest/getByIds), the scope is empty, OR the selector failed/timed out. The caller falls
104
+ * back to inject-all (never drops knowledge, council #4), a best-effort FULL DUMP that
105
+ * `composeMemoryBlock` hard-truncates to a head slice (so it does NOT reliably render every body), and
106
+ * the caller already holds the prior surfaced ids. Degrade is therefore not a precise per-id surface that
107
+ * can be de-duped: `surfacedIds` is ALWAYS `[]` and degrade does **not** advance the durable surfaced-set.
108
+ * (Reporting the full header id list here would over-claim the truncated tail as surfaced → permanent
109
+ * silent under-recall on the next turn.) See {@link selectAndComposeMemory}.
110
+ */
111
+ export type SelectiveRecallResult = {
112
+ block: string;
113
+ surfacedIds: string[];
114
+ } | {
115
+ block: undefined;
116
+ surfacedIds: string[];
117
+ } | {
118
+ degrade: true;
119
+ surfacedIds: string[];
120
+ };
121
+ /**
122
+ * Resolve the `[[name]]` references in the selected notes' bodies to manifest headers — ONE hop
123
+ * (design/65 P3: "recall one note → bring its [[links]]"; linked bodies are NOT re-scanned, so a link
124
+ * chain can't pull in the whole graph). Pure-text convention: names resolve against the manifest's
125
+ * `name` field; an unresolved name is silently skipped (a `[[link]]` to a not-yet-written note is legal
126
+ * authoring, design/65 §2.1); a name collision resolves to the newest note (strict mtime `>`; on a
127
+ * tie the first-encountered header wins). Already-selected targets are excluded (they're injected
128
+ * anyway). Returns at most `max` ids, in first-mention order.
129
+ */
130
+ export declare function resolveLinkedIds(headers: MemoryNoteHeader[], selected: MemoryNoteRecord[], max: number): string[];
131
+ /** Render the manifest as compact lines, double-capped (council #7). One line per note, guaranteed. */
132
+ export declare function buildManifestText(headers: MemoryNoteHeader[]): string;
133
+ /** Keep only ids present in the manifest (reject hallucinated, council #5), de-duped, capped at `max`. */
134
+ export declare function validateSelectedIds(headers: MemoryNoteHeader[], ids: string[], max: number): string[];
135
+ /**
136
+ * Render the BODY of a selective-recall block: the optional `recall` manifest index + the selected note
137
+ * bodies (+ 1-hop linked notes), WITHOUT the outer `<user_memory>` wrapper and WITHOUT {@link RECALL_CAVEAT}.
138
+ * The wrapper + caveat are the caller's job — `composeSelectiveMemoryBlock` (single-scope) places ONE caveat
139
+ * inside ONE `<user_memory scope=… mode="selective">`, and the layered renderer places ONE caveat inside ONE
140
+ * `<user_memory mode="selective">` ahead of N `<scope>` subsections (MAJOR fix: no nested fences, no per-scope
141
+ * caveat duplication).
142
+ *
143
+ * `recallable` controls the "Memory index — call recall …" affordance (MAJOR fix): the on-demand `recall` tool
144
+ * is bound to a SINGLE scope, so the "load in full via recall" instruction is only TRUE for that scope. Pass
145
+ * `false` for non-recallable layers — the selected bodies are already rendered inline, so the index is just a
146
+ * false affordance that wastes a tool call (model searches the wrong scope → "No memory matches").
147
+ *
148
+ * Notes are tagged with their natural-language age (CC-parity P0-1, design/65; >1-day-old ones keep the
149
+ * "verify it's still current" hint, council #8). `linked` (design/65 P3) are 1-hop `[[name]]`-followed notes,
150
+ * rendered in their own clearly-labeled subsection AFTER the selected ones — expanded as DATA under the same
151
+ * fence/sanitize/byte-cap discipline (design/65 §8#9: a followed link must not become markup or escalate authority).
152
+ */
153
+ export declare function composeSelectiveBody(manifestText: string, selected: MemoryNoteRecord[], nowMs: number, linked?: MemoryNoteRecord[], recallable?: boolean): string;
154
+ /** Render the single-scope selective block: ONE `<user_memory scope=… mode="selective">` with ONE
155
+ * {@link RECALL_CAVEAT} at the top and the {@link composeSelectiveBody} (manifest + selected bodies + links).
156
+ * `recall` is bound to this single scope, so the manifest affordance is recallable. *
157
+ * @deprecated design/138 S4 — served ONLY the retired legacy memoryStore injection path; the Runner no
158
+ * longer calls this. Kept exported one major for direct/standalone store-level use; removal is the next major.
159
+ */
160
+ export declare function composeSelectiveMemoryBlock(scope: string, manifestText: string, selected: MemoryNoteRecord[], nowMs: number, linked?: MemoryNoteRecord[]): string;
161
+ /**
162
+ * Run the selective-recall pipeline. Returns the composed block (+ {@link SelectiveRecallResult.surfacedIds}),
163
+ * or `{ degrade: true, surfacedIds: [] }` when the selector fails/times out (caller falls back to inject-all —
164
+ * never drops knowledge, council #4). Degrade always reports `surfacedIds: []`: inject-all is a best-effort
165
+ * full dump (head-truncated at the cap), so it cannot honestly attribute a precise per-id surface, and the
166
+ * caller already holds the prior ids — degrade does NOT advance the durable surfaced-set.
167
+ *
168
+ * CC-parity P1 (durable cross-worker de-dup): when {@link SelectiveRecallOptions.priorSurfacedIds} is given,
169
+ * those ids are dropped from the candidate headers BEFORE the manifest is built and BEFORE the selector runs,
170
+ * so an already-shown note is invisible to the selector (and therefore cannot be re-selected, re-link-followed,
171
+ * or re-rendered). `surfacedIds` reports what THIS call rendered, for the caller's durable surfaced-set.
172
+ *
173
+ * @deprecated design/138 S4 — served ONLY the retired legacy memoryStore injection path; the Runner no
174
+ * longer calls this. Kept exported one major for direct/standalone store-level use; removal is the next major.
175
+ */
176
+ export declare function selectAndComposeMemory(opts: SelectiveRecallOptions): Promise<SelectiveRecallResult>;
177
+ /** A `(scope, id)` composite key for the multi-scope durable de-dup (design/84 Seam A decision 5). Note ids
178
+ * are only unique WITHIN a scope, so the cross-scope `priorSurfacedKeys`/`surfacedKeys` set MUST be keyed on
179
+ * both. Core owns the FORMAT so a caller can't drift the wire format (decision 7) — the encoding is OPAQUE
180
+ * and length-prefixes the scope so a scope/id containing the separator cannot forge a collision.
181
+ *
182
+ * ONE-WAY by design (codex MINOR (d)): the key is only ever PRODUCED here (`surfacedKeys`) and compared by
183
+ * STRING EQUALITY against the caller's persisted set ({@link LayeredRecallOptions.priorSurfacedKeys}, applied
184
+ * at memory-recall.ts via `priorSurfacedKeys.has(encodeSurfacedKey(h.scope, h.id))`). Nothing ever needs the
185
+ * `(scope, id)` BACK out of a key, so there is intentionally NO `decodeSurfacedKey` — adding a decode would
186
+ * widen the public surface (and invite callers to parse the opaque format) for zero consumer. Treat the key
187
+ * as an opaque token: persist it, feed it back, compare for equality — never split it. */
188
+ export declare function encodeSurfacedKey(scope: string, id: string): string;
189
+ /** A manifest header tagged with the scope it came from (design/84 Seam A decision 5). */
190
+ export interface ScopedNoteHeader extends MemoryNoteHeader {
191
+ scope: string;
192
+ }
193
+ /** A full record tagged with its scope (for cross-scope getByIds). */
194
+ export interface ScopedNoteRecord extends MemoryNoteRecord {
195
+ scope: string;
196
+ }
197
+ export interface LayeredRecallOptions {
198
+ store: MemoryStore;
199
+ /** Ordered scopes (design/84 Seam A): list order = priority; the last is highest. */
200
+ scopes: ReadonlyArray<string>;
201
+ objective: string;
202
+ selector: MemorySelector;
203
+ recentTools?: string[];
204
+ nowMs?: number;
205
+ maxSelected?: number;
206
+ maxLinked?: number;
207
+ timeoutMs?: number;
208
+ signal?: AbortSignal;
209
+ /** CC-parity P1, multi-scope: `(scope,id)` composite keys ({@link encodeSurfacedKey}) already surfaced to
210
+ * this logical conversation. Filtered out of the merged manifest BEFORE the selector sees it. */
211
+ priorSurfacedKeys?: ReadonlySet<string>;
212
+ }
213
+ /** Result of {@link selectAndComposeLayeredMemory}. `surfacedKeys` are `(scope,id)` composite keys
214
+ * ({@link encodeSurfacedKey}) — the caller appends them to its durable set and feeds them back as
215
+ * {@link LayeredRecallOptions.priorSurfacedKeys}. Mirrors {@link SelectiveRecallResult}'s three shapes. */
216
+ export type LayeredRecallResult = {
217
+ block: string;
218
+ surfacedKeys: string[];
219
+ } | {
220
+ block: undefined;
221
+ surfacedKeys: string[];
222
+ } | {
223
+ degrade: true;
224
+ surfacedKeys: string[];
225
+ };
226
+ /**
227
+ * Multi-scope (layered) selective recall (design/84 Seam A decision 5). Merges each scope's
228
+ * {@link MemoryStore.listStructuredNotes} into ONE manifest (each header tagged with its scope), lets the
229
+ * selector pick ids from the merged manifest, then fetches the selected bodies per-scope via
230
+ * {@link MemoryStore.getByIds} and renders ONE `<user_memory>` block with the selected notes grouped under a
231
+ * `<scope …>` subsection IN LIST ORDER (stable layers first = cacheable prefix, volatile last = tail). The
232
+ * `(scope,id)` composite de-dup ({@link LayeredRecallOptions.priorSurfacedKeys}) is applied at the manifest
233
+ * layer so an already-shown note in ANY scope is invisible to the selector.
234
+ *
235
+ * v1 (decision 6): accepts the N-small (3–4 layer) fan-out of one `listStructuredNotes`/`getByIds` per scope
236
+ * — no pre-built batch getByIds. Degrades to inject-all (the caller's job, like the single-scope path) on
237
+ * store-incapability / empty / selector failure. Threshold-gated by the caller, so a small layering pays nothing.
238
+ *
239
+ * @deprecated design/138 S4 — served ONLY the retired legacy memoryStore injection path; the Runner no
240
+ * longer calls this. Kept exported one major for direct/standalone store-level use; removal is the next major.
241
+ */
242
+ export declare function selectAndComposeLayeredMemory(opts: LayeredRecallOptions): Promise<LayeredRecallResult>;
243
+ /** Minimal structural view of the Runner needed by {@link createBrainMemorySelector} (avoids a circular
244
+ * import of the Runner class). */
245
+ export interface MemorySelectorRunner {
246
+ runTask(spec: TaskSpec): Promise<TaskResult>;
247
+ }
248
+ /**
249
+ * Default brain-backed {@link MemorySelector} (design/65 §6.2 / council #1: the side-query uses the MAIN
250
+ * brain — a cheap model is our unproven ABOVE assumption, not a CC port). Runs a tiny isolated sub-task
251
+ * with an `{ids}` output schema, no tools, a short budget. Returns the selected ids (validated downstream).
252
+ *
253
+ * @deprecated design/138 S4 — served ONLY the retired legacy memoryStore injection path; the Runner no
254
+ * longer calls this. Kept exported one major for direct/standalone store-level use; removal is the next major.
255
+ */
256
+ export declare function createBrainMemorySelector(runner: MemorySelectorRunner, opts?: {
257
+ model?: ModelRef;
258
+ timeoutSec?: number;
259
+ release?: (sessionId: string) => Promise<void> | void;
260
+ }): MemorySelector;
261
+ //# sourceMappingURL=memory-recall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-recall.d.ts","sourceRoot":"","sources":["../../src/core/memory-recall.ts"],"names":[],"mappings":"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"}