@jingyi0605/codingns 0.8.5 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/codingns.mjs +7 -156
- package/dist/public/assets/AdaptiveButlerPage-B17QiMyT.js +2 -0
- package/dist/public/assets/{App-BOHBGFOd.js → App-CFBwDUNA.js} +6 -6
- package/dist/public/assets/{BootstrapPage-BxHQT4nA.js → BootstrapPage-W5wU3BPh.js} +1 -1
- package/dist/public/assets/{ConversationPage-DWFsF6BB.js → ConversationPage-DQLX1bUh.js} +6 -6
- package/dist/public/assets/{DesktopDetachPreviewPage-DOgEjYEf.js → DesktopDetachPreviewPage-DTPeuAW-.js} +1 -1
- package/dist/public/assets/DesktopModal-6ii53_Y9.js +1 -0
- package/dist/public/assets/DesktopWindowPage-D0blSuKd.js +2 -0
- package/dist/public/assets/FileContextPanel-BrKO8Xt6.js +1 -0
- package/dist/public/assets/GitSidebar-BdwiDtOr.js +6 -0
- package/dist/public/assets/MobileCreateSessionSheet-Cx_dBiBb.js +1 -0
- package/dist/public/assets/MobileSheet-opTWyRe1.js +1 -0
- package/dist/public/assets/{MobileTopHeaderFrame-lcp2GscV.js → MobileTopHeaderFrame-BbNON3Y4.js} +1 -1
- package/dist/public/assets/MobileWorkspaceSwitcherHeader-BZEzPeMj.js +1 -0
- package/dist/public/assets/{PluginAccessOverview-DGcKAMQl.js → PluginAccessOverview-mQDmAljp.js} +1 -1
- package/dist/public/assets/PluginContainerPage-CcxUJpM4.js +1 -0
- package/dist/public/assets/{PluginDetailPage-CAJ7LFpD.js → PluginDetailPage-D5--ACIt.js} +1 -1
- package/dist/public/assets/{PluginsListPage-BxZG1NyT.js → PluginsListPage-D_oJxYXT.js} +1 -1
- package/dist/public/assets/{RelayConnectEntryPage-CfNO_TIl.js → RelayConnectEntryPage-DROxpnkv.js} +1 -1
- package/dist/public/assets/{ServerSettingsModal-by36Z_5k.js → ServerSettingsModal-CUUOPqSe.js} +1 -1
- package/dist/public/assets/SessionIndexPage-C2Jxh6Gp.js +1 -0
- package/dist/public/assets/SettingsPage-BlAZCHsy.js +2 -0
- package/dist/public/assets/{TerminalManagerPanel-NVZRxxmH.js → TerminalManagerPanel-CjzbiWjl.js} +1 -1
- package/dist/public/assets/{TerminalPage-C4LNoPBp.js → TerminalPage-CwWyFDj8.js} +2 -2
- package/dist/public/assets/TerminalRuntimeFallbackModal-CSVVbO8r.js +1 -0
- package/dist/public/assets/{ToolFilesPage-47zbdgTW.js → ToolFilesPage-QBEY8oCf.js} +1 -1
- package/dist/public/assets/{ToolGitPage-Fuk_b_jg.js → ToolGitPage-BKoZ2l9v.js} +1 -1
- package/dist/public/assets/{ToolProcessesPage-sWSMWD-9.js → ToolProcessesPage-BOH0ib4G.js} +1 -1
- package/dist/public/assets/{ToolsHomePage-R1mZlbZi.js → ToolsHomePage-BcMZ3BCQ.js} +1 -1
- package/dist/public/assets/{WorkbenchLandingPage-CqmiFH2u.js → WorkbenchLandingPage-B5zoppEl.js} +1 -1
- package/dist/public/assets/WorkbenchLayout-BksVkkFF.css +1 -0
- package/dist/public/assets/WorkbenchLayout-CikJBS62.js +1019 -0
- package/dist/public/assets/{WorkbenchModal-C7qoQElW.js → WorkbenchModal-NGmPgqaE.js} +1 -1
- package/dist/public/assets/WorkbenchShellRoute-BbbSOiZw.js +1 -0
- package/dist/public/assets/WorkbenchShellRoute-DT3VMjWD.css +1 -0
- package/dist/public/assets/WorkspaceDebugDetailPage-CVivdPx5.js +1 -0
- package/dist/public/assets/{WorkspaceDetailPage-BPsrFffw.js → WorkspaceDetailPage-DgOSjscR.js} +1 -1
- package/dist/public/assets/{WorkspaceHomePage-KAtqZOAb.js → WorkspaceHomePage-HPa7M_Vh.js} +1 -1
- package/dist/public/assets/{client-runtime-manager-wmCJZKYd.js → client-runtime-manager-DXbI9K1K.js} +1 -1
- package/dist/public/assets/index-BxJPQpFM.css +1 -0
- package/dist/public/assets/index-CeXGOT_T.js +50 -0
- package/dist/public/assets/{login-direct-candidate-resolver-BOAgTuUf.js → login-direct-candidate-resolver-DkKyFtQJ.js} +1 -1
- package/dist/public/assets/{plugin-permission-copy-Cq99cnzV.js → plugin-permission-copy-CzN269Bk.js} +1 -1
- package/dist/public/assets/{plugins-api-BQTV5DOp.js → plugins-api-Bv9DHpLF.js} +1 -1
- package/dist/public/assets/{preferences-service-DJxbEEeg.js → preferences-service-D2ISL2Zz.js} +1 -1
- package/dist/public/assets/{relay-entry-D-LfvdiX.js → relay-entry-Bg0OisQy.js} +1 -1
- package/dist/public/assets/{terminal-runtime-meta-BJmy8dyK.js → terminal-runtime-meta-C8t-CIDF.js} +1 -1
- package/dist/public/assets/{useRegisteredDebugTemplates-DQAWVdCo.js → useRegisteredDebugTemplates-Bol3NVfN.js} +1 -1
- package/dist/public/assets/{workbench-navigation-MEzCSmsK.js → workbench-navigation-B7IjRQd8.js} +1 -1
- package/dist/public/index.html +2 -2
- package/dist/server/middlewares/auth-guard.js +10 -5
- package/dist/server/middlewares/auth-guard.js.map +1 -1
- package/dist/server/modules/affairs-indexer/contracts/src/errors/app-error.d.ts +11 -0
- package/dist/server/modules/affairs-indexer/contracts/src/errors/app-error.js +22 -0
- package/dist/server/modules/affairs-indexer/contracts/src/errors/app-error.js.map +1 -0
- package/dist/server/modules/affairs-indexer/contracts/src/errors/error-codes.d.ts +23 -0
- package/dist/server/modules/affairs-indexer/contracts/src/errors/error-codes.js +23 -0
- package/dist/server/modules/affairs-indexer/contracts/src/errors/error-codes.js.map +1 -0
- package/dist/server/modules/affairs-indexer/contracts/src/index.d.ts +4 -0
- package/dist/server/modules/affairs-indexer/contracts/src/index.js +5 -0
- package/dist/server/modules/affairs-indexer/contracts/src/index.js.map +1 -0
- package/dist/server/modules/affairs-indexer/contracts/src/types/cli-command-context.d.ts +7 -0
- package/dist/server/modules/affairs-indexer/contracts/src/types/cli-command-context.js +2 -0
- package/dist/server/modules/affairs-indexer/contracts/src/types/cli-command-context.js.map +1 -0
- package/dist/server/modules/affairs-indexer/contracts/src/types/runtime-config.d.ts +16 -0
- package/dist/server/modules/affairs-indexer/contracts/src/types/runtime-config.js +2 -0
- package/dist/server/modules/affairs-indexer/contracts/src/types/runtime-config.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/config/load-runtime-config.d.ts +10 -0
- package/dist/server/modules/affairs-indexer/core/src/config/load-runtime-config.js +215 -0
- package/dist/server/modules/affairs-indexer/core/src/config/load-runtime-config.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/index.d.ts +31 -0
- package/dist/server/modules/affairs-indexer/core/src/index.js +32 -0
- package/dist/server/modules/affairs-indexer/core/src/index.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/logging/structured-logger.d.ts +20 -0
- package/dist/server/modules/affairs-indexer/core/src/logging/structured-logger.js +47 -0
- package/dist/server/modules/affairs-indexer/core/src/logging/structured-logger.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/base-complex-parser-adapter.d.ts +17 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/base-complex-parser-adapter.js +63 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/base-complex-parser-adapter.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/complex-document-skip-adapter.d.ts +12 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/complex-document-skip-adapter.js +42 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/complex-document-skip-adapter.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/csv-parser-adapter.d.ts +7 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/csv-parser-adapter.js +107 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/csv-parser-adapter.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/document-parser.d.ts +19 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/document-parser.js +37 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/document-parser.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/docx-parser-adapter.d.ts +7 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/docx-parser-adapter.js +123 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/docx-parser-adapter.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/openxml-utils.d.ts +8 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/openxml-utils.js +111 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/openxml-utils.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/parser-adapter.d.ts +42 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/parser-adapter.js +2 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/parser-adapter.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/parser-capability-registry.d.ts +18 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/parser-capability-registry.js +91 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/parser-capability-registry.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/parser-router.d.ts +18 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/parser-router.js +59 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/parser-router.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/parser-skip-repository.d.ts +48 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/parser-skip-repository.js +193 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/parser-skip-repository.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/pdf-parser-adapter.d.ts +7 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/pdf-parser-adapter.js +371 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/pdf-parser-adapter.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser-adapter.d.ts +10 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser-adapter.js +55 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser-adapter.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser.d.ts +9 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser.js +2 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/plain-text-parser.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/pptx-parser-adapter.d.ts +7 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/pptx-parser-adapter.js +130 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/pptx-parser-adapter.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/xlsx-parser-adapter.d.ts +7 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/xlsx-parser-adapter.js +228 -0
- package/dist/server/modules/affairs-indexer/core/src/parser/xlsx-parser-adapter.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.d.ts +205 -0
- package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.js +1471 -0
- package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-repository.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-write-repository.d.ts +161 -0
- package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-write-repository.js +1350 -0
- package/dist/server/modules/affairs-indexer/core/src/repositories/catalog-write-repository.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/scanner/file-scanner.d.ts +32 -0
- package/dist/server/modules/affairs-indexer/core/src/scanner/file-scanner.js +208 -0
- package/dist/server/modules/affairs-indexer/core/src/scanner/file-scanner.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.d.ts +30 -0
- package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.js +66 -0
- package/dist/server/modules/affairs-indexer/core/src/services/dirty/dirty-scope-resolver.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.d.ts +33 -0
- package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.js +705 -0
- package/dist/server/modules/affairs-indexer/core/src/services/export/export-builder.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/services/indexer/allowed-extensions-diff-service.d.ts +80 -0
- package/dist/server/modules/affairs-indexer/core/src/services/indexer/allowed-extensions-diff-service.js +193 -0
- package/dist/server/modules/affairs-indexer/core/src/services/indexer/allowed-extensions-diff-service.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/services/indexer/text-indexer.d.ts +77 -0
- package/dist/server/modules/affairs-indexer/core/src/services/indexer/text-indexer.js +467 -0
- package/dist/server/modules/affairs-indexer/core/src/services/indexer/text-indexer.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/services/mcp/mcp-stdio-server.d.ts +17 -0
- package/dist/server/modules/affairs-indexer/core/src/services/mcp/mcp-stdio-server.js +264 -0
- package/dist/server/modules/affairs-indexer/core/src/services/mcp/mcp-stdio-server.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/services/search/offline-search-service.d.ts +11 -0
- package/dist/server/modules/affairs-indexer/core/src/services/search/offline-search-service.js +76 -0
- package/dist/server/modules/affairs-indexer/core/src/services/search/offline-search-service.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.d.ts +26 -0
- package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.js +305 -0
- package/dist/server/modules/affairs-indexer/core/src/services/search/search-index-builder.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/services/tagging/tag-recompute-service.d.ts +53 -0
- package/dist/server/modules/affairs-indexer/core/src/services/tagging/tag-recompute-service.js +566 -0
- package/dist/server/modules/affairs-indexer/core/src/services/tagging/tag-recompute-service.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/services/watch/watch-service.d.ts +47 -0
- package/dist/server/modules/affairs-indexer/core/src/services/watch/watch-service.js +227 -0
- package/dist/server/modules/affairs-indexer/core/src/services/watch/watch-service.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/sqlite/catalog-schema.d.ts +5 -0
- package/dist/server/modules/affairs-indexer/core/src/sqlite/catalog-schema.js +245 -0
- package/dist/server/modules/affairs-indexer/core/src/sqlite/catalog-schema.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/sqlite/detect-catalog-schema.d.ts +14 -0
- package/dist/server/modules/affairs-indexer/core/src/sqlite/detect-catalog-schema.js +87 -0
- package/dist/server/modules/affairs-indexer/core/src/sqlite/detect-catalog-schema.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/sqlite/init-catalog.d.ts +13 -0
- package/dist/server/modules/affairs-indexer/core/src/sqlite/init-catalog.js +16 -0
- package/dist/server/modules/affairs-indexer/core/src/sqlite/init-catalog.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/sqlite/migration-runner.d.ts +22 -0
- package/dist/server/modules/affairs-indexer/core/src/sqlite/migration-runner.js +430 -0
- package/dist/server/modules/affairs-indexer/core/src/sqlite/migration-runner.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/sqlite/open-database.d.ts +9 -0
- package/dist/server/modules/affairs-indexer/core/src/sqlite/open-database.js +19 -0
- package/dist/server/modules/affairs-indexer/core/src/sqlite/open-database.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/tagging/simple-tag-inference.d.ts +21 -0
- package/dist/server/modules/affairs-indexer/core/src/tagging/simple-tag-inference.js +94 -0
- package/dist/server/modules/affairs-indexer/core/src/tagging/simple-tag-inference.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/utils/abort.d.ts +2 -0
- package/dist/server/modules/affairs-indexer/core/src/utils/abort.js +13 -0
- package/dist/server/modules/affairs-indexer/core/src/utils/abort.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/utils/file-streaming.d.ts +9 -0
- package/dist/server/modules/affairs-indexer/core/src/utils/file-streaming.js +64 -0
- package/dist/server/modules/affairs-indexer/core/src/utils/file-streaming.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/utils/root-command-lock.d.ts +10 -0
- package/dist/server/modules/affairs-indexer/core/src/utils/root-command-lock.js +230 -0
- package/dist/server/modules/affairs-indexer/core/src/utils/root-command-lock.js.map +1 -0
- package/dist/server/modules/affairs-indexer/core/src/utils/rss-log.d.ts +2 -0
- package/dist/server/modules/affairs-indexer/core/src/utils/rss-log.js +19 -0
- package/dist/server/modules/affairs-indexer/core/src/utils/rss-log.js.map +1 -0
- package/dist/server/modules/affairs-indexer/internal-command-runner.d.ts +31 -0
- package/dist/server/modules/affairs-indexer/internal-command-runner.js +643 -0
- package/dist/server/modules/affairs-indexer/internal-command-runner.js.map +1 -0
- package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +0 -49
- package/dist/server/modules/assistant-capability/assistant-capability-controller.js +10 -56
- package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
- package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +2 -46
- package/dist/server/modules/assistant-capability/assistant-capability-service.js +15 -158
- package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
- package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.d.ts +4 -2
- package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.js +62 -21
- package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.js.map +1 -1
- package/dist/server/modules/butler/butler-control-session-service.d.ts +3 -4
- package/dist/server/modules/butler/butler-control-session-service.js +39 -62
- package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
- package/dist/server/modules/butler/butler-controller.d.ts +11 -3
- package/dist/server/modules/butler/butler-controller.js +19 -4
- package/dist/server/modules/butler/butler-controller.js.map +1 -1
- package/dist/server/modules/butler/butler-follow-up-service.js.map +1 -1
- package/dist/server/modules/butler/butler-profile-service.d.ts +1 -1
- package/dist/server/modules/butler/butler-profile-service.js +34 -63
- package/dist/server/modules/butler/butler-profile-service.js.map +1 -1
- package/dist/server/modules/butler/butler-project-service.d.ts +1 -3
- package/dist/server/modules/butler/butler-project-service.js +1 -7
- package/dist/server/modules/butler/butler-project-service.js.map +1 -1
- package/dist/server/modules/butler/butler-session-service.d.ts +1 -0
- package/dist/server/modules/butler/butler-session-service.js +109 -0
- package/dist/server/modules/butler/butler-session-service.js.map +1 -1
- package/dist/server/modules/butler/butler-session-summary-service.js +0 -2
- package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
- package/dist/server/modules/butler/butler-workspace-context.d.ts +5 -1
- package/dist/server/modules/butler/butler-workspace-context.js +21 -12
- package/dist/server/modules/butler/butler-workspace-context.js.map +1 -1
- package/dist/server/modules/file/file-content-service.d.ts +11 -0
- package/dist/server/modules/file/file-content-service.js +55 -0
- package/dist/server/modules/file/file-content-service.js.map +1 -1
- package/dist/server/modules/file/file-controller.d.ts +26 -1
- package/dist/server/modules/file/file-controller.js +59 -4
- package/dist/server/modules/file/file-controller.js.map +1 -1
- package/dist/server/modules/file/file-preview-link-service.d.ts +1 -0
- package/dist/server/modules/file/file-preview-link-service.js +25 -0
- package/dist/server/modules/file/file-preview-link-service.js.map +1 -1
- package/dist/server/modules/file/file-preview-service.js +15 -4
- package/dist/server/modules/file/file-preview-service.js.map +1 -1
- package/dist/server/modules/file/file-preview-types.d.ts +9 -1
- package/dist/server/modules/file/file-preview-types.js +8 -1
- package/dist/server/modules/file/file-preview-types.js.map +1 -1
- package/dist/server/modules/file/recent-modified-file-service.d.ts +15 -0
- package/dist/server/modules/file/recent-modified-file-service.js +102 -0
- package/dist/server/modules/file/recent-modified-file-service.js.map +1 -0
- package/dist/server/modules/file/runtime/codingns-workspace-bridge.js +6 -0
- package/dist/server/modules/file/workspace-file-bridge-service.d.ts +11 -0
- package/dist/server/modules/file/workspace-file-bridge-service.js +19 -0
- package/dist/server/modules/file/workspace-file-bridge-service.js.map +1 -1
- package/dist/server/modules/file/workspace-index-apply-service.d.ts +25 -0
- package/dist/server/modules/file/workspace-index-apply-service.js +42 -0
- package/dist/server/modules/file/workspace-index-apply-service.js.map +1 -0
- package/dist/server/modules/office/office-controller.d.ts +15 -1
- package/dist/server/modules/office/office-controller.js +26 -1
- package/dist/server/modules/office/office-controller.js.map +1 -1
- package/dist/server/modules/office/onlyoffice-integration-service.d.ts +78 -0
- package/dist/server/modules/office/onlyoffice-integration-service.js +610 -0
- package/dist/server/modules/office/onlyoffice-integration-service.js.map +1 -0
- package/dist/server/modules/plugins/plugin-file-gateway-service.d.ts +12 -0
- package/dist/server/modules/plugins/plugin-file-gateway-service.js +13 -0
- package/dist/server/modules/plugins/plugin-file-gateway-service.js.map +1 -1
- package/dist/server/modules/preferences/profile-service.d.ts +1 -0
- package/dist/server/modules/preferences/profile-service.js +27 -3
- package/dist/server/modules/preferences/profile-service.js.map +1 -1
- package/dist/server/modules/sessions/codex-app-server-helper-process.js +0 -8
- package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
- package/dist/server/modules/sessions/session-controller.d.ts +1 -0
- package/dist/server/modules/sessions/session-controller.js +3 -0
- package/dist/server/modules/sessions/session-controller.js.map +1 -1
- package/dist/server/modules/sessions/session-history-service.d.ts +2 -0
- package/dist/server/modules/sessions/session-history-service.js +78 -3
- package/dist/server/modules/sessions/session-history-service.js.map +1 -1
- package/dist/server/modules/sessions/session-live-runtime-service.d.ts +1 -0
- package/dist/server/modules/sessions/session-live-runtime-service.js +4 -0
- package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
- package/dist/server/modules/sessions/session-permission-request-service.js +0 -4
- package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
- package/dist/server/modules/sessions/workspace-session-instruction-watch-service.d.ts +23 -0
- package/dist/server/modules/sessions/workspace-session-instruction-watch-service.js +122 -0
- package/dist/server/modules/sessions/workspace-session-instruction-watch-service.js.map +1 -0
- package/dist/server/modules/sessions/workspace-session-runtime-context-service.d.ts +15 -0
- package/dist/server/modules/sessions/workspace-session-runtime-context-service.js +93 -10
- package/dist/server/modules/sessions/workspace-session-runtime-context-service.js.map +1 -1
- package/dist/server/modules/skills/builtin-skills/codingns-assistant/SKILL.md +6 -7
- package/dist/server/modules/skills/builtin-skills/codingns-assistant/references/cli-workflow.md +2 -3
- package/dist/server/modules/system/host-resource-controller.d.ts +7 -0
- package/dist/server/modules/system/host-resource-controller.js +12 -0
- package/dist/server/modules/system/host-resource-controller.js.map +1 -0
- package/dist/server/modules/system/host-resource-service.d.ts +54 -0
- package/dist/server/modules/system/host-resource-service.js +162 -0
- package/dist/server/modules/system/host-resource-service.js.map +1 -0
- package/dist/server/modules/tasks/observability-service.d.ts +12 -2
- package/dist/server/modules/tasks/observability-service.js +13 -1
- package/dist/server/modules/tasks/observability-service.js.map +1 -1
- package/dist/server/modules/tasks/task-helper-client.d.ts +36 -2
- package/dist/server/modules/tasks/task-helper-client.js +201 -19
- package/dist/server/modules/tasks/task-helper-client.js.map +1 -1
- package/dist/server/modules/tasks/task-helper-pool.d.ts +37 -0
- package/dist/server/modules/tasks/task-helper-pool.js +173 -0
- package/dist/server/modules/tasks/task-helper-pool.js.map +1 -0
- package/dist/server/modules/tasks/task-helper-process-handlers.d.ts +27 -0
- package/dist/server/modules/tasks/task-helper-process-handlers.js +25 -1
- package/dist/server/modules/tasks/task-helper-process-handlers.js.map +1 -1
- package/dist/server/modules/tasks/task-helper-process.js +75 -26
- package/dist/server/modules/tasks/task-helper-process.js.map +1 -1
- package/dist/server/modules/tasks/task-helper-scheduling.d.ts +11 -0
- package/dist/server/modules/tasks/task-helper-scheduling.js +43 -0
- package/dist/server/modules/tasks/task-helper-scheduling.js.map +1 -0
- package/dist/server/modules/tasks/task-lane-executors.js +19 -3
- package/dist/server/modules/tasks/task-lane-executors.js.map +1 -1
- package/dist/server/modules/tasks/task-manager.d.ts +1 -0
- package/dist/server/modules/tasks/task-manager.js +3 -0
- package/dist/server/modules/tasks/task-manager.js.map +1 -1
- package/dist/server/modules/tasks/task-registry.d.ts +1 -0
- package/dist/server/modules/tasks/task-registry.js +3 -0
- package/dist/server/modules/tasks/task-registry.js.map +1 -1
- package/dist/server/modules/tasks/task-scheduler.d.ts +6 -0
- package/dist/server/modules/tasks/task-scheduler.js +162 -7
- package/dist/server/modules/tasks/task-scheduler.js.map +1 -1
- package/dist/server/modules/tasks/task-types.d.ts +28 -3
- package/dist/server/modules/tasks/task-types.js +14 -2
- package/dist/server/modules/tasks/task-types.js.map +1 -1
- package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.d.ts +68 -0
- package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.js +286 -0
- package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.js.map +1 -0
- package/dist/server/modules/workbench/workbench-controller.js +11 -1
- package/dist/server/modules/workbench/workbench-controller.js.map +1 -1
- package/dist/server/modules/workbench/workbench-service.d.ts +9 -2
- package/dist/server/modules/workbench/workbench-service.js +58 -18
- package/dist/server/modules/workbench/workbench-service.js.map +1 -1
- package/dist/server/modules/workspace/affairs-library-controller.d.ts +117 -0
- package/dist/server/modules/workspace/affairs-library-controller.js +164 -0
- package/dist/server/modules/workspace/affairs-library-controller.js.map +1 -0
- package/dist/server/modules/workspace/affairs-library-debug-log.d.ts +23 -0
- package/dist/server/modules/workspace/affairs-library-debug-log.js +107 -0
- package/dist/server/modules/workspace/affairs-library-debug-log.js.map +1 -0
- package/dist/server/modules/workspace/affairs-library-dirty-watch-service.d.ts +52 -0
- package/dist/server/modules/workspace/affairs-library-dirty-watch-service.js +555 -0
- package/dist/server/modules/workspace/affairs-library-dirty-watch-service.js.map +1 -0
- package/dist/server/modules/workspace/affairs-library-preview-link-service.d.ts +24 -0
- package/dist/server/modules/workspace/affairs-library-preview-link-service.js +157 -0
- package/dist/server/modules/workspace/affairs-library-preview-link-service.js.map +1 -0
- package/dist/server/modules/workspace/affairs-library-refresh-contract.d.ts +56 -0
- package/dist/server/modules/workspace/affairs-library-refresh-contract.js +48 -0
- package/dist/server/modules/workspace/affairs-library-refresh-contract.js.map +1 -0
- package/dist/server/modules/workspace/affairs-library-service.d.ts +344 -0
- package/dist/server/modules/workspace/affairs-library-service.js +3755 -0
- package/dist/server/modules/workspace/affairs-library-service.js.map +1 -0
- package/dist/server/modules/workspace/affairs-lightweight-session-controller.d.ts +78 -0
- package/dist/server/modules/workspace/affairs-lightweight-session-controller.js +146 -0
- package/dist/server/modules/workspace/affairs-lightweight-session-controller.js.map +1 -0
- package/dist/server/modules/workspace/affairs-lightweight-session-service.d.ts +133 -0
- package/dist/server/modules/workspace/affairs-lightweight-session-service.js +1447 -0
- package/dist/server/modules/workspace/affairs-lightweight-session-service.js.map +1 -0
- package/dist/server/modules/workspace/affairs-tag-controller.d.ts +107 -0
- package/dist/server/modules/workspace/affairs-tag-controller.js +97 -0
- package/dist/server/modules/workspace/affairs-tag-controller.js.map +1 -0
- package/dist/server/modules/workspace/affairs-tag-service.d.ts +153 -0
- package/dist/server/modules/workspace/affairs-tag-service.js +680 -0
- package/dist/server/modules/workspace/affairs-tag-service.js.map +1 -0
- package/dist/server/modules/workspace/workspace-controller.d.ts +2 -1
- package/dist/server/modules/workspace/workspace-controller.js +8 -2
- package/dist/server/modules/workspace/workspace-controller.js.map +1 -1
- package/dist/server/modules/workspace/workspace-service.js +60 -9
- package/dist/server/modules/workspace/workspace-service.js.map +1 -1
- package/dist/server/routes/affairs.d.ts +3 -0
- package/dist/server/routes/affairs.js +7 -0
- package/dist/server/routes/affairs.js.map +1 -0
- package/dist/server/routes/assistant.js +0 -5
- package/dist/server/routes/assistant.js.map +1 -1
- package/dist/server/routes/files.js +5 -0
- package/dist/server/routes/files.js.map +1 -1
- package/dist/server/routes/office.js +4 -0
- package/dist/server/routes/office.js.map +1 -1
- package/dist/server/routes/system.d.ts +2 -1
- package/dist/server/routes/system.js +2 -1
- package/dist/server/routes/system.js.map +1 -1
- package/dist/server/routes/workspaces.d.ts +4 -1
- package/dist/server/routes/workspaces.js +46 -1
- package/dist/server/routes/workspaces.js.map +1 -1
- package/dist/server/server/create-server.d.ts +6 -2
- package/dist/server/server/create-server.js +113 -32
- package/dist/server/server/create-server.js.map +1 -1
- package/dist/server/shared/http/error-handler.js +10 -0
- package/dist/server/shared/http/error-handler.js.map +1 -1
- package/dist/server/storage/repositories/affairs-assistant-session-snapshot-repository.d.ts +10 -0
- package/dist/server/storage/repositories/affairs-assistant-session-snapshot-repository.js +47 -0
- package/dist/server/storage/repositories/affairs-assistant-session-snapshot-repository.js.map +1 -0
- package/dist/server/storage/repositories/butler-profile-repository.js +7 -3
- package/dist/server/storage/repositories/butler-profile-repository.js.map +1 -1
- package/dist/server/storage/repositories/office-onlyoffice-setting-repository.d.ts +19 -0
- package/dist/server/storage/repositories/office-onlyoffice-setting-repository.js +55 -0
- package/dist/server/storage/repositories/office-onlyoffice-setting-repository.js.map +1 -0
- package/dist/server/storage/repositories/session-index-repository.js +9 -2
- package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
- package/dist/server/storage/repositories/user-affairs-library-setting-repository.d.ts +10 -0
- package/dist/server/storage/repositories/user-affairs-library-setting-repository.js +69 -0
- package/dist/server/storage/repositories/user-affairs-library-setting-repository.js.map +1 -0
- package/dist/server/storage/repositories/user-preference-profile-repository.js +6 -3
- package/dist/server/storage/repositories/user-preference-profile-repository.js.map +1 -1
- package/dist/server/storage/repositories/workspace-navigation-state-repository.d.ts +3 -0
- package/dist/server/storage/repositories/workspace-navigation-state-repository.js +47 -4
- package/dist/server/storage/repositories/workspace-navigation-state-repository.js.map +1 -1
- package/dist/server/storage/sqlite/client.js +230 -123
- package/dist/server/storage/sqlite/client.js.map +1 -1
- package/dist/server/storage/sqlite/schema.sql +48 -25
- package/dist/server/types/domain.d.ts +27 -20
- package/dist/server/ws/workbench-ws-hub.js +2 -2
- package/dist/server/ws/workbench-ws-hub.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js +0 -2
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +0 -6
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
- package/package.json +1 -1
- package/dist/public/assets/AdaptiveButlerPage-B153lk5H.css +0 -1
- package/dist/public/assets/AdaptiveButlerPage-CJw8Ae62.js +0 -3
- package/dist/public/assets/DesktopModal-D_A8sgQU.js +0 -1
- package/dist/public/assets/DesktopWindowPage-DK7L7osV.js +0 -2
- package/dist/public/assets/FileContextPanel-BdCoubcJ.js +0 -1
- package/dist/public/assets/GitSidebar-BeZ0hj7A.js +0 -6
- package/dist/public/assets/MobileCreateSessionSheet-DfLMVu8q.js +0 -1
- package/dist/public/assets/MobileSheet-5kZ-w-gU.js +0 -1
- package/dist/public/assets/MobileWorkspaceSwitcherHeader-C6JMiOq_.js +0 -1
- package/dist/public/assets/PluginContainerPage-BlY-xJDh.js +0 -1
- package/dist/public/assets/SessionIndexPage-DkBp9Mqz.js +0 -1
- package/dist/public/assets/SettingsPage-C-ASmJAG.js +0 -2
- package/dist/public/assets/TerminalRuntimeFallbackModal-Bzum5nZ0.js +0 -1
- package/dist/public/assets/WorkbenchLayout-OFi6CWgH.js +0 -244
- package/dist/public/assets/WorkbenchShellRoute-B4XB8SwG.css +0 -1
- package/dist/public/assets/WorkbenchShellRoute-BAQe_E0O.js +0 -1
- package/dist/public/assets/WorkspaceDebugDetailPage-DhKa6e9y.js +0 -1
- package/dist/public/assets/file-tree-icon-Mg1DiBRX.js +0 -590
- package/dist/public/assets/index-C4t-vvqk.css +0 -1
- package/dist/public/assets/index-CL97fwWB.js +0 -42
- package/dist/public/assets/realtime-client-CLafKzzJ.js +0 -1
- package/dist/server/modules/butler/assistant-sandbox-cleanup-scheduler.d.ts +0 -32
- package/dist/server/modules/butler/assistant-sandbox-cleanup-scheduler.js +0 -93
- package/dist/server/modules/butler/assistant-sandbox-cleanup-scheduler.js.map +0 -1
- package/dist/server/modules/butler/assistant-sandbox-service.d.ts +0 -69
- package/dist/server/modules/butler/assistant-sandbox-service.js +0 -399
- package/dist/server/modules/butler/assistant-sandbox-service.js.map +0 -1
- package/dist/server/modules/channels/wechat-claw-client.d.ts +0 -51
- package/dist/server/modules/channels/wechat-claw-client.js +0 -245
- package/dist/server/modules/channels/wechat-claw-client.js.map +0 -1
- package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.d.ts +0 -18
- package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.js +0 -191
- package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.js.map +0 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export class UserAffairsLibrarySettingRepository {
|
|
2
|
+
db;
|
|
3
|
+
constructor(db) {
|
|
4
|
+
this.db = db;
|
|
5
|
+
}
|
|
6
|
+
findByUserId(userId) {
|
|
7
|
+
const row = this.db
|
|
8
|
+
.prepare(`SELECT user_id, root_dir, enabled, favorites_json, last_workspace_id, created_at, updated_at
|
|
9
|
+
FROM user_affairs_library_settings
|
|
10
|
+
WHERE user_id = ?`)
|
|
11
|
+
.get(userId);
|
|
12
|
+
return row ? mapUserAffairsLibrarySettingRow(row) : null;
|
|
13
|
+
}
|
|
14
|
+
findEnabledByWorkspaceId(workspaceId) {
|
|
15
|
+
const row = this.db
|
|
16
|
+
.prepare(`SELECT user_id, root_dir, enabled, favorites_json, last_workspace_id, created_at, updated_at
|
|
17
|
+
FROM user_affairs_library_settings
|
|
18
|
+
WHERE last_workspace_id = ?
|
|
19
|
+
AND enabled = 1
|
|
20
|
+
AND root_dir IS NOT NULL
|
|
21
|
+
AND TRIM(root_dir) <> ''
|
|
22
|
+
ORDER BY datetime(updated_at) DESC
|
|
23
|
+
LIMIT 1`)
|
|
24
|
+
.get(workspaceId);
|
|
25
|
+
return row ? mapUserAffairsLibrarySettingRow(row) : null;
|
|
26
|
+
}
|
|
27
|
+
listEnabled() {
|
|
28
|
+
return this.db
|
|
29
|
+
.prepare(`SELECT user_id, root_dir, enabled, favorites_json, last_workspace_id, created_at, updated_at
|
|
30
|
+
FROM user_affairs_library_settings
|
|
31
|
+
WHERE enabled = 1
|
|
32
|
+
AND root_dir IS NOT NULL
|
|
33
|
+
AND TRIM(root_dir) <> ''`)
|
|
34
|
+
.all()
|
|
35
|
+
.map((row) => mapUserAffairsLibrarySettingRow(row));
|
|
36
|
+
}
|
|
37
|
+
upsert(record) {
|
|
38
|
+
this.db
|
|
39
|
+
.prepare(`INSERT INTO user_affairs_library_settings (
|
|
40
|
+
user_id,
|
|
41
|
+
root_dir,
|
|
42
|
+
enabled,
|
|
43
|
+
favorites_json,
|
|
44
|
+
last_workspace_id,
|
|
45
|
+
created_at,
|
|
46
|
+
updated_at
|
|
47
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
48
|
+
ON CONFLICT(user_id) DO UPDATE SET
|
|
49
|
+
root_dir = excluded.root_dir,
|
|
50
|
+
enabled = excluded.enabled,
|
|
51
|
+
favorites_json = excluded.favorites_json,
|
|
52
|
+
last_workspace_id = excluded.last_workspace_id,
|
|
53
|
+
updated_at = excluded.updated_at`)
|
|
54
|
+
.run(record.userId, record.rootDir, record.enabled ? 1 : 0, record.favoritesJson, record.lastWorkspaceId, record.createdAt, record.updatedAt);
|
|
55
|
+
return record;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function mapUserAffairsLibrarySettingRow(row) {
|
|
59
|
+
return {
|
|
60
|
+
userId: row.user_id,
|
|
61
|
+
rootDir: row.root_dir,
|
|
62
|
+
enabled: row.enabled === 1,
|
|
63
|
+
favoritesJson: row.favorites_json,
|
|
64
|
+
lastWorkspaceId: row.last_workspace_id,
|
|
65
|
+
createdAt: row.created_at,
|
|
66
|
+
updatedAt: row.updated_at
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=user-affairs-library-setting-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-affairs-library-setting-repository.js","sourceRoot":"","sources":["../../../../src/storage/repositories/user-affairs-library-setting-repository.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,mCAAmC;IACjB;IAA7B,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAEtD,YAAY,CAAC,MAAc;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;2BAEmB,CACpB;aACA,GAAG,CAAC,MAAM,CAA6C,CAAC;QAE3D,OAAO,GAAG,CAAC,CAAC,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,CAAC;IAED,wBAAwB,CAAC,WAAmB;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;;;;;iBAOS,CACV;aACA,GAAG,CAAC,WAAW,CAA6C,CAAC;QAEhE,OAAO,GAAG,CAAC,CAAC,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;;;oCAI4B,CAC7B;aACA,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,+BAA+B,CAAC,GAAmC,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,CAAC,MAAuC;QAC5C,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;;;;;;;;;;2CAcmC,CACpC;aACA,GAAG,CACF,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACtB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,CACjB,CAAC;QAEJ,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAYD,SAAS,+BAA+B,CAAC,GAAiC;IACxE,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,CAAC;QAC1B,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,eAAe,EAAE,GAAG,CAAC,iBAAiB;QACtC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -5,7 +5,7 @@ export class UserPreferenceProfileRepository {
|
|
|
5
5
|
}
|
|
6
6
|
findByUserId(userId) {
|
|
7
7
|
const row = this.db
|
|
8
|
-
.prepare(`SELECT language, theme, auto_theme, default_permission_mode, providers_json, debug_port_pools_json, created_at, updated_at
|
|
8
|
+
.prepare(`SELECT language, theme, auto_theme, default_permission_mode, providers_json, debug_port_pools_json, affairs_dashboard_states_json, created_at, updated_at
|
|
9
9
|
FROM user_preference_profiles
|
|
10
10
|
WHERE user_id = ?`)
|
|
11
11
|
.get(userId);
|
|
@@ -20,6 +20,7 @@ export class UserPreferenceProfileRepository {
|
|
|
20
20
|
defaultPermissionMode: row.default_permission_mode,
|
|
21
21
|
providers: JSON.parse(row.providers_json),
|
|
22
22
|
debugPortPools: JSON.parse(row.debug_port_pools_json),
|
|
23
|
+
affairsDashboardStatesByWorkspace: JSON.parse(row.affairs_dashboard_states_json),
|
|
23
24
|
createdAt: row.created_at,
|
|
24
25
|
updatedAt: row.updated_at
|
|
25
26
|
};
|
|
@@ -34,9 +35,10 @@ export class UserPreferenceProfileRepository {
|
|
|
34
35
|
default_permission_mode,
|
|
35
36
|
providers_json,
|
|
36
37
|
debug_port_pools_json,
|
|
38
|
+
affairs_dashboard_states_json,
|
|
37
39
|
created_at,
|
|
38
40
|
updated_at
|
|
39
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
41
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
40
42
|
ON CONFLICT(user_id) DO UPDATE SET
|
|
41
43
|
language = excluded.language,
|
|
42
44
|
theme = excluded.theme,
|
|
@@ -44,8 +46,9 @@ export class UserPreferenceProfileRepository {
|
|
|
44
46
|
default_permission_mode = excluded.default_permission_mode,
|
|
45
47
|
providers_json = excluded.providers_json,
|
|
46
48
|
debug_port_pools_json = excluded.debug_port_pools_json,
|
|
49
|
+
affairs_dashboard_states_json = excluded.affairs_dashboard_states_json,
|
|
47
50
|
updated_at = excluded.updated_at`)
|
|
48
|
-
.run(record.userId, record.language, record.theme, record.autoTheme ? 1 : 0, record.defaultPermissionMode, JSON.stringify(record.providers), JSON.stringify(record.debugPortPools), record.createdAt, record.updatedAt);
|
|
51
|
+
.run(record.userId, record.language, record.theme, record.autoTheme ? 1 : 0, record.defaultPermissionMode, JSON.stringify(record.providers), JSON.stringify(record.debugPortPools), JSON.stringify(record.affairsDashboardStatesByWorkspace), record.createdAt, record.updatedAt);
|
|
49
52
|
return record;
|
|
50
53
|
}
|
|
51
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-preference-profile-repository.js","sourceRoot":"","sources":["../../../../src/storage/repositories/user-preference-profile-repository.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,+BAA+B;IACb;IAA7B,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAEtD,YAAY,CAAC,MAAc;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;2BAEmB,CACpB;aACA,GAAG,CAAC,MAAM,CAAyC,CAAC;QAEvD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,GAAG,CAAC,QAAmD;YACjE,KAAK,EAAE,GAAG,CAAC,KAA6C;YACxD,SAAS,EAAE,GAAG,CAAC,UAAU,KAAK,CAAC;YAC/B,qBAAqB,EAAE,GAAG,CAAC,uBAA+E;YAC1G,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAA6C;YACrF,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAkD;YACtG,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,SAAS,EAAE,GAAG,CAAC,UAAU;SAC1B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,MAAmC;QACxC,IAAI,CAAC,EAAE;aACJ,OAAO,CACN
|
|
1
|
+
{"version":3,"file":"user-preference-profile-repository.js","sourceRoot":"","sources":["../../../../src/storage/repositories/user-preference-profile-repository.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,+BAA+B;IACb;IAA7B,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAEtD,YAAY,CAAC,MAAc;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;2BAEmB,CACpB;aACA,GAAG,CAAC,MAAM,CAAyC,CAAC;QAEvD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,GAAG,CAAC,QAAmD;YACjE,KAAK,EAAE,GAAG,CAAC,KAA6C;YACxD,SAAS,EAAE,GAAG,CAAC,UAAU,KAAK,CAAC;YAC/B,qBAAqB,EAAE,GAAG,CAAC,uBAA+E;YAC1G,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAA6C;YACrF,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAkD;YACtG,iCAAiC,EAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAqE;YACnH,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,SAAS,EAAE,GAAG,CAAC,UAAU;SAC1B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,MAAmC;QACxC,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;;;;;;;;;;;;;;;;2CAoBmC,CACpC;aACA,GAAG,CACF,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxB,MAAM,CAAC,qBAAqB,EAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,EAChC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,EACrC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iCAAiC,CAAC,EACxD,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,CACjB,CAAC;QAEJ,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -3,6 +3,9 @@ import type { WorkspaceNavigationStateRecord } from "../../types/domain.js";
|
|
|
3
3
|
export declare class WorkspaceNavigationStateRepository {
|
|
4
4
|
private readonly db;
|
|
5
5
|
constructor(db: Database.Database);
|
|
6
|
+
listEnabledAffairsLibraries(): WorkspaceNavigationStateRecord[];
|
|
7
|
+
findAnyEnabledAffairsLibraryByWorkspaceId(workspaceId: string): WorkspaceNavigationStateRecord | null;
|
|
8
|
+
findLatestAffairsLibraryByWorkspaceId(workspaceId: string): WorkspaceNavigationStateRecord | null;
|
|
6
9
|
listByUserId(userId: string): WorkspaceNavigationStateRecord[];
|
|
7
10
|
findByWorkspaceIdAndUserId(workspaceId: string, userId: string): WorkspaceNavigationStateRecord | null;
|
|
8
11
|
upsert(record: WorkspaceNavigationStateRecord): WorkspaceNavigationStateRecord;
|
|
@@ -3,9 +3,43 @@ export class WorkspaceNavigationStateRepository {
|
|
|
3
3
|
constructor(db) {
|
|
4
4
|
this.db = db;
|
|
5
5
|
}
|
|
6
|
+
listEnabledAffairsLibraries() {
|
|
7
|
+
return this.db
|
|
8
|
+
.prepare(`SELECT workspace_id, user_id, collapsed, background_color, affairs_library_root_path, affairs_library_enabled, affairs_library_favorites_json, updated_at
|
|
9
|
+
FROM workspace_navigation_states
|
|
10
|
+
WHERE affairs_library_enabled = 1
|
|
11
|
+
AND affairs_library_root_path IS NOT NULL
|
|
12
|
+
AND TRIM(affairs_library_root_path) <> ''`)
|
|
13
|
+
.all()
|
|
14
|
+
.map((row) => mapWorkspaceNavigationStateRow(row));
|
|
15
|
+
}
|
|
16
|
+
findAnyEnabledAffairsLibraryByWorkspaceId(workspaceId) {
|
|
17
|
+
const row = this.db
|
|
18
|
+
.prepare(`SELECT workspace_id, user_id, collapsed, background_color, affairs_library_root_path, affairs_library_enabled, affairs_library_favorites_json, updated_at
|
|
19
|
+
FROM workspace_navigation_states
|
|
20
|
+
WHERE workspace_id = ?
|
|
21
|
+
AND affairs_library_enabled = 1
|
|
22
|
+
AND affairs_library_root_path IS NOT NULL
|
|
23
|
+
AND TRIM(affairs_library_root_path) <> ''
|
|
24
|
+
LIMIT 1`)
|
|
25
|
+
.get(workspaceId);
|
|
26
|
+
return row ? mapWorkspaceNavigationStateRow(row) : null;
|
|
27
|
+
}
|
|
28
|
+
findLatestAffairsLibraryByWorkspaceId(workspaceId) {
|
|
29
|
+
const row = this.db
|
|
30
|
+
.prepare(`SELECT workspace_id, user_id, collapsed, background_color, affairs_library_root_path, affairs_library_enabled, affairs_library_favorites_json, updated_at
|
|
31
|
+
FROM workspace_navigation_states
|
|
32
|
+
WHERE workspace_id = ?
|
|
33
|
+
AND affairs_library_root_path IS NOT NULL
|
|
34
|
+
AND TRIM(affairs_library_root_path) <> ''
|
|
35
|
+
ORDER BY datetime(updated_at) DESC
|
|
36
|
+
LIMIT 1`)
|
|
37
|
+
.get(workspaceId);
|
|
38
|
+
return row ? mapWorkspaceNavigationStateRow(row) : null;
|
|
39
|
+
}
|
|
6
40
|
listByUserId(userId) {
|
|
7
41
|
return this.db
|
|
8
|
-
.prepare(`SELECT workspace_id, user_id, collapsed, background_color, updated_at
|
|
42
|
+
.prepare(`SELECT workspace_id, user_id, collapsed, background_color, affairs_library_root_path, affairs_library_enabled, affairs_library_favorites_json, updated_at
|
|
9
43
|
FROM workspace_navigation_states
|
|
10
44
|
WHERE user_id = ?`)
|
|
11
45
|
.all(userId)
|
|
@@ -13,7 +47,7 @@ export class WorkspaceNavigationStateRepository {
|
|
|
13
47
|
}
|
|
14
48
|
findByWorkspaceIdAndUserId(workspaceId, userId) {
|
|
15
49
|
const row = this.db
|
|
16
|
-
.prepare(`SELECT workspace_id, user_id, collapsed, background_color, updated_at
|
|
50
|
+
.prepare(`SELECT workspace_id, user_id, collapsed, background_color, affairs_library_root_path, affairs_library_enabled, affairs_library_favorites_json, updated_at
|
|
17
51
|
FROM workspace_navigation_states
|
|
18
52
|
WHERE workspace_id = ?
|
|
19
53
|
AND user_id = ?`)
|
|
@@ -27,13 +61,19 @@ export class WorkspaceNavigationStateRepository {
|
|
|
27
61
|
user_id,
|
|
28
62
|
collapsed,
|
|
29
63
|
background_color,
|
|
64
|
+
affairs_library_root_path,
|
|
65
|
+
affairs_library_enabled,
|
|
66
|
+
affairs_library_favorites_json,
|
|
30
67
|
updated_at
|
|
31
|
-
) VALUES (?, ?, ?, ?, ?)
|
|
68
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
32
69
|
ON CONFLICT(workspace_id, user_id) DO UPDATE SET
|
|
33
70
|
collapsed = excluded.collapsed,
|
|
34
71
|
background_color = excluded.background_color,
|
|
72
|
+
affairs_library_root_path = excluded.affairs_library_root_path,
|
|
73
|
+
affairs_library_enabled = excluded.affairs_library_enabled,
|
|
74
|
+
affairs_library_favorites_json = excluded.affairs_library_favorites_json,
|
|
35
75
|
updated_at = excluded.updated_at`)
|
|
36
|
-
.run(record.workspaceId, record.userId, record.collapsed ? 1 : 0, record.backgroundColor, record.updatedAt);
|
|
76
|
+
.run(record.workspaceId, record.userId, record.collapsed ? 1 : 0, record.backgroundColor, record.affairsLibraryRootPath ?? null, record.affairsLibraryEnabled ? 1 : 0, record.affairsLibraryFavoritesJson ?? null, record.updatedAt);
|
|
37
77
|
return record;
|
|
38
78
|
}
|
|
39
79
|
}
|
|
@@ -43,6 +83,9 @@ function mapWorkspaceNavigationStateRow(row) {
|
|
|
43
83
|
userId: row.user_id,
|
|
44
84
|
collapsed: row.collapsed === 1,
|
|
45
85
|
backgroundColor: row.background_color,
|
|
86
|
+
affairsLibraryRootPath: row.affairs_library_root_path,
|
|
87
|
+
affairsLibraryEnabled: row.affairs_library_enabled === 1,
|
|
88
|
+
affairsLibraryFavoritesJson: row.affairs_library_favorites_json,
|
|
46
89
|
updatedAt: row.updated_at
|
|
47
90
|
};
|
|
48
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-navigation-state-repository.js","sourceRoot":"","sources":["../../../../src/storage/repositories/workspace-navigation-state-repository.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,kCAAkC;IAChB;IAA7B,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAEtD,YAAY,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;2BAEmB,CACpB;aACA,GAAG,CAAC,MAAM,CAAC;aACX,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,8BAA8B,CAAC,GAAkC,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,0BAA0B,CAAC,WAAmB,EAAE,MAAc;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;2BAGmB,CACpB;aACA,GAAG,CAAC,WAAW,EAAE,MAAM,CAA4C,CAAC;QAEvE,OAAO,GAAG,CAAC,CAAC,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,MAAsC;QAC3C,IAAI,CAAC,EAAE;aACJ,OAAO,CACN
|
|
1
|
+
{"version":3,"file":"workspace-navigation-state-repository.js","sourceRoot":"","sources":["../../../../src/storage/repositories/workspace-navigation-state-repository.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,kCAAkC;IAChB;IAA7B,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAEtD,2BAA2B;QACzB,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;;;qDAI6C,CAC9C;aACA,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,8BAA8B,CAAC,GAAkC,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,yCAAyC,CAAC,WAAmB;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;;;;iBAMS,CACV;aACA,GAAG,CAAC,WAAW,CAA4C,CAAC;QAE/D,OAAO,GAAG,CAAC,CAAC,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,qCAAqC,CAAC,WAAmB;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;;;;iBAMS,CACV;aACA,GAAG,CAAC,WAAW,CAA4C,CAAC;QAE/D,OAAO,GAAG,CAAC,CAAC,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;2BAEmB,CACpB;aACA,GAAG,CAAC,MAAM,CAAC;aACX,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,8BAA8B,CAAC,GAAkC,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,0BAA0B,CAAC,WAAmB,EAAE,MAAc;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;2BAGmB,CACpB;aACA,GAAG,CAAC,WAAW,EAAE,MAAM,CAA4C,CAAC;QAEvE,OAAO,GAAG,CAAC,CAAC,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,MAAsC;QAC3C,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;;;;;;;;;;;;4CAgBoC,CACrC;aACA,GAAG,CACF,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,sBAAsB,IAAI,IAAI,EACrC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACpC,MAAM,CAAC,2BAA2B,IAAI,IAAI,EAC1C,MAAM,CAAC,SAAS,CACjB,CAAC;QAEJ,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAaD,SAAS,8BAA8B,CAAC,GAAgC;IACtE,OAAO;QACL,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,SAAS,EAAE,GAAG,CAAC,SAAS,KAAK,CAAC;QAC9B,eAAe,EAAE,GAAG,CAAC,gBAAgB;QACrC,sBAAsB,EAAE,GAAG,CAAC,yBAAyB;QACrD,qBAAqB,EAAE,GAAG,CAAC,uBAAuB,KAAK,CAAC;QACxD,2BAA2B,EAAE,GAAG,CAAC,8BAA8B;QAC/D,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -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,11 +46,12 @@ 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
|
-
|
|
54
|
+
ensureOnlyOfficeSettingsSchema(db);
|
|
53
55
|
ensureDocumentTemplateSchema(db);
|
|
54
56
|
ensurePluginRegistrySchema(db);
|
|
55
57
|
ensurePluginRuntimeSessionSchema(db);
|
|
@@ -248,6 +250,24 @@ function ensureAuthDeviceSchema(db) {
|
|
|
248
250
|
db.exec("ALTER TABLE auth_devices ADD COLUMN user_agent TEXT");
|
|
249
251
|
}
|
|
250
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
|
+
}
|
|
251
271
|
function ensurePluginRegistrySchema(db) {
|
|
252
272
|
db.exec(`
|
|
253
273
|
CREATE TABLE IF NOT EXISTS plugin_definitions (
|
|
@@ -635,10 +655,13 @@ function ensureButlerProfileSchema(db) {
|
|
|
635
655
|
const columns = db
|
|
636
656
|
.prepare("PRAGMA table_info(butler_profiles)")
|
|
637
657
|
.all();
|
|
638
|
-
|
|
639
|
-
|
|
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))");
|
|
640
664
|
}
|
|
641
|
-
db.exec("ALTER TABLE butler_profiles ADD COLUMN display_name TEXT NOT NULL DEFAULT '代码助手'");
|
|
642
665
|
}
|
|
643
666
|
function ensureUserPreferenceProfileSchema(db) {
|
|
644
667
|
const columns = db
|
|
@@ -655,6 +678,191 @@ function ensureUserPreferenceProfileSchema(db) {
|
|
|
655
678
|
db.exec(`ALTER TABLE user_preference_profiles
|
|
656
679
|
ADD COLUMN debug_port_pools_json TEXT NOT NULL DEFAULT '{"start":43000,"end":47999}'`);
|
|
657
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
|
+
`);
|
|
658
866
|
}
|
|
659
867
|
function ensureManagedSkillScopeSchema(db) {
|
|
660
868
|
if (!tableExists(db, "managed_skills")) {
|
|
@@ -912,125 +1120,6 @@ function ensureAssistantAutomationSchema(db) {
|
|
|
912
1120
|
ON assistant_automation_runs(automation_id, created_at DESC);
|
|
913
1121
|
`);
|
|
914
1122
|
}
|
|
915
|
-
function ensureAssistantSandboxSchema(db) {
|
|
916
|
-
const columns = db
|
|
917
|
-
.prepare("PRAGMA table_info(assistant_sandboxes)")
|
|
918
|
-
.all();
|
|
919
|
-
if (columns.length > 0) {
|
|
920
|
-
const columnNames = new Set(columns.map((column) => column.name));
|
|
921
|
-
const tableSql = db
|
|
922
|
-
.prepare("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = 'assistant_sandboxes'")
|
|
923
|
-
.get()?.sql ?? "";
|
|
924
|
-
const needsStatusConstraintRebuild = !tableSql.includes("'orphaned'");
|
|
925
|
-
if (needsStatusConstraintRebuild) {
|
|
926
|
-
const hasControlSessionId = columnNames.has("control_session_id");
|
|
927
|
-
const rebuild = db.transaction(() => {
|
|
928
|
-
db.exec("ALTER TABLE assistant_sandboxes RENAME TO assistant_sandboxes_legacy");
|
|
929
|
-
db.exec(`
|
|
930
|
-
CREATE TABLE assistant_sandboxes (
|
|
931
|
-
id TEXT PRIMARY KEY,
|
|
932
|
-
user_id TEXT NOT NULL,
|
|
933
|
-
workspace_id TEXT NOT NULL UNIQUE,
|
|
934
|
-
control_session_id TEXT,
|
|
935
|
-
title TEXT NOT NULL,
|
|
936
|
-
description TEXT,
|
|
937
|
-
source_kind TEXT NOT NULL CHECK (source_kind IN ('blank', 'clone')),
|
|
938
|
-
source_ref TEXT,
|
|
939
|
-
visibility TEXT NOT NULL CHECK (visibility IN ('assistant_only', 'pinned')),
|
|
940
|
-
status TEXT NOT NULL CHECK (status IN ('active', 'archived', 'expired', 'orphaned', 'deleted')),
|
|
941
|
-
purpose TEXT,
|
|
942
|
-
expires_at TEXT,
|
|
943
|
-
promoted_at TEXT,
|
|
944
|
-
created_at TEXT NOT NULL,
|
|
945
|
-
updated_at TEXT NOT NULL,
|
|
946
|
-
FOREIGN KEY (user_id) REFERENCES auth_users(id) ON DELETE CASCADE,
|
|
947
|
-
FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE,
|
|
948
|
-
FOREIGN KEY (control_session_id) REFERENCES butler_control_sessions(id) ON DELETE SET NULL
|
|
949
|
-
);
|
|
950
|
-
`);
|
|
951
|
-
db.exec(`
|
|
952
|
-
INSERT INTO assistant_sandboxes (
|
|
953
|
-
id,
|
|
954
|
-
user_id,
|
|
955
|
-
workspace_id,
|
|
956
|
-
control_session_id,
|
|
957
|
-
title,
|
|
958
|
-
description,
|
|
959
|
-
source_kind,
|
|
960
|
-
source_ref,
|
|
961
|
-
visibility,
|
|
962
|
-
status,
|
|
963
|
-
purpose,
|
|
964
|
-
expires_at,
|
|
965
|
-
promoted_at,
|
|
966
|
-
created_at,
|
|
967
|
-
updated_at
|
|
968
|
-
)
|
|
969
|
-
SELECT
|
|
970
|
-
id,
|
|
971
|
-
user_id,
|
|
972
|
-
workspace_id,
|
|
973
|
-
${hasControlSessionId ? "control_session_id" : "NULL"},
|
|
974
|
-
title,
|
|
975
|
-
description,
|
|
976
|
-
source_kind,
|
|
977
|
-
source_ref,
|
|
978
|
-
visibility,
|
|
979
|
-
status,
|
|
980
|
-
purpose,
|
|
981
|
-
expires_at,
|
|
982
|
-
promoted_at,
|
|
983
|
-
created_at,
|
|
984
|
-
updated_at
|
|
985
|
-
FROM assistant_sandboxes_legacy;
|
|
986
|
-
`);
|
|
987
|
-
db.exec("DROP TABLE assistant_sandboxes_legacy");
|
|
988
|
-
});
|
|
989
|
-
rebuild();
|
|
990
|
-
}
|
|
991
|
-
else if (!columnNames.has("control_session_id")) {
|
|
992
|
-
db.exec("ALTER TABLE assistant_sandboxes ADD COLUMN control_session_id TEXT");
|
|
993
|
-
}
|
|
994
|
-
db.exec(`
|
|
995
|
-
CREATE INDEX IF NOT EXISTS idx_assistant_sandboxes_user_status
|
|
996
|
-
ON assistant_sandboxes(user_id, status, updated_at DESC);
|
|
997
|
-
CREATE INDEX IF NOT EXISTS idx_assistant_sandboxes_workspace
|
|
998
|
-
ON assistant_sandboxes(workspace_id, status, updated_at DESC);
|
|
999
|
-
CREATE INDEX IF NOT EXISTS idx_assistant_sandboxes_control_session
|
|
1000
|
-
ON assistant_sandboxes(control_session_id, status, updated_at DESC);
|
|
1001
|
-
`);
|
|
1002
|
-
return;
|
|
1003
|
-
}
|
|
1004
|
-
db.exec(`
|
|
1005
|
-
CREATE TABLE IF NOT EXISTS assistant_sandboxes (
|
|
1006
|
-
id TEXT PRIMARY KEY,
|
|
1007
|
-
user_id TEXT NOT NULL,
|
|
1008
|
-
workspace_id TEXT NOT NULL UNIQUE,
|
|
1009
|
-
control_session_id TEXT,
|
|
1010
|
-
title TEXT NOT NULL,
|
|
1011
|
-
description TEXT,
|
|
1012
|
-
source_kind TEXT NOT NULL CHECK (source_kind IN ('blank', 'clone')),
|
|
1013
|
-
source_ref TEXT,
|
|
1014
|
-
visibility TEXT NOT NULL CHECK (visibility IN ('assistant_only', 'pinned')),
|
|
1015
|
-
status TEXT NOT NULL CHECK (status IN ('active', 'archived', 'expired', 'orphaned', 'deleted')),
|
|
1016
|
-
purpose TEXT,
|
|
1017
|
-
expires_at TEXT,
|
|
1018
|
-
promoted_at TEXT,
|
|
1019
|
-
created_at TEXT NOT NULL,
|
|
1020
|
-
updated_at TEXT NOT NULL,
|
|
1021
|
-
FOREIGN KEY (user_id) REFERENCES auth_users(id) ON DELETE CASCADE,
|
|
1022
|
-
FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE,
|
|
1023
|
-
FOREIGN KEY (control_session_id) REFERENCES butler_control_sessions(id) ON DELETE SET NULL
|
|
1024
|
-
);
|
|
1025
|
-
|
|
1026
|
-
CREATE INDEX IF NOT EXISTS idx_assistant_sandboxes_user_status
|
|
1027
|
-
ON assistant_sandboxes(user_id, status, updated_at DESC);
|
|
1028
|
-
CREATE INDEX IF NOT EXISTS idx_assistant_sandboxes_workspace
|
|
1029
|
-
ON assistant_sandboxes(workspace_id, status, updated_at DESC);
|
|
1030
|
-
CREATE INDEX IF NOT EXISTS idx_assistant_sandboxes_control_session
|
|
1031
|
-
ON assistant_sandboxes(control_session_id, status, updated_at DESC);
|
|
1032
|
-
`);
|
|
1033
|
-
}
|
|
1034
1123
|
function ensureVerificationRunSchema(db) {
|
|
1035
1124
|
const verificationRunSql = readTableSql(db, "verification_runs");
|
|
1036
1125
|
if (!verificationRunSql.includes("status IN ('queued', 'running', 'passed', 'failed', 'skipped')")) {
|
|
@@ -1121,6 +1210,21 @@ function ensureDocumentTemplateSchema(db) {
|
|
|
1121
1210
|
db.exec("ALTER TABLE document_templates ADD COLUMN template_source_path TEXT");
|
|
1122
1211
|
}
|
|
1123
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
|
+
}
|
|
1124
1228
|
function ensureOpsTargetWorkspaceSchema(db) {
|
|
1125
1229
|
if (!tableExists(db, "ops_targets")) {
|
|
1126
1230
|
return;
|
|
@@ -1526,6 +1630,9 @@ function ensureSessionRelationColumns(db) {
|
|
|
1526
1630
|
.prepare("PRAGMA table_info(session_indices)")
|
|
1527
1631
|
.all();
|
|
1528
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
|
+
}
|
|
1529
1636
|
if (!columnNames.has("parent_session_id")) {
|
|
1530
1637
|
db.exec("ALTER TABLE session_indices ADD COLUMN parent_session_id TEXT");
|
|
1531
1638
|
}
|