@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
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
*
|
|
5
5
|
* - change: at least 30 s between accepted changes and at most 10 in a rolling hour (set_web_theme, apply/remove of an
|
|
6
6
|
* effect or widget, an agent's own reset);
|
|
7
|
-
* -
|
|
7
|
+
* - uploads (theme pictures, effects, proposed mods) are not counted: the user removed that limit (2026-10-18). What an
|
|
8
|
+
* upload may be is still bounded — each file's size and dimensions, an agent's picture quota, a mod's and an effect's
|
|
9
|
+
* own caps — and the switch and a person's lock still refuse it;
|
|
8
10
|
* - data: a placed widget's new values (r4-4) — at least 10 s apart and at most 180 in a rolling hour, a budget of its
|
|
9
11
|
* own, so a widget showing progress never spends the theme's changes.
|
|
10
12
|
*
|
|
@@ -13,11 +15,10 @@
|
|
|
13
15
|
* monotonic, so a wall-clock jump neither opens nor closes the window; a fleet restart clears it (documented).
|
|
14
16
|
* The human's reset, lock and removals are never limited.
|
|
15
17
|
*/
|
|
16
|
-
export type AppearanceBucket = "change" | "
|
|
18
|
+
export type AppearanceBucket = "change" | "data";
|
|
17
19
|
export declare const APPEARANCE_LIMITS: {
|
|
18
20
|
readonly changeGapMs: 30000;
|
|
19
21
|
readonly changesPerHour: 10;
|
|
20
|
-
readonly uploadsPerHour: 3;
|
|
21
22
|
readonly dataGapMs: 10000;
|
|
22
23
|
readonly dataPerHour: 180;
|
|
23
24
|
};
|
|
@@ -32,12 +33,10 @@ export declare class AppearanceLimiter {
|
|
|
32
33
|
private readonly now;
|
|
33
34
|
private readonly limits;
|
|
34
35
|
private readonly changes;
|
|
35
|
-
private readonly uploads;
|
|
36
36
|
private readonly data;
|
|
37
37
|
constructor(now?: () => number, limits?: {
|
|
38
38
|
readonly changeGapMs: 30000;
|
|
39
39
|
readonly changesPerHour: 10;
|
|
40
|
-
readonly uploadsPerHour: 3;
|
|
41
40
|
readonly dataGapMs: 10000;
|
|
42
41
|
readonly dataPerHour: 180;
|
|
43
42
|
});
|
|
@@ -50,7 +49,6 @@ export declare class AppearanceLimiter {
|
|
|
50
49
|
/** What an agent sees in get_web_theme (and B2's tools): what is left, and when the next change may come. */
|
|
51
50
|
remaining(instance: string): {
|
|
52
51
|
changes: number;
|
|
53
|
-
uploads: number;
|
|
54
52
|
retry_after_s: number;
|
|
55
53
|
widget_data: number;
|
|
56
54
|
widget_data_retry_after_s: number;
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
*
|
|
5
5
|
* - change: at least 30 s between accepted changes and at most 10 in a rolling hour (set_web_theme, apply/remove of an
|
|
6
6
|
* effect or widget, an agent's own reset);
|
|
7
|
-
* -
|
|
7
|
+
* - uploads (theme pictures, effects, proposed mods) are not counted: the user removed that limit (2026-10-18). What an
|
|
8
|
+
* upload may be is still bounded — each file's size and dimensions, an agent's picture quota, a mod's and an effect's
|
|
9
|
+
* own caps — and the switch and a person's lock still refuse it;
|
|
8
10
|
* - data: a placed widget's new values (r4-4) — at least 10 s apart and at most 180 in a rolling hour, a budget of its
|
|
9
11
|
* own, so a widget showing progress never spends the theme's changes.
|
|
10
12
|
*
|
|
@@ -13,13 +15,12 @@
|
|
|
13
15
|
* monotonic, so a wall-clock jump neither opens nor closes the window; a fleet restart clears it (documented).
|
|
14
16
|
* The human's reset, lock and removals are never limited.
|
|
15
17
|
*/
|
|
16
|
-
export const APPEARANCE_LIMITS = { changeGapMs: 30_000, changesPerHour: 10,
|
|
18
|
+
export const APPEARANCE_LIMITS = { changeGapMs: 30_000, changesPerHour: 10, dataGapMs: 10_000, dataPerHour: 180 };
|
|
17
19
|
const HOUR_MS = 60 * 60 * 1000;
|
|
18
20
|
export class AppearanceLimiter {
|
|
19
21
|
now;
|
|
20
22
|
limits;
|
|
21
23
|
changes = new Map();
|
|
22
|
-
uploads = new Map();
|
|
23
24
|
data = new Map();
|
|
24
25
|
constructor(now = () => performance.now(), limits = APPEARANCE_LIMITS) {
|
|
25
26
|
this.now = now;
|
|
@@ -43,11 +44,6 @@ export class AppearanceLimiter {
|
|
|
43
44
|
if (c.length >= this.limits.changesPerHour)
|
|
44
45
|
waits.push(HOUR_MS - (now - c[0]));
|
|
45
46
|
}
|
|
46
|
-
if (buckets.includes("upload")) {
|
|
47
|
-
const u = this.recent(this.uploads, instance, now);
|
|
48
|
-
if (u.length >= this.limits.uploadsPerHour)
|
|
49
|
-
waits.push(HOUR_MS - (now - u[0]));
|
|
50
|
-
}
|
|
51
47
|
if (buckets.includes("data")) {
|
|
52
48
|
const d = this.recent(this.data, instance, now);
|
|
53
49
|
const last = d.at(-1);
|
|
@@ -68,8 +64,6 @@ export class AppearanceLimiter {
|
|
|
68
64
|
const now = this.now();
|
|
69
65
|
if (buckets.includes("change"))
|
|
70
66
|
this.changes.set(instance, [...this.recent(this.changes, instance, now), now]);
|
|
71
|
-
if (buckets.includes("upload"))
|
|
72
|
-
this.uploads.set(instance, [...this.recent(this.uploads, instance, now), now]);
|
|
73
67
|
if (buckets.includes("data"))
|
|
74
68
|
this.data.set(instance, [...this.recent(this.data, instance, now), now]);
|
|
75
69
|
}
|
|
@@ -78,14 +72,13 @@ export class AppearanceLimiter {
|
|
|
78
72
|
const now = this.now();
|
|
79
73
|
return {
|
|
80
74
|
changes: Math.max(0, this.limits.changesPerHour - this.recent(this.changes, instance, now).length),
|
|
81
|
-
uploads: Math.max(0, this.limits.uploadsPerHour - this.recent(this.uploads, instance, now).length),
|
|
82
75
|
retry_after_s: Math.ceil(this.waitMs(instance, ["change"], now) / 1000),
|
|
83
76
|
widget_data: Math.max(0, this.limits.dataPerHour - this.recent(this.data, instance, now).length),
|
|
84
77
|
widget_data_retry_after_s: Math.ceil(this.waitMs(instance, ["data"], now) / 1000),
|
|
85
78
|
};
|
|
86
79
|
}
|
|
87
80
|
/** An instance removed: its counters go with it. */
|
|
88
|
-
forget(instance) { this.changes.delete(instance); this.
|
|
81
|
+
forget(instance) { this.changes.delete(instance); this.data.delete(instance); }
|
|
89
82
|
}
|
|
90
83
|
/** `web.themes.agent_edit` (default true): false turns every agent appearance write off, fleet-wide; stored choices stay. */
|
|
91
84
|
export function agentAppearanceEditAllowed(web) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-appearance-policy.js","sourceRoot":"","sources":["../src/web-appearance-policy.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"web-appearance-policy.js","sourceRoot":"","sources":["../src/web-appearance-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,8 @@ export interface AppearanceDeps {
|
|
|
11
11
|
theme: Theme;
|
|
12
12
|
locked: boolean;
|
|
13
13
|
widgets?: AppearanceInput["widgets"];
|
|
14
|
+
ambient?: AppearanceInput["ambient"];
|
|
15
|
+
glyphAsset?: (id: string) => Picture;
|
|
14
16
|
};
|
|
15
17
|
card(name: string): ResolvedCard;
|
|
16
18
|
/** The resolved card's picture for a slot (the person's, else the agent's). */
|
|
@@ -24,6 +26,7 @@ export interface AppearanceDeps {
|
|
|
24
26
|
limits?: unknown;
|
|
25
27
|
};
|
|
26
28
|
/** #1958: the host's identity-colour settings (web prefs color.show / color.off), for the colour view. */
|
|
29
|
+
effects?(name: string): AppearanceInput["effects"];
|
|
27
30
|
colorPrefs?(): {
|
|
28
31
|
show?: unknown;
|
|
29
32
|
off?: boolean;
|
|
@@ -7,9 +7,12 @@
|
|
|
7
7
|
import { createHash, randomBytes } from "node:crypto";
|
|
8
8
|
import { appearanceView, PICTURE_ROLES, pictureFileName, previewSvg } from "./web-appearance-view.js";
|
|
9
9
|
import { ASSET_PART_BYTES } from "./web-asset-parts.js";
|
|
10
|
+
import { imageSize, sniffMedia } from "./web-image-meta.js";
|
|
10
11
|
/** A preview whose files (base64) fit one message is sent whole; a larger one is fetched in parts. */
|
|
11
12
|
export const PREVIEW_INLINE_BYTES = 600 * 1024;
|
|
12
13
|
export const PREVIEW_IDLE_MS = 60_000;
|
|
14
|
+
/** A glyph picture's side file type (the glyph slot's kinds). */
|
|
15
|
+
const GLYPH_EXT = { "image/png": "png", "image/webp": "webp", "image/gif": "gif" };
|
|
13
16
|
const MODES = ["light", "dark"];
|
|
14
17
|
export class AppearanceTools {
|
|
15
18
|
deps;
|
|
@@ -22,8 +25,8 @@ export class AppearanceTools {
|
|
|
22
25
|
const entry = this.deps.frame(name);
|
|
23
26
|
const t = this.deps.theme(name);
|
|
24
27
|
const answer = this.deps.themeAnswer(name);
|
|
25
|
-
return { entry, theme: t.theme, card: this.deps.card(name), locked: t.locked, agentEdit: answer.agent_edit !== false, limits: (answer.limits ?? {}), widgets: t.widgets,
|
|
26
|
-
colorPrefs: this.deps.colorPrefs?.() ?? {} };
|
|
28
|
+
return { entry, theme: t.theme, card: this.deps.card(name), locked: t.locked, agentEdit: answer.agent_edit !== false, limits: (answer.limits ?? {}), widgets: t.widgets, ambient: t.ambient,
|
|
29
|
+
effects: this.deps.effects?.(name) ?? [], colorPrefs: this.deps.colorPrefs?.() ?? {} };
|
|
27
30
|
}
|
|
28
31
|
/** The face drawn, as bytes of this instance's: the theme's picture, the person's upload, or its own bot's. */
|
|
29
32
|
avatar(name, input) {
|
|
@@ -76,8 +79,24 @@ export class AppearanceTools {
|
|
|
76
79
|
if (p && fileName)
|
|
77
80
|
add(fileName, p.bytes);
|
|
78
81
|
}
|
|
82
|
+
// #2086: the banner's own size, so the preview crops it at its focus exactly as the page does.
|
|
83
|
+
const bannerKind = bytes.banner ? sniffMedia(bytes.banner.bytes) : null;
|
|
84
|
+
const bannerSize = bytes.banner && bannerKind ? imageSize(bytes.banner.bytes, bannerKind) : null;
|
|
85
|
+
// #2117: the looping ambient's glyph pictures, glyph1… next to the SVGs.
|
|
86
|
+
const glyphPics = {};
|
|
87
|
+
const glyphOf = this.deps.theme(name).glyphAsset;
|
|
88
|
+
for (const g of input.ambient?.loop?.spec.glyphs ?? []) {
|
|
89
|
+
if (typeof g === "string" || glyphPics[g.asset] || !glyphOf)
|
|
90
|
+
continue;
|
|
91
|
+
const p = glyphOf(g.asset), ext = p ? GLYPH_EXT[p.mime] : undefined;
|
|
92
|
+
if (!p || !ext)
|
|
93
|
+
continue;
|
|
94
|
+
const fileName = `glyph${Object.keys(glyphPics).length + 1}.${ext}`;
|
|
95
|
+
glyphPics[g.asset] = fileName;
|
|
96
|
+
add(fileName, p.bytes);
|
|
97
|
+
}
|
|
79
98
|
for (const mode of modes)
|
|
80
|
-
add(`${mode}.svg`, Buffer.from(previewSvg(input, mode, names), "utf8"));
|
|
99
|
+
add(`${mode}.svg`, Buffer.from(previewSvg(input, mode, names, bannerSize, glyphPics), "utf8"));
|
|
81
100
|
const total = files.reduce((n, f) => n + f.data.length, 0);
|
|
82
101
|
if (total <= PREVIEW_INLINE_BYTES)
|
|
83
102
|
return { files: files.map(f => ({ name: f.name, data_b64: f.data.toString("base64") })) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-appearance-tools.js","sourceRoot":"","sources":["../src/web-appearance-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,cAAc,EAAyC,aAAa,EAAE,eAAe,EAAE,UAAU,EAA0C,MAAM,0BAA0B,CAAC;AACrL,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"web-appearance-tools.js","sourceRoot":"","sources":["../src/web-appearance-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,cAAc,EAAyC,aAAa,EAAE,eAAe,EAAE,UAAU,EAA0C,MAAM,0BAA0B,CAAC;AACrL,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAsB5D,sGAAsG;AACtG,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,GAAG,IAAI,CAAC;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,iEAAiE;AACjE,MAAM,SAAS,GAAqC,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACrH,MAAM,KAAK,GAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAGtD,MAAM,OAAO,eAAe;IAEG;IADZ,QAAQ,GAAG,IAAI,GAAG,EAAiB,CAAC;IACrD,YAA6B,IAAoB;QAApB,SAAI,GAAJ,IAAI,CAAgB;IAAG,CAAC;IAC7C,GAAG,KAAa,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1E,KAAK,CAAC,IAAY;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAA4B,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO;YACpN,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;IAC3F,CAAC;IACD,+GAA+G;IACvG,MAAM,CAAC,IAAY,EAAE,KAAsB;QACjD,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClH,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5E,MAAM,GAAG,GAAG,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,GAAG,EAAE,CAAC;YAAC,IAAI,CAAC;gBAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,IAAI,CAAC;YAAC,CAAC;QAAC,CAAC;QAC1G,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAY,EAAE,IAAY,EAAE,IAA6B;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,eAAe;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAG,sBAAsB;QACzH,IAAI,IAAI,KAAK,oBAAoB;YAAE,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,IAAI,IAAI,KAAK,wBAAwB;YAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QACxE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3J,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;QACjE,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAiC;YAC1C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;YAChC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;YAC9E,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;YACxE,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;SACrG,CAAC;QACF,iHAAiH;QACjH,MAAM,KAAK,GAAG,EAAqB,CAAC;QACpC,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9I,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3E,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;YACvB,IAAI,CAAC,IAAI,QAAQ;gBAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,+FAA+F;QAC/F,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjG,yEAAyE;QACzE,MAAM,SAAS,GAA2B,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;QACjD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACvD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;gBAAE,SAAS;YACtE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACzB,MAAM,QAAQ,GAAG,QAAQ,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;YACpE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;YAC9B,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,KAAoB;YAAE,GAAG,CAAC,GAAG,IAAI,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACxI,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3D,IAAI,KAAK,IAAI,oBAAoB;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC7H,MAAM,KAAK,GAAU,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAC9E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAoC,8CAA8C;QACjH,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACtK,CAAC;IACD,qHAAqH;IAC7G,IAAI,CAAC,IAAY,EAAE,GAAY,EAAE,GAAW;QAClD,MAAM,CAAC,GAAG,GAAoE,CAAC;QAC/E,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,EAAE;YAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;QACxI,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAK,CAAC,CAAC,KAAgB,GAAG,CAAC,IAAK,CAAC,CAAC,KAAgB,IAAI,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;QACxJ,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAsD,4CAA4C;QAC/G,MAAM,CAAC,GAAG,CAAC,CAAC,KAAe,CAAC;QAC5B,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,gBAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC5G,CAAC;IACD,+BAA+B;IAC/B,MAAM,CAAC,IAAY,IAAU,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAC3D"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* picture inside outgrew what an agent's Read takes); text is XML-escaped; colours are checked again; fonts are generic
|
|
9
9
|
* families. No browser, no live session, no other instance's content.
|
|
10
10
|
*/
|
|
11
|
+
import { type AmbientKind, type AmbientSpec } from "./web-ambient.js";
|
|
11
12
|
import { type IdentityColorSource, type IdentityColorTiers, type Placement, type PlacementSource, type PlacementTiers } from "./web-identity-color.js";
|
|
12
13
|
import { type Palette, type Theme, type ThemeMode } from "./web-theme.js";
|
|
13
14
|
import type { ResolvedCard } from "./web-card.js";
|
|
@@ -79,14 +80,35 @@ export interface AppearanceInput {
|
|
|
79
80
|
off?: boolean;
|
|
80
81
|
};
|
|
81
82
|
/** r4-4: its placed widgets, by slot. */
|
|
83
|
+
effects?: Array<{
|
|
84
|
+
id: string;
|
|
85
|
+
by: string;
|
|
86
|
+
params?: Record<string, unknown>;
|
|
87
|
+
playback: Record<string, unknown>;
|
|
88
|
+
}>;
|
|
82
89
|
widgets?: Partial<Record<"chat_header" | "details", {
|
|
83
90
|
spec: unknown;
|
|
84
91
|
data: unknown;
|
|
85
92
|
by: string;
|
|
86
93
|
}>>;
|
|
94
|
+
/** #2117: its ambients, by kind. */
|
|
95
|
+
ambient?: Partial<Record<AmbientKind, {
|
|
96
|
+
spec: AmbientSpec;
|
|
97
|
+
by: string;
|
|
98
|
+
}>>;
|
|
87
99
|
}
|
|
88
|
-
/** get_web_appearance
|
|
100
|
+
/** get_web_appearance: current placements and untrusted recent playback observations. */
|
|
89
101
|
export declare function appearanceView(i: AppearanceInput): Record<string, unknown>;
|
|
102
|
+
/**
|
|
103
|
+
* Wrap `text` (its own line breaks kept) to `maxPx` at `size`, at most `maxLines` lines; what does not fit ends the last
|
|
104
|
+
* line with "…". Latin text breaks at a space when one is on the line; CJK breaks anywhere. Never splits a grapheme.
|
|
105
|
+
*/
|
|
106
|
+
export declare function fitLines(text: string, maxPx: number, size: number, maxLines: number): string[];
|
|
107
|
+
export declare const PREVIEW_BANNER: {
|
|
108
|
+
readonly aspect: 3;
|
|
109
|
+
readonly min: 140;
|
|
110
|
+
readonly max: 240;
|
|
111
|
+
};
|
|
90
112
|
export declare const PICTURE_ROLES: readonly ["avatar", "portrait", "banner", "background"];
|
|
91
113
|
export type PictureRole = typeof PICTURE_ROLES[number];
|
|
92
114
|
/** This instance's pictures by role, as the side files' names (null: none). */
|
|
@@ -96,4 +118,7 @@ export declare function pictureFileName(role: PictureRole, mime: string): string
|
|
|
96
118
|
/** Every name a preview writes: an SVG per mode, and the pictures it names. */
|
|
97
119
|
export declare const PREVIEW_FILE: RegExp;
|
|
98
120
|
/** One mode's SVG. Every picture is one of `pics` (this instance's), inline; nothing else is referenced. */
|
|
99
|
-
export declare function previewSvg(i: AppearanceInput, mode: ThemeMode, pics: PreviewPictures
|
|
121
|
+
export declare function previewSvg(i: AppearanceInput, mode: ThemeMode, pics: PreviewPictures, bannerSize?: {
|
|
122
|
+
width: number;
|
|
123
|
+
height: number;
|
|
124
|
+
} | null, glyphPics?: Readonly<Record<string, string>>): string;
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* picture inside outgrew what an agent's Read takes); text is XML-escaped; colours are checked again; fonts are generic
|
|
9
9
|
* families. No browser, no live session, no other instance's content.
|
|
10
10
|
*/
|
|
11
|
+
import { AMBIENT_KINDS } from "./web-ambient.js";
|
|
11
12
|
import { autoIdentityColor, identityColorValue, resolveIdentityColor, resolvePlacements } from "./web-identity-color.js";
|
|
12
13
|
import { effectivePalette, THEME_DEFAULTS } from "./web-theme.js";
|
|
13
14
|
/**
|
|
@@ -49,7 +50,7 @@ export function effectiveTheme(theme) {
|
|
|
49
50
|
const one = (mode) => ({ ...effectivePalette(theme, mode), font: theme.font ?? "inter", bubbleRadius: theme.bubble?.radius ?? 18, bubbleBorder: theme.bubble?.border ?? "none" });
|
|
50
51
|
return { light: one("light"), dark: one("dark") };
|
|
51
52
|
}
|
|
52
|
-
/** get_web_appearance
|
|
53
|
+
/** get_web_appearance: current placements and untrusted recent playback observations. */
|
|
53
54
|
export function appearanceView(i) {
|
|
54
55
|
const card = {};
|
|
55
56
|
for (const k of ["portrait", "banner"])
|
|
@@ -58,6 +59,9 @@ export function appearanceView(i) {
|
|
|
58
59
|
for (const k of ["tagline", "bio"])
|
|
59
60
|
if (i.card[k])
|
|
60
61
|
card[k] = { text: i.card[k].text, by: i.card[k].by };
|
|
62
|
+
// #2086: which part of a cropped banner stays in view (0 top … 100 bottom; absent: the centre), and whose choice.
|
|
63
|
+
if (i.card.banner_focus)
|
|
64
|
+
card.banner_focus = { value: i.card.banner_focus.value, by: i.card.banner_focus.by };
|
|
61
65
|
return {
|
|
62
66
|
name: i.entry.name,
|
|
63
67
|
display_name: i.entry.display_name ?? null,
|
|
@@ -68,17 +72,117 @@ export function appearanceView(i) {
|
|
|
68
72
|
theme: effectiveTheme(i.theme),
|
|
69
73
|
working_label: i.theme.workingLabel ?? null,
|
|
70
74
|
background: i.theme.background ? { image: i.theme.background.image, fit: i.theme.background.fit, opacity: i.theme.background.opacity } : null,
|
|
71
|
-
effects: [],
|
|
75
|
+
effects: i.effects ?? [],
|
|
72
76
|
widgets: ["chat_header", "details"].flatMap(slot => { const w = i.widgets?.[slot]; return w ? [{ slot, by: w.by, spec: w.spec, data: w.data }] : []; }),
|
|
73
|
-
|
|
77
|
+
ambient: AMBIENT_KINDS.flatMap(kind => { const a = i.ambient?.[kind]; return a ? [{ kind, by: a.by, spec: a.spec }] : []; }),
|
|
78
|
+
shown_when: "A viewer who turned off \"Show agents' themes, effects and widgets\", or a page opened with ?safe=1, sees the default look, the bot's face, no card colours, no widgets and no ambient effect. An ambient effect also stays still on a device that chose to follow the system's reduced-motion setting while the system asks for it.",
|
|
74
79
|
locked: i.locked,
|
|
75
80
|
agent_edit: i.agentEdit,
|
|
76
81
|
limits: i.limits,
|
|
77
82
|
};
|
|
78
83
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const
|
|
84
|
+
/** A still of an ambient: its count of glyphs at fixed, spread-out places (the same every time, so previews compare). */
|
|
85
|
+
function ambientGlyphs(spec, top, h, accent, font, glyphPics) {
|
|
86
|
+
const out = [`<g opacity="${spec.opacity[1]}">`];
|
|
87
|
+
for (let k = 0; k < Math.min(spec.count, 24); k++) {
|
|
88
|
+
// A low-discrepancy sequence: evenly spread, no randomness.
|
|
89
|
+
const x = Math.round(((k * 0.618034) % 1) * (W - 40)) + 20, y = top + Math.round(((k * 0.414214 + 0.2) % 1) * (h - 30)) + 20;
|
|
90
|
+
const size = Math.round(spec.size[0] + ((k * 0.7548777) % 1) * (spec.size[1] - spec.size[0]));
|
|
91
|
+
const g = spec.glyphs[k % spec.glyphs.length];
|
|
92
|
+
if (typeof g === "string") {
|
|
93
|
+
const c = spec.colors.length ? spec.colors[k % spec.colors.length] : accent;
|
|
94
|
+
out.push(`<text x="${x}" y="${y}" font-family="${font}" font-size="${size}" fill="${COLOR.test(c) ? c : accent}">${esc(g)}</text>`);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
const name = glyphPics[g.asset];
|
|
98
|
+
if (name && PREVIEW_FILE.test(name))
|
|
99
|
+
out.push(`<image href="${name}" x="${x}" y="${y - size}" width="${size}" height="${size}" preserveAspectRatio="xMidYMid meet"/>`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
out.push("</g>");
|
|
103
|
+
return out.join("");
|
|
104
|
+
}
|
|
105
|
+
// ── The preview ── the page's numbers (app.css): a 720 px column, the M card (240 px portrait; #2038: the banner 3:1
|
|
106
|
+
// of the width, held between 140 and 240 px, as `.id-card`'s --id-ar / --id-bmin / --id-bmax), a 56 px chat header
|
|
107
|
+
// with a 32 px face, bubbles of the theme's radius and border.
|
|
108
|
+
const W = 720, PAD = 16, PORTRAIT_H = 240, HEADER_H = 56;
|
|
109
|
+
const BIO_LINES = 12;
|
|
110
|
+
// #2050: the preview is a file that any viewer's fonts draw, so nothing can measure it: lines are laid out with an upper
|
|
111
|
+
// bound of each grapheme's advance (measured in Chrome, sans-serif / serif / monospace, 400 and 600 weight: CJK and
|
|
112
|
+
// fullwidth 1 em, Latin capitals up to 1 em, lowercase up to 0.89, other symbols up to 1.02), and the column is also
|
|
113
|
+
// clipped in the SVG so a wider substitute font cannot draw past it.
|
|
114
|
+
const WIDE = /[\u1100-\u115f\u2e80-\ua4cf\uac00-\ud7a3\uf900-\ufaff\ufe30-\ufe4f\uff00-\uff60\uffe0-\uffe6\u{20000}-\u{3fffd}]/u;
|
|
115
|
+
const PICTO = /\p{Extended_Pictographic}|\p{Regional_Indicator}/u;
|
|
116
|
+
function graphemeEm(g) {
|
|
117
|
+
const cps = Array.from(g);
|
|
118
|
+
// An emoji sequence a font cannot join is drawn as its parts: each pictograph counts.
|
|
119
|
+
const pictos = cps.filter(c => PICTO.test(c)).length;
|
|
120
|
+
if (pictos)
|
|
121
|
+
return 1.25 * pictos;
|
|
122
|
+
if (cps.some(c => WIDE.test(c)))
|
|
123
|
+
return 1;
|
|
124
|
+
const c = cps[0];
|
|
125
|
+
return c === " " ? 0.35 : /[0-9]/.test(c) ? 0.6 : /[a-z]/.test(c) ? 0.95 : /[A-Z]/.test(c) ? 1 : 1.05;
|
|
126
|
+
}
|
|
127
|
+
const charPx = (g, size) => graphemeEm(g) * size;
|
|
128
|
+
const SEGMENTER = new Intl.Segmenter(undefined, { granularity: "grapheme" });
|
|
129
|
+
const graphemes = (s) => Array.from(SEGMENTER.segment(s), x => x.segment);
|
|
130
|
+
/**
|
|
131
|
+
* Wrap `text` (its own line breaks kept) to `maxPx` at `size`, at most `maxLines` lines; what does not fit ends the last
|
|
132
|
+
* line with "…". Latin text breaks at a space when one is on the line; CJK breaks anywhere. Never splits a grapheme.
|
|
133
|
+
*/
|
|
134
|
+
export function fitLines(text, maxPx, size, maxLines) {
|
|
135
|
+
const out = [];
|
|
136
|
+
const width = (gs) => gs.reduce((n, g) => n + charPx(g, size), 0);
|
|
137
|
+
let truncated = false;
|
|
138
|
+
paragraphs: for (const para of text.split("\n")) {
|
|
139
|
+
if (out.length >= maxLines) {
|
|
140
|
+
truncated = true;
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
let cur = [];
|
|
144
|
+
for (const g of graphemes(para)) {
|
|
145
|
+
if (cur.length && width(cur) + charPx(g, size) > maxPx) {
|
|
146
|
+
if (out.length >= maxLines - 1) {
|
|
147
|
+
out.push(cur.join(""));
|
|
148
|
+
truncated = true;
|
|
149
|
+
break paragraphs;
|
|
150
|
+
}
|
|
151
|
+
// Latin breaks after the last space on the line; CJK (or a line with no space) breaks here.
|
|
152
|
+
const space = WIDE.test(g) ? -1 : cur.lastIndexOf(" ");
|
|
153
|
+
out.push((space > 0 ? cur.slice(0, space) : cur).join("").trimEnd());
|
|
154
|
+
cur = space > 0 ? cur.slice(space + 1) : [];
|
|
155
|
+
}
|
|
156
|
+
cur.push(g);
|
|
157
|
+
}
|
|
158
|
+
out.push(cur.join(""));
|
|
159
|
+
}
|
|
160
|
+
if (truncated) {
|
|
161
|
+
const last = graphemes(out[out.length - 1]);
|
|
162
|
+
while (last.length && width(last) + charPx("…", size) > maxPx)
|
|
163
|
+
last.pop();
|
|
164
|
+
out[out.length - 1] = `${last.join("").trimEnd()}…`;
|
|
165
|
+
}
|
|
166
|
+
return out;
|
|
167
|
+
}
|
|
168
|
+
export const PREVIEW_BANNER = { aspect: 3, min: 140, max: 240 };
|
|
169
|
+
const BANNER_H = Math.min(PREVIEW_BANNER.max, Math.max(PREVIEW_BANNER.min, Math.round(W / PREVIEW_BANNER.aspect)));
|
|
170
|
+
/**
|
|
171
|
+
* #2086: the banner as the page crops it at its focus (object-fit: cover; object-position: 50% <focus>%): a nested SVG
|
|
172
|
+
* whose viewBox is exactly the part shown. Without the picture's size, the nearest of top / middle / bottom.
|
|
173
|
+
*/
|
|
174
|
+
function bannerAt(name, y, focus, size) {
|
|
175
|
+
if (!name || !PREVIEW_FILE.test(name) || name.endsWith(".svg"))
|
|
176
|
+
return "";
|
|
177
|
+
if (!size || size.width < 1 || size.height < 1) {
|
|
178
|
+
const yAlign = focus < 34 ? "YMin" : focus > 66 ? "YMax" : "YMid";
|
|
179
|
+
return `<image href="${name}" x="0" y="${y}" width="${W}" height="${BANNER_H}" preserveAspectRatio="xMid${yAlign} slice"/>`;
|
|
180
|
+
}
|
|
181
|
+
const s = Math.max(W / size.width, BANNER_H / size.height);
|
|
182
|
+
const vw = W / s, vh = BANNER_H / s;
|
|
183
|
+
const r = (n) => Math.round(n * 100) / 100;
|
|
184
|
+
return `<svg x="0" y="${y}" width="${W}" height="${BANNER_H}" viewBox="${r((size.width - vw) / 2)} ${r((size.height - vh) * focus / 100)} ${r(vw)} ${r(vh)}" preserveAspectRatio="none"><image href="${name}" width="${size.width}" height="${size.height}"/></svg>`;
|
|
185
|
+
}
|
|
82
186
|
const esc = (s) => s.replace(/[&<>"']/g, c => ({ "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }[c]));
|
|
83
187
|
const FONT = { inter: "sans-serif", system: "sans-serif", mono: "monospace" };
|
|
84
188
|
export const PICTURE_ROLES = ["avatar", "portrait", "banner", "background"];
|
|
@@ -88,10 +192,10 @@ export function pictureFileName(role, mime) {
|
|
|
88
192
|
return Object.hasOwn(PICTURE_EXT, mime) ? `${role}.${PICTURE_EXT[mime]}` : null;
|
|
89
193
|
}
|
|
90
194
|
/** Every name a preview writes: an SVG per mode, and the pictures it names. */
|
|
91
|
-
export const PREVIEW_FILE = /^(?:(?:light|dark)\.svg|(?:avatar|portrait|banner|background)\.(?:png|jpg|webp|gif))$/;
|
|
195
|
+
export const PREVIEW_FILE = /^(?:(?:light|dark)\.svg|(?:avatar|portrait|banner|background)\.(?:png|jpg|webp|gif)|glyph[1-4]\.(?:png|webp|gif))$/;
|
|
92
196
|
const COLOR = /^#[0-9a-f]{6}$/;
|
|
93
197
|
/** One mode's SVG. Every picture is one of `pics` (this instance's), inline; nothing else is referenced. */
|
|
94
|
-
export function previewSvg(i, mode, pics) {
|
|
198
|
+
export function previewSvg(i, mode, pics, bannerSize, glyphPics = {}) {
|
|
95
199
|
const raw = effectiveTheme(i.theme)[mode];
|
|
96
200
|
// Colours go into attributes: each is checked again here (a file someone may open in a browser), else the default's.
|
|
97
201
|
const t = { ...raw };
|
|
@@ -106,7 +210,7 @@ export function previewSvg(i, mode, pics) {
|
|
|
106
210
|
const hasCard = Object.keys(i.card).length > 0;
|
|
107
211
|
if (hasCard) {
|
|
108
212
|
if (i.card.banner) {
|
|
109
|
-
out.push(
|
|
213
|
+
out.push(bannerAt(pics.banner, y, i.card.banner_focus?.value ?? 50, bannerSize ?? null));
|
|
110
214
|
y += BANNER_H;
|
|
111
215
|
}
|
|
112
216
|
const top = y + PAD;
|
|
@@ -116,15 +220,22 @@ export function previewSvg(i, mode, pics) {
|
|
|
116
220
|
textX = PAD + PORTRAIT_H * 0.75 + PAD;
|
|
117
221
|
}
|
|
118
222
|
let ty = top + 18;
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
223
|
+
// SVG text neither wraps nor clips: lay the card's text out to its column, as Details does (tagline: two lines).
|
|
224
|
+
const column = W - textX - PAD, textTop = ty - 18;
|
|
225
|
+
out.push(`<clipPath id="card-text"><rect x="${textX}" y="${textTop}" width="${column}" height="${(2 * 22 + 2 + BIO_LINES * 18) + 8}"/></clipPath><g clip-path="url(#card-text)">`);
|
|
226
|
+
if (i.card.tagline)
|
|
227
|
+
for (const line of fitLines(i.card.tagline.text, column, 15, 2)) {
|
|
228
|
+
out.push(`<text x="${textX}" y="${ty}" font-family="${font}" font-size="15" font-weight="600" fill="${t.text}">${esc(line)}</text>`);
|
|
229
|
+
ty += 22;
|
|
230
|
+
}
|
|
231
|
+
if (i.card.tagline)
|
|
232
|
+
ty += 2;
|
|
123
233
|
if (i.card.bio)
|
|
124
|
-
for (const line of i.card.bio.text
|
|
234
|
+
for (const line of fitLines(i.card.bio.text, column, 13, BIO_LINES)) {
|
|
125
235
|
out.push(`<text x="${textX}" y="${ty}" font-family="${font}" font-size="13" fill="${t.text2}">${esc(line)}</text>`);
|
|
126
236
|
ty += 18;
|
|
127
237
|
}
|
|
238
|
+
out.push("</g>");
|
|
128
239
|
y = Math.max(top + (i.card.portrait && pics.portrait ? PORTRAIT_H : 0), ty) + PAD;
|
|
129
240
|
}
|
|
130
241
|
// The chat header: the face (and its ring) and the name.
|
|
@@ -148,6 +259,10 @@ export function previewSvg(i, mode, pics) {
|
|
|
148
259
|
out.push(`<rect x="0" y="${threadTop}" width="${W}" height="${threadH}" fill="${t.bg}"/>`);
|
|
149
260
|
if (i.theme.background && pics.background)
|
|
150
261
|
out.push(img(pics.background, 0, threadTop, W, threadH, ` opacity="${i.theme.background.opacity}"`));
|
|
262
|
+
// #2117: the looping ambient, still — its glyphs scattered over the thread at their peak opacity, behind the bubbles.
|
|
263
|
+
const loop = i.ambient?.loop?.spec;
|
|
264
|
+
if (loop)
|
|
265
|
+
out.push(ambientGlyphs(loop, threadTop, threadH, t.accent, font, glyphPics));
|
|
151
266
|
const stroke = t.bubbleBorder === "thin" ? ` stroke="${t.text2}" stroke-width="1"` : t.bubbleBorder === "accent" ? ` stroke="${t.accent}" stroke-width="1.5"` : "";
|
|
152
267
|
out.push(`<rect x="${W - PAD - 300}" y="${threadTop + PAD}" width="300" height="44" rx="${t.bubbleRadius}" fill="${t.userBubble}"${stroke}/>`);
|
|
153
268
|
out.push(`<text x="${W - PAD - 286}" y="${threadTop + PAD + 27}" font-family="${font}" font-size="14" fill="${t.text}">A message from a person</text>`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-appearance-view.js","sourceRoot":"","sources":["../src/web-appearance-view.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"web-appearance-view.js","sourceRoot":"","sources":["../src/web-appearance-view.ts"],"names":[],"mappings":"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"}
|
package/dist/web-appearance.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* #1629 (first design §4, §6; r2 (a)–(c); r4-4): the agent's own theme tools — get_web_theme, set_web_theme,
|
|
3
|
-
* set_web_theme_asset, reset_web_theme, set_web_widget, remove_web_widget — and a person's reset, lock
|
|
3
|
+
* set_web_theme_asset, reset_web_theme, set_web_widget, remove_web_widget, set_web_ambient, clear_web_ambient (#2117) — and a person's reset, lock, widget removal and ambient. None takes a target: the caller is the
|
|
4
4
|
* instance its IPC connection or agent token belongs to, and only that instance's record is ever read or written.
|
|
5
5
|
*
|
|
6
6
|
* Every agent write: the fleet-wide switch (web.themes.agent_edit), then the person's lock, then the shared limiter's
|
|
@@ -38,8 +38,8 @@ export declare class WebAppearance {
|
|
|
38
38
|
setTheme(instance: string, patch: unknown): ToolAnswer;
|
|
39
39
|
/**
|
|
40
40
|
* set_web_theme_asset { slot, data_b64, part? }: the bytes the daemon or the CLI read on the agent's side — whole, or
|
|
41
|
-
* in parts (web-asset-parts.ts). The switch
|
|
42
|
-
*
|
|
41
|
+
* in parts (web-asset-parts.ts). The switch and the lock are asked at the first part and again before the picture is
|
|
42
|
+
* stored; uploads are not counted (the user's decision) — the slot's size limits and the picture quota still apply.
|
|
43
43
|
*/
|
|
44
44
|
setAsset(instance: string, args: {
|
|
45
45
|
slot?: unknown;
|
|
@@ -69,6 +69,20 @@ export declare class WebAppearance {
|
|
|
69
69
|
slot?: unknown;
|
|
70
70
|
}): ToolAnswer;
|
|
71
71
|
private agentSlot;
|
|
72
|
+
/**
|
|
73
|
+
* set_web_ambient { preset, glyphs, … } (#2117): its own ambient, in the place its preset goes (one looping, one
|
|
74
|
+
* click), placed or replaced (a change). One a person set is never replaced by the agent.
|
|
75
|
+
*/
|
|
76
|
+
setAmbient(instance: string, args: Record<string, unknown>): ToolAnswer;
|
|
77
|
+
/** clear_web_ambient { which? } (#2117): its own ambients, one kind or both; a person's stays (a change). */
|
|
78
|
+
clearAmbient(instance: string, args: {
|
|
79
|
+
which?: unknown;
|
|
80
|
+
}): ToolAnswer;
|
|
81
|
+
/**
|
|
82
|
+
* A person's ambient for an agent (General's set_web_settings, an admin session): a spec sets the place its preset
|
|
83
|
+
* goes, null with `which` clears that one (both without). Not limited; the lock is not needed (it binds agents).
|
|
84
|
+
*/
|
|
85
|
+
humanSetAmbient(instance: string, spec: unknown, which?: unknown): ToolAnswer;
|
|
72
86
|
/** A person's removal of an agent's widget (Details, an admin session). Not limited; the lock is not needed. */
|
|
73
87
|
humanRemoveWidget(instance: string, slot: unknown): ToolAnswer;
|
|
74
88
|
/** An instance was removed: its counters and any upload in progress go. */
|