@jingyi0605/codingns 0.8.5 → 0.9.0

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 (439) hide show
  1. package/bin/codingns.mjs +7 -156
  2. package/dist/public/assets/AdaptiveButlerPage-B17QiMyT.js +2 -0
  3. package/dist/public/assets/{App-BOHBGFOd.js → App-CFBwDUNA.js} +6 -6
  4. package/dist/public/assets/{BootstrapPage-BxHQT4nA.js → BootstrapPage-W5wU3BPh.js} +1 -1
  5. package/dist/public/assets/{ConversationPage-DWFsF6BB.js → ConversationPage-DQLX1bUh.js} +6 -6
  6. package/dist/public/assets/{DesktopDetachPreviewPage-DOgEjYEf.js → DesktopDetachPreviewPage-DTPeuAW-.js} +1 -1
  7. package/dist/public/assets/DesktopModal-6ii53_Y9.js +1 -0
  8. package/dist/public/assets/DesktopWindowPage-D0blSuKd.js +2 -0
  9. package/dist/public/assets/FileContextPanel-BrKO8Xt6.js +1 -0
  10. package/dist/public/assets/GitSidebar-BdwiDtOr.js +6 -0
  11. package/dist/public/assets/MobileCreateSessionSheet-Cx_dBiBb.js +1 -0
  12. package/dist/public/assets/MobileSheet-opTWyRe1.js +1 -0
  13. package/dist/public/assets/{MobileTopHeaderFrame-lcp2GscV.js → MobileTopHeaderFrame-BbNON3Y4.js} +1 -1
  14. package/dist/public/assets/MobileWorkspaceSwitcherHeader-BZEzPeMj.js +1 -0
  15. package/dist/public/assets/{PluginAccessOverview-DGcKAMQl.js → PluginAccessOverview-mQDmAljp.js} +1 -1
  16. package/dist/public/assets/PluginContainerPage-CcxUJpM4.js +1 -0
  17. package/dist/public/assets/{PluginDetailPage-CAJ7LFpD.js → PluginDetailPage-D5--ACIt.js} +1 -1
  18. package/dist/public/assets/{PluginsListPage-BxZG1NyT.js → PluginsListPage-D_oJxYXT.js} +1 -1
  19. package/dist/public/assets/{RelayConnectEntryPage-CfNO_TIl.js → RelayConnectEntryPage-DROxpnkv.js} +1 -1
  20. package/dist/public/assets/{ServerSettingsModal-by36Z_5k.js → ServerSettingsModal-CUUOPqSe.js} +1 -1
  21. package/dist/public/assets/SessionIndexPage-C2Jxh6Gp.js +1 -0
  22. package/dist/public/assets/SettingsPage-BlAZCHsy.js +2 -0
  23. package/dist/public/assets/{TerminalManagerPanel-NVZRxxmH.js → TerminalManagerPanel-CjzbiWjl.js} +1 -1
  24. package/dist/public/assets/{TerminalPage-C4LNoPBp.js → TerminalPage-CwWyFDj8.js} +2 -2
  25. package/dist/public/assets/TerminalRuntimeFallbackModal-CSVVbO8r.js +1 -0
  26. package/dist/public/assets/{ToolFilesPage-47zbdgTW.js → ToolFilesPage-QBEY8oCf.js} +1 -1
  27. package/dist/public/assets/{ToolGitPage-Fuk_b_jg.js → ToolGitPage-BKoZ2l9v.js} +1 -1
  28. package/dist/public/assets/{ToolProcessesPage-sWSMWD-9.js → ToolProcessesPage-BOH0ib4G.js} +1 -1
  29. package/dist/public/assets/{ToolsHomePage-R1mZlbZi.js → ToolsHomePage-BcMZ3BCQ.js} +1 -1
  30. package/dist/public/assets/{WorkbenchLandingPage-CqmiFH2u.js → WorkbenchLandingPage-B5zoppEl.js} +1 -1
  31. package/dist/public/assets/WorkbenchLayout-BksVkkFF.css +1 -0
  32. package/dist/public/assets/WorkbenchLayout-CikJBS62.js +1019 -0
  33. package/dist/public/assets/{WorkbenchModal-C7qoQElW.js → WorkbenchModal-NGmPgqaE.js} +1 -1
  34. package/dist/public/assets/WorkbenchShellRoute-BbbSOiZw.js +1 -0
  35. package/dist/public/assets/WorkbenchShellRoute-DT3VMjWD.css +1 -0
  36. package/dist/public/assets/WorkspaceDebugDetailPage-CVivdPx5.js +1 -0
  37. package/dist/public/assets/{WorkspaceDetailPage-BPsrFffw.js → WorkspaceDetailPage-DgOSjscR.js} +1 -1
  38. package/dist/public/assets/{WorkspaceHomePage-KAtqZOAb.js → WorkspaceHomePage-HPa7M_Vh.js} +1 -1
  39. package/dist/public/assets/{client-runtime-manager-wmCJZKYd.js → client-runtime-manager-DXbI9K1K.js} +1 -1
  40. package/dist/public/assets/index-BxJPQpFM.css +1 -0
  41. package/dist/public/assets/index-CeXGOT_T.js +50 -0
  42. package/dist/public/assets/{login-direct-candidate-resolver-BOAgTuUf.js → login-direct-candidate-resolver-DkKyFtQJ.js} +1 -1
  43. package/dist/public/assets/{plugin-permission-copy-Cq99cnzV.js → plugin-permission-copy-CzN269Bk.js} +1 -1
  44. package/dist/public/assets/{plugins-api-BQTV5DOp.js → plugins-api-Bv9DHpLF.js} +1 -1
  45. package/dist/public/assets/{preferences-service-DJxbEEeg.js → preferences-service-D2ISL2Zz.js} +1 -1
  46. package/dist/public/assets/{relay-entry-D-LfvdiX.js → relay-entry-Bg0OisQy.js} +1 -1
  47. package/dist/public/assets/{terminal-runtime-meta-BJmy8dyK.js → terminal-runtime-meta-C8t-CIDF.js} +1 -1
  48. package/dist/public/assets/{useRegisteredDebugTemplates-DQAWVdCo.js → useRegisteredDebugTemplates-Bol3NVfN.js} +1 -1
  49. package/dist/public/assets/{workbench-navigation-MEzCSmsK.js → workbench-navigation-B7IjRQd8.js} +1 -1
  50. package/dist/public/index.html +2 -2
  51. package/dist/server/middlewares/auth-guard.js +10 -5
  52. package/dist/server/middlewares/auth-guard.js.map +1 -1
  53. package/dist/server/modules/affairs-indexer/contracts/src/errors/app-error.d.ts +11 -0
  54. package/dist/server/modules/affairs-indexer/contracts/src/errors/app-error.js +22 -0
  55. package/dist/server/modules/affairs-indexer/contracts/src/errors/app-error.js.map +1 -0
  56. package/dist/server/modules/affairs-indexer/contracts/src/errors/error-codes.d.ts +23 -0
  57. package/dist/server/modules/affairs-indexer/contracts/src/errors/error-codes.js +23 -0
  58. package/dist/server/modules/affairs-indexer/contracts/src/errors/error-codes.js.map +1 -0
  59. package/dist/server/modules/affairs-indexer/contracts/src/index.d.ts +4 -0
  60. package/dist/server/modules/affairs-indexer/contracts/src/index.js +5 -0
  61. package/dist/server/modules/affairs-indexer/contracts/src/index.js.map +1 -0
  62. package/dist/server/modules/affairs-indexer/contracts/src/types/cli-command-context.d.ts +7 -0
  63. package/dist/server/modules/affairs-indexer/contracts/src/types/cli-command-context.js +2 -0
  64. package/dist/server/modules/affairs-indexer/contracts/src/types/cli-command-context.js.map +1 -0
  65. package/dist/server/modules/affairs-indexer/contracts/src/types/runtime-config.d.ts +16 -0
  66. package/dist/server/modules/affairs-indexer/contracts/src/types/runtime-config.js +2 -0
  67. package/dist/server/modules/affairs-indexer/contracts/src/types/runtime-config.js.map +1 -0
  68. package/dist/server/modules/affairs-indexer/core/src/config/load-runtime-config.d.ts +10 -0
  69. package/dist/server/modules/affairs-indexer/core/src/config/load-runtime-config.js +215 -0
  70. package/dist/server/modules/affairs-indexer/core/src/config/load-runtime-config.js.map +1 -0
  71. package/dist/server/modules/affairs-indexer/core/src/index.d.ts +31 -0
  72. package/dist/server/modules/affairs-indexer/core/src/index.js +32 -0
  73. package/dist/server/modules/affairs-indexer/core/src/index.js.map +1 -0
  74. package/dist/server/modules/affairs-indexer/core/src/logging/structured-logger.d.ts +20 -0
  75. package/dist/server/modules/affairs-indexer/core/src/logging/structured-logger.js +47 -0
  76. package/dist/server/modules/affairs-indexer/core/src/logging/structured-logger.js.map +1 -0
  77. package/dist/server/modules/affairs-indexer/core/src/parser/base-complex-parser-adapter.d.ts +17 -0
  78. package/dist/server/modules/affairs-indexer/core/src/parser/base-complex-parser-adapter.js +63 -0
  79. package/dist/server/modules/affairs-indexer/core/src/parser/base-complex-parser-adapter.js.map +1 -0
  80. package/dist/server/modules/affairs-indexer/core/src/parser/complex-document-skip-adapter.d.ts +12 -0
  81. package/dist/server/modules/affairs-indexer/core/src/parser/complex-document-skip-adapter.js +42 -0
  82. package/dist/server/modules/affairs-indexer/core/src/parser/complex-document-skip-adapter.js.map +1 -0
  83. package/dist/server/modules/affairs-indexer/core/src/parser/csv-parser-adapter.d.ts +7 -0
  84. package/dist/server/modules/affairs-indexer/core/src/parser/csv-parser-adapter.js +107 -0
  85. package/dist/server/modules/affairs-indexer/core/src/parser/csv-parser-adapter.js.map +1 -0
  86. package/dist/server/modules/affairs-indexer/core/src/parser/document-parser.d.ts +19 -0
  87. package/dist/server/modules/affairs-indexer/core/src/parser/document-parser.js +37 -0
  88. package/dist/server/modules/affairs-indexer/core/src/parser/document-parser.js.map +1 -0
  89. package/dist/server/modules/affairs-indexer/core/src/parser/docx-parser-adapter.d.ts +7 -0
  90. package/dist/server/modules/affairs-indexer/core/src/parser/docx-parser-adapter.js +123 -0
  91. package/dist/server/modules/affairs-indexer/core/src/parser/docx-parser-adapter.js.map +1 -0
  92. package/dist/server/modules/affairs-indexer/core/src/parser/openxml-utils.d.ts +8 -0
  93. package/dist/server/modules/affairs-indexer/core/src/parser/openxml-utils.js +111 -0
  94. package/dist/server/modules/affairs-indexer/core/src/parser/openxml-utils.js.map +1 -0
  95. package/dist/server/modules/affairs-indexer/core/src/parser/parser-adapter.d.ts +42 -0
  96. package/dist/server/modules/affairs-indexer/core/src/parser/parser-adapter.js +2 -0
  97. package/dist/server/modules/affairs-indexer/core/src/parser/parser-adapter.js.map +1 -0
  98. package/dist/server/modules/affairs-indexer/core/src/parser/parser-capability-registry.d.ts +18 -0
  99. package/dist/server/modules/affairs-indexer/core/src/parser/parser-capability-registry.js +91 -0
  100. package/dist/server/modules/affairs-indexer/core/src/parser/parser-capability-registry.js.map +1 -0
  101. package/dist/server/modules/affairs-indexer/core/src/parser/parser-router.d.ts +18 -0
  102. package/dist/server/modules/affairs-indexer/core/src/parser/parser-router.js +59 -0
  103. package/dist/server/modules/affairs-indexer/core/src/parser/parser-router.js.map +1 -0
  104. package/dist/server/modules/affairs-indexer/core/src/parser/parser-skip-repository.d.ts +48 -0
  105. package/dist/server/modules/affairs-indexer/core/src/parser/parser-skip-repository.js +193 -0
  106. package/dist/server/modules/affairs-indexer/core/src/parser/parser-skip-repository.js.map +1 -0
  107. package/dist/server/modules/affairs-indexer/core/src/parser/pdf-parser-adapter.d.ts +7 -0
  108. package/dist/server/modules/affairs-indexer/core/src/parser/pdf-parser-adapter.js +371 -0
  109. package/dist/server/modules/affairs-indexer/core/src/parser/pdf-parser-adapter.js.map +1 -0
  110. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser-adapter.d.ts +10 -0
  111. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser-adapter.js +55 -0
  112. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser-adapter.js.map +1 -0
  113. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser.d.ts +9 -0
  114. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser.js +2 -0
  115. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser.js.map +1 -0
  116. package/dist/server/modules/affairs-indexer/core/src/parser/pptx-parser-adapter.d.ts +7 -0
  117. package/dist/server/modules/affairs-indexer/core/src/parser/pptx-parser-adapter.js +130 -0
  118. package/dist/server/modules/affairs-indexer/core/src/parser/pptx-parser-adapter.js.map +1 -0
  119. package/dist/server/modules/affairs-indexer/core/src/parser/xlsx-parser-adapter.d.ts +7 -0
  120. package/dist/server/modules/affairs-indexer/core/src/parser/xlsx-parser-adapter.js +228 -0
  121. package/dist/server/modules/affairs-indexer/core/src/parser/xlsx-parser-adapter.js.map +1 -0
  122. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.d.ts +205 -0
  123. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.js +1471 -0
  124. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.js.map +1 -0
  125. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-write-repository.d.ts +161 -0
  126. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-write-repository.js +1350 -0
  127. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-write-repository.js.map +1 -0
  128. package/dist/server/modules/affairs-indexer/core/src/scanner/file-scanner.d.ts +32 -0
  129. package/dist/server/modules/affairs-indexer/core/src/scanner/file-scanner.js +208 -0
  130. package/dist/server/modules/affairs-indexer/core/src/scanner/file-scanner.js.map +1 -0
  131. package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.d.ts +30 -0
  132. package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.js +66 -0
  133. package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.js.map +1 -0
  134. package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.d.ts +33 -0
  135. package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.js +705 -0
  136. package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.js.map +1 -0
  137. package/dist/server/modules/affairs-indexer/core/src/services/indexer/allowed-extensions-diff-service.d.ts +80 -0
  138. package/dist/server/modules/affairs-indexer/core/src/services/indexer/allowed-extensions-diff-service.js +193 -0
  139. package/dist/server/modules/affairs-indexer/core/src/services/indexer/allowed-extensions-diff-service.js.map +1 -0
  140. package/dist/server/modules/affairs-indexer/core/src/services/indexer/text-indexer.d.ts +77 -0
  141. package/dist/server/modules/affairs-indexer/core/src/services/indexer/text-indexer.js +467 -0
  142. package/dist/server/modules/affairs-indexer/core/src/services/indexer/text-indexer.js.map +1 -0
  143. package/dist/server/modules/affairs-indexer/core/src/services/mcp/mcp-stdio-server.d.ts +17 -0
  144. package/dist/server/modules/affairs-indexer/core/src/services/mcp/mcp-stdio-server.js +264 -0
  145. package/dist/server/modules/affairs-indexer/core/src/services/mcp/mcp-stdio-server.js.map +1 -0
  146. package/dist/server/modules/affairs-indexer/core/src/services/search/offline-search-service.d.ts +11 -0
  147. package/dist/server/modules/affairs-indexer/core/src/services/search/offline-search-service.js +76 -0
  148. package/dist/server/modules/affairs-indexer/core/src/services/search/offline-search-service.js.map +1 -0
  149. package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.d.ts +26 -0
  150. package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.js +305 -0
  151. package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.js.map +1 -0
  152. package/dist/server/modules/affairs-indexer/core/src/services/tagging/tag-recompute-service.d.ts +53 -0
  153. package/dist/server/modules/affairs-indexer/core/src/services/tagging/tag-recompute-service.js +566 -0
  154. package/dist/server/modules/affairs-indexer/core/src/services/tagging/tag-recompute-service.js.map +1 -0
  155. package/dist/server/modules/affairs-indexer/core/src/services/watch/watch-service.d.ts +47 -0
  156. package/dist/server/modules/affairs-indexer/core/src/services/watch/watch-service.js +227 -0
  157. package/dist/server/modules/affairs-indexer/core/src/services/watch/watch-service.js.map +1 -0
  158. package/dist/server/modules/affairs-indexer/core/src/sqlite/catalog-schema.d.ts +5 -0
  159. package/dist/server/modules/affairs-indexer/core/src/sqlite/catalog-schema.js +245 -0
  160. package/dist/server/modules/affairs-indexer/core/src/sqlite/catalog-schema.js.map +1 -0
  161. package/dist/server/modules/affairs-indexer/core/src/sqlite/detect-catalog-schema.d.ts +14 -0
  162. package/dist/server/modules/affairs-indexer/core/src/sqlite/detect-catalog-schema.js +87 -0
  163. package/dist/server/modules/affairs-indexer/core/src/sqlite/detect-catalog-schema.js.map +1 -0
  164. package/dist/server/modules/affairs-indexer/core/src/sqlite/init-catalog.d.ts +13 -0
  165. package/dist/server/modules/affairs-indexer/core/src/sqlite/init-catalog.js +16 -0
  166. package/dist/server/modules/affairs-indexer/core/src/sqlite/init-catalog.js.map +1 -0
  167. package/dist/server/modules/affairs-indexer/core/src/sqlite/migration-runner.d.ts +22 -0
  168. package/dist/server/modules/affairs-indexer/core/src/sqlite/migration-runner.js +430 -0
  169. package/dist/server/modules/affairs-indexer/core/src/sqlite/migration-runner.js.map +1 -0
  170. package/dist/server/modules/affairs-indexer/core/src/sqlite/open-database.d.ts +9 -0
  171. package/dist/server/modules/affairs-indexer/core/src/sqlite/open-database.js +19 -0
  172. package/dist/server/modules/affairs-indexer/core/src/sqlite/open-database.js.map +1 -0
  173. package/dist/server/modules/affairs-indexer/core/src/tagging/simple-tag-inference.d.ts +21 -0
  174. package/dist/server/modules/affairs-indexer/core/src/tagging/simple-tag-inference.js +94 -0
  175. package/dist/server/modules/affairs-indexer/core/src/tagging/simple-tag-inference.js.map +1 -0
  176. package/dist/server/modules/affairs-indexer/core/src/utils/abort.d.ts +2 -0
  177. package/dist/server/modules/affairs-indexer/core/src/utils/abort.js +13 -0
  178. package/dist/server/modules/affairs-indexer/core/src/utils/abort.js.map +1 -0
  179. package/dist/server/modules/affairs-indexer/core/src/utils/file-streaming.d.ts +9 -0
  180. package/dist/server/modules/affairs-indexer/core/src/utils/file-streaming.js +64 -0
  181. package/dist/server/modules/affairs-indexer/core/src/utils/file-streaming.js.map +1 -0
  182. package/dist/server/modules/affairs-indexer/core/src/utils/root-command-lock.d.ts +10 -0
  183. package/dist/server/modules/affairs-indexer/core/src/utils/root-command-lock.js +230 -0
  184. package/dist/server/modules/affairs-indexer/core/src/utils/root-command-lock.js.map +1 -0
  185. package/dist/server/modules/affairs-indexer/core/src/utils/rss-log.d.ts +2 -0
  186. package/dist/server/modules/affairs-indexer/core/src/utils/rss-log.js +19 -0
  187. package/dist/server/modules/affairs-indexer/core/src/utils/rss-log.js.map +1 -0
  188. package/dist/server/modules/affairs-indexer/internal-command-runner.d.ts +31 -0
  189. package/dist/server/modules/affairs-indexer/internal-command-runner.js +643 -0
  190. package/dist/server/modules/affairs-indexer/internal-command-runner.js.map +1 -0
  191. package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +0 -49
  192. package/dist/server/modules/assistant-capability/assistant-capability-controller.js +10 -56
  193. package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
  194. package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +2 -46
  195. package/dist/server/modules/assistant-capability/assistant-capability-service.js +15 -158
  196. package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
  197. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.d.ts +4 -2
  198. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.js +62 -21
  199. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.js.map +1 -1
  200. package/dist/server/modules/butler/butler-control-session-service.d.ts +3 -4
  201. package/dist/server/modules/butler/butler-control-session-service.js +39 -62
  202. package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
  203. package/dist/server/modules/butler/butler-controller.d.ts +11 -3
  204. package/dist/server/modules/butler/butler-controller.js +19 -4
  205. package/dist/server/modules/butler/butler-controller.js.map +1 -1
  206. package/dist/server/modules/butler/butler-follow-up-service.js.map +1 -1
  207. package/dist/server/modules/butler/butler-profile-service.d.ts +1 -1
  208. package/dist/server/modules/butler/butler-profile-service.js +34 -63
  209. package/dist/server/modules/butler/butler-profile-service.js.map +1 -1
  210. package/dist/server/modules/butler/butler-project-service.d.ts +1 -3
  211. package/dist/server/modules/butler/butler-project-service.js +1 -7
  212. package/dist/server/modules/butler/butler-project-service.js.map +1 -1
  213. package/dist/server/modules/butler/butler-session-service.d.ts +1 -0
  214. package/dist/server/modules/butler/butler-session-service.js +109 -0
  215. package/dist/server/modules/butler/butler-session-service.js.map +1 -1
  216. package/dist/server/modules/butler/butler-session-summary-service.js +0 -2
  217. package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
  218. package/dist/server/modules/butler/butler-workspace-context.d.ts +5 -1
  219. package/dist/server/modules/butler/butler-workspace-context.js +21 -12
  220. package/dist/server/modules/butler/butler-workspace-context.js.map +1 -1
  221. package/dist/server/modules/file/file-content-service.d.ts +11 -0
  222. package/dist/server/modules/file/file-content-service.js +55 -0
  223. package/dist/server/modules/file/file-content-service.js.map +1 -1
  224. package/dist/server/modules/file/file-controller.d.ts +26 -1
  225. package/dist/server/modules/file/file-controller.js +59 -4
  226. package/dist/server/modules/file/file-controller.js.map +1 -1
  227. package/dist/server/modules/file/file-preview-link-service.d.ts +1 -0
  228. package/dist/server/modules/file/file-preview-link-service.js +25 -0
  229. package/dist/server/modules/file/file-preview-link-service.js.map +1 -1
  230. package/dist/server/modules/file/file-preview-service.js +15 -4
  231. package/dist/server/modules/file/file-preview-service.js.map +1 -1
  232. package/dist/server/modules/file/file-preview-types.d.ts +9 -1
  233. package/dist/server/modules/file/file-preview-types.js +8 -1
  234. package/dist/server/modules/file/file-preview-types.js.map +1 -1
  235. package/dist/server/modules/file/recent-modified-file-service.d.ts +15 -0
  236. package/dist/server/modules/file/recent-modified-file-service.js +102 -0
  237. package/dist/server/modules/file/recent-modified-file-service.js.map +1 -0
  238. package/dist/server/modules/file/runtime/codingns-workspace-bridge.js +6 -0
  239. package/dist/server/modules/file/workspace-file-bridge-service.d.ts +11 -0
  240. package/dist/server/modules/file/workspace-file-bridge-service.js +19 -0
  241. package/dist/server/modules/file/workspace-file-bridge-service.js.map +1 -1
  242. package/dist/server/modules/file/workspace-index-apply-service.d.ts +25 -0
  243. package/dist/server/modules/file/workspace-index-apply-service.js +42 -0
  244. package/dist/server/modules/file/workspace-index-apply-service.js.map +1 -0
  245. package/dist/server/modules/office/office-controller.d.ts +15 -1
  246. package/dist/server/modules/office/office-controller.js +26 -1
  247. package/dist/server/modules/office/office-controller.js.map +1 -1
  248. package/dist/server/modules/office/onlyoffice-integration-service.d.ts +78 -0
  249. package/dist/server/modules/office/onlyoffice-integration-service.js +610 -0
  250. package/dist/server/modules/office/onlyoffice-integration-service.js.map +1 -0
  251. package/dist/server/modules/plugins/plugin-file-gateway-service.d.ts +12 -0
  252. package/dist/server/modules/plugins/plugin-file-gateway-service.js +13 -0
  253. package/dist/server/modules/plugins/plugin-file-gateway-service.js.map +1 -1
  254. package/dist/server/modules/preferences/profile-service.d.ts +1 -0
  255. package/dist/server/modules/preferences/profile-service.js +27 -3
  256. package/dist/server/modules/preferences/profile-service.js.map +1 -1
  257. package/dist/server/modules/sessions/codex-app-server-helper-process.js +0 -8
  258. package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
  259. package/dist/server/modules/sessions/session-controller.d.ts +1 -0
  260. package/dist/server/modules/sessions/session-controller.js +3 -0
  261. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  262. package/dist/server/modules/sessions/session-history-service.d.ts +2 -0
  263. package/dist/server/modules/sessions/session-history-service.js +78 -3
  264. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  265. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +1 -0
  266. package/dist/server/modules/sessions/session-live-runtime-service.js +4 -0
  267. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  268. package/dist/server/modules/sessions/session-permission-request-service.js +0 -4
  269. package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
  270. package/dist/server/modules/sessions/workspace-session-instruction-watch-service.d.ts +23 -0
  271. package/dist/server/modules/sessions/workspace-session-instruction-watch-service.js +122 -0
  272. package/dist/server/modules/sessions/workspace-session-instruction-watch-service.js.map +1 -0
  273. package/dist/server/modules/sessions/workspace-session-runtime-context-service.d.ts +15 -0
  274. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js +93 -10
  275. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js.map +1 -1
  276. package/dist/server/modules/skills/builtin-skills/codingns-assistant/SKILL.md +6 -7
  277. package/dist/server/modules/skills/builtin-skills/codingns-assistant/references/cli-workflow.md +2 -3
  278. package/dist/server/modules/system/host-resource-controller.d.ts +7 -0
  279. package/dist/server/modules/system/host-resource-controller.js +12 -0
  280. package/dist/server/modules/system/host-resource-controller.js.map +1 -0
  281. package/dist/server/modules/system/host-resource-service.d.ts +54 -0
  282. package/dist/server/modules/system/host-resource-service.js +162 -0
  283. package/dist/server/modules/system/host-resource-service.js.map +1 -0
  284. package/dist/server/modules/tasks/observability-service.d.ts +12 -2
  285. package/dist/server/modules/tasks/observability-service.js +13 -1
  286. package/dist/server/modules/tasks/observability-service.js.map +1 -1
  287. package/dist/server/modules/tasks/task-helper-client.d.ts +36 -2
  288. package/dist/server/modules/tasks/task-helper-client.js +201 -19
  289. package/dist/server/modules/tasks/task-helper-client.js.map +1 -1
  290. package/dist/server/modules/tasks/task-helper-pool.d.ts +37 -0
  291. package/dist/server/modules/tasks/task-helper-pool.js +173 -0
  292. package/dist/server/modules/tasks/task-helper-pool.js.map +1 -0
  293. package/dist/server/modules/tasks/task-helper-process-handlers.d.ts +27 -0
  294. package/dist/server/modules/tasks/task-helper-process-handlers.js +25 -1
  295. package/dist/server/modules/tasks/task-helper-process-handlers.js.map +1 -1
  296. package/dist/server/modules/tasks/task-helper-process.js +75 -26
  297. package/dist/server/modules/tasks/task-helper-process.js.map +1 -1
  298. package/dist/server/modules/tasks/task-helper-scheduling.d.ts +11 -0
  299. package/dist/server/modules/tasks/task-helper-scheduling.js +43 -0
  300. package/dist/server/modules/tasks/task-helper-scheduling.js.map +1 -0
  301. package/dist/server/modules/tasks/task-lane-executors.js +19 -3
  302. package/dist/server/modules/tasks/task-lane-executors.js.map +1 -1
  303. package/dist/server/modules/tasks/task-manager.d.ts +1 -0
  304. package/dist/server/modules/tasks/task-manager.js +3 -0
  305. package/dist/server/modules/tasks/task-manager.js.map +1 -1
  306. package/dist/server/modules/tasks/task-registry.d.ts +1 -0
  307. package/dist/server/modules/tasks/task-registry.js +3 -0
  308. package/dist/server/modules/tasks/task-registry.js.map +1 -1
  309. package/dist/server/modules/tasks/task-scheduler.d.ts +6 -0
  310. package/dist/server/modules/tasks/task-scheduler.js +162 -7
  311. package/dist/server/modules/tasks/task-scheduler.js.map +1 -1
  312. package/dist/server/modules/tasks/task-types.d.ts +28 -3
  313. package/dist/server/modules/tasks/task-types.js +14 -2
  314. package/dist/server/modules/tasks/task-types.js.map +1 -1
  315. package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.d.ts +68 -0
  316. package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.js +286 -0
  317. package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.js.map +1 -0
  318. package/dist/server/modules/workbench/workbench-controller.js +11 -1
  319. package/dist/server/modules/workbench/workbench-controller.js.map +1 -1
  320. package/dist/server/modules/workbench/workbench-service.d.ts +9 -2
  321. package/dist/server/modules/workbench/workbench-service.js +58 -18
  322. package/dist/server/modules/workbench/workbench-service.js.map +1 -1
  323. package/dist/server/modules/workspace/affairs-library-controller.d.ts +117 -0
  324. package/dist/server/modules/workspace/affairs-library-controller.js +164 -0
  325. package/dist/server/modules/workspace/affairs-library-controller.js.map +1 -0
  326. package/dist/server/modules/workspace/affairs-library-debug-log.d.ts +23 -0
  327. package/dist/server/modules/workspace/affairs-library-debug-log.js +107 -0
  328. package/dist/server/modules/workspace/affairs-library-debug-log.js.map +1 -0
  329. package/dist/server/modules/workspace/affairs-library-dirty-watch-service.d.ts +52 -0
  330. package/dist/server/modules/workspace/affairs-library-dirty-watch-service.js +555 -0
  331. package/dist/server/modules/workspace/affairs-library-dirty-watch-service.js.map +1 -0
  332. package/dist/server/modules/workspace/affairs-library-preview-link-service.d.ts +24 -0
  333. package/dist/server/modules/workspace/affairs-library-preview-link-service.js +157 -0
  334. package/dist/server/modules/workspace/affairs-library-preview-link-service.js.map +1 -0
  335. package/dist/server/modules/workspace/affairs-library-refresh-contract.d.ts +56 -0
  336. package/dist/server/modules/workspace/affairs-library-refresh-contract.js +48 -0
  337. package/dist/server/modules/workspace/affairs-library-refresh-contract.js.map +1 -0
  338. package/dist/server/modules/workspace/affairs-library-service.d.ts +344 -0
  339. package/dist/server/modules/workspace/affairs-library-service.js +3755 -0
  340. package/dist/server/modules/workspace/affairs-library-service.js.map +1 -0
  341. package/dist/server/modules/workspace/affairs-lightweight-session-controller.d.ts +78 -0
  342. package/dist/server/modules/workspace/affairs-lightweight-session-controller.js +146 -0
  343. package/dist/server/modules/workspace/affairs-lightweight-session-controller.js.map +1 -0
  344. package/dist/server/modules/workspace/affairs-lightweight-session-service.d.ts +133 -0
  345. package/dist/server/modules/workspace/affairs-lightweight-session-service.js +1447 -0
  346. package/dist/server/modules/workspace/affairs-lightweight-session-service.js.map +1 -0
  347. package/dist/server/modules/workspace/affairs-tag-controller.d.ts +107 -0
  348. package/dist/server/modules/workspace/affairs-tag-controller.js +97 -0
  349. package/dist/server/modules/workspace/affairs-tag-controller.js.map +1 -0
  350. package/dist/server/modules/workspace/affairs-tag-service.d.ts +153 -0
  351. package/dist/server/modules/workspace/affairs-tag-service.js +680 -0
  352. package/dist/server/modules/workspace/affairs-tag-service.js.map +1 -0
  353. package/dist/server/modules/workspace/workspace-controller.d.ts +2 -1
  354. package/dist/server/modules/workspace/workspace-controller.js +8 -2
  355. package/dist/server/modules/workspace/workspace-controller.js.map +1 -1
  356. package/dist/server/modules/workspace/workspace-service.js +60 -9
  357. package/dist/server/modules/workspace/workspace-service.js.map +1 -1
  358. package/dist/server/routes/affairs.d.ts +3 -0
  359. package/dist/server/routes/affairs.js +7 -0
  360. package/dist/server/routes/affairs.js.map +1 -0
  361. package/dist/server/routes/assistant.js +0 -5
  362. package/dist/server/routes/assistant.js.map +1 -1
  363. package/dist/server/routes/files.js +5 -0
  364. package/dist/server/routes/files.js.map +1 -1
  365. package/dist/server/routes/office.js +4 -0
  366. package/dist/server/routes/office.js.map +1 -1
  367. package/dist/server/routes/system.d.ts +2 -1
  368. package/dist/server/routes/system.js +2 -1
  369. package/dist/server/routes/system.js.map +1 -1
  370. package/dist/server/routes/workspaces.d.ts +4 -1
  371. package/dist/server/routes/workspaces.js +46 -1
  372. package/dist/server/routes/workspaces.js.map +1 -1
  373. package/dist/server/server/create-server.d.ts +6 -2
  374. package/dist/server/server/create-server.js +113 -32
  375. package/dist/server/server/create-server.js.map +1 -1
  376. package/dist/server/shared/http/error-handler.js +10 -0
  377. package/dist/server/shared/http/error-handler.js.map +1 -1
  378. package/dist/server/storage/repositories/affairs-assistant-session-snapshot-repository.d.ts +10 -0
  379. package/dist/server/storage/repositories/affairs-assistant-session-snapshot-repository.js +47 -0
  380. package/dist/server/storage/repositories/affairs-assistant-session-snapshot-repository.js.map +1 -0
  381. package/dist/server/storage/repositories/butler-profile-repository.js +7 -3
  382. package/dist/server/storage/repositories/butler-profile-repository.js.map +1 -1
  383. package/dist/server/storage/repositories/office-onlyoffice-setting-repository.d.ts +19 -0
  384. package/dist/server/storage/repositories/office-onlyoffice-setting-repository.js +55 -0
  385. package/dist/server/storage/repositories/office-onlyoffice-setting-repository.js.map +1 -0
  386. package/dist/server/storage/repositories/session-index-repository.js +9 -2
  387. package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
  388. package/dist/server/storage/repositories/user-affairs-library-setting-repository.d.ts +10 -0
  389. package/dist/server/storage/repositories/user-affairs-library-setting-repository.js +69 -0
  390. package/dist/server/storage/repositories/user-affairs-library-setting-repository.js.map +1 -0
  391. package/dist/server/storage/repositories/user-preference-profile-repository.js +6 -3
  392. package/dist/server/storage/repositories/user-preference-profile-repository.js.map +1 -1
  393. package/dist/server/storage/repositories/workspace-navigation-state-repository.d.ts +3 -0
  394. package/dist/server/storage/repositories/workspace-navigation-state-repository.js +47 -4
  395. package/dist/server/storage/repositories/workspace-navigation-state-repository.js.map +1 -1
  396. package/dist/server/storage/sqlite/client.js +230 -123
  397. package/dist/server/storage/sqlite/client.js.map +1 -1
  398. package/dist/server/storage/sqlite/schema.sql +48 -25
  399. package/dist/server/types/domain.d.ts +27 -20
  400. package/dist/server/ws/workbench-ws-hub.js +2 -2
  401. package/dist/server/ws/workbench-ws-hub.js.map +1 -1
  402. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js +0 -2
  403. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js.map +1 -1
  404. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +0 -6
  405. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
  406. package/package.json +1 -1
  407. package/dist/public/assets/AdaptiveButlerPage-B153lk5H.css +0 -1
  408. package/dist/public/assets/AdaptiveButlerPage-CJw8Ae62.js +0 -3
  409. package/dist/public/assets/DesktopModal-D_A8sgQU.js +0 -1
  410. package/dist/public/assets/DesktopWindowPage-DK7L7osV.js +0 -2
  411. package/dist/public/assets/FileContextPanel-BdCoubcJ.js +0 -1
  412. package/dist/public/assets/GitSidebar-BeZ0hj7A.js +0 -6
  413. package/dist/public/assets/MobileCreateSessionSheet-DfLMVu8q.js +0 -1
  414. package/dist/public/assets/MobileSheet-5kZ-w-gU.js +0 -1
  415. package/dist/public/assets/MobileWorkspaceSwitcherHeader-C6JMiOq_.js +0 -1
  416. package/dist/public/assets/PluginContainerPage-BlY-xJDh.js +0 -1
  417. package/dist/public/assets/SessionIndexPage-DkBp9Mqz.js +0 -1
  418. package/dist/public/assets/SettingsPage-C-ASmJAG.js +0 -2
  419. package/dist/public/assets/TerminalRuntimeFallbackModal-Bzum5nZ0.js +0 -1
  420. package/dist/public/assets/WorkbenchLayout-OFi6CWgH.js +0 -244
  421. package/dist/public/assets/WorkbenchShellRoute-B4XB8SwG.css +0 -1
  422. package/dist/public/assets/WorkbenchShellRoute-BAQe_E0O.js +0 -1
  423. package/dist/public/assets/WorkspaceDebugDetailPage-DhKa6e9y.js +0 -1
  424. package/dist/public/assets/file-tree-icon-Mg1DiBRX.js +0 -590
  425. package/dist/public/assets/index-C4t-vvqk.css +0 -1
  426. package/dist/public/assets/index-CL97fwWB.js +0 -42
  427. package/dist/public/assets/realtime-client-CLafKzzJ.js +0 -1
  428. package/dist/server/modules/butler/assistant-sandbox-cleanup-scheduler.d.ts +0 -32
  429. package/dist/server/modules/butler/assistant-sandbox-cleanup-scheduler.js +0 -93
  430. package/dist/server/modules/butler/assistant-sandbox-cleanup-scheduler.js.map +0 -1
  431. package/dist/server/modules/butler/assistant-sandbox-service.d.ts +0 -69
  432. package/dist/server/modules/butler/assistant-sandbox-service.js +0 -399
  433. package/dist/server/modules/butler/assistant-sandbox-service.js.map +0 -1
  434. package/dist/server/modules/channels/wechat-claw-client.d.ts +0 -51
  435. package/dist/server/modules/channels/wechat-claw-client.js +0 -245
  436. package/dist/server/modules/channels/wechat-claw-client.js.map +0 -1
  437. package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.d.ts +0 -18
  438. package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.js +0 -191
  439. package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.js.map +0 -1
@@ -1,399 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import { AppError } from "../../shared/errors/app-error.js";
4
- import { createId } from "../../shared/utils/id.js";
5
- import { nowIso } from "../../shared/utils/time.js";
6
- import { createTaskManager } from "../tasks/task-manager.js";
7
- import { HOST_TASK_TYPES } from "../tasks/task-types.js";
8
- const DEFAULT_SANDBOX_RETENTION_DAYS = 30;
9
- const DEFAULT_SANDBOX_CLEANUP_LIMIT = 20;
10
- export class AssistantSandboxService {
11
- repository;
12
- butlerProfileService;
13
- workspaceService;
14
- butlerProjectService;
15
- taskManager;
16
- constructor(repository, butlerProfileService, workspaceService, butlerProjectService, taskManager = createTaskManager()) {
17
- this.repository = repository;
18
- this.butlerProfileService = butlerProfileService;
19
- this.workspaceService = workspaceService;
20
- this.butlerProjectService = butlerProjectService;
21
- this.taskManager = taskManager;
22
- this.registerBackgroundTasks();
23
- }
24
- listSandboxes(filters) {
25
- return this.repository
26
- .list({
27
- userId: filters.userId,
28
- controlSessionId: filters.controlSessionId ?? null,
29
- statuses: filters.statuses,
30
- limit: filters.limit
31
- })
32
- .map((record) => this.toView(record));
33
- }
34
- getSandbox(sandboxId, userId) {
35
- return this.toView(this.requireSandbox(sandboxId, userId));
36
- }
37
- async createSandbox(input) {
38
- const timestamp = nowIso();
39
- const sandboxRootPath = this.ensureSandboxRootPath();
40
- const workspace = input.source.kind === "blank"
41
- ? this.createBlankWorkspace(sandboxRootPath, input)
42
- : await this.createCloneWorkspace(sandboxRootPath, input);
43
- const record = this.repository.create({
44
- id: createId(),
45
- userId: input.userId,
46
- workspaceId: workspace.id,
47
- controlSessionId: normalizeNullableText(input.controlSessionId),
48
- title: normalizeSandboxTitle(input.title, workspace.name),
49
- description: normalizeNullableText(input.description),
50
- sourceKind: input.source.kind,
51
- sourceRef: input.source.kind === "clone"
52
- ? normalizeNullableText(input.source.repositoryUrl)
53
- : workspace.path,
54
- visibility: "assistant_only",
55
- status: "active",
56
- purpose: normalizeNullableText(input.purpose),
57
- expiresAt: normalizeNullableIsoTime(input.expiresAt, "expiresAt"),
58
- promotedAt: null,
59
- createdAt: timestamp,
60
- updatedAt: timestamp
61
- });
62
- return this.toView(record);
63
- }
64
- promoteSandbox(sandboxId, userId, input = {}) {
65
- const current = this.requireSandbox(sandboxId, userId);
66
- const promotedAt = nowIso();
67
- const updated = this.repository.update({
68
- ...current,
69
- controlSessionId: null,
70
- visibility: "pinned",
71
- status: "active",
72
- expiresAt: null,
73
- promotedAt: current.promotedAt ?? promotedAt,
74
- updatedAt: promotedAt
75
- });
76
- if (input.mode === "project") {
77
- if (!this.butlerProjectService) {
78
- throw new AppError({
79
- statusCode: 500,
80
- errorCode: "ASSISTANT_SANDBOX_PROMOTE_UNAVAILABLE",
81
- detail: "当前环境未启用沙箱晋升为项目的能力"
82
- });
83
- }
84
- const workspace = this.workspaceService.getWorkspaceOrThrow(updated.workspaceId);
85
- this.butlerProjectService.create({
86
- workspaceId: workspace.id,
87
- name: normalizeNullableText(input.projectName) ?? workspace.name,
88
- repoRoot: workspace.repoRoot ?? workspace.path,
89
- defaultProvider: input.defaultProvider ?? null,
90
- config: {
91
- createdFrom: "assistant_sandbox",
92
- sandboxId: updated.id
93
- }
94
- });
95
- }
96
- return this.toView(updated);
97
- }
98
- markSandboxUsedByControlSession(sandboxId, userId, controlSessionId) {
99
- const current = this.requireSandbox(sandboxId, userId);
100
- const nextControlSessionId = normalizeNullableText(controlSessionId);
101
- if (current.controlSessionId === nextControlSessionId) {
102
- return this.toView(current);
103
- }
104
- const updated = this.repository.update({
105
- ...current,
106
- controlSessionId: nextControlSessionId,
107
- updatedAt: nowIso()
108
- });
109
- return this.toView(updated);
110
- }
111
- markSandboxOrphanedByWorkspaceId(workspaceId, userId) {
112
- const current = this.repository.findByWorkspaceId(workspaceId.trim());
113
- if (!current || current.userId !== userId) {
114
- return null;
115
- }
116
- if (current.status === "deleted") {
117
- return this.toView(current);
118
- }
119
- const updatedAt = nowIso();
120
- const nextStatus = isAutomaticCleanupProtected(current) ? current.status : "orphaned";
121
- const updated = this.repository.update({
122
- ...current,
123
- controlSessionId: null,
124
- status: nextStatus,
125
- expiresAt: nextStatus === "orphaned" ? addDaysIso(updatedAt, DEFAULT_SANDBOX_RETENTION_DAYS) : null,
126
- updatedAt
127
- });
128
- return this.toView(updated);
129
- }
130
- expireSandbox(sandboxId, userId) {
131
- const current = this.requireSandbox(sandboxId, userId);
132
- const updatedAt = nowIso();
133
- const updated = this.repository.update({
134
- ...current,
135
- status: "expired",
136
- updatedAt
137
- });
138
- return this.toView(updated);
139
- }
140
- removeSandbox(sandboxId, userId) {
141
- const current = this.requireSandbox(sandboxId, userId);
142
- const updatedAt = nowIso();
143
- try {
144
- this.workspaceService.removeWorkspace(current.workspaceId);
145
- }
146
- catch {
147
- // 工作区可能已被清理或移除;这里仍然收口元数据,避免残留不可操作沙箱。
148
- }
149
- const updated = this.repository.update({
150
- ...current,
151
- status: "deleted",
152
- updatedAt
153
- });
154
- return this.toView(updated);
155
- }
156
- async runDueCleanup(referenceAt) {
157
- return await this.taskManager.enqueue(HOST_TASK_TYPES.assistantSandboxTick, {
158
- key: "global",
159
- source: "assistant_sandbox.run_due_cleanup",
160
- input: {
161
- referenceAt
162
- }
163
- }).promise;
164
- }
165
- resolveWorkspaceId(sandboxId, userId) {
166
- const sandbox = this.requireSandbox(sandboxId, userId);
167
- if (sandbox.status === "deleted") {
168
- throw new AppError({
169
- statusCode: 409,
170
- errorCode: "ASSISTANT_SANDBOX_UNAVAILABLE",
171
- detail: "该沙箱已经删除,不能再用于启动会话"
172
- });
173
- }
174
- if (sandbox.status === "expired") {
175
- throw new AppError({
176
- statusCode: 409,
177
- errorCode: "ASSISTANT_SANDBOX_UNAVAILABLE",
178
- detail: "该沙箱已过期,不能再用于启动会话"
179
- });
180
- }
181
- if (sandbox.status === "orphaned") {
182
- throw new AppError({
183
- statusCode: 409,
184
- errorCode: "ASSISTANT_SANDBOX_UNAVAILABLE",
185
- detail: "该沙箱已经孤立,不能再用于启动会话"
186
- });
187
- }
188
- return sandbox.workspaceId;
189
- }
190
- registerBackgroundTasks() {
191
- if (!this.taskManager.has(HOST_TASK_TYPES.assistantSandboxTick)) {
192
- this.taskManager.register({
193
- taskType: HOST_TASK_TYPES.assistantSandboxTick,
194
- executionLane: "host_background",
195
- timeoutMs: 10_000,
196
- run: async ({ referenceAt }) => await this.runDueCleanupDirect(referenceAt)
197
- });
198
- }
199
- if (!this.taskManager.has(HOST_TASK_TYPES.assistantSandboxCleanup)) {
200
- this.taskManager.register({
201
- taskType: HOST_TASK_TYPES.assistantSandboxCleanup,
202
- executionLane: "host_background",
203
- timeoutMs: 10_000,
204
- run: async ({ sandboxId, referenceAt }) => {
205
- return this.cleanupSandboxDirect(sandboxId, referenceAt);
206
- }
207
- });
208
- }
209
- }
210
- async runDueCleanupDirect(referenceAt) {
211
- const dueSandboxes = this.repository.listDueCleanup(referenceAt, DEFAULT_SANDBOX_CLEANUP_LIMIT);
212
- const handles = dueSandboxes.map((sandbox) => this.taskManager.enqueue(HOST_TASK_TYPES.assistantSandboxCleanup, {
213
- key: sandbox.id,
214
- source: "assistant_sandbox.tick.cleanup",
215
- input: {
216
- sandboxId: sandbox.id,
217
- referenceAt
218
- }
219
- }));
220
- const results = await Promise.all(handles.map((handle) => handle.promise));
221
- const cleanedSandboxCount = results.filter(Boolean).length;
222
- return {
223
- dueSandboxCount: dueSandboxes.length,
224
- cleanedSandboxCount,
225
- idle: dueSandboxes.length === 0
226
- };
227
- }
228
- async cleanupSandboxDirect(sandboxId, referenceAt) {
229
- const current = this.repository.findById(sandboxId);
230
- if (!current || current.status !== "orphaned" || !current.expiresAt || current.expiresAt > referenceAt) {
231
- return false;
232
- }
233
- if (isAutomaticCleanupProtected(current)) {
234
- this.repository.update({
235
- ...current,
236
- status: "active",
237
- expiresAt: null,
238
- updatedAt: nowIso()
239
- });
240
- return false;
241
- }
242
- await this.removeSandboxDirectoryIfSafe(current);
243
- this.removeSandbox(current.id, current.userId);
244
- return true;
245
- }
246
- createBlankWorkspace(sandboxRootPath, input) {
247
- if (input.source.kind !== "blank") {
248
- throw new Error("invalid blank sandbox input");
249
- }
250
- const directoryName = normalizeSandboxDirectoryName(input.source.directoryName, input.title);
251
- const sandboxPath = path.join(sandboxRootPath, directoryName);
252
- if (fs.existsSync(sandboxPath)) {
253
- throw new AppError({
254
- statusCode: 409,
255
- errorCode: "ASSISTANT_SANDBOX_EXISTS",
256
- detail: "目标沙箱目录已存在,请换一个名称",
257
- field: "directoryName"
258
- });
259
- }
260
- fs.mkdirSync(sandboxPath, { recursive: true });
261
- return this.workspaceService.importWorkspace(sandboxPath, normalizeNullableText(input.title) ?? directoryName);
262
- }
263
- async createCloneWorkspace(sandboxRootPath, input) {
264
- if (input.source.kind !== "clone") {
265
- throw new Error("invalid clone sandbox input");
266
- }
267
- return await this.workspaceService.cloneWorkspace({
268
- repositoryUrl: input.source.repositoryUrl,
269
- parentPath: sandboxRootPath,
270
- directoryName: normalizeSandboxDirectoryName(input.source.directoryName, input.title, input.source.repositoryUrl),
271
- name: normalizeNullableText(input.title) ?? undefined,
272
- auth: input.source.auth
273
- });
274
- }
275
- ensureSandboxRootPath() {
276
- const sandboxRootPath = this.resolveSandboxRootPath();
277
- fs.mkdirSync(sandboxRootPath, { recursive: true });
278
- return sandboxRootPath;
279
- }
280
- resolveSandboxRootPath() {
281
- const profile = this.butlerProfileService.getProfile();
282
- if (!profile) {
283
- throw new AppError({
284
- statusCode: 409,
285
- errorCode: "BUTLER_PROFILE_NOT_INITIALIZED",
286
- detail: "代码助手尚未完成初始化,不能创建沙箱工作区"
287
- });
288
- }
289
- const workspacePath = profile.workspacePath;
290
- return path.join(path.resolve(workspacePath), "sandboxes");
291
- }
292
- async removeSandboxDirectoryIfSafe(record) {
293
- const sandboxPath = this.toView(record).workspace?.path?.trim() || null;
294
- if (!sandboxPath) {
295
- return;
296
- }
297
- const resolvedSandboxPath = path.resolve(sandboxPath);
298
- const sandboxRootPath = this.resolveSandboxRootPath();
299
- if (!isPathInsideDirectory(resolvedSandboxPath, sandboxRootPath)) {
300
- throw new AppError({
301
- statusCode: 409,
302
- errorCode: "ASSISTANT_SANDBOX_DELETE_PATH_UNSAFE",
303
- detail: "沙箱目录不在允许清理的沙箱根目录内,已拒绝自动删除"
304
- });
305
- }
306
- await fs.promises.rm(resolvedSandboxPath, {
307
- recursive: true,
308
- force: true
309
- });
310
- }
311
- requireSandbox(sandboxId, userId) {
312
- const sandbox = this.repository.findById(sandboxId.trim());
313
- if (!sandbox || sandbox.userId !== userId) {
314
- throw new AppError({
315
- statusCode: 404,
316
- errorCode: "ASSISTANT_SANDBOX_NOT_FOUND",
317
- detail: "未找到对应的助手沙箱"
318
- });
319
- }
320
- return sandbox;
321
- }
322
- toView(record) {
323
- try {
324
- return {
325
- ...record,
326
- workspace: this.workspaceService.getWorkspaceOrThrow(record.workspaceId)
327
- };
328
- }
329
- catch {
330
- return {
331
- ...record,
332
- workspace: null
333
- };
334
- }
335
- }
336
- }
337
- function isAutomaticCleanupProtected(sandbox) {
338
- return sandbox.visibility === "pinned" || sandbox.promotedAt !== null;
339
- }
340
- function normalizeNullableText(value) {
341
- const normalized = value?.trim();
342
- return normalized ? normalized : null;
343
- }
344
- function normalizeSandboxTitle(input, fallback) {
345
- return normalizeNullableText(input) ?? fallback;
346
- }
347
- function normalizeSandboxDirectoryName(requestedName, title, repositoryUrl) {
348
- const normalized = normalizeNullableText(requestedName)
349
- ?? slugifyPathSegment(normalizeNullableText(title) ?? inferRepositoryName(repositoryUrl) ?? `sandbox-${createId().slice(0, 8)}`);
350
- if (!normalized) {
351
- throw new AppError({
352
- statusCode: 400,
353
- errorCode: "INVALID_INPUT",
354
- detail: "沙箱目录名不能为空",
355
- field: "directoryName"
356
- });
357
- }
358
- return normalized;
359
- }
360
- function inferRepositoryName(repositoryUrl) {
361
- const normalized = normalizeNullableText(repositoryUrl);
362
- if (!normalized) {
363
- return null;
364
- }
365
- const tail = normalized.split("/").pop() ?? "";
366
- return tail.replace(/\.git$/i, "").trim() || null;
367
- }
368
- function slugifyPathSegment(value) {
369
- const normalized = value
370
- .trim()
371
- .replace(/[^a-zA-Z0-9._-]+/g, "-")
372
- .replace(/-+/g, "-")
373
- .replace(/^-|-$/g, "");
374
- return normalized.slice(0, 64);
375
- }
376
- function normalizeNullableIsoTime(value, field) {
377
- const normalized = normalizeNullableText(value);
378
- if (!normalized) {
379
- return null;
380
- }
381
- const timestamp = Date.parse(normalized);
382
- if (Number.isNaN(timestamp)) {
383
- throw new AppError({
384
- statusCode: 400,
385
- errorCode: "INVALID_INPUT",
386
- detail: `${field} 必须是合法的 ISO 时间`,
387
- field
388
- });
389
- }
390
- return new Date(timestamp).toISOString();
391
- }
392
- function addDaysIso(referenceAt, days) {
393
- return new Date(new Date(referenceAt).getTime() + days * 24 * 60 * 60 * 1000).toISOString();
394
- }
395
- function isPathInsideDirectory(candidatePath, parentPath) {
396
- const relative = path.relative(path.resolve(parentPath), path.resolve(candidatePath));
397
- return relative === "" || (!relative.startsWith("..") && !path.isAbsolute(relative));
398
- }
399
- //# sourceMappingURL=assistant-sandbox-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assistant-sandbox-service.js","sourceRoot":"","sources":["../../../../src/modules/butler/assistant-sandbox-service.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- export type WechatClawLoginStatus = "not_logged_in" | "waiting_scan" | "scan_confirmed" | "active" | "expired";
2
- export interface WechatClawStartLoginResult {
3
- sessionKey: string;
4
- qrcode: string;
5
- qrcodeUrl: string | null;
6
- status: WechatClawLoginStatus;
7
- }
8
- export interface WechatClawPollLoginResult {
9
- status: WechatClawLoginStatus;
10
- botToken: string | null;
11
- baseUrl: string | null;
12
- remoteBotId: string | null;
13
- boundUserId: string | null;
14
- redirectHost: string | null;
15
- }
16
- export interface WechatClawPollMessagesResult {
17
- nextCursor: string | null;
18
- longPollingTimeoutMs: number | null;
19
- messages: WechatClawInboundMessage[];
20
- }
21
- export interface WechatClawInboundMessage {
22
- messageId: string;
23
- fromUserId: string | null;
24
- toUserId: string | null;
25
- text: string | null;
26
- timestamp: string | null;
27
- contextToken: string | null;
28
- rawPayload: Record<string, unknown>;
29
- }
30
- export interface WechatClawSendTextResult {
31
- messageRef: string | null;
32
- }
33
- export declare function startWechatClawLogin(): Promise<WechatClawStartLoginResult>;
34
- export declare function pollWechatClawLoginStatus(options: {
35
- qrcode: string;
36
- authBaseUrl?: string | null;
37
- }): Promise<WechatClawPollLoginResult>;
38
- export declare function pollWechatClawMessages(options: {
39
- baseUrl?: string | null;
40
- botToken: string;
41
- cursor?: string | null;
42
- timeoutMs?: number;
43
- }): Promise<WechatClawPollMessagesResult>;
44
- export declare function sendWechatClawText(options: {
45
- baseUrl?: string | null;
46
- botToken: string;
47
- toUserId: string;
48
- contextToken: string;
49
- text: string;
50
- }): Promise<WechatClawSendTextResult>;
51
- export declare function normalizeWechatClawBaseUrl(value?: string | null): string;