@songsid/agend 2.3.0-beta.2 → 2.3.0-beta.21
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.
- package/README.md +7 -1
- package/README.zh-TW.md +7 -1
- package/dist/agent-cli-instructions.md +9 -2
- package/dist/agent-cli.js +63 -2
- package/dist/agent-cli.js.map +1 -1
- package/dist/agent-endpoint.js +4 -0
- package/dist/agent-endpoint.js.map +1 -1
- package/dist/agent-file-read.d.ts +4 -1
- package/dist/agent-file-read.js +189 -16
- package/dist/agent-file-read.js.map +1 -1
- package/dist/agent-whats-new.d.ts +11 -0
- package/dist/agent-whats-new.js +29 -5
- package/dist/agent-whats-new.js.map +1 -1
- package/dist/auth-api.d.ts +30 -1
- package/dist/auth-api.js +45 -13
- package/dist/auth-api.js.map +1 -1
- package/dist/authority/authority-state.d.ts +38 -0
- package/dist/authority/authority-state.js +114 -0
- package/dist/authority/authority-state.js.map +1 -0
- package/dist/authority/session-authorizations.d.ts +43 -0
- package/dist/authority/session-authorizations.js +102 -0
- package/dist/authority/session-authorizations.js.map +1 -0
- package/dist/authority/web-authority.d.ts +120 -0
- package/dist/authority/web-authority.js +157 -0
- package/dist/authority/web-authority.js.map +1 -0
- package/dist/backend/claude-code.d.ts +2 -2
- package/dist/backend/claude-code.js +18 -8
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/backend/codex-metadata.d.ts +8 -0
- package/dist/backend/codex-metadata.js +74 -17
- package/dist/backend/codex-metadata.js.map +1 -1
- package/dist/backend/codex.js +15 -2
- package/dist/backend/codex.js.map +1 -1
- package/dist/backend/credential-profile.d.ts +2 -0
- package/dist/backend/credential-profile.js +2 -0
- package/dist/backend/credential-profile.js.map +1 -1
- package/dist/backend/types.d.ts +6 -0
- package/dist/backend/types.js +15 -0
- package/dist/backend/types.js.map +1 -1
- package/dist/backend-availability.d.ts +120 -0
- package/dist/backend-availability.js +396 -0
- package/dist/backend-availability.js.map +1 -0
- package/dist/backend-command.d.ts +23 -3
- package/dist/backend-command.js +25 -4
- package/dist/backend-command.js.map +1 -1
- package/dist/bug-report-cli.d.ts +30 -0
- package/dist/bug-report-cli.js +138 -0
- package/dist/bug-report-cli.js.map +1 -0
- package/dist/bug-report.d.ts +47 -0
- package/dist/bug-report.js +136 -0
- package/dist/bug-report.js.map +1 -0
- package/dist/bundled-skills.d.ts +14 -0
- package/dist/bundled-skills.js +29 -0
- package/dist/bundled-skills.js.map +1 -0
- package/dist/cache-ledger.d.ts +16 -3
- package/dist/cache-ledger.js +33 -13
- package/dist/cache-ledger.js.map +1 -1
- package/dist/cache-service.d.ts +55 -3
- package/dist/cache-service.js +152 -16
- package/dist/cache-service.js.map +1 -1
- package/dist/channel/adapters/discord-client-retirement.d.ts +5 -0
- package/dist/channel/adapters/discord-client-retirement.js +57 -0
- package/dist/channel/adapters/discord-client-retirement.js.map +1 -0
- package/dist/channel/adapters/discord.d.ts +9 -0
- package/dist/channel/adapters/discord.js +49 -4
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/mcp-tools.js +22 -11
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/channel/types.d.ts +6 -0
- package/dist/classic-channel-manager.d.ts +10 -5
- package/dist/classic-channel-manager.js +12 -9
- package/dist/classic-channel-manager.js.map +1 -1
- package/dist/cli.js +224 -111
- package/dist/cli.js.map +1 -1
- package/dist/config-validator.d.ts +6 -0
- package/dist/config-validator.js +129 -3
- package/dist/config-validator.js.map +1 -1
- package/dist/config.d.ts +13 -1
- package/dist/config.js +14 -5
- package/dist/config.js.map +1 -1
- package/dist/cross-instance-notice.d.ts +7 -0
- package/dist/cross-instance-notice.js +10 -0
- package/dist/cross-instance-notice.js.map +1 -1
- package/dist/daemon.d.ts +24 -1
- package/dist/daemon.js +151 -19
- package/dist/daemon.js.map +1 -1
- package/dist/decision-list.d.ts +25 -0
- package/dist/decision-list.js +30 -0
- package/dist/decision-list.js.map +1 -0
- package/dist/delivery-outbox.d.ts +10 -0
- package/dist/delivery-outbox.js +17 -1
- package/dist/delivery-outbox.js.map +1 -1
- package/dist/diagnostic-redaction.d.ts +10 -0
- package/dist/diagnostic-redaction.js +167 -0
- package/dist/diagnostic-redaction.js.map +1 -0
- package/dist/fleet-context.d.ts +10 -0
- package/dist/fleet-manager.d.ts +505 -15
- package/dist/fleet-manager.js +1870 -204
- package/dist/fleet-manager.js.map +1 -1
- package/dist/fleet-process-handlers.d.ts +18 -0
- package/dist/fleet-process-handlers.js +69 -0
- package/dist/fleet-process-handlers.js.map +1 -0
- package/dist/fleet-traffic.d.ts +74 -0
- package/dist/fleet-traffic.js +196 -0
- package/dist/fleet-traffic.js.map +1 -0
- package/dist/general-knowledge/skills/bug-report/SKILL.md +31 -0
- package/dist/general-knowledge/skills/credential-profiles/SKILL.md +17 -6
- package/dist/general-knowledge/skills/cross-instance-messaging/SKILL.md +6 -1
- package/dist/general-knowledge/skills/fleet-config/SKILL.md +2 -0
- package/dist/general-knowledge/skills/multi-channel/SKILL.md +3 -2
- package/dist/general-knowledge/skills/persona-emoji/SKILL.md +1 -1
- package/dist/general-knowledge/skills/scheduling/SKILL.md +4 -0
- package/dist/general-knowledge/skills/web-appearance/SKILL.md +190 -47
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +545 -0
- package/dist/general-knowledge/skills/worker-collaboration/SKILL.md +1 -1
- package/dist/human-delivery-receipts.d.ts +24 -1
- package/dist/human-delivery-receipts.js +64 -11
- package/dist/human-delivery-receipts.js.map +1 -1
- package/dist/instance-config-impact.js +7 -1
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +10 -1
- package/dist/instance-lifecycle.js +79 -18
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/instance-names.d.ts +4 -0
- package/dist/instance-names.js +12 -0
- package/dist/instance-names.js.map +1 -0
- package/dist/instructions.d.ts +12 -1
- package/dist/instructions.js +13 -2
- package/dist/instructions.js.map +1 -1
- package/dist/locale.js +173 -12
- package/dist/locale.js.map +1 -1
- package/dist/log-steps.d.ts +1 -0
- package/dist/log-steps.js +15 -0
- package/dist/log-steps.js.map +1 -1
- package/dist/login-controller.d.ts +45 -0
- package/dist/login-controller.js +101 -5
- package/dist/login-controller.js.map +1 -1
- package/dist/ls-attach-resolve.d.ts +96 -0
- package/dist/ls-attach-resolve.js +180 -0
- package/dist/ls-attach-resolve.js.map +1 -0
- package/dist/ls-rows.d.ts +12 -0
- package/dist/ls-rows.js +82 -3
- package/dist/ls-rows.js.map +1 -1
- package/dist/memory-hogs.d.ts +27 -0
- package/dist/memory-hogs.js +124 -0
- package/dist/memory-hogs.js.map +1 -0
- package/dist/needs-you.d.ts +10 -0
- package/dist/needs-you.js +2 -1
- package/dist/needs-you.js.map +1 -1
- package/dist/outbound-handlers.d.ts +11 -0
- package/dist/outbound-handlers.js +139 -11
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +200 -4
- package/dist/outbound-schemas.js +124 -11
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/public-web-gateway.js +17 -4
- package/dist/public-web-gateway.js.map +1 -1
- package/dist/public-web-link.d.ts +9 -0
- package/dist/public-web-link.js +8 -0
- package/dist/public-web-link.js.map +1 -1
- package/dist/quickstart-api.d.ts +19 -1
- package/dist/quickstart-api.js +94 -4
- package/dist/quickstart-api.js.map +1 -1
- package/dist/reply-buttons-controller.d.ts +4 -0
- package/dist/reply-buttons-controller.js +2 -2
- package/dist/reply-buttons-controller.js.map +1 -1
- package/dist/restart-progress.d.ts +80 -1
- package/dist/restart-progress.js +306 -21
- package/dist/restart-progress.js.map +1 -1
- package/dist/rollout-index.d.ts +5 -0
- package/dist/rollout-index.js +26 -5
- package/dist/rollout-index.js.map +1 -1
- package/dist/scheduler/db.d.ts +40 -13
- package/dist/scheduler/db.js +123 -89
- package/dist/scheduler/db.js.map +1 -1
- package/dist/scheduler/task-board-text.d.ts +26 -0
- package/dist/scheduler/task-board-text.js +135 -0
- package/dist/scheduler/task-board-text.js.map +1 -0
- package/dist/scheduler/task-board.d.ts +650 -0
- package/dist/scheduler/task-board.js +1938 -0
- package/dist/scheduler/task-board.js.map +1 -0
- package/dist/scheduler/types.d.ts +6 -1
- package/dist/search/search-docs.d.ts +58 -0
- package/dist/search/search-docs.js +63 -0
- package/dist/search/search-docs.js.map +1 -0
- package/dist/search/search-index.d.ts +141 -0
- package/dist/search/search-index.js +440 -0
- package/dist/search/search-index.js.map +1 -0
- package/dist/search/search-store.d.ts +122 -0
- package/dist/search/search-store.js +236 -0
- package/dist/search/search-store.js.map +1 -0
- package/dist/search/search-worker.d.ts +1 -0
- package/dist/search/search-worker.js +163 -0
- package/dist/search/search-worker.js.map +1 -0
- package/dist/service-installer.js +12 -0
- package/dist/service-installer.js.map +1 -1
- package/dist/settings-api.d.ts +23 -0
- package/dist/settings-api.js +164 -3
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-change.js +104 -0
- package/dist/settings-change.js.map +1 -1
- package/dist/settings-confirmation.d.ts +3 -1
- package/dist/settings-confirmation.js +2 -0
- package/dist/settings-confirmation.js.map +1 -1
- package/dist/settings-effect.js +34 -3
- package/dist/settings-effect.js.map +1 -1
- package/dist/settings-http-confirmation.d.ts +11 -0
- package/dist/settings-http-confirmation.js +10 -0
- package/dist/settings-http-confirmation.js.map +1 -1
- package/dist/setup-form.d.ts +1 -1
- package/dist/setup-form.js +23 -7
- package/dist/setup-form.js.map +1 -1
- package/dist/spawn-gate.d.ts +1 -0
- package/dist/spawn-gate.js +13 -3
- package/dist/spawn-gate.js.map +1 -1
- package/dist/task-board-tool.d.ts +25 -0
- package/dist/task-board-tool.js +154 -0
- package/dist/task-board-tool.js.map +1 -0
- package/dist/task-board-waker.d.ts +44 -0
- package/dist/task-board-waker.js +128 -0
- package/dist/task-board-waker.js.map +1 -0
- package/dist/tmux-exec-helper.d.ts +94 -0
- package/dist/tmux-exec-helper.js +407 -0
- package/dist/tmux-exec-helper.js.map +1 -0
- package/dist/tmux-manager.d.ts +5 -0
- package/dist/tmux-manager.js +42 -11
- package/dist/tmux-manager.js.map +1 -1
- package/dist/tool-permissions.d.ts +0 -7
- package/dist/tool-permissions.js +44 -5
- package/dist/tool-permissions.js.map +1 -1
- package/dist/topic-commands.d.ts +17 -1
- package/dist/topic-commands.js +45 -19
- package/dist/topic-commands.js.map +1 -1
- package/dist/tunnel/cloudflared.js +37 -2
- package/dist/tunnel/cloudflared.js.map +1 -1
- package/dist/tunnel/types.d.ts +3 -1
- package/dist/tunnel/types.js.map +1 -1
- package/dist/types.d.ts +63 -1
- package/dist/ui/app-effects.js +90 -32
- package/dist/ui/backend-signin.js +297 -0
- package/dist/ui/chat-ambient.js +307 -0
- package/dist/ui/chat-effect-posters.js +8 -8
- package/dist/ui/chat-effects.js +110 -15
- package/dist/ui/chat-msg-actions.js +176 -0
- package/dist/ui/chat-render.js +21 -3
- package/dist/ui/chat-store.js +64 -12
- package/dist/ui/chat-strings.js +85 -8
- package/dist/ui/chat-thread.js +204 -21
- package/dist/ui/effect-trial-controller.js +13 -8
- package/dist/ui/effect-trial-panel.js +19 -16
- package/dist/ui/effects-waker.js +70 -0
- package/dist/ui/fleet-canvas-layout.js +117 -0
- package/dist/ui/fleet-canvas.js +555 -0
- package/dist/ui/fleet-org.js +27 -12
- package/dist/ui/fleet-route-scene.js +207 -0
- package/dist/ui/fleet-route-worker.js +21 -0
- package/dist/ui/fleet-route.js +88 -0
- package/dist/ui/fleet-task-card.js +436 -0
- package/dist/ui/fleet-task-common.js +448 -0
- package/dist/ui/fleet-tasks.js +535 -0
- package/dist/ui/fleet-traffic.js +359 -0
- package/dist/ui/fleet-usage.js +435 -0
- package/dist/ui/panel-chat.js +264 -66
- package/dist/ui/panel-details.js +2 -1
- package/dist/ui/panel-fleet.js +65 -83
- package/dist/ui/panel-needs.js +4 -2
- package/dist/ui/panel-settings.js +56 -11
- package/dist/ui/preview.js +3 -2
- package/dist/ui/search-dialog.js +349 -0
- package/dist/ui/settings-appearance.js +44 -19
- package/dist/ui/settings-apply.js +3 -3
- package/dist/ui/settings-catalog.js +92 -0
- package/dist/ui/settings-confirm.js +7 -2
- package/dist/ui/settings-dialogs.js +40 -12
- package/dist/ui/settings-effects.js +4 -3
- package/dist/ui/settings-guests.js +117 -0
- package/dist/ui/settings-learn.js +25 -0
- package/dist/ui/settings-model.js +15 -6
- package/dist/ui/settings-mods.js +23 -9
- package/dist/ui/settings-owner-effects.js +15 -13
- package/dist/ui/settings-strings.js +122 -42
- package/dist/ui/settings-web-authority.js +91 -0
- package/dist/ui/shared/agend-auth.js +1 -1
- package/dist/ui/shared/app-i18n.js +11 -2
- package/dist/ui/shared/app-prefs.js +17 -4
- package/dist/ui/shared/app-route.js +19 -1
- package/dist/ui/shared/app-session.js +2 -0
- package/dist/ui/shared/app-shell.js +174 -30
- package/dist/ui/shared/app-store.js +26 -1
- package/dist/ui/shared/app-stream.js +5 -1
- package/dist/ui/shared/app-themes.js +140 -7
- package/dist/ui/shared/app.css +705 -20
- package/dist/ui/shared/app.js +26 -15
- package/dist/ui/shared/card-strings.js +8 -0
- package/dist/ui/shared/effect-app-runtime.js +68 -19
- package/dist/ui/shared/effect-chat-runtime.js +16 -3
- package/dist/ui/shared/effect-frame.js +26 -7
- package/dist/ui/shared/effect-geometry.js +24 -9
- package/dist/ui/shared/effect-owner-source.js +8 -1
- package/dist/ui/shared/effect-policy.js +21 -7
- package/dist/ui/shared/effect-profiler.js +31 -9
- package/dist/ui/shared/effect-registry.js +97 -50
- package/dist/ui/shared/effect-stock-snapshot.js +9 -0
- package/dist/ui/shared/effect-stock-trust.js +62 -10
- package/dist/ui/shared/effect-trial-shadow.js +62 -0
- package/dist/ui/shared/effect-trial-source.js +1 -1
- package/dist/ui/shared/effect-trial-stage.js +54 -31
- package/dist/ui/shared/effect-trial.css +40 -0
- package/dist/ui/shared/fx-motion.js +67 -0
- package/dist/ui/shared/identity-card.js +100 -11
- package/dist/ui/shared/identity-color.js +14 -10
- package/dist/ui/shared/instance-nav.js +179 -23
- package/dist/ui/shared/owner-css.js +30 -1
- package/dist/ui/shared/panel-view.js +24 -4
- package/dist/ui/shared/tokens.css +9 -3
- package/dist/ui/shared/ui-icons.js +2 -0
- package/dist/ui/shared/ui-menu.js +20 -7
- package/dist/ui/shared/ui-toast.js +16 -3
- package/dist/ui/shared/usage-dialog.js +34 -3
- package/dist/ui/shared/view-strings.js +72 -0
- package/dist/ui/shared/web-authorize.js +198 -0
- package/dist/ui/web-terminal/terminal.css +4 -4
- package/dist/ui/web-terminal/terminal.html +1 -1
- package/dist/update-launch.d.ts +9 -0
- package/dist/update-launch.js +38 -12
- package/dist/update-launch.js.map +1 -1
- package/dist/usage/format-rich.js +6 -3
- package/dist/usage/format-rich.js.map +1 -1
- package/dist/usage/i18n-keys.d.ts +1 -1
- package/dist/usage/i18n-keys.js +2 -1
- package/dist/usage/i18n-keys.js.map +1 -1
- package/dist/usage/i18n.d.ts +13 -1
- package/dist/usage/i18n.js +29 -0
- package/dist/usage/i18n.js.map +1 -1
- package/dist/usage/providers.d.ts +81 -2
- package/dist/usage/providers.js +240 -38
- package/dist/usage/providers.js.map +1 -1
- package/dist/usage/usage-api.d.ts +5 -1
- package/dist/usage/usage-api.js +184 -58
- package/dist/usage/usage-api.js.map +1 -1
- package/dist/usage-report.d.ts +158 -0
- package/dist/usage-report.js +226 -0
- package/dist/usage-report.js.map +1 -0
- package/dist/usage-rollup.d.ts +51 -0
- package/dist/usage-rollup.js +168 -0
- package/dist/usage-rollup.js.map +1 -0
- package/dist/user-systemd.d.ts +24 -0
- package/dist/user-systemd.js +75 -0
- package/dist/user-systemd.js.map +1 -0
- package/dist/view-api.d.ts +39 -0
- package/dist/view-api.js +69 -6
- package/dist/view-api.js.map +1 -1
- package/dist/web-ambient.d.ts +72 -0
- package/dist/web-ambient.js +161 -0
- package/dist/web-ambient.js.map +1 -0
- package/dist/web-api.d.ts +98 -14
- package/dist/web-api.js +1027 -83
- package/dist/web-api.js.map +1 -1
- package/dist/web-appearance-policy.d.ts +4 -6
- package/dist/web-appearance-policy.js +5 -12
- package/dist/web-appearance-policy.js.map +1 -1
- package/dist/web-appearance-tools.d.ts +3 -0
- package/dist/web-appearance-tools.js +22 -3
- package/dist/web-appearance-tools.js.map +1 -1
- package/dist/web-appearance-view.d.ts +27 -2
- package/dist/web-appearance-view.js +129 -14
- package/dist/web-appearance-view.js.map +1 -1
- package/dist/web-appearance.d.ts +17 -3
- package/dist/web-appearance.js +85 -8
- package/dist/web-appearance.js.map +1 -1
- package/dist/web-asset-parts.d.ts +2 -2
- package/dist/web-asset-parts.js +3 -3
- package/dist/web-asset-parts.js.map +1 -1
- package/dist/web-auth.js +3 -1
- package/dist/web-auth.js.map +1 -1
- package/dist/web-backend-login.d.ts +130 -0
- package/dist/web-backend-login.js +225 -0
- package/dist/web-backend-login.js.map +1 -0
- package/dist/web-card.d.ts +14 -0
- package/dist/web-card.js +40 -6
- package/dist/web-card.js.map +1 -1
- package/dist/web-channel-echo.d.ts +7 -1
- package/dist/web-channel-echo.js +6 -2
- package/dist/web-channel-echo.js.map +1 -1
- package/dist/web-chat-history.d.ts +83 -0
- package/dist/web-chat-history.js +137 -5
- package/dist/web-chat-history.js.map +1 -1
- package/dist/web-commands.d.ts +6 -1
- package/dist/web-commands.js +1 -1
- package/dist/web-commands.js.map +1 -1
- package/dist/web-effect-bootstrap.d.ts +12 -0
- package/dist/web-effect-bootstrap.js +49 -0
- package/dist/web-effect-bootstrap.js.map +1 -0
- package/dist/web-effect-bundle.js +46 -1
- package/dist/web-effect-bundle.js.map +1 -1
- package/dist/web-effect-playback.d.ts +30 -0
- package/dist/web-effect-playback.js +71 -0
- package/dist/web-effect-playback.js.map +1 -0
- package/dist/web-effect-profiles.d.ts +4 -4
- package/dist/web-effect-service.d.ts +11 -4
- package/dist/web-effect-service.js +25 -4
- package/dist/web-effect-service.js.map +1 -1
- package/dist/web-effect-tools.d.ts +1 -0
- package/dist/web-effect-tools.js +4 -4
- package/dist/web-effect-tools.js.map +1 -1
- package/dist/web-effect-trials.d.ts +2 -2
- package/dist/web-effect-trials.js +3 -3
- package/dist/web-effect-trials.js.map +1 -1
- package/dist/web-effect-upload.js +1 -1
- package/dist/web-effect-upload.js.map +1 -1
- package/dist/web-effect-worker.d.ts +1 -1
- package/dist/web-effect-worker.js +2 -2
- package/dist/web-effect-worker.js.map +1 -1
- package/dist/web-effect.d.ts +1 -1
- package/dist/web-guest-access.d.ts +126 -0
- package/dist/web-guest-access.js +238 -0
- package/dist/web-guest-access.js.map +1 -0
- package/dist/web-guest-rooms.d.ts +82 -0
- package/dist/web-guest-rooms.js +135 -0
- package/dist/web-guest-rooms.js.map +1 -0
- package/dist/web-host-guard.d.ts +11 -0
- package/dist/web-host-guard.js +11 -0
- package/dist/web-host-guard.js.map +1 -1
- package/dist/web-identity-color.d.ts +1 -1
- package/dist/web-identity-color.js +2 -2
- package/dist/web-identity-color.js.map +1 -1
- package/dist/web-identity-palette.d.ts +1 -1
- package/dist/web-identity-palette.js +2 -2
- package/dist/web-identity-palette.js.map +1 -1
- package/dist/web-image-meta.d.ts +13 -0
- package/dist/web-image-meta.js +62 -0
- package/dist/web-image-meta.js.map +1 -1
- package/dist/web-libavoid.d.ts +14 -0
- package/dist/web-libavoid.js +46 -0
- package/dist/web-libavoid.js.map +1 -0
- package/dist/web-login.d.ts +47 -0
- package/dist/web-login.js +115 -0
- package/dist/web-login.js.map +1 -1
- package/dist/web-mod-agent.d.ts +1 -1
- package/dist/web-mod-agent.js +7 -5
- package/dist/web-mod-agent.js.map +1 -1
- package/dist/web-mod-bundle.d.ts +9 -1
- package/dist/web-mod-bundle.js +62 -3
- package/dist/web-mod-bundle.js.map +1 -1
- package/dist/web-mod-export.d.ts +9 -0
- package/dist/web-mod-export.js +21 -0
- package/dist/web-mod-export.js.map +1 -1
- package/dist/web-mod-store.d.ts +7 -1
- package/dist/web-mod-store.js +19 -6
- package/dist/web-mod-store.js.map +1 -1
- package/dist/web-owner-css-store.d.ts +44 -1
- package/dist/web-owner-css-store.js +70 -9
- package/dist/web-owner-css-store.js.map +1 -1
- package/dist/web-prefs.d.ts +14 -0
- package/dist/web-prefs.js +37 -4
- package/dist/web-prefs.js.map +1 -1
- package/dist/web-preview.d.ts +6 -2
- package/dist/web-preview.js +4 -2
- package/dist/web-preview.js.map +1 -1
- package/dist/web-returning-device.d.ts +41 -0
- package/dist/web-returning-device.js +57 -5
- package/dist/web-returning-device.js.map +1 -1
- package/dist/web-session-authorization.d.ts +132 -0
- package/dist/web-session-authorization.js +193 -0
- package/dist/web-session-authorization.js.map +1 -0
- package/dist/web-session.d.ts +70 -10
- package/dist/web-session.js +137 -22
- package/dist/web-session.js.map +1 -1
- package/dist/web-settings-patch.d.ts +49 -2
- package/dist/web-settings-patch.js +145 -1
- package/dist/web-settings-patch.js.map +1 -1
- package/dist/web-settings-tools.d.ts +94 -0
- package/dist/web-settings-tools.js +301 -0
- package/dist/web-settings-tools.js.map +1 -0
- package/dist/web-shell-routes.d.ts +1 -1
- package/dist/web-shell-routes.js +1 -1
- package/dist/web-shell-routes.js.map +1 -1
- package/dist/web-terminal-http.js +15 -2
- package/dist/web-terminal-http.js.map +1 -1
- package/dist/web-theme-store.d.ts +39 -0
- package/dist/web-theme-store.js +122 -11
- package/dist/web-theme-store.js.map +1 -1
- package/dist/web-theme.d.ts +31 -0
- package/dist/web-theme.js +99 -2
- package/dist/web-theme.js.map +1 -1
- package/dist/web-upload.d.ts +13 -0
- package/dist/web-upload.js +39 -3
- package/dist/web-upload.js.map +1 -1
- package/dist/windows-shortcuts.d.ts +78 -0
- package/dist/windows-shortcuts.js +203 -0
- package/dist/windows-shortcuts.js.map +1 -0
- package/dist/workflow-templates/default.md +4 -1
- package/dist/yaml-shared-nodes.d.ts +25 -0
- package/dist/yaml-shared-nodes.js +185 -0
- package/dist/yaml-shared-nodes.js.map +1 -0
- package/launcher/agend-install.cjs +553 -0
- package/launcher/install-admission.cjs +4 -39
- package/launcher/postinstall.cjs +14 -12
- package/package.json +4 -2
- package/scripts/preinstall-guard.cjs +2 -5
- package/templates/windows-shortcuts.ps1 +181 -0
- package/launcher/old-updater-note.cjs +0 -48
|
@@ -15,7 +15,7 @@ import { CHAT_PROFILE_LOGIN_BACKENDS, credentialProfileLogin, credentialSwitchCa
|
|
|
15
15
|
import { kiroEngineCandidates, kiroEngineStatus } from "./kiro-engine-status.js";
|
|
16
16
|
import { noPlaceMarkers, placeRef, renderPlaceRefs, stripPlaceRefs, webRoute } from "./topic-link.js";
|
|
17
17
|
import { formatCrossInstanceInboundMessage, MAX_ASSEMBLED_CROSS_INSTANCE_MESSAGE_BYTES, } from "./cross-instance-envelope.js";
|
|
18
|
-
import { BroadcastArgs, CreateInstanceArgs, CreateTeamArgs, DelegateTaskArgs, DeleteInstanceArgs, DeleteTeamArgs, DeployTemplateArgs, DescribeInstanceArgs, ListDeploymentsArgs, ListInstancesArgs, ListTeamsArgs, ReplaceInstanceArgs, ReportResultArgs, DeliveryStatusArgs, RequestInformationArgs, RestartInstanceArgs, SendToInstanceArgs, PauseInstanceArgs, WakeInstanceArgs, StopInstanceArgs, GetInstanceLogsArgs, GetEffortArgs, ClosePollArgs, KiroEngineStatusArgs, GetUsageArgs, GetCacheReportArgs, ListModelsArgs, GetFleetConfigArgs, UpdateInstanceConfigArgs, UpdateFleetDefaultsArgs, StartInstanceArgs, TeardownDeploymentArgs, UpdateTeamArgs, validateArgs, } from "./outbound-schemas.js";
|
|
18
|
+
import { BroadcastArgs, CreateInstanceArgs, CreateTeamArgs, DelegateTaskArgs, DeleteInstanceArgs, DeleteTeamArgs, DeployTemplateArgs, DescribeInstanceArgs, ListDeploymentsArgs, ListInstancesArgs, ListTeamsArgs, ReplaceInstanceArgs, ReportResultArgs, DeliveryStatusArgs, RequestInformationArgs, RestartInstanceArgs, SendToInstanceArgs, PauseInstanceArgs, WakeInstanceArgs, StopInstanceArgs, GetInstanceLogsArgs, GetEffortArgs, ClosePollArgs, KiroEngineStatusArgs, GetUsageArgs, GetCacheReportArgs, GetUsageReportArgs, GetWebSettingsArgs, SetWebSettingsArgs, ListModelsArgs, GetFleetConfigArgs, UpdateInstanceConfigArgs, UpdateFleetDefaultsArgs, StartInstanceArgs, TeardownDeploymentArgs, UpdateTeamArgs, validateArgs, } from "./outbound-schemas.js";
|
|
19
19
|
const HOME_DIR = homedir();
|
|
20
20
|
function formatByteSize(bytes) {
|
|
21
21
|
if (bytes < 1024)
|
|
@@ -413,6 +413,10 @@ const sendToInstance = async (ctx, rawArgs, respond, meta) => {
|
|
|
413
413
|
ctx.logger.info(`✉ ${senderLabel} → ${targetName}: ${(message ?? "").slice(0, 100)} [msg=${ipcMeta.message_id} sha=${deliveryContentDigest(message ?? "").slice(0, 12)}]`);
|
|
414
414
|
const taskSummary = ipcMeta.task_summary || (message ?? "").slice(0, 200);
|
|
415
415
|
ctx.eventLog?.logActivity("message", senderLabel, taskSummary, targetName, ipcMeta.request_kind);
|
|
416
|
+
// #2293: indexed for the dashboard's search as the outbox keeps it (a retried call the outbox admitted before: not again).
|
|
417
|
+
if (!durableReceipt?.duplicate)
|
|
418
|
+
ctx.indexCrossInstance?.({ messageId: ipcMeta.message_id, from: senderLabel, to: targetName, kind: ipcMeta.request_kind,
|
|
419
|
+
correlationId: ipcMeta.correlation_id, taskSummary: ipcMeta.task_summary, content: message ?? "", ts: ipcMeta.ts });
|
|
416
420
|
ctx.queueMirrorMessage?.(`${displayLabel(senderLabel)} → ${displayLabel(targetName)}: ${truncatePreview(message ?? "", 500)}`);
|
|
417
421
|
const targetDaemon = ctx.lifecycle.daemons.get(targetInstanceName);
|
|
418
422
|
const targetStateWarning = targetDaemon?.isErrorState
|
|
@@ -522,7 +526,8 @@ const listInstances = (ctx, rawArgs, respond, meta) => {
|
|
|
522
526
|
}
|
|
523
527
|
if (filterName) {
|
|
524
528
|
const lowerName = filterName.toLowerCase();
|
|
525
|
-
allInstances = allInstances.filter(i => i.name.toLowerCase().includes(lowerName)
|
|
529
|
+
allInstances = allInstances.filter(i => i.name.toLowerCase().includes(lowerName) ||
|
|
530
|
+
(i.display_name?.toLowerCase().includes(lowerName) ?? false));
|
|
526
531
|
}
|
|
527
532
|
if (filterBackend) {
|
|
528
533
|
allInstances = allInstances.filter(i => i.backend === filterBackend);
|
|
@@ -552,6 +557,7 @@ const listInstances = (ctx, rawArgs, respond, meta) => {
|
|
|
552
557
|
const compactInstances = allInstances.map(i => ({
|
|
553
558
|
name: i.name,
|
|
554
559
|
status: i.status,
|
|
560
|
+
...(i.display_name ? { display_name: i.display_name } : {}),
|
|
555
561
|
backend: i.backend,
|
|
556
562
|
model: i.model,
|
|
557
563
|
kind: i.kind,
|
|
@@ -603,6 +609,7 @@ const describeInstance = (ctx, rawArgs, respond) => {
|
|
|
603
609
|
name: targetName,
|
|
604
610
|
type: "instance",
|
|
605
611
|
kind: "fleet-topic",
|
|
612
|
+
display_name: config.display_name ?? null,
|
|
606
613
|
description: config.description ?? null,
|
|
607
614
|
tags: config.tags ?? [],
|
|
608
615
|
working_directory: config.working_directory,
|
|
@@ -789,11 +796,37 @@ const stopInstance = async (ctx, rawArgs, respond) => {
|
|
|
789
796
|
};
|
|
790
797
|
const getFleetStatus = (ctx, rawArgs, respond) => {
|
|
791
798
|
const instances = ctx.fleetConfig?.instances ?? {};
|
|
792
|
-
const
|
|
793
|
-
const
|
|
794
|
-
const
|
|
795
|
-
const
|
|
796
|
-
|
|
799
|
+
const fleetNames = Object.keys(instances);
|
|
800
|
+
const fleetRunning = fleetNames.filter(n => ctx.lifecycle.daemons.has(n) && !ctx.lifecycle.isPaused(n)).length;
|
|
801
|
+
const fleetPaused = fleetNames.filter(n => ctx.lifecycle.isPaused(n)).length;
|
|
802
|
+
const fleetStopped = fleetNames.length - fleetRunning - fleetPaused;
|
|
803
|
+
// Classic channels — same status source as list_instances and agend ls.
|
|
804
|
+
// Dedup: skip names already in the fleet (same-name fleet instance wins),
|
|
805
|
+
// AND skip classic names already seen (two channels can share an instanceName).
|
|
806
|
+
const fleetNameSet = new Set(fleetNames);
|
|
807
|
+
const seenClassic = new Set();
|
|
808
|
+
const classicAll = [];
|
|
809
|
+
if (ctx.classicChannels) {
|
|
810
|
+
for (const ch of ctx.classicChannels.getAll()) {
|
|
811
|
+
if (fleetNameSet.has(ch.instanceName))
|
|
812
|
+
continue;
|
|
813
|
+
if (seenClassic.has(ch.instanceName))
|
|
814
|
+
continue;
|
|
815
|
+
seenClassic.add(ch.instanceName);
|
|
816
|
+
classicAll.push(ch.instanceName);
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
const classicRunning = classicAll.filter(n => ctx.lifecycle.daemons.has(n) && !ctx.lifecycle.isPaused(n)).length;
|
|
820
|
+
const classicPaused = classicAll.filter(n => ctx.lifecycle.isPaused(n)).length;
|
|
821
|
+
const classicStopped = classicAll.length - classicRunning - classicPaused;
|
|
822
|
+
respond({
|
|
823
|
+
total: fleetNames.length + classicAll.length,
|
|
824
|
+
running: fleetRunning + classicRunning,
|
|
825
|
+
paused: fleetPaused + classicPaused,
|
|
826
|
+
stopped: fleetStopped + classicStopped,
|
|
827
|
+
fleet: { total: fleetNames.length, running: fleetRunning, paused: fleetPaused, stopped: fleetStopped },
|
|
828
|
+
classic: { total: classicAll.length, running: classicRunning, paused: classicPaused, stopped: classicStopped },
|
|
829
|
+
});
|
|
797
830
|
};
|
|
798
831
|
const kiroEngineStatusHandler = (ctx, rawArgs, respond) => {
|
|
799
832
|
const v = validateArgs(KiroEngineStatusArgs, rawArgs, "kiro_engine_status");
|
|
@@ -871,6 +904,43 @@ const getUsage = async (ctx, rawArgs, respond) => {
|
|
|
871
904
|
respond(null, `Usage fetch failed: ${err.message}`);
|
|
872
905
|
}
|
|
873
906
|
};
|
|
907
|
+
/**
|
|
908
|
+
* #2056: Settings → Web appearance for the user — get_web_settings / set_web_settings, through the page's own stores and
|
|
909
|
+
* checks (web-settings-tools.ts). Who may call them is the tool profile (General, coordinator, full), at every sink.
|
|
910
|
+
*/
|
|
911
|
+
const getWebSettings = async (ctx, rawArgs, respond) => {
|
|
912
|
+
const v = validateArgs(GetWebSettingsArgs, rawArgs, "get_web_settings");
|
|
913
|
+
if (!v.ok) {
|
|
914
|
+
respond(null, v.error);
|
|
915
|
+
return;
|
|
916
|
+
}
|
|
917
|
+
if (!ctx.webSettings) {
|
|
918
|
+
respond(null, "get_web_settings is unavailable on this fleet");
|
|
919
|
+
return;
|
|
920
|
+
}
|
|
921
|
+
const r = ctx.webSettings.read(v.data.person);
|
|
922
|
+
if (r.ok)
|
|
923
|
+
respond(r);
|
|
924
|
+
else
|
|
925
|
+
respond(null, `get_web_settings: ${r.error}${r.detail ? ` — ${r.detail}` : ""}`);
|
|
926
|
+
};
|
|
927
|
+
const setWebSettings = async (ctx, rawArgs, respond) => {
|
|
928
|
+
const v = validateArgs(SetWebSettingsArgs, rawArgs, "set_web_settings");
|
|
929
|
+
if (!v.ok) {
|
|
930
|
+
respond(null, v.error);
|
|
931
|
+
return;
|
|
932
|
+
}
|
|
933
|
+
if (!ctx.webSettings) {
|
|
934
|
+
respond(null, "set_web_settings is unavailable on this fleet");
|
|
935
|
+
return;
|
|
936
|
+
}
|
|
937
|
+
try {
|
|
938
|
+
respond(ctx.webSettings.change(v.data.person, v.data.change));
|
|
939
|
+
}
|
|
940
|
+
catch (err) {
|
|
941
|
+
respond(null, `set_web_settings failed: ${err.message}`);
|
|
942
|
+
}
|
|
943
|
+
};
|
|
874
944
|
/**
|
|
875
945
|
* #2001: the prompt-cache report for an agent. From the last scan (cacheReportPublished: in-memory ledgers, reused
|
|
876
946
|
* for a minute) — no transcript read and no process on the fleet loop. Who sees what: cacheReportScope.
|
|
@@ -904,6 +974,49 @@ const getCacheReport = async (ctx, rawArgs, respond, meta) => {
|
|
|
904
974
|
respond(null, `get_cache_report failed: ${err.message}`);
|
|
905
975
|
}
|
|
906
976
|
};
|
|
977
|
+
/**
|
|
978
|
+
* #2122: the usage report for an agent — the dashboard's Fleet → Usage, from the last scan (no transcript read). Who
|
|
979
|
+
* sees what: cacheReportScope (its own row, or the fleet). Every amount carries `basis`: the API-equivalent at list
|
|
980
|
+
* price, not money spent.
|
|
981
|
+
*/
|
|
982
|
+
const getUsageReport = async (ctx, rawArgs, respond, meta) => {
|
|
983
|
+
const v = validateArgs(GetUsageReportArgs, rawArgs, "get_usage_report");
|
|
984
|
+
if (!v.ok) {
|
|
985
|
+
respond(null, v.error);
|
|
986
|
+
return;
|
|
987
|
+
}
|
|
988
|
+
const caller = meta?.instanceName;
|
|
989
|
+
if (!caller) {
|
|
990
|
+
respond(null, "get_usage_report: the calling instance is unknown");
|
|
991
|
+
return;
|
|
992
|
+
}
|
|
993
|
+
if (!ctx.usageReport) {
|
|
994
|
+
respond(null, "get_usage_report is unavailable on this fleet");
|
|
995
|
+
return;
|
|
996
|
+
}
|
|
997
|
+
const { resolveToolSet, cacheReportScope } = await import("./tool-permissions.js");
|
|
998
|
+
const { usageRange, usageGroup } = await import("./usage-report.js");
|
|
999
|
+
const scope = cacheReportScope(resolveToolSet(ctx.fleetConfig?.instances[caller], caller));
|
|
1000
|
+
if (scope === "own" && v.data.instance !== undefined && v.data.instance !== caller) {
|
|
1001
|
+
respond(null, "get_usage_report: an instance reads only its own row");
|
|
1002
|
+
return;
|
|
1003
|
+
}
|
|
1004
|
+
const only = scope === "own" ? caller : v.data.instance;
|
|
1005
|
+
try {
|
|
1006
|
+
const r = await ctx.usageReport({ range: usageRange(v.data.range, v.data.from, v.data.to), group: scope === "own" ? "instance" : usageGroup(v.data.group), ...(only ? { only } : {}) });
|
|
1007
|
+
const top = v.data.top ?? 10;
|
|
1008
|
+
respond({
|
|
1009
|
+
basis: r.basis, range: r.range, zone: r.zone, granularity: r.granularity, group: r.group,
|
|
1010
|
+
rows: r.rows.slice(0, top).map(row => ({ ...row, basis: r.basis })),
|
|
1011
|
+
more: Math.max(0, r.rows.length - top),
|
|
1012
|
+
totals: { ...r.totals, basis: r.basis },
|
|
1013
|
+
notMeasured: r.notMeasured, shared: r.shared, scanning: r.scanning,
|
|
1014
|
+
});
|
|
1015
|
+
}
|
|
1016
|
+
catch (err) {
|
|
1017
|
+
respond(null, `get_usage_report failed: ${err.message}`);
|
|
1018
|
+
}
|
|
1019
|
+
};
|
|
907
1020
|
/**
|
|
908
1021
|
* Enumerate a backend's models. Read-only and best-effort by design: the
|
|
909
1022
|
* catalog is an aid for picking a name, and AgEnD passes model strings through
|
|
@@ -1471,7 +1584,10 @@ const broadcast = async (ctx, rawArgs, respond, meta) => {
|
|
|
1471
1584
|
const senderLabel = meta.senderSessionName ?? meta.instanceName;
|
|
1472
1585
|
const operationId = ctx.admitDurableDelivery ? meta.operationId ?? randomUUID() : meta.operationId;
|
|
1473
1586
|
const senderDisplay = ctx.fleetConfig?.instances[senderLabel]?.display_name;
|
|
1474
|
-
|
|
1587
|
+
// One message id for this broadcast — every target's row shares it (delivery_status by message_id finds them all) —
|
|
1588
|
+
// and no other broadcast's: a millisecond alone is not unique (#2295 review; the search index keys on it).
|
|
1589
|
+
const broadcastMessageId = `bcast-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
1590
|
+
const makeBroadcastMeta = (correlationId, messageId = broadcastMessageId) => {
|
|
1475
1591
|
const ipcMeta = {
|
|
1476
1592
|
chat_id: "", message_id: messageId, user: `instance:${senderLabel}`,
|
|
1477
1593
|
user_id: `instance:${senderLabel}`, ts: new Date().toISOString(), thread_id: "",
|
|
@@ -1490,7 +1606,7 @@ const broadcast = async (ctx, rawArgs, respond, meta) => {
|
|
|
1490
1606
|
// Validate once before dispatching any target. The placeholders are the
|
|
1491
1607
|
// longest values generated below, so every real per-target envelope fits if
|
|
1492
1608
|
// this one does. Keeping this outside the loop prevents partial broadcasts.
|
|
1493
|
-
if (rejectOversizedCrossInstanceEnvelope(message, makeBroadcastMeta("bcast-9999999999999-zzzzzz", "bcast-9999999999999"), respond, "either"))
|
|
1609
|
+
if (rejectOversizedCrossInstanceEnvelope(message, makeBroadcastMeta("bcast-9999999999999-zzzzzz", "bcast-9999999999999-zzzzzz"), respond, "either"))
|
|
1494
1610
|
return;
|
|
1495
1611
|
// Resolve target list: team, explicit targets, tag filter, or all running
|
|
1496
1612
|
let targetNames;
|
|
@@ -1520,6 +1636,7 @@ const broadcast = async (ctx, rawArgs, respond, meta) => {
|
|
|
1520
1636
|
// target's idle gate blocked for as long as the BUSIEST recipient. Connectivity
|
|
1521
1637
|
// is decided synchronously (that's the real failure), delivery runs in background.
|
|
1522
1638
|
const sentTo = [];
|
|
1639
|
+
const sentMeta = new Map();
|
|
1523
1640
|
const failed = [];
|
|
1524
1641
|
for (const targetName of targetNames) {
|
|
1525
1642
|
const hostInstance = ctx.instanceIpcClients.has(targetName) ? targetName : ctx.sessionRegistry.get(targetName);
|
|
@@ -1530,9 +1647,10 @@ const broadcast = async (ctx, rawArgs, respond, meta) => {
|
|
|
1530
1647
|
const correlationId = `bcast-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
1531
1648
|
const ipcMeta = makeBroadcastMeta(correlationId);
|
|
1532
1649
|
const payload = { type: "fleet_inbound", targetSession: targetName, content: message, meta: ipcMeta };
|
|
1650
|
+
let duplicate = false;
|
|
1533
1651
|
if (ctx.admitDurableDelivery) {
|
|
1534
1652
|
try {
|
|
1535
|
-
ctx.admitDurableDelivery({
|
|
1653
|
+
duplicate = ctx.admitDurableDelivery({
|
|
1536
1654
|
operationId: operationId,
|
|
1537
1655
|
sourceDaemonBootId: meta.sourceDaemonBootId ?? ctx.getDaemonBootId?.(meta.instanceName),
|
|
1538
1656
|
sourceInstance: meta.instanceName,
|
|
@@ -1541,7 +1659,7 @@ const broadcast = async (ctx, rawArgs, respond, meta) => {
|
|
|
1541
1659
|
kind: "broadcast",
|
|
1542
1660
|
correlationId,
|
|
1543
1661
|
payload,
|
|
1544
|
-
});
|
|
1662
|
+
})?.duplicate === true;
|
|
1545
1663
|
}
|
|
1546
1664
|
catch (err) {
|
|
1547
1665
|
ctx.logger.error({ err, target: targetName, source: meta.instanceName }, "Durable broadcast admission failed closed");
|
|
@@ -1554,11 +1672,18 @@ const broadcast = async (ctx, rawArgs, respond, meta) => {
|
|
|
1554
1672
|
void deliverCrossInstanceWithRetry(ctx, hostInstance, targetName, senderLabel, correlationId, payload);
|
|
1555
1673
|
}
|
|
1556
1674
|
sentTo.push(targetName);
|
|
1675
|
+
// #2293: indexed as the outbox keeps it — a retried call the outbox admitted before keeps the first call's row.
|
|
1676
|
+
if (!duplicate)
|
|
1677
|
+
sentMeta.set(targetName, ipcMeta);
|
|
1557
1678
|
}
|
|
1558
1679
|
ctx.logger.info(`📢 ${senderLabel} broadcast to ${sentTo.length} instances: ${(message).slice(0, 80)}`);
|
|
1559
1680
|
const summary = task_summary || message.slice(0, 200);
|
|
1560
1681
|
for (const target of sentTo) {
|
|
1561
1682
|
ctx.eventLog?.logActivity("message", senderLabel, summary, target);
|
|
1683
|
+
const sent = sentMeta.get(target);
|
|
1684
|
+
if (sent)
|
|
1685
|
+
ctx.indexCrossInstance?.({ messageId: sent.message_id, from: senderLabel, to: target, kind: sent.request_kind ?? "broadcast",
|
|
1686
|
+
correlationId: sent.correlation_id, taskSummary: task_summary, content: message, ts: sent.ts });
|
|
1562
1687
|
}
|
|
1563
1688
|
// Mirror Topic is user-facing: display labels, never long ids (#1301),
|
|
1564
1689
|
// unique across the fleet (#1305 P2-1).
|
|
@@ -2027,6 +2152,9 @@ export const outboundHandlers = new Map([
|
|
|
2027
2152
|
["kiro_engine_status", kiroEngineStatusHandler],
|
|
2028
2153
|
["get_usage", getUsage],
|
|
2029
2154
|
["get_cache_report", getCacheReport],
|
|
2155
|
+
["get_usage_report", getUsageReport],
|
|
2156
|
+
["get_web_settings", getWebSettings],
|
|
2157
|
+
["set_web_settings", setWebSettings],
|
|
2030
2158
|
["list_models", listModels],
|
|
2031
2159
|
["get_instance_logs", getInstanceLogs],
|
|
2032
2160
|
["get_fleet_config", getFleetConfig],
|