@songsid/agend 2.3.5-alpha.5 → 2.3.5-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (976) hide show
  1. package/README.md +0 -2
  2. package/README.zh-TW.md +0 -2
  3. package/THIRD_PARTY_NOTICES.md +0 -68
  4. package/dist/agent-endpoint.d.ts +1 -5
  5. package/dist/agent-endpoint.js +2 -12
  6. package/dist/agent-endpoint.js.map +1 -1
  7. package/dist/agent-file-read.js +1 -1
  8. package/dist/agent-file-read.js.map +1 -1
  9. package/dist/auth-api.d.ts +0 -48
  10. package/dist/auth-api.js +4 -250
  11. package/dist/auth-api.js.map +1 -1
  12. package/dist/authority/session-authorizations.d.ts +2 -0
  13. package/dist/authority/session-authorizations.js +7 -1
  14. package/dist/authority/session-authorizations.js.map +1 -1
  15. package/dist/authority/web-authority.d.ts +2 -12
  16. package/dist/authority/web-authority.js +4 -25
  17. package/dist/authority/web-authority.js.map +1 -1
  18. package/dist/backend/claude-code.d.ts +12 -15
  19. package/dist/backend/claude-code.js +133 -152
  20. package/dist/backend/claude-code.js.map +1 -1
  21. package/dist/backend/codex-footer-hints.d.ts +0 -3
  22. package/dist/backend/codex-footer-hints.js +0 -14
  23. package/dist/backend/codex-footer-hints.js.map +1 -1
  24. package/dist/backend/codex-package.d.ts +2 -5
  25. package/dist/backend/codex-package.js +5 -1
  26. package/dist/backend/codex-package.js.map +1 -1
  27. package/dist/backend/codex-quota-history.js +19 -4
  28. package/dist/backend/codex-quota-history.js.map +1 -1
  29. package/dist/backend/codex.d.ts +115 -142
  30. package/dist/backend/codex.js +1094 -1187
  31. package/dist/backend/codex.js.map +1 -1
  32. package/dist/backend/grok.d.ts +0 -2
  33. package/dist/backend/grok.js +0 -22
  34. package/dist/backend/grok.js.map +1 -1
  35. package/dist/backend/types.d.ts +2 -7
  36. package/dist/backend/types.js.map +1 -1
  37. package/dist/bundled-tmux-guard.d.ts +21 -0
  38. package/dist/bundled-tmux-guard.js +96 -0
  39. package/dist/bundled-tmux-guard.js.map +1 -0
  40. package/dist/channel/ipc-bridge.d.ts +0 -2
  41. package/dist/channel/mcp-tools.js +2 -2
  42. package/dist/channel/mcp-tools.js.map +1 -1
  43. package/dist/classic-channel-manager.d.ts +2 -0
  44. package/dist/classic-channel-manager.js +5 -1
  45. package/dist/classic-channel-manager.js.map +1 -1
  46. package/dist/cli.js +30 -127
  47. package/dist/cli.js.map +1 -1
  48. package/dist/config-validator.js +13 -74
  49. package/dist/config-validator.js.map +1 -1
  50. package/dist/config.js +3 -17
  51. package/dist/config.js.map +1 -1
  52. package/dist/daemon.d.ts +5 -72
  53. package/dist/daemon.js +275 -869
  54. package/dist/daemon.js.map +1 -1
  55. package/dist/delivery-consumed-watch.d.ts +3 -15
  56. package/dist/delivery-consumed-watch.js +1 -23
  57. package/dist/delivery-consumed-watch.js.map +1 -1
  58. package/dist/delivery-outbox.d.ts +0 -5
  59. package/dist/delivery-outbox.js +4 -32
  60. package/dist/delivery-outbox.js.map +1 -1
  61. package/dist/delivery-reconciliation.d.ts +42 -2
  62. package/dist/delivery-reconciliation.js +164 -2
  63. package/dist/delivery-reconciliation.js.map +1 -1
  64. package/dist/doctor.js +9 -20
  65. package/dist/doctor.js.map +1 -1
  66. package/dist/fleet-context.d.ts +2 -2
  67. package/dist/fleet-level-config.d.ts +1 -1
  68. package/dist/fleet-level-config.js +0 -2
  69. package/dist/fleet-level-config.js.map +1 -1
  70. package/dist/fleet-manager.d.ts +9 -498
  71. package/dist/fleet-manager.js +202 -2849
  72. package/dist/fleet-manager.js.map +1 -1
  73. package/dist/general-instance.d.ts +0 -7
  74. package/dist/general-instance.js +3 -20
  75. package/dist/general-instance.js.map +1 -1
  76. package/dist/general-knowledge/skills/concepts/SKILL.md +18 -50
  77. package/dist/general-knowledge/skills/credential-profiles/SKILL.md +2 -5
  78. package/dist/general-knowledge/skills/fleet-health/SKILL.md +2 -2
  79. package/dist/general-knowledge/skills/session-management/SKILL.md +1 -1
  80. package/dist/general-knowledge/skills/tui-effort/SKILL.md +10 -10
  81. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +13 -23
  82. package/dist/instance-config-impact.js +4 -8
  83. package/dist/instance-config-impact.js.map +1 -1
  84. package/dist/instance-lifecycle.d.ts +3 -22
  85. package/dist/instance-lifecycle.js +176 -393
  86. package/dist/instance-lifecycle.js.map +1 -1
  87. package/dist/instructions.d.ts +0 -2
  88. package/dist/instructions.js +0 -6
  89. package/dist/instructions.js.map +1 -1
  90. package/dist/locale.js +2 -147
  91. package/dist/locale.js.map +1 -1
  92. package/dist/login-flows.d.ts +7 -8
  93. package/dist/login-flows.js +1 -24
  94. package/dist/login-flows.js.map +1 -1
  95. package/dist/ls-rows.js +4 -3
  96. package/dist/ls-rows.js.map +1 -1
  97. package/dist/muse-usage-relay.d.ts +2 -0
  98. package/dist/muse-usage-relay.js +5 -3
  99. package/dist/muse-usage-relay.js.map +1 -1
  100. package/dist/needs-you-hub.d.ts +0 -5
  101. package/dist/needs-you-hub.js +2 -18
  102. package/dist/needs-you-hub.js.map +1 -1
  103. package/dist/needs-you.d.ts +2 -45
  104. package/dist/needs-you.js +2 -26
  105. package/dist/needs-you.js.map +1 -1
  106. package/dist/office-share-page.js +3 -3
  107. package/dist/office-share-page.js.map +1 -1
  108. package/dist/office-share.d.ts +0 -11
  109. package/dist/office-share.js +0 -14
  110. package/dist/office-share.js.map +1 -1
  111. package/dist/outbound-handlers.d.ts +2 -30
  112. package/dist/outbound-handlers.js +4 -109
  113. package/dist/outbound-handlers.js.map +1 -1
  114. package/dist/outbound-schemas.d.ts +1 -71
  115. package/dist/outbound-schemas.js +14 -36
  116. package/dist/outbound-schemas.js.map +1 -1
  117. package/dist/pane-quota-history.d.ts +0 -2
  118. package/dist/pane-quota-history.js +0 -20
  119. package/dist/pane-quota-history.js.map +1 -1
  120. package/dist/pause-marker.d.ts +1 -1
  121. package/dist/pause-marker.js +1 -1
  122. package/dist/pause-marker.js.map +1 -1
  123. package/dist/public-web-gateway.js +0 -16
  124. package/dist/public-web-gateway.js.map +1 -1
  125. package/dist/public-web-link.d.ts +0 -11
  126. package/dist/public-web-link.js +0 -13
  127. package/dist/public-web-link.js.map +1 -1
  128. package/dist/quickstart-api.js +5 -9
  129. package/dist/quickstart-api.js.map +1 -1
  130. package/dist/quickstart.d.ts +0 -6
  131. package/dist/quickstart.js +6 -44
  132. package/dist/quickstart.js.map +1 -1
  133. package/dist/quota-notice-config.d.ts +22 -0
  134. package/dist/quota-notice-config.js +41 -0
  135. package/dist/quota-notice-config.js.map +1 -0
  136. package/dist/scheduler/task-board-text.js +1 -1
  137. package/dist/scheduler/task-board-text.js.map +1 -1
  138. package/dist/scheduler/task-board.d.ts +0 -4
  139. package/dist/scheduler/task-board.js +3 -9
  140. package/dist/scheduler/task-board.js.map +1 -1
  141. package/dist/service-installer.d.ts +2 -7
  142. package/dist/service-installer.js +10 -13
  143. package/dist/service-installer.js.map +1 -1
  144. package/dist/settings-api.d.ts +0 -12
  145. package/dist/settings-api.js +7 -487
  146. package/dist/settings-api.js.map +1 -1
  147. package/dist/settings-baseline.d.ts +0 -7
  148. package/dist/settings-baseline.js +1 -3
  149. package/dist/settings-baseline.js.map +1 -1
  150. package/dist/settings-change.js +7 -35
  151. package/dist/settings-change.js.map +1 -1
  152. package/dist/settings-confirmation.d.ts +1 -16
  153. package/dist/settings-confirmation.js +9 -47
  154. package/dist/settings-confirmation.js.map +1 -1
  155. package/dist/settings-effect.d.ts +0 -17
  156. package/dist/settings-effect.js +1 -155
  157. package/dist/settings-effect.js.map +1 -1
  158. package/dist/settings-http-confirmation.d.ts +0 -4
  159. package/dist/settings-http-confirmation.js +3 -43
  160. package/dist/settings-http-confirmation.js.map +1 -1
  161. package/dist/settings-instance-patch.js +1 -1
  162. package/dist/settings-instance-patch.js.map +1 -1
  163. package/dist/settings-request-capability.d.ts +0 -2
  164. package/dist/settings-request-capability.js +0 -4
  165. package/dist/settings-request-capability.js.map +1 -1
  166. package/dist/settings-transaction.d.ts +0 -4
  167. package/dist/settings-transaction.js +0 -9
  168. package/dist/settings-transaction.js.map +1 -1
  169. package/dist/setup-form.js +3 -6
  170. package/dist/setup-form.js.map +1 -1
  171. package/dist/setup-i18n.js +0 -3
  172. package/dist/setup-i18n.js.map +1 -1
  173. package/dist/setup-wizard.js +2 -6
  174. package/dist/setup-wizard.js.map +1 -1
  175. package/dist/task-board-tool.d.ts +1 -2
  176. package/dist/task-board-tool.js +6 -62
  177. package/dist/task-board-tool.js.map +1 -1
  178. package/dist/tmux-control.d.ts +1 -2
  179. package/dist/tmux-control.js +4 -4
  180. package/dist/tmux-control.js.map +1 -1
  181. package/dist/tmux-exec-helper.js +1 -32
  182. package/dist/tmux-exec-helper.js.map +1 -1
  183. package/dist/tmux-manager.d.ts +2 -3
  184. package/dist/tmux-manager.js +36 -45
  185. package/dist/tmux-manager.js.map +1 -1
  186. package/dist/tmux-read.js +3 -4
  187. package/dist/tmux-read.js.map +1 -1
  188. package/dist/tool-permissions.js +1 -2
  189. package/dist/tool-permissions.js.map +1 -1
  190. package/dist/topic-commands.js +5 -9
  191. package/dist/topic-commands.js.map +1 -1
  192. package/dist/transcript-delta-reader.d.ts +1 -1
  193. package/dist/transcript-delta-reader.js +1 -1
  194. package/dist/transcript-delta-reader.js.map +1 -1
  195. package/dist/transcript-monitor.d.ts +0 -3
  196. package/dist/transcript-monitor.js +51 -27
  197. package/dist/transcript-monitor.js.map +1 -1
  198. package/dist/transcript-sources.d.ts +0 -5
  199. package/dist/transcript-sources.js +79 -8
  200. package/dist/transcript-sources.js.map +1 -1
  201. package/dist/types.d.ts +3 -29
  202. package/dist/ui/app.html +8 -1
  203. package/dist/ui/backend-signin.js +21 -39
  204. package/dist/ui/chat-ambient.js +1 -1
  205. package/dist/ui/chat-md-strings.js +9 -3
  206. package/dist/ui/chat-render.js +670 -3
  207. package/dist/ui/chat-store.js +3 -14
  208. package/dist/ui/chat-strings.js +285 -3
  209. package/dist/ui/chat-thread.js +969 -3
  210. package/dist/ui/chat-time.js +80 -3
  211. package/dist/ui/chat-tour.js +1 -1
  212. package/dist/ui/fleet-office-pack.d.ts +0 -9
  213. package/dist/ui/fleet-office-pack.js +4 -76
  214. package/dist/ui/fleet-office-skin.js +5 -23
  215. package/dist/ui/fleet-office-store.js +0 -5
  216. package/dist/ui/fleet-office.js +6 -173
  217. package/dist/ui/fleet-task-card.js +4 -8
  218. package/dist/ui/fleet-task-common.js +2 -2
  219. package/dist/ui/fleet-tasks.js +39 -125
  220. package/dist/ui/html-attachment.js +40 -3
  221. package/dist/ui/office-share-page.js +2 -4
  222. package/dist/ui/panel-chat.js +75 -90
  223. package/dist/ui/panel-details.js +2 -3
  224. package/dist/ui/panel-fleet.js +18 -105
  225. package/dist/ui/panel-log.js +2 -2
  226. package/dist/ui/panel-needs.js +4 -162
  227. package/dist/ui/panel-notices.js +4 -3
  228. package/dist/ui/panel-settings.js +202 -281
  229. package/dist/ui/preview-pages.js +1 -1
  230. package/dist/ui/preview-panel.js +13 -21
  231. package/dist/ui/preview-versions.js +1 -1
  232. package/dist/ui/preview.js +476 -3
  233. package/dist/ui/search-dialog.js +3 -4
  234. package/dist/ui/settings-appearance.js +23 -122
  235. package/dist/ui/settings-catalog.js +10 -37
  236. package/dist/ui/settings-confirm.js +1 -3
  237. package/dist/ui/settings-dialogs.js +20 -48
  238. package/dist/ui/settings-guests.js +14 -27
  239. package/dist/ui/settings-model.js +1 -10
  240. package/dist/ui/settings-quota-notice.js +100 -0
  241. package/dist/ui/settings-registry.js +5 -15
  242. package/dist/ui/settings-strings.js +32 -105
  243. package/dist/ui/settings-web-authority.js +13 -18
  244. package/dist/ui/shared/app-i18n.js +2 -2
  245. package/dist/ui/shared/app-route.js +3 -12
  246. package/dist/ui/shared/app-session.js +2 -6
  247. package/dist/ui/shared/app-shell.js +26 -87
  248. package/dist/ui/shared/app-store.js +2 -3
  249. package/dist/ui/shared/app-stream.js +1 -3
  250. package/dist/ui/shared/app.css +5 -1368
  251. package/dist/ui/shared/app.js +5 -17
  252. package/dist/ui/shared/header-tools.js +9 -9
  253. package/dist/ui/shared/instance-nav.js +7 -34
  254. package/dist/ui/shared/instance-switch.js +3 -4
  255. package/dist/ui/shared/loading.css +37 -0
  256. package/dist/ui/shared/signin.js +6 -211
  257. package/dist/ui/shared/tokens.css +0 -1
  258. package/dist/ui/shared/ui-dialog.js +2 -2
  259. package/dist/ui/shared/ui-menu.js +10 -30
  260. package/dist/ui/shared/ui-states.js +14 -3
  261. package/dist/ui/shared/vendor/vendor.json +2 -19
  262. package/dist/ui/shared/view-strings.js +0 -8
  263. package/dist/ui/signin.html +5 -23
  264. package/dist/unattended-install.js +1 -2
  265. package/dist/unattended-install.js.map +1 -1
  266. package/dist/usage/providers.d.ts +5 -0
  267. package/dist/usage/providers.js +6 -2
  268. package/dist/usage/providers.js.map +1 -1
  269. package/dist/usage/quota-notices.d.ts +38 -0
  270. package/dist/usage/quota-notices.js +160 -0
  271. package/dist/usage/quota-notices.js.map +1 -0
  272. package/dist/usage/usage-api.d.ts +1 -0
  273. package/dist/usage/usage-api.js +16 -0
  274. package/dist/usage/usage-api.js.map +1 -1
  275. package/dist/view-api.js +7 -5
  276. package/dist/view-api.js.map +1 -1
  277. package/dist/web-api.d.ts +2 -80
  278. package/dist/web-api.js +10 -513
  279. package/dist/web-api.js.map +1 -1
  280. package/dist/web-backend-login.d.ts +1 -23
  281. package/dist/web-backend-login.js +17 -11
  282. package/dist/web-backend-login.js.map +1 -1
  283. package/dist/web-chat-history.d.ts +2 -19
  284. package/dist/web-chat-history.js +3 -72
  285. package/dist/web-chat-history.js.map +1 -1
  286. package/dist/web-office-skins.d.ts +0 -9
  287. package/dist/web-office-skins.js +1 -16
  288. package/dist/web-office-skins.js.map +1 -1
  289. package/dist/web-only-fleet.d.ts +0 -20
  290. package/dist/web-only-fleet.js +0 -21
  291. package/dist/web-only-fleet.js.map +1 -1
  292. package/dist/web-session.d.ts +0 -42
  293. package/dist/web-session.js +0 -9
  294. package/dist/web-session.js.map +1 -1
  295. package/dist/web-settings-patch.d.ts +1 -3
  296. package/dist/web-settings-patch.js +1 -4
  297. package/dist/web-settings-patch.js.map +1 -1
  298. package/dist/web-shell-routes.d.ts +1 -10
  299. package/dist/web-shell-routes.js +2 -14
  300. package/dist/web-shell-routes.js.map +1 -1
  301. package/dist/web-terminal.d.ts +30 -4
  302. package/dist/web-terminal.js +6 -9
  303. package/dist/web-terminal.js.map +1 -1
  304. package/dist/yaml-shared-nodes.js +3 -8
  305. package/dist/yaml-shared-nodes.js.map +1 -1
  306. package/launcher/agend-install.cjs +1 -8
  307. package/launcher/postinstall.cjs +2 -27
  308. package/package.json +3 -10
  309. package/templates/launchd.plist.ejs +1 -3
  310. package/dist/accounts-view.d.ts +0 -97
  311. package/dist/accounts-view.js +0 -116
  312. package/dist/accounts-view.js.map +0 -1
  313. package/dist/agent-runtime-api.d.ts +0 -4
  314. package/dist/agent-runtime-api.js +0 -59
  315. package/dist/agent-runtime-api.js.map +0 -1
  316. package/dist/agent-runtime-change.d.ts +0 -76
  317. package/dist/agent-runtime-change.js +0 -114
  318. package/dist/agent-runtime-change.js.map +0 -1
  319. package/dist/agent-workspace.d.ts +0 -93
  320. package/dist/agent-workspace.js +0 -353
  321. package/dist/agent-workspace.js.map +0 -1
  322. package/dist/backend/grok-model-cache.d.ts +0 -7
  323. package/dist/backend/grok-model-cache.js +0 -65
  324. package/dist/backend/grok-model-cache.js.map +0 -1
  325. package/dist/backend/native-pane.d.ts +0 -11
  326. package/dist/backend/native-pane.js +0 -59
  327. package/dist/backend/native-pane.js.map +0 -1
  328. package/dist/build-provenance-cli.d.ts +0 -3
  329. package/dist/build-provenance-cli.js +0 -11
  330. package/dist/build-provenance-cli.js.map +0 -1
  331. package/dist/build-provenance.d.ts +0 -20
  332. package/dist/build-provenance.js +0 -67
  333. package/dist/build-provenance.js.map +0 -1
  334. package/dist/build-provenance.json +0 -1
  335. package/dist/claude-auth-status.d.ts +0 -48
  336. package/dist/claude-auth-status.js +0 -149
  337. package/dist/claude-auth-status.js.map +0 -1
  338. package/dist/fleet-windows-runtime.d.ts +0 -98
  339. package/dist/fleet-windows-runtime.js +0 -467
  340. package/dist/fleet-windows-runtime.js.map +0 -1
  341. package/dist/general-binding.d.ts +0 -85
  342. package/dist/general-binding.js +0 -298
  343. package/dist/general-binding.js.map +0 -1
  344. package/dist/general-host-owner.d.ts +0 -8
  345. package/dist/general-host-owner.js +0 -26
  346. package/dist/general-host-owner.js.map +0 -1
  347. package/dist/general-role.d.ts +0 -5
  348. package/dist/general-role.js +0 -27
  349. package/dist/general-role.js.map +0 -1
  350. package/dist/hub/admission.d.ts +0 -28
  351. package/dist/hub/admission.js +0 -62
  352. package/dist/hub/admission.js.map +0 -1
  353. package/dist/hub/attachments/limits.d.ts +0 -20
  354. package/dist/hub/attachments/limits.js +0 -48
  355. package/dist/hub/attachments/limits.js.map +0 -1
  356. package/dist/hub/attachments/store.d.ts +0 -116
  357. package/dist/hub/attachments/store.js +0 -246
  358. package/dist/hub/attachments/store.js.map +0 -1
  359. package/dist/hub/audit/index.d.ts +0 -62
  360. package/dist/hub/audit/index.js +0 -344
  361. package/dist/hub/audit/index.js.map +0 -1
  362. package/dist/hub/browser-certificate.d.ts +0 -38
  363. package/dist/hub/browser-certificate.js +0 -247
  364. package/dist/hub/browser-certificate.js.map +0 -1
  365. package/dist/hub/buttons-model.d.ts +0 -9
  366. package/dist/hub/buttons-model.js +0 -42
  367. package/dist/hub/buttons-model.js.map +0 -1
  368. package/dist/hub/buttons.d.ts +0 -54
  369. package/dist/hub/buttons.js +0 -346
  370. package/dist/hub/buttons.js.map +0 -1
  371. package/dist/hub/catalog.d.ts +0 -74
  372. package/dist/hub/catalog.js +0 -195
  373. package/dist/hub/catalog.js.map +0 -1
  374. package/dist/hub/client.d.ts +0 -69
  375. package/dist/hub/client.js +0 -300
  376. package/dist/hub/client.js.map +0 -1
  377. package/dist/hub/compose/member.d.ts +0 -139
  378. package/dist/hub/compose/member.js +0 -450
  379. package/dist/hub/compose/member.js.map +0 -1
  380. package/dist/hub/compose/server.d.ts +0 -77
  381. package/dist/hub/compose/server.js +0 -349
  382. package/dist/hub/compose/server.js.map +0 -1
  383. package/dist/hub/compose/views.d.ts +0 -12
  384. package/dist/hub/compose/views.js +0 -4
  385. package/dist/hub/compose/views.js.map +0 -1
  386. package/dist/hub/db.d.ts +0 -56
  387. package/dist/hub/db.js +0 -188
  388. package/dist/hub/db.js.map +0 -1
  389. package/dist/hub/directory/config.d.ts +0 -39
  390. package/dist/hub/directory/config.js +0 -108
  391. package/dist/hub/directory/config.js.map +0 -1
  392. package/dist/hub/directory/directory.d.ts +0 -18
  393. package/dist/hub/directory/directory.js +0 -320
  394. package/dist/hub/directory/directory.js.map +0 -1
  395. package/dist/hub/directory/index.d.ts +0 -7
  396. package/dist/hub/directory/index.js +0 -4
  397. package/dist/hub/directory/index.js.map +0 -1
  398. package/dist/hub/directory/profiles.d.ts +0 -41
  399. package/dist/hub/directory/profiles.js +0 -90
  400. package/dist/hub/directory/profiles.js.map +0 -1
  401. package/dist/hub/directory/types.d.ts +0 -71
  402. package/dist/hub/directory/types.js +0 -14
  403. package/dist/hub/directory/types.js.map +0 -1
  404. package/dist/hub/execution/cli-provider.d.ts +0 -23
  405. package/dist/hub/execution/cli-provider.js +0 -341
  406. package/dist/hub/execution/cli-provider.js.map +0 -1
  407. package/dist/hub/execution/index.d.ts +0 -13
  408. package/dist/hub/execution/index.js +0 -8
  409. package/dist/hub/execution/index.js.map +0 -1
  410. package/dist/hub/execution/model-broker.d.ts +0 -24
  411. package/dist/hub/execution/model-broker.js +0 -208
  412. package/dist/hub/execution/model-broker.js.map +0 -1
  413. package/dist/hub/execution/provider-setup.d.ts +0 -11
  414. package/dist/hub/execution/provider-setup.js +0 -21
  415. package/dist/hub/execution/provider-setup.js.map +0 -1
  416. package/dist/hub/execution/sandbox-runner.d.ts +0 -1
  417. package/dist/hub/execution/sandbox-runner.js +0 -221
  418. package/dist/hub/execution/sandbox-runner.js.map +0 -1
  419. package/dist/hub/execution/service.d.ts +0 -136
  420. package/dist/hub/execution/service.js +0 -459
  421. package/dist/hub/execution/service.js.map +0 -1
  422. package/dist/hub/execution/store.d.ts +0 -61
  423. package/dist/hub/execution/store.js +0 -182
  424. package/dist/hub/execution/store.js.map +0 -1
  425. package/dist/hub/execution/views.d.ts +0 -20
  426. package/dist/hub/execution/views.js +0 -48
  427. package/dist/hub/execution/views.js.map +0 -1
  428. package/dist/hub/http/compose.d.ts +0 -20
  429. package/dist/hub/http/compose.js +0 -518
  430. package/dist/hub/http/compose.js.map +0 -1
  431. package/dist/hub/http/core.d.ts +0 -49
  432. package/dist/hub/http/core.js +0 -124
  433. package/dist/hub/http/core.js.map +0 -1
  434. package/dist/hub/http/deps.d.ts +0 -61
  435. package/dist/hub/http/deps.js +0 -2
  436. package/dist/hub/http/deps.js.map +0 -1
  437. package/dist/hub/http/schema.d.ts +0 -14
  438. package/dist/hub/http/schema.js +0 -80
  439. package/dist/hub/http/schema.js.map +0 -1
  440. package/dist/hub/identity.d.ts +0 -32
  441. package/dist/hub/identity.js +0 -80
  442. package/dist/hub/identity.js.map +0 -1
  443. package/dist/hub/init/browser-certificate.d.ts +0 -9
  444. package/dist/hub/init/browser-certificate.js +0 -78
  445. package/dist/hub/init/browser-certificate.js.map +0 -1
  446. package/dist/hub/init/browser-tls.d.ts +0 -18
  447. package/dist/hub/init/browser-tls.js +0 -62
  448. package/dist/hub/init/browser-tls.js.map +0 -1
  449. package/dist/hub/init/cli.d.ts +0 -3
  450. package/dist/hub/init/cli.js +0 -83
  451. package/dist/hub/init/cli.js.map +0 -1
  452. package/dist/hub/init/directory-certificate.d.ts +0 -24
  453. package/dist/hub/init/directory-certificate.js +0 -222
  454. package/dist/hub/init/directory-certificate.js.map +0 -1
  455. package/dist/hub/init/existing-fleet.d.ts +0 -6
  456. package/dist/hub/init/existing-fleet.js +0 -58
  457. package/dist/hub/init/existing-fleet.js.map +0 -1
  458. package/dist/hub/init/handoff.d.ts +0 -8
  459. package/dist/hub/init/handoff.js +0 -36
  460. package/dist/hub/init/handoff.js.map +0 -1
  461. package/dist/hub/init/identity.d.ts +0 -5
  462. package/dist/hub/init/identity.js +0 -24
  463. package/dist/hub/init/identity.js.map +0 -1
  464. package/dist/hub/init/initializer.d.ts +0 -24
  465. package/dist/hub/init/initializer.js +0 -385
  466. package/dist/hub/init/initializer.js.map +0 -1
  467. package/dist/hub/init/inventory.d.ts +0 -17
  468. package/dist/hub/init/inventory.js +0 -33
  469. package/dist/hub/init/inventory.js.map +0 -1
  470. package/dist/hub/init/layout.d.ts +0 -32
  471. package/dist/hub/init/layout.js +0 -53
  472. package/dist/hub/init/layout.js.map +0 -1
  473. package/dist/hub/init/network.d.ts +0 -18
  474. package/dist/hub/init/network.js +0 -104
  475. package/dist/hub/init/network.js.map +0 -1
  476. package/dist/hub/init/plan-digest.d.ts +0 -5
  477. package/dist/hub/init/plan-digest.js +0 -47
  478. package/dist/hub/init/plan-digest.js.map +0 -1
  479. package/dist/hub/init/prompt.d.ts +0 -26
  480. package/dist/hub/init/prompt.js +0 -110
  481. package/dist/hub/init/prompt.js.map +0 -1
  482. package/dist/hub/init/secret-file.d.ts +0 -1
  483. package/dist/hub/init/secret-file.js +0 -59
  484. package/dist/hub/init/secret-file.js.map +0 -1
  485. package/dist/hub/init/text.d.ts +0 -127
  486. package/dist/hub/init/text.js +0 -247
  487. package/dist/hub/init/text.js.map +0 -1
  488. package/dist/hub/init/types.d.ts +0 -114
  489. package/dist/hub/init/types.js +0 -9
  490. package/dist/hub/init/types.js.map +0 -1
  491. package/dist/hub/init/wizard.d.ts +0 -34
  492. package/dist/hub/init/wizard.js +0 -554
  493. package/dist/hub/init/wizard.js.map +0 -1
  494. package/dist/hub/initialization.d.ts +0 -23
  495. package/dist/hub/initialization.js +0 -28
  496. package/dist/hub/initialization.js.map +0 -1
  497. package/dist/hub/member/agent-mode.d.ts +0 -6
  498. package/dist/hub/member/agent-mode.js +0 -23
  499. package/dist/hub/member/agent-mode.js.map +0 -1
  500. package/dist/hub/member/attachments.d.ts +0 -29
  501. package/dist/hub/member/attachments.js +0 -107
  502. package/dist/hub/member/attachments.js.map +0 -1
  503. package/dist/hub/member/exposure-api.d.ts +0 -87
  504. package/dist/hub/member/exposure-api.js +0 -64
  505. package/dist/hub/member/exposure-api.js.map +0 -1
  506. package/dist/hub/member/exposures.d.ts +0 -123
  507. package/dist/hub/member/exposures.js +0 -282
  508. package/dist/hub/member/exposures.js.map +0 -1
  509. package/dist/hub/member/pairing-api.d.ts +0 -85
  510. package/dist/hub/member/pairing-api.js +0 -385
  511. package/dist/hub/member/pairing-api.js.map +0 -1
  512. package/dist/hub/member/quota.d.ts +0 -20
  513. package/dist/hub/member/quota.js +0 -98
  514. package/dist/hub/member/quota.js.map +0 -1
  515. package/dist/hub/member-journal.d.ts +0 -104
  516. package/dist/hub/member-journal.js +0 -336
  517. package/dist/hub/member-journal.js.map +0 -1
  518. package/dist/hub/member-reconciliation.d.ts +0 -14
  519. package/dist/hub/member-reconciliation.js +0 -97
  520. package/dist/hub/member-reconciliation.js.map +0 -1
  521. package/dist/hub/mount.d.ts +0 -39
  522. package/dist/hub/mount.js +0 -123
  523. package/dist/hub/mount.js.map +0 -1
  524. package/dist/hub/pairing-client.d.ts +0 -17
  525. package/dist/hub/pairing-client.js +0 -108
  526. package/dist/hub/pairing-client.js.map +0 -1
  527. package/dist/hub/pairing.d.ts +0 -65
  528. package/dist/hub/pairing.js +0 -211
  529. package/dist/hub/pairing.js.map +0 -1
  530. package/dist/hub/policy.d.ts +0 -63
  531. package/dist/hub/policy.js +0 -147
  532. package/dist/hub/policy.js.map +0 -1
  533. package/dist/hub/preview.d.ts +0 -32
  534. package/dist/hub/preview.js +0 -64
  535. package/dist/hub/preview.js.map +0 -1
  536. package/dist/hub/private-files.d.ts +0 -5
  537. package/dist/hub/private-files.js +0 -44
  538. package/dist/hub/private-files.js.map +0 -1
  539. package/dist/hub/profile.d.ts +0 -59
  540. package/dist/hub/profile.js +0 -73
  541. package/dist/hub/profile.js.map +0 -1
  542. package/dist/hub/protocol.d.ts +0 -779
  543. package/dist/hub/protocol.js +0 -93
  544. package/dist/hub/protocol.js.map +0 -1
  545. package/dist/hub/quota.d.ts +0 -24
  546. package/dist/hub/quota.js +0 -112
  547. package/dist/hub/quota.js.map +0 -1
  548. package/dist/hub/representative.d.ts +0 -141
  549. package/dist/hub/representative.js +0 -528
  550. package/dist/hub/representative.js.map +0 -1
  551. package/dist/hub/retention.d.ts +0 -17
  552. package/dist/hub/retention.js +0 -45
  553. package/dist/hub/retention.js.map +0 -1
  554. package/dist/hub/rooms.d.ts +0 -120
  555. package/dist/hub/rooms.js +0 -535
  556. package/dist/hub/rooms.js.map +0 -1
  557. package/dist/hub/runtime.d.ts +0 -106
  558. package/dist/hub/runtime.js +0 -298
  559. package/dist/hub/runtime.js.map +0 -1
  560. package/dist/hub/server.d.ts +0 -56
  561. package/dist/hub/server.js +0 -202
  562. package/dist/hub/server.js.map +0 -1
  563. package/dist/hub/service-start.d.ts +0 -17
  564. package/dist/hub/service-start.js +0 -109
  565. package/dist/hub/service-start.js.map +0 -1
  566. package/dist/hub/sessions.d.ts +0 -53
  567. package/dist/hub/sessions.js +0 -196
  568. package/dist/hub/sessions.js.map +0 -1
  569. package/dist/hub/socket.d.ts +0 -24
  570. package/dist/hub/socket.js +0 -79
  571. package/dist/hub/socket.js.map +0 -1
  572. package/dist/hub/store.d.ts +0 -77
  573. package/dist/hub/store.js +0 -88
  574. package/dist/hub/store.js.map +0 -1
  575. package/dist/hub/tls.d.ts +0 -31
  576. package/dist/hub/tls.js +0 -135
  577. package/dist/hub/tls.js.map +0 -1
  578. package/dist/hub/types.d.ts +0 -401
  579. package/dist/hub/types.js +0 -2
  580. package/dist/hub/types.js.map +0 -1
  581. package/dist/hub/validation.d.ts +0 -33
  582. package/dist/hub/validation.js +0 -136
  583. package/dist/hub/validation.js.map +0 -1
  584. package/dist/hub/version-floor.d.ts +0 -10
  585. package/dist/hub/version-floor.js +0 -45
  586. package/dist/hub/version-floor.js.map +0 -1
  587. package/dist/hub-browser-certificate-policy.d.ts +0 -31
  588. package/dist/hub-browser-certificate-policy.js +0 -25
  589. package/dist/hub-browser-certificate-policy.js.map +0 -1
  590. package/dist/hub-membership-settings.d.ts +0 -6
  591. package/dist/hub-membership-settings.js +0 -21
  592. package/dist/hub-membership-settings.js.map +0 -1
  593. package/dist/hub-mode.d.ts +0 -15
  594. package/dist/hub-mode.js +0 -17
  595. package/dist/hub-mode.js.map +0 -1
  596. package/dist/hub-pairing-summary.d.ts +0 -48
  597. package/dist/hub-pairing-summary.js +0 -36
  598. package/dist/hub-pairing-summary.js.map +0 -1
  599. package/dist/hub-report-target.d.ts +0 -32
  600. package/dist/hub-report-target.js +0 -33
  601. package/dist/hub-report-target.js.map +0 -1
  602. package/dist/hub-retention-policy.d.ts +0 -14
  603. package/dist/hub-retention-policy.js +0 -15
  604. package/dist/hub-retention-policy.js.map +0 -1
  605. package/dist/launchd-service-domain.d.ts +0 -5
  606. package/dist/launchd-service-domain.js +0 -21
  607. package/dist/launchd-service-domain.js.map +0 -1
  608. package/dist/local-pane-endpoint.d.ts +0 -46
  609. package/dist/local-pane-endpoint.js +0 -189
  610. package/dist/local-pane-endpoint.js.map +0 -1
  611. package/dist/local-pane-launcher.d.ts +0 -2
  612. package/dist/local-pane-launcher.js +0 -38
  613. package/dist/local-pane-launcher.js.map +0 -1
  614. package/dist/local-pane-stage.ps1 +0 -101
  615. package/dist/model-catalog-defaults.d.ts +0 -14
  616. package/dist/model-catalog-defaults.js +0 -20
  617. package/dist/model-catalog-defaults.js.map +0 -1
  618. package/dist/native-agent-admission.d.ts +0 -7
  619. package/dist/native-agent-admission.js +0 -26
  620. package/dist/native-agent-admission.js.map +0 -1
  621. package/dist/native-daemon-client.d.ts +0 -13
  622. package/dist/native-daemon-client.js +0 -28
  623. package/dist/native-daemon-client.js.map +0 -1
  624. package/dist/native-instance-api.d.ts +0 -13
  625. package/dist/native-instance-api.js +0 -217
  626. package/dist/native-instance-api.js.map +0 -1
  627. package/dist/native-instance-input.d.ts +0 -87
  628. package/dist/native-instance-input.js +0 -59
  629. package/dist/native-instance-input.js.map +0 -1
  630. package/dist/native-instance-registry.d.ts +0 -38
  631. package/dist/native-instance-registry.js +0 -129
  632. package/dist/native-instance-registry.js.map +0 -1
  633. package/dist/native-mcp.d.ts +0 -43
  634. package/dist/native-mcp.js +0 -291
  635. package/dist/native-mcp.js.map +0 -1
  636. package/dist/native-model-catalog.d.ts +0 -5
  637. package/dist/native-model-catalog.js +0 -76
  638. package/dist/native-model-catalog.js.map +0 -1
  639. package/dist/native-pane-crash-budget.d.ts +0 -20
  640. package/dist/native-pane-crash-budget.js +0 -60
  641. package/dist/native-pane-crash-budget.js.map +0 -1
  642. package/dist/native-pane-create.d.ts +0 -26
  643. package/dist/native-pane-create.js +0 -53
  644. package/dist/native-pane-create.js.map +0 -1
  645. package/dist/native-pane-lifecycle.d.ts +0 -73
  646. package/dist/native-pane-lifecycle.js +0 -239
  647. package/dist/native-pane-lifecycle.js.map +0 -1
  648. package/dist/native-pane-manager.d.ts +0 -59
  649. package/dist/native-pane-manager.js +0 -592
  650. package/dist/native-pane-manager.js.map +0 -1
  651. package/dist/native-pane-output-log.d.ts +0 -15
  652. package/dist/native-pane-output-log.js +0 -108
  653. package/dist/native-pane-output-log.js.map +0 -1
  654. package/dist/native-pane-reconciliation.d.ts +0 -4
  655. package/dist/native-pane-reconciliation.js +0 -40
  656. package/dist/native-pane-reconciliation.js.map +0 -1
  657. package/dist/native-pane-recovery.d.ts +0 -12
  658. package/dist/native-pane-recovery.js +0 -10
  659. package/dist/native-pane-recovery.js.map +0 -1
  660. package/dist/native-pane-tools.d.ts +0 -2
  661. package/dist/native-pane-tools.js +0 -14
  662. package/dist/native-pane-tools.js.map +0 -1
  663. package/dist/office-talk.d.ts +0 -26
  664. package/dist/office-talk.js +0 -50
  665. package/dist/office-talk.js.map +0 -1
  666. package/dist/pane-port.d.ts +0 -118
  667. package/dist/pane-port.js +0 -2
  668. package/dist/pane-port.js.map +0 -1
  669. package/dist/runtime-api.d.ts +0 -10
  670. package/dist/runtime-api.js +0 -189
  671. package/dist/runtime-api.js.map +0 -1
  672. package/dist/runtime-assets/@xterm/addon-serialize/LICENSE +0 -21
  673. package/dist/runtime-assets/@xterm/addon-serialize/lib/addon-serialize.js +0 -2
  674. package/dist/runtime-assets/@xterm/addon-serialize/lib/addon-serialize.mjs +0 -19
  675. package/dist/runtime-assets/@xterm/addon-serialize/package.json +0 -29
  676. package/dist/runtime-assets/@xterm/headless/LICENSE +0 -21
  677. package/dist/runtime-assets/@xterm/headless/lib-headless/xterm-headless.js +0 -2
  678. package/dist/runtime-assets/@xterm/headless/lib-headless/xterm-headless.mjs +0 -46
  679. package/dist/runtime-assets/@xterm/headless/package.json +0 -29
  680. package/dist/runtime-assets/node-pty/CONPTY-LICENSE +0 -21
  681. package/dist/runtime-assets/node-pty/CONPTY-NOTICE.md +0 -503
  682. package/dist/runtime-assets/node-pty/LICENSE +0 -69
  683. package/dist/runtime-assets/node-pty/lib/conpty_console_list_agent.js +0 -16
  684. package/dist/runtime-assets/node-pty/lib/eventEmitter2.js +0 -47
  685. package/dist/runtime-assets/node-pty/lib/index.js +0 -52
  686. package/dist/runtime-assets/node-pty/lib/interfaces.js +0 -7
  687. package/dist/runtime-assets/node-pty/lib/shared/conout.js +0 -11
  688. package/dist/runtime-assets/node-pty/lib/terminal.js +0 -190
  689. package/dist/runtime-assets/node-pty/lib/types.js +0 -7
  690. package/dist/runtime-assets/node-pty/lib/unixTerminal.js +0 -346
  691. package/dist/runtime-assets/node-pty/lib/utils.js +0 -39
  692. package/dist/runtime-assets/node-pty/lib/windowsConoutConnection.js +0 -125
  693. package/dist/runtime-assets/node-pty/lib/windowsPtyAgent.js +0 -320
  694. package/dist/runtime-assets/node-pty/lib/windowsTerminal.js +0 -199
  695. package/dist/runtime-assets/node-pty/lib/worker/conoutSocketWorker.js +0 -22
  696. package/dist/runtime-assets/node-pty/package.json +0 -64
  697. package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
  698. package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
  699. package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
  700. package/dist/runtime-assets/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
  701. package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
  702. package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
  703. package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty.node +0 -0
  704. package/dist/runtime-assets/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
  705. package/dist/runtime-build-info.d.ts +0 -9
  706. package/dist/runtime-build-info.js +0 -59
  707. package/dist/runtime-build-info.js.map +0 -1
  708. package/dist/runtime-bundle.d.ts +0 -22
  709. package/dist/runtime-bundle.js +0 -158
  710. package/dist/runtime-bundle.js.map +0 -1
  711. package/dist/runtime-cli.d.ts +0 -14
  712. package/dist/runtime-cli.js +0 -271
  713. package/dist/runtime-cli.js.map +0 -1
  714. package/dist/runtime-client-store.d.ts +0 -75
  715. package/dist/runtime-client-store.js +0 -372
  716. package/dist/runtime-client-store.js.map +0 -1
  717. package/dist/runtime-client.d.ts +0 -174
  718. package/dist/runtime-client.js +0 -1010
  719. package/dist/runtime-client.js.map +0 -1
  720. package/dist/runtime-connection.d.ts +0 -22
  721. package/dist/runtime-connection.js +0 -93
  722. package/dist/runtime-connection.js.map +0 -1
  723. package/dist/runtime-coordinator.d.ts +0 -98
  724. package/dist/runtime-coordinator.js +0 -1089
  725. package/dist/runtime-coordinator.js.map +0 -1
  726. package/dist/runtime-credential-profiles.d.ts +0 -78
  727. package/dist/runtime-credential-profiles.js +0 -280
  728. package/dist/runtime-credential-profiles.js.map +0 -1
  729. package/dist/runtime-general-protocol.d.ts +0 -22
  730. package/dist/runtime-general-protocol.js +0 -57
  731. package/dist/runtime-general-protocol.js.map +0 -1
  732. package/dist/runtime-general-workspace.d.ts +0 -17
  733. package/dist/runtime-general-workspace.js +0 -213
  734. package/dist/runtime-general-workspace.js.map +0 -1
  735. package/dist/runtime-install.d.ts +0 -50
  736. package/dist/runtime-install.js +0 -186
  737. package/dist/runtime-install.js.map +0 -1
  738. package/dist/runtime-pane-assets.d.ts +0 -17
  739. package/dist/runtime-pane-assets.js +0 -23
  740. package/dist/runtime-pane-assets.js.map +0 -1
  741. package/dist/runtime-pane-boot.d.ts +0 -9
  742. package/dist/runtime-pane-boot.js +0 -47
  743. package/dist/runtime-pane-boot.js.map +0 -1
  744. package/dist/runtime-pane-codex-index.d.ts +0 -10
  745. package/dist/runtime-pane-codex-index.js +0 -151
  746. package/dist/runtime-pane-codex-index.js.map +0 -1
  747. package/dist/runtime-pane-config.d.ts +0 -16
  748. package/dist/runtime-pane-config.js +0 -54
  749. package/dist/runtime-pane-config.js.map +0 -1
  750. package/dist/runtime-pane-host.d.ts +0 -63
  751. package/dist/runtime-pane-host.js +0 -467
  752. package/dist/runtime-pane-host.js.map +0 -1
  753. package/dist/runtime-pane-job-owner.d.ts +0 -1
  754. package/dist/runtime-pane-job-owner.js +0 -29
  755. package/dist/runtime-pane-job-owner.js.map +0 -1
  756. package/dist/runtime-pane-job.ps1 +0 -116
  757. package/dist/runtime-pane-link.d.ts +0 -47
  758. package/dist/runtime-pane-link.js +0 -337
  759. package/dist/runtime-pane-link.js.map +0 -1
  760. package/dist/runtime-pane-mcp-protocol.d.ts +0 -32
  761. package/dist/runtime-pane-mcp-protocol.js +0 -39
  762. package/dist/runtime-pane-mcp-protocol.js.map +0 -1
  763. package/dist/runtime-pane-mcp-relay.d.ts +0 -18
  764. package/dist/runtime-pane-mcp-relay.js +0 -80
  765. package/dist/runtime-pane-mcp-relay.js.map +0 -1
  766. package/dist/runtime-pane-mcp.d.ts +0 -55
  767. package/dist/runtime-pane-mcp.js +0 -153
  768. package/dist/runtime-pane-mcp.js.map +0 -1
  769. package/dist/runtime-pane-native.d.ts +0 -75
  770. package/dist/runtime-pane-native.js +0 -114
  771. package/dist/runtime-pane-native.js.map +0 -1
  772. package/dist/runtime-pane-output.d.ts +0 -19
  773. package/dist/runtime-pane-output.js +0 -53
  774. package/dist/runtime-pane-output.js.map +0 -1
  775. package/dist/runtime-pane-port.d.ts +0 -144
  776. package/dist/runtime-pane-port.js +0 -574
  777. package/dist/runtime-pane-port.js.map +0 -1
  778. package/dist/runtime-pane-private.d.ts +0 -14
  779. package/dist/runtime-pane-private.js +0 -51
  780. package/dist/runtime-pane-private.js.map +0 -1
  781. package/dist/runtime-pane-private.ps1 +0 -14
  782. package/dist/runtime-pane-process.d.ts +0 -4
  783. package/dist/runtime-pane-process.js +0 -117
  784. package/dist/runtime-pane-process.js.map +0 -1
  785. package/dist/runtime-pane-protocol.d.ts +0 -182
  786. package/dist/runtime-pane-protocol.js +0 -217
  787. package/dist/runtime-pane-protocol.js.map +0 -1
  788. package/dist/runtime-pane-quota-history.d.ts +0 -6
  789. package/dist/runtime-pane-quota-history.js +0 -44
  790. package/dist/runtime-pane-quota-history.js.map +0 -1
  791. package/dist/runtime-pane-screen.d.ts +0 -19
  792. package/dist/runtime-pane-screen.js +0 -76
  793. package/dist/runtime-pane-screen.js.map +0 -1
  794. package/dist/runtime-pane-service.d.ts +0 -16
  795. package/dist/runtime-pane-service.js +0 -256
  796. package/dist/runtime-pane-service.js.map +0 -1
  797. package/dist/runtime-pane-stdio-protocol.d.ts +0 -54
  798. package/dist/runtime-pane-stdio-protocol.js +0 -94
  799. package/dist/runtime-pane-stdio-protocol.js.map +0 -1
  800. package/dist/runtime-pane-stdio.d.ts +0 -3
  801. package/dist/runtime-pane-stdio.js +0 -123
  802. package/dist/runtime-pane-stdio.js.map +0 -1
  803. package/dist/runtime-pane-store.d.ts +0 -33
  804. package/dist/runtime-pane-store.js +0 -164
  805. package/dist/runtime-pane-store.js.map +0 -1
  806. package/dist/runtime-pane-transcript-protocol.d.ts +0 -43
  807. package/dist/runtime-pane-transcript-protocol.js +0 -58
  808. package/dist/runtime-pane-transcript-protocol.js.map +0 -1
  809. package/dist/runtime-pane-transcript.d.ts +0 -50
  810. package/dist/runtime-pane-transcript.js +0 -666
  811. package/dist/runtime-pane-transcript.js.map +0 -1
  812. package/dist/runtime-pane-worker.d.ts +0 -1
  813. package/dist/runtime-pane-worker.js +0 -167
  814. package/dist/runtime-pane-worker.js.map +0 -1
  815. package/dist/runtime-protocol.d.ts +0 -177
  816. package/dist/runtime-protocol.js +0 -49
  817. package/dist/runtime-protocol.js.map +0 -1
  818. package/dist/runtime-switches.d.ts +0 -79
  819. package/dist/runtime-switches.js +0 -90
  820. package/dist/runtime-switches.js.map +0 -1
  821. package/dist/runtime-transcript-delta-reader.d.ts +0 -23
  822. package/dist/runtime-transcript-delta-reader.js +0 -74
  823. package/dist/runtime-transcript-delta-reader.js.map +0 -1
  824. package/dist/runtime-transcript-source.d.ts +0 -36
  825. package/dist/runtime-transcript-source.js +0 -189
  826. package/dist/runtime-transcript-source.js.map +0 -1
  827. package/dist/runtime-update-activity.d.ts +0 -21
  828. package/dist/runtime-update-activity.js +0 -51
  829. package/dist/runtime-update-activity.js.map +0 -1
  830. package/dist/runtime-update-artifact.d.ts +0 -31
  831. package/dist/runtime-update-artifact.js +0 -252
  832. package/dist/runtime-update-artifact.js.map +0 -1
  833. package/dist/runtime-update-install.d.ts +0 -31
  834. package/dist/runtime-update-install.js +0 -205
  835. package/dist/runtime-update-install.js.map +0 -1
  836. package/dist/runtime-update-journal.d.ts +0 -44
  837. package/dist/runtime-update-journal.js +0 -121
  838. package/dist/runtime-update-journal.js.map +0 -1
  839. package/dist/runtime-update-lock.d.ts +0 -48
  840. package/dist/runtime-update-lock.js +0 -217
  841. package/dist/runtime-update-lock.js.map +0 -1
  842. package/dist/runtime-update-owners.d.ts +0 -29
  843. package/dist/runtime-update-owners.js +0 -240
  844. package/dist/runtime-update-owners.js.map +0 -1
  845. package/dist/runtime-update-protocol.d.ts +0 -15
  846. package/dist/runtime-update-protocol.js +0 -13
  847. package/dist/runtime-update-protocol.js.map +0 -1
  848. package/dist/runtime-windows-bridge.d.ts +0 -42
  849. package/dist/runtime-windows-bridge.js +0 -167
  850. package/dist/runtime-windows-bridge.js.map +0 -1
  851. package/dist/service-drain.d.ts +0 -19
  852. package/dist/service-drain.js +0 -64
  853. package/dist/service-drain.js.map +0 -1
  854. package/dist/settings-route-lifetime.d.ts +0 -14
  855. package/dist/settings-route-lifetime.js +0 -48
  856. package/dist/settings-route-lifetime.js.map +0 -1
  857. package/dist/tmux-binary.d.ts +0 -59
  858. package/dist/tmux-binary.js +0 -200
  859. package/dist/tmux-binary.js.map +0 -1
  860. package/dist/tmux-pane-host.d.ts +0 -26
  861. package/dist/tmux-pane-host.js +0 -25
  862. package/dist/tmux-pane-host.js.map +0 -1
  863. package/dist/transcript-needles.d.ts +0 -42
  864. package/dist/transcript-needles.js +0 -166
  865. package/dist/transcript-needles.js.map +0 -1
  866. package/dist/transcript-records.d.ts +0 -21
  867. package/dist/transcript-records.js +0 -141
  868. package/dist/transcript-records.js.map +0 -1
  869. package/dist/ui/account-identity.js +0 -27
  870. package/dist/ui/accounts-view.js +0 -214
  871. package/dist/ui/agent-proposals.js +0 -90
  872. package/dist/ui/agent-runtime-settings.js +0 -68
  873. package/dist/ui/agent-runtime.js +0 -124
  874. package/dist/ui/cli-picker.js +0 -42
  875. package/dist/ui/credential-profile-select.js +0 -54
  876. package/dist/ui/fleet-office-dialogue.d.ts +0 -30
  877. package/dist/ui/fleet-office-dialogue.js +0 -382
  878. package/dist/ui/fleet-task-menu.js +0 -188
  879. package/dist/ui/fleet-task-stats.js +0 -124
  880. package/dist/ui/fleet-task-view.js +0 -340
  881. package/dist/ui/general-location.js +0 -71
  882. package/dist/ui/hub-agent-copy.js +0 -23
  883. package/dist/ui/hub-button-actions.js +0 -65
  884. package/dist/ui/hub-chat-store.js +0 -158
  885. package/dist/ui/hub-chat-strings.js +0 -77
  886. package/dist/ui/hub-client.js +0 -329
  887. package/dist/ui/hub-owner-strings.js +0 -51
  888. package/dist/ui/hub-provider-guidance.js +0 -31
  889. package/dist/ui/hub-quota.js +0 -85
  890. package/dist/ui/hub-strings.js +0 -162
  891. package/dist/ui/hub-switcher.js +0 -27
  892. package/dist/ui/native-instance-settings.js +0 -44
  893. package/dist/ui/native-pane-recovery.js +0 -45
  894. package/dist/ui/panel-hub.js +0 -619
  895. package/dist/ui/panel-runtimes.js +0 -425
  896. package/dist/ui/panel-windows-agent.js +0 -86
  897. package/dist/ui/panel-windows-cli.js +0 -189
  898. package/dist/ui/provider-marks.js +0 -83
  899. package/dist/ui/runtime-catalog.js +0 -55
  900. package/dist/ui/runtime-commands.d.ts +0 -4
  901. package/dist/ui/runtime-commands.js +0 -59
  902. package/dist/ui/settings-access-strings.js +0 -42
  903. package/dist/ui/settings-agent-filters.js +0 -94
  904. package/dist/ui/settings-build-version.js +0 -35
  905. package/dist/ui/settings-devices.js +0 -253
  906. package/dist/ui/settings-hub-browser-certificate.js +0 -74
  907. package/dist/ui/settings-hub-membership.js +0 -72
  908. package/dist/ui/settings-hub-retention.js +0 -52
  909. package/dist/ui/settings-hub.js +0 -196
  910. package/dist/ui/settings-layout.js +0 -242
  911. package/dist/ui/settings-outside.js +0 -242
  912. package/dist/ui/settings-shared-strings.js +0 -143
  913. package/dist/ui/settings-shared.js +0 -345
  914. package/dist/ui/settings-shortcuts.js +0 -65
  915. package/dist/ui/shared/accounts.css +0 -15
  916. package/dist/ui/shared/chat-composer.js +0 -68
  917. package/dist/ui/shared/chat-md-strings.js +0 -9
  918. package/dist/ui/shared/chat-render.js +0 -682
  919. package/dist/ui/shared/chat-strings.js +0 -333
  920. package/dist/ui/shared/chat-thread.js +0 -969
  921. package/dist/ui/shared/chat-time.js +0 -80
  922. package/dist/ui/shared/html-attachment.js +0 -42
  923. package/dist/ui/shared/hub-chat.css +0 -85
  924. package/dist/ui/shared/hub-owner.css +0 -33
  925. package/dist/ui/shared/hub-quota.css +0 -8
  926. package/dist/ui/shared/hub.css +0 -71
  927. package/dist/ui/shared/machine-name.js +0 -13
  928. package/dist/ui/shared/page-head.js +0 -8
  929. package/dist/ui/shared/preview.js +0 -476
  930. package/dist/ui/shared/qrcode.module.js +0 -2237
  931. package/dist/ui/shared/runtime-install.css +0 -26
  932. package/dist/ui/shared/settings-width.js +0 -31
  933. package/dist/ui/shared/side-rail.js +0 -15
  934. package/dist/ui/shared/task-board.css +0 -95
  935. package/dist/ui/shared/vendor/qrcode-generator.LICENSE +0 -27
  936. package/dist/ui/shared/workspace.css +0 -20
  937. package/dist/ui/windows-agents-nav.js +0 -2
  938. package/dist/ui/windows-cli-catalog.js +0 -108
  939. package/dist/ui/workspace-panel.js +0 -189
  940. package/dist/ui/workspace-strings.js +0 -35
  941. package/dist/web-device-login.d.ts +0 -153
  942. package/dist/web-device-login.js +0 -278
  943. package/dist/web-device-login.js.map +0 -1
  944. package/dist/web-remote-access.d.ts +0 -152
  945. package/dist/web-remote-access.js +0 -368
  946. package/dist/web-remote-access.js.map +0 -1
  947. package/dist/windows-agents.d.ts +0 -127
  948. package/dist/windows-agents.js +0 -491
  949. package/dist/windows-agents.js.map +0 -1
  950. package/dist/windows-cli-api.d.ts +0 -34
  951. package/dist/windows-cli-api.js +0 -185
  952. package/dist/windows-cli-api.js.map +0 -1
  953. package/dist/windows-cli-providers.d.ts +0 -106
  954. package/dist/windows-cli-providers.js +0 -424
  955. package/dist/windows-cli-providers.js.map +0 -1
  956. package/dist/windows-cli-worker.d.ts +0 -83
  957. package/dist/windows-cli-worker.js +0 -570
  958. package/dist/windows-cli-worker.js.map +0 -1
  959. package/dist/windows-cli.d.ts +0 -126
  960. package/dist/windows-cli.js +0 -416
  961. package/dist/windows-cli.js.map +0 -1
  962. package/dist/windows-native-mcp.d.ts +0 -19
  963. package/dist/windows-native-mcp.js +0 -143
  964. package/dist/windows-native-mcp.js.map +0 -1
  965. package/dist/windows-pane-mcp.d.ts +0 -26
  966. package/dist/windows-pane-mcp.js +0 -187
  967. package/dist/windows-pane-mcp.js.map +0 -1
  968. package/launcher/launchd-session-type.cjs +0 -14
  969. package/launcher/tmux-bundle.cjs +0 -247
  970. package/templates/runtime-assets/conpty-LICENSE +0 -21
  971. package/templates/runtime-assets/conpty-NOTICE.md +0 -503
  972. package/templates/runtime-assets/local-pane-stage.ps1 +0 -101
  973. package/templates/runtime-assets/runtime-pane-job.ps1 +0 -116
  974. package/templates/runtime-assets/runtime-pane-private.ps1 +0 -14
  975. package/templates/runtime-assets/xterm-LICENSE +0 -21
  976. package/templates/runtime-install/install.ps1 +0 -270
@@ -1,7 +1,3 @@
1
- import { NativePaneRecoveryError } from "./native-pane-recovery.js";
2
- import { addsSecondGeneral } from "./web-only-fleet.js";
3
- import { NativePaneCrashBudget } from "./native-pane-crash-budget.js";
4
- import { localWindowsCliEnabled, remoteRuntimeEnabled } from "./runtime-switches.js";
5
1
  import { settingsUndo, undoSettingsPaths } from "./settings-transaction.js";
6
2
  import { measureSyncWork } from "./sync-work-attribution.js";
7
3
  import { REMOVED_BACKENDS, isRemovedBackend, removedBackendMessage } from "./backend/removed.js";
@@ -29,7 +25,6 @@ import { BACKEND_AUTH_CHECKS, checkAuthStatus, LOGIN_FLOWS } from "./login-flows
29
25
  import { CHAT_PROFILE_LOGIN_BACKENDS, credentialProfileEnv, credentialProfileLoginCommand } from "./backend/credential-profile.js";
30
26
  import { fetchClaudeUsage, fetchCodexUsage } from "./usage/providers.js";
31
27
  import { assertExplicitInstanceRemoval, authorizeExplicitInstanceRemoval } from "./instance-removal.js";
32
- import { WINDOWS_CREATE_REFUSED, isNativePaneInstance } from "./native-instance-registry.js";
33
28
  import { capturePendingTargetReconciliation, finishTargetReconciliation, reconcileTargetBeforeStart, RECONCILIATION_WRITE_DRAIN_TIMEOUT_MS, retireCapturedTargetWindows, } from "./delivery-reconciliation.js";
34
29
  import { noPlaceMarkers, placeRef } from "./topic-link.js";
35
30
  export { isFleetStartCommandLine } from "./fleet-lock.js";
@@ -290,7 +285,6 @@ export class InstanceLifecycle {
290
285
  activeTransition = new Map();
291
286
  /** Bumped synchronously by stop/restart: a start begun under an older epoch must not publish. */
292
287
  lifecycleEpochs = new Map();
293
- nativeExitOwners = new Map();
294
288
  /** Single wake flight per instance: concurrent wakes share it. */
295
289
  wakeFlights = new Map();
296
290
  /** Starts that begin their idle window now instead of at the persisted last inbound. */
@@ -706,108 +700,7 @@ export class InstanceLifecycle {
706
700
  this.ctx.notifyInstanceTopic(name, t(reason === "unverifiable" ? "delivery.handoff_unverified_after_restart" : "delivery.handoff_not_taken", messages.length, name));
707
701
  }, this.ctx.logger, `daemon.human_handoffs_unsettled[${name}]`));
708
702
  }
709
- nativeRecoveryPending(name) { return this.nativeExitOwners.has(name); }
710
- cancelNativeRecovery(name, owner) {
711
- for (const [target, run] of this.nativeExitOwners) {
712
- if (name !== undefined && target !== name || owner !== undefined && run.token !== owner)
713
- continue;
714
- clearTimeout(run.timer);
715
- this.nativeExitOwners.delete(target);
716
- }
717
- }
718
- resetNativeCrashBudget(name) {
719
- this.cancelNativeRecovery(name);
720
- const pin = this.ctx.nativePanePinnedSession?.(name);
721
- if (pin) {
722
- ensureInstanceDir(this.ctx.getInstanceDir(name));
723
- new NativePaneCrashBudget(join(this.ctx.getInstanceDir(name), "native-crash-state.json")).reset(pin);
724
- }
725
- }
726
- async nativePaneExited(name, daemon, data) {
727
- const config = this.ctx.fleetConfig?.instances[name], epoch = this.epochOf(name), pin = data.snapshot.sessionId, profilePin = this.ctx.nativePanePinnedSession?.(name) ?? undefined;
728
- if (!isNativePaneInstance(config) || data.name !== name || this.daemons.get(name) !== daemon || !daemon.nativePaneExitCurrent(data.snapshot, data.owner)
729
- || pin !== undefined && profilePin !== undefined && profilePin !== pin || this.nativeExitOwners.has(name) || this.ctx.isPlannedRestart())
730
- return;
731
- const token = Symbol(name), run = { token, daemon, timer: undefined };
732
- this.nativeExitOwners.set(name, run);
733
- const current = () => this.nativeExitOwners.get(name) === run && this.daemons.get(name) === daemon && this.epochOf(name) === epoch
734
- && this.ctx.fleetConfig?.instances[name] === config && ((this.ctx.nativePanePinnedSession?.(name) ?? undefined) === profilePin || profilePin === undefined && pin !== undefined && this.ctx.nativePanePinnedSession?.(name) === pin) && !this.isPaused(name) && !this.ctx.isPlannedRestart()
735
- && (config.machine_id ? remoteRuntimeEnabled() : localWindowsCliEnabled());
736
- daemon.fenceDeliveryWritesForStop();
737
- try {
738
- const decision = pin && profilePin ? new NativePaneCrashBudget(join(this.ctx.getInstanceDir(name), "native-crash-state.json")).observe(pin, data.snapshot.exitCode, config.restart_policy) : null;
739
- await this.runTransition(name, async () => {
740
- if (!current())
741
- return;
742
- if (!await daemon.waitForDeliveryWritesToDrain(RECONCILIATION_WRITE_DRAIN_TIMEOUT_MS) || !current())
743
- throw Error("Native input writes have not drained");
744
- if (this.ctx.deliveryOutbox) {
745
- this.ctx.deliveryOutbox.markTargetReconciliationPending(name, daemon.bootId);
746
- if (!await daemon.reconcileNativeDeliveries(this.ctx.deliveryOutbox, current) || !current())
747
- throw Error("Native delivery reconciliation is unconfirmed");
748
- }
749
- // Close finalizes the exact positive exit; no PID lookup or signal exists on this path.
750
- await daemon.stop({ nativePane: "close" });
751
- if (!current())
752
- return;
753
- this.ctx.eventLog?.insert(name, "native_pane_exited", { exitCode: data.snapshot.exitCode ?? null, sessionId: pin, decision: decision?.kind ?? "no-conversation", count: decision?.count ?? 0 });
754
- if (!decision) {
755
- this.ctx.holdNativePaneRecovery?.(name, new NativePaneRecoveryError({ kind: "session-unconfirmed", launchId: data.snapshot.launchId, sessionId: this.ctx.nativePanePinnedSession?.(name) ?? undefined, ...(config.backend === "codex" ? { provider: "codex" } : {}) }));
756
- this.ctx.setTopicIcon(name, "red");
757
- return;
758
- }
759
- if (decision.kind !== "retry") {
760
- if (decision.kind === "normal")
761
- await this.ctx.notifyNormalExit(name);
762
- else
763
- this.notifyIncident(name, decision.kind === "loop" ? "crash_loop" : "supervision_ended", t("inst.respawn_paused", name));
764
- this.ctx.setTopicIcon(name, "red");
765
- return;
766
- }
767
- const timer = setTimeout(() => {
768
- run.timer = undefined;
769
- void this.runTransition(name, async () => {
770
- if (!current())
771
- return;
772
- await this.stopInTransition(name, token);
773
- // Our own stop advances once. An operator's concurrent stop/config change prevents publication.
774
- if (this.nativeExitOwners.get(name) !== run || this.epochOf(name) !== epoch + 1 || this.daemons.has(name)
775
- || this.ctx.fleetConfig?.instances[name] !== config || this.ctx.nativePanePinnedSession?.(name) !== pin || this.isPaused(name) || this.ctx.isPlannedRestart()
776
- || !(config.machine_id ? remoteRuntimeEnabled() : localWindowsCliEnabled()))
777
- return;
778
- await this.startInTransition(name, config, true, { kind: "fleet-topic", backend: config.backend ?? "codex", model: config.model || "default" });
779
- if (this.nativeExitOwners.get(name) !== run || this.epochOf(name) !== epoch + 1 || this.ctx.isPlannedRestart())
780
- return;
781
- await this.ctx.connectIpcToInstance(name);
782
- }).catch(error => { if (this.nativeExitOwners.get(name) === run && !this.ctx.isPlannedRestart()) {
783
- if (this.ctx.holdNativePaneRecovery?.(name, error))
784
- return;
785
- this.ctx.logger.error({ name, err: error }, "Native conversation resume failed; its pin was retained");
786
- this.notifyIncident(name, "supervision_ended", t("inst.respawn_paused", name));
787
- } })
788
- .finally(() => { this.cancelNativeRecovery(name, token); this.ctx.onNativePaneRecoverySettled?.(name); });
789
- }, decision.delay);
790
- timer.unref?.();
791
- run.timer = timer;
792
- });
793
- if (!run.timer)
794
- this.cancelNativeRecovery(name, token);
795
- }
796
- catch (error) {
797
- if (this.nativeExitOwners.get(name) === run && !this.ctx.isPlannedRestart()) {
798
- this.ctx.logger.error({ name, err: error }, "Native crash recovery held without a fresh fallback");
799
- this.notifyIncident(name, "supervision_ended", t("inst.respawn_paused", name));
800
- }
801
- this.cancelNativeRecovery(name, token);
802
- }
803
- finally {
804
- if (!run.timer)
805
- this.ctx.onNativePaneRecoverySettled?.(name);
806
- }
807
- }
808
703
  attachIncidentHandlers(name, daemon) {
809
- if (daemon.usesNativePane?.())
810
- daemon.on("native_pane_exited", safeHandler((data) => this.nativePaneExited(name, daemon, data), this.ctx.logger, `daemon.native_pane_exited[${name}]`));
811
704
  daemon.on("capacity_nudge_cancelled", safeHandler((data) => {
812
705
  const reason = data.reason === "the user cancelled" ? t("inst.codex_retry_cancel_reason_user")
813
706
  : data.reason === "the instance was stopped, paused or respawned" || data.reason === "the instance is not running" ? t("inst.codex_retry_cancel_reason_stopped")
@@ -1106,22 +999,19 @@ export class InstanceLifecycle {
1106
999
  // labels, summaries and every exhaustive match for one picker's text.)
1107
1000
  // #1691: a prompt no table knows — what it asks (one sanitised, bounded line from the daemon, never the pane), and
1108
1001
  // that AgEnD will not press anything.
1109
- // S-35: a Windows agent's instance name is windows-<uuid>; people know it by its display name.
1110
- const label = this.ctx.fleetConfig?.instances[name]?.display_name?.trim() || name;
1111
- const place = placeRef({ kind: "instance", name }, label);
1112
1002
  if (data.unrecognised) {
1113
1003
  // #1990: the question is a pane line — it may not name a place of its own.
1114
1004
  const asked = data.question ? t("inst.unrecognised_prompt_question", noPlaceMarkers(data.question)) : "";
1115
- this.notifyParked(name, "dialog_parked", t("inst.unrecognised_prompt", label, asked), t("fleet.unrecognised_prompt", place, asked));
1005
+ this.notifyParked(name, "dialog_parked", t("inst.unrecognised_prompt", name, asked), t("fleet.unrecognised_prompt", instancePlace(name), asked));
1116
1006
  return;
1117
1007
  }
1118
1008
  const category = data.kind && data.kind !== "dialog" ? interactionCategory(data.kind, data.backend) : null;
1119
- const text = category ? t("inst.interaction_parked", label, category) : data.holdOnly
1009
+ const text = category ? t("inst.interaction_parked", name, category) : data.holdOnly
1120
1010
  // #2872: the Claude session-resume advice only for that prompt (it read as nonsense under a grok or kiro dialog).
1121
- ? t("inst.dialog_parked_hold", label, data.description) + (data.advice === "claude-resume" ? " " + t("inst.dialog_parked_hold_claude_resume") : "")
1122
- : t("inst.dialog_parked_stuck", label, data.description) + (data.advice === "claude-resume" ? " " + t("inst.dialog_parked_stuck_claude_resume") : "");
1011
+ ? t("inst.dialog_parked_hold", name, data.description) + (data.advice === "claude-resume" ? " " + t("inst.dialog_parked_hold_claude_resume") : "")
1012
+ : t("inst.dialog_parked_stuck", name, data.description) + (data.advice === "claude-resume" ? " " + t("inst.dialog_parked_stuck_claude_resume") : "");
1123
1013
  // #1990: in General, the instance's name links to its topic.
1124
- this.notifyParked(name, "dialog_parked", text, category ? t("fleet.interaction_parked", place, category) : t("fleet.dialog_parked", place, data.description));
1014
+ this.notifyParked(name, "dialog_parked", text, category ? t("fleet.interaction_parked", instancePlace(name), category) : t("fleet.dialog_parked", instancePlace(name), data.description));
1125
1015
  }, this.ctx.logger, `daemon.dialog_parked[${name}]`));
1126
1016
  // #2897: the held dialog is gone (closed, answered, auto-answered) — its notices go with it.
1127
1017
  daemon.on("dialog_unparked", safeHandler(() => this.ctx.resolveParkedNotice?.(name), this.ctx.logger, `daemon.dialog_unparked[${name}]`));
@@ -1158,21 +1048,6 @@ export class InstanceLifecycle {
1158
1048
  daemon.on("pty_error", safeHandler(async (data) => {
1159
1049
  this.ctx.eventLog?.insert(name, "pty_error", { type: data.type, action: data.action });
1160
1050
  this.ctx.logger.warn({ name, errorType: data.type, action: data.action }, `PTY error: ${data.message}`);
1161
- if (daemon.usesNativePane?.()) {
1162
- // Native credentials and quotas belong to its runner. Never probe a Linux login or group its peers with it.
1163
- if (this.daemons.get(name) !== daemon)
1164
- return;
1165
- this.notifyIncident(name, data.type, data.notice ?? data.message);
1166
- if (data.action === "pause") {
1167
- if (data.type === "auth_error") {
1168
- daemon.confirmAuthFailure?.();
1169
- daemon.requestPauseWhenIdle({ reconfirmAuth: true, reason: "auth" });
1170
- }
1171
- else
1172
- daemon.requestPauseWhenIdle({ reason: data.type === "quota" ? "quota" : "error" });
1173
- }
1174
- return;
1175
- }
1176
1051
  // Antigravity's account-level cap is visible ONLY here: the quota summary
1177
1052
  // API keeps reporting its buckets as barely used while the CLI is blocked
1178
1053
  // (verified live — 0% used and "Individual quota reached" in the same
@@ -1282,7 +1157,7 @@ export class InstanceLifecycle {
1282
1157
  if (notificationTarget)
1283
1158
  this.notifyAuthErrorOnce(name, data.message, notificationTarget);
1284
1159
  }
1285
- else if (notificationTarget && data.action !== "backoff_restart" && data.action !== "nudge_continue") {
1160
+ else if (notificationTarget && !data.quotaAdvisory && data.action !== "backoff_restart" && data.action !== "nudge_continue") {
1286
1161
  // backoff_restart / nudge_continue notifications are handled in the action branch below
1287
1162
  // with per-attempt context (attempt N/max, delay).
1288
1163
  // #2872: a notice the user asked to be one line (grok's weekly limit) is posted as it is: no "(action: …)", and no
@@ -1411,7 +1286,7 @@ export class InstanceLifecycle {
1411
1286
  else {
1412
1287
  // The marker must say auth (2b never auto-wakes a login failure); any
1413
1288
  // other pause-action error is an error pause, not an operator one.
1414
- const reason = data.type === "auth_error" ? "auth" : data.type === "quota" ? "quota" : "error";
1289
+ const reason = data.type === "auth_error" ? "auth" : "error";
1415
1290
  void this.pause(name, reason)
1416
1291
  .catch(err => this.ctx.logger.warn({ err, name }, "auth-error pause failed"))
1417
1292
  .finally(() => { if (!this.isPaused(name))
@@ -1513,12 +1388,8 @@ export class InstanceLifecycle {
1513
1388
  return this.lifecycleEpochs.get(name) ?? 0;
1514
1389
  }
1515
1390
  /** Invalidate every start/wake already running for `name` (they will not publish). */
1516
- invalidate(name, nativeOwner) {
1517
- this.ctx.invalidateNativeMcp?.(name);
1391
+ invalidate(name) {
1518
1392
  this.ctx.agentCredentials?.invalidate(name);
1519
- const native = this.nativeExitOwners.get(name);
1520
- if (native && native.token !== nativeOwner)
1521
- this.cancelNativeRecovery(name);
1522
1393
  this.lifecycleEpochs.set(name, this.epochOf(name) + 1);
1523
1394
  }
1524
1395
  /** Whether `transition` is `name`'s transition and is the one running now. */
@@ -1586,207 +1457,183 @@ export class InstanceLifecycle {
1586
1457
  const check = () => { execution?.assert(); if (this.epochOf(name) !== epoch)
1587
1458
  throw new SupersededStartError(name); };
1588
1459
  check();
1589
- this.ctx.assertGeneralBindingStart?.(name, config);
1590
1460
  assertNoSessionOomStop(this.ctx.getInstanceDir(name));
1591
1461
  const seedNow = this.activitySeedNow.delete(name);
1592
1462
  if (this.daemons.has(name)) {
1593
1463
  this.ctx.logger.info({ name }, "Instance already running, skipping");
1594
1464
  return;
1595
1465
  }
1596
- const native = isNativePaneInstance(config) ? await this.ctx.nativePaneFor?.(name, config, check) : undefined;
1597
- let nativePublished = false;
1598
- try {
1599
- check();
1600
- if (isNativePaneInstance(config) && !native)
1601
- throw Error("Native pane ownership is unavailable; no local CLI was started");
1602
- if (native)
1603
- config = { ...config, agent_mode: "mcp" };
1604
- if (!native && !existsSync(config.working_directory)) {
1605
- this.ctx.logger.info({ name, working_directory: config.working_directory }, "Working directory does not exist — creating it");
1606
- mkdirSync(config.working_directory, { recursive: true });
1607
- }
1608
- const instanceDir = this.ctx.getInstanceDir(name);
1609
- ensureInstanceDir(instanceDir);
1610
- // Daemon.start consumes the recovery marker after reading it. A start
1611
- // that fails before reaching the daemon must leave that intent intact.
1612
- const { Daemon } = await import("./daemon.js");
1613
- const { createBackend } = await import("./backend/factory.js");
1466
+ if (!existsSync(config.working_directory)) {
1467
+ this.ctx.logger.info({ name, working_directory: config.working_directory }, "Working directory does not exist — creating it");
1468
+ mkdirSync(config.working_directory, { recursive: true });
1469
+ }
1470
+ const instanceDir = this.ctx.getInstanceDir(name);
1471
+ ensureInstanceDir(instanceDir);
1472
+ // Daemon.start consumes the recovery marker after reading it. A start
1473
+ // that fails before reaching the daemon must leave that intent intact.
1474
+ const { Daemon } = await import("./daemon.js");
1475
+ const { createBackend } = await import("./backend/factory.js");
1476
+ check();
1477
+ const backendName = config.backend ?? this.ctx.fleetConfig?.defaults?.backend ?? "claude-code";
1478
+ // A removed backend (#1280): this instance refuses to start, says why and what to use instead, and the rest of
1479
+ // the fleet is unaffected. Never a fallback to another backend.
1480
+ if (isRemovedBackend(backendName)) {
1481
+ const message = removedBackendMessage(backendName, name);
1482
+ this.ctx.logger.error({ name, backend: backendName }, `Not starting: ${message}`);
1483
+ this.ctx.notifyInstanceTopic(name, t("inst.backend_removed", name, backendName, REMOVED_BACKENDS[backendName].replacement));
1484
+ return;
1485
+ }
1486
+ // Verify backend binary is in PATH before spawning. Off-loop resolve pins a
1487
+ // hint so createBackend's resolveBinary does not run synchronous `which`
1488
+ // (#1490 row 67). Missing still only logs; start continues.
1489
+ const installation = BACKEND_INSTALLATION_INFO[backendName];
1490
+ if (installation) {
1491
+ const { resolveBackendBinary } = await import("./backend-availability.js");
1492
+ const path = await resolveBackendBinary(backendName);
1493
+ noteResolvedBinary(installation.binary, path ?? installation.binary);
1614
1494
  check();
1615
- const backendName = config.backend ?? this.ctx.fleetConfig?.defaults?.backend ?? "claude-code";
1616
- // A removed backend (#1280): this instance refuses to start, says why and what to use instead, and the rest of
1617
- // the fleet is unaffected. Never a fallback to another backend.
1618
- if (isRemovedBackend(backendName)) {
1619
- const message = removedBackendMessage(backendName, name);
1620
- this.ctx.logger.error({ name, backend: backendName }, `Not starting: ${message}`);
1621
- this.ctx.notifyInstanceTopic(name, t("inst.backend_removed", name, backendName, REMOVED_BACKENDS[backendName].replacement));
1622
- return;
1495
+ if (!path) {
1496
+ this.ctx.logger.error({ binary: installation.binary, backend: backendName, instance: name }, `Backend binary "${installation.binary}" not found in PATH`);
1623
1497
  }
1624
- // Verify backend binary is in PATH before spawning. Off-loop resolve pins a
1625
- // hint so createBackend's resolveBinary does not run synchronous `which`
1626
- // (#1490 row 67). Missing still only logs; start continues.
1627
- const installation = BACKEND_INSTALLATION_INFO[backendName];
1628
- // alpha: a native Windows pane's CLI is on that PC — nothing to look for on this one.
1629
- if (!native && installation) {
1630
- const { resolveBackendBinary } = await import("./backend-availability.js");
1631
- const path = await resolveBackendBinary(backendName);
1632
- noteResolvedBinary(installation.binary, path ?? installation.binary);
1633
- check();
1634
- if (!path) {
1635
- this.ctx.logger.error({ binary: installation.binary, backend: backendName, instance: name }, `Backend binary "${installation.binary}" not found in PATH`);
1636
- }
1637
- }
1638
- // claude-code refuses --dangerously-skip-permissions as root — fail fast
1639
- // Unless IS_SANDBOX=1 is set (recognized sandbox environment)
1640
- if (!native && process.getuid?.() === 0 && backendName === "claude-code" && !process.env.IS_SANDBOX) {
1641
- const msg = `⚠️ claude-code cannot run with --dangerously-skip-permissions as root. Set IS_SANDBOX=1 or use a non-root user.`;
1642
- this.ctx.logger.error({ name, backend: backendName }, msg);
1643
- this.ctx.notifyInstanceTopic(name, t("inst.root_skip_perms"));
1498
+ }
1499
+ // claude-code refuses --dangerously-skip-permissions as root — fail fast
1500
+ // Unless IS_SANDBOX=1 is set (recognized sandbox environment)
1501
+ if (process.getuid?.() === 0 && backendName === "claude-code" && !process.env.IS_SANDBOX) {
1502
+ const msg = `⚠️ claude-code cannot run with --dangerously-skip-permissions as root. Set IS_SANDBOX=1 or use a non-root user.`;
1503
+ this.ctx.logger.error({ name, backend: backendName }, msg);
1504
+ this.ctx.notifyInstanceTopic(name, t("inst.root_skip_perms"));
1505
+ return;
1506
+ }
1507
+ const backend = createBackend(backendName, instanceDir);
1508
+ const daemon = new Daemon(name, config, instanceDir, topicMode, backend, this.ctx.controlClient ?? undefined, this.ctx.logger, runtimeIdentity ?? {
1509
+ kind: "fleet-topic",
1510
+ backend: backendName,
1511
+ model: config.model ?? "default",
1512
+ }, this.ctx.spawnGate, this.ctx.stormWindow, this.ctx.backendOutage);
1513
+ // Register before start: a pre-launch refusal has no published daemon or later incident handlers.
1514
+ daemon.on("kiro_compatibility_hold", (message) => {
1515
+ const owner = this.daemons.get(name);
1516
+ if (owner ? owner !== daemon : this.epochOf(name) !== epoch)
1644
1517
  return;
1645
- }
1646
- const backend = native?.backend ?? createBackend(backendName, instanceDir);
1647
- const daemon = new Daemon(name, config, instanceDir, topicMode, backend, this.ctx.controlClient ?? undefined, this.ctx.logger, runtimeIdentity ?? {
1648
- kind: "fleet-topic",
1649
- backend: backendName,
1650
- model: config.model ?? "default",
1651
- }, this.ctx.spawnGate, this.ctx.stormWindow, this.ctx.backendOutage);
1652
- if (native) {
1653
- daemon.setNativePaneLifecycle(native);
1654
- native.bindDaemon?.(daemon);
1655
- }
1656
- // Register before start: a pre-launch refusal has no published daemon or later incident handlers.
1657
- daemon.on("kiro_compatibility_hold", (message) => {
1658
- const owner = this.daemons.get(name);
1659
- if (owner ? owner !== daemon : this.epochOf(name) !== epoch)
1660
- return;
1661
- this.ctx.setKiroCompatibilityHold?.(name, message);
1662
- });
1663
- daemon.setAgentCredentialIssuer?.(token => {
1664
- if (this.epochOf(name) !== epoch)
1665
- throw new SupersededStartError(name);
1666
- this.ctx.agentCredentials?.issue(name, token);
1667
- });
1668
- daemon.setDeliveryOutboxPort(this.ctx.deliveryOutbox ?? undefined);
1669
- daemon.setWorkLeaseCheck(() => this.hasWorkLease(name));
1670
- if (seedNow)
1671
- daemon.seedActivityNow();
1672
- // Read at each spawn so a fleet.yaml reload is honoured (#984).
1673
- daemon.setPeerWorkingDirectories(backendName === "kiro-cli"
1674
- ? this.ctx.kiroPeerWorkingDirectories ? () => this.ctx.kiroPeerWorkingDirectories(name) : undefined
1675
- : () => peerWorkingDirectories(this.ctx.fleetConfig, name, backendName));
1676
- daemon.setStatusEmojiAvoidList(() => this.ctx.statusEmojiAvoidList?.(name));
1677
- // Before start: the first spawn builds the command and emits its launch
1678
- // warning synchronously inside Daemon.start, long before
1679
- // attachIncidentHandlers runs (#984).
1680
- this.attachLaunchWarningHandler(name, daemon);
1681
- this.attachContextLostHandler(name, daemon);
1682
- daemon.on("durable_delivery_deferred", (data) => {
1683
- // A daemon without its outbox port cannot update the row directly. The
1684
- // lifecycle owns the same-process store and records a bounded pre-write
1685
- // retry instead of leaving the lane in delivering forever.
1686
- this.ctx.deliveryOutbox?.retryBeforeBegin(data.deliveryId, data.targetBootId, data.attemptNo, data.reason, 5_000);
1687
- });
1688
- daemon.on("mcp_tool_response_written", (data) => {
1689
- if (!data.operationId || data.daemonBootId !== daemon.bootId)
1690
- return;
1691
- try {
1692
- this.ctx.deliveryOutbox?.markResponseDelivered(name, data.operationId);
1693
- }
1694
- catch (err) {
1695
- this.ctx.logger.error({ name, operationId: data.operationId, err }, "Could not persist MCP response-delivered marker");
1696
- }
1697
- });
1698
- this.applyCapacityBackoffBaseline(name, backendName, daemon);
1699
- // Catch errors from daemon internals (e.g. IPC server) to prevent crashing the fleet process
1700
- daemon.on("error", (err) => {
1701
- this.ctx.logger.error({ err, name }, "Daemon emitted error — instance isolated");
1702
- });
1703
- if (this.ctx.deliveryOutbox) {
1704
- // Fence older-generation submissions and reconcile them before Daemon.start
1705
- // reaches Strategy A's unconditional old-window kill.
1706
- const recovered = this.ctx.deliveryOutbox.recoverTargetGeneration(name, daemon.bootId);
1707
- if (recovered.queued || recovered.reconciliationPending) {
1708
- this.ctx.logger.warn({ name, ...recovered }, "Preparing durable outbox rows before target generation start");
1709
- }
1710
- const reconciled = native
1711
- ? { uncertain: 0, safeToStart: await this.ctx.reconcileNativePaneBeforeStart?.(name, daemon) === true }
1712
- : await reconcileTargetBeforeStart(this.ctx.deliveryOutbox, name, instanceDir, this.ctx.logger);
1713
- if (reconciled.uncertain > 0) {
1714
- this.ctx.logger.warn({ name, ...reconciled }, "Some durable submissions need operator reconciliation");
1715
- }
1716
- if (!reconciled.safeToStart) {
1717
- const message = t("delivery.restart_blocked", name);
1718
- this.ctx.logger.error({ name, ...reconciled }, message);
1719
- this.ctx.notifyFleetError?.(message);
1720
- await daemon.abortStartup().catch(err => this.ctx.logger.warn({ err, name }, "Failed to dispose daemon after reconciliation could not verify old CLI exit"));
1721
- throw new Error(message);
1722
- }
1723
- }
1724
- if (this.epochOf(name) !== epoch || execution && !execution.current()) {
1725
- // A stop/restart arrived while this start was reconciling: do not spawn.
1726
- await daemon.abortStartup().catch(() => { });
1518
+ this.ctx.setKiroCompatibilityHold?.(name, message);
1519
+ });
1520
+ daemon.setAgentCredentialIssuer?.(token => {
1521
+ if (this.epochOf(name) !== epoch)
1727
1522
  throw new SupersededStartError(name);
1523
+ this.ctx.agentCredentials?.issue(name, token);
1524
+ });
1525
+ daemon.setDeliveryOutboxPort(this.ctx.deliveryOutbox ?? undefined);
1526
+ daemon.setWorkLeaseCheck(() => this.hasWorkLease(name));
1527
+ if (seedNow)
1528
+ daemon.seedActivityNow();
1529
+ // Read at each spawn so a fleet.yaml reload is honoured (#984).
1530
+ daemon.setPeerWorkingDirectories(backendName === "kiro-cli"
1531
+ ? this.ctx.kiroPeerWorkingDirectories ? () => this.ctx.kiroPeerWorkingDirectories(name) : undefined
1532
+ : () => peerWorkingDirectories(this.ctx.fleetConfig, name, backendName));
1533
+ daemon.setStatusEmojiAvoidList(() => this.ctx.statusEmojiAvoidList?.(name));
1534
+ // Before start: the first spawn builds the command and emits its launch
1535
+ // warning synchronously inside Daemon.start, long before
1536
+ // attachIncidentHandlers runs (#984).
1537
+ this.attachLaunchWarningHandler(name, daemon);
1538
+ this.attachContextLostHandler(name, daemon);
1539
+ daemon.on("durable_delivery_deferred", (data) => {
1540
+ // A daemon without its outbox port cannot update the row directly. The
1541
+ // lifecycle owns the same-process store and records a bounded pre-write
1542
+ // retry instead of leaving the lane in delivering forever.
1543
+ this.ctx.deliveryOutbox?.retryBeforeBegin(data.deliveryId, data.targetBootId, data.attemptNo, data.reason, 5_000);
1544
+ });
1545
+ daemon.on("mcp_tool_response_written", (data) => {
1546
+ if (!data.operationId || data.daemonBootId !== daemon.bootId)
1547
+ return;
1548
+ try {
1549
+ this.ctx.deliveryOutbox?.markResponseDelivered(name, data.operationId);
1728
1550
  }
1729
- // The startup scan can raise an incident (sign-in screen, fatal modal)
1730
- // before the handlers below exist and before this daemon is registered;
1731
- // hold it and deliver it once both are true.
1732
- daemon.holdStartupIncidents?.();
1733
- await InstanceLifecycle.startOrDispose(daemon, name, this.ctx.logger, execution || native ? check : undefined);
1734
- // Publication fence (Phase 2a): the spawn cannot be cancelled, so a stop or
1735
- // restart requested meanwhile has been waiting behind this transition. A
1736
- // superseded start must not register, signal ready, or keep its window.
1737
- if (this.epochOf(name) !== epoch || execution && !execution.current()) {
1738
- await daemon.abortStartup().catch(err => this.ctx.logger.warn({ err, name }, "Failed to dispose a superseded start"));
1739
- throw new SupersededStartError(name);
1551
+ catch (err) {
1552
+ this.ctx.logger.error({ name, operationId: data.operationId, err }, "Could not persist MCP response-delivered marker");
1740
1553
  }
1741
- this.capacityBackoffBaselines.delete(name);
1742
- this.daemons.set(name, daemon);
1743
- nativePublished = !!native;
1744
- published?.(daemon); // Exact publication, synchronously after the ownership fence.
1745
- if (seedNow)
1746
- this.noteWokeForWork(name);
1747
- this.ctx.onDaemonReady?.(name, daemon.bootId);
1748
- daemon.on("auto_pause_requested", safeHandler(async (data) => {
1749
- await this.pause(name, data?.reason ?? "idle");
1750
- }, this.ctx.logger, `autoPause[${name}]`));
1751
- daemon.on("auto_paused", (data) => {
1752
- this.ctx.eventLog?.insert(name, "instance_paused", { reason: "idle", paused_at: data.pausedAt });
1753
- this.ctx.logger.info({ name, pausedAt: data.pausedAt }, "Instance auto-paused after idle timeout");
1754
- this.ctx.setTopicIcon(name, "remove");
1755
- this.ctx.onAttentionChanged?.(name);
1756
- });
1757
- daemon.on("auto_woke", () => {
1758
- this.ctx.onAttentionChanged?.(name);
1759
- this.ctx.eventLog?.insert(name, "instance_resumed", { reason: "message" });
1760
- this.ctx.logger.info({ name }, "Instance auto-woke for delivery");
1761
- this.ctx.setTopicIcon(name, "green");
1762
- this.ctx.touchActivity(name);
1763
- });
1764
- this.ctx.setKiroCompatibilityHold?.(name, null);
1765
- this.attachIncidentHandlers(name, daemon);
1766
- // #2897: a new daemon starts with no dialog held; a notice the last one left (a crash, a respawn) is out of date.
1767
- this.ctx.resolveParkedNotice?.(name);
1768
- daemon.on("pty_recovered", safeHandler((data) => {
1769
- const mins = Math.floor(data.downtime_s / 60);
1770
- const secs = data.downtime_s % 60;
1771
- const duration = mins > 0 ? `${mins}m ${secs}s` : `${secs}s`;
1772
- this.ctx.eventLog?.insert(name, "pty_recovered", { downtime_s: data.downtime_s });
1773
- this.ctx.logger.info({ name, downtime_s: data.downtime_s }, "PTY error recovered");
1774
- this.ctx.notifyInstanceTopic(name, t("inst.recovered", name, duration));
1775
- this.ctx.webhookEmit("pty_recovered", name, { downtime_s: data.downtime_s });
1776
- }, this.ctx.logger, `daemon.pty_recovered[${name}]`));
1777
- this.attachDeliveryStatusHandlers(name, daemon);
1554
+ });
1555
+ this.applyCapacityBackoffBaseline(name, backendName, daemon);
1556
+ // Catch errors from daemon internals (e.g. IPC server) to prevent crashing the fleet process
1557
+ daemon.on("error", (err) => {
1558
+ this.ctx.logger.error({ err, name }, "Daemon emitted error — instance isolated");
1559
+ });
1560
+ if (this.ctx.deliveryOutbox) {
1561
+ // Fence older-generation submissions and reconcile them before Daemon.start
1562
+ // reaches Strategy A's unconditional old-window kill.
1563
+ const recovered = this.ctx.deliveryOutbox.recoverTargetGeneration(name, daemon.bootId);
1564
+ if (recovered.queued || recovered.reconciliationPending) {
1565
+ this.ctx.logger.warn({ name, ...recovered }, "Preparing durable outbox rows before target generation start");
1566
+ }
1567
+ const reconciled = await reconcileTargetBeforeStart(this.ctx.deliveryOutbox, name, instanceDir, this.ctx.logger);
1568
+ if (reconciled.uncertain > 0) {
1569
+ this.ctx.logger.warn({ name, ...reconciled }, "Some durable submissions need operator reconciliation");
1570
+ }
1571
+ if (!reconciled.safeToStart) {
1572
+ const message = t("delivery.restart_blocked", name);
1573
+ this.ctx.logger.error({ name, ...reconciled }, message);
1574
+ this.ctx.notifyFleetError?.(message);
1575
+ await daemon.abortStartup().catch(err => this.ctx.logger.warn({ err, name }, "Failed to dispose daemon after reconciliation could not verify old CLI exit"));
1576
+ throw new Error(message);
1577
+ }
1578
+ }
1579
+ if (this.epochOf(name) !== epoch || execution && !execution.current()) {
1580
+ // A stop/restart arrived while this start was reconciling: do not spawn.
1581
+ await daemon.abortStartup().catch(() => { });
1582
+ throw new SupersededStartError(name);
1583
+ }
1584
+ // The startup scan can raise an incident (sign-in screen, fatal modal)
1585
+ // before the handlers below exist and before this daemon is registered;
1586
+ // hold it and deliver it once both are true.
1587
+ daemon.holdStartupIncidents?.();
1588
+ await InstanceLifecycle.startOrDispose(daemon, name, this.ctx.logger, execution ? check : undefined);
1589
+ // Publication fence (Phase 2a): the spawn cannot be cancelled, so a stop or
1590
+ // restart requested meanwhile has been waiting behind this transition. A
1591
+ // superseded start must not register, signal ready, or keep its window.
1592
+ if (this.epochOf(name) !== epoch || execution && !execution.current()) {
1593
+ await daemon.abortStartup().catch(err => this.ctx.logger.warn({ err, name }, "Failed to dispose a superseded start"));
1594
+ throw new SupersededStartError(name);
1595
+ }
1596
+ this.capacityBackoffBaselines.delete(name);
1597
+ this.daemons.set(name, daemon);
1598
+ published?.(daemon); // Exact publication, synchronously after the ownership fence.
1599
+ if (seedNow)
1600
+ this.noteWokeForWork(name);
1601
+ this.ctx.onDaemonReady?.(name, daemon.bootId);
1602
+ daemon.on("auto_pause_requested", safeHandler(async (data) => {
1603
+ await this.pause(name, data?.reason ?? "idle");
1604
+ }, this.ctx.logger, `autoPause[${name}]`));
1605
+ daemon.on("auto_paused", (data) => {
1606
+ this.ctx.eventLog?.insert(name, "instance_paused", { reason: "idle", paused_at: data.pausedAt });
1607
+ this.ctx.logger.info({ name, pausedAt: data.pausedAt }, "Instance auto-paused after idle timeout");
1608
+ this.ctx.setTopicIcon(name, "remove");
1609
+ this.ctx.onAttentionChanged?.(name);
1610
+ });
1611
+ daemon.on("auto_woke", () => {
1612
+ this.ctx.onAttentionChanged?.(name);
1613
+ this.ctx.eventLog?.insert(name, "instance_resumed", { reason: "message" });
1614
+ this.ctx.logger.info({ name }, "Instance auto-woke for delivery");
1778
1615
  this.ctx.setTopicIcon(name, "green");
1779
1616
  this.ctx.touchActivity(name);
1780
- // Last: handlers attached and daemon registered, so a held startup incident
1781
- // (pause, notify) finds both.
1782
- daemon.releaseStartupIncidents?.();
1783
- }
1784
- catch (error) {
1785
- // The factory registered helper authority before acquire(). A superseded pre-window start must release it too.
1786
- if (native && !nativePublished)
1787
- await native.release("detach").catch(err => this.ctx.logger.warn({ name, err }, "Prepared native authority could not detach"));
1788
- throw error;
1789
- }
1617
+ });
1618
+ this.ctx.setKiroCompatibilityHold?.(name, null);
1619
+ this.attachIncidentHandlers(name, daemon);
1620
+ // #2897: a new daemon starts with no dialog held; a notice the last one left (a crash, a respawn) is out of date.
1621
+ this.ctx.resolveParkedNotice?.(name);
1622
+ daemon.on("pty_recovered", safeHandler((data) => {
1623
+ const mins = Math.floor(data.downtime_s / 60);
1624
+ const secs = data.downtime_s % 60;
1625
+ const duration = mins > 0 ? `${mins}m ${secs}s` : `${secs}s`;
1626
+ this.ctx.eventLog?.insert(name, "pty_recovered", { downtime_s: data.downtime_s });
1627
+ this.ctx.logger.info({ name, downtime_s: data.downtime_s }, "PTY error recovered");
1628
+ this.ctx.notifyInstanceTopic(name, t("inst.recovered", name, duration));
1629
+ this.ctx.webhookEmit("pty_recovered", name, { downtime_s: data.downtime_s });
1630
+ }, this.ctx.logger, `daemon.pty_recovered[${name}]`));
1631
+ this.attachDeliveryStatusHandlers(name, daemon);
1632
+ this.ctx.setTopicIcon(name, "green");
1633
+ this.ctx.touchActivity(name);
1634
+ // Last: handlers attached and daemon registered, so a held startup incident
1635
+ // (pause, notify) finds both.
1636
+ daemon.releaseStartupIncidents?.();
1790
1637
  }
1791
1638
  isPaused(name) {
1792
1639
  return this.daemons.get(name)?.isPaused ?? hasPausedMarker(this.ctx.getInstanceDir(name));
@@ -1795,30 +1642,11 @@ export class InstanceLifecycle {
1795
1642
  return this.daemons.get(name)?.lastPausedAt ?? readPausedAt(this.ctx.getInstanceDir(name));
1796
1643
  }
1797
1644
  async pause(name, reason = "operator", admission) {
1798
- this.cancelNativeRecovery(name);
1799
1645
  // Final backstop shared by slash, MCP, Settings, warm-cap, and any future
1800
1646
  // caller. General is the coordinator and must remain resident to route work.
1801
1647
  if (isGeneralInstance(this.ctx.fleetConfig, name)) {
1802
1648
  throw new Error(GENERAL_PAUSE_ERROR);
1803
1649
  }
1804
- const nativeDaemon = this.daemons.get(name);
1805
- if (nativeDaemon?.usesNativePane?.()) {
1806
- if (admission && !admission.current())
1807
- return;
1808
- await this.runTransition(name, async () => {
1809
- if (this.daemons.get(name) !== nativeDaemon || admission && !admission.current())
1810
- return;
1811
- if (!nativeDaemon.nativePaneHasExited() && (!await nativeDaemon.nativePauseReady(admission) || this.daemons.get(name) !== nativeDaemon || !nativeDaemon.nativePauseStillReady()))
1812
- return;
1813
- if (this.daemons.get(name) !== nativeDaemon || admission && !admission.current())
1814
- return;
1815
- await this.stopInTransition(name);
1816
- this.ctx.setNativePanePaused?.(name, true);
1817
- writePausedMarker(this.ctx.getInstanceDir(name), Date.now(), reason);
1818
- this.ctx.onAttentionChanged?.(name);
1819
- });
1820
- return;
1821
- }
1822
1650
  // B1: cancel any pending capacity backoff — a user-initiated pause should
1823
1651
  // not be undone by a queued restart 30–120s later.
1824
1652
  const pendingBackoff = this.capacityBackoffTimers.get(name);
@@ -1902,21 +1730,16 @@ export class InstanceLifecycle {
1902
1730
  clearPausedMarker(instanceDir);
1903
1731
  this.markActivitySeedNow(name);
1904
1732
  try {
1905
- if (isNativePaneInstance(this.ctx.fleetConfig?.instances[name]))
1906
- this.ctx.setNativePanePaused?.(name, false);
1907
1733
  await this.ctx.startPersistedPausedInstance(name, transition);
1908
1734
  }
1909
1735
  catch (err) {
1910
1736
  this.clearActivitySeedNow(name);
1911
1737
  writePausedMarker(instanceDir, pausedAt, reason);
1912
- if (isNativePaneInstance(this.ctx.fleetConfig?.instances[name]))
1913
- this.ctx.setNativePanePaused?.(name, true);
1914
1738
  throw err;
1915
1739
  }
1916
1740
  }
1917
1741
  this.noteWokeForWork(name);
1918
- if (!isNativePaneInstance(this.ctx.fleetConfig?.instances[name]))
1919
- this.ctx.startStatuslineWatcher(name);
1742
+ this.ctx.startStatuslineWatcher(name);
1920
1743
  }
1921
1744
  /**
1922
1745
  * Ownership boundary for a daemon that is not yet registered: if start()
@@ -1950,8 +1773,8 @@ export class InstanceLifecycle {
1950
1773
  this.invalidate(name);
1951
1774
  return this.runTransition(name, () => this.stopInTransition(name), transition);
1952
1775
  }
1953
- async stopInTransition(name, nativeOwner) {
1954
- this.invalidate(name, nativeOwner);
1776
+ async stopInTransition(name) {
1777
+ this.invalidate(name);
1955
1778
  this.wokeAt.delete(name);
1956
1779
  this.ctx.setTopicIcon(name, "remove");
1957
1780
  // #2897: a stopped instance holds no dialog — its "needs a human" notices are out of date.
@@ -1976,20 +1799,11 @@ export class InstanceLifecycle {
1976
1799
  if (!drained)
1977
1800
  this.ctx.logger.warn({ name }, "Pane write did not drain before durable reconciliation capture; relying on the Enter write-ahead fence");
1978
1801
  this.ctx.deliveryOutbox.markTargetReconciliationPending(name, daemon.bootId);
1979
- if (daemon.usesNativePane?.()) {
1980
- const reconciled = await daemon.reconcileNativeDeliveries(this.ctx.deliveryOutbox, () => this.daemons.get(name) === daemon);
1981
- if (!reconciled)
1982
- this.ctx.logger.warn({ name }, "Native stop could not settle every old delivery; retained attempts will not be replayed");
1983
- }
1984
- if (!daemon.usesNativePane?.())
1985
- captured = await capturePendingTargetReconciliation(this.ctx.deliveryOutbox, name, this.ctx.getInstanceDir(name), getTmuxSession(), this.ctx.logger);
1802
+ captured = await capturePendingTargetReconciliation(this.ctx.deliveryOutbox, name, this.ctx.getInstanceDir(name), getTmuxSession(), this.ctx.logger);
1986
1803
  }
1987
1804
  let stopped = false;
1988
1805
  try {
1989
- if (daemon.usesNativePane?.())
1990
- await daemon.stop({ nativePane: "close" });
1991
- else
1992
- await daemon.stop();
1806
+ await daemon.stop();
1993
1807
  stopped = true;
1994
1808
  }
1995
1809
  finally {
@@ -2019,11 +1833,6 @@ export class InstanceLifecycle {
2019
1833
  if (this.daemons.get(name) === daemon)
2020
1834
  this.daemons.delete(name);
2021
1835
  }
2022
- else if (isNativePaneInstance(this.ctx.fleetConfig?.instances[name])) {
2023
- if (!this.ctx.closeRetainedNativePane)
2024
- throw Error("Retained native pane owner is unavailable; no local PID was signalled");
2025
- await this.ctx.closeRetainedNativePane(name);
2026
- }
2027
1836
  else {
2028
1837
  const instanceDir = this.ctx.getInstanceDir(name);
2029
1838
  const pidPath = join(instanceDir, "daemon.pid");
@@ -2221,27 +2030,6 @@ export class InstanceLifecycle {
2221
2030
  async handleCreate(args, respond, adapterId, execution) {
2222
2031
  const check = () => execution?.assert();
2223
2032
  check();
2224
- if (args.runtime !== undefined && args.runtime !== "wsl" && args.runtime !== "windows") {
2225
- respond(null, "Unknown instance runtime");
2226
- return;
2227
- }
2228
- // M-2239 P1-1: a Windows agent is created only from the admin web dashboard (native-instance-api.ts), never through
2229
- // create_instance, deploy_template or any other path that reaches here — an agent holding create_instance could
2230
- // otherwise start one on the Windows host, in any drive path, with write access.
2231
- if (args.runtime === "windows") {
2232
- respond(null, WINDOWS_CREATE_REFUSED);
2233
- return;
2234
- }
2235
- // #3021 review: on a fleet with no chat connection a new agent never becomes a second General (it would inherit
2236
- // defaults.general_topic: true while the fleet has one).
2237
- if (this.ctx.fleetConfig && addsSecondGeneral(this.ctx.fleetConfig)) {
2238
- respond(null, "one_general: this fleet already has its General, and a new agent would inherit defaults.general_topic: true — set it to false in the defaults first");
2239
- return;
2240
- }
2241
- if (args.sandbox !== undefined) {
2242
- respond(null, "sandbox is supported only by the Windows runtime");
2243
- return;
2244
- }
2245
2033
  const rawDirectory = args.directory;
2246
2034
  const directory = rawDirectory ? rawDirectory.replace(/^~/, process.env.HOME || "~") : undefined;
2247
2035
  const topicName = args.topic_name || (directory ? basename(directory) : undefined);
@@ -2535,11 +2323,6 @@ export class InstanceLifecycle {
2535
2323
  createdConfig = instanceConfig;
2536
2324
  const beforeCreate = structuredClone(this.ctx.fleetConfig);
2537
2325
  const persist = () => {
2538
- // #3021 review r2: asked again at the commit, after every await — two creates that both saw no General at entry
2539
- // (defaults.general_topic: true) must not both become one.
2540
- if (addsSecondGeneral(this.ctx.fleetConfig, { general_topic: instanceConfig.general_topic })) {
2541
- throw new Error("one_general: this fleet already has its General, and a new agent would inherit defaults.general_topic: true — set it to false in the defaults first");
2542
- }
2543
2326
  this.ctx.fleetConfig.instances[newInstanceName] = instanceConfig;
2544
2327
  if (createdTopicId != null)
2545
2328
  this.ctx.routing.register(createdTopicId, { kind: "instance", name: newInstanceName });