@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,382 +0,0 @@
1
- // #2861 (design: hxhsandy): the Office's dialogue box — a visual-novel box at the foot of the stage when a person talks
2
- // to an agent shown there. docs/design/office-dialogue-2861.md.
3
- //
4
- // - Heard: a person's message (the stream's `message`, role "user") → the box slides up: their portrait on the left,
5
- // their name, their words (the first TEXT_MAX characters, typed out).
6
- // - Working: while the agent works, its portrait on the right and a status line (its own office_set line, else
7
- // "Working…").
8
- // - Answered: its reply (role "agent") replaces the line (TEXT_MAX), the speaker is the agent; the box fades HOLD_MS
9
- // later. Concurrent conversations queue, newest first; the box shows the first one it may and "+N" for the rest.
10
- // - On a share link (`share`: the host's `talk`, never any text): a faceless visitor, "Received a message", "Replied".
11
- // - Only news: a message stamped within FRESH_MS of the server's clock (a replay on reconnect, a poll's catch-up, is not).
12
- // - Drawn on the Office's canvas, in the stage's CSS px, after the scene (it never pans or zooms with it), so it needs no
13
- // CSS rule (a tab opened before an upgrade keeps its old app.css: the box is still right).
14
- // - Reduced motion: no slide, no typing, no fade.
15
- // Off unless the Office bar's Dialogue box is ticked (per browser): then nothing here runs at all.
16
- import { own, PORTRAIT_STATES } from "./fleet-office-pack.js";
17
-
18
- export const DLG = {
19
- TEXT_MAX: 120,
20
- /** A message older than this on the server's clock is not news (a replay, a catch-up). */
21
- FRESH_MS: 90_000,
22
- /** How long an answer stays before it fades. */
23
- HOLD_MS: 6000,
24
- FADE_MS: 500,
25
- SLIDE_MS: 220,
26
- /** A conversation with no answer goes after this. */
27
- WAIT_MS: 180_000,
28
- /** Typed out at this many characters a second. */
29
- CPS: 40,
30
- /** At most this many conversations are kept (the oldest go). */
31
- MAX: 24,
32
- };
33
-
34
- const GRAPHEMES = typeof Intl !== "undefined" && Intl.Segmenter ? new Intl.Segmenter(undefined, { granularity: "grapheme" }) : null;
35
- const chars = (s) => (GRAPHEMES ? [...GRAPHEMES.segment(s)].map((x) => x.segment) : [...s]);
36
-
37
- /**
38
- * What the box says of a message: one line of plain words — whitespace folded, a code block as "…", the markdown marks
39
- * at a line's start (#, >, *, -) and emphasis marks dropped — cut to `max` characters with "…".
40
- */
41
- export function clip(text, max = DLG.TEXT_MAX) {
42
- let s = String(text ?? "").replace(/```[\s\S]*?(```|$)/g, " … ");
43
- s = s.split("\n").map((l) => l.replace(/^\s*(?:#{1,6}\s+|>\s?|[*+-]\s+|\d+\.\s+)/, "")).join(" ");
44
- s = s.replace(/(\*\*|__|~~|`)/g, "").replace(/\s+/g, " ").trim();
45
- const c = chars(s);
46
- return c.length > max ? `${c.slice(0, max - 1).join("").trimEnd()}…` : s;
47
- }
48
-
49
- /**
50
- * The conversations: `heard(instance, person, text, t)` a person's message (`person` { name, account } — null on a
51
- * share: no one named); `answered(instance, text, t)` the agent's reply (none heard: nothing); `sweep(t)` drops what is
52
- * over; `list()` newest first. `t` is the page's monotonic clock. Each change bumps `rev()`.
53
- */
54
- export function createDialogue() {
55
- const convs = new Map();
56
- let seq = 0, rev = 0;
57
- return {
58
- heard(instance, person, text, t) {
59
- if (typeof instance !== "string" || !instance) return null;
60
- convs.delete(instance);
61
- const c = { id: ++seq, instance, person: person || null, text: text == null ? null : clip(text), reply: null, heardAt: t, answeredAt: null, shownAt: null, replyShownAt: null };
62
- convs.set(instance, c);
63
- while (convs.size > DLG.MAX) convs.delete(convs.keys().next().value);
64
- rev++;
65
- return c;
66
- },
67
- answered(instance, text, t) {
68
- const c = convs.get(instance);
69
- if (!c || c.answeredAt !== null) return null;
70
- c.reply = text == null ? null : clip(text);
71
- c.answeredAt = t;
72
- rev++;
73
- return c;
74
- },
75
- /**
76
- * Drop what is over; whether anything went. An answer shown: HOLD_MS (and its fade) from when the box first showed
77
- * it (stageOf's replyShownAt) — never from when it came, so one queued behind another is seen in full when its turn
78
- * comes; an answer never shown (its agent not drawn here, or waiting in the queue): WAIT_MS after it came. A
79
- * conversation never answered: WAIT_MS after it was heard.
80
- */
81
- sweep(t, still = false) {
82
- let gone = false;
83
- for (const [k, c] of convs) {
84
- const over = c.answeredAt === null ? t >= c.heardAt + DLG.WAIT_MS
85
- : c.replyShownAt !== null ? t >= c.replyShownAt + DLG.HOLD_MS + (still ? 0 : DLG.FADE_MS) : t >= c.answeredAt + DLG.WAIT_MS;
86
- if (over) { convs.delete(k); gone = true; }
87
- }
88
- if (gone) rev++;
89
- return gone;
90
- },
91
- list: () => [...convs.values()].sort((a, b) => b.heardAt - a.heardAt || b.id - a.id),
92
- size: () => convs.size,
93
- rev: () => rev,
94
- clear() { if (convs.size) { convs.clear(); rev++; } },
95
- };
96
- }
97
-
98
- /**
99
- * The conversation the box shows and how many more wait: the newest whose agent is shown here (`shown(name)`) and
100
- * awake (`asleep(name)` false: paused, stopped, or in bed at bedtime — it waits until they wake to work, or expires);
101
- * `more`: the others shown here.
102
- */
103
- export function pickFront(list, shown, asleep) {
104
- const here = list.filter((c) => shown(c.instance));
105
- const front = here.find((c) => !asleep(c.instance)) || null;
106
- return { front, more: front ? here.length - 1 : 0 };
107
- }
108
-
109
- /**
110
- * A stream `message` as the box takes it: { kind: "heard", instance, person, text } (a person's: role "user") or
111
- * { kind: "answered", instance, text } (the agent's reply: role "agent"), when it is news — stamped within FRESH_MS of
112
- * the server's time `serverNow`; else null. A status line is never one.
113
- */
114
- export function messageOf(m, serverNow) {
115
- if (!m || typeof m !== "object" || typeof m.instance !== "string" || !m.instance) return null;
116
- if (m.role !== "user" && m.role !== "agent") return null;
117
- const at = typeof m.ts === "string" ? Date.parse(m.ts) : NaN;
118
- if (!Number.isFinite(at) || Math.abs(serverNow - at) > DLG.FRESH_MS) return null;
119
- const files = Array.isArray(m.attachments) && m.attachments.length > 0;
120
- const said = m.click && typeof m.click.label === "string" ? m.click.label : typeof m.text === "string" ? m.text : "";
121
- const text = said.trim() ? said : files ? "" : null;
122
- if (text === null) return null;
123
- if (m.role === "agent") return { kind: "answered", instance: m.instance, text, files: files && !said.trim() };
124
- const name = typeof m.sender === "string" && m.sender.trim() ? m.sender.trim() : "";
125
- const account = typeof m.from === "string" && /^[^\s:]{1,64}:[^\s:]{1,128}$/.test(m.from) ? m.from : null;
126
- return { kind: "heard", instance: m.instance, person: { name, account }, text, files: files && !said.trim() };
127
- }
128
-
129
- /** A share's `talk` (the host's: { now, items: [{ instance, kind, at }] }), checked: the items that are news. */
130
- export function talkOf(d) {
131
- if (!d || typeof d !== "object" || typeof d.now !== "number" || !Array.isArray(d.items)) return [];
132
- return d.items.filter((x) => x && typeof x === "object" && typeof x.instance === "string" && x.instance && (x.kind === "heard" || x.kind === "answered")
133
- && typeof x.at === "number" && Number.isFinite(x.at) && Math.abs(d.now - x.at) <= DLG.FRESH_MS).sort((a, b) => a.at - b.at);
134
- }
135
-
136
- /** The expression a portrait shows for a state: its own, else idle, else any it has. */
137
- const expressionOf = (p, state) => (p ? own(p, state) || own(p, "idle") || PORTRAIT_STATES.map((k) => own(p, k)).find(Boolean) || null : null);
138
- /** A state's expression: working, a call (needs, crashed, looks stuck), else idle. */
139
- export const portraitState = (state) => (state === "working" ? "working" : state === "needs" || state === "crashed" || state === "stuck" ? "needs" : "idle");
140
- /**
141
- * The pack's portrait file for an agent ({ agent: name, state }) or a person ({ account }), or null: an agent's
142
- * byInstance, else the pack's default; a person's byUser (the default is the agents').
143
- */
144
- export function portraitSrc(pack, who) {
145
- const p = pack && pack.portraits;
146
- if (!p || !who) return null;
147
- if (who.agent) return expressionOf(own(p.byInstance, who.agent) || p.default || null, portraitState(who.state));
148
- if (who.account) return expressionOf(own(p.byUser, who.account), "idle");
149
- return null;
150
- }
151
-
152
- /**
153
- * Where everything goes on a stage `W`×`H` (CSS px): the box (centred, at most 960 wide, at the foot), the portraits'
154
- * height and their two feet (left: the person, right: the agent — standing behind the box, VN style), the text's
155
- * place and lines, the name plate.
156
- */
157
- export function boxLayout(W, H) {
158
- const narrow = W < 560;
159
- const m = narrow ? 8 : 16, w = Math.max(160, Math.min(960, W - 2 * m)), h = Math.round(Math.min(narrow ? 120 : 132, Math.max(narrow ? 100 : 96, H * (narrow ? 0.24 : 0.2))));
160
- const x = Math.round((W - w) / 2), y = Math.round(H - m - h);
161
- const ph = Math.round(Math.max(h * 1.4, Math.min(narrow ? 220 : 340, H * 0.42))), foot = Math.round(y + h * 0.55);
162
- const pad = narrow ? 12 : 18, font = narrow ? 14 : 15, lineH = Math.round(font * 1.4), statusH = narrow ? 18 : 20;
163
- const nameH = 22;
164
- return { narrow, box: { x, y, w, h }, portrait: { h: Math.min(ph, foot - 8), foot, maxW: Math.round(w * (narrow ? 0.36 : 0.3)), left: Math.round(x + w * 0.14), right: Math.round(x + w * 0.86) },
165
- pad, font, lineH, nameH, statusH, face: narrow ? 52 : 64,
166
- text: { x: x + pad, y: y + pad + 4, w: w - 2 * pad, lines: Math.max(2, Math.floor((h - 2 * pad - 4 - statusH) / lineH)) } };
167
- }
168
- /**
169
- * The layout with its box as tall as its words need (`n` lines, and the agent's line when `status`), at least two
170
- * lines' worth, still standing on the stage's foot: the portraits' feet and the text move with its top.
171
- */
172
- export function fitBox(L, n, status) {
173
- const want = Math.round(L.pad * 2 + 4 + Math.max(2, n) * L.lineH + (status ? L.statusH : 0));
174
- const h = Math.min(L.box.h, Math.max(want, L.narrow ? 64 : 72)), dy = L.box.h - h;
175
- if (dy <= 0) return L;
176
- return { ...L, box: { ...L.box, y: L.box.y + dy, h }, portrait: { ...L.portrait, foot: L.portrait.foot + dy, h: Math.min(L.portrait.h, L.portrait.foot + dy - 8) },
177
- text: { ...L.text, y: L.text.y + dy } };
178
- }
179
-
180
- const CJK = /[⺀-鿿가-힯豈-﫿＀-￯ -〿]/;
181
- /**
182
- * `text` in lines at most `maxW` wide (measured), at most `max` lines (the last cut with "…" when there is more):
183
- * words for Latin text, any character for CJK; a word wider than a line is broken by character.
184
- */
185
- export function wrap(measure, text, maxW, max) {
186
- const tokens = [];
187
- for (const g of chars(String(text ?? ""))) {
188
- const last = tokens[tokens.length - 1];
189
- if (/\s/.test(g)) { tokens.push(" "); continue; }
190
- if (CJK.test(g) || !last || last === " " || CJK.test(last[last.length - 1] || "")) tokens.push(g);
191
- else tokens[tokens.length - 1] = last + g;
192
- }
193
- const lines = [];
194
- let cur = "";
195
- const push = () => { lines.push(cur.trimEnd()); cur = ""; };
196
- for (const tk of tokens) {
197
- if (tk === " ") { if (cur) cur += " "; continue; }
198
- if (measure(cur + tk) <= maxW) { cur += tk; continue; }
199
- if (cur.trim()) push();
200
- if (measure(tk) <= maxW) { cur = tk; continue; }
201
- for (const g of chars(tk)) { if (cur && measure(cur + g) > maxW) push(); cur += g; }
202
- }
203
- if (cur.trim()) push();
204
- if (lines.length <= max) return lines;
205
- const out = lines.slice(0, max);
206
- let lastLine = out[max - 1];
207
- while (lastLine && measure(`${lastLine}…`) > maxW) lastLine = chars(lastLine).slice(0, -1).join("");
208
- out[max - 1] = `${lastLine.trimEnd()}…`;
209
- return out;
210
- }
211
-
212
- /** The first `n` characters of `lines`, line by line (what the typing has reached). */
213
- export function typed(lines, n) {
214
- const out = [];
215
- let left = n;
216
- for (const l of lines) {
217
- if (left <= 0) break;
218
- const c = chars(l);
219
- out.push(c.slice(0, left).join(""));
220
- left -= c.length;
221
- }
222
- return out;
223
- }
224
- const lengthOf = (lines) => lines.reduce((a, l) => a + chars(l).length, 0);
225
-
226
- /**
227
- * What the box is now, from its conversation `c` at `t`: { phase: "heard" | "working" | "answered", speaker
228
- * ("left": the person, "right": the agent), slide (0–1: how far it has risen), alpha, typedAt (when the speaker's line
229
- * began typing), done (gone) }. `working`: the agent works now. Reduced motion (`still`): risen, whole, no fade.
230
- */
231
- export function stageOf(c, t, working, still) {
232
- if (c.shownAt === null) c.shownAt = t;
233
- if (c.answeredAt !== null && c.replyShownAt === null) c.replyShownAt = t;
234
- const phase = c.answeredAt !== null ? "answered" : working ? "working" : "heard";
235
- const slide = still ? 1 : Math.min(1, (t - c.shownAt) / DLG.SLIDE_MS);
236
- const fadeFrom = c.answeredAt !== null ? Math.max(c.answeredAt, c.replyShownAt) + DLG.HOLD_MS : Infinity;
237
- const alpha = t < fadeFrom ? 1 : still ? 0 : Math.max(0, 1 - (t - fadeFrom) / DLG.FADE_MS);
238
- return { phase, speaker: phase === "answered" ? "right" : "left", slide: 1 - (1 - slide) ** 3, alpha, typedAt: phase === "answered" ? c.replyShownAt : c.shownAt, done: alpha <= 0 };
239
- }
240
-
241
- /** The box's colours: the pack's dialogBox, else the dashboard's tokens. */
242
- export function boxColours(dialogBox, pal) {
243
- const d = dialogBox || {};
244
- return { background: d.background || pal.surface, border: d.border || pal.border, text: d.text || pal.text, name: d.name || pal.accent, sub: pal.text2 };
245
- }
246
-
247
- const roundRect = (ctx, x, y, w, h, r) => {
248
- ctx.beginPath();
249
- if (typeof ctx.roundRect === "function") ctx.roundRect(x, y, w, h, r);
250
- else ctx.rect(x, y, w, h);
251
- };
252
- /** A 9-slice frame `im` over (x, y, w, h): `s` image px a side, drawn `k` CSS px an image px (unsmoothed). */
253
- function nineSlice(ctx, im, s, x, y, w, h, k) {
254
- const iw = im.naturalWidth || im.width, ih = im.naturalHeight || im.height, d = s * k;
255
- if (!iw || !ih || w < 2 * d || h < 2 * d) return false;
256
- const sx = [0, s, iw - s, iw], sy = [0, s, ih - s, ih], dx = [x, x + d, x + w - d, x + w], dy = [y, y + d, y + h - d, y + h];
257
- for (let i = 0; i < 3; i++) for (let j = 0; j < 3; j++) {
258
- const sw = sx[i + 1] - sx[i], sh = sy[j + 1] - sy[j], dw = dx[i + 1] - dx[i], dh = dy[j + 1] - dy[j];
259
- if (sw > 0 && sh > 0 && dw > 0 && dh > 0) ctx.drawImage(im, sx[i], sy[j], sw, sh, dx[i], dy[j], dw, dh);
260
- }
261
- return true;
262
- }
263
-
264
- /**
265
- * One face where a portrait stands (its feet at (cx, foot)): a portrait (`{ kind: "portrait", im }`, its height `h`,
266
- * at most `maxW` wide, bottom-anchored), else a framed square (`face` px) sitting just above the box — a picture
267
- * (`image`), an emoji, or an initial on the identity colour. `dim`: the one not speaking.
268
- */
269
- function drawFace(ctx, face, cx, L, top, dim, env) {
270
- if (!face) return;
271
- ctx.save();
272
- ctx.globalAlpha *= dim ? 0.55 : 1;
273
- if (face.kind === "portrait" && face.im) {
274
- const iw = face.im.naturalWidth || face.im.width, ih = face.im.naturalHeight || face.im.height;
275
- if (iw && ih) {
276
- const k = Math.min(L.portrait.h / ih, L.portrait.maxW / iw), w = iw * k, h = ih * k;
277
- ctx.imageSmoothingEnabled = k < 1; // a pixel-art portrait scaled up stays crisp
278
- ctx.drawImage(face.im, Math.round(cx - w / 2), Math.round(L.portrait.foot - h), Math.round(w), Math.round(h));
279
- }
280
- ctx.restore();
281
- return;
282
- }
283
- const s = L.face, x = Math.round(cx - s / 2), y = Math.round(top - s - 6);
284
- ctx.fillStyle = env.pal.surface2; ctx.strokeStyle = env.pal.border; ctx.lineWidth = 2;
285
- roundRect(ctx, x, y, s, s, 10); ctx.fill(); ctx.stroke();
286
- ctx.save(); roundRect(ctx, x + 3, y + 3, s - 6, s - 6, 8); ctx.clip();
287
- if (face.kind === "image" && face.im) { ctx.imageSmoothingEnabled = true; ctx.drawImage(face.im, x + 3, y + 3, s - 6, s - 6); }
288
- else {
289
- if (face.kind === "initial") { ctx.fillStyle = face.color || env.pal.accent; ctx.fillRect(x + 3, y + 3, s - 6, s - 6); }
290
- ctx.fillStyle = face.kind === "initial" ? "#ffffff" : env.pal.text;
291
- ctx.font = `${face.kind === "emoji" ? 400 : 700} ${Math.round(s * (face.kind === "emoji" ? 0.5 : 0.44))}px system-ui, "Apple Color Emoji", "Segoe UI Emoji", sans-serif`;
292
- ctx.textAlign = "center"; ctx.textBaseline = "middle";
293
- ctx.fillText(face.text || "?", x + s / 2, y + s / 2 + 1);
294
- }
295
- ctx.restore();
296
- ctx.restore();
297
- }
298
-
299
- /**
300
- * Draw the box on `ctx` (its transform: CSS px of the stage) — `v`: { L (boxLayout), stage (stageOf), left/right faces,
301
- * name (the plate), lines (the speaker's whole text, wrapped), status (the agent's line while it works, or null),
302
- * statusName, more, colours, frame ({ im, slice, k }) }. Whether it is still moving (rising, typing or fading).
303
- */
304
- export function drawBox(ctx, v, t, env) {
305
- const { L, stage } = v, b = L.box;
306
- if (stage.done) return false;
307
- const rise = Math.round((1 - stage.slide) * (b.h + 40));
308
- ctx.save();
309
- ctx.globalAlpha = stage.alpha;
310
- ctx.translate(0, rise);
311
- // The portraits stand behind the box: the person's on the left, the agent's on the right (once it works or answers).
312
- drawFace(ctx, v.left, L.portrait.left, L, b.y, stage.speaker !== "left", env);
313
- if (v.right) drawFace(ctx, v.right, L.portrait.right, L, b.y, stage.speaker !== "right", env);
314
- const c = v.colours;
315
- ctx.save();
316
- // Opaque (the portraits stand behind it and must not show through); a pack's frame is drawn over the fill.
317
- ctx.fillStyle = c.background; roundRect(ctx, b.x, b.y, b.w, b.h, 12); ctx.fill();
318
- if (!(v.frame && v.frame.im && nineSlice(ctx, v.frame.im, v.frame.slice, b.x, b.y, b.w, b.h, v.frame.k))) {
319
- ctx.strokeStyle = c.border; ctx.lineWidth = 2; roundRect(ctx, b.x + 1, b.y + 1, b.w - 2, b.h - 2, 11); ctx.stroke();
320
- }
321
- ctx.restore();
322
- // The name plate: over the box's top edge, on the speaker's side.
323
- ctx.font = "700 13px system-ui, sans-serif";
324
- const nw = Math.min(b.w * 0.6, Math.ceil(ctx.measureText(v.name).width) + 20), nx = stage.speaker === "left" ? b.x + 14 : b.x + b.w - 14 - nw, ny = b.y - Math.round(L.nameH / 2);
325
- ctx.fillStyle = c.background; ctx.strokeStyle = c.name; ctx.lineWidth = 2;
326
- roundRect(ctx, nx, ny, nw, L.nameH, 6); ctx.fill(); ctx.stroke();
327
- ctx.fillStyle = c.name; ctx.textAlign = "left"; ctx.textBaseline = "middle";
328
- ctx.fillText(fit(ctx, v.name, nw - 16), nx + 10, ny + L.nameH / 2 + 1);
329
- // The words, typed out.
330
- const n = env.still ? Infinity : Math.floor(((t - stage.typedAt) * DLG.CPS) / 1000);
331
- ctx.font = `400 ${L.font}px system-ui, sans-serif`; ctx.fillStyle = c.text; ctx.textBaseline = "top";
332
- const shown = typed(v.lines, n);
333
- shown.forEach((l, i) => ctx.fillText(l, L.text.x, L.text.y + 6 + i * L.lineH));
334
- // The agent's line while it works; "+N" for the conversations waiting.
335
- ctx.font = `italic 600 ${L.narrow ? 12 : 13}px system-ui, sans-serif`; ctx.textBaseline = "bottom";
336
- if (v.status) { ctx.fillStyle = c.name; ctx.textAlign = "right"; ctx.fillText(fit(ctx, v.status, b.w - 2 * L.pad), b.x + b.w - L.pad, b.y + b.h - Math.round(L.pad * 0.75)); }
337
- ctx.font = `600 ${L.narrow ? 11 : 12}px system-ui, sans-serif`;
338
- if (v.more > 0) {
339
- ctx.font = "700 13px system-ui, sans-serif";
340
- const tag = `+${v.more}`, tw = ctx.measureText(tag).width + 18, th = 22, tx = stage.speaker === "left" ? b.x + b.w - tw - L.pad : b.x + L.pad, ty = b.y + L.pad - 4;
341
- ctx.fillStyle = c.name; roundRect(ctx, tx, ty, tw, th, th / 2); ctx.fill();
342
- ctx.fillStyle = c.background; ctx.textAlign = "center"; ctx.textBaseline = "middle"; ctx.fillText(tag, tx + tw / 2, ty + th / 2 + 1);
343
- }
344
- ctx.restore();
345
- return stage.slide < 1 || n < lengthOf(v.lines) || stage.alpha < 1;
346
- }
347
- /** `s` cut to `w` px with "…". */
348
- function fit(ctx, s, w) {
349
- if (ctx.measureText(s).width <= w) return s;
350
- let c = chars(s);
351
- while (c.length > 1 && ctx.measureText(`${c.join("")}…`).width > w) c = c.slice(0, -1);
352
- return `${c.join("")}…`;
353
- }
354
-
355
- /** Whether (x, y) — the stage's CSS px — is on the box (with the slide it has now). */
356
- export const onBox = (L, stage, x, y) => !!L && !!stage && !stage.done && stage.alpha > 0.2
357
- && x >= L.box.x && x < L.box.x + L.box.w && y >= L.box.y + Math.round((1 - stage.slide) * (L.box.h + 40)) - L.nameH / 2 && y < L.box.y + L.box.h + (1 - stage.slide) * (L.box.h + 40);
358
-
359
- /**
360
- * Pictures the box draws that are not a pack's: an avatar's `/ui/img/…` (avatarOf's), read once each; `get(src, done)`
361
- * the picture or null (not in yet: `done` once it is).
362
- */
363
- export function createFaces(load = defaultLoad) {
364
- const seen = new Map();
365
- return (src, done) => {
366
- if (!src) return null;
367
- const had = seen.get(src);
368
- if (had) { if (had.im === undefined && done) had.waiting.add(done); return had.im || null; }
369
- const e = { im: undefined, waiting: new Set(done ? [done] : []) };
370
- seen.set(src, e);
371
- Promise.resolve(load(src)).catch(() => null).then((im) => { e.im = im || null; for (const fn of e.waiting) { try { fn(); } catch { /* the page's */ } } e.waiting.clear(); });
372
- return null;
373
- };
374
- }
375
- function defaultLoad(src) {
376
- return new Promise((resolve) => {
377
- if (typeof Image !== "function") { resolve(null); return; }
378
- const im = new Image();
379
- im.onload = () => resolve(im); im.onerror = () => resolve(null);
380
- im.src = src;
381
- });
382
- }
@@ -1,188 +0,0 @@
1
- // #2246 follow-up, after Linear (as Circle, ln-dev7/circle, draws it): a card's own menu on the task board, and
2
- // stepping from the open card to the next. A right click on a card — a board tile, a list row, a waiting row — or the
3
- // keyboard's menu key (Shift+F10) on it opens its menu there: open it; confirm, send back or answer it when it waits for
4
- // you; move it to another status; give it to another instance; change its priority; copy its link or number; cancel
5
- // it. Each choice goes through the same calls and questions as the card's dialog (a reason to block, to send back).
6
- // The dialog's Previous / Next (K / J) walk the cards in the order the page showed them when the card was opened.
7
- // No style attribute anywhere (the CSP): the menu is placed through the CSSOM.
8
- import { html, useEffect, useLayoutEffect, useRef } from "/assets/app-html.js";
9
- import { t, register } from "/assets/app-i18n.js";
10
- import { Icon } from "/assets/ui-icons.js";
11
- import { COLUMNS, followsSubs, waitsForYou } from "./fleet-task-common.js";
12
-
13
- register("taskmenu", {
14
- en: {
15
- label: "{0}: actions", open: "Open", moveTo: "Move to", assignee: "Assignee", priority: "Priority",
16
- copyLink: "Copy link", copyId: "Copy card number", copied: "Copied {0}", cancel: "Cancel this card…",
17
- prev: "Previous card (K)", next: "Next card (J)", position: "{0} / {1}",
18
- },
19
- "zh-TW": {
20
- label: "{0}:動作", open: "打開", moveTo: "移到", assignee: "負責人", priority: "優先度",
21
- copyLink: "複製連結", copyId: "複製卡號", copied: "已複製 {0}", cancel: "取消這張卡…",
22
- prev: "上一張(K)", next: "下一張(J)", position: "{0} / {1}",
23
- },
24
- });
25
-
26
- // ── What a card's menu offers (pure: tests import these) ─────
27
-
28
- const PRIORITIES = ["urgent", "high", "normal", "low"];
29
-
30
- /**
31
- * The statuses a person may move a card to by hand, as a drop on the board allows: any, except that a main task that
32
- * follows its sub tasks is only confirmed or sent back from review, blocked, or resumed when blocked.
33
- */
34
- export function movesFor(card) {
35
- if (card.status === "cancelled") return [];
36
- const derived = followsSubs(card);
37
- return COLUMNS.filter((to) => to !== card.status && (!derived || (card.status === "review" && (to === "done" || to === "claimed"))
38
- || (to === "blocked" && card.status !== "done") || (card.status === "blocked" && to === "claimed")));
39
- }
40
-
41
- /**
42
- * A card's menu items. `act` runs a choice: { kind: "open" | "confirm" | "sendBack" | "answer" | "move" | "assign" |
43
- * "assignOther" | "priority" | "copyLink" | "copyId" | "cancel", to?, value? }. `names`: the assignees offered (the
44
- * project's — a fleet can have dozens of instances; Other… names any). Over the public link only open and copy.
45
- */
46
- export function cardMenuItems(card, { writable, names, act }) {
47
- const yours = writable && waitsForYou(card);
48
- const items = [{ key: "open", label: t("taskmenu.open"), icon: "external", onSelect: () => act({ kind: "open" }) }];
49
- if (yours && card.status === "review") {
50
- items.push({ key: "confirm", label: t("tasks.confirm"), icon: "check", onSelect: () => act({ kind: "confirm" }) });
51
- items.push({ key: "sendBack", label: t("tasks.sendBack"), icon: "back", onSelect: () => act({ kind: "sendBack" }) });
52
- }
53
- if (yours && card.status === "blocked") items.push({ key: "answer", label: t("tasks.answer"), icon: "chat", onSelect: () => act({ kind: "answer" }) });
54
- if (writable) {
55
- const moves = movesFor(card);
56
- if (moves.length) {
57
- items.push({ key: "h-move", heading: true, label: t("taskmenu.moveTo") });
58
- for (const to of moves) items.push({ key: `move-${to}`, label: t(`tasks.${to}`), dot: to, onSelect: () => act({ kind: "move", to }) });
59
- }
60
- if (card.status !== "done" && card.status !== "cancelled") {
61
- items.push({ key: "h-assignee", heading: true, label: t("taskmenu.assignee") });
62
- const all = [...new Set([...names, card.assignee].filter(Boolean))].sort((a, b) => a.localeCompare(b));
63
- for (const name of [...all, null]) {
64
- items.push({ key: `assign-${name ?? ""}`, label: name ?? t("tasks.nobody"), checked: card.assignee === name, onSelect: () => act({ kind: "assign", value: name }) });
65
- }
66
- items.push({ key: "assign-other", label: t("taskcard.other"), onSelect: () => act({ kind: "assignOther" }) });
67
- }
68
- items.push({ key: "h-priority", heading: true, label: t("taskmenu.priority") });
69
- for (const p of PRIORITIES) items.push({ key: `priority-${p}`, label: t(`tasks.${p}`), checked: card.priority === p, onSelect: () => act({ kind: "priority", value: p }) });
70
- }
71
- items.push({ key: "h-copy", heading: true, label: "" });
72
- items.push({ key: "copyLink", label: t("taskmenu.copyLink"), icon: "copy", onSelect: () => act({ kind: "copyLink" }) });
73
- items.push({ key: "copyId", label: t("taskmenu.copyId"), icon: "copy", onSelect: () => act({ kind: "copyId" }) });
74
- if (writable && card.status !== "done" && card.status !== "cancelled") {
75
- items.push({ key: "cancel", label: t("taskmenu.cancel"), icon: "trash", danger: true, onSelect: () => act({ kind: "cancel" }) });
76
- }
77
- return items;
78
- }
79
-
80
- /**
81
- * The card a right click (or the menu key) lands on: a board tile, a list row, a waiting row — its number, or null.
82
- * The browser's own menu stays, as on a chat message, with Shift, over selected text, and on a link or a field.
83
- */
84
- export function cardAt(e) {
85
- const target = e && e.target;
86
- if (!target || typeof target.closest !== "function" || e.shiftKey) return null;
87
- const sel = globalThis.getSelection ? globalThis.getSelection() : null;
88
- if (sel && !sel.isCollapsed && String(sel).trim()) return null;
89
- if (target.closest("a[href], input, textarea, select, [contenteditable='true']")) return null;
90
- const el = target.closest("[data-tile], [data-row], [data-wait]");
91
- return el ? { id: el.getAttribute("data-tile") || el.getAttribute("data-row") || el.getAttribute("data-wait"), el } : null;
92
- }
93
-
94
- /** The cards in the page's order — the board's columns, the list's rows, the waiting rows — each once. */
95
- export function pageOrder(root = globalThis.document) {
96
- if (!root || typeof root.querySelectorAll !== "function") return [];
97
- const ids = [...root.querySelectorAll(".tb [data-tile], .tb [data-row], .tb [data-wait]")]
98
- .map((el) => el.getAttribute("data-tile") || el.getAttribute("data-row") || el.getAttribute("data-wait"));
99
- return [...new Set(ids.filter(Boolean))];
100
- }
101
-
102
- /**
103
- * Where the open card is in a walk: the page's order when it is in it, else (a sub task opened from its main task)
104
- * among its main task's sub tasks; null with nowhere to step.
105
- */
106
- export function stepsOf(trail, id, cards) {
107
- let ids = trail;
108
- if (!ids.includes(id)) {
109
- const card = cards.find((c) => c.id === id);
110
- if (!card || card.kind !== "sub") return null;
111
- ids = cards.filter((c) => c.kind === "sub" && c.parentId === card.parentId && c.status !== "cancelled").sort((a, b) => a.sort - b.sort).map((c) => c.id);
112
- }
113
- const i = ids.indexOf(id);
114
- if (i < 0 || ids.length < 2) return null;
115
- return { at: i + 1, total: ids.length, prev: ids[i - 1] ?? null, next: ids[i + 1] ?? null };
116
- }
117
-
118
- // ── The menu ──────────────────────────────────────────────
119
-
120
- const ITEM = "[role=menuitem]:not([disabled]), [role=menuitemradio]:not([disabled])";
121
-
122
- /**
123
- * A card's menu at a point (a right click's; under the card for the keyboard), kept inside the window. Arrow keys move,
124
- * Enter chooses, Esc or a click elsewhere closes it, and the focus goes back to the card.
125
- */
126
- export function CardMenu({ at, items, label, onClose }) {
127
- const list = useRef(null);
128
- useLayoutEffect(() => {
129
- const el = list.current;
130
- if (!el) return;
131
- const w = globalThis.innerWidth || Infinity, h = globalThis.innerHeight || Infinity;
132
- const r = typeof el.getBoundingClientRect === "function" ? el.getBoundingClientRect() : { width: 0, height: 0 };
133
- el.style.left = `${Math.max(8, Math.min(at.x, w - r.width - 8))}px`;
134
- el.style.top = `${Math.max(8, Math.min(at.y, h - r.height - 8))}px`;
135
- }, [at.x, at.y]);
136
- useEffect(() => {
137
- const first = list.current && list.current.querySelector(ITEM);
138
- if (first) first.focus();
139
- const outside = (e) => { if (list.current && !list.current.contains(e.target)) onClose(false); };
140
- const away = () => onClose(false);
141
- document.addEventListener("pointerdown", outside, true);
142
- globalThis.addEventListener?.("resize", away);
143
- return () => { document.removeEventListener("pointerdown", outside, true); globalThis.removeEventListener?.("resize", away); };
144
- }, []);
145
- function onKey(e) {
146
- const all = [...list.current.querySelectorAll(ITEM)];
147
- const i = all.indexOf(document.activeElement);
148
- if (e.key === "Escape") { e.preventDefault(); e.stopPropagation(); onClose(true); }
149
- else if (e.key === "ArrowDown") { e.preventDefault(); (all[(i + 1) % all.length] || all[0])?.focus(); }
150
- else if (e.key === "ArrowUp") { e.preventDefault(); (all[(i - 1 + all.length) % all.length] || all[0])?.focus(); }
151
- else if (e.key === "Home") { e.preventDefault(); all[0]?.focus(); }
152
- else if (e.key === "End") { e.preventDefault(); all[all.length - 1]?.focus(); }
153
- else if (e.key === "Tab") onClose(false);
154
- }
155
- const choose = (item) => { onClose(true); item.onSelect(); };
156
- return html`<div data-trust="menu" ref=${list} class="menu-list tb-card-menu" role="menu" aria-label=${label} onKeyDown=${onKey} onContextMenu=${(e) => e.preventDefault()}>
157
- ${items.map((item) => item.heading
158
- ? html`<div key=${item.key} class=${`menu-heading${item.label ? "" : " bare"}`} role="presentation">${item.label}</div>`
159
- : item.checked !== undefined
160
- ? html`<button key=${item.key} type="button" role="menuitemradio" aria-checked=${item.checked ? "true" : "false"} class="menu-item menu-radio" onClick=${() => choose(item)}>
161
- <span class="menu-tick" aria-hidden="true">${item.checked ? html`<${Icon} name="check" size=${16} />` : null}</span><span>${item.label}</span></button>`
162
- : html`<button key=${item.key} type="button" role="menuitem" class=${`menu-item${item.danger ? " danger" : ""}`} onClick=${() => choose(item)}>
163
- ${item.dot ? html`<span class=${`tb-dot st-${item.dot}`} aria-hidden="true"></span>` : item.icon ? html`<${Icon} name=${item.icon} size=${16} />` : null}<span>${item.label}</span></button>`)}
164
- </div>`;
165
- }
166
-
167
- /** The open card's Previous / Next, with where it is ("3 of 12"), for the dialog's header. */
168
- export function StepButtons({ steps, onOpen }) {
169
- // K / J step as Linear's do — not while typing (a field, a select, an editable text) nor with a modifier.
170
- useEffect(() => {
171
- const onKey = (e) => {
172
- if (e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || (e.key !== "j" && e.key !== "k")) return;
173
- const el = e.target;
174
- if (el && (el.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(el.tagName || ""))) return;
175
- const to = e.key === "j" ? steps.next : steps.prev;
176
- if (!to) return;
177
- e.preventDefault();
178
- onOpen(to);
179
- };
180
- document.addEventListener("keydown", onKey);
181
- return () => document.removeEventListener("keydown", onKey);
182
- }, [steps.prev, steps.next]);
183
- return html`<span class="tc-steps">
184
- <button type="button" class="icon-btn" disabled=${!steps.prev} title=${t("taskmenu.prev")} aria-label=${t("taskmenu.prev")} onClick=${() => steps.prev && onOpen(steps.prev)}><${Icon} name="up" size=${16} /></button>
185
- <span class="muted tc-step-at" aria-live="polite">${t("taskmenu.position", steps.at, steps.total)}</span>
186
- <button type="button" class="icon-btn" disabled=${!steps.next} title=${t("taskmenu.next")} aria-label=${t("taskmenu.next")} onClick=${() => steps.next && onOpen(steps.next)}><${Icon} name="down" size=${16} /></button>
187
- </span>`;
188
- }