@neuralis/brain-core 0.3.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -1409
- 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 +57 -49
- 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/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/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 +24 -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 +1 -1
- package/dist/src/embeddings/models.d.ts.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 +8 -11
- 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/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/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 +10 -3
- package/dist/src/routes/helpers.d.ts.map +1 -1
- package/dist/src/routes/helpers.js +12 -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 +2 -3
- package/dist/src/routes/list.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 +65 -11
- package/dist/src/routes/raw.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 +411 -299
- package/dist/src/routes/sources.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 +110 -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 +66 -25
- 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 +37 -8
- 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 +7 -2
- package/dist/src/sync/SyncJobQueue.d.ts.map +1 -1
- package/dist/src/sync/SyncJobQueue.js +16 -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/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/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 +2 -5
- 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 +15 -0
- 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/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/vector/qdrantClient.d.ts +1 -1
- package/dist/src/vector/qdrantClient.js +1 -1
- package/dist/src/wiring.d.ts +3 -0
- package/dist/src/wiring.d.ts.map +1 -1
- package/dist/src/wiring.js +72 -6
- package/dist/src/wiring.js.map +1 -1
- package/package.json +145 -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 +1 -1
- 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
|
@@ -5,13 +5,14 @@
|
|
|
5
5
|
* Source configs are stored in the app zone via AppSourceConfigStore.
|
|
6
6
|
*/
|
|
7
7
|
import { deriveSourceKind, normalizeSource } from '../domain/source.js';
|
|
8
|
-
import { validateSourceConfig,
|
|
8
|
+
import { validateSourceConfig, validatePermissionsGrantOnlyRules, sourceScopeOrigin } from '../domain/sourceConfig.js';
|
|
9
9
|
import { computeFilterHash } from '../domain/syncignore.js';
|
|
10
|
-
import { canAccessScope, isConnectorPlaneExecKind,
|
|
11
|
-
import { evaluateSourceLevelUriPolicy } from '@neuralis/package-system/policies';
|
|
10
|
+
import { HOST_SOURCE_KIND, canAccessScope, isConnectorPlaneExecKind, sourcePlane } from '@neuralis/package-system/contracts';
|
|
12
11
|
import { bindSourceConnector } from '../usecases/bindSourceConnector.js';
|
|
12
|
+
import { armedStatus, triggerSourceSync as triggerSourceSyncUseCase, } from '../usecases/triggerSourceSync.js';
|
|
13
13
|
import { assertImmutablePolicyFloorsPreserved, CallerPolicyFloorError, containsPolicyFloorMarker, pickConnectorFloorRules, pickManifestBaselinesForSource, mergeBaselines, } from '@neuralis/package-system/policies';
|
|
14
14
|
import { resolve as resolvePath } from 'node:path';
|
|
15
|
+
import { resolvedLocalRootOrNull, treeAnchorPath } from '../connectors/inProcessTransport.js';
|
|
15
16
|
/**
|
|
16
17
|
* W4C — `os://<key>` mount source carve-out.
|
|
17
18
|
*
|
|
@@ -29,13 +30,17 @@ import { resolve as resolvePath } from 'node:path';
|
|
|
29
30
|
export function applyOsMountCarveOut(permissions, connection, stack) {
|
|
30
31
|
if (!stack || stack.osMounts.length === 0)
|
|
31
32
|
return permissions;
|
|
32
|
-
if (connection.kind !== 'local')
|
|
33
|
+
if (connection.kind !== HOST_SOURCE_KIND || sourcePlane(connection.kind, connection.config) !== 'local')
|
|
33
34
|
return permissions;
|
|
34
35
|
const cfg = (connection.config ?? {});
|
|
35
36
|
const rawRoot = typeof cfg.root === 'string' ? cfg.root : '';
|
|
36
37
|
if (!rawRoot)
|
|
37
38
|
return permissions;
|
|
38
|
-
|
|
39
|
+
// A Neuralis-tree anchor names a folder of the overlay mount itself.
|
|
40
|
+
const anchoredRoot = treeAnchorPath(rawRoot) === null
|
|
41
|
+
? null
|
|
42
|
+
: resolvedLocalRootOrNull({ configured: rawRoot, hostRoot: undefined, projectRoot: '', isDocker: stack.isDocker, source: '' });
|
|
43
|
+
const absRoot = anchoredRoot ?? resolvePath(rawRoot);
|
|
39
44
|
const isMounted = stack.osMounts.some((m) => absRoot === m.containerPath || absRoot.startsWith(`${m.containerPath}/`));
|
|
40
45
|
if (!isMounted)
|
|
41
46
|
return permissions;
|
|
@@ -87,9 +92,10 @@ export class BridgeService {
|
|
|
87
92
|
// Service-floor: a full permissions replacement must round-trip the exact
|
|
88
93
|
// trusted-manifest floors. Route/UI checks are only early error shaping.
|
|
89
94
|
assertImmutablePolicyFloorsPreserved(existing.permissions, params.permissions);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
95
|
+
// Grant-only subject SHAPES (`users`, `priority`) — defence in depth below the routes.
|
|
96
|
+
const grantOnlyErrors = validatePermissionsGrantOnlyRules(params.permissions);
|
|
97
|
+
if (grantOnlyErrors.length > 0)
|
|
98
|
+
throw new Error(grantOnlyErrors.join(' '));
|
|
93
99
|
const now = this.#infra.clock.nowIso();
|
|
94
100
|
const syncSection = params.clearSync ? {} : params.sync ? (() => {
|
|
95
101
|
const newHash = computeFilterHash({ exclude: params.sync.exclude, ...(params.sync.include ? { include: params.sync.include } : {}) });
|
|
@@ -119,9 +125,9 @@ export class BridgeService {
|
|
|
119
125
|
: (existing.description !== undefined ? { description: existing.description } : {})),
|
|
120
126
|
...syncSection,
|
|
121
127
|
...(params.enabled !== undefined ? { enabled: params.enabled } : (existing.enabled !== undefined ? { enabled: existing.enabled } : {})),
|
|
122
|
-
...(params.
|
|
123
|
-
? {
|
|
124
|
-
: (existing.
|
|
128
|
+
...(params.packageFolders !== undefined
|
|
129
|
+
? (params.packageFolders.length > 0 ? { packageFolders: [...params.packageFolders] } : {})
|
|
130
|
+
: (existing.packageFolders !== undefined ? { packageFolders: existing.packageFolders } : {})),
|
|
125
131
|
createdAt: existing.createdAt,
|
|
126
132
|
updatedAt: now,
|
|
127
133
|
createdBy: existing.createdBy,
|
|
@@ -198,9 +204,10 @@ export class BridgeService {
|
|
|
198
204
|
if (containsPolicyFloorMarker(params.permissions)) {
|
|
199
205
|
throw new CallerPolicyFloorError();
|
|
200
206
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
207
|
+
// Grant-only subject SHAPES (`users`, `priority`) — defence in depth below the routes.
|
|
208
|
+
const grantOnlyErrors = validatePermissionsGrantOnlyRules(params.permissions);
|
|
209
|
+
if (grantOnlyErrors.length > 0)
|
|
210
|
+
throw new Error(grantOnlyErrors.join(' '));
|
|
204
211
|
// Check for duplicates
|
|
205
212
|
const existing = await this.#infra.sourceConfigs.get(scope, source);
|
|
206
213
|
if (existing) {
|
|
@@ -222,7 +229,7 @@ export class BridgeService {
|
|
|
222
229
|
// Per-package patterns (e.g. `data://agent-core/*/**` deny-write) come
|
|
223
230
|
// from each manifest, NOT from a brain-core hardcode. The persisted
|
|
224
231
|
// source-config JSON is authoritative thereafter.
|
|
225
|
-
const seededPermissions = this.#applyConnectorFloors(this.#applyOsMountCarveOut(this.#applyManifestBaselines(applyScopeSeedPermissions(params.permissions, params.scope, scope.userId, isConnectorPlaneExecKind(params.connection.kind, kindMetadata.capabilities),
|
|
232
|
+
const seededPermissions = this.#applyConnectorFloors(this.#applyOsMountCarveOut(this.#applyManifestBaselines(applyScopeSeedPermissions(params.permissions, params.scope, scope.userId, isConnectorPlaneExecKind(params.connection.kind, kindMetadata.capabilities), sourcePlane(params.connection.kind, params.connection.config) === 'device'), source), params.connection), kindMetadata);
|
|
226
233
|
const config = {
|
|
227
234
|
source,
|
|
228
235
|
scope: params.scope,
|
|
@@ -237,7 +244,7 @@ export class BridgeService {
|
|
|
237
244
|
},
|
|
238
245
|
} : {}),
|
|
239
246
|
...(params.enabled !== undefined ? { enabled: params.enabled } : {}),
|
|
240
|
-
...(params.
|
|
247
|
+
...(params.packageFolders?.length ? { packageFolders: [...params.packageFolders] } : {}),
|
|
241
248
|
createdAt: now,
|
|
242
249
|
updatedAt: now,
|
|
243
250
|
createdBy: scope.userId,
|
|
@@ -406,38 +413,9 @@ export class BridgeService {
|
|
|
406
413
|
return null;
|
|
407
414
|
return this.#toBridgeConfig(config, scope);
|
|
408
415
|
}
|
|
409
|
-
/**
|
|
410
|
-
* Trigger a sync for a source: validate access, refresh the persisted
|
|
411
|
-
* status/configHash, ENQUEUE — and return the job snapshot immediately.
|
|
412
|
-
* The HTTP handler never awaits the run (the former in-handler `await`
|
|
413
|
-
* was the system-freeze root cause); completion bookkeeping is the
|
|
414
|
-
* queue's single writer.
|
|
415
|
-
*/
|
|
416
|
+
/** Trigger a sync for a source — `usecases/triggerSourceSync`, on this service's config store and queue. */
|
|
416
417
|
async triggerSourceSync(scope, params) {
|
|
417
|
-
|
|
418
|
-
const config = await this.#infra.sourceConfigs.get(scope, source);
|
|
419
|
-
if (!config?.sync) {
|
|
420
|
-
throw new Error(`No sync configuration found for "${source}".`);
|
|
421
|
-
}
|
|
422
|
-
if (!callerCanReadSource(config.permissions, params.caller)) {
|
|
423
|
-
// A DENIAL, not a server fault: a bare `Error` carries no `status`, so
|
|
424
|
-
// `wrapError` would redact an authorization outcome into an opaque 500.
|
|
425
|
-
throw new SourcePermissionDeniedError(source, 'read');
|
|
426
|
-
}
|
|
427
|
-
const updatedAt = this.#infra.clock.nowIso();
|
|
428
|
-
const currentHash = computeFilterHash({ exclude: config.sync.exclude, ...(config.sync.include ? { include: config.sync.include } : {}) });
|
|
429
|
-
const resetConfig = {
|
|
430
|
-
...config,
|
|
431
|
-
sync: { ...config.sync, status: armedStatus(config.sync.status), configHash: currentHash },
|
|
432
|
-
updatedAt,
|
|
433
|
-
};
|
|
434
|
-
await this.#infra.sourceConfigs.upsert(scope, resetConfig);
|
|
435
|
-
return this.#syncQueue.enqueue({
|
|
436
|
-
scope,
|
|
437
|
-
agentId: params.agentId,
|
|
438
|
-
source,
|
|
439
|
-
mode: 'full',
|
|
440
|
-
});
|
|
418
|
+
return triggerSourceSyncUseCase({ sourceConfigs: this.#infra.sourceConfigs, queue: this.#syncQueue, clock: this.#infra.clock }, scope, params);
|
|
441
419
|
}
|
|
442
420
|
/**
|
|
443
421
|
* Cancel every active sync job for one source in the project — regardless
|
|
@@ -507,9 +485,9 @@ export class BridgeService {
|
|
|
507
485
|
* so a connector owning a foreign scheme (`machine://`) has no way to declare a
|
|
508
486
|
* security floor through `uriPolicies`. This is that way, and it is safe
|
|
509
487
|
* because `pickConnectorFloorRules` returns restrict-only rows: a floor can
|
|
510
|
-
* clear a capability bit and can never set one.
|
|
511
|
-
*
|
|
512
|
-
*
|
|
488
|
+
* clear a capability bit and can never set one. A connector's non-floor path
|
|
489
|
+
* row is deliberately NOT applied (it would WIDEN access — an owner decision,
|
|
490
|
+
* not a side effect), so connectors declare floor rows only.
|
|
513
491
|
*
|
|
514
492
|
* `packageTrust` is re-checked as defence in depth. The `SourceLoader` already
|
|
515
493
|
* refuses to import an untrusted connector, so no untrusted kind reaches the
|
|
@@ -544,7 +522,7 @@ export class BridgeService {
|
|
|
544
522
|
agentId: access.agentId,
|
|
545
523
|
role: access.role ?? 'member',
|
|
546
524
|
grantedFeatures: access.grantedFeatures ?? [],
|
|
547
|
-
}, mode);
|
|
525
|
+
}, mode, sourceScopeOrigin(config.connection));
|
|
548
526
|
}
|
|
549
527
|
#toBridgeConfig(config, scope) {
|
|
550
528
|
const observed = config.scope.kind !== 'project' && config.scope.userId !== scope.userId;
|
|
@@ -562,42 +540,6 @@ export class BridgeService {
|
|
|
562
540
|
};
|
|
563
541
|
}
|
|
564
542
|
}
|
|
565
|
-
/**
|
|
566
|
-
* Does THIS caller hold source-level read?
|
|
567
|
-
*
|
|
568
|
-
* The predicate used to be `permissions.default.read`, which asked the wrong
|
|
569
|
-
* question. `applyScopeSeedPermissions` sets `default` to all-false on every
|
|
570
|
-
* NON-project source and grants the owner through `byUser` / `byRole` instead —
|
|
571
|
-
* so reading `default` alone told a user-scoped source's own creator they could
|
|
572
|
-
* not read it. The observable failure: attach a user-scoped source with a
|
|
573
|
-
* `manual` trigger, press Sync, get a 403, and the source never leaves "Never
|
|
574
|
-
* synced" — while an `auto` one worked, because the scheduler and the watcher
|
|
575
|
-
* never pass through here.
|
|
576
|
-
*
|
|
577
|
-
* `evaluateSourceLevelUriPolicy` layers `default` → `byRole` → `byUser` →
|
|
578
|
-
* `byAgent` exactly as every other gate does. This is a gate that asks the right
|
|
579
|
-
* question, not a removed gate: a non-creator without scope visibility still
|
|
580
|
-
* cannot reach the source at all, and an explicitly `read:false` caller is still
|
|
581
|
-
* refused.
|
|
582
|
-
*/
|
|
583
|
-
/**
|
|
584
|
-
* The status a source is armed with when a sync is enqueued: un-paused, but a
|
|
585
|
-
* FAILED source stays `error` until the queue's completion writer (the one
|
|
586
|
-
* status owner) settles the run — it reads that prior state to publish the
|
|
587
|
-
* recovery that resolves the failure notification.
|
|
588
|
-
*/
|
|
589
|
-
function armedStatus(status) {
|
|
590
|
-
return status === 'error' ? 'error' : 'active';
|
|
591
|
-
}
|
|
592
|
-
function callerCanReadSource(permissions, caller) {
|
|
593
|
-
return evaluateSourceLevelUriPolicy(permissions, {
|
|
594
|
-
userId: caller.userId,
|
|
595
|
-
agentId: caller.agentId,
|
|
596
|
-
role: caller.role,
|
|
597
|
-
priority: caller.priority,
|
|
598
|
-
rolePriorities: caller.rolePriorities,
|
|
599
|
-
}).read === true;
|
|
600
|
-
}
|
|
601
543
|
/**
|
|
602
544
|
* Seed the scope OWNER's rows on a new source.
|
|
603
545
|
*
|
|
@@ -609,7 +551,7 @@ function callerCanReadSource(permissions, caller) {
|
|
|
609
551
|
* name-keyed SEED DATA in exactly the shape this function already writes for
|
|
610
552
|
* `read`, and the kind decides it — nothing here is webtop-specific.
|
|
611
553
|
*
|
|
612
|
-
* `ownerDevice` is true for a
|
|
554
|
+
* `ownerDevice` is true for a device-plane source: it lives on its creator's OWN
|
|
613
555
|
* paired device (only a device's owner attaches one). At PROJECT scope the
|
|
614
556
|
* owner's `byUser` row is seeded and NO `byRole` exec row — a project admin
|
|
615
557
|
* never gets a shell on a member's machine by seed; other members reach it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BridgeService.js","sourceRoot":"","sources":["../../../src/services/BridgeService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BridgeService.js","sourceRoot":"","sources":["../../../src/services/BridgeService.ts"],"names":[],"mappings":"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"}
|
|
@@ -210,8 +210,9 @@ export declare class FilesystemService {
|
|
|
210
210
|
}): Promise<PendingRepairPage>;
|
|
211
211
|
/**
|
|
212
212
|
* The caller's OWN visible source slugs, sorted — the public face of
|
|
213
|
-
* `#listAccessibleSources`, i.e. `canAccessScope` + source-level `read`
|
|
214
|
-
*
|
|
213
|
+
* `#listAccessibleSources`, i.e. `canAccessScope` + (source-level `read` or a
|
|
214
|
+
* path rule that certainly grants the caller `read`) + effectively-enabled,
|
|
215
|
+
* exactly the filter the root `list` view already
|
|
215
216
|
* applies. It exists so a `source_not_configured` refusal can suggest what
|
|
216
217
|
* the caller CAN address without a raw `sourceConfigs.list()` read, which
|
|
217
218
|
* would turn a `files.read` error body into a cross-scope source enumerator.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilesystemService.d.ts","sourceRoot":"","sources":["../../../src/services/FilesystemService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"FilesystemService.d.ts","sourceRoot":"","sources":["../../../src/services/FilesystemService.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { scopeAccessCtxFromExecution, recordOwnerScope } from '../domain/scopeAc
|
|
|
2
2
|
import { isSourceEffectivelyEnabled } from '../domain/access/sourceEnabled.js';
|
|
3
3
|
import { checkUriPermission } from '../domain/access/uriPermission.js';
|
|
4
4
|
import { canReadUri } from '../domain/access/uriReadable.js';
|
|
5
|
+
import { callerReadGrantHeads, folderKey, grantPathFolders } from '../domain/access/callerPermissions.js';
|
|
5
6
|
import { isUriIndexable } from '../domain/access/uriIndexable.js';
|
|
6
7
|
import { connectorForSource } from '../domain/access/connectorForSource.js';
|
|
7
8
|
import { syncSourceBackground } from '../domain/access/syncSourceBackground.js';
|
|
@@ -19,17 +20,28 @@ import { listPendingPage, repairPendingPage } from '../usecases/pendingListing.j
|
|
|
19
20
|
import { pendingRecordFromNode, acceptPending, previewPending, assertPendingFreshness, revertPendingJournal } from '../usecases/pendingReview.js';
|
|
20
21
|
import { BrainError } from '../domain/BrainError.js';
|
|
21
22
|
import { buildFilesystemEventPayload } from '../domain/events.js';
|
|
22
|
-
import { canAccessScope } from '@neuralis/package-system/contracts';
|
|
23
|
-
import {
|
|
23
|
+
import { canAccessScope, sourcePlane } from '@neuralis/package-system/contracts';
|
|
24
|
+
import { HostConnector } from '../connectors/HostConnector.js';
|
|
24
25
|
import { xyCode, repoRelPathFromUri, rollupFolderGit, } from '../git/sourceGitStatus.js';
|
|
25
26
|
import { filterVisibleRepoNames, resolveGitCanWrite, resolveGitCanExec } from '../git/sourceGitControl.js';
|
|
26
|
-
import {
|
|
27
|
+
import { probePlaceOf } from '../git/gitPlace.js';
|
|
28
|
+
import { SourceNotConfiguredError, SourcePermissionDeniedError, SourceDisabledError, sourceScopeOrigin, } from '../domain/sourceConfig.js';
|
|
27
29
|
import { DEFAULT_QDRANT_SYNC_EXCLUDES } from '../domain/defaultPermissions.js';
|
|
28
30
|
import { resolveScanCap } from '../domain/scanCap.js';
|
|
29
31
|
import { getBrainConfigProvider, getBrainConfigNumber } from '../config/env.js';
|
|
30
32
|
import { resolveSourceLevelPermissions } from '../domain/permissionResolver.js';
|
|
31
33
|
import { listSourcePackagesUseCase } from '../usecases/listSourcePackages.js';
|
|
32
34
|
const ACCESSIBLE_CACHE_TTL_MS = 10_000;
|
|
35
|
+
/** The source-level (path-less) policy context of the accessible-source predicate. */
|
|
36
|
+
function sourceLevelCtx(ctx) {
|
|
37
|
+
return {
|
|
38
|
+
userId: ctx.userId,
|
|
39
|
+
role: ctx.role ?? 'member',
|
|
40
|
+
priority: ctx.priority,
|
|
41
|
+
rolePriorities: ctx.rolePriorities,
|
|
42
|
+
agentId: ctx.agentId,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
33
45
|
/**
|
|
34
46
|
* The pathspec (nested-repo-relative) to scope a NESTED repo's `git status` to
|
|
35
47
|
* the currently-listed folder (3a) — or `null` when the nested repo is entirely
|
|
@@ -139,7 +151,27 @@ export class FilesystemService {
|
|
|
139
151
|
for (const cfg of sourceConfigList)
|
|
140
152
|
readPolicyCache.set(cfg.source, cfg);
|
|
141
153
|
const filteredFiles = await this.#filterReadableNodes(ctx, scopeFiles, readPolicyCache);
|
|
142
|
-
|
|
154
|
+
// LIST ONLY: a folder on the literal path of the caller's OWN read grant
|
|
155
|
+
// (`x://a/` for `x://a/sec/**`) keeps its uri + name — never presence or
|
|
156
|
+
// git, never a file, never a sibling — so a grantee can walk down to it.
|
|
157
|
+
// Search, discovery and the git listings never read this set.
|
|
158
|
+
// Computed lazily, once per source per call, and only for a source with a
|
|
159
|
+
// folder the per-node gate refused.
|
|
160
|
+
const grantFolders = new Map();
|
|
161
|
+
const grantFoldersOf = (source) => {
|
|
162
|
+
let folders = grantFolders.get(source);
|
|
163
|
+
if (!folders) {
|
|
164
|
+
const cfg = readPolicyCache.get(source);
|
|
165
|
+
folders = cfg && accessible.has(source) ? grantPathFolders(callerReadGrantHeads(cfg, ctx)) : new Set();
|
|
166
|
+
grantFolders.set(source, folders);
|
|
167
|
+
}
|
|
168
|
+
return folders;
|
|
169
|
+
};
|
|
170
|
+
const filteredFolders = await this.#filterReadableNodes(ctx, scopeFolders, readPolicyCache, (f) => (grantFoldersOf(sourceFromUri(f.uri)).has(folderKey(f.uri)) ? { uri: f.uri, name: f.name } : null));
|
|
171
|
+
// Admitted without source-level read ⇒ admitted by a path grant alone.
|
|
172
|
+
const grantOnly = new Set(sourceConfigList
|
|
173
|
+
.filter((cfg) => accessible.has(cfg.source) && !resolveSourceLevelPermissions(cfg.permissions, sourceLevelCtx(ctx)).read)
|
|
174
|
+
.map((cfg) => cfg.source));
|
|
143
175
|
// Admin enrichment — permissions, sync_status, last_sync, + any
|
|
144
176
|
// configured-but-not-yet-walked sources that the admin UI needs to see.
|
|
145
177
|
// Scoped calls enrich only the scope's source.
|
|
@@ -165,6 +197,10 @@ export class FilesystemService {
|
|
|
165
197
|
const existing = registryByRoot.get(uriRoot);
|
|
166
198
|
const syncStatus = cfg.sync?.status;
|
|
167
199
|
const lastSync = cfg.sync?.lastSync;
|
|
200
|
+
// A failed sync's persisted error, when it is a fixed CODE (a device's
|
|
201
|
+
// `host_fs_denied`, a refused root) — never free text, which may name a path.
|
|
202
|
+
const lastSyncError = cfg.sync?.status === 'error' ? cfg.sync.lastSyncResult?.error : undefined;
|
|
203
|
+
const syncCode = typeof lastSyncError === 'string' && /^[a-z][a-z0-9_]{0,63}$/.test(lastSyncError) ? lastSyncError : undefined;
|
|
168
204
|
const enabled = cfg.enabled ?? true;
|
|
169
205
|
const { enabledEffective, liveness } = probes[i];
|
|
170
206
|
if (existing) {
|
|
@@ -175,14 +211,22 @@ export class FilesystemService {
|
|
|
175
211
|
existing.last_sync = lastSync;
|
|
176
212
|
existing.enabled = enabled;
|
|
177
213
|
existing.enabled_effective = enabledEffective;
|
|
214
|
+
existing.config_scope = cfg.scope.kind;
|
|
215
|
+
if (syncCode && !existing.last_error)
|
|
216
|
+
existing.last_error = syncCode;
|
|
178
217
|
if (liveness) {
|
|
179
218
|
existing.live = liveness.live;
|
|
180
219
|
if (liveness.reason)
|
|
181
220
|
existing.live_reason = liveness.reason;
|
|
221
|
+
if (liveness.notReady)
|
|
222
|
+
existing.live_not_ready = liveness.notReady;
|
|
182
223
|
}
|
|
224
|
+
const watch = this.#deps.getSyncWatch?.()?.watchStateFor(ctx.projectId, cfg.source);
|
|
225
|
+
if (watch)
|
|
226
|
+
existing.watch = watch;
|
|
183
227
|
}
|
|
184
228
|
else if (accessible.has(cfg.source)) {
|
|
185
|
-
const source_kind = cfg.connection?.kind
|
|
229
|
+
const source_kind = cfg.connection?.kind ?? deriveSourceKind(cfg.source);
|
|
186
230
|
const entry = {
|
|
187
231
|
uri_root: uriRoot,
|
|
188
232
|
source_kind,
|
|
@@ -191,19 +235,34 @@ export class FilesystemService {
|
|
|
191
235
|
...(lastSync ? { last_sync: lastSync } : {}),
|
|
192
236
|
enabled,
|
|
193
237
|
enabled_effective: enabledEffective,
|
|
194
|
-
|
|
238
|
+
config_scope: cfg.scope.kind,
|
|
239
|
+
...(syncCode ? { last_error: syncCode } : {}),
|
|
240
|
+
...(liveness ? { live: liveness.live, ...(liveness.reason ? { live_reason: liveness.reason } : {}), ...(liveness.notReady ? { live_not_ready: liveness.notReady } : {}) } : {}),
|
|
195
241
|
};
|
|
242
|
+
const watch = this.#deps.getSyncWatch?.()?.watchStateFor(ctx.projectId, cfg.source);
|
|
243
|
+
if (watch)
|
|
244
|
+
entry.watch = watch;
|
|
196
245
|
filteredSources.push(entry);
|
|
197
246
|
}
|
|
198
247
|
}
|
|
199
248
|
}
|
|
200
|
-
//
|
|
201
|
-
//
|
|
249
|
+
// A source admitted by a path grant alone: its counts measure what the
|
|
250
|
+
// caller cannot read (F29), so the row carries none of them.
|
|
251
|
+
for (const entry of filteredSources) {
|
|
252
|
+
if (!grantOnly.has(sourceFromUri(entry.uri_root)))
|
|
253
|
+
continue;
|
|
254
|
+
delete entry.on_disk;
|
|
255
|
+
delete entry.indexed_count;
|
|
256
|
+
delete entry.unindexed;
|
|
257
|
+
delete entry.walked;
|
|
258
|
+
delete entry.truncated;
|
|
259
|
+
}
|
|
260
|
+
// Icon enrichment from the connector manifest. The connector kind IS the
|
|
261
|
+
// registry key.
|
|
202
262
|
const kindRegistry = this.#deps.sourceKindRegistry;
|
|
203
263
|
if (kindRegistry) {
|
|
204
264
|
for (const entry of filteredSources) {
|
|
205
|
-
const
|
|
206
|
-
const metadata = kindRegistry.get(registryKind);
|
|
265
|
+
const metadata = kindRegistry.get(entry.source_kind);
|
|
207
266
|
if (metadata?.icon)
|
|
208
267
|
entry.kind_icon = metadata.icon;
|
|
209
268
|
}
|
|
@@ -226,7 +285,7 @@ export class FilesystemService {
|
|
|
226
285
|
// error/slowdown.
|
|
227
286
|
if (this.#deps.gitSummary && filteredSources.length > 0) {
|
|
228
287
|
const localCfgBySlug = new Map(sourceConfigList
|
|
229
|
-
.filter((c) => c.connection
|
|
288
|
+
.filter((c) => c.connection !== undefined && sourcePlane(c.connection.kind, c.connection.config) !== 'connector')
|
|
230
289
|
.map((c) => [c.source, c]));
|
|
231
290
|
// Per-caller write capability (G2.3) — the SAME two-plane gate the write
|
|
232
291
|
// routes enforce (files.write feature ∧ source-root write policy), NOT the
|
|
@@ -253,8 +312,8 @@ export class FilesystemService {
|
|
|
253
312
|
let root = null;
|
|
254
313
|
try {
|
|
255
314
|
const connector = this.#getConnector(slug);
|
|
256
|
-
if (connector instanceof
|
|
257
|
-
root = connector
|
|
315
|
+
if (connector instanceof HostConnector)
|
|
316
|
+
root = probePlaceOf(connector);
|
|
258
317
|
}
|
|
259
318
|
catch {
|
|
260
319
|
root = null;
|
|
@@ -299,7 +358,7 @@ export class FilesystemService {
|
|
|
299
358
|
// an error, never a slowdown of the vector/connector list paths above.
|
|
300
359
|
if (this.#deps.gitStatus && (filteredFiles.length > 0 || filteredFolders.length > 0)) {
|
|
301
360
|
const localSlugs = new Set(sourceConfigList
|
|
302
|
-
.filter((c) => c.connection
|
|
361
|
+
.filter((c) => c.connection !== undefined && sourcePlane(c.connection.kind, c.connection.config) === 'local')
|
|
303
362
|
.map((c) => c.source));
|
|
304
363
|
// `repoRelPathFromUri` = the post-`://` remainder with NO leading slash — git's
|
|
305
364
|
// `entry.path` has none, so it matches key-for-key (a `parseUri().path` leading
|
|
@@ -348,8 +407,8 @@ export class FilesystemService {
|
|
|
348
407
|
let root = null;
|
|
349
408
|
try {
|
|
350
409
|
const connector = this.#getConnector(slug);
|
|
351
|
-
if (connector instanceof
|
|
352
|
-
root = connector.
|
|
410
|
+
if (connector instanceof HostConnector)
|
|
411
|
+
root = connector.localRoot ?? null;
|
|
353
412
|
}
|
|
354
413
|
catch {
|
|
355
414
|
root = null;
|
|
@@ -724,11 +783,17 @@ export class FilesystemService {
|
|
|
724
783
|
* whole list. `cache` is pre-seeded from `sourceConfigList`, so a seeded source
|
|
725
784
|
* does no fetch; `brain://` short-circuits to allow inside `#canReadUri`.
|
|
726
785
|
*/
|
|
727
|
-
async #filterReadableNodes(ctx, nodes, cache) {
|
|
786
|
+
async #filterReadableNodes(ctx, nodes, cache, reveal) {
|
|
728
787
|
if (!this.#deps.sourceConfigs || nodes.length === 0)
|
|
729
788
|
return nodes;
|
|
730
789
|
const verdicts = await Promise.all(nodes.map((n) => this.#canReadUri(ctx, n.uri, cache).catch(() => false)));
|
|
731
|
-
|
|
790
|
+
const kept = [];
|
|
791
|
+
nodes.forEach((node, i) => {
|
|
792
|
+
const shown = verdicts[i] ? node : reveal?.(node) ?? null;
|
|
793
|
+
if (shown)
|
|
794
|
+
kept.push(shown);
|
|
795
|
+
});
|
|
796
|
+
return kept;
|
|
732
797
|
}
|
|
733
798
|
/**
|
|
734
799
|
* @see `domain/access/uriIndexable.ts` — the write path's index gate (the
|
|
@@ -753,12 +818,29 @@ export class FilesystemService {
|
|
|
753
818
|
return;
|
|
754
819
|
if (!this.#deps.sourceConfigs)
|
|
755
820
|
throw new SourceNotConfiguredError(source);
|
|
756
|
-
|
|
821
|
+
const configCache = new Map();
|
|
822
|
+
try {
|
|
823
|
+
await this.#checkPermission(ctx, trimmed, 'read', configCache);
|
|
824
|
+
}
|
|
825
|
+
catch (error) {
|
|
826
|
+
// Visible and enabled, only the PATH read is denied: a folder on the
|
|
827
|
+
// literal path of the caller's own read grant (or the source root above
|
|
828
|
+
// one) is still listable — judged as the directory `X/`; what it lists is
|
|
829
|
+
// filtered per node like any other list.
|
|
830
|
+
if (!(error instanceof SourcePermissionDeniedError))
|
|
831
|
+
throw error;
|
|
832
|
+
const config = configCache.get(source);
|
|
833
|
+
const heads = config ? callerReadGrantHeads(config, ctx) : [];
|
|
834
|
+
const key = folderKey(trimmed);
|
|
835
|
+
if (heads.length === 0 || (key !== `${source}://` && !grantPathFolders(heads).has(key)))
|
|
836
|
+
throw error;
|
|
837
|
+
}
|
|
757
838
|
}
|
|
758
839
|
/**
|
|
759
840
|
* The caller's OWN visible source slugs, sorted — the public face of
|
|
760
|
-
* `#listAccessibleSources`, i.e. `canAccessScope` + source-level `read`
|
|
761
|
-
*
|
|
841
|
+
* `#listAccessibleSources`, i.e. `canAccessScope` + (source-level `read` or a
|
|
842
|
+
* path rule that certainly grants the caller `read`) + effectively-enabled,
|
|
843
|
+
* exactly the filter the root `list` view already
|
|
762
844
|
* applies. It exists so a `source_not_configured` refusal can suggest what
|
|
763
845
|
* the caller CAN address without a raw `sourceConfigs.list()` read, which
|
|
764
846
|
* would turn a `files.read` error body into a cross-scope source enumerator.
|
|
@@ -769,7 +851,7 @@ export class FilesystemService {
|
|
|
769
851
|
return [...accessible].sort();
|
|
770
852
|
}
|
|
771
853
|
/**
|
|
772
|
-
* Scoped-access cache
|
|
854
|
+
* Scoped-access cache, TTL `brainAccessibleCacheTtlMs` (default 10 s), keyed on the full access context below.
|
|
773
855
|
* brain is always accessible.
|
|
774
856
|
*
|
|
775
857
|
* W3K — disabled sources (explicit `enabled === false` or
|
|
@@ -808,18 +890,14 @@ export class FilesystemService {
|
|
|
808
890
|
userId: ctx.userId,
|
|
809
891
|
projectId: ctx.projectId,
|
|
810
892
|
});
|
|
811
|
-
const permCtx =
|
|
812
|
-
userId: ctx.userId,
|
|
813
|
-
role: ctx.role ?? 'member',
|
|
814
|
-
priority: ctx.priority,
|
|
815
|
-
rolePriorities: ctx.rolePriorities,
|
|
816
|
-
agentId: ctx.agentId,
|
|
817
|
-
};
|
|
893
|
+
const permCtx = sourceLevelCtx(ctx);
|
|
818
894
|
for (const config of configs) {
|
|
819
|
-
if (!canAccessScope(config.scope, scopeCtx, 'read'))
|
|
895
|
+
if (!canAccessScope(config.scope, scopeCtx, 'read', sourceScopeOrigin(config.connection)))
|
|
820
896
|
continue;
|
|
821
897
|
const resolved = resolveSourceLevelPermissions(config.permissions, permCtx);
|
|
822
|
-
|
|
898
|
+
// A path rule that certainly grants THIS caller read admits the source
|
|
899
|
+
// too; what it lists stays filtered per node (#filterReadableNodes).
|
|
900
|
+
if (!resolved.read && callerReadGrantHeads(config, ctx).length === 0)
|
|
823
901
|
continue;
|
|
824
902
|
if (!includeDisabled) {
|
|
825
903
|
const enabled = await this.#isEffectivelyEnabled(ctx.projectId, config.source, config);
|
|
@@ -865,7 +943,7 @@ export class FilesystemService {
|
|
|
865
943
|
if (connector && typeof connector.probeConnection === 'function') {
|
|
866
944
|
try {
|
|
867
945
|
const probe = await connector.probeConnection();
|
|
868
|
-
return { live: probe.connected, ...(probe.reason ? { reason: probe.reason } : {}) };
|
|
946
|
+
return { live: probe.connected, ...(probe.reason ? { reason: probe.reason } : {}), ...(probe.notReady ? { notReady: probe.notReady } : {}) };
|
|
869
947
|
}
|
|
870
948
|
catch {
|
|
871
949
|
return { live: false };
|