@researai/deepscientist 1.5.7 → 1.5.9

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 (156) hide show
  1. package/LICENSE +186 -21
  2. package/README.md +8 -4
  3. package/bin/ds.js +224 -9
  4. package/docs/en/00_QUICK_START.md +2 -2
  5. package/docs/en/07_MEMORY_AND_MCP.md +40 -3
  6. package/docs/en/99_ACKNOWLEDGEMENTS.md +1 -0
  7. package/docs/zh/00_QUICK_START.md +2 -2
  8. package/docs/zh/07_MEMORY_AND_MCP.md +40 -3
  9. package/docs/zh/99_ACKNOWLEDGEMENTS.md +1 -0
  10. package/install.sh +34 -0
  11. package/package.json +2 -2
  12. package/pyproject.toml +2 -2
  13. package/src/deepscientist/__init__.py +1 -1
  14. package/src/deepscientist/acp/envelope.py +1 -0
  15. package/src/deepscientist/artifact/metrics.py +814 -83
  16. package/src/deepscientist/artifact/schemas.py +1 -0
  17. package/src/deepscientist/artifact/service.py +2001 -229
  18. package/src/deepscientist/bash_exec/monitor.py +1 -1
  19. package/src/deepscientist/bash_exec/service.py +17 -9
  20. package/src/deepscientist/channels/qq.py +17 -0
  21. package/src/deepscientist/channels/relay.py +16 -0
  22. package/src/deepscientist/config/models.py +6 -0
  23. package/src/deepscientist/config/service.py +70 -2
  24. package/src/deepscientist/daemon/api/handlers.py +414 -14
  25. package/src/deepscientist/daemon/api/router.py +4 -0
  26. package/src/deepscientist/daemon/app.py +292 -21
  27. package/src/deepscientist/gitops/diff.py +6 -10
  28. package/src/deepscientist/mcp/server.py +191 -40
  29. package/src/deepscientist/prompts/builder.py +65 -19
  30. package/src/deepscientist/quest/node_traces.py +129 -2
  31. package/src/deepscientist/quest/service.py +140 -34
  32. package/src/deepscientist/quest/stage_views.py +175 -33
  33. package/src/deepscientist/registries/baseline.py +56 -4
  34. package/src/deepscientist/runners/codex.py +1 -1
  35. package/src/prompts/connectors/qq.md +1 -1
  36. package/src/prompts/contracts/shared_interaction.md +14 -0
  37. package/src/prompts/system.md +113 -32
  38. package/src/skills/analysis-campaign/SKILL.md +10 -14
  39. package/src/skills/baseline/SKILL.md +51 -38
  40. package/src/skills/baseline/references/baseline-plan-template.md +2 -0
  41. package/src/skills/decision/SKILL.md +12 -8
  42. package/src/skills/experiment/SKILL.md +28 -16
  43. package/src/skills/experiment/references/main-experiment-plan-template.md +2 -0
  44. package/src/skills/figure-polish/SKILL.md +1 -0
  45. package/src/skills/finalize/SKILL.md +3 -8
  46. package/src/skills/idea/SKILL.md +18 -8
  47. package/src/skills/idea/references/literature-survey-template.md +24 -0
  48. package/src/skills/idea/references/related-work-playbook.md +4 -0
  49. package/src/skills/idea/references/selection-gate.md +9 -0
  50. package/src/skills/intake-audit/SKILL.md +2 -8
  51. package/src/skills/rebuttal/SKILL.md +2 -8
  52. package/src/skills/review/SKILL.md +2 -8
  53. package/src/skills/scout/SKILL.md +2 -8
  54. package/src/skills/write/SKILL.md +53 -17
  55. package/src/skills/write/templates/DEEPSCIENTIST_NOTES.md +21 -0
  56. package/src/skills/write/templates/README.md +408 -0
  57. package/src/skills/write/templates/UPSTREAM_LICENSE.txt +21 -0
  58. package/src/skills/write/templates/aaai2026/README.md +534 -0
  59. package/src/skills/write/templates/aaai2026/aaai2026-unified-supp.tex +144 -0
  60. package/src/skills/write/templates/aaai2026/aaai2026-unified-template.tex +952 -0
  61. package/src/skills/write/templates/aaai2026/aaai2026.bib +111 -0
  62. package/src/skills/write/templates/aaai2026/aaai2026.bst +1493 -0
  63. package/src/skills/write/templates/aaai2026/aaai2026.sty +315 -0
  64. package/src/skills/write/templates/acl/README.md +50 -0
  65. package/src/skills/write/templates/acl/acl.sty +312 -0
  66. package/src/skills/write/templates/acl/acl_latex.tex +377 -0
  67. package/src/skills/write/templates/acl/acl_lualatex.tex +101 -0
  68. package/src/skills/write/templates/acl/acl_natbib.bst +1940 -0
  69. package/src/skills/write/templates/acl/anthology.bib.txt +26 -0
  70. package/src/skills/write/templates/acl/custom.bib +70 -0
  71. package/src/skills/write/templates/acl/formatting.md +326 -0
  72. package/src/skills/write/templates/asplos2027/main.tex +459 -0
  73. package/src/skills/write/templates/asplos2027/references.bib +135 -0
  74. package/src/skills/write/templates/colm2025/README.md +3 -0
  75. package/src/skills/write/templates/colm2025/colm2025_conference.bib +11 -0
  76. package/src/skills/write/templates/colm2025/colm2025_conference.bst +1440 -0
  77. package/src/skills/write/templates/colm2025/colm2025_conference.sty +218 -0
  78. package/src/skills/write/templates/colm2025/colm2025_conference.tex +305 -0
  79. package/src/skills/write/templates/colm2025/fancyhdr.sty +485 -0
  80. package/src/skills/write/templates/colm2025/math_commands.tex +508 -0
  81. package/src/skills/write/templates/colm2025/natbib.sty +1246 -0
  82. package/src/skills/write/templates/iclr2026/fancyhdr.sty +485 -0
  83. package/src/skills/write/templates/iclr2026/iclr2026_conference.bib +24 -0
  84. package/src/skills/write/templates/iclr2026/iclr2026_conference.bst +1440 -0
  85. package/src/skills/write/templates/iclr2026/iclr2026_conference.sty +246 -0
  86. package/src/skills/write/templates/iclr2026/iclr2026_conference.tex +414 -0
  87. package/src/skills/write/templates/iclr2026/math_commands.tex +508 -0
  88. package/src/skills/write/templates/iclr2026/natbib.sty +1246 -0
  89. package/src/skills/write/templates/icml2026/algorithm.sty +79 -0
  90. package/src/skills/write/templates/icml2026/algorithmic.sty +201 -0
  91. package/src/skills/write/templates/icml2026/example_paper.bib +75 -0
  92. package/src/skills/write/templates/icml2026/example_paper.tex +662 -0
  93. package/src/skills/write/templates/icml2026/fancyhdr.sty +864 -0
  94. package/src/skills/write/templates/icml2026/icml2026.bst +1443 -0
  95. package/src/skills/write/templates/icml2026/icml2026.sty +767 -0
  96. package/src/skills/write/templates/neurips2025/Makefile +36 -0
  97. package/src/skills/write/templates/neurips2025/extra_pkgs.tex +53 -0
  98. package/src/skills/write/templates/neurips2025/main.tex +38 -0
  99. package/src/skills/write/templates/neurips2025/neurips.sty +382 -0
  100. package/src/skills/write/templates/nsdi2027/main.tex +426 -0
  101. package/src/skills/write/templates/nsdi2027/references.bib +151 -0
  102. package/src/skills/write/templates/nsdi2027/usenix-2020-09.sty +83 -0
  103. package/src/skills/write/templates/osdi2026/main.tex +429 -0
  104. package/src/skills/write/templates/osdi2026/references.bib +150 -0
  105. package/src/skills/write/templates/osdi2026/usenix-2020-09.sty +83 -0
  106. package/src/skills/write/templates/sosp2026/main.tex +532 -0
  107. package/src/skills/write/templates/sosp2026/references.bib +148 -0
  108. package/src/tui/package.json +1 -1
  109. package/src/ui/dist/assets/{AiManusChatView-BS3V4ZOk.js → AiManusChatView-BKZ103sn.js} +110 -14
  110. package/src/ui/dist/assets/{AnalysisPlugin-DLPXQsmr.js → AnalysisPlugin-mTTzGAlK.js} +1 -1
  111. package/src/ui/dist/assets/{AutoFigurePlugin-C-Fr9knQ.js → AutoFigurePlugin-C_wWw4AP.js} +5 -5
  112. package/src/ui/dist/assets/{CliPlugin-Dd8AHzFg.js → CliPlugin-BH58n3GY.js} +9 -9
  113. package/src/ui/dist/assets/{CodeEditorPlugin-Dg-RepTl.js → CodeEditorPlugin-BKGRUH7e.js} +8 -8
  114. package/src/ui/dist/assets/{CodeViewerPlugin-D2J_3nyt.js → CodeViewerPlugin-BMADwFWJ.js} +5 -5
  115. package/src/ui/dist/assets/{DocViewerPlugin-ChRLLKNb.js → DocViewerPlugin-ZOnTIHLN.js} +3 -3
  116. package/src/ui/dist/assets/{GitDiffViewerPlugin-DgHfcved.js → GitDiffViewerPlugin-CQ7h1Djm.js} +830 -86
  117. package/src/ui/dist/assets/{ImageViewerPlugin-C89GZMBy.js → ImageViewerPlugin-GVS5MsnC.js} +5 -5
  118. package/src/ui/dist/assets/{LabCopilotPanel-BUfIwUcb.js → LabCopilotPanel-BZNv1JML.js} +10 -10
  119. package/src/ui/dist/assets/{LabPlugin-zvUmQUMq.js → LabPlugin-TWcJsdQA.js} +1 -1
  120. package/src/ui/dist/assets/{LatexPlugin-C1SSNuWp.js → LatexPlugin-DIjHiR2x.js} +7 -7
  121. package/src/ui/dist/assets/{MarkdownViewerPlugin-D2Mf5tU5.js → MarkdownViewerPlugin-D3ooGAH0.js} +4 -4
  122. package/src/ui/dist/assets/{MarketplacePlugin-CF4LgiS2.js → MarketplacePlugin-DfVfE9hN.js} +3 -3
  123. package/src/ui/dist/assets/{NotebookEditor-BM7Bgwlv.js → NotebookEditor-DDl0_Mc0.js} +1 -1
  124. package/src/ui/dist/assets/{index-Be0NAmh8.js → NotebookEditor-s8JhzuX1.js} +12 -155
  125. package/src/ui/dist/assets/{PdfLoader-Bc5qfD-Z.js → PdfLoader-C2Sf6SJM.js} +1 -1
  126. package/src/ui/dist/assets/{PdfMarkdownPlugin-sh1-IRcp.js → PdfMarkdownPlugin-CXFLoIsa.js} +3 -3
  127. package/src/ui/dist/assets/{PdfViewerPlugin-C_a7CpWG.js → PdfViewerPlugin-BYTmz2fK.js} +10 -10
  128. package/src/ui/dist/assets/{SearchPlugin-L4z3HcLf.js → SearchPlugin-CjWBI1O9.js} +1 -1
  129. package/src/ui/dist/assets/{Stepper-Dk4aQ3fN.js → Stepper-B0Dd8CxK.js} +1 -1
  130. package/src/ui/dist/assets/{TextViewerPlugin-BsNtlKVo.js → TextViewerPlugin-DdOBU3-S.js} +4 -4
  131. package/src/ui/dist/assets/{VNCViewer-BpeDcZ5_.js → VNCViewer-B8HGgLwQ.js} +9 -9
  132. package/src/ui/dist/assets/{bibtex-C4QI-bbj.js → bibtex-CKaefIN2.js} +1 -1
  133. package/src/ui/dist/assets/{code-DuMINRsg.js → code-BWAY76JP.js} +1 -1
  134. package/src/ui/dist/assets/{file-content-C3N-432K.js → file-content-C1NwU5oQ.js} +1 -1
  135. package/src/ui/dist/assets/{file-diff-panel-CffQ4ZMg.js → file-diff-panel-CywslwB9.js} +1 -1
  136. package/src/ui/dist/assets/{file-socket-CRH59PCO.js → file-socket-B4kzuOBQ.js} +1 -1
  137. package/src/ui/dist/assets/{file-utils-vYGtW2mI.js → file-utils-H2fjA46S.js} +1 -1
  138. package/src/ui/dist/assets/{image-DBVGaooo.js → image-D-NZM-6P.js} +1 -1
  139. package/src/ui/dist/assets/{index-B1P6hQRJ.js → index-7Chr1g9c.js} +3734 -1862
  140. package/src/ui/dist/assets/{index-DjSFDmgB.js → index-BdM1Gqfr.js} +2 -2
  141. package/src/ui/dist/assets/{index-BpjYH9Vg.js → index-CDxNdQdz.js} +1 -1
  142. package/src/ui/dist/assets/{index-Do9N28uB.css → index-DGIYDuTv.css} +163 -34
  143. package/src/ui/dist/assets/index-DHZJ_0TI.js +159 -0
  144. package/src/ui/dist/assets/{message-square-BsPDBhiY.js → message-square-BzjLiXir.js} +1 -1
  145. package/src/ui/dist/assets/{monaco-BTkdPojV.js → monaco-Cb2uKKe6.js} +1 -1
  146. package/src/ui/dist/assets/{popover-cWjCk-vc.js → popover-Bg72DGgT.js} +1 -1
  147. package/src/ui/dist/assets/{project-sync-CXn530xb.js → project-sync-Ce_0BglY.js} +1 -1
  148. package/src/ui/dist/assets/{sigma-04Jr12jg.js → sigma-DPaACDrh.js} +1 -1
  149. package/src/ui/dist/assets/{tooltip-BdVDl0G5.js → tooltip-C_mA6R0w.js} +1 -1
  150. package/src/ui/dist/assets/{trash-CB_GlQyC.js → trash-BvTgE5__.js} +1 -1
  151. package/src/ui/dist/assets/{useCliAccess-BL932NwS.js → useCliAccess-CgPeMOwP.js} +1 -1
  152. package/src/ui/dist/assets/{useFileDiffOverlay-B2WK7Tvq.js → useFileDiffOverlay-xPhz7P5B.js} +1 -1
  153. package/src/ui/dist/assets/{wrap-text-YC68g12z.js → wrap-text-C3Un3YQr.js} +1 -1
  154. package/src/ui/dist/assets/{zoom-out-C0RJvFiJ.js → zoom-out-BgxLa0Ri.js} +1 -1
  155. package/src/ui/dist/index.html +5 -2
  156. /package/src/ui/dist/assets/{index-CccQYZjX.css → NotebookEditor-CccQYZjX.css} +0 -0
@@ -0,0 +1,159 @@
1
+ export { E as EditorLoading, N as NotebookEditor, N as NotebookEditorComponent, a as NotebookToolbar, N as default } from './NotebookEditor-s8JhzuX1.js';
2
+ import './index-7Chr1g9c.js';
3
+ import './NotebookEditor-DDl0_Mc0.js';
4
+ import './function-B5QZkkHC.js';
5
+ import './yjs-DncrqiZ8.js';
6
+ import './project-sync-Ce_0BglY.js';
7
+ import './index-CDxNdQdz.js';
8
+ import './code-BWAY76JP.js';
9
+ import './image-D-NZM-6P.js';
10
+ import './popover-Bg72DGgT.js';
11
+ import './trash-BvTgE5__.js';
12
+ import './sigma-DPaACDrh.js';
13
+ import './useFileDiffOverlay-xPhz7P5B.js';
14
+ import './file-diff-panel-CywslwB9.js';
15
+
16
+ const notebookPluginManifest = {
17
+ // ============================================================
18
+ // Basic Information
19
+ // ============================================================
20
+ id: "@ds/plugin-notebook",
21
+ name: "Notebook Editor",
22
+ description: "Novel-based rich text editor with real-time collaboration",
23
+ version: "1.0.0",
24
+ type: "builtin",
25
+ author: "DeepScientist Team",
26
+ icon: "BookOpen",
27
+ // ============================================================
28
+ // Frontend Configuration
29
+ // ============================================================
30
+ frontend: {
31
+ entry: "./NotebookEditor",
32
+ renderMode: "react",
33
+ fileAssociations: [
34
+ {
35
+ extensions: [".ds", ".notebook", ".dsnb"],
36
+ mimeTypes: ["application/x-blocksuite-notebook"],
37
+ priority: 100
38
+ // Highest priority for notebook files
39
+ },
40
+ {
41
+ extensions: [".md", ".markdown"],
42
+ mimeTypes: ["text/markdown", "text/x-markdown"],
43
+ priority: 95
44
+ // Prefer notebook editor for markdown files
45
+ }
46
+ ],
47
+ multiInstance: true
48
+ // Allow multiple notebooks open
49
+ },
50
+ // ============================================================
51
+ // Backend Configuration
52
+ // ============================================================
53
+ backend: {
54
+ entry: "app.plugins.builtin.notebook_tools",
55
+ tools: []
56
+ },
57
+ // ============================================================
58
+ // Permissions
59
+ // ============================================================
60
+ permissions: {
61
+ frontend: ["notebook:read", "notebook:write", "file:read", "file:upload"],
62
+ backend: ["database:read", "database:write", "file:read", "file:write"]
63
+ },
64
+ // ============================================================
65
+ // UI Contributions
66
+ // ============================================================
67
+ contributes: {
68
+ // Tab configuration
69
+ tabIcon: "file-text",
70
+ tabTitle: {
71
+ dynamic: "resourceName"
72
+ },
73
+ // Toolbar buttons
74
+ toolbar: [
75
+ {
76
+ id: "notebook-export",
77
+ title: "Export",
78
+ icon: "Download",
79
+ command: "notebook.export",
80
+ position: "right"
81
+ }
82
+ ],
83
+ // Context menu items (optional)
84
+ contextMenus: [
85
+ {
86
+ id: "duplicate-block",
87
+ title: "Duplicate Block",
88
+ command: "notebook.duplicateBlock",
89
+ context: "editor",
90
+ group: "edit",
91
+ order: 1
92
+ },
93
+ {
94
+ id: "delete-block",
95
+ title: "Delete Block",
96
+ command: "notebook.deleteBlock",
97
+ context: "editor",
98
+ group: "edit",
99
+ order: 2
100
+ }
101
+ ]
102
+ },
103
+ // ============================================================
104
+ // Configuration Schema
105
+ // ============================================================
106
+ configSchema: {
107
+ type: "object",
108
+ properties: {
109
+ defaultFontFamily: {
110
+ type: "string",
111
+ default: "Inter",
112
+ description: "Default font family"
113
+ },
114
+ autoSaveInterval: {
115
+ type: "number",
116
+ default: 3e3,
117
+ minimum: 1e3,
118
+ maximum: 3e4,
119
+ description: "Auto-save interval in milliseconds"
120
+ },
121
+ enableCollaboration: {
122
+ type: "boolean",
123
+ default: true,
124
+ description: "Enable real-time collaboration"
125
+ },
126
+ showBlockHandles: {
127
+ type: "boolean",
128
+ default: true,
129
+ description: "Show block drag handles on hover"
130
+ }
131
+ }
132
+ },
133
+ // ============================================================
134
+ // Default Configuration
135
+ // ============================================================
136
+ defaultConfig: {
137
+ defaultFontFamily: "Inter",
138
+ autoSaveInterval: 3e3,
139
+ enableCollaboration: true,
140
+ showBlockHandles: true
141
+ },
142
+ // ============================================================
143
+ // Lifecycle Hooks
144
+ // ============================================================
145
+ lifecycle: {
146
+ activationEvents: ["onFileType:notebook", "onCommand:newNotebook"],
147
+ onActivate: "activate",
148
+ onDeactivate: "deactivate"
149
+ }
150
+ };
151
+
152
+ function activate() {
153
+ console.log("[NotebookPlugin] Activated");
154
+ }
155
+ function deactivate() {
156
+ console.log("[NotebookPlugin] Deactivated");
157
+ }
158
+
159
+ export { activate, deactivate, notebookPluginManifest as notebookManifest, notebookPluginManifest };
@@ -1,4 +1,4 @@
1
- import { z as createLucideIcon } from './index-B1P6hQRJ.js';
1
+ import { z as createLucideIcon } from './index-7Chr1g9c.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,4 +1,4 @@
1
- import { r as reactExports, R as React } from './index-B1P6hQRJ.js';
1
+ import { r as reactExports, R as React } from './index-7Chr1g9c.js';
2
2
 
3
3
  function _arrayLikeToArray(r, a) {
4
4
  (null == a || a > r.length) && (a = r.length);
@@ -1,4 +1,4 @@
1
- import { r as reactExports, j as jsxRuntimeExports, aj as composeRefs, ak as useControllableState, al as Root2$1, am as useId, an as useComposedRefs, ao as composeEventHandlers, ap as Anchor, aq as createPopperScope, ar as Presence, as as Portal$1, at as hideOthers, au as ReactRemoveScroll, av as useFocusGuards, aw as FocusScope, ax as DismissableLayer, ay as Content, az as Arrow, b as cn } from './index-B1P6hQRJ.js';
1
+ import { r as reactExports, j as jsxRuntimeExports, ah as composeRefs, ai as useControllableState, aj as Root2$1, ak as useId, al as useComposedRefs, am as composeEventHandlers, an as Anchor, ao as createPopperScope, ap as Presence, aq as Portal$1, ar as hideOthers, as as ReactRemoveScroll, at as useFocusGuards, au as FocusScope, av as DismissableLayer, aw as Content, ax as Arrow, b as cn } from './index-7Chr1g9c.js';
2
2
 
3
3
  // packages/react/context/src/create-context.tsx
4
4
  function createContextScope(scopeName, createContextScopeDeps = []) {
@@ -1,4 +1,4 @@
1
- import { s as supportsSocketIo, q as resolveApiBaseUrl, o as lookup, p as useAuthStore } from './index-B1P6hQRJ.js';
1
+ import { v as supportsSocketIo, y as resolveApiBaseUrl, w as lookup, x as useAuthStore } from './index-7Chr1g9c.js';
2
2
 
3
3
  const SOCKET_CACHE = /* @__PURE__ */ new Map();
4
4
  function createNoopNotebookSocket() {
@@ -1,4 +1,4 @@
1
- import { z as createLucideIcon } from './index-B1P6hQRJ.js';
1
+ import { z as createLucideIcon } from './index-7Chr1g9c.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,4 +1,4 @@
1
- import { j as jsxRuntimeExports, r as reactExports, b as cn } from './index-B1P6hQRJ.js';
1
+ import { j as jsxRuntimeExports, r as reactExports, b as cn } from './index-7Chr1g9c.js';
2
2
 
3
3
  const TooltipContext = reactExports.createContext(null);
4
4
  const TooltipProvider = ({
@@ -1,4 +1,4 @@
1
- import { z as createLucideIcon } from './index-B1P6hQRJ.js';
1
+ import { z as createLucideIcon } from './index-7Chr1g9c.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,4 +1,4 @@
1
- import { s as supportsSocketIo, q as resolveApiBaseUrl, o as lookup, p as useAuthStore, G as ConnectionState, r as reactExports, Q as checkProjectAccess } from './index-B1P6hQRJ.js';
1
+ import { v as supportsSocketIo, y as resolveApiBaseUrl, w as lookup, x as useAuthStore, G as ConnectionState, r as reactExports, O as checkProjectAccess } from './index-7Chr1g9c.js';
2
2
 
3
3
  const SOCKET_CACHE = /* @__PURE__ */ new Map();
4
4
  const CLIENT_ID_KEY = "ds_cli_client_id";
@@ -1,4 +1,4 @@
1
- import { r as reactExports } from './index-B1P6hQRJ.js';
1
+ import { r as reactExports } from './index-7Chr1g9c.js';
2
2
 
3
3
  function matchesTarget(detail, target) {
4
4
  if (target.projectId && detail.projectId && target.projectId !== detail.projectId) {
@@ -1,4 +1,4 @@
1
- import { z as createLucideIcon } from './index-B1P6hQRJ.js';
1
+ import { z as createLucideIcon } from './index-7Chr1g9c.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -1,4 +1,4 @@
1
- import { z as createLucideIcon } from './index-B1P6hQRJ.js';
1
+ import { z as createLucideIcon } from './index-7Chr1g9c.js';
2
2
 
3
3
  /**
4
4
  * @license lucide-react v0.511.0 - ISC
@@ -8,9 +8,12 @@
8
8
  name="description"
9
9
  content="DeepScientist local workspace with ACP-compatible Copilot, quest memory, documents, and git graph."
10
10
  />
11
+ <link rel="icon" type="image/png" sizes="200x200" href="/ui/logo-small.png" />
12
+ <link rel="shortcut icon" href="/ui/logo-small.png" />
13
+ <link rel="apple-touch-icon" href="/ui/logo-small.png" />
11
14
  <link rel="stylesheet" href="/ui/assets/fonts/ds-fonts.css" />
12
- <script type="module" crossorigin src="/ui/assets/index-B1P6hQRJ.js"></script>
13
- <link rel="stylesheet" crossorigin href="/ui/assets/index-Do9N28uB.css">
15
+ <script type="module" crossorigin src="/ui/assets/index-7Chr1g9c.js"></script>
16
+ <link rel="stylesheet" crossorigin href="/ui/assets/index-DGIYDuTv.css">
14
17
  </head>
15
18
  <body>
16
19
  <noscript>DeepScientist Copilot requires JavaScript.</noscript>