@songsid/agend 2.3.4-beta.7 → 2.3.5-alpha.3

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 (457) hide show
  1. package/README.md +2 -0
  2. package/README.zh-TW.md +2 -0
  3. package/THIRD_PARTY_NOTICES.md +53 -0
  4. package/dist/agent-endpoint.d.ts +5 -1
  5. package/dist/agent-endpoint.js +12 -2
  6. package/dist/agent-endpoint.js.map +1 -1
  7. package/dist/auth-api.d.ts +21 -0
  8. package/dist/auth-api.js +89 -2
  9. package/dist/auth-api.js.map +1 -1
  10. package/dist/authority/web-authority.d.ts +12 -2
  11. package/dist/authority/web-authority.js +25 -4
  12. package/dist/authority/web-authority.js.map +1 -1
  13. package/dist/backend/claude-code.d.ts +15 -12
  14. package/dist/backend/claude-code.js +152 -133
  15. package/dist/backend/claude-code.js.map +1 -1
  16. package/dist/backend/codex-package.d.ts +5 -2
  17. package/dist/backend/codex-package.js +1 -5
  18. package/dist/backend/codex-package.js.map +1 -1
  19. package/dist/backend/codex.d.ts +136 -113
  20. package/dist/backend/codex.js +1281 -1219
  21. package/dist/backend/codex.js.map +1 -1
  22. package/dist/backend/grok-model-cache.d.ts +7 -0
  23. package/dist/backend/grok-model-cache.js +65 -0
  24. package/dist/backend/grok-model-cache.js.map +1 -0
  25. package/dist/backend/grok.d.ts +2 -0
  26. package/dist/backend/grok.js +22 -0
  27. package/dist/backend/grok.js.map +1 -1
  28. package/dist/backend/native-pane.d.ts +9 -0
  29. package/dist/backend/native-pane.js +59 -0
  30. package/dist/backend/native-pane.js.map +1 -0
  31. package/dist/backend/types.d.ts +7 -0
  32. package/dist/backend/types.js.map +1 -1
  33. package/dist/channel/ipc-bridge.d.ts +2 -0
  34. package/dist/channel/mcp-tools.js +1 -1
  35. package/dist/channel/mcp-tools.js.map +1 -1
  36. package/dist/cli.js +3 -0
  37. package/dist/cli.js.map +1 -1
  38. package/dist/config-validator.js +71 -1
  39. package/dist/config-validator.js.map +1 -1
  40. package/dist/config.js +16 -0
  41. package/dist/config.js.map +1 -1
  42. package/dist/daemon.d.ts +67 -5
  43. package/dist/daemon.js +823 -266
  44. package/dist/daemon.js.map +1 -1
  45. package/dist/delivery-consumed-watch.d.ts +15 -3
  46. package/dist/delivery-consumed-watch.js +23 -1
  47. package/dist/delivery-consumed-watch.js.map +1 -1
  48. package/dist/delivery-outbox.d.ts +5 -0
  49. package/dist/delivery-outbox.js +32 -4
  50. package/dist/delivery-outbox.js.map +1 -1
  51. package/dist/delivery-reconciliation.d.ts +2 -35
  52. package/dist/delivery-reconciliation.js +2 -156
  53. package/dist/delivery-reconciliation.js.map +1 -1
  54. package/dist/fleet-context.d.ts +2 -2
  55. package/dist/fleet-level-config.d.ts +1 -1
  56. package/dist/fleet-level-config.js +2 -0
  57. package/dist/fleet-level-config.js.map +1 -1
  58. package/dist/fleet-manager.d.ts +238 -3
  59. package/dist/fleet-manager.js +1826 -104
  60. package/dist/fleet-manager.js.map +1 -1
  61. package/dist/fleet-windows-runtime.d.ts +92 -0
  62. package/dist/fleet-windows-runtime.js +380 -0
  63. package/dist/fleet-windows-runtime.js.map +1 -0
  64. package/dist/general-binding.d.ts +85 -0
  65. package/dist/general-binding.js +298 -0
  66. package/dist/general-binding.js.map +1 -0
  67. package/dist/general-host-owner.d.ts +8 -0
  68. package/dist/general-host-owner.js +26 -0
  69. package/dist/general-host-owner.js.map +1 -0
  70. package/dist/general-instance.d.ts +7 -0
  71. package/dist/general-instance.js +20 -3
  72. package/dist/general-instance.js.map +1 -1
  73. package/dist/general-role.d.ts +5 -0
  74. package/dist/general-role.js +26 -0
  75. package/dist/general-role.js.map +1 -0
  76. package/dist/instance-config-impact.js +4 -0
  77. package/dist/instance-config-impact.js.map +1 -1
  78. package/dist/instance-lifecycle.d.ts +21 -3
  79. package/dist/instance-lifecycle.js +378 -162
  80. package/dist/instance-lifecycle.js.map +1 -1
  81. package/dist/instructions.d.ts +2 -0
  82. package/dist/instructions.js +6 -0
  83. package/dist/instructions.js.map +1 -1
  84. package/dist/local-pane-endpoint.d.ts +46 -0
  85. package/dist/local-pane-endpoint.js +189 -0
  86. package/dist/local-pane-endpoint.js.map +1 -0
  87. package/dist/local-pane-launcher.d.ts +2 -0
  88. package/dist/local-pane-launcher.js +38 -0
  89. package/dist/local-pane-launcher.js.map +1 -0
  90. package/dist/local-pane-stage.ps1 +101 -0
  91. package/dist/locale.js +85 -0
  92. package/dist/locale.js.map +1 -1
  93. package/dist/model-catalog-defaults.d.ts +14 -0
  94. package/dist/model-catalog-defaults.js +20 -0
  95. package/dist/model-catalog-defaults.js.map +1 -0
  96. package/dist/native-agent-admission.d.ts +7 -0
  97. package/dist/native-agent-admission.js +26 -0
  98. package/dist/native-agent-admission.js.map +1 -0
  99. package/dist/native-daemon-client.d.ts +13 -0
  100. package/dist/native-daemon-client.js +28 -0
  101. package/dist/native-daemon-client.js.map +1 -0
  102. package/dist/native-instance-api.d.ts +14 -0
  103. package/dist/native-instance-api.js +205 -0
  104. package/dist/native-instance-api.js.map +1 -0
  105. package/dist/native-instance-input.d.ts +84 -0
  106. package/dist/native-instance-input.js +54 -0
  107. package/dist/native-instance-input.js.map +1 -0
  108. package/dist/native-instance-registry.d.ts +32 -0
  109. package/dist/native-instance-registry.js +105 -0
  110. package/dist/native-instance-registry.js.map +1 -0
  111. package/dist/native-mcp.d.ts +40 -0
  112. package/dist/native-mcp.js +278 -0
  113. package/dist/native-mcp.js.map +1 -0
  114. package/dist/native-model-catalog.d.ts +5 -0
  115. package/dist/native-model-catalog.js +76 -0
  116. package/dist/native-model-catalog.js.map +1 -0
  117. package/dist/native-pane-crash-budget.d.ts +20 -0
  118. package/dist/native-pane-crash-budget.js +60 -0
  119. package/dist/native-pane-crash-budget.js.map +1 -0
  120. package/dist/native-pane-create.d.ts +26 -0
  121. package/dist/native-pane-create.js +53 -0
  122. package/dist/native-pane-create.js.map +1 -0
  123. package/dist/native-pane-lifecycle.d.ts +65 -0
  124. package/dist/native-pane-lifecycle.js +230 -0
  125. package/dist/native-pane-lifecycle.js.map +1 -0
  126. package/dist/native-pane-manager.d.ts +59 -0
  127. package/dist/native-pane-manager.js +584 -0
  128. package/dist/native-pane-manager.js.map +1 -0
  129. package/dist/native-pane-output-log.d.ts +15 -0
  130. package/dist/native-pane-output-log.js +108 -0
  131. package/dist/native-pane-output-log.js.map +1 -0
  132. package/dist/native-pane-reconciliation.d.ts +4 -0
  133. package/dist/native-pane-reconciliation.js +40 -0
  134. package/dist/native-pane-reconciliation.js.map +1 -0
  135. package/dist/native-pane-recovery.d.ts +12 -0
  136. package/dist/native-pane-recovery.js +10 -0
  137. package/dist/native-pane-recovery.js.map +1 -0
  138. package/dist/native-pane-tools.d.ts +2 -0
  139. package/dist/native-pane-tools.js +14 -0
  140. package/dist/native-pane-tools.js.map +1 -0
  141. package/dist/needs-you-hub.d.ts +2 -0
  142. package/dist/needs-you-hub.js +2 -1
  143. package/dist/needs-you-hub.js.map +1 -1
  144. package/dist/needs-you.d.ts +19 -1
  145. package/dist/needs-you.js +12 -2
  146. package/dist/needs-you.js.map +1 -1
  147. package/dist/outbound-handlers.d.ts +16 -2
  148. package/dist/outbound-handlers.js +67 -3
  149. package/dist/outbound-handlers.js.map +1 -1
  150. package/dist/outbound-schemas.d.ts +38 -0
  151. package/dist/outbound-schemas.js +12 -0
  152. package/dist/outbound-schemas.js.map +1 -1
  153. package/dist/pane-port.d.ts +118 -0
  154. package/dist/pane-port.js +2 -0
  155. package/dist/pane-port.js.map +1 -0
  156. package/dist/public-web-gateway.js +9 -0
  157. package/dist/public-web-gateway.js.map +1 -1
  158. package/dist/public-web-link.d.ts +5 -0
  159. package/dist/public-web-link.js +4 -0
  160. package/dist/public-web-link.js.map +1 -1
  161. package/dist/quickstart-api.js +9 -5
  162. package/dist/quickstart-api.js.map +1 -1
  163. package/dist/quickstart.d.ts +1 -0
  164. package/dist/quickstart.js +4 -1
  165. package/dist/quickstart.js.map +1 -1
  166. package/dist/runtime-api.d.ts +8 -0
  167. package/dist/runtime-api.js +96 -0
  168. package/dist/runtime-api.js.map +1 -0
  169. package/dist/runtime-assets/@xterm/addon-serialize/LICENSE +21 -0
  170. package/dist/runtime-assets/@xterm/addon-serialize/lib/addon-serialize.js +2 -0
  171. package/dist/runtime-assets/@xterm/addon-serialize/lib/addon-serialize.mjs +19 -0
  172. package/dist/runtime-assets/@xterm/addon-serialize/package.json +29 -0
  173. package/dist/runtime-assets/@xterm/headless/LICENSE +21 -0
  174. package/dist/runtime-assets/@xterm/headless/lib-headless/xterm-headless.js +2 -0
  175. package/dist/runtime-assets/@xterm/headless/lib-headless/xterm-headless.mjs +46 -0
  176. package/dist/runtime-assets/@xterm/headless/package.json +29 -0
  177. package/dist/runtime-assets/node-pty/CONPTY-LICENSE +21 -0
  178. package/dist/runtime-assets/node-pty/CONPTY-NOTICE.md +503 -0
  179. package/dist/runtime-assets/node-pty/LICENSE +69 -0
  180. package/dist/runtime-assets/node-pty/lib/conpty_console_list_agent.js +16 -0
  181. package/dist/runtime-assets/node-pty/lib/eventEmitter2.js +47 -0
  182. package/dist/runtime-assets/node-pty/lib/index.js +52 -0
  183. package/dist/runtime-assets/node-pty/lib/interfaces.js +7 -0
  184. package/dist/runtime-assets/node-pty/lib/shared/conout.js +11 -0
  185. package/dist/runtime-assets/node-pty/lib/terminal.js +190 -0
  186. package/dist/runtime-assets/node-pty/lib/types.js +7 -0
  187. package/dist/runtime-assets/node-pty/lib/unixTerminal.js +346 -0
  188. package/dist/runtime-assets/node-pty/lib/utils.js +39 -0
  189. package/dist/runtime-assets/node-pty/lib/windowsConoutConnection.js +125 -0
  190. package/dist/runtime-assets/node-pty/lib/windowsPtyAgent.js +320 -0
  191. package/dist/runtime-assets/node-pty/lib/windowsTerminal.js +199 -0
  192. package/dist/runtime-assets/node-pty/lib/worker/conoutSocketWorker.js +22 -0
  193. package/dist/runtime-assets/node-pty/package.json +64 -0
  194. package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
  195. package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
  196. package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
  197. package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
  198. package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
  199. package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
  200. package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty.node +0 -0
  201. package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
  202. package/dist/runtime-bundle.d.ts +17 -0
  203. package/dist/runtime-bundle.js +150 -0
  204. package/dist/runtime-bundle.js.map +1 -0
  205. package/dist/runtime-cli.d.ts +2 -0
  206. package/dist/runtime-cli.js +117 -0
  207. package/dist/runtime-cli.js.map +1 -0
  208. package/dist/runtime-client-store.d.ts +49 -0
  209. package/dist/runtime-client-store.js +292 -0
  210. package/dist/runtime-client-store.js.map +1 -0
  211. package/dist/runtime-client.d.ts +100 -0
  212. package/dist/runtime-client.js +700 -0
  213. package/dist/runtime-client.js.map +1 -0
  214. package/dist/runtime-coordinator.d.ts +82 -0
  215. package/dist/runtime-coordinator.js +864 -0
  216. package/dist/runtime-coordinator.js.map +1 -0
  217. package/dist/runtime-general-protocol.d.ts +22 -0
  218. package/dist/runtime-general-protocol.js +57 -0
  219. package/dist/runtime-general-protocol.js.map +1 -0
  220. package/dist/runtime-general-workspace.d.ts +17 -0
  221. package/dist/runtime-general-workspace.js +213 -0
  222. package/dist/runtime-general-workspace.js.map +1 -0
  223. package/dist/runtime-pane-assets.d.ts +17 -0
  224. package/dist/runtime-pane-assets.js +23 -0
  225. package/dist/runtime-pane-assets.js.map +1 -0
  226. package/dist/runtime-pane-boot.d.ts +2 -0
  227. package/dist/runtime-pane-boot.js +24 -0
  228. package/dist/runtime-pane-boot.js.map +1 -0
  229. package/dist/runtime-pane-codex-index.d.ts +1 -0
  230. package/dist/runtime-pane-codex-index.js +47 -0
  231. package/dist/runtime-pane-codex-index.js.map +1 -0
  232. package/dist/runtime-pane-config.d.ts +16 -0
  233. package/dist/runtime-pane-config.js +54 -0
  234. package/dist/runtime-pane-config.js.map +1 -0
  235. package/dist/runtime-pane-host.d.ts +44 -0
  236. package/dist/runtime-pane-host.js +424 -0
  237. package/dist/runtime-pane-host.js.map +1 -0
  238. package/dist/runtime-pane-job-owner.d.ts +1 -0
  239. package/dist/runtime-pane-job-owner.js +29 -0
  240. package/dist/runtime-pane-job-owner.js.map +1 -0
  241. package/dist/runtime-pane-job.ps1 +116 -0
  242. package/dist/runtime-pane-link.d.ts +40 -0
  243. package/dist/runtime-pane-link.js +246 -0
  244. package/dist/runtime-pane-link.js.map +1 -0
  245. package/dist/runtime-pane-mcp-protocol.d.ts +32 -0
  246. package/dist/runtime-pane-mcp-protocol.js +39 -0
  247. package/dist/runtime-pane-mcp-protocol.js.map +1 -0
  248. package/dist/runtime-pane-mcp-relay.d.ts +17 -0
  249. package/dist/runtime-pane-mcp-relay.js +70 -0
  250. package/dist/runtime-pane-mcp-relay.js.map +1 -0
  251. package/dist/runtime-pane-mcp.d.ts +51 -0
  252. package/dist/runtime-pane-mcp.js +150 -0
  253. package/dist/runtime-pane-mcp.js.map +1 -0
  254. package/dist/runtime-pane-native.d.ts +45 -0
  255. package/dist/runtime-pane-native.js +65 -0
  256. package/dist/runtime-pane-native.js.map +1 -0
  257. package/dist/runtime-pane-output.d.ts +19 -0
  258. package/dist/runtime-pane-output.js +53 -0
  259. package/dist/runtime-pane-output.js.map +1 -0
  260. package/dist/runtime-pane-port.d.ts +139 -0
  261. package/dist/runtime-pane-port.js +558 -0
  262. package/dist/runtime-pane-port.js.map +1 -0
  263. package/dist/runtime-pane-private.d.ts +14 -0
  264. package/dist/runtime-pane-private.js +51 -0
  265. package/dist/runtime-pane-private.js.map +1 -0
  266. package/dist/runtime-pane-private.ps1 +14 -0
  267. package/dist/runtime-pane-process.d.ts +4 -0
  268. package/dist/runtime-pane-process.js +108 -0
  269. package/dist/runtime-pane-process.js.map +1 -0
  270. package/dist/runtime-pane-protocol.d.ts +172 -0
  271. package/dist/runtime-pane-protocol.js +195 -0
  272. package/dist/runtime-pane-protocol.js.map +1 -0
  273. package/dist/runtime-pane-screen.d.ts +19 -0
  274. package/dist/runtime-pane-screen.js +76 -0
  275. package/dist/runtime-pane-screen.js.map +1 -0
  276. package/dist/runtime-pane-service.d.ts +11 -0
  277. package/dist/runtime-pane-service.js +221 -0
  278. package/dist/runtime-pane-service.js.map +1 -0
  279. package/dist/runtime-pane-stdio-protocol.d.ts +54 -0
  280. package/dist/runtime-pane-stdio-protocol.js +94 -0
  281. package/dist/runtime-pane-stdio-protocol.js.map +1 -0
  282. package/dist/runtime-pane-stdio.d.ts +3 -0
  283. package/dist/runtime-pane-stdio.js +123 -0
  284. package/dist/runtime-pane-stdio.js.map +1 -0
  285. package/dist/runtime-pane-store.d.ts +33 -0
  286. package/dist/runtime-pane-store.js +164 -0
  287. package/dist/runtime-pane-store.js.map +1 -0
  288. package/dist/runtime-pane-transcript-protocol.d.ts +43 -0
  289. package/dist/runtime-pane-transcript-protocol.js +58 -0
  290. package/dist/runtime-pane-transcript-protocol.js.map +1 -0
  291. package/dist/runtime-pane-transcript.d.ts +45 -0
  292. package/dist/runtime-pane-transcript.js +605 -0
  293. package/dist/runtime-pane-transcript.js.map +1 -0
  294. package/dist/runtime-pane-worker.d.ts +1 -0
  295. package/dist/runtime-pane-worker.js +154 -0
  296. package/dist/runtime-pane-worker.js.map +1 -0
  297. package/dist/runtime-protocol.d.ts +149 -0
  298. package/dist/runtime-protocol.js +19 -0
  299. package/dist/runtime-protocol.js.map +1 -0
  300. package/dist/runtime-switches.d.ts +79 -0
  301. package/dist/runtime-switches.js +90 -0
  302. package/dist/runtime-switches.js.map +1 -0
  303. package/dist/runtime-transcript-delta-reader.d.ts +23 -0
  304. package/dist/runtime-transcript-delta-reader.js +74 -0
  305. package/dist/runtime-transcript-delta-reader.js.map +1 -0
  306. package/dist/runtime-transcript-source.d.ts +36 -0
  307. package/dist/runtime-transcript-source.js +189 -0
  308. package/dist/runtime-transcript-source.js.map +1 -0
  309. package/dist/runtime-windows-bridge.d.ts +41 -0
  310. package/dist/runtime-windows-bridge.js +157 -0
  311. package/dist/runtime-windows-bridge.js.map +1 -0
  312. package/dist/settings-api.d.ts +5 -0
  313. package/dist/settings-api.js +95 -1
  314. package/dist/settings-api.js.map +1 -1
  315. package/dist/settings-baseline.d.ts +1 -0
  316. package/dist/settings-baseline.js +1 -1
  317. package/dist/settings-baseline.js.map +1 -1
  318. package/dist/settings-change.js +28 -0
  319. package/dist/settings-change.js.map +1 -1
  320. package/dist/settings-confirmation.d.ts +16 -1
  321. package/dist/settings-confirmation.js +47 -9
  322. package/dist/settings-confirmation.js.map +1 -1
  323. package/dist/settings-effect.d.ts +4 -0
  324. package/dist/settings-effect.js +58 -1
  325. package/dist/settings-effect.js.map +1 -1
  326. package/dist/settings-http-confirmation.d.ts +1 -0
  327. package/dist/settings-http-confirmation.js +15 -2
  328. package/dist/settings-http-confirmation.js.map +1 -1
  329. package/dist/settings-request-capability.d.ts +2 -0
  330. package/dist/settings-request-capability.js +4 -0
  331. package/dist/settings-request-capability.js.map +1 -1
  332. package/dist/settings-route-lifetime.d.ts +14 -0
  333. package/dist/settings-route-lifetime.js +48 -0
  334. package/dist/settings-route-lifetime.js.map +1 -0
  335. package/dist/settings-transaction.d.ts +4 -0
  336. package/dist/settings-transaction.js +9 -0
  337. package/dist/settings-transaction.js.map +1 -1
  338. package/dist/setup-form.js +6 -3
  339. package/dist/setup-form.js.map +1 -1
  340. package/dist/setup-i18n.js +3 -0
  341. package/dist/setup-i18n.js.map +1 -1
  342. package/dist/tmux-control.d.ts +2 -1
  343. package/dist/tmux-control.js.map +1 -1
  344. package/dist/tmux-manager.d.ts +2 -1
  345. package/dist/tmux-manager.js.map +1 -1
  346. package/dist/tmux-pane-host.d.ts +26 -0
  347. package/dist/tmux-pane-host.js +25 -0
  348. package/dist/tmux-pane-host.js.map +1 -0
  349. package/dist/tool-permissions.js +2 -1
  350. package/dist/tool-permissions.js.map +1 -1
  351. package/dist/topic-commands.js +3 -0
  352. package/dist/topic-commands.js.map +1 -1
  353. package/dist/transcript-delta-reader.d.ts +1 -1
  354. package/dist/transcript-delta-reader.js +1 -1
  355. package/dist/transcript-delta-reader.js.map +1 -1
  356. package/dist/transcript-monitor.d.ts +3 -0
  357. package/dist/transcript-monitor.js +22 -46
  358. package/dist/transcript-monitor.js.map +1 -1
  359. package/dist/transcript-needles.d.ts +35 -0
  360. package/dist/transcript-needles.js +158 -0
  361. package/dist/transcript-needles.js.map +1 -0
  362. package/dist/transcript-records.d.ts +21 -0
  363. package/dist/transcript-records.js +140 -0
  364. package/dist/transcript-records.js.map +1 -0
  365. package/dist/transcript-sources.d.ts +5 -0
  366. package/dist/transcript-sources.js +8 -79
  367. package/dist/transcript-sources.js.map +1 -1
  368. package/dist/types.d.ts +23 -0
  369. package/dist/ui/agent-proposals.js +90 -0
  370. package/dist/ui/agent-runtime.js +106 -0
  371. package/dist/ui/chat-store.js +13 -2
  372. package/dist/ui/chat-strings.js +48 -0
  373. package/dist/ui/cli-picker.js +42 -0
  374. package/dist/ui/general-location.js +71 -0
  375. package/dist/ui/native-instance-settings.js +47 -0
  376. package/dist/ui/native-pane-recovery.js +45 -0
  377. package/dist/ui/panel-chat.js +63 -32
  378. package/dist/ui/panel-details.js +2 -1
  379. package/dist/ui/panel-fleet.js +99 -18
  380. package/dist/ui/panel-needs.js +154 -3
  381. package/dist/ui/panel-runtimes.js +231 -0
  382. package/dist/ui/panel-settings.js +19 -9
  383. package/dist/ui/panel-windows-agent.js +86 -0
  384. package/dist/ui/panel-windows-cli.js +143 -0
  385. package/dist/ui/provider-marks.js +83 -0
  386. package/dist/ui/runtime-catalog.js +55 -0
  387. package/dist/ui/settings-catalog.js +37 -10
  388. package/dist/ui/settings-confirm.js +3 -1
  389. package/dist/ui/settings-dialogs.js +22 -7
  390. package/dist/ui/settings-model.js +2 -1
  391. package/dist/ui/settings-outside.js +176 -0
  392. package/dist/ui/settings-registry.js +6 -0
  393. package/dist/ui/settings-strings.js +16 -0
  394. package/dist/ui/shared/app-i18n.js +2 -2
  395. package/dist/ui/shared/app-route.js +6 -2
  396. package/dist/ui/shared/app-shell.js +3 -2
  397. package/dist/ui/shared/app-store.js +1 -0
  398. package/dist/ui/shared/app-stream.js +3 -1
  399. package/dist/ui/shared/app.css +301 -0
  400. package/dist/ui/shared/app.js +4 -0
  401. package/dist/ui/shared/header-tools.js +6 -4
  402. package/dist/ui/shared/instance-nav.js +33 -7
  403. package/dist/ui/shared/instance-switch.js +4 -3
  404. package/dist/ui/shared/qrcode.module.js +2237 -0
  405. package/dist/ui/shared/signin.js +39 -5
  406. package/dist/ui/shared/ui-menu.js +28 -8
  407. package/dist/ui/shared/vendor/qrcode-generator.LICENSE +27 -0
  408. package/dist/ui/shared/vendor/vendor.json +19 -2
  409. package/dist/ui/shared/view-strings.js +8 -0
  410. package/dist/ui/windows-agents-nav.js +2 -0
  411. package/dist/ui/windows-cli-catalog.js +79 -0
  412. package/dist/web-api.d.ts +37 -0
  413. package/dist/web-api.js +248 -6
  414. package/dist/web-api.js.map +1 -1
  415. package/dist/web-chat-history.d.ts +19 -2
  416. package/dist/web-chat-history.js +72 -3
  417. package/dist/web-chat-history.js.map +1 -1
  418. package/dist/web-only-fleet.d.ts +20 -0
  419. package/dist/web-only-fleet.js +21 -0
  420. package/dist/web-only-fleet.js.map +1 -1
  421. package/dist/web-remote-access.d.ts +152 -0
  422. package/dist/web-remote-access.js +368 -0
  423. package/dist/web-remote-access.js.map +1 -0
  424. package/dist/web-session.d.ts +7 -0
  425. package/dist/web-session.js +2 -0
  426. package/dist/web-session.js.map +1 -1
  427. package/dist/web-shell-routes.d.ts +4 -1
  428. package/dist/web-shell-routes.js +7 -2
  429. package/dist/web-shell-routes.js.map +1 -1
  430. package/dist/windows-agents.d.ts +124 -0
  431. package/dist/windows-agents.js +487 -0
  432. package/dist/windows-agents.js.map +1 -0
  433. package/dist/windows-cli-api.d.ts +23 -0
  434. package/dist/windows-cli-api.js +158 -0
  435. package/dist/windows-cli-api.js.map +1 -0
  436. package/dist/windows-cli-providers.d.ts +115 -0
  437. package/dist/windows-cli-providers.js +429 -0
  438. package/dist/windows-cli-providers.js.map +1 -0
  439. package/dist/windows-cli-worker.d.ts +58 -0
  440. package/dist/windows-cli-worker.js +479 -0
  441. package/dist/windows-cli-worker.js.map +1 -0
  442. package/dist/windows-cli.d.ts +115 -0
  443. package/dist/windows-cli.js +402 -0
  444. package/dist/windows-cli.js.map +1 -0
  445. package/dist/windows-native-mcp.d.ts +19 -0
  446. package/dist/windows-native-mcp.js +143 -0
  447. package/dist/windows-native-mcp.js.map +1 -0
  448. package/dist/windows-pane-mcp.d.ts +26 -0
  449. package/dist/windows-pane-mcp.js +187 -0
  450. package/dist/windows-pane-mcp.js.map +1 -0
  451. package/package.json +9 -3
  452. package/templates/runtime-assets/conpty-LICENSE +21 -0
  453. package/templates/runtime-assets/conpty-NOTICE.md +503 -0
  454. package/templates/runtime-assets/local-pane-stage.ps1 +101 -0
  455. package/templates/runtime-assets/runtime-pane-job.ps1 +116 -0
  456. package/templates/runtime-assets/runtime-pane-private.ps1 +14 -0
  457. package/templates/runtime-assets/xterm-LICENSE +21 -0
@@ -0,0 +1,115 @@
1
+ import { type NativeCliRow, type NativeTaskInput } from "./windows-cli-worker.js";
2
+ import { type NativeMcpConnection, type NativeProviderId } from "./windows-cli-providers.js";
3
+ /** `probedAt`: when an administrator last ran detection (ms), null when it never ran — then `clis` is empty. */
4
+ export interface WindowsCliProbe {
5
+ clis: NativeCliRow[];
6
+ home: string;
7
+ probedAt: number | null;
8
+ }
9
+ /**
10
+ * alpha.2 (#3004, dev-claude's rig): whether a runner's CLI inventory is a real report. A just-paired runner's hello
11
+ * carries a placeholder — `{ clis: [], home: "", probedAt: null }` — that says nothing about what is installed: it is
12
+ * as missing as no inventory at all, and the coordinator asks that runner for its report.
13
+ */
14
+ export declare function inventoryProbed(probe: WindowsCliProbe | null | undefined): boolean;
15
+ export interface WindowsCliTask {
16
+ id: string;
17
+ cli: NativeProviderId;
18
+ model?: string;
19
+ cwd: string;
20
+ sandbox: NativeTaskInput["sandbox"];
21
+ status: "starting" | "running" | "cancelling" | "completed" | "failed" | "cancelled";
22
+ startedAt: number;
23
+ finishedAt?: number;
24
+ output: string;
25
+ error?: string;
26
+ threadId?: string;
27
+ outcomeConfirmed?: boolean;
28
+ }
29
+ export interface WindowsRunOptions {
30
+ resumeSessionId?: string;
31
+ onSettled?: (task: WindowsCliTask) => void;
32
+ mcp?: NativeMcpConnection;
33
+ context?: string;
34
+ machineId?: string;
35
+ }
36
+ /** The conversation store uses this port for both the existing local worker and paired runtimes. */
37
+ export interface WindowsCliExecutor {
38
+ probe(options?: {
39
+ force?: boolean;
40
+ machineId?: string;
41
+ }): Promise<WindowsCliProbe>;
42
+ prepareWorkspace(agentId: string, authorized?: () => boolean, machineId?: string): Promise<string>;
43
+ start(value: unknown, authorized?: () => boolean, options?: WindowsRunOptions): WindowsCliTask;
44
+ get(id: string): WindowsCliTask | null;
45
+ list(): WindowsCliTask[];
46
+ hasActiveTask(machineId?: string): boolean;
47
+ cancel(id: string): WindowsCliTask;
48
+ releaseUnknown(id: string): void;
49
+ close(): void;
50
+ }
51
+ export interface WindowsTransport {
52
+ executable: string;
53
+ args: string[];
54
+ }
55
+ export type WindowsLauncher = () => Promise<WindowsTransport>;
56
+ /** M-2239 P1-2: the last detection, kept across restarts; never refreshed on a timer or a read. */
57
+ export declare const WINDOWS_CLI_INVENTORY_FILE = "windows-cli-inventory.json";
58
+ /** Either Windows runtime is on (M-2255: Settings → Runtime, or its environment override): the native agent plumbing. */
59
+ export declare function windowsCliEnabled(): boolean;
60
+ /** M-2255: what a local Windows operation says while "Use this PC's Windows CLIs" is off. */
61
+ export declare const LOCAL_WINDOWS_CLI_OFF = "This PC's Windows CLIs are turned off. Turn them on in Settings \u2192 Runtime.";
62
+ /**
63
+ * M-2255: the one place a local Windows process starts from (detection, a workspace, a task): it asks the switch each
64
+ * time, so turning "Use this PC's Windows CLIs" off starts nothing more on this PC — whatever else is on.
65
+ */
66
+ export declare function switchedWindowsTransport(): Promise<WindowsTransport>;
67
+ /**
68
+ * #2955 review (Prism P2): finding the transport awaits (PowerShell, wslpath), and the switch can be turned off
69
+ * meanwhile — its close is queued after the save. So the switch is asked again synchronously right before the spawn.
70
+ */
71
+ export declare function admitLocalWindowsCli(): void;
72
+ export declare function nativeWindowsTransport(): Promise<WindowsTransport>;
73
+ export declare class WindowsCliBridge {
74
+ private readonly launcher;
75
+ private readonly inventoryFile?;
76
+ readonly admit?: (() => void) | undefined;
77
+ private tasks;
78
+ private submitted;
79
+ private child;
80
+ private active;
81
+ private pendingProbe;
82
+ private workerGeneration;
83
+ private readonly pendingWorkers;
84
+ private cachedProbe;
85
+ /**
86
+ * `inventoryFile`: where the last detection is kept (absent: memory only). `admit` (M-2255, #2955 review): asked
87
+ * synchronously immediately before each Windows process starts — after every await — and throws to refuse it; the
88
+ * coordinator's bridge passes this PC's switch (admitLocalWindowsCli), the standalone runner passes nothing.
89
+ */
90
+ constructor(launcher?: WindowsLauncher, inventoryFile?: string | undefined, admit?: (() => void) | undefined);
91
+ list(): WindowsCliTask[];
92
+ hasActiveTask(): boolean;
93
+ get(id: string): WindowsCliTask | null;
94
+ /**
95
+ * M-2239 P1-2: the last detection, as it was — starting nothing. Only `force` (an administrator's explicit "Detect
96
+ * again") starts the Windows CLIs, once each, with their own "do not update" switches. Never on a timer or a read.
97
+ * `authorized` (the requester's live check) is asked again after the Windows transport is found and before the worker
98
+ * starts, as for a workspace or a task (#2937 review): authority revoked meanwhile starts nothing.
99
+ */
100
+ probe(options?: {
101
+ force?: boolean;
102
+ }, authorized?: () => boolean): Promise<WindowsCliProbe>;
103
+ prepareWorkspace(agentId: string, authorized?: () => boolean): Promise<string>;
104
+ private doProbe;
105
+ private workerResult;
106
+ start(value: unknown, authorized?: () => boolean, options?: WindowsRunOptions): WindowsCliTask;
107
+ cancel(id: string): WindowsCliTask;
108
+ close(): void;
109
+ releaseUnknown(id: string): void;
110
+ private run;
111
+ }
112
+ export declare function windowsBridgeFor(owner: object & {
113
+ dataDir?: string;
114
+ }): WindowsCliBridge;
115
+ export declare function closeWindowsBridge(owner: object): void;
@@ -0,0 +1,402 @@
1
+ /** Opt-in, single-task Windows CLI bridge. The existing Linux fleet remains unchanged. */
2
+ import { localWindowsCliEnabled, remoteRuntimeEnabled } from "./runtime-switches.js";
3
+ import { spawn, execFile } from "./child-process.js";
4
+ import { promisify } from "node:util";
5
+ import { readFileSync } from "node:fs";
6
+ import { atomicWriteFileSync } from "./atomic-write.js";
7
+ import { dirname, join, win32 } from "node:path";
8
+ import { fileURLToPath } from "node:url";
9
+ import { validWindowsAgentId, validWindowsDirectory, validateNativeTask } from "./windows-cli-worker.js";
10
+ import { parseNativeProviderEvent, validateNativeMcpConnection } from "./windows-cli-providers.js";
11
+ const exec = promisify(execFile);
12
+ /**
13
+ * alpha.2 (#3004, dev-claude's rig): whether a runner's CLI inventory is a real report. A just-paired runner's hello
14
+ * carries a placeholder — `{ clis: [], home: "", probedAt: null }` — that says nothing about what is installed: it is
15
+ * as missing as no inventory at all, and the coordinator asks that runner for its report.
16
+ */
17
+ export function inventoryProbed(probe) {
18
+ return !!probe && (typeof probe.probedAt === "number" || probe.clis.length > 0);
19
+ }
20
+ const MAX_TASKS = 20;
21
+ const TEXT_LIMIT = 64 * 1024;
22
+ /** M-2239 P1-2: the last detection, kept across restarts; never refreshed on a timer or a read. */
23
+ export const WINDOWS_CLI_INVENTORY_FILE = "windows-cli-inventory.json";
24
+ const NEVER_PROBED = { clis: [], home: "", probedAt: null };
25
+ /** Either Windows runtime is on (M-2255: Settings → Runtime, or its environment override): the native agent plumbing. */
26
+ export function windowsCliEnabled() { return localWindowsCliEnabled() || remoteRuntimeEnabled(); }
27
+ /** M-2255: what a local Windows operation says while "Use this PC's Windows CLIs" is off. */
28
+ export const LOCAL_WINDOWS_CLI_OFF = "This PC's Windows CLIs are turned off. Turn them on in Settings → Runtime.";
29
+ /**
30
+ * M-2255: the one place a local Windows process starts from (detection, a workspace, a task): it asks the switch each
31
+ * time, so turning "Use this PC's Windows CLIs" off starts nothing more on this PC — whatever else is on.
32
+ */
33
+ export async function switchedWindowsTransport() {
34
+ admitLocalWindowsCli();
35
+ return nativeWindowsTransport();
36
+ }
37
+ /**
38
+ * #2955 review (Prism P2): finding the transport awaits (PowerShell, wslpath), and the switch can be turned off
39
+ * meanwhile — its close is queued after the save. So the switch is asked again synchronously right before the spawn.
40
+ */
41
+ export function admitLocalWindowsCli() { if (!localWindowsCliEnabled())
42
+ throw new Error(LOCAL_WINDOWS_CLI_OFF); }
43
+ export async function nativeWindowsTransport() {
44
+ const worker = join(dirname(fileURLToPath(import.meta.url)), "windows-cli-worker.js");
45
+ if (process.platform === "win32")
46
+ return { executable: process.execPath, args: [worker] };
47
+ if (process.platform !== "linux")
48
+ throw new Error("Windows CLI bridge requires WSL on this host");
49
+ const powershell = "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe";
50
+ const script = '[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new($false); $n = Get-Command node.exe -CommandType Application -ErrorAction Stop | Select-Object -First 1; [Console]::Write($n.Source)';
51
+ const r = await exec(powershell, ["-NoProfile", "-NonInteractive", "-EncodedCommand", Buffer.from(script, "utf16le").toString("base64")], { timeout: 8000, maxBuffer: 8192, encoding: "utf8" });
52
+ const node = String(r.stdout).trim();
53
+ if (!/^[a-z]:\\.*\\node\.exe$/i.test(node) || /[\r\n\0]/.test(node))
54
+ throw new Error("Install Windows Node.js and put node.exe on Windows PATH");
55
+ const [nodePath, workerPath] = await Promise.all([node, worker].map(p => exec("wslpath", [p === node ? "-u" : "-w", p], { timeout: 5000, maxBuffer: 8192, encoding: "utf8" })));
56
+ return { executable: String(nodePath.stdout).trim(), args: [String(workerPath.stdout).trim()] };
57
+ }
58
+ export class WindowsCliBridge {
59
+ launcher;
60
+ inventoryFile;
61
+ admit;
62
+ tasks = new Map();
63
+ submitted = new Set();
64
+ child = null;
65
+ active = null;
66
+ pendingProbe = null;
67
+ workerGeneration = 0;
68
+ pendingWorkers = new Map();
69
+ cachedProbe;
70
+ /**
71
+ * `inventoryFile`: where the last detection is kept (absent: memory only). `admit` (M-2255, #2955 review): asked
72
+ * synchronously immediately before each Windows process starts — after every await — and throws to refuse it; the
73
+ * coordinator's bridge passes this PC's switch (admitLocalWindowsCli), the standalone runner passes nothing.
74
+ */
75
+ constructor(launcher = nativeWindowsTransport, inventoryFile, admit) {
76
+ this.launcher = launcher;
77
+ this.inventoryFile = inventoryFile;
78
+ this.admit = admit;
79
+ this.cachedProbe = inventoryFile ? readInventory(inventoryFile) : null;
80
+ }
81
+ list() { return [...this.tasks.values()].map(v => visible(v.task)).reverse(); }
82
+ hasActiveTask() { return this.active !== null; }
83
+ get(id) { const task = this.tasks.get(id)?.task; return task ? visible(task) : null; }
84
+ /**
85
+ * M-2239 P1-2: the last detection, as it was — starting nothing. Only `force` (an administrator's explicit "Detect
86
+ * again") starts the Windows CLIs, once each, with their own "do not update" switches. Never on a timer or a read.
87
+ * `authorized` (the requester's live check) is asked again after the Windows transport is found and before the worker
88
+ * starts, as for a workspace or a task (#2937 review): authority revoked meanwhile starts nothing.
89
+ */
90
+ async probe(options = {}, authorized = () => true) {
91
+ if (!options.force)
92
+ return structuredClone(this.pendingProbe ? await this.pendingProbe : this.cachedProbe ?? NEVER_PROBED);
93
+ this.pendingProbe ??= this.doProbe(authorized).then(value => {
94
+ this.cachedProbe = structuredClone(value);
95
+ if (this.inventoryFile)
96
+ writeInventory(this.inventoryFile, value);
97
+ return value;
98
+ }).finally(() => { this.pendingProbe = null; });
99
+ // Neither callers nor another request may mutate a cached/pending result.
100
+ return structuredClone(await this.pendingProbe);
101
+ }
102
+ async prepareWorkspace(agentId, authorized = () => true) {
103
+ if (!validWindowsAgentId(agentId))
104
+ throw new Error("Invalid Windows agent id");
105
+ const value = await this.workerResult({ op: "workspace", agentId }, 15_000, authorized);
106
+ if (value.type !== "workspace" || value.agentId !== agentId || !validWindowsDirectory(value.cwd)
107
+ || win32.basename(value.cwd).toLowerCase() !== agentId.toLowerCase()
108
+ || win32.basename(win32.dirname(value.cwd)).toLowerCase() !== "workspaces"
109
+ || win32.basename(win32.dirname(win32.dirname(value.cwd))).toLowerCase() !== ".agend")
110
+ throw new Error(String(value.message || "Invalid Windows workspace response"));
111
+ if (!authorized())
112
+ throw new Error("Authorization expired while creating the Windows workspace");
113
+ return value.cwd;
114
+ }
115
+ async doProbe(authorized) {
116
+ const value = await this.workerResult({ op: "probe" }, 60_000, authorized);
117
+ if (value.type !== "probe" || !Array.isArray(value.clis) || typeof value.home !== "string")
118
+ throw new Error(String(value.message || "Windows CLI probe failed"));
119
+ return { clis: value.clis, home: value.home, probedAt: Date.now() };
120
+ }
121
+ async workerResult(request, timeoutMs, authorized = () => true) {
122
+ if (!authorized())
123
+ throw new Error("Authorization expired before the Windows operation started");
124
+ const generation = this.workerGeneration;
125
+ const transport = await this.launcher();
126
+ if (generation !== this.workerGeneration)
127
+ throw new Error("Windows operation was cancelled");
128
+ if (!authorized())
129
+ throw new Error("Authorization expired before the Windows operation started");
130
+ this.admit?.(); // no await between this and spawn
131
+ return new Promise((resolve, reject) => {
132
+ const child = spawn(transport.executable, transport.args, { stdio: ["pipe", "pipe", "pipe"] });
133
+ let text = "", settled = false;
134
+ const timer = setTimeout(() => { child.kill(); finish(new Error(`Windows CLI ${request.op} timed out`)); }, timeoutMs);
135
+ const finish = (error, value) => {
136
+ if (settled)
137
+ return;
138
+ settled = true;
139
+ clearTimeout(timer);
140
+ this.pendingWorkers.delete(child);
141
+ if (error)
142
+ reject(error);
143
+ else
144
+ resolve(value);
145
+ };
146
+ this.pendingWorkers.set(child, () => { child.kill(); finish(new Error(`Windows CLI ${request.op} was cancelled`)); });
147
+ child.on("error", e => finish(e));
148
+ child.stdout.setEncoding("utf8").on("data", (part) => {
149
+ text += part;
150
+ if (text.length > TEXT_LIMIT) {
151
+ child.kill();
152
+ finish(new Error("Invalid Windows CLI worker response"));
153
+ }
154
+ });
155
+ child.stderr.resume();
156
+ child.on("close", () => {
157
+ try {
158
+ const value = JSON.parse(text.trim());
159
+ if (!value || typeof value !== "object" || Array.isArray(value) || value.type !== request.op)
160
+ throw new Error(value?.message || `Windows CLI ${request.op} failed`);
161
+ finish(undefined, value);
162
+ }
163
+ catch (e) {
164
+ finish(e instanceof Error ? e : new Error(`Windows CLI ${request.op} failed`));
165
+ }
166
+ });
167
+ // Keep stdin open: its EOF is the worker's parent-liveness signal.
168
+ child.stdin.write(`${JSON.stringify(request)}\n`);
169
+ });
170
+ }
171
+ start(value, authorized = () => true, options = {}) {
172
+ const input = validateNativeTask(value);
173
+ if (options.mcp)
174
+ options = { ...options, mcp: validateNativeMcpConnection(options.mcp) };
175
+ if (options.context !== undefined && (typeof options.context !== "string" || options.context.length > 2000 || options.context.includes("\0")))
176
+ throw new Error("Invalid native task context");
177
+ const old = this.tasks.get(input.requestId);
178
+ if (old) {
179
+ if (JSON.stringify(old.input) !== JSON.stringify(input))
180
+ throw new Error("requestId already belongs to another task");
181
+ return visible(old.task);
182
+ }
183
+ if (this.submitted.has(input.requestId))
184
+ throw new Error("This requestId was already used; its task history has expired");
185
+ // M-2239 P1-2: a task starts no probe; the administrator's last detection says whether this CLI can run here.
186
+ const detected = this.cachedProbe?.clis.find(row => row.id === input.cli);
187
+ if (!detected)
188
+ throw new Error("Detect the Windows CLIs first (Settings → Windows CLI → Detect again)");
189
+ if (!detected.runnable)
190
+ throw new Error(detected.reason || "This Windows CLI could not run at the last detection; detect again after fixing it");
191
+ if (options.mcp && !detected.supports?.mcp)
192
+ throw new Error("Update this Windows CLI and detect it again to use scoped AgEnD MCP tools");
193
+ if (input.sandbox === "read-only" && !detected.readOnlySupport)
194
+ throw new Error("The installed Windows CLI cannot enforce the selected read-only policy");
195
+ if (this.submitted.size >= 4096)
196
+ throw new Error("Preview request limit reached; restart AgEnD before submitting new tasks");
197
+ if (this.active)
198
+ throw new Error("A Windows CLI task is already running");
199
+ const task = { id: input.requestId, cli: input.cli, ...(input.model ? { model: input.model } : {}), cwd: input.cwd, sandbox: input.sandbox, status: "starting", startedAt: Date.now(), output: "" };
200
+ // Reserve before any await: retries and competing requests cannot launch another process.
201
+ this.active = task.id;
202
+ this.submitted.add(task.id);
203
+ this.tasks.set(task.id, { input, task });
204
+ if (this.tasks.size > MAX_TASKS)
205
+ this.tasks.delete(this.tasks.keys().next().value);
206
+ void this.run(input, task, authorized, options);
207
+ return visible(task);
208
+ }
209
+ cancel(id) {
210
+ const task = this.tasks.get(id)?.task;
211
+ if (!task)
212
+ throw new Error("Task not found");
213
+ if (this.active === id) {
214
+ // #2945 CI: an outcome the worker already reported (it closes next) is not overwritten; the cancel is still sent.
215
+ if (!SETTLED.includes(task.status))
216
+ task.status = "cancelling";
217
+ this.child?.stdin?.write('{"cancel":true}\n');
218
+ // The reservation is kept until the physical worker closes.
219
+ }
220
+ return visible(task);
221
+ }
222
+ close() {
223
+ this.workerGeneration++;
224
+ for (const cancel of this.pendingWorkers.values())
225
+ cancel();
226
+ this.pendingWorkers.clear();
227
+ if (this.active)
228
+ this.cancel(this.active);
229
+ this.child?.stdin?.end();
230
+ }
231
+ releaseUnknown(id) {
232
+ if (this.active !== id)
233
+ return;
234
+ const task = this.tasks.get(id)?.task;
235
+ if (this.child || !task?.finishedAt || task.outcomeConfirmed !== false)
236
+ throw new Error("Windows process is still connected; cancel it first");
237
+ this.active = null;
238
+ }
239
+ async run(input, task, authorized, options) {
240
+ try {
241
+ const transport = await this.launcher();
242
+ if (task.status === "cancelling") {
243
+ task.status = "cancelled";
244
+ task.outcomeConfirmed = true;
245
+ task.finishedAt = Date.now();
246
+ this.active = null;
247
+ return;
248
+ }
249
+ if (!authorized())
250
+ throw new Error("Web authorization expired before the Windows task started");
251
+ this.admit?.(); // no await between this and spawn (the executor runs at once)
252
+ await new Promise((resolve) => {
253
+ const child = this.child = spawn(transport.executable, transport.args, { stdio: ["pipe", "pipe", "pipe"] });
254
+ let wire = "", provider = "", stderr = "", received = 0, finished = false, turnCompleted = false;
255
+ const fail = (message) => { task.error = message.slice(0, 8192); if (task.status !== "cancelling")
256
+ task.status = "failed"; };
257
+ const append = (text) => { task.output = (task.output + text + (input.cli === "grok" ? "" : "\n")).slice(-TEXT_LIMIT); };
258
+ const providerEvent = (line) => {
259
+ const event = parseNativeProviderEvent(input.cli, line);
260
+ if (event?.text)
261
+ append(event.text);
262
+ if (event?.sessionId) {
263
+ if (options.resumeSessionId && event.sessionId !== options.resumeSessionId) {
264
+ fail("Windows CLI resumed a different conversation");
265
+ child.stdin.end();
266
+ }
267
+ else
268
+ task.threadId = event.sessionId;
269
+ }
270
+ if (event?.completed)
271
+ turnCompleted = true;
272
+ if (event?.failed)
273
+ fail(event.error || "Windows CLI task failed");
274
+ };
275
+ const timer = setTimeout(() => { fail("Windows worker did not finish within five minutes"); this.cancel(task.id); child.stdin.end(); }, 310_000);
276
+ child.on("error", e => fail(e.message));
277
+ child.stdout.setEncoding("utf8").on("data", (part) => {
278
+ received += Buffer.byteLength(part);
279
+ if (received > 2 * 1024 * 1024) {
280
+ fail("Windows worker output limit exceeded");
281
+ child.stdin.end();
282
+ return;
283
+ }
284
+ wire += part;
285
+ let at;
286
+ while ((at = wire.indexOf("\n")) >= 0) {
287
+ const line = wire.slice(0, at);
288
+ wire = wire.slice(at + 1);
289
+ try {
290
+ const e = JSON.parse(line);
291
+ if (e.type === "started" && task.status === "starting")
292
+ task.status = "running";
293
+ if (e.type === "stdout" && typeof e.text === "string") {
294
+ provider += e.text;
295
+ let end;
296
+ while ((end = provider.indexOf("\n")) >= 0) {
297
+ const line = provider.slice(0, end);
298
+ provider = provider.slice(end + 1);
299
+ providerEvent(line);
300
+ }
301
+ }
302
+ if (e.type === "stderr" && typeof e.text === "string")
303
+ stderr = (stderr + e.text).slice(-8192);
304
+ if (e.type === "error") {
305
+ fail(String(e.message));
306
+ if (e.terminal === true)
307
+ finished = true;
308
+ }
309
+ if (e.type === "finished") {
310
+ if (provider.trim()) {
311
+ providerEvent(provider);
312
+ provider = "";
313
+ }
314
+ finished = true;
315
+ if (task.status === "cancelling" || e.cancelled)
316
+ task.status = "cancelled";
317
+ else if (task.status !== "failed")
318
+ task.status = e.code === 0 && turnCompleted ? "completed" : "failed";
319
+ if (e.code === 0 && !turnCompleted && task.status !== "cancelled" && !task.error)
320
+ task.error = "CLI exited without a turn-completed event; task outcome is unknown";
321
+ if (e.code !== 0 && !task.error && task.status !== "cancelled")
322
+ task.error = stderr || "Windows CLI exited without completing the task";
323
+ }
324
+ }
325
+ catch {
326
+ fail("Invalid Windows worker event");
327
+ child.stdin.end();
328
+ }
329
+ }
330
+ });
331
+ child.stderr.setEncoding("utf8").on("data", (s) => { stderr = (stderr + s).slice(-8192); });
332
+ child.on("close", () => {
333
+ clearTimeout(timer);
334
+ if (!finished) {
335
+ task.status = "failed";
336
+ fail(stderr || task.error || "Worker connection ended; task outcome is unknown. Verify the Windows process before restarting AgEnD; do not retry automatically.");
337
+ }
338
+ task.finishedAt = Date.now();
339
+ this.child = null;
340
+ task.outcomeConfirmed = finished;
341
+ // Losing the worker is not proof its native descendants stopped. Keep the slot blocked in that case.
342
+ if (finished)
343
+ this.active = null;
344
+ resolve();
345
+ });
346
+ child.stdin.write(`${JSON.stringify({ op: "run", task: input, ...(options.resumeSessionId ? { resumeSessionId: options.resumeSessionId } : {}), ...(options.mcp ? { mcp: options.mcp } : {}), ...(options.context ? { context: options.context } : {}) })}\n`);
347
+ });
348
+ }
349
+ catch (e) {
350
+ task.error = e instanceof Error ? e.message : "Windows CLI launch failed";
351
+ task.status = "failed";
352
+ task.outcomeConfirmed = true;
353
+ task.finishedAt = Date.now();
354
+ this.active = null;
355
+ }
356
+ finally {
357
+ try {
358
+ options.onSettled?.({ ...task });
359
+ }
360
+ catch (e) {
361
+ task.error = `Could not save Windows conversation: ${e instanceof Error ? e.message : e}`;
362
+ task.status = "failed";
363
+ }
364
+ }
365
+ }
366
+ }
367
+ const SETTLED = ["completed", "failed", "cancelled"];
368
+ /**
369
+ * #2945 CI: the worker's "finished" line (or a failure) decides the outcome before its process closes, and finishedAt is
370
+ * set only on close. Until then a snapshot reports the task as still running: a settled status without finishedAt is
371
+ * one the coordinator refuses — it dropped the machine, which then cancelled the run that had just finished.
372
+ */
373
+ function visible(task) {
374
+ return !task.finishedAt && SETTLED.includes(task.status) ? { ...task, status: "running" } : { ...task };
375
+ }
376
+ const bridges = new WeakMap();
377
+ export function windowsBridgeFor(owner) {
378
+ let bridge = bridges.get(owner);
379
+ if (!bridge) {
380
+ bridge = new WindowsCliBridge(switchedWindowsTransport, owner.dataDir ? join(owner.dataDir, WINDOWS_CLI_INVENTORY_FILE) : undefined, admitLocalWindowsCli);
381
+ bridges.set(owner, bridge);
382
+ }
383
+ return bridge;
384
+ }
385
+ function readInventory(file) {
386
+ try {
387
+ const value = JSON.parse(readFileSync(file, "utf8"));
388
+ const v = value;
389
+ return v && Array.isArray(v.clis) && typeof v.home === "string" && typeof v.probedAt === "number" ? { clis: v.clis, home: v.home, probedAt: v.probedAt } : null;
390
+ }
391
+ catch {
392
+ return null;
393
+ }
394
+ }
395
+ function writeInventory(file, value) {
396
+ try {
397
+ atomicWriteFileSync(file, JSON.stringify(value), { mode: 0o600 });
398
+ }
399
+ catch { /* kept in memory; detected again after a restart */ }
400
+ }
401
+ export function closeWindowsBridge(owner) { bridges.get(owner)?.close(); }
402
+ //# sourceMappingURL=windows-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows-cli.js","sourceRoot":"","sources":["../src/windows-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { type NativeMcpConnection } from "./windows-cli-providers.js";
2
+ type ObjectValue = Record<string, unknown>;
3
+ export type NativeMcpRequest = {
4
+ op: "native-mcp";
5
+ method: "tools/list" | "tools/call";
6
+ params: Record<string, unknown>;
7
+ callId?: string;
8
+ };
9
+ export type NativeMcpTransport = (body: NativeMcpRequest) => Promise<unknown>;
10
+ export declare function readNativeMcpConnection(path: string): NativeMcpConnection;
11
+ /** HTTP is restricted to the coordinator's exact loopback endpoint. No redirect or cookie handling. */
12
+ export declare function nativeMcpHttp(connection: NativeMcpConnection, body: NativeMcpRequest): Promise<unknown>;
13
+ export declare function nativeMcpCallId(token: string, id: string | number, clientSessionId?: string): string;
14
+ /** Testable protocol surface. Never executes tools for notifications or unrecognized method names. */
15
+ export declare function nativeMcpRpc(raw: unknown, connection: NativeMcpConnection, transport?: NativeMcpTransport, context?: {
16
+ clientSessionId: string;
17
+ instructions?: string;
18
+ }): Promise<ObjectValue | null>;
19
+ export {};