@researai/deepscientist 1.5.9 → 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.
- package/README.md +112 -99
- package/assets/branding/connector-qq.png +0 -0
- package/assets/branding/connector-rokid.png +0 -0
- package/assets/branding/connector-weixin.png +0 -0
- package/assets/branding/projects.png +0 -0
- package/bin/ds.js +519 -63
- package/docs/assets/branding/projects.png +0 -0
- package/docs/en/00_QUICK_START.md +338 -68
- package/docs/en/01_SETTINGS_REFERENCE.md +14 -0
- package/docs/en/02_START_RESEARCH_GUIDE.md +180 -4
- package/docs/en/04_LINGZHU_CONNECTOR_GUIDE.md +62 -179
- package/docs/en/09_DOCTOR.md +66 -5
- package/docs/en/10_WEIXIN_CONNECTOR_GUIDE.md +137 -0
- package/docs/en/11_LICENSE_AND_RISK.md +256 -0
- package/docs/en/12_GUIDED_WORKFLOW_TOUR.md +446 -0
- package/docs/en/13_CORE_ARCHITECTURE_GUIDE.md +297 -0
- package/docs/en/14_PROMPT_SKILLS_AND_MCP_GUIDE.md +506 -0
- package/docs/en/15_CODEX_PROVIDER_SETUP.md +284 -0
- package/docs/en/99_ACKNOWLEDGEMENTS.md +4 -1
- package/docs/en/README.md +83 -0
- package/docs/images/lingzhu/rokid-agent-platform-create.png +0 -0
- package/docs/images/weixin/weixin-plugin-entry.png +0 -0
- package/docs/images/weixin/weixin-plugin-entry.svg +33 -0
- package/docs/images/weixin/weixin-qr-confirm.svg +30 -0
- package/docs/images/weixin/weixin-quest-media-flow.svg +44 -0
- package/docs/images/weixin/weixin-settings-bind.svg +57 -0
- package/docs/zh/00_QUICK_START.md +345 -72
- package/docs/zh/01_SETTINGS_REFERENCE.md +14 -0
- package/docs/zh/02_START_RESEARCH_GUIDE.md +181 -3
- package/docs/zh/04_LINGZHU_CONNECTOR_GUIDE.md +62 -193
- package/docs/zh/09_DOCTOR.md +68 -5
- package/docs/zh/10_WEIXIN_CONNECTOR_GUIDE.md +144 -0
- package/docs/zh/11_LICENSE_AND_RISK.md +256 -0
- package/docs/zh/12_GUIDED_WORKFLOW_TOUR.md +442 -0
- package/docs/zh/13_CORE_ARCHITECTURE_GUIDE.md +296 -0
- package/docs/zh/14_PROMPT_SKILLS_AND_MCP_GUIDE.md +506 -0
- package/docs/zh/15_CODEX_PROVIDER_SETUP.md +285 -0
- package/docs/zh/99_ACKNOWLEDGEMENTS.md +4 -1
- package/docs/zh/README.md +129 -0
- package/install.sh +0 -34
- package/package.json +2 -2
- package/pyproject.toml +1 -1
- package/src/deepscientist/__init__.py +1 -1
- package/src/deepscientist/annotations.py +343 -0
- package/src/deepscientist/artifact/arxiv.py +484 -37
- package/src/deepscientist/artifact/service.py +574 -108
- package/src/deepscientist/arxiv_library.py +275 -0
- package/src/deepscientist/bash_exec/monitor.py +7 -5
- package/src/deepscientist/bash_exec/service.py +93 -21
- package/src/deepscientist/bridges/builtins.py +2 -0
- package/src/deepscientist/bridges/connectors.py +447 -0
- package/src/deepscientist/channels/__init__.py +2 -0
- package/src/deepscientist/channels/builtins.py +3 -1
- package/src/deepscientist/channels/local.py +3 -3
- package/src/deepscientist/channels/qq.py +8 -8
- package/src/deepscientist/channels/qq_gateway.py +1 -1
- package/src/deepscientist/channels/relay.py +14 -8
- package/src/deepscientist/channels/weixin.py +59 -0
- package/src/deepscientist/channels/weixin_ilink.py +388 -0
- package/src/deepscientist/config/models.py +23 -2
- package/src/deepscientist/config/service.py +539 -67
- package/src/deepscientist/connector/__init__.py +4 -0
- package/src/deepscientist/connector/connector_profiles.py +481 -0
- package/src/deepscientist/connector/lingzhu_support.py +668 -0
- package/src/deepscientist/connector/qq_profiles.py +206 -0
- package/src/deepscientist/connector/weixin_support.py +663 -0
- package/src/deepscientist/connector_profiles.py +1 -374
- package/src/deepscientist/connector_runtime.py +2 -0
- package/src/deepscientist/daemon/api/handlers.py +165 -5
- package/src/deepscientist/daemon/api/router.py +13 -1
- package/src/deepscientist/daemon/app.py +1444 -67
- package/src/deepscientist/doctor.py +4 -5
- package/src/deepscientist/gitops/diff.py +120 -29
- package/src/deepscientist/lingzhu_support.py +1 -182
- package/src/deepscientist/mcp/server.py +135 -7
- package/src/deepscientist/prompts/builder.py +128 -11
- package/src/deepscientist/qq_profiles.py +1 -196
- package/src/deepscientist/quest/node_traces.py +23 -0
- package/src/deepscientist/quest/service.py +359 -74
- package/src/deepscientist/quest/stage_views.py +71 -5
- package/src/deepscientist/runners/codex.py +170 -19
- package/src/deepscientist/runners/runtime_overrides.py +6 -0
- package/src/deepscientist/shared.py +33 -14
- package/src/deepscientist/weixin_support.py +1 -0
- package/src/prompts/connectors/lingzhu.md +3 -1
- package/src/prompts/connectors/qq.md +2 -1
- package/src/prompts/connectors/weixin.md +231 -0
- package/src/prompts/contracts/shared_interaction.md +4 -1
- package/src/prompts/system.md +61 -9
- package/src/skills/analysis-campaign/SKILL.md +46 -6
- package/src/skills/analysis-campaign/references/campaign-plan-template.md +21 -8
- package/src/skills/baseline/SKILL.md +1 -1
- package/src/skills/decision/SKILL.md +1 -1
- package/src/skills/experiment/SKILL.md +1 -1
- package/src/skills/finalize/SKILL.md +1 -1
- package/src/skills/idea/SKILL.md +1 -1
- package/src/skills/intake-audit/SKILL.md +1 -1
- package/src/skills/rebuttal/SKILL.md +74 -1
- package/src/skills/rebuttal/references/response-letter-template.md +55 -11
- package/src/skills/review/SKILL.md +118 -1
- package/src/skills/review/references/experiment-todo-template.md +23 -0
- package/src/skills/review/references/review-report-template.md +16 -0
- package/src/skills/review/references/revision-log-template.md +4 -0
- package/src/skills/scout/SKILL.md +1 -1
- package/src/skills/write/SKILL.md +168 -7
- package/src/skills/write/references/paper-experiment-matrix-template.md +131 -0
- package/src/tui/package.json +1 -1
- package/src/ui/dist/assets/{AiManusChatView-BKZ103sn.js → AiManusChatView-CnJcXynW.js} +156 -48
- package/src/ui/dist/assets/{AnalysisPlugin-mTTzGAlK.js → AnalysisPlugin-DeyzPEhV.js} +1 -1
- package/src/ui/dist/assets/{CliPlugin-BH58n3GY.js → CliPlugin-CB1YODQn.js} +164 -9
- package/src/ui/dist/assets/{CodeEditorPlugin-BKGRUH7e.js → CodeEditorPlugin-B-xicq1e.js} +8 -8
- package/src/ui/dist/assets/{CodeViewerPlugin-BMADwFWJ.js → CodeViewerPlugin-DT54ysXa.js} +5 -5
- package/src/ui/dist/assets/{DocViewerPlugin-ZOnTIHLN.js → DocViewerPlugin-DQtKT-VD.js} +3 -3
- package/src/ui/dist/assets/{GitDiffViewerPlugin-CQ7h1Djm.js → GitDiffViewerPlugin-hqHbCfnv.js} +20 -21
- package/src/ui/dist/assets/{ImageViewerPlugin-GVS5MsnC.js → ImageViewerPlugin-OcVo33jV.js} +5 -5
- package/src/ui/dist/assets/{LabCopilotPanel-BZNv1JML.js → LabCopilotPanel-DdGwhEUV.js} +11 -11
- package/src/ui/dist/assets/{LabPlugin-TWcJsdQA.js → LabPlugin-Ciz1gDaX.js} +2 -1
- package/src/ui/dist/assets/{LatexPlugin-DIjHiR2x.js → LatexPlugin-BhmjNQRC.js} +37 -11
- package/src/ui/dist/assets/{MarkdownViewerPlugin-D3ooGAH0.js → MarkdownViewerPlugin-BzdVH9Bx.js} +4 -4
- package/src/ui/dist/assets/{MarketplacePlugin-DfVfE9hN.js → MarketplacePlugin-DmyHspXt.js} +3 -3
- package/src/ui/dist/assets/{NotebookEditor-DDl0_Mc0.js → NotebookEditor-BMXKrDRk.js} +1 -1
- package/src/ui/dist/assets/{NotebookEditor-s8JhzuX1.js → NotebookEditor-BTVYRGkm.js} +12 -12
- package/src/ui/dist/assets/{PdfLoader-C2Sf6SJM.js → PdfLoader-CvcjJHXv.js} +14 -7
- package/src/ui/dist/assets/{PdfMarkdownPlugin-CXFLoIsa.js → PdfMarkdownPlugin-DW2ej8Vk.js} +73 -6
- package/src/ui/dist/assets/{PdfViewerPlugin-BYTmz2fK.js → PdfViewerPlugin-CmlDxbhU.js} +103 -34
- package/src/ui/dist/assets/PdfViewerPlugin-DQ11QcSf.css +3627 -0
- package/src/ui/dist/assets/{SearchPlugin-CjWBI1O9.js → SearchPlugin-DAjQZPSv.js} +1 -1
- package/src/ui/dist/assets/{TextViewerPlugin-DdOBU3-S.js → TextViewerPlugin-C-nVAZb_.js} +5 -4
- package/src/ui/dist/assets/{VNCViewer-B8HGgLwQ.js → VNCViewer-D7-dIYon.js} +10 -10
- package/src/ui/dist/assets/bot-C_G4WtNI.js +21 -0
- package/src/ui/dist/assets/branding/logo-rokid.png +0 -0
- package/src/ui/dist/assets/browser-BAcuE0Xj.js +2895 -0
- package/src/ui/dist/assets/{code-BWAY76JP.js → code-Cd7WfiWq.js} +1 -1
- package/src/ui/dist/assets/{file-content-C1NwU5oQ.js → file-content-B57zsL9y.js} +1 -1
- package/src/ui/dist/assets/{file-diff-panel-CywslwB9.js → file-diff-panel-DVoheLFq.js} +1 -1
- package/src/ui/dist/assets/{file-socket-B4kzuOBQ.js → file-socket-B5kXFxZP.js} +1 -1
- package/src/ui/dist/assets/{image-D-NZM-6P.js → image-LLOjkMHF.js} +1 -1
- package/src/ui/dist/assets/{index-DGIYDuTv.css → index-BQG-1s2o.css} +40 -13
- package/src/ui/dist/assets/{index-DHZJ_0TI.js → index-C3r2iGrp.js} +12 -12
- package/src/ui/dist/assets/{index-7Chr1g9c.js → index-CLQauncb.js} +15050 -9561
- package/src/ui/dist/assets/index-Dxa2eYMY.js +25 -0
- package/src/ui/dist/assets/{index-BdM1Gqfr.js → index-hOUOWbW2.js} +2 -2
- package/src/ui/dist/assets/{monaco-Cb2uKKe6.js → monaco-BGGAEii3.js} +1 -1
- package/src/ui/dist/assets/{pdf-effect-queue-DSw_D3RV.js → pdf-effect-queue-DlEr1_y5.js} +16 -1
- package/src/ui/dist/assets/pdf.worker.min-yatZIOMy.mjs +21 -0
- package/src/ui/dist/assets/{popover-Bg72DGgT.js → popover-CWJbJuYY.js} +1 -1
- package/src/ui/dist/assets/{project-sync-Ce_0BglY.js → project-sync-CRJiucYO.js} +18 -77
- package/src/ui/dist/assets/select-CoHB7pvH.js +1690 -0
- package/src/ui/dist/assets/{sigma-DPaACDrh.js → sigma-D5aJWR8J.js} +1 -1
- package/src/ui/dist/assets/{index-CDxNdQdz.js → square-check-big-DUK_mnkS.js} +2 -13
- package/src/ui/dist/assets/{trash-BvTgE5__.js → trash-ChU3SEE3.js} +1 -1
- package/src/ui/dist/assets/{useCliAccess-CgPeMOwP.js → useCliAccess-BrJBV3tY.js} +1 -1
- package/src/ui/dist/assets/{useFileDiffOverlay-xPhz7P5B.js → useFileDiffOverlay-C2OQaVWc.js} +1 -1
- package/src/ui/dist/assets/{wrap-text-C3Un3YQr.js → wrap-text-C7Qqh-om.js} +1 -1
- package/src/ui/dist/assets/{zoom-out-BgxLa0Ri.js → zoom-out-rtX0FKya.js} +1 -1
- package/src/ui/dist/index.html +2 -2
- package/src/ui/dist/assets/AutoFigurePlugin-BGxN8Umr.css +0 -3056
- package/src/ui/dist/assets/AutoFigurePlugin-C_wWw4AP.js +0 -8149
- package/src/ui/dist/assets/PdfViewerPlugin-BJXtIwj_.css +0 -260
- package/src/ui/dist/assets/Stepper-B0Dd8CxK.js +0 -158
- package/src/ui/dist/assets/bibtex-CKaefIN2.js +0 -189
- package/src/ui/dist/assets/file-utils-H2fjA46S.js +0 -109
- package/src/ui/dist/assets/message-square-BzjLiXir.js +0 -16
- package/src/ui/dist/assets/pdfjs-DU1YE8WO.js +0 -3
- package/src/ui/dist/assets/tooltip-C_mA6R0w.js +0 -108
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-
|
|
2
|
-
import {
|
|
3
|
-
import { u as useFileContentStore } from './file-content-
|
|
4
|
-
import { n as normalizePath$1, j as joinPath, s as splitPath,
|
|
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 } from './pdf-effect-queue-
|
|
7
|
-
import { F as FileDiffPanel } from './file-diff-panel-
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { T as Trash, A as ArrowDown } from './trash-
|
|
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
|
|
@@ -18,12 +18,12 @@ import { T as Trash, A as ArrowDown } from './trash-BvTgE5__.js';
|
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
const __iconNode$
|
|
21
|
+
const __iconNode$j = [
|
|
22
22
|
["rect", { width: "20", height: "5", x: "2", y: "3", rx: "1", key: "1wp1u1" }],
|
|
23
23
|
["path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8", key: "1s80jp" }],
|
|
24
24
|
["path", { d: "M10 12h4", key: "a56b0p" }]
|
|
25
25
|
];
|
|
26
|
-
const Archive = createLucideIcon("archive", __iconNode$
|
|
26
|
+
const Archive = createLucideIcon("archive", __iconNode$j);
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* @license lucide-react v0.511.0 - ISC
|
|
@@ -33,11 +33,11 @@ const Archive = createLucideIcon("archive", __iconNode$k);
|
|
|
33
33
|
*/
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
const __iconNode$
|
|
36
|
+
const __iconNode$i = [
|
|
37
37
|
["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
|
|
38
38
|
["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
|
|
39
39
|
];
|
|
40
|
-
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$
|
|
40
|
+
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$i);
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
43
|
* @license lucide-react v0.511.0 - ISC
|
|
@@ -47,12 +47,12 @@ const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$j);
|
|
|
47
47
|
*/
|
|
48
48
|
|
|
49
49
|
|
|
50
|
-
const __iconNode$
|
|
50
|
+
const __iconNode$h = [
|
|
51
51
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
52
52
|
["line", { x1: "10", x2: "10", y1: "15", y2: "9", key: "c1nkhi" }],
|
|
53
53
|
["line", { x1: "14", x2: "14", y1: "15", y2: "9", key: "h65svq" }]
|
|
54
54
|
];
|
|
55
|
-
const CirclePause = createLucideIcon("circle-pause", __iconNode$
|
|
55
|
+
const CirclePause = createLucideIcon("circle-pause", __iconNode$h);
|
|
56
56
|
|
|
57
57
|
/**
|
|
58
58
|
* @license lucide-react v0.511.0 - ISC
|
|
@@ -62,13 +62,13 @@ const CirclePause = createLucideIcon("circle-pause", __iconNode$i);
|
|
|
62
62
|
*/
|
|
63
63
|
|
|
64
64
|
|
|
65
|
-
const __iconNode$
|
|
65
|
+
const __iconNode$g = [
|
|
66
66
|
[
|
|
67
67
|
"path",
|
|
68
68
|
{ d: "M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3", key: "11bfej" }
|
|
69
69
|
]
|
|
70
70
|
];
|
|
71
|
-
const Command = createLucideIcon("command", __iconNode$
|
|
71
|
+
const Command = createLucideIcon("command", __iconNode$g);
|
|
72
72
|
|
|
73
73
|
/**
|
|
74
74
|
* @license lucide-react v0.511.0 - ISC
|
|
@@ -78,7 +78,7 @@ const Command = createLucideIcon("command", __iconNode$h);
|
|
|
78
78
|
*/
|
|
79
79
|
|
|
80
80
|
|
|
81
|
-
const __iconNode$
|
|
81
|
+
const __iconNode$f = [
|
|
82
82
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
83
83
|
[
|
|
84
84
|
"path",
|
|
@@ -87,7 +87,7 @@ const __iconNode$g = [
|
|
|
87
87
|
["path", { d: "m9 18-1.5-1.5", key: "1j6qii" }],
|
|
88
88
|
["circle", { cx: "5", cy: "14", r: "3", key: "ufru5t" }]
|
|
89
89
|
];
|
|
90
|
-
const FileSearch = createLucideIcon("file-search", __iconNode$
|
|
90
|
+
const FileSearch = createLucideIcon("file-search", __iconNode$f);
|
|
91
91
|
|
|
92
92
|
/**
|
|
93
93
|
* @license lucide-react v0.511.0 - ISC
|
|
@@ -97,12 +97,12 @@ const FileSearch = createLucideIcon("file-search", __iconNode$g);
|
|
|
97
97
|
*/
|
|
98
98
|
|
|
99
99
|
|
|
100
|
-
const __iconNode$
|
|
100
|
+
const __iconNode$e = [
|
|
101
101
|
["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }],
|
|
102
102
|
["line", { x1: "3", x2: "9", y1: "12", y2: "12", key: "1dyftd" }],
|
|
103
103
|
["line", { x1: "15", x2: "21", y1: "12", y2: "12", key: "oup4p8" }]
|
|
104
104
|
];
|
|
105
|
-
const GitCommitHorizontal = createLucideIcon("git-commit-horizontal", __iconNode$
|
|
105
|
+
const GitCommitHorizontal = createLucideIcon("git-commit-horizontal", __iconNode$e);
|
|
106
106
|
|
|
107
107
|
/**
|
|
108
108
|
* @license lucide-react v0.511.0 - ISC
|
|
@@ -112,33 +112,12 @@ const GitCommitHorizontal = createLucideIcon("git-commit-horizontal", __iconNode
|
|
|
112
112
|
*/
|
|
113
113
|
|
|
114
114
|
|
|
115
|
-
const __iconNode$
|
|
115
|
+
const __iconNode$d = [
|
|
116
116
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
117
117
|
["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
|
|
118
118
|
["path", { d: "M2 12h20", key: "9i4pu4" }]
|
|
119
119
|
];
|
|
120
|
-
const Globe = createLucideIcon("globe", __iconNode$
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* @license lucide-react v0.511.0 - ISC
|
|
124
|
-
*
|
|
125
|
-
* This source code is licensed under the ISC license.
|
|
126
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
127
|
-
*/
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
const __iconNode$d = [
|
|
131
|
-
[
|
|
132
|
-
"path",
|
|
133
|
-
{
|
|
134
|
-
d: "M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",
|
|
135
|
-
key: "j76jl0"
|
|
136
|
-
}
|
|
137
|
-
],
|
|
138
|
-
["path", { d: "M22 10v6", key: "1lu8f3" }],
|
|
139
|
-
["path", { d: "M6 12.5V16a6 3 0 0 0 12 0v-3.5", key: "1r8lef" }]
|
|
140
|
-
];
|
|
141
|
-
const GraduationCap = createLucideIcon("graduation-cap", __iconNode$d);
|
|
120
|
+
const Globe = createLucideIcon("globe", __iconNode$d);
|
|
142
121
|
|
|
143
122
|
/**
|
|
144
123
|
* @license lucide-react v0.511.0 - ISC
|
|
@@ -9557,6 +9536,29 @@ function renderAttachBaseline(resultRecord) {
|
|
|
9557
9536
|
] }) });
|
|
9558
9537
|
}
|
|
9559
9538
|
function renderArxiv(resultRecord, args) {
|
|
9539
|
+
const mode = asString$2(resultRecord?.mode) || asString$2(args.mode) || "read";
|
|
9540
|
+
if (mode === "list") {
|
|
9541
|
+
const items = Array.isArray(resultRecord?.items) ? resultRecord.items.map((entry) => asRecord$4(entry)).filter((entry) => Boolean(entry)) : [];
|
|
9542
|
+
const count = typeof resultRecord?.count === "number" ? resultRecord.count : items.length;
|
|
9543
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(DsToolSection, { title: "Saved arXiv papers", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2 text-[12px] leading-6 text-[var(--text-secondary)]", children: [
|
|
9544
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
9545
|
+
"Count: ",
|
|
9546
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-medium text-[var(--text-primary)]", children: count })
|
|
9547
|
+
] }),
|
|
9548
|
+
items.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "No saved arXiv papers yet." }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-2", children: items.map((item, index) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
9549
|
+
"div",
|
|
9550
|
+
{
|
|
9551
|
+
className: "rounded-[12px] border border-[var(--border-light)] bg-[rgba(255,255,255,0.76)] px-3 py-3",
|
|
9552
|
+
children: [
|
|
9553
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-[12px] font-medium text-[var(--text-primary)]", children: asString$2(item.title) || asString$2(item.arxiv_id) || `Paper ${index + 1}` }),
|
|
9554
|
+
asString$2(item.arxiv_id) ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mt-1 text-[11px] font-mono text-[var(--text-tertiary)]", children: asString$2(item.arxiv_id) }) : null,
|
|
9555
|
+
asString$2(item.abstract) ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mt-2 text-[12px] leading-6 text-[var(--text-secondary)]", children: truncateText(asString$2(item.abstract), 320) }) : null
|
|
9556
|
+
]
|
|
9557
|
+
},
|
|
9558
|
+
`${asString$2(item.arxiv_id) || index}`
|
|
9559
|
+
)) })
|
|
9560
|
+
] }) }) });
|
|
9561
|
+
}
|
|
9560
9562
|
const paperId = asString$2(resultRecord?.paper_id) || asString$2(args.paper_id);
|
|
9561
9563
|
const title = asString$2(resultRecord?.title) || paperId || "arXiv paper";
|
|
9562
9564
|
const source = asString$2(resultRecord?.source);
|
|
@@ -9729,6 +9731,7 @@ function McpArtifactToolView({ toolContent }) {
|
|
|
9729
9731
|
const resultValue = getToolResultValue(toolContent);
|
|
9730
9732
|
const error = asString$2(toolContent.content?.error) || asString$2(resultRecord?.error);
|
|
9731
9733
|
const active = toolContent.status === "calling";
|
|
9734
|
+
const arxivMode = asString$2(resultRecord?.mode) || asString$2(args.mode) || "read";
|
|
9732
9735
|
const titleMap = {
|
|
9733
9736
|
record: active ? "DeepScientist is recording artifact..." : "DeepScientist recorded artifact.",
|
|
9734
9737
|
checkpoint: active ? "DeepScientist is creating checkpoint..." : "DeepScientist created checkpoint.",
|
|
@@ -9761,7 +9764,7 @@ function McpArtifactToolView({ toolContent }) {
|
|
|
9761
9764
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-3", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
9762
9765
|
DsToolFrame,
|
|
9763
9766
|
{
|
|
9764
|
-
title: titleMap[toolLabel] || (active ? "DeepScientist is updating artifact..." : "DeepScientist updated artifact."),
|
|
9767
|
+
title: toolLabel === "arxiv" && arxivMode === "list" ? active ? "DeepScientist is listing saved arXiv papers..." : "DeepScientist listed the saved arXiv papers." : titleMap[toolLabel] || (active ? "DeepScientist is updating artifact..." : "DeepScientist updated artifact."),
|
|
9765
9768
|
subtitle: recordSummary || subtitleMap[toolLabel] || "Artifact tools persist branch, report, baseline, and interaction state.",
|
|
9766
9769
|
accent,
|
|
9767
9770
|
meta: /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
@@ -11535,7 +11538,7 @@ function SearchToolView({ toolContent, panelMode }) {
|
|
|
11535
11538
|
}
|
|
11536
11539
|
|
|
11537
11540
|
const CliToolTerminal = dynamic(
|
|
11538
|
-
() => __vitePreload(() => import('./index-
|
|
11541
|
+
() => __vitePreload(() => import('./index-hOUOWbW2.js'),true?__vite__mapDeps([0,1,2,3]):void 0).then((mod) => mod.CliToolTerminal),
|
|
11539
11542
|
{
|
|
11540
11543
|
loading: () => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex h-full items-center justify-center text-xs text-[var(--text-tertiary)]", children: "Loading terminal..." })
|
|
11541
11544
|
}
|
|
@@ -16875,6 +16878,111 @@ const ChatMessage = reactExports.memo(ChatMessageBase, (prev, next) => {
|
|
|
16875
16878
|
});
|
|
16876
16879
|
ChatMessage.displayName = "ChatMessage";
|
|
16877
16880
|
|
|
16881
|
+
const TooltipContext = reactExports.createContext(null);
|
|
16882
|
+
const TooltipProvider = ({
|
|
16883
|
+
children,
|
|
16884
|
+
// These props are accepted for compatibility but not used in this simple implementation
|
|
16885
|
+
delayDuration: _delayDuration,
|
|
16886
|
+
skipDelayDuration: _skipDelayDuration
|
|
16887
|
+
}) => {
|
|
16888
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children });
|
|
16889
|
+
};
|
|
16890
|
+
const Tooltip = ({
|
|
16891
|
+
children,
|
|
16892
|
+
delayDuration = 200
|
|
16893
|
+
}) => {
|
|
16894
|
+
const [open, setOpen] = reactExports.useState(false);
|
|
16895
|
+
const timeoutRef = reactExports.useRef();
|
|
16896
|
+
const handleOpen = reactExports.useCallback(() => {
|
|
16897
|
+
timeoutRef.current = setTimeout(() => {
|
|
16898
|
+
setOpen(true);
|
|
16899
|
+
}, delayDuration);
|
|
16900
|
+
}, [delayDuration]);
|
|
16901
|
+
const handleClose = reactExports.useCallback(() => {
|
|
16902
|
+
if (timeoutRef.current) {
|
|
16903
|
+
clearTimeout(timeoutRef.current);
|
|
16904
|
+
}
|
|
16905
|
+
setOpen(false);
|
|
16906
|
+
}, []);
|
|
16907
|
+
reactExports.useEffect(() => {
|
|
16908
|
+
return () => {
|
|
16909
|
+
if (timeoutRef.current) {
|
|
16910
|
+
clearTimeout(timeoutRef.current);
|
|
16911
|
+
}
|
|
16912
|
+
};
|
|
16913
|
+
}, []);
|
|
16914
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
16915
|
+
TooltipContext.Provider,
|
|
16916
|
+
{
|
|
16917
|
+
value: {
|
|
16918
|
+
open,
|
|
16919
|
+
setOpen: (value) => {
|
|
16920
|
+
if (value) {
|
|
16921
|
+
handleOpen();
|
|
16922
|
+
} else {
|
|
16923
|
+
handleClose();
|
|
16924
|
+
}
|
|
16925
|
+
}
|
|
16926
|
+
},
|
|
16927
|
+
children
|
|
16928
|
+
}
|
|
16929
|
+
);
|
|
16930
|
+
};
|
|
16931
|
+
const TooltipTrigger = reactExports.forwardRef(
|
|
16932
|
+
({ className, children, asChild, ...props }, ref) => {
|
|
16933
|
+
const context = reactExports.useContext(TooltipContext);
|
|
16934
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
16935
|
+
"div",
|
|
16936
|
+
{
|
|
16937
|
+
ref,
|
|
16938
|
+
className: cn("inline-flex", className),
|
|
16939
|
+
onMouseEnter: () => context?.setOpen(true),
|
|
16940
|
+
onMouseLeave: () => context?.setOpen(false),
|
|
16941
|
+
onFocus: () => context?.setOpen(true),
|
|
16942
|
+
onBlur: () => context?.setOpen(false),
|
|
16943
|
+
...props,
|
|
16944
|
+
children
|
|
16945
|
+
}
|
|
16946
|
+
);
|
|
16947
|
+
}
|
|
16948
|
+
);
|
|
16949
|
+
TooltipTrigger.displayName = "TooltipTrigger";
|
|
16950
|
+
const TooltipContent = reactExports.forwardRef(
|
|
16951
|
+
({ className, side = "top", sideOffset = 4, children, ...props }, ref) => {
|
|
16952
|
+
const context = reactExports.useContext(TooltipContext);
|
|
16953
|
+
if (!context?.open) {
|
|
16954
|
+
return null;
|
|
16955
|
+
}
|
|
16956
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
16957
|
+
"div",
|
|
16958
|
+
{
|
|
16959
|
+
ref,
|
|
16960
|
+
className: cn(
|
|
16961
|
+
"absolute z-[10002] overflow-hidden rounded-soft-sm px-3 py-1.5",
|
|
16962
|
+
"bg-soft-bg-elevated text-soft-text-primary text-sm",
|
|
16963
|
+
"shadow-soft-sm border border-soft-border",
|
|
16964
|
+
"animate-in fade-in-0 zoom-in-95",
|
|
16965
|
+
// Position based on side
|
|
16966
|
+
side === "top" && "bottom-full mb-2",
|
|
16967
|
+
side === "bottom" && "top-full mt-2",
|
|
16968
|
+
side === "left" && "right-full mr-2",
|
|
16969
|
+
side === "right" && "left-full ml-2",
|
|
16970
|
+
className
|
|
16971
|
+
),
|
|
16972
|
+
style: {
|
|
16973
|
+
marginTop: side === "bottom" ? sideOffset : void 0,
|
|
16974
|
+
marginBottom: side === "top" ? sideOffset : void 0,
|
|
16975
|
+
marginLeft: side === "right" ? sideOffset : void 0,
|
|
16976
|
+
marginRight: side === "left" ? sideOffset : void 0
|
|
16977
|
+
},
|
|
16978
|
+
...props,
|
|
16979
|
+
children
|
|
16980
|
+
}
|
|
16981
|
+
);
|
|
16982
|
+
}
|
|
16983
|
+
);
|
|
16984
|
+
TooltipContent.displayName = "TooltipContent";
|
|
16985
|
+
|
|
16878
16986
|
function PlanPanel({
|
|
16879
16987
|
plan,
|
|
16880
16988
|
sessionId,
|
|
@@ -18393,7 +18501,7 @@ function pickGreetingTemplate() {
|
|
|
18393
18501
|
return GREETING_TEMPLATES[index];
|
|
18394
18502
|
}
|
|
18395
18503
|
const VNCViewer = dynamic(
|
|
18396
|
-
() => __vitePreload(() => import('./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),
|
|
18397
18505
|
{
|
|
18398
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..." })
|
|
18399
18507
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as reactExports, c as copyToClipboard, j as jsxRuntimeExports, k as FileText, l as Search,
|
|
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,24 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { S as SquareCheckBig } from './
|
|
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-
|
|
6
|
-
import
|
|
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
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @license lucide-react v0.511.0 - ISC
|
|
10
|
+
*
|
|
11
|
+
* This source code is licensed under the ISC license.
|
|
12
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
const __iconNode$9 = [
|
|
17
|
+
["path", { d: "M12 13v8", key: "1l5pq0" }],
|
|
18
|
+
["path", { d: "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242", key: "1pljnt" }],
|
|
19
|
+
["path", { d: "m8 17 4-4 4 4", key: "1quai1" }]
|
|
20
|
+
];
|
|
21
|
+
const CloudUpload = createLucideIcon("cloud-upload", __iconNode$9);
|
|
7
22
|
|
|
8
23
|
/**
|
|
9
24
|
* @license lucide-react v0.511.0 - ISC
|
|
@@ -365,6 +380,146 @@ function CountUp({
|
|
|
365
380
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className, ref });
|
|
366
381
|
}
|
|
367
382
|
|
|
383
|
+
function Step({ children }) {
|
|
384
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children });
|
|
385
|
+
}
|
|
386
|
+
const clampStep = (step, totalSteps) => {
|
|
387
|
+
if (totalSteps <= 0) return 1;
|
|
388
|
+
return Math.min(Math.max(step, 1), totalSteps);
|
|
389
|
+
};
|
|
390
|
+
function Stepper({
|
|
391
|
+
initialStep = 1,
|
|
392
|
+
onStepChange,
|
|
393
|
+
onFinalStepCompleted,
|
|
394
|
+
backButtonText = "Previous",
|
|
395
|
+
nextButtonText = "Next",
|
|
396
|
+
nextDisabled,
|
|
397
|
+
backDisabled,
|
|
398
|
+
contentAnimation = false,
|
|
399
|
+
className,
|
|
400
|
+
children
|
|
401
|
+
}) {
|
|
402
|
+
const steps = reactExports.useMemo(
|
|
403
|
+
() => reactExports.Children.toArray(children).filter((child) => reactExports.isValidElement(child)),
|
|
404
|
+
[children]
|
|
405
|
+
);
|
|
406
|
+
const totalSteps = steps.length;
|
|
407
|
+
const [currentStep, setCurrentStep] = reactExports.useState(() => clampStep(initialStep, totalSteps));
|
|
408
|
+
const previousStepRef = reactExports.useRef(currentStep);
|
|
409
|
+
reactExports.useEffect(() => {
|
|
410
|
+
setCurrentStep(clampStep(initialStep, totalSteps));
|
|
411
|
+
}, [initialStep, totalSteps]);
|
|
412
|
+
reactExports.useEffect(() => {
|
|
413
|
+
onStepChange?.(currentStep);
|
|
414
|
+
}, [currentStep, onStepChange]);
|
|
415
|
+
reactExports.useEffect(() => {
|
|
416
|
+
previousStepRef.current = currentStep;
|
|
417
|
+
}, [currentStep]);
|
|
418
|
+
const resolveDisabled = (value, step, total) => {
|
|
419
|
+
if (typeof value === "function") return value(step, total);
|
|
420
|
+
return Boolean(value);
|
|
421
|
+
};
|
|
422
|
+
const isFinalStep = currentStep >= totalSteps;
|
|
423
|
+
const isNextDisabled = resolveDisabled(nextDisabled, currentStep, totalSteps);
|
|
424
|
+
const isBackDisabled = resolveDisabled(backDisabled, currentStep, totalSteps);
|
|
425
|
+
const canGoBack = currentStep > 1 && !isBackDisabled;
|
|
426
|
+
const nextLabel = typeof nextButtonText === "function" ? nextButtonText(currentStep, totalSteps) : nextButtonText;
|
|
427
|
+
const handleNext = () => {
|
|
428
|
+
if (isFinalStep) {
|
|
429
|
+
if (!isNextDisabled) {
|
|
430
|
+
onFinalStepCompleted?.();
|
|
431
|
+
}
|
|
432
|
+
return;
|
|
433
|
+
}
|
|
434
|
+
if (isNextDisabled) return;
|
|
435
|
+
setCurrentStep((prev) => clampStep(prev + 1, totalSteps));
|
|
436
|
+
};
|
|
437
|
+
const handleBack = () => {
|
|
438
|
+
if (!canGoBack) return;
|
|
439
|
+
setCurrentStep((prev) => clampStep(prev - 1, totalSteps));
|
|
440
|
+
};
|
|
441
|
+
if (totalSteps === 0) {
|
|
442
|
+
return null;
|
|
443
|
+
}
|
|
444
|
+
const activeStep = steps[currentStep - 1];
|
|
445
|
+
const activeTitle = activeStep?.props?.title ?? `Step ${currentStep}`;
|
|
446
|
+
const activeDescription = activeStep?.props?.description;
|
|
447
|
+
const stepDirection = currentStep >= previousStepRef.current ? "forward" : "back";
|
|
448
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: cn("stepper-root flex flex-col gap-5", className), children: [
|
|
449
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "stepper-header flex flex-wrap items-center justify-between gap-3", children: [
|
|
450
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-wrap items-center gap-3", children: steps.map((step, index) => {
|
|
451
|
+
const stepNumber = index + 1;
|
|
452
|
+
const isComplete = stepNumber < currentStep;
|
|
453
|
+
const isActive = stepNumber === currentStep;
|
|
454
|
+
const title = step.props.title ?? `Step ${stepNumber}`;
|
|
455
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
456
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
457
|
+
"div",
|
|
458
|
+
{
|
|
459
|
+
className: cn(
|
|
460
|
+
"stepper-dot flex h-8 w-8 items-center justify-center rounded-full border text-xs font-semibold transition",
|
|
461
|
+
isComplete && "border-transparent bg-[var(--cli-accent-olive)] text-[var(--cli-ink-0)]",
|
|
462
|
+
isActive && "border-[var(--cli-accent-olive)] bg-white/90 text-[var(--cli-ink-1)]",
|
|
463
|
+
!isComplete && !isActive && "border-white/60 bg-white/60 text-[var(--cli-muted-1)]"
|
|
464
|
+
),
|
|
465
|
+
"data-state": isComplete ? "complete" : isActive ? "active" : "upcoming",
|
|
466
|
+
children: isComplete ? /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "h-4 w-4" }) : stepNumber
|
|
467
|
+
}
|
|
468
|
+
),
|
|
469
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col", children: [
|
|
470
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-[10px] uppercase tracking-wide text-[var(--cli-muted-1)]", children: [
|
|
471
|
+
"Step ",
|
|
472
|
+
stepNumber
|
|
473
|
+
] }),
|
|
474
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
475
|
+
"span",
|
|
476
|
+
{
|
|
477
|
+
className: cn(
|
|
478
|
+
"text-xs font-semibold",
|
|
479
|
+
isActive ? "text-[var(--cli-ink-1)]" : "text-[var(--cli-muted-1)]"
|
|
480
|
+
),
|
|
481
|
+
children: title
|
|
482
|
+
}
|
|
483
|
+
)
|
|
484
|
+
] }),
|
|
485
|
+
index < totalSteps - 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "h-px w-8 bg-white/60", "aria-hidden": "true" }) : null
|
|
486
|
+
] }, `${title}-${stepNumber}`);
|
|
487
|
+
}) }),
|
|
488
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "rounded-full border border-white/50 bg-white/80 px-3 py-1 text-[10px] uppercase tracking-wide text-[var(--cli-muted-1)]", children: [
|
|
489
|
+
currentStep,
|
|
490
|
+
" / ",
|
|
491
|
+
totalSteps
|
|
492
|
+
] })
|
|
493
|
+
] }),
|
|
494
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
495
|
+
"div",
|
|
496
|
+
{
|
|
497
|
+
className: "stepper-content rounded-xl border border-white/40 bg-white/80 p-4",
|
|
498
|
+
"data-step": currentStep,
|
|
499
|
+
"data-direction": stepDirection,
|
|
500
|
+
children: [
|
|
501
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
|
|
502
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
503
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-sm font-semibold text-[var(--cli-ink-1)]", children: activeTitle }),
|
|
504
|
+
activeDescription ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-xs text-[var(--cli-muted-1)]", children: activeDescription }) : null
|
|
505
|
+
] }),
|
|
506
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "rounded-full border border-white/60 bg-white/70 px-2 py-1 text-[10px] uppercase tracking-wide text-[var(--cli-muted-1)]", children: [
|
|
507
|
+
"Step ",
|
|
508
|
+
currentStep
|
|
509
|
+
] })
|
|
510
|
+
] }),
|
|
511
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mt-4", children: activeStep })
|
|
512
|
+
]
|
|
513
|
+
},
|
|
514
|
+
contentAnimation ? `step-${currentStep}` : "step-static"
|
|
515
|
+
),
|
|
516
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "stepper-actions flex flex-wrap items-center justify-between gap-3", children: [
|
|
517
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { variant: "secondary", onClick: handleBack, disabled: !canGoBack, children: backButtonText }),
|
|
518
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { onClick: handleNext, disabled: isNextDisabled, children: nextLabel })
|
|
519
|
+
] })
|
|
520
|
+
] });
|
|
521
|
+
}
|
|
522
|
+
|
|
368
523
|
const statusClasses$1 = {
|
|
369
524
|
online: "bg-[var(--cli-status-online)]",
|
|
370
525
|
offline: "bg-[var(--cli-status-offline)]",
|
|
@@ -523,7 +678,7 @@ function ServerList({
|
|
|
523
678
|
const container = listRef.current;
|
|
524
679
|
const targets = container.querySelectorAll("[data-cli-server-card]");
|
|
525
680
|
if (targets.length === 0) return;
|
|
526
|
-
__vitePreload(async () => { const {default: anime} = await import('./index-
|
|
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 }) => {
|
|
527
682
|
if (cancelled) return;
|
|
528
683
|
anime({
|
|
529
684
|
targets,
|
|
@@ -4919,7 +5074,7 @@ function TasksPanel({ projectId, serverId }) {
|
|
|
4919
5074
|
let cancelled = false;
|
|
4920
5075
|
const targets = listRef.current.querySelectorAll("[data-cli-task-item]");
|
|
4921
5076
|
if (targets.length === 0) return;
|
|
4922
|
-
__vitePreload(async () => { const {default: anime} = await import('./index-
|
|
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 }) => {
|
|
4923
5078
|
if (cancelled) return;
|
|
4924
5079
|
anime({
|
|
4925
5080
|
targets,
|
|
@@ -5046,7 +5201,7 @@ function FindingsPanel({ projectId, serverId }) {
|
|
|
5046
5201
|
let cancelled = false;
|
|
5047
5202
|
const targets = listRef.current.querySelectorAll("[data-cli-finding-item]");
|
|
5048
5203
|
if (targets.length === 0) return;
|
|
5049
|
-
__vitePreload(async () => { const {default: anime} = await import('./index-
|
|
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 }) => {
|
|
5050
5205
|
if (cancelled) return;
|
|
5051
5206
|
anime({
|
|
5052
5207
|
targets,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/monaco-
|
|
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-
|
|
3
|
-
import { u as useFileContentStore, a as useFileContentLoading } from './file-content-
|
|
4
|
-
import { a as acquireFileSocket } from './file-socket-
|
|
5
|
-
import { c as configureMonacoLoader } from './monaco-
|
|
6
|
-
import { u as useFileDiffOverlay } from './useFileDiffOverlay-
|
|
7
|
-
import { F as FileDiffPanel } from './file-diff-panel-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
5
|
-
import { H as Hash, W as WrapText } from './wrap-text-
|
|
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-
|
|
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-
|
|
2
|
-
import {
|
|
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-
|
|
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);
|