@researai/deepscientist 1.5.8 → 1.5.11
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/LICENSE +186 -21
- package/README.md +108 -95
- 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 +172 -13
- package/docs/assets/branding/projects.png +0 -0
- package/docs/en/00_QUICK_START.md +308 -70
- package/docs/en/01_SETTINGS_REFERENCE.md +3 -0
- package/docs/en/02_START_RESEARCH_GUIDE.md +112 -0
- package/docs/en/04_LINGZHU_CONNECTOR_GUIDE.md +62 -179
- package/docs/en/09_DOCTOR.md +41 -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 +427 -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/99_ACKNOWLEDGEMENTS.md +4 -1
- package/docs/en/README.md +79 -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 +315 -74
- package/docs/zh/01_SETTINGS_REFERENCE.md +3 -0
- package/docs/zh/02_START_RESEARCH_GUIDE.md +112 -0
- package/docs/zh/04_LINGZHU_CONNECTOR_GUIDE.md +62 -193
- package/docs/zh/09_DOCTOR.md +41 -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 +423 -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/99_ACKNOWLEDGEMENTS.md +4 -1
- package/docs/zh/README.md +126 -0
- package/install.sh +0 -34
- package/package.json +3 -3
- package/pyproject.toml +2 -2
- 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/metrics.py +1 -3
- package/src/deepscientist/artifact/service.py +1347 -111
- package/src/deepscientist/arxiv_library.py +275 -0
- package/src/deepscientist/bash_exec/service.py +9 -0
- 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/qq.py +1 -1
- package/src/deepscientist/channels/qq_gateway.py +1 -1
- package/src/deepscientist/channels/relay.py +7 -1
- package/src/deepscientist/channels/weixin.py +59 -0
- package/src/deepscientist/channels/weixin_ilink.py +317 -0
- package/src/deepscientist/config/models.py +22 -2
- package/src/deepscientist/config/service.py +431 -60
- 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 +295 -5
- package/src/deepscientist/daemon/api/router.py +16 -1
- package/src/deepscientist/daemon/app.py +1130 -61
- package/src/deepscientist/doctor.py +5 -2
- package/src/deepscientist/gitops/diff.py +120 -29
- package/src/deepscientist/lingzhu_support.py +1 -182
- package/src/deepscientist/mcp/server.py +14 -5
- package/src/deepscientist/prompts/builder.py +29 -1
- package/src/deepscientist/qq_profiles.py +1 -196
- package/src/deepscientist/quest/node_traces.py +152 -2
- package/src/deepscientist/quest/service.py +169 -43
- package/src/deepscientist/quest/stage_views.py +172 -9
- package/src/deepscientist/registries/baseline.py +56 -4
- package/src/deepscientist/runners/codex.py +55 -3
- package/src/deepscientist/weixin_support.py +1 -0
- package/src/prompts/connectors/lingzhu.md +3 -1
- package/src/prompts/connectors/weixin.md +230 -0
- package/src/prompts/system.md +9 -0
- package/src/skills/idea/SKILL.md +16 -0
- package/src/skills/idea/references/literature-survey-template.md +24 -0
- package/src/skills/idea/references/related-work-playbook.md +4 -0
- package/src/skills/idea/references/selection-gate.md +9 -0
- package/src/skills/write/SKILL.md +1 -1
- package/src/tui/package.json +1 -1
- package/src/ui/dist/assets/{AiManusChatView-m2FNtwbn.js → AiManusChatView-D0mTXG4-.js} +156 -48
- package/src/ui/dist/assets/{AnalysisPlugin-BMTF8EGL.js → AnalysisPlugin-Db0cTXxm.js} +1 -1
- package/src/ui/dist/assets/{CliPlugin-BEOWgxCI.js → CliPlugin-DrV8je02.js} +164 -9
- package/src/ui/dist/assets/{CodeEditorPlugin-BCXvjqmb.js → CodeEditorPlugin-QXMSCH71.js} +8 -8
- package/src/ui/dist/assets/{CodeViewerPlugin-DaJcy3nD.js → CodeViewerPlugin-7hhtWj_E.js} +5 -5
- package/src/ui/dist/assets/{DocViewerPlugin-ByfeIq4K.js → DocViewerPlugin-BWMSnRJe.js} +3 -3
- package/src/ui/dist/assets/{GitDiffViewerPlugin-Cksf3VZ-.js → GitDiffViewerPlugin-7J9h9Vy_.js} +20 -21
- package/src/ui/dist/assets/{ImageViewerPlugin-CFz-OsTS.js → ImageViewerPlugin-CHJl_0lr.js} +5 -5
- package/src/ui/dist/assets/{LabCopilotPanel-CJ1cJzoX.js → LabCopilotPanel-1qSow1es.js} +11 -11
- package/src/ui/dist/assets/{LabPlugin-BF3dVJwa.js → LabPlugin-eQpPPCEp.js} +2 -1
- package/src/ui/dist/assets/{LatexPlugin-DDkwZ6Sj.js → LatexPlugin-BwRfi89Z.js} +7 -7
- package/src/ui/dist/assets/{MarkdownViewerPlugin-HAuvurcT.js → MarkdownViewerPlugin-836PVQWV.js} +4 -4
- package/src/ui/dist/assets/{MarketplacePlugin-BtoTYy2C.js → MarketplacePlugin-C2y_556i.js} +3 -3
- package/src/ui/dist/assets/{NotebookEditor-CSJYx7b-.js → NotebookEditor-BRzJbGsn.js} +12 -12
- package/src/ui/dist/assets/{NotebookEditor-DQgRezm_.js → NotebookEditor-DIX7Mlzu.js} +1 -1
- package/src/ui/dist/assets/{PdfLoader-DPa_-fv6.js → PdfLoader-DzRaTAlq.js} +14 -7
- package/src/ui/dist/assets/{PdfMarkdownPlugin-BZpXOEjm.js → PdfMarkdownPlugin-DZUfIUnp.js} +73 -6
- package/src/ui/dist/assets/{PdfViewerPlugin-BT8a6wGR.js → PdfViewerPlugin-BwtICzue.js} +103 -34
- package/src/ui/dist/assets/PdfViewerPlugin-DQ11QcSf.css +3627 -0
- package/src/ui/dist/assets/{SearchPlugin-D_blveZi.js → SearchPlugin-DHeIAMsx.js} +1 -1
- package/src/ui/dist/assets/{TextViewerPlugin-Btx0M3hX.js → TextViewerPlugin-C3tCmFox.js} +5 -4
- package/src/ui/dist/assets/{VNCViewer-DImJO4rO.js → VNCViewer-CQsKVm3t.js} +10 -10
- package/src/ui/dist/assets/bot-BEA2vWuK.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-BUfXGJSl.js → code-XfbSR8K2.js} +1 -1
- package/src/ui/dist/assets/{file-content-VqamwI3X.js → file-content-BjxNaIfy.js} +1 -1
- package/src/ui/dist/assets/{file-diff-panel-C_wOoS7a.js → file-diff-panel-D_lLVQk0.js} +1 -1
- package/src/ui/dist/assets/{file-socket-D2bTuMVP.js → file-socket-D9x_5vlY.js} +1 -1
- package/src/ui/dist/assets/{image-BZkGJ4mM.js → image-BhWT33W1.js} +1 -1
- package/src/ui/dist/assets/{index-DdRW6RMJ.js → index--c4iXtuy.js} +12 -12
- package/src/ui/dist/assets/{index-CxkvSeKw.js → index-BDxipwrC.js} +2 -2
- package/src/ui/dist/assets/{index-DjggJovS.js → index-DZTZ8mWP.js} +14934 -9613
- package/src/ui/dist/assets/{index-DXZ1daiJ.css → index-Dqj-Mjb4.css} +2 -13
- package/src/ui/dist/assets/index-PJbSbPTy.js +25 -0
- package/src/ui/dist/assets/{monaco-DHMc7kKM.js → monaco-K8izTGgo.js} +1 -1
- package/src/ui/dist/assets/{pdf-effect-queue-DSw_D3RV.js → pdf-effect-queue-DfBors6y.js} +16 -1
- package/src/ui/dist/assets/pdf.worker.min-yatZIOMy.mjs +21 -0
- package/src/ui/dist/assets/{popover-B85oCgCS.js → popover-yFK1J4fL.js} +1 -1
- package/src/ui/dist/assets/{project-sync-DOMCcPac.js → project-sync-PENr2zcz.js} +1 -74
- package/src/ui/dist/assets/select-CAbJDfYv.js +1690 -0
- package/src/ui/dist/assets/{sigma-BO2rQrl3.js → sigma-DEuYJqTl.js} +1 -1
- package/src/ui/dist/assets/{index-D9QIGcmc.js → square-check-big-omoSUmcd.js} +2 -13
- package/src/ui/dist/assets/{trash-BsVEH_dV.js → trash--F119N47.js} +1 -1
- package/src/ui/dist/assets/{useCliAccess-b8L6JuZm.js → useCliAccess-D31UR23I.js} +1 -1
- package/src/ui/dist/assets/{useFileDiffOverlay-BY7uA9hV.js → useFileDiffOverlay-BH6KcMzq.js} +1 -1
- package/src/ui/dist/assets/{wrap-text-BwyVuUIK.js → wrap-text-CZ613PM5.js} +1 -1
- package/src/ui/dist/assets/{zoom-out-RDpLugQP.js → zoom-out-BgDLAv3z.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-DxPdMUNb.js +0 -8149
- package/src/ui/dist/assets/PdfViewerPlugin-BJXtIwj_.css +0 -260
- package/src/ui/dist/assets/Stepper-DH2k75Vo.js +0 -158
- package/src/ui/dist/assets/bibtex-B-Hqu0Sg.js +0 -189
- package/src/ui/dist/assets/file-utils--zJCPN1i.js +0 -109
- package/src/ui/dist/assets/message-square-FUIPIhU2.js +0 -16
- package/src/ui/dist/assets/pdfjs-DU1YE8WO.js +0 -3
- package/src/ui/dist/assets/tooltip-B1OspAkx.js +0 -108
|
@@ -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-DZTZ8mWP.js","assets/index-Dqj-Mjb4.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import { u as useI18n, a as useWorkspaceSurfaceStore, r as reactExports, c as copyToClipboard, j as jsxRuntimeExports, L as LoaderCircle, C as CircleAlert, F as FileCode, E as Eye, b as cn, d as Check, e as Copy, _ as __vitePreload } from './index-DZTZ8mWP.js';
|
|
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-XfbSR8K2.js';
|
|
5
|
+
import { H as Hash, W as WrapText } from './wrap-text-CZ613PM5.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-DZTZ8mWP.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-DZTZ8mWP.js","assets/index-Dqj-Mjb4.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import { w as createLucideIcon, u as useI18n, r as reactExports, j as jsxRuntimeExports, L as LoaderCircle, b as cn, T as TriangleAlert, a3 as Download, _ as __vitePreload, a9 as FileSpreadsheet, k as FileText } from './index-DZTZ8mWP.js';
|
|
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-DZTZ8mWP.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);
|
package/src/ui/dist/assets/{GitDiffViewerPlugin-Cksf3VZ-.js → GitDiffViewerPlugin-7J9h9Vy_.js}
RENAMED
|
@@ -1,26 +1,25 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import ImageViewerPlugin from './ImageViewerPlugin-
|
|
3
|
-
import MarkdownViewerPlugin from './MarkdownViewerPlugin-
|
|
4
|
-
import { N as NotebookEditor } from './NotebookEditor-
|
|
5
|
-
import PdfViewerPlugin from './PdfViewerPlugin-
|
|
6
|
-
import './image-
|
|
7
|
-
import './zoom-out-
|
|
8
|
-
import './code-
|
|
9
|
-
import './NotebookEditor-
|
|
1
|
+
import { w as createLucideIcon, aK as inferWorkspaceContentKindFromMetadata, v as BUILTIN_PLUGINS, aL as getPluginIdFromMimeType, aM as getPluginIdFromExtension, r as reactExports, j as jsxRuntimeExports, u as useI18n, b as cn, a as useWorkspaceSurfaceStore, aN as useQuery, k as FileText, aO as Button, g as RefreshCw, aP as buildQuestFileNodeFromDocument, W as toFilesResourcePath, aQ as client } from './index-DZTZ8mWP.js';
|
|
2
|
+
import ImageViewerPlugin from './ImageViewerPlugin-CHJl_0lr.js';
|
|
3
|
+
import MarkdownViewerPlugin from './MarkdownViewerPlugin-836PVQWV.js';
|
|
4
|
+
import { N as NotebookEditor } from './NotebookEditor-BRzJbGsn.js';
|
|
5
|
+
import PdfViewerPlugin from './PdfViewerPlugin-BwtICzue.js';
|
|
6
|
+
import './image-BhWT33W1.js';
|
|
7
|
+
import './zoom-out-BgDLAv3z.js';
|
|
8
|
+
import './code-XfbSR8K2.js';
|
|
9
|
+
import './NotebookEditor-DIX7Mlzu.js';
|
|
10
10
|
import './function-B5QZkkHC.js';
|
|
11
11
|
import './yjs-DncrqiZ8.js';
|
|
12
|
-
import './project-sync-
|
|
13
|
-
import './
|
|
14
|
-
import './popover-
|
|
15
|
-
import './trash
|
|
16
|
-
import './sigma-
|
|
17
|
-
import './useFileDiffOverlay-
|
|
18
|
-
import './file-diff-panel-
|
|
19
|
-
import './file-socket-
|
|
20
|
-
import './pdf-effect-queue-
|
|
21
|
-
import './
|
|
22
|
-
import './
|
|
23
|
-
import './message-square-FUIPIhU2.js';
|
|
12
|
+
import './project-sync-PENr2zcz.js';
|
|
13
|
+
import './square-check-big-omoSUmcd.js';
|
|
14
|
+
import './popover-yFK1J4fL.js';
|
|
15
|
+
import './trash--F119N47.js';
|
|
16
|
+
import './sigma-DEuYJqTl.js';
|
|
17
|
+
import './useFileDiffOverlay-BH6KcMzq.js';
|
|
18
|
+
import './file-diff-panel-D_lLVQk0.js';
|
|
19
|
+
import './file-socket-D9x_5vlY.js';
|
|
20
|
+
import './pdf-effect-queue-DfBors6y.js';
|
|
21
|
+
import './PdfLoader-DzRaTAlq.js';
|
|
22
|
+
import './index-PJbSbPTy.js';
|
|
24
23
|
|
|
25
24
|
/**
|
|
26
25
|
* @license lucide-react v0.511.0 - ISC
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-
|
|
2
|
-
import {
|
|
3
|
-
import { I as Image } from './image-
|
|
4
|
-
import { Z as ZoomOut, a as ZoomIn } from './zoom-out-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DZTZ8mWP.js","assets/index-Dqj-Mjb4.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import { w as createLucideIcon, r as reactExports, j as jsxRuntimeExports, b as cn, ah as RotateCcw, ai as Info, a3 as Download, L as LoaderCircle, _ as __vitePreload } from './index-DZTZ8mWP.js';
|
|
3
|
+
import { I as Image } from './image-BhWT33W1.js';
|
|
4
|
+
import { Z as ZoomOut, a as ZoomIn } from './zoom-out-BgDLAv3z.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @license lucide-react v0.511.0 - ISC
|
|
@@ -280,7 +280,7 @@ function ImageViewerPlugin({
|
|
|
280
280
|
}
|
|
281
281
|
const loadImageUrl = async () => {
|
|
282
282
|
try {
|
|
283
|
-
const { createFileObjectUrl } = await __vitePreload(async () => { const { createFileObjectUrl } = await import('./index-
|
|
283
|
+
const { createFileObjectUrl } = await __vitePreload(async () => { const { createFileObjectUrl } = await import('./index-DZTZ8mWP.js').then(n => n.el);return { createFileObjectUrl }},true?__vite__mapDeps([0,1]):void 0);
|
|
284
284
|
objectUrl = await createFileObjectUrl(context.resourceId);
|
|
285
285
|
if (cancelled) {
|
|
286
286
|
URL.revokeObjectURL(objectUrl);
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { P as Popover, a as PopoverTrigger, b as PopoverContent } from './popover-
|
|
3
|
-
import {
|
|
4
|
-
import './
|
|
5
|
-
import './
|
|
1
|
+
import { w as createLucideIcon, r as reactExports, aR as reactDomExports, aS as useReducedMotion, j as jsxRuntimeExports, aT as useQueryClient, o as useToast, u as useI18n, aA as useLabCopilotStore, aU as useLabGraphSelectionStore, aV as useChatSessionStore, aW as buildAvatarColorMap, aX as isLabWorkingStatus, aY as getLabAgentDirectSession, aZ as buildAgentDescriptor, a_ as resolveAgentLogo, aF as resolveAgentDisplayName, aG as resolveAgentMentionLabel, a$ as AnimatePresence, b0 as motion, aO as Button, b1 as pickAvatarFrameColor, aH as resolveQuestLabel, d as Check, b as cn, z as useAuthStore, b2 as useCopilotDockHeaderPortal, b3 as assignLabAgent, b4 as ScrollArea, L as LoaderCircle, b5 as likeLabMoment, b6 as unlikeLabMoment, b7 as commentLabMoment, b8 as Ellipsis, b9 as Plus, l as Search, ba as Dialog, bb as DialogContent, bc as DialogHeader, bd as DialogTitle, be as DialogFooter, bf as getLabGroupSession, bg as getLabFriendsSession } from './index-DZTZ8mWP.js';
|
|
2
|
+
import { P as Popover, a as PopoverTrigger, b as PopoverContent } from './popover-yFK1J4fL.js';
|
|
3
|
+
import { S as Select, a as SelectTrigger, b as SelectValue, c as SelectContent, d as SelectItem } from './select-CAbJDfYv.js';
|
|
4
|
+
import { A as AiManusChatView, D as DEFAULT_AGENT_ID, C as ChatBox, a as applyChatEvent, u as useSSESession, b as ChatMessage, r as renderMarkdown } from './AiManusChatView-D0mTXG4-.js';
|
|
5
|
+
import './index-PJbSbPTy.js';
|
|
6
|
+
import './file-content-BjxNaIfy.js';
|
|
6
7
|
import './file-jump-queue-r5XKgJEV.js';
|
|
7
|
-
import './pdf-effect-queue-
|
|
8
|
-
import './file-diff-panel-
|
|
9
|
-
import './
|
|
10
|
-
import './NotebookEditor-
|
|
11
|
-
import './
|
|
12
|
-
import './trash-BsVEH_dV.js';
|
|
8
|
+
import './pdf-effect-queue-DfBors6y.js';
|
|
9
|
+
import './file-diff-panel-D_lLVQk0.js';
|
|
10
|
+
import './bot-BEA2vWuK.js';
|
|
11
|
+
import './NotebookEditor-DIX7Mlzu.js';
|
|
12
|
+
import './trash--F119N47.js';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* @license lucide-react v0.511.0 - ISC
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { w as createLucideIcon, aN as useQuery, r as reactExports, j as jsxRuntimeExports, bh as Skeleton, bi as Badge, aQ as client, bj as ReactFlowProvider, u as useI18n, aF as resolveAgentDisplayName, a_ as resolveAgentLogo, b1 as pickAvatarFrameColor, aX as isLabWorkingStatus, bk as normalizeLabStatus, bl as useNodesState, bm as useReactFlow, bn as index, bo as Background, b as cn, bp as Handle, bq as Position, br as CircleHelp, bs as OrbitLogoStatus, bt as Clock, bu as Moon, aI as formatRelativeTime, m as ChevronDown, aT as useQueryClient, aA as useLabCopilotStore, aU as useLabGraphSelectionStore, bv as resolveLabCanvasSelectionSemantic, aO as Button, g as RefreshCw, bw as LabQuestGraphCanvas, bx as ArrowLeft, b4 as ScrollArea, N as Sparkles, by as GitBranch, bz as LAB_CANVAS_SEMANTIC_TONE_META, bA as getLabQuest, bB as getLabQuestSummary, bC as getLabQuestEventPayload, bD as getLabQuestNodeTrace, bE as isQuestRuntimeSurface, bF as getApiBaseUrl, bG as redirectToLanding, bH as useCliStore, bI as useActiveTab, v as BUILTIN_PLUGINS, bJ as listLabTemplates, aB as listLabAgents, aC as listLabQuests, bK as getLabOverview, bL as getProject, bM as useMaxEntitlement } from './index-DZTZ8mWP.js';
|
|
2
|
+
import { B as Bot } from './bot-BEA2vWuK.js';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* @license lucide-react v0.511.0 - ISC
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/monaco-
|
|
2
|
-
import {
|
|
3
|
-
import { P as ProjectSyncClient } from './project-sync-
|
|
4
|
-
import { c as configureMonacoLoader } from './monaco-
|
|
5
|
-
import { P as PAGE_DIMENSIONS, a as PdfLoader, b as PDF_CMAP_URL, c as PDF_WORKER_SRC, Z as ZOOM_LEVELS, d as PdfHighlighter } from './PdfLoader-
|
|
6
|
-
import { Z as ZoomOut, a as ZoomIn } from './zoom-out-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/monaco-K8izTGgo.js","assets/index-DZTZ8mWP.js","assets/index-Dqj-Mjb4.css","assets/yjs-DncrqiZ8.js","assets/function-B5QZkkHC.js","assets/awareness-C0NPR2Dj.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import { w as createLucideIcon, z as useAuthStore, u as useI18n, a as useWorkspaceSurfaceStore, r as reactExports, f as useFileTreeStore, W as toFilesResourcePath, Y as checkProjectAccess, Z as listFiles, V as getFileContent, _ as __vitePreload, U as updateFileContent, $ as compileLatex, a0 as listLatexBuilds, j as jsxRuntimeExports, b as cn, k as FileText, a1 as Link2, L as LoaderCircle, S as Save, a2 as Play, T as TriangleAlert, a3 as Download, a4 as getLatexBuild, a5 as getLatexBuildPdfBlob, a6 as getLatexBuildLogText, h as dynamic } from './index-DZTZ8mWP.js';
|
|
3
|
+
import { P as ProjectSyncClient } from './project-sync-PENr2zcz.js';
|
|
4
|
+
import { c as configureMonacoLoader } from './monaco-K8izTGgo.js';
|
|
5
|
+
import { P as PAGE_DIMENSIONS, a as PdfLoader, b as PDF_CMAP_URL, c as PDF_WORKER_SRC, Z as ZOOM_LEVELS, d as PdfHighlighter } from './PdfLoader-DzRaTAlq.js';
|
|
6
|
+
import { Z as ZoomOut, a as ZoomIn } from './zoom-out-BgDLAv3z.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* @license lucide-react v0.511.0 - ISC
|
|
@@ -19,7 +19,7 @@ const __iconNode = [
|
|
|
19
19
|
];
|
|
20
20
|
const AtSign = createLucideIcon("at-sign", __iconNode);
|
|
21
21
|
|
|
22
|
-
const MonacoEditor = dynamic(() => __vitePreload(() => import('./monaco-
|
|
22
|
+
const MonacoEditor = dynamic(() => __vitePreload(() => import('./monaco-K8izTGgo.js').then(n => n.i),true?__vite__mapDeps([0,1,2]):void 0), { });
|
|
23
23
|
configureMonacoLoader();
|
|
24
24
|
function useIsDarkMode() {
|
|
25
25
|
const [isDark, setIsDark] = reactExports.useState(() => {
|
package/src/ui/dist/assets/{MarkdownViewerPlugin-HAuvurcT.js → MarkdownViewerPlugin-836PVQWV.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
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, R as React,
|
|
3
|
-
import { C as Code } from './code-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DZTZ8mWP.js","assets/index-Dqj-Mjb4.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import { u as useI18n, a as useWorkspaceSurfaceStore, r as reactExports, R as React, a7 as getQuestMarkdownContextFromFileId, c as copyToClipboard, j as jsxRuntimeExports, L as LoaderCircle, C as CircleAlert, a8 as MARKDOWN_VIEWER_STYLES, k as FileText, E as Eye, b as cn, d as Check, e as Copy, M as MarkdownRenderer, _ as __vitePreload } from './index-DZTZ8mWP.js';
|
|
3
|
+
import { C as Code } from './code-XfbSR8K2.js';
|
|
4
4
|
|
|
5
5
|
function isMdxDocument(fileName) {
|
|
6
6
|
if (!fileName) return false;
|
|
@@ -217,7 +217,7 @@ function MarkdownViewerPlugin({
|
|
|
217
217
|
setLoading(false);
|
|
218
218
|
return;
|
|
219
219
|
}
|
|
220
|
-
const { getFileContent } = await __vitePreload(async () => { const { getFileContent } = await import('./index-
|
|
220
|
+
const { getFileContent } = await __vitePreload(async () => { const { getFileContent } = await import('./index-DZTZ8mWP.js').then(n => n.el);return { getFileContent }},true?__vite__mapDeps([0,1]):void 0);
|
|
221
221
|
const text = await getFileContent(context.resourceId);
|
|
222
222
|
setContent(text);
|
|
223
223
|
} catch (err) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { S as Sigma } from './sigma-
|
|
3
|
-
import { I as Image } from './image-
|
|
1
|
+
import { w as createLucideIcon, r as reactExports, aa as useNavigate, n as useTabsStore, ab as useOpenFile, f as useFileTreeStore, v as BUILTIN_PLUGINS, j as jsxRuntimeExports, l as Search, N as Sparkles, ac as Terminal, ad as Settings, ae as Puzzle, af as BookOpen, k as FileText, ag as FileCode2, b as cn } from './index-DZTZ8mWP.js';
|
|
2
|
+
import { S as Sigma } from './sigma-DEuYJqTl.js';
|
|
3
|
+
import { I as Image } from './image-BhWT33W1.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* @license lucide-react v0.511.0 - ISC
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { P as PluginKey, a as Plugin, S as Slice, F as Fragment, T as TextSelection, A as AllSelection, N as NodeSelection, E as Extension, m as me, l as le, u as useCurrentEditor, w, b as P, f as findParentNodeClosestToPos, g as getEditorMarkdown, s as setEditorMarkdown, q, c as uploadNotebookAsset, r as resolveNotebookAssetUrl, d as defaultExtensions, J, U, I, e as T, B, O, h as S, K as K$1, G, i as ce, j as isSupportedNotebookAsset } from './NotebookEditor-
|
|
1
|
+
import { w as createLucideIcon, j as jsxRuntimeExports, aO as Button, m as ChevronDown, d as Check, b as cn, r as reactExports, bx as ArrowLeft, c6 as ArrowRight, c7 as Separator, c8 as ArrowUp, c9 as Trash2, u as useI18n, o as useToast, V as getFileContent, L as LoaderCircle, e as Copy, C as CircleAlert, f as useFileTreeStore, a7 as getQuestMarkdownContextFromFileId, ca as rewriteQuestMarkdownForDisplay, cb as rewriteQuestMarkdownForSave, cc as uploadQuestDocumentAsset, U as updateFileContent } from './index-DZTZ8mWP.js';
|
|
2
|
+
import { P as PluginKey, a as Plugin, S as Slice, F as Fragment, T as TextSelection, A as AllSelection, N as NodeSelection, E as Extension, m as me, l as le, u as useCurrentEditor, w, b as P, f as findParentNodeClosestToPos, g as getEditorMarkdown, s as setEditorMarkdown, q, c as uploadNotebookAsset, r as resolveNotebookAssetUrl, d as defaultExtensions, J, U, I, e as T, B, O, h as S, K as K$1, G, i as ce, j as isSupportedNotebookAsset } from './NotebookEditor-DIX7Mlzu.js';
|
|
3
3
|
import { a4 as BIT8, ai as BIT30, ab as min, $ as max, y as unexpectedCase, n as methodUnimplemented, aj as keys, u as every, H as setIfUndefined, D as create } from './function-B5QZkkHC.js';
|
|
4
4
|
import { t as toBase64, e as encodeAny, i as isBrowser, d as doc, s as snapshot, D as Doc, a as applyUpdateV2, f as findIndexSS, b as iterateDeletedStructs, c as typeListToArraySnapshot, S as Snapshot, U as UndoManager, g as createSnapshot, h as isDeleted, Y as YXmlElement, j as YXmlText, k as YText, o as oneOf, C as ContentString, l as ContentFormat, m as createDeleteSet, I as Item, n as createRelativePositionFromTypeIndex, R as RelativePosition, p as findRootTypeKey, q as createID, r as createAbsolutePositionFromRelativePosition, u as isParentOf, v as ContentType, w as encodeStateVector, x as applyUpdate, y as mergeUpdates } from './yjs-DncrqiZ8.js';
|
|
5
|
-
import { P as ProjectSyncClient } from './project-sync-
|
|
6
|
-
import { S as SquareCheckBig } from './
|
|
7
|
-
import { C as Code } from './code-
|
|
8
|
-
import { I as Image } from './image-
|
|
9
|
-
import { P as Popover, a as PopoverTrigger, b as PopoverContent } from './popover-
|
|
10
|
-
import { T as Trash, A as ArrowDown } from './trash
|
|
11
|
-
import { S as Sigma } from './sigma-
|
|
12
|
-
import { u as useFileDiffOverlay } from './useFileDiffOverlay-
|
|
13
|
-
import { F as FileDiffPanel } from './file-diff-panel-
|
|
5
|
+
import { P as ProjectSyncClient } from './project-sync-PENr2zcz.js';
|
|
6
|
+
import { S as SquareCheckBig } from './square-check-big-omoSUmcd.js';
|
|
7
|
+
import { C as Code } from './code-XfbSR8K2.js';
|
|
8
|
+
import { I as Image } from './image-BhWT33W1.js';
|
|
9
|
+
import { P as Popover, a as PopoverTrigger, b as PopoverContent } from './popover-yFK1J4fL.js';
|
|
10
|
+
import { T as Trash, A as ArrowDown } from './trash--F119N47.js';
|
|
11
|
+
import { S as Sigma } from './sigma-DEuYJqTl.js';
|
|
12
|
+
import { u as useFileDiffOverlay } from './useFileDiffOverlay-BH6KcMzq.js';
|
|
13
|
+
import { F as FileDiffPanel } from './file-diff-panel-D_lLVQk0.js';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* @license lucide-react v0.511.0 - ISC
|
|
@@ -2889,7 +2889,7 @@ const LinkSelector = ({ open, onOpenChange }) => {
|
|
|
2889
2889
|
},
|
|
2890
2890
|
children: /* @__PURE__ */ jsxRuntimeExports.jsx(Trash, { className: "h-4 w-4" })
|
|
2891
2891
|
}
|
|
2892
|
-
) : /* @__PURE__ */ jsxRuntimeExports.jsx(Button, { size: "icon", className: "h-8", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "h-4 w-4" }) })
|
|
2892
|
+
) : /* @__PURE__ */ jsxRuntimeExports.jsx(Button, { size: "icon", type: "submit", className: "h-8", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "h-4 w-4" }) })
|
|
2893
2893
|
]
|
|
2894
2894
|
}
|
|
2895
2895
|
) })
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as React, r as reactExports,
|
|
1
|
+
import { R as React, r as reactExports, aR as reactDomExports, e8 as ReactDOM, Q as create, j as jsxRuntimeExports, e9 as createSlot, am as useId, ea as Root, eb as Portal, ec as Overlay, ed as Content, aj as composeRefs, d7 as getDefaultExportFromCjs$2, ee as clsx, ef as shimExports$1, eg as katex, eh as Slot, D as resolveApiBaseUrl, ei as uploadFileAuto, ej as nanoid, ek as cx } from './index-DZTZ8mWP.js';
|
|
2
2
|
|
|
3
3
|
// ::- Persistent data structure representing an ordered mapping from
|
|
4
4
|
// strings to values, with some convenient update methods.
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import { j as jsxRuntimeExports, r as reactExports, R as React$1, _ as __vitePreload,
|
|
1
|
+
import { j as jsxRuntimeExports, r as reactExports, R as React$1, _ as __vitePreload, d5 as createRoot, d6 as getAugmentedNamespace, aR as reactDomExports, d7 as getDefaultExportFromCjs } from './index-DZTZ8mWP.js';
|
|
2
2
|
|
|
3
3
|
const PAGE_DIMENSIONS = {
|
|
4
4
|
/** A4 width in points */
|
|
5
5
|
A4_WIDTH: 595};
|
|
6
6
|
const ZOOM_LEVELS = [0.5, 0.75, 1, 1.25, 1.5, 2];
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
|
|
8
|
+
const pdfWorkerUrl = "/ui/assets/pdf.worker.min-yatZIOMy.mjs";
|
|
9
|
+
|
|
10
|
+
const PDF_WORKER_SRC = pdfWorkerUrl;
|
|
11
|
+
const PDF_CMAP_URL = void 0;
|
|
12
|
+
const PDF_CMAP_PACKED = false;
|
|
10
13
|
|
|
11
14
|
function debounce(fn, waitMs) {
|
|
12
15
|
let timeoutId;
|
|
@@ -25394,7 +25397,9 @@ class PdfLoader extends reactExports.Component {
|
|
|
25394
25397
|
error: null
|
|
25395
25398
|
};
|
|
25396
25399
|
static defaultProps = {
|
|
25397
|
-
workerSrc:
|
|
25400
|
+
workerSrc: PDF_WORKER_SRC,
|
|
25401
|
+
cMapUrl: PDF_CMAP_URL,
|
|
25402
|
+
cMapPacked: PDF_CMAP_PACKED
|
|
25398
25403
|
};
|
|
25399
25404
|
documentRef = React$1.createRef();
|
|
25400
25405
|
componentDidMount() {
|
|
@@ -25433,8 +25438,10 @@ class PdfLoader extends reactExports.Component {
|
|
|
25433
25438
|
const document2 = {
|
|
25434
25439
|
...this.props,
|
|
25435
25440
|
ownerDocument,
|
|
25436
|
-
cMapUrl
|
|
25437
|
-
|
|
25441
|
+
...cMapUrl ? {
|
|
25442
|
+
cMapUrl,
|
|
25443
|
+
cMapPacked
|
|
25444
|
+
} : {}
|
|
25438
25445
|
};
|
|
25439
25446
|
return __webpack_exports__getDocument(document2).promise.then((pdfDocument) => {
|
|
25440
25447
|
this.setState({ pdfDocument });
|
|
@@ -25458,4 +25465,4 @@ class PdfLoader extends reactExports.Component {
|
|
|
25458
25465
|
}
|
|
25459
25466
|
}
|
|
25460
25467
|
|
|
25461
|
-
export { PAGE_DIMENSIONS as P, Rnd as R, ZOOM_LEVELS as Z, PdfLoader as a, PDF_CMAP_URL as b, PDF_WORKER_SRC as c, PdfHighlighter as d, getPageFromElement as g };
|
|
25468
|
+
export { PAGE_DIMENSIONS as P, Rnd as R, ZOOM_LEVELS as Z, PdfLoader as a, PDF_CMAP_URL as b, PDF_WORKER_SRC as c, PdfHighlighter as d, PDF_CMAP_PACKED as e, getPageFromElement as g };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { d as defaultExtensions, s as setEditorMarkdown, U, I, r as resolveNotebookAssetUrl } from './NotebookEditor-
|
|
3
|
-
import { g as generateBibTeX, I as InfoTriangleIcon, A as ArxivInfoModal } from './bibtex-B-Hqu0Sg.js';
|
|
1
|
+
import { n as useTabsStore, a as useWorkspaceSurfaceStore, o as useToast, p as useArxivStore, r as reactExports, q as buildArxivSummaryMarkdown, s as generateBibTeX, c as copyToClipboard, t as apiClient, v as BUILTIN_PLUGINS, j as jsxRuntimeExports, k as FileText, I as InfoTriangleIcon, b as cn, M as MarkdownRenderer, A as ArxivInfoModal, g as RefreshCw } from './index-DZTZ8mWP.js';
|
|
2
|
+
import { d as defaultExtensions, s as setEditorMarkdown, U, I, r as resolveNotebookAssetUrl } from './NotebookEditor-DIX7Mlzu.js';
|
|
4
3
|
|
|
5
4
|
function rewriteMarkdownImages(markdown, fileId) {
|
|
6
5
|
if (!markdown) return markdown;
|
|
@@ -58,6 +57,8 @@ function PdfMarkdownPlugin({
|
|
|
58
57
|
return arxivItems.find((item) => item.fileId === fileId) || null;
|
|
59
58
|
}, [arxivFromContext, arxivItems, fileId]);
|
|
60
59
|
const arxivError = arxivPaper ? arxivErrors[arxivPaper.arxivId] : void 0;
|
|
60
|
+
const isArxivPdf = Boolean(arxivPaper);
|
|
61
|
+
const arxivSummaryMarkdown = reactExports.useMemo(() => buildArxivSummaryMarkdown(arxivPaper), [arxivPaper]);
|
|
61
62
|
const handleCopyBibtex = reactExports.useCallback(async () => {
|
|
62
63
|
if (!arxivPaper) return;
|
|
63
64
|
const bibtex = generateBibTeX(arxivPaper);
|
|
@@ -74,8 +75,8 @@ function PdfMarkdownPlugin({
|
|
|
74
75
|
window.open(`https://arxiv.org/abs/${arxivPaper.arxivId}`, "_blank", "noopener,noreferrer");
|
|
75
76
|
}, [arxivPaper]);
|
|
76
77
|
reactExports.useEffect(() => {
|
|
77
|
-
setTitle(fileName);
|
|
78
|
-
}, [fileName, setTitle]);
|
|
78
|
+
setTitle(isArxivPdf ? `${fileName} Summary` : fileName);
|
|
79
|
+
}, [fileName, isArxivPdf, setTitle]);
|
|
79
80
|
reactExports.useEffect(() => {
|
|
80
81
|
parseRequestedRef.current = false;
|
|
81
82
|
setRenderMode("novel");
|
|
@@ -134,9 +135,15 @@ function PdfMarkdownPlugin({
|
|
|
134
135
|
setIsRetrying(false);
|
|
135
136
|
}, [fileId, isRetrying, loadMarkdown, triggerParse]);
|
|
136
137
|
reactExports.useEffect(() => {
|
|
138
|
+
if (isArxivPdf) {
|
|
139
|
+
setState("idle");
|
|
140
|
+
setMarkdown("");
|
|
141
|
+
setError(null);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
137
144
|
if (!fileId) return;
|
|
138
145
|
void loadMarkdown();
|
|
139
|
-
}, [fileId, loadMarkdown]);
|
|
146
|
+
}, [fileId, isArxivPdf, loadMarkdown]);
|
|
140
147
|
reactExports.useEffect(() => {
|
|
141
148
|
updateWorkspaceTabState(tabId, {
|
|
142
149
|
contentKind: "pdf",
|
|
@@ -189,6 +196,66 @@ function PdfMarkdownPlugin({
|
|
|
189
196
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-muted-foreground", children: "Select a PDF in the file tree or import one from arXiv, then open the Markdown view to see MinerU output." })
|
|
190
197
|
] }) });
|
|
191
198
|
}
|
|
199
|
+
if (isArxivPdf) {
|
|
200
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col h-full bg-background", children: [
|
|
201
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between px-4 py-2 border-b border-border bg-muted/30", children: [
|
|
202
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
203
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FileText, { className: "w-4 h-4 text-muted-foreground" }),
|
|
204
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm text-foreground", children: fileName }),
|
|
205
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-xs px-2 py-0.5 rounded bg-muted text-muted-foreground uppercase", children: "Summary" }),
|
|
206
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
207
|
+
"button",
|
|
208
|
+
{
|
|
209
|
+
type: "button",
|
|
210
|
+
onClick: () => setInfoOpen(true),
|
|
211
|
+
className: cn(
|
|
212
|
+
"flex h-7 w-7 items-center justify-center rounded-full",
|
|
213
|
+
"text-muted-foreground transition-colors",
|
|
214
|
+
"hover:bg-muted hover:text-foreground"
|
|
215
|
+
),
|
|
216
|
+
title: "Paper info",
|
|
217
|
+
"aria-label": "Paper info",
|
|
218
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(InfoTriangleIcon, { className: "h-4 w-4" })
|
|
219
|
+
}
|
|
220
|
+
)
|
|
221
|
+
] }),
|
|
222
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
223
|
+
"button",
|
|
224
|
+
{
|
|
225
|
+
type: "button",
|
|
226
|
+
onClick: handleBackToPdf,
|
|
227
|
+
className: cn(
|
|
228
|
+
"flex items-center gap-2 px-3 py-1.5 rounded-full border transition-colors text-sm",
|
|
229
|
+
"bg-background hover:bg-muted/60 border-border"
|
|
230
|
+
),
|
|
231
|
+
title: "Back to PDF view",
|
|
232
|
+
children: [
|
|
233
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(FileText, { className: "w-4 h-4" }),
|
|
234
|
+
"PDF"
|
|
235
|
+
]
|
|
236
|
+
}
|
|
237
|
+
) })
|
|
238
|
+
] }),
|
|
239
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1 min-h-0 overflow-hidden flex justify-center px-4 py-4 bg-muted/10", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative h-full w-[min(62.5vw,100%)] max-w-[70rem]", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "notebook-editor-container relative h-full overflow-hidden rounded-2xl border border-border bg-background shadow-soft-card", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "notebook-doc-editor relative h-full w-full overflow-y-auto p-8", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
240
|
+
MarkdownRenderer,
|
|
241
|
+
{
|
|
242
|
+
content: arxivSummaryMarkdown,
|
|
243
|
+
className: "prose prose-lg dark:prose-invert max-w-full"
|
|
244
|
+
}
|
|
245
|
+
) }) }) }) }),
|
|
246
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
247
|
+
ArxivInfoModal,
|
|
248
|
+
{
|
|
249
|
+
open: infoOpen,
|
|
250
|
+
onClose: () => setInfoOpen(false),
|
|
251
|
+
paper: arxivPaper,
|
|
252
|
+
errorCode: arxivError,
|
|
253
|
+
onCopyBibtex: arxivPaper ? handleCopyBibtex : void 0,
|
|
254
|
+
onOpenArxiv: arxivPaper ? handleOpenArxiv : void 0
|
|
255
|
+
}
|
|
256
|
+
)
|
|
257
|
+
] });
|
|
258
|
+
}
|
|
192
259
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col h-full bg-background", children: [
|
|
193
260
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between px-4 py-2 border-b border-border bg-muted/30", children: [
|
|
194
261
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-3", children: [
|