@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
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createHash, randomUUID } from "node:crypto";
|
|
2
2
|
import { t } from "./locale.js";
|
|
3
3
|
import { renderCrossInstanceHandoffMetadata } from "./cross-instance-envelope.js";
|
|
4
|
+
import { isHumanAuthority, platformAuthority, receiptAuthority } from "./authority/web-authority.js";
|
|
4
5
|
/** Called only by trusted SDK event producers, never on text/agent metadata. */
|
|
5
6
|
export function nativeHumanOrigin(platform, adapterId, userId, username, isBot, messageId, action) {
|
|
6
7
|
if (isBot !== false || !adapterId || !userId)
|
|
@@ -11,9 +12,10 @@ export function nativeHumanOrigin(platform, adapterId, userId, username, isBot,
|
|
|
11
12
|
...(action ? { anchor_message_id: action.anchor, event_id: action.event } : {}),
|
|
12
13
|
};
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
+
/** The actor fields stay null whatever the session (§4: HumanOrigin.platform stays "web"); its account is in `authority`. */
|
|
16
|
+
export function webHumanOrigin(action = false, authority) {
|
|
15
17
|
return { platform: "web", adapter_id: null, user_id: null, username: null,
|
|
16
|
-
platform_message_id: null, ingress: action ? "action" : "web" };
|
|
18
|
+
platform_message_id: null, ingress: action ? "action" : "web", ...(authority ? { authority } : {}) };
|
|
17
19
|
}
|
|
18
20
|
export function humanBodyHash(body) {
|
|
19
21
|
return createHash("sha256").update(body, "utf8").digest("hex");
|
|
@@ -53,7 +55,13 @@ export function initializeHumanReceipts(db) {
|
|
|
53
55
|
"state TEXT NOT NULL CHECK (state IN ('queued','delivered','uncertain')),",
|
|
54
56
|
"proof_tag TEXT,proof_mode TEXT,created_at TEXT NOT NULL,updated_at TEXT NOT NULL,delivered_at TEXT);",
|
|
55
57
|
"CREATE INDEX IF NOT EXISTS idx_human_receipt_retention ON human_delivery_receipts(updated_at);",
|
|
58
|
+
// #2122 §5.4: delivered messages per instance per UTC hour, counted where a receipt becomes delivered (kept 400 days).
|
|
59
|
+
"CREATE TABLE IF NOT EXISTS usage_message_hours (instance TEXT NOT NULL, hour INTEGER NOT NULL, count INTEGER NOT NULL, PRIMARY KEY (instance, hour));",
|
|
56
60
|
].join("\n"));
|
|
61
|
+
// #1939: added in place; rows from before keep NULL, which reads as their platform's meaning.
|
|
62
|
+
const columns = db.prepare("PRAGMA table_info(human_delivery_receipts)").all();
|
|
63
|
+
if (!columns.some(c => c.name === "authority_json"))
|
|
64
|
+
db.exec("ALTER TABLE human_delivery_receipts ADD COLUMN authority_json TEXT");
|
|
57
65
|
}
|
|
58
66
|
/** Server-only admission; no origin is read from an agent payload or tool argument. */
|
|
59
67
|
export function createHumanReceipt(db, input) {
|
|
@@ -63,16 +71,21 @@ export function createHumanReceipt(db, input) {
|
|
|
63
71
|
|| !["message", "action", "web"].includes(input.origin.ingress)
|
|
64
72
|
|| (input.origin.platform !== "web" && (!input.origin.adapter_id || !input.origin.user_id || input.origin.ingress === "web"))
|
|
65
73
|
|| (input.origin.platform === "web" && (input.origin.adapter_id !== null || input.origin.user_id !== null || input.origin.username !== null || input.origin.platform_message_id !== null))
|
|
66
|
-
|| (input.origin.ingress === "action" && input.origin.platform_message_id !== null)
|
|
74
|
+
|| (input.origin.ingress === "action" && input.origin.platform_message_id !== null)
|
|
75
|
+
// #1939: only web admission writes authority, and only the shape it writes; platform authority comes from the origin.
|
|
76
|
+
|| (input.origin.authority !== undefined && (input.origin.platform !== "web" || !isHumanAuthority(input.origin.authority)
|
|
77
|
+
|| input.origin.authority.kind === "platform")))
|
|
67
78
|
throw new Error("Human verification evidence is unavailable");
|
|
68
|
-
const
|
|
79
|
+
const { authority: webAuthority, ...stored } = input.origin;
|
|
80
|
+
const authority = JSON.stringify(stored.platform === "web" ? webAuthority ?? { kind: "none", actor: null, authority_epoch: 0 } : platformAuthority(stored, 0));
|
|
81
|
+
const origin = JSON.stringify(stored);
|
|
69
82
|
if (Buffer.byteLength(origin, "utf8") > 4096)
|
|
70
83
|
throw new Error("Human verification origin exceeds its bound");
|
|
71
84
|
const id = randomUUID(), now = new Date().toISOString();
|
|
72
85
|
db.prepare("INSERT INTO human_delivery_receipts " +
|
|
73
|
-
"(receipt_id,message_id,target_instance,manager_boot_id,original_body,original_sha256,origin_json,input_kind,state,created_at,updated_at) " +
|
|
74
|
-
"VALUES (?,?,?,?,?,?,?,?,'queued'
|
|
75
|
-
.run(id, "hmsg-" + id, input.targetInstance, input.managerBootId, input.originalBody, humanBodyHash(input.originalBody), origin, input.inputKind, now, now);
|
|
86
|
+
"(receipt_id,message_id,target_instance,manager_boot_id,original_body,original_sha256,origin_json,input_kind,state,created_at,updated_at,authority_json) " +
|
|
87
|
+
"VALUES (?,?,?,?,?,?,?,?,'queued',?,?,?)")
|
|
88
|
+
.run(id, "hmsg-" + id, input.targetInstance, input.managerBootId, input.originalBody, humanBodyHash(input.originalBody), origin, input.inputKind, now, now, authority);
|
|
76
89
|
return getHumanReceipt(db, id);
|
|
77
90
|
}
|
|
78
91
|
export function getHumanReceipt(db, id) {
|
|
@@ -113,12 +126,42 @@ export function settleHumanReceipt(db, id, target, ownerKey, proof, currentOwner
|
|
|
113
126
|
&& humanBodyHash(row.wire_body) === row.wire_sha256 && humanBodyHash(row.original_body) === row.original_sha256)
|
|
114
127
|
positive = proof;
|
|
115
128
|
}
|
|
116
|
-
const
|
|
117
|
-
db.prepare("UPDATE human_delivery_receipts SET state=?,proof_tag=?,proof_mode=?,updated_at=?,delivered_at=? WHERE receipt_id=? AND state!='delivered'")
|
|
129
|
+
const at = new Date(), now = at.toISOString();
|
|
130
|
+
const moved = db.prepare("UPDATE human_delivery_receipts SET state=?,proof_tag=?,proof_mode=?,updated_at=?,delivered_at=? WHERE receipt_id=? AND state!='delivered'")
|
|
118
131
|
.run(positive ? "delivered" : "uncertain", positive?.tag ?? null, positive?.mode ?? null, now, positive ? now : null, id);
|
|
132
|
+
// #2122 §5.4: the first move to delivered — from queued or from uncertain — counts once, in this transaction, in the
|
|
133
|
+
// hour of its real delivered_at. A receipt already delivered never got here (the guard above and the UPDATE's own).
|
|
134
|
+
if (positive && moved.changes === 1) {
|
|
135
|
+
db.prepare("INSERT INTO usage_message_hours (instance, hour, count) VALUES (?, ?, 1) ON CONFLICT(instance, hour) DO UPDATE SET count = count + 1")
|
|
136
|
+
.run(row.target_instance, Math.floor(at.getTime() / 3_600_000) * 3_600_000);
|
|
137
|
+
}
|
|
119
138
|
return positive !== null;
|
|
120
139
|
})();
|
|
121
140
|
}
|
|
141
|
+
/** #2122: delivered messages per instance and UTC hour in [from, to) — what the usage report counts as messages. */
|
|
142
|
+
export function deliveredMessageHours(db, from, to) {
|
|
143
|
+
const table = db.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='usage_message_hours'").get();
|
|
144
|
+
if (!table)
|
|
145
|
+
return [];
|
|
146
|
+
return db.prepare("SELECT instance, hour, count FROM usage_message_hours WHERE hour >= ? AND hour < ?").all(from, to);
|
|
147
|
+
}
|
|
148
|
+
/** #2122: drop message counts older than the usage rollup keeps (400 days). */
|
|
149
|
+
export function pruneMessageHours(db, before) {
|
|
150
|
+
const table = db.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='usage_message_hours'").get();
|
|
151
|
+
if (!table)
|
|
152
|
+
return 0;
|
|
153
|
+
return db.prepare("DELETE FROM usage_message_hours WHERE hour < ?").run(before).changes;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* #1939 §10: the highest revocation epoch any stored receipt was stamped with (0: none) — every web receipt, web-verified or
|
|
157
|
+
* none, carries the epoch in force when it was written. The authority state must never be behind it: a state file deleted
|
|
158
|
+
* or restored from an older copy would otherwise bring revoked receipts back.
|
|
159
|
+
*/
|
|
160
|
+
export function maxWebAuthorityEpoch(db) {
|
|
161
|
+
const row = db.prepare("SELECT MAX(CAST(json_extract(authority_json,'$.authority_epoch') AS INTEGER)) AS epoch FROM human_delivery_receipts "
|
|
162
|
+
+ "WHERE authority_json IS NOT NULL AND json_valid(authority_json)").get();
|
|
163
|
+
return Number.isSafeInteger(row?.epoch) && row.epoch > 0 ? row.epoch : 0;
|
|
164
|
+
}
|
|
122
165
|
/** Read-only operator compatibility: an older database simply has no human receipts. */
|
|
123
166
|
export function queryHumanReceipt(db, caller, selector) {
|
|
124
167
|
const table = db.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='human_delivery_receipts'").get();
|
|
@@ -138,9 +181,13 @@ export function queryHumanReceipt(db, caller, selector) {
|
|
|
138
181
|
.get(row.receipt_id, caller))
|
|
139
182
|
return { items: [], next_cursor: null };
|
|
140
183
|
const origin = JSON.parse(row.origin_json);
|
|
184
|
+
// #1939 S1: who authorized it, next to origin and proof_kind (delivery evidence); a web-verified receipt names its account.
|
|
185
|
+
const authority = receiptAuthority(origin, row.authority_json ?? null);
|
|
141
186
|
const item = {
|
|
142
187
|
delivery_id: row.receipt_id, operation_id: row.receipt_id, correlation_id: null,
|
|
143
|
-
source_instance:
|
|
188
|
+
source_instance: authority.kind === "web-verified" && authority.actor
|
|
189
|
+
? "human:web:" + authority.actor.adapter_id + ":" + authority.actor.user_id
|
|
190
|
+
: "human:" + origin.platform + ":" + (origin.user_id ?? "unknown"),
|
|
144
191
|
target_instance: row.target_instance, kind: "human_inbound", state: row.state, attempt_no: 0,
|
|
145
192
|
created_at: row.created_at, updated_at: row.updated_at,
|
|
146
193
|
status_summary: t("delivery.status_" + row.state),
|
|
@@ -148,6 +195,7 @@ export function queryHumanReceipt(db, caller, selector) {
|
|
|
148
195
|
delivery_mode: row.proof_mode === "steer" ? "steer" : "idle_queue", submission_mode: row.proof_mode, consumed_at: null, consumed_via: null,
|
|
149
196
|
origin, wire_content_sha256: row.wire_sha256, delivered_at: row.delivered_at,
|
|
150
197
|
proof_kind: row.proof_tag,
|
|
198
|
+
authority,
|
|
151
199
|
...(caller !== null && selector.messageId ? { content: row.original_body } : {}),
|
|
152
200
|
};
|
|
153
201
|
if (caller !== null && selector.messageId) {
|
|
@@ -173,7 +221,12 @@ export function steerInboundEnvelope(inbound) {
|
|
|
173
221
|
export const BTW_INBOUND_PREFIX = "[BTW — side question from the user. Answer it separately without changing or interrupting the CURRENT work.]\n";
|
|
174
222
|
/** One formatter for human wire bytes and their immutable evidence snapshot. */
|
|
175
223
|
export function formatHumanInboundMessage(content, meta, mode) {
|
|
176
|
-
|
|
224
|
+
// #1920: a guest's web message says so — recognition only (authority none). #1939 S3: "(verified)" when its receipt
|
|
225
|
+
// carries web-verified authority (set with the receipt, FleetManager.humanReceiptPayload) — a hint: agents read the
|
|
226
|
+
// receipt before acting on it as the person.
|
|
227
|
+
const web = meta.source === "web";
|
|
228
|
+
const label = web && meta.web_guest === "1" ? " (guest)" : web && meta.web_verified === "1" ? " (verified)" : "";
|
|
229
|
+
const via = meta.source ? " via " + meta.source + label : "";
|
|
177
230
|
const idTag = meta.user_id ? ", id:" + meta.user_id : "";
|
|
178
231
|
let body = "[user:" + (meta.user || "unknown") + via + idTag + "] " + content;
|
|
179
232
|
if (meta.pending_reactions)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"human-delivery-receipts.js","sourceRoot":"","sources":["../src/human-delivery-receipts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"human-delivery-receipts.js","sourceRoot":"","sources":["../src/human-delivery-receipts.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,8 @@ export const HOT_INSTANCE_CONFIG_KEYS = new Set([
|
|
|
34
34
|
"log_level",
|
|
35
35
|
// #1302: the fleet reads it when it posts a notice; the daemon only keeps it current.
|
|
36
36
|
"cross_instance_visibility",
|
|
37
|
+
// #2303: the fleet reads it at each task board claim; the daemon only keeps it current.
|
|
38
|
+
"board_cards_at_once",
|
|
37
39
|
]);
|
|
38
40
|
/**
|
|
39
41
|
* The hot keys a ClassicBot channel edit can use.
|
|
@@ -66,6 +68,8 @@ const INSTANCE_FIELDS = [
|
|
|
66
68
|
// list is built at spawn, so the honest cost is an agent restart.
|
|
67
69
|
"status_emojis",
|
|
68
70
|
"cross_instance_visibility",
|
|
71
|
+
// #2303: read by the fleet at each task board claim.
|
|
72
|
+
"board_cards_at_once",
|
|
69
73
|
];
|
|
70
74
|
/** ClassicBot channel fields the settings page renders. */
|
|
71
75
|
const CLASSIC_FIELDS = [
|
|
@@ -80,6 +84,7 @@ const CLASSIC_FIELDS = [
|
|
|
80
84
|
const FLEET_FIELD_IMPACTS = {
|
|
81
85
|
"web.echo_to_channel": "now",
|
|
82
86
|
"web.log_tab": "now",
|
|
87
|
+
"web.usage_report_on_public_link": "now",
|
|
83
88
|
"web.public_link.allow_public": "now",
|
|
84
89
|
"web.public_link.ttl_minutes": "now",
|
|
85
90
|
"web.public_link.protocol": "now",
|
|
@@ -102,7 +107,8 @@ const FLEET_FIELD_IMPACTS = {
|
|
|
102
107
|
"fleet.spawn_stagger_ms": "fleet",
|
|
103
108
|
"classic.admin_users": "fleet",
|
|
104
109
|
"classic.allowed_guilds": "fleet",
|
|
105
|
-
|
|
110
|
+
// #2168: a confirmed delete stops and removes the agent at once (removeInstance) — no AgEnD restart.
|
|
111
|
+
"instance.delete": "now",
|
|
106
112
|
};
|
|
107
113
|
/** Split a config into what a live daemon can take and what needs a restart. */
|
|
108
114
|
export function splitHotColdConfig(config) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-config-impact.js","sourceRoot":"","sources":["../src/instance-config-impact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAM9C,0EAA0E;AAC1E,MAAM,CAAC,MAAM,YAAY,GAA4B,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAsC,IAAI,GAAG,CAAuB;IACvG,eAAe;IACf,wBAAwB;IACxB,iBAAiB;IACjB,kBAAkB;IAClB,UAAU;IACV,cAAc;IACd,aAAa;IACb,MAAM;IACN,WAAW;IACX,sFAAsF;IACtF,2BAA2B;
|
|
1
|
+
{"version":3,"file":"instance-config-impact.js","sourceRoot":"","sources":["../src/instance-config-impact.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import type { FleetInstructionsParams } from "./instructions.js";
|
|
|
9
9
|
import type { DeliveryStatus } from "./status-emojis.js";
|
|
10
10
|
import { type PauseReason } from "./pause-marker.js";
|
|
11
11
|
import { type ProviderUsage } from "./usage/providers.js";
|
|
12
|
+
import type { CapacityNudgePauseGuard } from "./daemon.js";
|
|
12
13
|
import type { SpawnGate } from "./spawn-gate.js";
|
|
13
14
|
import type { StormWindow } from "./storm-window.js";
|
|
14
15
|
import type { BackendOutageTracker } from "./backend-outage.js";
|
|
@@ -198,9 +199,12 @@ export interface IncidentEventSource {
|
|
|
198
199
|
/** `nudge_continue`: arm / drop the daemon's "tell the agent to keep going" for the error just reported. */
|
|
199
200
|
armCapacityNudge?(pattern: RegExp, delayMs: number): boolean;
|
|
200
201
|
cancelCapacityNudge?(reason: string): void;
|
|
202
|
+
prepareCapacityNudgePause?(): Promise<CapacityNudgePauseGuard | null>;
|
|
201
203
|
/** Real daemons buffer `pty_error` raised by the startup scan until the lifecycle can handle it. */
|
|
202
204
|
holdStartupIncidents?(): void;
|
|
203
205
|
releaseStartupIncidents?(): void;
|
|
206
|
+
/** Reconsider a cooldown-suppressed MCP revival through daemon liveness/idle gates. */
|
|
207
|
+
deferMcpRestart?(delayMs: number): void;
|
|
204
208
|
}
|
|
205
209
|
/** Arguments accepted by handleCreate — mirrors CreateInstanceArgs in outbound-schemas.ts
|
|
206
210
|
* plus internal-only fields forwarded by deploy_template (profile-derived). */
|
|
@@ -315,6 +319,9 @@ export declare class InstanceLifecycle {
|
|
|
315
319
|
* Stored on the lifecycle (not the daemon) so the count survives daemon restarts.
|
|
316
320
|
*/
|
|
317
321
|
private capacityBackoffAttempts;
|
|
322
|
+
/** #2282: transient429 recovery has its own budget; capacity errors cannot spend it. */
|
|
323
|
+
private rateLimitNudgeAttempts;
|
|
324
|
+
private static readonly RATE_LIMIT_NUDGE_DELAYS_MS;
|
|
318
325
|
/** Active backoff restart timers, keyed by instance name. One per instance max. */
|
|
319
326
|
private capacityBackoffTimers;
|
|
320
327
|
/** Old Codex capacity rows to baseline in the replacement daemon (#949). */
|
|
@@ -440,6 +447,8 @@ export declare class InstanceLifecycle {
|
|
|
440
447
|
* The daemon owns the nudge itself (its fences, its pane lock); this owns only whether one is allowed.
|
|
441
448
|
*/
|
|
442
449
|
private scheduleContinueNudge;
|
|
450
|
+
/** An exhausted error must not pause a draft, new delivery or replacement launch. */
|
|
451
|
+
private pauseAfterRateLimitNudges;
|
|
443
452
|
epochOf(name: string): number;
|
|
444
453
|
/** Invalidate every start/wake already running for `name` (they will not publish). */
|
|
445
454
|
invalidate(name: string): void;
|
|
@@ -465,7 +474,7 @@ export declare class InstanceLifecycle {
|
|
|
465
474
|
private startInTransition;
|
|
466
475
|
isPaused(name: string): boolean;
|
|
467
476
|
getLastPausedAt(name: string): number | null;
|
|
468
|
-
pause(name: string, reason?: PauseReason): Promise<void>;
|
|
477
|
+
pause(name: string, reason?: PauseReason, admission?: CapacityNudgePauseGuard): Promise<void>;
|
|
469
478
|
/** When `name` was last woken or (re)started for work, if recorded. */
|
|
470
479
|
wokeAtFor(name: string): number | undefined;
|
|
471
480
|
wake(name: string, timeoutMs?: number, transition?: TransitionHandle, opts?: {
|
|
@@ -290,6 +290,9 @@ export class InstanceLifecycle {
|
|
|
290
290
|
* Stored on the lifecycle (not the daemon) so the count survives daemon restarts.
|
|
291
291
|
*/
|
|
292
292
|
capacityBackoffAttempts = new Map();
|
|
293
|
+
/** #2282: transient429 recovery has its own budget; capacity errors cannot spend it. */
|
|
294
|
+
rateLimitNudgeAttempts = new Map();
|
|
295
|
+
static RATE_LIMIT_NUDGE_DELAYS_MS = [30_000, 60_000, 120_000];
|
|
293
296
|
/** Active backoff restart timers, keyed by instance name. One per instance max. */
|
|
294
297
|
capacityBackoffTimers = new Map();
|
|
295
298
|
/** Old Codex capacity rows to baseline in the replacement daemon (#949). */
|
|
@@ -696,8 +699,10 @@ export class InstanceLifecycle {
|
|
|
696
699
|
const incident = this.mcpIncident(name);
|
|
697
700
|
const generation = ++incident.gen;
|
|
698
701
|
incident.deathNoticeSent = false;
|
|
699
|
-
this.ctx.eventLog?.insert(name, "mcp_died", { pid: data.pid });
|
|
700
|
-
this.ctx.logger.error({ name, pid: data.pid
|
|
702
|
+
this.ctx.eventLog?.insert(name, "mcp_died", { pid: data.pid, ...(data.neverConnected ? { neverConnected: true } : {}) });
|
|
703
|
+
this.ctx.logger.error({ name, pid: data.pid, neverConnected: data.neverConnected === true }, data.neverConnected
|
|
704
|
+
? "MCP server never connected — instance cannot use agend tools"
|
|
705
|
+
: "MCP server died — instance cannot use agend tools");
|
|
701
706
|
this.ctx.webhookEmit("mcp_died", name, { pid: data.pid });
|
|
702
707
|
// Auth outranks MCP: when the CLI lost authentication, "MCP server died"
|
|
703
708
|
// is a symptom and the fix is /login, not a restart. The daemon flags a
|
|
@@ -804,13 +809,16 @@ export class InstanceLifecycle {
|
|
|
804
809
|
// The daemon object dies with the restart it asks for, so the loop guard
|
|
805
810
|
// lives here: if the previous auto-restart was under the cooldown, the new
|
|
806
811
|
// MCP server evidently died right back (broken install, OOM pressure) and
|
|
807
|
-
// another attempt would just cycle the instance.
|
|
808
|
-
//
|
|
812
|
+
// another immediate attempt would just cycle the instance. Keep a bounded
|
|
813
|
+
// reconsideration on the daemon: a one-shot suppression strands this pid
|
|
814
|
+
// forever because later health ticks dedupe the already reported death.
|
|
809
815
|
const last = this.mcpAutoRestartAt.get(name) ?? 0;
|
|
810
816
|
const now = Date.now();
|
|
811
817
|
if (now - last < InstanceLifecycle.MCP_AUTO_RESTART_COOLDOWN_MS) {
|
|
812
|
-
|
|
813
|
-
this.ctx.
|
|
818
|
+
const retryAfterMs = InstanceLifecycle.MCP_AUTO_RESTART_COOLDOWN_MS - (now - last);
|
|
819
|
+
this.ctx.eventLog?.insert(name, "mcp_auto_restart_suppressed", { trigger: data.trigger, retryAfterMs });
|
|
820
|
+
this.ctx.logger.warn({ name, trigger: data.trigger, retryAfterMs }, "MCP auto-restart deferred — will reconsider after the cooldown with liveness and idle checks");
|
|
821
|
+
daemon.deferMcpRestart?.(retryAfterMs);
|
|
814
822
|
return;
|
|
815
823
|
}
|
|
816
824
|
this.mcpAutoRestartAt.set(name, now);
|
|
@@ -1005,7 +1013,7 @@ export class InstanceLifecycle {
|
|
|
1005
1013
|
this.ctx.restartSingleInstance(name, { freshStart: true }).catch(err => this.ctx.logger.error({ err, name }, "pty_error restart failed"));
|
|
1006
1014
|
}
|
|
1007
1015
|
else if (data.action === "nudge_continue") {
|
|
1008
|
-
this.scheduleContinueNudge(name, daemon, data.pattern);
|
|
1016
|
+
this.scheduleContinueNudge(name, daemon, data.pattern, data.type === "rate_limit");
|
|
1009
1017
|
}
|
|
1010
1018
|
else if (data.action === "backoff_restart") {
|
|
1011
1019
|
// Transient model capacity error (#905). The CLI already returned to its
|
|
@@ -1121,34 +1129,84 @@ export class InstanceLifecycle {
|
|
|
1121
1129
|
* going after a minute — at most CAPACITY_BACKOFF_MAX times per 30 minutes, then pause like the old ladder did.
|
|
1122
1130
|
* The daemon owns the nudge itself (its fences, its pane lock); this owns only whether one is allowed.
|
|
1123
1131
|
*/
|
|
1124
|
-
scheduleContinueNudge(name, daemon, pattern) {
|
|
1132
|
+
scheduleContinueNudge(name, daemon, pattern, rateLimit = false) {
|
|
1133
|
+
// A retired daemon must never pause its replacement after exhausting an
|
|
1134
|
+
// old budget. Arming itself also checks the captured spawn and pane.
|
|
1135
|
+
if (rateLimit && this.daemons.get(name) !== daemon)
|
|
1136
|
+
return;
|
|
1137
|
+
const budget = rateLimit ? this.rateLimitNudgeAttempts : this.capacityBackoffAttempts;
|
|
1125
1138
|
const now = Date.now();
|
|
1126
|
-
const prev =
|
|
1139
|
+
const prev = budget.get(name);
|
|
1127
1140
|
// A wall clock that stepped back must not make an old window look current forever.
|
|
1128
1141
|
const elapsed = prev ? now - prev.lastAt : -1;
|
|
1129
1142
|
const attempts = prev && elapsed >= 0 && elapsed < InstanceLifecycle.CAPACITY_BACKOFF_WINDOW_MS ? prev.count : 0;
|
|
1130
1143
|
const notificationTarget = this.ptyErrorNotificationTarget(name);
|
|
1144
|
+
const delayMs = rateLimit
|
|
1145
|
+
? InstanceLifecycle.RATE_LIMIT_NUDGE_DELAYS_MS[Math.min(attempts, InstanceLifecycle.CAPACITY_BACKOFF_MAX - 1)]
|
|
1146
|
+
: InstanceLifecycle.CAPACITY_NUDGE_DELAY_MS;
|
|
1147
|
+
// Validate the fresh/live episode BEFORE a budget-exhaustion pause too.
|
|
1148
|
+
// Arming only records a due time; on the fourth incident it is cancelled
|
|
1149
|
+
// synchronously below, before any monitor tick can send a fourth nudge.
|
|
1150
|
+
if (rateLimit) {
|
|
1151
|
+
if (!(pattern instanceof RegExp) || !daemon.armCapacityNudge?.(pattern, delayMs)) {
|
|
1152
|
+
if (notificationTarget)
|
|
1153
|
+
this.notifyIncident(notificationTarget, "pty_error", t("inst.codex_rate_retry_stopped"));
|
|
1154
|
+
return;
|
|
1155
|
+
}
|
|
1156
|
+
// Preserve next-spawn failover bookkeeping only for a vouched fresh
|
|
1157
|
+
// failure. It does not itself recover this already-failed turn.
|
|
1158
|
+
this.ctx.checkModelFailover(name, 100);
|
|
1159
|
+
}
|
|
1131
1160
|
if (attempts >= InstanceLifecycle.CAPACITY_BACKOFF_MAX) {
|
|
1161
|
+
if (rateLimit) {
|
|
1162
|
+
void this.pauseAfterRateLimitNudges(name, daemon, attempts)
|
|
1163
|
+
.catch(err => this.ctx.logger.warn({ err, name }, "rate-limit-exhausted pause failed"));
|
|
1164
|
+
return;
|
|
1165
|
+
}
|
|
1132
1166
|
this.ctx.logger.warn({ name, attempts }, "Model still at capacity after max nudges — pausing");
|
|
1133
1167
|
daemon.cancelCapacityNudge?.("retries exhausted");
|
|
1134
1168
|
if (notificationTarget)
|
|
1135
|
-
this.notifyIncident(notificationTarget, "pty_error", t("inst.codex_capacity_backoff_exhausted", name, String(attempts)));
|
|
1169
|
+
this.notifyIncident(notificationTarget, "pty_error", t(rateLimit ? "inst.codex_rate_retry_exhausted" : "inst.codex_capacity_backoff_exhausted", name, String(attempts)));
|
|
1136
1170
|
void this.pause(name, "error")
|
|
1137
1171
|
.catch(err => this.ctx.logger.warn({ err, name }, "capacity-exhausted pause failed"))
|
|
1138
|
-
.finally(() => {
|
|
1139
|
-
this.daemons.get(name)
|
|
1172
|
+
.finally(() => {
|
|
1173
|
+
if (!this.isPaused(name) && (!rateLimit || this.daemons.get(name) === daemon)) {
|
|
1174
|
+
(rateLimit ? daemon : this.daemons.get(name))?.requestPauseWhenIdle({ reason: "error" });
|
|
1175
|
+
}
|
|
1176
|
+
});
|
|
1140
1177
|
return;
|
|
1141
1178
|
}
|
|
1142
|
-
if (!(pattern instanceof RegExp) || !daemon.armCapacityNudge?.(pattern,
|
|
1179
|
+
if (!rateLimit && (!(pattern instanceof RegExp) || !daemon.armCapacityNudge?.(pattern, delayMs))) {
|
|
1143
1180
|
// Nothing to arm (the screen already moved on): the user still hears about the capacity error, no attempt is used.
|
|
1144
1181
|
if (notificationTarget)
|
|
1145
|
-
this.notifyIncident(notificationTarget, "pty_error", t("inst.codex_model_capacity"));
|
|
1182
|
+
this.notifyIncident(notificationTarget, "pty_error", t(rateLimit ? "inst.codex_rate_retry_stopped" : "inst.codex_model_capacity"));
|
|
1146
1183
|
return;
|
|
1147
1184
|
}
|
|
1148
|
-
|
|
1185
|
+
budget.set(name, { count: attempts + 1, lastAt: now });
|
|
1149
1186
|
this.ctx.logger.info({ name, attempt: attempts + 1 }, "Model at capacity — will tell it to keep going");
|
|
1150
1187
|
if (notificationTarget) {
|
|
1151
|
-
this.notifyIncident(notificationTarget, "pty_error", t("inst.codex_capacity_nudge_scheduled", name, String(attempts + 1), String(InstanceLifecycle.CAPACITY_BACKOFF_MAX), String(Math.round(
|
|
1188
|
+
this.notifyIncident(notificationTarget, "pty_error", t(rateLimit ? "inst.codex_rate_retry_scheduled" : "inst.codex_capacity_nudge_scheduled", name, String(attempts + 1), String(InstanceLifecycle.CAPACITY_BACKOFF_MAX), String(Math.round(delayMs / 1000))));
|
|
1189
|
+
}
|
|
1190
|
+
}
|
|
1191
|
+
/** An exhausted error must not pause a draft, new delivery or replacement launch. */
|
|
1192
|
+
async pauseAfterRateLimitNudges(name, daemon, attempts) {
|
|
1193
|
+
const admission = await daemon.prepareCapacityNudgePause?.();
|
|
1194
|
+
if (!admission || this.daemons.get(name) !== daemon || !admission.current())
|
|
1195
|
+
return;
|
|
1196
|
+
this.ctx.logger.warn({ name, attempts }, "HTTP 429 recovery exhausted — pausing the unchanged failed turn");
|
|
1197
|
+
const target = this.ptyErrorNotificationTarget(name);
|
|
1198
|
+
if (target)
|
|
1199
|
+
this.notifyIncident(target, "pty_error", t("inst.codex_rate_retry_exhausted", name, String(attempts)));
|
|
1200
|
+
try {
|
|
1201
|
+
await this.pause(name, "error", admission);
|
|
1202
|
+
}
|
|
1203
|
+
finally {
|
|
1204
|
+
// pause advances its own monitor fence, so use the captured launch and
|
|
1205
|
+
// episode identity plus a fresh pane read, rather than that fence alone.
|
|
1206
|
+
if (this.daemons.get(name) === daemon && !this.isPaused(name) && await admission.revalidate()
|
|
1207
|
+
&& this.daemons.get(name) === daemon && !this.isPaused(name) && admission.current()) {
|
|
1208
|
+
daemon.requestPauseWhenIdle({ reason: "error" });
|
|
1209
|
+
}
|
|
1152
1210
|
}
|
|
1153
1211
|
}
|
|
1154
1212
|
epochOf(name) {
|
|
@@ -1382,7 +1440,7 @@ export class InstanceLifecycle {
|
|
|
1382
1440
|
getLastPausedAt(name) {
|
|
1383
1441
|
return this.daemons.get(name)?.lastPausedAt ?? readPausedAt(this.ctx.getInstanceDir(name));
|
|
1384
1442
|
}
|
|
1385
|
-
async pause(name, reason = "operator") {
|
|
1443
|
+
async pause(name, reason = "operator", admission) {
|
|
1386
1444
|
// Final backstop shared by slash, MCP, Settings, warm-cap, and any future
|
|
1387
1445
|
// caller. General is the coordinator and must remain resident to route work.
|
|
1388
1446
|
if (isGeneralInstance(this.ctx.fleetConfig, name)) {
|
|
@@ -1407,7 +1465,10 @@ export class InstanceLifecycle {
|
|
|
1407
1465
|
}
|
|
1408
1466
|
this.ctx.stopStatuslineWatcher(name);
|
|
1409
1467
|
try {
|
|
1410
|
-
|
|
1468
|
+
if (admission)
|
|
1469
|
+
await daemon.pause(reason, admission);
|
|
1470
|
+
else
|
|
1471
|
+
await daemon.pause(reason);
|
|
1411
1472
|
}
|
|
1412
1473
|
finally {
|
|
1413
1474
|
// A rejected/no-op pause leaves the instance active and must not strand
|