@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,643 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { performance } from "node:perf_hooks";
4
+ import { AppError } from "../../shared/errors/app-error.js";
5
+ import { AppError as IndexerAppError } from "./contracts/src/index.js";
6
+ import { loadRuntimeConfig } from "./core/src/config/load-runtime-config.js";
7
+ import { AllowedExtensionsDiffService } from "./core/src/services/indexer/allowed-extensions-diff-service.js";
8
+ import { TextIndexer } from "./core/src/services/indexer/text-indexer.js";
9
+ import { ExportBuilder } from "./core/src/services/export/export-builder.js";
10
+ import { initCatalog } from "./core/src/sqlite/init-catalog.js";
11
+ import { CatalogWriteRepository } from "./core/src/repositories/catalog-write-repository.js";
12
+ import { CatalogRepository } from "./core/src/repositories/catalog-repository.js";
13
+ import { acquireAffairsIndexerRootLock } from "./core/src/utils/root-command-lock.js";
14
+ import { writeAffairsLibraryDebugLog } from "../workspace/affairs-library-debug-log.js";
15
+ const DEFAULT_RUNTIME_HEARTBEAT_MS = 3_000;
16
+ const DEFAULT_RUNTIME_PROGRESS_FLUSH_INTERVAL_MS = 1_500;
17
+ const DEFAULT_RUNTIME_PROGRESS_FLUSH_SCANNED_DELTA = 500;
18
+ const DEFAULT_RUNTIME_PROGRESS_FLUSH_RESULT_DELTA = 100;
19
+ export async function runAffairsIndexerCommand(rootDir, command, options = {}) {
20
+ const startedAt = performance.now();
21
+ const runtimeStageWriter = createRuntimeStageWriter(rootDir, command, options);
22
+ let config = null;
23
+ let rootLock = null;
24
+ try {
25
+ config = createAffairsIndexerRuntimeConfig(rootDir);
26
+ writeAffairsIndexerHelperLog({
27
+ phase: "start",
28
+ command,
29
+ rootDir,
30
+ targetPath: options.targetPath,
31
+ reason: options.reason
32
+ }, config.logLevel);
33
+ rootLock = await acquireAffairsIndexerRootLock(rootDir, command, {
34
+ signal: options.signal,
35
+ reason: options.reason,
36
+ targetPath: options.targetPath,
37
+ taskId: options.taskMeta?.taskId,
38
+ taskType: options.taskMeta?.taskType,
39
+ });
40
+ runtimeStageWriter.write("running", "init");
41
+ runtimeStageWriter.startHeartbeat();
42
+ initCatalog(config);
43
+ writeAffairsLibraryDebugLog({
44
+ event: "helper_command_started",
45
+ processRole: "helper",
46
+ rootDir,
47
+ command,
48
+ reason: options.reason,
49
+ targetPath: options.targetPath,
50
+ status: "started",
51
+ details: {
52
+ indexDir: config.indexDir,
53
+ dbPath: config.dbPath,
54
+ exportDir: config.exportDir,
55
+ configFilePath: config.configFilePath
56
+ }
57
+ });
58
+ let message = "";
59
+ let result;
60
+ switch (command) {
61
+ case "apply-config": {
62
+ runtimeStageWriter.write("running", "index");
63
+ const applyResult = await new AllowedExtensionsDiffService(config).applyIfNeeded(options.signal);
64
+ result = {
65
+ changed: applyResult.changed,
66
+ addedExtensions: applyResult.addedExtensions,
67
+ removedExtensions: applyResult.removedExtensions,
68
+ dirtyScope: summarizeDirtyScope(applyResult.dirtyScope),
69
+ indexResult: {
70
+ scannedCount: applyResult.indexResult.scannedCount,
71
+ indexedCount: applyResult.indexResult.indexedCount,
72
+ skippedCount: applyResult.indexResult.skipStats.skippedCount,
73
+ failedCount: applyResult.indexResult.failedCount,
74
+ deletedCount: applyResult.indexResult.deletedCount,
75
+ indexedPathsSample: applyResult.indexResult.indexedPaths.slice(0, 20),
76
+ deletedPathsSample: applyResult.indexResult.deletedPaths.slice(0, 20),
77
+ failedPathsSample: applyResult.indexResult.failedPaths.slice(0, 20),
78
+ },
79
+ exportResult: applyResult.exportResult,
80
+ };
81
+ message = applyResult.changed
82
+ ? "配置差分已应用并完成增量导出。"
83
+ : "配置没有产生扩展名差分,无需额外应用。";
84
+ break;
85
+ }
86
+ case "index": {
87
+ runtimeStageWriter.write("running", "index");
88
+ const indexer = new TextIndexer(config);
89
+ const indexResult = await indexer.index(undefined, {
90
+ collectChangedPaths: true,
91
+ dirtyScopeTrigger: "full",
92
+ signal: options.signal,
93
+ onProgress: (progress) => runtimeStageWriter.setProgress(progress),
94
+ });
95
+ let exportResult = null;
96
+ const exportSkipped = shouldSkipExportAfterIndex(indexResult);
97
+ if (exportSkipped) {
98
+ writeAffairsLibraryDebugLog({
99
+ event: "index_export_skipped_no_changes",
100
+ processRole: "helper",
101
+ rootDir,
102
+ command,
103
+ reason: options.reason,
104
+ targetPath: options.targetPath,
105
+ status: "finished",
106
+ resultSummary: summarizeDirtyScope(indexResult.dirtyScope),
107
+ details: {
108
+ scannedCount: indexResult.scannedCount,
109
+ indexedCount: indexResult.indexedCount,
110
+ unchangedCount: indexResult.unchangedCount,
111
+ skippedCount: indexResult.skipStats.skippedCount,
112
+ failedCount: indexResult.failedCount,
113
+ deletedCount: indexResult.deletedCount
114
+ }
115
+ });
116
+ }
117
+ else {
118
+ runtimeStageWriter.write("running", "export");
119
+ exportResult = await new ExportBuilder(config).build({
120
+ dirtyScope: indexResult.dirtyScope,
121
+ signal: options.signal,
122
+ onStageChange: (stage) => runtimeStageWriter.write("running", stage),
123
+ commandName: command,
124
+ reason: options.reason,
125
+ targetPath: options.targetPath
126
+ });
127
+ }
128
+ runtimeStageWriter.write("running", "sqlite");
129
+ writeIndexerCommandMeta(config, command, options);
130
+ result = {
131
+ indexResult: {
132
+ scannedCount: indexResult.scannedCount,
133
+ indexedCount: indexResult.indexedCount,
134
+ unchangedCount: indexResult.unchangedCount,
135
+ skippedCount: indexResult.skipStats.skippedCount,
136
+ failedCount: indexResult.failedCount,
137
+ deletedCount: indexResult.deletedCount,
138
+ indexedPathsSample: indexResult.indexedPaths.slice(0, 20),
139
+ deletedPathsSample: indexResult.deletedPaths.slice(0, 20),
140
+ failedPathsSample: indexResult.failedPaths.slice(0, 20),
141
+ dirtyScope: summarizeDirtyScope(indexResult.dirtyScope)
142
+ },
143
+ exportSkipped,
144
+ exportResult
145
+ };
146
+ message = exportSkipped
147
+ ? "文本文件索引已完成,本轮没有变化,沿用现有导出结果。"
148
+ : "文本文件索引和静态导出已完成。";
149
+ break;
150
+ }
151
+ case "export": {
152
+ runtimeStageWriter.write("running", "export");
153
+ const exportResult = await new ExportBuilder(config).build({
154
+ signal: options.signal,
155
+ onStageChange: (stage) => runtimeStageWriter.write("running", stage),
156
+ commandName: command,
157
+ reason: options.reason,
158
+ targetPath: options.targetPath
159
+ });
160
+ result = { exportResult };
161
+ message = "静态导出完成。";
162
+ break;
163
+ }
164
+ case "watch-touch": {
165
+ const targetPath = normalizeOptionalTargetPath(options.targetPath);
166
+ runtimeStageWriter.write("running", "index");
167
+ const indexer = new TextIndexer(config);
168
+ const indexResult = await indexer.index(targetPath, {
169
+ collectChangedPaths: true,
170
+ dirtyScopeTrigger: "incremental",
171
+ signal: options.signal,
172
+ onProgress: (progress) => runtimeStageWriter.setProgress(progress),
173
+ });
174
+ let exportResult = null;
175
+ const exportSkipped = shouldSkipExportAfterIndex(indexResult);
176
+ if (exportSkipped) {
177
+ writeAffairsLibraryDebugLog({
178
+ event: "watch_touch_export_skipped_no_changes",
179
+ processRole: "helper",
180
+ rootDir,
181
+ command,
182
+ reason: options.reason,
183
+ targetPath: options.targetPath,
184
+ status: "finished",
185
+ resultSummary: summarizeDirtyScope(indexResult.dirtyScope),
186
+ details: {
187
+ scannedCount: indexResult.scannedCount,
188
+ indexedCount: indexResult.indexedCount,
189
+ unchangedCount: indexResult.unchangedCount,
190
+ skippedCount: indexResult.skipStats.skippedCount,
191
+ failedCount: indexResult.failedCount,
192
+ deletedCount: indexResult.deletedCount
193
+ }
194
+ });
195
+ }
196
+ else {
197
+ runtimeStageWriter.write("running", "export");
198
+ exportResult = await new ExportBuilder(config).build({
199
+ dirtyScope: indexResult.dirtyScope,
200
+ signal: options.signal,
201
+ onStageChange: (stage) => runtimeStageWriter.write("running", stage),
202
+ commandName: command,
203
+ reason: options.reason,
204
+ targetPath: options.targetPath
205
+ });
206
+ }
207
+ runtimeStageWriter.write("running", "sqlite");
208
+ new CatalogWriteRepository(config.dbPath).setSchemaMeta("watcher.last_touch", JSON.stringify({
209
+ observedAt: new Date().toISOString(),
210
+ reason: options.reason?.trim() || "watch_touch",
211
+ targetPath: targetPath ?? null,
212
+ dirtyScope: summarizeDirtyScope(indexResult.dirtyScope)
213
+ }));
214
+ writeIndexerCommandMeta(config, command, options);
215
+ result = {
216
+ targetPath: targetPath ?? null,
217
+ reason: options.reason?.trim() || "watch_touch",
218
+ exportSkipped,
219
+ indexResult: {
220
+ scannedCount: indexResult.scannedCount,
221
+ indexedCount: indexResult.indexedCount,
222
+ unchangedCount: indexResult.unchangedCount,
223
+ skippedCount: indexResult.skipStats.skippedCount,
224
+ failedCount: indexResult.failedCount,
225
+ deletedCount: indexResult.deletedCount,
226
+ indexedPathsSample: indexResult.indexedPaths.slice(0, 20),
227
+ deletedPathsSample: indexResult.deletedPaths.slice(0, 20),
228
+ failedPathsSample: indexResult.failedPaths.slice(0, 20),
229
+ dirtyScope: summarizeDirtyScope(indexResult.dirtyScope)
230
+ },
231
+ exportResult
232
+ };
233
+ message = exportSkipped
234
+ ? targetPath
235
+ ? `检测到文件检查完成,本轮没有变化,沿用现有导出结果:${targetPath}`
236
+ : "检测到文件检查完成,本轮没有变化,沿用现有导出结果。"
237
+ : targetPath
238
+ ? `检测到文件变动,已按范围增量刷新:${targetPath}`
239
+ : "检测到文件变动,已执行一次全库增量刷新。";
240
+ break;
241
+ }
242
+ default:
243
+ throw new AppError({
244
+ statusCode: 400,
245
+ errorCode: "AFFAIRS_LIBRARY_COMMAND_UNSUPPORTED",
246
+ detail: `不支持的文档库命令:${command}`,
247
+ });
248
+ }
249
+ const commandResult = {
250
+ ok: true,
251
+ command,
252
+ message,
253
+ durationMs: Number((performance.now() - startedAt).toFixed(2)),
254
+ config: {
255
+ rootDir: config.rootDir,
256
+ indexDir: config.indexDir,
257
+ dbPath: config.dbPath,
258
+ exportDir: config.exportDir,
259
+ configFilePath: config.configFilePath,
260
+ },
261
+ result,
262
+ };
263
+ runtimeStageWriter.stopHeartbeat();
264
+ runtimeStageWriter.write("finished", "finished");
265
+ writeAffairsIndexerHelperLog({
266
+ phase: "finish",
267
+ command,
268
+ rootDir,
269
+ targetPath: options.targetPath,
270
+ reason: options.reason,
271
+ durationMs: commandResult.durationMs,
272
+ resultSummary: summarizeCommandResult(result)
273
+ }, config.logLevel);
274
+ writeAffairsLibraryDebugLog({
275
+ event: "helper_command_finished",
276
+ processRole: "helper",
277
+ rootDir,
278
+ command,
279
+ reason: options.reason,
280
+ targetPath: options.targetPath,
281
+ durationMs: commandResult.durationMs,
282
+ status: "finished",
283
+ resultSummary: summarizeCommandResult(result)
284
+ });
285
+ rootLock.release();
286
+ rootLock = null;
287
+ return commandResult;
288
+ }
289
+ catch (error) {
290
+ rootLock?.release();
291
+ rootLock = null;
292
+ runtimeStageWriter.stopHeartbeat();
293
+ runtimeStageWriter.write("failed", "failed", error instanceof Error ? error.message : String(error));
294
+ writeAffairsIndexerHelperLog({
295
+ phase: "error",
296
+ command,
297
+ rootDir,
298
+ targetPath: options.targetPath,
299
+ reason: options.reason,
300
+ durationMs: Number((performance.now() - startedAt).toFixed(2)),
301
+ error: error instanceof Error ? error.message : String(error)
302
+ }, config?.logLevel ?? null);
303
+ writeAffairsLibraryDebugLog({
304
+ event: "helper_command_failed",
305
+ processRole: "helper",
306
+ rootDir,
307
+ command,
308
+ reason: options.reason,
309
+ targetPath: options.targetPath,
310
+ durationMs: Number((performance.now() - startedAt).toFixed(2)),
311
+ status: "failed",
312
+ message: error instanceof Error ? error.message : String(error)
313
+ });
314
+ throw normalizeAffairsIndexerError(error, command, rootDir);
315
+ }
316
+ }
317
+ export function createAffairsIndexerRuntimeConfig(rootDir) {
318
+ return loadRuntimeConfig(rootDir, {
319
+ args: {
320
+ rootDir,
321
+ "root-dir": rootDir,
322
+ },
323
+ env: process.env,
324
+ });
325
+ }
326
+ function normalizeOptionalTargetPath(value) {
327
+ const normalized = value?.trim();
328
+ return normalized ? normalized.replace(/^\.\//, "") : undefined;
329
+ }
330
+ function collectIndexerFailureDetails(rootDir) {
331
+ try {
332
+ const config = createAffairsIndexerRuntimeConfig(rootDir);
333
+ const repository = new CatalogWriteRepository(config.dbPath);
334
+ return {
335
+ tagCount: new CatalogRepository(config.dbPath).listTagDefinitions(true).length,
336
+ documentTagCount: repository.countRows("document_tags"),
337
+ derivedTagCount: repository.countRows("derived_document_tags"),
338
+ };
339
+ }
340
+ catch {
341
+ return null;
342
+ }
343
+ }
344
+ function summarizeDirtyScope(dirtyScope) {
345
+ if (!dirtyScope) {
346
+ return null;
347
+ }
348
+ return {
349
+ trigger: dirtyScope.trigger,
350
+ changedPaths: dirtyScope.changedPaths.length,
351
+ dirtyDirectories: dirtyScope.dirtyDirectories.length,
352
+ dirtyTagPaths: dirtyScope.dirtyTagPaths.length,
353
+ dirtyRelations: dirtyScope.dirtyRelations.length,
354
+ };
355
+ }
356
+ function shouldSkipExportAfterIndex(indexResult) {
357
+ if (indexResult.indexedCount !== 0) {
358
+ return false;
359
+ }
360
+ if (indexResult.failedCount !== 0) {
361
+ return false;
362
+ }
363
+ if (indexResult.deletedCount !== 0) {
364
+ return false;
365
+ }
366
+ if (indexResult.skipStats.skippedCount !== 0) {
367
+ return false;
368
+ }
369
+ const dirtyScope = indexResult.dirtyScope;
370
+ if (!dirtyScope) {
371
+ return true;
372
+ }
373
+ return dirtyScope.changedPaths.length === 0
374
+ && dirtyScope.dirtyDirectories.length === 0
375
+ && dirtyScope.dirtyTagPaths.length === 0
376
+ && dirtyScope.dirtyRelations.length === 0;
377
+ }
378
+ function writeIndexerCommandMeta(config, command, options) {
379
+ new CatalogWriteRepository(config.dbPath).setSchemaMeta("runtime.last_command", JSON.stringify({
380
+ command,
381
+ observedAt: new Date().toISOString(),
382
+ reason: options.reason?.trim() || null,
383
+ targetPath: normalizeOptionalTargetPath(options.targetPath) ?? null,
384
+ taskId: options.taskMeta?.taskId ?? null,
385
+ taskType: options.taskMeta?.taskType ?? null
386
+ }));
387
+ }
388
+ function createRuntimeStageWriter(rootDir, command, options) {
389
+ const runtimeStatusPath = path.join(rootDir, ".ai-index", "runtime-status.json");
390
+ let heartbeatTimer = null;
391
+ let currentStatus = "running";
392
+ let currentStage = "init";
393
+ let currentErrorSummary = null;
394
+ let currentProgress = null;
395
+ let lastProgressFlushAtMs = 0;
396
+ let lastFlushedProgress = null;
397
+ const captureFlushedProgressSnapshot = (flushedAtMs) => {
398
+ lastProgressFlushAtMs = flushedAtMs;
399
+ lastFlushedProgress = currentProgress ? { ...currentProgress } : null;
400
+ };
401
+ const flush = () => {
402
+ const flushedAtMs = Date.now();
403
+ fs.mkdirSync(path.dirname(runtimeStatusPath), { recursive: true });
404
+ fs.writeFileSync(runtimeStatusPath, `${JSON.stringify({
405
+ version: 1,
406
+ command,
407
+ status: currentStatus,
408
+ stage: currentStage,
409
+ updatedAt: new Date().toISOString(),
410
+ reason: options.reason?.trim() || null,
411
+ targetPath: normalizeOptionalTargetPath(options.targetPath) ?? null,
412
+ taskId: options.taskMeta?.taskId ?? null,
413
+ taskType: options.taskMeta?.taskType ?? null,
414
+ taskKey: options.taskMeta?.key ?? null,
415
+ attempt: options.taskMeta?.attempt ?? null,
416
+ errorSummary: currentErrorSummary,
417
+ progress: currentProgress
418
+ }, null, 2)}\n`, "utf8");
419
+ captureFlushedProgressSnapshot(flushedAtMs);
420
+ };
421
+ return {
422
+ write: (status, stage, errorSummary = null) => {
423
+ currentStatus = status;
424
+ currentStage = stage;
425
+ currentErrorSummary = errorSummary;
426
+ flush();
427
+ },
428
+ setProgress: (progress) => {
429
+ currentProgress = progress;
430
+ if (shouldFlushRuntimeProgress(progress, lastFlushedProgress, lastProgressFlushAtMs, Date.now())) {
431
+ flush();
432
+ }
433
+ },
434
+ startHeartbeat: () => {
435
+ if (heartbeatTimer) {
436
+ return;
437
+ }
438
+ heartbeatTimer = setInterval(() => {
439
+ if (currentStatus === "running") {
440
+ flush();
441
+ }
442
+ }, resolveRuntimeHeartbeatIntervalMs());
443
+ heartbeatTimer.unref?.();
444
+ },
445
+ stopHeartbeat: () => {
446
+ if (!heartbeatTimer) {
447
+ return;
448
+ }
449
+ clearInterval(heartbeatTimer);
450
+ heartbeatTimer = null;
451
+ }
452
+ };
453
+ }
454
+ function shouldFlushRuntimeProgress(next, previous, lastFlushAtMs, nowMs) {
455
+ if (!next) {
456
+ return true;
457
+ }
458
+ if (!previous) {
459
+ return true;
460
+ }
461
+ if (nowMs - lastFlushAtMs >= resolveRuntimeProgressFlushIntervalMs()) {
462
+ return true;
463
+ }
464
+ if (next.scannedCount - previous.scannedCount >= resolveRuntimeProgressFlushScannedDelta()) {
465
+ return true;
466
+ }
467
+ if (hasRuntimeProgressResultDelta(next, previous, resolveRuntimeProgressFlushResultDelta())
468
+ || next.totalCount !== previous.totalCount
469
+ || next.maxConcurrency !== previous.maxConcurrency) {
470
+ return true;
471
+ }
472
+ return false;
473
+ }
474
+ function hasRuntimeProgressResultDelta(next, previous, threshold) {
475
+ return Math.abs(next.indexedCount - previous.indexedCount) >= threshold
476
+ || Math.abs(next.skippedCount - previous.skippedCount) >= threshold
477
+ || Math.abs(next.failedCount - previous.failedCount) >= threshold
478
+ || Math.abs(next.unchangedCount - previous.unchangedCount) >= threshold;
479
+ }
480
+ function resolveRuntimeHeartbeatIntervalMs() {
481
+ const raw = process.env.CODINGNS_AFFAIRS_RUNTIME_HEARTBEAT_MS?.trim();
482
+ if (!raw) {
483
+ return DEFAULT_RUNTIME_HEARTBEAT_MS;
484
+ }
485
+ const parsed = Number(raw);
486
+ if (!Number.isFinite(parsed) || parsed <= 0) {
487
+ return DEFAULT_RUNTIME_HEARTBEAT_MS;
488
+ }
489
+ return Math.max(100, Math.floor(parsed));
490
+ }
491
+ function resolveRuntimeProgressFlushIntervalMs() {
492
+ return resolvePositiveIntegerEnv(process.env.CODINGNS_AFFAIRS_RUNTIME_PROGRESS_FLUSH_MS, DEFAULT_RUNTIME_PROGRESS_FLUSH_INTERVAL_MS, 100);
493
+ }
494
+ function resolveRuntimeProgressFlushScannedDelta() {
495
+ return resolvePositiveIntegerEnv(process.env.CODINGNS_AFFAIRS_RUNTIME_PROGRESS_FLUSH_SCANNED_DELTA, DEFAULT_RUNTIME_PROGRESS_FLUSH_SCANNED_DELTA, 1);
496
+ }
497
+ function resolveRuntimeProgressFlushResultDelta() {
498
+ return resolvePositiveIntegerEnv(process.env.CODINGNS_AFFAIRS_RUNTIME_PROGRESS_FLUSH_RESULT_DELTA, DEFAULT_RUNTIME_PROGRESS_FLUSH_RESULT_DELTA, 1);
499
+ }
500
+ function resolvePositiveIntegerEnv(rawValue, fallback, minimum) {
501
+ const raw = rawValue?.trim();
502
+ if (!raw) {
503
+ return fallback;
504
+ }
505
+ const parsed = Number(raw);
506
+ if (!Number.isFinite(parsed) || parsed <= 0) {
507
+ return fallback;
508
+ }
509
+ return Math.max(minimum, Math.floor(parsed));
510
+ }
511
+ function normalizeAffairsIndexerError(error, command, rootDir) {
512
+ if (error instanceof AppError) {
513
+ return error;
514
+ }
515
+ if (error instanceof IndexerAppError) {
516
+ return new AppError({
517
+ statusCode: resolveIndexerStatusCode(error.errorCode),
518
+ errorCode: `AFFAIRS_LIBRARY_${error.errorCode}`,
519
+ detail: error.message,
520
+ data: {
521
+ command,
522
+ rootDir,
523
+ ...(error.details ? { details: error.details } : {}),
524
+ },
525
+ });
526
+ }
527
+ if (error instanceof Error) {
528
+ const details = collectIndexerFailureDetails(rootDir);
529
+ return new AppError({
530
+ statusCode: 500,
531
+ errorCode: "AFFAIRS_LIBRARY_INTERNAL_INDEXER_FAILED",
532
+ detail: error.message || "内置文档库索引器执行失败",
533
+ data: {
534
+ command,
535
+ rootDir,
536
+ ...(details ? { details } : {}),
537
+ },
538
+ });
539
+ }
540
+ return new AppError({
541
+ statusCode: 500,
542
+ errorCode: "AFFAIRS_LIBRARY_INTERNAL_INDEXER_FAILED",
543
+ detail: "内置文档库索引器执行失败",
544
+ data: {
545
+ command,
546
+ rootDir,
547
+ },
548
+ });
549
+ }
550
+ function resolveIndexerStatusCode(errorCode) {
551
+ switch (errorCode) {
552
+ case "CONFIG_FILE_NOT_FOUND":
553
+ case "CONFIG_FILE_INVALID":
554
+ case "CONFIG_INVALID_VALUE":
555
+ case "COMMAND_NOT_SUPPORTED":
556
+ case "SEARCH_QUERY_REQUIRED":
557
+ case "CONTEXT_TARGET_REQUIRED":
558
+ case "PARSER_ROUTE_UNSUPPORTED":
559
+ case "PARSER_ADAPTER_UNAVAILABLE":
560
+ case "WATCH_PATH_NOT_FOUND":
561
+ case "SEARCH_INDEX_INVALID":
562
+ case "EXPORT_INVALID_PAYLOAD":
563
+ case "MCP_INVALID_REQUEST":
564
+ return 400;
565
+ default:
566
+ return 500;
567
+ }
568
+ }
569
+ function summarizeCommandResult(result) {
570
+ if (!result || typeof result !== "object") {
571
+ return null;
572
+ }
573
+ const payload = result;
574
+ const indexResult = payload.indexResult;
575
+ if (indexResult && typeof indexResult === "object") {
576
+ const indexPayload = indexResult;
577
+ return {
578
+ scannedCount: indexPayload.scannedCount ?? null,
579
+ indexedCount: indexPayload.indexedCount ?? null,
580
+ unchangedCount: indexPayload.unchangedCount ?? null,
581
+ skippedCount: indexPayload.skippedCount ?? null,
582
+ failedCount: indexPayload.failedCount ?? null,
583
+ deletedCount: indexPayload.deletedCount ?? null,
584
+ dirtyScope: indexPayload.dirtyScope ?? null,
585
+ indexedPathsSample: indexPayload.indexedPathsSample ?? null,
586
+ deletedPathsSample: indexPayload.deletedPathsSample ?? null,
587
+ failedPathsSample: indexPayload.failedPathsSample ?? null
588
+ };
589
+ }
590
+ if ("scannedCount" in payload || "indexedCount" in payload || "failedCount" in payload) {
591
+ return {
592
+ scannedCount: payload.scannedCount ?? null,
593
+ indexedCount: payload.indexedCount ?? null,
594
+ unchangedCount: payload.unchangedCount ?? null,
595
+ failedCount: payload.failedCount ?? null,
596
+ deletedCount: payload.deletedCount ?? null,
597
+ dirtyScope: payload.dirtyScope ?? null,
598
+ indexedPathsSample: payload.indexedPathsSample ?? null,
599
+ deletedPathsSample: payload.deletedPathsSample ?? null,
600
+ failedPathsSample: payload.failedPathsSample ?? null
601
+ };
602
+ }
603
+ if ("changed" in payload || "addedExtensions" in payload || "removedExtensions" in payload) {
604
+ return {
605
+ changed: payload.changed ?? null,
606
+ addedExtensions: payload.addedExtensions ?? null,
607
+ removedExtensions: payload.removedExtensions ?? null
608
+ };
609
+ }
610
+ if ("documentCount" in payload || "exportedAt" in payload) {
611
+ return {
612
+ documentCount: payload.documentCount ?? null,
613
+ exportedAt: payload.exportedAt ?? null
614
+ };
615
+ }
616
+ return null;
617
+ }
618
+ function writeAffairsIndexerHelperLog(payload, logLevel) {
619
+ if (!shouldWriteAffairsIndexerStructuredDebugLog(logLevel)) {
620
+ return;
621
+ }
622
+ try {
623
+ const rssBytes = process.memoryUsage.rss();
624
+ console.error(JSON.stringify({
625
+ source: "affairs_library.helper",
626
+ ...payload,
627
+ targetPath: payload.targetPath ?? null,
628
+ reason: payload.reason ?? null,
629
+ durationMs: payload.durationMs ?? null,
630
+ error: payload.error ?? null,
631
+ resultSummary: payload.resultSummary ?? null,
632
+ rssBytes,
633
+ rssMb: Number((rssBytes / 1024 / 1024).toFixed(2))
634
+ }));
635
+ }
636
+ catch {
637
+ // 结构化日志写失败不影响主流程。
638
+ }
639
+ }
640
+ function shouldWriteAffairsIndexerStructuredDebugLog(logLevel) {
641
+ return logLevel === "debug" || process.env.DOC_SEMANTIC_INDEX_LOG_LEVEL?.trim() === "debug";
642
+ }
643
+ //# sourceMappingURL=internal-command-runner.js.map