dsh-better-display 0.3.9 → 0.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +1 -1
- package/README.md +1 -1
- package/compat/harness-rc2.json +17 -13
- package/docs/official-rendering-bridge.md +1 -1
- package/lib/client.js +406 -403
- package/lib/client.js.map +1 -1
- package/lib/dsh-better-display.js +9 -18
- package/lib/types/client/OfficialContent.js +6 -7
- package/lib/types/client/OfficialContent.js.map +1 -1
- package/lib/types/client/Reader.d.ts.map +1 -1
- package/lib/types/client/Reader.js +2 -6
- package/lib/types/client/Reader.js.map +1 -1
- package/lib/types/client/official-slots.d.ts +15 -3
- package/lib/types/client/official-slots.d.ts.map +1 -1
- package/lib/types/client/official-slots.js +37 -4
- package/lib/types/client/official-slots.js.map +1 -1
- package/lib/types/client/primitive-labels.d.ts.map +1 -1
- package/lib/types/client/primitive-labels.js +1 -0
- package/lib/types/client/primitive-labels.js.map +1 -1
- package/package.json +20 -19
- package/scripts/check-harness-compat.mjs +4 -2
- package/scripts/link-harness-dependencies.mjs +48 -11
- package/src/client/OfficialContent.tsx +7 -7
- package/src/client/Reader.tsx +2 -6
- package/src/client/official-slots.tsx +38 -5
- package/src/client/primitive-labels.ts +1 -0
- package/tests/browser-official-bridge.tsx +2 -1
- package/tests/fixtures/reader-user-bubble.tsx +37 -15
- package/tests/reader-user-bubble.test.ts +1 -0
- package/tests/stock-install.test.ts +10 -6
package/lib/client.js
CHANGED
|
@@ -4,7 +4,7 @@ window.__ModuleLoader__.load({
|
|
|
4
4
|
var module = { exports: {} };
|
|
5
5
|
var exports = module.exports;
|
|
6
6
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
7
|
-
|
|
7
|
+
// \0rolldown/runtime.js
|
|
8
8
|
var __defProp = Object.defineProperty;
|
|
9
9
|
var __exportAll = (all, no_symbols) => {
|
|
10
10
|
let target = {};
|
|
@@ -15,12 +15,11 @@ window.__ModuleLoader__.load({
|
|
|
15
15
|
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
16
16
|
return target;
|
|
17
17
|
};
|
|
18
|
-
//#endregion
|
|
19
18
|
let react = require("react");
|
|
20
19
|
let _deepseek_ai_dsh_client_store = require("@deepseek-ai/dsh-client-store");
|
|
21
20
|
let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
22
21
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
23
|
-
|
|
22
|
+
// node_modules/@deepseek-ai/dsh-util-workspace-path/lib/index.js
|
|
24
23
|
/**
|
|
25
24
|
* The `dsh-resource://file/…` address grammar: how a file is named across the
|
|
26
25
|
* Sidebar and the resource model, built and parsed without touching a
|
|
@@ -108,8 +107,7 @@ window.__ModuleLoader__.load({
|
|
|
108
107
|
if (root !== "" && normalized.startsWith(`${root}/`)) return sessionFileAddress(sessionId, normalized.slice(root.length + 1));
|
|
109
108
|
return sessionFileAddress(sessionId, normalized);
|
|
110
109
|
}
|
|
111
|
-
|
|
112
|
-
//#region src/client/rewind-cut.ts
|
|
110
|
+
// src/client/rewind-cut.ts
|
|
113
111
|
function asRecord$1(value) {
|
|
114
112
|
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
115
113
|
}
|
|
@@ -349,8 +347,7 @@ window.__ModuleLoader__.load({
|
|
|
349
347
|
function visibleChatSignature(chat) {
|
|
350
348
|
return visibleChatKeys(chat).join("\0");
|
|
351
349
|
}
|
|
352
|
-
|
|
353
|
-
//#region src/client/tool-activity.ts
|
|
350
|
+
// src/client/tool-activity.ts
|
|
354
351
|
/**
|
|
355
352
|
* callId of a tool-call chat node. Drafts for a call whose node was cut must
|
|
356
353
|
* not be reintroduced after `group.keys` has already dropped that node.
|
|
@@ -722,8 +719,7 @@ window.__ModuleLoader__.load({
|
|
|
722
719
|
function preparingLabel(name) {
|
|
723
720
|
return /^(write|edit|apply_patch)$/.test(name) ? "正在生成文件内容" : /^(bash|shell|exec_command|pwsh)$/.test(name) ? "正在准备命令" : "正在准备工具输入";
|
|
724
721
|
}
|
|
725
|
-
|
|
726
|
-
//#region src/client/deliverables.ts
|
|
722
|
+
// src/client/deliverables.ts
|
|
727
723
|
/** Extract standard filename without directory components. */
|
|
728
724
|
function basename(path) {
|
|
729
725
|
const normalized = path.replace(/[/\\]+$/, "");
|
|
@@ -813,14 +809,12 @@ window.__ModuleLoader__.load({
|
|
|
813
809
|
};
|
|
814
810
|
} };
|
|
815
811
|
}
|
|
816
|
-
|
|
817
|
-
//#region src/workspace-path.ts
|
|
812
|
+
// src/workspace-path.ts
|
|
818
813
|
/** Absolute paths accepted by both POSIX and Windows hosts. */
|
|
819
814
|
function isAbsoluteWorkspacePath(path) {
|
|
820
815
|
return /^(?:\/|[A-Za-z]:[/\\]|\\\\)/.test(path);
|
|
821
816
|
}
|
|
822
|
-
|
|
823
|
-
//#region src/client/styles.ts
|
|
817
|
+
// src/client/styles.ts
|
|
824
818
|
const plugin = "dsh-better-display";
|
|
825
819
|
const styles$1 = /* @__PURE__ */ new Map();
|
|
826
820
|
/** Retain injected CSS across host cleanup and restore it before Reader paints. */
|
|
@@ -842,8 +836,7 @@ window.__ModuleLoader__.load({
|
|
|
842
836
|
document.head.appendChild(tag);
|
|
843
837
|
}
|
|
844
838
|
}
|
|
845
|
-
|
|
846
|
-
//#region src/client/mcp-app.ts
|
|
839
|
+
// src/client/mcp-app.ts
|
|
847
840
|
/**
|
|
848
841
|
* Core pure functions for SEP-1865 / MCP Apps integration.
|
|
849
842
|
* Free of CSS module imports so it can be cleanly tested in Node test environments.
|
|
@@ -1083,8 +1076,7 @@ ${trimmed}
|
|
|
1083
1076
|
} catch {}
|
|
1084
1077
|
return false;
|
|
1085
1078
|
}
|
|
1086
|
-
|
|
1087
|
-
//#region \0dshx-css-module:McpAppFrame.module.css.mjs
|
|
1079
|
+
// \0dshx-css-module:/home/runner/work/dsh-better-display/dsh-better-display/src/client/McpAppFrame.module.css.mjs
|
|
1088
1080
|
const css$7 = ".tyd90a_card{border:1px solid var(--dsw-alias-border-l2,#00000014);background:var(--dsw-alias-bg-module-platform,transparent);border-radius:14px;margin:16px 0;transition:border-color .2s cubic-bezier(.22,1,.36,1),box-shadow .2s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}.tyd90a_card:hover{border-color:var(--dsw-alias-border-l1,#00000029);box-shadow:0 2px 10px -2px #0000000a}.tyd90a_header{border-bottom:1px solid var(--dsw-alias-border-l2,#0000000f);background:var(--dsw-alias-interactive-bg-hover,#00000004);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;height:36px;padding:0 14px;display:flex}.tyd90a_titleArea{align-items:center;gap:7px;min-width:0;display:flex}.tyd90a_icon{color:var(--dsw-alias-label-tertiary,#94a3b8);flex-shrink:0;justify-content:center;align-items:center;display:flex}.tyd90a_title{color:var(--dsw-alias-label-secondary,#64748b);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.tyd90a_actions{align-items:center;gap:4px;display:flex}.tyd90a_iconBtn{width:24px;height:24px;color:var(--dsw-alias-label-tertiary,#94a3b8);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:all .15s;display:inline-flex}.tyd90a_iconBtn:hover{background:var(--dsw-alias-interactive-bg-hover,#0000000f);color:var(--dsw-alias-label-primary,#0f172a)}.tyd90a_iconBtn:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary,#2563eb);outline-offset:1px}.tyd90a_iframeWrapper{background:0 0;width:100%;transition:height .25s cubic-bezier(.22,1,.36,1);position:relative}.tyd90a_iframe{background:0 0;border:none;width:100%;height:100%;display:block}.tyd90a_receipt{background:var(--dsw-alias-interactive-bg-hover,#22c55e0d);border-top:1px solid var(--dsw-alias-border-l2,#0000000f);color:var(--dsw-alias-label-primary,#0f172a);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;padding:8px 14px;font-size:12px;line-height:18px;animation:.2s cubic-bezier(.22,1,.36,1) tyd90a_slideUp;display:flex}.tyd90a_receiptPrompt{color:var(--dsw-alias-label-secondary,#64748b);background:var(--dsw-alias-bg-base,#00000008);border:1px solid var(--dsw-alias-border-l2,#0000000f);-webkit-user-select:text;user-select:text;cursor:text;overflow-wrap:anywhere;border-radius:6px;flex:100%;padding:6px 10px;font-size:12px;line-height:18px}@keyframes tyd90a_slideUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.tyd90a_receiptSummary{color:var(--dsw-alias-state-business-primary,#16a34a);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-weight:500;display:flex;overflow:hidden}.tyd90a_receiptHint{align-items:center;gap:6px;display:flex}.tyd90a_sendKbd{color:var(--dsw-alias-label-tertiary,#94a3b8);background:var(--dsw-alias-bg-base,#0000000a);border:1px solid var(--dsw-alias-border-l2,#00000014);cursor:pointer;border-radius:5px;align-items:center;gap:4px;padding:2px 8px;font-family:inherit;font-size:11px;transition:all .15s;display:inline-flex}.tyd90a_sendKbd:hover{background:var(--dsw-alias-interactive-bg-hover,#00000014);color:var(--dsw-alias-label-primary,#0f172a)}.tyd90a_sendKbd:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary,#2563eb);outline-offset:1px}.tyd90a_streamingPlaceholder{border:1px dashed var(--dsw-alias-border-l2,#0000001f);background:var(--dsw-alias-interactive-bg-hover,#00000004);color:var(--dsw-alias-label-secondary,#64748b);border-radius:14px;align-items:center;gap:10px;margin:16px 0;padding:16px 18px;font-size:13px;display:flex}.tyd90a_pulseDot{background:var(--dsw-alias-state-business-primary,#2563eb);border-radius:50%;width:7px;height:7px;animation:1.5s ease-in-out infinite tyd90a_pulse}@keyframes tyd90a_pulse{0%,to{opacity:.35;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}";
|
|
1089
1081
|
const tagId$7 = "dsh-better-display/McpAppFrame.module.css";
|
|
1090
1082
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$7) + "]") === null) {
|
|
@@ -1114,8 +1106,7 @@ ${trimmed}
|
|
|
1114
1106
|
"title": "tyd90a_title",
|
|
1115
1107
|
"titleArea": "tyd90a_titleArea"
|
|
1116
1108
|
};
|
|
1117
|
-
|
|
1118
|
-
//#region src/client/McpAppFrame.tsx
|
|
1109
|
+
// src/client/McpAppFrame.tsx
|
|
1119
1110
|
const ComposerFillContext = (0, react.createContext)(void 0);
|
|
1120
1111
|
function useComposerFill() {
|
|
1121
1112
|
return (0, react.useContext)(ComposerFillContext);
|
|
@@ -1402,8 +1393,7 @@ ${trimmed}
|
|
|
1402
1393
|
] })]
|
|
1403
1394
|
});
|
|
1404
1395
|
}
|
|
1405
|
-
|
|
1406
|
-
//#region src/client/message-chrome.ts
|
|
1396
|
+
// src/client/message-chrome.ts
|
|
1407
1397
|
/** Local clock and run-duration labels for reader message chrome. */
|
|
1408
1398
|
function pad2(n) {
|
|
1409
1399
|
return String(n).padStart(2, "0");
|
|
@@ -1439,8 +1429,7 @@ ${trimmed}
|
|
|
1439
1429
|
if (d.getFullYear() === n.getFullYear()) return `${d.getMonth() + 1}月${d.getDate()}日 ${clock}`;
|
|
1440
1430
|
return `${d.getFullYear()}年${d.getMonth() + 1}月${d.getDate()}日 ${clock}`;
|
|
1441
1431
|
}
|
|
1442
|
-
|
|
1443
|
-
//#region src/client/primitive-labels.ts
|
|
1432
|
+
// src/client/primitive-labels.ts
|
|
1444
1433
|
const markdownLabels = {
|
|
1445
1434
|
code: {
|
|
1446
1435
|
copyLabel: "复制",
|
|
@@ -1461,6 +1450,7 @@ ${trimmed}
|
|
|
1461
1450
|
expand: (hidden) => `展开其余 ${hidden} 行`
|
|
1462
1451
|
};
|
|
1463
1452
|
const terminalBlockLabels = {
|
|
1453
|
+
commandLine: (line) => `命令第 ${line} 行`,
|
|
1464
1454
|
signal: (signal) => `信号 ${signal}`,
|
|
1465
1455
|
exitCode: (code) => `退出码 ${code}`,
|
|
1466
1456
|
noExitCode: "无退出码",
|
|
@@ -1517,8 +1507,7 @@ ${trimmed}
|
|
|
1517
1507
|
copyButtonTitle: (action) => action
|
|
1518
1508
|
};
|
|
1519
1509
|
const truncatedJsonLabel = (total) => `内容过长,已截断(共 ${total} 个字符)`;
|
|
1520
|
-
|
|
1521
|
-
//#region src/client/stream-buffer.ts
|
|
1510
|
+
// src/client/stream-buffer.ts
|
|
1522
1511
|
/** Presentation only. The original session string remains the source of truth. */
|
|
1523
1512
|
const STREAM_TIMING = {
|
|
1524
1513
|
catchUpMs: 520,
|
|
@@ -1647,8 +1636,7 @@ ${trimmed}
|
|
|
1647
1636
|
return end !== before;
|
|
1648
1637
|
}
|
|
1649
1638
|
};
|
|
1650
|
-
|
|
1651
|
-
//#region src/client/word-timeline.ts
|
|
1639
|
+
// src/client/word-timeline.ts
|
|
1652
1640
|
/** Motion parameters from the public transitions.dev streaming-text recipe. */
|
|
1653
1641
|
const WORD_MOTION = {
|
|
1654
1642
|
duration: 350,
|
|
@@ -1749,8 +1737,7 @@ ${trimmed}
|
|
|
1749
1737
|
}));
|
|
1750
1738
|
}
|
|
1751
1739
|
};
|
|
1752
|
-
|
|
1753
|
-
//#region src/client/streaming.tsx
|
|
1740
|
+
// src/client/streaming.tsx
|
|
1754
1741
|
const StreamMotionContext = (0, react.createContext)({
|
|
1755
1742
|
enabled: false,
|
|
1756
1743
|
activatedAt: 0
|
|
@@ -1847,8 +1834,7 @@ ${trimmed}
|
|
|
1847
1834
|
reveal: enabled && !options.interrupted && !options.selected
|
|
1848
1835
|
};
|
|
1849
1836
|
}
|
|
1850
|
-
|
|
1851
|
-
//#region src/client/markdown/incremental.ts
|
|
1837
|
+
// src/client/markdown/incremental.ts
|
|
1852
1838
|
/**
|
|
1853
1839
|
* Trailing blocks kept unstable. Appended text reshapes at most the last
|
|
1854
1840
|
* block; the second-to-last is retained as safety margin so a freeze decision
|
|
@@ -1924,8 +1910,7 @@ ${trimmed}
|
|
|
1924
1910
|
return this.cached;
|
|
1925
1911
|
}
|
|
1926
1912
|
};
|
|
1927
|
-
|
|
1928
|
-
//#region node_modules/mdast-util-to-string/lib/index.js
|
|
1913
|
+
// node_modules/mdast-util-to-string/lib/index.js
|
|
1929
1914
|
/**
|
|
1930
1915
|
* @typedef {import('mdast').Nodes} Nodes
|
|
1931
1916
|
*
|
|
@@ -2006,8 +1991,7 @@ ${trimmed}
|
|
|
2006
1991
|
function node(value) {
|
|
2007
1992
|
return Boolean(value && typeof value === "object");
|
|
2008
1993
|
}
|
|
2009
|
-
|
|
2010
|
-
//#region node_modules/decode-named-character-reference/index.dom.js
|
|
1994
|
+
// node_modules/decode-named-character-reference/index.dom.js
|
|
2011
1995
|
const element = document.createElement("i");
|
|
2012
1996
|
/**
|
|
2013
1997
|
* @param {string} value
|
|
@@ -2020,8 +2004,7 @@ ${trimmed}
|
|
|
2020
2004
|
if (character.charCodeAt(character.length - 1) === 59 && value !== "semi") return false;
|
|
2021
2005
|
return character === characterReference ? false : character;
|
|
2022
2006
|
}
|
|
2023
|
-
|
|
2024
|
-
//#region node_modules/micromark-util-chunked/index.js
|
|
2007
|
+
// node_modules/micromark-util-chunked/index.js
|
|
2025
2008
|
/**
|
|
2026
2009
|
* Like `Array#splice`, but smarter for giant arrays.
|
|
2027
2010
|
*
|
|
@@ -2090,8 +2073,7 @@ ${trimmed}
|
|
|
2090
2073
|
}
|
|
2091
2074
|
return items;
|
|
2092
2075
|
}
|
|
2093
|
-
|
|
2094
|
-
//#region node_modules/micromark-util-combine-extensions/index.js
|
|
2076
|
+
// node_modules/micromark-util-combine-extensions/index.js
|
|
2095
2077
|
/**
|
|
2096
2078
|
* @import {
|
|
2097
2079
|
* Extension,
|
|
@@ -2161,8 +2143,7 @@ ${trimmed}
|
|
|
2161
2143
|
while (++index < list.length) (list[index].add === "after" ? existing : before).push(list[index]);
|
|
2162
2144
|
splice(existing, 0, 0, before);
|
|
2163
2145
|
}
|
|
2164
|
-
|
|
2165
|
-
//#region node_modules/micromark-util-decode-numeric-character-reference/index.js
|
|
2146
|
+
// node_modules/micromark-util-decode-numeric-character-reference/index.js
|
|
2166
2147
|
/**
|
|
2167
2148
|
* Turn the number (in string form as either hexa- or plain decimal) coming from
|
|
2168
2149
|
* a numeric character reference into a character.
|
|
@@ -2182,8 +2163,7 @@ ${trimmed}
|
|
|
2182
2163
|
if (code < 9 || code === 11 || code > 13 && code < 32 || code > 126 && code < 160 || code > 55295 && code < 57344 || code > 64975 && code < 65008 || (code & 65535) === 65535 || (code & 65535) === 65534 || code > 1114111) return "�";
|
|
2183
2164
|
return String.fromCodePoint(code);
|
|
2184
2165
|
}
|
|
2185
|
-
|
|
2186
|
-
//#region node_modules/micromark-util-normalize-identifier/index.js
|
|
2166
|
+
// node_modules/micromark-util-normalize-identifier/index.js
|
|
2187
2167
|
/**
|
|
2188
2168
|
* Normalize an identifier (as found in references, definitions).
|
|
2189
2169
|
*
|
|
@@ -2206,8 +2186,7 @@ ${trimmed}
|
|
|
2206
2186
|
function normalizeIdentifier(value) {
|
|
2207
2187
|
return value.replace(/[\t\n\r ]+/g, " ").replace(/^ | $/g, "").toLowerCase().toUpperCase();
|
|
2208
2188
|
}
|
|
2209
|
-
|
|
2210
|
-
//#region node_modules/micromark-util-character/index.js
|
|
2189
|
+
// node_modules/micromark-util-character/index.js
|
|
2211
2190
|
/**
|
|
2212
2191
|
* @import {Code} from 'micromark-util-types'
|
|
2213
2192
|
*/
|
|
@@ -2434,8 +2413,7 @@ ${trimmed}
|
|
|
2434
2413
|
return code !== null && code > -1 && regex.test(String.fromCharCode(code));
|
|
2435
2414
|
}
|
|
2436
2415
|
}
|
|
2437
|
-
|
|
2438
|
-
//#region node_modules/micromark-util-sanitize-uri/index.js
|
|
2416
|
+
// node_modules/micromark-util-sanitize-uri/index.js
|
|
2439
2417
|
/**
|
|
2440
2418
|
* Normalize a URL.
|
|
2441
2419
|
*
|
|
@@ -2479,8 +2457,7 @@ ${trimmed}
|
|
|
2479
2457
|
}
|
|
2480
2458
|
return result.join("") + value.slice(start);
|
|
2481
2459
|
}
|
|
2482
|
-
|
|
2483
|
-
//#region node_modules/micromark-factory-space/index.js
|
|
2460
|
+
// node_modules/micromark-factory-space/index.js
|
|
2484
2461
|
/**
|
|
2485
2462
|
* @import {Effects, State, TokenType} from 'micromark-util-types'
|
|
2486
2463
|
*/
|
|
@@ -2586,8 +2563,7 @@ ${trimmed}
|
|
|
2586
2563
|
return size >= min ? ok(code) : nok(code);
|
|
2587
2564
|
}
|
|
2588
2565
|
}
|
|
2589
|
-
|
|
2590
|
-
//#region node_modules/micromark/lib/initialize/content.js
|
|
2566
|
+
// node_modules/micromark/lib/initialize/content.js
|
|
2591
2567
|
/**
|
|
2592
2568
|
* @import {
|
|
2593
2569
|
* InitialConstruct,
|
|
@@ -2653,8 +2629,7 @@ ${trimmed}
|
|
|
2653
2629
|
return data;
|
|
2654
2630
|
}
|
|
2655
2631
|
}
|
|
2656
|
-
|
|
2657
|
-
//#region node_modules/micromark-util-edit-map/index.js
|
|
2632
|
+
// node_modules/micromark-util-edit-map/index.js
|
|
2658
2633
|
/**
|
|
2659
2634
|
* @import {Event} from 'micromark-util-types'
|
|
2660
2635
|
*/
|
|
@@ -2799,8 +2774,7 @@ ${trimmed}
|
|
|
2799
2774
|
editMap.map.push(change);
|
|
2800
2775
|
editMap.index.set(at, change);
|
|
2801
2776
|
}
|
|
2802
|
-
|
|
2803
|
-
//#region node_modules/micromark/lib/initialize/document.js
|
|
2777
|
+
// node_modules/micromark/lib/initialize/document.js
|
|
2804
2778
|
/**
|
|
2805
2779
|
* @import {
|
|
2806
2780
|
* Construct,
|
|
@@ -3019,8 +2993,7 @@ ${trimmed}
|
|
|
3019
2993
|
function tokenizeContainer(effects, ok, nok) {
|
|
3020
2994
|
return factorySpace(effects, effects.attempt(this.parser.constructs.document, ok, nok), "linePrefix", this.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4);
|
|
3021
2995
|
}
|
|
3022
|
-
|
|
3023
|
-
//#region node_modules/micromark-util-classify-character/index.js
|
|
2996
|
+
// node_modules/micromark-util-classify-character/index.js
|
|
3024
2997
|
/**
|
|
3025
2998
|
* @import {Code} from 'micromark-util-types'
|
|
3026
2999
|
*/
|
|
@@ -3042,8 +3015,7 @@ ${trimmed}
|
|
|
3042
3015
|
if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) return 1;
|
|
3043
3016
|
if (unicodePunctuation(code)) return 2;
|
|
3044
3017
|
}
|
|
3045
|
-
|
|
3046
|
-
//#region node_modules/micromark-util-resolve-all/index.js
|
|
3018
|
+
// node_modules/micromark-util-resolve-all/index.js
|
|
3047
3019
|
/**
|
|
3048
3020
|
* @import {Event, Resolver, TokenizeContext} from 'micromark-util-types'
|
|
3049
3021
|
*/
|
|
@@ -3072,8 +3044,7 @@ ${trimmed}
|
|
|
3072
3044
|
}
|
|
3073
3045
|
return events;
|
|
3074
3046
|
}
|
|
3075
|
-
|
|
3076
|
-
//#region node_modules/micromark-core-commonmark/lib/attention.js
|
|
3047
|
+
// node_modules/micromark-core-commonmark/lib/attention.js
|
|
3077
3048
|
/**
|
|
3078
3049
|
* @import {
|
|
3079
3050
|
* Code,
|
|
@@ -3280,8 +3251,7 @@ ${trimmed}
|
|
|
3280
3251
|
point.offset += offset;
|
|
3281
3252
|
point._bufferIndex += offset;
|
|
3282
3253
|
}
|
|
3283
|
-
|
|
3284
|
-
//#region node_modules/micromark-core-commonmark/lib/autolink.js
|
|
3254
|
+
// node_modules/micromark-core-commonmark/lib/autolink.js
|
|
3285
3255
|
/**
|
|
3286
3256
|
* @import {
|
|
3287
3257
|
* Construct,
|
|
@@ -3491,8 +3461,7 @@ ${trimmed}
|
|
|
3491
3461
|
return nok(code);
|
|
3492
3462
|
}
|
|
3493
3463
|
}
|
|
3494
|
-
|
|
3495
|
-
//#region node_modules/micromark-core-commonmark/lib/blank-line.js
|
|
3464
|
+
// node_modules/micromark-core-commonmark/lib/blank-line.js
|
|
3496
3465
|
/**
|
|
3497
3466
|
* @import {
|
|
3498
3467
|
* Construct,
|
|
@@ -3548,8 +3517,7 @@ ${trimmed}
|
|
|
3548
3517
|
return code === null || markdownLineEnding(code) ? ok(code) : nok(code);
|
|
3549
3518
|
}
|
|
3550
3519
|
}
|
|
3551
|
-
|
|
3552
|
-
//#region node_modules/micromark-core-commonmark/lib/block-quote.js
|
|
3520
|
+
// node_modules/micromark-core-commonmark/lib/block-quote.js
|
|
3553
3521
|
/**
|
|
3554
3522
|
* @import {
|
|
3555
3523
|
* Construct,
|
|
@@ -3675,8 +3643,7 @@ ${trimmed}
|
|
|
3675
3643
|
function exit$1(effects) {
|
|
3676
3644
|
effects.exit("blockQuote");
|
|
3677
3645
|
}
|
|
3678
|
-
|
|
3679
|
-
//#region node_modules/micromark-core-commonmark/lib/character-escape.js
|
|
3646
|
+
// node_modules/micromark-core-commonmark/lib/character-escape.js
|
|
3680
3647
|
/**
|
|
3681
3648
|
* @import {
|
|
3682
3649
|
* Construct,
|
|
@@ -3735,8 +3702,7 @@ ${trimmed}
|
|
|
3735
3702
|
return nok(code);
|
|
3736
3703
|
}
|
|
3737
3704
|
}
|
|
3738
|
-
|
|
3739
|
-
//#region node_modules/micromark-core-commonmark/lib/character-reference.js
|
|
3705
|
+
// node_modules/micromark-core-commonmark/lib/character-reference.js
|
|
3740
3706
|
/**
|
|
3741
3707
|
* @import {
|
|
3742
3708
|
* Code,
|
|
@@ -3873,8 +3839,7 @@ ${trimmed}
|
|
|
3873
3839
|
return nok(code);
|
|
3874
3840
|
}
|
|
3875
3841
|
}
|
|
3876
|
-
|
|
3877
|
-
//#region node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.js
|
|
3842
|
+
// node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.js
|
|
3878
3843
|
/** @type {Construct} */
|
|
3879
3844
|
const nonLazyContinuation$2 = {
|
|
3880
3845
|
partial: true,
|
|
@@ -3921,8 +3886,7 @@ ${trimmed}
|
|
|
3921
3886
|
return self.parser.lazy[self.now().line] ? nok(code) : ok(code);
|
|
3922
3887
|
}
|
|
3923
3888
|
}
|
|
3924
|
-
|
|
3925
|
-
//#region node_modules/micromark-core-commonmark/lib/code-fenced.js
|
|
3889
|
+
// node_modules/micromark-core-commonmark/lib/code-fenced.js
|
|
3926
3890
|
/**
|
|
3927
3891
|
* @import {
|
|
3928
3892
|
* Code,
|
|
@@ -4302,8 +4266,7 @@ ${trimmed}
|
|
|
4302
4266
|
}
|
|
4303
4267
|
}
|
|
4304
4268
|
}
|
|
4305
|
-
|
|
4306
|
-
//#region node_modules/micromark-core-commonmark/lib/code-indented.js
|
|
4269
|
+
// node_modules/micromark-core-commonmark/lib/code-indented.js
|
|
4307
4270
|
/**
|
|
4308
4271
|
* @import {
|
|
4309
4272
|
* Construct,
|
|
@@ -4434,8 +4397,7 @@ ${trimmed}
|
|
|
4434
4397
|
return markdownLineEnding(code) ? furtherStart(code) : nok(code);
|
|
4435
4398
|
}
|
|
4436
4399
|
}
|
|
4437
|
-
|
|
4438
|
-
//#region node_modules/micromark-core-commonmark/lib/code-text.js
|
|
4400
|
+
// node_modules/micromark-core-commonmark/lib/code-text.js
|
|
4439
4401
|
/**
|
|
4440
4402
|
* @import {
|
|
4441
4403
|
* Construct,
|
|
@@ -4619,8 +4581,7 @@ ${trimmed}
|
|
|
4619
4581
|
return data(code);
|
|
4620
4582
|
}
|
|
4621
4583
|
}
|
|
4622
|
-
|
|
4623
|
-
//#region node_modules/micromark-util-subtokenize/lib/splice-buffer.js
|
|
4584
|
+
// node_modules/micromark-util-subtokenize/lib/splice-buffer.js
|
|
4624
4585
|
/**
|
|
4625
4586
|
* Some of the internal operations of micromark do lots of editing
|
|
4626
4587
|
* operations on very large arrays. This runs into problems with two
|
|
@@ -4849,8 +4810,7 @@ ${trimmed}
|
|
|
4849
4810
|
chunkStart += 1e4;
|
|
4850
4811
|
}
|
|
4851
4812
|
}
|
|
4852
|
-
|
|
4853
|
-
//#region node_modules/micromark-util-subtokenize/index.js
|
|
4813
|
+
// node_modules/micromark-util-subtokenize/index.js
|
|
4854
4814
|
/**
|
|
4855
4815
|
* @import {Chunk, Event, Token} from 'micromark-util-types'
|
|
4856
4816
|
*/
|
|
@@ -5004,8 +4964,7 @@ ${trimmed}
|
|
|
5004
4964
|
}
|
|
5005
4965
|
return gaps;
|
|
5006
4966
|
}
|
|
5007
|
-
|
|
5008
|
-
//#region node_modules/micromark-core-commonmark/lib/content.js
|
|
4967
|
+
// node_modules/micromark-core-commonmark/lib/content.js
|
|
5009
4968
|
/**
|
|
5010
4969
|
* @import {
|
|
5011
4970
|
* Construct,
|
|
@@ -5137,8 +5096,7 @@ ${trimmed}
|
|
|
5137
5096
|
return effects.interrupt(self.parser.constructs.flow, nok, ok)(code);
|
|
5138
5097
|
}
|
|
5139
5098
|
}
|
|
5140
|
-
|
|
5141
|
-
//#region node_modules/micromark-factory-destination/index.js
|
|
5099
|
+
// node_modules/micromark-factory-destination/index.js
|
|
5142
5100
|
/**
|
|
5143
5101
|
* @import {Effects, State, TokenType} from 'micromark-util-types'
|
|
5144
5102
|
*/
|
|
@@ -5321,8 +5279,7 @@ ${trimmed}
|
|
|
5321
5279
|
return raw(code);
|
|
5322
5280
|
}
|
|
5323
5281
|
}
|
|
5324
|
-
|
|
5325
|
-
//#region node_modules/micromark-factory-label/index.js
|
|
5282
|
+
// node_modules/micromark-factory-label/index.js
|
|
5326
5283
|
/**
|
|
5327
5284
|
* @import {
|
|
5328
5285
|
* Effects,
|
|
@@ -5455,8 +5412,7 @@ ${trimmed}
|
|
|
5455
5412
|
return labelInside(code);
|
|
5456
5413
|
}
|
|
5457
5414
|
}
|
|
5458
|
-
|
|
5459
|
-
//#region node_modules/micromark-factory-title/index.js
|
|
5415
|
+
// node_modules/micromark-factory-title/index.js
|
|
5460
5416
|
/**
|
|
5461
5417
|
* @import {
|
|
5462
5418
|
* Code,
|
|
@@ -5600,8 +5556,7 @@ ${trimmed}
|
|
|
5600
5556
|
return inside(code);
|
|
5601
5557
|
}
|
|
5602
5558
|
}
|
|
5603
|
-
|
|
5604
|
-
//#region node_modules/micromark-factory-whitespace/index.js
|
|
5559
|
+
// node_modules/micromark-factory-whitespace/index.js
|
|
5605
5560
|
/**
|
|
5606
5561
|
* @import {Effects, State} from 'micromark-util-types'
|
|
5607
5562
|
*/
|
|
@@ -5640,8 +5595,7 @@ ${trimmed}
|
|
|
5640
5595
|
return ok(code);
|
|
5641
5596
|
}
|
|
5642
5597
|
}
|
|
5643
|
-
|
|
5644
|
-
//#region node_modules/micromark-core-commonmark/lib/definition.js
|
|
5598
|
+
// node_modules/micromark-core-commonmark/lib/definition.js
|
|
5645
5599
|
/**
|
|
5646
5600
|
* @import {
|
|
5647
5601
|
* Construct,
|
|
@@ -5855,8 +5809,7 @@ ${trimmed}
|
|
|
5855
5809
|
return code === null || markdownLineEnding(code) ? ok(code) : nok(code);
|
|
5856
5810
|
}
|
|
5857
5811
|
}
|
|
5858
|
-
|
|
5859
|
-
//#region node_modules/micromark-core-commonmark/lib/hard-break-escape.js
|
|
5812
|
+
// node_modules/micromark-core-commonmark/lib/hard-break-escape.js
|
|
5860
5813
|
/**
|
|
5861
5814
|
* @import {
|
|
5862
5815
|
* Construct,
|
|
@@ -5912,8 +5865,7 @@ ${trimmed}
|
|
|
5912
5865
|
return nok(code);
|
|
5913
5866
|
}
|
|
5914
5867
|
}
|
|
5915
|
-
|
|
5916
|
-
//#region node_modules/micromark-core-commonmark/lib/heading-atx.js
|
|
5868
|
+
// node_modules/micromark-core-commonmark/lib/heading-atx.js
|
|
5917
5869
|
/**
|
|
5918
5870
|
* @import {
|
|
5919
5871
|
* Construct,
|
|
@@ -6093,8 +6045,7 @@ ${trimmed}
|
|
|
6093
6045
|
return data;
|
|
6094
6046
|
}
|
|
6095
6047
|
}
|
|
6096
|
-
|
|
6097
|
-
//#region node_modules/micromark-util-html-tag-name/index.js
|
|
6048
|
+
// node_modules/micromark-util-html-tag-name/index.js
|
|
6098
6049
|
/**
|
|
6099
6050
|
* List of lowercase HTML “block” tag names.
|
|
6100
6051
|
*
|
|
@@ -6192,8 +6143,7 @@ ${trimmed}
|
|
|
6192
6143
|
"style",
|
|
6193
6144
|
"textarea"
|
|
6194
6145
|
];
|
|
6195
|
-
|
|
6196
|
-
//#region node_modules/micromark-core-commonmark/lib/html-flow.js
|
|
6146
|
+
// node_modules/micromark-core-commonmark/lib/html-flow.js
|
|
6197
6147
|
/**
|
|
6198
6148
|
* @import {
|
|
6199
6149
|
* Code,
|
|
@@ -6918,8 +6868,7 @@ ${trimmed}
|
|
|
6918
6868
|
return effects.attempt(blankLine, ok, nok);
|
|
6919
6869
|
}
|
|
6920
6870
|
}
|
|
6921
|
-
|
|
6922
|
-
//#region node_modules/micromark-core-commonmark/lib/html-text.js
|
|
6871
|
+
// node_modules/micromark-core-commonmark/lib/html-text.js
|
|
6923
6872
|
/**
|
|
6924
6873
|
* @import {
|
|
6925
6874
|
* Code,
|
|
@@ -7532,8 +7481,7 @@ ${trimmed}
|
|
|
7532
7481
|
return returnState(code);
|
|
7533
7482
|
}
|
|
7534
7483
|
}
|
|
7535
|
-
|
|
7536
|
-
//#region node_modules/micromark-core-commonmark/lib/label-end.js
|
|
7484
|
+
// node_modules/micromark-core-commonmark/lib/label-end.js
|
|
7537
7485
|
/**
|
|
7538
7486
|
* @import {
|
|
7539
7487
|
* Construct,
|
|
@@ -8001,8 +7949,7 @@ ${trimmed}
|
|
|
8001
7949
|
return nok(code);
|
|
8002
7950
|
}
|
|
8003
7951
|
}
|
|
8004
|
-
|
|
8005
|
-
//#region node_modules/micromark-core-commonmark/lib/label-start-image.js
|
|
7952
|
+
// node_modules/micromark-core-commonmark/lib/label-start-image.js
|
|
8006
7953
|
/**
|
|
8007
7954
|
* @import {
|
|
8008
7955
|
* Construct,
|
|
@@ -8100,8 +8047,7 @@ ${trimmed}
|
|
|
8100
8047
|
return ok(code);
|
|
8101
8048
|
}
|
|
8102
8049
|
}
|
|
8103
|
-
|
|
8104
|
-
//#region node_modules/micromark-core-commonmark/lib/label-start-link.js
|
|
8050
|
+
// node_modules/micromark-core-commonmark/lib/label-start-link.js
|
|
8105
8051
|
/**
|
|
8106
8052
|
* @import {
|
|
8107
8053
|
* Construct,
|
|
@@ -8154,8 +8100,7 @@ ${trimmed}
|
|
|
8154
8100
|
return ok(code);
|
|
8155
8101
|
}
|
|
8156
8102
|
}
|
|
8157
|
-
|
|
8158
|
-
//#region node_modules/micromark-core-commonmark/lib/line-ending.js
|
|
8103
|
+
// node_modules/micromark-core-commonmark/lib/line-ending.js
|
|
8159
8104
|
/**
|
|
8160
8105
|
* @import {
|
|
8161
8106
|
* Construct,
|
|
@@ -8184,8 +8129,7 @@ ${trimmed}
|
|
|
8184
8129
|
return factorySpace(effects, ok, "linePrefix");
|
|
8185
8130
|
}
|
|
8186
8131
|
}
|
|
8187
|
-
|
|
8188
|
-
//#region node_modules/micromark-core-commonmark/lib/thematic-break.js
|
|
8132
|
+
// node_modules/micromark-core-commonmark/lib/thematic-break.js
|
|
8189
8133
|
/**
|
|
8190
8134
|
* @import {
|
|
8191
8135
|
* Code,
|
|
@@ -8279,8 +8223,7 @@ ${trimmed}
|
|
|
8279
8223
|
return markdownSpace(code) ? factorySpace(effects, atBreak, "whitespace")(code) : atBreak(code);
|
|
8280
8224
|
}
|
|
8281
8225
|
}
|
|
8282
|
-
|
|
8283
|
-
//#region node_modules/micromark-core-commonmark/lib/list.js
|
|
8226
|
+
// node_modules/micromark-core-commonmark/lib/list.js
|
|
8284
8227
|
/**
|
|
8285
8228
|
* @import {
|
|
8286
8229
|
* Code,
|
|
@@ -8451,8 +8394,7 @@ ${trimmed}
|
|
|
8451
8394
|
return !markdownSpace(code) && tail && tail[1].type === "listItemPrefixWhitespace" ? ok(code) : nok(code);
|
|
8452
8395
|
}
|
|
8453
8396
|
}
|
|
8454
|
-
|
|
8455
|
-
//#region node_modules/micromark-core-commonmark/lib/setext-underline.js
|
|
8397
|
+
// node_modules/micromark-core-commonmark/lib/setext-underline.js
|
|
8456
8398
|
/**
|
|
8457
8399
|
* @import {
|
|
8458
8400
|
* Code,
|
|
@@ -8605,8 +8547,7 @@ ${trimmed}
|
|
|
8605
8547
|
return nok(code);
|
|
8606
8548
|
}
|
|
8607
8549
|
}
|
|
8608
|
-
|
|
8609
|
-
//#region node_modules/micromark/lib/initialize/flow.js
|
|
8550
|
+
// node_modules/micromark/lib/initialize/flow.js
|
|
8610
8551
|
/**
|
|
8611
8552
|
* @import {
|
|
8612
8553
|
* InitialConstruct,
|
|
@@ -8652,8 +8593,7 @@ ${trimmed}
|
|
|
8652
8593
|
return initial;
|
|
8653
8594
|
}
|
|
8654
8595
|
}
|
|
8655
|
-
|
|
8656
|
-
//#region node_modules/micromark/lib/initialize/text.js
|
|
8596
|
+
// node_modules/micromark/lib/initialize/text.js
|
|
8657
8597
|
/**
|
|
8658
8598
|
* @import {
|
|
8659
8599
|
* Code,
|
|
@@ -8828,8 +8768,7 @@ ${trimmed}
|
|
|
8828
8768
|
editMap.consume(events);
|
|
8829
8769
|
return events;
|
|
8830
8770
|
}
|
|
8831
|
-
|
|
8832
|
-
//#region node_modules/micromark/lib/constructs.js
|
|
8771
|
+
// node_modules/micromark/lib/constructs.js
|
|
8833
8772
|
/**
|
|
8834
8773
|
* @import {Extension} from 'micromark-util-types'
|
|
8835
8774
|
*/
|
|
@@ -8906,8 +8845,7 @@ ${trimmed}
|
|
|
8906
8845
|
const attentionMarkers = { null: [42, 95] };
|
|
8907
8846
|
/** @satisfies {Extension['disable']} */
|
|
8908
8847
|
const disable = { null: [] };
|
|
8909
|
-
|
|
8910
|
-
//#region node_modules/micromark/lib/create-tokenizer.js
|
|
8848
|
+
// node_modules/micromark/lib/create-tokenizer.js
|
|
8911
8849
|
/**
|
|
8912
8850
|
* @import {
|
|
8913
8851
|
* Chunk,
|
|
@@ -9373,8 +9311,7 @@ ${trimmed}
|
|
|
9373
9311
|
}
|
|
9374
9312
|
return result.join("");
|
|
9375
9313
|
}
|
|
9376
|
-
|
|
9377
|
-
//#region node_modules/micromark/lib/parse.js
|
|
9314
|
+
// node_modules/micromark/lib/parse.js
|
|
9378
9315
|
/**
|
|
9379
9316
|
* @import {
|
|
9380
9317
|
* Create,
|
|
@@ -9417,8 +9354,7 @@ ${trimmed}
|
|
|
9417
9354
|
}
|
|
9418
9355
|
}
|
|
9419
9356
|
}
|
|
9420
|
-
|
|
9421
|
-
//#region node_modules/micromark/lib/postprocess.js
|
|
9357
|
+
// node_modules/micromark/lib/postprocess.js
|
|
9422
9358
|
/**
|
|
9423
9359
|
* @import {Event} from 'micromark-util-types'
|
|
9424
9360
|
*/
|
|
@@ -9432,8 +9368,7 @@ ${trimmed}
|
|
|
9432
9368
|
while (!subtokenize(events));
|
|
9433
9369
|
return events;
|
|
9434
9370
|
}
|
|
9435
|
-
|
|
9436
|
-
//#region node_modules/micromark/lib/preprocess.js
|
|
9371
|
+
// node_modules/micromark/lib/preprocess.js
|
|
9437
9372
|
/**
|
|
9438
9373
|
* @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'
|
|
9439
9374
|
*/
|
|
@@ -9524,8 +9459,7 @@ ${trimmed}
|
|
|
9524
9459
|
return chunks;
|
|
9525
9460
|
}
|
|
9526
9461
|
}
|
|
9527
|
-
|
|
9528
|
-
//#region node_modules/micromark-util-decode-string/index.js
|
|
9462
|
+
// node_modules/micromark-util-decode-string/index.js
|
|
9529
9463
|
const characterEscapeOrReference = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;
|
|
9530
9464
|
/**
|
|
9531
9465
|
* Decode markdown strings (which occur in places such as fenced code info
|
|
@@ -9561,8 +9495,7 @@ ${trimmed}
|
|
|
9561
9495
|
}
|
|
9562
9496
|
return decodeNamedCharacterReference($2) || $0;
|
|
9563
9497
|
}
|
|
9564
|
-
|
|
9565
|
-
//#region node_modules/unist-util-stringify-position/lib/index.js
|
|
9498
|
+
// node_modules/unist-util-stringify-position/lib/index.js
|
|
9566
9499
|
/**
|
|
9567
9500
|
* @typedef {import('unist').Node} Node
|
|
9568
9501
|
* @typedef {import('unist').Point} Point
|
|
@@ -9625,8 +9558,7 @@ ${trimmed}
|
|
|
9625
9558
|
function index(value) {
|
|
9626
9559
|
return value && typeof value === "number" ? value : 1;
|
|
9627
9560
|
}
|
|
9628
|
-
|
|
9629
|
-
//#region node_modules/mdast-util-from-markdown/lib/index.js
|
|
9561
|
+
// node_modules/mdast-util-from-markdown/lib/index.js
|
|
9630
9562
|
/**
|
|
9631
9563
|
* @import {
|
|
9632
9564
|
* Break,
|
|
@@ -10672,8 +10604,7 @@ ${trimmed}
|
|
|
10672
10604
|
end: right.end
|
|
10673
10605
|
}) + ") is still open");
|
|
10674
10606
|
}
|
|
10675
|
-
|
|
10676
|
-
//#region node_modules/ccount/index.js
|
|
10607
|
+
// node_modules/ccount/index.js
|
|
10677
10608
|
/**
|
|
10678
10609
|
* Count how often a character (or substring) is used in a string.
|
|
10679
10610
|
*
|
|
@@ -10695,14 +10626,12 @@ ${trimmed}
|
|
|
10695
10626
|
}
|
|
10696
10627
|
return count;
|
|
10697
10628
|
}
|
|
10698
|
-
|
|
10699
|
-
//#region node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js
|
|
10629
|
+
// node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js
|
|
10700
10630
|
function escapeStringRegexp(string) {
|
|
10701
10631
|
if (typeof string !== "string") throw new TypeError("Expected a string");
|
|
10702
10632
|
return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
|
|
10703
10633
|
}
|
|
10704
|
-
|
|
10705
|
-
//#region node_modules/unist-util-is/lib/index.js
|
|
10634
|
+
// node_modules/unist-util-is/lib/index.js
|
|
10706
10635
|
/**
|
|
10707
10636
|
* Generate an assertion from a test.
|
|
10708
10637
|
*
|
|
@@ -10815,17 +10744,19 @@ ${trimmed}
|
|
|
10815
10744
|
function looksLikeANode(value) {
|
|
10816
10745
|
return value !== null && typeof value === "object" && "type" in value;
|
|
10817
10746
|
}
|
|
10818
|
-
|
|
10819
|
-
//#region node_modules/unist-util-visit-parents/lib/color.node.js
|
|
10747
|
+
// node_modules/unist-util-visit-parents/lib/color.node.js
|
|
10820
10748
|
/**
|
|
10749
|
+
* Color a string.
|
|
10750
|
+
*
|
|
10821
10751
|
* @param {string} d
|
|
10752
|
+
* Value.
|
|
10822
10753
|
* @returns {string}
|
|
10754
|
+
* Colored value.
|
|
10823
10755
|
*/
|
|
10824
10756
|
function color(d) {
|
|
10825
10757
|
return "\x1B[33m" + d + "\x1B[39m";
|
|
10826
10758
|
}
|
|
10827
|
-
|
|
10828
|
-
//#region node_modules/unist-util-visit-parents/lib/index.js
|
|
10759
|
+
// node_modules/unist-util-visit-parents/lib/index.js
|
|
10829
10760
|
/**
|
|
10830
10761
|
* @import {Node as UnistNode, Parent as UnistParent} from 'unist'
|
|
10831
10762
|
*/
|
|
@@ -10983,45 +10914,95 @@ ${trimmed}
|
|
|
10983
10914
|
* List with one or two values, the first an action, the second an index.
|
|
10984
10915
|
*
|
|
10985
10916
|
* @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult
|
|
10986
|
-
* Any value that can be returned from
|
|
10917
|
+
* Any value that can be returned from an enter visitor.
|
|
10918
|
+
*
|
|
10919
|
+
* Like `VisitorResultExit`,
|
|
10920
|
+
* but `SKIP` can also be returned,
|
|
10921
|
+
* to not walk the children of the node,
|
|
10922
|
+
* and `ActionTuple` can be used to combine an action with an index.
|
|
10923
|
+
*
|
|
10924
|
+
* @typedef {Index | boolean | null | undefined | void} VisitorResultExit
|
|
10925
|
+
* Any value that can be returned from an exit visitor.
|
|
10987
10926
|
*/
|
|
10988
10927
|
/**
|
|
10989
10928
|
* @callback Visitor
|
|
10990
|
-
* Handle a node (matching `test`, if given).
|
|
10991
|
-
*
|
|
10992
|
-
*
|
|
10993
|
-
*
|
|
10994
|
-
*
|
|
10995
|
-
*
|
|
10996
|
-
*
|
|
10997
|
-
*
|
|
10998
|
-
*
|
|
10999
|
-
*
|
|
11000
|
-
* sibling to traverse after `node` is traversed.
|
|
11001
|
-
* Adding or removing next siblings of `node` (or previous siblings, in case
|
|
11002
|
-
* of reverse) is handled as expected without needing to return a new `Index`.
|
|
11003
|
-
*
|
|
11004
|
-
* Removing the children property of an ancestor still results in them being
|
|
11005
|
-
* traversed.
|
|
10929
|
+
* Handle a node (matching `test`, if given) before its children.
|
|
10930
|
+
*
|
|
10931
|
+
* Changes inside `node` are walked next.
|
|
10932
|
+
* Replacing or removing it is easier in `exit`.
|
|
10933
|
+
* When replacing or removing it here,
|
|
10934
|
+
* return `SKIP` (as otherwise its old children are walked),
|
|
10935
|
+
* or `[SKIP, index]` to continue with the node now at `index`.
|
|
10936
|
+
* Changing next siblings (in walk order) is fine;
|
|
10937
|
+
* changing previous siblings needs a new `Index`.
|
|
10938
|
+
* Removing an ancestor or changing its previous siblings is not supported.
|
|
11006
10939
|
* @param {Visited} node
|
|
11007
10940
|
* Found node.
|
|
11008
10941
|
* @param {Array<VisitedParents>} ancestors
|
|
11009
10942
|
* Ancestors of `node`.
|
|
10943
|
+
* @param {number | undefined} index
|
|
10944
|
+
* Index of `node` in its parent (the last of `ancestors`),
|
|
10945
|
+
* or `undefined` for the tree itself.
|
|
11010
10946
|
* @returns {VisitorResult}
|
|
11011
10947
|
* What to do next.
|
|
11012
10948
|
*
|
|
11013
|
-
*
|
|
11014
|
-
*
|
|
10949
|
+
* Like `VisitorExit`,
|
|
10950
|
+
* but `SKIP` can also be returned,
|
|
10951
|
+
* to not walk the children of `node`.
|
|
10952
|
+
* Passing a tuple back (`ActionTuple`) only makes sense as `[SKIP, Index]`.
|
|
10953
|
+
* @template {UnistNode} [Visited=UnistNode]
|
|
10954
|
+
* Visited node type.
|
|
10955
|
+
* @template {UnistParent} [VisitedParents=UnistParent]
|
|
10956
|
+
* Ancestor type.
|
|
10957
|
+
*/
|
|
10958
|
+
/**
|
|
10959
|
+
* @callback VisitorExit
|
|
10960
|
+
* Handle a node (matching `test`, if given) after its children.
|
|
10961
|
+
*
|
|
10962
|
+
* Changes inside `node` are not walked,
|
|
10963
|
+
* which makes this a good place to change `node` based on its children,
|
|
10964
|
+
* or to replace or remove it.
|
|
10965
|
+
* When removing `node` or changing previous siblings (in walk order),
|
|
10966
|
+
* return a new `Index`.
|
|
10967
|
+
* Removing an ancestor or changing its previous siblings is not supported.
|
|
10968
|
+
* @param {Visited} node
|
|
10969
|
+
* Found node.
|
|
10970
|
+
* @param {Array<VisitedParents>} ancestors
|
|
10971
|
+
* Ancestors of `node`.
|
|
10972
|
+
* @param {number | undefined} index
|
|
10973
|
+
* Index of `node` in its parent (the last of `ancestors`),
|
|
10974
|
+
* or `undefined` for the tree itself.
|
|
10975
|
+
* @returns {VisitorResultExit}
|
|
10976
|
+
* What to do next.
|
|
11015
10977
|
*
|
|
11016
|
-
*
|
|
11017
|
-
*
|
|
11018
|
-
*
|
|
10978
|
+
* `CONTINUE` (`true`, nothing) continues as normal,
|
|
10979
|
+
* `EXIT` (`false`) stops traversing,
|
|
10980
|
+
* and `Index` continues at that sibling.
|
|
11019
10981
|
* @template {UnistNode} [Visited=UnistNode]
|
|
11020
10982
|
* Visited node type.
|
|
11021
10983
|
* @template {UnistParent} [VisitedParents=UnistParent]
|
|
11022
10984
|
* Ancestor type.
|
|
11023
10985
|
*/
|
|
11024
10986
|
/**
|
|
10987
|
+
* @template {UnistNode} [Visited=UnistNode]
|
|
10988
|
+
* Visited node type.
|
|
10989
|
+
* @template {UnistParent} [VisitedParents=UnistParent]
|
|
10990
|
+
* Ancestor type.
|
|
10991
|
+
* @typedef Visitors
|
|
10992
|
+
* Handle nodes when entering and exiting them.
|
|
10993
|
+
* The `enter` visitor is optional while `exit` is required.
|
|
10994
|
+
*
|
|
10995
|
+
* Pass an `enter` visitor directly to only handle nodes when entering them.
|
|
10996
|
+
*
|
|
10997
|
+
* `enter` is called before children (if any) are walked and `exit` after that.
|
|
10998
|
+
* `exit` is still called when `enter` returns `SKIP`.
|
|
10999
|
+
* Both `enter` and `exit` are only called for nodes that match an optional `test`.
|
|
11000
|
+
* @property {Visitor<Visited, VisitedParents> | null | undefined} [enter]
|
|
11001
|
+
* Handle a node before its children (optional).
|
|
11002
|
+
* @property {VisitorExit<Visited, VisitedParents>} exit
|
|
11003
|
+
* Handle a node after its children.
|
|
11004
|
+
*/
|
|
11005
|
+
/**
|
|
11025
11006
|
* @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor
|
|
11026
11007
|
* Build a typed `Visitor` function from a tree and a test.
|
|
11027
11008
|
*
|
|
@@ -11031,16 +11012,34 @@ ${trimmed}
|
|
|
11031
11012
|
* @template {Test} [Check=Test]
|
|
11032
11013
|
* Test type.
|
|
11033
11014
|
*/
|
|
11015
|
+
/**
|
|
11016
|
+
* @typedef {Visitors<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitors
|
|
11017
|
+
* Build typed `Visitors` from a tree and a test.
|
|
11018
|
+
*
|
|
11019
|
+
* It will infer which values are passed as `node` and which as `parents`.
|
|
11020
|
+
* @template {UnistNode} [Tree=UnistNode]
|
|
11021
|
+
* Tree type.
|
|
11022
|
+
* @template {Test} [Check=Test]
|
|
11023
|
+
* Test type.
|
|
11024
|
+
*/
|
|
11034
11025
|
/** @type {Readonly<ActionTuple>} */
|
|
11035
11026
|
const empty = [];
|
|
11036
11027
|
/**
|
|
11028
|
+
* Do not traverse this node’s children.
|
|
11029
|
+
* Only works when entering a node.
|
|
11030
|
+
*/
|
|
11031
|
+
const SKIP = "skip";
|
|
11032
|
+
/**
|
|
11037
11033
|
* Visit nodes, with ancestral information.
|
|
11038
11034
|
*
|
|
11039
11035
|
* This algorithm performs *depth-first* *tree traversal* in *preorder*
|
|
11040
|
-
* (**NLR**) or if `reverse` is given,
|
|
11036
|
+
* (**NLR**) or if `reverse` is given,
|
|
11037
|
+
* in *reverse preorder* (**NRL**).
|
|
11038
|
+
* An `exit` visitor is called in *postorder* (**LRN**)
|
|
11039
|
+
* or if `reverse` is given, in *reverse postorder* (**RLN**).
|
|
11041
11040
|
*
|
|
11042
|
-
* You can choose
|
|
11043
|
-
* For complex tests, you should test yourself in
|
|
11041
|
+
* You can choose which nodes are visited by passing a `test`.
|
|
11042
|
+
* For complex tests, you should test yourself in a visitor, as it will be
|
|
11044
11043
|
* faster and will have improved type information.
|
|
11045
11044
|
*
|
|
11046
11045
|
* Walking the tree is an intensive task.
|
|
@@ -11049,29 +11048,72 @@ ${trimmed}
|
|
|
11049
11048
|
* to check if a node matches, and then perform different operations.
|
|
11050
11049
|
*
|
|
11051
11050
|
* You can change the tree.
|
|
11052
|
-
*
|
|
11051
|
+
* Changes inside a node made when entering it are walked,
|
|
11052
|
+
* changes made when exiting it are not.
|
|
11053
|
+
* See `Visitor` and `VisitorExit` for more info.
|
|
11054
|
+
*
|
|
11055
|
+
* @overload
|
|
11056
|
+
* @param {Tree} tree
|
|
11057
|
+
* Tree to traverse.
|
|
11058
|
+
* @param {Check} check
|
|
11059
|
+
* `unist-util-is`-compatible test.
|
|
11060
|
+
* @param {BuildVisitor<Tree, Check>} enter
|
|
11061
|
+
* Handle each node when entering it.
|
|
11062
|
+
* @param {boolean | null | undefined} [reverse]
|
|
11063
|
+
* Walk children from last to first;
|
|
11064
|
+
* for `enter`, reverse preorder (NRL) instead of preorder (NLR);
|
|
11065
|
+
* for `exit`, reverse postorder (RLN) instead of postorder (LRN).
|
|
11066
|
+
* @returns {undefined}
|
|
11067
|
+
* Nothing.
|
|
11053
11068
|
*
|
|
11054
11069
|
* @overload
|
|
11055
11070
|
* @param {Tree} tree
|
|
11071
|
+
* Tree to traverse.
|
|
11056
11072
|
* @param {Check} check
|
|
11057
|
-
*
|
|
11073
|
+
* `unist-util-is`-compatible test.
|
|
11074
|
+
* @param {BuildVisitors<Tree, Check>} visitors
|
|
11075
|
+
* Handle each node when exiting it, and optionally when entering it.
|
|
11076
|
+
* @param {boolean | null | undefined} [reverse]
|
|
11077
|
+
* Walk children from last to first;
|
|
11078
|
+
* for `enter`, reverse preorder (NRL) instead of preorder (NLR);
|
|
11079
|
+
* for `exit`, reverse postorder (RLN) instead of postorder (LRN).
|
|
11080
|
+
* @returns {undefined}
|
|
11081
|
+
* Nothing.
|
|
11082
|
+
*
|
|
11083
|
+
* @overload
|
|
11084
|
+
* @param {Tree} tree
|
|
11085
|
+
* Tree to traverse.
|
|
11086
|
+
* @param {BuildVisitor<Tree>} enter
|
|
11087
|
+
* Handle each node when entering it.
|
|
11058
11088
|
* @param {boolean | null | undefined} [reverse]
|
|
11089
|
+
* Walk children from last to first;
|
|
11090
|
+
* for `enter`, reverse preorder (NRL) instead of preorder (NLR);
|
|
11091
|
+
* for `exit`, reverse postorder (RLN) instead of postorder (LRN).
|
|
11059
11092
|
* @returns {undefined}
|
|
11093
|
+
* Nothing.
|
|
11060
11094
|
*
|
|
11061
11095
|
* @overload
|
|
11062
11096
|
* @param {Tree} tree
|
|
11063
|
-
*
|
|
11097
|
+
* Tree to traverse.
|
|
11098
|
+
* @param {BuildVisitors<Tree>} visitors
|
|
11099
|
+
* Handle each node when exiting it, and optionally when entering it.
|
|
11064
11100
|
* @param {boolean | null | undefined} [reverse]
|
|
11101
|
+
* Walk children from last to first;
|
|
11102
|
+
* for `enter`, reverse preorder (NRL) instead of preorder (NLR);
|
|
11103
|
+
* for `exit`, reverse postorder (RLN) instead of postorder (LRN).
|
|
11065
11104
|
* @returns {undefined}
|
|
11105
|
+
* Nothing.
|
|
11066
11106
|
*
|
|
11067
11107
|
* @param {UnistNode} tree
|
|
11068
11108
|
* Tree to traverse.
|
|
11069
|
-
* @param {Visitor | Test}
|
|
11070
|
-
* `unist-util-is`-compatible test
|
|
11071
|
-
* @param {Visitor | boolean | null | undefined} [
|
|
11072
|
-
*
|
|
11109
|
+
* @param {Visitor | Visitors | Test} testOrEnterOrVisitors
|
|
11110
|
+
* `unist-util-is`-compatible test, `enter`, or `visitors`.
|
|
11111
|
+
* @param {Visitor | Visitors | boolean | null | undefined} [enterOrVisitorsOrReverse]
|
|
11112
|
+
* `enter`, `visitors`, or `reverse` after a test.
|
|
11073
11113
|
* @param {boolean | null | undefined} [reverse]
|
|
11074
|
-
*
|
|
11114
|
+
* Walk children from last to first;
|
|
11115
|
+
* for `enter`, reverse preorder (NRL) instead of preorder (NLR);
|
|
11116
|
+
* for `exit`, reverse postorder (RLN) instead of postorder (LRN).
|
|
11075
11117
|
* @returns {undefined}
|
|
11076
11118
|
* Nothing.
|
|
11077
11119
|
*
|
|
@@ -11080,20 +11122,46 @@ ${trimmed}
|
|
|
11080
11122
|
* @template {Test} Check
|
|
11081
11123
|
* `unist-util-is`-compatible test.
|
|
11082
11124
|
*/
|
|
11083
|
-
function visitParents(tree,
|
|
11125
|
+
function visitParents(tree, testOrEnterOrVisitors, enterOrVisitorsOrReverse, reverse) {
|
|
11126
|
+
if (!tree || typeof tree !== "object") throw new Error("Unexpected value `" + tree + "` for `tree`, expected node");
|
|
11127
|
+
let preorder = true;
|
|
11084
11128
|
/** @type {Test} */
|
|
11085
11129
|
let check;
|
|
11086
|
-
|
|
11087
|
-
|
|
11088
|
-
|
|
11089
|
-
|
|
11130
|
+
/** @type {Visitors | Visitor} */
|
|
11131
|
+
let visitors;
|
|
11132
|
+
/** @type {Visitor | null | undefined} */
|
|
11133
|
+
let enter;
|
|
11134
|
+
/** @type {VisitorExit | null | undefined} */
|
|
11135
|
+
let exit;
|
|
11136
|
+
if (typeof enterOrVisitorsOrReverse === "function" || enterOrVisitorsOrReverse && typeof enterOrVisitorsOrReverse === "object") {
|
|
11137
|
+
check = testOrEnterOrVisitors;
|
|
11138
|
+
visitors = enterOrVisitorsOrReverse;
|
|
11139
|
+
if (reverse) preorder = false;
|
|
11140
|
+
} else {
|
|
11141
|
+
visitors = testOrEnterOrVisitors;
|
|
11142
|
+
if (enterOrVisitorsOrReverse) preorder = false;
|
|
11143
|
+
}
|
|
11144
|
+
if (typeof visitors === "function") enter = visitors;
|
|
11145
|
+
else if (visitors && typeof visitors === "object") {
|
|
11146
|
+
if (visitors.enter === null || visitors.enter === void 0) {} else if (typeof visitors.enter === "function") enter = visitors.enter;
|
|
11147
|
+
else throw new Error("Unexpected value `" + visitors.enter + "` for `visitors.enter`, expected optional visitor");
|
|
11148
|
+
if (typeof visitors.exit === "function") exit = visitors.exit;
|
|
11149
|
+
else throw new Error("Unexpected value `" + visitors.exit + "` for `visitors.exit`, expected visitor (pass a visitor directly if you only want an enter visitor)");
|
|
11150
|
+
} else throw new Error("Unexpected value `" + visitors + "` for `enter` or `visitors`, expected visitor or object with visitors");
|
|
11090
11151
|
const is = convert(check);
|
|
11091
|
-
const step =
|
|
11152
|
+
const step = preorder ? 1 : -1;
|
|
11092
11153
|
factory(tree, void 0, [])();
|
|
11093
11154
|
/**
|
|
11155
|
+
* Create a function to visit a node.
|
|
11156
|
+
*
|
|
11094
11157
|
* @param {UnistNode} node
|
|
11158
|
+
* Node to visit.
|
|
11095
11159
|
* @param {number | undefined} index
|
|
11160
|
+
* Index of `node` in its parent.
|
|
11096
11161
|
* @param {Array<UnistParent>} parents
|
|
11162
|
+
* Ancestors of `node`.
|
|
11163
|
+
* @returns {() => Readonly<ActionTuple>}
|
|
11164
|
+
* Visit `node`.
|
|
11097
11165
|
*/
|
|
11098
11166
|
function factory(node, index, parents) {
|
|
11099
11167
|
const value = node && typeof node === "object" ? node : {};
|
|
@@ -11103,31 +11171,31 @@ ${trimmed}
|
|
|
11103
11171
|
}
|
|
11104
11172
|
return visit;
|
|
11105
11173
|
function visit() {
|
|
11174
|
+
const matches = !check || is(node, index, parents[parents.length - 1] || void 0);
|
|
11106
11175
|
/** @type {Readonly<ActionTuple>} */
|
|
11107
11176
|
let result = empty;
|
|
11108
|
-
|
|
11109
|
-
|
|
11110
|
-
/** @type {number} */
|
|
11111
|
-
let offset;
|
|
11112
|
-
/** @type {Array<UnistParent>} */
|
|
11113
|
-
let grandparents;
|
|
11114
|
-
if (!test || is(node, index, parents[parents.length - 1] || void 0)) {
|
|
11115
|
-
result = toResult(visitor(node, parents));
|
|
11177
|
+
if (enter && matches) {
|
|
11178
|
+
result = toResult(enter(node, parents, index));
|
|
11116
11179
|
if (result[0] === false) return result;
|
|
11117
11180
|
}
|
|
11118
11181
|
if ("children" in node && node.children) {
|
|
11119
11182
|
const nodeAsParent = node;
|
|
11120
11183
|
if (nodeAsParent.children && result[0] !== "skip") {
|
|
11121
|
-
offset = (
|
|
11122
|
-
grandparents = parents
|
|
11184
|
+
let offset = (preorder ? -1 : nodeAsParent.children.length) + step;
|
|
11185
|
+
const grandparents = [...parents, nodeAsParent];
|
|
11123
11186
|
while (offset > -1 && offset < nodeAsParent.children.length) {
|
|
11124
11187
|
const child = nodeAsParent.children[offset];
|
|
11125
|
-
subresult = factory(child, offset, grandparents)();
|
|
11188
|
+
const subresult = factory(child, offset, grandparents)();
|
|
11126
11189
|
if (subresult[0] === false) return subresult;
|
|
11127
11190
|
offset = typeof subresult[1] === "number" ? subresult[1] : offset + step;
|
|
11128
11191
|
}
|
|
11129
11192
|
}
|
|
11130
11193
|
}
|
|
11194
|
+
if (exit && matches) {
|
|
11195
|
+
const exitResult = toResult(exit(node, parents, index));
|
|
11196
|
+
if (exitResult[0] === "skip") throw new Error("Unexpected value `" + exitResult[0] + "` from `exit`, expected `CONTINUE`, `EXIT`, index, or nothing");
|
|
11197
|
+
if (exitResult[0] === false || typeof exitResult[1] === "number") return exitResult;
|
|
11198
|
+
}
|
|
11131
11199
|
return result;
|
|
11132
11200
|
}
|
|
11133
11201
|
}
|
|
@@ -11145,8 +11213,7 @@ ${trimmed}
|
|
|
11145
11213
|
if (typeof value === "number") return [true, value];
|
|
11146
11214
|
return value === null || value === void 0 ? empty : [value];
|
|
11147
11215
|
}
|
|
11148
|
-
|
|
11149
|
-
//#region node_modules/mdast-util-find-and-replace/lib/index.js
|
|
11216
|
+
// node_modules/mdast-util-find-and-replace/lib/index.js
|
|
11150
11217
|
/**
|
|
11151
11218
|
* @import {Nodes, Parents, PhrasingContent, Root, Text} from 'mdast'
|
|
11152
11219
|
* @import {BuildVisitor, Test, VisitorResult} from 'unist-util-visit-parents'
|
|
@@ -11214,7 +11281,7 @@ ${trimmed}
|
|
|
11214
11281
|
* @param {FindAndReplaceList | FindAndReplaceTuple} list
|
|
11215
11282
|
* Patterns to find.
|
|
11216
11283
|
* @param {Options | null | undefined} [options]
|
|
11217
|
-
* Configuration (
|
|
11284
|
+
* Configuration (optional).
|
|
11218
11285
|
* @returns {undefined}
|
|
11219
11286
|
* Nothing.
|
|
11220
11287
|
*/
|
|
@@ -11222,24 +11289,15 @@ ${trimmed}
|
|
|
11222
11289
|
const ignored = convert((options || {}).ignore || []);
|
|
11223
11290
|
const pairs = toPairs(list);
|
|
11224
11291
|
let pairIndex = -1;
|
|
11225
|
-
while (++pairIndex < pairs.length) visitParents(tree,
|
|
11292
|
+
while (++pairIndex < pairs.length) visitParents(tree, visitor);
|
|
11226
11293
|
/**
|
|
11227
|
-
*
|
|
11294
|
+
* Handle text nodes and skip ignored nodes.
|
|
11228
11295
|
*
|
|
11229
|
-
* @type {BuildVisitor<Root
|
|
11296
|
+
* @type {BuildVisitor<Root>}
|
|
11230
11297
|
*/
|
|
11231
|
-
function visitor(node, parents) {
|
|
11232
|
-
|
|
11233
|
-
|
|
11234
|
-
let grandparent;
|
|
11235
|
-
while (++index < parents.length) {
|
|
11236
|
-
const parent = parents[index];
|
|
11237
|
-
/** @type {Array<Nodes> | undefined} */
|
|
11238
|
-
const siblings = grandparent ? grandparent.children : void 0;
|
|
11239
|
-
if (ignored(parent, siblings ? siblings.indexOf(parent) : void 0, grandparent)) return;
|
|
11240
|
-
grandparent = parent;
|
|
11241
|
-
}
|
|
11242
|
-
if (grandparent) return handler(node, parents);
|
|
11298
|
+
function visitor(node, parents, index) {
|
|
11299
|
+
if (node.type === "text" && typeof index === "number") return handler(node, parents, index);
|
|
11300
|
+
if (ignored(node, index, parents[parents.length - 1])) return SKIP;
|
|
11243
11301
|
}
|
|
11244
11302
|
/**
|
|
11245
11303
|
* Handle a text node which is not in an ignored parent.
|
|
@@ -11248,15 +11306,16 @@ ${trimmed}
|
|
|
11248
11306
|
* Text node to search in.
|
|
11249
11307
|
* @param {Array<Parents>} parents
|
|
11250
11308
|
* Ancestors of `node`.
|
|
11309
|
+
* @param {number} index
|
|
11310
|
+
* Index of `node` in its parent.
|
|
11251
11311
|
* @returns {VisitorResult}
|
|
11252
11312
|
* Where to continue visiting.
|
|
11253
11313
|
*/
|
|
11254
|
-
function handler(node, parents) {
|
|
11314
|
+
function handler(node, parents, index) {
|
|
11255
11315
|
const parent = parents[parents.length - 1];
|
|
11256
11316
|
const find = pairs[pairIndex][0];
|
|
11257
11317
|
const replace = pairs[pairIndex][1];
|
|
11258
11318
|
let start = 0;
|
|
11259
|
-
const index = parent.children.indexOf(node);
|
|
11260
11319
|
let change = false;
|
|
11261
11320
|
/** @type {Array<PhrasingContent>} */
|
|
11262
11321
|
let nodes = [];
|
|
@@ -11324,7 +11383,6 @@ ${trimmed}
|
|
|
11324
11383
|
if (!Array.isArray(tupleOrList)) throw new TypeError("Expected find and replace tuple or list of tuples");
|
|
11325
11384
|
/** @type {Pairs} */
|
|
11326
11385
|
const result = [];
|
|
11327
|
-
/** @type {FindAndReplaceList} */
|
|
11328
11386
|
const list = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? tupleOrList : [tupleOrList];
|
|
11329
11387
|
let index = -1;
|
|
11330
11388
|
while (++index < list.length) {
|
|
@@ -11357,8 +11415,7 @@ ${trimmed}
|
|
|
11357
11415
|
return replace;
|
|
11358
11416
|
};
|
|
11359
11417
|
}
|
|
11360
|
-
|
|
11361
|
-
//#region node_modules/mdast-util-gfm-autolink-literal/lib/index.js
|
|
11418
|
+
// node_modules/mdast-util-gfm-autolink-literal/lib/index.js
|
|
11362
11419
|
/**
|
|
11363
11420
|
* @import {RegExpMatchObject, ReplaceFunction} from 'mdast-util-find-and-replace'
|
|
11364
11421
|
* @import {CompileContext, Extension as FromMarkdownExtension, Handle as FromMarkdownHandle, Transform as FromMarkdownTransform} from 'mdast-util-from-markdown'
|
|
@@ -11537,8 +11594,7 @@ ${trimmed}
|
|
|
11537
11594
|
const code = match.input.charCodeAt(match.index - 1);
|
|
11538
11595
|
return (match.index === 0 || unicodeWhitespace(code) || unicodePunctuation(code)) && (!email || code !== 47);
|
|
11539
11596
|
}
|
|
11540
|
-
|
|
11541
|
-
//#region node_modules/mdast-util-gfm-footnote/lib/index.js
|
|
11597
|
+
// node_modules/mdast-util-gfm-footnote/lib/index.js
|
|
11542
11598
|
/**
|
|
11543
11599
|
* @import {
|
|
11544
11600
|
* CompileContext,
|
|
@@ -11672,8 +11728,7 @@ ${trimmed}
|
|
|
11672
11728
|
}
|
|
11673
11729
|
};
|
|
11674
11730
|
}
|
|
11675
|
-
|
|
11676
|
-
//#region node_modules/mdast-util-gfm-strikethrough/lib/index.js
|
|
11731
|
+
// node_modules/mdast-util-gfm-strikethrough/lib/index.js
|
|
11677
11732
|
handleDelete.attention = attentionDelete;
|
|
11678
11733
|
handleDelete.peek = peekDelete;
|
|
11679
11734
|
/**
|
|
@@ -11753,8 +11808,7 @@ ${trimmed}
|
|
|
11753
11808
|
function peekDelete() {
|
|
11754
11809
|
return "~";
|
|
11755
11810
|
}
|
|
11756
|
-
|
|
11757
|
-
//#region node_modules/mdast-util-gfm-table/lib/index.js
|
|
11811
|
+
// node_modules/mdast-util-gfm-table/lib/index.js
|
|
11758
11812
|
/**
|
|
11759
11813
|
* @typedef {import('mdast').InlineCode} InlineCode
|
|
11760
11814
|
* @typedef {import('mdast').Table} Table
|
|
@@ -11878,8 +11932,7 @@ ${trimmed}
|
|
|
11878
11932
|
function replace($0, $1) {
|
|
11879
11933
|
return $1 === "|" ? $1 : $0;
|
|
11880
11934
|
}
|
|
11881
|
-
|
|
11882
|
-
//#region node_modules/mdast-util-gfm-task-list-item/lib/index.js
|
|
11935
|
+
// node_modules/mdast-util-gfm-task-list-item/lib/index.js
|
|
11883
11936
|
/**
|
|
11884
11937
|
* @typedef {import('mdast').ListItem} ListItem
|
|
11885
11938
|
* @typedef {import('mdast').Paragraph} Paragraph
|
|
@@ -11947,8 +12000,7 @@ ${trimmed}
|
|
|
11947
12000
|
}
|
|
11948
12001
|
this.exit(token);
|
|
11949
12002
|
}
|
|
11950
|
-
|
|
11951
|
-
//#region node_modules/mdast-util-gfm/lib/index.js
|
|
12003
|
+
// node_modules/mdast-util-gfm/lib/index.js
|
|
11952
12004
|
/**
|
|
11953
12005
|
* @import {Extension as FromMarkdownExtension} from 'mdast-util-from-markdown'
|
|
11954
12006
|
* @import {Options} from 'mdast-util-gfm'
|
|
@@ -11971,8 +12023,7 @@ ${trimmed}
|
|
|
11971
12023
|
gfmTaskListItemFromMarkdown()
|
|
11972
12024
|
];
|
|
11973
12025
|
}
|
|
11974
|
-
|
|
11975
|
-
//#region node_modules/mdast-util-math/lib/index.js
|
|
12026
|
+
// node_modules/mdast-util-math/lib/index.js
|
|
11976
12027
|
/**
|
|
11977
12028
|
* @typedef {import('hast').Element} HastElement
|
|
11978
12029
|
* @typedef {import('hast').ElementContent} HastElementContent
|
|
@@ -12120,8 +12171,7 @@ ${trimmed}
|
|
|
12120
12171
|
this.config.exit.data.call(this, token);
|
|
12121
12172
|
}
|
|
12122
12173
|
}
|
|
12123
|
-
|
|
12124
|
-
//#region node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js
|
|
12174
|
+
// node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js
|
|
12125
12175
|
/**
|
|
12126
12176
|
* @import {Code, ConstructRecord, Event, Extension, Previous, State, TokenizeContext, Tokenizer} from 'micromark-util-types'
|
|
12127
12177
|
*/
|
|
@@ -12821,8 +12871,7 @@ ${trimmed}
|
|
|
12821
12871
|
if (events.length > 0 && !result) events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;
|
|
12822
12872
|
return result;
|
|
12823
12873
|
}
|
|
12824
|
-
|
|
12825
|
-
//#region node_modules/micromark-extension-gfm-footnote/lib/syntax.js
|
|
12874
|
+
// node_modules/micromark-extension-gfm-footnote/lib/syntax.js
|
|
12826
12875
|
/**
|
|
12827
12876
|
* @import {Event, Exiter, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'
|
|
12828
12877
|
*/
|
|
@@ -13240,8 +13289,7 @@ ${trimmed}
|
|
|
13240
13289
|
return tail && tail[1].type === "gfmFootnoteDefinitionIndent" && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok(code) : nok(code);
|
|
13241
13290
|
}
|
|
13242
13291
|
}
|
|
13243
|
-
|
|
13244
|
-
//#region node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js
|
|
13292
|
+
// node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js
|
|
13245
13293
|
/**
|
|
13246
13294
|
* @import {Options} from 'micromark-extension-gfm-strikethrough'
|
|
13247
13295
|
* @import {Event, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'
|
|
@@ -13381,8 +13429,7 @@ ${trimmed}
|
|
|
13381
13429
|
}
|
|
13382
13430
|
}
|
|
13383
13431
|
}
|
|
13384
|
-
|
|
13385
|
-
//#region node_modules/micromark-extension-gfm-table/lib/edit-map.js
|
|
13432
|
+
// node_modules/micromark-extension-gfm-table/lib/edit-map.js
|
|
13386
13433
|
/**
|
|
13387
13434
|
* @import {Event} from 'micromark-util-types'
|
|
13388
13435
|
*/
|
|
@@ -13492,8 +13539,7 @@ ${trimmed}
|
|
|
13492
13539
|
editMap.map.push(change);
|
|
13493
13540
|
editMap.index.set(at, change);
|
|
13494
13541
|
}
|
|
13495
|
-
|
|
13496
|
-
//#region node_modules/micromark-extension-gfm-table/lib/infer.js
|
|
13542
|
+
// node_modules/micromark-extension-gfm-table/lib/infer.js
|
|
13497
13543
|
/**
|
|
13498
13544
|
* @import {Event} from 'micromark-util-types'
|
|
13499
13545
|
*/
|
|
@@ -13530,8 +13576,7 @@ ${trimmed}
|
|
|
13530
13576
|
}
|
|
13531
13577
|
return align;
|
|
13532
13578
|
}
|
|
13533
|
-
|
|
13534
|
-
//#region node_modules/micromark-extension-gfm-table/lib/syntax.js
|
|
13579
|
+
// node_modules/micromark-extension-gfm-table/lib/syntax.js
|
|
13535
13580
|
/**
|
|
13536
13581
|
* @import {Event, Extension, Point, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'
|
|
13537
13582
|
*/
|
|
@@ -14247,8 +14292,7 @@ ${trimmed}
|
|
|
14247
14292
|
const side = event[0] === "enter" ? "start" : "end";
|
|
14248
14293
|
return event[1][side];
|
|
14249
14294
|
}
|
|
14250
|
-
|
|
14251
|
-
//#region node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js
|
|
14295
|
+
// node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js
|
|
14252
14296
|
/**
|
|
14253
14297
|
* @import {Extension, State, TokenizeContext, Tokenizer} from 'micromark-util-types'
|
|
14254
14298
|
*/
|
|
@@ -14366,8 +14410,7 @@ ${trimmed}
|
|
|
14366
14410
|
return code === null ? nok(code) : ok(code);
|
|
14367
14411
|
}
|
|
14368
14412
|
}
|
|
14369
|
-
|
|
14370
|
-
//#region node_modules/micromark-extension-gfm/index.js
|
|
14413
|
+
// node_modules/micromark-extension-gfm/index.js
|
|
14371
14414
|
/**
|
|
14372
14415
|
* @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions
|
|
14373
14416
|
* @typedef {import('micromark-extension-gfm-strikethrough').Options} Options
|
|
@@ -14394,8 +14437,7 @@ ${trimmed}
|
|
|
14394
14437
|
gfmTaskListItem()
|
|
14395
14438
|
]);
|
|
14396
14439
|
}
|
|
14397
|
-
|
|
14398
|
-
//#region node_modules/micromark-extension-math/lib/math-flow.js
|
|
14440
|
+
// node_modules/micromark-extension-math/lib/math-flow.js
|
|
14399
14441
|
/**
|
|
14400
14442
|
* @import {Construct, State, TokenizeContext, Tokenizer} from 'micromark-util-types'
|
|
14401
14443
|
*/
|
|
@@ -14699,8 +14741,7 @@ ${trimmed}
|
|
|
14699
14741
|
return self.parser.lazy[self.now().line] ? nok(code) : ok(code);
|
|
14700
14742
|
}
|
|
14701
14743
|
}
|
|
14702
|
-
|
|
14703
|
-
//#region node_modules/micromark-extension-math/lib/math-text.js
|
|
14744
|
+
// node_modules/micromark-extension-math/lib/math-text.js
|
|
14704
14745
|
/**
|
|
14705
14746
|
* @import {Options} from 'micromark-extension-math'
|
|
14706
14747
|
* @import {Construct, Previous, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'
|
|
@@ -14885,8 +14926,7 @@ ${trimmed}
|
|
|
14885
14926
|
function previous(code) {
|
|
14886
14927
|
return code !== 36 || this.events[this.events.length - 1][1].type === "characterEscape";
|
|
14887
14928
|
}
|
|
14888
|
-
|
|
14889
|
-
//#region node_modules/micromark-extension-math/lib/syntax.js
|
|
14929
|
+
// node_modules/micromark-extension-math/lib/syntax.js
|
|
14890
14930
|
/**
|
|
14891
14931
|
* @import {Options} from 'micromark-extension-math'
|
|
14892
14932
|
* @import {Extension} from 'micromark-util-types'
|
|
@@ -14906,8 +14946,7 @@ ${trimmed}
|
|
|
14906
14946
|
text: { [36]: mathText(options) }
|
|
14907
14947
|
};
|
|
14908
14948
|
}
|
|
14909
|
-
|
|
14910
|
-
//#region node_modules/katex/dist/katex.mjs
|
|
14949
|
+
// node_modules/katex/dist/katex.mjs
|
|
14911
14950
|
/**
|
|
14912
14951
|
* This is the ParseError class, which is the main error thrown by KaTeX
|
|
14913
14952
|
* functions when something has gone wrong. This is used to distinguish internal
|
|
@@ -41349,8 +41388,7 @@ ${trimmed}
|
|
|
41349
41388
|
LineNode
|
|
41350
41389
|
}
|
|
41351
41390
|
};
|
|
41352
|
-
|
|
41353
|
-
//#region node_modules/micromark-util-symbol/lib/codes.js
|
|
41391
|
+
// node_modules/micromark-util-symbol/lib/codes.js
|
|
41354
41392
|
/**
|
|
41355
41393
|
* Character codes.
|
|
41356
41394
|
*
|
|
@@ -41507,8 +41545,7 @@ ${trimmed}
|
|
|
41507
41545
|
byteOrderMarker: 65279,
|
|
41508
41546
|
replacementCharacter: 65533
|
|
41509
41547
|
};
|
|
41510
|
-
|
|
41511
|
-
//#region node_modules/micromark-util-symbol/lib/constants.js
|
|
41548
|
+
// node_modules/micromark-util-symbol/lib/constants.js
|
|
41512
41549
|
/**
|
|
41513
41550
|
* This module is compiled away!
|
|
41514
41551
|
*
|
|
@@ -41553,8 +41590,7 @@ ${trimmed}
|
|
|
41553
41590
|
thematicBreakMarkerCountMin: 3,
|
|
41554
41591
|
v8MaxSafeChunkSize: 1e4
|
|
41555
41592
|
};
|
|
41556
|
-
|
|
41557
|
-
//#region node_modules/micromark-util-symbol/lib/types.js
|
|
41593
|
+
// node_modules/micromark-util-symbol/lib/types.js
|
|
41558
41594
|
/**
|
|
41559
41595
|
* This module is compiled away!
|
|
41560
41596
|
*
|
|
@@ -41670,8 +41706,7 @@ ${trimmed}
|
|
|
41670
41706
|
chunkText: "chunkText",
|
|
41671
41707
|
chunkString: "chunkString"
|
|
41672
41708
|
};
|
|
41673
|
-
|
|
41674
|
-
//#region src/client/markdown/cjkFriendlyStrong.ts
|
|
41709
|
+
// src/client/markdown/cjkFriendlyStrong.ts
|
|
41675
41710
|
/** Let asterisk strong emphasis close after punctuation when CJK prose continues without whitespace. */
|
|
41676
41711
|
const cjkCharacter = new RegExp([
|
|
41677
41712
|
"\\p{Script_Extensions=Han}",
|
|
@@ -41728,8 +41763,7 @@ ${trimmed}
|
|
|
41728
41763
|
function cjkFriendlyStrong() {
|
|
41729
41764
|
return cjkFriendlyStrongExtension;
|
|
41730
41765
|
}
|
|
41731
|
-
|
|
41732
|
-
//#region src/client/markdown/mathCompatibility.ts
|
|
41766
|
+
// src/client/markdown/mathCompatibility.ts
|
|
41733
41767
|
/** Extend upstream dollar-only math syntax with TeX delimiters while reusing its token vocabulary. */
|
|
41734
41768
|
const previousBackslash = function(code) {
|
|
41735
41769
|
if (code !== codes.backslash) return true;
|
|
@@ -41999,8 +42033,7 @@ ${trimmed}
|
|
|
41999
42033
|
function mathCompatibility() {
|
|
42000
42034
|
return backslashMath;
|
|
42001
42035
|
}
|
|
42002
|
-
|
|
42003
|
-
//#region src/client/markdown/parse.ts
|
|
42036
|
+
// src/client/markdown/parse.ts
|
|
42004
42037
|
/**
|
|
42005
42038
|
* Parse GFM markdown (the streaming arm's grammar: no math, so incomplete
|
|
42006
42039
|
* TeX never flashes KaTeX errors mid-stream).
|
|
@@ -42030,8 +42063,7 @@ ${trimmed}
|
|
|
42030
42063
|
mdastExtensions: [gfmFromMarkdown(), mathFromMarkdown()]
|
|
42031
42064
|
});
|
|
42032
42065
|
}
|
|
42033
|
-
|
|
42034
|
-
//#region node_modules/clsx/dist/clsx.mjs
|
|
42066
|
+
// node_modules/clsx/dist/clsx.mjs
|
|
42035
42067
|
function r(e) {
|
|
42036
42068
|
var t, f, n = "";
|
|
42037
42069
|
if ("string" == typeof e || "number" == typeof e) n += e;
|
|
@@ -42045,8 +42077,7 @@ ${trimmed}
|
|
|
42045
42077
|
for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
|
|
42046
42078
|
return n;
|
|
42047
42079
|
}
|
|
42048
|
-
|
|
42049
|
-
//#region src/client/markdown/katex.tsx
|
|
42080
|
+
// src/client/markdown/katex.tsx
|
|
42050
42081
|
/**
|
|
42051
42082
|
* TeX-to-React via KaTeX, replicating the rehype-katex pipeline this renderer
|
|
42052
42083
|
* replaced: the same three-arm error chain (strict render, `strict: 'ignore'`
|
|
@@ -42126,8 +42157,7 @@ ${trimmed}
|
|
|
42126
42157
|
}
|
|
42127
42158
|
return [...new DOMParser().parseFromString(html, "text/html").body.childNodes].map(domToReact);
|
|
42128
42159
|
}
|
|
42129
|
-
|
|
42130
|
-
//#region \0dshx-css-module:MarkdownText.module.css.mjs
|
|
42160
|
+
// \0dshx-css-module:/home/runner/work/dsh-better-display/dsh-better-display/src/client/markdown/MarkdownText.module.css.mjs
|
|
42131
42161
|
const css$6 = ".zfLqdW_markdown{overflow-wrap:anywhere;min-width:0;font:var(--dsw-font-markdown-base);color:var(--dsw-alias-label-primary)}.zfLqdW_markdown strong{font-weight:600}.zfLqdW_markdown h1{font:var(--dsw-font-markdown-h1);margin:32px 0 16px}.zfLqdW_markdown h2{font:var(--dsw-font-markdown-h2);margin:32px 0 16px}.zfLqdW_markdown h3{font:var(--dsw-font-markdown-h3);margin:32px 0 16px}.zfLqdW_markdown h4{font:var(--dsw-font-markdown-h4);margin:16px 0}.zfLqdW_markdown :where(h5,h6){font:var(--dsw-font-markdown-base-strong);margin:16px 0}.zfLqdW_markdown :where(h1,h2,h3,h4,h5,h6) strong{font-weight:inherit}.zfLqdW_markdown p{margin:16px 0}.zfLqdW_markdown :where(h4,h5,h6)+:where(ul,ol){margin-top:8px}.zfLqdW_markdown :where(h4,h5,h6):has(+:where(ul,ol)){margin-bottom:8px}.zfLqdW_markdown a{color:var(--dsw-alias-state-business-primary);transition:box-shadow var(--ds-transition-duration) var(--ds-ease-in-out);border:2px solid #fff0;border-width:2px 3px;margin-left:-3px;margin-right:-3px;text-decoration:none;position:relative}.zfLqdW_markdown a:hover,.zfLqdW_markdown a:focus{-webkit-text-decoration:underline var(--dsw-alias-state-business-primary);text-decoration:underline var(--dsw-alias-state-business-primary);outline:none}.zfLqdW_markdown a:focus-visible{box-shadow:0 0 0 2px var(--dsw-alias-state-business-primary)}.zfLqdW_markdown :where(ul,ol){margin:16px 0;padding-left:18px}.zfLqdW_markdown li:not(:first-child){margin-top:6px}.zfLqdW_markdown li>:where(ul,ol){margin-top:4px}.zfLqdW_markdown li::marker{color:var(--dsw-alias-label-secondary);line-height:28px}.zfLqdW_markdown :where(ul,ol) ol{padding-left:0;list-style-position:inside}.zfLqdW_markdown :where(ul,ol) ol li p{display:inline}.zfLqdW_markdown li>p{margin:8px 0}.zfLqdW_markdown li>:first-child{margin-top:0}.zfLqdW_markdown li>:last-child:not(.md-code-block){margin-bottom:0}.zfLqdW_markdown hr{background:var(--dsw-alias-border-l2);border:none;height:1px;margin:32px 0;display:block}.zfLqdW_markdown blockquote{border-left:2px solid var(--dsw-alias-label-caption);margin:16px 0 0;padding-left:14px}.zfLqdW_markdown pre{font-family:var(--ds-font-family-code);margin:16px 0;overflow:auto}.zfLqdW_markdown :not(pre)>code{box-sizing:border-box;font:var(--dsw-font-markdown-code);font-family:var(--ds-font-family-code);background-color:var(--dsw-alias-markdown-inline-code);border-radius:6px;align-items:center;padding:0 5px;display:inline-flex;font-size:.875em!important}.zfLqdW_markdown :where(h1,h2,h3,h4,h5,h6) code{font:inherit;font-family:var(--ds-font-family-code)}.zfLqdW_markdown .katex-display{max-width:100%;overflow:auto hidden}.zfLqdW_markdown input[type=checkbox]{accent-color:var(--dsw-alias-label-secondary);margin:0 8px 0 0}.zfLqdW_tableScroll{overscroll-behavior-x:contain;max-width:100%;overflow-x:auto}.zfLqdW_tableScroll.md-table-wide{padding-bottom:var(--dsh-scrollbar-width,8px);overflow-x:hidden}:is(.zfLqdW_tableScroll.md-table-wide:hover,.zfLqdW_tableScroll.md-table-wide:focus-visible){padding-bottom:0;overflow-x:auto}.zfLqdW_tableScroll:focus-visible{box-shadow:0 0 0 2px var(--dsw-alias-state-business-primary);outline:none}.zfLqdW_tableScroll table{border-collapse:collapse;width:max-content;max-width:max-content}.zfLqdW_tableFill table{width:100%;max-width:none}.zfLqdW_tableScroll th{text-align:start;border-bottom:1px solid var(--dsw-alias-border-l3);font:var(--dsw-font-markdown-table-head);border-top:none;min-width:100px;max-width:min(30vw,320px);padding:10px 16px}.zfLqdW_tableScroll td{border-bottom:1px solid var(--dsw-alias-border-l2);font:var(--dsw-font-markdown-table);min-width:100px;max-width:min(30vw,320px);padding:10px 16px}.zfLqdW_tableScroll th:first-child,.zfLqdW_tableScroll td:first-child{padding-left:0}.zfLqdW_tableScroll td:last-child{padding-right:0}.zfLqdW_tableScroll table code{font-size:13px}.zfLqdW_markdown>:first-child,.zfLqdW_markdown p:first-child{margin-top:0!important}.zfLqdW_markdown>:last-child,.zfLqdW_markdown p:last-child{margin-bottom:0!important}.zfLqdW_imageAlt{color:var(--dsw-alias-label-tertiary);font-style:italic}.zfLqdW_image{background:var(--dsw-alias-bg-base);object-fit:contain;border-radius:8px;width:auto;max-width:100%;height:auto;margin:0;display:block}.zfLqdW_fileMention{font:inherit;color:var(--dsw-alias-state-business-primary);cursor:pointer;background:0 0;border:none;margin:0;padding:0;text-decoration:none}.zfLqdW_fileMention:hover,.zfLqdW_fileMention:focus{-webkit-text-decoration:underline var(--dsw-alias-state-business-primary);text-decoration:underline var(--dsw-alias-state-business-primary);text-underline-offset:3px;outline:none}";
|
|
42132
42162
|
const tagId$6 = "dsh-better-display/MarkdownText.module.css";
|
|
42133
42163
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$6) + "]") === null) {
|
|
@@ -42145,8 +42175,7 @@ ${trimmed}
|
|
|
42145
42175
|
"tableFill": "zfLqdW_tableFill",
|
|
42146
42176
|
"tableScroll": "zfLqdW_tableScroll"
|
|
42147
42177
|
};
|
|
42148
|
-
|
|
42149
|
-
//#region src/client/markdown/render.tsx
|
|
42178
|
+
// src/client/markdown/render.tsx
|
|
42150
42179
|
/**
|
|
42151
42180
|
* Direct mdast→React markdown renderer. Replaces the react-markdown /
|
|
42152
42181
|
* remark-rehype pipeline with one switch over parsed nodes so streaming can
|
|
@@ -42545,8 +42574,7 @@ ${trimmed}
|
|
|
42545
42574
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ol", { children: items })]
|
|
42546
42575
|
}, "footnotes");
|
|
42547
42576
|
}
|
|
42548
|
-
|
|
42549
|
-
//#region src/client/markdown/MarkdownText.tsx
|
|
42577
|
+
// src/client/markdown/MarkdownText.tsx
|
|
42550
42578
|
/**
|
|
42551
42579
|
* Untrusted assistant-Markdown renderer over the direct mdast pipeline:
|
|
42552
42580
|
* `parse.ts` grammars, the incremental streaming parser, and `render.tsx`.
|
|
@@ -42725,8 +42753,7 @@ ${trimmed}
|
|
|
42725
42753
|
children
|
|
42726
42754
|
});
|
|
42727
42755
|
});
|
|
42728
|
-
|
|
42729
|
-
//#region src/client/platform-media.ts
|
|
42756
|
+
// src/client/platform-media.ts
|
|
42730
42757
|
/** Web or Desktop file route. Authorization stays Host-side. */
|
|
42731
42758
|
function localPathMediaUrl(protocol, origin, value) {
|
|
42732
42759
|
if (!value.startsWith("/") || value.startsWith("//")) return void 0;
|
|
@@ -42734,8 +42761,7 @@ ${trimmed}
|
|
|
42734
42761
|
if (protocol === "dsh-app:" && origin === "dsh-app://app") return `dsh-app://app/api/file?path=${encodeURIComponent(value)}`;
|
|
42735
42762
|
}
|
|
42736
42763
|
const readerPathImages = { resolve: (value) => typeof window === "undefined" ? void 0 : localPathMediaUrl(window.location.protocol, window.location.origin, value) };
|
|
42737
|
-
|
|
42738
|
-
//#region \0dshx-css-module:Reader.module.css.mjs
|
|
42764
|
+
// \0dshx-css-module:/home/runner/work/dsh-better-display/dsh-better-display/src/client/Reader.module.css.mjs
|
|
42739
42765
|
const css$5 = ".gNoOdq_root{color:var(--dsw-alias-label-primary);padding:16px calc(var(--dsh-composer-side-clearance,16px) + 16px) 24px;overflow-anchor:auto;--reader-lane-block:max(40px, calc(40px + var(--dsh-content-font-delta,0px)));--reader-lane-plate:linear-gradient(var(--dsw-alias-bg-base), var(--dsw-alias-bg-base)), linear-gradient(var(--dsw-alias-bg-layer-1,transparent), var(--dsw-alias-bg-layer-1,transparent));flex:none;min-width:0;font-family:inherit;font-size:16px;line-height:28px;container-type:inline-size}.gNoOdq_column{max-width:var(--dsh-chat-content-width,748px);flex-direction:column;gap:22px;width:100%;min-width:0;margin:0 auto;display:flex}.gNoOdq_column:focus,.gNoOdq_column:focus-visible{outline:none}.gNoOdq_toolbar{min-height:32px;color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-base);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:flex-end;align-items:center;gap:6px;padding:0;font-size:12px;display:flex;position:sticky;top:0}.gNoOdq_turnProcessSticky{background:var(--dsw-alias-bg-base);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;min-height:32px;display:flex;position:sticky}.gNoOdq_turnProcessSticky .gNoOdq_disclosureButton{min-height:32px}.gNoOdq_textButton,.gNoOdq_historyButton,.gNoOdq_iconButton,.gNoOdq_jump,.gNoOdq_disclosureButton,.gNoOdq_imageOpen,.gNoOdq_dialogClose{font:inherit;cursor:pointer}.gNoOdq_textButton{color:var(--dsw-alias-label-secondary);white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:2px 6px}.gNoOdq_textButton:hover,.gNoOdq_iconButton:hover,.gNoOdq_disclosureButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.gNoOdq_root button:focus-visible,.gNoOdq_root summary:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:3px}.gNoOdq_turn,.gNoOdq_turnStickyRegion{flex-direction:column;gap:14px;min-width:0;display:flex}.gNoOdq_turnStickyLanes{top:var(--reader-toolbar-height,var(--reader-lane-block,40px));z-index:6;flex-direction:column;min-width:0;display:flex;position:sticky}.gNoOdq_turn+.gNoOdq_turn,.gNoOdq_retiringContent+.gNoOdq_retiringContent>.gNoOdq_turn{margin-top:12px}.gNoOdq_userCluster{flex-direction:column;align-self:stretch;align-items:flex-end;gap:8px;width:100%;min-width:0;max-width:100%;margin-bottom:4px;display:flex}.gNoOdq_userCluster>[data-slot]>*{box-sizing:border-box;align-self:stretch;width:100%;min-width:0;max-width:100%}.gNoOdq_userImages{flex-direction:column;align-self:flex-end;align-items:flex-end;width:fit-content;min-width:0;max-width:100%;display:flex}.gNoOdq_userImages .gNoOdq_imageFigure{align-self:flex-end}.gNoOdq_user{width:fit-content;max-width:min(calc(var(--dsh-chat-content-width,748px) * .702), 82%);border-radius:var(--dsw-radius-xl,22px);background:var(--dsw-specific-bubble);color:var(--dsw-alias-label-primary);font-size:var(--dsh-content-font-size,14px);line-height:calc(22px + var(--dsh-content-font-delta,0px));white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;box-sizing:border-box;align-self:flex-end;margin-left:auto;padding:10px 16px;font-weight:400}.gNoOdq_user .gNoOdq_blocks{gap:10px}.gNoOdq_answer{overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.gNoOdq_readingText{min-width:0}.gNoOdq_reasonPlain{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;color:inherit}.gNoOdq_readingText button{min-width:24px;min-height:24px}.gNoOdq_streamWord{display:inline-block}.gNoOdq_streamInlineWord{display:inline}.gNoOdq_streamWord,.gNoOdq_streamInlineWord,.gNoOdq_streamAtom{opacity:1;filter:none}.gNoOdq_streamAtom{min-width:0}@media (prefers-reduced-motion:reduce){.gNoOdq_streamWord,.gNoOdq_streamInlineWord,.gNoOdq_streamAtom{opacity:1!important;filter:none!important}}.gNoOdq_retiringContent{min-width:0}.gNoOdq_retiringContent[data-reader-retiring=retiring]{overflow:hidden}.gNoOdq_mainFlow,.gNoOdq_blocks{flex-direction:column;gap:16px;min-width:0;display:flex}.gNoOdq_mainFlow:empty,.gNoOdq_blocks:empty{display:none}.gNoOdq_blocks>:first-child{margin-top:0}.gNoOdq_blocks>:last-child{margin-bottom:0}.gNoOdq_blocks .md-table-wide{max-width:100%}.gNoOdq_disclosure{min-width:0}.gNoOdq_disclosureButton{max-width:100%;min-height:32px;color:var(--dsw-alias-label-tertiary);font-size:calc(14px + var(--dsh-content-font-delta,0px));line-height:calc(24px + var(--dsh-content-font-delta,0px));text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:6px;margin-left:-6px;padding:4px 6px;font-weight:400;display:inline-flex}.gNoOdq_disclosure[data-reader-status-only]{align-items:center;min-height:32px;display:flex}.gNoOdq_statusText{min-width:0;max-width:100%;font-size:calc(14px + var(--dsh-content-font-delta,0px));line-height:calc(24px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-secondary);font-weight:400;display:inline-flex}.gNoOdq_srOnly{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gNoOdq_think{--think-swap:.15s;--think-gap:50ms;--think-distance:8px;--think-blur:2px;--think-shimmer:2s;--think-base:var(--dsw-alias-label-secondary);--think-highlight:var(--dsw-alias-label-primary);--think-ease:ease-in-out;text-align:left;max-width:100%;display:inline-block;position:relative}.gNoOdq_thinkSizer{visibility:hidden;white-space:nowrap;display:block}.gNoOdq_thinkText{color:var(--think-base);white-space:nowrap;text-overflow:ellipsis;filter:blur();opacity:1;transition:transform var(--think-swap) var(--think-ease), filter var(--think-swap) var(--think-ease), opacity var(--think-swap) var(--think-ease);display:block;position:absolute;top:0;left:0;right:0;overflow:hidden;transform:translateY(0)}.gNoOdq_think[data-reader-status-phase=running] .gNoOdq_thinkText[data-reader-status-copy=current]{transition-delay:var(--think-gap)}.gNoOdq_think:not([data-reader-status-phase=idle]) .gNoOdq_thinkText{will-change:transform, filter, opacity}@supports (background-clip:text){.gNoOdq_think[data-active=true] .gNoOdq_thinkText:before{content:attr(data-text);pointer-events:none;background-image:linear-gradient(90deg, transparent 0%, transparent 40%, var(--think-highlight) 50%, transparent 60%, transparent 100%);color:#0000;-webkit-text-fill-color:transparent;animation:gNoOdq_thinkShimmer var(--think-shimmer) linear infinite;background-repeat:no-repeat;background-size:400% 100%;background-clip:text;position:absolute;inset:0}}@keyframes gNoOdq_thinkShimmer{0%{background-position:100% 0}to{background-position:0 0}}.gNoOdq_thinkText.gNoOdq_isExit{transform:translateY(calc(var(--think-distance) * -1));filter:blur(var(--think-blur));opacity:0}.gNoOdq_thinkText.gNoOdq_isEnterStart{transform:translateY(var(--think-distance));filter:blur(var(--think-blur));opacity:0;transition:none}[data-motion=off] .gNoOdq_thinkText{filter:none!important;opacity:1!important;transition:none!important;transform:none!important}[data-motion=off] .gNoOdq_thinkText[data-reader-status-copy=outgoing],[data-motion=off] .gNoOdq_thinkText:before{display:none!important}@media (prefers-reduced-motion:reduce),(forced-colors:active){.gNoOdq_thinkText{filter:none!important;opacity:1!important;transition:none!important;transform:none!important}.gNoOdq_thinkText[data-reader-status-copy=outgoing],.gNoOdq_thinkText:before{display:none!important}}.gNoOdq_processMeta{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .26s cubic-bezier(.22,1,.36,1),opacity .16s ease-out;display:grid}.gNoOdq_processMeta[data-open=true]{opacity:1;grid-template-rows:1fr}.gNoOdq_processMetaInner{min-height:0;overflow:hidden}.gNoOdq_processMetaLine{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:8px;padding:8px 0 0 16px;font-size:12px;line-height:20px;display:flex}.gNoOdq_processMetaLine .gNoOdq_meta{color:inherit}.gNoOdq_chevron{stroke:currentColor;fill:none;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;flex:none;transition:transform .26s cubic-bezier(.22,1,.36,1)}.gNoOdq_chevron[data-open=true]{transform:rotate(90deg)}.gNoOdq_disclosureBody{transform-origin:top;will-change:height, opacity, transform;height:0;overflow:hidden}.gNoOdq_processContents{border-left:1px solid var(--dsw-alias-border-l2);padding:3px 0 2px var(--reader-gutter,16px);margin:0 0 0 var(--reader-rail,6px);color:var(--dsw-alias-label-secondary);font-size:14px;line-height:24px;display:flow-root}.gNoOdq_processContents>:last-child{margin-bottom:0}.gNoOdq_processSeamRow{min-height:40px;margin-left:var(--reader-rail,6px);padding-left:var(--reader-gutter,16px);border-left:1px solid var(--dsw-alias-border-l2);box-sizing:border-box;align-items:center;display:flex}.gNoOdq_processSeamRow>.gNoOdq_disclosure{align-items:center;min-height:24px;display:flex}.gNoOdq_processSeamRow .gNoOdq_disclosureButton{min-height:24px;color:var(--dsw-alias-label-tertiary);padding-block:2px;font-size:12px;line-height:20px}.gNoOdq_flowCell:has(>.gNoOdq_flowCellInner>[data-reader-seam-after])>.gNoOdq_flowCellInner{padding-bottom:0}.gNoOdq_processFrame{min-width:0}.gNoOdq_toolActivity{min-width:0;color:var(--dsw-alias-label-secondary)}.gNoOdq_nativeToolRow{min-width:0}.gNoOdq_rowSeparator{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.gNoOdq_nativeToolSummary{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);flex:1;font-size:14px;line-height:24px;overflow:hidden}.gNoOdq_nativeToolRow:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:3px;border-radius:4px}.gNoOdq_toolHeading{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:11px;grid-template-columns:20px minmax(0,1fr) auto;align-items:start;gap:10px;padding:10px 14px 4px;display:grid}.gNoOdq_toolHeading:hover{background:var(--dsw-alias-interactive-bg-hover)}.gNoOdq_toolHeading:focus-visible{outline-offset:-3px!important}.gNoOdq_toolGlyph{height:22px;color:var(--dsw-alias-label-secondary);justify-content:center;align-items:center;display:flex}.gNoOdq_toolHeadingCopy{flex-direction:column;gap:3px;min-width:0;display:flex}.gNoOdq_toolTitle{overflow-wrap:anywhere;font-size:13px;font-weight:500;line-height:22px}.gNoOdq_toolTarget{-webkit-line-clamp:2;overflow-wrap:anywhere;color:var(--dsw-alias-label-secondary);-webkit-box-orient:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:19px;display:-webkit-box;overflow:hidden}.gNoOdq_toolHeadingState{min-height:22px;color:var(--dsw-alias-label-secondary);align-items:center;gap:7px;display:flex}.gNoOdq_diffStat{font-variant-numeric:tabular-nums;font-feature-settings:\"tnum\";white-space:nowrap;flex:none;gap:6px;margin-left:8px;font-size:11px;line-height:18px;display:inline-flex}.gNoOdq_diffAdded{color:var(--dsw-alias-state-success-primary,#2f9e63)}.gNoOdq_diffRemoved{color:var(--dsw-alias-state-error-primary,#d1483c)}.gNoOdq_summaryRow{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;max-width:100%;display:flex}.gNoOdq_summaryRow>.gNoOdq_diffStatRoot{flex:none;margin-left:auto}.gNoOdq_summaryRow>:first-child{min-width:0}.gNoOdq_diffStatRoot{flex:none;position:relative}.gNoOdq_diffStatButton{cursor:pointer;font:inherit;font-variant-numeric:tabular-nums;font-feature-settings:\"tnum\";color:var(--dsw-alias-label-secondary);background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:2px 8px;font-size:11px;line-height:16px;transition:background .12s,border-color .12s;display:inline-flex}.gNoOdq_diffStatButton:hover,.gNoOdq_diffStatButton:focus-visible,.gNoOdq_diffStatButton[aria-expanded=true]{background:var(--dsw-alias-bg-module-platform,#7f7f7f1a);border-color:var(--dsw-alias-border-l2,#7f7f7f47)}.gNoOdq_diffStatButton:focus-visible{outline:none}.gNoOdq_diffStatButton[aria-expanded=true] .gNoOdq_diffCaret{opacity:1}.gNoOdq_diffOverlayRow{box-sizing:border-box;flex:100%;width:100%;min-width:0;max-width:100%;margin-top:6px}.gNoOdq_diffOverlay{box-sizing:border-box;background:var(--dsw-alias-bg-module-platform,#7f7f7f14);border:1px solid var(--dsw-alias-border-l2,#80808038);border-radius:10px;flex-direction:column;width:100%;min-width:0;max-width:100%;padding:8px;display:flex;overflow:hidden}.gNoOdq_diffTabs{scrollbar-width:thin;flex-wrap:nowrap;gap:6px;max-width:100%;margin-bottom:4px;padding-bottom:6px;display:flex;overflow-x:auto}.gNoOdq_diffTab{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;max-width:220px;font:inherit;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-base,#fffc);border:1px solid var(--dsw-alias-border-l2,#80808033);border-radius:6px;flex:none;padding:3px 10px;font-size:11px;line-height:16px;transition:all .12s;overflow:hidden}.gNoOdq_diffTab:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.gNoOdq_diffTab[data-active]{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-state-business-primary,#1e90ff);background:var(--dsw-alias-bg-base);font-weight:500}.gNoOdq_diffScrollArea{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border:1px solid var(--dsw-alias-border-l2,#80808026);background:var(--dsw-alias-markdown-code-block,#0000000a);border-radius:8px;max-height:420px;overflow:auto}.gNoOdq_diffScrollArea [data-diff]{background:0 0!important;border-radius:0!important;margin:0!important}.gNoOdq_diffCaret{opacity:.6;flex:none;width:10px;font-size:10px}.gNoOdq_diffPath{text-overflow:ellipsis;white-space:nowrap;text-align:left;direction:rtl;flex:auto;min-width:0;overflow:hidden}.gNoOdq_diffStat{font-variant-numeric:tabular-nums;flex:none;gap:6px;font-size:11px;display:inline-flex}.gNoOdq_diffHunkBody{flex-direction:column;gap:4px;padding:2px 7px 7px 25px;display:flex}.gNoOdq_diffLines{font-size:11px;line-height:1.55;font-family:var(--dsw-font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);white-space:pre;border-radius:6px;margin:0;padding:6px 8px;overflow-x:auto}.gNoOdq_diffLines[data-side=removed]{background:#d1483c1f}.gNoOdq_diffLines[data-side=added]{background:#2f9e631f}.gNoOdq_diffLineRemoved,.gNoOdq_diffLineAdded{display:block}.gNoOdq_diffLineRemoved{color:var(--dsw-alias-state-error-primary,#d1483c)}.gNoOdq_diffLineAdded{color:var(--dsw-alias-state-success-primary,#2f9e63)}.gNoOdq_diffEmpty{color:var(--dsw-alias-label-secondary);margin:0;padding:2px 0;font-size:11px}.gNoOdq_nativeToolSummary[data-running]{background-image:linear-gradient(90deg, currentColor 0%, currentColor 35%, color-mix(in srgb, currentColor 35%, transparent) 50%, currentColor 65%, currentColor 100%);-webkit-text-fill-color:transparent;background-position:100% 0;background-repeat:no-repeat;background-size:300% 100%;background-clip:text;animation:1.6s linear infinite gNoOdq_readerStepShimmer}@keyframes gNoOdq_readerStepShimmer{to{background-position:0 0}}.gNoOdq_toolElapsed[data-slow]{opacity:1;color:var(--dsw-alias-state-warning-primary,#d8862c);font-weight:500}.gNoOdq_toolElapsed{opacity:.72;font-variant-numeric:tabular-nums;font-feature-settings:\"tnum\";white-space:nowrap;flex:none;margin-left:8px;font-size:11px;line-height:18px}[data-motion=off] .gNoOdq_nativeToolSummary[data-running]{-webkit-text-fill-color:currentColor;background-image:none;animation:none!important}@media (prefers-reduced-motion:reduce){.gNoOdq_nativeToolSummary[data-running]{-webkit-text-fill-color:currentColor;background-image:none;animation:none!important}}.gNoOdq_toolState{white-space:nowrap;flex:none;margin-left:8px;font-size:11px;line-height:18px}.gNoOdq_toolState[data-phase=preparing],.gNoOdq_toolState[data-phase=running]{color:var(--dsw-alias-state-business-primary)}.gNoOdq_toolState[data-phase=preparing]:before,.gNoOdq_toolState[data-phase=running]:before{content:\"\";vertical-align:middle;background:currentColor;border-radius:50%;width:6px;height:6px;margin-right:6px;animation:1.4s ease-in-out infinite gNoOdq_readerRunningGlow;display:inline-block}@keyframes gNoOdq_readerRunningGlow{0%{box-shadow:0 0 0 0 color-mix(in srgb, currentColor 60%, transparent);opacity:1}70%{opacity:.7;box-shadow:0 0 0 7px #0000}to{opacity:1;box-shadow:0 0 #0000}}[data-motion=off] .gNoOdq_toolState[data-phase=preparing]:before,[data-motion=off] .gNoOdq_toolState[data-phase=running]:before{animation:none!important}@media (prefers-reduced-motion:reduce){.gNoOdq_toolState[data-phase=preparing]:before,.gNoOdq_toolState[data-phase=running]:before{animation:none!important}}.gNoOdq_toolState[data-phase=failed]{color:var(--dsw-alias-state-error-primary)}.gNoOdq_toolState[data-phase=interrupted]{color:inherit;opacity:.7}.gNoOdq_toolLedger{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:10px 14px 0;font-size:11px;line-height:18px;display:flex}.gNoOdq_toolEngine{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.gNoOdq_toolDetails{border:1px solid var(--dsw-alias-border-l2);border-radius:8px;min-width:0;margin:6px 0 0 22px;overflow:hidden}.gNoOdq_toolTabs{align-items:center;gap:15px;padding:0 14px;display:flex}.gNoOdq_toolTabs>button{font:inherit;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 1px 8px;font-size:12px;line-height:20px}.gNoOdq_toolTabs>button[aria-selected=true]{color:var(--dsw-alias-label-primary);border-bottom-color:var(--dsw-alias-state-business-primary)}.gNoOdq_toolPanel{flex-direction:column;gap:12px;min-width:0;padding:12px 14px 14px;font-size:13px;line-height:22px;display:flex}.gNoOdq_toolPanel:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:-3px}.gNoOdq_toolDetailNote{color:var(--dsw-alias-label-secondary);margin:0 0 9px;font-size:12px;line-height:20px}.gNoOdq_toolRawLabel{color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;font-weight:500}.gNoOdq_toolRaw{background:var(--dsw-alias-bg-module-platform);max-height:400px;color:var(--dsw-alias-label-primary);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;margin:0;padding:12px;font:12px/20px ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.gNoOdq_systemPrompt{background:var(--dsw-alias-bg-module-platform);max-height:320px;color:var(--dsw-alias-label-primary);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;margin:0;padding:12px;font:12px/20px ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.gNoOdq_commandInput{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.gNoOdq_toolReceipt .gNoOdq_blocks,.gNoOdq_toolDocument .gNoOdq_blocks{font-size:13px;line-height:22px}.gNoOdq_toolChildren{margin:0 14px 12px var(--reader-rail,6px);padding-left:var(--reader-gutter,16px);border-left:1px solid var(--dsw-alias-border-l2);flex-direction:column;gap:9px;display:flex}@container (width<=420px){.gNoOdq_toolHeading{grid-template-columns:16px minmax(0,1fr) auto;gap:7px;padding:11px 10px 6px}.gNoOdq_toolHeadingState{gap:4px}.gNoOdq_toolLedger{padding-left:33px;padding-right:10px}.gNoOdq_toolPanel{padding:10px}}@media (pointer:coarse){.gNoOdq_toolTabs>button{min-height:44px}}.gNoOdq_reasonCard{--reason-preview-height:224px;--reason-hold:.84s;--reason-step:.5s;--reason-lines:2;--reason-fade:28px;--reason-ease:cubic-bezier(.22, 1, .36, 1);border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);min-width:0;scroll-margin-block:16px calc(var(--dsh-composer-height,152px) + 16px);border-radius:12px;position:relative;overflow:hidden}.gNoOdq_reasonHeading{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 16px 0;font-size:12px;line-height:20px;display:flex}.gNoOdq_reasonCard[data-overflow=false][data-expanded=false]{background:0 0;border-color:#0000;border-radius:0}.gNoOdq_reasonCard[data-overflow=false][data-expanded=false] .gNoOdq_reasonHeading{padding:0}.gNoOdq_reasonCard[data-overflow=false][data-expanded=false] .gNoOdq_reasonText{padding:4px 0 0 22px}.gNoOdq_reasonLabel{font-weight:500}.gNoOdq_reasonViewport{max-height:var(--reason-preview-height);scroll-behavior:auto;overflow-anchor:none;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l1) transparent;position:relative;overflow:auto}.gNoOdq_reasonCard[data-expanded=true] .gNoOdq_reasonViewport{max-height:min(60vh, 560px, var(--reason-reading-height,560px))}.gNoOdq_reasonViewport[data-edges=both],.gNoOdq_reasonCard[data-following=true][data-overflow=true] .gNoOdq_reasonViewport{-webkit-mask-image:linear-gradient(transparent 0, black var(--reason-fade), black calc(100% - var(--reason-fade)), transparent 100%);mask-image:linear-gradient(transparent 0, black var(--reason-fade), black calc(100% - var(--reason-fade)), transparent 100%)}.gNoOdq_reasonViewport[data-edges=top]{-webkit-mask-image:linear-gradient(transparent 0, black var(--reason-fade), black 100%);mask-image:linear-gradient(transparent 0, black var(--reason-fade), black 100%)}.gNoOdq_reasonViewport[data-edges=bottom]{-webkit-mask-image:linear-gradient(black 0, black calc(100% - var(--reason-fade)), transparent 100%);mask-image:linear-gradient(black 0, black calc(100% - var(--reason-fade)), transparent 100%)}.gNoOdq_reasonCard[data-expanded=true] .gNoOdq_reasonViewport{mask-image:none}.gNoOdq_reasonViewport:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:-3px}.gNoOdq_reasonTrack{position:relative;transform:translateY(0)}.gNoOdq_reasonCard[data-following=true] .gNoOdq_reasonTrack{will-change:transform}.gNoOdq_reasonText{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;padding:8px 16px 16px;font-size:14px;line-height:24px}.gNoOdq_reasonText .gNoOdq_readingText>div{font-size:inherit;line-height:inherit;color:inherit}.gNoOdq_reasonFooter{color:var(--dsw-alias-label-secondary);justify-content:space-between;align-items:center;gap:8px;padding:2px 10px 8px;font-size:12px;line-height:20px;display:flex}.gNoOdq_reasonAction{min-height:28px;color:inherit;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:5px;padding:4px 6px;display:inline-flex}.gNoOdq_reasonAction:hover{background:var(--dsw-alias-interactive-bg-hover)}.gNoOdq_reasonAction:disabled{cursor:default;opacity:.65}.gNoOdq_reasonAction svg{fill:none;stroke:currentColor;stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round;flex:none}.gNoOdq_reasonCaption{padding-left:6px}@container (width<=480px){.gNoOdq_reasonCard{--reason-preview-height:192px}}@media (pointer:coarse){.gNoOdq_reasonAction{min-height:44px}}@media (prefers-reduced-motion:reduce){.gNoOdq_reasonTrack{will-change:auto!important;transition:none!important;transform:none!important}}@media (forced-colors:active){.gNoOdq_reasonViewport{mask-image:none!important}}.gNoOdq_processItem,.gNoOdq_tool{min-width:0;margin:0 0 18px}.gNoOdq_processLabel{color:var(--dsw-alias-label-tertiary);align-items:baseline;gap:12px;margin:0 0 6px;font-size:12px;line-height:20px;display:flex}.gNoOdq_processFootnote{color:var(--dsw-alias-label-tertiary);margin:14px 0 0;font-size:12px;line-height:20px}.gNoOdq_detail{color:var(--dsw-alias-label-secondary);font-size:13px;line-height:22px}.gNoOdq_detail>summary{cursor:pointer;padding:3px 0}.gNoOdq_detail[open]>summary{margin-bottom:8px}.gNoOdq_tool>.gNoOdq_tool{margin:10px 0 0 12px}.gNoOdq_meta{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:20px}.gNoOdq_stopped{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-tertiary);border-radius:6px;align-self:flex-start;margin-top:12px;padding:0 6px;font-size:11px;line-height:18px}.gNoOdq_compactionRow{box-sizing:border-box;flex-direction:column;align-items:center;width:100%;margin:16px 0;display:flex}.gNoOdq_compactionLine{width:100%;color:var(--dsw-alias-label-tertiary);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:12px;font-size:11px;line-height:18px;display:flex}.gNoOdq_compactionLine:before,.gNoOdq_compactionLine:after{content:\"\";background:var(--dsw-alias-border-l1);opacity:.7;flex:1;height:1px}.gNoOdq_compactionRow>.gNoOdq_compactionLine{animation:.52s cubic-bezier(.4,0,.2,1) both gNoOdq_compactionLineIn}.gNoOdq_compactionRow>.gNoOdq_compactionLine>.gNoOdq_compactionPill{animation:.42s cubic-bezier(.34,1.4,.64,1) .12s both gNoOdq_compactionPillIn}.gNoOdq_compactionRow>.gNoOdq_compactionLine .gNoOdq_compactionIcon{animation:.9s cubic-bezier(.4,0,.2,1) .2s both gNoOdq_compactionDial}@keyframes gNoOdq_compactionLineIn{0%{opacity:0;transform:scaleX(.6)}to{opacity:1;transform:scaleX(1)}}@keyframes gNoOdq_compactionPillIn{0%{opacity:0;transform:translateY(-6px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes gNoOdq_compactionDial{0%{opacity:0;transform:rotate(-140deg)}to{opacity:.7;transform:rotate(0)}}[data-motion=off] .gNoOdq_compactionRow>.gNoOdq_compactionLine,[data-motion=off] .gNoOdq_compactionRow>.gNoOdq_compactionLine>.gNoOdq_compactionPill,[data-motion=off] .gNoOdq_compactionRow>.gNoOdq_compactionLine .gNoOdq_compactionIcon{animation:none!important}@media (prefers-reduced-motion:reduce){.gNoOdq_compactionRow>.gNoOdq_compactionLine,.gNoOdq_compactionRow>.gNoOdq_compactionLine>.gNoOdq_compactionPill,.gNoOdq_compactionRow>.gNoOdq_compactionLine .gNoOdq_compactionIcon{animation:none!important}}.gNoOdq_compactionPill{background:var(--dsw-alias-bg-module-platform);border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-tertiary);border-radius:12px;align-items:center;gap:6px;padding:2px 10px;font-family:inherit;font-size:11px;line-height:18px;display:inline-flex}.gNoOdq_compactionButton{cursor:pointer;transition:color .14s,border-color .14s,background-color .14s}.gNoOdq_compactionButton:hover{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l2);background:var(--dsw-alias-interactive-bg-hover)}.gNoOdq_compactionIcon{opacity:.7;flex:none;width:12px;height:12px}.gNoOdq_compactionToggle{opacity:.8;margin-left:2px;font-size:10px}.gNoOdq_compactionSummaryBox{background:var(--dsw-alias-bg-module-platform);border:1px solid var(--dsw-alias-border-l2);width:100%;max-width:680px;color:var(--dsw-alias-label-secondary);box-sizing:border-box;border-radius:8px;margin-top:10px;padding:12px 16px;font-size:12px;line-height:20px}.gNoOdq_compactionSummaryHeader{color:var(--dsw-alias-label-tertiary);border-bottom:1px dashed var(--dsw-alias-border-l1);margin-bottom:8px;padding-bottom:4px;font-size:11px;font-weight:500}.gNoOdq_notice,.gNoOdq_error,.gNoOdq_attention{overflow-wrap:anywhere;border-radius:10px;padding:12px 14px;font-size:13px;line-height:20px}.gNoOdq_notice{background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-secondary);border:1px solid var(--dsw-alias-border-l2)}.gNoOdq_error{color:var(--dsw-alias-label-primary);background:#ef44440f;border:1px solid #ef444438;align-items:flex-start;gap:10px;display:flex}.gNoOdq_errorIcon{color:#ef4444;flex:none;width:16px;height:16px;margin-top:2px}.gNoOdq_errorCopy{flex:1;min-width:0}.gNoOdq_errorTitle{color:#dc2626;align-items:center;gap:8px;margin-bottom:2px;font-weight:500;display:flex}.gNoOdq_errorMessage{color:var(--dsw-alias-label-secondary);word-break:break-word;margin:0;font-size:12px;line-height:18px}.gNoOdq_errorCode{color:#dc2626;background:#ef44441f;border-radius:4px;padding:1px 5px;font-family:inherit;font-size:11px}.gNoOdq_attention{border:1px solid var(--dsw-alias-state-business-primary);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-base);flex-direction:column;gap:3px;display:flex}.gNoOdq_attention span{color:var(--dsw-alias-label-secondary)}.gNoOdq_unknown{background:var(--dsw-alias-bg-module-platform);border:1px solid var(--dsw-alias-border-l2);border-radius:10px;padding:12px 14px;font-size:13px;line-height:22px}.gNoOdq_unknown p{margin:0 0 6px}.gNoOdq_historyButton{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);background:0 0;border-radius:8px;align-self:center;padding:4px 12px;font-size:12px}.gNoOdq_historyButton:disabled{opacity:.55;cursor:default}.gNoOdq_empty{color:var(--dsw-alias-label-tertiary);text-align:center;padding:40px 0}.gNoOdq_answerActions{align-items:center;gap:8px;min-height:28px;margin:13px 0 0 -6px;display:flex}.gNoOdq_userActions{align-items:center;gap:8px;min-height:28px;display:flex}.gNoOdq_messageClock{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px;line-height:24px}.gNoOdq_iconButton{color:var(--dsw-alias-label-tertiary);background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:6px;display:inline-flex}.gNoOdq_iconButton svg{fill:none;stroke:currentColor;stroke-width:1.2px;stroke-linecap:round;stroke-linejoin:round}.gNoOdq_imageFigure{box-sizing:border-box;align-self:flex-start;width:min(100%,360px);max-width:100%;margin:0}.gNoOdq_imageFrame{background:var(--dsw-alias-bg-module-platform);border:1px solid var(--dsw-alias-border-l2);box-sizing:border-box;border-radius:12px;max-width:100%;min-height:96px;max-height:440px;position:relative;overflow:hidden}.gNoOdq_imageOpen{background:0 0;border:0;width:100%;height:100%;padding:0;display:flex;position:absolute;inset:0}.gNoOdq_imageOpen img{object-fit:contain;opacity:0;width:100%;height:100%;transition:opacity .2s cubic-bezier(.4,0,.2,1);display:block}.gNoOdq_imageOpen img[data-ready=true]{opacity:1}.gNoOdq_pendingImage{object-fit:contain;width:100%;max-width:100%;height:100%;display:block}.gNoOdq_imagePlaceholder{color:var(--dsw-alias-label-tertiary);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex;position:absolute;inset:0}.gNoOdq_imagePlaceholder button{pointer-events:auto}.gNoOdq_imageFigure figcaption{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;margin-top:6px;font-size:12px;line-height:20px}.gNoOdq_imageDialog{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary);border-radius:16px;max-width:90vw;max-height:90vh;padding:38px 20px 20px}.gNoOdq_imageDialog::backdrop{background:var(--dsw-alias-bg-mask-photo)}.gNoOdq_imageDialog img{object-fit:contain;max-width:82vw;max-height:75vh;display:block}.gNoOdq_dialogClose{color:inherit;background:0 0;border:0;border-radius:8px;width:32px;height:32px;font-size:24px;position:absolute;top:4px;right:8px}.gNoOdq_jumpDock{bottom:calc(var(--dsh-composer-height,152px) + 16px);z-index:8;pointer-events:none;justify-content:flex-end;height:0;display:flex;position:sticky}.gNoOdq_deliverablesRoot{grid-template-columns:max-content minmax(0,1fr);align-items:start;column-gap:10px;margin-top:14px;font-size:13px;line-height:22px;display:grid}.gNoOdq_deliverablesLabel{color:var(--dsw-alias-label-tertiary);grid-area:1/1;padding-top:2px;font-size:12px;font-weight:500}.gNoOdq_deliverablesLane{grid-area:1/2;min-width:0}.gNoOdq_deliverablesRow{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.gNoOdq_deliverableChip{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);border-radius:6px;align-items:center;font-size:12px;line-height:20px;transition:border-color .16s,background-color .16s,color .16s;display:inline-flex;overflow:hidden}.gNoOdq_deliverableChip:hover{border-color:var(--dsw-alias-border-l3);background:var(--dsw-alias-bg-module-platform);box-shadow:0 1px 4px var(--dsw-alias-border-l1)}.gNoOdq_deliverableChip[data-status=opened]{color:#059669;background:#10b9811f;border-color:#10b981}.gNoOdq_chipMain{max-width:220px;color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:5px;padding:3px 6px 3px 8px;display:inline-flex}.gNoOdq_chipMain:hover{color:var(--dsw-alias-label-primary)}.gNoOdq_deliverableIcon,.gNoOdq_statusIcon{opacity:.8;flex:none;width:13px;height:13px}.gNoOdq_statusIcon{color:#10b981}.gNoOdq_deliverableName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gNoOdq_chipActions{opacity:.65;border-left:1px solid #0000;align-items:center;gap:2px;padding-right:4px;transition:opacity .15s,border-left-color .15s;display:inline-flex}.gNoOdq_deliverableChip:hover .gNoOdq_chipActions{opacity:1;border-left-color:var(--dsw-alias-border-l2)}.gNoOdq_chipActionBtn{width:20px;height:20px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:color .12s,background-color .12s;display:inline-flex}.gNoOdq_chipActionBtn:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.gNoOdq_actionIcon{width:12px;height:12px}.gNoOdq_deliverablesMore{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:12px}.gNoOdq_deliverablesShowFolder{color:var(--dsw-alias-label-tertiary);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;align-items:center;gap:4px;padding:2px 7px;font-size:12px;transition:all .15s;display:inline-flex}.gNoOdq_deliverablesShowFolder:hover{color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.gNoOdq_deliverablesShowFolder[data-status=opened]{color:#10b981;background:#10b98114;border-color:#10b9814d}.gNoOdq_morphCluster{flex-direction:column;width:100%;min-width:0;display:flex}.gNoOdq_morphDrawer{transform-origin:top;will-change:height, opacity, transform;height:0;overflow:hidden}.gNoOdq_liveFoldImpact{animation:.18s cubic-bezier(.2,0,0,1) both gNoOdq_liveFoldElastic}@keyframes gNoOdq_liveFoldElastic{0%{transform:scale(1)}50%{transform:scale(1.015)}to{transform:scale(1)}}.gNoOdq_liveFoldContainer{top:calc(var(--reader-toolbar-height,var(--reader-lane-block,40px)) + var(--reader-status-height,var(--reader-lane-block,40px)) + var(--reader-summary-height,var(--reader-lane-block,40px)));z-index:4;background:var(--dsw-alias-bg-base);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform-origin:0;will-change:transform, opacity;margin-bottom:6px;padding:4px 0;animation:.32s cubic-bezier(.16,1,.3,1) both gNoOdq_liveFoldPulse;position:sticky}@keyframes gNoOdq_liveFoldPulse{0%{opacity:.8;transform:translateY(-4px)scale(.98)}50%{opacity:1;transform:translateY(0)scale(1.02)}to{opacity:1;transform:translateY(0)scale(1)}}[data-motion=off] .gNoOdq_liveFoldContainer{animation:none!important}@media (prefers-reduced-motion:reduce){.gNoOdq_liveFoldContainer{animation:none!important}}.gNoOdq_priorFoldDrawer{flex-direction:column;gap:14px;width:100%;min-width:0;display:flex}.gNoOdq_jump{width:34px;height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-button-floating-fill,var(--dsw-alias-bg-base));box-shadow:var(--dsw-elevation-panel,0 2px 8px var(--dsw-alias-border-l1));pointer-events:auto;border:0;border-radius:100px;flex:none;justify-content:center;align-items:center;margin-top:-34px;padding:0;display:flex}.gNoOdq_jump:hover{background:var(--dsw-alias-button-floating-hover,var(--dsw-alias-interactive-bg-hover))}.gNoOdq_foldSummary{text-overflow:ellipsis;align-items:baseline;max-width:100%;display:inline-flex;overflow:hidden;white-space:nowrap!important}.gNoOdq_foldSummaryPart{flex:none;align-items:baseline;display:inline-flex;white-space:nowrap!important}.gNoOdq_numberRollRoot{vertical-align:baseline;line-height:inherit;font-variant-numeric:tabular-nums;font-feature-settings:\"tnum\";text-align:center;flex-shrink:0;justify-content:center;min-width:1.45em;display:inline-flex;position:relative;overflow:hidden;white-space:nowrap!important}.gNoOdq_numberRollSizer{visibility:hidden;-webkit-user-select:none;user-select:none;pointer-events:none;line-height:inherit;white-space:nowrap}.gNoOdq_numberRollDigit{line-height:inherit;white-space:nowrap;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.gNoOdq_numberRollExit{animation:.24s cubic-bezier(.16,1,.3,1) forwards gNoOdq_numberRollOut}.gNoOdq_numberRollEnter{animation:.24s cubic-bezier(.16,1,.3,1) forwards gNoOdq_numberRollIn}@keyframes gNoOdq_numberRollOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}@keyframes gNoOdq_numberRollIn{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}[data-motion=off] .gNoOdq_chevron,[data-motion=off] .gNoOdq_imageOpen img,[data-motion=off] .gNoOdq_processMeta,[data-motion=off] .gNoOdq_numberRollDigit{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){.gNoOdq_chevron,.gNoOdq_imageOpen img,.gNoOdq_processMeta,.gNoOdq_numberRollDigit{transition:none!important;animation:none!important}}.gNoOdq_turnStatus{white-space:nowrap;flex:none;align-self:flex-start;align-items:center;height:26px;margin:4px 0 12px;padding:0 4px;font-size:14px;line-height:22px;display:inline-flex}.gNoOdq_turnStatusLabel{background:linear-gradient(90deg, var(--dsw-static-deepseek-500,#4d6bfe) 0%, var(--dsw-static-deepseek-500,#4d6bfe) 40%, var(--dsw-static-deepseek-200,#a8c7fa) 50%, var(--dsw-static-deepseek-500,#4d6bfe) 60%, var(--dsw-static-deepseek-500,#4d6bfe) 100%);color:#0000;-webkit-text-fill-color:transparent;background-position:100% 0;background-size:250% 100%;background-clip:text;font-weight:500;animation:1.8s linear infinite gNoOdq_dsh-turn-status-shimmer}.gNoOdq_waitClock{flex:none;align-items:center;margin-left:8px;display:inline-flex}.gNoOdq_waitSeconds{font-variant-numeric:tabular-nums;font-feature-settings:\"tnum\";color:var(--dsw-alias-label-caption,#86909c);font-size:13px;font-weight:400}.gNoOdq_waitOvertime{color:var(--dsw-alias-state-warning-primary,#d8862c);background:color-mix(in srgb, var(--dsw-alias-state-warning-primary,#d8862c) 16%, transparent);border-radius:5px;margin-left:8px;padding:0 6px;font-size:11px;line-height:16px}.gNoOdq_turnStatusClock{font-variant-numeric:tabular-nums;font-feature-settings:\"tnum\";color:var(--dsw-alias-label-caption,#86868b);-webkit-text-fill-color:var(--dsw-alias-label-caption,#86868b);margin-left:8px;font-size:13px;font-weight:400}@keyframes gNoOdq_dsh-turn-status-shimmer{to{background-position:0 0}}[data-motion=off] .gNoOdq_turnStatusLabel{color:var(--dsw-static-deepseek-500,#4d6bfe)!important;-webkit-text-fill-color:var(--dsw-static-deepseek-500,#4d6bfe)!important;animation:none!important}@media (prefers-reduced-motion:reduce){.gNoOdq_turnStatusLabel{color:var(--dsw-static-deepseek-500,#4d6bfe)!important;-webkit-text-fill-color:var(--dsw-static-deepseek-500,#4d6bfe)!important;animation:none!important}}@media (pointer:coarse){.gNoOdq_disclosureButton{min-height:44px}}@media (width<=600px){.gNoOdq_root{padding-inline:20px}.gNoOdq_column{gap:18px}.gNoOdq_toolbar{font-size:11px}}.gNoOdq_choreographedFlow{overflow-anchor:none;flex-direction:column;min-width:0;display:flex}.gNoOdq_flowCell{min-width:0;display:flow-root;overflow:clip}.gNoOdq_flowCell[hidden]{display:none}.gNoOdq_flowCellInner{flex-direction:column;min-width:0;padding-bottom:16px;display:flex}.gNoOdq_flowCellInner:empty{padding-bottom:0}.gNoOdq_choreographedFlow[data-reader-transition=collapse] .gNoOdq_flowCell *{animation-play-state:paused!important}.gNoOdq_numberRollExit,.gNoOdq_numberRollEnter{animation-duration:.16s}.gNoOdq_foldSummary{align-items:baseline;display:inline-flex;white-space:nowrap!important;flex-wrap:nowrap!important}.gNoOdq_toolbar{box-sizing:border-box;width:100%;max-width:100%;min-height:var(--reader-lane-block,40px);z-index:7;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:0;align-self:stretch}.gNoOdq_turnProcessSticky{box-sizing:border-box;width:calc(100% - var(--reader-control-width,148px));top:var(--reader-toolbar-height,var(--reader-lane-block,40px));min-height:var(--reader-lane-block,40px);z-index:6;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 -14px 0 var(--dsw-alias-bg-base), var(--reader-control-width,148px) 0 0 var(--dsw-alias-bg-base), 0 -14px 0 var(--dsw-alias-bg-layer-1,transparent), var(--reader-control-width,148px) 0 0 var(--dsw-alias-bg-layer-1,transparent), 0 -14px 0 Canvas, var(--reader-control-width,148px) 0 0 Canvas;background-clip:padding-box;border-bottom:1px solid #0000;padding-right:0}.gNoOdq_turnStickyLanes .gNoOdq_turnProcessSticky,.gNoOdq_turnStickyLanes .gNoOdq_closedProcessSummary{z-index:auto;position:static;top:auto}.gNoOdq_flowCell[data-flow-summary],.gNoOdq_closedProcessSummary{top:calc(var(--reader-toolbar-height,var(--reader-lane-block,40px)) + var(--reader-status-height,var(--reader-lane-block,40px)));z-index:5;box-sizing:border-box;min-height:var(--reader-lane-block,40px);background:var(--dsw-alias-bg-base);border-bottom:0;padding-block:4px;position:sticky;overflow:visible}.gNoOdq_root .md-code-block{z-index:0}.gNoOdq_turnStickyRegion:has(>.gNoOdq_turnStickyLanes>.gNoOdq_closedProcessSummary),.gNoOdq_turnStickyRegion:has(.gNoOdq_flowCell[data-flow-summary]){--reader-code-summary-height:var(--reader-summary-height,var(--reader-lane-block,40px))}.gNoOdq_root .md-code-block>:has(+[data-code-block-content]){top:calc(max(var(--reader-toolbar-height,40px), var(--reader-status-height,0px)) + var(--reader-status-height,0px) + var(--reader-code-summary-height,0px))}.gNoOdq_flowCell[data-flow-summary]{box-shadow:0 -16px 0 var(--dsw-alias-bg-base), 0 -16px 0 var(--dsw-alias-bg-layer-1,transparent), 0 -16px 0 Canvas}.gNoOdq_closedProcessSummary{box-shadow:0 -14px 0 var(--dsw-alias-bg-base), 0 -14px 0 var(--dsw-alias-bg-layer-1,transparent), 0 -14px 0 Canvas}.gNoOdq_foldControl{background:var(--dsw-alias-bg-module-platform);border-radius:8px;align-items:center;gap:0;padding:2px;display:inline-flex}.gNoOdq_foldStop{color:var(--dsw-alias-label-secondary);white-space:nowrap;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:2px 8px;font-size:12px;line-height:18px}.gNoOdq_foldStop[data-on]{background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary)}.gNoOdq_flowCell[data-flow-summary]>.gNoOdq_flowCellInner{padding-bottom:0}.gNoOdq_flowCell[data-flow-summary] .gNoOdq_disclosureButton,.gNoOdq_closedProcessSummary .gNoOdq_disclosureButton{width:auto;max-width:100%}.gNoOdq_flowCell[data-flow-summary] .gNoOdq_foldSummary,.gNoOdq_closedProcessSummary .gNoOdq_foldSummary{min-width:0}.gNoOdq_turnProcessSticky>.gNoOdq_disclosure{flex:auto;min-width:0}.gNoOdq_disclosureButton{width:max-content;max-width:calc(100% + 6px)}.gNoOdq_statusText{flex:0 auto}.gNoOdq_think{width:max-content;min-width:0}.gNoOdq_thinkSizer{white-space:normal;overflow-wrap:anywhere}.gNoOdq_thinkText{white-space:normal;overflow-wrap:anywhere;text-overflow:clip;overflow:visible}.gNoOdq_toolbar,.gNoOdq_turnStickyLanes,.gNoOdq_turnProcessSticky,.gNoOdq_liveFoldContainer,.gNoOdq_flowCell[data-flow-summary],.gNoOdq_closedProcessSummary{background-color:canvas;background-image:var(--reader-lane-plate);background-repeat:no-repeat}.gNoOdq_root[data-reader-glass] .gNoOdq_toolbar,.gNoOdq_root[data-reader-glass] .gNoOdq_turnProcessSticky,.gNoOdq_root[data-reader-glass] .gNoOdq_liveFoldContainer{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:none;background:0 0;border:0;border-radius:0}.gNoOdq_root[data-reader-glass] .gNoOdq_toolbar,.gNoOdq_root[data-reader-glass] .gNoOdq_turnProcessSticky{-webkit-backdrop-filter:none;backdrop-filter:none}.gNoOdq_root[data-reader-glass] .gNoOdq_toolbar{pointer-events:none}.gNoOdq_root[data-reader-glass] .gNoOdq_toolbar>.gNoOdq_textButton,.gNoOdq_root[data-reader-glass] .gNoOdq_turnProcessSticky .gNoOdq_disclosureButton{pointer-events:auto;background:color-mix(in srgb, var(--dsw-alias-bg-layer-1,#ffffffb3) 80%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px;padding:2px 10px}.gNoOdq_root[data-reader-glass] .gNoOdq_turnProcessSticky .gNoOdq_disclosureButton{max-width:100%;margin-left:0}.gNoOdq_root[data-reader-glass] .gNoOdq_toolbar>.gNoOdq_textButton:hover,.gNoOdq_root[data-reader-glass] .gNoOdq_turnProcessSticky .gNoOdq_disclosureButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.gNoOdq_root[data-reader-glass] .gNoOdq_flowCell[data-flow-summary],.gNoOdq_root[data-reader-glass] .gNoOdq_closedProcessSummary{box-shadow:none;z-index:auto;border-left:2px solid color-mix(in srgb, var(--dsw-alias-border-l2,#80808059) 80%, transparent);padding-block:2px;background:0 0;border-radius:0;min-height:32px;padding-left:10px;position:static}.gNoOdq_root[data-reader-glass] .gNoOdq_turnStickyLanes{z-index:auto;display:contents;position:static;top:auto}.gNoOdq_root[data-reader-glass] .gNoOdq_turnStickyRegion{--reader-code-summary-height:0px}.gNoOdq_root[data-reader-glass] .gNoOdq_turnStickyLanes .gNoOdq_turnProcessSticky{top:var(--reader-toolbar-height,var(--reader-lane-block,40px));z-index:6;position:sticky}.gNoOdq_root[data-reader-glass] .gNoOdq_user{background:color-mix(in srgb, var(--dsw-specific-bubble,#00000014) 25%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid color-mix(in srgb, var(--dsw-alias-border-l1,#8080804d) 30%, transparent)}.gNoOdq_root[data-reader-glass] .gNoOdq_reasonCard{border-color:color-mix(in srgb, var(--dsw-alias-border-l1,#80808059) 65%, transparent);background:0 0}.gNoOdq_root[data-reader-glass] .gNoOdq_toolDetails,.gNoOdq_root[data-reader-glass] .gNoOdq_notice,.gNoOdq_root[data-reader-glass] .gNoOdq_unknown,.gNoOdq_root[data-reader-glass] .gNoOdq_toolRaw,.gNoOdq_root[data-reader-glass] .gNoOdq_systemPrompt,.gNoOdq_root[data-reader-glass] .gNoOdq_compactionSummaryBox,.gNoOdq_root[data-reader-glass] .gNoOdq_attention,.gNoOdq_root[data-reader-glass] .gNoOdq_imageFrame,.gNoOdq_root[data-reader-glass] .gNoOdq_imageDialog{background:0 0}.gNoOdq_root[data-reader-glass] .gNoOdq_diffOverlay{background:color-mix(in srgb, var(--dsw-alias-bg-module-platform,#7f7f7f1a) 20%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.gNoOdq_root[data-reader-glass] .gNoOdq_diffScrollArea{background:0 0}.gNoOdq_root[data-reader-glass] .gNoOdq_diffTab{background:color-mix(in srgb, var(--dsw-alias-bg-base,#fffc) 25%, transparent)}.gNoOdq_root[data-reader-glass] .gNoOdq_diffTab[data-active]{background:color-mix(in srgb, var(--dsw-alias-bg-base,#fff) 45%, transparent)}:is(.gNoOdq_root[data-reader-glass] .md-code-block,.gNoOdq_root[data-reader-glass] [data-diff]){border:1px solid color-mix(in srgb, var(--dsw-alias-border-l1,#80808033) 30%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:color-mix(in srgb, var(--dsw-alias-markdown-code-block,#0000000f) 25%, transparent)!important}.gNoOdq_root[data-reader-glass] .gNoOdq_foldControl{background:color-mix(in srgb, var(--dsw-alias-bg-module-platform,#7f7f7f1a) 25%, transparent);border:1px solid color-mix(in srgb, var(--dsw-alias-border-l2,#80808033) 30%, transparent)}.gNoOdq_root[data-reader-glass] .gNoOdq_foldStop[data-on]{background:color-mix(in srgb, var(--dsw-alias-bg-base,#fff) 35%, transparent)}.gNoOdq_root[data-reader-glass] .gNoOdq_compactionPill,.gNoOdq_root[data-reader-glass] .gNoOdq_deliverableChip,.gNoOdq_root[data-reader-glass] .gNoOdq_toolState,.gNoOdq_root[data-reader-glass] .gNoOdq_diffStatButton{background:0 0;border-color:#0000}.gNoOdq_root[data-reader-glass] .gNoOdq_compactionPill:hover,.gNoOdq_root[data-reader-glass] .gNoOdq_compactionPill:focus-visible,.gNoOdq_root[data-reader-glass] .gNoOdq_deliverableChip:hover,.gNoOdq_root[data-reader-glass] .gNoOdq_deliverableChip:focus-within,.gNoOdq_root[data-reader-glass] .gNoOdq_toolState:hover,.gNoOdq_root[data-reader-glass] .gNoOdq_diffStatButton:hover,.gNoOdq_root[data-reader-glass] .gNoOdq_diffStatButton:focus-visible,.gNoOdq_root[data-reader-glass] .gNoOdq_diffStatButton[aria-expanded=true]{background:var(--dsw-alias-bg-module-platform,#7f7f7f1a);border-color:var(--dsw-alias-border-l2,#7f7f7f47)}";
|
|
42740
42766
|
const tagId$5 = "dsh-better-display/Reader.module.css";
|
|
42741
42767
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
|
|
@@ -42924,8 +42950,7 @@ ${trimmed}
|
|
|
42924
42950
|
"waitOvertime": "gNoOdq_waitOvertime",
|
|
42925
42951
|
"waitSeconds": "gNoOdq_waitSeconds"
|
|
42926
42952
|
};
|
|
42927
|
-
|
|
42928
|
-
//#region src/client/word-motion.tsx
|
|
42953
|
+
// src/client/word-motion.tsx
|
|
42929
42954
|
const WordScope = (0, react.createContext)({
|
|
42930
42955
|
enabled: false,
|
|
42931
42956
|
generation: 0
|
|
@@ -43079,8 +43104,7 @@ ${trimmed}
|
|
|
43079
43104
|
})
|
|
43080
43105
|
});
|
|
43081
43106
|
}
|
|
43082
|
-
|
|
43083
|
-
//#region src/client/text-transform.ts
|
|
43107
|
+
// src/client/text-transform.ts
|
|
43084
43108
|
/**
|
|
43085
43109
|
* Cordis service name. Another client plugin lists this in `inject` and
|
|
43086
43110
|
* registers a transformer. The reading view paints the result. The session
|
|
@@ -43289,8 +43313,7 @@ ${trimmed}
|
|
|
43289
43313
|
function originalAnswerText(blocks) {
|
|
43290
43314
|
return blocks.flatMap((block) => block.kind === "text" && typeof block.text === "string" ? [block.text] : []).join("\n\n");
|
|
43291
43315
|
}
|
|
43292
|
-
|
|
43293
|
-
//#region \0dshx-css-module:TurnMetrics.module.css.mjs
|
|
43316
|
+
// \0dshx-css-module:/home/runner/work/dsh-better-display/dsh-better-display/src/client/TurnMetrics.module.css.mjs
|
|
43294
43317
|
const css$4 = "._QZbGG_container{color:var(--dsw-alias-label-tertiary);align-items:center;gap:2px;font-size:13px;line-height:24px;display:inline-flex;position:relative}._QZbGG_pillButton{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-tertiary);cursor:pointer;border-radius:12px;outline:none;align-items:center;gap:5px;padding:2px 8px;font-family:inherit;font-size:11px;transition:all .14s;display:inline-flex}._QZbGG_pillButton:hover,._QZbGG_pillButton[data-active=true]{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l2);background:var(--dsw-alias-interactive-bg-hover)}._QZbGG_timeButton{height:28px;color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:28px;align-items:center;gap:4px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:24px;display:inline-flex}._QZbGG_timeButton:hover,._QZbGG_timeButton[data-active=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}._QZbGG_pillIcon{opacity:.8;flex:none;width:12px;height:12px}._QZbGG_metricsPop{background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:50;text-align:left;border-radius:10px;flex-direction:column;gap:8px;width:260px;padding:12px 14px;animation:.14s ease-out _QZbGG_popIn;display:flex;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 6px 20px #00000024}@keyframes _QZbGG_popIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}._QZbGG_popHeader{color:var(--dsw-alias-label-primary);border-bottom:1px solid var(--dsw-alias-border-l1);justify-content:space-between;align-items:center;padding-bottom:6px;font-size:12px;font-weight:600;display:flex}._QZbGG_popSection{flex-direction:column;gap:4px;display:flex}._QZbGG_popSectionTitle{text-transform:uppercase;letter-spacing:.5px;color:var(--dsw-alias-label-tertiary);margin-top:2px;font-size:10px;font-weight:600}._QZbGG_popGrid{grid-template-columns:1fr auto;gap:3px 12px;font-size:11px;line-height:18px;display:grid}._QZbGG_popLabel{color:var(--dsw-alias-label-secondary)}._QZbGG_popValue{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;text-align:right;font-weight:500}._QZbGG_popBadge{background:var(--dsw-alias-border-l1);color:var(--dsw-alias-label-secondary);border-radius:3px;margin-left:4px;padding:0 4px;font-size:10px}";
|
|
43295
43318
|
const tagId$4 = "dsh-better-display/TurnMetrics.module.css";
|
|
43296
43319
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
|
|
@@ -43315,8 +43338,7 @@ ${trimmed}
|
|
|
43315
43338
|
"popValue": "_QZbGG_popValue",
|
|
43316
43339
|
"timeButton": "_QZbGG_timeButton"
|
|
43317
43340
|
};
|
|
43318
|
-
|
|
43319
|
-
//#region src/client/TurnMetrics.tsx
|
|
43341
|
+
// src/client/TurnMetrics.tsx
|
|
43320
43342
|
function formatTokens(count) {
|
|
43321
43343
|
if (count >= 1e6) return `${(count / 1e6).toFixed(2)}M tok`;
|
|
43322
43344
|
if (count >= 1e3) return `${(count / 1e3).toFixed(1)}k tok`;
|
|
@@ -43505,8 +43527,7 @@ ${trimmed}
|
|
|
43505
43527
|
]
|
|
43506
43528
|
});
|
|
43507
43529
|
});
|
|
43508
|
-
|
|
43509
|
-
//#region src/client/Blocks.tsx
|
|
43530
|
+
// src/client/Blocks.tsx
|
|
43510
43531
|
const IMAGE_TYPES = /* @__PURE__ */ new Set([
|
|
43511
43532
|
"image/png",
|
|
43512
43533
|
"image/jpeg",
|
|
@@ -43974,8 +43995,7 @@ ${trimmed}
|
|
|
43974
43995
|
const end = Math.max(0, contentHeight - viewportHeight);
|
|
43975
43996
|
return Math.min(end, Math.min(end, Math.max(0, top)) + Math.max(1, lineHeight) * Math.max(2, Math.min(40, Math.ceil(backlogLines))));
|
|
43976
43997
|
}
|
|
43977
|
-
|
|
43978
|
-
//#region src/client/ReasoningCard.tsx
|
|
43998
|
+
// src/client/ReasoningCard.tsx
|
|
43979
43999
|
const EASING$1 = "cubic-bezier(.22,1,.36,1)";
|
|
43980
44000
|
/** One real transcript: reference transform while following, native scroll while reading. */
|
|
43981
44001
|
function ReasoningCard({ children, step, active, motion, selected, onRead }) {
|
|
@@ -44339,8 +44359,7 @@ ${trimmed}
|
|
|
44339
44359
|
]
|
|
44340
44360
|
});
|
|
44341
44361
|
}
|
|
44342
|
-
|
|
44343
|
-
//#region src/client/official-slots.tsx
|
|
44362
|
+
// src/client/official-slots.tsx
|
|
44344
44363
|
/**
|
|
44345
44364
|
* RC2 composition adapter. Only public registry operations are used. We lend
|
|
44346
44365
|
* registrations a Reader-owned seat, not a second implementation of their UI.
|
|
@@ -44356,16 +44375,46 @@ ${trimmed}
|
|
|
44356
44375
|
tools: "tool.call.toolview",
|
|
44357
44376
|
tail: "conversation.chat.turnTail",
|
|
44358
44377
|
nodes: "conversation.chat.node",
|
|
44359
|
-
|
|
44378
|
+
messageImages: "conversation.chat.message.images",
|
|
44379
|
+
userImages: "conversation.chat.user.images"
|
|
44360
44380
|
};
|
|
44361
44381
|
const OFFICIAL_SEATS = {
|
|
44362
44382
|
actions: "dsh-better-display.official.actions/conversation.chat.assistant-actions",
|
|
44363
44383
|
tools: "dsh-better-display.official.tools/tool.call.toolview",
|
|
44364
44384
|
tail: "dsh-better-display.official.tail/conversation.chat.turnTail",
|
|
44365
44385
|
nodes: "dsh-better-display.official.nodes/conversation.chat.node",
|
|
44366
|
-
|
|
44386
|
+
messageImages: "dsh-better-display.official.messageImages/conversation.chat.message.images",
|
|
44387
|
+
userImages: "dsh-better-display.official.userImages/conversation.chat.user.images"
|
|
44367
44388
|
};
|
|
44368
44389
|
const officialSeat = (family, source = OFFICIAL_SLOTS[family]) => `dsh-better-display.official.${family}/${source}`;
|
|
44390
|
+
/**
|
|
44391
|
+
* Searchable hide for official nodes drawn outside the Chat flow viewport.
|
|
44392
|
+
* The flow's own `useGroupAction` is not in scope here; this keeps the same
|
|
44393
|
+
* `hidden="until-found"` contract so browser find can still reveal the row.
|
|
44394
|
+
*/
|
|
44395
|
+
function useReaderGroupAction(hidden, reveal) {
|
|
44396
|
+
const ref = (0, react.useRef)(null);
|
|
44397
|
+
(0, react.useLayoutEffect)(() => {
|
|
44398
|
+
const element = ref.current;
|
|
44399
|
+
if (element === null) return;
|
|
44400
|
+
if (hidden && element.contains(element.ownerDocument.activeElement)) {
|
|
44401
|
+
reveal();
|
|
44402
|
+
return;
|
|
44403
|
+
}
|
|
44404
|
+
if (hidden) element.setAttribute("hidden", "until-found");
|
|
44405
|
+
else element.removeAttribute("hidden");
|
|
44406
|
+
}, [hidden, reveal]);
|
|
44407
|
+
(0, react.useEffect)(() => {
|
|
44408
|
+
const element = ref.current;
|
|
44409
|
+
if (element === null) return;
|
|
44410
|
+
element.addEventListener("beforematch", reveal);
|
|
44411
|
+
return () => {
|
|
44412
|
+
element.removeEventListener("beforematch", reveal);
|
|
44413
|
+
};
|
|
44414
|
+
}, [reveal]);
|
|
44415
|
+
return ref;
|
|
44416
|
+
}
|
|
44417
|
+
const readerGroupAction = useReaderGroupAction;
|
|
44369
44418
|
const READER_OWNED_NODES = /* @__PURE__ */ new Set([
|
|
44370
44419
|
"tool-call",
|
|
44371
44420
|
"turn-tail",
|
|
@@ -44399,7 +44448,11 @@ ${trimmed}
|
|
|
44399
44448
|
kind: "keyed",
|
|
44400
44449
|
scope: "session"
|
|
44401
44450
|
},
|
|
44402
|
-
|
|
44451
|
+
messageImages: {
|
|
44452
|
+
kind: "single",
|
|
44453
|
+
scope: "session"
|
|
44454
|
+
},
|
|
44455
|
+
userImages: {
|
|
44403
44456
|
kind: "single",
|
|
44404
44457
|
scope: "session"
|
|
44405
44458
|
}
|
|
@@ -44542,8 +44595,7 @@ ${trimmed}
|
|
|
44542
44595
|
for (const stop of disposers.splice(0).reverse()) stop();
|
|
44543
44596
|
};
|
|
44544
44597
|
}
|
|
44545
|
-
|
|
44546
|
-
//#region src/client/chat-seat.ts
|
|
44598
|
+
// src/client/chat-seat.ts
|
|
44547
44599
|
function chatSeatProps(kind, key) {
|
|
44548
44600
|
return {
|
|
44549
44601
|
"data-chat-anchor-key": key,
|
|
@@ -44552,8 +44604,7 @@ ${trimmed}
|
|
|
44552
44604
|
"data-chat-flow-kind": kind
|
|
44553
44605
|
};
|
|
44554
44606
|
}
|
|
44555
|
-
|
|
44556
|
-
//#region src/client/OfficialContent.tsx
|
|
44607
|
+
// src/client/OfficialContent.tsx
|
|
44557
44608
|
function OfficialActions({ official, messageId }) {
|
|
44558
44609
|
if (!official || !messageId) return null;
|
|
44559
44610
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
@@ -44600,17 +44651,19 @@ ${trimmed}
|
|
|
44600
44651
|
return {
|
|
44601
44652
|
cwd: render.cwd,
|
|
44602
44653
|
openFile: render.openFile ?? (() => {}),
|
|
44603
|
-
openSkill: () => {},
|
|
44604
44654
|
forkAt: render.forkAt ?? (() => {}),
|
|
44605
44655
|
inspectCall: (callId) => official.openView("trajectory", callId),
|
|
44606
44656
|
loadImage: official.officialImageLoader,
|
|
44607
|
-
renderMessageImages: (images) => official.renderSlot(OFFICIAL_SEATS.images, {
|
|
44608
|
-
...images,
|
|
44609
|
-
loadImage: official.officialImageLoader
|
|
44610
|
-
}),
|
|
44611
44657
|
fileMentions: official.officialFileMentions
|
|
44612
44658
|
};
|
|
44613
44659
|
}
|
|
44660
|
+
function nodeHookContext(turnData, disclosureReset) {
|
|
44661
|
+
return {
|
|
44662
|
+
turnData,
|
|
44663
|
+
disclosureReset,
|
|
44664
|
+
useGroupAction: readerGroupAction
|
|
44665
|
+
};
|
|
44666
|
+
}
|
|
44614
44667
|
function OfficialNode({ node, fallback, ...render }) {
|
|
44615
44668
|
const official = render.official;
|
|
44616
44669
|
const [disclosureReset] = (0, react.useState)(() => (0, _deepseek_ai_dsh_client_store.createSnapshotStore)(0));
|
|
@@ -44625,10 +44678,7 @@ ${trimmed}
|
|
|
44625
44678
|
node
|
|
44626
44679
|
}, {
|
|
44627
44680
|
entryKey: node.kind,
|
|
44628
|
-
hookContext:
|
|
44629
|
-
turnData: turn?.data,
|
|
44630
|
-
disclosureReset
|
|
44631
|
-
},
|
|
44681
|
+
hookContext: nodeHookContext(turn?.data, disclosureReset),
|
|
44632
44682
|
fallback
|
|
44633
44683
|
})
|
|
44634
44684
|
});
|
|
@@ -44666,10 +44716,7 @@ ${trimmed}
|
|
|
44666
44716
|
groupPart: "response"
|
|
44667
44717
|
}, {
|
|
44668
44718
|
entryKey: "assistant-step",
|
|
44669
|
-
hookContext:
|
|
44670
|
-
turnData: turn?.data,
|
|
44671
|
-
disclosureReset
|
|
44672
|
-
},
|
|
44719
|
+
hookContext: nodeHookContext(turn?.data, disclosureReset),
|
|
44673
44720
|
fallback
|
|
44674
44721
|
});
|
|
44675
44722
|
}
|
|
@@ -44685,8 +44732,7 @@ ${trimmed}
|
|
|
44685
44732
|
children: official.renderSlot(OFFICIAL_SEATS.tail, tailOwner)
|
|
44686
44733
|
}) : null;
|
|
44687
44734
|
}
|
|
44688
|
-
|
|
44689
|
-
//#region src/client/turn-slots.ts
|
|
44735
|
+
// src/client/turn-slots.ts
|
|
44690
44736
|
/**
|
|
44691
44737
|
* Keep live turns in the incoming `groups` order, and keep a departing turn
|
|
44692
44738
|
* next to the live neighbour that preceded it.
|
|
@@ -44748,8 +44794,7 @@ ${trimmed}
|
|
|
44748
44794
|
while (insertAt < next.length && next[insertAt]?.live === false) insertAt++;
|
|
44749
44795
|
next.splice(insertAt, 0, slot);
|
|
44750
44796
|
}
|
|
44751
|
-
|
|
44752
|
-
//#region src/client/motion.tsx
|
|
44797
|
+
// src/client/motion.tsx
|
|
44753
44798
|
const EASING = "cubic-bezier(.22,1,.36,1)";
|
|
44754
44799
|
function useMotionAllowed(enabled) {
|
|
44755
44800
|
const [reduced, setReduced] = (0, react.useState)(() => window.matchMedia("(prefers-reduced-motion: reduce)").matches);
|
|
@@ -45397,8 +45442,7 @@ ${trimmed}
|
|
|
45397
45442
|
}, [])
|
|
45398
45443
|
};
|
|
45399
45444
|
}
|
|
45400
|
-
|
|
45401
|
-
//#region src/client/fold-choreography.ts
|
|
45445
|
+
// src/client/fold-choreography.ts
|
|
45402
45446
|
/** Presentation clock, not model/network time. */
|
|
45403
45447
|
const FOLD_TIMING = {
|
|
45404
45448
|
collapse: 320,
|
|
@@ -45462,8 +45506,7 @@ ${trimmed}
|
|
|
45462
45506
|
const users = new Set(before.filter((item) => item.kind === "user").map((item) => item.key));
|
|
45463
45507
|
return after.some((item) => item.kind === "user" && !users.has(item.key));
|
|
45464
45508
|
}
|
|
45465
|
-
|
|
45466
|
-
//#region src/client/LiveFold.tsx
|
|
45509
|
+
// src/client/LiveFold.tsx
|
|
45467
45510
|
/** Values are presentation commits, never live network counters. */
|
|
45468
45511
|
function SubtleNumberRoll({ value, motion }) {
|
|
45469
45512
|
const [outgoing, setOutgoing] = (0, react.useState)(null);
|
|
@@ -45527,8 +45570,7 @@ ${trimmed}
|
|
|
45527
45570
|
}, part.text))
|
|
45528
45571
|
});
|
|
45529
45572
|
}
|
|
45530
|
-
|
|
45531
|
-
//#region src/client/projection.ts
|
|
45573
|
+
// src/client/projection.ts
|
|
45532
45574
|
function groupNodes(order, get) {
|
|
45533
45575
|
const groups = [];
|
|
45534
45576
|
const seenTurns = /* @__PURE__ */ new Set();
|
|
@@ -45637,8 +45679,7 @@ ${trimmed}
|
|
|
45637
45679
|
if (typeof seq === "number" && Number.isFinite(seq)) return seq;
|
|
45638
45680
|
}
|
|
45639
45681
|
}
|
|
45640
|
-
|
|
45641
|
-
//#region src/client/AssistantNode.tsx
|
|
45682
|
+
// src/client/AssistantNode.tsx
|
|
45642
45683
|
function isNode$1(node, kind) {
|
|
45643
45684
|
return node.kind === kind;
|
|
45644
45685
|
}
|
|
@@ -45736,8 +45777,7 @@ ${trimmed}
|
|
|
45736
45777
|
})] }, part.start);
|
|
45737
45778
|
}) });
|
|
45738
45779
|
});
|
|
45739
|
-
|
|
45740
|
-
//#region src/client/native/tool-call-model.ts
|
|
45780
|
+
// src/client/native/tool-call-model.ts
|
|
45741
45781
|
/**
|
|
45742
45782
|
* Pure row-model derivation for tool summary rows: variant classification,
|
|
45743
45783
|
* one-line summary, expanded-body text, and flattened result output from the
|
|
@@ -45927,8 +45967,7 @@ ${trimmed}
|
|
|
45927
45967
|
state
|
|
45928
45968
|
};
|
|
45929
45969
|
}
|
|
45930
|
-
|
|
45931
|
-
//#region src/client/ToolActivity.tsx
|
|
45970
|
+
// src/client/ToolActivity.tsx
|
|
45932
45971
|
const LABEL = {
|
|
45933
45972
|
preparing: "输入生成中",
|
|
45934
45973
|
running: "执行中",
|
|
@@ -46529,8 +46568,7 @@ ${trimmed}
|
|
|
46529
46568
|
depth: depth + 1
|
|
46530
46569
|
}, child.callId))] });
|
|
46531
46570
|
}
|
|
46532
|
-
|
|
46533
|
-
//#region src/client/open-file.ts
|
|
46571
|
+
// src/client/open-file.ts
|
|
46534
46572
|
function deliverableOpenModeOf(value) {
|
|
46535
46573
|
return value === "sidebar" ? "sidebar" : "external";
|
|
46536
46574
|
}
|
|
@@ -46585,8 +46623,7 @@ ${trimmed}
|
|
|
46585
46623
|
await args.openExternal(targetPath);
|
|
46586
46624
|
return "external";
|
|
46587
46625
|
}
|
|
46588
|
-
|
|
46589
|
-
//#region src/client/pending-submission.ts
|
|
46626
|
+
// src/client/pending-submission.ts
|
|
46590
46627
|
function asReadonlyArray(value) {
|
|
46591
46628
|
return Array.isArray(value) ? value : [];
|
|
46592
46629
|
}
|
|
@@ -46608,8 +46645,7 @@ ${trimmed}
|
|
|
46608
46645
|
}
|
|
46609
46646
|
return [];
|
|
46610
46647
|
}
|
|
46611
|
-
|
|
46612
|
-
//#region src/client/WaitClock.tsx
|
|
46648
|
+
// src/client/WaitClock.tsx
|
|
46613
46649
|
/** Past this, a wait stops being a pause and reads as the model not answering. */
|
|
46614
46650
|
const WAIT_OVERTIME_MS = 1e4;
|
|
46615
46651
|
/**
|
|
@@ -46646,8 +46682,7 @@ ${trimmed}
|
|
|
46646
46682
|
})]
|
|
46647
46683
|
});
|
|
46648
46684
|
}
|
|
46649
|
-
|
|
46650
|
-
//#region src/client/WaitingStatus.tsx
|
|
46685
|
+
// src/client/WaitingStatus.tsx
|
|
46651
46686
|
function WaitingStatus({ anchor, label }) {
|
|
46652
46687
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
46653
46688
|
className: Reader_module_css_default.turnStatus,
|
|
@@ -46661,8 +46696,7 @@ ${trimmed}
|
|
|
46661
46696
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(WaitClock, { startTime: anchor.time }, anchor.key)]
|
|
46662
46697
|
});
|
|
46663
46698
|
}
|
|
46664
|
-
|
|
46665
|
-
//#region src/client/waiting-clock.ts
|
|
46699
|
+
// src/client/waiting-clock.ts
|
|
46666
46700
|
const timestamp = (value) => typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : null;
|
|
46667
46701
|
/**
|
|
46668
46702
|
* Chat-layer kinds that hand the turn back to the model unconditionally.
|
|
@@ -46736,8 +46770,7 @@ ${trimmed}
|
|
|
46736
46770
|
}
|
|
46737
46771
|
return anchor;
|
|
46738
46772
|
}
|
|
46739
|
-
|
|
46740
|
-
//#region src/client/native/ReferenceIcon.tsx
|
|
46773
|
+
// src/client/native/ReferenceIcon.tsx
|
|
46741
46774
|
/**
|
|
46742
46775
|
* Render the icon that identifies one inline reference domain.
|
|
46743
46776
|
* @param props - Reference kind, optional size, and optional CSS class.
|
|
@@ -46767,8 +46800,7 @@ ${trimmed}
|
|
|
46767
46800
|
});
|
|
46768
46801
|
}
|
|
46769
46802
|
}
|
|
46770
|
-
|
|
46771
|
-
//#region \0dshx-css-module:ContextBody.module.css.mjs
|
|
46803
|
+
// \0dshx-css-module:/home/runner/work/dsh-better-display/dsh-better-display/src/client/native/ContextBody.module.css.mjs
|
|
46772
46804
|
const css$3 = ".O-IYlG_text{color:var(--dsw-alias-label-secondary);font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.O-IYlG_fields{border-top:1px solid var(--dsw-alias-line-secondary);flex-direction:column;gap:2px;margin:8px 0 0;padding-top:8px;display:flex}.O-IYlG_field{gap:8px;min-width:0;display:flex}.O-IYlG_fieldKey{min-width:96px;color:var(--dsw-alias-label-caption);flex:none}.O-IYlG_fieldValue{min-width:0;color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;flex:auto;margin:0}.O-IYlG_files{flex-wrap:wrap;gap:4px 12px;margin:0 0 8px;padding:0;list-style:none;display:flex}.O-IYlG_file{align-items:baseline;gap:6px;min-width:0;display:flex}.O-IYlG_filePath{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere}.O-IYlG_fileAction{color:var(--dsw-alias-label-caption)}.O-IYlG_catalogNotice{color:var(--dsw-alias-label-caption);margin:0 0 6px}.O-IYlG_entries{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.O-IYlG_entry{gap:8px;min-width:0;display:flex}.O-IYlG_entryName{color:var(--dsw-alias-label-secondary);flex:none}.O-IYlG_entryDescription{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.O-IYlG_sections{flex-direction:column;gap:8px;margin:0;display:flex}.O-IYlG_section{flex-direction:column;gap:2px;min-width:0;display:flex}.O-IYlG_sectionName{color:var(--dsw-alias-label-caption)}.O-IYlG_sectionText{color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.O-IYlG_relaySender{color:var(--dsw-alias-label-caption);overflow-wrap:anywhere;margin:0 0 6px}.O-IYlG_recalls{flex-direction:column;gap:2px;margin:0 0 8px;padding:0;list-style:none;display:flex}.O-IYlG_recall{gap:8px;min-width:0;display:flex}.O-IYlG_recallLabel{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere}.O-IYlG_recallCounts{color:var(--dsw-alias-label-caption);flex:none}";
|
|
46773
46805
|
const tagId$3 = "dsh-better-display/ContextBody.module.css";
|
|
46774
46806
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
|
|
@@ -46803,8 +46835,7 @@ ${trimmed}
|
|
|
46803
46835
|
"sectionText": "O-IYlG_sectionText",
|
|
46804
46836
|
"text": "O-IYlG_text"
|
|
46805
46837
|
};
|
|
46806
|
-
|
|
46807
|
-
//#region src/client/native/ContextBody.tsx
|
|
46838
|
+
// src/client/native/ContextBody.tsx
|
|
46808
46839
|
/** Model-facing text stays bounded at the disclosure, not at the producer. */
|
|
46809
46840
|
const MAX_CHARS = 2e4;
|
|
46810
46841
|
/** Rows a list body materializes before summarizing the remainder. */
|
|
@@ -47324,8 +47355,7 @@ ${trimmed}
|
|
|
47324
47355
|
default: throw new Error(`unreachable context form: ${String(form)}`);
|
|
47325
47356
|
}
|
|
47326
47357
|
}
|
|
47327
|
-
|
|
47328
|
-
//#region src/client/native/tool-update.ts
|
|
47358
|
+
// src/client/native/tool-update.ts
|
|
47329
47359
|
/**
|
|
47330
47360
|
* Classify a context as the rc.2 tool-update row.
|
|
47331
47361
|
* Mixed or empty content stays on the generic injection presentation.
|
|
@@ -47349,8 +47379,7 @@ ${trimmed}
|
|
|
47349
47379
|
single: rows.length === 1 ? rows[0] : null
|
|
47350
47380
|
};
|
|
47351
47381
|
}
|
|
47352
|
-
|
|
47353
|
-
//#region \0dshx-css-module:ContextInjectionRow.module.css.mjs
|
|
47382
|
+
// \0dshx-css-module:/home/runner/work/dsh-better-display/dsh-better-display/src/client/native/ContextInjectionRow.module.css.mjs
|
|
47354
47383
|
const css$2 = ".QsaPka_root{min-width:0}.QsaPka_root[data-open]{padding-bottom:4px}.QsaPka_chevron{color:var(--dsw-alias-label-secondary)}.QsaPka_sep{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.QsaPka_source{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:none;font-size:14px;line-height:24px;overflow:hidden}.QsaPka_summary{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:14px;line-height:24px;overflow:hidden}.QsaPka_body{box-sizing:border-box;background:var(--dsw-alias-markdown-code-block);width:calc(100% - 22px);max-height:141px;color:var(--dsw-alias-label-tertiary);font:400 11px/16px var(--ds-font-family-code);border:none;border-radius:8px;margin:4px 0 0 22px;padding:10px 16px 12px 12px;overflow:auto}.QsaPka_toolChanges{white-space:nowrap}";
|
|
47355
47384
|
const tagId$2 = "dsh-better-display/ContextInjectionRow.module.css";
|
|
47356
47385
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
|
|
@@ -47369,8 +47398,7 @@ ${trimmed}
|
|
|
47369
47398
|
"summary": "QsaPka_summary",
|
|
47370
47399
|
"toolChanges": "QsaPka_toolChanges"
|
|
47371
47400
|
};
|
|
47372
|
-
|
|
47373
|
-
//#region src/client/native/ContextInjectionRow.tsx
|
|
47401
|
+
// src/client/native/ContextInjectionRow.tsx
|
|
47374
47402
|
/**
|
|
47375
47403
|
* Render logged context with the Tool calls disclosure chrome from Figma.
|
|
47376
47404
|
*
|
|
@@ -47449,8 +47477,7 @@ ${trimmed}
|
|
|
47449
47477
|
})
|
|
47450
47478
|
});
|
|
47451
47479
|
}
|
|
47452
|
-
|
|
47453
|
-
//#region \0dshx-css-module:TimelineRail.module.css.mjs
|
|
47480
|
+
// \0dshx-css-module:/home/runner/work/dsh-better-display/dsh-better-display/src/client/TimelineRail.module.css.mjs
|
|
47454
47481
|
const css$1 = ".oG8zJG_slot{z-index:10;pointer-events:none;height:0;position:sticky;top:0}.oG8zJG_frame{--turn-rail-band:calc(var(--dsh-conversation-viewport-height,100dvh) - var(--dsh-composer-height,152px));--turn-preview-height:100px;top:calc(var(--turn-rail-band) / 2);width:26px;height:min(var(--turn-natural-height), max(0px, calc(var(--turn-rail-band) - 64px)), 420px);cursor:pointer;pointer-events:auto;transition:height .22s cubic-bezier(.2,.8,.2,1);position:absolute;right:6px;transform:translateY(-50%)}.oG8zJG_scroller{overscroll-behavior:contain;scrollbar-width:none;position:absolute;inset:0;overflow-y:auto}.oG8zJG_scroller::-webkit-scrollbar{display:none}.oG8zJG_fadeTop{mask-image:linear-gradient(#0000 0,#000 24px 100%)}.oG8zJG_fadeBottom{mask-image:linear-gradient(#000 0 calc(100% - 24px),#0000 100%)}.oG8zJG_fadeTop.oG8zJG_fadeBottom{mask-image:linear-gradient(#0000 0,#000 24px calc(100% - 24px),#0000 100%)}.oG8zJG_marks{height:var(--turn-natural-height);position:relative}.oG8zJG_markPosition{top:calc(var(--turn-natural-position) + var(--turn-rail-inset));height:12px;transition:top .22s cubic-bezier(.2,.8,.2,1);position:absolute;left:0;right:0;transform:translateY(-50%)}.oG8zJG_mark{cursor:pointer;pointer-events:none;background:0 0;border:0;justify-content:flex-end;align-items:center;width:24px;padding:0;display:flex;position:absolute;inset:0 0 0 auto}.oG8zJG_tick{border-radius:2px;flex:none;transition:width .1s cubic-bezier(.16,1,.3,1),height .1s cubic-bezier(.16,1,.3,1),opacity .1s,background-color .14s}.oG8zJG_markBusy .oG8zJG_tick{animation:1s ease-in-out infinite alternate oG8zJG_markBusyPulse}@keyframes oG8zJG_markBusyPulse{0%{opacity:.4;width:8px}to{opacity:1;width:18px}}.oG8zJG_preview{top:clamp(0px, calc(var(--turn-natural-position) + var(--turn-rail-inset) - var(--turn-scroll-top,0px) - var(--turn-preview-height) / 2), calc(100% - var(--turn-preview-height)));box-sizing:border-box;width:min(280px,100cqw - 120px);max-height:var(--turn-preview-height);border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-base);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;z-index:40;border-radius:10px;padding:10px 12px;transition:top .14s cubic-bezier(.2,.8,.2,1);animation:.12s ease-out oG8zJG_previewFadeIn;position:absolute;right:calc(100% + 10px);overflow:hidden;box-shadow:0 4px 18px #0000001f}@keyframes oG8zJG_previewFadeIn{0%{opacity:0;transform:translate(4px)}to{opacity:1;transform:translate(0)}}.oG8zJG_previewPrompt{-webkit-line-clamp:2;text-overflow:ellipsis;word-break:break-word;-webkit-box-orient:vertical;font-size:12px;font-weight:500;line-height:18px;display:-webkit-box;overflow:hidden}.oG8zJG_previewResponse{color:var(--dsw-alias-label-tertiary);-webkit-line-clamp:2;text-overflow:ellipsis;word-break:break-word;-webkit-box-orient:vertical;margin-top:4px;font-size:11px;line-height:16px;display:-webkit-box;overflow:hidden}@media (width<=960px){.oG8zJG_slot{display:none!important}}";
|
|
47455
47482
|
const tagId$1 = "dsh-better-display/TimelineRail.module.css";
|
|
47456
47483
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
|
|
@@ -47477,8 +47504,7 @@ ${trimmed}
|
|
|
47477
47504
|
"slot": "oG8zJG_slot",
|
|
47478
47505
|
"tick": "oG8zJG_tick"
|
|
47479
47506
|
};
|
|
47480
|
-
|
|
47481
|
-
//#region src/client/TimelineRail.tsx
|
|
47507
|
+
// src/client/TimelineRail.tsx
|
|
47482
47508
|
const TURN_SPACING_PX = 12;
|
|
47483
47509
|
const RAIL_INSET_PX = 6;
|
|
47484
47510
|
const FADE_PX = 24;
|
|
@@ -47695,8 +47721,7 @@ ${trimmed}
|
|
|
47695
47721
|
function landTurn(row, scrollport, offsetPx = 24) {
|
|
47696
47722
|
scrollport.scrollTop += flowTop(row, scrollport) - offsetPx;
|
|
47697
47723
|
}
|
|
47698
|
-
|
|
47699
|
-
//#region src/client/timeline.ts
|
|
47724
|
+
// src/client/timeline.ts
|
|
47700
47725
|
/**
|
|
47701
47726
|
* Merge host turn outline with loaded navigation items and turn deliverables.
|
|
47702
47727
|
* Guarantees strictly ascending turn order and dedupes entries.
|
|
@@ -47739,8 +47764,7 @@ ${trimmed}
|
|
|
47739
47764
|
if (byTurn.size === 0) return [];
|
|
47740
47765
|
return [...byTurn.values()].sort((a, b) => a.turn - b.turn);
|
|
47741
47766
|
}
|
|
47742
|
-
|
|
47743
|
-
//#region src/client/live-turn.ts
|
|
47767
|
+
// src/client/live-turn.ts
|
|
47744
47768
|
function liveFoldEnabled(boundary) {
|
|
47745
47769
|
return boundary.status === "open";
|
|
47746
47770
|
}
|
|
@@ -47950,8 +47974,7 @@ ${trimmed}
|
|
|
47950
47974
|
after
|
|
47951
47975
|
};
|
|
47952
47976
|
}
|
|
47953
|
-
|
|
47954
|
-
//#region src/client/fold-intensity.ts
|
|
47977
|
+
// src/client/fold-intensity.ts
|
|
47955
47978
|
function frostedGlassOf(state) {
|
|
47956
47979
|
if (state && typeof state === "object" && "frostedGlass" in state) return state.frostedGlass === true;
|
|
47957
47980
|
return state === true;
|
|
@@ -47962,8 +47985,7 @@ ${trimmed}
|
|
|
47962
47985
|
function processOnlyFromIntensity(intensity) {
|
|
47963
47986
|
return intensity === 2;
|
|
47964
47987
|
}
|
|
47965
|
-
|
|
47966
|
-
//#region src/client/DiffPanel.tsx
|
|
47988
|
+
// src/client/DiffPanel.tsx
|
|
47967
47989
|
/**
|
|
47968
47990
|
* Reveals and withdraws its child by animating real height, in the plugin's own
|
|
47969
47991
|
* motion language. Height is the animated property rather than transform because
|
|
@@ -48130,8 +48152,7 @@ ${trimmed}
|
|
|
48130
48152
|
})
|
|
48131
48153
|
})] });
|
|
48132
48154
|
}
|
|
48133
|
-
|
|
48134
|
-
//#region src/client/StickyLane.tsx
|
|
48155
|
+
// src/client/StickyLane.tsx
|
|
48135
48156
|
const MIN_LANE_PX = 40;
|
|
48136
48157
|
const LaneOwnerContext = (0, react.createContext)(null);
|
|
48137
48158
|
const ownersByRoot = /* @__PURE__ */ new WeakMap();
|
|
@@ -48247,8 +48268,7 @@ ${trimmed}
|
|
|
48247
48268
|
children
|
|
48248
48269
|
});
|
|
48249
48270
|
}
|
|
48250
|
-
|
|
48251
|
-
//#region src/client/ChoreographedFlow.tsx
|
|
48271
|
+
// src/client/ChoreographedFlow.tsx
|
|
48252
48272
|
const FlowSnapshot = (0, react.createContext)(null);
|
|
48253
48273
|
/** Public projection only. Descendants cannot leak live data through a frozen frame. */
|
|
48254
48274
|
const useFlowChat = (selector) => {
|
|
@@ -48543,8 +48563,7 @@ ${trimmed}
|
|
|
48543
48563
|
})
|
|
48544
48564
|
});
|
|
48545
48565
|
}
|
|
48546
|
-
|
|
48547
|
-
//#region src/client/ClosedProcessSummary.tsx
|
|
48566
|
+
// src/client/ClosedProcessSummary.tsx
|
|
48548
48567
|
/** Keep process counts discoverable after the live-fold presentation retires. */
|
|
48549
48568
|
function ClosedProcessSummary({ steps, open, onChange, controls }) {
|
|
48550
48569
|
const button = (0, react.useRef)(null);
|
|
@@ -48574,8 +48593,7 @@ ${trimmed}
|
|
|
48574
48593
|
})
|
|
48575
48594
|
});
|
|
48576
48595
|
}
|
|
48577
|
-
|
|
48578
|
-
//#region src/client/Reader.tsx
|
|
48596
|
+
// src/client/Reader.tsx
|
|
48579
48597
|
function isNode(node, kind) {
|
|
48580
48598
|
return node.kind === kind;
|
|
48581
48599
|
}
|
|
@@ -48792,21 +48810,17 @@ ${trimmed}
|
|
|
48792
48810
|
const owner = {
|
|
48793
48811
|
cwd: render.cwd,
|
|
48794
48812
|
openFile: render.openFile ?? (() => {}),
|
|
48795
|
-
openSkill: () => {},
|
|
48796
48813
|
forkAt: render.forkAt ?? (() => {}),
|
|
48797
48814
|
inspectCall: (callId) => official.openView("trajectory", callId),
|
|
48798
48815
|
loadImage: official.officialImageLoader,
|
|
48799
|
-
renderMessageImages: (images) => official.renderSlot(OFFICIAL_SEATS.images, {
|
|
48800
|
-
...images,
|
|
48801
|
-
loadImage: official.officialImageLoader
|
|
48802
|
-
}),
|
|
48803
48816
|
fileMentions: official.officialFileMentions,
|
|
48804
48817
|
sessionId: render.sessionId
|
|
48805
48818
|
};
|
|
48806
48819
|
const options = {
|
|
48807
48820
|
hookContext: {
|
|
48808
48821
|
turnData: turn?.data,
|
|
48809
|
-
disclosureReset
|
|
48822
|
+
disclosureReset,
|
|
48823
|
+
useGroupAction: readerGroupAction
|
|
48810
48824
|
},
|
|
48811
48825
|
fallback
|
|
48812
48826
|
};
|
|
@@ -49842,8 +49856,7 @@ ${trimmed}
|
|
|
49842
49856
|
}) })
|
|
49843
49857
|
});
|
|
49844
49858
|
}
|
|
49845
|
-
|
|
49846
|
-
//#region src/client/store.ts
|
|
49859
|
+
// src/client/store.ts
|
|
49847
49860
|
function applyFoldIntensity(draft, value) {
|
|
49848
49861
|
draft.foldIntensity = value;
|
|
49849
49862
|
draft.autoFold = autoFoldFromIntensity(value);
|
|
@@ -49886,8 +49899,7 @@ ${trimmed}
|
|
|
49886
49899
|
}
|
|
49887
49900
|
});
|
|
49888
49901
|
}
|
|
49889
|
-
|
|
49890
|
-
//#region src/client/entry-policy.ts
|
|
49902
|
+
// src/client/entry-policy.ts
|
|
49891
49903
|
/** Select the reading view on entry, without fighting a later explicit tab choice. */
|
|
49892
49904
|
var ReaderEntryPolicy = class {
|
|
49893
49905
|
requested;
|
|
@@ -49910,8 +49922,7 @@ ${trimmed}
|
|
|
49910
49922
|
const value = new URLSearchParams(search).get("reader");
|
|
49911
49923
|
return value === "1" || /^0\.1\.0-trial\.\d+$/.test(value ?? "");
|
|
49912
49924
|
}
|
|
49913
|
-
|
|
49914
|
-
//#region src/client/entry.tsx
|
|
49925
|
+
// src/client/entry.tsx
|
|
49915
49926
|
function isConversationStore(store) {
|
|
49916
49927
|
return typeof store === "object" && store !== null && store.spec.persist === "dsh.conversation" && typeof store.spec.actions.setView === "function";
|
|
49917
49928
|
}
|
|
@@ -49943,8 +49954,7 @@ ${trimmed}
|
|
|
49943
49954
|
inject: () => ({ policy })
|
|
49944
49955
|
}, ReaderEntry);
|
|
49945
49956
|
}
|
|
49946
|
-
|
|
49947
|
-
//#region src/client/settings-copy.ts
|
|
49957
|
+
// src/client/settings-copy.ts
|
|
49948
49958
|
const en = {
|
|
49949
49959
|
nav: "Better Display",
|
|
49950
49960
|
openTitle: "Open deliverables in built-in panel",
|
|
@@ -49993,8 +50003,7 @@ ${trimmed}
|
|
|
49993
50003
|
function settingsCopyFor(tag) {
|
|
49994
50004
|
return settingsLanguage(tag) === "zh" ? zh : en;
|
|
49995
50005
|
}
|
|
49996
|
-
|
|
49997
|
-
//#region src/skill-status.ts
|
|
50006
|
+
// src/skill-status.ts
|
|
49998
50007
|
/** Shared generative-mcpapps identity. Plugin-tree presence is not installation. */
|
|
49999
50008
|
const GENERATIVE_MCPAPPS_SKILL = "generative-mcpapps";
|
|
50000
50009
|
/** Conventional relative roots only. Never expand $HOME or dump host `root.path`. */
|
|
@@ -50038,8 +50047,7 @@ ${trimmed}
|
|
|
50038
50047
|
roots: publicSkillRoots()
|
|
50039
50048
|
};
|
|
50040
50049
|
}
|
|
50041
|
-
|
|
50042
|
-
//#region src/client/skill-status.ts
|
|
50050
|
+
// src/client/skill-status.ts
|
|
50043
50051
|
async function detectGenerativeMcpappsSkill(probe) {
|
|
50044
50052
|
let host;
|
|
50045
50053
|
if (probe.fetchHostStatus) try {
|
|
@@ -50073,8 +50081,7 @@ ${trimmed}
|
|
|
50073
50081
|
if (list?.ids && list.ids.length > 0) return list.ids[0];
|
|
50074
50082
|
return (list?.byId ? Object.keys(list.byId) : [])[0];
|
|
50075
50083
|
}
|
|
50076
|
-
|
|
50077
|
-
//#region \0dshx-css-module:SettingsSection.module.css.mjs
|
|
50084
|
+
// \0dshx-css-module:/home/runner/work/dsh-better-display/dsh-better-display/src/client/SettingsSection.module.css.mjs
|
|
50078
50085
|
const css = ".fiqtMa_section{flex-direction:column;gap:28px;width:100%;max-width:720px;display:flex}.fiqtMa_row{border-bottom:.5px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:16px 0;display:flex}.fiqtMa_rowText{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:24px;display:flex}.fiqtMa_title{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}.fiqtMa_desc{color:var(--dsw-alias-label-tertiary);font-size:12px;font-weight:400;line-height:18px}.fiqtMa_switch{background:var(--dsw-alias-bg-module-platform);cursor:pointer;border:none;border-radius:12px;flex:none;width:40px;height:24px;padding:0;position:relative}.fiqtMa_switch:after{content:\"\";background:var(--dsw-alias-label-primary);border-radius:50%;width:18px;height:18px;transition:transform .16s;position:absolute;top:3px;left:3px}.fiqtMa_switch[data-on]:after{transform:translate(16px)}.fiqtMa_switch[data-on]{background:var(--dsw-alias-state-business-primary)}.fiqtMa_block{flex-direction:column;gap:10px;display:flex}.fiqtMa_status{color:var(--dsw-alias-label-secondary);align-items:center;gap:8px;font-size:13px;line-height:20px;display:inline-flex}.fiqtMa_badge{background:var(--dsw-alias-bg-module-platform);height:22px;color:var(--dsw-alias-label-secondary);border-radius:11px;align-items:center;padding:0 8px;font-size:12px;display:inline-flex}.fiqtMa_badge[data-ok]{color:#059669;background:#10b98124}.fiqtMa_pre{background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;white-space:pre-wrap;border-radius:8px;margin:0;padding:10px 12px;font-size:12px;line-height:18px}.fiqtMa_roots{color:var(--dsw-alias-label-tertiary);margin:0;padding-left:18px;font-size:12px;line-height:18px}.fiqtMa_actions{gap:8px;display:flex}.fiqtMa_button{border:.5px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);height:32px;color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;border-radius:8px;padding:0 12px;font-size:13px}.fiqtMa_button:hover{background:var(--dsw-alias-interactive-bg-hover)}.fiqtMa_button:disabled{opacity:.6;cursor:default}.fiqtMa_segment{background:var(--dsw-alias-bg-module-platform);border-radius:10px;gap:2px;width:100%;margin-top:8px;padding:2px;display:flex}.fiqtMa_segmentStop{min-width:0;height:32px;color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1 1 0;padding:0 8px;font-size:12px;line-height:18px}.fiqtMa_segmentStop[data-on]{background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary);box-shadow:0 0 0 .5px var(--dsw-alias-border-l2)}.fiqtMa_slider{width:100%;accent-color:var(--dsw-alias-state-business-primary);margin:10px 0 0}";
|
|
50079
50086
|
const tagId = "dsh-better-display/SettingsSection.module.css";
|
|
50080
50087
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
@@ -50102,8 +50109,7 @@ ${trimmed}
|
|
|
50102
50109
|
"switch": "fiqtMa_switch",
|
|
50103
50110
|
"title": "fiqtMa_title"
|
|
50104
50111
|
};
|
|
50105
|
-
|
|
50106
|
-
//#region src/client/SettingsSection.tsx
|
|
50112
|
+
// src/client/SettingsSection.tsx
|
|
50107
50113
|
function text(props, copy, key) {
|
|
50108
50114
|
if (typeof props.t === "function") try {
|
|
50109
50115
|
const value = props.t(key);
|
|
@@ -50272,8 +50278,7 @@ ${trimmed}
|
|
|
50272
50278
|
]
|
|
50273
50279
|
});
|
|
50274
50280
|
}
|
|
50275
|
-
|
|
50276
|
-
//#region src/client/settings.tsx
|
|
50281
|
+
// src/client/settings.tsx
|
|
50277
50282
|
function languageTag(ctx) {
|
|
50278
50283
|
const snap = (ctx.get?.("locale") ?? ctx.locale)?.getSnapshot?.();
|
|
50279
50284
|
return snap?.locale ?? snap?.language ?? (typeof document !== "undefined" ? document.documentElement.lang : void 0) ?? (typeof navigator !== "undefined" ? navigator.language : void 0);
|
|
@@ -50320,8 +50325,7 @@ ${trimmed}
|
|
|
50320
50325
|
inject: injected
|
|
50321
50326
|
}, SettingsSection));
|
|
50322
50327
|
}
|
|
50323
|
-
|
|
50324
|
-
//#region src/client/index.tsx
|
|
50328
|
+
// src/client/index.tsx
|
|
50325
50329
|
const officialFileAddressFor = fileAddressFor$1;
|
|
50326
50330
|
async function openWorkspacePath(ctx, path) {
|
|
50327
50331
|
const remoteSession = ctx.remote?.session ?? ctx.get?.("remote.session") ?? (ctx.get?.("remote"))?.session;
|
|
@@ -50497,7 +50501,6 @@ ${trimmed}
|
|
|
50497
50501
|
yield installReaderEntry(ctx);
|
|
50498
50502
|
});
|
|
50499
50503
|
}
|
|
50500
|
-
//#endregion
|
|
50501
50504
|
exports.McpAppFrame = McpAppFrame;
|
|
50502
50505
|
exports.TEXT_TRANSFORM_SERVICE = TEXT_TRANSFORM_SERVICE;
|
|
50503
50506
|
exports.apply = apply;
|