@code-yeongyu/senpi 2026.9.4 → 2026.9.5

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 (1010) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/README.md +5 -4
  3. package/dist/cli/startup-ui.d.ts.map +1 -1
  4. package/dist/cli/startup-ui.js +2 -1
  5. package/dist/cli/startup-ui.js.map +1 -1
  6. package/dist/core/agent-session-runtime.js +2 -2
  7. package/dist/core/agent-session-runtime.js.map +1 -1
  8. package/dist/core/agent-session.d.ts +17 -1
  9. package/dist/core/agent-session.d.ts.map +1 -1
  10. package/dist/core/agent-session.js +86 -3
  11. package/dist/core/agent-session.js.map +1 -1
  12. package/dist/core/auth-storage.d.ts.map +1 -1
  13. package/dist/core/auth-storage.js +31 -41
  14. package/dist/core/auth-storage.js.map +1 -1
  15. package/dist/core/compaction/compaction.d.ts.map +1 -1
  16. package/dist/core/compaction/compaction.js +16 -7
  17. package/dist/core/compaction/compaction.js.map +1 -1
  18. package/dist/core/credential-pool/state-store.d.ts +1 -0
  19. package/dist/core/credential-pool/state-store.d.ts.map +1 -1
  20. package/dist/core/credential-pool/state-store.js +22 -2
  21. package/dist/core/credential-pool/state-store.js.map +1 -1
  22. package/dist/core/extensions/builtin/bash-timeout/index.d.ts.map +1 -1
  23. package/dist/core/extensions/builtin/bash-timeout/index.js +1 -5
  24. package/dist/core/extensions/builtin/bash-timeout/index.js.map +1 -1
  25. package/dist/core/extensions/builtin/bash-timeout/timeout.d.ts +0 -2
  26. package/dist/core/extensions/builtin/bash-timeout/timeout.d.ts.map +1 -1
  27. package/dist/core/extensions/builtin/bash-timeout/timeout.js +3 -4
  28. package/dist/core/extensions/builtin/bash-timeout/timeout.js.map +1 -1
  29. package/dist/core/extensions/builtin/compaction/model-usability-budget.d.ts +5 -0
  30. package/dist/core/extensions/builtin/compaction/model-usability-budget.d.ts.map +1 -1
  31. package/dist/core/extensions/builtin/compaction/model-usability-budget.js +11 -4
  32. package/dist/core/extensions/builtin/compaction/model-usability-budget.js.map +1 -1
  33. package/dist/core/extensions/builtin/goal/prompt.d.ts.map +1 -1
  34. package/dist/core/extensions/builtin/goal/prompt.js +1 -3
  35. package/dist/core/extensions/builtin/goal/prompt.js.map +1 -1
  36. package/dist/core/extensions/builtin/goal/store.d.ts.map +1 -1
  37. package/dist/core/extensions/builtin/goal/store.js +8 -20
  38. package/dist/core/extensions/builtin/goal/store.js.map +1 -1
  39. package/dist/core/extensions/builtin/goal/tool-registration.js +1 -1
  40. package/dist/core/extensions/builtin/goal/tool-registration.js.map +1 -1
  41. package/dist/core/extensions/builtin/hooks/trust-storage.d.ts.map +1 -1
  42. package/dist/core/extensions/builtin/hooks/trust-storage.js +3 -1
  43. package/dist/core/extensions/builtin/hooks/trust-storage.js.map +1 -1
  44. package/dist/core/extensions/builtin/imagegen/auth.d.ts.map +1 -1
  45. package/dist/core/extensions/builtin/imagegen/auth.js +10 -2
  46. package/dist/core/extensions/builtin/imagegen/auth.js.map +1 -1
  47. package/dist/core/extensions/builtin/loop/index.d.ts.map +1 -1
  48. package/dist/core/extensions/builtin/loop/index.js +20 -1
  49. package/dist/core/extensions/builtin/loop/index.js.map +1 -1
  50. package/dist/core/extensions/builtin/loop/store.d.ts +8 -6
  51. package/dist/core/extensions/builtin/loop/store.d.ts.map +1 -1
  52. package/dist/core/extensions/builtin/loop/store.js +54 -88
  53. package/dist/core/extensions/builtin/loop/store.js.map +1 -1
  54. package/dist/core/extensions/builtin/loop/tools.d.ts +6 -1
  55. package/dist/core/extensions/builtin/loop/tools.d.ts.map +1 -1
  56. package/dist/core/extensions/builtin/loop/tools.js +8 -1
  57. package/dist/core/extensions/builtin/loop/tools.js.map +1 -1
  58. package/dist/core/extensions/builtin/monitor-state-event.d.ts +2 -0
  59. package/dist/core/extensions/builtin/monitor-state-event.d.ts.map +1 -1
  60. package/dist/core/extensions/builtin/monitor-state-event.js.map +1 -1
  61. package/dist/core/extensions/builtin/prompt-preset/gpt-6-astra.d.ts +9 -5
  62. package/dist/core/extensions/builtin/prompt-preset/gpt-6-astra.d.ts.map +1 -1
  63. package/dist/core/extensions/builtin/prompt-preset/gpt-6-astra.js +20 -11
  64. package/dist/core/extensions/builtin/prompt-preset/gpt-6-astra.js.map +1 -1
  65. package/dist/core/extensions/builtin/recommended-models/index.d.ts +1 -1
  66. package/dist/core/extensions/builtin/recommended-models/index.d.ts.map +1 -1
  67. package/dist/core/extensions/builtin/recommended-models/index.js +1 -0
  68. package/dist/core/extensions/builtin/recommended-models/index.js.map +1 -1
  69. package/dist/core/extensions/builtin/service-tier.d.ts.map +1 -1
  70. package/dist/core/extensions/builtin/service-tier.js +12 -4
  71. package/dist/core/extensions/builtin/service-tier.js.map +1 -1
  72. package/dist/core/extensions/builtin/terminal/durable-command.d.ts +31 -0
  73. package/dist/core/extensions/builtin/terminal/durable-command.d.ts.map +1 -0
  74. package/dist/core/extensions/builtin/terminal/durable-command.js +96 -0
  75. package/dist/core/extensions/builtin/terminal/durable-command.js.map +1 -0
  76. package/dist/core/extensions/builtin/terminal/durable-file.d.ts +42 -0
  77. package/dist/core/extensions/builtin/terminal/durable-file.d.ts.map +1 -0
  78. package/dist/core/extensions/builtin/terminal/durable-file.js +102 -0
  79. package/dist/core/extensions/builtin/terminal/durable-file.js.map +1 -0
  80. package/dist/core/extensions/builtin/terminal/extension.d.ts.map +1 -1
  81. package/dist/core/extensions/builtin/terminal/extension.js +226 -3
  82. package/dist/core/extensions/builtin/terminal/extension.js.map +1 -1
  83. package/dist/core/extensions/builtin/terminal/manager.d.ts +10 -0
  84. package/dist/core/extensions/builtin/terminal/manager.d.ts.map +1 -1
  85. package/dist/core/extensions/builtin/terminal/manager.js +21 -0
  86. package/dist/core/extensions/builtin/terminal/manager.js.map +1 -1
  87. package/dist/core/extensions/builtin/terminal/manifest-lease.d.ts +24 -0
  88. package/dist/core/extensions/builtin/terminal/manifest-lease.d.ts.map +1 -0
  89. package/dist/core/extensions/builtin/terminal/manifest-lease.js +105 -0
  90. package/dist/core/extensions/builtin/terminal/manifest-lease.js.map +1 -0
  91. package/dist/core/extensions/builtin/terminal/monitor-notify.d.ts.map +1 -1
  92. package/dist/core/extensions/builtin/terminal/monitor-notify.js +5 -1
  93. package/dist/core/extensions/builtin/terminal/monitor-notify.js.map +1 -1
  94. package/dist/core/extensions/builtin/terminal/monitor-registry.d.ts +42 -2
  95. package/dist/core/extensions/builtin/terminal/monitor-registry.d.ts.map +1 -1
  96. package/dist/core/extensions/builtin/terminal/monitor-registry.js +73 -2
  97. package/dist/core/extensions/builtin/terminal/monitor-registry.js.map +1 -1
  98. package/dist/core/extensions/builtin/terminal/monitor-status.d.ts.map +1 -1
  99. package/dist/core/extensions/builtin/terminal/monitor-status.js +21 -1
  100. package/dist/core/extensions/builtin/terminal/monitor-status.js.map +1 -1
  101. package/dist/core/extensions/builtin/terminal/prompt.d.ts.map +1 -1
  102. package/dist/core/extensions/builtin/terminal/prompt.js +9 -5
  103. package/dist/core/extensions/builtin/terminal/prompt.js.map +1 -1
  104. package/dist/core/extensions/builtin/terminal/restore.d.ts +56 -0
  105. package/dist/core/extensions/builtin/terminal/restore.d.ts.map +1 -0
  106. package/dist/core/extensions/builtin/terminal/restore.js +177 -0
  107. package/dist/core/extensions/builtin/terminal/restore.js.map +1 -0
  108. package/dist/core/extensions/builtin/terminal/shared.d.ts +25 -0
  109. package/dist/core/extensions/builtin/terminal/shared.d.ts.map +1 -1
  110. package/dist/core/extensions/builtin/terminal/shared.js +25 -0
  111. package/dist/core/extensions/builtin/terminal/shared.js.map +1 -1
  112. package/dist/core/extensions/builtin/terminal/terminal-manifest-model.d.ts +91 -0
  113. package/dist/core/extensions/builtin/terminal/terminal-manifest-model.d.ts.map +1 -0
  114. package/dist/core/extensions/builtin/terminal/terminal-manifest-model.js +14 -0
  115. package/dist/core/extensions/builtin/terminal/terminal-manifest-model.js.map +1 -0
  116. package/dist/core/extensions/builtin/terminal/terminal-manifest.d.ts +62 -0
  117. package/dist/core/extensions/builtin/terminal/terminal-manifest.d.ts.map +1 -0
  118. package/dist/core/extensions/builtin/terminal/terminal-manifest.js +204 -0
  119. package/dist/core/extensions/builtin/terminal/terminal-manifest.js.map +1 -0
  120. package/dist/core/extensions/builtin/terminal/tools/bash-input.d.ts.map +1 -1
  121. package/dist/core/extensions/builtin/terminal/tools/bash-input.js +3 -2
  122. package/dist/core/extensions/builtin/terminal/tools/bash-input.js.map +1 -1
  123. package/dist/core/extensions/builtin/terminal/tools/bash-output.d.ts.map +1 -1
  124. package/dist/core/extensions/builtin/terminal/tools/bash-output.js +5 -4
  125. package/dist/core/extensions/builtin/terminal/tools/bash-output.js.map +1 -1
  126. package/dist/core/extensions/builtin/terminal/tools/bash-resize.d.ts.map +1 -1
  127. package/dist/core/extensions/builtin/terminal/tools/bash-resize.js +3 -2
  128. package/dist/core/extensions/builtin/terminal/tools/bash-resize.js.map +1 -1
  129. package/dist/core/extensions/builtin/terminal/tools/context.d.ts +8 -0
  130. package/dist/core/extensions/builtin/terminal/tools/context.d.ts.map +1 -1
  131. package/dist/core/extensions/builtin/terminal/tools/context.js +10 -0
  132. package/dist/core/extensions/builtin/terminal/tools/context.js.map +1 -1
  133. package/dist/core/extensions/builtin/terminal/tools/kill-bash.d.ts.map +1 -1
  134. package/dist/core/extensions/builtin/terminal/tools/kill-bash.js +5 -4
  135. package/dist/core/extensions/builtin/terminal/tools/kill-bash.js.map +1 -1
  136. package/dist/core/extensions/builtin/terminal/tools/monitor.d.ts +4 -1
  137. package/dist/core/extensions/builtin/terminal/tools/monitor.d.ts.map +1 -1
  138. package/dist/core/extensions/builtin/terminal/tools/monitor.js +114 -22
  139. package/dist/core/extensions/builtin/terminal/tools/monitor.js.map +1 -1
  140. package/dist/core/extensions/builtin/todotools/prompt.d.ts +2 -2
  141. package/dist/core/extensions/builtin/todotools/prompt.d.ts.map +1 -1
  142. package/dist/core/extensions/builtin/todotools/prompt.js +3 -6
  143. package/dist/core/extensions/builtin/todotools/prompt.js.map +1 -1
  144. package/dist/core/extensions/builtin/tool-search/index.d.ts.map +1 -1
  145. package/dist/core/extensions/builtin/tool-search/index.js +1 -1
  146. package/dist/core/extensions/builtin/tool-search/index.js.map +1 -1
  147. package/dist/core/extensions/builtin/tool-search/native-search.d.ts +9 -4
  148. package/dist/core/extensions/builtin/tool-search/native-search.d.ts.map +1 -1
  149. package/dist/core/extensions/builtin/tool-search/native-search.js +11 -6
  150. package/dist/core/extensions/builtin/tool-search/native-search.js.map +1 -1
  151. package/dist/core/extensions/builtin/tool-search/native-support.d.ts +13 -0
  152. package/dist/core/extensions/builtin/tool-search/native-support.d.ts.map +1 -0
  153. package/dist/core/extensions/builtin/tool-search/native-support.js +45 -0
  154. package/dist/core/extensions/builtin/tool-search/native-support.js.map +1 -0
  155. package/dist/core/extensions/index.d.ts +1 -1
  156. package/dist/core/extensions/index.d.ts.map +1 -1
  157. package/dist/core/extensions/index.js.map +1 -1
  158. package/dist/core/extensions/runner.d.ts +5 -0
  159. package/dist/core/extensions/runner.d.ts.map +1 -1
  160. package/dist/core/extensions/runner.js +44 -1
  161. package/dist/core/extensions/runner.js.map +1 -1
  162. package/dist/core/extensions/types.d.ts +26 -3
  163. package/dist/core/extensions/types.d.ts.map +1 -1
  164. package/dist/core/extensions/types.js.map +1 -1
  165. package/dist/core/footer-data-provider.d.ts.map +1 -1
  166. package/dist/core/footer-data-provider.js +18 -1
  167. package/dist/core/footer-data-provider.js.map +1 -1
  168. package/dist/core/http-dispatcher.d.ts.map +1 -1
  169. package/dist/core/http-dispatcher.js +2 -0
  170. package/dist/core/http-dispatcher.js.map +1 -1
  171. package/dist/core/lockfile-policy.d.ts +11 -0
  172. package/dist/core/lockfile-policy.d.ts.map +1 -1
  173. package/dist/core/lockfile-policy.js +19 -0
  174. package/dist/core/lockfile-policy.js.map +1 -1
  175. package/dist/core/manual-continue.d.ts +13 -0
  176. package/dist/core/manual-continue.d.ts.map +1 -0
  177. package/dist/core/manual-continue.js +19 -0
  178. package/dist/core/manual-continue.js.map +1 -0
  179. package/dist/core/messages.d.ts.map +1 -1
  180. package/dist/core/messages.js +8 -2
  181. package/dist/core/messages.js.map +1 -1
  182. package/dist/core/model-config.d.ts.map +1 -1
  183. package/dist/core/model-config.js +3 -0
  184. package/dist/core/model-config.js.map +1 -1
  185. package/dist/core/provider-composer.d.ts.map +1 -1
  186. package/dist/core/provider-composer.js +13 -2
  187. package/dist/core/provider-composer.js.map +1 -1
  188. package/dist/core/retry-fallback/chains.d.ts +1 -13
  189. package/dist/core/retry-fallback/chains.d.ts.map +1 -1
  190. package/dist/core/retry-fallback/chains.js +3 -49
  191. package/dist/core/retry-fallback/chains.js.map +1 -1
  192. package/dist/core/retry-fallback/controller.d.ts.map +1 -1
  193. package/dist/core/retry-fallback/controller.js +4 -9
  194. package/dist/core/retry-fallback/controller.js.map +1 -1
  195. package/dist/core/retry-fallback/expansion.js +1 -1
  196. package/dist/core/retry-fallback/expansion.js.map +1 -1
  197. package/dist/core/retry-fallback/settings.d.ts +2 -4
  198. package/dist/core/retry-fallback/settings.d.ts.map +1 -1
  199. package/dist/core/retry-fallback/settings.js +7 -36
  200. package/dist/core/retry-fallback/settings.js.map +1 -1
  201. package/dist/core/sdk.d.ts.map +1 -1
  202. package/dist/core/sdk.js +1 -1
  203. package/dist/core/sdk.js.map +1 -1
  204. package/dist/core/session-manager.d.ts.map +1 -1
  205. package/dist/core/session-manager.js +10 -3
  206. package/dist/core/session-manager.js.map +1 -1
  207. package/dist/core/session-sidecar-store.d.ts +62 -0
  208. package/dist/core/session-sidecar-store.d.ts.map +1 -0
  209. package/dist/core/session-sidecar-store.js +149 -0
  210. package/dist/core/session-sidecar-store.js.map +1 -0
  211. package/dist/core/settings-manager.d.ts +5 -1
  212. package/dist/core/settings-manager.d.ts.map +1 -1
  213. package/dist/core/settings-manager.js +45 -15
  214. package/dist/core/settings-manager.js.map +1 -1
  215. package/dist/core/skills.d.ts.map +1 -1
  216. package/dist/core/skills.js +19 -2
  217. package/dist/core/skills.js.map +1 -1
  218. package/dist/core/terminal-settings.d.ts +3 -0
  219. package/dist/core/terminal-settings.d.ts.map +1 -1
  220. package/dist/core/terminal-settings.js.map +1 -1
  221. package/dist/core/tools/bash.d.ts.map +1 -1
  222. package/dist/core/tools/bash.js +1 -1
  223. package/dist/core/tools/bash.js.map +1 -1
  224. package/dist/core/tools/edit.d.ts.map +1 -1
  225. package/dist/core/tools/edit.js +2 -2
  226. package/dist/core/tools/edit.js.map +1 -1
  227. package/dist/core/tools/find.d.ts.map +1 -1
  228. package/dist/core/tools/find.js +2 -2
  229. package/dist/core/tools/find.js.map +1 -1
  230. package/dist/core/tools/grep.d.ts.map +1 -1
  231. package/dist/core/tools/grep.js +2 -2
  232. package/dist/core/tools/grep.js.map +1 -1
  233. package/dist/core/tools/ls.d.ts.map +1 -1
  234. package/dist/core/tools/ls.js +2 -2
  235. package/dist/core/tools/ls.js.map +1 -1
  236. package/dist/core/tools/read.d.ts.map +1 -1
  237. package/dist/core/tools/read.js +1 -1
  238. package/dist/core/tools/read.js.map +1 -1
  239. package/dist/core/tools/write.d.ts.map +1 -1
  240. package/dist/core/tools/write.js +3 -3
  241. package/dist/core/tools/write.js.map +1 -1
  242. package/dist/index.d.ts +1 -1
  243. package/dist/index.d.ts.map +1 -1
  244. package/dist/index.js.map +1 -1
  245. package/dist/main.d.ts.map +1 -1
  246. package/dist/main.js +2 -0
  247. package/dist/main.js.map +1 -1
  248. package/dist/modes/app-server/daemon/process.d.ts +33 -3
  249. package/dist/modes/app-server/daemon/process.d.ts.map +1 -1
  250. package/dist/modes/app-server/daemon/process.js +57 -6
  251. package/dist/modes/app-server/daemon/process.js.map +1 -1
  252. package/dist/modes/app-server/daemon.js +9 -1
  253. package/dist/modes/app-server/daemon.js.map +1 -1
  254. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  255. package/dist/modes/interactive/components/scoped-models-selector.js +5 -11
  256. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  257. package/dist/modes/interactive/components/settings-selector.d.ts +2 -0
  258. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  259. package/dist/modes/interactive/components/settings-selector.js +21 -8
  260. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  261. package/dist/modes/interactive/components/thinking-selector.js +2 -2
  262. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  263. package/dist/modes/interactive/components/trust-selector.js +2 -2
  264. package/dist/modes/interactive/components/trust-selector.js.map +1 -1
  265. package/dist/modes/interactive/grok/welcome-card.d.ts.map +1 -1
  266. package/dist/modes/interactive/grok/welcome-card.js +5 -2
  267. package/dist/modes/interactive/grok/welcome-card.js.map +1 -1
  268. package/dist/modes/interactive/interactive-mode.d.ts +3 -0
  269. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  270. package/dist/modes/interactive/interactive-mode.js +83 -14
  271. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  272. package/dist/modes/interactive/version-label.d.ts +7 -0
  273. package/dist/modes/interactive/version-label.d.ts.map +1 -0
  274. package/dist/modes/interactive/version-label.js +9 -0
  275. package/dist/modes/interactive/version-label.js.map +1 -0
  276. package/dist/modes/rpc/host-ensure.d.ts +2 -0
  277. package/dist/modes/rpc/host-ensure.d.ts.map +1 -1
  278. package/dist/modes/rpc/host-ensure.js +77 -18
  279. package/dist/modes/rpc/host-ensure.js.map +1 -1
  280. package/dist/utils/version-check.d.ts.map +1 -1
  281. package/dist/utils/version-check.js +3 -4
  282. package/dist/utils/version-check.js.map +1 -1
  283. package/docs/compaction.md +2 -0
  284. package/docs/environment-variables.md +5 -0
  285. package/docs/extensions.md +22 -2
  286. package/docs/keybindings.md +1 -1
  287. package/docs/models.md +3 -0
  288. package/docs/quickstart.md +1 -1
  289. package/docs/rpc.md +1 -1
  290. package/docs/settings.md +13 -5
  291. package/docs/terminal-setup.md +27 -0
  292. package/docs/terminal-tools.md +35 -4
  293. package/docs/usage.md +5 -3
  294. package/node_modules/@anthropic-ai/sdk/CHANGELOG.md +96 -0
  295. package/node_modules/@anthropic-ai/sdk/README.md +1 -1
  296. package/node_modules/@anthropic-ai/sdk/core/credentials.d.mts.map +1 -1
  297. package/node_modules/@anthropic-ai/sdk/core/credentials.d.ts.map +1 -1
  298. package/node_modules/@anthropic-ai/sdk/core/credentials.js +5 -7
  299. package/node_modules/@anthropic-ai/sdk/core/credentials.js.map +1 -1
  300. package/node_modules/@anthropic-ai/sdk/core/credentials.mjs +5 -7
  301. package/node_modules/@anthropic-ai/sdk/core/credentials.mjs.map +1 -1
  302. package/node_modules/@anthropic-ai/sdk/core/middleware.d.mts.map +1 -1
  303. package/node_modules/@anthropic-ai/sdk/core/middleware.d.ts.map +1 -1
  304. package/node_modules/@anthropic-ai/sdk/core/middleware.js +4 -4
  305. package/node_modules/@anthropic-ai/sdk/core/middleware.js.map +1 -1
  306. package/node_modules/@anthropic-ai/sdk/core/middleware.mjs +4 -4
  307. package/node_modules/@anthropic-ai/sdk/core/middleware.mjs.map +1 -1
  308. package/node_modules/@anthropic-ai/sdk/helpers/beta/standard-schema.d.mts +45 -0
  309. package/node_modules/@anthropic-ai/sdk/helpers/beta/standard-schema.d.mts.map +1 -0
  310. package/node_modules/@anthropic-ai/sdk/helpers/beta/standard-schema.d.ts +45 -0
  311. package/node_modules/@anthropic-ai/sdk/helpers/beta/standard-schema.d.ts.map +1 -0
  312. package/node_modules/@anthropic-ai/sdk/helpers/beta/standard-schema.js +58 -0
  313. package/node_modules/@anthropic-ai/sdk/helpers/beta/standard-schema.js.map +1 -0
  314. package/node_modules/@anthropic-ai/sdk/helpers/beta/standard-schema.mjs +54 -0
  315. package/node_modules/@anthropic-ai/sdk/helpers/beta/standard-schema.mjs.map +1 -0
  316. package/node_modules/@anthropic-ai/sdk/internal/detect-platform.js +1 -1
  317. package/node_modules/@anthropic-ai/sdk/internal/detect-platform.js.map +1 -1
  318. package/node_modules/@anthropic-ai/sdk/internal/detect-platform.mjs +1 -1
  319. package/node_modules/@anthropic-ai/sdk/internal/detect-platform.mjs.map +1 -1
  320. package/node_modules/@anthropic-ai/sdk/internal/errors.d.mts.map +1 -1
  321. package/node_modules/@anthropic-ai/sdk/internal/errors.d.ts.map +1 -1
  322. package/node_modules/@anthropic-ai/sdk/internal/errors.js +3 -1
  323. package/node_modules/@anthropic-ai/sdk/internal/errors.js.map +1 -1
  324. package/node_modules/@anthropic-ai/sdk/internal/errors.mjs +3 -1
  325. package/node_modules/@anthropic-ai/sdk/internal/errors.mjs.map +1 -1
  326. package/node_modules/@anthropic-ai/sdk/internal/file-store.d.mts.map +1 -1
  327. package/node_modules/@anthropic-ai/sdk/internal/file-store.d.ts.map +1 -1
  328. package/node_modules/@anthropic-ai/sdk/internal/file-store.js +23 -25
  329. package/node_modules/@anthropic-ai/sdk/internal/file-store.js.map +1 -1
  330. package/node_modules/@anthropic-ai/sdk/internal/file-store.mjs +5 -6
  331. package/node_modules/@anthropic-ai/sdk/internal/file-store.mjs.map +1 -1
  332. package/node_modules/@anthropic-ai/sdk/internal/node.browser.d.mts +9 -0
  333. package/node_modules/@anthropic-ai/sdk/internal/node.browser.d.mts.map +1 -0
  334. package/node_modules/@anthropic-ai/sdk/internal/node.browser.d.ts +9 -0
  335. package/node_modules/@anthropic-ai/sdk/internal/node.browser.d.ts.map +1 -0
  336. package/node_modules/@anthropic-ai/sdk/internal/node.browser.js +22 -0
  337. package/node_modules/@anthropic-ai/sdk/internal/node.browser.js.map +1 -0
  338. package/node_modules/@anthropic-ai/sdk/internal/node.browser.mjs +19 -0
  339. package/node_modules/@anthropic-ai/sdk/internal/node.browser.mjs.map +1 -0
  340. package/node_modules/@anthropic-ai/sdk/internal/node.d.mts +14 -0
  341. package/node_modules/@anthropic-ai/sdk/internal/node.d.mts.map +1 -0
  342. package/node_modules/@anthropic-ai/sdk/internal/node.d.ts +14 -0
  343. package/node_modules/@anthropic-ai/sdk/internal/node.d.ts.map +1 -0
  344. package/node_modules/@anthropic-ai/sdk/internal/node.js +24 -0
  345. package/node_modules/@anthropic-ai/sdk/internal/node.js.map +1 -0
  346. package/node_modules/@anthropic-ai/sdk/internal/node.mjs +14 -0
  347. package/node_modules/@anthropic-ai/sdk/internal/node.mjs.map +1 -0
  348. package/node_modules/@anthropic-ai/sdk/internal/parse.js +1 -1
  349. package/node_modules/@anthropic-ai/sdk/internal/parse.js.map +1 -1
  350. package/node_modules/@anthropic-ai/sdk/internal/parse.mjs +1 -1
  351. package/node_modules/@anthropic-ai/sdk/internal/parse.mjs.map +1 -1
  352. package/node_modules/@anthropic-ai/sdk/internal/uploads.js +10 -6
  353. package/node_modules/@anthropic-ai/sdk/internal/uploads.js.map +1 -1
  354. package/node_modules/@anthropic-ai/sdk/internal/uploads.mjs +10 -6
  355. package/node_modules/@anthropic-ai/sdk/internal/uploads.mjs.map +1 -1
  356. package/node_modules/@anthropic-ai/sdk/internal/utils/values.d.mts +6 -0
  357. package/node_modules/@anthropic-ai/sdk/internal/utils/values.d.mts.map +1 -1
  358. package/node_modules/@anthropic-ai/sdk/internal/utils/values.d.ts +6 -0
  359. package/node_modules/@anthropic-ai/sdk/internal/utils/values.d.ts.map +1 -1
  360. package/node_modules/@anthropic-ai/sdk/internal/utils/values.js +7 -0
  361. package/node_modules/@anthropic-ai/sdk/internal/utils/values.js.map +1 -1
  362. package/node_modules/@anthropic-ai/sdk/internal/utils/values.mjs +6 -0
  363. package/node_modules/@anthropic-ai/sdk/internal/utils/values.mjs.map +1 -1
  364. package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.d.mts.map +1 -1
  365. package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.d.ts.map +1 -1
  366. package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.js +6 -4
  367. package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.js.map +1 -1
  368. package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.mjs +4 -2
  369. package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.mjs.map +1 -1
  370. package/node_modules/@anthropic-ai/sdk/lib/MessageStream.d.mts.map +1 -1
  371. package/node_modules/@anthropic-ai/sdk/lib/MessageStream.d.ts.map +1 -1
  372. package/node_modules/@anthropic-ai/sdk/lib/MessageStream.js +3 -4
  373. package/node_modules/@anthropic-ai/sdk/lib/MessageStream.js.map +1 -1
  374. package/node_modules/@anthropic-ai/sdk/lib/MessageStream.mjs +1 -2
  375. package/node_modules/@anthropic-ai/sdk/lib/MessageStream.mjs.map +1 -1
  376. package/node_modules/@anthropic-ai/sdk/lib/credentials/credential-chain.js +1 -1
  377. package/node_modules/@anthropic-ai/sdk/lib/credentials/credential-chain.js.map +1 -1
  378. package/node_modules/@anthropic-ai/sdk/lib/credentials/credential-chain.mjs +1 -1
  379. package/node_modules/@anthropic-ai/sdk/lib/credentials/credential-chain.mjs.map +1 -1
  380. package/node_modules/@anthropic-ai/sdk/lib/credentials/identity-token.js +1 -1
  381. package/node_modules/@anthropic-ai/sdk/lib/credentials/identity-token.js.map +1 -1
  382. package/node_modules/@anthropic-ai/sdk/lib/credentials/identity-token.mjs +1 -1
  383. package/node_modules/@anthropic-ai/sdk/lib/credentials/identity-token.mjs.map +1 -1
  384. package/node_modules/@anthropic-ai/sdk/lib/credentials/types.d.mts.map +1 -1
  385. package/node_modules/@anthropic-ai/sdk/lib/credentials/types.d.ts.map +1 -1
  386. package/node_modules/@anthropic-ai/sdk/lib/credentials/types.js +2 -3
  387. package/node_modules/@anthropic-ai/sdk/lib/credentials/types.js.map +1 -1
  388. package/node_modules/@anthropic-ai/sdk/lib/credentials/types.mjs +2 -3
  389. package/node_modules/@anthropic-ai/sdk/lib/credentials/types.mjs.map +1 -1
  390. package/node_modules/@anthropic-ai/sdk/lib/credentials/user-oauth.js +1 -1
  391. package/node_modules/@anthropic-ai/sdk/lib/credentials/user-oauth.js.map +1 -1
  392. package/node_modules/@anthropic-ai/sdk/lib/credentials/user-oauth.mjs +1 -1
  393. package/node_modules/@anthropic-ai/sdk/lib/credentials/user-oauth.mjs.map +1 -1
  394. package/node_modules/@anthropic-ai/sdk/lib/middleware.d.mts.map +1 -1
  395. package/node_modules/@anthropic-ai/sdk/lib/middleware.d.ts.map +1 -1
  396. package/node_modules/@anthropic-ai/sdk/lib/middleware.js +30 -7
  397. package/node_modules/@anthropic-ai/sdk/lib/middleware.js.map +1 -1
  398. package/node_modules/@anthropic-ai/sdk/lib/middleware.mjs +30 -7
  399. package/node_modules/@anthropic-ai/sdk/lib/middleware.mjs.map +1 -1
  400. package/node_modules/@anthropic-ai/sdk/lib/sessions/accumulate.d.mts +3 -2
  401. package/node_modules/@anthropic-ai/sdk/lib/sessions/accumulate.d.mts.map +1 -1
  402. package/node_modules/@anthropic-ai/sdk/lib/sessions/accumulate.d.ts +3 -2
  403. package/node_modules/@anthropic-ai/sdk/lib/sessions/accumulate.d.ts.map +1 -1
  404. package/node_modules/@anthropic-ai/sdk/lib/sessions/accumulate.js +3 -46
  405. package/node_modules/@anthropic-ai/sdk/lib/sessions/accumulate.js.map +1 -1
  406. package/node_modules/@anthropic-ai/sdk/lib/sessions/accumulate.mjs +3 -46
  407. package/node_modules/@anthropic-ai/sdk/lib/sessions/accumulate.mjs.map +1 -1
  408. package/node_modules/@anthropic-ai/sdk/lib/standard-schema.d.mts +131 -0
  409. package/node_modules/@anthropic-ai/sdk/lib/standard-schema.d.mts.map +1 -0
  410. package/node_modules/@anthropic-ai/sdk/lib/standard-schema.d.ts +131 -0
  411. package/node_modules/@anthropic-ai/sdk/lib/standard-schema.d.ts.map +1 -0
  412. package/node_modules/@anthropic-ai/sdk/lib/standard-schema.js +45 -0
  413. package/node_modules/@anthropic-ai/sdk/lib/standard-schema.js.map +1 -0
  414. package/node_modules/@anthropic-ai/sdk/lib/standard-schema.mjs +41 -0
  415. package/node_modules/@anthropic-ai/sdk/lib/standard-schema.mjs.map +1 -0
  416. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.d.mts.map +1 -1
  417. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.d.ts.map +1 -1
  418. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.js +35 -6
  419. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.js.map +1 -1
  420. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.mjs +35 -6
  421. package/node_modules/@anthropic-ai/sdk/lib/tools/BetaToolRunner.mjs.map +1 -1
  422. package/node_modules/@anthropic-ai/sdk/package.json +4 -11
  423. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.d.mts +1 -1
  424. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.d.mts.map +1 -1
  425. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.d.ts +1 -1
  426. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.d.ts.map +1 -1
  427. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.js.map +1 -1
  428. package/node_modules/@anthropic-ai/sdk/resources/beta/agents/agents.mjs.map +1 -1
  429. package/node_modules/@anthropic-ai/sdk/resources/beta/beta.d.mts +13 -9
  430. package/node_modules/@anthropic-ai/sdk/resources/beta/beta.d.mts.map +1 -1
  431. package/node_modules/@anthropic-ai/sdk/resources/beta/beta.d.ts +13 -9
  432. package/node_modules/@anthropic-ai/sdk/resources/beta/beta.d.ts.map +1 -1
  433. package/node_modules/@anthropic-ai/sdk/resources/beta/beta.js +4 -0
  434. package/node_modules/@anthropic-ai/sdk/resources/beta/beta.js.map +1 -1
  435. package/node_modules/@anthropic-ai/sdk/resources/beta/beta.mjs +4 -0
  436. package/node_modules/@anthropic-ai/sdk/resources/beta/beta.mjs.map +1 -1
  437. package/node_modules/@anthropic-ai/sdk/resources/beta/deployment-runs.d.mts +6 -6
  438. package/node_modules/@anthropic-ai/sdk/resources/beta/deployment-runs.d.ts +6 -6
  439. package/node_modules/@anthropic-ai/sdk/resources/beta/deployments.d.mts +3 -2
  440. package/node_modules/@anthropic-ai/sdk/resources/beta/deployments.d.mts.map +1 -1
  441. package/node_modules/@anthropic-ai/sdk/resources/beta/deployments.d.ts +3 -2
  442. package/node_modules/@anthropic-ai/sdk/resources/beta/deployments.d.ts.map +1 -1
  443. package/node_modules/@anthropic-ai/sdk/resources/beta/dreams.d.mts +28 -1
  444. package/node_modules/@anthropic-ai/sdk/resources/beta/dreams.d.mts.map +1 -1
  445. package/node_modules/@anthropic-ai/sdk/resources/beta/dreams.d.ts +28 -1
  446. package/node_modules/@anthropic-ai/sdk/resources/beta/dreams.d.ts.map +1 -1
  447. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/environments.d.mts +8 -1
  448. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/environments.d.mts.map +1 -1
  449. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/environments.d.ts +8 -1
  450. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/environments.d.ts.map +1 -1
  451. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/environments.js.map +1 -1
  452. package/node_modules/@anthropic-ai/sdk/resources/beta/environments/environments.mjs.map +1 -1
  453. package/node_modules/@anthropic-ai/sdk/resources/beta/files.d.mts +25 -5
  454. package/node_modules/@anthropic-ai/sdk/resources/beta/files.d.mts.map +1 -1
  455. package/node_modules/@anthropic-ai/sdk/resources/beta/files.d.ts +25 -5
  456. package/node_modules/@anthropic-ai/sdk/resources/beta/files.d.ts.map +1 -1
  457. package/node_modules/@anthropic-ai/sdk/resources/beta/files.js +6 -6
  458. package/node_modules/@anthropic-ai/sdk/resources/beta/files.js.map +1 -1
  459. package/node_modules/@anthropic-ai/sdk/resources/beta/files.mjs +7 -7
  460. package/node_modules/@anthropic-ai/sdk/resources/beta/files.mjs.map +1 -1
  461. package/node_modules/@anthropic-ai/sdk/resources/beta/index.d.mts +5 -4
  462. package/node_modules/@anthropic-ai/sdk/resources/beta/index.d.mts.map +1 -1
  463. package/node_modules/@anthropic-ai/sdk/resources/beta/index.d.ts +5 -4
  464. package/node_modules/@anthropic-ai/sdk/resources/beta/index.d.ts.map +1 -1
  465. package/node_modules/@anthropic-ai/sdk/resources/beta/index.js +11 -9
  466. package/node_modules/@anthropic-ai/sdk/resources/beta/index.js.map +1 -1
  467. package/node_modules/@anthropic-ai/sdk/resources/beta/index.mjs +1 -0
  468. package/node_modules/@anthropic-ai/sdk/resources/beta/index.mjs.map +1 -1
  469. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memories.d.mts +12 -9
  470. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memories.d.mts.map +1 -1
  471. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memories.d.ts +12 -9
  472. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memories.d.ts.map +1 -1
  473. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-versions.d.mts +8 -5
  474. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-versions.d.mts.map +1 -1
  475. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-versions.d.ts +8 -5
  476. package/node_modules/@anthropic-ai/sdk/resources/beta/memory-stores/memory-versions.d.ts.map +1 -1
  477. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.d.mts +1 -1
  478. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.d.mts.map +1 -1
  479. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.d.ts +1 -1
  480. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.d.ts.map +1 -1
  481. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.js.map +1 -1
  482. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.mjs.map +1 -1
  483. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.d.mts +198 -29
  484. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.d.mts.map +1 -1
  485. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.d.ts +198 -29
  486. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.d.ts.map +1 -1
  487. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.js.map +1 -1
  488. package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.mjs.map +1 -1
  489. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/api-keys.d.mts +177 -0
  490. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/api-keys.d.mts.map +1 -0
  491. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/api-keys.d.ts +177 -0
  492. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/api-keys.d.ts.map +1 -0
  493. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/api-keys.js +56 -0
  494. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/api-keys.js.map +1 -0
  495. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/api-keys.mjs +52 -0
  496. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/api-keys.mjs.map +1 -0
  497. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/compliance-settings.d.mts +74 -0
  498. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/compliance-settings.d.mts.map +1 -0
  499. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/compliance-settings.d.ts +74 -0
  500. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/compliance-settings.d.ts.map +1 -0
  501. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/compliance-settings.js +52 -0
  502. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/compliance-settings.js.map +1 -0
  503. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/compliance-settings.mjs +48 -0
  504. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/compliance-settings.mjs.map +1 -0
  505. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/external-keys.d.mts +272 -0
  506. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/external-keys.d.mts.map +1 -0
  507. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/external-keys.d.ts +272 -0
  508. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/external-keys.d.ts.map +1 -0
  509. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/external-keys.js +119 -0
  510. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/external-keys.js.map +1 -0
  511. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/external-keys.mjs +115 -0
  512. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/external-keys.mjs.map +1 -0
  513. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/federation.d.mts +14 -0
  514. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/federation.d.mts.map +1 -0
  515. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/federation.d.ts +14 -0
  516. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/federation.d.ts.map +1 -0
  517. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/federation.js +21 -0
  518. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/federation.js.map +1 -0
  519. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/federation.mjs +16 -0
  520. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/federation.mjs.map +1 -0
  521. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/index.d.mts +4 -0
  522. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/index.d.mts.map +1 -0
  523. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/index.d.ts +4 -0
  524. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/index.d.ts.map +1 -0
  525. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/index.js +11 -0
  526. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/index.js.map +1 -0
  527. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/index.mjs +5 -0
  528. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/index.mjs.map +1 -0
  529. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/issuers.d.mts +353 -0
  530. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/issuers.d.mts.map +1 -0
  531. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/issuers.d.ts +353 -0
  532. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/issuers.d.ts.map +1 -0
  533. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/issuers.js +169 -0
  534. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/issuers.js.map +1 -0
  535. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/issuers.mjs +165 -0
  536. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/issuers.mjs.map +1 -0
  537. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/index.d.mts +3 -0
  538. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/index.d.mts.map +1 -0
  539. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/index.d.ts +3 -0
  540. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/index.d.ts.map +1 -0
  541. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/index.js +9 -0
  542. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/index.js.map +1 -0
  543. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/index.mjs +4 -0
  544. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/index.mjs.map +1 -0
  545. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/rules.d.mts +468 -0
  546. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/rules.d.mts.map +1 -0
  547. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/rules.d.ts +468 -0
  548. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/rules.d.ts.map +1 -0
  549. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/rules.js +198 -0
  550. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/rules.js.map +1 -0
  551. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/rules.mjs +193 -0
  552. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/rules.mjs.map +1 -0
  553. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/workspaces.d.mts +124 -0
  554. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/workspaces.d.mts.map +1 -0
  555. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/workspaces.d.ts +124 -0
  556. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/workspaces.d.ts.map +1 -0
  557. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/workspaces.js +114 -0
  558. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/workspaces.js.map +1 -0
  559. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/workspaces.mjs +110 -0
  560. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules/workspaces.mjs.map +1 -0
  561. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules.d.mts +2 -0
  562. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules.d.mts.map +1 -0
  563. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules.d.ts +2 -0
  564. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules.d.ts.map +1 -0
  565. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules.js +6 -0
  566. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules.js.map +1 -0
  567. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules.mjs +3 -0
  568. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation/rules.mjs.map +1 -0
  569. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation.d.mts +2 -0
  570. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation.d.mts.map +1 -0
  571. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation.d.ts +2 -0
  572. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation.d.ts.map +1 -0
  573. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation.js +6 -0
  574. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation.js.map +1 -0
  575. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation.mjs +3 -0
  576. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/federation.mjs.map +1 -0
  577. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/index.d.mts +11 -0
  578. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/index.d.mts.map +1 -0
  579. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/index.d.ts +11 -0
  580. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/index.d.ts.map +1 -0
  581. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/index.js +25 -0
  582. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/index.js.map +1 -0
  583. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/index.mjs +12 -0
  584. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/index.mjs.map +1 -0
  585. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/invites.d.mts +162 -0
  586. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/invites.d.mts.map +1 -0
  587. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/invites.d.ts +162 -0
  588. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/invites.d.ts.map +1 -0
  589. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/invites.js +76 -0
  590. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/invites.js.map +1 -0
  591. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/invites.mjs +72 -0
  592. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/invites.mjs.map +1 -0
  593. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/organization.d.mts +73 -0
  594. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/organization.d.mts.map +1 -0
  595. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/organization.d.ts +73 -0
  596. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/organization.d.ts.map +1 -0
  597. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/organization.js +62 -0
  598. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/organization.js.map +1 -0
  599. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/organization.mjs +57 -0
  600. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/organization.mjs.map +1 -0
  601. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/rate-limits.d.mts +77 -0
  602. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/rate-limits.d.mts.map +1 -0
  603. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/rate-limits.d.ts +77 -0
  604. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/rate-limits.d.ts.map +1 -0
  605. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/rate-limits.js +31 -0
  606. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/rate-limits.js.map +1 -0
  607. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/rate-limits.mjs +27 -0
  608. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/rate-limits.mjs.map +1 -0
  609. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/index.d.mts +3 -0
  610. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/index.d.mts.map +1 -0
  611. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/index.d.ts +3 -0
  612. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/index.d.ts.map +1 -0
  613. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/index.js +9 -0
  614. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/index.js.map +1 -0
  615. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/index.mjs +4 -0
  616. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/index.mjs.map +1 -0
  617. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/service-accounts.d.mts +258 -0
  618. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/service-accounts.d.mts.map +1 -0
  619. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/service-accounts.d.ts +258 -0
  620. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/service-accounts.d.ts.map +1 -0
  621. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/service-accounts.js +174 -0
  622. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/service-accounts.js.map +1 -0
  623. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/service-accounts.mjs +169 -0
  624. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/service-accounts.mjs.map +1 -0
  625. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/workspaces.d.mts +141 -0
  626. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/workspaces.d.mts.map +1 -0
  627. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/workspaces.d.ts +141 -0
  628. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/workspaces.d.ts.map +1 -0
  629. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/workspaces.js +125 -0
  630. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/workspaces.js.map +1 -0
  631. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/workspaces.mjs +121 -0
  632. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts/workspaces.mjs.map +1 -0
  633. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts.d.mts +2 -0
  634. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts.d.mts.map +1 -0
  635. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts.d.ts +2 -0
  636. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts.d.ts.map +1 -0
  637. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts.js +6 -0
  638. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts.js.map +1 -0
  639. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts.mjs +3 -0
  640. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/service-accounts.mjs.map +1 -0
  641. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/users.d.mts +124 -0
  642. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/users.d.mts.map +1 -0
  643. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/users.d.ts +124 -0
  644. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/users.d.ts.map +1 -0
  645. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/users.js +67 -0
  646. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/users.js.map +1 -0
  647. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/users.mjs +63 -0
  648. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/users.mjs.map +1 -0
  649. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/index.d.mts +5 -0
  650. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/index.d.mts.map +1 -0
  651. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/index.d.ts +5 -0
  652. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/index.d.ts.map +1 -0
  653. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/index.js +13 -0
  654. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/index.js.map +1 -0
  655. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/index.mjs +6 -0
  656. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/index.mjs.map +1 -0
  657. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/members.d.mts +135 -0
  658. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/members.d.mts.map +1 -0
  659. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/members.d.ts +135 -0
  660. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/members.d.ts.map +1 -0
  661. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/members.js +102 -0
  662. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/members.js.map +1 -0
  663. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/members.mjs +98 -0
  664. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/members.mjs.map +1 -0
  665. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/rate-limits.d.mts +83 -0
  666. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/rate-limits.d.mts.map +1 -0
  667. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/rate-limits.d.ts +83 -0
  668. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/rate-limits.d.ts.map +1 -0
  669. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/rate-limits.js +34 -0
  670. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/rate-limits.js.map +1 -0
  671. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/rate-limits.mjs +30 -0
  672. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/rate-limits.mjs.map +1 -0
  673. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/service-accounts.d.mts +210 -0
  674. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/service-accounts.d.mts.map +1 -0
  675. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/service-accounts.d.ts +210 -0
  676. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/service-accounts.d.ts.map +1 -0
  677. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/service-accounts.js +189 -0
  678. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/service-accounts.js.map +1 -0
  679. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/service-accounts.mjs +185 -0
  680. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/service-accounts.mjs.map +1 -0
  681. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/workspaces.d.mts +303 -0
  682. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/workspaces.d.mts.map +1 -0
  683. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/workspaces.d.ts +303 -0
  684. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/workspaces.d.ts.map +1 -0
  685. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/workspaces.js +112 -0
  686. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/workspaces.js.map +1 -0
  687. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/workspaces.mjs +107 -0
  688. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces/workspaces.mjs.map +1 -0
  689. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces.d.mts +2 -0
  690. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces.d.mts.map +1 -0
  691. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces.d.ts +2 -0
  692. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces.d.ts.map +1 -0
  693. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces.js +6 -0
  694. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces.js.map +1 -0
  695. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces.mjs +3 -0
  696. package/node_modules/@anthropic-ai/sdk/resources/beta/organization/workspaces.mjs.map +1 -0
  697. package/node_modules/@anthropic-ai/sdk/resources/beta/organization.d.mts +2 -0
  698. package/node_modules/@anthropic-ai/sdk/resources/beta/organization.d.mts.map +1 -0
  699. package/node_modules/@anthropic-ai/sdk/resources/beta/organization.d.ts +2 -0
  700. package/node_modules/@anthropic-ai/sdk/resources/beta/organization.d.ts.map +1 -0
  701. package/node_modules/@anthropic-ai/sdk/resources/beta/organization.js +6 -0
  702. package/node_modules/@anthropic-ai/sdk/resources/beta/organization.js.map +1 -0
  703. package/node_modules/@anthropic-ai/sdk/resources/beta/organization.mjs +3 -0
  704. package/node_modules/@anthropic-ai/sdk/resources/beta/organization.mjs.map +1 -0
  705. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/events.d.mts +1 -1
  706. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/events.d.ts +1 -1
  707. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/sessions.d.mts +10 -10
  708. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/sessions.d.ts +10 -10
  709. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/threads.d.mts +2 -1
  710. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/threads.d.mts.map +1 -1
  711. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/threads.d.ts +2 -1
  712. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/threads.d.ts.map +1 -1
  713. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/threads.js.map +1 -1
  714. package/node_modules/@anthropic-ai/sdk/resources/beta/sessions/threads/threads.mjs.map +1 -1
  715. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/index.d.mts +2 -2
  716. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/index.d.mts.map +1 -1
  717. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/index.d.ts +2 -2
  718. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/index.d.ts.map +1 -1
  719. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/index.js.map +1 -1
  720. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/index.mjs.map +1 -1
  721. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.d.mts +48 -120
  722. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.d.mts.map +1 -1
  723. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.d.ts +48 -120
  724. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.d.ts.map +1 -1
  725. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.js +12 -8
  726. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.js.map +1 -1
  727. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.mjs +12 -8
  728. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/skills.mjs.map +1 -1
  729. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.d.mts +35 -138
  730. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.d.mts.map +1 -1
  731. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.d.ts +35 -138
  732. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.d.ts.map +1 -1
  733. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.js +18 -18
  734. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.js.map +1 -1
  735. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.mjs +18 -18
  736. package/node_modules/@anthropic-ai/sdk/resources/beta/skills/versions.mjs.map +1 -1
  737. package/node_modules/@anthropic-ai/sdk/resources/beta/user-profiles.d.mts +21 -25
  738. package/node_modules/@anthropic-ai/sdk/resources/beta/user-profiles.d.mts.map +1 -1
  739. package/node_modules/@anthropic-ai/sdk/resources/beta/user-profiles.d.ts +21 -25
  740. package/node_modules/@anthropic-ai/sdk/resources/beta/user-profiles.d.ts.map +1 -1
  741. package/node_modules/@anthropic-ai/sdk/resources/beta/webhooks.d.mts +16 -17
  742. package/node_modules/@anthropic-ai/sdk/resources/beta/webhooks.d.mts.map +1 -1
  743. package/node_modules/@anthropic-ai/sdk/resources/beta/webhooks.d.ts +16 -17
  744. package/node_modules/@anthropic-ai/sdk/resources/beta/webhooks.d.ts.map +1 -1
  745. package/node_modules/@anthropic-ai/sdk/resources/beta/webhooks.js +21 -8
  746. package/node_modules/@anthropic-ai/sdk/resources/beta/webhooks.js.map +1 -1
  747. package/node_modules/@anthropic-ai/sdk/resources/beta/webhooks.mjs +21 -8
  748. package/node_modules/@anthropic-ai/sdk/resources/beta/webhooks.mjs.map +1 -1
  749. package/node_modules/@anthropic-ai/sdk/resources/messages/messages.d.mts +1 -3
  750. package/node_modules/@anthropic-ai/sdk/resources/messages/messages.d.mts.map +1 -1
  751. package/node_modules/@anthropic-ai/sdk/resources/messages/messages.d.ts +1 -3
  752. package/node_modules/@anthropic-ai/sdk/resources/messages/messages.d.ts.map +1 -1
  753. package/node_modules/@anthropic-ai/sdk/resources/messages/messages.js.map +1 -1
  754. package/node_modules/@anthropic-ai/sdk/resources/messages/messages.mjs.map +1 -1
  755. package/node_modules/@anthropic-ai/sdk/src/core/credentials.ts +5 -7
  756. package/node_modules/@anthropic-ai/sdk/src/core/middleware.ts +4 -3
  757. package/node_modules/@anthropic-ai/sdk/src/helpers/beta/standard-schema.ts +99 -0
  758. package/node_modules/@anthropic-ai/sdk/src/internal/detect-platform.ts +1 -1
  759. package/node_modules/@anthropic-ai/sdk/src/internal/errors.ts +3 -1
  760. package/node_modules/@anthropic-ai/sdk/src/internal/file-store.ts +11 -10
  761. package/node_modules/@anthropic-ai/sdk/src/internal/node.browser.ts +22 -0
  762. package/node_modules/@anthropic-ai/sdk/src/internal/node.ts +14 -0
  763. package/node_modules/@anthropic-ai/sdk/src/internal/parse.ts +1 -1
  764. package/node_modules/@anthropic-ai/sdk/src/internal/uploads.ts +10 -7
  765. package/node_modules/@anthropic-ai/sdk/src/internal/utils/values.ts +7 -0
  766. package/node_modules/@anthropic-ai/sdk/src/lib/BetaMessageStream.ts +5 -3
  767. package/node_modules/@anthropic-ai/sdk/src/lib/MessageStream.ts +1 -3
  768. package/node_modules/@anthropic-ai/sdk/src/lib/credentials/credential-chain.ts +1 -1
  769. package/node_modules/@anthropic-ai/sdk/src/lib/credentials/identity-token.ts +1 -1
  770. package/node_modules/@anthropic-ai/sdk/src/lib/credentials/types.ts +2 -3
  771. package/node_modules/@anthropic-ai/sdk/src/lib/credentials/user-oauth.ts +1 -1
  772. package/node_modules/@anthropic-ai/sdk/src/lib/middleware.ts +33 -9
  773. package/node_modules/@anthropic-ai/sdk/src/lib/sessions/accumulate.ts +7 -49
  774. package/node_modules/@anthropic-ai/sdk/src/lib/standard-schema.ts +209 -0
  775. package/node_modules/@anthropic-ai/sdk/src/lib/tools/BetaToolRunner.ts +38 -6
  776. package/node_modules/@anthropic-ai/sdk/src/resources/beta/agents/agents.ts +1 -0
  777. package/node_modules/@anthropic-ai/sdk/src/resources/beta/beta.ts +45 -15
  778. package/node_modules/@anthropic-ai/sdk/src/resources/beta/deployment-runs.ts +6 -6
  779. package/node_modules/@anthropic-ai/sdk/src/resources/beta/deployments.ts +3 -2
  780. package/node_modules/@anthropic-ai/sdk/src/resources/beta/dreams.ts +42 -0
  781. package/node_modules/@anthropic-ai/sdk/src/resources/beta/environments/environments.ts +8 -1
  782. package/node_modules/@anthropic-ai/sdk/src/resources/beta/files.ts +34 -11
  783. package/node_modules/@anthropic-ai/sdk/src/resources/beta/index.ts +13 -7
  784. package/node_modules/@anthropic-ai/sdk/src/resources/beta/memory-stores/memories.ts +12 -9
  785. package/node_modules/@anthropic-ai/sdk/src/resources/beta/memory-stores/memory-versions.ts +8 -5
  786. package/node_modules/@anthropic-ai/sdk/src/resources/beta/messages/index.ts +5 -1
  787. package/node_modules/@anthropic-ai/sdk/src/resources/beta/messages/messages.ts +221 -38
  788. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/api-keys.ts +231 -0
  789. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/compliance-settings.ts +96 -0
  790. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/external-keys.ts +365 -0
  791. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/federation/federation.ts +71 -0
  792. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/federation/index.ts +31 -0
  793. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/federation/issuers.ts +486 -0
  794. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/federation/rules/index.ts +23 -0
  795. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/federation/rules/rules.ts +624 -0
  796. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/federation/rules/workspaces.ts +196 -0
  797. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/federation/rules.ts +3 -0
  798. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/federation.ts +3 -0
  799. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/index.ts +92 -0
  800. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/invites.ts +207 -0
  801. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/organization.ts +269 -0
  802. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/rate-limits.ts +104 -0
  803. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/service-accounts/index.ts +21 -0
  804. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/service-accounts/service-accounts.ts +389 -0
  805. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/service-accounts/workspaces.ts +217 -0
  806. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/service-accounts.ts +3 -0
  807. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/users.ts +163 -0
  808. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/workspaces/index.ts +43 -0
  809. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/workspaces/members.ts +209 -0
  810. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/workspaces/rate-limits.ts +113 -0
  811. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/workspaces/service-accounts.ts +325 -0
  812. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/workspaces/workspaces.ts +450 -0
  813. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization/workspaces.ts +3 -0
  814. package/node_modules/@anthropic-ai/sdk/src/resources/beta/organization.ts +3 -0
  815. package/node_modules/@anthropic-ai/sdk/src/resources/beta/sessions/events.ts +1 -1
  816. package/node_modules/@anthropic-ai/sdk/src/resources/beta/sessions/sessions.ts +10 -10
  817. package/node_modules/@anthropic-ai/sdk/src/resources/beta/sessions/threads/threads.ts +2 -1
  818. package/node_modules/@anthropic-ai/sdk/src/resources/beta/skills/index.ts +7 -10
  819. package/node_modules/@anthropic-ai/sdk/src/resources/beta/skills/skills.ts +60 -150
  820. package/node_modules/@anthropic-ai/sdk/src/resources/beta/skills/versions.ts +43 -166
  821. package/node_modules/@anthropic-ai/sdk/src/resources/beta/user-profiles.ts +24 -27
  822. package/node_modules/@anthropic-ai/sdk/src/resources/beta/webhooks.ts +25 -29
  823. package/node_modules/@anthropic-ai/sdk/src/resources/messages/messages.ts +2 -8
  824. package/node_modules/@anthropic-ai/sdk/src/tools/agent-toolset/fs-util.ts +6 -5
  825. package/node_modules/@anthropic-ai/sdk/src/tools/agent-toolset/memories.ts +5 -3
  826. package/node_modules/@anthropic-ai/sdk/src/tools/agent-toolset/node.browser.ts +1 -5
  827. package/node_modules/@anthropic-ai/sdk/src/tools/agent-toolset/node.ts +122 -17
  828. package/node_modules/@anthropic-ai/sdk/src/tools/agent-toolset/skills.ts +10 -43
  829. package/node_modules/@anthropic-ai/sdk/src/version.ts +1 -1
  830. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/fs-util.d.mts.map +1 -1
  831. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/fs-util.d.ts.map +1 -1
  832. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/fs-util.js +13 -15
  833. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/fs-util.js.map +1 -1
  834. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/fs-util.mjs +3 -4
  835. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/fs-util.mjs.map +1 -1
  836. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/memories.d.mts.map +1 -1
  837. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/memories.d.ts.map +1 -1
  838. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/memories.js +6 -4
  839. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/memories.js.map +1 -1
  840. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/memories.mjs +5 -3
  841. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/memories.mjs.map +1 -1
  842. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.browser.d.mts +1 -2
  843. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.browser.d.mts.map +1 -1
  844. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.browser.d.ts +1 -2
  845. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.browser.d.ts.map +1 -1
  846. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.browser.js +0 -4
  847. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.browser.js.map +1 -1
  848. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.browser.mjs +0 -3
  849. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.browser.mjs.map +1 -1
  850. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.d.mts +11 -9
  851. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.d.mts.map +1 -1
  852. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.d.ts +11 -9
  853. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.d.ts.map +1 -1
  854. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.js +96 -8
  855. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.js.map +1 -1
  856. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.mjs +96 -7
  857. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.mjs.map +1 -1
  858. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/skills.d.mts +0 -8
  859. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/skills.d.mts.map +1 -1
  860. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/skills.d.ts +0 -8
  861. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/skills.d.ts.map +1 -1
  862. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/skills.js +20 -46
  863. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/skills.js.map +1 -1
  864. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/skills.mjs +9 -33
  865. package/node_modules/@anthropic-ai/sdk/tools/agent-toolset/skills.mjs.map +1 -1
  866. package/node_modules/@anthropic-ai/sdk/version.d.mts +1 -1
  867. package/node_modules/@anthropic-ai/sdk/version.d.ts +1 -1
  868. package/node_modules/@anthropic-ai/sdk/version.js +1 -1
  869. package/node_modules/@anthropic-ai/sdk/version.mjs +1 -1
  870. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +45 -0
  871. package/node_modules/@code-yeongyu/senpi-codemode/README.md +4 -2
  872. package/node_modules/@code-yeongyu/senpi-codemode/package.json +5 -5
  873. package/node_modules/@code-yeongyu/senpi-codemode/src/config/settings.ts +29 -0
  874. package/node_modules/@code-yeongyu/senpi-codemode/src/extension/session-manager.ts +8 -4
  875. package/node_modules/@code-yeongyu/senpi-codemode/src/index.ts +3 -1
  876. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/js/display-image.js +162 -0
  877. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/js/prelude.ts +2 -2
  878. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/js/worker-runtime.js +29 -60
  879. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/py/prelude.py +66 -1
  880. package/node_modules/@code-yeongyu/senpi-codemode/src/prompt/eval-prompt.ts +28 -94
  881. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/cell-execution.ts +7 -0
  882. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool-options.ts +6 -0
  883. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool.ts +14 -2
  884. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/types.ts +12 -7
  885. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
  886. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +58 -64
  887. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
  888. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.d.ts.map +1 -1
  889. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js +16 -6
  890. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js.map +1 -1
  891. package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.d.ts +1 -1
  892. package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.d.ts.map +1 -1
  893. package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.js +6 -1
  894. package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.js.map +1 -1
  895. package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/write.js +1 -1
  896. package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/write.js.map +1 -1
  897. package/node_modules/@earendil-works/pi-agent-core/dist/proxy.d.ts +2 -0
  898. package/node_modules/@earendil-works/pi-agent-core/dist/proxy.d.ts.map +1 -1
  899. package/node_modules/@earendil-works/pi-agent-core/dist/proxy.js +40 -10
  900. package/node_modules/@earendil-works/pi-agent-core/dist/proxy.js.map +1 -1
  901. package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts +6 -2
  902. package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts.map +1 -1
  903. package/node_modules/@earendil-works/pi-agent-core/dist/types.js.map +1 -1
  904. package/node_modules/@earendil-works/pi-agent-core/package.json +3 -3
  905. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts +1 -1
  906. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -1
  907. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +130 -15
  908. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
  909. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js +4 -4
  910. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js.map +1 -1
  911. package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js +1 -1
  912. package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js.map +1 -1
  913. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.d.ts +1 -1
  914. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.d.ts.map +1 -1
  915. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +3 -1
  916. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js.map +1 -1
  917. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -1
  918. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +30 -10
  919. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
  920. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.d.ts +3 -3
  921. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.d.ts.map +1 -1
  922. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js.map +1 -1
  923. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.d.ts +1 -1
  924. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.d.ts.map +1 -1
  925. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +8 -5
  926. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js.map +1 -1
  927. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.d.ts +2 -0
  928. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.d.ts.map +1 -1
  929. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js +6 -0
  930. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js.map +1 -1
  931. package/node_modules/@earendil-works/pi-ai/dist/api/warm-prompt-cache.js +1 -1
  932. package/node_modules/@earendil-works/pi-ai/dist/api/warm-prompt-cache.js.map +1 -1
  933. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts +30 -0
  934. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts.map +1 -1
  935. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +30 -0
  936. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
  937. package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +1 -0
  938. package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
  939. package/node_modules/@earendil-works/pi-ai/dist/index.js +1 -0
  940. package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
  941. package/node_modules/@earendil-works/pi-ai/dist/models.d.ts +3 -1
  942. package/node_modules/@earendil-works/pi-ai/dist/models.d.ts.map +1 -1
  943. package/node_modules/@earendil-works/pi-ai/dist/models.js +27 -3
  944. package/node_modules/@earendil-works/pi-ai/dist/models.js.map +1 -1
  945. package/node_modules/@earendil-works/pi-ai/dist/openai-responses-compat.d.ts +2 -0
  946. package/node_modules/@earendil-works/pi-ai/dist/openai-responses-compat.d.ts.map +1 -1
  947. package/node_modules/@earendil-works/pi-ai/dist/openai-responses-compat.js.map +1 -1
  948. package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
  949. package/node_modules/@earendil-works/pi-ai/dist/providers/data/anthropic.json +1 -1
  950. package/node_modules/@earendil-works/pi-ai/dist/providers/data/azure-openai-responses.json +1 -1
  951. package/node_modules/@earendil-works/pi-ai/dist/providers/data/baseten.json +1 -1
  952. package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-ai-gateway.json +1 -1
  953. package/node_modules/@earendil-works/pi-ai/dist/providers/data/fireworks.json +1 -1
  954. package/node_modules/@earendil-works/pi-ai/dist/providers/data/github-copilot.json +1 -1
  955. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai-codex.json +1 -1
  956. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai.json +1 -1
  957. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
  958. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
  959. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  960. package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
  961. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.d.ts +1 -1
  962. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.d.ts.map +1 -1
  963. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.js +8 -1
  964. package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.js.map +1 -1
  965. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +14 -1
  966. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
  967. package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
  968. package/node_modules/@earendil-works/pi-ai/dist/utils/drop-failed-assistant-turns.d.ts +23 -0
  969. package/node_modules/@earendil-works/pi-ai/dist/utils/drop-failed-assistant-turns.d.ts.map +1 -0
  970. package/node_modules/@earendil-works/pi-ai/dist/utils/drop-failed-assistant-turns.js +58 -0
  971. package/node_modules/@earendil-works/pi-ai/dist/utils/drop-failed-assistant-turns.js.map +1 -0
  972. package/node_modules/@earendil-works/pi-ai/dist/utils/node-http-proxy.d.ts.map +1 -1
  973. package/node_modules/@earendil-works/pi-ai/dist/utils/node-http-proxy.js +53 -12
  974. package/node_modules/@earendil-works/pi-ai/dist/utils/node-http-proxy.js.map +1 -1
  975. package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.d.ts +4 -2
  976. package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.d.ts.map +1 -1
  977. package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.js +3 -0
  978. package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.js.map +1 -1
  979. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts.map +1 -1
  980. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +3 -0
  981. package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js.map +1 -1
  982. package/node_modules/@earendil-works/pi-ai/package.json +3 -3
  983. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  984. package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
  985. package/node_modules/@earendil-works/pi-tui/README.md +1 -1
  986. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts +1 -0
  987. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts.map +1 -1
  988. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.js +36 -3
  989. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.js.map +1 -1
  990. package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +1 -1
  991. package/node_modules/@earendil-works/pi-tui/dist/index.d.ts.map +1 -1
  992. package/node_modules/@earendil-works/pi-tui/dist/index.js +1 -1
  993. package/node_modules/@earendil-works/pi-tui/dist/index.js.map +1 -1
  994. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.d.ts +2 -0
  995. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.d.ts.map +1 -1
  996. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js +106 -6
  997. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js.map +1 -1
  998. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts +6 -0
  999. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
  1000. package/node_modules/@earendil-works/pi-tui/dist/terminal.js +17 -4
  1001. package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
  1002. package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.d.ts +11 -0
  1003. package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.d.ts.map +1 -1
  1004. package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.js +57 -15
  1005. package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.js.map +1 -1
  1006. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
  1007. package/node_modules/@earendil-works/pi-tui/dist/tui.js +22 -7
  1008. package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
  1009. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  1010. package/package.json +8 -8
@@ -0,0 +1,204 @@
1
+ /**
2
+ * The manifest write side: `createTerminalManifestStore` plus `TerminalManifestWriter`,
3
+ * persisting ONLY lifecycle transitions and debounced checkpoints of the record shaped in
4
+ * `terminal-manifest-model.ts` — never per-line output and never a runtime handle.
5
+ */
6
+ import { join } from "node:path";
7
+ import { createSidecarStore } from "../../../session-sidecar-store.js";
8
+ import { parseTerminalManifest } from "./restore.js";
9
+ import { DURABLE_MONITOR_EXPIRY_MS } from "./shared.js";
10
+ import { TERMINAL_MANIFEST_CHECKPOINT_DEBOUNCE_MS, TERMINAL_MANIFEST_VERSION, } from "./terminal-manifest-model.js";
11
+ // The data model is re-exported so every importer keeps this module as the manifest's single
12
+ // entry point; nothing outside had to learn the model module's path.
13
+ export { DURABLE_MONITOR_EXPIRY_MS, TERMINAL_MANIFEST_CHECKPOINT_DEBOUNCE_MS, TERMINAL_MANIFEST_VERSION, } from "./terminal-manifest-model.js";
14
+ export function createTerminalManifestStore(session) {
15
+ return createSidecarStore({
16
+ baseDir: join(session.getSessionDir(), "extensions", "terminal"),
17
+ sessionId: session.getSessionId(),
18
+ version: TERMINAL_MANIFEST_VERSION,
19
+ tempPrefix: "terminal",
20
+ parse: parseTerminalManifest,
21
+ });
22
+ }
23
+ export class TerminalManifestWriter {
24
+ #sessionId;
25
+ #debounceMs;
26
+ #now;
27
+ #entries = new Map();
28
+ #backgrounds = new Map();
29
+ #pending = new Map();
30
+ #timer;
31
+ #tail = Promise.resolve();
32
+ constructor(options) {
33
+ this.store = createTerminalManifestStore(options.session);
34
+ this.#sessionId = options.session.getSessionId();
35
+ this.#debounceMs = options.debounceMs ?? TERMINAL_MANIFEST_CHECKPOINT_DEBOUNCE_MS;
36
+ this.#now = options.now ?? Date.now;
37
+ }
38
+ recordRegister(registration) {
39
+ this.#entries.set(registration.monitorId, this.#entryFor(registration));
40
+ return this.#persist();
41
+ }
42
+ /**
43
+ * Re-adopt an entry a restore handler just brought back to life, so THIS generation's
44
+ * in-memory map owns it again. Without this, the writer starts every generation empty and
45
+ * the next persist (a register, a background start, a checkpoint flush, recordShutdown)
46
+ * rewrites the manifest WITHOUT the restored monitors — the monitor survives one restart
47
+ * and is erased on the second.
48
+ *
49
+ * Every persisted field is preserved verbatim, notably `createdAt` and `expiresAt`: the
50
+ * durability deadline is set once at registration and a restore NEVER extends it. Only
51
+ * `suspended` is cleared, because the monitor is live again in this process.
52
+ *
53
+ * Deliberately does NOT write: re-adoption is not a state transition, it is recovery of
54
+ * state already on disk. The entry reaches the file again on the restore's own next
55
+ * persist (the file class's checkpoint, any later transition, or recordShutdown), so a
56
+ * restart costs zero extra writes and the write-on-transition invariant holds.
57
+ */
58
+ adoptRestored(entry) {
59
+ this.#entries.set(entry.monitorId, { ...entry, suspended: false });
60
+ }
61
+ /**
62
+ * Live durable-monitor count for admission control: entries that survive a restart.
63
+ * Ephemeral entries are never counted, so any number of one-shot watches can coexist
64
+ * with the durable ones.
65
+ */
66
+ durableCount() {
67
+ let count = 0;
68
+ for (const entry of this.#entries.values())
69
+ if (entry.durabilityClass !== "ephemeral")
70
+ count += 1;
71
+ return count;
72
+ }
73
+ /**
74
+ * Reconcile a registry transition snapshot (the bundle's single onChange consumer
75
+ * forwards it here): settle removes entries, pause/resume/rearm flips deliveryPaused.
76
+ * An entry missing its stable monitorId throws — never silently skipped; entries not
77
+ * registered through the tool call site are left alone (durability spec unknown).
78
+ */
79
+ observeMonitorState(snapshot) {
80
+ const live = new Map();
81
+ for (const entry of snapshot) {
82
+ if (typeof entry.monitorId !== "string" || entry.monitorId.length === 0) {
83
+ throw new Error(`terminal manifest writer saw a monitor snapshot entry without a stable monitorId (runtime id ${entry.id}); surfacing instead of silently skipping it`);
84
+ }
85
+ live.set(entry.monitorId, { paused: entry.paused, fireWindow: entry.fireWindow });
86
+ }
87
+ let changed = false;
88
+ for (const [monitorId, known] of this.#entries) {
89
+ const current = live.get(monitorId);
90
+ if (current === undefined) {
91
+ if (known.suspended)
92
+ continue; // shutdown-suspended entries are expected to be absent
93
+ this.#entries.delete(monitorId); // settle: the registry transitioned it out
94
+ changed = true;
95
+ continue;
96
+ }
97
+ // The live fire window rides every state transition — notably the auto-mute pause —
98
+ // so a restart re-binds the burned budget instead of a fresh one.
99
+ const fireWindow = current.fireWindow ?? known.fireWindow;
100
+ if (known.deliveryPaused !== current.paused || known.fireWindow.count !== fireWindow.count) {
101
+ this.#entries.set(monitorId, { ...known, deliveryPaused: current.paused, fireWindow });
102
+ changed = true;
103
+ }
104
+ }
105
+ return changed ? this.#persist() : Promise.resolve();
106
+ }
107
+ /** Debounced checkpoint persist: a burst inside the window collapses into one write. */
108
+ scheduleCheckpoint(monitorId, checkpoint) {
109
+ this.#pending.set(monitorId, checkpoint);
110
+ if (this.#timer !== undefined)
111
+ clearTimeout(this.#timer);
112
+ this.#timer = setTimeout(() => {
113
+ this.#timer = undefined;
114
+ this.#absorbPending();
115
+ void this.#persist();
116
+ }, this.#debounceMs);
117
+ }
118
+ /** Drain: apply any pending checkpoints and await every in-flight write. */
119
+ async flush() {
120
+ if (this.#timer !== undefined) {
121
+ clearTimeout(this.#timer);
122
+ this.#timer = undefined;
123
+ }
124
+ if (this.#pending.size === 0)
125
+ await this.#tail;
126
+ else {
127
+ this.#absorbPending();
128
+ await this.#persist();
129
+ }
130
+ }
131
+ /** Shutdown transition: flush checkpoints and mark every live monitor suspended in one write. */
132
+ async recordShutdown() {
133
+ if (this.#timer !== undefined) {
134
+ clearTimeout(this.#timer);
135
+ this.#timer = undefined;
136
+ }
137
+ this.#absorbPending();
138
+ for (const [monitorId, entry] of this.#entries)
139
+ this.#entries.set(monitorId, { ...entry, suspended: true });
140
+ await this.#persist();
141
+ }
142
+ recordBackgroundStart(id, command, startedAtMs) {
143
+ this.#backgrounds.set(id, { id, command, startedAtMs: startedAtMs ?? this.#now() });
144
+ return this.#persist();
145
+ }
146
+ recordBackgroundExit(id) {
147
+ return this.#backgrounds.delete(id) ? this.#persist() : Promise.resolve();
148
+ }
149
+ #absorbPending() {
150
+ for (const [monitorId, checkpoint] of this.#pending) {
151
+ const entry = this.#entries.get(monitorId);
152
+ if (entry)
153
+ this.#entries.set(monitorId, { ...entry, lastCheckpoint: checkpoint });
154
+ }
155
+ this.#pending.clear();
156
+ }
157
+ #entryFor({ monitorId, spec }) {
158
+ const createdAt = this.#now();
159
+ // A spec that omits `persistent` is ephemeral: the persisted field is a boolean the
160
+ // strict parse rejects as undefined, so coerce here rather than trusting the caller.
161
+ const persistent = spec.persistent === true;
162
+ return {
163
+ monitorId,
164
+ sessionId: this.#sessionId,
165
+ description: spec.description,
166
+ runtimeKind: spec.kind,
167
+ durabilityClass: !persistent
168
+ ? "ephemeral"
169
+ : spec.kind === "file"
170
+ ? "checkpointed-file"
171
+ : "restartable-command",
172
+ command: spec.kind === "command" ? spec.command : undefined,
173
+ path: spec.kind === "file" ? spec.path : undefined,
174
+ event: spec.kind === "file" ? spec.event : undefined,
175
+ filter: spec.kind === "command" ? spec.filter : undefined,
176
+ cwd: spec.cwd,
177
+ approvedParent: spec.kind === "file" ? spec.approvedParent : undefined,
178
+ createdAt,
179
+ // Absolute durability deadline for every restart-surviving entry, set once here and
180
+ // never extended by a restore or a rearm. An ephemeral entry dies with the process,
181
+ // so its runtime deadline stays the registry's business, not the manifest's.
182
+ expiresAt: persistent ? createdAt + DURABLE_MONITOR_EXPIRY_MS : null,
183
+ persistent,
184
+ suspended: false,
185
+ lastCheckpoint: null,
186
+ deliveryPaused: false,
187
+ fireWindow: { startMs: createdAt, count: 0 },
188
+ };
189
+ }
190
+ #persist() {
191
+ const run = this.#tail.then(() => this.store.write({
192
+ version: TERMINAL_MANIFEST_VERSION,
193
+ sessionId: this.#sessionId,
194
+ monitors: [...this.#entries.values()],
195
+ backgroundSessions: [...this.#backgrounds.values()],
196
+ updatedAt: this.#now(),
197
+ }));
198
+ this.#tail = run.then(() => undefined, (error) => {
199
+ this.persistFailure = error;
200
+ });
201
+ return this.#tail;
202
+ }
203
+ }
204
+ //# sourceMappingURL=terminal-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-manifest.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/terminal/terminal-manifest.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The manifest write side: `createTerminalManifestStore` plus `TerminalManifestWriter`,\n * persisting ONLY lifecycle transitions and debounced checkpoints of the record shaped in\n * `terminal-manifest-model.ts` — never per-line output and never a runtime handle.\n */\n\nimport { join } from \"node:path\";\nimport { createSidecarStore, type SidecarStore } from \"../../../session-sidecar-store.ts\";\nimport type { MonitorSnapshotEntry } from \"./monitor-registry.ts\";\nimport { parseTerminalManifest } from \"./restore.ts\";\nimport { DURABLE_MONITOR_EXPIRY_MS } from \"./shared.ts\";\nimport {\n\ttype ManifestBackgroundSession,\n\ttype ManifestMonitor,\n\ttype MonitorRegistration,\n\tTERMINAL_MANIFEST_CHECKPOINT_DEBOUNCE_MS,\n\tTERMINAL_MANIFEST_VERSION,\n\ttype TerminalManifest,\n\ttype TerminalManifestCheckpoint,\n\ttype TerminalManifestSession,\n} from \"./terminal-manifest-model.ts\";\n\nexport type {\n\tCommandMonitorSpec,\n\tFileMonitorSpec,\n\tManifestBackgroundSession,\n\tManifestMonitor,\n\tMonitorDurabilityClass,\n\tMonitorRegistration,\n\tMonitorRuntimeKind,\n\tMonitorSpec,\n\tTerminalManifest,\n\tTerminalManifestCheckpoint,\n\tTerminalManifestSession,\n} from \"./terminal-manifest-model.ts\";\n// The data model is re-exported so every importer keeps this module as the manifest's single\n// entry point; nothing outside had to learn the model module's path.\nexport {\n\tDURABLE_MONITOR_EXPIRY_MS,\n\tTERMINAL_MANIFEST_CHECKPOINT_DEBOUNCE_MS,\n\tTERMINAL_MANIFEST_VERSION,\n} from \"./terminal-manifest-model.ts\";\n\nexport function createTerminalManifestStore(session: TerminalManifestSession): SidecarStore<TerminalManifest> {\n\treturn createSidecarStore({\n\t\tbaseDir: join(session.getSessionDir(), \"extensions\", \"terminal\"),\n\t\tsessionId: session.getSessionId(),\n\t\tversion: TERMINAL_MANIFEST_VERSION,\n\t\ttempPrefix: \"terminal\",\n\t\tparse: parseTerminalManifest,\n\t});\n}\n\nexport class TerminalManifestWriter {\n\treadonly store: SidecarStore<TerminalManifest>;\n\treadonly #sessionId: string;\n\treadonly #debounceMs: number;\n\treadonly #now: () => number;\n\treadonly #entries = new Map<string, ManifestMonitor>();\n\treadonly #backgrounds = new Map<string, ManifestBackgroundSession>();\n\treadonly #pending = new Map<string, TerminalManifestCheckpoint>();\n\t#timer: ReturnType<typeof setTimeout> | undefined;\n\t#tail: Promise<void> = Promise.resolve();\n\t/** Last persist failure: transitions never reject, so a durability write can never fail a live tool call. */\n\tpersistFailure: unknown;\n\n\tconstructor(options: { session: TerminalManifestSession; debounceMs?: number; now?: () => number }) {\n\t\tthis.store = createTerminalManifestStore(options.session);\n\t\tthis.#sessionId = options.session.getSessionId();\n\t\tthis.#debounceMs = options.debounceMs ?? TERMINAL_MANIFEST_CHECKPOINT_DEBOUNCE_MS;\n\t\tthis.#now = options.now ?? Date.now;\n\t}\n\n\trecordRegister(registration: MonitorRegistration): Promise<void> {\n\t\tthis.#entries.set(registration.monitorId, this.#entryFor(registration));\n\t\treturn this.#persist();\n\t}\n\n\t/**\n\t * Re-adopt an entry a restore handler just brought back to life, so THIS generation's\n\t * in-memory map owns it again. Without this, the writer starts every generation empty and\n\t * the next persist (a register, a background start, a checkpoint flush, recordShutdown)\n\t * rewrites the manifest WITHOUT the restored monitors — the monitor survives one restart\n\t * and is erased on the second.\n\t *\n\t * Every persisted field is preserved verbatim, notably `createdAt` and `expiresAt`: the\n\t * durability deadline is set once at registration and a restore NEVER extends it. Only\n\t * `suspended` is cleared, because the monitor is live again in this process.\n\t *\n\t * Deliberately does NOT write: re-adoption is not a state transition, it is recovery of\n\t * state already on disk. The entry reaches the file again on the restore's own next\n\t * persist (the file class's checkpoint, any later transition, or recordShutdown), so a\n\t * restart costs zero extra writes and the write-on-transition invariant holds.\n\t */\n\tadoptRestored(entry: ManifestMonitor): void {\n\t\tthis.#entries.set(entry.monitorId, { ...entry, suspended: false });\n\t}\n\n\t/**\n\t * Live durable-monitor count for admission control: entries that survive a restart.\n\t * Ephemeral entries are never counted, so any number of one-shot watches can coexist\n\t * with the durable ones.\n\t */\n\tdurableCount(): number {\n\t\tlet count = 0;\n\t\tfor (const entry of this.#entries.values()) if (entry.durabilityClass !== \"ephemeral\") count += 1;\n\t\treturn count;\n\t}\n\n\t/**\n\t * Reconcile a registry transition snapshot (the bundle's single onChange consumer\n\t * forwards it here): settle removes entries, pause/resume/rearm flips deliveryPaused.\n\t * An entry missing its stable monitorId throws — never silently skipped; entries not\n\t * registered through the tool call site are left alone (durability spec unknown).\n\t */\n\tobserveMonitorState(snapshot: readonly MonitorSnapshotEntry[]): Promise<void> {\n\t\tconst live = new Map<string, { paused: boolean; fireWindow?: MonitorSnapshotEntry[\"fireWindow\"] }>();\n\t\tfor (const entry of snapshot) {\n\t\t\tif (typeof entry.monitorId !== \"string\" || entry.monitorId.length === 0) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`terminal manifest writer saw a monitor snapshot entry without a stable monitorId (runtime id ${entry.id}); surfacing instead of silently skipping it`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tlive.set(entry.monitorId, { paused: entry.paused, fireWindow: entry.fireWindow });\n\t\t}\n\t\tlet changed = false;\n\t\tfor (const [monitorId, known] of this.#entries) {\n\t\t\tconst current = live.get(monitorId);\n\t\t\tif (current === undefined) {\n\t\t\t\tif (known.suspended) continue; // shutdown-suspended entries are expected to be absent\n\t\t\t\tthis.#entries.delete(monitorId); // settle: the registry transitioned it out\n\t\t\t\tchanged = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t// The live fire window rides every state transition — notably the auto-mute pause —\n\t\t\t// so a restart re-binds the burned budget instead of a fresh one.\n\t\t\tconst fireWindow = current.fireWindow ?? known.fireWindow;\n\t\t\tif (known.deliveryPaused !== current.paused || known.fireWindow.count !== fireWindow.count) {\n\t\t\t\tthis.#entries.set(monitorId, { ...known, deliveryPaused: current.paused, fireWindow });\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t}\n\t\treturn changed ? this.#persist() : Promise.resolve();\n\t}\n\n\t/** Debounced checkpoint persist: a burst inside the window collapses into one write. */\n\tscheduleCheckpoint(monitorId: string, checkpoint: TerminalManifestCheckpoint): void {\n\t\tthis.#pending.set(monitorId, checkpoint);\n\t\tif (this.#timer !== undefined) clearTimeout(this.#timer);\n\t\tthis.#timer = setTimeout(() => {\n\t\t\tthis.#timer = undefined;\n\t\t\tthis.#absorbPending();\n\t\t\tvoid this.#persist();\n\t\t}, this.#debounceMs);\n\t}\n\n\t/** Drain: apply any pending checkpoints and await every in-flight write. */\n\tasync flush(): Promise<void> {\n\t\tif (this.#timer !== undefined) {\n\t\t\tclearTimeout(this.#timer);\n\t\t\tthis.#timer = undefined;\n\t\t}\n\t\tif (this.#pending.size === 0) await this.#tail;\n\t\telse {\n\t\t\tthis.#absorbPending();\n\t\t\tawait this.#persist();\n\t\t}\n\t}\n\t/** Shutdown transition: flush checkpoints and mark every live monitor suspended in one write. */\n\tasync recordShutdown(): Promise<void> {\n\t\tif (this.#timer !== undefined) {\n\t\t\tclearTimeout(this.#timer);\n\t\t\tthis.#timer = undefined;\n\t\t}\n\t\tthis.#absorbPending();\n\t\tfor (const [monitorId, entry] of this.#entries) this.#entries.set(monitorId, { ...entry, suspended: true });\n\t\tawait this.#persist();\n\t}\n\n\trecordBackgroundStart(id: string, command: string, startedAtMs?: number): Promise<void> {\n\t\tthis.#backgrounds.set(id, { id, command, startedAtMs: startedAtMs ?? this.#now() });\n\t\treturn this.#persist();\n\t}\n\n\trecordBackgroundExit(id: string): Promise<void> {\n\t\treturn this.#backgrounds.delete(id) ? this.#persist() : Promise.resolve();\n\t}\n\t#absorbPending(): void {\n\t\tfor (const [monitorId, checkpoint] of this.#pending) {\n\t\t\tconst entry = this.#entries.get(monitorId);\n\t\t\tif (entry) this.#entries.set(monitorId, { ...entry, lastCheckpoint: checkpoint });\n\t\t}\n\t\tthis.#pending.clear();\n\t}\n\n\t#entryFor({ monitorId, spec }: MonitorRegistration): ManifestMonitor {\n\t\tconst createdAt = this.#now();\n\t\t// A spec that omits `persistent` is ephemeral: the persisted field is a boolean the\n\t\t// strict parse rejects as undefined, so coerce here rather than trusting the caller.\n\t\tconst persistent = spec.persistent === true;\n\t\treturn {\n\t\t\tmonitorId,\n\t\t\tsessionId: this.#sessionId,\n\t\t\tdescription: spec.description,\n\t\t\truntimeKind: spec.kind,\n\t\t\tdurabilityClass: !persistent\n\t\t\t\t? \"ephemeral\"\n\t\t\t\t: spec.kind === \"file\"\n\t\t\t\t\t? \"checkpointed-file\"\n\t\t\t\t\t: \"restartable-command\",\n\t\t\tcommand: spec.kind === \"command\" ? spec.command : undefined,\n\t\t\tpath: spec.kind === \"file\" ? spec.path : undefined,\n\t\t\tevent: spec.kind === \"file\" ? spec.event : undefined,\n\t\t\tfilter: spec.kind === \"command\" ? spec.filter : undefined,\n\t\t\tcwd: spec.cwd,\n\t\t\tapprovedParent: spec.kind === \"file\" ? spec.approvedParent : undefined,\n\t\t\tcreatedAt,\n\t\t\t// Absolute durability deadline for every restart-surviving entry, set once here and\n\t\t\t// never extended by a restore or a rearm. An ephemeral entry dies with the process,\n\t\t\t// so its runtime deadline stays the registry's business, not the manifest's.\n\t\t\texpiresAt: persistent ? createdAt + DURABLE_MONITOR_EXPIRY_MS : null,\n\t\t\tpersistent,\n\t\t\tsuspended: false,\n\t\t\tlastCheckpoint: null,\n\t\t\tdeliveryPaused: false,\n\t\t\tfireWindow: { startMs: createdAt, count: 0 },\n\t\t};\n\t}\n\n\t#persist(): Promise<void> {\n\t\tconst run = this.#tail.then(() =>\n\t\t\tthis.store.write({\n\t\t\t\tversion: TERMINAL_MANIFEST_VERSION,\n\t\t\t\tsessionId: this.#sessionId,\n\t\t\t\tmonitors: [...this.#entries.values()],\n\t\t\t\tbackgroundSessions: [...this.#backgrounds.values()],\n\t\t\t\tupdatedAt: this.#now(),\n\t\t\t}),\n\t\t);\n\t\tthis.#tail = run.then(\n\t\t\t() => undefined,\n\t\t\t(error) => {\n\t\t\t\tthis.persistFailure = error;\n\t\t\t},\n\t\t);\n\t\treturn this.#tail;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"bash-input.d.ts","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/bash-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAe,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAc,MAAM,cAAc,CAAC;AAE1G,eAAO,MAAM,eAAe;;;;;EAa1B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAE5D,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,mBAAmB;;;;;;;;;;;yBAQ/B,MAAM,SAAS,cAAc,YAAY,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;EA2B9G"}
1
+ {"version":3,"file":"bash-input.d.ts","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/bash-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAGN,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EAEvB,MAAM,cAAc,CAAC;AAEtB,eAAO,MAAM,eAAe;;;;;EAa1B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAE5D,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,mBAAmB;;;;;;;;;;;yBAQ/B,MAAM,SAAS,cAAc,YAAY,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;EA4B9G"}
@@ -1,6 +1,6 @@
1
1
  import { Type } from "typebox";
2
2
  import { encodeKeys, TERMINAL_INPUT_TOOL } from "../shared.js";
3
- import { errorResult, textResult } from "./context.js";
3
+ import { errorResult, resolveTerminalId, textResult, } from "./context.js";
4
4
  export const bashInputSchema = Type.Object({
5
5
  bash_id: Type.String({ description: "Session id returned by a run_in_background bash call." }),
6
6
  input: Type.Optional(Type.String({ description: "Literal text to write to the session's stdin." })),
@@ -19,7 +19,8 @@ export function createBashInputTool(ctx) {
19
19
  promptSnippet: "Send stdin/keys to a live background bash session (REPL steering, ctrl+c, etc.)",
20
20
  parameters: bashInputSchema,
21
21
  async execute(_toolCallId, input, _signal) {
22
- const runtime = ctx.manager.get(input.bash_id);
22
+ const sessionId = resolveTerminalId(ctx.manager, input.bash_id);
23
+ const runtime = ctx.manager.get(sessionId);
23
24
  if (!runtime)
24
25
  return errorResult(`No terminal session found with id: ${input.bash_id}`);
25
26
  if (runtime.exited)
@@ -1 +1 @@
1
- {"version":3,"file":"bash-input.js","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/bash-input.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Static, Type } from \"typebox\";\nimport { encodeKeys, TERMINAL_INPUT_TOOL } from \"../shared.ts\";\nimport { errorResult, type TerminalToolContext, type TerminalToolResult, textResult } from \"./context.ts\";\n\nexport const bashInputSchema = Type.Object({\n\tbash_id: Type.String({ description: \"Session id returned by a run_in_background bash call.\" }),\n\tinput: Type.Optional(Type.String({ description: \"Literal text to write to the session's stdin.\" })),\n\tkeys: Type.Optional(\n\t\tType.Array(Type.String(), {\n\t\t\tdescription: \"Named keys to send, e.g. ['ctrl+c'], ['enter'], ['up']. Sent after `input` when both are given.\",\n\t\t}),\n\t),\n\tsubmit: Type.Optional(\n\t\tType.Boolean({\n\t\t\tdescription: \"Append Enter (\\\\r) after `input`. Default true when `input` is a non-empty string.\",\n\t\t}),\n\t),\n});\n\nexport type BashInputInput = Static<typeof bashInputSchema>;\n\nexport function createBashInputTool(ctx: TerminalToolContext) {\n\treturn {\n\t\tname: TERMINAL_INPUT_TOOL,\n\t\tlabel: \"bash_input\",\n\t\tdescription:\n\t\t\t\"Write stdin or named keys (ctrl+c, enter, up, ...) to a live background bash session — e.g. drive a REPL or send SIGINT. This executes arbitrary shell input and is permission-gated like bash.\",\n\t\tpromptSnippet: \"Send stdin/keys to a live background bash session (REPL steering, ctrl+c, etc.)\",\n\t\tparameters: bashInputSchema,\n\t\tasync execute(_toolCallId: string, input: BashInputInput, _signal?: AbortSignal): Promise<TerminalToolResult> {\n\t\t\tconst runtime = ctx.manager.get(input.bash_id);\n\t\t\tif (!runtime) return errorResult(`No terminal session found with id: ${input.bash_id}`);\n\t\t\tif (runtime.exited) return errorResult(`Session ${input.bash_id} is not running; cannot send input.`);\n\n\t\t\tconst notes: string[] = [];\n\t\t\tif (typeof input.input === \"string\") {\n\t\t\t\tconst submit = input.submit ?? input.input.length > 0;\n\t\t\t\tconst result = runtime.session.write(submit ? `${input.input}\\r` : input.input);\n\t\t\t\tif (!result.ok) return errorResult(`Failed to write input: ${result.note}`);\n\t\t\t\tnotes.push(submit ? \"wrote input + Enter\" : \"wrote input\");\n\t\t\t}\n\n\t\t\tif (input.keys && input.keys.length > 0) {\n\t\t\t\tconst { data, unknown } = encodeKeys(input.keys);\n\t\t\t\tif (data.length > 0) {\n\t\t\t\t\tconst result = runtime.session.write(data);\n\t\t\t\t\tif (!result.ok) return errorResult(`Failed to send keys: ${result.note}`);\n\t\t\t\t\tnotes.push(`sent ${input.keys.length - unknown.length} key(s)`);\n\t\t\t\t}\n\t\t\t\tif (unknown.length > 0) notes.push(`ignored unknown keys: ${unknown.join(\", \")}`);\n\t\t\t}\n\n\t\t\tif (notes.length === 0) return errorResult(\"Nothing to send: provide `input` and/or `keys`.\");\n\t\t\treturn textResult(`Sent to ${input.bash_id}: ${notes.join(\"; \")}.`);\n\t\t},\n\t};\n}\n"]}
1
+ {"version":3,"file":"bash-input.js","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/bash-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EACN,WAAW,EACX,iBAAiB,EAGjB,UAAU,GACV,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,uDAAuD,EAAE,CAAC;IAC9F,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC,CAAC;IACnG,IAAI,EAAE,IAAI,CAAC,QAAQ,CAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;QACzB,WAAW,EAAE,iGAAiG;KAC9G,CAAC,CACF;IACD,MAAM,EAAE,IAAI,CAAC,QAAQ,CACpB,IAAI,CAAC,OAAO,CAAC;QACZ,WAAW,EAAE,oFAAoF;KACjG,CAAC,CACF;CACD,CAAC,CAAC;AAIH,MAAM,UAAU,mBAAmB,CAAC,GAAwB;IAC3D,OAAO;QACN,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,YAAY;QACnB,WAAW,EACV,iMAAiM;QAClM,aAAa,EAAE,iFAAiF;QAChG,UAAU,EAAE,eAAe;QAC3B,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,KAAqB,EAAE,OAAqB;YAC9E,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO;gBAAE,OAAO,WAAW,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACxF,IAAI,OAAO,CAAC,MAAM;gBAAE,OAAO,WAAW,CAAC,WAAW,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;YAEtG,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAChF,IAAI,CAAC,MAAM,CAAC,EAAE;oBAAE,OAAO,WAAW,CAAC,0BAA0B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5E,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3C,IAAI,CAAC,MAAM,CAAC,EAAE;wBAAE,OAAO,WAAW,CAAC,wBAAwB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC1E,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,SAAS,CAAC,CAAC;gBACjE,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,WAAW,CAAC,iDAAiD,CAAC,CAAC;YAC9F,OAAO,UAAU,CAAC,WAAW,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrE,CAAC;KACD,CAAC;AACH,CAAC","sourcesContent":["import { type Static, Type } from \"typebox\";\nimport { encodeKeys, TERMINAL_INPUT_TOOL } from \"../shared.ts\";\nimport {\n\terrorResult,\n\tresolveTerminalId,\n\ttype TerminalToolContext,\n\ttype TerminalToolResult,\n\ttextResult,\n} from \"./context.ts\";\n\nexport const bashInputSchema = Type.Object({\n\tbash_id: Type.String({ description: \"Session id returned by a run_in_background bash call.\" }),\n\tinput: Type.Optional(Type.String({ description: \"Literal text to write to the session's stdin.\" })),\n\tkeys: Type.Optional(\n\t\tType.Array(Type.String(), {\n\t\t\tdescription: \"Named keys to send, e.g. ['ctrl+c'], ['enter'], ['up']. Sent after `input` when both are given.\",\n\t\t}),\n\t),\n\tsubmit: Type.Optional(\n\t\tType.Boolean({\n\t\t\tdescription: \"Append Enter (\\\\r) after `input`. Default true when `input` is a non-empty string.\",\n\t\t}),\n\t),\n});\n\nexport type BashInputInput = Static<typeof bashInputSchema>;\n\nexport function createBashInputTool(ctx: TerminalToolContext) {\n\treturn {\n\t\tname: TERMINAL_INPUT_TOOL,\n\t\tlabel: \"bash_input\",\n\t\tdescription:\n\t\t\t\"Write stdin or named keys (ctrl+c, enter, up, ...) to a live background bash session — e.g. drive a REPL or send SIGINT. This executes arbitrary shell input and is permission-gated like bash.\",\n\t\tpromptSnippet: \"Send stdin/keys to a live background bash session (REPL steering, ctrl+c, etc.)\",\n\t\tparameters: bashInputSchema,\n\t\tasync execute(_toolCallId: string, input: BashInputInput, _signal?: AbortSignal): Promise<TerminalToolResult> {\n\t\t\tconst sessionId = resolveTerminalId(ctx.manager, input.bash_id);\n\t\t\tconst runtime = ctx.manager.get(sessionId);\n\t\t\tif (!runtime) return errorResult(`No terminal session found with id: ${input.bash_id}`);\n\t\t\tif (runtime.exited) return errorResult(`Session ${input.bash_id} is not running; cannot send input.`);\n\n\t\t\tconst notes: string[] = [];\n\t\t\tif (typeof input.input === \"string\") {\n\t\t\t\tconst submit = input.submit ?? input.input.length > 0;\n\t\t\t\tconst result = runtime.session.write(submit ? `${input.input}\\r` : input.input);\n\t\t\t\tif (!result.ok) return errorResult(`Failed to write input: ${result.note}`);\n\t\t\t\tnotes.push(submit ? \"wrote input + Enter\" : \"wrote input\");\n\t\t\t}\n\n\t\t\tif (input.keys && input.keys.length > 0) {\n\t\t\t\tconst { data, unknown } = encodeKeys(input.keys);\n\t\t\t\tif (data.length > 0) {\n\t\t\t\t\tconst result = runtime.session.write(data);\n\t\t\t\t\tif (!result.ok) return errorResult(`Failed to send keys: ${result.note}`);\n\t\t\t\t\tnotes.push(`sent ${input.keys.length - unknown.length} key(s)`);\n\t\t\t\t}\n\t\t\t\tif (unknown.length > 0) notes.push(`ignored unknown keys: ${unknown.join(\", \")}`);\n\t\t\t}\n\n\t\t\tif (notes.length === 0) return errorResult(\"Nothing to send: provide `input` and/or `keys`.\");\n\t\t\treturn textResult(`Sent to ${input.bash_id}: ${notes.join(\"; \")}.`);\n\t\t},\n\t};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"bash-output.d.ts","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/bash-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EAAe,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAc,MAAM,cAAc,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG3E,eAAO,MAAM,gBAAgB;;;;EAQ3B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAwB9D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,mBAAmB;;;;;;;;;;yBAShC,MAAM,SAAS,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;;;EA6BxF"}
1
+ {"version":3,"file":"bash-output.d.ts","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/bash-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EAGN,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EAEvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG3E,eAAO,MAAM,gBAAgB;;;;EAQ3B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAwB9D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,mBAAmB;;;;;;;;;;yBAShC,MAAM,SAAS,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;;;EA8BxF"}
@@ -1,7 +1,7 @@
1
1
  import { Type } from "typebox";
2
2
  import { formatTerminalToolOutput } from "../output-format.js";
3
3
  import { safeRegExp, TERMINAL_OUTPUT_TOOL } from "../shared.js";
4
- import { errorResult, textResult } from "./context.js";
4
+ import { errorResult, resolveTerminalId, textResult, } from "./context.js";
5
5
  import { renderBashOutputCall, renderBashOutputResult } from "./render.js";
6
6
  import { describeExit } from "./spawn.js";
7
7
  export const bashOutputSchema = Type.Object({
@@ -41,12 +41,13 @@ export function createBashOutputTool(ctx) {
41
41
  promptSnippet: "Peek at background bash session output (filter, screen view, status); watch patterns with monitor, completion arrives as a notification",
42
42
  parameters: bashOutputSchema,
43
43
  async execute(_toolCallId, input) {
44
- const runtime = ctx.manager.get(input.bash_id);
44
+ const sessionId = resolveTerminalId(ctx.manager, input.bash_id);
45
+ const runtime = ctx.manager.get(sessionId);
45
46
  if (!runtime)
46
47
  return errorResult(`No terminal session found with id: ${input.bash_id}`);
47
- const monitorEntry = ctx.monitorRegistry?.snapshot().find((entry) => entry.id === input.bash_id);
48
+ const monitorEntry = ctx.monitorRegistry?.snapshot().find((entry) => entry.id === sessionId);
48
49
  const muted = monitorEntry?.paused === true;
49
- const mutedDropped = muted ? (ctx.monitorRegistry?.mutedDropped(input.bash_id) ?? 0) : 0;
50
+ const mutedDropped = muted ? (ctx.monitorRegistry?.mutedDropped(sessionId) ?? 0) : 0;
50
51
  let mutedNote = "";
51
52
  if (muted) {
52
53
  mutedNote =
@@ -1 +1 @@
1
- {"version":3,"file":"bash-output.js","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/bash-output.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Static, Type } from \"typebox\";\nimport { formatTerminalToolOutput } from \"../output-format.ts\";\nimport type { TerminalRuntimeSession } from \"../runtime-session.ts\";\nimport { safeRegExp, TERMINAL_OUTPUT_TOOL } from \"../shared.ts\";\nimport { errorResult, type TerminalToolContext, type TerminalToolResult, textResult } from \"./context.ts\";\nimport { renderBashOutputCall, renderBashOutputResult } from \"./render.ts\";\nimport { describeExit } from \"./spawn.ts\";\n\nexport const bashOutputSchema = Type.Object({\n\tbash_id: Type.String({ description: \"Session id returned by a run_in_background bash call.\" }),\n\tfilter: Type.Optional(Type.String({ description: \"Only return output lines matching this regex.\" })),\n\tview: Type.Optional(\n\t\tType.Union([Type.Literal(\"log\"), Type.Literal(\"screen\")], {\n\t\t\tdescription: \"'log' returns new raw output (default); 'screen' returns the rendered xterm grid.\",\n\t\t}),\n\t),\n});\n\nexport type BashOutputInput = Static<typeof bashOutputSchema>;\n\nfunction statusLine(runtime: TerminalRuntimeSession): string {\n\tif (!runtime.exited) return \"status: running\";\n\tconst status = describeExit(runtime) ?? \"exited\";\n\tconst code = runtime.exitResult?.exitCode;\n\treturn code === null || code === undefined ? `status: ${status}` : `status: ${status} exit_code: ${code}`;\n}\n\nfunction applyFilter(text: string, filter: string | undefined): string {\n\tif (!filter) return text;\n\tconst regex = safeRegExp(filter);\n\tif (regex === null) return text;\n\treturn text\n\t\t.split(\"\\n\")\n\t\t.filter((line) => regex.test(line))\n\t\t.join(\"\\n\");\n}\n\nfunction screenView(runtime: TerminalRuntimeSession): string {\n\tconst snapshot = runtime.snapshot();\n\treturn snapshot.visibleGrid.join(\"\\n\").replace(/\\s+$/, \"\");\n}\n\nexport function createBashOutputTool(ctx: TerminalToolContext) {\n\treturn {\n\t\tname: TERMINAL_OUTPUT_TOOL,\n\t\tlabel: \"bash_output\",\n\t\tdescription:\n\t\t\t\"Read output from a background bash session without blocking: new output since the last read, the status line, or a rendered full-screen snapshot via view:'screen'. Pattern watches run through monitor; completion arrives as a notification carrying the exit code and output tail.\",\n\t\tpromptSnippet:\n\t\t\t\"Peek at background bash session output (filter, screen view, status); watch patterns with monitor, completion arrives as a notification\",\n\t\tparameters: bashOutputSchema,\n\t\tasync execute(_toolCallId: string, input: BashOutputInput): Promise<TerminalToolResult> {\n\t\t\tconst runtime = ctx.manager.get(input.bash_id);\n\t\t\tif (!runtime) return errorResult(`No terminal session found with id: ${input.bash_id}`);\n\n\t\t\tconst monitorEntry = ctx.monitorRegistry?.snapshot().find((entry) => entry.id === input.bash_id);\n\t\t\tconst muted = monitorEntry?.paused === true;\n\t\t\tconst mutedDropped = muted ? (ctx.monitorRegistry?.mutedDropped(input.bash_id) ?? 0) : 0;\n\t\t\tlet mutedNote = \"\";\n\t\t\tif (muted) {\n\t\t\t\tmutedNote =\n\t\t\t\t\tmutedDropped > 0\n\t\t\t\t\t\t? `monitor muted — ${mutedDropped} line(s) dropped while muted; run monitor({ action: \"rearm\", bash_id: \"${input.bash_id}\" }) to resume.`\n\t\t\t\t\t\t: `monitor muted; run monitor({ action: \"rearm\", bash_id: \"${input.bash_id}\" }) to resume.`;\n\t\t\t}\n\t\t\tconst extra = monitorEntry ? { details: { monitorMuted: muted, mutedDropped } } : undefined;\n\t\t\tconst prefix = mutedNote.length > 0 ? `${mutedNote}\\n` : \"\";\n\n\t\t\tif (input.view === \"screen\") {\n\t\t\t\treturn textResult(`${prefix}${statusLine(runtime)}\\n${screenView(runtime)}`, extra);\n\t\t\t}\n\n\t\t\tconst delta = runtime.readDelta();\n\t\t\tconst formatted = formatTerminalToolOutput(applyFilter(delta.text, input.filter));\n\t\t\tconst dropped = delta.droppedChars > 0 ? `[${delta.droppedChars} earlier chars dropped]\\n` : \"\";\n\t\t\treturn textResult(`${prefix}${statusLine(runtime)}\\n${dropped}${formatted.text || \"(no new output)\"}`, extra);\n\t\t},\n\t\trenderCall: renderBashOutputCall,\n\t\trenderResult: renderBashOutputResult,\n\t};\n}\n"]}
1
+ {"version":3,"file":"bash-output.js","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/bash-output.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Static, Type } from \"typebox\";\nimport { formatTerminalToolOutput } from \"../output-format.ts\";\nimport type { TerminalRuntimeSession } from \"../runtime-session.ts\";\nimport { safeRegExp, TERMINAL_OUTPUT_TOOL } from \"../shared.ts\";\nimport {\n\terrorResult,\n\tresolveTerminalId,\n\ttype TerminalToolContext,\n\ttype TerminalToolResult,\n\ttextResult,\n} from \"./context.ts\";\nimport { renderBashOutputCall, renderBashOutputResult } from \"./render.ts\";\nimport { describeExit } from \"./spawn.ts\";\n\nexport const bashOutputSchema = Type.Object({\n\tbash_id: Type.String({ description: \"Session id returned by a run_in_background bash call.\" }),\n\tfilter: Type.Optional(Type.String({ description: \"Only return output lines matching this regex.\" })),\n\tview: Type.Optional(\n\t\tType.Union([Type.Literal(\"log\"), Type.Literal(\"screen\")], {\n\t\t\tdescription: \"'log' returns new raw output (default); 'screen' returns the rendered xterm grid.\",\n\t\t}),\n\t),\n});\n\nexport type BashOutputInput = Static<typeof bashOutputSchema>;\n\nfunction statusLine(runtime: TerminalRuntimeSession): string {\n\tif (!runtime.exited) return \"status: running\";\n\tconst status = describeExit(runtime) ?? \"exited\";\n\tconst code = runtime.exitResult?.exitCode;\n\treturn code === null || code === undefined ? `status: ${status}` : `status: ${status} exit_code: ${code}`;\n}\n\nfunction applyFilter(text: string, filter: string | undefined): string {\n\tif (!filter) return text;\n\tconst regex = safeRegExp(filter);\n\tif (regex === null) return text;\n\treturn text\n\t\t.split(\"\\n\")\n\t\t.filter((line) => regex.test(line))\n\t\t.join(\"\\n\");\n}\n\nfunction screenView(runtime: TerminalRuntimeSession): string {\n\tconst snapshot = runtime.snapshot();\n\treturn snapshot.visibleGrid.join(\"\\n\").replace(/\\s+$/, \"\");\n}\n\nexport function createBashOutputTool(ctx: TerminalToolContext) {\n\treturn {\n\t\tname: TERMINAL_OUTPUT_TOOL,\n\t\tlabel: \"bash_output\",\n\t\tdescription:\n\t\t\t\"Read output from a background bash session without blocking: new output since the last read, the status line, or a rendered full-screen snapshot via view:'screen'. Pattern watches run through monitor; completion arrives as a notification carrying the exit code and output tail.\",\n\t\tpromptSnippet:\n\t\t\t\"Peek at background bash session output (filter, screen view, status); watch patterns with monitor, completion arrives as a notification\",\n\t\tparameters: bashOutputSchema,\n\t\tasync execute(_toolCallId: string, input: BashOutputInput): Promise<TerminalToolResult> {\n\t\t\tconst sessionId = resolveTerminalId(ctx.manager, input.bash_id);\n\t\t\tconst runtime = ctx.manager.get(sessionId);\n\t\t\tif (!runtime) return errorResult(`No terminal session found with id: ${input.bash_id}`);\n\n\t\t\tconst monitorEntry = ctx.monitorRegistry?.snapshot().find((entry) => entry.id === sessionId);\n\t\t\tconst muted = monitorEntry?.paused === true;\n\t\t\tconst mutedDropped = muted ? (ctx.monitorRegistry?.mutedDropped(sessionId) ?? 0) : 0;\n\t\t\tlet mutedNote = \"\";\n\t\t\tif (muted) {\n\t\t\t\tmutedNote =\n\t\t\t\t\tmutedDropped > 0\n\t\t\t\t\t\t? `monitor muted — ${mutedDropped} line(s) dropped while muted; run monitor({ action: \"rearm\", bash_id: \"${input.bash_id}\" }) to resume.`\n\t\t\t\t\t\t: `monitor muted; run monitor({ action: \"rearm\", bash_id: \"${input.bash_id}\" }) to resume.`;\n\t\t\t}\n\t\t\tconst extra = monitorEntry ? { details: { monitorMuted: muted, mutedDropped } } : undefined;\n\t\t\tconst prefix = mutedNote.length > 0 ? `${mutedNote}\\n` : \"\";\n\n\t\t\tif (input.view === \"screen\") {\n\t\t\t\treturn textResult(`${prefix}${statusLine(runtime)}\\n${screenView(runtime)}`, extra);\n\t\t\t}\n\n\t\t\tconst delta = runtime.readDelta();\n\t\t\tconst formatted = formatTerminalToolOutput(applyFilter(delta.text, input.filter));\n\t\t\tconst dropped = delta.droppedChars > 0 ? `[${delta.droppedChars} earlier chars dropped]\\n` : \"\";\n\t\t\treturn textResult(`${prefix}${statusLine(runtime)}\\n${dropped}${formatted.text || \"(no new output)\"}`, extra);\n\t\t},\n\t\trenderCall: renderBashOutputCall,\n\t\trenderResult: renderBashOutputResult,\n\t};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"bash-resize.d.ts","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/bash-resize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAe,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAc,MAAM,cAAc,CAAC;AAE1G,eAAO,MAAM,gBAAgB;;;;EAI3B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM9D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,mBAAmB;;;;;;;;;;yBAQhC,MAAM,SAAS,eAAe,YAAY,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;EAe/G"}
1
+ {"version":3,"file":"bash-resize.d.ts","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/bash-resize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAGN,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EAEvB,MAAM,cAAc,CAAC;AAEtB,eAAO,MAAM,gBAAgB;;;;EAI3B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM9D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,mBAAmB;;;;;;;;;;yBAQhC,MAAM,SAAS,eAAe,YAAY,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;EAgB/G"}
@@ -1,6 +1,6 @@
1
1
  import { Type } from "typebox";
2
2
  import { TERMINAL_RESIZE_TOOL } from "../shared.js";
3
- import { errorResult, textResult } from "./context.js";
3
+ import { errorResult, resolveTerminalId, textResult, } from "./context.js";
4
4
  export const bashResizeSchema = Type.Object({
5
5
  bash_id: Type.String({ description: "Session id returned by a run_in_background bash call." }),
6
6
  cols: Type.Number({ description: "New PTY width in columns." }),
@@ -17,7 +17,8 @@ export function createBashResizeTool(ctx) {
17
17
  promptSnippet: "Resize a background bash session's PTY so TUIs reflow",
18
18
  parameters: bashResizeSchema,
19
19
  async execute(_toolCallId, input, _signal) {
20
- const runtime = ctx.manager.get(input.bash_id);
20
+ const sessionId = resolveTerminalId(ctx.manager, input.bash_id);
21
+ const runtime = ctx.manager.get(sessionId);
21
22
  if (!runtime)
22
23
  return errorResult(`No terminal session found with id: ${input.bash_id}`);
23
24
  if (runtime.exited)
@@ -1 +1 @@
1
- {"version":3,"file":"bash-resize.js","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/bash-resize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,WAAW,EAAqD,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1G,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,uDAAuD,EAAE,CAAC;IAC9F,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAC/D,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;CAC7D,CAAC,CAAC;AAIH,SAAS,KAAK,CAAC,KAAa;IAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAwB;IAC5D,OAAO;QACN,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,aAAa;QACpB,WAAW,EACV,mIAAmI;QACpI,aAAa,EAAE,uDAAuD;QACtE,UAAU,EAAE,gBAAgB;QAC5B,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,KAAsB,EAAE,OAAqB;YAC/E,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO;gBAAE,OAAO,WAAW,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACxF,IAAI,OAAO,CAAC,MAAM;gBAAE,OAAO,WAAW,CAAC,WAAW,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;YAClG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,OAAO,WAAW,CAAC,6CAA6C,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAClD,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,OAAO,UAAU,CAAC,mBAAmB,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACtF,OAAO,UAAU,CAAC,WAAW,KAAK,CAAC,OAAO,OAAO,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;QACnE,CAAC;KACD,CAAC;AACH,CAAC","sourcesContent":["import { type Static, Type } from \"typebox\";\nimport { TERMINAL_RESIZE_TOOL } from \"../shared.ts\";\nimport { errorResult, type TerminalToolContext, type TerminalToolResult, textResult } from \"./context.ts\";\n\nexport const bashResizeSchema = Type.Object({\n\tbash_id: Type.String({ description: \"Session id returned by a run_in_background bash call.\" }),\n\tcols: Type.Number({ description: \"New PTY width in columns.\" }),\n\trows: Type.Number({ description: \"New PTY height in rows.\" }),\n});\n\nexport type BashResizeInput = Static<typeof bashResizeSchema>;\n\nfunction valid(value: number): boolean {\n\treturn Number.isFinite(value) && value >= 1;\n}\n\nexport function createBashResizeTool(ctx: TerminalToolContext) {\n\treturn {\n\t\tname: TERMINAL_RESIZE_TOOL,\n\t\tlabel: \"bash_resize\",\n\t\tdescription:\n\t\t\t\"Resize a live background bash session's PTY (cols x rows) so full-screen TUIs reflow. No-ops with a note under the pipe fallback.\",\n\t\tpromptSnippet: \"Resize a background bash session's PTY so TUIs reflow\",\n\t\tparameters: bashResizeSchema,\n\t\tasync execute(_toolCallId: string, input: BashResizeInput, _signal?: AbortSignal): Promise<TerminalToolResult> {\n\t\t\tconst runtime = ctx.manager.get(input.bash_id);\n\t\t\tif (!runtime) return errorResult(`No terminal session found with id: ${input.bash_id}`);\n\t\t\tif (runtime.exited) return errorResult(`Session ${input.bash_id} is not running; cannot resize.`);\n\t\t\tif (!valid(input.cols) || !valid(input.rows)) {\n\t\t\t\treturn errorResult(\"cols and rows must be finite integers >= 1.\");\n\t\t\t}\n\t\t\tconst cols = Math.trunc(input.cols);\n\t\t\tconst rows = Math.trunc(input.rows);\n\t\t\tconst result = runtime.session.resize(cols, rows);\n\t\t\truntime.resizeScreen(cols, rows);\n\t\t\tif (!result.ok) return textResult(`Resize note for ${input.bash_id}: ${result.note}`);\n\t\t\treturn textResult(`Resized ${input.bash_id} to ${cols}x${rows}.`);\n\t\t},\n\t};\n}\n"]}
1
+ {"version":3,"file":"bash-resize.js","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/bash-resize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACN,WAAW,EACX,iBAAiB,EAGjB,UAAU,GACV,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,uDAAuD,EAAE,CAAC;IAC9F,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAC/D,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;CAC7D,CAAC,CAAC;AAIH,SAAS,KAAK,CAAC,KAAa;IAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAwB;IAC5D,OAAO;QACN,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,aAAa;QACpB,WAAW,EACV,mIAAmI;QACpI,aAAa,EAAE,uDAAuD;QACtE,UAAU,EAAE,gBAAgB;QAC5B,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,KAAsB,EAAE,OAAqB;YAC/E,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO;gBAAE,OAAO,WAAW,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACxF,IAAI,OAAO,CAAC,MAAM;gBAAE,OAAO,WAAW,CAAC,WAAW,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;YAClG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,OAAO,WAAW,CAAC,6CAA6C,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAClD,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,OAAO,UAAU,CAAC,mBAAmB,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACtF,OAAO,UAAU,CAAC,WAAW,KAAK,CAAC,OAAO,OAAO,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;QACnE,CAAC;KACD,CAAC;AACH,CAAC","sourcesContent":["import { type Static, Type } from \"typebox\";\nimport { TERMINAL_RESIZE_TOOL } from \"../shared.ts\";\nimport {\n\terrorResult,\n\tresolveTerminalId,\n\ttype TerminalToolContext,\n\ttype TerminalToolResult,\n\ttextResult,\n} from \"./context.ts\";\n\nexport const bashResizeSchema = Type.Object({\n\tbash_id: Type.String({ description: \"Session id returned by a run_in_background bash call.\" }),\n\tcols: Type.Number({ description: \"New PTY width in columns.\" }),\n\trows: Type.Number({ description: \"New PTY height in rows.\" }),\n});\n\nexport type BashResizeInput = Static<typeof bashResizeSchema>;\n\nfunction valid(value: number): boolean {\n\treturn Number.isFinite(value) && value >= 1;\n}\n\nexport function createBashResizeTool(ctx: TerminalToolContext) {\n\treturn {\n\t\tname: TERMINAL_RESIZE_TOOL,\n\t\tlabel: \"bash_resize\",\n\t\tdescription:\n\t\t\t\"Resize a live background bash session's PTY (cols x rows) so full-screen TUIs reflow. No-ops with a note under the pipe fallback.\",\n\t\tpromptSnippet: \"Resize a background bash session's PTY so TUIs reflow\",\n\t\tparameters: bashResizeSchema,\n\t\tasync execute(_toolCallId: string, input: BashResizeInput, _signal?: AbortSignal): Promise<TerminalToolResult> {\n\t\t\tconst sessionId = resolveTerminalId(ctx.manager, input.bash_id);\n\t\t\tconst runtime = ctx.manager.get(sessionId);\n\t\t\tif (!runtime) return errorResult(`No terminal session found with id: ${input.bash_id}`);\n\t\t\tif (runtime.exited) return errorResult(`Session ${input.bash_id} is not running; cannot resize.`);\n\t\t\tif (!valid(input.cols) || !valid(input.rows)) {\n\t\t\t\treturn errorResult(\"cols and rows must be finite integers >= 1.\");\n\t\t\t}\n\t\t\tconst cols = Math.trunc(input.cols);\n\t\t\tconst rows = Math.trunc(input.rows);\n\t\t\tconst result = runtime.session.resize(cols, rows);\n\t\t\truntime.resizeScreen(cols, rows);\n\t\t\tif (!result.ok) return textResult(`Resize note for ${input.bash_id}: ${result.note}`);\n\t\t\treturn textResult(`Resized ${input.bash_id} to ${cols}x${rows}.`);\n\t\t},\n\t};\n}\n"]}
@@ -41,6 +41,14 @@ export interface TerminalToolResult {
41
41
  details: Record<string, unknown> | undefined;
42
42
  isError?: boolean;
43
43
  }
44
+ /**
45
+ * Resolve a stable "mon_" monitor id to its current runtime id (bash_N/watch_N), passing a
46
+ * runtime id through unchanged. Companion tools may run against a manager that does not
47
+ * implement `resolveId` (narrower embedder/test managers expose `get` only); such managers
48
+ * have never seen a `mon_` id, so falling back to the id verbatim preserves the lookup they
49
+ * already supported. This is the single choke point for that rule — do not inline it.
50
+ */
51
+ export declare function resolveTerminalId(manager: Pick<TerminalManager, "get"> & Partial<Pick<TerminalManager, "resolveId">>, id: string): string;
44
52
  export declare function textResult(text: string, extra?: {
45
53
  details?: Record<string, unknown>;
46
54
  isError?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,iEAAiE;AACjE,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8FAA8F;IAC9F,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,sFAAsF;IACtF,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,UAAU,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,OAAO,mBAAmB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC5F,sEAAsE;IACtE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5F,wFAAwF;IACxF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAClF,sFAAsF;IACtF,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C,kEAAkE;IAClE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxD,4FAA4F;IAC5F,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,6EAA6E;IAC7E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;CAC9D;AAED,gEAAgE;AAChE,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,UAAU,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9D,kBAAkB,CAEpB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAE5D"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,iEAAiE;AACjE,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8FAA8F;IAC9F,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,sFAAsF;IACtF,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,UAAU,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,OAAO,mBAAmB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC5F,sEAAsE;IACtE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5F,wFAAwF;IACxF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAClF,sFAAsF;IACtF,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C,kEAAkE;IAClE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxD,4FAA4F;IAC5F,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,6EAA6E;IAC7E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;CAC9D;AAED,gEAAgE;AAChE,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,EACnF,EAAE,EAAE,MAAM,GACR,MAAM,CAER;AAED,wBAAgB,UAAU,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9D,kBAAkB,CAEpB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAE5D"}
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Resolve a stable "mon_" monitor id to its current runtime id (bash_N/watch_N), passing a
3
+ * runtime id through unchanged. Companion tools may run against a manager that does not
4
+ * implement `resolveId` (narrower embedder/test managers expose `get` only); such managers
5
+ * have never seen a `mon_` id, so falling back to the id verbatim preserves the lookup they
6
+ * already supported. This is the single choke point for that rule — do not inline it.
7
+ */
8
+ export function resolveTerminalId(manager, id) {
9
+ return manager.resolveId?.(id) ?? id;
10
+ }
1
11
  export function textResult(text, extra) {
2
12
  return { content: [{ type: "text", text }], details: extra?.details, isError: extra?.isError };
3
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/context.ts"],"names":[],"mappings":"AA2CA,MAAM,UAAU,UAAU,CACzB,IAAY,EACZ,KAAgE;IAEhE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACjF,CAAC","sourcesContent":["import type { TerminalManager } from \"../manager.ts\";\nimport type { MonitorEvent, MonitorRegistry } from \"../monitor-registry.ts\";\nimport type { TerminalRuntimeSession } from \"../runtime-session.ts\";\nimport type { TimeoutAction } from \"../settings.ts\";\n\n/** Shared dependencies handed to every terminal tool factory. */\nexport interface TerminalToolContext {\n\treadonly manager: TerminalManager;\n\treadonly cwd: string;\n\t/** Explicit shell path from settings (settings-manager `shellPath`), if any. */\n\treadonly shellPath?: string;\n\treadonly defaultCols: number;\n\treadonly defaultRows: number;\n\t/** Configured foreground deadline behavior; omitted direct contexts default to background. */\n\treadonly timeoutAction?: TimeoutAction;\n\t/** Resolve the environment for spawned sessions (mirrors core bash `getShellEnv`). */\n\treadonly getEnv: () => NodeJS.ProcessEnv;\n\t/**\n\t * Current extension session context (set on session_start/model_select), used to\n\t * expose PI_* session metadata to spawned commands like the core bash tool does.\n\t */\n\treadonly getSessionContext?: () => import(\"../../../types.ts\").ExtensionContext | undefined;\n\t/** Registers a session when it transitions to background liveness. */\n\treadonly onBackgroundStart?: (id: string, description: string, startedAtMs: number) => void;\n\t/** Notified when a background session exits, so the notify layer can wake the agent. */\n\treadonly onBackgroundExit?: (id: string, runtime: TerminalRuntimeSession) => void;\n\t/** Session-scoped monitor state, sharing the terminal manager's bash-id namespace. */\n\treadonly monitorRegistry?: MonitorRegistry;\n\t/** Receives filtered monitor line and terminal-summary events. */\n\treadonly onMonitorEvent?: (event: MonitorEvent) => void;\n\t/** Resets session-global wake-budget delivery for a fresh or explicitly rearmed monitor. */\n\treadonly onMonitorRearmed?: (id: string) => void;\n\t/** Clears notifier bookkeeping when multiple paused monitors are resumed. */\n\treadonly onMonitorsResumed?: (ids: readonly string[]) => void;\n}\n\n/** Minimal tool-result shape returned by the terminal tools. */\nexport interface TerminalToolResult {\n\tcontent: Array<{ type: \"text\"; text: string }>;\n\tdetails: Record<string, unknown> | undefined;\n\tisError?: boolean;\n}\n\nexport function textResult(\n\ttext: string,\n\textra?: { details?: Record<string, unknown>; isError?: boolean },\n): TerminalToolResult {\n\treturn { content: [{ type: \"text\", text }], details: extra?.details, isError: extra?.isError };\n}\n\nexport function errorResult(text: string): TerminalToolResult {\n\treturn { content: [{ type: \"text\", text }], details: undefined, isError: true };\n}\n"]}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/context.ts"],"names":[],"mappings":"AA2CA;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAChC,OAAmF,EACnF,EAAU;IAEV,OAAO,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,UAAU,CACzB,IAAY,EACZ,KAAgE;IAEhE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACjF,CAAC","sourcesContent":["import type { TerminalManager } from \"../manager.ts\";\nimport type { MonitorEvent, MonitorRegistry } from \"../monitor-registry.ts\";\nimport type { TerminalRuntimeSession } from \"../runtime-session.ts\";\nimport type { TimeoutAction } from \"../settings.ts\";\n\n/** Shared dependencies handed to every terminal tool factory. */\nexport interface TerminalToolContext {\n\treadonly manager: TerminalManager;\n\treadonly cwd: string;\n\t/** Explicit shell path from settings (settings-manager `shellPath`), if any. */\n\treadonly shellPath?: string;\n\treadonly defaultCols: number;\n\treadonly defaultRows: number;\n\t/** Configured foreground deadline behavior; omitted direct contexts default to background. */\n\treadonly timeoutAction?: TimeoutAction;\n\t/** Resolve the environment for spawned sessions (mirrors core bash `getShellEnv`). */\n\treadonly getEnv: () => NodeJS.ProcessEnv;\n\t/**\n\t * Current extension session context (set on session_start/model_select), used to\n\t * expose PI_* session metadata to spawned commands like the core bash tool does.\n\t */\n\treadonly getSessionContext?: () => import(\"../../../types.ts\").ExtensionContext | undefined;\n\t/** Registers a session when it transitions to background liveness. */\n\treadonly onBackgroundStart?: (id: string, description: string, startedAtMs: number) => void;\n\t/** Notified when a background session exits, so the notify layer can wake the agent. */\n\treadonly onBackgroundExit?: (id: string, runtime: TerminalRuntimeSession) => void;\n\t/** Session-scoped monitor state, sharing the terminal manager's bash-id namespace. */\n\treadonly monitorRegistry?: MonitorRegistry;\n\t/** Receives filtered monitor line and terminal-summary events. */\n\treadonly onMonitorEvent?: (event: MonitorEvent) => void;\n\t/** Resets session-global wake-budget delivery for a fresh or explicitly rearmed monitor. */\n\treadonly onMonitorRearmed?: (id: string) => void;\n\t/** Clears notifier bookkeeping when multiple paused monitors are resumed. */\n\treadonly onMonitorsResumed?: (ids: readonly string[]) => void;\n}\n\n/** Minimal tool-result shape returned by the terminal tools. */\nexport interface TerminalToolResult {\n\tcontent: Array<{ type: \"text\"; text: string }>;\n\tdetails: Record<string, unknown> | undefined;\n\tisError?: boolean;\n}\n\n/**\n * Resolve a stable \"mon_\" monitor id to its current runtime id (bash_N/watch_N), passing a\n * runtime id through unchanged. Companion tools may run against a manager that does not\n * implement `resolveId` (narrower embedder/test managers expose `get` only); such managers\n * have never seen a `mon_` id, so falling back to the id verbatim preserves the lookup they\n * already supported. This is the single choke point for that rule — do not inline it.\n */\nexport function resolveTerminalId(\n\tmanager: Pick<TerminalManager, \"get\"> & Partial<Pick<TerminalManager, \"resolveId\">>,\n\tid: string,\n): string {\n\treturn manager.resolveId?.(id) ?? id;\n}\n\nexport function textResult(\n\ttext: string,\n\textra?: { details?: Record<string, unknown>; isError?: boolean },\n): TerminalToolResult {\n\treturn { content: [{ type: \"text\", text }], details: extra?.details, isError: extra?.isError };\n}\n\nexport function errorResult(text: string): TerminalToolResult {\n\treturn { content: [{ type: \"text\", text }], details: undefined, isError: true };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"kill-bash.d.ts","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/kill-bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAe,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAc,MAAM,cAAc,CAAC;AAE1G,eAAO,MAAM,cAAc;;;EAGzB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB;;;;;;;;;yBAO9B,MAAM,SAAS,aAAa,YAAY,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;EAe7G"}
1
+ {"version":3,"file":"kill-bash.d.ts","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/kill-bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAGN,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EAEvB,MAAM,cAAc,CAAC;AAEtB,eAAO,MAAM,cAAc;;;EAGzB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB;;;;;;;;;yBAO9B,MAAM,SAAS,aAAa,YAAY,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;EAgB7G"}
@@ -1,6 +1,6 @@
1
1
  import { Type } from "typebox";
2
2
  import { TERMINAL_KILL_TOOL } from "../shared.js";
3
- import { errorResult, textResult } from "./context.js";
3
+ import { errorResult, resolveTerminalId, textResult, } from "./context.js";
4
4
  export const killBashSchema = Type.Object({
5
5
  bash_id: Type.Optional(Type.String({ description: "Session id to tree-kill." })),
6
6
  all: Type.Optional(Type.Boolean({ description: "Tree-kill every live background session." })),
@@ -21,12 +21,13 @@ export function createKillBashTool(ctx) {
21
21
  }
22
22
  if (!input.bash_id)
23
23
  return errorResult("Provide `bash_id` or set `all:true`.");
24
- if (await ctx.monitorRegistry?.stopFile(input.bash_id))
24
+ const sessionId = resolveTerminalId(ctx.manager, input.bash_id);
25
+ if (await ctx.monitorRegistry?.stopFile(sessionId))
25
26
  return textResult(`Killed ${input.bash_id}.`);
26
- const runtime = ctx.manager.get(input.bash_id);
27
+ const runtime = ctx.manager.get(sessionId);
27
28
  if (!runtime)
28
29
  return errorResult(`No terminal session found with id: ${input.bash_id}`);
29
- await ctx.manager.stop(input.bash_id);
30
+ await ctx.manager.stop(sessionId);
30
31
  return textResult(`Killed ${input.bash_id}.`);
31
32
  },
32
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"kill-bash.js","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/kill-bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,EAAqD,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1G,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAChF,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,0CAA0C,EAAE,CAAC,CAAC;CAC7F,CAAC,CAAC;AAIH,MAAM,UAAU,kBAAkB,CAAC,GAAwB;IAC1D,OAAO;QACN,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,oFAAoF;QACjG,aAAa,EAAE,8DAA8D;QAC7E,UAAU,EAAE,cAAc;QAC1B,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,KAAoB,EAAE,OAAqB;YAC7E,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBACf,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;gBACvC,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,CAAC,eAAe,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;gBACnE,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC7B,OAAO,UAAU,CAAC,UAAU,aAAa,GAAG,SAAS,cAAc,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,OAAO,WAAW,CAAC,sCAAsC,CAAC,CAAC;YAC/E,IAAI,MAAM,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;gBAAE,OAAO,UAAU,CAAC,UAAU,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;YACtG,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO;gBAAE,OAAO,WAAW,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACxF,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,UAAU,CAAC,UAAU,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QAC/C,CAAC;KACD,CAAC;AACH,CAAC","sourcesContent":["import { type Static, Type } from \"typebox\";\nimport { TERMINAL_KILL_TOOL } from \"../shared.ts\";\nimport { errorResult, type TerminalToolContext, type TerminalToolResult, textResult } from \"./context.ts\";\n\nexport const killBashSchema = Type.Object({\n\tbash_id: Type.Optional(Type.String({ description: \"Session id to tree-kill.\" })),\n\tall: Type.Optional(Type.Boolean({ description: \"Tree-kill every live background session.\" })),\n});\n\nexport type KillBashInput = Static<typeof killBashSchema>;\n\nexport function createKillBashTool(ctx: TerminalToolContext) {\n\treturn {\n\t\tname: TERMINAL_KILL_TOOL,\n\t\tlabel: \"kill_bash\",\n\t\tdescription: \"Terminate a background bash session (or all of them) and its process tree cleanly.\",\n\t\tpromptSnippet: \"Tree-kill a background bash session (or all) with no orphans\",\n\t\tparameters: killBashSchema,\n\t\tasync execute(_toolCallId: string, input: KillBashInput, _signal?: AbortSignal): Promise<TerminalToolResult> {\n\t\t\tif (input.all) {\n\t\t\t\tconst terminalCount = ctx.manager.size;\n\t\t\t\tconst fileCount = (await ctx.monitorRegistry?.stopAllFiles()) ?? 0;\n\t\t\t\tawait ctx.manager.teardown();\n\t\t\t\treturn textResult(`Killed ${terminalCount + fileCount} session(s).`);\n\t\t\t}\n\t\t\tif (!input.bash_id) return errorResult(\"Provide `bash_id` or set `all:true`.\");\n\t\t\tif (await ctx.monitorRegistry?.stopFile(input.bash_id)) return textResult(`Killed ${input.bash_id}.`);\n\t\t\tconst runtime = ctx.manager.get(input.bash_id);\n\t\t\tif (!runtime) return errorResult(`No terminal session found with id: ${input.bash_id}`);\n\t\t\tawait ctx.manager.stop(input.bash_id);\n\t\t\treturn textResult(`Killed ${input.bash_id}.`);\n\t\t},\n\t};\n}\n"]}
1
+ {"version":3,"file":"kill-bash.js","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/kill-bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACN,WAAW,EACX,iBAAiB,EAGjB,UAAU,GACV,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAChF,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,0CAA0C,EAAE,CAAC,CAAC;CAC7F,CAAC,CAAC;AAIH,MAAM,UAAU,kBAAkB,CAAC,GAAwB;IAC1D,OAAO;QACN,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,oFAAoF;QACjG,aAAa,EAAE,8DAA8D;QAC7E,UAAU,EAAE,cAAc;QAC1B,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,KAAoB,EAAE,OAAqB;YAC7E,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBACf,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;gBACvC,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,CAAC,eAAe,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;gBACnE,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC7B,OAAO,UAAU,CAAC,UAAU,aAAa,GAAG,SAAS,cAAc,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,OAAO,WAAW,CAAC,sCAAsC,CAAC,CAAC;YAC/E,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAChE,IAAI,MAAM,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO,UAAU,CAAC,UAAU,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;YAClG,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO;gBAAE,OAAO,WAAW,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACxF,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClC,OAAO,UAAU,CAAC,UAAU,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QAC/C,CAAC;KACD,CAAC;AACH,CAAC","sourcesContent":["import { type Static, Type } from \"typebox\";\nimport { TERMINAL_KILL_TOOL } from \"../shared.ts\";\nimport {\n\terrorResult,\n\tresolveTerminalId,\n\ttype TerminalToolContext,\n\ttype TerminalToolResult,\n\ttextResult,\n} from \"./context.ts\";\n\nexport const killBashSchema = Type.Object({\n\tbash_id: Type.Optional(Type.String({ description: \"Session id to tree-kill.\" })),\n\tall: Type.Optional(Type.Boolean({ description: \"Tree-kill every live background session.\" })),\n});\n\nexport type KillBashInput = Static<typeof killBashSchema>;\n\nexport function createKillBashTool(ctx: TerminalToolContext) {\n\treturn {\n\t\tname: TERMINAL_KILL_TOOL,\n\t\tlabel: \"kill_bash\",\n\t\tdescription: \"Terminate a background bash session (or all of them) and its process tree cleanly.\",\n\t\tpromptSnippet: \"Tree-kill a background bash session (or all) with no orphans\",\n\t\tparameters: killBashSchema,\n\t\tasync execute(_toolCallId: string, input: KillBashInput, _signal?: AbortSignal): Promise<TerminalToolResult> {\n\t\t\tif (input.all) {\n\t\t\t\tconst terminalCount = ctx.manager.size;\n\t\t\t\tconst fileCount = (await ctx.monitorRegistry?.stopAllFiles()) ?? 0;\n\t\t\t\tawait ctx.manager.teardown();\n\t\t\t\treturn textResult(`Killed ${terminalCount + fileCount} session(s).`);\n\t\t\t}\n\t\t\tif (!input.bash_id) return errorResult(\"Provide `bash_id` or set `all:true`.\");\n\t\t\tconst sessionId = resolveTerminalId(ctx.manager, input.bash_id);\n\t\t\tif (await ctx.monitorRegistry?.stopFile(sessionId)) return textResult(`Killed ${input.bash_id}.`);\n\t\t\tconst runtime = ctx.manager.get(sessionId);\n\t\t\tif (!runtime) return errorResult(`No terminal session found with id: ${input.bash_id}`);\n\t\t\tawait ctx.manager.stop(sessionId);\n\t\t\treturn textResult(`Killed ${input.bash_id}.`);\n\t\t},\n\t};\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import { type Static, Type } from "typebox";
2
+ import type { TerminalManifestWriter } from "../terminal-manifest.ts";
2
3
  import { type TerminalToolContext, type TerminalToolResult } from "./context.ts";
3
4
  import { renderMonitorCall } from "./render.ts";
4
5
  export declare const DEFAULT_MONITOR_TIMEOUT_MS = 300000;
@@ -21,7 +22,9 @@ export declare const monitorSchema: Type.TObject<{
21
22
  bash_id: Type.TOptional<Type.TString>;
22
23
  }>;
23
24
  export type MonitorInput = Static<typeof monitorSchema>;
24
- /** Build the PTY-backed monitor tool. Monitor handles share TerminalManager's bash_N namespace. */
25
+ /** Bind the session's manifest writer so monitor tool calls can hand it specs captured at the call site. */
26
+ export declare function bindTerminalManifestWriter(sessionId: string, writer: TerminalManifestWriter): void;
27
+ export declare function unbindTerminalManifestWriter(sessionId: string): void;
25
28
  export declare function createMonitorTool(ctx: TerminalToolContext): {
26
29
  name: string;
27
30
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/monitor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EAAe,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAc,MAAM,cAAc,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,eAAO,MAAM,0BAA0B,SAAU,CAAC;AAClD,eAAO,MAAM,sBAAsB,UAAY,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;EA+CxB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AA+DxD,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;yBAwB1C,MAAM,SACZ,YAAY,YACT,WAAW,cACT,SAAS,YACX;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GACxB,OAAO,CAAC,kBAAkB,CAAC;EA4D/B"}
1
+ {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../../../../../src/core/extensions/builtin/terminal/tools/monitor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAU5C,OAAO,KAAK,EAAuB,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAGN,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EAEvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,eAAO,MAAM,0BAA0B,SAAU,CAAC;AAClD,eAAO,MAAM,sBAAsB,UAAY,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;EAkDxB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AA8FxD,4GAA4G;AAC5G,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAElG;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEpE;AAwCD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;yBAwB1C,MAAM,SACZ,YAAY,YACT,WAAW,cACT,SAAS,YACX;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GACxB,OAAO,CAAC,kBAAkB,CAAC;EAiF/B"}