@researai/deepscientist 1.5.6 → 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 (158) hide show
  1. package/README.md +32 -0
  2. package/bin/ds.js +274 -18
  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/cli.py +1 -1
  20. package/src/deepscientist/config/models.py +12 -6
  21. package/src/deepscientist/config/service.py +75 -2
  22. package/src/deepscientist/connector_profiles.py +34 -6
  23. package/src/deepscientist/daemon/api/handlers.py +290 -15
  24. package/src/deepscientist/daemon/api/router.py +2 -0
  25. package/src/deepscientist/daemon/app.py +521 -23
  26. package/src/deepscientist/gitops/diff.py +6 -10
  27. package/src/deepscientist/mcp/server.py +188 -39
  28. package/src/deepscientist/prompts/builder.py +71 -22
  29. package/src/deepscientist/qq_profiles.py +19 -9
  30. package/src/deepscientist/quest/layout.py +1 -0
  31. package/src/deepscientist/quest/service.py +83 -34
  32. package/src/deepscientist/quest/stage_views.py +74 -29
  33. package/src/deepscientist/runners/codex.py +32 -14
  34. package/src/deepscientist/runners/runtime_overrides.py +46 -0
  35. package/src/deepscientist/skills/installer.py +7 -0
  36. package/src/prompts/connectors/qq.md +1 -1
  37. package/src/prompts/contracts/shared_interaction.md +14 -0
  38. package/src/prompts/system.md +134 -30
  39. package/src/skills/analysis-campaign/SKILL.md +34 -8
  40. package/src/skills/analysis-campaign/references/campaign-checklist-template.md +41 -0
  41. package/src/skills/analysis-campaign/references/campaign-plan-template.md +68 -0
  42. package/src/skills/baseline/SKILL.md +145 -32
  43. package/src/skills/baseline/references/baseline-checklist-template.md +57 -0
  44. package/src/skills/baseline/references/baseline-plan-template.md +105 -0
  45. package/src/skills/decision/SKILL.md +12 -8
  46. package/src/skills/experiment/SKILL.md +51 -9
  47. package/src/skills/experiment/references/main-experiment-checklist-template.md +52 -0
  48. package/src/skills/experiment/references/main-experiment-plan-template.md +79 -0
  49. package/src/skills/figure-polish/SKILL.md +1 -0
  50. package/src/skills/finalize/SKILL.md +3 -8
  51. package/src/skills/idea/SKILL.md +2 -8
  52. package/src/skills/intake-audit/SKILL.md +2 -8
  53. package/src/skills/rebuttal/SKILL.md +2 -8
  54. package/src/skills/review/SKILL.md +2 -8
  55. package/src/skills/scout/SKILL.md +2 -8
  56. package/src/skills/write/SKILL.md +52 -16
  57. package/src/skills/write/templates/DEEPSCIENTIST_NOTES.md +21 -0
  58. package/src/skills/write/templates/README.md +408 -0
  59. package/src/skills/write/templates/UPSTREAM_LICENSE.txt +21 -0
  60. package/src/skills/write/templates/aaai2026/README.md +534 -0
  61. package/src/skills/write/templates/aaai2026/aaai2026-unified-supp.tex +144 -0
  62. package/src/skills/write/templates/aaai2026/aaai2026-unified-template.tex +952 -0
  63. package/src/skills/write/templates/aaai2026/aaai2026.bib +111 -0
  64. package/src/skills/write/templates/aaai2026/aaai2026.bst +1493 -0
  65. package/src/skills/write/templates/aaai2026/aaai2026.sty +315 -0
  66. package/src/skills/write/templates/acl/README.md +50 -0
  67. package/src/skills/write/templates/acl/acl.sty +312 -0
  68. package/src/skills/write/templates/acl/acl_latex.tex +377 -0
  69. package/src/skills/write/templates/acl/acl_lualatex.tex +101 -0
  70. package/src/skills/write/templates/acl/acl_natbib.bst +1940 -0
  71. package/src/skills/write/templates/acl/anthology.bib.txt +26 -0
  72. package/src/skills/write/templates/acl/custom.bib +70 -0
  73. package/src/skills/write/templates/acl/formatting.md +326 -0
  74. package/src/skills/write/templates/asplos2027/main.tex +459 -0
  75. package/src/skills/write/templates/asplos2027/references.bib +135 -0
  76. package/src/skills/write/templates/colm2025/README.md +3 -0
  77. package/src/skills/write/templates/colm2025/colm2025_conference.bib +11 -0
  78. package/src/skills/write/templates/colm2025/colm2025_conference.bst +1440 -0
  79. package/src/skills/write/templates/colm2025/colm2025_conference.sty +218 -0
  80. package/src/skills/write/templates/colm2025/colm2025_conference.tex +305 -0
  81. package/src/skills/write/templates/colm2025/fancyhdr.sty +485 -0
  82. package/src/skills/write/templates/colm2025/math_commands.tex +508 -0
  83. package/src/skills/write/templates/colm2025/natbib.sty +1246 -0
  84. package/src/skills/write/templates/iclr2026/fancyhdr.sty +485 -0
  85. package/src/skills/write/templates/iclr2026/iclr2026_conference.bib +24 -0
  86. package/src/skills/write/templates/iclr2026/iclr2026_conference.bst +1440 -0
  87. package/src/skills/write/templates/iclr2026/iclr2026_conference.sty +246 -0
  88. package/src/skills/write/templates/iclr2026/iclr2026_conference.tex +414 -0
  89. package/src/skills/write/templates/iclr2026/math_commands.tex +508 -0
  90. package/src/skills/write/templates/iclr2026/natbib.sty +1246 -0
  91. package/src/skills/write/templates/icml2026/algorithm.sty +79 -0
  92. package/src/skills/write/templates/icml2026/algorithmic.sty +201 -0
  93. package/src/skills/write/templates/icml2026/example_paper.bib +75 -0
  94. package/src/skills/write/templates/icml2026/example_paper.tex +662 -0
  95. package/src/skills/write/templates/icml2026/fancyhdr.sty +864 -0
  96. package/src/skills/write/templates/icml2026/icml2026.bst +1443 -0
  97. package/src/skills/write/templates/icml2026/icml2026.sty +767 -0
  98. package/src/skills/write/templates/neurips2025/Makefile +36 -0
  99. package/src/skills/write/templates/neurips2025/extra_pkgs.tex +53 -0
  100. package/src/skills/write/templates/neurips2025/main.tex +38 -0
  101. package/src/skills/write/templates/neurips2025/neurips.sty +382 -0
  102. package/src/skills/write/templates/nsdi2027/main.tex +426 -0
  103. package/src/skills/write/templates/nsdi2027/references.bib +151 -0
  104. package/src/skills/write/templates/nsdi2027/usenix-2020-09.sty +83 -0
  105. package/src/skills/write/templates/osdi2026/main.tex +429 -0
  106. package/src/skills/write/templates/osdi2026/references.bib +150 -0
  107. package/src/skills/write/templates/osdi2026/usenix-2020-09.sty +83 -0
  108. package/src/skills/write/templates/sosp2026/main.tex +532 -0
  109. package/src/skills/write/templates/sosp2026/references.bib +148 -0
  110. package/src/tui/package.json +1 -1
  111. package/src/ui/dist/assets/{AiManusChatView-BGLArZRn.js → AiManusChatView-m2FNtwbn.js} +110 -14
  112. package/src/ui/dist/assets/{AnalysisPlugin-BgDGSigG.js → AnalysisPlugin-BMTF8EGL.js} +1 -1
  113. package/src/ui/dist/assets/{AutoFigurePlugin-B65HD7L4.js → AutoFigurePlugin-DxPdMUNb.js} +5 -5
  114. package/src/ui/dist/assets/{CliPlugin-CUqgsFHC.js → CliPlugin-BEOWgxCI.js} +9 -9
  115. package/src/ui/dist/assets/{CodeEditorPlugin-CF5EdvaS.js → CodeEditorPlugin-BCXvjqmb.js} +8 -8
  116. package/src/ui/dist/assets/{CodeViewerPlugin-DEeU063D.js → CodeViewerPlugin-DaJcy3nD.js} +5 -5
  117. package/src/ui/dist/assets/{DocViewerPlugin-Df-FuDlZ.js → DocViewerPlugin-ByfeIq4K.js} +3 -3
  118. package/src/ui/dist/assets/{GitDiffViewerPlugin-RAnNaRxM.js → GitDiffViewerPlugin-Cksf3VZ-.js} +830 -86
  119. package/src/ui/dist/assets/{ImageViewerPlugin-DXJ0ZJGg.js → ImageViewerPlugin-CFz-OsTS.js} +5 -5
  120. package/src/ui/dist/assets/{LabCopilotPanel-BlO-sKsj.js → LabCopilotPanel-CJ1cJzoX.js} +10 -10
  121. package/src/ui/dist/assets/{LabPlugin-BajPZW5v.js → LabPlugin-BF3dVJwa.js} +1 -1
  122. package/src/ui/dist/assets/{LatexPlugin-F1OEol8D.js → LatexPlugin-DDkwZ6Sj.js} +7 -7
  123. package/src/ui/dist/assets/{MarkdownViewerPlugin-MhUupqwT.js → MarkdownViewerPlugin-HAuvurcT.js} +4 -4
  124. package/src/ui/dist/assets/{MarketplacePlugin-DxhIEsv0.js → MarketplacePlugin-BtoTYy2C.js} +3 -3
  125. package/src/ui/dist/assets/{index-B-2scqCJ.js → NotebookEditor-CSJYx7b-.js} +12 -155
  126. package/src/ui/dist/assets/{NotebookEditor-q7TkhewC.js → NotebookEditor-DQgRezm_.js} +1 -1
  127. package/src/ui/dist/assets/{PdfLoader-B8ZOTKFc.js → PdfLoader-DPa_-fv6.js} +1 -1
  128. package/src/ui/dist/assets/{PdfMarkdownPlugin-xFPvzvWh.js → PdfMarkdownPlugin-BZpXOEjm.js} +3 -3
  129. package/src/ui/dist/assets/{PdfViewerPlugin-EjEcsIB8.js → PdfViewerPlugin-BT8a6wGR.js} +10 -10
  130. package/src/ui/dist/assets/{SearchPlugin-ixY-1lgW.js → SearchPlugin-D_blveZi.js} +1 -1
  131. package/src/ui/dist/assets/{Stepper-gYFK2Pgz.js → Stepper-DH2k75Vo.js} +1 -1
  132. package/src/ui/dist/assets/{TextViewerPlugin-Cym6pv_n.js → TextViewerPlugin-Btx0M3hX.js} +4 -4
  133. package/src/ui/dist/assets/{VNCViewer-BPmIHcmK.js → VNCViewer-DImJO4rO.js} +9 -9
  134. package/src/ui/dist/assets/{bibtex-Btv6Wi7f.js → bibtex-B-Hqu0Sg.js} +1 -1
  135. package/src/ui/dist/assets/{code-BlG7g85c.js → code-BUfXGJSl.js} +1 -1
  136. package/src/ui/dist/assets/{file-content-DBT5OfTZ.js → file-content-VqamwI3X.js} +1 -1
  137. package/src/ui/dist/assets/{file-diff-panel-BWXYzqHk.js → file-diff-panel-C_wOoS7a.js} +1 -1
  138. package/src/ui/dist/assets/{file-socket-wDlx6byM.js → file-socket-D2bTuMVP.js} +1 -1
  139. package/src/ui/dist/assets/{file-utils-Ba3nJmH0.js → file-utils--zJCPN1i.js} +1 -1
  140. package/src/ui/dist/assets/{image-BwtCyguk.js → image-BZkGJ4mM.js} +1 -1
  141. package/src/ui/dist/assets/{index-CfRpE209.js → index-CxkvSeKw.js} +2 -2
  142. package/src/ui/dist/assets/{index-DcqvKzeJ.js → index-D9QIGcmc.js} +1 -1
  143. package/src/ui/dist/assets/{index-DpMZw8aM.css → index-DXZ1daiJ.css} +163 -34
  144. package/src/ui/dist/assets/index-DdRW6RMJ.js +159 -0
  145. package/src/ui/dist/assets/{index-Bz5AaWL7.js → index-DjggJovS.js} +2948 -1565
  146. package/src/ui/dist/assets/{message-square-BnlyWVH0.js → message-square-FUIPIhU2.js} +1 -1
  147. package/src/ui/dist/assets/{monaco-CXe0pAVe.js → monaco-DHMc7kKM.js} +1 -1
  148. package/src/ui/dist/assets/{popover-BCHmVhHj.js → popover-B85oCgCS.js} +1 -1
  149. package/src/ui/dist/assets/{project-sync-Brk6kaOD.js → project-sync-DOMCcPac.js} +1 -1
  150. package/src/ui/dist/assets/{sigma-D72eSUep.js → sigma-BO2rQrl3.js} +1 -1
  151. package/src/ui/dist/assets/{tooltip-BMWd0dqX.js → tooltip-B1OspAkx.js} +1 -1
  152. package/src/ui/dist/assets/{trash-BIt_eWIS.js → trash-BsVEH_dV.js} +1 -1
  153. package/src/ui/dist/assets/{useCliAccess-N1hkTRrR.js → useCliAccess-b8L6JuZm.js} +1 -1
  154. package/src/ui/dist/assets/{useFileDiffOverlay-DPRPv6rv.js → useFileDiffOverlay-BY7uA9hV.js} +1 -1
  155. package/src/ui/dist/assets/{wrap-text-E5-UheyP.js → wrap-text-BwyVuUIK.js} +1 -1
  156. package/src/ui/dist/assets/{zoom-out-D4TR-ZZ_.js → zoom-out-RDpLugQP.js} +1 -1
  157. package/src/ui/dist/index.html +5 -2
  158. /package/src/ui/dist/assets/{index-CccQYZjX.css → NotebookEditor-CccQYZjX.css} +0 -0
@@ -1,14 +1,14 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CfRpE209.js","assets/index-Bz5AaWL7.js","assets/index-DpMZw8aM.css","assets/useCliAccess-N1hkTRrR.js","assets/VNCViewer-BPmIHcmK.js","assets/file-content-DBT5OfTZ.js","assets/file-utils-Ba3nJmH0.js","assets/file-jump-queue-r5XKgJEV.js","assets/pdf-effect-queue-DSw_D3RV.js","assets/file-diff-panel-BWXYzqHk.js","assets/message-square-BnlyWVH0.js","assets/NotebookEditor-q7TkhewC.js","assets/NotebookEditor-C3VQ7ylN.css","assets/tooltip-BMWd0dqX.js","assets/trash-BIt_eWIS.js"])))=>i.map(i=>d[i]);
2
- import { z as createLucideIcon, r as reactExports, cb as useIsomorphicLayoutEffect, cd as frame_1, d8 as LayoutGroupContext, d9 as nodeGroup_1, j as jsxRuntimeExports, cg as useConstant, x as apiClient, bD as isQuestRuntimeSurface, da as shouldUseQuestProject, bE as getApiBaseUrl, db as deriveMcpIdentity, dc as supportsProductApis, cO as axios, dd as getCachedValue, de as setCachedValue, df as recordRequestEvent, dg as redactSensitive, dh as sanitizeUrl, di as refreshAccessToken, aO as useChatSessionStore, cx as getMyToken, bF as redirectToLanding, I as create$1, aA as useLabCopilotStore, bG as useCliStore, dj as EXPLORER_REFRESH_EVENT, t as useTabsStore, cS as buildCliFileId, dk as getCliFileName, cT as toCliResourcePath, cP as getPluginIdFromExtension, y as BUILTIN_PLUGINS, b as cn, dl as GripVertical, f as useFileTreeStore, P as toFilesResourcePath, cQ 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, D as Sparkles, k as FileText, bw as GitBranch, dB as asBoolean, bx as Bot, dC as BASH_CARRIAGE_RETURN_PREFIX, af as useQuery, bp as CircleHelp, dD as Activity, br as Clock, dE as truncateText$1, dF as listLabPendingQuestions, dG as listLabQuestionHistory, aa as BookOpen, ae as ExternalLink, u as useI18n, dH as normalizeWebSearchPayload, dI as WebSearchQueryPills, dJ as WebSearchResults, H as EnhancedTerminal, h as dynamic, _ as __vitePreload, dK as BashToolView, a7 as Terminal, v as useToast, dL as getMimeTypeFromExtension, dM as getFileTextPreview, dN as createFileObjectUrl, c as copyToClipboard, c2 as ChevronLeft, cm as Folder, m as ChevronUp, n as ChevronDown, X as X$1, L as LoaderCircle, aJ as FileIcon, dO as formatFileSize, E as Eye, e as Copy, b8 as Dialog, b9 as DialogContent, c5 as ChevronRight, dP as ConfirmModal, dQ as RotatingText, d as Check, aL as useReducedMotion, dR as useTokenStream, dS as McpBashExecView, dT as PngIcon, dU as Brain, dV as BRAND_LOGO_SMALL_SRC, dW as BRAND_LOGO_SMALL_SRC_INVERTED, dX as CircleX, aV as motion, bb as DialogTitle, c6 as DialogDescription, bO as DropdownMenu, bP as DropdownMenuTrigger, b1 as Ellipsis, bQ as DropdownMenuContent, bS as DropdownMenuItem, ct as DropdownMenuSeparator, cl as GlareHover, cs as SpotlightCard, c$ as Noise, b2 as Plus, ai as Info, Z as Play, dY as getWorkspaceContentTone, aU as AnimatePresence, a6 as useOpenFile, a as useWorkspaceSurfaceStore, p as useAuthStore, dZ as useSearchParams, d_ as useAgentRegistryStore, d$ as PanelLeft, e0 as parseCliFileId, bV as getFile, bK as getProject, cB as refreshCliServerStatus, e1 as COPILOT_FILES_ENABLED, W as listLatexBuilds, a2 as getLatexBuildLogText, V as compileLatex, e2 as ThinkingIndicator, b3 as Select, b4 as SelectTrigger, b6 as SelectContent, b7 as SelectItem, e3 as assetUrl, e4 as VariableSizeList, bq as OrbitLogoStatus, aK as reactDomExports, e5 as ChatScrollProvider, ba as DialogHeader, bc as DialogFooter } from './index-Bz5AaWL7.js';
3
- import { u as useFileContentStore } from './file-content-DBT5OfTZ.js';
4
- import { n as normalizePath$1, j as joinPath, s as splitPath, S as Server, L as Layers } from './file-utils-Ba3nJmH0.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CxkvSeKw.js","assets/index-DjggJovS.js","assets/index-DXZ1daiJ.css","assets/useCliAccess-b8L6JuZm.js","assets/VNCViewer-DImJO4rO.js","assets/file-content-VqamwI3X.js","assets/file-utils--zJCPN1i.js","assets/file-jump-queue-r5XKgJEV.js","assets/pdf-effect-queue-DSw_D3RV.js","assets/file-diff-panel-C_wOoS7a.js","assets/message-square-FUIPIhU2.js","assets/NotebookEditor-DQgRezm_.js","assets/NotebookEditor-C3VQ7ylN.css","assets/tooltip-B1OspAkx.js","assets/trash-BsVEH_dV.js"])))=>i.map(i=>d[i]);
2
+ import { z as createLucideIcon, r as reactExports, cl as useIsomorphicLayoutEffect, cn as frame_1, da as LayoutGroupContext, db as nodeGroup_1, j as jsxRuntimeExports, cq as useConstant, s as apiClient, bH as isQuestRuntimeSurface, dc as shouldUseQuestProject, bI as getApiBaseUrl, dd as deriveMcpIdentity, de as supportsProductApis, cX as axios, df as getCachedValue, dg as setCachedValue, dh as recordRequestEvent, di as redactSensitive, dj as sanitizeUrl, dk as refreshAccessToken, aS as useChatSessionStore, cH as getMyToken, bJ as redirectToLanding, I as create$1, ay as useLabCopilotStore, bK as useCliStore, dl as EXPLORER_REFRESH_EVENT, o as useTabsStore, cZ as buildCliFileId, dm as getCliFileName, c_ as toCliResourcePath, aK as getPluginIdFromExtension, t as BUILTIN_PLUGINS, b as cn, dn as GripVertical, f as useFileTreeStore, N as toFilesResourcePath, aJ as getPluginIdFromMimeType, T as TriangleAlert, dp as resolveMcpIdentity, dq as getToolArgsRecord, dr as getToolResultRecord, ds as getToolResultValue, dt as asString$2, du as asRecord$4, dv as asStringArray, dw as extractPathEntries, dx as BookOpenText, dy as Clock3, dz as truncateText, dA as ArrowUpRight, l as Search, dB as Database, dC as ArrowRightLeft, D as Sparkles, k as FileText, bA as GitBranch, dD as asBoolean, bB as Bot, dE as asNumber, dF as BASH_CARRIAGE_RETURN_PREFIX, aL as useQuery, bt as CircleHelp, dG as Activity, bv as Clock, dH as truncateText$1, dI as listLabPendingQuestions, dJ as listLabQuestionHistory, aa as BookOpen, ae as ExternalLink, u as useI18n, dK as normalizeWebSearchPayload, dL as WebSearchQueryPills, dM as WebSearchResults, H as EnhancedTerminal, h as dynamic, _ as __vitePreload, dN as BashToolView, a7 as Terminal, p as useToast, dO as getMimeTypeFromExtension, dP as getFileTextPreview, dQ as createFileObjectUrl, c as copyToClipboard, c6 as ChevronLeft, cw as Folder, m as ChevronUp, n as ChevronDown, X as X$1, L as LoaderCircle, aH as FileIcon, dR as formatFileSize, E as Eye, e as Copy, bc as Dialog, bd as DialogContent, c9 as ChevronRight, dS as ConfirmModal, dT as RotatingText, d as Check, aP as useReducedMotion, dU as useTokenStream, dV as McpBashExecView, dW as PngIcon, dX as Brain, dY as BRAND_LOGO_SMALL_SRC, dZ as BRAND_LOGO_SMALL_SRC_INVERTED, d_ as CircleX, aZ as motion, bf as DialogTitle, ca as DialogDescription, bS as DropdownMenu, bT as DropdownMenuTrigger, b5 as Ellipsis, bU as DropdownMenuContent, bW as DropdownMenuItem, cD as DropdownMenuSeparator, cv as GlareHover, cC as SpotlightCard, d6 as Noise, b6 as Plus, ag as Info, W as Play, d$ as getWorkspaceContentTone, aY as AnimatePresence, a6 as useOpenFile, a as useWorkspaceSurfaceStore, x as useAuthStore, e0 as useSearchParams, e1 as useAgentRegistryStore, e2 as PanelLeft, e3 as parseCliFileId, bZ as getFile, bO as getProject, cK as refreshCliServerStatus, e4 as COPILOT_FILES_ENABLED, U as listLatexBuilds, a0 as getLatexBuildLogText, Q as compileLatex, e5 as ThinkingIndicator, b7 as Select, b8 as SelectTrigger, ba as SelectContent, bb as SelectItem, e6 as assetUrl, e7 as VariableSizeList, bu as OrbitLogoStatus, aO as reactDomExports, e8 as ChatScrollProvider, be as DialogHeader, bg as DialogFooter } from './index-DjggJovS.js';
3
+ import { u as useFileContentStore } from './file-content-VqamwI3X.js';
4
+ import { n as normalizePath$1, j as joinPath, s as splitPath, S as Server, L as Layers } from './file-utils--zJCPN1i.js';
5
5
  import { q as queueFileJumpEffect } from './file-jump-queue-r5XKgJEV.js';
6
6
  import { q as queuePdfEffect } from './pdf-effect-queue-DSw_D3RV.js';
7
- import { F as FileDiffPanel } from './file-diff-panel-BWXYzqHk.js';
8
- import { M as MessageSquare } from './message-square-BnlyWVH0.js';
9
- import { v as ve$2, d as defaultExtensions, g as getEditorMarkdown, s as setEditorMarkdown, U as U$2, I as I$1 } from './NotebookEditor-q7TkhewC.js';
10
- import { T as TooltipProvider, a as Tooltip, b as TooltipTrigger, c as TooltipContent } from './tooltip-BMWd0dqX.js';
11
- import { T as Trash, A as ArrowDown } from './trash-BIt_eWIS.js';
7
+ import { F as FileDiffPanel } from './file-diff-panel-C_wOoS7a.js';
8
+ import { M as MessageSquare } from './message-square-FUIPIhU2.js';
9
+ import { v as ve$2, d as defaultExtensions, g as getEditorMarkdown, s as setEditorMarkdown, U as U$2, I as I$1 } from './NotebookEditor-DQgRezm_.js';
10
+ import { T as TooltipProvider, a as Tooltip, b as TooltipTrigger, c as TooltipContent } from './tooltip-B1OspAkx.js';
11
+ import { T as Trash, A as ArrowDown } from './trash-BsVEH_dV.js';
12
12
 
13
13
  /**
14
14
  * @license lucide-react v0.511.0 - ISC
@@ -9481,6 +9481,61 @@ function renderPrepareBranch(resultRecord) {
9481
9481
  renderPathList(worktreeRoot ? [{ label: "worktree_root", path: worktreeRoot }] : [])
9482
9482
  ] });
9483
9483
  }
9484
+ function renderActivateBranch(resultRecord) {
9485
+ const branch = asString$2(resultRecord?.branch);
9486
+ const worktreeRoot = asString$2(resultRecord?.worktree_root);
9487
+ const ideaId = asString$2(resultRecord?.idea_id);
9488
+ const latestMainRunId = asString$2(resultRecord?.latest_main_run_id);
9489
+ const nextAnchor = asString$2(resultRecord?.next_anchor);
9490
+ const workspaceMode = asString$2(resultRecord?.workspace_mode);
9491
+ const promoteToHead = asBoolean(resultRecord?.promote_to_head);
9492
+ const worktreeCreated = asBoolean(resultRecord?.worktree_created);
9493
+ const artifactRecord = asRecord$4(asRecord$4(resultRecord?.artifact)?.record) ?? asRecord$4(resultRecord?.artifact);
9494
+ const summary = asString$2(artifactRecord?.summary);
9495
+ const reason = asString$2(artifactRecord?.reason);
9496
+ const paths = extractPathEntries({
9497
+ paths: {
9498
+ worktree_root: worktreeRoot,
9499
+ idea_md: asString$2(resultRecord?.idea_md_path),
9500
+ idea_draft_md: asString$2(resultRecord?.idea_draft_path)
9501
+ }
9502
+ });
9503
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
9504
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DsToolSection, { title: "Active workspace", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2.5 text-[12px] leading-6 text-[var(--text-secondary)]", children: [
9505
+ branch ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 text-[var(--text-primary)]", children: [
9506
+ /* @__PURE__ */ jsxRuntimeExports.jsx(GitBranch, { className: "h-4 w-4 text-[#7a7297]" }),
9507
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-medium", children: branch })
9508
+ ] }) : null,
9509
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-wrap gap-1.5", children: [
9510
+ workspaceMode ? /* @__PURE__ */ jsxRuntimeExports.jsxs(DsToolPill$1, { children: [
9511
+ workspaceMode,
9512
+ " workspace"
9513
+ ] }) : null,
9514
+ nextAnchor ? /* @__PURE__ */ jsxRuntimeExports.jsxs(DsToolPill$1, { tone: "muted", children: [
9515
+ "next: ",
9516
+ nextAnchor
9517
+ ] }) : null,
9518
+ promoteToHead != null ? /* @__PURE__ */ jsxRuntimeExports.jsx(DsToolPill$1, { tone: promoteToHead ? "success" : "muted", children: promoteToHead ? "promoted to head" : "head unchanged" }) : null,
9519
+ worktreeCreated != null ? /* @__PURE__ */ jsxRuntimeExports.jsx(DsToolPill$1, { tone: worktreeCreated ? "success" : "muted", children: worktreeCreated ? "created worktree" : "reused worktree" }) : null
9520
+ ] }),
9521
+ summary ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-[var(--text-primary)]", children: summary }) : null,
9522
+ reason ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "rounded-[12px] bg-[rgba(255,255,255,0.68)] px-3 py-3", children: reason }) : null,
9523
+ ideaId ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
9524
+ "Active idea: ",
9525
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-medium text-[var(--text-primary)]", children: ideaId })
9526
+ ] }) : null,
9527
+ latestMainRunId ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
9528
+ "Latest main run: ",
9529
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-medium text-[var(--text-primary)]", children: latestMainRunId })
9530
+ ] }) : null,
9531
+ worktreeRoot ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
9532
+ "Worktree: ",
9533
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "break-all font-mono text-[11px] text-[var(--text-primary)]", children: worktreeRoot })
9534
+ ] }) : null
9535
+ ] }) }),
9536
+ renderPathList(paths)
9537
+ ] });
9538
+ }
9484
9539
  function renderAttachBaseline(resultRecord) {
9485
9540
  const attachment = asRecord$4(resultRecord?.attachment);
9486
9541
  if (!attachment) return null;
@@ -9588,6 +9643,36 @@ function renderGitGraph(resultRecord) {
9588
9643
  function asArrayLikeCount(value) {
9589
9644
  return Array.isArray(value) ? value.length : void 0;
9590
9645
  }
9646
+ function renderConnectorDelivery(resultRecord) {
9647
+ const deliveryTargets = asStringArray(resultRecord?.delivery_targets);
9648
+ const deliveryPolicy = asString$2(resultRecord?.delivery_policy);
9649
+ const preferredConnector = asString$2(resultRecord?.preferred_connector);
9650
+ const delivered = asBoolean(resultRecord?.delivered);
9651
+ const openRequestCount = asNumber(resultRecord?.open_request_count);
9652
+ const attachmentKinds = Array.isArray(resultRecord?.normalized_attachments) ? resultRecord.normalized_attachments.map((entry) => asRecord$4(entry)).filter((entry) => Boolean(entry)).map((entry) => asString$2(entry.kind)).filter(Boolean) : [];
9653
+ if (deliveryTargets.length === 0 && !deliveryPolicy && !preferredConnector && delivered == null && openRequestCount == null && attachmentKinds.length === 0) {
9654
+ return null;
9655
+ }
9656
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(DsToolSection, { title: "Connector delivery", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2 text-[12px] leading-6 text-[var(--text-secondary)]", children: [
9657
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-wrap gap-1.5", children: [
9658
+ delivered != null ? /* @__PURE__ */ jsxRuntimeExports.jsx(DsToolPill$1, { tone: delivered ? "success" : "warning", children: delivered ? "delivered" : "not delivered" }) : null,
9659
+ deliveryPolicy ? /* @__PURE__ */ jsxRuntimeExports.jsx(DsToolPill$1, { tone: "muted", children: deliveryPolicy }) : null,
9660
+ preferredConnector ? /* @__PURE__ */ jsxRuntimeExports.jsx(DsToolPill$1, { tone: "muted", children: preferredConnector }) : null,
9661
+ openRequestCount != null ? /* @__PURE__ */ jsxRuntimeExports.jsxs(DsToolPill$1, { tone: "muted", children: [
9662
+ openRequestCount,
9663
+ " open requests"
9664
+ ] }) : null
9665
+ ] }),
9666
+ deliveryTargets.length > 0 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
9667
+ "Delivered to: ",
9668
+ deliveryTargets.join(", ")
9669
+ ] }) : null,
9670
+ attachmentKinds.length > 0 ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
9671
+ "Attachments: ",
9672
+ attachmentKinds.join(", ")
9673
+ ] }) : null
9674
+ ] }) });
9675
+ }
9591
9676
  function renderInteract(resultRecord, args) {
9592
9677
  const message = asString$2(resultRecord?.agent_instruction) || asString$2(args.message);
9593
9678
  const replyMode = asString$2(resultRecord?.reply_mode) || asString$2(args.reply_mode);
@@ -9648,6 +9733,7 @@ function McpArtifactToolView({ toolContent }) {
9648
9733
  record: active ? "DeepScientist is recording artifact..." : "DeepScientist recorded artifact.",
9649
9734
  checkpoint: active ? "DeepScientist is creating checkpoint..." : "DeepScientist created checkpoint.",
9650
9735
  prepare_branch: active ? "DeepScientist is preparing branch..." : "DeepScientist prepared branch.",
9736
+ activate_branch: active ? "DeepScientist is activating branch..." : "DeepScientist activated branch.",
9651
9737
  publish_baseline: active ? "DeepScientist is publishing baseline..." : "DeepScientist published baseline.",
9652
9738
  attach_baseline: active ? "DeepScientist is attaching baseline..." : "DeepScientist attached baseline.",
9653
9739
  confirm_baseline: active ? "DeepScientist is confirming baseline..." : "DeepScientist confirmed baseline.",
@@ -9665,10 +9751,13 @@ function McpArtifactToolView({ toolContent }) {
9665
9751
  const subtitleMap = {
9666
9752
  checkpoint: "Git-backed checkpoints keep quest state durable and reviewable.",
9667
9753
  prepare_branch: "Branches and worktrees isolate experiment routes without losing context.",
9754
+ activate_branch: "Returning to a durable research branch should also sync the active workspace and connector context.",
9668
9755
  render_git_graph: "Graph exports make quest lineage visible across branches and runs."
9669
9756
  };
9670
9757
  const toolLabel = tool || "artifact";
9671
- const recordSummary = asString$2(resultRecord?.guidance) || asString$2((asRecord$4(resultRecord?.record) ?? resultRecord)?.summary);
9758
+ const embeddedArtifact = asRecord$4(asRecord$4(resultRecord?.artifact)?.record) ?? asRecord$4(resultRecord?.artifact);
9759
+ const recordSummary = asString$2(resultRecord?.guidance) || asString$2((asRecord$4(resultRecord?.record) ?? embeddedArtifact ?? resultRecord)?.summary);
9760
+ const nestedInteraction = toolLabel === "interact" ? null : asRecord$4(resultRecord?.interaction);
9672
9761
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-3", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
9673
9762
  DsToolFrame,
9674
9763
  {
@@ -9688,6 +9777,7 @@ function McpArtifactToolView({ toolContent }) {
9688
9777
  tool === "record" || tool === "publish_baseline" ? renderArtifactRecord(tool, resultRecord, args) : null,
9689
9778
  tool === "checkpoint" ? renderCheckpoint(resultRecord, args) : null,
9690
9779
  tool === "prepare_branch" ? renderPrepareBranch(resultRecord) : null,
9780
+ tool === "activate_branch" ? renderActivateBranch(resultRecord) : null,
9691
9781
  tool === "attach_baseline" ? renderAttachBaseline(resultRecord) : null,
9692
9782
  tool === "arxiv" ? renderArxiv(resultRecord, args) : null,
9693
9783
  tool === "refresh_summary" ? renderRefreshSummary(resultRecord, args) : null,
@@ -9700,13 +9790,14 @@ function McpArtifactToolView({ toolContent }) {
9700
9790
  /* @__PURE__ */ jsxRuntimeExports.jsx(ArrowRightLeft, { className: "mt-0.5 h-4 w-4 text-[#977a42]" }),
9701
9791
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: asString$2(asRecord$4(asRecord$4(resultRecord.artifact)?.record)?.summary) || "Baseline attachment created a durable report artifact." })
9702
9792
  ] }) }) : null,
9793
+ nestedInteraction ? renderConnectorDelivery(nestedInteraction) : null,
9703
9794
  tool === "render_git_graph" && resultRecord?.guidance ? /* @__PURE__ */ jsxRuntimeExports.jsx(DsToolSection, { title: "Why this helps", compact: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-2 text-[12px] leading-6 text-[var(--text-secondary)]", children: [
9704
9795
  /* @__PURE__ */ jsxRuntimeExports.jsx(Milestone, { className: "mt-0.5 h-4 w-4 text-[#7a7297]" }),
9705
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: asString$2(resultRecord.guidance) })
9796
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: asString$2(resultRecord?.guidance) })
9706
9797
  ] }) }) : null,
9707
9798
  tool === "checkpoint" && asString$2(resultRecord?.guidance) ? /* @__PURE__ */ jsxRuntimeExports.jsx(DsToolSection, { title: "Next step", compact: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-2 text-[12px] leading-6 text-[var(--text-secondary)]", children: [
9708
9799
  /* @__PURE__ */ jsxRuntimeExports.jsx(Sparkles, { className: "mt-0.5 h-4 w-4 text-[#7a7297]" }),
9709
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: asString$2(resultRecord.guidance) })
9800
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: asString$2(resultRecord?.guidance) })
9710
9801
  ] }) }) : null,
9711
9802
  tool === "prepare_branch" && resultRecord?.artifact ? /* @__PURE__ */ jsxRuntimeExports.jsx(DsToolSection, { title: "Decision artifact", compact: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-2 text-[12px] leading-6 text-[var(--text-secondary)]", children: [
9712
9803
  /* @__PURE__ */ jsxRuntimeExports.jsx(FileText, { className: "mt-0.5 h-4 w-4 text-[#7a7297]" }),
@@ -11444,7 +11535,7 @@ function SearchToolView({ toolContent, panelMode }) {
11444
11535
  }
11445
11536
 
11446
11537
  const CliToolTerminal = dynamic(
11447
- () => __vitePreload(() => import('./index-CfRpE209.js'),true?__vite__mapDeps([0,1,2,3]):void 0).then((mod) => mod.CliToolTerminal),
11538
+ () => __vitePreload(() => import('./index-CxkvSeKw.js'),true?__vite__mapDeps([0,1,2,3]):void 0).then((mod) => mod.CliToolTerminal),
11448
11539
  {
11449
11540
  loading: () => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex h-full items-center justify-center text-xs text-[var(--text-tertiary)]", children: "Loading terminal..." })
11450
11541
  }
@@ -14515,6 +14606,7 @@ function ToolUseDefault({
14515
14606
  animate: { y: 0, opacity: 1 },
14516
14607
  exit: { y: "-120%", opacity: 0 },
14517
14608
  animatePresenceInitial: true,
14609
+ maxWords: 14,
14518
14610
  mainClassName: "ds-copilot-status-text",
14519
14611
  splitLevelClassName: "ds-copilot-status-text-split",
14520
14612
  elementLevelClassName: "ds-copilot-status-text-element",
@@ -17972,6 +18064,10 @@ function getDocumentModeLabel(mode, t) {
17972
18064
  return t("context_mode_source");
17973
18065
  case "preview":
17974
18066
  return t("context_mode_preview");
18067
+ case "snapshot":
18068
+ return t("context_mode_snapshot", void 0, "Snapshot");
18069
+ case "diff":
18070
+ return t("context_mode_diff", void 0, "Diff");
17975
18071
  default:
17976
18072
  return null;
17977
18073
  }
@@ -18297,7 +18393,7 @@ function pickGreetingTemplate() {
18297
18393
  return GREETING_TEMPLATES[index];
18298
18394
  }
18299
18395
  const VNCViewer = dynamic(
18300
- () => __vitePreload(() => import('./VNCViewer-BPmIHcmK.js'),true?__vite__mapDeps([4,1,2,5,6,7,8,9,10,11,12,13,14]):void 0).then((mod) => mod.VNCViewer),
18396
+ () => __vitePreload(() => import('./VNCViewer-DImJO4rO.js'),true?__vite__mapDeps([4,1,2,5,6,7,8,9,10,11,12,13,14]):void 0).then((mod) => mod.VNCViewer),
18301
18397
  {
18302
18398
  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..." })
18303
18399
  }
@@ -1,4 +1,4 @@
1
- import { r as reactExports, c as copyToClipboard, j as jsxRuntimeExports, k as FileText, l as Search, A as ChartColumn, D as Sparkles, d as Check, e as Copy, b as cn } from './index-Bz5AaWL7.js';
1
+ import { r as reactExports, c as copyToClipboard, j as jsxRuntimeExports, k as FileText, l as Search, A as ChartColumn, D as Sparkles, d as Check, e as Copy, b as cn } from './index-DjggJovS.js';
2
2
 
3
3
  const actions = [
4
4
  {
@@ -1,8 +1,8 @@
1
- import { r as reactExports, j as jsxRuntimeExports, f as useFileTreeStore, J as updateFileContent, b_ as uploadFileAuto, b$ as deleteFiles, U as listFiles, c0 as createFolder, q as resolveApiBaseUrl, R as React, X, x as apiClient, af as useQuery, c1 as supportsPoints, aM as useQueryClient, v as useToast, c2 as ChevronLeft, c3 as Settings2, L as LoaderCircle, c4 as ArrowRight, c5 as ChevronRight, $ as Download, Z as Play, D as Sparkles, b8 as Dialog, b9 as DialogContent, ba as DialogHeader, bb as DialogTitle, c6 as DialogDescription, c7 as Input, bc as DialogFooter, a3 as Button, I as create, c8 as persist, _ as __vitePreload, p as useAuthStore, aZ as ScrollArea, b as cn, bT as SegmentedControl, bU as Textarea, k as FileText, b3 as Select, b4 as SelectTrigger, b5 as SelectValue, b6 as SelectContent, b7 as SelectItem, aK as reactDomExports, c9 as downloadFileById, bp as CircleHelp } from './index-Bz5AaWL7.js';
2
- import { T as TooltipProvider, a as Tooltip, b as TooltipTrigger, c as TooltipContent } from './tooltip-BMWd0dqX.js';
3
- import { S as Stepper, a as Step, C as CloudUpload } from './Stepper-gYFK2Pgz.js';
4
- import { M as MessageSquare } from './message-square-BnlyWVH0.js';
5
- import { I as Image } from './image-BwtCyguk.js';
1
+ import { r as reactExports, j as jsxRuntimeExports, f as useFileTreeStore, J as updateFileContent, c2 as uploadFileAuto, c3 as deleteFiles, P as listFiles, c4 as createFolder, y as resolveApiBaseUrl, R as React, X, s as apiClient, aL as useQuery, c5 as supportsPoints, aQ as useQueryClient, p as useToast, c6 as ChevronLeft, c7 as Settings2, L as LoaderCircle, c8 as ArrowRight, c9 as ChevronRight, Y as Download, W as Play, D as Sparkles, bc as Dialog, bd as DialogContent, be as DialogHeader, bf as DialogTitle, ca as DialogDescription, cb as Input, bg as DialogFooter, a3 as Button, I as create, cc as persist, _ as __vitePreload, x as useAuthStore, b1 as ScrollArea, b as cn, bX as SegmentedControl, bY as Textarea, k as FileText, b7 as Select, b8 as SelectTrigger, b9 as SelectValue, ba as SelectContent, bb as SelectItem, aO as reactDomExports, cd as downloadFileById, bt as CircleHelp } from './index-DjggJovS.js';
2
+ import { T as TooltipProvider, a as Tooltip, b as TooltipTrigger, c as TooltipContent } from './tooltip-B1OspAkx.js';
3
+ import { S as Stepper, a as Step, C as CloudUpload } from './Stepper-DH2k75Vo.js';
4
+ import { M as MessageSquare } from './message-square-FUIPIhU2.js';
5
+ import { I as Image } from './image-BZkGJ4mM.js';
6
6
 
7
7
  const ScrollStackItem = ({
8
8
  children,
@@ -1,9 +1,9 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DcqvKzeJ.js","assets/index-Bz5AaWL7.js","assets/index-DpMZw8aM.css"])))=>i.map(i=>d[i]);
2
- import { z as createLucideIcon, ca as useMotionValue, cb as useIsomorphicLayoutEffect, cc as cancelFrame_1, cd as frame_1, ce as collectMotionValues_1, cf as transform_1, cg as useConstant, r as reactExports, ch as MotionConfigContext, ci as attachFollow_1, cj as isMotionValue_1, ck as useInView, j as jsxRuntimeExports, b as cn, u as useI18n, bG as useCliStore, _ as __vitePreload, c5 as ChevronRight, g as RefreshCw, b2 as Plus, aZ as ScrollArea, c2 as ChevronLeft, cl as GlareHover, a3 as Button, c7 as Input, l as Search, k as FileText, cm as Folder, a7 as Terminal, D as Sparkles, b8 as Dialog, b9 as DialogContent, ba as DialogHeader, bb as DialogTitle, c6 as DialogDescription, bc as DialogFooter, cn as useTerminal, b3 as Select, b4 as SelectTrigger, b5 as SelectValue, b6 as SelectContent, b7 as SelectItem, co as uploadCliFile, bU as Textarea, cp as CircleCheck, I as create, c8 as persist, v as useToast, cq as unbindCliServer, G as ConnectionState, cr as updateCliSession, cs as SpotlightCard, bO as DropdownMenu, bP as DropdownMenuTrigger, bQ as DropdownMenuContent, bS as DropdownMenuItem, Z as Play, ct as DropdownMenuSeparator, X, cu as Pencil, H as EnhancedTerminal, cv as listCliSessions, cw as FadeContent, x as apiClient, cx as getMyToken, c as copyToClipboard, cy as Bell, cz as Trash2, d as Check, cA as getCliServerMetrics, cB as refreshCliServerStatus, cC as ResponsiveContainer, cD as LineChart, cE as XAxis, cF as YAxis, cG as Tooltip, cH as Line, cI as getCliHealth, cJ as Cpu, cK as listCliFiles, cL as readCliFile, cM as writeCliFile, cN as deleteCliFile, cO as axios, $ as Download, t as useTabsStore, cP as getPluginIdFromExtension, y as BUILTIN_PLUGINS, cQ as getPluginIdFromMimeType, cR as downloadCliFile, cS as buildCliFileId, cT as toCliResourcePath, cU as Upload, L as LoaderCircle, cV as listCliLogs, cW as getCliLogObject, cX as listCliTasks, T as TriangleAlert, cY as listCliFindings, cZ as listCliMethods, c_ as createCliMethod, bL as useMaxEntitlement, c$ as Noise } from './index-Bz5AaWL7.js';
3
- import { S as Server, L as Layers, n as normalizePath, f as formatFileSize, s as splitPath, j as joinPath, a as findSensitiveMarker, D as DOWNLOAD_MAX_BYTES, T as TEXT_PREVIEW_MAX_BYTES } from './file-utils-Ba3nJmH0.js';
4
- import { S as SquareCheckBig } from './index-DcqvKzeJ.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-N1hkTRrR.js';
6
- import { C as CloudUpload, S as Stepper, a as Step } from './Stepper-gYFK2Pgz.js';
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-D9QIGcmc.js","assets/index-DjggJovS.js","assets/index-DXZ1daiJ.css"])))=>i.map(i=>d[i]);
2
+ import { z as createLucideIcon, ck as useMotionValue, cl as useIsomorphicLayoutEffect, cm as cancelFrame_1, cn as frame_1, co as collectMotionValues_1, cp as transform_1, cq as useConstant, r as reactExports, cr as MotionConfigContext, cs as attachFollow_1, ct as isMotionValue_1, cu as useInView, j as jsxRuntimeExports, b as cn, u as useI18n, bK as useCliStore, _ as __vitePreload, c9 as ChevronRight, g as RefreshCw, b6 as Plus, b1 as ScrollArea, c6 as ChevronLeft, cv as GlareHover, a3 as Button, cb as Input, l as Search, k as FileText, cw as Folder, a7 as Terminal, D as Sparkles, bc as Dialog, bd as DialogContent, be as DialogHeader, bf as DialogTitle, ca as DialogDescription, bg as DialogFooter, cx as useTerminal, b7 as Select, b8 as SelectTrigger, b9 as SelectValue, ba as SelectContent, bb as SelectItem, cy as uploadCliFile, bY as Textarea, cz as CircleCheck, I as create, cc as persist, p as useToast, cA as unbindCliServer, G as ConnectionState, cB as updateCliSession, cC as SpotlightCard, bS as DropdownMenu, bT as DropdownMenuTrigger, bU as DropdownMenuContent, bW as DropdownMenuItem, W as Play, cD as DropdownMenuSeparator, X, cE as Pencil, H as EnhancedTerminal, cF as listCliSessions, cG as FadeContent, s as apiClient, cH as getMyToken, c as copyToClipboard, cI as Bell, cg as Trash2, d as Check, cJ as getCliServerMetrics, cK as refreshCliServerStatus, cL as ResponsiveContainer, cM as LineChart, cN as XAxis, cO as YAxis, cP as Tooltip, cQ as Line, cR as getCliHealth, cS as Cpu, cT as listCliFiles, cU as readCliFile, cV as writeCliFile, cW as deleteCliFile, cX as axios, Y as Download, o as useTabsStore, aK as getPluginIdFromExtension, t as BUILTIN_PLUGINS, aJ as getPluginIdFromMimeType, cY as downloadCliFile, cZ as buildCliFileId, c_ as toCliResourcePath, c$ as Upload, L as LoaderCircle, d0 as listCliLogs, d1 as getCliLogObject, d2 as listCliTasks, T as TriangleAlert, d3 as listCliFindings, d4 as listCliMethods, d5 as createCliMethod, bP as useMaxEntitlement, d6 as Noise } from './index-DjggJovS.js';
3
+ import { S as Server, L as Layers, n as normalizePath, f as formatFileSize, s as splitPath, j as joinPath, a as findSensitiveMarker, D as DOWNLOAD_MAX_BYTES, T as TEXT_PREVIEW_MAX_BYTES } from './file-utils--zJCPN1i.js';
4
+ import { S as SquareCheckBig } from './index-D9QIGcmc.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-b8L6JuZm.js';
6
+ import { C as CloudUpload, S as Stepper, a as Step } from './Stepper-DH2k75Vo.js';
7
7
 
8
8
  /**
9
9
  * @license lucide-react v0.511.0 - ISC
@@ -523,7 +523,7 @@ function ServerList({
523
523
  const container = listRef.current;
524
524
  const targets = container.querySelectorAll("[data-cli-server-card]");
525
525
  if (targets.length === 0) return;
526
- __vitePreload(async () => { const {default: anime} = await import('./index-DcqvKzeJ.js').then(n => n.i);return { default: anime }},true?__vite__mapDeps([0,1,2]):void 0).then(({ default: anime }) => {
526
+ __vitePreload(async () => { const {default: anime} = await import('./index-D9QIGcmc.js').then(n => n.i);return { default: anime }},true?__vite__mapDeps([0,1,2]):void 0).then(({ default: anime }) => {
527
527
  if (cancelled) return;
528
528
  anime({
529
529
  targets,
@@ -4919,7 +4919,7 @@ function TasksPanel({ projectId, serverId }) {
4919
4919
  let cancelled = false;
4920
4920
  const targets = listRef.current.querySelectorAll("[data-cli-task-item]");
4921
4921
  if (targets.length === 0) return;
4922
- __vitePreload(async () => { const {default: anime} = await import('./index-DcqvKzeJ.js').then(n => n.i);return { default: anime }},true?__vite__mapDeps([0,1,2]):void 0).then(({ default: anime }) => {
4922
+ __vitePreload(async () => { const {default: anime} = await import('./index-D9QIGcmc.js').then(n => n.i);return { default: anime }},true?__vite__mapDeps([0,1,2]):void 0).then(({ default: anime }) => {
4923
4923
  if (cancelled) return;
4924
4924
  anime({
4925
4925
  targets,
@@ -5046,7 +5046,7 @@ function FindingsPanel({ projectId, serverId }) {
5046
5046
  let cancelled = false;
5047
5047
  const targets = listRef.current.querySelectorAll("[data-cli-finding-item]");
5048
5048
  if (targets.length === 0) return;
5049
- __vitePreload(async () => { const {default: anime} = await import('./index-DcqvKzeJ.js').then(n => n.i);return { default: anime }},true?__vite__mapDeps([0,1,2]):void 0).then(({ default: anime }) => {
5049
+ __vitePreload(async () => { const {default: anime} = await import('./index-D9QIGcmc.js').then(n => n.i);return { default: anime }},true?__vite__mapDeps([0,1,2]):void 0).then(({ default: anime }) => {
5050
5050
  if (cancelled) return;
5051
5051
  anime({
5052
5052
  targets,
@@ -1,12 +1,12 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/monaco-CXe0pAVe.js","assets/index-Bz5AaWL7.js","assets/index-DpMZw8aM.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-Bz5AaWL7.js';
3
- import { u as useFileContentStore, a as useFileContentLoading } from './file-content-DBT5OfTZ.js';
4
- import { a as acquireFileSocket } from './file-socket-wDlx6byM.js';
5
- import { c as configureMonacoLoader } from './monaco-CXe0pAVe.js';
6
- import { u as useFileDiffOverlay } from './useFileDiffOverlay-DPRPv6rv.js';
7
- import { F as FileDiffPanel } from './file-diff-panel-BWXYzqHk.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"])))=>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-DjggJovS.js';
3
+ import { u as useFileContentStore, a as useFileContentLoading } from './file-content-VqamwI3X.js';
4
+ import { a as acquireFileSocket } from './file-socket-D2bTuMVP.js';
5
+ import { c as configureMonacoLoader } from './monaco-DHMc7kKM.js';
6
+ import { u as useFileDiffOverlay } from './useFileDiffOverlay-BY7uA9hV.js';
7
+ import { F as FileDiffPanel } from './file-diff-panel-C_wOoS7a.js';
8
8
 
9
- const MonacoEditor = dynamic(() => __vitePreload(() => import('./monaco-CXe0pAVe.js').then(n => n.i),true?__vite__mapDeps([0,1,2]):void 0), { });
9
+ const MonacoEditor = dynamic(() => __vitePreload(() => import('./monaco-DHMc7kKM.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-Bz5AaWL7.js","assets/index-DpMZw8aM.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-Bz5AaWL7.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, 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-DjggJovS.js';
3
3
  import { c as consumeFileJumpEffects } from './file-jump-queue-r5XKgJEV.js';
4
- import { C as Code } from './code-BlG7g85c.js';
5
- import { H as Hash, W as WrapText } from './wrap-text-E5-UheyP.js';
4
+ import { C as Code } from './code-BUfXGJSl.js';
5
+ import { H as Hash, W as WrapText } from './wrap-text-BwyVuUIK.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-Bz5AaWL7.js').then(n => n.ei);return { getFileContent }},true?__vite__mapDeps([0,1]):void 0);
419
+ 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);
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-Bz5AaWL7.js","assets/index-DpMZw8aM.css"])))=>i.map(i=>d[i]);
2
- import { z as createLucideIcon, u as useI18n, r as reactExports, j as jsxRuntimeExports, L as LoaderCircle, b as cn, T as TriangleAlert, $ as Download, _ as __vitePreload, a4 as FileSpreadsheet, k as FileText } from './index-Bz5AaWL7.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, u as useI18n, r as reactExports, j as jsxRuntimeExports, L as LoaderCircle, b as cn, T as TriangleAlert, Y as Download, _ as __vitePreload, a4 as FileSpreadsheet, k as FileText } from './index-DjggJovS.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-Bz5AaWL7.js').then(n => n.ei);return { downloadFileById }},true?__vite__mapDeps([0,1]):void 0);
231
+ 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);
232
232
  await downloadFileById(context.resourceId, fileName);
233
233
  } catch (err) {
234
234
  console.error("Failed to download document:", err);