@jingyi0605/codingns 0.8.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (587) hide show
  1. package/bin/codingns.mjs +187 -156
  2. package/dist/public/assets/AdaptiveButlerPage-B17QiMyT.js +2 -0
  3. package/dist/public/assets/App-CFBwDUNA.js +30 -0
  4. package/dist/public/assets/{BootstrapPage-jFfl7KNK.js → BootstrapPage-W5wU3BPh.js} +1 -1
  5. package/dist/public/assets/{ConversationPage-sj_rn4q0.js → ConversationPage-DQLX1bUh.js} +6 -6
  6. package/dist/public/assets/{DesktopDetachPreviewPage-C5c88SOX.js → DesktopDetachPreviewPage-DTPeuAW-.js} +1 -1
  7. package/dist/public/assets/DesktopModal-6ii53_Y9.js +1 -0
  8. package/dist/public/assets/DesktopWindowPage-D0blSuKd.js +2 -0
  9. package/dist/public/assets/FileContextPanel-BrKO8Xt6.js +1 -0
  10. package/dist/public/assets/GitSidebar-BdwiDtOr.js +6 -0
  11. package/dist/public/assets/MobileCreateSessionSheet-Cx_dBiBb.js +1 -0
  12. package/dist/public/assets/MobileSheet-opTWyRe1.js +1 -0
  13. package/dist/public/assets/{MobileTopHeaderFrame-_I0t7cC_.js → MobileTopHeaderFrame-BbNON3Y4.js} +1 -1
  14. package/dist/public/assets/MobileWorkspaceSwitcherHeader-BZEzPeMj.js +1 -0
  15. package/dist/public/assets/PluginAccessOverview-mQDmAljp.js +1 -0
  16. package/dist/public/assets/PluginContainerPage-CcxUJpM4.js +1 -0
  17. package/dist/public/assets/PluginDetailPage-D5--ACIt.js +1 -0
  18. package/dist/public/assets/PluginsListPage-D_oJxYXT.js +1 -0
  19. package/dist/public/assets/{RelayConnectEntryPage-CMtDWyGS.js → RelayConnectEntryPage-DROxpnkv.js} +1 -1
  20. package/dist/public/assets/ServerSettingsModal-CUUOPqSe.js +1 -0
  21. package/dist/public/assets/SessionIndexPage-C2Jxh6Gp.js +1 -0
  22. package/dist/public/assets/SettingsPage-BlAZCHsy.js +2 -0
  23. package/dist/public/assets/TerminalManagerPanel-CjzbiWjl.js +1 -0
  24. package/dist/public/assets/{TerminalPage-CBIKHI33.js → TerminalPage-CwWyFDj8.js} +3 -3
  25. package/dist/public/assets/TerminalRuntimeFallbackModal-CSVVbO8r.js +1 -0
  26. package/dist/public/assets/ToolFilesPage-QBEY8oCf.js +1 -0
  27. package/dist/public/assets/ToolGitPage-BKoZ2l9v.js +1 -0
  28. package/dist/public/assets/ToolProcessesPage-BOH0ib4G.js +1 -0
  29. package/dist/public/assets/ToolsHomePage-BcMZ3BCQ.js +1 -0
  30. package/dist/public/assets/WorkbenchLandingPage-B5zoppEl.js +1 -0
  31. package/dist/public/assets/WorkbenchLayout-BksVkkFF.css +1 -0
  32. package/dist/public/assets/WorkbenchLayout-CikJBS62.js +1019 -0
  33. package/dist/public/assets/WorkbenchModal-NGmPgqaE.js +1 -0
  34. package/dist/public/assets/WorkbenchShellRoute-BbbSOiZw.js +1 -0
  35. package/dist/public/assets/WorkbenchShellRoute-DT3VMjWD.css +1 -0
  36. package/dist/public/assets/WorkspaceDebugDetailPage-CVivdPx5.js +1 -0
  37. package/dist/public/assets/WorkspaceDetailPage-DgOSjscR.js +1 -0
  38. package/dist/public/assets/WorkspaceHomePage-HPa7M_Vh.js +1 -0
  39. package/dist/public/assets/{client-runtime-manager-CdJP7nUp.js → client-runtime-manager-DXbI9K1K.js} +1 -1
  40. package/dist/public/assets/index-BxJPQpFM.css +1 -0
  41. package/dist/public/assets/index-CeXGOT_T.js +50 -0
  42. package/dist/public/assets/{login-direct-candidate-resolver-C-mo698r.js → login-direct-candidate-resolver-DkKyFtQJ.js} +1 -1
  43. package/dist/public/assets/plugin-permission-copy-CzN269Bk.js +1 -0
  44. package/dist/public/assets/plugins-api-Bv9DHpLF.js +1 -0
  45. package/dist/public/assets/{preferences-service-CnaTvZq2.js → preferences-service-D2ISL2Zz.js} +1 -1
  46. package/dist/public/assets/{relay-entry-D7OgZZN-.js → relay-entry-Bg0OisQy.js} +1 -1
  47. package/dist/public/assets/{terminal-runtime-meta-BCtAYB0E.js → terminal-runtime-meta-C8t-CIDF.js} +1 -1
  48. package/dist/public/assets/useRegisteredDebugTemplates-Bol3NVfN.js +1 -0
  49. package/dist/public/assets/workbench-navigation-B7IjRQd8.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 +4 -0
  53. package/dist/server/config/env.js.map +1 -1
  54. package/dist/server/helpers/wechat-claw-runtime/modules/runtime-state-store.js +1 -1
  55. package/dist/server/helpers/wechat-claw-runtime/modules/runtime-state-store.js.map +1 -1
  56. package/dist/server/middlewares/auth-guard.js +10 -5
  57. package/dist/server/middlewares/auth-guard.js.map +1 -1
  58. package/dist/server/modules/affairs-indexer/contracts/src/errors/app-error.d.ts +11 -0
  59. package/dist/server/modules/affairs-indexer/contracts/src/errors/app-error.js +22 -0
  60. package/dist/server/modules/affairs-indexer/contracts/src/errors/app-error.js.map +1 -0
  61. package/dist/server/modules/affairs-indexer/contracts/src/errors/error-codes.d.ts +23 -0
  62. package/dist/server/modules/affairs-indexer/contracts/src/errors/error-codes.js +23 -0
  63. package/dist/server/modules/affairs-indexer/contracts/src/errors/error-codes.js.map +1 -0
  64. package/dist/server/modules/affairs-indexer/contracts/src/index.d.ts +4 -0
  65. package/dist/server/modules/affairs-indexer/contracts/src/index.js +5 -0
  66. package/dist/server/modules/affairs-indexer/contracts/src/index.js.map +1 -0
  67. package/dist/server/modules/affairs-indexer/contracts/src/types/cli-command-context.d.ts +7 -0
  68. package/dist/server/modules/affairs-indexer/contracts/src/types/cli-command-context.js +2 -0
  69. package/dist/server/modules/affairs-indexer/contracts/src/types/cli-command-context.js.map +1 -0
  70. package/dist/server/modules/affairs-indexer/contracts/src/types/runtime-config.d.ts +16 -0
  71. package/dist/server/modules/affairs-indexer/contracts/src/types/runtime-config.js +2 -0
  72. package/dist/server/modules/affairs-indexer/contracts/src/types/runtime-config.js.map +1 -0
  73. package/dist/server/modules/affairs-indexer/core/src/config/load-runtime-config.d.ts +10 -0
  74. package/dist/server/modules/affairs-indexer/core/src/config/load-runtime-config.js +215 -0
  75. package/dist/server/modules/affairs-indexer/core/src/config/load-runtime-config.js.map +1 -0
  76. package/dist/server/modules/affairs-indexer/core/src/index.d.ts +31 -0
  77. package/dist/server/modules/affairs-indexer/core/src/index.js +32 -0
  78. package/dist/server/modules/affairs-indexer/core/src/index.js.map +1 -0
  79. package/dist/server/modules/affairs-indexer/core/src/logging/structured-logger.d.ts +20 -0
  80. package/dist/server/modules/affairs-indexer/core/src/logging/structured-logger.js +47 -0
  81. package/dist/server/modules/affairs-indexer/core/src/logging/structured-logger.js.map +1 -0
  82. package/dist/server/modules/affairs-indexer/core/src/parser/base-complex-parser-adapter.d.ts +17 -0
  83. package/dist/server/modules/affairs-indexer/core/src/parser/base-complex-parser-adapter.js +63 -0
  84. package/dist/server/modules/affairs-indexer/core/src/parser/base-complex-parser-adapter.js.map +1 -0
  85. package/dist/server/modules/affairs-indexer/core/src/parser/complex-document-skip-adapter.d.ts +12 -0
  86. package/dist/server/modules/affairs-indexer/core/src/parser/complex-document-skip-adapter.js +42 -0
  87. package/dist/server/modules/affairs-indexer/core/src/parser/complex-document-skip-adapter.js.map +1 -0
  88. package/dist/server/modules/affairs-indexer/core/src/parser/csv-parser-adapter.d.ts +7 -0
  89. package/dist/server/modules/affairs-indexer/core/src/parser/csv-parser-adapter.js +107 -0
  90. package/dist/server/modules/affairs-indexer/core/src/parser/csv-parser-adapter.js.map +1 -0
  91. package/dist/server/modules/affairs-indexer/core/src/parser/document-parser.d.ts +19 -0
  92. package/dist/server/modules/affairs-indexer/core/src/parser/document-parser.js +37 -0
  93. package/dist/server/modules/affairs-indexer/core/src/parser/document-parser.js.map +1 -0
  94. package/dist/server/modules/affairs-indexer/core/src/parser/docx-parser-adapter.d.ts +7 -0
  95. package/dist/server/modules/affairs-indexer/core/src/parser/docx-parser-adapter.js +123 -0
  96. package/dist/server/modules/affairs-indexer/core/src/parser/docx-parser-adapter.js.map +1 -0
  97. package/dist/server/modules/affairs-indexer/core/src/parser/openxml-utils.d.ts +8 -0
  98. package/dist/server/modules/affairs-indexer/core/src/parser/openxml-utils.js +111 -0
  99. package/dist/server/modules/affairs-indexer/core/src/parser/openxml-utils.js.map +1 -0
  100. package/dist/server/modules/affairs-indexer/core/src/parser/parser-adapter.d.ts +42 -0
  101. package/dist/server/modules/affairs-indexer/core/src/parser/parser-adapter.js +2 -0
  102. package/dist/server/modules/affairs-indexer/core/src/parser/parser-adapter.js.map +1 -0
  103. package/dist/server/modules/affairs-indexer/core/src/parser/parser-capability-registry.d.ts +18 -0
  104. package/dist/server/modules/affairs-indexer/core/src/parser/parser-capability-registry.js +91 -0
  105. package/dist/server/modules/affairs-indexer/core/src/parser/parser-capability-registry.js.map +1 -0
  106. package/dist/server/modules/affairs-indexer/core/src/parser/parser-router.d.ts +18 -0
  107. package/dist/server/modules/affairs-indexer/core/src/parser/parser-router.js +59 -0
  108. package/dist/server/modules/affairs-indexer/core/src/parser/parser-router.js.map +1 -0
  109. package/dist/server/modules/affairs-indexer/core/src/parser/parser-skip-repository.d.ts +48 -0
  110. package/dist/server/modules/affairs-indexer/core/src/parser/parser-skip-repository.js +193 -0
  111. package/dist/server/modules/affairs-indexer/core/src/parser/parser-skip-repository.js.map +1 -0
  112. package/dist/server/modules/affairs-indexer/core/src/parser/pdf-parser-adapter.d.ts +7 -0
  113. package/dist/server/modules/affairs-indexer/core/src/parser/pdf-parser-adapter.js +371 -0
  114. package/dist/server/modules/affairs-indexer/core/src/parser/pdf-parser-adapter.js.map +1 -0
  115. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser-adapter.d.ts +10 -0
  116. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser-adapter.js +55 -0
  117. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser-adapter.js.map +1 -0
  118. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser.d.ts +9 -0
  119. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser.js +2 -0
  120. package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser.js.map +1 -0
  121. package/dist/server/modules/affairs-indexer/core/src/parser/pptx-parser-adapter.d.ts +7 -0
  122. package/dist/server/modules/affairs-indexer/core/src/parser/pptx-parser-adapter.js +130 -0
  123. package/dist/server/modules/affairs-indexer/core/src/parser/pptx-parser-adapter.js.map +1 -0
  124. package/dist/server/modules/affairs-indexer/core/src/parser/xlsx-parser-adapter.d.ts +7 -0
  125. package/dist/server/modules/affairs-indexer/core/src/parser/xlsx-parser-adapter.js +228 -0
  126. package/dist/server/modules/affairs-indexer/core/src/parser/xlsx-parser-adapter.js.map +1 -0
  127. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.d.ts +205 -0
  128. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.js +1471 -0
  129. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.js.map +1 -0
  130. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-write-repository.d.ts +161 -0
  131. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-write-repository.js +1350 -0
  132. package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-write-repository.js.map +1 -0
  133. package/dist/server/modules/affairs-indexer/core/src/scanner/file-scanner.d.ts +32 -0
  134. package/dist/server/modules/affairs-indexer/core/src/scanner/file-scanner.js +208 -0
  135. package/dist/server/modules/affairs-indexer/core/src/scanner/file-scanner.js.map +1 -0
  136. package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.d.ts +30 -0
  137. package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.js +66 -0
  138. package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.js.map +1 -0
  139. package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.d.ts +33 -0
  140. package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.js +705 -0
  141. package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.js.map +1 -0
  142. package/dist/server/modules/affairs-indexer/core/src/services/indexer/allowed-extensions-diff-service.d.ts +80 -0
  143. package/dist/server/modules/affairs-indexer/core/src/services/indexer/allowed-extensions-diff-service.js +193 -0
  144. package/dist/server/modules/affairs-indexer/core/src/services/indexer/allowed-extensions-diff-service.js.map +1 -0
  145. package/dist/server/modules/affairs-indexer/core/src/services/indexer/text-indexer.d.ts +77 -0
  146. package/dist/server/modules/affairs-indexer/core/src/services/indexer/text-indexer.js +467 -0
  147. package/dist/server/modules/affairs-indexer/core/src/services/indexer/text-indexer.js.map +1 -0
  148. package/dist/server/modules/affairs-indexer/core/src/services/mcp/mcp-stdio-server.d.ts +17 -0
  149. package/dist/server/modules/affairs-indexer/core/src/services/mcp/mcp-stdio-server.js +264 -0
  150. package/dist/server/modules/affairs-indexer/core/src/services/mcp/mcp-stdio-server.js.map +1 -0
  151. package/dist/server/modules/affairs-indexer/core/src/services/search/offline-search-service.d.ts +11 -0
  152. package/dist/server/modules/affairs-indexer/core/src/services/search/offline-search-service.js +76 -0
  153. package/dist/server/modules/affairs-indexer/core/src/services/search/offline-search-service.js.map +1 -0
  154. package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.d.ts +26 -0
  155. package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.js +305 -0
  156. package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.js.map +1 -0
  157. package/dist/server/modules/affairs-indexer/core/src/services/tagging/tag-recompute-service.d.ts +53 -0
  158. package/dist/server/modules/affairs-indexer/core/src/services/tagging/tag-recompute-service.js +566 -0
  159. package/dist/server/modules/affairs-indexer/core/src/services/tagging/tag-recompute-service.js.map +1 -0
  160. package/dist/server/modules/affairs-indexer/core/src/services/watch/watch-service.d.ts +47 -0
  161. package/dist/server/modules/affairs-indexer/core/src/services/watch/watch-service.js +227 -0
  162. package/dist/server/modules/affairs-indexer/core/src/services/watch/watch-service.js.map +1 -0
  163. package/dist/server/modules/affairs-indexer/core/src/sqlite/catalog-schema.d.ts +5 -0
  164. package/dist/server/modules/affairs-indexer/core/src/sqlite/catalog-schema.js +245 -0
  165. package/dist/server/modules/affairs-indexer/core/src/sqlite/catalog-schema.js.map +1 -0
  166. package/dist/server/modules/affairs-indexer/core/src/sqlite/detect-catalog-schema.d.ts +14 -0
  167. package/dist/server/modules/affairs-indexer/core/src/sqlite/detect-catalog-schema.js +87 -0
  168. package/dist/server/modules/affairs-indexer/core/src/sqlite/detect-catalog-schema.js.map +1 -0
  169. package/dist/server/modules/affairs-indexer/core/src/sqlite/init-catalog.d.ts +13 -0
  170. package/dist/server/modules/affairs-indexer/core/src/sqlite/init-catalog.js +16 -0
  171. package/dist/server/modules/affairs-indexer/core/src/sqlite/init-catalog.js.map +1 -0
  172. package/dist/server/modules/affairs-indexer/core/src/sqlite/migration-runner.d.ts +22 -0
  173. package/dist/server/modules/affairs-indexer/core/src/sqlite/migration-runner.js +430 -0
  174. package/dist/server/modules/affairs-indexer/core/src/sqlite/migration-runner.js.map +1 -0
  175. package/dist/server/modules/affairs-indexer/core/src/sqlite/open-database.d.ts +9 -0
  176. package/dist/server/modules/affairs-indexer/core/src/sqlite/open-database.js +19 -0
  177. package/dist/server/modules/affairs-indexer/core/src/sqlite/open-database.js.map +1 -0
  178. package/dist/server/modules/affairs-indexer/core/src/tagging/simple-tag-inference.d.ts +21 -0
  179. package/dist/server/modules/affairs-indexer/core/src/tagging/simple-tag-inference.js +94 -0
  180. package/dist/server/modules/affairs-indexer/core/src/tagging/simple-tag-inference.js.map +1 -0
  181. package/dist/server/modules/affairs-indexer/core/src/utils/abort.d.ts +2 -0
  182. package/dist/server/modules/affairs-indexer/core/src/utils/abort.js +13 -0
  183. package/dist/server/modules/affairs-indexer/core/src/utils/abort.js.map +1 -0
  184. package/dist/server/modules/affairs-indexer/core/src/utils/file-streaming.d.ts +9 -0
  185. package/dist/server/modules/affairs-indexer/core/src/utils/file-streaming.js +64 -0
  186. package/dist/server/modules/affairs-indexer/core/src/utils/file-streaming.js.map +1 -0
  187. package/dist/server/modules/affairs-indexer/core/src/utils/root-command-lock.d.ts +10 -0
  188. package/dist/server/modules/affairs-indexer/core/src/utils/root-command-lock.js +230 -0
  189. package/dist/server/modules/affairs-indexer/core/src/utils/root-command-lock.js.map +1 -0
  190. package/dist/server/modules/affairs-indexer/core/src/utils/rss-log.d.ts +2 -0
  191. package/dist/server/modules/affairs-indexer/core/src/utils/rss-log.js +19 -0
  192. package/dist/server/modules/affairs-indexer/core/src/utils/rss-log.js.map +1 -0
  193. package/dist/server/modules/affairs-indexer/internal-command-runner.d.ts +31 -0
  194. package/dist/server/modules/affairs-indexer/internal-command-runner.js +643 -0
  195. package/dist/server/modules/affairs-indexer/internal-command-runner.js.map +1 -0
  196. package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +0 -49
  197. package/dist/server/modules/assistant-capability/assistant-capability-controller.js +10 -56
  198. package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
  199. package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +2 -46
  200. package/dist/server/modules/assistant-capability/assistant-capability-service.js +15 -158
  201. package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
  202. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.d.ts +4 -2
  203. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.js +62 -21
  204. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.js.map +1 -1
  205. package/dist/server/modules/butler/butler-control-session-service.d.ts +3 -4
  206. package/dist/server/modules/butler/butler-control-session-service.js +39 -62
  207. package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
  208. package/dist/server/modules/butler/butler-controller.d.ts +11 -3
  209. package/dist/server/modules/butler/butler-controller.js +19 -4
  210. package/dist/server/modules/butler/butler-controller.js.map +1 -1
  211. package/dist/server/modules/butler/butler-follow-up-service.js.map +1 -1
  212. package/dist/server/modules/butler/butler-profile-service.d.ts +1 -1
  213. package/dist/server/modules/butler/butler-profile-service.js +34 -63
  214. package/dist/server/modules/butler/butler-profile-service.js.map +1 -1
  215. package/dist/server/modules/butler/butler-project-service.d.ts +1 -3
  216. package/dist/server/modules/butler/butler-project-service.js +1 -7
  217. package/dist/server/modules/butler/butler-project-service.js.map +1 -1
  218. package/dist/server/modules/butler/butler-session-service.d.ts +1 -0
  219. package/dist/server/modules/butler/butler-session-service.js +109 -0
  220. package/dist/server/modules/butler/butler-session-service.js.map +1 -1
  221. package/dist/server/modules/butler/butler-session-summary-service.js +0 -2
  222. package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
  223. package/dist/server/modules/butler/butler-workspace-context.d.ts +5 -1
  224. package/dist/server/modules/butler/butler-workspace-context.js +21 -12
  225. package/dist/server/modules/butler/butler-workspace-context.js.map +1 -1
  226. package/dist/server/modules/file/file-access-guard.d.ts +2 -0
  227. package/dist/server/modules/file/file-access-guard.js +24 -2
  228. package/dist/server/modules/file/file-access-guard.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 +178 -1
  233. package/dist/server/modules/file/file-controller.js +273 -4
  234. package/dist/server/modules/file/file-controller.js.map +1 -1
  235. package/dist/server/modules/file/file-preview-link-service.d.ts +3 -0
  236. package/dist/server/modules/file/file-preview-link-service.js +30 -1
  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/recent-modified-file-service.d.ts +15 -0
  244. package/dist/server/modules/file/recent-modified-file-service.js +102 -0
  245. package/dist/server/modules/file/recent-modified-file-service.js.map +1 -0
  246. package/dist/server/modules/file/runtime/codingns-workspace-bridge.js +917 -0
  247. package/dist/server/modules/file/workspace-file-bridge-service.d.ts +137 -0
  248. package/dist/server/modules/file/workspace-file-bridge-service.js +490 -0
  249. package/dist/server/modules/file/workspace-file-bridge-service.js.map +1 -0
  250. package/dist/server/modules/file/workspace-file-bridge-watch-service.d.ts +42 -0
  251. package/dist/server/modules/file/workspace-file-bridge-watch-service.js +304 -0
  252. package/dist/server/modules/file/workspace-file-bridge-watch-service.js.map +1 -0
  253. package/dist/server/modules/file/workspace-index-apply-service.d.ts +25 -0
  254. package/dist/server/modules/file/workspace-index-apply-service.js +42 -0
  255. package/dist/server/modules/file/workspace-index-apply-service.js.map +1 -0
  256. package/dist/server/modules/model-switch/cc-switch-adapter.js +1 -1
  257. package/dist/server/modules/model-switch/cc-switch-adapter.js.map +1 -1
  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-controller.d.ts +131 -0
  265. package/dist/server/modules/plugins/plugin-controller.js +277 -0
  266. package/dist/server/modules/plugins/plugin-controller.js.map +1 -0
  267. package/dist/server/modules/plugins/plugin-file-gateway-service.d.ts +50 -0
  268. package/dist/server/modules/plugins/plugin-file-gateway-service.js +191 -0
  269. package/dist/server/modules/plugins/plugin-file-gateway-service.js.map +1 -0
  270. package/dist/server/modules/plugins/plugin-manifest.d.ts +8 -0
  271. package/dist/server/modules/plugins/plugin-manifest.js +420 -0
  272. package/dist/server/modules/plugins/plugin-manifest.js.map +1 -0
  273. package/dist/server/modules/plugins/plugin-permission-service.d.ts +49 -0
  274. package/dist/server/modules/plugins/plugin-permission-service.js +267 -0
  275. package/dist/server/modules/plugins/plugin-permission-service.js.map +1 -0
  276. package/dist/server/modules/plugins/plugin-process-runner.d.ts +21 -0
  277. package/dist/server/modules/plugins/plugin-process-runner.js +127 -0
  278. package/dist/server/modules/plugins/plugin-process-runner.js.map +1 -0
  279. package/dist/server/modules/plugins/plugin-registry-service.d.ts +41 -0
  280. package/dist/server/modules/plugins/plugin-registry-service.js +238 -0
  281. package/dist/server/modules/plugins/plugin-registry-service.js.map +1 -0
  282. package/dist/server/modules/plugins/plugin-runtime-service.d.ts +55 -0
  283. package/dist/server/modules/plugins/plugin-runtime-service.js +252 -0
  284. package/dist/server/modules/plugins/plugin-runtime-service.js.map +1 -0
  285. package/dist/server/modules/plugins/plugin-runtime-session-service.d.ts +21 -0
  286. package/dist/server/modules/plugins/plugin-runtime-session-service.js +83 -0
  287. package/dist/server/modules/plugins/plugin-runtime-session-service.js.map +1 -0
  288. package/dist/server/modules/plugins/plugin-scheduler-service.d.ts +31 -0
  289. package/dist/server/modules/plugins/plugin-scheduler-service.js +232 -0
  290. package/dist/server/modules/plugins/plugin-scheduler-service.js.map +1 -0
  291. package/dist/server/modules/plugins/plugin-static-service.d.ts +11 -0
  292. package/dist/server/modules/plugins/plugin-static-service.js +145 -0
  293. package/dist/server/modules/plugins/plugin-static-service.js.map +1 -0
  294. package/dist/server/modules/preferences/profile-service.d.ts +1 -0
  295. package/dist/server/modules/preferences/profile-service.js +27 -3
  296. package/dist/server/modules/preferences/profile-service.js.map +1 -1
  297. package/dist/server/modules/presentation/presentation-controller.d.ts +3 -0
  298. package/dist/server/modules/presentation/presentation-controller.js +11 -0
  299. package/dist/server/modules/presentation/presentation-controller.js.map +1 -1
  300. package/dist/server/modules/presentation/presentation-export-task-service.d.ts +6 -0
  301. package/dist/server/modules/presentation/presentation-export-task-service.js +52 -8
  302. package/dist/server/modules/presentation/presentation-export-task-service.js.map +1 -1
  303. package/dist/server/modules/presentation/presentation-pptx-export-service.js +200 -14
  304. package/dist/server/modules/presentation/presentation-pptx-export-service.js.map +1 -1
  305. package/dist/server/modules/presentation/presentation-renderer.d.ts +50 -0
  306. package/dist/server/modules/presentation/presentation-renderer.js +450 -37
  307. package/dist/server/modules/presentation/presentation-renderer.js.map +1 -1
  308. package/dist/server/modules/sessions/codex-app-server-helper-process.js +0 -8
  309. package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
  310. package/dist/server/modules/sessions/session-controller.d.ts +1 -0
  311. package/dist/server/modules/sessions/session-controller.js +3 -0
  312. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  313. package/dist/server/modules/sessions/session-history-service.d.ts +2 -0
  314. package/dist/server/modules/sessions/session-history-service.js +78 -3
  315. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  316. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +1 -0
  317. package/dist/server/modules/sessions/session-live-runtime-service.js +4 -0
  318. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  319. package/dist/server/modules/sessions/session-permission-request-service.js +0 -4
  320. package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
  321. package/dist/server/modules/sessions/workspace-session-instruction-watch-service.d.ts +23 -0
  322. package/dist/server/modules/sessions/workspace-session-instruction-watch-service.js +122 -0
  323. package/dist/server/modules/sessions/workspace-session-instruction-watch-service.js.map +1 -0
  324. package/dist/server/modules/sessions/workspace-session-runtime-context-service.d.ts +15 -0
  325. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js +93 -10
  326. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js.map +1 -1
  327. package/dist/server/modules/skills/builtin-skills/codingns-assistant/SKILL.md +6 -7
  328. package/dist/server/modules/skills/builtin-skills/codingns-assistant/references/cli-workflow.md +2 -3
  329. package/dist/server/modules/system/host-resource-controller.d.ts +7 -0
  330. package/dist/server/modules/system/host-resource-controller.js +12 -0
  331. package/dist/server/modules/system/host-resource-controller.js.map +1 -0
  332. package/dist/server/modules/system/host-resource-service.d.ts +54 -0
  333. package/dist/server/modules/system/host-resource-service.js +162 -0
  334. package/dist/server/modules/system/host-resource-service.js.map +1 -0
  335. package/dist/server/modules/tasks/observability-service.d.ts +12 -2
  336. package/dist/server/modules/tasks/observability-service.js +13 -1
  337. package/dist/server/modules/tasks/observability-service.js.map +1 -1
  338. package/dist/server/modules/tasks/task-helper-client.d.ts +36 -2
  339. package/dist/server/modules/tasks/task-helper-client.js +201 -19
  340. package/dist/server/modules/tasks/task-helper-client.js.map +1 -1
  341. package/dist/server/modules/tasks/task-helper-pool.d.ts +37 -0
  342. package/dist/server/modules/tasks/task-helper-pool.js +173 -0
  343. package/dist/server/modules/tasks/task-helper-pool.js.map +1 -0
  344. package/dist/server/modules/tasks/task-helper-process-handlers.d.ts +27 -0
  345. package/dist/server/modules/tasks/task-helper-process-handlers.js +25 -1
  346. package/dist/server/modules/tasks/task-helper-process-handlers.js.map +1 -1
  347. package/dist/server/modules/tasks/task-helper-process.js +75 -26
  348. package/dist/server/modules/tasks/task-helper-process.js.map +1 -1
  349. package/dist/server/modules/tasks/task-helper-scheduling.d.ts +11 -0
  350. package/dist/server/modules/tasks/task-helper-scheduling.js +43 -0
  351. package/dist/server/modules/tasks/task-helper-scheduling.js.map +1 -0
  352. package/dist/server/modules/tasks/task-lane-executors.js +19 -3
  353. package/dist/server/modules/tasks/task-lane-executors.js.map +1 -1
  354. package/dist/server/modules/tasks/task-manager.d.ts +1 -0
  355. package/dist/server/modules/tasks/task-manager.js +3 -0
  356. package/dist/server/modules/tasks/task-manager.js.map +1 -1
  357. package/dist/server/modules/tasks/task-registry.d.ts +1 -0
  358. package/dist/server/modules/tasks/task-registry.js +3 -0
  359. package/dist/server/modules/tasks/task-registry.js.map +1 -1
  360. package/dist/server/modules/tasks/task-scheduler.d.ts +6 -0
  361. package/dist/server/modules/tasks/task-scheduler.js +162 -7
  362. package/dist/server/modules/tasks/task-scheduler.js.map +1 -1
  363. package/dist/server/modules/tasks/task-types.d.ts +30 -3
  364. package/dist/server/modules/tasks/task-types.js +16 -2
  365. package/dist/server/modules/tasks/task-types.js.map +1 -1
  366. package/dist/server/modules/terminal/runtime/terminal-log-writer-process.js +1 -1
  367. package/dist/server/modules/terminal/runtime/terminal-log-writer-process.js.map +1 -1
  368. package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.d.ts +68 -0
  369. package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.js +286 -0
  370. package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.js.map +1 -0
  371. package/dist/server/modules/workbench/workbench-controller.js +11 -1
  372. package/dist/server/modules/workbench/workbench-controller.js.map +1 -1
  373. package/dist/server/modules/workbench/workbench-service.d.ts +9 -2
  374. package/dist/server/modules/workbench/workbench-service.js +58 -18
  375. package/dist/server/modules/workbench/workbench-service.js.map +1 -1
  376. package/dist/server/modules/workspace/affairs-library-controller.d.ts +117 -0
  377. package/dist/server/modules/workspace/affairs-library-controller.js +164 -0
  378. package/dist/server/modules/workspace/affairs-library-controller.js.map +1 -0
  379. package/dist/server/modules/workspace/affairs-library-debug-log.d.ts +23 -0
  380. package/dist/server/modules/workspace/affairs-library-debug-log.js +107 -0
  381. package/dist/server/modules/workspace/affairs-library-debug-log.js.map +1 -0
  382. package/dist/server/modules/workspace/affairs-library-dirty-watch-service.d.ts +52 -0
  383. package/dist/server/modules/workspace/affairs-library-dirty-watch-service.js +555 -0
  384. package/dist/server/modules/workspace/affairs-library-dirty-watch-service.js.map +1 -0
  385. package/dist/server/modules/workspace/affairs-library-preview-link-service.d.ts +24 -0
  386. package/dist/server/modules/workspace/affairs-library-preview-link-service.js +157 -0
  387. package/dist/server/modules/workspace/affairs-library-preview-link-service.js.map +1 -0
  388. package/dist/server/modules/workspace/affairs-library-refresh-contract.d.ts +56 -0
  389. package/dist/server/modules/workspace/affairs-library-refresh-contract.js +48 -0
  390. package/dist/server/modules/workspace/affairs-library-refresh-contract.js.map +1 -0
  391. package/dist/server/modules/workspace/affairs-library-service.d.ts +344 -0
  392. package/dist/server/modules/workspace/affairs-library-service.js +3755 -0
  393. package/dist/server/modules/workspace/affairs-library-service.js.map +1 -0
  394. package/dist/server/modules/workspace/affairs-lightweight-session-controller.d.ts +78 -0
  395. package/dist/server/modules/workspace/affairs-lightweight-session-controller.js +146 -0
  396. package/dist/server/modules/workspace/affairs-lightweight-session-controller.js.map +1 -0
  397. package/dist/server/modules/workspace/affairs-lightweight-session-service.d.ts +133 -0
  398. package/dist/server/modules/workspace/affairs-lightweight-session-service.js +1447 -0
  399. package/dist/server/modules/workspace/affairs-lightweight-session-service.js.map +1 -0
  400. package/dist/server/modules/workspace/affairs-tag-controller.d.ts +107 -0
  401. package/dist/server/modules/workspace/affairs-tag-controller.js +97 -0
  402. package/dist/server/modules/workspace/affairs-tag-controller.js.map +1 -0
  403. package/dist/server/modules/workspace/affairs-tag-service.d.ts +153 -0
  404. package/dist/server/modules/workspace/affairs-tag-service.js +680 -0
  405. package/dist/server/modules/workspace/affairs-tag-service.js.map +1 -0
  406. package/dist/server/modules/workspace/workspace-controller.d.ts +2 -1
  407. package/dist/server/modules/workspace/workspace-controller.js +8 -2
  408. package/dist/server/modules/workspace/workspace-controller.js.map +1 -1
  409. package/dist/server/modules/workspace/workspace-service.js +60 -9
  410. package/dist/server/modules/workspace/workspace-service.js.map +1 -1
  411. package/dist/server/routes/affairs.d.ts +3 -0
  412. package/dist/server/routes/affairs.js +7 -0
  413. package/dist/server/routes/affairs.js.map +1 -0
  414. package/dist/server/routes/assistant.js +0 -5
  415. package/dist/server/routes/assistant.js.map +1 -1
  416. package/dist/server/routes/files.js +45 -0
  417. package/dist/server/routes/files.js.map +1 -1
  418. package/dist/server/routes/office.js +4 -0
  419. package/dist/server/routes/office.js.map +1 -1
  420. package/dist/server/routes/plugins-public.d.ts +3 -0
  421. package/dist/server/routes/plugins-public.js +5 -0
  422. package/dist/server/routes/plugins-public.js.map +1 -0
  423. package/dist/server/routes/plugins.d.ts +3 -0
  424. package/dist/server/routes/plugins.js +19 -0
  425. package/dist/server/routes/plugins.js.map +1 -0
  426. package/dist/server/routes/presentation.js +1 -0
  427. package/dist/server/routes/presentation.js.map +1 -1
  428. package/dist/server/routes/system.d.ts +2 -1
  429. package/dist/server/routes/system.js +2 -1
  430. package/dist/server/routes/system.js.map +1 -1
  431. package/dist/server/routes/workspaces.d.ts +4 -1
  432. package/dist/server/routes/workspaces.js +46 -1
  433. package/dist/server/routes/workspaces.js.map +1 -1
  434. package/dist/server/server/create-server.d.ts +26 -2
  435. package/dist/server/server/create-server.js +159 -32
  436. package/dist/server/server/create-server.js.map +1 -1
  437. package/dist/server/shared/http/error-handler.js +20 -6
  438. package/dist/server/shared/http/error-handler.js.map +1 -1
  439. package/dist/server/shared/runtime/better-sqlite3.d.ts +5 -0
  440. package/dist/server/shared/runtime/better-sqlite3.js +6 -0
  441. package/dist/server/shared/runtime/better-sqlite3.js.map +1 -0
  442. package/dist/server/storage/repositories/affairs-assistant-session-snapshot-repository.d.ts +10 -0
  443. package/dist/server/storage/repositories/affairs-assistant-session-snapshot-repository.js +47 -0
  444. package/dist/server/storage/repositories/affairs-assistant-session-snapshot-repository.js.map +1 -0
  445. package/dist/server/storage/repositories/butler-profile-repository.js +7 -3
  446. package/dist/server/storage/repositories/butler-profile-repository.js.map +1 -1
  447. package/dist/server/storage/repositories/office-onlyoffice-setting-repository.d.ts +19 -0
  448. package/dist/server/storage/repositories/office-onlyoffice-setting-repository.js +55 -0
  449. package/dist/server/storage/repositories/office-onlyoffice-setting-repository.js.map +1 -0
  450. package/dist/server/storage/repositories/plugin-audit-event-repository.d.ts +8 -0
  451. package/dist/server/storage/repositories/plugin-audit-event-repository.js +49 -0
  452. package/dist/server/storage/repositories/plugin-audit-event-repository.js.map +1 -0
  453. package/dist/server/storage/repositories/plugin-definition-repository.d.ts +10 -0
  454. package/dist/server/storage/repositories/plugin-definition-repository.js +84 -0
  455. package/dist/server/storage/repositories/plugin-definition-repository.js.map +1 -0
  456. package/dist/server/storage/repositories/plugin-enablement-repository.d.ts +9 -0
  457. package/dist/server/storage/repositories/plugin-enablement-repository.js +74 -0
  458. package/dist/server/storage/repositories/plugin-enablement-repository.js.map +1 -0
  459. package/dist/server/storage/repositories/plugin-permission-grant-repository.d.ts +12 -0
  460. package/dist/server/storage/repositories/plugin-permission-grant-repository.js +142 -0
  461. package/dist/server/storage/repositories/plugin-permission-grant-repository.js.map +1 -0
  462. package/dist/server/storage/repositories/plugin-run-repository.d.ts +10 -0
  463. package/dist/server/storage/repositories/plugin-run-repository.js +111 -0
  464. package/dist/server/storage/repositories/plugin-run-repository.js.map +1 -0
  465. package/dist/server/storage/repositories/plugin-runtime-session-repository.d.ts +10 -0
  466. package/dist/server/storage/repositories/plugin-runtime-session-repository.js +86 -0
  467. package/dist/server/storage/repositories/plugin-runtime-session-repository.js.map +1 -0
  468. package/dist/server/storage/repositories/session-index-repository.js +9 -2
  469. package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
  470. package/dist/server/storage/repositories/user-affairs-library-setting-repository.d.ts +10 -0
  471. package/dist/server/storage/repositories/user-affairs-library-setting-repository.js +69 -0
  472. package/dist/server/storage/repositories/user-affairs-library-setting-repository.js.map +1 -0
  473. package/dist/server/storage/repositories/user-preference-profile-repository.js +6 -3
  474. package/dist/server/storage/repositories/user-preference-profile-repository.js.map +1 -1
  475. package/dist/server/storage/repositories/workspace-navigation-state-repository.d.ts +3 -0
  476. package/dist/server/storage/repositories/workspace-navigation-state-repository.js +47 -4
  477. package/dist/server/storage/repositories/workspace-navigation-state-repository.js.map +1 -1
  478. package/dist/server/storage/sqlite/client.d.ts +2 -2
  479. package/dist/server/storage/sqlite/client.js +480 -124
  480. package/dist/server/storage/sqlite/client.js.map +1 -1
  481. package/dist/server/storage/sqlite/schema.sql +188 -25
  482. package/dist/server/types/domain.d.ts +149 -20
  483. package/dist/server/ws/workbench-ws-hub.js +2 -2
  484. package/dist/server/ws/workbench-ws-hub.js.map +1 -1
  485. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js +0 -2
  486. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js.map +1 -1
  487. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +0 -6
  488. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
  489. package/package.json +10 -3
  490. package/scripts/postinstall.mjs +248 -11
  491. package/vendor/better-sqlite3-win32-x64-node22/LICENSE +21 -0
  492. package/vendor/better-sqlite3-win32-x64-node22/README.md +12 -0
  493. package/vendor/better-sqlite3-win32-x64-node22/README.upstream.md +99 -0
  494. package/vendor/better-sqlite3-win32-x64-node22/binding.gyp +38 -0
  495. package/vendor/better-sqlite3-win32-x64-node22/build/Release/better_sqlite3.node +0 -0
  496. package/vendor/better-sqlite3-win32-x64-node22/deps/common.gypi +68 -0
  497. package/vendor/better-sqlite3-win32-x64-node22/deps/copy.js +31 -0
  498. package/vendor/better-sqlite3-win32-x64-node22/deps/defines.gypi +41 -0
  499. package/vendor/better-sqlite3-win32-x64-node22/deps/download.sh +122 -0
  500. package/vendor/better-sqlite3-win32-x64-node22/deps/patches/1208.patch +15 -0
  501. package/vendor/better-sqlite3-win32-x64-node22/deps/sqlite3/sqlite3.c +265994 -0
  502. package/vendor/better-sqlite3-win32-x64-node22/deps/sqlite3/sqlite3.h +13968 -0
  503. package/vendor/better-sqlite3-win32-x64-node22/deps/sqlite3/sqlite3ext.h +730 -0
  504. package/vendor/better-sqlite3-win32-x64-node22/deps/sqlite3.gyp +80 -0
  505. package/vendor/better-sqlite3-win32-x64-node22/deps/test_extension.c +21 -0
  506. package/vendor/better-sqlite3-win32-x64-node22/lib/database.js +90 -0
  507. package/vendor/better-sqlite3-win32-x64-node22/lib/index.js +3 -0
  508. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/aggregate.js +43 -0
  509. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/backup.js +67 -0
  510. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/function.js +31 -0
  511. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/inspect.js +7 -0
  512. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/pragma.js +12 -0
  513. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/serialize.js +16 -0
  514. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/table.js +189 -0
  515. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/transaction.js +78 -0
  516. package/vendor/better-sqlite3-win32-x64-node22/lib/methods/wrappers.js +54 -0
  517. package/vendor/better-sqlite3-win32-x64-node22/lib/sqlite-error.js +20 -0
  518. package/vendor/better-sqlite3-win32-x64-node22/lib/util.js +12 -0
  519. package/vendor/better-sqlite3-win32-x64-node22/package.json +38 -0
  520. package/vendor/better-sqlite3-win32-x64-node22/scripts/verify-runtime.cjs +42 -0
  521. package/vendor/better-sqlite3-win32-x64-node22/src/addon.cpp +47 -0
  522. package/vendor/better-sqlite3-win32-x64-node22/src/better_sqlite3.cpp +74 -0
  523. package/vendor/better-sqlite3-win32-x64-node22/src/objects/backup.cpp +120 -0
  524. package/vendor/better-sqlite3-win32-x64-node22/src/objects/backup.hpp +36 -0
  525. package/vendor/better-sqlite3-win32-x64-node22/src/objects/database.cpp +417 -0
  526. package/vendor/better-sqlite3-win32-x64-node22/src/objects/database.hpp +103 -0
  527. package/vendor/better-sqlite3-win32-x64-node22/src/objects/statement-iterator.cpp +113 -0
  528. package/vendor/better-sqlite3-win32-x64-node22/src/objects/statement-iterator.hpp +50 -0
  529. package/vendor/better-sqlite3-win32-x64-node22/src/objects/statement.cpp +383 -0
  530. package/vendor/better-sqlite3-win32-x64-node22/src/objects/statement.hpp +58 -0
  531. package/vendor/better-sqlite3-win32-x64-node22/src/util/bind-map.cpp +73 -0
  532. package/vendor/better-sqlite3-win32-x64-node22/src/util/binder.cpp +193 -0
  533. package/vendor/better-sqlite3-win32-x64-node22/src/util/constants.cpp +172 -0
  534. package/vendor/better-sqlite3-win32-x64-node22/src/util/custom-aggregate.cpp +121 -0
  535. package/vendor/better-sqlite3-win32-x64-node22/src/util/custom-function.cpp +59 -0
  536. package/vendor/better-sqlite3-win32-x64-node22/src/util/custom-table.cpp +409 -0
  537. package/vendor/better-sqlite3-win32-x64-node22/src/util/data-converter.cpp +17 -0
  538. package/vendor/better-sqlite3-win32-x64-node22/src/util/data.cpp +194 -0
  539. package/vendor/better-sqlite3-win32-x64-node22/src/util/helpers.cpp +109 -0
  540. package/vendor/better-sqlite3-win32-x64-node22/src/util/macros.cpp +83 -0
  541. package/vendor/better-sqlite3-win32-x64-node22/src/util/query-macros.cpp +71 -0
  542. package/vendor/better-sqlite3-win32-x64-node22/src/util/row-builder.cpp +49 -0
  543. package/vendor/node-pty-fork/README.md +1 -0
  544. package/vendor/node-pty-fork/scripts/runtime-install-context.cjs +24 -0
  545. package/vendor/node-pty-fork/scripts/verify-runtime.cjs +8 -0
  546. package/vendor/node-pty-fork/scripts/verify-runtime.test.cjs +30 -0
  547. package/vendor-src/better-sqlite3-win32-x64-node22/README.md +12 -0
  548. package/dist/public/assets/AdaptiveButlerPage-B153lk5H.css +0 -1
  549. package/dist/public/assets/AdaptiveButlerPage-b7s6F_sd.js +0 -3
  550. package/dist/public/assets/App-B0q8uDA-.js +0 -30
  551. package/dist/public/assets/DesktopWindowPage-BdKUZrKG.js +0 -2
  552. package/dist/public/assets/FileContextPanel-lM5mBcfn.js +0 -1
  553. package/dist/public/assets/GitSidebar-CmXAhyjo.js +0 -6
  554. package/dist/public/assets/MobileCreateSessionSheet-CceV0-AH.js +0 -1
  555. package/dist/public/assets/MobileWorkspaceSwitcherHeader-DhaM9fgx.js +0 -1
  556. package/dist/public/assets/ServerSettingsModal-Rkgn3jft.js +0 -1
  557. package/dist/public/assets/SessionIndexPage-BOumP3ij.js +0 -1
  558. package/dist/public/assets/SettingsPage-vx_c-00-.js +0 -2
  559. package/dist/public/assets/TerminalManagerPanel-D9JHCS6d.js +0 -1
  560. package/dist/public/assets/TerminalRuntimeFallbackModal-W5NjqFEz.js +0 -1
  561. package/dist/public/assets/ToolFilesPage-DWtpaN_7.js +0 -1
  562. package/dist/public/assets/ToolGitPage-MpGXsw4_.js +0 -1
  563. package/dist/public/assets/ToolProcessesPage-B1jHQKhZ.js +0 -1
  564. package/dist/public/assets/ToolsHomePage-CJrn8ZFl.js +0 -1
  565. package/dist/public/assets/WorkbenchLandingPage-CJQ1V5U-.js +0 -1
  566. package/dist/public/assets/WorkbenchLayout-D48i71PU.js +0 -244
  567. package/dist/public/assets/WorkbenchModal-BYNuMIoV.js +0 -1
  568. package/dist/public/assets/WorkbenchShellRoute-B4XB8SwG.css +0 -1
  569. package/dist/public/assets/WorkbenchShellRoute-CGKjy4J-.js +0 -1
  570. package/dist/public/assets/WorkspaceDebugDetailPage-DCAYgays.js +0 -1
  571. package/dist/public/assets/WorkspaceDetailPage-D5v-nUIi.js +0 -1
  572. package/dist/public/assets/WorkspaceHomePage-I5G1p5SR.js +0 -1
  573. package/dist/public/assets/file-tree-icon-BFwaPxKs.js +0 -590
  574. package/dist/public/assets/index-CjewzOUG.js +0 -42
  575. package/dist/public/assets/index-VVxfF0s5.css +0 -1
  576. package/dist/public/assets/model-switch-api-Br0ivfe5.js +0 -1
  577. package/dist/public/assets/realtime-client-BlQRqVmm.js +0 -1
  578. package/dist/public/assets/useRegisteredDebugTemplates-CXmxu69X.js +0 -1
  579. package/dist/server/modules/butler/assistant-sandbox-cleanup-scheduler.d.ts +0 -32
  580. package/dist/server/modules/butler/assistant-sandbox-cleanup-scheduler.js +0 -93
  581. package/dist/server/modules/butler/assistant-sandbox-cleanup-scheduler.js.map +0 -1
  582. package/dist/server/modules/butler/assistant-sandbox-service.d.ts +0 -69
  583. package/dist/server/modules/butler/assistant-sandbox-service.js +0 -399
  584. package/dist/server/modules/butler/assistant-sandbox-service.js.map +0 -1
  585. package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.d.ts +0 -18
  586. package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.js +0 -191
  587. package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
- import Database from "better-sqlite3";
3
+ import Database from "../../shared/runtime/better-sqlite3.js";
4
4
  export function createDatabaseClient(databasePath) {
5
5
  if (databasePath !== ":memory:") {
6
6
  fs.mkdirSync(path.dirname(databasePath), { recursive: true });
@@ -16,6 +16,7 @@ export function createDatabaseClient(databasePath) {
16
16
  ensureWorkspaceRemovalColumn(db);
17
17
  ensureWorkspaceSortOrderColumn(db);
18
18
  ensureWorkspaceNavigationBackgroundColorColumn(db);
19
+ ensureWorkspaceNavigationAffairsLibraryColumns(db);
19
20
  ensureOpenCliProviderSchema(db);
20
21
  ensureOpenCliCatalogSchema(db);
21
22
  ensureOpenCliRuntimeProfileSchema(db);
@@ -45,12 +46,17 @@ export function createDatabaseClient(databasePath) {
45
46
  ensureTerminalCommandTemplateDebugSchema(db);
46
47
  ensureTerminalInstanceDebugSchema(db);
47
48
  ensureUserPreferenceProfileSchema(db);
49
+ ensureUserAffairsLibrarySettingsSchema(db);
48
50
  ensureButlerProfileSchema(db);
49
51
  ensureButlerControlSessionSchema(db);
50
52
  ensureButlerControlTimerSchema(db);
51
53
  ensureAssistantAutomationSchema(db);
52
- ensureAssistantSandboxSchema(db);
54
+ ensureOnlyOfficeSettingsSchema(db);
53
55
  ensureDocumentTemplateSchema(db);
56
+ ensurePluginRegistrySchema(db);
57
+ ensurePluginRuntimeSessionSchema(db);
58
+ ensurePluginPermissionGrantSchema(db);
59
+ ensurePluginRunSchema(db);
54
60
  ensureOpsTargetWorkspaceSchema(db);
55
61
  ensureButlerInboxSchema(db);
56
62
  ensureButlerFollowUpTaskSchema(db);
@@ -244,6 +250,269 @@ function ensureAuthDeviceSchema(db) {
244
250
  db.exec("ALTER TABLE auth_devices ADD COLUMN user_agent TEXT");
245
251
  }
246
252
  }
253
+ function ensureWorkspaceNavigationAffairsLibraryColumns(db) {
254
+ if (!tableExists(db, "workspace_navigation_states")) {
255
+ return;
256
+ }
257
+ const columns = db
258
+ .prepare("PRAGMA table_info(workspace_navigation_states)")
259
+ .all();
260
+ const columnNames = new Set(columns.map((column) => column.name));
261
+ if (!columnNames.has("affairs_library_root_path")) {
262
+ db.exec("ALTER TABLE workspace_navigation_states ADD COLUMN affairs_library_root_path TEXT");
263
+ }
264
+ if (!columnNames.has("affairs_library_enabled")) {
265
+ db.exec("ALTER TABLE workspace_navigation_states ADD COLUMN affairs_library_enabled INTEGER NOT NULL DEFAULT 0 CHECK (affairs_library_enabled IN (0, 1))");
266
+ }
267
+ if (!columnNames.has("affairs_library_favorites_json")) {
268
+ db.exec("ALTER TABLE workspace_navigation_states ADD COLUMN affairs_library_favorites_json TEXT");
269
+ }
270
+ }
271
+ function ensurePluginRegistrySchema(db) {
272
+ db.exec(`
273
+ CREATE TABLE IF NOT EXISTS plugin_definitions (
274
+ id TEXT PRIMARY KEY,
275
+ version TEXT NOT NULL,
276
+ name TEXT NOT NULL,
277
+ install_root TEXT NOT NULL,
278
+ manifest_json TEXT NOT NULL,
279
+ has_frontend INTEGER NOT NULL DEFAULT 0 CHECK (has_frontend IN (0, 1)),
280
+ has_backend INTEGER NOT NULL DEFAULT 0 CHECK (has_backend IN (0, 1)),
281
+ created_at TEXT NOT NULL,
282
+ updated_at TEXT NOT NULL
283
+ );
284
+
285
+ CREATE INDEX IF NOT EXISTS idx_plugin_definitions_name
286
+ ON plugin_definitions(name);
287
+ CREATE INDEX IF NOT EXISTS idx_plugin_definitions_updated_at
288
+ ON plugin_definitions(updated_at DESC);
289
+
290
+ CREATE TABLE IF NOT EXISTS plugin_enablements (
291
+ plugin_id TEXT PRIMARY KEY,
292
+ enabled INTEGER NOT NULL DEFAULT 0 CHECK (enabled IN (0, 1)),
293
+ enabled_by_user_id TEXT,
294
+ enabled_at TEXT,
295
+ disabled_by_user_id TEXT,
296
+ disabled_at TEXT,
297
+ reason TEXT,
298
+ updated_at TEXT NOT NULL,
299
+ FOREIGN KEY (plugin_id) REFERENCES plugin_definitions(id) ON DELETE CASCADE,
300
+ FOREIGN KEY (enabled_by_user_id) REFERENCES auth_users(id),
301
+ FOREIGN KEY (disabled_by_user_id) REFERENCES auth_users(id)
302
+ );
303
+
304
+ CREATE INDEX IF NOT EXISTS idx_plugin_enablements_enabled
305
+ ON plugin_enablements(enabled);
306
+
307
+ CREATE TABLE IF NOT EXISTS plugin_audit_events (
308
+ id TEXT PRIMARY KEY,
309
+ plugin_id TEXT NOT NULL,
310
+ workspace_id TEXT,
311
+ event_type TEXT NOT NULL CHECK (
312
+ event_type IN (
313
+ 'plugin.registered',
314
+ 'plugin.registration_failed',
315
+ 'plugin.enabled',
316
+ 'plugin.disabled',
317
+ 'plugin.permission_granted',
318
+ 'plugin.permission_revoked',
319
+ 'plugin.permission_denied',
320
+ 'plugin.action_invoked',
321
+ 'plugin.action_rejected',
322
+ 'plugin.schedule_triggered',
323
+ 'plugin.schedule_retry_scheduled',
324
+ 'plugin.schedule_skipped',
325
+ 'plugin.frontend_loaded',
326
+ 'plugin.scope_rejected',
327
+ 'plugin.desktop_call'
328
+ )
329
+ ),
330
+ actor_user_id TEXT,
331
+ payload_json TEXT NOT NULL,
332
+ created_at TEXT NOT NULL,
333
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
334
+ FOREIGN KEY (actor_user_id) REFERENCES auth_users(id)
335
+ );
336
+
337
+ CREATE INDEX IF NOT EXISTS idx_plugin_audit_events_plugin_id
338
+ ON plugin_audit_events(plugin_id, created_at DESC);
339
+ `);
340
+ ensurePluginAuditEventForeignKeyCompatibility(db);
341
+ }
342
+ function ensurePluginAuditEventForeignKeyCompatibility(db) {
343
+ if (!tableExists(db, "plugin_audit_events")) {
344
+ return;
345
+ }
346
+ const table = db
347
+ .prepare(`SELECT sql
348
+ FROM sqlite_master
349
+ WHERE type = 'table'
350
+ AND name = 'plugin_audit_events'
351
+ LIMIT 1`)
352
+ .get();
353
+ const definition = table?.sql ?? "";
354
+ if (!definition.includes("REFERENCES plugin_definitions")) {
355
+ const supportsNewEvents = definition.includes("'plugin.permission_granted'") &&
356
+ definition.includes("'plugin.permission_revoked'") &&
357
+ definition.includes("'plugin.permission_denied'") &&
358
+ definition.includes("'plugin.schedule_triggered'") &&
359
+ definition.includes("'plugin.schedule_retry_scheduled'") &&
360
+ definition.includes("'plugin.schedule_skipped'");
361
+ if (supportsNewEvents) {
362
+ return;
363
+ }
364
+ }
365
+ db.exec(`
366
+ ALTER TABLE plugin_audit_events RENAME TO plugin_audit_events_legacy;
367
+
368
+ CREATE TABLE plugin_audit_events (
369
+ id TEXT PRIMARY KEY,
370
+ plugin_id TEXT NOT NULL,
371
+ workspace_id TEXT,
372
+ event_type TEXT NOT NULL CHECK (
373
+ event_type IN (
374
+ 'plugin.registered',
375
+ 'plugin.registration_failed',
376
+ 'plugin.enabled',
377
+ 'plugin.disabled',
378
+ 'plugin.permission_granted',
379
+ 'plugin.permission_revoked',
380
+ 'plugin.permission_denied',
381
+ 'plugin.action_invoked',
382
+ 'plugin.action_rejected',
383
+ 'plugin.schedule_triggered',
384
+ 'plugin.schedule_retry_scheduled',
385
+ 'plugin.schedule_skipped',
386
+ 'plugin.frontend_loaded',
387
+ 'plugin.scope_rejected',
388
+ 'plugin.desktop_call'
389
+ )
390
+ ),
391
+ actor_user_id TEXT,
392
+ payload_json TEXT NOT NULL,
393
+ created_at TEXT NOT NULL,
394
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
395
+ FOREIGN KEY (actor_user_id) REFERENCES auth_users(id)
396
+ );
397
+
398
+ INSERT INTO plugin_audit_events (
399
+ id,
400
+ plugin_id,
401
+ workspace_id,
402
+ event_type,
403
+ actor_user_id,
404
+ payload_json,
405
+ created_at
406
+ )
407
+ SELECT
408
+ id,
409
+ plugin_id,
410
+ workspace_id,
411
+ event_type,
412
+ actor_user_id,
413
+ payload_json,
414
+ created_at
415
+ FROM plugin_audit_events_legacy;
416
+
417
+ DROP TABLE plugin_audit_events_legacy;
418
+
419
+ CREATE INDEX IF NOT EXISTS idx_plugin_audit_events_plugin_id
420
+ ON plugin_audit_events(plugin_id, created_at DESC);
421
+ `);
422
+ }
423
+ function ensurePluginRuntimeSessionSchema(db) {
424
+ db.exec(`
425
+ CREATE TABLE IF NOT EXISTS plugin_runtime_sessions (
426
+ id TEXT PRIMARY KEY,
427
+ plugin_id TEXT NOT NULL,
428
+ workspace_id TEXT NOT NULL,
429
+ opened_by_user_id TEXT NOT NULL,
430
+ source TEXT NOT NULL CHECK (source IN ('frontend', 'assistant', 'cli')),
431
+ status TEXT NOT NULL CHECK (status IN ('active', 'closed')),
432
+ created_at TEXT NOT NULL,
433
+ updated_at TEXT NOT NULL,
434
+ closed_at TEXT,
435
+ FOREIGN KEY (plugin_id) REFERENCES plugin_definitions(id) ON DELETE CASCADE,
436
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
437
+ FOREIGN KEY (opened_by_user_id) REFERENCES auth_users(id)
438
+ );
439
+
440
+ CREATE INDEX IF NOT EXISTS idx_plugin_runtime_sessions_plugin_id
441
+ ON plugin_runtime_sessions(plugin_id, created_at DESC);
442
+ CREATE INDEX IF NOT EXISTS idx_plugin_runtime_sessions_workspace_id
443
+ ON plugin_runtime_sessions(workspace_id, created_at DESC);
444
+ CREATE INDEX IF NOT EXISTS idx_plugin_runtime_sessions_status
445
+ ON plugin_runtime_sessions(status, updated_at DESC);
446
+ `);
447
+ }
448
+ function ensurePluginPermissionGrantSchema(db) {
449
+ db.exec(`
450
+ CREATE TABLE IF NOT EXISTS plugin_permission_grants (
451
+ id TEXT PRIMARY KEY,
452
+ plugin_id TEXT NOT NULL,
453
+ workspace_id TEXT NOT NULL,
454
+ permission_key TEXT NOT NULL CHECK (
455
+ permission_key IN (
456
+ 'workspace.read_file',
457
+ 'workspace.list_dir',
458
+ 'workspace.write_file',
459
+ 'desktop.open_file',
460
+ 'desktop.reveal_in_file_manager'
461
+ )
462
+ ),
463
+ scope_type TEXT NOT NULL CHECK (scope_type IN ('workspace', 'directory', 'file')),
464
+ scope_path TEXT,
465
+ grant_mode TEXT NOT NULL CHECK (grant_mode IN ('once', 'session', 'persistent')),
466
+ granted_by_user_id TEXT NOT NULL,
467
+ runtime_session_id TEXT,
468
+ created_at TEXT NOT NULL,
469
+ expires_at TEXT,
470
+ revoked_at TEXT,
471
+ FOREIGN KEY (plugin_id) REFERENCES plugin_definitions(id) ON DELETE CASCADE,
472
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
473
+ FOREIGN KEY (granted_by_user_id) REFERENCES auth_users(id),
474
+ FOREIGN KEY (runtime_session_id) REFERENCES plugin_runtime_sessions(id)
475
+ );
476
+
477
+ CREATE INDEX IF NOT EXISTS idx_plugin_permission_grants_plugin_workspace
478
+ ON plugin_permission_grants(plugin_id, workspace_id, permission_key, created_at DESC);
479
+ CREATE INDEX IF NOT EXISTS idx_plugin_permission_grants_runtime_session
480
+ ON plugin_permission_grants(runtime_session_id, created_at DESC);
481
+ CREATE INDEX IF NOT EXISTS idx_plugin_permission_grants_active
482
+ ON plugin_permission_grants(plugin_id, workspace_id, revoked_at, expires_at);
483
+ `);
484
+ }
485
+ function ensurePluginRunSchema(db) {
486
+ db.exec(`
487
+ CREATE TABLE IF NOT EXISTS plugin_runs (
488
+ id TEXT PRIMARY KEY,
489
+ plugin_id TEXT NOT NULL,
490
+ workspace_id TEXT NOT NULL,
491
+ runtime_session_id TEXT,
492
+ trigger_kind TEXT NOT NULL CHECK (trigger_kind IN ('frontend', 'cli', 'schedule', 'assistant')),
493
+ action_id TEXT,
494
+ status TEXT NOT NULL CHECK (status IN ('queued', 'running', 'succeeded', 'failed', 'rejected', 'cancelled')),
495
+ input_summary_json TEXT,
496
+ output_summary_json TEXT,
497
+ error_code TEXT,
498
+ error_message TEXT,
499
+ started_at TEXT,
500
+ finished_at TEXT,
501
+ created_at TEXT NOT NULL,
502
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
503
+ FOREIGN KEY (runtime_session_id) REFERENCES plugin_runtime_sessions(id)
504
+ );
505
+
506
+ CREATE INDEX IF NOT EXISTS idx_plugin_runs_plugin_id
507
+ ON plugin_runs(plugin_id, created_at DESC);
508
+ `);
509
+ const columns = db
510
+ .prepare("PRAGMA table_info(plugin_runs)")
511
+ .all();
512
+ if (!columns.some((column) => column.name === "runtime_session_id")) {
513
+ db.exec("ALTER TABLE plugin_runs ADD COLUMN runtime_session_id TEXT");
514
+ }
515
+ }
247
516
  function ensureAuthLoginAttemptSchema(db) {
248
517
  const columns = db
249
518
  .prepare("PRAGMA table_info(auth_login_attempts)")
@@ -386,10 +655,13 @@ function ensureButlerProfileSchema(db) {
386
655
  const columns = db
387
656
  .prepare("PRAGMA table_info(butler_profiles)")
388
657
  .all();
389
- if (columns.some((column) => column.name === "display_name")) {
390
- return;
658
+ const columnNames = new Set(columns.map((column) => column.name));
659
+ if (!columnNames.has("display_name")) {
660
+ db.exec("ALTER TABLE butler_profiles ADD COLUMN display_name TEXT NOT NULL DEFAULT '代码助手'");
661
+ }
662
+ if (!columnNames.has("setup_completed")) {
663
+ db.exec("ALTER TABLE butler_profiles ADD COLUMN setup_completed INTEGER NOT NULL DEFAULT 0 CHECK (setup_completed IN (0, 1))");
391
664
  }
392
- db.exec("ALTER TABLE butler_profiles ADD COLUMN display_name TEXT NOT NULL DEFAULT '代码助手'");
393
665
  }
394
666
  function ensureUserPreferenceProfileSchema(db) {
395
667
  const columns = db
@@ -406,6 +678,191 @@ function ensureUserPreferenceProfileSchema(db) {
406
678
  db.exec(`ALTER TABLE user_preference_profiles
407
679
  ADD COLUMN debug_port_pools_json TEXT NOT NULL DEFAULT '{"start":43000,"end":47999}'`);
408
680
  }
681
+ if (!columnNames.has("affairs_dashboard_states_json")) {
682
+ db.exec(`ALTER TABLE user_preference_profiles
683
+ ADD COLUMN affairs_dashboard_states_json TEXT NOT NULL DEFAULT '{}'`);
684
+ }
685
+ migrateLegacyAffairsShortcutAppsColumn(db, columnNames);
686
+ }
687
+ function migrateLegacyAffairsShortcutAppsColumn(db, columnNames) {
688
+ if (!tableExists(db, "user_preference_profiles")) {
689
+ return;
690
+ }
691
+ const resolvedColumnNames = columnNames
692
+ ?? new Set(db.prepare("PRAGMA table_info(user_preference_profiles)").all()
693
+ .map((column) => column.name));
694
+ if (!resolvedColumnNames.has("affairs_shortcut_apps_json")) {
695
+ return;
696
+ }
697
+ const rows = db
698
+ .prepare(`SELECT
699
+ user_id,
700
+ language,
701
+ theme,
702
+ auto_theme,
703
+ default_permission_mode,
704
+ providers_json,
705
+ debug_port_pools_json,
706
+ affairs_dashboard_states_json,
707
+ affairs_shortcut_apps_json,
708
+ created_at,
709
+ updated_at
710
+ FROM user_preference_profiles`)
711
+ .all();
712
+ const migratedRows = rows.map((row) => ({
713
+ ...row,
714
+ affairs_dashboard_states_json: JSON.stringify(mergeLegacyShortcutAppsIntoDashboardStates(parseJsonObjectRecord(row.affairs_dashboard_states_json), parseJsonObjectRecord(row.affairs_shortcut_apps_json)))
715
+ }));
716
+ db.exec("BEGIN IMMEDIATE");
717
+ try {
718
+ db.exec(`
719
+ ALTER TABLE user_preference_profiles RENAME TO user_preference_profiles_legacy;
720
+
721
+ CREATE TABLE user_preference_profiles (
722
+ user_id TEXT PRIMARY KEY,
723
+ language TEXT NOT NULL CHECK (language IN ('zh-CN', 'en-US')),
724
+ theme TEXT NOT NULL CHECK (theme IN ('light', 'dark', 'sky-blue', 'eye-green')),
725
+ auto_theme INTEGER NOT NULL DEFAULT 0 CHECK (auto_theme IN (0, 1)),
726
+ default_permission_mode TEXT NOT NULL CHECK (
727
+ default_permission_mode IN ('default', 'acceptEdits', 'bypassPermissions')
728
+ ),
729
+ providers_json TEXT NOT NULL,
730
+ debug_port_pools_json TEXT NOT NULL,
731
+ affairs_dashboard_states_json TEXT NOT NULL DEFAULT '{}',
732
+ created_at TEXT NOT NULL,
733
+ updated_at TEXT NOT NULL,
734
+ FOREIGN KEY (user_id) REFERENCES auth_users(id)
735
+ )
736
+ `);
737
+ const insertStatement = db.prepare(`
738
+ INSERT INTO user_preference_profiles (
739
+ user_id,
740
+ language,
741
+ theme,
742
+ auto_theme,
743
+ default_permission_mode,
744
+ providers_json,
745
+ debug_port_pools_json,
746
+ affairs_dashboard_states_json,
747
+ created_at,
748
+ updated_at
749
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
750
+ `);
751
+ for (const row of migratedRows) {
752
+ insertStatement.run(row.user_id, row.language, row.theme, row.auto_theme, row.default_permission_mode, row.providers_json, row.debug_port_pools_json, row.affairs_dashboard_states_json, row.created_at, row.updated_at);
753
+ }
754
+ db.exec("DROP TABLE user_preference_profiles_legacy");
755
+ db.exec("COMMIT");
756
+ }
757
+ catch (error) {
758
+ db.exec("ROLLBACK");
759
+ throw error;
760
+ }
761
+ }
762
+ function parseJsonObjectRecord(value) {
763
+ try {
764
+ const parsed = JSON.parse(value);
765
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
766
+ return {};
767
+ }
768
+ return { ...parsed };
769
+ }
770
+ catch {
771
+ return {};
772
+ }
773
+ }
774
+ function mergeLegacyShortcutAppsIntoDashboardStates(dashboardStatesByWorkspace, legacyShortcutAppsByWorkspace) {
775
+ const result = {
776
+ ...dashboardStatesByWorkspace
777
+ };
778
+ for (const [workspaceId, shortcutApps] of Object.entries(legacyShortcutAppsByWorkspace)) {
779
+ const normalizedWorkspaceId = workspaceId.trim();
780
+ if (!normalizedWorkspaceId || Object.prototype.hasOwnProperty.call(result, normalizedWorkspaceId)) {
781
+ continue;
782
+ }
783
+ if (!Array.isArray(shortcutApps)) {
784
+ continue;
785
+ }
786
+ result[normalizedWorkspaceId] = {
787
+ workspaceId: normalizedWorkspaceId,
788
+ shortcutApps
789
+ };
790
+ }
791
+ return result;
792
+ }
793
+ function ensureUserAffairsLibrarySettingsSchema(db) {
794
+ if (!tableExists(db, "user_affairs_library_settings")) {
795
+ db.exec(`
796
+ CREATE TABLE user_affairs_library_settings (
797
+ user_id TEXT PRIMARY KEY,
798
+ root_dir TEXT,
799
+ enabled INTEGER NOT NULL DEFAULT 0 CHECK (enabled IN (0, 1)),
800
+ favorites_json TEXT,
801
+ last_workspace_id TEXT,
802
+ created_at TEXT NOT NULL,
803
+ updated_at TEXT NOT NULL,
804
+ FOREIGN KEY (user_id) REFERENCES auth_users(id)
805
+ )
806
+ `);
807
+ return;
808
+ }
809
+ const columns = db
810
+ .prepare("PRAGMA table_info(user_affairs_library_settings)")
811
+ .all();
812
+ const columnNames = new Set(columns.map((column) => column.name));
813
+ if (!columnNames.has("favorites_json")) {
814
+ db.exec("ALTER TABLE user_affairs_library_settings ADD COLUMN favorites_json TEXT");
815
+ }
816
+ if (!columnNames.has("last_workspace_id")) {
817
+ db.exec("ALTER TABLE user_affairs_library_settings ADD COLUMN last_workspace_id TEXT");
818
+ }
819
+ migrateLegacyAffairsLibrarySettings(db);
820
+ }
821
+ function migrateLegacyAffairsLibrarySettings(db) {
822
+ if (!tableExists(db, "workspace_navigation_states") || !tableExists(db, "user_affairs_library_settings")) {
823
+ return;
824
+ }
825
+ db.exec(`
826
+ INSERT INTO user_affairs_library_settings (
827
+ user_id,
828
+ root_dir,
829
+ enabled,
830
+ favorites_json,
831
+ last_workspace_id,
832
+ created_at,
833
+ updated_at
834
+ )
835
+ SELECT
836
+ legacy.user_id,
837
+ legacy.affairs_library_root_path,
838
+ legacy.affairs_library_enabled,
839
+ legacy.affairs_library_favorites_json,
840
+ legacy.workspace_id,
841
+ legacy.updated_at,
842
+ legacy.updated_at
843
+ FROM (
844
+ SELECT
845
+ workspace_id,
846
+ user_id,
847
+ affairs_library_root_path,
848
+ affairs_library_enabled,
849
+ affairs_library_favorites_json,
850
+ updated_at,
851
+ ROW_NUMBER() OVER (
852
+ PARTITION BY user_id
853
+ ORDER BY datetime(updated_at) DESC
854
+ ) AS row_number
855
+ FROM workspace_navigation_states
856
+ WHERE affairs_library_root_path IS NOT NULL
857
+ AND TRIM(affairs_library_root_path) <> ''
858
+ ) AS legacy
859
+ WHERE legacy.row_number = 1
860
+ AND NOT EXISTS (
861
+ SELECT 1
862
+ FROM user_affairs_library_settings AS current
863
+ WHERE current.user_id = legacy.user_id
864
+ )
865
+ `);
409
866
  }
410
867
  function ensureManagedSkillScopeSchema(db) {
411
868
  if (!tableExists(db, "managed_skills")) {
@@ -663,125 +1120,6 @@ function ensureAssistantAutomationSchema(db) {
663
1120
  ON assistant_automation_runs(automation_id, created_at DESC);
664
1121
  `);
665
1122
  }
666
- function ensureAssistantSandboxSchema(db) {
667
- const columns = db
668
- .prepare("PRAGMA table_info(assistant_sandboxes)")
669
- .all();
670
- if (columns.length > 0) {
671
- const columnNames = new Set(columns.map((column) => column.name));
672
- const tableSql = db
673
- .prepare("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = 'assistant_sandboxes'")
674
- .get()?.sql ?? "";
675
- const needsStatusConstraintRebuild = !tableSql.includes("'orphaned'");
676
- if (needsStatusConstraintRebuild) {
677
- const hasControlSessionId = columnNames.has("control_session_id");
678
- const rebuild = db.transaction(() => {
679
- db.exec("ALTER TABLE assistant_sandboxes RENAME TO assistant_sandboxes_legacy");
680
- db.exec(`
681
- CREATE TABLE assistant_sandboxes (
682
- id TEXT PRIMARY KEY,
683
- user_id TEXT NOT NULL,
684
- workspace_id TEXT NOT NULL UNIQUE,
685
- control_session_id TEXT,
686
- title TEXT NOT NULL,
687
- description TEXT,
688
- source_kind TEXT NOT NULL CHECK (source_kind IN ('blank', 'clone')),
689
- source_ref TEXT,
690
- visibility TEXT NOT NULL CHECK (visibility IN ('assistant_only', 'pinned')),
691
- status TEXT NOT NULL CHECK (status IN ('active', 'archived', 'expired', 'orphaned', 'deleted')),
692
- purpose TEXT,
693
- expires_at TEXT,
694
- promoted_at TEXT,
695
- created_at TEXT NOT NULL,
696
- updated_at TEXT NOT NULL,
697
- FOREIGN KEY (user_id) REFERENCES auth_users(id) ON DELETE CASCADE,
698
- FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE,
699
- FOREIGN KEY (control_session_id) REFERENCES butler_control_sessions(id) ON DELETE SET NULL
700
- );
701
- `);
702
- db.exec(`
703
- INSERT INTO assistant_sandboxes (
704
- id,
705
- user_id,
706
- workspace_id,
707
- control_session_id,
708
- title,
709
- description,
710
- source_kind,
711
- source_ref,
712
- visibility,
713
- status,
714
- purpose,
715
- expires_at,
716
- promoted_at,
717
- created_at,
718
- updated_at
719
- )
720
- SELECT
721
- id,
722
- user_id,
723
- workspace_id,
724
- ${hasControlSessionId ? "control_session_id" : "NULL"},
725
- title,
726
- description,
727
- source_kind,
728
- source_ref,
729
- visibility,
730
- status,
731
- purpose,
732
- expires_at,
733
- promoted_at,
734
- created_at,
735
- updated_at
736
- FROM assistant_sandboxes_legacy;
737
- `);
738
- db.exec("DROP TABLE assistant_sandboxes_legacy");
739
- });
740
- rebuild();
741
- }
742
- else if (!columnNames.has("control_session_id")) {
743
- db.exec("ALTER TABLE assistant_sandboxes ADD COLUMN control_session_id TEXT");
744
- }
745
- db.exec(`
746
- CREATE INDEX IF NOT EXISTS idx_assistant_sandboxes_user_status
747
- ON assistant_sandboxes(user_id, status, updated_at DESC);
748
- CREATE INDEX IF NOT EXISTS idx_assistant_sandboxes_workspace
749
- ON assistant_sandboxes(workspace_id, status, updated_at DESC);
750
- CREATE INDEX IF NOT EXISTS idx_assistant_sandboxes_control_session
751
- ON assistant_sandboxes(control_session_id, status, updated_at DESC);
752
- `);
753
- return;
754
- }
755
- db.exec(`
756
- CREATE TABLE IF NOT EXISTS assistant_sandboxes (
757
- id TEXT PRIMARY KEY,
758
- user_id TEXT NOT NULL,
759
- workspace_id TEXT NOT NULL UNIQUE,
760
- control_session_id TEXT,
761
- title TEXT NOT NULL,
762
- description TEXT,
763
- source_kind TEXT NOT NULL CHECK (source_kind IN ('blank', 'clone')),
764
- source_ref TEXT,
765
- visibility TEXT NOT NULL CHECK (visibility IN ('assistant_only', 'pinned')),
766
- status TEXT NOT NULL CHECK (status IN ('active', 'archived', 'expired', 'orphaned', 'deleted')),
767
- purpose TEXT,
768
- expires_at TEXT,
769
- promoted_at TEXT,
770
- created_at TEXT NOT NULL,
771
- updated_at TEXT NOT NULL,
772
- FOREIGN KEY (user_id) REFERENCES auth_users(id) ON DELETE CASCADE,
773
- FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE,
774
- FOREIGN KEY (control_session_id) REFERENCES butler_control_sessions(id) ON DELETE SET NULL
775
- );
776
-
777
- CREATE INDEX IF NOT EXISTS idx_assistant_sandboxes_user_status
778
- ON assistant_sandboxes(user_id, status, updated_at DESC);
779
- CREATE INDEX IF NOT EXISTS idx_assistant_sandboxes_workspace
780
- ON assistant_sandboxes(workspace_id, status, updated_at DESC);
781
- CREATE INDEX IF NOT EXISTS idx_assistant_sandboxes_control_session
782
- ON assistant_sandboxes(control_session_id, status, updated_at DESC);
783
- `);
784
- }
785
1123
  function ensureVerificationRunSchema(db) {
786
1124
  const verificationRunSql = readTableSql(db, "verification_runs");
787
1125
  if (!verificationRunSql.includes("status IN ('queued', 'running', 'passed', 'failed', 'skipped')")) {
@@ -872,6 +1210,21 @@ function ensureDocumentTemplateSchema(db) {
872
1210
  db.exec("ALTER TABLE document_templates ADD COLUMN template_source_path TEXT");
873
1211
  }
874
1212
  }
1213
+ function ensureOnlyOfficeSettingsSchema(db) {
1214
+ if (!tableExists(db, "office_onlyoffice_settings")) {
1215
+ return;
1216
+ }
1217
+ const columns = db
1218
+ .prepare("PRAGMA table_info(office_onlyoffice_settings)")
1219
+ .all();
1220
+ const columnNames = new Set(columns.map((column) => column.name));
1221
+ if (!columnNames.has("user_display_name")) {
1222
+ db.exec("ALTER TABLE office_onlyoffice_settings ADD COLUMN user_display_name TEXT");
1223
+ }
1224
+ if (!columnNames.has("user_avatar_url")) {
1225
+ db.exec("ALTER TABLE office_onlyoffice_settings ADD COLUMN user_avatar_url TEXT");
1226
+ }
1227
+ }
875
1228
  function ensureOpsTargetWorkspaceSchema(db) {
876
1229
  if (!tableExists(db, "ops_targets")) {
877
1230
  return;
@@ -1277,6 +1630,9 @@ function ensureSessionRelationColumns(db) {
1277
1630
  .prepare("PRAGMA table_info(session_indices)")
1278
1631
  .all();
1279
1632
  const columnNames = new Set(columns.map((column) => column.name));
1633
+ if (!columnNames.has("session_visibility")) {
1634
+ db.exec("ALTER TABLE session_indices ADD COLUMN session_visibility TEXT NOT NULL DEFAULT 'workspace' CHECK (session_visibility IN ('workspace', 'affairs_lightweight'))");
1635
+ }
1280
1636
  if (!columnNames.has("parent_session_id")) {
1281
1637
  db.exec("ALTER TABLE session_indices ADD COLUMN parent_session_id TEXT");
1282
1638
  }