@songsid/agend 2.3.0-beta.1 → 2.3.0-beta.11
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/dist/agent-cli-instructions.md +5 -2
- package/dist/agent-cli.js +43 -7
- 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 +14 -6
- package/dist/agent-file-read.js +207 -19
- 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 -15
- 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 +10 -5
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/backend/types.d.ts +14 -0
- package/dist/backend/types.js +25 -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 +21 -3
- package/dist/backend-command.js +23 -4
- package/dist/backend-command.js.map +1 -1
- 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-analysis.d.ts +47 -1
- package/dist/cache-analysis.js +68 -8
- package/dist/cache-analysis.js.map +1 -1
- 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-report-tool.d.ts +17 -0
- package/dist/cache-report-tool.js +40 -0
- package/dist/cache-report-tool.js.map +1 -0
- package/dist/cache-service.d.ts +70 -3
- package/dist/cache-service.js +178 -17
- package/dist/cache-service.js.map +1 -1
- package/dist/channel/adapters/discord.d.ts +7 -0
- package/dist/channel/adapters/discord.js +35 -0
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/mcp-tools.js +22 -10
- 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 +130 -31
- package/dist/cli.js.map +1 -1
- package/dist/config-validator.js +103 -4
- package/dist/config-validator.js.map +1 -1
- package/dist/daemon.d.ts +7 -0
- package/dist/daemon.js +63 -16
- 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 +12 -1
- package/dist/delivery-outbox.js.map +1 -1
- package/dist/fleet-context.d.ts +10 -0
- package/dist/fleet-manager.d.ts +417 -11
- package/dist/fleet-manager.js +1387 -109
- package/dist/fleet-manager.js.map +1 -1
- 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/credential-profiles/SKILL.md +20 -5
- package/dist/general-knowledge/skills/cross-instance-messaging/SKILL.md +6 -1
- 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/web-appearance/SKILL.md +257 -23
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +478 -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 +3 -1
- package/dist/instance-config-impact.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 +100 -8
- package/dist/locale.js.map +1 -1
- package/dist/ls-attach-resolve.d.ts +95 -0
- package/dist/ls-attach-resolve.js +174 -0
- package/dist/ls-attach-resolve.js.map +1 -0
- 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/outbound-handlers.d.ts +10 -0
- package/dist/outbound-handlers.js +122 -2
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +164 -4
- package/dist/outbound-schemas.js +99 -3
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/public-web-gateway.js +8 -2
- 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 +10 -1
- package/dist/quickstart-api.js +12 -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 +65 -1
- package/dist/restart-progress.js +236 -10
- 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/scheduler.d.ts +12 -0
- package/dist/scheduler/scheduler.js +83 -10
- package/dist/scheduler/scheduler.js.map +1 -1
- package/dist/service-installer.d.ts +2 -1
- package/dist/service-installer.js +18 -3
- package/dist/service-installer.js.map +1 -1
- package/dist/settings-api.d.ts +19 -0
- package/dist/settings-api.js +137 -2
- 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-effect.js +17 -1
- package/dist/settings-effect.js.map +1 -1
- package/dist/tmux-manager.d.ts +5 -0
- package/dist/tmux-manager.js +16 -0
- package/dist/tmux-manager.js.map +1 -1
- package/dist/tool-permissions.d.ts +4 -6
- package/dist/tool-permissions.js +53 -5
- package/dist/tool-permissions.js.map +1 -1
- package/dist/topic-commands.d.ts +7 -1
- package/dist/topic-commands.js +18 -4
- package/dist/topic-commands.js.map +1 -1
- package/dist/types.d.ts +48 -1
- package/dist/ui/app-effects.js +77 -31
- package/dist/ui/chat-ambient.js +307 -0
- package/dist/ui/chat-effect-posters.js +8 -8
- package/dist/ui/chat-effects.js +101 -13
- package/dist/ui/chat-render.js +21 -3
- package/dist/ui/chat-strings.js +59 -6
- package/dist/ui/chat-thread.js +159 -21
- package/dist/ui/effect-trial-controller.js +13 -8
- package/dist/ui/effect-trial-panel.js +19 -16
- package/dist/ui/fleet-cache.js +23 -1
- package/dist/ui/fleet-canvas-layout.js +111 -0
- package/dist/ui/fleet-canvas.js +525 -0
- package/dist/ui/fleet-org.js +27 -12
- package/dist/ui/fleet-traffic.js +343 -0
- package/dist/ui/fleet-usage.js +401 -0
- package/dist/ui/panel-chat.js +154 -49
- package/dist/ui/panel-details.js +2 -1
- package/dist/ui/panel-fleet.js +43 -17
- package/dist/ui/panel-settings.js +26 -8
- package/dist/ui/preview.js +3 -2
- package/dist/ui/settings-appearance.js +42 -18
- package/dist/ui/settings-catalog.js +92 -0
- 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 +9 -9
- package/dist/ui/settings-strings.js +120 -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 +4 -2
- package/dist/ui/shared/app-prefs.js +5 -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 +92 -27
- package/dist/ui/shared/app-store.js +26 -1
- package/dist/ui/shared/app-stream.js +3 -1
- package/dist/ui/shared/app-themes.js +24 -6
- package/dist/ui/shared/app.css +365 -17
- package/dist/ui/shared/app.js +21 -14
- package/dist/ui/shared/card-strings.js +4 -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-policy.js +21 -7
- package/dist/ui/shared/effect-profiler.js +31 -9
- package/dist/ui/shared/effect-registry.js +87 -48
- 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 +75 -4
- package/dist/ui/shared/identity-color.js +3 -3
- package/dist/ui/shared/instance-nav.js +194 -28
- package/dist/ui/shared/panel-view.js +24 -4
- package/dist/ui/shared/tokens.css +9 -3
- package/dist/ui/shared/ui-icons.js +1 -0
- package/dist/ui/shared/usage-dialog.js +22 -2
- package/dist/ui/shared/view-strings.js +68 -2
- package/dist/ui/shared/web-authorize.js +151 -0
- package/dist/ui/signin.html +1 -1
- package/dist/ui/web-terminal/terminal.css +4 -4
- package/dist/usage/providers.d.ts +28 -0
- package/dist/usage/providers.js +126 -36
- package/dist/usage/providers.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/view-api.d.ts +39 -0
- package/dist/view-api.js +65 -4
- 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 +69 -5
- package/dist/web-api.js +362 -45
- 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 +82 -7
- package/dist/web-appearance.js.map +1 -1
- package/dist/web-asset-parts.d.ts +5 -10
- 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-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 +50 -0
- package/dist/web-chat-history.js +87 -5
- package/dist/web-chat-history.js.map +1 -1
- package/dist/web-commands.d.ts +1 -0
- 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 +28 -5
- package/dist/web-effect-service.js.map +1 -1
- package/dist/web-effect-tools.d.ts +1 -0
- package/dist/web-effect-tools.js +8 -5
- package/dist/web-effect-tools.js.map +1 -1
- package/dist/web-effect-trials.d.ts +4 -4
- package/dist/web-effect-trials.js +6 -6
- package/dist/web-effect-trials.js.map +1 -1
- package/dist/web-effect-upload.d.ts +2 -4
- package/dist/web-effect-upload.js +3 -8
- 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 +14 -0
- package/dist/web-effect.js +21 -0
- package/dist/web-effect.js.map +1 -1
- package/dist/web-guest-access.d.ts +125 -0
- package/dist/web-guest-access.js +234 -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-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-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 +12 -8
- package/dist/web-mod-agent.js.map +1 -1
- package/dist/web-mod-bundle.d.ts +14 -1
- package/dist/web-mod-bundle.js +68 -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 +21 -7
- package/dist/web-mod-store.js.map +1 -1
- package/dist/web-prefs.d.ts +14 -0
- package/dist/web-prefs.js +24 -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 +89 -0
- package/dist/web-settings-tools.js +270 -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-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 +2 -0
- package/dist/web-theme.js +10 -1
- 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/workflow-templates/default.md +1 -1
- package/package.json +1 -1
- package/templates/systemd.service.ejs +8 -0
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import { validPublicLinkPatch } from "./public-web-link.js";
|
|
10
10
|
export const WEB_TERMINAL_TTL_MINUTES = { min: 1, max: 20 };
|
|
11
11
|
/** What Settings → Web may write; everything else under web: / web_terminal: is fleet.yaml's. */
|
|
12
|
-
export const WEB_SETTINGS_BODY_KEYS = ["echo_to_channel", "log_tab", "public_link", "session", "web_terminal"];
|
|
12
|
+
export const WEB_SETTINGS_BODY_KEYS = ["echo_to_channel", "log_tab", "usage_report_on_public_link", "public_link", "session", "web_terminal", "guests", "verified_authority"];
|
|
13
13
|
/** The whole body, or what is wrong with it (the handler's 400 message). */
|
|
14
14
|
export function parseWebSettingsBody(body) {
|
|
15
15
|
if (!body || typeof body !== "object" || Array.isArray(body)
|
|
@@ -20,6 +20,8 @@ export function parseWebSettingsBody(body) {
|
|
|
20
20
|
return { error: "echo_to_channel must be a boolean" };
|
|
21
21
|
if (patch.log_tab !== undefined && typeof patch.log_tab !== "boolean")
|
|
22
22
|
return { error: "log_tab must be a boolean" };
|
|
23
|
+
if (patch.usage_report_on_public_link !== undefined && typeof patch.usage_report_on_public_link !== "boolean")
|
|
24
|
+
return { error: "usage_report_on_public_link must be a boolean" };
|
|
23
25
|
if (patch.public_link !== undefined && !validPublicLinkPatch(patch.public_link))
|
|
24
26
|
return { error: "invalid public_link settings" };
|
|
25
27
|
const session = webSessionPatch(patch.session);
|
|
@@ -28,13 +30,155 @@ export function parseWebSettingsBody(body) {
|
|
|
28
30
|
const terminal = webTerminalPatch(patch.web_terminal);
|
|
29
31
|
if (terminal === "invalid")
|
|
30
32
|
return { error: "web_terminal must be { enabled?: boolean|null, ttl_minutes?: 1..20|null }" };
|
|
33
|
+
const guests = guestsPatch(patch.guests);
|
|
34
|
+
if (guests === "invalid")
|
|
35
|
+
return { error: "guests must be { enabled?, chat?: boolean|null, open_instances?: { <connection>: [instance…]|null }, narrow?: { \"<connection>:<user>\": [instance…]|null } }" };
|
|
36
|
+
const verifiedAuthority = verifiedAuthorityPatch(patch.verified_authority);
|
|
37
|
+
if (verifiedAuthority === "invalid")
|
|
38
|
+
return { error: "verified_authority must be { enabled?, loopback_only?: boolean|null, max_session_hours?: number|null }" };
|
|
31
39
|
return {
|
|
32
40
|
...(patch.echo_to_channel !== undefined ? { echo: patch.echo_to_channel } : {}),
|
|
33
41
|
...(patch.log_tab !== undefined ? { logTab: patch.log_tab } : {}),
|
|
42
|
+
...(patch.usage_report_on_public_link !== undefined ? { usageOnPublicLink: patch.usage_report_on_public_link } : {}),
|
|
34
43
|
...(patch.public_link !== undefined ? { publicLink: patch.public_link } : {}),
|
|
44
|
+
...(guests ? { guests } : {}),
|
|
45
|
+
...(verifiedAuthority ? { verifiedAuthority } : {}),
|
|
35
46
|
session, terminal,
|
|
36
47
|
};
|
|
37
48
|
}
|
|
49
|
+
const GUEST_LIST_MAX = 200;
|
|
50
|
+
function guestList(v) {
|
|
51
|
+
if (v === null)
|
|
52
|
+
return null;
|
|
53
|
+
if (!Array.isArray(v) || v.length > GUEST_LIST_MAX || v.some((n) => typeof n !== "string" || !n || n.length > 128) || new Set(v).size !== v.length)
|
|
54
|
+
return "invalid";
|
|
55
|
+
return [...v];
|
|
56
|
+
}
|
|
57
|
+
function guestMap(v, key) {
|
|
58
|
+
if (v === undefined)
|
|
59
|
+
return null;
|
|
60
|
+
if (!v || typeof v !== "object" || Array.isArray(v))
|
|
61
|
+
return "invalid";
|
|
62
|
+
const out = Object.create(null);
|
|
63
|
+
for (const [k, raw] of Object.entries(v)) {
|
|
64
|
+
if (!key.test(k))
|
|
65
|
+
return "invalid";
|
|
66
|
+
const list = guestList(raw);
|
|
67
|
+
if (list === "invalid")
|
|
68
|
+
return "invalid";
|
|
69
|
+
out[k] = list;
|
|
70
|
+
}
|
|
71
|
+
return Object.keys(out).length ? out : null;
|
|
72
|
+
}
|
|
73
|
+
export function guestsPatch(raw) {
|
|
74
|
+
if (raw === undefined)
|
|
75
|
+
return null;
|
|
76
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw))
|
|
77
|
+
return "invalid";
|
|
78
|
+
const out = {};
|
|
79
|
+
for (const [k, v] of Object.entries(raw)) {
|
|
80
|
+
if (k === "enabled" || k === "chat") {
|
|
81
|
+
if (v !== null && typeof v !== "boolean")
|
|
82
|
+
return "invalid";
|
|
83
|
+
out[k] = v;
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (k === "open_instances" || k === "narrow") {
|
|
87
|
+
const map = guestMap(v, k === "narrow" ? /^[A-Za-z0-9_.-]{1,64}:[0-9A-Za-z_-]{1,64}$/ : /^[A-Za-z0-9_.-]{1,64}$/);
|
|
88
|
+
if (map === "invalid")
|
|
89
|
+
return "invalid";
|
|
90
|
+
if (map)
|
|
91
|
+
out[k] = map;
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
return "invalid";
|
|
95
|
+
}
|
|
96
|
+
return Object.keys(out).length ? out : null;
|
|
97
|
+
}
|
|
98
|
+
/** `web.guests` after a patch (a copy; null removes; an emptied map leaves; nothing left: undefined), and the file edits. */
|
|
99
|
+
export function applyGuestsPatch(current, patch) {
|
|
100
|
+
const next = { ...current };
|
|
101
|
+
const changes = [];
|
|
102
|
+
for (const key of ["enabled", "chat"]) {
|
|
103
|
+
if (!(key in patch))
|
|
104
|
+
continue;
|
|
105
|
+
const v = patch[key];
|
|
106
|
+
if (v === null || v === undefined) {
|
|
107
|
+
delete next[key];
|
|
108
|
+
changes.push({ path: ["web", "guests", key], value: undefined, remove: true });
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
next[key] = v;
|
|
112
|
+
changes.push({ path: ["web", "guests", key], value: v });
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
for (const key of ["open_instances", "narrow"]) {
|
|
116
|
+
const map = patch[key];
|
|
117
|
+
if (!map)
|
|
118
|
+
continue;
|
|
119
|
+
// Keyed by name (a connection, an account): own keys only, never a prototype's.
|
|
120
|
+
const merged = Object.create(null);
|
|
121
|
+
for (const [k, list] of Object.entries(current?.[key] ?? {}))
|
|
122
|
+
merged[k] = list;
|
|
123
|
+
for (const [k, list] of Object.entries(map)) {
|
|
124
|
+
if (list === null) {
|
|
125
|
+
delete merged[k];
|
|
126
|
+
changes.push({ path: ["web", "guests", key, k], value: undefined, remove: true });
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
merged[k] = list;
|
|
130
|
+
changes.push({ path: ["web", "guests", key, k], value: list });
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (Object.keys(merged).length)
|
|
134
|
+
next[key] = { ...merged };
|
|
135
|
+
else
|
|
136
|
+
delete next[key];
|
|
137
|
+
}
|
|
138
|
+
return { next: Object.keys(next).length ? next : undefined, changes };
|
|
139
|
+
}
|
|
140
|
+
export function verifiedAuthorityPatch(raw) {
|
|
141
|
+
if (raw === undefined)
|
|
142
|
+
return null;
|
|
143
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw))
|
|
144
|
+
return "invalid";
|
|
145
|
+
const out = {};
|
|
146
|
+
for (const [k, v] of Object.entries(raw)) {
|
|
147
|
+
if (k === "enabled" || k === "loopback_only") {
|
|
148
|
+
if (v !== null && typeof v !== "boolean")
|
|
149
|
+
return "invalid";
|
|
150
|
+
out[k] = v;
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
if (k === "max_session_hours") {
|
|
154
|
+
if (v !== null && !(typeof v === "number" && Number.isFinite(v)))
|
|
155
|
+
return "invalid";
|
|
156
|
+
out[k] = v;
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
return "invalid";
|
|
160
|
+
}
|
|
161
|
+
return Object.keys(out).length ? out : null;
|
|
162
|
+
}
|
|
163
|
+
/** `web.verified_authority` after a patch (a copy; null removes; nothing left: undefined), and the file edits. */
|
|
164
|
+
export function applyVerifiedAuthorityPatch(current, patch) {
|
|
165
|
+
const next = { ...current };
|
|
166
|
+
const changes = [];
|
|
167
|
+
for (const key of ["enabled", "loopback_only", "max_session_hours"]) {
|
|
168
|
+
if (!(key in patch))
|
|
169
|
+
continue;
|
|
170
|
+
const v = patch[key];
|
|
171
|
+
if (v === null || v === undefined) {
|
|
172
|
+
delete next[key];
|
|
173
|
+
changes.push({ path: ["web", "verified_authority", key], value: undefined, remove: true });
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
next[key] = v;
|
|
177
|
+
changes.push({ path: ["web", "verified_authority", key], value: v });
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return { next: Object.keys(next).length ? next : undefined, changes };
|
|
181
|
+
}
|
|
38
182
|
/** `session`: `{ local: { absolute_hours?, idle_hours? } }` with numbers or null — the local limits only. */
|
|
39
183
|
export function webSessionPatch(raw) {
|
|
40
184
|
if (raw === undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-settings-patch.js","sourceRoot":"","sources":["../src/web-settings-patch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"web-settings-patch.js","sourceRoot":"","sources":["../src/web-settings-patch.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAW,CAAC;AACrE,iGAAiG;AACjG,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,iBAAiB,EAAE,SAAS,EAAE,6BAA6B,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,oBAAoB,CAAU,CAAC;AAgBvL,4EAA4E;AAC5E,MAAM,UAAU,oBAAoB,CAAC,IAAa;IAChD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;WACvD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAE,sBAA4C,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;IACxI,MAAM,KAAK,GAAG,IAA+B,CAAC;IAC9C,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,eAAe,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC;IAC7I,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;IACrH,IAAI,KAAK,CAAC,2BAA2B,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,2BAA2B,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,+CAA+C,EAAE,CAAC;IACjL,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC;IAClI,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,kFAAkF,EAAE,CAAC;IAChI,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACtD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,2EAA2E,EAAE,CAAC;IAC1H,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,+JAA+J,EAAE,CAAC;IAC5M,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC3E,IAAI,iBAAiB,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,wGAAwG,EAAE,CAAC;IAChK,OAAO;QACL,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,eAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,OAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,KAAK,CAAC,2BAA2B,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,2BAAsC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/H,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,WAAoD,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtH,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO,EAAE,QAAQ;KAClB,CAAC;AACJ,CAAC;AAaD,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,SAAS,SAAS,CAAC,CAAU;IAC3B,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IACrK,OAAO,CAAC,GAAG,CAAC,CAAa,CAAC;AAC5B,CAAC;AACD,SAAS,QAAQ,CAAC,CAAU,EAAE,GAAW;IACvC,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACtE,MAAM,GAAG,GAAoC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjE,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACnC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACzC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AACD,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5E,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAmB,CAAC;YAAC,SAAS;QAAC,CAAC;QAC5I,IAAI,CAAC,KAAK,gBAAgB,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;YAClH,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YACxC,IAAI,GAAG;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACtB,SAAS;QACX,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AACD,6HAA6H;AAC7H,MAAM,UAAU,gBAAgB,CAAC,OAAoC,EAAE,KAAkB;IAEvF,MAAM,IAAI,GAAoB,EAAE,GAAG,OAAO,EAAE,CAAC;IAC7C,MAAM,OAAO,GAA6D,EAAE,CAAC;IAC7E,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAU,EAAE,CAAC;QAC/C,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC;YAAE,SAAS;QAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;aACnI,CAAC;YAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;IACnF,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAU,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,gFAAgF;QAChF,MAAM,MAAM,GAA6B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7D,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAC/E,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAAC,CAAC;iBACtH,CAAC;gBAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAAC,CAAC;QAC5F,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;;YAAM,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;AACxE,CAAC;AAYD,MAAM,UAAU,sBAAsB,CAAC,GAAY;IACjD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5E,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,eAAe,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAmB,CAAC;YAAC,SAAS;QAAC,CAAC;QACrJ,IAAI,CAAC,KAAK,mBAAmB,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,SAAS,CAAC;YAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAkB,CAAC;YAAC,SAAS;QAAC,CAAC;QAC7J,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AACD,kHAAkH;AAClH,MAAM,UAAU,2BAA2B,CAAC,OAA+C,EAAE,KAA6B;IAExH,MAAM,IAAI,GAA+B,EAAE,GAAG,OAAO,EAAE,CAAC;IACxD,MAAM,OAAO,GAA6D,EAAE,CAAC;IAC7E,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE,mBAAmB,CAAU,EAAE,CAAC;QAC7E,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC;YAAE,SAAS;QAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;aAC/I,CAAC;YAAE,IAAgC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;IAC5H,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;AACxE,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5E,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,KAAK,GAAI,GAA2B,CAAC,KAAK,CAAC;IACjD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClF,MAAM,GAAG,GAAkC,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,CAAC,KAAK,gBAAgB,IAAI,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACvI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAkB,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,4HAA4H;AAC5H,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5E,MAAM,GAAG,GAA4C,EAAE,CAAC;IACxD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,SAAS,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aACrE,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;eACvF,CAAC,IAAI,wBAAwB,CAAC,GAAG,IAAI,CAAC,IAAI,wBAAwB,CAAC,GAAG,CAAC,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;YACrF,OAAO,SAAS,CAAC;IACxB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAgD;IACrF,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC;IAChD,MAAM,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC;IAC9C,cAAc,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;CACjC,CAAC;AAEF,MAAM,UAAU,2BAA2B,CAAC,IAAa;IACvD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;IACrG,MAAM,OAAO,GAA+B,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5G,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,KAAK,EAAE,6BAA6B,KAAK,EAAE,EAAE,CAAC;QACpE,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,oBAAoB,EAAE,CAAC;QAC1G,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,6BAA6B,KAAK,IAAI,GAAG,EAAE,EAAE,CAAC;YACzF,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,iCAAiC,EAAE,CAAC;YACnK,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAsB,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6HAA6H;AAC7H,MAAM,UAAU,sBAAsB,CAAC,OAAgB,EAAE,OAA4C;IACnG,MAAM,GAAG,GAA2C,EAAE,CAAC;IACvD,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAI,CAA4B,EAAE,CAAC;IACnJ,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;YAAM,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { WebPrefsStore } from "./web-prefs.js";
|
|
2
|
+
import type { OwnerCssStore } from "./web-owner-css-store.js";
|
|
3
|
+
import type { ModStore } from "./web-mod-store.js";
|
|
4
|
+
import type { WebEffectService } from "./web-effect-service.js";
|
|
5
|
+
export interface WebSettingsDeps {
|
|
6
|
+
prefs: WebPrefsStore;
|
|
7
|
+
ownerCss: OwnerCssStore;
|
|
8
|
+
mods: ModStore;
|
|
9
|
+
effects: WebEffectService;
|
|
10
|
+
/** The instances the page lists (fleet and ClassicBot rooms). */
|
|
11
|
+
instances(): string[];
|
|
12
|
+
/** A person's colour for one instance, as the Colour dialog reads it; and its write (the page's /api/profile path). */
|
|
13
|
+
colour(instance: string): {
|
|
14
|
+
color: string | null;
|
|
15
|
+
show: string[] | null;
|
|
16
|
+
};
|
|
17
|
+
setColour(instance: string, patch: {
|
|
18
|
+
color?: unknown;
|
|
19
|
+
show?: unknown;
|
|
20
|
+
}): {
|
|
21
|
+
ok: true;
|
|
22
|
+
} | {
|
|
23
|
+
ok: false;
|
|
24
|
+
status: number;
|
|
25
|
+
error: string;
|
|
26
|
+
detail?: string;
|
|
27
|
+
};
|
|
28
|
+
/** #2086: a person's banner focus for one instance (0 top … 100 bottom; null: none), and its write (Edit profile's). */
|
|
29
|
+
bannerFocus(instance: string): number | null;
|
|
30
|
+
setBannerFocus(instance: string, focus: unknown): {
|
|
31
|
+
ok: true;
|
|
32
|
+
} | {
|
|
33
|
+
ok: false;
|
|
34
|
+
status: number;
|
|
35
|
+
error: string;
|
|
36
|
+
detail?: string;
|
|
37
|
+
};
|
|
38
|
+
/** #2117: each chat's ambient ({ loop?, click? }: spec and who set it), and a person's write (the chat menu's route). */
|
|
39
|
+
ambient(instance: string): Record<string, {
|
|
40
|
+
spec: unknown;
|
|
41
|
+
by: string;
|
|
42
|
+
}>;
|
|
43
|
+
setAmbient(instance: string, spec: unknown, which?: unknown): Record<string, unknown>;
|
|
44
|
+
/** The effects placed on each chat (the page's Effects card). */
|
|
45
|
+
placements(instance: string): Array<{
|
|
46
|
+
id: string;
|
|
47
|
+
params?: Record<string, unknown>;
|
|
48
|
+
}>;
|
|
49
|
+
/** Every page re-reads after a change (the routes' `announce`). */
|
|
50
|
+
announce(): void;
|
|
51
|
+
}
|
|
52
|
+
type Result = {
|
|
53
|
+
ok: true;
|
|
54
|
+
[k: string]: unknown;
|
|
55
|
+
} | {
|
|
56
|
+
ok: false;
|
|
57
|
+
error: string;
|
|
58
|
+
detail?: string;
|
|
59
|
+
problems?: unknown;
|
|
60
|
+
};
|
|
61
|
+
export declare class WebSettingsTools {
|
|
62
|
+
private readonly deps;
|
|
63
|
+
constructor(deps: WebSettingsDeps);
|
|
64
|
+
/** The people whose own settings a tool may change: the host operator, and everyone who has signed in here. */
|
|
65
|
+
people(): Array<{
|
|
66
|
+
person: string;
|
|
67
|
+
name: string | null;
|
|
68
|
+
}>;
|
|
69
|
+
private person;
|
|
70
|
+
/** Everything the page shows now, in plain words and as values. */
|
|
71
|
+
read(rawPerson?: unknown): Result;
|
|
72
|
+
/** One change, as the page makes it. */
|
|
73
|
+
change(rawPerson: unknown, change: unknown): Result;
|
|
74
|
+
/** The page's /ui/prefs write, for these keys, with its validation (parsePatch) and its announcement. */
|
|
75
|
+
private writePrefs;
|
|
76
|
+
private host;
|
|
77
|
+
/** #2086: which part of an agent's cropped banner stays in view — the person's choice, as Edit profile sets it. */
|
|
78
|
+
private bannerFocus;
|
|
79
|
+
private agentColour;
|
|
80
|
+
private css;
|
|
81
|
+
private mod;
|
|
82
|
+
private effect;
|
|
83
|
+
/** #2117: a person's ambient for an agent — the chat menu's write (a person's wins over the agent's, and binds it). */
|
|
84
|
+
private ambient;
|
|
85
|
+
private slot;
|
|
86
|
+
/** The page's Restore defaults: the host prefs back to their defaults, and this person's custom CSS off. */
|
|
87
|
+
private restore;
|
|
88
|
+
}
|
|
89
|
+
export {};
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #2056: the General instance (and a coordinator or full profile) changes Settings → Web appearance for the user — every
|
|
3
|
+
* setting the page can change that does not need the person's own browser or files. One implementation: each change goes
|
|
4
|
+
* through exactly what the page's route calls (the same store, the same validation, the same announcement), never a
|
|
5
|
+
* copy of it. Custom CSS keeps its safe-token rules (OwnerCssStore.save → checkOwnerCss): no bypass. A tool saves CSS on
|
|
6
|
+
* trial, keeps or reverts that trial, switches to an earlier saved version, or turns it off — the page's own buttons, on
|
|
7
|
+
* the store's own checks (the user's decision, 2026-10-18: General may keep it; #2056 first allowed only the trial). Only
|
|
8
|
+
* a version the person's store holds can be put back: every one of them passed checkOwnerCss when it was saved.
|
|
9
|
+
*
|
|
10
|
+
* Whose settings: the host's (the prefs every viewer of this host shares), and a person's own — their custom CSS and
|
|
11
|
+
* their effect slots — named by `person` (one of get_web_settings' people; default: the host operator).
|
|
12
|
+
*
|
|
13
|
+
* Not here, and why (the page is the only way): choosing a file from the person's computer (a mod file, an effect folder,
|
|
14
|
+
* a CSS asset, a card picture), this browser's switches (custom CSS off on this device, effect playback pause), downloading
|
|
15
|
+
* an export, and the card upload limits (fleet configuration, whose raises wait for an admin's confirmation).
|
|
16
|
+
*/
|
|
17
|
+
import { OPERATOR } from "./web-prefs.js";
|
|
18
|
+
import { DEFAULT_PLACEMENTS } from "./web-identity-palette.js";
|
|
19
|
+
const OWNER_SLOTS = ["sidebar", "header", "page", "box", "cursor"];
|
|
20
|
+
const failed = (error, detail, problems) => ({ ok: false, error, ...(detail ? { detail } : {}), ...(problems ? { problems } : {}) });
|
|
21
|
+
const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
22
|
+
/** The host prefs a tool may set, by their plain names, and how the page stores each (its default is stored as unset). */
|
|
23
|
+
const HOST = {
|
|
24
|
+
themes_shown: { key: "fx.show", store: (v) => (v === true ? null : v) },
|
|
25
|
+
card_size: { key: "card.size", store: (v) => (v === "m" ? null : v) },
|
|
26
|
+
card_sizes: { key: "card.sizeByInstance", store: (v) => (isObj(v) && !Object.keys(v).length ? null : v) },
|
|
27
|
+
colour_places: { key: "color.show", store: (v) => (Array.isArray(v) && sameSet(v, DEFAULT_PLACEMENTS) ? null : v) },
|
|
28
|
+
colours_off: { key: "color.off", store: (v) => (v === false ? null : v) },
|
|
29
|
+
sidebar_widget: { key: "widget.sidebar", store: (v) => v },
|
|
30
|
+
};
|
|
31
|
+
const sameSet = (a, b) => a.length === b.length && b.every((x) => a.includes(x));
|
|
32
|
+
/** What Restore defaults resets on the page (settings-appearance.js RestoreDefaultsCard), host prefs side. */
|
|
33
|
+
const RESTORED = ["fx.show", "card.size", "card.sizeByInstance", "widget.sidebar", "color.show", "color.off"];
|
|
34
|
+
export class WebSettingsTools {
|
|
35
|
+
deps;
|
|
36
|
+
constructor(deps) {
|
|
37
|
+
this.deps = deps;
|
|
38
|
+
}
|
|
39
|
+
/** The people whose own settings a tool may change: the host operator, and everyone who has signed in here. */
|
|
40
|
+
people() {
|
|
41
|
+
return this.deps.prefs.people();
|
|
42
|
+
}
|
|
43
|
+
person(raw) {
|
|
44
|
+
if (raw === undefined || raw === OPERATOR)
|
|
45
|
+
return OPERATOR;
|
|
46
|
+
if (typeof raw !== "string" || !this.people().some((p) => p.person === raw))
|
|
47
|
+
return failed("unknown_person", "name one of get_web_settings' people");
|
|
48
|
+
return raw;
|
|
49
|
+
}
|
|
50
|
+
/** Everything the page shows now, in plain words and as values. */
|
|
51
|
+
read(rawPerson) {
|
|
52
|
+
const person = this.person(rawPerson);
|
|
53
|
+
if (typeof person !== "string")
|
|
54
|
+
return person;
|
|
55
|
+
const host = this.deps.prefs.read(OPERATOR).values;
|
|
56
|
+
const own = this.deps.prefs.readForViewer(person === OPERATOR ? OPERATOR : person).values;
|
|
57
|
+
const places = (Array.isArray(host["color.show"]) ? host["color.show"] : [...DEFAULT_PLACEMENTS]);
|
|
58
|
+
const cardSize = host["card.size"] ?? "m";
|
|
59
|
+
const css = this.deps.ownerCss.state(person);
|
|
60
|
+
const mods = this.deps.mods.list(), proposals = this.deps.mods.proposals();
|
|
61
|
+
const agents = this.deps.instances().map((name) => ({ name, ...this.deps.colour(name), effects: this.deps.placements(name), ambient: this.deps.ambient(name) }));
|
|
62
|
+
const slots = Object.fromEntries(OWNER_SLOTS.map((s) => [s, own[`fx.${s}`] ?? null]));
|
|
63
|
+
const sizeWord = { s: "small", m: "medium", l: "large" };
|
|
64
|
+
const summary = [
|
|
65
|
+
`Agents' themes, effects and widgets: ${host["fx.show"] === false ? "hidden (every chat looks the same)" : "shown"}.`,
|
|
66
|
+
`Identity colours: ${host["color.off"] === true ? "turned off on this host" : `shown on ${places.length ? places.join(", ") : "nowhere"}${host["color.show"] === undefined ? " (the default)" : ""}`}.`,
|
|
67
|
+
`Agents with a person's own colour: ${agents.filter((a) => a.color || a.show).map((a) => `${a.name} (${a.color ?? "their own colour"}${a.show ? `, on ${a.show.join(", ") || "nowhere"}` : ""})`).join("; ") || "none"}.`,
|
|
68
|
+
`Identity cards: ${sizeWord[cardSize] ?? cardSize}${isObj(host["card.sizeByInstance"]) && Object.keys(host["card.sizeByInstance"]).length ? `, set apart: ${Object.entries(host["card.sizeByInstance"]).map(([n, s]) => `${n} ${sizeWord[s] ?? s}`).join(", ")}` : ""}.`,
|
|
69
|
+
`Sidebar widget: ${isObj(host["widget.sidebar"]) ? `"${String(host["widget.sidebar"].spec?.title ?? "untitled")}"` : "none"}.`,
|
|
70
|
+
`Custom CSS (${person === OPERATOR ? "the host operator" : person}): ${css.active ? `in force (version ${css.active.slice(0, 8)})` : "off"}${css.pending ? `, on trial (${Math.ceil(css.pending.remaining_ms / 1000)} s left): keep or revert it` : ""}; ${css.versions.length} saved version(s).`,
|
|
71
|
+
`Mods installed: ${mods.mods.map((m) => `${m.name} ${m.version}`).join(", ") || "none"}; proposed by agents: ${proposals.map((p) => p.instance).join(", ") || "none"}.`,
|
|
72
|
+
`Effects on chats: ${agents.filter((a) => a.effects.length).map((a) => `${a.name}: ${a.effects.map((e) => e.id.slice(0, 8)).join(", ")}`).join("; ") || "none"}.`,
|
|
73
|
+
`Ambient effects: ${agents.filter((a) => Object.keys(a.ambient).length).map((a) => `${a.name}: ${Object.values(a.ambient).map((x) => `${x.spec.preset} (set by ${x.by === "human" ? "a person" : "the agent"})`).join(", ")}`).join("; ") || "none"}.`,
|
|
74
|
+
`Effect slots (${person === OPERATOR ? "the host operator" : person}): ${OWNER_SLOTS.filter((s) => slots[s]).map((s) => `${s} ${slots[s].slice(0, 8)}`).join(", ") || "none"}.`,
|
|
75
|
+
];
|
|
76
|
+
return {
|
|
77
|
+
ok: true, summary, person, people: this.people(),
|
|
78
|
+
host: { themes_shown: host["fx.show"] !== false, card_size: cardSize, card_sizes: host["card.sizeByInstance"] ?? {}, colour_places: places,
|
|
79
|
+
colour_places_default: host["color.show"] === undefined, colours_off: host["color.off"] === true, sidebar_widget: host["widget.sidebar"] ?? null },
|
|
80
|
+
agents,
|
|
81
|
+
custom_css: { active: css.active, on_trial: css.pending !== null, versions: css.versions.map((v) => ({ sha: v.sha, bytes: v.bytes })) },
|
|
82
|
+
mods: { installed: mods.mods, proposals },
|
|
83
|
+
effect_slots: slots,
|
|
84
|
+
page_only: ["choosing a file from the person's computer (a mod file, an effect folder, a CSS asset, a card picture)",
|
|
85
|
+
"this browser's switches (custom CSS off on this device; pausing effect playback)",
|
|
86
|
+
"downloading an export", "the card upload limits"],
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/** One change, as the page makes it. */
|
|
90
|
+
change(rawPerson, change) {
|
|
91
|
+
const person = this.person(rawPerson);
|
|
92
|
+
if (typeof person !== "string")
|
|
93
|
+
return person;
|
|
94
|
+
if (!isObj(change) || typeof change.what !== "string")
|
|
95
|
+
return failed("change", "an object with `what`");
|
|
96
|
+
switch (change.what) {
|
|
97
|
+
case "host": return this.host(change.set);
|
|
98
|
+
case "agent_colour": return this.agentColour(change);
|
|
99
|
+
case "banner_focus": return this.bannerFocus(change);
|
|
100
|
+
case "custom_css": return this.css(person, change);
|
|
101
|
+
case "mod": return this.mod(person, change);
|
|
102
|
+
case "effect": return this.effect(person, change);
|
|
103
|
+
case "effect_slot": return this.slot(person, change);
|
|
104
|
+
case "ambient": return this.ambient(change);
|
|
105
|
+
case "restore_defaults": return this.restore(person);
|
|
106
|
+
default: return failed("change", `unknown \`what\`: ${change.what}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/** The page's /ui/prefs write, for these keys, with its validation (parsePatch) and its announcement. */
|
|
110
|
+
writePrefs(person, set) {
|
|
111
|
+
const parsed = this.deps.prefs.parsePatch(set);
|
|
112
|
+
if (!parsed.ok)
|
|
113
|
+
return failed("prefs", parsed.error);
|
|
114
|
+
const before = this.deps.prefs.readForViewer(person).values;
|
|
115
|
+
const written = this.deps.prefs.writeForViewer(person, parsed.patch, {
|
|
116
|
+
validateEffect: (p, key, id) => this.deps.effects.validateOwnerSelection(p, key, id),
|
|
117
|
+
});
|
|
118
|
+
if (!written.ok)
|
|
119
|
+
return failed(written.error);
|
|
120
|
+
const dropped = written.changed.filter((k) => k.startsWith("fx.") && k !== "fx.show")
|
|
121
|
+
.flatMap((k) => typeof before[k] === "string" && before[k] !== written.view.values[k] ? [before[k]] : []);
|
|
122
|
+
if (dropped.length)
|
|
123
|
+
this.deps.effects.collectOwnerReplaced(dropped);
|
|
124
|
+
if (written.changed.length)
|
|
125
|
+
this.deps.announce();
|
|
126
|
+
return { ok: true, changed: written.changed };
|
|
127
|
+
}
|
|
128
|
+
host(set) {
|
|
129
|
+
if (!isObj(set) || !Object.keys(set).length)
|
|
130
|
+
return failed("host", `set one or more of: ${Object.keys(HOST).join(", ")}`);
|
|
131
|
+
const patch = {};
|
|
132
|
+
for (const [k, v] of Object.entries(set)) {
|
|
133
|
+
const spec = HOST[k];
|
|
134
|
+
if (!spec || !Object.hasOwn(HOST, k))
|
|
135
|
+
return failed("host", `unknown setting: ${k} (known: ${Object.keys(HOST).join(", ")})`);
|
|
136
|
+
patch[spec.key] = v === null ? null : spec.store(v);
|
|
137
|
+
}
|
|
138
|
+
return this.writePrefs(OPERATOR, patch);
|
|
139
|
+
}
|
|
140
|
+
/** #2086: which part of an agent's cropped banner stays in view — the person's choice, as Edit profile sets it. */
|
|
141
|
+
bannerFocus(c) {
|
|
142
|
+
if (typeof c.instance !== "string" || !this.deps.instances().includes(c.instance))
|
|
143
|
+
return failed("unknown_instance");
|
|
144
|
+
if (!Object.hasOwn(c, "focus"))
|
|
145
|
+
return failed("banner_focus", "focus: 0 (top) … 100 (bottom), or null to follow the agent's");
|
|
146
|
+
const w = this.deps.setBannerFocus(c.instance, c.focus);
|
|
147
|
+
return w.ok ? { ok: true, instance: c.instance, focus: this.deps.bannerFocus(c.instance) } : failed(w.error, w.detail);
|
|
148
|
+
}
|
|
149
|
+
agentColour(c) {
|
|
150
|
+
if (typeof c.instance !== "string" || !this.deps.instances().includes(c.instance))
|
|
151
|
+
return failed("unknown_instance");
|
|
152
|
+
const patch = {};
|
|
153
|
+
if (Object.hasOwn(c, "colour"))
|
|
154
|
+
patch.color = c.colour;
|
|
155
|
+
if (Object.hasOwn(c, "places"))
|
|
156
|
+
patch.show = c.places;
|
|
157
|
+
if (!Object.keys(patch).length)
|
|
158
|
+
return failed("agent_colour", "set colour and/or places (null resets each)");
|
|
159
|
+
const w = this.deps.setColour(c.instance, patch);
|
|
160
|
+
return w.ok ? { ok: true, instance: c.instance, ...this.deps.colour(c.instance) } : failed(w.error, w.detail);
|
|
161
|
+
}
|
|
162
|
+
css(person, c) {
|
|
163
|
+
const store = this.deps.ownerCss, done = (r, body) => {
|
|
164
|
+
if (!r.ok)
|
|
165
|
+
return failed(r.error ?? "custom_css", r.detail);
|
|
166
|
+
this.deps.announce();
|
|
167
|
+
return { ok: true, ...body };
|
|
168
|
+
};
|
|
169
|
+
switch (c.action) {
|
|
170
|
+
case "save": {
|
|
171
|
+
const r = store.save(person, c.text);
|
|
172
|
+
return r.ok ? done(r, { on_trial: true, previous: r.previous, note: "on trial on their screens: it goes back by itself unless kept — by them, or by you (keep) when they say so" }) : done(r, {});
|
|
173
|
+
}
|
|
174
|
+
case "keep": {
|
|
175
|
+
const r = store.keep(person, store.state(person).pending?.id);
|
|
176
|
+
return r.ok ? done(r, { active: r.active }) : done(r, {});
|
|
177
|
+
}
|
|
178
|
+
case "revert": {
|
|
179
|
+
const r = store.revertTrial(person, store.state(person).pending?.id);
|
|
180
|
+
return r.ok ? done(r, { active: r.active }) : done(r, {});
|
|
181
|
+
}
|
|
182
|
+
case "off": {
|
|
183
|
+
const r = store.restore(person, null);
|
|
184
|
+
return r.ok ? done(r, { active: r.active }) : done(r, {});
|
|
185
|
+
}
|
|
186
|
+
case "use": {
|
|
187
|
+
const r = store.restore(person, c.version);
|
|
188
|
+
return r.ok ? done(r, { active: r.active }) : done(r, {});
|
|
189
|
+
}
|
|
190
|
+
default: return failed("custom_css", "action: save (with text: on trial), keep (the trial), revert (the trial), use (with version: an earlier saved one) or off");
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
mod(person, c) {
|
|
194
|
+
const mods = this.deps.mods;
|
|
195
|
+
const out = (r, body) => r.ok ? { ok: true, ...body() } : failed(r.error ?? "mod", r.detail, r.problems);
|
|
196
|
+
switch (c.action) {
|
|
197
|
+
case "review": {
|
|
198
|
+
// A person has one review open at a time: opening another would drop theirs (a file they are looking at on the page).
|
|
199
|
+
const open = mods.stageOrigin(person);
|
|
200
|
+
if (open) {
|
|
201
|
+
return failed("mod_review_open", open.proposal === null
|
|
202
|
+
? "the person has a mod file open for review on the page; ask them to install or cancel it first"
|
|
203
|
+
: `a review of ${open.proposal}'s proposal is already open (yours, or the person's on the page); cancel yours with its stage, or ask them to finish`);
|
|
204
|
+
}
|
|
205
|
+
const r = mods.stageProposal(person, c.instance);
|
|
206
|
+
return out(r, () => r.ok ? { stage: r.stage, plan: r.plan, plan_hash: r.plan_hash, note: "install it with the parts to apply (custom CSS is never ticked for you)" } : {});
|
|
207
|
+
}
|
|
208
|
+
case "install": {
|
|
209
|
+
// Only an agent's proposal: a mod the person imported from a file is theirs to install on the page.
|
|
210
|
+
const open = mods.stageOrigin(person);
|
|
211
|
+
if (open && open.stage === c.stage && open.proposal === null)
|
|
212
|
+
return failed("mod_not_from_an_agent", "a mod the person imported from a file is installed on the page, by them");
|
|
213
|
+
const r = mods.commit(person, { stage: c.stage, plan_hash: c.plan_hash, include: c.include, target: c.target });
|
|
214
|
+
if (r.ok)
|
|
215
|
+
this.deps.announce();
|
|
216
|
+
return out(r, () => r.ok ? { id: r.id, applied: r.applied, ...(r.css ? { css: r.css } : {}) } : {});
|
|
217
|
+
}
|
|
218
|
+
case "cancel": {
|
|
219
|
+
const r = mods.abort(person, c.stage);
|
|
220
|
+
return out(r, () => ({}));
|
|
221
|
+
}
|
|
222
|
+
case "dismiss": {
|
|
223
|
+
const r = mods.dismiss(c.instance);
|
|
224
|
+
return out(r, () => ({}));
|
|
225
|
+
}
|
|
226
|
+
case "uninstall": {
|
|
227
|
+
const r = mods.uninstall(c.id);
|
|
228
|
+
return out(r, () => r.ok ? { released: r.released } : {});
|
|
229
|
+
}
|
|
230
|
+
default: return failed("mod", "action: review (instance), install (stage, plan_hash, include, target), cancel (stage), dismiss (instance) or uninstall (id)");
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
effect(person, c) {
|
|
234
|
+
const args = { instance: c.instance, id: c.id, ...(c.params !== undefined ? { params: c.params } : {}) };
|
|
235
|
+
const r = c.action === "apply" ? this.deps.effects.apply(person, args) : c.action === "remove" ? this.deps.effects.remove(person, { instance: c.instance, ...(c.id !== undefined ? { id: c.id } : {}) }) : null;
|
|
236
|
+
if (!r)
|
|
237
|
+
return failed("effect", "action: apply (instance, id, params?) or remove (instance, id?)");
|
|
238
|
+
return isObj(r) && typeof r.error === "string" ? failed(r.error, typeof r.detail === "string" ? r.detail : undefined) : { ok: true, ...r };
|
|
239
|
+
}
|
|
240
|
+
/** #2117: a person's ambient for an agent — the chat menu's write (a person's wins over the agent's, and binds it). */
|
|
241
|
+
ambient(c) {
|
|
242
|
+
if (typeof c.instance !== "string" || !this.deps.instances().includes(c.instance))
|
|
243
|
+
return failed("unknown_instance");
|
|
244
|
+
if (!Object.hasOwn(c, "ambient"))
|
|
245
|
+
return failed("ambient", "ambient: a spec (as set_web_ambient's), or null to clear (which: loop | click, default both)");
|
|
246
|
+
const r = this.deps.setAmbient(c.instance, c.ambient, c.which);
|
|
247
|
+
if (typeof r.error === "string")
|
|
248
|
+
return failed(r.error, typeof r.message === "string" ? r.message : undefined);
|
|
249
|
+
return { ok: true, instance: c.instance, ...r, now: this.deps.ambient(c.instance) };
|
|
250
|
+
}
|
|
251
|
+
slot(person, c) {
|
|
252
|
+
if (typeof c.slot !== "string" || !OWNER_SLOTS.includes(c.slot))
|
|
253
|
+
return failed("effect_slot", `slot: ${OWNER_SLOTS.join(", ")}`);
|
|
254
|
+
if (c.id !== null && typeof c.id !== "string")
|
|
255
|
+
return failed("effect_slot", "id: an effect id, or null to clear");
|
|
256
|
+
return this.writePrefs(person, { [`fx.${c.slot}`]: c.id });
|
|
257
|
+
}
|
|
258
|
+
/** The page's Restore defaults: the host prefs back to their defaults, and this person's custom CSS off. */
|
|
259
|
+
restore(person) {
|
|
260
|
+
const prefs = this.writePrefs(OPERATOR, Object.fromEntries(RESTORED.map((k) => [k, null])));
|
|
261
|
+
if (!prefs.ok)
|
|
262
|
+
return prefs;
|
|
263
|
+
const css = this.deps.ownerCss.state(person).active ? this.deps.ownerCss.restore(person, null) : { ok: true };
|
|
264
|
+
if (!css.ok)
|
|
265
|
+
return failed("restore_css", "the settings were restored, but custom CSS could not be turned off");
|
|
266
|
+
this.deps.announce();
|
|
267
|
+
return { ok: true, changed: prefs.changed, custom_css: "off", note: "a browser's own switch (custom CSS off on this device) is the person's to change on the page" };
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=web-settings-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-settings-tools.js","sourceRoot":"","sources":["../src/web-settings-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* view-api.ts serves them, open to anyone when `web.view_access` is open). /settings and /settings/<section> are the
|
|
11
11
|
* Settings panel (step 3; settings-api.ts serves them, signed in only).
|
|
12
12
|
*/
|
|
13
|
-
export declare const FLEET_TABS: readonly ["tasks", "schedules", "teams", "org", "cache", "config"];
|
|
13
|
+
export declare const FLEET_TABS: readonly ["tasks", "schedules", "teams", "org", "cache", "usage", "config"];
|
|
14
14
|
export type FleetTab = typeof FLEET_TABS[number];
|
|
15
15
|
export declare const SETTINGS_SECTIONS: readonly ["device", "appearance", "agents", "bots", "classic", "general", "web", "advanced"];
|
|
16
16
|
export type SettingsSection = typeof SETTINGS_SECTIONS[number];
|
package/dist/web-shell-routes.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* view-api.ts serves them, open to anyone when `web.view_access` is open). /settings and /settings/<section> are the
|
|
11
11
|
* Settings panel (step 3; settings-api.ts serves them, signed in only).
|
|
12
12
|
*/
|
|
13
|
-
export const FLEET_TABS = ["tasks", "schedules", "teams", "org", "cache", "config"];
|
|
13
|
+
export const FLEET_TABS = ["tasks", "schedules", "teams", "org", "cache", "usage", "config"];
|
|
14
14
|
// #1604: "device" — this browser's own choices (theme, language, HTML previews, the tour); no configuration behind it.
|
|
15
15
|
export const SETTINGS_SECTIONS = ["device", "appearance", "agents", "bots", "classic", "general", "web", "advanced"];
|
|
16
16
|
const PATH_SEPARATOR_OR_CONTROL = /[/\\\u0000-\u001f\u007f]/;
|