@adonis-agora/agent-dashboard 0.7.2 → 0.7.4

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.
@@ -0,0 +1 @@
1
+ :root{--bg:#09090b;--panel:#0c0c0f;--panel-2:#101017;--line:#1c1c22;--line-soft:#16161a;--text:#e7e7ea;--muted:#76767f;--agora-primary:#a78bfa;--agora-primary-soft:#a78bfa24;--agora-accent:#60a5fa;--primary:var(--agora-primary);--primary-fg:#09090b;--good:#34d399;--warn:#fbbf24;--bad:#f87171;--info:var(--agora-accent)}:root[data-theme=light],:root:not([data-theme=dark]),:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f8f6f2;--panel:#fbfaf8;--panel-2:#f5f3ef;--line:#2020271f;--line-soft:#2020270f;--text:#1a1a23;--muted:#656572;--primary-fg:#faf8f4}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Space Grotesk,ui-sans-serif,system-ui,sans-serif}.mono{font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace}.tnum{font-variant-numeric:tabular-nums}.app-bg{z-index:0;pointer-events:none;opacity:.9;background-image:radial-gradient(900px 420px at 82% -10%,#4426df1f,#0000 70%),radial-gradient(700px 360px at 8% -12%,#0dccf20f,#0000 70%);position:fixed;inset:0}.shell{z-index:1;max-width:1180px;margin:0 auto;padding:28px 24px 64px;position:relative}.masthead{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{width:32px;height:32px;color:var(--primary);background:color-mix(in srgb, var(--primary) 10%, transparent);border:1px solid color-mix(in srgb, var(--primary) 40%, transparent);border-radius:8px;place-items:center;font-weight:700;display:grid}.brand h1{letter-spacing:-.01em;margin:0;font-size:14px;font-weight:600}.brand p{text-transform:uppercase;letter-spacing:.2em;color:var(--muted);margin:1px 0 0;font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:10px}.tabs{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.tab{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:8px;align-items:center;gap:7px;padding:6px 12px;font-size:12px;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--text);background:color-mix(in srgb, var(--primary) 10%, transparent);border-color:color-mix(in srgb, var(--primary) 50%, var(--line))}.controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.range-input{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:6px 9px;font-family:inherit;font-size:12px}.price-input{min-width:225px}.icon-btn{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:8px;place-items:center;width:34px;height:32px;display:grid}.icon-btn:hover{color:var(--text)}.panel{background:linear-gradient(180deg, var(--panel-2), var(--panel));border:1px solid var(--line);border-radius:12px;padding:18px}.grid{gap:16px;display:grid}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.stat-4{grid-template-columns:repeat(4,1fr)}@media (width<=900px){.grid.cols-3,.grid.cols-2,.grid.stat-4{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.grid.cols-3,.grid.cols-2,.grid.stat-4{grid-template-columns:1fr}}.stat .label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px;font-size:11px}.stat .value{letter-spacing:-.02em;font-size:24px;font-weight:600}.stat .sub{color:var(--muted);margin-top:4px;font-size:12px}.section-title{justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px;display:flex}.section-title h2{letter-spacing:.01em;margin:0;font-size:14px}.section-title .hint{color:var(--muted);font-size:12px}.table{border-collapse:collapse;width:100%;font-size:12px}.table tbody{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace}.table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--line);padding:0 10px 10px;font-size:11px;font-weight:500}.table td{border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:10px}.table tr:last-child td{border-bottom:none}.table .num{text-align:right}.table-wrap{overflow-x:auto}.bar{background:var(--line);border-radius:999px;min-width:60px;height:6px;overflow:hidden}.bar>span{background:var(--primary);border-radius:999px;height:100%;display:block}.legend{flex-direction:column;gap:8px;font-size:12px;display:flex}.legend .row{align-items:center;gap:8px;display:flex}.swatch{border-radius:3px;flex:none;width:10px;height:10px}.legend .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.pill{border:1px solid var(--line);color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:2px 9px;font-size:11px;display:inline-flex}.dot{background:currentColor;border-radius:999px;width:7px;height:7px;display:inline-block}.s-completed,.s-ok,.s-success,.s-approved{color:var(--good)}.s-running,.s-pending,.s-pending_approval,.s-awaiting_approval{color:var(--info)}.s-failed,.s-error,.s-rejected,.s-forbidden{color:var(--bad)}.s-cancelled,.s-canceled{color:var(--warn)}.btn{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 12px;font-family:inherit;font-size:12px;transition:color .15s,border-color .15s,background .15s}.btn:hover:not(:disabled){border-color:var(--muted)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.approve{color:var(--good);background:color-mix(in srgb, var(--good) 10%, var(--panel));border-color:color-mix(in srgb, var(--good) 50%, var(--line))}.btn.reject{color:var(--bad);background:color-mix(in srgb, var(--bad) 10%, var(--panel));border-color:color-mix(in srgb, var(--bad) 50%, var(--line))}.rowbtns{justify-content:flex-end;gap:6px;display:inline-flex}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--panel-2)}.th-sort{appearance:none;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0}.th-sort:hover{color:var(--text)}.warnnum{color:var(--warn)}.msg{border:1px solid var(--line);background:var(--panel-2);border-radius:10px;padding:10px 12px}.msg-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.msg-body{white-space:pre-wrap;word-break:break-word;font-size:13px}.empty{color:var(--muted);text-align:center;padding:26px 10px;font-size:13px}.err{color:var(--bad);text-align:center;padding:20px 10px;font-size:13px}.skeleton{background:linear-gradient(90deg, var(--line-soft), var(--line), var(--line-soft));background-size:200% 100%;border-radius:8px;height:14px;animation:1.3s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.stack{flex-direction:column;gap:16px;display:flex}.muted{color:var(--muted)}.right{text-align:right}.chart-svg{width:100%;height:auto;display:block}.foot{color:var(--muted);text-align:center;margin-top:26px;font-size:11px}
@@ -10,8 +10,8 @@
10
10
  rel="stylesheet"
11
11
  />
12
12
  <title>agent · governance console</title>
13
- <script type="module" crossorigin src="./assets/index-HVy8whBx.js"></script>
14
- <link rel="stylesheet" crossorigin href="./assets/index-DshcMnMD.css">
13
+ <script type="module" crossorigin src="./assets/index-Cfi3g3b2.js"></script>
14
+ <link rel="stylesheet" crossorigin href="./assets/index-DVnnBvfn.css">
15
15
  </head>
16
16
  <body>
17
17
  <div id="root"></div>
@@ -1 +1 @@
1
- {"version":3,"file":"agent-client.d.ts","sourceRoot":"","sources":["../../../src/client/agent-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,UAAU,EACV,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,iGAAiG;AACjG,qBAAa,aAAc,SAAQ,KAAK;IAGpC,QAAQ,CAAC,MAAM,EAAE,MAAM;gBADvB,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM;CAK1B;AAED,KAAK,SAAS,GAAG,OAAO,KAAK,CAAC;AAE9B,MAAM,WAAW,kBAAkB;IACjC,kGAAkG;IAClG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,OAAO,GAAE,kBAAuB;YAM9B,GAAG;YAcH,IAAI;IAalB,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAO9D,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAO9D,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAO9D,eAAe,CAAC,KAAK,SAAa,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAMnE,aAAa,CAAC,KAAK,SAAa,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAI/D,sGAAsG;IACtG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAMtE,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;IAMjC,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAW9D,qFAAqF;IACrF,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAInD,yFAAyF;IACzF,gBAAgB,CAAC,MAAM,GAAE,sBAA2B,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAMpF,4FAA4F;IAC5F,YAAY,CAAC,KAAK,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAOnE,kGAAkG;IAClG,cAAc,CAAC,KAAK,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IASnE,gFAAgF;IAChF,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAI5E,qGAAqG;IACrG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAU5F,4EAA4E;IAC5E,OAAO,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAIvC,qFAAqF;IACrF,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;CAG9D"}
1
+ {"version":3,"file":"agent-client.d.ts","sourceRoot":"","sources":["../../../src/client/agent-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-client.js","sourceRoot":"","sources":["../../../src/client/agent-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-client.js","sourceRoot":"","sources":["../../../src/client/agent-client.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,25 @@
1
1
  /**
2
- * Resolve the base URL of the agent routes the SPA calls. The provider injects the exact base it
3
- * mounted the agent under as `window.__AGENT_DASHBOARD_BASE__` when it serves `index.html`; when that
4
- * is absent (e.g. the standalone `vite dev` preview) we derive it from the page's own location by
5
- * stripping the trailing `/dashboard` mount segment. Either way the SPA never hard-codes `/agent`.
2
+ * Resolve the base URL of the agent routes the SPA calls. The provider hands the exact base it
3
+ * mounted the agent under to the page as a JSON data block
4
+ * (`<script type="application/json" id="agent-dashboard-config">{"apiBase":…}</script>`) when it
5
+ * serves `index.html`; a `window.__AGENT_DASHBOARD_BASE__` global is honoured after it (tests,
6
+ * hand-embedding); and when both are absent (e.g. the standalone `vite dev` preview) we derive it
7
+ * from the page's own location by stripping the trailing `/dashboard` mount segment. Either way the
8
+ * SPA never hard-codes `/agent`.
9
+ *
10
+ * The data block, and not an inline script setting the global, because a host
11
+ * Content-Security-Policy of `script-src 'self' 'nonce-…'` (shield's `@nonce`) refuses an un-nonced
12
+ * inline script without a word: the global was never set, the location-derived base took over, and
13
+ * a console mounted anywhere but the default answered 404 to all of its own requests while rendering
14
+ * perfectly. A data block is never executed, so no policy can refuse it.
6
15
  */
7
16
  declare global {
8
17
  interface Window {
9
18
  __AGENT_DASHBOARD_BASE__?: string;
10
19
  }
11
20
  }
21
+ /** `id` of the data block the provider injects (`@adonis-agora/agent`'s `CONFIG_ELEMENT_ID`). */
22
+ export declare const CONFIG_ELEMENT_ID = "agent-dashboard-config";
12
23
  /**
13
24
  * Derive the agent API base from the dashboard's own `pathname`. The dashboard is mounted at
14
25
  * `<agentBase>/dashboard`, so we drop that last segment: `/agent/dashboard` → `/agent`,
@@ -16,8 +27,8 @@ declare global {
16
27
  * cleaned (trailing slash removed) as a best-effort base.
17
28
  */
18
29
  export declare function deriveApiBase(pathname: string): string;
19
- /** The resolved agent API base for this page (injected value wins, else location-derived). */
30
+ /** The resolved agent API base for this page: the data block, else the global, else location-derived. */
20
31
  export declare function resolveApiBase(win?: Pick<Window, 'location'> & {
21
32
  __AGENT_DASHBOARD_BASE__?: string;
22
- }): string;
33
+ }, doc?: Pick<Document, 'getElementById'> | undefined): string;
23
34
  //# sourceMappingURL=api-base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-base.d.ts","sourceRoot":"","sources":["../../../src/client/api-base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,wBAAwB,CAAC,EAAE,MAAM,CAAC;KACnC;CACF;AAOD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED,8FAA8F;AAC9F,wBAAgB,cAAc,CAC5B,GAAG,GAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG;IAAE,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAAW,GAC7E,MAAM,CAIR"}
1
+ {"version":3,"file":"api-base.d.ts","sourceRoot":"","sources":["../../../src/client/api-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,wBAAwB,CAAC,EAAE,MAAM,CAAC;KACnC;CACF;AAED,iGAAiG;AACjG,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAsB1D;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED,yGAAyG;AACzG,wBAAgB,cAAc,CAC5B,GAAG,GAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG;IAAE,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAAW,EAC9E,GAAG,GAAE,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,GAAG,SAE5B,GACX,MAAM,CAMR"}
@@ -1,9 +1,34 @@
1
1
  /**
2
- * Resolve the base URL of the agent routes the SPA calls. The provider injects the exact base it
3
- * mounted the agent under as `window.__AGENT_DASHBOARD_BASE__` when it serves `index.html`; when that
4
- * is absent (e.g. the standalone `vite dev` preview) we derive it from the page's own location by
5
- * stripping the trailing `/dashboard` mount segment. Either way the SPA never hard-codes `/agent`.
2
+ * Resolve the base URL of the agent routes the SPA calls. The provider hands the exact base it
3
+ * mounted the agent under to the page as a JSON data block
4
+ * (`<script type="application/json" id="agent-dashboard-config">{"apiBase":…}</script>`) when it
5
+ * serves `index.html`; a `window.__AGENT_DASHBOARD_BASE__` global is honoured after it (tests,
6
+ * hand-embedding); and when both are absent (e.g. the standalone `vite dev` preview) we derive it
7
+ * from the page's own location by stripping the trailing `/dashboard` mount segment. Either way the
8
+ * SPA never hard-codes `/agent`.
9
+ *
10
+ * The data block, and not an inline script setting the global, because a host
11
+ * Content-Security-Policy of `script-src 'self' 'nonce-…'` (shield's `@nonce`) refuses an un-nonced
12
+ * inline script without a word: the global was never set, the location-derived base took over, and
13
+ * a console mounted anywhere but the default answered 404 to all of its own requests while rendering
14
+ * perfectly. A data block is never executed, so no policy can refuse it.
6
15
  */
16
+ /** `id` of the data block the provider injects (`@adonis-agora/agent`'s `CONFIG_ELEMENT_ID`). */
17
+ export const CONFIG_ELEMENT_ID = 'agent-dashboard-config';
18
+ /** The `apiBase` carried by the injected data block, or `undefined` when there is none. */
19
+ function readInjectedApiBase(doc) {
20
+ const element = doc?.getElementById(CONFIG_ELEMENT_ID) ?? null;
21
+ if (element === null)
22
+ return undefined;
23
+ try {
24
+ const parsed = JSON.parse(element.textContent ?? '');
25
+ const apiBase = parsed?.apiBase;
26
+ return typeof apiBase === 'string' && apiBase !== '' ? apiBase : undefined;
27
+ }
28
+ catch {
29
+ return undefined;
30
+ }
31
+ }
7
32
  /** Strip a trailing `/` (but never reduce `/` itself to `''`). */
8
33
  function stripTrailingSlash(path) {
9
34
  return path.length > 1 ? path.replace(/\/+$/, '') : path;
@@ -22,8 +47,13 @@ export function deriveApiBase(pathname) {
22
47
  }
23
48
  return clean === '' ? '/' : clean;
24
49
  }
25
- /** The resolved agent API base for this page (injected value wins, else location-derived). */
26
- export function resolveApiBase(win = window) {
50
+ /** The resolved agent API base for this page: the data block, else the global, else location-derived. */
51
+ export function resolveApiBase(win = window, doc = typeof document === 'undefined'
52
+ ? undefined
53
+ : document) {
54
+ const fromBlock = readInjectedApiBase(doc);
55
+ if (fromBlock !== undefined)
56
+ return stripTrailingSlash(fromBlock);
27
57
  const injected = win.__AGENT_DASHBOARD_BASE__;
28
58
  if (typeof injected === 'string' && injected !== '')
29
59
  return stripTrailingSlash(injected);
@@ -1 +1 @@
1
- {"version":3,"file":"api-base.js","sourceRoot":"","sources":["../../../src/client/api-base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,kEAAkE;AAClE,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AACpC,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,cAAc,CAC5B,MAAwE,MAAM;IAE9E,MAAM,QAAQ,GAAG,GAAG,CAAC,wBAAwB,CAAC;IAC9C,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACzF,OAAO,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"api-base.js","sourceRoot":"","sources":["../../../src/client/api-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,iGAAiG;AACjG,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAE1D,2FAA2F;AAC3F,SAAS,mBAAmB,CAC1B,GAAiD;IAEjD,MAAM,OAAO,GAAG,GAAG,EAAE,cAAc,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC;IAC/D,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAI,MAAuC,EAAE,OAAO,CAAC;QAClE,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,kEAAkE;AAClE,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AACpC,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,cAAc,CAC5B,GAAG,GAAqE,MAAM,EAC9E,GAAG,GAAiD,OAAO,QAAQ,KAAK,WAAW;IACjF,CAAC,CAAC,SAAS;IACX,CAAC,CAAC,QAAQ;IAEZ,MAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,GAAG,CAAC,wBAAwB,CAAC;IAC9C,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACzF,OAAO,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"default-range.js","sourceRoot":"","sources":["../../../src/client/default-range.ts"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,MAAM,UAAU,MAAM,CAAC,GAAS,EAAE,UAAU,GAAG,CAAC;IAC9C,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC;IAC5D,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,gBAAgB,CAAC,CAAC;IAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,YAAY,CAAC,MAAY,IAAI,IAAI,EAAE,EAAE,IAAI,GAAG,CAAC;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,cAAc,CAC5B,KAA+B,EAC/B,MAAY,IAAI,IAAI,EAAE;IAEtB,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC5F,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IAClF,uDAAuD;IACvD,OAAO,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACpF,CAAC"}
1
+ {"version":3,"file":"default-range.js","sourceRoot":"","sources":["../../../src/client/default-range.ts"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,MAAM,UAAU,MAAM,CAAC,GAAS,EAAE,UAAU,GAAG,CAAC;IAC9C,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC;IAC5D,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,gBAAgB,CAAC,CAAC;IAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,YAAY,CAAC,GAAG,GAAS,IAAI,IAAI,EAAE,EAAE,IAAI,GAAG,CAAC;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,cAAc,CAC5B,KAA+B,EAC/B,GAAG,GAAS,IAAI,IAAI,EAAE;IAEtB,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC5F,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IAClF,uDAAuD;IACvD,OAAO,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACpF,CAAC"}
@@ -1,9 +1,9 @@
1
- export * from './types.js';
2
- export * from './format.js';
1
+ export type { AgentClientOptions } from './agent-client.js';
2
+ export { AgentApiError, AgentClient } from './agent-client.js';
3
+ export * from './api-base.js';
3
4
  export * from './default-range.js';
5
+ export * from './format.js';
4
6
  export * from './spend-summary.js';
5
7
  export * from './trend-path.js';
6
- export * from './api-base.js';
7
- export { AgentClient, AgentApiError } from './agent-client.js';
8
- export type { AgentClientOptions } from './agent-client.js';
8
+ export * from './types.js';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/D,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
@@ -1,8 +1,8 @@
1
- export * from './types.js';
2
- export * from './format.js';
1
+ export { AgentApiError, AgentClient } from './agent-client.js';
2
+ export * from './api-base.js';
3
3
  export * from './default-range.js';
4
+ export * from './format.js';
4
5
  export * from './spend-summary.js';
5
6
  export * from './trend-path.js';
6
- export * from './api-base.js';
7
- export { AgentClient, AgentApiError } from './agent-client.js';
7
+ export * from './types.js';
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/D,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adonis-agora/agent-dashboard",
3
- "version": "0.7.2",
3
+ "version": "0.7.4",
4
4
  "description": "Read-only governance console (spend by model/actor, usage trend, recent threads & tool calls, quota) for @adonis-agora/agent — a dependency-light React SPA served by a thin AdonisJS provider. Part of the Agora ecosystem.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -37,8 +37,8 @@
37
37
  ],
38
38
  "sideEffects": false,
39
39
  "peerDependencies": {
40
- "@adonisjs/core": "^7.3.0",
41
- "@adonis-agora/agent": ">=0.21.0 <1.0.0"
40
+ "@adonis-agora/agent": ">=0.21.0 <1.0.0",
41
+ "@adonisjs/core": "^7.3.0"
42
42
  },
43
43
  "peerDependenciesMeta": {
44
44
  "@adonisjs/core": {
@@ -46,20 +46,20 @@
46
46
  }
47
47
  },
48
48
  "devDependencies": {
49
- "@adonisjs/core": "7.4.0",
50
- "@tanstack/intent": "^0.3.2",
51
- "@testing-library/react": "16.3.2",
52
- "@types/node": "22.20.1",
49
+ "@adonis-agora/agent": "0.25.5",
50
+ "@adonisjs/core": "7.5.0",
51
+ "@tanstack/intent": "^0.3.7",
52
+ "@testing-library/react": "16.3.3",
53
+ "@types/node": "26.4.0",
53
54
  "@types/react": "19.2.18",
54
- "@types/react-dom": "19.2.4",
55
- "@vitejs/plugin-react": "4.7.0",
56
- "jsdom": "25.0.1",
55
+ "@types/react-dom": "19.2.5",
56
+ "@vitejs/plugin-react": "6.1.1",
57
+ "jsdom": "30.0.1",
57
58
  "react": "19.2.8",
58
59
  "react-dom": "19.2.8",
59
- "typescript": "5.9.3",
60
- "vite": "7.3.6",
61
- "vitest": "3.2.7",
62
- "@adonis-agora/agent": "0.25.3"
60
+ "typescript": "7.0.2",
61
+ "vite": "8.2.2",
62
+ "vitest": "4.1.11"
63
63
  },
64
64
  "engines": {
65
65
  "node": ">=20.6.0"
@@ -1 +0,0 @@
1
- :root{--bg: #09090b;--panel: #0c0c0f;--panel-2: #101017;--line: #1c1c22;--line-soft: #16161a;--text: #e7e7ea;--muted: #76767f;--agora-primary: #a78bfa;--agora-primary-soft: color-mix(in srgb, #a78bfa 14%, transparent);--agora-accent: #60a5fa;--primary: var(--agora-primary);--primary-fg: #09090b;--good: #34d399;--warn: #fbbf24;--bad: #f87171;--info: var(--agora-accent)}:root[data-theme=light],:root:not([data-theme=dark]){color-scheme:dark}:root[data-theme=dark]{color-scheme:dark}:root[data-theme=light]{color-scheme:light;--bg: hsl(40 30% 96%);--panel: hsl(40 28% 98%);--panel-2: hsl(40 24% 95%);--line: hsl(240 10% 14% / .12);--line-soft: hsl(240 10% 14% / .06);--text: hsl(240 14% 12%);--muted: hsl(240 6% 42%);--primary-fg: hsl(40 40% 97%)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Space Grotesk,ui-sans-serif,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.mono{font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace}.tnum{font-variant-numeric:tabular-nums}.app-bg{position:fixed;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(900px 420px at 82% -10%,hsl(250 74% 51% / .12),transparent 70%),radial-gradient(700px 360px at 8% -12%,hsl(190 90% 50% / .06),transparent 70%);opacity:.9}.shell{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:28px 24px 64px}.masthead{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,transparent);border:1px solid color-mix(in srgb,var(--primary) 40%,transparent);font-weight:700}.brand h1{font-size:14px;font-weight:600;margin:0;letter-spacing:-.01em}.brand p{margin:1px 0 0;font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted)}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}.tab{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:8px;padding:6px 12px;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:color .15s,border-color .15s,background .15s}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--text);background:color-mix(in srgb,var(--primary) 10%,transparent);border-color:color-mix(in srgb,var(--primary) 50%,var(--line))}.controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.range-input{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:6px 9px;font-size:12px;font-family:inherit}.price-input{min-width:225px}.icon-btn{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:8px;width:34px;height:32px;cursor:pointer;display:grid;place-items:center}.icon-btn:hover{color:var(--text)}.panel{background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:12px;padding:18px}.grid{display:grid;gap:16px}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.stat-4{grid-template-columns:repeat(4,1fr)}@media(max-width:900px){.grid.cols-3,.grid.cols-2,.grid.stat-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.grid.cols-3,.grid.cols-2,.grid.stat-4{grid-template-columns:1fr}}.stat .label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px}.stat .value{font-size:24px;font-weight:600;letter-spacing:-.02em}.stat .sub{font-size:12px;color:var(--muted);margin-top:4px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:0 0 14px;gap:12px}.section-title h2{font-size:14px;margin:0;letter-spacing:.01em}.section-title .hint{font-size:12px;color:var(--muted)}.table{width:100%;border-collapse:collapse;font-size:12px}.table tbody{font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace;font-variant-numeric:tabular-nums}.table th{text-align:left;font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:0 10px 10px;border-bottom:1px solid var(--line)}.table td{padding:10px;border-bottom:1px solid var(--line-soft);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table .num{text-align:right}.table-wrap{overflow-x:auto}.bar{height:6px;border-radius:999px;background:var(--line);overflow:hidden;min-width:60px}.bar>span{display:block;height:100%;border-radius:999px;background:var(--primary)}.legend{display:flex;flex-direction:column;gap:8px;font-size:12px}.legend .row{display:flex;align-items:center;gap:8px}.swatch{width:10px;height:10px;border-radius:3px;flex:none}.legend .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;font-size:11px;border:1px solid var(--line);color:var(--muted)}.dot{width:7px;height:7px;border-radius:999px;background:currentColor;display:inline-block}.s-completed,.s-ok,.s-success,.s-approved{color:var(--good)}.s-running,.s-pending,.s-pending_approval,.s-awaiting_approval{color:var(--info)}.s-failed,.s-error,.s-rejected,.s-forbidden{color:var(--bad)}.s-cancelled,.s-canceled{color:var(--warn)}.btn{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:6px;padding:6px 12px;font-size:12px;font-family:inherit;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.btn:hover:not(:disabled){border-color:var(--muted)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.approve{color:var(--good);background:color-mix(in srgb,var(--good) 10%,var(--panel));border-color:color-mix(in srgb,var(--good) 50%,var(--line))}.btn.reject{color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,var(--panel));border-color:color-mix(in srgb,var(--bad) 50%,var(--line))}.rowbtns{display:inline-flex;gap:6px;justify-content:flex-end}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--panel-2)}.th-sort{appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.th-sort:hover{color:var(--text)}.warnnum{color:var(--warn)}.msg{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--panel-2)}.msg-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.msg-body{font-size:13px;white-space:pre-wrap;word-break:break-word}.empty{color:var(--muted);font-size:13px;text-align:center;padding:26px 10px}.err{color:var(--bad);font-size:13px;padding:20px 10px;text-align:center}.skeleton{border-radius:8px;background:linear-gradient(90deg,var(--line-soft),var(--line),var(--line-soft));background-size:200% 100%;animation:shimmer 1.3s ease-in-out infinite;height:14px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.stack{display:flex;flex-direction:column;gap:16px}.muted{color:var(--muted)}.right{text-align:right}.chart-svg{width:100%;height:auto;display:block}.foot{margin-top:26px;font-size:11px;color:var(--muted);text-align:center}