@songsid/agend 2.3.0-beta.25 → 2.3.0-beta.27

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 (440) hide show
  1. package/README.md +7 -5
  2. package/README.zh-TW.md +7 -5
  3. package/dist/adapter-world.js.map +1 -1
  4. package/dist/agend-home.d.ts +5 -0
  5. package/dist/agend-home.js +7 -0
  6. package/dist/agend-home.js.map +1 -0
  7. package/dist/agent-cli.js.map +1 -1
  8. package/dist/agent-endpoint.js +8 -0
  9. package/dist/agent-endpoint.js.map +1 -1
  10. package/dist/agent-file-read.js +1 -1
  11. package/dist/agent-file-read.js.map +1 -1
  12. package/dist/agent-whats-new.js +12 -2
  13. package/dist/agent-whats-new.js.map +1 -1
  14. package/dist/apply-job.js.map +1 -1
  15. package/dist/atomic-write.js.map +1 -1
  16. package/dist/auth-api.d.ts +5 -0
  17. package/dist/auth-api.js +21 -0
  18. package/dist/auth-api.js.map +1 -1
  19. package/dist/authority/authority-state.d.ts +4 -0
  20. package/dist/authority/authority-state.js +17 -8
  21. package/dist/authority/authority-state.js.map +1 -1
  22. package/dist/authority/session-authorizations.js.map +1 -1
  23. package/dist/authority/web-authority.d.ts +14 -6
  24. package/dist/authority/web-authority.js +19 -5
  25. package/dist/authority/web-authority.js.map +1 -1
  26. package/dist/backend/antigravity.d.ts +2 -2
  27. package/dist/backend/antigravity.js +2 -1
  28. package/dist/backend/antigravity.js.map +1 -1
  29. package/dist/backend/claude-code.js.map +1 -1
  30. package/dist/backend/codex-package.js.map +1 -1
  31. package/dist/backend/codex-session-lookup.js.map +1 -1
  32. package/dist/backend/codex.js +1 -1
  33. package/dist/backend/codex.js.map +1 -1
  34. package/dist/backend/effort-metadata.js.map +1 -1
  35. package/dist/backend/grok.js.map +1 -1
  36. package/dist/backend/kiro-engine-ledger.js.map +1 -1
  37. package/dist/backend/kiro-kas-store.js.map +1 -1
  38. package/dist/backend/kiro-v2-store.js.map +1 -1
  39. package/dist/backend/kiro-v3-identity.js.map +1 -1
  40. package/dist/backend/kiro.js.map +1 -1
  41. package/dist/backend/launch-effort.js.map +1 -1
  42. package/dist/backend/mock.js.map +1 -1
  43. package/dist/backend/muse.js.map +1 -1
  44. package/dist/backend/opencode-permission.js.map +1 -1
  45. package/dist/backend/opencode.js.map +1 -1
  46. package/dist/backend/session-signals.js.map +1 -1
  47. package/dist/backend-availability.js.map +1 -1
  48. package/dist/backend-command.js.map +1 -1
  49. package/dist/backend-outage.js.map +1 -1
  50. package/dist/binary-probe.js.map +1 -1
  51. package/dist/bug-report.js.map +1 -1
  52. package/dist/bundled-skills.js.map +1 -1
  53. package/dist/cache-service.js +1 -1
  54. package/dist/cache-service.js.map +1 -1
  55. package/dist/channel/adapters/discord.d.ts +2 -0
  56. package/dist/channel/adapters/discord.js +40 -5
  57. package/dist/channel/adapters/discord.js.map +1 -1
  58. package/dist/channel/adapters/telegram.d.ts +6 -0
  59. package/dist/channel/adapters/telegram.js +54 -14
  60. package/dist/channel/adapters/telegram.js.map +1 -1
  61. package/dist/channel/mcp-server.js +10 -1
  62. package/dist/channel/mcp-server.js.map +1 -1
  63. package/dist/channel/mcp-tools.js +2 -2
  64. package/dist/channel/mcp-tools.js.map +1 -1
  65. package/dist/channel/message-queue.js.map +1 -1
  66. package/dist/channel/sticker-download.js.map +1 -1
  67. package/dist/channel/tool-router.js.map +1 -1
  68. package/dist/classic-channel-manager.js +3 -2
  69. package/dist/classic-channel-manager.js.map +1 -1
  70. package/dist/cli-entry.js.map +1 -1
  71. package/dist/cli-flags.js.map +1 -1
  72. package/dist/cli.d.ts +1 -0
  73. package/dist/cli.js +44 -9
  74. package/dist/cli.js.map +1 -1
  75. package/dist/command-table.js.map +1 -1
  76. package/dist/compact-watch.js.map +1 -1
  77. package/dist/completion-install.js.map +1 -1
  78. package/dist/completion.js.map +1 -1
  79. package/dist/config-validator.js +22 -6
  80. package/dist/config-validator.js.map +1 -1
  81. package/dist/config.js +8 -2
  82. package/dist/config.js.map +1 -1
  83. package/dist/connection-secrets.js.map +1 -1
  84. package/dist/context-guardian.js.map +1 -1
  85. package/dist/coredump-filter.js.map +1 -1
  86. package/dist/cpu-profile.js.map +1 -1
  87. package/dist/cross-instance-envelope.js.map +1 -1
  88. package/dist/daemon.d.ts +3 -0
  89. package/dist/daemon.js +76 -4
  90. package/dist/daemon.js.map +1 -1
  91. package/dist/daily-summary.js.map +1 -1
  92. package/dist/darwin-memory.js.map +1 -1
  93. package/dist/dashboard-live.d.ts +8 -0
  94. package/dist/dashboard-live.js +35 -0
  95. package/dist/dashboard-live.js.map +1 -0
  96. package/dist/dashboard-permissions.d.ts +69 -0
  97. package/dist/dashboard-permissions.js +138 -0
  98. package/dist/dashboard-permissions.js.map +1 -0
  99. package/dist/decision-list.js.map +1 -1
  100. package/dist/delivery-consumed-watch.js.map +1 -1
  101. package/dist/delivery-outbox.js.map +1 -1
  102. package/dist/delivery-outbox.test.js.map +1 -1
  103. package/dist/delivery-reconciliation.test.js.map +1 -1
  104. package/dist/diagnostic-redaction.js.map +1 -1
  105. package/dist/doctor.d.ts +3 -0
  106. package/dist/doctor.js +10 -0
  107. package/dist/doctor.js.map +1 -1
  108. package/dist/e2e-isolation.js.map +1 -1
  109. package/dist/event-log.js.map +1 -1
  110. package/dist/export-import.js +3 -2
  111. package/dist/export-import.js.map +1 -1
  112. package/dist/fleet-control-audit.js.map +1 -1
  113. package/dist/fleet-label.js.map +1 -1
  114. package/dist/fleet-lock.js +3 -2
  115. package/dist/fleet-lock.js.map +1 -1
  116. package/dist/fleet-manager.d.ts +84 -7
  117. package/dist/fleet-manager.js +562 -158
  118. package/dist/fleet-manager.js.map +1 -1
  119. package/dist/fleet-process-handlers.js +3 -2
  120. package/dist/fleet-process-handlers.js.map +1 -1
  121. package/dist/fleet-startup.d.ts +14 -0
  122. package/dist/fleet-startup.js +30 -0
  123. package/dist/fleet-startup.js.map +1 -0
  124. package/dist/fleet-traffic.js.map +1 -1
  125. package/dist/forged-envelope-scan.d.ts +0 -20
  126. package/dist/forged-envelope-scan.js +3 -2
  127. package/dist/forged-envelope-scan.js.map +1 -1
  128. package/dist/full-restart.js.map +1 -1
  129. package/dist/general-knowledge/skills/web-appearance/SKILL.canvas-worker-off.md +2 -0
  130. package/dist/general-knowledge/skills/web-appearance/SKILL.md +2 -0
  131. package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +43 -21
  132. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +52 -23
  133. package/dist/host-memory.js.map +1 -1
  134. package/dist/idle-gate-log.d.ts +19 -0
  135. package/dist/idle-gate-log.js +15 -0
  136. package/dist/idle-gate-log.js.map +1 -0
  137. package/dist/instance-config-impact.js +6 -0
  138. package/dist/instance-config-impact.js.map +1 -1
  139. package/dist/instance-lifecycle.js +1 -1
  140. package/dist/instance-lifecycle.js.map +1 -1
  141. package/dist/instructions.d.ts +2 -0
  142. package/dist/instructions.js +6 -2
  143. package/dist/instructions.js.map +1 -1
  144. package/dist/kiro-compact-pane.js.map +1 -1
  145. package/dist/kiro-db-reader.js.map +1 -1
  146. package/dist/kiro-engine-status.js.map +1 -1
  147. package/dist/kiro-log-gate.js.map +1 -1
  148. package/dist/kiro-transcript-lane.js.map +1 -1
  149. package/dist/locale.js +40 -6
  150. package/dist/locale.js.map +1 -1
  151. package/dist/log-service.js.map +1 -1
  152. package/dist/log-steps.js.map +1 -1
  153. package/dist/logger.js +3 -2
  154. package/dist/logger.js.map +1 -1
  155. package/dist/login-controller.js.map +1 -1
  156. package/dist/login-manager.js.map +1 -1
  157. package/dist/login-shell.js.map +1 -1
  158. package/dist/memory-pressure.js.map +1 -1
  159. package/dist/muse-usage-relay.js.map +1 -1
  160. package/dist/needs-you-hub.js.map +1 -1
  161. package/dist/needs-you-live.js.map +1 -1
  162. package/dist/network-family.js.map +1 -1
  163. package/dist/operator-control-paths.js +3 -4
  164. package/dist/operator-control-paths.js.map +1 -1
  165. package/dist/outbound-handlers.js.map +1 -1
  166. package/dist/outbound-schemas.d.ts +68 -68
  167. package/dist/outbound-schemas.js +1 -1
  168. package/dist/outbound-schemas.js.map +1 -1
  169. package/dist/outbox-open-error.js.map +1 -1
  170. package/dist/pane-context-cache.js.map +1 -1
  171. package/dist/paths.js.map +1 -1
  172. package/dist/private-dir.js.map +1 -1
  173. package/dist/probe-worker-pool.js.map +1 -1
  174. package/dist/profile-control.js.map +1 -1
  175. package/dist/prompt-file-ref.js.map +1 -1
  176. package/dist/provider-probe.js.map +1 -1
  177. package/dist/provider-secret-registry.js.map +1 -1
  178. package/dist/public-link-auto-open.d.ts +32 -0
  179. package/dist/public-link-auto-open.js +86 -0
  180. package/dist/public-link-auto-open.js.map +1 -0
  181. package/dist/public-link-owner.d.ts +10 -0
  182. package/dist/public-link-owner.js +36 -0
  183. package/dist/public-link-owner.js.map +1 -0
  184. package/dist/public-link-progress.js.map +1 -1
  185. package/dist/public-preview.js.map +1 -1
  186. package/dist/public-web-gateway.js +7 -2
  187. package/dist/public-web-gateway.js.map +1 -1
  188. package/dist/public-web-link.d.ts +35 -1
  189. package/dist/public-web-link.js +142 -43
  190. package/dist/public-web-link.js.map +1 -1
  191. package/dist/quickstart-api.js.map +1 -1
  192. package/dist/quickstart.d.ts +5 -0
  193. package/dist/quickstart.js +25 -16
  194. package/dist/quickstart.js.map +1 -1
  195. package/dist/reply-buttons-controller.js.map +1 -1
  196. package/dist/reply-dedup.js.map +1 -1
  197. package/dist/resource-report.js.map +1 -1
  198. package/dist/restart-guard.js.map +1 -1
  199. package/dist/restart-progress.js.map +1 -1
  200. package/dist/rollout-index.js.map +1 -1
  201. package/dist/runtime-cpu-profile.js.map +1 -1
  202. package/dist/scheduler/db.js.map +1 -1
  203. package/dist/scheduler/scheduler.js.map +1 -1
  204. package/dist/scheduler/task-board-text.js +16 -11
  205. package/dist/scheduler/task-board-text.js.map +1 -1
  206. package/dist/scheduler/task-board.d.ts +39 -11
  207. package/dist/scheduler/task-board.js +123 -45
  208. package/dist/scheduler/task-board.js.map +1 -1
  209. package/dist/scheduler/types.d.ts +1 -1
  210. package/dist/sd-notify.js.map +1 -1
  211. package/dist/search/search-index.js.map +1 -1
  212. package/dist/secret-file.js.map +1 -1
  213. package/dist/secret-store.js.map +1 -1
  214. package/dist/service-installer.d.ts +7 -1
  215. package/dist/service-installer.js +13 -1
  216. package/dist/service-installer.js.map +1 -1
  217. package/dist/service-plan.d.ts +33 -4
  218. package/dist/service-plan.js +177 -8
  219. package/dist/service-plan.js.map +1 -1
  220. package/dist/session-oom.d.ts +21 -0
  221. package/dist/session-oom.js +139 -0
  222. package/dist/session-oom.js.map +1 -0
  223. package/dist/settings-api.js +3 -1
  224. package/dist/settings-api.js.map +1 -1
  225. package/dist/settings-baseline.js.map +1 -1
  226. package/dist/settings-change.d.ts +5 -0
  227. package/dist/settings-change.js +71 -1
  228. package/dist/settings-change.js.map +1 -1
  229. package/dist/settings-confirmation.d.ts +4 -0
  230. package/dist/settings-confirmation.js +2 -0
  231. package/dist/settings-confirmation.js.map +1 -1
  232. package/dist/settings-control.js.map +1 -1
  233. package/dist/settings-effect.js +4 -1
  234. package/dist/settings-effect.js.map +1 -1
  235. package/dist/settings-http-confirmation.js +1 -0
  236. package/dist/settings-http-confirmation.js.map +1 -1
  237. package/dist/settings-instance-patch.js +13 -1
  238. package/dist/settings-instance-patch.js.map +1 -1
  239. package/dist/settings-transaction.js.map +1 -1
  240. package/dist/setup-auth.js.map +1 -1
  241. package/dist/setup-host.d.ts +5 -1
  242. package/dist/setup-host.js +8 -1
  243. package/dist/setup-host.js.map +1 -1
  244. package/dist/setup-wizard.js +5 -2
  245. package/dist/setup-wizard.js.map +1 -1
  246. package/dist/spawn-gate.d.ts +4 -0
  247. package/dist/spawn-gate.js +15 -5
  248. package/dist/spawn-gate.js.map +1 -1
  249. package/dist/start-attempt.d.ts +1 -0
  250. package/dist/start-attempt.js +18 -0
  251. package/dist/start-attempt.js.map +1 -0
  252. package/dist/start-failure-notice.d.ts +4 -0
  253. package/dist/start-failure-notice.js +20 -0
  254. package/dist/start-failure-notice.js.map +1 -0
  255. package/dist/start-failure.d.ts +147 -0
  256. package/dist/start-failure.js +281 -0
  257. package/dist/start-failure.js.map +1 -0
  258. package/dist/startup-memory-deadline.d.ts +23 -0
  259. package/dist/startup-memory-deadline.js +55 -0
  260. package/dist/startup-memory-deadline.js.map +1 -0
  261. package/dist/statusline-watcher.js.map +1 -1
  262. package/dist/storm-window.js.map +1 -1
  263. package/dist/systemd-peer-bus.js.map +1 -1
  264. package/dist/target-queue-worker.js.map +1 -1
  265. package/dist/task-board-summary.js.map +1 -1
  266. package/dist/task-board-tool.js +3 -2
  267. package/dist/task-board-tool.js.map +1 -1
  268. package/dist/task-board-waker.js +8 -4
  269. package/dist/task-board-waker.js.map +1 -1
  270. package/dist/tips.js.map +1 -1
  271. package/dist/tmux-control.js.map +1 -1
  272. package/dist/tmux-exec-helper.js.map +1 -1
  273. package/dist/tmux-manager.d.ts +1 -0
  274. package/dist/tmux-manager.js +2 -1
  275. package/dist/tmux-manager.js.map +1 -1
  276. package/dist/tmux-read.js +1 -1
  277. package/dist/tmux-read.js.map +1 -1
  278. package/dist/tool-permissions.js.map +1 -1
  279. package/dist/tool-progress.js.map +1 -1
  280. package/dist/topic-archiver.js.map +1 -1
  281. package/dist/topic-commands.js.map +1 -1
  282. package/dist/topic-link.js.map +1 -1
  283. package/dist/transcript-delta-reader.js.map +1 -1
  284. package/dist/transcript-jsonl.js.map +1 -1
  285. package/dist/transcript-monitor.js.map +1 -1
  286. package/dist/transcript-sources.js.map +1 -1
  287. package/dist/tunnel/cloudflared-install.js.map +1 -1
  288. package/dist/tunnel/cloudflared.js.map +1 -1
  289. package/dist/tunnel/lease.js +3 -2
  290. package/dist/tunnel/lease.js.map +1 -1
  291. package/dist/tunnel/manager.js.map +1 -1
  292. package/dist/tunnel/public-fetch.js.map +1 -1
  293. package/dist/tunnel/purpose-lane.js.map +1 -1
  294. package/dist/tunnel/types.js.map +1 -1
  295. package/dist/types.d.ts +22 -1
  296. package/dist/ui/chat-render.js +7 -17
  297. package/dist/ui/chat-store.js +171 -61
  298. package/dist/ui/chat-strings.js +9 -4
  299. package/dist/ui/chat-thread.js +48 -1
  300. package/dist/ui/fleet-canvas-layout.js +3 -0
  301. package/dist/ui/fleet-canvas.js +23 -20
  302. package/dist/ui/fleet-office-editor.js +149 -0
  303. package/dist/ui/fleet-office-model.js +358 -0
  304. package/dist/ui/fleet-office-pack.js +199 -0
  305. package/dist/ui/fleet-office-skin.js +474 -0
  306. package/dist/ui/fleet-office-store.js +49 -0
  307. package/dist/ui/fleet-office-zones.js +177 -0
  308. package/dist/ui/fleet-office.js +434 -0
  309. package/dist/ui/fleet-org.js +18 -5
  310. package/dist/ui/guest-refused.html +41 -0
  311. package/dist/ui/image-lightbox.js +9 -3
  312. package/dist/ui/panel-chat.js +35 -22
  313. package/dist/ui/panel-settings.js +24 -7
  314. package/dist/ui/settings-dialogs.js +11 -2
  315. package/dist/ui/settings-model.js +20 -0
  316. package/dist/ui/settings-strings.js +36 -0
  317. package/dist/ui/settings-web-authority.js +7 -2
  318. package/dist/ui/shared/agend-auth.js +2 -0
  319. package/dist/ui/shared/app-i18n.js +2 -2
  320. package/dist/ui/shared/app-prefs.js +2 -0
  321. package/dist/ui/shared/app-shell.js +62 -9
  322. package/dist/ui/shared/app-store.js +1 -0
  323. package/dist/ui/shared/app-stream.js +2 -1
  324. package/dist/ui/shared/app.css +164 -15
  325. package/dist/ui/shared/guest-refused.js +35 -0
  326. package/dist/ui/shared/header-tools.js +2 -2
  327. package/dist/ui/shared/instance-nav.js +25 -8
  328. package/dist/ui/shared/tokens.css +4 -0
  329. package/dist/ui/shared/ui-dialog.js +2 -2
  330. package/dist/ui/shared/usage-dialog.js +152 -6
  331. package/dist/ui/shared/view-strings.js +20 -0
  332. package/dist/ui/shared/web-authorize.js +3 -1
  333. package/dist/update-check.js.map +1 -1
  334. package/dist/update-dispatch.js.map +1 -1
  335. package/dist/update-install.js.map +1 -1
  336. package/dist/update-launch.js.map +1 -1
  337. package/dist/update-marker.js.map +1 -1
  338. package/dist/update-preflight.js.map +1 -1
  339. package/dist/update-progress.d.ts +3 -1
  340. package/dist/update-progress.js +3 -1
  341. package/dist/update-progress.js.map +1 -1
  342. package/dist/usage/format-rich.js.map +1 -1
  343. package/dist/usage/providers.d.ts +8 -0
  344. package/dist/usage/providers.js +6 -2
  345. package/dist/usage/providers.js.map +1 -1
  346. package/dist/usage/statusline-usage.js.map +1 -1
  347. package/dist/usage/usage-api.js +2 -1
  348. package/dist/usage/usage-api.js.map +1 -1
  349. package/dist/usage-report.js.map +1 -1
  350. package/dist/usage-rollup.js +1 -1
  351. package/dist/usage-rollup.js.map +1 -1
  352. package/dist/user-systemd.js.map +1 -1
  353. package/dist/view-api.js +1 -1
  354. package/dist/view-api.js.map +1 -1
  355. package/dist/wake-coordinator.js.map +1 -1
  356. package/dist/web-ambient.js.map +1 -1
  357. package/dist/web-api.d.ts +19 -2
  358. package/dist/web-api.js +180 -28
  359. package/dist/web-api.js.map +1 -1
  360. package/dist/web-app-icon.js.map +1 -1
  361. package/dist/web-appearance-policy.js.map +1 -1
  362. package/dist/web-appearance-tools.js.map +1 -1
  363. package/dist/web-appearance-view.js.map +1 -1
  364. package/dist/web-appearance.js.map +1 -1
  365. package/dist/web-auth.js +5 -4
  366. package/dist/web-auth.js.map +1 -1
  367. package/dist/web-backend-login.js.map +1 -1
  368. package/dist/web-card.js.map +1 -1
  369. package/dist/web-channel-echo.js.map +1 -1
  370. package/dist/web-chat-history.d.ts +41 -11
  371. package/dist/web-chat-history.js +93 -22
  372. package/dist/web-chat-history.js.map +1 -1
  373. package/dist/web-commands.js.map +1 -1
  374. package/dist/web-effect-bundle.d.ts +2 -2
  375. package/dist/web-effect-library.js.map +1 -1
  376. package/dist/web-effect-playback.js.map +1 -1
  377. package/dist/web-effect-profiles.d.ts +16 -16
  378. package/dist/web-effect-profiles.js +3 -2
  379. package/dist/web-effect-profiles.js.map +1 -1
  380. package/dist/web-effect-service.js.map +1 -1
  381. package/dist/web-effect-tools.js.map +1 -1
  382. package/dist/web-effect-trials.js.map +1 -1
  383. package/dist/web-effect-upload.js.map +1 -1
  384. package/dist/web-effect.d.ts +7 -7
  385. package/dist/web-effect.js.map +1 -1
  386. package/dist/web-experimental.js.map +1 -1
  387. package/dist/web-guest-access.js +1 -1
  388. package/dist/web-guest-access.js.map +1 -1
  389. package/dist/web-guest-rooms.js.map +1 -1
  390. package/dist/web-host-guard.js.map +1 -1
  391. package/dist/web-icons.js.map +1 -1
  392. package/dist/web-identity-color.js.map +1 -1
  393. package/dist/web-images.js.map +1 -1
  394. package/dist/web-libavoid.js.map +1 -1
  395. package/dist/web-login.js.map +1 -1
  396. package/dist/web-mentions.js.map +1 -1
  397. package/dist/web-mod-agent.js.map +1 -1
  398. package/dist/web-mod-store.js.map +1 -1
  399. package/dist/web-office-store.d.ts +104 -0
  400. package/dist/web-office-store.js +236 -0
  401. package/dist/web-office-store.js.map +1 -0
  402. package/dist/web-owner-css-store.js.map +1 -1
  403. package/dist/web-owner-css.js.map +1 -1
  404. package/dist/web-png.js.map +1 -1
  405. package/dist/web-prefs.js +2 -0
  406. package/dist/web-prefs.js.map +1 -1
  407. package/dist/web-profile.js.map +1 -1
  408. package/dist/web-reactions.d.ts +2 -1
  409. package/dist/web-request-context.d.ts +5 -0
  410. package/dist/web-request-context.js.map +1 -1
  411. package/dist/web-returning-device.js +1 -1
  412. package/dist/web-returning-device.js.map +1 -1
  413. package/dist/web-schedules.js.map +1 -1
  414. package/dist/web-send-dedupe.d.ts +36 -0
  415. package/dist/web-send-dedupe.js +69 -0
  416. package/dist/web-send-dedupe.js.map +1 -0
  417. package/dist/web-session-authorization.js.map +1 -1
  418. package/dist/web-session.js +1 -1
  419. package/dist/web-session.js.map +1 -1
  420. package/dist/web-settings-patch.d.ts +1 -0
  421. package/dist/web-settings-patch.js +6 -4
  422. package/dist/web-settings-patch.js.map +1 -1
  423. package/dist/web-settings-tools.js.map +1 -1
  424. package/dist/web-terminal-http.js.map +1 -1
  425. package/dist/web-terminal.js.map +1 -1
  426. package/dist/web-theme-store.js.map +1 -1
  427. package/dist/web-upload.d.ts +5 -1
  428. package/dist/web-upload.js +6 -4
  429. package/dist/web-upload.js.map +1 -1
  430. package/dist/web-widget.js.map +1 -1
  431. package/dist/webhook-emitter.js.map +1 -1
  432. package/dist/windows-shortcuts.js +1 -1
  433. package/dist/windows-shortcuts.js.map +1 -1
  434. package/dist/workflow-templates/default.md +1 -1
  435. package/dist/ws-server.js.map +1 -1
  436. package/dist/yaml-shared-nodes.js.map +1 -1
  437. package/launcher/agend-install.cjs +281 -6
  438. package/launcher/private-home.cjs +43 -0
  439. package/package.json +3 -2
  440. package/templates/windows-shortcuts.ps1 +1 -1
@@ -1,8 +1,9 @@
1
- import { closeSync, fsyncSync, mkdirSync, openSync, writeSync } from "node:fs";
1
+ import { ensureAgendHome } from "./agend-home.js";
2
+ import { closeSync, fsyncSync, openSync, writeSync } from "node:fs";
2
3
  import { join } from "node:path";
3
4
  /** Synchronous evidence before shutdown: neither a network nor logger worker is required. */
4
5
  export function recordFleetFatal(dataDir, error) {
5
- mkdirSync(dataDir, { recursive: true });
6
+ ensureAgendHome(dataDir);
6
7
  const fd = openSync(join(dataDir, "fleet-fatal.log"), "a", 0o600);
7
8
  try {
8
9
  writeSync(fd, JSON.stringify({ timestamp: new Date().toISOString(), pid: process.pid,
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-process-handlers.js","sourceRoot":"","sources":["../src/fleet-process-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fleet-process-handlers.js","sourceRoot":"","sources":["../src/fleet-process-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,6FAA6F;AAC7F,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,KAAc;IAC9D,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAClE,IAAI,CAAC;QACH,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG;YAClF,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACrE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACrE,SAAS,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;YAAS,CAAC;QAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AAWD,gFAAgF;AAChF,MAAM,UAAU,2BAA2B,CAAC,OAA4B;IACtE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;IAC1C,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,IAAI,QAAQ;YAAE,OAAO;QACrB,QAAQ,GAAG,IAAI,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAClC,uEAAuE;QACvE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QACrC,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;QAC5C,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC;YAAC,CAAC,OAAO,CAAC,UAAU,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAAC,CAAC;QACzE,OAAO,UAAU,EAAE,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,UAAU,CAAC,CAAC;QAAC,CAAC;QACzF,IAAI,QAAQ;YAAE,OAAO;QACrB,QAAQ,GAAG,IAAI,CAAC;QAChB,4EAA4E;QAC5E,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,CAAC,EAAE;QACvC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9D,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;QAC9D,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK;YAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrE,IAAI,CAAC;YACH,OAAO,CAAC,gBAAgB,CAAC,2DAA2D,OAAO,wCAAwC,CAAC,CAAC;QACvI,CAAC;QAAC,OAAO,WAAW,EAAE,CAAC;YAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,WAAW,CAAC,CAAC;QAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,QAAQ,KAAK,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD,CAAC"}
@@ -0,0 +1,14 @@
1
+ /** Presentation for one boot, separate from process status and the spawn gate (#2398). */
2
+ export declare class FleetStartup {
3
+ private readonly entries;
4
+ constructor(names: readonly string[]);
5
+ begin(name: string): object | null;
6
+ finish(name: string, owner: object, ready: boolean): boolean;
7
+ phase(name: string): "queued" | "starting" | undefined;
8
+ snapshot(): {
9
+ phase: "starting";
10
+ ready: number;
11
+ total: number;
12
+ failed: number;
13
+ };
14
+ }
@@ -0,0 +1,30 @@
1
+ /** Presentation for one boot, separate from process status and the spawn gate (#2398). */
2
+ export class FleetStartup {
3
+ entries;
4
+ constructor(names) {
5
+ this.entries = new Map(names.map(name => [name, { phase: "queued" }]));
6
+ }
7
+ begin(name) {
8
+ if (!this.entries.has(name))
9
+ return null;
10
+ const owner = {};
11
+ this.entries.set(name, { phase: "starting", owner });
12
+ return owner;
13
+ }
14
+ finish(name, owner, ready) {
15
+ if (this.entries.get(name)?.owner !== owner)
16
+ return false;
17
+ this.entries.set(name, { phase: ready ? "ready" : "failed" });
18
+ return true;
19
+ }
20
+ phase(name) {
21
+ const phase = this.entries.get(name)?.phase;
22
+ return phase === "queued" || phase === "starting" ? phase : undefined;
23
+ }
24
+ snapshot() {
25
+ const entries = [...this.entries.values()];
26
+ return { phase: "starting", ready: entries.filter(e => e.phase === "ready").length,
27
+ total: entries.length, failed: entries.filter(e => e.phase === "failed").length };
28
+ }
29
+ }
30
+ //# sourceMappingURL=fleet-startup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-startup.js","sourceRoot":"","sources":["../src/fleet-startup.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,MAAM,OAAO,YAAY;IACN,OAAO,CAAqF;IAE7G,YAAY,KAAwB;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,IAAY,EAAE,KAAa,EAAE,KAAc;QAChD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;QAC5C,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,CAAC;IAED,QAAQ;QACN,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM;YAChF,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;IACtF,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"fleet-traffic.js","sourceRoot":"","sources":["../src/fleet-traffic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fleet-traffic.js","sourceRoot":"","sources":["../src/fleet-traffic.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,3 @@
1
- /**
2
- * #995 (#856-B): post-hoc detection of fabricated peer envelopes.
3
- *
4
- * (A) lets an agent verify a peer message before acting; (C) instruments the
5
- * transport. This module is the defense-in-depth fallback: scan a receiver's
6
- * OWN kiro
7
- * transcript for fleet-envelope shapes (`[from:<instance>] … (message_id:
8
- * xmsg-…)`) and check each message_id against the durable delivery record
9
- * (#856's `delivery_status` message_id selector). A missing retained record
10
- * triggers a verification warning; retention expiry also makes a real message
11
- * unverifiable, so this is not proof that the receiver fabricated the turn.
12
- *
13
- * Only kiro has a reader here: its conversation store
14
- * (`~/.local/share/kiro-cli/data.sqlite3`, conversations_v2) is on disk.
15
- * Claude jsonl / Codex rollouts / other backends are per-backend follow-ups.
16
- *
17
- * Everything query-side is read-only: the kiro store opens readonly and the
18
- * outbox is read through `DeliveryOutbox.queryStatusReadOnly` (operator
19
- * semantics — existence only, content stays redacted).
20
- */
21
1
  import type { InstanceConfig } from "./types.js";
22
2
  export interface EnvelopeCandidate {
23
3
  /** Resolved real instance name (display-name wrapper stripped). */
@@ -1,3 +1,4 @@
1
+ import { ensureAgendHome } from "./agend-home.js";
1
2
  /**
2
3
  * #995 (#856-B): post-hoc detection of fabricated peer envelopes.
3
4
  *
@@ -19,7 +20,7 @@
19
20
  * semantics — existence only, content stays redacted).
20
21
  */
21
22
  import { t } from "./locale.js";
22
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
23
+ import { existsSync, readFileSync, writeFileSync } from "node:fs";
23
24
  import { join } from "node:path";
24
25
  import { credentialStoreHomeForInstance } from "./backend/credential-profile.js";
25
26
  import { deepMergeGeneric, getEffectiveInstanceDefaults } from "./config.js";
@@ -303,7 +304,7 @@ export function recordReportedEnvelopeIds(dataDir, ids) {
303
304
  const merged = loadReportedEnvelopeIds(dataDir);
304
305
  for (const id of ids)
305
306
  merged.add(id);
306
- mkdirSync(dataDir, { recursive: true });
307
+ ensureAgendHome(dataDir);
307
308
  const path = join(dataDir, "forged-envelope-reports.json");
308
309
  writeFileSync(path, JSON.stringify({ reported_message_ids: [...merged] }, null, 2), { encoding: "utf8", mode: 0o600 });
309
310
  }
@@ -1 +1 @@
1
- {"version":3,"file":"forged-envelope-scan.js","sourceRoot":"","sources":["../src/forged-envelope-scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forged-envelope-scan.js","sourceRoot":"","sources":["../src/forged-envelope-scan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"full-restart.js","sourceRoot":"","sources":["../src/full-restart.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAcnD;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,eAA6B,KAAK,EAClC,QAAQ,GAAG,iBAAiB,EAAE;IAE9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,KAAmB,CAAC;QACxB,IAAI,CAAC;YACH,KAAK,GAAG,YAAY,CAClB,OAAO,CAAC,QAAQ,EAChB,CAAC,QAAQ,EAAE,SAAS,CAAC,EACrB,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,CAAC,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,OAAO,CAA8B,QAAQ,CAAC,EAAE;YACrE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACjE,yEAAyE;YACzE,0EAA0E;YAC1E,wEAAwE;YACxE,oBAAoB;YACpB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,CAAC,GAAY,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACzC,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"full-restart.js","sourceRoot":"","sources":["../src/full-restart.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAcnD;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,YAAY,GAAiB,KAAK,EAClC,QAAQ,GAAG,iBAAiB,EAAE;IAE9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,KAAmB,CAAC;QACxB,IAAI,CAAC;YACH,KAAK,GAAG,YAAY,CAClB,OAAO,CAAC,QAAQ,EAChB,CAAC,QAAQ,EAAE,SAAS,CAAC,EACrB,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,CAAC,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,OAAO,CAA8B,QAAQ,CAAC,EAAE;YACrE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACjE,yEAAyE;YACzE,0EAA0E;YAC1E,wEAAwE;YACxE,oBAAoB;YACpB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,CAAC,GAAY,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACzC,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -84,6 +84,8 @@ of this skill).
84
84
  Don't rely on your theme to say something important.
85
85
  - The fleet can turn agent changes off entirely (`web.themes.agent_edit: false`): every change is refused with
86
86
  `theme_editing_off`; what you stored stays.
87
+ - A person can switch these tools off for you (`dashboard.appearance: false`; the person's web settings tools with
88
+ `dashboard.web_settings: false`): a call is refused saying so. Do not retry; tell them if you need it.
87
89
 
88
90
  ## Change your theme
89
91
 
@@ -91,6 +91,8 @@ of this skill).
91
91
  Don't rely on your theme to say something important.
92
92
  - The fleet can turn agent changes off entirely (`web.themes.agent_edit: false`): every change is refused with
93
93
  `theme_editing_off`; what you stored stays.
94
+ - A person can switch these tools off for you (`dashboard.appearance: false`; the person's web settings tools with
95
+ `dashboard.web_settings: false`): a call is refused saying so. Do not retry; tell them if you need it.
94
96
 
95
97
  ## Change your theme
96
98
 
@@ -36,7 +36,7 @@ only. Pages: `/ui` chat, `/ui/fleet`, `/ui/needs`, `/view`, `/settings`.
36
36
  ## Sign-in and access
37
37
 
38
38
  **Getting a code (`/web`).** Only a fleet admin can — someone in the bot connection's `access.allowed_users`.
39
- - Discord: send `/web` (alias of `/dashboard`) in the General channel. A menu offers **💻 AgEnD computer: get a
39
+ - Discord: send `/web` in the General channel (`/dashboard` still answers but is deprecated: it says so, then opens `/web`). A menu offers **💻 AgEnD computer: get a
40
40
  code** and, when `web.public_link.allow_public` is not `false`, **🌐 Other device (temporary public)**. Sent
41
41
  anywhere else, `/web` answers privately (DM, else an ephemeral reply) with the local link and a code only.
42
42
  - Telegram: `/web` works only in the General topic ("/web works in the General topic — please use it there"). In a
@@ -54,7 +54,10 @@ days). The code arrives by DM. Limits: one a minute and five an hour per browser
54
54
 
55
55
  **Local vs public link.** Local: the dashboard on the host itself (127.0.0.1; the address cannot be changed, only
56
56
  `health_port`). Public: **🌐 Other device (temporary public)** starts a Cloudflare quick tunnel (an address under
57
- `trycloudflare.com`), default 120 minutes (`web.public_link.ttl_minutes`, at most 480; `protocol` http2/quic/auto).
57
+ `trycloudflare.com`), default 120 minutes (`web.public_link.ttl_minutes`, at most 480; `protocol` http2/quic/auto). With a fixed
58
+ hostname (named tunnel, `web.public_link.hostname`) the minutes go up to 10080, or `0` = no expiry, and
59
+ `web.public_link.auto_open` reopens the link after AgEnD starts for the admin who last opened it (nothing posted; sign-in
60
+ still needs a code).
58
61
  Close it with **Close public link** → **Close link (signs public browsers out)**, `/web revoke`, or let it expire.
59
62
  A public link is limited on purpose: no live stream (the page polls), no custom CSS, and Settings → Web, appearance,
60
63
  schedule edits and preference writes are refused. HTML previews work over it through a second tunnel
@@ -75,7 +78,7 @@ the local address sees every instance's live terminal and the roster (status, co
75
78
  tags, name, description, avatars, cards) and the usage meters — read only; editing says "Sign in to edit". Over a
76
79
  public link `/view` always needs sign-in.
77
80
 
78
- **Guests (#1920, 2.3 beta).** Off by default: `web.guests.enabled` (or Settings → Web → Guests). Then someone who is
81
+ **Guests (#1920).** Off by default: `web.guests.enabled` (or Settings → Web → Guests). Then someone who is
79
82
  not a fleet admin sends `/web` and gets a code privately, signing in as their own Discord or Telegram account. A guest
80
83
  sees only the agents they can already use in chat: their connection's fleet topics and General (an `open` connection:
81
84
  only `web.guests.open_instances`), their own Telegram private ClassicBot room, and ClassicBot group rooms while their
@@ -84,7 +87,7 @@ a command (text starting with `/` is refused), and the agent sees them as `via w
84
87
  View, Settings or Needs you. To invite someone: turn it on, then tell them to send `/web`. The Guests card is not in
85
88
  Settings over the public link.
86
89
 
87
- **Web authority (#1939, 2.3 beta).** A signed-in fleet admin's browser can speak as their own Discord or Telegram
90
+ **Web authority (#1939).** A signed-in fleet admin's browser can speak as their own Discord or Telegram
88
91
  account. The one row under the composer (bottom left, before the Enter hint) says **Not verified · Authorize**; the
89
92
  session menu says **Not verified · Authorize this browser**. Pressing it
90
93
  sends a card to that account's DM, saying which browser (device, on this computer or the network, when, until when), with
@@ -93,10 +96,14 @@ again. Confirm within 5 minutes and the session menu says **Verified · speaks a
93
96
  just **✓ Verified**, with the until-when in its tooltip, its accessible name and a tap. That
94
97
  browser's messages then carry the account's authority in their delivery receipt for `max_session_hours` (default 48).
95
98
  Not me signs that browser out, also after Confirm, from the same card. At most one card waits per browser, and 3 an hour
96
- per account. Never on the public link or for a guest; when a browser can't be authorized, the line says why (with a
97
- link to Settings when the switch or "Only this computer" is the reason). Settings → Web → **Web authority**
98
- (`web.verified_authority`, on by default) has the switch, **Only this computer can authorize** (`loopback_only`), the
99
- hours, the authorized sessions, and **Revoke web authority** (or `/web revoke`). Every change there applies at once.
99
+ per account. Never for a guest or on a quick-tunnel public link. Over the admin's own named link (#2453) only with
100
+ **Also over my named link** (`named_link`, off by default). That authority ends with the link, and the card says "over
101
+ your named link". When a browser can't be authorized, the line says why (with a link to Settings when the switch, "Only
102
+ this computer" or the named-link option is the reason). Settings → Web → **Web authority** (`web.verified_authority`, on
103
+ by default) has the switch, **Only this computer can authorize** (`loopback_only`), **Also over my named link** (shown
104
+ with a fixed hostname), the hours, the authorized sessions, and **Revoke web authority** (or `/web revoke`). Every change
105
+ there applies at once, except turning the named-link option on: a General or the host confirms that, never the browser
106
+ asking.
100
107
  Agents then see that browser's messages as `via web (verified)` and check their receipt like a Discord or Telegram message.
101
108
 
102
109
  ## Chat
@@ -157,9 +164,9 @@ restored; files that can't be served again show as unavailable.
157
164
  **Copies in Discord/Telegram (web echo).** For a fleet topic instance, each web message is also posted to its topic as
158
165
  `🌐 web · <name>: …` (the first 500 characters plus attachment names; longer text says "(full text in web chat)").
159
166
  Turn it off with Settings → Web → **Web echo** (`web.echo_to_channel`). ClassicBot rooms: per room,
160
- `classicBot.yaml` `channels.<key>.web_echo` (Settings → ClassicBot → the room → **Web echo**). From 2.3.0-beta.3
167
+ `classicBot.yaml` `channels.<key>.web_echo` (Settings → ClassicBot → the room → **Web echo**). Since 2.2.5
161
168
  (#2054) a room echoes by default: an unset room follows `web.echo_to_channel`, `web_echo: false` keeps it off and
162
- `web_echo: true` keeps it on. Before that, a room echoed only with `web_echo: true` — check the running version.
169
+ `web_echo: true` keeps it on. Before 2.2.5, a room echoed only with `web_echo: true`.
163
170
 
164
171
  ## Needs you
165
172
 
@@ -173,7 +180,7 @@ tab title. Items, grouped by instance, oldest first:
173
180
  A prompt shows its own answer buttons (first answer wins); a delivery has **Acknowledge** (clears it everywhere);
174
181
  "Paused: sign-in needed" has **Sign in** when the dashboard can run that login (#2233); every item has **Open chat**. **Notify me on this device** (Turn on / Turn off) gives desktop notifications while the
175
182
  tab is hidden — per browser, not on phones or plain-HTTP addresses. Config: `needs_you.live_message` (default on),
176
- `needs_you.dm` (default off), `needs_you.task_board` (default off since 2.3.0-beta.25: the task board's cards waiting
183
+ `needs_you.dm` (default off), `needs_you.task_board` (default off: the task board's cards waiting
177
184
  for you — set `true` to list them). The task board's daily summary is `defaults.task_board.summary_at` (off unless set,
178
185
  e.g. `"09:00"`).
179
186
 
@@ -187,8 +194,8 @@ Board tasks — never a CLI's own transcript (that is the Log). Results come as
187
194
  first, badged Chat / Message / Task; 1–2 character words work (alone: the newest 5,000 entries, said in the dialog).
188
195
  ↑↓ / Enter / Esc / click outside; **Filters**: agent, team, time, kinds, **Only mine**; recent searches when empty.
189
196
  A chat result opens the chat at the message (flashed); a message between agents, a task or a chat row the history no
190
- longer keeps opens as the index's copy. Admins only (no guests; over the public link there is no row, button or shortcut). Config: `web.search.enabled`
191
- (default on), `web.search.retention_days` (default 90). Secrets are masked; a hidden `cross_instance_visibility`
197
+ longer keeps opens as the index's copy. Admins only, over the temporary public link and on a phone too (no guests). Config: `web.search.enabled`
198
+ (default on, off everywhere), `web.search.public_link` (default on; false keeps it off the public link), `web.search.retention_days` (default 90). Secrets are masked; a hidden `cross_instance_visibility`
192
199
  agent's messages are not found. "Search is off or not available": `web.search.enabled: false`, or the index could not
193
200
  open (the fleet log says why); "Still indexing": the first fill after an upgrade.
194
201
 
@@ -211,11 +218,12 @@ The sidebar's **Fleet** (zh "Fleet 概覽", at the top) and the phone's Fleet ta
211
218
  **Send back** finished work, **Answer** a blocked card); **No project** holds `task`-tool tasks. A project is a board
212
219
  of main tasks (M-n) by status — To do, In progress, Blocked, Waiting for you, Done — with drag to move, an assignee
213
220
  filter and each main task's sub tasks (S-n). A card opens in a dialog: every field editable, its sub tasks, comments,
214
- progress log, history. **Search cards** in the header. Only a signed-in person confirms work in review (an
215
- instance's `done` on such a card is review). No delete: cancel. Alt+arrows on a card's title move it (no drag
216
- needed; the card's Position row on a phone). A main task's tile shows the sub task at work and who is on it; a card
217
- waiting for review that is not wrapped up says **To fill in** and Confirm asks first. A card's **Dispatched by** row:
218
- who handed it out (a blocked question goes to them first). Read-only over the public link.
221
+ progress log, history. **Search cards** in the header. Only a signed-in person confirms the work they handed out
222
+ (an instance's `done` on such a card is review); a card an agent handed out, that agent confirms (#2434). No
223
+ delete: cancel. Alt+arrows on a card's title move it (no drag needed; the card's Position row on a phone). A main
224
+ task's tile shows the sub task at work and who is on it; a card waiting for review that is not wrapped up says
225
+ **To fill in** and Confirm asks first. A card's **Dispatched by** row: who handed it out (a blocked question goes
226
+ to them first). Read-only over the public link.
219
227
  - **Schedules** — every schedule (silent ones included): when it runs in words, "next …", the target. **New
220
228
  schedule** (Repeat with a cron expression, or Once at a date and time; message, target, label, timezone),
221
229
  **Edit** (with an **Enabled** box — that is how you pause one), **Delete**. There is no "run now", and silent can't
@@ -233,6 +241,19 @@ Click a team header to fold it. **Find** dims everything that doesn't match. A c
233
241
  and backend; clicking it opens the chat. List mode adds the description, model, a link to the Discord thread or
234
242
  Telegram topic, and **Open chat**.
235
243
 
244
+ **Office** (the third view, remembered per device) draws the same fleet as a pixel office: a room per team, a desk
245
+ per instance with a name tag, General and "Not in a team" in the **Lobby**. Each little person is its state: typing
246
+ with the lamp on (working), tea break (idle), asleep behind a **Closed** sign (paused/stopped), a hand up under a
247
+ blinking light (needs you, crashed, looks stuck). With **Live** on, each message, delegation and report is carried
248
+ desk to desk along the corridors in the Key's colours; a delegation in progress is a purple folder on the worker's
249
+ desk. Hover (or tap once) a desk for its name, state and backend; click (or tap again) opens the chat. **Find** dims
250
+ the rest. **Show** picks a team or the Lobby and **People** pins chosen instances (both kept per browser); the
251
+ **Office** switcher lists offices kept on the host (`web-offices.json`, `GET`/`PUT /ui/offices`; changing them takes
252
+ an admin session, never the public link — v1 has no editor). **Style** (per browser): **Desks** (the default) or
253
+ **Studio** — one scene (Work, Lounge, Help desk, Nap corner) where each instance walks to the area for its state.
254
+ Now and then someone says a short line for their state in a bubble (never message content). Reduced motion: still
255
+ poses, nothing in the air, bubbles shown whole.
256
+
236
257
  **Live traffic** (**Live** switch, on by default; **Key** in the toolbar explains it, as a strip above the canvas): a line for each message between instances.
237
258
  Colour by kind — task (delegate_task) purple, send/query/update teal, report pink, broadcast orange; between teams
238
259
  (zoomed out) slate. Dotted = queued, dashed with a moving pulse = being delivered, grey fading for 12 s = delivered or
@@ -431,7 +452,8 @@ progress, reply guard, **ClassicBot admins**, **Allowed guilds**.
431
452
  | Web echo | `web.echo_to_channel` |
432
453
  | Log tab: each agent's steps | `web.log_tab` |
433
454
  | Offer temporary public web links | `web.public_link.allow_public` |
434
- | Public link minutes (1–480) | `web.public_link.ttl_minutes` |
455
+ | Public link minutes (1–480; with a fixed hostname 0–10080, 0 = no expiry) | `web.public_link.ttl_minutes` |
456
+ | Reopen the public link when AgEnD starts (fixed hostname only) | `web.public_link.auto_open` |
435
457
  | Tunnel protocol (http2 / quic / auto) | `web.public_link.protocol` |
436
458
  Shown read-only ("Set in fleet.yaml"): `web.allowed_hosts`, `view_access`, `notify_login`, `preview`, `preview_port`,
437
459
  `preview_origin`, `preview_on_public_link`, `usage_panel`, `provider_secrets`, `upload_max_file_mb`,
@@ -472,12 +494,12 @@ Settings → **Web appearance**, card by card:
472
494
  - **Restore defaults** — resets this host's appearance settings (it lists what it resets first).
473
495
 
474
496
  **What an agent can change for the user.** A worker changes only its own look (the `web-appearance` tools); before
475
- #2064 everything on this page was the person's. Since #2064 (2.3.0-beta.3; check the running version) General, coordinators and
497
+ #2064 everything on this page was the person's. Since #2064 (2.2.5) General, coordinators and
476
498
  full-profile instances get `get_web_settings` / `set_web_settings`, which go through the same checks as the page;
477
499
  workers don't. The `web-appearance` skill's **For the user** section has the details. In short: General can change
478
500
  the host's appearance settings, one agent's identity colour, ambient effects and Restore defaults; for custom CSS it can save a version **on trial**, keep or revert
479
501
  the trial, switch to an earlier saved version, or turn CSS off — and it keeps a trial only once the user says they like
480
- it (the user's decision, 2.3.0-beta.3). Still the person's own click on the page: choosing files from their computer
502
+ it (the user's decision). Still the person's own click on the page: choosing files from their computer
481
503
  (upload CSS assets), the per-browser switches (custom CSS off on this device, Pause/Resume), and the
482
504
  card upload limits. The docs' "Asking General to change it for you" says the same for people.
483
505
 
@@ -11,6 +11,13 @@ English UI labels (the page also has 中文). Before you state a value the user
11
11
  it: `get_fleet_config` shows fleet.yaml; this skill gives defaults. Never invent a control that is not listed here.
12
12
  Never tell anyone to kill `wslrelay` or run `wsl --shutdown` (see Troubleshooting).
13
13
 
14
+ During a cold start/full restart, an already signed-in browser can open the dashboard while agents start. **Fleet
15
+ starting N/M** counts successful starts among runnable instances (persisted pauses excluded); queued/starting labels
16
+ are visible in the sidebar, chat header and Org chart. Reads remain available; messages and changes are refused with
17
+ a retry hint until startup finishes. Returning guests may wait for their connection scope without being signed out.
18
+ Needs you may still be empty while its hub initializes. A brief reconnect gap
19
+ is normal while a full restart replaces the process; the starting banner then replaces the unreachable message.
20
+
14
21
  For how *you* look on the dashboard (theme, identity card, colour, widgets, ambient effects, effects, mods), load `web-appearance`.
15
22
 
16
23
  ## Index
@@ -36,7 +43,7 @@ only. Pages: `/ui` chat, `/ui/fleet`, `/ui/needs`, `/view`, `/settings`.
36
43
  ## Sign-in and access
37
44
 
38
45
  **Getting a code (`/web`).** Only a fleet admin can — someone in the bot connection's `access.allowed_users`.
39
- - Discord: send `/web` (alias of `/dashboard`) in the General channel. A menu offers **💻 AgEnD computer: get a
46
+ - Discord: send `/web` in the General channel (`/dashboard` still answers but is deprecated: it says so, then opens `/web`). A menu offers **💻 AgEnD computer: get a
40
47
  code** and, when `web.public_link.allow_public` is not `false`, **🌐 Other device (temporary public)**. Sent
41
48
  anywhere else, `/web` answers privately (DM, else an ephemeral reply) with the local link and a code only.
42
49
  - Telegram: `/web` works only in the General topic ("/web works in the General topic — please use it there"). In a
@@ -54,7 +61,10 @@ days). The code arrives by DM. Limits: one a minute and five an hour per browser
54
61
 
55
62
  **Local vs public link.** Local: the dashboard on the host itself (127.0.0.1; the address cannot be changed, only
56
63
  `health_port`). Public: **🌐 Other device (temporary public)** starts a Cloudflare quick tunnel (an address under
57
- `trycloudflare.com`), default 120 minutes (`web.public_link.ttl_minutes`, at most 480; `protocol` http2/quic/auto).
64
+ `trycloudflare.com`), default 120 minutes (`web.public_link.ttl_minutes`, at most 480; `protocol` http2/quic/auto). With a fixed
65
+ hostname (named tunnel, `web.public_link.hostname`) the minutes go up to 10080, or `0` = no expiry, and
66
+ `web.public_link.auto_open` reopens the link after AgEnD starts for the admin who last opened it (nothing posted; sign-in
67
+ still needs a code).
58
68
  Close it with **Close public link** → **Close link (signs public browsers out)**, `/web revoke`, or let it expire.
59
69
  A public link is limited on purpose: no live stream (the page polls), no custom CSS, and Settings → Web, appearance,
60
70
  mods, effect-library/personal-selection management, schedule edits and preference writes are refused. Current in-scope
@@ -76,7 +86,7 @@ the local address sees every instance's live terminal and the roster (status, co
76
86
  tags, name, description, avatars, cards) and the usage meters — read only; editing says "Sign in to edit". Over a
77
87
  public link `/view` always needs sign-in.
78
88
 
79
- **Guests (#1920, 2.3 beta).** Off by default: `web.guests.enabled` (or Settings → Web → Guests). Then someone who is
89
+ **Guests (#1920).** Off by default: `web.guests.enabled` (or Settings → Web → Guests). Then someone who is
80
90
  not a fleet admin sends `/web` and gets a code privately, signing in as their own Discord or Telegram account. A guest
81
91
  sees only the agents they can already use in chat: their connection's fleet topics and General (an `open` connection:
82
92
  only `web.guests.open_instances`), their own Telegram private ClassicBot room, and ClassicBot group rooms while their
@@ -85,7 +95,7 @@ a command (text starting with `/` is refused), and the agent sees them as `via w
85
95
  View, Settings or Needs you. To invite someone: turn it on, then tell them to send `/web`. The Guests card is not in
86
96
  Settings over the public link.
87
97
 
88
- **Web authority (#1939, 2.3 beta).** A signed-in fleet admin's browser can speak as their own Discord or Telegram
98
+ **Web authority (#1939).** A signed-in fleet admin's browser can speak as their own Discord or Telegram
89
99
  account. The one row under the composer (bottom left, before the Enter hint) says **Not verified · Authorize**; the
90
100
  session menu says **Not verified · Authorize this browser**. Pressing it
91
101
  sends a card to that account's DM, saying which browser (device, on this computer or the network, when, until when), with
@@ -94,10 +104,14 @@ again. Confirm within 5 minutes and the session menu says **Verified · speaks a
94
104
  just **✓ Verified**, with the until-when in its tooltip, its accessible name and a tap. That
95
105
  browser's messages then carry the account's authority in their delivery receipt for `max_session_hours` (default 48).
96
106
  Not me signs that browser out, also after Confirm, from the same card. At most one card waits per browser, and 3 an hour
97
- per account. Never on the public link or for a guest; when a browser can't be authorized, the line says why (with a
98
- link to Settings when the switch or "Only this computer" is the reason). Settings → Web → **Web authority**
99
- (`web.verified_authority`, on by default) has the switch, **Only this computer can authorize** (`loopback_only`), the
100
- hours, the authorized sessions, and **Revoke web authority** (or `/web revoke`). Every change there applies at once.
107
+ per account. Never for a guest or on a quick-tunnel public link. Over the admin's own named link (#2453) only with
108
+ **Also over my named link** (`named_link`, off by default). That authority ends with the link, and the card says "over
109
+ your named link". When a browser can't be authorized, the line says why (with a link to Settings when the switch, "Only
110
+ this computer" or the named-link option is the reason). Settings → Web → **Web authority** (`web.verified_authority`, on
111
+ by default) has the switch, **Only this computer can authorize** (`loopback_only`), **Also over my named link** (shown
112
+ with a fixed hostname), the hours, the authorized sessions, and **Revoke web authority** (or `/web revoke`). Every change
113
+ there applies at once, except turning the named-link option on: a General or the host confirms that, never the browser
114
+ asking.
101
115
  Agents then see that browser's messages as `via web (verified)` and check their receipt like a Discord or Telegram message.
102
116
 
103
117
  ## Chat
@@ -158,9 +172,9 @@ restored; files that can't be served again show as unavailable.
158
172
  **Copies in Discord/Telegram (web echo).** For a fleet topic instance, each web message is also posted to its topic as
159
173
  `🌐 web · <name>: …` (the first 500 characters plus attachment names; longer text says "(full text in web chat)").
160
174
  Turn it off with Settings → Web → **Web echo** (`web.echo_to_channel`). ClassicBot rooms: per room,
161
- `classicBot.yaml` `channels.<key>.web_echo` (Settings → ClassicBot → the room → **Web echo**). From 2.3.0-beta.3
175
+ `classicBot.yaml` `channels.<key>.web_echo` (Settings → ClassicBot → the room → **Web echo**). Since 2.2.5
162
176
  (#2054) a room echoes by default: an unset room follows `web.echo_to_channel`, `web_echo: false` keeps it off and
163
- `web_echo: true` keeps it on. Before that, a room echoed only with `web_echo: true` — check the running version.
177
+ `web_echo: true` keeps it on. Before 2.2.5, a room echoed only with `web_echo: true`.
164
178
 
165
179
  ## Needs you
166
180
 
@@ -174,7 +188,7 @@ tab title. Items, grouped by instance, oldest first:
174
188
  A prompt shows its own answer buttons (first answer wins); a delivery has **Acknowledge** (clears it everywhere);
175
189
  "Paused: sign-in needed" has **Sign in** when the dashboard can run that login (#2233); every item has **Open chat**. **Notify me on this device** (Turn on / Turn off) gives desktop notifications while the
176
190
  tab is hidden — per browser, not on phones or plain-HTTP addresses. Config: `needs_you.live_message` (default on),
177
- `needs_you.dm` (default off), `needs_you.task_board` (default off since 2.3.0-beta.25: the task board's cards waiting
191
+ `needs_you.dm` (default off), `needs_you.task_board` (default off: the task board's cards waiting
178
192
  for you — set `true` to list them). The task board's daily summary is `defaults.task_board.summary_at` (off unless set,
179
193
  e.g. `"09:00"`).
180
194
 
@@ -188,8 +202,8 @@ Board tasks — never a CLI's own transcript (that is the Log). Results come as
188
202
  first, badged Chat / Message / Task; 1–2 character words work (alone: the newest 5,000 entries, said in the dialog).
189
203
  ↑↓ / Enter / Esc / click outside; **Filters**: agent, team, time, kinds, **Only mine**; recent searches when empty.
190
204
  A chat result opens the chat at the message (flashed); a message between agents, a task or a chat row the history no
191
- longer keeps opens as the index's copy. Admins only (no guests; over the public link there is no row, button or shortcut). Config: `web.search.enabled`
192
- (default on), `web.search.retention_days` (default 90). Secrets are masked; a hidden `cross_instance_visibility`
205
+ longer keeps opens as the index's copy. Admins only, over the temporary public link and on a phone too (no guests). Config: `web.search.enabled`
206
+ (default on, off everywhere), `web.search.public_link` (default on; false keeps it off the public link), `web.search.retention_days` (default 90). Secrets are masked; a hidden `cross_instance_visibility`
193
207
  agent's messages are not found. "Search is off or not available": `web.search.enabled: false`, or the index could not
194
208
  open (the fleet log says why); "Still indexing": the first fill after an upgrade.
195
209
 
@@ -212,13 +226,14 @@ The sidebar's **Fleet** (zh "Fleet 概覽", at the top) and the phone's Fleet ta
212
226
  **Send back** finished work, **Answer** a blocked card); **No project** holds `task`-tool tasks. A project is a board
213
227
  of main tasks (M-n) by status — To do, In progress, Blocked, Waiting for you, Done — with drag to move, an assignee
214
228
  filter and each main task's sub tasks (S-n). A card opens in a dialog: every field editable, its sub tasks, comments,
215
- progress log, history. **Search cards** in the header. Only a signed-in person confirms work in review (an
216
- instance's `done` on such a card is review). No delete: cancel. Alt+arrows on a card's title move it (no drag
217
- needed; the card's Position row on a phone). A main task's tile shows the sub task at work and who is on it; a card
218
- waiting for review that is not wrapped up says **To fill in** and Confirm asks first. A card's **Dispatched by** row:
219
- who handed it out (a blocked question goes to them first). Read-only over the public link. Cards waiting for
220
- confirmation and blocked cards are also **Needs you** items: on the web they open the card; in each bot's live
221
- message in General they have **Confirm** / **Send back** / **Answer** (the words are a reply to the bot's prompt).
229
+ progress log, history. **Search cards** in the header. Only a signed-in person confirms the work they handed out
230
+ (an instance's `done` on such a card is review); a card an agent handed out, that agent confirms (#2434). No
231
+ delete: cancel. Alt+arrows on a card's title move it (no drag needed; the card's Position row on a phone). A main
232
+ task's tile shows the sub task at work and who is on it; a card waiting for review that is not wrapped up says
233
+ **To fill in** and Confirm asks first. A card's **Dispatched by** row: who handed it out (a blocked question goes
234
+ to them first). Read-only over the public link. The cards you handed out that wait for your confirmation, or are
235
+ blocked, are also **Needs you** items: on the web they open the card; in each bot's live message in General they
236
+ have **Confirm** / **Send back** / **Answer** (the words are a reply to the bot's prompt).
222
237
  - **Schedules** — every schedule (silent ones included): when it runs in words, "next …", the target. **New
223
238
  schedule** (Repeat with a cron expression, or Once at a date and time; message, target, label, timezone),
224
239
  **Edit** (with an **Enabled** box — that is how you pause one), **Delete**. There is no "run now", and silent can't
@@ -236,6 +251,19 @@ Click a team header to fold it. **Find** dims everything that doesn't match. A c
236
251
  and backend; clicking it opens the chat. List mode adds the description, model, a link to the Discord thread or
237
252
  Telegram topic, and **Open chat**.
238
253
 
254
+ **Office** (the third view, remembered per device) draws the same fleet as a pixel office: a room per team, a desk
255
+ per instance with a name tag, General and "Not in a team" in the **Lobby**. Each little person is its state: typing
256
+ with the lamp on (working), tea break (idle), asleep behind a **Closed** sign (paused/stopped), a hand up under a
257
+ blinking light (needs you, crashed, looks stuck). With **Live** on, each message, delegation and report is carried
258
+ desk to desk along the corridors in the Key's colours; a delegation in progress is a purple folder on the worker's
259
+ desk. Hover (or tap once) a desk for its name, state and backend; click (or tap again) opens the chat. **Find** dims
260
+ the rest. **Show** picks a team or the Lobby and **People** pins chosen instances (both kept per browser); the
261
+ **Office** switcher lists offices kept on the host (`web-offices.json`, `GET`/`PUT /ui/offices`; changing them takes
262
+ an admin session, never the public link — v1 has no editor). **Style** (per browser): **Desks** (the default) or
263
+ **Studio** — one scene (Work, Lounge, Help desk, Nap corner) where each instance walks to the area for its state.
264
+ Now and then someone says a short line for their state in a bubble (never message content). Reduced motion: still
265
+ poses, nothing in the air, bubbles shown whole.
266
+
239
267
  **Live traffic** (**Live** switch, on by default; **Key** in the toolbar explains it, as a strip above the canvas): a line for each message between instances.
240
268
  Colour by kind — task (delegate_task) purple, send/query/update teal, report pink, broadcast orange; between teams
241
269
  (zoomed out) slate. Dotted = queued, dashed with a moving pulse = being delivered, grey fading for 12 s = delivered or
@@ -434,7 +462,8 @@ progress, reply guard, **ClassicBot admins**, **Allowed guilds**.
434
462
  | Web echo | `web.echo_to_channel` |
435
463
  | Log tab: each agent's steps | `web.log_tab` |
436
464
  | Offer temporary public web links | `web.public_link.allow_public` |
437
- | Public link minutes (1–480) | `web.public_link.ttl_minutes` |
465
+ | Public link minutes (1–480; with a fixed hostname 0–10080, 0 = no expiry) | `web.public_link.ttl_minutes` |
466
+ | Reopen the public link when AgEnD starts (fixed hostname only) | `web.public_link.auto_open` |
438
467
  | Tunnel protocol (http2 / quic / auto) | `web.public_link.protocol` |
439
468
  Shown read-only ("Set in fleet.yaml"): `web.allowed_hosts`, `view_access`, `notify_login`, `preview`, `preview_port`,
440
469
  `preview_origin`, `preview_on_public_link`, `usage_panel`, `provider_secrets`, `upload_max_file_mb`,
@@ -491,13 +520,13 @@ Settings → **Web appearance**, card by card:
491
520
  - **Restore defaults** — resets this host's appearance settings (it lists what it resets first).
492
521
 
493
522
  **What an agent can change for the user.** A worker changes only its own look (the `web-appearance` tools); before
494
- #2064 everything on this page was the person's. Since #2064 (2.3.0-beta.3; check the running version) General, coordinators and
523
+ #2064 everything on this page was the person's. Since #2064 (2.2.5) General, coordinators and
495
524
  full-profile instances get `get_web_settings` / `set_web_settings`, which go through the same checks as the page;
496
525
  workers don't. The `web-appearance` skill's **For the user** section has the details. In short: General can change
497
526
  the host's appearance settings, one agent's identity colour, mods (review, install, cancel, dismiss, uninstall),
498
527
  effects and the effect slots, and Restore defaults; for custom CSS it can save a version **on trial**, keep or revert
499
528
  the trial, switch to an earlier saved version, or turn CSS off — and it keeps a trial only once the user says they like
500
- it (the user's decision, 2.3.0-beta.3). Still the person's own click on the page: choosing files from their computer
529
+ it (the user's decision). Still the person's own click on the page: choosing files from their computer
501
530
  (import a mod, upload an effect folder or CSS assets), the per-browser switches (custom CSS off on this device, Pause/Resume), downloading an exported mod, and the
502
531
  card upload limits. The docs' "Asking General to change it for you" says the same for people.
503
532