@jingyi0605/codingns 0.8.5 → 0.9.5

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 (515) hide show
  1. package/bin/codingns.mjs +7 -156
  2. package/dist/public/assets/AdaptiveButlerPage-kkJDsnCO.js +2 -0
  3. package/dist/public/assets/{App-BOHBGFOd.js → App-DrNI9lWA.js} +6 -6
  4. package/dist/public/assets/{BootstrapPage-BxHQT4nA.js → BootstrapPage-QgVH5Mps.js} +1 -1
  5. package/dist/public/assets/{ConversationPage-DWFsF6BB.js → ConversationPage-DVk8VfIj.js} +6 -6
  6. package/dist/public/assets/{DesktopDetachPreviewPage-DOgEjYEf.js → DesktopDetachPreviewPage-BhfP0TpH.js} +1 -1
  7. package/dist/public/assets/DesktopModal-DRmDrv0S.js +1 -0
  8. package/dist/public/assets/DesktopWindowPage-DNbJXnSs.js +2 -0
  9. package/dist/public/assets/FileContextPanel---fLO4ve.js +1 -0
  10. package/dist/public/assets/GitSidebar-sXUE0TqT.js +6 -0
  11. package/dist/public/assets/MobileCreateSessionSheet-BftZ5pvb.js +1 -0
  12. package/dist/public/assets/MobileSheet-nw5SCa3N.js +1 -0
  13. package/dist/public/assets/{MobileTopHeaderFrame-lcp2GscV.js → MobileTopHeaderFrame-DH_D02Wy.js} +1 -1
  14. package/dist/public/assets/MobileWorkspaceSwitcherHeader-2K406G5p.js +1 -0
  15. package/dist/public/assets/{PluginAccessOverview-DGcKAMQl.js → PluginAccessOverview-BVJihw3D.js} +1 -1
  16. package/dist/public/assets/PluginContainerPage-CR4vStvr.js +1 -0
  17. package/dist/public/assets/{PluginDetailPage-CAJ7LFpD.js → PluginDetailPage-CrMX0Mnm.js} +1 -1
  18. package/dist/public/assets/{PluginsListPage-BxZG1NyT.js → PluginsListPage-FtIL71Yg.js} +1 -1
  19. package/dist/public/assets/{RelayConnectEntryPage-CfNO_TIl.js → RelayConnectEntryPage-Bt1apX53.js} +1 -1
  20. package/dist/public/assets/{ServerSettingsModal-by36Z_5k.js → ServerSettingsModal-D-guzPrI.js} +1 -1
  21. package/dist/public/assets/SessionIndexPage-CX2FppcJ.js +1 -0
  22. package/dist/public/assets/SettingsPage-BI2Olcvr.js +2 -0
  23. package/dist/public/assets/TerminalManagerPanel-B5MKGPy-.js +1 -0
  24. package/dist/public/assets/{TerminalPage-C4LNoPBp.js → TerminalPage-C2dTNGHK.js} +2 -2
  25. package/dist/public/assets/TerminalRuntimeFallbackModal-DAqOxFD8.js +1 -0
  26. package/dist/public/assets/{ToolFilesPage-47zbdgTW.js → ToolFilesPage-IsNwyE6T.js} +1 -1
  27. package/dist/public/assets/{ToolGitPage-Fuk_b_jg.js → ToolGitPage-BK1JBERN.js} +1 -1
  28. package/dist/public/assets/{ToolProcessesPage-sWSMWD-9.js → ToolProcessesPage-DwTYUQCK.js} +1 -1
  29. package/dist/public/assets/{ToolsHomePage-R1mZlbZi.js → ToolsHomePage-BLOy7lPg.js} +1 -1
  30. package/dist/public/assets/{WorkbenchLandingPage-CqmiFH2u.js → WorkbenchLandingPage-CqZKR6EA.js} +1 -1
  31. package/dist/public/assets/WorkbenchLayout-BksVkkFF.css +1 -0
  32. package/dist/public/assets/WorkbenchLayout-CJHQtwuL.js +1022 -0
  33. package/dist/public/assets/{WorkbenchModal-C7qoQElW.js → WorkbenchModal-BM-OeW-b.js} +1 -1
  34. package/dist/public/assets/WorkbenchShellRoute-2bKI6Q9k.js +1 -0
  35. package/dist/public/assets/WorkbenchShellRoute-BjuZD101.css +1 -0
  36. package/dist/public/assets/WorkspaceDebugDetailPage-BMsEN5iG.js +1 -0
  37. package/dist/public/assets/WorkspaceDetailPage-5H9Gosx2.js +1 -0
  38. package/dist/public/assets/WorkspaceHomePage-DQiXKgiP.js +1 -0
  39. package/dist/public/assets/{client-runtime-manager-wmCJZKYd.js → client-runtime-manager-CgPJq21V.js} +1 -1
  40. package/dist/public/assets/index-BARqMVSw.css +1 -0
  41. package/dist/public/assets/index-BUoNjVrY.js +50 -0
  42. package/dist/public/assets/{login-direct-candidate-resolver-BOAgTuUf.js → login-direct-candidate-resolver-CGaxAXV8.js} +1 -1
  43. package/dist/public/assets/{plugin-permission-copy-Cq99cnzV.js → plugin-permission-copy-BR9gWy8b.js} +1 -1
  44. package/dist/public/assets/{plugins-api-BQTV5DOp.js → plugins-api-CdCsrG2e.js} +1 -1
  45. package/dist/public/assets/{preferences-service-DJxbEEeg.js → preferences-service-lOhnlxzP.js} +1 -1
  46. package/dist/public/assets/{relay-entry-D-LfvdiX.js → relay-entry-CQpxTS8y.js} +1 -1
  47. package/dist/public/assets/{terminal-runtime-meta-BJmy8dyK.js → terminal-runtime-meta-oteTx66X.js} +1 -1
  48. package/dist/public/assets/useRegisteredDebugTemplates-Bu2ykZ6s.js +1 -0
  49. package/dist/public/assets/workbench-navigation-DlgXuFW2.js +1 -0
  50. package/dist/public/index.html +2 -2
  51. package/dist/server/config/env.d.ts +1 -0
  52. package/dist/server/config/env.js +3 -0
  53. package/dist/server/config/env.js.map +1 -1
  54. package/dist/server/middlewares/auth-guard.js +10 -5
  55. package/dist/server/middlewares/auth-guard.js.map +1 -1
  56. package/dist/server/modules/affairs-indexer/contracts/src/errors/app-error.d.ts +11 -0
  57. package/dist/server/modules/affairs-indexer/contracts/src/errors/app-error.js +22 -0
  58. package/dist/server/modules/affairs-indexer/contracts/src/errors/app-error.js.map +1 -0
  59. package/dist/server/modules/affairs-indexer/contracts/src/errors/error-codes.d.ts +23 -0
  60. package/dist/server/modules/affairs-indexer/contracts/src/errors/error-codes.js +23 -0
  61. package/dist/server/modules/affairs-indexer/contracts/src/errors/error-codes.js.map +1 -0
  62. package/dist/server/modules/affairs-indexer/contracts/src/index.d.ts +4 -0
  63. package/dist/server/modules/affairs-indexer/contracts/src/index.js +5 -0
  64. package/dist/server/modules/affairs-indexer/contracts/src/index.js.map +1 -0
  65. package/dist/server/modules/affairs-indexer/contracts/src/types/cli-command-context.d.ts +7 -0
  66. package/dist/server/modules/affairs-indexer/contracts/src/types/cli-command-context.js +2 -0
  67. package/dist/server/modules/affairs-indexer/contracts/src/types/cli-command-context.js.map +1 -0
  68. package/dist/server/modules/affairs-indexer/contracts/src/types/runtime-config.d.ts +16 -0
  69. package/dist/server/modules/affairs-indexer/contracts/src/types/runtime-config.js +2 -0
  70. package/dist/server/modules/affairs-indexer/contracts/src/types/runtime-config.js.map +1 -0
  71. package/dist/server/modules/affairs-indexer/core/src/config/load-runtime-config.d.ts +10 -0
  72. package/dist/server/modules/affairs-indexer/core/src/config/load-runtime-config.js +215 -0
  73. package/dist/server/modules/affairs-indexer/core/src/config/load-runtime-config.js.map +1 -0
  74. package/dist/server/modules/affairs-indexer/core/src/index.d.ts +31 -0
  75. package/dist/server/modules/affairs-indexer/core/src/index.js +32 -0
  76. package/dist/server/modules/affairs-indexer/core/src/index.js.map +1 -0
  77. package/dist/server/modules/affairs-indexer/core/src/logging/structured-logger.d.ts +20 -0
  78. package/dist/server/modules/affairs-indexer/core/src/logging/structured-logger.js +47 -0
  79. package/dist/server/modules/affairs-indexer/core/src/logging/structured-logger.js.map +1 -0
  80. package/dist/server/modules/affairs-indexer/core/src/parser/base-complex-parser-adapter.d.ts +17 -0
  81. package/dist/server/modules/affairs-indexer/core/src/parser/base-complex-parser-adapter.js +63 -0
  82. package/dist/server/modules/affairs-indexer/core/src/parser/base-complex-parser-adapter.js.map +1 -0
  83. package/dist/server/modules/affairs-indexer/core/src/parser/complex-document-skip-adapter.d.ts +12 -0
  84. package/dist/server/modules/affairs-indexer/core/src/parser/complex-document-skip-adapter.js +42 -0
  85. package/dist/server/modules/affairs-indexer/core/src/parser/complex-document-skip-adapter.js.map +1 -0
  86. package/dist/server/modules/affairs-indexer/core/src/parser/csv-parser-adapter.d.ts +7 -0
  87. package/dist/server/modules/affairs-indexer/core/src/parser/csv-parser-adapter.js +107 -0
  88. package/dist/server/modules/affairs-indexer/core/src/parser/csv-parser-adapter.js.map +1 -0
  89. package/dist/server/modules/affairs-indexer/core/src/parser/document-parser.d.ts +19 -0
  90. package/dist/server/modules/affairs-indexer/core/src/parser/document-parser.js +37 -0
  91. package/dist/server/modules/affairs-indexer/core/src/parser/document-parser.js.map +1 -0
  92. package/dist/server/modules/affairs-indexer/core/src/parser/docx-parser-adapter.d.ts +7 -0
  93. package/dist/server/modules/affairs-indexer/core/src/parser/docx-parser-adapter.js +123 -0
  94. package/dist/server/modules/affairs-indexer/core/src/parser/docx-parser-adapter.js.map +1 -0
  95. package/dist/server/modules/affairs-indexer/core/src/parser/openxml-utils.d.ts +8 -0
  96. package/dist/server/modules/affairs-indexer/core/src/parser/openxml-utils.js +111 -0
  97. package/dist/server/modules/affairs-indexer/core/src/parser/openxml-utils.js.map +1 -0
  98. package/dist/server/modules/affairs-indexer/core/src/parser/parser-adapter.d.ts +42 -0
  99. package/dist/server/modules/affairs-indexer/core/src/parser/parser-adapter.js +2 -0
  100. package/dist/server/modules/affairs-indexer/core/src/parser/parser-adapter.js.map +1 -0
  101. package/dist/server/modules/affairs-indexer/core/src/parser/parser-capability-registry.d.ts +18 -0
  102. package/dist/server/modules/affairs-indexer/core/src/parser/parser-capability-registry.js +91 -0
  103. package/dist/server/modules/affairs-indexer/core/src/parser/parser-capability-registry.js.map +1 -0
  104. package/dist/server/modules/affairs-indexer/core/src/parser/parser-router.d.ts +18 -0
  105. package/dist/server/modules/affairs-indexer/core/src/parser/parser-router.js +59 -0
  106. package/dist/server/modules/affairs-indexer/core/src/parser/parser-router.js.map +1 -0
  107. package/dist/server/modules/affairs-indexer/core/src/parser/parser-skip-repository.d.ts +48 -0
  108. package/dist/server/modules/affairs-indexer/core/src/parser/parser-skip-repository.js +193 -0
  109. package/dist/server/modules/affairs-indexer/core/src/parser/parser-skip-repository.js.map +1 -0
  110. package/dist/server/modules/affairs-indexer/core/src/parser/pdf-parser-adapter.d.ts +7 -0
  111. package/dist/server/modules/affairs-indexer/core/src/parser/pdf-parser-adapter.js +371 -0
  112. package/dist/server/modules/affairs-indexer/core/src/parser/pdf-parser-adapter.js.map +1 -0
  113. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser-adapter.d.ts +10 -0
  114. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser-adapter.js +55 -0
  115. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser-adapter.js.map +1 -0
  116. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser.d.ts +9 -0
  117. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser.js +2 -0
  118. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser.js.map +1 -0
  119. package/dist/server/modules/affairs-indexer/core/src/parser/pptx-parser-adapter.d.ts +7 -0
  120. package/dist/server/modules/affairs-indexer/core/src/parser/pptx-parser-adapter.js +130 -0
  121. package/dist/server/modules/affairs-indexer/core/src/parser/pptx-parser-adapter.js.map +1 -0
  122. package/dist/server/modules/affairs-indexer/core/src/parser/xlsx-parser-adapter.d.ts +7 -0
  123. package/dist/server/modules/affairs-indexer/core/src/parser/xlsx-parser-adapter.js +228 -0
  124. package/dist/server/modules/affairs-indexer/core/src/parser/xlsx-parser-adapter.js.map +1 -0
  125. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.d.ts +205 -0
  126. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.js +1471 -0
  127. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.js.map +1 -0
  128. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-write-repository.d.ts +161 -0
  129. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-write-repository.js +1350 -0
  130. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-write-repository.js.map +1 -0
  131. package/dist/server/modules/affairs-indexer/core/src/scanner/file-scanner.d.ts +32 -0
  132. package/dist/server/modules/affairs-indexer/core/src/scanner/file-scanner.js +208 -0
  133. package/dist/server/modules/affairs-indexer/core/src/scanner/file-scanner.js.map +1 -0
  134. package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.d.ts +30 -0
  135. package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.js +66 -0
  136. package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.js.map +1 -0
  137. package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.d.ts +33 -0
  138. package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.js +705 -0
  139. package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.js.map +1 -0
  140. package/dist/server/modules/affairs-indexer/core/src/services/indexer/allowed-extensions-diff-service.d.ts +80 -0
  141. package/dist/server/modules/affairs-indexer/core/src/services/indexer/allowed-extensions-diff-service.js +193 -0
  142. package/dist/server/modules/affairs-indexer/core/src/services/indexer/allowed-extensions-diff-service.js.map +1 -0
  143. package/dist/server/modules/affairs-indexer/core/src/services/indexer/text-indexer.d.ts +77 -0
  144. package/dist/server/modules/affairs-indexer/core/src/services/indexer/text-indexer.js +467 -0
  145. package/dist/server/modules/affairs-indexer/core/src/services/indexer/text-indexer.js.map +1 -0
  146. package/dist/server/modules/affairs-indexer/core/src/services/mcp/mcp-stdio-server.d.ts +17 -0
  147. package/dist/server/modules/affairs-indexer/core/src/services/mcp/mcp-stdio-server.js +264 -0
  148. package/dist/server/modules/affairs-indexer/core/src/services/mcp/mcp-stdio-server.js.map +1 -0
  149. package/dist/server/modules/affairs-indexer/core/src/services/search/offline-search-service.d.ts +11 -0
  150. package/dist/server/modules/affairs-indexer/core/src/services/search/offline-search-service.js +76 -0
  151. package/dist/server/modules/affairs-indexer/core/src/services/search/offline-search-service.js.map +1 -0
  152. package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.d.ts +26 -0
  153. package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.js +305 -0
  154. package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.js.map +1 -0
  155. package/dist/server/modules/affairs-indexer/core/src/services/tagging/tag-recompute-service.d.ts +53 -0
  156. package/dist/server/modules/affairs-indexer/core/src/services/tagging/tag-recompute-service.js +566 -0
  157. package/dist/server/modules/affairs-indexer/core/src/services/tagging/tag-recompute-service.js.map +1 -0
  158. package/dist/server/modules/affairs-indexer/core/src/services/watch/watch-service.d.ts +47 -0
  159. package/dist/server/modules/affairs-indexer/core/src/services/watch/watch-service.js +227 -0
  160. package/dist/server/modules/affairs-indexer/core/src/services/watch/watch-service.js.map +1 -0
  161. package/dist/server/modules/affairs-indexer/core/src/sqlite/catalog-schema.d.ts +5 -0
  162. package/dist/server/modules/affairs-indexer/core/src/sqlite/catalog-schema.js +245 -0
  163. package/dist/server/modules/affairs-indexer/core/src/sqlite/catalog-schema.js.map +1 -0
  164. package/dist/server/modules/affairs-indexer/core/src/sqlite/detect-catalog-schema.d.ts +14 -0
  165. package/dist/server/modules/affairs-indexer/core/src/sqlite/detect-catalog-schema.js +87 -0
  166. package/dist/server/modules/affairs-indexer/core/src/sqlite/detect-catalog-schema.js.map +1 -0
  167. package/dist/server/modules/affairs-indexer/core/src/sqlite/init-catalog.d.ts +13 -0
  168. package/dist/server/modules/affairs-indexer/core/src/sqlite/init-catalog.js +16 -0
  169. package/dist/server/modules/affairs-indexer/core/src/sqlite/init-catalog.js.map +1 -0
  170. package/dist/server/modules/affairs-indexer/core/src/sqlite/migration-runner.d.ts +22 -0
  171. package/dist/server/modules/affairs-indexer/core/src/sqlite/migration-runner.js +430 -0
  172. package/dist/server/modules/affairs-indexer/core/src/sqlite/migration-runner.js.map +1 -0
  173. package/dist/server/modules/affairs-indexer/core/src/sqlite/open-database.d.ts +26 -0
  174. package/dist/server/modules/affairs-indexer/core/src/sqlite/open-database.js +19 -0
  175. package/dist/server/modules/affairs-indexer/core/src/sqlite/open-database.js.map +1 -0
  176. package/dist/server/modules/affairs-indexer/core/src/tagging/simple-tag-inference.d.ts +21 -0
  177. package/dist/server/modules/affairs-indexer/core/src/tagging/simple-tag-inference.js +94 -0
  178. package/dist/server/modules/affairs-indexer/core/src/tagging/simple-tag-inference.js.map +1 -0
  179. package/dist/server/modules/affairs-indexer/core/src/utils/abort.d.ts +2 -0
  180. package/dist/server/modules/affairs-indexer/core/src/utils/abort.js +13 -0
  181. package/dist/server/modules/affairs-indexer/core/src/utils/abort.js.map +1 -0
  182. package/dist/server/modules/affairs-indexer/core/src/utils/file-streaming.d.ts +9 -0
  183. package/dist/server/modules/affairs-indexer/core/src/utils/file-streaming.js +64 -0
  184. package/dist/server/modules/affairs-indexer/core/src/utils/file-streaming.js.map +1 -0
  185. package/dist/server/modules/affairs-indexer/core/src/utils/root-command-lock.d.ts +10 -0
  186. package/dist/server/modules/affairs-indexer/core/src/utils/root-command-lock.js +230 -0
  187. package/dist/server/modules/affairs-indexer/core/src/utils/root-command-lock.js.map +1 -0
  188. package/dist/server/modules/affairs-indexer/core/src/utils/rss-log.d.ts +2 -0
  189. package/dist/server/modules/affairs-indexer/core/src/utils/rss-log.js +19 -0
  190. package/dist/server/modules/affairs-indexer/core/src/utils/rss-log.js.map +1 -0
  191. package/dist/server/modules/affairs-indexer/internal-command-runner.d.ts +31 -0
  192. package/dist/server/modules/affairs-indexer/internal-command-runner.js +643 -0
  193. package/dist/server/modules/affairs-indexer/internal-command-runner.js.map +1 -0
  194. package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +0 -49
  195. package/dist/server/modules/assistant-capability/assistant-capability-controller.js +10 -56
  196. package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
  197. package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +2 -46
  198. package/dist/server/modules/assistant-capability/assistant-capability-service.js +15 -158
  199. package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
  200. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.d.ts +4 -2
  201. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.js +62 -21
  202. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.js.map +1 -1
  203. package/dist/server/modules/butler/butler-control-session-service.d.ts +3 -4
  204. package/dist/server/modules/butler/butler-control-session-service.js +39 -62
  205. package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
  206. package/dist/server/modules/butler/butler-controller.d.ts +11 -3
  207. package/dist/server/modules/butler/butler-controller.js +19 -4
  208. package/dist/server/modules/butler/butler-controller.js.map +1 -1
  209. package/dist/server/modules/butler/butler-follow-up-service.d.ts +3 -0
  210. package/dist/server/modules/butler/butler-follow-up-service.js +11 -1
  211. package/dist/server/modules/butler/butler-follow-up-service.js.map +1 -1
  212. package/dist/server/modules/butler/butler-inbox-service.d.ts +3 -0
  213. package/dist/server/modules/butler/butler-inbox-service.js +14 -2
  214. package/dist/server/modules/butler/butler-inbox-service.js.map +1 -1
  215. package/dist/server/modules/butler/butler-profile-service.d.ts +1 -1
  216. package/dist/server/modules/butler/butler-profile-service.js +34 -63
  217. package/dist/server/modules/butler/butler-profile-service.js.map +1 -1
  218. package/dist/server/modules/butler/butler-project-service.d.ts +1 -3
  219. package/dist/server/modules/butler/butler-project-service.js +1 -7
  220. package/dist/server/modules/butler/butler-project-service.js.map +1 -1
  221. package/dist/server/modules/butler/butler-session-service.d.ts +4 -0
  222. package/dist/server/modules/butler/butler-session-service.js +127 -0
  223. package/dist/server/modules/butler/butler-session-service.js.map +1 -1
  224. package/dist/server/modules/butler/butler-session-summary-service.js +0 -2
  225. package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
  226. package/dist/server/modules/butler/butler-workspace-context.d.ts +5 -1
  227. package/dist/server/modules/butler/butler-workspace-context.js +21 -12
  228. package/dist/server/modules/butler/butler-workspace-context.js.map +1 -1
  229. package/dist/server/modules/file/file-content-service.d.ts +11 -0
  230. package/dist/server/modules/file/file-content-service.js +55 -0
  231. package/dist/server/modules/file/file-content-service.js.map +1 -1
  232. package/dist/server/modules/file/file-controller.d.ts +36 -2
  233. package/dist/server/modules/file/file-controller.js +461 -19
  234. package/dist/server/modules/file/file-controller.js.map +1 -1
  235. package/dist/server/modules/file/file-preview-link-service.d.ts +1 -0
  236. package/dist/server/modules/file/file-preview-link-service.js +25 -0
  237. package/dist/server/modules/file/file-preview-link-service.js.map +1 -1
  238. package/dist/server/modules/file/file-preview-service.js +15 -4
  239. package/dist/server/modules/file/file-preview-service.js.map +1 -1
  240. package/dist/server/modules/file/file-preview-types.d.ts +9 -1
  241. package/dist/server/modules/file/file-preview-types.js +8 -1
  242. package/dist/server/modules/file/file-preview-types.js.map +1 -1
  243. package/dist/server/modules/file/file-search-service.js +200 -12
  244. package/dist/server/modules/file/file-search-service.js.map +1 -1
  245. package/dist/server/modules/file/recent-modified-file-service.d.ts +15 -0
  246. package/dist/server/modules/file/recent-modified-file-service.js +102 -0
  247. package/dist/server/modules/file/recent-modified-file-service.js.map +1 -0
  248. package/dist/server/modules/file/runtime/codingns-workspace-bridge.js +24 -5
  249. package/dist/server/modules/file/workspace-file-bridge-service.d.ts +20 -0
  250. package/dist/server/modules/file/workspace-file-bridge-service.js +22 -0
  251. package/dist/server/modules/file/workspace-file-bridge-service.js.map +1 -1
  252. package/dist/server/modules/file/workspace-file-bridge-watch-service.d.ts +9 -0
  253. package/dist/server/modules/file/workspace-file-bridge-watch-service.js +28 -0
  254. package/dist/server/modules/file/workspace-file-bridge-watch-service.js.map +1 -1
  255. package/dist/server/modules/file/workspace-index-apply-service.d.ts +25 -0
  256. package/dist/server/modules/file/workspace-index-apply-service.js +42 -0
  257. package/dist/server/modules/file/workspace-index-apply-service.js.map +1 -0
  258. package/dist/server/modules/office/office-controller.d.ts +15 -1
  259. package/dist/server/modules/office/office-controller.js +26 -1
  260. package/dist/server/modules/office/office-controller.js.map +1 -1
  261. package/dist/server/modules/office/onlyoffice-integration-service.d.ts +78 -0
  262. package/dist/server/modules/office/onlyoffice-integration-service.js +610 -0
  263. package/dist/server/modules/office/onlyoffice-integration-service.js.map +1 -0
  264. package/dist/server/modules/plugins/plugin-file-gateway-service.d.ts +12 -0
  265. package/dist/server/modules/plugins/plugin-file-gateway-service.js +13 -0
  266. package/dist/server/modules/plugins/plugin-file-gateway-service.js.map +1 -1
  267. package/dist/server/modules/preferences/profile-service.d.ts +1 -0
  268. package/dist/server/modules/preferences/profile-service.js +27 -3
  269. package/dist/server/modules/preferences/profile-service.js.map +1 -1
  270. package/dist/server/modules/sessions/codex-app-server-helper-process.js +0 -8
  271. package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
  272. package/dist/server/modules/sessions/session-controller.d.ts +1 -0
  273. package/dist/server/modules/sessions/session-controller.js +3 -0
  274. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  275. package/dist/server/modules/sessions/session-history-service.d.ts +2 -0
  276. package/dist/server/modules/sessions/session-history-service.js +78 -3
  277. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  278. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +1 -0
  279. package/dist/server/modules/sessions/session-live-runtime-service.js +4 -0
  280. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  281. package/dist/server/modules/sessions/session-permission-request-service.js +0 -4
  282. package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
  283. package/dist/server/modules/sessions/workspace-session-instruction-watch-service.d.ts +23 -0
  284. package/dist/server/modules/sessions/workspace-session-instruction-watch-service.js +122 -0
  285. package/dist/server/modules/sessions/workspace-session-instruction-watch-service.js.map +1 -0
  286. package/dist/server/modules/sessions/workspace-session-runtime-context-service.d.ts +15 -0
  287. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js +93 -10
  288. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js.map +1 -1
  289. package/dist/server/modules/skills/builtin-skills/codingns-assistant/SKILL.md +6 -7
  290. package/dist/server/modules/skills/builtin-skills/codingns-assistant/references/cli-workflow.md +2 -3
  291. package/dist/server/modules/system/host-resource-controller.d.ts +7 -0
  292. package/dist/server/modules/system/host-resource-controller.js +12 -0
  293. package/dist/server/modules/system/host-resource-controller.js.map +1 -0
  294. package/dist/server/modules/system/host-resource-service.d.ts +54 -0
  295. package/dist/server/modules/system/host-resource-service.js +162 -0
  296. package/dist/server/modules/system/host-resource-service.js.map +1 -0
  297. package/dist/server/modules/tasks/observability-service.d.ts +12 -2
  298. package/dist/server/modules/tasks/observability-service.js +13 -1
  299. package/dist/server/modules/tasks/observability-service.js.map +1 -1
  300. package/dist/server/modules/tasks/task-helper-client.d.ts +36 -2
  301. package/dist/server/modules/tasks/task-helper-client.js +201 -19
  302. package/dist/server/modules/tasks/task-helper-client.js.map +1 -1
  303. package/dist/server/modules/tasks/task-helper-pool.d.ts +37 -0
  304. package/dist/server/modules/tasks/task-helper-pool.js +173 -0
  305. package/dist/server/modules/tasks/task-helper-pool.js.map +1 -0
  306. package/dist/server/modules/tasks/task-helper-process-handlers.d.ts +27 -0
  307. package/dist/server/modules/tasks/task-helper-process-handlers.js +25 -1
  308. package/dist/server/modules/tasks/task-helper-process-handlers.js.map +1 -1
  309. package/dist/server/modules/tasks/task-helper-process.js +75 -26
  310. package/dist/server/modules/tasks/task-helper-process.js.map +1 -1
  311. package/dist/server/modules/tasks/task-helper-scheduling.d.ts +11 -0
  312. package/dist/server/modules/tasks/task-helper-scheduling.js +43 -0
  313. package/dist/server/modules/tasks/task-helper-scheduling.js.map +1 -0
  314. package/dist/server/modules/tasks/task-lane-executors.js +19 -3
  315. package/dist/server/modules/tasks/task-lane-executors.js.map +1 -1
  316. package/dist/server/modules/tasks/task-manager.d.ts +1 -0
  317. package/dist/server/modules/tasks/task-manager.js +3 -0
  318. package/dist/server/modules/tasks/task-manager.js.map +1 -1
  319. package/dist/server/modules/tasks/task-registry.d.ts +1 -0
  320. package/dist/server/modules/tasks/task-registry.js +3 -0
  321. package/dist/server/modules/tasks/task-registry.js.map +1 -1
  322. package/dist/server/modules/tasks/task-scheduler.d.ts +6 -0
  323. package/dist/server/modules/tasks/task-scheduler.js +162 -7
  324. package/dist/server/modules/tasks/task-scheduler.js.map +1 -1
  325. package/dist/server/modules/tasks/task-types.d.ts +29 -3
  326. package/dist/server/modules/tasks/task-types.js +15 -2
  327. package/dist/server/modules/tasks/task-types.js.map +1 -1
  328. package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.d.ts +68 -0
  329. package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.js +303 -0
  330. package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.js.map +1 -0
  331. package/dist/server/modules/workbench/workbench-controller.d.ts +5 -0
  332. package/dist/server/modules/workbench/workbench-controller.js +31 -1
  333. package/dist/server/modules/workbench/workbench-controller.js.map +1 -1
  334. package/dist/server/modules/workbench/workbench-service.d.ts +9 -2
  335. package/dist/server/modules/workbench/workbench-service.js +55 -18
  336. package/dist/server/modules/workbench/workbench-service.js.map +1 -1
  337. package/dist/server/modules/workspace/affairs-library-controller.d.ts +125 -0
  338. package/dist/server/modules/workspace/affairs-library-controller.js +175 -0
  339. package/dist/server/modules/workspace/affairs-library-controller.js.map +1 -0
  340. package/dist/server/modules/workspace/affairs-library-debug-log.d.ts +23 -0
  341. package/dist/server/modules/workspace/affairs-library-debug-log.js +107 -0
  342. package/dist/server/modules/workspace/affairs-library-debug-log.js.map +1 -0
  343. package/dist/server/modules/workspace/affairs-library-dirty-watch-service.d.ts +52 -0
  344. package/dist/server/modules/workspace/affairs-library-dirty-watch-service.js +555 -0
  345. package/dist/server/modules/workspace/affairs-library-dirty-watch-service.js.map +1 -0
  346. package/dist/server/modules/workspace/affairs-library-preview-link-service.d.ts +30 -0
  347. package/dist/server/modules/workspace/affairs-library-preview-link-service.js +167 -0
  348. package/dist/server/modules/workspace/affairs-library-preview-link-service.js.map +1 -0
  349. package/dist/server/modules/workspace/affairs-library-refresh-contract.d.ts +56 -0
  350. package/dist/server/modules/workspace/affairs-library-refresh-contract.js +48 -0
  351. package/dist/server/modules/workspace/affairs-library-refresh-contract.js.map +1 -0
  352. package/dist/server/modules/workspace/affairs-library-service.d.ts +353 -0
  353. package/dist/server/modules/workspace/affairs-library-service.js +3895 -0
  354. package/dist/server/modules/workspace/affairs-library-service.js.map +1 -0
  355. package/dist/server/modules/workspace/affairs-lightweight-session-controller.d.ts +86 -0
  356. package/dist/server/modules/workspace/affairs-lightweight-session-controller.js +193 -0
  357. package/dist/server/modules/workspace/affairs-lightweight-session-controller.js.map +1 -0
  358. package/dist/server/modules/workspace/affairs-lightweight-session-service.d.ts +146 -0
  359. package/dist/server/modules/workspace/affairs-lightweight-session-service.js +1593 -0
  360. package/dist/server/modules/workspace/affairs-lightweight-session-service.js.map +1 -0
  361. package/dist/server/modules/workspace/affairs-tag-controller.d.ts +110 -0
  362. package/dist/server/modules/workspace/affairs-tag-controller.js +102 -0
  363. package/dist/server/modules/workspace/affairs-tag-controller.js.map +1 -0
  364. package/dist/server/modules/workspace/affairs-tag-service.d.ts +174 -0
  365. package/dist/server/modules/workspace/affairs-tag-service.js +719 -0
  366. package/dist/server/modules/workspace/affairs-tag-service.js.map +1 -0
  367. package/dist/server/modules/workspace/teable-api-client.d.ts +118 -0
  368. package/dist/server/modules/workspace/teable-api-client.js +142 -0
  369. package/dist/server/modules/workspace/teable-api-client.js.map +1 -0
  370. package/dist/server/modules/workspace/teable-catalog-controller.d.ts +18 -0
  371. package/dist/server/modules/workspace/teable-catalog-controller.js +17 -0
  372. package/dist/server/modules/workspace/teable-catalog-controller.js.map +1 -0
  373. package/dist/server/modules/workspace/teable-catalog-service.d.ts +36 -0
  374. package/dist/server/modules/workspace/teable-catalog-service.js +124 -0
  375. package/dist/server/modules/workspace/teable-catalog-service.js.map +1 -0
  376. package/dist/server/modules/workspace/teable-credential-service.d.ts +8 -0
  377. package/dist/server/modules/workspace/teable-credential-service.js +37 -0
  378. package/dist/server/modules/workspace/teable-credential-service.js.map +1 -0
  379. package/dist/server/modules/workspace/teable-field-mapping-controller.d.ts +25 -0
  380. package/dist/server/modules/workspace/teable-field-mapping-controller.js +31 -0
  381. package/dist/server/modules/workspace/teable-field-mapping-controller.js.map +1 -0
  382. package/dist/server/modules/workspace/teable-field-mapping-service.d.ts +38 -0
  383. package/dist/server/modules/workspace/teable-field-mapping-service.js +215 -0
  384. package/dist/server/modules/workspace/teable-field-mapping-service.js.map +1 -0
  385. package/dist/server/modules/workspace/teable-global-binding-controller.d.ts +22 -0
  386. package/dist/server/modules/workspace/teable-global-binding-controller.js +25 -0
  387. package/dist/server/modules/workspace/teable-global-binding-controller.js.map +1 -0
  388. package/dist/server/modules/workspace/teable-global-binding-service.d.ts +35 -0
  389. package/dist/server/modules/workspace/teable-global-binding-service.js +151 -0
  390. package/dist/server/modules/workspace/teable-global-binding-service.js.map +1 -0
  391. package/dist/server/modules/workspace/teable-mirror-sync-controller.d.ts +29 -0
  392. package/dist/server/modules/workspace/teable-mirror-sync-controller.js +50 -0
  393. package/dist/server/modules/workspace/teable-mirror-sync-controller.js.map +1 -0
  394. package/dist/server/modules/workspace/teable-mirror-sync-service.d.ts +157 -0
  395. package/dist/server/modules/workspace/teable-mirror-sync-service.js +917 -0
  396. package/dist/server/modules/workspace/teable-mirror-sync-service.js.map +1 -0
  397. package/dist/server/modules/workspace/teable-runtime-controller.d.ts +58 -0
  398. package/dist/server/modules/workspace/teable-runtime-controller.js +60 -0
  399. package/dist/server/modules/workspace/teable-runtime-controller.js.map +1 -0
  400. package/dist/server/modules/workspace/teable-runtime-service.d.ts +96 -0
  401. package/dist/server/modules/workspace/teable-runtime-service.js +362 -0
  402. package/dist/server/modules/workspace/teable-runtime-service.js.map +1 -0
  403. package/dist/server/modules/workspace/teable-workbench-sync-config-controller.d.ts +22 -0
  404. package/dist/server/modules/workspace/teable-workbench-sync-config-controller.js +20 -0
  405. package/dist/server/modules/workspace/teable-workbench-sync-config-controller.js.map +1 -0
  406. package/dist/server/modules/workspace/teable-workbench-sync-config-service.d.ts +22 -0
  407. package/dist/server/modules/workspace/teable-workbench-sync-config-service.js +159 -0
  408. package/dist/server/modules/workspace/teable-workbench-sync-config-service.js.map +1 -0
  409. package/dist/server/modules/workspace/workspace-controller.d.ts +2 -1
  410. package/dist/server/modules/workspace/workspace-controller.js +8 -2
  411. package/dist/server/modules/workspace/workspace-controller.js.map +1 -1
  412. package/dist/server/modules/workspace/workspace-service.js +60 -9
  413. package/dist/server/modules/workspace/workspace-service.js.map +1 -1
  414. package/dist/server/routes/affairs.d.ts +11 -0
  415. package/dist/server/routes/affairs.js +126 -0
  416. package/dist/server/routes/affairs.js.map +1 -0
  417. package/dist/server/routes/assistant.js +0 -5
  418. package/dist/server/routes/assistant.js.map +1 -1
  419. package/dist/server/routes/files.js +5 -0
  420. package/dist/server/routes/files.js.map +1 -1
  421. package/dist/server/routes/office.js +4 -0
  422. package/dist/server/routes/office.js.map +1 -1
  423. package/dist/server/routes/system.d.ts +2 -1
  424. package/dist/server/routes/system.js +2 -1
  425. package/dist/server/routes/system.js.map +1 -1
  426. package/dist/server/routes/workbench.js +15 -0
  427. package/dist/server/routes/workbench.js.map +1 -1
  428. package/dist/server/routes/workspaces.d.ts +4 -1
  429. package/dist/server/routes/workspaces.js +56 -1
  430. package/dist/server/routes/workspaces.js.map +1 -1
  431. package/dist/server/server/create-server.d.ts +20 -2
  432. package/dist/server/server/create-server.js +180 -33
  433. package/dist/server/server/create-server.js.map +1 -1
  434. package/dist/server/shared/http/error-handler.js +10 -0
  435. package/dist/server/shared/http/error-handler.js.map +1 -1
  436. package/dist/server/storage/repositories/affairs-assistant-session-snapshot-repository.d.ts +10 -0
  437. package/dist/server/storage/repositories/affairs-assistant-session-snapshot-repository.js +47 -0
  438. package/dist/server/storage/repositories/affairs-assistant-session-snapshot-repository.js.map +1 -0
  439. package/dist/server/storage/repositories/butler-profile-repository.js +7 -3
  440. package/dist/server/storage/repositories/butler-profile-repository.js.map +1 -1
  441. package/dist/server/storage/repositories/office-onlyoffice-setting-repository.d.ts +19 -0
  442. package/dist/server/storage/repositories/office-onlyoffice-setting-repository.js +55 -0
  443. package/dist/server/storage/repositories/office-onlyoffice-setting-repository.js.map +1 -0
  444. package/dist/server/storage/repositories/session-index-repository.js +9 -2
  445. package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
  446. package/dist/server/storage/repositories/user-affairs-library-setting-repository.d.ts +10 -0
  447. package/dist/server/storage/repositories/user-affairs-library-setting-repository.js +72 -0
  448. package/dist/server/storage/repositories/user-affairs-library-setting-repository.js.map +1 -0
  449. package/dist/server/storage/repositories/user-preference-profile-repository.js +6 -3
  450. package/dist/server/storage/repositories/user-preference-profile-repository.js.map +1 -1
  451. package/dist/server/storage/repositories/user-teable-credential-repository.d.ts +9 -0
  452. package/dist/server/storage/repositories/user-teable-credential-repository.js +45 -0
  453. package/dist/server/storage/repositories/user-teable-credential-repository.js.map +1 -0
  454. package/dist/server/storage/repositories/user-teable-field-mapping-repository.d.ts +10 -0
  455. package/dist/server/storage/repositories/user-teable-field-mapping-repository.js +69 -0
  456. package/dist/server/storage/repositories/user-teable-field-mapping-repository.js.map +1 -0
  457. package/dist/server/storage/repositories/user-teable-global-setting-repository.d.ts +8 -0
  458. package/dist/server/storage/repositories/user-teable-global-setting-repository.js +52 -0
  459. package/dist/server/storage/repositories/user-teable-global-setting-repository.js.map +1 -0
  460. package/dist/server/storage/repositories/user-teable-mirror-record-mapping-repository.d.ts +9 -0
  461. package/dist/server/storage/repositories/user-teable-mirror-record-mapping-repository.js +66 -0
  462. package/dist/server/storage/repositories/user-teable-mirror-record-mapping-repository.js.map +1 -0
  463. package/dist/server/storage/repositories/user-teable-mirror-table-binding-repository.d.ts +9 -0
  464. package/dist/server/storage/repositories/user-teable-mirror-table-binding-repository.js +67 -0
  465. package/dist/server/storage/repositories/user-teable-mirror-table-binding-repository.js.map +1 -0
  466. package/dist/server/storage/repositories/user-teable-sync-log-repository.d.ts +14 -0
  467. package/dist/server/storage/repositories/user-teable-sync-log-repository.js +97 -0
  468. package/dist/server/storage/repositories/user-teable-sync-log-repository.js.map +1 -0
  469. package/dist/server/storage/repositories/user-teable-workbench-sync-config-repository.d.ts +8 -0
  470. package/dist/server/storage/repositories/user-teable-workbench-sync-config-repository.js +55 -0
  471. package/dist/server/storage/repositories/user-teable-workbench-sync-config-repository.js.map +1 -0
  472. package/dist/server/storage/repositories/workspace-navigation-state-repository.d.ts +3 -0
  473. package/dist/server/storage/repositories/workspace-navigation-state-repository.js +47 -4
  474. package/dist/server/storage/repositories/workspace-navigation-state-repository.js.map +1 -1
  475. package/dist/server/storage/sqlite/client.js +633 -123
  476. package/dist/server/storage/sqlite/client.js.map +1 -1
  477. package/dist/server/storage/sqlite/schema.sql +214 -25
  478. package/dist/server/types/domain.d.ts +133 -20
  479. package/dist/server/ws/workbench-ws-hub.js +2 -2
  480. package/dist/server/ws/workbench-ws-hub.js.map +1 -1
  481. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js +0 -2
  482. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js.map +1 -1
  483. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +0 -6
  484. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
  485. package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.d.ts +22 -3
  486. package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.js +29 -2
  487. package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.js.map +1 -1
  488. package/node_modules/@codingns/session-sync-core/package.json +3 -1
  489. package/package.json +1 -1
  490. package/dist/public/assets/AdaptiveButlerPage-B153lk5H.css +0 -1
  491. package/dist/public/assets/AdaptiveButlerPage-CJw8Ae62.js +0 -3
  492. package/dist/public/assets/DesktopModal-D_A8sgQU.js +0 -1
  493. package/dist/public/assets/DesktopWindowPage-DK7L7osV.js +0 -2
  494. package/dist/public/assets/FileContextPanel-BdCoubcJ.js +0 -1
  495. package/dist/public/assets/GitSidebar-BeZ0hj7A.js +0 -6
  496. package/dist/public/assets/MobileCreateSessionSheet-DfLMVu8q.js +0 -1
  497. package/dist/public/assets/MobileSheet-5kZ-w-gU.js +0 -1
  498. package/dist/public/assets/MobileWorkspaceSwitcherHeader-C6JMiOq_.js +0 -1
  499. package/dist/public/assets/PluginContainerPage-BlY-xJDh.js +0 -1
  500. package/dist/public/assets/SessionIndexPage-DkBp9Mqz.js +0 -1
  501. package/dist/public/assets/SettingsPage-C-ASmJAG.js +0 -2
  502. package/dist/public/assets/TerminalManagerPanel-NVZRxxmH.js +0 -1
  503. package/dist/public/assets/TerminalRuntimeFallbackModal-Bzum5nZ0.js +0 -1
  504. package/dist/public/assets/WorkbenchLayout-OFi6CWgH.js +0 -244
  505. package/dist/public/assets/WorkbenchShellRoute-B4XB8SwG.css +0 -1
  506. package/dist/public/assets/WorkbenchShellRoute-BAQe_E0O.js +0 -1
  507. package/dist/public/assets/WorkspaceDebugDetailPage-DhKa6e9y.js +0 -1
  508. package/dist/public/assets/WorkspaceDetailPage-BPsrFffw.js +0 -1
  509. package/dist/public/assets/WorkspaceHomePage-KAtqZOAb.js +0 -1
  510. package/dist/public/assets/file-tree-icon-Mg1DiBRX.js +0 -590
  511. package/dist/public/assets/index-C4t-vvqk.css +0 -1
  512. package/dist/public/assets/index-CL97fwWB.js +0 -42
  513. package/dist/public/assets/realtime-client-CLafKzzJ.js +0 -1
  514. package/dist/public/assets/useRegisteredDebugTemplates-DQAWVdCo.js +0 -1
  515. package/dist/public/assets/workbench-navigation-MEzCSmsK.js +0 -1
@@ -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,31 @@ 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 { AFFAIRS_GLOBAL_WORKSPACE_ID, 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";
185
+ import { TeableCatalogController } from "../modules/workspace/teable-catalog-controller.js";
186
+ import { TeableCatalogService } from "../modules/workspace/teable-catalog-service.js";
187
+ import { TeableFieldMappingController } from "../modules/workspace/teable-field-mapping-controller.js";
188
+ import { TeableFieldMappingService } from "../modules/workspace/teable-field-mapping-service.js";
189
+ import { TeableGlobalBindingController } from "../modules/workspace/teable-global-binding-controller.js";
190
+ import { TeableGlobalBindingService } from "../modules/workspace/teable-global-binding-service.js";
191
+ import { TeableMirrorSyncController } from "../modules/workspace/teable-mirror-sync-controller.js";
192
+ import { TeableRuntimeController } from "../modules/workspace/teable-runtime-controller.js";
193
+ import { TeableRuntimeService } from "../modules/workspace/teable-runtime-service.js";
194
+ import { TeableWorkbenchSyncConfigController } from "../modules/workspace/teable-workbench-sync-config-controller.js";
195
+ import { TeableWorkbenchSyncConfigService } from "../modules/workspace/teable-workbench-sync-config-service.js";
196
+ import { TeableMirrorSyncService } from "../modules/workspace/teable-mirror-sync-service.js";
197
+ import { TeableCredentialService } from "../modules/workspace/teable-credential-service.js";
171
198
  import { WorkspaceService } from "../modules/workspace/workspace-service.js";
172
199
  import { registerAuthRoutes } from "../routes/auth.js";
200
+ import { registerAffairsRoutes } from "../routes/affairs.js";
173
201
  import { registerAssistantCapabilityRoutes } from "../routes/assistant.js";
174
202
  import { registerButlerRoutes } from "../routes/butler.js";
175
203
  import { registerBrowserRuntimeRoutes } from "../routes/browser-runtime.js";
@@ -203,7 +231,6 @@ import { DemoCleanupService, DemoOnlineTracker } from "../modules/demo/demo-clea
203
231
  import { setErrorHandler } from "../shared/http/error-handler.js";
204
232
  import { startTerminalDebugEventLoopLagMonitor } from "../shared/utils/terminal-debug-log.js";
205
233
  import { AssistantAutomationRunRepository } from "../storage/repositories/assistant-automation-run-repository.js";
206
- import { AssistantSandboxWorkspaceRepository } from "../storage/repositories/assistant-sandbox-workspace-repository.js";
207
234
  import { AssistantAutomationTaskRepository } from "../storage/repositories/assistant-automation-task-repository.js";
208
235
  import { AuthDeviceRepository } from "../storage/repositories/auth-device-repository.js";
209
236
  import { AuthDeviceSessionRepository } from "../storage/repositories/auth-device-session-repository.js";
@@ -212,6 +239,7 @@ import { AuthTokenRepository } from "../storage/repositories/auth-token-reposito
212
239
  import { AuthLoginAttemptRepository } from "../storage/repositories/auth-login-attempt-repository.js";
213
240
  import { AuthUserRepository } from "../storage/repositories/auth-user-repository.js";
214
241
  import { AiFallbackEditRepository } from "../storage/repositories/ai-fallback-edit-repository.js";
242
+ import { AffairsAssistantSessionSnapshotRepository } from "../storage/repositories/affairs-assistant-session-snapshot-repository.js";
215
243
  import { BootstrapStateRepository } from "../storage/repositories/bootstrap-state-repository.js";
216
244
  import { ButlerControlTimerRepository } from "../storage/repositories/butler-control-timer-repository.js";
217
245
  import { ButlerControlSessionRepository } from "../storage/repositories/butler-control-session-repository.js";
@@ -257,6 +285,7 @@ import { ManagedSkillRepository } from "../storage/repositories/managed-skill-re
257
285
  import { OpenCliCatalogEntryRepository } from "../storage/repositories/opencli-catalog-entry-repository.js";
258
286
  import { OpenCliProviderRepository } from "../storage/repositories/opencli-provider-repository.js";
259
287
  import { OpenCliRuntimeProfileRepository } from "../storage/repositories/opencli-runtime-profile-repository.js";
288
+ import { OfficeOnlyOfficeSettingRepository } from "../storage/repositories/office-onlyoffice-setting-repository.js";
260
289
  import { PluginDefinitionRepository } from "../storage/repositories/plugin-definition-repository.js";
261
290
  import { PluginEnablementRepository } from "../storage/repositories/plugin-enablement-repository.js";
262
291
  import { PluginPermissionGrantRepository } from "../storage/repositories/plugin-permission-grant-repository.js";
@@ -290,6 +319,14 @@ import { TerminalLogFileRepository } from "../storage/repositories/terminal-log-
290
319
  import { TerminalLogSegmentRepository } from "../storage/repositories/terminal-log-segment-repository.js";
291
320
  import { TerminalRuntimeSessionRepository } from "../storage/repositories/terminal-runtime-session-repository.js";
292
321
  import { UserPreferenceProfileRepository } from "../storage/repositories/user-preference-profile-repository.js";
322
+ import { UserAffairsLibrarySettingRepository } from "../storage/repositories/user-affairs-library-setting-repository.js";
323
+ import { UserTeableGlobalSettingRepository } from "../storage/repositories/user-teable-global-setting-repository.js";
324
+ import { UserTeableWorkbenchSyncConfigRepository } from "../storage/repositories/user-teable-workbench-sync-config-repository.js";
325
+ import { UserTeableMirrorTableBindingRepository } from "../storage/repositories/user-teable-mirror-table-binding-repository.js";
326
+ import { UserTeableMirrorRecordMappingRepository } from "../storage/repositories/user-teable-mirror-record-mapping-repository.js";
327
+ import { UserTeableCredentialRepository } from "../storage/repositories/user-teable-credential-repository.js";
328
+ import { UserTeableFieldMappingRepository } from "../storage/repositories/user-teable-field-mapping-repository.js";
329
+ import { UserTeableSyncLogRepository } from "../storage/repositories/user-teable-sync-log-repository.js";
293
330
  import { UserQuickPhrasePreferenceRepository } from "../storage/repositories/user-quick-phrase-preference-repository.js";
294
331
  import { WorkspaceRepository } from "../storage/repositories/workspace-repository.js";
295
332
  import { WorkspaceWorktreeRepository } from "../storage/repositories/workspace-worktree-repository.js";
@@ -311,6 +348,10 @@ import { PluginProcessRunner } from "../modules/plugins/plugin-process-runner.js
311
348
  import { PluginRuntimeService } from "../modules/plugins/plugin-runtime-service.js";
312
349
  import { PluginSchedulerService } from "../modules/plugins/plugin-scheduler-service.js";
313
350
  export function createServer(config) {
351
+ const affairsLibraryDebugLogPath = getAffairsLibraryDebugLogPath();
352
+ if (affairsLibraryDebugLogPath) {
353
+ process.env.CODINGNS_AFFAIRS_DEBUG_LOG_DIR = path.dirname(affairsLibraryDebugLogPath);
354
+ }
314
355
  // Demo 模式下覆盖 token TTL 为 15 分钟
315
356
  const effectiveConfig = config.demoMode
316
357
  ? { ...config, accessTokenTtlSeconds: 900, refreshTokenTtlSeconds: 900 }
@@ -318,7 +359,10 @@ export function createServer(config) {
318
359
  const enableWechatClawHelperInTests = process.env.CODINGNS_ENABLE_WECHAT_CLAW_HELPER_IN_TESTS === "true";
319
360
  const enableWechatClawHelper = !process.env.VITEST || enableWechatClawHelperInTests;
320
361
  const app = Fastify({
321
- logger: false
362
+ logger: false,
363
+ routerOptions: {
364
+ maxParamLength: 512
365
+ }
322
366
  });
323
367
  let shuttingDown = false;
324
368
  const stopTerminalDebugEventLoopLagMonitor = startTerminalDebugEventLoopLagMonitor();
@@ -333,10 +377,18 @@ export function createServer(config) {
333
377
  authLoginAttemptRepository: new AuthLoginAttemptRepository(database.db),
334
378
  assistantAutomationTaskRepository: new AssistantAutomationTaskRepository(database.db),
335
379
  assistantAutomationRunRepository: new AssistantAutomationRunRepository(database.db),
336
- assistantSandboxWorkspaceRepository: new AssistantSandboxWorkspaceRepository(database.db),
337
380
  workspaceRepository: new WorkspaceRepository(database.db),
338
381
  workspaceWorktreeRepository: new WorkspaceWorktreeRepository(database.db),
339
382
  workspaceNavigationStateRepository: new WorkspaceNavigationStateRepository(database.db),
383
+ affairsAssistantSessionSnapshotRepository: new AffairsAssistantSessionSnapshotRepository(database.db),
384
+ userAffairsLibrarySettingRepository: new UserAffairsLibrarySettingRepository(database.db),
385
+ userTeableGlobalSettingRepository: new UserTeableGlobalSettingRepository(database.db),
386
+ userTeableCredentialRepository: new UserTeableCredentialRepository(database.db),
387
+ userTeableWorkbenchSyncConfigRepository: new UserTeableWorkbenchSyncConfigRepository(database.db),
388
+ userTeableMirrorTableBindingRepository: new UserTeableMirrorTableBindingRepository(database.db),
389
+ userTeableMirrorRecordMappingRepository: new UserTeableMirrorRecordMappingRepository(database.db),
390
+ userTeableFieldMappingRepository: new UserTeableFieldMappingRepository(database.db),
391
+ userTeableSyncLogRepository: new UserTeableSyncLogRepository(database.db),
340
392
  parallelSessionGroupRepository: new ParallelSessionGroupRepository(database.db),
341
393
  parallelSessionMemberRepository: new ParallelSessionMemberRepository(database.db),
342
394
  sessionIsolatedWorkspaceRepository: new SessionIsolatedWorkspaceRepository(database.db),
@@ -352,6 +404,7 @@ export function createServer(config) {
352
404
  officeConnectorRepository: new OfficeConnectorRepository(database.db),
353
405
  officeAuditEventRepository: new OfficeAuditEventRepository(database.db),
354
406
  officeRollbackRecordRepository: new OfficeRollbackRecordRepository(database.db),
407
+ officeOnlyOfficeSettingRepository: new OfficeOnlyOfficeSettingRepository(database.db),
355
408
  browserProfileRepository: new BrowserProfileRepository(database.db),
356
409
  pluginDefinitionRepository: new PluginDefinitionRepository(database.db),
357
410
  pluginEnablementRepository: new PluginEnablementRepository(database.db),
@@ -445,6 +498,7 @@ export function createServer(config) {
445
498
  const workspaceService = new WorkspaceService(repositories.workspaceRepository, gitCommandRunner, repositories.workspaceNavigationStateRepository, butlerProfileService, repositories.workspaceWorktreeRepository, taskManager, repositories.sessionIsolatedWorkspaceRepository);
446
499
  const fileAccessGuard = new FileAccessGuard(workspaceService, app.log);
447
500
  const recentFileService = new RecentFileService(repositories.recentFileRepository);
501
+ const recentModifiedFileService = new RecentModifiedFileService(fileAccessGuard);
448
502
  const fileVersionChecker = new FileVersionChecker();
449
503
  const fileTreeService = new FileTreeService(fileAccessGuard);
450
504
  const fileSearchService = new FileSearchService(fileAccessGuard);
@@ -452,6 +506,7 @@ export function createServer(config) {
452
506
  const filePreviewService = new FilePreviewService(fileAccessGuard, fileContentService, recentFileService);
453
507
  const workspaceFileBridgeWatchService = new WorkspaceFileBridgeWatchService(fileAccessGuard, app.log);
454
508
  const workspaceFileBridgeService = new WorkspaceFileBridgeService(workspaceService, fileAccessGuard, app.log, workspaceFileBridgeWatchService);
509
+ const workspaceIndexApplyService = new WorkspaceIndexApplyService(workspaceService, app.log);
455
510
  const filePreviewLinkService = new FilePreviewLinkService(fileAccessGuard, config.filePreviewTokenSecret);
456
511
  const pluginRegistryService = new PluginRegistryService(repositories.pluginDefinitionRepository, repositories.pluginEnablementRepository, repositories.pluginAuditEventRepository, config.pluginRootDir, app.log);
457
512
  pluginRegistryService.syncPluginsFromDisk();
@@ -523,6 +578,22 @@ export function createServer(config) {
523
578
  claudeCodeHomeDir: config.claudeCodeHomeDir,
524
579
  runtimeStorageRootDir: path.dirname(config.databasePath)
525
580
  });
581
+ const workspaceSessionInstructionWatchService = new WorkspaceSessionInstructionWatchService(workspaceService, ({ workspaceId, workspacePath, reason }) => {
582
+ const result = workspaceSessionRuntimeContextService.refreshWorkspaceInstructionBundlesForWorkspace({
583
+ workspaceId,
584
+ workspacePath
585
+ });
586
+ app.log.info({
587
+ workspaceId,
588
+ workspacePath,
589
+ reason,
590
+ refreshedCount: result.refreshedCount,
591
+ scannedRuntimeHomeDirs: result.scannedRuntimeHomeDirs,
592
+ updatedInstructionFiles: result.updatedInstructionFiles,
593
+ source: "workspace_session.agents_watch"
594
+ }, "工作区会话 instruction bundle 已按最新 AGENTS.md 重写");
595
+ }, app.log);
596
+ workspaceSessionInstructionWatchService.syncAll();
526
597
  const sessionProviderConfigService = new SessionProviderConfigService(config, ccSwitchAdapter, openCliRuntimeResolver, openCliBridgeSkillService, workspaceSessionRuntimeContextService);
527
598
  const skillTargetAdapters = createDefaultSkillTargetAdapters(config);
528
599
  const skillManagerService = new SkillManagerService(repositories.managedSkillRepository, repositories.skillTargetBindingRepository, skillTargetAdapters, {
@@ -556,7 +627,7 @@ export function createServer(config) {
556
627
  const providerRuntimeStateService = new ProviderRuntimeStateService(config, repositories.providerRuntimeStateRepository);
557
628
  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
629
  const providerCatalogService = new ProviderCatalogService(config, repositories.providerControlRepository, providerRuntimeStateService);
559
- runtimeObservabilityService = new RuntimeObservabilityService(() => sessionHistoryService.observeBackgroundTaskMetrics(), () => schedulerMetrics.observe(), eventLoopMonitor, taskActivityLog);
630
+ runtimeObservabilityService = new RuntimeObservabilityService(() => sessionHistoryService.observeBackgroundTaskMetrics(), () => taskManager.listDefinitions(), () => schedulerMetrics.observe(), eventLoopMonitor, taskActivityLog);
560
631
  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
632
  sessionHistoryService.registerLiveActivityObservationResolver((sessionId) => sessionLiveRuntimeService.resolveLiveActivityObservation(sessionId));
562
633
  const butlerRuntimeRootDir = path.join(path.dirname(config.databasePath), "butler-runtime");
@@ -588,15 +659,7 @@ export function createServer(config) {
588
659
  ]);
589
660
  const sessionProviderUsageLimitGuardService = new SessionProviderUsageLimitGuardService(sessionHistoryService);
590
661
  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
- });
662
+ const butlerProjectService = new ButlerProjectService(repositories.butlerProjectRepository, repositories.butlerSessionRepository, repositories.workspaceRepository, butlerProfileService);
600
663
  const butlerInboxService = new ButlerInboxService(repositories.butlerProjectRepository, repositories.butlerInboxItemRepository, taskManager);
601
664
  const butlerNotificationService = new ButlerNotificationService(repositories.butlerNotificationArchiveRepository);
602
665
  const butlerSessionService = new ButlerSessionService(repositories.butlerProjectRepository, repositories.butlerSessionRepository, repositories.sessionCheckpointRepository, repositories.sessionBindingRepository, repositories.sessionIndexRepository, repositories.sessionStateRepository, sessionLiveRuntimeService, sessionHistoryService, repositories.sessionMessageOriginRepository, sessionProviderUsageLimitGuardService);
@@ -642,13 +705,7 @@ export function createServer(config) {
642
705
  const butlerFollowUpScheduler = new ButlerFollowUpScheduler(butlerFollowUpService, {
643
706
  schedulerMetrics
644
707
  });
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);
708
+ 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
709
  const channelBridgeService = new ChannelBridgeService(repositories.channelAccountRepository, repositories.channelThreadRepository, repositories.channelInboundEventRepository, butlerControlSessionService);
653
710
  const channelDeliveryService = new ChannelDeliveryService(repositories.channelAccountRepository, repositories.channelThreadRepository, repositories.channelInboundEventRepository, repositories.channelDeliveryRepository, sessionHistoryService, channelPlatformAdapterRegistry, taskManager);
654
711
  channelDeliveryService.recoverRetryableDeliveries();
@@ -669,6 +726,9 @@ export function createServer(config) {
669
726
  const butlerControlTimerScheduler = new ButlerControlTimerScheduler(butlerControlTimerService, {
670
727
  schedulerMetrics
671
728
  });
729
+ const butlerFollowUpTerminalSubscription = sessionLiveRuntimeService.registerTerminalStateListener(async (event) => {
730
+ await butlerFollowUpService.handleSessionTerminal(event.sessionId, event.timestamp);
731
+ });
672
732
  butlerInboxService.configureLifecycleServices({
673
733
  butlerInboxAnalysisService,
674
734
  butlerControlSessionService,
@@ -698,6 +758,48 @@ export function createServer(config) {
698
758
  const workspacePanelSnapshotService = new WorkspacePanelSnapshotService(fileTreeService, gitReadService, terminalService, commandTemplateService, workspaceService, taskManager);
699
759
  const fileWatcher = new WorkspaceFileWatcher(workspaceService);
700
760
  const codexArchiveWatcher = new CodexArchiveWatcher(config.codexHomeDir);
761
+ const affairsLibraryService = new AffairsLibraryService(workspaceService, repositories.workspaceNavigationStateRepository, repositories.userAffairsLibrarySettingRepository, taskManager, app.log);
762
+ fileContentService.setFileMutationHook((event) => {
763
+ affairsLibraryService.notifyWorkspaceFileMutation(event.workspaceId, {
764
+ absolutePath: event.absolutePath,
765
+ kind: event.kind
766
+ });
767
+ });
768
+ workspaceFileBridgeService.setMutationHook((event) => {
769
+ affairsLibraryService.notifyWorkspaceFileMutation(event.workspaceId, {
770
+ absolutePath: event.absolutePath,
771
+ kind: event.kind
772
+ });
773
+ });
774
+ pluginFileGatewayService.setMutationHook((event) => {
775
+ affairsLibraryService.notifyWorkspaceFileMutation(event.workspaceId, {
776
+ absolutePath: event.absolutePath,
777
+ kind: event.kind
778
+ });
779
+ });
780
+ const affairsLibraryDirtyWatchService = new AffairsLibraryDirtyWatchService(() => affairsLibraryService.listEnabledBindingsForWatch(), (workspaceId) => affairsLibraryService.getBindingForWatch(workspaceId), (workspaceId, event) => {
781
+ if (event.kind === "config") {
782
+ affairsLibraryService.scheduleAutoApplyConfig(workspaceId, event.reason);
783
+ return;
784
+ }
785
+ if (event.kind === "audit") {
786
+ affairsLibraryService.schedulePeriodicAudit(workspaceId, event.reason);
787
+ return;
788
+ }
789
+ affairsLibraryService.scheduleAutoRefresh(workspaceId, event.reason, event.targetPath);
790
+ }, app.log);
791
+ affairsLibraryDirtyWatchService.syncAll();
792
+ const affairsLibraryPreviewLinkService = new AffairsLibraryPreviewLinkService(affairsLibraryService, config.filePreviewTokenSecret);
793
+ const affairsAssistantSessionSnapshotService = new AffairsAssistantSessionSnapshotService(repositories.affairsAssistantSessionSnapshotRepository, affairsLibraryService, butlerProjectService, butlerSessionService, taskManager);
794
+ const workbenchService = new WorkbenchService(repositories.workspaceRepository, repositories.workspaceNavigationStateRepository, sessionHistoryService, butlerProfileService, repositories.butlerControlSessionRepository, repositories.workspaceWorktreeRepository, taskManager, repositories.sessionIsolatedWorkspaceRepository, affairsAssistantSessionSnapshotService);
795
+ const onlyOfficeIntegrationService = new OnlyOfficeIntegrationService(repositories.officeOnlyOfficeSettingRepository, filePreviewLinkService, affairsLibraryPreviewLinkService, fileAccessGuard, affairsLibraryService, config.filePreviewTokenSecret);
796
+ const affairsLightweightSessionService = new AffairsLightweightSessionService(path.dirname(config.databasePath));
797
+ const teableCredentialService = new TeableCredentialService(repositories.userTeableCredentialRepository, config.teableCredentialSecret);
798
+ const teableGlobalBindingService = new TeableGlobalBindingService(repositories.userTeableGlobalSettingRepository, teableCredentialService);
799
+ const teableWorkbenchSyncConfigService = new TeableWorkbenchSyncConfigService(repositories.userTeableWorkbenchSyncConfigRepository);
800
+ const teableCatalogService = new TeableCatalogService(teableGlobalBindingService, teableCredentialService, config.filePreviewTokenSecret);
801
+ const teableRuntimeService = new TeableRuntimeService(teableGlobalBindingService, teableCredentialService);
802
+ const teableFieldMappingService = new TeableFieldMappingService(repositories.userTeableFieldMappingRepository, repositories.userTeableWorkbenchSyncConfigRepository);
701
803
  const bootstrapController = new BootstrapController(bootstrapService);
702
804
  const clientController = new ClientController(clientService);
703
805
  const channelController = new ChannelController(channelsService);
@@ -708,10 +810,52 @@ export function createServer(config) {
708
810
  };
709
811
  terminalService.on("exit", handleDebugTargetTerminalExit);
710
812
  const authController = new AuthController(authService);
711
- const workspaceController = new WorkspaceController(workspaceService);
813
+ const workspaceController = new WorkspaceController(workspaceService, (workspaceId) => {
814
+ workspaceSessionInstructionWatchService.syncWorkspace(workspaceId);
815
+ });
816
+ const affairsLibraryController = new AffairsLibraryController(affairsLibraryService, affairsLibraryPreviewLinkService, onlyOfficeIntegrationService, (workspaceId) => {
817
+ const normalizedWorkspaceId = workspaceId?.trim() ?? "";
818
+ if (!normalizedWorkspaceId) {
819
+ return;
820
+ }
821
+ affairsLibraryDirtyWatchService.syncWorkspace(normalizedWorkspaceId);
822
+ if (normalizedWorkspaceId === AFFAIRS_GLOBAL_WORKSPACE_ID) {
823
+ return;
824
+ }
825
+ workspaceSessionInstructionWatchService.syncWorkspace(normalizedWorkspaceId);
826
+ });
827
+ const affairsLightweightSessionController = new AffairsLightweightSessionController(affairsLightweightSessionService);
828
+ const teableGlobalBindingController = new TeableGlobalBindingController(teableGlobalBindingService);
829
+ const teableWorkbenchSyncConfigController = new TeableWorkbenchSyncConfigController(teableWorkbenchSyncConfigService);
830
+ const teableCatalogController = new TeableCatalogController(teableCatalogService);
831
+ const teableRuntimeController = new TeableRuntimeController(teableRuntimeService);
832
+ const teableFieldMappingController = new TeableFieldMappingController(teableFieldMappingService);
833
+ const affairsTagService = new AffairsTagService(workspaceService, affairsLibraryService, taskManager);
834
+ const teableMirrorSyncService = new TeableMirrorSyncService(repositories.userTeableMirrorTableBindingRepository, repositories.userTeableMirrorRecordMappingRepository, taskManager, teableGlobalBindingService, teableCredentialService, teableWorkbenchSyncConfigService, affairsTagService, affairsLightweightSessionService, repositories.butlerInboxItemRepository, repositories.butlerProjectRepository, repositories.butlerFollowUpTaskRepository, repositories.workspaceRepository, teableFieldMappingService, repositories.userTeableSyncLogRepository);
835
+ const requestTeableLocalChangeSyncForUser = (userId, mirrorTypes, reason) => {
836
+ teableMirrorSyncService.requestLocalChangeMirrorSync(userId, {
837
+ mirrorTypes,
838
+ reason
839
+ });
840
+ };
841
+ const requestTeableTodoLocalChangeSync = (reason) => {
842
+ for (const userId of repositories.authUserRepository.listIds()) {
843
+ requestTeableLocalChangeSyncForUser(userId, ["todos"], reason);
844
+ }
845
+ };
846
+ affairsTagService.configureTeableMirrorSyncNotifier((userId, reason) => {
847
+ requestTeableLocalChangeSyncForUser(userId, ["tags"], reason);
848
+ });
849
+ affairsLightweightSessionService.configureTeableMirrorSyncNotifier((userId, reason) => {
850
+ requestTeableLocalChangeSyncForUser(userId, ["sessions"], reason);
851
+ });
852
+ butlerInboxService.configureTeableMirrorSyncNotifier(requestTeableTodoLocalChangeSync);
853
+ butlerFollowUpService.configureTeableMirrorSyncNotifier(requestTeableTodoLocalChangeSync);
854
+ const teableMirrorSyncController = new TeableMirrorSyncController(teableMirrorSyncService);
855
+ const affairsTagController = new AffairsTagController(affairsTagService);
712
856
  const worktreeController = new WorktreeController(worktreeManager, worktreeSyncService, worktreeMergeService, worktreeCleanupService);
713
857
  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);
858
+ const butlerController = new ButlerController(butlerProfileService, butlerControlSessionService, butlerControlActionService, butlerContextAggregator, butlerFollowUpService, butlerInboxService, butlerNotificationService, butlerProjectService, butlerSessionService, projectMemoryService, patrolPlanService, patrolRunService, patrolExecutionService, verificationRunService, butlerActionContextService, butlerControlTimerService, affairsLibraryService);
715
859
  const sessionController = new SessionController(sessionHistoryService, routedSessionLiveRuntimeService, repositories.butlerControlSessionRepository);
716
860
  const parallelSessionController = new ParallelSessionController(parallelSessionGroupService, sessionIsolatedWorkspaceService);
717
861
  const providerController = new ProviderController(sessionHistoryService, sessionProviderConfigService, providerCatalogService, routedSessionLiveRuntimeService, config);
@@ -719,11 +863,12 @@ export function createServer(config) {
719
863
  const tailscaleController = new TailscaleController(tailscaleService);
720
864
  const relayTunnelController = new RelayTunnelController(relayTunnelService);
721
865
  const modelSwitchController = new ModelSwitchController(modelSwitchService);
866
+ const hostResourceController = new HostResourceController(new HostResourceService(path.dirname(config.databasePath)));
722
867
  const quickPhraseController = new QuickPhraseController(quickPhraseService);
723
868
  const profileController = new ProfileController(preferenceProfileService);
724
869
  const officeService = new OfficeService(repositories.officeTaskRepository, repositories.officeTaskStepRepository, repositories.officeArtifactRepository, repositories.officeApprovalRepository, repositories.officeReceiptRepository, repositories.officeConnectorRepository, repositories.officeAuditEventRepository, repositories.officeRollbackRecordRepository, config.databasePath);
725
870
  const officePreviewLinkService = new OfficePreviewLinkService(officeService, config.filePreviewTokenSecret);
726
- const officeController = new OfficeController(officeService, officePreviewLinkService);
871
+ const officeController = new OfficeController(officeService, officePreviewLinkService, onlyOfficeIntegrationService);
727
872
  const pluginController = new PluginController(pluginRegistryService, pluginRuntimeService, pluginStaticService, pluginRuntimeSessionService, pluginFileGatewayService, pluginPermissionService);
728
873
  const browserProfileService = new BrowserProfileService(repositories.browserProfileRepository, config.databasePath);
729
874
  const playwrightBrowserExecutor = new PlaywrightBrowserExecutor(config, repositories.officeTaskRepository, repositories.officeTaskStepRepository, repositories.officeArtifactRepository, repositories.officeReceiptRepository, repositories.officeAuditEventRepository);
@@ -739,9 +884,9 @@ export function createServer(config) {
739
884
  const sshOpsExecutor = new SshOpsExecutor(config, repositories.officeTaskRepository, repositories.officeTaskStepRepository, repositories.officeArtifactRepository, repositories.officeReceiptRepository, repositories.officeAuditEventRepository);
740
885
  const opsRuntimeService = new OpsRuntimeService(repositories.opsTargetRepository, browserProfileService, officeService, repositories.officeTaskRepository, sshOpsExecutor, taskManager);
741
886
  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));
887
+ 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
888
  const presentationController = new PresentationController(presentationExportTaskService);
744
- const fileController = new FileController(fileTreeService, fileContentService, fileSearchService, recentFileService, filePreviewService, filePreviewLinkService, workspaceFileBridgeService);
889
+ const fileController = new FileController(fileTreeService, fileContentService, fileSearchService, recentFileService, recentModifiedFileService, filePreviewService, filePreviewLinkService, affairsLibraryPreviewLinkService, affairsLibraryService, onlyOfficeIntegrationService, workspaceFileBridgeService, workspaceIndexApplyService);
745
890
  const fileContextController = new FileContextController(fileContentService, fileContextService);
746
891
  const gitController = new GitController(gitReadService, gitWriteService, commitOrchestrator, gitRemoteCredentialService);
747
892
  const terminalController = new TerminalController(terminalService, commandTemplateService);
@@ -818,7 +963,8 @@ export function createServer(config) {
818
963
  void registerBrowserRuntimeRoutes(app, browserRuntimeController);
819
964
  void registerDocumentRuntimeRoutes(app, documentRuntimeController);
820
965
  void registerOpsRuntimeRoutes(app, opsRuntimeController);
821
- void registerWorkspaceRoutes(app, workspaceController);
966
+ void registerAffairsRoutes(app, affairsLibraryController, teableGlobalBindingController, teableMirrorSyncController, teableWorkbenchSyncConfigController, teableCatalogController, teableFieldMappingController, affairsTagController, affairsLightweightSessionController, teableRuntimeController);
967
+ void registerWorkspaceRoutes(app, workspaceController, affairsLibraryController, affairsLightweightSessionController, affairsTagController);
822
968
  void registerWorktreeRoutes(app, worktreeController);
823
969
  void registerWorkbenchRoutes(app, workbenchController);
824
970
  void registerButlerRoutes(app, butlerController);
@@ -829,7 +975,7 @@ export function createServer(config) {
829
975
  void registerPreferenceRoutes(app, quickPhraseController, profileController);
830
976
  void registerSkillRoutes(app, skillController);
831
977
  void registerOpenCliRoutes(app, openCliController);
832
- void registerSystemRoutes(app, tailscaleController, relayTunnelController, modelSwitchController);
978
+ void registerSystemRoutes(app, tailscaleController, relayTunnelController, modelSwitchController, hostResourceController);
833
979
  void registerFileRoutes(app, fileController);
834
980
  void registerSessionContextRoutes(app, fileContextController);
835
981
  void registerTerminalRoutes(app, terminalController);
@@ -838,7 +984,6 @@ export function createServer(config) {
838
984
  patrolScheduler.start();
839
985
  sessionSummaryScheduler.start();
840
986
  butlerFollowUpScheduler.start();
841
- assistantSandboxCleanupScheduler.start();
842
987
  butlerControlTimerScheduler.start();
843
988
  channelPollingScheduler.start();
844
989
  debugRuntimeReconciliationScheduler.start();
@@ -854,7 +999,6 @@ export function createServer(config) {
854
999
  await patrolScheduler.dispose();
855
1000
  await sessionSummaryScheduler.dispose();
856
1001
  await butlerFollowUpScheduler.dispose();
857
- await assistantSandboxCleanupScheduler.dispose();
858
1002
  await butlerControlTimerScheduler.dispose();
859
1003
  await channelPollingScheduler.dispose();
860
1004
  await debugRuntimeReconciliationScheduler.dispose();
@@ -865,6 +1009,9 @@ export function createServer(config) {
865
1009
  await butlerSummarySessionLiveRuntimeService.dispose();
866
1010
  await butlerSessionLiveRuntimeService.dispose();
867
1011
  await sessionLiveRuntimeService.dispose();
1012
+ workspaceSessionInstructionWatchService.dispose();
1013
+ affairsLibraryDirtyWatchService.dispose();
1014
+ affairsLibraryService.dispose();
868
1015
  workbenchRuntimeTerminalSync.close();
869
1016
  await wsHandle.close();
870
1017
  codexArchiveWatcher.dispose();
@@ -874,7 +1021,7 @@ export function createServer(config) {
874
1021
  gitCommandRunner.dispose();
875
1022
  tailscaleHelperClient.dispose();
876
1023
  wechatClawRuntimeManager?.dispose();
877
- disposeSharedTaskHelperProcessClient();
1024
+ disposeSharedTaskHelperPool();
878
1025
  disposeSharedProviderDiscoveryHelperClient();
879
1026
  disposeSharedOpenCodeSystemProbeHelperClient();
880
1027
  database.close();