@researai/deepscientist 1.5.0 → 1.5.2

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 (168) hide show
  1. package/AGENTS.md +26 -0
  2. package/README.md +47 -161
  3. package/assets/connectors/lingzhu/openclaw-bridge/README.md +124 -0
  4. package/assets/connectors/lingzhu/openclaw-bridge/index.ts +162 -0
  5. package/assets/connectors/lingzhu/openclaw-bridge/openclaw.plugin.json +145 -0
  6. package/assets/connectors/lingzhu/openclaw-bridge/package.json +35 -0
  7. package/assets/connectors/lingzhu/openclaw-bridge/src/cli.ts +180 -0
  8. package/assets/connectors/lingzhu/openclaw-bridge/src/config.ts +196 -0
  9. package/assets/connectors/lingzhu/openclaw-bridge/src/debug-log.ts +111 -0
  10. package/assets/connectors/lingzhu/openclaw-bridge/src/events.ts +4 -0
  11. package/assets/connectors/lingzhu/openclaw-bridge/src/http-handler.ts +1133 -0
  12. package/assets/connectors/lingzhu/openclaw-bridge/src/image-cache.ts +75 -0
  13. package/assets/connectors/lingzhu/openclaw-bridge/src/lingzhu-tools.ts +246 -0
  14. package/assets/connectors/lingzhu/openclaw-bridge/src/transform.ts +541 -0
  15. package/assets/connectors/lingzhu/openclaw-bridge/src/types.ts +131 -0
  16. package/assets/connectors/lingzhu/openclaw-bridge/tsconfig.json +14 -0
  17. package/assets/connectors/lingzhu/openclaw.lingzhu.config.template.json +39 -0
  18. package/bin/ds.js +2048 -166
  19. package/docs/en/00_QUICK_START.md +152 -0
  20. package/docs/en/01_SETTINGS_REFERENCE.md +1104 -0
  21. package/docs/en/02_START_RESEARCH_GUIDE.md +404 -0
  22. package/docs/en/03_QQ_CONNECTOR_GUIDE.md +325 -0
  23. package/docs/en/04_LINGZHU_CONNECTOR_GUIDE.md +216 -0
  24. package/docs/en/05_TUI_GUIDE.md +141 -0
  25. package/docs/en/06_RUNTIME_AND_CANVAS.md +679 -0
  26. package/docs/en/07_MEMORY_AND_MCP.md +253 -0
  27. package/docs/en/08_FIGURE_STYLE_GUIDE.md +97 -0
  28. package/docs/en/09_DOCTOR.md +152 -0
  29. package/docs/en/90_ARCHITECTURE.md +247 -0
  30. package/docs/en/91_DEVELOPMENT.md +195 -0
  31. package/docs/en/99_ACKNOWLEDGEMENTS.md +29 -0
  32. package/docs/zh/00_QUICK_START.md +152 -0
  33. package/docs/zh/01_SETTINGS_REFERENCE.md +1137 -0
  34. package/docs/zh/02_START_RESEARCH_GUIDE.md +414 -0
  35. package/docs/zh/03_QQ_CONNECTOR_GUIDE.md +324 -0
  36. package/docs/zh/04_LINGZHU_CONNECTOR_GUIDE.md +230 -0
  37. package/docs/zh/05_TUI_GUIDE.md +128 -0
  38. package/docs/zh/06_RUNTIME_AND_CANVAS.md +271 -0
  39. package/docs/zh/07_MEMORY_AND_MCP.md +235 -0
  40. package/docs/zh/08_FIGURE_STYLE_GUIDE.md +97 -0
  41. package/docs/zh/09_DOCTOR.md +154 -0
  42. package/docs/zh/99_ACKNOWLEDGEMENTS.md +29 -0
  43. package/install.sh +41 -16
  44. package/package.json +5 -2
  45. package/pyproject.toml +1 -1
  46. package/src/deepscientist/__init__.py +6 -1
  47. package/src/deepscientist/artifact/guidance.py +9 -2
  48. package/src/deepscientist/artifact/service.py +1026 -39
  49. package/src/deepscientist/bash_exec/monitor.py +27 -5
  50. package/src/deepscientist/bash_exec/runtime.py +639 -0
  51. package/src/deepscientist/bash_exec/service.py +99 -16
  52. package/src/deepscientist/bridges/base.py +3 -0
  53. package/src/deepscientist/bridges/connectors.py +292 -13
  54. package/src/deepscientist/channels/qq.py +19 -2
  55. package/src/deepscientist/channels/relay.py +1 -0
  56. package/src/deepscientist/cli.py +32 -25
  57. package/src/deepscientist/config/models.py +28 -2
  58. package/src/deepscientist/config/service.py +202 -7
  59. package/src/deepscientist/connector_runtime.py +2 -0
  60. package/src/deepscientist/daemon/api/handlers.py +68 -6
  61. package/src/deepscientist/daemon/api/router.py +3 -0
  62. package/src/deepscientist/daemon/app.py +531 -15
  63. package/src/deepscientist/doctor.py +511 -0
  64. package/src/deepscientist/gitops/diff.py +3 -0
  65. package/src/deepscientist/home.py +26 -2
  66. package/src/deepscientist/latex_runtime.py +17 -4
  67. package/src/deepscientist/lingzhu_support.py +182 -0
  68. package/src/deepscientist/mcp/context.py +3 -1
  69. package/src/deepscientist/mcp/server.py +55 -2
  70. package/src/deepscientist/prompts/builder.py +222 -58
  71. package/src/deepscientist/quest/layout.py +2 -0
  72. package/src/deepscientist/quest/service.py +133 -14
  73. package/src/deepscientist/quest/stage_views.py +65 -1
  74. package/src/deepscientist/runners/codex.py +2 -0
  75. package/src/deepscientist/runtime_tools/__init__.py +16 -0
  76. package/src/deepscientist/runtime_tools/builtins.py +19 -0
  77. package/src/deepscientist/runtime_tools/models.py +29 -0
  78. package/src/deepscientist/runtime_tools/registry.py +40 -0
  79. package/src/deepscientist/runtime_tools/service.py +59 -0
  80. package/src/deepscientist/runtime_tools/tinytex.py +25 -0
  81. package/src/deepscientist/shared.py +44 -17
  82. package/src/deepscientist/tinytex.py +276 -0
  83. package/src/prompts/connectors/lingzhu.md +15 -0
  84. package/src/prompts/connectors/qq.md +121 -0
  85. package/src/prompts/system.md +214 -37
  86. package/src/skills/analysis-campaign/SKILL.md +46 -7
  87. package/src/skills/baseline/SKILL.md +12 -5
  88. package/src/skills/decision/SKILL.md +7 -5
  89. package/src/skills/experiment/SKILL.md +22 -5
  90. package/src/skills/finalize/SKILL.md +9 -5
  91. package/src/skills/idea/SKILL.md +6 -5
  92. package/src/skills/intake-audit/SKILL.md +277 -0
  93. package/src/skills/intake-audit/references/state-audit-template.md +41 -0
  94. package/src/skills/rebuttal/SKILL.md +409 -0
  95. package/src/skills/rebuttal/references/action-plan-template.md +63 -0
  96. package/src/skills/rebuttal/references/evidence-update-template.md +30 -0
  97. package/src/skills/rebuttal/references/response-letter-template.md +113 -0
  98. package/src/skills/rebuttal/references/review-matrix-template.md +55 -0
  99. package/src/skills/review/SKILL.md +295 -0
  100. package/src/skills/review/references/experiment-todo-template.md +29 -0
  101. package/src/skills/review/references/review-report-template.md +83 -0
  102. package/src/skills/review/references/revision-log-template.md +40 -0
  103. package/src/skills/scout/SKILL.md +6 -5
  104. package/src/skills/write/SKILL.md +8 -4
  105. package/src/tui/dist/components/WelcomePanel.js +17 -43
  106. package/src/tui/dist/components/messages/BashExecOperationMessage.js +3 -2
  107. package/src/tui/package.json +1 -1
  108. package/src/ui/dist/assets/{AiManusChatView-7v-dHngU.js → AiManusChatView-CZpg376x.js} +127 -597
  109. package/src/ui/dist/assets/{AnalysisPlugin-B_Xmz-KE.js → AnalysisPlugin-CtHA22g3.js} +1 -1
  110. package/src/ui/dist/assets/{AutoFigurePlugin-Cko-0tm1.js → AutoFigurePlugin-BSWmLMmF.js} +63 -8
  111. package/src/ui/dist/assets/{CliPlugin-BsU0ht7q.js → CliPlugin-CJ7jdm_s.js} +43 -609
  112. package/src/ui/dist/assets/{CodeEditorPlugin-DcMMP0Rt.js → CodeEditorPlugin-DhInVGFf.js} +8 -8
  113. package/src/ui/dist/assets/{CodeViewerPlugin-BqoQ5QyY.js → CodeViewerPlugin-D1n8S9r5.js} +5 -5
  114. package/src/ui/dist/assets/{DocViewerPlugin-D7eHNhU6.js → DocViewerPlugin-C4XM_kqk.js} +3 -3
  115. package/src/ui/dist/assets/{GitDiffViewerPlugin-DLJN42T5.js → GitDiffViewerPlugin-W6kS9r6v.js} +1 -1
  116. package/src/ui/dist/assets/{ImageViewerPlugin-gJMV7MOu.js → ImageViewerPlugin-DPeUx_Oz.js} +5 -6
  117. package/src/ui/dist/assets/{LabCopilotPanel-B857sfxP.js → LabCopilotPanel-eAelUaub.js} +12 -15
  118. package/src/ui/dist/assets/LabPlugin-BbOrBxKY.js +2676 -0
  119. package/src/ui/dist/assets/{LatexPlugin-DWKEo-Wj.js → LatexPlugin-C-HhkVXY.js} +16 -16
  120. package/src/ui/dist/assets/{MarkdownViewerPlugin-DBzoEmhv.js → MarkdownViewerPlugin-BDIzIBfh.js} +4 -4
  121. package/src/ui/dist/assets/{MarketplacePlugin-DoHc-8vo.js → MarketplacePlugin-DAOJphwr.js} +3 -3
  122. package/src/ui/dist/assets/{NotebookEditor-CKjKH-yS.js → NotebookEditor-BsoMvDoU.js} +3 -3
  123. package/src/ui/dist/assets/{PdfLoader-zFoL0VPo.js → PdfLoader-fiC7RtHf.js} +1 -1
  124. package/src/ui/dist/assets/{PdfMarkdownPlugin-DXPaL9Nt.js → PdfMarkdownPlugin-C5OxZBFK.js} +3 -3
  125. package/src/ui/dist/assets/{PdfViewerPlugin-DhK8qCFp.js → PdfViewerPlugin-CAbxQebk.js} +10 -10
  126. package/src/ui/dist/assets/{SearchPlugin-CdSi6krf.js → SearchPlugin-SE33Lb9B.js} +1 -1
  127. package/src/ui/dist/assets/{Stepper-V-WiDQJl.js → Stepper-0Av7GfV7.js} +1 -1
  128. package/src/ui/dist/assets/{TextViewerPlugin-hIs1Efiu.js → TextViewerPlugin-Daf2gJDI.js} +4 -4
  129. package/src/ui/dist/assets/{VNCViewer-DG8b0q2X.js → VNCViewer-BKrMUIOX.js} +9 -10
  130. package/src/ui/dist/assets/{bibtex-HDac6fVW.js → bibtex-JBdOEe45.js} +1 -1
  131. package/src/ui/dist/assets/{code-BnBeNxBc.js → code-B0TDFCZz.js} +1 -1
  132. package/src/ui/dist/assets/{file-content-IRQ3jHb8.js → file-content-3YtrSacz.js} +1 -1
  133. package/src/ui/dist/assets/{file-diff-panel-DZoQ9I6r.js → file-diff-panel-CJEg5OG1.js} +1 -1
  134. package/src/ui/dist/assets/{file-socket-BMCdLc-P.js → file-socket-CYQYdmB1.js} +1 -1
  135. package/src/ui/dist/assets/{file-utils-CltILB3w.js → file-utils-Cd1C9Ppl.js} +1 -1
  136. package/src/ui/dist/assets/{image-Boe6ffhu.js → image-B33ctrvC.js} +1 -1
  137. package/src/ui/dist/assets/{index-2Zf65FZt.js → index-9CLPVeZh.js} +1 -1
  138. package/src/ui/dist/assets/{index-DZqJ-qAM.js → index-BNQWqmJ2.js} +60 -2154
  139. package/src/ui/dist/assets/{index-DO43pFZP.js → index-BVXsmS7V.js} +84086 -84365
  140. package/src/ui/dist/assets/{index-BlplpvE1.js → index-Buw_N1VQ.js} +2 -2
  141. package/src/ui/dist/assets/{index-Bq2bvfkl.css → index-SwmFAld3.css} +2622 -2619
  142. package/src/ui/dist/assets/{message-square-mUHn_Ssb.js → message-square-D0cUJ9yU.js} +1 -1
  143. package/src/ui/dist/assets/{monaco-fe0arNEU.js → monaco-UZLYkp2n.js} +1 -1
  144. package/src/ui/dist/assets/{popover-D_7i19qU.js → popover-CTeiY-dK.js} +1 -1
  145. package/src/ui/dist/assets/{project-sync-DyVGrU7H.js → project-sync-Dbs01Xky.js} +2 -8
  146. package/src/ui/dist/assets/{sigma-BzazRyxQ.js → sigma-CM08S-xT.js} +1 -1
  147. package/src/ui/dist/assets/{tooltip-DN_yjHFH.js → tooltip-pDtzvU9p.js} +1 -1
  148. package/src/ui/dist/assets/trash-YvPCP-da.js +32 -0
  149. package/src/ui/dist/assets/{useCliAccess-DV2L2Qxy.js → useCliAccess-Bavi74Ac.js} +12 -42
  150. package/src/ui/dist/assets/{useFileDiffOverlay-DyTj-p_V.js → useFileDiffOverlay-CVXY6oeg.js} +1 -1
  151. package/src/ui/dist/assets/{wrap-text-ozYHtUwq.js → wrap-text-Cf4flRW7.js} +1 -1
  152. package/src/ui/dist/assets/{zoom-out-BN9MUyCQ.js → zoom-out-Hb0Z1YpT.js} +1 -1
  153. package/src/ui/dist/index.html +2 -2
  154. package/uv.lock +1155 -0
  155. package/assets/fonts/Inter-Variable.ttf +0 -0
  156. package/assets/fonts/NotoSerifSC-Regular-C94HN_ZN.ttf +0 -0
  157. package/assets/fonts/NunitoSans-Variable.ttf +0 -0
  158. package/assets/fonts/Satoshi-Medium-ByP-Zb-9.woff2 +0 -0
  159. package/assets/fonts/SourceSans3-Variable.ttf +0 -0
  160. package/assets/fonts/ds-fonts.css +0 -83
  161. package/src/ui/dist/assets/Inter-Variable-VF2RPR_K.ttf +0 -0
  162. package/src/ui/dist/assets/LabPlugin-bL7rpic8.js +0 -43
  163. package/src/ui/dist/assets/NotoSerifSC-Regular-C94HN_ZN-C94HN_ZN.ttf +0 -0
  164. package/src/ui/dist/assets/NunitoSans-Variable-B_ZymHAd.ttf +0 -0
  165. package/src/ui/dist/assets/Satoshi-Medium-ByP-Zb-9-GkA34YXu.woff2 +0 -0
  166. package/src/ui/dist/assets/SourceSans3-Variable-CD-WOsSK.ttf +0 -0
  167. package/src/ui/dist/assets/info-CcsK_htA.js +0 -18
  168. package/src/ui/dist/assets/user-plus-BusDx-hF.js +0 -79
@@ -1,4 +1,4 @@
1
- import { r as reactExports, c as copyToClipboard, j as jsxRuntimeExports, k as FileText, l as Search, G as ChartColumn, H as Sparkles, d as Check, e as Copy, b as cn } from './index-DO43pFZP.js';
1
+ import { r as reactExports, c as copyToClipboard, j as jsxRuntimeExports, k as FileText, l as Search, A as ChartColumn, D as Sparkles, d as Check, e as Copy, b as cn } from './index-BVXsmS7V.js';
2
2
 
3
3
  const actions = [
4
4
  {
@@ -1,8 +1,8 @@
1
- import { r as reactExports, j as jsxRuntimeExports, f as useFileTreeStore, N as updateFileContent, bx as uploadFileAuto, by as deleteFiles, W as listFiles, bz as createFolder, t as resolveApiBaseUrl, R as React, X, aO as useQueryClient, bA as previewPointsCost, bB as pointsKeys, bC as confirmPointsAutoCharge, w as useToast, bD as usePointsAutoChargePreferences, bE as ChevronLeft, bF as Settings2, L as LoaderCircle, bG as ArrowRight, bH as ChevronRight, a1 as Download, a0 as Play, H as Sparkles, b9 as Dialog, ba as DialogContent, bb as DialogHeader, bc as DialogTitle, bI as DialogDescription, bJ as Input, bd as DialogFooter, a6 as Button, y as apiClient, K as create, bK as persist, _ as __vitePreload, q as useAuthStore, a$ as ScrollArea, b as cn, bp as SegmentedControl, br as Textarea, k as FileText, b4 as Select, b5 as SelectTrigger, b6 as SelectValue, b7 as SelectContent, b8 as SelectItem, aM as reactDomExports, bL as downloadFileById, bq as CircleHelp } from './index-DO43pFZP.js';
2
- import { T as TooltipProvider, a as Tooltip, b as TooltipTrigger, c as TooltipContent } from './tooltip-DN_yjHFH.js';
3
- import { S as Stepper, a as Step, C as CloudUpload } from './Stepper-V-WiDQJl.js';
4
- import { M as MessageSquare } from './message-square-mUHn_Ssb.js';
5
- import { I as Image } from './image-Boe6ffhu.js';
1
+ import { r as reactExports, j as jsxRuntimeExports, f as useFileTreeStore, J as updateFileContent, b_ as uploadFileAuto, b$ as deleteFiles, U as listFiles, c0 as createFolder, q as resolveApiBaseUrl, R as React, X, x as apiClient, af as useQuery, c1 as supportsPoints, aM as useQueryClient, v as useToast, c2 as ChevronLeft, c3 as Settings2, L as LoaderCircle, c4 as ArrowRight, c5 as ChevronRight, $ as Download, Z as Play, D as Sparkles, b8 as Dialog, b9 as DialogContent, ba as DialogHeader, bb as DialogTitle, c6 as DialogDescription, c7 as Input, bc as DialogFooter, a3 as Button, I as create, c8 as persist, _ as __vitePreload, p as useAuthStore, aZ as ScrollArea, b as cn, bT as SegmentedControl, bU as Textarea, k as FileText, b3 as Select, b4 as SelectTrigger, b5 as SelectValue, b6 as SelectContent, b7 as SelectItem, aK as reactDomExports, c9 as downloadFileById, bp as CircleHelp } from './index-BVXsmS7V.js';
2
+ import { T as TooltipProvider, a as Tooltip, b as TooltipTrigger, c as TooltipContent } from './tooltip-pDtzvU9p.js';
3
+ import { S as Stepper, a as Step, C as CloudUpload } from './Stepper-0Av7GfV7.js';
4
+ import { M as MessageSquare } from './message-square-D0cUJ9yU.js';
5
+ import { I as Image } from './image-B33ctrvC.js';
6
6
 
7
7
  const ScrollStackItem = ({
8
8
  children,
@@ -4949,6 +4949,63 @@ function ImageGenSettings({
4949
4949
  );
4950
4950
  }
4951
4951
 
4952
+ const API_PREFIX = "/api/v1";
4953
+ function isLocalPointsFallbackError(error) {
4954
+ if (!error || typeof error !== "object") return false;
4955
+ const status = error.response?.status;
4956
+ return status === 404 || status === 405 || status === 501;
4957
+ }
4958
+ async function previewPointsCost(input) {
4959
+ const response = await apiClient.post(`${API_PREFIX}/points/preview`, input);
4960
+ return response.data;
4961
+ }
4962
+ async function getPointsAutoChargePreferences() {
4963
+ try {
4964
+ const response = await apiClient.get(`${API_PREFIX}/points/auto-charge/preferences`);
4965
+ return response.data;
4966
+ } catch (error) {
4967
+ if (!isLocalPointsFallbackError(error)) {
4968
+ throw error;
4969
+ }
4970
+ return { items: [] };
4971
+ }
4972
+ }
4973
+ async function confirmPointsAutoCharge(input) {
4974
+ const response = await apiClient.post(`${API_PREFIX}/points/auto-charge/confirm`, input);
4975
+ return response.data;
4976
+ }
4977
+
4978
+ const pointsKeys = {
4979
+ all: ["points"],
4980
+ summary: () => [...pointsKeys.all, "summary"],
4981
+ membership: () => [...pointsKeys.all, "membership"],
4982
+ history: (params) => [...pointsKeys.all, "history", params],
4983
+ insights: (params) => [...pointsKeys.all, "insights", params],
4984
+ autoChargePreferences: () => [...pointsKeys.all, "auto-charge-preferences"],
4985
+ activities: () => [...pointsKeys.all, "activities"],
4986
+ inviteLink: () => [...pointsKeys.all, "invite-link"],
4987
+ adminConfig: () => [...pointsKeys.all, "admin", "config"],
4988
+ adminPlanCatalog: () => [...pointsKeys.all, "admin", "plan-catalog"],
4989
+ adminEntitlementRules: () => [...pointsKeys.all, "admin", "entitlement-rules"],
4990
+ adminPlanHistory: (params) => [...pointsKeys.all, "admin", "plan-history", params],
4991
+ adminLedger: (params) => [...pointsKeys.all, "admin", "ledger", params],
4992
+ adminUpgradeInterest: (params) => [...pointsKeys.all, "admin", "upgrade-interest", params],
4993
+ adminUserSnapshot: (userId) => [...pointsKeys.all, "admin", "user-snapshot", userId],
4994
+ publicPricing: () => [...pointsKeys.all, "public-pricing"],
4995
+ adminActivationCampaigns: () => [...pointsKeys.all, "admin", "activation-campaigns"],
4996
+ adminActivationClaims: (params) => [...pointsKeys.all, "admin", "activation-claims", params]
4997
+ };
4998
+ function isPointsRuntimeEnabled() {
4999
+ return supportsPoints();
5000
+ }
5001
+ function usePointsAutoChargePreferences() {
5002
+ return useQuery({
5003
+ queryKey: pointsKeys.autoChargePreferences(),
5004
+ queryFn: getPointsAutoChargePreferences,
5005
+ enabled: isPointsRuntimeEnabled()
5006
+ });
5007
+ }
5008
+
4952
5009
  function asNonEmptyString(value) {
4953
5010
  if (typeof value !== "string") return null;
4954
5011
  const trimmed = value.trim();
@@ -6699,15 +6756,13 @@ function isTextFile(file) {
6699
6756
  const FIGURE_CONTENT_TYPES = [
6700
6757
  { value: "paper", label: "Paper" },
6701
6758
  { value: "survey", label: "Survey" },
6702
- { value: "blog", label: "Blog" },
6703
6759
  { value: "textbook", label: "Textbook" }
6704
6760
  ];
6705
6761
  const DEFAULT_STYLE_PROMPTS = {
6706
6762
  // Academic types (Paper/Survey)
6707
6763
  paper: "professional and delicate academic journal style with cute characters",
6708
6764
  survey: "professional and delicate academic journal style with cute characters",
6709
- // Casual types (Blog/Textbook)
6710
- blog: "Delicate and cute cartoon comic style (using Morandi color palette)",
6765
+ // Casual types (Textbook)
6711
6766
  textbook: "Delicate and cute cartoon comic style (using Morandi color palette)",
6712
6767
  // Poster type
6713
6768
  poster: "a visually engaging and interesting poster style with cute characters"