dsh-context 0.49.1 → 0.49.3
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 +130 -41
- package/lib/index.js +5 -0
- package/package.json +2 -3
package/lib/client.js
CHANGED
|
@@ -67,6 +67,10 @@ window.__ModuleLoader__.load({
|
|
|
67
67
|
"gran.turn": "轮次",
|
|
68
68
|
"settings.title": "上下文",
|
|
69
69
|
"settings.desc": "dsh-context 插件中上下文面板的偏好设置",
|
|
70
|
+
"settings.placement": "入口位置",
|
|
71
|
+
"placement.tab": "标签页",
|
|
72
|
+
"placement.sidebar": "侧边栏",
|
|
73
|
+
"placement.all": "全部",
|
|
70
74
|
"settings.gran": "趋势图 · 默认粒度",
|
|
71
75
|
"settings.mode": "趋势图 · 默认展示方式",
|
|
72
76
|
"settings.fileSort": "文件活动 · 默认排序",
|
|
@@ -84,7 +88,7 @@ window.__ModuleLoader__.load({
|
|
|
84
88
|
"detail.turn": "第 {t} 轮 · 共 {n} 步",
|
|
85
89
|
"detail.lastStep": "末步",
|
|
86
90
|
"detail.estTotal": "估算合计 ≈ {n}",
|
|
87
|
-
"detail.actual": "实际
|
|
91
|
+
"detail.actual": "实际 {n}",
|
|
88
92
|
"detail.output": "输出 {n}",
|
|
89
93
|
"detail.cache": "缓存 {n}%",
|
|
90
94
|
"brief.turn": "本轮",
|
|
@@ -253,7 +257,6 @@ window.__ModuleLoader__.load({
|
|
|
253
257
|
"browser.loading": "正在从更早的会话历史加载完整内容…",
|
|
254
258
|
"browser.notInLog": "会话日志中未找到该条目的完整内容(可能已被压缩或清理)",
|
|
255
259
|
"browser.loadFailed": "内容加载失败,点击重试",
|
|
256
|
-
"browser.preview": "预览",
|
|
257
260
|
"tool.desc": "描述",
|
|
258
261
|
"tool.params": "参数",
|
|
259
262
|
"tool.paramsEmpty": "(无参数)",
|
|
@@ -359,6 +362,10 @@ window.__ModuleLoader__.load({
|
|
|
359
362
|
"gran.turn": "Turn",
|
|
360
363
|
"settings.title": "Context",
|
|
361
364
|
"settings.desc": "Preferences for Context panel in dsh-context plugin",
|
|
365
|
+
"settings.placement": "Entry Options",
|
|
366
|
+
"placement.tab": "Tab",
|
|
367
|
+
"placement.sidebar": "Sidebar",
|
|
368
|
+
"placement.all": "All",
|
|
362
369
|
"settings.gran": "Trend Chart · Default granularity",
|
|
363
370
|
"settings.mode": "Trend Chart · Default display",
|
|
364
371
|
"settings.fileSort": "File Activity · Default sort",
|
|
@@ -376,7 +383,7 @@ window.__ModuleLoader__.load({
|
|
|
376
383
|
"detail.turn": "Turn {t} · {n} steps",
|
|
377
384
|
"detail.lastStep": "Last Step",
|
|
378
385
|
"detail.estTotal": "Estimated ≈ {n}",
|
|
379
|
-
"detail.actual": "Actual
|
|
386
|
+
"detail.actual": "Actual {n}",
|
|
380
387
|
"detail.output": "Output {n}",
|
|
381
388
|
"detail.cache": "Cache {n}%",
|
|
382
389
|
"brief.turn": "User",
|
|
@@ -545,7 +552,6 @@ window.__ModuleLoader__.load({
|
|
|
545
552
|
"browser.loading": "Loading full content from older session history…",
|
|
546
553
|
"browser.notInLog": "This item is not in the session log anymore (it may have been compacted away or cleared)",
|
|
547
554
|
"browser.loadFailed": "Load failed — click to retry",
|
|
548
|
-
"browser.preview": "Preview",
|
|
549
555
|
"tool.desc": "Description",
|
|
550
556
|
"tool.params": "Parameters",
|
|
551
557
|
"tool.paramsEmpty": "(no parameters)",
|
|
@@ -3444,8 +3450,8 @@ window.__ModuleLoader__.load({
|
|
|
3444
3450
|
});
|
|
3445
3451
|
const missNote = fetchMissNote(t, fetchContent, miss.state, miss.retry, "browser.noContent");
|
|
3446
3452
|
const requests = data.requests;
|
|
3447
|
-
const
|
|
3448
|
-
const
|
|
3453
|
+
const req = (props.previewSeq !== null && props.previewSeq !== void 0 ? requests.find((r) => r.seq === props.previewSeq) ?? null : null) ?? (sel === "live" ? null : requests.find((r) => r.seq === sel) ?? null);
|
|
3454
|
+
const actual = req ?? requests.reduce((a, r) => a === null || r.seq > a.seq ? r : a, null);
|
|
3449
3455
|
const seq = req !== null ? req.seq : null;
|
|
3450
3456
|
const linked = req === null && props.onHoverKey !== void 0;
|
|
3451
3457
|
const linkKey = linked && props.hoverKey !== null && props.hoverKey !== "free" ? props.hoverKey : null;
|
|
@@ -3775,15 +3781,11 @@ window.__ModuleLoader__.load({
|
|
|
3775
3781
|
s: req.step ?? 0
|
|
3776
3782
|
}) : t("browser.liveNow") }),
|
|
3777
3783
|
req !== null ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: fmtTime(req.time) }) : null,
|
|
3778
|
-
|
|
3779
|
-
className: "lc-
|
|
3780
|
-
children: t("
|
|
3781
|
-
})
|
|
3782
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: t("detail.
|
|
3783
|
-
req !== null && req.prompt !== void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3784
|
-
className: "lc-actual",
|
|
3785
|
-
children: t("detail.actual", { n: fmt(req.prompt) })
|
|
3786
|
-
}) : null
|
|
3784
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3785
|
+
className: "lc-est",
|
|
3786
|
+
children: t("detail.estTotal", { n: fmt(total) })
|
|
3787
|
+
}),
|
|
3788
|
+
actual !== null && actual.prompt !== void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: t("detail.actual", { n: fmt(actual.prompt) }) }) : null
|
|
3787
3789
|
]
|
|
3788
3790
|
}),
|
|
3789
3791
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -4432,6 +4434,28 @@ window.__ModuleLoader__.load({
|
|
|
4432
4434
|
role: "status",
|
|
4433
4435
|
children: t("settings.readOnly")
|
|
4434
4436
|
}) : null,
|
|
4437
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(PrefRow, {
|
|
4438
|
+
label: t("settings.placement"),
|
|
4439
|
+
value: state.placement,
|
|
4440
|
+
disabled,
|
|
4441
|
+
options: [
|
|
4442
|
+
{
|
|
4443
|
+
id: "all",
|
|
4444
|
+
label: t("placement.all")
|
|
4445
|
+
},
|
|
4446
|
+
{
|
|
4447
|
+
id: "tab",
|
|
4448
|
+
label: t("placement.tab")
|
|
4449
|
+
},
|
|
4450
|
+
{
|
|
4451
|
+
id: "sidebar",
|
|
4452
|
+
label: t("placement.sidebar")
|
|
4453
|
+
}
|
|
4454
|
+
],
|
|
4455
|
+
onPick: (id) => {
|
|
4456
|
+
props.set?.("defaultPlacement", id);
|
|
4457
|
+
}
|
|
4458
|
+
}),
|
|
4435
4459
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(PrefRow, {
|
|
4436
4460
|
label: t("settings.gran"),
|
|
4437
4461
|
value: state.granularity,
|
|
@@ -4495,6 +4519,7 @@ window.__ModuleLoader__.load({
|
|
|
4495
4519
|
if (value === null || typeof value !== "object") return {};
|
|
4496
4520
|
const v = value;
|
|
4497
4521
|
return {
|
|
4522
|
+
...v.defaultPlacement === "all" || v.defaultPlacement === "tab" || v.defaultPlacement === "sidebar" ? { placement: v.defaultPlacement } : {},
|
|
4498
4523
|
...v.defaultGranularity === "step" || v.defaultGranularity === "turn" ? { granularity: v.defaultGranularity } : {},
|
|
4499
4524
|
...v.defaultTrendMode === "total" || v.defaultTrendMode === "delta" ? { mode: v.defaultTrendMode } : {},
|
|
4500
4525
|
...v.defaultFileSort === "count" || v.defaultFileSort === "latest" || v.defaultFileSort === "path" ? { fileSort: v.defaultFileSort } : {}
|
|
@@ -4503,6 +4528,7 @@ window.__ModuleLoader__.load({
|
|
|
4503
4528
|
function createContextSettings() {
|
|
4504
4529
|
let state = {
|
|
4505
4530
|
status: "loading",
|
|
4531
|
+
placement: "all",
|
|
4506
4532
|
granularity: "step",
|
|
4507
4533
|
mode: "total",
|
|
4508
4534
|
fileSort: "count",
|
|
@@ -4511,20 +4537,23 @@ window.__ModuleLoader__.load({
|
|
|
4511
4537
|
let scope;
|
|
4512
4538
|
const listeners = /* @__PURE__ */ new Set();
|
|
4513
4539
|
const publish = (next) => {
|
|
4514
|
-
if (next.status === state.status && next.granularity === state.granularity && next.mode === state.mode && next.fileSort === state.fileSort && next.writable === state.writable) return;
|
|
4540
|
+
if (next.status === state.status && next.placement === state.placement && next.granularity === state.granularity && next.mode === state.mode && next.fileSort === state.fileSort && next.writable === state.writable) return;
|
|
4515
4541
|
state = next;
|
|
4516
4542
|
for (const listener of listeners) listener();
|
|
4517
4543
|
};
|
|
4518
4544
|
const sync = (bound) => {
|
|
4519
4545
|
const snap = bound.getSnapshot();
|
|
4520
4546
|
const prefs = prefsOf(snap.value);
|
|
4547
|
+
const rawPlacement = snap.value !== null && typeof snap.value === "object" ? snap.value.defaultPlacement : void 0;
|
|
4521
4548
|
publish({
|
|
4522
4549
|
status: snap.status === "ready" || snap.status === "unavailable" ? snap.status : "loading",
|
|
4550
|
+
placement: prefs.placement ?? (rawPlacement === void 0 ? state.placement : "all"),
|
|
4523
4551
|
granularity: prefs.granularity ?? state.granularity,
|
|
4524
4552
|
mode: prefs.mode ?? state.mode,
|
|
4525
4553
|
fileSort: prefs.fileSort ?? state.fileSort,
|
|
4526
4554
|
writable: snap.writable
|
|
4527
4555
|
});
|
|
4556
|
+
return prefs.placement;
|
|
4528
4557
|
};
|
|
4529
4558
|
return {
|
|
4530
4559
|
store: {
|
|
@@ -4536,6 +4565,7 @@ window.__ModuleLoader__.load({
|
|
|
4536
4565
|
},
|
|
4537
4566
|
getSnapshot: () => state
|
|
4538
4567
|
},
|
|
4568
|
+
defaultPlacement: () => state.placement,
|
|
4539
4569
|
defaultGranularity: () => state.granularity,
|
|
4540
4570
|
defaultTrendMode: () => state.mode,
|
|
4541
4571
|
defaultFileSort: () => state.fileSort,
|
|
@@ -4554,7 +4584,11 @@ window.__ModuleLoader__.load({
|
|
|
4554
4584
|
const bound = scope;
|
|
4555
4585
|
if (bound === void 0) return;
|
|
4556
4586
|
bound.set(field, value).catch(() => {
|
|
4557
|
-
sync(bound);
|
|
4587
|
+
const truth = sync(bound);
|
|
4588
|
+
if (field === "defaultPlacement" && truth === void 0) publish({
|
|
4589
|
+
...state,
|
|
4590
|
+
placement: "all"
|
|
4591
|
+
});
|
|
4558
4592
|
});
|
|
4559
4593
|
}
|
|
4560
4594
|
};
|
|
@@ -6051,11 +6085,18 @@ window.__ModuleLoader__.load({
|
|
|
6051
6085
|
/**
|
|
6052
6086
|
* The stats cards' ring chart: proportional SVG segments (stroke-dasharray
|
|
6053
6087
|
* over a 100-unit circumference, the same trick as the agent graph's rings)
|
|
6054
|
-
* around an HTML center label.
|
|
6055
|
-
*
|
|
6056
|
-
*
|
|
6057
|
-
*
|
|
6088
|
+
* around an HTML center label. Neighbouring segments part on a hairline of the
|
|
6089
|
+
* card's own background (each arc gives up a half gap at both ends); segments
|
|
6090
|
+
* with no value are skipped; an all-zero ring renders as one neutral track so
|
|
6091
|
+
* the card never draws a misleading "100% of nothing" pie. The center type
|
|
6092
|
+
* scales with the ring's size, so the label always fits inside the hole the
|
|
6093
|
+
* thin stroke leaves.
|
|
6058
6094
|
*/
|
|
6095
|
+
/**
|
|
6096
|
+
* The hairline divider between two slices, in dasharray units (1 unit ≈ 1% of
|
|
6097
|
+
* the circumference ≈ 2.3px on the 96px card ring, so this reads as ~1px).
|
|
6098
|
+
*/
|
|
6099
|
+
const SEG_GAP = .5;
|
|
6059
6100
|
function makeDonut(kit) {
|
|
6060
6101
|
return function Donut(props) {
|
|
6061
6102
|
const size = props.size ?? 118;
|
|
@@ -6070,11 +6111,16 @@ window.__ModuleLoader__.load({
|
|
|
6070
6111
|
arcs.push({
|
|
6071
6112
|
key: s.key,
|
|
6072
6113
|
color: s.color,
|
|
6073
|
-
pct,
|
|
6114
|
+
len: pct,
|
|
6074
6115
|
offset: 100 - acc + 25
|
|
6075
6116
|
});
|
|
6076
6117
|
acc += pct;
|
|
6077
6118
|
}
|
|
6119
|
+
if (arcs.length > 1) for (const a of arcs) {
|
|
6120
|
+
const cut = Math.min(SEG_GAP / 2, a.len / 4);
|
|
6121
|
+
a.len -= cut * 2;
|
|
6122
|
+
a.offset -= cut;
|
|
6123
|
+
}
|
|
6078
6124
|
const hovering = props.hoverKey !== null && props.hoverKey !== void 0 && arcs.some((a) => a.key === props.hoverKey);
|
|
6079
6125
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
6080
6126
|
className: "lc-donut" + (hovering ? " lc-donut-dim" : ""),
|
|
@@ -6105,7 +6151,7 @@ window.__ModuleLoader__.load({
|
|
|
6105
6151
|
fill: "none",
|
|
6106
6152
|
stroke: a.color,
|
|
6107
6153
|
strokeWidth: "4",
|
|
6108
|
-
strokeDasharray: `${a.
|
|
6154
|
+
strokeDasharray: `${a.len} ${100 - a.len}`,
|
|
6109
6155
|
strokeDashoffset: a.offset,
|
|
6110
6156
|
onMouseEnter: () => {
|
|
6111
6157
|
if (props.onHoverKey !== void 0) props.onHoverKey(a.key);
|
|
@@ -6634,7 +6680,7 @@ window.__ModuleLoader__.load({
|
|
|
6634
6680
|
return function PluginInfo() {
|
|
6635
6681
|
const [latest, setLatest] = (0, react.useState)(null);
|
|
6636
6682
|
(0, react.useEffect)(() => {
|
|
6637
|
-
if ("0.49.
|
|
6683
|
+
if ("0.49.3".includes("-dev")) return;
|
|
6638
6684
|
let on = true;
|
|
6639
6685
|
fetchLatestVersion().then((v) => {
|
|
6640
6686
|
if (on && v) setLatest(v);
|
|
@@ -6643,8 +6689,8 @@ window.__ModuleLoader__.load({
|
|
|
6643
6689
|
on = false;
|
|
6644
6690
|
};
|
|
6645
6691
|
}, []);
|
|
6646
|
-
const update = latest !== null && isNewerVersion(latest, "0.49.
|
|
6647
|
-
const nameText = "dsh-context (v0.49.
|
|
6692
|
+
const update = latest !== null && isNewerVersion(latest, "0.49.3") ? latest : null;
|
|
6693
|
+
const nameText = "dsh-context (v0.49.3)";
|
|
6648
6694
|
const nameValue = [nameText];
|
|
6649
6695
|
if (update) nameValue.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
6650
6696
|
className: "lc-pi-update",
|
|
@@ -8750,6 +8796,42 @@ window.__ModuleLoader__.load({
|
|
|
8750
8796
|
};
|
|
8751
8797
|
}
|
|
8752
8798
|
//#endregion
|
|
8799
|
+
//#region src/client/placement.ts
|
|
8800
|
+
/**
|
|
8801
|
+
* Mount per the current preference and keep the registrations glued to it
|
|
8802
|
+
* until the returned disposer runs.
|
|
8803
|
+
*/
|
|
8804
|
+
function watchPlacement(settings, mounts) {
|
|
8805
|
+
let tab;
|
|
8806
|
+
let sidebar;
|
|
8807
|
+
const own = (result) => typeof result === "function" ? result : void 0;
|
|
8808
|
+
const mount = (placement) => {
|
|
8809
|
+
const wantTab = placement !== "sidebar";
|
|
8810
|
+
const wantSidebar = placement !== "tab";
|
|
8811
|
+
if (wantTab && tab === void 0) tab = own(mounts.tab());
|
|
8812
|
+
if (!wantTab && tab !== void 0) {
|
|
8813
|
+
tab();
|
|
8814
|
+
tab = void 0;
|
|
8815
|
+
}
|
|
8816
|
+
if (wantSidebar && sidebar === void 0) sidebar = own(mounts.sidebar());
|
|
8817
|
+
if (!wantSidebar && sidebar !== void 0) {
|
|
8818
|
+
sidebar();
|
|
8819
|
+
sidebar = void 0;
|
|
8820
|
+
}
|
|
8821
|
+
};
|
|
8822
|
+
mount(settings.defaultPlacement());
|
|
8823
|
+
const unsubscribe = settings.store.subscribe(() => {
|
|
8824
|
+
mount(settings.defaultPlacement());
|
|
8825
|
+
});
|
|
8826
|
+
return () => {
|
|
8827
|
+
unsubscribe();
|
|
8828
|
+
tab?.();
|
|
8829
|
+
sidebar?.();
|
|
8830
|
+
tab = void 0;
|
|
8831
|
+
sidebar = void 0;
|
|
8832
|
+
};
|
|
8833
|
+
}
|
|
8834
|
+
//#endregion
|
|
8753
8835
|
//#region src/client/icon.tsx
|
|
8754
8836
|
/** The sheet's strokes, in paint order, as `[path, fill]` pairs. */
|
|
8755
8837
|
const SHEET_PATHS = [
|
|
@@ -8847,9 +8929,11 @@ window.__ModuleLoader__.load({
|
|
|
8847
8929
|
* locale at call time, so a language switch relabels the guide entry.
|
|
8848
8930
|
* @param ns - the plugin's locale namespace, put on the body registration so
|
|
8849
8931
|
* the framework synthesizes the `t` seat for the panel too.
|
|
8932
|
+
* @returns the deferred inject's disposer (placement toggling calls it to
|
|
8933
|
+
* take the mount down; a no-op on faces that return no handle).
|
|
8850
8934
|
*/
|
|
8851
8935
|
function watchSidebarContextTab(ctx, view, t, ns) {
|
|
8852
|
-
ctx.inject(["sidebarRightTabs"], (raw) => {
|
|
8936
|
+
const handle = ctx.inject(["sidebarRightTabs"], (raw) => {
|
|
8853
8937
|
const injected = raw;
|
|
8854
8938
|
const disposers = [];
|
|
8855
8939
|
const own = (result) => {
|
|
@@ -8889,6 +8973,9 @@ window.__ModuleLoader__.load({
|
|
|
8889
8973
|
for (const dispose of disposers) dispose();
|
|
8890
8974
|
};
|
|
8891
8975
|
});
|
|
8976
|
+
return () => {
|
|
8977
|
+
handle?.dispose?.();
|
|
8978
|
+
};
|
|
8892
8979
|
}
|
|
8893
8980
|
//#endregion
|
|
8894
8981
|
//#region src/client/viewkit.ts
|
|
@@ -8907,7 +8994,7 @@ window.__ModuleLoader__.load({
|
|
|
8907
8994
|
}
|
|
8908
8995
|
//#endregion
|
|
8909
8996
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/base.css.mjs
|
|
8910
|
-
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}[data-sidebar-right-open] .lc-root,[data-sidebar-right-float-host] .lc-root{height:auto;padding:12px;overflow:visible}.lc-title-icon{flex:none}.lc-title-label{padding-right:30px}.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-root .lc-card{margin-bottom:7px;padding:7px 8px;container:lc-card/inline-size}.lc-root .lc-cols{gap:7px;margin-bottom:7px}.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-trend-adaptive{flex:none;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:min(360px,100%)}.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{container:lc-head-row/inline-size}.lc-head>.lc-card{flex:1 1 0;min-width:0}@container lc-head-row (width<=
|
|
8997
|
+
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}[data-sidebar-right-open] .lc-root,[data-sidebar-right-float-host] .lc-root{height:auto;padding:12px;overflow:visible}.lc-title-icon{flex:none}.lc-title-label{padding-right:30px}.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-root .lc-card{margin-bottom:7px;padding:7px 8px;container:lc-card/inline-size}.lc-root .lc-cols{gap:7px;margin-bottom:7px}.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-trend-adaptive{flex:none;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:min(360px,100%)}.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{container:lc-head-row/inline-size}.lc-head>.lc-card{flex:1 1 0;min-width:0}@container lc-head-row (width<=940px){.lc-head>.lc-card{flex-basis:40%}}@container lc-head-row (width<=480px){.lc-head>.lc-card{flex-basis:100%}}.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])),[data-conversation-scroll]:has(.lc-root,.lc-modal-backdrop)~[data-width-handle]{display:none}";
|
|
8911
8998
|
const tagId$13 = "dsh-context/base.css";
|
|
8912
8999
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$13) + "]") === null) {
|
|
8913
9000
|
const tag = document.createElement("style");
|
|
@@ -8918,7 +9005,7 @@ window.__ModuleLoader__.load({
|
|
|
8918
9005
|
}
|
|
8919
9006
|
//#endregion
|
|
8920
9007
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/stats.css.mjs
|
|
8921
|
-
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:
|
|
9008
|
+
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:4px;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-card (width<=320px){.lc-donut-row{gap:8px}.lc-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@container lc-card (width<=240px){.lc-donut-row{flex-wrap:wrap}.lc-donut{margin:0 auto}.lc-donut-row .lc-sl{flex-basis:100%}}";
|
|
8922
9009
|
const tagId$12 = "dsh-context/stats.css";
|
|
8923
9010
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$12) + "]") === null) {
|
|
8924
9011
|
const tag = document.createElement("style");
|
|
@@ -8962,7 +9049,7 @@ window.__ModuleLoader__.load({
|
|
|
8962
9049
|
}
|
|
8963
9050
|
//#endregion
|
|
8964
9051
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/trendChart.css.mjs
|
|
8965
|
-
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{overscroll-behavior-x:contain;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-stack>div:first-child{border-radius:0 0 2px 2px}.lc-bar-stack>div:last-child{border-radius:2px 2px 0 0}.lc-bar-stack>div:only-child{border-radius:2px}.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-bar-up>div:last-child{border-radius:2px 2px 0 0}.lc-bar-down>div:last-child{border-radius:0 0 2px 2px}.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;width:max-content;min-width:100%;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}";
|
|
9052
|
+
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{overscroll-behavior-x:contain;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-chart-tip span+span{color:var(--dsw-alias-label-secondary)}.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-stack>div:first-child{border-radius:0 0 2px 2px}.lc-bar-stack>div:last-child{border-radius:2px 2px 0 0}.lc-bar-stack>div:only-child{border-radius:2px}.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-bar-up>div:last-child{border-radius:2px 2px 0 0}.lc-bar-down>div:last-child{border-radius:0 0 2px 2px}.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;width:max-content;min-width:100%;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}";
|
|
8966
9053
|
const tagId$8 = "dsh-context/trendChart.css";
|
|
8967
9054
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$8) + "]") === null) {
|
|
8968
9055
|
const tag = document.createElement("style");
|
|
@@ -9017,7 +9104,7 @@ window.__ModuleLoader__.load({
|
|
|
9017
9104
|
}
|
|
9018
9105
|
//#endregion
|
|
9019
9106
|
//#region \0dsh-global-css:/home/runner/work/dsh-context/dsh-context/src/client/styles/browser.css.mjs
|
|
9020
|
-
const css$3 = ".lc-br-dna-ctl{flex:none;margin-left:0}.lc-br-bar-dna .lc-stacked-seg{background-image:linear-gradient(to right, transparent calc(100% - min(.5px, 12.5%)), var(--dsw-alias-bg-layer-1) 0)}.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-
|
|
9107
|
+
const css$3 = ".lc-br-dna-ctl{flex:none;margin-left:0}.lc-br-bar-dna .lc-stacked-seg{background-image:linear-gradient(to right, transparent calc(100% - min(.5px, 12.5%)), var(--dsw-alias-bg-layer-1) 0)}.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-est{margin-left:auto}.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)}";
|
|
9021
9108
|
const tagId$3 = "dsh-context/browser.css";
|
|
9022
9109
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
|
|
9023
9110
|
const tag = document.createElement("style");
|
|
@@ -9097,16 +9184,18 @@ window.__ModuleLoader__.load({
|
|
|
9097
9184
|
watchHistoryFaces(ctx);
|
|
9098
9185
|
const settings = createContextSettings();
|
|
9099
9186
|
const ContextView = makeContextView(ctx, kit, settings);
|
|
9100
|
-
ctx.
|
|
9101
|
-
|
|
9102
|
-
|
|
9103
|
-
|
|
9104
|
-
|
|
9105
|
-
|
|
9106
|
-
|
|
9107
|
-
|
|
9108
|
-
|
|
9109
|
-
|
|
9187
|
+
ctx.effect(() => watchPlacement(settings, {
|
|
9188
|
+
tab: () => ctx.slots.inject("conversation.view", () => {
|
|
9189
|
+
return ctx.slots.register({
|
|
9190
|
+
name: "conversation.view",
|
|
9191
|
+
id: "context",
|
|
9192
|
+
order: 20,
|
|
9193
|
+
locale: NS,
|
|
9194
|
+
label: () => t("tab")
|
|
9195
|
+
}, (props) => (0, react.createElement)(ContextView, props));
|
|
9196
|
+
}),
|
|
9197
|
+
sidebar: () => watchSidebarContextTab(ctx, ContextView, t, NS)
|
|
9198
|
+
}), "dsh-context: placement");
|
|
9110
9199
|
const ContextJump = makeContextJumpButton(kit);
|
|
9111
9200
|
ctx.slots.inject("conversation.chat.assistant-actions", () => {
|
|
9112
9201
|
return ctx.slots.register({
|
package/lib/index.js
CHANGED
|
@@ -2607,6 +2607,11 @@ function createFallbackHeadersDefinition() {
|
|
|
2607
2607
|
const SETTINGS_NAMESPACE = "dsh-context";
|
|
2608
2608
|
/** Section schema: also the wire envelope the browser scope validates against. */
|
|
2609
2609
|
const SettingsSchema = z$1.object({
|
|
2610
|
+
defaultPlacement: z$1.union([
|
|
2611
|
+
"all",
|
|
2612
|
+
"tab",
|
|
2613
|
+
"sidebar"
|
|
2614
|
+
]).default("all").loose(),
|
|
2610
2615
|
defaultGranularity: z$1.union(["step", "turn"]).default("step"),
|
|
2611
2616
|
defaultTrendMode: z$1.union(["total", "delta"]).default("total").loose(),
|
|
2612
2617
|
defaultFileSort: z$1.union([
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-context",
|
|
3
|
-
"version": "0.49.
|
|
3
|
+
"version": "0.49.3",
|
|
4
4
|
"description": "A DeepSeek Harness plugin for context insight and management, with context dashboard and context command, for understanding how the context is made of, and how it evolves.",
|
|
5
5
|
"author": "bowenliang123",
|
|
6
6
|
"repository": {
|
|
@@ -126,6 +126,5 @@
|
|
|
126
126
|
"typescript": "^7.0.2",
|
|
127
127
|
"vitest": "^4.1.11",
|
|
128
128
|
"zod": "^4.4.3"
|
|
129
|
-
}
|
|
130
|
-
"packageManager": "pnpm@11.9.0"
|
|
129
|
+
}
|
|
131
130
|
}
|