dsh-context 0.39.0 → 0.40.1
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/lib/client.js +363 -101
- package/lib/index.d.ts +30 -8
- package/lib/index.js +97 -49
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -40,15 +40,17 @@ window.__ModuleLoader__.load({
|
|
|
40
40
|
"timing.lm": "模型调用",
|
|
41
41
|
"timing.tools": "工具执行",
|
|
42
42
|
"timing.other": "其他开销",
|
|
43
|
-
"timing.
|
|
43
|
+
"timing.lmTimes": "{n}次",
|
|
44
|
+
"timing.toolTimes": "{n}次",
|
|
44
45
|
"timing.empty": "暂无耗时数据 · 对话开始后这里会显示时长分布",
|
|
45
46
|
"tokens.title": "Token 统计",
|
|
46
47
|
"tokens.hint": "供应商上报的累计计费用量",
|
|
47
48
|
"tokens.cacheHit": "缓存命中",
|
|
48
|
-
"tokens.cacheRead": "
|
|
49
|
+
"tokens.cacheRead": "缓存输入",
|
|
49
50
|
"tokens.cacheWrite": "缓存写入",
|
|
50
|
-
"tokens.uncached": "
|
|
51
|
-
"tokens.output": "
|
|
51
|
+
"tokens.uncached": "未缓存输入",
|
|
52
|
+
"tokens.output": "输出",
|
|
53
|
+
"tokens.outputNote": "含思考",
|
|
52
54
|
"plugin.title": "插件信息",
|
|
53
55
|
"plugin.hint": "The best DSH context plugin ⭐",
|
|
54
56
|
"plugin.name": "插件",
|
|
@@ -60,9 +62,9 @@ window.__ModuleLoader__.load({
|
|
|
60
62
|
"gran.turn": "轮次",
|
|
61
63
|
"settings.title": "上下文",
|
|
62
64
|
"settings.desc": "dsh-context 插件中上下文面板的偏好设置",
|
|
63
|
-
"settings.gran": "
|
|
64
|
-
"settings.mode": "
|
|
65
|
-
"settings.fileSort": "
|
|
65
|
+
"settings.gran": "趋势图 · 默认粒度",
|
|
66
|
+
"settings.mode": "趋势图 · 默认展示方式",
|
|
67
|
+
"settings.fileSort": "文件活动 · 默认排序",
|
|
66
68
|
"settings.expand": "展开",
|
|
67
69
|
"settings.collapse": "收起",
|
|
68
70
|
"settings.readOnly": "当前环境的设置为只读",
|
|
@@ -222,6 +224,8 @@ window.__ModuleLoader__.load({
|
|
|
222
224
|
"browser.deltaHint": "对比上轮末步的变动",
|
|
223
225
|
"browser.noHeader": "此数据来自旧版插件:仅提供 token 估算,无实际内容",
|
|
224
226
|
"browser.noEpoch": "该步骤的头部内容(系统提示词 / 工具定义)不在保留范围内",
|
|
227
|
+
"browser.headerMetaOnly": "此环境不支持按需读取头部内容,仅显示 token 估算",
|
|
228
|
+
"browser.noSystem": "该请求头部未包含系统提示词",
|
|
225
229
|
"browser.noContent": "完整内容不在当前加载的消息窗口内(在聊天页加载更早历史后可查看)",
|
|
226
230
|
"browser.search.user": "按消息内容过滤…",
|
|
227
231
|
"browser.search.inject": "按注入内容过滤…",
|
|
@@ -311,15 +315,17 @@ window.__ModuleLoader__.load({
|
|
|
311
315
|
"timing.lm": "Model calls",
|
|
312
316
|
"timing.tools": "Tool runs",
|
|
313
317
|
"timing.other": "Overhead",
|
|
314
|
-
"timing.
|
|
318
|
+
"timing.lmTimes": "{n} calls",
|
|
319
|
+
"timing.toolTimes": "{n} runs",
|
|
315
320
|
"timing.empty": "No timing data yet — durations appear as the conversation runs",
|
|
316
321
|
"tokens.title": "Token Stats",
|
|
317
322
|
"tokens.hint": "Cumulative provider-reported usage",
|
|
318
|
-
"tokens.cacheHit": "Cache
|
|
319
|
-
"tokens.cacheRead": "
|
|
320
|
-
"tokens.cacheWrite": "Cache
|
|
321
|
-
"tokens.uncached": "Uncached
|
|
322
|
-
"tokens.output": "Output
|
|
323
|
+
"tokens.cacheHit": "Cache Hit",
|
|
324
|
+
"tokens.cacheRead": "Cached Input",
|
|
325
|
+
"tokens.cacheWrite": "Cache Write",
|
|
326
|
+
"tokens.uncached": "Uncached Input",
|
|
327
|
+
"tokens.output": "Output",
|
|
328
|
+
"tokens.outputNote": "incl. reasoning",
|
|
323
329
|
"plugin.title": "Plugin Info",
|
|
324
330
|
"plugin.hint": "The best DSH context plugin ⭐",
|
|
325
331
|
"plugin.name": "Plugin",
|
|
@@ -331,9 +337,9 @@ window.__ModuleLoader__.load({
|
|
|
331
337
|
"gran.turn": "Turn",
|
|
332
338
|
"settings.title": "Context",
|
|
333
339
|
"settings.desc": "Preferences for Context panel in dsh-context plugin",
|
|
334
|
-
"settings.gran": "Default
|
|
335
|
-
"settings.mode": "Default
|
|
336
|
-
"settings.fileSort": "File Activity
|
|
340
|
+
"settings.gran": "Trend Chart · Default granularity",
|
|
341
|
+
"settings.mode": "Trend Chart · Default display",
|
|
342
|
+
"settings.fileSort": "File Activity · Default sort",
|
|
337
343
|
"settings.expand": "Expand",
|
|
338
344
|
"settings.collapse": "Collapse",
|
|
339
345
|
"settings.readOnly": "Settings are read-only in this environment",
|
|
@@ -493,6 +499,8 @@ window.__ModuleLoader__.load({
|
|
|
493
499
|
"browser.deltaHint": "vs previous turn",
|
|
494
500
|
"browser.noHeader": "Served by an older plugin build: token estimates only, no content",
|
|
495
501
|
"browser.noEpoch": "The header content (System Prompt / Tool Schemas) of this step is outside retention",
|
|
502
|
+
"browser.headerMetaOnly": "This environment cannot fetch header content on demand; token estimates only",
|
|
503
|
+
"browser.noSystem": "This request header carried no system prompt",
|
|
496
504
|
"browser.noContent": "Full content is outside the loaded message window (load older history in Chat to view)",
|
|
497
505
|
"browser.search.user": "Filter by message text…",
|
|
498
506
|
"browser.search.inject": "Filter injected context…",
|
|
@@ -634,6 +642,31 @@ window.__ModuleLoader__.load({
|
|
|
634
642
|
});
|
|
635
643
|
}
|
|
636
644
|
//#endregion
|
|
645
|
+
//#region src/client/dockMeasure.ts
|
|
646
|
+
const LEADING_PX_TRACK = /^(\d+(?:\.\d+)?)px/;
|
|
647
|
+
/** Measure the sidebar track width from the backdrop's ancestor chain, or resolve to the full-viewport mask. */
|
|
648
|
+
function measureDock(start) {
|
|
649
|
+
try {
|
|
650
|
+
for (let el = start?.parentElement ?? null; el !== null; el = el.parentElement) {
|
|
651
|
+
const template = el.style.gridTemplateColumns;
|
|
652
|
+
if (template === "") continue;
|
|
653
|
+
const track = LEADING_PX_TRACK.exec(template.trim());
|
|
654
|
+
if (track === null) return {
|
|
655
|
+
left: 0,
|
|
656
|
+
frame: null
|
|
657
|
+
};
|
|
658
|
+
return {
|
|
659
|
+
left: Number(track[1]),
|
|
660
|
+
frame: el
|
|
661
|
+
};
|
|
662
|
+
}
|
|
663
|
+
} catch {}
|
|
664
|
+
return {
|
|
665
|
+
left: 0,
|
|
666
|
+
frame: null
|
|
667
|
+
};
|
|
668
|
+
}
|
|
669
|
+
//#endregion
|
|
637
670
|
//#region src/client/categories.ts
|
|
638
671
|
const CATS = [
|
|
639
672
|
{
|
|
@@ -761,6 +794,22 @@ window.__ModuleLoader__.load({
|
|
|
761
794
|
};
|
|
762
795
|
}
|
|
763
796
|
//#endregion
|
|
797
|
+
//#region src/shared/estimate.ts
|
|
798
|
+
/**
|
|
799
|
+
* Token heuristics shared by the host fold and the client boundary — the
|
|
800
|
+
* harness token-meter's own fixed-density figure (dsh-token-meter/estimate.ts:
|
|
801
|
+
* ~4 chars ≈ 1 token, +4 role framing). Priced identically on both sides so a
|
|
802
|
+
* legacy value normalized at the client boundary matches what the host view
|
|
803
|
+
* would have served.
|
|
804
|
+
*/
|
|
805
|
+
const CHARS_PER_TOKEN = 4;
|
|
806
|
+
const ROLE_OVERHEAD = 4;
|
|
807
|
+
/** Price rendered system-prompt text; 0 for absent/empty/non-string input. */
|
|
808
|
+
function estimateSystemTokens(text) {
|
|
809
|
+
if (typeof text !== "string" || text.length === 0) return 0;
|
|
810
|
+
return Math.ceil(text.length / CHARS_PER_TOKEN) + ROLE_OVERHEAD;
|
|
811
|
+
}
|
|
812
|
+
//#endregion
|
|
764
813
|
//#region src/client/services.ts
|
|
765
814
|
/**
|
|
766
815
|
* A session-authorized durable-image loader over whichever conversation
|
|
@@ -998,14 +1047,22 @@ window.__ModuleLoader__.load({
|
|
|
998
1047
|
}
|
|
999
1048
|
/**
|
|
1000
1049
|
* Narrow a delivered projection value to the plugin's `contextHeaders`
|
|
1001
|
-
* (request-header
|
|
1002
|
-
* the companion unit — the Context
|
|
1003
|
-
* sections to
|
|
1050
|
+
* (request-header epoch METADATA — boundaries, token prices, attribution).
|
|
1051
|
+
* Absent key = an older Host half without the companion unit — the Context
|
|
1052
|
+
* browser degrades its system/tools sections to a metadata-only note.
|
|
1004
1053
|
*
|
|
1005
1054
|
* Entry-level shape is checked too: a malformed epoch (corrupt payload with
|
|
1006
|
-
* a missing tools list or wrong-typed
|
|
1055
|
+
* a missing tools list or wrong-typed systemTokens) would crash the
|
|
1007
1056
|
* browser's tools/sections reads, so the WHOLE projection degrades to null
|
|
1008
|
-
* and the card falls back to its
|
|
1057
|
+
* and the card falls back to its metadata-only note. The epoch CONTENT is
|
|
1058
|
+
* not part of this value — the browser fetches it per epoch on demand.
|
|
1059
|
+
*
|
|
1060
|
+
* The pre-#37 wire generation carries the system TEXT instead of its token
|
|
1061
|
+
* price (a host still running the old view — stale watch build, an app not
|
|
1062
|
+
* restarted since the upgrade — serves it from its cache verbatim), so the
|
|
1063
|
+
* two generations are normalized to the metadata shape here: unpriced legacy
|
|
1064
|
+
* entries get the shared meter heuristic applied, priced ones and
|
|
1065
|
+
* new-shape values pass through untouched.
|
|
1009
1066
|
*/
|
|
1010
1067
|
function headersOf(value) {
|
|
1011
1068
|
const headers = asRecord$1(value);
|
|
@@ -1014,9 +1071,21 @@ window.__ModuleLoader__.load({
|
|
|
1014
1071
|
if (h === null || typeof h !== "object") return null;
|
|
1015
1072
|
const entry = h;
|
|
1016
1073
|
if (!Array.isArray(entry.tools)) return null;
|
|
1017
|
-
if (entry.
|
|
1074
|
+
if (entry.systemTokens !== void 0 && (typeof entry.systemTokens !== "number" || !Number.isFinite(entry.systemTokens))) return null;
|
|
1018
1075
|
}
|
|
1019
|
-
|
|
1076
|
+
let legacy = false;
|
|
1077
|
+
for (const entry of headers.headers) if (entry.systemTokens === void 0 && typeof entry.system === "string" && entry.system !== "") {
|
|
1078
|
+
legacy = true;
|
|
1079
|
+
break;
|
|
1080
|
+
}
|
|
1081
|
+
if (!legacy) return headers;
|
|
1082
|
+
return { headers: headers.headers.map((entry) => {
|
|
1083
|
+
if (entry.systemTokens !== void 0) return entry;
|
|
1084
|
+
return {
|
|
1085
|
+
...entry,
|
|
1086
|
+
systemTokens: estimateSystemTokens(entry.system) || void 0
|
|
1087
|
+
};
|
|
1088
|
+
}) };
|
|
1020
1089
|
}
|
|
1021
1090
|
/**
|
|
1022
1091
|
* The SESSION's workspace root — the `cwd` its session-list row carries (the
|
|
@@ -1217,6 +1286,37 @@ window.__ModuleLoader__.load({
|
|
|
1217
1286
|
return rows;
|
|
1218
1287
|
}
|
|
1219
1288
|
/**
|
|
1289
|
+
* The session's history readers over whichever face the running harness
|
|
1290
|
+
* serves — the 0.1.2+ gateway remotes (`remote.session.page`) first, the
|
|
1291
|
+
* pre-0.1.2 api client verb (`connection.api.sessions.history`) beneath it.
|
|
1292
|
+
* Both cut message-aligned pages, so the returned read covers `seq` whenever
|
|
1293
|
+
* the durable log still holds it: the newer face pins the inclusive cut to
|
|
1294
|
+
* the seq itself, the legacy reader uses the exclusive bound one past it.
|
|
1295
|
+
* Undefined when no face exists (older hosts) — callers keep their static
|
|
1296
|
+
* degradation.
|
|
1297
|
+
*/
|
|
1298
|
+
function pageReadersOf(ctx, sessionId) {
|
|
1299
|
+
const pageFace = serviceOf(ctx, "remote.session");
|
|
1300
|
+
const page = pageFace !== void 0 && typeof pageFace.page === "function" ? pageFace.page.bind(pageFace) : void 0;
|
|
1301
|
+
const historyFace = serviceOf(ctx, "connection")?.api?.sessions;
|
|
1302
|
+
const history = historyFace !== void 0 && typeof historyFace.history === "function" ? historyFace.history.bind(historyFace) : void 0;
|
|
1303
|
+
if (page === void 0 && history === void 0) return void 0;
|
|
1304
|
+
return (seq) => {
|
|
1305
|
+
if (page !== void 0) return page({
|
|
1306
|
+
address: {
|
|
1307
|
+
kind: "session",
|
|
1308
|
+
sessionId
|
|
1309
|
+
},
|
|
1310
|
+
throughSeq: seq,
|
|
1311
|
+
beforeSeq: seq + 1
|
|
1312
|
+
}, new AbortController().signal);
|
|
1313
|
+
return history({
|
|
1314
|
+
sessionId,
|
|
1315
|
+
beforeSeq: seq + 1
|
|
1316
|
+
});
|
|
1317
|
+
};
|
|
1318
|
+
}
|
|
1319
|
+
/**
|
|
1220
1320
|
* Build the browser's per-session fetcher over whichever history face the
|
|
1221
1321
|
* running harness serves — the 0.1.2+ gateway remotes (`remote.session.page`)
|
|
1222
1322
|
* first, the pre-0.1.2 api client verb (`connection.api.sessions.history`)
|
|
@@ -1227,32 +1327,73 @@ window.__ModuleLoader__.load({
|
|
|
1227
1327
|
* nodes cache in the closure: one mount re-reading a row never re-fetches.
|
|
1228
1328
|
*/
|
|
1229
1329
|
function makeContentFetcher(ctx, sessionId) {
|
|
1230
|
-
const
|
|
1231
|
-
|
|
1232
|
-
const historyFace = serviceOf(ctx, "connection")?.api?.sessions;
|
|
1233
|
-
const history = historyFace !== void 0 && typeof historyFace.history === "function" ? historyFace.history.bind(historyFace) : void 0;
|
|
1234
|
-
if (page === void 0 && history === void 0) return void 0;
|
|
1235
|
-
const pageRequest = (seq) => ({
|
|
1236
|
-
address: {
|
|
1237
|
-
kind: "session",
|
|
1238
|
-
sessionId
|
|
1239
|
-
},
|
|
1240
|
-
throughSeq: seq,
|
|
1241
|
-
beforeSeq: seq + 1
|
|
1242
|
-
});
|
|
1243
|
-
const historyCall = (seq) => history({
|
|
1244
|
-
sessionId,
|
|
1245
|
-
beforeSeq: seq + 1
|
|
1246
|
-
});
|
|
1330
|
+
const read = pageReadersOf(ctx, sessionId);
|
|
1331
|
+
if (read === void 0) return void 0;
|
|
1247
1332
|
const cache = /* @__PURE__ */ new Map();
|
|
1248
1333
|
return async (seq) => {
|
|
1249
1334
|
const hit = cache.get(seq);
|
|
1250
1335
|
if (hit !== void 0) return hit;
|
|
1251
|
-
const node = pageNodesOf(rowsOf(
|
|
1336
|
+
const node = pageNodesOf(rowsOf(await read(seq))).get(seq) ?? null;
|
|
1252
1337
|
if (node !== null) cache.set(seq, node);
|
|
1253
1338
|
return node;
|
|
1254
1339
|
};
|
|
1255
1340
|
}
|
|
1341
|
+
/**
|
|
1342
|
+
* Map one raw `request/header` event into the epoch content the browser
|
|
1343
|
+
* renders — the full system prompt text plus each tool's producer
|
|
1344
|
+
* description and raw schema, mirroring the host fold's per-entry guards
|
|
1345
|
+
* (a null or primitive tool entry degrades to an unnamed row instead of
|
|
1346
|
+
* throwing the read). Null when the envelope carries no usable header.
|
|
1347
|
+
*/
|
|
1348
|
+
function headerContentOf(data) {
|
|
1349
|
+
const rawHeader = data.header !== null && typeof data.header === "object" ? data.header : null;
|
|
1350
|
+
if (rawHeader === null) return null;
|
|
1351
|
+
const toolsRaw = Array.isArray(rawHeader.tools) ? rawHeader.tools : [];
|
|
1352
|
+
const tools = [];
|
|
1353
|
+
for (const t of toolsRaw) {
|
|
1354
|
+
const tool = t !== null && typeof t === "object" ? t : null;
|
|
1355
|
+
tools.push({
|
|
1356
|
+
name: tool !== null && typeof tool.name === "string" ? tool.name : "?",
|
|
1357
|
+
...tool !== null && typeof tool.description === "string" && tool.description !== "" ? { description: tool.description } : {},
|
|
1358
|
+
schema: t
|
|
1359
|
+
});
|
|
1360
|
+
}
|
|
1361
|
+
return {
|
|
1362
|
+
...typeof rawHeader.system === "string" && rawHeader.system !== "" ? { system: rawHeader.system } : {},
|
|
1363
|
+
tools
|
|
1364
|
+
};
|
|
1365
|
+
}
|
|
1366
|
+
/**
|
|
1367
|
+
* The on-demand CONTENT fetch for `contextHeaders` epochs — the lazy
|
|
1368
|
+
* counterpart of the node fetcher above. One seq-anchored history read off
|
|
1369
|
+
* the epoch's `seq` returns the page holding that epoch's `request/header`
|
|
1370
|
+
* event (non-message events ride the page verbatim); the raw header is
|
|
1371
|
+
* mapped client-side into the renderable content. Epochs cache per session
|
|
1372
|
+
* (history is immutable), and OLDER epochs sharing the page cache for free —
|
|
1373
|
+
* stepping back through epochs walks the same pages. Undefined when no
|
|
1374
|
+
* history face exists (older hosts) — the browser keeps a metadata-only
|
|
1375
|
+
* degradation instead.
|
|
1376
|
+
*/
|
|
1377
|
+
function makeHeaderFetcher(ctx, sessionId) {
|
|
1378
|
+
const read = pageReadersOf(ctx, sessionId);
|
|
1379
|
+
if (read === void 0) return void 0;
|
|
1380
|
+
const cache = /* @__PURE__ */ new Map();
|
|
1381
|
+
return async (seq) => {
|
|
1382
|
+
const hit = cache.get(seq);
|
|
1383
|
+
if (hit !== void 0) return hit;
|
|
1384
|
+
const rows = rowsOf(await read(seq));
|
|
1385
|
+
let picked = null;
|
|
1386
|
+
for (const entry of rows) {
|
|
1387
|
+
const ev = eventOf(entry);
|
|
1388
|
+
if (ev === null || ev.type !== "request/header") continue;
|
|
1389
|
+
const content = headerContentOf(ev.data);
|
|
1390
|
+
if (content === null) continue;
|
|
1391
|
+
cache.set(ev.seq, content);
|
|
1392
|
+
if (ev.seq === seq) picked = content;
|
|
1393
|
+
}
|
|
1394
|
+
return picked;
|
|
1395
|
+
};
|
|
1396
|
+
}
|
|
1256
1397
|
//#endregion
|
|
1257
1398
|
//#region src/client/assemble.ts
|
|
1258
1399
|
/** The header epoch in force at `seq` (last logged before it), or the newest. */
|
|
@@ -1392,16 +1533,16 @@ window.__ModuleLoader__.load({
|
|
|
1392
1533
|
}
|
|
1393
1534
|
/**
|
|
1394
1535
|
* Share of a whole as a compact leading percentage for the slice rows:
|
|
1395
|
-
* '—' when nothing totals, '0%' for empty slices, '<1%' for non-zero
|
|
1396
|
-
* a
|
|
1397
|
-
* can over-run the wall it belongs to).
|
|
1536
|
+
* '—' when nothing totals, '0.0%' for empty slices, '<0.1%' for non-zero
|
|
1537
|
+
* crumbs a 0.1%-precision figure would erase. One decimal everywhere; shares
|
|
1538
|
+
* cap at 100% (parallel tool time can over-run the wall it belongs to).
|
|
1398
1539
|
*/
|
|
1399
1540
|
function fmtShare(part, total) {
|
|
1400
1541
|
if (!Number.isFinite(part) || !Number.isFinite(total) || total <= 0) return "—";
|
|
1401
|
-
if (part <= 0) return "0%";
|
|
1542
|
+
if (part <= 0) return "0.0%";
|
|
1402
1543
|
const pct = Math.min(1, part / total) * 100;
|
|
1403
|
-
if (pct < 1) return "<1%";
|
|
1404
|
-
return `${
|
|
1544
|
+
if (pct < .1) return "<0.1%";
|
|
1545
|
+
return `${pct.toFixed(1)}%`;
|
|
1405
1546
|
}
|
|
1406
1547
|
/**
|
|
1407
1548
|
* Whole-session durations for the timing card, in the locale's units: raw ms
|
|
@@ -1898,7 +2039,7 @@ window.__ModuleLoader__.load({
|
|
|
1898
2039
|
}
|
|
1899
2040
|
return out;
|
|
1900
2041
|
}, [params]);
|
|
1901
|
-
const schemaJson = React.useMemo(() =>
|
|
2042
|
+
const schemaJson = React.useMemo(() => jsonOpen ? JSON.stringify(props.schema, null, 2) : "", [props.schema, jsonOpen]);
|
|
1902
2043
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, props.description !== void 0 ? /* @__PURE__ */ React.createElement(TextSection, {
|
|
1903
2044
|
label: props.labels.desc,
|
|
1904
2045
|
text: props.description,
|
|
@@ -1912,13 +2053,13 @@ window.__ModuleLoader__.load({
|
|
|
1912
2053
|
name: r.name,
|
|
1913
2054
|
schema: r.schema,
|
|
1914
2055
|
required: r.required
|
|
1915
|
-
}))) : params !== null ? /* @__PURE__ */ React.createElement("div", { className: "lc-ts-params-empty" }, props.labels.empty) : null,
|
|
2056
|
+
}))) : params !== null ? /* @__PURE__ */ React.createElement("div", { className: "lc-ts-params-empty" }, props.labels.empty) : null, /* @__PURE__ */ React.createElement("div", { className: "lc-ts-json" }, /* @__PURE__ */ React.createElement("button", {
|
|
1916
2057
|
type: "button",
|
|
1917
2058
|
className: "lc-ts-json-toggle",
|
|
1918
2059
|
onClick: () => {
|
|
1919
2060
|
setJsonOpen((o) => !o);
|
|
1920
2061
|
}
|
|
1921
|
-
}, (jsonOpen ? "▾ " : "▸ ") + (jsonOpen ? props.labels.hide : props.labels.show)), jsonOpen ? /* @__PURE__ */ React.createElement("pre", { className: "lc-ts-desc-body lc-br-dim" }, schemaJson) : null)
|
|
2062
|
+
}, (jsonOpen ? "▾ " : "▸ ") + (jsonOpen ? props.labels.hide : props.labels.show)), jsonOpen ? /* @__PURE__ */ React.createElement("pre", { className: "lc-ts-desc-body lc-br-dim" }, schemaJson) : null));
|
|
1922
2063
|
}
|
|
1923
2064
|
/**
|
|
1924
2065
|
* Both block vocabularies normalize here — raw durable blocks (`type`: text/reasoning/tool-call/tool-result/image) and snapshot assistant
|
|
@@ -2139,7 +2280,7 @@ window.__ModuleLoader__.load({
|
|
|
2139
2280
|
return m;
|
|
2140
2281
|
}
|
|
2141
2282
|
function countOf(asm, byCat, c) {
|
|
2142
|
-
if (c === "system") return asm.header !== null && asm.header.
|
|
2283
|
+
if (c === "system") return asm.header !== null && asm.header.systemTokens !== void 0 ? 1 : 0;
|
|
2143
2284
|
if (c === "tools") return asm.header !== null ? asm.header.tools.length : 0;
|
|
2144
2285
|
return byCat[c]?.length ?? 0;
|
|
2145
2286
|
}
|
|
@@ -2237,6 +2378,48 @@ window.__ModuleLoader__.load({
|
|
|
2237
2378
|
const linked = req === null && props.onHoverKey !== void 0;
|
|
2238
2379
|
const linkKey = linked && props.hoverKey !== null && props.hoverKey !== "free" ? props.hoverKey : null;
|
|
2239
2380
|
const view = assemble(data, headers, seq);
|
|
2381
|
+
const [headerContent, setHeaderContent] = React.useState(() => /* @__PURE__ */ new Map());
|
|
2382
|
+
const [headerState, setHeaderState] = React.useState("idle");
|
|
2383
|
+
const [headerRetry, setHeaderRetry] = React.useState(0);
|
|
2384
|
+
const fetchHeader = props.fetchHeader;
|
|
2385
|
+
const headerSeq = view.header !== null ? view.header.seq : null;
|
|
2386
|
+
const headerNeeded = view.header !== null && headerSeq !== null && !headerContent.has(headerSeq) && (openCat === "system" || openCat === "tools");
|
|
2387
|
+
React.useEffect(() => {
|
|
2388
|
+
if (!headerNeeded || fetchHeader === void 0) return;
|
|
2389
|
+
let live = true;
|
|
2390
|
+
setHeaderState("loading");
|
|
2391
|
+
fetchHeader(headerSeq).then((content) => {
|
|
2392
|
+
if (!live) return;
|
|
2393
|
+
if (content === null) {
|
|
2394
|
+
setHeaderState("absent");
|
|
2395
|
+
return;
|
|
2396
|
+
}
|
|
2397
|
+
setHeaderContent((prev) => {
|
|
2398
|
+
const next = new Map(prev);
|
|
2399
|
+
next.set(headerSeq, content);
|
|
2400
|
+
return next;
|
|
2401
|
+
});
|
|
2402
|
+
setHeaderState("idle");
|
|
2403
|
+
}, (error) => {
|
|
2404
|
+
console.warn("dsh-context: header content fetch failed", error);
|
|
2405
|
+
if (live) setHeaderState("failed");
|
|
2406
|
+
});
|
|
2407
|
+
return () => {
|
|
2408
|
+
live = false;
|
|
2409
|
+
};
|
|
2410
|
+
}, [
|
|
2411
|
+
headerNeeded,
|
|
2412
|
+
headerSeq,
|
|
2413
|
+
fetchHeader,
|
|
2414
|
+
headerRetry
|
|
2415
|
+
]);
|
|
2416
|
+
const headerNote = fetchHeader === void 0 ? t("browser.headerMetaOnly") : headerState === "loading" || headerState === "idle" ? t("browser.loading") : headerState === "absent" ? t("browser.notInLog") : /* @__PURE__ */ React.createElement("button", {
|
|
2417
|
+
type: "button",
|
|
2418
|
+
className: "lc-br-retry",
|
|
2419
|
+
onClick: () => {
|
|
2420
|
+
setHeaderRetry((r) => r + 1);
|
|
2421
|
+
}
|
|
2422
|
+
}, t("browser.loadFailed"));
|
|
2240
2423
|
const breakdown = req !== null ? req : data.current;
|
|
2241
2424
|
const parts = partsOf(breakdown);
|
|
2242
2425
|
const total = breakdown.total;
|
|
@@ -2251,7 +2434,7 @@ window.__ModuleLoader__.load({
|
|
|
2251
2434
|
const byCat = byCatOf(view);
|
|
2252
2435
|
const toolCount = (c) => countOf(view, byCat, c);
|
|
2253
2436
|
const singleKeyOf = (c) => {
|
|
2254
|
-
if (c === "system") return view.header?.
|
|
2437
|
+
if (c === "system") return view.header?.systemTokens !== void 0 ? "sys" : null;
|
|
2255
2438
|
if (c === "tools") {
|
|
2256
2439
|
const tools = view.header?.tools;
|
|
2257
2440
|
return tools !== void 0 && tools.length === 1 ? "tool:" + tools[0].name : null;
|
|
@@ -2298,13 +2481,12 @@ window.__ModuleLoader__.load({
|
|
|
2298
2481
|
const catBody = (c) => {
|
|
2299
2482
|
if (c === "system") {
|
|
2300
2483
|
if (view.header === null) return /* @__PURE__ */ React.createElement("div", { className: "lc-br-note" }, t(headers === null ? "browser.noHeader" : "browser.noEpoch"));
|
|
2301
|
-
const
|
|
2302
|
-
|
|
2303
|
-
(
|
|
2304
|
-
|
|
2305
|
-
return elemRow("sys", null, system.replace(/\s+/g, " ").trim().slice(0, 80), breakdown.system, void 0, /* @__PURE__ */ React.createElement(TextSection, {
|
|
2484
|
+
const content = headerContent.get(view.header.seq);
|
|
2485
|
+
if (content === void 0) return /* @__PURE__ */ React.createElement("div", { className: "lc-br-note" }, headerNote);
|
|
2486
|
+
if (content.system === void 0) return /* @__PURE__ */ React.createElement("div", { className: "lc-br-note" }, t("browser.noSystem"));
|
|
2487
|
+
return elemRow("sys", null, content.system.replace(/\s+/g, " ").trim().slice(0, 80), breakdown.system, void 0, /* @__PURE__ */ React.createElement(TextSection, {
|
|
2306
2488
|
label: catLabel("system"),
|
|
2307
|
-
text: system,
|
|
2489
|
+
text: content.system,
|
|
2308
2490
|
rich,
|
|
2309
2491
|
lines: lineLabel
|
|
2310
2492
|
}));
|
|
@@ -2318,8 +2500,17 @@ window.__ModuleLoader__.load({
|
|
|
2318
2500
|
show: t("tool.jsonToggle"),
|
|
2319
2501
|
hide: t("tool.jsonHide")
|
|
2320
2502
|
};
|
|
2503
|
+
const content = headerContent.get(view.header.seq);
|
|
2504
|
+
const contentByName = new Map(content?.tools.map((t) => [t.name, t]) ?? []);
|
|
2321
2505
|
const q = rowQuery.trim().toLowerCase();
|
|
2322
|
-
const shown = view.header.tools.filter((tool) =>
|
|
2506
|
+
const shown = view.header.tools.filter((tool) => {
|
|
2507
|
+
if (q === "") return true;
|
|
2508
|
+
if (tool.name.toLowerCase().includes(q)) return true;
|
|
2509
|
+
if ((tool.plugin ?? "").toLowerCase().includes(q)) return true;
|
|
2510
|
+
const row = contentByName.get(tool.name);
|
|
2511
|
+
if (row === void 0) return false;
|
|
2512
|
+
return (row.description ?? "").toLowerCase().includes(q) || schemaTextOf(row.schema).toLowerCase().includes(q);
|
|
2513
|
+
}).sort((a, b) => toolSort === "size" ? b.tokens - a.tokens : a.name < b.name ? -1 : 1);
|
|
2323
2514
|
const toolctl = /* @__PURE__ */ React.createElement(RowToolbar, {
|
|
2324
2515
|
value: rowQuery,
|
|
2325
2516
|
placeholder: t("tool.search"),
|
|
@@ -2334,18 +2525,23 @@ window.__ModuleLoader__.load({
|
|
|
2334
2525
|
}
|
|
2335
2526
|
}, t("tool.sort." + k))));
|
|
2336
2527
|
if (shown.length === 0) return /* @__PURE__ */ React.createElement("div", null, toolctl, /* @__PURE__ */ React.createElement("div", { className: "lc-br-note" }, t("tool.noMatch")));
|
|
2528
|
+
const toolBody = (tool) => {
|
|
2529
|
+
if (content === void 0) return /* @__PURE__ */ React.createElement("div", { className: "lc-br-note" }, headerNote);
|
|
2530
|
+
const row = contentByName.get(tool.name);
|
|
2531
|
+
return row === void 0 ? /* @__PURE__ */ React.createElement("div", { className: "lc-br-note" }, t("browser.notInLog")) : /* @__PURE__ */ React.createElement(ToolSchema, {
|
|
2532
|
+
description: row.description,
|
|
2533
|
+
schema: row.schema,
|
|
2534
|
+
rich,
|
|
2535
|
+
lines: lineLabel,
|
|
2536
|
+
labels
|
|
2537
|
+
});
|
|
2538
|
+
};
|
|
2337
2539
|
return /* @__PURE__ */ React.createElement("div", null, toolctl, shown.map((tool) => {
|
|
2338
2540
|
const trailing = tool.plugin !== void 0 ? /* @__PURE__ */ React.createElement("span", {
|
|
2339
2541
|
className: "lc-br-tag lc-br-tool-plugin",
|
|
2340
2542
|
title: tool.plugin === "<unknown-plugin>" ? t("tool.unknownTitle") : t("tool.plugin")
|
|
2341
2543
|
}, tool.plugin === "<unknown-plugin>" ? t("tool.unknown") : tool.plugin) : null;
|
|
2342
|
-
return elemRow("tool:" + tool.name, null, tool.name, tool.tokens, void 0,
|
|
2343
|
-
description: tool.description,
|
|
2344
|
-
schema: tool.schema,
|
|
2345
|
-
rich,
|
|
2346
|
-
lines: lineLabel,
|
|
2347
|
-
labels
|
|
2348
|
-
}), false, trailing);
|
|
2544
|
+
return elemRow("tool:" + tool.name, null, tool.name, tool.tokens, void 0, toolBody(tool), false, trailing);
|
|
2349
2545
|
}));
|
|
2350
2546
|
}
|
|
2351
2547
|
const rows = (byCat[c] ?? []).slice().reverse().map((n) => {
|
|
@@ -2652,7 +2848,10 @@ window.__ModuleLoader__.load({
|
|
|
2652
2848
|
const headers = typeof props.useProjection === "function" ? headersOf(props.useProjection("contextHeaders")) : null;
|
|
2653
2849
|
const convNodes = conversationNodesOf(props);
|
|
2654
2850
|
const [hoverCat, setHoverCat] = React.useState(null);
|
|
2851
|
+
const [dockLeft, setDockLeft] = React.useState(0);
|
|
2852
|
+
const backdropRef = React.useRef(null);
|
|
2655
2853
|
const fetchContent = React.useMemo(() => sessionId !== "" ? makeContentFetcher(ctx, sessionId) : void 0, [ctx, sessionId]);
|
|
2854
|
+
const fetchHeader = React.useMemo(() => sessionId !== "" ? makeHeaderFetcher(ctx, sessionId) : void 0, [ctx, sessionId]);
|
|
2656
2855
|
const close = React.useCallback(() => {
|
|
2657
2856
|
if (sessionId === "") return;
|
|
2658
2857
|
modalStoreOf(sessionId).set(false);
|
|
@@ -2677,11 +2876,29 @@ window.__ModuleLoader__.load({
|
|
|
2677
2876
|
if (previous !== null && document.contains(previous)) previous.focus();
|
|
2678
2877
|
};
|
|
2679
2878
|
}, [open, close]);
|
|
2879
|
+
React.useLayoutEffect(() => {
|
|
2880
|
+
if (!open) return void 0;
|
|
2881
|
+
const dock = measureDock(backdropRef.current);
|
|
2882
|
+
setDockLeft(dock.left);
|
|
2883
|
+
if (dock.frame === null) return void 0;
|
|
2884
|
+
const observer = new MutationObserver(() => {
|
|
2885
|
+
setDockLeft(measureDock(backdropRef.current).left);
|
|
2886
|
+
});
|
|
2887
|
+
observer.observe(dock.frame, {
|
|
2888
|
+
attributes: true,
|
|
2889
|
+
attributeFilter: ["style"]
|
|
2890
|
+
});
|
|
2891
|
+
return () => {
|
|
2892
|
+
observer.disconnect();
|
|
2893
|
+
};
|
|
2894
|
+
}, [open]);
|
|
2680
2895
|
if (!open) return null;
|
|
2681
2896
|
const head = data !== null ? headlineOf(data, pressure, breakdown) : null;
|
|
2682
2897
|
const subtitle = data !== null ? (data.model ? data.model : "") + (data.provider ? " · " + data.provider : "") : "";
|
|
2683
2898
|
return /* @__PURE__ */ React.createElement("div", {
|
|
2899
|
+
ref: backdropRef,
|
|
2684
2900
|
className: "lc-modal-backdrop",
|
|
2901
|
+
style: { left: dockLeft },
|
|
2685
2902
|
onClick: close
|
|
2686
2903
|
}, /* @__PURE__ */ React.createElement("div", {
|
|
2687
2904
|
className: "lc-modal-card",
|
|
@@ -2702,6 +2919,7 @@ window.__ModuleLoader__.load({
|
|
|
2702
2919
|
headers,
|
|
2703
2920
|
convNodes,
|
|
2704
2921
|
fetchContent,
|
|
2922
|
+
fetchHeader,
|
|
2705
2923
|
hoverKey: hoverCat,
|
|
2706
2924
|
onHoverKey: setHoverCat
|
|
2707
2925
|
}))));
|
|
@@ -4462,11 +4680,15 @@ window.__ModuleLoader__.load({
|
|
|
4462
4680
|
});
|
|
4463
4681
|
acc += pct;
|
|
4464
4682
|
}
|
|
4683
|
+
const hovering = props.hoverKey !== null && props.hoverKey !== void 0 && arcs.some((a) => a.key === props.hoverKey);
|
|
4465
4684
|
return /* @__PURE__ */ React.createElement("div", {
|
|
4466
|
-
className: "lc-donut",
|
|
4685
|
+
className: "lc-donut" + (hovering ? " lc-donut-dim" : ""),
|
|
4467
4686
|
style: {
|
|
4468
4687
|
width: size,
|
|
4469
4688
|
height: size
|
|
4689
|
+
},
|
|
4690
|
+
onMouseLeave: () => {
|
|
4691
|
+
if (props.onHoverKey !== void 0) props.onHoverKey(null);
|
|
4470
4692
|
}
|
|
4471
4693
|
}, /* @__PURE__ */ React.createElement("svg", {
|
|
4472
4694
|
viewBox: "0 0 42 42",
|
|
@@ -4482,6 +4704,7 @@ window.__ModuleLoader__.load({
|
|
|
4482
4704
|
strokeWidth: "4"
|
|
4483
4705
|
}) : arcs.map((a) => /* @__PURE__ */ React.createElement("circle", {
|
|
4484
4706
|
key: a.key,
|
|
4707
|
+
className: "lc-donut-seg" + (props.hoverKey === a.key ? " lc-donut-seg-on" : ""),
|
|
4485
4708
|
cx: "21",
|
|
4486
4709
|
cy: "21",
|
|
4487
4710
|
r: "15.9155",
|
|
@@ -4489,7 +4712,10 @@ window.__ModuleLoader__.load({
|
|
|
4489
4712
|
stroke: a.color,
|
|
4490
4713
|
strokeWidth: "4",
|
|
4491
4714
|
strokeDasharray: `${a.pct} ${100 - a.pct}`,
|
|
4492
|
-
strokeDashoffset: a.offset
|
|
4715
|
+
strokeDashoffset: a.offset,
|
|
4716
|
+
onMouseEnter: () => {
|
|
4717
|
+
if (props.onHoverKey !== void 0) props.onHoverKey(a.key);
|
|
4718
|
+
}
|
|
4493
4719
|
}))), /* @__PURE__ */ React.createElement("div", { className: "lc-donut-center" }, /* @__PURE__ */ React.createElement("b", { style: { fontSize: Math.max(11, Math.round(size * .13)) } }, props.centerTop), props.centerSub !== void 0 ? /* @__PURE__ */ React.createElement("span", { style: { fontSize: Math.max(9, Math.round(size * .105)) } }, props.centerSub) : null));
|
|
4494
4720
|
};
|
|
4495
4721
|
}
|
|
@@ -4833,7 +5059,7 @@ window.__ModuleLoader__.load({
|
|
|
4833
5059
|
return function PluginInfo() {
|
|
4834
5060
|
const [latest, setLatest] = React.useState(null);
|
|
4835
5061
|
React.useEffect(() => {
|
|
4836
|
-
if ("0.
|
|
5062
|
+
if ("0.40.1".includes("-dev")) return;
|
|
4837
5063
|
let on = true;
|
|
4838
5064
|
fetchLatestVersion().then((v) => {
|
|
4839
5065
|
if (on && v) setLatest(v);
|
|
@@ -4842,8 +5068,8 @@ window.__ModuleLoader__.load({
|
|
|
4842
5068
|
on = false;
|
|
4843
5069
|
};
|
|
4844
5070
|
}, []);
|
|
4845
|
-
const update = latest !== null && isNewerVersion(latest, "0.
|
|
4846
|
-
const nameText = "dsh-context (v0.
|
|
5071
|
+
const update = latest !== null && isNewerVersion(latest, "0.40.1") ? latest : null;
|
|
5072
|
+
const nameText = "dsh-context (v0.40.1)";
|
|
4847
5073
|
const nameValue = [nameText];
|
|
4848
5074
|
if (update) nameValue.push(/* @__PURE__ */ React.createElement("span", {
|
|
4849
5075
|
key: "update",
|
|
@@ -5215,16 +5441,27 @@ window.__ModuleLoader__.load({
|
|
|
5215
5441
|
//#region src/client/components/sliceList.tsx
|
|
5216
5442
|
function makeSliceList(kit) {
|
|
5217
5443
|
return function SliceList(props) {
|
|
5218
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
5444
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
5445
|
+
className: "lc-sl",
|
|
5446
|
+
onMouseLeave: () => {
|
|
5447
|
+
if (props.onHoverKey !== void 0) props.onHoverKey(null);
|
|
5448
|
+
}
|
|
5449
|
+
}, props.rows.map((r) => /* @__PURE__ */ React.createElement("div", {
|
|
5219
5450
|
key: r.key,
|
|
5220
|
-
className: "lc-sl-row"
|
|
5221
|
-
|
|
5451
|
+
className: "lc-sl-row" + (r.dim ? " lc-sl-row-dim" : "") + (props.hoverKey !== void 0 && props.hoverKey === r.key ? " lc-sl-row-on" : ""),
|
|
5452
|
+
onMouseEnter: () => {
|
|
5453
|
+
if (props.onHoverKey !== void 0) props.onHoverKey(r.key);
|
|
5454
|
+
}
|
|
5455
|
+
}, /* @__PURE__ */ React.createElement("div", { className: "lc-sl-main" }, /* @__PURE__ */ React.createElement("i", {
|
|
5222
5456
|
className: "lc-sl-dot",
|
|
5223
5457
|
style: { background: r.color }
|
|
5224
|
-
}), /* @__PURE__ */ React.createElement("span", {
|
|
5225
|
-
className: "lc-sl-
|
|
5458
|
+
}), /* @__PURE__ */ React.createElement("span", {
|
|
5459
|
+
className: "lc-sl-label",
|
|
5460
|
+
title: r.label
|
|
5461
|
+
}, r.label), /* @__PURE__ */ React.createElement("span", { className: "lc-sl-pct" }, r.pct)), r.count !== "" ? /* @__PURE__ */ React.createElement("div", {
|
|
5462
|
+
className: "lc-sl-sub",
|
|
5226
5463
|
title: r.count
|
|
5227
|
-
}, r.count) : null
|
|
5464
|
+
}, r.count) : null)));
|
|
5228
5465
|
};
|
|
5229
5466
|
}
|
|
5230
5467
|
//#endregion
|
|
@@ -5234,6 +5471,7 @@ window.__ModuleLoader__.load({
|
|
|
5234
5471
|
const SliceList = makeSliceList(kit);
|
|
5235
5472
|
return function StatsTiming(props) {
|
|
5236
5473
|
const lang = props.locale === "zh" ? "zh" : "en";
|
|
5474
|
+
const [hoverKey, setHoverKey] = React.useState(null);
|
|
5237
5475
|
const timing = props.timing;
|
|
5238
5476
|
const wall = timing !== null && Number.isFinite(timing.wallMs) && timing.wallMs > 0 ? timing.wallMs : 0;
|
|
5239
5477
|
let segments = [];
|
|
@@ -5243,6 +5481,11 @@ window.__ModuleLoader__.load({
|
|
|
5243
5481
|
const toolRing = Math.max(0, Math.min(timing.toolsMs, wall - lm));
|
|
5244
5482
|
const other = Math.max(0, wall - lm - toolRing);
|
|
5245
5483
|
const share = (ms) => wall > 0 ? ms / wall : 0;
|
|
5484
|
+
const countOf = (ms, times) => {
|
|
5485
|
+
const dur = fmtDuration(ms, lang);
|
|
5486
|
+
if (times === void 0) return dur;
|
|
5487
|
+
return ms > 0 ? `${dur} · ${times}` : times;
|
|
5488
|
+
};
|
|
5246
5489
|
segments = [
|
|
5247
5490
|
{
|
|
5248
5491
|
key: "lm",
|
|
@@ -5264,23 +5507,26 @@ window.__ModuleLoader__.load({
|
|
|
5264
5507
|
{
|
|
5265
5508
|
key: "lm",
|
|
5266
5509
|
color: "#3b82f6",
|
|
5267
|
-
label:
|
|
5510
|
+
label: t("timing.lm"),
|
|
5511
|
+
dim: timing.lmMs === 0,
|
|
5268
5512
|
pct: fmtShare(timing.lmMs, wall),
|
|
5269
|
-
count:
|
|
5513
|
+
count: countOf(timing.lmMs, t("timing.lmTimes", { n: fmt(timing.calls) }))
|
|
5270
5514
|
},
|
|
5271
5515
|
{
|
|
5272
5516
|
key: "tools",
|
|
5273
5517
|
color: "#14b8a6",
|
|
5274
|
-
label:
|
|
5518
|
+
label: t("timing.tools"),
|
|
5519
|
+
dim: timing.toolsMs === 0,
|
|
5275
5520
|
pct: fmtShare(timing.toolsMs, wall),
|
|
5276
|
-
count:
|
|
5521
|
+
count: countOf(timing.toolsMs, t("timing.toolTimes", { n: fmt(timing.toolCalls) }))
|
|
5277
5522
|
},
|
|
5278
5523
|
{
|
|
5279
5524
|
key: "other",
|
|
5280
5525
|
color: "#94a3b8",
|
|
5281
5526
|
label: t("timing.other"),
|
|
5527
|
+
dim: other === 0,
|
|
5282
5528
|
pct: fmtShare(other, wall),
|
|
5283
|
-
count:
|
|
5529
|
+
count: countOf(other)
|
|
5284
5530
|
}
|
|
5285
5531
|
];
|
|
5286
5532
|
}
|
|
@@ -5288,8 +5534,14 @@ window.__ModuleLoader__.load({
|
|
|
5288
5534
|
segments,
|
|
5289
5535
|
size: 96,
|
|
5290
5536
|
centerTop: wall > 0 ? fmtDuration(wall, lang) : "—",
|
|
5291
|
-
centerSub: t("timing.total")
|
|
5292
|
-
|
|
5537
|
+
centerSub: t("timing.total"),
|
|
5538
|
+
hoverKey,
|
|
5539
|
+
onHoverKey: setHoverKey
|
|
5540
|
+
}), /* @__PURE__ */ React.createElement(SliceList, {
|
|
5541
|
+
rows,
|
|
5542
|
+
hoverKey,
|
|
5543
|
+
onHoverKey: setHoverKey
|
|
5544
|
+
})));
|
|
5293
5545
|
};
|
|
5294
5546
|
}
|
|
5295
5547
|
//#endregion
|
|
@@ -5298,6 +5550,7 @@ window.__ModuleLoader__.load({
|
|
|
5298
5550
|
const { t, fmt, fmtShare } = kit;
|
|
5299
5551
|
const SliceList = makeSliceList(kit);
|
|
5300
5552
|
return function StatsTokens(props) {
|
|
5553
|
+
const [hoverKey, setHoverKey] = React.useState(null);
|
|
5301
5554
|
const reads = props.usage !== null ? numOf(props.usage.cacheReadTokens) : 0;
|
|
5302
5555
|
const writes = props.usage !== null ? numOf(props.usage.cacheWriteTokens) : 0;
|
|
5303
5556
|
const uncached = props.usage !== null ? numOf(props.usage.uncachedInputTokens) : 0;
|
|
@@ -5319,7 +5572,7 @@ window.__ModuleLoader__.load({
|
|
|
5319
5572
|
},
|
|
5320
5573
|
{
|
|
5321
5574
|
key: "uncached",
|
|
5322
|
-
color: "#
|
|
5575
|
+
color: "#a855f7",
|
|
5323
5576
|
label: t("tokens.uncached"),
|
|
5324
5577
|
value: uncached
|
|
5325
5578
|
},
|
|
@@ -5327,6 +5580,7 @@ window.__ModuleLoader__.load({
|
|
|
5327
5580
|
key: "output",
|
|
5328
5581
|
color: "#3b82f6",
|
|
5329
5582
|
label: t("tokens.output"),
|
|
5583
|
+
note: t("tokens.outputNote"),
|
|
5330
5584
|
value: output
|
|
5331
5585
|
}
|
|
5332
5586
|
];
|
|
@@ -5336,7 +5590,7 @@ window.__ModuleLoader__.load({
|
|
|
5336
5590
|
color: b.color,
|
|
5337
5591
|
label: b.label,
|
|
5338
5592
|
pct: fmtShare(b.value, billed),
|
|
5339
|
-
count: fmt(b.value)
|
|
5593
|
+
count: b.note === void 0 ? fmt(b.value) : `${fmt(b.value)} · ${b.note}`
|
|
5340
5594
|
}));
|
|
5341
5595
|
return /* @__PURE__ */ React.createElement("div", { className: "lc-card lc-col-stats lc-col-donut" }, /* @__PURE__ */ React.createElement("div", { className: "lc-card-title" }, /* @__PURE__ */ React.createElement("span", { className: "lc-card-title-text" }, t("tokens.title")), /* @__PURE__ */ React.createElement("span", { className: "lc-card-sub" }, t("tokens.hint"))), /* @__PURE__ */ React.createElement("div", { className: "lc-donut-row" }, /* @__PURE__ */ React.createElement(Donut, {
|
|
5342
5596
|
segments: shown.map((b) => ({
|
|
@@ -5346,8 +5600,14 @@ window.__ModuleLoader__.load({
|
|
|
5346
5600
|
})),
|
|
5347
5601
|
size: 96,
|
|
5348
5602
|
centerTop: hit === null ? "—" : `${hit}%`,
|
|
5349
|
-
centerSub: t("tokens.cacheHit")
|
|
5350
|
-
|
|
5603
|
+
centerSub: t("tokens.cacheHit"),
|
|
5604
|
+
hoverKey,
|
|
5605
|
+
onHoverKey: setHoverKey
|
|
5606
|
+
}), /* @__PURE__ */ React.createElement(SliceList, {
|
|
5607
|
+
rows,
|
|
5608
|
+
hoverKey,
|
|
5609
|
+
onHoverKey: setHoverKey
|
|
5610
|
+
})));
|
|
5351
5611
|
};
|
|
5352
5612
|
}
|
|
5353
5613
|
//#endregion
|
|
@@ -5822,6 +6082,7 @@ window.__ModuleLoader__.load({
|
|
|
5822
6082
|
}, []);
|
|
5823
6083
|
const loadImage = React.useMemo(() => imageLoaderOf(ctx, typeof sessionId === "string" ? sessionId : void 0), [ctx, sessionId]);
|
|
5824
6084
|
const fetchContent = React.useMemo(() => typeof sessionId === "string" && sessionId !== "" ? makeContentFetcher(ctx, sessionId) : void 0, [ctx, sessionId]);
|
|
6085
|
+
const fetchHeader = React.useMemo(() => typeof sessionId === "string" && sessionId !== "" ? makeHeaderFetcher(ctx, sessionId) : void 0, [ctx, sessionId]);
|
|
5825
6086
|
const rootRef = React.useRef(null);
|
|
5826
6087
|
const scrollerRef = React.useRef(null);
|
|
5827
6088
|
const restoredRef = React.useRef(null);
|
|
@@ -6041,6 +6302,7 @@ window.__ModuleLoader__.load({
|
|
|
6041
6302
|
headers,
|
|
6042
6303
|
convNodes,
|
|
6043
6304
|
fetchContent,
|
|
6305
|
+
fetchHeader,
|
|
6044
6306
|
previewSeq: hoveredSeq,
|
|
6045
6307
|
pinSeq: pinnedReq !== null ? pinnedReq.seq : null,
|
|
6046
6308
|
hoverKey: hoverCat,
|
|
@@ -6169,7 +6431,7 @@ window.__ModuleLoader__.load({
|
|
|
6169
6431
|
}
|
|
6170
6432
|
//#endregion
|
|
6171
6433
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/base.css.mjs
|
|
6172
|
-
const css$13 = ".lc-root{box-sizing:border-box;height:100%;color:var(--dsw-alias-label-primary);padding:16px 20px 32px;font-size:13px;overflow-y:auto}.lc-card{background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);border-radius:10px;margin-bottom:14px;padding:14px 16px}.lc-card-title{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:10px;font-weight:600;display:flex}.lc-card-title-text{white-space:nowrap;flex:none}.lc-gran,.lc-kinds{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;gap:2px;margin-left:auto;padding:1px;display:flex}.lc-trend-ctl{align-items:center;gap:6px;margin-left:auto;display:flex}.lc-trend-ctl .lc-gran{margin-left:0}.lc-gran-btn{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:3px 8px;font-family:inherit;font-size:11px;line-height:1}.lc-gran-btn:hover{color:var(--dsw-alias-label-primary)}.lc-gran-on,.lc-gran-on:hover{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-foreground)}.lc-tip{z-index:6;background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);width:max-content;color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv3,0 2px 8px #0000002e);pointer-events:none;opacity:0;border-radius:6px;padding:6px 10px;font-size:12px;
|
|
6434
|
+
const css$13 = ".lc-root{box-sizing:border-box;height:100%;color:var(--dsw-alias-label-primary);padding:16px 20px 32px;font-size:13px;overflow-y:auto}.lc-card{background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);border-radius:10px;margin-bottom:14px;padding:14px 16px}.lc-card-title{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:10px;font-weight:600;display:flex}.lc-card-title-text{white-space:nowrap;flex:none}.lc-gran,.lc-kinds{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;gap:2px;margin-left:auto;padding:1px;display:flex}.lc-trend-ctl{align-items:center;gap:6px;margin-left:auto;display:flex}.lc-trend-ctl .lc-gran{margin-left:0}.lc-gran-btn{color:var(--dsw-alias-label-secondary);cursor:pointer;transition:color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);background:0 0;border:0;border-radius:5px;padding:3px 8px;font-family:inherit;font-size:11px;line-height:1}.lc-gran-btn:hover{color:var(--dsw-alias-label-primary)}.lc-gran-on,.lc-gran-on:hover{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-foreground)}.lc-tip{z-index:6;background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);width:max-content;color:var(--dsw-alias-label-primary);box-shadow:var(--dsw-shadow-lv3,0 2px 8px #0000002e);pointer-events:none;opacity:0;transition:opacity var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);border-radius:6px;padding:6px 10px;font-size:12px;position:absolute}.lc-events,.lc-fa-list{flex-direction:column;gap:2px;height:320px;display:flex;overflow-y:auto}.lc-cols{flex-wrap:wrap;gap:14px;margin-bottom:14px;display:flex}.lc-col{flex:1;min-width:280px}.lc-cols>.lc-card,.lc-col>.lc-card:last-child{margin-bottom:0}.lc-col-browser{flex-direction:column;display:flex}.lc-col-browser>.lc-card{flex:1}.lc-head>.lc-card{flex:1 1 0;min-width:0;container:lc-head-card/inline-size}.lc-head>.lc-card:first-child{flex-direction:column;display:flex}.lc-head>.lc-card:first-child .lc-stats{flex:1;align-content:stretch}.lc-head>.lc-card:first-child .lc-stat{justify-content:center}.lc-empty{color:var(--dsw-alias-label-secondary);text-align:center;padding:18px 0}.lc-error{flex-direction:column;align-items:center;gap:8px;padding:40px 16px;display:flex}.lc-error-msg{font-family:var(--ds-font-family-code,ui-monospace, SFMono-Regular, Menlo, monospace);color:var(--dsw-alias-state-error-primary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);overflow-wrap:anywhere;border-radius:6px;max-width:100%;padding:4px 8px;font-size:12px}.lc-error-retry{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;transition:border-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);border-radius:6px;padding:4px 14px;font-size:12px}.lc-error-retry:hover{border-color:var(--dsw-alias-label-primary)}.lc-foot{color:var(--dsw-alias-label-secondary);margin-top:4px;font-size:12px}[data-conversation-scroll]:has(.lc-root)>[data-composer-seat]:not(:has([data-approval-key],[data-question-key],[data-plan-review-key])){display:none}";
|
|
6173
6435
|
const tagId$13 = "dsh-context/base.css";
|
|
6174
6436
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$13) + "]") === null) {
|
|
6175
6437
|
const tag = document.createElement("style");
|
|
@@ -6180,7 +6442,7 @@ window.__ModuleLoader__.load({
|
|
|
6180
6442
|
}
|
|
6181
6443
|
//#endregion
|
|
6182
6444
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/stats.css.mjs
|
|
6183
|
-
const css$12 = ".lc-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.lc-stat{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;flex-direction:column;gap:2px;min-width:0;padding:6px;display:flex}.lc-stats .lc-stat{padding:6px 3px}.lc-stats .lc-stat-q{margin:0;position:absolute;top:3px;right:4px}.lc-stat-label{color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.lc-stat-value{color:var(--dsw-alias-label-primary);white-space:nowrap;text-overflow:ellipsis;text-align:center;font-size:14px;font-weight:600;overflow:hidden}.lc-stat-sub{color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.lc-stat-tipped{position:relative}.lc-stat-q{text-align:center;width:11px;height:11px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);cursor:help;border-radius:50%;margin-left:4px;font-size:9px;font-style:normal;font-weight:700;line-height:11px;display:inline-block}.lc-stat-tipped:hover .lc-stat-q{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-label-primary)}.lc-stat-tip{max-width:280px;font-weight:400;line-height:1.5;top:calc(100% + 6px);left:0}.lc-stat-tipped:hover .lc-stat-tip{opacity:1}.lc-stat-tip-prices{border-top:1px dashed var(--dsw-alias-border-l1);margin-top:5px;padding-top:5px;display:block}.lc-stat-tip-head{font-weight:600;display:block}.lc-stat-tip-row{margin-top:2px;display:block}.lc-stat-tip-model{color:var(--dsw-alias-label-primary)}.lc-card-sub{color:var(--dsw-alias-label-secondary);margin-left:auto;font-size:12px;font-weight:400}.lc-overview-num{align-items:baseline;gap:6px;margin-bottom:8px;display:flex}.lc-overview-num>b{font-size:20px}.lc-overview-num span{color:var(--dsw-alias-label-secondary)}.lc-overview-pct{margin-left:auto;font-size:11px}.lc-overview-pct b{color:var(--dsw-alias-label-primary);margin-right:4px;font-size:20px}.lc-stat-head{color:var(--dsw-alias-label-secondary);margin:12px 0 8px;font-size:11px;font-weight:600}.lc-donut-row{justify-content:flex-start;align-items:center;gap:12px;min-width:0;display:flex}.lc-col-donut{flex-direction:column;display:flex}.lc-col-donut .lc-donut-row{flex:1}.lc-donut-row .lc-sl{flex:auto}.lc-donut{flex:none;position:relative}.lc-donut svg{display:block}.lc-donut-track{stroke:#8080802e}.lc-donut-center{pointer-events:none;text-align:center;box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:0 7px;display:flex;position:absolute;inset:0}.lc-donut-center b{white-space:nowrap;text-overflow:ellipsis;max-width:100%;line-height:1.15;overflow:hidden}.lc-donut-center span{color:var(--dsw-alias-label-secondary);white-space:nowrap}.lc-sl{flex-direction:column;gap:
|
|
6445
|
+
const css$12 = ".lc-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.lc-stat{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;flex-direction:column;gap:2px;min-width:0;padding:6px;display:flex}.lc-stats .lc-stat{padding:6px 3px}.lc-stats .lc-stat-q{margin:0;position:absolute;top:3px;right:4px}.lc-stat-label{color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.lc-stat-value{color:var(--dsw-alias-label-primary);white-space:nowrap;text-overflow:ellipsis;text-align:center;font-size:14px;font-weight:600;overflow:hidden}.lc-stat-sub{color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.lc-stat-tipped{position:relative}.lc-stat-q{text-align:center;width:11px;height:11px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);cursor:help;transition:color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out), border-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);border-radius:50%;margin-left:4px;font-size:9px;font-style:normal;font-weight:700;line-height:11px;display:inline-block}.lc-stat-tipped:hover .lc-stat-q{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-label-primary)}.lc-stat-tip{max-width:280px;font-weight:400;line-height:1.5;top:calc(100% + 6px);left:0}.lc-stat-tipped:hover .lc-stat-tip{opacity:1}.lc-stat-tip-prices{border-top:1px dashed var(--dsw-alias-border-l1);margin-top:5px;padding-top:5px;display:block}.lc-stat-tip-head{font-weight:600;display:block}.lc-stat-tip-row{margin-top:2px;display:block}.lc-stat-tip-model{color:var(--dsw-alias-label-primary)}.lc-card-sub{color:var(--dsw-alias-label-secondary);margin-left:auto;font-size:12px;font-weight:400}.lc-overview-num{align-items:baseline;gap:6px;margin-bottom:8px;display:flex}.lc-overview-num>b{font-size:20px}.lc-overview-num span{color:var(--dsw-alias-label-secondary)}.lc-overview-pct{margin-left:auto;font-size:11px}.lc-overview-pct b{color:var(--dsw-alias-label-primary);margin-right:4px;font-size:20px}.lc-stat-head{color:var(--dsw-alias-label-secondary);margin:12px 0 8px;font-size:11px;font-weight:600}.lc-donut-row{justify-content:flex-start;align-items:center;gap:12px;min-width:0;display:flex}.lc-col-donut{flex-direction:column;display:flex}.lc-col-donut .lc-donut-row{flex:1}.lc-donut-row .lc-sl{flex:auto}.lc-donut{flex:none;position:relative}.lc-donut svg{display:block}.lc-donut-track{stroke:#8080802e}.lc-donut-seg{transition:opacity var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out)}.lc-donut-dim .lc-donut-seg{opacity:.35}.lc-donut-dim .lc-donut-seg-on{opacity:1}.lc-donut-center{pointer-events:none;text-align:center;box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:0 7px;display:flex;position:absolute;inset:0}.lc-donut-center b{white-space:nowrap;text-overflow:ellipsis;max-width:100%;line-height:1.15;overflow:hidden}.lc-donut-center span{color:var(--dsw-alias-label-secondary);white-space:nowrap}.lc-sl{flex-direction:column;gap:6px;min-width:0;display:flex;overflow:hidden}.lc-sl-row{min-width:0;transition:background-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);border-radius:6px;flex-direction:column;gap:1px;margin:0 -6px;padding:1px 6px;font-size:12px;display:flex}.lc-sl-row-on{background:var(--dsw-alias-interactive-bg-hover)}.lc-sl-row-dim{opacity:.55}.lc-sl-main{align-items:center;gap:6px;min-width:0;display:flex}.lc-sl-dot{border-radius:2px;flex:none;width:8px;height:8px}.lc-sl-label{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-weight:600;line-height:1.25;overflow:hidden}.lc-sl-pct{text-align:right;font-variant-numeric:tabular-nums;flex:none;min-width:34px;font-weight:700}.lc-sl-sub{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;margin-left:14px;font-size:11px;line-height:1.3;overflow:hidden}.lc-pi-grid{grid-template-columns:1fr;gap:8px;display:grid}.lc-pi-row-btn{appearance:none;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:0}.lc-pi-row{min-width:0;color:inherit;flex-direction:row;justify-content:space-between;align-items:baseline;gap:12px;text-decoration:none;display:flex}.lc-pi-row:hover .lc-pi-value{text-decoration:underline}.lc-pi-hint{text-decoration:none}.lc-pi-hint:hover{text-decoration:underline}.lc-pi-update{color:var(--dsw-alias-state-warn-primary);white-space:nowrap;margin-left:6px;font-size:11px}.lc-pi-label{color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;flex:none;font-size:11px;font-weight:600;overflow:hidden}.lc-pi-value{min-width:0;color:var(--dsw-alias-label-primary);white-space:nowrap;text-overflow:ellipsis;text-align:right;font-size:13px;font-weight:600;overflow:hidden}.lc-pi-row-btn .lc-pi-value{font-weight:400}@container lc-head-card (width<=320px){.lc-donut-row{gap:8px}.lc-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}@container lc-head-card (width<=240px){.lc-donut-row{flex-wrap:wrap}.lc-donut{margin:0 auto}.lc-donut-row .lc-sl{flex-basis:100%}.lc-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}";
|
|
6184
6446
|
const tagId$12 = "dsh-context/stats.css";
|
|
6185
6447
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$12) + "]") === null) {
|
|
6186
6448
|
const tag = document.createElement("style");
|
|
@@ -6191,7 +6453,7 @@ window.__ModuleLoader__.load({
|
|
|
6191
6453
|
}
|
|
6192
6454
|
//#endregion
|
|
6193
6455
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/jump.css.mjs
|
|
6194
|
-
const css$11 = ".lc-jump{width:calc(28px + var(--dsh-content-font-delta,0px));height:calc(28px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:28px;justify-content:center;align-items:center;padding:6px;display:inline-flex}.lc-jump svg{width:calc(16px + var(--dsh-content-font-delta,0px));height:calc(16px + var(--dsh-content-font-delta,0px))}.lc-jump:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}";
|
|
6456
|
+
const css$11 = ".lc-jump{width:calc(28px + var(--dsh-content-font-delta,0px));height:calc(28px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-tertiary);cursor:pointer;transition:background-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out), color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);background:0 0;border:0;border-radius:28px;justify-content:center;align-items:center;padding:6px;display:inline-flex}.lc-jump svg{width:calc(16px + var(--dsh-content-font-delta,0px));height:calc(16px + var(--dsh-content-font-delta,0px))}.lc-jump:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}";
|
|
6195
6457
|
const tagId$11 = "dsh-context/jump.css";
|
|
6196
6458
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$11) + "]") === null) {
|
|
6197
6459
|
const tag = document.createElement("style");
|
|
@@ -6202,7 +6464,7 @@ window.__ModuleLoader__.load({
|
|
|
6202
6464
|
}
|
|
6203
6465
|
//#endregion
|
|
6204
6466
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/settings.css.mjs
|
|
6205
|
-
const css$10 = ".lc-settings-card{background:var(--dsw-alias-bg-layer-3);border:1px solid var(--dsw-alias-border-l2);
|
|
6467
|
+
const css$10 = ".lc-settings-card{background:var(--dsw-alias-bg-layer-3);border:1px solid var(--dsw-alias-border-l2);transition:border-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out), background-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);border-radius:12px}.lc-settings-card:hover{border-color:var(--dsw-alias-label-dimmed)}.lc-settings-open,.lc-settings-open:hover{background:var(--dsw-alias-bg-layer-2);border-color:var(--dsw-alias-label-dimmed)}.lc-settings-head{appearance:none;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;padding:14px 16px;display:flex}.lc-settings-headtext{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.lc-settings-name{color:var(--dsw-alias-label-primary);font-size:15px;font-weight:600;line-height:1.4}.lc-settings-desc{color:var(--dsw-alias-label-tertiary);font-size:13px;line-height:1.5}.lc-settings-chevron{color:var(--dsw-alias-label-tertiary);transition:transform var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);flex:none}.lc-settings-open .lc-settings-chevron{transform:rotate(180deg)}.lc-settings-body{border-top:1px solid var(--dsw-alias-border-l2);margin:0 16px;padding:4px 0 12px}.lc-settings-row{align-items:center;gap:8px;padding:8px 0;display:flex}.lc-settings-label{min-width:0;color:var(--dsw-alias-label-primary);flex:1;font-size:14px}.lc-settings-select{background:var(--dsw-alias-bg-module-platform);height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;transition:background-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);border:none;border-radius:18px;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.lc-settings-select:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.lc-settings-select:disabled{opacity:.5;cursor:default}.lc-settings-note{color:var(--dsw-alias-label-tertiary);margin:12px 0 4px;font-size:12px;line-height:1.5}";
|
|
6206
6468
|
const tagId$10 = "dsh-context/settings.css";
|
|
6207
6469
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$10) + "]") === null) {
|
|
6208
6470
|
const tag = document.createElement("style");
|
|
@@ -6213,7 +6475,7 @@ window.__ModuleLoader__.load({
|
|
|
6213
6475
|
}
|
|
6214
6476
|
//#endregion
|
|
6215
6477
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/stackedBar.css.mjs
|
|
6216
|
-
const css$9 = ".lc-stacked-wrap{width:100%;position:relative}.lc-stacked{background:#8080802e;border-radius:5px;width:100%;display:flex;position:relative;overflow:hidden}.lc-occupied-box{border:2px solid var(--dsw-alias-label-tertiary);box-sizing:border-box;pointer-events:none;opacity:0;box-shadow:0 0 0 1px var(--dsw-alias-bg-layer-2);border-radius:5px;
|
|
6478
|
+
const css$9 = ".lc-stacked-wrap{width:100%;position:relative}.lc-stacked{background:#8080802e;border-radius:5px;width:100%;display:flex;position:relative;overflow:hidden}.lc-occupied-box{border:2px solid var(--dsw-alias-label-tertiary);box-sizing:border-box;pointer-events:none;opacity:0;box-shadow:0 0 0 1px var(--dsw-alias-bg-layer-2);transition:opacity var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);border-radius:5px;position:absolute;top:0;bottom:0;left:0}.lc-occupied-box-on{opacity:1}.lc-bar-tip{z-index:5;white-space:nowrap;padding:3px 8px;bottom:calc(100% + 6px);transform:translate(-50%)}.lc-bar-tip-on{opacity:1}.lc-stacked>div{height:100%}.lc-stacked-seg{transition:filter var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out), opacity var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out)}.lc-stacked-free{box-sizing:border-box;transition:box-shadow var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out), opacity var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out)}.lc-stacked-seg-on{filter:brightness(1.18)}.lc-reserve{z-index:1;pointer-events:auto;cursor:help;background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--dsw-alias-state-warn-primary) 24%, transparent) 0 5px, transparent 5px 10px);position:absolute;top:0;bottom:0}.lc-stacked-free-on{border:2px dashed var(--dsw-alias-label-secondary);border-radius:3px}.lc-stacked-dim .lc-stacked-seg{opacity:.35}.lc-stacked-dim .lc-stacked-seg-on{opacity:1}.lc-stacked-dim .lc-stacked-free{opacity:.35}.lc-stacked-dim .lc-stacked-free-on{opacity:1}.lc-legend{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px 14px;margin-top:10px;display:grid}.lc-chip{min-width:0;color:var(--dsw-alias-label-primary);cursor:pointer;transition:background-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);border-radius:6px;align-items:center;gap:5px;padding:1px 6px;display:flex}.lc-chip-label{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:600;overflow:hidden}.lc-chip-nums{white-space:nowrap;flex:none;align-items:baseline;gap:6px;margin-left:auto;display:inline-flex}.lc-chip i,.lc-detail-row i{border-radius:2px;width:8px;height:8px;display:inline-block}.lc-chip i{transition:box-shadow var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out)}.lc-chip em{color:var(--dsw-alias-label-secondary);font-style:normal}.lc-chip-on{background:var(--dsw-alias-interactive-bg-hover);font-weight:600}.lc-chip-on i{box-shadow:0 0 0 1px var(--dsw-alias-brand-primary)}";
|
|
6217
6479
|
const tagId$9 = "dsh-context/stackedBar.css";
|
|
6218
6480
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$9) + "]") === null) {
|
|
6219
6481
|
const tag = document.createElement("style");
|
|
@@ -6224,7 +6486,7 @@ window.__ModuleLoader__.load({
|
|
|
6224
6486
|
}
|
|
6225
6487
|
//#endregion
|
|
6226
6488
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/trendChart.css.mjs
|
|
6227
|
-
const css$8 = ".lc-chartrow{align-items:stretch;gap:6px;display:flex}.lc-axis{box-sizing:border-box;width:40px;height:150px;color:var(--dsw-alias-label-secondary);padding-top:18px;font-size:11px;position:relative}.lc-axis span{line-height:1;position:absolute;right:0}.lc-axis-top{top:13px}.lc-axis-q3{top:41px}.lc-axis-mid{top:69px}.lc-axis-q1{top:97px}.lc-axis-bot{top:125px}.lc-chart-wrap{flex:1;min-width:0;position:relative}.lc-chart-scroll{scrollbar-gutter:stable;padding-bottom:var(--dsh-scrollbar-width,8px);overflow:auto hidden}.lc-chart{box-sizing:border-box;align-items:flex-end;gap:2px;width:max-content;min-width:100%;height:130px;padding-top:18px;display:flex;position:relative}.lc-grid{border-top:1px dashed var(--dsw-alias-border-l2);pointer-events:none;position:absolute;left:0;right:0}.lc-grid-top{top:18px}.lc-grid-q3{top:46px}.lc-grid-mid{top:74px}.lc-grid-q1{top:102px}.lc-grid-zero{border-top-style:solid;border-top-color:#80808080;top:130px}.lc-bar{cursor:pointer;
|
|
6489
|
+
const css$8 = ".lc-chartrow{align-items:stretch;gap:6px;display:flex}.lc-axis{box-sizing:border-box;width:40px;height:150px;color:var(--dsw-alias-label-secondary);padding-top:18px;font-size:11px;position:relative}.lc-axis span{line-height:1;position:absolute;right:0}.lc-axis-top{top:13px}.lc-axis-q3{top:41px}.lc-axis-mid{top:69px}.lc-axis-q1{top:97px}.lc-axis-bot{top:125px}.lc-chart-wrap{flex:1;min-width:0;position:relative}.lc-chart-scroll{scrollbar-gutter:stable;padding-bottom:var(--dsh-scrollbar-width,8px);overflow:auto hidden}.lc-chart{box-sizing:border-box;align-items:flex-end;gap:2px;width:max-content;min-width:100%;height:130px;padding-top:18px;display:flex;position:relative}.lc-grid{border-top:1px dashed var(--dsw-alias-border-l2);pointer-events:none;position:absolute;left:0;right:0}.lc-grid-top{top:18px}.lc-grid-q3{top:46px}.lc-grid-mid{top:74px}.lc-grid-q1{top:102px}.lc-grid-zero{border-top-style:solid;border-top-color:#80808080;top:130px}.lc-bar{cursor:pointer;outline-offset:1px;width:14px;height:100%;transition:opacity var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out), background-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out), outline-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);border-radius:2px;outline:1px dashed #0000;flex:none;align-items:flex-end;display:flex;position:relative}.lc-chart-dim .lc-bar{opacity:.35}.lc-chart-dim .lc-bar-in-turn{opacity:1}.lc-chart-dim .lc-turn{opacity:.35}.lc-chart-dim .lc-turn-on{opacity:1}.lc-chart-tip{z-index:5;box-sizing:border-box;overflow-wrap:break-word;background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);max-width:100%;color:var(--dsw-alias-label-primary);pointer-events:none;border-radius:6px;flex-direction:column;gap:2px;padding:3px 8px;font-size:12px;display:flex;position:absolute;bottom:calc(100% + 4px);left:0;box-shadow:0 2px 8px #0000002e}.lc-bar:hover{background:var(--dsw-alias-bg-layer-2)}.lc-bar-hovered{outline-color:var(--dsw-alias-brand-primary)}.lc-bar-selected{outline:2px solid var(--dsw-alias-label-primary);outline-offset:1px}.lc-bar-in-turn{background:#80808024}.lc-bar-stack{flex-direction:column-reverse;width:100%;display:flex}.lc-bar-stack>div{width:100%}.lc-bar-up,.lc-bar-down{width:100%;display:flex;position:absolute;left:0}.lc-bar-up{flex-direction:column-reverse}.lc-bar-down{flex-direction:column}.lc-bar-up>div,.lc-bar-down>div{width:100%}.lc-cat-seg{transition:filter var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out), opacity var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out)}.lc-chart[data-catdim] .lc-cat-seg{opacity:.35}.lc-chart[data-catdim=system] .lc-cat-seg[data-cat=system],.lc-chart[data-catdim=tools] .lc-cat-seg[data-cat=tools],.lc-chart[data-catdim=user] .lc-cat-seg[data-cat=user],.lc-chart[data-catdim=inject] .lc-cat-seg[data-cat=inject],.lc-chart[data-catdim=assistant] .lc-cat-seg[data-cat=assistant],.lc-chart[data-catdim=tool] .lc-cat-seg[data-cat=tool]{opacity:1;filter:brightness(1.18)}.lc-bar-marker{color:var(--dsw-alias-state-warn-primary);font-size:11px;position:absolute;top:-16px;left:50%;transform:translate(-50%)}.lc-turns{gap:2px;margin-top:4px;display:flex;overflow:hidden}.lc-turn{box-sizing:border-box;text-align:center;color:var(--dsw-alias-label-secondary);white-space:nowrap;cursor:pointer;height:14px;transition:filter var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out), opacity var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);border-radius:3px;flex:none;font-size:10px;font-weight:600;line-height:14px}.lc-turn-on{filter:brightness(1.35);color:var(--dsw-alias-label-primary)}.lc-turn-label{display:inline-block}";
|
|
6228
6490
|
const tagId$8 = "dsh-context/trendChart.css";
|
|
6229
6491
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$8) + "]") === null) {
|
|
6230
6492
|
const tag = document.createElement("style");
|
|
@@ -6235,7 +6497,7 @@ window.__ModuleLoader__.load({
|
|
|
6235
6497
|
}
|
|
6236
6498
|
//#endregion
|
|
6237
6499
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/requestDetail.css.mjs
|
|
6238
|
-
const css$7 = ".lc-detail{border-top:1px solid var(--dsw-alias-border-l1);margin-top:12px;padding-top:12px}.lc-detail-head{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;align-items:center;gap:6px 8px;margin-bottom:10px;display:flex}.lc-detail-head b{color:var(--dsw-alias-label-primary);font-size:13px}.lc-detail-time{font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-size:12px}.lc-detail-marker{color:var(--dsw-alias-state-warn-primary);background:color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);border-radius:6px;padding:1px 7px;font-size:11px}.lc-detail-tag{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-secondary);border-radius:4px;padding:0 6px;font-size:11px}.lc-detail-metric{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--dsw-alias-label-primary);background:color-mix(in srgb, var(--dsw-alias-label-secondary) 14%, transparent);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}.lc-detail-metric-up{color:var(--dsw-alias-state-success-primary);background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 15%, transparent)}.lc-detail-metric-down{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 15%, transparent)}.lc-detail-rows{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:4px 24px;margin-top:10px;display:grid}.lc-brief{flex-direction:column;gap:2px;min-height:76px;margin:-4px 0 10px;display:flex}.lc-brief-row{min-width:0;color:var(--dsw-alias-label-primary);text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;margin-left:-6px;margin-right:-6px;padding:3px 6px;font-family:inherit;font-size:12px;line-height:1.5;
|
|
6500
|
+
const css$7 = ".lc-detail{border-top:1px solid var(--dsw-alias-border-l1);margin-top:12px;padding-top:12px}.lc-detail-head{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;align-items:center;gap:6px 8px;margin-bottom:10px;display:flex}.lc-detail-head b{color:var(--dsw-alias-label-primary);font-size:13px}.lc-detail-time{font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-size:12px}.lc-detail-marker{color:var(--dsw-alias-state-warn-primary);background:color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);border-radius:6px;padding:1px 7px;font-size:11px}.lc-detail-tag{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-secondary);border-radius:4px;padding:0 6px;font-size:11px}.lc-detail-metric{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--dsw-alias-label-primary);background:color-mix(in srgb, var(--dsw-alias-label-secondary) 14%, transparent);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}.lc-detail-metric-up{color:var(--dsw-alias-state-success-primary);background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 15%, transparent)}.lc-detail-metric-down{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 15%, transparent)}.lc-detail-rows{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:4px 24px;margin-top:10px;display:grid}.lc-brief{flex-direction:column;gap:2px;min-height:76px;margin:-4px 0 10px;display:flex}.lc-brief-row{min-width:0;color:var(--dsw-alias-label-primary);text-align:left;transition:background-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;margin-left:-6px;margin-right:-6px;padding:3px 6px;font-family:inherit;font-size:12px;line-height:1.5;display:flex}.lc-brief-row-link:hover{background:var(--dsw-alias-interactive-bg-hover)}button.lc-brief-row-link{cursor:pointer}.lc-brief-tag{box-sizing:border-box;text-align:center;background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);min-width:56px;color:var(--dsw-alias-label-secondary);border-radius:4px;flex:none;padding:0 6px;font-size:11px;position:relative}.lc-brief-tip{white-space:normal;text-align:left;max-width:240px;font-weight:400;line-height:1.5;bottom:calc(100% + 6px);left:0}.lc-brief-tag:hover .lc-brief-tip{opacity:1}.lc-brief-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.lc-brief-empty{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);flex:1;overflow:hidden}.lc-brief-fact{box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);max-width:160px;color:var(--dsw-alias-label-secondary);border-radius:4px;flex:none;padding:0 6px;font-size:11px;overflow:hidden}.lc-brief-chip{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);min-width:0;max-width:260px;color:var(--dsw-alias-label-primary);transition:background-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);border-radius:5px;align-items:center;gap:5px;padding:0 7px;font-size:12px;display:inline-flex;overflow:hidden}.lc-brief-chip-grow{flex:1;max-width:none}.lc-brief-chip-tag{text-overflow:ellipsis;white-space:nowrap;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);max-width:120px;color:var(--dsw-alias-label-secondary);border-radius:4px;flex:none;padding:0 6px;font-size:11px;overflow:hidden}.lc-brief-chip-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.lc-brief-chip-link{cursor:pointer}.lc-brief-chip-link:hover{background:var(--dsw-alias-interactive-bg-hover)}.lc-brief-more{color:var(--dsw-alias-label-secondary);flex:none;font-size:11px}.lc-detail-row{transition:background-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);border-radius:4px;align-items:center;gap:8px;margin:-1px -4px;padding:1px 4px;display:flex}.lc-detail-row i{transition:box-shadow var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out)}.lc-detail-row-on{background:var(--dsw-alias-interactive-bg-hover)}.lc-detail-row-on i{box-shadow:0 0 0 1px var(--dsw-alias-brand-primary)}.lc-detail-row-on .lc-detail-label{font-weight:600}.lc-detail-label{white-space:nowrap;min-width:70px;color:var(--dsw-alias-label-secondary)}.lc-bar-track{background:#8080802e;border-radius:3px;flex:1;height:5px;display:block;position:relative;overflow:hidden}.lc-bar-fill{border-radius:3px;height:100%;display:block}.lc-bar-zero{border-left:1px solid #80808073;position:absolute;top:0;bottom:0;left:50%}.lc-bar-fill-up,.lc-bar-fill-down{height:100%;display:block;position:absolute;top:0}.lc-bar-fill-up{border-radius:0 3px 3px 0;left:50%}.lc-bar-fill-down{border-radius:3px 0 0 3px;right:50%}.lc-detail-num{text-align:right;font-variant-numeric:tabular-nums;width:52px}.lc-detail-num-up{color:var(--dsw-alias-state-success-primary)}.lc-detail-num-down{color:var(--dsw-alias-state-error-primary)}.lc-detail-pct{text-align:right;width:34px;color:var(--dsw-alias-label-secondary)}";
|
|
6239
6501
|
const tagId$7 = "dsh-context/requestDetail.css";
|
|
6240
6502
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$7) + "]") === null) {
|
|
6241
6503
|
const tag = document.createElement("style");
|
|
@@ -6257,7 +6519,7 @@ window.__ModuleLoader__.load({
|
|
|
6257
6519
|
}
|
|
6258
6520
|
//#endregion
|
|
6259
6521
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/fileCard.css.mjs
|
|
6260
|
-
const css$5 = ".lc-fa-ctl,.lc-br-toolctl{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.lc-fa-ctl .lc-gran{margin-left:0}.lc-fa-n{opacity:.75;margin-left:4px;font-weight:700}.lc-fa-search,.lc-br-tool-search{min-width:80px;font:inherit;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;outline:none;flex:1;padding:3px 8px;font-size:12px}.lc-fa-search:focus,.lc-br-tool-search:focus{border-color:var(--dsw-alias-label-dimmed)}.lc-fa-meta{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:6px;font-size:12px;display:flex}.lc-fa-meta .lc-fa-sort{flex:none}.lc-fa-meta-delta{position:relative}.lc-fa-meta-tip{white-space:normal;max-width:260px;line-height:1.5;top:calc(100% + 6px);left:0}.lc-fa-meta-delta:hover .lc-fa-meta-tip{opacity:1}.lc-fa-item{border:1px solid #0000;border-radius:8px
|
|
6522
|
+
const css$5 = ".lc-fa-ctl,.lc-br-toolctl{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.lc-fa-ctl .lc-gran{margin-left:0}.lc-fa-n{opacity:.75;margin-left:4px;font-weight:700}.lc-fa-search,.lc-br-tool-search{min-width:80px;font:inherit;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;outline:none;flex:1;padding:3px 8px;font-size:12px}.lc-fa-search:focus,.lc-br-tool-search:focus{border-color:var(--dsw-alias-label-dimmed)}.lc-fa-meta{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:6px;font-size:12px;display:flex}.lc-fa-meta .lc-fa-sort{flex:none}.lc-fa-meta-delta{position:relative}.lc-fa-meta-tip{white-space:normal;max-width:260px;line-height:1.5;top:calc(100% + 6px);left:0}.lc-fa-meta-delta:hover .lc-fa-meta-tip{opacity:1}.lc-fa-item{transition:background-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out), border-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);border:1px solid #0000;border-radius:8px}.lc-fa-item-on{background:var(--dsw-alias-bg-layer-2);border-color:var(--dsw-alias-border-l2)}.lc-fa-row{width:100%;color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;text-align:left;transition:background-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);background:0 0;border:0;border-radius:7px;align-items:center;gap:7px;padding:6px 8px;font-size:12px;display:flex}.lc-fa-row:hover{background:var(--dsw-alias-interactive-bg-hover)}.lc-fa-form{opacity:.85;flex:none;justify-content:center;align-items:center;width:20px;height:14px;font-size:11px;display:flex}.lc-fa-lang{border-radius:4px;justify-content:center;align-items:center;min-width:16px;height:13px;padding:0 2px;font-size:8px;font-weight:700;line-height:1;display:inline-flex}.lc-fa-row .lc-br-chev{margin-right:-2px}.lc-fa-path{word-break:break-all;flex:1;min-width:0}.lc-fa-file{cursor:pointer}.lc-fa-file:hover{text-decoration:underline}.lc-fa-path em{color:var(--dsw-alias-label-secondary);font-style:normal}.lc-fa-badge{font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:4px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-flex}.lc-fa-badge i{background:currentColor;border-radius:50%;width:5px;height:5px;display:inline-block}.lc-fa-b-read{color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 14%, transparent)}.lc-fa-b-write{color:var(--dsw-alias-state-success-primary);background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 14%, transparent)}.lc-fa-b-search{color:var(--dsw-alias-state-warn-primary);background:color-mix(in srgb, var(--dsw-alias-state-warn-primary) 14%, transparent)}.lc-fa-chip-read,.lc-fa-chip-read:hover{color:var(--dsw-alias-brand-primary)}.lc-fa-chip-write,.lc-fa-chip-write:hover{color:var(--dsw-alias-state-success-primary)}.lc-fa-chip-search,.lc-fa-chip-search:hover{color:var(--dsw-alias-state-warn-primary)}.lc-fa-chip-read.lc-gran-on,.lc-fa-chip-read.lc-gran-on:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 14%, transparent);color:var(--dsw-alias-brand-primary)}.lc-fa-chip-write.lc-gran-on,.lc-fa-chip-write.lc-gran-on:hover{background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 14%, transparent);color:var(--dsw-alias-state-success-primary)}.lc-fa-chip-search.lc-gran-on,.lc-fa-chip-search.lc-gran-on:hover{background:color-mix(in srgb, var(--dsw-alias-state-warn-primary) 14%, transparent);color:var(--dsw-alias-state-warn-primary)}.lc-fa-delta{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;gap:5px;font-size:11px;font-weight:600;display:inline-flex}.lc-fa-up{color:var(--dsw-alias-state-success-primary)}.lc-fa-down{color:var(--dsw-alias-state-error-primary)}.lc-fa-time{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;flex:none;font-size:11px}.lc-fa-ops{border-left:2px solid var(--dsw-alias-border-l1);flex-direction:column;gap:1px;margin:0 8px 8px 15px;padding:2px 0 2px 10px;display:flex}.lc-fa-op{min-width:0;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;transition:background-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);background:0 0;border:0;border-radius:5px;align-items:center;gap:8px;padding:3px 6px;font-size:11px;display:flex}.lc-fa-op-link{cursor:pointer}.lc-fa-op-link:hover{background:var(--dsw-alias-interactive-bg-hover)}.lc-fa-op-time{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;flex:none;margin-left:auto}.lc-fa-op-tool{text-overflow:ellipsis;white-space:nowrap;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);max-width:220px;color:var(--dsw-alias-label-secondary);border-radius:999px;flex:none;padding:0 6px;font-size:11px;overflow:hidden}.lc-fa-op-detail{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-secondary);flex:1;overflow:hidden}.lc-fa-read{color:var(--dsw-alias-brand-primary);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-size:11px;font-weight:600}";
|
|
6261
6523
|
const tagId$5 = "dsh-context/fileCard.css";
|
|
6262
6524
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
|
|
6263
6525
|
const tag = document.createElement("style");
|
|
@@ -6268,7 +6530,7 @@ window.__ModuleLoader__.load({
|
|
|
6268
6530
|
}
|
|
6269
6531
|
//#endregion
|
|
6270
6532
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/modal.css.mjs
|
|
6271
|
-
const css$4 = ".lc-modal-backdrop{z-index:200;background:var(--dsw-alias-bg-mask-1,#00000073);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lc-modal-card{box-sizing:border-box;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);width:min(720px,100vw - 48px);max-height:min(82vh,760px);box-shadow:var(--dsw-shadow-lv3,0 12px 32px #0006);color:var(--dsw-alias-label-primary);border-radius:12px;padding:16px 18px 18px;font-size:13px;overflow-y:auto}.lc-modal-head{align-items:baseline;gap:8px;margin-bottom:12px;display:flex}.lc-modal-title{font-size:14px;font-weight:600}.lc-modal-close{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;margin-left:auto;padding:2px 6px;font-family:inherit;font-size:18px;line-height:1}.lc-modal-close:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2)}";
|
|
6533
|
+
const css$4 = ".lc-modal-backdrop{z-index:200;background:var(--dsw-alias-bg-mask-1,#00000073);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lc-modal-card{box-sizing:border-box;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);width:min(720px,100vw - 48px);max-height:min(82vh,760px);box-shadow:var(--dsw-shadow-lv3,0 12px 32px #0006);color:var(--dsw-alias-label-primary);border-radius:12px;padding:16px 18px 18px;font-size:13px;overflow-y:auto}.lc-modal-head{align-items:baseline;gap:8px;margin-bottom:12px;display:flex}.lc-modal-title{font-size:14px;font-weight:600}.lc-modal-close{color:var(--dsw-alias-label-secondary);cursor:pointer;transition:color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out), background-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);background:0 0;border:0;border-radius:6px;margin-left:auto;padding:2px 6px;font-family:inherit;font-size:18px;line-height:1}.lc-modal-close:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2)}";
|
|
6272
6534
|
const tagId$4 = "dsh-context/modal.css";
|
|
6273
6535
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
|
|
6274
6536
|
const tag = document.createElement("style");
|
|
@@ -6279,7 +6541,7 @@ window.__ModuleLoader__.load({
|
|
|
6279
6541
|
}
|
|
6280
6542
|
//#endregion
|
|
6281
6543
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/browser.css.mjs
|
|
6282
|
-
const css$3 = ".lc-br-hint{color:var(--dsw-alias-label-secondary);white-space:nowrap;margin-left:auto;font-size:11px;font-weight:400}.lc-br-pick{font:inherit;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;max-width:240px;padding:3px 6px;font-size:12px}.lc-br-meta{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;gap:6px 16px;margin-bottom:8px;display:flex}.lc-br-meta b{color:var(--dsw-alias-label-primary)}.lc-br-meta .lc-actual{color:var(--dsw-alias-state-success-primary)}.lc-br-note{color:var(--dsw-alias-label-secondary);margin-top:8px;font-size:12px}.lc-br-retry{color:var(--dsw-alias-brand-primary);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}.lc-br-retry:hover{filter:brightness(1.15)}.lc-br-cats{flex-direction:column;gap:4px;margin-top:10px;display:flex}.lc-br-cat{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:8px;overflow:hidden}.lc-br-cat-empty{opacity:.55}.lc-br-cat-row{width:100%;color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:7px 10px;
|
|
6544
|
+
const css$3 = ".lc-br-hint{color:var(--dsw-alias-label-secondary);white-space:nowrap;margin-left:auto;font-size:11px;font-weight:400}.lc-br-pick{font:inherit;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;max-width:240px;padding:3px 6px;font-size:12px}.lc-br-meta{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;gap:6px 16px;margin-bottom:8px;display:flex}.lc-br-meta b{color:var(--dsw-alias-label-primary)}.lc-br-meta .lc-actual{color:var(--dsw-alias-state-success-primary)}.lc-br-note{color:var(--dsw-alias-label-secondary);margin-top:8px;font-size:12px}.lc-br-retry{color:var(--dsw-alias-brand-primary);font:inherit;cursor:pointer;text-underline-offset:2px;transition:filter var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}.lc-br-retry:hover{filter:brightness(1.15)}.lc-br-cats{flex-direction:column;gap:4px;margin-top:10px;display:flex}.lc-br-cat{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:8px;overflow:hidden}.lc-br-cat-empty{opacity:.55}.lc-br-cat-row{width:100%;color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;text-align:left;transition:background-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);background:0 0;border:0;align-items:center;gap:8px;padding:7px 10px;display:flex}.lc-br-cat-row:hover,.lc-br-cat-on{background:var(--dsw-alias-interactive-bg-hover)}.lc-br-cat-on i{box-shadow:0 0 0 1px var(--dsw-alias-brand-primary)}.lc-br-cat-row i{width:8px;height:8px;transition:box-shadow var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);border-radius:2px;flex:none;display:inline-block}.lc-br-cat-label{font-weight:600}.lc-br-cat-count{color:var(--dsw-alias-label-secondary);white-space:nowrap;font-size:12px}.lc-br-count-grp{flex:1;align-items:center;gap:4px;min-width:0;display:inline-flex}.lc-br-chev{width:12px;height:14px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:center;align-items:center;display:flex}.lc-br-chev:before{content:\"\";width:5px;height:5px;transition:transform var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);border-bottom:1px solid;border-right:1px solid;transform:rotate(-45deg)}.lc-br-chev-on:before{transform:rotate(45deg)}.lc-br-tokens{color:var(--dsw-alias-label-secondary);flex:none;font-size:12px}.lc-br-delta,.lc-br-tdelta{white-space:nowrap;border-radius:4px;flex:none;padding:0 5px;font-size:11px;font-weight:600}.lc-br-delta-up,.lc-br-tdelta-up{color:var(--dsw-alias-state-success-primary);background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 15%, transparent)}.lc-br-delta-down,.lc-br-tdelta-down{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 15%, transparent)}.lc-br-tokens-grp{flex:none;align-items:center;gap:4px;min-width:0;display:inline-flex}.lc-br-pct{text-align:right;width:36px;color:var(--dsw-alias-label-secondary);flex:none;font-size:12px}.lc-br-body{border-top:1px solid var(--dsw-alias-border-l1);flex-direction:column;gap:2px;padding:4px 6px;display:flex}.lc-br-elem{border-radius:6px}.lc-br-elem-on{background:var(--dsw-alias-interactive-bg-active)}.lc-br-elem-row{width:100%;color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;text-align:left;transition:background-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:5px 6px;font-size:12px;display:flex}.lc-br-elem-row:hover{background:var(--dsw-alias-interactive-bg-hover)}.lc-br-err-dot{background:var(--dsw-alias-state-error-primary);width:6px;height:6px;box-shadow:0 0 0 2px color-mix(in srgb, var(--dsw-alias-state-error-primary) 10%, transparent);border-radius:50%;flex:none}.lc-br-tag{min-width:0;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;max-width:220px;padding:0 6px;font-size:11px;overflow:hidden}.lc-br-tool-plugin{color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 14%, transparent);border-color:#0000;border-radius:6px;font-size:12px}.lc-br-preview{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.lc-br-time{color:var(--dsw-alias-label-secondary);flex:none;font-size:11px}.lc-br-content{flex-direction:column;gap:6px;padding:2px 6px 8px 26px;display:flex}.lc-br-dim{color:var(--dsw-alias-label-secondary)}";
|
|
6283
6545
|
const tagId$3 = "dsh-context/browser.css";
|
|
6284
6546
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
|
|
6285
6547
|
const tag = document.createElement("style");
|
|
@@ -6290,7 +6552,7 @@ window.__ModuleLoader__.load({
|
|
|
6290
6552
|
}
|
|
6291
6553
|
//#endregion
|
|
6292
6554
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/detailSections.css.mjs
|
|
6293
|
-
const css$2 = ".lc-ts-card{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;min-width:0;overflow:hidden}.lc-ts-card-head{color:var(--dsw-alias-label-secondary);border-bottom:1px solid var(--dsw-alias-border-l1);align-items:center;gap:8px;padding:6px 10px;font-size:11px;font-weight:600;display:flex}.lc-ts-card-head b{color:var(--dsw-alias-label-primary)}.lc-ts-call-name{font-size:13px;font-family:var(--ds-font-family-code,ui-monospace, SFMono-Regular, Menlo, monospace);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.lc-ts-card-count{margin-left:auto}.lc-ts-card-right{align-items:center;gap:8px;margin-left:auto;display:inline-flex}.lc-ts-card-meta{color:var(--dsw-alias-label-secondary);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11px;font-weight:400}.lc-ts-call-state{white-space:nowrap;font-size:11px;font-weight:600;line-height:1;font-family:var(--ds-font-family-code,ui-monospace, SFMono-Regular, Menlo, monospace);border-radius:999px;flex:none;align-items:center;gap:4px;padding:2px 7px;display:inline-flex}.lc-ts-call-state i{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.lc-ts-call-ok{color:var(--dsw-alias-state-success-primary);background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 12%, transparent)}.lc-ts-call-err{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent)}.lc-ts-desc-body{color:var(--dsw-alias-label-primary);white-space:pre-wrap;word-break:break-word;scrollbar-width:thin;max-height:320px;margin:0;padding:8px 10px;font-size:12px;line-height:1.55;overflow-y:auto}.lc-ts-lines{counter-reset:lc-line}.lc-ts-line{padding-left:26px;display:block;position:relative}.lc-ts-line:before{content:counter(lc-line);counter-increment:lc-line;text-align:right;width:20px;color:var(--dsw-alias-label-tertiary);user-select:none;padding-right:6px;font-size:11px;position:absolute;left:0}.lc-ts-line:empty:after{content:\"\"}.lc-ts-param-row{border-top:1px solid var(--dsw-alias-border-l1);grid-template-columns:minmax(0,140px) minmax(0,90px) 56px minmax(0,1fr);align-items:baseline;gap:2px 10px;padding:6px 10px;font-size:12px;display:grid}.lc-ts-param-row:first-of-type{border-top:0}.lc-ts-param-name{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.lc-ts-param-type{color:var(--dsw-alias-label-secondary);font-family:var(--ds-font-family-code,ui-monospace, SFMono-Regular, Menlo, monospace);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.lc-ts-param-req{color:var(--dsw-alias-state-warn-primary);font-size:11px;font-weight:600}.lc-ts-param-req-off{color:var(--dsw-alias-label-secondary);font-size:11px}.lc-ts-param-desc{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;grid-column:1/-1;line-height:1.5}.lc-ts-params-empty{color:var(--dsw-alias-label-secondary);padding:8px 10px;font-size:12px}.lc-ts-arg-row{border-top:1px solid var(--dsw-alias-border-l1);grid-template-columns:minmax(0,96px) 1fr;align-items:start;column-gap:12px;padding:6px 10px;font-size:12px;display:grid}.lc-ts-arg-row:first-of-type{border-top:0}.lc-ts-arg-row .lc-ts-param-name{text-overflow:unset;white-space:normal;overflow-wrap:anywhere;overflow:visible}.lc-ts-arg-val{color:var(--dsw-alias-label-primary);font-family:var(--ds-font-family-code,ui-monospace, SFMono-Regular, Menlo, monospace);white-space:pre-wrap;word-break:break-word;scrollbar-width:thin;max-height:200px;font-size:12px;line-height:1.55;overflow-y:auto}.lc-ts-json{flex-direction:column;gap:4px;display:flex}.lc-ts-json-toggle{color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-size:11px}.lc-ts-json-toggle:hover{color:var(--dsw-alias-label-primary);text-decoration:underline}.lc-rich-seg{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;gap:2px;margin-left:auto;padding:1px;display:flex}.lc-rich-seg-btn{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:3px 8px;font-family:inherit;font-size:11px;line-height:1}.lc-rich-seg-btn:hover{color:var(--dsw-alias-label-primary)}.lc-rich-seg-on,.lc-rich-seg-on:hover{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-foreground)}.lc-ts-desc-md{color:var(--dsw-alias-label-primary);word-break:break-word;overflow-wrap:anywhere;scrollbar-width:thin;min-width:0;max-height:320px;padding:4px 10px;font-size:12px;line-height:1.55;overflow:hidden auto}.lc-ts-desc-md>div{font-size:13px;line-height:1.55}.lc-ts-desc-md div :is(h1,h2,h3,h4,h5,h6){margin:10px 0 4px;font-size:13px;font-weight:600}.lc-ts-desc-md div p{white-space:pre-line;margin:6px 0}.lc-ts-desc-md div p br{display:none}.lc-ts-desc-md div pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;margin:6px 0}.lc-ts-desc-md div :not(pre)>code{box-decoration-break:clone;padding:1px 5px;line-height:1.3;font-size:1em!important}.lc-ts-desc-md div table code{font-size:inherit}";
|
|
6555
|
+
const css$2 = ".lc-ts-card{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;min-width:0;overflow:hidden}.lc-ts-card-head{color:var(--dsw-alias-label-secondary);border-bottom:1px solid var(--dsw-alias-border-l1);align-items:center;gap:8px;padding:6px 10px;font-size:11px;font-weight:600;display:flex}.lc-ts-card-head b{color:var(--dsw-alias-label-primary)}.lc-ts-call-name{font-size:13px;font-family:var(--ds-font-family-code,ui-monospace, SFMono-Regular, Menlo, monospace);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.lc-ts-card-count{margin-left:auto}.lc-ts-card-right{align-items:center;gap:8px;margin-left:auto;display:inline-flex}.lc-ts-card-meta{color:var(--dsw-alias-label-secondary);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11px;font-weight:400}.lc-ts-call-state{white-space:nowrap;font-size:11px;font-weight:600;line-height:1;font-family:var(--ds-font-family-code,ui-monospace, SFMono-Regular, Menlo, monospace);border-radius:999px;flex:none;align-items:center;gap:4px;padding:2px 7px;display:inline-flex}.lc-ts-call-state i{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.lc-ts-call-ok{color:var(--dsw-alias-state-success-primary);background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 12%, transparent)}.lc-ts-call-err{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent)}.lc-ts-desc-body{color:var(--dsw-alias-label-primary);white-space:pre-wrap;word-break:break-word;scrollbar-width:thin;max-height:320px;margin:0;padding:8px 10px;font-size:12px;line-height:1.55;overflow-y:auto}.lc-ts-lines{counter-reset:lc-line}.lc-ts-line{padding-left:26px;display:block;position:relative}.lc-ts-line:before{content:counter(lc-line);counter-increment:lc-line;text-align:right;width:20px;color:var(--dsw-alias-label-tertiary);user-select:none;padding-right:6px;font-size:11px;position:absolute;left:0}.lc-ts-line:empty:after{content:\"\"}.lc-ts-param-row{border-top:1px solid var(--dsw-alias-border-l1);grid-template-columns:minmax(0,140px) minmax(0,90px) 56px minmax(0,1fr);align-items:baseline;gap:2px 10px;padding:6px 10px;font-size:12px;display:grid}.lc-ts-param-row:first-of-type{border-top:0}.lc-ts-param-name{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.lc-ts-param-type{color:var(--dsw-alias-label-secondary);font-family:var(--ds-font-family-code,ui-monospace, SFMono-Regular, Menlo, monospace);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.lc-ts-param-req{color:var(--dsw-alias-state-warn-primary);font-size:11px;font-weight:600}.lc-ts-param-req-off{color:var(--dsw-alias-label-secondary);font-size:11px}.lc-ts-param-desc{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;grid-column:1/-1;line-height:1.5}.lc-ts-params-empty{color:var(--dsw-alias-label-secondary);padding:8px 10px;font-size:12px}.lc-ts-arg-row{border-top:1px solid var(--dsw-alias-border-l1);grid-template-columns:minmax(0,96px) 1fr;align-items:start;column-gap:12px;padding:6px 10px;font-size:12px;display:grid}.lc-ts-arg-row:first-of-type{border-top:0}.lc-ts-arg-row .lc-ts-param-name{text-overflow:unset;white-space:normal;overflow-wrap:anywhere;overflow:visible}.lc-ts-arg-val{color:var(--dsw-alias-label-primary);font-family:var(--ds-font-family-code,ui-monospace, SFMono-Regular, Menlo, monospace);white-space:pre-wrap;word-break:break-word;scrollbar-width:thin;max-height:200px;font-size:12px;line-height:1.55;overflow-y:auto}.lc-ts-json{flex-direction:column;gap:4px;display:flex}.lc-ts-json-toggle{color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;transition:color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);background:0 0;border:0;align-self:flex-start;padding:0;font-size:11px}.lc-ts-json-toggle:hover{color:var(--dsw-alias-label-primary);text-decoration:underline}.lc-rich-seg{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;gap:2px;margin-left:auto;padding:1px;display:flex}.lc-rich-seg-btn{color:var(--dsw-alias-label-secondary);cursor:pointer;transition:color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);background:0 0;border:0;border-radius:5px;padding:3px 8px;font-family:inherit;font-size:11px;line-height:1}.lc-rich-seg-btn:hover{color:var(--dsw-alias-label-primary)}.lc-rich-seg-on,.lc-rich-seg-on:hover{background:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-foreground)}.lc-ts-desc-md{color:var(--dsw-alias-label-primary);word-break:break-word;overflow-wrap:anywhere;scrollbar-width:thin;min-width:0;max-height:320px;padding:4px 10px;font-size:12px;line-height:1.55;overflow:hidden auto}.lc-ts-desc-md>div{font-size:13px;line-height:1.55}.lc-ts-desc-md div :is(h1,h2,h3,h4,h5,h6){margin:10px 0 4px;font-size:13px;font-weight:600}.lc-ts-desc-md div p{white-space:pre-line;margin:6px 0}.lc-ts-desc-md div p br{display:none}.lc-ts-desc-md div pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;margin:6px 0}.lc-ts-desc-md div :not(pre)>code{box-decoration-break:clone;padding:1px 5px;line-height:1.3;font-size:1em!important}.lc-ts-desc-md div table code{font-size:inherit}";
|
|
6294
6556
|
const tagId$2 = "dsh-context/detailSections.css";
|
|
6295
6557
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
|
|
6296
6558
|
const tag = document.createElement("style");
|
|
@@ -6301,7 +6563,7 @@ window.__ModuleLoader__.load({
|
|
|
6301
6563
|
}
|
|
6302
6564
|
//#endregion
|
|
6303
6565
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/attachments.css.mjs
|
|
6304
|
-
const css$1 = ".lc-att-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:8px 10px;display:grid}.lc-att-item{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);width:100%;min-width:0;font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:8px;padding:6px;display:flex}.lc-att-item:hover{border-color:var(--dsw-alias-label-dimmed);background:var(--dsw-alias-interactive-bg-hover,var(--dsw-alias-bg-layer-2))}.lc-att-thumb{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:6px;flex:none;justify-content:center;align-items:center;width:64px;height:64px;padding:0;display:flex;overflow:hidden}.lc-att-thumb img{object-fit:cover;width:100%;height:100%;display:block}.lc-att-ph,.lc-att-err{color:var(--dsw-alias-label-secondary);text-align:center;padding:2px;font-size:10px}.lc-att-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.lc-att-name{color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;word-break:break-word;font-size:12px;line-height:1.3}.lc-att-row{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;font-size:11px}.lc-att-row-label{min-width:3.2em;font-weight:400;display:inline-block}.lc-att-lightbox{z-index:1000;place-items:center;padding:40px;display:grid;position:fixed;inset:0}.lc-att-lightbox-mask{background:var(--dsw-alias-bg-mask-1,#00000073);backdrop-filter:var(--dsw-mask-blur,blur(2px));position:absolute;inset:0}.lc-att-lightbox-img{object-fit:contain;background:var(--dsw-specific-input-major,var(--dsw-alias-bg-layer-1));max-width:min(100%,1600px);max-height:calc(100vh - 80px);box-shadow:var(--dsw-shadow-lv3,0 12px 32px #0006);border-radius:12px;position:relative}.lc-att-lightbox-close{z-index:1;border:1px solid var(--dsw-alias-border-l2-darkmode-thin,var(--dsw-alias-border-l1));background:var(--dsw-specific-input-major,var(--dsw-alias-bg-layer-1));width:36px;height:36px;color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:999px;place-items:center;padding:0;display:grid;position:fixed;top:20px;right:20px}";
|
|
6566
|
+
const css$1 = ".lc-att-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:8px 10px;display:grid}.lc-att-item{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);width:100%;min-width:0;font:inherit;text-align:left;cursor:pointer;transition:border-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out), background-color var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out);background:0 0;border-radius:8px;align-items:center;gap:8px;padding:6px;display:flex}.lc-att-item:hover{border-color:var(--dsw-alias-label-dimmed);background:var(--dsw-alias-interactive-bg-hover,var(--dsw-alias-bg-layer-2))}.lc-att-thumb{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:6px;flex:none;justify-content:center;align-items:center;width:64px;height:64px;padding:0;display:flex;overflow:hidden}.lc-att-thumb img{object-fit:cover;width:100%;height:100%;display:block}.lc-att-ph,.lc-att-err{color:var(--dsw-alias-label-secondary);text-align:center;padding:2px;font-size:10px}.lc-att-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.lc-att-name{color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;word-break:break-word;font-size:12px;line-height:1.3}.lc-att-row{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;font-size:11px}.lc-att-row-label{min-width:3.2em;font-weight:400;display:inline-block}.lc-att-lightbox{z-index:1000;place-items:center;padding:40px;display:grid;position:fixed;inset:0}.lc-att-lightbox-mask{background:var(--dsw-alias-bg-mask-1,#00000073);backdrop-filter:var(--dsw-mask-blur,blur(2px));position:absolute;inset:0}.lc-att-lightbox-img{object-fit:contain;background:var(--dsw-specific-input-major,var(--dsw-alias-bg-layer-1));max-width:min(100%,1600px);max-height:calc(100vh - 80px);box-shadow:var(--dsw-shadow-lv3,0 12px 32px #0006);border-radius:12px;position:relative}.lc-att-lightbox-close{z-index:1;border:1px solid var(--dsw-alias-border-l2-darkmode-thin,var(--dsw-alias-border-l1));background:var(--dsw-specific-input-major,var(--dsw-alias-bg-layer-1));width:36px;height:36px;color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:999px;place-items:center;padding:0;display:grid;position:fixed;top:20px;right:20px}";
|
|
6305
6567
|
const tagId$1 = "dsh-context/attachments.css";
|
|
6306
6568
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
|
|
6307
6569
|
const tag = document.createElement("style");
|
|
@@ -6312,7 +6574,7 @@ window.__ModuleLoader__.load({
|
|
|
6312
6574
|
}
|
|
6313
6575
|
//#endregion
|
|
6314
6576
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/agentGraph.css.mjs
|
|
6315
|
-
const css = ".lc-agents-chips{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.lc-agents-chip{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;border-radius:999px;padding:2px 8px;font-size:11px}.lc-agents-chip-on{color:var(--dsw-alias-state-success-primary);border-color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 40%, transparent)}.lc-agents-stage{margin:0 -4px;padding:0 4px;overflow-x:auto}.lc-agents-svg{max-width:none;margin:0 auto;display:block}.lc-agents-link{stroke-width:1.5px;stroke-opacity:.45}.lc-agents-link-live{stroke-opacity:.85}.lc-agents-flow{stroke-width:2px;stroke-linecap:round;stroke-dasharray:2 7;animation:.9s linear infinite lc-agent-flow}@keyframes lc-agent-flow{to{stroke-dashoffset:-9px}}.lc-agent-node{outline:none}.lc-agent-clickable{cursor:pointer}.lc-agent-halo{fill:#0000;transition:fill
|
|
6577
|
+
const css = ".lc-agents-chips{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.lc-agents-chip{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;border-radius:999px;padding:2px 8px;font-size:11px}.lc-agents-chip-on{color:var(--dsw-alias-state-success-primary);border-color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 40%, transparent)}.lc-agents-stage{margin:0 -4px;padding:0 4px;overflow-x:auto}.lc-agents-svg{max-width:none;margin:0 auto;display:block}.lc-agents-link{stroke-width:1.5px;stroke-opacity:.45}.lc-agents-link-live{stroke-opacity:.85}.lc-agents-flow{stroke-width:2px;stroke-linecap:round;stroke-dasharray:2 7;animation:.9s linear infinite lc-agent-flow}@keyframes lc-agent-flow{to{stroke-dashoffset:-9px}}.lc-agent-node{outline:none}.lc-agent-clickable{cursor:pointer}.lc-agent-halo{fill:#0000;transition:fill var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease-in-out)}.lc-agent-hover .lc-agent-halo,.lc-agent-node:focus-visible .lc-agent-halo{fill:var(--dsw-alias-interactive-bg-hover,var(--dsw-alias-bg-layer-2))}.lc-agent-self .lc-agent-halo{fill:var(--dsw-alias-bg-layer-2)}.lc-agent-running .lc-agent-halo{fill:color-mix(in srgb, var(--dsw-alias-state-success-primary) 12%, transparent);animation:1.8s ease-in-out infinite lc-agent-glow}.lc-agent-done .lc-agent-halo{fill:color-mix(in srgb, var(--dsw-alias-state-success-primary) 7%, transparent)}@keyframes lc-agent-glow{0%,to{opacity:1}50%{opacity:.4}}.lc-agent-track{fill:var(--dsw-alias-bg-layer-1);stroke:var(--dsw-alias-border-l1);stroke-width:1.5px}.lc-agent-seg{fill:none;stroke-width:9px;transition:stroke-dasharray .3s,stroke-dashoffset .3s}.lc-agent-free{stroke:color-mix(in srgb, var(--dsw-alias-label-secondary) 18%, transparent)}.lc-agent-pct{fill:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;pointer-events:none;font-size:11px;font-weight:600}.lc-agent-caption{text-align:center;pointer-events:none;width:100%;line-height:1.25}.lc-agent-label{color:var(--dsw-alias-label-primary);overflow-wrap:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:11px;display:-webkit-box;overflow:hidden}.lc-agent-tokens{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;font-size:10px}.lc-agents-solo{padding:4px 0 10px}.lc-agents-inspector{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:4px 8px;min-width:0;margin-top:10px;padding:7px 10px;font-size:12px;display:flex}.lc-agents-inspector-name{color:var(--dsw-alias-label-primary);overflow-wrap:anywhere}.lc-agents-badge{background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-secondary);border-radius:999px;flex:none;padding:1px 6px;font-size:10px}.lc-agent-self-badge{vertical-align:1px;margin-left:5px}.lc-agents-badge-on{color:var(--dsw-alias-state-success-primary);border-color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 40%, transparent)}.lc-agents-inspector-stats{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lc-agents-inspector-open{color:var(--dsw-alias-brand-primary,#3b82f6);flex:none;margin-left:auto}.lc-agents-legend{color:var(--dsw-alias-label-secondary);flex-wrap:wrap;gap:4px 14px;margin-top:8px;font-size:11px;display:flex}.lc-agents-legend-item{align-items:center;gap:5px;display:inline-flex}.lc-agents-legend-item i{border-radius:2px;width:8px;height:8px}.lc-agents-legend-free{background:color-mix(in srgb, var(--dsw-alias-label-secondary) 18%, transparent)}.lc-agents-legend-edge{border-top:2px dashed var(--dsw-alias-label-secondary);border-radius:0!important;width:14px!important;height:0!important}";
|
|
6316
6578
|
const tagId = "dsh-context/agentGraph.css";
|
|
6317
6579
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
6318
6580
|
const tag = document.createElement("style");
|