@neuralis/brain-core 0.1.0 → 0.2.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 +26 -35
- package/app/README.md +1 -1
- package/app/cards/DiffView.tsx +9 -7
- package/app/cards/README.md +1 -1
- package/app/cards/diffLine.tsx +2 -4
- package/app/filesystem/README.md +4 -4
- package/app/filesystem/api/README.md +3 -3
- package/app/filesystem/api/index.ts +137 -123
- package/app/filesystem/domain/types.ts +36 -5
- package/app/filesystem/hooks/README.md +5 -5
- package/app/filesystem/hooks/useDiscoverableSources.ts +4 -2
- package/app/filesystem/hooks/useFilesystemSSE.ts +31 -23
- package/app/filesystem/hooks/useGitChangesInventory.ts +4 -2
- package/app/filesystem/host/README.md +3 -2
- package/app/filesystem/host/installFilesystemHostComponents.tsx +22 -9
- package/app/filesystem/store/README.md +11 -7
- package/app/filesystem/store/filesystemStore.ts +454 -162
- package/app/filesystem/store/gitSlice.ts +6 -6
- package/app/filesystem/store/listSlice.ts +10 -6
- package/app/filesystem/store/searchSlice.ts +27 -4
- package/app/filesystem/ui/FileEditor.tsx +48 -35
- package/app/filesystem/ui/FileTree.tsx +10 -9
- package/app/filesystem/ui/FileTreeSearch.tsx +29 -2
- package/app/filesystem/ui/GitCommitChangesView.tsx +5 -3
- package/app/filesystem/ui/GitCommitGraph.tsx +6 -5
- package/app/filesystem/ui/GitControlPanel.tsx +14 -13
- package/app/filesystem/ui/GitDiffView.tsx +2 -1
- package/app/filesystem/ui/GitFileDiff.tsx +7 -6
- package/app/filesystem/ui/PendingChangesPanel.tsx +88 -28
- package/app/filesystem/ui/PendingReviewDialog.tsx +52 -24
- package/app/filesystem/ui/README.md +8 -7
- package/app/filesystem/ui/ReembedDialog.tsx +22 -9
- package/app/filesystem/ui/SourceDeleteConfirm.tsx +1 -1
- package/app/filesystem/ui/SourcesPanel.tsx +135 -42
- package/app/filesystem/ui/VectorHealthPanel.tsx +20 -4
- package/app/filesystem/ui/pendingChangesModel.ts +9 -5
- package/dist/app/chunks/{astro-LRAFGXNX.js → astro-B2J4AS2D.js} +1 -1
- package/dist/app/chunks/bash-KY6SAQTH.js +1 -0
- package/dist/app/chunks/c-OBOPYVZ7.js +1 -0
- package/dist/app/chunks/{chunk-5H7ZCOD3.js → chunk-2X3GNKJ3.js} +1 -1
- package/dist/app/chunks/{chunk-XIFGTNRM.js → chunk-JPJIVRFI.js} +1 -1
- package/dist/app/chunks/{chunk-RH3QY5LF.js → chunk-LEFIFWND.js} +1 -1
- package/dist/app/chunks/{chunk-G4RZ3UNX.js → chunk-N6RXX3PH.js} +1 -1
- package/dist/app/chunks/{chunk-QXXJ73P5.js → chunk-PZAW4HPB.js} +1 -1
- package/dist/app/chunks/{chunk-3QLE7Y4L.js → chunk-ZBYWWTO6.js} +1 -1
- package/dist/app/chunks/cpp-TVWVOTEQ.js +1 -0
- package/dist/app/chunks/css-MANZBYA4.js +1 -0
- package/dist/app/chunks/{elixir-M36XROA6.js → elixir-S725Z7EH.js} +1 -1
- package/dist/app/chunks/{elm-7BG6QAIK.js → elm-5WUUSTNB.js} +1 -1
- package/dist/app/chunks/graphql-UGOPR3WU.js +1 -0
- package/dist/app/chunks/html-F6FWTBSG.js +1 -0
- package/dist/app/chunks/java-ANIVV5H5.js +1 -0
- package/dist/app/chunks/javascript-IH374YWG.js +1 -0
- package/dist/app/chunks/json-WGGVVXSB.js +1 -0
- package/dist/app/chunks/jsx-OTXJQD32.js +1 -0
- package/dist/app/chunks/{latex-ZWK7SXB6.js → latex-QCZNITGN.js} +1 -1
- package/dist/app/chunks/lua-4CRZ64PU.js +1 -0
- package/dist/app/chunks/{nginx-2L6VRV3A.js → nginx-V4CYS7WR.js} +1 -1
- package/dist/app/chunks/{perl-PBUAXXK6.js → perl-BHTX7F5B.js} +1 -1
- package/dist/app/chunks/{php-QJX57PA6.js → php-AYGJ5WYZ.js} +1 -1
- package/dist/app/chunks/r-4YFCFA4B.js +1 -0
- package/dist/app/chunks/{ruby-RLOWMVPO.js → ruby-42NMJWAL.js} +1 -1
- package/dist/app/chunks/{scss-B5CAI3HR.js → scss-XD7VU2CU.js} +1 -1
- package/dist/app/chunks/sql-B55MH6JJ.js +1 -0
- package/dist/app/chunks/{svelte-GT3D4C44.js → svelte-WR3QPIJU.js} +1 -1
- package/dist/app/chunks/tsx-S73GAE2L.js +1 -0
- package/dist/app/chunks/typescript-NEWOAB5Z.js +1 -0
- package/dist/app/chunks/{vue-JOW62MHD.js → vue-CCDS4VZK.js} +1 -1
- package/dist/app/chunks/xml-UXKAGLDR.js +1 -0
- package/dist/app/chunks/yaml-UMWKDTK7.js +1 -0
- package/dist/app/host.js +46 -46
- package/dist/scripts/embeddingLockV3.d.ts +30 -0
- package/dist/scripts/embeddingLockV3.d.ts.map +1 -0
- package/dist/scripts/embeddingLockV3.js +100 -0
- package/dist/scripts/embeddingLockV3.js.map +1 -0
- package/dist/scripts/vectorProofV1.d.ts +90 -0
- package/dist/scripts/vectorProofV1.d.ts.map +1 -0
- package/dist/scripts/vectorProofV1.js +220 -0
- package/dist/scripts/vectorProofV1.js.map +1 -0
- package/dist/src/config/env.d.ts +21 -0
- package/dist/src/config/env.d.ts.map +1 -1
- package/dist/src/config/env.js +55 -0
- package/dist/src/config/env.js.map +1 -1
- package/dist/src/connectors/AppSourceConfigStore.d.ts +12 -2
- package/dist/src/connectors/AppSourceConfigStore.d.ts.map +1 -1
- package/dist/src/connectors/AppSourceConfigStore.js +48 -40
- package/dist/src/connectors/AppSourceConfigStore.js.map +1 -1
- package/dist/src/connectors/LocalDiskConnector.d.ts +11 -14
- package/dist/src/connectors/LocalDiskConnector.d.ts.map +1 -1
- package/dist/src/connectors/LocalDiskConnector.js +87 -107
- package/dist/src/connectors/LocalDiskConnector.js.map +1 -1
- package/dist/src/connectors/sourceConfigMutation.d.ts +11 -1
- package/dist/src/connectors/sourceConfigMutation.d.ts.map +1 -1
- package/dist/src/connectors/sourceConfigMutation.js +36 -3
- package/dist/src/connectors/sourceConfigMutation.js.map +1 -1
- package/dist/src/domain/chunker.js +8 -3
- package/dist/src/domain/chunker.js.map +1 -1
- package/dist/src/domain/healthTypes.d.ts +11 -0
- package/dist/src/domain/healthTypes.d.ts.map +1 -1
- package/dist/src/domain/mime.d.ts +1 -0
- package/dist/src/domain/mime.d.ts.map +1 -1
- package/dist/src/domain/mime.js +48 -0
- package/dist/src/domain/mime.js.map +1 -1
- package/dist/src/domain/pendingChange.d.ts +7 -0
- package/dist/src/domain/pendingChange.d.ts.map +1 -1
- package/dist/src/domain/pendingChange.js +11 -0
- package/dist/src/domain/pendingChange.js.map +1 -1
- package/dist/src/domain/sourceConfig.d.ts +7 -14
- package/dist/src/domain/sourceConfig.d.ts.map +1 -1
- package/dist/src/domain/sourceConfig.js +1 -13
- package/dist/src/domain/sourceConfig.js.map +1 -1
- package/dist/src/domain/sourcePackages.d.ts +11 -2
- package/dist/src/domain/sourcePackages.d.ts.map +1 -1
- package/dist/src/domain/syncTrigger.d.ts +2 -3
- package/dist/src/domain/syncTrigger.d.ts.map +1 -1
- package/dist/src/domain/syncTrigger.js +2 -3
- package/dist/src/domain/syncTrigger.js.map +1 -1
- package/dist/src/domain/syncTypes.d.ts +21 -4
- package/dist/src/domain/syncTypes.d.ts.map +1 -1
- package/dist/src/domain/syncTypes.js.map +1 -1
- package/dist/src/domain/text.d.ts +3 -0
- package/dist/src/domain/text.d.ts.map +1 -1
- package/dist/src/domain/text.js +5 -0
- package/dist/src/domain/text.js.map +1 -1
- package/dist/src/domain/types.d.ts +9 -0
- package/dist/src/domain/types.d.ts.map +1 -1
- package/dist/src/embeddings/clients/GeminiEmbedder.d.ts.map +1 -1
- package/dist/src/embeddings/clients/GeminiEmbedder.js +11 -5
- package/dist/src/embeddings/clients/GeminiEmbedder.js.map +1 -1
- package/dist/src/embeddings/clients/OllamaEmbedder.d.ts.map +1 -1
- package/dist/src/embeddings/clients/OllamaEmbedder.js +13 -6
- package/dist/src/embeddings/clients/OllamaEmbedder.js.map +1 -1
- package/dist/src/embeddings/clients/OpenAIEmbedder.d.ts.map +1 -1
- package/dist/src/embeddings/clients/OpenAIEmbedder.js +12 -9
- package/dist/src/embeddings/clients/OpenAIEmbedder.js.map +1 -1
- package/dist/src/embeddings/clients/QwenEmbedder.d.ts.map +1 -1
- package/dist/src/embeddings/clients/QwenEmbedder.js +12 -5
- package/dist/src/embeddings/clients/QwenEmbedder.js.map +1 -1
- package/dist/src/embeddings/clients/VoyageEmbedder.d.ts.map +1 -1
- package/dist/src/embeddings/clients/VoyageEmbedder.js +12 -5
- package/dist/src/embeddings/clients/VoyageEmbedder.js.map +1 -1
- package/dist/src/embeddings/factory.d.ts +2 -0
- package/dist/src/embeddings/factory.d.ts.map +1 -1
- package/dist/src/embeddings/factory.js +23 -3
- package/dist/src/embeddings/factory.js.map +1 -1
- package/dist/src/embeddings/lock.d.ts +22 -11
- package/dist/src/embeddings/lock.d.ts.map +1 -1
- package/dist/src/embeddings/lock.js +47 -29
- package/dist/src/embeddings/lock.js.map +1 -1
- package/dist/src/embeddings/retry.d.ts +5 -0
- package/dist/src/embeddings/retry.d.ts.map +1 -1
- package/dist/src/embeddings/retry.js +35 -0
- package/dist/src/embeddings/retry.js.map +1 -1
- package/dist/src/events/pending.d.ts +56 -0
- package/dist/src/events/pending.d.ts.map +1 -0
- package/dist/src/events/pending.js +108 -0
- package/dist/src/events/pending.js.map +1 -0
- package/dist/src/events/source.d.ts +60 -14
- package/dist/src/events/source.d.ts.map +1 -1
- package/dist/src/events/source.js +149 -31
- package/dist/src/events/source.js.map +1 -1
- package/dist/src/events/vector.d.ts +33 -0
- package/dist/src/events/vector.d.ts.map +1 -0
- package/dist/src/events/vector.js +57 -0
- package/dist/src/events/vector.js.map +1 -0
- package/dist/src/git/GitRunner.d.ts.map +1 -1
- package/dist/src/git/GitRunner.js +11 -8
- package/dist/src/git/GitRunner.js.map +1 -1
- package/dist/src/git/sourceGitControl.d.ts.map +1 -1
- package/dist/src/git/sourceGitControl.js +2 -1
- package/dist/src/git/sourceGitControl.js.map +1 -1
- package/dist/src/index.d.ts +5 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/lifecycle.d.ts +20 -4
- package/dist/src/lifecycle.d.ts.map +1 -1
- package/dist/src/lifecycle.js +5 -1
- package/dist/src/lifecycle.js.map +1 -1
- package/dist/src/routes/health.js +6 -1
- package/dist/src/routes/health.js.map +1 -1
- package/dist/src/routes/pending.d.ts.map +1 -1
- package/dist/src/routes/pending.js +2 -1
- package/dist/src/routes/pending.js.map +1 -1
- package/dist/src/routes/sources.d.ts.map +1 -1
- package/dist/src/routes/sources.js +60 -11
- package/dist/src/routes/sources.js.map +1 -1
- package/dist/src/services/BridgeService.d.ts +2 -2
- package/dist/src/services/BridgeService.d.ts.map +1 -1
- package/dist/src/services/BridgeService.js +11 -2
- package/dist/src/services/BridgeService.js.map +1 -1
- package/dist/src/services/FilesystemService.d.ts +3 -1
- package/dist/src/services/FilesystemService.d.ts.map +1 -1
- package/dist/src/services/FilesystemService.js +3 -1
- package/dist/src/services/FilesystemService.js.map +1 -1
- package/dist/src/services/FilesystemUiService.js +1 -1
- package/dist/src/services/FilesystemUiService.js.map +1 -1
- package/dist/src/services/SyncScheduler.d.ts.map +1 -1
- package/dist/src/services/SyncScheduler.js +0 -14
- package/dist/src/services/SyncScheduler.js.map +1 -1
- package/dist/src/services/VectorHealthService.d.ts.map +1 -1
- package/dist/src/services/VectorHealthService.js +2 -46
- package/dist/src/services/VectorHealthService.js.map +1 -1
- package/dist/src/services/baselineRepair.d.ts +2 -2
- package/dist/src/services/baselineRepair.js +2 -2
- package/dist/src/services/declaredSources.d.ts +8 -1
- package/dist/src/services/declaredSources.d.ts.map +1 -1
- package/dist/src/services/declaredSources.js +19 -19
- package/dist/src/services/declaredSources.js.map +1 -1
- package/dist/src/store/dataFormats.d.ts +14 -3
- package/dist/src/store/dataFormats.d.ts.map +1 -1
- package/dist/src/store/dataFormats.js +15 -5
- 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 +78 -243
- package/dist/src/sync/DeltaSyncRunner.js.map +1 -1
- package/dist/src/sync/SyncJobQueue.d.ts +33 -4
- package/dist/src/sync/SyncJobQueue.d.ts.map +1 -1
- package/dist/src/sync/SyncJobQueue.js +179 -19
- package/dist/src/sync/SyncJobQueue.js.map +1 -1
- package/dist/src/sync/moveDetector.d.ts +2 -1
- package/dist/src/sync/moveDetector.d.ts.map +1 -1
- package/dist/src/sync/moveDetector.js +2 -1
- package/dist/src/sync/moveDetector.js.map +1 -1
- package/dist/src/tools/fs_search.d.ts.map +1 -1
- package/dist/src/tools/fs_search.js +8 -0
- package/dist/src/tools/fs_search.js.map +1 -1
- package/dist/src/tools/fs_write.js +3 -1
- package/dist/src/tools/fs_write.js.map +1 -1
- package/dist/src/usecases/chunkUpsert.d.ts +4 -0
- package/dist/src/usecases/chunkUpsert.d.ts.map +1 -1
- package/dist/src/usecases/chunkUpsert.js +103 -60
- package/dist/src/usecases/chunkUpsert.js.map +1 -1
- package/dist/src/usecases/embeddingBacklog.d.ts +31 -0
- package/dist/src/usecases/embeddingBacklog.d.ts.map +1 -0
- package/dist/src/usecases/embeddingBacklog.js +244 -0
- package/dist/src/usecases/embeddingBacklog.js.map +1 -0
- package/dist/src/usecases/listSourcePackages.js +17 -1
- package/dist/src/usecases/listSourcePackages.js.map +1 -1
- package/dist/src/usecases/mediaLane.d.ts +11 -4
- package/dist/src/usecases/mediaLane.d.ts.map +1 -1
- package/dist/src/usecases/mediaLane.js +67 -30
- package/dist/src/usecases/mediaLane.js.map +1 -1
- package/dist/src/usecases/pendingReview.d.ts.map +1 -1
- package/dist/src/usecases/pendingReview.js +24 -7
- package/dist/src/usecases/pendingReview.js.map +1 -1
- package/dist/src/usecases/purgeExcludedPoints.d.ts +2 -0
- 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 +33 -6
- package/dist/src/usecases/readFiles.js.map +1 -1
- package/dist/src/usecases/reconcileSourcePackageRoots.d.ts +31 -0
- package/dist/src/usecases/reconcileSourcePackageRoots.d.ts.map +1 -0
- package/dist/src/usecases/reconcileSourcePackageRoots.js +114 -0
- package/dist/src/usecases/reconcileSourcePackageRoots.js.map +1 -0
- package/dist/src/usecases/searchFiles.d.ts.map +1 -1
- package/dist/src/usecases/searchFiles.js +62 -64
- package/dist/src/usecases/searchFiles.js.map +1 -1
- package/dist/src/usecases/syncIndexedFile.d.ts +42 -0
- package/dist/src/usecases/syncIndexedFile.d.ts.map +1 -0
- package/dist/src/usecases/syncIndexedFile.js +242 -0
- package/dist/src/usecases/syncIndexedFile.js.map +1 -0
- package/dist/src/usecases/syncPointWrites.d.ts +5 -0
- package/dist/src/usecases/syncPointWrites.d.ts.map +1 -1
- package/dist/src/usecases/syncPointWrites.js +32 -5
- package/dist/src/usecases/syncPointWrites.js.map +1 -1
- package/dist/src/usecases/uploadBinary.d.ts.map +1 -1
- package/dist/src/usecases/uploadBinary.js +36 -49
- package/dist/src/usecases/uploadBinary.js.map +1 -1
- package/dist/src/usecases/vector/endpointGuard.js +2 -1
- package/dist/src/usecases/vector/endpointGuard.js.map +1 -1
- package/dist/src/usecases/vector/estimate.d.ts +7 -4
- package/dist/src/usecases/vector/estimate.d.ts.map +1 -1
- package/dist/src/usecases/vector/estimate.js +8 -5
- package/dist/src/usecases/vector/estimate.js.map +1 -1
- package/dist/src/usecases/vector/rebuildGeneration.d.ts +29 -5
- package/dist/src/usecases/vector/rebuildGeneration.d.ts.map +1 -1
- package/dist/src/usecases/vector/rebuildGeneration.js +224 -82
- package/dist/src/usecases/vector/rebuildGeneration.js.map +1 -1
- package/dist/src/usecases/vectorMaintenance.d.ts +46 -4
- package/dist/src/usecases/vectorMaintenance.d.ts.map +1 -1
- package/dist/src/usecases/vectorMaintenance.js +190 -11
- package/dist/src/usecases/vectorMaintenance.js.map +1 -1
- package/dist/src/usecases/write/commit.d.ts +6 -8
- package/dist/src/usecases/write/commit.d.ts.map +1 -1
- package/dist/src/usecases/write/commit.js +96 -112
- package/dist/src/usecases/write/commit.js.map +1 -1
- package/dist/src/usecases/write/content.js +1 -2
- package/dist/src/usecases/write/content.js.map +1 -1
- package/dist/src/usecases/write/ports.d.ts +1 -0
- package/dist/src/usecases/write/ports.d.ts.map +1 -1
- package/dist/src/vector/FilesystemVectorIndex.d.ts +34 -3
- package/dist/src/vector/FilesystemVectorIndex.d.ts.map +1 -1
- package/dist/src/vector/FilesystemVectorIndex.js +254 -20
- package/dist/src/vector/FilesystemVectorIndex.js.map +1 -1
- package/dist/src/vector/InMemoryVectorIndex.d.ts +9 -2
- package/dist/src/vector/InMemoryVectorIndex.d.ts.map +1 -1
- package/dist/src/vector/InMemoryVectorIndex.js +25 -6
- package/dist/src/vector/InMemoryVectorIndex.js.map +1 -1
- package/dist/src/vector/QdrantVectorIndex.d.ts +35 -9
- package/dist/src/vector/QdrantVectorIndex.d.ts.map +1 -1
- package/dist/src/vector/QdrantVectorIndex.js +209 -90
- package/dist/src/vector/QdrantVectorIndex.js.map +1 -1
- package/dist/src/vector/qdrantFilter.d.ts +3 -1
- package/dist/src/vector/qdrantFilter.d.ts.map +1 -1
- package/dist/src/vector/qdrantFilter.js +2 -0
- package/dist/src/vector/qdrantFilter.js.map +1 -1
- package/dist/src/vector/types.d.ts +81 -0
- package/dist/src/vector/types.d.ts.map +1 -1
- package/dist/src/vector/types.js +2 -0
- package/dist/src/vector/types.js.map +1 -1
- package/dist/src/wiring.d.ts +6 -0
- package/dist/src/wiring.d.ts.map +1 -1
- package/dist/src/wiring.js +62 -3
- package/dist/src/wiring.js.map +1 -1
- package/dist/tools/fs_search.json +2 -2
- package/docs/drive-overview.md +2 -2
- package/instructions/brain-model.md +1 -1
- package/package.json +1000 -11
- package/rules/brain-rules.md +1 -1
- package/skills/connect-business-data/SKILL.md +6 -4
- package/skills/create-package/SKILL.md +14 -12
- package/skills/create-package/references/config-and-credentials.md +3 -3
- package/skills/create-package/references/connectors-and-uri-policies.md +5 -3
- package/skills/create-package/references/manifest-and-discovery.md +5 -4
- package/skills/create-package/references/runtime-and-build.md +9 -9
- package/skills/create-package/references/skills-and-context.md +3 -3
- package/skills/create-package/references/surfaces-and-design.md +9 -6
- package/skills/create-package/references/team-and-workflows.md +2 -2
- package/skills/create-package/references/test-and-ship.md +15 -15
- package/skills/create-package/references/tools-and-schemas.md +1 -1
- package/skills/create-package/scripts/check-package.sh +50 -4
- package/skills/create-package/scripts/verify-loaded.sh +16 -16
- package/skills/manage-files/SKILL.md +2 -2
- package/skills/manage-sources/SKILL.md +16 -15
- package/skills/manage-sources/scripts/reembed.sh +9 -3
- package/skills/sync/SKILL.md +4 -4
- package/tools/fs_search.json +2 -2
- package/app/filesystem/hooks/useContainerWidth.ts +0 -39
- package/dist/app/chunks/bash-M45GHPBQ.js +0 -1
- package/dist/app/chunks/c-X3REOAWD.js +0 -1
- package/dist/app/chunks/cpp-VOWI743W.js +0 -1
- package/dist/app/chunks/css-2ZVPHE25.js +0 -1
- package/dist/app/chunks/graphql-7V2NP54C.js +0 -1
- package/dist/app/chunks/html-UF3LFLNA.js +0 -1
- package/dist/app/chunks/java-PNTAU4L3.js +0 -1
- package/dist/app/chunks/javascript-4JJTQGEL.js +0 -1
- package/dist/app/chunks/json-VLQ6D3JH.js +0 -1
- package/dist/app/chunks/jsx-KQKSLAAH.js +0 -1
- package/dist/app/chunks/lua-UFPYUJ2O.js +0 -1
- package/dist/app/chunks/r-QEZB45SR.js +0 -1
- package/dist/app/chunks/sql-DTZHNUZP.js +0 -1
- package/dist/app/chunks/tsx-WPR2WRZD.js +0 -1
- package/dist/app/chunks/typescript-LWO362OA.js +0 -1
- package/dist/app/chunks/xml-A5H72RTS.js +0 -1
- package/dist/app/chunks/yaml-MXHSIJCI.js +0 -1
- package/dist/src/services/purgePendingNodes.d.ts +0 -32
- package/dist/src/services/purgePendingNodes.d.ts.map +0 -1
- package/dist/src/services/purgePendingNodes.js +0 -61
- package/dist/src/services/purgePendingNodes.js.map +0 -1
- /package/dist/app/chunks/{chunk-737Y24HS.js → chunk-3JASFUPF.js} +0 -0
- /package/dist/app/chunks/{chunk-DKD2L57N.js → chunk-6EYLOQ4F.js} +0 -0
- /package/dist/app/chunks/{chunk-KYH5EHHY.js → chunk-7YRZ5LOQ.js} +0 -0
- /package/dist/app/chunks/{chunk-6TC3DVWV.js → chunk-C7LU4RID.js} +0 -0
- /package/dist/app/chunks/{chunk-TY33BMKR.js → chunk-CD52YDZP.js} +0 -0
- /package/dist/app/chunks/{chunk-OLEIKJ3X.js → chunk-DCJKTCJ5.js} +0 -0
- /package/dist/app/chunks/{chunk-QLBZ4JR2.js → chunk-EXIU2KBV.js} +0 -0
- /package/dist/app/chunks/{chunk-SFUNBBEA.js → chunk-FDP4LO4P.js} +0 -0
- /package/dist/app/chunks/{chunk-BGRVFATT.js → chunk-HNETUS7U.js} +0 -0
- /package/dist/app/chunks/{chunk-4QNMHAIR.js → chunk-LBFZJEDR.js} +0 -0
- /package/dist/app/chunks/{chunk-TRRUHDPN.js → chunk-ULRXL5VM.js} +0 -0
- /package/dist/app/chunks/{chunk-S6B4WWIF.js → chunk-XJK47SMJ.js} +0 -0
- /package/dist/app/chunks/{chunk-DZ5C5FKI.js → chunk-YYAAIAU2.js} +0 -0
- /package/dist/app/chunks/{clojure-OC6KPSJO.js → clojure-4QCN4GHG.js} +0 -0
- /package/dist/app/chunks/{core-KGE7TQJ3.js → core-ZHTX3P2Q.js} +0 -0
- /package/dist/app/chunks/{csharp-E7VIFITL.js → csharp-HQWR4N52.js} +0 -0
- /package/dist/app/chunks/{dark-plus-BOSCZXE4.js → dark-plus-GYPKKZES.js} +0 -0
- /package/dist/app/chunks/{dart-6Y3X27SZ.js → dart-FO4TTVO2.js} +0 -0
- /package/dist/app/chunks/{diff-TR2NPA64.js → diff-SHANV4YC.js} +0 -0
- /package/dist/app/chunks/{dist-T32U2VVR.js → dist-WSDF34DM.js} +0 -0
- /package/dist/app/chunks/{docker-N33HOW54.js → docker-VX55HTDS.js} +0 -0
- /package/dist/app/chunks/{go-6DGG5UTP.js → go-5UCPEC6S.js} +0 -0
- /package/dist/app/chunks/{haskell-KK36PMMM.js → haskell-25PJ3OSG.js} +0 -0
- /package/dist/app/chunks/{ini-VHVQ5TPB.js → ini-BJIVD5MK.js} +0 -0
- /package/dist/app/chunks/{kotlin-44WS3JHE.js → kotlin-MNR6XOEQ.js} +0 -0
- /package/dist/app/chunks/{less-5WZ3KLAK.js → less-KA5JURX6.js} +0 -0
- /package/dist/app/chunks/{light-plus-HGGBC43G.js → light-plus-QXH2UUWZ.js} +0 -0
- /package/dist/app/chunks/{make-X7RXMVW7.js → make-LPD5KOCO.js} +0 -0
- /package/dist/app/chunks/{markdown-46IKUAIB.js → markdown-LMWF6MQR.js} +0 -0
- /package/dist/app/chunks/{mdx-DGLHDAO7.js → mdx-WPMNN5BS.js} +0 -0
- /package/dist/app/chunks/{nix-Q6FYQZLX.js → nix-QGWLUUMZ.js} +0 -0
- /package/dist/app/chunks/{powershell-L4KJJ6DK.js → powershell-7GSBBEFF.js} +0 -0
- /package/dist/app/chunks/{prisma-IKS4LVH2.js → prisma-FPMPQISO.js} +0 -0
- /package/dist/app/chunks/{proto-AYCDOTJO.js → proto-7KDX5Z2U.js} +0 -0
- /package/dist/app/chunks/{python-KXMCSAFQ.js → python-CFG4FTQW.js} +0 -0
- /package/dist/app/chunks/{rust-J3BC3P6V.js → rust-X7A37WU3.js} +0 -0
- /package/dist/app/chunks/{scala-AYIIHBJK.js → scala-OYHJSUG2.js} +0 -0
- /package/dist/app/chunks/{swift-QPHHCQD3.js → swift-PE7VNYW5.js} +0 -0
- /package/dist/app/chunks/{toml-UV7JK7K7.js → toml-ETQRDILP.js} +0 -0
|
@@ -20,11 +20,12 @@
|
|
|
20
20
|
* blocking `buildSharedInfra()` during brain-core init().
|
|
21
21
|
*/
|
|
22
22
|
import { resolveOperatorEndpointEgress } from '@neuralis/package-system/web-common';
|
|
23
|
-
import { resolveActiveEmbeddingConfig, resolveActiveEmbeddingShape, resolveEmbeddingConfigFor, resolveEmbeddingModel, getBrainConfigNumber, getBrainConfigProvider, getBrainConfigString, ActiveEmbeddingModelUnresolvableError, } from '../config/env.js';
|
|
23
|
+
import { resolveActiveEmbeddingConfig, requireEmbeddingEnabled, resolveActiveEmbeddingShape, resolveEmbeddingConfigFor, resolveEmbeddingModel, getBrainConfigNumber, getBrainConfigProvider, getBrainConfigString, ActiveEmbeddingModelUnresolvableError, EmbeddingDisabledError, EmbeddingMetadataOnlyError, EmbeddingCredentialMissingError, EmbeddingUnavailableError, } from '../config/env.js';
|
|
24
24
|
import { buildEmbedUsageGuard } from './usageGate.js';
|
|
25
25
|
import { embedModelMarker, embedRecipeOf, supportsEmbedInput, tagEmbedding } from './models.js';
|
|
26
26
|
import { peekActiveLock } from './lock.js';
|
|
27
|
-
import { CHARS_PER_TOKEN, estimateMediaTokens, estimateTokens, getEmbeddingUsageMeter } from './usage.js';
|
|
27
|
+
import { CHARS_PER_TOKEN, estimateMediaTokens, estimateTokens, getEmbeddingUsageMeter, isEmbeddingBudgetStopError } from './usage.js';
|
|
28
|
+
import { isProviderQuotaExhaustedError } from './providerQuota.js';
|
|
28
29
|
import { DeterministicEmbedder } from './clients/DeterministicEmbedder.js';
|
|
29
30
|
import { OllamaEmbedder } from './clients/OllamaEmbedder.js';
|
|
30
31
|
import { OPENAI_MAX_INPUT_CHARS, OpenAIEmbedder } from './clients/OpenAIEmbedder.js';
|
|
@@ -257,13 +258,31 @@ function activeBuildFingerprint() {
|
|
|
257
258
|
const provider = getBrainConfigProvider();
|
|
258
259
|
const lock = peekActiveLock();
|
|
259
260
|
return JSON.stringify([
|
|
260
|
-
lock ? `${lock.modelId}@${lock.dimension}#${lock.embedRecipe}` : [provider?.get('embeddingModelId'), provider?.get('embeddingDimension')],
|
|
261
|
+
lock?.mode === 'dense' ? `${lock.modelId}@${lock.dimension}#${lock.embedRecipe}` : [provider?.get('embeddingModelId'), provider?.get('embeddingDimension')],
|
|
261
262
|
provider?.get('embeddingEndpoints') ?? null,
|
|
262
263
|
provider?.get('openaiBaseUrl') ?? null,
|
|
263
264
|
provider?.get('qwenEmbeddingBaseUrl') ?? null,
|
|
264
265
|
provider?.get('ollamaUrl') ?? null,
|
|
265
266
|
]);
|
|
266
267
|
}
|
|
268
|
+
/** Safe availability reasons; arbitrary provider/schema/program errors do not qualify. */
|
|
269
|
+
export function embeddingUnavailableReason(error) {
|
|
270
|
+
if (error instanceof EmbeddingUnavailableError)
|
|
271
|
+
return error.reason;
|
|
272
|
+
if (error instanceof EmbeddingDisabledError)
|
|
273
|
+
return 'disabled';
|
|
274
|
+
if (error instanceof EmbeddingMetadataOnlyError)
|
|
275
|
+
return 'metadata_only';
|
|
276
|
+
if (error instanceof EmbeddingCredentialMissingError)
|
|
277
|
+
return 'credentials';
|
|
278
|
+
if (error instanceof ActiveEmbeddingModelUnresolvableError)
|
|
279
|
+
return 'model_missing';
|
|
280
|
+
if (isEmbeddingBudgetStopError(error))
|
|
281
|
+
return 'budget';
|
|
282
|
+
if (isProviderQuotaExhaustedError(error))
|
|
283
|
+
return 'quota';
|
|
284
|
+
return undefined;
|
|
285
|
+
}
|
|
267
286
|
/** A media input the model's registry row does not list (the modality gate). */
|
|
268
287
|
export class EmbedInputUnsupportedError extends Error {
|
|
269
288
|
kind;
|
|
@@ -287,6 +306,7 @@ export class LazyEmbedder {
|
|
|
287
306
|
#builtAt = embedderGeneration;
|
|
288
307
|
#builtFrom = '';
|
|
289
308
|
async #resolve() {
|
|
309
|
+
requireEmbeddingEnabled();
|
|
290
310
|
const fingerprint = activeBuildFingerprint();
|
|
291
311
|
if (this.#cached && (this.#builtAt !== embedderGeneration || this.#builtFrom !== fingerprint)) {
|
|
292
312
|
this.#cached = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/embeddings/factory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/embeddings/factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,16 +14,17 @@
|
|
|
14
14
|
* the run (paused) with its shadow — a resume re-verifies from the start but
|
|
15
15
|
* re-embeds only what the shadow does not already hold.
|
|
16
16
|
*
|
|
17
|
-
* Format:
|
|
18
|
-
*
|
|
17
|
+
* Format: v3 metadata/dense serving records, the ONLY format this runtime reads.
|
|
18
|
+
* A v1/v2 lock is refused naming the offline upgrade (`pnpm neuralis:upgrade`,
|
|
19
|
+
* `scripts/embeddingLockV3.ts`); a lock NEWER than this binary is a typed refusal
|
|
19
20
|
* (`RecordNewerError`) — never "no lock", which is what used to overwrite it.
|
|
20
21
|
* Writes are durable (temp + fsync + rename, mode 0600) and serialized in this
|
|
21
22
|
* process, so a batch cursor, a dirty-id flush and the swap never interleave.
|
|
22
23
|
*/
|
|
23
|
-
import {
|
|
24
|
+
import type { EmbeddingProviderId } from './models.js';
|
|
24
25
|
/** The data-format ledger kind of this record (declared in `store/dataFormats.ts`). */
|
|
25
26
|
export declare const EMBEDDING_LOCK_KIND: "brain-core/embedding-lock";
|
|
26
|
-
export declare const EMBEDDING_LOCK_VERSION:
|
|
27
|
+
export declare const EMBEDDING_LOCK_VERSION: 3;
|
|
27
28
|
/** One model's identity as the vectors of a generation know it. */
|
|
28
29
|
export type EmbeddingGeneration = {
|
|
29
30
|
modelId: string;
|
|
@@ -39,6 +40,7 @@ export type EmbeddingRebuild = {
|
|
|
39
40
|
generation: number;
|
|
40
41
|
shadowCollection: string;
|
|
41
42
|
state: EmbeddingRebuildState;
|
|
43
|
+
phase: 'prepared' | 'copying' | 'ready';
|
|
42
44
|
startedAt: string;
|
|
43
45
|
/** The scan's position in the ACTIVE collection (progress; a resume re-verifies from the start). */
|
|
44
46
|
cursor?: string;
|
|
@@ -59,20 +61,27 @@ export type EmbeddingRebuild = {
|
|
|
59
61
|
lastError?: string;
|
|
60
62
|
updatedAt: string;
|
|
61
63
|
};
|
|
62
|
-
|
|
63
|
-
version:
|
|
64
|
-
generation: number;
|
|
64
|
+
type EmbeddingServingRecord = {
|
|
65
|
+
version: 3;
|
|
65
66
|
collection: string;
|
|
66
67
|
createdAt: string;
|
|
67
|
-
/** Set when the lock was written for a collection that already existed without one — its model label is inferred. */
|
|
68
|
-
backfilledAt?: string;
|
|
69
68
|
rebuild?: EmbeddingRebuild;
|
|
70
69
|
};
|
|
70
|
+
export type MetadataEmbeddingLock = EmbeddingServingRecord & {
|
|
71
|
+
mode: 'metadata';
|
|
72
|
+
};
|
|
73
|
+
export type DenseEmbeddingLock = EmbeddingServingRecord & EmbeddingGeneration & {
|
|
74
|
+
mode: 'dense';
|
|
75
|
+
generation: number;
|
|
76
|
+
/** A pre-existing collection's model label was inferred, not proved. */
|
|
77
|
+
backfilledAt?: string;
|
|
78
|
+
};
|
|
79
|
+
export type EmbeddingLock = MetadataEmbeddingLock | DenseEmbeddingLock;
|
|
71
80
|
declare const LOCK_RELATIVE = "app/config/embedding-lock.json";
|
|
72
81
|
/** The lock file exists but is not a lock — never overwritten, never read as "no lock". */
|
|
73
82
|
export declare class EmbeddingLockInvalidError extends Error {
|
|
74
83
|
readonly code: 'embedding_lock_invalid';
|
|
75
|
-
constructor(detail: string);
|
|
84
|
+
constructor(detail: string, remedy?: string);
|
|
76
85
|
}
|
|
77
86
|
export declare function readLock(appRoot: string): Promise<EmbeddingLock | null>;
|
|
78
87
|
export declare function writeLock(appRoot: string, lock: EmbeddingLock): Promise<void>;
|
|
@@ -93,7 +102,9 @@ export declare function mutateLock(appRoot: string, fn: (lock: EmbeddingLock | n
|
|
|
93
102
|
export declare function buildLockRecord(shape: EmbeddingGeneration, collection: string, opts?: {
|
|
94
103
|
backfilled?: boolean;
|
|
95
104
|
now?: string;
|
|
96
|
-
}):
|
|
105
|
+
}): DenseEmbeddingLock;
|
|
106
|
+
/** A serving collection with no invented model or dense schema. */
|
|
107
|
+
export declare function buildMetadataLockRecord(collection: string, now?: string): MetadataEmbeddingLock;
|
|
97
108
|
/** The generation identity a lock records (without the rebuild state). */
|
|
98
109
|
export declare function generationOf(lock: EmbeddingGeneration): EmbeddingGeneration;
|
|
99
110
|
/** Do two generations write vectors into the same space? `apiModelId` is superseded in place, so it is not compared. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../../src/embeddings/lock.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../../src/embeddings/lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
* the run (paused) with its shadow — a resume re-verifies from the start but
|
|
15
15
|
* re-embeds only what the shadow does not already hold.
|
|
16
16
|
*
|
|
17
|
-
* Format:
|
|
18
|
-
*
|
|
17
|
+
* Format: v3 metadata/dense serving records, the ONLY format this runtime reads.
|
|
18
|
+
* A v1/v2 lock is refused naming the offline upgrade (`pnpm neuralis:upgrade`,
|
|
19
|
+
* `scripts/embeddingLockV3.ts`); a lock NEWER than this binary is a typed refusal
|
|
19
20
|
* (`RecordNewerError`) — never "no lock", which is what used to overwrite it.
|
|
20
21
|
* Writes are durable (temp + fsync + rename, mode 0600) and serialized in this
|
|
21
22
|
* process, so a batch cursor, a dirty-id flush and the swap never interleave.
|
|
@@ -23,7 +24,6 @@
|
|
|
23
24
|
import { readFile, mkdir, unlink } from 'node:fs/promises';
|
|
24
25
|
import { join, dirname } from 'node:path';
|
|
25
26
|
import { assertRecordFormat, durableReplaceFile } from '@neuralis/package-system/data';
|
|
26
|
-
import { EMBED_RECIPE_BASE } from './models.js';
|
|
27
27
|
import { EMBEDDING_LOCK_FORMAT } from '../store/dataFormats.js';
|
|
28
28
|
/** The data-format ledger kind of this record (declared in `store/dataFormats.ts`). */
|
|
29
29
|
export const EMBEDDING_LOCK_KIND = EMBEDDING_LOCK_FORMAT.kind;
|
|
@@ -32,8 +32,8 @@ const LOCK_RELATIVE = 'app/config/embedding-lock.json';
|
|
|
32
32
|
/** The lock file exists but is not a lock — never overwritten, never read as "no lock". */
|
|
33
33
|
export class EmbeddingLockInvalidError extends Error {
|
|
34
34
|
code = 'embedding_lock_invalid';
|
|
35
|
-
constructor(detail) {
|
|
36
|
-
super(`EMBEDDING_LOCK_INVALID: ${detail}.
|
|
35
|
+
constructor(detail, remedy = `Fix or remove ${LOCK_RELATIVE} (a removal is a vector reset).`) {
|
|
36
|
+
super(`EMBEDDING_LOCK_INVALID: ${detail}. ${remedy}`);
|
|
37
37
|
this.name = 'EmbeddingLockInvalidError';
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -48,33 +48,46 @@ function parseLock(raw) {
|
|
|
48
48
|
throw new EmbeddingLockInvalidError('not a JSON object');
|
|
49
49
|
const version = typeof raw.version === 'number' ? raw.version : undefined;
|
|
50
50
|
assertRecordFormat(EMBEDDING_LOCK_KIND, version, EMBEDDING_LOCK_VERSION);
|
|
51
|
-
if (version
|
|
51
|
+
if (version === 1 || version === 2) {
|
|
52
|
+
throw new EmbeddingLockInvalidError(`format v${version} predates this build`, 'Stop the app and run `neuralis upgrade` (it converts the lock offline).');
|
|
53
|
+
}
|
|
54
|
+
if (version !== 3)
|
|
52
55
|
throw new EmbeddingLockInvalidError(`unknown version ${String(raw.version)}`);
|
|
53
|
-
if (typeof raw.modelId !== 'string' || !raw.modelId)
|
|
54
|
-
throw new EmbeddingLockInvalidError('modelId missing');
|
|
55
|
-
if (typeof raw.dimension !== 'number' || !(raw.dimension > 0))
|
|
56
|
-
throw new EmbeddingLockInvalidError('dimension missing');
|
|
57
56
|
if (typeof raw.collection !== 'string' || !raw.collection)
|
|
58
57
|
throw new EmbeddingLockInvalidError('collection missing');
|
|
59
|
-
if (
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
dimension: raw.dimension,
|
|
71
|
-
createdAt: typeof raw.createdAt === 'string' ? raw.createdAt : '',
|
|
72
|
-
};
|
|
58
|
+
if (typeof raw.createdAt !== 'string')
|
|
59
|
+
throw new EmbeddingLockInvalidError('createdAt missing');
|
|
60
|
+
let rebuild;
|
|
61
|
+
if (raw.rebuild !== undefined) {
|
|
62
|
+
if (!isRecord(raw.rebuild))
|
|
63
|
+
throw new EmbeddingLockInvalidError('rebuild invalid');
|
|
64
|
+
const phase = raw.rebuild.phase;
|
|
65
|
+
if (phase !== 'prepared' && phase !== 'copying' && phase !== 'ready')
|
|
66
|
+
throw new EmbeddingLockInvalidError('rebuild phase invalid');
|
|
67
|
+
// Existing rebuild validation belongs to the job resolver; retain its durable state.
|
|
68
|
+
rebuild = raw.rebuild;
|
|
73
69
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
70
|
+
const serving = { version: 3, collection: raw.collection, createdAt: raw.createdAt, ...(rebuild ? { rebuild } : {}) };
|
|
71
|
+
if (raw.mode === 'metadata')
|
|
72
|
+
return { ...serving, mode: 'metadata' };
|
|
73
|
+
if (raw.mode !== 'dense')
|
|
74
|
+
throw new EmbeddingLockInvalidError('mode invalid');
|
|
75
|
+
if (typeof raw.modelId !== 'string' || !raw.modelId)
|
|
76
|
+
throw new EmbeddingLockInvalidError('modelId missing');
|
|
77
|
+
if (typeof raw.dimension !== 'number' || !Number.isInteger(raw.dimension) || raw.dimension <= 0)
|
|
78
|
+
throw new EmbeddingLockInvalidError('dimension invalid');
|
|
79
|
+
if (typeof raw.generation !== 'number' || !Number.isInteger(raw.generation) || raw.generation < 1)
|
|
80
|
+
throw new EmbeddingLockInvalidError('generation invalid');
|
|
81
|
+
if (typeof raw.provider !== 'string' || typeof raw.apiModelId !== 'string')
|
|
82
|
+
throw new EmbeddingLockInvalidError('provider identity missing');
|
|
83
|
+
if (typeof raw.embedRecipe !== 'string' || !raw.embedRecipe)
|
|
84
|
+
throw new EmbeddingLockInvalidError('embedRecipe missing');
|
|
85
|
+
return {
|
|
86
|
+
...serving, mode: 'dense', generation: raw.generation, modelId: raw.modelId,
|
|
87
|
+
provider: raw.provider, apiModelId: raw.apiModelId,
|
|
88
|
+
embedRecipe: raw.embedRecipe, dimension: raw.dimension,
|
|
89
|
+
...(typeof raw.backfilledAt === 'string' ? { backfilledAt: raw.backfilledAt } : {}),
|
|
90
|
+
};
|
|
78
91
|
}
|
|
79
92
|
export async function readLock(appRoot) {
|
|
80
93
|
let text;
|
|
@@ -160,7 +173,8 @@ export function mutateLock(appRoot, fn) {
|
|
|
160
173
|
export function buildLockRecord(shape, collection, opts = {}) {
|
|
161
174
|
const now = opts.now ?? new Date().toISOString();
|
|
162
175
|
return {
|
|
163
|
-
version:
|
|
176
|
+
version: 3,
|
|
177
|
+
mode: 'dense',
|
|
164
178
|
generation: 1,
|
|
165
179
|
collection,
|
|
166
180
|
modelId: shape.modelId,
|
|
@@ -172,6 +186,10 @@ export function buildLockRecord(shape, collection, opts = {}) {
|
|
|
172
186
|
...(opts.backfilled ? { backfilledAt: now } : {}),
|
|
173
187
|
};
|
|
174
188
|
}
|
|
189
|
+
/** A serving collection with no invented model or dense schema. */
|
|
190
|
+
export function buildMetadataLockRecord(collection, now = new Date().toISOString()) {
|
|
191
|
+
return { version: 3, mode: 'metadata', collection, createdAt: now };
|
|
192
|
+
}
|
|
175
193
|
/** The generation identity a lock records (without the rebuild state). */
|
|
176
194
|
export function generationOf(lock) {
|
|
177
195
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../../src/embeddings/lock.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../../src/embeddings/lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/** Bound transport and body consumption even when a provider ignores cancellation. */
|
|
2
|
+
export declare function requestEmbeddingResponse(fetchImpl: typeof fetch, url: string, init: RequestInit, signal?: AbortSignal): Promise<{
|
|
3
|
+
response: Response;
|
|
4
|
+
raw: string;
|
|
5
|
+
}>;
|
|
1
6
|
/** Existing bounded backoff shared by embedding clients. */
|
|
2
7
|
export declare function waitEmbedRetry(ms: number, signal?: AbortSignal, abortMessage?: string): Promise<void>;
|
|
3
8
|
export declare function retryDelayMs(rawText: string, attempt: number, retryAfter?: string | null): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/embeddings/retry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/embeddings/retry.ts"],"names":[],"mappings":"AAEA,sFAAsF;AACtF,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,OAAO,KAAK,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CA6B9C;AAED,4DAA4D;AAC5D,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,SAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9G;AACD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAajG"}
|
|
@@ -1,3 +1,38 @@
|
|
|
1
|
+
import { EmbeddingUnavailableError, getBrainConfigNumber } from '../config/env.js';
|
|
2
|
+
/** Bound transport and body consumption even when a provider ignores cancellation. */
|
|
3
|
+
export async function requestEmbeddingResponse(fetchImpl, url, init, signal) {
|
|
4
|
+
signal?.throwIfAborted();
|
|
5
|
+
const timeoutMs = getBrainConfigNumber('embeddingRequestTimeoutMs', undefined, 30_000);
|
|
6
|
+
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0)
|
|
7
|
+
throw new Error('INVALID_EMBEDDING_REQUEST_TIMEOUT');
|
|
8
|
+
const controller = new AbortController();
|
|
9
|
+
let timer;
|
|
10
|
+
let onAbort;
|
|
11
|
+
const cancellation = new Promise((_resolve, reject) => {
|
|
12
|
+
onAbort = () => { controller.abort(signal?.reason); reject(signal?.reason); };
|
|
13
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
14
|
+
timer = setTimeout(() => {
|
|
15
|
+
const error = new EmbeddingUnavailableError('timeout');
|
|
16
|
+
controller.abort(error);
|
|
17
|
+
reject(error);
|
|
18
|
+
}, timeoutMs);
|
|
19
|
+
});
|
|
20
|
+
try {
|
|
21
|
+
return await Promise.race([
|
|
22
|
+
(async () => {
|
|
23
|
+
const response = await fetchImpl(url, { ...init, signal: controller.signal });
|
|
24
|
+
const raw = await response.text();
|
|
25
|
+
return { response, raw };
|
|
26
|
+
})(),
|
|
27
|
+
cancellation,
|
|
28
|
+
]);
|
|
29
|
+
}
|
|
30
|
+
finally {
|
|
31
|
+
clearTimeout(timer);
|
|
32
|
+
if (onAbort)
|
|
33
|
+
signal?.removeEventListener('abort', onAbort);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
1
36
|
/** Existing bounded backoff shared by embedding clients. */
|
|
2
37
|
export function waitEmbedRetry(ms, signal, abortMessage = 'EMBED_ABORTED') {
|
|
3
38
|
return new Promise((resolve, reject) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/embeddings/retry.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,MAAM,UAAU,cAAc,CAAC,EAAU,EAAE,MAAoB,EAAE,YAAY,GAAG,eAAe;IAC7F,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACjE,MAAM,OAAO,GAAG,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClG,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AACD,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,OAAe,EAAE,UAA0B;IACvF,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9F,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,IAAI,GAAG,qCAAqC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjE,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/embeddings/retry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `pending` event subject — ONE content-free summary per quiet window that
|
|
3
|
+
* a project has changes waiting for review (and, separately, that reviews were
|
|
4
|
+
* resolved). It never says which files, how many or whose: a reader opens the
|
|
5
|
+
* Changes view, whose per-record filtered list and count are the truth.
|
|
6
|
+
*
|
|
7
|
+
* PRODUCER: an OBSERVER on each project's own filesystem bus, attached when the
|
|
8
|
+
* project's infra entry is built (`CommunityInfraFactory`) — never through the
|
|
9
|
+
* factory's pinning `subscribe`, which would keep every project alive forever.
|
|
10
|
+
* Pending-relevant events (`isPendingRelevantEvent`) arrive PER FILE, so the
|
|
11
|
+
* observer coalesces: a 2 s quiet window (restarted by each event, capped at
|
|
12
|
+
* 10 s from the window's first event), one `unref()`'d timer per project with
|
|
13
|
+
* a window open, cleared when the entry is disposed. The summary is addressed
|
|
14
|
+
* to the bounded set of real actors seen in the window (followers come from
|
|
15
|
+
* the host). A burst notifies 2 s after it ends, at most 10 s after it began —
|
|
16
|
+
* stacked on, and independent of, the Files client's own 1 s / 5 s
|
|
17
|
+
* `pending:changed` re-count debounce.
|
|
18
|
+
*
|
|
19
|
+
* `visible`: a role-holding member of the event's project — the declaration's
|
|
20
|
+
* `requires.features` (`drive.read`, the pending route's feature) is checked by
|
|
21
|
+
* the host before this runs. Content-free, so nothing else is needed to judge
|
|
22
|
+
* it; the list behind the `nav` re-applies every per-record gate.
|
|
23
|
+
*
|
|
24
|
+
* RESOLUTION: the Inbox/popover marking a row read when it is shown or opened
|
|
25
|
+
* is the mechanism; a resolved review does NOT clear another reader's
|
|
26
|
+
* warning (`pending.review.resolved` declares no `clears`).
|
|
27
|
+
*/
|
|
28
|
+
import { type EventBridge, type EventVisibilityPredicate, type NeuralisEventInput } from '@neuralis/package-system/contracts';
|
|
29
|
+
export declare const subject = "pending";
|
|
30
|
+
/** The quiet window and its ceiling — code floors of a coalescer, not tunables of a product. */
|
|
31
|
+
export declare const PENDING_SUMMARY_QUIET_MS = 2000;
|
|
32
|
+
export declare const PENDING_SUMMARY_MAX_WAIT_MS = 10000;
|
|
33
|
+
/** At most this many addressed actors per summary; followers are the host's. */
|
|
34
|
+
export declare const PENDING_SUMMARY_MAX_ACTORS = 50;
|
|
35
|
+
export type PendingSignalPublish = (input: Omit<NeuralisEventInput, 'projectId'> & {
|
|
36
|
+
projectId: string;
|
|
37
|
+
}) => unknown;
|
|
38
|
+
export type PendingObserver = {
|
|
39
|
+
/** Feed one bus event; anything not pending-relevant costs a string check. */
|
|
40
|
+
observe(event: Record<string, unknown>): void;
|
|
41
|
+
/** Drop the open window (its timer included) — the entry is gone. */
|
|
42
|
+
dispose(): void;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* One project's coalescing observer. `publisher()` is read when a window
|
|
46
|
+
* CLOSES, so an observer born before the subject's bridge is wired simply stays
|
|
47
|
+
* silent until it is.
|
|
48
|
+
*/
|
|
49
|
+
export declare function createPendingObserver(projectId: string, publisher: () => PendingSignalPublish | undefined, timers?: {
|
|
50
|
+
set: (fn: () => void, ms: number) => ReturnType<typeof setTimeout>;
|
|
51
|
+
clear: (handle: ReturnType<typeof setTimeout>) => void;
|
|
52
|
+
now: () => number;
|
|
53
|
+
}): PendingObserver;
|
|
54
|
+
export declare const visible: EventVisibilityPredicate;
|
|
55
|
+
export declare const bridge: EventBridge;
|
|
56
|
+
//# sourceMappingURL=pending.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending.d.ts","sourceRoot":"","sources":["../../../src/events/pending.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACxB,MAAM,oCAAoC,CAAC;AAI5C,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,gGAAgG;AAChG,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAC9C,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAClD,gFAAgF;AAChF,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC;AAErH,MAAM,MAAM,eAAe,GAAG;IAC5B,8EAA8E;IAC9E,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,qEAAqE;IACrE,OAAO,IAAI,IAAI,CAAC;CACjB,CAAC;AAIF;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,oBAAoB,GAAG,SAAS,EACjD,MAAM,GAAE;IAAE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,KAAK,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,MAAM,CAAA;CAEtJ,GACA,eAAe,CAkDjB;AAED,eAAO,MAAM,OAAO,EAAE,wBACwE,CAAC;AAE/F,eAAO,MAAM,MAAM,EAAE,WAIpB,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `pending` event subject — ONE content-free summary per quiet window that
|
|
3
|
+
* a project has changes waiting for review (and, separately, that reviews were
|
|
4
|
+
* resolved). It never says which files, how many or whose: a reader opens the
|
|
5
|
+
* Changes view, whose per-record filtered list and count are the truth.
|
|
6
|
+
*
|
|
7
|
+
* PRODUCER: an OBSERVER on each project's own filesystem bus, attached when the
|
|
8
|
+
* project's infra entry is built (`CommunityInfraFactory`) — never through the
|
|
9
|
+
* factory's pinning `subscribe`, which would keep every project alive forever.
|
|
10
|
+
* Pending-relevant events (`isPendingRelevantEvent`) arrive PER FILE, so the
|
|
11
|
+
* observer coalesces: a 2 s quiet window (restarted by each event, capped at
|
|
12
|
+
* 10 s from the window's first event), one `unref()`'d timer per project with
|
|
13
|
+
* a window open, cleared when the entry is disposed. The summary is addressed
|
|
14
|
+
* to the bounded set of real actors seen in the window (followers come from
|
|
15
|
+
* the host). A burst notifies 2 s after it ends, at most 10 s after it began —
|
|
16
|
+
* stacked on, and independent of, the Files client's own 1 s / 5 s
|
|
17
|
+
* `pending:changed` re-count debounce.
|
|
18
|
+
*
|
|
19
|
+
* `visible`: a role-holding member of the event's project — the declaration's
|
|
20
|
+
* `requires.features` (`drive.read`, the pending route's feature) is checked by
|
|
21
|
+
* the host before this runs. Content-free, so nothing else is needed to judge
|
|
22
|
+
* it; the list behind the `nav` re-applies every per-record gate.
|
|
23
|
+
*
|
|
24
|
+
* RESOLUTION: the Inbox/popover marking a row read when it is shown or opened
|
|
25
|
+
* is the mechanism; a resolved review does NOT clear another reader's
|
|
26
|
+
* warning (`pending.review.resolved` declares no `clears`).
|
|
27
|
+
*/
|
|
28
|
+
import { isSentinelId, } from '@neuralis/package-system/contracts';
|
|
29
|
+
import { isPendingRelevantEvent } from '../domain/events.js';
|
|
30
|
+
export const subject = 'pending';
|
|
31
|
+
/** The quiet window and its ceiling — code floors of a coalescer, not tunables of a product. */
|
|
32
|
+
export const PENDING_SUMMARY_QUIET_MS = 2_000;
|
|
33
|
+
export const PENDING_SUMMARY_MAX_WAIT_MS = 10_000;
|
|
34
|
+
/** At most this many addressed actors per summary; followers are the host's. */
|
|
35
|
+
export const PENDING_SUMMARY_MAX_ACTORS = 50;
|
|
36
|
+
const FILES_NAV = { widgetType: 'filesystem', initialState: { nav: { kind: 'filesystem', action: 'open-pending' } } };
|
|
37
|
+
/**
|
|
38
|
+
* One project's coalescing observer. `publisher()` is read when a window
|
|
39
|
+
* CLOSES, so an observer born before the subject's bridge is wired simply stays
|
|
40
|
+
* silent until it is.
|
|
41
|
+
*/
|
|
42
|
+
export function createPendingObserver(projectId, publisher, timers = {
|
|
43
|
+
set: (fn, ms) => setTimeout(fn, ms), clear: (handle) => clearTimeout(handle), now: () => Date.now(),
|
|
44
|
+
}) {
|
|
45
|
+
let timer;
|
|
46
|
+
let openedAt = 0;
|
|
47
|
+
let required = false;
|
|
48
|
+
let resolved = false;
|
|
49
|
+
const actors = new Set();
|
|
50
|
+
const flush = () => {
|
|
51
|
+
timer = undefined;
|
|
52
|
+
const publish = publisher();
|
|
53
|
+
const audience = [...actors];
|
|
54
|
+
const kinds = [required ? 'pending.review.required' : null, resolved ? 'pending.review.resolved' : null]
|
|
55
|
+
.filter((kind) => kind !== null);
|
|
56
|
+
required = false;
|
|
57
|
+
resolved = false;
|
|
58
|
+
actors.clear();
|
|
59
|
+
if (!publish)
|
|
60
|
+
return;
|
|
61
|
+
for (const event of kinds) {
|
|
62
|
+
try {
|
|
63
|
+
publish({ event, subjectId: 'pending', projectId, data: { nav: FILES_NAV },
|
|
64
|
+
...(audience.length ? { audience: { userIds: audience } } : {}) });
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// A refused publish is the producer's bug and is loud in the hub's own log; the bus goes on.
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
return {
|
|
72
|
+
observe(event) {
|
|
73
|
+
if (event.projectId !== projectId || !isPendingRelevantEvent(event))
|
|
74
|
+
return;
|
|
75
|
+
const payload = (event.payload ?? {});
|
|
76
|
+
if (payload.status === 'pending_review')
|
|
77
|
+
required = true;
|
|
78
|
+
else
|
|
79
|
+
resolved = true;
|
|
80
|
+
const actor = event.userId;
|
|
81
|
+
if (typeof actor === 'string' && actor && !isSentinelId(actor) && actors.size < PENDING_SUMMARY_MAX_ACTORS)
|
|
82
|
+
actors.add(actor);
|
|
83
|
+
const now = timers.now();
|
|
84
|
+
if (timer === undefined)
|
|
85
|
+
openedAt = now;
|
|
86
|
+
else
|
|
87
|
+
timers.clear(timer);
|
|
88
|
+
const wait = Math.max(0, Math.min(PENDING_SUMMARY_QUIET_MS, openedAt + PENDING_SUMMARY_MAX_WAIT_MS - now));
|
|
89
|
+
timer = timers.set(flush, wait);
|
|
90
|
+
timer.unref?.();
|
|
91
|
+
},
|
|
92
|
+
dispose() {
|
|
93
|
+
if (timer !== undefined)
|
|
94
|
+
timers.clear(timer);
|
|
95
|
+
timer = undefined;
|
|
96
|
+
actors.clear();
|
|
97
|
+
required = false;
|
|
98
|
+
resolved = false;
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
export const visible = (event, session) => Boolean(session.role) && Boolean(session.projectId) && event.projectId === session.projectId;
|
|
103
|
+
export const bridge = (publish, state) => {
|
|
104
|
+
const factory = state.infraFactory;
|
|
105
|
+
factory.setPendingPublisher((input) => publish(input));
|
|
106
|
+
return () => factory.setPendingPublisher(undefined);
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=pending.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending.js","sourceRoot":"","sources":["../../../src/events/pending.ts"],"names":[],"mappings":"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"}
|