@namzu/cli 26.3.0 → 28.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 (376) hide show
  1. package/CHANGELOG.md +271 -0
  2. package/README.md +67 -46
  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.d.ts +2 -0
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +124 -14
  12. package/dist/cli.js.map +1 -1
  13. package/dist/commands/acp.d.ts +23 -1
  14. package/dist/commands/acp.d.ts.map +1 -1
  15. package/dist/commands/acp.js +41 -2
  16. package/dist/commands/acp.js.map +1 -1
  17. package/dist/commands/drain.d.ts +69 -2
  18. package/dist/commands/drain.d.ts.map +1 -1
  19. package/dist/commands/drain.js +216 -136
  20. package/dist/commands/drain.js.map +1 -1
  21. package/dist/commands/eval.js +1 -1
  22. package/dist/commands/eval.js.map +1 -1
  23. package/dist/commands/{run-flags.d.ts → exec-flags.d.ts} +36 -28
  24. package/dist/commands/exec-flags.d.ts.map +1 -0
  25. package/dist/commands/{run-flags.js → exec-flags.js} +35 -27
  26. package/dist/commands/exec-flags.js.map +1 -0
  27. package/dist/commands/exec-json.d.ts +75 -0
  28. package/dist/commands/exec-json.d.ts.map +1 -0
  29. package/dist/commands/exec-json.js +473 -0
  30. package/dist/commands/exec-json.js.map +1 -0
  31. package/dist/commands/exec.d.ts +42 -0
  32. package/dist/commands/exec.d.ts.map +1 -0
  33. package/dist/commands/exec.js +683 -0
  34. package/dist/commands/exec.js.map +1 -0
  35. package/dist/commands/host-queries.d.ts +12 -0
  36. package/dist/commands/host-queries.d.ts.map +1 -0
  37. package/dist/commands/host-queries.js +149 -0
  38. package/dist/commands/host-queries.js.map +1 -0
  39. package/dist/commands/prior-messages.js +1 -1
  40. package/dist/commands/prior-messages.js.map +1 -1
  41. package/dist/commands/provider-wait.d.ts +5 -5
  42. package/dist/commands/provider-wait.d.ts.map +1 -1
  43. package/dist/commands/provider-wait.js +2 -2
  44. package/dist/commands/registry.d.ts.map +1 -1
  45. package/dist/commands/registry.js +2 -0
  46. package/dist/commands/registry.js.map +1 -1
  47. package/dist/commands/resident-flags.d.ts +2 -2
  48. package/dist/commands/resident-flags.d.ts.map +1 -1
  49. package/dist/commands/resident-flags.js +4 -2
  50. package/dist/commands/resident-flags.js.map +1 -1
  51. package/dist/commands/resident-learning.js +1 -1
  52. package/dist/commands/resident-learning.js.map +1 -1
  53. package/dist/commands/resident.d.ts.map +1 -1
  54. package/dist/commands/resident.js +3 -2
  55. package/dist/commands/resident.js.map +1 -1
  56. package/dist/commands/serve.js +2 -2
  57. package/dist/commands/serve.js.map +1 -1
  58. package/dist/commands/skills.js +1 -1
  59. package/dist/commands/skills.js.map +1 -1
  60. package/dist/commands/state.js +8 -8
  61. package/dist/commands/state.js.map +1 -1
  62. package/dist/commands/stdin.d.ts +5 -5
  63. package/dist/commands/stdin.js +5 -5
  64. package/dist/commands/types.d.ts +2 -0
  65. package/dist/commands/types.d.ts.map +1 -1
  66. package/dist/config/load.d.ts +1 -1
  67. package/dist/config/load.d.ts.map +1 -1
  68. package/dist/config/load.js +36 -5
  69. package/dist/config/load.js.map +1 -1
  70. package/dist/config/schema.d.ts +59 -20
  71. package/dist/config/schema.d.ts.map +1 -1
  72. package/dist/config/schema.js.map +1 -1
  73. package/dist/config/tool-result-screens.js +1 -1
  74. package/dist/config/turn-guards.d.ts +23 -0
  75. package/dist/config/turn-guards.d.ts.map +1 -0
  76. package/dist/config/turn-guards.js +46 -0
  77. package/dist/config/turn-guards.js.map +1 -0
  78. package/dist/context/directories.d.ts +37 -0
  79. package/dist/context/directories.d.ts.map +1 -0
  80. package/dist/context/directories.js +69 -0
  81. package/dist/context/directories.js.map +1 -0
  82. package/dist/context/environment.d.ts +55 -0
  83. package/dist/context/environment.d.ts.map +1 -1
  84. package/dist/context/environment.js +96 -0
  85. package/dist/context/environment.js.map +1 -1
  86. package/dist/context/project-tracker.d.ts +3 -3
  87. package/dist/context/project-tracker.d.ts.map +1 -1
  88. package/dist/context/project-tracker.js +3 -3
  89. package/dist/context/project-tracker.js.map +1 -1
  90. package/dist/context/project.d.ts +2 -2
  91. package/dist/context/project.js +2 -2
  92. package/dist/context/sandbox.d.ts +22 -3
  93. package/dist/context/sandbox.d.ts.map +1 -1
  94. package/dist/context/sandbox.js +42 -4
  95. package/dist/context/sandbox.js.map +1 -1
  96. package/dist/doctor/checks/chain.d.ts +1 -1
  97. package/dist/doctor/checks/chain.js +7 -7
  98. package/dist/doctor/checks/chain.js.map +1 -1
  99. package/dist/doctor/checks/invariants.d.ts +2 -2
  100. package/dist/doctor/checks/invariants.js +5 -5
  101. package/dist/doctor/checks/invariants.js.map +1 -1
  102. package/dist/doctor/checks/logging.js +1 -1
  103. package/dist/doctor/checks/logging.js.map +1 -1
  104. package/dist/doctor/checks/sandbox.js +1 -1
  105. package/dist/doctor/checks/sandbox.js.map +1 -1
  106. package/dist/doctor/checks/session-export.d.ts +1 -1
  107. package/dist/doctor/checks/session-export.js +2 -2
  108. package/dist/doctor/checks/session-export.js.map +1 -1
  109. package/dist/doctor/checks/telemetry.d.ts +1 -1
  110. package/dist/doctor/checks/telemetry.js +1 -1
  111. package/dist/doctor/registry.js +2 -2
  112. package/dist/doctor/registry.js.map +1 -1
  113. package/dist/exit-codes.d.ts +2 -2
  114. package/dist/exit-codes.js +2 -2
  115. package/dist/integrations/mcp/servers.d.ts +1 -1
  116. package/dist/integrations/providers/access.d.ts +4 -1
  117. package/dist/integrations/providers/access.d.ts.map +1 -1
  118. package/dist/integrations/providers/access.js +6 -3
  119. package/dist/integrations/providers/access.js.map +1 -1
  120. package/dist/integrations/providers/chain-capabilities.d.ts +6 -6
  121. package/dist/integrations/providers/chain-capabilities.js +8 -8
  122. package/dist/integrations/providers/chain-capabilities.js.map +1 -1
  123. package/dist/integrations/providers/register.d.ts +1 -1
  124. package/dist/integrations/providers/register.js +1 -1
  125. package/dist/integrations/providers/registry.d.ts +1 -1
  126. package/dist/integrations/providers/zen-catalogue.d.ts +100 -0
  127. package/dist/integrations/providers/zen-catalogue.d.ts.map +1 -0
  128. package/dist/integrations/providers/zen-catalogue.js +196 -0
  129. package/dist/integrations/providers/zen-catalogue.js.map +1 -0
  130. package/dist/integrations/resident/inspection.d.ts +4 -1
  131. package/dist/integrations/resident/inspection.d.ts.map +1 -1
  132. package/dist/integrations/resident/inspection.js +53 -34
  133. package/dist/integrations/resident/inspection.js.map +1 -1
  134. package/dist/integrations/resident/learning-storage.d.ts +7 -2
  135. package/dist/integrations/resident/learning-storage.d.ts.map +1 -1
  136. package/dist/integrations/resident/learning-storage.js +12 -8
  137. package/dist/integrations/resident/learning-storage.js.map +1 -1
  138. package/dist/integrations/resident/runner-launch.d.ts +3 -3
  139. package/dist/integrations/resident/runner-launch.d.ts.map +1 -1
  140. package/dist/integrations/resident/runner-store.d.ts +1 -1
  141. package/dist/integrations/resident/runner-store.d.ts.map +1 -1
  142. package/dist/integrations/resident/runner-store.js +5 -2
  143. package/dist/integrations/resident/runner-store.js.map +1 -1
  144. package/dist/integrations/resident/runner-worker.js +23 -0
  145. package/dist/integrations/resident/runner-worker.js.map +1 -1
  146. package/dist/integrations/resident/session-log-reads.d.ts +37 -0
  147. package/dist/integrations/resident/session-log-reads.d.ts.map +1 -0
  148. package/dist/integrations/resident/session-log-reads.js +125 -0
  149. package/dist/integrations/resident/session-log-reads.js.map +1 -0
  150. package/dist/integrations/resident/session-step.d.ts +4 -2
  151. package/dist/integrations/resident/session-step.d.ts.map +1 -1
  152. package/dist/integrations/resident/session-step.js +16 -14
  153. package/dist/integrations/resident/session-step.js.map +1 -1
  154. package/dist/integrations/resident/storage.d.ts +23 -1
  155. package/dist/integrations/resident/storage.d.ts.map +1 -1
  156. package/dist/integrations/resident/storage.js +60 -17
  157. package/dist/integrations/resident/storage.js.map +1 -1
  158. package/dist/integrations/resident/tool-evidence.d.ts +4 -2
  159. package/dist/integrations/resident/tool-evidence.d.ts.map +1 -1
  160. package/dist/integrations/resident/tool-evidence.js +36 -30
  161. package/dist/integrations/resident/tool-evidence.js.map +1 -1
  162. package/dist/integrations/resident/verification.d.ts +2 -2
  163. package/dist/integrations/resident/verification.d.ts.map +1 -1
  164. package/dist/integrations/resident/verification.js +4 -4
  165. package/dist/integrations/resident/verification.js.map +1 -1
  166. package/dist/integrations/sessions/checkpoint-view.d.ts +13 -0
  167. package/dist/integrations/sessions/checkpoint-view.d.ts.map +1 -0
  168. package/dist/integrations/sessions/checkpoint-view.js +48 -0
  169. package/dist/integrations/sessions/checkpoint-view.js.map +1 -0
  170. package/dist/integrations/sessions/context-inventory.js +1 -1
  171. package/dist/integrations/sessions/context-inventory.js.map +1 -1
  172. package/dist/integrations/sessions/conversation-search.d.ts +16 -20
  173. package/dist/integrations/sessions/conversation-search.d.ts.map +1 -1
  174. package/dist/integrations/sessions/conversation-search.js +305 -731
  175. package/dist/integrations/sessions/conversation-search.js.map +1 -1
  176. package/dist/integrations/sessions/evidence-page-validation.d.ts +4 -4
  177. package/dist/integrations/sessions/evidence-page-validation.d.ts.map +1 -1
  178. package/dist/integrations/sessions/evidence-page-validation.js +1 -1
  179. package/dist/integrations/sessions/evidence-page-validation.js.map +1 -1
  180. package/dist/integrations/sessions/evidence-recall.d.ts +40 -2
  181. package/dist/integrations/sessions/evidence-recall.d.ts.map +1 -1
  182. package/dist/integrations/sessions/evidence-recall.js +41 -97
  183. package/dist/integrations/sessions/evidence-recall.js.map +1 -1
  184. package/dist/integrations/sessions/store.d.ts +153 -85
  185. package/dist/integrations/sessions/store.d.ts.map +1 -1
  186. package/dist/integrations/sessions/store.js +414 -484
  187. package/dist/integrations/sessions/store.js.map +1 -1
  188. package/dist/integrations/sessions/task-context.d.ts +15 -2
  189. package/dist/integrations/sessions/task-context.d.ts.map +1 -1
  190. package/dist/integrations/sessions/task-context.js +34 -11
  191. package/dist/integrations/sessions/task-context.js.map +1 -1
  192. package/dist/integrations/sessions/transcript-export.d.ts +13 -6
  193. package/dist/integrations/sessions/transcript-export.d.ts.map +1 -1
  194. package/dist/integrations/sessions/transcript-export.js +148 -263
  195. package/dist/integrations/sessions/transcript-export.js.map +1 -1
  196. package/dist/integrations/state/home.d.ts +4 -16
  197. package/dist/integrations/state/home.d.ts.map +1 -1
  198. package/dist/integrations/state/home.js +6 -42
  199. package/dist/integrations/state/home.js.map +1 -1
  200. package/dist/integrations/state/project.d.ts +6 -7
  201. package/dist/integrations/state/project.d.ts.map +1 -1
  202. package/dist/integrations/state/project.js +7 -9
  203. package/dist/integrations/state/project.js.map +1 -1
  204. package/dist/integrations/state/report.d.ts +27 -41
  205. package/dist/integrations/state/report.d.ts.map +1 -1
  206. package/dist/integrations/state/report.js +172 -464
  207. package/dist/integrations/state/report.js.map +1 -1
  208. package/dist/integrations/state/retention.d.ts +18 -0
  209. package/dist/integrations/state/retention.d.ts.map +1 -0
  210. package/dist/integrations/state/retention.js +18 -0
  211. package/dist/integrations/state/retention.js.map +1 -0
  212. package/dist/integrations/subagents/activity.d.ts +36 -31
  213. package/dist/integrations/subagents/activity.d.ts.map +1 -1
  214. package/dist/integrations/subagents/activity.js +27 -23
  215. package/dist/integrations/subagents/activity.js.map +1 -1
  216. package/dist/integrations/subagents/batches.d.ts +91 -0
  217. package/dist/integrations/subagents/batches.d.ts.map +1 -0
  218. package/dist/integrations/subagents/batches.js +172 -0
  219. package/dist/integrations/subagents/batches.js.map +1 -0
  220. package/dist/integrations/subagents/parent.d.ts +26 -11
  221. package/dist/integrations/subagents/parent.d.ts.map +1 -1
  222. package/dist/integrations/subagents/parent.js +13 -28
  223. package/dist/integrations/subagents/parent.js.map +1 -1
  224. package/dist/integrations/subagents/policy.d.ts +2 -2
  225. package/dist/integrations/subagents/policy.d.ts.map +1 -1
  226. package/dist/integrations/subagents/policy.js +2 -2
  227. package/dist/integrations/subagents/policy.js.map +1 -1
  228. package/dist/integrations/subagents/replay.d.ts +91 -26
  229. package/dist/integrations/subagents/replay.d.ts.map +1 -1
  230. package/dist/integrations/subagents/replay.js +216 -114
  231. package/dist/integrations/subagents/replay.js.map +1 -1
  232. package/dist/integrations/subagents/runtime.d.ts +50 -26
  233. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  234. package/dist/integrations/subagents/runtime.js +132 -126
  235. package/dist/integrations/subagents/runtime.js.map +1 -1
  236. package/dist/integrations/subagents/saved-agents.d.ts +57 -0
  237. package/dist/integrations/subagents/saved-agents.d.ts.map +1 -0
  238. package/dist/integrations/subagents/saved-agents.js +102 -0
  239. package/dist/integrations/subagents/saved-agents.js.map +1 -0
  240. package/dist/integrations/subagents/slash.d.ts +55 -0
  241. package/dist/integrations/subagents/slash.d.ts.map +1 -0
  242. package/dist/integrations/subagents/slash.js +45 -0
  243. package/dist/integrations/subagents/slash.js.map +1 -0
  244. package/dist/integrations/telemetry/session-export.d.ts +6 -6
  245. package/dist/integrations/telemetry/session-export.d.ts.map +1 -1
  246. package/dist/integrations/telemetry/session-export.js +2 -2
  247. package/dist/integrations/web/search.d.ts +1 -1
  248. package/dist/logging.d.ts +5 -5
  249. package/dist/logging.js +6 -6
  250. package/dist/memory/presentation.d.ts +11 -0
  251. package/dist/memory/presentation.d.ts.map +1 -1
  252. package/dist/memory/presentation.js +25 -0
  253. package/dist/memory/presentation.js.map +1 -1
  254. package/dist/memory/store.d.ts +13 -7
  255. package/dist/memory/store.d.ts.map +1 -1
  256. package/dist/memory/store.js +37 -11
  257. package/dist/memory/store.js.map +1 -1
  258. package/dist/memory/typed.d.ts +116 -0
  259. package/dist/memory/typed.d.ts.map +1 -0
  260. package/dist/memory/typed.js +336 -0
  261. package/dist/memory/typed.js.map +1 -0
  262. package/dist/permissions/checks.d.ts +1 -1
  263. package/dist/permissions/checks.js +1 -1
  264. package/dist/permissions/headless-trust.d.ts +4 -4
  265. package/dist/permissions/headless-trust.d.ts.map +1 -1
  266. package/dist/permissions/headless-trust.js +6 -6
  267. package/dist/permissions/headless-trust.js.map +1 -1
  268. package/dist/permissions/mode.d.ts +4 -4
  269. package/dist/permissions/mode.js +1 -1
  270. package/dist/permissions/rules.d.ts +1 -1
  271. package/dist/permissions/rules.js +1 -1
  272. package/dist/termination.d.ts +75 -0
  273. package/dist/termination.d.ts.map +1 -0
  274. package/dist/termination.js +143 -0
  275. package/dist/termination.js.map +1 -0
  276. package/dist/tui/AgentExplorer.d.ts +2 -2
  277. package/dist/tui/AgentExplorer.js +4 -4
  278. package/dist/tui/AgentExplorer.js.map +1 -1
  279. package/dist/tui/App.d.ts +9 -1
  280. package/dist/tui/App.d.ts.map +1 -1
  281. package/dist/tui/App.js +456 -307
  282. package/dist/tui/App.js.map +1 -1
  283. package/dist/tui/LiveActivity.d.ts +1 -1
  284. package/dist/tui/LiveActivity.d.ts.map +1 -1
  285. package/dist/tui/PermissionOverlay.d.ts +8 -0
  286. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  287. package/dist/tui/PermissionOverlay.js +25 -2
  288. package/dist/tui/PermissionOverlay.js.map +1 -1
  289. package/dist/tui/Picker.js +1 -1
  290. package/dist/tui/agent.d.ts +211 -135
  291. package/dist/tui/agent.d.ts.map +1 -1
  292. package/dist/tui/agent.js +535 -316
  293. package/dist/tui/agent.js.map +1 -1
  294. package/dist/tui/conversation-evidence-view.js +3 -3
  295. package/dist/tui/conversation-evidence-view.js.map +1 -1
  296. package/dist/tui/conversation-history.d.ts +4 -21
  297. package/dist/tui/conversation-history.d.ts.map +1 -1
  298. package/dist/tui/conversation-history.js +4 -28
  299. package/dist/tui/conversation-history.js.map +1 -1
  300. package/dist/tui/index.d.ts.map +1 -1
  301. package/dist/tui/index.js +27 -1
  302. package/dist/tui/index.js.map +1 -1
  303. package/dist/tui/log-pane.js +1 -1
  304. package/dist/tui/markdownParser.d.ts +1 -1
  305. package/dist/tui/markdownParser.js +1 -1
  306. package/dist/tui/permission-review.d.ts +16 -0
  307. package/dist/tui/permission-review.d.ts.map +1 -1
  308. package/dist/tui/permission-review.js +25 -2
  309. package/dist/tui/permission-review.js.map +1 -1
  310. package/dist/tui/slashCommands.d.ts +30 -41
  311. package/dist/tui/slashCommands.d.ts.map +1 -1
  312. package/dist/tui/slashCommands.js +75 -66
  313. package/dist/tui/slashCommands.js.map +1 -1
  314. package/dist/tui/status-panel-layout.js +1 -1
  315. package/dist/tui/status-panel-layout.js.map +1 -1
  316. package/dist/tui/{run-interruption.d.ts → turn-interruption.d.ts} +4 -4
  317. package/dist/tui/turn-interruption.d.ts.map +1 -0
  318. package/dist/tui/{run-interruption.js → turn-interruption.js} +20 -20
  319. package/dist/tui/turn-interruption.js.map +1 -0
  320. package/dist/tui/turn-limits-settings.d.ts +39 -0
  321. package/dist/tui/turn-limits-settings.d.ts.map +1 -0
  322. package/dist/tui/{run-limits-settings.js → turn-limits-settings.js} +18 -18
  323. package/dist/tui/turn-limits-settings.js.map +1 -0
  324. package/dist/tui/types.d.ts +3 -3
  325. package/dist/tui/types.d.ts.map +1 -1
  326. package/dist/user-commands/store.d.ts +4 -4
  327. package/dist/user-commands/store.js +5 -5
  328. package/dist/user-commands/store.js.map +1 -1
  329. package/package.json +6 -6
  330. package/dist/commands/run-flags.d.ts.map +0 -1
  331. package/dist/commands/run-flags.js.map +0 -1
  332. package/dist/commands/run-stream.d.ts +0 -65
  333. package/dist/commands/run-stream.d.ts.map +0 -1
  334. package/dist/commands/run-stream.js +0 -603
  335. package/dist/commands/run-stream.js.map +0 -1
  336. package/dist/commands/run.d.ts +0 -39
  337. package/dist/commands/run.d.ts.map +0 -1
  338. package/dist/commands/run.js +0 -533
  339. package/dist/commands/run.js.map +0 -1
  340. package/dist/config/run-limits.d.ts +0 -11
  341. package/dist/config/run-limits.d.ts.map +0 -1
  342. package/dist/config/run-limits.js +0 -64
  343. package/dist/config/run-limits.js.map +0 -1
  344. package/dist/integrations/sessions/compaction-evidence.d.ts +0 -5
  345. package/dist/integrations/sessions/compaction-evidence.d.ts.map +0 -1
  346. package/dist/integrations/sessions/compaction-evidence.js +0 -59
  347. package/dist/integrations/sessions/compaction-evidence.js.map +0 -1
  348. package/dist/integrations/sessions/database.d.ts +0 -5
  349. package/dist/integrations/sessions/database.d.ts.map +0 -1
  350. package/dist/integrations/sessions/database.js +0 -34
  351. package/dist/integrations/sessions/database.js.map +0 -1
  352. package/dist/integrations/sessions/paths.d.ts +0 -7
  353. package/dist/integrations/sessions/paths.d.ts.map +0 -1
  354. package/dist/integrations/sessions/paths.js +0 -14
  355. package/dist/integrations/sessions/paths.js.map +0 -1
  356. package/dist/integrations/sessions/run-discovery.d.ts +0 -24
  357. package/dist/integrations/sessions/run-discovery.d.ts.map +0 -1
  358. package/dist/integrations/sessions/run-discovery.js +0 -142
  359. package/dist/integrations/sessions/run-discovery.js.map +0 -1
  360. package/dist/integrations/sessions/turn-evidence.d.ts +0 -129
  361. package/dist/integrations/sessions/turn-evidence.d.ts.map +0 -1
  362. package/dist/integrations/sessions/turn-evidence.js +0 -517
  363. package/dist/integrations/sessions/turn-evidence.js.map +0 -1
  364. package/dist/integrations/subagents/history.d.ts +0 -26
  365. package/dist/integrations/subagents/history.d.ts.map +0 -1
  366. package/dist/integrations/subagents/history.js +0 -76
  367. package/dist/integrations/subagents/history.js.map +0 -1
  368. package/dist/integrations/subagents/runs.d.ts +0 -72
  369. package/dist/integrations/subagents/runs.d.ts.map +0 -1
  370. package/dist/integrations/subagents/runs.js +0 -155
  371. package/dist/integrations/subagents/runs.js.map +0 -1
  372. package/dist/tui/run-interruption.d.ts.map +0 -1
  373. package/dist/tui/run-interruption.js.map +0 -1
  374. package/dist/tui/run-limits-settings.d.ts +0 -39
  375. package/dist/tui/run-limits-settings.d.ts.map +0 -1
  376. package/dist/tui/run-limits-settings.js.map +0 -1
@@ -1,64 +0,0 @@
1
- import { constants } from 'node:fs';
2
- import { open } from 'node:fs/promises';
3
- /** CLI policy; independent of the SDK's defaults for embedding hosts. */
4
- export function resolveRunGuards(...layers) {
5
- const resolved = { tokenBudget: 0, maxIterations: 0, timeoutMs: 0 };
6
- for (const layer of layers) {
7
- for (const key of ['tokenBudget', 'maxIterations', 'timeoutMs']) {
8
- const value = layer?.[key];
9
- if (value === undefined)
10
- continue;
11
- if (!Number.isSafeInteger(value) ||
12
- value < 0 ||
13
- (key === 'timeoutMs' && value > 2_147_483_647))
14
- throw new Error(`Invalid ${key}: use a nonnegative safe integer${key === 'timeoutMs' ? ' at most 2147483647' : ''}. 0 means unlimited.`);
15
- resolved[key] = value;
16
- }
17
- }
18
- return resolved;
19
- }
20
- /** Restore the run's own settings, including overrides made before a provider pause. */
21
- export async function readStoredRunGuards(path, scope) {
22
- let file;
23
- try {
24
- file = await open(path, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0) | (constants.O_NONBLOCK ?? 0));
25
- }
26
- catch (error) {
27
- // An embedded checkpoint-only host may have no CLI run metadata.
28
- if (error.code === 'ENOENT')
29
- return undefined;
30
- throw error;
31
- }
32
- try {
33
- const before = await file.stat();
34
- if (!before.isFile() || before.size > 512 * 1024)
35
- throw new Error('Invalid run metadata size or file type');
36
- const bytes = Buffer.alloc(before.size);
37
- let offset = 0;
38
- while (offset < bytes.length) {
39
- const { bytesRead } = await file.read(bytes, offset, bytes.length - offset, offset);
40
- if (!bytesRead)
41
- throw new Error('Run metadata shortened during read');
42
- offset += bytesRead;
43
- }
44
- const after = await file.stat();
45
- if (before.size !== after.size ||
46
- before.mtimeMs !== after.mtimeMs ||
47
- before.ctimeMs !== after.ctimeMs)
48
- throw new Error('Run metadata changed during read');
49
- const record = JSON.parse(bytes.toString('utf8'));
50
- if (record?.schemaVersion !== 1 ||
51
- record.id !== scope.runId ||
52
- !['tenantId', 'projectId', 'sessionId', 'runId'].every((key) => record.metadata?.scope?.[key] === scope[key]))
53
- throw new Error('Run metadata schema or scope does not match the resumed run');
54
- const config = record.metadata?.config;
55
- if (!config ||
56
- ['tokenBudget', 'maxIterations', 'timeoutMs'].some((key) => typeof config[key] !== 'number'))
57
- throw new Error('Run metadata does not contain its original limits');
58
- return resolveRunGuards(config);
59
- }
60
- finally {
61
- await file.close();
62
- }
63
- }
64
- //# sourceMappingURL=run-limits.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-limits.js","sourceRoot":"","sources":["../../src/config/run-limits.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { type Message, type SessionId } from '@namzu/sdk';
2
- import { type ConversationContext } from './store.js';
3
- /** A zero-model maintenance record, separate from closed model invocations. */
4
- export declare function retainManualCompaction(sessions: ConversationContext, sessionId: SessionId, messages: readonly Message[], signal?: AbortSignal): Promise<void>;
5
- //# sourceMappingURL=compaction-evidence.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compaction-evidence.d.ts","sourceRoot":"","sources":["../../../src/integrations/sessions/compaction-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,OAAO,EAGZ,KAAK,SAAS,EAEd,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,KAAK,mBAAmB,EAA+B,MAAM,YAAY,CAAA;AAElF,+EAA+E;AAC/E,wBAAsB,sBAAsB,CAC3C,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAkDf"}
@@ -1,59 +0,0 @@
1
- import { RunPersistence, generateRunId, } from '@namzu/sdk';
2
- import { cliLogger } from '../../logging.js';
3
- import { ensurePrivateStateDirectory } from '../state/private-directory.js';
4
- import { requireWritableConversation } from './store.js';
5
- /** A zero-model maintenance record, separate from closed model invocations. */
6
- export async function retainManualCompaction(sessions, sessionId, messages, signal) {
7
- signal?.throwIfAborted();
8
- await requireWritableConversation(sessions, sessionId, 'retain compacted history');
9
- if (!messages.length)
10
- return;
11
- const sessionsDir = ensurePrivateStateDirectory(sessions.root, 'sessions');
12
- const sessionDir = ensurePrivateStateDirectory(sessionsDir, sessionId);
13
- const outputDir = ensurePrivateStateDirectory(sessionDir, 'runs');
14
- const persistence = new RunPersistence({
15
- runId: generateRunId(),
16
- agentId: 'manual-compaction',
17
- agentName: 'Manual compaction archive',
18
- providerId: 'host',
19
- runConfig: { model: 'none', timeoutMs: 0, tokenBudget: 0 },
20
- outputDir,
21
- log: cliLogger(),
22
- sessionId,
23
- topicId: sessions.topicId,
24
- tenantId: sessions.tenantId,
25
- projectId: sessions.projectId,
26
- });
27
- await persistence.init();
28
- const store = persistence.getRunStore();
29
- const append = async (event) => {
30
- signal?.throwIfAborted();
31
- const seq = persistence.nextEventSeq();
32
- await store.appendEvent({ ...event, seq });
33
- persistence.commitEventSeq(seq);
34
- };
35
- try {
36
- await append({ type: 'run_started', runId: persistence.id });
37
- // The SDK bounds large records and indexes their individual text parts.
38
- // Keep the same removed-message event shape as automatic compaction.
39
- await append({
40
- type: 'compaction_shed',
41
- runId: persistence.id,
42
- iteration: 0,
43
- reason: 'manual',
44
- messages: [...messages],
45
- });
46
- await append({ type: 'run_completed', runId: persistence.id, result: '' });
47
- persistence.markCompleted();
48
- // No model answer, checkpoint or global run-index row: this operation
49
- // archives evidence; it must not become a resumable agent invocation.
50
- await store.writeRunMeta(persistence.getRun());
51
- signal?.throwIfAborted();
52
- }
53
- catch (error) {
54
- persistence.markFailed('Manual compaction retention did not finish.');
55
- await store.writeRunMeta(persistence.getRun()).catch(() => { });
56
- throw error;
57
- }
58
- }
59
- //# sourceMappingURL=compaction-evidence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compaction-evidence.js","sourceRoot":"","sources":["../../../src/integrations/sessions/compaction-evidence.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { SqliteSessionStore } from '@namzu/sdk';
2
- export declare function sessionDatabasePath(root: string): string;
3
- /** Readers never mint state. The private parent also confines SQLite's journal files. */
4
- export declare function sessionStore(root: string, readOnly?: boolean): SqliteSessionStore;
5
- //# sourceMappingURL=database.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/integrations/sessions/database.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAG/C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,kBAAkB,CAsB/E"}
@@ -1,34 +0,0 @@
1
- import { lstatSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { SqliteSessionStore } from '@namzu/sdk';
4
- import { ensurePrivateStateDirectory } from '../state/private-directory.js';
5
- export function sessionDatabasePath(root) {
6
- return join(root, 'state', 'sessions.sqlite');
7
- }
8
- /** Readers never mint state. The private parent also confines SQLite's journal files. */
9
- export function sessionStore(root, readOnly = false) {
10
- if (!readOnly)
11
- ensurePrivateStateDirectory(root, 'state');
12
- const path = sessionDatabasePath(root);
13
- if (readOnly) {
14
- const parent = lstatSync(join(root, 'state'));
15
- if (!parent.isDirectory() || parent.isSymbolicLink())
16
- throw new Error('Session database requires a real state directory');
17
- }
18
- for (const file of [path, `${path}-wal`, `${path}-shm`, `${path}-journal`]) {
19
- let entry;
20
- try {
21
- entry = lstatSync(file);
22
- }
23
- catch (error) {
24
- if (error.code === 'ENOENT')
25
- continue;
26
- throw error;
27
- }
28
- if (!entry.isFile() || entry.isSymbolicLink() || entry.nlink !== 1) {
29
- throw new Error(`Session database requires a private regular file: ${file}`);
30
- }
31
- }
32
- return new SqliteSessionStore({ databasePath: path, readOnly });
33
- }
34
- //# sourceMappingURL=database.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/integrations/sessions/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAE3E,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC/C,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAA;AAC9C,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,QAAQ,GAAG,KAAK;IAC1D,IAAI,CAAC,QAAQ;QAAE,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACzD,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,QAAQ,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,cAAc,EAAE;YACnD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACrE,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC;QAC5E,IAAI,KAAmC,CAAA;QACvC,IAAI,CAAC;YACJ,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAQ;YAChE,MAAM,KAAK,CAAA;QACZ,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,cAAc,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,qDAAqD,IAAI,EAAE,CAAC,CAAA;QAC7E,CAAC;IACF,CAAC;IAED,OAAO,IAAI,kBAAkB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;AAChE,CAAC"}
@@ -1,7 +0,0 @@
1
- import { DefaultPathBuilder, type ProjectId, type SessionId } from '@namzu/sdk';
2
- /** Application artifacts are keyed by conversation; workspace membership lives in SQLite. */
3
- export declare class CliPathBuilder extends DefaultPathBuilder {
4
- projectDir(projectId: ProjectId): string;
5
- sessionDir(projectId: ProjectId, sessionId: SessionId): string;
6
- }
7
- //# sourceMappingURL=paths.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/integrations/sessions/paths.ts"],"names":[],"mappings":"AACA,OAAO,EACN,kBAAkB,EAClB,KAAK,SAAS,EACd,KAAK,SAAS,EAGd,MAAM,YAAY,CAAA;AAEnB,6FAA6F;AAC7F,qBAAa,cAAe,SAAQ,kBAAkB;IAC5C,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAKxC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM;CAIvE"}
@@ -1,14 +0,0 @@
1
- import { join } from 'node:path';
2
- import { DefaultPathBuilder, asProjectId, asSessionId, } from '@namzu/sdk';
3
- /** Application artifacts are keyed by conversation; workspace membership lives in SQLite. */
4
- export class CliPathBuilder extends DefaultPathBuilder {
5
- projectDir(projectId) {
6
- asProjectId(projectId);
7
- return this.rootDir();
8
- }
9
- sessionDir(projectId, sessionId) {
10
- asProjectId(projectId);
11
- return join(this.projectDir(projectId), 'sessions', asSessionId(sessionId));
12
- }
13
- }
14
- //# sourceMappingURL=paths.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/integrations/sessions/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EACN,kBAAkB,EAGlB,WAAW,EACX,WAAW,GACX,MAAM,YAAY,CAAA;AAEnB,6FAA6F;AAC7F,MAAM,OAAO,cAAe,SAAQ,kBAAkB;IAC5C,UAAU,CAAC,SAAoB;QACvC,WAAW,CAAC,SAAS,CAAC,CAAA;QACtB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACtB,CAAC;IAEQ,UAAU,CAAC,SAAoB,EAAE,SAAoB;QAC7D,WAAW,CAAC,SAAS,CAAC,CAAA;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5E,CAAC;CACD"}
@@ -1,24 +0,0 @@
1
- interface DiscoveryPage {
2
- runIds: string[];
3
- next?: string;
4
- }
5
- /** Process-local, bounded directory continuations. No output or authorization is cached here. */
6
- export declare class RunDiscovery {
7
- private readonly now;
8
- private streams;
9
- private pages;
10
- private tail;
11
- constructor(now?: () => number);
12
- private serialize;
13
- private stamp;
14
- private close;
15
- private forget;
16
- private slot;
17
- /** The host checks ancestor paths and conversation membership before every call. */
18
- read(scope: string, path: string, cursor?: string, signal?: AbortSignal): Promise<DiscoveryPage>;
19
- private releaseStream;
20
- /** Closing a conversation (or a test host) releases its directory handles and tokens. */
21
- release(scope?: string): Promise<void>;
22
- }
23
- export {};
24
- //# sourceMappingURL=run-discovery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-discovery.d.ts","sourceRoot":"","sources":["../../../src/integrations/sessions/run-discovery.ts"],"names":[],"mappings":"AAUA,UAAU,aAAa;IACtB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAeD,iGAAiG;AACjG,qBAAa,YAAY;IAIZ,OAAO,CAAC,QAAQ,CAAC,GAAG;IAHhC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,IAAI,CAAmC;gBAClB,GAAG,GAAE,MAAM,MAAiB;IAEzD,OAAO,CAAC,SAAS;YASH,KAAK;YAML,KAAK;YAML,MAAM;IAOpB,OAAO,CAAC,IAAI;IAWZ,oFAAoF;IACpF,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAmEhG,OAAO,CAAC,aAAa;IAIrB,yFAAyF;IACzF,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMtC"}
@@ -1,142 +0,0 @@
1
- import { randomBytes } from 'node:crypto';
2
- import { lstat, opendir } from 'node:fs/promises';
3
- import { isEntityId } from '@namzu/sdk';
4
- const PAGE_ENTRIES = 100;
5
- const MAX_STREAMS = 32;
6
- const MAX_PAGES = 128;
7
- const TTL_MS = 10 * 60_000;
8
- /** Process-local, bounded directory continuations. No output or authorization is cached here. */
9
- export class RunDiscovery {
10
- now;
11
- streams = new Set();
12
- pages = new Map();
13
- tail = Promise.resolve();
14
- constructor(now = Date.now) {
15
- this.now = now;
16
- }
17
- serialize(operation) {
18
- const next = this.tail.then(operation);
19
- this.tail = next.then(() => { }, () => { });
20
- return next;
21
- }
22
- async stamp(path) {
23
- const stat = await lstat(path);
24
- if (!stat.isDirectory() || stat.isSymbolicLink())
25
- throw new Error('Invalid run directory.');
26
- return [stat.dev, stat.ino, stat.size, stat.mtimeMs, stat.ctimeMs].join(':');
27
- }
28
- async close(stream) {
29
- if (stream.closed)
30
- return;
31
- await stream.directory.close();
32
- stream.closed = true;
33
- }
34
- async forget(stream) {
35
- clearTimeout(stream.timer);
36
- await this.close(stream);
37
- this.streams.delete(stream);
38
- for (const [token, slot] of this.pages)
39
- if (slot.stream === stream)
40
- this.pages.delete(token);
41
- }
42
- slot(stream) {
43
- while (this.pages.size >= MAX_PAGES) {
44
- const oldest = this.pages.keys().next().value;
45
- if (oldest === undefined)
46
- throw new Error('Missing discovery page.');
47
- this.pages.delete(oldest);
48
- }
49
- const token = randomBytes(24).toString('hex');
50
- this.pages.set(token, { stream });
51
- return token;
52
- }
53
- /** The host checks ancestor paths and conversation membership before every call. */
54
- read(scope, path, cursor, signal) {
55
- return this.serialize(async () => {
56
- signal?.throwIfAborted();
57
- for (const stream of this.streams)
58
- if (stream.expires <= this.now())
59
- await this.forget(stream);
60
- let slot;
61
- if (cursor) {
62
- const found = this.pages.get(cursor);
63
- if (!found)
64
- throw new Error('Run discovery expired or was evicted; restart the search.');
65
- if (found.stream.scope !== scope || found.stream.path !== path)
66
- throw new Error('Run discovery scope changed.');
67
- slot = found;
68
- }
69
- else {
70
- while (this.streams.size >= MAX_STREAMS) {
71
- const oldest = this.streams.values().next().value;
72
- if (!oldest)
73
- throw new Error('Missing discovery stream.');
74
- await this.forget(oldest);
75
- }
76
- const stamp = await this.stamp(path);
77
- const directory = await opendir(path, { bufferSize: PAGE_ENTRIES });
78
- const stream = {
79
- scope,
80
- path,
81
- stamp,
82
- directory,
83
- closed: false,
84
- expires: this.now() + TTL_MS,
85
- timer: setTimeout(() => {
86
- void this.releaseStream(stream).catch(() => { });
87
- }, TTL_MS),
88
- };
89
- stream.timer.unref();
90
- this.streams.add(stream);
91
- slot = { stream };
92
- }
93
- const { stream } = slot;
94
- try {
95
- if ((await this.stamp(path)) !== stream.stamp)
96
- throw new Error('Run directory changed; restart the search.');
97
- signal?.throwIfAborted();
98
- if (slot.page)
99
- return structuredClone(slot.page);
100
- const runIds = [];
101
- let exhausted = false;
102
- for (let i = 0; i < PAGE_ENTRIES; i++) {
103
- signal?.throwIfAborted();
104
- const entry = await stream.directory.read();
105
- if (!entry) {
106
- exhausted = true;
107
- break;
108
- }
109
- if (isEntityId(entry.name, 'run'))
110
- runIds.push(entry.name);
111
- }
112
- signal?.throwIfAborted();
113
- if ((await this.stamp(path)) !== stream.stamp)
114
- throw new Error('Run directory changed; restart the search.');
115
- signal?.throwIfAborted();
116
- if (exhausted)
117
- await this.close(stream);
118
- if (exhausted && !cursor)
119
- await this.forget(stream);
120
- const page = { runIds: runIds.sort(), ...(exhausted ? {} : { next: this.slot(stream) }) };
121
- slot.page = page;
122
- return structuredClone(page);
123
- }
124
- catch (error) {
125
- await this.forget(stream);
126
- throw error;
127
- }
128
- });
129
- }
130
- releaseStream(stream) {
131
- return this.serialize(() => this.forget(stream));
132
- }
133
- /** Closing a conversation (or a test host) releases its directory handles and tokens. */
134
- release(scope) {
135
- return this.serialize(async () => {
136
- for (const stream of this.streams)
137
- if (scope === undefined || stream.scope === scope)
138
- await this.forget(stream);
139
- });
140
- }
141
- }
142
- //# sourceMappingURL=run-discovery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-discovery.js","sourceRoot":"","sources":["../../../src/integrations/sessions/run-discovery.ts"],"names":[],"mappings":"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"}
@@ -1,129 +0,0 @@
1
- import { type ProjectId, type RunId, type SessionId, type UserMessage } from '@namzu/sdk';
2
- declare const FORMAT: "namzu.cli-turn-evidence.v1";
3
- export type ConversationOrigin = {
4
- readonly kind: 'new';
5
- } | {
6
- /**
7
- * Immutable turn boundary copied from the source conversation. The
8
- * references are flattened, so later source turns and deeper fork chains
9
- * cannot change what this conversation inherited.
10
- */
11
- readonly kind: 'fork';
12
- readonly sourceSessionId: SessionId;
13
- readonly copiedMessages: number;
14
- readonly turns: readonly ConversationTurnReference[];
15
- } | {
16
- /**
17
- * The copied model history has no stable turn boundary yet. The source
18
- * is kept so a later lineage migration has evidence to work from, while
19
- * the current exporter refuses instead of guessing.
20
- */
21
- readonly kind: 'fork-unresolved';
22
- readonly sourceSessionId: SessionId;
23
- readonly copiedMessages: number;
24
- };
25
- export interface ConversationTurnReference {
26
- readonly sessionId: SessionId;
27
- readonly turnId: string;
28
- }
29
- export type ConversationTurnOutcome = 'completed' | 'stopped' | 'failed' | 'cancelled';
30
- export interface ConversationOriginRecord {
31
- readonly format: typeof FORMAT;
32
- readonly type: 'conversation_started';
33
- readonly projectId: ProjectId;
34
- readonly sessionId: SessionId;
35
- readonly recordedAt: number;
36
- readonly origin: ConversationOrigin;
37
- }
38
- export interface ConversationTurnStartedRecord {
39
- readonly format: typeof FORMAT;
40
- readonly type: 'turn_started';
41
- readonly projectId: ProjectId;
42
- readonly sessionId: SessionId;
43
- readonly turnId: string;
44
- readonly runId: RunId;
45
- readonly recordedAt: number;
46
- /** What the operator saw, before `@file` mentions were expanded. */
47
- readonly displayText: string;
48
- /** Exactly what the provider received, including expanded mentions. */
49
- readonly user: UserMessage;
50
- }
51
- export interface ConversationTurnSettledRecord {
52
- readonly format: typeof FORMAT;
53
- readonly type: 'turn_settled';
54
- readonly projectId: ProjectId;
55
- readonly sessionId: SessionId;
56
- readonly turnId: string;
57
- readonly runId: RunId;
58
- readonly recordedAt: number;
59
- readonly outcome: ConversationTurnOutcome;
60
- /** Raw assistant Markdown accumulated by the host; may be empty. */
61
- readonly assistantText: string;
62
- }
63
- export type ConversationEvidenceRecord = ConversationOriginRecord | ConversationTurnStartedRecord | ConversationTurnSettledRecord;
64
- export interface ConversationTurnEvidence {
65
- readonly started: ConversationTurnStartedRecord;
66
- readonly settled?: ConversationTurnSettledRecord;
67
- }
68
- export interface ConversationLineageTurn {
69
- readonly reference: ConversationTurnReference;
70
- readonly evidence: ConversationTurnEvidence;
71
- }
72
- export type ConversationEvidenceRead = {
73
- readonly kind: 'not-recorded';
74
- } | {
75
- readonly kind: 'available';
76
- readonly origin: ConversationOriginRecord;
77
- readonly turns: readonly ConversationTurnEvidence[];
78
- };
79
- export type ConversationLineageRead = {
80
- readonly kind: 'unavailable';
81
- readonly detail: string;
82
- } | {
83
- readonly kind: 'available';
84
- readonly origin: ConversationOriginRecord;
85
- /** Turns physically recorded in the requested conversation. */
86
- readonly localTurns: readonly ConversationTurnEvidence[];
87
- /** Inherited turns followed by local turns, at the immutable fork boundary. */
88
- readonly turns: readonly ConversationLineageTurn[];
89
- };
90
- export declare class ConversationEvidenceCorruptionError extends Error {
91
- constructor(message: string);
92
- }
93
- export interface DiskConversationEvidenceOptions {
94
- readonly root: string;
95
- readonly projectId: ProjectId;
96
- readonly now?: () => number;
97
- }
98
- export declare class DiskConversationEvidence {
99
- private readonly paths;
100
- private readonly projectId;
101
- private readonly now;
102
- private tail;
103
- constructor(options: DiskConversationEvidenceOptions);
104
- recordOrigin(sessionId: SessionId, origin: ConversationOrigin): Promise<void>;
105
- recordTurnStarted(input: {
106
- readonly sessionId: SessionId;
107
- readonly runId: RunId;
108
- readonly displayText: string;
109
- readonly user: UserMessage;
110
- }): Promise<ConversationTurnStartedRecord>;
111
- recordTurnSettled(input: {
112
- readonly sessionId: SessionId;
113
- readonly turnId: string;
114
- readonly runId: RunId;
115
- readonly outcome: ConversationTurnOutcome;
116
- readonly assistantText: string;
117
- }): Promise<ConversationTurnSettledRecord>;
118
- read(sessionId: SessionId): Promise<ConversationEvidenceRead>;
119
- /** Resolve and verify the immutable turn sequence visible to one conversation. */
120
- resolveLineage(sessionId: SessionId): Promise<ConversationLineageRead>;
121
- private serialize;
122
- private path;
123
- private append;
124
- private requireAvailable;
125
- private readUnlocked;
126
- private resolveReferencesUnlocked;
127
- }
128
- export {};
129
- //# sourceMappingURL=turn-evidence.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"turn-evidence.d.ts","sourceRoot":"","sources":["../../../src/integrations/sessions/turn-evidence.ts"],"names":[],"mappings":"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"}