@neuralis/brain-core 0.3.2 → 0.4.1
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/README.md +80 -1410
- package/app/README.md +1 -1
- package/app/cards/FilesystemCardShell.tsx +42 -4
- package/app/cards/FilesystemChangeCard.tsx +34 -11
- package/app/cards/README.md +6 -5
- package/app/cards/diffUtils.ts +99 -1
- package/app/filesystem/FilesystemHost.tsx +17 -2
- package/app/filesystem/api/README.md +3 -3
- package/app/filesystem/api/index.ts +35 -11
- package/app/filesystem/api/projectPackages.ts +13 -102
- package/app/filesystem/domain/types.ts +30 -10
- package/app/filesystem/hooks/README.md +3 -3
- package/app/filesystem/hooks/useDiscoverableSources.ts +19 -30
- package/app/filesystem/hooks/useFilesystemSSE.ts +1 -1
- package/app/filesystem/host/README.md +5 -3
- package/app/filesystem/host/buildFilesystemHostValue.ts +19 -0
- package/app/filesystem/host/installFilesystemHostComponents.tsx +1 -1
- package/app/filesystem/lib/sourceKindForm.ts +118 -39
- package/app/filesystem/lib/treeVisualState.tsx +98 -4
- package/app/filesystem/store/README.md +1 -0
- package/app/filesystem/store/filesystemStore.ts +86 -5
- package/app/filesystem/store/gitSlice.ts +5 -0
- package/app/filesystem/store/helpers.ts +17 -0
- package/app/filesystem/store/listSlice.ts +8 -0
- package/app/filesystem/ui/CodeEditor.tsx +18 -3
- package/app/filesystem/ui/FileEditor.tsx +15 -10
- package/app/filesystem/ui/FileTree.tsx +41 -16
- package/app/filesystem/ui/FolderPicker.tsx +251 -0
- package/app/filesystem/ui/GitControlPanel.tsx +5 -0
- package/app/filesystem/ui/PackagesPanel.tsx +52 -374
- package/app/filesystem/ui/PolicyEditor.tsx +109 -24
- package/app/filesystem/ui/README.md +17 -11
- package/app/filesystem/ui/RawMediaPreview.tsx +58 -0
- package/app/filesystem/ui/SourceBranchHeader.tsx +4 -4
- package/app/filesystem/ui/SourcesPanel.tsx +420 -360
- package/app/filesystem/ui/Toolbar.tsx +1 -2
- package/app/shared/filesystem.png +0 -0
- package/dist/app/host.js +53 -48
- package/dist/scripts/sourceRootPairV1.d.ts +47 -0
- package/dist/scripts/sourceRootPairV1.d.ts.map +1 -0
- package/dist/scripts/sourceRootPairV1.js +147 -0
- package/dist/scripts/sourceRootPairV1.js.map +1 -0
- package/dist/scripts/sourceToFolderV1.d.ts +56 -0
- package/dist/scripts/sourceToFolderV1.d.ts.map +1 -0
- package/dist/scripts/sourceToFolderV1.js +152 -0
- package/dist/scripts/sourceToFolderV1.js.map +1 -0
- package/dist/scripts/sourceToHostV1.d.ts +56 -0
- package/dist/scripts/sourceToHostV1.d.ts.map +1 -0
- package/dist/scripts/sourceToHostV1.js +132 -0
- package/dist/scripts/sourceToHostV1.js.map +1 -0
- package/dist/src/config/env.d.ts +8 -0
- package/dist/src/config/env.d.ts.map +1 -1
- package/dist/src/config/env.js +17 -6
- package/dist/src/config/env.js.map +1 -1
- package/dist/src/connectors/AppSourceConfigStore.d.ts +17 -3
- package/dist/src/connectors/AppSourceConfigStore.d.ts.map +1 -1
- package/dist/src/connectors/AppSourceConfigStore.js +46 -6
- package/dist/src/connectors/AppSourceConfigStore.js.map +1 -1
- package/dist/src/connectors/HostConnector.d.ts +201 -0
- package/dist/src/connectors/HostConnector.d.ts.map +1 -0
- package/dist/src/connectors/HostConnector.js +903 -0
- package/dist/src/connectors/HostConnector.js.map +1 -0
- package/dist/src/connectors/inProcessTransport.d.ts +131 -0
- package/dist/src/connectors/inProcessTransport.d.ts.map +1 -0
- package/dist/src/connectors/inProcessTransport.js +447 -0
- package/dist/src/connectors/inProcessTransport.js.map +1 -0
- package/dist/src/domain/BrainError.d.ts +14 -0
- package/dist/src/domain/BrainError.d.ts.map +1 -1
- package/dist/src/domain/BrainError.js +21 -0
- package/dist/src/domain/BrainError.js.map +1 -1
- package/dist/src/domain/access/callerPermissions.d.ts +29 -0
- package/dist/src/domain/access/callerPermissions.d.ts.map +1 -1
- package/dist/src/domain/access/callerPermissions.js +85 -5
- package/dist/src/domain/access/callerPermissions.js.map +1 -1
- package/dist/src/domain/access/nativeLocalFence.d.ts +65 -0
- package/dist/src/domain/access/nativeLocalFence.d.ts.map +1 -0
- package/dist/src/domain/access/nativeLocalFence.js +171 -0
- package/dist/src/domain/access/nativeLocalFence.js.map +1 -0
- package/dist/src/domain/access/uriPermission.js +3 -3
- package/dist/src/domain/access/uriPermission.js.map +1 -1
- package/dist/src/domain/byteRange.d.ts +15 -0
- package/dist/src/domain/byteRange.d.ts.map +1 -0
- package/dist/src/domain/byteRange.js +30 -0
- package/dist/src/domain/byteRange.js.map +1 -0
- package/dist/src/domain/defaultPermissions.d.ts.map +1 -1
- package/dist/src/domain/defaultPermissions.js +29 -0
- package/dist/src/domain/defaultPermissions.js.map +1 -1
- package/dist/src/domain/mime.d.ts +8 -16
- package/dist/src/domain/mime.d.ts.map +1 -1
- package/dist/src/domain/mime.js +10 -99
- package/dist/src/domain/mime.js.map +1 -1
- package/dist/src/domain/paths.d.ts.map +1 -1
- package/dist/src/domain/paths.js +5 -3
- package/dist/src/domain/paths.js.map +1 -1
- package/dist/src/domain/sourceConfig.d.ts +52 -19
- package/dist/src/domain/sourceConfig.d.ts.map +1 -1
- package/dist/src/domain/sourceConfig.js +103 -19
- package/dist/src/domain/sourceConfig.js.map +1 -1
- package/dist/src/domain/sourcePackages.d.ts +8 -8
- package/dist/src/domain/sourcePackages.d.ts.map +1 -1
- package/dist/src/domain/sourceRootPair.d.ts +88 -0
- package/dist/src/domain/sourceRootPair.d.ts.map +1 -0
- package/dist/src/domain/sourceRootPair.js +108 -0
- package/dist/src/domain/sourceRootPair.js.map +1 -0
- package/dist/src/domain/syncTypes.d.ts +8 -1
- package/dist/src/domain/syncTypes.d.ts.map +1 -1
- package/dist/src/domain/syncTypes.js +1 -0
- package/dist/src/domain/syncTypes.js.map +1 -1
- package/dist/src/domain/types.d.ts +29 -1
- package/dist/src/domain/types.d.ts.map +1 -1
- package/dist/src/domain/uri.d.ts.map +1 -1
- package/dist/src/domain/uri.js +3 -2
- package/dist/src/domain/uri.js.map +1 -1
- package/dist/src/embeddings/clients/GeminiEmbedder.d.ts.map +1 -1
- package/dist/src/embeddings/clients/GeminiEmbedder.js +2 -5
- package/dist/src/embeddings/clients/GeminiEmbedder.js.map +1 -1
- package/dist/src/embeddings/clients/OpenAIEmbedder.d.ts.map +1 -1
- package/dist/src/embeddings/clients/OpenAIEmbedder.js +2 -3
- package/dist/src/embeddings/clients/OpenAIEmbedder.js.map +1 -1
- package/dist/src/embeddings/clients/QwenEmbedder.d.ts +2 -0
- package/dist/src/embeddings/clients/QwenEmbedder.d.ts.map +1 -1
- package/dist/src/embeddings/clients/QwenEmbedder.js +10 -2
- package/dist/src/embeddings/clients/QwenEmbedder.js.map +1 -1
- package/dist/src/embeddings/clients/VoyageEmbedder.d.ts +2 -0
- package/dist/src/embeddings/clients/VoyageEmbedder.d.ts.map +1 -1
- package/dist/src/embeddings/clients/VoyageEmbedder.js +8 -1
- package/dist/src/embeddings/clients/VoyageEmbedder.js.map +1 -1
- package/dist/src/embeddings/factory.d.ts +5 -3
- package/dist/src/embeddings/factory.d.ts.map +1 -1
- package/dist/src/embeddings/factory.js +7 -3
- package/dist/src/embeddings/factory.js.map +1 -1
- package/dist/src/embeddings/models.d.ts +2 -3
- package/dist/src/embeddings/models.d.ts.map +1 -1
- package/dist/src/embeddings/models.js +1 -2
- package/dist/src/embeddings/models.js.map +1 -1
- package/dist/src/embeddings/retry.js +1 -1
- package/dist/src/embeddings/retry.js.map +1 -1
- package/dist/src/embeddings/types.d.ts +6 -0
- package/dist/src/embeddings/types.d.ts.map +1 -1
- package/dist/src/embeddings/types.js +11 -0
- package/dist/src/embeddings/types.js.map +1 -1
- package/dist/src/git/GitRunner.d.ts +110 -30
- package/dist/src/git/GitRunner.d.ts.map +1 -1
- package/dist/src/git/GitRunner.js +511 -199
- package/dist/src/git/GitRunner.js.map +1 -1
- package/dist/src/git/GitWatchRegistry.d.ts +41 -35
- package/dist/src/git/GitWatchRegistry.d.ts.map +1 -1
- package/dist/src/git/GitWatchRegistry.js +61 -79
- package/dist/src/git/GitWatchRegistry.js.map +1 -1
- package/dist/src/git/gitPlace.d.ts +61 -0
- package/dist/src/git/gitPlace.d.ts.map +1 -0
- package/dist/src/git/gitPlace.js +74 -0
- package/dist/src/git/gitPlace.js.map +1 -0
- package/dist/src/git/sourceGitControl.d.ts +31 -19
- package/dist/src/git/sourceGitControl.d.ts.map +1 -1
- package/dist/src/git/sourceGitControl.js +208 -92
- package/dist/src/git/sourceGitControl.js.map +1 -1
- package/dist/src/git/sourceGitStatus.js +1 -1
- package/dist/src/git/sourceGitStatus.js.map +1 -1
- package/dist/src/git/untrackedStats.js +1 -1
- package/dist/src/git/untrackedStats.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/lifecycle.d.ts +12 -16
- package/dist/src/lifecycle.d.ts.map +1 -1
- package/dist/src/lifecycle.js +2 -1
- package/dist/src/lifecycle.js.map +1 -1
- package/dist/src/routes/approve.d.ts.map +1 -1
- package/dist/src/routes/approve.js +3 -3
- package/dist/src/routes/approve.js.map +1 -1
- package/dist/src/routes/git.d.ts.map +1 -1
- package/dist/src/routes/git.js +183 -54
- package/dist/src/routes/git.js.map +1 -1
- package/dist/src/routes/health.d.ts.map +1 -1
- package/dist/src/routes/health.js +8 -5
- package/dist/src/routes/health.js.map +1 -1
- package/dist/src/routes/helpers/uriGuard.d.ts +1 -1
- package/dist/src/routes/helpers/uriGuard.d.ts.map +1 -1
- package/dist/src/routes/helpers/uriGuard.js +3 -2
- package/dist/src/routes/helpers/uriGuard.js.map +1 -1
- package/dist/src/routes/helpers.d.ts +20 -4
- package/dist/src/routes/helpers.d.ts.map +1 -1
- package/dist/src/routes/helpers.js +38 -5
- package/dist/src/routes/helpers.js.map +1 -1
- package/dist/src/routes/list.d.ts.map +1 -1
- package/dist/src/routes/list.js +5 -6
- package/dist/src/routes/list.js.map +1 -1
- package/dist/src/routes/pending.d.ts.map +1 -1
- package/dist/src/routes/pending.js +5 -5
- package/dist/src/routes/pending.js.map +1 -1
- package/dist/src/routes/policies.d.ts +6 -4
- package/dist/src/routes/policies.d.ts.map +1 -1
- package/dist/src/routes/policies.js +22 -16
- package/dist/src/routes/policies.js.map +1 -1
- package/dist/src/routes/raw.d.ts.map +1 -1
- package/dist/src/routes/raw.js +68 -14
- package/dist/src/routes/raw.js.map +1 -1
- package/dist/src/routes/read.d.ts.map +1 -1
- package/dist/src/routes/read.js +3 -3
- package/dist/src/routes/read.js.map +1 -1
- package/dist/src/routes/search.d.ts.map +1 -1
- package/dist/src/routes/search.js +3 -3
- package/dist/src/routes/search.js.map +1 -1
- package/dist/src/routes/sources.d.ts +60 -18
- package/dist/src/routes/sources.d.ts.map +1 -1
- package/dist/src/routes/sources.js +420 -308
- package/dist/src/routes/sources.js.map +1 -1
- package/dist/src/routes/upload.d.ts.map +1 -1
- package/dist/src/routes/upload.js +3 -3
- package/dist/src/routes/upload.js.map +1 -1
- package/dist/src/services/BridgeService.d.ts +15 -35
- package/dist/src/services/BridgeService.d.ts.map +1 -1
- package/dist/src/services/BridgeService.js +30 -88
- package/dist/src/services/BridgeService.js.map +1 -1
- package/dist/src/services/FilesystemService.d.ts +3 -2
- package/dist/src/services/FilesystemService.d.ts.map +1 -1
- package/dist/src/services/FilesystemService.js +116 -32
- package/dist/src/services/FilesystemService.js.map +1 -1
- package/dist/src/services/FilesystemUiService.d.ts +4 -1
- package/dist/src/services/FilesystemUiService.d.ts.map +1 -1
- package/dist/src/services/FilesystemUiService.js +71 -27
- package/dist/src/services/FilesystemUiService.js.map +1 -1
- package/dist/src/services/SyncScheduler.d.ts +12 -4
- package/dist/src/services/SyncScheduler.d.ts.map +1 -1
- package/dist/src/services/SyncScheduler.js +45 -10
- package/dist/src/services/SyncScheduler.js.map +1 -1
- package/dist/src/services/baselineRepair.d.ts +13 -3
- package/dist/src/services/baselineRepair.d.ts.map +1 -1
- package/dist/src/services/baselineRepair.js +13 -3
- package/dist/src/services/baselineRepair.js.map +1 -1
- package/dist/src/services/declaredSources.d.ts +125 -42
- package/dist/src/services/declaredSources.d.ts.map +1 -1
- package/dist/src/services/declaredSources.js +117 -45
- package/dist/src/services/declaredSources.js.map +1 -1
- package/dist/src/store/dataFormats.d.ts +17 -2
- package/dist/src/store/dataFormats.d.ts.map +1 -1
- package/dist/src/store/dataFormats.js +18 -3
- package/dist/src/store/dataFormats.js.map +1 -1
- package/dist/src/sync/DeltaSyncRunner.d.ts.map +1 -1
- package/dist/src/sync/DeltaSyncRunner.js +144 -4
- package/dist/src/sync/DeltaSyncRunner.js.map +1 -1
- package/dist/src/sync/SyncJobQueue.d.ts +14 -2
- package/dist/src/sync/SyncJobQueue.d.ts.map +1 -1
- package/dist/src/sync/SyncJobQueue.js +56 -10
- package/dist/src/sync/SyncJobQueue.js.map +1 -1
- package/dist/src/sync/SyncWatchService.d.ts +21 -4
- package/dist/src/sync/SyncWatchService.d.ts.map +1 -1
- package/dist/src/sync/SyncWatchService.js +115 -10
- package/dist/src/sync/SyncWatchService.js.map +1 -1
- package/dist/src/sync/categoryInference.d.ts +1 -1
- package/dist/src/sync/categoryInference.js +1 -1
- package/dist/src/tools/execCtx.d.ts +6 -0
- package/dist/src/tools/execCtx.d.ts.map +1 -1
- package/dist/src/tools/execCtx.js +11 -0
- package/dist/src/tools/execCtx.js.map +1 -1
- package/dist/src/tools/fs_list.js +2 -2
- package/dist/src/tools/fs_list.js.map +1 -1
- package/dist/src/tools/fs_read.js +2 -2
- package/dist/src/tools/fs_read.js.map +1 -1
- package/dist/src/tools/fs_search.js +2 -2
- package/dist/src/tools/fs_search.js.map +1 -1
- package/dist/src/tools/fs_write.js +2 -2
- package/dist/src/tools/fs_write.js.map +1 -1
- package/dist/src/usecases/admitSourceRoot.d.ts +65 -0
- package/dist/src/usecases/admitSourceRoot.d.ts.map +1 -0
- package/dist/src/usecases/admitSourceRoot.js +85 -0
- package/dist/src/usecases/admitSourceRoot.js.map +1 -0
- package/dist/src/usecases/browseSourceFolders.d.ts +85 -0
- package/dist/src/usecases/browseSourceFolders.d.ts.map +1 -0
- package/dist/src/usecases/browseSourceFolders.js +210 -0
- package/dist/src/usecases/browseSourceFolders.js.map +1 -0
- package/dist/src/usecases/createDeclaredSources.d.ts +13 -2
- package/dist/src/usecases/createDeclaredSources.d.ts.map +1 -1
- package/dist/src/usecases/createDeclaredSources.js +39 -0
- package/dist/src/usecases/createDeclaredSources.js.map +1 -1
- package/dist/src/usecases/deprovisionProject.d.ts +4 -5
- package/dist/src/usecases/deprovisionProject.d.ts.map +1 -1
- package/dist/src/usecases/deprovisionProject.js +3 -8
- package/dist/src/usecases/deprovisionProject.js.map +1 -1
- package/dist/src/usecases/list.d.ts.map +1 -1
- package/dist/src/usecases/list.js +83 -26
- package/dist/src/usecases/list.js.map +1 -1
- package/dist/src/usecases/listAttachableDevices.d.ts +13 -0
- package/dist/src/usecases/listAttachableDevices.d.ts.map +1 -0
- package/dist/src/usecases/listAttachableDevices.js +10 -0
- package/dist/src/usecases/listAttachableDevices.js.map +1 -0
- package/dist/src/usecases/listSourcePackages.d.ts.map +1 -1
- package/dist/src/usecases/listSourcePackages.js +95 -79
- package/dist/src/usecases/listSourcePackages.js.map +1 -1
- package/dist/src/usecases/purgeExcludedPoints.d.ts.map +1 -1
- package/dist/src/usecases/purgeExcludedPoints.js +3 -2
- package/dist/src/usecases/purgeExcludedPoints.js.map +1 -1
- package/dist/src/usecases/readFiles.d.ts.map +1 -1
- package/dist/src/usecases/readFiles.js +17 -1
- package/dist/src/usecases/readFiles.js.map +1 -1
- package/dist/src/usecases/reconcileSourcePackageRoots.d.ts +1 -1
- package/dist/src/usecases/reconcileSourcePackageRoots.d.ts.map +1 -1
- package/dist/src/usecases/reconcileSourcePackageRoots.js +2 -1
- package/dist/src/usecases/reconcileSourcePackageRoots.js.map +1 -1
- package/dist/src/usecases/revokePrincipal.d.ts +7 -5
- package/dist/src/usecases/revokePrincipal.d.ts.map +1 -1
- package/dist/src/usecases/revokePrincipal.js +29 -7
- package/dist/src/usecases/revokePrincipal.js.map +1 -1
- package/dist/src/usecases/scheduleSourceSync.d.ts +7 -0
- package/dist/src/usecases/scheduleSourceSync.d.ts.map +1 -1
- package/dist/src/usecases/scheduleSourceSync.js +6 -5
- package/dist/src/usecases/scheduleSourceSync.js.map +1 -1
- package/dist/src/usecases/searchFiles.d.ts.map +1 -1
- package/dist/src/usecases/searchFiles.js +13 -3
- package/dist/src/usecases/searchFiles.js.map +1 -1
- package/dist/src/usecases/sourcePackageInventory.d.ts +10 -2
- package/dist/src/usecases/sourcePackageInventory.d.ts.map +1 -1
- package/dist/src/usecases/sourcePackageInventory.js +24 -7
- package/dist/src/usecases/sourcePackageInventory.js.map +1 -1
- package/dist/src/usecases/triggerSourceSync.d.ts +46 -0
- package/dist/src/usecases/triggerSourceSync.d.ts.map +1 -0
- package/dist/src/usecases/triggerSourceSync.js +75 -0
- package/dist/src/usecases/triggerSourceSync.js.map +1 -0
- package/dist/src/usecases/uploadBinary.d.ts +2 -1
- package/dist/src/usecases/uploadBinary.d.ts.map +1 -1
- package/dist/src/usecases/uploadBinary.js +2 -2
- package/dist/src/usecases/uploadBinary.js.map +1 -1
- package/dist/src/usecases/vector/endpointGuard.d.ts +1 -1
- package/dist/src/usecases/vector/endpointGuard.js +1 -1
- package/dist/src/usecases/vectorActivityWatch.d.ts +20 -13
- package/dist/src/usecases/vectorActivityWatch.d.ts.map +1 -1
- package/dist/src/usecases/vectorActivityWatch.js +61 -36
- package/dist/src/usecases/vectorActivityWatch.js.map +1 -1
- package/dist/src/usecases/vectorMaintenance.d.ts.map +1 -1
- package/dist/src/usecases/vectorMaintenance.js +16 -1
- package/dist/src/usecases/vectorMaintenance.js.map +1 -1
- package/dist/src/usecases/write/index.d.ts.map +1 -1
- package/dist/src/usecases/write/index.js +17 -2
- package/dist/src/usecases/write/index.js.map +1 -1
- package/dist/src/usecases/write/occupancy.d.ts +5 -1
- package/dist/src/usecases/write/occupancy.d.ts.map +1 -1
- package/dist/src/usecases/write/occupancy.js +13 -4
- package/dist/src/usecases/write/occupancy.js.map +1 -1
- package/dist/src/usecases/write/structure.d.ts.map +1 -1
- package/dist/src/usecases/write/structure.js +20 -5
- package/dist/src/usecases/write/structure.js.map +1 -1
- package/dist/src/vector/FilesystemVectorIndex.d.ts +72 -2
- package/dist/src/vector/FilesystemVectorIndex.d.ts.map +1 -1
- package/dist/src/vector/FilesystemVectorIndex.js +211 -27
- package/dist/src/vector/FilesystemVectorIndex.js.map +1 -1
- package/dist/src/vector/InMemoryVectorIndex.d.ts.map +1 -1
- package/dist/src/vector/InMemoryVectorIndex.js +55 -7
- package/dist/src/vector/InMemoryVectorIndex.js.map +1 -1
- package/dist/src/vector/qdrantClient.d.ts +18 -1
- package/dist/src/vector/qdrantClient.d.ts.map +1 -1
- package/dist/src/vector/qdrantClient.js +48 -6
- package/dist/src/vector/qdrantClient.js.map +1 -1
- package/dist/src/wiring.d.ts +10 -12
- package/dist/src/wiring.d.ts.map +1 -1
- package/dist/src/wiring.js +101 -61
- package/dist/src/wiring.js.map +1 -1
- package/package.json +166 -54
- package/skills/connect-business-data/SKILL.md +2 -2
- package/skills/create-package/SKILL.md +18 -18
- package/skills/create-package/references/config-and-credentials.md +16 -13
- package/skills/create-package/references/connectors-and-uri-policies.md +36 -27
- package/skills/create-package/references/manifest-and-discovery.md +12 -12
- package/skills/create-package/references/runtime-and-build.md +18 -18
- package/skills/create-package/references/skills-and-context.md +35 -19
- package/skills/create-package/references/surfaces-and-design.md +16 -16
- package/skills/create-package/references/team-and-workflows.md +2 -2
- package/skills/create-package/references/test-and-ship.md +17 -17
- package/skills/create-package/references/tools-and-schemas.md +5 -5
- package/skills/create-package/scripts/{check-package.sh → check-package.mjs} +78 -64
- package/skills/create-package/scripts/{verify-loaded.sh → verify-loaded.mjs} +156 -162
- package/skills/git/SKILL.md +31 -29
- package/skills/manage-files/SKILL.md +11 -14
- package/skills/manage-sources/SKILL.md +85 -45
- package/skills/manage-uri-policy/SKILL.md +9 -6
- package/skills/sync/SKILL.md +2 -2
- package/dist/src/connectors/LocalDiskConnector.d.ts +0 -171
- package/dist/src/connectors/LocalDiskConnector.d.ts.map +0 -1
- package/dist/src/connectors/LocalDiskConnector.js +0 -1233
- package/dist/src/connectors/LocalDiskConnector.js.map +0 -1
- package/skills/manage-files/scripts/copy.sh +0 -7
- package/skills/manage-files/scripts/create.sh +0 -7
- package/skills/manage-files/scripts/mkdir.sh +0 -7
- package/skills/manage-files/scripts/modify.sh +0 -7
- package/skills/manage-files/scripts/upload.sh +0 -16
- package/skills/manage-files/scripts/write.sh +0 -29
- package/skills/manage-sources/scripts/reembed.sh +0 -23
|
@@ -135,6 +135,30 @@ export class DeltaSyncRunner {
|
|
|
135
135
|
}
|
|
136
136
|
return filters;
|
|
137
137
|
}
|
|
138
|
+
/** One probe; a connector without `probeConnection` (runtime-gated kinds) answers reachable. */
|
|
139
|
+
async #rootUnreachable(connector) {
|
|
140
|
+
if (!connector.probeConnection)
|
|
141
|
+
return false;
|
|
142
|
+
try {
|
|
143
|
+
return (await connector.probeConnection()).connected === false;
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* A refused pass: nothing scanned past the guard, nothing written. The code
|
|
151
|
+
* is the whole message, so no path or probe detail reaches the persisted
|
|
152
|
+
* `lastSyncResult.error` a member reads (security invariant 9).
|
|
153
|
+
*/
|
|
154
|
+
#refused(job, startedAt, code) {
|
|
155
|
+
this.#logger.warn('sync.runner.refused', { jobId: job.id, source: job.source, mode: job.mode, code });
|
|
156
|
+
return {
|
|
157
|
+
jobId: job.id, source: job.source, ok: false,
|
|
158
|
+
filesAdded: 0, filesUpdated: 0, filesRemoved: 0, filesSkipped: 0, filesMoved: 0,
|
|
159
|
+
chunksEmbedded: 0, chunksSkipped: 0, durationMs: Date.now() - startedAt, error: code,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
138
162
|
async run(job) {
|
|
139
163
|
const startedAt = Date.now();
|
|
140
164
|
const normalizedJob = { ...job, source: normalizeSource(job.source) };
|
|
@@ -179,6 +203,12 @@ export class DeltaSyncRunner {
|
|
|
179
203
|
if (normalizedJob.mode === 'targeted') {
|
|
180
204
|
return await this.#runTargeted(normalizedJob, connector, startedAt, emitProgress);
|
|
181
205
|
}
|
|
206
|
+
// A root the connector cannot reach fails the job with a fixed code
|
|
207
|
+
// before any walk: an unreachable root walks as an EMPTY tree, and the
|
|
208
|
+
// tombstone pass below would read every indexed file as vanished.
|
|
209
|
+
if (await this.#rootUnreachable(connector)) {
|
|
210
|
+
return this.#refused(normalizedJob, startedAt, 'root_unreachable');
|
|
211
|
+
}
|
|
182
212
|
emitProgress({ phase: 'scanning', processed: 0, total: 0 });
|
|
183
213
|
// ONE walk answers both questions — "what changed since the cursor" and
|
|
184
214
|
// "what is on disk now" — as one `scanDelta` carrying `inventory` beside
|
|
@@ -233,6 +263,15 @@ export class DeltaSyncRunner {
|
|
|
233
263
|
// can it resurrect a floored one.
|
|
234
264
|
const shouldSyncUri = (uri) => isUriIndexableUnderFilters(uri, filters);
|
|
235
265
|
const knownUris = new Set(fullScan.files.map((f) => f.uri).filter((u) => shouldSyncUri(u)));
|
|
266
|
+
// A root that answers but holds nothing, while the index still holds
|
|
267
|
+
// files this pass would tombstone, is refused before any write unless a
|
|
268
|
+
// person confirmed it: an unmounted volume or a bind of a missing folder
|
|
269
|
+
// looks exactly like this. A truncated scan never reaches the tombstones.
|
|
270
|
+
if (!normalizedJob.confirmEmpty && knownUris.size === 0 && fullScan.truncated !== true
|
|
271
|
+
&& indexed.some((p) => typeof p.payload.uri === 'string' && shouldSyncUri(p.payload.uri)
|
|
272
|
+
&& p.payload.status !== 'deleted' && p.payload.category !== 'chunk')) {
|
|
273
|
+
return this.#refused(normalizedJob, startedAt, 'root_empty');
|
|
274
|
+
}
|
|
236
275
|
// PROJECTED points — only `INVENTORY_PAYLOAD_FIELDS` are populated. Every
|
|
237
276
|
// consumer below is a set/flag decision that those fields answer; nothing
|
|
238
277
|
// here may read a field the projection dropped.
|
|
@@ -294,7 +333,7 @@ export class DeltaSyncRunner {
|
|
|
294
333
|
const syncErrors = [];
|
|
295
334
|
const movedOldRefs = new Set();
|
|
296
335
|
emitProgress({ phase: 'processing', processed: 0, total: changed.length });
|
|
297
|
-
const syncConcurrency = Math.max(1, getBrainConfigNumber('brainSyncConcurrency',
|
|
336
|
+
const syncConcurrency = Math.max(1, getBrainConfigNumber('brainSyncConcurrency', undefined, DEFAULT_SYNC_CONCURRENCY));
|
|
298
337
|
const binarySniffChars = binarySniffCharsSetting();
|
|
299
338
|
const binaryUris = new Set();
|
|
300
339
|
let binarySkipped = 0;
|
|
@@ -631,7 +670,8 @@ export class DeltaSyncRunner {
|
|
|
631
670
|
/**
|
|
632
671
|
* Targeted reconcile: connector-walk-free. Changed URIs re-read + upsert
|
|
633
672
|
* (a read failure means the file vanished between event and run — it joins
|
|
634
|
-
* the tombstone set); deleted URIs tombstone
|
|
673
|
+
* the tombstone set); deleted URIs tombstone, and a deleted FOLDER tombstones
|
|
674
|
+
* what the index holds under it; an unlink+add pair inside the
|
|
635
675
|
* batch relocates the old point (`MoveClaims`). Reports NO
|
|
636
676
|
* absolute stats (`filesTotal` stays undefined → the queue keeps the last
|
|
637
677
|
* full snapshot) and NO checkpoint (no scan happened).
|
|
@@ -651,8 +691,31 @@ export class DeltaSyncRunner {
|
|
|
651
691
|
return false;
|
|
652
692
|
};
|
|
653
693
|
const changedUris = [...new Set(job.targetUris ?? [])].filter(shouldSyncUri).filter(notInFlight);
|
|
654
|
-
const
|
|
694
|
+
const reportedDeletes = [...new Set(job.deletedUris ?? [])];
|
|
695
|
+
const deletedUris = new Set(reportedDeletes.filter(shouldSyncUri).filter(notInFlight));
|
|
696
|
+
// Deletions reported while the root is unreachable (an unmount storm) are
|
|
697
|
+
// not evidence either: the batch fails with the full pass's fixed code —
|
|
698
|
+
// before a deleted folder is expanded into the files under it.
|
|
699
|
+
if (reportedDeletes.length > 0 && await this.#rootUnreachable(connector)) {
|
|
700
|
+
return this.#refused(job, startedAt, 'root_unreachable');
|
|
701
|
+
}
|
|
702
|
+
const underDeleted = await this.#pointsUnderDeletedFolders(job, connector, reportedDeletes);
|
|
703
|
+
const changedSet = new Set(changedUris);
|
|
704
|
+
for (const uri of underDeleted.recheck) {
|
|
705
|
+
if (changedSet.has(uri) || !shouldSyncUri(uri) || !notInFlight(uri))
|
|
706
|
+
continue;
|
|
707
|
+
changedSet.add(uri);
|
|
708
|
+
changedUris.push(uri);
|
|
709
|
+
}
|
|
655
710
|
const existingByUri = await this.#pointsByUris(job, [...changedUris, ...deletedUris]);
|
|
711
|
+
// A file re-reported under a deleted folder (re-created, moved back) is a
|
|
712
|
+
// target, never a tombstone.
|
|
713
|
+
for (const [uri, point] of underDeleted.gone) {
|
|
714
|
+
if (deletedUris.has(uri) || changedSet.has(uri) || !shouldSyncUri(uri) || !notInFlight(uri))
|
|
715
|
+
continue;
|
|
716
|
+
deletedUris.add(uri);
|
|
717
|
+
existingByUri.set(uri, point);
|
|
718
|
+
}
|
|
656
719
|
let filesAdded = 0;
|
|
657
720
|
let filesUpdated = 0;
|
|
658
721
|
let filesRemoved = 0;
|
|
@@ -684,7 +747,7 @@ export class DeltaSyncRunner {
|
|
|
684
747
|
// limiter the full pass uses. The per-file invariants are untouched —
|
|
685
748
|
// chunk-before-parent lives inside `#upsertFromSource`, per file — and the
|
|
686
749
|
// limiter stops pulling NEW work the moment the signal aborts.
|
|
687
|
-
const targetedConcurrency = Math.max(1, getBrainConfigNumber('brainSyncConcurrency',
|
|
750
|
+
const targetedConcurrency = Math.max(1, getBrainConfigNumber('brainSyncConcurrency', undefined, DEFAULT_SYNC_CONCURRENCY));
|
|
688
751
|
// Credential-use deny / embedding daily cap: the first typed stop error
|
|
689
752
|
// stops every not-yet-started task — a denied window would deny all of
|
|
690
753
|
// them identically. The job fails with the typed CREDENTIAL_USE_LIMITED marker;
|
|
@@ -843,6 +906,83 @@ export class DeltaSyncRunner {
|
|
|
843
906
|
});
|
|
844
907
|
return result;
|
|
845
908
|
}
|
|
909
|
+
/**
|
|
910
|
+
* A folder delete arrives as ONE event (a folder watcher keeps no file list;
|
|
911
|
+
* on macOS and Windows a delete's kind is unknown), so every reported delete
|
|
912
|
+
* is also read as a folder: ONE paged, projected scroll per batch over
|
|
913
|
+
* `folder_ancestors ∈ {reported deletes}` finds what the index holds under
|
|
914
|
+
* them. The REPORTED-delete list is bounded by the dirty cap (the tracker
|
|
915
|
+
* and the queue collapse to a full pass above it); the EXPANSION is bounded
|
|
916
|
+
* only by what the index holds under those folders, paged; the source root
|
|
917
|
+
* is never a prefix. A
|
|
918
|
+
* folder whose expansion is not empty is stat'ed once: gone (or a connector
|
|
919
|
+
* that cannot stat) ⇒ its files tombstone (projected rows: id, hash and
|
|
920
|
+
* status are all a tombstone and a move claim read); present again ⇒ its
|
|
921
|
+
* files are re-read as targets, so a folder that came back keeps every file
|
|
922
|
+
* still on disk.
|
|
923
|
+
*/
|
|
924
|
+
async #pointsUnderDeletedFolders(job, connector, reported) {
|
|
925
|
+
const gone = new Map();
|
|
926
|
+
const recheck = [];
|
|
927
|
+
const prefixes = reported.filter((uri) => uri !== `${job.source}://`);
|
|
928
|
+
if (prefixes.length === 0)
|
|
929
|
+
return { gone, recheck };
|
|
930
|
+
const byUri = new Map();
|
|
931
|
+
let cursor;
|
|
932
|
+
do {
|
|
933
|
+
const page = await this.#deps.vector.scroll({
|
|
934
|
+
payloadFields: INVENTORY_PAYLOAD_FIELDS,
|
|
935
|
+
filter: {
|
|
936
|
+
must: [
|
|
937
|
+
{ field: 'userId', equals: job.userId },
|
|
938
|
+
{ field: 'projectId', equals: job.projectId },
|
|
939
|
+
],
|
|
940
|
+
mustMatchAny: [{ field: 'folder_ancestors', values: prefixes }],
|
|
941
|
+
// Documents still live: a chunk follows its parent, a tombstone is done.
|
|
942
|
+
mustNot: [{ field: 'category', equals: 'chunk' }, { field: 'status', equals: 'deleted' }],
|
|
943
|
+
},
|
|
944
|
+
limit: SCROLL_BATCH,
|
|
945
|
+
...(cursor ? { cursor } : {}),
|
|
946
|
+
});
|
|
947
|
+
for (const point of page.points) {
|
|
948
|
+
if (point.payload.category === 'chunk')
|
|
949
|
+
continue;
|
|
950
|
+
const uri = typeof point.payload.uri === 'string' ? point.payload.uri : '';
|
|
951
|
+
if (uri)
|
|
952
|
+
byUri.set(uri, [...(byUri.get(uri) ?? []), point]);
|
|
953
|
+
}
|
|
954
|
+
cursor = page.nextCursor;
|
|
955
|
+
} while (cursor);
|
|
956
|
+
if (byUri.size === 0)
|
|
957
|
+
return { gone, recheck };
|
|
958
|
+
// Which reported deletes hold something — by each point's own ancestors,
|
|
959
|
+
// O(points × depth), never prefixes × points.
|
|
960
|
+
const prefixSet = new Set(prefixes);
|
|
961
|
+
const covering = new Map();
|
|
962
|
+
for (const uri of byUri.keys())
|
|
963
|
+
covering.set(uri, uriAncestors(uri).filter((a) => prefixSet.has(a)));
|
|
964
|
+
const present = new Set();
|
|
965
|
+
for (const prefix of new Set([...covering.values()].flat())) {
|
|
966
|
+
try {
|
|
967
|
+
if (connector.stat && await connector.stat(prefix) !== null)
|
|
968
|
+
present.add(prefix);
|
|
969
|
+
}
|
|
970
|
+
catch {
|
|
971
|
+
// Cannot prove the folder gone: re-read its files instead.
|
|
972
|
+
present.add(prefix);
|
|
973
|
+
}
|
|
974
|
+
}
|
|
975
|
+
for (const [uri, points] of byUri) {
|
|
976
|
+
if (covering.get(uri).some((prefix) => present.has(prefix))) {
|
|
977
|
+
recheck.push(uri);
|
|
978
|
+
continue;
|
|
979
|
+
}
|
|
980
|
+
const picked = pickUriNode(points);
|
|
981
|
+
if (picked)
|
|
982
|
+
gone.set(uri, picked);
|
|
983
|
+
}
|
|
984
|
+
return { gone, recheck };
|
|
985
|
+
}
|
|
846
986
|
#isInFlight(job, uri) {
|
|
847
987
|
return this.#deps.inFlightWrites?.isBusy(job.projectId, uri) === true;
|
|
848
988
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeltaSyncRunner.js","sourceRoot":"","sources":["../../../src/sync/DeltaSyncRunner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DeltaSyncRunner.js","sourceRoot":"","sources":["../../../src/sync/DeltaSyncRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,6 +69,12 @@ export type SyncEnqueueParams = {
|
|
|
69
69
|
* explicit folder re-embed must not silently become a whole-source one.
|
|
70
70
|
*/
|
|
71
71
|
force?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Full mode: the caller confirmed an empty source root (`SyncJob.confirmEmpty`).
|
|
74
|
+
* Sticky on merge and carried into a held rerun, so a confirmation that lands
|
|
75
|
+
* beside a running or pending full pass is never absorbed into an unconfirmed one.
|
|
76
|
+
*/
|
|
77
|
+
confirmEmpty?: boolean;
|
|
72
78
|
/** Embedding mode: catch up every writer's points (see `SyncJob.platform`); sticky on merge. */
|
|
73
79
|
platform?: true;
|
|
74
80
|
};
|
|
@@ -94,6 +100,11 @@ export type SyncQueuePort = {
|
|
|
94
100
|
/** All active + most-recent-finished jobs for a project. */
|
|
95
101
|
listJobs(projectId: string): SyncQueueJobSnapshot[];
|
|
96
102
|
};
|
|
103
|
+
/** The vector store's availability, as the queue reads it — the gate (a Qdrant install only). */
|
|
104
|
+
export type SyncVectorStorePort = {
|
|
105
|
+
readonly available: boolean;
|
|
106
|
+
onAvailable(listener: () => void): () => void;
|
|
107
|
+
};
|
|
97
108
|
export type SyncJobQueueDeps = {
|
|
98
109
|
/** Executes full/targeted jobs (the multi-project DeltaSyncRunner path). */
|
|
99
110
|
runSync: SyncRunnerPort['run'];
|
|
@@ -111,9 +122,10 @@ export type SyncJobQueueDeps = {
|
|
|
111
122
|
eventBus?: {
|
|
112
123
|
publish: (event: Record<string, unknown>) => void;
|
|
113
124
|
};
|
|
114
|
-
/** Maximum concurrently running jobs. Default:
|
|
125
|
+
/** Maximum concurrently running jobs. Default: the `brainSyncMaxConcurrent` key (2). */
|
|
115
126
|
maxConcurrent?: number;
|
|
116
|
-
|
|
127
|
+
/** While the store is unavailable no job starts; its opening is the wake (no timer). */
|
|
128
|
+
vectorStore?: SyncVectorStorePort;
|
|
117
129
|
};
|
|
118
130
|
export declare class SyncJobQueue implements SyncQueuePort {
|
|
119
131
|
#private;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncJobQueue.d.ts","sourceRoot":"","sources":["../../../src/sync/SyncJobQueue.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SyncJobQueue.d.ts","sourceRoot":"","sources":["../../../src/sync/SyncJobQueue.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,7 +83,10 @@ function mergeIntent(intent, params, cap) {
|
|
|
83
83
|
if (requested === 'full') {
|
|
84
84
|
// The explicit promotion. A full pass reads no URI set, so carrying one
|
|
85
85
|
// would only be a set nothing consumes.
|
|
86
|
-
return {
|
|
86
|
+
return {
|
|
87
|
+
mode: 'full', uris: new Map(), capExceeded: intent.capExceeded, force,
|
|
88
|
+
...(intent.confirmEmpty || params.confirmEmpty === true ? { confirmEmpty: true } : {}),
|
|
89
|
+
};
|
|
87
90
|
}
|
|
88
91
|
if (intent.mode === 'full') {
|
|
89
92
|
intent.force = force;
|
|
@@ -114,8 +117,12 @@ function intentFromParams(params, cap) {
|
|
|
114
117
|
}
|
|
115
118
|
return { mode, uris, capExceeded: false, force: false, ...(params.platform ? { platform: true } : {}) };
|
|
116
119
|
}
|
|
117
|
-
if (mode !== 'targeted')
|
|
118
|
-
return {
|
|
120
|
+
if (mode !== 'targeted') {
|
|
121
|
+
return {
|
|
122
|
+
mode, uris: new Map(), capExceeded: false, force,
|
|
123
|
+
...(mode === 'full' && params.confirmEmpty === true ? { confirmEmpty: true } : {}),
|
|
124
|
+
};
|
|
125
|
+
}
|
|
119
126
|
return mergeIntent({ mode: 'targeted', uris: new Map(), capExceeded: false, force }, params, cap);
|
|
120
127
|
}
|
|
121
128
|
/** Split an intent's URI map back into the two arrays `SyncJob` carries. */
|
|
@@ -166,27 +173,25 @@ export class SyncJobQueue {
|
|
|
166
173
|
#drainingProjects = new Set();
|
|
167
174
|
#tasks = new Map();
|
|
168
175
|
#yielded = new Map();
|
|
176
|
+
/** One `sync.queue.held` line per unavailable streak. */
|
|
177
|
+
#heldLogged = false;
|
|
169
178
|
constructor(deps) {
|
|
170
179
|
this.#deps = deps;
|
|
171
180
|
this.#logger = deps.logger?.child('sync-queue') ?? noopLogger;
|
|
181
|
+
deps.vectorStore?.onAvailable(() => { this.#heldLogged = false; this.#pump(); });
|
|
172
182
|
}
|
|
173
183
|
/**
|
|
174
184
|
* Queue-level running-job cap, read LIVE per pump (tunable-tanager Inc 4 —
|
|
175
185
|
* the queue is constructed at brain init(), BEFORE the ConfigProvider
|
|
176
186
|
* injection, so a construction-time read would never see the admin value).
|
|
177
187
|
* Precedence: deps.maxConcurrent (test injection) → `brainSyncMaxConcurrent`
|
|
178
|
-
* config →
|
|
179
|
-
* → 2. Floor 1. Distinct from `brainSyncConcurrency` (per-file fan-out
|
|
188
|
+
* config → 2. Floor 1. Distinct from `brainSyncConcurrency` (per-file fan-out
|
|
180
189
|
* INSIDE one job).
|
|
181
190
|
*/
|
|
182
191
|
#resolveMaxConcurrent() {
|
|
183
192
|
if (this.#deps.maxConcurrent !== undefined)
|
|
184
193
|
return Math.max(1, this.#deps.maxConcurrent);
|
|
185
|
-
|
|
186
|
-
const envMax = parseInt(this.#deps.env.BRAIN_SYNC_MAX_CONCURRENT || '', 10);
|
|
187
|
-
return Number.isFinite(envMax) && envMax > 0 ? envMax : 2;
|
|
188
|
-
}
|
|
189
|
-
return Math.max(1, getBrainConfigNumber('brainSyncMaxConcurrent', 'BRAIN_SYNC_MAX_CONCURRENT', 2));
|
|
194
|
+
return Math.max(1, getBrainConfigNumber('brainSyncMaxConcurrent', undefined, 2));
|
|
190
195
|
}
|
|
191
196
|
enqueue(params) {
|
|
192
197
|
if (this.#stopping || this.#collectionDraining || this.#drainingProjects.has(params.scope.projectId)) {
|
|
@@ -301,6 +306,7 @@ export class SyncJobQueue {
|
|
|
301
306
|
targetUris: intent.uris.size,
|
|
302
307
|
...(intent.capExceeded ? { cause: 'dirty_cap' } : {}),
|
|
303
308
|
...(intent.force ? { force: true } : {}),
|
|
309
|
+
...(intent.confirmEmpty ? { confirmEmpty: true } : {}),
|
|
304
310
|
userId: entry.scope.userId, projectId: entry.scope.projectId,
|
|
305
311
|
});
|
|
306
312
|
return entry;
|
|
@@ -443,6 +449,13 @@ export class SyncJobQueue {
|
|
|
443
449
|
#nextPending() {
|
|
444
450
|
if (this.#stopping || this.#collectionDraining)
|
|
445
451
|
return null;
|
|
452
|
+
if (this.#deps.vectorStore && !this.#deps.vectorStore.available) {
|
|
453
|
+
if (!this.#heldLogged && this.#active.size > 0) {
|
|
454
|
+
this.#heldLogged = true;
|
|
455
|
+
this.#logger.info('sync.queue.held', { reason: 'vector_store_unavailable', jobs: this.#active.size });
|
|
456
|
+
}
|
|
457
|
+
return null;
|
|
458
|
+
}
|
|
446
459
|
const groups = new Map();
|
|
447
460
|
for (const entry of this.#active.values()) {
|
|
448
461
|
if (entry.status !== 'pending' || entry.abort.signal.aborted)
|
|
@@ -515,6 +528,8 @@ export class SyncJobQueue {
|
|
|
515
528
|
: !result.ok ? 'failed'
|
|
516
529
|
: entry.intent.mode === 'embedding' && !result.embedding?.settled ? 'paused'
|
|
517
530
|
: 'completed';
|
|
531
|
+
if (!cancelled && !result.ok && this.#holdForVectorStore(entry))
|
|
532
|
+
return;
|
|
518
533
|
if (entry.intent.mode !== 'purge') {
|
|
519
534
|
await this.#writeCompletion(entry, result, status, runConfigHash);
|
|
520
535
|
}
|
|
@@ -523,12 +538,40 @@ export class SyncJobQueue {
|
|
|
523
538
|
catch (err) {
|
|
524
539
|
const message = err instanceof Error ? err.message : String(err);
|
|
525
540
|
const cancelled = entry.abort.signal.aborted;
|
|
541
|
+
if (!cancelled && this.#holdForVectorStore(entry))
|
|
542
|
+
return;
|
|
526
543
|
if (entry.intent.mode !== 'purge') {
|
|
527
544
|
await this.#writeCompletion(entry, null, cancelled ? 'cancelled' : 'failed', runConfigHash);
|
|
528
545
|
}
|
|
529
546
|
this.#finish(entry, null, cancelled ? 'cancelled' : 'failed', message);
|
|
530
547
|
}
|
|
531
548
|
}
|
|
549
|
+
/**
|
|
550
|
+
* A run that did not succeed while the vector store is unavailable is put
|
|
551
|
+
* BACK, never completed or failed: no bookkeeping (lastSync, checkpoint,
|
|
552
|
+
* lastConfigHash, status stay), the entry pending with its own intent plus
|
|
553
|
+
* anything that arrived while it ran. The gate's opening re-admits it.
|
|
554
|
+
*/
|
|
555
|
+
#holdForVectorStore(entry) {
|
|
556
|
+
if (!this.#deps.vectorStore || this.#deps.vectorStore.available)
|
|
557
|
+
return false;
|
|
558
|
+
const rerun = entry.rerun;
|
|
559
|
+
if (rerun) {
|
|
560
|
+
const { targetUris, deletedUris } = splitUris(rerun);
|
|
561
|
+
entry.intent = mergeIntent(entry.intent, {
|
|
562
|
+
scope: entry.scope, agentId: entry.agentId, source: entry.source, mode: rerun.mode,
|
|
563
|
+
...(targetUris.length ? { targetUris } : {}), ...(deletedUris.length ? { deletedUris } : {}),
|
|
564
|
+
...(rerun.force ? { force: true } : {}), ...(rerun.confirmEmpty ? { confirmEmpty: true } : {}),
|
|
565
|
+
}, resolveDirtyUriCap());
|
|
566
|
+
entry.rerun = undefined;
|
|
567
|
+
}
|
|
568
|
+
entry.status = 'pending';
|
|
569
|
+
delete entry.startedAt;
|
|
570
|
+
delete entry.progress;
|
|
571
|
+
delete entry.runFilterHash;
|
|
572
|
+
this.#logger.info('sync.queue.held', { jobId: entry.jobId, source: entry.source, mode: entry.intent.mode, reason: 'vector_store_unavailable' });
|
|
573
|
+
return true;
|
|
574
|
+
}
|
|
532
575
|
/**
|
|
533
576
|
* Build the SyncJob from a FRESH config read. Purge jobs run after the
|
|
534
577
|
* config was deleted, so they get a synthetic minimal job instead.
|
|
@@ -565,6 +608,7 @@ export class SyncJobQueue {
|
|
|
565
608
|
...(targetUris.length ? { targetUris } : {}),
|
|
566
609
|
...(deletedUris.length ? { deletedUris } : {}),
|
|
567
610
|
...(entry.intent.force ? { force: true } : {}),
|
|
611
|
+
...(entry.intent.confirmEmpty ? { confirmEmpty: true } : {}),
|
|
568
612
|
});
|
|
569
613
|
job.id = entry.jobId;
|
|
570
614
|
job.status = 'running';
|
|
@@ -736,6 +780,8 @@ export class SyncJobQueue {
|
|
|
736
780
|
...(deletedUris.length ? { deletedUris } : {}),
|
|
737
781
|
// …and an operator's forced re-embed stays forced.
|
|
738
782
|
...(rerun.force && entry.intent.mode !== 'purge' ? { force: true } : {}),
|
|
783
|
+
// …and so does a confirmed empty root.
|
|
784
|
+
...(rerun.confirmEmpty && entry.intent.mode !== 'purge' ? { confirmEmpty: true } : {}),
|
|
739
785
|
});
|
|
740
786
|
}
|
|
741
787
|
}
|