@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,298 @@
1
+ /** Metadata-only General location journal. Provider homes and conversations never move. */
2
+ import { constants, closeSync, fstatSync, mkdirSync, openSync, readFileSync } from "node:fs";
3
+ import { basename, dirname, join } from "node:path";
4
+ import { createHash, randomUUID } from "node:crypto";
5
+ import { atomicWriteFileSync } from "./atomic-write.js";
6
+ import { settingsFingerprint } from "./settings-transaction.js";
7
+ const uuid = (v) => typeof v === "string" && /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(v);
8
+ const object = (v) => !!v && typeof v === "object" && !Array.isArray(v);
9
+ const text = (v, n) => typeof v === "string" && v.length <= n && !/[\p{Cc}\p{Cf}]/u.test(v);
10
+ const closed = (v, keys) => Object.keys(v).every(k => keys.includes(k));
11
+ const config = (v) => object(v) && typeof v.working_directory === "string" && v.general_topic === true;
12
+ export function parseGeneralSwitchInput(v) {
13
+ if (!object(v) || !closed(v, ["name", "revision", "target"]) || !text(v.name, 256) || !v.name
14
+ || !/^[0-9a-f]{64}$/.test(typeof v.revision === "string" ? v.revision : "") || !object(v.target))
15
+ throw Error("Invalid General location request");
16
+ const target = v.target;
17
+ if (target.location === "host" && closed(target, ["location"]))
18
+ return structuredClone(v);
19
+ if (target.location !== "windows" || !closed(target, ["location", "machineId", "cli", "model"]) || !uuid(target.machineId)
20
+ || target.cli !== "claude-code" && target.cli !== "codex" || !text(target.model, 256))
21
+ throw Error("Invalid General location target");
22
+ return structuredClone(v);
23
+ }
24
+ export function generalBindingRevision(value, current) {
25
+ return settingsFingerprint([value, current]);
26
+ }
27
+ function validate(raw, name) {
28
+ if (!object(raw) || raw.version !== 1 || raw.name !== name || !uuid(raw.revision) || !object(raw.host) || !config(raw.host.config)
29
+ || raw.host.config.runtime === "windows" || !Array.isArray(raw.windows) || raw.windows.length > 32
30
+ || !closed(raw, ["version", "name", "revision", "host", "active", "windows", "pending", "hold"]))
31
+ throw Error("General binding journal scope differs");
32
+ const ids = new Set(), agents = new Set();
33
+ for (const row of raw.windows) {
34
+ if (!object(row) || !uuid(row.id) || !uuid(row.agentId) || !uuid(row.machineId) || row.cli !== "claude-code" && row.cli !== "codex"
35
+ || !config(row.config) || row.config.runtime !== "windows" || row.config.native_adapter !== "pane"
36
+ || row.config.native_general_binding !== row.id || row.config.native_agent_id !== row.agentId
37
+ || row.config.machine_id !== row.machineId || row.config.backend !== row.cli || ids.has(row.id) || agents.has(row.agentId))
38
+ throw Error("General Windows binding scope differs");
39
+ ids.add(row.id);
40
+ agents.add(row.agentId);
41
+ }
42
+ if (raw.active !== "host" && (!uuid(raw.active) || !ids.has(raw.active)))
43
+ throw Error("General active binding differs");
44
+ if (raw.host.pin !== undefined && (!object(raw.host.pin) || !text(raw.host.pin.backend, 64) || !text(raw.host.pin.sessionId, 256) || !raw.host.pin.sessionId))
45
+ throw Error("General host pin differs");
46
+ if (raw.hold !== undefined && raw.hold !== "exit" && raw.hold !== "start")
47
+ throw Error("General binding hold differs");
48
+ if (raw.pending !== undefined) {
49
+ const p = raw.pending;
50
+ if (!object(p) || !uuid(p.id) || p.phase !== "prepared" && p.phase !== "stopped" && p.phase !== "selected" || !config(p.source) || !config(p.target)
51
+ || p.from !== "host" && (!uuid(p.from) || !ids.has(p.from)) || p.to !== "host" && (!uuid(p.to) || !ids.has(p.to))
52
+ || p.from === p.to || !Number.isSafeInteger(p.at) || p.at < 0)
53
+ throw Error("General switch intent differs");
54
+ const target = p.to === "host" ? raw.host.config : raw.windows.find(row => row.id === p.to).config;
55
+ if (settingsFingerprint(target) !== settingsFingerprint(p.target) || p.phase === "selected" && raw.active !== p.to
56
+ || p.phase !== "selected" && raw.active !== p.from)
57
+ throw Error("General switch configuration differs");
58
+ if (p.hostOwner !== undefined) {
59
+ const o = p.hostOwner;
60
+ if (!object(o) || o.kind !== "tmux" || typeof o.windowId !== "string" || !/^@\d+$/.test(o.windowId)
61
+ || !Number.isSafeInteger(o.pid) || o.pid <= 1
62
+ || o.pin !== undefined && (!object(o.pin) || !text(o.pin.backend, 64) || !text(o.pin.sessionId, 256) || !o.pin.sessionId))
63
+ throw Error("General old host owner differs");
64
+ }
65
+ }
66
+ return structuredClone(raw);
67
+ }
68
+ export class GeneralBindings {
69
+ home;
70
+ constructor(home) {
71
+ this.home = home;
72
+ }
73
+ path(name) { return join(this.home, "general-bindings", `${createHash("sha256").update(name).digest("hex")}.json`); }
74
+ read(name) {
75
+ let fd;
76
+ try {
77
+ fd = openSync(this.path(name), constants.O_RDONLY | constants.O_NOFOLLOW);
78
+ }
79
+ catch (err) {
80
+ if (err.code === "ENOENT")
81
+ return null;
82
+ throw err;
83
+ }
84
+ try {
85
+ const st = fstatSync(fd);
86
+ if (!st.isFile() || st.size > 1024 * 1024 || typeof process.getuid === "function" && st.uid !== process.getuid())
87
+ throw Error("General binding journal is not an owned regular file");
88
+ const bytes = readFileSync(fd);
89
+ if (bytes.length > 1024 * 1024)
90
+ throw Error("General binding journal is too large");
91
+ const value = JSON.parse(bytes.toString("utf8"));
92
+ if (!object(value) || value.checksum !== settingsFingerprint(value.record))
93
+ throw Error("General binding journal checksum differs");
94
+ return validate(value.record, name);
95
+ }
96
+ finally {
97
+ closeSync(fd);
98
+ }
99
+ }
100
+ write(value) {
101
+ const record = validate(value, value.name), bytes = JSON.stringify({ record, checksum: settingsFingerprint(record) });
102
+ if (Buffer.byteLength(bytes) > 1024 * 1024)
103
+ throw Error("General binding journal is too large");
104
+ mkdirSync(join(this.home, "general-bindings"), { recursive: true, mode: 0o700 });
105
+ atomicWriteFileSync(this.path(record.name), bytes, { mode: 0o600 });
106
+ }
107
+ /** A selected intent already owns this exact config. Publication settles its receipt after a coordinator restart. */
108
+ completeSelected(name, current) {
109
+ const record = this.read(name);
110
+ if (!record)
111
+ return false;
112
+ const selected = record.active === "host" ? record.host.config : record.windows.find(row => row.id === record.active).config;
113
+ if (record.pending ? record.pending.phase !== "selected" || settingsFingerprint(record.pending.target) !== settingsFingerprint(current)
114
+ : record.hold !== "start" || settingsFingerprint(selected) !== settingsFingerprint(current))
115
+ return false;
116
+ delete record.pending;
117
+ delete record.hold;
118
+ this.write(record);
119
+ return true;
120
+ }
121
+ /** Called on every start, including boot and automatic recovery. Never guess through an unfinished switch. */
122
+ assertStart(name, current) {
123
+ const record = this.read(name);
124
+ if (!record)
125
+ return;
126
+ if (record.pending && (record.pending.phase !== "selected" || settingsFingerprint(record.pending.target) !== settingsFingerprint(current)))
127
+ throw Error("General switch is waiting for a confirmed old process exit");
128
+ const selected = record.active === "host" ? record.host.config : record.windows.find(row => row.id === record.active).config;
129
+ const sameBinding = record.active === "host" ? current.runtime !== "windows" :
130
+ ["runtime", "machine_id", "native_agent_id", "native_adapter", "native_general_binding", "backend", "working_directory"].every(key => selected[key] === current[key]);
131
+ if (!sameBinding || !current.general_topic)
132
+ throw Error("General binding differs from the saved location");
133
+ // Ordinary approved settings edits keep their existing policy. They must not turn a later restart into a binding hold.
134
+ if (!record.pending && settingsFingerprint(selected) !== settingsFingerprint(current)) {
135
+ if (record.active === "host") {
136
+ if (selected.backend !== current.backend || selected.working_directory !== current.working_directory)
137
+ delete record.host.pin;
138
+ record.host.config = structuredClone(current);
139
+ }
140
+ else
141
+ record.windows.find(row => row.id === record.active).config = structuredClone(current);
142
+ record.revision = randomUUID();
143
+ this.write(record);
144
+ }
145
+ }
146
+ }
147
+ /** Only an unfinished, selected switch-back can override the host backend's ordinary resume policy. */
148
+ export function selectedGeneralHostSession(instanceDir, name, backend, cwd) {
149
+ if (basename(instanceDir) !== name || basename(dirname(instanceDir)) !== "instances")
150
+ return null;
151
+ const record = new GeneralBindings(dirname(dirname(instanceDir))).read(name);
152
+ if (record?.pending?.phase !== "selected" || record.pending.to !== "host" || record.active !== "host" || !record.host.pin)
153
+ return null;
154
+ if (record.host.pin.backend !== backend || record.host.config.working_directory !== cwd || !uuid(record.host.pin.sessionId))
155
+ throw Error("General's saved host conversation scope differs");
156
+ return record.host.pin.sessionId;
157
+ }
158
+ /** One lifecycle-serialized switch. The injected stop must positively prove its exact old owner exited. */
159
+ export async function switchGeneralLocation(deps, input, execution) {
160
+ deps.assert();
161
+ execution.assert();
162
+ let source = structuredClone(deps.current());
163
+ const before = deps.store.read(input.name);
164
+ if (!source.general_topic || input.revision !== generalBindingRevision(before, source))
165
+ throw Error("General location changed; read its settings again");
166
+ const record = before ?? { version: 1, name: input.name, revision: randomUUID(), active: "host", host: { config: source }, windows: [] };
167
+ if (!before && source.runtime === "windows")
168
+ throw Error("The original host General binding is not available");
169
+ if (!record.pending && record.active !== "host")
170
+ record.windows.find(row => row.id === record.active).config = source;
171
+ const matches = (target, id) => target.location === "host" ? id === "host"
172
+ : record.windows.some(row => row.id === id && row.machineId === target.machineId && row.cli === target.cli && (row.config.model ?? "") === target.model);
173
+ // Finish only the already-committed config write before reversing a selected intent. This never starts it.
174
+ // The ordinary stop below must still prove that selected Windows owner exited (or was never launched).
175
+ if (record.pending?.phase === "selected" && matches(input.target, record.pending.from)
176
+ && settingsFingerprint(source) === settingsFingerprint(record.pending.source)) {
177
+ execution.mutate(() => deps.save(structuredClone(record.pending.target)));
178
+ source = structuredClone(deps.current());
179
+ }
180
+ if (!record.pending && record.hold === "start" && matches(input.target, record.active)) {
181
+ execution.commit(() => deps.save(source));
182
+ try {
183
+ await deps.start();
184
+ }
185
+ catch (err) {
186
+ deps.notify("start", err);
187
+ return { started: false };
188
+ }
189
+ delete record.hold;
190
+ deps.store.write(record);
191
+ deps.notify("complete");
192
+ return { started: true };
193
+ }
194
+ const activeWindows = record.windows.find(row => row.id === record.active);
195
+ if (!record.pending && input.target.location === "windows" && activeWindows?.machineId === input.target.machineId && activeWindows.cli === input.target.cli)
196
+ throw Error("General already runs at this location");
197
+ if (record.pending && matches(input.target, record.pending.to)) {
198
+ if (record.pending.phase === "selected") {
199
+ if (![record.pending.source, record.pending.target].some(row => settingsFingerprint(row) === settingsFingerprint(source)))
200
+ throw Error("General switch configuration was changed");
201
+ execution.commit(() => deps.save(structuredClone(record.pending.target)));
202
+ try {
203
+ await deps.start();
204
+ }
205
+ catch (err) {
206
+ record.hold = "start";
207
+ deps.store.write(record);
208
+ deps.notify("start", err);
209
+ return { started: false };
210
+ }
211
+ delete record.pending;
212
+ delete record.hold;
213
+ deps.store.write(record);
214
+ deps.notify("complete");
215
+ return { started: true };
216
+ }
217
+ if (settingsFingerprint(source) !== settingsFingerprint(record.pending.source))
218
+ throw Error("General switch configuration was changed");
219
+ }
220
+ else if (record.pending && record.pending.phase !== "selected")
221
+ throw Error("General has an unfinished switch to another location");
222
+ const replay = record.pending && record.pending.phase !== "selected" ? record.pending : undefined;
223
+ const windows = replay ? record.windows.find(row => row.id === replay.to) ?? null
224
+ : input.target.location === "windows" ? await deps.prepare(input.target, record) : null;
225
+ deps.assert();
226
+ execution.assert();
227
+ const to = windows?.id ?? "host";
228
+ if (to === record.active)
229
+ throw Error("General already runs at this location");
230
+ if (windows) {
231
+ const old = record.windows.findIndex(row => row.id === windows.id);
232
+ if (old < 0)
233
+ record.windows.push(windows);
234
+ else
235
+ record.windows[old] = windows;
236
+ }
237
+ if (!await deps.idle())
238
+ throw Error("Wait for General to be idle before switching its location");
239
+ deps.assert();
240
+ execution.assert();
241
+ const hostOwner = replay?.hostOwner ?? await deps.capture?.();
242
+ deps.assert();
243
+ execution.assert();
244
+ const target = structuredClone(windows?.config ?? record.host.config);
245
+ // The logical route always stays on the coordinator, including a retained host's older config.
246
+ for (const key of ["general_topic", "channel_id", "topic_id"]) {
247
+ if (source[key] === undefined)
248
+ delete target[key];
249
+ else
250
+ target[key] = source[key];
251
+ }
252
+ if (to === "host")
253
+ record.host.config = target;
254
+ else
255
+ record.windows.find(row => row.id === to).config = target;
256
+ record.pending = replay ?? { id: randomUUID(), phase: "prepared", from: record.active, to, source, target, at: Date.now(), ...(hostOwner ? { hostOwner } : {}) };
257
+ execution.mutate(() => deps.store.write(record));
258
+ let pin;
259
+ try {
260
+ await execution.stopTarget(input.name, async () => { pin = await deps.stop(record.pending.hostOwner); });
261
+ }
262
+ catch (err) {
263
+ record.hold = "exit";
264
+ deps.store.write(record);
265
+ deps.notify("exit", err);
266
+ throw err;
267
+ }
268
+ deps.assert();
269
+ execution.assert();
270
+ if (record.active === "host") {
271
+ record.host.config = structuredClone(deps.hostSnapshot?.() ?? source);
272
+ if (pin)
273
+ record.host.pin = pin;
274
+ }
275
+ record.pending.phase = "stopped";
276
+ execution.mutate(() => deps.store.write(record));
277
+ // Keep the stopped intent until both configuration and selected receipt are durable. Any crash in this gap holds.
278
+ record.active = to;
279
+ record.pending.phase = "selected";
280
+ record.revision = randomUUID();
281
+ delete record.hold;
282
+ execution.commit(() => { deps.store.write(record); deps.save(target); });
283
+ // The committed receipt permits only starting its selected config, never another settings mutation.
284
+ try {
285
+ await deps.start();
286
+ }
287
+ catch (err) {
288
+ record.hold = "start";
289
+ deps.store.write(record);
290
+ deps.notify("start", err);
291
+ return { started: false };
292
+ }
293
+ delete record.pending;
294
+ deps.store.write(record);
295
+ deps.notify("complete");
296
+ return { started: true };
297
+ }
298
+ //# sourceMappingURL=general-binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general-binding.js","sourceRoot":"","sources":["../src/general-binding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { GeneralHostOwner } from "./general-binding.js";
2
+ /** Read-only exit barrier after the existing owned stop. Missing/unreadable evidence is never exit. */
3
+ export declare function confirmGeneralHostExit(owner: GeneralHostOwner, session: string, deps?: {
4
+ windows(): Promise<Array<{
5
+ id: string;
6
+ }>>;
7
+ probe(pid: number): unknown;
8
+ }): Promise<boolean>;
@@ -0,0 +1,26 @@
1
+ import { TmuxManager } from "./tmux-manager.js";
2
+ /** Read-only exit barrier after the existing owned stop. Missing/unreadable evidence is never exit. */
3
+ export async function confirmGeneralHostExit(owner, session, deps = { windows: () => TmuxManager.listWindows(session), probe: (pid) => process.kill(-pid, 0) }) {
4
+ if (!/^@\d+$/.test(owner.windowId) || !Number.isSafeInteger(owner.pid) || owner.pid <= 1)
5
+ return false;
6
+ let windows;
7
+ try {
8
+ windows = await deps.windows();
9
+ }
10
+ catch (err) {
11
+ const detail = String(err?.stderr ?? err.message ?? "");
12
+ if (!/can't find session|no server running/.test(detail))
13
+ return false;
14
+ windows = [];
15
+ }
16
+ if (windows.some(row => row.id === owner.windowId))
17
+ return false;
18
+ try {
19
+ deps.probe(owner.pid);
20
+ return false;
21
+ }
22
+ catch (err) {
23
+ return err.code === "ESRCH";
24
+ }
25
+ }
26
+ //# sourceMappingURL=general-host-owner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general-host-owner.js","sourceRoot":"","sources":["../src/general-host-owner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,uGAAuG;AACvG,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAAuB,EAAE,OAAe,EACnF,IAAI,GACA,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;IACtG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvG,IAAI,OAA8B,CAAC;IACnC,IAAI,CAAC;QAAC,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IACvC,OAAO,GAAG,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,MAAM,CAAE,GAA4B,EAAE,MAAM,IAAK,GAAa,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QACvE,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACjE,IAAI,CAAC;QAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IAC5C,OAAO,GAAG,EAAE,CAAC;QAAC,OAAQ,GAA6B,CAAC,IAAI,KAAK,OAAO,CAAC;IAAC,CAAC;AACzE,CAAC"}
@@ -7,6 +7,13 @@ export declare const GENERAL_PAUSE_ERROR = "General cannot be paused";
7
7
  * general_topic covers renamed and per-world General instances.
8
8
  */
9
9
  export declare function isGeneralInstance(config: FleetConfig | null | undefined, name: string): boolean;
10
+ /**
11
+ * The literal-name fallback: an agent called `general` is the General — unless its General box was unticked
12
+ * (`general_topic: false`, alpha.3: the owner of a web-only fleet may untick it and tick another — never half a General).
13
+ */
14
+ export declare function generalByName(name: string, config: {
15
+ general_topic?: unknown;
16
+ } | null | undefined): boolean;
10
17
  /** M-2069: the name a fleet's General has by default (the auto-created one, and the setup's first agent). */
11
18
  export declare const GENERAL_NAME = "general";
12
19
  /**
@@ -7,7 +7,14 @@ export const GENERAL_PAUSE_ERROR = "General cannot be paused";
7
7
  * general_topic covers renamed and per-world General instances.
8
8
  */
9
9
  export function isGeneralInstance(config, name) {
10
- return name === "general" || config?.instances[name]?.general_topic === true;
10
+ return config?.instances[name]?.general_topic === true || generalByName(name, config?.instances[name]);
11
+ }
12
+ /**
13
+ * The literal-name fallback: an agent called `general` is the General — unless its General box was unticked
14
+ * (`general_topic: false`, alpha.3: the owner of a web-only fleet may untick it and tick another — never half a General).
15
+ */
16
+ export function generalByName(name, config) {
17
+ return name === "general" && config?.general_topic !== false;
11
18
  }
12
19
  /** M-2069: the name a fleet's General has by default (the auto-created one, and the setup's first agent). */
13
20
  export const GENERAL_NAME = "general";
@@ -37,11 +44,21 @@ export function generalTopicFor(channel) {
37
44
  */
38
45
  export function adoptGeneralByName(fleet, logger, ownFolder) {
39
46
  const channels = (fleet.channels ?? (fleet.channel ? [fleet.channel] : []));
40
- if (!channels.length || !Object.hasOwn(fleet.instances, GENERAL_NAME))
47
+ if (!Object.hasOwn(fleet.instances, GENERAL_NAME))
41
48
  return false;
42
49
  const inst = fleet.instances[GENERAL_NAME];
43
- if (inst.general_topic === true || Object.values(fleet.instances).some(cfg => cfg.general_topic === true))
50
+ // Unticked on purpose (general_topic: false): a worker by that name, left alone.
51
+ if (inst.general_topic === true || inst.general_topic === false || Object.values(fleet.instances).some(cfg => cfg.general_topic === true))
44
52
  return false;
53
+ if (!channels.length) {
54
+ // alpha.3 (the user, hmsg-7c8fd0e5): a web-only fleet's `general` — the setup's first agent — is its ticked General
55
+ // (no chat to bind: no topic), when it works in AgEnD's own folder (#2744: never a project of the user's).
56
+ if (!ownFolder(inst.working_directory))
57
+ return false;
58
+ inst.general_topic = true;
59
+ logger.warn({ name: GENERAL_NAME }, "An agent named general had no general_topic on a fleet with no chat connection — made it the General");
60
+ return true;
61
+ }
45
62
  const primary = channels[0], primaryId = String(primary.id ?? primary.type);
46
63
  if (inst.channel_id != null && inst.channel_id !== primaryId)
47
64
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"general-instance.js","sourceRoot":"","sources":["../src/general-instance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"general-instance.js","sourceRoot":"","sources":["../src/general-instance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Shared General role text; native publication never loads a coordinator workspace or login. */
2
+ export declare const GENERAL_ROLE_INSTRUCTIONS = "# Fleet Coordinator\n\nYou are the fleet coordinator \u2014 the central entry point for this AgEnD fleet.\nYou route tasks, manage instances, enforce policies, and synthesize results.\nDo NOT modify project files directly \u2014 delegate file changes to the project's instance.\nYou CAN write code snippets, explain code, and answer technical questions directly.\n\n## Task Routing\n\n- **Handle directly**: no file/exec access needed, answerable from knowledge, \u22642 reasoning steps (Q&A, translation, status queries, code snippets).\n- **Delegate to 1 instance**: scoped to one project/repo, needs file access or execution.\n- **Coordinate multiple**: spans repos, outputs feed each other, or parallel helps (max 3 per task).\n\nInstance discovery: start with list_instances(); follow the guidance in its response. Prefer reuse; never duplicate a running instance.\n\n## Reply Contract\n\nEvery final response to the user contains: the result (the actual answer or deliverable) and gaps (anything incomplete \u2014 omit if none). Summarize instance reports; omit internal coordination noise.\n\n## After Restart\n\nBEFORE processing any new messages: 1. list_instances() 2. list_teams() 3. list_decisions(). Only then handle requests.\n\n## Playbooks (on-demand skills)\n\nDetailed procedures live in your skills \u2014 consult them when the situation comes up rather than from memory:\n- **delegation-playbook** \u2014 delegation protocol, loop prevention, parallel vs sequential, result/failure handling, team management, instance configuration tips.\n- **development-workflow** \u2014 the fleet-wide code-change policy you enforce when delegating code tasks.\nPlus the operational skills (fleet-health, instance-lifecycle, scheduling, session-management, \u2026).\n";
3
+ /** Fixed installed program assets, never an enumeration of a runtime profile. */
4
+ export declare const GENERAL_SKILL_NAMES: readonly ["backend-providers", "bug-report", "credential-profiles", "cross-instance-messaging", "delegation-playbook", "development-workflow", "docker-install", "fleet-config", "fleet-health", "fleet-restart", "instance-lifecycle", "kiro-engine-migration", "model-discovery", "multi-channel", "scheduling", "session-management", "tui-effort", "web-appearance", "web-dashboard"];
5
+ export declare const GENERAL_KNOWLEDGE_FILES: readonly ["steering/core-rules.md", ...string[]];
@@ -0,0 +1,26 @@
1
+ /** Shared General role text; native publication never loads a coordinator workspace or login. */
2
+ export const GENERAL_ROLE_INSTRUCTIONS = "# Fleet Coordinator\n\nYou are the fleet coordinator — the central entry point for this AgEnD fleet.\nYou route tasks, manage instances, enforce policies, and synthesize results.\nDo NOT modify project files directly — delegate file changes to the project's instance.\nYou CAN write code snippets, explain code, and answer technical questions directly.\n\n## Task Routing\n\n- **Handle directly**: no file/exec access needed, answerable from knowledge, ≤2 reasoning steps (Q&A, translation, status queries, code snippets).\n- **Delegate to 1 instance**: scoped to one project/repo, needs file access or execution.\n- **Coordinate multiple**: spans repos, outputs feed each other, or parallel helps (max 3 per task).\n\nInstance discovery: start with list_instances(); follow the guidance in its response. Prefer reuse; never duplicate a running instance.\n\n## Reply Contract\n\nEvery final response to the user contains: the result (the actual answer or deliverable) and gaps (anything incomplete — omit if none). Summarize instance reports; omit internal coordination noise.\n\n## After Restart\n\nBEFORE processing any new messages: 1. list_instances() 2. list_teams() 3. list_decisions(). Only then handle requests.\n\n## Playbooks (on-demand skills)\n\nDetailed procedures live in your skills — consult them when the situation comes up rather than from memory:\n- **delegation-playbook** — delegation protocol, loop prevention, parallel vs sequential, result/failure handling, team management, instance configuration tips.\n- **development-workflow** — the fleet-wide code-change policy you enforce when delegating code tasks.\nPlus the operational skills (fleet-health, instance-lifecycle, scheduling, session-management, …).\n";
3
+ /** Fixed installed program assets, never an enumeration of a runtime profile. */
4
+ export const GENERAL_SKILL_NAMES = [
5
+ "backend-providers",
6
+ "bug-report",
7
+ "credential-profiles",
8
+ "cross-instance-messaging",
9
+ "delegation-playbook",
10
+ "development-workflow",
11
+ "docker-install",
12
+ "fleet-config",
13
+ "fleet-health",
14
+ "fleet-restart",
15
+ "instance-lifecycle",
16
+ "kiro-engine-migration",
17
+ "model-discovery",
18
+ "multi-channel",
19
+ "scheduling",
20
+ "session-management",
21
+ "tui-effort",
22
+ "web-appearance",
23
+ "web-dashboard"
24
+ ];
25
+ export const GENERAL_KNOWLEDGE_FILES = ["steering/core-rules.md", ...GENERAL_SKILL_NAMES.map(name => `skills/${name}/SKILL.md`)];
26
+ //# sourceMappingURL=general-role.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general-role.js","sourceRoot":"","sources":["../src/general-role.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,MAAM,CAAC,MAAM,yBAAyB,GAAG,usDAAusD,CAAC;AAEjvD,iFAAiF;AACjF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,mBAAmB;IACnB,YAAY;IACZ,qBAAqB;IACrB,0BAA0B;IAC1B,qBAAqB;IACrB,sBAAsB;IACtB,gBAAgB;IAChB,cAAc;IACd,cAAc;IACd,eAAe;IACf,oBAAoB;IACpB,uBAAuB;IACvB,iBAAiB;IACjB,eAAe;IACf,YAAY;IACZ,oBAAoB;IACpB,YAAY;IACZ,gBAAgB;IAChB,eAAe;CACP,CAAC;AACX,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,wBAAwB,EAAE,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,WAAW,CAAC,CAAU,CAAC"}
@@ -95,6 +95,10 @@ const FLEET_FIELD_IMPACTS = {
95
95
  "web.experimental.canvas_worker": "now",
96
96
  "web.echo_to_channel": "now",
97
97
  "web.log_tab": "now",
98
+ // M-2255: applied when saved (the fleet's observeRuntimeSwitches), no restart.
99
+ "runtimes.windows_cli": "now",
100
+ "runtimes.remote_runtime": "now",
101
+ "runtimes.max_agents_per_machine": "now",
98
102
  "web.usage_report_on_public_link": "now",
99
103
  "web.office_levels": "now",
100
104
  "web.preview_cdn": "now",
@@ -1 +1 @@
1
- {"version":3,"file":"instance-config-impact.js","sourceRoot":"","sources":["../src/instance-config-impact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instance-config-impact.js","sourceRoot":"","sources":["../src/instance-config-impact.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { SettingsExecution } from "./settings-transaction.js";
2
2
  import type { InstanceConfig, FleetConfig } from "./types.js";
3
3
  import { RoutingEngine } from "./routing-engine.js";
4
4
  import type { Logger } from "./logger.js";
5
- import type { IpcClient } from "./channel/ipc-bridge.js";
5
+ import type { InstanceClient } from "./channel/ipc-bridge.js";
6
6
  import type { EventLog } from "./event-log.js";
7
7
  import type { TmuxControlClient } from "./tmux-control.js";
8
8
  import type { FleetInstructionsParams } from "./instructions.js";
@@ -57,12 +57,21 @@ export declare function getUnsafeInstanceDaemonPidReason(pid: number, dataDir: s
57
57
  * FleetManager implements this.
58
58
  */
59
59
  export interface LifecycleContext {
60
+ assertGeneralBindingStart?(name: string, config: InstanceConfig): void;
61
+ /** Prepared native ownership replaces local launch files/configuration, never a failed-local fallback. */
62
+ nativePaneFor?(name: string, config: InstanceConfig, assertCurrent: () => void): Promise<import("./native-pane-lifecycle.js").NativePaneLifecycle>;
63
+ reconcileNativePaneBeforeStart?(name: string, daemon: Daemon): Promise<boolean>;
64
+ closeRetainedNativePane?(name: string): Promise<void>;
65
+ nativePanePinnedSession?(name: string): string | null;
66
+ onNativePaneRecoverySettled?(name: string): void;
67
+ holdNativePaneRecovery?(name: string, error: unknown): boolean;
68
+ setNativePanePaused?(name: string, paused: boolean): void;
60
69
  readonly fleetConfig: FleetConfig | null;
61
70
  readonly logger: Logger;
62
71
  readonly dataDir: string;
63
72
  getSettingsConfigPath?(): string;
64
73
  readonly routing: RoutingEngine;
65
- readonly instanceIpcClients: Map<string, IpcClient>;
74
+ readonly instanceIpcClients: Map<string, InstanceClient>;
66
75
  readonly ipcStoppingInstances: Set<string>;
67
76
  readonly sessionRegistry: Map<string, string>;
68
77
  readonly eventLog: EventLog | null;
@@ -210,6 +219,8 @@ type Daemon = InstanceType<typeof import("./daemon.js").Daemon>;
210
219
  export declare function peerWorkingDirectories(fleetConfig: FleetConfig | null, name: string, backendName: string): string[];
211
220
  /** What attachIncidentHandlers needs from a Daemon — the real one satisfies it. */
212
221
  export interface IncidentEventSource {
222
+ usesNativePane?(): boolean;
223
+ confirmAuthFailure?(): void;
213
224
  on(event: string, handler: (...args: any[]) => void): unknown;
214
225
  requestPauseWhenIdle(opts?: {
215
226
  reconfirmAuth?: boolean;
@@ -239,6 +250,8 @@ export interface IncidentEventSource {
239
250
  /** Arguments accepted by handleCreate — mirrors CreateInstanceArgs in outbound-schemas.ts
240
251
  * plus internal-only fields forwarded by deploy_template (profile-derived). */
241
252
  export interface LifecycleCreateArgs {
253
+ runtime?: "wsl" | "windows";
254
+ sandbox?: "read-only" | "workspace-write";
242
255
  directory?: string;
243
256
  topic_name?: string;
244
257
  description?: string;
@@ -321,6 +334,7 @@ export declare class InstanceLifecycle {
321
334
  private activeTransition;
322
335
  /** Bumped synchronously by stop/restart: a start begun under an older epoch must not publish. */
323
336
  private lifecycleEpochs;
337
+ private nativeExitOwners;
324
338
  /** Single wake flight per instance: concurrent wakes share it. */
325
339
  private wakeFlights;
326
340
  /** Starts that begin their idle window now instead of at the persisted last inbound. */
@@ -496,6 +510,10 @@ export declare class InstanceLifecycle {
496
510
  * emoji for each status comes from config (#1005); this only names it.
497
511
  */
498
512
  attachDeliveryStatusHandlers(name: string, daemon: IncidentEventSource): void;
513
+ nativeRecoveryPending(name: string): boolean;
514
+ cancelNativeRecovery(name?: string, owner?: symbol): void;
515
+ resetNativeCrashBudget(name: string): void;
516
+ private nativePaneExited;
499
517
  attachIncidentHandlers(name: string, daemon: IncidentEventSource): void;
500
518
  /** How long after a capacity error the agent is told to keep going. */
501
519
  private static readonly CAPACITY_NUDGE_DELAY_MS;
@@ -509,7 +527,7 @@ export declare class InstanceLifecycle {
509
527
  private pauseAfterRateLimitNudges;
510
528
  epochOf(name: string): number;
511
529
  /** Invalidate every start/wake already running for `name` (they will not publish). */
512
- invalidate(name: string): void;
530
+ invalidate(name: string, nativeOwner?: symbol): void;
513
531
  /** Whether `transition` is `name`'s transition and is the one running now. */
514
532
  holds(name: string, transition: TransitionHandle | undefined): transition is TransitionHandle;
515
533
  /** Run `fn` as `name`'s next transition, or inline when `parent` is the transition running now. */