@pentoshi/clai 4.11.7 → 4.11.9

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 (2016) hide show
  1. package/dist/agent/compaction/summary-execution.d.ts +32 -0
  2. package/dist/agent/compaction/summary-execution.js +407 -0
  3. package/dist/agent/compaction/summary-execution.js.map +1 -0
  4. package/dist/agent/compaction-attempt.d.ts +5 -1
  5. package/dist/agent/compaction-attempt.js +22 -12
  6. package/dist/agent/compaction-attempt.js.map +1 -1
  7. package/dist/agent/compaction-executor.d.ts +5 -53
  8. package/dist/agent/compaction-executor.js +4 -447
  9. package/dist/agent/compaction-executor.js.map +1 -1
  10. package/dist/agent/compaction-summary.d.ts +0 -25
  11. package/dist/agent/compaction-summary.js +0 -20
  12. package/dist/agent/compaction-summary.js.map +1 -1
  13. package/dist/agent/confirm-port.d.ts +0 -6
  14. package/dist/agent/confirm-port.js +0 -11
  15. package/dist/agent/confirm-port.js.map +1 -1
  16. package/dist/agent/context/compact-with-summary.d.ts +34 -0
  17. package/dist/agent/context/compact-with-summary.js +381 -0
  18. package/dist/agent/context/compact-with-summary.js.map +1 -0
  19. package/dist/agent/context-breakdown.d.ts +0 -12
  20. package/dist/agent/context-breakdown.js +0 -16
  21. package/dist/agent/context-breakdown.js.map +1 -1
  22. package/dist/agent/context-manager.d.ts +4 -90
  23. package/dist/agent/context-manager.js +4 -458
  24. package/dist/agent/context-manager.js.map +1 -1
  25. package/dist/agent/continue-orient.d.ts +0 -19
  26. package/dist/agent/continue-orient.js +0 -24
  27. package/dist/agent/continue-orient.js.map +1 -1
  28. package/dist/agent/durable-blocks.d.ts +5 -0
  29. package/dist/agent/durable-blocks.js +16 -0
  30. package/dist/agent/durable-blocks.js.map +1 -0
  31. package/dist/agent/durable-envelope.d.ts +0 -2
  32. package/dist/agent/durable-envelope.js +0 -16
  33. package/dist/agent/durable-envelope.js.map +1 -1
  34. package/dist/agent/events.d.ts +6 -17
  35. package/dist/agent/evidence/task-classification.d.ts +25 -0
  36. package/dist/agent/evidence/task-classification.js +124 -0
  37. package/dist/agent/evidence/task-classification.js.map +1 -0
  38. package/dist/agent/evidence/task-selection.d.ts +29 -0
  39. package/dist/agent/evidence/task-selection.js +148 -0
  40. package/dist/agent/evidence/task-selection.js.map +1 -0
  41. package/dist/agent/evidence/tool-budgets.d.ts +12 -0
  42. package/dist/agent/evidence/tool-budgets.js +82 -0
  43. package/dist/agent/evidence/tool-budgets.js.map +1 -0
  44. package/dist/agent/evidence-governor.d.ts +0 -3
  45. package/dist/agent/evidence-governor.js.map +1 -1
  46. package/dist/agent/injected-blocks.d.ts +1 -0
  47. package/dist/agent/injected-blocks.js +14 -4
  48. package/dist/agent/injected-blocks.js.map +1 -1
  49. package/dist/agent/message-slim.js +0 -2
  50. package/dist/agent/message-slim.js.map +1 -1
  51. package/dist/agent/outcomes.d.ts +0 -1
  52. package/dist/agent/outcomes.js +0 -11
  53. package/dist/agent/outcomes.js.map +1 -1
  54. package/dist/agent/parser/arg-formatting.d.ts +3 -0
  55. package/dist/agent/parser/arg-formatting.js +99 -0
  56. package/dist/agent/parser/arg-formatting.js.map +1 -0
  57. package/dist/agent/parser/bare-recognition.d.ts +6 -0
  58. package/dist/agent/parser/bare-recognition.js +106 -0
  59. package/dist/agent/parser/bare-recognition.js.map +1 -0
  60. package/dist/agent/parser/parse-entry.d.ts +9 -0
  61. package/dist/agent/parser/parse-entry.js +198 -0
  62. package/dist/agent/parser/parse-entry.js.map +1 -0
  63. package/dist/agent/parser/repetition.d.ts +1 -0
  64. package/dist/agent/parser/repetition.js +72 -0
  65. package/dist/agent/parser/repetition.js.map +1 -0
  66. package/dist/agent/parser/salvage.d.ts +8 -0
  67. package/dist/agent/parser/salvage.js +100 -0
  68. package/dist/agent/parser/salvage.js.map +1 -0
  69. package/dist/agent/parser/vendor-protocols.d.ts +21 -0
  70. package/dist/agent/parser/vendor-protocols.js +265 -0
  71. package/dist/agent/parser/vendor-protocols.js.map +1 -0
  72. package/dist/agent/parser/xml-protocol.d.ts +7 -0
  73. package/dist/agent/parser/xml-protocol.js +455 -0
  74. package/dist/agent/parser/xml-protocol.js.map +1 -0
  75. package/dist/agent/plan/actions/plan-clear.d.ts +4 -0
  76. package/dist/agent/plan/actions/plan-clear.js +46 -0
  77. package/dist/agent/plan/actions/plan-clear.js.map +1 -0
  78. package/dist/agent/plan/actions/plan-create.d.ts +4 -0
  79. package/dist/agent/plan/actions/plan-create.js +371 -0
  80. package/dist/agent/plan/actions/plan-create.js.map +1 -0
  81. package/dist/agent/plan/actions/task-add.d.ts +5 -0
  82. package/dist/agent/plan/actions/task-add.js +131 -0
  83. package/dist/agent/plan/actions/task-add.js.map +1 -0
  84. package/dist/agent/plan/actions/task-move.d.ts +5 -0
  85. package/dist/agent/plan/actions/task-move.js +72 -0
  86. package/dist/agent/plan/actions/task-move.js.map +1 -0
  87. package/dist/agent/plan/context-message.d.ts +2 -0
  88. package/dist/agent/plan/context-message.js +91 -0
  89. package/dist/agent/plan/context-message.js.map +1 -0
  90. package/dist/agent/plan/handle-plan-tool.d.ts +24 -0
  91. package/dist/agent/plan/handle-plan-tool.js +310 -0
  92. package/dist/agent/plan/handle-plan-tool.js.map +1 -0
  93. package/dist/agent/plan/normalization.d.ts +19 -0
  94. package/dist/agent/plan/normalization.js +175 -0
  95. package/dist/agent/plan/normalization.js.map +1 -0
  96. package/dist/agent/plan-implement-compact.d.ts +0 -20
  97. package/dist/agent/plan-implement-compact.js +0 -21
  98. package/dist/agent/plan-implement-compact.js.map +1 -1
  99. package/dist/agent/plan-mode-reminders.d.ts +0 -24
  100. package/dist/agent/plan-mode-reminders.js +0 -21
  101. package/dist/agent/plan-mode-reminders.js.map +1 -1
  102. package/dist/agent/plan-tool.d.ts +5 -60
  103. package/dist/agent/plan-tool.js +7 -1235
  104. package/dist/agent/plan-tool.js.map +1 -1
  105. package/dist/agent/progress-pause-policy.d.ts +0 -1
  106. package/dist/agent/progress-pause-policy.js +1 -5
  107. package/dist/agent/progress-pause-policy.js.map +1 -1
  108. package/dist/agent/progress.d.ts +0 -5
  109. package/dist/agent/progress.js +0 -14
  110. package/dist/agent/progress.js.map +1 -1
  111. package/dist/agent/project-root.d.ts +0 -21
  112. package/dist/agent/project-root.js +0 -36
  113. package/dist/agent/project-root.js.map +1 -1
  114. package/dist/agent/prompt-composer.d.ts +0 -1
  115. package/dist/agent/prompt-composer.js +0 -2
  116. package/dist/agent/prompt-composer.js.map +1 -1
  117. package/dist/agent/reliability-policy.d.ts +0 -41
  118. package/dist/agent/reliability-policy.js +0 -46
  119. package/dist/agent/reliability-policy.js.map +1 -1
  120. package/dist/agent/request-accounting.d.ts +0 -30
  121. package/dist/agent/request-accounting.js +1 -25
  122. package/dist/agent/request-accounting.js.map +1 -1
  123. package/dist/agent/request-budget.d.ts +0 -2
  124. package/dist/agent/request-budget.js +0 -13
  125. package/dist/agent/request-budget.js.map +1 -1
  126. package/dist/agent/responder-context.js +14 -3
  127. package/dist/agent/responder-context.js.map +1 -1
  128. package/dist/agent/responder-parent.d.ts +0 -10
  129. package/dist/agent/responder-parent.js +0 -12
  130. package/dist/agent/responder-parent.js.map +1 -1
  131. package/dist/agent/runner.d.ts +0 -30
  132. package/dist/agent/runner.js +403 -5087
  133. package/dist/agent/runner.js.map +1 -1
  134. package/dist/agent/scope-context.d.ts +0 -1
  135. package/dist/agent/scope-context.js +0 -1
  136. package/dist/agent/scope-context.js.map +1 -1
  137. package/dist/agent/scratch-write.d.ts +0 -1
  138. package/dist/agent/scratch-write.js +0 -1
  139. package/dist/agent/scratch-write.js.map +1 -1
  140. package/dist/agent/session-policy.d.ts +0 -28
  141. package/dist/agent/session-policy.js +0 -34
  142. package/dist/agent/session-policy.js.map +1 -1
  143. package/dist/agent/session-state.d.ts +0 -38
  144. package/dist/agent/session-state.js +4 -41
  145. package/dist/agent/session-state.js.map +1 -1
  146. package/dist/agent/step-budget.d.ts +0 -4
  147. package/dist/agent/step-budget.js +0 -4
  148. package/dist/agent/step-budget.js.map +1 -1
  149. package/dist/agent/stop-summary.d.ts +0 -5
  150. package/dist/agent/stop-summary.js +0 -8
  151. package/dist/agent/stop-summary.js.map +1 -1
  152. package/dist/agent/stream-recovery.d.ts +1 -54
  153. package/dist/agent/stream-recovery.js +4 -53
  154. package/dist/agent/stream-recovery.js.map +1 -1
  155. package/dist/agent/task-evidence.d.ts +10 -159
  156. package/dist/agent/task-evidence.js +10 -477
  157. package/dist/agent/task-evidence.js.map +1 -1
  158. package/dist/agent/task-plan.d.ts +0 -8
  159. package/dist/agent/task-plan.js +0 -6
  160. package/dist/agent/task-plan.js.map +1 -1
  161. package/dist/agent/task-sync.d.ts +0 -25
  162. package/dist/agent/task-sync.js +0 -31
  163. package/dist/agent/task-sync.js.map +1 -1
  164. package/dist/agent/tool-call-parser.d.ts +10 -205
  165. package/dist/agent/tool-call-parser.js +11 -1715
  166. package/dist/agent/tool-call-parser.js.map +1 -1
  167. package/dist/agent/tool-history.d.ts +1 -57
  168. package/dist/agent/tool-history.js +1 -68
  169. package/dist/agent/tool-history.js.map +1 -1
  170. package/dist/agent/tool-output-formatting.d.ts +0 -18
  171. package/dist/agent/tool-output-formatting.js +0 -28
  172. package/dist/agent/tool-output-formatting.js.map +1 -1
  173. package/dist/agent/turn/automatic-compaction-execution.d.ts +14 -0
  174. package/dist/agent/turn/automatic-compaction-execution.js +19 -0
  175. package/dist/agent/turn/automatic-compaction-execution.js.map +1 -0
  176. package/dist/agent/turn/compaction-admission.d.ts +25 -0
  177. package/dist/agent/turn/compaction-admission.js +40 -0
  178. package/dist/agent/turn/compaction-admission.js.map +1 -0
  179. package/dist/agent/turn/compaction-candidate.d.ts +10 -0
  180. package/dist/agent/turn/compaction-candidate.js +12 -0
  181. package/dist/agent/turn/compaction-candidate.js.map +1 -0
  182. package/dist/agent/turn/compaction-coordinator.d.ts +42 -0
  183. package/dist/agent/turn/compaction-coordinator.js +169 -0
  184. package/dist/agent/turn/compaction-coordinator.js.map +1 -0
  185. package/dist/agent/turn/compaction-durable-envelope.d.ts +24 -0
  186. package/dist/agent/turn/compaction-durable-envelope.js +54 -0
  187. package/dist/agent/turn/compaction-durable-envelope.js.map +1 -0
  188. package/dist/agent/turn/compaction-final-fit.d.ts +10 -0
  189. package/dist/agent/turn/compaction-final-fit.js +14 -0
  190. package/dist/agent/turn/compaction-final-fit.js.map +1 -0
  191. package/dist/agent/turn/compaction-messages.d.ts +6 -0
  192. package/dist/agent/turn/compaction-messages.js +15 -0
  193. package/dist/agent/turn/compaction-messages.js.map +1 -0
  194. package/dist/agent/turn/compaction-replay-selection.d.ts +10 -0
  195. package/dist/agent/turn/compaction-replay-selection.js +27 -0
  196. package/dist/agent/turn/compaction-replay-selection.js.map +1 -0
  197. package/dist/agent/turn/compaction-request-estimator.d.ts +7 -0
  198. package/dist/agent/turn/compaction-request-estimator.js +13 -0
  199. package/dist/agent/turn/compaction-request-estimator.js.map +1 -0
  200. package/dist/agent/turn/compaction-summarizer.d.ts +21 -0
  201. package/dist/agent/turn/compaction-summarizer.js +41 -0
  202. package/dist/agent/turn/compaction-summarizer.js.map +1 -0
  203. package/dist/agent/turn/continuation-overlap.d.ts +1 -0
  204. package/dist/agent/turn/continuation-overlap.js +35 -0
  205. package/dist/agent/turn/continuation-overlap.js.map +1 -0
  206. package/dist/agent/turn/contracts.d.ts +25 -0
  207. package/dist/agent/turn/contracts.js +2 -0
  208. package/dist/agent/turn/contracts.js.map +1 -0
  209. package/dist/agent/turn/event-emitter.d.ts +21 -0
  210. package/dist/agent/turn/event-emitter.js +116 -0
  211. package/dist/agent/turn/event-emitter.js.map +1 -0
  212. package/dist/agent/turn/evidence-flags.d.ts +16 -0
  213. package/dist/agent/turn/evidence-flags.js +44 -0
  214. package/dist/agent/turn/evidence-flags.js.map +1 -0
  215. package/dist/agent/turn/finalizer.d.ts +28 -0
  216. package/dist/agent/turn/finalizer.js +44 -0
  217. package/dist/agent/turn/finalizer.js.map +1 -0
  218. package/dist/agent/turn/history-writer.d.ts +17 -0
  219. package/dist/agent/turn/history-writer.js +72 -0
  220. package/dist/agent/turn/history-writer.js.map +1 -0
  221. package/dist/agent/turn/inserted-text.d.ts +1 -0
  222. package/dist/agent/turn/inserted-text.js +2 -0
  223. package/dist/agent/turn/inserted-text.js.map +1 -0
  224. package/dist/agent/turn/loop/answer-assessment.d.ts +22 -0
  225. package/dist/agent/turn/loop/answer-assessment.js +30 -0
  226. package/dist/agent/turn/loop/answer-assessment.js.map +1 -0
  227. package/dist/agent/turn/loop/answer-path.d.ts +20 -0
  228. package/dist/agent/turn/loop/answer-path.js +92 -0
  229. package/dist/agent/turn/loop/answer-path.js.map +1 -0
  230. package/dist/agent/turn/loop/call-binding.d.ts +17 -0
  231. package/dist/agent/turn/loop/call-binding.js +42 -0
  232. package/dist/agent/turn/loop/call-binding.js.map +1 -0
  233. package/dist/agent/turn/loop/canonicalize-turn-call.d.ts +5 -0
  234. package/dist/agent/turn/loop/canonicalize-turn-call.js +12 -0
  235. package/dist/agent/turn/loop/canonicalize-turn-call.js.map +1 -0
  236. package/dist/agent/turn/loop/completion-interpretation.d.ts +34 -0
  237. package/dist/agent/turn/loop/completion-interpretation.js +71 -0
  238. package/dist/agent/turn/loop/completion-interpretation.js.map +1 -0
  239. package/dist/agent/turn/loop/deps.d.ts +98 -0
  240. package/dist/agent/turn/loop/deps.js +2 -0
  241. package/dist/agent/turn/loop/deps.js.map +1 -0
  242. package/dist/agent/turn/loop/empty-response.d.ts +22 -0
  243. package/dist/agent/turn/loop/empty-response.js +51 -0
  244. package/dist/agent/turn/loop/empty-response.js.map +1 -0
  245. package/dist/agent/turn/loop/final-outcome.d.ts +15 -0
  246. package/dist/agent/turn/loop/final-outcome.js +49 -0
  247. package/dist/agent/turn/loop/final-outcome.js.map +1 -0
  248. package/dist/agent/turn/loop/group-execution.d.ts +14 -0
  249. package/dist/agent/turn/loop/group-execution.js +44 -0
  250. package/dist/agent/turn/loop/group-execution.js.map +1 -0
  251. package/dist/agent/turn/loop/model-only-rounds.d.ts +31 -0
  252. package/dist/agent/turn/loop/model-only-rounds.js +49 -0
  253. package/dist/agent/turn/loop/model-only-rounds.js.map +1 -0
  254. package/dist/agent/turn/loop/native-tool-calls.d.ts +12 -0
  255. package/dist/agent/turn/loop/native-tool-calls.js +57 -0
  256. package/dist/agent/turn/loop/native-tool-calls.js.map +1 -0
  257. package/dist/agent/turn/loop/native-write-salvage.d.ts +18 -0
  258. package/dist/agent/turn/loop/native-write-salvage.js +92 -0
  259. package/dist/agent/turn/loop/native-write-salvage.js.map +1 -0
  260. package/dist/agent/turn/loop/output-budget.d.ts +40 -0
  261. package/dist/agent/turn/loop/output-budget.js +76 -0
  262. package/dist/agent/turn/loop/output-budget.js.map +1 -0
  263. package/dist/agent/turn/loop/plan-call-deferral.d.ts +12 -0
  264. package/dist/agent/turn/loop/plan-call-deferral.js +32 -0
  265. package/dist/agent/turn/loop/plan-call-deferral.js.map +1 -0
  266. package/dist/agent/turn/loop/request-assembly.d.ts +31 -0
  267. package/dist/agent/turn/loop/request-assembly.js +91 -0
  268. package/dist/agent/turn/loop/request-assembly.js.map +1 -0
  269. package/dist/agent/turn/loop/round-closeout.d.ts +56 -0
  270. package/dist/agent/turn/loop/round-closeout.js +77 -0
  271. package/dist/agent/turn/loop/round-closeout.js.map +1 -0
  272. package/dist/agent/turn/loop/round-recorder.d.ts +38 -0
  273. package/dist/agent/turn/loop/round-recorder.js +71 -0
  274. package/dist/agent/turn/loop/round-recorder.js.map +1 -0
  275. package/dist/agent/turn/loop/round-request.d.ts +19 -0
  276. package/dist/agent/turn/loop/round-request.js +164 -0
  277. package/dist/agent/turn/loop/round-request.js.map +1 -0
  278. package/dist/agent/turn/loop/round-state.d.ts +11 -0
  279. package/dist/agent/turn/loop/round-state.js +11 -0
  280. package/dist/agent/turn/loop/round-state.js.map +1 -0
  281. package/dist/agent/turn/loop/run-rounds.d.ts +5 -0
  282. package/dist/agent/turn/loop/run-rounds.js +661 -0
  283. package/dist/agent/turn/loop/run-rounds.js.map +1 -0
  284. package/dist/agent/turn/loop/sequence-suppression.d.ts +54 -0
  285. package/dist/agent/turn/loop/sequence-suppression.js +112 -0
  286. package/dist/agent/turn/loop/sequence-suppression.js.map +1 -0
  287. package/dist/agent/turn/loop/state.d.ts +37 -0
  288. package/dist/agent/turn/loop/state.js +28 -0
  289. package/dist/agent/turn/loop/state.js.map +1 -0
  290. package/dist/agent/turn/loop/stream-failure.d.ts +54 -0
  291. package/dist/agent/turn/loop/stream-failure.js +146 -0
  292. package/dist/agent/turn/loop/stream-failure.js.map +1 -0
  293. package/dist/agent/turn/loop/stream-request.d.ts +16 -0
  294. package/dist/agent/turn/loop/stream-request.js +21 -0
  295. package/dist/agent/turn/loop/stream-request.js.map +1 -0
  296. package/dist/agent/turn/loop/stream-session.d.ts +41 -0
  297. package/dist/agent/turn/loop/stream-session.js +136 -0
  298. package/dist/agent/turn/loop/stream-session.js.map +1 -0
  299. package/dist/agent/turn/loop/tool-call-recovery.d.ts +25 -0
  300. package/dist/agent/turn/loop/tool-call-recovery.js +162 -0
  301. package/dist/agent/turn/loop/tool-call-recovery.js.map +1 -0
  302. package/dist/agent/turn/loop/unrun-calls.d.ts +12 -0
  303. package/dist/agent/turn/loop/unrun-calls.js +27 -0
  304. package/dist/agent/turn/loop/unrun-calls.js.map +1 -0
  305. package/dist/agent/turn/loop/wire-occurrences.d.ts +31 -0
  306. package/dist/agent/turn/loop/wire-occurrences.js +45 -0
  307. package/dist/agent/turn/loop/wire-occurrences.js.map +1 -0
  308. package/dist/agent/turn/mcp-agent-tools.d.ts +17 -0
  309. package/dist/agent/turn/mcp-agent-tools.js +69 -0
  310. package/dist/agent/turn/mcp-agent-tools.js.map +1 -0
  311. package/dist/agent/turn/message-assembly.d.ts +14 -0
  312. package/dist/agent/turn/message-assembly.js +22 -0
  313. package/dist/agent/turn/message-assembly.js.map +1 -0
  314. package/dist/agent/turn/outcome-accounting.d.ts +27 -0
  315. package/dist/agent/turn/outcome-accounting.js +91 -0
  316. package/dist/agent/turn/outcome-accounting.js.map +1 -0
  317. package/dist/agent/turn/plan-mode-gate.d.ts +16 -0
  318. package/dist/agent/turn/plan-mode-gate.js +36 -0
  319. package/dist/agent/turn/plan-mode-gate.js.map +1 -0
  320. package/dist/agent/turn/plan-persistence.d.ts +28 -0
  321. package/dist/agent/turn/plan-persistence.js +56 -0
  322. package/dist/agent/turn/plan-persistence.js.map +1 -0
  323. package/dist/agent/turn/prompt-sections.d.ts +9 -0
  324. package/dist/agent/turn/prompt-sections.js +67 -0
  325. package/dist/agent/turn/prompt-sections.js.map +1 -0
  326. package/dist/agent/turn/responder-claims.d.ts +16 -0
  327. package/dist/agent/turn/responder-claims.js +37 -0
  328. package/dist/agent/turn/responder-claims.js.map +1 -0
  329. package/dist/agent/turn/responder-dependency.d.ts +3 -0
  330. package/dist/agent/turn/responder-dependency.js +36 -0
  331. package/dist/agent/turn/responder-dependency.js.map +1 -0
  332. package/dist/agent/turn/responder-inbox.d.ts +28 -0
  333. package/dist/agent/turn/responder-inbox.js +57 -0
  334. package/dist/agent/turn/responder-inbox.js.map +1 -0
  335. package/dist/agent/turn/responder-job-linkage.d.ts +30 -0
  336. package/dist/agent/turn/responder-job-linkage.js +124 -0
  337. package/dist/agent/turn/responder-job-linkage.js.map +1 -0
  338. package/dist/agent/turn/responder-read-tool.d.ts +26 -0
  339. package/dist/agent/turn/responder-read-tool.js +83 -0
  340. package/dist/agent/turn/responder-read-tool.js.map +1 -0
  341. package/dist/agent/turn/scaffold-outcome.d.ts +7 -0
  342. package/dist/agent/turn/scaffold-outcome.js +93 -0
  343. package/dist/agent/turn/scaffold-outcome.js.map +1 -0
  344. package/dist/agent/turn/scaffold-preflight.d.ts +8 -0
  345. package/dist/agent/turn/scaffold-preflight.js +31 -0
  346. package/dist/agent/turn/scaffold-preflight.js.map +1 -0
  347. package/dist/agent/turn/session-state-projection.d.ts +18 -0
  348. package/dist/agent/turn/session-state-projection.js +46 -0
  349. package/dist/agent/turn/session-state-projection.js.map +1 -0
  350. package/dist/agent/turn/setup/compaction-services.d.ts +55 -0
  351. package/dist/agent/turn/setup/compaction-services.js +69 -0
  352. package/dist/agent/turn/setup/compaction-services.js.map +1 -0
  353. package/dist/agent/turn/setup/evidence-rehydration.d.ts +3 -0
  354. package/dist/agent/turn/setup/evidence-rehydration.js +22 -0
  355. package/dist/agent/turn/setup/evidence-rehydration.js.map +1 -0
  356. package/dist/agent/turn/setup/mcp-agent-ports.d.ts +29 -0
  357. package/dist/agent/turn/setup/mcp-agent-ports.js +26 -0
  358. package/dist/agent/turn/setup/mcp-agent-ports.js.map +1 -0
  359. package/dist/agent/turn/setup/prompt-classification.d.ts +10 -0
  360. package/dist/agent/turn/setup/prompt-classification.js +18 -0
  361. package/dist/agent/turn/setup/prompt-classification.js.map +1 -0
  362. package/dist/agent/turn/setup/responder-wake.d.ts +16 -0
  363. package/dist/agent/turn/setup/responder-wake.js +18 -0
  364. package/dist/agent/turn/setup/responder-wake.js.map +1 -0
  365. package/dist/agent/turn/setup/session-state.d.ts +20 -0
  366. package/dist/agent/turn/setup/session-state.js +23 -0
  367. package/dist/agent/turn/setup/session-state.js.map +1 -0
  368. package/dist/agent/turn/setup/task-gate-setup.d.ts +19 -0
  369. package/dist/agent/turn/setup/task-gate-setup.js +21 -0
  370. package/dist/agent/turn/setup/task-gate-setup.js.map +1 -0
  371. package/dist/agent/turn/setup/turn-budget.d.ts +19 -0
  372. package/dist/agent/turn/setup/turn-budget.js +34 -0
  373. package/dist/agent/turn/setup/turn-budget.js.map +1 -0
  374. package/dist/agent/turn/setup/turn-messages.d.ts +26 -0
  375. package/dist/agent/turn/setup/turn-messages.js +50 -0
  376. package/dist/agent/turn/setup/turn-messages.js.map +1 -0
  377. package/dist/agent/turn/setup/turn-state-machine.d.ts +13 -0
  378. package/dist/agent/turn/setup/turn-state-machine.js +52 -0
  379. package/dist/agent/turn/setup/turn-state-machine.js.map +1 -0
  380. package/dist/agent/turn/system-sections.d.ts +36 -0
  381. package/dist/agent/turn/system-sections.js +157 -0
  382. package/dist/agent/turn/system-sections.js.map +1 -0
  383. package/dist/agent/turn/task-autostart.d.ts +12 -0
  384. package/dist/agent/turn/task-autostart.js +35 -0
  385. package/dist/agent/turn/task-autostart.js.map +1 -0
  386. package/dist/agent/turn/task-batch-guard.d.ts +18 -0
  387. package/dist/agent/turn/task-batch-guard.js +83 -0
  388. package/dist/agent/turn/task-batch-guard.js.map +1 -0
  389. package/dist/agent/turn/task-credit.d.ts +15 -0
  390. package/dist/agent/turn/task-credit.js +49 -0
  391. package/dist/agent/turn/task-credit.js.map +1 -0
  392. package/dist/agent/turn/task-gate.d.ts +13 -0
  393. package/dist/agent/turn/task-gate.js +34 -0
  394. package/dist/agent/turn/task-gate.js.map +1 -0
  395. package/dist/agent/turn/task-update-gate.d.ts +13 -0
  396. package/dist/agent/turn/task-update-gate.js +40 -0
  397. package/dist/agent/turn/task-update-gate.js.map +1 -0
  398. package/dist/agent/turn/task-work-signals.d.ts +3 -0
  399. package/dist/agent/turn/task-work-signals.js +44 -0
  400. package/dist/agent/turn/task-work-signals.js.map +1 -0
  401. package/dist/agent/turn/tool-call-preparation.d.ts +20 -0
  402. package/dist/agent/turn/tool-call-preparation.js +67 -0
  403. package/dist/agent/turn/tool-call-preparation.js.map +1 -0
  404. package/dist/agent/turn/tool-evidence-signals.d.ts +22 -0
  405. package/dist/agent/turn/tool-evidence-signals.js +101 -0
  406. package/dist/agent/turn/tool-evidence-signals.js.map +1 -0
  407. package/dist/agent/turn/tool-execution/authorization.d.ts +32 -0
  408. package/dist/agent/turn/tool-execution/authorization.js +100 -0
  409. package/dist/agent/turn/tool-execution/authorization.js.map +1 -0
  410. package/dist/agent/turn/tool-execution/deps.d.ts +74 -0
  411. package/dist/agent/turn/tool-execution/deps.js +2 -0
  412. package/dist/agent/turn/tool-execution/deps.js.map +1 -0
  413. package/dist/agent/turn/tool-execution/dispatch.d.ts +27 -0
  414. package/dist/agent/turn/tool-execution/dispatch.js +76 -0
  415. package/dist/agent/turn/tool-execution/dispatch.js.map +1 -0
  416. package/dist/agent/turn/tool-execution/engagement-checkpoint.d.ts +7 -0
  417. package/dist/agent/turn/tool-execution/engagement-checkpoint.js +32 -0
  418. package/dist/agent/turn/tool-execution/engagement-checkpoint.js.map +1 -0
  419. package/dist/agent/turn/tool-execution/engagement-gate.d.ts +16 -0
  420. package/dist/agent/turn/tool-execution/engagement-gate.js +55 -0
  421. package/dist/agent/turn/tool-execution/engagement-gate.js.map +1 -0
  422. package/dist/agent/turn/tool-execution/gates.d.ts +21 -0
  423. package/dist/agent/turn/tool-execution/gates.js +45 -0
  424. package/dist/agent/turn/tool-execution/gates.js.map +1 -0
  425. package/dist/agent/turn/tool-execution/guards.d.ts +42 -0
  426. package/dist/agent/turn/tool-execution/guards.js +62 -0
  427. package/dist/agent/turn/tool-execution/guards.js.map +1 -0
  428. package/dist/agent/turn/tool-execution/meta-tools.d.ts +50 -0
  429. package/dist/agent/turn/tool-execution/meta-tools.js +114 -0
  430. package/dist/agent/turn/tool-execution/meta-tools.js.map +1 -0
  431. package/dist/agent/turn/tool-execution/plan-tool-ledger.d.ts +10 -0
  432. package/dist/agent/turn/tool-execution/plan-tool-ledger.js +50 -0
  433. package/dist/agent/turn/tool-execution/plan-tool-ledger.js.map +1 -0
  434. package/dist/agent/turn/tool-execution/result-framing.d.ts +36 -0
  435. package/dist/agent/turn/tool-execution/result-framing.js +54 -0
  436. package/dist/agent/turn/tool-execution/result-framing.js.map +1 -0
  437. package/dist/agent/turn/tool-execution/run-setup.d.ts +29 -0
  438. package/dist/agent/turn/tool-execution/run-setup.js +64 -0
  439. package/dist/agent/turn/tool-execution/run-setup.js.map +1 -0
  440. package/dist/agent/turn/tool-execution/single-tool.d.ts +4 -0
  441. package/dist/agent/turn/tool-execution/single-tool.js +613 -0
  442. package/dist/agent/turn/tool-execution/single-tool.js.map +1 -0
  443. package/dist/agent/turn/tool-execution/state.d.ts +19 -0
  444. package/dist/agent/turn/tool-execution/state.js +13 -0
  445. package/dist/agent/turn/tool-execution/state.js.map +1 -0
  446. package/dist/agent/turn/tool-execution/supervision.d.ts +20 -0
  447. package/dist/agent/turn/tool-execution/supervision.js +44 -0
  448. package/dist/agent/turn/tool-execution/supervision.js.map +1 -0
  449. package/dist/agent/turn/tool-result-recorder.d.ts +26 -0
  450. package/dist/agent/turn/tool-result-recorder.js +54 -0
  451. package/dist/agent/turn/tool-result-recorder.js.map +1 -0
  452. package/dist/agent/turn/tool-routing.d.ts +23 -0
  453. package/dist/agent/turn/tool-routing.js +58 -0
  454. package/dist/agent/turn/tool-routing.js.map +1 -0
  455. package/dist/agent/turn/tool-watchdog.d.ts +22 -0
  456. package/dist/agent/turn/tool-watchdog.js +135 -0
  457. package/dist/agent/turn/tool-watchdog.js.map +1 -0
  458. package/dist/agent/turn/turn-counters.d.ts +9 -0
  459. package/dist/agent/turn/turn-counters.js +13 -0
  460. package/dist/agent/turn/turn-counters.js.map +1 -0
  461. package/dist/agent/turn/workspace-setup.d.ts +29 -0
  462. package/dist/agent/turn/workspace-setup.js +74 -0
  463. package/dist/agent/turn/workspace-setup.js.map +1 -0
  464. package/dist/agent/workspace-orient.d.ts +0 -45
  465. package/dist/agent/workspace-orient.js +3 -69
  466. package/dist/agent/workspace-orient.js.map +1 -1
  467. package/dist/app/adapters/agent-event-adapter.d.ts +0 -1
  468. package/dist/app/adapters/agent-event-adapter.js +1 -4
  469. package/dist/app/adapters/agent-event-adapter.js.map +1 -1
  470. package/dist/app/adapters/current-interactive-sessions-adapter.d.ts +0 -1
  471. package/dist/app/adapters/current-interactive-sessions-adapter.js +0 -1
  472. package/dist/app/adapters/current-interactive-sessions-adapter.js.map +1 -1
  473. package/dist/app/adapters/current-jobs-adapter.d.ts +0 -1
  474. package/dist/app/adapters/current-jobs-adapter.js +0 -1
  475. package/dist/app/adapters/current-jobs-adapter.js.map +1 -1
  476. package/dist/app/adapters/current-store-adapter.d.ts +0 -1
  477. package/dist/app/adapters/current-store-adapter.js +2 -2
  478. package/dist/app/adapters/current-store-adapter.js.map +1 -1
  479. package/dist/app/adapters/quiet-meta-tools.d.ts +0 -11
  480. package/dist/app/adapters/quiet-meta-tools.js +0 -11
  481. package/dist/app/adapters/quiet-meta-tools.js.map +1 -1
  482. package/dist/app/commands/catalog.d.ts +0 -8
  483. package/dist/app/commands/catalog.js +13 -32
  484. package/dist/app/commands/catalog.js.map +1 -1
  485. package/dist/app/commands/command.d.ts +0 -4
  486. package/dist/app/commands/command.js.map +1 -1
  487. package/dist/app/commands/registry.d.ts +0 -3
  488. package/dist/app/commands/registry.js +1 -7
  489. package/dist/app/commands/registry.js.map +1 -1
  490. package/dist/app/confirm-prompt-text.d.ts +0 -6
  491. package/dist/app/confirm-prompt-text.js +0 -6
  492. package/dist/app/confirm-prompt-text.js.map +1 -1
  493. package/dist/app/controllers/cancel-all-result.d.ts +0 -5
  494. package/dist/app/controllers/cancel-all-result.js +0 -5
  495. package/dist/app/controllers/cancel-all-result.js.map +1 -1
  496. package/dist/app/controllers/plan-controller.d.ts +0 -6
  497. package/dist/app/controllers/plan-controller.js +0 -11
  498. package/dist/app/controllers/plan-controller.js.map +1 -1
  499. package/dist/app/controllers/session-compact-helper.d.ts +0 -9
  500. package/dist/app/controllers/session-compact-helper.js +6 -18
  501. package/dist/app/controllers/session-compact-helper.js.map +1 -1
  502. package/dist/app/controllers/session-context-usage.d.ts +0 -11
  503. package/dist/app/controllers/session-context-usage.js +22 -30
  504. package/dist/app/controllers/session-context-usage.js.map +1 -1
  505. package/dist/app/controllers/session-controller.d.ts +1 -38
  506. package/dist/app/controllers/session-controller.js +9 -47
  507. package/dist/app/controllers/session-controller.js.map +1 -1
  508. package/dist/app/controllers/session-naming.d.ts +10 -4
  509. package/dist/app/controllers/session-naming.js +26 -8
  510. package/dist/app/controllers/session-naming.js.map +1 -1
  511. package/dist/app/controllers/session-persistence.d.ts +0 -6
  512. package/dist/app/controllers/session-persistence.js +0 -10
  513. package/dist/app/controllers/session-persistence.js.map +1 -1
  514. package/dist/app/controllers/session-responder.js +0 -4
  515. package/dist/app/controllers/session-responder.js.map +1 -1
  516. package/dist/app/controllers/session-turn-request.d.ts +0 -1
  517. package/dist/app/controllers/session-turn-request.js +0 -1
  518. package/dist/app/controllers/session-turn-request.js.map +1 -1
  519. package/dist/app/controllers/session-usage-ledger.d.ts +6 -1
  520. package/dist/app/controllers/session-usage-ledger.js +43 -3
  521. package/dist/app/controllers/session-usage-ledger.js.map +1 -1
  522. package/dist/app/controllers/turn-controller.js +2 -6
  523. package/dist/app/controllers/turn-controller.js.map +1 -1
  524. package/dist/app/events/app-event.d.ts +1 -11
  525. package/dist/app/events/app-event.js +0 -1
  526. package/dist/app/events/app-event.js.map +1 -1
  527. package/dist/app/events/event-buffer.d.ts +0 -6
  528. package/dist/app/events/event-buffer.js +0 -6
  529. package/dist/app/events/event-buffer.js.map +1 -1
  530. package/dist/app/events/sequencer.d.ts +0 -2
  531. package/dist/app/events/sequencer.js +0 -1
  532. package/dist/app/events/sequencer.js.map +1 -1
  533. package/dist/app/ports/agent-port.d.ts +0 -19
  534. package/dist/app/ports/interactive-sessions-port.d.ts +0 -13
  535. package/dist/app/ports/interactive-sessions-port.js +0 -7
  536. package/dist/app/ports/interactive-sessions-port.js.map +1 -1
  537. package/dist/app/ports/persistence-port.d.ts +2 -15
  538. package/dist/app/ports/updates-port.d.ts +0 -5
  539. package/dist/classic/app/ClassicApp.js +0 -2
  540. package/dist/classic/app/ClassicApp.js.map +1 -1
  541. package/dist/classic/app/action-handlers.js +0 -4
  542. package/dist/classic/app/action-handlers.js.map +1 -1
  543. package/dist/classic/app/git-branch.js +0 -1
  544. package/dist/classic/app/git-branch.js.map +1 -1
  545. package/dist/classic/app/use-feed.d.ts +0 -7
  546. package/dist/classic/app/use-feed.js +0 -5
  547. package/dist/classic/app/use-feed.js.map +1 -1
  548. package/dist/classic/app/wiring-interactions.js +0 -2
  549. package/dist/classic/app/wiring-interactions.js.map +1 -1
  550. package/dist/classic/blocks/assistant-lines.d.ts +0 -1
  551. package/dist/classic/blocks/assistant-lines.js +0 -1
  552. package/dist/classic/blocks/assistant-lines.js.map +1 -1
  553. package/dist/classic/blocks/batch-lines.d.ts +0 -1
  554. package/dist/classic/blocks/batch-lines.js +0 -1
  555. package/dist/classic/blocks/batch-lines.js.map +1 -1
  556. package/dist/classic/blocks/block-context.d.ts +0 -7
  557. package/dist/classic/blocks/block-context.js +0 -1
  558. package/dist/classic/blocks/block-context.js.map +1 -1
  559. package/dist/classic/blocks/compacted-lines.d.ts +0 -1
  560. package/dist/classic/blocks/compacted-lines.js +0 -1
  561. package/dist/classic/blocks/compacted-lines.js.map +1 -1
  562. package/dist/classic/blocks/diff-lines.d.ts +0 -3
  563. package/dist/classic/blocks/diff-lines.js +0 -4
  564. package/dist/classic/blocks/diff-lines.js.map +1 -1
  565. package/dist/classic/blocks/intro-lines.d.ts +0 -5
  566. package/dist/classic/blocks/intro-lines.js +0 -5
  567. package/dist/classic/blocks/intro-lines.js.map +1 -1
  568. package/dist/classic/blocks/notice-lines.d.ts +0 -4
  569. package/dist/classic/blocks/notice-lines.js +0 -6
  570. package/dist/classic/blocks/notice-lines.js.map +1 -1
  571. package/dist/classic/blocks/thinking-lines.d.ts +0 -1
  572. package/dist/classic/blocks/thinking-lines.js +0 -1
  573. package/dist/classic/blocks/thinking-lines.js.map +1 -1
  574. package/dist/classic/blocks/tool-lines.d.ts +0 -7
  575. package/dist/classic/blocks/tool-lines.js +0 -10
  576. package/dist/classic/blocks/tool-lines.js.map +1 -1
  577. package/dist/classic/blocks/user-lines.d.ts +0 -1
  578. package/dist/classic/blocks/user-lines.js +0 -1
  579. package/dist/classic/blocks/user-lines.js.map +1 -1
  580. package/dist/classic/bootstrap/osc52-renderer.js +0 -1
  581. package/dist/classic/bootstrap/osc52-renderer.js.map +1 -1
  582. package/dist/classic/chrome/Chrome.d.ts +0 -1
  583. package/dist/classic/chrome/Chrome.js.map +1 -1
  584. package/dist/classic/chrome/Composer.d.ts +0 -5
  585. package/dist/classic/chrome/Composer.js +0 -5
  586. package/dist/classic/chrome/Composer.js.map +1 -1
  587. package/dist/classic/chrome/composer-controller.js +0 -4
  588. package/dist/classic/chrome/composer-controller.js.map +1 -1
  589. package/dist/classic/chrome/composer-frame.d.ts +0 -3
  590. package/dist/classic/chrome/composer-frame.js +0 -3
  591. package/dist/classic/chrome/composer-frame.js.map +1 -1
  592. package/dist/classic/chrome/directory-row.d.ts +0 -7
  593. package/dist/classic/chrome/directory-row.js +0 -7
  594. package/dist/classic/chrome/directory-row.js.map +1 -1
  595. package/dist/classic/chrome/row-budget.d.ts +0 -2
  596. package/dist/classic/chrome/row-budget.js +0 -8
  597. package/dist/classic/chrome/row-budget.js.map +1 -1
  598. package/dist/classic/chrome/status-rows.d.ts +0 -12
  599. package/dist/classic/chrome/status-rows.js +0 -16
  600. package/dist/classic/chrome/status-rows.js.map +1 -1
  601. package/dist/classic/chrome/toast-rows.d.ts +0 -4
  602. package/dist/classic/chrome/toast-rows.js +0 -9
  603. package/dist/classic/chrome/toast-rows.js.map +1 -1
  604. package/dist/classic/feed/Feed.d.ts +0 -5
  605. package/dist/classic/feed/Feed.js +0 -4
  606. package/dist/classic/feed/Feed.js.map +1 -1
  607. package/dist/classic/feed/FeedStatic.d.ts +0 -8
  608. package/dist/classic/feed/FeedStatic.js +0 -8
  609. package/dist/classic/feed/FeedStatic.js.map +1 -1
  610. package/dist/classic/feed/ScrollbarGutter.js +0 -1
  611. package/dist/classic/feed/ScrollbarGutter.js.map +1 -1
  612. package/dist/classic/feed/block-height.d.ts +0 -7
  613. package/dist/classic/feed/block-height.js +0 -7
  614. package/dist/classic/feed/block-height.js.map +1 -1
  615. package/dist/classic/feed/commit-ledger.d.ts +0 -12
  616. package/dist/classic/feed/commit-ledger.js +0 -10
  617. package/dist/classic/feed/commit-ledger.js.map +1 -1
  618. package/dist/classic/feed/feed-blocks.d.ts +0 -8
  619. package/dist/classic/feed/feed-blocks.js +0 -6
  620. package/dist/classic/feed/feed-blocks.js.map +1 -1
  621. package/dist/classic/feed/live-tail-policy.d.ts +0 -13
  622. package/dist/classic/feed/live-tail-policy.js +0 -11
  623. package/dist/classic/feed/live-tail-policy.js.map +1 -1
  624. package/dist/classic/feed/scrollbar-rows.d.ts +0 -1
  625. package/dist/classic/feed/scrollbar-rows.js +0 -1
  626. package/dist/classic/feed/scrollbar-rows.js.map +1 -1
  627. package/dist/classic/feed/transcript-window.d.ts +0 -10
  628. package/dist/classic/feed/transcript-window.js +0 -6
  629. package/dist/classic/feed/transcript-window.js.map +1 -1
  630. package/dist/classic/input/input-router.js +0 -2
  631. package/dist/classic/input/input-router.js.map +1 -1
  632. package/dist/classic/panels/completion-rows.js +2 -1
  633. package/dist/classic/panels/completion-rows.js.map +1 -1
  634. package/dist/classic/panels/keys-panel.d.ts +0 -1
  635. package/dist/classic/panels/keys-panel.js +0 -1
  636. package/dist/classic/panels/keys-panel.js.map +1 -1
  637. package/dist/classic/panels/pager-panel.d.ts +0 -5
  638. package/dist/classic/panels/pager-panel.js +0 -11
  639. package/dist/classic/panels/pager-panel.js.map +1 -1
  640. package/dist/classic/panels/panel-controller.d.ts +0 -2
  641. package/dist/classic/panels/panel-controller.js +0 -2
  642. package/dist/classic/panels/panel-controller.js.map +1 -1
  643. package/dist/classic/panels/panel-frame.js +0 -2
  644. package/dist/classic/panels/panel-frame.js.map +1 -1
  645. package/dist/classic/panels/panel-wheel.d.ts +0 -5
  646. package/dist/classic/panels/panel-wheel.js +0 -5
  647. package/dist/classic/panels/panel-wheel.js.map +1 -1
  648. package/dist/classic/panels/secret-panel.d.ts +0 -1
  649. package/dist/classic/panels/secret-panel.js +0 -1
  650. package/dist/classic/panels/secret-panel.js.map +1 -1
  651. package/dist/classic/panels/text-editor-panel.d.ts +0 -1
  652. package/dist/classic/panels/text-editor-panel.js +0 -1
  653. package/dist/classic/panels/text-editor-panel.js.map +1 -1
  654. package/dist/classic/render/ansi-text.d.ts +0 -19
  655. package/dist/classic/render/ansi-text.js +0 -19
  656. package/dist/classic/render/ansi-text.js.map +1 -1
  657. package/dist/classic/render/glyphs.d.ts +0 -4
  658. package/dist/classic/render/glyphs.js +0 -4
  659. package/dist/classic/render/glyphs.js.map +1 -1
  660. package/dist/classic/render/ink-theme.d.ts +0 -10
  661. package/dist/classic/render/ink-theme.js +0 -6
  662. package/dist/classic/render/ink-theme.js.map +1 -1
  663. package/dist/classic/render/measure.d.ts +0 -12
  664. package/dist/classic/render/measure.js +0 -12
  665. package/dist/classic/render/measure.js.map +1 -1
  666. package/dist/classic/render/shell-width.d.ts +0 -8
  667. package/dist/classic/render/shell-width.js +0 -8
  668. package/dist/classic/render/shell-width.js.map +1 -1
  669. package/dist/classic/render/wrap.d.ts +0 -11
  670. package/dist/classic/render/wrap.js +0 -8
  671. package/dist/classic/render/wrap.js.map +1 -1
  672. package/dist/commands/doctor.js +0 -2
  673. package/dist/commands/doctor.js.map +1 -1
  674. package/dist/commands/providers.d.ts +0 -1
  675. package/dist/commands/providers.js +0 -22
  676. package/dist/commands/providers.js.map +1 -1
  677. package/dist/commands/search-providers.d.ts +0 -1
  678. package/dist/commands/search-providers.js +0 -4
  679. package/dist/commands/search-providers.js.map +1 -1
  680. package/dist/commands/update/installers.d.ts +61 -0
  681. package/dist/commands/update/installers.js +505 -0
  682. package/dist/commands/update/installers.js.map +1 -0
  683. package/dist/commands/update-install.d.ts +4 -65
  684. package/dist/commands/update-install.js +6 -506
  685. package/dist/commands/update-install.js.map +1 -1
  686. package/dist/commands/update.d.ts +0 -6
  687. package/dist/commands/update.js +1 -11
  688. package/dist/commands/update.js.map +1 -1
  689. package/dist/index.js +3 -10
  690. package/dist/index.js.map +1 -1
  691. package/dist/interactive-session/artifact-writer.d.ts +0 -1
  692. package/dist/interactive-session/artifact-writer.js +0 -1
  693. package/dist/interactive-session/artifact-writer.js.map +1 -1
  694. package/dist/interactive-session/cleanup.d.ts +0 -10
  695. package/dist/interactive-session/cleanup.js +0 -13
  696. package/dist/interactive-session/cleanup.js.map +1 -1
  697. package/dist/interactive-session/config.d.ts +0 -16
  698. package/dist/interactive-session/config.js +0 -13
  699. package/dist/interactive-session/config.js.map +1 -1
  700. package/dist/interactive-session/manager.d.ts +0 -27
  701. package/dist/interactive-session/manager.js +0 -42
  702. package/dist/interactive-session/manager.js.map +1 -1
  703. package/dist/interactive-session/output-store.d.ts +0 -6
  704. package/dist/interactive-session/output-store.js +0 -5
  705. package/dist/interactive-session/output-store.js.map +1 -1
  706. package/dist/interactive-session/output-view.d.ts +0 -4
  707. package/dist/interactive-session/output-view.js +0 -12
  708. package/dist/interactive-session/output-view.js.map +1 -1
  709. package/dist/interactive-session/recovery-journal.d.ts +0 -7
  710. package/dist/interactive-session/recovery-journal.js +0 -7
  711. package/dist/interactive-session/recovery-journal.js.map +1 -1
  712. package/dist/interactive-session/registry.d.ts +0 -25
  713. package/dist/interactive-session/registry.js +0 -27
  714. package/dist/interactive-session/registry.js.map +1 -1
  715. package/dist/interactive-session/runtime.d.ts +0 -30
  716. package/dist/interactive-session/runtime.js +0 -23
  717. package/dist/interactive-session/runtime.js.map +1 -1
  718. package/dist/interactive-session/session-runtime.d.ts +0 -9
  719. package/dist/interactive-session/session-runtime.js +0 -10
  720. package/dist/interactive-session/session-runtime.js.map +1 -1
  721. package/dist/interactive-session/streaming-redactor.d.ts +0 -14
  722. package/dist/interactive-session/streaming-redactor.js +0 -18
  723. package/dist/interactive-session/streaming-redactor.js.map +1 -1
  724. package/dist/interactive-session/telemetry.d.ts +0 -8
  725. package/dist/interactive-session/telemetry.js +0 -7
  726. package/dist/interactive-session/telemetry.js.map +1 -1
  727. package/dist/interactive-session/transport-factory.d.ts +0 -5
  728. package/dist/interactive-session/transport-factory.js +0 -5
  729. package/dist/interactive-session/transport-factory.js.map +1 -1
  730. package/dist/interactive-session/transport-pipe.d.ts +0 -7
  731. package/dist/interactive-session/transport-pipe.js +0 -14
  732. package/dist/interactive-session/transport-pipe.js.map +1 -1
  733. package/dist/interactive-session/transport.d.ts +0 -26
  734. package/dist/interactive-session/transport.js +0 -20
  735. package/dist/interactive-session/transport.js.map +1 -1
  736. package/dist/interactive-session/types.d.ts +0 -19
  737. package/dist/interactive-session/types.js +0 -22
  738. package/dist/interactive-session/types.js.map +1 -1
  739. package/dist/llm/adapters/anthropic-stream-events.d.ts +38 -0
  740. package/dist/llm/adapters/anthropic-stream-events.js +144 -0
  741. package/dist/llm/adapters/anthropic-stream-events.js.map +1 -0
  742. package/dist/llm/adapters/anthropic-tools.d.ts +5 -55
  743. package/dist/llm/adapters/anthropic-tools.js +6 -208
  744. package/dist/llm/adapters/anthropic-tools.js.map +1 -1
  745. package/dist/llm/adapters/anthropic-wire-blocks.d.ts +9 -0
  746. package/dist/llm/adapters/anthropic-wire-blocks.js +59 -0
  747. package/dist/llm/adapters/anthropic-wire-blocks.js.map +1 -0
  748. package/dist/llm/adapters/gemini-tools.d.ts +0 -6
  749. package/dist/llm/adapters/gemini-tools.js +0 -24
  750. package/dist/llm/adapters/gemini-tools.js.map +1 -1
  751. package/dist/llm/adapters/ollama-tools.js +0 -5
  752. package/dist/llm/adapters/ollama-tools.js.map +1 -1
  753. package/dist/llm/adapters/openai-tools.d.ts +0 -4
  754. package/dist/llm/adapters/openai-tools.js +2 -11
  755. package/dist/llm/adapters/openai-tools.js.map +1 -1
  756. package/dist/llm/agentrouter.d.ts +0 -9
  757. package/dist/llm/agentrouter.js +10 -60
  758. package/dist/llm/agentrouter.js.map +1 -1
  759. package/dist/llm/anthropic.d.ts +0 -7
  760. package/dist/llm/anthropic.js +2 -30
  761. package/dist/llm/anthropic.js.map +1 -1
  762. package/dist/llm/artifacts/legacy-blocks.d.ts +3 -0
  763. package/dist/llm/artifacts/legacy-blocks.js +109 -0
  764. package/dist/llm/artifacts/legacy-blocks.js.map +1 -0
  765. package/dist/llm/artifacts/replay-selection.d.ts +9 -0
  766. package/dist/llm/artifacts/replay-selection.js +48 -0
  767. package/dist/llm/artifacts/replay-selection.js.map +1 -0
  768. package/dist/llm/aws-mantle.js +2 -4
  769. package/dist/llm/aws-mantle.js.map +1 -1
  770. package/dist/llm/bynara.js +2 -0
  771. package/dist/llm/bynara.js.map +1 -1
  772. package/dist/llm/cache-affinity.d.ts +1 -0
  773. package/dist/llm/cache-affinity.js +6 -0
  774. package/dist/llm/cache-affinity.js.map +1 -1
  775. package/dist/llm/capabilities.d.ts +7 -36
  776. package/dist/llm/capabilities.js +11 -502
  777. package/dist/llm/capabilities.js.map +1 -1
  778. package/dist/llm/capability/state.d.ts +25 -0
  779. package/dist/llm/capability/state.js +125 -0
  780. package/dist/llm/capability/state.js.map +1 -0
  781. package/dist/llm/capability/tool-dialect.d.ts +3 -0
  782. package/dist/llm/capability/tool-dialect.js +78 -0
  783. package/dist/llm/capability/tool-dialect.js.map +1 -0
  784. package/dist/llm/capability/vision-patterns.d.ts +4 -0
  785. package/dist/llm/capability/vision-patterns.js +188 -0
  786. package/dist/llm/capability/vision-patterns.js.map +1 -0
  787. package/dist/llm/capability/vision-registry.d.ts +20 -0
  788. package/dist/llm/capability/vision-registry.js +112 -0
  789. package/dist/llm/capability/vision-registry.js.map +1 -0
  790. package/dist/llm/context-snapshot.d.ts +0 -18
  791. package/dist/llm/context-snapshot.js +1 -8
  792. package/dist/llm/context-snapshot.js.map +1 -1
  793. package/dist/llm/context-windows.d.ts +0 -6
  794. package/dist/llm/context-windows.js +0 -30
  795. package/dist/llm/context-windows.js.map +1 -1
  796. package/dist/llm/custom-provider-profile.d.ts +4 -23
  797. package/dist/llm/custom-provider-profile.js +4 -515
  798. package/dist/llm/custom-provider-profile.js.map +1 -1
  799. package/dist/llm/custom-providers.d.ts +0 -23
  800. package/dist/llm/custom-providers.js +2 -27
  801. package/dist/llm/custom-providers.js.map +1 -1
  802. package/dist/llm/effort-fallback.d.ts +0 -38
  803. package/dist/llm/effort-fallback.js +0 -38
  804. package/dist/llm/effort-fallback.js.map +1 -1
  805. package/dist/llm/fireworks.js +2 -0
  806. package/dist/llm/fireworks.js.map +1 -1
  807. package/dist/llm/free.js +7 -2
  808. package/dist/llm/free.js.map +1 -1
  809. package/dist/llm/gemini.d.ts +0 -1
  810. package/dist/llm/gemini.js +2 -19
  811. package/dist/llm/gemini.js.map +1 -1
  812. package/dist/llm/hetzner.js +2 -0
  813. package/dist/llm/hetzner.js.map +1 -1
  814. package/dist/llm/http.d.ts +24 -251
  815. package/dist/llm/http.js +19 -2021
  816. package/dist/llm/http.js.map +1 -1
  817. package/dist/llm/key-rotation.d.ts +0 -32
  818. package/dist/llm/key-rotation.js +6 -37
  819. package/dist/llm/key-rotation.js.map +1 -1
  820. package/dist/llm/lightning.d.ts +0 -8
  821. package/dist/llm/lightning.js +3 -18
  822. package/dist/llm/lightning.js.map +1 -1
  823. package/dist/llm/merge-gateway.d.ts +0 -9
  824. package/dist/llm/merge-gateway.js +2 -44
  825. package/dist/llm/merge-gateway.js.map +1 -1
  826. package/dist/llm/modal.js +3 -15
  827. package/dist/llm/modal.js.map +1 -1
  828. package/dist/llm/model-families.d.ts +1 -6
  829. package/dist/llm/model-families.js +2 -5
  830. package/dist/llm/model-families.js.map +1 -1
  831. package/dist/llm/model-layers/model-patterns.d.ts +7 -0
  832. package/dist/llm/model-layers/model-patterns.js +30 -0
  833. package/dist/llm/model-layers/model-patterns.js.map +1 -0
  834. package/dist/llm/model-layers/model-rules.d.ts +8 -0
  835. package/dist/llm/model-layers/model-rules.js +221 -0
  836. package/dist/llm/model-layers/model-rules.js.map +1 -0
  837. package/dist/llm/model-layers/nvidia-layer.d.ts +2 -0
  838. package/dist/llm/model-layers/nvidia-layer.js +135 -0
  839. package/dist/llm/model-layers/nvidia-layer.js.map +1 -0
  840. package/dist/llm/nvidia.js +3 -11
  841. package/dist/llm/nvidia.js.map +1 -1
  842. package/dist/llm/ollama.js +2 -11
  843. package/dist/llm/ollama.js.map +1 -1
  844. package/dist/llm/openai.js +2 -0
  845. package/dist/llm/openai.js.map +1 -1
  846. package/dist/llm/openrouter.js +3 -1
  847. package/dist/llm/openrouter.js.map +1 -1
  848. package/dist/llm/operation-ledger.d.ts +0 -6
  849. package/dist/llm/operation-ledger.js +0 -6
  850. package/dist/llm/operation-ledger.js.map +1 -1
  851. package/dist/llm/operation-usage.d.ts +2 -0
  852. package/dist/llm/operation-usage.js +27 -0
  853. package/dist/llm/operation-usage.js.map +1 -1
  854. package/dist/llm/orcarouter.d.ts +0 -4
  855. package/dist/llm/orcarouter.js +3 -26
  856. package/dist/llm/orcarouter.js.map +1 -1
  857. package/dist/llm/profile/control-rejections.d.ts +14 -0
  858. package/dist/llm/profile/control-rejections.js +75 -0
  859. package/dist/llm/profile/control-rejections.js.map +1 -0
  860. package/dist/llm/profile/custom-layer.d.ts +3 -0
  861. package/dist/llm/profile/custom-layer.js +83 -0
  862. package/dist/llm/profile/custom-layer.js.map +1 -0
  863. package/dist/llm/profile/layer-merge.d.ts +3 -0
  864. package/dist/llm/profile/layer-merge.js +185 -0
  865. package/dist/llm/profile/layer-merge.js.map +1 -0
  866. package/dist/llm/profile/spec-validation.d.ts +5 -0
  867. package/dist/llm/profile/spec-validation.js +289 -0
  868. package/dist/llm/profile/spec-validation.js.map +1 -0
  869. package/dist/llm/profile/spec-vocabulary.d.ts +21 -0
  870. package/dist/llm/profile/spec-vocabulary.js +142 -0
  871. package/dist/llm/profile/spec-vocabulary.js.map +1 -0
  872. package/dist/llm/provider-identity.d.ts +5 -0
  873. package/dist/llm/provider-identity.js +130 -0
  874. package/dist/llm/provider-identity.js.map +1 -0
  875. package/dist/llm/provider-info-text.d.ts +1 -0
  876. package/dist/llm/provider-info-text.js +587 -0
  877. package/dist/llm/provider-info-text.js.map +1 -0
  878. package/dist/llm/provider-model-layers.d.ts +2 -0
  879. package/dist/llm/provider-model-layers.js +21 -380
  880. package/dist/llm/provider-model-layers.js.map +1 -1
  881. package/dist/llm/provider-profile-layers.js +0 -2
  882. package/dist/llm/provider-profile-layers.js.map +1 -1
  883. package/dist/llm/provider-profile.d.ts +10 -12
  884. package/dist/llm/provider-profile.js +6 -265
  885. package/dist/llm/provider-profile.js.map +1 -1
  886. package/dist/llm/provider.d.ts +4 -16
  887. package/dist/llm/provider.js +6 -760
  888. package/dist/llm/provider.js.map +1 -1
  889. package/dist/llm/qwen-cloud.js +2 -4
  890. package/dist/llm/qwen-cloud.js.map +1 -1
  891. package/dist/llm/reasoning-artifacts.d.ts +5 -50
  892. package/dist/llm/reasoning-artifacts.js +11 -198
  893. package/dist/llm/reasoning-artifacts.js.map +1 -1
  894. package/dist/llm/reasoning-capability.js +1 -17
  895. package/dist/llm/reasoning-capability.js.map +1 -1
  896. package/dist/llm/request-fingerprint.d.ts +0 -4
  897. package/dist/llm/request-fingerprint.js +0 -4
  898. package/dist/llm/request-fingerprint.js.map +1 -1
  899. package/dist/llm/request-plan.d.ts +0 -14
  900. package/dist/llm/request-plan.js +0 -23
  901. package/dist/llm/request-plan.js.map +1 -1
  902. package/dist/llm/responses/item-events.d.ts +3 -0
  903. package/dist/llm/responses/item-events.js +93 -0
  904. package/dist/llm/responses/item-events.js.map +1 -0
  905. package/dist/llm/responses-complete.d.ts +1 -1
  906. package/dist/llm/responses-complete.js +2 -1
  907. package/dist/llm/responses-complete.js.map +1 -1
  908. package/dist/llm/responses-config.js.map +1 -1
  909. package/dist/llm/responses-http.d.ts +1 -0
  910. package/dist/llm/responses-http.js +3 -1
  911. package/dist/llm/responses-http.js.map +1 -1
  912. package/dist/llm/responses-parse.d.ts +3 -0
  913. package/dist/llm/responses-parse.js +19 -6
  914. package/dist/llm/responses-parse.js.map +1 -1
  915. package/dist/llm/responses-request.d.ts +3 -1
  916. package/dist/llm/responses-request.js +18 -3
  917. package/dist/llm/responses-request.js.map +1 -1
  918. package/dist/llm/responses-shape.d.ts +5 -0
  919. package/dist/llm/responses-shape.js +16 -0
  920. package/dist/llm/responses-shape.js.map +1 -0
  921. package/dist/llm/responses-stream-accumulator.d.ts +1 -1
  922. package/dist/llm/responses-stream-accumulator.js +8 -9
  923. package/dist/llm/responses-stream-accumulator.js.map +1 -1
  924. package/dist/llm/responses-stream-events.d.ts +2 -0
  925. package/dist/llm/responses-stream-events.js +34 -102
  926. package/dist/llm/responses-stream-events.js.map +1 -1
  927. package/dist/llm/responses-stream-watchdog.js.map +1 -1
  928. package/dist/llm/responses-stream.js +9 -4
  929. package/dist/llm/responses-stream.js.map +1 -1
  930. package/dist/llm/router.d.ts +7 -44
  931. package/dist/llm/router.js +24 -1145
  932. package/dist/llm/router.js.map +1 -1
  933. package/dist/llm/routing/attempt-complete.d.ts +3 -0
  934. package/dist/llm/routing/attempt-complete.js +120 -0
  935. package/dist/llm/routing/attempt-complete.js.map +1 -0
  936. package/dist/llm/routing/attempt-request.d.ts +21 -0
  937. package/dist/llm/routing/attempt-request.js +99 -0
  938. package/dist/llm/routing/attempt-request.js.map +1 -0
  939. package/dist/llm/routing/attempt-stream.d.ts +3 -0
  940. package/dist/llm/routing/attempt-stream.js +256 -0
  941. package/dist/llm/routing/attempt-stream.js.map +1 -0
  942. package/dist/llm/routing/error-classification.d.ts +15 -0
  943. package/dist/llm/routing/error-classification.js +151 -0
  944. package/dist/llm/routing/error-classification.js.map +1 -0
  945. package/dist/llm/routing/failure-report.d.ts +22 -0
  946. package/dist/llm/routing/failure-report.js +128 -0
  947. package/dist/llm/routing/failure-report.js.map +1 -0
  948. package/dist/llm/routing/key-rotation.d.ts +21 -0
  949. package/dist/llm/routing/key-rotation.js +207 -0
  950. package/dist/llm/routing/key-rotation.js.map +1 -0
  951. package/dist/llm/routing/provider-selection.d.ts +8 -0
  952. package/dist/llm/routing/provider-selection.js +119 -0
  953. package/dist/llm/routing/provider-selection.js.map +1 -0
  954. package/dist/llm/sampling.d.ts +0 -15
  955. package/dist/llm/sampling.js +0 -9
  956. package/dist/llm/sampling.js.map +1 -1
  957. package/dist/llm/session-affinity.d.ts +2 -0
  958. package/dist/llm/session-affinity.js +9 -0
  959. package/dist/llm/session-affinity.js.map +1 -0
  960. package/dist/llm/stream-progress.d.ts +0 -1
  961. package/dist/llm/stream-progress.js +0 -15
  962. package/dist/llm/stream-progress.js.map +1 -1
  963. package/dist/llm/system-messages.d.ts +0 -22
  964. package/dist/llm/system-messages.js +6 -22
  965. package/dist/llm/system-messages.js.map +1 -1
  966. package/dist/llm/token-estimate-calibration.d.ts +0 -6
  967. package/dist/llm/token-estimate-calibration.js +0 -26
  968. package/dist/llm/token-estimate-calibration.js.map +1 -1
  969. package/dist/llm/token-usage.d.ts +8 -69
  970. package/dist/llm/token-usage.js +10 -257
  971. package/dist/llm/token-usage.js.map +1 -1
  972. package/dist/llm/tokenrouter.d.ts +0 -12
  973. package/dist/llm/tokenrouter.js +3 -14
  974. package/dist/llm/tokenrouter.js.map +1 -1
  975. package/dist/llm/tool-protocol.d.ts +3 -22
  976. package/dist/llm/tool-protocol.js +20 -155
  977. package/dist/llm/tool-protocol.js.map +1 -1
  978. package/dist/llm/tool-wire/argument-repair.d.ts +4 -0
  979. package/dist/llm/tool-wire/argument-repair.js +174 -0
  980. package/dist/llm/tool-wire/argument-repair.js.map +1 -0
  981. package/dist/llm/transport-events.d.ts +12 -0
  982. package/dist/llm/transport-events.js +29 -0
  983. package/dist/llm/transport-events.js.map +1 -0
  984. package/dist/llm/usage/provider-parsers.d.ts +11 -0
  985. package/dist/llm/usage/provider-parsers.js +220 -0
  986. package/dist/llm/usage/provider-parsers.js.map +1 -0
  987. package/dist/llm/wire/abort-race.d.ts +1 -0
  988. package/dist/llm/wire/abort-race.js +34 -0
  989. package/dist/llm/wire/abort-race.js.map +1 -0
  990. package/dist/llm/wire/capability-errors.d.ts +11 -0
  991. package/dist/llm/wire/capability-errors.js +92 -0
  992. package/dist/llm/wire/capability-errors.js.map +1 -0
  993. package/dist/llm/wire/chat-body.d.ts +40 -0
  994. package/dist/llm/wire/chat-body.js +172 -0
  995. package/dist/llm/wire/chat-body.js.map +1 -0
  996. package/dist/llm/wire/model-catalog.d.ts +4 -0
  997. package/dist/llm/wire/model-catalog.js +34 -0
  998. package/dist/llm/wire/model-catalog.js.map +1 -0
  999. package/dist/llm/wire/openai-complete.d.ts +27 -0
  1000. package/dist/llm/wire/openai-complete.js +138 -0
  1001. package/dist/llm/wire/openai-complete.js.map +1 -0
  1002. package/dist/llm/wire/openai-stream.d.ts +36 -0
  1003. package/dist/llm/wire/openai-stream.js +665 -0
  1004. package/dist/llm/wire/openai-stream.js.map +1 -0
  1005. package/dist/llm/wire/reasoning-artifacts.d.ts +45 -0
  1006. package/dist/llm/wire/reasoning-artifacts.js +140 -0
  1007. package/dist/llm/wire/reasoning-artifacts.js.map +1 -0
  1008. package/dist/llm/wire/reasoning-payload.d.ts +9 -0
  1009. package/dist/llm/wire/reasoning-payload.js +226 -0
  1010. package/dist/llm/wire/reasoning-payload.js.map +1 -0
  1011. package/dist/llm/wire/response-errors.d.ts +5 -0
  1012. package/dist/llm/wire/response-errors.js +182 -0
  1013. package/dist/llm/wire/response-errors.js.map +1 -0
  1014. package/dist/llm/wire/responses-first.d.ts +30 -0
  1015. package/dist/llm/wire/responses-first.js +366 -0
  1016. package/dist/llm/wire/responses-first.js.map +1 -0
  1017. package/dist/llm/wire/stream-framing.d.ts +38 -0
  1018. package/dist/llm/wire/stream-framing.js +217 -0
  1019. package/dist/llm/wire/stream-framing.js.map +1 -0
  1020. package/dist/mcp/runtime.d.ts +0 -15
  1021. package/dist/mcp/runtime.js +0 -8
  1022. package/dist/mcp/runtime.js.map +1 -1
  1023. package/dist/modes/ask.d.ts +0 -3
  1024. package/dist/modes/ask.js +0 -22
  1025. package/dist/modes/ask.js.map +1 -1
  1026. package/dist/noninteractive/blocks/tool-blocks.d.ts +35 -0
  1027. package/dist/noninteractive/blocks/tool-blocks.js +206 -0
  1028. package/dist/noninteractive/blocks/tool-blocks.js.map +1 -0
  1029. package/dist/noninteractive/readline-prompts.d.ts +0 -21
  1030. package/dist/noninteractive/readline-prompts.js +0 -31
  1031. package/dist/noninteractive/readline-prompts.js.map +1 -1
  1032. package/dist/noninteractive/stdio-confirm-port.d.ts +0 -9
  1033. package/dist/noninteractive/stdio-confirm-port.js +0 -9
  1034. package/dist/noninteractive/stdio-confirm-port.js.map +1 -1
  1035. package/dist/noninteractive/stream-blocks.d.ts +3 -49
  1036. package/dist/noninteractive/stream-blocks.js +14 -234
  1037. package/dist/noninteractive/stream-blocks.js.map +1 -1
  1038. package/dist/noninteractive/stream-renderer.d.ts +0 -10
  1039. package/dist/noninteractive/stream-renderer.js +0 -10
  1040. package/dist/noninteractive/stream-renderer.js.map +1 -1
  1041. package/dist/noninteractive/stream-spinner.d.ts +0 -8
  1042. package/dist/noninteractive/stream-spinner.js +0 -8
  1043. package/dist/noninteractive/stream-spinner.js.map +1 -1
  1044. package/dist/os/bun-runtime.d.ts +0 -15
  1045. package/dist/os/bun-runtime.js +0 -33
  1046. package/dist/os/bun-runtime.js.map +1 -1
  1047. package/dist/os/command.d.ts +0 -6
  1048. package/dist/os/command.js +0 -13
  1049. package/dist/os/command.js.map +1 -1
  1050. package/dist/os/cwd.d.ts +0 -5
  1051. package/dist/os/cwd.js +0 -6
  1052. package/dist/os/cwd.js.map +1 -1
  1053. package/dist/os/permissions.d.ts +0 -11
  1054. package/dist/os/permissions.js +0 -13
  1055. package/dist/os/permissions.js.map +1 -1
  1056. package/dist/os/process-identity.d.ts +0 -22
  1057. package/dist/os/process-identity.js +0 -23
  1058. package/dist/os/process-identity.js.map +1 -1
  1059. package/dist/os/process-tree.d.ts +0 -7
  1060. package/dist/os/process-tree.js +0 -8
  1061. package/dist/os/process-tree.js.map +1 -1
  1062. package/dist/prompts/index.d.ts +0 -36
  1063. package/dist/prompts/index.js +0 -46
  1064. package/dist/prompts/index.js.map +1 -1
  1065. package/dist/safety/classifier.d.ts +5 -26
  1066. package/dist/safety/classifier.js +5 -573
  1067. package/dist/safety/classifier.js.map +1 -1
  1068. package/dist/safety/engagement-policy.d.ts +0 -13
  1069. package/dist/safety/engagement-policy.js +0 -32
  1070. package/dist/safety/engagement-policy.js.map +1 -1
  1071. package/dist/safety/patterns.d.ts +0 -108
  1072. package/dist/safety/patterns.js +0 -159
  1073. package/dist/safety/patterns.js.map +1 -1
  1074. package/dist/safety/shell-classification.d.ts +19 -0
  1075. package/dist/safety/shell-classification.js +215 -0
  1076. package/dist/safety/shell-classification.js.map +1 -0
  1077. package/dist/safety/tool-classification.d.ts +4 -0
  1078. package/dist/safety/tool-classification.js +260 -0
  1079. package/dist/safety/tool-classification.js.map +1 -0
  1080. package/dist/store/config/endpoints.d.ts +86 -0
  1081. package/dist/store/config/endpoints.js +297 -0
  1082. package/dist/store/config/endpoints.js.map +1 -0
  1083. package/dist/store/config/settings.d.ts +11 -0
  1084. package/dist/store/config/settings.js +52 -0
  1085. package/dist/store/config/settings.js.map +1 -0
  1086. package/dist/store/config.d.ts +6 -169
  1087. package/dist/store/config.js +4 -411
  1088. package/dist/store/config.js.map +1 -1
  1089. package/dist/store/engagement.d.ts +0 -1
  1090. package/dist/store/engagement.js +0 -3
  1091. package/dist/store/engagement.js.map +1 -1
  1092. package/dist/store/history/jsonl-backend.d.ts +7 -0
  1093. package/dist/store/history/jsonl-backend.js +151 -0
  1094. package/dist/store/history/jsonl-backend.js.map +1 -0
  1095. package/dist/store/history/jsonl-lock.d.ts +2 -0
  1096. package/dist/store/history/jsonl-lock.js +100 -0
  1097. package/dist/store/history/jsonl-lock.js.map +1 -0
  1098. package/dist/store/history/lifecycle.d.ts +14 -0
  1099. package/dist/store/history/lifecycle.js +316 -0
  1100. package/dist/store/history/lifecycle.js.map +1 -0
  1101. package/dist/store/history/recovery.d.ts +63 -0
  1102. package/dist/store/history/recovery.js +253 -0
  1103. package/dist/store/history/recovery.js.map +1 -0
  1104. package/dist/store/history/session-queries.d.ts +9 -0
  1105. package/dist/store/history/session-queries.js +142 -0
  1106. package/dist/store/history/session-queries.js.map +1 -0
  1107. package/dist/store/history/sqlite-backend.d.ts +26 -0
  1108. package/dist/store/history/sqlite-backend.js +212 -0
  1109. package/dist/store/history/sqlite-backend.js.map +1 -0
  1110. package/dist/store/history-index.d.ts +0 -5
  1111. package/dist/store/history-index.js +0 -10
  1112. package/dist/store/history-index.js.map +1 -1
  1113. package/dist/store/history.d.ts +12 -97
  1114. package/dist/store/history.js +12 -1214
  1115. package/dist/store/history.js.map +1 -1
  1116. package/dist/store/keys/search-providers.d.ts +33 -0
  1117. package/dist/store/keys/search-providers.js +211 -0
  1118. package/dist/store/keys/search-providers.js.map +1 -0
  1119. package/dist/store/keys/secret-store.d.ts +40 -0
  1120. package/dist/store/keys/secret-store.js +249 -0
  1121. package/dist/store/keys/secret-store.js.map +1 -0
  1122. package/dist/store/keys.d.ts +8 -95
  1123. package/dist/store/keys.js +7 -537
  1124. package/dist/store/keys.js.map +1 -1
  1125. package/dist/store/logs.d.ts +0 -1
  1126. package/dist/store/logs.js +1 -7
  1127. package/dist/store/logs.js.map +1 -1
  1128. package/dist/store/paths.d.ts +0 -12
  1129. package/dist/store/paths.js +0 -12
  1130. package/dist/store/paths.js.map +1 -1
  1131. package/dist/store/plan/jsonl-backend.d.ts +7 -0
  1132. package/dist/store/plan/jsonl-backend.js +115 -0
  1133. package/dist/store/plan/jsonl-backend.js.map +1 -0
  1134. package/dist/store/plan/mutation.d.ts +25 -0
  1135. package/dist/store/plan/mutation.js +270 -0
  1136. package/dist/store/plan/mutation.js.map +1 -0
  1137. package/dist/store/plan/sqlite-backend.d.ts +66 -0
  1138. package/dist/store/plan/sqlite-backend.js +66 -0
  1139. package/dist/store/plan/sqlite-backend.js.map +1 -0
  1140. package/dist/store/plan/task-normalization.d.ts +8 -0
  1141. package/dist/store/plan/task-normalization.js +165 -0
  1142. package/dist/store/plan/task-normalization.js.map +1 -0
  1143. package/dist/store/plan.d.ts +9 -176
  1144. package/dist/store/plan.js +11 -742
  1145. package/dist/store/plan.js.map +1 -1
  1146. package/dist/store/project.js +0 -5
  1147. package/dist/store/project.js.map +1 -1
  1148. package/dist/store/responder-settlement.d.ts +0 -1
  1149. package/dist/store/responder-settlement.js +0 -3
  1150. package/dist/store/responder-settlement.js.map +1 -1
  1151. package/dist/store/scope.d.ts +0 -16
  1152. package/dist/store/scope.js +0 -22
  1153. package/dist/store/scope.js.map +1 -1
  1154. package/dist/store/session-model.d.ts +2 -1
  1155. package/dist/store/session-model.js +27 -1
  1156. package/dist/store/session-model.js.map +1 -1
  1157. package/dist/store/session-workspace.d.ts +0 -51
  1158. package/dist/store/session-workspace.js +0 -57
  1159. package/dist/store/session-workspace.js.map +1 -1
  1160. package/dist/store/task-transitions.d.ts +0 -7
  1161. package/dist/store/task-transitions.js +0 -6
  1162. package/dist/store/task-transitions.js.map +1 -1
  1163. package/dist/tools/batch/batch-parsing.d.ts +11 -0
  1164. package/dist/tools/batch/batch-parsing.js +78 -0
  1165. package/dist/tools/batch/batch-parsing.js.map +1 -0
  1166. package/dist/tools/batch/limits.d.ts +6 -0
  1167. package/dist/tools/batch/limits.js +17 -0
  1168. package/dist/tools/batch/limits.js.map +1 -0
  1169. package/dist/tools/batch/run-batch.d.ts +3 -0
  1170. package/dist/tools/batch/run-batch.js +402 -0
  1171. package/dist/tools/batch/run-batch.js.map +1 -0
  1172. package/dist/tools/batch-fail-policy.d.ts +0 -29
  1173. package/dist/tools/batch-fail-policy.js +0 -31
  1174. package/dist/tools/batch-fail-policy.js.map +1 -1
  1175. package/dist/tools/call-normalization.d.ts +2 -0
  1176. package/dist/tools/call-normalization.js +165 -0
  1177. package/dist/tools/call-normalization.js.map +1 -0
  1178. package/dist/tools/capabilities.d.ts +0 -1
  1179. package/dist/tools/capabilities.js +0 -28
  1180. package/dist/tools/capabilities.js.map +1 -1
  1181. package/dist/tools/command-intent.d.ts +0 -19
  1182. package/dist/tools/command-intent.js +0 -65
  1183. package/dist/tools/command-intent.js.map +1 -1
  1184. package/dist/tools/definitions/aggregate.d.ts +2 -0
  1185. package/dist/tools/definitions/aggregate.js +263 -0
  1186. package/dist/tools/definitions/aggregate.js.map +1 -0
  1187. package/dist/tools/definitions/context-1.d.ts +2 -0
  1188. package/dist/tools/definitions/context-1.js +8 -0
  1189. package/dist/tools/definitions/context-1.js.map +1 -0
  1190. package/dist/tools/definitions/context-2.d.ts +2 -0
  1191. package/dist/tools/definitions/context-2.js +90 -0
  1192. package/dist/tools/definitions/context-2.js.map +1 -0
  1193. package/dist/tools/definitions/define.d.ts +7 -0
  1194. package/dist/tools/definitions/define.js +53 -0
  1195. package/dist/tools/definitions/define.js.map +1 -0
  1196. package/dist/tools/definitions/files.d.ts +2 -0
  1197. package/dist/tools/definitions/files.js +193 -0
  1198. package/dist/tools/definitions/files.js.map +1 -0
  1199. package/dist/tools/definitions/network-1.d.ts +2 -0
  1200. package/dist/tools/definitions/network-1.js +72 -0
  1201. package/dist/tools/definitions/network-1.js.map +1 -0
  1202. package/dist/tools/definitions/network-2.d.ts +2 -0
  1203. package/dist/tools/definitions/network-2.js +22 -0
  1204. package/dist/tools/definitions/network-2.js.map +1 -0
  1205. package/dist/tools/definitions/orchestration.d.ts +2 -0
  1206. package/dist/tools/definitions/orchestration.js +122 -0
  1207. package/dist/tools/definitions/orchestration.js.map +1 -0
  1208. package/dist/tools/definitions/pentest.d.ts +2 -0
  1209. package/dist/tools/definitions/pentest.js +91 -0
  1210. package/dist/tools/definitions/pentest.js.map +1 -0
  1211. package/dist/tools/definitions/selection.d.ts +9 -0
  1212. package/dist/tools/definitions/selection.js +84 -0
  1213. package/dist/tools/definitions/selection.js.map +1 -0
  1214. package/dist/tools/definitions/shell.d.ts +2 -0
  1215. package/dist/tools/definitions/shell.js +83 -0
  1216. package/dist/tools/definitions/shell.js.map +1 -0
  1217. package/dist/tools/definitions/terminal.d.ts +2 -0
  1218. package/dist/tools/definitions/terminal.js +91 -0
  1219. package/dist/tools/definitions/terminal.js.map +1 -0
  1220. package/dist/tools/definitions/web-1.d.ts +2 -0
  1221. package/dist/tools/definitions/web-1.js +68 -0
  1222. package/dist/tools/definitions/web-1.js.map +1 -0
  1223. package/dist/tools/definitions/web-2.d.ts +2 -0
  1224. package/dist/tools/definitions/web-2.js +59 -0
  1225. package/dist/tools/definitions/web-2.js.map +1 -0
  1226. package/dist/tools/definitions.d.ts +3 -16
  1227. package/dist/tools/definitions.js +8 -1238
  1228. package/dist/tools/definitions.js.map +1 -1
  1229. package/dist/tools/diff/line-ops.d.ts +34 -0
  1230. package/dist/tools/diff/line-ops.js +218 -0
  1231. package/dist/tools/diff/line-ops.js.map +1 -0
  1232. package/dist/tools/dns-native.d.ts +0 -5
  1233. package/dist/tools/dns-native.js +0 -16
  1234. package/dist/tools/dns-native.js.map +1 -1
  1235. package/dist/tools/external-tools.d.ts +0 -8
  1236. package/dist/tools/external-tools.js.map +1 -1
  1237. package/dist/tools/file-diff.d.ts +3 -78
  1238. package/dist/tools/file-diff.js +2 -271
  1239. package/dist/tools/file-diff.js.map +1 -1
  1240. package/dist/tools/fs/internals-2.d.ts +1 -0
  1241. package/dist/tools/fs/internals-2.js +6 -0
  1242. package/dist/tools/fs/internals-2.js.map +1 -0
  1243. package/dist/tools/fs/internals.d.ts +4 -0
  1244. package/dist/tools/fs/internals.js +23 -0
  1245. package/dist/tools/fs/internals.js.map +1 -0
  1246. package/dist/tools/fs/mutations.d.ts +17 -0
  1247. package/dist/tools/fs/mutations.js +396 -0
  1248. package/dist/tools/fs/mutations.js.map +1 -0
  1249. package/dist/tools/fs/read-window.d.ts +14 -0
  1250. package/dist/tools/fs/read-window.js +288 -0
  1251. package/dist/tools/fs/read-window.js.map +1 -0
  1252. package/dist/tools/fs/read.d.ts +7 -0
  1253. package/dist/tools/fs/read.js +164 -0
  1254. package/dist/tools/fs/read.js.map +1 -0
  1255. package/dist/tools/fs/search.d.ts +13 -0
  1256. package/dist/tools/fs/search.js +125 -0
  1257. package/dist/tools/fs/search.js.map +1 -0
  1258. package/dist/tools/fs.d.ts +4 -79
  1259. package/dist/tools/fs.js +26 -1115
  1260. package/dist/tools/fs.js.map +1 -1
  1261. package/dist/tools/handlers/args.d.ts +8 -0
  1262. package/dist/tools/handlers/args.js +50 -0
  1263. package/dist/tools/handlers/args.js.map +1 -0
  1264. package/dist/tools/handlers/context-1.d.ts +2 -0
  1265. package/dist/tools/handlers/context-1.js +7 -0
  1266. package/dist/tools/handlers/context-1.js.map +1 -0
  1267. package/dist/tools/handlers/context-2.d.ts +2 -0
  1268. package/dist/tools/handlers/context-2.js +14 -0
  1269. package/dist/tools/handlers/context-2.js.map +1 -0
  1270. package/dist/tools/handlers/files-1.d.ts +2 -0
  1271. package/dist/tools/handlers/files-1.js +51 -0
  1272. package/dist/tools/handlers/files-1.js.map +1 -0
  1273. package/dist/tools/handlers/files-2.d.ts +2 -0
  1274. package/dist/tools/handlers/files-2.js +31 -0
  1275. package/dist/tools/handlers/files-2.js.map +1 -0
  1276. package/dist/tools/handlers/network-1.d.ts +2 -0
  1277. package/dist/tools/handlers/network-1.js +52 -0
  1278. package/dist/tools/handlers/network-1.js.map +1 -0
  1279. package/dist/tools/handlers/network-2.d.ts +2 -0
  1280. package/dist/tools/handlers/network-2.js +32 -0
  1281. package/dist/tools/handlers/network-2.js.map +1 -0
  1282. package/dist/tools/handlers/network-3.d.ts +2 -0
  1283. package/dist/tools/handlers/network-3.js +17 -0
  1284. package/dist/tools/handlers/network-3.js.map +1 -0
  1285. package/dist/tools/handlers/nmap-preparation.d.ts +13 -0
  1286. package/dist/tools/handlers/nmap-preparation.js +66 -0
  1287. package/dist/tools/handlers/nmap-preparation.js.map +1 -0
  1288. package/dist/tools/handlers/orchestration-1.d.ts +2 -0
  1289. package/dist/tools/handlers/orchestration-1.js +7 -0
  1290. package/dist/tools/handlers/orchestration-1.js.map +1 -0
  1291. package/dist/tools/handlers/orchestration-2.d.ts +2 -0
  1292. package/dist/tools/handlers/orchestration-2.js +16 -0
  1293. package/dist/tools/handlers/orchestration-2.js.map +1 -0
  1294. package/dist/tools/handlers/pentest.d.ts +2 -0
  1295. package/dist/tools/handlers/pentest.js +208 -0
  1296. package/dist/tools/handlers/pentest.js.map +1 -0
  1297. package/dist/tools/handlers/responder-job-options.d.ts +3 -0
  1298. package/dist/tools/handlers/responder-job-options.js +16 -0
  1299. package/dist/tools/handlers/responder-job-options.js.map +1 -0
  1300. package/dist/tools/handlers/shell-1.d.ts +2 -0
  1301. package/dist/tools/handlers/shell-1.js +94 -0
  1302. package/dist/tools/handlers/shell-1.js.map +1 -0
  1303. package/dist/tools/handlers/shell-2.d.ts +2 -0
  1304. package/dist/tools/handlers/shell-2.js +49 -0
  1305. package/dist/tools/handlers/shell-2.js.map +1 -0
  1306. package/dist/tools/handlers/shell-3.d.ts +2 -0
  1307. package/dist/tools/handlers/shell-3.js +47 -0
  1308. package/dist/tools/handlers/shell-3.js.map +1 -0
  1309. package/dist/tools/handlers/web.d.ts +2 -0
  1310. package/dist/tools/handlers/web.js +168 -0
  1311. package/dist/tools/handlers/web.js.map +1 -0
  1312. package/dist/tools/http/agents.d.ts +10 -0
  1313. package/dist/tools/http/agents.js +63 -0
  1314. package/dist/tools/http/agents.js.map +1 -0
  1315. package/dist/tools/http/evidence-format.d.ts +37 -0
  1316. package/dist/tools/http/evidence-format.js +181 -0
  1317. package/dist/tools/http/evidence-format.js.map +1 -0
  1318. package/dist/tools/http/fetch.d.ts +31 -0
  1319. package/dist/tools/http/fetch.js +480 -0
  1320. package/dist/tools/http/fetch.js.map +1 -0
  1321. package/dist/tools/http/retry-policy.d.ts +14 -0
  1322. package/dist/tools/http/retry-policy.js +144 -0
  1323. package/dist/tools/http/retry-policy.js.map +1 -0
  1324. package/dist/tools/http.d.ts +1 -45
  1325. package/dist/tools/http.js +1 -920
  1326. package/dist/tools/http.js.map +1 -1
  1327. package/dist/tools/image.d.ts +0 -15
  1328. package/dist/tools/image.js +0 -21
  1329. package/dist/tools/image.js.map +1 -1
  1330. package/dist/tools/interactive-session-tools.d.ts +0 -7
  1331. package/dist/tools/interactive-session-tools.js +0 -13
  1332. package/dist/tools/interactive-session-tools.js.map +1 -1
  1333. package/dist/tools/jobs/helpers.d.ts +6 -0
  1334. package/dist/tools/jobs/helpers.js +63 -0
  1335. package/dist/tools/jobs/helpers.js.map +1 -0
  1336. package/dist/tools/jobs/limits.d.ts +20 -0
  1337. package/dist/tools/jobs/limits.js +21 -0
  1338. package/dist/tools/jobs/limits.js.map +1 -0
  1339. package/dist/tools/jobs/polling-policy.d.ts +11 -0
  1340. package/dist/tools/jobs/polling-policy.js +33 -0
  1341. package/dist/tools/jobs/polling-policy.js.map +1 -0
  1342. package/dist/tools/jobs/process-identity.d.ts +5 -0
  1343. package/dist/tools/jobs/process-identity.js +80 -0
  1344. package/dist/tools/jobs/process-identity.js.map +1 -0
  1345. package/dist/tools/jobs/redacted-writer.d.ts +25 -0
  1346. package/dist/tools/jobs/redacted-writer.js +134 -0
  1347. package/dist/tools/jobs/redacted-writer.js.map +1 -0
  1348. package/dist/tools/jobs/types.d.ts +152 -0
  1349. package/dist/tools/jobs/types.js +2 -0
  1350. package/dist/tools/jobs/types.js.map +1 -0
  1351. package/dist/tools/jobs.d.ts +8 -210
  1352. package/dist/tools/jobs.js +13 -453
  1353. package/dist/tools/jobs.js.map +1 -1
  1354. package/dist/tools/net-ping-sweep.d.ts +0 -8
  1355. package/dist/tools/net-ping-sweep.js +0 -22
  1356. package/dist/tools/net-ping-sweep.js.map +1 -1
  1357. package/dist/tools/network-context.d.ts +0 -4
  1358. package/dist/tools/network-context.js +0 -8
  1359. package/dist/tools/network-context.js.map +1 -1
  1360. package/dist/tools/nmap-runner.d.ts +0 -21
  1361. package/dist/tools/nmap-runner.js +0 -43
  1362. package/dist/tools/nmap-runner.js.map +1 -1
  1363. package/dist/tools/output-selection.d.ts +0 -1
  1364. package/dist/tools/output-selection.js +0 -3
  1365. package/dist/tools/output-selection.js.map +1 -1
  1366. package/dist/tools/package-binary.js +0 -7
  1367. package/dist/tools/package-binary.js.map +1 -1
  1368. package/dist/tools/pdf/read.d.ts +6 -0
  1369. package/dist/tools/pdf/read.js +529 -0
  1370. package/dist/tools/pdf/read.js.map +1 -0
  1371. package/dist/tools/pdf.d.ts +2 -6
  1372. package/dist/tools/pdf.js +1 -528
  1373. package/dist/tools/pdf.js.map +1 -1
  1374. package/dist/tools/pentest-workflows.js +0 -12
  1375. package/dist/tools/pentest-workflows.js.map +1 -1
  1376. package/dist/tools/policies/output-policy.d.ts +0 -17
  1377. package/dist/tools/policies/output-policy.js +0 -18
  1378. package/dist/tools/policies/output-policy.js.map +1 -1
  1379. package/dist/tools/reducers/ffuf.d.ts +0 -5
  1380. package/dist/tools/reducers/ffuf.js +0 -8
  1381. package/dist/tools/reducers/ffuf.js.map +1 -1
  1382. package/dist/tools/reducers/gobuster.js +0 -1
  1383. package/dist/tools/reducers/gobuster.js.map +1 -1
  1384. package/dist/tools/reducers/httpx.js +0 -1
  1385. package/dist/tools/reducers/httpx.js.map +1 -1
  1386. package/dist/tools/reducers/nmap.d.ts +0 -5
  1387. package/dist/tools/reducers/nmap.js +0 -5
  1388. package/dist/tools/reducers/nmap.js.map +1 -1
  1389. package/dist/tools/reducers/nuclei.js +0 -1
  1390. package/dist/tools/reducers/nuclei.js.map +1 -1
  1391. package/dist/tools/reducers/subdomains.d.ts +0 -4
  1392. package/dist/tools/reducers/subdomains.js +0 -4
  1393. package/dist/tools/reducers/subdomains.js.map +1 -1
  1394. package/dist/tools/reducers/types.d.ts +0 -5
  1395. package/dist/tools/registry.d.ts +4 -20
  1396. package/dist/tools/registry.js +36 -1634
  1397. package/dist/tools/registry.js.map +1 -1
  1398. package/dist/tools/shell/artifact-name.d.ts +1 -0
  1399. package/dist/tools/shell/artifact-name.js +6 -0
  1400. package/dist/tools/shell/artifact-name.js.map +1 -0
  1401. package/dist/tools/shell/capture.d.ts +31 -0
  1402. package/dist/tools/shell/capture.js +135 -0
  1403. package/dist/tools/shell/capture.js.map +1 -0
  1404. package/dist/tools/shell/exec-attempt.d.ts +10 -0
  1405. package/dist/tools/shell/exec-attempt.js +288 -0
  1406. package/dist/tools/shell/exec-attempt.js.map +1 -0
  1407. package/dist/tools/shell/internals-2.d.ts +16 -0
  1408. package/dist/tools/shell/internals-2.js +48 -0
  1409. package/dist/tools/shell/internals-2.js.map +1 -0
  1410. package/dist/tools/shell/internals.d.ts +10 -0
  1411. package/dist/tools/shell/internals.js +51 -0
  1412. package/dist/tools/shell/internals.js.map +1 -0
  1413. package/dist/tools/shell/spawn-argv.d.ts +17 -0
  1414. package/dist/tools/shell/spawn-argv.js +248 -0
  1415. package/dist/tools/shell/spawn-argv.js.map +1 -0
  1416. package/dist/tools/shell-quoting.d.ts +1 -0
  1417. package/dist/tools/shell-quoting.js +7 -0
  1418. package/dist/tools/shell-quoting.js.map +1 -0
  1419. package/dist/tools/shell.d.ts +4 -82
  1420. package/dist/tools/shell.js +7 -845
  1421. package/dist/tools/shell.js.map +1 -1
  1422. package/dist/tools/sudo-session.d.ts +0 -41
  1423. package/dist/tools/sudo-session.js +0 -44
  1424. package/dist/tools/sudo-session.js.map +1 -1
  1425. package/dist/tools/tool-types.d.ts +0 -7
  1426. package/dist/tools/validate.d.ts +0 -35
  1427. package/dist/tools/validate.js +2 -67
  1428. package/dist/tools/validate.js.map +1 -1
  1429. package/dist/tools/web/audit.d.ts +0 -74
  1430. package/dist/tools/web/audit.js +0 -39
  1431. package/dist/tools/web/audit.js.map +1 -1
  1432. package/dist/tools/web/budget.d.ts +0 -35
  1433. package/dist/tools/web/budget.js +0 -75
  1434. package/dist/tools/web/budget.js.map +1 -1
  1435. package/dist/tools/web/capture.d.ts +0 -106
  1436. package/dist/tools/web/capture.js +0 -148
  1437. package/dist/tools/web/capture.js.map +1 -1
  1438. package/dist/tools/web/decode.d.ts +0 -8
  1439. package/dist/tools/web/decode.js +0 -9
  1440. package/dist/tools/web/decode.js.map +1 -1
  1441. package/dist/tools/web/fetch-core.d.ts +2 -32
  1442. package/dist/tools/web/fetch-core.js +4 -1058
  1443. package/dist/tools/web/fetch-core.js.map +1 -1
  1444. package/dist/tools/web/fetch.d.ts +0 -29
  1445. package/dist/tools/web/fetch.js +0 -46
  1446. package/dist/tools/web/fetch.js.map +1 -1
  1447. package/dist/tools/web/issue-hop.d.ts +57 -0
  1448. package/dist/tools/web/issue-hop.js +396 -0
  1449. package/dist/tools/web/issue-hop.js.map +1 -0
  1450. package/dist/tools/web/providers/brave.d.ts +0 -40
  1451. package/dist/tools/web/providers/brave.js +1 -100
  1452. package/dist/tools/web/providers/brave.js.map +1 -1
  1453. package/dist/tools/web/providers/duckduckgo.d.ts +0 -41
  1454. package/dist/tools/web/providers/duckduckgo.js +0 -104
  1455. package/dist/tools/web/providers/duckduckgo.js.map +1 -1
  1456. package/dist/tools/web/providers/exa.d.ts +0 -43
  1457. package/dist/tools/web/providers/exa.js +1 -102
  1458. package/dist/tools/web/providers/exa.js.map +1 -1
  1459. package/dist/tools/web/providers/provider.d.ts +0 -69
  1460. package/dist/tools/web/providers/provider.js +0 -28
  1461. package/dist/tools/web/providers/provider.js.map +1 -1
  1462. package/dist/tools/web/providers/tavily.d.ts +0 -46
  1463. package/dist/tools/web/providers/tavily.js +1 -111
  1464. package/dist/tools/web/providers/tavily.js.map +1 -1
  1465. package/dist/tools/web/readable.d.ts +0 -62
  1466. package/dist/tools/web/readable.js +1 -132
  1467. package/dist/tools/web/readable.js.map +1 -1
  1468. package/dist/tools/web/redact.d.ts +0 -26
  1469. package/dist/tools/web/redact.js +0 -2
  1470. package/dist/tools/web/redact.js.map +1 -1
  1471. package/dist/tools/web/request-loop.d.ts +38 -0
  1472. package/dist/tools/web/request-loop.js +172 -0
  1473. package/dist/tools/web/request-loop.js.map +1 -0
  1474. package/dist/tools/web/response-body.d.ts +41 -0
  1475. package/dist/tools/web/response-body.js +174 -0
  1476. package/dist/tools/web/response-body.js.map +1 -0
  1477. package/dist/tools/web/search-attempts.d.ts +20 -0
  1478. package/dist/tools/web/search-attempts.js +303 -0
  1479. package/dist/tools/web/search-attempts.js.map +1 -0
  1480. package/dist/tools/web/search.d.ts +0 -33
  1481. package/dist/tools/web/search.js +3 -396
  1482. package/dist/tools/web/search.js.map +1 -1
  1483. package/dist/tools/web/ssrf-guard.d.ts +0 -42
  1484. package/dist/tools/web/ssrf-guard.js +0 -57
  1485. package/dist/tools/web/ssrf-guard.js.map +1 -1
  1486. package/dist/tools/web/types.d.ts +0 -197
  1487. package/dist/tools/web/types.js +0 -41
  1488. package/dist/tools/web/types.js.map +1 -1
  1489. package/dist/tools/web/validate-args.d.ts +11 -0
  1490. package/dist/tools/web/validate-args.js +107 -0
  1491. package/dist/tools/web/validate-args.js.map +1 -0
  1492. package/dist/tools/whois-native.d.ts +0 -4
  1493. package/dist/tools/whois-native.js +0 -6
  1494. package/dist/tools/whois-native.js.map +1 -1
  1495. package/dist/tools/wordlists.js +0 -32
  1496. package/dist/tools/wordlists.js.map +1 -1
  1497. package/dist/tui-v2/app/App.d.ts +0 -10
  1498. package/dist/tui-v2/app/App.js +95 -131
  1499. package/dist/tui-v2/app/App.js.map +1 -1
  1500. package/dist/tui-v2/bootstrap/pager-export.d.ts +0 -8
  1501. package/dist/tui-v2/bootstrap/pager-export.js +0 -11
  1502. package/dist/tui-v2/bootstrap/pager-export.js.map +1 -1
  1503. package/dist/tui-v2/bootstrap/patch-opentui-text.d.ts +0 -5
  1504. package/dist/tui-v2/bootstrap/patch-opentui-text.js +0 -5
  1505. package/dist/tui-v2/bootstrap/patch-opentui-text.js.map +1 -1
  1506. package/dist/tui-v2/bootstrap/resize-repaint.d.ts +16 -20
  1507. package/dist/tui-v2/bootstrap/resize-repaint.js +31 -16
  1508. package/dist/tui-v2/bootstrap/resize-repaint.js.map +1 -1
  1509. package/dist/tui-v2/bootstrap/start-tui-v2.d.ts +0 -7
  1510. package/dist/tui-v2/bootstrap/start-tui-v2.js +39 -38
  1511. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  1512. package/dist/tui-v2/components/completion/completion-menu.d.ts +0 -4
  1513. package/dist/tui-v2/components/completion/completion-menu.js +2 -6
  1514. package/dist/tui-v2/components/completion/completion-menu.js.map +1 -1
  1515. package/dist/tui-v2/components/composer/composer-input-box.d.ts +0 -4
  1516. package/dist/tui-v2/components/composer/composer-input-box.js +1 -10
  1517. package/dist/tui-v2/components/composer/composer-input-box.js.map +1 -1
  1518. package/dist/tui-v2/components/composer/paste-chip.d.ts +0 -7
  1519. package/dist/tui-v2/components/composer/paste-chip.js +0 -7
  1520. package/dist/tui-v2/components/composer/paste-chip.js.map +1 -1
  1521. package/dist/tui-v2/components/jobs/jobs-panel.d.ts +5 -14
  1522. package/dist/tui-v2/components/jobs/jobs-panel.js +8 -37
  1523. package/dist/tui-v2/components/jobs/jobs-panel.js.map +1 -1
  1524. package/dist/tui-v2/components/modal/confirm-modal.d.ts +0 -8
  1525. package/dist/tui-v2/components/modal/confirm-modal.js +0 -4
  1526. package/dist/tui-v2/components/modal/confirm-modal.js.map +1 -1
  1527. package/dist/tui-v2/components/modal/keys-modal.d.ts +0 -11
  1528. package/dist/tui-v2/components/modal/keys-modal.js +0 -24
  1529. package/dist/tui-v2/components/modal/keys-modal.js.map +1 -1
  1530. package/dist/tui-v2/components/modal/prompt-actions-modal.d.ts +0 -6
  1531. package/dist/tui-v2/components/modal/prompt-actions-modal.js +4 -13
  1532. package/dist/tui-v2/components/modal/prompt-actions-modal.js.map +1 -1
  1533. package/dist/tui-v2/components/modal/scope-modal.d.ts +0 -5
  1534. package/dist/tui-v2/components/modal/scope-modal.js +0 -12
  1535. package/dist/tui-v2/components/modal/scope-modal.js.map +1 -1
  1536. package/dist/tui-v2/components/modal/secret-modal.d.ts +0 -8
  1537. package/dist/tui-v2/components/modal/secret-modal.js +0 -17
  1538. package/dist/tui-v2/components/modal/secret-modal.js.map +1 -1
  1539. package/dist/tui-v2/components/modal/text-editor-modal.d.ts +0 -6
  1540. package/dist/tui-v2/components/modal/text-editor-modal.js +0 -6
  1541. package/dist/tui-v2/components/modal/text-editor-modal.js.map +1 -1
  1542. package/dist/tui-v2/components/overlay/overlay-host.d.ts +3 -15
  1543. package/dist/tui-v2/components/overlay/overlay-host.js +6 -3
  1544. package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
  1545. package/dist/tui-v2/components/pager/pager-line.d.ts +0 -5
  1546. package/dist/tui-v2/components/pager/pager-line.js +0 -10
  1547. package/dist/tui-v2/components/pager/pager-line.js.map +1 -1
  1548. package/dist/tui-v2/components/pager/pager.d.ts +0 -14
  1549. package/dist/tui-v2/components/pager/pager.js +3 -58
  1550. package/dist/tui-v2/components/pager/pager.js.map +1 -1
  1551. package/dist/tui-v2/components/picker/picker.d.ts +0 -6
  1552. package/dist/tui-v2/components/picker/picker.js +3 -12
  1553. package/dist/tui-v2/components/picker/picker.js.map +1 -1
  1554. package/dist/tui-v2/components/plan/plan-pane-anim.d.ts +0 -25
  1555. package/dist/tui-v2/components/plan/plan-pane-anim.js +0 -23
  1556. package/dist/tui-v2/components/plan/plan-pane-anim.js.map +1 -1
  1557. package/dist/tui-v2/components/plan/plan-view.d.ts +3 -8
  1558. package/dist/tui-v2/components/plan/plan-view.js +5 -22
  1559. package/dist/tui-v2/components/plan/plan-view.js.map +1 -1
  1560. package/dist/tui-v2/components/plan/use-pane-presence.d.ts +0 -9
  1561. package/dist/tui-v2/components/plan/use-pane-presence.js +0 -9
  1562. package/dist/tui-v2/components/plan/use-pane-presence.js.map +1 -1
  1563. package/dist/tui-v2/components/queue/queue-panel.d.ts +3 -13
  1564. package/dist/tui-v2/components/queue/queue-panel.js +8 -5
  1565. package/dist/tui-v2/components/queue/queue-panel.js.map +1 -1
  1566. package/dist/tui-v2/components/status/status-line.d.ts +3 -18
  1567. package/dist/tui-v2/components/status/status-line.js +5 -12
  1568. package/dist/tui-v2/components/status/status-line.js.map +1 -1
  1569. package/dist/tui-v2/components/toast/toast-anim.d.ts +0 -20
  1570. package/dist/tui-v2/components/toast/toast-anim.js +0 -15
  1571. package/dist/tui-v2/components/toast/toast-anim.js.map +1 -1
  1572. package/dist/tui-v2/components/toast/toast-host.d.ts +3 -13
  1573. package/dist/tui-v2/components/toast/toast-host.js +6 -31
  1574. package/dist/tui-v2/components/toast/toast-host.js.map +1 -1
  1575. package/dist/tui-v2/components/transcript/assistant-message.d.ts +0 -11
  1576. package/dist/tui-v2/components/transcript/assistant-message.js +3 -24
  1577. package/dist/tui-v2/components/transcript/assistant-message.js.map +1 -1
  1578. package/dist/tui-v2/components/transcript/compacted-row.d.ts +0 -6
  1579. package/dist/tui-v2/components/transcript/compacted-row.js +2 -6
  1580. package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
  1581. package/dist/tui-v2/components/transcript/file-diff-card.d.ts +0 -9
  1582. package/dist/tui-v2/components/transcript/file-diff-card.js +0 -16
  1583. package/dist/tui-v2/components/transcript/file-diff-card.js.map +1 -1
  1584. package/dist/tui-v2/components/transcript/intro-card.d.ts +0 -9
  1585. package/dist/tui-v2/components/transcript/intro-card.js +2 -13
  1586. package/dist/tui-v2/components/transcript/intro-card.js.map +1 -1
  1587. package/dist/tui-v2/components/transcript/linkable-text.d.ts +0 -16
  1588. package/dist/tui-v2/components/transcript/linkable-text.js +0 -11
  1589. package/dist/tui-v2/components/transcript/linkable-text.js.map +1 -1
  1590. package/dist/tui-v2/components/transcript/notice-row.d.ts +0 -7
  1591. package/dist/tui-v2/components/transcript/notice-row.js +2 -18
  1592. package/dist/tui-v2/components/transcript/notice-row.js.map +1 -1
  1593. package/dist/tui-v2/components/transcript/search-bar.d.ts +0 -10
  1594. package/dist/tui-v2/components/transcript/search-bar.js +0 -3
  1595. package/dist/tui-v2/components/transcript/search-bar.js.map +1 -1
  1596. package/dist/tui-v2/components/transcript/selectable-line.d.ts +0 -16
  1597. package/dist/tui-v2/components/transcript/selectable-line.js +0 -9
  1598. package/dist/tui-v2/components/transcript/selectable-line.js.map +1 -1
  1599. package/dist/tui-v2/components/transcript/thinking-block.d.ts +0 -18
  1600. package/dist/tui-v2/components/transcript/thinking-block.js +2 -40
  1601. package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
  1602. package/dist/tui-v2/components/transcript/tool-card.d.ts +0 -19
  1603. package/dist/tui-v2/components/transcript/tool-card.js +2 -42
  1604. package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
  1605. package/dist/tui-v2/components/transcript/transcript-row.d.ts +0 -14
  1606. package/dist/tui-v2/components/transcript/transcript-row.js +2 -13
  1607. package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
  1608. package/dist/tui-v2/components/transcript/transcript-scroll-port.d.ts +0 -32
  1609. package/dist/tui-v2/components/transcript/transcript-scroll-port.js +0 -22
  1610. package/dist/tui-v2/components/transcript/transcript-scroll-port.js.map +1 -1
  1611. package/dist/tui-v2/components/transcript/transcript-scrollbar.d.ts +6 -2
  1612. package/dist/tui-v2/components/transcript/transcript-scrollbar.js +15 -4
  1613. package/dist/tui-v2/components/transcript/transcript-scrollbar.js.map +1 -1
  1614. package/dist/tui-v2/components/transcript/transcript-view.d.ts +0 -9
  1615. package/dist/tui-v2/components/transcript/transcript-view.js +9 -104
  1616. package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
  1617. package/dist/tui-v2/components/transcript/use-click-without-drag.d.ts +0 -7
  1618. package/dist/tui-v2/components/transcript/use-click-without-drag.js +1 -11
  1619. package/dist/tui-v2/components/transcript/use-click-without-drag.js.map +1 -1
  1620. package/dist/tui-v2/components/transcript/use-native-selection-copy.d.ts +0 -7
  1621. package/dist/tui-v2/components/transcript/use-native-selection-copy.js +0 -9
  1622. package/dist/tui-v2/components/transcript/use-native-selection-copy.js.map +1 -1
  1623. package/dist/tui-v2/components/transcript/use-transcript-selection.d.ts +0 -1
  1624. package/dist/tui-v2/components/transcript/use-transcript-selection.js +0 -14
  1625. package/dist/tui-v2/components/transcript/use-transcript-selection.js.map +1 -1
  1626. package/dist/tui-v2/components/transcript/user-message.d.ts +0 -2
  1627. package/dist/tui-v2/components/transcript/user-message.js +2 -7
  1628. package/dist/tui-v2/components/transcript/user-message.js.map +1 -1
  1629. package/dist/tui-v2/composer/composer-editor.d.ts +3 -21
  1630. package/dist/tui-v2/composer/composer-editor.js +5 -63
  1631. package/dist/tui-v2/composer/composer-editor.js.map +1 -1
  1632. package/dist/tui-v2/composer/composer-wheel.d.ts +0 -17
  1633. package/dist/tui-v2/composer/composer-wheel.js +0 -17
  1634. package/dist/tui-v2/composer/composer-wheel.js.map +1 -1
  1635. package/dist/tui-v2/composer/disable-native-textarea-scroll.d.ts +0 -12
  1636. package/dist/tui-v2/composer/disable-native-textarea-scroll.js +0 -13
  1637. package/dist/tui-v2/composer/disable-native-textarea-scroll.js.map +1 -1
  1638. package/dist/tui-v2/composer/textarea-keybindings.d.ts +0 -19
  1639. package/dist/tui-v2/composer/textarea-keybindings.js +0 -34
  1640. package/dist/tui-v2/composer/textarea-keybindings.js.map +1 -1
  1641. package/dist/tui-v2/composer/use-draft-actions.d.ts +0 -10
  1642. package/dist/tui-v2/composer/use-draft-actions.js +0 -5
  1643. package/dist/tui-v2/composer/use-draft-actions.js.map +1 -1
  1644. package/dist/tui-v2/hooks/terminal-dimensions.d.ts +6 -0
  1645. package/dist/tui-v2/hooks/terminal-dimensions.js +14 -0
  1646. package/dist/tui-v2/hooks/terminal-dimensions.js.map +1 -0
  1647. package/dist/tui-v2/input/chord-from-opentui-key.d.ts +0 -17
  1648. package/dist/tui-v2/input/chord-from-opentui-key.js +0 -17
  1649. package/dist/tui-v2/input/chord-from-opentui-key.js.map +1 -1
  1650. package/dist/tui-v2/perf/render-counters.d.ts +5 -0
  1651. package/dist/tui-v2/perf/render-counters.js +54 -0
  1652. package/dist/tui-v2/perf/render-counters.js.map +1 -0
  1653. package/dist/tui-v2/rendering/ansi-to-styled.d.ts +0 -12
  1654. package/dist/tui-v2/rendering/ansi-to-styled.js +0 -10
  1655. package/dist/tui-v2/rendering/ansi-to-styled.js.map +1 -1
  1656. package/dist/tui-v2/rendering/pager-markdown.d.ts +0 -18
  1657. package/dist/tui-v2/rendering/pager-markdown.js +0 -14
  1658. package/dist/tui-v2/rendering/pager-markdown.js.map +1 -1
  1659. package/dist/types.d.ts +2 -135
  1660. package/dist/types.js +0 -3
  1661. package/dist/types.js.map +1 -1
  1662. package/dist/ui/mentions/expand.d.ts +26 -0
  1663. package/dist/ui/mentions/expand.js +308 -0
  1664. package/dist/ui/mentions/expand.js.map +1 -0
  1665. package/dist/ui/mentions/file-suggestions.d.ts +7 -0
  1666. package/dist/ui/mentions/file-suggestions.js +106 -0
  1667. package/dist/ui/mentions/file-suggestions.js.map +1 -0
  1668. package/dist/ui/mentions.d.ts +6 -70
  1669. package/dist/ui/mentions.js +8 -482
  1670. package/dist/ui/mentions.js.map +1 -1
  1671. package/dist/ui/plan-pane.d.ts +0 -15
  1672. package/dist/ui/plan-pane.js +1 -16
  1673. package/dist/ui/plan-pane.js.map +1 -1
  1674. package/dist/ui/thinking.d.ts +0 -8
  1675. package/dist/ui/thinking.js +0 -13
  1676. package/dist/ui/thinking.js.map +1 -1
  1677. package/dist/ui-core/actions/action-id.d.ts +0 -8
  1678. package/dist/ui-core/actions/action-id.js +0 -25
  1679. package/dist/ui-core/actions/action-id.js.map +1 -1
  1680. package/dist/ui-core/actions/action-router.d.ts +0 -10
  1681. package/dist/ui-core/actions/action-router.js +0 -16
  1682. package/dist/ui-core/actions/action-router.js.map +1 -1
  1683. package/dist/ui-core/actions/cancel-timing.d.ts +0 -3
  1684. package/dist/ui-core/actions/cancel-timing.js +0 -3
  1685. package/dist/ui-core/actions/cancel-timing.js.map +1 -1
  1686. package/dist/ui-core/actions/format-shortcuts.d.ts +0 -9
  1687. package/dist/ui-core/actions/format-shortcuts.js +0 -9
  1688. package/dist/ui-core/actions/format-shortcuts.js.map +1 -1
  1689. package/dist/ui-core/actions/keymap.d.ts +0 -9
  1690. package/dist/ui-core/actions/keymap.js +0 -39
  1691. package/dist/ui-core/actions/keymap.js.map +1 -1
  1692. package/dist/ui-core/actions/mode-cycle.d.ts +0 -2
  1693. package/dist/ui-core/actions/mode-cycle.js +0 -4
  1694. package/dist/ui-core/actions/mode-cycle.js.map +1 -1
  1695. package/dist/ui-core/bootstrap/can-use-tui.d.ts +0 -6
  1696. package/dist/ui-core/bootstrap/can-use-tui.js +0 -9
  1697. package/dist/ui-core/bootstrap/can-use-tui.js.map +1 -1
  1698. package/dist/ui-core/bootstrap/capabilities.d.ts +0 -8
  1699. package/dist/ui-core/bootstrap/capabilities.js +1 -8
  1700. package/dist/ui-core/bootstrap/capabilities.js.map +1 -1
  1701. package/dist/ui-core/bootstrap/composition-root.d.ts +0 -17
  1702. package/dist/ui-core/bootstrap/composition-root.js +30 -19
  1703. package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
  1704. package/dist/ui-core/bootstrap/console-guard.d.ts +0 -15
  1705. package/dist/ui-core/bootstrap/console-guard.js +32 -0
  1706. package/dist/ui-core/bootstrap/console-guard.js.map +1 -1
  1707. package/dist/ui-core/bootstrap/console-suppress.js +2 -7
  1708. package/dist/ui-core/bootstrap/console-suppress.js.map +1 -1
  1709. package/dist/ui-core/bootstrap/exit-epilogue.d.ts +0 -6
  1710. package/dist/ui-core/bootstrap/exit-epilogue.js +0 -5
  1711. package/dist/ui-core/bootstrap/exit-epilogue.js.map +1 -1
  1712. package/dist/ui-core/bootstrap/lifecycle.d.ts +0 -42
  1713. package/dist/ui-core/bootstrap/lifecycle.js +0 -31
  1714. package/dist/ui-core/bootstrap/lifecycle.js.map +1 -1
  1715. package/dist/ui-core/bootstrap/overlay-ports.d.ts +0 -11
  1716. package/dist/ui-core/bootstrap/overlay-ports.js +0 -13
  1717. package/dist/ui-core/bootstrap/overlay-ports.js.map +1 -1
  1718. package/dist/ui-core/bootstrap/session-resume.js +10 -2
  1719. package/dist/ui-core/bootstrap/session-resume.js.map +1 -1
  1720. package/dist/ui-core/bootstrap/theme-mode-cache.js +0 -5
  1721. package/dist/ui-core/bootstrap/theme-mode-cache.js.map +1 -1
  1722. package/dist/ui-core/commands/command-handlers.d.ts +0 -6
  1723. package/dist/ui-core/commands/command-handlers.js +0 -6
  1724. package/dist/ui-core/commands/command-handlers.js.map +1 -1
  1725. package/dist/ui-core/commands/config-commands.d.ts +0 -3
  1726. package/dist/ui-core/commands/config-commands.js +0 -7
  1727. package/dist/ui-core/commands/config-commands.js.map +1 -1
  1728. package/dist/ui-core/commands/key-commands.d.ts +2 -0
  1729. package/dist/ui-core/commands/key-commands.js +79 -213
  1730. package/dist/ui-core/commands/key-commands.js.map +1 -1
  1731. package/dist/ui-core/commands/keys/editors.d.ts +15 -0
  1732. package/dist/ui-core/commands/keys/editors.js +127 -0
  1733. package/dist/ui-core/commands/keys/editors.js.map +1 -0
  1734. package/dist/ui-core/commands/mcp-commands.js +0 -6
  1735. package/dist/ui-core/commands/mcp-commands.js.map +1 -1
  1736. package/dist/ui-core/commands/picker-commands.d.ts +3 -14
  1737. package/dist/ui-core/commands/picker-commands.js +11 -695
  1738. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  1739. package/dist/ui-core/commands/pickers/custom-provider.d.ts +3 -0
  1740. package/dist/ui-core/commands/pickers/custom-provider.js +170 -0
  1741. package/dist/ui-core/commands/pickers/custom-provider.js.map +1 -0
  1742. package/dist/ui-core/commands/pickers/history.d.ts +3 -0
  1743. package/dist/ui-core/commands/pickers/history.js +185 -0
  1744. package/dist/ui-core/commands/pickers/history.js.map +1 -0
  1745. package/dist/ui-core/commands/pickers/output-pager.d.ts +5 -0
  1746. package/dist/ui-core/commands/pickers/output-pager.js +90 -0
  1747. package/dist/ui-core/commands/pickers/output-pager.js.map +1 -0
  1748. package/dist/ui-core/commands/pickers/search-reasoning.d.ts +4 -0
  1749. package/dist/ui-core/commands/pickers/search-reasoning.js +197 -0
  1750. package/dist/ui-core/commands/pickers/search-reasoning.js.map +1 -0
  1751. package/dist/ui-core/commands/session-commands.d.ts +0 -4
  1752. package/dist/ui-core/commands/session-commands.js +23 -17
  1753. package/dist/ui-core/commands/session-commands.js.map +1 -1
  1754. package/dist/ui-core/commands/startup-update.d.ts +0 -6
  1755. package/dist/ui-core/commands/startup-update.js +0 -6
  1756. package/dist/ui-core/commands/startup-update.js.map +1 -1
  1757. package/dist/ui-core/composer/arrow-intent.d.ts +0 -10
  1758. package/dist/ui-core/composer/arrow-intent.js +0 -14
  1759. package/dist/ui-core/composer/arrow-intent.js.map +1 -1
  1760. package/dist/ui-core/composer/completion.d.ts +0 -9
  1761. package/dist/ui-core/composer/completion.js +1 -13
  1762. package/dist/ui-core/composer/completion.js.map +1 -1
  1763. package/dist/ui-core/composer/composer-action-port.d.ts +0 -10
  1764. package/dist/ui-core/composer/composer-action-port.js +0 -10
  1765. package/dist/ui-core/composer/composer-action-port.js.map +1 -1
  1766. package/dist/ui-core/composer/composer-height.d.ts +0 -12
  1767. package/dist/ui-core/composer/composer-height.js +0 -12
  1768. package/dist/ui-core/composer/composer-height.js.map +1 -1
  1769. package/dist/ui-core/composer/composer-wheel.d.ts +0 -17
  1770. package/dist/ui-core/composer/composer-wheel.js +0 -17
  1771. package/dist/ui-core/composer/composer-wheel.js.map +1 -1
  1772. package/dist/ui-core/composer/draft-actions.d.ts +0 -14
  1773. package/dist/ui-core/composer/draft-actions.js +0 -13
  1774. package/dist/ui-core/composer/draft-actions.js.map +1 -1
  1775. package/dist/ui-core/composer/history-nav.d.ts +0 -9
  1776. package/dist/ui-core/composer/history-nav.js +0 -9
  1777. package/dist/ui-core/composer/history-nav.js.map +1 -1
  1778. package/dist/ui-core/composer/input-history.d.ts +0 -1
  1779. package/dist/ui-core/composer/input-history.js +0 -1
  1780. package/dist/ui-core/composer/input-history.js.map +1 -1
  1781. package/dist/ui-core/composer/newline-hint.d.ts +0 -7
  1782. package/dist/ui-core/composer/newline-hint.js +0 -9
  1783. package/dist/ui-core/composer/newline-hint.js.map +1 -1
  1784. package/dist/ui-core/composer/paste-placeholder.d.ts +0 -23
  1785. package/dist/ui-core/composer/paste-placeholder.js +0 -21
  1786. package/dist/ui-core/composer/paste-placeholder.js.map +1 -1
  1787. package/dist/ui-core/composer/prompt-history.d.ts +0 -11
  1788. package/dist/ui-core/composer/prompt-history.js +0 -11
  1789. package/dist/ui-core/composer/prompt-history.js.map +1 -1
  1790. package/dist/ui-core/composer/secret-buffer.d.ts +0 -8
  1791. package/dist/ui-core/composer/secret-buffer.js +0 -8
  1792. package/dist/ui-core/composer/secret-buffer.js.map +1 -1
  1793. package/dist/ui-core/composer/textarea-keybindings.d.ts +0 -15
  1794. package/dist/ui-core/composer/textarea-keybindings.js +0 -30
  1795. package/dist/ui-core/composer/textarea-keybindings.js.map +1 -1
  1796. package/dist/ui-core/controllers/focus-controller.d.ts +0 -11
  1797. package/dist/ui-core/controllers/focus-controller.js +0 -11
  1798. package/dist/ui-core/controllers/focus-controller.js.map +1 -1
  1799. package/dist/ui-core/controllers/interruptible-controller.d.ts +0 -6
  1800. package/dist/ui-core/controllers/interruptible-controller.js +0 -6
  1801. package/dist/ui-core/controllers/interruptible-controller.js.map +1 -1
  1802. package/dist/ui-core/controllers/overlay-controller.d.ts +1 -81
  1803. package/dist/ui-core/controllers/overlay-controller.js +1 -48
  1804. package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
  1805. package/dist/ui-core/controllers/selection-controller.d.ts +0 -9
  1806. package/dist/ui-core/controllers/selection-controller.js +0 -7
  1807. package/dist/ui-core/controllers/selection-controller.js.map +1 -1
  1808. package/dist/ui-core/controllers/toast-controller.d.ts +0 -24
  1809. package/dist/ui-core/controllers/toast-controller.js +0 -15
  1810. package/dist/ui-core/controllers/toast-controller.js.map +1 -1
  1811. package/dist/ui-core/layout/compute-layout.d.ts +0 -19
  1812. package/dist/ui-core/layout/compute-layout.js +0 -32
  1813. package/dist/ui-core/layout/compute-layout.js.map +1 -1
  1814. package/dist/ui-core/motion/ease.d.ts +0 -6
  1815. package/dist/ui-core/motion/ease.js +0 -6
  1816. package/dist/ui-core/motion/ease.js.map +1 -1
  1817. package/dist/ui-core/notify.d.ts +0 -8
  1818. package/dist/ui-core/notify.js +0 -8
  1819. package/dist/ui-core/notify.js.map +1 -1
  1820. package/dist/ui-core/plan/plan-lifecycle.d.ts +0 -27
  1821. package/dist/ui-core/plan/plan-lifecycle.js +0 -45
  1822. package/dist/ui-core/plan/plan-lifecycle.js.map +1 -1
  1823. package/dist/ui-core/ports/clipboard-osc52.d.ts +0 -8
  1824. package/dist/ui-core/ports/clipboard-osc52.js +0 -7
  1825. package/dist/ui-core/ports/clipboard-osc52.js.map +1 -1
  1826. package/dist/ui-core/ports/pager-export-port.js +0 -2
  1827. package/dist/ui-core/ports/pager-export-port.js.map +1 -1
  1828. package/dist/ui-core/ports/renderer-port.d.ts +0 -6
  1829. package/dist/ui-core/react/providers.d.ts +0 -7
  1830. package/dist/ui-core/react/providers.js +0 -7
  1831. package/dist/ui-core/react/providers.js.map +1 -1
  1832. package/dist/ui-core/react/use-has-draft.d.ts +0 -5
  1833. package/dist/ui-core/react/use-has-draft.js +0 -5
  1834. package/dist/ui-core/react/use-has-draft.js.map +1 -1
  1835. package/dist/ui-core/react/use-overlay.d.ts +0 -1
  1836. package/dist/ui-core/react/use-overlay.js +0 -1
  1837. package/dist/ui-core/react/use-overlay.js.map +1 -1
  1838. package/dist/ui-core/react/use-plan.d.ts +0 -1
  1839. package/dist/ui-core/react/use-plan.js +0 -1
  1840. package/dist/ui-core/react/use-plan.js.map +1 -1
  1841. package/dist/ui-core/react/use-toast.d.ts +0 -1
  1842. package/dist/ui-core/react/use-toast.js +0 -3
  1843. package/dist/ui-core/react/use-toast.js.map +1 -1
  1844. package/dist/ui-core/react/use-transcript-meta.d.ts +7 -0
  1845. package/dist/ui-core/react/use-transcript-meta.js +36 -0
  1846. package/dist/ui-core/react/use-transcript-meta.js.map +1 -0
  1847. package/dist/ui-core/react/use-transcript-store.d.ts +0 -7
  1848. package/dist/ui-core/react/use-transcript-store.js +0 -7
  1849. package/dist/ui-core/react/use-transcript-store.js.map +1 -1
  1850. package/dist/ui-core/rendering/artifact-pager-source.d.ts +0 -7
  1851. package/dist/ui-core/rendering/artifact-pager-source.js +0 -3
  1852. package/dist/ui-core/rendering/artifact-pager-source.js.map +1 -1
  1853. package/dist/ui-core/rendering/batch-sections.d.ts +0 -38
  1854. package/dist/ui-core/rendering/batch-sections.js +1 -47
  1855. package/dist/ui-core/rendering/batch-sections.js.map +1 -1
  1856. package/dist/ui-core/rendering/code-block.d.ts +0 -25
  1857. package/dist/ui-core/rendering/code-block.js +0 -47
  1858. package/dist/ui-core/rendering/code-block.js.map +1 -1
  1859. package/dist/ui-core/rendering/context-limit.js +0 -2
  1860. package/dist/ui-core/rendering/context-limit.js.map +1 -1
  1861. package/dist/ui-core/rendering/duration.js +0 -3
  1862. package/dist/ui-core/rendering/duration.js.map +1 -1
  1863. package/dist/ui-core/rendering/exit-summary/table.d.ts +23 -0
  1864. package/dist/ui-core/rendering/exit-summary/table.js +194 -0
  1865. package/dist/ui-core/rendering/exit-summary/table.js.map +1 -0
  1866. package/dist/ui-core/rendering/exit-summary.js +1 -210
  1867. package/dist/ui-core/rendering/exit-summary.js.map +1 -1
  1868. package/dist/ui-core/rendering/file-diff-view.d.ts +0 -27
  1869. package/dist/ui-core/rendering/file-diff-view.js +0 -29
  1870. package/dist/ui-core/rendering/file-diff-view.js.map +1 -1
  1871. package/dist/ui-core/rendering/format-help.d.ts +0 -13
  1872. package/dist/ui-core/rendering/format-help.js +0 -18
  1873. package/dist/ui-core/rendering/format-help.js.map +1 -1
  1874. package/dist/ui-core/rendering/format-keys.js +0 -2
  1875. package/dist/ui-core/rendering/format-keys.js.map +1 -1
  1876. package/dist/ui-core/rendering/format-usage.js +18 -5
  1877. package/dist/ui-core/rendering/format-usage.js.map +1 -1
  1878. package/dist/ui-core/rendering/incremental-strip.js +0 -13
  1879. package/dist/ui-core/rendering/incremental-strip.js.map +1 -1
  1880. package/dist/ui-core/rendering/intro-header.js +0 -1
  1881. package/dist/ui-core/rendering/intro-header.js.map +1 -1
  1882. package/dist/ui-core/rendering/job-tail-source.d.ts +0 -9
  1883. package/dist/ui-core/rendering/job-tail-source.js +0 -9
  1884. package/dist/ui-core/rendering/job-tail-source.js.map +1 -1
  1885. package/dist/ui-core/rendering/link-detector.d.ts +0 -8
  1886. package/dist/ui-core/rendering/link-detector.js +0 -10
  1887. package/dist/ui-core/rendering/link-detector.js.map +1 -1
  1888. package/dist/ui-core/rendering/markdown/tables.d.ts +8 -0
  1889. package/dist/ui-core/rendering/markdown/tables.js +276 -0
  1890. package/dist/ui-core/rendering/markdown/tables.js.map +1 -0
  1891. package/dist/ui-core/rendering/markdown.d.ts +4 -9
  1892. package/dist/ui-core/rendering/markdown.js +224 -593
  1893. package/dist/ui-core/rendering/markdown.js.map +1 -1
  1894. package/dist/ui-core/rendering/open-tool-output.d.ts +0 -30
  1895. package/dist/ui-core/rendering/open-tool-output.js +0 -39
  1896. package/dist/ui-core/rendering/open-tool-output.js.map +1 -1
  1897. package/dist/ui-core/rendering/pager-chrome.d.ts +0 -20
  1898. package/dist/ui-core/rendering/pager-chrome.js +0 -24
  1899. package/dist/ui-core/rendering/pager-chrome.js.map +1 -1
  1900. package/dist/ui-core/rendering/pager-source.d.ts +0 -17
  1901. package/dist/ui-core/rendering/pager-source.js +0 -27
  1902. package/dist/ui-core/rendering/pager-source.js.map +1 -1
  1903. package/dist/ui-core/rendering/pager-text.d.ts +0 -21
  1904. package/dist/ui-core/rendering/pager-text.js +0 -31
  1905. package/dist/ui-core/rendering/pager-text.js.map +1 -1
  1906. package/dist/ui-core/rendering/pager-view-policy.d.ts +0 -24
  1907. package/dist/ui-core/rendering/pager-view-policy.js +0 -31
  1908. package/dist/ui-core/rendering/pager-view-policy.js.map +1 -1
  1909. package/dist/ui-core/rendering/picker-filter.d.ts +0 -11
  1910. package/dist/ui-core/rendering/picker-filter.js +0 -11
  1911. package/dist/ui-core/rendering/picker-filter.js.map +1 -1
  1912. package/dist/ui-core/rendering/plan-view.d.ts +0 -39
  1913. package/dist/ui-core/rendering/plan-view.js +0 -37
  1914. package/dist/ui-core/rendering/plan-view.js.map +1 -1
  1915. package/dist/ui-core/rendering/prompt-preview.d.ts +0 -5
  1916. package/dist/ui-core/rendering/prompt-preview.js +0 -5
  1917. package/dist/ui-core/rendering/prompt-preview.js.map +1 -1
  1918. package/dist/ui-core/rendering/sanitize-display.d.ts +0 -10
  1919. package/dist/ui-core/rendering/sanitize-display.js +0 -14
  1920. package/dist/ui-core/rendering/sanitize-display.js.map +1 -1
  1921. package/dist/ui-core/rendering/status-segments.js +3 -3
  1922. package/dist/ui-core/rendering/status-segments.js.map +1 -1
  1923. package/dist/ui-core/rendering/streaming-markdown.js +0 -11
  1924. package/dist/ui-core/rendering/streaming-markdown.js.map +1 -1
  1925. package/dist/ui-core/rendering/syntax/clike.d.ts +22 -0
  1926. package/dist/ui-core/rendering/syntax/clike.js +168 -0
  1927. package/dist/ui-core/rendering/syntax/clike.js.map +1 -0
  1928. package/dist/ui-core/rendering/syntax/keywords.d.ts +24 -0
  1929. package/dist/ui-core/rendering/syntax/keywords.js +169 -0
  1930. package/dist/ui-core/rendering/syntax/keywords.js.map +1 -0
  1931. package/dist/ui-core/rendering/syntax/language-highlighters.d.ts +18 -0
  1932. package/dist/ui-core/rendering/syntax/language-highlighters.js +538 -0
  1933. package/dist/ui-core/rendering/syntax/language-highlighters.js.map +1 -0
  1934. package/dist/ui-core/rendering/syntax/language-table.d.ts +3 -0
  1935. package/dist/ui-core/rendering/syntax/language-table.js +244 -0
  1936. package/dist/ui-core/rendering/syntax/language-table.js.map +1 -0
  1937. package/dist/ui-core/rendering/syntax-highlight.d.ts +6 -28
  1938. package/dist/ui-core/rendering/syntax-highlight.js +5 -1177
  1939. package/dist/ui-core/rendering/syntax-highlight.js.map +1 -1
  1940. package/dist/ui-core/rendering/text-format.d.ts +0 -3
  1941. package/dist/ui-core/rendering/text-format.js +0 -3
  1942. package/dist/ui-core/rendering/text-format.js.map +1 -1
  1943. package/dist/ui-core/rendering/text-width.d.ts +0 -26
  1944. package/dist/ui-core/rendering/text-width.js +0 -26
  1945. package/dist/ui-core/rendering/text-width.js.map +1 -1
  1946. package/dist/ui-core/rendering/theme.d.ts +0 -65
  1947. package/dist/ui-core/rendering/theme.js +0 -24
  1948. package/dist/ui-core/rendering/theme.js.map +1 -1
  1949. package/dist/ui-core/rendering/thinking-tail.js +0 -3
  1950. package/dist/ui-core/rendering/thinking-tail.js.map +1 -1
  1951. package/dist/ui-core/rendering/tool-presenter.d.ts +0 -41
  1952. package/dist/ui-core/rendering/tool-presenter.js +1 -67
  1953. package/dist/ui-core/rendering/tool-presenter.js.map +1 -1
  1954. package/dist/ui-core/rendering/transcript-semantic.d.ts +0 -8
  1955. package/dist/ui-core/rendering/transcript-semantic.js +0 -13
  1956. package/dist/ui-core/rendering/transcript-semantic.js.map +1 -1
  1957. package/dist/ui-core/rendering/user-message-wrap.d.ts +0 -16
  1958. package/dist/ui-core/rendering/user-message-wrap.js +0 -16
  1959. package/dist/ui-core/rendering/user-message-wrap.js.map +1 -1
  1960. package/dist/ui-core/rendering/wordmark.d.ts +0 -8
  1961. package/dist/ui-core/rendering/wordmark.js +0 -21
  1962. package/dist/ui-core/rendering/wordmark.js.map +1 -1
  1963. package/dist/ui-core/state/hydrate/classic-transcript.d.ts +8 -0
  1964. package/dist/ui-core/state/hydrate/classic-transcript.js +168 -0
  1965. package/dist/ui-core/state/hydrate/classic-transcript.js.map +1 -0
  1966. package/dist/ui-core/state/hydrate/from-messages.d.ts +6 -0
  1967. package/dist/ui-core/state/hydrate/from-messages.js +237 -0
  1968. package/dist/ui-core/state/hydrate/from-messages.js.map +1 -0
  1969. package/dist/ui-core/state/pager-search.d.ts +0 -9
  1970. package/dist/ui-core/state/pager-search.js +1 -8
  1971. package/dist/ui-core/state/pager-search.js.map +1 -1
  1972. package/dist/ui-core/state/semantic-document.d.ts +0 -8
  1973. package/dist/ui-core/state/semantic-document.js +0 -8
  1974. package/dist/ui-core/state/semantic-document.js.map +1 -1
  1975. package/dist/ui-core/state/thinking-copy.d.ts +0 -8
  1976. package/dist/ui-core/state/thinking-copy.js +0 -8
  1977. package/dist/ui-core/state/thinking-copy.js.map +1 -1
  1978. package/dist/ui-core/state/transcript/apply-app-event.d.ts +8 -0
  1979. package/dist/ui-core/state/transcript/apply-app-event.js +406 -0
  1980. package/dist/ui-core/state/transcript/apply-app-event.js.map +1 -0
  1981. package/dist/ui-core/state/transcript/message-lifecycle.d.ts +7 -0
  1982. package/dist/ui-core/state/transcript/message-lifecycle.js +285 -0
  1983. package/dist/ui-core/state/transcript/message-lifecycle.js.map +1 -0
  1984. package/dist/ui-core/state/transcript-compaction.d.ts +0 -19
  1985. package/dist/ui-core/state/transcript-compaction.js +0 -21
  1986. package/dist/ui-core/state/transcript-compaction.js.map +1 -1
  1987. package/dist/ui-core/state/transcript-follow-key.d.ts +2 -0
  1988. package/dist/ui-core/state/transcript-follow-key.js +37 -0
  1989. package/dist/ui-core/state/transcript-follow-key.js.map +1 -0
  1990. package/dist/ui-core/state/transcript-hydrate.d.ts +6 -52
  1991. package/dist/ui-core/state/transcript-hydrate.js +5 -470
  1992. package/dist/ui-core/state/transcript-hydrate.js.map +1 -1
  1993. package/dist/ui-core/state/transcript-reducer.d.ts +1 -15
  1994. package/dist/ui-core/state/transcript-reducer.js +1 -708
  1995. package/dist/ui-core/state/transcript-reducer.js.map +1 -1
  1996. package/dist/ui-core/state/transcript-search.d.ts +0 -8
  1997. package/dist/ui-core/state/transcript-search.js +0 -8
  1998. package/dist/ui-core/state/transcript-search.js.map +1 -1
  1999. package/dist/ui-core/state/transcript-store.d.ts +0 -26
  2000. package/dist/ui-core/state/transcript-store.js +0 -28
  2001. package/dist/ui-core/state/transcript-store.js.map +1 -1
  2002. package/dist/ui-core/state/transcript-types.d.ts +0 -33
  2003. package/dist/ui-core/state/transcript-types.js +0 -17
  2004. package/dist/ui-core/state/transcript-types.js.map +1 -1
  2005. package/dist/ui-core/state/transcript-window.d.ts +1 -9
  2006. package/dist/ui-core/state/transcript-window.js +1 -9
  2007. package/dist/ui-core/state/transcript-window.js.map +1 -1
  2008. package/dist/version.generated.d.ts +2 -2
  2009. package/dist/version.generated.js +2 -2
  2010. package/package.json +19 -2
  2011. package/dist/agent/finalize-gate.d.ts +0 -54
  2012. package/dist/agent/finalize-gate.js +0 -97
  2013. package/dist/agent/finalize-gate.js.map +0 -1
  2014. package/dist/agent/must-continue.d.ts +0 -36
  2015. package/dist/agent/must-continue.js +0 -172
  2016. package/dist/agent/must-continue.js.map +0 -1
@@ -1,7 +1,5 @@
1
1
  import { readFileSync } from "node:fs";
2
- import { appendFile, copyFile, mkdir, readdir, open, readFile, rename, rm, stat, utimes, writeFile, } from "node:fs/promises";
3
- import { join } from "node:path";
4
- import { isInternalChatMessage, } from "../types.js";
2
+ import { isInternalChatMessage } from "../types.js";
5
3
  import { imageBudgetFor, } from "../attachments/image-content.js";
6
4
  import { prepareImageForModel } from "../attachments/image-prepare.js";
7
5
  import { redactSecrets } from "../llm/provider.js";
@@ -9,52 +7,18 @@ import { canonicalizeChatMessageReasoningArtifacts } from "../llm/reasoning-arti
9
7
  import { redactSecretsCached } from "./redaction-cache.js";
10
8
  import { getConfig } from "./config.js";
11
9
  import { safeCwd } from "../os/cwd.js";
12
- import { fixOwner, fixOwnerSync, handlePermissionError, safeExists } from "../os/permissions.js";
13
- import { getHistoryDir } from "./paths.js";
14
- import { getActiveSessionWorkspace, isUnderSessionWorkspaceParent, sessionWorkspaceRoot, } from "./session-workspace.js";
15
- import { appendIndexedHistoryRecord, findHistoryRecordStreaming, historySummary, readIndexedHistoryRecord, readValidatedHistoryIndex, rebuildHistoryIndex, rebuildHistoryIndexWithStatus, writeIndexedJsonl, } from "./history-index.js";
16
- /** Live paths so CLAI_DATA_DIR / CLAI_HISTORY_DIR always apply (and tests work). */
17
- function historyDirPath() {
18
- return getHistoryDir();
19
- }
20
- function dbFilePath() {
21
- return join(historyDirPath(), "history.db");
22
- }
23
- function jsonlFilePath() {
24
- return join(historyDirPath(), "history.jsonl");
25
- }
26
- function jsonlIndexFilePath() {
27
- return join(historyDirPath(), "history.index.json");
28
- }
29
- function jsonlLockFilePath() {
30
- return join(historyDirPath(), "history.jsonl.lock");
31
- }
32
- function jsonlLockReaperPath() {
33
- return join(historyDirPath(), "history.jsonl.lock.reaper");
34
- }
35
- /** Sessions pruned by retention land here — never hard-deleted on autosave. */
36
- function archiveFilePath() {
37
- return join(historyDirPath(), "history-archive.jsonl");
38
- }
39
- /** Rolling pre-write snapshots of the active history file. */
40
- function backupDirPath() {
41
- return join(historyDirPath(), "history-backups");
42
- }
43
- /** Max rolling backups kept under history-backups/. */
44
- const MAX_HISTORY_BACKUPS = 12;
45
- const sqliteModuleName = "better-sqlite3";
46
- function sessionModelFields(selection, fallback) {
47
- const provider = selection?.provider ?? fallback?.provider;
48
- const model = selection?.model ?? fallback?.model;
49
- return {
50
- ...(provider ? { provider } : {}),
51
- ...(model ? { model } : {}),
52
- };
53
- }
54
- /** Snapshot the active session workspace for history persistence. */
10
+ import { getActiveSessionWorkspace } from "./session-workspace.js";
11
+ import { backupDirPath, compareHistoryFreshness, dedupeHistoryById, historyRevision, invalidateSessionListCache, jsonlFilePath, sortHistoryByUpdatedDesc } from "./history/recovery.js";
12
+ import { archiveFilePath, enforceSqliteRetention, loadDatabase, sessionModelFields, upsertSqlite } from "./history/sqlite-backend.js";
13
+ import { upsertJsonl } from "./history/jsonl-backend.js";
14
+ import { getSession } from "./history/session-queries.js";
15
+ export { clearAllHistory, deleteSession, purgeSession } from "./history/lifecycle.js";
16
+ export { listSessionSummaries, listSessions } from "./history/session-queries.js";
17
+ export { getSession };
18
+ export { partitionByRetention } from "./history/jsonl-backend.js";
19
+ export { recoverOrphanedHistory } from "./history/recovery.js";
20
+ export { compareHistoryFreshness, dedupeHistoryById, sortHistoryByUpdatedDesc };
55
21
  function workspaceFieldsFromActive(existing) {
56
- // Prefer the already-persisted folder so rebinding mid-session never
57
- // renames a live workspace out from under open artifact paths.
58
22
  if (existing?.workspaceFolder) {
59
23
  return {
60
24
  workspaceFolder: existing.workspaceFolder,
@@ -70,93 +34,9 @@ function workspaceFieldsFromActive(existing) {
70
34
  }
71
35
  return {};
72
36
  }
73
- let cachedDb;
74
- let sqliteUnavailable = false;
75
- let cachedSessionList;
76
- let sessionListGeneration = 0;
77
- /** Keep repeated /history opens fast while bounding cross-process staleness. */
78
- const SESSION_LIST_CACHE_TTL_MS = 1_000;
79
- function invalidateSessionListCache() {
80
- sessionListGeneration += 1;
81
- cachedSessionList = undefined;
82
- }
83
- async function loadDatabase() {
84
- if (cachedDb)
85
- return cachedDb;
86
- if (sqliteUnavailable)
87
- return undefined;
88
- try {
89
- await mkdir(historyDirPath(), { recursive: true });
90
- await fixOwner(historyDirPath());
91
- const imported = (await import(sqliteModuleName));
92
- const Ctor = imported.default ?? imported;
93
- cachedDb = new Ctor(dbFilePath());
94
- fixOwnerSync(dbFilePath());
95
- cachedDb.exec(`
96
- CREATE TABLE IF NOT EXISTS sessions (
97
- id TEXT PRIMARY KEY,
98
- name TEXT,
99
- created_at TEXT NOT NULL,
100
- updated_at TEXT NOT NULL,
101
- writer_generation TEXT,
102
- revision INTEGER NOT NULL DEFAULT 0,
103
- cwd TEXT NOT NULL,
104
- message_count INTEGER NOT NULL DEFAULT 0,
105
- item_count INTEGER NOT NULL DEFAULT 0,
106
- has_images INTEGER NOT NULL DEFAULT 0,
107
- messages_json TEXT NOT NULL
108
- );
109
- CREATE TABLE IF NOT EXISTS tool_calls (
110
- id TEXT PRIMARY KEY,
111
- session_id TEXT NOT NULL,
112
- created_at TEXT NOT NULL,
113
- name TEXT NOT NULL,
114
- args_json TEXT NOT NULL,
115
- ok INTEGER NOT NULL,
116
- exit_code INTEGER,
117
- output TEXT NOT NULL,
118
- FOREIGN KEY(session_id) REFERENCES sessions(id)
119
- );
120
- CREATE INDEX IF NOT EXISTS idx_sessions_updated_at ON sessions(updated_at);
121
- CREATE INDEX IF NOT EXISTS idx_tool_calls_session_id ON tool_calls(session_id);
122
- `);
123
- const sessionColumns = cachedDb
124
- .prepare("PRAGMA table_info(sessions)")
125
- .all();
126
- if (!sessionColumns.some((column) => column.name === "writer_generation")) {
127
- cachedDb.exec("ALTER TABLE sessions ADD COLUMN writer_generation TEXT;");
128
- }
129
- if (!sessionColumns.some((column) => column.name === "revision")) {
130
- cachedDb.exec("ALTER TABLE sessions ADD COLUMN revision INTEGER NOT NULL DEFAULT 0;");
131
- }
132
- if (!sessionColumns.some((column) => column.name === "message_count")) {
133
- cachedDb.exec("ALTER TABLE sessions ADD COLUMN message_count INTEGER NOT NULL DEFAULT 0;");
134
- }
135
- if (!sessionColumns.some((column) => column.name === "item_count")) {
136
- cachedDb.exec("ALTER TABLE sessions ADD COLUMN item_count INTEGER NOT NULL DEFAULT 0;");
137
- }
138
- if (!sessionColumns.some((column) => column.name === "has_images")) {
139
- cachedDb.exec("ALTER TABLE sessions ADD COLUMN has_images INTEGER NOT NULL DEFAULT 0;");
140
- }
141
- return cachedDb;
142
- }
143
- catch (err) {
144
- if (err && err.code === "EACCES") {
145
- handlePermissionError(err);
146
- }
147
- sqliteUnavailable = true;
148
- return undefined;
149
- }
150
- }
151
37
  function newId() {
152
38
  return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
153
39
  }
154
- function hydrateHistoryRecord(record) {
155
- return {
156
- ...record,
157
- messages: record.messages.map(canonicalizeChatMessageReasoningArtifacts),
158
- };
159
- }
160
40
  function scrubMessages(messages) {
161
41
  return messages.map((message) => {
162
42
  const { images, ...rest } = message;
@@ -226,7 +106,6 @@ function isSettledItem(item) {
226
106
  function scrubTranscript(items) {
227
107
  if (!items)
228
108
  return undefined;
229
- // Drop UI chrome notices — they must never bloat saved history item counts.
230
109
  const durable = items.filter((item) => item.kind !== "notice");
231
110
  return durable.map((item) => {
232
111
  const reusable = isSettledItem(item);
@@ -271,503 +150,11 @@ function scrubTranscriptItem(item) {
271
150
  done: true,
272
151
  };
273
152
  default: {
274
- // notice already filtered; keep exhaustiveness for future kinds
275
153
  return item;
276
154
  }
277
155
  }
278
156
  }
279
- const JSONL_LOCK_STALE_MS = 60_000;
280
- const JSONL_LOCK_RETRIES = 200;
281
- /** Serialize stale-lock reclamation and recheck the owner while holding it. */
282
- async function reapStaleJsonlLock() {
283
- let reaper;
284
- const reaperToken = `${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}`;
285
- try {
286
- reaper = await open(jsonlLockReaperPath(), "wx", 0o600);
287
- try {
288
- await reaper.writeFile(reaperToken);
289
- }
290
- catch (error) {
291
- await reaper.close().catch(() => undefined);
292
- await rm(jsonlLockReaperPath(), { force: true }).catch(() => undefined);
293
- throw error;
294
- }
295
- }
296
- catch (error) {
297
- if (error?.code !== "EEXIST")
298
- throw error;
299
- const existingToken = await readFile(jsonlLockReaperPath(), "utf8").catch(() => undefined);
300
- const reaperStat = await stat(jsonlLockReaperPath()).catch(() => undefined);
301
- if (!reaperStat ||
302
- Date.now() - reaperStat.mtimeMs <= JSONL_LOCK_STALE_MS) {
303
- return;
304
- }
305
- const confirmed = await readFile(jsonlLockReaperPath(), "utf8").catch(() => undefined);
306
- if (confirmed !== undefined && confirmed === existingToken) {
307
- await rm(jsonlLockReaperPath(), { force: true }).catch(() => undefined);
308
- }
309
- return;
310
- }
311
- try {
312
- const token = await readFile(jsonlLockFilePath(), "utf8").catch(() => undefined);
313
- const lockStat = await stat(jsonlLockFilePath()).catch(() => undefined);
314
- if (!lockStat || Date.now() - lockStat.mtimeMs <= JSONL_LOCK_STALE_MS) {
315
- return;
316
- }
317
- // The live owner refreshes mtime periodically. A stale marker—including
318
- // an empty marker left between open/write—is therefore safe to reclaim.
319
- const confirmed = await readFile(jsonlLockFilePath(), "utf8").catch(() => undefined);
320
- if (confirmed !== undefined && confirmed === token) {
321
- await rm(jsonlLockFilePath(), { force: true });
322
- }
323
- }
324
- finally {
325
- await reaper.close().catch(() => undefined);
326
- const currentReaper = await readFile(jsonlLockReaperPath(), "utf8").catch(() => undefined);
327
- if (currentReaper === reaperToken) {
328
- await rm(jsonlLockReaperPath(), { force: true }).catch(() => undefined);
329
- }
330
- }
331
- }
332
- /**
333
- * Cross-process lock around JSONL read/modify/rename. Atomic rename protects
334
- * readers, but without this lock two clai processes can both read the same
335
- * base file and then each replace it, dropping whichever session they did not
336
- * observe. The lock is transient and stale crash leftovers self-heal.
337
- */
338
- async function acquireJsonlWriteLock() {
339
- await mkdir(historyDirPath(), { recursive: true });
340
- for (let attempt = 0; attempt < JSONL_LOCK_RETRIES; attempt += 1) {
341
- try {
342
- const token = `${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}`;
343
- const handle = await open(jsonlLockFilePath(), "wx", 0o600);
344
- try {
345
- await handle.writeFile(token);
346
- }
347
- catch (error) {
348
- await handle.close().catch(() => undefined);
349
- await rm(jsonlLockFilePath(), { force: true }).catch(() => undefined);
350
- throw error;
351
- }
352
- const heartbeat = setInterval(() => {
353
- const now = new Date();
354
- void utimes(jsonlLockFilePath(), now, now).catch(() => undefined);
355
- }, JSONL_LOCK_STALE_MS / 3);
356
- heartbeat.unref();
357
- return async () => {
358
- clearInterval(heartbeat);
359
- await handle.close().catch(() => undefined);
360
- const currentToken = await readFile(jsonlLockFilePath(), "utf8").catch(() => undefined);
361
- if (currentToken === token) {
362
- await rm(jsonlLockFilePath(), { force: true }).catch(() => undefined);
363
- }
364
- };
365
- }
366
- catch (error) {
367
- if (error?.code !== "EEXIST")
368
- throw error;
369
- await reapStaleJsonlLock();
370
- await new Promise((resolve) => setTimeout(resolve, 25));
371
- }
372
- }
373
- throw new Error("timed out waiting for history write lock");
374
- }
375
- /**
376
- * Serializes every JSONL mutation through a single promise chain so concurrent
377
- * autosaves never interleave a read with another writer's truncating write.
378
- * Without this, a reader could observe a half-written (or momentarily empty)
379
- * file and then persist back only its own record, wiping every other session.
380
- */
381
- let jsonlWriteChain = Promise.resolve();
382
- /** Shared one-time orphan/archive recovery; writes await it, UI listings may not. */
383
- let recoveryPromise;
384
- /** Queue a locked JSONL section; the chain survives individual failures. */
385
- function queueJsonlWrite(operation, fallback) {
386
- invalidateSessionListCache();
387
- const run = jsonlWriteChain.then(async () => {
388
- try {
389
- await ensureHistoryRecovered();
390
- const releaseLock = await acquireJsonlWriteLock();
391
- try {
392
- return await operation();
393
- }
394
- finally {
395
- await releaseLock();
396
- // A list may have been loaded after the pre-write invalidation but
397
- // before the atomic rename completed. Never leave that snapshot cached.
398
- invalidateSessionListCache();
399
- }
400
- }
401
- catch (err) {
402
- handlePermissionError(err);
403
- return fallback();
404
- }
405
- });
406
- jsonlWriteChain = run.then(() => undefined, () => undefined);
407
- return run;
408
- }
409
- function mutateJsonl(update) {
410
- return queueJsonlWrite(async () => {
411
- const current = await readJsonlRecordsFrom(jsonlFilePath());
412
- await writeJsonlAtomic(update(current), current.length);
413
- }, () => undefined);
414
- }
415
- function updatedAtMs(record) {
416
- const t = Date.parse(record.updatedAt || record.createdAt || "");
417
- return Number.isFinite(t) ? t : 0;
418
- }
419
- function historyRevision(record) {
420
- const revision = record?.revision;
421
- return typeof revision === "number" &&
422
- Number.isSafeInteger(revision) &&
423
- revision > 0
424
- ? revision
425
- : 0;
426
- }
427
- function historyWriterGeneration(record) {
428
- const generation = record?.writerGeneration;
429
- return typeof generation === "string" && generation.length > 0
430
- ? generation
431
- : undefined;
432
- }
433
- /**
434
- * Compare snapshots by writer generation, then capture revision. Legacy rows
435
- * without a generation retain revision/timestamp fallback for compatibility.
436
- */
437
- export function compareHistoryFreshness(left, right) {
438
- const leftGeneration = historyWriterGeneration(left);
439
- const rightGeneration = historyWriterGeneration(right);
440
- if (leftGeneration || rightGeneration) {
441
- if (!leftGeneration)
442
- return -1;
443
- if (!rightGeneration)
444
- return 1;
445
- const generationDelta = leftGeneration.localeCompare(rightGeneration);
446
- if (generationDelta !== 0)
447
- return generationDelta;
448
- }
449
- const revisionDelta = historyRevision(left) - historyRevision(right);
450
- if (revisionDelta !== 0)
451
- return revisionDelta;
452
- if (historyRevision(left) > 0)
453
- return 0;
454
- return updatedAtMs(left) - updatedAtMs(right);
455
- }
456
- /** Keep the newest captured version of each session id. */
457
- export function dedupeHistoryById(records) {
458
- const byId = new Map();
459
- for (const record of records) {
460
- if (!record?.id)
461
- continue;
462
- const prev = byId.get(record.id);
463
- // Preserve the first source on an exact tie. JSONL is passed first during
464
- // cross-backend merge and is the durable canonical copy.
465
- if (!prev || compareHistoryFreshness(record, prev) > 0) {
466
- byId.set(record.id, record);
467
- }
468
- }
469
- return [...byId.values()];
470
- }
471
- export function sortHistoryByUpdatedDesc(records) {
472
- return [...records].sort((a, b) => updatedAtMs(b) - updatedAtMs(a));
473
- }
474
- /**
475
- * Apply retention by *recency* (not file order). Pruned sessions are returned
476
- * separately so callers can archive them — never silently destroy history.
477
- * limit <= 0 means unlimited (keep everything).
478
- */
479
- export function partitionByRetention(records, limit) {
480
- const unique = sortHistoryByUpdatedDesc(dedupeHistoryById(records));
481
- if (!limit || limit <= 0 || unique.length <= limit) {
482
- return { kept: unique, pruned: [] };
483
- }
484
- return {
485
- kept: unique.slice(0, limit),
486
- pruned: unique.slice(limit),
487
- };
488
- }
489
- /** Read and parse all valid JSONL records from any path. */
490
- async function readJsonlRecordsFrom(path) {
491
- if (!(await safeExists(path)))
492
- return [];
493
- try {
494
- const raw = await readFile(path, "utf8");
495
- return raw
496
- .split("\n")
497
- .filter(Boolean)
498
- .map((line) => {
499
- try {
500
- return JSON.parse(line);
501
- }
502
- catch {
503
- return null;
504
- }
505
- })
506
- .filter((record) => record !== null)
507
- .map(hydrateHistoryRecord);
508
- }
509
- catch (err) {
510
- if (err && err.code === "EACCES")
511
- handlePermissionError(err);
512
- return [];
513
- }
514
- }
515
- /** Session count without parsing the whole file when the index is valid. */
516
- async function countJsonlSessions() {
517
- const entries = await readValidatedHistoryIndex(jsonlFilePath(), jsonlIndexFilePath());
518
- if (entries)
519
- return entries.length;
520
- return (await readJsonlRecordsFrom(jsonlFilePath())).length;
521
- }
522
- async function appendRecordsToFile(path, records) {
523
- if (records.length === 0)
524
- return;
525
- await mkdir(historyDirPath(), { recursive: true });
526
- await fixOwner(historyDirPath());
527
- const chunk = `${records.map((r) => JSON.stringify(r)).join("\n")}\n`;
528
- // Append is best-effort durable; archive growth is unbounded by design so
529
- // retention never permanently loses a conversation.
530
- await appendFile(path, chunk, { mode: 0o600 });
531
- await fixOwner(path).catch(() => undefined);
532
- }
533
- async function backupActiveHistory() {
534
- if (!(await safeExists(jsonlFilePath())))
535
- return;
536
- try {
537
- await mkdir(backupDirPath(), { recursive: true });
538
- await fixOwner(backupDirPath());
539
- const stamp = new Date().toISOString().replace(/[:.]/g, "-");
540
- const dest = join(backupDirPath(), `history-${stamp}.jsonl`);
541
- await copyFile(jsonlFilePath(), dest);
542
- await fixOwner(dest).catch(() => undefined);
543
- // Keep only the newest N backups.
544
- const names = (await readdir(backupDirPath()))
545
- .filter((n) => n.startsWith("history-") && n.endsWith(".jsonl"))
546
- .sort()
547
- .reverse();
548
- for (const old of names.slice(MAX_HISTORY_BACKUPS)) {
549
- await rm(join(backupDirPath(), old), { force: true }).catch(() => undefined);
550
- }
551
- }
552
- catch {
553
- // Backup is best-effort; never block the autosave path.
554
- }
555
- }
556
- // Restore backups only for a missing/corrupt active file, then merge orphan write temps.
557
- export async function recoverOrphanedHistory() {
558
- const sources = [];
559
- const tempSources = [];
560
- const releaseLock = await acquireJsonlWriteLock();
561
- try {
562
- const activePath = jsonlFilePath();
563
- const activeExists = await safeExists(activePath);
564
- const tempNames = await readdir(historyDirPath())
565
- .then((names) => names.filter((name) => name.startsWith("history.jsonl.") && name.endsWith(".tmp")))
566
- .catch(() => []);
567
- if (activeExists && tempNames.length === 0) {
568
- const indexed = await readValidatedHistoryIndex(activePath, jsonlIndexFilePath());
569
- if (indexed)
570
- return { recovered: 0, sources };
571
- const rebuilt = await rebuildHistoryIndexWithStatus(activePath, jsonlIndexFilePath());
572
- if (!rebuilt.malformed)
573
- return { recovered: 0, sources };
574
- }
575
- let activeCorrupt = false;
576
- let active = [];
577
- if (activeExists) {
578
- try {
579
- const raw = await readFile(activePath, "utf8");
580
- const lines = raw.split("\n").filter((line) => line.trim().length > 0);
581
- for (const line of lines) {
582
- try {
583
- active.push(hydrateHistoryRecord(JSON.parse(line)));
584
- }
585
- catch {
586
- activeCorrupt = true;
587
- }
588
- }
589
- }
590
- catch (error) {
591
- if (error?.code === "EACCES")
592
- handlePermissionError(error);
593
- activeCorrupt = true;
594
- }
595
- }
596
- const backupRecords = [];
597
- if (!activeExists || activeCorrupt) {
598
- try {
599
- const backups = (await readdir(backupDirPath()))
600
- .filter((name) => name.startsWith("history-") && name.endsWith(".jsonl"))
601
- .sort()
602
- .reverse();
603
- for (const name of backups) {
604
- const rows = await readJsonlRecordsFrom(join(backupDirPath(), name));
605
- if (rows.length === 0)
606
- continue;
607
- backupRecords.push(...rows);
608
- sources.push(`history-backups/${name}`);
609
- break;
610
- }
611
- }
612
- catch {
613
- // No usable backup directory.
614
- }
615
- }
616
- const extras = [];
617
- try {
618
- const names = await readdir(historyDirPath());
619
- for (const name of names) {
620
- if (!name.startsWith("history.jsonl.") || !name.endsWith(".tmp")) {
621
- continue;
622
- }
623
- const path = join(historyDirPath(), name);
624
- const rows = await readJsonlRecordsFrom(path);
625
- if (rows.length === 0) {
626
- await rm(path, { force: true }).catch(() => undefined);
627
- continue;
628
- }
629
- extras.push(...rows);
630
- sources.push(name);
631
- tempSources.push(name);
632
- }
633
- }
634
- catch {
635
- // History directory may not exist yet.
636
- }
637
- const activeById = new Map(active.map((record) => [record.id, record]));
638
- const merged = dedupeHistoryById([...active, ...backupRecords, ...extras]);
639
- const recoveredCount = merged.filter((record) => {
640
- const previous = activeById.get(record.id);
641
- return !previous || compareHistoryFreshness(record, previous) > 0;
642
- }).length;
643
- const needsRewrite = activeCorrupt ||
644
- (!activeExists && backupRecords.length > 0) ||
645
- recoveredCount > 0;
646
- if (!needsRewrite)
647
- return { recovered: 0, sources };
648
- await mkdir(historyDirPath(), { recursive: true });
649
- await fixOwner(historyDirPath());
650
- if (activeExists && !activeCorrupt)
651
- await backupActiveHistory();
652
- const sorted = sortHistoryByUpdatedDesc(merged);
653
- sorted.reverse();
654
- await writeIndexedJsonl(activePath, jsonlIndexFilePath(), sorted);
655
- await Promise.all([
656
- fixOwner(activePath),
657
- fixOwner(jsonlIndexFilePath()),
658
- ]);
659
- for (const name of tempSources) {
660
- await rm(join(historyDirPath(), name), { force: true }).catch(() => undefined);
661
- }
662
- return { recovered: recoveredCount, sources };
663
- }
664
- finally {
665
- await releaseLock();
666
- }
667
- }
668
- function startHistoryRecovery() {
669
- if (!recoveryPromise) {
670
- recoveryPromise = recoverOrphanedHistory()
671
- .then(() => undefined, () => undefined)
672
- .finally(() => {
673
- // A background recovery may have merged archive/temp records after a
674
- // picker list was published; force the next /history to refresh.
675
- invalidateSessionListCache();
676
- });
677
- }
678
- return recoveryPromise;
679
- }
680
- async function ensureHistoryRecovered() {
681
- await startHistoryRecovery();
682
- }
683
- /**
684
- * Apply retention (archive pruned sessions) and write the active file
685
- * atomically. Never hard-deletes pruned chats — they go to history-archive.jsonl.
686
- */
687
- async function writeJsonlAtomic(records, knownExistingCount) {
688
- invalidateSessionListCache();
689
- await mkdir(historyDirPath(), { recursive: true });
690
- await fixOwner(historyDirPath());
691
- const limit = getConfig().historyRetentionLimit;
692
- const { kept, pruned } = partitionByRetention(records, limit);
693
- if (pruned.length > 0) {
694
- // Durable archive before the active file shrinks.
695
- await appendRecordsToFile(archiveFilePath(), pruned);
696
- }
697
- // If we would shrink (or replace) the on-disk set, snapshot first.
698
- if (await safeExists(jsonlFilePath())) {
699
- const existingCount = knownExistingCount ?? (await countJsonlSessions());
700
- if (kept.length < existingCount || pruned.length > 0) {
701
- await backupActiveHistory();
702
- }
703
- }
704
- // Refuse to write an empty file over a non-empty one unless the caller
705
- // intentionally has zero records (e.g. clear after archiving).
706
- if (kept.length === 0 && (await safeExists(jsonlFilePath()))) {
707
- const existing = await readJsonlRecordsFrom(jsonlFilePath());
708
- if (existing.length > 0 && records.length > 0) {
709
- // Something went wrong in partitioning — keep the safer set.
710
- const safe = sortHistoryByUpdatedDesc(dedupeHistoryById(existing));
711
- safe.reverse();
712
- await writeIndexedJsonl(jsonlFilePath(), jsonlIndexFilePath(), safe);
713
- await Promise.all([
714
- fixOwner(jsonlFilePath()),
715
- fixOwner(jsonlIndexFilePath()),
716
- ]);
717
- return;
718
- }
719
- }
720
- // File order: oldest → newest (matches classic append style).
721
- const ordered = sortHistoryByUpdatedDesc(kept);
722
- ordered.reverse();
723
- await writeIndexedJsonl(jsonlFilePath(), jsonlIndexFilePath(), ordered);
724
- await Promise.all([
725
- fixOwner(jsonlFilePath()),
726
- fixOwner(jsonlIndexFilePath()),
727
- ]);
728
- }
729
- function serializeSessionPayload(record) {
730
- return JSON.stringify({
731
- messages: record.messages,
732
- transcript: record.transcript,
733
- ...(record.contextUsage ? { contextUsage: record.contextUsage } : {}),
734
- ...(record.previousTurn ? { previousTurn: record.previousTurn } : {}),
735
- ...sessionModelFields(record),
736
- ...(record.workspaceFolder
737
- ? {
738
- workspaceFolder: record.workspaceFolder,
739
- workspaceCode: record.workspaceCode,
740
- }
741
- : {}),
742
- });
743
- }
744
- /** SQLite mirror write with atomic generation/revision rejection. */
745
- function upsertSqlite(db, record) {
746
- const summary = historySummary(record);
747
- db.prepare(`INSERT INTO sessions
748
- (id, name, created_at, updated_at, writer_generation, revision, cwd,
749
- message_count, item_count, has_images, messages_json)
750
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
751
- ON CONFLICT(id) DO UPDATE SET
752
- name = excluded.name,
753
- created_at = excluded.created_at,
754
- updated_at = excluded.updated_at,
755
- writer_generation = excluded.writer_generation,
756
- revision = excluded.revision,
757
- cwd = excluded.cwd,
758
- message_count = excluded.message_count,
759
- item_count = excluded.item_count,
760
- has_images = excluded.has_images,
761
- messages_json = excluded.messages_json
762
- WHERE (sessions.writer_generation IS NULL AND excluded.writer_generation IS NOT NULL)
763
- OR excluded.writer_generation > sessions.writer_generation
764
- OR (excluded.writer_generation = sessions.writer_generation
765
- AND excluded.revision >= sessions.revision)
766
- OR (sessions.writer_generation IS NULL AND excluded.writer_generation IS NULL
767
- AND excluded.revision >= sessions.revision)`).run(record.id, record.name ?? null, record.createdAt, record.updatedAt, historyWriterGeneration(record) ?? null, historyRevision(record), record.cwd, summary.messageCount, summary.itemCount, summary.hasImages ? 1 : 0, serializeSessionPayload(record));
768
- }
769
157
  export async function saveSession(messages, name, transcript, contextUsage, revision, writerGeneration, previousTurn, sessionModel) {
770
- // Auto-derive a readable name from the first real user message if none provided
771
158
  if (!name) {
772
159
  const firstUser = messages.find((m) => m.role === "user" && !isInternalChatMessage(m));
773
160
  if (firstUser) {
@@ -794,8 +181,6 @@ export async function saveSession(messages, name, transcript, contextUsage, revi
794
181
  ...sessionModelFields(sessionModel),
795
182
  ...workspace,
796
183
  };
797
- // Private mode: never persist chat content. Caller still gets a record
798
- // back (so /save echoes a usable id) but nothing hits disk.
799
184
  if (getConfig().privateMode)
800
185
  return record;
801
186
  invalidateSessionListCache();
@@ -864,90 +249,6 @@ export async function upsertSession(id, messages, name, transcript, contextUsage
864
249
  }
865
250
  return canonical;
866
251
  }
867
- async function enforceSqliteRetention(db) {
868
- const limit = getConfig().historyRetentionLimit;
869
- if (!limit || limit <= 0)
870
- return;
871
- // Archive rows about to be deleted, then delete — never hard-drop without
872
- // a JSONL archive copy.
873
- try {
874
- const doomed = db
875
- .prepare(`SELECT id, name, created_at, updated_at, writer_generation, revision, cwd, messages_json FROM sessions
876
- WHERE id NOT IN (SELECT id FROM sessions ORDER BY updated_at DESC LIMIT ?)`)
877
- .all(Math.floor(limit));
878
- const records = doomed.map(rowToSession);
879
- if (records.length > 0)
880
- await appendRecordsToFile(archiveFilePath(), records);
881
- }
882
- catch {
883
- /* archive best-effort */
884
- }
885
- db.exec(`DELETE FROM sessions WHERE id NOT IN (SELECT id FROM sessions ORDER BY updated_at DESC LIMIT ${Math.floor(limit)});`);
886
- }
887
- /** Below this size a full rewrite is cheap enough to skip compaction. */
888
- const HISTORY_COMPACT_MIN_BYTES = 1_000_000;
889
- /** Compact once dead (superseded) lines dominate the active file. */
890
- const HISTORY_COMPACT_LIVE_RATIO = 0.6;
891
- function summaryFreshness(summary) {
892
- return {
893
- id: summary.id,
894
- writerGeneration: summary.writerGeneration,
895
- revision: summary.revision,
896
- createdAt: summary.createdAt,
897
- updatedAt: summary.updatedAt,
898
- cwd: summary.cwd,
899
- messages: [],
900
- };
901
- }
902
- function shouldCompactHistory(result) {
903
- const limit = getConfig().historyRetentionLimit;
904
- if (limit > 0 && result.entries.length > limit)
905
- return true;
906
- if (result.fileSize < HISTORY_COMPACT_MIN_BYTES)
907
- return false;
908
- return result.liveBytes / result.fileSize < HISTORY_COMPACT_LIVE_RATIO;
909
- }
910
- async function compactJsonlUnderLock() {
911
- const records = await readJsonlRecordsFrom(jsonlFilePath());
912
- await writeJsonlAtomic(records, records.length);
913
- }
914
- async function upsertJsonlUnderLock(record) {
915
- await mkdir(historyDirPath(), { recursive: true });
916
- await fixOwner(historyDirPath());
917
- const entries = await readValidatedHistoryIndex(jsonlFilePath(), jsonlIndexFilePath());
918
- if (!entries) {
919
- const current = await readJsonlRecordsFrom(jsonlFilePath());
920
- const index = current.findIndex((item) => item.id === record.id);
921
- const existing = index >= 0 ? current[index] : undefined;
922
- if (existing && compareHistoryFreshness(record, existing) <= 0) {
923
- return existing;
924
- }
925
- if (index >= 0)
926
- current[index] = record;
927
- else
928
- current.push(record);
929
- await writeJsonlAtomic(current, current.length);
930
- return record;
931
- }
932
- const existingEntry = entries.find((entry) => entry.id === record.id);
933
- if (existingEntry &&
934
- compareHistoryFreshness(record, summaryFreshness(existingEntry.summary)) <= 0) {
935
- const stored = await readIndexedHistoryRecord(jsonlFilePath(), existingEntry);
936
- if (stored)
937
- return hydrateHistoryRecord(stored);
938
- }
939
- const result = await appendIndexedHistoryRecord(jsonlFilePath(), jsonlIndexFilePath(), entries, record);
940
- await Promise.all([
941
- fixOwner(jsonlFilePath()).catch(() => undefined),
942
- fixOwner(jsonlIndexFilePath()).catch(() => undefined),
943
- ]);
944
- if (shouldCompactHistory(result))
945
- await compactJsonlUnderLock();
946
- return record;
947
- }
948
- async function upsertJsonl(record) {
949
- return queueJsonlWrite(() => upsertJsonlUnderLock(record), () => record);
950
- }
951
252
  export async function saveToolCall(sessionId, call, result) {
952
253
  const record = {
953
254
  id: newId(),
@@ -966,512 +267,9 @@ export async function saveToolCall(sessionId, call, result) {
966
267
  }
967
268
  return record;
968
269
  }
969
- function rowToSession(row) {
970
- const data = row;
971
- const parsed = JSON.parse(data.messages_json);
972
- let payload = {};
973
- let messages;
974
- if (Array.isArray(parsed)) {
975
- messages = parsed;
976
- }
977
- else {
978
- payload = parsed;
979
- messages = parsed.messages ?? [];
980
- }
981
- return hydrateHistoryRecord({
982
- id: data.id,
983
- writerGeneration: data.writer_generation ?? undefined,
984
- revision: typeof data.revision === "number" && data.revision > 0
985
- ? data.revision
986
- : undefined,
987
- name: data.name ?? undefined,
988
- createdAt: data.created_at,
989
- updatedAt: data.updated_at,
990
- cwd: data.cwd,
991
- messages,
992
- transcript: payload.transcript,
993
- contextUsage: payload.contextUsage,
994
- previousTurn: payload.previousTurn,
995
- provider: payload.provider,
996
- model: payload.model,
997
- workspaceFolder: payload.workspaceFolder,
998
- workspaceCode: payload.workspaceCode,
999
- });
1000
- }
1001
- function rowToSummary(row) {
1002
- const data = row;
1003
- return {
1004
- id: data.id,
1005
- ...(data.writer_generation
1006
- ? { writerGeneration: data.writer_generation }
1007
- : {}),
1008
- ...(typeof data.revision === "number" && data.revision > 0
1009
- ? { revision: data.revision }
1010
- : {}),
1011
- ...(data.name ? { name: data.name } : {}),
1012
- createdAt: data.created_at,
1013
- updatedAt: data.updated_at,
1014
- cwd: data.cwd,
1015
- messageCount: Math.max(0, data.message_count ?? 0),
1016
- itemCount: Math.max(0, data.item_count ?? data.message_count ?? 0),
1017
- hasImages: data.has_images === 1,
1018
- };
1019
- }
1020
- function sortSummaries(summaries) {
1021
- return [...summaries].sort((left, right) => Date.parse(right.updatedAt || right.createdAt) -
1022
- Date.parse(left.updatedAt || left.createdAt));
1023
- }
1024
- export async function listSessionSummaries(limit = 20, options = {}) {
1025
- if (options.recovery === "blocking")
1026
- await ensureHistoryRecovered();
1027
- else
1028
- void startHistoryRecovery();
1029
- const cacheKey = historyDirPath();
1030
- const requestedLimit = limit > 0 ? Math.floor(limit) : 0;
1031
- const now = Date.now();
1032
- if (cachedSessionList?.historyDir === cacheKey &&
1033
- now - cachedSessionList.cachedAt <= SESSION_LIST_CACHE_TTL_MS &&
1034
- (cachedSessionList.coversAll ||
1035
- (requestedLimit > 0 &&
1036
- requestedLimit <= cachedSessionList.summaries.length))) {
1037
- const cached = cachedSessionList.summaries;
1038
- return requestedLimit > 0 ? cached.slice(0, requestedLimit) : [...cached];
1039
- }
1040
- const loadGeneration = sessionListGeneration;
1041
- let summaries;
1042
- let coversAll = false;
1043
- const entries = await readValidatedHistoryIndex(jsonlFilePath(), jsonlIndexFilePath());
1044
- if (entries) {
1045
- summaries = sortSummaries(entries.map((entry) => entry.summary));
1046
- coversAll = true;
1047
- }
1048
- if (!summaries) {
1049
- const db = await loadDatabase();
1050
- if (db) {
1051
- try {
1052
- const sql = "SELECT id, name, created_at, updated_at, writer_generation, revision, cwd, " +
1053
- "message_count, item_count, has_images FROM sessions " +
1054
- "ORDER BY updated_at DESC" +
1055
- (requestedLimit > 0 ? " LIMIT ?" : "");
1056
- const rows = requestedLimit > 0
1057
- ? db.prepare(sql).all(requestedLimit)
1058
- : db.prepare(sql).all();
1059
- summaries = rows.map(rowToSummary);
1060
- coversAll = requestedLimit === 0 || rows.length < requestedLimit;
1061
- }
1062
- catch {
1063
- summaries = undefined;
1064
- }
1065
- }
1066
- }
1067
- if (!summaries || summaries.length === 0) {
1068
- const rebuilt = await rebuildHistoryIndex(jsonlFilePath(), jsonlIndexFilePath());
1069
- summaries = sortSummaries(rebuilt.map((entry) => entry.summary));
1070
- coversAll = true;
1071
- }
1072
- else {
1073
- void rebuildHistoryIndex(jsonlFilePath(), jsonlIndexFilePath());
1074
- }
1075
- if (sessionListGeneration === loadGeneration) {
1076
- cachedSessionList = {
1077
- historyDir: cacheKey,
1078
- summaries,
1079
- cachedAt: Date.now(),
1080
- coversAll,
1081
- };
1082
- }
1083
- return requestedLimit > 0 ? summaries.slice(0, requestedLimit) : [...summaries];
1084
- }
1085
- async function listJsonlSessions(limit) {
1086
- try {
1087
- const records = sortHistoryByUpdatedDesc(dedupeHistoryById(await readJsonlRecordsFrom(jsonlFilePath())));
1088
- if (!limit || limit <= 0)
1089
- return records;
1090
- return records.slice(0, limit);
1091
- }
1092
- catch (err) {
1093
- if (err && err.code === "EACCES") {
1094
- handlePermissionError(err);
1095
- }
1096
- return [];
1097
- }
1098
- }
1099
- function mergeSessionLists(...lists) {
1100
- return sortHistoryByUpdatedDesc(dedupeHistoryById(lists.flat()));
1101
- }
1102
- export async function listSessions(limit = 20, options = {}) {
1103
- if (options.recovery === "background")
1104
- void startHistoryRecovery();
1105
- else
1106
- await ensureHistoryRecovered();
1107
- const [fromJsonl, db] = await Promise.all([
1108
- listJsonlSessions(0),
1109
- loadDatabase(),
1110
- ]);
1111
- let fromDb = [];
1112
- if (db) {
1113
- try {
1114
- const rows = db
1115
- .prepare("SELECT id, name, created_at, updated_at, writer_generation, revision, cwd, messages_json FROM sessions ORDER BY updated_at DESC")
1116
- .all();
1117
- fromDb = rows.map(rowToSession);
1118
- }
1119
- catch {
1120
- fromDb = [];
1121
- }
1122
- }
1123
- const merged = mergeSessionLists(fromJsonl, fromDb);
1124
- return !limit || limit <= 0 ? merged : merged.slice(0, limit);
1125
- }
1126
- export async function getSession(sessionId) {
1127
- void startHistoryRecovery();
1128
- const entries = await readValidatedHistoryIndex(jsonlFilePath(), jsonlIndexFilePath());
1129
- const entry = entries?.find((candidate) => candidate.id === sessionId);
1130
- if (entry) {
1131
- const indexed = await readIndexedHistoryRecord(jsonlFilePath(), entry);
1132
- if (indexed)
1133
- return hydrateHistoryRecord(indexed);
1134
- }
1135
- const db = await loadDatabase();
1136
- if (db) {
1137
- try {
1138
- const row = db
1139
- .prepare("SELECT id, name, created_at, updated_at, writer_generation, revision, cwd, messages_json FROM sessions WHERE id = ?")
1140
- .get(sessionId);
1141
- if (row)
1142
- return rowToSession(row);
1143
- }
1144
- catch {
1145
- // Fall through to streaming JSONL lookup.
1146
- }
1147
- }
1148
- const active = await findHistoryRecordStreaming(jsonlFilePath(), sessionId);
1149
- if (active) {
1150
- void rebuildHistoryIndex(jsonlFilePath(), jsonlIndexFilePath());
1151
- return hydrateHistoryRecord(active);
1152
- }
1153
- const archived = await findHistoryRecordStreaming(archiveFilePath(), sessionId);
1154
- return archived ? hydrateHistoryRecord(archived) : undefined;
1155
- }
1156
270
  export function getHistoryPath() {
1157
- // Prefer JSONL as the durable path users can inspect/backup; SQLite is
1158
- // optional acceleration when better-sqlite3 is installed.
1159
271
  return jsonlFilePath();
1160
272
  }
1161
- export async function clearAllHistory() {
1162
- await ensureHistoryRecovered();
1163
- const details = [];
1164
- try {
1165
- invalidateSessionListCache();
1166
- const db = await loadDatabase();
1167
- if (db) {
1168
- db.exec("DELETE FROM sessions; DELETE FROM tool_calls; PRAGMA wal_checkpoint(TRUNCATE); VACUUM;");
1169
- details.push("sqlite cleared");
1170
- }
1171
- }
1172
- catch (error) {
1173
- details.push(`sqlite error: ${error instanceof Error ? error.message : String(error)}`);
1174
- }
1175
- const releaseLock = await acquireJsonlWriteLock();
1176
- try {
1177
- const names = await readdir(historyDirPath()).catch(() => []);
1178
- const removable = names.filter((name) => name === "history.jsonl" ||
1179
- name === "history.index.json" ||
1180
- name === "history-archive.jsonl" ||
1181
- name === "history-backups" ||
1182
- name.startsWith("history-cleared-") ||
1183
- (name.startsWith("history.jsonl.") && name.endsWith(".tmp")));
1184
- await Promise.all(removable.map((name) => rm(join(historyDirPath(), name), { recursive: true, force: true })));
1185
- details.push("history, index, archives, and backups deleted");
1186
- }
1187
- catch (error) {
1188
- details.push(`history file error: ${error instanceof Error ? error.message : String(error)}`);
1189
- }
1190
- finally {
1191
- await releaseLock();
1192
- }
1193
- try {
1194
- const { clearAllPlans } = await import("./plan.js");
1195
- await clearAllPlans();
1196
- details.push("plans cleared");
1197
- }
1198
- catch {
1199
- details.push("plan store unavailable");
1200
- }
1201
- invalidateSessionListCache();
1202
- return { cleared: true, detail: details.join("; ") };
1203
- }
1204
- const HISTORY_FILTER_CHUNK_BYTES = 64 * 1024;
1205
- async function* readHistoryJsonlLines(path) {
1206
- const handle = await open(path, "r");
1207
- const chunk = Buffer.allocUnsafe(HISTORY_FILTER_CHUNK_BYTES);
1208
- // Accumulate un-terminated fragments as a list of buffers rather than
1209
- // repeatedly concatenating into a growing `carry`. A single JSONL record
1210
- // (a large transcript/messages blob) can span many chunks; concatenating
1211
- // on every chunk read copied the whole accumulated line again each time,
1212
- // making the reader O(line length squared) for one oversized record. Only
1213
- // materializing the line once — when its terminating newline is finally
1214
- // seen — keeps this linear in total bytes read.
1215
- let carryChunks = [];
1216
- let carryLen = 0;
1217
- try {
1218
- while (true) {
1219
- const { bytesRead } = await handle.read(chunk, 0, chunk.length, null);
1220
- if (bytesRead === 0)
1221
- break;
1222
- let start = 0;
1223
- while (true) {
1224
- const newline = chunk.indexOf(0x0a, start);
1225
- if (newline < 0 || newline >= bytesRead)
1226
- break;
1227
- const segment = chunk.subarray(start, newline + 1);
1228
- if (carryLen > 0) {
1229
- yield Buffer.concat([...carryChunks, segment], carryLen + segment.length);
1230
- carryChunks = [];
1231
- carryLen = 0;
1232
- }
1233
- else {
1234
- yield Buffer.from(segment);
1235
- }
1236
- start = newline + 1;
1237
- }
1238
- if (start < bytesRead) {
1239
- carryChunks.push(Buffer.from(chunk.subarray(start, bytesRead)));
1240
- carryLen += bytesRead - start;
1241
- }
1242
- }
1243
- if (carryLen > 0)
1244
- yield Buffer.concat(carryChunks, carryLen);
1245
- }
1246
- finally {
1247
- await handle.close();
1248
- }
1249
- }
1250
- function parseHistoryJsonlLine(line) {
1251
- try {
1252
- const value = JSON.parse(line.toString("utf8"));
1253
- if (value === null)
1254
- return { valid: false };
1255
- return {
1256
- valid: true,
1257
- ...(value && typeof value === "object" && !Array.isArray(value)
1258
- ? {
1259
- id: typeof value.id === "string"
1260
- ? value.id
1261
- : undefined,
1262
- }
1263
- : {}),
1264
- };
1265
- }
1266
- catch {
1267
- return { valid: false };
1268
- }
1269
- }
1270
- async function historyFileContainsSession(path, sessionId) {
1271
- if (!(await safeExists(path)))
1272
- return false;
1273
- for await (const line of readHistoryJsonlLines(path)) {
1274
- if (parseHistoryJsonlLine(line).id === sessionId)
1275
- return true;
1276
- }
1277
- return false;
1278
- }
1279
- async function writeAllHistoryBytes(handle, bytes, position) {
1280
- let written = 0;
1281
- while (written < bytes.length) {
1282
- const result = await handle.write(bytes, written, bytes.length - written, position + written);
1283
- if (result.bytesWritten <= 0) {
1284
- throw new Error("failed to write history data");
1285
- }
1286
- written += result.bytesWritten;
1287
- }
1288
- return position + written;
1289
- }
1290
- async function removeSessionFromHistoryFile(path, sessionId, options = {}) {
1291
- if (!options.knownToExist &&
1292
- !(await historyFileContainsSession(path, sessionId))) {
1293
- return false;
1294
- }
1295
- const temporary = `${path}.${process.pid}.${Date.now()}.tmp`;
1296
- let output;
1297
- let committed = false;
1298
- let retained = false;
1299
- try {
1300
- output = await open(temporary, "wx", 0o600);
1301
- let outputPosition = 0;
1302
- for await (const line of readHistoryJsonlLines(path)) {
1303
- const parsed = parseHistoryJsonlLine(line);
1304
- if (!parsed.valid || parsed.id === sessionId)
1305
- continue;
1306
- outputPosition = await writeAllHistoryBytes(output, line, outputPosition);
1307
- retained = true;
1308
- }
1309
- await output.close();
1310
- output = undefined;
1311
- if (!retained) {
1312
- await rm(temporary, { force: true });
1313
- await rm(path, { force: true });
1314
- committed = true;
1315
- return true;
1316
- }
1317
- await rename(temporary, path);
1318
- committed = true;
1319
- await fixOwner(path);
1320
- return true;
1321
- }
1322
- finally {
1323
- await output?.close().catch(() => undefined);
1324
- if (!committed)
1325
- await rm(temporary, { force: true }).catch(() => undefined);
1326
- }
1327
- }
1328
- async function removeSessionFromActiveHistory(sessionId) {
1329
- const path = jsonlFilePath();
1330
- let entries = await readValidatedHistoryIndex(path, jsonlIndexFilePath());
1331
- if (!entries) {
1332
- entries = await rebuildHistoryIndex(path, jsonlIndexFilePath());
1333
- }
1334
- if (!entries.some((entry) => entry.id === sessionId))
1335
- return false;
1336
- // The index already proved the id is present, so skip the redundant
1337
- // whole-file existence pre-scan and go straight to the rewrite pass.
1338
- const removed = await removeSessionFromHistoryFile(path, sessionId, {
1339
- knownToExist: true,
1340
- });
1341
- if (!removed)
1342
- return false;
1343
- if (!(await safeExists(path))) {
1344
- await writeFile(path, "", { mode: 0o600 });
1345
- }
1346
- await rebuildHistoryIndex(path, jsonlIndexFilePath());
1347
- await Promise.all([
1348
- fixOwner(path),
1349
- fixOwner(jsonlIndexFilePath()),
1350
- ]);
1351
- return true;
1352
- }
1353
- export async function deleteSession(sessionId) {
1354
- const id = sessionId.trim();
1355
- if (!id)
1356
- return { deleted: false, detail: "missing session id" };
1357
- let deletedFromJsonl = false;
1358
- let deletedFromArchive = false;
1359
- let deletedFromBackup = false;
1360
- let deletedFromSqlite = false;
1361
- let historyWriteFailed = false;
1362
- await queueJsonlWrite(async () => {
1363
- deletedFromJsonl = await removeSessionFromActiveHistory(id);
1364
- deletedFromArchive = await removeSessionFromHistoryFile(archiveFilePath(), id);
1365
- const backupNames = (await readdir(backupDirPath()).catch(() => []))
1366
- .filter((name) => name.startsWith("history-") && name.endsWith(".jsonl"));
1367
- for (const name of backupNames) {
1368
- deletedFromBackup =
1369
- (await removeSessionFromHistoryFile(join(backupDirPath(), name), id)) ||
1370
- deletedFromBackup;
1371
- }
1372
- }, () => {
1373
- historyWriteFailed = true;
1374
- });
1375
- if (historyWriteFailed) {
1376
- return { deleted: false, detail: "could not remove the session from history files" };
1377
- }
1378
- try {
1379
- const db = await loadDatabase();
1380
- if (db) {
1381
- db.prepare("DELETE FROM tool_calls WHERE session_id = ?").run(id);
1382
- const result = db.prepare("DELETE FROM sessions WHERE id = ?").run(id);
1383
- const changes = result.changes ?? 0;
1384
- if (changes > 0)
1385
- deletedFromSqlite = true;
1386
- try {
1387
- db.exec("PRAGMA wal_checkpoint(TRUNCATE);");
1388
- }
1389
- catch { }
1390
- invalidateSessionListCache();
1391
- }
1392
- }
1393
- catch (error) {
1394
- return {
1395
- deleted: false,
1396
- detail: `could not remove the session from the history database: ${error instanceof Error ? error.message : String(error)}`,
1397
- };
1398
- }
1399
- invalidateSessionListCache();
1400
- if (!deletedFromJsonl && !deletedFromArchive && !deletedFromBackup && !deletedFromSqlite) {
1401
- const existing = await getSession(id);
1402
- if (existing)
1403
- return { deleted: false, detail: "failed to delete" };
1404
- return { deleted: false, detail: "session not found" };
1405
- }
1406
- return { deleted: true, detail: `deleted ${id}` };
1407
- }
1408
- async function releasePurgedSessionModel(sessionId) {
1409
- try {
1410
- const { releaseSessionModel } = await import("./session-model.js");
1411
- await releaseSessionModel(sessionId);
1412
- }
1413
- catch {
1414
- void 0;
1415
- }
1416
- }
1417
- export async function purgeSession(sessionId) {
1418
- const id = sessionId.trim();
1419
- if (!id) {
1420
- return {
1421
- deleted: false,
1422
- detail: "missing session id",
1423
- removedWorkspace: false,
1424
- removedPlan: false,
1425
- };
1426
- }
1427
- const record = await getSession(id);
1428
- const workspaceFolder = record?.workspaceFolder?.trim();
1429
- const result = await deleteSession(id);
1430
- if (!result.deleted) {
1431
- return { ...result, removedWorkspace: false, removedPlan: false };
1432
- }
1433
- let removedPlan = false;
1434
- try {
1435
- const { deletePlan } = await import("./plan.js");
1436
- await deletePlan(id);
1437
- removedPlan = true;
1438
- }
1439
- catch {
1440
- removedPlan = false;
1441
- }
1442
- try {
1443
- const { releaseSessionScope } = await import("./scope.js");
1444
- await releaseSessionScope(id);
1445
- }
1446
- catch {
1447
- void 0;
1448
- }
1449
- await releasePurgedSessionModel(id);
1450
- let removedWorkspace = false;
1451
- if (workspaceFolder) {
1452
- try {
1453
- const root = sessionWorkspaceRoot(workspaceFolder);
1454
- if (isUnderSessionWorkspaceParent(root)) {
1455
- await rm(root, { recursive: true, force: true });
1456
- removedWorkspace = true;
1457
- }
1458
- }
1459
- catch {
1460
- removedWorkspace = false;
1461
- }
1462
- }
1463
- const extras = [];
1464
- if (removedWorkspace)
1465
- extras.push("artifacts");
1466
- if (removedPlan)
1467
- extras.push("plan");
1468
- return {
1469
- deleted: true,
1470
- detail: extras.length > 0 ? `${result.detail} + ${extras.join(" + ")}` : result.detail,
1471
- removedWorkspace,
1472
- removedPlan,
1473
- };
1474
- }
1475
273
  export function getJsonlHistoryPath() {
1476
274
  return jsonlFilePath();
1477
275
  }