@namzu/cli 26.2.0 → 27.0.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 (342) hide show
  1. package/CHANGELOG.md +312 -0
  2. package/README.md +49 -34
  3. package/dist/bin.js +7 -0
  4. package/dist/bin.js.map +1 -1
  5. package/dist/checkpoints/store.d.ts +17 -4
  6. package/dist/checkpoints/store.d.ts.map +1 -1
  7. package/dist/checkpoints/store.js +20 -5
  8. package/dist/checkpoints/store.js.map +1 -1
  9. package/dist/cli.js +2 -2
  10. package/dist/cli.js.map +1 -1
  11. package/dist/commands/acp.d.ts +23 -1
  12. package/dist/commands/acp.d.ts.map +1 -1
  13. package/dist/commands/acp.js +41 -2
  14. package/dist/commands/acp.js.map +1 -1
  15. package/dist/commands/drain.d.ts +69 -2
  16. package/dist/commands/drain.d.ts.map +1 -1
  17. package/dist/commands/drain.js +214 -134
  18. package/dist/commands/drain.js.map +1 -1
  19. package/dist/commands/eval.js +1 -1
  20. package/dist/commands/eval.js.map +1 -1
  21. package/dist/commands/provider-wait.d.ts +5 -5
  22. package/dist/commands/provider-wait.d.ts.map +1 -1
  23. package/dist/commands/provider-wait.js +2 -2
  24. package/dist/commands/resident.d.ts.map +1 -1
  25. package/dist/commands/resident.js +2 -1
  26. package/dist/commands/resident.js.map +1 -1
  27. package/dist/commands/run-flags.d.ts +7 -7
  28. package/dist/commands/run-flags.js +4 -4
  29. package/dist/commands/run-stream.d.ts +16 -12
  30. package/dist/commands/run-stream.d.ts.map +1 -1
  31. package/dist/commands/run-stream.js +142 -98
  32. package/dist/commands/run-stream.js.map +1 -1
  33. package/dist/commands/run.d.ts +6 -4
  34. package/dist/commands/run.d.ts.map +1 -1
  35. package/dist/commands/run.js +129 -45
  36. package/dist/commands/run.js.map +1 -1
  37. package/dist/commands/serve.js +2 -2
  38. package/dist/commands/serve.js.map +1 -1
  39. package/dist/commands/state.js +8 -8
  40. package/dist/commands/state.js.map +1 -1
  41. package/dist/config/load.d.ts +1 -1
  42. package/dist/config/load.d.ts.map +1 -1
  43. package/dist/config/load.js +17 -5
  44. package/dist/config/load.js.map +1 -1
  45. package/dist/config/run-limits.d.ts +20 -8
  46. package/dist/config/run-limits.d.ts.map +1 -1
  47. package/dist/config/run-limits.js +28 -46
  48. package/dist/config/run-limits.js.map +1 -1
  49. package/dist/config/schema.d.ts +44 -19
  50. package/dist/config/schema.d.ts.map +1 -1
  51. package/dist/config/schema.js.map +1 -1
  52. package/dist/config/tool-result-screens.js +1 -1
  53. package/dist/context/directories.d.ts +37 -0
  54. package/dist/context/directories.d.ts.map +1 -0
  55. package/dist/context/directories.js +69 -0
  56. package/dist/context/directories.js.map +1 -0
  57. package/dist/context/environment.d.ts +55 -0
  58. package/dist/context/environment.d.ts.map +1 -1
  59. package/dist/context/environment.js +96 -0
  60. package/dist/context/environment.js.map +1 -1
  61. package/dist/context/project-tracker.d.ts +3 -3
  62. package/dist/context/project-tracker.d.ts.map +1 -1
  63. package/dist/context/project-tracker.js +3 -3
  64. package/dist/context/project-tracker.js.map +1 -1
  65. package/dist/context/project.d.ts +1 -1
  66. package/dist/context/project.js +1 -1
  67. package/dist/context/sandbox.d.ts +22 -3
  68. package/dist/context/sandbox.d.ts.map +1 -1
  69. package/dist/context/sandbox.js +42 -4
  70. package/dist/context/sandbox.js.map +1 -1
  71. package/dist/doctor/checks/chain.d.ts +1 -1
  72. package/dist/doctor/checks/chain.js +5 -5
  73. package/dist/doctor/checks/chain.js.map +1 -1
  74. package/dist/doctor/checks/invariants.d.ts +2 -2
  75. package/dist/doctor/checks/invariants.js +5 -5
  76. package/dist/doctor/checks/invariants.js.map +1 -1
  77. package/dist/doctor/checks/logging.js +1 -1
  78. package/dist/doctor/checks/logging.js.map +1 -1
  79. package/dist/doctor/checks/sandbox.js +1 -1
  80. package/dist/doctor/checks/sandbox.js.map +1 -1
  81. package/dist/doctor/checks/session-export.d.ts +1 -1
  82. package/dist/doctor/checks/session-export.js +2 -2
  83. package/dist/doctor/checks/session-export.js.map +1 -1
  84. package/dist/doctor/checks/telemetry.d.ts +1 -1
  85. package/dist/doctor/checks/telemetry.js +1 -1
  86. package/dist/doctor/registry.js +2 -2
  87. package/dist/doctor/registry.js.map +1 -1
  88. package/dist/exit-codes.d.ts +2 -2
  89. package/dist/exit-codes.js +2 -2
  90. package/dist/integrations/mcp/servers.d.ts +1 -1
  91. package/dist/integrations/providers/chain-capabilities.d.ts +6 -6
  92. package/dist/integrations/providers/chain-capabilities.js +8 -8
  93. package/dist/integrations/providers/chain-capabilities.js.map +1 -1
  94. package/dist/integrations/providers/index.d.ts +1 -1
  95. package/dist/integrations/providers/index.d.ts.map +1 -1
  96. package/dist/integrations/providers/index.js +1 -1
  97. package/dist/integrations/providers/index.js.map +1 -1
  98. package/dist/integrations/providers/register.d.ts +1 -1
  99. package/dist/integrations/providers/register.js +1 -1
  100. package/dist/integrations/providers/registry.d.ts +74 -1
  101. package/dist/integrations/providers/registry.d.ts.map +1 -1
  102. package/dist/integrations/providers/registry.js +75 -0
  103. package/dist/integrations/providers/registry.js.map +1 -1
  104. package/dist/integrations/resident/inspection.d.ts +4 -1
  105. package/dist/integrations/resident/inspection.d.ts.map +1 -1
  106. package/dist/integrations/resident/inspection.js +53 -34
  107. package/dist/integrations/resident/inspection.js.map +1 -1
  108. package/dist/integrations/resident/learning-storage.d.ts +7 -2
  109. package/dist/integrations/resident/learning-storage.d.ts.map +1 -1
  110. package/dist/integrations/resident/learning-storage.js +12 -8
  111. package/dist/integrations/resident/learning-storage.js.map +1 -1
  112. package/dist/integrations/resident/runner-store.d.ts +1 -1
  113. package/dist/integrations/resident/runner-store.d.ts.map +1 -1
  114. package/dist/integrations/resident/runner-store.js +5 -2
  115. package/dist/integrations/resident/runner-store.js.map +1 -1
  116. package/dist/integrations/resident/runner-worker.js +1 -0
  117. package/dist/integrations/resident/runner-worker.js.map +1 -1
  118. package/dist/integrations/resident/session-log-reads.d.ts +37 -0
  119. package/dist/integrations/resident/session-log-reads.d.ts.map +1 -0
  120. package/dist/integrations/resident/session-log-reads.js +125 -0
  121. package/dist/integrations/resident/session-log-reads.js.map +1 -0
  122. package/dist/integrations/resident/session-step.d.ts +2 -0
  123. package/dist/integrations/resident/session-step.d.ts.map +1 -1
  124. package/dist/integrations/resident/session-step.js +15 -13
  125. package/dist/integrations/resident/session-step.js.map +1 -1
  126. package/dist/integrations/resident/storage.d.ts +23 -1
  127. package/dist/integrations/resident/storage.d.ts.map +1 -1
  128. package/dist/integrations/resident/storage.js +60 -17
  129. package/dist/integrations/resident/storage.js.map +1 -1
  130. package/dist/integrations/resident/tool-evidence.d.ts +4 -2
  131. package/dist/integrations/resident/tool-evidence.d.ts.map +1 -1
  132. package/dist/integrations/resident/tool-evidence.js +36 -30
  133. package/dist/integrations/resident/tool-evidence.js.map +1 -1
  134. package/dist/integrations/resident/verification.d.ts +2 -2
  135. package/dist/integrations/resident/verification.d.ts.map +1 -1
  136. package/dist/integrations/resident/verification.js +4 -4
  137. package/dist/integrations/resident/verification.js.map +1 -1
  138. package/dist/integrations/sessions/checkpoint-view.d.ts +13 -0
  139. package/dist/integrations/sessions/checkpoint-view.d.ts.map +1 -0
  140. package/dist/integrations/sessions/checkpoint-view.js +48 -0
  141. package/dist/integrations/sessions/checkpoint-view.js.map +1 -0
  142. package/dist/integrations/sessions/context-inventory.js +1 -1
  143. package/dist/integrations/sessions/context-inventory.js.map +1 -1
  144. package/dist/integrations/sessions/conversation-search.d.ts +16 -20
  145. package/dist/integrations/sessions/conversation-search.d.ts.map +1 -1
  146. package/dist/integrations/sessions/conversation-search.js +305 -731
  147. package/dist/integrations/sessions/conversation-search.js.map +1 -1
  148. package/dist/integrations/sessions/evidence-page-validation.d.ts +4 -4
  149. package/dist/integrations/sessions/evidence-page-validation.d.ts.map +1 -1
  150. package/dist/integrations/sessions/evidence-page-validation.js +1 -1
  151. package/dist/integrations/sessions/evidence-page-validation.js.map +1 -1
  152. package/dist/integrations/sessions/evidence-recall.d.ts +40 -2
  153. package/dist/integrations/sessions/evidence-recall.d.ts.map +1 -1
  154. package/dist/integrations/sessions/evidence-recall.js +41 -97
  155. package/dist/integrations/sessions/evidence-recall.js.map +1 -1
  156. package/dist/integrations/sessions/store.d.ts +153 -85
  157. package/dist/integrations/sessions/store.d.ts.map +1 -1
  158. package/dist/integrations/sessions/store.js +414 -484
  159. package/dist/integrations/sessions/store.js.map +1 -1
  160. package/dist/integrations/sessions/task-context.d.ts +15 -2
  161. package/dist/integrations/sessions/task-context.d.ts.map +1 -1
  162. package/dist/integrations/sessions/task-context.js +34 -11
  163. package/dist/integrations/sessions/task-context.js.map +1 -1
  164. package/dist/integrations/sessions/transcript-export.d.ts +13 -6
  165. package/dist/integrations/sessions/transcript-export.d.ts.map +1 -1
  166. package/dist/integrations/sessions/transcript-export.js +148 -263
  167. package/dist/integrations/sessions/transcript-export.js.map +1 -1
  168. package/dist/integrations/state/home.d.ts +4 -16
  169. package/dist/integrations/state/home.d.ts.map +1 -1
  170. package/dist/integrations/state/home.js +6 -42
  171. package/dist/integrations/state/home.js.map +1 -1
  172. package/dist/integrations/state/project.d.ts +6 -7
  173. package/dist/integrations/state/project.d.ts.map +1 -1
  174. package/dist/integrations/state/project.js +7 -9
  175. package/dist/integrations/state/project.js.map +1 -1
  176. package/dist/integrations/state/report.d.ts +27 -41
  177. package/dist/integrations/state/report.d.ts.map +1 -1
  178. package/dist/integrations/state/report.js +172 -464
  179. package/dist/integrations/state/report.js.map +1 -1
  180. package/dist/integrations/state/retention.d.ts +18 -0
  181. package/dist/integrations/state/retention.d.ts.map +1 -0
  182. package/dist/integrations/state/retention.js +18 -0
  183. package/dist/integrations/state/retention.js.map +1 -0
  184. package/dist/integrations/subagents/activity.d.ts +36 -31
  185. package/dist/integrations/subagents/activity.d.ts.map +1 -1
  186. package/dist/integrations/subagents/activity.js +27 -23
  187. package/dist/integrations/subagents/activity.js.map +1 -1
  188. package/dist/integrations/subagents/batches.d.ts +91 -0
  189. package/dist/integrations/subagents/batches.d.ts.map +1 -0
  190. package/dist/integrations/subagents/batches.js +172 -0
  191. package/dist/integrations/subagents/batches.js.map +1 -0
  192. package/dist/integrations/subagents/parent.d.ts +26 -11
  193. package/dist/integrations/subagents/parent.d.ts.map +1 -1
  194. package/dist/integrations/subagents/parent.js +13 -28
  195. package/dist/integrations/subagents/parent.js.map +1 -1
  196. package/dist/integrations/subagents/policy.d.ts +2 -2
  197. package/dist/integrations/subagents/policy.d.ts.map +1 -1
  198. package/dist/integrations/subagents/policy.js +2 -2
  199. package/dist/integrations/subagents/policy.js.map +1 -1
  200. package/dist/integrations/subagents/replay.d.ts +91 -26
  201. package/dist/integrations/subagents/replay.d.ts.map +1 -1
  202. package/dist/integrations/subagents/replay.js +216 -114
  203. package/dist/integrations/subagents/replay.js.map +1 -1
  204. package/dist/integrations/subagents/runtime.d.ts +50 -26
  205. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  206. package/dist/integrations/subagents/runtime.js +132 -126
  207. package/dist/integrations/subagents/runtime.js.map +1 -1
  208. package/dist/integrations/subagents/saved-agents.d.ts +57 -0
  209. package/dist/integrations/subagents/saved-agents.d.ts.map +1 -0
  210. package/dist/integrations/subagents/saved-agents.js +102 -0
  211. package/dist/integrations/subagents/saved-agents.js.map +1 -0
  212. package/dist/integrations/subagents/slash.d.ts +55 -0
  213. package/dist/integrations/subagents/slash.d.ts.map +1 -0
  214. package/dist/integrations/subagents/slash.js +45 -0
  215. package/dist/integrations/subagents/slash.js.map +1 -0
  216. package/dist/integrations/telemetry/session-export.d.ts +6 -6
  217. package/dist/integrations/telemetry/session-export.d.ts.map +1 -1
  218. package/dist/integrations/telemetry/session-export.js +2 -2
  219. package/dist/memory/presentation.d.ts +11 -0
  220. package/dist/memory/presentation.d.ts.map +1 -1
  221. package/dist/memory/presentation.js +25 -0
  222. package/dist/memory/presentation.js.map +1 -1
  223. package/dist/memory/store.d.ts +13 -7
  224. package/dist/memory/store.d.ts.map +1 -1
  225. package/dist/memory/store.js +37 -11
  226. package/dist/memory/store.js.map +1 -1
  227. package/dist/memory/typed.d.ts +116 -0
  228. package/dist/memory/typed.d.ts.map +1 -0
  229. package/dist/memory/typed.js +336 -0
  230. package/dist/memory/typed.js.map +1 -0
  231. package/dist/permissions/checks.d.ts +1 -1
  232. package/dist/permissions/checks.js +1 -1
  233. package/dist/permissions/headless-trust.d.ts +2 -2
  234. package/dist/permissions/headless-trust.d.ts.map +1 -1
  235. package/dist/permissions/headless-trust.js +3 -3
  236. package/dist/permissions/headless-trust.js.map +1 -1
  237. package/dist/permissions/mode.d.ts +4 -4
  238. package/dist/permissions/mode.js +1 -1
  239. package/dist/permissions/rules.d.ts +1 -1
  240. package/dist/permissions/rules.js +1 -1
  241. package/dist/termination.d.ts +75 -0
  242. package/dist/termination.d.ts.map +1 -0
  243. package/dist/termination.js +143 -0
  244. package/dist/termination.js.map +1 -0
  245. package/dist/tui/AgentExplorer.d.ts +2 -2
  246. package/dist/tui/AgentExplorer.js +4 -4
  247. package/dist/tui/AgentExplorer.js.map +1 -1
  248. package/dist/tui/App.d.ts +9 -1
  249. package/dist/tui/App.d.ts.map +1 -1
  250. package/dist/tui/App.js +458 -304
  251. package/dist/tui/App.js.map +1 -1
  252. package/dist/tui/LiveActivity.d.ts +1 -1
  253. package/dist/tui/LiveActivity.d.ts.map +1 -1
  254. package/dist/tui/PermissionOverlay.d.ts +8 -0
  255. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  256. package/dist/tui/PermissionOverlay.js +25 -2
  257. package/dist/tui/PermissionOverlay.js.map +1 -1
  258. package/dist/tui/Picker.d.ts +14 -1
  259. package/dist/tui/Picker.d.ts.map +1 -1
  260. package/dist/tui/Picker.js +598 -132
  261. package/dist/tui/Picker.js.map +1 -1
  262. package/dist/tui/agent.d.ts +208 -132
  263. package/dist/tui/agent.d.ts.map +1 -1
  264. package/dist/tui/agent.js +523 -313
  265. package/dist/tui/agent.js.map +1 -1
  266. package/dist/tui/conversation-evidence-view.js +3 -3
  267. package/dist/tui/conversation-evidence-view.js.map +1 -1
  268. package/dist/tui/conversation-history.d.ts +4 -21
  269. package/dist/tui/conversation-history.d.ts.map +1 -1
  270. package/dist/tui/conversation-history.js +4 -28
  271. package/dist/tui/conversation-history.js.map +1 -1
  272. package/dist/tui/index.d.ts.map +1 -1
  273. package/dist/tui/index.js +27 -1
  274. package/dist/tui/index.js.map +1 -1
  275. package/dist/tui/log-pane.js +1 -1
  276. package/dist/tui/markdownParser.d.ts +1 -1
  277. package/dist/tui/markdownParser.js +1 -1
  278. package/dist/tui/model-choices.d.ts.map +1 -1
  279. package/dist/tui/model-choices.js +20 -1
  280. package/dist/tui/model-choices.js.map +1 -1
  281. package/dist/tui/permission-review.d.ts +16 -0
  282. package/dist/tui/permission-review.d.ts.map +1 -1
  283. package/dist/tui/permission-review.js +25 -2
  284. package/dist/tui/permission-review.js.map +1 -1
  285. package/dist/tui/provider-list.d.ts +206 -41
  286. package/dist/tui/provider-list.d.ts.map +1 -1
  287. package/dist/tui/provider-list.js +248 -52
  288. package/dist/tui/provider-list.js.map +1 -1
  289. package/dist/tui/slashCommands.d.ts +29 -40
  290. package/dist/tui/slashCommands.d.ts.map +1 -1
  291. package/dist/tui/slashCommands.js +70 -61
  292. package/dist/tui/slashCommands.js.map +1 -1
  293. package/dist/tui/terminal-choice-text.d.ts +22 -0
  294. package/dist/tui/terminal-choice-text.d.ts.map +1 -1
  295. package/dist/tui/terminal-choice-text.js +81 -0
  296. package/dist/tui/terminal-choice-text.js.map +1 -1
  297. package/dist/tui/{run-interruption.d.ts → turn-interruption.d.ts} +4 -4
  298. package/dist/tui/turn-interruption.d.ts.map +1 -0
  299. package/dist/tui/{run-interruption.js → turn-interruption.js} +20 -20
  300. package/dist/tui/turn-interruption.js.map +1 -0
  301. package/dist/tui/turn-limits-settings.d.ts +39 -0
  302. package/dist/tui/turn-limits-settings.d.ts.map +1 -0
  303. package/dist/tui/{run-limits-settings.js → turn-limits-settings.js} +18 -18
  304. package/dist/tui/turn-limits-settings.js.map +1 -0
  305. package/dist/tui/types.d.ts +3 -3
  306. package/dist/tui/types.d.ts.map +1 -1
  307. package/dist/user-commands/store.d.ts +1 -1
  308. package/dist/user-commands/store.js +1 -1
  309. package/package.json +8 -8
  310. package/dist/integrations/sessions/compaction-evidence.d.ts +0 -5
  311. package/dist/integrations/sessions/compaction-evidence.d.ts.map +0 -1
  312. package/dist/integrations/sessions/compaction-evidence.js +0 -59
  313. package/dist/integrations/sessions/compaction-evidence.js.map +0 -1
  314. package/dist/integrations/sessions/database.d.ts +0 -5
  315. package/dist/integrations/sessions/database.d.ts.map +0 -1
  316. package/dist/integrations/sessions/database.js +0 -34
  317. package/dist/integrations/sessions/database.js.map +0 -1
  318. package/dist/integrations/sessions/paths.d.ts +0 -7
  319. package/dist/integrations/sessions/paths.d.ts.map +0 -1
  320. package/dist/integrations/sessions/paths.js +0 -14
  321. package/dist/integrations/sessions/paths.js.map +0 -1
  322. package/dist/integrations/sessions/run-discovery.d.ts +0 -24
  323. package/dist/integrations/sessions/run-discovery.d.ts.map +0 -1
  324. package/dist/integrations/sessions/run-discovery.js +0 -142
  325. package/dist/integrations/sessions/run-discovery.js.map +0 -1
  326. package/dist/integrations/sessions/turn-evidence.d.ts +0 -129
  327. package/dist/integrations/sessions/turn-evidence.d.ts.map +0 -1
  328. package/dist/integrations/sessions/turn-evidence.js +0 -517
  329. package/dist/integrations/sessions/turn-evidence.js.map +0 -1
  330. package/dist/integrations/subagents/history.d.ts +0 -26
  331. package/dist/integrations/subagents/history.d.ts.map +0 -1
  332. package/dist/integrations/subagents/history.js +0 -76
  333. package/dist/integrations/subagents/history.js.map +0 -1
  334. package/dist/integrations/subagents/runs.d.ts +0 -72
  335. package/dist/integrations/subagents/runs.d.ts.map +0 -1
  336. package/dist/integrations/subagents/runs.js +0 -155
  337. package/dist/integrations/subagents/runs.js.map +0 -1
  338. package/dist/tui/run-interruption.d.ts.map +0 -1
  339. package/dist/tui/run-interruption.js.map +0 -1
  340. package/dist/tui/run-limits-settings.d.ts +0 -39
  341. package/dist/tui/run-limits-settings.d.ts.map +0 -1
  342. package/dist/tui/run-limits-settings.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tool-evidence.d.ts","sourceRoot":"","sources":["../../../src/integrations/resident/tool-evidence.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,KAAK,qBAAqB,EAM1B,MAAM,YAAY,CAAA;AAEnB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AA0BvD,wBAAsB,0BAA0B,CAC/C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAiClB;AAED,2FAA2F;AAC3F,wBAAgB,oBAAoB,CACnC,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,MAAM,mDA4DrB"}
1
+ {"version":3,"file":"tool-evidence.d.ts","sourceRoot":"","sources":["../../../src/integrations/resident/tool-evidence.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,KAAK,qBAAqB,EAO1B,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAOvD,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE9D;AAwBD,wBAAsB,0BAA0B,CAC/C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAiClB;AAED,2FAA2F;AAC3F,wBAAgB,oBAAoB,CACnC,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC,EAC9D,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,mDA8DrB"}
@@ -1,24 +1,29 @@
1
1
  import { constants } from 'node:fs';
2
2
  import { lstat, open } from 'node:fs/promises';
3
3
  import { join, relative, resolve, sep } from 'node:path';
4
- import { asRunId, asSessionId, createDiskRunEvidenceSource, createResidentToolEvidenceSource, isEntityId, } from '@namzu/sdk';
5
- import { CliPathBuilder } from '../sessions/paths.js';
4
+ import { SessionPaths, asSessionId, asTurnId, createResidentToolEvidenceSource, createSessionEvidenceSource, isEntityId, } from '@namzu/sdk';
5
+ import { SESSION_HEAD_BYTES, readSessionStart } from './session-log-reads.js';
6
6
  const ATTEMPT_DOCUMENT_BYTES = 65_536;
7
+ const UUID = /^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/iu;
8
+ /** Pursuit and claim ids are UUIDs the resident agenda minted; they name no kernel entity. */
9
+ export function isResidentUuid(value) {
10
+ return typeof value === 'string' && UUID.test(value);
11
+ }
7
12
  function identity(value) {
8
13
  if (!value || typeof value !== 'object')
9
14
  throw new Error('Invalid attempt receipt.');
10
15
  const v = value;
11
16
  if (v.version !== 1 ||
12
- !isEntityId(v.pursuitId, 'run') ||
13
- !isEntityId(v.claimId, 'run') ||
14
- typeof v.sessionId !== 'string' ||
15
- typeof v.runId !== 'string')
17
+ !isResidentUuid(v.pursuitId) ||
18
+ !isResidentUuid(v.claimId) ||
19
+ !isEntityId(v.sessionId, 'session') ||
20
+ !isEntityId(v.turnId, 'turn'))
16
21
  throw new Error('Invalid attempt identity.');
17
22
  return {
18
23
  pursuitId: v.pursuitId,
19
24
  claimId: v.claimId,
20
25
  sessionId: asSessionId(v.sessionId),
21
- runId: asRunId(v.runId),
26
+ turnId: asTurnId(v.turnId),
22
27
  startedAt: v.startedAt,
23
28
  finishedAt: v.finishedAt,
24
29
  cleanup: v.cleanup,
@@ -60,21 +65,22 @@ export async function readResidentAttemptReceipt(root, path, signal) {
60
65
  await file.close();
61
66
  }
62
67
  }
63
- /** CLI supplies attempt/Session authorization; SDK owns bounded retrieval and indexing. */
64
- export function residentToolEvidence(history, sessions, artifactsRoot) {
68
+ /** CLI supplies attempt/session authorization; SDK owns bounded retrieval and indexing. */
69
+ export function residentToolEvidence(history, sessions, projectSlug, artifactsRoot) {
65
70
  const root = resolve(artifactsRoot);
66
- const paths = new CliPathBuilder(sessions.root);
71
+ const paths = new SessionPaths({ home: sessions.root, slug: projectSlug });
67
72
  if (history.scope.tenantId !== sessions.tenantId)
68
73
  throw new Error('Resident history tenant mismatch.');
69
74
  return createResidentToolEvidenceSource({
70
75
  history,
71
76
  projectId: sessions.projectId,
72
- // Start and finish documents are size-checked before reading. Reserve
73
- // their upper bound, not a fabricated measurement of database/stat I/O.
74
- resolutionReadBytes: 2 * ATTEMPT_DOCUMENT_BYTES,
75
- async resolveRun(settled, signal) {
77
+ // Start and finish documents are size-checked before reading, and the
78
+ // log's first record is read to attribute it. Reserve their upper bound,
79
+ // not a fabricated measurement of stat I/O.
80
+ resolutionReadBytes: 2 * ATTEMPT_DOCUMENT_BYTES + SESSION_HEAD_BYTES,
81
+ async resolveTurn(settled, signal) {
76
82
  const claimId = settled.claimId;
77
- if (!isEntityId(claimId, 'run'))
83
+ if (!isResidentUuid(claimId))
78
84
  throw new Error('Invalid claim id.');
79
85
  const start = identity(await readResidentAttemptReceipt(root, join(root, claimId, 'start.json'), signal));
80
86
  const finish = identity(await readResidentAttemptReceipt(root, join(root, claimId, 'finish.json'), signal));
@@ -82,7 +88,7 @@ export function residentToolEvidence(history, sessions, artifactsRoot) {
82
88
  if (record.claimId !== claimId ||
83
89
  record.pursuitId !== history.scope.pursuitId ||
84
90
  record.sessionId !== start.sessionId ||
85
- record.runId !== start.runId)
91
+ record.turnId !== start.turnId)
86
92
  throw new Error('Attempt identity does not match its settled claim.');
87
93
  if (finish.cleanup !== 'confirmed' ||
88
94
  typeof start.startedAt !== 'number' ||
@@ -91,25 +97,25 @@ export function residentToolEvidence(history, sessions, artifactsRoot) {
91
97
  !Number.isFinite(finish.finishedAt) ||
92
98
  finish.finishedAt < start.startedAt)
93
99
  throw new Error('Invalid attempt receipt order.');
94
- const sessionId = asSessionId(start.sessionId);
95
- // Resident invocations persist their own Run ledger, without creating a
96
- // resumable conversation row. An existing row must agree; the SDK always
97
- // requires the explicit tenant/project/Session/run scope in run.json.
98
- const session = await sessions.store.getSession(sessionId, sessions.tenantId);
99
- if (session && session.projectId !== sessions.projectId)
100
- throw new Error('Attempt Session belongs to a different project.');
100
+ // A resident step is its own root session. Its log names the project
101
+ // and tenant it was opened under, and both must be this resident's.
102
+ const logPath = paths.sessionLog({ sessionId: start.sessionId });
103
+ const opened = await readSessionStart(sessions.root, logPath, signal);
104
+ if (!opened)
105
+ throw new Error('Attempt session log is missing.');
106
+ if (opened.sessionId !== start.sessionId ||
107
+ opened.projectId !== sessions.projectId ||
108
+ (opened.tenantId !== undefined && opened.tenantId !== sessions.tenantId))
109
+ throw new Error('Attempt session belongs to a different project.');
101
110
  signal?.throwIfAborted();
102
- const runDir = join(paths.sessionDir(sessions.projectId, sessionId), 'runs', start.runId);
103
- const indexDir = join(runDir, 'evidence-index');
104
- return createDiskRunEvidenceSource({
111
+ return createSessionEvidenceSource({
105
112
  scope: {
106
113
  tenantId: sessions.tenantId,
107
114
  projectId: sessions.projectId,
108
- sessionId,
109
- runId: start.runId,
115
+ sessionId: start.sessionId,
116
+ turnId: start.turnId,
110
117
  },
111
- runDir,
112
- indexDir,
118
+ logPath,
113
119
  });
114
120
  },
115
121
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tool-evidence.js","sourceRoot":"","sources":["../../../src/integrations/resident/tool-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,EAEN,OAAO,EACP,WAAW,EACX,2BAA2B,EAC3B,gCAAgC,EAChC,UAAU,GACV,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,MAAM,sBAAsB,GAAG,MAAM,CAAA;AAErC,SAAS,QAAQ,CAAC,KAAc;IAC/B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IACpF,MAAM,CAAC,GAAG,KAAgC,CAAA;IAC1C,IACC,CAAC,CAAC,OAAO,KAAK,CAAC;QACf,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC;QAC/B,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC;QAC7B,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;QAC/B,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;QAE3B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC7C,OAAO;QACN,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QACnC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QACvB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,OAAO,EAAE,CAAC,CAAC,OAAO;KAClB,CAAA;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC/C,IAAY,EACZ,IAAY,EACZ,MAAoB;IAEpB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACnC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC9F,IAAI,OAAO,GAAG,IAAI,CAAA;IAClB,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC/C,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAC7B,IAAI,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAC9F,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;IAC/F,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAChC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,GAAG,sBAAsB;YAC3D,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,EAAE,cAAc,EAAE,CAAA;YACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAA;YAC1E,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;YAClE,MAAM,IAAI,IAAI,CAAC,SAAS,CAAA;QACzB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAC/B,IACC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YAC1B,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;YAChC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;YAEhC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1E,CAAC;YAAS,CAAC;QACV,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;IACnB,CAAC;AACF,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,oBAAoB,CACnC,OAA8B,EAC9B,QAAqB,EACrB,aAAqB;IAErB,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACnC,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC/C,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;QAC/C,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACrD,OAAO,gCAAgC,CAAC;QACvC,OAAO;QACP,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,sEAAsE;QACtE,wEAAwE;QACxE,mBAAmB,EAAE,CAAC,GAAG,sBAAsB;QAC/C,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM;YAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;YAC/B,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;YACrE,MAAM,KAAK,GAAG,QAAQ,CACrB,MAAM,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,CACjF,CAAA;YACD,MAAM,MAAM,GAAG,QAAQ,CACtB,MAAM,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAClF,CAAA;YACD,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;gBACnC,IACC,MAAM,CAAC,OAAO,KAAK,OAAO;oBAC1B,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,KAAK,CAAC,SAAS;oBAC5C,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;oBACpC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;oBAE5B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;YACvE,IACC,MAAM,CAAC,OAAO,KAAK,WAAW;gBAC9B,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;gBACnC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;gBACjC,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;gBACrC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;gBACnC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS;gBAEnC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;YAClD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YAC9C,wEAAwE;YACxE,yEAAyE;YACzE,sEAAsE;YACtE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC7E,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;gBACtD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;YACnE,MAAM,EAAE,cAAc,EAAE,CAAA;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;YACzF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;YAC/C,OAAO,2BAA2B,CAAC;gBAClC,KAAK,EAAE;oBACN,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,SAAS;oBACT,KAAK,EAAE,KAAK,CAAC,KAAK;iBAClB;gBACD,MAAM;gBACN,QAAQ;aACR,CAAC,CAAA;QACH,CAAC;KACD,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"tool-evidence.js","sourceRoot":"","sources":["../../../src/integrations/resident/tool-evidence.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type JsonClaimRequirement, type RunId } from '@namzu/sdk';
1
+ import { type JsonClaimRequirement, type TurnId } from '@namzu/sdk';
2
2
  export interface ResidentVerificationSpec {
3
3
  readonly version: 1;
4
4
  readonly claims: readonly JsonClaimRequirement[];
@@ -6,6 +6,6 @@ export interface ResidentVerificationSpec {
6
6
  /** Snapshot the explicitly selected manifest once; edits cannot expand a running worker's authority. */
7
7
  export declare function loadResidentVerification(path: string, cwd: string): Promise<ResidentVerificationSpec>;
8
8
  /** Explicit host reads, like --gate: no additional authority is granted to model tools. */
9
- export declare function residentClaimVerifier(spec: ResidentVerificationSpec, cwd: string, scope: string, runId: RunId): import("@namzu/sdk").JsonClaimVerifier;
9
+ export declare function residentClaimVerifier(spec: ResidentVerificationSpec, cwd: string, scope: string, turnId: TurnId): import("@namzu/sdk").JsonClaimVerifier;
10
10
  export declare function verificationInstructions(spec: ResidentVerificationSpec): string;
11
11
  //# sourceMappingURL=verification.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../../src/integrations/resident/verification.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,KAAK,oBAAoB,EACzB,KAAK,KAAK,EAGV,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAA;CAChD;AAsFD,wGAAwG;AACxG,wBAAsB,wBAAwB,CAC7C,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACT,OAAO,CAAC,wBAAwB,CAAC,CAQnC;AAED,2FAA2F;AAC3F,wBAAgB,qBAAqB,CACpC,IAAI,EAAE,wBAAwB,EAC9B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,0CAoBZ;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM,CAO/E"}
1
+ {"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../../src/integrations/resident/verification.ts"],"names":[],"mappings":"AAGA,OAAO,EAEN,KAAK,oBAAoB,EACzB,KAAK,MAAM,EAGX,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAA;CAChD;AAsFD,wGAAwG;AACxG,wBAAsB,wBAAwB,CAC7C,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACT,OAAO,CAAC,wBAAwB,CAAC,CAQnC;AAED,2FAA2F;AAC3F,wBAAgB,qBAAqB,CACpC,IAAI,EAAE,wBAAwB,EAC9B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,0CAoBd;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM,CAO/E"}
@@ -1,7 +1,7 @@
1
1
  import { constants } from 'node:fs';
2
2
  import { open, realpath, stat } from 'node:fs/promises';
3
3
  import { isAbsolute, relative, resolve } from 'node:path';
4
- import { createJsonClaimVerifier, generateRunId, } from '@namzu/sdk';
4
+ import { createJsonClaimVerifier, generateTurnId, } from '@namzu/sdk';
5
5
  /** Bounded regular-file observation; checks changes during the read, never runs commands. */
6
6
  async function readDocument(path, maxBytes, signal) {
7
7
  signal?.throwIfAborted();
@@ -63,7 +63,7 @@ function validateSpec(value) {
63
63
  // Validate the shared pointer/value/size contract before admitting a model.
64
64
  createJsonClaimVerifier({
65
65
  scope: 'configuration',
66
- runId: generateRunId(),
66
+ turnId: generateTurnId(),
67
67
  requirements: spec.claims,
68
68
  observe: async () => {
69
69
  throw new Error('Configuration validation never observes sources.');
@@ -76,11 +76,11 @@ export async function loadResidentVerification(path, cwd) {
76
76
  return validateSpec(JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(await readDocument(resolve(cwd, path), 65_536))));
77
77
  }
78
78
  /** Explicit host reads, like --gate: no additional authority is granted to model tools. */
79
- export function residentClaimVerifier(spec, cwd, scope, runId) {
79
+ export function residentClaimVerifier(spec, cwd, scope, turnId) {
80
80
  const snapshot = validateSpec(spec);
81
81
  const verifier = createJsonClaimVerifier({
82
82
  scope,
83
- runId,
83
+ turnId,
84
84
  requirements: snapshot.claims,
85
85
  observe: async (source, request) => {
86
86
  request.signal.throwIfAborted();
@@ -1 +1 @@
1
- {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../src/integrations/resident/verification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzD,OAAO,EAGN,uBAAuB,EACvB,aAAa,GACb,MAAM,YAAY,CAAA;AAOnB,6FAA6F;AAC7F,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,QAAgB,EAAE,MAAoB;IAC/E,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CACtB,IAAI,EACJ,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,UAAU,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,CACvE,CAAA;IACD,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAChC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ;YAC9C,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;QACjE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;QAC5C,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,OAAO,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,EAAE,cAAc,EAAE,CAAA;YACxB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,CAAA;YACnF,IAAI,CAAC,SAAS;gBAAE,MAAK;YACrB,MAAM,IAAI,SAAS,CAAA;QACpB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9B,MAAM,EAAE,cAAc,EAAE,CAAA;QACxB,IACC,MAAM,KAAK,MAAM,CAAC,IAAI;YACtB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAClB,CAAC,KAAK,EAAE,EAAE,CACT,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG;gBACxB,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG;gBACxB,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;gBAC1B,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;gBAChC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CACjC;YAED,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;QACnE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAClC,CAAC;YAAS,CAAC;QACV,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;IACnB,CAAC;AACF,CAAC;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,IAAY;IACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAChC,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AAC7F,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IACnC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACvD,MAAM,GAAG,GAAG,KAAgC,CAAA;IAC5C,IACC,GAAG,CAAC,OAAO,KAAK,CAAC;QACjB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEpE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACxE,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAChC,IACC,CAAC,KAAK;YACN,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACxF,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;YAChC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;YACxB,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC;YACtF,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAEpC,MAAM,IAAI,KAAK,CACd,+EAA+E,CAC/E,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAA6B,CAAA;IAC/D,4EAA4E;IAC5E,uBAAuB,CAAC;QACvB,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,aAAa,EAAE;QACtB,YAAY,EAAE,IAAI,CAAC,MAAM;QACzB,OAAO,EAAE,KAAK,IAAI,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;QACpE,CAAC;KACD,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,wGAAwG;AACxG,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC7C,IAAY,EACZ,GAAW;IAEX,OAAO,YAAY,CAClB,IAAI,CAAC,KAAK,CACT,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAC/C,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAC9C,CACD,CACD,CAAA;AACF,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,qBAAqB,CACpC,IAA8B,EAC9B,GAAW,EACX,KAAa,EACb,KAAY;IAEZ,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,QAAQ,GAAG,uBAAuB,CAAC;QACxC,KAAK;QACL,KAAK;QACL,YAAY,EAAE,QAAQ,CAAC,MAAM;QAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;YAClC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAA;YAC/B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAA;YAChC,IAAI,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;YACtF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;YACjD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;YACtF,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YACxE,IAAI,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;gBAClD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;YAC9C,OAAO,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;QAC9F,CAAC;KACD,CAAC,CAAA;IACF,OAAO,QAAQ,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAA8B;IACtE,OAAO;QACN,mHAAmH;QACnH,+GAA+G;QAC/G,gGAAgG;QAChG,sGAAsG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;KACnI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../src/integrations/resident/verification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { CheckpointLogView, SessionLog } from '@namzu/sdk';
2
+ /**
3
+ * What a checkpoint store asks of the session log it protects, answered by
4
+ * reading that log strictly.
5
+ *
6
+ * The disk checkpoint store verifies a checkpoint against the log before a
7
+ * restore (the record at `throughSeq` still hashes the same, and the document
8
+ * hashes to its `checkpoint_written.docSha256`) and never prunes one an open
9
+ * decision names. A resume in this process builds the store over the same log
10
+ * the turn appends to.
11
+ */
12
+ export declare function sessionLogCheckpointView(log: Pick<SessionLog, 'read' | 'sessionId'>): CheckpointLogView;
13
+ //# sourceMappingURL=checkpoint-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint-view.d.ts","sourceRoot":"","sources":["../../../src/integrations/sessions/checkpoint-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,iBAAiB,EAAmB,UAAU,EAAE,MAAM,YAAY,CAAA;AAE9F;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACvC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC,GACzC,iBAAiB,CA+BnB"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * What a checkpoint store asks of the session log it protects, answered by
3
+ * reading that log strictly.
4
+ *
5
+ * The disk checkpoint store verifies a checkpoint against the log before a
6
+ * restore (the record at `throughSeq` still hashes the same, and the document
7
+ * hashes to its `checkpoint_written.docSha256`) and never prunes one an open
8
+ * decision names. A resume in this process builds the store over the same log
9
+ * the turn appends to.
10
+ */
11
+ export function sessionLogCheckpointView(log) {
12
+ const owns = (scope) => scope.sessionId === log.sessionId;
13
+ return {
14
+ async verifyThrough(scope, throughSeq, throughSha256) {
15
+ if (!owns(scope))
16
+ return false;
17
+ for await (const { pointer } of log.read({ mode: 'strict', throughSeq })) {
18
+ if (pointer.seq === throughSeq)
19
+ return pointer.sha256 === throughSha256;
20
+ }
21
+ return false;
22
+ },
23
+ async writtenDocSha256(scope, checkpointId) {
24
+ if (!owns(scope))
25
+ return null;
26
+ let found = null;
27
+ for await (const { record } of log.read({ mode: 'strict' })) {
28
+ if (record.type === 'checkpoint_written' && record.checkpointId === checkpointId) {
29
+ found = record.docSha256;
30
+ }
31
+ }
32
+ return found;
33
+ },
34
+ async openDecisionCheckpoints(scope) {
35
+ const open = new Map();
36
+ if (!owns(scope))
37
+ return [];
38
+ for await (const { record } of log.read({ mode: 'strict' })) {
39
+ if (record.type === 'decision_requested')
40
+ open.set(record.decisionId, record.checkpointId);
41
+ else if (record.type === 'decision_resolved' || record.type === 'decision_expired')
42
+ open.delete(record.decisionId);
43
+ }
44
+ return [...open.values()];
45
+ },
46
+ };
47
+ }
48
+ //# sourceMappingURL=checkpoint-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint-view.js","sourceRoot":"","sources":["../../../src/integrations/sessions/checkpoint-view.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CACvC,GAA2C;IAE3C,MAAM,IAAI,GAAG,CAAC,KAAsB,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,CAAA;IAC1E,OAAO;QACN,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa;YACnD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YAC9B,IAAI,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;gBAC1E,IAAI,OAAO,CAAC,GAAG,KAAK,UAAU;oBAAE,OAAO,OAAO,CAAC,MAAM,KAAK,aAAa,CAAA;YACxE,CAAC;YACD,OAAO,KAAK,CAAA;QACb,CAAC;QACD,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY;YACzC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;YAC7B,IAAI,KAAK,GAAkB,IAAI,CAAA;YAC/B,IAAI,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;gBAC7D,IAAI,MAAM,CAAC,IAAI,KAAK,oBAAoB,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,EAAE,CAAC;oBAClF,KAAK,GAAG,MAAM,CAAC,SAAS,CAAA;gBACzB,CAAC;YACF,CAAC;YACD,OAAO,KAAK,CAAA;QACb,CAAC;QACD,KAAK,CAAC,uBAAuB,CAAC,KAAK;YAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAwB,CAAA;YAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAA;YAC3B,IAAI,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;gBAC7D,IAAI,MAAM,CAAC,IAAI,KAAK,oBAAoB;oBAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;qBACrF,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB;oBACjF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAChC,CAAC;YACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAC1B,CAAC;KACD,CAAA;AACF,CAAC"}
@@ -36,7 +36,7 @@ export function createContextInventoryStep() {
36
36
  estimatedRemainingTokens: contextBudget?.remainingTokens,
37
37
  largestToolBlocks: blocks.sort((a, b) => b.chars - a.chars).slice(0, 6),
38
38
  };
39
- const text = 'Context inventory (current request only). Positions are temporary, not archive IDs. Sizes are UTF-16 text characters; non-text payloads are counted, not estimated as base64 text tokens. For earlier evidence use search_conversation, then read_conversation(runId, seq, part) for exact retained pages. Do not repeat a state-changing action to recover its output.\n' +
39
+ const text = 'Context inventory (current request only). Positions are temporary, not archive IDs. Sizes are UTF-16 text characters; non-text payloads are counted, not estimated as base64 text tokens. For earlier evidence use search_conversation, then read_conversation(seq, part) for exact retained pages. Do not repeat a state-changing action to recover its output.\n' +
40
40
  JSON.stringify(inventory);
41
41
  return { context: [prepared.context, text].filter(Boolean).join('\n\n') };
42
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"context-inventory.js","sourceRoot":"","sources":["../../../src/integrations/sessions/context-inventory.ts"],"names":[],"mappings":"AAEA,2FAA2F;AAC3F,MAAM,UAAU,0BAA0B;IACzC,OAAO,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QACxD,MAAM,EAAE,cAAc,EAAE,CAAA;QACxB,MAAM,MAAM,GAA2E,EAAE,CAAA;QACzF,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAQ;YACrC,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,IAAI,MAAM,GAAG,CAAC,CAAA;YACd,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;gBAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;iBAClE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;gBACtC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACrC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;wBAAE,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAA;;wBAChD,MAAM,EAAE,CAAA;gBACd,CAAC;YACF,UAAU,IAAI,KAAK,CAAA;YACnB,UAAU,IAAI,MAAM,CAAA;YACpB,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAA;QAC1E,CAAC;QACD,MAAM,QAAQ,GAAG,aAAa,IAAI,aAAa,CAAC,eAAe,GAAG,aAAa,CAAC,YAAY,GAAG,CAAC,CAAA;QAChG,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAA;QACtD,gFAAgF;QAChF,IAAI,aAAa,IAAI,aAAa,CAAC,eAAe,GAAG,KAAK;YAAE,OAAO,SAAS,CAAA;QAC5E,MAAM,SAAS,GAAG;YACjB,eAAe,EAAE,QAAQ,CAAC,MAAM;YAChC,oBAAoB,EAAE,UAAU;YAChC,oBAAoB,EAAE,UAAU;YAChC,wBAAwB,EAAE,aAAa,EAAE,eAAe;YACxD,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACvE,CAAA;QACD,MAAM,IAAI,GACT,2WAA2W;YAC3W,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC1B,OAAO,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;IAC1E,CAAC,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"context-inventory.js","sourceRoot":"","sources":["../../../src/integrations/sessions/context-inventory.ts"],"names":[],"mappings":"AAEA,2FAA2F;AAC3F,MAAM,UAAU,0BAA0B;IACzC,OAAO,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QACxD,MAAM,EAAE,cAAc,EAAE,CAAA;QACxB,MAAM,MAAM,GAA2E,EAAE,CAAA;QACzF,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAQ;YACrC,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,IAAI,MAAM,GAAG,CAAC,CAAA;YACd,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;gBAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;iBAClE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;gBACtC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACrC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;wBAAE,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAA;;wBAChD,MAAM,EAAE,CAAA;gBACd,CAAC;YACF,UAAU,IAAI,KAAK,CAAA;YACnB,UAAU,IAAI,MAAM,CAAA;YACpB,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAA;QAC1E,CAAC;QACD,MAAM,QAAQ,GAAG,aAAa,IAAI,aAAa,CAAC,eAAe,GAAG,aAAa,CAAC,YAAY,GAAG,CAAC,CAAA;QAChG,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAA;QACtD,gFAAgF;QAChF,IAAI,aAAa,IAAI,aAAa,CAAC,eAAe,GAAG,KAAK;YAAE,OAAO,SAAS,CAAA;QAC5E,MAAM,SAAS,GAAG;YACjB,eAAe,EAAE,QAAQ,CAAC,MAAM;YAChC,oBAAoB,EAAE,UAAU;YAChC,oBAAoB,EAAE,UAAU;YAChC,wBAAwB,EAAE,aAAa,EAAE,eAAe;YACxD,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACvE,CAAA;QACD,MAAM,IAAI,GACT,oWAAoW;YACpW,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC1B,OAAO,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;IAC1E,CAAC,CAAA;AACF,CAAC"}
@@ -1,26 +1,27 @@
1
1
  import { type EvidenceRecordKind, type SessionId, type ToolContext, type ToolDefinition } from '@namzu/sdk';
2
- import type { ConversationContext } from './store.js';
2
+ import { type ConversationContext } from './store.js';
3
3
  /** Successful archive retrievals quote earlier records; they are not new observations. */
4
4
  export declare const CONVERSATION_RETRIEVAL_TOOLS: readonly ["read_conversation", "search_conversation"];
5
5
  /** Stable capability guidance; include only when this host mounts both tools. */
6
- export declare const CONVERSATION_EVIDENCE_GUIDANCE = "## Conversation evidence\nWhen a question asks about an earlier observation, use the evidence already in context. If the detail is missing or clipped, use search_conversation to locate the original recorded output, then read_conversation for exact text beyond an excerpt. Pass a supplied recall continuation's cursor to search_conversation to continue from the scan's existing position. This works before compaction as well as after compaction or restart, within this conversation only. New searches omit successful search_conversation/read_conversation outputs, which repeat earlier records. To inspect those outputs themselves, start a new search with includeRetrievalResults=true. excerptComplete=true means the entire full-retained text part is already shown: reading the same unchanged part adds no text or independent evidence. False or absent means partial or unknown. This does not establish the truth of a prior claim or exhaust the conversation.\nA path following \"The full output was written to:\" identifies an internal backing file, not a workspace file. Recover its contents through search_conversation and read_conversation, which verify ownership and retained-byte integrity. Do not use bash, read or grep to bypass a workspace-path refusal when recovering archived output.\nrecordedAt is the event recorder\u2019s wall-clock time in Unix milliseconds, not the time its text became true. For compaction_shed it dates the copy, not the original observation. compaction_shed:summary identifies derived summary text, not an independent observation. Missing stamps stay unknown; clocks can move backwards or differ. Event seq orders one run only; UUIDs, file order and mtime do not establish cross-run chronology.\nFor what a file contained earlier, recover its earlier observation; reading or searching the current file cannot establish its past contents. For what is true now, inspect the current source when freshness matters. Do not substitute one time for the other. Report unavailable historical evidence honestly and never repeat a state-changing action to recover its output.";
6
+ export declare const CONVERSATION_EVIDENCE_GUIDANCE = "## Conversation evidence\nWhen a question asks about an earlier observation, use the evidence already in context. If the detail is missing or clipped, use search_conversation to locate the original recorded output, then read_conversation for exact text beyond an excerpt. Pass a supplied recall continuation's cursor to search_conversation to continue from the scan's existing position. This works before compaction as well as after compaction or restart, within this conversation only. New searches omit successful search_conversation/read_conversation outputs, which repeat earlier records. To inspect those outputs themselves, start a new search with includeRetrievalResults=true. excerptComplete=true means the entire full-retained text part is already shown: reading the same unchanged part adds no text or independent evidence. False or absent means partial or unknown. This does not establish the truth of a prior claim or exhaust the conversation.\nA path following \"The full output was written to:\" identifies an internal backing file, not a workspace file. Recover its contents through search_conversation and read_conversation, which verify ownership and retained-byte integrity. Do not use bash, read or grep to bypass a workspace-path refusal when recovering archived output.\nrecordedAt is the event recorder\u2019s wall-clock time in Unix milliseconds, not the time its text became true. For compaction_shed it dates the copy, not the original observation. compaction_shed:summary identifies derived summary text, not an independent observation. Missing stamps stay unknown; clocks can move backwards or differ. seq orders the records of this conversation's log; it is not a clock.\nFor what a file contained earlier, recover its earlier observation; reading or searching the current file cannot establish its past contents. For what is true now, inspect the current source when freshness matters. Do not substitute one time for the other. Report unavailable historical evidence honestly and never repeat a state-changing action to recover its output.";
7
+ /** The part of a tool call's context that can hand over the live turn's evidence. */
8
+ export type ActiveEvidence = Pick<ToolContext, 'sessionId' | 'turnId' | 'captureSessionEvidence'>;
7
9
  interface EvidenceMatch {
8
10
  /** Stored event wall-clock Unix milliseconds; not original fact time. */
9
11
  recordedAt?: number;
10
- runId: string;
11
12
  seq: number;
12
13
  source: string;
13
14
  /** Producer classification only, not a truth or successful-action verdict. */
14
15
  recordKind: EvidenceRecordKind;
15
16
  text: string;
16
- /** Zero-based textual part within this event (not a character offset). */
17
+ /** Zero-based textual part within this record (not a character offset). */
17
18
  part: number;
18
- /** Optional UTF-8 position to begin reading near this indexed match. */
19
+ /** Optional UTF-8 position to begin reading near this match. */
19
20
  byteOffset?: number;
20
21
  retained?: 'full' | 'preview';
21
22
  /** True only when this excerpt covers the entire full-retained text part. */
22
23
  excerptComplete?: boolean;
23
- /** Originating tool, when the authenticated event provides it. */
24
+ /** Originating tool, when the authenticated record provides it. */
24
25
  toolName?: string;
25
26
  isError?: boolean;
26
27
  }
@@ -29,11 +30,11 @@ export interface ConversationSearchResult {
29
30
  guidance: string;
30
31
  recordKindGuidance: string;
31
32
  matches: EvidenceMatch[];
32
- scannedRuns: number;
33
33
  scannedBytes: number;
34
34
  /** True means the search cannot establish that absent evidence does not exist. */
35
35
  incomplete: boolean;
36
- unavailableRuns: number;
36
+ /** Records the reader could not verify or read back in this page. */
37
+ unavailable: number;
37
38
  /** Successful tool outputs omitted by the host's source filter in this page. */
38
39
  excludedToolResults?: number;
39
40
  /** Known derived-summary visits omitted by a focused scan. */
@@ -43,27 +44,24 @@ export interface ConversationSearchResult {
43
44
  }
44
45
  /** Release process-local search resources after the host has settled this conversation's work. */
45
46
  export declare function releaseConversationEvidence(sessions: ConversationContext, sessionId: SessionId): Promise<void>;
46
- /** Bridge an already validated writer search to the ordinary scoped search tool. */
47
- export declare function retainLiveConversationSearch(sessions: ConversationContext, sessionId: SessionId, runId: string, terms: readonly string[], indexCursor: string, omitted?: boolean, matchMode?: 'literal' | 'token', excludeSuccessfulTools?: readonly string[], excludeDerivedSummaries?: boolean): string;
48
- /** Searches only local runs of the host-selected conversation, never arbitrary paths. */
47
+ /** Searches only the host-selected conversation's log, never arbitrary paths. */
49
48
  export declare function searchConversation(sessions: ConversationContext, sessionId: SessionId, input: {
50
49
  query?: string;
51
50
  caseSensitive?: boolean;
52
- runId?: string;
51
+ turnId?: string;
53
52
  limit?: number;
54
53
  cursor?: string;
55
54
  includeRetrievalResults?: boolean;
56
- }, signal?: AbortSignal, active?: Pick<ToolContext, 'runId' | 'captureRunEvidence'>): Promise<ConversationSearchResult>;
55
+ }, signal?: AbortSignal, active?: ActiveEvidence): Promise<ConversationSearchResult>;
57
56
  /** Host-only bounded candidate discovery; does not change the model tool schema. */
58
57
  export declare function searchConversationTerms(sessions: ConversationContext, sessionId: SessionId, input: {
59
58
  terms: readonly string[];
60
- excludeRunId: string;
61
59
  maxReadBytes: number;
62
60
  cursor?: string;
63
61
  matchMode?: 'literal' | 'token';
64
62
  excludeSuccessfulTools?: readonly string[];
65
63
  excludeDerivedSummaries?: boolean;
66
- }, signal?: AbortSignal): Promise<ConversationSearchResult>;
64
+ }, signal?: AbortSignal, active?: ActiveEvidence): Promise<ConversationSearchResult>;
67
65
  export declare function buildConversationSearchTool(resolveScope: (context: ToolContext) => {
68
66
  sessions: ConversationContext;
69
67
  sessionId: SessionId;
@@ -71,10 +69,9 @@ export declare function buildConversationSearchTool(resolveScope: (context: Tool
71
69
  export interface ConversationEvidencePage {
72
70
  /** Stored event wall-clock Unix milliseconds; unknown when absent. */
73
71
  recordedAt?: number;
74
- runId: string;
75
72
  seq: number;
76
73
  part: number;
77
- /** Exact retained text, paged without summarization. Empty while scanning. */
74
+ /** Exact retained text, paged without summarization. Empty while locating. */
78
75
  text: string;
79
76
  offset: number;
80
77
  totalChars?: number;
@@ -92,14 +89,13 @@ export interface ConversationEvidencePage {
92
89
  retainedPreview: boolean;
93
90
  nextCursor?: string;
94
91
  }
95
- /** Read a recorded text by durable run/event/part identity, within the current conversation. */
92
+ /** Read a recorded text by durable seq/part identity, within the current conversation. */
96
93
  export declare function readConversationEvidence(sessions: ConversationContext, sessionId: SessionId, input: {
97
- runId: string;
98
94
  seq: number;
99
95
  part?: number;
100
96
  cursor?: string;
101
97
  byteOffset?: number;
102
- }, signal?: AbortSignal, active?: Pick<ToolContext, 'runId' | 'captureRunEvidence'>): Promise<ConversationEvidencePage>;
98
+ }, signal?: AbortSignal, active?: ActiveEvidence): Promise<ConversationEvidencePage>;
103
99
  export declare function buildConversationReadTool(resolveScope: (context: ToolContext) => {
104
100
  sessions: ConversationContext;
105
101
  sessionId: SessionId;
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-search.d.ts","sourceRoot":"","sources":["../../../src/integrations/sessions/conversation-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-search.d.ts","sourceRoot":"","sources":["../../../src/integrations/sessions/conversation-search.ts"],"names":[],"mappings":"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"}