@0xmaxma/claude-gateway 2.0.3 → 2.0.5
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 +11 -1
- package/dist/agent/builtin-commands.d.ts +1 -1
- package/dist/agent/builtin-commands.d.ts.map +1 -1
- package/dist/agent/builtin-commands.js +3 -2
- package/dist/agent/builtin-commands.js.map +1 -1
- package/dist/agent/runner.d.ts +109 -9
- package/dist/agent/runner.d.ts.map +1 -1
- package/dist/agent/runner.js +211 -135
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/skill-learning/index.d.ts.map +1 -1
- package/dist/agent/skill-learning/index.js +27 -8
- package/dist/agent/skill-learning/index.js.map +1 -1
- package/dist/agent/skill-learning/reviewer.d.ts +3 -1
- package/dist/agent/skill-learning/reviewer.d.ts.map +1 -1
- package/dist/agent/skill-learning/reviewer.js +6 -2
- package/dist/agent/skill-learning/reviewer.js.map +1 -1
- package/dist/agent/turn-stream.d.ts +3 -1
- package/dist/agent/turn-stream.d.ts.map +1 -1
- package/dist/agent/turn-stream.js +8 -4
- package/dist/agent/turn-stream.js.map +1 -1
- package/dist/api/gateway-router.d.ts +2 -0
- package/dist/api/gateway-router.d.ts.map +1 -1
- package/dist/api/gateway-router.js +229 -12
- package/dist/api/gateway-router.js.map +1 -1
- package/dist/api/router.js +11 -11
- package/dist/api/router.js.map +1 -1
- package/dist/api/slack-webhook-router.js +1 -1
- package/dist/api/slack-webhook-router.js.map +1 -1
- package/dist/api/voice-router.d.ts +1 -0
- package/dist/api/voice-router.d.ts.map +1 -1
- package/dist/api/voice-router.js +129 -7
- package/dist/api/voice-router.js.map +1 -1
- package/dist/config/claude-settings.d.ts +14 -0
- package/dist/config/claude-settings.d.ts.map +1 -1
- package/dist/config/claude-settings.js +20 -0
- package/dist/config/claude-settings.js.map +1 -1
- package/dist/orchestration/agent-cli-session.d.ts +46 -0
- package/dist/orchestration/agent-cli-session.d.ts.map +1 -0
- package/dist/orchestration/agent-cli-session.js +121 -0
- package/dist/orchestration/agent-cli-session.js.map +1 -0
- package/dist/orchestration/agent-tool-schemas.d.ts +6 -0
- package/dist/orchestration/agent-tool-schemas.d.ts.map +1 -0
- package/dist/orchestration/agent-tool-schemas.js +23 -0
- package/dist/orchestration/agent-tool-schemas.js.map +1 -0
- package/dist/orchestration/bridge.d.ts +7 -3
- package/dist/orchestration/bridge.d.ts.map +1 -1
- package/dist/orchestration/bridge.js +93 -66
- package/dist/orchestration/bridge.js.map +1 -1
- package/dist/orchestration/browser-voice.d.ts +14 -0
- package/dist/orchestration/browser-voice.d.ts.map +1 -0
- package/dist/orchestration/browser-voice.js +30 -0
- package/dist/orchestration/browser-voice.js.map +1 -0
- package/dist/orchestration/channel-input-media.d.ts +6 -0
- package/dist/orchestration/channel-input-media.d.ts.map +1 -1
- package/dist/orchestration/channel-input-media.js +35 -11
- package/dist/orchestration/channel-input-media.js.map +1 -1
- package/dist/orchestration/channel-media-error.d.ts +11 -0
- package/dist/orchestration/channel-media-error.d.ts.map +1 -0
- package/dist/orchestration/channel-media-error.js +38 -0
- package/dist/orchestration/channel-media-error.js.map +1 -0
- package/dist/orchestration/channel-media.d.ts +1 -1
- package/dist/orchestration/channel-media.d.ts.map +1 -1
- package/dist/orchestration/channel-media.js +37 -7
- package/dist/orchestration/channel-media.js.map +1 -1
- package/dist/orchestration/context-footprint.d.ts +14 -0
- package/dist/orchestration/context-footprint.d.ts.map +1 -0
- package/dist/orchestration/context-footprint.js +57 -0
- package/dist/orchestration/context-footprint.js.map +1 -0
- package/dist/orchestration/conversation-intake.d.ts +1 -1
- package/dist/orchestration/conversation-intake.d.ts.map +1 -1
- package/dist/orchestration/conversation-intake.js +1 -1
- package/dist/orchestration/dashboard-reader-worker.d.ts +2 -0
- package/dist/orchestration/dashboard-reader-worker.d.ts.map +1 -0
- package/dist/orchestration/dashboard-reader-worker.js +155 -0
- package/dist/orchestration/dashboard-reader-worker.js.map +1 -0
- package/dist/orchestration/dashboard-reader.d.ts +15 -0
- package/dist/orchestration/dashboard-reader.d.ts.map +1 -0
- package/dist/orchestration/dashboard-reader.js +87 -0
- package/dist/orchestration/dashboard-reader.js.map +1 -0
- package/dist/orchestration/decision-context.d.ts +15 -0
- package/dist/orchestration/decision-context.d.ts.map +1 -0
- package/dist/orchestration/decision-context.js +57 -0
- package/dist/orchestration/decision-context.js.map +1 -0
- package/dist/orchestration/delivery.d.ts +3 -0
- package/dist/orchestration/delivery.d.ts.map +1 -1
- package/dist/orchestration/delivery.js +14 -5
- package/dist/orchestration/delivery.js.map +1 -1
- package/dist/orchestration/display-stream.d.ts +21 -2
- package/dist/orchestration/display-stream.d.ts.map +1 -1
- package/dist/orchestration/display-stream.js +61 -8
- package/dist/orchestration/display-stream.js.map +1 -1
- package/dist/orchestration/inference-errors.d.ts.map +1 -1
- package/dist/orchestration/inference-errors.js +56 -3
- package/dist/orchestration/inference-errors.js.map +1 -1
- package/dist/orchestration/mutation-recovery.d.ts +12 -0
- package/dist/orchestration/mutation-recovery.d.ts.map +1 -0
- package/dist/orchestration/mutation-recovery.js +41 -0
- package/dist/orchestration/mutation-recovery.js.map +1 -0
- package/dist/orchestration/native-compact.d.ts +5 -0
- package/dist/orchestration/native-compact.d.ts.map +1 -0
- package/dist/orchestration/native-compact.js +29 -0
- package/dist/orchestration/native-compact.js.map +1 -0
- package/dist/orchestration/notification-mailbox.d.ts +3 -1
- package/dist/orchestration/notification-mailbox.d.ts.map +1 -1
- package/dist/orchestration/notification-mailbox.js +4 -2
- package/dist/orchestration/notification-mailbox.js.map +1 -1
- package/dist/orchestration/process-turn.d.ts +15 -2
- package/dist/orchestration/process-turn.d.ts.map +1 -1
- package/dist/orchestration/process-turn.js +103 -16
- package/dist/orchestration/process-turn.js.map +1 -1
- package/dist/orchestration/progress-review.d.ts +8 -18
- package/dist/orchestration/progress-review.d.ts.map +1 -1
- package/dist/orchestration/progress-review.js +12 -14
- package/dist/orchestration/progress-review.js.map +1 -1
- package/dist/orchestration/provider-message.d.ts +7 -0
- package/dist/orchestration/provider-message.d.ts.map +1 -0
- package/dist/orchestration/provider-message.js +63 -0
- package/dist/orchestration/provider-message.js.map +1 -0
- package/dist/orchestration/response-errors.d.ts +6 -0
- package/dist/orchestration/response-errors.d.ts.map +1 -0
- package/dist/orchestration/response-errors.js +88 -0
- package/dist/orchestration/response-errors.js.map +1 -0
- package/dist/orchestration/response-schema.d.ts +33 -0
- package/dist/orchestration/response-schema.d.ts.map +1 -0
- package/dist/orchestration/response-schema.js +61 -0
- package/dist/orchestration/response-schema.js.map +1 -0
- package/dist/orchestration/runtime.d.ts +69 -0
- package/dist/orchestration/runtime.d.ts.map +1 -1
- package/dist/orchestration/runtime.js +347 -98
- package/dist/orchestration/runtime.js.map +1 -1
- package/dist/orchestration/skills.d.ts.map +1 -1
- package/dist/orchestration/skills.js +3 -2
- package/dist/orchestration/skills.js.map +1 -1
- package/dist/orchestration/source-policy.d.ts +1 -1
- package/dist/orchestration/source-policy.d.ts.map +1 -1
- package/dist/orchestration/source-policy.js +1 -1
- package/dist/orchestration/speech.d.ts +15 -17
- package/dist/orchestration/speech.d.ts.map +1 -1
- package/dist/orchestration/speech.js +90 -30
- package/dist/orchestration/speech.js.map +1 -1
- package/dist/orchestration/store.d.ts +19 -0
- package/dist/orchestration/store.d.ts.map +1 -1
- package/dist/orchestration/store.js +44 -1
- package/dist/orchestration/store.js.map +1 -1
- package/dist/orchestration/tasks/driver.d.ts.map +1 -1
- package/dist/orchestration/tasks/driver.js +8 -3
- package/dist/orchestration/tasks/driver.js.map +1 -1
- package/dist/orchestration/tasks/pool.d.ts.map +1 -1
- package/dist/orchestration/tasks/pool.js +8 -4
- package/dist/orchestration/tasks/pool.js.map +1 -1
- package/dist/orchestration/tasks/service.d.ts +48 -1
- package/dist/orchestration/tasks/service.d.ts.map +1 -1
- package/dist/orchestration/tasks/service.js +41 -17
- package/dist/orchestration/tasks/service.js.map +1 -1
- package/dist/orchestration/token-ledger.d.ts +125 -0
- package/dist/orchestration/token-ledger.d.ts.map +1 -0
- package/dist/orchestration/token-ledger.js +232 -0
- package/dist/orchestration/token-ledger.js.map +1 -0
- package/dist/orchestration/token-usage.d.ts +46 -0
- package/dist/orchestration/token-usage.d.ts.map +1 -0
- package/dist/orchestration/token-usage.js +102 -0
- package/dist/orchestration/token-usage.js.map +1 -0
- package/dist/orchestration/tool-activity.d.ts.map +1 -1
- package/dist/orchestration/tool-activity.js +5 -3
- package/dist/orchestration/tool-activity.js.map +1 -1
- package/dist/orchestration/tool-name.d.ts +10 -0
- package/dist/orchestration/tool-name.d.ts.map +1 -0
- package/dist/orchestration/tool-name.js +14 -0
- package/dist/orchestration/tool-name.js.map +1 -0
- package/dist/orchestration/transcript-checkpoint.d.ts +14 -0
- package/dist/orchestration/transcript-checkpoint.d.ts.map +1 -0
- package/dist/orchestration/transcript-checkpoint.js +83 -0
- package/dist/orchestration/transcript-checkpoint.js.map +1 -0
- package/dist/orchestration/unanswered-inputs.d.ts +6 -0
- package/dist/orchestration/unanswered-inputs.d.ts.map +1 -0
- package/dist/orchestration/unanswered-inputs.js +18 -0
- package/dist/orchestration/unanswered-inputs.js.map +1 -0
- package/dist/session/process.d.ts +10 -0
- package/dist/session/process.d.ts.map +1 -1
- package/dist/session/process.js +91 -9
- package/dist/session/process.js.map +1 -1
- package/dist/session/request-tool-capture.d.ts +31 -0
- package/dist/session/request-tool-capture.d.ts.map +1 -0
- package/dist/session/request-tool-capture.js +194 -0
- package/dist/session/request-tool-capture.js.map +1 -0
- package/dist/session/runtime-profile.d.ts +7 -3
- package/dist/session/runtime-profile.d.ts.map +1 -1
- package/dist/session/runtime-profile.js +3 -1
- package/dist/session/runtime-profile.js.map +1 -1
- package/dist/session/store.d.ts +7 -0
- package/dist/session/store.d.ts.map +1 -1
- package/dist/session/store.js +27 -0
- package/dist/session/store.js.map +1 -1
- package/dist/shell/tailer.d.ts +7 -5
- package/dist/shell/tailer.d.ts.map +1 -1
- package/dist/shell/tailer.js +6 -17
- package/dist/shell/tailer.js.map +1 -1
- package/dist/ui/cli-viewer-ui.js +1 -1
- package/dist/ui/dashboard-client.d.ts +3 -0
- package/dist/ui/dashboard-client.d.ts.map +1 -0
- package/dist/ui/dashboard-client.js +188 -0
- package/dist/ui/dashboard-client.js.map +1 -0
- package/dist/ui/dashboard-presentation.d.ts +9 -0
- package/dist/ui/dashboard-presentation.d.ts.map +1 -0
- package/dist/ui/dashboard-presentation.js +56 -0
- package/dist/ui/dashboard-presentation.js.map +1 -0
- package/dist/ui/dashboard-range.d.ts +5 -0
- package/dist/ui/dashboard-range.d.ts.map +1 -0
- package/dist/ui/dashboard-range.js +20 -0
- package/dist/ui/dashboard-range.js.map +1 -0
- package/dist/ui/dashboard-theme.d.ts +4 -0
- package/dist/ui/dashboard-theme.d.ts.map +1 -0
- package/dist/ui/dashboard-theme.js +485 -0
- package/dist/ui/dashboard-theme.js.map +1 -0
- package/dist/ui/token-report-client.d.ts +3 -0
- package/dist/ui/token-report-client.d.ts.map +1 -0
- package/dist/ui/token-report-client.js +34 -0
- package/dist/ui/token-report-client.js.map +1 -0
- package/dist/ui/token-report.d.ts +89 -0
- package/dist/ui/token-report.d.ts.map +1 -0
- package/dist/ui/token-report.js +200 -0
- package/dist/ui/token-report.js.map +1 -0
- package/dist/ui/web-ui.d.ts.map +1 -1
- package/dist/ui/web-ui.js +124 -181
- package/dist/ui/web-ui.js.map +1 -1
- package/dist/voice/replay.d.ts +8 -0
- package/dist/voice/replay.d.ts.map +1 -0
- package/dist/voice/replay.js +48 -0
- package/dist/voice/replay.js.map +1 -0
- package/dist/voice/session.d.ts +9 -0
- package/dist/voice/session.d.ts.map +1 -1
- package/dist/voice/session.js +72 -14
- package/dist/voice/session.js.map +1 -1
- package/mcp/lazy-connector.test.ts +58 -0
- package/mcp/lazy-connector.ts +67 -0
- package/mcp/lazy-tools.test.ts +152 -0
- package/mcp/lazy-tools.ts +41 -0
- package/mcp/server.ts +53 -34
- package/mcp/tools/discord/commands.ts +2 -0
- package/mcp/tools/discord/inbound.ts +1 -1
- package/mcp/tools/discord/receiver-server.ts +1 -1
- package/mcp/tools/discord/types.ts +1 -1
- package/mcp/tools/receiver-spool.test.ts +8 -2
- package/mcp/tools/receiver-spool.ts +198 -25
- package/mcp/tools/tasks/module.ts +1 -12
- package/mcp/tools/telegram/media-group.ts +3 -3
- package/mcp/tools/telegram/receiver-server.ts +15 -15
- package/mcp/types.ts +1 -1
- package/package.json +2 -1
- package/resource/dashboard/OFL.txt +93 -0
- package/resource/dashboard/poppins-300.woff2 +0 -0
- package/resource/dashboard/poppins-400.woff2 +0 -0
- package/resource/dashboard/poppins-500.woff2 +0 -0
- package/resource/dashboard/poppins-600.woff2 +0 -0
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dashboardFontLink = exports.dashboardTheme = void 0;
|
|
4
|
+
/** Shared tokens from the approved pastel dashboard direction. */
|
|
5
|
+
exports.dashboardTheme = String.raw `
|
|
6
|
+
:root{color-scheme:dark;--bg:#101113;--side:#141517;--panel:#181a1d;--raised:#202226;--line:#2b2e33;--text:#eeeef0;--muted:#989da7;--accent:#ff935c;--accentbg:#35261f;--green:#78d5aa;--greenbg:#1e3029;--blue:#8dbdff;--bluebg:#202c3f;--yellow:#ebc978;--yellowbg:#342e20;--red:#efa19e;--redbg:#362426;--shadow:0 24px 100px #0008;--radius:14px}
|
|
7
|
+
|
|
8
|
+
[data-theme=light]{color-scheme:light;--bg:#f5f5f4;--side:#fafaf9;--panel:#fff;--raised:#f0f1f2;--line:#e2e3e5;--text:#202226;--muted:#686d76;--accent:#b94815;--accentbg:#fff0e6;--green:#217451;--greenbg:#eaf7ef;--blue:#3264a7;--bluebg:#edf3fe;--yellow:#87621b;--yellowbg:#fff5de;--red:#a84140;--redbg:#fff0f0;--shadow:0 24px 100px #28282a22}
|
|
9
|
+
|
|
10
|
+
*{box-sizing:border-box}
|
|
11
|
+
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}
|
|
12
|
+
button,input,select{font:inherit}
|
|
13
|
+
button,a,input,select{ -webkit-tap-highlight-color:transparent}
|
|
14
|
+
button{cursor:pointer;color:inherit}
|
|
15
|
+
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
|
|
16
|
+
button{border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:8px 12px;display:inline-flex;gap:8px;align-items:center;justify-content:center}
|
|
17
|
+
button:hover{background:var(--raised)}
|
|
18
|
+
button:disabled{opacity:.4;cursor:not-allowed}
|
|
19
|
+
.primary{background:var(--accent);border-color:var(--accent);color:#1b130e;font-weight:650}
|
|
20
|
+
[data-theme=light] .primary{color:white}
|
|
21
|
+
.primary:hover{filter:brightness(1.08);background:var(--accent)}
|
|
22
|
+
.quiet{background:transparent;border-color:transparent}
|
|
23
|
+
.danger{color:var(--red)}
|
|
24
|
+
svg.icon{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
|
|
25
|
+
.small{font-size:12px}
|
|
26
|
+
.muted{color:var(--muted)}
|
|
27
|
+
.mono{font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}
|
|
28
|
+
.row{display:flex;align-items:center;gap:10px}
|
|
29
|
+
.between{justify-content:space-between}
|
|
30
|
+
.wrap{flex-wrap:wrap}
|
|
31
|
+
.gap{gap:16px}
|
|
32
|
+
h1,h2,h3,p{margin:0}
|
|
33
|
+
h1{font-size:30px;letter-spacing:-1px;font-weight:650;line-height:1.2}
|
|
34
|
+
h2{font-size:16px;letter-spacing:-.2px;font-weight:620}
|
|
35
|
+
h3{font-size:14px;font-weight:600}
|
|
36
|
+
a{color:var(--accent);text-decoration:none}
|
|
37
|
+
.layout{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}
|
|
38
|
+
.sidebar{background:var(--side);border-right:1px solid var(--line);padding:28px 16px 16px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:224px;z-index:20}
|
|
39
|
+
.brand{padding:0 10px 26px;gap:11px;line-height:1.2;letter-spacing:-.4px;font-size:16px;font-weight:680}
|
|
40
|
+
.brandmark{width:34px;height:34px;border-radius:10px;background:var(--accentbg);color:var(--accent);display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 20%,transparent)}
|
|
41
|
+
.brand small{display:block;font-size:11px;color:var(--muted);font-weight:450;letter-spacing:.8px;margin-top:5px}
|
|
42
|
+
.navlabel{font-size:10px;color:var(--muted);letter-spacing:1.4px;font-weight:650;margin:24px 12px 10px}
|
|
43
|
+
.nav{display:flex;flex-direction:column;gap:5px}
|
|
44
|
+
.nav button{justify-content:flex-start;border-color:transparent;background:transparent;color:var(--muted);padding:11px 12px;font-weight:520}
|
|
45
|
+
.nav button:hover{background:var(--raised);color:var(--text)}
|
|
46
|
+
.nav button.active{background:var(--accentbg);color:var(--accent)}
|
|
47
|
+
.count{margin-left:auto;background:var(--raised);padding:0px 7px;border-radius:5px;font-size:11px;color:var(--muted)}
|
|
48
|
+
.sidebarfoot{margin-top:auto;padding-top:28px}
|
|
49
|
+
.instance{border:1px solid var(--line);padding:13px;border-radius:10px}
|
|
50
|
+
.dot{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block;flex-shrink:0}
|
|
51
|
+
.main{grid-column:2;min-width:0}
|
|
52
|
+
.topbar{height:70px;padding:0 38px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:12px}
|
|
53
|
+
.breadcrumb{color:var(--muted);font-size:12px}
|
|
54
|
+
.breadcrumb span{margin-left:12px;color:var(--text)}
|
|
55
|
+
.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:6px;font-size:11px;white-space:nowrap;font-weight:550;background:var(--raised);color:var(--muted)}
|
|
56
|
+
.pill.green{color:var(--green);background:var(--greenbg)}
|
|
57
|
+
.pill.orange{color:var(--accent);background:var(--accentbg)}
|
|
58
|
+
.pill.blue{color:var(--blue);background:var(--bluebg)}
|
|
59
|
+
.pill.yellow{color:var(--yellow);background:var(--yellowbg)}
|
|
60
|
+
.pill.red{color:var(--red);background:var(--redbg)}
|
|
61
|
+
.page{max-width:1460px;margin:auto;padding:36px 38px 48px}
|
|
62
|
+
.heading{margin-bottom:26px}
|
|
63
|
+
.heading p{color:var(--muted);margin-top:9px}
|
|
64
|
+
.eyebrow{text-transform:uppercase;letter-spacing:1.6px;color:var(--accent);font-size:10px;font-weight:650;margin-bottom:10px}
|
|
65
|
+
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}
|
|
66
|
+
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0;overflow:hidden}
|
|
67
|
+
.stat{padding:20px}
|
|
68
|
+
.stat-label{color:var(--muted);font-size:12px}
|
|
69
|
+
.statvalue{font-size:30px;font-weight:600;letter-spacing:-.8px;margin:12px 0 6px;line-height:1.2}
|
|
70
|
+
.statvalue small{font-size:13px;font-weight:450;letter-spacing:0;color:var(--muted)}
|
|
71
|
+
.stat-foot{font-size:11px;color:var(--muted)}
|
|
72
|
+
.spark{width:70px;height:26px;fill:none;stroke:var(--green);stroke-width:1.7}
|
|
73
|
+
.columns{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:22px}
|
|
74
|
+
.cardhead{padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:12px}
|
|
75
|
+
.cardhead p{color:var(--muted);font-size:12px;margin-top:4px}
|
|
76
|
+
.padded{padding:0 22px 22px}
|
|
77
|
+
.chart{position:relative}
|
|
78
|
+
.chart svg{display:block;width:100%;height:175px}
|
|
79
|
+
.legend{display:flex;gap:17px;font-size:11px;color:var(--muted)}
|
|
80
|
+
.legend i{display:inline-block;width:7px;height:7px;border-radius:3px;background:var(--accent);margin-right:5px}
|
|
81
|
+
.chartlabels{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin-top:9px}
|
|
82
|
+
.notice{background:var(--yellowbg);border:1px solid color-mix(in srgb,var(--yellow) 20%,transparent);padding:15px;border-radius:10px}
|
|
83
|
+
.notice p{font-size:12px;margin:7px 0 12px;color:var(--muted)}
|
|
84
|
+
.separator{height:1px;background:var(--line);margin:20px 0}
|
|
85
|
+
.stack{display:grid;gap:12px}
|
|
86
|
+
.activity{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}
|
|
87
|
+
.activity:last-child{border:0}
|
|
88
|
+
.avatar{height:32px;width:32px;border-radius:9px;background:var(--bluebg);color:var(--blue);display:grid;place-items:center;font-size:12px;font-weight:600;flex-shrink:0}
|
|
89
|
+
.avatar.orange{background:var(--accentbg);color:var(--accent)}
|
|
90
|
+
.activity p{font-size:12px;color:var(--muted);margin-top:4px}
|
|
91
|
+
.activity time{margin-left:auto;font-size:10px;color:var(--muted);white-space:nowrap}
|
|
92
|
+
.section{margin-top:24px}
|
|
93
|
+
.tablewrap{overflow:auto}
|
|
94
|
+
table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}
|
|
95
|
+
th{font-size:10px;color:var(--muted);font-weight:550;letter-spacing:.6px;text-transform:uppercase;padding:11px 22px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--raised) 35%,transparent)}
|
|
96
|
+
td{padding:15px 22px;border-bottom:1px solid var(--line);font-size:12px}
|
|
97
|
+
tbody tr:last-child td{border:0}
|
|
98
|
+
tbody tr[data-detail]{cursor:pointer}
|
|
99
|
+
tbody tr[data-detail]:hover{background:var(--raised)}
|
|
100
|
+
td strong{font-weight:550}
|
|
101
|
+
td small{display:block;color:var(--muted);font-size:11px;margin-top:4px}
|
|
102
|
+
.tablefoot{padding:13px 22px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}
|
|
103
|
+
.bar{height:6px;background:var(--raised);border-radius:4px;overflow:hidden}
|
|
104
|
+
.bar span{display:block;height:100%;background:var(--accent);border-radius:4px}
|
|
105
|
+
.progressrow{margin-bottom:19px}
|
|
106
|
+
.progressrow .row{margin-bottom:8px;font-size:12px}
|
|
107
|
+
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:24px}
|
|
108
|
+
.tabs button{border:none;background:transparent;border-radius:0;color:var(--muted);padding:12px 14px;border-bottom:2px solid transparent}
|
|
109
|
+
.tabs button.selected{color:var(--accent);border-bottom-color:var(--accent)}
|
|
110
|
+
input,select{border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:9px 12px;min-width:0}
|
|
111
|
+
.search{max-width:320px;width:100%}
|
|
112
|
+
.filters{margin-bottom:18px}
|
|
113
|
+
.empty{text-align:center;color:var(--muted);padding:40px}
|
|
114
|
+
.token-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
|
|
115
|
+
.swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
|
|
116
|
+
.swatch{height:58px;border:1px solid var(--line);border-radius:9px;margin-bottom:8px}
|
|
117
|
+
.swatches p{font-size:11px}
|
|
118
|
+
.swatches code{font-size:10px;color:var(--muted)}
|
|
119
|
+
.spec{padding:22px}
|
|
120
|
+
.spec h2{margin-bottom:8px}
|
|
121
|
+
.spec>p{color:var(--muted);font-size:12px;margin-bottom:20px}
|
|
122
|
+
.type-line{border-bottom:1px solid var(--line);padding:12px 0;display:flex;justify-content:space-between;gap:20px;align-items:center}
|
|
123
|
+
.type-line:last-child{border:0}
|
|
124
|
+
.type-line code{color:var(--muted);font-size:11px}
|
|
125
|
+
.designgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
|
|
126
|
+
.timeline{border-left:1px solid var(--line);margin-left:7px;padding-left:22px}
|
|
127
|
+
.step{padding-bottom:26px;position:relative}
|
|
128
|
+
.step:before{content:'';position:absolute;left:-27px;top:6px;width:8px;height:8px;border-radius:100%;background:var(--blue);border:2px solid var(--panel)}
|
|
129
|
+
.step p{color:var(--muted);font-size:12px;margin-top:6px}
|
|
130
|
+
.code{font:12px/1.6 ui-monospace,SFMono-Regular,monospace;background:var(--bg);border:1px solid var(--line);padding:12px;border-radius:8px;white-space:pre-wrap;margin-top:12px}
|
|
131
|
+
.drawerback{position:fixed;inset:0;background:#0006;z-index:50;display:none}
|
|
132
|
+
.drawerback.open{display:block}
|
|
133
|
+
.drawer{position:absolute;right:0;top:0;bottom:0;width:min(540px,100%);background:var(--panel);border-left:1px solid var(--line);box-shadow:var(--shadow);padding:26px;overflow:auto}
|
|
134
|
+
.drawer h1{font-size:24px;margin:24px 0 10px}
|
|
135
|
+
.drawer .pill{margin-bottom:24px}
|
|
136
|
+
.drawer dl{display:grid;grid-template-columns:100px 1fr;font-size:12px;gap:10px;margin:20px 0}
|
|
137
|
+
.drawer dt{color:var(--muted)}
|
|
138
|
+
.drawer dd{margin:0}
|
|
139
|
+
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 18px;background:var(--raised);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);z-index:100;display:none}
|
|
140
|
+
.preview{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:4px 8px;letter-spacing:.3px}
|
|
141
|
+
.mobilemenu{display:none}
|
|
142
|
+
.footer{display:flex;justify-content:space-between;margin-top:28px;color:var(--muted);font-size:10px}
|
|
143
|
+
.metric-note{border-left:2px solid var(--accent);padding-left:12px;font-size:12px;color:var(--muted);margin-top:20px}
|
|
144
|
+
.ds-spaces{display:flex;align-items:end;gap:20px;min-height:70px}
|
|
145
|
+
.ds-spaces span{display:block;background:var(--accentbg);border-top:2px solid var(--accent);width:28px}
|
|
146
|
+
.ds-spaces small{display:block;margin-top:8px;color:var(--muted);font-size:10px}
|
|
147
|
+
button.link{padding:0;border:0;background:none;color:var(--accent);font-size:12px}
|
|
148
|
+
.statuslist>.row{padding:14px 0;border-bottom:1px solid var(--line)}
|
|
149
|
+
.statuslist>.row:last-child{border:0}
|
|
150
|
+
.keycap{border:1px solid var(--line);padding:1px 5px;border-radius:4px;font-size:10px}
|
|
151
|
+
.memoryrow{padding:20px;border:1px solid var(--line);border-radius:10px;margin-bottom:12px}
|
|
152
|
+
.memoryrow p{color:var(--muted);font-size:12px;margin-top:5px}
|
|
153
|
+
|
|
154
|
+
@media(min-width:1600px){.page{padding-top:44px}
|
|
155
|
+
}
|
|
156
|
+
@media(max-width:1100px){.columns{grid-template-columns:1fr}
|
|
157
|
+
.stats{grid-template-columns:repeat(2,1fr)}
|
|
158
|
+
.page{padding:28px 24px}
|
|
159
|
+
.topbar{padding:0 24px}
|
|
160
|
+
.designgrid{grid-template-columns:1fr}
|
|
161
|
+
}
|
|
162
|
+
@media(max-width:760px){.layout{grid-template-columns:1fr}
|
|
163
|
+
.main{grid-column:1}
|
|
164
|
+
.sidebar{transform:translateX(-100%);box-shadow:var(--shadow)}
|
|
165
|
+
body.menuopen .sidebar{transform:translateX(0)}
|
|
166
|
+
.mobilemenu{display:inline-flex}
|
|
167
|
+
.topbar{padding:0 16px;height:62px}
|
|
168
|
+
.breadcrumb{display:none}
|
|
169
|
+
.page{padding:24px 16px}
|
|
170
|
+
.heading{align-items:flex-start}
|
|
171
|
+
.heading h1{font-size:26px}
|
|
172
|
+
.heading>.row{flex-wrap:wrap}
|
|
173
|
+
.stats{gap:10px}
|
|
174
|
+
.stat{padding:16px}
|
|
175
|
+
.statvalue{font-size:26px}
|
|
176
|
+
.token-grid{grid-template-columns:1fr}
|
|
177
|
+
.swatches{grid-template-columns:repeat(2,1fr)}
|
|
178
|
+
.preview{max-width:150px;text-align:center}
|
|
179
|
+
.footer{gap:12px}
|
|
180
|
+
.filters{flex-wrap:wrap}
|
|
181
|
+
.cardhead{padding:18px}
|
|
182
|
+
.topbar .pill{display:none}
|
|
183
|
+
}
|
|
184
|
+
@media(prefers-reduced-motion:no-preference){button,.sidebar{transition:background .15s,transform .2s}
|
|
185
|
+
.page{animation:reveal .22s ease}
|
|
186
|
+
@keyframes reveal{from{opacity:.5;transform:translateY(4px)}
|
|
187
|
+
to{opacity:1;transform:none}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
/* V3: a white workspace with violet controls and pastel category surfaces. */
|
|
193
|
+
:root,[data-theme=light]{color-scheme:light;--bg:#f5f6f8;--side:#fff;--panel:#fff;--raised:#f5f6f8;--line:#dddfeb;--text:#333;--muted:#535768;--accent:#6161ff;--accentbg:#e7ecff;--green:#226149;--greenbg:#e5f6dc;--blue:#355a80;--bluebg:#dff4fc;--yellow:#785622;--yellowbg:#fff0d8;--red:#9c405d;--redbg:#fce8ef;--shadow:0 12px 42px #35386612;--radius:24px;--mint:#e2f8d3;--sky:#dff6ff;--peach:#fff0e3;--lavender:#eddff7;--pink:#fbe0ef;--prism:conic-gradient(#8181ff,#4dc2cb,#a5db88,#f8e094,#f3a0d2,#8181ff)}
|
|
194
|
+
|
|
195
|
+
[data-theme=dark]{color-scheme:dark;--bg:#171824;--side:#1d1f2e;--panel:#222536;--raised:#2a2e42;--line:#393e57;--text:#f1f1f8;--muted:#b2b7cc;--accent:#a5a5ff;--accentbg:#353858;--green:#abd8b3;--greenbg:#293e33;--blue:#adcce9;--bluebg:#2b3b51;--yellow:#e4c792;--yellowbg:#443b2a;--red:#f1afc3;--redbg:#473044;--shadow:0 12px 42px #0002;--mint:#263b30;--sky:#253a4b;--peach:#423328;--lavender:#3a2f4b;--pink:#412a3b}
|
|
196
|
+
|
|
197
|
+
body{font-family:Poppins,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:13px;letter-spacing:-.01em}
|
|
198
|
+
h1{font-size:44px;line-height:1.2;letter-spacing:-.035em;font-weight:400}
|
|
199
|
+
h2{font-size:17px;font-weight:500;letter-spacing:-.02em}
|
|
200
|
+
h3{font-weight:500}
|
|
201
|
+
.mono{font-variant-numeric:tabular-nums}
|
|
202
|
+
.layout{grid-template-columns:242px minmax(0,1fr)}
|
|
203
|
+
.sidebar{width:242px;padding:30px 18px 18px}
|
|
204
|
+
.brand{font-size:15px;font-weight:600;padding:0 8px 24px;gap:10px}
|
|
205
|
+
.brandmark{border:0;border-radius:12px;background:var(--prism);color:#333;width:35px;height:35px}
|
|
206
|
+
.brand small{font-size:9px;letter-spacing:1.1px;margin-top:6px}
|
|
207
|
+
.navlabel{font-weight:500;letter-spacing:1.5px;font-size:9px;margin-top:28px}
|
|
208
|
+
.nav{gap:6px}
|
|
209
|
+
.nav button{font-size:12px;font-weight:500;padding:12px 13px;border-radius:8px}
|
|
210
|
+
.nav button.active{background:var(--accentbg);color:var(--accent)}
|
|
211
|
+
.count{font-size:10px;border-radius:6px;background:var(--raised)}
|
|
212
|
+
.instance{border-radius:16px;background:var(--raised);border:0;padding:16px}
|
|
213
|
+
.avatar{border-radius:10px}
|
|
214
|
+
.topbar{height:80px;background:var(--panel);border:0;padding:0 36px}
|
|
215
|
+
.preview{border-radius:6px;padding:5px 9px;font-size:9px}
|
|
216
|
+
.breadcrumb{font-size:11px}
|
|
217
|
+
.page{max-width:1440px;padding:34px 36px 44px}
|
|
218
|
+
.heading{margin-bottom:28px;gap:20px}
|
|
219
|
+
.heading p{font-size:13px;line-height:1.7;max-width:690px;margin-top:13px}
|
|
220
|
+
.eyebrow{font-size:9px;letter-spacing:1.6px;color:var(--muted);font-weight:500;margin-bottom:12px}
|
|
221
|
+
.gradient-title{background:linear-gradient(95deg,#398ca8,#6161ff 58%,#8950ca);background-clip:text;-webkit-background-clip:text;color:transparent}
|
|
222
|
+
.heading>button{flex-shrink:0}
|
|
223
|
+
|
|
224
|
+
button{border-radius:160px;padding:10px 17px;font-size:12px;font-weight:500;min-height:38px}
|
|
225
|
+
.primary,[data-theme=light] .primary{color:#fff;background:#6161ff;border-color:#6161ff}
|
|
226
|
+
.primary:hover{background:#5050e7;filter:none}
|
|
227
|
+
.quiet{border-color:transparent}
|
|
228
|
+
.danger{color:var(--red)}
|
|
229
|
+
button.link{font-size:11px;min-height:32px}
|
|
230
|
+
.pill{border-radius:6px;font-size:10px;padding:5px 9px;font-weight:500}
|
|
231
|
+
.pill.orange{background:var(--accentbg);color:var(--accent)}
|
|
232
|
+
.pill.green{background:var(--greenbg)}
|
|
233
|
+
|
|
234
|
+
.stats{gap:16px;margin-bottom:28px}
|
|
235
|
+
.stats .stat{border:0;padding:24px;border-radius:24px}
|
|
236
|
+
.stats .stat:nth-child(1){background:var(--mint)}
|
|
237
|
+
.stats .stat:nth-child(2){background:var(--sky)}
|
|
238
|
+
.stats .stat:nth-child(3){background:var(--lavender)}
|
|
239
|
+
.stats .stat:nth-child(4){background:var(--peach)}
|
|
240
|
+
.stat-label{font-size:11px;color:var(--text)}
|
|
241
|
+
.stat .icon{width:17px;height:17px;color:var(--text);opacity:.65}
|
|
242
|
+
.statvalue{font-size:36px;font-weight:400;letter-spacing:-.03em;margin:13px 0 9px}
|
|
243
|
+
.statvalue small{font-size:12px}
|
|
244
|
+
.stat-foot{font-size:10px;line-height:1.7}
|
|
245
|
+
.spark{width:48px;stroke:var(--text);opacity:.5}
|
|
246
|
+
.columns{gap:24px;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr)}
|
|
247
|
+
.card{box-shadow:0 3px 14px #35386604}
|
|
248
|
+
.cardhead{padding:24px}
|
|
249
|
+
.cardhead p{font-size:11px;line-height:1.7}
|
|
250
|
+
.padded{padding:0 24px 24px}
|
|
251
|
+
.notice{background:var(--peach);border:0;border-radius:16px;padding:20px}
|
|
252
|
+
.notice p{font-size:12px;line-height:1.8;margin:10px 0 16px}
|
|
253
|
+
.notice button{background:#6161ff;color:white;border-color:#6161ff}
|
|
254
|
+
.separator{margin:22px 0}
|
|
255
|
+
.metric-note{font-size:11px;border-left:2px solid var(--accentbg);line-height:1.7}
|
|
256
|
+
.chart svg{height:180px}
|
|
257
|
+
.legend{font-size:10px}
|
|
258
|
+
.chartlabels{font-size:9px}
|
|
259
|
+
.section{margin-top:26px}
|
|
260
|
+
th{font-size:9px;padding:13px 24px;background:var(--raised);letter-spacing:.6px}
|
|
261
|
+
td{padding:18px 24px;font-size:11px}
|
|
262
|
+
td strong{font-weight:500}
|
|
263
|
+
td small{font-size:10px}
|
|
264
|
+
.tablefoot{padding:14px 24px;font-size:10px}
|
|
265
|
+
tbody tr[data-detail]:hover{background:var(--accentbg)}
|
|
266
|
+
.tabs{gap:6px;border:0;flex-wrap:wrap}
|
|
267
|
+
.tabs button{border:1px solid var(--line);border-radius:160px;padding:9px 16px}
|
|
268
|
+
.tabs button.selected{color:white;background:#6161ff;border-color:#6161ff}
|
|
269
|
+
input,select{border-radius:6px;padding:10px 13px;font-size:12px}
|
|
270
|
+
.spec{padding:26px}
|
|
271
|
+
.spec>p{font-size:12px;line-height:1.75}
|
|
272
|
+
.swatch{border-radius:12px;height:68px}
|
|
273
|
+
.type-line{flex-wrap:wrap}
|
|
274
|
+
.type-line code{white-space:nowrap}
|
|
275
|
+
.ds-spaces{flex-wrap:wrap}
|
|
276
|
+
.drawer{padding:30px}
|
|
277
|
+
.drawer h1{font-size:28px;font-weight:400;line-height:1.35}
|
|
278
|
+
.drawer dd{overflow-wrap:anywhere}
|
|
279
|
+
.drawer .pill{margin-bottom:16px}
|
|
280
|
+
.drawer .code{background:var(--raised);border-radius:12px;border:0;padding:16px}
|
|
281
|
+
.footer{font-size:10px;line-height:1.6}
|
|
282
|
+
.page{animation:none}
|
|
283
|
+
.design-link{text-decoration:underline;text-underline-offset:4px;font-size:12px}
|
|
284
|
+
.board-sample{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}
|
|
285
|
+
.note{border-radius:16px;min-height:110px;padding:16px;background:var(--mint);font-size:12px;color:var(--text)}
|
|
286
|
+
.note:nth-child(2){background:var(--sky)}
|
|
287
|
+
.note:nth-child(3){background:var(--lavender)}
|
|
288
|
+
.note .icon{margin-bottom:12px;display:block}
|
|
289
|
+
.memoryrow{border-radius:16px}
|
|
290
|
+
.toast{border-radius:160px}
|
|
291
|
+
|
|
292
|
+
@media(max-width:1150px){.columns{grid-template-columns:1fr}
|
|
293
|
+
.page{padding:28px}
|
|
294
|
+
.topbar{padding:0 28px}
|
|
295
|
+
.stats{grid-template-columns:repeat(2,minmax(0,1fr))}
|
|
296
|
+
.designgrid{grid-template-columns:1fr}
|
|
297
|
+
.heading h1{font-size:38px}
|
|
298
|
+
}
|
|
299
|
+
@media(max-width:760px){.layout{grid-template-columns:1fr}
|
|
300
|
+
.main{grid-column:1}
|
|
301
|
+
.page{padding:24px 16px}
|
|
302
|
+
.topbar{padding:0 16px;height:64px}
|
|
303
|
+
.heading h1{font-size:34px}
|
|
304
|
+
.stats{gap:12px}
|
|
305
|
+
.stats .stat{padding:18px;border-radius:20px}
|
|
306
|
+
.statvalue{font-size:28px}
|
|
307
|
+
.stat-label{font-size:10px}
|
|
308
|
+
.spark{display:none}
|
|
309
|
+
.cardhead{padding:20px;flex-wrap:wrap}
|
|
310
|
+
.padded{padding:0 20px 22px}
|
|
311
|
+
.spec{padding:22px}
|
|
312
|
+
.columns{grid-template-columns:minmax(0,1fr)}
|
|
313
|
+
.designgrid{grid-template-columns:minmax(0,1fr)}
|
|
314
|
+
.preview{max-width:175px}
|
|
315
|
+
.drawer{padding:22px}
|
|
316
|
+
.token-grid{grid-template-columns:1fr}
|
|
317
|
+
.footer,.tablefoot{flex-wrap:wrap;gap:12px}
|
|
318
|
+
.board-sample{grid-template-columns:1fr}
|
|
319
|
+
.heading>button{align-self:flex-start}
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
body{padding:0}
|
|
325
|
+
.rainbow{background:none;-webkit-text-fill-color:var(--text);animation:none}
|
|
326
|
+
.shell-content{padding:32px 36px;max-width:1600px;margin:auto}
|
|
327
|
+
.sidebar .tabs{display:flex;flex-direction:column;border:0;margin:0;gap:6px}
|
|
328
|
+
.sidebar .tab{justify-content:flex-start;border:0;border-radius:8px;background:none;color:var(--muted);padding:12px 14px;font-size:12px}
|
|
329
|
+
.sidebar .tab.active{background:var(--accentbg);color:var(--accent)}
|
|
330
|
+
.sidebar .tab:focus-visible{outline:2px solid var(--accent)}
|
|
331
|
+
.topbar h1{font-size:16px;letter-spacing:0}
|
|
332
|
+
.meta{margin:0;font-size:11px;color:var(--muted)}
|
|
333
|
+
.meta span{color:var(--text)}
|
|
334
|
+
#top-right{float:none;display:flex;align-items:center;gap:12px}
|
|
335
|
+
#logout-btn{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:160px;padding:8px 16px}
|
|
336
|
+
#refresh-indicator{color:var(--muted);font-size:10px}
|
|
337
|
+
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:24px;background:var(--panel)}
|
|
338
|
+
table{margin:0;white-space:normal}
|
|
339
|
+
th{background:var(--raised);color:var(--muted);border-color:var(--line)}
|
|
340
|
+
td,tr.session-row td{background:transparent;color:var(--text);border-color:var(--line)}
|
|
341
|
+
tr.session-row:hover td{background:var(--raised)}
|
|
342
|
+
.ts{color:var(--muted);overflow-wrap:anywhere}
|
|
343
|
+
.session-id{font-size:11px;overflow-wrap:anywhere;font-family:ui-monospace,monospace}
|
|
344
|
+
.badge{border-radius:6px;font-size:10px;font-weight:500}
|
|
345
|
+
.badge-green,.badge-haiku{background:var(--greenbg);color:var(--green)}
|
|
346
|
+
.badge-red{background:var(--redbg);color:var(--red)}
|
|
347
|
+
.badge-gray,.badge-model{background:var(--raised);color:var(--muted)}
|
|
348
|
+
.badge-blue,.badge-sonnet{background:var(--bluebg);color:var(--blue)}
|
|
349
|
+
.badge-purple,.badge-opus,.badge-fable{background:var(--accentbg);color:var(--accent)}
|
|
350
|
+
.btn-stream{border:1px solid var(--line);border-radius:160px;padding:7px 12px;color:var(--accent);background:var(--panel);font-size:11px;display:inline-flex;align-items:center;gap:6px}
|
|
351
|
+
.agent-badge{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:12px}
|
|
352
|
+
.agent-name{color:var(--text)}
|
|
353
|
+
.proc-tree{background:var(--panel);border:1px solid var(--line);border-radius:24px;color:var(--text);padding:20px;overflow:auto}
|
|
354
|
+
.proc-row{color:var(--text)}
|
|
355
|
+
.kb-toolbar,.dreams-toolbar{background:var(--panel);color:var(--text);border-color:var(--line);padding:16px;border-radius:16px}
|
|
356
|
+
.kb-toolbar input,.kb-toolbar select,.dreams-toolbar select{background:var(--panel);color:var(--text);border-color:var(--line)}
|
|
357
|
+
.kb-container{background:var(--panel);border-color:var(--line)}
|
|
358
|
+
.kb-note,.dream-card{background:var(--panel);color:var(--text);border-color:var(--line)}
|
|
359
|
+
.empty{padding:32px;text-align:center;color:var(--muted)}
|
|
360
|
+
.dash-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}
|
|
361
|
+
.dash-stat{padding:24px;border-radius:24px;background:var(--mint)}
|
|
362
|
+
.dash-stat:nth-child(2){background:var(--sky)}
|
|
363
|
+
.dash-stat:nth-child(3){background:var(--lavender)}
|
|
364
|
+
.dash-stat:nth-child(4){background:var(--peach)}
|
|
365
|
+
/* Hard-locked summary-box colors, bound to the box by label (not by index) so
|
|
366
|
+
each box keeps its own color regardless of ordering or theme/state cycling. */
|
|
367
|
+
.cards .card.box-agent,.session-token-totals .dash-stat.box-agent{background:var(--mint)}
|
|
368
|
+
.cards .card.box-worker,.session-token-totals .dash-stat.box-worker{background:var(--sky)}
|
|
369
|
+
.cards .card.box-total,.session-token-totals .dash-stat.box-total{background:var(--lavender)}
|
|
370
|
+
.cards .card.box-context,.session-token-totals .dash-stat.box-context{background:var(--pink)}
|
|
371
|
+
.dash-stat strong{display:block;font-size:32px;font-weight:400;margin-top:12px}
|
|
372
|
+
.dash-stat span{font-size:11px}.card-cached{display:block;font-size:12px;font-weight:400;margin-top:6px;color:var(--muted);flex-basis:100%}.dash-drawer .session-token-totals{grid-template-columns:repeat(3,minmax(0,1fr))}.session-token-totals .dash-stat{padding:18px}.session-token-totals .dash-stat strong{font-size:28px}@media(max-width:520px){.dash-drawer .session-token-totals{grid-template-columns:1fr}.session-token-totals .dash-stat{display:flex;align-items:center;justify-content:space-between;gap:12px}.session-token-totals .dash-stat strong{margin-top:0}}
|
|
373
|
+
.dash-panel{background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:24px;margin:24px 0}
|
|
374
|
+
.dash-panel h2{margin:0 0 16px;color:var(--text)}
|
|
375
|
+
.view>h2{margin:0 0 18px;color:var(--text)}
|
|
376
|
+
.dash-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 0;color:var(--muted);font-size:11px}
|
|
377
|
+
.dash-drawer-back{display:none;position:fixed;inset:0;z-index:100;background:#22253655}
|
|
378
|
+
.dash-drawer-back.open{display:block}
|
|
379
|
+
.dash-drawer{background:var(--panel);position:absolute;inset:0 0 0 auto;width:min(800px,100%);padding:28px;overflow:auto;box-shadow:var(--shadow)}
|
|
380
|
+
.dash-drawer h1{font-size:26px;margin:22px 0 10px}
|
|
381
|
+
.dash-drawer h2{margin:24px 0 12px;color:var(--text)}
|
|
382
|
+
.dash-drawer pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--raised);padding:16px;border-radius:12px;font:12px/1.7 ui-monospace,monospace;max-height:480px;overflow:auto}
|
|
383
|
+
.dash-drawer details{border-bottom:1px solid var(--line);padding:16px 0}
|
|
384
|
+
.dash-drawer summary{cursor:pointer}.dash-drawer .turn-disclosure{padding:14px;border:1px solid var(--line)}.turn-disclosure>summary{font-size:13px;font-weight:600;line-height:1.6;overflow-wrap:anywhere}.turn-disclosure[open]>summary{margin-bottom:14px}.turn-disclosure>summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}
|
|
385
|
+
.dash-drawer p{overflow-wrap:anywhere}
|
|
386
|
+
.dash-drawer dl{display:grid;grid-template-columns:130px minmax(0,1fr);gap:10px;font-size:12px}
|
|
387
|
+
.dash-drawer dd{margin:0;overflow-wrap:anywhere}
|
|
388
|
+
.dash-drawer dt{color:var(--muted)}
|
|
389
|
+
.dash-task-title{font-weight:500;color:var(--text)}
|
|
390
|
+
.dash-tools{max-width:230px;overflow-wrap:anywhere}
|
|
391
|
+
.dash-tools summary{white-space:nowrap}
|
|
392
|
+
.dash-tools .ts{display:block;max-height:180px;overflow:auto}
|
|
393
|
+
.dash-page-title{margin:0 0 12px}
|
|
394
|
+
.dash-subtitle{color:var(--muted);line-height:1.7}
|
|
395
|
+
.dash-filter{margin:18px 0;display:flex;gap:12px;flex-wrap:wrap}
|
|
396
|
+
.dash-filter input{flex:1;min-width:160px;max-width:380px}
|
|
397
|
+
.error{background:var(--yellowbg);color:var(--yellow);border-radius:12px;padding:16px}
|
|
398
|
+
.live-note{font-size:11px;color:var(--muted);margin:18px 0}
|
|
399
|
+
.dash-mini-list{display:grid;gap:12px}.session-task-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--line)}.session-task-row:last-child{border-bottom:0}.session-task-title{flex:1 1 260px;min-width:0;overflow-wrap:anywhere;font-size:13px;line-height:1.6;font-weight:500}.session-task-row>.status-badge{flex:0 0 auto;margin-top:1px}.session-tasks .dash-mini-list{gap:0}
|
|
400
|
+
.dash-mini-list button{border-radius:12px;text-align:left;justify-content:space-between;width:100%}
|
|
401
|
+
.top-grid{display:block}
|
|
402
|
+
.top-grid>div{margin-bottom:24px}
|
|
403
|
+
.pty-viewer{margin:24px 0}
|
|
404
|
+
.theme-toggle{padding:8px 12px}
|
|
405
|
+
#dash-menu{display:none;align-items:center;justify-content:center;width:36px;height:36px;padding:8px;flex:none}
|
|
406
|
+
#dash-menu .icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}
|
|
407
|
+
#dashboard-sidebar,#sidebar-brand{cursor:pointer}
|
|
408
|
+
#sidebar-brand:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}
|
|
409
|
+
@media(min-width:761px){
|
|
410
|
+
[data-sidebar-collapsed=true] .layout{grid-template-columns:76px minmax(0,1fr)}
|
|
411
|
+
[data-sidebar-collapsed=true] .sidebar{width:76px;padding:30px 10px 18px}
|
|
412
|
+
[data-sidebar-collapsed=true] .sidebar .brand{padding:0 0 24px;justify-content:center}
|
|
413
|
+
[data-sidebar-collapsed=true] .sidebar .brand>div:not(.brandmark),[data-sidebar-collapsed=true] .sidebar .navlabel,[data-sidebar-collapsed=true] .sidebar .sidebarfoot{display:none}
|
|
414
|
+
[data-sidebar-collapsed=true] .sidebar .tab{justify-content:center;font-size:0;padding:14px 0;gap:0}
|
|
415
|
+
[data-sidebar-collapsed=true] .sidebar .tab .icon{width:20px;height:20px;flex:none}
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
.sidebarfoot{font-size:11px;color:var(--muted)}
|
|
419
|
+
|
|
420
|
+
@media(max-width:1100px){.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
|
|
421
|
+
}
|
|
422
|
+
@media(max-width:760px){#dash-menu{display:inline-flex}.shell-content{padding:24px 16px}
|
|
423
|
+
.dash-grid{gap:12px}
|
|
424
|
+
.dash-stat{padding:18px}
|
|
425
|
+
.dash-stat strong{font-size:26px}
|
|
426
|
+
.meta{display:none}
|
|
427
|
+
.topbar{gap:6px}
|
|
428
|
+
.topbar h1{font-size:13px}
|
|
429
|
+
#top-right{gap:6px}
|
|
430
|
+
#refresh-indicator{max-width:88px}
|
|
431
|
+
.dash-drawer{padding:22px}
|
|
432
|
+
.dash-pager{flex-wrap:wrap}
|
|
433
|
+
.sidebar{z-index:90}
|
|
434
|
+
.topbar .mobilemenu{z-index:91}
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
/* Shared operational components: bounded columns and theme-aware legacy panels. */
|
|
439
|
+
[hidden]{display:none!important}
|
|
440
|
+
.identity-badge{display:inline-flex;align-items:center;max-width:100%;padding:4px 9px;border-radius:7px;font-size:11px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:hsl(var(--agent-hue) 60% 94%);color:hsl(var(--agent-hue) 55% 30%);border:1px solid hsl(var(--agent-hue) 45% 85%)}
|
|
441
|
+
[data-theme=dark] .identity-badge{background:hsl(var(--agent-hue) 30% 21%);color:hsl(var(--agent-hue) 65% 80%);border-color:hsl(var(--agent-hue) 30% 35%)}
|
|
442
|
+
.channel-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);white-space:nowrap;margin-top:6px}
|
|
443
|
+
.channel-badge svg{width:14px;height:14px;flex:none;fill:currentColor}
|
|
444
|
+
.table-wrap,.table-scroll{width:100%;max-width:100%;overflow:auto;overscroll-behavior-x:contain;scrollbar-gutter:auto}
|
|
445
|
+
.data-table{table-layout:fixed;width:100%;white-space:normal}
|
|
446
|
+
.data-table td,.data-table th{padding:14px 16px;vertical-align:top;word-break:normal;overflow-wrap:break-word;font-size:12px}
|
|
447
|
+
.data-table th{font-size:10px;white-space:normal}
|
|
448
|
+
.data-table .btn-stream{font-size:11px;white-space:nowrap;padding:7px 10px}
|
|
449
|
+
.data-table .dash-task-title{white-space:normal;text-align:left;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;border:0;background:none;padding:0;font-size:12px;line-height:1.6;border-radius:0;margin-bottom:8px}
|
|
450
|
+
.cell-clip{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
|
|
451
|
+
.short-id{font:11px ui-monospace,monospace;white-space:nowrap;color:var(--muted)}
|
|
452
|
+
.data-table .session-id{word-break:normal;overflow-wrap:normal;font-family:inherit}
|
|
453
|
+
.data-table .ts{font-size:10px;line-height:1.6;color:var(--muted)}
|
|
454
|
+
.data-table td{font-variant-numeric:tabular-nums}
|
|
455
|
+
.dash-tools details{font-size:11px}.dash-tools details[open]{max-width:100%}
|
|
456
|
+
.dash-tools .ts{white-space:normal;overflow-wrap:anywhere}
|
|
457
|
+
.kb-toolbar,.dream-run,.dream-prop,.proc-tree{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:14px;padding:16px}
|
|
458
|
+
.kb-toolbar{gap:14px;align-items:center;flex-wrap:wrap}
|
|
459
|
+
.kb-toolbar button,.kb-zoom button,.dream-accept-btn,.dream-accept-all,#kb-source,#kb-demo-size,#kb-search,#dreams-agent{font:inherit;font-size:12px;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:9px 12px;min-height:38px}
|
|
460
|
+
.kb-toolbar button:hover,.kb-zoom button:hover,.dream-accept-btn:hover{background:var(--raised);border-color:var(--accent)}
|
|
461
|
+
.kb-stage{background:radial-gradient(ellipse 70% 62% at 50% 42%,#16203a 0%,#0d1322 55%,#070a12 100%);border-color:var(--line);border-radius:16px}
|
|
462
|
+
.dream-run-head .agent,.dream-prop .file,.proc-tree .proc-orchestrator,.proc-tree .proc-mcp{color:var(--accent)}
|
|
463
|
+
.dream-run-head .when,.dream-meta,.dreams-empty,.dream-prop .score,.dream-prop .reason,.proc-tree .proc-label,#kb-search-count{color:var(--muted)}
|
|
464
|
+
.dream-summary,.dream-prop .content,.dream-prop .anchor{color:var(--text);background:var(--raised)}
|
|
465
|
+
.dream-badge.auto,.dream-badge.propose,.dream-badge.outcome{background:var(--raised);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:3px 8px}
|
|
466
|
+
.proc-tree .proc-summary,.proc-tree .proc-claude{color:var(--text)}
|
|
467
|
+
.proc-tree .proc-pty,.proc-tree .proc-receiver{color:var(--green)}
|
|
468
|
+
.proc-tree .proc-orphan{color:var(--red)}
|
|
469
|
+
#view-system h2{color:var(--text)}
|
|
470
|
+
.proc-tree{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.8}
|
|
471
|
+
.dream-run-head{gap:10px}.dream-run-head .when{font:11px inherit;margin-left:auto}
|
|
472
|
+
|
|
473
|
+
.dream-prop .op.add,.prop-status.applied,.prop-status.applied-auto{color:var(--green)}
|
|
474
|
+
.dream-prop .op.replace,.dream-prop .anchor,.prop-status.pending{color:var(--accent)}
|
|
475
|
+
.dream-prop .op.remove,.prop-status.failed{color:var(--red)}
|
|
476
|
+
.dream-accept-all:hover{background:var(--raised)}
|
|
477
|
+
.kb-note,.kb-note-head,.kb-note-body{background:var(--panel);color:var(--text);border-color:var(--line)}
|
|
478
|
+
|
|
479
|
+
.range-toggle{display:inline-flex;gap:3px;background:var(--raised);padding:4px;border:1px solid var(--line);border-radius:10px;flex-wrap:wrap}.range-toggle button{border:0;background:transparent;color:var(--muted);padding:7px 13px;border-radius:7px;font:inherit;cursor:pointer}.range-toggle button[aria-pressed=true]{background:var(--panel);color:var(--text);box-shadow:0 1px 4px #0001;font-weight:650}
|
|
480
|
+
.tool-name-list{list-style:none;padding:0;margin:10px 0;display:grid;gap:6px}.tool-name-list li{padding:7px 10px;background:var(--raised);border:1px solid var(--line);border-radius:7px;min-width:0}.tool-name-list code{font:12px/1.6 ui-monospace,monospace;color:var(--text);overflow-wrap:anywhere}
|
|
481
|
+
.status-badge{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:0;border:0;border-radius:0;min-height:0;background:transparent;color:var(--status-color);font-size:12px;font-weight:500;line-height:1.6;letter-spacing:0;white-space:normal;vertical-align:middle}.status-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
|
|
482
|
+
tr[data-dash-agent],.turn-row{cursor:pointer}tr[data-dash-agent]:hover,.turn-row:hover{background:var(--raised)}tr[data-dash-agent]:focus-visible,.turn-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.short-id,.session-id{overflow-wrap:anywhere;white-space:normal;color:var(--text);font-size:12px}.dash-tools{overflow-wrap:anywhere}.detail-block{padding:14px;border:1px solid var(--line);border-radius:10px;margin:12px 0}.detail-block h3{margin:0 0 8px}
|
|
483
|
+
`;
|
|
484
|
+
exports.dashboardFontLink = "<script>(function(){var i=location.pathname.lastIndexOf('/dashboard');if(i<0)return;var l=document.createElement('link');l.rel='stylesheet';l.href=location.pathname.slice(0,i)+'/dashboard/fonts.css';document.head.appendChild(l);})();</script>";
|
|
485
|
+
//# sourceMappingURL=dashboard-theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-theme.js","sourceRoot":"","sources":["../../src/ui/dashboard-theme.ts"],"names":[],"mappings":";;;AAAA,kEAAkE;AACrD,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8dvC,CAAC;AACW,QAAA,iBAAiB,GAAG,oPAAoP,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** Refresh rendered data only; keep filters, theme, scroll and the open turn-detail panel. */
|
|
2
|
+
export declare const tokenReportClient = "\nvar reportRefreshing=false;\nasync function refreshReport(){\n if(document.hidden||reportRefreshing)return;\n reportRefreshing=true;\n var status=document.getElementById('report-live');\n try{\n var response=await fetch(location.href,{cache:'no-store',headers:{Accept:'text/html'}});\n if(response.status===401){location.reload();return;}\n if(!response.ok)throw Error('Unavailable');\n var next=new DOMParser().parseFromString(await response.text(),'text/html');\n if(next.getElementById('login-form')){location.reload();return;}\n if(!next.getElementById('report-totals'))throw Error('Unavailable');\n var scrolls=Array.from(document.querySelectorAll('.table-scroll')).map(function(el){return el.scrollLeft;});\n var x=scrollX,y=scrollY;\n ['report-status','report-totals','report-footprint','report-distribution'].forEach(function(id){var old=document.getElementById(id),fresh=next.getElementById(id);if(old.innerHTML!==fresh.innerHTML)old.innerHTML=fresh.innerHTML;});\n var body=document.querySelector('.report-table tbody'),freshBody=next.querySelector('.report-table tbody');\n if(body.innerHTML!==freshBody.innerHTML)body.innerHTML=freshBody.innerHTML;\n var pagers=next.querySelectorAll('.report-pager');document.querySelectorAll('.report-pager').forEach(function(el,i){if(pagers[i])el.innerHTML=pagers[i].innerHTML;});\n var model=document.getElementById('turn-model'),freshModel=next.getElementById('turn-model'),selected=model.value;\n if(model.innerHTML!==freshModel.innerHTML){model.innerHTML=freshModel.innerHTML;if(selected&&!Array.from(model.options).some(function(o){return o.value===selected;})){var option=document.createElement('option');option.value=selected;option.textContent=selected+' (no turns on this page)';model.appendChild(option);}model.value=selected;}\n filter();if(typeof reportRenderDrawer==='function')reportRenderDrawer();document.querySelectorAll('.table-scroll').forEach(function(el,i){el.scrollLeft=scrolls[i]||0;});scrollTo(x,y);\n status.textContent='Live \u00B7 updated '+new Date().toLocaleTimeString();\n }catch(e){status.textContent='Reconnecting\u2026 \u00B7 data may be outdated';}\n finally{reportRefreshing=false;}\n}\nsetInterval(refreshReport,5000);\ndocument.addEventListener('visibilitychange',function(){if(!document.hidden)refreshReport();});\n";
|
|
3
|
+
//# sourceMappingURL=token-report-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-report-client.d.ts","sourceRoot":"","sources":["../../src/ui/token-report-client.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,eAAO,MAAM,iBAAiB,oxEA4B7B,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tokenReportClient = void 0;
|
|
4
|
+
/** Refresh rendered data only; keep filters, theme, scroll and the open turn-detail panel. */
|
|
5
|
+
exports.tokenReportClient = `
|
|
6
|
+
var reportRefreshing=false;
|
|
7
|
+
async function refreshReport(){
|
|
8
|
+
if(document.hidden||reportRefreshing)return;
|
|
9
|
+
reportRefreshing=true;
|
|
10
|
+
var status=document.getElementById('report-live');
|
|
11
|
+
try{
|
|
12
|
+
var response=await fetch(location.href,{cache:'no-store',headers:{Accept:'text/html'}});
|
|
13
|
+
if(response.status===401){location.reload();return;}
|
|
14
|
+
if(!response.ok)throw Error('Unavailable');
|
|
15
|
+
var next=new DOMParser().parseFromString(await response.text(),'text/html');
|
|
16
|
+
if(next.getElementById('login-form')){location.reload();return;}
|
|
17
|
+
if(!next.getElementById('report-totals'))throw Error('Unavailable');
|
|
18
|
+
var scrolls=Array.from(document.querySelectorAll('.table-scroll')).map(function(el){return el.scrollLeft;});
|
|
19
|
+
var x=scrollX,y=scrollY;
|
|
20
|
+
['report-status','report-totals','report-footprint','report-distribution'].forEach(function(id){var old=document.getElementById(id),fresh=next.getElementById(id);if(old.innerHTML!==fresh.innerHTML)old.innerHTML=fresh.innerHTML;});
|
|
21
|
+
var body=document.querySelector('.report-table tbody'),freshBody=next.querySelector('.report-table tbody');
|
|
22
|
+
if(body.innerHTML!==freshBody.innerHTML)body.innerHTML=freshBody.innerHTML;
|
|
23
|
+
var pagers=next.querySelectorAll('.report-pager');document.querySelectorAll('.report-pager').forEach(function(el,i){if(pagers[i])el.innerHTML=pagers[i].innerHTML;});
|
|
24
|
+
var model=document.getElementById('turn-model'),freshModel=next.getElementById('turn-model'),selected=model.value;
|
|
25
|
+
if(model.innerHTML!==freshModel.innerHTML){model.innerHTML=freshModel.innerHTML;if(selected&&!Array.from(model.options).some(function(o){return o.value===selected;})){var option=document.createElement('option');option.value=selected;option.textContent=selected+' (no turns on this page)';model.appendChild(option);}model.value=selected;}
|
|
26
|
+
filter();if(typeof reportRenderDrawer==='function')reportRenderDrawer();document.querySelectorAll('.table-scroll').forEach(function(el,i){el.scrollLeft=scrolls[i]||0;});scrollTo(x,y);
|
|
27
|
+
status.textContent='Live · updated '+new Date().toLocaleTimeString();
|
|
28
|
+
}catch(e){status.textContent='Reconnecting… · data may be outdated';}
|
|
29
|
+
finally{reportRefreshing=false;}
|
|
30
|
+
}
|
|
31
|
+
setInterval(refreshReport,5000);
|
|
32
|
+
document.addEventListener('visibilitychange',function(){if(!document.hidden)refreshReport();});
|
|
33
|
+
`;
|
|
34
|
+
//# sourceMappingURL=token-report-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-report-client.js","sourceRoot":"","sources":["../../src/ui/token-report-client.ts"],"names":[],"mappings":";;;AAAA,8FAA8F;AACjF,QAAA,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BhC,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { RequestToolSchemas } from '../session/request-tool-capture';
|
|
2
|
+
import type { ContextFootprint } from '../orchestration/context-footprint';
|
|
3
|
+
/** Read-only admin report. Escape all stored model/tool metadata as untrusted text. */
|
|
4
|
+
export interface TokenReportView {
|
|
5
|
+
contextFootprint?: ContextFootprint;
|
|
6
|
+
contextWindow?: {
|
|
7
|
+
used: number;
|
|
8
|
+
total: number | null;
|
|
9
|
+
model: string | null;
|
|
10
|
+
} | null;
|
|
11
|
+
sessionId: string;
|
|
12
|
+
sessionStatus?: 'running' | 'idle' | 'stopped';
|
|
13
|
+
activityStatus?: string;
|
|
14
|
+
scope?: string;
|
|
15
|
+
since?: number;
|
|
16
|
+
source?: string;
|
|
17
|
+
chatId?: string;
|
|
18
|
+
pagination?: {
|
|
19
|
+
offset: number;
|
|
20
|
+
limit: number;
|
|
21
|
+
total: number;
|
|
22
|
+
};
|
|
23
|
+
distribution?: Array<{
|
|
24
|
+
category: string;
|
|
25
|
+
tokens: number;
|
|
26
|
+
}>;
|
|
27
|
+
usageByRole?: Array<{
|
|
28
|
+
role: string;
|
|
29
|
+
inputTokens: number;
|
|
30
|
+
cacheCreationTokens: number;
|
|
31
|
+
cacheReadTokens: number;
|
|
32
|
+
outputTokens: number;
|
|
33
|
+
}>;
|
|
34
|
+
coverage: string;
|
|
35
|
+
totals: {
|
|
36
|
+
agentTokens: number | null;
|
|
37
|
+
workerTokens: number | null;
|
|
38
|
+
totalTokens: number | null;
|
|
39
|
+
};
|
|
40
|
+
backgroundReviews?: Array<{
|
|
41
|
+
ts: string | number;
|
|
42
|
+
outcome: string | null;
|
|
43
|
+
tokensSpent: number;
|
|
44
|
+
triggerReason: string | null;
|
|
45
|
+
}>;
|
|
46
|
+
turns: Array<{
|
|
47
|
+
id: string;
|
|
48
|
+
role: string;
|
|
49
|
+
category: string;
|
|
50
|
+
taskId?: string;
|
|
51
|
+
inputModalities?: string[];
|
|
52
|
+
inputSequences?: number[];
|
|
53
|
+
inputTexts?: string[];
|
|
54
|
+
responseText?: string;
|
|
55
|
+
taskTitle?: string;
|
|
56
|
+
state?: string;
|
|
57
|
+
failureCode?: string;
|
|
58
|
+
attemptGeneration?: number;
|
|
59
|
+
pending?: boolean;
|
|
60
|
+
queuedMs?: number;
|
|
61
|
+
startedAt: string | number;
|
|
62
|
+
endedAt?: string | number;
|
|
63
|
+
model?: string;
|
|
64
|
+
usage?: {
|
|
65
|
+
inputTokens: number;
|
|
66
|
+
cacheCreationTokens: number;
|
|
67
|
+
cacheReadTokens: number;
|
|
68
|
+
outputTokens: number;
|
|
69
|
+
totalTokens: number;
|
|
70
|
+
cacheCreation5mTokens?: number;
|
|
71
|
+
cacheCreation1hTokens?: number;
|
|
72
|
+
} | null;
|
|
73
|
+
requests?: Array<{
|
|
74
|
+
id: string;
|
|
75
|
+
model?: string;
|
|
76
|
+
toolSchemas?: RequestToolSchemas;
|
|
77
|
+
usage: NonNullable<TokenReportView['turns'][number]['usage']>;
|
|
78
|
+
}>;
|
|
79
|
+
contextTools?: string[] | null;
|
|
80
|
+
schemaCoverage?: {
|
|
81
|
+
measured: number;
|
|
82
|
+
total: number;
|
|
83
|
+
};
|
|
84
|
+
loadedTools?: string[] | null;
|
|
85
|
+
usedTools?: string[];
|
|
86
|
+
}>;
|
|
87
|
+
}
|
|
88
|
+
export declare function generateTokenReportHtml(agentId: string, report: TokenReportView): string;
|
|
89
|
+
//# sourceMappingURL=token-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-report.d.ts","sourceRoot":"","sources":["../../src/ui/token-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAI3E,uFAAuF;AACvF,MAAM,WAAW,eAAe;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACpF,SAAS,EAAE,MAAM,CAAC;IAElB,aAAa,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IAG/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACjD,UAAU,CAAC,EAAE;QAAC,MAAM,EAAC,MAAM,CAAC;QAAA,KAAK,EAAC,MAAM,CAAC;QAAA,KAAK,EAAC,MAAM,CAAA;KAAC,CAAC;IACvD,YAAY,CAAC,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAC,MAAM,CAAC;QAAA,MAAM,EAAC,MAAM,CAAA;KAAC,CAAC,CAAC;IACtD,WAAW,CAAC,EAAE,KAAK,CAAC;QAAC,IAAI,EAAC,MAAM,CAAC;QAAA,WAAW,EAAC,MAAM,CAAC;QAAA,mBAAmB,EAAC,MAAM,CAAC;QAAA,eAAe,EAAC,MAAM,CAAC;QAAA,YAAY,EAAC,MAAM,CAAA;KAAC,CAAC,CAAC;IAC5H,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAChG,iBAAiB,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC9H,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAC5D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QACtD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QACvG,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QACjE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACtE,KAAK,CAAC,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,mBAAmB,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;YAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QACxM,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;YAAC,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;SAAE,CAAC,CAAC;QAClJ,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAAC,cAAc,CAAC,EAAE;YAAC,QAAQ,EAAC,MAAM,CAAC;YAAA,KAAK,EAAC,MAAM,CAAA;SAAC,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtI,CAAC,CAAC;CACJ;AAiFD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,CA4FxF"}
|