pinecall 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +14 -6
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/env.d.ts +18 -2
- package/dist/cli/env.d.ts.map +1 -1
- package/dist/cli/env.js +47 -8
- package/dist/cli/env.js.map +1 -1
- package/dist/cli/gateway.d.ts.map +1 -1
- package/dist/cli/gateway.js +9 -5
- package/dist/cli/gateway.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +1 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/profiles.d.ts +33 -3
- package/dist/cli/profiles.d.ts.map +1 -1
- package/dist/cli/profiles.js +75 -9
- package/dist/cli/profiles.js.map +1 -1
- package/dist/cli/ui/console/assets/{index-DTMBzpRG.js → index-DhcpHPdk.js} +10 -10
- package/dist/cli/ui/console/assets/index-iylvEP0_.css +1 -0
- package/dist/cli/ui/console/index.html +2 -2
- package/dist/cli/ui/console/pinecall-logo.png +0 -0
- package/dist/cli/ui/console/pinecall-mark.png +0 -0
- package/dist/cli/world.d.ts.map +1 -1
- package/dist/cli/world.js +2 -1
- package/dist/cli/world.js.map +1 -1
- package/package.json +2 -2
- package/dist/cli/signup.d.ts +0 -25
- package/dist/cli/signup.d.ts.map +0 -1
- package/dist/cli/signup.js +0 -126
- package/dist/cli/signup.js.map +0 -1
- package/dist/cli/ui/admin/assets/index-BlHXSYVz.css +0 -1
- package/dist/cli/ui/admin/assets/index-BpdIOuyO.js +0 -58
- package/dist/cli/ui/admin/index.html +0 -20
- package/dist/cli/ui/browser.d.ts +0 -10
- package/dist/cli/ui/browser.d.ts.map +0 -1
- package/dist/cli/ui/browser.js +0 -30
- package/dist/cli/ui/browser.js.map +0 -1
- package/dist/cli/ui/console/assets/index-C7LdwphQ.css +0 -1
- package/dist/cli/ui/index.d.ts +0 -15
- package/dist/cli/ui/index.d.ts.map +0 -1
- package/dist/cli/ui/index.js +0 -117
- package/dist/cli/ui/index.js.map +0 -1
- package/dist/cli/ui/refused.d.ts +0 -8
- package/dist/cli/ui/refused.d.ts.map +0 -1
- package/dist/cli/ui/refused.js +0 -11
- package/dist/cli/ui/refused.js.map +0 -1
- package/dist/cli/ui/server.d.ts +0 -22
- package/dist/cli/ui/server.d.ts.map +0 -1
- package/dist/cli/ui/server.js +0 -211
- package/dist/cli/ui/server.js.map +0 -1
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
-
<title>Pinecall admin</title>
|
|
7
|
-
<link rel="icon" type="image/png" href="/logo-mark.png" />
|
|
8
|
-
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
9
|
-
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
10
|
-
<link
|
|
11
|
-
href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap"
|
|
12
|
-
rel="stylesheet"
|
|
13
|
-
/>
|
|
14
|
-
<script type="module" crossorigin src="/admin/assets/index-BpdIOuyO.js"></script>
|
|
15
|
-
<link rel="stylesheet" crossorigin href="/admin/assets/index-BlHXSYVz.css">
|
|
16
|
-
</head>
|
|
17
|
-
<body>
|
|
18
|
-
<div id="root"></div>
|
|
19
|
-
</body>
|
|
20
|
-
</html>
|
package/dist/cli/ui/browser.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/** This machine's browser: whether it has one to speak of, and how a URL is handed to it. */
|
|
2
|
-
/**
|
|
3
|
-
* Why no page can open here, or null when one can. A talk page needs a microphone, and a
|
|
4
|
-
* microphone is a browser's on a screen: over ssh there is no screen on this end, and a Linux
|
|
5
|
-
* with no display has no browser to hand a URL to. Both are said before a token is minted.
|
|
6
|
-
*/
|
|
7
|
-
export declare function headless(env?: NodeJS.ProcessEnv, platform?: string): string | null;
|
|
8
|
-
/** Hand this URL to the browser and never wait for it: the URL is on screen either way. */
|
|
9
|
-
export declare function openInBrowser(url: string, platform?: string): void;
|
|
10
|
-
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/browser.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAY7F;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,QAAQ,GAAE,MAAyB,GAAG,MAAM,GAAG,IAAI,CAMjH;AAED,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAyB,GAAG,IAAI,CAKpF"}
|
package/dist/cli/ui/browser.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/** This machine's browser: whether it has one to speak of, and how a URL is handed to it. */
|
|
2
|
-
import { spawn } from "node:child_process";
|
|
3
|
-
// One command per platform. Anything else is treated as a Linux with xdg-open, which is what a
|
|
4
|
-
// BSD or a container with a desktop most likely has.
|
|
5
|
-
const OPENERS = {
|
|
6
|
-
darwin: "open",
|
|
7
|
-
win32: "start",
|
|
8
|
-
linux: "xdg-open",
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* Why no page can open here, or null when one can. A talk page needs a microphone, and a
|
|
12
|
-
* microphone is a browser's on a screen: over ssh there is no screen on this end, and a Linux
|
|
13
|
-
* with no display has no browser to hand a URL to. Both are said before a token is minted.
|
|
14
|
-
*/
|
|
15
|
-
export function headless(env = process.env, platform = process.platform) {
|
|
16
|
-
if (env["SSH_CONNECTION"] !== undefined)
|
|
17
|
-
return "this is an ssh session";
|
|
18
|
-
if (platform === "linux" && env["DISPLAY"] === undefined && env["WAYLAND_DISPLAY"] === undefined) {
|
|
19
|
-
return "no DISPLAY and no WAYLAND_DISPLAY";
|
|
20
|
-
}
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
/** Hand this URL to the browser and never wait for it: the URL is on screen either way. */
|
|
24
|
-
export function openInBrowser(url, platform = process.platform) {
|
|
25
|
-
const opener = OPENERS[platform] ?? OPENERS["linux"];
|
|
26
|
-
const opened = spawn(opener, [url], { stdio: "ignore", detached: true, shell: platform === "win32" });
|
|
27
|
-
opened.on("error", () => undefined);
|
|
28
|
-
opened.unref();
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=browser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/cli/ui/browser.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAE7F,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,+FAA+F;AAC/F,qDAAqD;AACrD,MAAM,OAAO,GAA2B;IACtC,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,UAAU;CAClB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAW,OAAO,CAAC,QAAQ;IAChG,IAAI,GAAG,CAAC,gBAAgB,CAAC,KAAK,SAAS;QAAE,OAAO,wBAAwB,CAAC;IACzE,IAAI,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,iBAAiB,CAAC,KAAK,SAAS,EAAE,CAAC;QACjG,OAAO,mCAAmC,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,QAAQ,GAAW,OAAO,CAAC,QAAQ;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,OAAO,CAAE,CAAC;IACtD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC;IACtG,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
:root{--ink:#101014;--ink-2:#3c3a47;--ink-3:#6b6975;--ink-4:#8a8895;--ink-5:#9d9baa;--ink-6:#a3a1ad;--ink-7:#c0bdc9;--line:#eeedf2;--line-2:#f2f1f5;--line-3:#f7f6fa;--line-control:#e8e6ee;--line-field:#e4e2ea;--line-hover:#d6d3df;--line-hover-2:#cfccd8;--line-muted:#d8d4e4;--ground:#fff;--ground-side:#fbfafc;--ground-3:#f7f6fa;--ground-4:#f4f3f7;--ground-5:#f1f0f5;--ground-tint:#faf9ff;--accent:#5b3df5;--on-accent:#fff;--accent-hover:#4c2fe0;--accent-soft:#ede9fe;--accent-selected:#efeafe;--accent-2:#8b6bff;--accent-3:#c4b5fd;--accent-line:#cfc7fb;--accent-tint-line:#e6e0fd;--accent-ink:#6b5fd0;--accent-ring:0 0 0 3px #5b3df51f;--selection:#ddd6fe;--green:#15803d;--green-dot:#16a34a;--green-soft:#dcfce7;--amber:#a16207;--amber-dot:#f59e0b;--amber-soft:#fef3c7;--amber-tint:#fffdf5;--red:#b91c1c;--red-soft:#fee2e2;--red-line:#f3c8c8;--indigo:#4338ca;--indigo-soft:#e0e7ff;--pink:#be185d;--pink-soft:#fce7f3;--teal:#0f766e;--shadow-pop:0 16px 40px -16px #10101442, 0 2px 6px #1010140d;--shadow-card:0 1px 2px #1010140a;--shadow-raised:0 1px 2px #10101414;--shadow-talk:0 10px 24px -12px #5b3df5e6;--shadow-preview:0 8px 20px -14px #1010144d;--face:Inter, system-ui, -apple-system, sans-serif;--face-fixed:ui-monospace, SFMono-Regular, Menlo, monospace;--side:244px;--side-folded:62px;--head:54px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0}body{background:var(--ground);color:var(--ink);font-family:var(--face);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "ss01";font-size:14px;line-height:normal}a{color:var(--ink);text-decoration:none}a:hover{color:var(--accent)}input,select,button,textarea{font-family:inherit;font-size:inherit}input:focus,textarea:focus{outline:none}::placeholder{color:var(--ink-6)}::selection{background:var(--selection)}.ui-fixed{font-family:var(--face-fixed)}.ui-page{flex-direction:column;flex:1;gap:18px;max-width:1180px;min-height:0;padding:26px 22px 48px;display:flex;overflow:auto}.ui-page>*{flex:none}.ui-page-tight{gap:16px}.ui-page-1060{max-width:1060px}.ui-page-900{max-width:900px}.ui-page-760{max-width:760px}.ui-head{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.ui-head-words{min-width:0}.ui-head-actions{gap:8px;margin-left:auto;display:flex}.ui-title{letter-spacing:-.6px;margin:0 0 4px;font-size:23px;font-weight:650}.ui-lede{color:var(--ink-3);margin:0;font-size:13.5px}.ui-lede-long{line-height:1.6}.ui-back{color:var(--ink-4);font-size:12.5px}.ui-card{border:1px solid var(--line);background:var(--ground);border-radius:12px;overflow:hidden}.ui-card-pad{padding:14px 16px}.ui-card-head{border-bottom:1px solid var(--line-2);align-items:center;gap:10px;padding:13px 16px;display:flex}.ui-card-title{font-size:13.5px;font-weight:600}.ui-card-meta{color:var(--ink-4);font-size:12px}.ui-card-action{color:var(--accent);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0;font-size:12.5px;font-weight:500}.ui-card-action:hover{color:var(--accent-hover)}.ui-card-foot{color:var(--ink-4);align-items:center;gap:10px;padding:11px 16px;font-size:12.5px;display:flex}.ui-card-body{padding:14px 16px}.ui-card-list{padding:6px 8px 10px}.ui-note{color:var(--ink-4);font-size:12.5px;line-height:1.6}.ui-empty{color:var(--ink-4);padding:18px 16px;font-size:13px;line-height:1.6}.ui-refused{color:var(--red);font-size:12.5px;line-height:1.55}.ui-row{border-bottom:1px solid var(--line-3);color:var(--ink);align-items:center;gap:12px;padding:13px 16px;display:flex}.ui-row-link{cursor:pointer}.ui-row-link:hover{background:var(--ground-side);color:var(--ink)}.ui-row-main{flex:1;min-width:0}.ui-row-line{align-items:center;gap:7px;display:flex}.ui-row-name{font-size:13.5px;font-weight:550}.ui-row-sub{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.ui-row-end{text-align:right;flex:none}.ui-row-end-1{color:var(--ink-4);font-size:12px}.ui-row-end-2{color:var(--ink-6);font-size:11.5px}.ui-item{color:var(--ink);border-radius:9px;align-items:center;gap:10px;padding:9px;display:flex}.ui-item:hover{background:var(--ground-side)}.ui-item-name{font-size:13px;font-weight:500}.ui-item-sub{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.ui-section-label{color:var(--ink-6);letter-spacing:.06em;text-transform:uppercase;padding:13px 15px 9px;font-size:11px;font-weight:600}.ui-section-label-ruled{border-top:1px solid var(--line);padding-top:10px}.ui-kv{align-items:baseline;gap:10px;display:flex}.ui-kv-key{width:104px;color:var(--ink-4);flex:none;font-size:12px}.ui-kv-value{min-width:0;color:var(--ink);word-break:break-word;flex:1;font-size:12.5px}.ui-stats{gap:12px;display:grid}.ui-stat{border:1px solid var(--line);background:var(--ground);border-radius:12px;min-width:0;padding:14px 16px}.ui-stat-label{color:var(--ink-4);margin-bottom:7px;font-size:12.5px}.ui-stat-value{letter-spacing:-.7px;font-size:22px;font-weight:600;line-height:1}.ui-stat-of{color:var(--ink-4);font-size:13px;font-weight:450}.ui-stat-big{padding:15px 16px}.ui-stat-big .ui-stat-label{margin-bottom:8px}.ui-stat-big .ui-stat-value{letter-spacing:-.8px;font-size:25px}.ui-stat-line{align-items:flex-end;gap:7px;display:flex}.ui-stat-delta{color:var(--ink-4);padding-bottom:2px;font-size:12px;font-weight:500}.ui-stat-delta-up{color:var(--green)}.ui-stat-delta-down{color:var(--red)}.ui-stat-small{padding:13px 15px}.ui-stat-small .ui-stat-label{margin-bottom:6px;font-size:11.5px}.ui-stat-small .ui-stat-value{letter-spacing:-.6px;font-size:21px;line-height:normal}.ui-stat-fact .ui-stat-label{margin-bottom:5px}.ui-stat-fact .ui-stat-value{letter-spacing:normal;word-break:break-word;font-size:13.5px;font-weight:550;line-height:1.45}.ui-stat-accent{background:var(--ground-tint);border-color:var(--accent-tint-line)}.ui-stat-accent .ui-stat-label{color:var(--accent-ink)}.ui-stat-accent .ui-stat-value{color:var(--accent-hover)}.ui-table-head,.ui-table-row{gap:12px;padding:10px 16px;display:grid}.ui-table-head{border-bottom:1px solid var(--line-2);background:var(--ground-side)}.ui-table-head>span{color:var(--ink-4);font-size:11.5px;font-weight:500}.ui-table-row{border-top:1px solid var(--line-3);color:var(--ink);align-items:center;padding:12px 16px}.ui-table-head+.ui-table-row{border-top:0}.ui-table-row:hover{background:var(--ground-side);color:var(--ink)}.ui-table-row-link{cursor:pointer}.ui-cell-right{text-align:right;justify-self:stretch}.ui-cell-end{justify-content:flex-end;align-items:center;gap:10px;display:flex}.ui-cell-strong{min-width:0;font-size:13.5px;font-weight:550}.ui-cell{color:var(--ink-3);min-width:0;font-size:13px}.ui-cell-ink{color:var(--ink-2);min-width:0;font-size:13px}.ui-cell-faint{color:var(--ink-4);min-width:0;font-size:12.5px}.ui-cell-link{color:var(--accent);font-size:13px;font-weight:550}.ui-clip{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ui-tabs{border-bottom:1px solid var(--line);gap:2px;margin-top:-4px;display:flex}.ui-tab{white-space:nowrap;height:36px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;align-items:center;gap:7px;margin-bottom:-1px;padding:0 12px;font-size:13px;font-weight:450;display:flex}.ui-tab:hover{color:var(--ink)}.ui-tab-on,.ui-tab-on:hover{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.ui-button{border:1px solid var(--line-control);background:var(--ground);height:34px;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:13px;font-weight:500;display:inline-flex}.ui-button:hover{border-color:var(--line-hover);color:var(--ink)}.ui-button:disabled{cursor:default;opacity:.55}.ui-button-primary{background:var(--accent);color:var(--on-accent);border-color:#0000;padding:0 14px;font-weight:550}.ui-button-primary:hover{background:var(--accent-hover);color:var(--on-accent);border-color:#0000}.ui-button-dashed{border-style:dashed;border-color:var(--line-hover);color:var(--ink-2);font-size:12.5px}.ui-button-dashed:hover{border-color:var(--accent);color:var(--accent-hover)}.ui-button-danger{color:var(--red)}.ui-button-danger:hover{border-color:var(--red-line);color:var(--red)}.ui-button-pill{border-radius:99px}.ui-button-xs{border-radius:8px;height:28px;padding:0 10px;font-size:12.5px}.ui-button-sm{border-radius:8px;height:30px;padding:0 12px;font-size:12.5px}.ui-button-md{height:32px;padding:0 12px;font-size:12.5px}.ui-button-form{height:36px}.ui-button-lg{width:100%;height:42px;font-size:14px}.ui-text-action{color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:0;font-size:12.5px;font-weight:500}.ui-text-action:disabled{color:var(--ink-7);cursor:default}.ui-text-action-danger{color:var(--red)}.ui-label{color:var(--ink-2);margin-bottom:6px;font-size:12.5px;font-weight:500;display:block}.ui-input,.ui-select{border:1px solid var(--line-control);background:var(--ground);width:100%;height:36px;color:var(--ink);border-radius:9px;padding:0 12px;font-size:13px}.ui-select{padding:0 10px}.ui-input:focus,.ui-select:focus{border-color:var(--accent);box-shadow:var(--accent-ring);outline:none}.ui-input-sm,.ui-select-sm{height:34px}.ui-input-lg{border-color:var(--line-field);height:40px;font-size:14px}.ui-textarea{border:1px solid var(--line-control);background:var(--ground);width:100%;min-height:72px;color:var(--ink);resize:vertical;border-radius:9px;padding:9px 12px;font-size:13px;line-height:1.5}.ui-textarea:focus{border-color:var(--accent);box-shadow:var(--accent-ring)}.ui-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.ui-form-grow{flex:1;min-width:200px}.ui-check{color:var(--ink-2);cursor:pointer;align-items:center;gap:7px;font-size:13px;display:inline-flex}.ui-check input{accent-color:var(--accent)}.ui-segmented{background:var(--ground-4);border-radius:9px;gap:4px;padding:3px;display:flex}.ui-segment{height:26px;color:var(--ink-3);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:0 10px;font-size:12px;font-weight:450}.ui-segment-on{background:var(--ground);color:var(--ink);box-shadow:var(--shadow-raised);font-weight:550}.ui-chips{flex-wrap:wrap;gap:7px;display:flex}.ui-chip{border:1px solid var(--line-control);background:var(--ground);height:30px;color:var(--ink-3);cursor:pointer;border-radius:99px;padding:0 12px;font-size:12.5px;font-weight:450}.ui-chip-on{background:var(--ink);border-color:var(--ink);color:var(--on-accent);font-weight:550}.ui-choice{cursor:pointer;background:var(--ground-5);height:28px;color:var(--ink-3);border:0;border-radius:8px;padding:0 11px;font-size:12.5px;font-weight:450}.ui-choice-on{background:var(--ink);color:var(--on-accent);font-weight:550}.ui-choice:disabled{cursor:default}.ui-switch{background:var(--line-muted);cursor:pointer;border:0;border-radius:99px;align-items:center;width:36px;height:20px;padding:2px;display:flex}.ui-switch-on{background:var(--accent);justify-content:flex-end}.ui-switch-knob{background:var(--on-accent);border-radius:50%;width:16px;height:16px}.ui-pill{white-space:nowrap;border-radius:99px;flex:none;padding:2px 8px;font-size:11.5px;font-weight:500;line-height:normal;display:inline-block}.ui-pill-small{padding:1.5px 7px;font-size:11px}.ui-pill-green{color:var(--green);background:var(--green-soft)}.ui-pill-amber{color:var(--amber);background:var(--amber-soft)}.ui-pill-red{color:var(--red);background:var(--red-soft)}.ui-pill-indigo{color:var(--indigo);background:var(--indigo-soft)}.ui-pill-violet{color:var(--accent-hover);background:var(--accent-soft)}.ui-pill-gray{color:var(--ink-3);background:var(--ground-5)}.ui-pill-muted{color:var(--ink-4);background:var(--ground-5)}.ui-tag{color:var(--ink-2);background:var(--ground-5);white-space:nowrap;border-radius:99px;padding:2px 8px;font-size:11.5px;font-weight:500}.ui-tags{flex-wrap:wrap;gap:5px;display:flex}.ui-dot{background:var(--line-muted);border-radius:50%;flex:none;width:7px;height:7px;display:inline-block}.ui-dot-small{width:6px;height:6px}.ui-dot-green{background:var(--green-dot)}.ui-dot-amber{background:var(--amber-dot)}.ui-live{color:var(--green-dot);align-items:center;gap:6px;font-size:12px;display:inline-flex}.ui-avatar{border-radius:9px;flex:none;place-items:center;width:28px;height:28px;font-size:11px;font-weight:600;display:grid}.ui-avatar-26{border-radius:8px;width:26px;height:26px}.ui-avatar-36{border-radius:11px;width:36px;height:36px;font-size:12.5px}.ui-avatar-round{border-radius:50%;font-size:12px}.ui-avatar-round.ui-avatar-38{width:38px;height:38px;font-size:13px}.ui-tint-violet{background:var(--accent-soft);color:var(--accent-hover)}.ui-tint-green{background:var(--green-soft);color:var(--green)}.ui-tint-pink{background:var(--pink-soft);color:var(--pink)}.ui-tint-amber{background:var(--amber-soft);color:var(--amber)}.ui-tint-indigo{background:var(--indigo-soft);color:var(--indigo)}.ui-tint-red{background:var(--red-soft);color:var(--red)}.ui-tint-ink{background:var(--ink);color:var(--on-accent)}.ui-code{background:var(--ground-side);font:12.5px var(--face-fixed);color:var(--ink-2);white-space:pre;margin:0;padding:14px 16px;line-height:1.7;overflow-x:auto}.ui-bar{background:var(--ground-5);border-radius:99px;height:6px;display:block;overflow:hidden}.ui-bar-fill{background:var(--accent);border-radius:99px;height:100%;display:block}.ui-icon{display:block}@media (width<=720px){.ui-page{padding:20px 16px 40px}.ui-card{overflow-x:auto}.ui-table-head,.ui-table-row{min-width:640px}}.login{background:var(--ground);grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100vh;display:grid}.login-side{flex-direction:column;justify-content:space-between;min-height:640px;padding:32px 40px;display:flex}.login-logo{align-self:flex-start;width:auto;height:26px;display:block}.login-form{width:100%;max-width:352px;margin:0 auto;padding:40px 0}.login-title{letter-spacing:-.7px;margin:0 0 7px;font-size:26px;font-weight:650}.login-lede{color:var(--ink-3);margin:0 0 28px;font-size:14px;line-height:1.5}.login-label{color:var(--ink-2);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.login-label-row{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.login-label-row .login-label{margin-bottom:0}.login-hint{color:var(--ink-4);font-size:12.5px}.login-input{border:1px solid var(--line-field);background:var(--ground);width:100%;height:40px;color:var(--ink);border-radius:9px;margin-bottom:14px;padding:0 12px;font-size:14px}.login-input:focus{border-color:var(--accent);box-shadow:var(--accent-ring)}.login-input-secret{letter-spacing:.1em}.login-workspace{border:1px solid var(--line-field);background:var(--ground);border-radius:9px;align-items:center;gap:10px;height:40px;margin-bottom:22px;padding:0 12px;display:flex}.login-workspace:hover{border-color:var(--line-hover-2)}.login-workspace:focus-within{border-color:var(--accent);box-shadow:var(--accent-ring)}.login-workspace-tile{background:var(--accent);width:18px;height:18px;color:var(--on-accent);border-radius:5px;flex:none;place-items:center;font-size:10px;font-weight:600;display:grid}.login-workspace-input{min-width:0;height:100%;color:var(--ink);background:0 0;border:0;flex:1;font-size:14px}.login-go{background:var(--accent);width:100%;height:42px;color:var(--on-accent);cursor:pointer;border:0;border-radius:9px;font-size:14px;font-weight:550}.login-go:hover{background:var(--accent-hover)}.login-go:disabled{opacity:.6;cursor:default}.login-refused{color:var(--red);margin:14px 0 0;font-size:13px;line-height:1.5}.login-note{color:var(--ink-4);margin:22px 0 0;font-size:12.5px;line-height:1.6}.login-foot{color:var(--ink-5);margin:0;font-size:12.5px}.login-command{color:var(--ink-2);font-weight:500}.login-commands{border:1px solid var(--line);background:var(--ground-side);font:13px var(--face-fixed);color:var(--ink-2);white-space:pre;border-radius:12px;margin:0;padding:14px 16px;line-height:1.7}.login-show{background:var(--ground-3);border-left:1px solid var(--line);flex-direction:column;justify-content:center;gap:22px;padding:40px;display:flex}.login-show-words{max-width:420px}.login-show-title{letter-spacing:-.5px;text-wrap:pretty;margin:0 0 8px;font-size:22px;font-weight:600}.login-show-lede{color:var(--ink-3);text-wrap:pretty;margin:0;font-size:14px;line-height:1.6}.login-show-card{background:var(--ground);border:1px solid var(--line);max-width:420px;box-shadow:var(--shadow-card);border-radius:14px;overflow:hidden}.login-show-head{border-bottom:1px solid var(--line-2);align-items:center;gap:9px;padding:13px 16px;display:flex}.login-show-today{font-size:13px;font-weight:550}.login-show-count{color:var(--ink-4);margin-left:auto;font-size:12px}.login-show-row{border-bottom:1px solid var(--line-3);align-items:center;gap:12px;padding:12px 16px;display:flex}.login-show-row:last-child{border-bottom:0}.login-show-name{font-size:13px;font-weight:500}.login-show-line{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.login-show-channel{color:var(--ink-5);flex:none;font-size:11.5px}.login-card{border:1px solid var(--line);background:var(--ground);max-width:460px;box-shadow:var(--shadow-card);border-radius:14px;margin:12vh auto 0;padding:24px}.login-card .login-title{letter-spacing:-.5px;font-size:22px}.login-card .login-lede{margin-bottom:20px}@media (width<=860px){.login{grid-template-columns:minmax(0,1fr)}.login-show{display:none}.login-side{padding:24px 16px}}.login-link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:12.5px}.login-forgot{color:var(--ink-3);margin:-6px 0 14px;font-size:12.5px;line-height:1.5}select.login-workspace-input{appearance:none;cursor:pointer}.login-or{align-items:center;gap:12px;margin:20px 0;display:flex}.login-or-line{background:var(--line);flex:1;height:1px}.login-or-word{color:var(--ink-5);font-size:12px}.login-sso{border:1px solid var(--line-field);background:var(--ground);width:100%;height:42px;color:var(--ink);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:9px;font-size:14px;font-weight:500;display:flex}.login-sso:hover{border-color:var(--line-hover-2);background:var(--ground-side)}.login-sso:disabled{opacity:.6;cursor:default}.login-sso-glyph{background:var(--ink);border-radius:4px;width:16px;height:16px}.login-sso-pick{margin-top:14px}.login-sso-pick .login-workspace{margin-bottom:0}.login-sso-note{color:var(--ink-3);margin:12px 0 0;font-size:12.5px;line-height:1.5}.agents-watching{color:var(--green-dot);align-items:center;gap:6px;margin-left:auto;font-size:12px;display:flex}.agents-corners{margin-left:12px}.agents-name{align-items:center;gap:10px;min-width:0;display:flex}.agents-live{color:var(--green-dot);align-items:center;gap:6px;font-size:12px;display:flex}.agents-idle{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.agents-numbers{color:var(--ink-3);font-size:12.5px}.agents-figure{text-align:right;font-size:13px;font-weight:500}.agents-score{color:var(--ink-6)}.agents-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.agents-none{color:var(--ink-4);padding:9px;font-size:12.5px}@media (width<=900px){.agents-split{grid-template-columns:minmax(0,1fr)}}.agents-score-good{color:var(--green)}.agents-score-fair{color:var(--amber)}.agents-score-poor{color:var(--red)}.box-fixed{font-family:var(--face-fixed);font-size:12px}.box-back{color:var(--ink-4);margin-bottom:6px;font-size:12.5px;text-decoration:none;display:inline-block}.box-back:hover{color:var(--ink)}.box-line{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.box-head-moves{align-items:center;gap:8px;margin-left:auto;display:flex}.box-inline{border-bottom:1px solid var(--line-2);background:var(--ground-side);padding:14px 16px}.box-inline-foot{color:var(--ink-4);flex-wrap:wrap;align-items:baseline;gap:4px;margin-top:10px;font-size:12.5px;line-height:1.6;display:flex}.box-inline-close{margin-left:auto}.box-done{color:var(--green);font-size:13px}.box-done-row{border-bottom:1px solid var(--line-2);padding:11px 16px}.box-bad{color:var(--red);font-size:13px}.box-note,.box-done-under{margin-top:10px}.box-kvs{flex-direction:column;gap:9px;padding:14px 16px;display:flex}.box-kvs-moves{margin-top:6px}.box-pick{flex-wrap:wrap;gap:8px;display:flex}.box-load{grid-template-columns:56px auto;align-items:center;gap:8px;display:grid}.box-limits{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px 12px;padding:14px 16px 4px;display:grid}.box-limit-about{color:var(--ink-5);margin-top:5px;font-size:12px}.box-save{flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px 14px;display:flex}.box-anywhere{border-bottom:1px solid var(--line-2);align-items:center;gap:16px;padding:14px 16px;display:flex}.box-anywhere-words{flex-direction:column;flex:1;gap:2px;font-size:13.5px;display:flex}.box-form{flex-direction:column;gap:14px;padding:14px 16px;display:flex}.box-form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:12px;display:grid}.box-form-pair{grid-template-columns:96px minmax(0,1fr);gap:12px;display:grid}.box-redirect{border-top:1px solid var(--line-2)}.box-redirect-head{justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;display:flex}.box-accent{grid-template-columns:36px minmax(0,1fr);gap:8px;display:grid}.box-accent-well{border:1px solid var(--line-field);background:var(--ground);cursor:pointer;border-radius:9px;width:36px;height:36px;padding:2px}.box-letter-ground{background:var(--ground-3);justify-content:center;padding:28px 16px;display:flex}.box-letter{border:1px solid var(--line);background:var(--ground);border-radius:14px;flex-direction:column;align-items:flex-start;gap:12px;width:100%;max-width:460px;padding:28px 28px 30px;display:flex}.box-letter-logo{width:auto;height:28px}.box-letter-name{letter-spacing:-.01em;font-size:17px;font-weight:700}.box-letter-title{letter-spacing:-.01em;margin-top:8px;font-size:18px;font-weight:650}.box-letter-words{color:var(--ink-3);font-size:13.5px;line-height:1.6}.box-letter-button{color:var(--on-accent);border-radius:9px;margin-top:6px;padding:10px 18px;font-size:13.5px;font-weight:600}@media (width<=720px){.box-form-grid{grid-template-columns:minmax(0,1fr)}}.dial-anchor{position:relative}.dial-pop{z-index:30;border:1px solid var(--line-control);background:var(--ground);width:288px;box-shadow:var(--shadow-pop);border-radius:12px;flex-direction:column;gap:11px;padding:14px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.dial-ask{font-size:13.5px;font-weight:550;line-height:1.45}.dial-moves{gap:8px;display:flex}.dial-panel{border:1px solid var(--line-control);background:var(--ground);box-shadow:var(--shadow-pop);border-radius:12px;overflow:hidden}.dial-panel-head{align-items:center;gap:10px;padding:10px 12px 0;display:flex}.dial-panel-close{width:24px;height:24px;color:var(--ink-4);cursor:pointer;background:0 0;border:0;border-radius:7px;margin-left:auto;font-size:16px;line-height:1}.dial-panel-close:hover{background:var(--ground-5);color:var(--ink)}.dial-form{flex-direction:column;gap:10px;padding:12px;display:flex}.dial-note{color:var(--ink-3);margin:0;font-size:12px;line-height:1.5}.dial-refused{color:var(--red);margin:0;font-size:12.5px;line-height:1.5}.sim{background:var(--ground);border:1px solid var(--line-control);box-shadow:var(--shadow-pop);border-radius:12px;flex-direction:column;gap:10px;padding:12px 13px 14px;display:flex}.sim-head{align-items:center;display:flex}.sim-title{font-size:13px;font-weight:600}.sim-close{width:24px;height:24px;color:var(--ink-4);cursor:pointer;background:0 0;border:0;border-radius:7px;margin-left:auto;font-size:16px;line-height:1}.sim-close:hover{background:var(--ground-5);color:var(--ink)}.sim-note{color:var(--ink-3);margin:0;font-size:12px;line-height:1.5}.sim-pair{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;display:grid}.sim-checks{flex-direction:column;gap:6px;display:flex}.sim-aside{color:var(--ink-4);font-size:11.5px}.sim-refused{color:var(--red);margin:0;font-size:12px;line-height:1.5}.ib{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(180px,292px) minmax(0,1fr);min-height:0;display:grid}.ib-list{border-right:1px solid var(--line);flex-direction:column;min-width:0;min-height:0;display:flex}.ib-list-head{border-bottom:1px solid var(--line);flex:none;gap:8px;padding:12px 13px;display:flex;position:relative}.ib-search{border:1px solid var(--line-control);background:var(--ground-side);min-width:0;height:34px;color:var(--ink);border-radius:99px;flex:1;padding:0 12px;font-size:13px}.ib-search:focus{border-color:var(--accent);background:var(--ground);box-shadow:var(--accent-ring)}.ib-new{background:var(--accent);width:34px;height:34px;color:var(--on-accent);cursor:pointer;border:0;border-radius:50%;flex:none;font-size:17px;line-height:1}.ib-new:hover{background:var(--accent-hover)}.ib-sim{z-index:30;position:absolute;top:calc(100% + 4px);left:8px;right:8px}.ib-threads{flex:1;overflow:auto}.ib-empty{color:var(--ink-4);margin:0;padding:14px 13px;font-size:12.5px;line-height:1.55}.ib-refused{color:var(--red)}.ib-row{border:0;border-bottom:1px solid var(--line-3);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:11px;width:100%;padding:11px 13px;display:flex}.ib-row:hover{background:var(--ground-side)}.ib-row-on,.ib-row-on:hover{background:var(--ground-4)}.ib-row-main{flex:1;min-width:0}.ib-row-top{align-items:baseline;gap:8px;display:flex}.ib-row-name{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13.5px;font-weight:600;overflow:hidden}.ib-row-time{color:var(--ink-6);flex:none;font-size:11px}.ib-row-bottom{align-items:center;gap:7px;margin-top:2px;display:flex}.ib-row-last{min-width:0;color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12.5px;overflow:hidden}.ib-row-last-live{color:var(--green)}.ib-unread{background:var(--green-dot);min-width:18px;height:18px;color:var(--on-accent);border-radius:99px;flex:none;place-items:center;padding:0 5px;font-size:11px;font-weight:600;display:grid}.ib-thread{background:var(--ground-side);flex-direction:column;min-width:0;min-height:0;display:flex}.ib-nothing{color:var(--ink-3);padding:26px 22px;font-size:13.5px}.ib-head{border-bottom:1px solid var(--line);background:var(--ground);flex-wrap:wrap;flex:none;align-items:center;gap:11px;padding:11px 16px;display:flex}.ib-head-words{min-width:0}.ib-head-name{letter-spacing:-.15px;font-size:14px;font-weight:600}.ib-head-sub{color:var(--ink-4);font-size:12px}.ib-head-actions{flex:none;gap:8px;margin-left:auto;display:flex}.ib-messages{flex-direction:column;flex:1;gap:9px;padding:18px 20px;display:flex;overflow:auto}.ib-bubble-wrap{flex-direction:column;gap:9px;display:flex}.ib-day{color:var(--ink-6);background:var(--ground-5);border-radius:99px;align-self:center;margin-bottom:4px;padding:3px 11px;font-size:11.5px}.ib-line{justify-content:flex-start;display:flex}.ib-line-out{justify-content:flex-end}.ib-line-call{justify-content:center}.ib-call{background:var(--ground-5);color:var(--ink-3);border-radius:99px;padding:6px 12px;font-size:12px;font-weight:500}.ib-bubble{background:var(--ground-4);max-width:66%;color:var(--ink);white-space:pre-wrap;word-break:break-word;border-radius:14px 14px 14px 5px;padding:9px 13px 7px;font-size:13.5px;line-height:1.5;position:relative}.ib-bubble-out{background:var(--accent-soft);border-bottom-right-radius:5px;border-bottom-left-radius:14px}.ib-time{color:var(--ink-6);text-align:right;margin-top:3px;font-size:10.5px;display:block}.ib-quiet{color:var(--ink-4);align-self:center;margin:0;font-size:12.5px}.ib-refused-line{color:var(--red);margin:0;font-size:12.5px;line-height:1.5}.ib-refused-foot{background:var(--ground);flex:none;padding:6px 16px 0}.ib-composer{border-top:1px solid var(--line);background:var(--ground);flex:none;gap:9px;padding:12px 16px;display:flex}.ib-write{border:1px solid var(--line-control);background:var(--ground-side);min-width:0;height:38px;color:var(--ink);border-radius:99px;flex:1;padding:0 14px;font-size:13.5px}.ib-write:focus{border-color:var(--accent);background:var(--ground);box-shadow:var(--accent-ring)}.ib-write:disabled{cursor:not-allowed}.ib-send{background:var(--accent);height:38px;color:var(--on-accent);cursor:pointer;border:0;border-radius:99px;flex:none;padding:0 18px;font-size:13.5px;font-weight:550}.ib-send:hover{background:var(--accent-hover)}.ib-send:disabled{opacity:.55;cursor:default}@media (width<=720px){.ib{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);overflow:auto}.ib-list{border-right:0;border-bottom:1px solid var(--line);max-height:34vh}}.ib-sim-ways{border:1px solid var(--line-control);background:var(--ground);box-shadow:var(--shadow-pop);border-radius:12px;margin-bottom:6px;padding:5px;display:flex}.inspector{border-left:1px solid var(--line);background:var(--ground-side);min-width:0;min-height:0;overflow:auto}.inspector-head{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:13px 15px;display:flex}.inspector-title{font-size:13px;font-weight:600}.inspector-standing{margin-left:auto}.inspector-standing .ui-pill{font-weight:550}.inspector-tabs{padding:4px 8px 12px}.inspector-count{color:var(--ink-6);font-size:11px;font-weight:500}.inspector-quiet{color:var(--ink-4);margin:0;padding:14px 15px;font-size:12.5px;line-height:1.55}.inspector-figures{flex-wrap:wrap;gap:12px 18px;padding:0 15px 14px;display:flex}.inspector-figure-label{color:var(--ink-4);margin-bottom:2px;font-size:11.5px}.inspector-figure{letter-spacing:-.3px;font-size:15px;font-weight:600}.inspector-call{color:var(--ink-6);word-break:break-all;margin:-6px 15px 14px;font-size:11px}.inspector-turns,.inspector-tools{flex-direction:column;gap:9px;padding:0 15px 14px;display:flex}.inspector-turn{gap:9px;display:flex}.inspector-who{width:42px;color:var(--ink-4);flex:none;padding-top:1px;font-size:11.5px;font-weight:600}.inspector-who-agent{color:var(--accent-hover)}.inspector-turn-body{flex:1;min-width:0}.inspector-turn-text{color:var(--ink-2);font-size:12.5px;line-height:1.5;display:block}.inspector-turn-meta{color:var(--ink-6);margin-top:2px;font-size:11px;display:block}.inspector-tool{border:1px solid var(--line);background:var(--ground);border-radius:10px;padding:9px 11px}.inspector-tool-name{font-size:12.5px;font-weight:550}.inspector-tool-args{color:var(--ink-4);word-break:break-word;margin-top:2px;font-size:11.5px;line-height:1.5}.inspector-tool-result{color:var(--green);word-break:break-word;margin-top:4px;font-size:11.5px}.inspector-tool-failed{color:var(--red)}.inspector-tool-running{color:var(--amber)}.inspector-state{flex-direction:column;gap:8px;padding:0 15px 22px;display:flex}.inspector-field{align-items:baseline;gap:10px;display:flex}.inspector-field-key{width:100px;color:var(--ink-4);text-overflow:ellipsis;flex:none;font-size:12px;overflow:hidden}.inspector-field-value{word-break:break-word;flex:1;min-width:0;font-size:12.5px}.inspector-none{color:var(--ink-6);margin:0;font-size:12px}.inspector-refused{color:var(--red);margin:0;padding:0 15px 16px;font-size:12px}.chat-grid{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(210px,300px);min-height:0;display:grid}.chat-column{flex-direction:column;min-width:0;min-height:0;display:flex}.chat-head{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:12px;padding:16px 20px 12px;display:flex}.chat-head-words{flex:1;min-width:0}.chat-title{letter-spacing:-.3px;font-size:15px;font-weight:650}.chat-sub{color:var(--ink-3);margin-top:2px;font-size:12.5px}.chat-head-actions{flex:none;align-items:center;gap:12px;display:flex}.chat-whole{color:var(--accent);font-size:12.5px;font-weight:500}.chat-lines{background:var(--ground-side);flex-direction:column;flex:1;gap:11px;min-height:0;padding:18px 20px;display:flex;overflow:auto}.chat-line{justify-content:flex-start;display:flex}.chat-line-user{justify-content:flex-end}.chat-line-tool{justify-content:center}.chat-line-pending{opacity:.6}.chat-bubble{background:var(--ground-4);max-width:74%;color:var(--ink);white-space:pre-wrap;word-break:break-word;border-radius:14px;padding:10px 13px;font-size:13.5px;line-height:1.55}.chat-bubble-you{background:var(--accent);color:var(--on-accent)}.chat-caret{vertical-align:text-bottom;background:var(--accent);width:2px;height:1em;margin-left:2px;animation:1s steps(2,start) infinite chat-blink;display:inline-block}@keyframes chat-blink{to{visibility:hidden}}.chat-typing{align-items:center;gap:4px;padding:14px 15px;display:inline-flex}.chat-typing i{background:var(--ink-6);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite chat-dots}.chat-typing i:nth-child(2){animation-delay:.2s}.chat-typing i:nth-child(3){animation-delay:.4s}@keyframes chat-dots{0%,80%,to{opacity:.3}40%{opacity:1}}.chat-tool{background:var(--ground-5);color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;border-radius:99px;max-width:90%;padding:6px 12px;font-size:12px;font-weight:500;overflow:hidden}.chat-tool-failed{color:var(--red);background:var(--red-soft)}.chat-tool-running{color:var(--amber);background:var(--amber-soft)}.chat-error{color:var(--red);margin:0;font-size:12.5px}.chat-refused{flex:none;padding:8px 16px 0}.chat-composer{border-top:1px solid var(--line);background:var(--ground);flex:none;gap:9px;padding:12px 16px;display:flex}.chat-say{border:1px solid var(--line-control);background:var(--ground-side);min-width:0;height:38px;color:var(--ink);border-radius:10px;flex:1;padding:0 13px;font-size:13.5px}.chat-say:focus{border-color:var(--accent);background:var(--ground);box-shadow:var(--accent-ring)}.chat-send{background:var(--accent);height:38px;color:var(--on-accent);cursor:pointer;border:0;border-radius:10px;flex:none;padding:0 16px;font-size:13.5px;font-weight:550}.chat-send:hover{background:var(--accent-hover)}.chat-send:disabled{cursor:default;opacity:.55}.chat-start{width:100%;max-width:520px;margin:12px auto 0}.chat-start-form{flex-direction:column;gap:13px;display:flex}.chat-note{color:var(--ink-3);margin:0;font-size:12.5px;line-height:1.6}@media (width<=900px){.chat-grid{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}}.chat-over{border-top:1px solid var(--line);background:var(--ground);color:var(--ink-4);flex:none;padding:14px 16px;font-size:12.5px}.oev-held{align-items:center;gap:10px;min-width:0;display:flex}.oev-held .ui-bar{flex:1}.oev-share{text-align:right;width:40px;color:var(--ink-2);flex:none;font-size:12.5px}.oev-none{color:var(--ink-5);font-size:12.5px}.oev-when{color:var(--ink-4);font-size:12px}.oev-open{color:var(--accent);font-size:12.5px}.talk-grid{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(260px,330px);min-height:0;display:grid}.talk-grid>.ui-page{min-width:0}.talk-card{border:1px solid var(--line);border-radius:12px;flex-direction:column;align-items:center;gap:14px;padding:28px 20px;display:flex}.talk-door{background:var(--accent);width:96px;height:96px;color:var(--on-accent);cursor:pointer;box-shadow:var(--shadow-talk);border:0;border-radius:50%;font-size:15px;font-weight:600}.talk-door-clock{opacity:.85;margin-top:2px;font-size:11.5px;font-weight:500;display:block}.talk-mic{align-items:center;gap:10px;display:flex}.talk-door:hover{background:var(--accent-hover)}.talk-door:disabled{cursor:default;opacity:.7}.talk-door-on,.talk-door-on:hover{background:var(--red);box-shadow:none}.talk-standing{text-align:center}.talk-phase{font-size:13.5px;font-weight:550}.talk-hint{color:var(--ink-4);margin-top:3px;font-size:12.5px}.talk-bars{align-items:flex-end;gap:3px;height:20px;display:flex}.talk-bars span{background:var(--line-muted);border-radius:2px;width:3px}.talk-bars span:first-child{height:6px}.talk-bars span:nth-child(2){height:12px}.talk-bars span:nth-child(3){height:8px}.talk-bars span:nth-child(4){height:16px}.talk-bars span:nth-child(5){height:9px}.talk-bars-on span{background:var(--accent);transform-origin:bottom;animation:.9s ease-in-out infinite alternate talk-level}.talk-bars-on span:nth-child(2){animation-delay:.15s}.talk-bars-on span:nth-child(3){animation-delay:.3s}.talk-bars-on span:nth-child(4){animation-delay:.45s}.talk-bars-on span:nth-child(5){animation-delay:.6s}@keyframes talk-level{0%{transform:scaleY(.35)}to{transform:scaleY(1)}}.talk-call{color:var(--ink-6);word-break:break-all;text-align:center;font-size:11.5px}.talk-facts{flex-wrap:wrap;gap:12px;display:flex}.talk-fact{border:1px solid var(--line);border-radius:12px;flex:1;min-width:200px;padding:13px 15px}.talk-fact-label{color:var(--ink-4);margin-bottom:5px;font-size:11.5px}.talk-fact-value{font-size:13.5px;font-weight:550}.talk-whole{flex-direction:column;flex:1;min-height:0;display:flex}.talk-whole .talk-lines{background:var(--ground);flex:1;max-height:none;padding:22px 24px}.talk-lines{background:var(--ground-side);flex-direction:column;gap:11px;min-height:120px;max-height:420px;padding:18px 20px;display:flex;overflow:auto}.talk-quiet{color:var(--ink-4);margin:auto;font-size:12.5px}.talk-said{justify-content:flex-start;display:flex}.talk-said-you{justify-content:flex-end}.talk-bubble{background:var(--ground-4);max-width:74%;color:var(--ink);border-radius:14px;margin:0;padding:10px 13px;font-size:13.5px;line-height:1.55}.talk-bubble-you{background:var(--accent);color:var(--on-accent)}.talk-bubble-unsettled{opacity:.6}.talk-word{animation:.18s ease-out talk-arrive}@keyframes talk-arrive{0%{opacity:0}to{opacity:1}}.talk-cursor{vertical-align:text-bottom;background:currentColor;width:2px;height:1em;margin-left:2px;animation:1s steps(2,start) infinite talk-blink;display:inline-block}@keyframes talk-blink{to{visibility:hidden}}.talk-mark{background:var(--ground-5);color:var(--ink-4);border-radius:99px;align-self:center;margin:0;padding:3px 11px;font-size:12px}.talk-composer{border-top:1px solid var(--line);background:var(--ground);gap:9px;padding:12px 16px;display:flex}.talk-write{border:1px solid var(--line-control);background:var(--ground-side);min-width:0;height:38px;color:var(--ink);border-radius:10px;flex:1;padding:0 13px;font-size:13.5px}.talk-write:focus{border-color:var(--accent);background:var(--ground);box-shadow:var(--accent-ring)}.talk-write:disabled{cursor:not-allowed}.talk-send{background:var(--accent);height:38px;color:var(--on-accent);cursor:pointer;border:0;border-radius:10px;flex:none;padding:0 16px;font-size:13.5px;font-weight:550}.talk-send:hover{background:var(--accent-hover)}.talk-send:disabled{opacity:.55;cursor:default}.talk-mark-tool{color:var(--amber)}.talk-mark-error{color:var(--red)}.talk-mark-supervisor{color:var(--accent-hover)}@media (width<=900px){.talk-grid{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);overflow:auto}}.rchat-grid{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(260px,330px);min-height:0;display:grid}.rchat-stage{background:var(--ground-4);place-items:center;min-width:0;min-height:0;padding:22px;display:grid}.rchat{border:1px solid var(--line);background:var(--ground);border-radius:18px;flex-direction:column;width:min(820px,100%);height:100%;max-height:780px;display:flex;overflow:hidden;box-shadow:0 1px 2px #1010140a,0 26px 60px -28px #10101459}.rchat-bar{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:12px;padding:12px 20px;display:flex}.rchat-light{background:var(--line-muted);border-radius:50%;flex:none;width:9px;height:9px}.rchat-light-on{background:var(--green-dot);box-shadow:0 0 0 4px var(--green-soft)}.rchat-words{min-width:0}.rchat-title{font-size:14px;font-weight:600}.rchat-standing{color:var(--ink-4);margin-top:1px;font-size:12.5px}.rchat-moves{align-items:center;gap:8px;margin-left:auto;display:flex}.rchat-empty{background:var(--ground-side);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;min-height:0;padding:32px 24px;display:flex}.rchat-empty-words{text-align:center;max-width:460px;color:var(--ink-3);margin:0;font-size:13.5px;line-height:1.65}.rchat-empty-failed{color:var(--red);margin:0;font-size:12.5px}.rchat-refused{border-top:1px solid var(--line-2);color:var(--red);flex:none;margin:0;padding:10px 20px;font-size:12.5px}@media (width<=900px){.rchat-grid{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);overflow:auto}.rchat-stage{padding:0}.rchat{max-height:none;box-shadow:none;border:0;border-radius:0}}.ev-last{letter-spacing:-.3px;padding-top:4px;font-size:15px;font-weight:600}.ev-run-all{margin-left:auto}.ev-goldens>.ui-table-row:first-child{border-top:0}.ev-golden{flex-direction:column;min-width:0;display:flex}.ev-golden-says{color:var(--ink-2);font-size:13px}.ev-golden-name,.ev-golden-call{color:var(--ink-6);font-size:11.5px}.ev-golden-call:hover{color:var(--accent)}.ev-views{display:flex}.ev-row-open,.ev-row-open:hover{background:var(--ground-tint)}.ev-num{text-align:right;font-size:13px;font-weight:500}.ev-num-faint{color:var(--ink-4);font-weight:400}.ev-num-bad{color:var(--red)}.ev-head-end{margin-left:auto}.ev-facts{border-bottom:1px solid var(--line-2);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:9px 22px;padding:14px 16px;display:grid}.ev-score{flex-direction:column;gap:5px;min-width:0;display:flex}.ev-score-value{font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:500}.ev-reason{color:var(--ink-3);min-width:0;font-size:12.5px;line-height:1.55}.ev-repro-body{flex-direction:column;gap:10px;padding:0 16px 14px;display:flex}.ev-repro-open{border:1px solid var(--line);border-radius:10px;overflow:hidden}.ev-repro-title{border-bottom:1px solid var(--line-2);padding:11px 14px;font-size:13px;font-weight:600}.ev-repro-verdict{border-bottom:1px solid var(--line-3);align-items:baseline;gap:9px;padding:9px 14px;display:flex}.ev-asked{max-height:360px;overflow:auto}.ev-judge{color:var(--green);background:var(--green-soft);white-space:nowrap;border-radius:99px;padding:2px 8px;font-size:11.5px;font-weight:500}.ev-judge-bad{color:var(--red);background:var(--red-soft)}.ev-evidence{background:var(--ground-side);border-top:1px solid var(--line-3);flex-direction:column;gap:10px;padding:12px 16px 16px;display:flex}.ev-evidence-head{display:flex}.ev-acts{flex-direction:column;gap:8px;display:flex}.ev-acts-buttons{flex-wrap:wrap;gap:8px;display:flex}.ev-warn{color:var(--amber);font-size:12.5px;line-height:1.55}.ev-said{border:1px solid var(--line);background:var(--ground);border-radius:10px}.ev-said-body{flex-direction:column;gap:7px;padding:0 15px 13px;display:flex}.ev-quote{border-left:2px solid var(--line-control);color:var(--ink-2);padding-left:10px;font-size:13px;line-height:1.55}.ev-suite-controls{flex-wrap:wrap;align-items:flex-end;gap:14px;padding:14px 16px;display:flex}.ev-suite-models{flex:1;min-width:240px}.ev-suite-number{width:120px}.ev-suite-controls .ui-check{height:34px}.ev-suite-go{margin-left:auto}.ev-suite-all{background:var(--ground-side);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);padding:9px 16px}.ev-suite-golden{border-top:1px solid var(--line-3);grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:12px;padding:10px 16px;display:grid}.ev-suite-golden:first-of-type{border-top:0}.ev-suite-name{color:var(--ink);font-size:13px;font-weight:500}.ev-suite-says{color:var(--ink-3);font-size:13px}.ev-suite-expects{color:var(--ink-4);font-size:12px}.ev-drift-windows{gap:10px;margin-left:auto;display:flex}.ev-drift-field{color:var(--ink-4);white-space:nowrap;align-items:center;gap:7px;font-size:12px;display:flex}.ev-drift-field .ui-input{width:64px;height:30px}.ev-broke{border-top:1px solid var(--line-3);grid-template-columns:minmax(0,1fr) auto minmax(0,2fr);align-items:baseline;gap:12px;padding:10px 16px;display:grid}@media (width<=720px){.ev-suite-golden{grid-template-columns:minmax(0,1fr)}}.lv{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(190px,244px);min-width:0;min-height:0;display:grid}.lv-middle{flex-direction:column;min-width:0;min-height:0;display:flex}.lv-head{border-bottom:1px solid var(--line);flex-wrap:wrap;flex:none;align-items:center;gap:10px;padding:12px 16px;display:flex}.lv-call{letter-spacing:-.1px;word-break:break-all;font-size:13.5px;font-weight:600}.lv-tag{color:var(--ink-2);background:var(--ground-5);white-space:nowrap;border-radius:99px;padding:2px 8px;font-size:12px;font-weight:500}.lv-status{white-space:nowrap;color:var(--green);background:var(--green-soft);border-radius:99px;padding:2px 8px;font-size:12px;font-weight:500}.lv-status-over{color:var(--ink-3);background:var(--ground-5)}.lv-sub{color:var(--ink-4);font-size:12px}.lv-connection-bad{color:var(--red)}.lv-session{border:1px solid var(--line-hover);background:var(--ground);height:30px;color:var(--ink-2);border-radius:8px;flex:none;align-items:center;margin-left:auto;padding:0 11px;font-size:12.5px;font-weight:500;display:inline-flex}.lv-session+.lv-listen{margin-left:8px}.lv-session:hover{border-color:var(--accent);color:var(--accent-hover)}.lv-listen{border:1px solid var(--line-control);background:var(--ground);height:30px;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:99px;align-items:center;gap:7px;margin-left:auto;padding:0 12px;font-size:12.5px;font-weight:550;display:flex}.lv-listen:hover{border-color:var(--accent);color:var(--accent-hover)}.lv-listen:disabled{cursor:default;color:var(--ink-6);border-color:var(--line-control)}.lv-listen-open{border-color:var(--accent-line);background:var(--ground-tint);color:var(--accent-hover)}.lv-desk{border-bottom:1px solid var(--line);background:var(--ground-side);flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:10px 16px;display:flex}.lv-desk-say{flex:100%;order:2;align-items:center;gap:8px;min-width:0;display:flex}.lv-desk-text{flex:1;min-width:120px}.lv-desk-dot{background:var(--line-muted);border-radius:50%;width:6px;height:6px}.lv-desk-dot-warm{background:var(--amber-dot)}.lv-desk-dot-on{background:var(--green-dot)}.lv-desk-armed,.lv-desk-armed:hover{border-color:var(--red-line);background:var(--red-soft);color:var(--red)}.lv-desk-holding,.lv-desk-holding:hover{border-color:var(--amber-dot);background:var(--amber-soft);color:var(--amber)}.lv-desk-number{width:150px}.lv-desk-refused{color:var(--red);flex-basis:100%;order:3;font-size:12.5px;line-height:1.5}.lv-desk-note{color:var(--ink-4);flex:1;font-size:12px}.lv-rows{flex:1;min-height:0;overflow:auto}.lv-recording{border-top:1px solid var(--line-3);padding:12px 14px}.lv-recording audio{width:100%}.lv-row{border-top:1px solid var(--line-3);display:block}.lv-row:first-child{border-top:0}.lv-line{flex-wrap:wrap;gap:4px 10px;padding:9px 14px;list-style:none;display:flex}.lv-line::-webkit-details-marker{display:none}details.lv-row>.lv-line{cursor:pointer}.lv-state{background:var(--ground-tint)}.lv-tool,.lv-confirm{background:var(--amber-tint)}.lv-supervisor{background:var(--pink-soft)}.lv-seq{width:26px;color:var(--ink-7);text-align:right;flex:none;padding-top:1px;font-size:12px}.lv-kind{min-width:46px;color:var(--ink);flex:none;padding-top:1px;font-size:12px;font-weight:550}.lv-kind-state{color:var(--accent-hover)}.lv-kind-tool,.lv-kind-confirm{color:var(--amber)}.lv-kind-quiet{color:var(--ink-6)}.lv-kind-event,.lv-kind-lookup{color:var(--indigo)}.lv-kind-supervisor{color:var(--pink)}.lv-text{min-width:0;color:var(--ink-2);word-break:break-word;flex:150px;font-size:12.5px;line-height:1.55}.lv-text-turn{color:var(--ink);font-size:13.5px}.lv-text-quiet{color:var(--ink-6)}.lv-who{color:var(--ink-4);margin-right:7px;font-size:12px;font-weight:600;display:inline-block}.lv-who-agent{color:var(--accent-hover)}.lv-note{color:var(--ink-4);margin-top:4px;font-size:11.5px;display:block}.lv-failed{color:var(--red)}.lv-more{padding:2px 14px 12px 106px}.lv-list{color:var(--ink-3);margin:0;padding:0;font-size:12px;line-height:1.6;list-style:none}.lv-data{font:12px var(--face-fixed);color:var(--ink-2);white-space:pre-wrap;word-break:break-word;margin:0}.lv-block-name{color:var(--ink-6);letter-spacing:.06em;text-transform:uppercase;margin:8px 0 4px;font-size:11px;font-weight:600}.lv-foot{border-top:1px solid var(--line);background:var(--ground-side);flex:none;padding:9px 14px}.lv-foot-line{color:var(--ink-4);margin:0;font-size:12.5px;line-height:1.55}.lv-foot-said{color:var(--ink)}.lv-foot-caret{vertical-align:-2px;background:var(--accent);width:6px;height:13px;margin-left:2px;animation:1s steps(2,end) infinite lv-blink;display:inline-block}@keyframes lv-blink{50%{opacity:0}}.lv-nothing{color:var(--ink-3);padding:26px 22px;font-size:13.5px;line-height:1.6}.lv-pane{border-left:1px solid var(--line);background:var(--ground-side);min-width:0;min-height:0;overflow:auto}.lv-pane-body{flex-direction:column;gap:9px;padding:0 15px 14px;display:flex}.lv-pane-body-tight{gap:7px}.lv-pane-text{color:var(--ink-3);padding:0 15px 14px;font-size:12.5px;line-height:1.55}.lv-seen{color:var(--ink-6);margin-left:5px;font-size:11px}.lv-seen-pii{color:var(--pink)}.lv-people{flex-direction:column;gap:5px;margin:8px 0 0;padding:0;list-style:none;display:flex}.lv-person{color:var(--ink);font-size:12.5px}.lv-person summary{cursor:pointer;align-items:center;gap:7px;list-style:none;display:flex}.lv-person summary::-webkit-details-marker{display:none}.lv-person-kind{color:var(--ink-6);margin-left:auto;font-size:11px}.lv-speaking{background:var(--green-dot)}.lv-meter{grid-template-columns:104px minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.lv-meter-name{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.lv-meter-value{color:var(--ink);white-space:nowrap;font-size:12.5px}.lv-blocks{color:var(--ink-3);font-size:12px}.lv-blocks summary{cursor:pointer;padding:2px 0}.lv-readings{flex-direction:column;gap:5px;margin:6px 0;display:flex}@media (width<=1100px){.lv{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);overflow:auto}.lv-pane{border-left:0;border-top:1px solid var(--line);max-height:40vh}}.fl{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(260px,320px) minmax(0,1fr);min-height:0;display:grid}.fl-side{border-right:1px solid var(--line);background:var(--ground-side);flex-direction:column;min-width:0;min-height:0;display:flex}.fl-side-head{border-bottom:1px solid var(--line);padding:13px 13px 11px;position:relative}.fl-standing{align-items:center;gap:7px;margin-bottom:9px;display:flex}.fl-count{white-space:nowrap;font-size:13px;font-weight:600}.fl-asked{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;margin-left:auto;font-size:11.5px;overflow:hidden}.fl-only{color:var(--ink-2);align-items:center;gap:6px;margin-bottom:9px;font-size:12px;display:flex}.fl-only-clear{color:var(--accent);cursor:pointer;background:0 0;border:0;flex:none;margin-left:auto;padding:0;font-size:12px}.fl-search{width:100%;margin-bottom:9px}.fl-all{color:var(--accent);padding:12px 14px 14px;font-size:12.5px;display:block}.fl-row-words{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.fl-row-top{align-items:baseline;gap:8px;display:flex}.fl-row-sub{color:var(--ink-4);align-items:center;gap:6px;font-size:12px;display:flex}.fl-score{flex:none;margin-left:auto}.fl-outcome{color:var(--ink-3);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.fl-simulate{border:1px dashed var(--line-hover);background:var(--ground);width:100%;height:32px;color:var(--ink-2);cursor:pointer;border-radius:9px;font-size:12.5px;font-weight:500}.fl-simulate:hover{border-color:var(--accent);color:var(--accent-hover)}.fl-sim{z-index:30;width:300px;position:absolute;top:calc(100% - 4px);left:8px}.fl-list{flex:1;padding:6px 0;overflow:auto}.fl-label{color:var(--ink-6);letter-spacing:.06em;text-transform:uppercase;padding:6px 13px 4px;font-size:11px;font-weight:600}.fl-empty{color:var(--ink-4);margin:0;padding:6px 13px;font-size:12px;line-height:1.5}.fl-refused{color:var(--red)}.fl-row{border-bottom:1px solid var(--line-2);width:100%;color:var(--ink);background:0 0;border-left:2px solid #0000;align-items:flex-start;gap:10px;padding:11px 14px;display:flex}.fl-row:hover{color:var(--ink);background:var(--ground-5)}.fl-row-on,.fl-row-on:hover{border-left-color:var(--accent);background:var(--ground-tint)}.fl-dot{background:var(--line-muted);border-radius:50%;flex:none;width:6px;height:6px;margin-top:6px}.fl-dot-live{background:var(--green-dot)}.fl-id{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:450;overflow:hidden}.fl-row-on .fl-id{font-weight:600}.fl-meta{color:var(--ink-6);flex:none;font-size:11.5px}.fl-meta-live{color:var(--green)}.fl-nothing{color:var(--ink-3);padding:26px 22px;font-size:13.5px;line-height:1.6}@media (width<=720px){.fl{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);overflow:auto}.fl-side{border-right:0;border-bottom:1px solid var(--line);max-height:34vh}}.sessions-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sessions-search{flex:1;width:auto;min-width:220px}.sessions-select{width:auto;color:var(--ink-2)}.sessions-id{min-width:0}.sessions-call{min-width:0;color:var(--accent);align-items:center;gap:6px;font-size:13px;font-weight:550;display:flex}.sessions-from{color:var(--ink-4);font-size:12px}.sessions-live{color:var(--green);font-weight:500}.sessions-more{margin-left:auto}.session-title{letter-spacing:-.4px;word-break:break-all;margin:7px 0 10px;font-size:20px;font-weight:650}.session-acts{flex-direction:column;gap:8px;display:flex}.session-buttons{flex-wrap:wrap;gap:8px;display:flex}.session-result{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.session-result-lead{color:var(--ink-2);font-size:12.5px;font-weight:550}.session-result-note{color:var(--ink-4);font-size:12.5px}.session-result-line{flex-basis:100%}.session-path{color:var(--ink-2);font-size:12px}.session-facts .ui-stat{padding:13px 15px}.session-facts .ui-stat-value{line-height:normal}.session-outcome-label{color:var(--ink-4);margin-bottom:5px;font-size:11.5px}.session-outcome{max-width:760px;font-size:13.5px;line-height:1.55}.session-split{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.session-side{flex-direction:column;gap:14px;display:flex}.session-turns{flex-direction:column;gap:13px;padding:14px 16px;display:flex}.session-turn{gap:10px;display:flex}.session-who{width:52px;color:var(--ink-4);flex:none;padding-top:2px;font-size:12px;font-weight:550}.session-who-agent{color:var(--accent-hover)}.session-said{color:var(--ink-2);min-width:0;font-size:13.5px;line-height:1.6}.session-said-agent{color:var(--ink)}.session-interrupted{color:var(--ink-6);font-size:12px}.session-latency{flex-wrap:wrap;gap:14px 22px;padding:14px 16px;display:flex}.session-latency-none{padding:14px 16px}.session-latency-label{color:var(--ink-4);margin-bottom:4px;font-size:11.5px}.session-latency-value{letter-spacing:-.6px;font-size:21px;font-weight:600}.session-latency-max{color:var(--ink-6);margin-top:2px;font-size:11.5px}.session-standing{margin-bottom:5px;font-size:13px;font-weight:550}.session-standing-amber{color:var(--amber)}.session-standing-green{color:var(--green)}.session-standing-red{color:var(--red)}.session-sentence{color:var(--ink-3);margin:0 0 12px;font-size:12.5px;line-height:1.55}.session-sentence:last-child{margin-bottom:0}.session-judges{flex-direction:column;gap:10px;margin:8px 0 12px;display:flex}.session-judge-line{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.session-judge-name{font-size:12.5px;font-weight:550}.session-judge-reason{color:var(--ink-3);margin-top:3px;font-size:12.5px;line-height:1.5}.session-judge-said{color:var(--ink-4)}.session-seq{color:var(--accent);font-size:11.5px}.session-total{margin-left:auto;font-size:13px;font-weight:550}.session-cost{border-top:1px solid var(--line-3);align-items:baseline;gap:12px;padding:10px 16px;display:flex}.session-cost:first-child{border-top:0}.session-cost-model{flex:1;min-width:0;font-size:13px}.session-cost-kind{color:var(--ink-4)}.session-cost-units{color:var(--ink-3);white-space:nowrap;flex:none;font-size:12.5px}.session-cost-eur{text-align:right;white-space:nowrap;flex:none;width:74px;font-size:13px;font-weight:500}.session-note{border-top:1px solid var(--line-3);color:var(--ink-4);padding:10px 16px 12px;font-size:12px;line-height:1.55}.session-player{width:100%;margin-bottom:10px;display:block}.session-consents{padding:4px 16px}.session-consent{border-top:1px solid var(--line-3);padding:11px 0}.session-consent:first-child{border-top:0}.session-consent-join{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.session-consent-tool{font-size:13px;font-weight:550}.session-consent-seqs{color:var(--ink-2);font-size:12.5px}.session-consent-id{color:var(--ink-6);font-size:11.5px}.session-consent-said{color:var(--ink-2);margin-top:4px;font-size:13px;line-height:1.5}.session-consent-audience{color:var(--ink-4);margin-top:3px;font-size:12px}.session-prompt{flex-direction:column;gap:8px;padding:14px 16px;display:flex}.session-hash{font-size:12px}.session-log-action{margin-left:auto}.session-log{max-height:720px;overflow:auto}.session-entry{border-top:1px solid var(--line-3);grid-template-columns:34px 64px 128px minmax(0,1fr);gap:10px;padding:9px 16px;scroll-margin:60px;display:grid}.session-entry:first-child{border-top:0}.session-entry-opens{cursor:pointer}.session-entry-opens:hover{background:var(--ground-side)}.session-entry-cited{box-shadow:inset 2px 0 0 var(--accent);background:var(--ground-tint)}.session-entry-seq{color:var(--ink-7);text-align:right;padding-top:1px;font-size:12px}.session-entry-since{font:11.5px var(--face-fixed);color:var(--ink-6);padding-top:1px}.session-entry-type{color:var(--ink-4);word-break:break-word;font-size:12px;font-weight:550}.session-entry-mark{color:var(--ink-6)}.session-entry-turn .session-entry-type{color:var(--ink)}.session-entry-state{background:var(--ground-tint)}.session-entry-state .session-entry-type{color:var(--accent-hover)}.session-entry-tool{background:var(--amber-tint)}.session-entry-tool .session-entry-type{color:var(--amber)}.session-entry-call .session-entry-type{color:var(--green)}.session-entry-payload{min-width:0;color:var(--ink-2);word-break:break-word;font-size:12.5px;line-height:1.55}.session-entry-turn .session-entry-payload{color:var(--ink);font-size:13.5px}.session-entry-quiet .session-entry-payload{color:var(--ink-4)}.session-entry-caret{color:var(--ink-6)}.session-chips{flex-wrap:wrap;gap:5px;margin-top:4px;display:flex}.session-chip{color:var(--ink-4);background:var(--ground-5);white-space:nowrap;border-radius:99px;padding:1px 7px;font-size:11.5px}.session-chip b{color:var(--ink-2);font-weight:550}.session-fields{flex-direction:column;gap:2px;margin-top:6px;display:flex}.session-field{font:11.5px var(--face-fixed);gap:10px;display:flex}.session-field-name{width:220px;color:var(--ink-4);text-overflow:ellipsis;flex:none;overflow:hidden}.session-field-value{min-width:0;color:var(--ink-2);word-break:break-all}@media (width<=900px){.session-split{grid-template-columns:minmax(0,1fr)}.session-entry{grid-template-columns:30px minmax(0,1fr)}.session-entry-since,.session-entry-type,.session-entry-payload{grid-column:2}}.session-attach{margin-top:12px}.session-refused-line{color:var(--red)}.session-details{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:0;align-items:center;gap:10px;padding:13px 16px;display:flex}.session-details:hover{background:var(--ground-side)}.session-details-caret{color:var(--accent);margin-left:auto;font-size:12.5px;font-weight:500}.home-split{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.home-side{flex-direction:column;gap:14px;display:flex}.home-floor-title{align-items:center;gap:8px;display:flex}.home-floor{flex-direction:column;gap:11px;padding:14px 16px;display:flex}.home-quiet{color:var(--ink-3);font-size:12.5px;line-height:1.55}.home-live{align-items:center;gap:10px;display:flex}.home-live-name{font-size:13px;font-weight:500}.home-live-sub{color:var(--ink-4);font-size:12px}.home-channels{flex-direction:column;gap:12px;padding:14px 16px;display:flex}.home-channel-line{align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.home-channel-name{font-size:12.5px;font-weight:500}.home-channel-share{color:var(--ink-4);margin-left:auto;font-size:12px}.home-steps{padding:6px 8px 10px}.home-step{color:var(--ink);border-radius:9px;align-items:center;gap:10px;padding:8px;display:flex}.home-step:hover{background:var(--ground-side);color:var(--ink)}.home-step-open{cursor:pointer}.home-step-done{background:var(--green-dot);width:16px;height:16px;color:var(--on-accent);border-radius:50%;place-items:center;font-size:10px;display:grid}.home-step-todo{border:1.5px solid var(--line-hover-2);border-radius:50%;width:16px;height:16px}.home-step-name{flex:1;font-size:12.5px;font-weight:500}.home-step-name-done{color:var(--ink-4);font-weight:400;text-decoration:line-through}.home-step-action{color:var(--accent);font-size:12px;font-weight:500}@media (width<=900px){.home-split{grid-template-columns:minmax(0,1fr)}}.home-step-button{text-align:left;width:100%;font:inherit;background:0 0;border:0}.keys-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.keys-label-field{flex:1;min-width:200px}.keys-env-select{width:auto}.keys-form-note{color:var(--ink-4);flex-basis:100%;font-size:12.5px}.keys-minted-actions{gap:6px;margin-left:auto;display:flex}.keys-minted-warn{color:var(--amber);padding:10px 16px 12px;font-size:12.5px}.keys-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13.5px;font-weight:550;overflow:hidden}.keys-name-gone{color:var(--ink-4)}.keys-scopes{color:var(--ink-4);min-width:0;font-size:12.5px;line-height:1.5}.keys-revoke{visibility:hidden}.keys-row:hover .keys-revoke,.keys-revoke-sure,.keys-revoke:focus-within{visibility:visible}@media (hover:none){.keys-revoke{visibility:visible}}.prov-hint{color:var(--ink-4);margin-top:10px;font-size:12.5px;line-height:1.6}.prov-row{border-bottom:1px solid var(--line-3);align-items:center;gap:12px;padding:12px 16px;display:grid}.prov-row:hover{background:var(--ground-side)}.prov-name{text-overflow:ellipsis;min-width:0;font-size:13.5px;font-weight:550;overflow:hidden}.prov-note{min-width:0;color:var(--ink-3);align-items:center;gap:10px;font-size:12.5px;display:flex}.prov-note .ui-text-action{margin-left:auto}.prov-kinds{color:var(--ink-4);font-size:12px}.kb-base{align-items:center;gap:10px;margin-left:auto;display:flex}.kb-base-label{color:var(--ink-4);font-size:12.5px}.kb-base-input{background:var(--ground-5);color:var(--ink);border:1px solid #0000;border-radius:7px;padding:3px 9px;font-size:12.5px;font-weight:550}.kb-base-input:focus{border-color:var(--accent);box-shadow:var(--accent-ring)}.kb-here{flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;display:flex}.kb-path{color:var(--ink-3);word-break:break-all;font-size:13px}.kb-count{font-size:13px;font-weight:550}.kb-figures{border-bottom:1px solid var(--line-3);gap:22px;padding:14px 16px;display:flex}.kb-figure-label{color:var(--ink-4);margin-bottom:4px;font-size:11.5px}.kb-figure{letter-spacing:-.6px;font-size:21px;font-weight:600}.kb-miss{border-top:1px solid var(--line-3);padding:11px 16px}.kb-miss-asks{color:var(--ink-2);font-size:13px}.kb-miss-why{color:var(--ink-4);margin-top:2px;font-size:12px}.mem-look{align-items:center;gap:8px;min-width:0;margin-left:auto;display:flex}.mem-look .ui-input{width:260px;max-width:100%}.mem-caller{font-size:13px;font-weight:550}.mem-fact{color:var(--ink-2);min-width:0;font-size:13px;line-height:1.5}.mem-gone .mem-fact,.mem-gone .mem-caller{color:var(--ink-6)}.mem-superseded{color:var(--ink-6);font-size:12px}.mem-category{text-align:right}.mem-goldens{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.mem-run{flex-direction:column;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.mem-say{color:var(--ink-3);margin:0;font-size:12.5px;line-height:1.55}.mem-figures{border-top:1px solid var(--line-2);gap:22px;padding:12px 16px;display:flex}.mem-figure-label{color:var(--ink-4);margin-bottom:4px;font-size:11.5px}.mem-figure{letter-spacing:-.4px;font-size:17px;font-weight:600}.mem-miss{border-top:1px solid var(--line-3);padding:10px 16px}.mem-miss-asks{color:var(--ink-2);font-size:13px}.mem-miss-why{color:var(--ink-4);margin-top:2px;font-size:12px}@media (width<=720px){.mem-goldens{grid-template-columns:minmax(0,1fr)}}.num-row{border-bottom:1px solid var(--line-3);flex-wrap:wrap;align-items:center;gap:12px;padding:13px 16px;display:flex}.num-number{font-size:14px;font-weight:550}.num-arrow{color:var(--ink-6);font-size:13px}.num-agent{color:var(--ink-2);font-size:13.5px}.num-remove,.num-end{margin-left:auto}.num-foot{color:var(--ink-4);padding:11px 16px;font-size:12.5px}.num-ways{margin-left:auto}.num-ways .ui-segment:disabled{cursor:default;opacity:.5}.num-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:14px 16px;display:grid}.num-fields-3{grid-template-columns:repeat(3,minmax(0,1fr))}.num-actions{flex-wrap:wrap;align-items:center;gap:12px;padding:0 16px 14px;display:flex}.num-note{color:var(--ink-4);font-size:12.5px}.num-plan{border-top:1px solid var(--line-2);background:var(--ground-side);padding:14px 16px}.num-plan-done{background:var(--ground)}.num-plan-title{margin-bottom:10px;font-size:13px;font-weight:550}.num-steps{flex-direction:column;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.num-steps li{font:12.5px var(--face-fixed);color:var(--ink-2);gap:10px;line-height:1.5;display:flex}.num-step-kind{min-width:70px;color:var(--accent-hover);flex:none;font-weight:500}.num-step-text{word-break:break-word;min-width:0}.num-plan-moves{gap:8px;display:flex}.num-carrier{align-items:center;gap:12px;padding:14px 16px;display:flex}.num-kind{color:var(--accent-hover);background:var(--accent-soft);border-radius:7px;flex:none;padding:3px 9px;font-size:11.5px;font-weight:600}.num-carrier-standing{flex:none;font-size:13.5px;font-weight:500}.num-carrier-account{min-width:0;color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.num-carrier-moves{flex:none;gap:8px;margin-left:auto;display:flex}.num-body{color:var(--ink-2);padding:14px 16px;font-size:13.5px;line-height:1.6}@media (width<=720px){.num-fields,.num-fields-3{grid-template-columns:minmax(0,1fr)}}.num-outbound-group{padding:0 16px 14px}.num-outbound-title{color:var(--ink-2);margin-bottom:3px;font-size:12.5px;font-weight:600}.num-outbound-say{color:var(--ink-4);margin-bottom:10px;font-size:12.5px}.num-fields-4{grid-template-columns:minmax(0,1.4fr) 110px minmax(0,1fr) minmax(0,1fr)}.num-fields-flush{padding:0}@media (width<=720px){.num-fields-4{grid-template-columns:minmax(0,1fr)}}.num-add{border-top:1px solid var(--line-2);background:var(--ground-side)}.num-add-head{align-items:center;gap:10px;padding:12px 16px 0;display:flex}.num-add-close{color:var(--ink-4);margin-left:auto}.num-added{border-top:1px solid var(--line-2);color:var(--green);padding:12px 16px;font-size:13px}.num-hero{flex-direction:column;gap:8px;max-width:560px;padding:28px 24px 26px;display:flex}.num-hero-title{letter-spacing:-.4px;font-size:18px;font-weight:650}.num-hero-say{color:var(--ink-3);margin:0;font-size:13.5px;line-height:1.6}.num-hero-missing{color:var(--amber);margin:0;font-size:13px;line-height:1.6}.num-hero-move{flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;display:flex}.num-on{color:var(--ink-2);align-items:center;gap:9px;font-size:13.5px;display:flex}.num-on b{color:var(--green);font-weight:600}.num-placed{color:var(--ink-2);font-size:13px}.num-placed a{color:var(--accent);font-weight:500}.num-refused{padding:0 16px 14px}.num-limits{align-items:flex-start;gap:16px;padding:2px 4px;display:flex}.num-limits>div{flex:1;min-width:0}.num-limits-say{color:var(--ink-3);font-size:12.5px;line-height:1.6}.num-limits-who{color:var(--ink-5);margin-top:2px;font-size:12px}.pipe-legs{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}.pipe-leg-head{border-bottom:1px solid var(--line-2);background:var(--ground-side);align-items:center;gap:8px;padding:11px 15px;display:flex}.pipe-leg-vendor{font-size:13px;font-weight:600}.pipe-leg-job{color:var(--ink-4);margin-left:auto;font-size:11.5px}.pipe-leg-body{flex-direction:column;gap:12px;padding:14px 15px;display:flex}.pipe-field+.pipe-field{border-top:1px solid var(--line-2);padding-top:12px}.pipe-label{color:var(--ink-4);margin-bottom:3px;font-size:11.5px}.pipe-value{word-break:break-word;font-size:13.5px;font-weight:550}.pipe-note{color:var(--ink-4);margin:3px 0 0;font-size:12.5px;line-height:1.5}.pipe-refused{color:var(--red);font-size:12.5px;line-height:1.5}.pipe-anatomy{padding:6px 16px 14px}.pipe-turn-row{border-bottom:1px solid var(--line-3);grid-template-columns:120px minmax(0,1fr) 72px;align-items:center;gap:12px;padding:11px 0;display:grid}.pipe-turn-row-last{border-bottom:0}.pipe-turn-label{font-size:13px;font-weight:500}.pipe-track{background:var(--ground-5);border-radius:99px;height:7px;display:block;overflow:hidden}.pipe-bar{border-radius:99px;height:100%;display:block}.pipe-ms{text-align:right;font-size:12.5px;font-weight:500}.pipe-ms-none{color:var(--ink-6);font-weight:400}.pipe-controls{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px 16px;padding:14px 16px;display:grid}.pipe-control-wide{grid-column:1/-1}.pipe-stage{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.pipe-save{flex-wrap:wrap;align-items:center;gap:12px;padding:0 16px 14px;display:flex}.pipe-save-note{color:var(--ink-4);font-size:12.5px}.pipe-save-error{color:var(--red);font-size:12.5px}.pipe-turned{align-items:center;gap:12px;padding:11px 16px;display:flex}.pipe-turned+.pipe-turned{border-top:1px solid var(--line-3)}.pipe-turned-field{width:110px;color:var(--ink-4);flex:none;font-size:12.5px}.pipe-turned-value{word-break:break-word;flex:1;min-width:0;font-size:13px}.terminal{flex:1;padding:12vh 22px 48px;overflow:auto}.terminal-card{border:1px solid var(--line);background:var(--ground);max-width:460px;box-shadow:var(--shadow-card);border-radius:14px;margin:0 auto;padding:26px 24px 24px}.terminal-mark{width:auto;height:22px;margin-bottom:18px;display:block}.terminal-title{letter-spacing:-.5px;margin:0 0 7px;font-size:22px;font-weight:650}.terminal-lede{color:var(--ink-3);margin:0 0 20px;font-size:14px;line-height:1.55}.terminal-refused{color:var(--red);margin:14px 0 0;font-size:13px;line-height:1.5}.team-invite{border-bottom:1px solid var(--line-2);background:var(--ground-side);padding:14px 16px}.team-roles{color:var(--ink-4);flex-wrap:wrap;align-items:baseline;gap:4px;margin-top:10px;font-size:12.5px;line-height:1.6;display:flex}.team-invite-close{margin-left:auto}.team-editable{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px dashed #0000;justify-self:start;max-width:100%;padding:0;font-size:13px}.team-editable:hover{border-bottom-color:var(--line-hover)}.team-sure{color:var(--ink-3);font-size:12.5px}.team-role{color:var(--ink-2)}.team-agents{color:var(--ink-4)}.team-link-moves{gap:8px;margin-left:auto;display:flex}.team-role-opens{line-height:1.5}.team-sso-values{flex-direction:column;gap:9px;padding:14px 16px;display:flex}.team-sso-form{flex-direction:column;gap:12px;padding:14px 16px;display:flex}.team-sso-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:12px;display:grid}.team-sso-required{align-items:center;gap:10px;height:36px;display:flex}.team-sso-required-words{color:var(--ink-2);flex:1;font-size:13px}.team-sso-moves{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.team-sso-redirect{border-top:1px solid var(--line-2)}.team-sso-redirect-head{justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;display:flex}@media (width<=720px){.team-sso-grid{grid-template-columns:minmax(0,1fr)}}.usage-call{color:var(--accent);min-width:0;font-size:13px}.usage-right{text-align:right}.usage-cost{text-align:right;white-space:nowrap;font-size:13px;font-weight:500}.usage-bar{align-self:center;padding:0 14px}.widget-copy{margin-left:auto}.widget-endpoints{border-top:1px solid var(--line-2);color:var(--ink-4);padding:11px 16px 13px;font-size:12.5px;line-height:1.6}.widget-endpoints a{color:var(--accent)}.widget-split{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:14px;display:grid}.widget-fields{flex-direction:column;gap:13px;padding:14px 16px;display:flex}.widget-pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.widget-accent-label{color:var(--ink-2);margin-bottom:7px;font-size:12.5px;font-weight:500}.widget-accents{gap:7px;display:flex}.widget-accent{cursor:pointer;border:0;border-radius:8px;width:26px;height:26px;padding:0}.widget-toggle{align-items:center;gap:10px;display:flex}.widget-toggle-label{color:var(--ink-2);flex:1;font-size:13px}.widget-preview{border:1px solid var(--line);background:var(--ground-side);border-radius:12px;flex-direction:column;align-items:center;gap:12px;min-width:0;padding:16px;display:flex}.widget-preview-label{color:var(--ink-4);font-size:11.5px}.widget-stage{justify-content:center;width:100%;min-height:120px;display:flex}.widget-open{color:var(--accent);font-size:12.5px;font-weight:500}.widget-blank{background:var(--ground);height:100vh;position:relative}.widget-blank-mark{color:var(--ink-6);font-size:11px;position:absolute;top:12px;left:16px}.widget-blank-refused{color:var(--red);margin:0;font-size:12.5px;position:absolute;top:36px;left:16px}@media (width<=760px){.widget-split,.widget-pair{grid-template-columns:minmax(0,1fr)}}.ring-stack{right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:60;pointer-events:none;flex-direction:column;gap:10px;width:min(360px,100vw - 32px);display:flex;position:fixed}.ring{pointer-events:auto;border:1px solid var(--line);background:var(--ground);border-radius:14px;animation:.28s cubic-bezier(.2,.9,.3,1.2) ring-arrive;position:relative;box-shadow:0 1px 2px #1010140a,0 12px 32px -8px #1010142e}.ring:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:12px;bottom:12px;left:0}.ring-ended{opacity:.7}.ring-ended:before{background:var(--line-muted)}@keyframes ring-arrive{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:none}}.ring-body{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--ink);background:0 0;border:0;border-radius:14px;align-items:center;gap:12px;padding:13px 16px;display:flex}.ring-body:hover{background:var(--ground-tint)}.ring-icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.ring-icon:after{content:"";border:2px solid var(--accent);border-radius:50%;animation:1.6s ease-out infinite ring-pulse;position:absolute;inset:0}.ring-icon-ended{background:var(--ground-5);color:var(--ink-4)}.ring-icon-ended:after{display:none}@keyframes ring-pulse{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.55)}}.ring-words{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.ring-kicker{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:600}.ring-ended .ring-kicker{color:var(--ink-4)}.ring-who{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.ring-sub{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.ring-top{align-items:baseline;gap:8px;display:flex}.ring-watch{color:var(--accent);flex:none;margin-left:auto;font-size:12px;font-weight:550}.ring-close{border:1px solid var(--line);background:var(--ground);width:24px;height:24px;color:var(--ink-5);cursor:pointer;border-radius:50%;font-size:17px;line-height:1;display:none;position:absolute;top:-9px;right:-9px;box-shadow:0 2px 6px #1010141f}.ring:hover .ring-close,.ring-close:focus-visible{place-items:center;display:grid}.ring-close:hover{background:var(--ground-5);color:var(--ink)}@media (prefers-reduced-motion:reduce){.ring,.ring-icon:after{animation:none}}.frame{background:var(--ground);min-height:100vh;display:flex}.frame-main{flex-direction:column;flex:1;min-width:0;height:100vh;display:flex;overflow:hidden}.frame-screen{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.side{width:var(--side);border-right:1px solid var(--line);background:var(--ground-side);flex-direction:column;flex:none;height:100vh;display:flex;position:sticky;top:0}.side-folded{width:var(--side-folded)}.side-workspace-wrap{flex-direction:column;display:flex}.side-workspace{cursor:pointer;text-align:left;color:var(--ink);background:0 0;border:0;border-radius:9px;align-items:center;gap:9px;margin:12px 10px 8px;padding:7px 8px;display:flex}.side-workspace:hover{background:var(--ground-5)}.side-folded .side-workspace{justify-content:center;margin:12px 6px 8px;padding:7px 0}.side-tile{background:var(--accent);width:24px;height:24px;color:var(--on-accent);border-radius:7px;flex:none;place-items:center;font-size:11px;font-weight:600;display:grid}.side-label{flex:1;min-width:0}.side-folded .side-label,.side-folded .side-caret,.side-folded .side-kbd,.side-folded .side-badge{display:none}.side-org{letter-spacing:-.1px;white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;display:block;overflow:hidden}.side-org-sub{color:var(--ink-4);font-size:11.5px;display:block}.side-caret{color:var(--ink-6);flex:none;font-size:11px}.side-search-wrap{padding:0 10px 10px}.side-folded .side-search-wrap{padding:0 6px 10px}.side-search{border:1px solid var(--line-control);background:var(--ground);width:100%;height:34px;color:var(--ink-4);cursor:pointer;text-align:left;border-radius:9px;align-items:center;gap:8px;padding:0 10px;font-size:13px;display:flex}.side-search:hover{border-color:var(--line-hover);color:var(--ink-2)}.side-folded .side-search{justify-content:center;padding:0}.side-kbd{color:var(--ink-6);flex:none;font-size:11px}.side-nav{flex:1;padding:0 10px;overflow:auto}.side-group{color:var(--ink-4);padding:14px 9px 5px;font-size:11.5px;font-weight:500}.side-group-first{padding-top:6px}.side-folded .side-group{background:var(--line-control);height:1px;margin:12px 8px 8px;padding:0;font-size:0;overflow:hidden}.side-link{color:var(--ink-2);border-radius:9px;align-items:center;gap:10px;margin-bottom:1px;padding:7px 9px;font-size:13.5px;font-weight:450;display:flex}.side-link:hover{color:var(--ink-2);background:var(--ground-5)}.side-folded .side-link{justify-content:center;padding:8px 0}.side-link-on,.side-link-on:hover{background:var(--accent-selected);color:var(--accent-hover);font-weight:550}.side-icon{color:var(--ink-4);flex:none;place-items:center;display:grid}.side-link-on .side-icon{color:var(--accent)}.side-icon-live{color:var(--green-dot)}.side-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.side-name-agent{font-size:13px}.side-folded .side-name{display:none}.side-badge{color:var(--ink-4);flex:none;font-size:11.5px}.side-badge-live{color:var(--green);background:var(--green-soft);border-radius:99px;padding:1px 7px;font-weight:550}.side-none{color:var(--ink-6);padding:4px 9px;font-size:12.5px}.side-foot{border-top:1px solid var(--line);align-items:center;gap:9px;padding:10px;display:flex}.side-folded .side-foot{flex-direction:column}.side-user{flex:1;align-items:center;gap:9px;min-width:0;display:flex}.side-folded .side-user{flex:none}.side-user-avatar{background:var(--ink);width:26px;height:26px;color:var(--on-accent);border-radius:8px;flex:none;place-items:center;font-size:10.5px;font-weight:600;display:grid}.side-user-name{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:500;display:block;overflow:hidden}.side-user-role{color:var(--ink-4);font-size:11.5px;display:block}.side-fold{border:1px solid var(--line-control);background:var(--ground);width:28px;height:28px;color:var(--ink-4);cursor:pointer;border-radius:8px;flex:none;place-items:center;display:grid}.side-fold:hover{border-color:var(--line-hover);color:var(--ink)}.side-orgs{z-index:40;background:var(--ground);border:1px solid var(--line-control);max-height:60vh;box-shadow:var(--shadow-pop);border-radius:12px;padding:6px;position:absolute;top:54px;left:10px;right:10px;overflow:auto}.side-orgs-label{color:var(--ink-4);padding:7px 8px 5px;font-size:11.5px;font-weight:500}.side-org-row{cursor:pointer;text-align:left;width:100%;color:var(--ink);background:0 0;border:0;border-radius:9px;align-items:center;gap:9px;padding:7px 8px;font-size:13px;display:flex}.side-org-row:hover{background:var(--ground-side)}.side-org-row:disabled{cursor:default}.side-org-role{color:var(--ink-4);margin-left:auto;font-size:11.5px}.top{height:var(--head);border-bottom:1px solid var(--line);background:var(--ground);z-index:5;flex:none;align-items:center;gap:10px;padding:0 22px;display:flex}.top-crumb{color:var(--ink-6);white-space:nowrap;font-size:13px}.top-title{letter-spacing:-.2px;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.top-right{align-items:center;gap:8px;margin-left:auto;display:flex;position:relative}.top-leave{border:1px solid var(--line-control);background:var(--ground);height:30px;color:var(--ink-2);cursor:pointer;border-radius:8px;padding:0 11px;font-size:12.5px;font-weight:500}.top-leave:hover{border-color:var(--line-hover)}.switch-trigger{border:1px solid var(--line-control);background:var(--ground);cursor:pointer;height:30px;color:var(--ink);border-radius:8px;align-items:center;gap:8px;padding:0 9px;display:flex}.switch-trigger-open{border-color:var(--accent-line)}.switch-agent{white-space:nowrap;font-size:12.5px;font-weight:550}.switch-caret{color:var(--ink-6);font-size:10px}.switch-panel{background:var(--ground);border:1px solid var(--line-control);width:384px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-pop);z-index:40;border-radius:14px;position:absolute;top:38px;right:0;overflow:hidden}.switch-who{border-bottom:1px solid var(--line-2);align-items:center;gap:12px;padding:15px 16px;display:flex}.switch-who-name{letter-spacing:-.2px;font-size:14px;font-weight:600}.switch-who-sub{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.switch-where{border-bottom:1px solid var(--line-2);flex-direction:column;gap:11px;padding:13px 16px;display:flex}.switch-label{color:var(--ink-4);margin-bottom:6px;font-size:11.5px;font-weight:500}.switch-choices{flex-wrap:wrap;gap:5px;display:flex}.switch-note{color:var(--ink-4);margin-top:6px;font-size:12px;line-height:1.5}.switch-agents{max-height:50vh;padding:13px 16px 15px;overflow:auto}.switch-agents .switch-label{margin-bottom:9px}.switch-list{flex-direction:column;gap:7px;display:flex}.switch-card{border:1px solid var(--line-2);background:var(--ground-side);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:10px;width:100%;padding:9px 11px;display:flex}.switch-card:hover{border-color:var(--accent-line);background:var(--ground-tint)}.switch-card:disabled{cursor:default;border-color:var(--line-2);background:var(--ground-side)}.switch-card-here{border-color:var(--accent-line);background:var(--ground-tint)}.switch-card-name{color:var(--ink);font-size:13.5px;font-weight:600;display:block}.switch-card-sub{color:var(--ink-4);font-size:12px;display:block}.switch-card-open{color:var(--accent);flex:none;font-size:12.5px;font-weight:550}.switch-card:disabled .switch-card-open{color:var(--ink-6)}.switch-looking{border-bottom:1px solid var(--line-2);color:var(--ink-2);background:var(--amber-tint);align-items:center;gap:10px;padding:11px 16px;font-size:12.5px;display:flex}.switch-empty{color:var(--ink-4);font-size:12.5px;line-height:1.55}.agenthead{flex-wrap:wrap;flex:none;align-items:center;gap:14px;padding:12px 22px 0;display:flex}.agenthead-name{align-items:center;gap:9px;display:flex}.agenthead-slug{letter-spacing:-.3px;font-size:15px;font-weight:650}.agenthead-status{border-radius:99px;padding:2px 8px;font-size:12px;font-weight:500}.agenthead-doors{color:var(--ink-4);font-size:12.5px}.agenttabs{border-bottom:1px solid var(--line);flex:none;gap:2px;padding:10px 22px 0;display:flex;overflow-x:auto}.agenttab{white-space:nowrap;height:36px;color:var(--ink-3);background:0 0;border-bottom:2px solid #0000;flex:none;align-items:center;margin-bottom:-1px;padding:0 12px;font-size:13px;font-weight:450;display:flex}.agenttab:hover{color:var(--ink)}.agenttab-on,.agenttab-on:hover{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.missing{max-width:640px;color:var(--ink-3);padding:26px 22px;font-size:13.5px;line-height:1.6}.palette-veil{z-index:60;background:#1010143d;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;display:flex;position:fixed;inset:0}.palette{background:var(--ground);border:1px solid var(--line-control);width:560px;max-width:100%;box-shadow:var(--shadow-pop);border-radius:14px;overflow:hidden}.palette-input-row{border-bottom:1px solid var(--line-2);color:var(--ink-4);align-items:center;gap:10px;padding:0 16px;display:flex}.palette-input{min-width:0;height:48px;color:var(--ink);background:0 0;border:0;flex:1;font-size:14px}.palette-list{max-height:52vh;padding:6px;overflow:auto}.palette-group{color:var(--ink-4);padding:8px 10px 4px;font-size:11.5px;font-weight:500}.palette-item{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;display:flex}.palette-item-on{background:var(--accent-selected);color:var(--accent-hover)}.palette-item-sub{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;max-width:55%;margin-left:auto;font-size:12px;overflow:hidden}.palette-none{color:var(--ink-4);padding:18px 12px;font-size:13px}@media (width<=720px){.side:not(.side-folded){width:var(--side-folded)}.side:not(.side-folded) .side-label,.side:not(.side-folded) .side-caret,.side:not(.side-folded) .side-kbd,.side:not(.side-folded) .side-badge,.side:not(.side-folded) .side-name{display:none}.side:not(.side-folded) .side-link{justify-content:center;padding:8px 0}.side:not(.side-folded) .side-group{background:var(--line-control);height:1px;margin:12px 8px 8px;padding:0;font-size:0;overflow:hidden}.side:not(.side-folded) .side-foot{flex-direction:column}.top{padding:0 16px}.switch-agent,.top-crumb{display:none}}
|
package/dist/cli/ui/index.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/** `pinecall ui [agent]`: the console on 127.0.0.1 for the life of the command, opened in this machine's browser. */
|
|
2
|
-
import type { Group } from "../groups.js";
|
|
3
|
-
export declare const group: Group;
|
|
4
|
-
/** What ui can be told besides the argv: where to print, and which browser to open. Tests only. */
|
|
5
|
-
export interface Opening {
|
|
6
|
-
out?: NodeJS.WritableStream;
|
|
7
|
-
err?: NodeJS.WritableStream;
|
|
8
|
-
open?: (url: string) => void;
|
|
9
|
-
env?: NodeJS.ProcessEnv;
|
|
10
|
-
files?: string;
|
|
11
|
-
}
|
|
12
|
-
/** Serve, open, wait, close. The org key is read once and spent only by the server, never printed. */
|
|
13
|
-
export declare function ui(argv: string[], how?: Opening): Promise<number>;
|
|
14
|
-
export declare function consoleFiles(): string;
|
|
15
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/index.ts"],"names":[],"mappings":"AAAA,qHAAqH;AAOrH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAoB1C,eAAO,MAAM,KAAK,EAAE,KAcnB,CAAC;AAEF,mGAAmG;AACnG,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,sGAAsG;AACtG,wBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAuD3E;AAWD,wBAAgB,YAAY,IAAI,MAAM,CAMrC"}
|
package/dist/cli/ui/index.js
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
/** `pinecall ui [agent]`: the console on 127.0.0.1 for the life of the command, opened in this machine's browser. */
|
|
2
|
-
import { existsSync } from "node:fs";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
-
import { slugOf } from "../../runtime/connect.js";
|
|
5
|
-
import { doorLine, theDoor } from "../env.js";
|
|
6
|
-
import { agentOfThisDirectory, DEFAULT_AGENTS } from "../load.js";
|
|
7
|
-
import { headless, openInBrowser } from "./browser.js";
|
|
8
|
-
import { chattingFrom } from "./chatting.js";
|
|
9
|
-
import { driftingFrom } from "./drifting.js";
|
|
10
|
-
import { ownDoors } from "./doors.js";
|
|
11
|
-
import { knowingFrom } from "./knowing.js";
|
|
12
|
-
import { promotingFrom } from "./promoting.js";
|
|
13
|
-
import { rememberingFrom } from "./remembering.js";
|
|
14
|
-
import { reproducingFrom } from "./reproducing.js";
|
|
15
|
-
import { LocalConsole } from "./server.js";
|
|
16
|
-
import { simulatingFrom } from "./simulating.js";
|
|
17
|
-
import { testingFrom } from "./testing.js";
|
|
18
|
-
const USAGE = "usage: pinecall ui [agent]";
|
|
19
|
-
// A checkout runs everything else from its sources; the console is the one thing that has to be
|
|
20
|
-
// bundled first, because a browser reads no TypeScript. The sentence names the command.
|
|
21
|
-
const NOT_BUILT = "the console is not built: run scripts/build once, then pinecall ui";
|
|
22
|
-
export const group = {
|
|
23
|
-
purpose: "the console: this gateway's agents, their calls and logs as they happen, evals, and a page to talk",
|
|
24
|
-
usage: `${USAGE}
|
|
25
|
-
|
|
26
|
-
Opens the console on this gateway, landing on the agent of this directory — the class in
|
|
27
|
-
${DEFAULT_AGENTS[0]} — or on the agent named, or on the list of every agent the gateway holds when
|
|
28
|
-
there is neither. The console is served on 127.0.0.1 for as long as the command runs and opened
|
|
29
|
-
in this machine's browser: Talk joins the agent's room with the browser's microphone, Calls
|
|
30
|
-
follows every call as it happens, Sessions reads the finished ones, Evals and Pipeline read
|
|
31
|
-
their doors. Ctrl-C here closes the port with the command.
|
|
32
|
-
|
|
33
|
-
The key never reaches the browser: this process signs every request the console makes, under a
|
|
34
|
-
URL only it printed. Runs where a browser is — over ssh or with no display it says so and exits 2.`,
|
|
35
|
-
run: ui,
|
|
36
|
-
};
|
|
37
|
-
/** Serve, open, wait, close. The org key is read once and spent only by the server, never printed. */
|
|
38
|
-
export async function ui(argv, how = {}) {
|
|
39
|
-
const out = how.out ?? process.stdout;
|
|
40
|
-
const err = how.err ?? process.stderr;
|
|
41
|
-
const env = how.env ?? process.env;
|
|
42
|
-
if (argv[0]?.startsWith("-")) {
|
|
43
|
-
out.write(`${USAGE}\n`);
|
|
44
|
-
return 2;
|
|
45
|
-
}
|
|
46
|
-
const door = theDoor(env, err);
|
|
47
|
-
if (door === undefined)
|
|
48
|
-
return 2;
|
|
49
|
-
const why = headless(env);
|
|
50
|
-
if (why !== null) {
|
|
51
|
-
err.write(`ui needs a browser on this machine and ${why}: run it where the screen is\n`);
|
|
52
|
-
return 2;
|
|
53
|
-
}
|
|
54
|
-
const here = await agentOfThisDirectory();
|
|
55
|
-
const agent = argv[0] ?? here;
|
|
56
|
-
const files = how.files ?? consoleFiles();
|
|
57
|
-
if (!existsSync(files)) {
|
|
58
|
-
err.write(`${NOT_BUILT}\n`);
|
|
59
|
-
return 2;
|
|
60
|
-
}
|
|
61
|
-
// A simulation or a suite started from the page mounts the class of THIS directory in this
|
|
62
|
-
// process and prints here, exactly as `pinecall simulate` and `pinecall test` would; the page
|
|
63
|
-
// watches the call's log, or the run's row.
|
|
64
|
-
const chatting = chattingFrom(door, here, out);
|
|
65
|
-
const served = await LocalConsole.open(door, files, ownDoors({
|
|
66
|
-
simulating: simulatingFrom(door, here, out),
|
|
67
|
-
testing: testingFrom(door, here, out),
|
|
68
|
-
chatting,
|
|
69
|
-
knowing: knowingFrom(door, here),
|
|
70
|
-
remembering: rememberingFrom(door, here),
|
|
71
|
-
promoting: promotingFrom(door, here, out),
|
|
72
|
-
drifting: driftingFrom(door),
|
|
73
|
-
reproducing: reproducingFrom(),
|
|
74
|
-
}));
|
|
75
|
-
const at = agent === null ? served.url : served.at(`a/${agent}`);
|
|
76
|
-
// Which gateway and which of the four places the key came from: the one line that answers
|
|
77
|
-
// "why is it talking to that box" before anybody has to grep for an exported name.
|
|
78
|
-
out.write(`${doorLine(door)}\n`);
|
|
79
|
-
out.write(`${agent ?? "console"} · ${door.url} · ${at}\n`);
|
|
80
|
-
(how.open ?? openInBrowser)(at);
|
|
81
|
-
const hungUp = interrupted();
|
|
82
|
-
try {
|
|
83
|
-
await hungUp.happened;
|
|
84
|
-
}
|
|
85
|
-
finally {
|
|
86
|
-
hungUp.stop();
|
|
87
|
-
await chatting.close();
|
|
88
|
-
await served.close();
|
|
89
|
-
}
|
|
90
|
-
return 0;
|
|
91
|
-
}
|
|
92
|
-
// Named by the same rule `run` registers it under, read from the same file, so the two verbs never
|
|
93
|
-
// The console is a browser program inside this package: its source is src/cli/ui/console and vite
|
|
94
|
-
// writes its build to dist/cli/ui/console, which is what `files` publishes. So from the compiled
|
|
95
|
-
// verb the page is the sibling directory, and from the source under a loader it is the same path
|
|
96
|
-
// in dist — one of the two exists, and a tree where neither does was never built.
|
|
97
|
-
// Beside this module sits `console/` twice over: in the published package it is the BUILT console,
|
|
98
|
-
// and in a checkout it is the SOURCE, whose index.html points at `main.tsx` — TypeScript, which no
|
|
99
|
-
// browser runs, and which served a blank page for as long as the check was `existsSync` alone.
|
|
100
|
-
// What tells them apart is that source file, so that is what is asked about.
|
|
101
|
-
export function consoleFiles() {
|
|
102
|
-
const beside = fileURLToPath(new URL("console/", import.meta.url));
|
|
103
|
-
if (existsSync(beside) && !existsSync(fileURLToPath(new URL("console/main.tsx", import.meta.url)))) {
|
|
104
|
-
return beside;
|
|
105
|
-
}
|
|
106
|
-
return fileURLToPath(new URL("../../../dist/cli/ui/console/", import.meta.url));
|
|
107
|
-
}
|
|
108
|
-
/** Ctrl-C, as a promise that resolves once, and the handle that unhooks it. */
|
|
109
|
-
function interrupted() {
|
|
110
|
-
let hungUp = () => undefined;
|
|
111
|
-
const happened = new Promise((resolve) => {
|
|
112
|
-
hungUp = () => resolve();
|
|
113
|
-
process.once("SIGINT", hungUp);
|
|
114
|
-
});
|
|
115
|
-
return { happened, stop: () => process.off("SIGINT", hungUp) };
|
|
116
|
-
}
|
|
117
|
-
//# sourceMappingURL=index.js.map
|
package/dist/cli/ui/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/ui/index.ts"],"names":[],"mappings":"AAAA,qHAAqH;AAErH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,KAAK,GAAG,4BAA4B,CAAC;AAE3C,gGAAgG;AAChG,wFAAwF;AACxF,MAAM,SAAS,GAAG,oEAAoE,CAAC;AAEvF,MAAM,CAAC,MAAM,KAAK,GAAU;IAC1B,OAAO,EAAE,oGAAoG;IAC7G,KAAK,EAAE,GAAG,KAAK;;;IAGb,cAAc,CAAC,CAAC,CAAC;;;;;;;qGAOgF;IACnG,GAAG,EAAE,EAAE;CACR,CAAC;AAWF,sGAAsG;AACtG,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAc,EAAE,GAAG,GAAY,EAAE;IACxD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IACtC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IACtC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACnC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,0CAA0C,GAAG,gCAAgC,CAAC,CAAC;QACzF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,YAAY,EAAE,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,2FAA2F;IAC3F,8FAA8F;IAC9F,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CACpC,IAAI,EACJ,KAAK,EACL,QAAQ,CAAC;QACP,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;QAC3C,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;QACrC,QAAQ;QACR,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;QAChC,WAAW,EAAE,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC;QACxC,SAAS,EAAE,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;QACzC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC;QAC5B,WAAW,EAAE,eAAe,EAAE;KAC/B,CAAC,CACH,CAAC;IACF,MAAM,EAAE,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;IACjE,0FAA0F;IAC1F,mFAAmF;IACnF,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,SAAS,MAAM,IAAI,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC,GAAG,CAAC,IAAI,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC;IACxB,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,mGAAmG;AACnG,kGAAkG;AAClG,iGAAiG;AACjG,iGAAiG;AACjG,kFAAkF;AAClF,mGAAmG;AACnG,mGAAmG;AACnG,+FAA+F;AAC/F,6EAA6E;AAC7E,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,kBAAkB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACnG,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,aAAa,CAAC,IAAI,GAAG,CAAC,+BAA+B,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,+EAA+E;AAC/E,SAAS,WAAW;IAClB,IAAI,MAAM,GAAG,GAAS,EAAE,CAAC,SAAS,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AACjE,CAAC"}
|
package/dist/cli/ui/refused.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/** A refusal from one of the console's own doors: a sentence for the page, and the status it travels under. */
|
|
2
|
-
/** Thrown by a door of this process; the server writes it as `{detail}` under `status`, as FastAPI would. */
|
|
3
|
-
export declare class Refused extends Error {
|
|
4
|
-
readonly status: number;
|
|
5
|
-
readonly name = "Refused";
|
|
6
|
-
constructor(status: number, message: string);
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=refused.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"refused.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/refused.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAE/G,6GAA6G;AAC7G,qBAAa,OAAQ,SAAQ,KAAK;IAI9B,QAAQ,CAAC,MAAM,EAAE,MAAM;IAHzB,SAAkB,IAAI,aAAa;IAEnC,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAGhB;CACF"}
|
package/dist/cli/ui/refused.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/** A refusal from one of the console's own doors: a sentence for the page, and the status it travels under. */
|
|
2
|
-
/** Thrown by a door of this process; the server writes it as `{detail}` under `status`, as FastAPI would. */
|
|
3
|
-
export class Refused extends Error {
|
|
4
|
-
status;
|
|
5
|
-
name = "Refused";
|
|
6
|
-
constructor(status, message) {
|
|
7
|
-
super(message);
|
|
8
|
-
this.status = status;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=refused.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"refused.js","sourceRoot":"","sources":["../../../src/cli/ui/refused.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAE/G,6GAA6G;AAC7G,MAAM,OAAO,OAAQ,SAAQ,KAAK;IAIrB,MAAM;IAHC,IAAI,GAAG,SAAS,CAAC;IAEnC,YACW,MAAc,EACvB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;sBAHN,MAAM;IAIjB,CAAC;CACF"}
|
package/dist/cli/ui/server.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/** The local server behind `pinecall ui`: the console's files and the gateway's doors, under one nonce on 127.0.0.1. */
|
|
2
|
-
import type { Door } from "../testing/gateway.js";
|
|
3
|
-
import type { OwnDoor } from "./doors.js";
|
|
4
|
-
/**
|
|
5
|
-
* The console's server for the life of one command. Under its nonce it serves the built console
|
|
6
|
-
* and forwards `v1/*` to the gateway with the org key on the header; outside the nonce it answers
|
|
7
|
-
* 404 and nothing else. The key is a field of this object and is written into exactly one place:
|
|
8
|
-
* the authorization header of a request this process makes.
|
|
9
|
-
*/
|
|
10
|
-
export declare class LocalConsole {
|
|
11
|
-
#private;
|
|
12
|
-
private constructor();
|
|
13
|
-
/** Bind the loopback on a free port and serve the console in `files` for this door. */
|
|
14
|
-
static open(door: Door, files: string, own?: OwnDoor[]): Promise<LocalConsole>;
|
|
15
|
-
/** Where the console is: the loopback, the port, the nonce. The one URL that answers anything. */
|
|
16
|
-
get url(): string;
|
|
17
|
-
/** Where one screen of the console is, by the path the console routes. */
|
|
18
|
-
at(path: string): string;
|
|
19
|
-
/** Close every socket and the port. After this, nothing answers at `url`. */
|
|
20
|
-
close(): Promise<void>;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/server.ts"],"names":[],"mappings":"AAAA,wHAAwH;AASxH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAoC1C;;;;;GAKG;AACH,qBAAa,YAAY;;IAQvB,OAAO,eAYN;IAED,uFAAuF;IACvF,OAAa,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAIvF;IAED,kGAAkG;IAClG,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,0EAA0E;IAC1E,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvB;IAED,6EAA6E;IACvE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3B;CAqHF"}
|