dsh-better-display 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.en.md +4 -2
  3. package/README.md +4 -2
  4. package/compat/harness-rc2.json +59 -0
  5. package/docs/official-rendering-bridge.md +65 -0
  6. package/lib/client.js +858 -456
  7. package/lib/client.js.map +1 -1
  8. package/lib/types/client/Blocks.d.ts +2 -1
  9. package/lib/types/client/Blocks.d.ts.map +1 -1
  10. package/lib/types/client/Blocks.js +2 -2
  11. package/lib/types/client/Blocks.js.map +1 -1
  12. package/lib/types/client/OfficialContent.d.ts +25 -0
  13. package/lib/types/client/OfficialContent.d.ts.map +1 -0
  14. package/lib/types/client/OfficialContent.js +42 -0
  15. package/lib/types/client/OfficialContent.js.map +1 -0
  16. package/lib/types/client/Reader.d.ts.map +1 -1
  17. package/lib/types/client/Reader.js +38 -6
  18. package/lib/types/client/Reader.js.map +1 -1
  19. package/lib/types/client/ToolActivity.d.ts.map +1 -1
  20. package/lib/types/client/ToolActivity.js +21 -17
  21. package/lib/types/client/ToolActivity.js.map +1 -1
  22. package/lib/types/client/index.d.ts.map +1 -1
  23. package/lib/types/client/index.js +23 -33
  24. package/lib/types/client/index.js.map +1 -1
  25. package/lib/types/client/markdown/MarkdownText.d.ts +3 -1
  26. package/lib/types/client/markdown/MarkdownText.d.ts.map +1 -1
  27. package/lib/types/client/markdown/MarkdownText.js +14 -7
  28. package/lib/types/client/markdown/MarkdownText.js.map +1 -1
  29. package/lib/types/client/markdown/render.d.ts +2 -0
  30. package/lib/types/client/markdown/render.d.ts.map +1 -1
  31. package/lib/types/client/markdown/render.js +22 -6
  32. package/lib/types/client/markdown/render.js.map +1 -1
  33. package/lib/types/client/motion.d.ts.map +1 -1
  34. package/lib/types/client/motion.js +22 -13
  35. package/lib/types/client/motion.js.map +1 -1
  36. package/lib/types/client/native/ContextInjectionRow.d.ts +12 -3
  37. package/lib/types/client/native/ContextInjectionRow.d.ts.map +1 -1
  38. package/lib/types/client/native/ContextInjectionRow.js +6 -3
  39. package/lib/types/client/native/ContextInjectionRow.js.map +1 -1
  40. package/lib/types/client/official-slots.d.ts +71 -0
  41. package/lib/types/client/official-slots.d.ts.map +1 -0
  42. package/lib/types/client/official-slots.js +183 -0
  43. package/lib/types/client/official-slots.js.map +1 -0
  44. package/lib/types/client/platform-media.d.ts +6 -0
  45. package/lib/types/client/platform-media.d.ts.map +1 -0
  46. package/lib/types/client/platform-media.js +13 -0
  47. package/lib/types/client/platform-media.js.map +1 -0
  48. package/lib/types/client/settings.js.map +1 -1
  49. package/lib/types/client/store.d.ts +1 -0
  50. package/lib/types/client/store.d.ts.map +1 -1
  51. package/lib/types/client/store.js +1 -0
  52. package/lib/types/client/store.js.map +1 -1
  53. package/lib/types/client/tool-activity.d.ts +1 -1
  54. package/lib/types/client/tool-activity.d.ts.map +1 -1
  55. package/lib/types/client/tool-activity.js +9 -2
  56. package/lib/types/client/tool-activity.js.map +1 -1
  57. package/lib/types/client/types.d.ts +18 -8
  58. package/lib/types/client/types.d.ts.map +1 -1
  59. package/lib/types/client/word-motion.d.ts.map +1 -1
  60. package/lib/types/client/word-motion.js +2 -1
  61. package/lib/types/client/word-motion.js.map +1 -1
  62. package/package.json +22 -16
  63. package/scripts/check-harness-compat.mjs +71 -0
  64. package/scripts/link-harness-dependencies.mjs +1 -0
  65. package/scripts/verify-auto-fold.mjs +114 -0
  66. package/scripts/verify-official-bridge.mjs +119 -0
  67. package/src/client/Blocks.tsx +2 -1
  68. package/src/client/OfficialContent.tsx +57 -0
  69. package/src/client/Reader.module.css +23 -8
  70. package/src/client/Reader.tsx +37 -9
  71. package/src/client/ToolActivity.tsx +22 -27
  72. package/src/client/index.tsx +27 -31
  73. package/src/client/markdown/MarkdownText.tsx +14 -6
  74. package/src/client/markdown/render.tsx +23 -7
  75. package/src/client/motion.tsx +18 -11
  76. package/src/client/native/ContextInjectionRow.tsx +19 -7
  77. package/src/client/official-slots.tsx +211 -0
  78. package/src/client/platform-media.ts +11 -0
  79. package/src/client/settings.tsx +1 -1
  80. package/src/client/store.ts +2 -0
  81. package/src/client/tool-activity.ts +9 -2
  82. package/src/client/types.ts +14 -8
  83. package/src/client/word-motion.tsx +2 -1
  84. package/tests/browser-auto-fold.tsx +64 -0
  85. package/tests/browser-official-bridge.tsx +144 -0
  86. package/tests/official-slots.test.ts +112 -0
  87. package/tests/platform-media.test.ts +17 -0
package/lib/client.js CHANGED
@@ -20,7 +20,7 @@ window.__ModuleLoader__.load({
20
20
  let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives");
21
21
  let react_jsx_runtime = require("react/jsx-runtime");
22
22
  let _deepseek_ai_dsh_client_store = require("@deepseek-ai/dsh-client-store");
23
- //#region ../../runtime/packages/util/workspace-path/lib/index.js
23
+ //#region ../../../../DeepSeekHarness/runtime/packages/util/workspace-path/lib/index.js
24
24
  /**
25
25
  * The `dsh-resource://file/…` address grammar: how a file is named across the
26
26
  * Sidebar and the resource model, built and parsed without touching a
@@ -378,13 +378,13 @@ window.__ModuleLoader__.load({
378
378
  const command = stringValue(args, "command", "cmd", "script");
379
379
  const description = stringValue(args, "description");
380
380
  const file = target?.split(/[/\\]/).at(-1);
381
- const category = /^(write|edit|apply_patch|patch|str_replace_editor)$/.test(name) ? "write" : /^(read|read_file)$/.test(name) ? "read" : /^(bash|shell|terminal|terminal_send|exec_command|pwsh)$/.test(name) ? "terminal" : /^(grep|glob|find|search)$/.test(name) ? "search" : /^(web_search|web_fetch|web_open)$/.test(name) ? "web" : "other";
381
+ const category = /^(write|edit|apply_patch|patch|str_replace_editor)$/.test(name) ? "write" : /^(read|read_file)$/.test(name) ? "read" : /^(bash|shell|terminal|terminal_send|exec_command|pwsh)$/.test(name) ? "terminal" : /^(grep|glob|find|search)$/.test(name) ? "search" : /^(web_search|web_fetch|web_open)$/.test(name) ? "web" : /^(run_code|execute_code|code_interpreter|python|node|eval|repl)$/.test(name) ? "code" : "other";
382
382
  return {
383
383
  name,
384
384
  raw,
385
385
  args,
386
386
  category,
387
- title: category === "write" ? `${name === "write" ? "写入" : "修改"}${file ? ` ${file}` : name === "apply_patch" ? "代码补丁" : "文件"}` : category === "read" ? `读取${file ? ` ${file}` : "文件"}` : category === "terminal" ? description || "运行命令" : category === "search" ? name === "glob" ? "查找文件" : "搜索内容" : category === "web" ? name === "web_search" ? "搜索网页" : "读取网页" : name,
387
+ title: category === "write" ? `${name === "write" ? "写入" : "修改"}${file ? ` ${file}` : name === "apply_patch" ? "代码补丁" : "文件"}` : category === "read" ? `读取${file ? ` ${file}` : "文件"}` : category === "terminal" ? description || "运行命令" : category === "search" ? name === "glob" ? "查找文件" : "搜索内容" : category === "web" ? name === "web_search" ? "搜索网页" : "读取网页" : category === "code" ? description || "运行代码" : name,
388
388
  target: target ?? command ?? stringValue(args, "query", "pattern", "url"),
389
389
  command,
390
390
  cwd: stringValue(args, "workdir", "cwd"),
@@ -727,7 +727,7 @@ ${trimmed}
727
727
  }
728
728
  //#endregion
729
729
  //#region \0dshx-css-module:McpAppFrame.module.css.mjs
730
- const css$7 = ".gyryoa_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}.gyryoa_card:hover{border-color:var(--dsw-alias-border-l1,#00000029);box-shadow:0 2px 10px -2px #0000000a}.gyryoa_header{border-bottom:1px solid var(--dsw-alias-border-l2,#0000000f);background:var(--dsw-alias-interactive-bg-hover,#00000004);user-select:none;justify-content:space-between;align-items:center;height:36px;padding:0 14px;display:flex}.gyryoa_titleArea{align-items:center;gap:7px;min-width:0;display:flex}.gyryoa_icon{color:var(--dsw-alias-label-tertiary,#94a3b8);flex-shrink:0;justify-content:center;align-items:center;display:flex}.gyryoa_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}.gyryoa_actions{align-items:center;gap:4px;display:flex}.gyryoa_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}.gyryoa_iconBtn:hover{background:var(--dsw-alias-interactive-bg-hover,#0000000f);color:var(--dsw-alias-label-primary,#0f172a)}.gyryoa_iconBtn:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary,#2563eb);outline-offset:1px}.gyryoa_iframeWrapper{background:0 0;width:100%;transition:height .25s cubic-bezier(.22,1,.36,1);position:relative}.gyryoa_iframe{background:0 0;border:none;width:100%;height:100%;display:block}.gyryoa_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) gyryoa_slideUp;display:flex}.gyryoa_receiptPrompt{color:var(--dsw-alias-label-secondary,#64748b);background:var(--dsw-alias-bg-base,#00000008);border:1px solid var(--dsw-alias-border-l2,#0000000f);user-select:text;cursor:text;overflow-wrap:anywhere;border-radius:6px;flex:100%;padding:6px 10px;font-size:12px;line-height:18px}@keyframes gyryoa_slideUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.gyryoa_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}.gyryoa_receiptHint{align-items:center;gap:6px;display:flex}.gyryoa_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}.gyryoa_sendKbd:hover{background:var(--dsw-alias-interactive-bg-hover,#00000014);color:var(--dsw-alias-label-primary,#0f172a)}.gyryoa_sendKbd:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary,#2563eb);outline-offset:1px}.gyryoa_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}.gyryoa_pulseDot{background:var(--dsw-alias-state-business-primary,#2563eb);border-radius:50%;width:7px;height:7px;animation:1.5s ease-in-out infinite gyryoa_pulse}@keyframes gyryoa_pulse{0%,to{opacity:.35;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}";
730
+ const css$7 = ".OZWxoa_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}.OZWxoa_card:hover{border-color:var(--dsw-alias-border-l1,#00000029);box-shadow:0 2px 10px -2px #0000000a}.OZWxoa_header{border-bottom:1px solid var(--dsw-alias-border-l2,#0000000f);background:var(--dsw-alias-interactive-bg-hover,#00000004);user-select:none;justify-content:space-between;align-items:center;height:36px;padding:0 14px;display:flex}.OZWxoa_titleArea{align-items:center;gap:7px;min-width:0;display:flex}.OZWxoa_icon{color:var(--dsw-alias-label-tertiary,#94a3b8);flex-shrink:0;justify-content:center;align-items:center;display:flex}.OZWxoa_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}.OZWxoa_actions{align-items:center;gap:4px;display:flex}.OZWxoa_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}.OZWxoa_iconBtn:hover{background:var(--dsw-alias-interactive-bg-hover,#0000000f);color:var(--dsw-alias-label-primary,#0f172a)}.OZWxoa_iconBtn:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary,#2563eb);outline-offset:1px}.OZWxoa_iframeWrapper{background:0 0;width:100%;transition:height .25s cubic-bezier(.22,1,.36,1);position:relative}.OZWxoa_iframe{background:0 0;border:none;width:100%;height:100%;display:block}.OZWxoa_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) OZWxoa_slideUp;display:flex}.OZWxoa_receiptPrompt{color:var(--dsw-alias-label-secondary,#64748b);background:var(--dsw-alias-bg-base,#00000008);border:1px solid var(--dsw-alias-border-l2,#0000000f);user-select:text;cursor:text;overflow-wrap:anywhere;border-radius:6px;flex:100%;padding:6px 10px;font-size:12px;line-height:18px}@keyframes OZWxoa_slideUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.OZWxoa_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}.OZWxoa_receiptHint{align-items:center;gap:6px;display:flex}.OZWxoa_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}.OZWxoa_sendKbd:hover{background:var(--dsw-alias-interactive-bg-hover,#00000014);color:var(--dsw-alias-label-primary,#0f172a)}.OZWxoa_sendKbd:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary,#2563eb);outline-offset:1px}.OZWxoa_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}.OZWxoa_pulseDot{background:var(--dsw-alias-state-business-primary,#2563eb);border-radius:50%;width:7px;height:7px;animation:1.5s ease-in-out infinite OZWxoa_pulse}@keyframes OZWxoa_pulse{0%,to{opacity:.35;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}";
731
731
  const tagId$7 = "dsh-better-display/McpAppFrame.module.css";
732
732
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$7) + "]") === null) {
733
733
  const tag = document.createElement("style");
@@ -737,24 +737,24 @@ ${trimmed}
737
737
  document.head.appendChild(tag);
738
738
  }
739
739
  var McpAppFrame_module_css_default = {
740
- "actions": "gyryoa_actions",
741
- "card": "gyryoa_card",
742
- "header": "gyryoa_header",
743
- "icon": "gyryoa_icon",
744
- "iconBtn": "gyryoa_iconBtn",
745
- "iframe": "gyryoa_iframe",
746
- "iframeWrapper": "gyryoa_iframeWrapper",
747
- "pulse": "gyryoa_pulse",
748
- "pulseDot": "gyryoa_pulseDot",
749
- "receipt": "gyryoa_receipt",
750
- "receiptHint": "gyryoa_receiptHint",
751
- "receiptPrompt": "gyryoa_receiptPrompt",
752
- "receiptSummary": "gyryoa_receiptSummary",
753
- "sendKbd": "gyryoa_sendKbd",
754
- "slideUp": "gyryoa_slideUp",
755
- "streamingPlaceholder": "gyryoa_streamingPlaceholder",
756
- "title": "gyryoa_title",
757
- "titleArea": "gyryoa_titleArea"
740
+ "actions": "OZWxoa_actions",
741
+ "card": "OZWxoa_card",
742
+ "header": "OZWxoa_header",
743
+ "icon": "OZWxoa_icon",
744
+ "iconBtn": "OZWxoa_iconBtn",
745
+ "iframe": "OZWxoa_iframe",
746
+ "iframeWrapper": "OZWxoa_iframeWrapper",
747
+ "pulse": "OZWxoa_pulse",
748
+ "pulseDot": "OZWxoa_pulseDot",
749
+ "receipt": "OZWxoa_receipt",
750
+ "receiptHint": "OZWxoa_receiptHint",
751
+ "receiptPrompt": "OZWxoa_receiptPrompt",
752
+ "receiptSummary": "OZWxoa_receiptSummary",
753
+ "sendKbd": "OZWxoa_sendKbd",
754
+ "slideUp": "OZWxoa_slideUp",
755
+ "streamingPlaceholder": "OZWxoa_streamingPlaceholder",
756
+ "title": "OZWxoa_title",
757
+ "titleArea": "OZWxoa_titleArea"
758
758
  };
759
759
  //#endregion
760
760
  //#region src/client/McpAppFrame.tsx
@@ -1566,7 +1566,7 @@ ${trimmed}
1566
1566
  }
1567
1567
  };
1568
1568
  //#endregion
1569
- //#region ../../runtime/node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js
1569
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js
1570
1570
  /**
1571
1571
  * @typedef {import('mdast').Nodes} Nodes
1572
1572
  *
@@ -1648,7 +1648,7 @@ ${trimmed}
1648
1648
  return Boolean(value && typeof value === "object");
1649
1649
  }
1650
1650
  //#endregion
1651
- //#region ../../runtime/node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/index.js
1651
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/index.js
1652
1652
  /**
1653
1653
  * Like `Array#splice`, but smarter for giant arrays.
1654
1654
  *
@@ -1718,7 +1718,7 @@ ${trimmed}
1718
1718
  return items;
1719
1719
  }
1720
1720
  //#endregion
1721
- //#region ../../runtime/node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js
1721
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js
1722
1722
  /**
1723
1723
  * @import {
1724
1724
  * Extension,
@@ -1789,7 +1789,7 @@ ${trimmed}
1789
1789
  splice(existing, 0, 0, before);
1790
1790
  }
1791
1791
  //#endregion
1792
- //#region ../../runtime/node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js
1792
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js
1793
1793
  /**
1794
1794
  * @import {Code} from 'micromark-util-types'
1795
1795
  */
@@ -2017,7 +2017,7 @@ ${trimmed}
2017
2017
  }
2018
2018
  }
2019
2019
  //#endregion
2020
- //#region ../../runtime/node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/index.js
2020
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/index.js
2021
2021
  /**
2022
2022
  * @import {Effects, State, TokenType} from 'micromark-util-types'
2023
2023
  */
@@ -2076,7 +2076,7 @@ ${trimmed}
2076
2076
  }
2077
2077
  }
2078
2078
  //#endregion
2079
- //#region ../../runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/initialize/content.js
2079
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/initialize/content.js
2080
2080
  /**
2081
2081
  * @import {
2082
2082
  * InitialConstruct,
@@ -2143,7 +2143,7 @@ ${trimmed}
2143
2143
  }
2144
2144
  }
2145
2145
  //#endregion
2146
- //#region ../../runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/initialize/document.js
2146
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/initialize/document.js
2147
2147
  /**
2148
2148
  * @import {
2149
2149
  * Construct,
@@ -2359,7 +2359,7 @@ ${trimmed}
2359
2359
  return factorySpace(effects, effects.attempt(this.parser.constructs.document, ok, nok), "linePrefix", this.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4);
2360
2360
  }
2361
2361
  //#endregion
2362
- //#region ../../runtime/node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/index.js
2362
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/index.js
2363
2363
  /**
2364
2364
  * @import {Code} from 'micromark-util-types'
2365
2365
  */
@@ -2382,7 +2382,7 @@ ${trimmed}
2382
2382
  if (unicodePunctuation(code)) return 2;
2383
2383
  }
2384
2384
  //#endregion
2385
- //#region ../../runtime/node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js
2385
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js
2386
2386
  /**
2387
2387
  * @import {Event, Resolver, TokenizeContext} from 'micromark-util-types'
2388
2388
  */
@@ -2412,7 +2412,7 @@ ${trimmed}
2412
2412
  return events;
2413
2413
  }
2414
2414
  //#endregion
2415
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/attention.js
2415
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/attention.js
2416
2416
  /**
2417
2417
  * @import {
2418
2418
  * Code,
@@ -2632,7 +2632,7 @@ ${trimmed}
2632
2632
  point._bufferIndex += offset;
2633
2633
  }
2634
2634
  //#endregion
2635
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/autolink.js
2635
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/autolink.js
2636
2636
  /**
2637
2637
  * @import {
2638
2638
  * Construct,
@@ -2843,7 +2843,7 @@ ${trimmed}
2843
2843
  }
2844
2844
  }
2845
2845
  //#endregion
2846
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/blank-line.js
2846
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/blank-line.js
2847
2847
  /**
2848
2848
  * @import {
2849
2849
  * Construct,
@@ -2900,7 +2900,7 @@ ${trimmed}
2900
2900
  }
2901
2901
  }
2902
2902
  //#endregion
2903
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/block-quote.js
2903
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/block-quote.js
2904
2904
  /**
2905
2905
  * @import {
2906
2906
  * Construct,
@@ -3027,7 +3027,7 @@ ${trimmed}
3027
3027
  effects.exit("blockQuote");
3028
3028
  }
3029
3029
  //#endregion
3030
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-escape.js
3030
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-escape.js
3031
3031
  /**
3032
3032
  * @import {
3033
3033
  * Construct,
@@ -3087,7 +3087,7 @@ ${trimmed}
3087
3087
  }
3088
3088
  }
3089
3089
  //#endregion
3090
- //#region ../../runtime/node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/index.js
3090
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/index.js
3091
3091
  /**
3092
3092
  * Map of named character references.
3093
3093
  *
@@ -5221,7 +5221,7 @@ ${trimmed}
5221
5221
  zwnj: "‌"
5222
5222
  };
5223
5223
  //#endregion
5224
- //#region ../../runtime/node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.js
5224
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.js
5225
5225
  const own$1 = {}.hasOwnProperty;
5226
5226
  /**
5227
5227
  * Decode a single character reference (without the `&` or `;`).
@@ -5238,7 +5238,7 @@ ${trimmed}
5238
5238
  return own$1.call(characterEntities, value) ? characterEntities[value] : false;
5239
5239
  }
5240
5240
  //#endregion
5241
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-reference.js
5241
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-reference.js
5242
5242
  /**
5243
5243
  * @import {
5244
5244
  * Code,
@@ -5376,7 +5376,7 @@ ${trimmed}
5376
5376
  }
5377
5377
  }
5378
5378
  //#endregion
5379
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-fenced.js
5379
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-fenced.js
5380
5380
  /**
5381
5381
  * @import {
5382
5382
  * Code,
@@ -5791,7 +5791,7 @@ ${trimmed}
5791
5791
  }
5792
5792
  }
5793
5793
  //#endregion
5794
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-indented.js
5794
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-indented.js
5795
5795
  /**
5796
5796
  * @import {
5797
5797
  * Construct,
@@ -5935,7 +5935,7 @@ ${trimmed}
5935
5935
  }
5936
5936
  }
5937
5937
  //#endregion
5938
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-text.js
5938
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-text.js
5939
5939
  /**
5940
5940
  * @import {
5941
5941
  * Construct,
@@ -6120,7 +6120,7 @@ ${trimmed}
6120
6120
  }
6121
6121
  }
6122
6122
  //#endregion
6123
- //#region ../../runtime/node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/lib/splice-buffer.js
6123
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/lib/splice-buffer.js
6124
6124
  /**
6125
6125
  * Some of the internal operations of micromark do lots of editing
6126
6126
  * operations on very large arrays. This runs into problems with two
@@ -6350,7 +6350,7 @@ ${trimmed}
6350
6350
  }
6351
6351
  }
6352
6352
  //#endregion
6353
- //#region ../../runtime/node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/index.js
6353
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/index.js
6354
6354
  /**
6355
6355
  * @import {Chunk, Event, Token} from 'micromark-util-types'
6356
6356
  */
@@ -6505,7 +6505,7 @@ ${trimmed}
6505
6505
  return gaps;
6506
6506
  }
6507
6507
  //#endregion
6508
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/content.js
6508
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/content.js
6509
6509
  /**
6510
6510
  * @import {
6511
6511
  * Construct,
@@ -6638,7 +6638,7 @@ ${trimmed}
6638
6638
  }
6639
6639
  }
6640
6640
  //#endregion
6641
- //#region ../../runtime/node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/index.js
6641
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/index.js
6642
6642
  /**
6643
6643
  * @import {Effects, State, TokenType} from 'micromark-util-types'
6644
6644
  */
@@ -6822,7 +6822,7 @@ ${trimmed}
6822
6822
  }
6823
6823
  }
6824
6824
  //#endregion
6825
- //#region ../../runtime/node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/index.js
6825
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/index.js
6826
6826
  /**
6827
6827
  * @import {
6828
6828
  * Effects,
@@ -6954,7 +6954,7 @@ ${trimmed}
6954
6954
  }
6955
6955
  }
6956
6956
  //#endregion
6957
- //#region ../../runtime/node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/index.js
6957
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/index.js
6958
6958
  /**
6959
6959
  * @import {
6960
6960
  * Code,
@@ -7099,7 +7099,7 @@ ${trimmed}
7099
7099
  }
7100
7100
  }
7101
7101
  //#endregion
7102
- //#region ../../runtime/node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/index.js
7102
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/index.js
7103
7103
  /**
7104
7104
  * @import {Effects, State} from 'micromark-util-types'
7105
7105
  */
@@ -7139,7 +7139,7 @@ ${trimmed}
7139
7139
  }
7140
7140
  }
7141
7141
  //#endregion
7142
- //#region ../../runtime/node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/index.js
7142
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/index.js
7143
7143
  /**
7144
7144
  * Normalize an identifier (as found in references, definitions).
7145
7145
  *
@@ -7163,7 +7163,7 @@ ${trimmed}
7163
7163
  return value.replace(/[\t\n\r ]+/g, " ").replace(/^ | $/g, "").toLowerCase().toUpperCase();
7164
7164
  }
7165
7165
  //#endregion
7166
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/definition.js
7166
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/definition.js
7167
7167
  /**
7168
7168
  * @import {
7169
7169
  * Construct,
@@ -7378,7 +7378,7 @@ ${trimmed}
7378
7378
  }
7379
7379
  }
7380
7380
  //#endregion
7381
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/hard-break-escape.js
7381
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/hard-break-escape.js
7382
7382
  /**
7383
7383
  * @import {
7384
7384
  * Construct,
@@ -7435,7 +7435,7 @@ ${trimmed}
7435
7435
  }
7436
7436
  }
7437
7437
  //#endregion
7438
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/heading-atx.js
7438
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/heading-atx.js
7439
7439
  /**
7440
7440
  * @import {
7441
7441
  * Construct,
@@ -7620,7 +7620,7 @@ ${trimmed}
7620
7620
  }
7621
7621
  }
7622
7622
  //#endregion
7623
- //#region ../../runtime/node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js
7623
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js
7624
7624
  /**
7625
7625
  * List of lowercase HTML “block” tag names.
7626
7626
  *
@@ -7719,7 +7719,7 @@ ${trimmed}
7719
7719
  "textarea"
7720
7720
  ];
7721
7721
  //#endregion
7722
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-flow.js
7722
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-flow.js
7723
7723
  /**
7724
7724
  * @import {
7725
7725
  * Code,
@@ -8492,7 +8492,7 @@ ${trimmed}
8492
8492
  }
8493
8493
  }
8494
8494
  //#endregion
8495
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-text.js
8495
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-text.js
8496
8496
  /**
8497
8497
  * @import {
8498
8498
  * Code,
@@ -9106,7 +9106,7 @@ ${trimmed}
9106
9106
  }
9107
9107
  }
9108
9108
  //#endregion
9109
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-end.js
9109
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-end.js
9110
9110
  /**
9111
9111
  * @import {
9112
9112
  * Construct,
@@ -9576,7 +9576,7 @@ ${trimmed}
9576
9576
  }
9577
9577
  }
9578
9578
  //#endregion
9579
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-image.js
9579
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-image.js
9580
9580
  /**
9581
9581
  * @import {
9582
9582
  * Construct,
@@ -9669,7 +9669,7 @@ ${trimmed}
9669
9669
  }
9670
9670
  }
9671
9671
  //#endregion
9672
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-link.js
9672
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-link.js
9673
9673
  /**
9674
9674
  * @import {
9675
9675
  * Construct,
@@ -9717,7 +9717,7 @@ ${trimmed}
9717
9717
  }
9718
9718
  }
9719
9719
  //#endregion
9720
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/line-ending.js
9720
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/line-ending.js
9721
9721
  /**
9722
9722
  * @import {
9723
9723
  * Construct,
@@ -9747,7 +9747,7 @@ ${trimmed}
9747
9747
  }
9748
9748
  }
9749
9749
  //#endregion
9750
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/thematic-break.js
9750
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/thematic-break.js
9751
9751
  /**
9752
9752
  * @import {
9753
9753
  * Code,
@@ -9842,7 +9842,7 @@ ${trimmed}
9842
9842
  }
9843
9843
  }
9844
9844
  //#endregion
9845
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/list.js
9845
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/list.js
9846
9846
  /**
9847
9847
  * @import {
9848
9848
  * Code,
@@ -10014,7 +10014,7 @@ ${trimmed}
10014
10014
  }
10015
10015
  }
10016
10016
  //#endregion
10017
- //#region ../../runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/setext-underline.js
10017
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/setext-underline.js
10018
10018
  /**
10019
10019
  * @import {
10020
10020
  * Code,
@@ -10166,7 +10166,7 @@ ${trimmed}
10166
10166
  }
10167
10167
  }
10168
10168
  //#endregion
10169
- //#region ../../runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/initialize/flow.js
10169
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/initialize/flow.js
10170
10170
  /**
10171
10171
  * @import {
10172
10172
  * InitialConstruct,
@@ -10213,7 +10213,7 @@ ${trimmed}
10213
10213
  }
10214
10214
  }
10215
10215
  //#endregion
10216
- //#region ../../runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/initialize/text.js
10216
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/initialize/text.js
10217
10217
  /**
10218
10218
  * @import {
10219
10219
  * Code,
@@ -10390,7 +10390,7 @@ ${trimmed}
10390
10390
  return events;
10391
10391
  }
10392
10392
  //#endregion
10393
- //#region ../../runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/constructs.js
10393
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/constructs.js
10394
10394
  /**
10395
10395
  * @import {Extension} from 'micromark-util-types'
10396
10396
  */
@@ -10468,7 +10468,7 @@ ${trimmed}
10468
10468
  /** @satisfies {Extension['disable']} */
10469
10469
  const disable = { null: [] };
10470
10470
  //#endregion
10471
- //#region ../../runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/create-tokenizer.js
10471
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/create-tokenizer.js
10472
10472
  /**
10473
10473
  * @import {
10474
10474
  * Chunk,
@@ -10937,7 +10937,7 @@ ${trimmed}
10937
10937
  return result.join("");
10938
10938
  }
10939
10939
  //#endregion
10940
- //#region ../../runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/parse.js
10940
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/parse.js
10941
10941
  /**
10942
10942
  * @import {
10943
10943
  * Create,
@@ -10981,7 +10981,7 @@ ${trimmed}
10981
10981
  }
10982
10982
  }
10983
10983
  //#endregion
10984
- //#region ../../runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/postprocess.js
10984
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/postprocess.js
10985
10985
  /**
10986
10986
  * @import {Event} from 'micromark-util-types'
10987
10987
  */
@@ -10996,7 +10996,7 @@ ${trimmed}
10996
10996
  return events;
10997
10997
  }
10998
10998
  //#endregion
10999
- //#region ../../runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/preprocess.js
10999
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark@4.0.2_supports-color@9.4.0/node_modules/micromark/lib/preprocess.js
11000
11000
  /**
11001
11001
  * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'
11002
11002
  */
@@ -11097,7 +11097,7 @@ ${trimmed}
11097
11097
  }
11098
11098
  }
11099
11099
  //#endregion
11100
- //#region ../../runtime/node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/index.js
11100
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/index.js
11101
11101
  /**
11102
11102
  * Turn the number (in string form as either hexa- or plain decimal) coming from
11103
11103
  * a numeric character reference into a character.
@@ -11118,7 +11118,7 @@ ${trimmed}
11118
11118
  return String.fromCodePoint(code);
11119
11119
  }
11120
11120
  //#endregion
11121
- //#region ../../runtime/node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js
11121
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js
11122
11122
  const characterEscapeOrReference = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;
11123
11123
  /**
11124
11124
  * Decode markdown strings (which occur in places such as fenced code info
@@ -11155,7 +11155,7 @@ ${trimmed}
11155
11155
  return decodeNamedCharacterReference($2) || $0;
11156
11156
  }
11157
11157
  //#endregion
11158
- //#region ../../runtime/node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js
11158
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js
11159
11159
  /**
11160
11160
  * @typedef {import('unist').Node} Node
11161
11161
  * @typedef {import('unist').Point} Point
@@ -11219,7 +11219,7 @@ ${trimmed}
11219
11219
  return value && typeof value === "number" ? value : 1;
11220
11220
  }
11221
11221
  //#endregion
11222
- //#region ../../runtime/node_modules/.pnpm/mdast-util-from-markdown@2.0.3_supports-color@9.4.0/node_modules/mdast-util-from-markdown/lib/index.js
11222
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/mdast-util-from-markdown@2.0.3_supports-color@9.4.0/node_modules/mdast-util-from-markdown/lib/index.js
11223
11223
  /**
11224
11224
  * @import {
11225
11225
  * Break,
@@ -12185,7 +12185,7 @@ ${trimmed}
12185
12185
  }) + ") is still open");
12186
12186
  }
12187
12187
  //#endregion
12188
- //#region ../../runtime/node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js
12188
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js
12189
12189
  /**
12190
12190
  * Count how often a character (or substring) is used in a string.
12191
12191
  *
@@ -12208,13 +12208,13 @@ ${trimmed}
12208
12208
  return count;
12209
12209
  }
12210
12210
  //#endregion
12211
- //#region ../../runtime/node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js
12211
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js
12212
12212
  function escapeStringRegexp(string) {
12213
12213
  if (typeof string !== "string") throw new TypeError("Expected a string");
12214
12214
  return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
12215
12215
  }
12216
12216
  //#endregion
12217
- //#region ../../runtime/node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js
12217
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js
12218
12218
  /**
12219
12219
  * Generate an assertion from a test.
12220
12220
  *
@@ -12328,7 +12328,7 @@ function(test) {
12328
12328
  return value !== null && typeof value === "object" && "type" in value;
12329
12329
  }
12330
12330
  //#endregion
12331
- //#region ../../runtime/node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.js
12331
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.js
12332
12332
  /**
12333
12333
  * @param {string} d
12334
12334
  * @returns {string}
@@ -12337,7 +12337,7 @@ function(test) {
12337
12337
  return "\x1B[33m" + d + "\x1B[39m";
12338
12338
  }
12339
12339
  //#endregion
12340
- //#region ../../runtime/node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js
12340
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js
12341
12341
  /**
12342
12342
  * @import {Node as UnistNode, Parent as UnistParent} from 'unist'
12343
12343
  */
@@ -12658,7 +12658,7 @@ function(test) {
12658
12658
  return value === null || value === void 0 ? empty : [value];
12659
12659
  }
12660
12660
  //#endregion
12661
- //#region ../../runtime/node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/lib/index.js
12661
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/lib/index.js
12662
12662
  /**
12663
12663
  * @import {Nodes, Parents, PhrasingContent, Root, Text} from 'mdast'
12664
12664
  * @import {BuildVisitor, Test, VisitorResult} from 'unist-util-visit-parents'
@@ -12853,7 +12853,7 @@ function(test) {
12853
12853
  };
12854
12854
  }
12855
12855
  //#endregion
12856
- //#region ../../runtime/node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/lib/index.js
12856
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/lib/index.js
12857
12857
  /**
12858
12858
  * @import {RegExpMatchObject, ReplaceFunction} from 'mdast-util-find-and-replace'
12859
12859
  * @import {CompileContext, Extension as FromMarkdownExtension, Handle as FromMarkdownHandle, Transform as FromMarkdownTransform} from 'mdast-util-from-markdown'
@@ -13033,7 +13033,7 @@ function(test) {
13033
13033
  return (match.index === 0 || unicodeWhitespace(code) || unicodePunctuation(code)) && (!email || code !== 47);
13034
13034
  }
13035
13035
  //#endregion
13036
- //#region ../../runtime/node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0/node_modules/mdast-util-gfm-footnote/lib/index.js
13036
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0/node_modules/mdast-util-gfm-footnote/lib/index.js
13037
13037
  /**
13038
13038
  * @import {
13039
13039
  * CompileContext,
@@ -13168,7 +13168,7 @@ function(test) {
13168
13168
  };
13169
13169
  }
13170
13170
  //#endregion
13171
- //#region ../../runtime/node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0/node_modules/mdast-util-gfm-strikethrough/lib/index.js
13171
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.0/node_modules/mdast-util-gfm-strikethrough/lib/index.js
13172
13172
  handleDelete.peek = peekDelete;
13173
13173
  /**
13174
13174
  * Create an extension for `mdast-util-from-markdown` to enable GFM
@@ -13223,7 +13223,7 @@ function(test) {
13223
13223
  return "~";
13224
13224
  }
13225
13225
  //#endregion
13226
- //#region ../../runtime/node_modules/.pnpm/mdast-util-gfm-table@2.0.0/node_modules/mdast-util-gfm-table/lib/index.js
13226
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/mdast-util-gfm-table@2.0.0/node_modules/mdast-util-gfm-table/lib/index.js
13227
13227
  /**
13228
13228
  * @typedef {import('mdast').InlineCode} InlineCode
13229
13229
  * @typedef {import('mdast').Table} Table
@@ -13348,7 +13348,7 @@ function(test) {
13348
13348
  return $1 === "|" ? $1 : $0;
13349
13349
  }
13350
13350
  //#endregion
13351
- //#region ../../runtime/node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0/node_modules/mdast-util-gfm-task-list-item/lib/index.js
13351
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0/node_modules/mdast-util-gfm-task-list-item/lib/index.js
13352
13352
  /**
13353
13353
  * @typedef {import('mdast').ListItem} ListItem
13354
13354
  * @typedef {import('mdast').Paragraph} Paragraph
@@ -13417,7 +13417,7 @@ function(test) {
13417
13417
  this.exit(token);
13418
13418
  }
13419
13419
  //#endregion
13420
- //#region ../../runtime/node_modules/.pnpm/mdast-util-gfm@3.1.0/node_modules/mdast-util-gfm/lib/index.js
13420
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/mdast-util-gfm@3.1.0/node_modules/mdast-util-gfm/lib/index.js
13421
13421
  /**
13422
13422
  * @import {Extension as FromMarkdownExtension} from 'mdast-util-from-markdown'
13423
13423
  * @import {Options} from 'mdast-util-gfm'
@@ -13441,7 +13441,7 @@ function(test) {
13441
13441
  ];
13442
13442
  }
13443
13443
  //#endregion
13444
- //#region ../../runtime/node_modules/.pnpm/mdast-util-math@3.0.0/node_modules/mdast-util-math/lib/index.js
13444
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/mdast-util-math@3.0.0/node_modules/mdast-util-math/lib/index.js
13445
13445
  /**
13446
13446
  * @typedef {import('hast').Element} HastElement
13447
13447
  * @typedef {import('hast').ElementContent} HastElementContent
@@ -13590,7 +13590,7 @@ function(test) {
13590
13590
  }
13591
13591
  }
13592
13592
  //#endregion
13593
- //#region ../../runtime/node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js
13593
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js
13594
13594
  /**
13595
13595
  * @import {Code, ConstructRecord, Event, Extension, Previous, State, TokenizeContext, Tokenizer} from 'micromark-util-types'
13596
13596
  */
@@ -14291,7 +14291,7 @@ function(test) {
14291
14291
  return result;
14292
14292
  }
14293
14293
  //#endregion
14294
- //#region ../../runtime/node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/index.js
14294
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/index.js
14295
14295
  /**
14296
14296
  * Normalize a URL.
14297
14297
  *
@@ -14336,7 +14336,7 @@ function(test) {
14336
14336
  return result.join("") + value.slice(start);
14337
14337
  }
14338
14338
  //#endregion
14339
- //#region ../../runtime/node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/lib/syntax.js
14339
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/lib/syntax.js
14340
14340
  /**
14341
14341
  * @import {Event, Exiter, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'
14342
14342
  */
@@ -14755,7 +14755,7 @@ function(test) {
14755
14755
  }
14756
14756
  }
14757
14757
  //#endregion
14758
- //#region ../../runtime/node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js
14758
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js
14759
14759
  /**
14760
14760
  * @import {Options} from 'micromark-extension-gfm-strikethrough'
14761
14761
  * @import {Event, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'
@@ -14896,7 +14896,7 @@ function(test) {
14896
14896
  }
14897
14897
  }
14898
14898
  //#endregion
14899
- //#region ../../runtime/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/edit-map.js
14899
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/edit-map.js
14900
14900
  /**
14901
14901
  * @import {Event} from 'micromark-util-types'
14902
14902
  */
@@ -14988,7 +14988,7 @@ function(test) {
14988
14988
  ]);
14989
14989
  }
14990
14990
  //#endregion
14991
- //#region ../../runtime/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/infer.js
14991
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/infer.js
14992
14992
  /**
14993
14993
  * @import {Event} from 'micromark-util-types'
14994
14994
  */
@@ -15026,7 +15026,7 @@ function(test) {
15026
15026
  return align;
15027
15027
  }
15028
15028
  //#endregion
15029
- //#region ../../runtime/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/syntax.js
15029
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/syntax.js
15030
15030
  /**
15031
15031
  * @import {Event, Extension, Point, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'
15032
15032
  */
@@ -15720,7 +15720,7 @@ function(test) {
15720
15720
  return event[1][side];
15721
15721
  }
15722
15722
  //#endregion
15723
- //#region ../../runtime/node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js
15723
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js
15724
15724
  /**
15725
15725
  * @import {Extension, State, TokenizeContext, Tokenizer} from 'micromark-util-types'
15726
15726
  */
@@ -15839,7 +15839,7 @@ function(test) {
15839
15839
  }
15840
15840
  }
15841
15841
  //#endregion
15842
- //#region ../../runtime/node_modules/.pnpm/micromark-extension-gfm@3.0.0/node_modules/micromark-extension-gfm/index.js
15842
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-extension-gfm@3.0.0/node_modules/micromark-extension-gfm/index.js
15843
15843
  /**
15844
15844
  * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions
15845
15845
  * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options
@@ -15867,7 +15867,7 @@ function(test) {
15867
15867
  ]);
15868
15868
  }
15869
15869
  //#endregion
15870
- //#region ../../runtime/node_modules/.pnpm/micromark-extension-math@3.1.0/node_modules/micromark-extension-math/lib/math-flow.js
15870
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-extension-math@3.1.0/node_modules/micromark-extension-math/lib/math-flow.js
15871
15871
  /**
15872
15872
  * @import {Construct, State, TokenizeContext, Tokenizer} from 'micromark-util-types'
15873
15873
  */
@@ -16172,7 +16172,7 @@ function(test) {
16172
16172
  }
16173
16173
  }
16174
16174
  //#endregion
16175
- //#region ../../runtime/node_modules/.pnpm/micromark-extension-math@3.1.0/node_modules/micromark-extension-math/lib/math-text.js
16175
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-extension-math@3.1.0/node_modules/micromark-extension-math/lib/math-text.js
16176
16176
  /**
16177
16177
  * @import {Options} from 'micromark-extension-math'
16178
16178
  * @import {Construct, Previous, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'
@@ -16358,7 +16358,7 @@ function(test) {
16358
16358
  return code !== 36 || this.events[this.events.length - 1][1].type === "characterEscape";
16359
16359
  }
16360
16360
  //#endregion
16361
- //#region ../../runtime/node_modules/.pnpm/micromark-extension-math@3.1.0/node_modules/micromark-extension-math/lib/syntax.js
16361
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-extension-math@3.1.0/node_modules/micromark-extension-math/lib/syntax.js
16362
16362
  /**
16363
16363
  * @import {Options} from 'micromark-extension-math'
16364
16364
  * @import {Extension} from 'micromark-util-types'
@@ -16379,7 +16379,7 @@ function(test) {
16379
16379
  };
16380
16380
  }
16381
16381
  //#endregion
16382
- //#region ../../runtime/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/codes.js
16382
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/codes.js
16383
16383
  /**
16384
16384
  * Character codes.
16385
16385
  *
@@ -16537,7 +16537,7 @@ function(test) {
16537
16537
  replacementCharacter: 65533
16538
16538
  };
16539
16539
  //#endregion
16540
- //#region ../../runtime/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/constants.js
16540
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/constants.js
16541
16541
  /**
16542
16542
  * This module is compiled away!
16543
16543
  *
@@ -16583,7 +16583,7 @@ function(test) {
16583
16583
  v8MaxSafeChunkSize: 1e4
16584
16584
  };
16585
16585
  //#endregion
16586
- //#region ../../runtime/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/types.js
16586
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/types.js
16587
16587
  /**
16588
16588
  * This module is compiled away!
16589
16589
  *
@@ -17060,7 +17060,7 @@ function(test) {
17060
17060
  });
17061
17061
  }
17062
17062
  //#endregion
17063
- //#region ../../runtime/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
17063
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
17064
17064
  function r(e) {
17065
17065
  var t, f, n = "";
17066
17066
  if ("string" == typeof e || "number" == typeof e) n += e;
@@ -17075,7 +17075,7 @@ function(test) {
17075
17075
  return n;
17076
17076
  }
17077
17077
  //#endregion
17078
- //#region ../../runtime/node_modules/.pnpm/katex@0.16.47/node_modules/katex/dist/katex.mjs
17078
+ //#region ../../../../DeepSeekHarness/runtime/node_modules/.pnpm/katex@0.16.47/node_modules/katex/dist/katex.mjs
17079
17079
  /**
17080
17080
  * This is the ParseError class, which is the main error thrown by KaTeX
17081
17081
  * functions when something has gone wrong. This is used to distinguish internal
@@ -43587,7 +43587,7 @@ function(test) {
43587
43587
  }
43588
43588
  //#endregion
43589
43589
  //#region \0dshx-css-module:MarkdownText.module.css.mjs
43590
- const css$6 = ".uv890q_markdown{overflow-wrap:anywhere;min-width:0;font:var(--dsw-font-markdown-base);color:var(--dsw-alias-label-primary)}.uv890q_markdown strong{font-weight:600}.uv890q_markdown h1{font:var(--dsw-font-markdown-h1);margin:32px 0 16px}.uv890q_markdown h2{font:var(--dsw-font-markdown-h2);margin:32px 0 16px}.uv890q_markdown h3{font:var(--dsw-font-markdown-h3);margin:32px 0 16px}.uv890q_markdown h4{font:var(--dsw-font-markdown-h4);margin:16px 0}.uv890q_markdown :where(h5,h6){font:var(--dsw-font-markdown-base-strong);margin:16px 0}.uv890q_markdown :where(h1,h2,h3,h4,h5,h6) strong{font-weight:inherit}.uv890q_markdown p{margin:16px 0}.uv890q_markdown :where(h4,h5,h6)+:where(ul,ol){margin-top:8px}.uv890q_markdown :where(h4,h5,h6):has(+:where(ul,ol)){margin-bottom:8px}.uv890q_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}.uv890q_markdown a:hover,.uv890q_markdown a:focus{text-decoration:underline var(--dsw-alias-state-business-primary);outline:none}.uv890q_markdown a:focus-visible{box-shadow:0 0 0 2px var(--dsw-alias-state-business-primary)}.uv890q_markdown :where(ul,ol){margin:16px 0;padding-left:18px}.uv890q_markdown li:not(:first-child){margin-top:6px}.uv890q_markdown li>:where(ul,ol){margin-top:4px}.uv890q_markdown li::marker{color:var(--dsw-alias-label-secondary);line-height:28px}.uv890q_markdown :where(ul,ol) ol{padding-left:0;list-style-position:inside}.uv890q_markdown :where(ul,ol) ol li p{display:inline}.uv890q_markdown li>p{margin:8px 0}.uv890q_markdown li>:first-child{margin-top:0}.uv890q_markdown li>:last-child:not(.md-code-block){margin-bottom:0}.uv890q_markdown hr{background:var(--dsw-alias-border-l2);border:none;height:1px;margin:32px 0;display:block}.uv890q_markdown blockquote{border-left:2px solid var(--dsw-alias-label-caption);margin:16px 0 0;padding-left:14px}.uv890q_markdown pre{font-family:var(--ds-font-family-code);margin:16px 0;overflow:auto}.uv890q_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}.uv890q_markdown :where(h1,h2,h3,h4,h5,h6) code{font:inherit;font-family:var(--ds-font-family-code)}.uv890q_markdown .katex-display{max-width:100%;overflow:auto hidden}.uv890q_markdown input[type=checkbox]{accent-color:var(--dsw-alias-label-secondary);margin:0 8px 0 0}.uv890q_tableScroll{overscroll-behavior-x:contain;max-width:100%;overflow-x:auto}.uv890q_tableScroll.md-table-wide{padding-bottom:var(--dsh-scrollbar-width,8px);overflow-x:hidden}.uv890q_tableScroll.md-table-wide:hover,.uv890q_tableScroll.md-table-wide:focus-visible{padding-bottom:0;overflow-x:auto}.uv890q_tableScroll:focus-visible{box-shadow:0 0 0 2px var(--dsw-alias-state-business-primary);outline:none}.uv890q_tableScroll table{border-collapse:collapse;width:max-content;max-width:max-content}.uv890q_tableFill table{width:100%;max-width:none}.uv890q_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}.uv890q_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}.uv890q_tableScroll th:first-child,.uv890q_tableScroll td:first-child{padding-left:0}.uv890q_tableScroll td:last-child{padding-right:0}.uv890q_tableScroll table code{font-size:13px}.uv890q_markdown>:first-child,.uv890q_markdown p:first-child{margin-top:0!important}.uv890q_markdown>:last-child,.uv890q_markdown p:last-child{margin-bottom:0!important}.uv890q_imageAlt{color:var(--dsw-alias-label-tertiary);font-style:italic}.uv890q_image{background:var(--dsw-alias-bg-base);object-fit:contain;border-radius:8px;width:auto;max-width:100%;height:auto;margin:0;display:block}.uv890q_fileMention{font:inherit;color:var(--dsw-alias-state-business-primary);cursor:pointer;background:0 0;border:none;margin:0;padding:0;text-decoration:none}.uv890q_fileMention:hover,.uv890q_fileMention:focus{text-decoration:underline var(--dsw-alias-state-business-primary);text-underline-offset:3px;outline:none}";
43590
+ const css$6 = ".PWOyeG_markdown{overflow-wrap:anywhere;min-width:0;font:var(--dsw-font-markdown-base);color:var(--dsw-alias-label-primary)}.PWOyeG_markdown strong{font-weight:600}.PWOyeG_markdown h1{font:var(--dsw-font-markdown-h1);margin:32px 0 16px}.PWOyeG_markdown h2{font:var(--dsw-font-markdown-h2);margin:32px 0 16px}.PWOyeG_markdown h3{font:var(--dsw-font-markdown-h3);margin:32px 0 16px}.PWOyeG_markdown h4{font:var(--dsw-font-markdown-h4);margin:16px 0}.PWOyeG_markdown :where(h5,h6){font:var(--dsw-font-markdown-base-strong);margin:16px 0}.PWOyeG_markdown :where(h1,h2,h3,h4,h5,h6) strong{font-weight:inherit}.PWOyeG_markdown p{margin:16px 0}.PWOyeG_markdown :where(h4,h5,h6)+:where(ul,ol){margin-top:8px}.PWOyeG_markdown :where(h4,h5,h6):has(+:where(ul,ol)){margin-bottom:8px}.PWOyeG_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}.PWOyeG_markdown a:hover,.PWOyeG_markdown a:focus{text-decoration:underline var(--dsw-alias-state-business-primary);outline:none}.PWOyeG_markdown a:focus-visible{box-shadow:0 0 0 2px var(--dsw-alias-state-business-primary)}.PWOyeG_markdown :where(ul,ol){margin:16px 0;padding-left:18px}.PWOyeG_markdown li:not(:first-child){margin-top:6px}.PWOyeG_markdown li>:where(ul,ol){margin-top:4px}.PWOyeG_markdown li::marker{color:var(--dsw-alias-label-secondary);line-height:28px}.PWOyeG_markdown :where(ul,ol) ol{padding-left:0;list-style-position:inside}.PWOyeG_markdown :where(ul,ol) ol li p{display:inline}.PWOyeG_markdown li>p{margin:8px 0}.PWOyeG_markdown li>:first-child{margin-top:0}.PWOyeG_markdown li>:last-child:not(.md-code-block){margin-bottom:0}.PWOyeG_markdown hr{background:var(--dsw-alias-border-l2);border:none;height:1px;margin:32px 0;display:block}.PWOyeG_markdown blockquote{border-left:2px solid var(--dsw-alias-label-caption);margin:16px 0 0;padding-left:14px}.PWOyeG_markdown pre{font-family:var(--ds-font-family-code);margin:16px 0;overflow:auto}.PWOyeG_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}.PWOyeG_markdown :where(h1,h2,h3,h4,h5,h6) code{font:inherit;font-family:var(--ds-font-family-code)}.PWOyeG_markdown .katex-display{max-width:100%;overflow:auto hidden}.PWOyeG_markdown input[type=checkbox]{accent-color:var(--dsw-alias-label-secondary);margin:0 8px 0 0}.PWOyeG_tableScroll{overscroll-behavior-x:contain;max-width:100%;overflow-x:auto}.PWOyeG_tableScroll.md-table-wide{padding-bottom:var(--dsh-scrollbar-width,8px);overflow-x:hidden}.PWOyeG_tableScroll.md-table-wide:hover,.PWOyeG_tableScroll.md-table-wide:focus-visible{padding-bottom:0;overflow-x:auto}.PWOyeG_tableScroll:focus-visible{box-shadow:0 0 0 2px var(--dsw-alias-state-business-primary);outline:none}.PWOyeG_tableScroll table{border-collapse:collapse;width:max-content;max-width:max-content}.PWOyeG_tableFill table{width:100%;max-width:none}.PWOyeG_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}.PWOyeG_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}.PWOyeG_tableScroll th:first-child,.PWOyeG_tableScroll td:first-child{padding-left:0}.PWOyeG_tableScroll td:last-child{padding-right:0}.PWOyeG_tableScroll table code{font-size:13px}.PWOyeG_markdown>:first-child,.PWOyeG_markdown p:first-child{margin-top:0!important}.PWOyeG_markdown>:last-child,.PWOyeG_markdown p:last-child{margin-bottom:0!important}.PWOyeG_imageAlt{color:var(--dsw-alias-label-tertiary);font-style:italic}.PWOyeG_image{background:var(--dsw-alias-bg-base);object-fit:contain;border-radius:8px;width:auto;max-width:100%;height:auto;margin:0;display:block}.PWOyeG_fileMention{font:inherit;color:var(--dsw-alias-state-business-primary);cursor:pointer;background:0 0;border:none;margin:0;padding:0;text-decoration:none}.PWOyeG_fileMention:hover,.PWOyeG_fileMention:focus{text-decoration:underline var(--dsw-alias-state-business-primary);text-underline-offset:3px;outline:none}";
43591
43591
  const tagId$6 = "dsh-better-display/MarkdownText.module.css";
43592
43592
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$6) + "]") === null) {
43593
43593
  const tag = document.createElement("style");
@@ -43597,12 +43597,12 @@ function(test) {
43597
43597
  document.head.appendChild(tag);
43598
43598
  }
43599
43599
  var MarkdownText_module_css_default = {
43600
- "fileMention": "uv890q_fileMention",
43601
- "image": "uv890q_image",
43602
- "imageAlt": "uv890q_imageAlt",
43603
- "markdown": "uv890q_markdown",
43604
- "tableFill": "uv890q_tableFill",
43605
- "tableScroll": "uv890q_tableScroll"
43600
+ "fileMention": "PWOyeG_fileMention",
43601
+ "image": "PWOyeG_image",
43602
+ "imageAlt": "PWOyeG_imageAlt",
43603
+ "markdown": "PWOyeG_markdown",
43604
+ "tableFill": "PWOyeG_tableFill",
43605
+ "tableScroll": "PWOyeG_tableScroll"
43606
43606
  };
43607
43607
  //#endregion
43608
43608
  //#region src/client/markdown/render.tsx
@@ -43761,7 +43761,7 @@ function(test) {
43761
43761
  inLink: true
43762
43762
  }), key);
43763
43763
  case "linkReference": return renderLinkReference(node, key, context);
43764
- case "image": return renderImage(node.url, node.alt ?? "", key);
43764
+ case "image": return renderImage(node.url, node.alt ?? "", key, context);
43765
43765
  case "imageReference": return renderImageReference(node, key, context);
43766
43766
  case "footnoteReference": return renderFootnoteReference(node, key, context);
43767
43767
  case "definition":
@@ -43893,20 +43893,45 @@ function(test) {
43893
43893
  return;
43894
43894
  }
43895
43895
  }
43896
- function renderImage(url, alt, key) {
43897
- const imageSrc = remoteImageUrl(sanitizeUrl(normalizeUri(url)));
43896
+ function renderImage(url, alt, key, context) {
43897
+ const remote = remoteImageUrl(sanitizeUrl(normalizeUri(url)));
43898
+ const rewritten = remote === void 0 ? context.pathImages?.resolve(url) : void 0;
43899
+ let imageSrc = remote;
43900
+ if (rewritten !== void 0) try {
43901
+ if ([
43902
+ "http:",
43903
+ "https:",
43904
+ "blob:",
43905
+ "data:"
43906
+ ].includes(new URL(rewritten).protocol)) imageSrc = rewritten;
43907
+ } catch {}
43898
43908
  if (imageSrc === void 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
43899
43909
  className: MarkdownText_module_css_default.imageAlt,
43900
43910
  children: alt
43901
43911
  }, key);
43912
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MarkdownImage, {
43913
+ src: imageSrc,
43914
+ alt,
43915
+ destination: url
43916
+ }, `${key}:${imageSrc}`);
43917
+ }
43918
+ function MarkdownImage({ src, alt, destination }) {
43919
+ const [failed, setFailed] = (0, react.useState)(false);
43920
+ if (failed) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
43921
+ className: MarkdownText_module_css_default.imageAlt,
43922
+ children: alt || destination
43923
+ });
43902
43924
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
43903
43925
  className: MarkdownText_module_css_default.image,
43904
- src: imageSrc,
43926
+ src,
43905
43927
  alt,
43928
+ onError: () => {
43929
+ setFailed(true);
43930
+ },
43906
43931
  loading: "lazy",
43907
43932
  decoding: "async",
43908
43933
  referrerPolicy: "no-referrer"
43909
- }, key);
43934
+ });
43910
43935
  }
43911
43936
  /** The bracketed source text a reference reverts to when its definition is missing. */
43912
43937
  function referenceSuffix(node) {
@@ -43929,7 +43954,7 @@ function(test) {
43929
43954
  function renderImageReference(node, key, context) {
43930
43955
  const definition = context.targets.definitions.get(node.identifier.toUpperCase());
43931
43956
  if (definition === void 0) return `![${node.alt ?? ""}${referenceSuffix(node)}`;
43932
- return renderImage(definition.url, node.alt ?? "", key);
43957
+ return renderImage(definition.url, node.alt ?? "", key, context);
43933
43958
  }
43934
43959
  function renderFootnoteReference(node, key, context) {
43935
43960
  const id = node.identifier.toUpperCase();
@@ -43992,7 +44017,7 @@ function(test) {
43992
44017
  * full parse self-heals it.
43993
44018
  */
43994
44019
  /** One settled full render: parse with math, resolve references, append the footnote section. */
43995
- function renderSettled(text, codeLabels, fileMentions, renderText, renderAtom) {
44020
+ function renderSettled(text, codeLabels, fileMentions, pathImages, renderText, renderAtom) {
43996
44021
  const root = parseGfmWithMath(text);
43997
44022
  const targets = createReferenceTargets();
43998
44023
  collectReferenceTargets(root.children, targets);
@@ -44002,6 +44027,7 @@ function(test) {
44002
44027
  streaming: false,
44003
44028
  codeLabels,
44004
44029
  fileMentions,
44030
+ pathImages,
44005
44031
  targets,
44006
44032
  footnoteOrder: [],
44007
44033
  footnoteCounts: /* @__PURE__ */ new Map()
@@ -44027,6 +44053,7 @@ function(test) {
44027
44053
  codeLabels;
44028
44054
  renderText;
44029
44055
  renderAtom;
44056
+ pathImages;
44030
44057
  parser = new IncrementalMarkdownParser(parseGfm);
44031
44058
  generation = -1;
44032
44059
  frozenCount = 0;
@@ -44037,10 +44064,11 @@ function(test) {
44037
44064
  lastText = null;
44038
44065
  lastRendered = [];
44039
44066
  /** @param codeLabels - Fence copy labels baked into cached elements; the owner replaces the renderer when they change. */
44040
- constructor(codeLabels, renderText, renderAtom) {
44067
+ constructor(codeLabels, renderText, renderAtom, pathImages) {
44041
44068
  this.codeLabels = codeLabels;
44042
44069
  this.renderText = renderText;
44043
44070
  this.renderAtom = renderAtom;
44071
+ this.pathImages = pathImages;
44044
44072
  }
44045
44073
  /**
44046
44074
  * Render the current accumulated text. Idempotent per text value, so React
@@ -44073,6 +44101,7 @@ function(test) {
44073
44101
  streaming: true,
44074
44102
  codeLabels: this.codeLabels,
44075
44103
  fileMentions: void 0,
44104
+ pathImages: this.pathImages,
44076
44105
  targets: frameTargets,
44077
44106
  footnoteOrder: this.frozenFootnoteOrder,
44078
44107
  footnoteCounts: this.frozenFootnoteCounts
@@ -44091,6 +44120,7 @@ function(test) {
44091
44120
  streaming: true,
44092
44121
  codeLabels: this.codeLabels,
44093
44122
  fileMentions: void 0,
44123
+ pathImages: this.pathImages,
44094
44124
  targets: frameTargets,
44095
44125
  footnoteOrder: [...this.frozenFootnoteOrder],
44096
44126
  footnoteCounts: new Map(this.frozenFootnoteCounts)
@@ -44123,17 +44153,19 @@ function(test) {
44123
44153
  * relative links, and unsafe protocols are disabled, while absolute HTTP(S)
44124
44154
  * images render directly.
44125
44155
  */
44126
- const MarkdownText$2 = (0, react.memo)(function MarkdownText({ text, streaming = false, codeLabels, fileMentions, renderText, renderAtom }) {
44156
+ const MarkdownText$2 = (0, react.memo)(function MarkdownText({ text, streaming = false, codeLabels, fileMentions, pathImages, renderText, renderAtom }) {
44127
44157
  const streamRef = (0, react.useRef)(null);
44158
+ const streamImagesRef = (0, react.useRef)(pathImages);
44128
44159
  const streamLabelsRef = (0, react.useRef)(codeLabels);
44129
44160
  const children = (0, react.useMemo)(() => {
44130
44161
  if (!streaming) {
44131
44162
  streamRef.current = null;
44132
- return renderSettled(text, codeLabels, fileMentions, renderText, renderAtom);
44163
+ return renderSettled(text, codeLabels, fileMentions, pathImages, renderText, renderAtom);
44133
44164
  }
44134
- if (streamRef.current === null || streamLabelsRef.current !== codeLabels) {
44135
- streamRef.current = new StreamingRenderer(codeLabels, renderText, renderAtom);
44165
+ if (streamRef.current === null || streamLabelsRef.current !== codeLabels || streamImagesRef.current !== pathImages) {
44166
+ streamRef.current = new StreamingRenderer(codeLabels, renderText, renderAtom, pathImages);
44136
44167
  streamLabelsRef.current = codeLabels;
44168
+ streamImagesRef.current = pathImages;
44137
44169
  }
44138
44170
  return streamRef.current.render(text);
44139
44171
  }, [
@@ -44141,6 +44173,7 @@ function(test) {
44141
44173
  streaming,
44142
44174
  codeLabels,
44143
44175
  fileMentions,
44176
+ pathImages,
44144
44177
  renderText,
44145
44178
  renderAtom
44146
44179
  ]);
@@ -44150,8 +44183,17 @@ function(test) {
44150
44183
  });
44151
44184
  });
44152
44185
  //#endregion
44186
+ //#region src/client/platform-media.ts
44187
+ /** RC2 Chat's same-origin local media contract. Authorization stays Host-side. */
44188
+ function localPathMediaUrl(protocol, origin, value) {
44189
+ if (protocol !== "http:" && protocol !== "https:") return void 0;
44190
+ if (!value.startsWith("/") || value.startsWith("//")) return void 0;
44191
+ return `${origin}/api/file?path=${encodeURIComponent(value)}`;
44192
+ }
44193
+ const readerPathImages = { resolve: (value) => typeof window === "undefined" ? void 0 : localPathMediaUrl(window.location.protocol, window.location.origin, value) };
44194
+ //#endregion
44153
44195
  //#region \0dshx-css-module:Reader.module.css.mjs
44154
- const css$5 = ".g2GnNq_root{color:var(--dsw-alias-label-primary);padding:16px calc(var(--dsh-composer-side-clearance,16px) + 16px) 24px;overflow-anchor:auto;flex:none;min-width:0;font-family:inherit;font-size:16px;line-height:28px;container-type:inline-size}.g2GnNq_column{max-width:var(--dsh-chat-content-width,748px);flex-direction:column;gap:22px;width:100%;min-width:0;margin:0 auto;display:flex}.g2GnNq_toolbar{min-height:32px;color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-base);-webkit-backdrop-filter:blur(12px);justify-content:flex-end;align-items:center;gap:6px;padding:0;font-size:12px;display:flex;position:sticky;top:0}.g2GnNq_turnProcessSticky{background:var(--dsw-alias-bg-base);-webkit-backdrop-filter:blur(12px);align-items:center;min-height:32px;display:flex;position:sticky}.g2GnNq_turnProcessSticky .g2GnNq_disclosureButton{min-height:32px}.g2GnNq_textButton,.g2GnNq_historyButton,.g2GnNq_iconButton,.g2GnNq_jump,.g2GnNq_disclosureButton,.g2GnNq_imageOpen,.g2GnNq_dialogClose{font:inherit;cursor:pointer}.g2GnNq_textButton{color:var(--dsw-alias-label-secondary);white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:2px 6px}.g2GnNq_textButton:hover,.g2GnNq_iconButton:hover,.g2GnNq_disclosureButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.g2GnNq_root button:focus-visible,.g2GnNq_root summary:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:3px}.g2GnNq_turn{flex-direction:column;gap:14px;min-width:0;display:flex}.g2GnNq_turn+.g2GnNq_turn{margin-top:12px}.g2GnNq_userCluster{flex-direction:column;align-self:flex-end;align-items:flex-end;gap:8px;min-width:0;max-width:min(525px,82%);margin-bottom:4px;display:flex}.g2GnNq_userImages{flex-direction:column;align-items:flex-end;min-width:0;max-width:100%;display:flex}.g2GnNq_userImages .g2GnNq_imageFigure{align-self:flex-end}.g2GnNq_user{background:var(--dsw-specific-bubble);max-width:100%;color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;box-sizing:border-box;border-radius:22px;align-self:flex-end;padding:10px 16px;line-height:24px}.g2GnNq_user .g2GnNq_blocks{gap:10px}.g2GnNq_answer{overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.g2GnNq_readingText{min-width:0}.g2GnNq_reasonPlain{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;color:inherit}.g2GnNq_readingText button{min-width:24px;min-height:24px}.g2GnNq_streamWord{display:inline-block}.g2GnNq_streamInlineWord{display:inline}.g2GnNq_streamWord,.g2GnNq_streamInlineWord,.g2GnNq_streamAtom{opacity:1;filter:none}.g2GnNq_streamAtom{min-width:0}@media (prefers-reduced-motion:reduce){.g2GnNq_streamWord,.g2GnNq_streamInlineWord,.g2GnNq_streamAtom{opacity:1!important;filter:none!important}}.g2GnNq_retiringContent{min-width:0}.g2GnNq_retiringContent[data-reader-retiring=retiring]{overflow:hidden}.g2GnNq_mainFlow,.g2GnNq_blocks{flex-direction:column;gap:16px;min-width:0;display:flex}.g2GnNq_mainFlow:empty,.g2GnNq_blocks:empty{display:none}.g2GnNq_blocks>:first-child{margin-top:0}.g2GnNq_blocks>:last-child{margin-bottom:0}.g2GnNq_blocks .md-table-wide{max-width:100%}.g2GnNq_disclosure{min-width:0}.g2GnNq_disclosureButton{max-width:100%;min-height:32px;color:var(--dsw-alias-label-tertiary);text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:6px;margin-left:-6px;padding:4px 6px;font-size:14px;font-weight:400;line-height:24px;display:inline-flex}.g2GnNq_disclosure[data-reader-status-only]{align-items:center;min-height:32px;display:flex}.g2GnNq_statusText{min-width:0;max-width:100%;color:var(--dsw-alias-label-secondary);font-size:14px;font-weight:400;line-height:24px;display:inline-flex}.g2GnNq_srOnly{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.g2GnNq_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}.g2GnNq_thinkSizer{visibility:hidden;white-space:nowrap;display:block}.g2GnNq_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)}.g2GnNq_think[data-reader-status-phase=running] .g2GnNq_thinkText[data-reader-status-copy=current]{transition-delay:var(--think-gap)}.g2GnNq_think:not([data-reader-status-phase=idle]) .g2GnNq_thinkText{will-change:transform, filter, opacity}@supports (background-clip:text){.g2GnNq_think[data-active=true] .g2GnNq_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:g2GnNq_thinkShimmer var(--think-shimmer) linear infinite;background-repeat:no-repeat;background-size:400% 100%;-webkit-background-clip:text;background-clip:text;position:absolute;inset:0}}@keyframes g2GnNq_thinkShimmer{0%{background-position:100% 0}to{background-position:0 0}}.g2GnNq_thinkText.g2GnNq_isExit{transform:translateY(calc(var(--think-distance) * -1));filter:blur(var(--think-blur));opacity:0}.g2GnNq_thinkText.g2GnNq_isEnterStart{transform:translateY(var(--think-distance));filter:blur(var(--think-blur));opacity:0;transition:none}[data-motion=off] .g2GnNq_thinkText{filter:none!important;opacity:1!important;transition:none!important;transform:none!important}[data-motion=off] .g2GnNq_thinkText[data-reader-status-copy=outgoing],[data-motion=off] .g2GnNq_thinkText:before{display:none!important}@media (prefers-reduced-motion:reduce),(forced-colors:active){.g2GnNq_thinkText{filter:none!important;opacity:1!important;transition:none!important;transform:none!important}.g2GnNq_thinkText[data-reader-status-copy=outgoing],.g2GnNq_thinkText:before{display:none!important}}.g2GnNq_processMeta{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .26s cubic-bezier(.22,1,.36,1),opacity .16s ease-out;display:grid}.g2GnNq_processMeta[data-open=true]{opacity:1;grid-template-rows:1fr}.g2GnNq_processMetaInner{min-height:0;overflow:hidden}.g2GnNq_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}.g2GnNq_processMetaLine .g2GnNq_meta{color:inherit}.g2GnNq_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)}.g2GnNq_chevron[data-open=true]{transform:rotate(90deg)}.g2GnNq_disclosureBody{transform-origin:top;will-change:height, opacity, transform;height:0;overflow:hidden}.g2GnNq_processContents{border-left:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);margin:0 0 0 6px;padding:3px 0 2px 17px;font-size:14px;line-height:24px;display:flow-root}.g2GnNq_processContents>:last-child{margin-bottom:0}.g2GnNq_processCommentary{color:var(--dsw-alias-label-secondary);border-left:2px solid var(--dsw-alias-border-l2);margin:4px 0 8px 6px;padding-left:12px;font-size:14px;line-height:24px}.g2GnNq_processFrame{min-width:0}.g2GnNq_toolActivity{min-width:0;color:var(--dsw-alias-label-secondary)}.g2GnNq_nativeToolRow{min-width:0}.g2GnNq_rowSeparator{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.g2GnNq_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}.g2GnNq_nativeToolRow:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:3px;border-radius:4px}.g2GnNq_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}.g2GnNq_toolHeading:hover{background:var(--dsw-alias-interactive-bg-hover)}.g2GnNq_toolHeading:focus-visible{outline-offset:-3px!important}.g2GnNq_toolGlyph{height:22px;color:var(--dsw-alias-label-secondary);justify-content:center;align-items:center;display:flex}.g2GnNq_toolHeadingCopy{flex-direction:column;gap:3px;min-width:0;display:flex}.g2GnNq_toolTitle{overflow-wrap:anywhere;font-size:13px;font-weight:500;line-height:22px}.g2GnNq_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}.g2GnNq_toolHeadingState{min-height:22px;color:var(--dsw-alias-label-secondary);align-items:center;gap:7px;display:flex}.g2GnNq_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}.g2GnNq_diffAdded{color:var(--dsw-alias-state-success-primary,#2f9e63)}.g2GnNq_diffRemoved{color:var(--dsw-alias-state-error-primary,#d1483c)}.g2GnNq_summaryRow{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;max-width:100%;display:flex}.g2GnNq_summaryRow>.g2GnNq_diffStatRoot{flex:none;margin-left:auto}.g2GnNq_summaryRow>:first-child{min-width:0}.g2GnNq_diffStatRoot{flex:none;position:relative}.g2GnNq_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}.g2GnNq_diffStatButton:hover,.g2GnNq_diffStatButton:focus-visible,.g2GnNq_diffStatButton[aria-expanded=true]{background:var(--dsw-alias-bg-module-platform,#7f7f7f1a);border-color:var(--dsw-alias-border-l2,#7f7f7f47)}.g2GnNq_diffStatButton:focus-visible{outline:none}.g2GnNq_diffStatButton[aria-expanded=true] .g2GnNq_diffCaret{opacity:1}.g2GnNq_diffOverlayRow{box-sizing:border-box;flex:100%;width:100%;min-width:0;max-width:100%;margin-top:6px}.g2GnNq_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}.g2GnNq_diffTabs{scrollbar-width:thin;flex-wrap:nowrap;gap:6px;max-width:100%;margin-bottom:4px;padding-bottom:6px;display:flex;overflow-x:auto}.g2GnNq_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}.g2GnNq_diffTab:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.g2GnNq_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}.g2GnNq_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}.g2GnNq_diffScrollArea [data-diff]{background:0 0!important;border-radius:0!important;margin:0!important}.g2GnNq_diffCaret{opacity:.6;flex:none;width:10px;font-size:10px}.g2GnNq_diffPath{text-overflow:ellipsis;white-space:nowrap;text-align:left;direction:rtl;flex:auto;min-width:0;overflow:hidden}.g2GnNq_diffStat{font-variant-numeric:tabular-nums;flex:none;gap:6px;font-size:11px;display:inline-flex}.g2GnNq_diffHunkBody{flex-direction:column;gap:4px;padding:2px 7px 7px 25px;display:flex}.g2GnNq_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}.g2GnNq_diffLines[data-side=removed]{background:#d1483c1f}.g2GnNq_diffLines[data-side=added]{background:#2f9e631f}.g2GnNq_diffLineRemoved,.g2GnNq_diffLineAdded{display:block}.g2GnNq_diffLineRemoved{color:var(--dsw-alias-state-error-primary,#d1483c)}.g2GnNq_diffLineAdded{color:var(--dsw-alias-state-success-primary,#2f9e63)}.g2GnNq_diffEmpty{color:var(--dsw-alias-label-secondary);margin:0;padding:2px 0;font-size:11px}.g2GnNq_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-size:220% 100%;-webkit-background-clip:text;background-clip:text;animation:1.6s linear infinite g2GnNq_readerStepShimmer}@keyframes g2GnNq_readerStepShimmer{to{background-position:-120% 0}}.g2GnNq_toolElapsed[data-slow]{opacity:1;color:var(--dsw-alias-state-warning-primary,#d8862c);font-weight:500}.g2GnNq_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] .g2GnNq_nativeToolSummary[data-running]{-webkit-text-fill-color:currentColor;background-image:none;animation:none!important}@media (prefers-reduced-motion:reduce){.g2GnNq_nativeToolSummary[data-running]{-webkit-text-fill-color:currentColor;background-image:none;animation:none!important}}.g2GnNq_toolState{white-space:nowrap;flex:none;margin-left:8px;font-size:11px;line-height:18px}.g2GnNq_toolState[data-phase=preparing],.g2GnNq_toolState[data-phase=running]{color:var(--dsw-alias-state-business-primary)}.g2GnNq_toolState[data-phase=preparing]:before,.g2GnNq_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 g2GnNq_readerRunningGlow;display:inline-block}@keyframes g2GnNq_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] .g2GnNq_toolState[data-phase=preparing]:before,[data-motion=off] .g2GnNq_toolState[data-phase=running]:before{animation:none!important}@media (prefers-reduced-motion:reduce){.g2GnNq_toolState[data-phase=preparing]:before,.g2GnNq_toolState[data-phase=running]:before{animation:none!important}}.g2GnNq_toolState[data-phase=failed]{color:var(--dsw-alias-state-error-primary)}.g2GnNq_toolState[data-phase=interrupted]{color:inherit;opacity:.7}.g2GnNq_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}.g2GnNq_toolEngine{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.g2GnNq_toolDetails{border:1px solid var(--dsw-alias-border-l2);border-radius:8px;min-width:0;margin:6px 0 0 22px;overflow:hidden}.g2GnNq_toolTabs{align-items:center;gap:15px;padding:0 14px;display:flex}.g2GnNq_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}.g2GnNq_toolTabs>button[aria-selected=true]{color:var(--dsw-alias-label-primary);border-bottom-color:var(--dsw-alias-state-business-primary)}.g2GnNq_toolPanel{flex-direction:column;gap:12px;min-width:0;padding:12px 14px 14px;font-size:13px;line-height:22px;display:flex}.g2GnNq_toolPanel:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:-3px}.g2GnNq_toolDetailNote{color:var(--dsw-alias-label-secondary);margin:0 0 9px;font-size:12px;line-height:20px}.g2GnNq_toolRawLabel{color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;font-weight:500}.g2GnNq_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}.g2GnNq_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}.g2GnNq_commandInput{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.g2GnNq_toolReceipt .g2GnNq_blocks,.g2GnNq_toolDocument .g2GnNq_blocks{font-size:13px;line-height:22px}.g2GnNq_toolChildren{border-left:1px solid var(--dsw-alias-border-l2);flex-direction:column;gap:9px;margin:0 14px 12px 24px;padding-left:12px;display:flex}@container (width<=420px){.g2GnNq_toolHeading{grid-template-columns:16px minmax(0,1fr) auto;gap:7px;padding:11px 10px 6px}.g2GnNq_toolHeadingState{gap:4px}.g2GnNq_toolLedger{padding-left:33px;padding-right:10px}.g2GnNq_toolPanel{padding:10px}.g2GnNq_toolChildren{margin-left:12px;padding-left:8px}}@media (pointer:coarse){.g2GnNq_toolTabs>button{min-height:44px}}.g2GnNq_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}.g2GnNq_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}.g2GnNq_reasonCard[data-overflow=false][data-expanded=false]{background:0 0;border-color:#0000;border-radius:0}.g2GnNq_reasonCard[data-overflow=false][data-expanded=false] .g2GnNq_reasonHeading{padding:0}.g2GnNq_reasonCard[data-overflow=false][data-expanded=false] .g2GnNq_reasonText{padding:4px 0 0 22px}.g2GnNq_reasonLabel{font-weight:500}.g2GnNq_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}.g2GnNq_reasonCard[data-expanded=true] .g2GnNq_reasonViewport{max-height:min(60vh, 560px, var(--reason-reading-height,560px))}.g2GnNq_reasonViewport[data-edges=both],.g2GnNq_reasonCard[data-following=true][data-overflow=true] .g2GnNq_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%)}.g2GnNq_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%)}.g2GnNq_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%)}.g2GnNq_reasonCard[data-expanded=true] .g2GnNq_reasonViewport{-webkit-mask-image:none;mask-image:none}.g2GnNq_reasonViewport:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:-3px}.g2GnNq_reasonTrack{position:relative;transform:translateY(0)}.g2GnNq_reasonCard[data-following=true] .g2GnNq_reasonTrack{will-change:transform}.g2GnNq_reasonText{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;padding:8px 16px 16px;font-size:14px;line-height:24px}.g2GnNq_reasonText .g2GnNq_readingText>div{font-size:inherit;line-height:inherit;color:inherit}.g2GnNq_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}.g2GnNq_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}.g2GnNq_reasonAction:hover{background:var(--dsw-alias-interactive-bg-hover)}.g2GnNq_reasonAction:disabled{cursor:default;opacity:.65}.g2GnNq_reasonAction svg{fill:none;stroke:currentColor;stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round;flex:none}.g2GnNq_reasonCaption{padding-left:6px}@container (width<=480px){.g2GnNq_reasonCard{--reason-preview-height:192px}}@media (pointer:coarse){.g2GnNq_reasonAction{min-height:44px}}@media (prefers-reduced-motion:reduce){.g2GnNq_reasonTrack{will-change:auto!important;transition:none!important;transform:none!important}}@media (forced-colors:active){.g2GnNq_reasonViewport{-webkit-mask-image:none!important;mask-image:none!important}}.g2GnNq_processItem,.g2GnNq_tool{min-width:0;margin:0 0 18px}.g2GnNq_processLabel{color:var(--dsw-alias-label-tertiary);align-items:baseline;gap:12px;margin:0 0 6px;font-size:12px;line-height:20px;display:flex}.g2GnNq_processFootnote{color:var(--dsw-alias-label-tertiary);margin:14px 0 0;font-size:12px;line-height:20px}.g2GnNq_detail{color:var(--dsw-alias-label-secondary);font-size:13px;line-height:22px}.g2GnNq_detail>summary{cursor:pointer;padding:3px 0}.g2GnNq_detail[open]>summary{margin-bottom:8px}.g2GnNq_tool>.g2GnNq_tool{margin:10px 0 0 12px}.g2GnNq_meta{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:20px}.g2GnNq_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}.g2GnNq_compactionRow{box-sizing:border-box;flex-direction:column;align-items:center;width:100%;margin:16px 0;display:flex}.g2GnNq_compactionLine{width:100%;color:var(--dsw-alias-label-tertiary);user-select:none;justify-content:center;align-items:center;gap:12px;font-size:11px;line-height:18px;display:flex}.g2GnNq_compactionLine:before,.g2GnNq_compactionLine:after{content:\"\";background:var(--dsw-alias-border-l1);opacity:.7;flex:1;height:1px}.g2GnNq_compactionRow>.g2GnNq_compactionLine{animation:.52s cubic-bezier(.4,0,.2,1) both g2GnNq_compactionLineIn}.g2GnNq_compactionRow>.g2GnNq_compactionLine>.g2GnNq_compactionPill{animation:.42s cubic-bezier(.34,1.4,.64,1) .12s both g2GnNq_compactionPillIn}.g2GnNq_compactionRow>.g2GnNq_compactionLine .g2GnNq_compactionIcon{animation:.9s cubic-bezier(.4,0,.2,1) .2s both g2GnNq_compactionDial}@keyframes g2GnNq_compactionLineIn{0%{opacity:0;transform:scaleX(.6)}to{opacity:1;transform:scaleX(1)}}@keyframes g2GnNq_compactionPillIn{0%{opacity:0;transform:translateY(-6px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes g2GnNq_compactionDial{0%{opacity:0;transform:rotate(-140deg)}to{opacity:.7;transform:rotate(0)}}[data-motion=off] .g2GnNq_compactionRow>.g2GnNq_compactionLine,[data-motion=off] .g2GnNq_compactionRow>.g2GnNq_compactionLine>.g2GnNq_compactionPill,[data-motion=off] .g2GnNq_compactionRow>.g2GnNq_compactionLine .g2GnNq_compactionIcon{animation:none!important}@media (prefers-reduced-motion:reduce){.g2GnNq_compactionRow>.g2GnNq_compactionLine,.g2GnNq_compactionRow>.g2GnNq_compactionLine>.g2GnNq_compactionPill,.g2GnNq_compactionRow>.g2GnNq_compactionLine .g2GnNq_compactionIcon{animation:none!important}}.g2GnNq_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}.g2GnNq_compactionButton{cursor:pointer;transition:color .14s,border-color .14s,background-color .14s}.g2GnNq_compactionButton:hover{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l2);background:var(--dsw-alias-interactive-bg-hover)}.g2GnNq_compactionIcon{opacity:.7;flex:none;width:12px;height:12px}.g2GnNq_compactionToggle{opacity:.8;margin-left:2px;font-size:10px}.g2GnNq_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}.g2GnNq_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}.g2GnNq_notice,.g2GnNq_error,.g2GnNq_attention{overflow-wrap:anywhere;border-radius:10px;padding:12px 14px;font-size:13px;line-height:20px}.g2GnNq_notice{background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-secondary);border:1px solid var(--dsw-alias-border-l2)}.g2GnNq_error{color:var(--dsw-alias-label-primary);background:#ef44440f;border:1px solid #ef444438;align-items:flex-start;gap:10px;display:flex}.g2GnNq_errorIcon{color:#ef4444;flex:none;width:16px;height:16px;margin-top:2px}.g2GnNq_errorCopy{flex:1;min-width:0}.g2GnNq_errorTitle{color:#dc2626;align-items:center;gap:8px;margin-bottom:2px;font-weight:500;display:flex}.g2GnNq_errorMessage{color:var(--dsw-alias-label-secondary);word-break:break-word;margin:0;font-size:12px;line-height:18px}.g2GnNq_errorCode{color:#dc2626;background:#ef44441f;border-radius:4px;padding:1px 5px;font-family:inherit;font-size:11px}.g2GnNq_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}.g2GnNq_attention span{color:var(--dsw-alias-label-secondary)}.g2GnNq_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}.g2GnNq_unknown p{margin:0 0 6px}.g2GnNq_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}.g2GnNq_historyButton:disabled{opacity:.55;cursor:default}.g2GnNq_empty{color:var(--dsw-alias-label-tertiary);text-align:center;padding:40px 0}.g2GnNq_answerActions{align-items:center;gap:8px;min-height:28px;margin:13px 0 0 -6px;display:flex}.g2GnNq_userActions{align-items:center;gap:8px;min-height:28px;display:flex}.g2GnNq_messageClock{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px;line-height:24px}.g2GnNq_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}.g2GnNq_iconButton svg{fill:none;stroke:currentColor;stroke-width:1.2px;stroke-linecap:round;stroke-linejoin:round}.g2GnNq_imageFigure{box-sizing:border-box;align-self:flex-start;width:min(100%,360px);max-width:100%;margin:0}.g2GnNq_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}.g2GnNq_imageOpen{background:0 0;border:0;width:100%;height:100%;padding:0;display:flex;position:absolute;inset:0}.g2GnNq_imageOpen img{object-fit:contain;opacity:0;width:100%;height:100%;transition:opacity .2s cubic-bezier(.4,0,.2,1);display:block}.g2GnNq_imageOpen img[data-ready=true]{opacity:1}.g2GnNq_pendingImage{object-fit:contain;width:100%;max-width:100%;height:100%;display:block}.g2GnNq_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}.g2GnNq_imagePlaceholder button{pointer-events:auto}.g2GnNq_imageFigure figcaption{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;margin-top:6px;font-size:12px;line-height:20px}.g2GnNq_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}.g2GnNq_imageDialog::backdrop{background:var(--dsw-alias-bg-mask-photo)}.g2GnNq_imageDialog img{object-fit:contain;max-width:82vw;max-height:75vh;display:block}.g2GnNq_dialogClose{color:inherit;background:0 0;border:0;border-radius:8px;width:32px;height:32px;font-size:24px;position:absolute;top:4px;right:8px}.g2GnNq_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}.g2GnNq_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}.g2GnNq_deliverablesLabel{color:var(--dsw-alias-label-tertiary);grid-area:1/1;padding-top:2px;font-size:12px;font-weight:500}.g2GnNq_deliverablesLane{grid-area:1/2;min-width:0}.g2GnNq_deliverablesRow{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.g2GnNq_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}.g2GnNq_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)}.g2GnNq_deliverableChip[data-status=opened]{color:#059669;background:#10b9811f;border-color:#10b981}.g2GnNq_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}.g2GnNq_chipMain:hover{color:var(--dsw-alias-label-primary)}.g2GnNq_deliverableIcon,.g2GnNq_statusIcon{opacity:.8;flex:none;width:13px;height:13px}.g2GnNq_statusIcon{color:#10b981}.g2GnNq_deliverableName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.g2GnNq_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}.g2GnNq_deliverableChip:hover .g2GnNq_chipActions{opacity:1;border-left-color:var(--dsw-alias-border-l2)}.g2GnNq_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}.g2GnNq_chipActionBtn:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.g2GnNq_actionIcon{width:12px;height:12px}.g2GnNq_deliverablesMore{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:12px}.g2GnNq_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}.g2GnNq_deliverablesShowFolder:hover{color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.g2GnNq_deliverablesShowFolder[data-status=opened]{color:#10b981;background:#10b98114;border-color:#10b9814d}.g2GnNq_morphCluster{flex-direction:column;width:100%;min-width:0;display:flex}.g2GnNq_morphDrawer{transform-origin:top;will-change:height, opacity, transform;height:0;overflow:hidden}.g2GnNq_liveFoldImpact{animation:.18s cubic-bezier(.2,0,0,1) both g2GnNq_liveFoldElastic}@keyframes g2GnNq_liveFoldElastic{0%{transform:scale(1)}50%{transform:scale(1.015)}to{transform:scale(1)}}.g2GnNq_liveFoldContainer{top:max(var(--reader-toolbar-height,40px), var(--reader-status-height,40px));z-index:6;background:var(--dsw-alias-bg-base);-webkit-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 g2GnNq_liveFoldPulse;position:sticky}@keyframes g2GnNq_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] .g2GnNq_liveFoldContainer{animation:none!important}@media (prefers-reduced-motion:reduce){.g2GnNq_liveFoldContainer{animation:none!important}}.g2GnNq_priorFoldDrawer{flex-direction:column;gap:14px;width:100%;min-width:0;display:flex}.g2GnNq_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}.g2GnNq_jump:hover{background:var(--dsw-alias-button-floating-hover,var(--dsw-alias-interactive-bg-hover))}.g2GnNq_foldSummary{align-items:baseline;max-width:100%;display:inline-flex;white-space:nowrap!important}.g2GnNq_foldSummaryPart{align-items:baseline;display:inline-flex;white-space:nowrap!important}.g2GnNq_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}.g2GnNq_numberRollSizer{visibility:hidden;user-select:none;pointer-events:none;line-height:inherit;white-space:nowrap}.g2GnNq_numberRollDigit{line-height:inherit;white-space:nowrap;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.g2GnNq_numberRollExit{animation:.24s cubic-bezier(.16,1,.3,1) forwards g2GnNq_numberRollOut}.g2GnNq_numberRollEnter{animation:.24s cubic-bezier(.16,1,.3,1) forwards g2GnNq_numberRollIn}@keyframes g2GnNq_numberRollOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}@keyframes g2GnNq_numberRollIn{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}[data-motion=off] .g2GnNq_chevron,[data-motion=off] .g2GnNq_imageOpen img,[data-motion=off] .g2GnNq_processMeta,[data-motion=off] .g2GnNq_numberRollDigit{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){.g2GnNq_chevron,.g2GnNq_imageOpen img,.g2GnNq_processMeta,.g2GnNq_numberRollDigit{transition:none!important;animation:none!important}}.g2GnNq_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}.g2GnNq_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%;-webkit-background-clip:text;background-clip:text;font-weight:500;animation:1.8s linear infinite g2GnNq_dsh-turn-status-shimmer}.g2GnNq_waitClock{flex:none;align-items:center;margin-left:8px;display:inline-flex}.g2GnNq_waitSeconds{font-variant-numeric:tabular-nums;font-feature-settings:\"tnum\";color:var(--dsw-alias-label-caption,#86909c);font-size:13px;font-weight:400}.g2GnNq_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}.g2GnNq_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 g2GnNq_dsh-turn-status-shimmer{to{background-position:0 0}}[data-motion=off] .g2GnNq_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){.g2GnNq_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){.g2GnNq_disclosureButton{min-height:44px}}@media (width<=600px){.g2GnNq_root{padding-inline:20px}.g2GnNq_column{gap:18px}.g2GnNq_toolbar{font-size:11px}.g2GnNq_user{max-width:90%}}.g2GnNq_choreographedFlow{overflow-anchor:none;flex-direction:column;min-width:0;display:flex}.g2GnNq_flowCell{min-width:0;display:flow-root;overflow:clip}.g2GnNq_flowCell[hidden]{display:none}.g2GnNq_flowCellInner{flex-direction:column;min-width:0;padding-bottom:16px;display:flex}.g2GnNq_flowCellInner:empty{padding-bottom:0}.g2GnNq_choreographedFlow[data-reader-transition=collapse] .g2GnNq_flowCell *{animation-play-state:paused!important}.g2GnNq_numberRollExit,.g2GnNq_numberRollEnter{animation-duration:.16s}.g2GnNq_foldSummary{align-items:baseline;display:inline-flex;white-space:nowrap!important;flex-wrap:nowrap!important}.g2GnNq_toolbar{box-sizing:border-box;z-index:7;-webkit-backdrop-filter:none;border-bottom:0;align-self:stretch;width:100%;max-width:100%;min-height:40px}.g2GnNq_turnProcessSticky{box-sizing:border-box;width:calc(100% - var(--reader-control-width,148px));top:max(var(--reader-toolbar-height,40px), var(--reader-status-height,40px));z-index:6;-webkit-backdrop-filter:none;background-clip:padding-box;border-bottom:1px solid #0000;min-height:40px;padding-right:0}.g2GnNq_flowCell[data-flow-summary],.g2GnNq_closedProcessSummary{top:max(var(--reader-toolbar-height,40px), var(--reader-status-height,40px));z-index:6;box-sizing:border-box;background:var(--dsw-alias-bg-base);border-bottom:0;min-height:40px;padding-block:4px;position:sticky;overflow:visible}.g2GnNq_foldControl{background:var(--dsw-alias-bg-module-platform);border-radius:8px;align-items:center;gap:0;padding:2px;display:inline-flex}.g2GnNq_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}.g2GnNq_foldStop[data-on]{background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary)}.g2GnNq_flowCell[data-flow-summary]>.g2GnNq_flowCellInner{padding-bottom:0}.g2GnNq_flowCell[data-flow-summary] .g2GnNq_disclosureButton,.g2GnNq_closedProcessSummary .g2GnNq_disclosureButton{width:auto;max-width:100%}.g2GnNq_flowCell[data-flow-summary] .g2GnNq_foldSummary,.g2GnNq_closedProcessSummary .g2GnNq_foldSummary{min-width:0}.g2GnNq_turnProcessSticky>.g2GnNq_disclosure{flex:auto;min-width:0}.g2GnNq_disclosureButton{width:max-content;max-width:calc(100% + 6px)}.g2GnNq_statusText{flex:0 auto}.g2GnNq_think{width:max-content;min-width:0}.g2GnNq_thinkSizer{white-space:normal;overflow-wrap:anywhere}.g2GnNq_thinkText{white-space:normal;overflow-wrap:anywhere;text-overflow:clip;overflow:visible}.g2GnNq_root[data-reader-glass] .g2GnNq_toolbar,.g2GnNq_root[data-reader-glass] .g2GnNq_turnProcessSticky,.g2GnNq_root[data-reader-glass] .g2GnNq_liveFoldContainer{-webkit-backdrop-filter:blur(16px);box-shadow:none;background:0 0;border:0;border-radius:0}.g2GnNq_root[data-reader-glass] .g2GnNq_flowCell[data-flow-summary],.g2GnNq_root[data-reader-glass] .g2GnNq_closedProcessSummary{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}.g2GnNq_root[data-reader-glass] .g2GnNq_user{background:color-mix(in srgb, var(--dsw-specific-bubble,#00000014) 25%, transparent);-webkit-backdrop-filter:blur(12px);border:1px solid color-mix(in srgb, var(--dsw-alias-border-l1,#8080804d) 30%, transparent)}.g2GnNq_root[data-reader-glass] .g2GnNq_reasonCard{border-color:color-mix(in srgb, var(--dsw-alias-border-l1,#80808059) 65%, transparent);background:0 0}.g2GnNq_root[data-reader-glass] .g2GnNq_toolDetails,.g2GnNq_root[data-reader-glass] .g2GnNq_notice,.g2GnNq_root[data-reader-glass] .g2GnNq_unknown,.g2GnNq_root[data-reader-glass] .g2GnNq_toolRaw,.g2GnNq_root[data-reader-glass] .g2GnNq_systemPrompt,.g2GnNq_root[data-reader-glass] .g2GnNq_compactionSummaryBox,.g2GnNq_root[data-reader-glass] .g2GnNq_attention,.g2GnNq_root[data-reader-glass] .g2GnNq_imageFrame,.g2GnNq_root[data-reader-glass] .g2GnNq_imageDialog{background:0 0}.g2GnNq_root[data-reader-glass] .g2GnNq_diffOverlay{background:color-mix(in srgb, var(--dsw-alias-bg-module-platform,#7f7f7f1a) 20%, transparent);-webkit-backdrop-filter:blur(16px)}.g2GnNq_root[data-reader-glass] .g2GnNq_diffScrollArea{background:0 0}.g2GnNq_root[data-reader-glass] .g2GnNq_diffTab{background:color-mix(in srgb, var(--dsw-alias-bg-base,#fffc) 25%, transparent)}.g2GnNq_root[data-reader-glass] .g2GnNq_diffTab[data-active]{background:color-mix(in srgb, var(--dsw-alias-bg-base,#fff) 45%, transparent)}.g2GnNq_root[data-reader-glass] .md-code-block,.g2GnNq_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);background:color-mix(in srgb, var(--dsw-alias-markdown-code-block,#0000000f) 25%, transparent)!important}.g2GnNq_root[data-reader-glass] .g2GnNq_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)}.g2GnNq_root[data-reader-glass] .g2GnNq_foldStop[data-on]{background:color-mix(in srgb, var(--dsw-alias-bg-base,#fff) 35%, transparent)}.g2GnNq_root[data-reader-glass] .g2GnNq_compactionPill,.g2GnNq_root[data-reader-glass] .g2GnNq_deliverableChip,.g2GnNq_root[data-reader-glass] .g2GnNq_toolState,.g2GnNq_root[data-reader-glass] .g2GnNq_diffStatButton{background:0 0;border-color:#0000}.g2GnNq_root[data-reader-glass] .g2GnNq_compactionPill:hover,.g2GnNq_root[data-reader-glass] .g2GnNq_compactionPill:focus-visible,.g2GnNq_root[data-reader-glass] .g2GnNq_deliverableChip:hover,.g2GnNq_root[data-reader-glass] .g2GnNq_deliverableChip:focus-within,.g2GnNq_root[data-reader-glass] .g2GnNq_toolState:hover,.g2GnNq_root[data-reader-glass] .g2GnNq_diffStatButton:hover,.g2GnNq_root[data-reader-glass] .g2GnNq_diffStatButton:focus-visible,.g2GnNq_root[data-reader-glass] .g2GnNq_diffStatButton[aria-expanded=true]{background:var(--dsw-alias-bg-module-platform,#7f7f7f1a);border-color:var(--dsw-alias-border-l2,#7f7f7f47)}";
44196
+ const css$5 = ".fQyGsq_root{color:var(--dsw-alias-label-primary);padding:16px calc(var(--dsh-composer-side-clearance,16px) + 16px) 24px;overflow-anchor:auto;flex:none;min-width:0;font-family:inherit;font-size:16px;line-height:28px;container-type:inline-size}.fQyGsq_column{max-width:var(--dsh-chat-content-width,748px);flex-direction:column;gap:22px;width:100%;min-width:0;margin:0 auto;display:flex}.fQyGsq_toolbar{min-height:32px;color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-base);-webkit-backdrop-filter:blur(12px);justify-content:flex-end;align-items:center;gap:6px;padding:0;font-size:12px;display:flex;position:sticky;top:0}.fQyGsq_turnProcessSticky{background:var(--dsw-alias-bg-base);-webkit-backdrop-filter:blur(12px);align-items:center;min-height:32px;display:flex;position:sticky}.fQyGsq_turnProcessSticky .fQyGsq_disclosureButton{min-height:32px}.fQyGsq_textButton,.fQyGsq_historyButton,.fQyGsq_iconButton,.fQyGsq_jump,.fQyGsq_disclosureButton,.fQyGsq_imageOpen,.fQyGsq_dialogClose{font:inherit;cursor:pointer}.fQyGsq_textButton{color:var(--dsw-alias-label-secondary);white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:2px 6px}.fQyGsq_textButton:hover,.fQyGsq_iconButton:hover,.fQyGsq_disclosureButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.fQyGsq_root button:focus-visible,.fQyGsq_root summary:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:3px}.fQyGsq_turn{flex-direction:column;gap:14px;min-width:0;display:flex}.fQyGsq_turn+.fQyGsq_turn{margin-top:12px}.fQyGsq_userCluster{flex-direction:column;align-self:flex-end;align-items:flex-end;gap:8px;min-width:0;max-width:min(525px,82%);margin-bottom:4px;display:flex}.fQyGsq_userImages{flex-direction:column;align-items:flex-end;min-width:0;max-width:100%;display:flex}.fQyGsq_userImages .fQyGsq_imageFigure{align-self:flex-end}.fQyGsq_user{background:var(--dsw-specific-bubble);max-width:100%;color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;box-sizing:border-box;border-radius:22px;align-self:flex-end;padding:10px 16px;line-height:24px}.fQyGsq_user .fQyGsq_blocks{gap:10px}.fQyGsq_answer{overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.fQyGsq_readingText{min-width:0}.fQyGsq_reasonPlain{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;color:inherit}.fQyGsq_readingText button{min-width:24px;min-height:24px}.fQyGsq_streamWord{display:inline-block}.fQyGsq_streamInlineWord{display:inline}.fQyGsq_streamWord,.fQyGsq_streamInlineWord,.fQyGsq_streamAtom{opacity:1;filter:none}.fQyGsq_streamAtom{min-width:0}@media (prefers-reduced-motion:reduce){.fQyGsq_streamWord,.fQyGsq_streamInlineWord,.fQyGsq_streamAtom{opacity:1!important;filter:none!important}}.fQyGsq_retiringContent{min-width:0}.fQyGsq_retiringContent[data-reader-retiring=retiring]{overflow:hidden}.fQyGsq_mainFlow,.fQyGsq_blocks{flex-direction:column;gap:16px;min-width:0;display:flex}.fQyGsq_mainFlow:empty,.fQyGsq_blocks:empty{display:none}.fQyGsq_blocks>:first-child{margin-top:0}.fQyGsq_blocks>:last-child{margin-bottom:0}.fQyGsq_blocks .md-table-wide{max-width:100%}.fQyGsq_disclosure{min-width:0}.fQyGsq_disclosureButton{max-width:100%;min-height:32px;color:var(--dsw-alias-label-tertiary);text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:6px;margin-left:-6px;padding:4px 6px;font-size:14px;font-weight:400;line-height:24px;display:inline-flex}.fQyGsq_disclosure[data-reader-status-only]{align-items:center;min-height:32px;display:flex}.fQyGsq_statusText{min-width:0;max-width:100%;color:var(--dsw-alias-label-secondary);font-size:14px;font-weight:400;line-height:24px;display:inline-flex}.fQyGsq_srOnly{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fQyGsq_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}.fQyGsq_thinkSizer{visibility:hidden;white-space:nowrap;display:block}.fQyGsq_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)}.fQyGsq_think[data-reader-status-phase=running] .fQyGsq_thinkText[data-reader-status-copy=current]{transition-delay:var(--think-gap)}.fQyGsq_think:not([data-reader-status-phase=idle]) .fQyGsq_thinkText{will-change:transform, filter, opacity}@supports (background-clip:text){.fQyGsq_think[data-active=true] .fQyGsq_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:fQyGsq_thinkShimmer var(--think-shimmer) linear infinite;background-repeat:no-repeat;background-size:400% 100%;-webkit-background-clip:text;background-clip:text;position:absolute;inset:0}}@keyframes fQyGsq_thinkShimmer{0%{background-position:100% 0}to{background-position:0 0}}.fQyGsq_thinkText.fQyGsq_isExit{transform:translateY(calc(var(--think-distance) * -1));filter:blur(var(--think-blur));opacity:0}.fQyGsq_thinkText.fQyGsq_isEnterStart{transform:translateY(var(--think-distance));filter:blur(var(--think-blur));opacity:0;transition:none}[data-motion=off] .fQyGsq_thinkText{filter:none!important;opacity:1!important;transition:none!important;transform:none!important}[data-motion=off] .fQyGsq_thinkText[data-reader-status-copy=outgoing],[data-motion=off] .fQyGsq_thinkText:before{display:none!important}@media (prefers-reduced-motion:reduce),(forced-colors:active){.fQyGsq_thinkText{filter:none!important;opacity:1!important;transition:none!important;transform:none!important}.fQyGsq_thinkText[data-reader-status-copy=outgoing],.fQyGsq_thinkText:before{display:none!important}}.fQyGsq_processMeta{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .26s cubic-bezier(.22,1,.36,1),opacity .16s ease-out;display:grid}.fQyGsq_processMeta[data-open=true]{opacity:1;grid-template-rows:1fr}.fQyGsq_processMetaInner{min-height:0;overflow:hidden}.fQyGsq_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}.fQyGsq_processMetaLine .fQyGsq_meta{color:inherit}.fQyGsq_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)}.fQyGsq_chevron[data-open=true]{transform:rotate(90deg)}.fQyGsq_disclosureBody{transform-origin:top;will-change:height, opacity, transform;height:0;overflow:hidden}.fQyGsq_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}.fQyGsq_processContents>:last-child{margin-bottom:0}.fQyGsq_processCommentary{color:var(--dsw-alias-label-secondary);margin:4px 0 8px var(--reader-rail,6px);padding-left:var(--reader-gutter,16px);border-left:1px solid var(--dsw-alias-border-l2);font-size:14px;line-height:24px}.fQyGsq_processFrame{min-width:0}.fQyGsq_toolActivity{min-width:0;color:var(--dsw-alias-label-secondary)}.fQyGsq_nativeToolRow{min-width:0}.fQyGsq_rowSeparator{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.fQyGsq_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}.fQyGsq_nativeToolRow:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:3px;border-radius:4px}.fQyGsq_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}.fQyGsq_toolHeading:hover{background:var(--dsw-alias-interactive-bg-hover)}.fQyGsq_toolHeading:focus-visible{outline-offset:-3px!important}.fQyGsq_toolGlyph{height:22px;color:var(--dsw-alias-label-secondary);justify-content:center;align-items:center;display:flex}.fQyGsq_toolHeadingCopy{flex-direction:column;gap:3px;min-width:0;display:flex}.fQyGsq_toolTitle{overflow-wrap:anywhere;font-size:13px;font-weight:500;line-height:22px}.fQyGsq_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}.fQyGsq_toolHeadingState{min-height:22px;color:var(--dsw-alias-label-secondary);align-items:center;gap:7px;display:flex}.fQyGsq_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}.fQyGsq_diffAdded{color:var(--dsw-alias-state-success-primary,#2f9e63)}.fQyGsq_diffRemoved{color:var(--dsw-alias-state-error-primary,#d1483c)}.fQyGsq_summaryRow{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;max-width:100%;display:flex}.fQyGsq_summaryRow>.fQyGsq_diffStatRoot{flex:none;margin-left:auto}.fQyGsq_summaryRow>:first-child{min-width:0}.fQyGsq_diffStatRoot{flex:none;position:relative}.fQyGsq_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}.fQyGsq_diffStatButton:hover,.fQyGsq_diffStatButton:focus-visible,.fQyGsq_diffStatButton[aria-expanded=true]{background:var(--dsw-alias-bg-module-platform,#7f7f7f1a);border-color:var(--dsw-alias-border-l2,#7f7f7f47)}.fQyGsq_diffStatButton:focus-visible{outline:none}.fQyGsq_diffStatButton[aria-expanded=true] .fQyGsq_diffCaret{opacity:1}.fQyGsq_diffOverlayRow{box-sizing:border-box;flex:100%;width:100%;min-width:0;max-width:100%;margin-top:6px}.fQyGsq_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}.fQyGsq_diffTabs{scrollbar-width:thin;flex-wrap:nowrap;gap:6px;max-width:100%;margin-bottom:4px;padding-bottom:6px;display:flex;overflow-x:auto}.fQyGsq_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}.fQyGsq_diffTab:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.fQyGsq_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}.fQyGsq_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}.fQyGsq_diffScrollArea [data-diff]{background:0 0!important;border-radius:0!important;margin:0!important}.fQyGsq_diffCaret{opacity:.6;flex:none;width:10px;font-size:10px}.fQyGsq_diffPath{text-overflow:ellipsis;white-space:nowrap;text-align:left;direction:rtl;flex:auto;min-width:0;overflow:hidden}.fQyGsq_diffStat{font-variant-numeric:tabular-nums;flex:none;gap:6px;font-size:11px;display:inline-flex}.fQyGsq_diffHunkBody{flex-direction:column;gap:4px;padding:2px 7px 7px 25px;display:flex}.fQyGsq_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}.fQyGsq_diffLines[data-side=removed]{background:#d1483c1f}.fQyGsq_diffLines[data-side=added]{background:#2f9e631f}.fQyGsq_diffLineRemoved,.fQyGsq_diffLineAdded{display:block}.fQyGsq_diffLineRemoved{color:var(--dsw-alias-state-error-primary,#d1483c)}.fQyGsq_diffLineAdded{color:var(--dsw-alias-state-success-primary,#2f9e63)}.fQyGsq_diffEmpty{color:var(--dsw-alias-label-secondary);margin:0;padding:2px 0;font-size:11px}.fQyGsq_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-size:220% 100%;-webkit-background-clip:text;background-clip:text;animation:1.6s linear infinite fQyGsq_readerStepShimmer}@keyframes fQyGsq_readerStepShimmer{to{background-position:-120% 0}}.fQyGsq_toolElapsed[data-slow]{opacity:1;color:var(--dsw-alias-state-warning-primary,#d8862c);font-weight:500}.fQyGsq_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] .fQyGsq_nativeToolSummary[data-running]{-webkit-text-fill-color:currentColor;background-image:none;animation:none!important}@media (prefers-reduced-motion:reduce){.fQyGsq_nativeToolSummary[data-running]{-webkit-text-fill-color:currentColor;background-image:none;animation:none!important}}.fQyGsq_toolState{white-space:nowrap;flex:none;margin-left:8px;font-size:11px;line-height:18px}.fQyGsq_toolState[data-phase=preparing],.fQyGsq_toolState[data-phase=running]{color:var(--dsw-alias-state-business-primary)}.fQyGsq_toolState[data-phase=preparing]:before,.fQyGsq_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 fQyGsq_readerRunningGlow;display:inline-block}@keyframes fQyGsq_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] .fQyGsq_toolState[data-phase=preparing]:before,[data-motion=off] .fQyGsq_toolState[data-phase=running]:before{animation:none!important}@media (prefers-reduced-motion:reduce){.fQyGsq_toolState[data-phase=preparing]:before,.fQyGsq_toolState[data-phase=running]:before{animation:none!important}}.fQyGsq_toolState[data-phase=failed]{color:var(--dsw-alias-state-error-primary)}.fQyGsq_toolState[data-phase=interrupted]{color:inherit;opacity:.7}.fQyGsq_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}.fQyGsq_toolEngine{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.fQyGsq_toolDetails{border:1px solid var(--dsw-alias-border-l2);border-radius:8px;min-width:0;margin:6px 0 0 22px;overflow:hidden}.fQyGsq_toolTabs{align-items:center;gap:15px;padding:0 14px;display:flex}.fQyGsq_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}.fQyGsq_toolTabs>button[aria-selected=true]{color:var(--dsw-alias-label-primary);border-bottom-color:var(--dsw-alias-state-business-primary)}.fQyGsq_toolPanel{flex-direction:column;gap:12px;min-width:0;padding:12px 14px 14px;font-size:13px;line-height:22px;display:flex}.fQyGsq_toolPanel:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:-3px}.fQyGsq_toolDetailNote{color:var(--dsw-alias-label-secondary);margin:0 0 9px;font-size:12px;line-height:20px}.fQyGsq_toolRawLabel{color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;font-weight:500}.fQyGsq_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}.fQyGsq_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}.fQyGsq_commandInput{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.fQyGsq_toolReceipt .fQyGsq_blocks,.fQyGsq_toolDocument .fQyGsq_blocks{font-size:13px;line-height:22px}.fQyGsq_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){.fQyGsq_toolHeading{grid-template-columns:16px minmax(0,1fr) auto;gap:7px;padding:11px 10px 6px}.fQyGsq_toolHeadingState{gap:4px}.fQyGsq_toolLedger{padding-left:33px;padding-right:10px}.fQyGsq_toolPanel{padding:10px}}@media (pointer:coarse){.fQyGsq_toolTabs>button{min-height:44px}}.fQyGsq_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}.fQyGsq_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}.fQyGsq_reasonCard[data-overflow=false][data-expanded=false]{background:0 0;border-color:#0000;border-radius:0}.fQyGsq_reasonCard[data-overflow=false][data-expanded=false] .fQyGsq_reasonHeading{padding:0}.fQyGsq_reasonCard[data-overflow=false][data-expanded=false] .fQyGsq_reasonText{padding:4px 0 0 22px}.fQyGsq_reasonLabel{font-weight:500}.fQyGsq_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}.fQyGsq_reasonCard[data-expanded=true] .fQyGsq_reasonViewport{max-height:min(60vh, 560px, var(--reason-reading-height,560px))}.fQyGsq_reasonViewport[data-edges=both],.fQyGsq_reasonCard[data-following=true][data-overflow=true] .fQyGsq_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%)}.fQyGsq_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%)}.fQyGsq_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%)}.fQyGsq_reasonCard[data-expanded=true] .fQyGsq_reasonViewport{-webkit-mask-image:none;mask-image:none}.fQyGsq_reasonViewport:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:-3px}.fQyGsq_reasonTrack{position:relative;transform:translateY(0)}.fQyGsq_reasonCard[data-following=true] .fQyGsq_reasonTrack{will-change:transform}.fQyGsq_reasonText{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;padding:8px 16px 16px;font-size:14px;line-height:24px}.fQyGsq_reasonText .fQyGsq_readingText>div{font-size:inherit;line-height:inherit;color:inherit}.fQyGsq_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}.fQyGsq_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}.fQyGsq_reasonAction:hover{background:var(--dsw-alias-interactive-bg-hover)}.fQyGsq_reasonAction:disabled{cursor:default;opacity:.65}.fQyGsq_reasonAction svg{fill:none;stroke:currentColor;stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round;flex:none}.fQyGsq_reasonCaption{padding-left:6px}@container (width<=480px){.fQyGsq_reasonCard{--reason-preview-height:192px}}@media (pointer:coarse){.fQyGsq_reasonAction{min-height:44px}}@media (prefers-reduced-motion:reduce){.fQyGsq_reasonTrack{will-change:auto!important;transition:none!important;transform:none!important}}@media (forced-colors:active){.fQyGsq_reasonViewport{-webkit-mask-image:none!important;mask-image:none!important}}.fQyGsq_processItem,.fQyGsq_tool{min-width:0;margin:0 0 18px}.fQyGsq_processLabel{color:var(--dsw-alias-label-tertiary);align-items:baseline;gap:12px;margin:0 0 6px;font-size:12px;line-height:20px;display:flex}.fQyGsq_processFootnote{color:var(--dsw-alias-label-tertiary);margin:14px 0 0;font-size:12px;line-height:20px}.fQyGsq_detail{color:var(--dsw-alias-label-secondary);font-size:13px;line-height:22px}.fQyGsq_detail>summary{cursor:pointer;padding:3px 0}.fQyGsq_detail[open]>summary{margin-bottom:8px}.fQyGsq_tool>.fQyGsq_tool{margin:10px 0 0 12px}.fQyGsq_meta{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:20px}.fQyGsq_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}.fQyGsq_compactionRow{box-sizing:border-box;flex-direction:column;align-items:center;width:100%;margin:16px 0;display:flex}.fQyGsq_compactionLine{width:100%;color:var(--dsw-alias-label-tertiary);user-select:none;justify-content:center;align-items:center;gap:12px;font-size:11px;line-height:18px;display:flex}.fQyGsq_compactionLine:before,.fQyGsq_compactionLine:after{content:\"\";background:var(--dsw-alias-border-l1);opacity:.7;flex:1;height:1px}.fQyGsq_compactionRow>.fQyGsq_compactionLine{animation:.52s cubic-bezier(.4,0,.2,1) both fQyGsq_compactionLineIn}.fQyGsq_compactionRow>.fQyGsq_compactionLine>.fQyGsq_compactionPill{animation:.42s cubic-bezier(.34,1.4,.64,1) .12s both fQyGsq_compactionPillIn}.fQyGsq_compactionRow>.fQyGsq_compactionLine .fQyGsq_compactionIcon{animation:.9s cubic-bezier(.4,0,.2,1) .2s both fQyGsq_compactionDial}@keyframes fQyGsq_compactionLineIn{0%{opacity:0;transform:scaleX(.6)}to{opacity:1;transform:scaleX(1)}}@keyframes fQyGsq_compactionPillIn{0%{opacity:0;transform:translateY(-6px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fQyGsq_compactionDial{0%{opacity:0;transform:rotate(-140deg)}to{opacity:.7;transform:rotate(0)}}[data-motion=off] .fQyGsq_compactionRow>.fQyGsq_compactionLine,[data-motion=off] .fQyGsq_compactionRow>.fQyGsq_compactionLine>.fQyGsq_compactionPill,[data-motion=off] .fQyGsq_compactionRow>.fQyGsq_compactionLine .fQyGsq_compactionIcon{animation:none!important}@media (prefers-reduced-motion:reduce){.fQyGsq_compactionRow>.fQyGsq_compactionLine,.fQyGsq_compactionRow>.fQyGsq_compactionLine>.fQyGsq_compactionPill,.fQyGsq_compactionRow>.fQyGsq_compactionLine .fQyGsq_compactionIcon{animation:none!important}}.fQyGsq_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}.fQyGsq_compactionButton{cursor:pointer;transition:color .14s,border-color .14s,background-color .14s}.fQyGsq_compactionButton:hover{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l2);background:var(--dsw-alias-interactive-bg-hover)}.fQyGsq_compactionIcon{opacity:.7;flex:none;width:12px;height:12px}.fQyGsq_compactionToggle{opacity:.8;margin-left:2px;font-size:10px}.fQyGsq_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}.fQyGsq_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}.fQyGsq_notice,.fQyGsq_error,.fQyGsq_attention{overflow-wrap:anywhere;border-radius:10px;padding:12px 14px;font-size:13px;line-height:20px}.fQyGsq_notice{background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-secondary);border:1px solid var(--dsw-alias-border-l2)}.fQyGsq_error{color:var(--dsw-alias-label-primary);background:#ef44440f;border:1px solid #ef444438;align-items:flex-start;gap:10px;display:flex}.fQyGsq_errorIcon{color:#ef4444;flex:none;width:16px;height:16px;margin-top:2px}.fQyGsq_errorCopy{flex:1;min-width:0}.fQyGsq_errorTitle{color:#dc2626;align-items:center;gap:8px;margin-bottom:2px;font-weight:500;display:flex}.fQyGsq_errorMessage{color:var(--dsw-alias-label-secondary);word-break:break-word;margin:0;font-size:12px;line-height:18px}.fQyGsq_errorCode{color:#dc2626;background:#ef44441f;border-radius:4px;padding:1px 5px;font-family:inherit;font-size:11px}.fQyGsq_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}.fQyGsq_attention span{color:var(--dsw-alias-label-secondary)}.fQyGsq_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}.fQyGsq_unknown p{margin:0 0 6px}.fQyGsq_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}.fQyGsq_historyButton:disabled{opacity:.55;cursor:default}.fQyGsq_empty{color:var(--dsw-alias-label-tertiary);text-align:center;padding:40px 0}.fQyGsq_answerActions{align-items:center;gap:8px;min-height:28px;margin:13px 0 0 -6px;display:flex}.fQyGsq_userActions{align-items:center;gap:8px;min-height:28px;display:flex}.fQyGsq_messageClock{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px;line-height:24px}.fQyGsq_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}.fQyGsq_iconButton svg{fill:none;stroke:currentColor;stroke-width:1.2px;stroke-linecap:round;stroke-linejoin:round}.fQyGsq_imageFigure{box-sizing:border-box;align-self:flex-start;width:min(100%,360px);max-width:100%;margin:0}.fQyGsq_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}.fQyGsq_imageOpen{background:0 0;border:0;width:100%;height:100%;padding:0;display:flex;position:absolute;inset:0}.fQyGsq_imageOpen img{object-fit:contain;opacity:0;width:100%;height:100%;transition:opacity .2s cubic-bezier(.4,0,.2,1);display:block}.fQyGsq_imageOpen img[data-ready=true]{opacity:1}.fQyGsq_pendingImage{object-fit:contain;width:100%;max-width:100%;height:100%;display:block}.fQyGsq_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}.fQyGsq_imagePlaceholder button{pointer-events:auto}.fQyGsq_imageFigure figcaption{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;margin-top:6px;font-size:12px;line-height:20px}.fQyGsq_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}.fQyGsq_imageDialog::backdrop{background:var(--dsw-alias-bg-mask-photo)}.fQyGsq_imageDialog img{object-fit:contain;max-width:82vw;max-height:75vh;display:block}.fQyGsq_dialogClose{color:inherit;background:0 0;border:0;border-radius:8px;width:32px;height:32px;font-size:24px;position:absolute;top:4px;right:8px}.fQyGsq_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}.fQyGsq_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}.fQyGsq_deliverablesLabel{color:var(--dsw-alias-label-tertiary);grid-area:1/1;padding-top:2px;font-size:12px;font-weight:500}.fQyGsq_deliverablesLane{grid-area:1/2;min-width:0}.fQyGsq_deliverablesRow{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.fQyGsq_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}.fQyGsq_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)}.fQyGsq_deliverableChip[data-status=opened]{color:#059669;background:#10b9811f;border-color:#10b981}.fQyGsq_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}.fQyGsq_chipMain:hover{color:var(--dsw-alias-label-primary)}.fQyGsq_deliverableIcon,.fQyGsq_statusIcon{opacity:.8;flex:none;width:13px;height:13px}.fQyGsq_statusIcon{color:#10b981}.fQyGsq_deliverableName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fQyGsq_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}.fQyGsq_deliverableChip:hover .fQyGsq_chipActions{opacity:1;border-left-color:var(--dsw-alias-border-l2)}.fQyGsq_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}.fQyGsq_chipActionBtn:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.fQyGsq_actionIcon{width:12px;height:12px}.fQyGsq_deliverablesMore{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:12px}.fQyGsq_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}.fQyGsq_deliverablesShowFolder:hover{color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.fQyGsq_deliverablesShowFolder[data-status=opened]{color:#10b981;background:#10b98114;border-color:#10b9814d}.fQyGsq_morphCluster{flex-direction:column;width:100%;min-width:0;display:flex}.fQyGsq_morphDrawer{transform-origin:top;will-change:height, opacity, transform;height:0;overflow:hidden}.fQyGsq_liveFoldImpact{animation:.18s cubic-bezier(.2,0,0,1) both fQyGsq_liveFoldElastic}@keyframes fQyGsq_liveFoldElastic{0%{transform:scale(1)}50%{transform:scale(1.015)}to{transform:scale(1)}}.fQyGsq_liveFoldContainer{top:calc(max(var(--reader-toolbar-height,40px), var(--reader-status-height,40px)) + var(--reader-sticky-lane,40px) * 2);z-index:4;background:var(--dsw-alias-bg-base);-webkit-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 fQyGsq_liveFoldPulse;position:sticky}@keyframes fQyGsq_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] .fQyGsq_liveFoldContainer{animation:none!important}@media (prefers-reduced-motion:reduce){.fQyGsq_liveFoldContainer{animation:none!important}}.fQyGsq_priorFoldDrawer{flex-direction:column;gap:14px;width:100%;min-width:0;display:flex}.fQyGsq_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}.fQyGsq_jump:hover{background:var(--dsw-alias-button-floating-hover,var(--dsw-alias-interactive-bg-hover))}.fQyGsq_foldSummary{text-overflow:ellipsis;align-items:baseline;max-width:100%;display:inline-flex;overflow:hidden;white-space:nowrap!important}.fQyGsq_foldSummaryPart{flex:none;align-items:baseline;display:inline-flex;white-space:nowrap!important}.fQyGsq_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}.fQyGsq_numberRollSizer{visibility:hidden;user-select:none;pointer-events:none;line-height:inherit;white-space:nowrap}.fQyGsq_numberRollDigit{line-height:inherit;white-space:nowrap;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.fQyGsq_numberRollExit{animation:.24s cubic-bezier(.16,1,.3,1) forwards fQyGsq_numberRollOut}.fQyGsq_numberRollEnter{animation:.24s cubic-bezier(.16,1,.3,1) forwards fQyGsq_numberRollIn}@keyframes fQyGsq_numberRollOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}@keyframes fQyGsq_numberRollIn{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}[data-motion=off] .fQyGsq_chevron,[data-motion=off] .fQyGsq_imageOpen img,[data-motion=off] .fQyGsq_processMeta,[data-motion=off] .fQyGsq_numberRollDigit{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){.fQyGsq_chevron,.fQyGsq_imageOpen img,.fQyGsq_processMeta,.fQyGsq_numberRollDigit{transition:none!important;animation:none!important}}.fQyGsq_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}.fQyGsq_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%;-webkit-background-clip:text;background-clip:text;font-weight:500;animation:1.8s linear infinite fQyGsq_dsh-turn-status-shimmer}.fQyGsq_waitClock{flex:none;align-items:center;margin-left:8px;display:inline-flex}.fQyGsq_waitSeconds{font-variant-numeric:tabular-nums;font-feature-settings:\"tnum\";color:var(--dsw-alias-label-caption,#86909c);font-size:13px;font-weight:400}.fQyGsq_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}.fQyGsq_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 fQyGsq_dsh-turn-status-shimmer{to{background-position:0 0}}[data-motion=off] .fQyGsq_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){.fQyGsq_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){.fQyGsq_disclosureButton{min-height:44px}}@media (width<=600px){.fQyGsq_root{padding-inline:20px}.fQyGsq_column{gap:18px}.fQyGsq_toolbar{font-size:11px}.fQyGsq_user{max-width:90%}}.fQyGsq_choreographedFlow{overflow-anchor:none;flex-direction:column;min-width:0;display:flex}.fQyGsq_flowCell{min-width:0;display:flow-root;overflow:clip}.fQyGsq_flowCell[hidden]{display:none}.fQyGsq_flowCellInner{flex-direction:column;min-width:0;padding-bottom:16px;display:flex}.fQyGsq_flowCellInner:empty{padding-bottom:0}.fQyGsq_choreographedFlow[data-reader-transition=collapse] .fQyGsq_flowCell *{animation-play-state:paused!important}.fQyGsq_numberRollExit,.fQyGsq_numberRollEnter{animation-duration:.16s}.fQyGsq_foldSummary{align-items:baseline;display:inline-flex;white-space:nowrap!important;flex-wrap:nowrap!important}.fQyGsq_toolbar{box-sizing:border-box;z-index:7;-webkit-backdrop-filter:none;border-bottom:0;align-self:stretch;width:100%;max-width:100%;min-height:40px}.fQyGsq_turnProcessSticky{box-sizing:border-box;width:calc(100% - var(--reader-control-width,148px));top:max(var(--reader-toolbar-height,40px), var(--reader-status-height,40px));z-index:6;-webkit-backdrop-filter:none;background-clip:padding-box;border-bottom:1px solid #0000;min-height:40px;padding-right:0}.fQyGsq_flowCell[data-flow-summary],.fQyGsq_closedProcessSummary{top:calc(max(var(--reader-toolbar-height,40px), var(--reader-status-height,40px)) + var(--reader-sticky-lane,40px));z-index:5;box-sizing:border-box;background:var(--dsw-alias-bg-base);border-bottom:0;min-height:40px;padding-block:4px;position:sticky;overflow:visible}.fQyGsq_foldControl{background:var(--dsw-alias-bg-module-platform);border-radius:8px;align-items:center;gap:0;padding:2px;display:inline-flex}.fQyGsq_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}.fQyGsq_foldStop[data-on]{background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary)}.fQyGsq_flowCell[data-flow-summary]>.fQyGsq_flowCellInner{padding-bottom:0}.fQyGsq_flowCell[data-flow-summary] .fQyGsq_disclosureButton,.fQyGsq_closedProcessSummary .fQyGsq_disclosureButton{width:auto;max-width:100%}.fQyGsq_flowCell[data-flow-summary] .fQyGsq_foldSummary,.fQyGsq_closedProcessSummary .fQyGsq_foldSummary{min-width:0}.fQyGsq_turnProcessSticky>.fQyGsq_disclosure{flex:auto;min-width:0}.fQyGsq_disclosureButton{width:max-content;max-width:calc(100% + 6px)}.fQyGsq_statusText{flex:0 auto}.fQyGsq_think{width:max-content;min-width:0}.fQyGsq_thinkSizer{white-space:normal;overflow-wrap:anywhere}.fQyGsq_thinkText{white-space:normal;overflow-wrap:anywhere;text-overflow:clip;overflow:visible}.fQyGsq_root[data-reader-glass] .fQyGsq_toolbar,.fQyGsq_root[data-reader-glass] .fQyGsq_turnProcessSticky,.fQyGsq_root[data-reader-glass] .fQyGsq_liveFoldContainer{-webkit-backdrop-filter:blur(16px);box-shadow:none;background:0 0;border:0;border-radius:0}.fQyGsq_root[data-reader-glass] .fQyGsq_flowCell[data-flow-summary],.fQyGsq_root[data-reader-glass] .fQyGsq_closedProcessSummary{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}.fQyGsq_root[data-reader-glass] .fQyGsq_user{background:color-mix(in srgb, var(--dsw-specific-bubble,#00000014) 25%, transparent);-webkit-backdrop-filter:blur(12px);border:1px solid color-mix(in srgb, var(--dsw-alias-border-l1,#8080804d) 30%, transparent)}.fQyGsq_root[data-reader-glass] .fQyGsq_reasonCard{border-color:color-mix(in srgb, var(--dsw-alias-border-l1,#80808059) 65%, transparent);background:0 0}.fQyGsq_root[data-reader-glass] .fQyGsq_toolDetails,.fQyGsq_root[data-reader-glass] .fQyGsq_notice,.fQyGsq_root[data-reader-glass] .fQyGsq_unknown,.fQyGsq_root[data-reader-glass] .fQyGsq_toolRaw,.fQyGsq_root[data-reader-glass] .fQyGsq_systemPrompt,.fQyGsq_root[data-reader-glass] .fQyGsq_compactionSummaryBox,.fQyGsq_root[data-reader-glass] .fQyGsq_attention,.fQyGsq_root[data-reader-glass] .fQyGsq_imageFrame,.fQyGsq_root[data-reader-glass] .fQyGsq_imageDialog{background:0 0}.fQyGsq_root[data-reader-glass] .fQyGsq_diffOverlay{background:color-mix(in srgb, var(--dsw-alias-bg-module-platform,#7f7f7f1a) 20%, transparent);-webkit-backdrop-filter:blur(16px)}.fQyGsq_root[data-reader-glass] .fQyGsq_diffScrollArea{background:0 0}.fQyGsq_root[data-reader-glass] .fQyGsq_diffTab{background:color-mix(in srgb, var(--dsw-alias-bg-base,#fffc) 25%, transparent)}.fQyGsq_root[data-reader-glass] .fQyGsq_diffTab[data-active]{background:color-mix(in srgb, var(--dsw-alias-bg-base,#fff) 45%, transparent)}.fQyGsq_root[data-reader-glass] .md-code-block,.fQyGsq_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);background:color-mix(in srgb, var(--dsw-alias-markdown-code-block,#0000000f) 25%, transparent)!important}.fQyGsq_root[data-reader-glass] .fQyGsq_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)}.fQyGsq_root[data-reader-glass] .fQyGsq_foldStop[data-on]{background:color-mix(in srgb, var(--dsw-alias-bg-base,#fff) 35%, transparent)}.fQyGsq_root[data-reader-glass] .fQyGsq_compactionPill,.fQyGsq_root[data-reader-glass] .fQyGsq_deliverableChip,.fQyGsq_root[data-reader-glass] .fQyGsq_toolState,.fQyGsq_root[data-reader-glass] .fQyGsq_diffStatButton{background:0 0;border-color:#0000}.fQyGsq_root[data-reader-glass] .fQyGsq_compactionPill:hover,.fQyGsq_root[data-reader-glass] .fQyGsq_compactionPill:focus-visible,.fQyGsq_root[data-reader-glass] .fQyGsq_deliverableChip:hover,.fQyGsq_root[data-reader-glass] .fQyGsq_deliverableChip:focus-within,.fQyGsq_root[data-reader-glass] .fQyGsq_toolState:hover,.fQyGsq_root[data-reader-glass] .fQyGsq_diffStatButton:hover,.fQyGsq_root[data-reader-glass] .fQyGsq_diffStatButton:focus-visible,.fQyGsq_root[data-reader-glass] .fQyGsq_diffStatButton[aria-expanded=true]{background:var(--dsw-alias-bg-module-platform,#7f7f7f1a);border-color:var(--dsw-alias-border-l2,#7f7f7f47)}";
44155
44197
  const tagId$5 = "dsh-better-display/Reader.module.css";
44156
44198
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
44157
44199
  const tag = document.createElement("style");
@@ -44161,181 +44203,181 @@ function(test) {
44161
44203
  document.head.appendChild(tag);
44162
44204
  }
44163
44205
  var Reader_module_css_default = {
44164
- "actionIcon": "g2GnNq_actionIcon",
44165
- "answer": "g2GnNq_answer",
44166
- "answerActions": "g2GnNq_answerActions",
44167
- "attention": "g2GnNq_attention",
44168
- "blocks": "g2GnNq_blocks",
44169
- "chevron": "g2GnNq_chevron",
44170
- "chipActionBtn": "g2GnNq_chipActionBtn",
44171
- "chipActions": "g2GnNq_chipActions",
44172
- "chipMain": "g2GnNq_chipMain",
44173
- "choreographedFlow": "g2GnNq_choreographedFlow",
44174
- "closedProcessSummary": "g2GnNq_closedProcessSummary",
44175
- "column": "g2GnNq_column",
44176
- "commandInput": "g2GnNq_commandInput",
44177
- "compactionButton": "g2GnNq_compactionButton",
44178
- "compactionDial": "g2GnNq_compactionDial",
44179
- "compactionIcon": "g2GnNq_compactionIcon",
44180
- "compactionLine": "g2GnNq_compactionLine",
44181
- "compactionLineIn": "g2GnNq_compactionLineIn",
44182
- "compactionPill": "g2GnNq_compactionPill",
44183
- "compactionPillIn": "g2GnNq_compactionPillIn",
44184
- "compactionRow": "g2GnNq_compactionRow",
44185
- "compactionSummaryBox": "g2GnNq_compactionSummaryBox",
44186
- "compactionSummaryHeader": "g2GnNq_compactionSummaryHeader",
44187
- "compactionToggle": "g2GnNq_compactionToggle",
44188
- "deliverableChip": "g2GnNq_deliverableChip",
44189
- "deliverableIcon": "g2GnNq_deliverableIcon",
44190
- "deliverableName": "g2GnNq_deliverableName",
44191
- "deliverablesLabel": "g2GnNq_deliverablesLabel",
44192
- "deliverablesLane": "g2GnNq_deliverablesLane",
44193
- "deliverablesMore": "g2GnNq_deliverablesMore",
44194
- "deliverablesRoot": "g2GnNq_deliverablesRoot",
44195
- "deliverablesRow": "g2GnNq_deliverablesRow",
44196
- "deliverablesShowFolder": "g2GnNq_deliverablesShowFolder",
44197
- "detail": "g2GnNq_detail",
44198
- "dialogClose": "g2GnNq_dialogClose",
44199
- "diffAdded": "g2GnNq_diffAdded",
44200
- "diffCaret": "g2GnNq_diffCaret",
44201
- "diffEmpty": "g2GnNq_diffEmpty",
44202
- "diffHunkBody": "g2GnNq_diffHunkBody",
44203
- "diffLineAdded": "g2GnNq_diffLineAdded",
44204
- "diffLineRemoved": "g2GnNq_diffLineRemoved",
44205
- "diffLines": "g2GnNq_diffLines",
44206
- "diffOverlay": "g2GnNq_diffOverlay",
44207
- "diffOverlayRow": "g2GnNq_diffOverlayRow",
44208
- "diffPath": "g2GnNq_diffPath",
44209
- "diffRemoved": "g2GnNq_diffRemoved",
44210
- "diffScrollArea": "g2GnNq_diffScrollArea",
44211
- "diffStat": "g2GnNq_diffStat",
44212
- "diffStatButton": "g2GnNq_diffStatButton",
44213
- "diffStatRoot": "g2GnNq_diffStatRoot",
44214
- "diffTab": "g2GnNq_diffTab",
44215
- "diffTabs": "g2GnNq_diffTabs",
44216
- "disclosure": "g2GnNq_disclosure",
44217
- "disclosureBody": "g2GnNq_disclosureBody",
44218
- "disclosureButton": "g2GnNq_disclosureButton",
44219
- "dsh-turn-status-shimmer": "g2GnNq_dsh-turn-status-shimmer",
44220
- "empty": "g2GnNq_empty",
44221
- "error": "g2GnNq_error",
44222
- "errorCode": "g2GnNq_errorCode",
44223
- "errorCopy": "g2GnNq_errorCopy",
44224
- "errorIcon": "g2GnNq_errorIcon",
44225
- "errorMessage": "g2GnNq_errorMessage",
44226
- "errorTitle": "g2GnNq_errorTitle",
44227
- "flowCell": "g2GnNq_flowCell",
44228
- "flowCellInner": "g2GnNq_flowCellInner",
44229
- "foldControl": "g2GnNq_foldControl",
44230
- "foldStop": "g2GnNq_foldStop",
44231
- "foldSummary": "g2GnNq_foldSummary",
44232
- "foldSummaryPart": "g2GnNq_foldSummaryPart",
44233
- "historyButton": "g2GnNq_historyButton",
44234
- "iconButton": "g2GnNq_iconButton",
44235
- "imageDialog": "g2GnNq_imageDialog",
44236
- "imageFigure": "g2GnNq_imageFigure",
44237
- "imageFrame": "g2GnNq_imageFrame",
44238
- "imageOpen": "g2GnNq_imageOpen",
44239
- "imagePlaceholder": "g2GnNq_imagePlaceholder",
44240
- "isEnterStart": "g2GnNq_isEnterStart",
44241
- "isExit": "g2GnNq_isExit",
44242
- "jump": "g2GnNq_jump",
44243
- "jumpDock": "g2GnNq_jumpDock",
44244
- "liveFoldContainer": "g2GnNq_liveFoldContainer",
44245
- "liveFoldElastic": "g2GnNq_liveFoldElastic",
44246
- "liveFoldImpact": "g2GnNq_liveFoldImpact",
44247
- "liveFoldPulse": "g2GnNq_liveFoldPulse",
44248
- "mainFlow": "g2GnNq_mainFlow",
44249
- "messageClock": "g2GnNq_messageClock",
44250
- "meta": "g2GnNq_meta",
44251
- "morphCluster": "g2GnNq_morphCluster",
44252
- "morphDrawer": "g2GnNq_morphDrawer",
44253
- "nativeToolRow": "g2GnNq_nativeToolRow",
44254
- "nativeToolSummary": "g2GnNq_nativeToolSummary",
44255
- "notice": "g2GnNq_notice",
44256
- "numberRollDigit": "g2GnNq_numberRollDigit",
44257
- "numberRollEnter": "g2GnNq_numberRollEnter",
44258
- "numberRollExit": "g2GnNq_numberRollExit",
44259
- "numberRollIn": "g2GnNq_numberRollIn",
44260
- "numberRollOut": "g2GnNq_numberRollOut",
44261
- "numberRollRoot": "g2GnNq_numberRollRoot",
44262
- "numberRollSizer": "g2GnNq_numberRollSizer",
44263
- "pendingImage": "g2GnNq_pendingImage",
44264
- "priorFoldDrawer": "g2GnNq_priorFoldDrawer",
44265
- "processCommentary": "g2GnNq_processCommentary",
44266
- "processContents": "g2GnNq_processContents",
44267
- "processFootnote": "g2GnNq_processFootnote",
44268
- "processFrame": "g2GnNq_processFrame",
44269
- "processItem": "g2GnNq_processItem",
44270
- "processLabel": "g2GnNq_processLabel",
44271
- "processMeta": "g2GnNq_processMeta",
44272
- "processMetaInner": "g2GnNq_processMetaInner",
44273
- "processMetaLine": "g2GnNq_processMetaLine",
44274
- "readerRunningGlow": "g2GnNq_readerRunningGlow",
44275
- "readerStepShimmer": "g2GnNq_readerStepShimmer",
44276
- "readingText": "g2GnNq_readingText",
44277
- "reasonAction": "g2GnNq_reasonAction",
44278
- "reasonCaption": "g2GnNq_reasonCaption",
44279
- "reasonCard": "g2GnNq_reasonCard",
44280
- "reasonFooter": "g2GnNq_reasonFooter",
44281
- "reasonHeading": "g2GnNq_reasonHeading",
44282
- "reasonLabel": "g2GnNq_reasonLabel",
44283
- "reasonPlain": "g2GnNq_reasonPlain",
44284
- "reasonText": "g2GnNq_reasonText",
44285
- "reasonTrack": "g2GnNq_reasonTrack",
44286
- "reasonViewport": "g2GnNq_reasonViewport",
44287
- "retiringContent": "g2GnNq_retiringContent",
44288
- "root": "g2GnNq_root",
44289
- "rowSeparator": "g2GnNq_rowSeparator",
44290
- "srOnly": "g2GnNq_srOnly",
44291
- "statusIcon": "g2GnNq_statusIcon",
44292
- "statusText": "g2GnNq_statusText",
44293
- "stopped": "g2GnNq_stopped",
44294
- "streamAtom": "g2GnNq_streamAtom",
44295
- "streamInlineWord": "g2GnNq_streamInlineWord",
44296
- "streamWord": "g2GnNq_streamWord",
44297
- "summaryRow": "g2GnNq_summaryRow",
44298
- "systemPrompt": "g2GnNq_systemPrompt",
44299
- "textButton": "g2GnNq_textButton",
44300
- "think": "g2GnNq_think",
44301
- "thinkShimmer": "g2GnNq_thinkShimmer",
44302
- "thinkSizer": "g2GnNq_thinkSizer",
44303
- "thinkText": "g2GnNq_thinkText",
44304
- "tool": "g2GnNq_tool",
44305
- "toolActivity": "g2GnNq_toolActivity",
44306
- "toolbar": "g2GnNq_toolbar",
44307
- "toolChildren": "g2GnNq_toolChildren",
44308
- "toolDetailNote": "g2GnNq_toolDetailNote",
44309
- "toolDetails": "g2GnNq_toolDetails",
44310
- "toolDocument": "g2GnNq_toolDocument",
44311
- "toolElapsed": "g2GnNq_toolElapsed",
44312
- "toolEngine": "g2GnNq_toolEngine",
44313
- "toolGlyph": "g2GnNq_toolGlyph",
44314
- "toolHeading": "g2GnNq_toolHeading",
44315
- "toolHeadingCopy": "g2GnNq_toolHeadingCopy",
44316
- "toolHeadingState": "g2GnNq_toolHeadingState",
44317
- "toolLedger": "g2GnNq_toolLedger",
44318
- "toolPanel": "g2GnNq_toolPanel",
44319
- "toolRaw": "g2GnNq_toolRaw",
44320
- "toolRawLabel": "g2GnNq_toolRawLabel",
44321
- "toolReceipt": "g2GnNq_toolReceipt",
44322
- "toolState": "g2GnNq_toolState",
44323
- "toolTabs": "g2GnNq_toolTabs",
44324
- "toolTarget": "g2GnNq_toolTarget",
44325
- "toolTitle": "g2GnNq_toolTitle",
44326
- "turn": "g2GnNq_turn",
44327
- "turnProcessSticky": "g2GnNq_turnProcessSticky",
44328
- "turnStatus": "g2GnNq_turnStatus",
44329
- "turnStatusClock": "g2GnNq_turnStatusClock",
44330
- "turnStatusLabel": "g2GnNq_turnStatusLabel",
44331
- "unknown": "g2GnNq_unknown",
44332
- "user": "g2GnNq_user",
44333
- "userActions": "g2GnNq_userActions",
44334
- "userCluster": "g2GnNq_userCluster",
44335
- "userImages": "g2GnNq_userImages",
44336
- "waitClock": "g2GnNq_waitClock",
44337
- "waitOvertime": "g2GnNq_waitOvertime",
44338
- "waitSeconds": "g2GnNq_waitSeconds"
44206
+ "actionIcon": "fQyGsq_actionIcon",
44207
+ "answer": "fQyGsq_answer",
44208
+ "answerActions": "fQyGsq_answerActions",
44209
+ "attention": "fQyGsq_attention",
44210
+ "blocks": "fQyGsq_blocks",
44211
+ "chevron": "fQyGsq_chevron",
44212
+ "chipActionBtn": "fQyGsq_chipActionBtn",
44213
+ "chipActions": "fQyGsq_chipActions",
44214
+ "chipMain": "fQyGsq_chipMain",
44215
+ "choreographedFlow": "fQyGsq_choreographedFlow",
44216
+ "closedProcessSummary": "fQyGsq_closedProcessSummary",
44217
+ "column": "fQyGsq_column",
44218
+ "commandInput": "fQyGsq_commandInput",
44219
+ "compactionButton": "fQyGsq_compactionButton",
44220
+ "compactionDial": "fQyGsq_compactionDial",
44221
+ "compactionIcon": "fQyGsq_compactionIcon",
44222
+ "compactionLine": "fQyGsq_compactionLine",
44223
+ "compactionLineIn": "fQyGsq_compactionLineIn",
44224
+ "compactionPill": "fQyGsq_compactionPill",
44225
+ "compactionPillIn": "fQyGsq_compactionPillIn",
44226
+ "compactionRow": "fQyGsq_compactionRow",
44227
+ "compactionSummaryBox": "fQyGsq_compactionSummaryBox",
44228
+ "compactionSummaryHeader": "fQyGsq_compactionSummaryHeader",
44229
+ "compactionToggle": "fQyGsq_compactionToggle",
44230
+ "deliverableChip": "fQyGsq_deliverableChip",
44231
+ "deliverableIcon": "fQyGsq_deliverableIcon",
44232
+ "deliverableName": "fQyGsq_deliverableName",
44233
+ "deliverablesLabel": "fQyGsq_deliverablesLabel",
44234
+ "deliverablesLane": "fQyGsq_deliverablesLane",
44235
+ "deliverablesMore": "fQyGsq_deliverablesMore",
44236
+ "deliverablesRoot": "fQyGsq_deliverablesRoot",
44237
+ "deliverablesRow": "fQyGsq_deliverablesRow",
44238
+ "deliverablesShowFolder": "fQyGsq_deliverablesShowFolder",
44239
+ "detail": "fQyGsq_detail",
44240
+ "dialogClose": "fQyGsq_dialogClose",
44241
+ "diffAdded": "fQyGsq_diffAdded",
44242
+ "diffCaret": "fQyGsq_diffCaret",
44243
+ "diffEmpty": "fQyGsq_diffEmpty",
44244
+ "diffHunkBody": "fQyGsq_diffHunkBody",
44245
+ "diffLineAdded": "fQyGsq_diffLineAdded",
44246
+ "diffLineRemoved": "fQyGsq_diffLineRemoved",
44247
+ "diffLines": "fQyGsq_diffLines",
44248
+ "diffOverlay": "fQyGsq_diffOverlay",
44249
+ "diffOverlayRow": "fQyGsq_diffOverlayRow",
44250
+ "diffPath": "fQyGsq_diffPath",
44251
+ "diffRemoved": "fQyGsq_diffRemoved",
44252
+ "diffScrollArea": "fQyGsq_diffScrollArea",
44253
+ "diffStat": "fQyGsq_diffStat",
44254
+ "diffStatButton": "fQyGsq_diffStatButton",
44255
+ "diffStatRoot": "fQyGsq_diffStatRoot",
44256
+ "diffTab": "fQyGsq_diffTab",
44257
+ "diffTabs": "fQyGsq_diffTabs",
44258
+ "disclosure": "fQyGsq_disclosure",
44259
+ "disclosureBody": "fQyGsq_disclosureBody",
44260
+ "disclosureButton": "fQyGsq_disclosureButton",
44261
+ "dsh-turn-status-shimmer": "fQyGsq_dsh-turn-status-shimmer",
44262
+ "empty": "fQyGsq_empty",
44263
+ "error": "fQyGsq_error",
44264
+ "errorCode": "fQyGsq_errorCode",
44265
+ "errorCopy": "fQyGsq_errorCopy",
44266
+ "errorIcon": "fQyGsq_errorIcon",
44267
+ "errorMessage": "fQyGsq_errorMessage",
44268
+ "errorTitle": "fQyGsq_errorTitle",
44269
+ "flowCell": "fQyGsq_flowCell",
44270
+ "flowCellInner": "fQyGsq_flowCellInner",
44271
+ "foldControl": "fQyGsq_foldControl",
44272
+ "foldStop": "fQyGsq_foldStop",
44273
+ "foldSummary": "fQyGsq_foldSummary",
44274
+ "foldSummaryPart": "fQyGsq_foldSummaryPart",
44275
+ "historyButton": "fQyGsq_historyButton",
44276
+ "iconButton": "fQyGsq_iconButton",
44277
+ "imageDialog": "fQyGsq_imageDialog",
44278
+ "imageFigure": "fQyGsq_imageFigure",
44279
+ "imageFrame": "fQyGsq_imageFrame",
44280
+ "imageOpen": "fQyGsq_imageOpen",
44281
+ "imagePlaceholder": "fQyGsq_imagePlaceholder",
44282
+ "isEnterStart": "fQyGsq_isEnterStart",
44283
+ "isExit": "fQyGsq_isExit",
44284
+ "jump": "fQyGsq_jump",
44285
+ "jumpDock": "fQyGsq_jumpDock",
44286
+ "liveFoldContainer": "fQyGsq_liveFoldContainer",
44287
+ "liveFoldElastic": "fQyGsq_liveFoldElastic",
44288
+ "liveFoldImpact": "fQyGsq_liveFoldImpact",
44289
+ "liveFoldPulse": "fQyGsq_liveFoldPulse",
44290
+ "mainFlow": "fQyGsq_mainFlow",
44291
+ "messageClock": "fQyGsq_messageClock",
44292
+ "meta": "fQyGsq_meta",
44293
+ "morphCluster": "fQyGsq_morphCluster",
44294
+ "morphDrawer": "fQyGsq_morphDrawer",
44295
+ "nativeToolRow": "fQyGsq_nativeToolRow",
44296
+ "nativeToolSummary": "fQyGsq_nativeToolSummary",
44297
+ "notice": "fQyGsq_notice",
44298
+ "numberRollDigit": "fQyGsq_numberRollDigit",
44299
+ "numberRollEnter": "fQyGsq_numberRollEnter",
44300
+ "numberRollExit": "fQyGsq_numberRollExit",
44301
+ "numberRollIn": "fQyGsq_numberRollIn",
44302
+ "numberRollOut": "fQyGsq_numberRollOut",
44303
+ "numberRollRoot": "fQyGsq_numberRollRoot",
44304
+ "numberRollSizer": "fQyGsq_numberRollSizer",
44305
+ "pendingImage": "fQyGsq_pendingImage",
44306
+ "priorFoldDrawer": "fQyGsq_priorFoldDrawer",
44307
+ "processCommentary": "fQyGsq_processCommentary",
44308
+ "processContents": "fQyGsq_processContents",
44309
+ "processFootnote": "fQyGsq_processFootnote",
44310
+ "processFrame": "fQyGsq_processFrame",
44311
+ "processItem": "fQyGsq_processItem",
44312
+ "processLabel": "fQyGsq_processLabel",
44313
+ "processMeta": "fQyGsq_processMeta",
44314
+ "processMetaInner": "fQyGsq_processMetaInner",
44315
+ "processMetaLine": "fQyGsq_processMetaLine",
44316
+ "readerRunningGlow": "fQyGsq_readerRunningGlow",
44317
+ "readerStepShimmer": "fQyGsq_readerStepShimmer",
44318
+ "readingText": "fQyGsq_readingText",
44319
+ "reasonAction": "fQyGsq_reasonAction",
44320
+ "reasonCaption": "fQyGsq_reasonCaption",
44321
+ "reasonCard": "fQyGsq_reasonCard",
44322
+ "reasonFooter": "fQyGsq_reasonFooter",
44323
+ "reasonHeading": "fQyGsq_reasonHeading",
44324
+ "reasonLabel": "fQyGsq_reasonLabel",
44325
+ "reasonPlain": "fQyGsq_reasonPlain",
44326
+ "reasonText": "fQyGsq_reasonText",
44327
+ "reasonTrack": "fQyGsq_reasonTrack",
44328
+ "reasonViewport": "fQyGsq_reasonViewport",
44329
+ "retiringContent": "fQyGsq_retiringContent",
44330
+ "root": "fQyGsq_root",
44331
+ "rowSeparator": "fQyGsq_rowSeparator",
44332
+ "srOnly": "fQyGsq_srOnly",
44333
+ "statusIcon": "fQyGsq_statusIcon",
44334
+ "statusText": "fQyGsq_statusText",
44335
+ "stopped": "fQyGsq_stopped",
44336
+ "streamAtom": "fQyGsq_streamAtom",
44337
+ "streamInlineWord": "fQyGsq_streamInlineWord",
44338
+ "streamWord": "fQyGsq_streamWord",
44339
+ "summaryRow": "fQyGsq_summaryRow",
44340
+ "systemPrompt": "fQyGsq_systemPrompt",
44341
+ "textButton": "fQyGsq_textButton",
44342
+ "think": "fQyGsq_think",
44343
+ "thinkShimmer": "fQyGsq_thinkShimmer",
44344
+ "thinkSizer": "fQyGsq_thinkSizer",
44345
+ "thinkText": "fQyGsq_thinkText",
44346
+ "tool": "fQyGsq_tool",
44347
+ "toolActivity": "fQyGsq_toolActivity",
44348
+ "toolbar": "fQyGsq_toolbar",
44349
+ "toolChildren": "fQyGsq_toolChildren",
44350
+ "toolDetailNote": "fQyGsq_toolDetailNote",
44351
+ "toolDetails": "fQyGsq_toolDetails",
44352
+ "toolDocument": "fQyGsq_toolDocument",
44353
+ "toolElapsed": "fQyGsq_toolElapsed",
44354
+ "toolEngine": "fQyGsq_toolEngine",
44355
+ "toolGlyph": "fQyGsq_toolGlyph",
44356
+ "toolHeading": "fQyGsq_toolHeading",
44357
+ "toolHeadingCopy": "fQyGsq_toolHeadingCopy",
44358
+ "toolHeadingState": "fQyGsq_toolHeadingState",
44359
+ "toolLedger": "fQyGsq_toolLedger",
44360
+ "toolPanel": "fQyGsq_toolPanel",
44361
+ "toolRaw": "fQyGsq_toolRaw",
44362
+ "toolRawLabel": "fQyGsq_toolRawLabel",
44363
+ "toolReceipt": "fQyGsq_toolReceipt",
44364
+ "toolState": "fQyGsq_toolState",
44365
+ "toolTabs": "fQyGsq_toolTabs",
44366
+ "toolTarget": "fQyGsq_toolTarget",
44367
+ "toolTitle": "fQyGsq_toolTitle",
44368
+ "turn": "fQyGsq_turn",
44369
+ "turnProcessSticky": "fQyGsq_turnProcessSticky",
44370
+ "turnStatus": "fQyGsq_turnStatus",
44371
+ "turnStatusClock": "fQyGsq_turnStatusClock",
44372
+ "turnStatusLabel": "fQyGsq_turnStatusLabel",
44373
+ "unknown": "fQyGsq_unknown",
44374
+ "user": "fQyGsq_user",
44375
+ "userActions": "fQyGsq_userActions",
44376
+ "userCluster": "fQyGsq_userCluster",
44377
+ "userImages": "fQyGsq_userImages",
44378
+ "waitClock": "fQyGsq_waitClock",
44379
+ "waitOvertime": "fQyGsq_waitOvertime",
44380
+ "waitSeconds": "fQyGsq_waitSeconds"
44339
44381
  };
44340
44382
  //#endregion
44341
44383
  //#region src/client/word-motion.tsx
@@ -44486,6 +44528,7 @@ function(test) {
44486
44528
  streaming,
44487
44529
  codeLabels: CODE_LABELS,
44488
44530
  fileMentions,
44531
+ pathImages: readerPathImages,
44489
44532
  renderText,
44490
44533
  renderAtom
44491
44534
  })
@@ -44493,7 +44536,7 @@ function(test) {
44493
44536
  }
44494
44537
  //#endregion
44495
44538
  //#region \0dshx-css-module:TurnMetrics.module.css.mjs
44496
- const css$4 = "._BqQuW_container{color:var(--dsw-alias-label-tertiary);align-items:center;gap:2px;font-size:13px;line-height:24px;display:inline-flex;position:relative}._BqQuW_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}._BqQuW_pillButton:hover,._BqQuW_pillButton[data-active=true]{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l2);background:var(--dsw-alias-interactive-bg-hover)}._BqQuW_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}._BqQuW_timeButton:hover,._BqQuW_timeButton[data-active=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}._BqQuW_pillIcon{opacity:.8;flex:none;width:12px;height:12px}._BqQuW_metricsPop{background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);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 _BqQuW_popIn;display:flex;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 6px 20px #00000024}@keyframes _BqQuW_popIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}._BqQuW_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}._BqQuW_popSection{flex-direction:column;gap:4px;display:flex}._BqQuW_popSectionTitle{text-transform:uppercase;letter-spacing:.5px;color:var(--dsw-alias-label-tertiary);margin-top:2px;font-size:10px;font-weight:600}._BqQuW_popGrid{grid-template-columns:1fr auto;gap:3px 12px;font-size:11px;line-height:18px;display:grid}._BqQuW_popLabel{color:var(--dsw-alias-label-secondary)}._BqQuW_popValue{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;text-align:right;font-weight:500}._BqQuW_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}";
44539
+ const css$4 = ".DhNA3W_container{color:var(--dsw-alias-label-tertiary);align-items:center;gap:2px;font-size:13px;line-height:24px;display:inline-flex;position:relative}.DhNA3W_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}.DhNA3W_pillButton:hover,.DhNA3W_pillButton[data-active=true]{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l2);background:var(--dsw-alias-interactive-bg-hover)}.DhNA3W_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}.DhNA3W_timeButton:hover,.DhNA3W_timeButton[data-active=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}.DhNA3W_pillIcon{opacity:.8;flex:none;width:12px;height:12px}.DhNA3W_metricsPop{background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);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 DhNA3W_popIn;display:flex;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 6px 20px #00000024}@keyframes DhNA3W_popIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.DhNA3W_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}.DhNA3W_popSection{flex-direction:column;gap:4px;display:flex}.DhNA3W_popSectionTitle{text-transform:uppercase;letter-spacing:.5px;color:var(--dsw-alias-label-tertiary);margin-top:2px;font-size:10px;font-weight:600}.DhNA3W_popGrid{grid-template-columns:1fr auto;gap:3px 12px;font-size:11px;line-height:18px;display:grid}.DhNA3W_popLabel{color:var(--dsw-alias-label-secondary)}.DhNA3W_popValue{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;text-align:right;font-weight:500}.DhNA3W_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}";
44497
44540
  const tagId$4 = "dsh-better-display/TurnMetrics.module.css";
44498
44541
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
44499
44542
  const tag = document.createElement("style");
@@ -44503,19 +44546,19 @@ function(test) {
44503
44546
  document.head.appendChild(tag);
44504
44547
  }
44505
44548
  var TurnMetrics_module_css_default = {
44506
- "container": "_BqQuW_container",
44507
- "metricsPop": "_BqQuW_metricsPop",
44508
- "pillButton": "_BqQuW_pillButton",
44509
- "pillIcon": "_BqQuW_pillIcon",
44510
- "popBadge": "_BqQuW_popBadge",
44511
- "popGrid": "_BqQuW_popGrid",
44512
- "popHeader": "_BqQuW_popHeader",
44513
- "popIn": "_BqQuW_popIn",
44514
- "popLabel": "_BqQuW_popLabel",
44515
- "popSection": "_BqQuW_popSection",
44516
- "popSectionTitle": "_BqQuW_popSectionTitle",
44517
- "popValue": "_BqQuW_popValue",
44518
- "timeButton": "_BqQuW_timeButton"
44549
+ "container": "DhNA3W_container",
44550
+ "metricsPop": "DhNA3W_metricsPop",
44551
+ "pillButton": "DhNA3W_pillButton",
44552
+ "pillIcon": "DhNA3W_pillIcon",
44553
+ "popBadge": "DhNA3W_popBadge",
44554
+ "popGrid": "DhNA3W_popGrid",
44555
+ "popHeader": "DhNA3W_popHeader",
44556
+ "popIn": "DhNA3W_popIn",
44557
+ "popLabel": "DhNA3W_popLabel",
44558
+ "popSection": "DhNA3W_popSection",
44559
+ "popSectionTitle": "DhNA3W_popSectionTitle",
44560
+ "popValue": "DhNA3W_popValue",
44561
+ "timeButton": "DhNA3W_timeButton"
44519
44562
  };
44520
44563
  //#endregion
44521
44564
  //#region src/client/TurnMetrics.tsx
@@ -45017,7 +45060,7 @@ function(test) {
45017
45060
  children: formatMessageClock(time)
45018
45061
  });
45019
45062
  }
45020
- function CopyAnswer({ blocks, onFork, metrics }) {
45063
+ function CopyAnswer({ blocks, onFork, metrics, extraActions }) {
45021
45064
  const { receipt, copy } = useCopyReceipt();
45022
45065
  const text = blocks.filter((block) => block.kind === "text").map((block) => block.text).join("\n\n");
45023
45066
  const endedAt = metrics?.endedAt;
@@ -45036,6 +45079,7 @@ function(test) {
45036
45079
  },
45037
45080
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CopyGlyph, {})
45038
45081
  }),
45082
+ extraActions,
45039
45083
  onFork && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
45040
45084
  type: "button",
45041
45085
  className: Reader_module_css_default.iconButton,
@@ -45483,6 +45527,273 @@ function(test) {
45483
45527
  });
45484
45528
  }
45485
45529
  //#endregion
45530
+ //#region src/client/official-slots.tsx
45531
+ /**
45532
+ * RC2 composition adapter. Only public registry operations are used. We lend
45533
+ * registrations a Reader-owned seat, not a second implementation of their UI.
45534
+ * The platform still binds injection, hooks, locale, stores and boundaries.
45535
+ * Original entries, declarations and components are never changed.
45536
+ *
45537
+ * Child seats have unique names because RC2 declarations have one owner. The
45538
+ * sole component wrapper translates those names before delegating to the
45539
+ * framework-provided renderSlot. It does not implement a slot renderer.
45540
+ */
45541
+ const OFFICIAL_SLOTS = {
45542
+ actions: "conversation.chat.assistant-actions",
45543
+ tools: "tool.call.toolview",
45544
+ tail: "conversation.chat.turnTail",
45545
+ nodes: "conversation.chat.node",
45546
+ images: "conversation.message.images"
45547
+ };
45548
+ const OFFICIAL_SEATS = {
45549
+ actions: "dsh-better-display.official.actions/conversation.chat.assistant-actions",
45550
+ tools: "dsh-better-display.official.tools/tool.call.toolview",
45551
+ tail: "dsh-better-display.official.tail/conversation.chat.turnTail",
45552
+ nodes: "dsh-better-display.official.nodes/conversation.chat.node",
45553
+ images: "dsh-better-display.official.images/conversation.message.images"
45554
+ };
45555
+ const officialSeat = (family, source = OFFICIAL_SLOTS[family]) => `dsh-better-display.official.${family}/${source}`;
45556
+ const READER_NODES = new Set([
45557
+ "user",
45558
+ "steering",
45559
+ "assistant-step",
45560
+ "tool-call",
45561
+ "turn-tail",
45562
+ "turn-process"
45563
+ ]);
45564
+ const EXPECTED = {
45565
+ actions: {
45566
+ kind: "list",
45567
+ scope: "session"
45568
+ },
45569
+ tools: {
45570
+ kind: "keyed",
45571
+ scope: "session"
45572
+ },
45573
+ tail: {
45574
+ kind: "chain",
45575
+ scope: "session"
45576
+ },
45577
+ nodes: {
45578
+ kind: "keyed",
45579
+ scope: "session"
45580
+ },
45581
+ images: {
45582
+ kind: "single",
45583
+ scope: "session"
45584
+ }
45585
+ };
45586
+ /**
45587
+ * Reader already presents produced paths with its copy/reveal actions. RC2's
45588
+ * official tail additionally owns explicit `present` artifacts. Leave those
45589
+ * cards, actions and state intact, and omit only the duplicate produced chips.
45590
+ * This changes a presentation prop, never the source match or session data.
45591
+ * Unrecognized shapes pass through intact for safe forward degradation.
45592
+ */
45593
+ function readerTailMatch(value, displayedPaths) {
45594
+ if (!value || typeof value !== "object") return value;
45595
+ const match = value;
45596
+ const displayed = new Set(displayedPaths ?? []);
45597
+ return displayed.size > 0 && Array.isArray(match.produced) && Array.isArray(match.presented) ? {
45598
+ ...match,
45599
+ produced: match.produced.filter((path) => !displayed.has(path))
45600
+ } : value;
45601
+ }
45602
+ function tailPresentation(component) {
45603
+ const Original = component;
45604
+ return (0, react.memo)(function ReaderTailPresentation(props) {
45605
+ const matched = (0, react.useMemo)(() => readerTailMatch(props.matched, props.readerProducedPaths), [props.matched, props.readerProducedPaths]);
45606
+ return (0, react.createElement)(Original, {
45607
+ ...props,
45608
+ matched
45609
+ });
45610
+ });
45611
+ }
45612
+ function officialChildren(slots) {
45613
+ return Object.fromEntries(Object.entries(OFFICIAL_SLOTS).map(([name, source]) => {
45614
+ const family = name;
45615
+ const spec = slots.spec(source);
45616
+ if (spec && (spec.kind !== EXPECTED[family].kind || spec.scope !== EXPECTED[family].scope)) throw new Error(`Official slot contract changed: ${source} (${spec.kind}/${spec.scope})`);
45617
+ return [officialSeat(family), spec ?? EXPECTED[family]];
45618
+ }));
45619
+ }
45620
+ function translatedComponent(entry, names) {
45621
+ if (names.size === 0) return entry.component;
45622
+ const Original = entry.component;
45623
+ return (0, react.memo)(function OfficialSlotChildren(props) {
45624
+ const renders = (0, react.useMemo)(() => {
45625
+ const translate = (render) => (key, owner, options) => {
45626
+ const seat = names.get(key);
45627
+ if (!seat || !render) throw new Error(`Undeclared official child slot: ${key}`);
45628
+ return render(seat, owner, options);
45629
+ };
45630
+ return {
45631
+ renderSlot: translate(props.renderSlot),
45632
+ ...props.renderSlotChain ? { renderSlotChain: translate(props.renderSlotChain) } : {}
45633
+ };
45634
+ }, [props.renderSlot, props.renderSlotChain]);
45635
+ return (0, react.createElement)(Original, {
45636
+ ...props,
45637
+ ...renders
45638
+ });
45639
+ });
45640
+ }
45641
+ /**
45642
+ * Mirror one elected contribution set incrementally. Unrelated additions do not
45643
+ * remount existing cards or recreate their subscriptions. A source unload/HMR
45644
+ * disposes the corresponding subtree and closures before its replacement.
45645
+ */
45646
+ function mirrorOfficialSlot(slots, source, target, namespace, accept = () => true) {
45647
+ const mounted = /* @__PURE__ */ new Map();
45648
+ let stopped = false;
45649
+ const reconcile = () => {
45650
+ if (stopped) return;
45651
+ const entries = slots.entriesOfSlot(source).filter(accept);
45652
+ const wanted = new Set(entries);
45653
+ for (const [entry, dispose] of mounted) {
45654
+ if (wanted.has(entry)) continue;
45655
+ dispose();
45656
+ mounted.delete(entry);
45657
+ }
45658
+ for (const entry of entries) {
45659
+ if (mounted.has(entry)) continue;
45660
+ const names = new Map(Object.keys(entry.children ?? {}).map((key) => [key, `${namespace}/${key}`]));
45661
+ const children = Object.fromEntries([...names].map(([key, seat]) => [seat, entry.children[key]]));
45662
+ const disposers = [];
45663
+ const dispose = () => {
45664
+ for (const stop of disposers.splice(0).reverse()) stop();
45665
+ };
45666
+ try {
45667
+ const { component: _component, options, children: _children, ...metadata } = entry;
45668
+ const presentation = source === OFFICIAL_SLOTS.tail && entry.locale === "deliverables" ? {
45669
+ ...entry,
45670
+ component: tailPresentation(entry.component)
45671
+ } : entry;
45672
+ disposers.push(slots.register({
45673
+ ...options,
45674
+ ...metadata,
45675
+ name: target,
45676
+ ...names.size ? { children } : {},
45677
+ registrant: `dsh-better-display → ${entry.registrant ?? source}`
45678
+ }, translatedComponent(presentation, names)));
45679
+ for (const [key, seat] of names) disposers.push(mirrorOfficialSlot(slots, key, seat, namespace));
45680
+ mounted.set(entry, dispose);
45681
+ } catch (error) {
45682
+ dispose();
45683
+ throw error;
45684
+ }
45685
+ }
45686
+ };
45687
+ const unsubscribe = slots.subscribe(source, reconcile);
45688
+ const dispose = () => {
45689
+ stopped = true;
45690
+ unsubscribe();
45691
+ for (const stop of [...mounted.values()].reverse()) stop();
45692
+ mounted.clear();
45693
+ };
45694
+ try {
45695
+ reconcile();
45696
+ } catch (error) {
45697
+ dispose();
45698
+ throw error;
45699
+ }
45700
+ return dispose;
45701
+ }
45702
+ function installOfficialSlots(ctx) {
45703
+ const slots = ctx.slots;
45704
+ const disposers = [];
45705
+ try {
45706
+ for (const [name, source] of Object.entries(OFFICIAL_SLOTS)) {
45707
+ const family = name;
45708
+ disposers.push(slots.inject(source, () => {
45709
+ const spec = slots.spec(source);
45710
+ const target = officialSeat(family);
45711
+ const declared = slots.spec(target);
45712
+ if (spec.kind !== declared?.kind || spec.scope !== declared.scope) throw new Error(`Official slot contract changed: ${source}`);
45713
+ return mirrorOfficialSlot(slots, source, target, `dsh-better-display.official.${family}`, family === "nodes" ? (entry) => !READER_NODES.has(entry.options.key ?? "") : void 0);
45714
+ }));
45715
+ }
45716
+ } catch (error) {
45717
+ for (const stop of disposers.reverse()) stop();
45718
+ throw error;
45719
+ }
45720
+ return () => {
45721
+ for (const stop of disposers.splice(0).reverse()) stop();
45722
+ };
45723
+ }
45724
+ //#endregion
45725
+ //#region src/client/OfficialContent.tsx
45726
+ function OfficialActions({ official, messageId }) {
45727
+ if (!official || !messageId) return null;
45728
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
45729
+ "data-reader-official-actions": true,
45730
+ style: { display: "contents" },
45731
+ children: official.renderSlot(OFFICIAL_SEATS.actions, { messageId })
45732
+ });
45733
+ }
45734
+ function OfficialTool({ official, block, toolName, cwd, openFile, fallback }) {
45735
+ const home = (0, react.useSyncExternalStore)(official.officialHost.subscribe, official.officialHost.getSnapshot).home;
45736
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
45737
+ "data-reader-tool-official": true,
45738
+ children: official.renderSlot(OFFICIAL_SEATS.tools, {
45739
+ callId: block.callId,
45740
+ toolName,
45741
+ block,
45742
+ cwd,
45743
+ home,
45744
+ openFile: openFile ?? (() => {}),
45745
+ loadImage: official.officialImageLoader,
45746
+ inspect: () => official.openView("trajectory", block.callId)
45747
+ }, {
45748
+ entryKey: toolName,
45749
+ fallback
45750
+ })
45751
+ });
45752
+ }
45753
+ function OfficialNode({ node, fallback, ...render }) {
45754
+ const official = render.official;
45755
+ if (!official) return fallback;
45756
+ const owner = {
45757
+ cwd: render.cwd,
45758
+ openFile: render.openFile ?? (() => {}),
45759
+ forkAt: render.forkAt ?? (() => {}),
45760
+ inspectCall: (callId) => official.openView("trajectory", callId),
45761
+ loadImage: official.officialImageLoader,
45762
+ renderMessageImages: (images) => official.renderSlot(OFFICIAL_SEATS.images, {
45763
+ ...images,
45764
+ loadImage: official.officialImageLoader
45765
+ }),
45766
+ fileMentions: official.officialFileMentions
45767
+ };
45768
+ const turn = node.location.kind === "turn" || node.location.kind === "step" ? node.location.turn : void 0;
45769
+ const renderNode = official.renderSlot;
45770
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
45771
+ "data-reader-official-node": node.kind,
45772
+ "data-chat-anchor-key": node.key,
45773
+ "data-chat-flow-kind": node.kind,
45774
+ children: renderNode(OFFICIAL_SEATS.nodes, {
45775
+ ...owner,
45776
+ node
45777
+ }, {
45778
+ entryKey: node.kind,
45779
+ hookContext: turn?.data,
45780
+ fallback
45781
+ })
45782
+ });
45783
+ }
45784
+ function OfficialTail({ official, owner, produced }) {
45785
+ const tailOwner = owner && official ? {
45786
+ ...owner,
45787
+ openFile: official.officialPreviewFile,
45788
+ readerProducedPaths: produced
45789
+ } : void 0;
45790
+ return official && tailOwner ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
45791
+ "data-reader-official-tail": true,
45792
+ style: { display: "contents" },
45793
+ children: official.renderSlotChain(OFFICIAL_SEATS.tail, tailOwner)
45794
+ }) : null;
45795
+ }
45796
+ //#endregion
45486
45797
  //#region src/client/motion.tsx
45487
45798
  const EASING = "cubic-bezier(.22,1,.36,1)";
45488
45799
  function useMotionAllowed(enabled) {
@@ -45656,7 +45967,6 @@ function(test) {
45656
45967
  setPresent(open);
45657
45968
  return;
45658
45969
  }
45659
- if (from > target && motion) document.body.dataset.readerFolding = "true";
45660
45970
  const animation = element.animate(from > target ? [
45661
45971
  {
45662
45972
  offset: 0,
@@ -45706,7 +46016,6 @@ function(test) {
45706
46016
  if (settled) return;
45707
46017
  settled = true;
45708
46018
  if (running.current === animation) running.current = null;
45709
- delete document.body.dataset.readerFolding;
45710
46019
  animation.cancel();
45711
46020
  setPresent(open);
45712
46021
  };
@@ -45715,7 +46024,6 @@ function(test) {
45715
46024
  return () => {
45716
46025
  window.clearTimeout(deadline);
45717
46026
  running.current?.cancel();
45718
- delete document.body.dataset.readerFolding;
45719
46027
  };
45720
46028
  }, [
45721
46029
  open,
@@ -45883,20 +46191,23 @@ function(test) {
45883
46191
  const onScroll = () => {
45884
46192
  if (followFrame !== 0 || layoutDepth > 0) return;
45885
46193
  if (lastWrittenTop !== null && Math.abs(scroll.scrollTop - lastWrittenTop) < 1) return;
46194
+ const bottom = atBottom();
46195
+ pinned.current = bottom;
46196
+ if (!bottom) {
46197
+ cancelAnimationFrame(followFrame);
46198
+ followFrame = 0;
46199
+ scheduleCapture();
46200
+ }
45886
46201
  if (!following.current) {
45887
- if (atBottom()) {
46202
+ if (bottom) {
45888
46203
  following.current = true;
45889
46204
  setDetached(false);
45890
46205
  }
45891
46206
  return;
45892
46207
  }
45893
- if (lastWrittenTop !== null && scroll.scrollTop < lastWrittenTop - 1) {
46208
+ if (!bottom) {
45894
46209
  following.current = false;
45895
46210
  setDetached(true);
45896
- pinned.current = false;
45897
- cancelAnimationFrame(followFrame);
45898
- followFrame = 0;
45899
- scheduleCapture();
45900
46211
  }
45901
46212
  };
45902
46213
  const onWheel = (event) => {
@@ -46226,6 +46537,7 @@ function(test) {
46226
46537
  terminal: _deepseek_ai_dsh_client_ui_primitives.IconApiOutline14,
46227
46538
  search: _deepseek_ai_dsh_client_ui_primitives.IconSearchOutline16,
46228
46539
  web: _deepseek_ai_dsh_client_ui_primitives.IconSearchOutline16,
46540
+ code: _deepseek_ai_dsh_client_ui_primitives.IconApiOutline14,
46229
46541
  other: _deepseek_ai_dsh_client_ui_primitives.IconSparkle16
46230
46542
  };
46231
46543
  const number = new Intl.NumberFormat("zh-CN");
@@ -46327,24 +46639,20 @@ function(test) {
46327
46639
  }
46328
46640
  return files;
46329
46641
  }
46330
- function CustomToolWrapper({ Component, block, toolName, cwd, openFile }) {
46331
- const containerRef = (0, react.useRef)(null);
46332
- (0, react.useEffect)(() => {
46333
- const row = containerRef.current?.querySelector("[role=\"button\"][aria-expanded=\"false\"]");
46334
- if (row) row.click();
46335
- }, []);
46336
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
46337
- ref: containerRef,
46338
- "data-reader-tool-custom": true,
46339
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
46340
- block,
46341
- toolName,
46342
- cwd,
46343
- openFile
46344
- })
46642
+ function ResultView(props) {
46643
+ const { official, entry, model } = props;
46644
+ const fallback = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ResultFallback, { ...props });
46645
+ if (!official || !entry.block || model.name === "render_ui" || model.name === "show_widget") return fallback;
46646
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OfficialTool, {
46647
+ ...props,
46648
+ official,
46649
+ block: entry.block,
46650
+ toolName: model.name,
46651
+ cwd: props.cwd ?? model.cwd,
46652
+ fallback
46345
46653
  });
46346
46654
  }
46347
- function ResultView({ entry, model, phase, ...render }) {
46655
+ function ResultFallback({ entry, model, phase, ...render }) {
46348
46656
  if ((model.name === "render_ui" || model.name === "show_widget") && typeof model.args?.html === "string") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(McpAppFrame, {
46349
46657
  html: model.args.html,
46350
46658
  title: typeof model.args.title === "string" ? model.args.title : void 0,
@@ -46376,14 +46684,6 @@ function(test) {
46376
46684
  children: text
46377
46685
  })
46378
46686
  ] });
46379
- const CustomToolView = render.getToolView?.(model.name);
46380
- if (CustomToolView) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CustomToolWrapper, {
46381
- Component: CustomToolView,
46382
- block,
46383
- toolName: model.name,
46384
- cwd: model.cwd,
46385
- openFile: render.openFile
46386
- });
46387
46687
  if (model.category === "terminal") {
46388
46688
  const facts = executionFacts(block);
46389
46689
  const output = text.replace(/\n\[(?:exit code: \d+|killed by signal: [^\]\n]+)\]$/, "");
@@ -46484,6 +46784,26 @@ function(test) {
46484
46784
  children: "文件工具已返回。以下为提交的内容;完整返回记录可在「原始数据」查看。"
46485
46785
  }), generatedInput(model.content, model.target, false)] });
46486
46786
  const content = block.content;
46787
+ if (model.category === "code") {
46788
+ const output = content.filter((item) => item.type === "text").map((item) => item.text).join("\n");
46789
+ const facts = executionFacts(block);
46790
+ if (output.trim()) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
46791
+ "data-reader-tool-code": true,
46792
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.TerminalBlock, {
46793
+ command: model.command ?? model.name,
46794
+ cwd: model.cwd,
46795
+ output,
46796
+ exitCode: facts.exitCode,
46797
+ signal: facts.signal,
46798
+ maxLines: 18,
46799
+ labels: terminalBlockLabels
46800
+ })
46801
+ });
46802
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
46803
+ className: Reader_module_css_default.toolDetailNote,
46804
+ children: "代码已执行,没有可展示的输出。"
46805
+ });
46806
+ }
46487
46807
  if (content.some((item) => item.type === "text")) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
46488
46808
  className: Reader_module_css_default.toolDocument,
46489
46809
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Blocks, {
@@ -46773,7 +47093,7 @@ function(test) {
46773
47093
  })
46774
47094
  ]
46775
47095
  });
46776
- }, (previous, next) => previous.entry.callId === next.entry.callId && previous.entry.block === next.entry.block && previous.entry.draft === next.entry.draft && previous.entry.step === next.entry.step && previous.motion === next.motion && previous.turnClosed === next.turnClosed && previous.depth === next.depth && previous.onRead === next.onRead && previous.renderSlotChain === next.renderSlotChain && previous.loadImage === next.loadImage && previous.fillComposer === next.fillComposer && previous.getToolView === next.getToolView);
47096
+ }, (previous, next) => previous.entry.callId === next.entry.callId && previous.entry.block === next.entry.block && previous.entry.draft === next.entry.draft && previous.entry.step === next.entry.step && previous.motion === next.motion && previous.turnClosed === next.turnClosed && previous.depth === next.depth && previous.onRead === next.onRead && previous.renderSlotChain === next.renderSlotChain && previous.loadImage === next.loadImage && previous.fillComposer === next.fillComposer && previous.official === next.official && previous.cwd === next.cwd && previous.openFile === next.openFile);
46777
47097
  /** Rich media (images, MCP widgets) rendered outside the folded tool ledger. */
46778
47098
  function ToolMedia({ block, depth = 0, ...render }) {
46779
47099
  if (depth > 6) return null;
@@ -47132,7 +47452,7 @@ function(test) {
47132
47452
  }
47133
47453
  //#endregion
47134
47454
  //#region \0dshx-css-module:ContextBody.module.css.mjs
47135
- const css$3 = ".o5yUMW_text{color:var(--dsw-alias-label-secondary);font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.o5yUMW_fields{border-top:1px solid var(--dsw-alias-line-secondary);flex-direction:column;gap:2px;margin:8px 0 0;padding-top:8px;display:flex}.o5yUMW_field{gap:8px;min-width:0;display:flex}.o5yUMW_fieldKey{min-width:96px;color:var(--dsw-alias-label-caption);flex:none}.o5yUMW_fieldValue{min-width:0;color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;flex:auto;margin:0}.o5yUMW_files{flex-wrap:wrap;gap:4px 12px;margin:0 0 8px;padding:0;list-style:none;display:flex}.o5yUMW_file{align-items:baseline;gap:6px;min-width:0;display:flex}.o5yUMW_filePath{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere}.o5yUMW_fileAction{color:var(--dsw-alias-label-caption)}.o5yUMW_catalogNotice{color:var(--dsw-alias-label-caption);margin:0 0 6px}.o5yUMW_entries{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.o5yUMW_entry{gap:8px;min-width:0;display:flex}.o5yUMW_entryName{color:var(--dsw-alias-label-secondary);flex:none}.o5yUMW_entryDescription{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.o5yUMW_sections{flex-direction:column;gap:8px;margin:0;display:flex}.o5yUMW_section{flex-direction:column;gap:2px;min-width:0;display:flex}.o5yUMW_sectionName{color:var(--dsw-alias-label-caption)}.o5yUMW_sectionText{color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.o5yUMW_relaySender{color:var(--dsw-alias-label-caption);overflow-wrap:anywhere;margin:0 0 6px}.o5yUMW_recalls{flex-direction:column;gap:2px;margin:0 0 8px;padding:0;list-style:none;display:flex}.o5yUMW_recall{gap:8px;min-width:0;display:flex}.o5yUMW_recallLabel{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere}.o5yUMW_recallCounts{color:var(--dsw-alias-label-caption);flex:none}";
47455
+ const css$3 = ".pZuJGq_text{color:var(--dsw-alias-label-secondary);font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.pZuJGq_fields{border-top:1px solid var(--dsw-alias-line-secondary);flex-direction:column;gap:2px;margin:8px 0 0;padding-top:8px;display:flex}.pZuJGq_field{gap:8px;min-width:0;display:flex}.pZuJGq_fieldKey{min-width:96px;color:var(--dsw-alias-label-caption);flex:none}.pZuJGq_fieldValue{min-width:0;color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;flex:auto;margin:0}.pZuJGq_files{flex-wrap:wrap;gap:4px 12px;margin:0 0 8px;padding:0;list-style:none;display:flex}.pZuJGq_file{align-items:baseline;gap:6px;min-width:0;display:flex}.pZuJGq_filePath{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere}.pZuJGq_fileAction{color:var(--dsw-alias-label-caption)}.pZuJGq_catalogNotice{color:var(--dsw-alias-label-caption);margin:0 0 6px}.pZuJGq_entries{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.pZuJGq_entry{gap:8px;min-width:0;display:flex}.pZuJGq_entryName{color:var(--dsw-alias-label-secondary);flex:none}.pZuJGq_entryDescription{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.pZuJGq_sections{flex-direction:column;gap:8px;margin:0;display:flex}.pZuJGq_section{flex-direction:column;gap:2px;min-width:0;display:flex}.pZuJGq_sectionName{color:var(--dsw-alias-label-caption)}.pZuJGq_sectionText{color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.pZuJGq_relaySender{color:var(--dsw-alias-label-caption);overflow-wrap:anywhere;margin:0 0 6px}.pZuJGq_recalls{flex-direction:column;gap:2px;margin:0 0 8px;padding:0;list-style:none;display:flex}.pZuJGq_recall{gap:8px;min-width:0;display:flex}.pZuJGq_recallLabel{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere}.pZuJGq_recallCounts{color:var(--dsw-alias-label-caption);flex:none}";
47136
47456
  const tagId$3 = "dsh-better-display/ContextBody.module.css";
47137
47457
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
47138
47458
  const tag = document.createElement("style");
@@ -47142,29 +47462,29 @@ function(test) {
47142
47462
  document.head.appendChild(tag);
47143
47463
  }
47144
47464
  var ContextBody_module_css_default = {
47145
- "catalogNotice": "o5yUMW_catalogNotice",
47146
- "entries": "o5yUMW_entries",
47147
- "entry": "o5yUMW_entry",
47148
- "entryDescription": "o5yUMW_entryDescription",
47149
- "entryName": "o5yUMW_entryName",
47150
- "field": "o5yUMW_field",
47151
- "fieldKey": "o5yUMW_fieldKey",
47152
- "fields": "o5yUMW_fields",
47153
- "fieldValue": "o5yUMW_fieldValue",
47154
- "file": "o5yUMW_file",
47155
- "fileAction": "o5yUMW_fileAction",
47156
- "filePath": "o5yUMW_filePath",
47157
- "files": "o5yUMW_files",
47158
- "recall": "o5yUMW_recall",
47159
- "recallCounts": "o5yUMW_recallCounts",
47160
- "recallLabel": "o5yUMW_recallLabel",
47161
- "recalls": "o5yUMW_recalls",
47162
- "relaySender": "o5yUMW_relaySender",
47163
- "section": "o5yUMW_section",
47164
- "sectionName": "o5yUMW_sectionName",
47165
- "sections": "o5yUMW_sections",
47166
- "sectionText": "o5yUMW_sectionText",
47167
- "text": "o5yUMW_text"
47465
+ "catalogNotice": "pZuJGq_catalogNotice",
47466
+ "entries": "pZuJGq_entries",
47467
+ "entry": "pZuJGq_entry",
47468
+ "entryDescription": "pZuJGq_entryDescription",
47469
+ "entryName": "pZuJGq_entryName",
47470
+ "field": "pZuJGq_field",
47471
+ "fieldKey": "pZuJGq_fieldKey",
47472
+ "fields": "pZuJGq_fields",
47473
+ "fieldValue": "pZuJGq_fieldValue",
47474
+ "file": "pZuJGq_file",
47475
+ "fileAction": "pZuJGq_fileAction",
47476
+ "filePath": "pZuJGq_filePath",
47477
+ "files": "pZuJGq_files",
47478
+ "recall": "pZuJGq_recall",
47479
+ "recallCounts": "pZuJGq_recallCounts",
47480
+ "recallLabel": "pZuJGq_recallLabel",
47481
+ "recalls": "pZuJGq_recalls",
47482
+ "relaySender": "pZuJGq_relaySender",
47483
+ "section": "pZuJGq_section",
47484
+ "sectionName": "pZuJGq_sectionName",
47485
+ "sections": "pZuJGq_sections",
47486
+ "sectionText": "pZuJGq_sectionText",
47487
+ "text": "pZuJGq_text"
47168
47488
  };
47169
47489
  //#endregion
47170
47490
  //#region src/client/native/ContextBody.tsx
@@ -47689,7 +48009,7 @@ function(test) {
47689
48009
  }
47690
48010
  //#endregion
47691
48011
  //#region \0dshx-css-module:ContextInjectionRow.module.css.mjs
47692
- const css$2 = ".bmXE1W_root{min-width:0}.bmXE1W_root[data-open]{padding-bottom:4px}.bmXE1W_chevron{color:var(--dsw-alias-label-secondary)}.bmXE1W_sep{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.bmXE1W_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}.bmXE1W_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}.bmXE1W_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}";
48012
+ const css$2 = ".n1RLsG_root{min-width:0}.n1RLsG_root[data-open]{padding-bottom:4px}.n1RLsG_chevron{color:var(--dsw-alias-label-secondary)}.n1RLsG_sep{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.n1RLsG_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}.n1RLsG_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}.n1RLsG_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}";
47693
48013
  const tagId$2 = "dsh-better-display/ContextInjectionRow.module.css";
47694
48014
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
47695
48015
  const tag = document.createElement("style");
@@ -47699,12 +48019,12 @@ function(test) {
47699
48019
  document.head.appendChild(tag);
47700
48020
  }
47701
48021
  var ContextInjectionRow_module_css_default = {
47702
- "body": "bmXE1W_body",
47703
- "chevron": "bmXE1W_chevron",
47704
- "root": "bmXE1W_root",
47705
- "sep": "bmXE1W_sep",
47706
- "source": "bmXE1W_source",
47707
- "summary": "bmXE1W_summary"
48022
+ "body": "n1RLsG_body",
48023
+ "chevron": "n1RLsG_chevron",
48024
+ "root": "n1RLsG_root",
48025
+ "sep": "n1RLsG_sep",
48026
+ "source": "n1RLsG_source",
48027
+ "summary": "n1RLsG_summary"
47708
48028
  };
47709
48029
  //#endregion
47710
48030
  //#region src/client/native/ContextInjectionRow.tsx
@@ -47719,8 +48039,12 @@ function(test) {
47719
48039
  * @param props - Durable content, its projected producer role/name and form, and the locale seat.
47720
48040
  * @returns A collapsed context row with a bounded, form-specific body.
47721
48041
  */
47722
- function ContextInjectionRow({ content, source, provenance, form, t }) {
48042
+ function ContextInjectionRow({ content, source, provenance, producer, form, t }) {
47723
48043
  const [open, setOpen] = (0, react.useState)(false);
48044
+ const view = provenance ?? producer ?? {
48045
+ role: "inject",
48046
+ label: null
48047
+ };
47724
48048
  const { rendered, summary, body } = contextBody(form, {
47725
48049
  content,
47726
48050
  source,
@@ -47728,13 +48052,13 @@ function(test) {
47728
48052
  });
47729
48053
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
47730
48054
  className: ContextInjectionRow_module_css_default.root,
47731
- icon: provenance.role === "recall" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
48055
+ icon: view.role === "recall" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
47732
48056
  "data-context-recall-icon": true,
47733
48057
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ReferenceIcon, { kind: "session" })
47734
48058
  }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconBrowseOutline16, { size: 14 }),
47735
48059
  chevronClassName: ContextInjectionRow_module_css_default.chevron,
47736
- title: t(provenance.role === "recall" ? "message.contextRecall" : "message.contextInjection"),
47737
- collapsedContent: provenance.label === null ? void 0 : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
48060
+ title: t(view.role === "recall" ? "message.contextRecall" : "message.contextInjection"),
48061
+ collapsedContent: view.label === null ? void 0 : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
47738
48062
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
47739
48063
  className: ContextInjectionRow_module_css_default.sep,
47740
48064
  "aria-hidden": true
@@ -47742,7 +48066,7 @@ function(test) {
47742
48066
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
47743
48067
  className: ContextInjectionRow_module_css_default.source,
47744
48068
  "data-context-source": true,
47745
- children: provenance.label
48069
+ children: view.label
47746
48070
  }),
47747
48071
  summary !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
47748
48072
  className: ContextInjectionRow_module_css_default.sep,
@@ -47770,7 +48094,7 @@ function(test) {
47770
48094
  }
47771
48095
  //#endregion
47772
48096
  //#region \0dshx-css-module:TimelineRail.module.css.mjs
47773
- const css$1 = ".q_MLFG_slot{z-index:10;pointer-events:none;height:0;position:sticky;top:0}.q_MLFG_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%)}.q_MLFG_scroller{overscroll-behavior:contain;scrollbar-width:none;position:absolute;inset:0;overflow-y:auto}.q_MLFG_scroller::-webkit-scrollbar{display:none}.q_MLFG_fadeTop{-webkit-mask-image:linear-gradient(#0000 0,#000 24px 100%);mask-image:linear-gradient(#0000 0,#000 24px 100%)}.q_MLFG_fadeBottom{-webkit-mask-image:linear-gradient(#000 0 calc(100% - 24px),#0000 100%);mask-image:linear-gradient(#000 0 calc(100% - 24px),#0000 100%)}.q_MLFG_fadeTop.q_MLFG_fadeBottom{-webkit-mask-image:linear-gradient(#0000 0,#000 24px calc(100% - 24px),#0000 100%);mask-image:linear-gradient(#0000 0,#000 24px calc(100% - 24px),#0000 100%)}.q_MLFG_marks{height:var(--turn-natural-height);position:relative}.q_MLFG_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%)}.q_MLFG_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}.q_MLFG_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}.q_MLFG_markBusy .q_MLFG_tick{animation:1s ease-in-out infinite alternate q_MLFG_markBusyPulse}@keyframes q_MLFG_markBusyPulse{0%{opacity:.4;width:8px}to{opacity:1;width:18px}}.q_MLFG_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);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 q_MLFG_previewFadeIn;position:absolute;right:calc(100% + 10px);overflow:hidden;box-shadow:0 4px 18px #0000001f}@keyframes q_MLFG_previewFadeIn{0%{opacity:0;transform:translate(4px)}to{opacity:1;transform:translate(0)}}.q_MLFG_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}.q_MLFG_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){.q_MLFG_slot{display:none!important}}";
48097
+ const css$1 = ".a3auvq_slot{z-index:10;pointer-events:none;height:0;position:sticky;top:0}.a3auvq_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%)}.a3auvq_scroller{overscroll-behavior:contain;scrollbar-width:none;position:absolute;inset:0;overflow-y:auto}.a3auvq_scroller::-webkit-scrollbar{display:none}.a3auvq_fadeTop{-webkit-mask-image:linear-gradient(#0000 0,#000 24px 100%);mask-image:linear-gradient(#0000 0,#000 24px 100%)}.a3auvq_fadeBottom{-webkit-mask-image:linear-gradient(#000 0 calc(100% - 24px),#0000 100%);mask-image:linear-gradient(#000 0 calc(100% - 24px),#0000 100%)}.a3auvq_fadeTop.a3auvq_fadeBottom{-webkit-mask-image:linear-gradient(#0000 0,#000 24px calc(100% - 24px),#0000 100%);mask-image:linear-gradient(#0000 0,#000 24px calc(100% - 24px),#0000 100%)}.a3auvq_marks{height:var(--turn-natural-height);position:relative}.a3auvq_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%)}.a3auvq_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}.a3auvq_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}.a3auvq_markBusy .a3auvq_tick{animation:1s ease-in-out infinite alternate a3auvq_markBusyPulse}@keyframes a3auvq_markBusyPulse{0%{opacity:.4;width:8px}to{opacity:1;width:18px}}.a3auvq_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);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 a3auvq_previewFadeIn;position:absolute;right:calc(100% + 10px);overflow:hidden;box-shadow:0 4px 18px #0000001f}@keyframes a3auvq_previewFadeIn{0%{opacity:0;transform:translate(4px)}to{opacity:1;transform:translate(0)}}.a3auvq_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}.a3auvq_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){.a3auvq_slot{display:none!important}}";
47774
48098
  const tagId$1 = "dsh-better-display/TimelineRail.module.css";
47775
48099
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
47776
48100
  const tag = document.createElement("style");
@@ -47780,21 +48104,21 @@ function(test) {
47780
48104
  document.head.appendChild(tag);
47781
48105
  }
47782
48106
  var TimelineRail_module_css_default = {
47783
- "fadeBottom": "q_MLFG_fadeBottom",
47784
- "fadeTop": "q_MLFG_fadeTop",
47785
- "frame": "q_MLFG_frame",
47786
- "mark": "q_MLFG_mark",
47787
- "markBusy": "q_MLFG_markBusy",
47788
- "markBusyPulse": "q_MLFG_markBusyPulse",
47789
- "markPosition": "q_MLFG_markPosition",
47790
- "marks": "q_MLFG_marks",
47791
- "preview": "q_MLFG_preview",
47792
- "previewFadeIn": "q_MLFG_previewFadeIn",
47793
- "previewPrompt": "q_MLFG_previewPrompt",
47794
- "previewResponse": "q_MLFG_previewResponse",
47795
- "scroller": "q_MLFG_scroller",
47796
- "slot": "q_MLFG_slot",
47797
- "tick": "q_MLFG_tick"
48107
+ "fadeBottom": "a3auvq_fadeBottom",
48108
+ "fadeTop": "a3auvq_fadeTop",
48109
+ "frame": "a3auvq_frame",
48110
+ "mark": "a3auvq_mark",
48111
+ "markBusy": "a3auvq_markBusy",
48112
+ "markBusyPulse": "a3auvq_markBusyPulse",
48113
+ "markPosition": "a3auvq_markPosition",
48114
+ "marks": "a3auvq_marks",
48115
+ "preview": "a3auvq_preview",
48116
+ "previewFadeIn": "a3auvq_previewFadeIn",
48117
+ "previewPrompt": "a3auvq_previewPrompt",
48118
+ "previewResponse": "a3auvq_previewResponse",
48119
+ "scroller": "a3auvq_scroller",
48120
+ "slot": "a3auvq_slot",
48121
+ "tick": "a3auvq_tick"
47798
48122
  };
47799
48123
  //#endregion
47800
48124
  //#region src/client/TimelineRail.tsx
@@ -49128,7 +49452,11 @@ function(test) {
49128
49452
  const anchor = forkAnchorSeq([data.finalNode, { seq: render.forkSeq }]);
49129
49453
  return render.forkAt && anchor !== void 0 ? () => render.forkAt(anchor) : void 0;
49130
49454
  })(),
49131
- metrics: render.metrics
49455
+ metrics: render.metrics,
49456
+ extraActions: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OfficialActions, {
49457
+ official: render.official,
49458
+ messageId: data.finalNode?.messageId
49459
+ })
49132
49460
  })
49133
49461
  ]
49134
49462
  })
@@ -49223,6 +49551,15 @@ function(test) {
49223
49551
  role: "status",
49224
49552
  children: "模型请求未成功,正在等待重试。详情保留在执行过程中。"
49225
49553
  }) : null;
49554
+ if (isNode(node, "command") && render.official) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OfficialNode, {
49555
+ ...render,
49556
+ node,
49557
+ fallback: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonBlock, {
49558
+ label: "命令记录",
49559
+ payload: node.data,
49560
+ truncatedLabel: truncatedJsonLabel
49561
+ })
49562
+ });
49226
49563
  if (isNode(node, "command")) {
49227
49564
  if (node.data.outcome?.kind === "error") return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
49228
49565
  className: Reader_module_css_default.error,
@@ -49260,14 +49597,27 @@ function(test) {
49260
49597
  }
49261
49598
  if (isNode(node, "manual-compaction") || isNode(node, "compaction")) return null;
49262
49599
  if (node.kind === "context" || node.kind === "turn-tail" || node.kind === "system-prompt" || node.kind === "turn-process") return null;
49263
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
49264
- className: Reader_module_css_default.unknown,
49265
- "data-reader-anchor": true,
49266
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", { children: ["此记录类型暂未接入阅读页:", node.kind] }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonBlock, {
49267
- label: "查看原始记录",
49268
- payload: node.data,
49269
- truncatedLabel: truncatedJsonLabel
49270
- })]
49600
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OfficialNode, {
49601
+ ...render,
49602
+ node,
49603
+ fallback: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
49604
+ className: Reader_module_css_default.unknown,
49605
+ "data-reader-anchor": true,
49606
+ children: [
49607
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", { children: ["此记录类型暂未接入阅读页:", node.kind] }),
49608
+ render.official && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
49609
+ type: "button",
49610
+ className: Reader_module_css_default.textButton,
49611
+ onClick: () => render.official.openView("chat", node.key),
49612
+ children: "在对话中查看"
49613
+ }),
49614
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.JsonBlock, {
49615
+ label: "查看原始记录",
49616
+ payload: node.data,
49617
+ truncatedLabel: truncatedJsonLabel
49618
+ })
49619
+ ]
49620
+ })
49271
49621
  });
49272
49622
  });
49273
49623
  /**
@@ -49556,14 +49906,53 @@ function(test) {
49556
49906
  const holdingSelection = selectedProcessKeys.some((key) => flow.some((item) => item.key === key) || liveItems.some((item) => item.kind === "fold" ? item.key === key || item.steps.some((step) => step.key === key || "nodeKey" in step && step.nodeKey === key) : item.key === key || "nodeKey" in item.step && item.step.nodeKey === key));
49557
49907
  const expanded = !autoFold || holdingSelection || processExpanded(expansionChoice, boundary);
49558
49908
  const [foldOpenByKey, setFoldOpenByKey] = (0, react.useState)({});
49909
+ (0, react.useLayoutEffect)(() => {
49910
+ if (autoFold) setFoldOpenByKey((current) => Object.keys(current).length ? {} : current);
49911
+ }, [autoFold]);
49559
49912
  const deliverables = (0, react.useMemo)(() => getTurnDeliverables(turn, flow), [turn, flow]);
49560
- const fileMentions = (0, react.useMemo)(() => deliverables.length > 0 && props.openFile ? createProducedFileMentions(deliverables, props.openFile) : void 0, [deliverables, props.openFile]);
49561
49913
  const tailData = (0, react.useMemo)(() => {
49562
49914
  for (const key of group.keys) {
49563
49915
  const n = nodes.get(key);
49564
49916
  if (n && isNode(n, "turn-tail")) return n.data;
49565
49917
  }
49566
49918
  }, [group.keys, nodes]);
49919
+ const tailOwner = (0, react.useMemo)(() => turn && tailData ? {
49920
+ turn,
49921
+ seq: tailData.closing?.finalNode.seq ?? tailData.seq,
49922
+ openFile: props.openFile
49923
+ } : void 0, [
49924
+ turn,
49925
+ tailData,
49926
+ props.openFile
49927
+ ]);
49928
+ const fileMentions = (0, react.useMemo)(() => {
49929
+ const official = tailOwner ? props.officialFileMentions(tailOwner) : void 0;
49930
+ const reader = deliverables.length > 0 ? createProducedFileMentions(deliverables, props.openFile) : void 0;
49931
+ return official || reader ? { resolve: (value) => official?.resolve(value) ?? reader?.resolve(value) } : void 0;
49932
+ }, [
49933
+ tailOwner,
49934
+ props.officialFileMentions,
49935
+ deliverables,
49936
+ props.openFile
49937
+ ]);
49938
+ const official = (0, react.useMemo)(() => ({
49939
+ renderSlot: props.renderSlot,
49940
+ renderSlotChain: props.renderSlotChain,
49941
+ officialImageLoader: props.officialImageLoader,
49942
+ officialFileMentions: props.officialFileMentions,
49943
+ officialPreviewFile: props.officialPreviewFile,
49944
+ officialHost: props.officialHost,
49945
+ openView: props.openView
49946
+ }), [
49947
+ props.renderSlot,
49948
+ props.renderSlotChain,
49949
+ props.officialImageLoader,
49950
+ props.officialFileMentions,
49951
+ props.officialPreviewFile,
49952
+ props.officialHost,
49953
+ props.openView
49954
+ ]);
49955
+ const cwd = props.useSessions((state) => state.byId[props.sessionId]?.cwd);
49567
49956
  const runMs = turn?.start && turn?.end ? Math.max(0, turn.end.time - turn.start.time) : void 0;
49568
49957
  const metrics = (0, react.useMemo)(() => ({
49569
49958
  usage: tailData?.tokenUsage,
@@ -49613,7 +50002,8 @@ function(test) {
49613
50002
  forkSeq,
49614
50003
  fileMentions,
49615
50004
  metrics,
49616
- getToolView: props.getToolView
50005
+ official,
50006
+ cwd
49617
50007
  };
49618
50008
  const terminal = terminalLabel(boundary.reason);
49619
50009
  const hasTurnError = flow.some((item) => item.kind === "node" && nodes.get(item.nodeKey)?.kind === "turn-error");
@@ -49747,6 +50137,11 @@ function(test) {
49747
50137
  revealFile: props.revealFile,
49748
50138
  openMode
49749
50139
  }),
50140
+ boundary.status === "closed" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(BlockBoundary, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OfficialTail, {
50141
+ official,
50142
+ owner: tailOwner,
50143
+ produced: deliverables
50144
+ }) }),
49750
50145
  showTerminalNotice && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
49751
50146
  className: Reader_module_css_default.notice,
49752
50147
  "data-reader-terminal": true,
@@ -49775,6 +50170,12 @@ function(test) {
49775
50170
  }), () => props.openPrefs?.getSnapshot?.(), () => void 0);
49776
50171
  const storeAutoFold = props.useStore((state) => state.autoFold);
49777
50172
  const autoFold = prefsSnap?.autoFold ?? (prefsSnap?.foldIntensity !== void 0 ? prefsSnap.foldIntensity !== 0 : void 0) ?? storeAutoFold ?? true;
50173
+ const previousAutoFold = (0, react.useRef)(autoFold);
50174
+ (0, react.useLayoutEffect)(() => {
50175
+ const restored = autoFold && !previousAutoFold.current;
50176
+ previousAutoFold.current = autoFold;
50177
+ if (restored) props.actions.resetExpanded();
50178
+ }, [autoFold, props.actions]);
49778
50179
  const frostedGlass = frostedGlassOf(prefsSnap);
49779
50180
  const streamMotion = (0, react.useMemo)(() => ({
49780
50181
  enabled: motion,
@@ -49916,7 +50317,8 @@ function(test) {
49916
50317
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
49917
50318
  ref: root,
49918
50319
  className: Reader_module_css_default.root,
49919
- "data-dsh-better-display": "0.2.1",
50320
+ "data-reader-build": "0.3.0-preview.1",
50321
+ "data-dsh-better-display": "0.3.0-preview.1",
49920
50322
  "data-reader-wait-clock-version": "input-v1",
49921
50323
  "data-reader-wait-start": waitAnchor.time ?? void 0,
49922
50324
  "data-motion": motion ? "on" : "off",
@@ -50080,6 +50482,9 @@ function(test) {
50080
50482
  setExpanded: (draft, key, value) => {
50081
50483
  draft.expanded[key] = value;
50082
50484
  },
50485
+ resetExpanded: (draft) => {
50486
+ draft.expanded = {};
50487
+ },
50083
50488
  setMotion: (draft, value) => {
50084
50489
  draft.motion = value;
50085
50490
  },
@@ -50284,7 +50689,7 @@ function(test) {
50284
50689
  }
50285
50690
  //#endregion
50286
50691
  //#region \0dshx-css-module:SettingsSection.module.css.mjs
50287
- const css = ".nWGWPa_section{flex-direction:column;gap:28px;width:100%;max-width:720px;display:flex}.nWGWPa_row{border-bottom:.5px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:16px 0;display:flex}.nWGWPa_rowText{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:24px;display:flex}.nWGWPa_title{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}.nWGWPa_desc{color:var(--dsw-alias-label-tertiary);font-size:12px;font-weight:400;line-height:18px}.nWGWPa_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}.nWGWPa_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}.nWGWPa_switch[data-on]:after{transform:translate(16px)}.nWGWPa_switch[data-on]{background:var(--dsw-alias-state-business-primary)}.nWGWPa_block{flex-direction:column;gap:10px;display:flex}.nWGWPa_status{color:var(--dsw-alias-label-secondary);align-items:center;gap:8px;font-size:13px;line-height:20px;display:inline-flex}.nWGWPa_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}.nWGWPa_badge[data-ok]{color:#059669;background:#10b98124}.nWGWPa_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}.nWGWPa_roots{color:var(--dsw-alias-label-tertiary);margin:0;padding-left:18px;font-size:12px;line-height:18px}.nWGWPa_actions{gap:8px;display:flex}.nWGWPa_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}.nWGWPa_button:hover{background:var(--dsw-alias-interactive-bg-hover)}.nWGWPa_button:disabled{opacity:.6;cursor:default}.nWGWPa_segment{background:var(--dsw-alias-bg-module-platform);border-radius:10px;gap:2px;width:100%;margin-top:8px;padding:2px;display:flex}.nWGWPa_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}.nWGWPa_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)}.nWGWPa_slider{width:100%;accent-color:var(--dsw-alias-state-business-primary);margin:10px 0 0}";
50692
+ const css = ".YB9koa_section{flex-direction:column;gap:28px;width:100%;max-width:720px;display:flex}.YB9koa_row{border-bottom:.5px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:16px 0;display:flex}.YB9koa_rowText{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:24px;display:flex}.YB9koa_title{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}.YB9koa_desc{color:var(--dsw-alias-label-tertiary);font-size:12px;font-weight:400;line-height:18px}.YB9koa_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}.YB9koa_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}.YB9koa_switch[data-on]:after{transform:translate(16px)}.YB9koa_switch[data-on]{background:var(--dsw-alias-state-business-primary)}.YB9koa_block{flex-direction:column;gap:10px;display:flex}.YB9koa_status{color:var(--dsw-alias-label-secondary);align-items:center;gap:8px;font-size:13px;line-height:20px;display:inline-flex}.YB9koa_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}.YB9koa_badge[data-ok]{color:#059669;background:#10b98124}.YB9koa_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}.YB9koa_roots{color:var(--dsw-alias-label-tertiary);margin:0;padding-left:18px;font-size:12px;line-height:18px}.YB9koa_actions{gap:8px;display:flex}.YB9koa_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}.YB9koa_button:hover{background:var(--dsw-alias-interactive-bg-hover)}.YB9koa_button:disabled{opacity:.6;cursor:default}.YB9koa_segment{background:var(--dsw-alias-bg-module-platform);border-radius:10px;gap:2px;width:100%;margin-top:8px;padding:2px;display:flex}.YB9koa_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}.YB9koa_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)}.YB9koa_slider{width:100%;accent-color:var(--dsw-alias-state-business-primary);margin:10px 0 0}";
50288
50693
  const tagId = "dsh-better-display/SettingsSection.module.css";
50289
50694
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
50290
50695
  const tag = document.createElement("style");
@@ -50294,22 +50699,22 @@ function(test) {
50294
50699
  document.head.appendChild(tag);
50295
50700
  }
50296
50701
  var SettingsSection_module_css_default = {
50297
- "actions": "nWGWPa_actions",
50298
- "badge": "nWGWPa_badge",
50299
- "block": "nWGWPa_block",
50300
- "button": "nWGWPa_button",
50301
- "desc": "nWGWPa_desc",
50302
- "pre": "nWGWPa_pre",
50303
- "roots": "nWGWPa_roots",
50304
- "row": "nWGWPa_row",
50305
- "rowText": "nWGWPa_rowText",
50306
- "section": "nWGWPa_section",
50307
- "segment": "nWGWPa_segment",
50308
- "segmentStop": "nWGWPa_segmentStop",
50309
- "slider": "nWGWPa_slider",
50310
- "status": "nWGWPa_status",
50311
- "switch": "nWGWPa_switch",
50312
- "title": "nWGWPa_title"
50702
+ "actions": "YB9koa_actions",
50703
+ "badge": "YB9koa_badge",
50704
+ "block": "YB9koa_block",
50705
+ "button": "YB9koa_button",
50706
+ "desc": "YB9koa_desc",
50707
+ "pre": "YB9koa_pre",
50708
+ "roots": "YB9koa_roots",
50709
+ "row": "YB9koa_row",
50710
+ "rowText": "YB9koa_rowText",
50711
+ "section": "YB9koa_section",
50712
+ "segment": "YB9koa_segment",
50713
+ "segmentStop": "YB9koa_segmentStop",
50714
+ "slider": "YB9koa_slider",
50715
+ "status": "YB9koa_status",
50716
+ "switch": "YB9koa_switch",
50717
+ "title": "YB9koa_title"
50313
50718
  };
50314
50719
  //#endregion
50315
50720
  //#region src/client/SettingsSection.tsx
@@ -50544,6 +50949,7 @@ function(test) {
50544
50949
  "slots",
50545
50950
  "sessions",
50546
50951
  "conversation",
50952
+ "uiConversation",
50547
50953
  "remote",
50548
50954
  "remote.session"
50549
50955
  ];
@@ -50551,17 +50957,20 @@ function(test) {
50551
50957
  const store = createReaderStore();
50552
50958
  const prefs = store.create();
50553
50959
  installBetterDisplaySettings(ctx, prefs);
50554
- ctx.slots.inject("conversation.view", function* () {
50960
+ ctx.slots.inject("conversation.chat.node", function* () {
50555
50961
  yield ctx.slots.register({
50556
50962
  name: "conversation.view",
50557
50963
  id: "reader",
50558
50964
  order: -5,
50559
50965
  label: () => "阅读",
50560
50966
  locale: "chat",
50561
- children: { "dsh-better-display.block": {
50562
- kind: "chain",
50563
- scope: "session"
50564
- } },
50967
+ children: {
50968
+ "dsh-better-display.block": {
50969
+ kind: "chain",
50970
+ scope: "session"
50971
+ },
50972
+ ...officialChildren(ctx.slots)
50973
+ },
50565
50974
  store,
50566
50975
  inject: (sessionId) => {
50567
50976
  const session = () => {
@@ -50571,6 +50980,18 @@ function(test) {
50571
50980
  };
50572
50981
  return {
50573
50982
  openPrefs: prefs,
50983
+ officialImageLoader: Object.assign((attachment) => ctx.uiConversation.imageUrl(sessionId, attachment), { peek: (attachment) => ctx.uiConversation.peekImageUrl(sessionId, attachment) }),
50984
+ officialFileMentions: (owner) => ctx.get("chatFileMentions")?.forClosing(owner, sessionId),
50985
+ officialPreviewFile: (path) => {
50986
+ const cwd = ctx.sessions.list.getSnapshot().byId[sessionId]?.cwd;
50987
+ const sidebar = ctx.get("sidebarRight");
50988
+ if (!sidebar?.openResource) throw new Error("文件预览面板不可用。");
50989
+ sidebar.openResource((officialFileAddressFor ?? fileAddressFor)(sessionId, cwd, path));
50990
+ },
50991
+ officialHost: {
50992
+ getSnapshot: () => ctx.remote.$host,
50993
+ subscribe: (listener) => ctx.on("connection/reset", listener)
50994
+ },
50574
50995
  loadOlder: async () => {
50575
50996
  await session().loadOlder();
50576
50997
  },
@@ -50582,7 +51003,7 @@ function(test) {
50582
51003
  mediaType: receipt.value.attachment.mediaType
50583
51004
  };
50584
51005
  },
50585
- openFile: async (path) => {
51006
+ openFile: async (path, options) => {
50586
51007
  try {
50587
51008
  const cwd = ctx.sessions?.list?.getSnapshot?.()?.byId[sessionId]?.cwd;
50588
51009
  const sidebar = ctx.get?.("sidebarRight") ?? ctx.sidebarRight;
@@ -50596,7 +51017,7 @@ function(test) {
50596
51017
  await openWorkspacePath(ctx, absolutePath);
50597
51018
  },
50598
51019
  openSidebar: typeof sidebar?.openResource === "function" ? (address) => {
50599
- sidebar.openResource(address);
51020
+ sidebar.openResource(address, options?.line === void 0 ? void 0 : { params: { line: options.line } });
50600
51021
  } : void 0,
50601
51022
  fileAddressFor: officialFileAddressFor ?? fileAddressFor,
50602
51023
  warn: (message, extra) => {
@@ -50670,30 +51091,11 @@ function(test) {
50670
51091
  } catch {
50671
51092
  return false;
50672
51093
  }
50673
- },
50674
- getToolView: (toolName) => {
50675
- try {
50676
- const matches = (ctx.slots?.entriesOfSlot?.("tool.call.toolview") ?? []).filter((e) => {
50677
- const key = e?.options?.key ?? e?.key;
50678
- const comp = e?.component ?? e?.view ?? e?.render ?? (typeof e === "function" ? e : null);
50679
- return key === toolName && typeof comp === "function";
50680
- });
50681
- if (matches.length === 0) return null;
50682
- matches.sort((a, b) => {
50683
- return (a?.options?.priority ?? a?.priority ?? 0) - (b?.options?.priority ?? b?.priority ?? 0);
50684
- });
50685
- const best = matches[0];
50686
- const prio = best?.options?.priority ?? best?.priority ?? 0;
50687
- const comp = best?.component ?? best?.view ?? best?.render ?? (typeof best === "function" ? best : null);
50688
- if (prio < 0 || toolName !== "edit" && toolName !== "write") return comp;
50689
- return null;
50690
- } catch {
50691
- return null;
50692
- }
50693
51094
  }
50694
51095
  };
50695
51096
  }
50696
51097
  }, Reader);
51098
+ yield installOfficialSlots(ctx);
50697
51099
  yield installReaderEntry(ctx);
50698
51100
  });
50699
51101
  }