@pentoshi/clai 3.9.2 → 3.9.4

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 (407) hide show
  1. package/dist/agent/compaction-attempt.d.ts +22 -0
  2. package/dist/agent/compaction-attempt.js +69 -0
  3. package/dist/agent/compaction-attempt.js.map +1 -0
  4. package/dist/agent/compaction-summary.d.ts +27 -0
  5. package/dist/agent/compaction-summary.js +62 -0
  6. package/dist/agent/compaction-summary.js.map +1 -1
  7. package/dist/agent/context-breakdown.d.ts +2 -0
  8. package/dist/agent/context-breakdown.js +37 -0
  9. package/dist/agent/context-breakdown.js.map +1 -1
  10. package/dist/agent/context-manager.d.ts +7 -1
  11. package/dist/agent/context-manager.js +64 -15
  12. package/dist/agent/context-manager.js.map +1 -1
  13. package/dist/agent/continue-orient.d.ts +8 -0
  14. package/dist/agent/continue-orient.js +26 -3
  15. package/dist/agent/continue-orient.js.map +1 -1
  16. package/dist/agent/durable-envelope.d.ts +39 -0
  17. package/dist/agent/durable-envelope.js +195 -0
  18. package/dist/agent/durable-envelope.js.map +1 -0
  19. package/dist/agent/events.d.ts +21 -0
  20. package/dist/agent/loop-guard.d.ts +13 -5
  21. package/dist/agent/loop-guard.js +114 -1
  22. package/dist/agent/loop-guard.js.map +1 -1
  23. package/dist/agent/outcomes.d.ts +29 -0
  24. package/dist/agent/outcomes.js +118 -3
  25. package/dist/agent/outcomes.js.map +1 -1
  26. package/dist/agent/plan-decision.js +8 -3
  27. package/dist/agent/plan-decision.js.map +1 -1
  28. package/dist/agent/plan-tool.d.ts +5 -0
  29. package/dist/agent/plan-tool.js +166 -6
  30. package/dist/agent/plan-tool.js.map +1 -1
  31. package/dist/agent/reliability-policy.d.ts +11 -6
  32. package/dist/agent/reliability-policy.js +19 -13
  33. package/dist/agent/reliability-policy.js.map +1 -1
  34. package/dist/agent/request-budget.d.ts +24 -0
  35. package/dist/agent/request-budget.js +59 -0
  36. package/dist/agent/request-budget.js.map +1 -0
  37. package/dist/agent/responder-context.js +2 -2
  38. package/dist/agent/responder-context.js.map +1 -1
  39. package/dist/agent/responder-parent.d.ts +30 -0
  40. package/dist/agent/responder-parent.js +82 -0
  41. package/dist/agent/responder-parent.js.map +1 -0
  42. package/dist/agent/runner.d.ts +15 -2
  43. package/dist/agent/runner.js +766 -213
  44. package/dist/agent/runner.js.map +1 -1
  45. package/dist/agent/scope-context.d.ts +5 -0
  46. package/dist/agent/scope-context.js +7 -1
  47. package/dist/agent/scope-context.js.map +1 -1
  48. package/dist/agent/session-policy.js +1 -0
  49. package/dist/agent/session-policy.js.map +1 -1
  50. package/dist/agent/stop-summary.js +13 -7
  51. package/dist/agent/stop-summary.js.map +1 -1
  52. package/dist/agent/task-analyzer.js +7 -3
  53. package/dist/agent/task-analyzer.js.map +1 -1
  54. package/dist/agent/task-evidence.js +2 -0
  55. package/dist/agent/task-evidence.js.map +1 -1
  56. package/dist/agent/task-sync.d.ts +11 -0
  57. package/dist/agent/task-sync.js +31 -0
  58. package/dist/agent/task-sync.js.map +1 -1
  59. package/dist/agent/tool-call-parser.d.ts +6 -13
  60. package/dist/agent/tool-call-parser.js +186 -82
  61. package/dist/agent/tool-call-parser.js.map +1 -1
  62. package/dist/agent/tool-history.d.ts +8 -2
  63. package/dist/agent/tool-history.js +8 -1
  64. package/dist/agent/tool-history.js.map +1 -1
  65. package/dist/agent/turn-outcome.d.ts +4 -1
  66. package/dist/agent/turn-outcome.js +16 -2
  67. package/dist/agent/turn-outcome.js.map +1 -1
  68. package/dist/app/adapters/agent-event-adapter.js +27 -0
  69. package/dist/app/adapters/agent-event-adapter.js.map +1 -1
  70. package/dist/app/adapters/current-agent-adapter.js +1 -0
  71. package/dist/app/adapters/current-agent-adapter.js.map +1 -1
  72. package/dist/app/adapters/current-interactive-sessions-adapter.d.ts +4 -0
  73. package/dist/app/adapters/current-interactive-sessions-adapter.js +11 -0
  74. package/dist/app/adapters/current-interactive-sessions-adapter.js.map +1 -0
  75. package/dist/app/adapters/current-jobs-adapter.js +4 -3
  76. package/dist/app/adapters/current-jobs-adapter.js.map +1 -1
  77. package/dist/app/adapters/current-store-adapter.js +4 -3
  78. package/dist/app/adapters/current-store-adapter.js.map +1 -1
  79. package/dist/app/adapters/current-updates-adapter.d.ts +1 -1
  80. package/dist/app/adapters/current-updates-adapter.js +34 -5
  81. package/dist/app/adapters/current-updates-adapter.js.map +1 -1
  82. package/dist/app/adapters/quiet-meta-tools.js +2 -1
  83. package/dist/app/adapters/quiet-meta-tools.js.map +1 -1
  84. package/dist/app/controllers/cancel-all-result.d.ts +8 -0
  85. package/dist/app/controllers/cancel-all-result.js +32 -0
  86. package/dist/app/controllers/cancel-all-result.js.map +1 -0
  87. package/dist/app/controllers/job-controller.d.ts +4 -3
  88. package/dist/app/controllers/job-controller.js +9 -6
  89. package/dist/app/controllers/job-controller.js.map +1 -1
  90. package/dist/app/controllers/plan-controller.js +14 -0
  91. package/dist/app/controllers/plan-controller.js.map +1 -1
  92. package/dist/app/controllers/responder-settlement.js +2 -2
  93. package/dist/app/controllers/responder-settlement.js.map +1 -1
  94. package/dist/app/controllers/session-compact-helper.d.ts +23 -1
  95. package/dist/app/controllers/session-compact-helper.js +117 -7
  96. package/dist/app/controllers/session-compact-helper.js.map +1 -1
  97. package/dist/app/controllers/session-context-usage.d.ts +24 -0
  98. package/dist/app/controllers/session-context-usage.js +89 -0
  99. package/dist/app/controllers/session-context-usage.js.map +1 -0
  100. package/dist/app/controllers/session-controller.d.ts +25 -17
  101. package/dist/app/controllers/session-controller.js +142 -128
  102. package/dist/app/controllers/session-controller.js.map +1 -1
  103. package/dist/app/controllers/session-prompt-queue.d.ts +3 -0
  104. package/dist/app/controllers/session-prompt-queue.js +20 -1
  105. package/dist/app/controllers/session-prompt-queue.js.map +1 -1
  106. package/dist/app/controllers/session-responder.js +16 -6
  107. package/dist/app/controllers/session-responder.js.map +1 -1
  108. package/dist/app/controllers/session-turn-request.d.ts +18 -0
  109. package/dist/app/controllers/session-turn-request.js +31 -0
  110. package/dist/app/controllers/session-turn-request.js.map +1 -0
  111. package/dist/app/controllers/turn-continuation.d.ts +14 -0
  112. package/dist/app/controllers/turn-continuation.js +46 -0
  113. package/dist/app/controllers/turn-continuation.js.map +1 -0
  114. package/dist/app/events/app-event.d.ts +21 -0
  115. package/dist/app/events/app-event.js +1 -0
  116. package/dist/app/events/app-event.js.map +1 -1
  117. package/dist/app/ports/agent-port.d.ts +7 -0
  118. package/dist/app/ports/interactive-sessions-port.d.ts +21 -0
  119. package/dist/app/ports/interactive-sessions-port.js +9 -0
  120. package/dist/app/ports/interactive-sessions-port.js.map +1 -0
  121. package/dist/app/ports/jobs-port.d.ts +4 -3
  122. package/dist/app/ports/persistence-port.d.ts +11 -0
  123. package/dist/app/ports/updates-port.d.ts +8 -0
  124. package/dist/attachments/service.js +13 -2
  125. package/dist/attachments/service.js.map +1 -1
  126. package/dist/commands/providers.js +13 -10
  127. package/dist/commands/providers.js.map +1 -1
  128. package/dist/commands/update.d.ts +4 -0
  129. package/dist/commands/update.js +14 -0
  130. package/dist/commands/update.js.map +1 -1
  131. package/dist/index.js +21 -8
  132. package/dist/index.js.map +1 -1
  133. package/dist/interactive-session/artifact-writer.d.ts +54 -0
  134. package/dist/interactive-session/artifact-writer.js +161 -0
  135. package/dist/interactive-session/artifact-writer.js.map +1 -0
  136. package/dist/interactive-session/cleanup.d.ts +36 -0
  137. package/dist/interactive-session/cleanup.js +157 -0
  138. package/dist/interactive-session/cleanup.js.map +1 -0
  139. package/dist/interactive-session/config.d.ts +118 -0
  140. package/dist/interactive-session/config.js +141 -0
  141. package/dist/interactive-session/config.js.map +1 -0
  142. package/dist/interactive-session/input-policy.d.ts +41 -0
  143. package/dist/interactive-session/input-policy.js +163 -0
  144. package/dist/interactive-session/input-policy.js.map +1 -0
  145. package/dist/interactive-session/manager.d.ts +107 -0
  146. package/dist/interactive-session/manager.js +927 -0
  147. package/dist/interactive-session/manager.js.map +1 -0
  148. package/dist/interactive-session/output-store.d.ts +81 -0
  149. package/dist/interactive-session/output-store.js +239 -0
  150. package/dist/interactive-session/output-store.js.map +1 -0
  151. package/dist/interactive-session/output-view.d.ts +20 -0
  152. package/dist/interactive-session/output-view.js +142 -0
  153. package/dist/interactive-session/output-view.js.map +1 -0
  154. package/dist/interactive-session/recovery-journal.d.ts +55 -0
  155. package/dist/interactive-session/recovery-journal.js +115 -0
  156. package/dist/interactive-session/recovery-journal.js.map +1 -0
  157. package/dist/interactive-session/registry.d.ts +59 -0
  158. package/dist/interactive-session/registry.js +170 -0
  159. package/dist/interactive-session/registry.js.map +1 -0
  160. package/dist/interactive-session/runtime.d.ts +107 -0
  161. package/dist/interactive-session/runtime.js +191 -0
  162. package/dist/interactive-session/runtime.js.map +1 -0
  163. package/dist/interactive-session/session-runtime.d.ts +50 -0
  164. package/dist/interactive-session/session-runtime.js +63 -0
  165. package/dist/interactive-session/session-runtime.js.map +1 -0
  166. package/dist/interactive-session/streaming-redactor.d.ts +53 -0
  167. package/dist/interactive-session/streaming-redactor.js +263 -0
  168. package/dist/interactive-session/streaming-redactor.js.map +1 -0
  169. package/dist/interactive-session/telemetry.d.ts +30 -0
  170. package/dist/interactive-session/telemetry.js +47 -0
  171. package/dist/interactive-session/telemetry.js.map +1 -0
  172. package/dist/interactive-session/transport-factory.d.ts +8 -0
  173. package/dist/interactive-session/transport-factory.js +16 -0
  174. package/dist/interactive-session/transport-factory.js.map +1 -0
  175. package/dist/interactive-session/transport-node-pty.d.ts +49 -0
  176. package/dist/interactive-session/transport-node-pty.js +219 -0
  177. package/dist/interactive-session/transport-node-pty.js.map +1 -0
  178. package/dist/interactive-session/transport-pipe.d.ts +9 -0
  179. package/dist/interactive-session/transport-pipe.js +215 -0
  180. package/dist/interactive-session/transport-pipe.js.map +1 -0
  181. package/dist/interactive-session/transport.d.ts +104 -0
  182. package/dist/interactive-session/transport.js +89 -0
  183. package/dist/interactive-session/transport.js.map +1 -0
  184. package/dist/interactive-session/types.d.ts +254 -0
  185. package/dist/interactive-session/types.js +191 -0
  186. package/dist/interactive-session/types.js.map +1 -0
  187. package/dist/llm/adapters/anthropic-tools.d.ts +14 -1
  188. package/dist/llm/adapters/anthropic-tools.js +36 -5
  189. package/dist/llm/adapters/anthropic-tools.js.map +1 -1
  190. package/dist/llm/adapters/gemini-tools.d.ts +3 -1
  191. package/dist/llm/adapters/gemini-tools.js +5 -2
  192. package/dist/llm/adapters/gemini-tools.js.map +1 -1
  193. package/dist/llm/adapters/ollama-tools.js +8 -3
  194. package/dist/llm/adapters/ollama-tools.js.map +1 -1
  195. package/dist/llm/adapters/openai-tools.js +8 -1
  196. package/dist/llm/adapters/openai-tools.js.map +1 -1
  197. package/dist/llm/agentrouter.js +2 -0
  198. package/dist/llm/agentrouter.js.map +1 -1
  199. package/dist/llm/anthropic.d.ts +8 -0
  200. package/dist/llm/anthropic.js +68 -9
  201. package/dist/llm/anthropic.js.map +1 -1
  202. package/dist/llm/aws-mantle.js +60 -12
  203. package/dist/llm/aws-mantle.js.map +1 -1
  204. package/dist/llm/bynara.js +2 -0
  205. package/dist/llm/bynara.js.map +1 -1
  206. package/dist/llm/capabilities.d.ts +7 -0
  207. package/dist/llm/capabilities.js +22 -0
  208. package/dist/llm/capabilities.js.map +1 -1
  209. package/dist/llm/gemini.d.ts +3 -0
  210. package/dist/llm/gemini.js +71 -11
  211. package/dist/llm/gemini.js.map +1 -1
  212. package/dist/llm/groq.d.ts +20 -1
  213. package/dist/llm/groq.js +32 -4
  214. package/dist/llm/groq.js.map +1 -1
  215. package/dist/llm/http.d.ts +29 -0
  216. package/dist/llm/http.js +122 -29
  217. package/dist/llm/http.js.map +1 -1
  218. package/dist/llm/kimchi.js +2 -0
  219. package/dist/llm/kimchi.js.map +1 -1
  220. package/dist/llm/nvidia.js +2 -0
  221. package/dist/llm/nvidia.js.map +1 -1
  222. package/dist/llm/ollama.d.ts +5 -0
  223. package/dist/llm/ollama.js +53 -6
  224. package/dist/llm/ollama.js.map +1 -1
  225. package/dist/llm/openai.js +2 -0
  226. package/dist/llm/openai.js.map +1 -1
  227. package/dist/llm/openrouter.js +2 -0
  228. package/dist/llm/openrouter.js.map +1 -1
  229. package/dist/llm/qwen-cloud.js +2 -0
  230. package/dist/llm/qwen-cloud.js.map +1 -1
  231. package/dist/llm/router.d.ts +16 -0
  232. package/dist/llm/router.js +79 -23
  233. package/dist/llm/router.js.map +1 -1
  234. package/dist/llm/sampling.d.ts +32 -0
  235. package/dist/llm/sampling.js +48 -0
  236. package/dist/llm/sampling.js.map +1 -0
  237. package/dist/llm/stream-progress.d.ts +4 -0
  238. package/dist/llm/stream-progress.js +43 -0
  239. package/dist/llm/stream-progress.js.map +1 -0
  240. package/dist/llm/system-messages.d.ts +29 -0
  241. package/dist/llm/system-messages.js +51 -0
  242. package/dist/llm/system-messages.js.map +1 -0
  243. package/dist/llm/token-usage.d.ts +4 -1
  244. package/dist/llm/token-usage.js +56 -4
  245. package/dist/llm/token-usage.js.map +1 -1
  246. package/dist/llm/tool-protocol.js +30 -0
  247. package/dist/llm/tool-protocol.js.map +1 -1
  248. package/dist/os/process-identity.d.ts +46 -0
  249. package/dist/os/process-identity.js +147 -0
  250. package/dist/os/process-identity.js.map +1 -0
  251. package/dist/os/process-tree.d.ts +15 -0
  252. package/dist/os/process-tree.js +77 -0
  253. package/dist/os/process-tree.js.map +1 -0
  254. package/dist/prompts/embedded.js +1 -1
  255. package/dist/prompts/embedded.js.map +1 -1
  256. package/dist/prompts/system.agent.md +13 -12
  257. package/dist/repl/prompt-line.d.ts +5 -0
  258. package/dist/repl/prompt-line.js +7 -1
  259. package/dist/repl/prompt-line.js.map +1 -1
  260. package/dist/repl.js +71 -41
  261. package/dist/repl.js.map +1 -1
  262. package/dist/safety/classifier.js +98 -44
  263. package/dist/safety/classifier.js.map +1 -1
  264. package/dist/safety/engagement-policy.d.ts +8 -0
  265. package/dist/safety/engagement-policy.js +52 -7
  266. package/dist/safety/engagement-policy.js.map +1 -1
  267. package/dist/safety/patterns.d.ts +44 -0
  268. package/dist/safety/patterns.js +168 -37
  269. package/dist/safety/patterns.js.map +1 -1
  270. package/dist/store/config.d.ts +9 -1
  271. package/dist/store/config.js +51 -1
  272. package/dist/store/config.js.map +1 -1
  273. package/dist/store/history-index.d.ts +12 -0
  274. package/dist/store/history-index.js +47 -18
  275. package/dist/store/history-index.js.map +1 -1
  276. package/dist/store/history.d.ts +5 -2
  277. package/dist/store/history.js +153 -62
  278. package/dist/store/history.js.map +1 -1
  279. package/dist/store/plan.d.ts +81 -5
  280. package/dist/store/plan.js +406 -46
  281. package/dist/store/plan.js.map +1 -1
  282. package/dist/store/redaction-cache.d.ts +12 -0
  283. package/dist/store/redaction-cache.js +51 -0
  284. package/dist/store/redaction-cache.js.map +1 -0
  285. package/dist/store/responder-settlement.d.ts +5 -1
  286. package/dist/store/responder-settlement.js +42 -30
  287. package/dist/store/responder-settlement.js.map +1 -1
  288. package/dist/store/scope.js +36 -27
  289. package/dist/store/scope.js.map +1 -1
  290. package/dist/store/task-transitions.d.ts +19 -0
  291. package/dist/store/task-transitions.js +46 -0
  292. package/dist/store/task-transitions.js.map +1 -0
  293. package/dist/tools/capabilities.js +33 -18
  294. package/dist/tools/capabilities.js.map +1 -1
  295. package/dist/tools/command-intent.d.ts +24 -0
  296. package/dist/tools/command-intent.js +158 -4
  297. package/dist/tools/command-intent.js.map +1 -1
  298. package/dist/tools/definitions.d.ts +5 -1
  299. package/dist/tools/definitions.js +257 -21
  300. package/dist/tools/definitions.js.map +1 -1
  301. package/dist/tools/fs.d.ts +16 -0
  302. package/dist/tools/fs.js +122 -46
  303. package/dist/tools/fs.js.map +1 -1
  304. package/dist/tools/image.js +1 -1
  305. package/dist/tools/image.js.map +1 -1
  306. package/dist/tools/interactive-session-tools.d.ts +11 -0
  307. package/dist/tools/interactive-session-tools.js +261 -0
  308. package/dist/tools/interactive-session-tools.js.map +1 -0
  309. package/dist/tools/jobs.d.ts +78 -4
  310. package/dist/tools/jobs.js +486 -127
  311. package/dist/tools/jobs.js.map +1 -1
  312. package/dist/tools/net-ping-sweep.d.ts +3 -1
  313. package/dist/tools/net-ping-sweep.js +64 -26
  314. package/dist/tools/net-ping-sweep.js.map +1 -1
  315. package/dist/tools/nmap-runner.js +5 -2
  316. package/dist/tools/nmap-runner.js.map +1 -1
  317. package/dist/tools/pdf.js +50 -7
  318. package/dist/tools/pdf.js.map +1 -1
  319. package/dist/tools/registry.js +158 -96
  320. package/dist/tools/registry.js.map +1 -1
  321. package/dist/tools/shell.d.ts +24 -2
  322. package/dist/tools/shell.js +113 -28
  323. package/dist/tools/shell.js.map +1 -1
  324. package/dist/tools/tool-types.d.ts +2 -0
  325. package/dist/tools/validate.d.ts +8 -5
  326. package/dist/tools/validate.js +177 -7
  327. package/dist/tools/validate.js.map +1 -1
  328. package/dist/tools/wordlists.js +69 -17
  329. package/dist/tools/wordlists.js.map +1 -1
  330. package/dist/tui/state.d.ts +4 -0
  331. package/dist/tui/state.js +88 -2
  332. package/dist/tui/state.js.map +1 -1
  333. package/dist/tui-v2/actions/keymap.js +3 -8
  334. package/dist/tui-v2/actions/keymap.js.map +1 -1
  335. package/dist/tui-v2/app/App.js +52 -4
  336. package/dist/tui-v2/app/App.js.map +1 -1
  337. package/dist/tui-v2/app/commands/config-commands.js +5 -2
  338. package/dist/tui-v2/app/commands/config-commands.js.map +1 -1
  339. package/dist/tui-v2/app/commands/picker-commands.js +3 -0
  340. package/dist/tui-v2/app/commands/picker-commands.js.map +1 -1
  341. package/dist/tui-v2/app/plan-lifecycle.d.ts +1 -1
  342. package/dist/tui-v2/app/plan-lifecycle.js +2 -1
  343. package/dist/tui-v2/app/plan-lifecycle.js.map +1 -1
  344. package/dist/tui-v2/bootstrap/composition-root.d.ts +3 -0
  345. package/dist/tui-v2/bootstrap/composition-root.js +3 -0
  346. package/dist/tui-v2/bootstrap/composition-root.js.map +1 -1
  347. package/dist/tui-v2/bootstrap/start-tui-v2.js +10 -0
  348. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  349. package/dist/tui-v2/components/composer/composer-input-box.d.ts +1 -1
  350. package/dist/tui-v2/components/composer/composer-input-box.js +12 -3
  351. package/dist/tui-v2/components/composer/composer-input-box.js.map +1 -1
  352. package/dist/tui-v2/components/jobs/jobs-panel.js +19 -6
  353. package/dist/tui-v2/components/jobs/jobs-panel.js.map +1 -1
  354. package/dist/tui-v2/components/plan/plan-view.js +9 -6
  355. package/dist/tui-v2/components/plan/plan-view.js.map +1 -1
  356. package/dist/tui-v2/components/status/status-line.d.ts +15 -0
  357. package/dist/tui-v2/components/status/status-line.js +33 -25
  358. package/dist/tui-v2/components/status/status-line.js.map +1 -1
  359. package/dist/tui-v2/components/transcript/assistant-message.js +17 -9
  360. package/dist/tui-v2/components/transcript/assistant-message.js.map +1 -1
  361. package/dist/tui-v2/components/transcript/compacted-row.js +49 -22
  362. package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
  363. package/dist/tui-v2/components/transcript/intro-card.js +3 -0
  364. package/dist/tui-v2/components/transcript/intro-card.js.map +1 -1
  365. package/dist/tui-v2/components/transcript/thinking-block.js +2 -1
  366. package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
  367. package/dist/tui-v2/components/transcript/transcript-view.js +27 -2
  368. package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
  369. package/dist/tui-v2/components/transcript/use-transcript-selection.js +57 -6
  370. package/dist/tui-v2/components/transcript/use-transcript-selection.js.map +1 -1
  371. package/dist/tui-v2/composer/composer-editor.js +12 -6
  372. package/dist/tui-v2/composer/composer-editor.js.map +1 -1
  373. package/dist/tui-v2/rendering/incremental-strip.d.ts +11 -0
  374. package/dist/tui-v2/rendering/incremental-strip.js +89 -0
  375. package/dist/tui-v2/rendering/incremental-strip.js.map +1 -0
  376. package/dist/tui-v2/rendering/plan-view.d.ts +12 -0
  377. package/dist/tui-v2/rendering/plan-view.js +71 -2
  378. package/dist/tui-v2/rendering/plan-view.js.map +1 -1
  379. package/dist/tui-v2/rendering/streaming-markdown.d.ts +25 -0
  380. package/dist/tui-v2/rendering/streaming-markdown.js +108 -0
  381. package/dist/tui-v2/rendering/streaming-markdown.js.map +1 -0
  382. package/dist/tui-v2/rendering/thinking-tail.d.ts +5 -0
  383. package/dist/tui-v2/rendering/thinking-tail.js +26 -0
  384. package/dist/tui-v2/rendering/thinking-tail.js.map +1 -0
  385. package/dist/tui-v2/state/transcript-hydrate.js +6 -2
  386. package/dist/tui-v2/state/transcript-hydrate.js.map +1 -1
  387. package/dist/tui-v2/state/transcript-reducer.js +146 -25
  388. package/dist/tui-v2/state/transcript-reducer.js.map +1 -1
  389. package/dist/tui-v2/state/transcript-types.d.ts +6 -0
  390. package/dist/tui-v2/state/transcript-types.js +17 -0
  391. package/dist/tui-v2/state/transcript-types.js.map +1 -1
  392. package/dist/types.d.ts +34 -0
  393. package/dist/types.js.map +1 -1
  394. package/dist/ui/intro-header.d.ts +1 -0
  395. package/dist/ui/intro-header.js +10 -13
  396. package/dist/ui/intro-header.js.map +1 -1
  397. package/dist/ui/markdown.js +9 -2
  398. package/dist/ui/markdown.js.map +1 -1
  399. package/dist/ui/mentions.d.ts +5 -0
  400. package/dist/ui/mentions.js +66 -7
  401. package/dist/ui/mentions.js.map +1 -1
  402. package/dist/ui/thinking.d.ts +5 -1
  403. package/dist/ui/thinking.js +3 -2
  404. package/dist/ui/thinking.js.map +1 -1
  405. package/dist/version.generated.d.ts +2 -2
  406. package/dist/version.generated.js +2 -2
  407. package/package.json +2 -1
@@ -0,0 +1,254 @@
1
+ /**
2
+ * Public domain contracts for agent-controlled interactive terminal sessions.
3
+ *
4
+ * Deliberate non-goals encoded here: no user keyboard passthrough, no transfer
5
+ * of the host controlling terminal, no reattachment after restart, no screen
6
+ * emulation, and no command rewriting. Nothing in this module carries raw
7
+ * commands, input bytes, environment values, or unredacted output.
8
+ */
9
+ export type SessionOperation = "start" | "send" | "read" | "status" | "list" | "resize" | "close";
10
+ export type SessionState = "starting" | "running" | "closing" | "exited" | "failed" | "closed";
11
+ export declare const TERMINAL_SESSION_STATES: readonly SessionState[];
12
+ export declare function isTerminalState(state: SessionState): boolean;
13
+ export type TerminationReason = "process-exit" | "explicit-close" | "cancelled" | "idle-timeout" | "lifetime-timeout" | "conversation-teardown" | "app-shutdown" | "output-limit" | "launch-failure";
14
+ export type SessionTransportKind = "pty" | "pipe";
15
+ export type TerminalMode = "required" | "preferred" | "pipe";
16
+ export type OutputStream = "terminal" | "stdout" | "stderr";
17
+ export type OutputView = "plain" | "encoded";
18
+ export interface TerminalDimensions {
19
+ readonly columns: number;
20
+ readonly rows: number;
21
+ }
22
+ export type ControlInput = "interrupt" | "eof" | "suspend" | "escape" | "tab" | "backspace" | "up" | "down" | "left" | "right";
23
+ export declare const CONTROL_INPUTS: readonly ControlInput[];
24
+ export type SubmitBehavior = "enter" | "none";
25
+ export type SessionInput = {
26
+ readonly kind: "text";
27
+ readonly text: string;
28
+ readonly submit: SubmitBehavior;
29
+ } | {
30
+ readonly kind: "control";
31
+ readonly control: ControlInput;
32
+ } | {
33
+ readonly kind: "eof";
34
+ };
35
+ export type SessionInputKind = SessionInput["kind"];
36
+ export interface ProcessOutcome {
37
+ readonly exitCode?: number | undefined;
38
+ readonly signal?: string | undefined;
39
+ readonly endedAt: number;
40
+ }
41
+ export type ProcessIdentityComparison = "match" | "mismatch" | "gone" | "unknown";
42
+ export interface OutputEvent {
43
+ /** Inclusive canonical safe-byte offset. */
44
+ readonly startCursor: number;
45
+ /** Exclusive canonical safe-byte offset. */
46
+ readonly endCursor: number;
47
+ readonly stream: OutputStream;
48
+ readonly observedAt: number;
49
+ readonly bytes: Uint8Array;
50
+ }
51
+ export interface PresentedOutputEvent {
52
+ readonly startCursor: number;
53
+ readonly endCursor: number;
54
+ readonly stream: OutputStream;
55
+ readonly observedAt: number;
56
+ /** Inert text for `plain`, base64 for `encoded`. */
57
+ readonly content: string;
58
+ readonly decodingLoss?: boolean | undefined;
59
+ }
60
+ export interface ArtifactReference {
61
+ readonly path: string;
62
+ readonly bytes: number;
63
+ readonly droppedBytes: number;
64
+ readonly redacted: boolean;
65
+ }
66
+ export interface ArtifactReceipt extends ArtifactReference {
67
+ readonly chunks: readonly string[];
68
+ readonly sha256: string;
69
+ }
70
+ export interface OutputPage {
71
+ readonly events: readonly PresentedOutputEvent[];
72
+ readonly requestedCursor: number;
73
+ readonly nextCursor: number;
74
+ readonly hasMore: boolean;
75
+ readonly earliestAvailableCursor: number;
76
+ readonly latestCursor: number;
77
+ readonly view: OutputView;
78
+ readonly decodingLoss: boolean;
79
+ readonly omittedBytes?: number | undefined;
80
+ readonly artifact: ArtifactReference;
81
+ }
82
+ export interface InteractiveSessionRecord {
83
+ readonly id: string;
84
+ readonly ownerId: string;
85
+ state: SessionState;
86
+ readonly transport: SessionTransportKind;
87
+ readonly startedAt: number;
88
+ lastActivityAt: number;
89
+ endedAt?: number | undefined;
90
+ dimensions?: TerminalDimensions | undefined;
91
+ degradedReason?: "PTY_UNAVAILABLE" | undefined;
92
+ processOutcome?: ProcessOutcome | undefined;
93
+ terminationReason?: TerminationReason | undefined;
94
+ artifact: ArtifactReceipt;
95
+ earliestCursor: number;
96
+ latestCursor: number;
97
+ inputClosed: boolean;
98
+ cleanupVerified?: boolean | undefined;
99
+ }
100
+ /** Immutable, non-disclosing projection handed to callers. */
101
+ export interface SessionSummary {
102
+ readonly id: string;
103
+ readonly state: SessionState;
104
+ readonly transport: SessionTransportKind;
105
+ readonly startedAt: number;
106
+ readonly lastActivityAt: number;
107
+ readonly endedAt?: number | undefined;
108
+ readonly dimensions?: TerminalDimensions | undefined;
109
+ readonly degradedReason?: "PTY_UNAVAILABLE" | undefined;
110
+ readonly processOutcome?: ProcessOutcome | undefined;
111
+ readonly terminationReason?: TerminationReason | undefined;
112
+ readonly earliestCursor: number;
113
+ readonly latestCursor: number;
114
+ readonly inputClosed: boolean;
115
+ readonly artifact: ArtifactReference;
116
+ readonly cleanupVerified?: boolean | undefined;
117
+ }
118
+ export interface OwnerScoped {
119
+ readonly ownerId: string;
120
+ }
121
+ export interface StartRequest extends OwnerScoped {
122
+ readonly command: string;
123
+ readonly cwd?: string | undefined;
124
+ readonly terminalMode?: TerminalMode | undefined;
125
+ readonly columns?: number | undefined;
126
+ readonly rows?: number | undefined;
127
+ readonly idleTimeoutMs?: number | undefined;
128
+ readonly lifetimeTimeoutMs?: number | undefined;
129
+ readonly deadlineMs?: number | undefined;
130
+ readonly signal?: AbortSignal | undefined;
131
+ }
132
+ export interface SendRequest extends OwnerScoped {
133
+ readonly id: string;
134
+ readonly input: SessionInput;
135
+ readonly cursor?: number | undefined;
136
+ readonly quietMs?: number | undefined;
137
+ readonly deadlineMs?: number | undefined;
138
+ readonly view?: OutputView | undefined;
139
+ readonly signal?: AbortSignal | undefined;
140
+ }
141
+ export interface ReadRequest extends OwnerScoped {
142
+ readonly id: string;
143
+ readonly cursor: number;
144
+ readonly waitMs?: number | undefined;
145
+ readonly view?: OutputView | undefined;
146
+ readonly signal?: AbortSignal | undefined;
147
+ }
148
+ export interface ResizeRequest extends OwnerScoped, TerminalDimensions {
149
+ readonly id: string;
150
+ }
151
+ export interface CloseRequest extends OwnerScoped {
152
+ readonly id: string;
153
+ readonly deadlineMs?: number | undefined;
154
+ }
155
+ export interface StartResult {
156
+ readonly operation: "start";
157
+ readonly sessionId: string;
158
+ readonly state: SessionState;
159
+ readonly transport: SessionTransportKind;
160
+ readonly dimensions?: TerminalDimensions | undefined;
161
+ readonly degradedReason?: "PTY_UNAVAILABLE" | undefined;
162
+ readonly cursor: number;
163
+ readonly artifact: ArtifactReference;
164
+ readonly retriedLaunch?: boolean | undefined;
165
+ }
166
+ export type DeliveryStatus = "delivered" | "not-delivered" | "unknown";
167
+ export interface SendResult {
168
+ readonly operation: "send";
169
+ readonly sessionId: string;
170
+ readonly inputSequence: number;
171
+ readonly delivery: DeliveryStatus;
172
+ readonly deliveredBytes: number;
173
+ readonly state: SessionState;
174
+ readonly page?: OutputPage | undefined;
175
+ readonly error?: StableError | undefined;
176
+ }
177
+ export interface ReadResult {
178
+ readonly operation: "read";
179
+ readonly sessionId: string;
180
+ readonly state: SessionState;
181
+ readonly page?: OutputPage | undefined;
182
+ readonly error?: StableError | undefined;
183
+ }
184
+ export interface StatusResult {
185
+ readonly operation: "status";
186
+ readonly session: SessionSummary;
187
+ }
188
+ export interface ListResult {
189
+ readonly operation: "list";
190
+ readonly sessions: readonly SessionSummary[];
191
+ }
192
+ export interface ResizeResult {
193
+ readonly operation: "resize";
194
+ readonly sessionId: string;
195
+ readonly state: SessionState;
196
+ readonly dimensions: TerminalDimensions;
197
+ }
198
+ export interface CloseResult {
199
+ readonly operation: "close";
200
+ readonly sessionId: string;
201
+ readonly state: SessionState;
202
+ readonly terminationReason?: TerminationReason | undefined;
203
+ readonly processOutcome?: ProcessOutcome | undefined;
204
+ readonly cleanupVerified: boolean;
205
+ readonly artifact: ArtifactReference;
206
+ readonly error?: StableError | undefined;
207
+ }
208
+ export interface CloseOwnerResult {
209
+ readonly closed: number;
210
+ readonly failures: readonly StableError[];
211
+ }
212
+ export interface CloseAllResult extends CloseOwnerResult {
213
+ readonly owners: number;
214
+ }
215
+ export type InteractiveSessionToolResult = StartResult | SendResult | ReadResult | StatusResult | ListResult | ResizeResult | CloseResult;
216
+ export declare const STABLE_ERROR_CODES: readonly ["INVALID_REQUEST", "INVALID_CONFIGURATION", "SESSION_NOT_FOUND", "LIMIT_REACHED", "PTY_UNAVAILABLE", "SESSION_NOT_RUNNING", "SESSION_CLOSING", "INPUT_CLOSED", "INPUT_REJECTED", "INPUT_DELIVERY_UNKNOWN", "UNSUPPORTED_CONTROL", "UNSUPPORTED_OPERATION", "BACKPRESSURE", "DEADLINE_EXCEEDED", "CANCELLED", "OUTPUT_GAP", "LAUNCH_FAILED", "PERSIST_FAILED", "CLEANUP_FAILED"];
217
+ export type StableErrorCode = (typeof STABLE_ERROR_CODES)[number];
218
+ export type StableErrorDetailValue = string | number | boolean;
219
+ /**
220
+ * Detail keys are allowlisted so a native error, command line, or output byte
221
+ * can never reach a model, transcript, or log through an error payload.
222
+ */
223
+ export declare const STABLE_ERROR_DETAIL_KEYS: readonly ["earliestAvailableCursor", "latestCursor", "requestedCursor", "omittedBytes", "deliveredBytes", "queuedBytes", "limitBytes", "liveSessions", "limit", "inputSequence", "control", "transport", "terminalMode", "field", "columns", "rows", "elapsedMs", "deadlineMs", "survivingDescendants", "cleanupVerified", "terminationReason", "reason", "artifactPath"];
224
+ export type StableErrorDetailKey = (typeof STABLE_ERROR_DETAIL_KEYS)[number];
225
+ export interface StableError {
226
+ readonly code: StableErrorCode;
227
+ readonly message: string;
228
+ readonly retryable: boolean;
229
+ readonly operation: SessionOperation;
230
+ readonly sessionId?: string | undefined;
231
+ readonly state?: SessionState | undefined;
232
+ readonly details?: Readonly<Partial<Record<StableErrorDetailKey, StableErrorDetailValue>>> | undefined;
233
+ }
234
+ export interface SessionErrorInit {
235
+ readonly code: StableErrorCode;
236
+ readonly operation: SessionOperation;
237
+ readonly message: string;
238
+ readonly sessionId?: string | undefined;
239
+ readonly state?: SessionState | undefined;
240
+ readonly details?: Readonly<Partial<Record<StableErrorDetailKey, StableErrorDetailValue>>> | undefined;
241
+ /** Only `LAUNCH_FAILED` and `PERSIST_FAILED` may set this explicitly. */
242
+ readonly retryable?: boolean | undefined;
243
+ }
244
+ /** Single construction point for every interactive-session failure. */
245
+ export declare function sessionError(init: SessionErrorInit): StableError;
246
+ /** Carrier so internal layers can reject with a StableError and be unwrapped. */
247
+ export declare class SessionErrorException extends Error {
248
+ readonly stable: StableError;
249
+ constructor(stable: StableError);
250
+ }
251
+ export declare function throwSessionError(init: SessionErrorInit): never;
252
+ export declare function asStableError(value: unknown, fallback: SessionErrorInit): StableError;
253
+ export declare function toSummary(record: InteractiveSessionRecord): SessionSummary;
254
+ export declare function artifactReference(receipt: ArtifactReceipt): ArtifactReference;
@@ -0,0 +1,191 @@
1
+ /**
2
+ * Public domain contracts for agent-controlled interactive terminal sessions.
3
+ *
4
+ * Deliberate non-goals encoded here: no user keyboard passthrough, no transfer
5
+ * of the host controlling terminal, no reattachment after restart, no screen
6
+ * emulation, and no command rewriting. Nothing in this module carries raw
7
+ * commands, input bytes, environment values, or unredacted output.
8
+ */
9
+ export const TERMINAL_SESSION_STATES = [
10
+ "exited",
11
+ "failed",
12
+ "closed",
13
+ ];
14
+ export function isTerminalState(state) {
15
+ return TERMINAL_SESSION_STATES.includes(state);
16
+ }
17
+ export const CONTROL_INPUTS = [
18
+ "interrupt",
19
+ "eof",
20
+ "suspend",
21
+ "escape",
22
+ "tab",
23
+ "backspace",
24
+ "up",
25
+ "down",
26
+ "left",
27
+ "right",
28
+ ];
29
+ // --- Stable errors -----------------------------------------------------
30
+ export const STABLE_ERROR_CODES = [
31
+ "INVALID_REQUEST",
32
+ "INVALID_CONFIGURATION",
33
+ "SESSION_NOT_FOUND",
34
+ "LIMIT_REACHED",
35
+ "PTY_UNAVAILABLE",
36
+ "SESSION_NOT_RUNNING",
37
+ "SESSION_CLOSING",
38
+ "INPUT_CLOSED",
39
+ "INPUT_REJECTED",
40
+ "INPUT_DELIVERY_UNKNOWN",
41
+ "UNSUPPORTED_CONTROL",
42
+ "UNSUPPORTED_OPERATION",
43
+ "BACKPRESSURE",
44
+ "DEADLINE_EXCEEDED",
45
+ "CANCELLED",
46
+ "OUTPUT_GAP",
47
+ "LAUNCH_FAILED",
48
+ "PERSIST_FAILED",
49
+ "CLEANUP_FAILED",
50
+ ];
51
+ /**
52
+ * Detail keys are allowlisted so a native error, command line, or output byte
53
+ * can never reach a model, transcript, or log through an error payload.
54
+ */
55
+ export const STABLE_ERROR_DETAIL_KEYS = [
56
+ "earliestAvailableCursor",
57
+ "latestCursor",
58
+ "requestedCursor",
59
+ "omittedBytes",
60
+ "deliveredBytes",
61
+ "queuedBytes",
62
+ "limitBytes",
63
+ "liveSessions",
64
+ "limit",
65
+ "inputSequence",
66
+ "control",
67
+ "transport",
68
+ "terminalMode",
69
+ "field",
70
+ "columns",
71
+ "rows",
72
+ "elapsedMs",
73
+ "deadlineMs",
74
+ "survivingDescendants",
75
+ "cleanupVerified",
76
+ "terminationReason",
77
+ "reason",
78
+ "artifactPath",
79
+ ];
80
+ const MAX_ERROR_MESSAGE_CHARS = 400;
81
+ const MAX_ERROR_DETAIL_CHARS = 120;
82
+ /**
83
+ * Retryability describes whether a fresh caller-decided attempt could help. It
84
+ * never authorizes an automatic retry, and it is false for every code whose
85
+ * failure could already have produced a process or input side effect.
86
+ */
87
+ const NON_RETRYABLE_CODES = new Set([
88
+ "INVALID_REQUEST",
89
+ "INVALID_CONFIGURATION",
90
+ "SESSION_NOT_FOUND",
91
+ "PTY_UNAVAILABLE",
92
+ "SESSION_NOT_RUNNING",
93
+ "SESSION_CLOSING",
94
+ "INPUT_CLOSED",
95
+ "INPUT_REJECTED",
96
+ "INPUT_DELIVERY_UNKNOWN",
97
+ "UNSUPPORTED_CONTROL",
98
+ "UNSUPPORTED_OPERATION",
99
+ "DEADLINE_EXCEEDED",
100
+ "CANCELLED",
101
+ "OUTPUT_GAP",
102
+ "CLEANUP_FAILED",
103
+ ]);
104
+ const RETRYABLE_CODES = new Set([
105
+ "LIMIT_REACHED",
106
+ "BACKPRESSURE",
107
+ ]);
108
+ function boundDetailValue(value) {
109
+ if (typeof value !== "string")
110
+ return value;
111
+ return value.length > MAX_ERROR_DETAIL_CHARS
112
+ ? `${value.slice(0, MAX_ERROR_DETAIL_CHARS)}…`
113
+ : value;
114
+ }
115
+ function resolveRetryable(init) {
116
+ if (NON_RETRYABLE_CODES.has(init.code))
117
+ return false;
118
+ if (RETRYABLE_CODES.has(init.code))
119
+ return init.retryable ?? true;
120
+ // LAUNCH_FAILED / PERSIST_FAILED are retryable only when the caller proved no
121
+ // process side effect was possible.
122
+ return init.retryable ?? false;
123
+ }
124
+ /** Single construction point for every interactive-session failure. */
125
+ export function sessionError(init) {
126
+ const details = {};
127
+ for (const key of STABLE_ERROR_DETAIL_KEYS) {
128
+ const value = init.details?.[key];
129
+ if (value !== undefined)
130
+ details[key] = boundDetailValue(value);
131
+ }
132
+ const message = init.message.length > MAX_ERROR_MESSAGE_CHARS
133
+ ? `${init.message.slice(0, MAX_ERROR_MESSAGE_CHARS)}…`
134
+ : init.message;
135
+ return {
136
+ code: init.code,
137
+ message,
138
+ retryable: resolveRetryable(init),
139
+ operation: init.operation,
140
+ ...(init.sessionId !== undefined ? { sessionId: init.sessionId } : {}),
141
+ ...(init.state !== undefined ? { state: init.state } : {}),
142
+ ...(Object.keys(details).length > 0 ? { details } : {}),
143
+ };
144
+ }
145
+ /** Carrier so internal layers can reject with a StableError and be unwrapped. */
146
+ export class SessionErrorException extends Error {
147
+ stable;
148
+ constructor(stable) {
149
+ super(stable.message);
150
+ this.stable = stable;
151
+ this.name = "SessionErrorException";
152
+ }
153
+ }
154
+ export function throwSessionError(init) {
155
+ throw new SessionErrorException(sessionError(init));
156
+ }
157
+ export function asStableError(value, fallback) {
158
+ return value instanceof SessionErrorException
159
+ ? value.stable
160
+ : sessionError(fallback);
161
+ }
162
+ export function toSummary(record) {
163
+ return {
164
+ id: record.id,
165
+ state: record.state,
166
+ transport: record.transport,
167
+ startedAt: record.startedAt,
168
+ lastActivityAt: record.lastActivityAt,
169
+ ...(record.endedAt !== undefined ? { endedAt: record.endedAt } : {}),
170
+ ...(record.dimensions ? { dimensions: { ...record.dimensions } } : {}),
171
+ ...(record.degradedReason ? { degradedReason: record.degradedReason } : {}),
172
+ ...(record.processOutcome ? { processOutcome: { ...record.processOutcome } } : {}),
173
+ ...(record.terminationReason ? { terminationReason: record.terminationReason } : {}),
174
+ earliestCursor: record.earliestCursor,
175
+ latestCursor: record.latestCursor,
176
+ inputClosed: record.inputClosed,
177
+ artifact: artifactReference(record.artifact),
178
+ ...(record.cleanupVerified !== undefined
179
+ ? { cleanupVerified: record.cleanupVerified }
180
+ : {}),
181
+ };
182
+ }
183
+ export function artifactReference(receipt) {
184
+ return {
185
+ path: receipt.path,
186
+ bytes: receipt.bytes,
187
+ droppedBytes: receipt.droppedBytes,
188
+ redacted: receipt.redacted,
189
+ };
190
+ }
191
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/interactive-session/types.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,10 @@ export declare function toAnthropicTools(defs: ToolDefinition[]): Array<{
9
9
  type AnthropicContentBlock = {
10
10
  type: "text";
11
11
  text: string;
12
+ } | {
13
+ type: "thinking";
14
+ thinking: string;
15
+ signature: string;
12
16
  } | {
13
17
  type: "image";
14
18
  source: {
@@ -29,7 +33,9 @@ type AnthropicContentBlock = {
29
33
  };
30
34
  /**
31
35
  * Convert dialect-neutral history to Anthropic Messages API messages.
32
- * System is filtered out; consecutive tool results collapse into one user turn.
36
+ * The first system message is owned by the top-level `system` field; later
37
+ * System messages become marked user turns in place. Consecutive
38
+ * tool results collapse into one user turn.
33
39
  */
34
40
  export declare function toAnthropicToolMessages(messages: ChatMessage[]): Array<{
35
41
  role: "user" | "assistant";
@@ -43,6 +49,7 @@ export declare function parseAnthropicToolUseBlocks(content: Array<{
43
49
  type: string;
44
50
  text?: string;
45
51
  thinking?: string;
52
+ signature?: string;
46
53
  id?: string;
47
54
  name?: string;
48
55
  input?: unknown;
@@ -50,10 +57,13 @@ export declare function parseAnthropicToolUseBlocks(content: Array<{
50
57
  text: string;
51
58
  thinkingText: string;
52
59
  toolCalls: NativeToolCall[];
60
+ thinkingSignature?: string;
53
61
  };
54
62
  export interface AnthropicToolStreamState {
55
63
  text: string;
56
64
  thinking: string;
65
+ /** Anthropic `signature_delta` for the thinking block. */
66
+ thinkingSignature: string;
57
67
  /** block index → partial tool_use */
58
68
  blocks: Map<number, {
59
69
  kind: "text" | "thinking" | "tool_use";
@@ -73,12 +83,14 @@ export declare function handleAnthropicStreamEvent(state: AnthropicToolStreamSta
73
83
  name?: string;
74
84
  text?: string;
75
85
  thinking?: string;
86
+ signature?: string;
76
87
  };
77
88
  delta?: {
78
89
  type?: string;
79
90
  text?: string;
80
91
  thinking?: string;
81
92
  partial_json?: string;
93
+ signature?: string;
82
94
  };
83
95
  }): {
84
96
  textDelta?: string;
@@ -95,5 +107,6 @@ export declare function finalizeAnthropicToolStream(state: AnthropicToolStreamSt
95
107
  text: string;
96
108
  thinkingText: string;
97
109
  toolCalls: NativeToolCall[];
110
+ thinkingSignature?: string;
98
111
  };
99
112
  export {};
@@ -1,6 +1,7 @@
1
1
  import { fromWireName, mapToolChoiceToAnthropic, parseToolArguments, syntheticToolCallId, toWireName, MAX_TOOL_ARG_BYTES, } from "../tool-protocol.js";
2
2
  // Side-effect: register wire name map before fromWireName use.
3
3
  import "../../tools/definitions.js";
4
+ import { normalizeSystemMessages } from "../system-messages.js";
4
5
  export function toAnthropicTools(defs) {
5
6
  return defs.map((d) => ({
6
7
  name: d.wireName,
@@ -10,12 +11,14 @@ export function toAnthropicTools(defs) {
10
11
  }
11
12
  /**
12
13
  * Convert dialect-neutral history to Anthropic Messages API messages.
13
- * System is filtered out; consecutive tool results collapse into one user turn.
14
+ * The first system message is owned by the top-level `system` field; later
15
+ * System messages become marked user turns in place. Consecutive
16
+ * tool results collapse into one user turn.
14
17
  */
15
18
  export function toAnthropicToolMessages(messages) {
16
19
  const out = [];
17
20
  let i = 0;
18
- const nonSystem = messages.filter((m) => m.role !== "system");
21
+ const nonSystem = normalizeSystemMessages(messages).rest;
19
22
  while (i < nonSystem.length) {
20
23
  const message = nonSystem[i];
21
24
  if (message.role === "tool") {
@@ -37,6 +40,18 @@ export function toAnthropicToolMessages(messages) {
37
40
  }
38
41
  if (message.role === "assistant" && message.toolCalls?.length) {
39
42
  const blocks = [];
43
+ // Anthropic requires the signed thinking block to be the FIRST
44
+ // block of an assistant turn that carries tool_use while thinking is
45
+ // enabled; without it the follow-up request is rejected and the model
46
+ // loses its own chain of thought between tool calls.
47
+ const reasoning = message.reasoningBlock;
48
+ if (reasoning?.signature && reasoning.text) {
49
+ blocks.push({
50
+ type: "thinking",
51
+ thinking: reasoning.text,
52
+ signature: reasoning.signature,
53
+ });
54
+ }
40
55
  if (message.content.trim()) {
41
56
  blocks.push({ type: "text", text: message.content });
42
57
  }
@@ -88,14 +103,18 @@ export function anthropicToolBodyFields(options) {
88
103
  export function parseAnthropicToolUseBlocks(content) {
89
104
  let text = "";
90
105
  let thinkingText = "";
106
+ let thinkingSignature;
91
107
  const toolCalls = [];
92
108
  if (!content)
93
109
  return { text, thinkingText, toolCalls };
94
110
  for (const part of content) {
95
111
  if (part.type === "text" && part.text)
96
112
  text += part.text;
97
- if (part.type === "thinking" && part.thinking) {
98
- thinkingText += part.thinking;
113
+ if (part.type === "thinking") {
114
+ if (part.thinking)
115
+ thinkingText += part.thinking;
116
+ if (part.signature)
117
+ thinkingSignature = part.signature;
99
118
  }
100
119
  if (part.type === "tool_use") {
101
120
  const wire = part.name ?? "";
@@ -114,10 +133,11 @@ export function parseAnthropicToolUseBlocks(content) {
114
133
  text: text.trim(),
115
134
  thinkingText: thinkingText.trim(),
116
135
  toolCalls,
136
+ ...(thinkingSignature ? { thinkingSignature } : {}),
117
137
  };
118
138
  }
119
139
  export function createAnthropicToolStreamState() {
120
- return { text: "", thinking: "", blocks: new Map() };
140
+ return { text: "", thinking: "", thinkingSignature: "", blocks: new Map() };
121
141
  }
122
142
  export function handleAnthropicStreamEvent(state, event) {
123
143
  const result = {};
@@ -158,6 +178,10 @@ export function handleAnthropicStreamEvent(state, event) {
158
178
  json: "",
159
179
  text: "",
160
180
  });
181
+ if (cb.thinking)
182
+ state.thinking += cb.thinking;
183
+ if (cb.signature)
184
+ state.thinkingSignature = cb.signature;
161
185
  }
162
186
  }
163
187
  if (event.type === "content_block_delta" && event.delta) {
@@ -177,6 +201,10 @@ export function handleAnthropicStreamEvent(state, event) {
177
201
  state.thinking += event.delta.thinking;
178
202
  result.thinkingDelta = event.delta.thinking;
179
203
  }
204
+ // The signature arrives as its own delta and must be kept.
205
+ if (event.delta.type === "signature_delta" && event.delta.signature) {
206
+ state.thinkingSignature += event.delta.signature;
207
+ }
180
208
  if (event.delta.type === "input_json_delta" &&
181
209
  typeof event.delta.partial_json === "string") {
182
210
  block.json += event.delta.partial_json;
@@ -220,6 +248,9 @@ export function finalizeAnthropicToolStream(state) {
220
248
  text: state.text.trim(),
221
249
  thinkingText: state.thinking.trim(),
222
250
  toolCalls,
251
+ ...(state.thinkingSignature
252
+ ? { thinkingSignature: state.thinkingSignature }
253
+ : {}),
223
254
  };
224
255
  }
225
256
  //# sourceMappingURL=anthropic-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-tools.js","sourceRoot":"","sources":["../../../src/llm/adapters/anthropic-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic-tools.js","sourceRoot":"","sources":["../../../src/llm/adapters/anthropic-tools.ts"],"names":[],"mappings":"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"}