@hachej/boring-ui-cli 0.1.54 → 0.1.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/server/cli.js +22 -4
- package/dist/server/modeApps.js +1 -0
- package/package.json +6 -6
- package/public/assets/{DebugDrawer-mhAqetVS.js → DebugDrawer-BpCKn1tk.js} +1 -1
- package/public/assets/{_baseUniq-BwJHvTBC.js → _baseUniq-CBAUlRZp.js} +1 -1
- package/public/assets/{arc-BQDtL5Aw.js → arc-Cgil0Kuy.js} +1 -1
- package/public/assets/{architectureDiagram-Q4EWVU46-5RAvW7ri.js → architectureDiagram-Q4EWVU46-DHrxj-j9.js} +1 -1
- package/public/assets/{blockDiagram-DXYQGD6D-LoytRBmW.js → blockDiagram-DXYQGD6D-D6qWjAhW.js} +1 -1
- package/public/assets/{c4Diagram-AHTNJAMY-C2VuA8nP.js → c4Diagram-AHTNJAMY-BfTasHga.js} +1 -1
- package/public/assets/channel-BkyXcJwP.js +1 -0
- package/public/assets/{chunk-4BX2VUAB-CnAfQ9qd.js → chunk-4BX2VUAB-BecYACFP.js} +1 -1
- package/public/assets/{chunk-4TB4RGXK-uLPQ2DqQ.js → chunk-4TB4RGXK-ewqJ4YwC.js} +1 -1
- package/public/assets/{chunk-55IACEB6-C14sfr_4.js → chunk-55IACEB6-jE-N5Cpo.js} +1 -1
- package/public/assets/{chunk-EDXVE4YY-BIn37JVG.js → chunk-EDXVE4YY-BxEPSo_q.js} +1 -1
- package/public/assets/{chunk-FMBD7UC4-Dpu2O2nV.js → chunk-FMBD7UC4-C53rHYoU.js} +1 -1
- package/public/assets/{chunk-OYMX7WX6-B01o9Url.js → chunk-OYMX7WX6-DHPq8nRW.js} +1 -1
- package/public/assets/{chunk-QZHKN3VN-Dx6SSKv_.js → chunk-QZHKN3VN-6sNeZEj9.js} +1 -1
- package/public/assets/{chunk-YZCP3GAM--BgyMYx7.js → chunk-YZCP3GAM-DlVMC5tt.js} +1 -1
- package/public/assets/classDiagram-6PBFFD2Q-BE6TziaD.js +1 -0
- package/public/assets/classDiagram-v2-HSJHXN6E-BE6TziaD.js +1 -0
- package/public/assets/clone-CVXKCJ7_.js +1 -0
- package/public/assets/{cose-bilkent-S5V4N54A-CPVZrcnk.js → cose-bilkent-S5V4N54A-lkEYTDmT.js} +1 -1
- package/public/assets/{dagre-KV5264BT-nraykHtn.js → dagre-KV5264BT-DHeSCoz3.js} +1 -1
- package/public/assets/{diagram-5BDNPKRD-CGg3UBYZ.js → diagram-5BDNPKRD-DzDucUQQ.js} +1 -1
- package/public/assets/{diagram-G4DWMVQ6-Cmt3BKOs.js → diagram-G4DWMVQ6-sqMzJRXC.js} +1 -1
- package/public/assets/{diagram-MMDJMWI5-Bg5KKDS4.js → diagram-MMDJMWI5-CizPR6QM.js} +1 -1
- package/public/assets/{diagram-TYMM5635-CXaF1WrN.js → diagram-TYMM5635-Cj9IjGgf.js} +1 -1
- package/public/assets/{erDiagram-SMLLAGMA-6HEgqnd9.js → erDiagram-SMLLAGMA-BwLAFd9r.js} +1 -1
- package/public/assets/{flowDiagram-DWJPFMVM-DUmHziFN.js → flowDiagram-DWJPFMVM-Bt_SPcnm.js} +1 -1
- package/public/assets/{ganttDiagram-T4ZO3ILL-A9KHaLSP.js → ganttDiagram-T4ZO3ILL-BxkaMn-O.js} +1 -1
- package/public/assets/{gitGraphDiagram-UUTBAWPF-CdZECco-.js → gitGraphDiagram-UUTBAWPF-Dpm9Tons.js} +1 -1
- package/public/assets/{graph-bmDFdOoh.js → graph-9BEP0Ao7.js} +1 -1
- package/public/assets/{highlighted-body-OFNGDK62-DjdxpgMf.js → highlighted-body-OFNGDK62-CiYKRpto.js} +1 -1
- package/public/assets/index-BpLLYQz0.css +1 -0
- package/public/assets/{index-Bn_w3kFD.js → index-DQcfiMkt.js} +374 -374
- package/public/assets/{infoDiagram-42DDH7IO-C6lavE6c.js → infoDiagram-42DDH7IO-CsW6HEa5.js} +1 -1
- package/public/assets/{ishikawaDiagram-UXIWVN3A-CqfmaEyd.js → ishikawaDiagram-UXIWVN3A-C8LLlcNZ.js} +1 -1
- package/public/assets/{journeyDiagram-VCZTEJTY-CCVrO8fp.js → journeyDiagram-VCZTEJTY-Cybrl3_E.js} +1 -1
- package/public/assets/{kanban-definition-6JOO6SKY-DuU9qQfQ.js → kanban-definition-6JOO6SKY-Bnr_ItEx.js} +1 -1
- package/public/assets/{layout-Dp9Rvyt_.js → layout-B1tk4EQi.js} +1 -1
- package/public/assets/{linear-DPdktLjQ.js → linear-BiAJ_mgy.js} +1 -1
- package/public/assets/{min-CnMlXKuW.js → min-Bkt4kNaT.js} +1 -1
- package/public/assets/{mindmap-definition-QFDTVHPH-D7UquLqL.js → mindmap-definition-QFDTVHPH-D3lGPTca.js} +1 -1
- package/public/assets/{pieDiagram-DEJITSTG-mLN_kIsi.js → pieDiagram-DEJITSTG-CcAn2fb8.js} +1 -1
- package/public/assets/{quadrantDiagram-34T5L4WZ-Cn6e4Var.js → quadrantDiagram-34T5L4WZ-Bs6mwcXF.js} +1 -1
- package/public/assets/{requirementDiagram-MS252O5E-DiZKdTiC.js → requirementDiagram-MS252O5E-Bqe3eGQB.js} +1 -1
- package/public/assets/{sankeyDiagram-XADWPNL6-BIkCRGUn.js → sankeyDiagram-XADWPNL6-bastHbs7.js} +1 -1
- package/public/assets/{sequenceDiagram-FGHM5R23-CWmlMMVG.js → sequenceDiagram-FGHM5R23-DjEyQY-y.js} +1 -1
- package/public/assets/{stateDiagram-FHFEXIEX-DyJ4iDq3.js → stateDiagram-FHFEXIEX-D-8eiSjG.js} +1 -1
- package/public/assets/stateDiagram-v2-QKLJ7IA2-C00gBtHf.js +1 -0
- package/public/assets/{timeline-definition-GMOUNBTQ-Be0COE4a.js → timeline-definition-GMOUNBTQ-BlyuLeOT.js} +1 -1
- package/public/assets/{vennDiagram-DHZGUBPP-f7B9WS9-.js → vennDiagram-DHZGUBPP-_nmLByx7.js} +1 -1
- package/public/assets/{wardley-RL74JXVD-BMiZszwz.js → wardley-RL74JXVD-Cp5txwAJ.js} +1 -1
- package/public/assets/{wardleyDiagram-NUSXRM2D-Cnb27Tpy.js → wardleyDiagram-NUSXRM2D-riZi70l8.js} +1 -1
- package/public/assets/{xychartDiagram-5P7HB3ND-AEVwspQj.js → xychartDiagram-5P7HB3ND-DazAwoJ6.js} +1 -1
- package/public/index.html +2 -2
- package/public/assets/channel-BrXpqwLq.js +0 -1
- package/public/assets/classDiagram-6PBFFD2Q-CUmqdtu-.js +0 -1
- package/public/assets/classDiagram-v2-HSJHXN6E-CUmqdtu-.js +0 -1
- package/public/assets/clone-Bp_SzWkb.js +0 -1
- package/public/assets/index-BBiOC2lx.css +0 -1
- package/public/assets/stateDiagram-v2-QKLJ7IA2-C7swtAWd.js +0 -1
package/README.md
CHANGED
|
@@ -28,6 +28,9 @@ npx @hachej/boring-ui-cli ~/projects/foo
|
|
|
28
28
|
|
|
29
29
|
# Custom port / host
|
|
30
30
|
npx @hachej/boring-ui-cli --port 8080 --host 127.0.0.1
|
|
31
|
+
|
|
32
|
+
# Exposing beyond loopback requires an explicit unsafe local-bridge opt-in
|
|
33
|
+
npx @hachej/boring-ui-cli --host 0.0.0.0 --allow-insecure-local-bridge
|
|
31
34
|
```
|
|
32
35
|
|
|
33
36
|
The CLI does not take an API key flag. On first run, if no LLM provider is
|
|
@@ -58,7 +61,7 @@ boring-ui plugin <subcommand> … Plugin authoring (delegates to boring-
|
|
|
58
61
|
| Flag | Default | Description |
|
|
59
62
|
|------|---------|-------------|
|
|
60
63
|
| `-p, --port <port>` | `5200` (or `$PORT`) | HTTP port |
|
|
61
|
-
| `--host <host>` | `
|
|
64
|
+
| `--host <host>` | `127.0.0.1` (or `$HOST`) | Listen host. Non-loopback hosts require `--allow-insecure-local-bridge` because the standalone CLI uses unauthenticated local-only bridge browser auth. |
|
|
62
65
|
| `-m, --mode <mode>` | `local` | `local` (no sandbox, full network) or `local-sandbox` (bwrap-isolated, no network, Linux only) |
|
|
63
66
|
| `-h, --help` | | Show help |
|
|
64
67
|
|
|
@@ -69,6 +72,7 @@ boring-ui plugin <subcommand> … Plugin authoring (delegates to boring-
|
|
|
69
72
|
| `PORT`, `HOST` | Fallbacks for `--port` / `--host` |
|
|
70
73
|
| `BORING_MODE` | Fallback for `--mode` |
|
|
71
74
|
| `BORING_AGENT_WORKSPACE_ROOT` | Overrides the folder argument in folder mode |
|
|
75
|
+
| `BORING_UI_ALLOW_INSECURE_LOCAL_BRIDGE` | `1`/`true`/`yes` to allow non-loopback binding with the unauthenticated local CLI bridge auth |
|
|
72
76
|
| `BORING_UI_WORKSPACES_PATH` | Path to the workspaces registry (default `~/.boring-ui/workspaces.yaml`) |
|
|
73
77
|
| `BORING_USE_LOCAL_PACKAGES` | `1` to resolve the bundled plugin-cli runtime from the local monorepo checkout |
|
|
74
78
|
|
package/dist/server/cli.js
CHANGED
|
@@ -67,7 +67,9 @@ const HELP_TEXT = [
|
|
|
67
67
|
"",
|
|
68
68
|
"Options:",
|
|
69
69
|
" -p, --port <port> HTTP port (default: 5200)",
|
|
70
|
-
" --host <host> Listen host (default:
|
|
70
|
+
" --host <host> Listen host (default: 127.0.0.1)",
|
|
71
|
+
" --allow-insecure-local-bridge",
|
|
72
|
+
" Allow unauthenticated local-cli bridge auth when binding a non-loopback host",
|
|
71
73
|
" -m, --mode <mode> local-sandbox or local (default: local)",
|
|
72
74
|
" -h, --help Show this help"
|
|
73
75
|
].join("\n");
|
|
@@ -92,6 +94,13 @@ async function checkAuth() {
|
|
|
92
94
|
const registry = ModelRegistry.create(authStorage);
|
|
93
95
|
return registry.getAvailable().length;
|
|
94
96
|
}
|
|
97
|
+
function isLoopbackHost(host) {
|
|
98
|
+
const normalized = host.trim().toLowerCase();
|
|
99
|
+
return normalized === "localhost" || normalized === "127.0.0.1" || normalized === "::1" || normalized === "[::1]";
|
|
100
|
+
}
|
|
101
|
+
function truthyEnv(value) {
|
|
102
|
+
return value === "1" || value?.toLowerCase() === "true" || value?.toLowerCase() === "yes";
|
|
103
|
+
}
|
|
95
104
|
async function startFolderMode(opts) {
|
|
96
105
|
const workspaceRoot = process.env.BORING_AGENT_WORKSPACE_ROOT ?? resolve(opts.folderArg ?? process.cwd());
|
|
97
106
|
const projectName = basename(resolve(workspaceRoot)) || "workspace";
|
|
@@ -109,7 +118,8 @@ ${projectName}`);
|
|
|
109
118
|
const app = await createFolderModeApp({
|
|
110
119
|
workspaceRoot,
|
|
111
120
|
mode: opts.mode,
|
|
112
|
-
projectName
|
|
121
|
+
projectName,
|
|
122
|
+
allowInsecureLocalBridgeAuth: opts.allowInsecureLocalBridgeAuth
|
|
113
123
|
});
|
|
114
124
|
await registerStatic(app, opts.publicDir);
|
|
115
125
|
await app.listen({ port: opts.port, host: opts.host });
|
|
@@ -189,6 +199,7 @@ async function runCli(options) {
|
|
|
189
199
|
workspace: { type: "string" },
|
|
190
200
|
"panel-id": { type: "string" },
|
|
191
201
|
"timeout-ms": { type: "string" },
|
|
202
|
+
"allow-insecure-local-bridge": { type: "boolean" },
|
|
192
203
|
help: { type: "boolean", short: "h" }
|
|
193
204
|
},
|
|
194
205
|
allowPositionals: true,
|
|
@@ -199,7 +210,9 @@ async function runCli(options) {
|
|
|
199
210
|
return;
|
|
200
211
|
}
|
|
201
212
|
const port = Number(args.port ?? process.env.PORT) || 5200;
|
|
202
|
-
const
|
|
213
|
+
const explicitHost = args.host !== void 0 || process.env.HOST !== void 0;
|
|
214
|
+
const host = args.host ?? process.env.HOST ?? "127.0.0.1";
|
|
215
|
+
const allowInsecureLocalBridgeAuth = isLoopbackHost(host) || truthyEnv(process.env.BORING_UI_ALLOW_INSECURE_LOCAL_BRIDGE) || args["allow-insecure-local-bridge"] === true;
|
|
203
216
|
const rawMode = args.mode ?? process.env.BORING_MODE;
|
|
204
217
|
let cliMode;
|
|
205
218
|
let mode;
|
|
@@ -213,12 +226,17 @@ async function runCli(options) {
|
|
|
213
226
|
cliMode = "local";
|
|
214
227
|
mode = "direct";
|
|
215
228
|
}
|
|
229
|
+
const startsServer = positionals[0] !== "workspaces" || !(/* @__PURE__ */ new Set(["add", "list", "remove", "rename"])).has(positionals[1] ?? "");
|
|
230
|
+
if (startsServer && !isLoopbackHost(host) && (!explicitHost || !allowInsecureLocalBridgeAuth)) {
|
|
231
|
+
throw new Error("Binding boring-ui to a non-loopback host requires --host plus --allow-insecure-local-bridge. The local CLI WorkspaceBridge browser auth is unauthenticated.");
|
|
232
|
+
}
|
|
216
233
|
const base = {
|
|
217
234
|
publicDir: options.publicDir,
|
|
218
235
|
port,
|
|
219
236
|
host,
|
|
220
237
|
cliMode,
|
|
221
|
-
mode
|
|
238
|
+
mode,
|
|
239
|
+
allowInsecureLocalBridgeAuth
|
|
222
240
|
};
|
|
223
241
|
if (positionals[0] === "workspaces") {
|
|
224
242
|
await handleWorkspacesCommand({
|
package/dist/server/modeApps.js
CHANGED
|
@@ -284,6 +284,7 @@ async function createFolderModeApp(opts) {
|
|
|
284
284
|
// additionalBoringPluginDirs only feeds the asset-manager scan.
|
|
285
285
|
defaultPluginPackages: pluginDiscovery.resolveCliDefaultPluginPackagePaths(),
|
|
286
286
|
additionalBoringPluginDirs: pluginDirs,
|
|
287
|
+
workspaceBridge: { allowInsecureLocalCliBrowserAuth: opts.allowInsecureLocalBridgeAuth === true },
|
|
287
288
|
boringPluginFrontTargetResolver: runtimeHost.createFrontTargetResolver(FOLDER_RUNTIME_PLUGIN_WORKSPACE_ID)
|
|
288
289
|
});
|
|
289
290
|
await runtimeHost.registerRoutes(app);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hachej/boring-ui-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.55",
|
|
4
4
|
"description": "Turn an agent into an app",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
"lucide-react": "^1.8.0",
|
|
21
21
|
"typescript": "^5.8.3",
|
|
22
22
|
"vite": "^6.0.0",
|
|
23
|
-
"@hachej/boring-agent": "0.1.
|
|
24
|
-
"@hachej/boring-
|
|
25
|
-
"@hachej/boring-ui-
|
|
26
|
-
"@hachej/boring-
|
|
27
|
-
"@hachej/boring-
|
|
23
|
+
"@hachej/boring-agent": "0.1.55",
|
|
24
|
+
"@hachej/boring-ask-user": "0.1.55",
|
|
25
|
+
"@hachej/boring-ui-kit": "0.1.55",
|
|
26
|
+
"@hachej/boring-ui-plugin-cli": "0.1.55",
|
|
27
|
+
"@hachej/boring-workspace": "0.1.55"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@tailwindcss/vite": "^4.0.0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as x,j as e,T,a as C,b as S,c as v,d as y,I as N,R,B as E,C as M,e as I,f as $,g as D,h as L}from"./index-
|
|
1
|
+
import{r as x,j as e,T,a as C,b as S,c as v,d as y,I as N,R,B as E,C as M,e as I,f as $,g as D,h as L}from"./index-DQcfiMkt.js";function _({value:r,label:t}){const[o,s]=x.useState(!1),l=x.useCallback(()=>{$(r).then(a=>{a&&(s(!0),window.setTimeout(()=>s(!1),1200))})},[r]);return e.jsx(N,{type:"button",variant:"ghost",size:"icon-xs",onClick:l,className:"text-muted-foreground/60","aria-label":t,title:t,children:o?e.jsx(D,{className:"h-3 w-3"}):e.jsx(L,{className:"h-3 w-3"})})}function A({label:r,value:t}){return e.jsxs("div",{className:"rounded-md border border-border/40 bg-muted/20 p-2",children:[e.jsxs("div",{className:"mb-1 flex items-center justify-between gap-2",children:[e.jsx("span",{className:"text-[10px] font-medium uppercase tracking-[0.16em] text-muted-foreground",children:r}),e.jsx(_,{value:t,label:`Copy ${r}`})]}),e.jsx("code",{className:"block break-all font-mono text-[11px] leading-relaxed text-foreground dark:text-zinc-100",children:t})]})}function z({sessionId:r}){return e.jsxs("div",{className:"flex flex-col gap-3 overflow-auto p-3 text-[11px] text-muted-foreground dark:text-zinc-300",children:[e.jsx("p",{className:"text-muted-foreground dark:text-zinc-300",children:"This web chat is backed by a runtime session. Use the id below for support or debugging."}),e.jsx(A,{label:"Runtime session id",value:r})]})}const X=2500,w=20;function P({apiBaseUrl:r,fetch:t,sessionId:o,requestHeaders:s,storageScope:l}){const[a,n]=x.useState({kind:"loading"}),[c,u]=x.useState(0),m=x.useRef(0),j=x.useCallback(()=>{m.current=0,u(i=>i+1)},[]);return x.useEffect(()=>{let i=!1,f=null;return n({kind:"loading"}),(t??globalThis.fetch.bind(globalThis))(Y(r,`/api/v1/agent/sessions/${encodeURIComponent(o)}/system-prompt`),{headers:J(s,l)}).then(async d=>{var g;if(i)return;if(d.ok){const b=await d.json();if(typeof b.systemPrompt=="string"){m.current=0,n({kind:"ok",text:b.systemPrompt});return}}const h=await d.json().catch(()=>null),p=((g=h==null?void 0:h.error)==null?void 0:g.message)??`HTTP ${d.status}`;d.status===404&&m.current<w?(n({kind:"empty",reason:p}),f=setTimeout(()=>{i||(m.current++,u(b=>b+1))},X)):n(d.status===404?{kind:"empty",reason:p}:{kind:"error",reason:p})}).catch(d=>{i||n({kind:"error",reason:d instanceof Error?d.message:String(d)})}),()=>{i=!0,f&&clearTimeout(f)}},[r,t,o,s,c,l]),e.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[e.jsxs("div",{className:"shrink-0 flex items-center justify-between px-3 pt-2 pb-1 border-b border-border/40",children:[e.jsx("span",{className:"text-[10px] text-muted-foreground/80 font-mono",children:a.kind==="ok"?`${a.text.length.toLocaleString()} chars`:a.kind==="loading"?"loading…":a.kind==="empty"?`waiting for session · retry ${m.current}/${w}`:"error"}),a.kind!=="loading"&&e.jsx(N,{type:"button",variant:"ghost",size:"icon-xs",onClick:j,className:"text-muted-foreground/60","aria-label":"Refresh system prompt",children:e.jsx(R,{className:"h-3 w-3"})})]}),(a.kind==="loading"||a.kind==="empty")&&e.jsx("p",{className:"text-[11px] text-muted-foreground p-3",children:a.kind==="loading"?"Loading…":a.reason}),a.kind==="error"&&e.jsx("p",{className:"text-[11px] text-destructive p-3",children:a.reason}),a.kind==="ok"&&e.jsx("pre",{className:"flex-1 overflow-auto px-3 py-2 font-mono text-[11px] leading-relaxed text-foreground whitespace-pre-wrap break-words",children:a.text})]})}function F(r){const t=r,o=(t==null?void 0:t.type)??"?";if(o==="text"){const s=String(t.text??"");return s.slice(0,80)+(s.length>80?"…":"")}if(o==="tool-invocation"){const s=t.toolInvocation,l=String((s==null?void 0:s.state)??"");return`${(s==null?void 0:s.toolName)??"?"}() · ${l}`}if(o==="reasoning"){const s=String(t.text??t.reasoning??"");return s.slice(0,80)+(s.length>80?"…":"")}return o}function H(r){const t=[];for(let o=0;o<r.length;o++){const s=r[o],l=s,a=l.createdAt?new Date(l.createdAt).toISOString().slice(11,23):null;for(let n=0;n<s.parts.length;n++){const c=s.parts[n];t.push({msgId:s.id,msgIndex:o,role:s.role,time:a,partIndex:n,partType:(c==null?void 0:c.type)??"unknown",part:c})}}return t}function O({messages:r}){const t=H(r),[o,s]=x.useState(null),l=x.useRef(null),a=x.useRef(t.length);return x.useEffect(()=>{var n;t.length!==a.current&&((n=l.current)==null||n.scrollIntoView({behavior:"smooth"}),a.current=t.length)},[t.length]),t.length===0?e.jsx("p",{className:"text-[11px] text-muted-foreground p-3",children:"No messages yet."}):e.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[e.jsxs("div",{className:"shrink-0 px-3 pt-2 pb-1 text-[10px] text-muted-foreground/80 font-mono border-b border-border/40",children:[r.length," msg · ",t.length," parts"]}),e.jsxs("div",{className:"flex-1 overflow-auto",children:[t.map(n=>{const c=`${n.msgId}:${n.partIndex}`,u=o===c;return e.jsxs("div",{className:"border-b border-border/30 last:border-0",children:[e.jsxs(E,{type:"button",variant:"ghost",onClick:()=>s(u?null:c),className:"h-auto w-full justify-start gap-1.5 rounded-none px-2 py-1.5 text-left",children:[e.jsx("span",{className:"mt-0.5 shrink-0 text-muted-foreground/40",children:u?e.jsx(M,{className:"h-3 w-3"}):e.jsx(I,{className:"h-3 w-3"})}),e.jsx("span",{className:"font-mono text-[10px] shrink-0 w-20",children:n.time?e.jsx("span",{className:"text-muted-foreground/60",children:n.time}):e.jsxs("span",{className:"text-muted-foreground/30",children:["m",n.msgIndex]})}),e.jsx("span",{className:y("shrink-0 font-mono text-[10px] w-14",n.role==="user"?"text-accent":"text-muted-foreground"),children:n.role}),e.jsx("span",{className:"shrink-0 font-mono text-[10px] text-muted-foreground/60 w-24",children:n.partType}),e.jsx("span",{className:"flex-1 min-w-0 font-mono text-[11px] text-foreground truncate",children:F(n.part)})]}),u&&e.jsx("pre",{className:"px-3 pb-2 font-mono text-[10px] leading-relaxed text-foreground/80 whitespace-pre-wrap break-words bg-muted/20",children:JSON.stringify(n.part,null,2)})]},c)}),e.jsx("div",{ref:l})]})]})}const V=[{id:"session",label:"Session"},{id:"prompt",label:"System prompt"},{id:"messages",label:"Messages"}],K=280,W=800;function G({apiBaseUrl:r,fetch:t,sessionId:o,messages:s,requestHeaders:l,storageScope:a,width:n,onWidthChange:c}){const[u,m]=x.useState("session"),j=x.useCallback(i=>{i.preventDefault();const f=i.clientX,k=n,d=p=>{const g=f-p.clientX;c(Math.min(W,Math.max(K,k+g)))},h=()=>{window.removeEventListener("mousemove",d),window.removeEventListener("mouseup",h)};window.addEventListener("mousemove",d),window.addEventListener("mouseup",h)},[n,c]);return e.jsxs(e.Fragment,{children:[e.jsx("div",{onMouseDown:j,className:"w-1 shrink-0 cursor-col-resize hover:bg-accent/40 active:bg-accent/60 transition-colors","aria-hidden":!0}),e.jsx("aside",{style:{width:n},className:y("flex h-full shrink-0 flex-col border-l border-border/60","bg-[oklch(from_var(--background)_calc(l-0.01)_c_h)]"),children:e.jsxs(T,{value:u,onValueChange:i=>m(i),className:"flex flex-col flex-1 min-h-0 overflow-hidden",children:[e.jsx("header",{className:"flex shrink-0 items-center gap-0 border-b border-border/60 px-1",children:e.jsx(C,{variant:"line",className:"h-auto gap-0 p-0 w-full",children:V.map(({id:i,label:f})=>e.jsx(S,{value:i,className:"h-8 flex-none px-3 py-2 text-[11px] font-medium data-[state=active]:after:bg-[color:var(--accent)]",children:f},i))})}),e.jsx(v,{value:"session",forceMount:!0,className:"flex flex-col flex-1 min-h-0 overflow-hidden data-[state=inactive]:hidden",children:e.jsx(z,{sessionId:o})}),e.jsx(v,{value:"prompt",forceMount:!0,className:"flex flex-col flex-1 min-h-0 overflow-hidden data-[state=inactive]:hidden",children:e.jsx(P,{apiBaseUrl:r,fetch:t,sessionId:o,requestHeaders:l,storageScope:a})}),e.jsx(v,{value:"messages",forceMount:!0,className:"flex flex-col flex-1 min-h-0 overflow-hidden data-[state=inactive]:hidden",children:e.jsx(O,{messages:s})})]})})]})}function Y(r,t){return`${(r==null?void 0:r.replace(/\/$/,""))??""}${t}`}function J(r,t){if(!r&&!t)return;const o={...r??{}},s=Object.keys(o).some(l=>l.toLowerCase()==="x-boring-storage-scope");return t&&!s&&(o["x-boring-storage-scope"]=t),o}export{G as DebugDrawer};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{be as S,bE as ln,aZ as A,bc as P,aY as W,bF as gn,bG as dn,bH as hn,bI as z,bJ as pn,bK as An,bL as N,bf as m,bk as K,bn as T,bM as _n,bi as on,bN as wn,bO as On,a_ as V,bP as bn,bQ as R}from"./index-
|
|
1
|
+
import{be as S,bE as ln,aZ as A,bc as P,aY as W,bF as gn,bG as dn,bH as hn,bI as z,bJ as pn,bK as An,bL as N,bf as m,bk as K,bn as T,bM as _n,bi as on,bN as wn,bO as On,a_ as V,bP as bn,bQ as R}from"./index-DQcfiMkt.js";var Pn="[object Symbol]";function x(n){return typeof n=="symbol"||S(n)&&ln(n)==Pn}function vn(n,r){for(var e=-1,i=n==null?0:n.length,f=Array(i);++e<i;)f[e]=r(n[e],e,n);return f}var U=P?P.prototype:void 0,B=U?U.toString:void 0;function k(n){if(typeof n=="string")return n;if(A(n))return vn(n,k)+"";if(x(n))return B?B.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(){}function En(n,r){for(var e=-1,i=n==null?0:n.length;++e<i&&r(n[e],e,n)!==!1;);return n}function cn(n,r,e,i){for(var f=n.length,t=e+-1;++t<f;)if(r(n[t],t,n))return t;return-1}function Tn(n){return n!==n}function In(n,r,e){for(var i=e-1,f=n.length;++i<f;)if(n[i]===r)return i;return-1}function Rn(n,r,e){return r===r?In(n,r,e):cn(n,Tn,e)}function Ln(n,r){var e=n==null?0:n.length;return!!e&&Rn(n,r,0)>-1}function M(n){return W(n)?gn(n):dn(n)}var Sn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xn=/^\w*$/;function $(n,r){if(A(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||x(n)?!0:xn.test(n)||!Sn.test(n)||r!=null&&n in Object(r)}var Mn=500;function $n(n){var r=hn(n,function(i){return e.size===Mn&&e.clear(),i}),e=r.cache;return r}var Cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Fn=/\\(\\)?/g,Gn=$n(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(Cn,function(e,i,f,t){r.push(f?t.replace(Fn,"$1"):i||e)}),r});function Dn(n){return n==null?"":k(n)}function j(n,r){return A(n)?n:$(n,r)?[n]:Gn(Dn(n))}function I(n){if(typeof n=="string"||x(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function nn(n,r){r=j(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[I(r[e++])];return e&&e==i?n:void 0}function Nn(n,r,e){var i=n==null?void 0:nn(n,r);return i===void 0?e:i}function rn(n,r){for(var e=-1,i=r.length,f=n.length;++e<i;)n[f+e]=r[e];return n}var H=P?P.isConcatSpreadable:void 0;function mn(n){return A(n)||z(n)||!!(H&&n&&n[H])}function Hr(n,r,e,i,f){var t=-1,s=n.length;for(e||(e=mn),f||(f=[]);++t<s;){var u=n[t];e(u)?rn(f,u):i||(f[f.length]=u)}return f}function Kn(n,r,e,i){var f=-1,t=n==null?0:n.length;for(i&&t&&(e=n[++f]);++f<t;)e=r(e,n[f],f,n);return e}function en(n,r){for(var e=-1,i=n==null?0:n.length,f=0,t=[];++e<i;){var s=n[e];r(s,e,n)&&(t[f++]=s)}return t}function Un(){return[]}var Bn=Object.prototype,Hn=Bn.propertyIsEnumerable,Z=Object.getOwnPropertySymbols,Zn=Z?function(n){return n==null?[]:(n=Object(n),en(Z(n),function(r){return Hn.call(n,r)}))}:Un;function qn(n,r,e){var i=r(n);return A(n)?i:rn(i,e(n))}function q(n){return qn(n,M,Zn)}var Yn="__lodash_hash_undefined__";function Jn(n){return this.__data__.set(n,Yn),this}function Qn(n){return this.__data__.has(n)}function v(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new pn;++r<e;)this.add(n[r])}v.prototype.add=v.prototype.push=Jn;v.prototype.has=Qn;function Xn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i;)if(r(n[e],e,n))return!0;return!1}function tn(n,r){return n.has(r)}var Wn=1,zn=2;function fn(n,r,e,i,f,t){var s=e&Wn,u=n.length,a=r.length;if(u!=a&&!(s&&a>u))return!1;var h=t.get(n),g=t.get(r);if(h&&g)return h==r&&g==n;var l=-1,d=!0,o=e&zn?new v:void 0;for(t.set(n,r),t.set(r,n);++l<u;){var p=n[l],_=r[l];if(i)var w=s?i(_,p,l,r,n,t):i(p,_,l,n,r,t);if(w!==void 0){if(w)continue;d=!1;break}if(o){if(!Xn(r,function(O,b){if(!tn(o,b)&&(p===O||f(p,O,e,i,t)))return o.push(b)})){d=!1;break}}else if(!(p===_||f(p,_,e,i,t))){d=!1;break}}return t.delete(n),t.delete(r),d}function Vn(n){var r=-1,e=Array(n.size);return n.forEach(function(i,f){e[++r]=[f,i]}),e}function C(n){var r=-1,e=Array(n.size);return n.forEach(function(i){e[++r]=i}),e}var kn=1,jn=2,nr="[object Boolean]",rr="[object Date]",er="[object Error]",ir="[object Map]",tr="[object Number]",fr="[object RegExp]",sr="[object Set]",ur="[object String]",ar="[object Symbol]",lr="[object ArrayBuffer]",gr="[object DataView]",Y=P?P.prototype:void 0,L=Y?Y.valueOf:void 0;function dr(n,r,e,i,f,t,s){switch(e){case gr:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case lr:return!(n.byteLength!=r.byteLength||!t(new N(n),new N(r)));case nr:case rr:case tr:return An(+n,+r);case er:return n.name==r.name&&n.message==r.message;case fr:case ur:return n==r+"";case ir:var u=Vn;case sr:var a=i&kn;if(u||(u=C),n.size!=r.size&&!a)return!1;var h=s.get(n);if(h)return h==r;i|=jn,s.set(n,r);var g=fn(u(n),u(r),i,f,t,s);return s.delete(n),g;case ar:if(L)return L.call(n)==L.call(r)}return!1}var hr=1,pr=Object.prototype,Ar=pr.hasOwnProperty;function _r(n,r,e,i,f,t){var s=e&hr,u=q(n),a=u.length,h=q(r),g=h.length;if(a!=g&&!s)return!1;for(var l=a;l--;){var d=u[l];if(!(s?d in r:Ar.call(r,d)))return!1}var o=t.get(n),p=t.get(r);if(o&&p)return o==r&&p==n;var _=!0;t.set(n,r),t.set(r,n);for(var w=s;++l<a;){d=u[l];var O=n[d],b=r[d];if(i)var D=s?i(b,O,d,r,n,t):i(O,b,d,n,r,t);if(!(D===void 0?O===b||f(O,b,e,i,t):D)){_=!1;break}w||(w=d=="constructor")}if(_&&!w){var y=n.constructor,E=r.constructor;y!=E&&"constructor"in n&&"constructor"in r&&!(typeof y=="function"&&y instanceof y&&typeof E=="function"&&E instanceof E)&&(_=!1)}return t.delete(n),t.delete(r),_}var or=1,J="[object Arguments]",Q="[object Array]",c="[object Object]",wr=Object.prototype,X=wr.hasOwnProperty;function Or(n,r,e,i,f,t){var s=A(n),u=A(r),a=s?Q:m(n),h=u?Q:m(r);a=a==J?c:a,h=h==J?c:h;var g=a==c,l=h==c,d=a==h;if(d&&K(n)){if(!K(r))return!1;s=!0,g=!1}if(d&&!g)return t||(t=new T),s||_n(n)?fn(n,r,e,i,f,t):dr(n,r,a,e,i,f,t);if(!(e&or)){var o=g&&X.call(n,"__wrapped__"),p=l&&X.call(r,"__wrapped__");if(o||p){var _=o?n.value():n,w=p?r.value():r;return t||(t=new T),f(_,w,e,i,t)}}return d?(t||(t=new T),_r(n,r,e,i,f,t)):!1}function F(n,r,e,i,f){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:Or(n,r,e,i,F,f)}var br=1,Pr=2;function vr(n,r,e,i){var f=e.length,t=f;if(n==null)return!t;for(n=Object(n);f--;){var s=e[f];if(s[2]?s[1]!==n[s[0]]:!(s[0]in n))return!1}for(;++f<t;){s=e[f];var u=s[0],a=n[u],h=s[1];if(s[2]){if(a===void 0&&!(u in n))return!1}else{var g=new T,l;if(!(l===void 0?F(h,a,br|Pr,i,g):l))return!1}}return!0}function sn(n){return n===n&&!on(n)}function yr(n){for(var r=M(n),e=r.length;e--;){var i=r[e],f=n[i];r[e]=[i,f,sn(f)]}return r}function un(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function Er(n){var r=yr(n);return r.length==1&&r[0][2]?un(r[0][0],r[0][1]):function(e){return e===n||vr(e,n,r)}}function cr(n,r){return n!=null&&r in Object(n)}function Tr(n,r,e){r=j(r,n);for(var i=-1,f=r.length,t=!1;++i<f;){var s=I(r[i]);if(!(t=n!=null&&e(n,s)))break;n=n[s]}return t||++i!=f?t:(f=n==null?0:n.length,!!f&&wn(f)&&On(s,f)&&(A(n)||z(n)))}function Ir(n,r){return n!=null&&Tr(n,r,cr)}var Rr=1,Lr=2;function Sr(n,r){return $(n)&&sn(r)?un(I(n),r):function(e){var i=Nn(e,n);return i===void 0&&i===r?Ir(e,n):F(r,i,Rr|Lr)}}function xr(n){return function(r){return r==null?void 0:r[n]}}function Mr(n){return function(r){return nn(r,n)}}function $r(n){return $(n)?xr(I(n)):Mr(n)}function an(n){return typeof n=="function"?n:n==null?V:typeof n=="object"?A(n)?Sr(n[0],n[1]):Er(n):$r(n)}function Cr(n,r){return n&&bn(n,r,M)}function Fr(n,r){return function(e,i){if(e==null)return e;if(!W(e))return n(e,i);for(var f=e.length,t=-1,s=Object(e);++t<f&&i(s[t],t,s)!==!1;);return e}}var G=Fr(Cr);function Gr(n){return typeof n=="function"?n:V}function Zr(n,r){var e=A(n)?En:G;return e(n,Gr(r))}function Dr(n,r){var e=[];return G(n,function(i,f,t){r(i,f,t)&&e.push(i)}),e}function qr(n,r){var e=A(n)?en:Dr;return e(n,an(r))}function Nr(n,r,e,i,f){return f(n,function(t,s,u){e=i?(i=!1,t):r(e,t,s,u)}),e}function Yr(n,r,e){var i=A(n)?Kn:Nr,f=arguments.length<3;return i(n,an(r),e,f,G)}var mr=1/0,Kr=R&&1/C(new R([,-0]))[1]==mr?function(n){return new R(n)}:yn,Ur=200;function Jr(n,r,e){var i=-1,f=Ln,t=n.length,s=!0,u=[],a=u;if(t>=Ur){var h=r?null:Kr(n);if(h)return C(h);s=!1,f=tn,a=new v}else a=r?[]:u;n:for(;++i<t;){var g=n[i],l=r?r(g):g;if(g=g!==0?g:0,s&&l===l){for(var d=a.length;d--;)if(a[d]===l)continue n;r&&a.push(l),u.push(g)}else f(a,l,e)||(a!==u&&a.push(l),u.push(g))}return u}export{G as a,Hr as b,an as c,vn as d,rn as e,qn as f,Zn as g,En as h,x as i,q as j,M as k,Jr as l,qr as m,Zr as n,cn as o,Gr as p,Cr as q,Yr as r,Un as s,Tr as t,j as u,I as v,nn as w,Ir as x,Dn as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a4 as ln,a5 as an,a6 as H,a7 as q,a8 as B,a9 as un,aa as g,ab as tn,ac as L,ad as _,ae as rn,af as o,ag as on,ah as sn,ai as fn}from"./index-
|
|
1
|
+
import{a4 as ln,a5 as an,a6 as H,a7 as q,a8 as B,a9 as un,aa as g,ab as tn,ac as L,ad as _,ae as rn,af as o,ag as on,ah as sn,ai as fn}from"./index-DQcfiMkt.js";function cn(l){return l.innerRadius}function gn(l){return l.outerRadius}function yn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,C,a){var O=I-l,i=D-h,n=C-v,d=a-A,u=d*O-n*i;if(!(u*u<g))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function W(l,h,I,D,v,A,C){var a=l-I,O=h-D,i=(C?A:-A)/L(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,F=(u+f)/2,t=(s+c)/2,m=f-u,y=c-s,R=m*m+y*y,T=v-A,P=u*c-f*s,S=(y<0?-1:1)*L(on(0,T*T*R-P*P)),j=(P*y-m*S)/R,z=(-P*m-y*S)/R,w=(P*y+m*S)/R,p=(-P*m+y*S)/R,x=j-F,e=z-t,r=w-F,G=p-t;return x*x+e*e>r*r+G*G&&(j=w,z=p),{cx:j,cy:z,x01:-n,y01:-d,x11:j*(v/T-1),y11:z*(v/T-1)}}function hn(){var l=cn,h=gn,I=B(0),D=null,v=yn,A=dn,C=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,F=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>g))a.moveTo(0,0);else if(F>tn-g)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>g&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,y=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>g&&(D?+D.apply(this,arguments):L(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(z>g){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>g?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>g?(M*=t?1:-1,m+=M,y-=M):(S=0,m=y=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>g){var U=s*H(y),V=s*q(y),X=u*H(R),Y=u*q(R),E;if(F<an)if(E=pn(J,K,X,Y,U,V,N,Q)){var Z=J-E[0],$=K-E[1],b=U-E[0],k=V-E[1],nn=1/q(fn((Z*b+$*k)/(L(Z*Z+$*$)*L(b*b+k*k)))/2),en=L(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>g?x>g?(e=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(J,K),a.arc(0,0,s,m,y,!t)):a.moveTo(J,K),!(u>g)||!(P>g)?a.lineTo(N,Q):p>g?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[H(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:B(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),i):A},i.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),i):C},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|