@songsid/agend 2.3.5-alpha.3 → 2.3.5-alpha.5

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 (865) hide show
  1. package/THIRD_PARTY_NOTICES.md +52 -0
  2. package/dist/accounts-view.d.ts +97 -0
  3. package/dist/accounts-view.js +116 -0
  4. package/dist/accounts-view.js.map +1 -0
  5. package/dist/agent-cli-instructions.md +1 -1
  6. package/dist/agent-credentials.d.ts +24 -0
  7. package/dist/agent-credentials.js +66 -0
  8. package/dist/agent-credentials.js.map +1 -0
  9. package/dist/agent-endpoint.d.ts +3 -1
  10. package/dist/agent-endpoint.js +13 -0
  11. package/dist/agent-endpoint.js.map +1 -1
  12. package/dist/agent-file-read.js +1 -1
  13. package/dist/agent-file-read.js.map +1 -1
  14. package/dist/agent-runtime-api.d.ts +4 -0
  15. package/dist/agent-runtime-api.js +59 -0
  16. package/dist/agent-runtime-api.js.map +1 -0
  17. package/dist/agent-runtime-change.d.ts +76 -0
  18. package/dist/agent-runtime-change.js +114 -0
  19. package/dist/agent-runtime-change.js.map +1 -0
  20. package/dist/agent-workspace.d.ts +93 -0
  21. package/dist/agent-workspace.js +353 -0
  22. package/dist/agent-workspace.js.map +1 -0
  23. package/dist/auth-api.d.ts +27 -0
  24. package/dist/auth-api.js +168 -3
  25. package/dist/auth-api.js.map +1 -1
  26. package/dist/authority/session-authorizations.d.ts +28 -4
  27. package/dist/authority/session-authorizations.js +63 -17
  28. package/dist/authority/session-authorizations.js.map +1 -1
  29. package/dist/backend/antigravity.js +3 -1
  30. package/dist/backend/antigravity.js.map +1 -1
  31. package/dist/backend/codex-footer-hints.d.ts +7 -0
  32. package/dist/backend/codex-footer-hints.js +41 -0
  33. package/dist/backend/codex-footer-hints.js.map +1 -0
  34. package/dist/backend/codex-metadata.d.ts +14 -0
  35. package/dist/backend/codex-metadata.js +45 -0
  36. package/dist/backend/codex-metadata.js.map +1 -1
  37. package/dist/backend/codex-quota-history.d.ts +7 -0
  38. package/dist/backend/codex-quota-history.js +57 -0
  39. package/dist/backend/codex-quota-history.js.map +1 -0
  40. package/dist/backend/codex-session-lookup.d.ts +6 -0
  41. package/dist/backend/codex-session-lookup.js +1 -1
  42. package/dist/backend/codex-session-lookup.js.map +1 -1
  43. package/dist/backend/codex-speed.d.ts +14 -0
  44. package/dist/backend/codex-speed.js +35 -0
  45. package/dist/backend/codex-speed.js.map +1 -0
  46. package/dist/backend/codex.d.ts +7 -0
  47. package/dist/backend/codex.js +85 -24
  48. package/dist/backend/codex.js.map +1 -1
  49. package/dist/backend/grok-weekly-reset.d.ts +24 -0
  50. package/dist/backend/grok-weekly-reset.js +95 -0
  51. package/dist/backend/grok-weekly-reset.js.map +1 -0
  52. package/dist/backend/grok.d.ts +30 -1
  53. package/dist/backend/grok.js +301 -54
  54. package/dist/backend/grok.js.map +1 -1
  55. package/dist/backend/kiro.d.ts +3 -0
  56. package/dist/backend/kiro.js +50 -2
  57. package/dist/backend/kiro.js.map +1 -1
  58. package/dist/backend/muse.js +5 -3
  59. package/dist/backend/muse.js.map +1 -1
  60. package/dist/backend/native-pane.d.ts +3 -1
  61. package/dist/backend/native-pane.js +2 -2
  62. package/dist/backend/native-pane.js.map +1 -1
  63. package/dist/backend/types.d.ts +13 -1
  64. package/dist/backend/types.js +3 -0
  65. package/dist/backend/types.js.map +1 -1
  66. package/dist/build-provenance-cli.d.ts +3 -0
  67. package/dist/build-provenance-cli.js +11 -0
  68. package/dist/build-provenance-cli.js.map +1 -0
  69. package/dist/build-provenance.d.ts +20 -0
  70. package/dist/build-provenance.js +67 -0
  71. package/dist/build-provenance.js.map +1 -0
  72. package/dist/build-provenance.json +1 -0
  73. package/dist/cache-ledger.d.ts +95 -0
  74. package/dist/cache-ledger.js +276 -4
  75. package/dist/cache-ledger.js.map +1 -1
  76. package/dist/cache-service.d.ts +5 -0
  77. package/dist/cache-service.js +16 -4
  78. package/dist/cache-service.js.map +1 -1
  79. package/dist/channel/adapters/discord.js +11 -3
  80. package/dist/channel/adapters/discord.js.map +1 -1
  81. package/dist/channel/adapters/telegram.d.ts +51 -0
  82. package/dist/channel/adapters/telegram.js +235 -17
  83. package/dist/channel/adapters/telegram.js.map +1 -1
  84. package/dist/channel/mcp-tools.js +3 -3
  85. package/dist/channel/mcp-tools.js.map +1 -1
  86. package/dist/channel/types.d.ts +2 -0
  87. package/dist/claude-auth-status.d.ts +48 -0
  88. package/dist/claude-auth-status.js +149 -0
  89. package/dist/claude-auth-status.js.map +1 -0
  90. package/dist/cli.js +138 -37
  91. package/dist/cli.js.map +1 -1
  92. package/dist/config-validator.js +21 -1
  93. package/dist/config-validator.js.map +1 -1
  94. package/dist/cross-instance-notice.d.ts +10 -0
  95. package/dist/cross-instance-notice.js +67 -5
  96. package/dist/cross-instance-notice.js.map +1 -1
  97. package/dist/daemon.d.ts +70 -1
  98. package/dist/daemon.js +547 -25
  99. package/dist/daemon.js.map +1 -1
  100. package/dist/dashboard-permissions.d.ts +8 -0
  101. package/dist/dashboard-permissions.js +16 -0
  102. package/dist/dashboard-permissions.js.map +1 -1
  103. package/dist/delivery-consumed-watch.d.ts +23 -1
  104. package/dist/delivery-consumed-watch.js +30 -3
  105. package/dist/delivery-consumed-watch.js.map +1 -1
  106. package/dist/delivery-reconciliation.d.ts +1 -1
  107. package/dist/delivery-reconciliation.js +1 -1
  108. package/dist/delivery-reconciliation.js.map +1 -1
  109. package/dist/doctor.js +20 -9
  110. package/dist/doctor.js.map +1 -1
  111. package/dist/export-import.d.ts +7 -0
  112. package/dist/export-import.js +44 -10
  113. package/dist/export-import.js.map +1 -1
  114. package/dist/fleet-context.d.ts +2 -0
  115. package/dist/fleet-manager.d.ts +362 -7
  116. package/dist/fleet-manager.js +1522 -91
  117. package/dist/fleet-manager.js.map +1 -1
  118. package/dist/fleet-windows-runtime.d.ts +8 -2
  119. package/dist/fleet-windows-runtime.js +93 -6
  120. package/dist/fleet-windows-runtime.js.map +1 -1
  121. package/dist/general-knowledge/skills/concepts/SKILL.md +425 -0
  122. package/dist/general-knowledge/skills/credential-profiles/SKILL.md +5 -2
  123. package/dist/general-knowledge/skills/cross-instance-messaging/SKILL.md +1 -0
  124. package/dist/general-knowledge/skills/fleet-health/SKILL.md +2 -2
  125. package/dist/general-knowledge/skills/instance-lifecycle/SKILL.md +3 -1
  126. package/dist/general-knowledge/skills/kiro-engine-migration/SKILL.md +41 -4
  127. package/dist/general-knowledge/skills/session-management/SKILL.md +1 -1
  128. package/dist/general-knowledge/skills/tui-effort/SKILL.md +10 -10
  129. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +31 -15
  130. package/dist/general-knowledge/skills/worker-collaboration/SKILL.md +1 -1
  131. package/dist/general-role.d.ts +1 -1
  132. package/dist/general-role.js +1 -0
  133. package/dist/general-role.js.map +1 -1
  134. package/dist/hub/admission.d.ts +28 -0
  135. package/dist/hub/admission.js +62 -0
  136. package/dist/hub/admission.js.map +1 -0
  137. package/dist/hub/attachments/limits.d.ts +20 -0
  138. package/dist/hub/attachments/limits.js +48 -0
  139. package/dist/hub/attachments/limits.js.map +1 -0
  140. package/dist/hub/attachments/store.d.ts +116 -0
  141. package/dist/hub/attachments/store.js +246 -0
  142. package/dist/hub/attachments/store.js.map +1 -0
  143. package/dist/hub/audit/index.d.ts +62 -0
  144. package/dist/hub/audit/index.js +344 -0
  145. package/dist/hub/audit/index.js.map +1 -0
  146. package/dist/hub/browser-certificate.d.ts +38 -0
  147. package/dist/hub/browser-certificate.js +247 -0
  148. package/dist/hub/browser-certificate.js.map +1 -0
  149. package/dist/hub/buttons-model.d.ts +9 -0
  150. package/dist/hub/buttons-model.js +42 -0
  151. package/dist/hub/buttons-model.js.map +1 -0
  152. package/dist/hub/buttons.d.ts +54 -0
  153. package/dist/hub/buttons.js +346 -0
  154. package/dist/hub/buttons.js.map +1 -0
  155. package/dist/hub/catalog.d.ts +74 -0
  156. package/dist/hub/catalog.js +195 -0
  157. package/dist/hub/catalog.js.map +1 -0
  158. package/dist/hub/client.d.ts +69 -0
  159. package/dist/hub/client.js +300 -0
  160. package/dist/hub/client.js.map +1 -0
  161. package/dist/hub/compose/member.d.ts +139 -0
  162. package/dist/hub/compose/member.js +450 -0
  163. package/dist/hub/compose/member.js.map +1 -0
  164. package/dist/hub/compose/server.d.ts +77 -0
  165. package/dist/hub/compose/server.js +349 -0
  166. package/dist/hub/compose/server.js.map +1 -0
  167. package/dist/hub/compose/views.d.ts +12 -0
  168. package/dist/hub/compose/views.js +4 -0
  169. package/dist/hub/compose/views.js.map +1 -0
  170. package/dist/hub/db.d.ts +56 -0
  171. package/dist/hub/db.js +188 -0
  172. package/dist/hub/db.js.map +1 -0
  173. package/dist/hub/directory/config.d.ts +39 -0
  174. package/dist/hub/directory/config.js +108 -0
  175. package/dist/hub/directory/config.js.map +1 -0
  176. package/dist/hub/directory/directory.d.ts +18 -0
  177. package/dist/hub/directory/directory.js +320 -0
  178. package/dist/hub/directory/directory.js.map +1 -0
  179. package/dist/hub/directory/index.d.ts +7 -0
  180. package/dist/hub/directory/index.js +4 -0
  181. package/dist/hub/directory/index.js.map +1 -0
  182. package/dist/hub/directory/profiles.d.ts +41 -0
  183. package/dist/hub/directory/profiles.js +90 -0
  184. package/dist/hub/directory/profiles.js.map +1 -0
  185. package/dist/hub/directory/types.d.ts +71 -0
  186. package/dist/hub/directory/types.js +14 -0
  187. package/dist/hub/directory/types.js.map +1 -0
  188. package/dist/hub/execution/cli-provider.d.ts +23 -0
  189. package/dist/hub/execution/cli-provider.js +341 -0
  190. package/dist/hub/execution/cli-provider.js.map +1 -0
  191. package/dist/hub/execution/index.d.ts +13 -0
  192. package/dist/hub/execution/index.js +8 -0
  193. package/dist/hub/execution/index.js.map +1 -0
  194. package/dist/hub/execution/model-broker.d.ts +24 -0
  195. package/dist/hub/execution/model-broker.js +208 -0
  196. package/dist/hub/execution/model-broker.js.map +1 -0
  197. package/dist/hub/execution/provider-setup.d.ts +11 -0
  198. package/dist/hub/execution/provider-setup.js +21 -0
  199. package/dist/hub/execution/provider-setup.js.map +1 -0
  200. package/dist/hub/execution/sandbox-runner.d.ts +1 -0
  201. package/dist/hub/execution/sandbox-runner.js +221 -0
  202. package/dist/hub/execution/sandbox-runner.js.map +1 -0
  203. package/dist/hub/execution/service.d.ts +136 -0
  204. package/dist/hub/execution/service.js +459 -0
  205. package/dist/hub/execution/service.js.map +1 -0
  206. package/dist/hub/execution/store.d.ts +61 -0
  207. package/dist/hub/execution/store.js +182 -0
  208. package/dist/hub/execution/store.js.map +1 -0
  209. package/dist/hub/execution/views.d.ts +20 -0
  210. package/dist/hub/execution/views.js +48 -0
  211. package/dist/hub/execution/views.js.map +1 -0
  212. package/dist/hub/http/compose.d.ts +20 -0
  213. package/dist/hub/http/compose.js +518 -0
  214. package/dist/hub/http/compose.js.map +1 -0
  215. package/dist/hub/http/core.d.ts +49 -0
  216. package/dist/hub/http/core.js +124 -0
  217. package/dist/hub/http/core.js.map +1 -0
  218. package/dist/hub/http/deps.d.ts +61 -0
  219. package/dist/hub/http/deps.js +2 -0
  220. package/dist/hub/http/deps.js.map +1 -0
  221. package/dist/hub/http/schema.d.ts +14 -0
  222. package/dist/hub/http/schema.js +80 -0
  223. package/dist/hub/http/schema.js.map +1 -0
  224. package/dist/hub/identity.d.ts +32 -0
  225. package/dist/hub/identity.js +80 -0
  226. package/dist/hub/identity.js.map +1 -0
  227. package/dist/hub/init/browser-certificate.d.ts +9 -0
  228. package/dist/hub/init/browser-certificate.js +78 -0
  229. package/dist/hub/init/browser-certificate.js.map +1 -0
  230. package/dist/hub/init/browser-tls.d.ts +18 -0
  231. package/dist/hub/init/browser-tls.js +62 -0
  232. package/dist/hub/init/browser-tls.js.map +1 -0
  233. package/dist/hub/init/cli.d.ts +3 -0
  234. package/dist/hub/init/cli.js +83 -0
  235. package/dist/hub/init/cli.js.map +1 -0
  236. package/dist/hub/init/directory-certificate.d.ts +24 -0
  237. package/dist/hub/init/directory-certificate.js +222 -0
  238. package/dist/hub/init/directory-certificate.js.map +1 -0
  239. package/dist/hub/init/existing-fleet.d.ts +6 -0
  240. package/dist/hub/init/existing-fleet.js +58 -0
  241. package/dist/hub/init/existing-fleet.js.map +1 -0
  242. package/dist/hub/init/handoff.d.ts +8 -0
  243. package/dist/hub/init/handoff.js +36 -0
  244. package/dist/hub/init/handoff.js.map +1 -0
  245. package/dist/hub/init/identity.d.ts +5 -0
  246. package/dist/hub/init/identity.js +24 -0
  247. package/dist/hub/init/identity.js.map +1 -0
  248. package/dist/hub/init/initializer.d.ts +24 -0
  249. package/dist/hub/init/initializer.js +385 -0
  250. package/dist/hub/init/initializer.js.map +1 -0
  251. package/dist/hub/init/inventory.d.ts +17 -0
  252. package/dist/hub/init/inventory.js +33 -0
  253. package/dist/hub/init/inventory.js.map +1 -0
  254. package/dist/hub/init/layout.d.ts +32 -0
  255. package/dist/hub/init/layout.js +53 -0
  256. package/dist/hub/init/layout.js.map +1 -0
  257. package/dist/hub/init/network.d.ts +18 -0
  258. package/dist/hub/init/network.js +104 -0
  259. package/dist/hub/init/network.js.map +1 -0
  260. package/dist/hub/init/plan-digest.d.ts +5 -0
  261. package/dist/hub/init/plan-digest.js +47 -0
  262. package/dist/hub/init/plan-digest.js.map +1 -0
  263. package/dist/hub/init/prompt.d.ts +26 -0
  264. package/dist/hub/init/prompt.js +110 -0
  265. package/dist/hub/init/prompt.js.map +1 -0
  266. package/dist/hub/init/secret-file.d.ts +1 -0
  267. package/dist/hub/init/secret-file.js +59 -0
  268. package/dist/hub/init/secret-file.js.map +1 -0
  269. package/dist/hub/init/text.d.ts +127 -0
  270. package/dist/hub/init/text.js +247 -0
  271. package/dist/hub/init/text.js.map +1 -0
  272. package/dist/hub/init/types.d.ts +114 -0
  273. package/dist/hub/init/types.js +9 -0
  274. package/dist/hub/init/types.js.map +1 -0
  275. package/dist/hub/init/wizard.d.ts +34 -0
  276. package/dist/hub/init/wizard.js +554 -0
  277. package/dist/hub/init/wizard.js.map +1 -0
  278. package/dist/hub/initialization.d.ts +23 -0
  279. package/dist/hub/initialization.js +28 -0
  280. package/dist/hub/initialization.js.map +1 -0
  281. package/dist/hub/member/agent-mode.d.ts +6 -0
  282. package/dist/hub/member/agent-mode.js +23 -0
  283. package/dist/hub/member/agent-mode.js.map +1 -0
  284. package/dist/hub/member/attachments.d.ts +29 -0
  285. package/dist/hub/member/attachments.js +107 -0
  286. package/dist/hub/member/attachments.js.map +1 -0
  287. package/dist/hub/member/exposure-api.d.ts +87 -0
  288. package/dist/hub/member/exposure-api.js +64 -0
  289. package/dist/hub/member/exposure-api.js.map +1 -0
  290. package/dist/hub/member/exposures.d.ts +123 -0
  291. package/dist/hub/member/exposures.js +282 -0
  292. package/dist/hub/member/exposures.js.map +1 -0
  293. package/dist/hub/member/pairing-api.d.ts +85 -0
  294. package/dist/hub/member/pairing-api.js +385 -0
  295. package/dist/hub/member/pairing-api.js.map +1 -0
  296. package/dist/hub/member/quota.d.ts +20 -0
  297. package/dist/hub/member/quota.js +98 -0
  298. package/dist/hub/member/quota.js.map +1 -0
  299. package/dist/hub/member-journal.d.ts +104 -0
  300. package/dist/hub/member-journal.js +336 -0
  301. package/dist/hub/member-journal.js.map +1 -0
  302. package/dist/hub/member-reconciliation.d.ts +14 -0
  303. package/dist/hub/member-reconciliation.js +97 -0
  304. package/dist/hub/member-reconciliation.js.map +1 -0
  305. package/dist/hub/mount.d.ts +39 -0
  306. package/dist/hub/mount.js +123 -0
  307. package/dist/hub/mount.js.map +1 -0
  308. package/dist/hub/pairing-client.d.ts +17 -0
  309. package/dist/hub/pairing-client.js +108 -0
  310. package/dist/hub/pairing-client.js.map +1 -0
  311. package/dist/hub/pairing.d.ts +65 -0
  312. package/dist/hub/pairing.js +211 -0
  313. package/dist/hub/pairing.js.map +1 -0
  314. package/dist/hub/policy.d.ts +63 -0
  315. package/dist/hub/policy.js +147 -0
  316. package/dist/hub/policy.js.map +1 -0
  317. package/dist/hub/preview.d.ts +32 -0
  318. package/dist/hub/preview.js +64 -0
  319. package/dist/hub/preview.js.map +1 -0
  320. package/dist/hub/private-files.d.ts +5 -0
  321. package/dist/hub/private-files.js +44 -0
  322. package/dist/hub/private-files.js.map +1 -0
  323. package/dist/hub/profile.d.ts +59 -0
  324. package/dist/hub/profile.js +73 -0
  325. package/dist/hub/profile.js.map +1 -0
  326. package/dist/hub/protocol.d.ts +779 -0
  327. package/dist/hub/protocol.js +93 -0
  328. package/dist/hub/protocol.js.map +1 -0
  329. package/dist/hub/quota.d.ts +24 -0
  330. package/dist/hub/quota.js +112 -0
  331. package/dist/hub/quota.js.map +1 -0
  332. package/dist/hub/representative.d.ts +141 -0
  333. package/dist/hub/representative.js +528 -0
  334. package/dist/hub/representative.js.map +1 -0
  335. package/dist/hub/retention.d.ts +17 -0
  336. package/dist/hub/retention.js +45 -0
  337. package/dist/hub/retention.js.map +1 -0
  338. package/dist/hub/rooms.d.ts +120 -0
  339. package/dist/hub/rooms.js +535 -0
  340. package/dist/hub/rooms.js.map +1 -0
  341. package/dist/hub/runtime.d.ts +106 -0
  342. package/dist/hub/runtime.js +298 -0
  343. package/dist/hub/runtime.js.map +1 -0
  344. package/dist/hub/server.d.ts +56 -0
  345. package/dist/hub/server.js +202 -0
  346. package/dist/hub/server.js.map +1 -0
  347. package/dist/hub/service-start.d.ts +17 -0
  348. package/dist/hub/service-start.js +109 -0
  349. package/dist/hub/service-start.js.map +1 -0
  350. package/dist/hub/sessions.d.ts +53 -0
  351. package/dist/hub/sessions.js +196 -0
  352. package/dist/hub/sessions.js.map +1 -0
  353. package/dist/hub/socket.d.ts +24 -0
  354. package/dist/hub/socket.js +79 -0
  355. package/dist/hub/socket.js.map +1 -0
  356. package/dist/hub/store.d.ts +77 -0
  357. package/dist/hub/store.js +88 -0
  358. package/dist/hub/store.js.map +1 -0
  359. package/dist/hub/tls.d.ts +31 -0
  360. package/dist/hub/tls.js +135 -0
  361. package/dist/hub/tls.js.map +1 -0
  362. package/dist/hub/types.d.ts +401 -0
  363. package/dist/hub/types.js +2 -0
  364. package/dist/hub/types.js.map +1 -0
  365. package/dist/hub/validation.d.ts +33 -0
  366. package/dist/hub/validation.js +136 -0
  367. package/dist/hub/validation.js.map +1 -0
  368. package/dist/hub/version-floor.d.ts +10 -0
  369. package/dist/hub/version-floor.js +45 -0
  370. package/dist/hub/version-floor.js.map +1 -0
  371. package/dist/hub-browser-certificate-policy.d.ts +31 -0
  372. package/dist/hub-browser-certificate-policy.js +25 -0
  373. package/dist/hub-browser-certificate-policy.js.map +1 -0
  374. package/dist/hub-membership-settings.d.ts +6 -0
  375. package/dist/hub-membership-settings.js +21 -0
  376. package/dist/hub-membership-settings.js.map +1 -0
  377. package/dist/hub-mode.d.ts +15 -0
  378. package/dist/hub-mode.js +17 -0
  379. package/dist/hub-mode.js.map +1 -0
  380. package/dist/hub-pairing-summary.d.ts +48 -0
  381. package/dist/hub-pairing-summary.js +36 -0
  382. package/dist/hub-pairing-summary.js.map +1 -0
  383. package/dist/hub-report-target.d.ts +32 -0
  384. package/dist/hub-report-target.js +33 -0
  385. package/dist/hub-report-target.js.map +1 -0
  386. package/dist/hub-retention-policy.d.ts +14 -0
  387. package/dist/hub-retention-policy.js +15 -0
  388. package/dist/hub-retention-policy.js.map +1 -0
  389. package/dist/instance-config-impact.js +3 -0
  390. package/dist/instance-config-impact.js.map +1 -1
  391. package/dist/instance-lifecycle.d.ts +17 -2
  392. package/dist/instance-lifecycle.js +58 -8
  393. package/dist/instance-lifecycle.js.map +1 -1
  394. package/dist/instance-topic-delete.d.ts +77 -0
  395. package/dist/instance-topic-delete.js +123 -0
  396. package/dist/instance-topic-delete.js.map +1 -0
  397. package/dist/instructions.d.ts +1 -1
  398. package/dist/instructions.js +1 -1
  399. package/dist/instructions.js.map +1 -1
  400. package/dist/kiro-engine-status.d.ts +11 -0
  401. package/dist/kiro-engine-status.js +6 -0
  402. package/dist/kiro-engine-status.js.map +1 -1
  403. package/dist/launchd-service-domain.d.ts +5 -0
  404. package/dist/launchd-service-domain.js +21 -0
  405. package/dist/launchd-service-domain.js.map +1 -0
  406. package/dist/locale.js +125 -3
  407. package/dist/locale.js.map +1 -1
  408. package/dist/log-service.d.ts +28 -0
  409. package/dist/log-service.js +29 -0
  410. package/dist/log-service.js.map +1 -1
  411. package/dist/log-steps.d.ts +4 -3
  412. package/dist/log-steps.js +32 -7
  413. package/dist/log-steps.js.map +1 -1
  414. package/dist/logger.d.ts +16 -2
  415. package/dist/logger.js +346 -66
  416. package/dist/logger.js.map +1 -1
  417. package/dist/login-flows.d.ts +15 -7
  418. package/dist/login-flows.js +29 -3
  419. package/dist/login-flows.js.map +1 -1
  420. package/dist/login-manager.js +25 -4
  421. package/dist/login-manager.js.map +1 -1
  422. package/dist/ls-rows.js +3 -4
  423. package/dist/ls-rows.js.map +1 -1
  424. package/dist/missed-offline.d.ts +25 -0
  425. package/dist/missed-offline.js +79 -0
  426. package/dist/missed-offline.js.map +1 -0
  427. package/dist/native-instance-api.d.ts +0 -1
  428. package/dist/native-instance-api.js +15 -3
  429. package/dist/native-instance-api.js.map +1 -1
  430. package/dist/native-instance-input.d.ts +3 -0
  431. package/dist/native-instance-input.js +6 -1
  432. package/dist/native-instance-input.js.map +1 -1
  433. package/dist/native-instance-registry.d.ts +6 -0
  434. package/dist/native-instance-registry.js +24 -0
  435. package/dist/native-instance-registry.js.map +1 -1
  436. package/dist/native-mcp.d.ts +3 -0
  437. package/dist/native-mcp.js +15 -2
  438. package/dist/native-mcp.js.map +1 -1
  439. package/dist/native-pane-lifecycle.d.ts +8 -0
  440. package/dist/native-pane-lifecycle.js +13 -4
  441. package/dist/native-pane-lifecycle.js.map +1 -1
  442. package/dist/native-pane-manager.js +17 -9
  443. package/dist/native-pane-manager.js.map +1 -1
  444. package/dist/needs-you-hub.d.ts +9 -1
  445. package/dist/needs-you-hub.js +46 -8
  446. package/dist/needs-you-hub.js.map +1 -1
  447. package/dist/needs-you.d.ts +47 -2
  448. package/dist/needs-you.js +31 -3
  449. package/dist/needs-you.js.map +1 -1
  450. package/dist/office-share-page.js +3 -3
  451. package/dist/office-share-page.js.map +1 -1
  452. package/dist/office-share.d.ts +11 -0
  453. package/dist/office-share.js +14 -0
  454. package/dist/office-share.js.map +1 -1
  455. package/dist/office-talk.d.ts +26 -0
  456. package/dist/office-talk.js +50 -0
  457. package/dist/office-talk.js.map +1 -0
  458. package/dist/outbound-handlers.d.ts +14 -0
  459. package/dist/outbound-handlers.js +49 -6
  460. package/dist/outbound-handlers.js.map +1 -1
  461. package/dist/outbound-schemas.d.ts +33 -1
  462. package/dist/outbound-schemas.js +29 -16
  463. package/dist/outbound-schemas.js.map +1 -1
  464. package/dist/pane-quota-history.d.ts +9 -0
  465. package/dist/pane-quota-history.js +67 -0
  466. package/dist/pane-quota-history.js.map +1 -0
  467. package/dist/pause-marker.d.ts +1 -1
  468. package/dist/pause-marker.js +1 -1
  469. package/dist/pause-marker.js.map +1 -1
  470. package/dist/platform-general.d.ts +46 -0
  471. package/dist/platform-general.js +91 -0
  472. package/dist/platform-general.js.map +1 -0
  473. package/dist/public-web-gateway.js +7 -0
  474. package/dist/public-web-gateway.js.map +1 -1
  475. package/dist/public-web-link.d.ts +6 -0
  476. package/dist/public-web-link.js +9 -0
  477. package/dist/public-web-link.js.map +1 -1
  478. package/dist/queued-handoffs.d.ts +33 -0
  479. package/dist/queued-handoffs.js +75 -0
  480. package/dist/queued-handoffs.js.map +1 -0
  481. package/dist/quickstart.d.ts +13 -0
  482. package/dist/quickstart.js +81 -5
  483. package/dist/quickstart.js.map +1 -1
  484. package/dist/quota-notice.d.ts +7 -0
  485. package/dist/quota-notice.js +40 -0
  486. package/dist/quota-notice.js.map +1 -1
  487. package/dist/reply-buttons-controller.js +10 -6
  488. package/dist/reply-buttons-controller.js.map +1 -1
  489. package/dist/reply-polls.d.ts +2 -2
  490. package/dist/reply-polls.js +3 -3
  491. package/dist/reply-polls.js.map +1 -1
  492. package/dist/runtime-api.d.ts +2 -0
  493. package/dist/runtime-api.js +106 -13
  494. package/dist/runtime-api.js.map +1 -1
  495. package/dist/runtime-build-info.d.ts +9 -0
  496. package/dist/runtime-build-info.js +59 -0
  497. package/dist/runtime-build-info.js.map +1 -0
  498. package/dist/runtime-bundle.d.ts +6 -1
  499. package/dist/runtime-bundle.js +17 -9
  500. package/dist/runtime-bundle.js.map +1 -1
  501. package/dist/runtime-cli.d.ts +13 -1
  502. package/dist/runtime-cli.js +173 -19
  503. package/dist/runtime-cli.js.map +1 -1
  504. package/dist/runtime-client-store.d.ts +27 -1
  505. package/dist/runtime-client-store.js +86 -6
  506. package/dist/runtime-client-store.js.map +1 -1
  507. package/dist/runtime-client.d.ts +74 -0
  508. package/dist/runtime-client.js +336 -26
  509. package/dist/runtime-client.js.map +1 -1
  510. package/dist/runtime-connection.d.ts +22 -0
  511. package/dist/runtime-connection.js +93 -0
  512. package/dist/runtime-connection.js.map +1 -0
  513. package/dist/runtime-coordinator.d.ts +16 -0
  514. package/dist/runtime-coordinator.js +287 -62
  515. package/dist/runtime-coordinator.js.map +1 -1
  516. package/dist/runtime-credential-profiles.d.ts +78 -0
  517. package/dist/runtime-credential-profiles.js +280 -0
  518. package/dist/runtime-credential-profiles.js.map +1 -0
  519. package/dist/runtime-install.d.ts +50 -0
  520. package/dist/runtime-install.js +186 -0
  521. package/dist/runtime-install.js.map +1 -0
  522. package/dist/runtime-pane-assets.d.ts +1 -1
  523. package/dist/runtime-pane-assets.js +1 -1
  524. package/dist/runtime-pane-assets.js.map +1 -1
  525. package/dist/runtime-pane-boot.d.ts +7 -0
  526. package/dist/runtime-pane-boot.js +23 -0
  527. package/dist/runtime-pane-boot.js.map +1 -1
  528. package/dist/runtime-pane-codex-index.d.ts +10 -1
  529. package/dist/runtime-pane-codex-index.js +131 -27
  530. package/dist/runtime-pane-codex-index.js.map +1 -1
  531. package/dist/runtime-pane-host.d.ts +19 -0
  532. package/dist/runtime-pane-host.js +50 -7
  533. package/dist/runtime-pane-host.js.map +1 -1
  534. package/dist/runtime-pane-link.d.ts +7 -0
  535. package/dist/runtime-pane-link.js +93 -2
  536. package/dist/runtime-pane-link.js.map +1 -1
  537. package/dist/runtime-pane-mcp-relay.d.ts +1 -0
  538. package/dist/runtime-pane-mcp-relay.js +10 -0
  539. package/dist/runtime-pane-mcp-relay.js.map +1 -1
  540. package/dist/runtime-pane-mcp.d.ts +4 -0
  541. package/dist/runtime-pane-mcp.js +6 -3
  542. package/dist/runtime-pane-mcp.js.map +1 -1
  543. package/dist/runtime-pane-native.d.ts +32 -2
  544. package/dist/runtime-pane-native.js +55 -6
  545. package/dist/runtime-pane-native.js.map +1 -1
  546. package/dist/runtime-pane-port.d.ts +5 -0
  547. package/dist/runtime-pane-port.js +17 -1
  548. package/dist/runtime-pane-port.js.map +1 -1
  549. package/dist/runtime-pane-process.d.ts +1 -1
  550. package/dist/runtime-pane-process.js +11 -2
  551. package/dist/runtime-pane-process.js.map +1 -1
  552. package/dist/runtime-pane-protocol.d.ts +11 -1
  553. package/dist/runtime-pane-protocol.js +27 -5
  554. package/dist/runtime-pane-protocol.js.map +1 -1
  555. package/dist/runtime-pane-quota-history.d.ts +6 -0
  556. package/dist/runtime-pane-quota-history.js +44 -0
  557. package/dist/runtime-pane-quota-history.js.map +1 -0
  558. package/dist/runtime-pane-service.d.ts +5 -0
  559. package/dist/runtime-pane-service.js +47 -12
  560. package/dist/runtime-pane-service.js.map +1 -1
  561. package/dist/runtime-pane-transcript.d.ts +5 -0
  562. package/dist/runtime-pane-transcript.js +66 -5
  563. package/dist/runtime-pane-transcript.js.map +1 -1
  564. package/dist/runtime-pane-worker.js +19 -6
  565. package/dist/runtime-pane-worker.js.map +1 -1
  566. package/dist/runtime-protocol.d.ts +30 -2
  567. package/dist/runtime-protocol.js +30 -0
  568. package/dist/runtime-protocol.js.map +1 -1
  569. package/dist/runtime-update-activity.d.ts +21 -0
  570. package/dist/runtime-update-activity.js +51 -0
  571. package/dist/runtime-update-activity.js.map +1 -0
  572. package/dist/runtime-update-artifact.d.ts +31 -0
  573. package/dist/runtime-update-artifact.js +252 -0
  574. package/dist/runtime-update-artifact.js.map +1 -0
  575. package/dist/runtime-update-install.d.ts +31 -0
  576. package/dist/runtime-update-install.js +205 -0
  577. package/dist/runtime-update-install.js.map +1 -0
  578. package/dist/runtime-update-journal.d.ts +44 -0
  579. package/dist/runtime-update-journal.js +121 -0
  580. package/dist/runtime-update-journal.js.map +1 -0
  581. package/dist/runtime-update-lock.d.ts +48 -0
  582. package/dist/runtime-update-lock.js +217 -0
  583. package/dist/runtime-update-lock.js.map +1 -0
  584. package/dist/runtime-update-owners.d.ts +29 -0
  585. package/dist/runtime-update-owners.js +240 -0
  586. package/dist/runtime-update-owners.js.map +1 -0
  587. package/dist/runtime-update-protocol.d.ts +15 -0
  588. package/dist/runtime-update-protocol.js +13 -0
  589. package/dist/runtime-update-protocol.js.map +1 -0
  590. package/dist/runtime-windows-bridge.d.ts +2 -1
  591. package/dist/runtime-windows-bridge.js +11 -1
  592. package/dist/runtime-windows-bridge.js.map +1 -1
  593. package/dist/scheduler/db.d.ts +2 -1
  594. package/dist/scheduler/db.js +23 -9
  595. package/dist/scheduler/db.js.map +1 -1
  596. package/dist/scheduler/task-board-text.js +1 -1
  597. package/dist/scheduler/task-board-text.js.map +1 -1
  598. package/dist/scheduler/task-board.d.ts +13 -0
  599. package/dist/scheduler/task-board.js +28 -3
  600. package/dist/scheduler/task-board.js.map +1 -1
  601. package/dist/service-drain.d.ts +19 -0
  602. package/dist/service-drain.js +64 -0
  603. package/dist/service-drain.js.map +1 -0
  604. package/dist/service-installer.d.ts +7 -2
  605. package/dist/service-installer.js +13 -10
  606. package/dist/service-installer.js.map +1 -1
  607. package/dist/settings-api.d.ts +20 -0
  608. package/dist/settings-api.js +414 -4
  609. package/dist/settings-api.js.map +1 -1
  610. package/dist/settings-baseline.d.ts +6 -0
  611. package/dist/settings-baseline.js +3 -1
  612. package/dist/settings-baseline.js.map +1 -1
  613. package/dist/settings-change.js +29 -6
  614. package/dist/settings-change.js.map +1 -1
  615. package/dist/settings-effect.d.ts +13 -0
  616. package/dist/settings-effect.js +98 -1
  617. package/dist/settings-effect.js.map +1 -1
  618. package/dist/settings-http-confirmation.d.ts +3 -0
  619. package/dist/settings-http-confirmation.js +28 -1
  620. package/dist/settings-http-confirmation.js.map +1 -1
  621. package/dist/settings-instance-patch.js +27 -0
  622. package/dist/settings-instance-patch.js.map +1 -1
  623. package/dist/setup-wizard.js +6 -2
  624. package/dist/setup-wizard.js.map +1 -1
  625. package/dist/task-board-tool.d.ts +13 -1
  626. package/dist/task-board-tool.js +104 -4
  627. package/dist/task-board-tool.js.map +1 -1
  628. package/dist/task-board-waker.d.ts +6 -0
  629. package/dist/task-board-waker.js +4 -0
  630. package/dist/task-board-waker.js.map +1 -1
  631. package/dist/tmux-binary.d.ts +59 -0
  632. package/dist/tmux-binary.js +200 -0
  633. package/dist/tmux-binary.js.map +1 -0
  634. package/dist/tmux-control.js +4 -4
  635. package/dist/tmux-control.js.map +1 -1
  636. package/dist/tmux-exec-helper.js +32 -1
  637. package/dist/tmux-exec-helper.js.map +1 -1
  638. package/dist/tmux-manager.d.ts +1 -1
  639. package/dist/tmux-manager.js +45 -36
  640. package/dist/tmux-manager.js.map +1 -1
  641. package/dist/tmux-read.js +4 -3
  642. package/dist/tmux-read.js.map +1 -1
  643. package/dist/tool-permissions.d.ts +5 -2
  644. package/dist/tool-permissions.js +6 -5
  645. package/dist/tool-permissions.js.map +1 -1
  646. package/dist/tool-progress.d.ts +2 -0
  647. package/dist/tool-progress.js +19 -3
  648. package/dist/tool-progress.js.map +1 -1
  649. package/dist/topic-commands.js +10 -5
  650. package/dist/topic-commands.js.map +1 -1
  651. package/dist/transcript-monitor.d.ts +20 -0
  652. package/dist/transcript-monitor.js +47 -3
  653. package/dist/transcript-monitor.js.map +1 -1
  654. package/dist/transcript-needles.d.ts +7 -0
  655. package/dist/transcript-needles.js +9 -1
  656. package/dist/transcript-needles.js.map +1 -1
  657. package/dist/transcript-records.d.ts +1 -1
  658. package/dist/transcript-records.js +2 -1
  659. package/dist/transcript-records.js.map +1 -1
  660. package/dist/types.d.ts +6 -0
  661. package/dist/ui/account-identity.js +27 -0
  662. package/dist/ui/accounts-view.js +214 -0
  663. package/dist/ui/agent-runtime-settings.js +68 -0
  664. package/dist/ui/agent-runtime.js +20 -2
  665. package/dist/ui/backend-signin.js +39 -21
  666. package/dist/ui/chat-ambient.js +1 -1
  667. package/dist/ui/chat-md-strings.js +3 -0
  668. package/dist/ui/chat-render.js +3 -670
  669. package/dist/ui/chat-store.js +1 -1
  670. package/dist/ui/chat-strings.js +3 -333
  671. package/dist/ui/chat-thread.js +3 -919
  672. package/dist/ui/chat-time.js +3 -80
  673. package/dist/ui/chat-tour.js +1 -1
  674. package/dist/ui/credential-profile-select.js +54 -0
  675. package/dist/ui/fleet-office-dialogue.d.ts +30 -0
  676. package/dist/ui/fleet-office-dialogue.js +382 -0
  677. package/dist/ui/fleet-office-pack.d.ts +9 -0
  678. package/dist/ui/fleet-office-pack.js +76 -4
  679. package/dist/ui/fleet-office-skin.js +23 -5
  680. package/dist/ui/fleet-office-store.js +5 -0
  681. package/dist/ui/fleet-office.js +173 -6
  682. package/dist/ui/fleet-task-card.js +10 -6
  683. package/dist/ui/fleet-task-common.js +12 -2
  684. package/dist/ui/fleet-task-menu.js +188 -0
  685. package/dist/ui/fleet-task-stats.js +124 -0
  686. package/dist/ui/fleet-task-view.js +340 -0
  687. package/dist/ui/fleet-tasks.js +131 -43
  688. package/dist/ui/fleet-usage.js +90 -27
  689. package/dist/ui/html-attachment.js +3 -40
  690. package/dist/ui/hub-agent-copy.js +23 -0
  691. package/dist/ui/hub-button-actions.js +65 -0
  692. package/dist/ui/hub-chat-store.js +158 -0
  693. package/dist/ui/hub-chat-strings.js +77 -0
  694. package/dist/ui/hub-client.js +329 -0
  695. package/dist/ui/hub-owner-strings.js +51 -0
  696. package/dist/ui/hub-provider-guidance.js +31 -0
  697. package/dist/ui/hub-quota.js +85 -0
  698. package/dist/ui/hub-strings.js +162 -0
  699. package/dist/ui/hub-switcher.js +27 -0
  700. package/dist/ui/native-instance-settings.js +5 -8
  701. package/dist/ui/native-pane-recovery.js +1 -1
  702. package/dist/ui/office-share-page.js +4 -2
  703. package/dist/ui/panel-chat.js +36 -49
  704. package/dist/ui/panel-details.js +1 -1
  705. package/dist/ui/panel-fleet.js +82 -12
  706. package/dist/ui/panel-hub.js +619 -0
  707. package/dist/ui/panel-log.js +2 -2
  708. package/dist/ui/panel-needs.js +24 -8
  709. package/dist/ui/panel-runtimes.js +239 -45
  710. package/dist/ui/panel-settings.js +266 -192
  711. package/dist/ui/panel-windows-cli.js +88 -42
  712. package/dist/ui/preview-pages.js +1 -1
  713. package/dist/ui/preview-panel.js +92 -6
  714. package/dist/ui/preview-versions.js +1 -1
  715. package/dist/ui/preview.js +3 -476
  716. package/dist/ui/runtime-commands.d.ts +4 -0
  717. package/dist/ui/runtime-commands.js +59 -0
  718. package/dist/ui/search-dialog.js +2 -0
  719. package/dist/ui/settings-access-strings.js +42 -0
  720. package/dist/ui/settings-agent-filters.js +94 -0
  721. package/dist/ui/settings-appearance.js +122 -23
  722. package/dist/ui/settings-build-version.js +35 -0
  723. package/dist/ui/settings-codex-copy.js +19 -0
  724. package/dist/ui/settings-devices.js +253 -0
  725. package/dist/ui/settings-dialogs.js +33 -12
  726. package/dist/ui/settings-guests.js +25 -11
  727. package/dist/ui/settings-hub-browser-certificate.js +74 -0
  728. package/dist/ui/settings-hub-membership.js +72 -0
  729. package/dist/ui/settings-hub-retention.js +52 -0
  730. package/dist/ui/settings-hub.js +196 -0
  731. package/dist/ui/settings-layout.js +242 -0
  732. package/dist/ui/settings-model.js +24 -2
  733. package/dist/ui/settings-outside.js +104 -38
  734. package/dist/ui/settings-registry.js +9 -4
  735. package/dist/ui/settings-shared-strings.js +143 -0
  736. package/dist/ui/settings-shared.js +345 -0
  737. package/dist/ui/settings-shortcuts.js +65 -0
  738. package/dist/ui/settings-strings.js +89 -32
  739. package/dist/ui/settings-web-authority.js +17 -11
  740. package/dist/ui/shared/accounts.css +15 -0
  741. package/dist/ui/shared/app-i18n.js +2 -2
  742. package/dist/ui/shared/app-needs.js +1 -1
  743. package/dist/ui/shared/app-route.js +6 -1
  744. package/dist/ui/shared/app-session.js +6 -2
  745. package/dist/ui/shared/app-shell.js +81 -15
  746. package/dist/ui/shared/app.css +1114 -13
  747. package/dist/ui/shared/app.js +12 -3
  748. package/dist/ui/shared/chat-composer.js +68 -0
  749. package/dist/ui/shared/chat-md-strings.js +9 -0
  750. package/dist/ui/shared/chat-render.js +682 -0
  751. package/dist/ui/shared/chat-strings.js +333 -0
  752. package/dist/ui/shared/chat-thread.js +969 -0
  753. package/dist/ui/shared/chat-time.js +80 -0
  754. package/dist/ui/shared/header-tools.js +3 -5
  755. package/dist/ui/shared/html-attachment.js +42 -0
  756. package/dist/ui/shared/hub-chat.css +85 -0
  757. package/dist/ui/shared/hub-owner.css +33 -0
  758. package/dist/ui/shared/hub-quota.css +8 -0
  759. package/dist/ui/shared/hub.css +71 -0
  760. package/dist/ui/shared/instance-nav.js +3 -2
  761. package/dist/ui/shared/machine-name.js +13 -0
  762. package/dist/ui/shared/page-head.js +8 -0
  763. package/dist/ui/shared/panel-view.js +77 -4
  764. package/dist/ui/shared/preview.js +476 -0
  765. package/dist/ui/shared/runtime-install.css +26 -0
  766. package/dist/ui/shared/settings-width.js +31 -0
  767. package/dist/ui/shared/side-rail.js +15 -0
  768. package/dist/ui/shared/signin.js +172 -0
  769. package/dist/ui/shared/task-board.css +95 -0
  770. package/dist/ui/shared/tokens.css +1 -0
  771. package/dist/ui/shared/ui-dialog.js +2 -2
  772. package/dist/ui/shared/ui-menu.js +3 -3
  773. package/dist/ui/shared/usage-dialog.js +18 -1
  774. package/dist/ui/shared/view-history.css +17 -0
  775. package/dist/ui/shared/view-history.js +438 -0
  776. package/dist/ui/shared/view-strings.js +16 -0
  777. package/dist/ui/shared/workspace.css +20 -0
  778. package/dist/ui/signin.html +21 -0
  779. package/dist/ui/windows-cli-catalog.js +41 -12
  780. package/dist/ui/workspace-panel.js +189 -0
  781. package/dist/ui/workspace-strings.js +35 -0
  782. package/dist/unattended-install.d.ts +11 -2
  783. package/dist/unattended-install.js +41 -6
  784. package/dist/unattended-install.js.map +1 -1
  785. package/dist/usage/capacity.d.ts +69 -0
  786. package/dist/usage/capacity.js +119 -0
  787. package/dist/usage/capacity.js.map +1 -0
  788. package/dist/usage/i18n-keys.d.ts +1 -1
  789. package/dist/usage/i18n-keys.js +3 -0
  790. package/dist/usage/i18n-keys.js.map +1 -1
  791. package/dist/usage/profile-timeline.d.ts +16 -0
  792. package/dist/usage/profile-timeline.js +58 -0
  793. package/dist/usage/profile-timeline.js.map +1 -0
  794. package/dist/usage/providers.js +2 -1
  795. package/dist/usage/providers.js.map +1 -1
  796. package/dist/usage/quota-history.d.ts +43 -0
  797. package/dist/usage/quota-history.js +168 -0
  798. package/dist/usage/quota-history.js.map +1 -0
  799. package/dist/usage/usage-api.d.ts +31 -0
  800. package/dist/usage/usage-api.js +80 -1
  801. package/dist/usage/usage-api.js.map +1 -1
  802. package/dist/usage-report.d.ts +25 -1
  803. package/dist/usage-report.js +55 -4
  804. package/dist/usage-report.js.map +1 -1
  805. package/dist/usage-rollup.d.ts +6 -1
  806. package/dist/usage-rollup.js +16 -4
  807. package/dist/usage-rollup.js.map +1 -1
  808. package/dist/view-api.d.ts +16 -0
  809. package/dist/view-api.js +105 -23
  810. package/dist/view-api.js.map +1 -1
  811. package/dist/view-history.d.ts +84 -0
  812. package/dist/view-history.js +116 -0
  813. package/dist/view-history.js.map +1 -0
  814. package/dist/web-api.d.ts +49 -2
  815. package/dist/web-api.js +279 -8
  816. package/dist/web-api.js.map +1 -1
  817. package/dist/web-backend-login.d.ts +23 -1
  818. package/dist/web-backend-login.js +11 -17
  819. package/dist/web-backend-login.js.map +1 -1
  820. package/dist/web-device-login.d.ts +153 -0
  821. package/dist/web-device-login.js +278 -0
  822. package/dist/web-device-login.js.map +1 -0
  823. package/dist/web-office-skins.d.ts +9 -0
  824. package/dist/web-office-skins.js +16 -1
  825. package/dist/web-office-skins.js.map +1 -1
  826. package/dist/web-session-authorization.d.ts +13 -2
  827. package/dist/web-session-authorization.js +10 -3
  828. package/dist/web-session-authorization.js.map +1 -1
  829. package/dist/web-session.d.ts +35 -0
  830. package/dist/web-session.js +7 -0
  831. package/dist/web-session.js.map +1 -1
  832. package/dist/web-settings-patch.d.ts +3 -1
  833. package/dist/web-settings-patch.js +4 -1
  834. package/dist/web-settings-patch.js.map +1 -1
  835. package/dist/web-shell-routes.d.ts +6 -0
  836. package/dist/web-shell-routes.js +7 -0
  837. package/dist/web-shell-routes.js.map +1 -1
  838. package/dist/web-terminal.d.ts +4 -30
  839. package/dist/web-terminal.js +9 -6
  840. package/dist/web-terminal.js.map +1 -1
  841. package/dist/windows-agents.d.ts +4 -1
  842. package/dist/windows-agents.js +14 -10
  843. package/dist/windows-agents.js.map +1 -1
  844. package/dist/windows-cli-api.d.ts +12 -1
  845. package/dist/windows-cli-api.js +29 -2
  846. package/dist/windows-cli-api.js.map +1 -1
  847. package/dist/windows-cli-providers.d.ts +0 -9
  848. package/dist/windows-cli-providers.js +4 -9
  849. package/dist/windows-cli-providers.js.map +1 -1
  850. package/dist/windows-cli-worker.d.ts +25 -0
  851. package/dist/windows-cli-worker.js +98 -7
  852. package/dist/windows-cli-worker.js.map +1 -1
  853. package/dist/windows-cli.d.ts +11 -0
  854. package/dist/windows-cli.js +17 -3
  855. package/dist/windows-cli.js.map +1 -1
  856. package/dist/yaml-shared-nodes.js +8 -3
  857. package/dist/yaml-shared-nodes.js.map +1 -1
  858. package/launcher/agend-install.cjs +8 -1
  859. package/launcher/launchd-session-type.cjs +14 -0
  860. package/launcher/postinstall.cjs +27 -2
  861. package/launcher/private-home.cjs +1 -1
  862. package/launcher/tmux-bundle.cjs +247 -0
  863. package/package.json +3 -2
  864. package/templates/launchd.plist.ejs +3 -1
  865. package/templates/runtime-install/install.ps1 +270 -0
@@ -5,15 +5,20 @@
5
5
  // Every change applies at once (an action, not a staged setting) and is this computer's only: elsewhere the card shows
6
6
  // the state, read-only. The server decides who may (GET /ui/outside's `here`) and refuses everything else regardless.
7
7
  // The words are the leader's (cid-alpha3-design, strings 1–13 and 17).
8
+ // Refs #3061: "Set up authenticator app" / "Set up again" open the reference page's dialog (the app's own Dialog: the
9
+ // browser traps focus and closes it on Esc; focus goes back to the button that opened it) — the QR code and the key (step 1),
10
+ // the code field (step 2), Cancel and "Verify and turn on". A wrong code is answered inside the dialog.
8
11
  import { html, useEffect, useRef, useState } from "/assets/app-html.js";
9
12
  import { t, register } from "/assets/app-i18n.js";
10
13
  import { toast } from "/assets/ui-toast.js";
11
14
  import { confirmDialog } from "/assets/ui-confirm.js";
15
+ import { Dialog } from "/assets/ui-dialog.js";
12
16
  import { api } from "./settings-confirm.js";
13
17
 
14
18
  register("outside", {
15
19
  en: {
16
- title: "Connections from outside", switch: "Allow connections from outside",
20
+ title: "Owner verification", lead: "Use your authenticator app's 6-digit code to prove, from outside, that you own this fleet.",
21
+ stateOn: "Authenticator set up", stateOff: "Not set up", switch: "Allow connections from outside",
17
22
  needApp: "Set up an authenticator app first. Signing in from outside will ask for its code.",
18
23
  setUp: "Set up authenticator app",
19
24
  scan: "Scan this with Authy, Google Authenticator or Microsoft Authenticator, or type the key. Then enter the 6-digit code it shows.",
@@ -21,21 +26,32 @@ register("outside", {
21
26
  againConfirm: "Codes from the old app stop working, and everyone signed in from outside is signed out.",
22
27
  remove: "Remove", removeConfirm: "Connections from outside are turned off, and everyone signed in from outside is signed out.",
23
28
  openAt: "Open at {0}.", quick: "A quick link gets a new address each time it opens.",
24
- hereOnly: "Only on the AgEnD computer.", lostPhone: "Lost your phone? On the AgEnD computer, choose “Set up again”.",
29
+ hereOnly: "Only on the AgEnD computer. Go back to that computer to set up, set up again or remove the app.",
30
+ lostPhone: "Lost your phone? On the AgEnD computer, choose “Set up again”. There is no email or backup-code recovery.",
31
+ noRecovery: "If you lose the authenticator, set it up again on the AgEnD computer. There is no email or backup-code recovery.",
32
+ appsLabel: "Works with these authenticator apps", appOther: "Other TOTP authenticators",
33
+ step1: "1. Add AgEnD to your authenticator", step2: "2. Enter the authenticator code to finish",
34
+ activate: "Verify and turn on", removeTitle: "Remove the authenticator app?",
25
35
  wrong: "That code didn't work. Check that your phone's clock is right and try the newest code.",
26
36
  paused: "Too many wrong codes. Try again in {0}.", code: "Authenticator code", key: "Key",
27
37
  minutes: "{0} minutes", minute: "1 minute", hours: "{0} hours", hour: "1 hour",
28
38
  },
29
39
  "zh-TW": {
30
- title: "從外面連線", switch: "允許從外面連線",
40
+ title: "擁有者驗證", lead: "使用驗證器 App 的 6 位數代碼,從外面證明你是這個 fleet 的擁有者。",
41
+ stateOn: "驗證器已設定", stateOff: "尚未設定", switch: "允許從外面連線",
31
42
  needApp: "請先設定驗證器 App。從外面登入時會要求輸入它的代碼。",
32
- setUp: "設定驗證器 App",
43
+ setUp: "設定驗證器",
33
44
  scan: "用 Authy、Google Authenticator 或 Microsoft Authenticator 掃描,或手動輸入金鑰,再輸入 App 顯示的 6 位數代碼。",
34
- setUpOn: "驗證器 App 已於 {0} 設定。", again: "重新設定",
45
+ setUpOn: "驗證器 App 已於 {0} 設定。", again: "重新綁定驗證器",
35
46
  againConfirm: "舊 App 的代碼會失效,所有從外面登入的人都會被登出。",
36
- remove: "移除", removeConfirm: "從外面連線會關閉,所有從外面登入的人都會被登出。",
47
+ remove: "停用", removeConfirm: "從外面連線會關閉,所有從外面登入的人都會被登出。",
37
48
  openAt: "已開啟:{0}。", quick: "快速連結每次開啟網址都不同。",
38
- hereOnly: "只能在 AgEnD 電腦上變更。", lostPhone: "手機遺失?請在 AgEnD 電腦上選「重新設定」。",
49
+ hereOnly: "只能在 AgEnD 電腦上變更。設定、重新綁定或停用驗證器,請回到那台電腦操作。",
50
+ lostPhone: "手機遺失?請在 AgEnD 電腦上選「重新綁定驗證器」。沒有電子郵件或備援碼復原。",
51
+ noRecovery: "遺失驗證器時,請回 AgEnD 主機重新綁定。沒有電子郵件或備援碼復原。",
52
+ appsLabel: "可使用的驗證器 App", appOther: "其他 TOTP 驗證器",
53
+ step1: "1. 在驗證器中新增 AgEnD", step2: "2. 輸入驗證器代碼以完成綁定",
54
+ activate: "驗證並啟用", removeTitle: "停用驗證器?",
39
55
  wrong: "代碼不對。請確認手機時間正確,並輸入最新的代碼。",
40
56
  paused: "錯誤次數太多,請 {0} 後再試。", code: "驗證器代碼", key: "金鑰",
41
57
  minutes: "{0} 分鐘", minute: "1 分鐘", hours: "{0} 小時", hour: "1 小時",
@@ -82,6 +98,25 @@ function Qr({ uri }) {
82
98
  <rect width=${shape.size} height=${shape.size} fill="#fff" /><path d=${shape.d} fill="#000" /></svg>`;
83
99
  }
84
100
 
101
+ /**
102
+ * Refs #3061 review (P2 2): ONE enrolment request at a time, however often the dialog is closed and opened again. The server
103
+ * keeps a single pending secret: every POST /ui/outside/enroll replaces it. With the dialog able to close while a request
104
+ * is still out, "close, open again" used to send a second one; whichever reached the server last then decided which secret
105
+ * would confirm, and when that was the first (closed) one, the secret on the screen — the second's — was already replaced:
106
+ * its valid code failed. Dropping the first answer in the page cannot undo what the server did. So while a request is out
107
+ * the next dialog waits for that same answer and shows it (it is the only secret there is); a new one is asked for only
108
+ * when none is. Held outside the card: a card that is unmounted and mounted again (the person went to another section and
109
+ * back) meets the same request.
110
+ */
111
+ let enrolling = null;
112
+ function askEnrollment() {
113
+ if (!enrolling) {
114
+ const asked = (async () => { try { return await api("/ui/outside/enroll", { method: "POST", body: "{}" }); } catch { return null; } })();
115
+ enrolling = asked.finally(() => { enrolling = null; });
116
+ }
117
+ return enrolling;
118
+ }
119
+
85
120
  /**
86
121
  * #3035 review: how often the card reads the state again while it is shown — quickly while the link is opening (the
87
122
  * switch answers before the link is up), slowly otherwise (its lifetime ending, a wait starting or ending elsewhere).
@@ -89,10 +124,12 @@ function Qr({ uri }) {
89
124
  export const outsidePoll = { quickMs: 2000, slowMs: 15000 };
90
125
 
91
126
  export function OutsideCard() {
92
- const [s, setS] = useState(null), [enroll, setEnroll] = useState(null), [code, setCode] = useState(""), [msg, setMsg] = useState(""), [busy, setBusy] = useState(false);
127
+ // `dlg`: the set-up dialog while it is open — { kind: "setup" | "again", enroll: null (asking the server) | { secret, uri } }.
128
+ const [s, setS] = useState(null), [dlg, setDlg] = useState(null), [code, setCode] = useState(""), [msg, setMsg] = useState(""), [busy, setBusy] = useState(false);
93
129
  // Fences: an answer that arrives after the card is gone, or after a newer read began, is dropped; nor does a read
94
- // land while an action is under way (the box shows the click until the action's own read).
95
- const live = useRef({ mounted: true, seq: 0, busy: false });
130
+ // land while an action is under way (the box shows the click until the action's own read). `dlg`: the same for the
131
+ // dialog's enrolment (closed meanwhile: its answer is dropped); `refocus`: the dialog just closed, focus goes back.
132
+ const live = useRef({ mounted: true, seq: 0, busy: false, dlg: 0, dlgOpen: false, refocus: false }), card = useRef(null);
96
133
  // Every read that ends (answered or not) moves `rev`: the next one is scheduled from there, so a failed read (the
97
134
  // network, a 5xx, an unreadable answer) never stops the card reading again (#3035 review r2) — and keeps what it
98
135
  // showed meanwhile.
@@ -116,29 +153,50 @@ export function OutsideCard() {
116
153
  const timer = setTimeout(() => { if (!live.current.busy) load(); else setRev((n) => n + 1); }, delay);
117
154
  return () => clearTimeout(timer);
118
155
  }, [rev]);
156
+ // The dialog closed (Cancel, Esc, ×, or done): focus goes back to the button that opened it — or to the one that took its
157
+ // place when the set-up finished ("Set up authenticator app" turned into "Set up again"). The Dialog itself returns focus to
158
+ // whatever was focused when it opened; a browser that does not focus a button on click leaves that as the page, so the card says it.
159
+ useEffect(() => {
160
+ if (dlg || busy || !live.current.refocus) return;
161
+ live.current.refocus = false;
162
+ const el = card.current && card.current.querySelector(s && s.enrolled ? "#outAgain" : "#outSetUp");
163
+ if (el && !el.disabled && typeof el.focus === "function") el.focus();
164
+ }, [dlg, busy]);
119
165
  if (!s || !s.webOnly) return null;
120
166
  const here = s.here === true;
121
167
  const act = async (fn) => {
122
168
  setBusy(true); setMsg(""); live.current.busy = true; live.current.seq++; // a read under way is outdated now
123
169
  try { await fn(); } finally { live.current.busy = false; if (live.current.mounted) { setBusy(false); load(); } }
124
170
  };
125
- const begin = () => act(async () => {
126
- const r = await api("/ui/outside/enroll", { method: "POST", body: "{}" });
127
- if (r.ok && r.body && r.body.secret) { setEnroll(r.body); setCode(""); } else toast(t("app.failed"), false);
128
- });
129
- const confirm = () => act(async () => {
130
- const r = await api("/ui/outside/enroll/confirm", { method: "POST", body: JSON.stringify({ code }) });
131
- if (r.ok) { setEnroll(null); setCode(""); return; }
132
- const why = r.body && r.body.error;
133
- if (why === "expired") { setEnroll(null); return; }
171
+ // Open the dialog at once (the button that opened it still has focus) and ask the server for the secret meanwhile; if it
172
+ // will not give one, the dialog closes with the page's usual "failed". Nothing is changed until the right code is confirmed.
173
+ const begin = async (kind) => {
174
+ if (!here || live.current.dlgOpen) return; // not here, or one is open already
175
+ const id = ++live.current.dlg;
176
+ live.current.dlgOpen = true;
177
+ setDlg({ kind, enroll: null }); setCode(""); setMsg("");
178
+ const r = await askEnrollment(); // one at a time: a request still out is this dialog's too
179
+ if (!live.current.mounted || id !== live.current.dlg) return; // closed (or gone) while it was asked
180
+ if (r && r.ok && r.body && r.body.secret) setDlg({ kind, enroll: r.body });
181
+ else { closeDlg(); toast(t("app.failed"), false); }
182
+ };
183
+ function closeDlg() {
184
+ live.current.dlg++; // a late answer to the enrolment is dropped
185
+ live.current.dlgOpen = false;
186
+ live.current.refocus = true;
187
+ setDlg(null); setCode(""); setMsg("");
188
+ }
189
+ const submitBind = () => act(async () => {
190
+ let r;
191
+ try { r = await api("/ui/outside/enroll/confirm", { method: "POST", body: JSON.stringify({ code }) }); } catch { r = null; }
192
+ if (r && r.ok) { await load(); closeDlg(); return; } // read first: the card behind is the new state when it closes
193
+ const why = r && r.body && r.body.error;
194
+ if (why === "expired") { closeDlg(); return; }
134
195
  setMsg(why === "wrong" ? to("wrong") : t("app.failed"));
135
196
  });
136
- const again = async () => {
137
- if (!(await confirmDialog({ title: to("again"), message: to("againConfirm"), confirmLabel: to("again"), danger: true }))) return;
138
- begin();
139
- };
197
+ const canConfirm = !!(dlg && dlg.enroll) && /^\s*\d{3}\s?\d{3}\s*$/.test(code);
140
198
  const remove = async () => {
141
- if (!(await confirmDialog({ title: to("remove"), message: to("removeConfirm"), confirmLabel: to("remove"), danger: true }))) return;
199
+ if (!(await confirmDialog({ title: to("removeTitle"), message: to("removeConfirm"), confirmLabel: to("remove"), danger: true }))) return;
142
200
  act(async () => { const r = await api("/ui/outside/remove", { method: "POST", body: "{}" }); if (!r.ok) toast(t("app.failed"), false); });
143
201
  };
144
202
  // The box follows the click at once (smoke-web-outside-3008: a controlled box that waits for the server reads as a
@@ -148,7 +206,8 @@ export function OutsideCard() {
148
206
  if (!r.ok) toast(t("app.failed"), false);
149
207
  }); };
150
208
  const link = s.link, open = link && link.state === "open";
151
- return html`<section class="card s-outside" id="outsideCard"><h3>${to("title")}</h3>
209
+ return html`<section class="card s-outside" id="outsideCard" ref=${card}><header class="s-auth-section-head"><div><h3>${to("title")}</h3><p id="outLead">${to("lead")}</p></div><span class=${`s-auth-state${s.enrolled ? " is-usable" : ""}`} id="outState">${to(s.enrolled ? "stateOn" : "stateOff")}</span></header>
210
+ <div class="chips s-out-apps" id="outApps" role="list" aria-label=${to("appsLabel")}><span class="tag" role="listitem">Google Authenticator</span><span class="tag" role="listitem">Microsoft Authenticator</span><span class="tag" role="listitem">${to("appOther")}</span></div>
152
211
  ${!here ? html`<p class="note" id="outHereOnly">${to("hereOnly")}</p>` : null}
153
212
  <label class="check"><input id="outSwitch" type="checkbox" checked=${s.outside} disabled=${!here || busy || (!s.enrolled && !s.outside)}
154
213
  onChange=${(e) => flip(e.target.checked)} /><span>${to("switch")}</span></label>
@@ -156,21 +215,28 @@ export function OutsideCard() {
156
215
  ${s.outside && open && link.url ? html`<p class="note" id="outOpenAt">${to("openAt", link.url)}${link.quick ? ` ${to("quick")}` : ""}</p>` : null}
157
216
  ${s.outside && link && !open ? html`<p class="note" id="outStarting">${t("app.loading")}</p>` : null}
158
217
  ${s.pausedForMs > 0 ? html`<p class="note s-va-warn" role="status" id="outPaused">${to("paused", waitWords(s.pausedForMs))}</p>` : null}
159
- ${enroll ? html`<div class="s-out-enroll" id="outEnroll">
218
+ ${s.enrolled ? html`<p class="note" id="outSetUpOn">${to("setUpOn", new Date(s.enrolledAt).toLocaleDateString())}</p>
219
+ <p class="note">${to("lostPhone")}</p>
220
+ ${here ? html`<div class="save-row"><button type="button" class="btn" id="outAgain" disabled=${busy} onClick=${() => begin("again")}>${to("again")}</button>
221
+ <button type="button" class="btn btn-danger" id="outRemove" disabled=${busy} onClick=${remove}>${to("remove")}</button></div>` : null}`
222
+ : html`<p class="note" id="outNoRecovery">${to("noRecovery")}</p>${here ? html`<div class="save-row"><button type="button" class="btn btn-primary" id="outSetUp" disabled=${busy} onClick=${() => begin("setup")}>${to("setUp")}</button></div>` : null}`}
223
+ ${dlg ? html`<${Dialog} title=${to(dlg.kind === "again" ? "again" : "setUp")} onClose=${closeDlg} busy=${busy} actions=${html`
224
+ <button type="button" class="btn" id="outCancel" disabled=${busy} onClick=${closeDlg}>${t("app.cancel")}</button>
225
+ <button type="button" class="btn btn-primary" id="outConfirm" disabled=${busy || !canConfirm} onClick=${submitBind}>${to("activate")}</button>`}>
226
+ <div class="s-out-enroll" id="outEnroll">${dlg.enroll ? html`
227
+ <p class="s-out-step" id="outStep1"><strong>${to("step1")}</strong></p>
160
228
  <p class="note">${to("scan")}</p>
161
- <${Qr} uri=${enroll.uri} />
162
- <p class="note">${to("key")}: <code id="outKey">${keyGroups(enroll.secret)}</code></p>
229
+ <${Qr} uri=${dlg.enroll.uri} />
230
+ <p class="note">${to("key")}: <code id="outKey">${keyGroups(dlg.enroll.secret)}</code></p>
231
+ <p class="s-out-step" id="outStep2"><strong>${to("step2")}</strong></p>
163
232
  <div class="field"><label for="outCode">${to("code")}</label>
164
233
  <input id="outCode" type="text" inputmode="numeric" autocomplete="one-time-code" maxlength="7" placeholder="123456" value=${code}
165
- onInput=${(e) => setCode(e.target.value)} /></div>
166
- ${msg ? html`<p class="feedback error" role="alert" id="outMsg">${msg}</p>` : null}
167
- <div class="save-row"><button type="button" class="btn" id="outCancel" disabled=${busy} onClick=${() => { setEnroll(null); setMsg(""); }}>${t("app.cancel")}</button>
168
- <button type="button" class="btn btn-primary" id="outConfirm" disabled=${busy || !/^\s*\d{3}\s?\d{3}\s*$/.test(code)} onClick=${confirm}>${t("app.confirmOk")}</button></div>
169
- </div>`
170
- : s.enrolled ? html`<p class="note" id="outSetUpOn">${to("setUpOn", new Date(s.enrolledAt).toLocaleDateString())}</p>
171
- <p class="note">${to("lostPhone")}</p>
172
- ${here ? html`<div class="save-row"><button type="button" class="btn" id="outAgain" disabled=${busy} onClick=${again}>${to("again")}</button>
173
- <button type="button" class="btn btn-danger" id="outRemove" disabled=${busy} onClick=${remove}>${to("remove")}</button></div>` : null}`
174
- : here ? html`<div class="save-row"><button type="button" class="btn btn-primary" id="outSetUp" disabled=${busy} onClick=${begin}>${to("setUp")}</button></div>` : null}
234
+ onInput=${(e) => setCode(e.target.value)}
235
+ onKeyDown=${(e) => { if (e.key === "Enter" && canConfirm && !busy) { e.preventDefault(); submitBind(); } }} /></div>
236
+ ${dlg.kind === "again" ? html`<p class="note" id="outAgainNote">${to("againConfirm")}</p>` : null}
237
+ <p class="note" id="outEnrollNoRecovery">${to("noRecovery")}</p>
238
+ ${msg ? html`<p class="feedback error" role="alert" id="outMsg">${msg}</p>` : null}`
239
+ : html`<p class="note" id="outEnrollLoading">${t("app.loading")}</p>`}</div>
240
+ </${Dialog}>` : null}
175
241
  </section>`;
176
242
  }
@@ -6,7 +6,9 @@ import { lang, tIn } from "/assets/app-i18n.js";
6
6
  import { sectionPath } from "/assets/app-route.js";
7
7
  import { navigate } from "/assets/app-nav.js";
8
8
  import "./settings-strings.js";
9
- import "./chat-strings.js";
9
+ import "./settings-shared-strings.js"; // search shows these labels from outside Settings (dailyTips, hangEnabled, crossInstanceVisibility)
10
+ import "./settings-access-strings.js"; // …and this one (webLoginQr), added by Access & security (#3061)
11
+ import "/assets/chat-strings.js";
10
12
  import { GUESTS_SETTINGS } from "./settings-guests.js";
11
13
 
12
14
  const L = (en, zh) => ({ en, "zh-TW": zh });
@@ -15,14 +17,16 @@ const ROWS = [
15
17
  ["general.location", "agent-defaults", "#general-location", null, null, ["general", "windows", "paired PC", "host", "location"], ["General", "Windows", "電腦", "主機", "執行位置"], L("Run General on", "General 執行位置")],
16
18
  // You · Preferences
17
19
  ["profile.name", "preferences", "#profile-name", "settings.profileTitle", null, ["name", "display name", "who agents see", "profile"], ["名字", "名稱", "顯示名稱", "個人資料"]],
18
- ["prefs.theme", "preferences", "#pref-theme", "app.theme", null, ["theme", "dark", "light", "dark mode", "colour scheme"], ["主題", "深色", "淺色", "外觀"]],
20
+ ["prefs.theme", "look", "#pref-theme", "app.theme", null, ["theme", "dark", "light", "dark mode", "colour scheme"], ["主題", "深色", "淺色", "外觀"]],
19
21
  ["prefs.lang", "preferences", "#pref-lang", "app.language", null, ["language", "dashboard language", "english", "chinese", "locale"], ["語言", "介面語言", "中文", "英文"]],
20
22
  ["prefs.names", "preferences", "#pref-names", "app.names", null, ["names", "nickname", "real name", "instance name", "display"], ["名稱", "暱稱", "實名"]],
21
23
  ["prefs.previews", "preferences", "#pref-previews", "chat.previews", null, ["html preview", "preview", "iframe"], ["預覽", "HTML 預覽"]],
22
24
  ["prefs.tour", "preferences", "#tourBtn", "chat.tour", null, ["tour", "help", "walkthrough", "guide"], ["導覽", "說明", "教學"]],
23
- ["device.motion", "preferences", "#fx-follow-reduced-motion", "settings.themesFollowMotion", null, ["reduced motion", "animation", "effects", "accessibility"], ["減少動態", "動畫", "特效", "無障礙"]],
24
- ["device.css-off", "preferences", "#css-off-here", "settings.cssDeviceOff", null, ["custom css", "css off", "this device", "safe"], ["自訂 CSS", "關閉 CSS", "這個裝置"]],
25
+ ["prefs.shortcuts", "preferences", "#keyboardShortcutsBtn", null, null, ["keyboard shortcuts", "hotkeys", "keys", "help", "ctrl", "command"], ["快捷鍵", "快速鍵", "鍵盤", "說明"], L("Keyboard shortcuts", "快捷鍵")],
26
+ ["device.motion", "look", "#fx-follow-reduced-motion", "settings.themesFollowMotion", null, ["reduced motion", "animation", "effects", "accessibility"], ["減少動態", "動畫", "特效", "無障礙"]],
27
+ ["device.css-off", "look", "#css-off-here", "settings.cssDeviceOff", null, ["custom css", "css off", "this device", "safe"], ["自訂 CSS", "關閉 CSS", "這個裝置"]],
25
28
  // You · Look
29
+ ["device.settings-width", "look", "#settings-content-width", null, null, ["settings width", "content width", "layout", "wide", "compact", "this device"], ["設定寬度", "內容寬度", "版型", "寬版", "窄版", "此裝置"], L("Settings content width", "設定頁內容寬度")],
26
30
  ["look.themes", "look", "#fx-show-themes", "settings.themesShow", "fx.show", ["agent themes", "themes", "effects", "widgets"], ["主題", "agent 的主題", "特效", "小工具"]],
27
31
  ["look.colours", "look", ".s-colors", "settings.colorTitle", "color.show", ["identity colour", "color", "colour", "turn off colours"], ["識別色", "顏色", "關閉顏色"]],
28
32
  ["look.cards", "look", ".s-card-size", "settings.cardSizeTitle", "card.size", ["identity card", "card size", "portrait", "banner"], ["身分卡", "卡片大小"]],
@@ -40,6 +44,7 @@ const ROWS = [
40
44
  ["runtimes.machines", "runtimes", ".runtime-settings", "settings.sec_runtimes", null, ["runtime", "computer", "machine", "pair", "connect", "windows", "linux", "CLI"], ["執行環境", "電腦", "機器", "配對", "連接", "Windows", "CLI"]],
41
45
  ["defaults.tips", "agent-defaults", "#g-tips", "settings.dailyTips", "defaults.tips", ["daily tips", "notices"], ["每日提示"]],
42
46
  ["web.notify-login", "access", "#webNotifyLogin", "settings.webNotifyLogin", "web.notify_login", ["sign in", "login", "notices"], ["登入通知"]],
47
+ ["web.login-qr", "access", "#webLoginQr", "settings.webLoginQr", "web.login_qr", ["qr", "qr code", "sign in", "another device", "scan", "device"], ["QR", "QR Code", "登入", "其他裝置", "掃描"]],
43
48
  // Fleet · Agent defaults
44
49
  ["defaults.locale", "agent-defaults", "#g-locale", "settings.language", "defaults.locale", ["language", "bot language", "reply language", "locale"], ["語言", "回覆語言", "bot 語言"]],
45
50
  ["defaults.backend", "agent-defaults", "#g-be", "settings.defaultBackend", "defaults.backend", ["backend", "cli", "claude", "codex", "kiro"], ["後端", "CLI"]],
@@ -0,0 +1,143 @@
1
+ // #3087 review: the settings.* words that Shared agent settings (the page formerly called "Agent defaults") added or reworded,
2
+ // kept in a file of their own on purpose.
3
+ //
4
+ // Why a file of their own: a tab opened before an upgrade has already run the old settings-strings.js, and the browser hands
5
+ // the same module back when the new Settings page imports that URL again — so a key the page added would read as the raw
6
+ // "settings.…" key in a tab that opened Fleet (or search) first. This file's URL is new, so no tab can hold an old copy of it:
7
+ // every module that draws one of these words imports it, right after settings-strings.js, and register() merges its words over
8
+ // whatever that file said (the later call wins), so a reworded key also reads in its new words.
9
+ //
10
+ // Rules for this file:
11
+ // - A key lives here or in settings-strings.js, never in both. Move a key here when a change to the Shared agent settings page
12
+ // adds it or rewords it; delete it from settings-strings.js in the same change.
13
+ // - Every module that reads one of these keys imports "./settings-shared-strings.js" after "./settings-strings.js": the
14
+ // Settings page (panel-settings.js, settings-shared.js), the dialogs it borrows (settings-dialogs.js) and the paths outside
15
+ // Settings that print one — search (search-dialog.js, settings-registry.js). tests/settings-shared-strings-3087.test.ts
16
+ // checks that every module that reads a key from here imports this file.
17
+ import { register } from "/assets/app-i18n.js";
18
+
19
+ register("settings", {
20
+ en: {
21
+ // Reworded (settings-strings.js had these keys before; the new words win).
22
+ dailyTips: "Daily tips (General topic)",
23
+ dailyTipsHint: "Posts one usage tip a day in the General topic. Off stops them; /tips still posts where you call it.",
24
+ changeInDefaults: "change in Shared agent settings",
25
+ hangEnabled: "Hang detector",
26
+ crossInstanceVisibility: "Bot-to-bot messages in topics",
27
+ crossInstanceVisibilityHint: "How much of a message from one agent to another is shown in this agent's topic: all of it, one line, or nothing. Messages are always delivered; the Mirror Topic still shows them.",
28
+ "sec_agent-defaults": "Shared agent settings",
29
+ updateDefaults: "Update shared agent settings",
30
+ devFormsUnsaved: "Save or discard the unsaved changes to agents, shared agent settings or connections first: this editor writes the same settings.",
31
+ help4: "General: shared agent settings and ClassicBot defaults. Web: the dashboard's sign-in sessions, browser terminal, web echo, Log and public link. Review changes stages them.",
32
+ // Added.
33
+ defaultMarkTip: "Nobody set this in fleet.yaml, so the built-in value shown is in use. Editing it saves your own value.",
34
+ // The same five, as one or two words (the hover on the usage pill lists who sets which).
35
+ dashboardShort_appearance: "Appearance", dashboardShort_task_board: "Task board", dashboardShort_web_settings: "Web settings", dashboardShort_office: "Office", dashboardShort_office_packs: "Office packs",
36
+ // Shared agent settings (formerly "Agent defaults"): what the page is, what each field does (the ⓘ), what an edit costs.
37
+ sharedGroupAgents: "Shared agent settings", sharedGroupAgentsSub: "An individual agent can override these",
38
+ sharedGroupSystem: "System & channels", sharedGroupSystemSub: "One value for the whole fleet — an agent can't change it",
39
+ sharedGroupSystemAdvancedSub: "One value for the whole fleet — an agent can't change it, except the hang detector, which an agent can also set for itself",
40
+ advancedCount: "Advanced ({0})",
41
+ hostTag: "this host", switchOn: "On", switchOff: "Off", hangUnit: "minutes without output → alert", tipLabel: "About \u201c{0}\u201d",
42
+ usageCount: "{0}/{1} in use", usageOwn: "{0} custom", usagePartly: "{0} partly custom", usageMany: "{0} agents",
43
+ usageTipAll: "Every agent uses the value on this page.",
44
+ usageTipOwners: "Set on their own under Agents, so a change here does not reach them: {0}.",
45
+ usageTipParts: "An agent that sets an item on its own (under Agents) is not reached by a change to that item here; it still follows this page for its other items. Set on their own: {0}.",
46
+ usageRooms: "{0} ClassicBot room(s) follow this value too (they are not in this count).",
47
+ backendInfo: "Only this host is checked. For a CLI on a Windows PC, open that agent's settings and choose Change runtime / CLI.", backendInfoLink: "Windows PCs and their CLIs: Runtime",
48
+ tipBackend: "The coding CLI an agent runs on (claude-code, codex, kiro-cli …). The installed / signed-in status beside each name is read on the machine AgEnD runs on, not on other computers.",
49
+ tipModel: "The model an agent asks its CLI for. “CLI default” lets the CLI choose. The list follows the default backend and is read on this host.",
50
+ tipAutoPause: "An agent idle this long is paused to free memory; a new message wakes it. 0 = never pause.",
51
+ tipToolProgress: "How much of an agent's tool activity shows in the chat while it works. Off: nothing. Standard: short labels (“Reading a file”). Verbose: labels plus command previews.",
52
+ tipLocale: "The language of bot replies and notices. Read when AgEnD starts. Auto follows the system.",
53
+ tipReplyGuard: "When a person's message ends without the agent sending a reply, AgEnD nudges it to answer.",
54
+ tipToolSet: "Which tools an agent may call. Worker is the usual one; Coordinator adds fleet management; Full allows every tool.",
55
+ tipAgentMode: "How an agent talks to AgEnD. MCP is the default and recommended; CLI (HTTP commands) is for a CLI without MCP.",
56
+ tipLogLevel: "How much detail an agent writes to its log. Info is normal; Debug and Trace are for troubleshooting and write a lot.",
57
+ tipHang: "Raise an alert when an agent produces no output at all for this long. An individual agent can set its own minutes under Agents.",
58
+ tipConcurrency: "How many agents AgEnD starts at the same time when it boots. Empty picks 2–10 from free memory and CPU cores.",
59
+ tipStagger: "The least AgEnD waits between starting one agent and the next, in milliseconds. Default: 500.",
60
+ seg_tool_progress_off: "Off", seg_tool_progress_standard: "Standard", seg_tool_progress_verbose: "Verbose",
61
+ seg_visibility_full: "Full", seg_visibility_summary: "Summary", seg_visibility_hidden: "Hidden",
62
+ seg_agent_mode_mcp: "MCP (recommended)", seg_agent_mode_cli: "CLI",
63
+ opt_tool_set_worker: "Worker — talk, read, do the work", opt_tool_set_coordinator: "Coordinator — worker plus fleet management",
64
+ opt_tool_set_standard: "Standard — a mid-sized set", opt_tool_set_minimal: "Minimal — only the basics", opt_tool_set_full: "Full — every tool",
65
+ opt_log_level_trace: "Trace — everything", opt_log_level_debug: "Debug — for troubleshooting", opt_log_level_info: "Info — normal",
66
+ opt_log_level_warn: "Warn — problems only", opt_log_level_error: "Error — failures only",
67
+ noteRestartAgents: "↻ After saving, {0} agent(s) restart", noteSkip: " ({0} set their own — not affected)",
68
+ noteApplyAgents: "↻ After saving, {0} agent(s) use the new value; the {1} running restart",
69
+ noteApplyIdle: "After saving, {0} agent(s) use the new value; none is running, so none restarts",
70
+ noteRestartRooms: "↻ After saving, {0} ClassicBot room(s) that follow this value restart",
71
+ noteApplyRooms: "↻ After saving, {0} ClassicBot room(s) use the new value; the {1} running restart",
72
+ noteIdleRooms: "After saving, {0} ClassicBot room(s) use the new value; none is running, so none restarts",
73
+ noteAllOverride: "Every agent sets this on its own, so none is affected.", noteNoAgents: "No agents yet — agents you create later start with this value.",
74
+ noteRestartFleet: "↻ AgEnD has to restart for this to take effect", noteConfirmAdmin: "A fleet admin has to confirm when you save",
75
+ noteConfirmTick: "Newly ticked items are confirmed first",
76
+ barRestartAgents: "↻ {0} agent(s) restart after saving", barRestartFleet: "↻ AgEnD restarts",
77
+ barApplyAgents: "↻ {0} agent(s) use the new value; the {1} running restart", barApplyIdle: "{0} agent(s) use the new value; none is running",
78
+ barRestartRooms: "↻ {0} ClassicBot room(s) restart after saving", barApplyRooms: "↻ {0} ClassicBot room(s) use the new value; the {1} running restart",
79
+ barIdleRooms: "{0} ClassicBot room(s) use the new value; none is running",
80
+ backendNotInstalledHost: "not installed on this host",
81
+ },
82
+ "zh-TW": {
83
+ // 改過字句的 key(settings-strings.js 原本就有;以這裡的新字句為準)。
84
+ dailyTips: "每日提示(General 頻道)",
85
+ dailyTipsHint: "每天在 General 頻道發一則使用小提示。關閉就不再發;/tips 仍會發到你呼叫的聊天室。",
86
+ changeInDefaults: "到 Agent 共用設定變更",
87
+ hangEnabled: "卡住偵測",
88
+ crossInstanceVisibility: "Agent 之間的訊息",
89
+ crossInstanceVisibilityHint: "Agent 傳給 Agent 的訊息,要在這個 Agent 的主題裡顯示多少:完整、一行摘要,或不顯示。訊息一律照常送達,Mirror Topic 也照常顯示。",
90
+ "sec_agent-defaults": "Agent 共用設定",
91
+ updateDefaults: "更新 Agent 共用設定",
92
+ devFormsUnsaved: "請先儲存或捨棄 Agent、Agent 共用設定或連線中未儲存的變更:這個編輯器會寫入相同的設定。",
93
+ help4: "一般:Agent 共用設定與 ClassicBot 預設值。網頁:儀表板的登入 session、瀏覽器終端機、網頁轉發、紀錄與公開連結。「檢查變更」會把它們暫存。",
94
+ // 新增的 key。
95
+ defaultMarkTip: "fleet.yaml 沒有設定這一項,目前使用的是內建值。修改後會存成你自己的值。",
96
+ dashboardShort_appearance: "外觀", dashboardShort_task_board: "任務看板", dashboardShort_web_settings: "網頁外觀設定", dashboardShort_office: "辦公室", dashboardShort_office_packs: "辦公室外觀包",
97
+ // Agent 共用設定(原「Agent 預設值」):這一頁是什麼、每個欄位做什麼(ⓘ)、改了會怎樣。
98
+ sharedGroupAgents: "Agent 共用設定", sharedGroupAgentsSub: "個別 Agent 可以自己改掉",
99
+ sharedGroupSystem: "系統與頻道", sharedGroupSystemSub: "整個 Fleet 一起,不能個別改",
100
+ sharedGroupSystemAdvancedSub: "整個 Fleet 一起,不能個別改;只有卡住偵測可以另外在個別 Agent 設定",
101
+ advancedCount: "進階設定({0} 項)",
102
+ hostTag: "此主機", switchOn: "開", switchOff: "關", hangUnit: "分鐘沒輸出就提醒", tipLabel: "「{0}」的說明",
103
+ usageCount: "{0}/{1} 套用中", usageOwn: "{0} 自訂", usagePartly: "{0} 部分自訂", usageMany: "{0} 個 Agent",
104
+ usageTipAll: "所有 Agent 都用這裡的值。",
105
+ usageTipOwners: "在 Agents 頁自己設定了這一項,這裡改了不影響它們:{0}。",
106
+ usageTipParts: "Agent 在 Agents 頁自己設定了某一項,這裡改那一項就不會影響它;其他項目仍然跟著這裡。自己設定的:{0}。",
107
+ usageRooms: "另有 {0} 個 ClassicBot 房間也沿用這個值(不在上面的數字裡)。",
108
+ backendInfo: "只檢查這台主機。Windows 電腦上的 CLI,請在個別 Agent 的設定裡按「切換 Runtime/CLI」。", backendInfoLink: "查看 Windows 電腦與 CLI:Runtime",
109
+ tipBackend: "Agent 用哪一種 coding CLI 執行(claude-code、codex、kiro-cli…)。每個名稱旁的「已安裝/已登入」狀態,是在 AgEnD 所在的這台主機上檢查的,不包含其他電腦。",
110
+ tipModel: "Agent 向 CLI 要求使用的模型。「CLI 自己的預設」就是讓 CLI 自己決定。清單跟著預設後端換,內容是這台主機上讀到的。",
111
+ tipAutoPause: "Agent 閒置這麼久就暫停、釋放記憶體,有新訊息會自動喚醒。0=不自動暫停。",
112
+ tipToolProgress: "Agent 工作時,聊天室顯示多少工具活動。關:不顯示。標準:簡短說明(例如「正在讀取檔案」)。詳細:說明加上指令預覽。",
113
+ tipLocale: "Bot 回覆與通知使用的語言。AgEnD 啟動時讀取。「自動」會跟隨系統。",
114
+ tipReplyGuard: "使用者的訊息處理完卻沒有回覆時,AgEnD 會提醒 Agent 補上回覆。",
115
+ tipToolSet: "Agent 可以呼叫哪些工具。Worker 最常用;Coordinator 多了管理 Fleet 的工具;Full 全部開放。",
116
+ tipAgentMode: "Agent 跟 AgEnD 溝通的方式。MCP 是預設、建議;CLI(HTTP 指令)給不支援 MCP 的 CLI 用。",
117
+ tipLogLevel: "Agent 的 log 寫多詳細。Info 是一般;Debug、Trace 用來除錯,會寫很多。",
118
+ tipHang: "Agent 超過這段時間完全沒有輸出,就發出提醒。個別 Agent 可以在 Agents 頁自己設定分鐘數。",
119
+ tipConcurrency: "AgEnD 開機時同時啟動幾個 Agent。留空會依可用記憶體與 CPU 核心數在 2–10 之間自動決定。",
120
+ tipStagger: "啟動一個 Agent 到下一個之間至少等多久(毫秒)。預設:500。",
121
+ seg_tool_progress_off: "關", seg_tool_progress_standard: "標準", seg_tool_progress_verbose: "詳細",
122
+ seg_visibility_full: "完整", seg_visibility_summary: "摘要", seg_visibility_hidden: "隱藏",
123
+ seg_agent_mode_mcp: "MCP(建議)", seg_agent_mode_cli: "CLI",
124
+ opt_tool_set_worker: "Worker — 溝通、讀取、做事", opt_tool_set_coordinator: "Coordinator — Worker 加上管理 Fleet",
125
+ opt_tool_set_standard: "Standard — 中等規模", opt_tool_set_minimal: "Minimal — 只有最基本的", opt_tool_set_full: "Full — 全部工具",
126
+ opt_log_level_trace: "Trace — 全部", opt_log_level_debug: "Debug — 除錯用", opt_log_level_info: "Info — 一般",
127
+ opt_log_level_warn: "Warn — 只記問題", opt_log_level_error: "Error — 只記失敗",
128
+ noteRestartAgents: "↻ 儲存後,{0} 個 Agent 會重新啟動", noteSkip: "({0} 自訂,不受影響)",
129
+ noteApplyAgents: "↻ 儲存後,{0} 個 Agent 會套用新值,其中執行中的 {1} 個會重新啟動",
130
+ noteApplyIdle: "儲存後,{0} 個 Agent 會套用新值;目前都沒有執行中,所以不會重新啟動",
131
+ noteRestartRooms: "↻ 儲存後,沿用這個值的 {0} 個 ClassicBot 房間會重新啟動",
132
+ noteApplyRooms: "↻ 儲存後,{0} 個 ClassicBot 房間會套用新值,其中執行中的 {1} 個會重新啟動",
133
+ noteIdleRooms: "儲存後,{0} 個 ClassicBot 房間會套用新值;目前都沒有執行中,所以不會重新啟動",
134
+ noteAllOverride: "每個 Agent 都自己設定了這一項,所以都不受影響。", noteNoAgents: "目前還沒有 Agent;之後新建的會使用這個值。",
135
+ noteRestartFleet: "↻ 需要重新啟動 AgEnD 才生效", noteConfirmAdmin: "儲存時需要 Fleet 管理員確認",
136
+ noteConfirmTick: "勾選的項目要先確認才生效",
137
+ barRestartAgents: "↻ 儲存後 {0} 個 Agent 會重新啟動", barRestartFleet: "↻ 需要重新啟動 AgEnD",
138
+ barApplyAgents: "↻ {0} 個 Agent 會套用新值,其中執行中的 {1} 個會重新啟動", barApplyIdle: "{0} 個 Agent 會套用新值,目前都沒有執行中",
139
+ barRestartRooms: "↻ 儲存後 {0} 個 ClassicBot 房間會重新啟動", barApplyRooms: "↻ {0} 個 ClassicBot 房間會套用新值,其中執行中的 {1} 個會重新啟動",
140
+ barIdleRooms: "{0} 個 ClassicBot 房間會套用新值,目前都沒有執行中",
141
+ backendNotInstalledHost: "此主機未安裝",
142
+ },
143
+ });