@researai/deepscientist 1.5.7 → 1.5.8

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 (148) hide show
  1. package/README.md +4 -0
  2. package/bin/ds.js +220 -5
  3. package/docs/en/07_MEMORY_AND_MCP.md +40 -3
  4. package/docs/en/99_ACKNOWLEDGEMENTS.md +1 -0
  5. package/docs/zh/07_MEMORY_AND_MCP.md +40 -3
  6. package/docs/zh/99_ACKNOWLEDGEMENTS.md +1 -0
  7. package/install.sh +34 -0
  8. package/package.json +1 -1
  9. package/pyproject.toml +1 -1
  10. package/src/deepscientist/__init__.py +1 -1
  11. package/src/deepscientist/acp/envelope.py +1 -0
  12. package/src/deepscientist/artifact/metrics.py +813 -80
  13. package/src/deepscientist/artifact/schemas.py +1 -0
  14. package/src/deepscientist/artifact/service.py +1101 -99
  15. package/src/deepscientist/bash_exec/monitor.py +1 -1
  16. package/src/deepscientist/bash_exec/service.py +17 -9
  17. package/src/deepscientist/channels/qq.py +17 -0
  18. package/src/deepscientist/channels/relay.py +16 -0
  19. package/src/deepscientist/config/models.py +6 -0
  20. package/src/deepscientist/config/service.py +70 -2
  21. package/src/deepscientist/daemon/api/handlers.py +284 -14
  22. package/src/deepscientist/daemon/api/router.py +1 -0
  23. package/src/deepscientist/daemon/app.py +291 -20
  24. package/src/deepscientist/gitops/diff.py +6 -10
  25. package/src/deepscientist/mcp/server.py +188 -39
  26. package/src/deepscientist/prompts/builder.py +51 -18
  27. package/src/deepscientist/quest/service.py +83 -34
  28. package/src/deepscientist/quest/stage_views.py +74 -29
  29. package/src/deepscientist/runners/codex.py +1 -1
  30. package/src/prompts/connectors/qq.md +1 -1
  31. package/src/prompts/contracts/shared_interaction.md +14 -0
  32. package/src/prompts/system.md +106 -32
  33. package/src/skills/analysis-campaign/SKILL.md +10 -14
  34. package/src/skills/baseline/SKILL.md +51 -38
  35. package/src/skills/baseline/references/baseline-plan-template.md +2 -0
  36. package/src/skills/decision/SKILL.md +12 -8
  37. package/src/skills/experiment/SKILL.md +28 -16
  38. package/src/skills/experiment/references/main-experiment-plan-template.md +2 -0
  39. package/src/skills/figure-polish/SKILL.md +1 -0
  40. package/src/skills/finalize/SKILL.md +3 -8
  41. package/src/skills/idea/SKILL.md +2 -8
  42. package/src/skills/intake-audit/SKILL.md +2 -8
  43. package/src/skills/rebuttal/SKILL.md +2 -8
  44. package/src/skills/review/SKILL.md +2 -8
  45. package/src/skills/scout/SKILL.md +2 -8
  46. package/src/skills/write/SKILL.md +52 -16
  47. package/src/skills/write/templates/DEEPSCIENTIST_NOTES.md +21 -0
  48. package/src/skills/write/templates/README.md +408 -0
  49. package/src/skills/write/templates/UPSTREAM_LICENSE.txt +21 -0
  50. package/src/skills/write/templates/aaai2026/README.md +534 -0
  51. package/src/skills/write/templates/aaai2026/aaai2026-unified-supp.tex +144 -0
  52. package/src/skills/write/templates/aaai2026/aaai2026-unified-template.tex +952 -0
  53. package/src/skills/write/templates/aaai2026/aaai2026.bib +111 -0
  54. package/src/skills/write/templates/aaai2026/aaai2026.bst +1493 -0
  55. package/src/skills/write/templates/aaai2026/aaai2026.sty +315 -0
  56. package/src/skills/write/templates/acl/README.md +50 -0
  57. package/src/skills/write/templates/acl/acl.sty +312 -0
  58. package/src/skills/write/templates/acl/acl_latex.tex +377 -0
  59. package/src/skills/write/templates/acl/acl_lualatex.tex +101 -0
  60. package/src/skills/write/templates/acl/acl_natbib.bst +1940 -0
  61. package/src/skills/write/templates/acl/anthology.bib.txt +26 -0
  62. package/src/skills/write/templates/acl/custom.bib +70 -0
  63. package/src/skills/write/templates/acl/formatting.md +326 -0
  64. package/src/skills/write/templates/asplos2027/main.tex +459 -0
  65. package/src/skills/write/templates/asplos2027/references.bib +135 -0
  66. package/src/skills/write/templates/colm2025/README.md +3 -0
  67. package/src/skills/write/templates/colm2025/colm2025_conference.bib +11 -0
  68. package/src/skills/write/templates/colm2025/colm2025_conference.bst +1440 -0
  69. package/src/skills/write/templates/colm2025/colm2025_conference.sty +218 -0
  70. package/src/skills/write/templates/colm2025/colm2025_conference.tex +305 -0
  71. package/src/skills/write/templates/colm2025/fancyhdr.sty +485 -0
  72. package/src/skills/write/templates/colm2025/math_commands.tex +508 -0
  73. package/src/skills/write/templates/colm2025/natbib.sty +1246 -0
  74. package/src/skills/write/templates/iclr2026/fancyhdr.sty +485 -0
  75. package/src/skills/write/templates/iclr2026/iclr2026_conference.bib +24 -0
  76. package/src/skills/write/templates/iclr2026/iclr2026_conference.bst +1440 -0
  77. package/src/skills/write/templates/iclr2026/iclr2026_conference.sty +246 -0
  78. package/src/skills/write/templates/iclr2026/iclr2026_conference.tex +414 -0
  79. package/src/skills/write/templates/iclr2026/math_commands.tex +508 -0
  80. package/src/skills/write/templates/iclr2026/natbib.sty +1246 -0
  81. package/src/skills/write/templates/icml2026/algorithm.sty +79 -0
  82. package/src/skills/write/templates/icml2026/algorithmic.sty +201 -0
  83. package/src/skills/write/templates/icml2026/example_paper.bib +75 -0
  84. package/src/skills/write/templates/icml2026/example_paper.tex +662 -0
  85. package/src/skills/write/templates/icml2026/fancyhdr.sty +864 -0
  86. package/src/skills/write/templates/icml2026/icml2026.bst +1443 -0
  87. package/src/skills/write/templates/icml2026/icml2026.sty +767 -0
  88. package/src/skills/write/templates/neurips2025/Makefile +36 -0
  89. package/src/skills/write/templates/neurips2025/extra_pkgs.tex +53 -0
  90. package/src/skills/write/templates/neurips2025/main.tex +38 -0
  91. package/src/skills/write/templates/neurips2025/neurips.sty +382 -0
  92. package/src/skills/write/templates/nsdi2027/main.tex +426 -0
  93. package/src/skills/write/templates/nsdi2027/references.bib +151 -0
  94. package/src/skills/write/templates/nsdi2027/usenix-2020-09.sty +83 -0
  95. package/src/skills/write/templates/osdi2026/main.tex +429 -0
  96. package/src/skills/write/templates/osdi2026/references.bib +150 -0
  97. package/src/skills/write/templates/osdi2026/usenix-2020-09.sty +83 -0
  98. package/src/skills/write/templates/sosp2026/main.tex +532 -0
  99. package/src/skills/write/templates/sosp2026/references.bib +148 -0
  100. package/src/tui/package.json +1 -1
  101. package/src/ui/dist/assets/{AiManusChatView-BS3V4ZOk.js → AiManusChatView-m2FNtwbn.js} +110 -14
  102. package/src/ui/dist/assets/{AnalysisPlugin-DLPXQsmr.js → AnalysisPlugin-BMTF8EGL.js} +1 -1
  103. package/src/ui/dist/assets/{AutoFigurePlugin-C-Fr9knQ.js → AutoFigurePlugin-DxPdMUNb.js} +5 -5
  104. package/src/ui/dist/assets/{CliPlugin-Dd8AHzFg.js → CliPlugin-BEOWgxCI.js} +9 -9
  105. package/src/ui/dist/assets/{CodeEditorPlugin-Dg-RepTl.js → CodeEditorPlugin-BCXvjqmb.js} +8 -8
  106. package/src/ui/dist/assets/{CodeViewerPlugin-D2J_3nyt.js → CodeViewerPlugin-DaJcy3nD.js} +5 -5
  107. package/src/ui/dist/assets/{DocViewerPlugin-ChRLLKNb.js → DocViewerPlugin-ByfeIq4K.js} +3 -3
  108. package/src/ui/dist/assets/{GitDiffViewerPlugin-DgHfcved.js → GitDiffViewerPlugin-Cksf3VZ-.js} +830 -86
  109. package/src/ui/dist/assets/{ImageViewerPlugin-C89GZMBy.js → ImageViewerPlugin-CFz-OsTS.js} +5 -5
  110. package/src/ui/dist/assets/{LabCopilotPanel-BUfIwUcb.js → LabCopilotPanel-CJ1cJzoX.js} +10 -10
  111. package/src/ui/dist/assets/{LabPlugin-zvUmQUMq.js → LabPlugin-BF3dVJwa.js} +1 -1
  112. package/src/ui/dist/assets/{LatexPlugin-C1SSNuWp.js → LatexPlugin-DDkwZ6Sj.js} +7 -7
  113. package/src/ui/dist/assets/{MarkdownViewerPlugin-D2Mf5tU5.js → MarkdownViewerPlugin-HAuvurcT.js} +4 -4
  114. package/src/ui/dist/assets/{MarketplacePlugin-CF4LgiS2.js → MarketplacePlugin-BtoTYy2C.js} +3 -3
  115. package/src/ui/dist/assets/{index-Be0NAmh8.js → NotebookEditor-CSJYx7b-.js} +12 -155
  116. package/src/ui/dist/assets/{NotebookEditor-BM7Bgwlv.js → NotebookEditor-DQgRezm_.js} +1 -1
  117. package/src/ui/dist/assets/{PdfLoader-Bc5qfD-Z.js → PdfLoader-DPa_-fv6.js} +1 -1
  118. package/src/ui/dist/assets/{PdfMarkdownPlugin-sh1-IRcp.js → PdfMarkdownPlugin-BZpXOEjm.js} +3 -3
  119. package/src/ui/dist/assets/{PdfViewerPlugin-C_a7CpWG.js → PdfViewerPlugin-BT8a6wGR.js} +10 -10
  120. package/src/ui/dist/assets/{SearchPlugin-L4z3HcLf.js → SearchPlugin-D_blveZi.js} +1 -1
  121. package/src/ui/dist/assets/{Stepper-Dk4aQ3fN.js → Stepper-DH2k75Vo.js} +1 -1
  122. package/src/ui/dist/assets/{TextViewerPlugin-BsNtlKVo.js → TextViewerPlugin-Btx0M3hX.js} +4 -4
  123. package/src/ui/dist/assets/{VNCViewer-BpeDcZ5_.js → VNCViewer-DImJO4rO.js} +9 -9
  124. package/src/ui/dist/assets/{bibtex-C4QI-bbj.js → bibtex-B-Hqu0Sg.js} +1 -1
  125. package/src/ui/dist/assets/{code-DuMINRsg.js → code-BUfXGJSl.js} +1 -1
  126. package/src/ui/dist/assets/{file-content-C3N-432K.js → file-content-VqamwI3X.js} +1 -1
  127. package/src/ui/dist/assets/{file-diff-panel-CffQ4ZMg.js → file-diff-panel-C_wOoS7a.js} +1 -1
  128. package/src/ui/dist/assets/{file-socket-CRH59PCO.js → file-socket-D2bTuMVP.js} +1 -1
  129. package/src/ui/dist/assets/{file-utils-vYGtW2mI.js → file-utils--zJCPN1i.js} +1 -1
  130. package/src/ui/dist/assets/{image-DBVGaooo.js → image-BZkGJ4mM.js} +1 -1
  131. package/src/ui/dist/assets/{index-DjSFDmgB.js → index-CxkvSeKw.js} +2 -2
  132. package/src/ui/dist/assets/{index-BpjYH9Vg.js → index-D9QIGcmc.js} +1 -1
  133. package/src/ui/dist/assets/{index-Do9N28uB.css → index-DXZ1daiJ.css} +163 -34
  134. package/src/ui/dist/assets/index-DdRW6RMJ.js +159 -0
  135. package/src/ui/dist/assets/{index-B1P6hQRJ.js → index-DjggJovS.js} +3029 -1780
  136. package/src/ui/dist/assets/{message-square-BsPDBhiY.js → message-square-FUIPIhU2.js} +1 -1
  137. package/src/ui/dist/assets/{monaco-BTkdPojV.js → monaco-DHMc7kKM.js} +1 -1
  138. package/src/ui/dist/assets/{popover-cWjCk-vc.js → popover-B85oCgCS.js} +1 -1
  139. package/src/ui/dist/assets/{project-sync-CXn530xb.js → project-sync-DOMCcPac.js} +1 -1
  140. package/src/ui/dist/assets/{sigma-04Jr12jg.js → sigma-BO2rQrl3.js} +1 -1
  141. package/src/ui/dist/assets/{tooltip-BdVDl0G5.js → tooltip-B1OspAkx.js} +1 -1
  142. package/src/ui/dist/assets/{trash-CB_GlQyC.js → trash-BsVEH_dV.js} +1 -1
  143. package/src/ui/dist/assets/{useCliAccess-BL932NwS.js → useCliAccess-b8L6JuZm.js} +1 -1
  144. package/src/ui/dist/assets/{useFileDiffOverlay-B2WK7Tvq.js → useFileDiffOverlay-BY7uA9hV.js} +1 -1
  145. package/src/ui/dist/assets/{wrap-text-YC68g12z.js → wrap-text-BwyVuUIK.js} +1 -1
  146. package/src/ui/dist/assets/{zoom-out-C0RJvFiJ.js → zoom-out-RDpLugQP.js} +1 -1
  147. package/src/ui/dist/index.html +5 -2
  148. /package/src/ui/dist/assets/{index-CccQYZjX.css → NotebookEditor-CccQYZjX.css} +0 -0
@@ -1,7 +1,7 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-B1P6hQRJ.js","assets/index-Do9N28uB.css"])))=>i.map(i=>d[i]);
2
- import { z as createLucideIcon, r as reactExports, j as jsxRuntimeExports, b as cn, ah as RotateCcw, ai as Info, $ as Download, L as LoaderCircle, _ as __vitePreload } from './index-B1P6hQRJ.js';
3
- import { I as Image } from './image-DBVGaooo.js';
4
- import { Z as ZoomOut, a as ZoomIn } from './zoom-out-C0RJvFiJ.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DjggJovS.js","assets/index-DXZ1daiJ.css"])))=>i.map(i=>d[i]);
2
+ import { z as createLucideIcon, r as reactExports, j as jsxRuntimeExports, b as cn, af as RotateCcw, ag as Info, Y as Download, L as LoaderCircle, _ as __vitePreload } from './index-DjggJovS.js';
3
+ import { I as Image } from './image-BZkGJ4mM.js';
4
+ import { Z as ZoomOut, a as ZoomIn } from './zoom-out-RDpLugQP.js';
5
5
 
6
6
  /**
7
7
  * @license lucide-react v0.511.0 - ISC
@@ -280,7 +280,7 @@ function ImageViewerPlugin({
280
280
  }
281
281
  const loadImageUrl = async () => {
282
282
  try {
283
- const { createFileObjectUrl } = await __vitePreload(async () => { const { createFileObjectUrl } = await import('./index-B1P6hQRJ.js').then(n => n.ei);return { createFileObjectUrl }},true?__vite__mapDeps([0,1]):void 0);
283
+ const { createFileObjectUrl } = await __vitePreload(async () => { const { createFileObjectUrl } = await import('./index-DjggJovS.js').then(n => n.el);return { createFileObjectUrl }},true?__vite__mapDeps([0,1]):void 0);
284
284
  objectUrl = await createFileObjectUrl(context.resourceId);
285
285
  if (cancelled) {
286
286
  URL.revokeObjectURL(objectUrl);
@@ -1,15 +1,15 @@
1
- import { z as createLucideIcon, r as reactExports, aK as reactDomExports, aL as useReducedMotion, j as jsxRuntimeExports, aM as useQueryClient, v as useToast, u as useI18n, aA as useLabCopilotStore, aN as useLabGraphSelectionStore, aO as useChatSessionStore, aP as buildAvatarColorMap, aQ as isLabWorkingStatus, aR as getLabAgentDirectSession, aS as buildAgentDescriptor, aT as resolveAgentLogo, aF as resolveAgentDisplayName, aG as resolveAgentMentionLabel, aU as AnimatePresence, aV as motion, a3 as Button, aW as pickAvatarFrameColor, aH as resolveQuestLabel, d as Check, b as cn, p as useAuthStore, aX as useCopilotDockHeaderPortal, aY as assignLabAgent, aZ as ScrollArea, L as LoaderCircle, a_ as likeLabMoment, a$ as unlikeLabMoment, b0 as commentLabMoment, b1 as Ellipsis, b2 as Plus, l as Search, b3 as Select, b4 as SelectTrigger, b5 as SelectValue, b6 as SelectContent, b7 as SelectItem, b8 as Dialog, b9 as DialogContent, ba as DialogHeader, bb as DialogTitle, bc as DialogFooter, bd as getLabGroupSession, be as getLabFriendsSession } from './index-B1P6hQRJ.js';
2
- import { P as Popover, a as PopoverTrigger, b as PopoverContent } from './popover-cWjCk-vc.js';
3
- import { A as AiManusChatView, D as DEFAULT_AGENT_ID, C as ChatBox, a as applyChatEvent, u as useSSESession, b as ChatMessage, r as renderMarkdown } from './AiManusChatView-BS3V4ZOk.js';
4
- import './file-content-C3N-432K.js';
5
- import './file-utils-vYGtW2mI.js';
1
+ import { z as createLucideIcon, r as reactExports, aO as reactDomExports, aP as useReducedMotion, j as jsxRuntimeExports, aQ as useQueryClient, p as useToast, u as useI18n, ay as useLabCopilotStore, aR as useLabGraphSelectionStore, aS as useChatSessionStore, aT as buildAvatarColorMap, aU as isLabWorkingStatus, aV as getLabAgentDirectSession, aW as buildAgentDescriptor, aX as resolveAgentLogo, aD as resolveAgentDisplayName, aE as resolveAgentMentionLabel, aY as AnimatePresence, aZ as motion, a3 as Button, a_ as pickAvatarFrameColor, aF as resolveQuestLabel, d as Check, b as cn, x as useAuthStore, a$ as useCopilotDockHeaderPortal, b0 as assignLabAgent, b1 as ScrollArea, L as LoaderCircle, b2 as likeLabMoment, b3 as unlikeLabMoment, b4 as commentLabMoment, b5 as Ellipsis, b6 as Plus, l as Search, b7 as Select, b8 as SelectTrigger, b9 as SelectValue, ba as SelectContent, bb as SelectItem, bc as Dialog, bd as DialogContent, be as DialogHeader, bf as DialogTitle, bg as DialogFooter, bh as getLabGroupSession, bi as getLabFriendsSession } from './index-DjggJovS.js';
2
+ import { P as Popover, a as PopoverTrigger, b as PopoverContent } from './popover-B85oCgCS.js';
3
+ import { A as AiManusChatView, D as DEFAULT_AGENT_ID, C as ChatBox, a as applyChatEvent, u as useSSESession, b as ChatMessage, r as renderMarkdown } from './AiManusChatView-m2FNtwbn.js';
4
+ import './file-content-VqamwI3X.js';
5
+ import './file-utils--zJCPN1i.js';
6
6
  import './file-jump-queue-r5XKgJEV.js';
7
7
  import './pdf-effect-queue-DSw_D3RV.js';
8
- import './file-diff-panel-CffQ4ZMg.js';
9
- import './message-square-BsPDBhiY.js';
10
- import './NotebookEditor-BM7Bgwlv.js';
11
- import './tooltip-BdVDl0G5.js';
12
- import './trash-CB_GlQyC.js';
8
+ import './file-diff-panel-C_wOoS7a.js';
9
+ import './message-square-FUIPIhU2.js';
10
+ import './NotebookEditor-DQgRezm_.js';
11
+ import './tooltip-B1OspAkx.js';
12
+ import './trash-BsVEH_dV.js';
13
13
 
14
14
  /**
15
15
  * @license lucide-react v0.511.0 - ISC
@@ -1,4 +1,4 @@
1
- import { z as createLucideIcon, af as useQuery, r as reactExports, j as jsxRuntimeExports, bf as Skeleton, bg as Badge, ag as client, bh as ReactFlowProvider, u as useI18n, aF as resolveAgentDisplayName, aT as resolveAgentLogo, aW as pickAvatarFrameColor, aQ as isLabWorkingStatus, bi as normalizeLabStatus, bj as useNodesState, bk as useReactFlow, bl as index, bm as Background, b as cn, bn as Handle, bo as Position, bp as CircleHelp, bq as OrbitLogoStatus, br as Clock, bs as Moon, aI as formatRelativeTime, n as ChevronDown, aM as useQueryClient, aA as useLabCopilotStore, aN as useLabGraphSelectionStore, bt as resolveLabCanvasSelectionSemantic, a3 as Button, g as RefreshCw, bu as LabQuestGraphCanvas, bv as ArrowLeft, aZ as ScrollArea, D as Sparkles, bw as GitBranch, bx as Bot, by as LAB_CANVAS_SEMANTIC_TONE_META, bz as getLabQuest, bA as getLabQuestSummary, bB as getLabQuestEventPayload, bC as getLabQuestNodeTrace, bD as isQuestRuntimeSurface, bE as getApiBaseUrl, bF as redirectToLanding, bG as useCliStore, bH as useActiveTab, y as BUILTIN_PLUGINS, bI as listLabTemplates, aB as listLabAgents, aC as listLabQuests, bJ as getLabOverview, bK as getProject, bL as useMaxEntitlement } from './index-B1P6hQRJ.js';
1
+ import { z as createLucideIcon, aL as useQuery, r as reactExports, j as jsxRuntimeExports, bj as Skeleton, bk as Badge, aN as client, bl as ReactFlowProvider, u as useI18n, aD as resolveAgentDisplayName, aX as resolveAgentLogo, a_ as pickAvatarFrameColor, aU as isLabWorkingStatus, bm as normalizeLabStatus, bn as useNodesState, bo as useReactFlow, bp as index, bq as Background, b as cn, br as Handle, bs as Position, bt as CircleHelp, bu as OrbitLogoStatus, bv as Clock, bw as Moon, aG as formatRelativeTime, n as ChevronDown, aQ as useQueryClient, ay as useLabCopilotStore, aR as useLabGraphSelectionStore, bx as resolveLabCanvasSelectionSemantic, a3 as Button, g as RefreshCw, by as LabQuestGraphCanvas, bz as ArrowLeft, b1 as ScrollArea, D as Sparkles, bA as GitBranch, bB as Bot, bC as LAB_CANVAS_SEMANTIC_TONE_META, bD as getLabQuest, bE as getLabQuestSummary, bF as getLabQuestEventPayload, bG as getLabQuestNodeTrace, bH as isQuestRuntimeSurface, bI as getApiBaseUrl, bJ as redirectToLanding, bK as useCliStore, bL as useActiveTab, t as BUILTIN_PLUGINS, bM as listLabTemplates, az as listLabAgents, aA as listLabQuests, bN as getLabOverview, bO as getProject, bP as useMaxEntitlement } from './index-DjggJovS.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,9 +1,9 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/monaco-BTkdPojV.js","assets/index-B1P6hQRJ.js","assets/index-Do9N28uB.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-B1P6hQRJ.js';
3
- import { P as ProjectSyncClient } from './project-sync-CXn530xb.js';
4
- import { c as configureMonacoLoader } from './monaco-BTkdPojV.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-Bc5qfD-Z.js';
6
- import { Z as ZoomOut, a as ZoomIn } from './zoom-out-C0RJvFiJ.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/monaco-DHMc7kKM.js","assets/index-DjggJovS.js","assets/index-DXZ1daiJ.css","assets/yjs-DncrqiZ8.js","assets/function-B5QZkkHC.js","assets/awareness-C0NPR2Dj.js"])))=>i.map(i=>d[i]);
2
+ import { z as createLucideIcon, x as useAuthStore, u as useI18n, a as useWorkspaceSurfaceStore, r as reactExports, f as useFileTreeStore, N as toFilesResourcePath, O as checkProjectAccess, P as listFiles, K as getFileContent, _ as __vitePreload, J as updateFileContent, Q as compileLatex, U as listLatexBuilds, j as jsxRuntimeExports, b as cn, k as FileText, V as Link2, L as LoaderCircle, S as Save, W as Play, T as TriangleAlert, Y as Download, Z as getLatexBuild, $ as getLatexBuildPdfBlob, a0 as getLatexBuildLogText, h as dynamic } from './index-DjggJovS.js';
3
+ import { P as ProjectSyncClient } from './project-sync-DOMCcPac.js';
4
+ import { c as configureMonacoLoader } from './monaco-DHMc7kKM.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-DPa_-fv6.js';
6
+ import { Z as ZoomOut, a as ZoomIn } from './zoom-out-RDpLugQP.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-BTkdPojV.js').then(n => n.i),true?__vite__mapDeps([0,1,2]):void 0), { });
22
+ const MonacoEditor = dynamic(() => __vitePreload(() => import('./monaco-DHMc7kKM.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(() => {
@@ -1,6 +1,6 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-B1P6hQRJ.js","assets/index-Do9N28uB.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-B1P6hQRJ.js';
3
- import { C as Code } from './code-DuMINRsg.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DjggJovS.js","assets/index-DXZ1daiJ.css"])))=>i.map(i=>d[i]);
2
+ import { u as useI18n, a as useWorkspaceSurfaceStore, r as reactExports, R as React, a1 as getQuestMarkdownContextFromFileId, c as copyToClipboard, j as jsxRuntimeExports, L as LoaderCircle, C as CircleAlert, a2 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-DjggJovS.js';
3
+ import { C as Code } from './code-BUfXGJSl.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-B1P6hQRJ.js').then(n => n.ei);return { getFileContent }},true?__vite__mapDeps([0,1]):void 0);
220
+ const { getFileContent } = await __vitePreload(async () => { const { getFileContent } = await import('./index-DjggJovS.js').then(n => n.el);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 { 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-B1P6hQRJ.js';
2
- import { S as Sigma } from './sigma-04Jr12jg.js';
3
- import { I as Image } from './image-DBVGaooo.js';
1
+ import { z as createLucideIcon, r as reactExports, a5 as useNavigate, o as useTabsStore, a6 as useOpenFile, f as useFileTreeStore, t 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-DjggJovS.js';
2
+ import { S as Sigma } from './sigma-BO2rQrl3.js';
3
+ import { I as Image } from './image-BZkGJ4mM.js';
4
4
 
5
5
  /**
6
6
  * @license lucide-react v0.511.0 - ISC
@@ -1,16 +1,16 @@
1
- import { z as createLucideIcon, j as jsxRuntimeExports, a3 as Button, n as ChevronDown, d as Check, b as cn, r as reactExports, bv as ArrowLeft, c4 as ArrowRight, d0 as Separator, d1 as ArrowUp, cz as Trash2, u as useI18n, v as useToast, K as getFileContent, L as LoaderCircle, e as Copy, C as CircleAlert, f as useFileTreeStore, N as getQuestMarkdownContextFromFileId, d2 as rewriteQuestMarkdownForDisplay, d3 as rewriteQuestMarkdownForSave, d4 as uploadQuestDocumentAsset, J as updateFileContent } from './index-B1P6hQRJ.js';
2
- import { P as PluginKey, a as Plugin, S as Slice, F as Fragment, T as TextSelection, A as AllSelection, N as NodeSelection, E as Extension, m as me, l as le, u as useCurrentEditor, w, b as P, f as findParentNodeClosestToPos, g as getEditorMarkdown, s as setEditorMarkdown, q, c as uploadNotebookAsset, r as resolveNotebookAssetUrl, d as defaultExtensions, J, U, I, e as T, B, O, h as S, K as K$1, G, i as ce, j as isSupportedNotebookAsset } from './NotebookEditor-BM7Bgwlv.js';
1
+ import { z as createLucideIcon, j as jsxRuntimeExports, a3 as Button, n as ChevronDown, d as Check, b as cn, r as reactExports, bz as ArrowLeft, c8 as ArrowRight, ce as Separator, cf as ArrowUp, cg as Trash2, u as useI18n, p as useToast, K as getFileContent, L as LoaderCircle, e as Copy, C as CircleAlert, f as useFileTreeStore, a1 as getQuestMarkdownContextFromFileId, ch as rewriteQuestMarkdownForDisplay, ci as rewriteQuestMarkdownForSave, cj as uploadQuestDocumentAsset, J as updateFileContent } from './index-DjggJovS.js';
2
+ import { P as PluginKey, a as Plugin, S as Slice, F as Fragment, T as TextSelection, A as AllSelection, N as NodeSelection, E as Extension, m as me, l as le, u as useCurrentEditor, w, b as P, f as findParentNodeClosestToPos, g as getEditorMarkdown, s as setEditorMarkdown, q, c as uploadNotebookAsset, r as resolveNotebookAssetUrl, d as defaultExtensions, J, U, I, e as T, B, O, h as S, K as K$1, G, i as ce, j as isSupportedNotebookAsset } from './NotebookEditor-DQgRezm_.js';
3
3
  import { a4 as BIT8, ai as BIT30, ab as min, $ as max, y as unexpectedCase, n as methodUnimplemented, aj as keys, u as every, H as setIfUndefined, D as create } from './function-B5QZkkHC.js';
4
4
  import { t as toBase64, e as encodeAny, i as isBrowser, d as doc, s as snapshot, D as Doc, a as applyUpdateV2, f as findIndexSS, b as iterateDeletedStructs, c as typeListToArraySnapshot, S as Snapshot, U as UndoManager, g as createSnapshot, h as isDeleted, Y as YXmlElement, j as YXmlText, k as YText, o as oneOf, C as ContentString, l as ContentFormat, m as createDeleteSet, I as Item, n as createRelativePositionFromTypeIndex, R as RelativePosition, p as findRootTypeKey, q as createID, r as createAbsolutePositionFromRelativePosition, u as isParentOf, v as ContentType, w as encodeStateVector, x as applyUpdate, y as mergeUpdates } from './yjs-DncrqiZ8.js';
5
- import { P as ProjectSyncClient } from './project-sync-CXn530xb.js';
6
- import { S as SquareCheckBig } from './index-BpjYH9Vg.js';
7
- import { C as Code } from './code-DuMINRsg.js';
8
- import { I as Image } from './image-DBVGaooo.js';
9
- import { P as Popover, a as PopoverTrigger, b as PopoverContent } from './popover-cWjCk-vc.js';
10
- import { T as Trash, A as ArrowDown } from './trash-CB_GlQyC.js';
11
- import { S as Sigma } from './sigma-04Jr12jg.js';
12
- import { u as useFileDiffOverlay } from './useFileDiffOverlay-B2WK7Tvq.js';
13
- import { F as FileDiffPanel } from './file-diff-panel-CffQ4ZMg.js';
5
+ import { P as ProjectSyncClient } from './project-sync-DOMCcPac.js';
6
+ import { S as SquareCheckBig } from './index-D9QIGcmc.js';
7
+ import { C as Code } from './code-BUfXGJSl.js';
8
+ import { I as Image } from './image-BZkGJ4mM.js';
9
+ import { P as Popover, a as PopoverTrigger, b as PopoverContent } from './popover-B85oCgCS.js';
10
+ import { T as Trash, A as ArrowDown } from './trash-BsVEH_dV.js';
11
+ import { S as Sigma } from './sigma-BO2rQrl3.js';
12
+ import { u as useFileDiffOverlay } from './useFileDiffOverlay-BY7uA9hV.js';
13
+ import { F as FileDiffPanel } from './file-diff-panel-C_wOoS7a.js';
14
14
 
15
15
  /**
16
16
  * @license lucide-react v0.511.0 - ISC
@@ -272,142 +272,6 @@ const __iconNode = [
272
272
  ];
273
273
  const Youtube = createLucideIcon("youtube", __iconNode);
274
274
 
275
- const notebookPluginManifest = {
276
- // ============================================================
277
- // Basic Information
278
- // ============================================================
279
- id: "@ds/plugin-notebook",
280
- name: "Notebook Editor",
281
- description: "Novel-based rich text editor with real-time collaboration",
282
- version: "1.0.0",
283
- type: "builtin",
284
- author: "DeepScientist Team",
285
- icon: "BookOpen",
286
- // ============================================================
287
- // Frontend Configuration
288
- // ============================================================
289
- frontend: {
290
- entry: "./NotebookEditor",
291
- renderMode: "react",
292
- fileAssociations: [
293
- {
294
- extensions: [".ds", ".notebook", ".dsnb"],
295
- mimeTypes: ["application/x-blocksuite-notebook"],
296
- priority: 100
297
- // Highest priority for notebook files
298
- },
299
- {
300
- extensions: [".md", ".markdown"],
301
- mimeTypes: ["text/markdown", "text/x-markdown"],
302
- priority: 95
303
- // Prefer notebook editor for markdown files
304
- }
305
- ],
306
- multiInstance: true
307
- // Allow multiple notebooks open
308
- },
309
- // ============================================================
310
- // Backend Configuration
311
- // ============================================================
312
- backend: {
313
- entry: "app.plugins.builtin.notebook_tools",
314
- tools: []
315
- },
316
- // ============================================================
317
- // Permissions
318
- // ============================================================
319
- permissions: {
320
- frontend: ["notebook:read", "notebook:write", "file:read", "file:upload"],
321
- backend: ["database:read", "database:write", "file:read", "file:write"]
322
- },
323
- // ============================================================
324
- // UI Contributions
325
- // ============================================================
326
- contributes: {
327
- // Tab configuration
328
- tabIcon: "file-text",
329
- tabTitle: {
330
- dynamic: "resourceName"
331
- },
332
- // Toolbar buttons
333
- toolbar: [
334
- {
335
- id: "notebook-export",
336
- title: "Export",
337
- icon: "Download",
338
- command: "notebook.export",
339
- position: "right"
340
- }
341
- ],
342
- // Context menu items (optional)
343
- contextMenus: [
344
- {
345
- id: "duplicate-block",
346
- title: "Duplicate Block",
347
- command: "notebook.duplicateBlock",
348
- context: "editor",
349
- group: "edit",
350
- order: 1
351
- },
352
- {
353
- id: "delete-block",
354
- title: "Delete Block",
355
- command: "notebook.deleteBlock",
356
- context: "editor",
357
- group: "edit",
358
- order: 2
359
- }
360
- ]
361
- },
362
- // ============================================================
363
- // Configuration Schema
364
- // ============================================================
365
- configSchema: {
366
- type: "object",
367
- properties: {
368
- defaultFontFamily: {
369
- type: "string",
370
- default: "Inter",
371
- description: "Default font family"
372
- },
373
- autoSaveInterval: {
374
- type: "number",
375
- default: 3e3,
376
- minimum: 1e3,
377
- maximum: 3e4,
378
- description: "Auto-save interval in milliseconds"
379
- },
380
- enableCollaboration: {
381
- type: "boolean",
382
- default: true,
383
- description: "Enable real-time collaboration"
384
- },
385
- showBlockHandles: {
386
- type: "boolean",
387
- default: true,
388
- description: "Show block drag handles on hover"
389
- }
390
- }
391
- },
392
- // ============================================================
393
- // Default Configuration
394
- // ============================================================
395
- defaultConfig: {
396
- defaultFontFamily: "Inter",
397
- autoSaveInterval: 3e3,
398
- enableCollaboration: true,
399
- showBlockHandles: true
400
- },
401
- // ============================================================
402
- // Lifecycle Hooks
403
- // ============================================================
404
- lifecycle: {
405
- activationEvents: ["onFileType:notebook", "onCommand:newNotebook"],
406
- onActivate: "activate",
407
- onDeactivate: "deactivate"
408
- }
409
- };
410
-
411
275
  /* global requestIdleCallback, requestAnimationFrame, cancelIdleCallback, cancelAnimationFrame */
412
276
 
413
277
 
@@ -4347,11 +4211,4 @@ function NotebookEditor({
4347
4211
  );
4348
4212
  }
4349
4213
 
4350
- function activate() {
4351
- console.log("[NotebookPlugin] Activated");
4352
- }
4353
- function deactivate() {
4354
- console.log("[NotebookPlugin] Deactivated");
4355
- }
4356
-
4357
- export { EditorLoading, NotebookEditor, NotebookEditor as NotebookEditorComponent, NotebookToolbar, activate, deactivate, NotebookEditor as default, notebookPluginManifest as notebookManifest, notebookPluginManifest };
4214
+ export { EditorLoading as E, NotebookEditor as N, NotebookToolbar as a };
@@ -1,4 +1,4 @@
1
- import { R as React, r as reactExports, aK as reactDomExports, e6 as ReactDOM, I as create, j as jsxRuntimeExports, e7 as createSlot, am as useId, e8 as Root, e9 as Portal, ea as Overlay, eb as Content, aj as composeRefs, d7 as getDefaultExportFromCjs$2, ec as clsx, ed as shimExports$1, ee as katex, ef as Slot, q as resolveApiBaseUrl, b_ as uploadFileAuto, eg as nanoid, eh as cx } from './index-B1P6hQRJ.js';
1
+ import { R as React, r as reactExports, aO as reactDomExports, e9 as ReactDOM, I as create, j as jsxRuntimeExports, ea as createSlot, ak as useId, eb as Root, ec as Portal, ed as Overlay, ee as Content, ah as composeRefs, d9 as getDefaultExportFromCjs$2, ef as clsx, eg as shimExports$1, eh as katex, ei as Slot, y as resolveApiBaseUrl, c2 as uploadFileAuto, ej as nanoid, ek as cx } from './index-DjggJovS.js';
2
2
 
3
3
  // ::- Persistent data structure representing an ordered mapping from
4
4
  // strings to values, with some convenient update methods.
@@ -1,4 +1,4 @@
1
- import { j as jsxRuntimeExports, r as reactExports, R as React$1, _ as __vitePreload, d5 as createRoot, d6 as getAugmentedNamespace, aK as reactDomExports, d7 as getDefaultExportFromCjs } from './index-B1P6hQRJ.js';
1
+ import { j as jsxRuntimeExports, r as reactExports, R as React$1, _ as __vitePreload, d7 as createRoot, d8 as getAugmentedNamespace, aO as reactDomExports, d9 as getDefaultExportFromCjs } from './index-DjggJovS.js';
2
2
 
3
3
  const PAGE_DIMENSIONS = {
4
4
  /** A4 width in points */
@@ -1,6 +1,6 @@
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-B1P6hQRJ.js';
2
- import { d as defaultExtensions, s as setEditorMarkdown, U, I, r as resolveNotebookAssetUrl } from './NotebookEditor-BM7Bgwlv.js';
3
- import { g as generateBibTeX, I as InfoTriangleIcon, A as ArxivInfoModal } from './bibtex-C4QI-bbj.js';
1
+ import { o as useTabsStore, a as useWorkspaceSurfaceStore, p as useToast, q as useArxivStore, r as reactExports, c as copyToClipboard, s as apiClient, t as BUILTIN_PLUGINS, j as jsxRuntimeExports, k as FileText, b as cn, g as RefreshCw, M as MarkdownRenderer } from './index-DjggJovS.js';
2
+ import { d as defaultExtensions, s as setEditorMarkdown, U, I, r as resolveNotebookAssetUrl } from './NotebookEditor-DQgRezm_.js';
3
+ import { g as generateBibTeX, I as InfoTriangleIcon, A as ArxivInfoModal } from './bibtex-B-Hqu0Sg.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-B1P6hQRJ.js","assets/index-Do9N28uB.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-B1P6hQRJ.js';
3
- import { a as acquireFileSocket } from './file-socket-CRH59PCO.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DjggJovS.js","assets/index-DXZ1daiJ.css"])))=>i.map(i=>d[i]);
2
+ import { z as createLucideIcon, r as reactExports, u as useI18n, j as jsxRuntimeExports, Y as Download, b as cn, k as FileText, l as Search, X, m as ChevronUp, n as ChevronDown, I as create, s as apiClient, aQ as useQueryClient, aL as useQuery, bQ as useMutation, bR as Card, a3 as Button, bS as DropdownMenu, bT as DropdownMenuTrigger, bU as DropdownMenuContent, bV as DropdownMenuLabel, bW as DropdownMenuItem, bX as SegmentedControl, bt as CircleHelp, bY as Textarea, i as isCliFileId, o as useTabsStore, f as useFileTreeStore, a as useWorkspaceSurfaceStore, p as useToast, q as useArxivStore, x as useAuthStore, c as copyToClipboard, N as toFilesResourcePath, t as BUILTIN_PLUGINS, bZ as getFile, b_ as listProjectMembers, _ as __vitePreload, D as Sparkles, T as TriangleAlert, b$ as DropdownMenuRadioGroup, c0 as DropdownMenuRadioItem, c1 as MarkdownPreview } from './index-DjggJovS.js';
3
+ import { a as acquireFileSocket } from './file-socket-D2bTuMVP.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-C4QI-bbj.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-Bc5qfD-Z.js';
7
- import { M as MessageSquare } from './message-square-BsPDBhiY.js';
8
- import { Z as ZoomOut, a as ZoomIn } from './zoom-out-C0RJvFiJ.js';
9
- import { S as SquareCheckBig } from './index-BpjYH9Vg.js';
5
+ import { I as InfoTriangleIcon, g as generateBibTeX, A as ArxivInfoModal } from './bibtex-B-Hqu0Sg.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-DPa_-fv6.js';
7
+ import { M as MessageSquare } from './message-square-FUIPIhU2.js';
8
+ import { Z as ZoomOut, a as ZoomIn } from './zoom-out-RDpLugQP.js';
9
+ import { S as SquareCheckBig } from './index-D9QIGcmc.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-B1P6hQRJ.js').then(n => n.ei);return { createFileObjectUrl }},true?__vite__mapDeps([0,1]):void 0);
2459
+ const { createFileObjectUrl } = await __vitePreload(async () => { const { createFileObjectUrl } = await import('./index-DjggJovS.js').then(n => n.el);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-B1P6hQRJ.js').then(n => n.ei);return { downloadFileById }},true?__vite__mapDeps([0,1]):void 0);
2880
+ const { downloadFileById } = await __vitePreload(async () => { const { downloadFileById } = await import('./index-DjggJovS.js').then(n => n.el);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 { 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-B1P6hQRJ.js';
1
+ import { z as createLucideIcon, u as useI18n, r as reactExports, f as useFileTreeStore, o as useTabsStore, ay as useLabCopilotStore, a6 as useOpenFile, az as listLabAgents, aA as listLabQuests, aB as searchFiles, aC as searchLabQuest, t as BUILTIN_PLUGINS, aD as resolveAgentDisplayName, aE as resolveAgentMentionLabel, aF as resolveQuestLabel, aG as formatRelativeTime, j as jsxRuntimeExports, l as Search, X, b as cn, aH as FileIcon } from './index-DjggJovS.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,4 +1,4 @@
1
- import { z as createLucideIcon, r as reactExports, j as jsxRuntimeExports, d as Check, b as cn, a3 as Button } from './index-B1P6hQRJ.js';
1
+ import { z as createLucideIcon, r as reactExports, j as jsxRuntimeExports, d as Check, b as cn, a3 as Button } from './index-DjggJovS.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-B1P6hQRJ.js","assets/index-Do9N28uB.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-B1P6hQRJ.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DjggJovS.js","assets/index-DXZ1daiJ.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-DjggJovS.js';
3
3
  import { c as consumeFileJumpEffects } from './file-jump-queue-r5XKgJEV.js';
4
- import { H as Hash, W as WrapText } from './wrap-text-YC68g12z.js';
4
+ import { H as Hash, W as WrapText } from './wrap-text-BwyVuUIK.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-B1P6hQRJ.js').then(n => n.ei);return { getFileContent }},true?__vite__mapDeps([0,1]):void 0);
47
+ const { getFileContent } = await __vitePreload(async () => { const { getFileContent } = await import('./index-DjggJovS.js').then(n => n.el);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,14 +1,14 @@
1
- import { d7 as getDefaultExportFromCjs, r as reactExports, j as jsxRuntimeExports } from './index-B1P6hQRJ.js';
2
- import { g as getVncUrl } from './AiManusChatView-BS3V4ZOk.js';
3
- import './file-content-C3N-432K.js';
4
- import './file-utils-vYGtW2mI.js';
1
+ import { d9 as getDefaultExportFromCjs, r as reactExports, j as jsxRuntimeExports } from './index-DjggJovS.js';
2
+ import { g as getVncUrl } from './AiManusChatView-m2FNtwbn.js';
3
+ import './file-content-VqamwI3X.js';
4
+ import './file-utils--zJCPN1i.js';
5
5
  import './file-jump-queue-r5XKgJEV.js';
6
6
  import './pdf-effect-queue-DSw_D3RV.js';
7
- import './file-diff-panel-CffQ4ZMg.js';
8
- import './message-square-BsPDBhiY.js';
9
- import './NotebookEditor-BM7Bgwlv.js';
10
- import './tooltip-BdVDl0G5.js';
11
- import './trash-CB_GlQyC.js';
7
+ import './file-diff-panel-C_wOoS7a.js';
8
+ import './message-square-FUIPIhU2.js';
9
+ import './NotebookEditor-DQgRezm_.js';
10
+ import './tooltip-B1OspAkx.js';
11
+ import './trash-BsVEH_dV.js';
12
12
 
13
13
  var rfb = {};
14
14
 
@@ -1,4 +1,4 @@
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-B1P6hQRJ.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-DjggJovS.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,4 +1,4 @@
1
- import { z as createLucideIcon } from './index-B1P6hQRJ.js';
1
+ import { z as createLucideIcon } from './index-DjggJovS.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,4 +1,4 @@
1
- import { I as create, J as updateFileContent, K as getFileContent } from './index-B1P6hQRJ.js';
1
+ import { I as create, J as updateFileContent, K as getFileContent } from './index-DjggJovS.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-B1P6hQRJ.js';
1
+ import { r as reactExports, j as jsxRuntimeExports, X, b as cn } from './index-DjggJovS.js';
2
2
 
3
3
  const CHANGE_LABELS = {
4
4
  create: "Created",
@@ -1,4 +1,4 @@
1
- import { s as supportsSocketIo, o as lookup, p as useAuthStore, q as resolveApiBaseUrl } from './index-B1P6hQRJ.js';
1
+ import { v as supportsSocketIo, w as lookup, x as useAuthStore, y as resolveApiBaseUrl } from './index-DjggJovS.js';
2
2
 
3
3
  const getApiBaseUrl = resolveApiBaseUrl;
4
4
  const SOCKET_CACHE = /* @__PURE__ */ new Map();
@@ -1,4 +1,4 @@
1
- import { z as createLucideIcon } from './index-B1P6hQRJ.js';
1
+ import { z as createLucideIcon } from './index-DjggJovS.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,4 +1,4 @@
1
- import { z as createLucideIcon } from './index-B1P6hQRJ.js';
1
+ import { z as createLucideIcon } from './index-DjggJovS.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,5 +1,5 @@
1
- import { r as reactExports, G as ConnectionState, j as jsxRuntimeExports, H as EnhancedTerminal } from './index-B1P6hQRJ.js';
2
- import { u as useCliAccess, a as useCliSocket, n as nextSeq, b as buildChatSessionId } from './useCliAccess-BL932NwS.js';
1
+ import { r as reactExports, G as ConnectionState, j as jsxRuntimeExports, H as EnhancedTerminal } from './index-DjggJovS.js';
2
+ import { u as useCliAccess, a as useCliSocket, n as nextSeq, b as buildChatSessionId } from './useCliAccess-b8L6JuZm.js';
3
3
 
4
4
  function CliToolTerminal({
5
5
  projectId,
@@ -1,4 +1,4 @@
1
- import { z as createLucideIcon } from './index-B1P6hQRJ.js';
1
+ import { z as createLucideIcon } from './index-DjggJovS.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC