@researai/deepscientist 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/AGENTS.md +26 -0
  2. package/README.md +19 -179
  3. package/assets/connectors/lingzhu/openclaw-bridge/README.md +124 -0
  4. package/assets/connectors/lingzhu/openclaw-bridge/index.ts +162 -0
  5. package/assets/connectors/lingzhu/openclaw-bridge/openclaw.plugin.json +145 -0
  6. package/assets/connectors/lingzhu/openclaw-bridge/package.json +35 -0
  7. package/assets/connectors/lingzhu/openclaw-bridge/src/cli.ts +180 -0
  8. package/assets/connectors/lingzhu/openclaw-bridge/src/config.ts +196 -0
  9. package/assets/connectors/lingzhu/openclaw-bridge/src/debug-log.ts +111 -0
  10. package/assets/connectors/lingzhu/openclaw-bridge/src/events.ts +4 -0
  11. package/assets/connectors/lingzhu/openclaw-bridge/src/http-handler.ts +1133 -0
  12. package/assets/connectors/lingzhu/openclaw-bridge/src/image-cache.ts +75 -0
  13. package/assets/connectors/lingzhu/openclaw-bridge/src/lingzhu-tools.ts +246 -0
  14. package/assets/connectors/lingzhu/openclaw-bridge/src/transform.ts +541 -0
  15. package/assets/connectors/lingzhu/openclaw-bridge/src/types.ts +131 -0
  16. package/assets/connectors/lingzhu/openclaw-bridge/tsconfig.json +14 -0
  17. package/assets/connectors/lingzhu/openclaw.lingzhu.config.template.json +39 -0
  18. package/bin/ds.js +233 -53
  19. package/docs/en/00_QUICK_START.md +134 -0
  20. package/docs/en/01_SETTINGS_REFERENCE.md +1104 -0
  21. package/docs/en/02_START_RESEARCH_GUIDE.md +404 -0
  22. package/docs/en/03_QQ_CONNECTOR_GUIDE.md +325 -0
  23. package/docs/en/04_LINGZHU_CONNECTOR_GUIDE.md +216 -0
  24. package/docs/en/05_TUI_GUIDE.md +141 -0
  25. package/docs/en/06_RUNTIME_AND_CANVAS.md +679 -0
  26. package/docs/en/07_MEMORY_AND_MCP.md +253 -0
  27. package/docs/en/08_FIGURE_STYLE_GUIDE.md +97 -0
  28. package/docs/en/09_DOCTOR.md +108 -0
  29. package/docs/en/90_ARCHITECTURE.md +245 -0
  30. package/docs/en/91_DEVELOPMENT.md +195 -0
  31. package/docs/en/99_ACKNOWLEDGEMENTS.md +29 -0
  32. package/docs/zh/00_QUICK_START.md +134 -0
  33. package/docs/zh/01_SETTINGS_REFERENCE.md +1137 -0
  34. package/docs/zh/02_START_RESEARCH_GUIDE.md +414 -0
  35. package/docs/zh/03_QQ_CONNECTOR_GUIDE.md +324 -0
  36. package/docs/zh/04_LINGZHU_CONNECTOR_GUIDE.md +230 -0
  37. package/docs/zh/05_TUI_GUIDE.md +128 -0
  38. package/docs/zh/06_RUNTIME_AND_CANVAS.md +271 -0
  39. package/docs/zh/07_MEMORY_AND_MCP.md +235 -0
  40. package/docs/zh/08_FIGURE_STYLE_GUIDE.md +97 -0
  41. package/docs/zh/09_DOCTOR.md +112 -0
  42. package/docs/zh/99_ACKNOWLEDGEMENTS.md +29 -0
  43. package/install.sh +32 -8
  44. package/package.json +4 -2
  45. package/pyproject.toml +1 -1
  46. package/src/deepscientist/artifact/guidance.py +9 -2
  47. package/src/deepscientist/artifact/service.py +482 -22
  48. package/src/deepscientist/bash_exec/monitor.py +27 -5
  49. package/src/deepscientist/bash_exec/runtime.py +639 -0
  50. package/src/deepscientist/bash_exec/service.py +99 -16
  51. package/src/deepscientist/bridges/base.py +3 -0
  52. package/src/deepscientist/bridges/connectors.py +292 -13
  53. package/src/deepscientist/channels/qq.py +19 -2
  54. package/src/deepscientist/channels/relay.py +1 -0
  55. package/src/deepscientist/cli.py +32 -25
  56. package/src/deepscientist/config/models.py +28 -2
  57. package/src/deepscientist/config/service.py +201 -6
  58. package/src/deepscientist/connector_runtime.py +2 -0
  59. package/src/deepscientist/daemon/api/handlers.py +50 -5
  60. package/src/deepscientist/daemon/api/router.py +1 -0
  61. package/src/deepscientist/daemon/app.py +442 -15
  62. package/src/deepscientist/doctor.py +444 -0
  63. package/src/deepscientist/home.py +1 -0
  64. package/src/deepscientist/latex_runtime.py +17 -4
  65. package/src/deepscientist/lingzhu_support.py +182 -0
  66. package/src/deepscientist/mcp/server.py +49 -2
  67. package/src/deepscientist/prompts/builder.py +181 -58
  68. package/src/deepscientist/quest/layout.py +1 -0
  69. package/src/deepscientist/quest/service.py +63 -2
  70. package/src/deepscientist/quest/stage_views.py +19 -1
  71. package/src/deepscientist/runtime_tools/__init__.py +16 -0
  72. package/src/deepscientist/runtime_tools/builtins.py +19 -0
  73. package/src/deepscientist/runtime_tools/models.py +29 -0
  74. package/src/deepscientist/runtime_tools/registry.py +40 -0
  75. package/src/deepscientist/runtime_tools/service.py +59 -0
  76. package/src/deepscientist/runtime_tools/tinytex.py +25 -0
  77. package/src/deepscientist/tinytex.py +276 -0
  78. package/src/prompts/connectors/lingzhu.md +12 -0
  79. package/src/prompts/connectors/qq.md +121 -0
  80. package/src/prompts/system.md +177 -33
  81. package/src/skills/analysis-campaign/SKILL.md +22 -6
  82. package/src/skills/baseline/SKILL.md +5 -4
  83. package/src/skills/decision/SKILL.md +4 -3
  84. package/src/skills/experiment/SKILL.md +5 -4
  85. package/src/skills/finalize/SKILL.md +5 -4
  86. package/src/skills/idea/SKILL.md +5 -4
  87. package/src/skills/intake-audit/SKILL.md +277 -0
  88. package/src/skills/intake-audit/references/state-audit-template.md +41 -0
  89. package/src/skills/rebuttal/SKILL.md +407 -0
  90. package/src/skills/rebuttal/references/action-plan-template.md +63 -0
  91. package/src/skills/rebuttal/references/evidence-update-template.md +30 -0
  92. package/src/skills/rebuttal/references/response-letter-template.md +113 -0
  93. package/src/skills/rebuttal/references/review-matrix-template.md +55 -0
  94. package/src/skills/review/SKILL.md +293 -0
  95. package/src/skills/review/references/experiment-todo-template.md +29 -0
  96. package/src/skills/review/references/review-report-template.md +83 -0
  97. package/src/skills/review/references/revision-log-template.md +40 -0
  98. package/src/skills/scout/SKILL.md +5 -4
  99. package/src/skills/write/SKILL.md +7 -3
  100. package/src/tui/dist/components/WelcomePanel.js +17 -43
  101. package/src/tui/dist/components/messages/BashExecOperationMessage.js +3 -2
  102. package/src/tui/package.json +1 -1
  103. package/src/ui/dist/assets/{AiManusChatView-7v-dHngU.js → AiManusChatView-w5lF2Ttt.js} +109 -575
  104. package/src/ui/dist/assets/{AnalysisPlugin-B_Xmz-KE.js → AnalysisPlugin-DJOED79I.js} +1 -1
  105. package/src/ui/dist/assets/{AutoFigurePlugin-Cko-0tm1.js → AutoFigurePlugin-DaG61Y0M.js} +63 -8
  106. package/src/ui/dist/assets/{CliPlugin-BsU0ht7q.js → CliPlugin-CV4LqUB_.js} +43 -609
  107. package/src/ui/dist/assets/{CodeEditorPlugin-DcMMP0Rt.js → CodeEditorPlugin-DylfAea4.js} +8 -8
  108. package/src/ui/dist/assets/{CodeViewerPlugin-BqoQ5QyY.js → CodeViewerPlugin-F7saY0LM.js} +5 -5
  109. package/src/ui/dist/assets/{DocViewerPlugin-D7eHNhU6.js → DocViewerPlugin-COP0c7jf.js} +3 -3
  110. package/src/ui/dist/assets/{GitDiffViewerPlugin-DLJN42T5.js → GitDiffViewerPlugin-CAS05pT9.js} +1 -1
  111. package/src/ui/dist/assets/{ImageViewerPlugin-gJMV7MOu.js → ImageViewerPlugin-Bco1CN_w.js} +5 -6
  112. package/src/ui/dist/assets/{LabCopilotPanel-B857sfxP.js → LabCopilotPanel-CvMlCD99.js} +12 -15
  113. package/src/ui/dist/assets/LabPlugin-BYankkE4.js +2676 -0
  114. package/src/ui/dist/assets/LabPlugin-D9jVIo0A.css +2698 -0
  115. package/src/ui/dist/assets/{LatexPlugin-DWKEo-Wj.js → LatexPlugin-LDSMR-t-.js} +16 -16
  116. package/src/ui/dist/assets/{MarkdownViewerPlugin-DBzoEmhv.js → MarkdownViewerPlugin-B7o80jgm.js} +4 -4
  117. package/src/ui/dist/assets/{MarketplacePlugin-DoHc-8vo.js → MarketplacePlugin-CM6ZOcpC.js} +3 -3
  118. package/src/ui/dist/assets/{NotebookEditor-CKjKH-yS.js → NotebookEditor-Dc61cXmK.js} +3 -3
  119. package/src/ui/dist/assets/{PdfLoader-zFoL0VPo.js → PdfLoader-DWowuQwx.js} +1 -1
  120. package/src/ui/dist/assets/{PdfMarkdownPlugin-DXPaL9Nt.js → PdfMarkdownPlugin-BsJM1q_a.js} +3 -3
  121. package/src/ui/dist/assets/{PdfViewerPlugin-DhK8qCFp.js → PdfViewerPlugin-DB2eEEFQ.js} +10 -10
  122. package/src/ui/dist/assets/{SearchPlugin-CdSi6krf.js → SearchPlugin-CraThSvt.js} +1 -1
  123. package/src/ui/dist/assets/{Stepper-V-WiDQJl.js → Stepper-CgocRTPq.js} +1 -1
  124. package/src/ui/dist/assets/{TextViewerPlugin-hIs1Efiu.js → TextViewerPlugin-B1JGhKtd.js} +4 -4
  125. package/src/ui/dist/assets/{VNCViewer-DG8b0q2X.js → VNCViewer-CclFC7FM.js} +9 -10
  126. package/src/ui/dist/assets/{bibtex-HDac6fVW.js → bibtex-D3IKsMl7.js} +1 -1
  127. package/src/ui/dist/assets/{code-BnBeNxBc.js → code-BP37Xx0p.js} +1 -1
  128. package/src/ui/dist/assets/{file-content-IRQ3jHb8.js → file-content-BAJSu-9r.js} +1 -1
  129. package/src/ui/dist/assets/{file-diff-panel-DZoQ9I6r.js → file-diff-panel-DUGeCTuy.js} +1 -1
  130. package/src/ui/dist/assets/{file-socket-BMCdLc-P.js → file-socket-CXc1Ojf7.js} +1 -1
  131. package/src/ui/dist/assets/{file-utils-CltILB3w.js → file-utils-2J21jt7M.js} +1 -1
  132. package/src/ui/dist/assets/{image-Boe6ffhu.js → image-CMMmgvcn.js} +1 -1
  133. package/src/ui/dist/assets/{index-BlplpvE1.js → index-BaVumsQT.js} +2 -2
  134. package/src/ui/dist/assets/{index-DZqJ-qAM.js → index-CWgMgpow.js} +60 -2154
  135. package/src/ui/dist/assets/{index-DO43pFZP.js → index-DmwmJmbW.js} +6372 -8434
  136. package/src/ui/dist/assets/{index-Bq2bvfkl.css → index-KGt-z-dD.css} +225 -2920
  137. package/src/ui/dist/assets/{index-2Zf65FZt.js → index-s7aHnNQ4.js} +1 -1
  138. package/src/ui/dist/assets/{message-square-mUHn_Ssb.js → message-square-CQRfX0Am.js} +1 -1
  139. package/src/ui/dist/assets/{monaco-fe0arNEU.js → monaco-B4TbdsrF.js} +1 -1
  140. package/src/ui/dist/assets/{popover-D_7i19qU.js → popover-B8Rokodk.js} +1 -1
  141. package/src/ui/dist/assets/{project-sync-DyVGrU7H.js → project-sync-D_i96KH4.js} +2 -8
  142. package/src/ui/dist/assets/{sigma-BzazRyxQ.js → sigma-D12PnzCN.js} +1 -1
  143. package/src/ui/dist/assets/{tooltip-DN_yjHFH.js → tooltip-B6YrI4aJ.js} +1 -1
  144. package/src/ui/dist/assets/trash-Bc8jGp0V.js +32 -0
  145. package/src/ui/dist/assets/{useCliAccess-DV2L2Qxy.js → useCliAccess-mXVCYSZ-.js} +12 -42
  146. package/src/ui/dist/assets/{useFileDiffOverlay-DyTj-p_V.js → useFileDiffOverlay-Bg6b9H9K.js} +1 -1
  147. package/src/ui/dist/assets/{wrap-text-ozYHtUwq.js → wrap-text-Drh5GEnL.js} +1 -1
  148. package/src/ui/dist/assets/{zoom-out-BN9MUyCQ.js → zoom-out-CJj9DZLn.js} +1 -1
  149. package/src/ui/dist/index.html +2 -2
  150. package/assets/fonts/Inter-Variable.ttf +0 -0
  151. package/assets/fonts/NotoSerifSC-Regular-C94HN_ZN.ttf +0 -0
  152. package/assets/fonts/NunitoSans-Variable.ttf +0 -0
  153. package/assets/fonts/Satoshi-Medium-ByP-Zb-9.woff2 +0 -0
  154. package/assets/fonts/SourceSans3-Variable.ttf +0 -0
  155. package/assets/fonts/ds-fonts.css +0 -83
  156. package/src/ui/dist/assets/Inter-Variable-VF2RPR_K.ttf +0 -0
  157. package/src/ui/dist/assets/LabPlugin-bL7rpic8.js +0 -43
  158. package/src/ui/dist/assets/NotoSerifSC-Regular-C94HN_ZN-C94HN_ZN.ttf +0 -0
  159. package/src/ui/dist/assets/NunitoSans-Variable-B_ZymHAd.ttf +0 -0
  160. package/src/ui/dist/assets/Satoshi-Medium-ByP-Zb-9-GkA34YXu.woff2 +0 -0
  161. package/src/ui/dist/assets/SourceSans3-Variable-CD-WOsSK.ttf +0 -0
  162. package/src/ui/dist/assets/info-CcsK_htA.js +0 -18
  163. package/src/ui/dist/assets/user-plus-BusDx-hF.js +0 -79
@@ -1,9 +1,9 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/monaco-fe0arNEU.js","assets/index-DO43pFZP.js","assets/index-Bq2bvfkl.css","assets/yjs-DncrqiZ8.js","assets/function-B5QZkkHC.js","assets/awareness-C0NPR2Dj.js"])))=>i.map(i=>d[i]);
2
- import { o as createLucideIcon, q as useAuthStore, u as useI18n, a as useWorkspaceSurfaceStore, r as reactExports, f as useFileTreeStore, U as toFilesResourcePath, V as checkProjectAccess, W as listFiles, O as getFileContent, _ as __vitePreload, N as updateFileContent, Y as compileLatex, Z as listLatexBuilds, j as jsxRuntimeExports, b as cn, k as FileText, $ as Link2, L as LoaderCircle, S as Save, a0 as Play, T as TriangleAlert, a1 as Download, a2 as getLatexBuild, a3 as getLatexBuildPdfBlob, a4 as getLatexBuildLogText, h as dynamic } from './index-DO43pFZP.js';
3
- import { P as ProjectSyncClient } from './project-sync-DyVGrU7H.js';
4
- import { c as configureMonacoLoader } from './monaco-fe0arNEU.js';
5
- import { P as PAGE_DIMENSIONS, a as PdfLoader, b as PDF_CMAP_URL, c as PDF_WORKER_SRC, Z as ZOOM_LEVELS, d as PdfHighlighter } from './PdfLoader-zFoL0VPo.js';
6
- import { Z as ZoomOut, a as ZoomIn } from './zoom-out-BN9MUyCQ.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/monaco-B4TbdsrF.js","assets/index-DmwmJmbW.js","assets/index-KGt-z-dD.css","assets/yjs-DncrqiZ8.js","assets/function-B5QZkkHC.js","assets/awareness-C0NPR2Dj.js"])))=>i.map(i=>d[i]);
2
+ import { z as createLucideIcon, p as useAuthStore, u as useI18n, a as useWorkspaceSurfaceStore, r as reactExports, f as useFileTreeStore, P as toFilesResourcePath, Q as checkProjectAccess, U as listFiles, K as getFileContent, _ as __vitePreload, J as updateFileContent, V as compileLatex, W as listLatexBuilds, j as jsxRuntimeExports, b as cn, k as FileText, Y as Link2, L as LoaderCircle, S as Save, Z as Play, T as TriangleAlert, $ as Download, a0 as getLatexBuild, a1 as getLatexBuildPdfBlob, a2 as getLatexBuildLogText, h as dynamic } from './index-DmwmJmbW.js';
3
+ import { P as ProjectSyncClient } from './project-sync-D_i96KH4.js';
4
+ import { c as configureMonacoLoader } from './monaco-B4TbdsrF.js';
5
+ import { P as PAGE_DIMENSIONS, a as PdfLoader, b as PDF_CMAP_URL, c as PDF_WORKER_SRC, Z as ZOOM_LEVELS, d as PdfHighlighter } from './PdfLoader-DWowuQwx.js';
6
+ import { Z as ZoomOut, a as ZoomIn } from './zoom-out-CJj9DZLn.js';
7
7
 
8
8
  /**
9
9
  * @license lucide-react v0.511.0 - ISC
@@ -19,7 +19,7 @@ const __iconNode = [
19
19
  ];
20
20
  const AtSign = createLucideIcon("at-sign", __iconNode);
21
21
 
22
- const MonacoEditor = dynamic(() => __vitePreload(() => import('./monaco-fe0arNEU.js').then(n => n.i),true?__vite__mapDeps([0,1,2]):void 0), { });
22
+ const MonacoEditor = dynamic(() => __vitePreload(() => import('./monaco-B4TbdsrF.js').then(n => n.i),true?__vite__mapDeps([0,1,2]):void 0), { });
23
23
  configureMonacoLoader();
24
24
  function useIsDarkMode() {
25
25
  const [isDark, setIsDark] = reactExports.useState(() => {
@@ -160,7 +160,7 @@ function LatexPlugin({ context, tabId, setDirty, setTitle }) {
160
160
  const custom = context.customData ?? {};
161
161
  const projectId = custom.projectId ?? void 0;
162
162
  const latexFolderId = custom.latexFolderId ?? context.resourceId ?? void 0;
163
- const shareReadOnly = Boolean(custom.readOnly);
163
+ const viewReadOnly = Boolean(custom.readOnly);
164
164
  const user = useAuthStore((s) => s.user);
165
165
  const { t, language } = useI18n("latex");
166
166
  const updateWorkspaceTabState = useWorkspaceSurfaceStore((state) => state.updateTabState);
@@ -217,8 +217,8 @@ function LatexPlugin({ context, tabId, setDirty, setTitle }) {
217
217
  const citationIndexRef = reactExports.useRef([]);
218
218
  const labelIndexRef = reactExports.useRef([]);
219
219
  const latexCompletionDisposablesRef = reactExports.useRef([]);
220
- const effectiveReadOnly = shareReadOnly || roleWritable === false;
221
- const socketAuthMode = shareReadOnly ? "share" : "user";
220
+ const effectiveReadOnly = viewReadOnly || roleWritable === false;
221
+ const socketAuthMode = "user";
222
222
  const isBibFile = activeFileName.toLowerCase().endsWith(".bib");
223
223
  reactExports.useEffect(() => {
224
224
  const activeFileMeta = files.find((file) => file.id === activeFileId) ?? files.find((file) => file.name === activeFileName) ?? null;
@@ -251,7 +251,7 @@ function LatexPlugin({ context, tabId, setDirty, setTitle }) {
251
251
  }, [context.resourceName, setTitle, t]);
252
252
  reactExports.useEffect(() => {
253
253
  if (!projectId) return;
254
- if (shareReadOnly) {
254
+ if (viewReadOnly) {
255
255
  setRoleWritable(null);
256
256
  return;
257
257
  }
@@ -270,7 +270,7 @@ function LatexPlugin({ context, tabId, setDirty, setTitle }) {
270
270
  return () => {
271
271
  cancelled = true;
272
272
  };
273
- }, [projectId, shareReadOnly]);
273
+ }, [projectId, viewReadOnly]);
274
274
  reactExports.useEffect(() => {
275
275
  if (!projectId || !latexFolderId) return;
276
276
  let cancelled = false;
@@ -863,7 +863,7 @@ function LatexPlugin({ context, tabId, setDirty, setTitle }) {
863
863
  const compile = reactExports.useCallback(
864
864
  async (opts) => {
865
865
  if (!projectId || !latexFolderId) return;
866
- if (shareReadOnly) return;
866
+ if (viewReadOnly) return;
867
867
  if (isDirty && !effectiveReadOnly) {
868
868
  const saved = await save();
869
869
  if (!saved) return;
@@ -887,7 +887,7 @@ function LatexPlugin({ context, tabId, setDirty, setTitle }) {
887
887
  setBuildStatus("error");
888
888
  }
889
889
  },
890
- [compiler, effectiveReadOnly, isDirty, latexFolderId, projectId, save, shareReadOnly, t]
890
+ [compiler, effectiveReadOnly, isDirty, latexFolderId, projectId, save, t, viewReadOnly]
891
891
  );
892
892
  reactExports.useEffect(() => {
893
893
  if (!projectId || !latexFolderId) return;
@@ -1486,14 +1486,14 @@ function LatexPlugin({ context, tabId, setDirty, setTitle }) {
1486
1486
  {
1487
1487
  type: "button",
1488
1488
  onClick: () => void compile({ auto: false }),
1489
- disabled: shareReadOnly || saveState === "saving" || buildStatus === "queued" || buildStatus === "running",
1489
+ disabled: viewReadOnly || saveState === "saving" || buildStatus === "queued" || buildStatus === "running",
1490
1490
  className: cn(
1491
1491
  "h-8 px-3 rounded-lg text-sm font-medium border",
1492
1492
  "bg-[#8FA3B8]/14 border-[#8FA3B8]/28 text-[#405267] hover:bg-[#8FA3B8]/20",
1493
1493
  "dark:bg-[#8FA3B8]/14 dark:border-[#8FA3B8]/22 dark:text-[#dbe6ef] dark:hover:bg-[#8FA3B8]/20",
1494
1494
  "disabled:opacity-50 disabled:cursor-not-allowed"
1495
1495
  ),
1496
- title: shareReadOnly ? t("compile_disabled_shared") : isDirty && !effectiveReadOnly ? t("button_save_and_compile") : t("button_compile"),
1496
+ title: viewReadOnly ? t("compile_disabled_read_only") : isDirty && !effectiveReadOnly ? t("button_save_and_compile") : t("button_compile"),
1497
1497
  children: buildStatus === "queued" || buildStatus === "running" ? /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "flex items-center gap-2", children: [
1498
1498
  /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "h-4 w-4 animate-spin" }),
1499
1499
  t("button_compiling")
@@ -1,6 +1,6 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DO43pFZP.js","assets/index-Bq2bvfkl.css"])))=>i.map(i=>d[i]);
2
- import { u as useI18n, a as useWorkspaceSurfaceStore, r as reactExports, R as React, P as getQuestMarkdownContextFromFileId, c as copyToClipboard, j as jsxRuntimeExports, L as LoaderCircle, C as CircleAlert, Q as MARKDOWN_VIEWER_STYLES, k as FileText, E as Eye, b as cn, d as Check, e as Copy, M as MarkdownRenderer, _ as __vitePreload } from './index-DO43pFZP.js';
3
- import { C as Code } from './code-BnBeNxBc.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DmwmJmbW.js","assets/index-KGt-z-dD.css"])))=>i.map(i=>d[i]);
2
+ import { u as useI18n, a as useWorkspaceSurfaceStore, r as reactExports, R as React, N as getQuestMarkdownContextFromFileId, c as copyToClipboard, j as jsxRuntimeExports, L as LoaderCircle, C as CircleAlert, O as MARKDOWN_VIEWER_STYLES, k as FileText, E as Eye, b as cn, d as Check, e as Copy, M as MarkdownRenderer, _ as __vitePreload } from './index-DmwmJmbW.js';
3
+ import { C as Code } from './code-BP37Xx0p.js';
4
4
 
5
5
  function isMdxDocument(fileName) {
6
6
  if (!fileName) return false;
@@ -217,7 +217,7 @@ function MarkdownViewerPlugin({
217
217
  setLoading(false);
218
218
  return;
219
219
  }
220
- const { getFileContent } = await __vitePreload(async () => { const { getFileContent } = await import('./index-DO43pFZP.js').then(n => n.eA);return { getFileContent }},true?__vite__mapDeps([0,1]):void 0);
220
+ const { getFileContent } = await __vitePreload(async () => { const { getFileContent } = await import('./index-DmwmJmbW.js').then(n => n.eh);return { getFileContent }},true?__vite__mapDeps([0,1]):void 0);
221
221
  const text = await getFileContent(context.resourceId);
222
222
  setContent(text);
223
223
  } catch (err) {
@@ -1,6 +1,6 @@
1
- import { o as createLucideIcon, r as reactExports, a8 as useNavigate, v as useTabsStore, a9 as useOpenFile, f as useFileTreeStore, z as BUILTIN_PLUGINS, j as jsxRuntimeExports, l as Search, H as Sparkles, aa as Terminal, ab as Settings, ac as Puzzle, ad as BookOpen, k as FileText, ae as FileCode2, b as cn } from './index-DO43pFZP.js';
2
- import { S as Sigma } from './sigma-BzazRyxQ.js';
3
- import { I as Image } from './image-Boe6ffhu.js';
1
+ import { z as createLucideIcon, r as reactExports, a5 as useNavigate, t as useTabsStore, a6 as useOpenFile, f as useFileTreeStore, y as BUILTIN_PLUGINS, j as jsxRuntimeExports, l as Search, D as Sparkles, a7 as Terminal, a8 as Settings, a9 as Puzzle, aa as BookOpen, k as FileText, ab as FileCode2, b as cn } from './index-DmwmJmbW.js';
2
+ import { S as Sigma } from './sigma-D12PnzCN.js';
3
+ import { I as Image } from './image-CMMmgvcn.js';
4
4
 
5
5
  /**
6
6
  * @license lucide-react v0.511.0 - ISC
@@ -1,4 +1,4 @@
1
- import { R as React, r as reactExports, aM as reactDomExports, ep as ReactDOM, K as create, j as jsxRuntimeExports, eq as createSlot, ao as useId, er as Root, es as Portal, et as Overlay, eu as Content, al as composeRefs, bO as getDefaultExportFromCjs$2, ev as clsx, d5 as shimExports$1, ew as katex, ex as Slot, t as resolveApiBaseUrl, bx as uploadFileAuto, ey as nanoid, ez as cx } from './index-DO43pFZP.js';
1
+ import { R as React, r as reactExports, aK as reactDomExports, e5 as ReactDOM, I as create, j as jsxRuntimeExports, e6 as createSlot, am as useId, e7 as Root, e8 as Portal, e9 as Overlay, ea as Content, aj as composeRefs, ci as getDefaultExportFromCjs$2, eb as clsx, ec as shimExports$1, ed as katex, ee as Slot, q as resolveApiBaseUrl, b_ as uploadFileAuto, ef as nanoid, eg as cx } from './index-DmwmJmbW.js';
2
2
 
3
3
  // ::- Persistent data structure representing an ordered mapping from
4
4
  // strings to values, with some convenient update methods.
@@ -81833,7 +81833,7 @@ function resolveNotebookAssetUrl(src) {
81833
81833
  if (/^[a-z][a-z0-9+.-]*:/i.test(src)) return src;
81834
81834
  if (src.startsWith("//")) return src;
81835
81835
  const base = src.startsWith("/api/") ? `${getApiBaseUrl()}${src}` : src;
81836
- const token = typeof window !== "undefined" ? window.sessionStorage.getItem("ds_share_session_token") || window.localStorage.getItem("ds_access_token") : null;
81836
+ const token = typeof window !== "undefined" ? window.localStorage.getItem("ds_access_token") : null;
81837
81837
  if (!token) return base;
81838
81838
  if (base.includes("token=")) return base;
81839
81839
  const join = base.includes("?") ? "&" : "?";
@@ -84870,4 +84870,4 @@ function setEditorMarkdown(editor, markdown) {
84870
84870
  editor.commands.setContent(DEFAULT_DOC, false);
84871
84871
  }
84872
84872
 
84873
- export { AllSelection as A, B, Extension as E, Fragment as F, G, I, J, K, NodeSelection as N, O, PluginKey as P, Slice as S, TextSelection as T, U, Plugin as a, P as b, Primitive as c, defaultExtensions as d, uploadNotebookAsset as e, findParentNodeClosestToPos as f, getEditorMarkdown as g, T as h, S as i, ce as j, isSupportedNotebookAsset as k, le as l, me as m, q, resolveNotebookAssetUrl as r, setEditorMarkdown as s, useCurrentEditor as u, ve as v, w };
84873
+ export { AllSelection as A, B, Extension as E, Fragment as F, G, I, J, K, NodeSelection as N, O, PluginKey as P, Slice as S, TextSelection as T, U, Plugin as a, P as b, uploadNotebookAsset as c, defaultExtensions as d, T as e, findParentNodeClosestToPos as f, getEditorMarkdown as g, S as h, ce as i, isSupportedNotebookAsset as j, le as l, me as m, q, resolveNotebookAssetUrl as r, setEditorMarkdown as s, useCurrentEditor as u, ve as v, w };
@@ -1,4 +1,4 @@
1
- import { j as jsxRuntimeExports, r as reactExports, R as React$1, _ as __vitePreload, bM as createRoot, bN as getAugmentedNamespace, aM as reactDomExports, bO as getDefaultExportFromCjs } from './index-DO43pFZP.js';
1
+ import { j as jsxRuntimeExports, r as reactExports, R as React$1, _ as __vitePreload, cg as createRoot, ch as getAugmentedNamespace, aK as reactDomExports, ci as getDefaultExportFromCjs } from './index-DmwmJmbW.js';
2
2
 
3
3
  const PAGE_DIMENSIONS = {
4
4
  /** A4 width in points */
@@ -1,6 +1,6 @@
1
- import { v as useTabsStore, a as useWorkspaceSurfaceStore, w as useToast, x as useArxivStore, r as reactExports, c as copyToClipboard, y as apiClient, z as BUILTIN_PLUGINS, j as jsxRuntimeExports, k as FileText, b as cn, g as RefreshCw, M as MarkdownRenderer } from './index-DO43pFZP.js';
2
- import { d as defaultExtensions, s as setEditorMarkdown, U, I, r as resolveNotebookAssetUrl } from './NotebookEditor-CKjKH-yS.js';
3
- import { g as generateBibTeX, I as InfoTriangleIcon, A as ArxivInfoModal } from './bibtex-HDac6fVW.js';
1
+ import { t as useTabsStore, a as useWorkspaceSurfaceStore, v as useToast, w as useArxivStore, r as reactExports, c as copyToClipboard, x as apiClient, y as BUILTIN_PLUGINS, j as jsxRuntimeExports, k as FileText, b as cn, g as RefreshCw, M as MarkdownRenderer } from './index-DmwmJmbW.js';
2
+ import { d as defaultExtensions, s as setEditorMarkdown, U, I, r as resolveNotebookAssetUrl } from './NotebookEditor-Dc61cXmK.js';
3
+ import { g as generateBibTeX, I as InfoTriangleIcon, A as ArxivInfoModal } from './bibtex-D3IKsMl7.js';
4
4
 
5
5
  function rewriteMarkdownImages(markdown, fileId) {
6
6
  if (!markdown) return markdown;
@@ -1,12 +1,12 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DO43pFZP.js","assets/index-Bq2bvfkl.css"])))=>i.map(i=>d[i]);
2
- import { o as createLucideIcon, r as reactExports, u as useI18n, j as jsxRuntimeExports, a1 as Download, b as cn, k as FileText, l as Search, X, m as ChevronUp, n as ChevronDown, K as create, y as apiClient, aO as useQueryClient, ai as useQuery, bi as useMutation, bj as Card, a6 as Button, bk as DropdownMenu, bl as DropdownMenuTrigger, bm as DropdownMenuContent, bn as DropdownMenuLabel, bo as DropdownMenuItem, bp as SegmentedControl, bq as CircleHelp, br as Textarea, i as isCliFileId, v as useTabsStore, f as useFileTreeStore, a as useWorkspaceSurfaceStore, w as useToast, x as useArxivStore, q as useAuthStore, c as copyToClipboard, U as toFilesResourcePath, z as BUILTIN_PLUGINS, bs as getFile, bt as listProjectMembers, _ as __vitePreload, H as Sparkles, T as TriangleAlert, bu as DropdownMenuRadioGroup, bv as DropdownMenuRadioItem, bw as MarkdownPreview } from './index-DO43pFZP.js';
3
- import { a as acquireFileSocket } from './file-socket-BMCdLc-P.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DmwmJmbW.js","assets/index-KGt-z-dD.css"])))=>i.map(i=>d[i]);
2
+ import { z as createLucideIcon, r as reactExports, u as useI18n, j as jsxRuntimeExports, $ as Download, b as cn, k as FileText, l as Search, X, m as ChevronUp, n as ChevronDown, I as create, x as apiClient, aM as useQueryClient, af as useQuery, bM as useMutation, bN as Card, a3 as Button, bO as DropdownMenu, bP as DropdownMenuTrigger, bQ as DropdownMenuContent, bR as DropdownMenuLabel, bS as DropdownMenuItem, bT as SegmentedControl, bp as CircleHelp, bU as Textarea, i as isCliFileId, t as useTabsStore, f as useFileTreeStore, a as useWorkspaceSurfaceStore, v as useToast, w as useArxivStore, p as useAuthStore, c as copyToClipboard, P as toFilesResourcePath, y as BUILTIN_PLUGINS, bV as getFile, bW as listProjectMembers, _ as __vitePreload, D as Sparkles, T as TriangleAlert, bX as DropdownMenuRadioGroup, bY as DropdownMenuRadioItem, bZ as MarkdownPreview } from './index-DmwmJmbW.js';
3
+ import { a as acquireFileSocket } from './file-socket-CXc1Ojf7.js';
4
4
  import { i as isPdfEffectHandled, m as markPdfEffectHandled, c as consumePdfEffects } from './pdf-effect-queue-DSw_D3RV.js';
5
- import { I as InfoTriangleIcon, g as generateBibTeX, A as ArxivInfoModal } from './bibtex-HDac6fVW.js';
6
- import { Z as ZOOM_LEVELS, R as Rnd, g as getPageFromElement, a as PdfLoader, b as PDF_CMAP_URL, c as PDF_WORKER_SRC, d as PdfHighlighter } from './PdfLoader-zFoL0VPo.js';
7
- import { M as MessageSquare } from './message-square-mUHn_Ssb.js';
8
- import { Z as ZoomOut, a as ZoomIn } from './zoom-out-BN9MUyCQ.js';
9
- import { S as SquareCheckBig } from './index-2Zf65FZt.js';
5
+ import { I as InfoTriangleIcon, g as generateBibTeX, A as ArxivInfoModal } from './bibtex-D3IKsMl7.js';
6
+ import { Z as ZOOM_LEVELS, R as Rnd, g as getPageFromElement, a as PdfLoader, b as PDF_CMAP_URL, c as PDF_WORKER_SRC, d as PdfHighlighter } from './PdfLoader-DWowuQwx.js';
7
+ import { M as MessageSquare } from './message-square-CQRfX0Am.js';
8
+ import { Z as ZoomOut, a as ZoomIn } from './zoom-out-CJj9DZLn.js';
9
+ import { S as SquareCheckBig } from './index-s7aHnNQ4.js';
10
10
 
11
11
  /**
12
12
  * @license lucide-react v0.511.0 - ISC
@@ -2456,7 +2456,7 @@ function PdfViewerPlugin({
2456
2456
  setCliPdfError(null);
2457
2457
  const loadCliPdf = async () => {
2458
2458
  try {
2459
- const { createFileObjectUrl } = await __vitePreload(async () => { const { createFileObjectUrl } = await import('./index-DO43pFZP.js').then(n => n.eA);return { createFileObjectUrl }},true?__vite__mapDeps([0,1]):void 0);
2459
+ const { createFileObjectUrl } = await __vitePreload(async () => { const { createFileObjectUrl } = await import('./index-DmwmJmbW.js').then(n => n.eh);return { createFileObjectUrl }},true?__vite__mapDeps([0,1]):void 0);
2460
2460
  objectUrl = await createFileObjectUrl(fileId);
2461
2461
  if (cancelled) {
2462
2462
  URL.revokeObjectURL(objectUrl);
@@ -2877,7 +2877,7 @@ function PdfViewerPlugin({
2877
2877
  return;
2878
2878
  }
2879
2879
  (async () => {
2880
- const { downloadFileById } = await __vitePreload(async () => { const { downloadFileById } = await import('./index-DO43pFZP.js').then(n => n.eA);return { downloadFileById }},true?__vite__mapDeps([0,1]):void 0);
2880
+ const { downloadFileById } = await __vitePreload(async () => { const { downloadFileById } = await import('./index-DmwmJmbW.js').then(n => n.eh);return { downloadFileById }},true?__vite__mapDeps([0,1]):void 0);
2881
2881
  await downloadFileById(fileId, fileName);
2882
2882
  })();
2883
2883
  }, [fileId, fileName, pdfUrl]);
@@ -1,4 +1,4 @@
1
- import { o as createLucideIcon, u as useI18n, r as reactExports, f as useFileTreeStore, v as useTabsStore, aC as useLabCopilotStore, a9 as useOpenFile, aD as listLabAgents, aE as listLabQuests, aF as searchFiles, aG as searchLabQuest, z as BUILTIN_PLUGINS, aH as resolveAgentDisplayName, aI as resolveAgentMentionLabel, aJ as resolveQuestLabel, aK as formatRelativeTime, j as jsxRuntimeExports, l as Search, X, b as cn, aL as FileIcon } from './index-DO43pFZP.js';
1
+ import { z as createLucideIcon, u as useI18n, r as reactExports, f as useFileTreeStore, t as useTabsStore, aA as useLabCopilotStore, a6 as useOpenFile, aB as listLabAgents, aC as listLabQuests, aD as searchFiles, aE as searchLabQuest, y as BUILTIN_PLUGINS, aF as resolveAgentDisplayName, aG as resolveAgentMentionLabel, aH as resolveQuestLabel, aI as formatRelativeTime, j as jsxRuntimeExports, l as Search, X, b as cn, aJ as FileIcon } from './index-DmwmJmbW.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,4 +1,4 @@
1
- import { o as createLucideIcon, r as reactExports, j as jsxRuntimeExports, d as Check, b as cn, a6 as Button } from './index-DO43pFZP.js';
1
+ import { z as createLucideIcon, r as reactExports, j as jsxRuntimeExports, d as Check, b as cn, a3 as Button } from './index-DmwmJmbW.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,7 +1,7 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DO43pFZP.js","assets/index-Bq2bvfkl.css"])))=>i.map(i=>d[i]);
2
- import { r as reactExports, c as copyToClipboard, j as jsxRuntimeExports, L as LoaderCircle, T as TriangleAlert, k as FileText, l as Search, b as cn, d as Check, e as Copy, m as ChevronUp, n as ChevronDown, X, _ as __vitePreload } from './index-DO43pFZP.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DmwmJmbW.js","assets/index-KGt-z-dD.css"])))=>i.map(i=>d[i]);
2
+ import { r as reactExports, c as copyToClipboard, j as jsxRuntimeExports, L as LoaderCircle, T as TriangleAlert, k as FileText, l as Search, b as cn, d as Check, e as Copy, m as ChevronUp, n as ChevronDown, X, _ as __vitePreload } from './index-DmwmJmbW.js';
3
3
  import { c as consumeFileJumpEffects } from './file-jump-queue-r5XKgJEV.js';
4
- import { H as Hash, W as WrapText } from './wrap-text-ozYHtUwq.js';
4
+ import { H as Hash, W as WrapText } from './wrap-text-Drh5GEnL.js';
5
5
 
6
6
  const LARGE_FILE_THRESHOLD = 1024 * 1024;
7
7
  const MAX_RENDERED_LINES = 1e4;
@@ -44,7 +44,7 @@ function TextViewerPlugin({
44
44
  setLoading(false);
45
45
  return;
46
46
  }
47
- const { getFileContent } = await __vitePreload(async () => { const { getFileContent } = await import('./index-DO43pFZP.js').then(n => n.eA);return { getFileContent }},true?__vite__mapDeps([0,1]):void 0);
47
+ const { getFileContent } = await __vitePreload(async () => { const { getFileContent } = await import('./index-DmwmJmbW.js').then(n => n.eh);return { getFileContent }},true?__vite__mapDeps([0,1]):void 0);
48
48
  const text = await getFileContent(context.resourceId);
49
49
  setContent(text);
50
50
  setFileSize(text.length);
@@ -1,15 +1,14 @@
1
- import { bO as getDefaultExportFromCjs, r as reactExports, j as jsxRuntimeExports } from './index-DO43pFZP.js';
2
- import { g as getVncUrl } from './AiManusChatView-7v-dHngU.js';
3
- import './file-content-IRQ3jHb8.js';
4
- import './file-utils-CltILB3w.js';
1
+ import { ci as getDefaultExportFromCjs, r as reactExports, j as jsxRuntimeExports } from './index-DmwmJmbW.js';
2
+ import { g as getVncUrl } from './AiManusChatView-w5lF2Ttt.js';
3
+ import './file-content-BAJSu-9r.js';
4
+ import './file-utils-2J21jt7M.js';
5
5
  import './file-jump-queue-r5XKgJEV.js';
6
6
  import './pdf-effect-queue-DSw_D3RV.js';
7
- import './file-diff-panel-DZoQ9I6r.js';
8
- import './user-plus-BusDx-hF.js';
9
- import './message-square-mUHn_Ssb.js';
10
- import './NotebookEditor-CKjKH-yS.js';
11
- import './tooltip-DN_yjHFH.js';
12
- import './info-CcsK_htA.js';
7
+ import './file-diff-panel-DUGeCTuy.js';
8
+ import './message-square-CQRfX0Am.js';
9
+ import './NotebookEditor-Dc61cXmK.js';
10
+ import './tooltip-B6YrI4aJ.js';
11
+ import './trash-Bc8jGp0V.js';
13
12
 
14
13
  var rfb = {};
15
14
 
@@ -1,4 +1,4 @@
1
- import { o as createLucideIcon, j as jsxRuntimeExports, af as Modal, L as LoaderCircle, b as cn, C as CircleAlert, ag as ModalFooter, ah as ExternalLink } from './index-DO43pFZP.js';
1
+ import { z as createLucideIcon, j as jsxRuntimeExports, ac as Modal, L as LoaderCircle, b as cn, C as CircleAlert, ad as ModalFooter, ae as ExternalLink } from './index-DmwmJmbW.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,4 +1,4 @@
1
- import { o as createLucideIcon } from './index-DO43pFZP.js';
1
+ import { z as createLucideIcon } from './index-DmwmJmbW.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,4 +1,4 @@
1
- import { K as create, N as updateFileContent, O as getFileContent } from './index-DO43pFZP.js';
1
+ import { I as create, J as updateFileContent, K as getFileContent } from './index-DmwmJmbW.js';
2
2
 
3
3
  function openDb({ dbName, version, storeName }) {
4
4
  return new Promise((resolve, reject) => {
@@ -1,4 +1,4 @@
1
- import { r as reactExports, j as jsxRuntimeExports, X, b as cn } from './index-DO43pFZP.js';
1
+ import { r as reactExports, j as jsxRuntimeExports, X, b as cn } from './index-DmwmJmbW.js';
2
2
 
3
3
  const CHANGE_LABELS = {
4
4
  create: "Created",
@@ -1,4 +1,4 @@
1
- import { s as supportsSocketIo, p as lookup, q as useAuthStore, t as resolveApiBaseUrl } from './index-DO43pFZP.js';
1
+ import { s as supportsSocketIo, o as lookup, p as useAuthStore, q as resolveApiBaseUrl } from './index-DmwmJmbW.js';
2
2
 
3
3
  const getApiBaseUrl = resolveApiBaseUrl;
4
4
  const SOCKET_CACHE = /* @__PURE__ */ new Map();
@@ -1,4 +1,4 @@
1
- import { o as createLucideIcon } from './index-DO43pFZP.js';
1
+ import { z as createLucideIcon } from './index-DmwmJmbW.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,4 +1,4 @@
1
- import { o as createLucideIcon } from './index-DO43pFZP.js';
1
+ import { z as createLucideIcon } from './index-DmwmJmbW.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,5 +1,5 @@
1
- import { r as reactExports, I as ConnectionState, j as jsxRuntimeExports, J as EnhancedTerminal } from './index-DO43pFZP.js';
2
- import { u as useCliAccess, a as useCliSocket, n as nextSeq, b as buildChatSessionId } from './useCliAccess-DV2L2Qxy.js';
1
+ import { r as reactExports, G as ConnectionState, j as jsxRuntimeExports, H as EnhancedTerminal } from './index-DmwmJmbW.js';
2
+ import { u as useCliAccess, a as useCliSocket, n as nextSeq, b as buildChatSessionId } from './useCliAccess-mXVCYSZ-.js';
3
3
 
4
4
  function CliToolTerminal({
5
5
  projectId,