@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
@@ -0,0 +1,303 @@
1
+ import { nowIso } from "../../shared/utils/time.js";
2
+ import { createTaskManager } from "../tasks/task-manager.js";
3
+ import { HOST_TASK_TYPES } from "../tasks/task-types.js";
4
+ const AFFAIRS_ASSISTANT_SESSION_SNAPSHOT_MAX_AGE_MS = 15_000;
5
+ const AFFAIRS_ASSISTANT_SESSION_TASK_TIMEOUT_MS = 30_000;
6
+ export class AffairsAssistantSessionSnapshotService {
7
+ repository;
8
+ affairsLibraryService;
9
+ butlerProjectService;
10
+ butlerSessionService;
11
+ taskManager;
12
+ constructor(repository, affairsLibraryService, butlerProjectService, butlerSessionService, taskManager = createTaskManager()) {
13
+ this.repository = repository;
14
+ this.affairsLibraryService = affairsLibraryService;
15
+ this.butlerProjectService = butlerProjectService;
16
+ this.butlerSessionService = butlerSessionService;
17
+ this.taskManager = taskManager;
18
+ this.registerBackgroundTasks();
19
+ }
20
+ readSnapshot(workspaceId, userId) {
21
+ const record = this.repository.findByWorkspaceAndUserId(workspaceId, userId);
22
+ if (!record) {
23
+ return null;
24
+ }
25
+ return mapSnapshotRecord(record);
26
+ }
27
+ shouldRefresh(workspaceId, userId, maxAgeMs = AFFAIRS_ASSISTANT_SESSION_SNAPSHOT_MAX_AGE_MS) {
28
+ const snapshot = this.readSnapshot(workspaceId, userId);
29
+ if (!snapshot) {
30
+ return true;
31
+ }
32
+ const updatedAtMs = Date.parse(snapshot.updatedAt);
33
+ if (!Number.isFinite(updatedAtMs)) {
34
+ return true;
35
+ }
36
+ return Date.now() - updatedAtMs > maxAgeMs;
37
+ }
38
+ scheduleRefresh(workspaceId, userId, options) {
39
+ const normalizedWorkspaceId = workspaceId.trim();
40
+ const normalizedUserId = userId.trim();
41
+ if (!normalizedWorkspaceId || !normalizedUserId) {
42
+ return null;
43
+ }
44
+ if (!options?.force && !this.shouldRefresh(normalizedWorkspaceId, normalizedUserId)) {
45
+ this.taskManager.recordCacheHit(HOST_TASK_TYPES.workbenchAffairsAssistantSessions, `${normalizedWorkspaceId}:${normalizedUserId}`);
46
+ return null;
47
+ }
48
+ return this.taskManager.enqueue(HOST_TASK_TYPES.workbenchAffairsAssistantSessions, {
49
+ key: `${normalizedWorkspaceId}:${normalizedUserId}`,
50
+ source: options?.source ?? "workbench.affairs_assistant_sessions",
51
+ input: {
52
+ workspaceId: normalizedWorkspaceId,
53
+ userId: normalizedUserId,
54
+ force: options?.force ?? false
55
+ }
56
+ });
57
+ }
58
+ async refreshNow(workspaceId, userId, options) {
59
+ const handle = this.scheduleRefresh(workspaceId, userId, {
60
+ force: options?.force ?? false,
61
+ source: options?.source ?? "workbench.affairs_assistant_sessions.await"
62
+ });
63
+ if (!handle) {
64
+ return this.readSnapshot(workspaceId, userId) ?? createEmptySnapshot({
65
+ workspaceId,
66
+ userId
67
+ });
68
+ }
69
+ return await handle.promise;
70
+ }
71
+ registerBackgroundTasks() {
72
+ if (this.taskManager.has(HOST_TASK_TYPES.workbenchAffairsAssistantSessions)) {
73
+ return;
74
+ }
75
+ this.taskManager.register({
76
+ taskType: HOST_TASK_TYPES.workbenchAffairsAssistantSessions,
77
+ executionLane: "host_background",
78
+ timeoutMs: AFFAIRS_ASSISTANT_SESSION_TASK_TIMEOUT_MS,
79
+ run: async (input, context) => {
80
+ context.reportProgress({
81
+ phase: "resolve_binding",
82
+ label: "读取事务文档绑定"
83
+ });
84
+ return await this.runRefreshSnapshot(input.workspaceId, input.userId, input.force, context.signal);
85
+ }
86
+ });
87
+ }
88
+ async runRefreshSnapshot(workspaceId, userId, force, signal) {
89
+ const binding = this.affairsLibraryService.getBinding(workspaceId, userId);
90
+ const agentWorkspacePath = resolveAffairsAgentWorkspacePath(binding);
91
+ if (!binding?.enabled || !agentWorkspacePath) {
92
+ return this.persistSnapshot(createEmptySnapshot({
93
+ workspaceId,
94
+ userId,
95
+ agentWorkspacePath
96
+ }));
97
+ }
98
+ const activeProjects = this.butlerProjectService
99
+ .list()
100
+ .filter((project) => project.lifecycleStatus === "active");
101
+ const projectCandidates = buildAffairsAgentProjectCandidates(activeProjects, agentWorkspacePath);
102
+ if (projectCandidates.length === 0) {
103
+ return this.persistSnapshot(createEmptySnapshot({
104
+ workspaceId,
105
+ userId,
106
+ agentWorkspacePath
107
+ }));
108
+ }
109
+ let resolvedProject = null;
110
+ let resolvedSessions = [];
111
+ for (const project of projectCandidates) {
112
+ if (signal?.aborted) {
113
+ throw signal.reason ?? new Error("aborted");
114
+ }
115
+ await this.butlerSessionService.ensureProjectSessionsSynced(project.id, userId, {
116
+ includeArchived: true,
117
+ force,
118
+ mode: "blocking"
119
+ });
120
+ const sessions = this.butlerSessionService.listByProject(project.id, userId, {
121
+ includeArchived: true
122
+ });
123
+ if (!resolvedProject || sessions.length > 0) {
124
+ resolvedProject = project;
125
+ resolvedSessions = sessions;
126
+ }
127
+ if (sessions.length > 0) {
128
+ break;
129
+ }
130
+ }
131
+ return this.persistSnapshot({
132
+ workspaceId,
133
+ userId,
134
+ projectId: resolvedProject?.id ?? null,
135
+ projectWorkspaceId: resolvedProject?.workspaceId ?? null,
136
+ agentWorkspacePath,
137
+ sessions: resolvedProject
138
+ ? resolvedSessions.map((session) => mapButlerProjectSessionToAffairsAssistantSummary(session, resolvedProject.workspaceId))
139
+ : [],
140
+ updatedAt: nowIso()
141
+ });
142
+ }
143
+ persistSnapshot(snapshot) {
144
+ this.repository.upsert({
145
+ workspaceId: snapshot.workspaceId,
146
+ userId: snapshot.userId,
147
+ projectId: snapshot.projectId,
148
+ projectWorkspaceId: snapshot.projectWorkspaceId,
149
+ agentWorkspacePath: snapshot.agentWorkspacePath,
150
+ sessionsJson: JSON.stringify(snapshot.sessions),
151
+ updatedAt: snapshot.updatedAt
152
+ });
153
+ return snapshot;
154
+ }
155
+ }
156
+ function createEmptySnapshot(input) {
157
+ return {
158
+ workspaceId: input.workspaceId,
159
+ userId: input.userId,
160
+ projectId: null,
161
+ projectWorkspaceId: null,
162
+ agentWorkspacePath: input.agentWorkspacePath ?? null,
163
+ sessions: [],
164
+ updatedAt: nowIso()
165
+ };
166
+ }
167
+ function mapSnapshotRecord(record) {
168
+ return {
169
+ workspaceId: record.workspaceId,
170
+ userId: record.userId,
171
+ projectId: record.projectId,
172
+ projectWorkspaceId: record.projectWorkspaceId,
173
+ agentWorkspacePath: record.agentWorkspacePath,
174
+ sessions: parseSnapshotSessions(record.sessionsJson),
175
+ updatedAt: record.updatedAt
176
+ };
177
+ }
178
+ function parseSnapshotSessions(input) {
179
+ try {
180
+ const parsed = JSON.parse(input);
181
+ if (!Array.isArray(parsed)) {
182
+ return [];
183
+ }
184
+ return parsed.filter((item) => {
185
+ if (!item || typeof item !== "object") {
186
+ return false;
187
+ }
188
+ const candidate = item;
189
+ return typeof candidate.sessionId === "string" && typeof candidate.title === "string";
190
+ });
191
+ }
192
+ catch {
193
+ return [];
194
+ }
195
+ }
196
+ function mapButlerProjectSessionToAffairsAssistantSummary(session, workspaceId) {
197
+ const normalizedProvider = session.provider?.trim() || "codex";
198
+ const updatedAt = session.updatedAt;
199
+ const runningState = normalizeAffairsRunningState(session.runningState);
200
+ const completedAt = session.completedAt ?? (session.status === "closed" ? updatedAt : null);
201
+ const lastEventAt = session.lastEventAt ?? updatedAt;
202
+ return {
203
+ sessionId: session.sessionId,
204
+ workspaceId,
205
+ provider: normalizedProvider,
206
+ providerSessionId: session.sessionId,
207
+ rawStoreRef: `butler://${session.id}`,
208
+ providerConfigMode: "global-default",
209
+ providerPresetId: null,
210
+ parentSessionId: null,
211
+ isSubagent: false,
212
+ subagentLabel: null,
213
+ isArchived: session.isArchived,
214
+ isFavorite: session.isFavorite,
215
+ title: session.title?.trim() || session.sessionId,
216
+ messageCount: 0,
217
+ lastMessageAt: updatedAt,
218
+ createdAt: session.createdAt,
219
+ updatedAt,
220
+ syncStatus: "idle",
221
+ syncCursor: null,
222
+ lastSyncAt: updatedAt,
223
+ lastErrorCode: null,
224
+ lastErrorDetail: null,
225
+ resumedAt: null,
226
+ runningState,
227
+ activitySource: "inferred",
228
+ lastEventAt,
229
+ completedAt,
230
+ lastSeenAt: session.lastSeenAt,
231
+ activityState: resolveAffairsAssistantActivityState({
232
+ runningState,
233
+ status: session.status,
234
+ completedAt,
235
+ lastSeenAt: session.lastSeenAt
236
+ })
237
+ };
238
+ }
239
+ function resolveAffairsAssistantActivityState(input) {
240
+ if (input.status === "running" || input.runningState === "starting" || input.runningState === "running") {
241
+ return "running";
242
+ }
243
+ if (input.completedAt && (!input.lastSeenAt || input.completedAt > input.lastSeenAt)) {
244
+ return "completed_unread";
245
+ }
246
+ return "idle";
247
+ }
248
+ function buildAffairsAgentProjectCandidates(projects, workspacePath) {
249
+ const normalizedWorkspacePath = normalizeAffairsWorkspacePath(workspacePath);
250
+ return projects
251
+ .map((project) => ({
252
+ project,
253
+ matchLength: resolveAffairsWorkspacePathMatchLength(project.repoRoot, normalizedWorkspacePath)
254
+ }))
255
+ .filter((item) => item.matchLength > 0)
256
+ .sort((left, right) => right.matchLength - left.matchLength)
257
+ .map((item) => item.project);
258
+ }
259
+ function resolveAffairsAgentWorkspacePath(binding) {
260
+ const mirrorRoot = binding?.mirrorRoot?.trim() ?? "";
261
+ if (mirrorRoot) {
262
+ return mirrorRoot;
263
+ }
264
+ const rootDir = binding?.rootDir?.trim() ?? "";
265
+ return rootDir || null;
266
+ }
267
+ function normalizeAffairsRunningState(runningState) {
268
+ switch (runningState) {
269
+ case "idle":
270
+ case "starting":
271
+ case "running":
272
+ case "completed":
273
+ case "interrupted":
274
+ case "failed":
275
+ return runningState;
276
+ case "reconnecting":
277
+ case "stale":
278
+ case "unknown":
279
+ default:
280
+ return "idle";
281
+ }
282
+ }
283
+ function resolveAffairsWorkspacePathMatchLength(leftPath, rightPath) {
284
+ const normalizedLeftPath = normalizeAffairsWorkspacePath(leftPath);
285
+ const normalizedRightPath = normalizeAffairsWorkspacePath(rightPath);
286
+ if (!normalizedLeftPath || !normalizedRightPath) {
287
+ return 0;
288
+ }
289
+ if (normalizedLeftPath === normalizedRightPath) {
290
+ return normalizedLeftPath.length;
291
+ }
292
+ if (normalizedRightPath.startsWith(`${normalizedLeftPath}/`)) {
293
+ return normalizedLeftPath.length;
294
+ }
295
+ if (normalizedLeftPath.startsWith(`${normalizedRightPath}/`)) {
296
+ return normalizedRightPath.length;
297
+ }
298
+ return 0;
299
+ }
300
+ function normalizeAffairsWorkspacePath(input) {
301
+ return input?.trim().replace(/\/+$/g, "") ?? "";
302
+ }
303
+ //# sourceMappingURL=affairs-assistant-session-snapshot-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"affairs-assistant-session-snapshot-service.js","sourceRoot":"","sources":["../../../../src/modules/workbench/affairs-assistant-session-snapshot-service.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,9 @@ export declare class WorkbenchController {
4
4
  private readonly workbenchService;
5
5
  constructor(workbenchService: WorkbenchService);
6
6
  readonly getSnapshot: (request: FastifyRequest, reply: FastifyReply) => Promise<void>;
7
+ readonly getAffairsAssistantSessions: (request: FastifyRequest<{
8
+ Params: {
9
+ workspaceId: string;
10
+ };
11
+ }>, reply: FastifyReply) => Promise<void>;
7
12
  }
@@ -16,7 +16,37 @@ export class WorkbenchController {
16
16
  this.workbenchService = workbenchService;
17
17
  }
18
18
  getSnapshot = async (request, reply) => {
19
- reply.send(this.workbenchService.getSnapshot(requireUserId(request)));
19
+ const userId = requireUserId(request);
20
+ const refresh = request.headers["x-codingns-workbench-refresh"] === "true";
21
+ const awaitDiscovery = request.headers["x-codingns-workbench-await-discovery"] === "true";
22
+ if (refresh) {
23
+ reply.send(await this.workbenchService.refreshSnapshot(userId, {
24
+ force: true,
25
+ awaitDiscovery
26
+ }));
27
+ return;
28
+ }
29
+ reply.send(this.workbenchService.getSnapshot(userId));
30
+ };
31
+ getAffairsAssistantSessions = async (request, reply) => {
32
+ const userId = requireUserId(request);
33
+ const refresh = request.headers["x-codingns-affairs-assistant-refresh"] === "true";
34
+ const awaitRefresh = request.headers["x-codingns-affairs-assistant-await-refresh"] === "true";
35
+ const snapshot = refresh
36
+ ? await this.workbenchService.refreshAffairsAssistantSessionsSnapshot(request.params.workspaceId, userId, {
37
+ force: true,
38
+ awaitRefresh
39
+ })
40
+ : this.workbenchService.getAffairsAssistantSessionsSnapshot(request.params.workspaceId, userId);
41
+ reply.send({
42
+ item: {
43
+ projectId: snapshot.projectId,
44
+ projectWorkspaceId: snapshot.projectWorkspaceId,
45
+ agentWorkspacePath: snapshot.agentWorkspacePath,
46
+ sessions: snapshot.sessions,
47
+ updatedAt: snapshot.updatedAt
48
+ }
49
+ });
20
50
  };
21
51
  }
22
52
  //# sourceMappingURL=workbench-controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workbench-controller.js","sourceRoot":"","sources":["../../../../src/modules/workbench/workbench-controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAG5D,SAAS,aAAa,CAAC,OAAuB;IAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAAC;YACjB,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,cAAc;YACzB,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAE1D,WAAW,GAAG,KAAK,EAC1B,OAAuB,EACvB,KAAmB,EACJ,EAAE;QACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC;CACH"}
1
+ {"version":3,"file":"workbench-controller.js","sourceRoot":"","sources":["../../../../src/modules/workbench/workbench-controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAG5D,SAAS,aAAa,CAAC,OAAuB;IAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;IAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAAC;YACjB,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,cAAc;YACzB,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAE1D,WAAW,GAAG,KAAK,EAC1B,OAAuB,EACvB,KAAmB,EACJ,EAAE;QACjB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,KAAK,MAAM,CAAC;QAC3E,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,sCAAsC,CAAC,KAAK,MAAM,CAAC;QAE1F,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE;gBAC7D,KAAK,EAAE,IAAI;gBACX,cAAc;aACf,CAAC,CAAC,CAAC;YACJ,OAAO;QACT,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;IAEO,2BAA2B,GAAG,KAAK,EAC1C,OAIE,EACF,KAAmB,EACJ,EAAE;QACjB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,sCAAsC,CAAC,KAAK,MAAM,CAAC;QACnF,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,4CAA4C,CAAC,KAAK,MAAM,CAAC;QAE9F,MAAM,QAAQ,GAAG,OAAO;YACtB,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,uCAAuC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE;gBACxG,KAAK,EAAE,IAAI;gBACX,YAAY;aACb,CAAC;YACF,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,mCAAmC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAElG,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE;gBACJ,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;gBAC/C,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;gBAC/C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;aAC9B;SACF,CAAC,CAAC;IACL,CAAC,CAAC;CACH"}
@@ -8,6 +8,7 @@ import type { ButlerProfileService } from "../butler/butler-profile-service.js";
8
8
  import type { ButlerControlSessionRepository } from "../../storage/repositories/butler-control-session-repository.js";
9
9
  import { type TaskManager } from "../tasks/task-manager.js";
10
10
  import { type TaskHandle } from "../tasks/task-types.js";
11
+ import type { AffairsAssistantSessionSnapshot, AffairsAssistantSessionSnapshotService } from "./affairs-assistant-session-snapshot-service.js";
11
12
  export interface WorkbenchWorktreeNode {
12
13
  workspace: Workspace;
13
14
  meta: WorkspaceWorktreeRecord;
@@ -32,10 +33,16 @@ export declare class WorkbenchService {
32
33
  private readonly butlerControlSessionRepository;
33
34
  private readonly workspaceWorktreeRepository?;
34
35
  private readonly sessionIsolatedWorkspaceRepository?;
36
+ private readonly affairsAssistantSessionSnapshotService?;
35
37
  private readonly taskManager;
36
- constructor(workspaceRepository: WorkspaceRepository, workspaceNavigationStateRepository: WorkspaceNavigationStateRepository, sessionHistoryService: SessionHistoryService, butlerProfileService: Pick<ButlerProfileService, "getProfile">, butlerControlSessionRepository: Pick<ButlerControlSessionRepository, "listSessionIds">, workspaceWorktreeRepository?: Pick<WorkspaceWorktreeRepository, "listWorkspaceIds" | "listByRootWorkspaceId"> | undefined, taskManager?: TaskManager, sessionIsolatedWorkspaceRepository?: Pick<SessionIsolatedWorkspaceRepository, "listByLifecycleStatuses"> | undefined);
38
+ constructor(workspaceRepository: WorkspaceRepository, workspaceNavigationStateRepository: WorkspaceNavigationStateRepository, sessionHistoryService: SessionHistoryService, butlerProfileService: Pick<ButlerProfileService, "getProfile">, butlerControlSessionRepository: Pick<ButlerControlSessionRepository, "listSessionIds">, workspaceWorktreeRepository?: Pick<WorkspaceWorktreeRepository, "listWorkspaceIds" | "listByRootWorkspaceId"> | undefined, taskManager?: TaskManager, sessionIsolatedWorkspaceRepository?: Pick<SessionIsolatedWorkspaceRepository, "listByLifecycleStatuses"> | undefined, affairsAssistantSessionSnapshotService?: Pick<AffairsAssistantSessionSnapshotService, "readSnapshot" | "refreshNow" | "scheduleRefresh" | "shouldRefresh"> | undefined);
37
39
  getSnapshot(userId: string): WorkbenchSnapshot;
38
- shouldRefreshSnapshot(): boolean;
40
+ getAffairsAssistantSessionsSnapshot(workspaceId: string, userId: string): AffairsAssistantSessionSnapshot;
41
+ refreshAffairsAssistantSessionsSnapshot(workspaceId: string, userId: string, options?: {
42
+ force?: boolean;
43
+ awaitRefresh?: boolean;
44
+ }): Promise<AffairsAssistantSessionSnapshot>;
45
+ shouldRefreshSnapshot(userId: string): boolean;
39
46
  refreshSnapshot(userId: string, options?: {
40
47
  force?: boolean;
41
48
  awaitDiscovery?: boolean;
@@ -13,8 +13,9 @@ export class WorkbenchService {
13
13
  butlerControlSessionRepository;
14
14
  workspaceWorktreeRepository;
15
15
  sessionIsolatedWorkspaceRepository;
16
+ affairsAssistantSessionSnapshotService;
16
17
  taskManager;
17
- constructor(workspaceRepository, workspaceNavigationStateRepository, sessionHistoryService, butlerProfileService, butlerControlSessionRepository, workspaceWorktreeRepository, taskManager = createTaskManager(), sessionIsolatedWorkspaceRepository) {
18
+ constructor(workspaceRepository, workspaceNavigationStateRepository, sessionHistoryService, butlerProfileService, butlerControlSessionRepository, workspaceWorktreeRepository, taskManager = createTaskManager(), sessionIsolatedWorkspaceRepository, affairsAssistantSessionSnapshotService) {
18
19
  this.workspaceRepository = workspaceRepository;
19
20
  this.workspaceNavigationStateRepository = workspaceNavigationStateRepository;
20
21
  this.sessionHistoryService = sessionHistoryService;
@@ -22,6 +23,7 @@ export class WorkbenchService {
22
23
  this.butlerControlSessionRepository = butlerControlSessionRepository;
23
24
  this.workspaceWorktreeRepository = workspaceWorktreeRepository;
24
25
  this.sessionIsolatedWorkspaceRepository = sessionIsolatedWorkspaceRepository;
26
+ this.affairsAssistantSessionSnapshotService = affairsAssistantSessionSnapshotService;
25
27
  this.taskManager = taskManager;
26
28
  this.registerBackgroundTasks();
27
29
  }
@@ -35,17 +37,42 @@ export class WorkbenchService {
35
37
  .filter((item) => item.collapsed)
36
38
  .map((item) => item.workspaceId));
37
39
  return withSnapshotRevision({
38
- items: workspaces.map((workspace) => ({
39
- workspace: applyWorkspaceNavigationState(workspace, navigationStateByWorkspaceId.get(workspace.id)),
40
- sessions: projectWorkbenchSessions(this.filterButlerControlSessions(this.sessionHistoryService.listWorkspaceSessions(workspace.id, userId))),
41
- childWorktrees: this.buildChildWorktrees(workspace.id, workspaceById, navigationStateByWorkspaceId, userId),
42
- collapsed: collapsedWorkspaceIdSet.has(workspace.id)
43
- }))
40
+ items: workspaces.map((workspace) => {
41
+ return {
42
+ workspace: applyWorkspaceNavigationState(workspace, navigationStateByWorkspaceId.get(workspace.id)),
43
+ sessions: projectWorkbenchSessions(this.filterButlerControlSessions(this.sessionHistoryService.listWorkspaceSessions(workspace.id, userId))),
44
+ childWorktrees: this.buildChildWorktrees(workspace.id, workspaceById, navigationStateByWorkspaceId, userId),
45
+ collapsed: collapsedWorkspaceIdSet.has(workspace.id)
46
+ };
47
+ })
44
48
  });
45
49
  }
46
- shouldRefreshSnapshot() {
50
+ getAffairsAssistantSessionsSnapshot(workspaceId, userId) {
51
+ return this.affairsAssistantSessionSnapshotService?.readSnapshot(workspaceId, userId)
52
+ ?? createEmptyAffairsAssistantSessionsSnapshot(workspaceId, userId);
53
+ }
54
+ async refreshAffairsAssistantSessionsSnapshot(workspaceId, userId, options) {
55
+ if (!this.affairsAssistantSessionSnapshotService) {
56
+ return createEmptyAffairsAssistantSessionsSnapshot(workspaceId, userId);
57
+ }
58
+ if (!options?.awaitRefresh) {
59
+ const current = this.getAffairsAssistantSessionsSnapshot(workspaceId, userId);
60
+ this.affairsAssistantSessionSnapshotService.scheduleRefresh(workspaceId, userId, {
61
+ force: options?.force ?? false,
62
+ source: "workbench.refresh_affairs_assistant_sessions.background"
63
+ });
64
+ return current;
65
+ }
66
+ return await this.affairsAssistantSessionSnapshotService.refreshNow(workspaceId, userId, {
67
+ force: options?.force ?? false,
68
+ source: "workbench.refresh_affairs_assistant_sessions"
69
+ });
70
+ }
71
+ shouldRefreshSnapshot(userId) {
47
72
  return this.listWorkbenchWorkspaces()
48
- .some((workspace) => this.sessionHistoryService.needsWorkspaceDiscovery(workspace.id, WORKBENCH_REFRESH_MAX_AGE_MS));
73
+ .some((workspace) => {
74
+ return this.sessionHistoryService.needsWorkspaceDiscovery(workspace.id, WORKBENCH_REFRESH_MAX_AGE_MS);
75
+ });
49
76
  }
50
77
  async refreshSnapshot(userId, options) {
51
78
  const startedAt = Date.now();
@@ -121,15 +148,14 @@ export class WorkbenchService {
121
148
  .filter((workspace) => !hiddenTemporaryWorkspaceIdSet.has(workspace.id));
122
149
  }
123
150
  scheduleWorkspaceRefreshes(workspaces, userId, options) {
124
- if (typeof this.sessionHistoryService.requestWorkspaceDiscovery !== "function") {
125
- return;
126
- }
127
- for (const workspace of workspaces) {
128
- this.sessionHistoryService.requestWorkspaceDiscovery(workspace.id, userId, {
129
- maxAgeMs: WORKBENCH_REFRESH_MAX_AGE_MS,
130
- force: options?.force ?? false,
131
- refreshStateMode: "deferred"
132
- });
151
+ if (typeof this.sessionHistoryService.requestWorkspaceDiscovery === "function") {
152
+ for (const workspace of workspaces) {
153
+ this.sessionHistoryService.requestWorkspaceDiscovery(workspace.id, userId, {
154
+ maxAgeMs: WORKBENCH_REFRESH_MAX_AGE_MS,
155
+ force: options?.force ?? false,
156
+ refreshStateMode: "deferred"
157
+ });
158
+ }
133
159
  }
134
160
  }
135
161
  async refreshWorkspaceSessions(userId, options) {
@@ -206,6 +232,17 @@ function countWorkbenchSessions(item) {
206
232
  function countWorktreeNodeSessions(node) {
207
233
  return node.sessions.length + node.children.reduce((total, child) => total + countWorktreeNodeSessions(child), 0);
208
234
  }
235
+ function createEmptyAffairsAssistantSessionsSnapshot(workspaceId, userId) {
236
+ return {
237
+ workspaceId,
238
+ userId,
239
+ projectId: null,
240
+ projectWorkspaceId: null,
241
+ agentWorkspacePath: null,
242
+ sessions: [],
243
+ updatedAt: new Date(0).toISOString()
244
+ };
245
+ }
209
246
  function projectWorkbenchSessions(sessions) {
210
247
  return sessions.map(projectWorkbenchSession);
211
248
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workbench-service.js","sourceRoot":"","sources":["../../../../src/modules/workbench/workbench-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workbench-service.js","sourceRoot":"","sources":["../../../../src/modules/workbench/workbench-service.ts"],"names":[],"mappings":"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"}