@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
@@ -4,7 +4,7 @@ import { terminalDisplayText } from './terminal-display.js';
4
4
  * Budget admission includes reservations: refusal is not proof of money or
5
5
  * tokens spent. Usage remains the reported measurement available through /cost.
6
6
  */
7
- export function describeRunStop(reason, budget) {
7
+ export function describeTurnStop(reason, budget) {
8
8
  switch (reason) {
9
9
  case undefined:
10
10
  case 'end_turn':
@@ -12,36 +12,36 @@ export function describeRunStop(reason, budget) {
12
12
  return undefined;
13
13
  case 'token_budget':
14
14
  if ((budget?.unresolvedRequests ?? 0) > 0)
15
- return 'Run stopped: usage for a model request could not be confirmed. /cost shows reported usage; the total remains uncertain.';
15
+ return 'Turn stopped: usage for a model request could not be confirmed. /cost shows reported usage; the total remains uncertain.';
16
16
  if (budget?.poisoned)
17
- return 'Run stopped: usage accounting could not be verified. /cost shows the available measurements.';
18
- return 'Run stopped: the token allowance could not cover further work. /cost shows reported usage.';
17
+ return 'Turn stopped: usage accounting could not be verified. /cost shows the available measurements.';
18
+ return 'Turn stopped: the token allowance could not cover further work. /cost shows reported usage.';
19
19
  case 'cost_limit':
20
- return 'Run stopped: the cost allowance could not cover further work. /cost shows reported usage.';
20
+ return 'Turn stopped: the cost allowance could not cover further work. /cost shows reported usage.';
21
21
  case 'cost_unmeasurable':
22
- return 'Run stopped: missing pricing prevented checking the cost limit. /cost shows reported usage.';
22
+ return 'Turn stopped: missing pricing prevented checking the cost limit. /cost shows reported usage.';
23
23
  case 'timeout':
24
- return 'Run stopped: the time limit was reached.';
24
+ return 'Turn stopped: the time limit was reached.';
25
25
  case 'max_iterations':
26
- return 'Run stopped: the step limit was reached.';
26
+ return 'Turn stopped: the step limit was reached.';
27
27
  case 'plan_rejected':
28
- return 'Run stopped: the plan was rejected.';
28
+ return 'Turn stopped: the plan was rejected.';
29
29
  case 'stop_condition':
30
- return 'Run stopped: the configured stop condition was met.';
30
+ return 'Turn stopped: the configured stop condition was met.';
31
31
  case 'step_refused':
32
- return 'Run stopped: the next model call was refused.';
32
+ return 'Turn stopped: the next model call was refused.';
33
33
  case 'structured_output_failed':
34
- return 'Run stopped: no valid structured result was produced.';
34
+ return 'Turn stopped: no valid structured result was produced.';
35
35
  case 'answer_rejected':
36
- return 'Run stopped: the final answer was not accepted.';
36
+ return 'Turn stopped: the final answer was not accepted.';
37
37
  case 'input_guardrail':
38
- return 'Run stopped: an input check refused this run.';
38
+ return 'Turn stopped: an input check refused this turn.';
39
39
  case 'output_guardrail':
40
- return 'Run stopped: an output check refused the result.';
40
+ return 'Turn stopped: an output check refused the result.';
41
41
  case 'paused':
42
- return 'Run paused.';
42
+ return 'Turn paused.';
43
43
  case 'error':
44
- return 'Run stopped after an error.';
44
+ return 'Turn stopped after an error.';
45
45
  }
46
46
  }
47
47
  /** One terminal-safe line, bounded so a provider response cannot own the screen. */
@@ -86,12 +86,12 @@ function materiallyDifferent(candidate, earlier) {
86
86
  * not a clock this process keeps updating. No generic remedy either: when the
87
87
  * SDK catalog did not claim a failure, the provider reason is all we know.
88
88
  */
89
- export function describeRunInterruption(event) {
89
+ export function describeTurnInterruption(event) {
90
90
  const explained = event.explanation;
91
91
  const rawReason = event.kind === 'paused' ? event.reason : event.message;
92
92
  const lead = line(explained?.message || rawReason);
93
93
  const id = explained?.id ? ` [${line(explained.id, 120)}]` : '';
94
- const rows = [`${event.kind === 'paused' ? 'Run paused' : 'Error'}${id}: ${lead}`];
94
+ const rows = [`${event.kind === 'paused' ? 'Turn paused' : 'Error'}${id}: ${lead}`];
95
95
  const providerDetail = event.providerError?.detail;
96
96
  if (providerDetail && materiallyDifferent(providerDetail, [lead, rawReason])) {
97
97
  rows.push(`Provider detail: ${line(providerDetail)}`);
@@ -110,4 +110,4 @@ export function describeRunInterruption(event) {
110
110
  }
111
111
  return rows.join('\n');
112
112
  }
113
- //# sourceMappingURL=run-interruption.js.map
113
+ //# sourceMappingURL=turn-interruption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-interruption.js","sourceRoot":"","sources":["../../src/tui/turn-interruption.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { type TurnGuardKey, type TurnGuards } from '../config/run-limits.js';
2
+ export declare const TURN_LIMIT_FIELDS: readonly [{
3
+ readonly name: "tokens";
4
+ readonly key: "tokenBudget";
5
+ readonly label: "Token budget";
6
+ readonly hint: "Whole tokens across the turn and its children; 0 or unlimited removes the cap.";
7
+ }, {
8
+ readonly name: "iterations";
9
+ readonly key: "maxIterations";
10
+ readonly label: "Model turns";
11
+ readonly hint: "Whole model calls per turn; 0 or unlimited removes the cap.";
12
+ }, {
13
+ readonly name: "time";
14
+ readonly key: "timeoutMs";
15
+ readonly label: "Turn duration";
16
+ readonly hint: "Duration such as 30m, 2h or 1500ms; a bare number is milliseconds. 0 or unlimited removes the cap.";
17
+ }];
18
+ export type TurnLimitsAction = {
19
+ kind: 'turn-limits-picker';
20
+ } | {
21
+ kind: 'turn-limit-editor';
22
+ key: TurnGuardKey;
23
+ } | {
24
+ kind: 'turn-limits-set';
25
+ limits: Partial<TurnGuards>;
26
+ } | {
27
+ kind: 'message';
28
+ role: 'system';
29
+ content: string;
30
+ statusRows?: undefined;
31
+ };
32
+ export declare function turnLimitsAction(args: readonly string[]): TurnLimitsAction;
33
+ export declare function formatTurnLimit(key: TurnGuardKey, value: number): string;
34
+ export declare function turnLimitCommands(limits: TurnGuards): {
35
+ name: string;
36
+ label: string;
37
+ description: string;
38
+ }[];
39
+ //# sourceMappingURL=turn-limits-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-limits-settings.d.ts","sourceRoot":"","sources":["../../src/tui/turn-limits-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAqB,MAAM,yBAAyB,CAAA;AAE/F,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAmBpB,CAAA;AAEV,MAAM,MAAM,gBAAgB,GACzB;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,GAAG,EAAE,YAAY,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,CAAA;CAAE,CAAA;AAE/E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,gBAAgB,CAmC1E;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAYxE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU;;;;IAanD"}
@@ -1,32 +1,32 @@
1
- import { resolveRunGuards } from '../config/run-limits.js';
2
- export const RUN_LIMIT_FIELDS = [
1
+ import { resolveTurnGuards } from '../config/run-limits.js';
2
+ export const TURN_LIMIT_FIELDS = [
3
3
  {
4
4
  name: 'tokens',
5
5
  key: 'tokenBudget',
6
6
  label: 'Token budget',
7
- hint: 'Whole tokens across the run and its children; 0 or unlimited removes the cap.',
7
+ hint: 'Whole tokens across the turn and its children; 0 or unlimited removes the cap.',
8
8
  },
9
9
  {
10
10
  name: 'iterations',
11
11
  key: 'maxIterations',
12
12
  label: 'Model turns',
13
- hint: 'Whole model calls per run; 0 or unlimited removes the cap.',
13
+ hint: 'Whole model calls per turn; 0 or unlimited removes the cap.',
14
14
  },
15
15
  {
16
16
  name: 'time',
17
17
  key: 'timeoutMs',
18
- label: 'Run duration',
18
+ label: 'Turn duration',
19
19
  hint: 'Duration such as 30m, 2h or 1500ms; a bare number is milliseconds. 0 or unlimited removes the cap.',
20
20
  },
21
21
  ];
22
- export function runLimitsAction(args) {
22
+ export function turnLimitsAction(args) {
23
23
  if (args.length === 0)
24
- return { kind: 'run-limits-picker' };
24
+ return { kind: 'turn-limits-picker' };
25
25
  if (args.length === 1 && args[0] === 'unlimited')
26
- return { kind: 'run-limits-set', limits: resolveRunGuards() };
27
- const field = RUN_LIMIT_FIELDS.find((field) => field.name === args[0]);
26
+ return { kind: 'turn-limits-set', limits: resolveTurnGuards() };
27
+ const field = TURN_LIMIT_FIELDS.find((field) => field.name === args[0]);
28
28
  if (field && args.length === 1)
29
- return { kind: 'run-limit-editor', key: field.key };
29
+ return { kind: 'turn-limit-editor', key: field.key };
30
30
  if (field && args.length === 2) {
31
31
  try {
32
32
  const raw = (args[1] ?? '').toLowerCase();
@@ -39,8 +39,8 @@ export function runLimitsAction(args) {
39
39
  : /^\d+$/.test(raw)
40
40
  ? Number(raw)
41
41
  : Number.NaN;
42
- resolveRunGuards({ [field.key]: value });
43
- return { kind: 'run-limits-set', limits: { [field.key]: value } };
42
+ resolveTurnGuards({ [field.key]: value });
43
+ return { kind: 'turn-limits-set', limits: { [field.key]: value } };
44
44
  }
45
45
  catch (error) {
46
46
  return {
@@ -56,7 +56,7 @@ export function runLimitsAction(args) {
56
56
  content: 'Usage: /config limits [tokens|iterations|time] [value]; /config limits unlimited removes all three caps.',
57
57
  };
58
58
  }
59
- export function formatRunLimit(key, value) {
59
+ export function formatTurnLimit(key, value) {
60
60
  if (value === 0)
61
61
  return 'Unlimited';
62
62
  if (key === 'timeoutMs') {
@@ -71,18 +71,18 @@ export function formatRunLimit(key, value) {
71
71
  }
72
72
  return value.toLocaleString('en-US');
73
73
  }
74
- export function runLimitCommands(limits) {
74
+ export function turnLimitCommands(limits) {
75
75
  return [
76
- ...RUN_LIMIT_FIELDS.map((field) => ({
76
+ ...TURN_LIMIT_FIELDS.map((field) => ({
77
77
  name: `config limits ${field.name}`,
78
78
  label: field.label,
79
- description: formatRunLimit(field.key, limits[field.key]),
79
+ description: formatTurnLimit(field.key, limits[field.key]),
80
80
  })),
81
81
  {
82
82
  name: 'config limits unlimited',
83
- label: 'Remove all run caps',
83
+ label: 'Remove all turn caps',
84
84
  description: 'Unlimited tokens, model turns and duration. Usage is still measured.',
85
85
  },
86
86
  ];
87
87
  }
88
- //# sourceMappingURL=run-limits-settings.js.map
88
+ //# sourceMappingURL=turn-limits-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-limits-settings.js","sourceRoot":"","sources":["../../src/tui/turn-limits-settings.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import type { AuthorizationRule } from '@namzu/sdk';
7
7
  import type { ConfigDebugSnapshot } from '../config/debug.js';
8
- import type { CompactionCliConfig, HooksConfig, MemoryCliConfig, PluginConfig, RunLimitsConfig, SandboxConfig, TuiConfig, WebConfig } from '../config/schema.js';
8
+ import type { CompactionCliConfig, HooksConfig, MemoryCliConfig, PluginConfig, SandboxConfig, TuiConfig, TurnLimitsConfig, WebConfig } from '../config/schema.js';
9
9
  import type { ToolResultScreenConfig } from '../config/tool-result-screens.js';
10
10
  import type { McpServersConfig } from '../integrations/mcp/servers.js';
11
11
  import type { ResolvedLogging } from '../logging.js';
@@ -82,8 +82,8 @@ export interface TuiContext {
82
82
  readonly hooks?: HooksConfig;
83
83
  readonly compaction?: CompactionCliConfig;
84
84
  readonly memory?: MemoryCliConfig;
85
- /** Configured per-run limits, also applied when rebuilding a session. */
86
- readonly limits?: RunLimitsConfig;
85
+ /** Configured per-turn limits, also applied when rebuilding a session. */
86
+ readonly limits?: TurnLimitsConfig;
87
87
  /**
88
88
  * See `NamzuCliConfig.toolResultScreens`.
89
89
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tui/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tui/types.ts"],"names":[],"mappings":"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"}
@@ -95,7 +95,7 @@ export type HeadlessExpansion =
95
95
  *
96
96
  * `namzu run "/ozet hedef.js"` used to send that string to the model verbatim.
97
97
  * The model, reasonably, tried to make sense of it — offering to create a file
98
- * called `ozet hedef.js`. The run exited 0 with confident output that had
98
+ * called `ozet hedef.js`. The turn exited 0 with confident output that had
99
99
  * nothing to do with the command. It did not fail; it quietly did something
100
100
  * else, which is the shape worth removing.
101
101
  *
@@ -138,7 +138,7 @@ function samePhysicalDirectory(left, right) {
138
138
  *
139
139
  * `namzu run "/ozet hedef.js"` used to send that string to the model verbatim.
140
140
  * The model, reasonably, tried to make sense of it — offering to create a file
141
- * called `ozet hedef.js`. The run exited 0 with confident output that had
141
+ * called `ozet hedef.js`. The turn exited 0 with confident output that had
142
142
  * nothing to do with the command. It did not fail; it quietly did something
143
143
  * else, which is the shape worth removing.
144
144
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@namzu/cli",
3
- "version": "26.2.0",
3
+ "version": "27.0.0",
4
4
  "description": "Interactive and headless terminal agent for Namzu, with provider discovery, durable sessions, tools and diagnostics.",
5
5
  "keywords": [
6
6
  "namzu",
@@ -46,16 +46,16 @@
46
46
  "react": "19.2.6",
47
47
  "string-width": "8.2.1",
48
48
  "yaml": "^2.9.0",
49
- "@namzu/anthropic": "6.0.0",
49
+ "@namzu/anthropic": "6.0.1",
50
50
  "@namzu/computer-use": "1.4.3",
51
51
  "@namzu/deepseek": "^2.0.0",
52
- "@namzu/ollama": "2.2.4",
53
52
  "@namzu/files": "1.1.1",
53
+ "@namzu/ollama": "2.2.4",
54
54
  "@namzu/openai": "4.0.0",
55
- "@namzu/openrouter": "3.0.0",
56
- "@namzu/sdk": "^43.0.0",
57
- "@namzu/zen": "^2.1.1",
58
- "@namzu/google": "^1.0.0"
55
+ "@namzu/openrouter": "3.0.1",
56
+ "@namzu/sdk": "^44.0.0",
57
+ "@namzu/google": "^1.0.0",
58
+ "@namzu/zen": "^2.4.0"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@biomejs/biome": "^1.9.4",
@@ -64,7 +64,7 @@
64
64
  "ink-testing-library": "^4.0.0",
65
65
  "typescript": "^5.5.0",
66
66
  "vitest": "^4.1.11",
67
- "@namzu/telemetry": "2.2.1"
67
+ "@namzu/telemetry": "3.0.0"
68
68
  },
69
69
  "engines": {
70
70
  "node": ">=22.13.0"
@@ -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"}