@myagentroam/agent 0.11.32 → 0.11.34

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 (856) hide show
  1. package/dist/cli/catalog-file.d.ts +78 -0
  2. package/dist/cli/catalog-file.js +102 -0
  3. package/dist/cli/codex-auth-file.d.ts +1 -1
  4. package/dist/cli/codex-auth-file.js +9 -10
  5. package/dist/cli/main.js +44 -54
  6. package/dist/error.d.ts +15 -0
  7. package/dist/error.js +74 -0
  8. package/dist/extensions/agents.d.ts +100 -0
  9. package/dist/extensions/agents.js +121 -0
  10. package/dist/extensions/capabilities.d.ts +4 -0
  11. package/dist/extensions/commands.d.ts +23 -0
  12. package/dist/extensions/commands.js +45 -0
  13. package/dist/extensions/compaction.d.ts +36 -0
  14. package/dist/extensions/contracts.d.ts +147 -0
  15. package/dist/extensions/data.d.ts +81 -0
  16. package/dist/extensions/data.js +78 -0
  17. package/dist/extensions/environment.d.ts +39 -0
  18. package/dist/extensions/environment.js +52 -0
  19. package/dist/extensions/files.d.ts +68 -0
  20. package/dist/extensions/files.js +26 -0
  21. package/dist/extensions/hooks.d.ts +32 -0
  22. package/dist/extensions/host-ports.d.ts +24 -0
  23. package/dist/extensions/manager.d.ts +42 -0
  24. package/dist/extensions/manager.js +457 -0
  25. package/dist/extensions/mcp.d.ts +116 -0
  26. package/dist/extensions/mcp.js +434 -0
  27. package/dist/extensions/model-request.d.ts +65 -0
  28. package/dist/extensions/model-request.js +197 -0
  29. package/dist/extensions/model-stream.d.ts +18 -0
  30. package/dist/extensions/model-stream.js +108 -0
  31. package/dist/extensions/models.d.ts +46 -0
  32. package/dist/extensions/models.js +7 -0
  33. package/dist/extensions/network.d.ts +40 -0
  34. package/dist/extensions/network.js +97 -0
  35. package/dist/extensions/operation.d.ts +32 -0
  36. package/dist/extensions/processes.d.ts +64 -0
  37. package/dist/extensions/processes.js +284 -0
  38. package/dist/extensions/prompt-composition.d.ts +38 -0
  39. package/dist/extensions/prompt-composition.js +100 -0
  40. package/dist/extensions/prompt-input.d.ts +30 -0
  41. package/dist/extensions/prompt-input.js +48 -0
  42. package/dist/extensions/prompts.d.ts +31 -0
  43. package/dist/extensions/prompts.js +88 -0
  44. package/dist/extensions/resources.d.ts +26 -0
  45. package/dist/extensions/resources.js +221 -0
  46. package/dist/extensions/services.d.ts +31 -0
  47. package/dist/extensions/services.js +61 -0
  48. package/dist/extensions/session-api.d.ts +6 -0
  49. package/dist/extensions/session-api.js +52 -0
  50. package/dist/extensions/session-input.d.ts +184 -0
  51. package/dist/extensions/session-input.js +422 -0
  52. package/dist/extensions/session-messages.d.ts +41 -0
  53. package/dist/extensions/session-messages.js +76 -0
  54. package/dist/extensions/session-tools.d.ts +32 -0
  55. package/dist/extensions/session-tools.js +208 -0
  56. package/dist/extensions/session.d.ts +60 -0
  57. package/dist/extensions/session.js +265 -0
  58. package/dist/extensions/settings.d.ts +76 -0
  59. package/dist/extensions/settings.js +115 -0
  60. package/dist/extensions/store.d.ts +10 -0
  61. package/dist/extensions/store.js +131 -0
  62. package/dist/extensions/tool-runtime.d.ts +16 -0
  63. package/dist/extensions/tools.d.ts +80 -0
  64. package/dist/extensions/tools.js +270 -0
  65. package/dist/extensions.d.ts +22 -0
  66. package/dist/host/contracts.d.ts +58 -0
  67. package/dist/host/contracts.js +18 -0
  68. package/dist/host/description.d.ts +19 -0
  69. package/dist/host/local-agent-host.d.ts +96 -0
  70. package/dist/host/local-agent-host.js +429 -0
  71. package/dist/host/local-exec-tool.d.ts +26 -0
  72. package/dist/host/local-exec-tool.js +686 -0
  73. package/dist/host/local-file-access.d.ts +30 -0
  74. package/dist/host/local-file-access.js +107 -0
  75. package/dist/host/local-network-access.d.ts +6 -0
  76. package/dist/host/local-network-access.js +101 -0
  77. package/dist/host/local-process-executor.d.ts +5 -0
  78. package/dist/host/local-process-executor.js +17 -0
  79. package/dist/host/local-session-environment.d.ts +18 -0
  80. package/dist/host/local-shell.d.ts +3 -0
  81. package/dist/host/local-tool-registry.d.ts +34 -0
  82. package/dist/host/local-tool-registry.js +134 -0
  83. package/dist/host/network.d.ts +5 -0
  84. package/dist/host/network.js +42 -0
  85. package/dist/host/process-control.d.ts +2 -0
  86. package/dist/host/process-control.js +26 -0
  87. package/dist/host/skill-contract.d.ts +6 -0
  88. package/dist/host.d.ts +17 -0
  89. package/dist/host.js +3 -0
  90. package/dist/index.d.ts +26 -51
  91. package/dist/index.js +9 -12
  92. package/dist/model/anthropic-messages.d.ts +10 -0
  93. package/dist/model/anthropic-messages.js +692 -0
  94. package/dist/model/anthropic-thinking.js +33 -0
  95. package/dist/model/configuration.d.ts +111 -0
  96. package/dist/model/configuration.js +201 -0
  97. package/dist/model/contracts.d.ts +229 -0
  98. package/dist/model/http.d.ts +13 -0
  99. package/dist/model/http.js +119 -0
  100. package/dist/model/image-contract.d.ts +10 -0
  101. package/dist/model/image.d.ts +9 -0
  102. package/dist/model/inline-media-budget.d.ts +7 -0
  103. package/dist/model/inline-media-budget.js +36 -0
  104. package/dist/model/input-images.d.ts +3 -0
  105. package/dist/model/input-images.js +16 -0
  106. package/dist/model/openai-responses.d.ts +59 -0
  107. package/dist/model/openai-responses.js +1586 -0
  108. package/dist/model/recovery.js +80 -0
  109. package/dist/model/request-configuration.d.ts +17 -0
  110. package/dist/model/request-configuration.js +47 -0
  111. package/dist/model/responses-event-projection.d.ts +24 -0
  112. package/dist/model/responses-event-projection.js +194 -0
  113. package/dist/model/responses-request.d.ts +5 -0
  114. package/dist/model/responses-request.js +363 -0
  115. package/dist/model/responses-session-cache.d.ts +33 -0
  116. package/dist/model/responses-session-cache.js +64 -0
  117. package/dist/model/runtime-credential.d.ts +1 -0
  118. package/dist/model/runtime-credential.js +1 -0
  119. package/dist/model/sse.js +281 -0
  120. package/dist/model/text-blocks.js +40 -0
  121. package/dist/model/tool-declarations.d.ts +4 -0
  122. package/dist/model/tool-definition-projection.d.ts +6 -0
  123. package/dist/model/tool-definition-projection.js +11 -0
  124. package/dist/model/tool-schema.d.ts +2 -0
  125. package/dist/model/tool-schema.js +17 -0
  126. package/dist/model/transport-test.d.ts +10 -0
  127. package/dist/model/transport-test.js +27 -0
  128. package/dist/model/usage-observer.d.ts +5 -0
  129. package/dist/model/usage.d.ts +40 -0
  130. package/dist/network/credential-runtime.d.ts +8 -0
  131. package/dist/network/credential-runtime.js +72 -0
  132. package/dist/network/credentials.d.ts +20 -0
  133. package/dist/network/credentials.js +18 -0
  134. package/dist/network/http.d.ts +20 -0
  135. package/dist/network/http.js +421 -0
  136. package/dist/network/product-user-agent.d.ts +5 -0
  137. package/dist/network/product-user-agent.js +22 -0
  138. package/dist/network/transport-error.d.ts +5 -0
  139. package/dist/network/transport-error.js +31 -0
  140. package/dist/process/contracts.d.ts +26 -0
  141. package/dist/prompts/index.d.ts +20 -0
  142. package/dist/prompts/index.js +49 -0
  143. package/dist/prompts/prompt-sections.d.ts +6 -0
  144. package/dist/prompts/prompt-sections.js +6 -0
  145. package/dist/prompts/read-context.js +152 -0
  146. package/dist/runtime/compaction/contracts.d.ts +23 -0
  147. package/dist/runtime/compaction/coordinator.js +88 -0
  148. package/dist/runtime/compaction/generate.d.ts +31 -0
  149. package/dist/runtime/compaction/generate.js +84 -0
  150. package/dist/runtime/compaction/history.d.ts +16 -0
  151. package/dist/runtime/compaction/operation.d.ts +30 -0
  152. package/dist/runtime/compaction/operation.js +131 -0
  153. package/dist/runtime/compaction/requests.d.ts +16 -0
  154. package/dist/runtime/compaction/requests.js +114 -0
  155. package/dist/runtime/compaction/retained-context.d.ts +6 -0
  156. package/dist/runtime/compaction/retained-context.js +48 -0
  157. package/dist/runtime/compaction/smart.d.ts +14 -0
  158. package/dist/runtime/compaction/smart.js +59 -0
  159. package/dist/runtime/context/contextual-blocks.d.ts +31 -0
  160. package/dist/runtime/context/contextual-blocks.js +158 -0
  161. package/dist/runtime/context/environment.d.ts +5 -0
  162. package/dist/runtime/context/gc-candidates-code.d.ts +6 -0
  163. package/dist/runtime/context/gc-candidates-code.js +102 -0
  164. package/dist/runtime/context/gc-candidates-exec.d.ts +6 -0
  165. package/dist/runtime/context/gc-candidates-exec.js +131 -0
  166. package/dist/runtime/context/gc-candidates-read-patch.d.ts +7 -0
  167. package/dist/runtime/context/gc-candidates-read-patch.js +118 -0
  168. package/dist/runtime/context/gc-candidates-subagent.d.ts +6 -0
  169. package/dist/runtime/context/gc-candidates-subagent.js +100 -0
  170. package/dist/runtime/context/gc-candidates-web.d.ts +6 -0
  171. package/dist/runtime/context/gc-candidates-web.js +58 -0
  172. package/dist/runtime/context/gc-candidates.d.ts +12 -0
  173. package/dist/runtime/context/gc-candidates.js +192 -0
  174. package/dist/runtime/context/gc-contracts.d.ts +57 -0
  175. package/dist/runtime/context/gc-economics.d.ts +48 -0
  176. package/dist/runtime/context/gc-economics.js +161 -0
  177. package/dist/runtime/context/gc-runtime.d.ts +43 -0
  178. package/dist/runtime/context/gc-tokens.d.ts +26 -0
  179. package/dist/runtime/context/gc-tokens.js +106 -0
  180. package/dist/runtime/context/gc.d.ts +7 -0
  181. package/dist/runtime/context/gc.js +552 -0
  182. package/dist/runtime/context/instructions.d.ts +37 -0
  183. package/dist/runtime/context/instructions.js +297 -0
  184. package/dist/runtime/context/normalize.d.ts +5 -0
  185. package/dist/runtime/context/projection.d.ts +23 -0
  186. package/dist/runtime/context/projection.js +284 -0
  187. package/dist/runtime/context/request-budget.d.ts +5 -0
  188. package/dist/runtime/context/request-budget.js +25 -0
  189. package/dist/runtime/context/restore.d.ts +27 -0
  190. package/dist/runtime/context/restore.js +186 -0
  191. package/dist/runtime/context/usage.d.ts +17 -0
  192. package/dist/runtime/context/usage.js +124 -0
  193. package/dist/runtime/context/world-state.d.ts +34 -0
  194. package/dist/runtime/context/world-state.js +232 -0
  195. package/dist/runtime/contracts.d.ts +29 -0
  196. package/dist/runtime/event-projection.d.ts +14 -0
  197. package/dist/runtime/event-projection.js +87 -0
  198. package/dist/runtime/events.d.ts +195 -0
  199. package/dist/runtime/execution-handle.d.ts +12 -0
  200. package/dist/runtime/execution-handle.js +1 -0
  201. package/dist/runtime/execution.d.ts +55 -0
  202. package/dist/runtime/execution.js +444 -0
  203. package/dist/runtime/model-progress.js +85 -0
  204. package/dist/runtime/resource-publication.d.ts +27 -0
  205. package/dist/runtime/resource-publication.js +60 -0
  206. package/dist/runtime/tool-round-contract.d.ts +19 -0
  207. package/dist/runtime/tool-round-contract.js +1 -0
  208. package/dist/runtime/wait.js +82 -0
  209. package/dist/sandbox/linux/bubblewrap-sandbox-executor.d.ts +1 -1
  210. package/dist/sandbox/linux/bubblewrap-sandbox-executor.js +8 -8
  211. package/dist/sdk/agent.d.ts +7 -0
  212. package/dist/sdk/agent.js +321 -0
  213. package/dist/sdk/execution-code-mode.d.ts +18 -0
  214. package/dist/sdk/execution-code-mode.js +51 -0
  215. package/dist/sdk/execution-compact-commit.d.ts +23 -0
  216. package/dist/sdk/execution-compact-commit.js +41 -0
  217. package/dist/sdk/execution-compact-extension.d.ts +12 -0
  218. package/dist/sdk/execution-compact-extension.js +46 -0
  219. package/dist/sdk/execution-compact-generation.d.ts +17 -0
  220. package/dist/sdk/execution-compact-generation.js +30 -0
  221. package/dist/sdk/execution-compaction-flight.d.ts +31 -0
  222. package/dist/sdk/execution-compaction-flight.js +50 -0
  223. package/dist/sdk/execution-compaction.d.ts +47 -0
  224. package/dist/sdk/execution-compaction.js +121 -0
  225. package/dist/sdk/execution-context-coordinator.d.ts +56 -0
  226. package/dist/sdk/execution-context-coordinator.js +102 -0
  227. package/dist/sdk/execution-input.d.ts +58 -0
  228. package/dist/sdk/execution-input.js +266 -0
  229. package/dist/sdk/execution-model-context.d.ts +52 -0
  230. package/dist/sdk/execution-model-context.js +156 -0
  231. package/dist/sdk/execution-model-lifecycle.d.ts +39 -0
  232. package/dist/sdk/execution-model-lifecycle.js +73 -0
  233. package/dist/sdk/execution-model-request.d.ts +40 -0
  234. package/dist/sdk/execution-model-request.js +45 -0
  235. package/dist/sdk/execution-round-preparation.d.ts +11 -0
  236. package/dist/sdk/execution-round-preparation.js +18 -0
  237. package/dist/sdk/execution-round-request.d.ts +30 -0
  238. package/dist/sdk/execution-round-request.js +31 -0
  239. package/dist/sdk/execution-tool-catalog.d.ts +46 -0
  240. package/dist/sdk/execution-tool-catalog.js +103 -0
  241. package/dist/sdk/execution-tool-scope.d.ts +67 -0
  242. package/dist/sdk/execution-tool-scope.js +147 -0
  243. package/dist/sdk/extension-agent-controller.d.ts +3 -0
  244. package/dist/sdk/extension-agent-controller.js +69 -0
  245. package/dist/sdk/extension-agents.d.ts +9 -0
  246. package/dist/sdk/extension-agents.js +58 -0
  247. package/dist/sdk/extension-models.d.ts +17 -0
  248. package/dist/sdk/extension-models.js +142 -0
  249. package/dist/sdk/extension-session-launch.d.ts +18 -0
  250. package/dist/sdk/extension-session-launch.js +73 -0
  251. package/dist/sdk/extension-session.d.ts +30 -0
  252. package/dist/sdk/extension-session.js +107 -0
  253. package/dist/sdk/extension-tool-runtime.d.ts +2 -0
  254. package/dist/sdk/extension-tool-runtime.js +14 -0
  255. package/dist/sdk/extension-tools.d.ts +16 -0
  256. package/dist/sdk/extension-tools.js +126 -0
  257. package/dist/sdk/model-input-projection.d.ts +4 -0
  258. package/dist/sdk/model-input-projection.js +27 -0
  259. package/dist/sdk/model-runtime.d.ts +21 -0
  260. package/dist/sdk/model-runtime.js +91 -0
  261. package/dist/sdk/native-steer.d.ts +20 -0
  262. package/dist/sdk/native-steer.js +84 -0
  263. package/dist/sdk/request-preparation.d.ts +9 -0
  264. package/dist/sdk/resource-input.d.ts +33 -0
  265. package/dist/sdk/resource-input.js +402 -0
  266. package/dist/sdk/session-catalog.d.ts +2 -0
  267. package/dist/sdk/session-catalog.js +12 -0
  268. package/dist/sdk/session-composition.d.ts +54 -0
  269. package/dist/sdk/session-composition.js +1 -0
  270. package/dist/sdk/session-execution-factory.d.ts +43 -0
  271. package/dist/sdk/session-execution-factory.js +937 -0
  272. package/dist/sdk/session-execution.d.ts +163 -0
  273. package/dist/sdk/session-execution.js +388 -0
  274. package/dist/sdk/session-extension-messages.d.ts +16 -0
  275. package/dist/sdk/session-extension-messages.js +64 -0
  276. package/dist/sdk/session-extension-prompt.d.ts +35 -0
  277. package/dist/sdk/session-extension-prompt.js +62 -0
  278. package/dist/sdk/session-maintenance.d.ts +25 -0
  279. package/dist/sdk/session-maintenance.js +205 -0
  280. package/dist/sdk/session-model-adapters.d.ts +28 -0
  281. package/dist/sdk/session-model-adapters.js +96 -0
  282. package/dist/sdk/session-open.d.ts +22 -0
  283. package/dist/sdk/session-open.js +44 -0
  284. package/dist/sdk/session-registry.d.ts +17 -0
  285. package/dist/sdk/session-registry.js +83 -0
  286. package/dist/sdk/session-runtime.d.ts +72 -0
  287. package/dist/sdk/session-runtime.js +205 -0
  288. package/dist/sdk/session.d.ts +3 -0
  289. package/dist/sdk/session.js +313 -0
  290. package/dist/sdk/subagent-backend.d.ts +3 -0
  291. package/dist/sdk/subagent-backend.js +49 -0
  292. package/dist/sdk/types.d.ts +80 -0
  293. package/dist/sdk/types.js +1 -0
  294. package/dist/session/catalog.d.ts +70 -0
  295. package/dist/session/catalog.js +194 -0
  296. package/dist/session/code-observation-contract.d.ts +40 -0
  297. package/dist/session/code-observation-contract.js +1 -0
  298. package/dist/session/code-observation-projection.d.ts +54 -0
  299. package/dist/session/code-observation-projection.js +165 -0
  300. package/dist/session/code-state.d.ts +27 -0
  301. package/dist/session/code-state.js +89 -0
  302. package/dist/session/context-gc-checkpoint.d.ts +26 -0
  303. package/dist/session/context-gc-checkpoint.js +935 -0
  304. package/dist/session/context-gc-contract.d.ts +141 -0
  305. package/dist/session/context-gc-contract.js +1 -0
  306. package/dist/session/context-gc-observations.d.ts +58 -0
  307. package/dist/session/context-gc-observations.js +187 -0
  308. package/dist/session/context-gc-replacements.d.ts +63 -0
  309. package/dist/session/context-gc-subagent.d.ts +54 -0
  310. package/dist/session/deferred-input.d.ts +5 -0
  311. package/dist/session/deferred-input.js +74 -0
  312. package/dist/session/extension-checkpoint.d.ts +8 -0
  313. package/dist/session/extension-checkpoint.js +30 -0
  314. package/dist/session/history-input-limits.d.ts +4 -0
  315. package/dist/session/history-input-limits.js +4 -0
  316. package/dist/session/inline-media-contract.d.ts +16 -0
  317. package/dist/session/inline-media-contract.js +1 -0
  318. package/dist/session/inline-media.d.ts +26 -0
  319. package/dist/session/inline-media.js +138 -0
  320. package/dist/session/model-request.d.ts +14 -0
  321. package/dist/session/model-request.js +1 -0
  322. package/dist/session/record-contract.d.ts +19 -0
  323. package/dist/session/record-contract.js +1 -0
  324. package/dist/session/record-projection.d.ts +6 -0
  325. package/dist/session/record-projection.js +80 -0
  326. package/dist/session/resource-contract.d.ts +9 -0
  327. package/dist/session/resource-contract.js +1 -0
  328. package/dist/session/rollback.d.ts +13 -0
  329. package/dist/session/rollback.js +46 -0
  330. package/dist/session/store/contracts.d.ts +160 -0
  331. package/dist/session/store/contracts.js +1 -0
  332. package/dist/session/store/current-state.d.ts +17 -0
  333. package/dist/session/store/current-state.js +53 -0
  334. package/dist/session/store/execution-state.d.ts +13 -0
  335. package/dist/session/store/execution-state.js +103 -0
  336. package/dist/session/store/index.d.ts +4 -0
  337. package/dist/session/store/index.js +2 -0
  338. package/dist/session/store/jsonl/directory-index.d.ts +26 -0
  339. package/dist/session/store/jsonl/directory-index.js +283 -0
  340. package/dist/session/store/jsonl/fs-durability.d.ts +3 -0
  341. package/dist/session/store/jsonl/fs-durability.js +17 -0
  342. package/dist/session/store/jsonl/history-replacement.d.ts +48 -0
  343. package/dist/session/store/jsonl/history-replacement.js +147 -0
  344. package/dist/session/store/jsonl/history.d.ts +25 -0
  345. package/dist/session/store/jsonl/history.js +181 -0
  346. package/dist/session/store/jsonl/images.d.ts +19 -0
  347. package/dist/session/store/jsonl/images.js +122 -0
  348. package/dist/session/store/jsonl/index-transaction.d.ts +13 -0
  349. package/dist/session/store/jsonl/index-transaction.js +87 -0
  350. package/dist/session/store/jsonl/jsonl-admission.d.ts +10 -0
  351. package/dist/session/store/jsonl/jsonl-admission.js +205 -0
  352. package/dist/session/store/jsonl/jsonl-codec.d.ts +11 -0
  353. package/dist/session/store/jsonl/jsonl-codec.js +138 -0
  354. package/dist/session/store/jsonl/jsonl-migration.d.ts +12 -0
  355. package/dist/session/store/jsonl/jsonl-migration.js +105 -0
  356. package/dist/session/store/jsonl/jsonl-store.d.ts +171 -0
  357. package/dist/session/store/jsonl/jsonl-store.js +2482 -0
  358. package/dist/session/store/jsonl/open-recovery.d.ts +13 -0
  359. package/dist/session/store/jsonl/open-recovery.js +131 -0
  360. package/dist/session/store/jsonl/read-pins.d.ts +4 -0
  361. package/dist/session/store/jsonl/read-pins.js +131 -0
  362. package/dist/session/store/jsonl/record-append.d.ts +16 -0
  363. package/dist/session/store/jsonl/record-append.js +49 -0
  364. package/dist/session/store/jsonl/records.d.ts +30 -0
  365. package/dist/session/store/jsonl/records.js +313 -0
  366. package/dist/session/store/jsonl/resources.d.ts +19 -0
  367. package/dist/session/store/jsonl/resources.js +209 -0
  368. package/dist/session/store/jsonl/store-pool.d.ts +12 -0
  369. package/dist/session/store/jsonl/store-pool.js +55 -0
  370. package/dist/session/store/jsonl/transaction-recovery.d.ts +48 -0
  371. package/dist/session/store/jsonl/transaction-recovery.js +374 -0
  372. package/dist/session/store/jsonl/tree-maintenance.d.ts +12 -0
  373. package/dist/session/store/jsonl/tree-maintenance.js +59 -0
  374. package/dist/session/store/types.d.ts +69 -0
  375. package/dist/session/store/types.js +1 -0
  376. package/dist/session/summary.d.ts +18 -0
  377. package/dist/session/summary.js +1 -0
  378. package/dist/session/todo.d.ts +11 -0
  379. package/dist/session/todo.js +30 -0
  380. package/dist/session/tool-result-resources.d.ts +27 -0
  381. package/dist/session/tool-result-resources.js +255 -0
  382. package/dist/session/types.js +1 -0
  383. package/dist/session/user-history.d.ts +17 -0
  384. package/dist/session/user-history.js +1 -0
  385. package/dist/session-store.d.ts +2 -0
  386. package/dist/session-store.js +1 -0
  387. package/dist/shared/auto-title.d.ts +3 -3
  388. package/dist/shared/auto-title.js +6 -6
  389. package/dist/shared/model-text.d.ts +8 -8
  390. package/dist/shared/model-text.js +8 -7
  391. package/dist/storage/file-lock.js +83 -0
  392. package/dist/subagent/contracts.d.ts +107 -0
  393. package/dist/subagent/contracts.js +1 -0
  394. package/dist/subagent/limits.d.ts +17 -0
  395. package/dist/subagent/limits.js +17 -0
  396. package/dist/subagent/model-update.js +81 -0
  397. package/dist/subagent/session-controller.d.ts +148 -0
  398. package/dist/subagent/session-controller.js +1761 -0
  399. package/dist/subagent/wait-targets.d.ts +10 -0
  400. package/dist/subagent/wait-targets.js +26 -0
  401. package/dist/subagent/wait.d.ts +26 -0
  402. package/dist/subagent/wait.js +73 -0
  403. package/dist/tools/agent/agent-cancel.d.ts +7 -0
  404. package/dist/tools/agent/agent-cancel.js +29 -0
  405. package/dist/tools/agent/agent-message.d.ts +7 -0
  406. package/dist/tools/agent/agent-message.js +57 -0
  407. package/dist/tools/agent/agent-start.d.ts +12 -0
  408. package/dist/tools/agent/agent-start.js +106 -0
  409. package/dist/tools/agent/agent-wait.d.ts +7 -0
  410. package/dist/tools/agent/agent-wait.js +91 -0
  411. package/dist/tools/agent/question.d.ts +7 -0
  412. package/dist/tools/agent/question.js +125 -0
  413. package/dist/tools/agent/skill.d.ts +11 -0
  414. package/dist/tools/agent/skill.js +38 -0
  415. package/dist/tools/agent/sleep.d.ts +9 -0
  416. package/dist/tools/agent/sleep.js +54 -0
  417. package/dist/tools/agent/smart-compact.d.ts +9 -0
  418. package/dist/tools/agent/smart-compact.js +23 -0
  419. package/dist/tools/agent/todo-read.d.ts +14 -0
  420. package/dist/tools/agent/todo-write.d.ts +14 -0
  421. package/dist/tools/agent/todo-write.js +66 -0
  422. package/dist/tools/agent/todo.d.ts +25 -0
  423. package/dist/tools/agent/todo.js +32 -0
  424. package/dist/tools/callers.d.ts +7 -0
  425. package/dist/tools/callers.js +39 -0
  426. package/dist/tools/code-mode/cells.d.ts +29 -0
  427. package/dist/tools/code-mode/cells.js +338 -0
  428. package/dist/tools/code-mode/dispatch.d.ts +20 -0
  429. package/dist/tools/code-mode/dispatch.js +80 -0
  430. package/dist/tools/code-mode/engine.d.ts +60 -0
  431. package/dist/tools/code-mode/engine.js +1 -0
  432. package/dist/tools/code-mode/index.d.ts +31 -0
  433. package/dist/tools/code-mode/index.js +751 -0
  434. package/dist/tools/code-mode/observations.d.ts +8 -0
  435. package/dist/tools/code-mode/observations.js +64 -0
  436. package/dist/tools/code-mode/worker.d.ts +1 -0
  437. package/dist/tools/contracts.d.ts +193 -0
  438. package/dist/tools/contracts.js +1 -0
  439. package/dist/tools/definition-projection.d.ts +1 -0
  440. package/dist/tools/definition-projection.js +1 -0
  441. package/dist/tools/execution-limits.d.ts +69 -0
  442. package/dist/tools/execution-limits.js +58 -0
  443. package/dist/tools/execution.d.ts +30 -0
  444. package/dist/tools/execution.js +191 -0
  445. package/dist/tools/local/apply-patch-parser.js +177 -0
  446. package/dist/tools/local/apply-patch.d.ts +19 -0
  447. package/dist/tools/local/apply-patch.js +489 -0
  448. package/dist/tools/local/exec.d.ts +28 -0
  449. package/dist/tools/local/exec.js +194 -0
  450. package/dist/tools/local/image-processing.js +146 -0
  451. package/dist/tools/local/read.d.ts +43 -0
  452. package/dist/tools/local/read.js +470 -0
  453. package/dist/tools/local/view-image.d.ts +15 -0
  454. package/dist/tools/local/view-image.js +317 -0
  455. package/dist/tools/mcp/catalog.js +220 -0
  456. package/dist/tools/mcp/history.d.ts +4 -0
  457. package/dist/tools/mcp/tool-search.d.ts +45 -0
  458. package/dist/tools/mcp/tool-search.js +294 -0
  459. package/dist/tools/output-projection.d.ts +18 -0
  460. package/dist/tools/output-projection.js +341 -0
  461. package/dist/tools/permission-contract.d.ts +25 -0
  462. package/dist/tools/permission-contract.js +1 -0
  463. package/dist/tools/permissions.d.ts +61 -0
  464. package/dist/tools/permissions.js +237 -0
  465. package/dist/tools/registry.d.ts +7 -0
  466. package/dist/tools/result-extension-contract.d.ts +37 -0
  467. package/dist/tools/result-extension-contract.js +32 -0
  468. package/dist/tools/result-extensions.d.ts +12 -0
  469. package/dist/tools/result-extensions.js +104 -0
  470. package/dist/tools/runtime-context.d.ts +89 -0
  471. package/dist/tools/runtime-context.js +1 -0
  472. package/dist/tools/runtime-resource-handles.js +28 -0
  473. package/dist/tools/runtime.js +77 -0
  474. package/dist/tools/scheduler.d.ts +12 -0
  475. package/dist/tools/shared/path-resolver.js +133 -0
  476. package/dist/tools/wait.d.ts +1 -0
  477. package/dist/tools/wait.js +1 -0
  478. package/package.json +15 -3
  479. package/dist/agent-core/error.d.ts +0 -15
  480. package/dist/agent-core/error.js +0 -74
  481. package/dist/agent-core/extensions/agents.d.ts +0 -79
  482. package/dist/agent-core/extensions/agents.js +0 -186
  483. package/dist/agent-core/extensions/compaction.d.ts +0 -48
  484. package/dist/agent-core/extensions/contracts.d.ts +0 -265
  485. package/dist/agent-core/extensions/data.d.ts +0 -84
  486. package/dist/agent-core/extensions/data.js +0 -83
  487. package/dist/agent-core/extensions/environment.d.ts +0 -27
  488. package/dist/agent-core/extensions/environment.js +0 -52
  489. package/dist/agent-core/extensions/files.d.ts +0 -64
  490. package/dist/agent-core/extensions/files.js +0 -26
  491. package/dist/agent-core/extensions/hooks.d.ts +0 -32
  492. package/dist/agent-core/extensions/manager.d.ts +0 -39
  493. package/dist/agent-core/extensions/manager.js +0 -458
  494. package/dist/agent-core/extensions/mcp.d.ts +0 -99
  495. package/dist/agent-core/extensions/mcp.js +0 -433
  496. package/dist/agent-core/extensions/model-request.d.ts +0 -56
  497. package/dist/agent-core/extensions/model-request.js +0 -197
  498. package/dist/agent-core/extensions/model-stream.d.ts +0 -9
  499. package/dist/agent-core/extensions/model-stream.js +0 -108
  500. package/dist/agent-core/extensions/models.d.ts +0 -43
  501. package/dist/agent-core/extensions/network.d.ts +0 -32
  502. package/dist/agent-core/extensions/network.js +0 -97
  503. package/dist/agent-core/extensions/operation.d.ts +0 -30
  504. package/dist/agent-core/extensions/processes.d.ts +0 -52
  505. package/dist/agent-core/extensions/processes.js +0 -284
  506. package/dist/agent-core/extensions/prompt-composition.d.ts +0 -24
  507. package/dist/agent-core/extensions/prompt-composition.js +0 -106
  508. package/dist/agent-core/extensions/prompt-input.d.ts +0 -23
  509. package/dist/agent-core/extensions/prompt-input.js +0 -48
  510. package/dist/agent-core/extensions/resources.d.ts +0 -27
  511. package/dist/agent-core/extensions/resources.js +0 -221
  512. package/dist/agent-core/extensions/services.d.ts +0 -31
  513. package/dist/agent-core/extensions/services.js +0 -61
  514. package/dist/agent-core/extensions/session-input.d.ts +0 -163
  515. package/dist/agent-core/extensions/session-input.js +0 -411
  516. package/dist/agent-core/extensions/session-messages.d.ts +0 -41
  517. package/dist/agent-core/extensions/session-messages.js +0 -76
  518. package/dist/agent-core/extensions/session.d.ts +0 -69
  519. package/dist/agent-core/extensions/session.js +0 -607
  520. package/dist/agent-core/extensions/settings.d.ts +0 -59
  521. package/dist/agent-core/extensions/settings.js +0 -115
  522. package/dist/agent-core/extensions/store.d.ts +0 -10
  523. package/dist/agent-core/extensions/store.js +0 -131
  524. package/dist/agent-core/extensions/tools.d.ts +0 -61
  525. package/dist/agent-core/extensions/tools.js +0 -269
  526. package/dist/agent-core/host/contracts.d.ts +0 -100
  527. package/dist/agent-core/host/contracts.js +0 -18
  528. package/dist/agent-core/host/local-agent-host.d.ts +0 -96
  529. package/dist/agent-core/host/local-agent-host.js +0 -425
  530. package/dist/agent-core/host/local-file-access.d.ts +0 -30
  531. package/dist/agent-core/host/local-file-access.js +0 -107
  532. package/dist/agent-core/host/local-network-access.d.ts +0 -6
  533. package/dist/agent-core/host/local-network-access.js +0 -101
  534. package/dist/agent-core/host/local-process-executor.d.ts +0 -29
  535. package/dist/agent-core/host/local-process-executor.js +0 -41
  536. package/dist/agent-core/host/local-session-environment.d.ts +0 -18
  537. package/dist/agent-core/host/local-shell.d.ts +0 -3
  538. package/dist/agent-core/host/network.d.ts +0 -4
  539. package/dist/agent-core/host/network.js +0 -6
  540. package/dist/agent-core/model/anthropic-messages.d.ts +0 -10
  541. package/dist/agent-core/model/anthropic-messages.js +0 -707
  542. package/dist/agent-core/model/anthropic-thinking.js +0 -33
  543. package/dist/agent-core/model/catalog-file.d.ts +0 -80
  544. package/dist/agent-core/model/catalog-file.js +0 -103
  545. package/dist/agent-core/model/configuration.d.ts +0 -127
  546. package/dist/agent-core/model/configuration.js +0 -168
  547. package/dist/agent-core/model/contracts.d.ts +0 -229
  548. package/dist/agent-core/model/http.d.ts +0 -27
  549. package/dist/agent-core/model/http.js +0 -534
  550. package/dist/agent-core/model/image.d.ts +0 -17
  551. package/dist/agent-core/model/openai-responses.d.ts +0 -77
  552. package/dist/agent-core/model/openai-responses.js +0 -2123
  553. package/dist/agent-core/model/product-user-agent.d.ts +0 -5
  554. package/dist/agent-core/model/product-user-agent.js +0 -22
  555. package/dist/agent-core/model/recovery.js +0 -80
  556. package/dist/agent-core/model/request-configuration.d.ts +0 -17
  557. package/dist/agent-core/model/request-configuration.js +0 -47
  558. package/dist/agent-core/model/runtime-credential.d.ts +0 -8
  559. package/dist/agent-core/model/runtime-credential.js +0 -72
  560. package/dist/agent-core/model/sse.js +0 -281
  561. package/dist/agent-core/model/text-blocks.js +0 -40
  562. package/dist/agent-core/model/tool-declarations.d.ts +0 -4
  563. package/dist/agent-core/model/transport-test.d.ts +0 -3
  564. package/dist/agent-core/model/transport-test.js +0 -23
  565. package/dist/agent-core/model/usage-observer.d.ts +0 -31
  566. package/dist/agent-core/prompts/index.d.ts +0 -20
  567. package/dist/agent-core/prompts/index.js +0 -49
  568. package/dist/agent-core/runtime/compaction/coordinator.js +0 -88
  569. package/dist/agent-core/runtime/compaction/generate.d.ts +0 -28
  570. package/dist/agent-core/runtime/compaction/generate.js +0 -84
  571. package/dist/agent-core/runtime/compaction/history.d.ts +0 -16
  572. package/dist/agent-core/runtime/compaction/operation.d.ts +0 -29
  573. package/dist/agent-core/runtime/compaction/operation.js +0 -131
  574. package/dist/agent-core/runtime/compaction/requests.d.ts +0 -16
  575. package/dist/agent-core/runtime/compaction/requests.js +0 -114
  576. package/dist/agent-core/runtime/compaction/retained-context.d.ts +0 -6
  577. package/dist/agent-core/runtime/compaction/retained-context.js +0 -47
  578. package/dist/agent-core/runtime/compaction/smart.d.ts +0 -14
  579. package/dist/agent-core/runtime/compaction/smart.js +0 -59
  580. package/dist/agent-core/runtime/context/contextual-blocks.d.ts +0 -30
  581. package/dist/agent-core/runtime/context/contextual-blocks.js +0 -146
  582. package/dist/agent-core/runtime/context/environment.d.ts +0 -5
  583. package/dist/agent-core/runtime/context/gc-runtime.d.ts +0 -38
  584. package/dist/agent-core/runtime/context/gc-tokens.d.ts +0 -25
  585. package/dist/agent-core/runtime/context/gc-tokens.js +0 -103
  586. package/dist/agent-core/runtime/context/gc.d.ts +0 -75
  587. package/dist/agent-core/runtime/context/gc.js +0 -1386
  588. package/dist/agent-core/runtime/context/instructions.d.ts +0 -37
  589. package/dist/agent-core/runtime/context/instructions.js +0 -297
  590. package/dist/agent-core/runtime/context/normalize.d.ts +0 -5
  591. package/dist/agent-core/runtime/context/projection.d.ts +0 -23
  592. package/dist/agent-core/runtime/context/projection.js +0 -284
  593. package/dist/agent-core/runtime/context/request-budget.d.ts +0 -4
  594. package/dist/agent-core/runtime/context/request-budget.js +0 -25
  595. package/dist/agent-core/runtime/context/restore.d.ts +0 -25
  596. package/dist/agent-core/runtime/context/restore.js +0 -186
  597. package/dist/agent-core/runtime/context/usage.d.ts +0 -17
  598. package/dist/agent-core/runtime/context/usage.js +0 -124
  599. package/dist/agent-core/runtime/context/world-state.d.ts +0 -33
  600. package/dist/agent-core/runtime/context/world-state.js +0 -232
  601. package/dist/agent-core/runtime/contracts.d.ts +0 -41
  602. package/dist/agent-core/runtime/event-projection.d.ts +0 -14
  603. package/dist/agent-core/runtime/event-projection.js +0 -87
  604. package/dist/agent-core/runtime/events.d.ts +0 -197
  605. package/dist/agent-core/runtime/execution-handle.d.ts +0 -12
  606. package/dist/agent-core/runtime/execution.d.ts +0 -50
  607. package/dist/agent-core/runtime/execution.js +0 -445
  608. package/dist/agent-core/runtime/model-progress.js +0 -85
  609. package/dist/agent-core/runtime/resource-publication.d.ts +0 -8
  610. package/dist/agent-core/runtime/resource-publication.js +0 -60
  611. package/dist/agent-core/sdk/agent.d.ts +0 -11
  612. package/dist/agent-core/sdk/agent.js +0 -474
  613. package/dist/agent-core/sdk/extension-agents.d.ts +0 -9
  614. package/dist/agent-core/sdk/extension-agents.js +0 -58
  615. package/dist/agent-core/sdk/extension-models.d.ts +0 -13
  616. package/dist/agent-core/sdk/extension-models.js +0 -137
  617. package/dist/agent-core/sdk/extension-session.d.ts +0 -30
  618. package/dist/agent-core/sdk/extension-session.js +0 -105
  619. package/dist/agent-core/sdk/extension-tools.d.ts +0 -16
  620. package/dist/agent-core/sdk/extension-tools.js +0 -126
  621. package/dist/agent-core/sdk/model-runtime.d.ts +0 -18
  622. package/dist/agent-core/sdk/model-runtime.js +0 -93
  623. package/dist/agent-core/sdk/native-steer.d.ts +0 -20
  624. package/dist/agent-core/sdk/native-steer.js +0 -84
  625. package/dist/agent-core/sdk/request-preparation.d.ts +0 -7
  626. package/dist/agent-core/sdk/resource-input.d.ts +0 -32
  627. package/dist/agent-core/sdk/resource-input.js +0 -403
  628. package/dist/agent-core/sdk/session.d.ts +0 -94
  629. package/dist/agent-core/sdk/session.js +0 -2377
  630. package/dist/agent-core/sdk/subagent-backend.d.ts +0 -3
  631. package/dist/agent-core/sdk/subagent-backend.js +0 -49
  632. package/dist/agent-core/sdk/types.d.ts +0 -81
  633. package/dist/agent-core/session/catalog.d.ts +0 -99
  634. package/dist/agent-core/session/catalog.js +0 -200
  635. package/dist/agent-core/session/context-gc-checkpoint.d.ts +0 -165
  636. package/dist/agent-core/session/context-gc-checkpoint.js +0 -935
  637. package/dist/agent-core/session/context-gc-observations.d.ts +0 -60
  638. package/dist/agent-core/session/context-gc-observations.js +0 -187
  639. package/dist/agent-core/session/context-gc-replacements.d.ts +0 -62
  640. package/dist/agent-core/session/context-gc-subagent.d.ts +0 -53
  641. package/dist/agent-core/session/deferred-input.d.ts +0 -5
  642. package/dist/agent-core/session/deferred-input.js +0 -74
  643. package/dist/agent-core/session/inline-media.d.ts +0 -45
  644. package/dist/agent-core/session/inline-media.js +0 -163
  645. package/dist/agent-core/session/rollback.d.ts +0 -13
  646. package/dist/agent-core/session/rollback.js +0 -46
  647. package/dist/agent-core/session/store/contracts.d.ts +0 -158
  648. package/dist/agent-core/session/store/current-state.d.ts +0 -17
  649. package/dist/agent-core/session/store/current-state.js +0 -53
  650. package/dist/agent-core/session/store/directory-index.d.ts +0 -18
  651. package/dist/agent-core/session/store/directory-index.js +0 -169
  652. package/dist/agent-core/session/store/execution-state.d.ts +0 -18
  653. package/dist/agent-core/session/store/execution-state.js +0 -175
  654. package/dist/agent-core/session/store/history.d.ts +0 -25
  655. package/dist/agent-core/session/store/history.js +0 -181
  656. package/dist/agent-core/session/store/images.d.ts +0 -19
  657. package/dist/agent-core/session/store/images.js +0 -110
  658. package/dist/agent-core/session/store/index.d.ts +0 -4
  659. package/dist/agent-core/session/store/index.js +0 -2
  660. package/dist/agent-core/session/store/jsonl-store.d.ts +0 -171
  661. package/dist/agent-core/session/store/jsonl-store.js +0 -2078
  662. package/dist/agent-core/session/store/records.d.ts +0 -23
  663. package/dist/agent-core/session/store/records.js +0 -261
  664. package/dist/agent-core/session/store/resources.d.ts +0 -26
  665. package/dist/agent-core/session/store/resources.js +0 -197
  666. package/dist/agent-core/session/store/types.d.ts +0 -82
  667. package/dist/agent-core/session/tool-result-resources.d.ts +0 -26
  668. package/dist/agent-core/session/tool-result-resources.js +0 -256
  669. package/dist/agent-core/session/transaction-recovery.d.ts +0 -16
  670. package/dist/agent-core/session/transaction-recovery.js +0 -135
  671. package/dist/agent-core/storage/file-lock.js +0 -83
  672. package/dist/agent-core/subagent/contracts.d.ts +0 -117
  673. package/dist/agent-core/subagent/model-update.js +0 -81
  674. package/dist/agent-core/subagent/scheduler.d.ts +0 -135
  675. package/dist/agent-core/subagent/scheduler.js +0 -369
  676. package/dist/agent-core/subagent/session-controller.d.ts +0 -138
  677. package/dist/agent-core/subagent/session-controller.js +0 -1594
  678. package/dist/agent-core/subagent/wait.d.ts +0 -14
  679. package/dist/agent-core/subagent/wait.js +0 -32
  680. package/dist/agent-core/tools/agent/agent-cancel.d.ts +0 -7
  681. package/dist/agent-core/tools/agent/agent-cancel.js +0 -29
  682. package/dist/agent-core/tools/agent/agent-message.d.ts +0 -7
  683. package/dist/agent-core/tools/agent/agent-message.js +0 -57
  684. package/dist/agent-core/tools/agent/agent-start.d.ts +0 -12
  685. package/dist/agent-core/tools/agent/agent-start.js +0 -106
  686. package/dist/agent-core/tools/agent/agent-wait.d.ts +0 -7
  687. package/dist/agent-core/tools/agent/agent-wait.js +0 -91
  688. package/dist/agent-core/tools/agent/question.d.ts +0 -7
  689. package/dist/agent-core/tools/agent/question.js +0 -125
  690. package/dist/agent-core/tools/agent/skill.d.ts +0 -11
  691. package/dist/agent-core/tools/agent/skill.js +0 -38
  692. package/dist/agent-core/tools/agent/sleep.d.ts +0 -12
  693. package/dist/agent-core/tools/agent/sleep.js +0 -54
  694. package/dist/agent-core/tools/agent/smart-compact.d.ts +0 -9
  695. package/dist/agent-core/tools/agent/smart-compact.js +0 -23
  696. package/dist/agent-core/tools/agent/todo-read.d.ts +0 -14
  697. package/dist/agent-core/tools/agent/todo-write.d.ts +0 -14
  698. package/dist/agent-core/tools/agent/todo-write.js +0 -66
  699. package/dist/agent-core/tools/agent/todo.d.ts +0 -26
  700. package/dist/agent-core/tools/agent/todo.js +0 -60
  701. package/dist/agent-core/tools/callers.d.ts +0 -6
  702. package/dist/agent-core/tools/callers.js +0 -39
  703. package/dist/agent-core/tools/code-mode/cells.d.ts +0 -29
  704. package/dist/agent-core/tools/code-mode/cells.js +0 -337
  705. package/dist/agent-core/tools/code-mode/dispatch.d.ts +0 -20
  706. package/dist/agent-core/tools/code-mode/dispatch.js +0 -80
  707. package/dist/agent-core/tools/code-mode/engine.d.ts +0 -60
  708. package/dist/agent-core/tools/code-mode/index.d.ts +0 -29
  709. package/dist/agent-core/tools/code-mode/index.js +0 -749
  710. package/dist/agent-core/tools/code-mode/observations.d.ts +0 -98
  711. package/dist/agent-core/tools/code-mode/observations.js +0 -228
  712. package/dist/agent-core/tools/code-mode/state.d.ts +0 -9
  713. package/dist/agent-core/tools/code-mode/state.js +0 -82
  714. package/dist/agent-core/tools/contracts.d.ts +0 -211
  715. package/dist/agent-core/tools/definition-projection.d.ts +0 -7
  716. package/dist/agent-core/tools/definition-projection.js +0 -26
  717. package/dist/agent-core/tools/execution-limits.d.ts +0 -69
  718. package/dist/agent-core/tools/execution-limits.js +0 -69
  719. package/dist/agent-core/tools/execution.d.ts +0 -46
  720. package/dist/agent-core/tools/execution.js +0 -191
  721. package/dist/agent-core/tools/local/apply-patch-parser.js +0 -177
  722. package/dist/agent-core/tools/local/apply-patch.d.ts +0 -19
  723. package/dist/agent-core/tools/local/apply-patch.js +0 -489
  724. package/dist/agent-core/tools/local/exec.d.ts +0 -53
  725. package/dist/agent-core/tools/local/exec.js +0 -877
  726. package/dist/agent-core/tools/local/image-processing.js +0 -146
  727. package/dist/agent-core/tools/local/read-context.js +0 -152
  728. package/dist/agent-core/tools/local/read.d.ts +0 -43
  729. package/dist/agent-core/tools/local/read.js +0 -470
  730. package/dist/agent-core/tools/local/registry.d.ts +0 -34
  731. package/dist/agent-core/tools/local/registry.js +0 -132
  732. package/dist/agent-core/tools/local/view-image.d.ts +0 -15
  733. package/dist/agent-core/tools/local/view-image.js +0 -317
  734. package/dist/agent-core/tools/local/workspace-tools.d.ts +0 -12
  735. package/dist/agent-core/tools/local/workspace-tools.js +0 -28
  736. package/dist/agent-core/tools/mcp/catalog.js +0 -220
  737. package/dist/agent-core/tools/mcp/history.d.ts +0 -4
  738. package/dist/agent-core/tools/mcp/tool-search.d.ts +0 -45
  739. package/dist/agent-core/tools/mcp/tool-search.js +0 -294
  740. package/dist/agent-core/tools/output-projection.d.ts +0 -18
  741. package/dist/agent-core/tools/output-projection.js +0 -341
  742. package/dist/agent-core/tools/permissions.d.ts +0 -85
  743. package/dist/agent-core/tools/permissions.js +0 -237
  744. package/dist/agent-core/tools/registry.d.ts +0 -7
  745. package/dist/agent-core/tools/result-extensions.d.ts +0 -46
  746. package/dist/agent-core/tools/result-extensions.js +0 -134
  747. package/dist/agent-core/tools/runtime-context.d.ts +0 -74
  748. package/dist/agent-core/tools/runtime-resource-handles.js +0 -28
  749. package/dist/agent-core/tools/runtime.js +0 -77
  750. package/dist/agent-core/tools/scheduler.d.ts +0 -12
  751. package/dist/agent-core/tools/shared/path-resolver.js +0 -133
  752. package/dist/agent-core/tools/wait.js +0 -82
  753. /package/dist/{agent-core/extensions/models.js → extensions/capabilities.js} +0 -0
  754. /package/dist/{agent-core/extensions → extensions}/compaction.js +0 -0
  755. /package/dist/{agent-core/model → extensions}/contracts.js +0 -0
  756. /package/dist/{agent-core/extensions → extensions}/hooks.js +0 -0
  757. /package/dist/{agent-core/runtime/context/contracts.js → extensions/host-ports.js} +0 -0
  758. /package/dist/{agent-core/extensions → extensions}/operation.js +0 -0
  759. /package/dist/{agent-core/runtime/contracts.js → extensions/tool-runtime.js} +0 -0
  760. /package/dist/{agent-core/extensions/contracts.js → extensions.js} +0 -0
  761. /package/dist/{agent-core/runtime/events.js → host/description.js} +0 -0
  762. /package/dist/{agent-core/host → host}/local-session-environment.js +0 -0
  763. /package/dist/{agent-core/host → host}/local-shell.js +0 -0
  764. /package/dist/{agent-core/runtime/execution-handle.js → host/skill-contract.js} +0 -0
  765. /package/dist/{agent-core/model → model}/anthropic-thinking.d.ts +0 -0
  766. /package/dist/{agent-core/model → model}/attempt-diagnostics.d.ts +0 -0
  767. /package/dist/{agent-core/model → model}/attempt-diagnostics.js +0 -0
  768. /package/dist/{agent-core/session/store → model}/contracts.js +0 -0
  769. /package/dist/{agent-core/sdk/types.js → model/image-contract.js} +0 -0
  770. /package/dist/{agent-core/model → model}/image.js +0 -0
  771. /package/dist/{agent-core/model → model}/native-context.d.ts +0 -0
  772. /package/dist/{agent-core/model → model}/native-context.js +0 -0
  773. /package/dist/{agent-core/model → model}/recovery.d.ts +0 -0
  774. /package/dist/{agent-core/model → model}/sse.d.ts +0 -0
  775. /package/dist/{agent-core/model → model}/text-blocks.d.ts +0 -0
  776. /package/dist/{agent-core/model → model}/tool-declarations.js +0 -0
  777. /package/dist/{agent-core/model → model}/tool-input.d.ts +0 -0
  778. /package/dist/{agent-core/model → model}/tool-input.js +0 -0
  779. /package/dist/{agent-core/model → model}/usage-observer.js +0 -0
  780. /package/dist/{agent-core/session/store/types.js → model/usage.js} +0 -0
  781. /package/dist/{agent-core/subagent → process}/contracts.js +0 -0
  782. /package/dist/{agent-core/prompts → prompts}/compact.d.ts +0 -0
  783. /package/dist/{agent-core/prompts → prompts}/compact.js +0 -0
  784. /package/dist/{agent-core/prompts → prompts}/core.d.ts +0 -0
  785. /package/dist/{agent-core/prompts → prompts}/core.js +0 -0
  786. /package/dist/{agent-core/prompts → prompts}/markup.d.ts +0 -0
  787. /package/dist/{agent-core/prompts → prompts}/markup.js +0 -0
  788. /package/dist/{agent-core/prompts → prompts}/modes.d.ts +0 -0
  789. /package/dist/{agent-core/prompts → prompts}/modes.js +0 -0
  790. /package/dist/{agent-core/prompts → prompts}/output.d.ts +0 -0
  791. /package/dist/{agent-core/prompts → prompts}/output.js +0 -0
  792. /package/dist/{agent-core/prompts → prompts}/permissions.d.ts +0 -0
  793. /package/dist/{agent-core/prompts → prompts}/permissions.js +0 -0
  794. /package/dist/{agent-core/tools/local → prompts}/read-context.d.ts +0 -0
  795. /package/dist/{agent-core/prompts → prompts}/resources.d.ts +0 -0
  796. /package/dist/{agent-core/prompts → prompts}/resources.js +0 -0
  797. /package/dist/{agent-core/prompts → prompts}/subagent.d.ts +0 -0
  798. /package/dist/{agent-core/prompts → prompts}/subagent.js +0 -0
  799. /package/dist/{agent-core/prompts → prompts}/workflow.d.ts +0 -0
  800. /package/dist/{agent-core/prompts → prompts}/workflow.js +0 -0
  801. /package/dist/{agent-core/runtime → runtime}/async-queue.d.ts +0 -0
  802. /package/dist/{agent-core/runtime → runtime}/async-queue.js +0 -0
  803. /package/dist/{agent-core/tools → runtime/compaction}/contracts.js +0 -0
  804. /package/dist/{agent-core/runtime → runtime}/compaction/coordinator.d.ts +0 -0
  805. /package/dist/{agent-core/runtime → runtime}/compaction/history.js +0 -0
  806. /package/dist/{agent-core/runtime → runtime}/context/contracts.d.ts +0 -0
  807. /package/dist/{agent-core/session/types.js → runtime/context/contracts.js} +0 -0
  808. /package/dist/{agent-core/runtime → runtime}/context/environment.js +0 -0
  809. /package/dist/{agent-core/tools/code-mode/engine.js → runtime/context/gc-contracts.js} +0 -0
  810. /package/dist/{agent-core/runtime → runtime}/context/gc-runtime.js +0 -0
  811. /package/dist/{agent-core/runtime → runtime}/context/normalize.js +0 -0
  812. /package/dist/{agent-core/tools/code-mode/worker.d.ts → runtime/contracts.js} +0 -0
  813. /package/dist/{agent-core/tools/runtime-context.js → runtime/events.js} +0 -0
  814. /package/dist/{agent-core/runtime → runtime}/execution-policy.d.ts +0 -0
  815. /package/dist/{agent-core/runtime → runtime}/execution-policy.js +0 -0
  816. /package/dist/{agent-core/runtime → runtime}/model-generation-timing.d.ts +0 -0
  817. /package/dist/{agent-core/runtime → runtime}/model-generation-timing.js +0 -0
  818. /package/dist/{agent-core/runtime → runtime}/model-progress.d.ts +0 -0
  819. /package/dist/{agent-core/runtime → runtime}/plan-output.d.ts +0 -0
  820. /package/dist/{agent-core/runtime → runtime}/plan-output.js +0 -0
  821. /package/dist/{agent-core/tools/public-metadata.d.ts → runtime/public-tool-metadata.d.ts} +0 -0
  822. /package/dist/{agent-core/tools/public-metadata.js → runtime/public-tool-metadata.js} +0 -0
  823. /package/dist/{agent-core/runtime → runtime}/token-budget.d.ts +0 -0
  824. /package/dist/{agent-core/runtime → runtime}/token-budget.js +0 -0
  825. /package/dist/{agent-core/tools → runtime}/wait.d.ts +0 -0
  826. /package/dist/{agent-core/sdk → sdk}/request-preparation.js +0 -0
  827. /package/dist/{agent-core/session → session}/context-gc-markup.d.ts +0 -0
  828. /package/dist/{agent-core/session → session}/context-gc-markup.js +0 -0
  829. /package/dist/{agent-core/session → session}/context-gc-replacements.js +0 -0
  830. /package/dist/{agent-core/session → session}/context-gc-subagent.js +0 -0
  831. /package/dist/{agent-core/session → session}/types.d.ts +0 -0
  832. /package/dist/{agent-core/storage → storage}/file-lock.d.ts +0 -0
  833. /package/dist/{agent-core/subagent → subagent}/model-update.d.ts +0 -0
  834. /package/dist/{agent-core/tools → tools}/agent/todo-read.js +0 -0
  835. /package/dist/{agent-core/tools → tools}/code-mode/quickjs-engine.d.ts +0 -0
  836. /package/dist/{agent-core/tools → tools}/code-mode/quickjs-engine.js +0 -0
  837. /package/dist/{agent-core/tools → tools}/code-mode/text-output.d.ts +0 -0
  838. /package/dist/{agent-core/tools → tools}/code-mode/text-output.js +0 -0
  839. /package/dist/{agent-core/tools → tools}/code-mode/worker.js +0 -0
  840. /package/dist/{agent-core/tools → tools}/file-change-diff.d.ts +0 -0
  841. /package/dist/{agent-core/tools → tools}/file-change-diff.js +0 -0
  842. /package/dist/{agent-core/tools → tools}/input-diagnostics/source-preview.d.ts +0 -0
  843. /package/dist/{agent-core/tools → tools}/input-diagnostics/source-preview.js +0 -0
  844. /package/dist/{agent-core/tools → tools}/input.d.ts +0 -0
  845. /package/dist/{agent-core/tools → tools}/input.js +0 -0
  846. /package/dist/{agent-core/tools → tools}/local/apply-patch-parser.d.ts +0 -0
  847. /package/dist/{agent-core/tools → tools}/local/image-processing.d.ts +0 -0
  848. /package/dist/{agent-core/tools → tools}/mcp/catalog.d.ts +0 -0
  849. /package/dist/{agent-core/tools → tools}/mcp/history.js +0 -0
  850. /package/dist/{agent-core/tools → tools}/registry.js +0 -0
  851. /package/dist/{agent-core/tools → tools}/runtime-resource-handles.d.ts +0 -0
  852. /package/dist/{agent-core/tools → tools}/runtime.d.ts +0 -0
  853. /package/dist/{agent-core/tools → tools}/scheduler.js +0 -0
  854. /package/dist/{agent-core/tools → tools}/shared/patch-result.d.ts +0 -0
  855. /package/dist/{agent-core/tools → tools}/shared/patch-result.js +0 -0
  856. /package/dist/{agent-core/tools → tools}/shared/path-resolver.d.ts +0 -0
@@ -0,0 +1,686 @@
1
+ import { RuntimeResourceHandles } from '../tools/runtime-resource-handles.js';
2
+ import { StringDecoder } from 'node:string_decoder';
3
+ import { AgentError } from '../error.js';
4
+ import { directLocalProcessExecutor, signalProcessTree } from './local-process-executor.js';
5
+ import { TOOL_EXECUTION_LIMITS } from '../tools/execution-limits.js';
6
+ import { waitForToolCondition, waitMetadata } from '../tools/wait.js';
7
+ import { validateCoreProcessInput } from '../extensions/processes.js';
8
+ import { parseExecInput } from '../tools/local/exec.js';
9
+ export class ExecTool {
10
+ paths;
11
+ maxOutputBytes;
12
+ maxProcesses;
13
+ environment;
14
+ shell;
15
+ processExecutor;
16
+ #processes = new Map();
17
+ #completed = new Map();
18
+ #handles = new RuntimeResourceHandles('process', (id) => this.#processes.has(id) || this.#completed.has(id));
19
+ #startingProcesses = new Set();
20
+ constructor(paths, maxOutputBytes = TOOL_EXECUTION_LIMITS.execDefaultMaxOutputBytes, maxProcesses = TOOL_EXECUTION_LIMITS.maxProcesses, environment = process.env, shell, processExecutor = directLocalProcessExecutor) {
21
+ this.paths = paths;
22
+ this.maxOutputBytes = maxOutputBytes;
23
+ this.maxProcesses = maxProcesses;
24
+ this.environment = environment;
25
+ this.shell = shell;
26
+ this.processExecutor = processExecutor;
27
+ }
28
+ async execute(arguments_, signal, owner, waitInterrupt, onOutput) {
29
+ if (signal?.aborted)
30
+ throw executionAbortReason(signal);
31
+ const input = parseExecInput(arguments_);
32
+ if ('processId' in input) {
33
+ this.#handles.assertType(input.processId);
34
+ const process = this.#processes.get(input.processId);
35
+ const completed = this.#completed.get(input.processId);
36
+ if (completed) {
37
+ if (owner !== undefined && completed.ownerSessionId !== owner.sessionId)
38
+ throw new AgentError('MAR_AGENT_PROCESS_NOT_FOUND', 'Managed process was not found.');
39
+ if (input.action === 'write')
40
+ throw new AgentError('MAR_AGENT_TOOL_INPUT_INVALID', 'Completed process cannot accept input.');
41
+ if (input.action === 'cancel')
42
+ this.#removeCompleted(input.processId);
43
+ return {
44
+ ...completed.result,
45
+ cached: true,
46
+ ...(input.action === 'poll'
47
+ ? waitMetadata(input.yieldMs === 0 ? 'snapshot' : 'completion')
48
+ : {})
49
+ };
50
+ }
51
+ if (!process ||
52
+ process.native ||
53
+ (owner !== undefined && process.ownerSessionId !== owner.sessionId))
54
+ throw new AgentError('MAR_AGENT_PROCESS_NOT_FOUND', 'Managed process was not found.');
55
+ let outcome;
56
+ if (input.action === 'poll' && input.yieldMs)
57
+ outcome = await waitForProcessCompletion(input.processId, process, Math.min(Math.max(input.yieldMs, 0), TOOL_EXECUTION_LIMITS.execMaxPollYieldMs), signal, waitInterrupt, onOutput);
58
+ if (input.action === 'write') {
59
+ if (process.status !== 'running')
60
+ throw new AgentError('MAR_AGENT_TOOL_INPUT_INVALID', 'Completed process cannot accept input.');
61
+ process.child.stdin.write(input.data);
62
+ }
63
+ if (input.action === 'cancel')
64
+ await this.#terminate(process, true);
65
+ const result = this.#result(input.processId, process);
66
+ if (process.status !== 'running') {
67
+ this.#retainCompleted(input.processId, process);
68
+ if (input.action === 'cancel')
69
+ this.#removeCompleted(input.processId);
70
+ }
71
+ return {
72
+ ...result,
73
+ ...(input.action === 'poll'
74
+ ? waitMetadata(input.yieldMs === 0
75
+ ? 'snapshot'
76
+ : result.status !== 'running'
77
+ ? 'completion'
78
+ : outcome === 'interrupted'
79
+ ? 'interrupted'
80
+ : 'timeout')
81
+ : {})
82
+ };
83
+ }
84
+ const { id, managed } = await this.#startManaged(async () => {
85
+ const cwd = await this.paths.resolveWithDisplay(input.cwd ?? '.');
86
+ return {
87
+ command: input.command,
88
+ cwd: cwd.physicalPath,
89
+ shell: this.shell ?? true,
90
+ shellLogin: input.login ?? true,
91
+ environment: this.environment,
92
+ displayCwd: cwd.displayPath,
93
+ detached: process.platform !== 'win32',
94
+ ...(owner === undefined ? {} : { owner }),
95
+ ...(signal === undefined ? {} : { signal })
96
+ };
97
+ }, owner?.sessionId, false);
98
+ if (input.timeoutMs !== undefined) {
99
+ managed.timer = setTimeout(() => {
100
+ void this.#terminate(managed, true).then(() => this.#retainCompleted(id, managed));
101
+ }, Math.min(input.timeoutMs, TOOL_EXECUTION_LIMITS.execMaxTimeoutMs));
102
+ managed.timer.unref();
103
+ }
104
+ const yieldMs = Math.min(input.yieldMs ?? TOOL_EXECUTION_LIMITS.execDefaultYieldMs, TOOL_EXECUTION_LIMITS.execMaxYieldMs);
105
+ const outcome = yieldMs === 0
106
+ ? undefined
107
+ : await waitForProcessCompletion(id, managed, yieldMs, signal, waitInterrupt, onOutput);
108
+ const result = this.#result(id, managed);
109
+ if (managed.status !== 'running')
110
+ this.#retainCompleted(id, managed);
111
+ return {
112
+ ...result,
113
+ ...waitMetadata(yieldMs === 0
114
+ ? 'snapshot'
115
+ : result.status !== 'running'
116
+ ? 'completion'
117
+ : outcome === 'interrupted'
118
+ ? 'interrupted'
119
+ : 'timeout')
120
+ };
121
+ }
122
+ async #startManaged(request, ownerSessionId, native) {
123
+ if (this.#processes.size + this.#startingProcesses.size >= this.maxProcesses)
124
+ throw new AgentError('MAR_AGENT_PROCESS_LIMIT', `The Local Host shared managed-process limit (${this.maxProcesses}) was reached.`);
125
+ let resolveStarting;
126
+ const starting = {
127
+ ...(ownerSessionId === undefined ? {} : { ownerSessionId }),
128
+ settled: new Promise((resolve) => (resolveStarting = resolve)),
129
+ resolveSettled: () => resolveStarting()
130
+ };
131
+ this.#startingProcesses.add(starting);
132
+ try {
133
+ const { displayCwd, ...input } = await request();
134
+ input.signal?.throwIfAborted();
135
+ let child;
136
+ try {
137
+ child = await this.processExecutor.spawn(input);
138
+ }
139
+ catch (error) {
140
+ input.signal?.throwIfAborted();
141
+ if (!native || error instanceof AgentError)
142
+ throw error;
143
+ throw new AgentError('MAR_AGENT_PROCESS_START_FAILED', 'Native process executor failed to start.', {
144
+ details: { reasonCode: error?.code ?? 'UNKNOWN' }
145
+ });
146
+ }
147
+ const id = this.#handles.create();
148
+ let resolveExited;
149
+ let resolveSettled;
150
+ const managed = {
151
+ child,
152
+ native,
153
+ ...(ownerSessionId === undefined ? {} : { ownerSessionId }),
154
+ command: input.command,
155
+ cwd: displayCwd ?? input.cwd,
156
+ stdout: createOutputBuffer(),
157
+ stderr: createOutputBuffer(),
158
+ stdoutHistory: createOutputBuffer(),
159
+ stderrHistory: createOutputBuffer(),
160
+ status: 'running',
161
+ exited: new Promise((resolve) => (resolveExited = resolve)),
162
+ settled: new Promise((resolve) => (resolveSettled = resolve)),
163
+ resolveExited,
164
+ resolveSettled,
165
+ exitObserved: child.exitCode !== null || child.signalCode != null,
166
+ ...(child.exitCode === null ? {} : { exitCode: child.exitCode }),
167
+ ...(child.signalCode == null ? {} : { exitSignal: child.signalCode }),
168
+ finalized: false,
169
+ terminalResultReturned: false,
170
+ waiters: new Set()
171
+ };
172
+ this.#processes.set(id, managed);
173
+ if (native) {
174
+ // Keep unread bytes in the Readable buffer: Node otherwise resumes unused stdio at exit.
175
+ const readable = () => { };
176
+ child.stdout.on('readable', readable);
177
+ child.stderr.on('readable', readable);
178
+ child.once('close', () => {
179
+ child.stdout.removeListener('readable', readable);
180
+ child.stderr.removeListener('readable', readable);
181
+ });
182
+ }
183
+ if (!native) {
184
+ const listen = (name) => child[name].on('data', (chunk) => {
185
+ if (managed.finalized)
186
+ return;
187
+ const decoded = Buffer.from(managed[name].decoder.write(chunk));
188
+ appendOutput(managed[name], decoded, this.maxOutputBytes, chunk.length);
189
+ appendOutput(managed[name === 'stdout' ? 'stdoutHistory' : 'stderrHistory'], decoded, this.maxOutputBytes, chunk.length);
190
+ notifyProcessChange(managed);
191
+ });
192
+ listen('stdout');
193
+ listen('stderr');
194
+ }
195
+ child.once('exit', (code, signal) => {
196
+ managed.exitObserved = true;
197
+ managed.exitCode = code;
198
+ managed.exitSignal = signal;
199
+ managed.resolveExited();
200
+ if (!native)
201
+ void finalizeAfterOutputGrace(managed, this.maxOutputBytes).then(() => this.#retainCompleted(id, managed));
202
+ });
203
+ child.once('close', (code, signal) => {
204
+ managed.exitObserved = true;
205
+ managed.exitSignal = signal;
206
+ managed.resolveExited();
207
+ finalizeManagedProcess(managed, this.maxOutputBytes, code);
208
+ if (native)
209
+ this.#processes.delete(id);
210
+ else
211
+ this.#retainCompleted(id, managed);
212
+ });
213
+ child.once('error', (error) => {
214
+ if (managed.finalized)
215
+ return;
216
+ if (native) {
217
+ managed.failure = new AgentError('MAR_AGENT_PROCESS_START_FAILED', 'Native process failed to start.', {
218
+ details: { reasonCode: error.code ?? 'UNKNOWN' }
219
+ });
220
+ managed.exitObserved = true;
221
+ managed.resolveExited();
222
+ }
223
+ else {
224
+ const message = Buffer.from(error.message);
225
+ appendOutput(managed.stderr, message, this.maxOutputBytes);
226
+ appendOutput(managed.stderrHistory, message, this.maxOutputBytes);
227
+ notifyProcessChange(managed);
228
+ }
229
+ });
230
+ if (managed.exitObserved) {
231
+ managed.resolveExited();
232
+ if (child.stdout.closed && child.stderr.closed) {
233
+ finalizeManagedProcess(managed, this.maxOutputBytes, child.exitCode);
234
+ if (native)
235
+ this.#processes.delete(id);
236
+ else
237
+ this.#retainCompleted(id, managed);
238
+ }
239
+ }
240
+ return { id, managed };
241
+ }
242
+ finally {
243
+ this.#startingProcesses.delete(starting);
244
+ starting.resolveSettled();
245
+ }
246
+ }
247
+ async spawn(input, call) {
248
+ validateCoreProcessInput(input);
249
+ input = {
250
+ ...input,
251
+ ...(input.argv === undefined ? {} : { argv: [...input.argv] }),
252
+ ...(input.env === undefined ? {} : { env: { ...input.env } }),
253
+ ...(input.input instanceof Uint8Array ? { input: new Uint8Array(input.input) } : {})
254
+ };
255
+ const { id, managed } = await this.#startManaged(async () => {
256
+ const cwd = await this.paths.resolve(input.cwd ?? '.');
257
+ return {
258
+ command: input.executable,
259
+ args: [...(input.argv ?? [])],
260
+ cwd,
261
+ shell: false,
262
+ environment: { ...this.environment, ...input.env },
263
+ environmentKeys: Object.keys(input.env ?? {}),
264
+ ...(input.env === undefined ? {} : { environmentOverrides: input.env }),
265
+ detached: process.platform !== 'win32',
266
+ signal: call.signal,
267
+ owner: {
268
+ sessionId: call.sessionId,
269
+ operationId: call.operationId,
270
+ ...(call.executionId ? { executionId: call.executionId } : {}),
271
+ ...(call.ownerInstanceId ? { ownerInstanceId: call.ownerInstanceId } : {})
272
+ }
273
+ };
274
+ }, call.sessionId, true);
275
+ let cleanup;
276
+ const cancel = () => (cleanup ??= (async () => {
277
+ call.signal.removeEventListener('abort', abort);
278
+ await this.#terminate(managed, false);
279
+ destroyManagedStreams(managed);
280
+ this.#processes.delete(id);
281
+ })());
282
+ const abort = () => {
283
+ void cancel().catch(() => undefined);
284
+ };
285
+ call.signal.addEventListener('abort', abort, { once: true });
286
+ managed.child.once('close', () => call.signal.removeEventListener('abort', abort));
287
+ managed.child.stdin.on('error', (error) => {
288
+ if (error.code !== 'EPIPE' && !cleanup)
289
+ managed.failure = new AgentError('MAR_AGENT_PROCESS_IO_FAILED', 'Native process input failed.', {
290
+ details: { reasonCode: error.code ?? 'UNKNOWN' }
291
+ });
292
+ });
293
+ managed.child.stdin.end(input.input);
294
+ if (call.signal.aborted) {
295
+ await cancel();
296
+ call.signal.throwIfAborted();
297
+ }
298
+ const opened = new Promise((resolve, reject) => {
299
+ if (managed.child.pid) {
300
+ resolve();
301
+ return;
302
+ }
303
+ if (managed.failure) {
304
+ reject(managed.failure);
305
+ return;
306
+ }
307
+ const spawned = () => {
308
+ managed.child.removeListener('error', failed);
309
+ resolve();
310
+ };
311
+ const failed = () => {
312
+ managed.child.removeListener('spawn', spawned);
313
+ reject(managed.failure);
314
+ };
315
+ managed.child.once('spawn', spawned);
316
+ managed.child.once('error', failed);
317
+ });
318
+ try {
319
+ await opened;
320
+ }
321
+ catch (error) {
322
+ await cancel();
323
+ throw error;
324
+ }
325
+ const stream = (name) => ({
326
+ async *[Symbol.asyncIterator]() {
327
+ try {
328
+ for await (const chunk of managed.child[name])
329
+ yield new Uint8Array(chunk);
330
+ }
331
+ catch (error) {
332
+ if (!cleanup && !call.signal.aborted)
333
+ throw new AgentError('MAR_AGENT_PROCESS_IO_FAILED', 'Native process output failed.', {
334
+ details: {
335
+ stream: name,
336
+ reasonCode: error.code ?? 'UNKNOWN'
337
+ }
338
+ });
339
+ }
340
+ }
341
+ });
342
+ return {
343
+ processId: id,
344
+ stdout: stream('stdout'),
345
+ stderr: stream('stderr'),
346
+ cancel,
347
+ wait: async () => {
348
+ await managed.exited;
349
+ call.signal.throwIfAborted();
350
+ if (managed.failure)
351
+ throw managed.failure;
352
+ return { code: managed.exitCode ?? null, signal: managed.exitSignal ?? null };
353
+ }
354
+ };
355
+ }
356
+ listSessionResources(sessionId) {
357
+ return [
358
+ ...[...this.#processes.entries()].flatMap(([processId, process]) => !process.native && process.ownerSessionId === sessionId
359
+ ? [{ processId, status: process.status, command: process.command, cwd: process.cwd }]
360
+ : []),
361
+ ...[...this.#completed.entries()].flatMap(([processId, process]) => process.ownerSessionId === sessionId
362
+ ? [
363
+ {
364
+ processId,
365
+ status: process.result.status,
366
+ command: process.command,
367
+ cwd: process.cwd
368
+ }
369
+ ]
370
+ : [])
371
+ ];
372
+ }
373
+ async disposeSession(sessionId) {
374
+ await Promise.all([...this.#startingProcesses]
375
+ .filter((process) => process.ownerSessionId === sessionId)
376
+ .map((process) => process.settled));
377
+ const owned = [...this.#processes.entries()].filter(([, process]) => process.ownerSessionId === sessionId);
378
+ await Promise.all(owned.map(([, process]) => process.status === 'running' ? this.#terminate(process, false) : process.settled));
379
+ for (const [processId] of owned)
380
+ this.#processes.delete(processId);
381
+ for (const [processId, process] of this.#completed)
382
+ if (process.ownerSessionId === sessionId)
383
+ this.#removeCompleted(processId);
384
+ }
385
+ #removeCompleted(id) {
386
+ const completed = this.#completed.get(id);
387
+ if (!completed)
388
+ return;
389
+ clearTimeout(completed.timer);
390
+ this.#completed.delete(id);
391
+ }
392
+ #retainCompleted(id, process) {
393
+ if (process.native ||
394
+ process.status === 'running' ||
395
+ !process.finalized ||
396
+ !process.terminalResultReturned ||
397
+ this.#processes.get(id) !== process)
398
+ return;
399
+ this.#processes.delete(id);
400
+ const stdout = consumeOutput(process.stdoutHistory);
401
+ const stderr = consumeOutput(process.stderrHistory);
402
+ const timer = setTimeout(() => this.#removeCompleted(id), TOOL_EXECUTION_LIMITS.execCompletedRetentionMs);
403
+ timer.unref();
404
+ this.#completed.set(id, {
405
+ ...(process.ownerSessionId === undefined ? {} : { ownerSessionId: process.ownerSessionId }),
406
+ command: process.command,
407
+ cwd: process.cwd,
408
+ timer,
409
+ result: {
410
+ status: process.status,
411
+ processId: id,
412
+ stdout: stdout.value,
413
+ stderr: stderr.value,
414
+ ...(process.exitCode === undefined ? {} : { exitCode: process.exitCode }),
415
+ truncated: stdout.droppedBytes > 0 || stderr.droppedBytes > 0,
416
+ stdoutBytes: process.stdout.totalBytes,
417
+ stderrBytes: process.stderr.totalBytes,
418
+ stdoutDroppedBytes: stdout.droppedBytes,
419
+ stderrDroppedBytes: stderr.droppedBytes
420
+ }
421
+ });
422
+ while (this.#completed.size > TOOL_EXECUTION_LIMITS.execMaxCompletedResults)
423
+ this.#removeCompleted(this.#completed.keys().next().value);
424
+ }
425
+ async #terminate(managed, waitForOutputClose) {
426
+ if (managed.terminate)
427
+ return managed.terminate;
428
+ managed.terminate = (async () => {
429
+ if (managed.exitObserved || managed.child.exitCode !== null) {
430
+ if (managed.native && !managed.finalized)
431
+ await signalProcessTree(managed.child, 'SIGKILL');
432
+ if (managed.child.exitCode !== null)
433
+ managed.exitCode = managed.child.exitCode;
434
+ if (waitForOutputClose) {
435
+ const settled = await waitForExit(managed.settled, TOOL_EXECUTION_LIMITS.execTerminationGraceMs);
436
+ if (settled)
437
+ return;
438
+ }
439
+ finalizeManagedProcess(managed, this.maxOutputBytes, managed.child.exitCode);
440
+ destroyManagedStreams(managed);
441
+ return;
442
+ }
443
+ managed.status = 'cancelled';
444
+ if (managed.timer)
445
+ clearTimeout(managed.timer);
446
+ await signalProcessTree(managed.child, 'SIGTERM');
447
+ const exited = await waitForExit(managed.exited, TOOL_EXECUTION_LIMITS.execTerminationGraceMs);
448
+ if (!exited) {
449
+ await signalProcessTree(managed.child, 'SIGKILL');
450
+ await managed.exited;
451
+ }
452
+ // A parent may exit on TERM while descendants ignore it and keep the pipes alive.
453
+ if (managed.native)
454
+ await signalProcessTree(managed.child, 'SIGKILL');
455
+ if (waitForOutputClose) {
456
+ const settled = await waitForExit(managed.settled, TOOL_EXECUTION_LIMITS.execTerminationGraceMs);
457
+ if (settled)
458
+ return;
459
+ }
460
+ finalizeManagedProcess(managed, this.maxOutputBytes, managed.exitCode);
461
+ destroyManagedStreams(managed);
462
+ })();
463
+ return managed.terminate;
464
+ }
465
+ #result(id, process) {
466
+ // Uncollected terminal output is a live resource, not an expiring replay.
467
+ if (process.status !== 'running')
468
+ process.terminalResultReturned = true;
469
+ const stdout = consumeOutput(process.stdout);
470
+ const stderr = consumeOutput(process.stderr);
471
+ return {
472
+ status: process.status,
473
+ processId: id,
474
+ stdout: stdout.value,
475
+ stderr: stderr.value,
476
+ ...(process.exitCode === undefined ? {} : { exitCode: process.exitCode }),
477
+ truncated: stdout.droppedBytes > 0 || stderr.droppedBytes > 0,
478
+ stdoutBytes: process.stdout.totalBytes,
479
+ stderrBytes: process.stderr.totalBytes,
480
+ stdoutDroppedBytes: stdout.droppedBytes,
481
+ stderrDroppedBytes: stderr.droppedBytes
482
+ };
483
+ }
484
+ async dispose() {
485
+ await Promise.all([...this.#startingProcesses].map((process) => process.settled));
486
+ await Promise.all([...this.#processes.values()].map((process) => process.status === 'running' ? this.#terminate(process, false) : process.settled));
487
+ this.#processes.clear();
488
+ for (const id of this.#completed.keys())
489
+ this.#removeCompleted(id);
490
+ }
491
+ }
492
+ function createOutputBuffer() {
493
+ return {
494
+ chunks: [],
495
+ bytes: 0,
496
+ totalBytes: 0,
497
+ droppedBytes: 0,
498
+ windowOffset: 0,
499
+ decoder: new StringDecoder('utf8')
500
+ };
501
+ }
502
+ function finalizeManagedProcess(managed, maximumOutputBytes, exitCode) {
503
+ if (managed.finalized)
504
+ return;
505
+ managed.finalized = true;
506
+ const stdoutEnd = Buffer.from(managed.stdout.decoder.end());
507
+ const stderrEnd = Buffer.from(managed.stderr.decoder.end());
508
+ appendOutput(managed.stdout, stdoutEnd, maximumOutputBytes);
509
+ appendOutput(managed.stderr, stderrEnd, maximumOutputBytes);
510
+ appendOutput(managed.stdoutHistory, stdoutEnd, maximumOutputBytes);
511
+ appendOutput(managed.stderrHistory, stderrEnd, maximumOutputBytes);
512
+ managed.status = managed.status === 'cancelled' ? 'cancelled' : 'completed';
513
+ if (exitCode !== undefined)
514
+ managed.exitCode = exitCode;
515
+ if (managed.timer)
516
+ clearTimeout(managed.timer);
517
+ notifyProcessChange(managed);
518
+ managed.resolveSettled();
519
+ }
520
+ async function finalizeAfterOutputGrace(managed, maximumOutputBytes) {
521
+ const settled = await waitForExit(managed.settled, TOOL_EXECUTION_LIMITS.execTerminationGraceMs);
522
+ if (settled)
523
+ return;
524
+ finalizeManagedProcess(managed, maximumOutputBytes, managed.exitCode);
525
+ destroyManagedStreams(managed);
526
+ }
527
+ function destroyManagedStreams(managed) {
528
+ managed.child.stdin.destroy();
529
+ managed.child.stdout.destroy();
530
+ managed.child.stderr.destroy();
531
+ }
532
+ function appendOutput(output, chunk, maximumBytes, receivedBytes = chunk.length) {
533
+ output.totalBytes += receivedBytes;
534
+ if (!chunk.length)
535
+ return;
536
+ output.chunks.push(chunk);
537
+ output.bytes += chunk.length;
538
+ // Retain the oldest and newest halves symmetrically so early failures stay
539
+ // visible next to the latest progress; droppedBytes makes the discarded
540
+ // middle explicit because it is not recoverable from this bounded buffer.
541
+ const overflow = output.bytes - maximumBytes;
542
+ if (overflow <= 0)
543
+ return;
544
+ const head = Math.ceil(maximumBytes / 2);
545
+ // Materialize the current window once per overflow so subsequent appends slice
546
+ // it zero-copy instead of re-concatenating the whole retained buffer per chunk.
547
+ let span = output.window;
548
+ if (!span || output.bytes !== span.length - output.windowOffset) {
549
+ span = Buffer.concat(output.chunks, output.bytes);
550
+ output.windowOffset = 0;
551
+ }
552
+ const content = span.subarray(output.windowOffset, output.windowOffset + output.bytes);
553
+ output.chunks = [];
554
+ output.bytes = 0;
555
+ const pushSlice = (start, end) => {
556
+ while (start < end && (content[start] & 0xc0) === 0x80)
557
+ start++;
558
+ while (end > start && end < content.length && (content[end] & 0xc0) === 0x80)
559
+ end--;
560
+ if (start >= end)
561
+ return;
562
+ const slice = content.subarray(start, end);
563
+ output.chunks.push(slice);
564
+ output.bytes += slice.length;
565
+ };
566
+ pushSlice(0, Math.min(head, content.length));
567
+ pushSlice(Math.min(head + overflow, content.length), content.length);
568
+ output.droppedBytes += content.length - output.bytes;
569
+ output.window = span;
570
+ }
571
+ function consumeOutput(output) {
572
+ const value = Buffer.concat(output.chunks, output.bytes).toString('utf8');
573
+ const droppedBytes = output.droppedBytes;
574
+ output.chunks = [];
575
+ output.bytes = 0;
576
+ output.droppedBytes = 0;
577
+ delete output.window;
578
+ output.windowOffset = 0;
579
+ return { value, droppedBytes };
580
+ }
581
+ async function waitForExit(exited, delayMs) {
582
+ let timer;
583
+ try {
584
+ return await Promise.race([
585
+ exited.then(() => true),
586
+ new Promise((resolve) => {
587
+ timer = setTimeout(() => resolve(false), delayMs);
588
+ timer.unref();
589
+ })
590
+ ]);
591
+ }
592
+ finally {
593
+ if (timer)
594
+ clearTimeout(timer);
595
+ }
596
+ }
597
+ function notifyProcessChange(managed) {
598
+ for (const resolve of managed.waiters)
599
+ resolve();
600
+ }
601
+ async function waitForProcessCompletion(processId, managed, waitMs, signal, interrupt, onOutput) {
602
+ const stopOutput = onOutput && watchProcessOutput(processId, managed, onOutput);
603
+ try {
604
+ return await waitForToolCondition({
605
+ ready: () => managed.finalized,
606
+ subscribe: (notify) => {
607
+ managed.waiters.add(notify);
608
+ return () => {
609
+ managed.waiters.delete(notify);
610
+ };
611
+ },
612
+ waitMs,
613
+ signal,
614
+ interrupt
615
+ });
616
+ }
617
+ finally {
618
+ stopOutput?.();
619
+ }
620
+ }
621
+ /** Coalesce display snapshots without consuming output or queueing behind a slow observer. */
622
+ function watchProcessOutput(processId, managed, onOutput) {
623
+ let stopped = false;
624
+ let dirty = false;
625
+ let timer;
626
+ let inFlight;
627
+ let failed = false;
628
+ const publish = () => {
629
+ dirty = false;
630
+ const preview = (output) => {
631
+ const bounded = createOutputBuffer();
632
+ for (const chunk of output.chunks)
633
+ appendOutput(bounded, chunk, TOOL_EXECUTION_LIMITS.execProgressMaxOutputBytes);
634
+ const result = consumeOutput(bounded);
635
+ return { ...result, droppedBytes: result.droppedBytes + output.droppedBytes };
636
+ };
637
+ const stdout = preview(managed.stdout);
638
+ const stderr = preview(managed.stderr);
639
+ inFlight = Promise.resolve()
640
+ .then(() => {
641
+ if (stopped)
642
+ return;
643
+ return onOutput({
644
+ processId,
645
+ stdout: stdout.value,
646
+ stderr: stderr.value,
647
+ truncated: stdout.droppedBytes > 0 || stderr.droppedBytes > 0
648
+ });
649
+ })
650
+ .catch(() => {
651
+ // Display delivery must not change the process result or wait deadline.
652
+ failed = true;
653
+ })
654
+ .finally(() => {
655
+ inFlight = undefined;
656
+ if (dirty)
657
+ schedule();
658
+ });
659
+ };
660
+ const schedule = () => {
661
+ if (stopped || failed || timer || inFlight)
662
+ return;
663
+ timer = setTimeout(() => {
664
+ timer = undefined;
665
+ publish();
666
+ }, TOOL_EXECUTION_LIMITS.execProgressIntervalMs);
667
+ timer.unref();
668
+ };
669
+ const changed = () => {
670
+ if (managed.stdout.bytes === 0 && managed.stderr.bytes === 0)
671
+ return;
672
+ dirty = true;
673
+ schedule();
674
+ };
675
+ managed.waiters.add(changed);
676
+ changed();
677
+ return () => {
678
+ stopped = true;
679
+ managed.waiters.delete(changed);
680
+ if (timer)
681
+ clearTimeout(timer);
682
+ };
683
+ }
684
+ function executionAbortReason(signal) {
685
+ return signal?.reason ?? new AgentError('MAR_AGENT_EXECUTION_CANCELLED', 'Execution cancelled.');
686
+ }