agent-tower 0.7.1-beta.3 → 0.7.1

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 (373) hide show
  1. package/dist/executors/__tests__/base.executor.test.js +2 -2
  2. package/dist/executors/__tests__/base.executor.test.js.map +1 -1
  3. package/dist/executors/__tests__/codex.executor.test.js +137 -25
  4. package/dist/executors/__tests__/codex.executor.test.js.map +1 -1
  5. package/dist/executors/__tests__/providers.test.js +69 -2
  6. package/dist/executors/__tests__/providers.test.js.map +1 -1
  7. package/dist/executors/__tests__/stdin-prompt.executors.test.js +61 -3
  8. package/dist/executors/__tests__/stdin-prompt.executors.test.js.map +1 -1
  9. package/dist/executors/base.executor.d.ts +8 -1
  10. package/dist/executors/base.executor.d.ts.map +1 -1
  11. package/dist/executors/base.executor.js +22 -8
  12. package/dist/executors/base.executor.js.map +1 -1
  13. package/dist/executors/claude-code.executor.d.ts +2 -0
  14. package/dist/executors/claude-code.executor.d.ts.map +1 -1
  15. package/dist/executors/claude-code.executor.js +51 -41
  16. package/dist/executors/claude-code.executor.js.map +1 -1
  17. package/dist/executors/codex.executor.d.ts +3 -0
  18. package/dist/executors/codex.executor.d.ts.map +1 -1
  19. package/dist/executors/codex.executor.js +35 -1
  20. package/dist/executors/codex.executor.js.map +1 -1
  21. package/dist/executors/cursor-agent.executor.d.ts +1 -0
  22. package/dist/executors/cursor-agent.executor.d.ts.map +1 -1
  23. package/dist/executors/cursor-agent.executor.js +2 -0
  24. package/dist/executors/cursor-agent.executor.js.map +1 -1
  25. package/dist/executors/default-providers.json +45 -39
  26. package/dist/executors/gemini-cli.executor.d.ts +3 -1
  27. package/dist/executors/gemini-cli.executor.d.ts.map +1 -1
  28. package/dist/executors/gemini-cli.executor.js +18 -12
  29. package/dist/executors/gemini-cli.executor.js.map +1 -1
  30. package/dist/executors/index.d.ts +4 -0
  31. package/dist/executors/index.d.ts.map +1 -1
  32. package/dist/executors/index.js +14 -4
  33. package/dist/executors/index.js.map +1 -1
  34. package/dist/executors/providers.d.ts +4 -1
  35. package/dist/executors/providers.d.ts.map +1 -1
  36. package/dist/executors/providers.js +20 -5
  37. package/dist/executors/providers.js.map +1 -1
  38. package/dist/output/__tests__/claude-code-parser-lifecycle.test.d.ts +2 -0
  39. package/dist/output/__tests__/claude-code-parser-lifecycle.test.d.ts.map +1 -0
  40. package/dist/output/__tests__/claude-code-parser-lifecycle.test.js +84 -0
  41. package/dist/output/__tests__/claude-code-parser-lifecycle.test.js.map +1 -0
  42. package/dist/output/claude-code-parser.d.ts +14 -2
  43. package/dist/output/claude-code-parser.d.ts.map +1 -1
  44. package/dist/output/claude-code-parser.js +55 -8
  45. package/dist/output/claude-code-parser.js.map +1 -1
  46. package/dist/pipeline/__tests__/agent-pipeline.test.js +48 -1
  47. package/dist/pipeline/__tests__/agent-pipeline.test.js.map +1 -1
  48. package/dist/pipeline/agent-pipeline.d.ts +6 -1
  49. package/dist/pipeline/agent-pipeline.d.ts.map +1 -1
  50. package/dist/pipeline/agent-pipeline.js +42 -4
  51. package/dist/pipeline/agent-pipeline.js.map +1 -1
  52. package/dist/routes/__tests__/providers.test.js +287 -12
  53. package/dist/routes/__tests__/providers.test.js.map +1 -1
  54. package/dist/routes/__tests__/sessions-runtime.test.js +9 -0
  55. package/dist/routes/__tests__/sessions-runtime.test.js.map +1 -1
  56. package/dist/routes/providers.d.ts +2 -0
  57. package/dist/routes/providers.d.ts.map +1 -1
  58. package/dist/routes/providers.js +79 -34
  59. package/dist/routes/providers.js.map +1 -1
  60. package/dist/routes/sessions.js +2 -2
  61. package/dist/routes/sessions.js.map +1 -1
  62. package/dist/runtime/__tests__/acp-agent-definitions.test.js +54 -6
  63. package/dist/runtime/__tests__/acp-agent-definitions.test.js.map +1 -1
  64. package/dist/runtime/__tests__/acp-driver-lifecycle.test.js +85 -12
  65. package/dist/runtime/__tests__/acp-driver-lifecycle.test.js.map +1 -1
  66. package/dist/runtime/__tests__/acp-driver.test.js +38 -1
  67. package/dist/runtime/__tests__/acp-driver.test.js.map +1 -1
  68. package/dist/runtime/__tests__/claude-cli-control.test.d.ts +2 -0
  69. package/dist/runtime/__tests__/claude-cli-control.test.d.ts.map +1 -0
  70. package/dist/runtime/__tests__/claude-cli-control.test.js +147 -0
  71. package/dist/runtime/__tests__/claude-cli-control.test.js.map +1 -0
  72. package/dist/runtime/__tests__/claude-cli-driver.test.d.ts +2 -0
  73. package/dist/runtime/__tests__/claude-cli-driver.test.d.ts.map +1 -0
  74. package/dist/runtime/__tests__/claude-cli-driver.test.js +327 -0
  75. package/dist/runtime/__tests__/claude-cli-driver.test.js.map +1 -0
  76. package/dist/runtime/__tests__/cli-driver-lifecycle.test.js +107 -2
  77. package/dist/runtime/__tests__/cli-driver-lifecycle.test.js.map +1 -1
  78. package/dist/runtime/__tests__/codex-cli-control.test.d.ts +2 -0
  79. package/dist/runtime/__tests__/codex-cli-control.test.d.ts.map +1 -0
  80. package/dist/runtime/__tests__/codex-cli-control.test.js +287 -0
  81. package/dist/runtime/__tests__/codex-cli-control.test.js.map +1 -0
  82. package/dist/runtime/__tests__/codex-cli-identity.test.d.ts +2 -0
  83. package/dist/runtime/__tests__/codex-cli-identity.test.d.ts.map +1 -0
  84. package/dist/runtime/__tests__/codex-cli-identity.test.js +166 -0
  85. package/dist/runtime/__tests__/codex-cli-identity.test.js.map +1 -0
  86. package/dist/runtime/__tests__/codex-runtime-resolution.test.js +32 -0
  87. package/dist/runtime/__tests__/codex-runtime-resolution.test.js.map +1 -1
  88. package/dist/runtime/__tests__/runtime-coordinator.test.js +74 -0
  89. package/dist/runtime/__tests__/runtime-coordinator.test.js.map +1 -1
  90. package/dist/runtime/acp/acp-driver.d.ts.map +1 -1
  91. package/dist/runtime/acp/acp-driver.js +27 -9
  92. package/dist/runtime/acp/acp-driver.js.map +1 -1
  93. package/dist/runtime/acp/agents/claude-code.d.ts.map +1 -1
  94. package/dist/runtime/acp/agents/claude-code.js +6 -11
  95. package/dist/runtime/acp/agents/claude-code.js.map +1 -1
  96. package/dist/runtime/acp/agents/codex.d.ts.map +1 -1
  97. package/dist/runtime/acp/agents/codex.js +15 -6
  98. package/dist/runtime/acp/agents/codex.js.map +1 -1
  99. package/dist/runtime/acp/agents/cursor-agent.d.ts.map +1 -1
  100. package/dist/runtime/acp/agents/cursor-agent.js +2 -1
  101. package/dist/runtime/acp/agents/cursor-agent.js.map +1 -1
  102. package/dist/runtime/acp/agents/deepseek-hermes.js +3 -3
  103. package/dist/runtime/acp/agents/deepseek-hermes.js.map +1 -1
  104. package/dist/runtime/acp/agents/gemini-cli.d.ts.map +1 -1
  105. package/dist/runtime/acp/agents/gemini-cli.js +1 -0
  106. package/dist/runtime/acp/agents/gemini-cli.js.map +1 -1
  107. package/dist/runtime/acp/agents/grok-build.d.ts.map +1 -1
  108. package/dist/runtime/acp/agents/grok-build.js +4 -1
  109. package/dist/runtime/acp/agents/grok-build.js.map +1 -1
  110. package/dist/runtime/acp/agents/kiro-cli.d.ts.map +1 -1
  111. package/dist/runtime/acp/agents/kiro-cli.js +2 -1
  112. package/dist/runtime/acp/agents/kiro-cli.js.map +1 -1
  113. package/dist/runtime/acp/agents/minion-code.js +1 -1
  114. package/dist/runtime/acp/agents/minion-code.js.map +1 -1
  115. package/dist/runtime/acp/agents/native-agent.d.ts +2 -0
  116. package/dist/runtime/acp/agents/native-agent.d.ts.map +1 -1
  117. package/dist/runtime/acp/agents/native-agent.js +12 -16
  118. package/dist/runtime/acp/agents/native-agent.js.map +1 -1
  119. package/dist/runtime/acp/agents/opencode.d.ts.map +1 -1
  120. package/dist/runtime/acp/agents/opencode.js +50 -2
  121. package/dist/runtime/acp/agents/opencode.js.map +1 -1
  122. package/dist/runtime/acp/agents/pi-coding-agent.d.ts.map +1 -1
  123. package/dist/runtime/acp/agents/pi-coding-agent.js +2 -5
  124. package/dist/runtime/acp/agents/pi-coding-agent.js.map +1 -1
  125. package/dist/runtime/acp/agents/qwen-code.d.ts.map +1 -1
  126. package/dist/runtime/acp/agents/qwen-code.js +9 -11
  127. package/dist/runtime/acp/agents/qwen-code.js.map +1 -1
  128. package/dist/runtime/acp/agents/types.d.ts +4 -2
  129. package/dist/runtime/acp/agents/types.d.ts.map +1 -1
  130. package/dist/runtime/acp/codex-cli-identity.d.ts +52 -0
  131. package/dist/runtime/acp/codex-cli-identity.d.ts.map +1 -0
  132. package/dist/runtime/acp/codex-cli-identity.js +179 -0
  133. package/dist/runtime/acp/codex-cli-identity.js.map +1 -0
  134. package/dist/runtime/acp/codex-provider-config.d.ts +15 -2
  135. package/dist/runtime/acp/codex-provider-config.d.ts.map +1 -1
  136. package/dist/runtime/acp/codex-provider-config.js +42 -5
  137. package/dist/runtime/acp/codex-provider-config.js.map +1 -1
  138. package/dist/runtime/claude-cli-control.d.ts +32 -0
  139. package/dist/runtime/claude-cli-control.d.ts.map +1 -0
  140. package/dist/runtime/claude-cli-control.js +156 -0
  141. package/dist/runtime/claude-cli-control.js.map +1 -0
  142. package/dist/runtime/cli-action-summary.d.ts +3 -0
  143. package/dist/runtime/cli-action-summary.d.ts.map +1 -0
  144. package/dist/runtime/cli-action-summary.js +13 -0
  145. package/dist/runtime/cli-action-summary.js.map +1 -0
  146. package/dist/runtime/cli-driver.d.ts.map +1 -1
  147. package/dist/runtime/cli-driver.js +119 -26
  148. package/dist/runtime/cli-driver.js.map +1 -1
  149. package/dist/runtime/cli-parser.d.ts +4 -1
  150. package/dist/runtime/cli-parser.d.ts.map +1 -1
  151. package/dist/runtime/cli-parser.js +2 -2
  152. package/dist/runtime/cli-parser.js.map +1 -1
  153. package/dist/runtime/codex-cli-control.d.ts +63 -0
  154. package/dist/runtime/codex-cli-control.d.ts.map +1 -0
  155. package/dist/runtime/codex-cli-control.js +311 -0
  156. package/dist/runtime/codex-cli-control.js.map +1 -0
  157. package/dist/runtime/codex-cli-projector.d.ts +17 -0
  158. package/dist/runtime/codex-cli-projector.d.ts.map +1 -0
  159. package/dist/runtime/codex-cli-projector.js +80 -0
  160. package/dist/runtime/codex-cli-projector.js.map +1 -0
  161. package/dist/runtime/contracts.d.ts +12 -2
  162. package/dist/runtime/contracts.d.ts.map +1 -1
  163. package/dist/runtime/runtime-coordinator.d.ts +1 -1
  164. package/dist/runtime/runtime-coordinator.d.ts.map +1 -1
  165. package/dist/runtime/runtime-coordinator.js +40 -6
  166. package/dist/runtime/runtime-coordinator.js.map +1 -1
  167. package/dist/services/__tests__/claude-cli-capabilities.service.test.d.ts +2 -0
  168. package/dist/services/__tests__/claude-cli-capabilities.service.test.d.ts.map +1 -0
  169. package/dist/services/__tests__/claude-cli-capabilities.service.test.js +37 -0
  170. package/dist/services/__tests__/claude-cli-capabilities.service.test.js.map +1 -0
  171. package/dist/services/__tests__/codex-cli-capabilities.service.test.d.ts +2 -0
  172. package/dist/services/__tests__/codex-cli-capabilities.service.test.d.ts.map +1 -0
  173. package/dist/services/__tests__/codex-cli-capabilities.service.test.js +35 -0
  174. package/dist/services/__tests__/codex-cli-capabilities.service.test.js.map +1 -0
  175. package/dist/services/__tests__/codex-model-capabilities.service.test.js +23 -2
  176. package/dist/services/__tests__/codex-model-capabilities.service.test.js.map +1 -1
  177. package/dist/services/__tests__/execution-permission.service.test.d.ts +2 -0
  178. package/dist/services/__tests__/execution-permission.service.test.d.ts.map +1 -0
  179. package/dist/services/__tests__/execution-permission.service.test.js +111 -0
  180. package/dist/services/__tests__/execution-permission.service.test.js.map +1 -0
  181. package/dist/services/__tests__/provider-config.service.test.js +1 -0
  182. package/dist/services/__tests__/provider-config.service.test.js.map +1 -1
  183. package/dist/services/__tests__/session-manager.lifecycle.test.js +151 -3
  184. package/dist/services/__tests__/session-manager.lifecycle.test.js.map +1 -1
  185. package/dist/services/claude-cli-capabilities.service.d.ts +11 -0
  186. package/dist/services/claude-cli-capabilities.service.d.ts.map +1 -0
  187. package/dist/services/claude-cli-capabilities.service.js +54 -0
  188. package/dist/services/claude-cli-capabilities.service.js.map +1 -0
  189. package/dist/services/codex-cli-capabilities.service.d.ts +12 -0
  190. package/dist/services/codex-cli-capabilities.service.d.ts.map +1 -0
  191. package/dist/services/codex-cli-capabilities.service.js +65 -0
  192. package/dist/services/codex-cli-capabilities.service.js.map +1 -0
  193. package/dist/services/codex-model-capabilities.service.d.ts.map +1 -1
  194. package/dist/services/codex-model-capabilities.service.js +12 -1
  195. package/dist/services/codex-model-capabilities.service.js.map +1 -1
  196. package/dist/services/execution-permission.service.d.ts +30 -0
  197. package/dist/services/execution-permission.service.d.ts.map +1 -0
  198. package/dist/services/execution-permission.service.js +149 -0
  199. package/dist/services/execution-permission.service.js.map +1 -0
  200. package/dist/services/provider-config.service.d.ts.map +1 -1
  201. package/dist/services/provider-config.service.js +19 -29
  202. package/dist/services/provider-config.service.js.map +1 -1
  203. package/dist/services/session-manager.d.ts +9 -7
  204. package/dist/services/session-manager.d.ts.map +1 -1
  205. package/dist/services/session-manager.js +46 -7
  206. package/dist/services/session-manager.js.map +1 -1
  207. package/dist/services/task.service.d.ts +4 -4
  208. package/dist/services/workspace.service.d.ts +7 -7
  209. package/dist/utils/cli-duplex-channel.d.ts +21 -0
  210. package/dist/utils/cli-duplex-channel.d.ts.map +1 -0
  211. package/dist/utils/cli-duplex-channel.js +200 -0
  212. package/dist/utils/cli-duplex-channel.js.map +1 -0
  213. package/dist/utils/cli-duplex-channel.test.d.ts +2 -0
  214. package/dist/utils/cli-duplex-channel.test.d.ts.map +1 -0
  215. package/dist/utils/cli-duplex-channel.test.js +191 -0
  216. package/dist/utils/cli-duplex-channel.test.js.map +1 -0
  217. package/dist/utils/index.d.ts +1 -0
  218. package/dist/utils/index.d.ts.map +1 -1
  219. package/dist/utils/index.js +1 -0
  220. package/dist/utils/index.js.map +1 -1
  221. package/dist/utils/process-launch.d.ts +3 -0
  222. package/dist/utils/process-launch.d.ts.map +1 -1
  223. package/dist/utils/process-launch.js +129 -10
  224. package/dist/utils/process-launch.js.map +1 -1
  225. package/dist/utils/process-launch.test.js +103 -0
  226. package/dist/utils/process-launch.test.js.map +1 -1
  227. package/dist/web/assets/{AgentDemoPage-B6pABvRL.js → AgentDemoPage-Gr8q6VxC.js} +1 -1
  228. package/dist/web/assets/{AgentEnvironmentSettingsPage-CqMfdwkM.js → AgentEnvironmentSettingsPage-b0XzUzna.js} +1 -1
  229. package/dist/web/assets/{AgentLogo-Ntqe3_Mx.js → AgentLogo-q8Chady2.js} +1 -1
  230. package/dist/web/assets/ConversationPage-DQRA8WuD.js +3 -0
  231. package/dist/web/assets/CreateTaskInput-Dr6Lvllw.js +1 -0
  232. package/dist/web/assets/{DemoPage-D1Ki6sJ0.js → DemoPage-DaDC_MIJ.js} +1 -1
  233. package/dist/web/assets/ExecutionPermissionSelector-DglILGVC.js +29 -0
  234. package/dist/web/assets/{GeneralSettingsPage-DoAXPabw.js → GeneralSettingsPage-BKRf-usO.js} +1 -1
  235. package/dist/web/assets/{Icons-KJJd6C8K.js → Icons-7lThaqQv.js} +1 -1
  236. package/dist/web/assets/{LoadingPreviewPage-BqCKBvgv.js → LoadingPreviewPage-BHAQCQDA.js} +1 -1
  237. package/dist/web/assets/{McpSettingsPage-QXVD4XCW.js → McpSettingsPage-CVOEPwCv.js} +1 -1
  238. package/dist/web/assets/{MemberAvatar-kbJEoyh0.js → MemberAvatar-DUXHTIXf.js} +1 -1
  239. package/dist/web/assets/{NotificationSettingsPage-BrqSeU--.js → NotificationSettingsPage-DBe1YCNN.js} +1 -1
  240. package/dist/web/assets/{ProfileSettingsPage-BmWgVdnG.js → ProfileSettingsPage-DwziCseV.js} +1 -1
  241. package/dist/web/assets/ProjectKanbanPage-Dcz8KXWU.js +86 -0
  242. package/dist/web/assets/{ProjectSettingsPage-BVINN99w.js → ProjectSettingsPage-hzSrj79M.js} +1 -1
  243. package/dist/web/assets/ProviderSettingsPage-CC3zkdf6.js +67 -0
  244. package/dist/web/assets/{SettingsMasterDetail-OF28cvPV.js → SettingsMasterDetail-D5lNH2f6.js} +1 -1
  245. package/dist/web/assets/{TeamSettingsPage-BWGm0m7s.js → TeamSettingsPage-Cdbvh2ne.js} +1 -1
  246. package/dist/web/assets/{arc-CqFgRaZU.js → arc-d2D24uRQ.js} +1 -1
  247. package/dist/web/assets/{architectureDiagram-3BPJPVTR-C0PMdIZJ.js → architectureDiagram-3BPJPVTR-C_p9_AH2.js} +1 -1
  248. package/dist/web/assets/{blockDiagram-GPEHLZMM-SqqtxqkX.js → blockDiagram-GPEHLZMM-CKsR1Tax.js} +1 -1
  249. package/dist/web/assets/{c4Diagram-AAUBKEIU-DYJXB3xL.js → c4Diagram-AAUBKEIU-BBUKt2FW.js} +1 -1
  250. package/dist/web/assets/channel-D0hF47LU.js +1 -0
  251. package/dist/web/assets/check-BqhuHtHP.js +1 -0
  252. package/dist/web/assets/{chevron-down-BZfpVhYr.js → chevron-down-Bw_76CB_.js} +1 -1
  253. package/dist/web/assets/{chevron-right-D52zUyOF.js → chevron-right-DbcFf_Dw.js} +1 -1
  254. package/dist/web/assets/{chevron-up-CFOy5dmW.js → chevron-up-x1n3MhC-.js} +1 -1
  255. package/dist/web/assets/{chunk-2J33WTMH-DQCbv8W_.js → chunk-2J33WTMH-BcGNhDoU.js} +1 -1
  256. package/dist/web/assets/{chunk-4BX2VUAB-B_68_oNW.js → chunk-4BX2VUAB-9dL7TVjW.js} +1 -1
  257. package/dist/web/assets/{chunk-55IACEB6-Bb-pPIxs.js → chunk-55IACEB6-CzJzh0tH.js} +1 -1
  258. package/dist/web/assets/{chunk-727SXJPM-CAiaySk6.js → chunk-727SXJPM-Bp5EOgoG.js} +1 -1
  259. package/dist/web/assets/{chunk-AQP2D5EJ-ChCLJ4Wv.js → chunk-AQP2D5EJ-BaLnh9ac.js} +1 -1
  260. package/dist/web/assets/{chunk-FMBD7UC4-Kz0Cc0mv.js → chunk-FMBD7UC4-BcbzC8r4.js} +1 -1
  261. package/dist/web/assets/{chunk-ND2GUHAM-BttoT7UR.js → chunk-ND2GUHAM-DkT5Stbd.js} +1 -1
  262. package/dist/web/assets/{chunk-QZHKN3VN-BcVhzXXK.js → chunk-QZHKN3VN-DszScpAV.js} +1 -1
  263. package/dist/web/assets/{circle-alert-D67xfWMs.js → circle-alert-ChWS5BPS.js} +1 -1
  264. package/dist/web/assets/classDiagram-4FO5ZUOK-ulXJsBKw.js +1 -0
  265. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-ulXJsBKw.js +1 -0
  266. package/dist/web/assets/{code-block-OCS4YCEC-CMA1utSp.js → code-block-OCS4YCEC-G8tEtSdL.js} +1 -1
  267. package/dist/web/assets/{confirm-dialog-BWvZEHpu.js → confirm-dialog-0vHzUzvI.js} +1 -1
  268. package/dist/web/assets/{cose-bilkent-S5V4N54A-B391zTey.js → cose-bilkent-S5V4N54A-DueZsNr5.js} +1 -1
  269. package/dist/web/assets/cssMode-Dqx3XDOC.js +1 -0
  270. package/dist/web/assets/{dagre-BM42HDAG-CymH_FEZ.js → dagre-BM42HDAG-BkQGrA8s.js} +1 -1
  271. package/dist/web/assets/{diagram-2AECGRRQ-DXOIiLDr.js → diagram-2AECGRRQ-D4qtEjjj.js} +1 -1
  272. package/dist/web/assets/{diagram-5GNKFQAL-B9ocgjdh.js → diagram-5GNKFQAL-ZuFk-7GO.js} +1 -1
  273. package/dist/web/assets/{diagram-KO2AKTUF-DLMpk9Wg.js → diagram-KO2AKTUF-kwBr5lw0.js} +1 -1
  274. package/dist/web/assets/{diagram-LMA3HP47-BBnF83je.js → diagram-LMA3HP47-m88-mNyr.js} +1 -1
  275. package/dist/web/assets/{diagram-OG6HWLK6-AK4FunVI.js → diagram-OG6HWLK6-B9gV1dxA.js} +1 -1
  276. package/dist/web/assets/{erDiagram-TEJ5UH35-B1mryURg.js → erDiagram-TEJ5UH35-De_DsoOX.js} +1 -1
  277. package/dist/web/assets/{flowDiagram-I6XJVG4X-BjIG_1l5.js → flowDiagram-I6XJVG4X-9VwLS0b3.js} +1 -1
  278. package/dist/web/assets/{folder-picker-CaM_drIJ.js → folder-picker-B0khMt7A.js} +1 -1
  279. package/dist/web/assets/{freemarker2-Dj1C_6Ng.js → freemarker2-CLp1Yffb.js} +2 -2
  280. package/dist/web/assets/{ganttDiagram-6RSMTGT7-DjR6lyIQ.js → ganttDiagram-6RSMTGT7-DoOyYr5i.js} +1 -1
  281. package/dist/web/assets/{gitGraphDiagram-PVQCEYII-BpW2L4ry.js → gitGraphDiagram-PVQCEYII-CMGuTxMz.js} +1 -1
  282. package/dist/web/assets/handlebars-CmLfR6Uy.js +1 -0
  283. package/dist/web/assets/html-D34UDOLc.js +1 -0
  284. package/dist/web/assets/htmlMode-qjrvkZFJ.js +1 -0
  285. package/dist/web/assets/{index-DaRxJqVy.js → index-DI7lHrAR.js} +4 -4
  286. package/dist/web/assets/index-DrzmyANC.js +122 -0
  287. package/dist/web/assets/index-MMCbS8_L.css +1 -0
  288. package/dist/web/assets/{infoDiagram-5YYISTIA-Cu-PA_-6.js → infoDiagram-5YYISTIA-gUCDmQX7.js} +1 -1
  289. package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-S6Esbkdw.js → ishikawaDiagram-YF4QCWOH-CmfFhhIz.js} +1 -1
  290. package/dist/web/assets/javascript-D5tp0LcO.js +1 -0
  291. package/dist/web/assets/{journeyDiagram-JHISSGLW-wPF9FT9V.js → journeyDiagram-JHISSGLW-BvV5GoR_.js} +1 -1
  292. package/dist/web/assets/{jsonMode-D6IoFlQF.js → jsonMode-BbjYNQ7Q.js} +4 -4
  293. package/dist/web/assets/{kanban-definition-UN3LZRKU-C4jl9zOj.js → kanban-definition-UN3LZRKU-BpTm0MC-.js} +1 -1
  294. package/dist/web/assets/{layers-hQUUT3Gb.js → layers-DslPQJ3T.js} +1 -1
  295. package/dist/web/assets/{linear-D83xDp0H.js → linear-BJ_g8wqu.js} +1 -1
  296. package/dist/web/assets/liquid-DBu3_6XS.js +1 -0
  297. package/dist/web/assets/{lspLanguageFeatures-CUyibjAN.js → lspLanguageFeatures-PSX0tqnR.js} +1 -1
  298. package/dist/web/assets/mdx-Bb4nrA8s.js +1 -0
  299. package/dist/web/assets/{mermaid-NOHMQCX5-CGCWmHha.js → mermaid-NOHMQCX5-B44shuzc.js} +45 -45
  300. package/dist/web/assets/{message-square-B-uYQiTq.js → message-square-C-22K3oa.js} +1 -1
  301. package/dist/web/assets/{mindmap-definition-RKZ34NQL-D5v2uvjn.js → mindmap-definition-RKZ34NQL-DS5GLydx.js} +1 -1
  302. package/dist/web/assets/{modal-D87uszzb.js → modal-CFVLBZ5p.js} +1 -1
  303. package/dist/web/assets/{monaco-B25-2nEB.js → monaco-CkaUvvB4.js} +3 -3
  304. package/dist/web/assets/{pencil-CY2RnQrx.js → pencil-DB3VPszm.js} +1 -1
  305. package/dist/web/assets/{pieDiagram-4H26LBE5-6wdFz_7x.js → pieDiagram-4H26LBE5-C1PJJGsh.js} +1 -1
  306. package/dist/web/assets/python-BfodDYt4.js +1 -0
  307. package/dist/web/assets/{quadrantDiagram-W4KKPZXB-C1CrGMEK.js → quadrantDiagram-W4KKPZXB-CzDfs-TQ.js} +1 -1
  308. package/dist/web/assets/razor-DdED1MBH.js +1 -0
  309. package/dist/web/assets/{requirementDiagram-4Y6WPE33-mDtZrxpp.js → requirementDiagram-4Y6WPE33-qHbU7oZa.js} +1 -1
  310. package/dist/web/assets/{sankeyDiagram-5OEKKPKP-hBlj0XoH.js → sankeyDiagram-5OEKKPKP-BfRgrEeN.js} +1 -1
  311. package/dist/web/assets/select-CL78HCY0.js +1 -0
  312. package/dist/web/assets/{sequenceDiagram-3UESZ5HK-DsWmMm20.js → sequenceDiagram-3UESZ5HK-CGTNzKk3.js} +1 -1
  313. package/dist/web/assets/{server-qlZupTvg.js → server-Cd7APx6v.js} +1 -1
  314. package/dist/web/assets/{stateDiagram-AJRCARHV-VNyX1L66.js → stateDiagram-AJRCARHV-BY1LJ4b7.js} +1 -1
  315. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-BV_JKRZC.js +1 -0
  316. package/dist/web/assets/{switch-1pvXCcP-.js → switch-DmQ0Brgd.js} +1 -1
  317. package/dist/web/assets/{textarea-D9oaz-Ba.js → textarea-DOte4pMQ.js} +1 -1
  318. package/dist/web/assets/{timeline-definition-PNZ67QCA-DuBxxd9E.js → timeline-definition-PNZ67QCA-BBhCKsly.js} +1 -1
  319. package/dist/web/assets/{trash-2-C0P8jNpJ.js → trash-2-BSAHXKfW.js} +1 -1
  320. package/dist/web/assets/{tsMode-ogL-3MSe.js → tsMode-B6rHoWny.js} +2 -2
  321. package/dist/web/assets/typescript-C2A3q8UY.js +1 -0
  322. package/dist/web/assets/{upload-BYgsDplu.js → upload-e87qV_RH.js} +1 -1
  323. package/dist/web/assets/{use-profiles-BkGnmson.js → use-profiles-Cv2zBJOC.js} +1 -1
  324. package/dist/web/assets/{use-projects-B4w00h5I.js → use-projects-C8WDJXdj.js} +1 -1
  325. package/dist/web/assets/use-providers-CnpIgITQ.js +1 -0
  326. package/dist/web/assets/{useNormalizedLogs-MsDkcnRQ.js → useNormalizedLogs-AbIXa8s-.js} +1 -1
  327. package/dist/web/assets/{vennDiagram-CIIHVFJN-RbPPOLBo.js → vennDiagram-CIIHVFJN-DrDrt_Jg.js} +1 -1
  328. package/dist/web/assets/{wardley-L42UT6IY-DXzUbdMF.js → wardley-L42UT6IY-CMYQm14y.js} +1 -1
  329. package/dist/web/assets/{wardleyDiagram-YWT4CUSO-B0QXobQM.js → wardleyDiagram-YWT4CUSO-COLA9A80.js} +1 -1
  330. package/dist/web/assets/xml-D4xDxfjR.js +1 -0
  331. package/dist/web/assets/{xychartDiagram-2RQKCTM6-C7bFJItM.js → xychartDiagram-2RQKCTM6-BDegkKoT.js} +1 -1
  332. package/dist/web/assets/yaml-yJExA7tq.js +1 -0
  333. package/dist/web/index.html +2 -2
  334. package/node_modules/@agent-tower/shared/dist/execution-permission.d.ts +19 -0
  335. package/node_modules/@agent-tower/shared/dist/execution-permission.d.ts.map +1 -0
  336. package/node_modules/@agent-tower/shared/dist/execution-permission.js +53 -0
  337. package/node_modules/@agent-tower/shared/dist/execution-permission.js.map +1 -0
  338. package/node_modules/@agent-tower/shared/dist/index.d.ts +1 -0
  339. package/node_modules/@agent-tower/shared/dist/index.d.ts.map +1 -1
  340. package/node_modules/@agent-tower/shared/dist/index.js +1 -0
  341. package/node_modules/@agent-tower/shared/dist/index.js.map +1 -1
  342. package/node_modules/@agent-tower/shared/dist/provider-capabilities.d.ts +6 -5
  343. package/node_modules/@agent-tower/shared/dist/provider-capabilities.d.ts.map +1 -1
  344. package/node_modules/@agent-tower/shared/dist/provider-capabilities.js.map +1 -1
  345. package/node_modules/@agent-tower/shared/dist/types.d.ts +49 -2
  346. package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
  347. package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
  348. package/package.json +1 -1
  349. package/dist/web/assets/ConversationPage-BINGA8XL.js +0 -3
  350. package/dist/web/assets/CreateTaskInput-8bLhHYOc.js +0 -1
  351. package/dist/web/assets/ProjectKanbanPage-D7RJm4yg.js +0 -92
  352. package/dist/web/assets/ProviderSettingsPage-BlgfQMwe.js +0 -95
  353. package/dist/web/assets/channel-B8s9dqlX.js +0 -1
  354. package/dist/web/assets/check-C1zWgxFO.js +0 -1
  355. package/dist/web/assets/classDiagram-4FO5ZUOK-61bPx188.js +0 -1
  356. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-61bPx188.js +0 -1
  357. package/dist/web/assets/cssMode-CNU1q_Gl.js +0 -1
  358. package/dist/web/assets/handlebars-DNXOgRZc.js +0 -1
  359. package/dist/web/assets/html-C20FgNS-.js +0 -1
  360. package/dist/web/assets/htmlMode-CtcV1Ktd.js +0 -1
  361. package/dist/web/assets/index-dElqH2UR.css +0 -1
  362. package/dist/web/assets/index-oC5eh7mZ.js +0 -122
  363. package/dist/web/assets/javascript-CFAVZ6Tb.js +0 -1
  364. package/dist/web/assets/liquid-CuzuRJIN.js +0 -1
  365. package/dist/web/assets/mdx-C3rxTvel.js +0 -1
  366. package/dist/web/assets/python-BYGLbOzO.js +0 -1
  367. package/dist/web/assets/razor-m0U9iUAj.js +0 -1
  368. package/dist/web/assets/select-D7WkUiad.js +0 -1
  369. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-DHz3oGyD.js +0 -1
  370. package/dist/web/assets/typescript-rHoDxTY8.js +0 -1
  371. package/dist/web/assets/use-providers-B70-BYNu.js +0 -1
  372. package/dist/web/assets/xml-BqnpQrAq.js +0 -1
  373. package/dist/web/assets/yaml-mz2Zn_K2.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"qwen-code.js","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/qwen-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qwen-code.js","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/qwen-code.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import type * as acp from '@agentclientprotocol/sdk';
2
- import type { AgentType, RuntimePermissionMode } from '@agent-tower/shared';
2
+ import type { AgentType, ExecutionPermissionMode } from '@agent-tower/shared';
3
3
  import type { AvailabilityInfo } from '../../../executors/base.executor.js';
4
4
  import type { Provider } from '../../../executors/providers.js';
5
5
  import type { RuntimeOpenInput } from '../../contracts.js';
6
6
  export interface AcpAgentProfile {
7
7
  agentType: AgentType;
8
8
  environment: Record<string, string>;
9
- permissionMode: RuntimePermissionMode;
9
+ permissionMode: ExecutionPermissionMode;
10
10
  authenticationRequest?: acp.AuthenticateRequest;
11
11
  appendPrompt?: string;
12
12
  model?: string;
@@ -28,6 +28,8 @@ export type AcpSessionBootstrapResponse = Pick<acp.NewSessionResponse, 'modes' |
28
28
  export interface AcpAgentDefinition {
29
29
  readonly agentType: AgentType;
30
30
  readonly displayName: string;
31
+ /** False when a loaded native session cannot reliably have its permissions reapplied. */
32
+ readonly supportsPermissionRestore?: boolean;
31
33
  readonly initializeTimeoutMs?: number;
32
34
  readonly maxStdoutFrameBytes?: number;
33
35
  readonly transformStdoutFrame?: AcpStdoutFrameTransform;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,qBAAqB,CAAC;IACtC,qBAAqB,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sFAAsF;IACtF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,uBAAuB,GAAG,CACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE7B,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,GAAG,eAAe,CAAC,CAAC;AAElG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,uBAAuB,CAAC;IACxD,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,EAAE,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,eAAe,CAAC;IAC1G,aAAa,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACzF,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjE,kBAAkB,CAAC,CAAC,OAAO,EAAE,eAAe,GAAG,GAAG,CAAC,kBAAkB,CAAC;IACtE,YAAY,CAAC,CACX,OAAO,EAAE,GAAG,CAAC,aAAa,EAC1B,QAAQ,EAAE,GAAG,CAAC,kBAAkB,EAChC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,eAAe,CAAC,CAAC,OAAO,EAAE,eAAe,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAC/E,gBAAgB,CAAC,CACf,OAAO,EAAE,GAAG,CAAC,aAAa,EAC1B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,2BAA2B,EACrC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * `originator` and `user-agent` prefix used by non-interactive `codex exec`.
3
+ *
4
+ * Agent Tower drives Codex through the ACP adapter, which otherwise identifies
5
+ * itself as `@agentclientprotocol/codex-acp` in the `user-agent` header.
6
+ * Some OpenAI-compatible gateways only accept traffic that looks like the
7
+ * native Codex CLI, so the identity is rewritten to match `codex exec`.
8
+ */
9
+ export declare const CODEX_CLI_ORIGINATOR = "codex_exec";
10
+ /** Cache probe results for the lifetime of the process; the runtime rarely changes. */
11
+ export declare function resetCodexCliIdentityCache(): void;
12
+ /**
13
+ * Full `user-agent` value a native `codex exec` process would send.
14
+ *
15
+ * Format verified against Codex CLI 0.156.0:
16
+ * `{name}/{codexVersion} ({platform}) {terminal} ({name}; {clientVersion})`
17
+ * e.g. `codex_exec/0.156.0 (Mac OS 15.6.1; arm64) Apple_Terminal/455.1 (codex_exec; 0.156.0)`
18
+ */
19
+ export declare function formatCodexCliUserAgent(parts: {
20
+ clientName: string;
21
+ codexVersion: string;
22
+ platform: string;
23
+ terminal: string;
24
+ clientVersion: string;
25
+ }): string;
26
+ /**
27
+ * Terminal segment of the Codex user-agent.
28
+ *
29
+ * Codex prefers `TERM_PROGRAM`, then falls back to well-known session markers
30
+ * and finally reports `unknown`; verified against Codex CLI 0.156.0.
31
+ */
32
+ export declare function detectCodexTerminal(environment: NodeJS.ProcessEnv): string;
33
+ /** `Mac OS 15.6.1; arm64` — the parenthesised segment of the Codex user-agent. */
34
+ export declare function resolveCodexPlatformDescription(): Promise<string>;
35
+ /**
36
+ * Resolve `codex --version` for the binary Agent Tower is about to launch.
37
+ *
38
+ * Best effort: callers must tolerate `undefined` and leave headers untouched.
39
+ */
40
+ export declare function resolveCodexVersion(codexPath: string | undefined, environment: NodeJS.ProcessEnv): Promise<string | undefined>;
41
+ /** `codex-cli 0.156.0` -> `0.156.0` */
42
+ export declare function parseCodexVersion(output: string): string | undefined;
43
+ /**
44
+ * Build the `user-agent` that makes an ACP-launched Codex indistinguishable
45
+ * from a native `codex exec` process, or `undefined` when the runtime version
46
+ * cannot be determined.
47
+ */
48
+ export declare function resolveCodexCliUserAgent(options: {
49
+ codexPath: string | undefined;
50
+ environment: NodeJS.ProcessEnv;
51
+ }): Promise<string | undefined>;
52
+ //# sourceMappingURL=codex-cli-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-cli-identity.d.ts","sourceRoot":"","sources":["../../../src/runtime/acp/codex-cli-identity.ts"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAQjD,uFAAuF;AACvF,wBAAgB,0BAA0B,IAAI,IAAI,CAGjD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,CAGT;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAS1E;AAcD,kFAAkF;AAClF,wBAAsB,+BAA+B,IAAI,OAAO,CAAC,MAAM,CAAC,CAGvE;AAuDD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,EAAE,MAAM,CAAC,UAAU,GAC7B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAO7B;AAqBD,uCAAuC;AACvC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGpE;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE;IACtD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;CAChC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAU9B"}
@@ -0,0 +1,179 @@
1
+ import { execFile } from 'node:child_process';
2
+ import { readFile } from 'node:fs/promises';
3
+ import os from 'node:os';
4
+ import { promisify } from 'node:util';
5
+ const execFileAsync = promisify(execFile);
6
+ const VERSION_PROBE_TIMEOUT_MS = 5_000;
7
+ /**
8
+ * `originator` and `user-agent` prefix used by non-interactive `codex exec`.
9
+ *
10
+ * Agent Tower drives Codex through the ACP adapter, which otherwise identifies
11
+ * itself as `@agentclientprotocol/codex-acp` in the `user-agent` header.
12
+ * Some OpenAI-compatible gateways only accept traffic that looks like the
13
+ * native Codex CLI, so the identity is rewritten to match `codex exec`.
14
+ */
15
+ export const CODEX_CLI_ORIGINATOR = 'codex_exec';
16
+ /** Terminal name Codex reports when it cannot detect a terminal at all. */
17
+ const UNKNOWN_TERMINAL = 'unknown';
18
+ const versionCache = new Map();
19
+ let platformDescription;
20
+ /** Cache probe results for the lifetime of the process; the runtime rarely changes. */
21
+ export function resetCodexCliIdentityCache() {
22
+ versionCache.clear();
23
+ platformDescription = undefined;
24
+ }
25
+ /**
26
+ * Full `user-agent` value a native `codex exec` process would send.
27
+ *
28
+ * Format verified against Codex CLI 0.156.0:
29
+ * `{name}/{codexVersion} ({platform}) {terminal} ({name}; {clientVersion})`
30
+ * e.g. `codex_exec/0.156.0 (Mac OS 15.6.1; arm64) Apple_Terminal/455.1 (codex_exec; 0.156.0)`
31
+ */
32
+ export function formatCodexCliUserAgent(parts) {
33
+ return `${parts.clientName}/${parts.codexVersion} (${parts.platform}) ${parts.terminal}`
34
+ + ` (${parts.clientName}; ${parts.clientVersion})`;
35
+ }
36
+ /**
37
+ * Terminal segment of the Codex user-agent.
38
+ *
39
+ * Codex prefers `TERM_PROGRAM`, then falls back to well-known session markers
40
+ * and finally reports `unknown`; verified against Codex CLI 0.156.0.
41
+ */
42
+ export function detectCodexTerminal(environment) {
43
+ const program = environment.TERM_PROGRAM?.trim();
44
+ if (program) {
45
+ const version = environment.TERM_PROGRAM_VERSION?.trim();
46
+ return version ? `${program}/${version}` : program;
47
+ }
48
+ if (environment.WT_SESSION?.trim())
49
+ return 'WindowsTerminal';
50
+ if (environment.TERM_SESSION_ID?.trim())
51
+ return 'Apple_Terminal';
52
+ return UNKNOWN_TERMINAL;
53
+ }
54
+ /** Architecture token as reported by the Rust `os_info` crate Codex uses. */
55
+ function describeArchitecture() {
56
+ switch (process.arch) {
57
+ case 'x64':
58
+ return 'x86_64';
59
+ case 'ia32':
60
+ return 'i686';
61
+ default:
62
+ return process.arch;
63
+ }
64
+ }
65
+ /** `Mac OS 15.6.1; arm64` — the parenthesised segment of the Codex user-agent. */
66
+ export async function resolveCodexPlatformDescription() {
67
+ platformDescription ??= buildPlatformDescription();
68
+ return await platformDescription;
69
+ }
70
+ async function buildPlatformDescription() {
71
+ const architecture = describeArchitecture();
72
+ if (process.platform === 'darwin') {
73
+ return `Mac OS ${await readMacOsProductVersion()}; ${architecture}`;
74
+ }
75
+ if (process.platform === 'linux') {
76
+ return `${await readLinuxDistributionName()}; ${architecture}`;
77
+ }
78
+ if (process.platform === 'win32') {
79
+ return `Windows ${os.release()}; ${architecture}`;
80
+ }
81
+ return `${process.platform}; ${architecture}`;
82
+ }
83
+ async function readMacOsProductVersion() {
84
+ try {
85
+ const { stdout } = await execFileAsync('sw_vers', ['-productVersion'], {
86
+ encoding: 'utf8',
87
+ timeout: VERSION_PROBE_TIMEOUT_MS,
88
+ });
89
+ const version = String(stdout).trim();
90
+ if (version)
91
+ return version;
92
+ }
93
+ catch {
94
+ // Fall through to the Darwin kernel mapping below.
95
+ }
96
+ // Darwin 24.6.0 -> macOS 15.6.0; the kernel release omits the patch version.
97
+ const [major, minor] = os.release().split('.');
98
+ const macosMajor = Number(major);
99
+ if (Number.isFinite(macosMajor) && macosMajor >= 20) {
100
+ return `${macosMajor - 9}.${minor ?? '0'}.0`;
101
+ }
102
+ return os.release();
103
+ }
104
+ async function readLinuxDistributionName() {
105
+ try {
106
+ const contents = await readFile('/etc/os-release', 'utf8');
107
+ const fields = new Map();
108
+ for (const line of contents.split('\n')) {
109
+ const separator = line.indexOf('=');
110
+ if (separator <= 0)
111
+ continue;
112
+ fields.set(line.slice(0, separator).trim(), line.slice(separator + 1).trim().replace(/^"|"$/g, ''));
113
+ }
114
+ const name = fields.get('NAME');
115
+ const version = fields.get('VERSION_ID');
116
+ if (name && version)
117
+ return `${name} ${version}`;
118
+ if (name)
119
+ return name;
120
+ }
121
+ catch {
122
+ // Unknown distributions keep the generic platform name.
123
+ }
124
+ return 'Linux';
125
+ }
126
+ /**
127
+ * Resolve `codex --version` for the binary Agent Tower is about to launch.
128
+ *
129
+ * Best effort: callers must tolerate `undefined` and leave headers untouched.
130
+ */
131
+ export async function resolveCodexVersion(codexPath, environment) {
132
+ if (!codexPath)
133
+ return undefined;
134
+ const cached = versionCache.get(codexPath);
135
+ if (cached)
136
+ return await cached;
137
+ const pending = probeCodexVersion(codexPath, environment);
138
+ versionCache.set(codexPath, pending);
139
+ return await pending;
140
+ }
141
+ async function probeCodexVersion(codexPath, environment) {
142
+ try {
143
+ const { stdout } = await execFileAsync(codexPath, ['--version'], {
144
+ encoding: 'utf8',
145
+ timeout: VERSION_PROBE_TIMEOUT_MS,
146
+ env: environment,
147
+ windowsHide: true,
148
+ // `.cmd` shims on Windows are not directly executable without a shell.
149
+ shell: process.platform === 'win32',
150
+ });
151
+ return parseCodexVersion(String(stdout));
152
+ }
153
+ catch {
154
+ return undefined;
155
+ }
156
+ }
157
+ /** `codex-cli 0.156.0` -> `0.156.0` */
158
+ export function parseCodexVersion(output) {
159
+ const match = /(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?)/.exec(output);
160
+ return match?.[1];
161
+ }
162
+ /**
163
+ * Build the `user-agent` that makes an ACP-launched Codex indistinguishable
164
+ * from a native `codex exec` process, or `undefined` when the runtime version
165
+ * cannot be determined.
166
+ */
167
+ export async function resolveCodexCliUserAgent(options) {
168
+ const codexVersion = await resolveCodexVersion(options.codexPath, options.environment);
169
+ if (!codexVersion)
170
+ return undefined;
171
+ return formatCodexCliUserAgent({
172
+ clientName: CODEX_CLI_ORIGINATOR,
173
+ codexVersion,
174
+ platform: await resolveCodexPlatformDescription(),
175
+ terminal: detectCodexTerminal(options.environment),
176
+ clientVersion: codexVersion,
177
+ });
178
+ }
179
+ //# sourceMappingURL=codex-cli-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-cli-identity.js","sourceRoot":"","sources":["../../../src/runtime/acp/codex-cli-identity.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,25 @@
1
1
  import type * as acp from '@agentclientprotocol/sdk';
2
- import { type Provider, type RuntimePermissionMode } from '@agent-tower/shared';
2
+ import { type Provider, type ExecutionPermissionMode } from '@agent-tower/shared';
3
3
  export interface CodexAcpProviderProjection {
4
4
  environment: Record<string, string>;
5
- permissionMode: RuntimePermissionMode;
5
+ permissionMode: ExecutionPermissionMode;
6
6
  authenticationRequest?: acp.AuthenticateRequest;
7
7
  appendPrompt?: string;
8
8
  fastMode?: boolean;
9
9
  }
10
10
  /** Project the persisted Provider into the environment contract consumed by codex-acp. */
11
11
  export declare function projectCodexAcpProvider(provider: Provider | null, inheritedEnvironment: Record<string, string>): CodexAcpProviderProjection;
12
+ /**
13
+ * Add the native Codex CLI `user-agent` to the active custom model provider.
14
+ *
15
+ * The ACP adapter identifies itself as `@agentclientprotocol/codex-acp` in the
16
+ * `user-agent` header, so rewriting `originator` alone still lets a gateway tell
17
+ * Agent Tower traffic apart from a native `codex exec` process. The header can
18
+ * only be replaced through the provider's `http_headers`; the value is resolved
19
+ * in `resolveLaunch` because it depends on the Codex runtime actually launched.
20
+ *
21
+ * Built-in providers without an explicit `model_providers` entry are left
22
+ * untouched, and headers configured by the Provider itself always win.
23
+ */
24
+ export declare function withCodexCliUserAgent(configJson: string | undefined, userAgent: string | undefined): string | undefined;
12
25
  //# sourceMappingURL=codex-provider-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex-provider-config.d.ts","sourceRoot":"","sources":["../../../src/runtime/acp/codex-provider-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAU7B,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,qBAAqB,CAAC;IACtC,qBAAqB,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA4BD,0FAA0F;AAC1F,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3C,0BAA0B,CAuI5B"}
1
+ {"version":3,"file":"codex-provider-config.d.ts","sourceRoot":"","sources":["../../../src/runtime/acp/codex-provider-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAU7B,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,uBAAuB,CAAC;IACxC,qBAAqB,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA4BD,0FAA0F;AAC1F,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3C,0BAA0B,CAyI5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,MAAM,GAAG,SAAS,CAoBpB"}
@@ -1,5 +1,5 @@
1
1
  import { parse as parseToml } from 'smol-toml';
2
- import { AgentType, normalizeRuntimePermissionMode, } from '@agent-tower/shared';
2
+ import { AgentType, resolveProviderExecutionPermission, } from '@agent-tower/shared';
3
3
  import { CODEX_HTTP_ONLY_OPENAI_PROVIDER_ID } from '../../executors/codex.executor.js';
4
4
  import { CODEX_OPENAI_COMPATIBLE_PROVIDER_NAME, resolveEffectiveProviderConnection, } from '../../services/provider-effective-connection.service.js';
5
5
  import { AgentRuntimeError } from '../errors.js';
@@ -126,16 +126,17 @@ export function projectCodexAcpProvider(provider, inheritedEnvironment) {
126
126
  if (Object.keys(codexConfig).length > 0) {
127
127
  environment.CODEX_CONFIG = JSON.stringify(codexConfig);
128
128
  }
129
- const configuredMode = provider.config.permissionMode ?? provider.config.acpPermissionMode;
130
129
  const appendPrompt = typeof provider.config.appendPrompt === 'string' && provider.config.appendPrompt
131
130
  ? provider.config.appendPrompt
132
131
  : undefined;
133
132
  const fastMode = typeof provider.config.fastMode === 'boolean'
134
133
  ? provider.config.fastMode
135
134
  : undefined;
136
- const permissionMode = configuredMode === undefined && provider.config.dangerouslyBypassApprovalsAndSandbox === true
137
- ? 'UNRESTRICTED'
138
- : normalizeRuntimePermissionMode(configuredMode);
135
+ const permission = resolveProviderExecutionPermission(provider);
136
+ if (permission.diagnostics.length) {
137
+ throw new AgentRuntimeError(permission.diagnostics[0].code, 'provider_config', permission.diagnostics.map(item => item.message).join('; '), false);
138
+ }
139
+ const permissionMode = permission.mode;
139
140
  return {
140
141
  environment,
141
142
  permissionMode,
@@ -144,4 +145,40 @@ export function projectCodexAcpProvider(provider, inheritedEnvironment) {
144
145
  ...(fastMode !== undefined ? { fastMode } : {}),
145
146
  };
146
147
  }
148
+ /**
149
+ * Add the native Codex CLI `user-agent` to the active custom model provider.
150
+ *
151
+ * The ACP adapter identifies itself as `@agentclientprotocol/codex-acp` in the
152
+ * `user-agent` header, so rewriting `originator` alone still lets a gateway tell
153
+ * Agent Tower traffic apart from a native `codex exec` process. The header can
154
+ * only be replaced through the provider's `http_headers`; the value is resolved
155
+ * in `resolveLaunch` because it depends on the Codex runtime actually launched.
156
+ *
157
+ * Built-in providers without an explicit `model_providers` entry are left
158
+ * untouched, and headers configured by the Provider itself always win.
159
+ */
160
+ export function withCodexCliUserAgent(configJson, userAgent) {
161
+ if (!configJson || !userAgent)
162
+ return configJson;
163
+ let config;
164
+ try {
165
+ config = JSON.parse(configJson);
166
+ }
167
+ catch {
168
+ return configJson;
169
+ }
170
+ if (!isRecord(config))
171
+ return configJson;
172
+ const modelProviderId = typeof config.model_provider === 'string' ? config.model_provider : undefined;
173
+ if (!modelProviderId || !isRecord(config.model_providers))
174
+ return configJson;
175
+ const modelProvider = config.model_providers[modelProviderId];
176
+ if (!isRecord(modelProvider))
177
+ return configJson;
178
+ const configuredHeaders = isRecord(modelProvider.http_headers) ? modelProvider.http_headers : {};
179
+ if (typeof configuredHeaders['user-agent'] === 'string')
180
+ return configJson;
181
+ modelProvider.http_headers = { 'user-agent': userAgent, ...configuredHeaders };
182
+ return JSON.stringify(config);
183
+ }
147
184
  //# sourceMappingURL=codex-provider-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex-provider-config.js","sourceRoot":"","sources":["../../../src/runtime/acp/codex-provider-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-provider-config.js","sourceRoot":"","sources":["../../../src/runtime/acp/codex-provider-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { RuntimePermissionRequest } from '@agent-tower/shared';
2
+ import type { CliDuplexIO } from '../utils/cli-duplex-channel.js';
3
+ export { describeCliAction as describeClaudeAction } from './cli-action-summary.js';
4
+ /** Claude codec only: public waiting/state belongs to RuntimeCoordinator. */
5
+ export declare class ClaudeCliControl {
6
+ private readonly io;
7
+ private readonly context;
8
+ private readonly callbacks;
9
+ private closed;
10
+ private ready;
11
+ private readonly controls;
12
+ private readonly pending;
13
+ private readonly seen;
14
+ constructor(io: CliDuplexIO, context: {
15
+ sessionId: string;
16
+ turnId: string;
17
+ runtimeInstanceId: string;
18
+ sensitiveValues?: string[];
19
+ }, callbacks: {
20
+ requested(request: RuntimePermissionRequest): void;
21
+ invalidated(id: string): void;
22
+ failed(error: unknown): void;
23
+ });
24
+ start(initialInput: string, confirmed?: () => void): Promise<void>;
25
+ handle(message: unknown): void;
26
+ resolve(requestId: string, optionId: string, authorizeDelivery?: () => void): Promise<void>;
27
+ close(): void;
28
+ private invalidate;
29
+ private fail;
30
+ private request;
31
+ }
32
+ //# sourceMappingURL=claude-cli-control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-cli-control.d.ts","sourceRoot":"","sources":["../../src/runtime/claude-cli-control.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAQlE,OAAO,EAAE,iBAAiB,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpF,6EAA6E;AAC7E,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAR5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6G;IACtI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoG;IAC5H,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;gBAEvB,EAAE,EAAE,WAAW,EACf,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EACrG,SAAS,EAAE;QAAE,SAAS,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAAC;QAAC,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE;IAG3I,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,GAAE,MAAM,IAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzF,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IA8CxB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBjG,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;CAYhB"}
@@ -0,0 +1,156 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { AgentRuntimeError } from './errors.js';
3
+ import { describeCliAction } from './cli-action-summary.js';
4
+ function object(value) { return !!value && typeof value === 'object' && !Array.isArray(value); }
5
+ const error = (code, message) => new AgentRuntimeError(code, 'permission', message, false);
6
+ export { describeCliAction as describeClaudeAction } from './cli-action-summary.js';
7
+ /** Claude codec only: public waiting/state belongs to RuntimeCoordinator. */
8
+ export class ClaudeCliControl {
9
+ io;
10
+ context;
11
+ callbacks;
12
+ closed = false;
13
+ ready = false;
14
+ controls = new Map();
15
+ pending = new Map();
16
+ seen = new Set();
17
+ constructor(io, context, callbacks) {
18
+ this.io = io;
19
+ this.context = context;
20
+ this.callbacks = callbacks;
21
+ }
22
+ async start(initialInput, confirmed = () => undefined) {
23
+ await this.request({ subtype: 'initialize' });
24
+ const mode = await this.request({ subtype: 'set_permission_mode', mode: 'default' });
25
+ if (!object(mode) || mode.mode !== 'default')
26
+ throw error('permission_mode_unconfirmed', 'Claude did not confirm default permission mode.');
27
+ if (this.closed)
28
+ throw error('permission_not_found', 'Claude execution has ended.');
29
+ this.ready = true;
30
+ confirmed();
31
+ await this.io.write(initialInput, () => !this.closed);
32
+ }
33
+ handle(message) {
34
+ if (this.closed)
35
+ return;
36
+ try {
37
+ if (!object(message))
38
+ throw error('control_protocol_invalid', 'Invalid Claude control message.');
39
+ if (message.type === 'control_response') {
40
+ const response = message.response;
41
+ if (!object(response) || typeof response.request_id !== 'string')
42
+ throw error('control_protocol_invalid', 'Invalid Claude control response.');
43
+ const pending = this.controls.get(response.request_id);
44
+ if (!pending)
45
+ return;
46
+ this.controls.delete(response.request_id);
47
+ clearTimeout(pending.timer);
48
+ if (response.subtype === 'success')
49
+ pending.resolve(response.response);
50
+ else
51
+ pending.reject(error('control_request_failed', 'Claude rejected initialization or permission mode configuration.'));
52
+ }
53
+ else if (message.type === 'control_cancel_request') {
54
+ if (typeof message.request_id !== 'string')
55
+ throw error('control_protocol_invalid', 'Invalid Claude cancellation.');
56
+ for (const [id, item] of this.pending)
57
+ if (item.nativeId === message.request_id)
58
+ this.invalidate(id);
59
+ }
60
+ else if (message.type === 'control_request') {
61
+ const request = message.request;
62
+ if (!this.ready || typeof message.request_id !== 'string' || !object(request))
63
+ throw error('control_protocol_invalid', 'Unexpected Claude control request.');
64
+ if (this.seen.has(message.request_id))
65
+ return;
66
+ if (this.seen.size >= 1024 || this.pending.size >= 32)
67
+ throw error('control_request_limit', 'Claude interaction limit exceeded.');
68
+ this.seen.add(message.request_id);
69
+ if (request.subtype !== 'can_use_tool' || request.requires_user_interaction === true || request.requiresUserInteraction === true
70
+ || ['AskUserQuestion', 'ExitPlanMode', 'EnterPlanMode'].includes(String(request.tool_name))) {
71
+ throw error('native_interaction_unsupported', 'This Claude question, plan confirmation, or native interaction is not supported.');
72
+ }
73
+ if (typeof request.tool_name !== 'string' || typeof request.tool_use_id !== 'string' || !request.tool_use_id || !object(request.input)) {
74
+ throw error('control_protocol_invalid', 'Claude approval request lacks a tool identity or valid input.');
75
+ }
76
+ const id = randomUUID();
77
+ this.pending.set(id, { nativeId: message.request_id, toolId: request.tool_use_id, input: request.input, responding: false });
78
+ this.callbacks.requested({
79
+ requestId: id, ...{ sessionId: this.context.sessionId, turnId: this.context.turnId }, runtimeInstanceId: this.context.runtimeInstanceId,
80
+ toolCallId: request.tool_use_id, toolName: request.tool_name.slice(0, 120), toolSummary: request.tool_name.slice(0, 120),
81
+ actionDetails: describeCliAction(request.input, this.context.sensitiveValues),
82
+ options: [{ optionId: 'allow_once', name: 'Allow once', kind: 'allow_once' }, { optionId: 'reject_once', name: 'Reject once', kind: 'reject_once' }],
83
+ createdAt: new Date().toISOString(),
84
+ });
85
+ }
86
+ else if (String(message.type).startsWith('control_')) {
87
+ throw error('control_protocol_invalid', 'Unknown Claude control message.');
88
+ }
89
+ else if (message.type === 'system' && message.subtype === 'init' && message.permissionMode !== undefined
90
+ && message.permissionMode !== 'default' && message.permissionMode !== 'manual') {
91
+ throw error('permission_mode_unconfirmed', 'Claude reported a permission mode other than default.');
92
+ }
93
+ }
94
+ catch (failure) {
95
+ this.fail(failure);
96
+ }
97
+ }
98
+ async resolve(requestId, optionId, authorizeDelivery) {
99
+ const item = this.pending.get(requestId);
100
+ if (this.closed || !item || item.responding)
101
+ throw error('permission_not_found', 'Permission request is no longer active.');
102
+ if (optionId !== 'allow_once' && optionId !== 'reject_once')
103
+ throw error('permission_option_invalid', 'Permission option was not offered.');
104
+ authorizeDelivery?.();
105
+ item.responding = true;
106
+ try {
107
+ await this.io.write(JSON.stringify({ type: 'control_response', response: {
108
+ subtype: 'success', request_id: item.nativeId, response: optionId === 'allow_once'
109
+ ? { behavior: 'allow', updatedInput: item.input, toolUseID: item.toolId }
110
+ : { behavior: 'deny', message: 'User denied this action', toolUseID: item.toolId },
111
+ } }) + '\n', () => { authorizeDelivery?.(); return !this.closed && this.pending.get(requestId) === item; });
112
+ if (this.closed || this.pending.get(requestId) !== item)
113
+ throw error('permission_not_found', 'Permission request was cancelled during delivery.');
114
+ this.invalidate(requestId);
115
+ }
116
+ catch (failure) {
117
+ // Delivery may be uncertain; never replay an allow onto another process.
118
+ if (this.pending.get(requestId) === item && !this.closed)
119
+ this.fail(error('control_write_failed', 'Claude approval could not be delivered. Execution was stopped.'));
120
+ throw failure;
121
+ }
122
+ }
123
+ close() {
124
+ if (this.closed)
125
+ return;
126
+ this.closed = true;
127
+ for (const id of this.pending.keys())
128
+ this.invalidate(id);
129
+ for (const item of this.controls.values()) {
130
+ clearTimeout(item.timer);
131
+ item.reject(error('control_disconnected', 'Claude control channel ended.'));
132
+ }
133
+ this.controls.clear();
134
+ }
135
+ invalidate(id) { if (this.pending.delete(id))
136
+ this.callbacks.invalidated(id); }
137
+ fail(failure) { this.close(); this.callbacks.failed(failure); }
138
+ request(request) {
139
+ if (this.closed)
140
+ return Promise.reject(error('control_disconnected', 'Claude control channel ended.'));
141
+ const id = randomUUID();
142
+ return new Promise((resolve, reject) => {
143
+ const timer = setTimeout(() => { this.controls.delete(id); reject(error('control_handshake_timeout', 'Claude initialization or permission confirmation timed out.')); }, 15_000);
144
+ this.controls.set(id, { resolve, reject, timer });
145
+ void this.io.write(JSON.stringify({ type: 'control_request', request_id: id, request }) + '\n', () => !this.closed).catch(failure => {
146
+ const item = this.controls.get(id);
147
+ if (!item)
148
+ return;
149
+ this.controls.delete(id);
150
+ clearTimeout(timer);
151
+ reject(failure);
152
+ });
153
+ });
154
+ }
155
+ }
156
+ //# sourceMappingURL=claude-cli-control.js.map