@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
@@ -62,7 +62,6 @@ import { WorktreeManager } from "../modules/worktree/worktree-manager.js";
62
62
  import { WorktreeSyncService } from "../modules/worktree/worktree-sync-service.js";
63
63
  import { WorkspaceService } from "../modules/workspace/workspace-service.js";
64
64
  import { AssistantAutomationRunRepository } from "../storage/repositories/assistant-automation-run-repository.js";
65
- import { AssistantSandboxWorkspaceRepository } from "../storage/repositories/assistant-sandbox-workspace-repository.js";
66
65
  import { AssistantAutomationTaskRepository } from "../storage/repositories/assistant-automation-task-repository.js";
67
66
  import { AuthDeviceRepository } from "../storage/repositories/auth-device-repository.js";
68
67
  import { AuthDeviceSessionRepository } from "../storage/repositories/auth-device-session-repository.js";
@@ -71,6 +70,7 @@ import { AuthTokenRepository } from "../storage/repositories/auth-token-reposito
71
70
  import { AuthLoginAttemptRepository } from "../storage/repositories/auth-login-attempt-repository.js";
72
71
  import { AuthUserRepository } from "../storage/repositories/auth-user-repository.js";
73
72
  import { AiFallbackEditRepository } from "../storage/repositories/ai-fallback-edit-repository.js";
73
+ import { AffairsAssistantSessionSnapshotRepository } from "../storage/repositories/affairs-assistant-session-snapshot-repository.js";
74
74
  import { BootstrapStateRepository } from "../storage/repositories/bootstrap-state-repository.js";
75
75
  import { ButlerControlTimerRepository } from "../storage/repositories/butler-control-timer-repository.js";
76
76
  import { ButlerControlSessionRepository } from "../storage/repositories/butler-control-session-repository.js";
@@ -116,6 +116,7 @@ import { ManagedSkillRepository } from "../storage/repositories/managed-skill-re
116
116
  import { OpenCliCatalogEntryRepository } from "../storage/repositories/opencli-catalog-entry-repository.js";
117
117
  import { OpenCliProviderRepository } from "../storage/repositories/opencli-provider-repository.js";
118
118
  import { OpenCliRuntimeProfileRepository } from "../storage/repositories/opencli-runtime-profile-repository.js";
119
+ import { OfficeOnlyOfficeSettingRepository } from "../storage/repositories/office-onlyoffice-setting-repository.js";
119
120
  import { PluginDefinitionRepository } from "../storage/repositories/plugin-definition-repository.js";
120
121
  import { PluginEnablementRepository } from "../storage/repositories/plugin-enablement-repository.js";
121
122
  import { PluginPermissionGrantRepository } from "../storage/repositories/plugin-permission-grant-repository.js";
@@ -149,6 +150,7 @@ import { TerminalLogFileRepository } from "../storage/repositories/terminal-log-
149
150
  import { TerminalLogSegmentRepository } from "../storage/repositories/terminal-log-segment-repository.js";
150
151
  import { TerminalRuntimeSessionRepository } from "../storage/repositories/terminal-runtime-session-repository.js";
151
152
  import { UserPreferenceProfileRepository } from "../storage/repositories/user-preference-profile-repository.js";
153
+ import { UserAffairsLibrarySettingRepository } from "../storage/repositories/user-affairs-library-setting-repository.js";
152
154
  import { UserQuickPhrasePreferenceRepository } from "../storage/repositories/user-quick-phrase-preference-repository.js";
153
155
  import { WorkspaceRepository } from "../storage/repositories/workspace-repository.js";
154
156
  import { WorkspaceWorktreeRepository } from "../storage/repositories/workspace-worktree-repository.js";
@@ -174,10 +176,11 @@ export declare function createServer(config: HostConfig): {
174
176
  authLoginAttemptRepository: AuthLoginAttemptRepository;
175
177
  assistantAutomationTaskRepository: AssistantAutomationTaskRepository;
176
178
  assistantAutomationRunRepository: AssistantAutomationRunRepository;
177
- assistantSandboxWorkspaceRepository: AssistantSandboxWorkspaceRepository;
178
179
  workspaceRepository: WorkspaceRepository;
179
180
  workspaceWorktreeRepository: WorkspaceWorktreeRepository;
180
181
  workspaceNavigationStateRepository: WorkspaceNavigationStateRepository;
182
+ affairsAssistantSessionSnapshotRepository: AffairsAssistantSessionSnapshotRepository;
183
+ userAffairsLibrarySettingRepository: UserAffairsLibrarySettingRepository;
181
184
  parallelSessionGroupRepository: ParallelSessionGroupRepository;
182
185
  parallelSessionMemberRepository: ParallelSessionMemberRepository;
183
186
  sessionIsolatedWorkspaceRepository: SessionIsolatedWorkspaceRepository;
@@ -193,6 +196,7 @@ export declare function createServer(config: HostConfig): {
193
196
  officeConnectorRepository: OfficeConnectorRepository;
194
197
  officeAuditEventRepository: OfficeAuditEventRepository;
195
198
  officeRollbackRecordRepository: OfficeRollbackRecordRepository;
199
+ officeOnlyOfficeSettingRepository: OfficeOnlyOfficeSettingRepository;
196
200
  browserProfileRepository: BrowserProfileRepository;
197
201
  pluginDefinitionRepository: PluginDefinitionRepository;
198
202
  pluginEnablementRepository: PluginEnablementRepository;
@@ -9,8 +9,6 @@ import { AssistantCapabilityService } from "../modules/assistant-capability/assi
9
9
  import { BootstrapController } from "../modules/bootstrap/bootstrap-controller.js";
10
10
  import { BootstrapService } from "../modules/bootstrap/bootstrap-service.js";
11
11
  import { AssistantAutomationService } from "../modules/butler/assistant-automation-service.js";
12
- import { AssistantSandboxService } from "../modules/butler/assistant-sandbox-service.js";
13
- import { AssistantSandboxCleanupScheduler } from "../modules/butler/assistant-sandbox-cleanup-scheduler.js";
14
12
  import { ButlerControlTimerScheduler } from "../modules/butler/butler-control-timer-scheduler.js";
15
13
  import { ButlerControlTimerService } from "../modules/butler/butler-control-timer-service.js";
16
14
  import { ButlerControlSessionService } from "../modules/butler/butler-control-session-service.js";
@@ -71,8 +69,10 @@ import { FileContentService } from "../modules/file/file-content-service.js";
71
69
  import { FileContextController } from "../modules/file/file-context-controller.js";
72
70
  import { FileContextService } from "../modules/file/file-context-service.js";
73
71
  import { FileController } from "../modules/file/file-controller.js";
72
+ import { WorkspaceIndexApplyService } from "../modules/file/workspace-index-apply-service.js";
74
73
  import { FilePreviewLinkService } from "../modules/file/file-preview-link-service.js";
75
74
  import { FilePreviewService } from "../modules/file/file-preview-service.js";
75
+ import { RecentModifiedFileService } from "../modules/file/recent-modified-file-service.js";
76
76
  import { FileSearchService } from "../modules/file/file-search-service.js";
77
77
  import { FileTreeService } from "../modules/file/file-tree-service.js";
78
78
  import { FileVersionChecker } from "../modules/file/file-version-checker.js";
@@ -89,6 +89,7 @@ import { GitReadService } from "../modules/git/git-read-service.js";
89
89
  import { GitRuleRepository } from "../modules/git/git-rule-repository.js";
90
90
  import { GitWriteService } from "../modules/git/git-write-service.js";
91
91
  import { OfficeController } from "../modules/office/office-controller.js";
92
+ import { OnlyOfficeIntegrationService } from "../modules/office/onlyoffice-integration-service.js";
92
93
  import { OfficePreviewLinkService } from "../modules/office/office-preview-link-service.js";
93
94
  import { OfficeService } from "../modules/office/office-service.js";
94
95
  import { OpsRuntimeController } from "../modules/ops-runtime/ops-runtime-controller.js";
@@ -109,6 +110,8 @@ import { RelayTunnelService } from "../modules/relay-tunnel/relay-tunnel-service
109
110
  import { CcSwitchAdapter } from "../modules/model-switch/cc-switch-adapter.js";
110
111
  import { ModelSwitchController } from "../modules/model-switch/model-switch-controller.js";
111
112
  import { ModelSwitchService } from "../modules/model-switch/model-switch-service.js";
113
+ import { HostResourceController } from "../modules/system/host-resource-controller.js";
114
+ import { HostResourceService } from "../modules/system/host-resource-service.js";
112
115
  import { ParallelSessionController } from "../modules/parallel-sessions/parallel-session-controller.js";
113
116
  import { ParallelSessionGroupService } from "../modules/parallel-sessions/parallel-session-group-service.js";
114
117
  import { SessionIsolatedWorkspaceService } from "../modules/parallel-sessions/session-isolated-workspace-service.js";
@@ -143,6 +146,7 @@ import { SessionLiveRuntimeService } from "../modules/sessions/session-live-runt
143
146
  import { SessionProviderConfigService } from "../modules/sessions/session-provider-config-service.js";
144
147
  import { SessionProviderUsageLimitGuardService } from "../modules/sessions/session-provider-usage-guard-service.js";
145
148
  import { SessionMessageAttachmentService } from "../modules/sessions/session-message-attachment-service.js";
149
+ import { WorkspaceSessionInstructionWatchService } from "../modules/sessions/workspace-session-instruction-watch-service.js";
146
150
  import { WorkspaceSessionAuthService } from "../modules/sessions/workspace-session-auth-service.js";
147
151
  import { WorkspaceSessionRuntimeContextService } from "../modules/sessions/workspace-session-runtime-context-service.js";
148
152
  import { EventLoopMonitor } from "../modules/tasks/event-loop-monitor.js";
@@ -151,13 +155,14 @@ import { RuntimeObservabilityService } from "../modules/tasks/observability-serv
151
155
  import { SchedulerMetrics } from "../modules/tasks/scheduler-metrics.js";
152
156
  import { TaskActivityLog } from "../modules/tasks/task-activity-log.js";
153
157
  import { createTaskManager } from "../modules/tasks/task-manager.js";
154
- import { disposeSharedTaskHelperProcessClient } from "../modules/tasks/task-helper-client.js";
158
+ import { disposeSharedTaskHelperPool } from "../modules/tasks/task-helper-pool.js";
155
159
  import { createHostTaskLaneExecutors } from "../modules/tasks/task-lane-executors.js";
156
160
  import { CommandTemplateService } from "../modules/terminal/command-template-service.js";
157
161
  import { TerminalController } from "../modules/terminal/terminal-controller.js";
158
162
  import { TemplateReverseProxyService } from "../modules/terminal/template-reverse-proxy-service.js";
159
163
  import { TerminalService } from "../modules/terminal/terminal-service.js";
160
164
  import { CodexArchiveWatcher } from "../modules/workbench/codex-archive-watcher.js";
165
+ import { AffairsAssistantSessionSnapshotService } from "../modules/workbench/affairs-assistant-session-snapshot-service.js";
161
166
  import { WorkbenchController } from "../modules/workbench/workbench-controller.js";
162
167
  import { WorkbenchService } from "../modules/workbench/workbench-service.js";
163
168
  import { WorkspacePanelSnapshotService } from "../modules/workbench/workspace-panel-snapshot-service.js";
@@ -168,8 +173,18 @@ import { WorktreeMergeService } from "../modules/worktree/worktree-merge-service
168
173
  import { WorktreeManager } from "../modules/worktree/worktree-manager.js";
169
174
  import { WorktreeSyncService } from "../modules/worktree/worktree-sync-service.js";
170
175
  import { WorkspaceController } from "../modules/workspace/workspace-controller.js";
176
+ import { AffairsLibraryController } from "../modules/workspace/affairs-library-controller.js";
177
+ import { getAffairsLibraryDebugLogPath } from "../modules/workspace/affairs-library-debug-log.js";
178
+ import { AffairsLibraryDirtyWatchService } from "../modules/workspace/affairs-library-dirty-watch-service.js";
179
+ import { AffairsLightweightSessionController } from "../modules/workspace/affairs-lightweight-session-controller.js";
180
+ import { AffairsLightweightSessionService } from "../modules/workspace/affairs-lightweight-session-service.js";
181
+ import { AffairsLibraryPreviewLinkService } from "../modules/workspace/affairs-library-preview-link-service.js";
182
+ import { AffairsLibraryService } from "../modules/workspace/affairs-library-service.js";
183
+ import { AffairsTagController } from "../modules/workspace/affairs-tag-controller.js";
184
+ import { AffairsTagService } from "../modules/workspace/affairs-tag-service.js";
171
185
  import { WorkspaceService } from "../modules/workspace/workspace-service.js";
172
186
  import { registerAuthRoutes } from "../routes/auth.js";
187
+ import { registerAffairsRoutes } from "../routes/affairs.js";
173
188
  import { registerAssistantCapabilityRoutes } from "../routes/assistant.js";
174
189
  import { registerButlerRoutes } from "../routes/butler.js";
175
190
  import { registerBrowserRuntimeRoutes } from "../routes/browser-runtime.js";
@@ -203,7 +218,6 @@ import { DemoCleanupService, DemoOnlineTracker } from "../modules/demo/demo-clea
203
218
  import { setErrorHandler } from "../shared/http/error-handler.js";
204
219
  import { startTerminalDebugEventLoopLagMonitor } from "../shared/utils/terminal-debug-log.js";
205
220
  import { AssistantAutomationRunRepository } from "../storage/repositories/assistant-automation-run-repository.js";
206
- import { AssistantSandboxWorkspaceRepository } from "../storage/repositories/assistant-sandbox-workspace-repository.js";
207
221
  import { AssistantAutomationTaskRepository } from "../storage/repositories/assistant-automation-task-repository.js";
208
222
  import { AuthDeviceRepository } from "../storage/repositories/auth-device-repository.js";
209
223
  import { AuthDeviceSessionRepository } from "../storage/repositories/auth-device-session-repository.js";
@@ -212,6 +226,7 @@ import { AuthTokenRepository } from "../storage/repositories/auth-token-reposito
212
226
  import { AuthLoginAttemptRepository } from "../storage/repositories/auth-login-attempt-repository.js";
213
227
  import { AuthUserRepository } from "../storage/repositories/auth-user-repository.js";
214
228
  import { AiFallbackEditRepository } from "../storage/repositories/ai-fallback-edit-repository.js";
229
+ import { AffairsAssistantSessionSnapshotRepository } from "../storage/repositories/affairs-assistant-session-snapshot-repository.js";
215
230
  import { BootstrapStateRepository } from "../storage/repositories/bootstrap-state-repository.js";
216
231
  import { ButlerControlTimerRepository } from "../storage/repositories/butler-control-timer-repository.js";
217
232
  import { ButlerControlSessionRepository } from "../storage/repositories/butler-control-session-repository.js";
@@ -257,6 +272,7 @@ import { ManagedSkillRepository } from "../storage/repositories/managed-skill-re
257
272
  import { OpenCliCatalogEntryRepository } from "../storage/repositories/opencli-catalog-entry-repository.js";
258
273
  import { OpenCliProviderRepository } from "../storage/repositories/opencli-provider-repository.js";
259
274
  import { OpenCliRuntimeProfileRepository } from "../storage/repositories/opencli-runtime-profile-repository.js";
275
+ import { OfficeOnlyOfficeSettingRepository } from "../storage/repositories/office-onlyoffice-setting-repository.js";
260
276
  import { PluginDefinitionRepository } from "../storage/repositories/plugin-definition-repository.js";
261
277
  import { PluginEnablementRepository } from "../storage/repositories/plugin-enablement-repository.js";
262
278
  import { PluginPermissionGrantRepository } from "../storage/repositories/plugin-permission-grant-repository.js";
@@ -290,6 +306,7 @@ import { TerminalLogFileRepository } from "../storage/repositories/terminal-log-
290
306
  import { TerminalLogSegmentRepository } from "../storage/repositories/terminal-log-segment-repository.js";
291
307
  import { TerminalRuntimeSessionRepository } from "../storage/repositories/terminal-runtime-session-repository.js";
292
308
  import { UserPreferenceProfileRepository } from "../storage/repositories/user-preference-profile-repository.js";
309
+ import { UserAffairsLibrarySettingRepository } from "../storage/repositories/user-affairs-library-setting-repository.js";
293
310
  import { UserQuickPhrasePreferenceRepository } from "../storage/repositories/user-quick-phrase-preference-repository.js";
294
311
  import { WorkspaceRepository } from "../storage/repositories/workspace-repository.js";
295
312
  import { WorkspaceWorktreeRepository } from "../storage/repositories/workspace-worktree-repository.js";
@@ -311,6 +328,10 @@ import { PluginProcessRunner } from "../modules/plugins/plugin-process-runner.js
311
328
  import { PluginRuntimeService } from "../modules/plugins/plugin-runtime-service.js";
312
329
  import { PluginSchedulerService } from "../modules/plugins/plugin-scheduler-service.js";
313
330
  export function createServer(config) {
331
+ const affairsLibraryDebugLogPath = getAffairsLibraryDebugLogPath();
332
+ if (affairsLibraryDebugLogPath) {
333
+ process.env.CODINGNS_AFFAIRS_DEBUG_LOG_DIR = path.dirname(affairsLibraryDebugLogPath);
334
+ }
314
335
  // Demo 模式下覆盖 token TTL 为 15 分钟
315
336
  const effectiveConfig = config.demoMode
316
337
  ? { ...config, accessTokenTtlSeconds: 900, refreshTokenTtlSeconds: 900 }
@@ -333,10 +354,11 @@ export function createServer(config) {
333
354
  authLoginAttemptRepository: new AuthLoginAttemptRepository(database.db),
334
355
  assistantAutomationTaskRepository: new AssistantAutomationTaskRepository(database.db),
335
356
  assistantAutomationRunRepository: new AssistantAutomationRunRepository(database.db),
336
- assistantSandboxWorkspaceRepository: new AssistantSandboxWorkspaceRepository(database.db),
337
357
  workspaceRepository: new WorkspaceRepository(database.db),
338
358
  workspaceWorktreeRepository: new WorkspaceWorktreeRepository(database.db),
339
359
  workspaceNavigationStateRepository: new WorkspaceNavigationStateRepository(database.db),
360
+ affairsAssistantSessionSnapshotRepository: new AffairsAssistantSessionSnapshotRepository(database.db),
361
+ userAffairsLibrarySettingRepository: new UserAffairsLibrarySettingRepository(database.db),
340
362
  parallelSessionGroupRepository: new ParallelSessionGroupRepository(database.db),
341
363
  parallelSessionMemberRepository: new ParallelSessionMemberRepository(database.db),
342
364
  sessionIsolatedWorkspaceRepository: new SessionIsolatedWorkspaceRepository(database.db),
@@ -352,6 +374,7 @@ export function createServer(config) {
352
374
  officeConnectorRepository: new OfficeConnectorRepository(database.db),
353
375
  officeAuditEventRepository: new OfficeAuditEventRepository(database.db),
354
376
  officeRollbackRecordRepository: new OfficeRollbackRecordRepository(database.db),
377
+ officeOnlyOfficeSettingRepository: new OfficeOnlyOfficeSettingRepository(database.db),
355
378
  browserProfileRepository: new BrowserProfileRepository(database.db),
356
379
  pluginDefinitionRepository: new PluginDefinitionRepository(database.db),
357
380
  pluginEnablementRepository: new PluginEnablementRepository(database.db),
@@ -445,6 +468,7 @@ export function createServer(config) {
445
468
  const workspaceService = new WorkspaceService(repositories.workspaceRepository, gitCommandRunner, repositories.workspaceNavigationStateRepository, butlerProfileService, repositories.workspaceWorktreeRepository, taskManager, repositories.sessionIsolatedWorkspaceRepository);
446
469
  const fileAccessGuard = new FileAccessGuard(workspaceService, app.log);
447
470
  const recentFileService = new RecentFileService(repositories.recentFileRepository);
471
+ const recentModifiedFileService = new RecentModifiedFileService(fileAccessGuard);
448
472
  const fileVersionChecker = new FileVersionChecker();
449
473
  const fileTreeService = new FileTreeService(fileAccessGuard);
450
474
  const fileSearchService = new FileSearchService(fileAccessGuard);
@@ -452,6 +476,7 @@ export function createServer(config) {
452
476
  const filePreviewService = new FilePreviewService(fileAccessGuard, fileContentService, recentFileService);
453
477
  const workspaceFileBridgeWatchService = new WorkspaceFileBridgeWatchService(fileAccessGuard, app.log);
454
478
  const workspaceFileBridgeService = new WorkspaceFileBridgeService(workspaceService, fileAccessGuard, app.log, workspaceFileBridgeWatchService);
479
+ const workspaceIndexApplyService = new WorkspaceIndexApplyService(workspaceService, app.log);
455
480
  const filePreviewLinkService = new FilePreviewLinkService(fileAccessGuard, config.filePreviewTokenSecret);
456
481
  const pluginRegistryService = new PluginRegistryService(repositories.pluginDefinitionRepository, repositories.pluginEnablementRepository, repositories.pluginAuditEventRepository, config.pluginRootDir, app.log);
457
482
  pluginRegistryService.syncPluginsFromDisk();
@@ -523,6 +548,22 @@ export function createServer(config) {
523
548
  claudeCodeHomeDir: config.claudeCodeHomeDir,
524
549
  runtimeStorageRootDir: path.dirname(config.databasePath)
525
550
  });
551
+ const workspaceSessionInstructionWatchService = new WorkspaceSessionInstructionWatchService(workspaceService, ({ workspaceId, workspacePath, reason }) => {
552
+ const result = workspaceSessionRuntimeContextService.refreshWorkspaceInstructionBundlesForWorkspace({
553
+ workspaceId,
554
+ workspacePath
555
+ });
556
+ app.log.info({
557
+ workspaceId,
558
+ workspacePath,
559
+ reason,
560
+ refreshedCount: result.refreshedCount,
561
+ scannedRuntimeHomeDirs: result.scannedRuntimeHomeDirs,
562
+ updatedInstructionFiles: result.updatedInstructionFiles,
563
+ source: "workspace_session.agents_watch"
564
+ }, "工作区会话 instruction bundle 已按最新 AGENTS.md 重写");
565
+ }, app.log);
566
+ workspaceSessionInstructionWatchService.syncAll();
526
567
  const sessionProviderConfigService = new SessionProviderConfigService(config, ccSwitchAdapter, openCliRuntimeResolver, openCliBridgeSkillService, workspaceSessionRuntimeContextService);
527
568
  const skillTargetAdapters = createDefaultSkillTargetAdapters(config);
528
569
  const skillManagerService = new SkillManagerService(repositories.managedSkillRepository, repositories.skillTargetBindingRepository, skillTargetAdapters, {
@@ -556,7 +597,7 @@ export function createServer(config) {
556
597
  const providerRuntimeStateService = new ProviderRuntimeStateService(config, repositories.providerRuntimeStateRepository);
557
598
  const sessionHistoryService = new SessionHistoryService(database.db, repositories.workspaceRepository, repositories.sessionBindingRepository, sessionChangedFileService, repositories.sessionIndexRepository, sessionMessageAttachmentService, repositories.sessionStateRepository, repositories.sessionStatusSnapshotRepository, config, sessionActivityAuthorityService, repositories.sessionMessageOriginRepository, repositories.sessionForkRepository, {}, taskManager, repositories.parallelSessionGroupRepository, repositories.parallelSessionMemberRepository, repositories.sessionIsolatedWorkspaceRepository, sessionProviderConfigService, repositories.providerControlRepository, providerRuntimeStateService);
558
599
  const providerCatalogService = new ProviderCatalogService(config, repositories.providerControlRepository, providerRuntimeStateService);
559
- runtimeObservabilityService = new RuntimeObservabilityService(() => sessionHistoryService.observeBackgroundTaskMetrics(), () => schedulerMetrics.observe(), eventLoopMonitor, taskActivityLog);
600
+ runtimeObservabilityService = new RuntimeObservabilityService(() => sessionHistoryService.observeBackgroundTaskMetrics(), () => taskManager.listDefinitions(), () => schedulerMetrics.observe(), eventLoopMonitor, taskActivityLog);
560
601
  const sessionLiveRuntimeService = new SessionLiveRuntimeService(sessionHistoryService, sessionMessageAttachmentService, workspaceService, sessionChangedFileService, repositories.sessionBindingRepository, repositories.authUserRepository, repositories.sessionSendQueueRepository, repositories.sessionIndexRepository, repositories.sessionStateRepository, repositories.sessionStatusSnapshotRepository, sessionProviderConfigService, config, sessionActivityAuthorityService, openCliSessionPromptService, workspaceSessionRuntimeContextService);
561
602
  sessionHistoryService.registerLiveActivityObservationResolver((sessionId) => sessionLiveRuntimeService.resolveLiveActivityObservation(sessionId));
562
603
  const butlerRuntimeRootDir = path.join(path.dirname(config.databasePath), "butler-runtime");
@@ -588,15 +629,7 @@ export function createServer(config) {
588
629
  ]);
589
630
  const sessionProviderUsageLimitGuardService = new SessionProviderUsageLimitGuardService(sessionHistoryService);
590
631
  let parallelSessionGroupService;
591
- const workbenchService = new WorkbenchService(repositories.workspaceRepository, repositories.workspaceNavigationStateRepository, sessionHistoryService, butlerProfileService, repositories.butlerControlSessionRepository, repositories.workspaceWorktreeRepository, taskManager, repositories.sessionIsolatedWorkspaceRepository);
592
- const butlerProjectService = new ButlerProjectService(repositories.butlerProjectRepository, repositories.butlerSessionRepository, repositories.workspaceRepository, butlerProfileService, repositories.assistantSandboxWorkspaceRepository);
593
- const assistantSandboxService = new AssistantSandboxService(repositories.assistantSandboxWorkspaceRepository, butlerProfileService, workspaceService, butlerProjectService, taskManager);
594
- sessionHistoryService.registerSessionDeletedObserver(async ({ workspaceId, userId, remainingWorkspaceSessionCount }) => {
595
- if (remainingWorkspaceSessionCount > 0) {
596
- return;
597
- }
598
- assistantSandboxService.markSandboxOrphanedByWorkspaceId(workspaceId, userId);
599
- });
632
+ const butlerProjectService = new ButlerProjectService(repositories.butlerProjectRepository, repositories.butlerSessionRepository, repositories.workspaceRepository, butlerProfileService);
600
633
  const butlerInboxService = new ButlerInboxService(repositories.butlerProjectRepository, repositories.butlerInboxItemRepository, taskManager);
601
634
  const butlerNotificationService = new ButlerNotificationService(repositories.butlerNotificationArchiveRepository);
602
635
  const butlerSessionService = new ButlerSessionService(repositories.butlerProjectRepository, repositories.butlerSessionRepository, repositories.sessionCheckpointRepository, repositories.sessionBindingRepository, repositories.sessionIndexRepository, repositories.sessionStateRepository, sessionLiveRuntimeService, sessionHistoryService, repositories.sessionMessageOriginRepository, sessionProviderUsageLimitGuardService);
@@ -642,13 +675,7 @@ export function createServer(config) {
642
675
  const butlerFollowUpScheduler = new ButlerFollowUpScheduler(butlerFollowUpService, {
643
676
  schedulerMetrics
644
677
  });
645
- const assistantSandboxCleanupScheduler = new AssistantSandboxCleanupScheduler(assistantSandboxService, {
646
- schedulerMetrics
647
- });
648
- const butlerFollowUpTerminalSubscription = sessionLiveRuntimeService.registerTerminalStateListener(async (event) => {
649
- await butlerFollowUpService.handleSessionTerminal(event.sessionId, event.timestamp);
650
- });
651
- const butlerControlSessionService = new ButlerControlSessionService(butlerProfileService, repositories.butlerControlSessionRepository, workspaceService, sessionHistoryService, butlerSessionLiveRuntimeService, butlerContextAggregator, butlerAuthService, skillManagerService, butlerRuntimeConfig.codexHomeDir, config.codexHomeDir, butlerRuntimeConfig.claudeCodeHomeDir, config.claudeCodeHomeDir, repositories.sessionMessageOriginRepository, assistantSandboxService, sessionProviderUsageLimitGuardService, repositories.providerControlRepository);
678
+ const butlerControlSessionService = new ButlerControlSessionService(butlerProfileService, repositories.butlerControlSessionRepository, workspaceService, sessionHistoryService, butlerSessionLiveRuntimeService, butlerContextAggregator, butlerAuthService, skillManagerService, butlerRuntimeConfig.codexHomeDir, config.codexHomeDir, butlerRuntimeConfig.claudeCodeHomeDir, config.claudeCodeHomeDir, repositories.sessionMessageOriginRepository, sessionProviderUsageLimitGuardService, repositories.providerControlRepository);
652
679
  const channelBridgeService = new ChannelBridgeService(repositories.channelAccountRepository, repositories.channelThreadRepository, repositories.channelInboundEventRepository, butlerControlSessionService);
653
680
  const channelDeliveryService = new ChannelDeliveryService(repositories.channelAccountRepository, repositories.channelThreadRepository, repositories.channelInboundEventRepository, repositories.channelDeliveryRepository, sessionHistoryService, channelPlatformAdapterRegistry, taskManager);
654
681
  channelDeliveryService.recoverRetryableDeliveries();
@@ -669,6 +696,9 @@ export function createServer(config) {
669
696
  const butlerControlTimerScheduler = new ButlerControlTimerScheduler(butlerControlTimerService, {
670
697
  schedulerMetrics
671
698
  });
699
+ const butlerFollowUpTerminalSubscription = sessionLiveRuntimeService.registerTerminalStateListener(async (event) => {
700
+ await butlerFollowUpService.handleSessionTerminal(event.sessionId, event.timestamp);
701
+ });
672
702
  butlerInboxService.configureLifecycleServices({
673
703
  butlerInboxAnalysisService,
674
704
  butlerControlSessionService,
@@ -698,6 +728,42 @@ export function createServer(config) {
698
728
  const workspacePanelSnapshotService = new WorkspacePanelSnapshotService(fileTreeService, gitReadService, terminalService, commandTemplateService, workspaceService, taskManager);
699
729
  const fileWatcher = new WorkspaceFileWatcher(workspaceService);
700
730
  const codexArchiveWatcher = new CodexArchiveWatcher(config.codexHomeDir);
731
+ const affairsLibraryService = new AffairsLibraryService(workspaceService, repositories.workspaceNavigationStateRepository, repositories.userAffairsLibrarySettingRepository, taskManager, app.log);
732
+ fileContentService.setFileMutationHook((event) => {
733
+ affairsLibraryService.notifyWorkspaceFileMutation(event.workspaceId, {
734
+ absolutePath: event.absolutePath,
735
+ kind: event.kind
736
+ });
737
+ });
738
+ workspaceFileBridgeService.setMutationHook((event) => {
739
+ affairsLibraryService.notifyWorkspaceFileMutation(event.workspaceId, {
740
+ absolutePath: event.absolutePath,
741
+ kind: event.kind
742
+ });
743
+ });
744
+ pluginFileGatewayService.setMutationHook((event) => {
745
+ affairsLibraryService.notifyWorkspaceFileMutation(event.workspaceId, {
746
+ absolutePath: event.absolutePath,
747
+ kind: event.kind
748
+ });
749
+ });
750
+ const affairsLibraryDirtyWatchService = new AffairsLibraryDirtyWatchService(() => affairsLibraryService.listEnabledBindingsForWatch(), (workspaceId) => affairsLibraryService.getBindingForWatch(workspaceId), (workspaceId, event) => {
751
+ if (event.kind === "config") {
752
+ affairsLibraryService.scheduleAutoApplyConfig(workspaceId, event.reason);
753
+ return;
754
+ }
755
+ if (event.kind === "audit") {
756
+ affairsLibraryService.schedulePeriodicAudit(workspaceId, event.reason);
757
+ return;
758
+ }
759
+ affairsLibraryService.scheduleAutoRefresh(workspaceId, event.reason, event.targetPath);
760
+ }, app.log);
761
+ affairsLibraryDirtyWatchService.syncAll();
762
+ const affairsLibraryPreviewLinkService = new AffairsLibraryPreviewLinkService(affairsLibraryService, config.filePreviewTokenSecret);
763
+ const affairsAssistantSessionSnapshotService = new AffairsAssistantSessionSnapshotService(repositories.affairsAssistantSessionSnapshotRepository, affairsLibraryService, butlerProjectService, butlerSessionService, taskManager);
764
+ const workbenchService = new WorkbenchService(repositories.workspaceRepository, repositories.workspaceNavigationStateRepository, sessionHistoryService, butlerProfileService, repositories.butlerControlSessionRepository, repositories.workspaceWorktreeRepository, taskManager, repositories.sessionIsolatedWorkspaceRepository, affairsAssistantSessionSnapshotService);
765
+ const onlyOfficeIntegrationService = new OnlyOfficeIntegrationService(repositories.officeOnlyOfficeSettingRepository, filePreviewLinkService, affairsLibraryPreviewLinkService, fileAccessGuard, affairsLibraryService, config.filePreviewTokenSecret);
766
+ const affairsLightweightSessionService = new AffairsLightweightSessionService(path.dirname(config.databasePath));
701
767
  const bootstrapController = new BootstrapController(bootstrapService);
702
768
  const clientController = new ClientController(clientService);
703
769
  const channelController = new ChannelController(channelsService);
@@ -708,10 +774,22 @@ export function createServer(config) {
708
774
  };
709
775
  terminalService.on("exit", handleDebugTargetTerminalExit);
710
776
  const authController = new AuthController(authService);
711
- const workspaceController = new WorkspaceController(workspaceService);
777
+ const workspaceController = new WorkspaceController(workspaceService, (workspaceId) => {
778
+ workspaceSessionInstructionWatchService.syncWorkspace(workspaceId);
779
+ });
780
+ const affairsLibraryController = new AffairsLibraryController(affairsLibraryService, affairsLibraryPreviewLinkService, onlyOfficeIntegrationService, (workspaceId) => {
781
+ if (!workspaceId?.trim()) {
782
+ return;
783
+ }
784
+ affairsLibraryDirtyWatchService.syncWorkspace(workspaceId);
785
+ workspaceSessionInstructionWatchService.syncWorkspace(workspaceId);
786
+ });
787
+ const affairsLightweightSessionController = new AffairsLightweightSessionController(affairsLightweightSessionService);
788
+ const affairsTagService = new AffairsTagService(workspaceService, affairsLibraryService, taskManager);
789
+ const affairsTagController = new AffairsTagController(affairsTagService);
712
790
  const worktreeController = new WorktreeController(worktreeManager, worktreeSyncService, worktreeMergeService, worktreeCleanupService);
713
791
  const workbenchController = new WorkbenchController(workbenchService);
714
- const butlerController = new ButlerController(butlerProfileService, butlerControlSessionService, butlerControlActionService, butlerContextAggregator, butlerFollowUpService, butlerInboxService, butlerNotificationService, butlerProjectService, butlerSessionService, projectMemoryService, patrolPlanService, patrolRunService, patrolExecutionService, verificationRunService, butlerActionContextService, butlerControlTimerService);
792
+ const butlerController = new ButlerController(butlerProfileService, butlerControlSessionService, butlerControlActionService, butlerContextAggregator, butlerFollowUpService, butlerInboxService, butlerNotificationService, butlerProjectService, butlerSessionService, projectMemoryService, patrolPlanService, patrolRunService, patrolExecutionService, verificationRunService, butlerActionContextService, butlerControlTimerService, affairsLibraryService);
715
793
  const sessionController = new SessionController(sessionHistoryService, routedSessionLiveRuntimeService, repositories.butlerControlSessionRepository);
716
794
  const parallelSessionController = new ParallelSessionController(parallelSessionGroupService, sessionIsolatedWorkspaceService);
717
795
  const providerController = new ProviderController(sessionHistoryService, sessionProviderConfigService, providerCatalogService, routedSessionLiveRuntimeService, config);
@@ -719,11 +797,12 @@ export function createServer(config) {
719
797
  const tailscaleController = new TailscaleController(tailscaleService);
720
798
  const relayTunnelController = new RelayTunnelController(relayTunnelService);
721
799
  const modelSwitchController = new ModelSwitchController(modelSwitchService);
800
+ const hostResourceController = new HostResourceController(new HostResourceService(path.dirname(config.databasePath)));
722
801
  const quickPhraseController = new QuickPhraseController(quickPhraseService);
723
802
  const profileController = new ProfileController(preferenceProfileService);
724
803
  const officeService = new OfficeService(repositories.officeTaskRepository, repositories.officeTaskStepRepository, repositories.officeArtifactRepository, repositories.officeApprovalRepository, repositories.officeReceiptRepository, repositories.officeConnectorRepository, repositories.officeAuditEventRepository, repositories.officeRollbackRecordRepository, config.databasePath);
725
804
  const officePreviewLinkService = new OfficePreviewLinkService(officeService, config.filePreviewTokenSecret);
726
- const officeController = new OfficeController(officeService, officePreviewLinkService);
805
+ const officeController = new OfficeController(officeService, officePreviewLinkService, onlyOfficeIntegrationService);
727
806
  const pluginController = new PluginController(pluginRegistryService, pluginRuntimeService, pluginStaticService, pluginRuntimeSessionService, pluginFileGatewayService, pluginPermissionService);
728
807
  const browserProfileService = new BrowserProfileService(repositories.browserProfileRepository, config.databasePath);
729
808
  const playwrightBrowserExecutor = new PlaywrightBrowserExecutor(config, repositories.officeTaskRepository, repositories.officeTaskStepRepository, repositories.officeArtifactRepository, repositories.officeReceiptRepository, repositories.officeAuditEventRepository);
@@ -739,9 +818,9 @@ export function createServer(config) {
739
818
  const sshOpsExecutor = new SshOpsExecutor(config, repositories.officeTaskRepository, repositories.officeTaskStepRepository, repositories.officeArtifactRepository, repositories.officeReceiptRepository, repositories.officeAuditEventRepository);
740
819
  const opsRuntimeService = new OpsRuntimeService(repositories.opsTargetRepository, browserProfileService, officeService, repositories.officeTaskRepository, sshOpsExecutor, taskManager);
741
820
  const opsRuntimeController = new OpsRuntimeController(opsRuntimeService);
742
- const assistantCapabilityController = new AssistantCapabilityController(new AssistantCapabilityService(butlerProjectService, butlerSessionService, butlerControlSessionService, assistantAutomationService, assistantSandboxService, butlerControlTimerService, sessionHistoryService, sessionLiveRuntimeService, terminalService, debugTargetService, workspaceService, repositories.workspaceWorktreeRepository, worktreeManager, worktreeSyncService, worktreeMergeService, worktreeCleanupService, repositories.sessionMessageOriginRepository, butlerFollowUpService, repositories.providerControlRepository, documentRuntimeService, officeService, officePreviewLinkService, browserRuntimeService, opsRuntimeService));
821
+ const assistantCapabilityController = new AssistantCapabilityController(new AssistantCapabilityService(butlerProjectService, butlerSessionService, butlerControlSessionService, assistantAutomationService, butlerControlTimerService, sessionHistoryService, sessionLiveRuntimeService, terminalService, debugTargetService, workspaceService, repositories.workspaceWorktreeRepository, worktreeManager, worktreeSyncService, worktreeMergeService, worktreeCleanupService, repositories.sessionMessageOriginRepository, butlerFollowUpService, repositories.providerControlRepository, documentRuntimeService, officeService, officePreviewLinkService, browserRuntimeService, opsRuntimeService));
743
822
  const presentationController = new PresentationController(presentationExportTaskService);
744
- const fileController = new FileController(fileTreeService, fileContentService, fileSearchService, recentFileService, filePreviewService, filePreviewLinkService, workspaceFileBridgeService);
823
+ const fileController = new FileController(fileTreeService, fileContentService, fileSearchService, recentFileService, recentModifiedFileService, filePreviewService, filePreviewLinkService, affairsLibraryPreviewLinkService, onlyOfficeIntegrationService, workspaceFileBridgeService, workspaceIndexApplyService);
745
824
  const fileContextController = new FileContextController(fileContentService, fileContextService);
746
825
  const gitController = new GitController(gitReadService, gitWriteService, commitOrchestrator, gitRemoteCredentialService);
747
826
  const terminalController = new TerminalController(terminalService, commandTemplateService);
@@ -818,7 +897,8 @@ export function createServer(config) {
818
897
  void registerBrowserRuntimeRoutes(app, browserRuntimeController);
819
898
  void registerDocumentRuntimeRoutes(app, documentRuntimeController);
820
899
  void registerOpsRuntimeRoutes(app, opsRuntimeController);
821
- void registerWorkspaceRoutes(app, workspaceController);
900
+ void registerAffairsRoutes(app, affairsLibraryController);
901
+ void registerWorkspaceRoutes(app, workspaceController, affairsLibraryController, affairsLightweightSessionController, affairsTagController);
822
902
  void registerWorktreeRoutes(app, worktreeController);
823
903
  void registerWorkbenchRoutes(app, workbenchController);
824
904
  void registerButlerRoutes(app, butlerController);
@@ -829,7 +909,7 @@ export function createServer(config) {
829
909
  void registerPreferenceRoutes(app, quickPhraseController, profileController);
830
910
  void registerSkillRoutes(app, skillController);
831
911
  void registerOpenCliRoutes(app, openCliController);
832
- void registerSystemRoutes(app, tailscaleController, relayTunnelController, modelSwitchController);
912
+ void registerSystemRoutes(app, tailscaleController, relayTunnelController, modelSwitchController, hostResourceController);
833
913
  void registerFileRoutes(app, fileController);
834
914
  void registerSessionContextRoutes(app, fileContextController);
835
915
  void registerTerminalRoutes(app, terminalController);
@@ -838,7 +918,6 @@ export function createServer(config) {
838
918
  patrolScheduler.start();
839
919
  sessionSummaryScheduler.start();
840
920
  butlerFollowUpScheduler.start();
841
- assistantSandboxCleanupScheduler.start();
842
921
  butlerControlTimerScheduler.start();
843
922
  channelPollingScheduler.start();
844
923
  debugRuntimeReconciliationScheduler.start();
@@ -854,7 +933,6 @@ export function createServer(config) {
854
933
  await patrolScheduler.dispose();
855
934
  await sessionSummaryScheduler.dispose();
856
935
  await butlerFollowUpScheduler.dispose();
857
- await assistantSandboxCleanupScheduler.dispose();
858
936
  await butlerControlTimerScheduler.dispose();
859
937
  await channelPollingScheduler.dispose();
860
938
  await debugRuntimeReconciliationScheduler.dispose();
@@ -865,6 +943,9 @@ export function createServer(config) {
865
943
  await butlerSummarySessionLiveRuntimeService.dispose();
866
944
  await butlerSessionLiveRuntimeService.dispose();
867
945
  await sessionLiveRuntimeService.dispose();
946
+ workspaceSessionInstructionWatchService.dispose();
947
+ affairsLibraryDirtyWatchService.dispose();
948
+ affairsLibraryService.dispose();
868
949
  workbenchRuntimeTerminalSync.close();
869
950
  await wsHandle.close();
870
951
  codexArchiveWatcher.dispose();
@@ -874,7 +955,7 @@ export function createServer(config) {
874
955
  gitCommandRunner.dispose();
875
956
  tailscaleHelperClient.dispose();
876
957
  wechatClawRuntimeManager?.dispose();
877
- disposeSharedTaskHelperProcessClient();
958
+ disposeSharedTaskHelperPool();
878
959
  disposeSharedProviderDiscoveryHelperClient();
879
960
  disposeSharedOpenCodeSystemProbeHelperClient();
880
961
  database.close();