@jingyi0605/codingns 0.8.5 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/codingns.mjs +7 -156
- package/dist/public/assets/AdaptiveButlerPage-kkJDsnCO.js +2 -0
- package/dist/public/assets/{App-BOHBGFOd.js → App-DrNI9lWA.js} +6 -6
- package/dist/public/assets/{BootstrapPage-BxHQT4nA.js → BootstrapPage-QgVH5Mps.js} +1 -1
- package/dist/public/assets/{ConversationPage-DWFsF6BB.js → ConversationPage-DVk8VfIj.js} +6 -6
- package/dist/public/assets/{DesktopDetachPreviewPage-DOgEjYEf.js → DesktopDetachPreviewPage-BhfP0TpH.js} +1 -1
- package/dist/public/assets/DesktopModal-DRmDrv0S.js +1 -0
- package/dist/public/assets/DesktopWindowPage-DNbJXnSs.js +2 -0
- package/dist/public/assets/FileContextPanel---fLO4ve.js +1 -0
- package/dist/public/assets/GitSidebar-sXUE0TqT.js +6 -0
- package/dist/public/assets/MobileCreateSessionSheet-BftZ5pvb.js +1 -0
- package/dist/public/assets/MobileSheet-nw5SCa3N.js +1 -0
- package/dist/public/assets/{MobileTopHeaderFrame-lcp2GscV.js → MobileTopHeaderFrame-DH_D02Wy.js} +1 -1
- package/dist/public/assets/MobileWorkspaceSwitcherHeader-2K406G5p.js +1 -0
- package/dist/public/assets/{PluginAccessOverview-DGcKAMQl.js → PluginAccessOverview-BVJihw3D.js} +1 -1
- package/dist/public/assets/PluginContainerPage-CR4vStvr.js +1 -0
- package/dist/public/assets/{PluginDetailPage-CAJ7LFpD.js → PluginDetailPage-CrMX0Mnm.js} +1 -1
- package/dist/public/assets/{PluginsListPage-BxZG1NyT.js → PluginsListPage-FtIL71Yg.js} +1 -1
- package/dist/public/assets/{RelayConnectEntryPage-CfNO_TIl.js → RelayConnectEntryPage-Bt1apX53.js} +1 -1
- package/dist/public/assets/{ServerSettingsModal-by36Z_5k.js → ServerSettingsModal-D-guzPrI.js} +1 -1
- package/dist/public/assets/SessionIndexPage-CX2FppcJ.js +1 -0
- package/dist/public/assets/SettingsPage-BI2Olcvr.js +2 -0
- package/dist/public/assets/TerminalManagerPanel-B5MKGPy-.js +1 -0
- package/dist/public/assets/{TerminalPage-C4LNoPBp.js → TerminalPage-C2dTNGHK.js} +2 -2
- package/dist/public/assets/TerminalRuntimeFallbackModal-DAqOxFD8.js +1 -0
- package/dist/public/assets/{ToolFilesPage-47zbdgTW.js → ToolFilesPage-IsNwyE6T.js} +1 -1
- package/dist/public/assets/{ToolGitPage-Fuk_b_jg.js → ToolGitPage-BK1JBERN.js} +1 -1
- package/dist/public/assets/{ToolProcessesPage-sWSMWD-9.js → ToolProcessesPage-DwTYUQCK.js} +1 -1
- package/dist/public/assets/{ToolsHomePage-R1mZlbZi.js → ToolsHomePage-BLOy7lPg.js} +1 -1
- package/dist/public/assets/{WorkbenchLandingPage-CqmiFH2u.js → WorkbenchLandingPage-CqZKR6EA.js} +1 -1
- package/dist/public/assets/WorkbenchLayout-BksVkkFF.css +1 -0
- package/dist/public/assets/WorkbenchLayout-CJHQtwuL.js +1022 -0
- package/dist/public/assets/{WorkbenchModal-C7qoQElW.js → WorkbenchModal-BM-OeW-b.js} +1 -1
- package/dist/public/assets/WorkbenchShellRoute-2bKI6Q9k.js +1 -0
- package/dist/public/assets/WorkbenchShellRoute-BjuZD101.css +1 -0
- package/dist/public/assets/WorkspaceDebugDetailPage-BMsEN5iG.js +1 -0
- package/dist/public/assets/WorkspaceDetailPage-5H9Gosx2.js +1 -0
- package/dist/public/assets/WorkspaceHomePage-DQiXKgiP.js +1 -0
- package/dist/public/assets/{client-runtime-manager-wmCJZKYd.js → client-runtime-manager-CgPJq21V.js} +1 -1
- package/dist/public/assets/index-BARqMVSw.css +1 -0
- package/dist/public/assets/index-BUoNjVrY.js +50 -0
- package/dist/public/assets/{login-direct-candidate-resolver-BOAgTuUf.js → login-direct-candidate-resolver-CGaxAXV8.js} +1 -1
- package/dist/public/assets/{plugin-permission-copy-Cq99cnzV.js → plugin-permission-copy-BR9gWy8b.js} +1 -1
- package/dist/public/assets/{plugins-api-BQTV5DOp.js → plugins-api-CdCsrG2e.js} +1 -1
- package/dist/public/assets/{preferences-service-DJxbEEeg.js → preferences-service-lOhnlxzP.js} +1 -1
- package/dist/public/assets/{relay-entry-D-LfvdiX.js → relay-entry-CQpxTS8y.js} +1 -1
- package/dist/public/assets/{terminal-runtime-meta-BJmy8dyK.js → terminal-runtime-meta-oteTx66X.js} +1 -1
- package/dist/public/assets/useRegisteredDebugTemplates-Bu2ykZ6s.js +1 -0
- package/dist/public/assets/workbench-navigation-DlgXuFW2.js +1 -0
- package/dist/public/index.html +2 -2
- package/dist/server/config/env.d.ts +1 -0
- package/dist/server/config/env.js +3 -0
- package/dist/server/config/env.js.map +1 -1
- 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 +26 -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.d.ts +3 -0
- package/dist/server/modules/butler/butler-follow-up-service.js +11 -1
- package/dist/server/modules/butler/butler-follow-up-service.js.map +1 -1
- package/dist/server/modules/butler/butler-inbox-service.d.ts +3 -0
- package/dist/server/modules/butler/butler-inbox-service.js +14 -2
- package/dist/server/modules/butler/butler-inbox-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 +4 -0
- package/dist/server/modules/butler/butler-session-service.js +127 -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 +36 -2
- package/dist/server/modules/file/file-controller.js +461 -19
- 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/file-search-service.js +200 -12
- package/dist/server/modules/file/file-search-service.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 +24 -5
- package/dist/server/modules/file/workspace-file-bridge-service.d.ts +20 -0
- package/dist/server/modules/file/workspace-file-bridge-service.js +22 -0
- package/dist/server/modules/file/workspace-file-bridge-service.js.map +1 -1
- package/dist/server/modules/file/workspace-file-bridge-watch-service.d.ts +9 -0
- package/dist/server/modules/file/workspace-file-bridge-watch-service.js +28 -0
- package/dist/server/modules/file/workspace-file-bridge-watch-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 +29 -3
- package/dist/server/modules/tasks/task-types.js +15 -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 +303 -0
- package/dist/server/modules/workbench/affairs-assistant-session-snapshot-service.js.map +1 -0
- package/dist/server/modules/workbench/workbench-controller.d.ts +5 -0
- package/dist/server/modules/workbench/workbench-controller.js +31 -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 +55 -18
- package/dist/server/modules/workbench/workbench-service.js.map +1 -1
- package/dist/server/modules/workspace/affairs-library-controller.d.ts +125 -0
- package/dist/server/modules/workspace/affairs-library-controller.js +175 -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 +30 -0
- package/dist/server/modules/workspace/affairs-library-preview-link-service.js +167 -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 +353 -0
- package/dist/server/modules/workspace/affairs-library-service.js +3895 -0
- package/dist/server/modules/workspace/affairs-library-service.js.map +1 -0
- package/dist/server/modules/workspace/affairs-lightweight-session-controller.d.ts +86 -0
- package/dist/server/modules/workspace/affairs-lightweight-session-controller.js +193 -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 +146 -0
- package/dist/server/modules/workspace/affairs-lightweight-session-service.js +1593 -0
- package/dist/server/modules/workspace/affairs-lightweight-session-service.js.map +1 -0
- package/dist/server/modules/workspace/affairs-tag-controller.d.ts +110 -0
- package/dist/server/modules/workspace/affairs-tag-controller.js +102 -0
- package/dist/server/modules/workspace/affairs-tag-controller.js.map +1 -0
- package/dist/server/modules/workspace/affairs-tag-service.d.ts +174 -0
- package/dist/server/modules/workspace/affairs-tag-service.js +719 -0
- package/dist/server/modules/workspace/affairs-tag-service.js.map +1 -0
- package/dist/server/modules/workspace/teable-api-client.d.ts +118 -0
- package/dist/server/modules/workspace/teable-api-client.js +142 -0
- package/dist/server/modules/workspace/teable-api-client.js.map +1 -0
- package/dist/server/modules/workspace/teable-catalog-controller.d.ts +18 -0
- package/dist/server/modules/workspace/teable-catalog-controller.js +17 -0
- package/dist/server/modules/workspace/teable-catalog-controller.js.map +1 -0
- package/dist/server/modules/workspace/teable-catalog-service.d.ts +36 -0
- package/dist/server/modules/workspace/teable-catalog-service.js +124 -0
- package/dist/server/modules/workspace/teable-catalog-service.js.map +1 -0
- package/dist/server/modules/workspace/teable-credential-service.d.ts +8 -0
- package/dist/server/modules/workspace/teable-credential-service.js +37 -0
- package/dist/server/modules/workspace/teable-credential-service.js.map +1 -0
- package/dist/server/modules/workspace/teable-field-mapping-controller.d.ts +25 -0
- package/dist/server/modules/workspace/teable-field-mapping-controller.js +31 -0
- package/dist/server/modules/workspace/teable-field-mapping-controller.js.map +1 -0
- package/dist/server/modules/workspace/teable-field-mapping-service.d.ts +38 -0
- package/dist/server/modules/workspace/teable-field-mapping-service.js +215 -0
- package/dist/server/modules/workspace/teable-field-mapping-service.js.map +1 -0
- package/dist/server/modules/workspace/teable-global-binding-controller.d.ts +22 -0
- package/dist/server/modules/workspace/teable-global-binding-controller.js +25 -0
- package/dist/server/modules/workspace/teable-global-binding-controller.js.map +1 -0
- package/dist/server/modules/workspace/teable-global-binding-service.d.ts +35 -0
- package/dist/server/modules/workspace/teable-global-binding-service.js +151 -0
- package/dist/server/modules/workspace/teable-global-binding-service.js.map +1 -0
- package/dist/server/modules/workspace/teable-mirror-sync-controller.d.ts +29 -0
- package/dist/server/modules/workspace/teable-mirror-sync-controller.js +50 -0
- package/dist/server/modules/workspace/teable-mirror-sync-controller.js.map +1 -0
- package/dist/server/modules/workspace/teable-mirror-sync-service.d.ts +157 -0
- package/dist/server/modules/workspace/teable-mirror-sync-service.js +917 -0
- package/dist/server/modules/workspace/teable-mirror-sync-service.js.map +1 -0
- package/dist/server/modules/workspace/teable-runtime-controller.d.ts +58 -0
- package/dist/server/modules/workspace/teable-runtime-controller.js +60 -0
- package/dist/server/modules/workspace/teable-runtime-controller.js.map +1 -0
- package/dist/server/modules/workspace/teable-runtime-service.d.ts +96 -0
- package/dist/server/modules/workspace/teable-runtime-service.js +362 -0
- package/dist/server/modules/workspace/teable-runtime-service.js.map +1 -0
- package/dist/server/modules/workspace/teable-workbench-sync-config-controller.d.ts +22 -0
- package/dist/server/modules/workspace/teable-workbench-sync-config-controller.js +20 -0
- package/dist/server/modules/workspace/teable-workbench-sync-config-controller.js.map +1 -0
- package/dist/server/modules/workspace/teable-workbench-sync-config-service.d.ts +22 -0
- package/dist/server/modules/workspace/teable-workbench-sync-config-service.js +159 -0
- package/dist/server/modules/workspace/teable-workbench-sync-config-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 +11 -0
- package/dist/server/routes/affairs.js +126 -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/workbench.js +15 -0
- package/dist/server/routes/workbench.js.map +1 -1
- package/dist/server/routes/workspaces.d.ts +4 -1
- package/dist/server/routes/workspaces.js +56 -1
- package/dist/server/routes/workspaces.js.map +1 -1
- package/dist/server/server/create-server.d.ts +20 -2
- package/dist/server/server/create-server.js +180 -33
- 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 +72 -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/user-teable-credential-repository.d.ts +9 -0
- package/dist/server/storage/repositories/user-teable-credential-repository.js +45 -0
- package/dist/server/storage/repositories/user-teable-credential-repository.js.map +1 -0
- package/dist/server/storage/repositories/user-teable-field-mapping-repository.d.ts +10 -0
- package/dist/server/storage/repositories/user-teable-field-mapping-repository.js +69 -0
- package/dist/server/storage/repositories/user-teable-field-mapping-repository.js.map +1 -0
- package/dist/server/storage/repositories/user-teable-global-setting-repository.d.ts +8 -0
- package/dist/server/storage/repositories/user-teable-global-setting-repository.js +52 -0
- package/dist/server/storage/repositories/user-teable-global-setting-repository.js.map +1 -0
- package/dist/server/storage/repositories/user-teable-mirror-record-mapping-repository.d.ts +9 -0
- package/dist/server/storage/repositories/user-teable-mirror-record-mapping-repository.js +66 -0
- package/dist/server/storage/repositories/user-teable-mirror-record-mapping-repository.js.map +1 -0
- package/dist/server/storage/repositories/user-teable-mirror-table-binding-repository.d.ts +9 -0
- package/dist/server/storage/repositories/user-teable-mirror-table-binding-repository.js +67 -0
- package/dist/server/storage/repositories/user-teable-mirror-table-binding-repository.js.map +1 -0
- package/dist/server/storage/repositories/user-teable-sync-log-repository.d.ts +14 -0
- package/dist/server/storage/repositories/user-teable-sync-log-repository.js +97 -0
- package/dist/server/storage/repositories/user-teable-sync-log-repository.js.map +1 -0
- package/dist/server/storage/repositories/user-teable-workbench-sync-config-repository.d.ts +8 -0
- package/dist/server/storage/repositories/user-teable-workbench-sync-config-repository.js +55 -0
- package/dist/server/storage/repositories/user-teable-workbench-sync-config-repository.js.map +1 -0
- 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 +633 -123
- package/dist/server/storage/sqlite/client.js.map +1 -1
- package/dist/server/storage/sqlite/schema.sql +214 -25
- package/dist/server/types/domain.d.ts +133 -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/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.d.ts +22 -3
- package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.js +29 -2
- package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/package.json +3 -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/TerminalManagerPanel-NVZRxxmH.js +0 -1
- 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/WorkspaceDetailPage-BPsrFffw.js +0 -1
- package/dist/public/assets/WorkspaceHomePage-KAtqZOAb.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/public/assets/useRegisteredDebugTemplates-DQAWVdCo.js +0 -1
- package/dist/public/assets/workbench-navigation-MEzCSmsK.js +0 -1
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { AppError, APP_ERROR_CODES } from "../../../../contracts/src/index.js";
|
|
4
|
+
import { loadRuntimeConfig } from "../../config/load-runtime-config.js";
|
|
5
|
+
import { CatalogWriteRepository } from "../../repositories/catalog-write-repository.js";
|
|
6
|
+
import { ExportBuilder } from "../export/export-builder.js";
|
|
7
|
+
import { AllowedExtensionsDiffService } from "../indexer/allowed-extensions-diff-service.js";
|
|
8
|
+
import { TextIndexer } from "../indexer/text-indexer.js";
|
|
9
|
+
const WATCHER_READY_META_KEY = "watcher.ready_after_initial_export";
|
|
10
|
+
function readJsonFile(filePath) {
|
|
11
|
+
if (!fs.existsSync(filePath)) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
return JSON.parse(fs.readFileSync(filePath, "utf-8"));
|
|
16
|
+
}
|
|
17
|
+
catch (_) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function normalizeRelativePath(relativePath) {
|
|
22
|
+
return relativePath.split(path.sep).join("/");
|
|
23
|
+
}
|
|
24
|
+
function resolveWatchRoot(rootDir, targetPath) {
|
|
25
|
+
return targetPath ? path.resolve(rootDir, targetPath) : rootDir;
|
|
26
|
+
}
|
|
27
|
+
function isConfigPath(relativePath) {
|
|
28
|
+
return relativePath === ".ai-index/doc-semantic-index.config.json"
|
|
29
|
+
|| relativePath === "doc-semantic-index.config.json"
|
|
30
|
+
|| relativePath === ".doc-semantic-indexrc.json"
|
|
31
|
+
|| relativePath === ".doc-semantic-index/config.json";
|
|
32
|
+
}
|
|
33
|
+
function isIgnoredWatchPath(relativePath) {
|
|
34
|
+
if (!relativePath) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
if (isConfigPath(relativePath)) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
return relativePath === ".ai-index" || relativePath.startsWith(".ai-index/");
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 最小 watch 服务。
|
|
44
|
+
* 第二阶段补上 Dirty Scope 透传与静态导出构建。
|
|
45
|
+
*/
|
|
46
|
+
export class WatchService {
|
|
47
|
+
config;
|
|
48
|
+
constructor(config) {
|
|
49
|
+
this.config = config;
|
|
50
|
+
}
|
|
51
|
+
async runCycleAsync(targetPath) {
|
|
52
|
+
const indexer = new TextIndexer(this.config);
|
|
53
|
+
const indexResult = await indexer.index(targetPath);
|
|
54
|
+
const exportResult = await new ExportBuilder(this.config).build({ dirtyScope: indexResult.dirtyScope });
|
|
55
|
+
return {
|
|
56
|
+
scopePath: targetPath,
|
|
57
|
+
kind: "index",
|
|
58
|
+
index: indexResult,
|
|
59
|
+
configApply: null,
|
|
60
|
+
export: {
|
|
61
|
+
metaShardCount: exportResult.metaShardCount,
|
|
62
|
+
detailShardCount: exportResult.detailShardCount,
|
|
63
|
+
tagShardCount: exportResult.tagShardCount,
|
|
64
|
+
exportedAt: exportResult.exportedAt,
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
async runConfigCycleAsync() {
|
|
69
|
+
const config = loadRuntimeConfig(this.config.rootDir, {
|
|
70
|
+
args: {
|
|
71
|
+
rootDir: this.config.rootDir,
|
|
72
|
+
},
|
|
73
|
+
env: process.env,
|
|
74
|
+
});
|
|
75
|
+
const result = await new AllowedExtensionsDiffService(config).applyIfNeeded();
|
|
76
|
+
return {
|
|
77
|
+
scopePath: ".ai-index/doc-semantic-index.config.json",
|
|
78
|
+
kind: "config",
|
|
79
|
+
index: result.indexResult,
|
|
80
|
+
configApply: result,
|
|
81
|
+
export: result.exportResult,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
async run(options = {}) {
|
|
85
|
+
const debounceMs = typeof options.debounceMs === "number" && options.debounceMs >= 0
|
|
86
|
+
? options.debounceMs
|
|
87
|
+
: this.config.watchDebounceMs;
|
|
88
|
+
const watchRoot = resolveWatchRoot(this.config.rootDir, options.targetPath);
|
|
89
|
+
const initialCycle = await this.runCycleAsync(options.targetPath);
|
|
90
|
+
if (!options.targetPath) {
|
|
91
|
+
new AllowedExtensionsDiffService(this.config).syncCurrentAsApplied();
|
|
92
|
+
}
|
|
93
|
+
if (options.once) {
|
|
94
|
+
return {
|
|
95
|
+
mode: "once",
|
|
96
|
+
watchRoot,
|
|
97
|
+
recursive: false,
|
|
98
|
+
debounceMs,
|
|
99
|
+
cycleCount: 1,
|
|
100
|
+
eventCount: 0,
|
|
101
|
+
lastEvent: null,
|
|
102
|
+
initialCycle,
|
|
103
|
+
cycles: [initialCycle],
|
|
104
|
+
stoppedBy: "once",
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
const writer = new CatalogWriteRepository(this.config.dbPath);
|
|
108
|
+
const manifest = readJsonFile(path.join(this.config.exportDir, "manifest.json"));
|
|
109
|
+
const indexedDocumentCount = writer.countActiveIndexedDocuments();
|
|
110
|
+
const exportedDocumentCount = Array.isArray(manifest?.detail_shards) ? manifest.detail_shards.length : 0;
|
|
111
|
+
const exportIsStale = exportedDocumentCount < indexedDocumentCount;
|
|
112
|
+
if (!options.targetPath && exportIsStale) {
|
|
113
|
+
const exportResult = await new ExportBuilder(this.config).build({ light: true });
|
|
114
|
+
writer.setSchemaMeta(WATCHER_READY_META_KEY, new Date().toISOString());
|
|
115
|
+
initialCycle.export = {
|
|
116
|
+
metaShardCount: exportResult.metaShardCount,
|
|
117
|
+
detailShardCount: exportResult.detailShardCount,
|
|
118
|
+
tagShardCount: exportResult.tagShardCount,
|
|
119
|
+
exportedAt: exportResult.exportedAt,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
if (!fs.existsSync(watchRoot)) {
|
|
123
|
+
throw new AppError(`watch 目标路径不存在:${watchRoot}`, APP_ERROR_CODES.WATCH_PATH_NOT_FOUND, {
|
|
124
|
+
details: {
|
|
125
|
+
watchRoot,
|
|
126
|
+
targetPath: options.targetPath ?? null,
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
const recursive = true;
|
|
131
|
+
const cycles = [initialCycle];
|
|
132
|
+
let cycleCount = 1;
|
|
133
|
+
let eventCount = 0;
|
|
134
|
+
let lastEvent = null;
|
|
135
|
+
let stopped = false;
|
|
136
|
+
let timeoutId = null;
|
|
137
|
+
let debounceTimer = null;
|
|
138
|
+
let pendingScope;
|
|
139
|
+
return await new Promise((resolve, reject) => {
|
|
140
|
+
const finish = (stoppedBy) => {
|
|
141
|
+
if (stopped) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
stopped = true;
|
|
145
|
+
if (timeoutId) {
|
|
146
|
+
clearTimeout(timeoutId);
|
|
147
|
+
}
|
|
148
|
+
if (debounceTimer) {
|
|
149
|
+
clearTimeout(debounceTimer);
|
|
150
|
+
}
|
|
151
|
+
watcher.close();
|
|
152
|
+
process.off("SIGINT", handleSignal);
|
|
153
|
+
process.off("SIGTERM", handleSignal);
|
|
154
|
+
resolve({
|
|
155
|
+
mode: "watch",
|
|
156
|
+
watchRoot,
|
|
157
|
+
recursive,
|
|
158
|
+
debounceMs,
|
|
159
|
+
cycleCount,
|
|
160
|
+
eventCount,
|
|
161
|
+
lastEvent,
|
|
162
|
+
initialCycle,
|
|
163
|
+
cycles,
|
|
164
|
+
stoppedBy,
|
|
165
|
+
});
|
|
166
|
+
};
|
|
167
|
+
const handleSignal = () => finish("signal");
|
|
168
|
+
const flush = async () => {
|
|
169
|
+
try {
|
|
170
|
+
const cycle = pendingScope && isConfigPath(pendingScope)
|
|
171
|
+
? await this.runConfigCycleAsync()
|
|
172
|
+
: await this.runCycleAsync(pendingScope ?? options.targetPath);
|
|
173
|
+
cycles.push(cycle);
|
|
174
|
+
cycleCount += 1;
|
|
175
|
+
pendingScope = undefined;
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
reject(error);
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
const scheduleFlush = () => {
|
|
182
|
+
if (debounceTimer) {
|
|
183
|
+
clearTimeout(debounceTimer);
|
|
184
|
+
}
|
|
185
|
+
debounceTimer = setTimeout(() => {
|
|
186
|
+
void flush();
|
|
187
|
+
}, debounceMs);
|
|
188
|
+
};
|
|
189
|
+
const watcher = fs.watch(watchRoot, { recursive }, (eventType, filename) => {
|
|
190
|
+
eventCount += 1;
|
|
191
|
+
const resolvedRelativePath = filename
|
|
192
|
+
? normalizeRelativePath(path.relative(this.config.rootDir, path.join(watchRoot, filename.toString())))
|
|
193
|
+
: null;
|
|
194
|
+
lastEvent = {
|
|
195
|
+
eventType,
|
|
196
|
+
relativePath: resolvedRelativePath,
|
|
197
|
+
};
|
|
198
|
+
if (isIgnoredWatchPath(resolvedRelativePath)) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
if (!filename) {
|
|
202
|
+
pendingScope = options.targetPath;
|
|
203
|
+
scheduleFlush();
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
const rawPath = path.join(watchRoot, filename.toString());
|
|
207
|
+
const relativePath = normalizeRelativePath(path.relative(this.config.rootDir, rawPath));
|
|
208
|
+
if (isConfigPath(relativePath)) {
|
|
209
|
+
pendingScope = relativePath;
|
|
210
|
+
scheduleFlush();
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
const scopeAbsolutePath = eventType === "rename" ? path.dirname(rawPath) : rawPath;
|
|
214
|
+
const relativeScope = normalizeRelativePath(path.relative(this.config.rootDir, scopeAbsolutePath));
|
|
215
|
+
pendingScope = !relativeScope || relativeScope === "." ? undefined : relativeScope;
|
|
216
|
+
scheduleFlush();
|
|
217
|
+
});
|
|
218
|
+
watcher.on("error", error => reject(error));
|
|
219
|
+
process.on("SIGINT", handleSignal);
|
|
220
|
+
process.on("SIGTERM", handleSignal);
|
|
221
|
+
if (typeof options.durationMs === "number" && options.durationMs > 0) {
|
|
222
|
+
timeoutId = setTimeout(() => finish("timeout"), options.durationMs);
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=watch-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch-service.js","sourceRoot":"","sources":["../../../../../../../../src/modules/affairs-indexer/core/src/services/watch/watch-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 当前 Node 版最小 catalog schema。
|
|
3
|
+
* 以 SQLite 为唯一真相源,保持 schema 可迁移、可追踪。
|
|
4
|
+
*/
|
|
5
|
+
export declare const CATALOG_SCHEMA_SQL = "\nCREATE TABLE IF NOT EXISTS schema_meta (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL,\n updated_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS migration_history (\n id TEXT PRIMARY KEY,\n version INTEGER NOT NULL,\n name TEXT NOT NULL,\n applied_at TEXT NOT NULL,\n checksum TEXT,\n status TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS files (\n id TEXT PRIMARY KEY,\n path TEXT UNIQUE NOT NULL,\n dir_path TEXT NOT NULL,\n name TEXT NOT NULL,\n extension TEXT NOT NULL,\n size INTEGER NOT NULL,\n mtime TEXT NOT NULL,\n ctime TEXT,\n inode_key TEXT,\n content_hash TEXT,\n status TEXT NOT NULL,\n last_seen_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS documents (\n id TEXT PRIMARY KEY,\n file_id TEXT UNIQUE NOT NULL,\n title TEXT,\n summary TEXT,\n language TEXT,\n parse_status TEXT NOT NULL,\n parse_error TEXT,\n index_status TEXT NOT NULL,\n chunk_count INTEGER NOT NULL,\n last_indexed_at TEXT,\n FOREIGN KEY(file_id) REFERENCES files(id)\n);\n\nCREATE TABLE IF NOT EXISTS chunks (\n id TEXT PRIMARY KEY,\n document_id TEXT NOT NULL,\n chunk_index INTEGER NOT NULL,\n content TEXT NOT NULL,\n content_hash TEXT,\n page_no INTEGER,\n sheet_name TEXT,\n heading_path TEXT,\n token_count INTEGER,\n vector_point_id TEXT,\n FOREIGN KEY(document_id) REFERENCES documents(id)\n);\n\nCREATE TABLE IF NOT EXISTS tags (\n id TEXT PRIMARY KEY,\n root_type TEXT NOT NULL,\n path TEXT UNIQUE NOT NULL,\n name TEXT NOT NULL,\n parent_id TEXT,\n canonical_name TEXT NOT NULL,\n description TEXT,\n status TEXT NOT NULL,\n created_by TEXT NOT NULL,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n disabled_at TEXT\n);\n\nCREATE TABLE IF NOT EXISTS tag_aliases (\n id TEXT PRIMARY KEY,\n tag_id TEXT NOT NULL,\n alias TEXT NOT NULL,\n alias_type TEXT NOT NULL,\n confidence REAL NOT NULL,\n updated_at TEXT NOT NULL,\n FOREIGN KEY(tag_id) REFERENCES tags(id)\n);\n\nCREATE TABLE IF NOT EXISTS document_tags (\n id TEXT PRIMARY KEY,\n document_id TEXT NOT NULL,\n tag_id TEXT NOT NULL,\n confidence REAL NOT NULL,\n source TEXT NOT NULL,\n source_ref TEXT,\n evidence TEXT,\n manual_override INTEGER NOT NULL,\n updated_at TEXT NOT NULL,\n UNIQUE(document_id, tag_id),\n FOREIGN KEY(document_id) REFERENCES documents(id),\n FOREIGN KEY(tag_id) REFERENCES tags(id)\n);\n\nCREATE TABLE IF NOT EXISTS derived_document_tags (\n id TEXT PRIMARY KEY,\n document_id TEXT NOT NULL,\n tag_id TEXT NOT NULL,\n source TEXT NOT NULL,\n source_ref TEXT,\n rule_name TEXT NOT NULL,\n evidence TEXT,\n computed_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n expires_at TEXT,\n FOREIGN KEY(document_id) REFERENCES documents(id),\n FOREIGN KEY(tag_id) REFERENCES tags(id)\n);\n\nCREATE TABLE IF NOT EXISTS tag_rules (\n id TEXT PRIMARY KEY,\n tag_id TEXT NOT NULL,\n enabled INTEGER NOT NULL,\n rule_type TEXT NOT NULL,\n scope_json TEXT NOT NULL,\n matcher_json TEXT NOT NULL,\n min_score REAL,\n priority INTEGER NOT NULL,\n source TEXT NOT NULL,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n FOREIGN KEY(tag_id) REFERENCES tags(id)\n);\n\nCREATE TABLE IF NOT EXISTS manual_document_tag_bindings (\n id TEXT PRIMARY KEY,\n document_id TEXT NOT NULL,\n tag_id TEXT NOT NULL,\n source TEXT NOT NULL,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n UNIQUE(document_id, tag_id),\n FOREIGN KEY(document_id) REFERENCES documents(id),\n FOREIGN KEY(tag_id) REFERENCES tags(id)\n);\n\nCREATE TABLE IF NOT EXISTS manual_file_tag_bindings (\n id TEXT PRIMARY KEY,\n inode_key TEXT,\n content_hash TEXT,\n file_size INTEGER NOT NULL,\n extension TEXT NOT NULL,\n tag_id TEXT NOT NULL,\n source TEXT NOT NULL,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n FOREIGN KEY(tag_id) REFERENCES tags(id)\n);\n\nCREATE TABLE IF NOT EXISTS folder_tag_bindings (\n id TEXT PRIMARY KEY,\n folder_path TEXT NOT NULL,\n tag_id TEXT NOT NULL,\n apply_mode TEXT NOT NULL,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n UNIQUE(folder_path, tag_id, apply_mode),\n FOREIGN KEY(tag_id) REFERENCES tags(id)\n);\n\nCREATE TABLE IF NOT EXISTS tag_recommendation_batches (\n id TEXT PRIMARY KEY,\n status TEXT NOT NULL,\n summary TEXT,\n evidence_snapshot_json TEXT,\n generated_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS tag_recommendation_items (\n id TEXT PRIMARY KEY,\n batch_id TEXT NOT NULL,\n proposed_path TEXT NOT NULL,\n proposed_name TEXT NOT NULL,\n proposed_parent_path TEXT,\n document_count INTEGER NOT NULL,\n evidence_json TEXT NOT NULL,\n selected_by_default INTEGER NOT NULL,\n status TEXT NOT NULL,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n FOREIGN KEY(batch_id) REFERENCES tag_recommendation_batches(id)\n);\n\nCREATE TABLE IF NOT EXISTS reindex_jobs (\n id TEXT PRIMARY KEY,\n job_type TEXT NOT NULL,\n target_path TEXT,\n status TEXT NOT NULL,\n priority INTEGER NOT NULL,\n error_message TEXT,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS watch_events (\n id TEXT PRIMARY KEY,\n event_type TEXT NOT NULL,\n path TEXT NOT NULL,\n created_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS parser_skip_catalog (\n skip_key TEXT PRIMARY KEY,\n adapter TEXT NOT NULL,\n reason_code TEXT NOT NULL,\n extension TEXT NOT NULL,\n sample_paths_json TEXT NOT NULL,\n sample_count INTEGER NOT NULL,\n total_count INTEGER NOT NULL,\n last_message TEXT,\n first_seen_at TEXT NOT NULL,\n last_seen_at TEXT NOT NULL,\n last_run_at TEXT NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_files_hash ON files(content_hash);\nCREATE INDEX IF NOT EXISTS idx_files_inode_key ON files(inode_key);\nCREATE INDEX IF NOT EXISTS idx_chunks_document ON chunks(document_id, chunk_index);\nCREATE INDEX IF NOT EXISTS idx_tags_path ON tags(path);\nCREATE INDEX IF NOT EXISTS idx_document_tags_document ON document_tags(document_id);\nCREATE INDEX IF NOT EXISTS idx_document_tags_source ON document_tags(document_id, source);\nCREATE INDEX IF NOT EXISTS idx_derived_document_tags_document ON derived_document_tags(document_id);\nCREATE UNIQUE INDEX IF NOT EXISTS idx_derived_document_tags_pair ON derived_document_tags(document_id, tag_id);\nCREATE INDEX IF NOT EXISTS idx_tag_aliases_alias ON tag_aliases(alias);\nCREATE INDEX IF NOT EXISTS idx_tag_rules_tag ON tag_rules(tag_id, enabled, priority);\nCREATE INDEX IF NOT EXISTS idx_manual_document_tag_bindings_document ON manual_document_tag_bindings(document_id);\nCREATE INDEX IF NOT EXISTS idx_manual_file_tag_bindings_inode ON manual_file_tag_bindings(inode_key);\nCREATE INDEX IF NOT EXISTS idx_manual_file_tag_bindings_content ON manual_file_tag_bindings(content_hash, file_size, extension);\nCREATE INDEX IF NOT EXISTS idx_manual_file_tag_bindings_tag ON manual_file_tag_bindings(tag_id);\nCREATE INDEX IF NOT EXISTS idx_folder_tag_bindings_folder ON folder_tag_bindings(folder_path);\nCREATE INDEX IF NOT EXISTS idx_tag_recommendation_items_batch ON tag_recommendation_items(batch_id, status);\nCREATE INDEX IF NOT EXISTS idx_reindex_jobs_status ON reindex_jobs(status, priority, created_at);\nCREATE INDEX IF NOT EXISTS idx_parser_skip_catalog_reason ON parser_skip_catalog(reason_code, extension, last_run_at);\n";
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 当前 Node 版最小 catalog schema。
|
|
3
|
+
* 以 SQLite 为唯一真相源,保持 schema 可迁移、可追踪。
|
|
4
|
+
*/
|
|
5
|
+
export const CATALOG_SCHEMA_SQL = `
|
|
6
|
+
CREATE TABLE IF NOT EXISTS schema_meta (
|
|
7
|
+
key TEXT PRIMARY KEY,
|
|
8
|
+
value TEXT NOT NULL,
|
|
9
|
+
updated_at TEXT NOT NULL
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
CREATE TABLE IF NOT EXISTS migration_history (
|
|
13
|
+
id TEXT PRIMARY KEY,
|
|
14
|
+
version INTEGER NOT NULL,
|
|
15
|
+
name TEXT NOT NULL,
|
|
16
|
+
applied_at TEXT NOT NULL,
|
|
17
|
+
checksum TEXT,
|
|
18
|
+
status TEXT NOT NULL
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
CREATE TABLE IF NOT EXISTS files (
|
|
22
|
+
id TEXT PRIMARY KEY,
|
|
23
|
+
path TEXT UNIQUE NOT NULL,
|
|
24
|
+
dir_path TEXT NOT NULL,
|
|
25
|
+
name TEXT NOT NULL,
|
|
26
|
+
extension TEXT NOT NULL,
|
|
27
|
+
size INTEGER NOT NULL,
|
|
28
|
+
mtime TEXT NOT NULL,
|
|
29
|
+
ctime TEXT,
|
|
30
|
+
inode_key TEXT,
|
|
31
|
+
content_hash TEXT,
|
|
32
|
+
status TEXT NOT NULL,
|
|
33
|
+
last_seen_at TEXT NOT NULL
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
CREATE TABLE IF NOT EXISTS documents (
|
|
37
|
+
id TEXT PRIMARY KEY,
|
|
38
|
+
file_id TEXT UNIQUE NOT NULL,
|
|
39
|
+
title TEXT,
|
|
40
|
+
summary TEXT,
|
|
41
|
+
language TEXT,
|
|
42
|
+
parse_status TEXT NOT NULL,
|
|
43
|
+
parse_error TEXT,
|
|
44
|
+
index_status TEXT NOT NULL,
|
|
45
|
+
chunk_count INTEGER NOT NULL,
|
|
46
|
+
last_indexed_at TEXT,
|
|
47
|
+
FOREIGN KEY(file_id) REFERENCES files(id)
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
CREATE TABLE IF NOT EXISTS chunks (
|
|
51
|
+
id TEXT PRIMARY KEY,
|
|
52
|
+
document_id TEXT NOT NULL,
|
|
53
|
+
chunk_index INTEGER NOT NULL,
|
|
54
|
+
content TEXT NOT NULL,
|
|
55
|
+
content_hash TEXT,
|
|
56
|
+
page_no INTEGER,
|
|
57
|
+
sheet_name TEXT,
|
|
58
|
+
heading_path TEXT,
|
|
59
|
+
token_count INTEGER,
|
|
60
|
+
vector_point_id TEXT,
|
|
61
|
+
FOREIGN KEY(document_id) REFERENCES documents(id)
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
CREATE TABLE IF NOT EXISTS tags (
|
|
65
|
+
id TEXT PRIMARY KEY,
|
|
66
|
+
root_type TEXT NOT NULL,
|
|
67
|
+
path TEXT UNIQUE NOT NULL,
|
|
68
|
+
name TEXT NOT NULL,
|
|
69
|
+
parent_id TEXT,
|
|
70
|
+
canonical_name TEXT NOT NULL,
|
|
71
|
+
description TEXT,
|
|
72
|
+
status TEXT NOT NULL,
|
|
73
|
+
created_by TEXT NOT NULL,
|
|
74
|
+
created_at TEXT NOT NULL,
|
|
75
|
+
updated_at TEXT NOT NULL,
|
|
76
|
+
disabled_at TEXT
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
CREATE TABLE IF NOT EXISTS tag_aliases (
|
|
80
|
+
id TEXT PRIMARY KEY,
|
|
81
|
+
tag_id TEXT NOT NULL,
|
|
82
|
+
alias TEXT NOT NULL,
|
|
83
|
+
alias_type TEXT NOT NULL,
|
|
84
|
+
confidence REAL NOT NULL,
|
|
85
|
+
updated_at TEXT NOT NULL,
|
|
86
|
+
FOREIGN KEY(tag_id) REFERENCES tags(id)
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
CREATE TABLE IF NOT EXISTS document_tags (
|
|
90
|
+
id TEXT PRIMARY KEY,
|
|
91
|
+
document_id TEXT NOT NULL,
|
|
92
|
+
tag_id TEXT NOT NULL,
|
|
93
|
+
confidence REAL NOT NULL,
|
|
94
|
+
source TEXT NOT NULL,
|
|
95
|
+
source_ref TEXT,
|
|
96
|
+
evidence TEXT,
|
|
97
|
+
manual_override INTEGER NOT NULL,
|
|
98
|
+
updated_at TEXT NOT NULL,
|
|
99
|
+
UNIQUE(document_id, tag_id),
|
|
100
|
+
FOREIGN KEY(document_id) REFERENCES documents(id),
|
|
101
|
+
FOREIGN KEY(tag_id) REFERENCES tags(id)
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
CREATE TABLE IF NOT EXISTS derived_document_tags (
|
|
105
|
+
id TEXT PRIMARY KEY,
|
|
106
|
+
document_id TEXT NOT NULL,
|
|
107
|
+
tag_id TEXT NOT NULL,
|
|
108
|
+
source TEXT NOT NULL,
|
|
109
|
+
source_ref TEXT,
|
|
110
|
+
rule_name TEXT NOT NULL,
|
|
111
|
+
evidence TEXT,
|
|
112
|
+
computed_at TEXT NOT NULL,
|
|
113
|
+
updated_at TEXT NOT NULL,
|
|
114
|
+
expires_at TEXT,
|
|
115
|
+
FOREIGN KEY(document_id) REFERENCES documents(id),
|
|
116
|
+
FOREIGN KEY(tag_id) REFERENCES tags(id)
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
CREATE TABLE IF NOT EXISTS tag_rules (
|
|
120
|
+
id TEXT PRIMARY KEY,
|
|
121
|
+
tag_id TEXT NOT NULL,
|
|
122
|
+
enabled INTEGER NOT NULL,
|
|
123
|
+
rule_type TEXT NOT NULL,
|
|
124
|
+
scope_json TEXT NOT NULL,
|
|
125
|
+
matcher_json TEXT NOT NULL,
|
|
126
|
+
min_score REAL,
|
|
127
|
+
priority INTEGER NOT NULL,
|
|
128
|
+
source TEXT NOT NULL,
|
|
129
|
+
created_at TEXT NOT NULL,
|
|
130
|
+
updated_at TEXT NOT NULL,
|
|
131
|
+
FOREIGN KEY(tag_id) REFERENCES tags(id)
|
|
132
|
+
);
|
|
133
|
+
|
|
134
|
+
CREATE TABLE IF NOT EXISTS manual_document_tag_bindings (
|
|
135
|
+
id TEXT PRIMARY KEY,
|
|
136
|
+
document_id TEXT NOT NULL,
|
|
137
|
+
tag_id TEXT NOT NULL,
|
|
138
|
+
source TEXT NOT NULL,
|
|
139
|
+
created_at TEXT NOT NULL,
|
|
140
|
+
updated_at TEXT NOT NULL,
|
|
141
|
+
UNIQUE(document_id, tag_id),
|
|
142
|
+
FOREIGN KEY(document_id) REFERENCES documents(id),
|
|
143
|
+
FOREIGN KEY(tag_id) REFERENCES tags(id)
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
CREATE TABLE IF NOT EXISTS manual_file_tag_bindings (
|
|
147
|
+
id TEXT PRIMARY KEY,
|
|
148
|
+
inode_key TEXT,
|
|
149
|
+
content_hash TEXT,
|
|
150
|
+
file_size INTEGER NOT NULL,
|
|
151
|
+
extension TEXT NOT NULL,
|
|
152
|
+
tag_id TEXT NOT NULL,
|
|
153
|
+
source TEXT NOT NULL,
|
|
154
|
+
created_at TEXT NOT NULL,
|
|
155
|
+
updated_at TEXT NOT NULL,
|
|
156
|
+
FOREIGN KEY(tag_id) REFERENCES tags(id)
|
|
157
|
+
);
|
|
158
|
+
|
|
159
|
+
CREATE TABLE IF NOT EXISTS folder_tag_bindings (
|
|
160
|
+
id TEXT PRIMARY KEY,
|
|
161
|
+
folder_path TEXT NOT NULL,
|
|
162
|
+
tag_id TEXT NOT NULL,
|
|
163
|
+
apply_mode TEXT NOT NULL,
|
|
164
|
+
created_at TEXT NOT NULL,
|
|
165
|
+
updated_at TEXT NOT NULL,
|
|
166
|
+
UNIQUE(folder_path, tag_id, apply_mode),
|
|
167
|
+
FOREIGN KEY(tag_id) REFERENCES tags(id)
|
|
168
|
+
);
|
|
169
|
+
|
|
170
|
+
CREATE TABLE IF NOT EXISTS tag_recommendation_batches (
|
|
171
|
+
id TEXT PRIMARY KEY,
|
|
172
|
+
status TEXT NOT NULL,
|
|
173
|
+
summary TEXT,
|
|
174
|
+
evidence_snapshot_json TEXT,
|
|
175
|
+
generated_at TEXT NOT NULL,
|
|
176
|
+
updated_at TEXT NOT NULL
|
|
177
|
+
);
|
|
178
|
+
|
|
179
|
+
CREATE TABLE IF NOT EXISTS tag_recommendation_items (
|
|
180
|
+
id TEXT PRIMARY KEY,
|
|
181
|
+
batch_id TEXT NOT NULL,
|
|
182
|
+
proposed_path TEXT NOT NULL,
|
|
183
|
+
proposed_name TEXT NOT NULL,
|
|
184
|
+
proposed_parent_path TEXT,
|
|
185
|
+
document_count INTEGER NOT NULL,
|
|
186
|
+
evidence_json TEXT NOT NULL,
|
|
187
|
+
selected_by_default INTEGER NOT NULL,
|
|
188
|
+
status TEXT NOT NULL,
|
|
189
|
+
created_at TEXT NOT NULL,
|
|
190
|
+
updated_at TEXT NOT NULL,
|
|
191
|
+
FOREIGN KEY(batch_id) REFERENCES tag_recommendation_batches(id)
|
|
192
|
+
);
|
|
193
|
+
|
|
194
|
+
CREATE TABLE IF NOT EXISTS reindex_jobs (
|
|
195
|
+
id TEXT PRIMARY KEY,
|
|
196
|
+
job_type TEXT NOT NULL,
|
|
197
|
+
target_path TEXT,
|
|
198
|
+
status TEXT NOT NULL,
|
|
199
|
+
priority INTEGER NOT NULL,
|
|
200
|
+
error_message TEXT,
|
|
201
|
+
created_at TEXT NOT NULL,
|
|
202
|
+
updated_at TEXT NOT NULL
|
|
203
|
+
);
|
|
204
|
+
|
|
205
|
+
CREATE TABLE IF NOT EXISTS watch_events (
|
|
206
|
+
id TEXT PRIMARY KEY,
|
|
207
|
+
event_type TEXT NOT NULL,
|
|
208
|
+
path TEXT NOT NULL,
|
|
209
|
+
created_at TEXT NOT NULL
|
|
210
|
+
);
|
|
211
|
+
|
|
212
|
+
CREATE TABLE IF NOT EXISTS parser_skip_catalog (
|
|
213
|
+
skip_key TEXT PRIMARY KEY,
|
|
214
|
+
adapter TEXT NOT NULL,
|
|
215
|
+
reason_code TEXT NOT NULL,
|
|
216
|
+
extension TEXT NOT NULL,
|
|
217
|
+
sample_paths_json TEXT NOT NULL,
|
|
218
|
+
sample_count INTEGER NOT NULL,
|
|
219
|
+
total_count INTEGER NOT NULL,
|
|
220
|
+
last_message TEXT,
|
|
221
|
+
first_seen_at TEXT NOT NULL,
|
|
222
|
+
last_seen_at TEXT NOT NULL,
|
|
223
|
+
last_run_at TEXT NOT NULL
|
|
224
|
+
);
|
|
225
|
+
|
|
226
|
+
CREATE INDEX IF NOT EXISTS idx_files_hash ON files(content_hash);
|
|
227
|
+
CREATE INDEX IF NOT EXISTS idx_files_inode_key ON files(inode_key);
|
|
228
|
+
CREATE INDEX IF NOT EXISTS idx_chunks_document ON chunks(document_id, chunk_index);
|
|
229
|
+
CREATE INDEX IF NOT EXISTS idx_tags_path ON tags(path);
|
|
230
|
+
CREATE INDEX IF NOT EXISTS idx_document_tags_document ON document_tags(document_id);
|
|
231
|
+
CREATE INDEX IF NOT EXISTS idx_document_tags_source ON document_tags(document_id, source);
|
|
232
|
+
CREATE INDEX IF NOT EXISTS idx_derived_document_tags_document ON derived_document_tags(document_id);
|
|
233
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_derived_document_tags_pair ON derived_document_tags(document_id, tag_id);
|
|
234
|
+
CREATE INDEX IF NOT EXISTS idx_tag_aliases_alias ON tag_aliases(alias);
|
|
235
|
+
CREATE INDEX IF NOT EXISTS idx_tag_rules_tag ON tag_rules(tag_id, enabled, priority);
|
|
236
|
+
CREATE INDEX IF NOT EXISTS idx_manual_document_tag_bindings_document ON manual_document_tag_bindings(document_id);
|
|
237
|
+
CREATE INDEX IF NOT EXISTS idx_manual_file_tag_bindings_inode ON manual_file_tag_bindings(inode_key);
|
|
238
|
+
CREATE INDEX IF NOT EXISTS idx_manual_file_tag_bindings_content ON manual_file_tag_bindings(content_hash, file_size, extension);
|
|
239
|
+
CREATE INDEX IF NOT EXISTS idx_manual_file_tag_bindings_tag ON manual_file_tag_bindings(tag_id);
|
|
240
|
+
CREATE INDEX IF NOT EXISTS idx_folder_tag_bindings_folder ON folder_tag_bindings(folder_path);
|
|
241
|
+
CREATE INDEX IF NOT EXISTS idx_tag_recommendation_items_batch ON tag_recommendation_items(batch_id, status);
|
|
242
|
+
CREATE INDEX IF NOT EXISTS idx_reindex_jobs_status ON reindex_jobs(status, priority, created_at);
|
|
243
|
+
CREATE INDEX IF NOT EXISTS idx_parser_skip_catalog_reason ON parser_skip_catalog(reason_code, extension, last_run_at);
|
|
244
|
+
`;
|
|
245
|
+
//# sourceMappingURL=catalog-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-schema.js","sourceRoot":"","sources":["../../../../../../../src/modules/affairs-indexer/core/src/sqlite/catalog-schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+OjC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type CatalogSchemaMode = "absent" | "empty" | "legacy_unsupported" | "node_v1" | "node_v2" | "node_v3" | "unknown";
|
|
2
|
+
export interface CatalogSchemaReport {
|
|
3
|
+
mode: CatalogSchemaMode;
|
|
4
|
+
dbPath: string;
|
|
5
|
+
tableCount: number;
|
|
6
|
+
tableNames: string[];
|
|
7
|
+
schemaVersion: number | null;
|
|
8
|
+
managedBy: string | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* 检测当前 catalog.db 的 schema 状态。
|
|
12
|
+
* 这里保留对旧库形态的识别,但不再保留 Python 运行时或并行期依赖。
|
|
13
|
+
*/
|
|
14
|
+
export declare function detectCatalogSchema(dbPath: string): Promise<CatalogSchemaReport>;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import { openDatabase } from "./open-database.js";
|
|
3
|
+
/**
|
|
4
|
+
* 检测当前 catalog.db 的 schema 状态。
|
|
5
|
+
* 这里保留对旧库形态的识别,但不再保留 Python 运行时或并行期依赖。
|
|
6
|
+
*/
|
|
7
|
+
export async function detectCatalogSchema(dbPath) {
|
|
8
|
+
if (!fs.existsSync(dbPath)) {
|
|
9
|
+
return {
|
|
10
|
+
mode: "absent",
|
|
11
|
+
dbPath,
|
|
12
|
+
tableCount: 0,
|
|
13
|
+
tableNames: [],
|
|
14
|
+
schemaVersion: null,
|
|
15
|
+
managedBy: null,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const db = openDatabase(dbPath);
|
|
19
|
+
try {
|
|
20
|
+
const tables = db.prepare(`
|
|
21
|
+
SELECT name
|
|
22
|
+
FROM sqlite_master
|
|
23
|
+
WHERE type = 'table' AND name NOT LIKE 'sqlite_%'
|
|
24
|
+
ORDER BY name
|
|
25
|
+
`).all();
|
|
26
|
+
const tableNames = tables.map(item => item.name);
|
|
27
|
+
const tableCount = tableNames.length;
|
|
28
|
+
if (tableCount === 0) {
|
|
29
|
+
return {
|
|
30
|
+
mode: "empty",
|
|
31
|
+
dbPath,
|
|
32
|
+
tableCount,
|
|
33
|
+
tableNames,
|
|
34
|
+
schemaVersion: null,
|
|
35
|
+
managedBy: null,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const hasSchemaMeta = tableNames.includes("schema_meta");
|
|
39
|
+
const hasLegacyCoreTables = ["files", "documents", "chunks", "tags"].every(name => tableNames.includes(name));
|
|
40
|
+
if (hasSchemaMeta) {
|
|
41
|
+
const rows = db.prepare(`SELECT key, value FROM schema_meta WHERE key IN ('schema_version', 'managed_by')`).all();
|
|
42
|
+
const kv = new Map(rows.map(item => [item.key, item.value]));
|
|
43
|
+
const rawVersion = kv.get("schema_version");
|
|
44
|
+
const schemaVersion = rawVersion ? Number(rawVersion) : null;
|
|
45
|
+
const managedBy = kv.get("managed_by") ?? null;
|
|
46
|
+
const mode = managedBy === "node"
|
|
47
|
+
? schemaVersion === 1
|
|
48
|
+
? "node_v1"
|
|
49
|
+
: schemaVersion === 2
|
|
50
|
+
? "node_v2"
|
|
51
|
+
: schemaVersion === 3
|
|
52
|
+
? "node_v3"
|
|
53
|
+
: "unknown"
|
|
54
|
+
: "unknown";
|
|
55
|
+
return {
|
|
56
|
+
mode,
|
|
57
|
+
dbPath,
|
|
58
|
+
tableCount,
|
|
59
|
+
tableNames,
|
|
60
|
+
schemaVersion: Number.isFinite(schemaVersion) ? schemaVersion : null,
|
|
61
|
+
managedBy,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
if (hasLegacyCoreTables) {
|
|
65
|
+
return {
|
|
66
|
+
mode: "legacy_unsupported",
|
|
67
|
+
dbPath,
|
|
68
|
+
tableCount,
|
|
69
|
+
tableNames,
|
|
70
|
+
schemaVersion: null,
|
|
71
|
+
managedBy: null,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
mode: "unknown",
|
|
76
|
+
dbPath,
|
|
77
|
+
tableCount,
|
|
78
|
+
tableNames,
|
|
79
|
+
schemaVersion: null,
|
|
80
|
+
managedBy: null,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
finally {
|
|
84
|
+
db.close();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=detect-catalog-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-catalog-schema.js","sourceRoot":"","sources":["../../../../../../../src/modules/affairs-indexer/core/src/sqlite/detect-catalog-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { RuntimeConfig } from "../../../contracts/src/index.js";
|
|
2
|
+
export interface InitCatalogResult {
|
|
3
|
+
dbPath: string;
|
|
4
|
+
indexDir: string;
|
|
5
|
+
schemaVersion: number;
|
|
6
|
+
createdAt: string;
|
|
7
|
+
appliedMigrations: string[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 初始化最小 catalog schema。
|
|
11
|
+
* 第二阶段改为通过 migration runner 执行,避免后续 schema 升级继续硬编码在 init 里。
|
|
12
|
+
*/
|
|
13
|
+
export declare function initCatalog(config: RuntimeConfig): InitCatalogResult;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { runCatalogMigrations } from "./migration-runner.js";
|
|
2
|
+
/**
|
|
3
|
+
* 初始化最小 catalog schema。
|
|
4
|
+
* 第二阶段改为通过 migration runner 执行,避免后续 schema 升级继续硬编码在 init 里。
|
|
5
|
+
*/
|
|
6
|
+
export function initCatalog(config) {
|
|
7
|
+
const result = runCatalogMigrations(config);
|
|
8
|
+
return {
|
|
9
|
+
dbPath: result.dbPath,
|
|
10
|
+
indexDir: config.indexDir,
|
|
11
|
+
schemaVersion: result.schemaVersion,
|
|
12
|
+
createdAt: result.executedAt,
|
|
13
|
+
appliedMigrations: result.appliedMigrations,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=init-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-catalog.js","sourceRoot":"","sources":["../../../../../../../src/modules/affairs-indexer/core/src/sqlite/init-catalog.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAU7D;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,MAAqB;IAC/C,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,SAAS,EAAE,MAAM,CAAC,UAAU;QAC5B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;KAC5C,CAAC;AACJ,CAAC"}
|