@researai/deepscientist 1.5.11 → 1.5.12

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 (102) hide show
  1. package/README.md +8 -8
  2. package/bin/ds.js +358 -61
  3. package/docs/en/00_QUICK_START.md +35 -3
  4. package/docs/en/01_SETTINGS_REFERENCE.md +11 -0
  5. package/docs/en/02_START_RESEARCH_GUIDE.md +68 -4
  6. package/docs/en/09_DOCTOR.md +28 -3
  7. package/docs/en/12_GUIDED_WORKFLOW_TOUR.md +21 -2
  8. package/docs/en/15_CODEX_PROVIDER_SETUP.md +284 -0
  9. package/docs/en/README.md +4 -0
  10. package/docs/zh/00_QUICK_START.md +34 -2
  11. package/docs/zh/01_SETTINGS_REFERENCE.md +11 -0
  12. package/docs/zh/02_START_RESEARCH_GUIDE.md +69 -3
  13. package/docs/zh/09_DOCTOR.md +28 -1
  14. package/docs/zh/12_GUIDED_WORKFLOW_TOUR.md +21 -2
  15. package/docs/zh/15_CODEX_PROVIDER_SETUP.md +285 -0
  16. package/docs/zh/README.md +4 -1
  17. package/package.json +1 -1
  18. package/pyproject.toml +1 -1
  19. package/src/deepscientist/__init__.py +1 -1
  20. package/src/deepscientist/bash_exec/monitor.py +7 -5
  21. package/src/deepscientist/bash_exec/service.py +84 -21
  22. package/src/deepscientist/channels/local.py +3 -3
  23. package/src/deepscientist/channels/qq.py +7 -7
  24. package/src/deepscientist/channels/relay.py +7 -7
  25. package/src/deepscientist/channels/weixin_ilink.py +90 -19
  26. package/src/deepscientist/config/models.py +1 -0
  27. package/src/deepscientist/config/service.py +121 -20
  28. package/src/deepscientist/daemon/app.py +314 -6
  29. package/src/deepscientist/doctor.py +1 -5
  30. package/src/deepscientist/mcp/server.py +124 -3
  31. package/src/deepscientist/prompts/builder.py +113 -11
  32. package/src/deepscientist/quest/service.py +247 -31
  33. package/src/deepscientist/runners/codex.py +121 -22
  34. package/src/deepscientist/runners/runtime_overrides.py +6 -0
  35. package/src/deepscientist/shared.py +33 -14
  36. package/src/prompts/connectors/qq.md +2 -1
  37. package/src/prompts/connectors/weixin.md +2 -1
  38. package/src/prompts/contracts/shared_interaction.md +4 -1
  39. package/src/prompts/system.md +59 -9
  40. package/src/skills/analysis-campaign/SKILL.md +46 -6
  41. package/src/skills/analysis-campaign/references/campaign-plan-template.md +21 -8
  42. package/src/skills/baseline/SKILL.md +1 -1
  43. package/src/skills/decision/SKILL.md +1 -1
  44. package/src/skills/experiment/SKILL.md +1 -1
  45. package/src/skills/finalize/SKILL.md +1 -1
  46. package/src/skills/idea/SKILL.md +1 -1
  47. package/src/skills/intake-audit/SKILL.md +1 -1
  48. package/src/skills/rebuttal/SKILL.md +74 -1
  49. package/src/skills/rebuttal/references/response-letter-template.md +55 -11
  50. package/src/skills/review/SKILL.md +118 -1
  51. package/src/skills/review/references/experiment-todo-template.md +23 -0
  52. package/src/skills/review/references/review-report-template.md +16 -0
  53. package/src/skills/review/references/revision-log-template.md +4 -0
  54. package/src/skills/scout/SKILL.md +1 -1
  55. package/src/skills/write/SKILL.md +168 -7
  56. package/src/skills/write/references/paper-experiment-matrix-template.md +131 -0
  57. package/src/tui/package.json +1 -1
  58. package/src/ui/dist/assets/{AiManusChatView-D0mTXG4-.js → AiManusChatView-CnJcXynW.js} +12 -12
  59. package/src/ui/dist/assets/{AnalysisPlugin-Db0cTXxm.js → AnalysisPlugin-DeyzPEhV.js} +1 -1
  60. package/src/ui/dist/assets/{CliPlugin-DrV8je02.js → CliPlugin-CB1YODQn.js} +9 -9
  61. package/src/ui/dist/assets/{CodeEditorPlugin-QXMSCH71.js → CodeEditorPlugin-B-xicq1e.js} +8 -8
  62. package/src/ui/dist/assets/{CodeViewerPlugin-7hhtWj_E.js → CodeViewerPlugin-DT54ysXa.js} +5 -5
  63. package/src/ui/dist/assets/{DocViewerPlugin-BWMSnRJe.js → DocViewerPlugin-DQtKT-VD.js} +3 -3
  64. package/src/ui/dist/assets/{GitDiffViewerPlugin-7J9h9Vy_.js → GitDiffViewerPlugin-hqHbCfnv.js} +20 -20
  65. package/src/ui/dist/assets/{ImageViewerPlugin-CHJl_0lr.js → ImageViewerPlugin-OcVo33jV.js} +5 -5
  66. package/src/ui/dist/assets/{LabCopilotPanel-1qSow1es.js → LabCopilotPanel-DdGwhEUV.js} +11 -11
  67. package/src/ui/dist/assets/{LabPlugin-eQpPPCEp.js → LabPlugin-Ciz1gDaX.js} +2 -2
  68. package/src/ui/dist/assets/{LatexPlugin-BwRfi89Z.js → LatexPlugin-BhmjNQRC.js} +37 -11
  69. package/src/ui/dist/assets/{MarkdownViewerPlugin-836PVQWV.js → MarkdownViewerPlugin-BzdVH9Bx.js} +4 -4
  70. package/src/ui/dist/assets/{MarketplacePlugin-C2y_556i.js → MarketplacePlugin-DmyHspXt.js} +3 -3
  71. package/src/ui/dist/assets/{NotebookEditor-DIX7Mlzu.js → NotebookEditor-BMXKrDRk.js} +1 -1
  72. package/src/ui/dist/assets/{NotebookEditor-BRzJbGsn.js → NotebookEditor-BTVYRGkm.js} +11 -11
  73. package/src/ui/dist/assets/{PdfLoader-DzRaTAlq.js → PdfLoader-CvcjJHXv.js} +1 -1
  74. package/src/ui/dist/assets/{PdfMarkdownPlugin-DZUfIUnp.js → PdfMarkdownPlugin-DW2ej8Vk.js} +2 -2
  75. package/src/ui/dist/assets/{PdfViewerPlugin-BwtICzue.js → PdfViewerPlugin-CmlDxbhU.js} +10 -10
  76. package/src/ui/dist/assets/{SearchPlugin-DHeIAMsx.js → SearchPlugin-DAjQZPSv.js} +1 -1
  77. package/src/ui/dist/assets/{TextViewerPlugin-C3tCmFox.js → TextViewerPlugin-C-nVAZb_.js} +5 -5
  78. package/src/ui/dist/assets/{VNCViewer-CQsKVm3t.js → VNCViewer-D7-dIYon.js} +10 -10
  79. package/src/ui/dist/assets/{bot-BEA2vWuK.js → bot-C_G4WtNI.js} +1 -1
  80. package/src/ui/dist/assets/{code-XfbSR8K2.js → code-Cd7WfiWq.js} +1 -1
  81. package/src/ui/dist/assets/{file-content-BjxNaIfy.js → file-content-B57zsL9y.js} +1 -1
  82. package/src/ui/dist/assets/{file-diff-panel-D_lLVQk0.js → file-diff-panel-DVoheLFq.js} +1 -1
  83. package/src/ui/dist/assets/{file-socket-D9x_5vlY.js → file-socket-B5kXFxZP.js} +1 -1
  84. package/src/ui/dist/assets/{image-BhWT33W1.js → image-LLOjkMHF.js} +1 -1
  85. package/src/ui/dist/assets/{index-Dqj-Mjb4.css → index-BQG-1s2o.css} +40 -2
  86. package/src/ui/dist/assets/{index--c4iXtuy.js → index-C3r2iGrp.js} +12 -12
  87. package/src/ui/dist/assets/{index-DZTZ8mWP.js → index-CLQauncb.js} +911 -120
  88. package/src/ui/dist/assets/{index-PJbSbPTy.js → index-Dxa2eYMY.js} +1 -1
  89. package/src/ui/dist/assets/{index-BDxipwrC.js → index-hOUOWbW2.js} +2 -2
  90. package/src/ui/dist/assets/{monaco-K8izTGgo.js → monaco-BGGAEii3.js} +1 -1
  91. package/src/ui/dist/assets/{pdf-effect-queue-DfBors6y.js → pdf-effect-queue-DlEr1_y5.js} +1 -1
  92. package/src/ui/dist/assets/{popover-yFK1J4fL.js → popover-CWJbJuYY.js} +1 -1
  93. package/src/ui/dist/assets/{project-sync-PENr2zcz.js → project-sync-CRJiucYO.js} +18 -4
  94. package/src/ui/dist/assets/{select-CAbJDfYv.js → select-CoHB7pvH.js} +2 -2
  95. package/src/ui/dist/assets/{sigma-DEuYJqTl.js → sigma-D5aJWR8J.js} +1 -1
  96. package/src/ui/dist/assets/{square-check-big-omoSUmcd.js → square-check-big-DUK_mnkS.js} +1 -1
  97. package/src/ui/dist/assets/{trash--F119N47.js → trash-ChU3SEE3.js} +1 -1
  98. package/src/ui/dist/assets/{useCliAccess-D31UR23I.js → useCliAccess-BrJBV3tY.js} +1 -1
  99. package/src/ui/dist/assets/{useFileDiffOverlay-BH6KcMzq.js → useFileDiffOverlay-C2OQaVWc.js} +1 -1
  100. package/src/ui/dist/assets/{wrap-text-CZ613PM5.js → wrap-text-C7Qqh-om.js} +1 -1
  101. package/src/ui/dist/assets/{zoom-out-BgDLAv3z.js → zoom-out-rtX0FKya.js} +1 -1
  102. package/src/ui/dist/index.html +2 -2
@@ -1,14 +1,14 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-BDxipwrC.js","assets/index-DZTZ8mWP.js","assets/index-Dqj-Mjb4.css","assets/useCliAccess-D31UR23I.js","assets/VNCViewer-CQsKVm3t.js","assets/file-content-BjxNaIfy.js","assets/select-CAbJDfYv.js","assets/index-PJbSbPTy.js","assets/file-jump-queue-r5XKgJEV.js","assets/pdf-effect-queue-DfBors6y.js","assets/file-diff-panel-D_lLVQk0.js","assets/bot-BEA2vWuK.js","assets/NotebookEditor-DIX7Mlzu.js","assets/NotebookEditor-C3VQ7ylN.css","assets/trash--F119N47.js"])))=>i.map(i=>d[i]);
2
- import { w as createLucideIcon, r as reactExports, ce as useIsomorphicLayoutEffect, cg as frame_1, d8 as LayoutGroupContext, d9 as nodeGroup_1, j as jsxRuntimeExports, cj as useConstant, t as apiClient, bE as isQuestRuntimeSurface, da as shouldUseQuestProject, bF as getApiBaseUrl, db as deriveMcpIdentity, dc as supportsProductApis, cV as axios, dd as getCachedValue, de as setCachedValue, df as recordRequestEvent, dg as redactSensitive, dh as sanitizeUrl, di as refreshAccessToken, aV as useChatSessionStore, cF as getMyToken, bG as redirectToLanding, Q as create$1, aA as useLabCopilotStore, bH as useCliStore, dj as EXPLORER_REFRESH_EVENT, n as useTabsStore, cX as buildCliFileId, dk as getCliFileName, cY as toCliResourcePath, aM as getPluginIdFromExtension, v as BUILTIN_PLUGINS, b as cn, dl as GripVertical, f as useFileTreeStore, W as toFilesResourcePath, aL as getPluginIdFromMimeType, T as TriangleAlert, dm as resolveMcpIdentity, dn as getToolArgsRecord, dp as getToolResultRecord, dq as getToolResultValue, dr as asString$2, ds as asRecord$4, dt as asStringArray, du as extractPathEntries, dv as BookOpenText, dw as Clock3, dx as truncateText, dy as ArrowUpRight, l as Search, dz as Database, dA as ArrowRightLeft, N as Sparkles, k as FileText, by as GitBranch, dB as asBoolean, dC as asNumber, dD as BASH_CARRIAGE_RETURN_PREFIX, aN as useQuery, br as CircleHelp, dE as Activity, bt as Clock, dF as truncateText$1, dG as listLabPendingQuestions, dH as listLabQuestionHistory, af as BookOpen, dI as ExternalLink, u as useI18n, dJ as GraduationCap, dK as normalizeWebSearchPayload, dL as WebSearchQueryPills, dM as WebSearchResults, P as EnhancedTerminal, h as dynamic, _ as __vitePreload, dN as BashToolView, ac as Terminal, o as useToast, dO as getMimeTypeFromExtension, dP as getFileTextPreview, c2 as createFileObjectUrl, c as copyToClipboard, cp as ChevronLeft, cs as Folder, m as ChevronDown, X as X$1, L as LoaderCircle, aJ as FileIcon, dQ as formatFileSize, E as Eye, e as Copy, ba as Dialog, bb as DialogContent, co as ChevronRight, dR as ConfirmModal, dS as RotatingText, d as Check, aS as useReducedMotion, dT as useTokenStream, dU as McpBashExecView, dV as PngIcon, dW as Brain, dX as BRAND_LOGO_SMALL_SRC, dY as BRAND_LOGO_SMALL_SRC_INVERTED, dZ as CircleX, b0 as motion, bd as DialogTitle, ct as DialogDescription, bT as DropdownMenu, bU as DropdownMenuTrigger, b8 as Ellipsis, bV as DropdownMenuContent, bX as DropdownMenuItem, cB as DropdownMenuSeparator, cq as GlareHover, cA as SpotlightCard, d4 as Noise, b9 as Plus, ai as Info, a2 as Play, d_ as getWorkspaceContentTone, a$ as AnimatePresence, ab as useOpenFile, a as useWorkspaceSurfaceStore, z as useAuthStore, d$ as useSearchParams, e0 as useAgentRegistryStore, e1 as PanelLeft, e2 as parseCliFileId, c0 as getFile, bL as getProject, cI as refreshCliServerStatus, e3 as COPILOT_FILES_ENABLED, a0 as listLatexBuilds, a6 as getLatexBuildLogText, $ as compileLatex, e4 as ThinkingIndicator, e5 as assetUrl, e6 as VariableSizeList, bs as OrbitLogoStatus, aR as reactDomExports, e7 as ChatScrollProvider, bc as DialogHeader, be as DialogFooter } from './index-DZTZ8mWP.js';
3
- import { u as useFileContentStore } from './file-content-BjxNaIfy.js';
4
- import { n as normalizePath$1, j as joinPath, s as splitPath, e as Server, L as Layers, S as Select, a as SelectTrigger, c as SelectContent, d as SelectItem } from './select-CAbJDfYv.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-hOUOWbW2.js","assets/index-CLQauncb.js","assets/index-BQG-1s2o.css","assets/useCliAccess-BrJBV3tY.js","assets/VNCViewer-D7-dIYon.js","assets/file-content-B57zsL9y.js","assets/select-CoHB7pvH.js","assets/index-Dxa2eYMY.js","assets/file-jump-queue-r5XKgJEV.js","assets/pdf-effect-queue-DlEr1_y5.js","assets/file-diff-panel-DVoheLFq.js","assets/bot-C_G4WtNI.js","assets/NotebookEditor-BMXKrDRk.js","assets/NotebookEditor-C3VQ7ylN.css","assets/trash-ChU3SEE3.js"])))=>i.map(i=>d[i]);
2
+ import { w as createLucideIcon, r as reactExports, ce as useIsomorphicLayoutEffect, cg as frame_1, d8 as LayoutGroupContext, d9 as nodeGroup_1, j as jsxRuntimeExports, cj as useConstant, t as apiClient, bE as isQuestRuntimeSurface, da as shouldUseQuestProject, bF as getApiBaseUrl, db as deriveMcpIdentity, dc as supportsProductApis, cV as axios, dd as getCachedValue, de as setCachedValue, df as recordRequestEvent, dg as redactSensitive, dh as sanitizeUrl, di as refreshAccessToken, aV as useChatSessionStore, cF as getMyToken, bG as redirectToLanding, Q as create$1, aA as useLabCopilotStore, bH as useCliStore, dj as EXPLORER_REFRESH_EVENT, n as useTabsStore, cX as buildCliFileId, dk as getCliFileName, cY as toCliResourcePath, aM as getPluginIdFromExtension, v as BUILTIN_PLUGINS, b as cn, dl as GripVertical, f as useFileTreeStore, W as toFilesResourcePath, aL as getPluginIdFromMimeType, T as TriangleAlert, dm as resolveMcpIdentity, dn as getToolArgsRecord, dp as getToolResultRecord, dq as getToolResultValue, dr as asString$2, ds as asRecord$4, dt as asStringArray, du as extractPathEntries, dv as BookOpenText, dw as Clock3, dx as truncateText, dy as ArrowUpRight, l as Search, dz as Database, dA as ArrowRightLeft, N as Sparkles, k as FileText, by as GitBranch, dB as asBoolean, dC as asNumber, dD as BASH_CARRIAGE_RETURN_PREFIX, aN as useQuery, br as CircleHelp, dE as Activity, bt as Clock, dF as truncateText$1, dG as listLabPendingQuestions, dH as listLabQuestionHistory, af as BookOpen, dI as ExternalLink, u as useI18n, dJ as GraduationCap, dK as normalizeWebSearchPayload, dL as WebSearchQueryPills, dM as WebSearchResults, P as EnhancedTerminal, h as dynamic, _ as __vitePreload, dN as BashToolView, ac as Terminal, o as useToast, dO as getMimeTypeFromExtension, dP as getFileTextPreview, c2 as createFileObjectUrl, c as copyToClipboard, cp as ChevronLeft, cs as Folder, m as ChevronDown, X as X$1, L as LoaderCircle, aJ as FileIcon, dQ as formatFileSize, E as Eye, e as Copy, ba as Dialog, bb as DialogContent, co as ChevronRight, dR as ConfirmModal, dS as RotatingText, d as Check, aS as useReducedMotion, dT as useTokenStream, dU as McpBashExecView, dV as PngIcon, dW as Brain, dX as BRAND_LOGO_SMALL_SRC, dY as BRAND_LOGO_SMALL_SRC_INVERTED, dZ as CircleX, b0 as motion, bd as DialogTitle, ct as DialogDescription, bT as DropdownMenu, bU as DropdownMenuTrigger, b8 as Ellipsis, bV as DropdownMenuContent, bX as DropdownMenuItem, cB as DropdownMenuSeparator, cq as GlareHover, cA as SpotlightCard, d4 as Noise, b9 as Plus, ai as Info, a2 as Play, d_ as getWorkspaceContentTone, a$ as AnimatePresence, ab as useOpenFile, a as useWorkspaceSurfaceStore, z as useAuthStore, d$ as useSearchParams, e0 as useAgentRegistryStore, e1 as PanelLeft, e2 as parseCliFileId, c0 as getFile, bL as getProject, cI as refreshCliServerStatus, e3 as COPILOT_FILES_ENABLED, a0 as listLatexBuilds, a6 as getLatexBuildLogText, $ as compileLatex, e4 as ThinkingIndicator, e5 as assetUrl, e6 as VariableSizeList, bs as OrbitLogoStatus, aR as reactDomExports, e7 as ChatScrollProvider, bc as DialogHeader, be as DialogFooter } from './index-CLQauncb.js';
3
+ import { u as useFileContentStore } from './file-content-B57zsL9y.js';
4
+ import { n as normalizePath$1, j as joinPath, s as splitPath, e as Server, L as Layers, S as Select, a as SelectTrigger, c as SelectContent, d as SelectItem } from './select-CoHB7pvH.js';
5
5
  import { q as queueFileJumpEffect } from './file-jump-queue-r5XKgJEV.js';
6
- import { q as queuePdfEffect, M as MessageSquare } from './pdf-effect-queue-DfBors6y.js';
7
- import { F as FileDiffPanel } from './file-diff-panel-D_lLVQk0.js';
8
- import { B as Bot } from './bot-BEA2vWuK.js';
9
- import { C as ChevronUp } from './index-PJbSbPTy.js';
10
- import { v as ve$2, d as defaultExtensions, g as getEditorMarkdown, s as setEditorMarkdown, U as U$2, I as I$1 } from './NotebookEditor-DIX7Mlzu.js';
11
- import { T as Trash, A as ArrowDown } from './trash--F119N47.js';
6
+ import { q as queuePdfEffect, M as MessageSquare } from './pdf-effect-queue-DlEr1_y5.js';
7
+ import { F as FileDiffPanel } from './file-diff-panel-DVoheLFq.js';
8
+ import { B as Bot } from './bot-C_G4WtNI.js';
9
+ import { C as ChevronUp } from './index-Dxa2eYMY.js';
10
+ import { v as ve$2, d as defaultExtensions, g as getEditorMarkdown, s as setEditorMarkdown, U as U$2, I as I$1 } from './NotebookEditor-BMXKrDRk.js';
11
+ import { T as Trash, A as ArrowDown } from './trash-ChU3SEE3.js';
12
12
 
13
13
  /**
14
14
  * @license lucide-react v0.511.0 - ISC
@@ -11538,7 +11538,7 @@ function SearchToolView({ toolContent, panelMode }) {
11538
11538
  }
11539
11539
 
11540
11540
  const CliToolTerminal = dynamic(
11541
- () => __vitePreload(() => import('./index-BDxipwrC.js'),true?__vite__mapDeps([0,1,2,3]):void 0).then((mod) => mod.CliToolTerminal),
11541
+ () => __vitePreload(() => import('./index-hOUOWbW2.js'),true?__vite__mapDeps([0,1,2,3]):void 0).then((mod) => mod.CliToolTerminal),
11542
11542
  {
11543
11543
  loading: () => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex h-full items-center justify-center text-xs text-[var(--text-tertiary)]", children: "Loading terminal..." })
11544
11544
  }
@@ -18501,7 +18501,7 @@ function pickGreetingTemplate() {
18501
18501
  return GREETING_TEMPLATES[index];
18502
18502
  }
18503
18503
  const VNCViewer = dynamic(
18504
- () => __vitePreload(() => import('./VNCViewer-CQsKVm3t.js'),true?__vite__mapDeps([4,1,2,5,6,7,8,9,10,11,12,13,14]):void 0).then((mod) => mod.VNCViewer),
18504
+ () => __vitePreload(() => import('./VNCViewer-D7-dIYon.js'),true?__vite__mapDeps([4,1,2,5,6,7,8,9,10,11,12,13,14]):void 0).then((mod) => mod.VNCViewer),
18505
18505
  {
18506
18506
  loading: () => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex h-full w-full items-center justify-center text-sm text-[var(--text-tertiary)]", children: "Loading sandbox view..." })
18507
18507
  }
@@ -1,4 +1,4 @@
1
- import { r as reactExports, c as copyToClipboard, j as jsxRuntimeExports, k as FileText, l as Search, K as ChartColumn, N as Sparkles, d as Check, e as Copy, b as cn } from './index-DZTZ8mWP.js';
1
+ import { r as reactExports, c as copyToClipboard, j as jsxRuntimeExports, k as FileText, l as Search, K as ChartColumn, N as Sparkles, d as Check, e as Copy, b as cn } from './index-CLQauncb.js';
2
2
 
3
3
  const actions = [
4
4
  {
@@ -1,9 +1,9 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-PJbSbPTy.js","assets/index-DZTZ8mWP.js","assets/index-Dqj-Mjb4.css"])))=>i.map(i=>d[i]);
2
- import { w as createLucideIcon, cd as useMotionValue, ce as useIsomorphicLayoutEffect, cf as cancelFrame_1, cg as frame_1, ch as collectMotionValues_1, ci as transform_1, cj as useConstant, r as reactExports, ck as MotionConfigContext, cl as attachFollow_1, cm as isMotionValue_1, cn as useInView, j as jsxRuntimeExports, d as Check, b as cn, aO as Button, u as useI18n, bH as useCliStore, _ as __vitePreload, co as ChevronRight, g as RefreshCw, b9 as Plus, b4 as ScrollArea, cp as ChevronLeft, cq as GlareHover, cr as Input, l as Search, k as FileText, cs as Folder, ac as Terminal, N as Sparkles, ba as Dialog, bb as DialogContent, bc as DialogHeader, bd as DialogTitle, ct as DialogDescription, be as DialogFooter, cu as useTerminal, cv as uploadCliFile, bZ as Textarea, cw as CircleCheck, Q as create, cx as persist, o as useToast, cy as unbindCliServer, O as ConnectionState, cz as updateCliSession, cA as SpotlightCard, bT as DropdownMenu, bU as DropdownMenuTrigger, bV as DropdownMenuContent, bX as DropdownMenuItem, a2 as Play, cB as DropdownMenuSeparator, X, cC as Pencil, P as EnhancedTerminal, cD as listCliSessions, cE as FadeContent, t as apiClient, cF as getMyToken, c as copyToClipboard, cG as Bell, c9 as Trash2, cH as getCliServerMetrics, cI as refreshCliServerStatus, cJ as ResponsiveContainer, cK as LineChart, cL as XAxis, cM as YAxis, cN as Tooltip, cO as Line, cP as getCliHealth, cQ as Cpu, cR as listCliFiles, cS as readCliFile, cT as writeCliFile, cU as deleteCliFile, cV as axios, a3 as Download, n as useTabsStore, aM as getPluginIdFromExtension, v as BUILTIN_PLUGINS, aL as getPluginIdFromMimeType, cW as downloadCliFile, cX as buildCliFileId, cY as toCliResourcePath, cZ as Upload, L as LoaderCircle, c_ as listCliLogs, c$ as getCliLogObject, d0 as listCliTasks, T as TriangleAlert, d1 as listCliFindings, d2 as listCliMethods, d3 as createCliMethod, bM as useMaxEntitlement, d4 as Noise } from './index-DZTZ8mWP.js';
3
- import { e as Server, S as Select, a as SelectTrigger, b as SelectValue, c as SelectContent, d as SelectItem, L as Layers, n as normalizePath, f as formatFileSize, s as splitPath, j as joinPath, g as findSensitiveMarker, D as DOWNLOAD_MAX_BYTES, T as TEXT_PREVIEW_MAX_BYTES } from './select-CAbJDfYv.js';
4
- import { S as SquareCheckBig } from './square-check-big-omoSUmcd.js';
5
- import { w as wrapEnvelope, g as getCliClientId, c as acquireCliSocket, n as nextSeq, d as unwrapPayload, a as useCliSocket, e as buildDefaultSessionId, f as buildConversationSessionId, u as useCliAccess } from './useCliAccess-D31UR23I.js';
6
- import './index-PJbSbPTy.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-Dxa2eYMY.js","assets/index-CLQauncb.js","assets/index-BQG-1s2o.css"])))=>i.map(i=>d[i]);
2
+ import { w as createLucideIcon, cd as useMotionValue, ce as useIsomorphicLayoutEffect, cf as cancelFrame_1, cg as frame_1, ch as collectMotionValues_1, ci as transform_1, cj as useConstant, r as reactExports, ck as MotionConfigContext, cl as attachFollow_1, cm as isMotionValue_1, cn as useInView, j as jsxRuntimeExports, d as Check, b as cn, aO as Button, u as useI18n, bH as useCliStore, _ as __vitePreload, co as ChevronRight, g as RefreshCw, b9 as Plus, b4 as ScrollArea, cp as ChevronLeft, cq as GlareHover, cr as Input, l as Search, k as FileText, cs as Folder, ac as Terminal, N as Sparkles, ba as Dialog, bb as DialogContent, bc as DialogHeader, bd as DialogTitle, ct as DialogDescription, be as DialogFooter, cu as useTerminal, cv as uploadCliFile, bZ as Textarea, cw as CircleCheck, Q as create, cx as persist, o as useToast, cy as unbindCliServer, O as ConnectionState, cz as updateCliSession, cA as SpotlightCard, bT as DropdownMenu, bU as DropdownMenuTrigger, bV as DropdownMenuContent, bX as DropdownMenuItem, a2 as Play, cB as DropdownMenuSeparator, X, cC as Pencil, P as EnhancedTerminal, cD as listCliSessions, cE as FadeContent, t as apiClient, cF as getMyToken, c as copyToClipboard, cG as Bell, c9 as Trash2, cH as getCliServerMetrics, cI as refreshCliServerStatus, cJ as ResponsiveContainer, cK as LineChart, cL as XAxis, cM as YAxis, cN as Tooltip, cO as Line, cP as getCliHealth, cQ as Cpu, cR as listCliFiles, cS as readCliFile, cT as writeCliFile, cU as deleteCliFile, cV as axios, a3 as Download, n as useTabsStore, aM as getPluginIdFromExtension, v as BUILTIN_PLUGINS, aL as getPluginIdFromMimeType, cW as downloadCliFile, cX as buildCliFileId, cY as toCliResourcePath, cZ as Upload, L as LoaderCircle, c_ as listCliLogs, c$ as getCliLogObject, d0 as listCliTasks, T as TriangleAlert, d1 as listCliFindings, d2 as listCliMethods, d3 as createCliMethod, bM as useMaxEntitlement, d4 as Noise } from './index-CLQauncb.js';
3
+ import { e as Server, S as Select, a as SelectTrigger, b as SelectValue, c as SelectContent, d as SelectItem, L as Layers, n as normalizePath, f as formatFileSize, s as splitPath, j as joinPath, g as findSensitiveMarker, D as DOWNLOAD_MAX_BYTES, T as TEXT_PREVIEW_MAX_BYTES } from './select-CoHB7pvH.js';
4
+ import { S as SquareCheckBig } from './square-check-big-DUK_mnkS.js';
5
+ import { w as wrapEnvelope, g as getCliClientId, c as acquireCliSocket, n as nextSeq, d as unwrapPayload, a as useCliSocket, e as buildDefaultSessionId, f as buildConversationSessionId, u as useCliAccess } from './useCliAccess-BrJBV3tY.js';
6
+ import './index-Dxa2eYMY.js';
7
7
 
8
8
  /**
9
9
  * @license lucide-react v0.511.0 - ISC
@@ -678,7 +678,7 @@ function ServerList({
678
678
  const container = listRef.current;
679
679
  const targets = container.querySelectorAll("[data-cli-server-card]");
680
680
  if (targets.length === 0) return;
681
- __vitePreload(async () => { const {default: anime} = await import('./index-PJbSbPTy.js').then(n => n.i);return { default: anime }},true?__vite__mapDeps([0,1,2]):void 0).then(({ default: anime }) => {
681
+ __vitePreload(async () => { const {default: anime} = await import('./index-Dxa2eYMY.js').then(n => n.i);return { default: anime }},true?__vite__mapDeps([0,1,2]):void 0).then(({ default: anime }) => {
682
682
  if (cancelled) return;
683
683
  anime({
684
684
  targets,
@@ -5074,7 +5074,7 @@ function TasksPanel({ projectId, serverId }) {
5074
5074
  let cancelled = false;
5075
5075
  const targets = listRef.current.querySelectorAll("[data-cli-task-item]");
5076
5076
  if (targets.length === 0) return;
5077
- __vitePreload(async () => { const {default: anime} = await import('./index-PJbSbPTy.js').then(n => n.i);return { default: anime }},true?__vite__mapDeps([0,1,2]):void 0).then(({ default: anime }) => {
5077
+ __vitePreload(async () => { const {default: anime} = await import('./index-Dxa2eYMY.js').then(n => n.i);return { default: anime }},true?__vite__mapDeps([0,1,2]):void 0).then(({ default: anime }) => {
5078
5078
  if (cancelled) return;
5079
5079
  anime({
5080
5080
  targets,
@@ -5201,7 +5201,7 @@ function FindingsPanel({ projectId, serverId }) {
5201
5201
  let cancelled = false;
5202
5202
  const targets = listRef.current.querySelectorAll("[data-cli-finding-item]");
5203
5203
  if (targets.length === 0) return;
5204
- __vitePreload(async () => { const {default: anime} = await import('./index-PJbSbPTy.js').then(n => n.i);return { default: anime }},true?__vite__mapDeps([0,1,2]):void 0).then(({ default: anime }) => {
5204
+ __vitePreload(async () => { const {default: anime} = await import('./index-Dxa2eYMY.js').then(n => n.i);return { default: anime }},true?__vite__mapDeps([0,1,2]):void 0).then(({ default: anime }) => {
5205
5205
  if (cancelled) return;
5206
5206
  anime({
5207
5207
  targets,
@@ -1,12 +1,12 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/monaco-K8izTGgo.js","assets/index-DZTZ8mWP.js","assets/index-Dqj-Mjb4.css"])))=>i.map(i=>d[i]);
2
- import { i as isCliFileId, R as React, f as useFileTreeStore, j as jsxRuntimeExports, b as cn, L as LoaderCircle, S as Save, B as Braces, g as RefreshCw, h as dynamic, _ as __vitePreload } from './index-DZTZ8mWP.js';
3
- import { u as useFileContentStore, a as useFileContentLoading } from './file-content-BjxNaIfy.js';
4
- import { a as acquireFileSocket } from './file-socket-D9x_5vlY.js';
5
- import { c as configureMonacoLoader } from './monaco-K8izTGgo.js';
6
- import { u as useFileDiffOverlay } from './useFileDiffOverlay-BH6KcMzq.js';
7
- import { F as FileDiffPanel } from './file-diff-panel-D_lLVQk0.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/monaco-BGGAEii3.js","assets/index-CLQauncb.js","assets/index-BQG-1s2o.css"])))=>i.map(i=>d[i]);
2
+ import { i as isCliFileId, R as React, f as useFileTreeStore, j as jsxRuntimeExports, b as cn, L as LoaderCircle, S as Save, B as Braces, g as RefreshCw, h as dynamic, _ as __vitePreload } from './index-CLQauncb.js';
3
+ import { u as useFileContentStore, a as useFileContentLoading } from './file-content-B57zsL9y.js';
4
+ import { a as acquireFileSocket } from './file-socket-B5kXFxZP.js';
5
+ import { c as configureMonacoLoader } from './monaco-BGGAEii3.js';
6
+ import { u as useFileDiffOverlay } from './useFileDiffOverlay-C2OQaVWc.js';
7
+ import { F as FileDiffPanel } from './file-diff-panel-DVoheLFq.js';
8
8
 
9
- const MonacoEditor = dynamic(() => __vitePreload(() => import('./monaco-K8izTGgo.js').then(n => n.i),true?__vite__mapDeps([0,1,2]):void 0), { });
9
+ const MonacoEditor = dynamic(() => __vitePreload(() => import('./monaco-BGGAEii3.js').then(n => n.i),true?__vite__mapDeps([0,1,2]):void 0), { });
10
10
  configureMonacoLoader();
11
11
  function getLanguageFromName(name) {
12
12
  const lower = name.toLowerCase();
@@ -1,8 +1,8 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DZTZ8mWP.js","assets/index-Dqj-Mjb4.css"])))=>i.map(i=>d[i]);
2
- import { u as useI18n, a as useWorkspaceSurfaceStore, r as reactExports, c as copyToClipboard, j as jsxRuntimeExports, L as LoaderCircle, C as CircleAlert, F as FileCode, E as Eye, b as cn, d as Check, e as Copy, _ as __vitePreload } from './index-DZTZ8mWP.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CLQauncb.js","assets/index-BQG-1s2o.css"])))=>i.map(i=>d[i]);
2
+ import { u as useI18n, a as useWorkspaceSurfaceStore, r as reactExports, c as copyToClipboard, j as jsxRuntimeExports, L as LoaderCircle, C as CircleAlert, F as FileCode, E as Eye, b as cn, d as Check, e as Copy, _ as __vitePreload } from './index-CLQauncb.js';
3
3
  import { c as consumeFileJumpEffects } from './file-jump-queue-r5XKgJEV.js';
4
- import { C as Code } from './code-XfbSR8K2.js';
5
- import { H as Hash, W as WrapText } from './wrap-text-CZ613PM5.js';
4
+ import { C as Code } from './code-Cd7WfiWq.js';
5
+ import { H as Hash, W as WrapText } from './wrap-text-C7Qqh-om.js';
6
6
 
7
7
  const EXTENSION_TO_LANGUAGE = {
8
8
  // JavaScript/TypeScript
@@ -416,7 +416,7 @@ function CodeViewerPlugin({
416
416
  setLoading(false);
417
417
  return;
418
418
  }
419
- const { getFileContent } = await __vitePreload(async () => { const { getFileContent } = await import('./index-DZTZ8mWP.js').then(n => n.el);return { getFileContent }},true?__vite__mapDeps([0,1]):void 0);
419
+ const { getFileContent } = await __vitePreload(async () => { const { getFileContent } = await import('./index-CLQauncb.js').then(n => n.el);return { getFileContent }},true?__vite__mapDeps([0,1]):void 0);
420
420
  const text = await getFileContent(context.resourceId);
421
421
  setContent(text);
422
422
  } catch (err) {
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DZTZ8mWP.js","assets/index-Dqj-Mjb4.css"])))=>i.map(i=>d[i]);
2
- import { w as createLucideIcon, u as useI18n, r as reactExports, j as jsxRuntimeExports, L as LoaderCircle, b as cn, T as TriangleAlert, a3 as Download, _ as __vitePreload, a9 as FileSpreadsheet, k as FileText } from './index-DZTZ8mWP.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CLQauncb.js","assets/index-BQG-1s2o.css"])))=>i.map(i=>d[i]);
2
+ import { w as createLucideIcon, u as useI18n, r as reactExports, j as jsxRuntimeExports, L as LoaderCircle, b as cn, T as TriangleAlert, a3 as Download, _ as __vitePreload, a9 as FileSpreadsheet, k as FileText } from './index-CLQauncb.js';
3
3
 
4
4
  /**
5
5
  * @license lucide-react v0.511.0 - ISC
@@ -228,7 +228,7 @@ function DocViewerPlugin({
228
228
  if (!context.resourceId) return;
229
229
  (async () => {
230
230
  try {
231
- const { downloadFileById } = await __vitePreload(async () => { const { downloadFileById } = await import('./index-DZTZ8mWP.js').then(n => n.el);return { downloadFileById }},true?__vite__mapDeps([0,1]):void 0);
231
+ const { downloadFileById } = await __vitePreload(async () => { const { downloadFileById } = await import('./index-CLQauncb.js').then(n => n.el);return { downloadFileById }},true?__vite__mapDeps([0,1]):void 0);
232
232
  await downloadFileById(context.resourceId, fileName);
233
233
  } catch (err) {
234
234
  console.error("Failed to download document:", err);
@@ -1,25 +1,25 @@
1
- import { w as createLucideIcon, aK as inferWorkspaceContentKindFromMetadata, v as BUILTIN_PLUGINS, aL as getPluginIdFromMimeType, aM as getPluginIdFromExtension, r as reactExports, j as jsxRuntimeExports, u as useI18n, b as cn, a as useWorkspaceSurfaceStore, aN as useQuery, k as FileText, aO as Button, g as RefreshCw, aP as buildQuestFileNodeFromDocument, W as toFilesResourcePath, aQ as client } from './index-DZTZ8mWP.js';
2
- import ImageViewerPlugin from './ImageViewerPlugin-CHJl_0lr.js';
3
- import MarkdownViewerPlugin from './MarkdownViewerPlugin-836PVQWV.js';
4
- import { N as NotebookEditor } from './NotebookEditor-BRzJbGsn.js';
5
- import PdfViewerPlugin from './PdfViewerPlugin-BwtICzue.js';
6
- import './image-BhWT33W1.js';
7
- import './zoom-out-BgDLAv3z.js';
8
- import './code-XfbSR8K2.js';
9
- import './NotebookEditor-DIX7Mlzu.js';
1
+ import { w as createLucideIcon, aK as inferWorkspaceContentKindFromMetadata, v as BUILTIN_PLUGINS, aL as getPluginIdFromMimeType, aM as getPluginIdFromExtension, r as reactExports, j as jsxRuntimeExports, u as useI18n, b as cn, a as useWorkspaceSurfaceStore, aN as useQuery, k as FileText, aO as Button, g as RefreshCw, aP as buildQuestFileNodeFromDocument, W as toFilesResourcePath, aQ as client } from './index-CLQauncb.js';
2
+ import ImageViewerPlugin from './ImageViewerPlugin-OcVo33jV.js';
3
+ import MarkdownViewerPlugin from './MarkdownViewerPlugin-BzdVH9Bx.js';
4
+ import { N as NotebookEditor } from './NotebookEditor-BTVYRGkm.js';
5
+ import PdfViewerPlugin from './PdfViewerPlugin-CmlDxbhU.js';
6
+ import './image-LLOjkMHF.js';
7
+ import './zoom-out-rtX0FKya.js';
8
+ import './code-Cd7WfiWq.js';
9
+ import './NotebookEditor-BMXKrDRk.js';
10
10
  import './function-B5QZkkHC.js';
11
11
  import './yjs-DncrqiZ8.js';
12
- import './project-sync-PENr2zcz.js';
13
- import './square-check-big-omoSUmcd.js';
14
- import './popover-yFK1J4fL.js';
15
- import './trash--F119N47.js';
16
- import './sigma-DEuYJqTl.js';
17
- import './useFileDiffOverlay-BH6KcMzq.js';
18
- import './file-diff-panel-D_lLVQk0.js';
19
- import './file-socket-D9x_5vlY.js';
20
- import './pdf-effect-queue-DfBors6y.js';
21
- import './PdfLoader-DzRaTAlq.js';
22
- import './index-PJbSbPTy.js';
12
+ import './project-sync-CRJiucYO.js';
13
+ import './square-check-big-DUK_mnkS.js';
14
+ import './popover-CWJbJuYY.js';
15
+ import './trash-ChU3SEE3.js';
16
+ import './sigma-D5aJWR8J.js';
17
+ import './useFileDiffOverlay-C2OQaVWc.js';
18
+ import './file-diff-panel-DVoheLFq.js';
19
+ import './file-socket-B5kXFxZP.js';
20
+ import './pdf-effect-queue-DlEr1_y5.js';
21
+ import './PdfLoader-CvcjJHXv.js';
22
+ import './index-Dxa2eYMY.js';
23
23
 
24
24
  /**
25
25
  * @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-DZTZ8mWP.js","assets/index-Dqj-Mjb4.css"])))=>i.map(i=>d[i]);
2
- import { w as createLucideIcon, r as reactExports, j as jsxRuntimeExports, b as cn, ah as RotateCcw, ai as Info, a3 as Download, L as LoaderCircle, _ as __vitePreload } from './index-DZTZ8mWP.js';
3
- import { I as Image } from './image-BhWT33W1.js';
4
- import { Z as ZoomOut, a as ZoomIn } from './zoom-out-BgDLAv3z.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CLQauncb.js","assets/index-BQG-1s2o.css"])))=>i.map(i=>d[i]);
2
+ import { w as createLucideIcon, r as reactExports, j as jsxRuntimeExports, b as cn, ah as RotateCcw, ai as Info, a3 as Download, L as LoaderCircle, _ as __vitePreload } from './index-CLQauncb.js';
3
+ import { I as Image } from './image-LLOjkMHF.js';
4
+ import { Z as ZoomOut, a as ZoomIn } from './zoom-out-rtX0FKya.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-DZTZ8mWP.js').then(n => n.el);return { createFileObjectUrl }},true?__vite__mapDeps([0,1]):void 0);
283
+ const { createFileObjectUrl } = await __vitePreload(async () => { const { createFileObjectUrl } = await import('./index-CLQauncb.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 { w as createLucideIcon, r as reactExports, aR as reactDomExports, aS as useReducedMotion, j as jsxRuntimeExports, aT as useQueryClient, o as useToast, u as useI18n, aA as useLabCopilotStore, aU as useLabGraphSelectionStore, aV as useChatSessionStore, aW as buildAvatarColorMap, aX as isLabWorkingStatus, aY as getLabAgentDirectSession, aZ as buildAgentDescriptor, a_ as resolveAgentLogo, aF as resolveAgentDisplayName, aG as resolveAgentMentionLabel, a$ as AnimatePresence, b0 as motion, aO as Button, b1 as pickAvatarFrameColor, aH as resolveQuestLabel, d as Check, b as cn, z as useAuthStore, b2 as useCopilotDockHeaderPortal, b3 as assignLabAgent, b4 as ScrollArea, L as LoaderCircle, b5 as likeLabMoment, b6 as unlikeLabMoment, b7 as commentLabMoment, b8 as Ellipsis, b9 as Plus, l as Search, ba as Dialog, bb as DialogContent, bc as DialogHeader, bd as DialogTitle, be as DialogFooter, bf as getLabGroupSession, bg as getLabFriendsSession } from './index-DZTZ8mWP.js';
2
- import { P as Popover, a as PopoverTrigger, b as PopoverContent } from './popover-yFK1J4fL.js';
3
- import { S as Select, a as SelectTrigger, b as SelectValue, c as SelectContent, d as SelectItem } from './select-CAbJDfYv.js';
4
- 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-D0mTXG4-.js';
5
- import './index-PJbSbPTy.js';
6
- import './file-content-BjxNaIfy.js';
1
+ import { w as createLucideIcon, r as reactExports, aR as reactDomExports, aS as useReducedMotion, j as jsxRuntimeExports, aT as useQueryClient, o as useToast, u as useI18n, aA as useLabCopilotStore, aU as useLabGraphSelectionStore, aV as useChatSessionStore, aW as buildAvatarColorMap, aX as isLabWorkingStatus, aY as getLabAgentDirectSession, aZ as buildAgentDescriptor, a_ as resolveAgentLogo, aF as resolveAgentDisplayName, aG as resolveAgentMentionLabel, a$ as AnimatePresence, b0 as motion, aO as Button, b1 as pickAvatarFrameColor, aH as resolveQuestLabel, d as Check, b as cn, z as useAuthStore, b2 as useCopilotDockHeaderPortal, b3 as assignLabAgent, b4 as ScrollArea, L as LoaderCircle, b5 as likeLabMoment, b6 as unlikeLabMoment, b7 as commentLabMoment, b8 as Ellipsis, b9 as Plus, l as Search, ba as Dialog, bb as DialogContent, bc as DialogHeader, bd as DialogTitle, be as DialogFooter, bf as getLabGroupSession, bg as getLabFriendsSession } from './index-CLQauncb.js';
2
+ import { P as Popover, a as PopoverTrigger, b as PopoverContent } from './popover-CWJbJuYY.js';
3
+ import { S as Select, a as SelectTrigger, b as SelectValue, c as SelectContent, d as SelectItem } from './select-CoHB7pvH.js';
4
+ 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-CnJcXynW.js';
5
+ import './index-Dxa2eYMY.js';
6
+ import './file-content-B57zsL9y.js';
7
7
  import './file-jump-queue-r5XKgJEV.js';
8
- import './pdf-effect-queue-DfBors6y.js';
9
- import './file-diff-panel-D_lLVQk0.js';
10
- import './bot-BEA2vWuK.js';
11
- import './NotebookEditor-DIX7Mlzu.js';
12
- import './trash--F119N47.js';
8
+ import './pdf-effect-queue-DlEr1_y5.js';
9
+ import './file-diff-panel-DVoheLFq.js';
10
+ import './bot-C_G4WtNI.js';
11
+ import './NotebookEditor-BMXKrDRk.js';
12
+ import './trash-ChU3SEE3.js';
13
13
 
14
14
  /**
15
15
  * @license lucide-react v0.511.0 - ISC
@@ -1,5 +1,5 @@
1
- import { w as createLucideIcon, aN as useQuery, r as reactExports, j as jsxRuntimeExports, bh as Skeleton, bi as Badge, aQ as client, bj as ReactFlowProvider, u as useI18n, aF as resolveAgentDisplayName, a_ as resolveAgentLogo, b1 as pickAvatarFrameColor, aX as isLabWorkingStatus, bk as normalizeLabStatus, bl as useNodesState, bm as useReactFlow, bn as index, bo as Background, b as cn, bp as Handle, bq as Position, br as CircleHelp, bs as OrbitLogoStatus, bt as Clock, bu as Moon, aI as formatRelativeTime, m as ChevronDown, aT as useQueryClient, aA as useLabCopilotStore, aU as useLabGraphSelectionStore, bv as resolveLabCanvasSelectionSemantic, aO as Button, g as RefreshCw, bw as LabQuestGraphCanvas, bx as ArrowLeft, b4 as ScrollArea, N as Sparkles, by as GitBranch, bz as LAB_CANVAS_SEMANTIC_TONE_META, bA as getLabQuest, bB as getLabQuestSummary, bC as getLabQuestEventPayload, bD as getLabQuestNodeTrace, bE as isQuestRuntimeSurface, bF as getApiBaseUrl, bG as redirectToLanding, bH as useCliStore, bI as useActiveTab, v as BUILTIN_PLUGINS, bJ as listLabTemplates, aB as listLabAgents, aC as listLabQuests, bK as getLabOverview, bL as getProject, bM as useMaxEntitlement } from './index-DZTZ8mWP.js';
2
- import { B as Bot } from './bot-BEA2vWuK.js';
1
+ import { w as createLucideIcon, aN as useQuery, r as reactExports, j as jsxRuntimeExports, bh as Skeleton, bi as Badge, aQ as client, bj as ReactFlowProvider, u as useI18n, aF as resolveAgentDisplayName, a_ as resolveAgentLogo, b1 as pickAvatarFrameColor, aX as isLabWorkingStatus, bk as normalizeLabStatus, bl as useNodesState, bm as useReactFlow, bn as index, bo as Background, b as cn, bp as Handle, bq as Position, br as CircleHelp, bs as OrbitLogoStatus, bt as Clock, bu as Moon, aI as formatRelativeTime, m as ChevronDown, aT as useQueryClient, aA as useLabCopilotStore, aU as useLabGraphSelectionStore, bv as resolveLabCanvasSelectionSemantic, aO as Button, g as RefreshCw, bw as LabQuestGraphCanvas, bx as ArrowLeft, b4 as ScrollArea, N as Sparkles, by as GitBranch, bz as LAB_CANVAS_SEMANTIC_TONE_META, bA as getLabQuest, bB as getLabQuestSummary, bC as getLabQuestEventPayload, bD as getLabQuestNodeTrace, bE as isQuestRuntimeSurface, bF as getApiBaseUrl, bG as redirectToLanding, bH as useCliStore, bI as useActiveTab, v as BUILTIN_PLUGINS, bJ as listLabTemplates, aB as listLabAgents, aC as listLabQuests, bK as getLabOverview, bL as getProject, bM as useMaxEntitlement } from './index-CLQauncb.js';
2
+ import { B as Bot } from './bot-C_G4WtNI.js';
3
3
 
4
4
  /**
5
5
  * @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-K8izTGgo.js","assets/index-DZTZ8mWP.js","assets/index-Dqj-Mjb4.css","assets/yjs-DncrqiZ8.js","assets/function-B5QZkkHC.js","assets/awareness-C0NPR2Dj.js"])))=>i.map(i=>d[i]);
2
- import { w as createLucideIcon, z as useAuthStore, u as useI18n, a as useWorkspaceSurfaceStore, r as reactExports, f as useFileTreeStore, W as toFilesResourcePath, Y as checkProjectAccess, Z as listFiles, V as getFileContent, _ as __vitePreload, U as updateFileContent, $ as compileLatex, a0 as listLatexBuilds, j as jsxRuntimeExports, b as cn, k as FileText, a1 as Link2, L as LoaderCircle, S as Save, a2 as Play, T as TriangleAlert, a3 as Download, a4 as getLatexBuild, a5 as getLatexBuildPdfBlob, a6 as getLatexBuildLogText, h as dynamic } from './index-DZTZ8mWP.js';
3
- import { P as ProjectSyncClient } from './project-sync-PENr2zcz.js';
4
- import { c as configureMonacoLoader } from './monaco-K8izTGgo.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-DzRaTAlq.js';
6
- import { Z as ZoomOut, a as ZoomIn } from './zoom-out-BgDLAv3z.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/monaco-BGGAEii3.js","assets/index-CLQauncb.js","assets/index-BQG-1s2o.css","assets/yjs-DncrqiZ8.js","assets/function-B5QZkkHC.js","assets/awareness-C0NPR2Dj.js"])))=>i.map(i=>d[i]);
2
+ import { w as createLucideIcon, z as useAuthStore, u as useI18n, a as useWorkspaceSurfaceStore, r as reactExports, f as useFileTreeStore, x as supportsSocketIo, W as toFilesResourcePath, Y as checkProjectAccess, Z as listFiles, V as getFileContent, _ as __vitePreload, U as updateFileContent, $ as compileLatex, a0 as listLatexBuilds, j as jsxRuntimeExports, b as cn, k as FileText, a1 as Link2, L as LoaderCircle, S as Save, a2 as Play, T as TriangleAlert, a3 as Download, a4 as getLatexBuild, a5 as getLatexBuildPdfBlob, a6 as getLatexBuildLogText, h as dynamic } from './index-CLQauncb.js';
3
+ import { P as ProjectSyncClient } from './project-sync-CRJiucYO.js';
4
+ import { c as configureMonacoLoader } from './monaco-BGGAEii3.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-CvcjJHXv.js';
6
+ import { Z as ZoomOut, a as ZoomIn } from './zoom-out-rtX0FKya.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-K8izTGgo.js').then(n => n.i),true?__vite__mapDeps([0,1,2]):void 0), { });
22
+ const MonacoEditor = dynamic(() => __vitePreload(() => import('./monaco-BGGAEii3.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(() => {
@@ -123,7 +123,7 @@ function resolveLatexFileId(files, rawPath) {
123
123
  const simpleName = files.find((file) => file.name.toLowerCase() === basename);
124
124
  return simpleName?.id ?? null;
125
125
  }
126
- function PdfSurface({ pdfDocument, scale, highlights, onPageWidth }) {
126
+ function PdfSurface({ pdfDocument, zoomFactor, highlights, onPageWidth }) {
127
127
  reactExports.useEffect(() => {
128
128
  let cancelled = false;
129
129
  pdfDocument.getPage(1).then((page) => {
@@ -139,7 +139,8 @@ function PdfSurface({ pdfDocument, scale, highlights, onPageWidth }) {
139
139
  cancelled = true;
140
140
  };
141
141
  }, [onPageWidth, pdfDocument]);
142
- const pdfScaleValue = Number.isFinite(scale) && scale > 0 ? String(scale) : "page-width";
142
+ const safeZoomFactor = Number.isFinite(zoomFactor) && zoomFactor > 0 ? zoomFactor : 1;
143
+ const pdfScaleValue = Math.abs(safeZoomFactor - 1) < 1e-3 ? "page-width" : `page-width:${safeZoomFactor}`;
143
144
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
144
145
  PdfHighlighter,
145
146
  {
@@ -219,6 +220,7 @@ function LatexPlugin({ context, tabId, setDirty, setTitle }) {
219
220
  const latexCompletionDisposablesRef = reactExports.useRef([]);
220
221
  const effectiveReadOnly = viewReadOnly || roleWritable === false;
221
222
  const socketAuthMode = "user";
223
+ const canUseRealtimeSync = supportsSocketIo();
222
224
  const isBibFile = activeFileName.toLowerCase().endsWith(".bib");
223
225
  reactExports.useEffect(() => {
224
226
  const activeFileMeta = files.find((file) => file.id === activeFileId) ?? files.find((file) => file.name === activeFileName) ?? null;
@@ -375,6 +377,30 @@ function LatexPlugin({ context, tabId, setDirty, setTitle }) {
375
377
  const ytext = ydoc.getText("content");
376
378
  yDocRef.current = ydoc;
377
379
  yTextRef.current = ytext;
380
+ if (!canUseRealtimeSync) {
381
+ const seed = await getFileContent(activeFileId);
382
+ ydoc.transact(() => {
383
+ const length = ytext.length || 0;
384
+ if (length) ytext.delete(0, length);
385
+ if (seed) ytext.insert(0, seed);
386
+ }, "ds-local-seed");
387
+ const textNow2 = ytext.toString();
388
+ setInitialText(textNow2);
389
+ lastSavedRef.current = textNow2;
390
+ setIsDirty(false);
391
+ setDirty(false);
392
+ setSyncState("ready");
393
+ cleanup = () => {
394
+ try {
395
+ bindingCleanupRef.current?.();
396
+ } finally {
397
+ bindingCleanupRef.current = null;
398
+ if (yDocRef.current === ydoc) yDocRef.current = null;
399
+ if (yTextRef.current === ytext) yTextRef.current = null;
400
+ }
401
+ };
402
+ return;
403
+ }
378
404
  const sync = new ProjectSyncClient(projectId, {
379
405
  authMode: socketAuthMode,
380
406
  docKind: "latex"
@@ -542,7 +568,7 @@ function LatexPlugin({ context, tabId, setDirty, setTitle }) {
542
568
  cancelled = true;
543
569
  cleanup?.();
544
570
  };
545
- }, [activeFileId, effectiveReadOnly, projectId, resetNonce, setDirty, socketAuthMode, t, user?.id, user?.username]);
571
+ }, [activeFileId, canUseRealtimeSync, effectiveReadOnly, projectId, resetNonce, setDirty, socketAuthMode, t, user?.id, user?.username]);
546
572
  const jumpEditorToLine = reactExports.useCallback((line) => {
547
573
  const editor = editorRef.current;
548
574
  if (!editor) return false;
@@ -1747,7 +1773,7 @@ function LatexPlugin({ context, tabId, setDirty, setTitle }) {
1747
1773
  PdfSurface,
1748
1774
  {
1749
1775
  pdfDocument,
1750
- scale: renderScale,
1776
+ zoomFactor: zoomScale,
1751
1777
  highlights: emptyHighlights,
1752
1778
  onPageWidth: handlePageWidth
1753
1779
  }
@@ -1,6 +1,6 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DZTZ8mWP.js","assets/index-Dqj-Mjb4.css"])))=>i.map(i=>d[i]);
2
- import { u as useI18n, a as useWorkspaceSurfaceStore, r as reactExports, R as React, a7 as getQuestMarkdownContextFromFileId, c as copyToClipboard, j as jsxRuntimeExports, L as LoaderCircle, C as CircleAlert, a8 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-DZTZ8mWP.js';
3
- import { C as Code } from './code-XfbSR8K2.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CLQauncb.js","assets/index-BQG-1s2o.css"])))=>i.map(i=>d[i]);
2
+ import { u as useI18n, a as useWorkspaceSurfaceStore, r as reactExports, R as React, a7 as getQuestMarkdownContextFromFileId, c as copyToClipboard, j as jsxRuntimeExports, L as LoaderCircle, C as CircleAlert, a8 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-CLQauncb.js';
3
+ import { C as Code } from './code-Cd7WfiWq.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-DZTZ8mWP.js').then(n => n.el);return { getFileContent }},true?__vite__mapDeps([0,1]):void 0);
220
+ const { getFileContent } = await __vitePreload(async () => { const { getFileContent } = await import('./index-CLQauncb.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 { w as createLucideIcon, r as reactExports, aa as useNavigate, n as useTabsStore, ab as useOpenFile, f as useFileTreeStore, v as BUILTIN_PLUGINS, j as jsxRuntimeExports, l as Search, N as Sparkles, ac as Terminal, ad as Settings, ae as Puzzle, af as BookOpen, k as FileText, ag as FileCode2, b as cn } from './index-DZTZ8mWP.js';
2
- import { S as Sigma } from './sigma-DEuYJqTl.js';
3
- import { I as Image } from './image-BhWT33W1.js';
1
+ import { w as createLucideIcon, r as reactExports, aa as useNavigate, n as useTabsStore, ab as useOpenFile, f as useFileTreeStore, v as BUILTIN_PLUGINS, j as jsxRuntimeExports, l as Search, N as Sparkles, ac as Terminal, ad as Settings, ae as Puzzle, af as BookOpen, k as FileText, ag as FileCode2, b as cn } from './index-CLQauncb.js';
2
+ import { S as Sigma } from './sigma-D5aJWR8J.js';
3
+ import { I as Image } from './image-LLOjkMHF.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, aR as reactDomExports, e8 as ReactDOM, Q as create, j as jsxRuntimeExports, e9 as createSlot, am as useId, ea as Root, eb as Portal, ec as Overlay, ed as Content, aj as composeRefs, d7 as getDefaultExportFromCjs$2, ee as clsx, ef as shimExports$1, eg as katex, eh as Slot, D as resolveApiBaseUrl, ei as uploadFileAuto, ej as nanoid, ek as cx } from './index-DZTZ8mWP.js';
1
+ import { R as React, r as reactExports, aR as reactDomExports, e8 as ReactDOM, Q as create, j as jsxRuntimeExports, e9 as createSlot, am as useId, ea as Root, eb as Portal, ec as Overlay, ed as Content, aj as composeRefs, d7 as getDefaultExportFromCjs$2, ee as clsx, ef as shimExports$1, eg as katex, eh as Slot, D as resolveApiBaseUrl, ei as uploadFileAuto, ej as nanoid, ek as cx } from './index-CLQauncb.js';
2
2
 
3
3
  // ::- Persistent data structure representing an ordered mapping from
4
4
  // strings to values, with some convenient update methods.
@@ -1,16 +1,16 @@
1
- import { w as createLucideIcon, j as jsxRuntimeExports, aO as Button, m as ChevronDown, d as Check, b as cn, r as reactExports, bx as ArrowLeft, c6 as ArrowRight, c7 as Separator, c8 as ArrowUp, c9 as Trash2, u as useI18n, o as useToast, V as getFileContent, L as LoaderCircle, e as Copy, C as CircleAlert, f as useFileTreeStore, a7 as getQuestMarkdownContextFromFileId, ca as rewriteQuestMarkdownForDisplay, cb as rewriteQuestMarkdownForSave, cc as uploadQuestDocumentAsset, U as updateFileContent } from './index-DZTZ8mWP.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-DIX7Mlzu.js';
1
+ import { w as createLucideIcon, j as jsxRuntimeExports, aO as Button, m as ChevronDown, d as Check, b as cn, r as reactExports, bx as ArrowLeft, c6 as ArrowRight, c7 as Separator, c8 as ArrowUp, c9 as Trash2, u as useI18n, o as useToast, V as getFileContent, L as LoaderCircle, e as Copy, C as CircleAlert, f as useFileTreeStore, a7 as getQuestMarkdownContextFromFileId, ca as rewriteQuestMarkdownForDisplay, cb as rewriteQuestMarkdownForSave, cc as uploadQuestDocumentAsset, U as updateFileContent } from './index-CLQauncb.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-BMXKrDRk.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-PENr2zcz.js';
6
- import { S as SquareCheckBig } from './square-check-big-omoSUmcd.js';
7
- import { C as Code } from './code-XfbSR8K2.js';
8
- import { I as Image } from './image-BhWT33W1.js';
9
- import { P as Popover, a as PopoverTrigger, b as PopoverContent } from './popover-yFK1J4fL.js';
10
- import { T as Trash, A as ArrowDown } from './trash--F119N47.js';
11
- import { S as Sigma } from './sigma-DEuYJqTl.js';
12
- import { u as useFileDiffOverlay } from './useFileDiffOverlay-BH6KcMzq.js';
13
- import { F as FileDiffPanel } from './file-diff-panel-D_lLVQk0.js';
5
+ import { P as ProjectSyncClient } from './project-sync-CRJiucYO.js';
6
+ import { S as SquareCheckBig } from './square-check-big-DUK_mnkS.js';
7
+ import { C as Code } from './code-Cd7WfiWq.js';
8
+ import { I as Image } from './image-LLOjkMHF.js';
9
+ import { P as Popover, a as PopoverTrigger, b as PopoverContent } from './popover-CWJbJuYY.js';
10
+ import { T as Trash, A as ArrowDown } from './trash-ChU3SEE3.js';
11
+ import { S as Sigma } from './sigma-D5aJWR8J.js';
12
+ import { u as useFileDiffOverlay } from './useFileDiffOverlay-C2OQaVWc.js';
13
+ import { F as FileDiffPanel } from './file-diff-panel-DVoheLFq.js';
14
14
 
15
15
  /**
16
16
  * @license lucide-react v0.511.0 - ISC
@@ -1,4 +1,4 @@
1
- import { j as jsxRuntimeExports, r as reactExports, R as React$1, _ as __vitePreload, d5 as createRoot, d6 as getAugmentedNamespace, aR as reactDomExports, d7 as getDefaultExportFromCjs } from './index-DZTZ8mWP.js';
1
+ import { j as jsxRuntimeExports, r as reactExports, R as React$1, _ as __vitePreload, d5 as createRoot, d6 as getAugmentedNamespace, aR as reactDomExports, d7 as getDefaultExportFromCjs } from './index-CLQauncb.js';
2
2
 
3
3
  const PAGE_DIMENSIONS = {
4
4
  /** A4 width in points */
@@ -1,5 +1,5 @@
1
- import { n as useTabsStore, a as useWorkspaceSurfaceStore, o as useToast, p as useArxivStore, r as reactExports, q as buildArxivSummaryMarkdown, s as generateBibTeX, c as copyToClipboard, t as apiClient, v as BUILTIN_PLUGINS, j as jsxRuntimeExports, k as FileText, I as InfoTriangleIcon, b as cn, M as MarkdownRenderer, A as ArxivInfoModal, g as RefreshCw } from './index-DZTZ8mWP.js';
2
- import { d as defaultExtensions, s as setEditorMarkdown, U, I, r as resolveNotebookAssetUrl } from './NotebookEditor-DIX7Mlzu.js';
1
+ import { n as useTabsStore, a as useWorkspaceSurfaceStore, o as useToast, p as useArxivStore, r as reactExports, q as buildArxivSummaryMarkdown, s as generateBibTeX, c as copyToClipboard, t as apiClient, v as BUILTIN_PLUGINS, j as jsxRuntimeExports, k as FileText, I as InfoTriangleIcon, b as cn, M as MarkdownRenderer, A as ArxivInfoModal, g as RefreshCw } from './index-CLQauncb.js';
2
+ import { d as defaultExtensions, s as setEditorMarkdown, U, I, r as resolveNotebookAssetUrl } from './NotebookEditor-BMXKrDRk.js';
3
3
 
4
4
  function rewriteMarkdownImages(markdown, fileId) {
5
5
  if (!markdown) return markdown;
@@ -1,11 +1,11 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DZTZ8mWP.js","assets/index-Dqj-Mjb4.css"])))=>i.map(i=>d[i]);
2
- import { w as createLucideIcon, r as reactExports, u as useI18n, j as jsxRuntimeExports, a3 as Download, I as InfoTriangleIcon, b as cn, k as FileText, l as Search, X, m as ChevronDown, Q as create, t as apiClient, aT as useQueryClient, aN as useQuery, bR as useMutation, bS as Card, aO as Button, bT as DropdownMenu, bU as DropdownMenuTrigger, bV as DropdownMenuContent, bW as DropdownMenuLabel, bX as DropdownMenuItem, bY as SegmentedControl, br as CircleHelp, bZ as Textarea, i as isCliFileId, b_ as isQuestNodeId, b$ as getQuestNodeProjectId, n as useTabsStore, f as useFileTreeStore, a as useWorkspaceSurfaceStore, o as useToast, p as useArxivStore, z as useAuthStore, s as generateBibTeX, c as copyToClipboard, W as toFilesResourcePath, v as BUILTIN_PLUGINS, c0 as getFile, c1 as listProjectMembers, _ as __vitePreload, A as ArxivInfoModal, c2 as createFileObjectUrl, N as Sparkles, T as TriangleAlert, c3 as DropdownMenuRadioGroup, c4 as DropdownMenuRadioItem, c5 as MarkdownPreview } from './index-DZTZ8mWP.js';
3
- import { a as acquireFileSocket } from './file-socket-D9x_5vlY.js';
4
- import { M as MessageSquare, i as isPdfEffectHandled, m as markPdfEffectHandled, c as consumePdfEffects } from './pdf-effect-queue-DfBors6y.js';
5
- import { Z as ZOOM_LEVELS, R as Rnd, g as getPageFromElement, a as PdfLoader, e as PDF_CMAP_PACKED, b as PDF_CMAP_URL, c as PDF_WORKER_SRC, d as PdfHighlighter } from './PdfLoader-DzRaTAlq.js';
6
- import { Z as ZoomOut, a as ZoomIn } from './zoom-out-BgDLAv3z.js';
7
- import { C as ChevronUp } from './index-PJbSbPTy.js';
8
- import { S as SquareCheckBig } from './square-check-big-omoSUmcd.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CLQauncb.js","assets/index-BQG-1s2o.css"])))=>i.map(i=>d[i]);
2
+ import { w as createLucideIcon, r as reactExports, u as useI18n, j as jsxRuntimeExports, a3 as Download, I as InfoTriangleIcon, b as cn, k as FileText, l as Search, X, m as ChevronDown, Q as create, t as apiClient, aT as useQueryClient, aN as useQuery, bR as useMutation, bS as Card, aO as Button, bT as DropdownMenu, bU as DropdownMenuTrigger, bV as DropdownMenuContent, bW as DropdownMenuLabel, bX as DropdownMenuItem, bY as SegmentedControl, br as CircleHelp, bZ as Textarea, i as isCliFileId, b_ as isQuestNodeId, b$ as getQuestNodeProjectId, n as useTabsStore, f as useFileTreeStore, a as useWorkspaceSurfaceStore, o as useToast, p as useArxivStore, z as useAuthStore, s as generateBibTeX, c as copyToClipboard, W as toFilesResourcePath, v as BUILTIN_PLUGINS, c0 as getFile, c1 as listProjectMembers, _ as __vitePreload, A as ArxivInfoModal, c2 as createFileObjectUrl, N as Sparkles, T as TriangleAlert, c3 as DropdownMenuRadioGroup, c4 as DropdownMenuRadioItem, c5 as MarkdownPreview } from './index-CLQauncb.js';
3
+ import { a as acquireFileSocket } from './file-socket-B5kXFxZP.js';
4
+ import { M as MessageSquare, i as isPdfEffectHandled, m as markPdfEffectHandled, c as consumePdfEffects } from './pdf-effect-queue-DlEr1_y5.js';
5
+ import { Z as ZOOM_LEVELS, R as Rnd, g as getPageFromElement, a as PdfLoader, e as PDF_CMAP_PACKED, b as PDF_CMAP_URL, c as PDF_WORKER_SRC, d as PdfHighlighter } from './PdfLoader-CvcjJHXv.js';
6
+ import { Z as ZoomOut, a as ZoomIn } from './zoom-out-rtX0FKya.js';
7
+ import { C as ChevronUp } from './index-Dxa2eYMY.js';
8
+ import { S as SquareCheckBig } from './square-check-big-DUK_mnkS.js';
9
9
 
10
10
  /**
11
11
  * @license lucide-react v0.511.0 - ISC
@@ -2483,7 +2483,7 @@ function PdfViewerPlugin({
2483
2483
  setCliPdfError(null);
2484
2484
  const loadCliPdf = async () => {
2485
2485
  try {
2486
- const { createFileObjectUrl: createFileObjectUrl2 } = await __vitePreload(async () => { const { createFileObjectUrl: createFileObjectUrl2 } = await import('./index-DZTZ8mWP.js').then(n => n.el);return { createFileObjectUrl: createFileObjectUrl2 }},true?__vite__mapDeps([0,1]):void 0);
2486
+ const { createFileObjectUrl: createFileObjectUrl2 } = await __vitePreload(async () => { const { createFileObjectUrl: createFileObjectUrl2 } = await import('./index-CLQauncb.js').then(n => n.el);return { createFileObjectUrl: createFileObjectUrl2 }},true?__vite__mapDeps([0,1]):void 0);
2487
2487
  objectUrl = await createFileObjectUrl2(fileId);
2488
2488
  if (cancelled) {
2489
2489
  URL.revokeObjectURL(objectUrl);
@@ -2941,7 +2941,7 @@ function PdfViewerPlugin({
2941
2941
  return;
2942
2942
  }
2943
2943
  (async () => {
2944
- const { downloadFileById } = await __vitePreload(async () => { const { downloadFileById } = await import('./index-DZTZ8mWP.js').then(n => n.el);return { downloadFileById }},true?__vite__mapDeps([0,1]):void 0);
2944
+ const { downloadFileById } = await __vitePreload(async () => { const { downloadFileById } = await import('./index-CLQauncb.js').then(n => n.el);return { downloadFileById }},true?__vite__mapDeps([0,1]):void 0);
2945
2945
  await downloadFileById(fileId, fileName);
2946
2946
  })();
2947
2947
  }, [fileId, fileName, pdfUrl]);
@@ -1,4 +1,4 @@
1
- import { w as createLucideIcon, u as useI18n, r as reactExports, f as useFileTreeStore, n as useTabsStore, aA as useLabCopilotStore, ab as useOpenFile, aB as listLabAgents, aC as listLabQuests, aD as searchFiles, aE as searchLabQuest, v 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-DZTZ8mWP.js';
1
+ import { w as createLucideIcon, u as useI18n, r as reactExports, f as useFileTreeStore, n as useTabsStore, aA as useLabCopilotStore, ab as useOpenFile, aB as listLabAgents, aC as listLabQuests, aD as searchFiles, aE as searchLabQuest, v 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-CLQauncb.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,8 +1,8 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DZTZ8mWP.js","assets/index-Dqj-Mjb4.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 ChevronDown, X, _ as __vitePreload } from './index-DZTZ8mWP.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CLQauncb.js","assets/index-BQG-1s2o.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 ChevronDown, X, _ as __vitePreload } from './index-CLQauncb.js';
3
3
  import { c as consumeFileJumpEffects } from './file-jump-queue-r5XKgJEV.js';
4
- import { H as Hash, W as WrapText } from './wrap-text-CZ613PM5.js';
5
- import { C as ChevronUp } from './index-PJbSbPTy.js';
4
+ import { H as Hash, W as WrapText } from './wrap-text-C7Qqh-om.js';
5
+ import { C as ChevronUp } from './index-Dxa2eYMY.js';
6
6
 
7
7
  const LARGE_FILE_THRESHOLD = 1024 * 1024;
8
8
  const MAX_RENDERED_LINES = 1e4;
@@ -45,7 +45,7 @@ function TextViewerPlugin({
45
45
  setLoading(false);
46
46
  return;
47
47
  }
48
- const { getFileContent } = await __vitePreload(async () => { const { getFileContent } = await import('./index-DZTZ8mWP.js').then(n => n.el);return { getFileContent }},true?__vite__mapDeps([0,1]):void 0);
48
+ const { getFileContent } = await __vitePreload(async () => { const { getFileContent } = await import('./index-CLQauncb.js').then(n => n.el);return { getFileContent }},true?__vite__mapDeps([0,1]):void 0);
49
49
  const text = await getFileContent(context.resourceId);
50
50
  setContent(text);
51
51
  setFileSize(text.length);
@@ -1,14 +1,14 @@
1
- import { d7 as getDefaultExportFromCjs, r as reactExports, j as jsxRuntimeExports } from './index-DZTZ8mWP.js';
2
- import { g as getVncUrl } from './AiManusChatView-D0mTXG4-.js';
3
- import './file-content-BjxNaIfy.js';
4
- import './select-CAbJDfYv.js';
5
- import './index-PJbSbPTy.js';
1
+ import { d7 as getDefaultExportFromCjs, r as reactExports, j as jsxRuntimeExports } from './index-CLQauncb.js';
2
+ import { g as getVncUrl } from './AiManusChatView-CnJcXynW.js';
3
+ import './file-content-B57zsL9y.js';
4
+ import './select-CoHB7pvH.js';
5
+ import './index-Dxa2eYMY.js';
6
6
  import './file-jump-queue-r5XKgJEV.js';
7
- import './pdf-effect-queue-DfBors6y.js';
8
- import './file-diff-panel-D_lLVQk0.js';
9
- import './bot-BEA2vWuK.js';
10
- import './NotebookEditor-DIX7Mlzu.js';
11
- import './trash--F119N47.js';
7
+ import './pdf-effect-queue-DlEr1_y5.js';
8
+ import './file-diff-panel-DVoheLFq.js';
9
+ import './bot-C_G4WtNI.js';
10
+ import './NotebookEditor-BMXKrDRk.js';
11
+ import './trash-ChU3SEE3.js';
12
12
 
13
13
  var rfb = {};
14
14