@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,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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"}