@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.
Files changed (311) hide show
  1. package/README.md +79 -1409
  2. package/app/README.md +1 -1
  3. package/app/cards/FilesystemCardShell.tsx +42 -4
  4. package/app/cards/FilesystemChangeCard.tsx +34 -11
  5. package/app/cards/README.md +6 -5
  6. package/app/cards/diffUtils.ts +99 -1
  7. package/app/filesystem/FilesystemHost.tsx +17 -2
  8. package/app/filesystem/api/README.md +3 -3
  9. package/app/filesystem/api/index.ts +35 -11
  10. package/app/filesystem/api/projectPackages.ts +13 -102
  11. package/app/filesystem/domain/types.ts +30 -10
  12. package/app/filesystem/hooks/README.md +3 -3
  13. package/app/filesystem/hooks/useDiscoverableSources.ts +19 -30
  14. package/app/filesystem/hooks/useFilesystemSSE.ts +1 -1
  15. package/app/filesystem/host/README.md +5 -3
  16. package/app/filesystem/host/buildFilesystemHostValue.ts +19 -0
  17. package/app/filesystem/host/installFilesystemHostComponents.tsx +1 -1
  18. package/app/filesystem/lib/sourceKindForm.ts +118 -39
  19. package/app/filesystem/lib/treeVisualState.tsx +98 -4
  20. package/app/filesystem/store/README.md +1 -0
  21. package/app/filesystem/store/filesystemStore.ts +86 -5
  22. package/app/filesystem/store/gitSlice.ts +5 -0
  23. package/app/filesystem/store/helpers.ts +17 -0
  24. package/app/filesystem/store/listSlice.ts +8 -0
  25. package/app/filesystem/ui/CodeEditor.tsx +18 -3
  26. package/app/filesystem/ui/FileEditor.tsx +15 -10
  27. package/app/filesystem/ui/FileTree.tsx +41 -16
  28. package/app/filesystem/ui/FolderPicker.tsx +251 -0
  29. package/app/filesystem/ui/GitControlPanel.tsx +5 -0
  30. package/app/filesystem/ui/PackagesPanel.tsx +52 -374
  31. package/app/filesystem/ui/PolicyEditor.tsx +109 -24
  32. package/app/filesystem/ui/README.md +17 -11
  33. package/app/filesystem/ui/RawMediaPreview.tsx +58 -0
  34. package/app/filesystem/ui/SourceBranchHeader.tsx +4 -4
  35. package/app/filesystem/ui/SourcesPanel.tsx +420 -360
  36. package/app/filesystem/ui/Toolbar.tsx +1 -2
  37. package/app/shared/filesystem.png +0 -0
  38. package/dist/app/host.js +57 -49
  39. package/dist/scripts/sourceRootPairV1.d.ts +47 -0
  40. package/dist/scripts/sourceRootPairV1.d.ts.map +1 -0
  41. package/dist/scripts/sourceRootPairV1.js +147 -0
  42. package/dist/scripts/sourceRootPairV1.js.map +1 -0
  43. package/dist/scripts/sourceToFolderV1.d.ts +56 -0
  44. package/dist/scripts/sourceToFolderV1.d.ts.map +1 -0
  45. package/dist/scripts/sourceToFolderV1.js +152 -0
  46. package/dist/scripts/sourceToFolderV1.js.map +1 -0
  47. package/dist/scripts/sourceToHostV1.d.ts +56 -0
  48. package/dist/scripts/sourceToHostV1.d.ts.map +1 -0
  49. package/dist/scripts/sourceToHostV1.js +132 -0
  50. package/dist/scripts/sourceToHostV1.js.map +1 -0
  51. package/dist/src/connectors/AppSourceConfigStore.d.ts +17 -3
  52. package/dist/src/connectors/AppSourceConfigStore.d.ts.map +1 -1
  53. package/dist/src/connectors/AppSourceConfigStore.js +46 -6
  54. package/dist/src/connectors/AppSourceConfigStore.js.map +1 -1
  55. package/dist/src/connectors/HostConnector.d.ts +201 -0
  56. package/dist/src/connectors/HostConnector.d.ts.map +1 -0
  57. package/dist/src/connectors/HostConnector.js +903 -0
  58. package/dist/src/connectors/HostConnector.js.map +1 -0
  59. package/dist/src/connectors/inProcessTransport.d.ts +131 -0
  60. package/dist/src/connectors/inProcessTransport.d.ts.map +1 -0
  61. package/dist/src/connectors/inProcessTransport.js +447 -0
  62. package/dist/src/connectors/inProcessTransport.js.map +1 -0
  63. package/dist/src/domain/access/callerPermissions.d.ts +29 -0
  64. package/dist/src/domain/access/callerPermissions.d.ts.map +1 -1
  65. package/dist/src/domain/access/callerPermissions.js +85 -5
  66. package/dist/src/domain/access/callerPermissions.js.map +1 -1
  67. package/dist/src/domain/access/nativeLocalFence.d.ts +65 -0
  68. package/dist/src/domain/access/nativeLocalFence.d.ts.map +1 -0
  69. package/dist/src/domain/access/nativeLocalFence.js +171 -0
  70. package/dist/src/domain/access/nativeLocalFence.js.map +1 -0
  71. package/dist/src/domain/access/uriPermission.js +3 -3
  72. package/dist/src/domain/access/uriPermission.js.map +1 -1
  73. package/dist/src/domain/byteRange.d.ts +15 -0
  74. package/dist/src/domain/byteRange.d.ts.map +1 -0
  75. package/dist/src/domain/byteRange.js +30 -0
  76. package/dist/src/domain/byteRange.js.map +1 -0
  77. package/dist/src/domain/defaultPermissions.d.ts.map +1 -1
  78. package/dist/src/domain/defaultPermissions.js +29 -0
  79. package/dist/src/domain/defaultPermissions.js.map +1 -1
  80. package/dist/src/domain/mime.d.ts +8 -16
  81. package/dist/src/domain/mime.d.ts.map +1 -1
  82. package/dist/src/domain/mime.js +10 -99
  83. package/dist/src/domain/mime.js.map +1 -1
  84. package/dist/src/domain/paths.d.ts.map +1 -1
  85. package/dist/src/domain/paths.js +5 -3
  86. package/dist/src/domain/paths.js.map +1 -1
  87. package/dist/src/domain/sourceConfig.d.ts +52 -19
  88. package/dist/src/domain/sourceConfig.d.ts.map +1 -1
  89. package/dist/src/domain/sourceConfig.js +103 -19
  90. package/dist/src/domain/sourceConfig.js.map +1 -1
  91. package/dist/src/domain/sourcePackages.d.ts +8 -8
  92. package/dist/src/domain/sourcePackages.d.ts.map +1 -1
  93. package/dist/src/domain/sourceRootPair.d.ts +88 -0
  94. package/dist/src/domain/sourceRootPair.d.ts.map +1 -0
  95. package/dist/src/domain/sourceRootPair.js +108 -0
  96. package/dist/src/domain/sourceRootPair.js.map +1 -0
  97. package/dist/src/domain/syncTypes.d.ts +8 -1
  98. package/dist/src/domain/syncTypes.d.ts.map +1 -1
  99. package/dist/src/domain/syncTypes.js +1 -0
  100. package/dist/src/domain/syncTypes.js.map +1 -1
  101. package/dist/src/domain/types.d.ts +24 -1
  102. package/dist/src/domain/types.d.ts.map +1 -1
  103. package/dist/src/domain/uri.d.ts.map +1 -1
  104. package/dist/src/domain/uri.js +3 -2
  105. package/dist/src/domain/uri.js.map +1 -1
  106. package/dist/src/embeddings/clients/GeminiEmbedder.d.ts.map +1 -1
  107. package/dist/src/embeddings/clients/GeminiEmbedder.js +2 -5
  108. package/dist/src/embeddings/clients/GeminiEmbedder.js.map +1 -1
  109. package/dist/src/embeddings/clients/OpenAIEmbedder.d.ts.map +1 -1
  110. package/dist/src/embeddings/clients/OpenAIEmbedder.js +2 -3
  111. package/dist/src/embeddings/clients/OpenAIEmbedder.js.map +1 -1
  112. package/dist/src/embeddings/clients/QwenEmbedder.d.ts +2 -0
  113. package/dist/src/embeddings/clients/QwenEmbedder.d.ts.map +1 -1
  114. package/dist/src/embeddings/clients/QwenEmbedder.js +10 -2
  115. package/dist/src/embeddings/clients/QwenEmbedder.js.map +1 -1
  116. package/dist/src/embeddings/clients/VoyageEmbedder.d.ts +2 -0
  117. package/dist/src/embeddings/clients/VoyageEmbedder.d.ts.map +1 -1
  118. package/dist/src/embeddings/clients/VoyageEmbedder.js +8 -1
  119. package/dist/src/embeddings/clients/VoyageEmbedder.js.map +1 -1
  120. package/dist/src/embeddings/factory.d.ts +5 -3
  121. package/dist/src/embeddings/factory.d.ts.map +1 -1
  122. package/dist/src/embeddings/factory.js +7 -3
  123. package/dist/src/embeddings/factory.js.map +1 -1
  124. package/dist/src/embeddings/models.d.ts +1 -1
  125. package/dist/src/embeddings/models.d.ts.map +1 -1
  126. package/dist/src/embeddings/retry.js +1 -1
  127. package/dist/src/embeddings/retry.js.map +1 -1
  128. package/dist/src/embeddings/types.d.ts +6 -0
  129. package/dist/src/embeddings/types.d.ts.map +1 -1
  130. package/dist/src/embeddings/types.js +11 -0
  131. package/dist/src/embeddings/types.js.map +1 -1
  132. package/dist/src/git/GitRunner.d.ts +110 -30
  133. package/dist/src/git/GitRunner.d.ts.map +1 -1
  134. package/dist/src/git/GitRunner.js +511 -199
  135. package/dist/src/git/GitRunner.js.map +1 -1
  136. package/dist/src/git/GitWatchRegistry.d.ts +41 -35
  137. package/dist/src/git/GitWatchRegistry.d.ts.map +1 -1
  138. package/dist/src/git/GitWatchRegistry.js +61 -79
  139. package/dist/src/git/GitWatchRegistry.js.map +1 -1
  140. package/dist/src/git/gitPlace.d.ts +61 -0
  141. package/dist/src/git/gitPlace.d.ts.map +1 -0
  142. package/dist/src/git/gitPlace.js +74 -0
  143. package/dist/src/git/gitPlace.js.map +1 -0
  144. package/dist/src/git/sourceGitControl.d.ts +31 -19
  145. package/dist/src/git/sourceGitControl.d.ts.map +1 -1
  146. package/dist/src/git/sourceGitControl.js +208 -92
  147. package/dist/src/git/sourceGitControl.js.map +1 -1
  148. package/dist/src/git/sourceGitStatus.js +1 -1
  149. package/dist/src/git/sourceGitStatus.js.map +1 -1
  150. package/dist/src/git/untrackedStats.js +1 -1
  151. package/dist/src/git/untrackedStats.js.map +1 -1
  152. package/dist/src/index.d.ts +2 -1
  153. package/dist/src/index.d.ts.map +1 -1
  154. package/dist/src/index.js +2 -1
  155. package/dist/src/index.js.map +1 -1
  156. package/dist/src/lifecycle.d.ts +8 -11
  157. package/dist/src/lifecycle.d.ts.map +1 -1
  158. package/dist/src/lifecycle.js +2 -1
  159. package/dist/src/lifecycle.js.map +1 -1
  160. package/dist/src/routes/git.d.ts.map +1 -1
  161. package/dist/src/routes/git.js +183 -54
  162. package/dist/src/routes/git.js.map +1 -1
  163. package/dist/src/routes/helpers/uriGuard.d.ts +1 -1
  164. package/dist/src/routes/helpers/uriGuard.d.ts.map +1 -1
  165. package/dist/src/routes/helpers/uriGuard.js +3 -2
  166. package/dist/src/routes/helpers/uriGuard.js.map +1 -1
  167. package/dist/src/routes/helpers.d.ts +10 -3
  168. package/dist/src/routes/helpers.d.ts.map +1 -1
  169. package/dist/src/routes/helpers.js +12 -5
  170. package/dist/src/routes/helpers.js.map +1 -1
  171. package/dist/src/routes/list.d.ts.map +1 -1
  172. package/dist/src/routes/list.js +2 -3
  173. package/dist/src/routes/list.js.map +1 -1
  174. package/dist/src/routes/policies.d.ts +6 -4
  175. package/dist/src/routes/policies.d.ts.map +1 -1
  176. package/dist/src/routes/policies.js +22 -16
  177. package/dist/src/routes/policies.js.map +1 -1
  178. package/dist/src/routes/raw.d.ts.map +1 -1
  179. package/dist/src/routes/raw.js +65 -11
  180. package/dist/src/routes/raw.js.map +1 -1
  181. package/dist/src/routes/sources.d.ts +60 -18
  182. package/dist/src/routes/sources.d.ts.map +1 -1
  183. package/dist/src/routes/sources.js +411 -299
  184. package/dist/src/routes/sources.js.map +1 -1
  185. package/dist/src/services/BridgeService.d.ts +15 -35
  186. package/dist/src/services/BridgeService.d.ts.map +1 -1
  187. package/dist/src/services/BridgeService.js +30 -88
  188. package/dist/src/services/BridgeService.js.map +1 -1
  189. package/dist/src/services/FilesystemService.d.ts +3 -2
  190. package/dist/src/services/FilesystemService.d.ts.map +1 -1
  191. package/dist/src/services/FilesystemService.js +110 -32
  192. package/dist/src/services/FilesystemService.js.map +1 -1
  193. package/dist/src/services/FilesystemUiService.d.ts +4 -1
  194. package/dist/src/services/FilesystemUiService.d.ts.map +1 -1
  195. package/dist/src/services/FilesystemUiService.js +66 -25
  196. package/dist/src/services/FilesystemUiService.js.map +1 -1
  197. package/dist/src/services/SyncScheduler.d.ts +12 -4
  198. package/dist/src/services/SyncScheduler.d.ts.map +1 -1
  199. package/dist/src/services/SyncScheduler.js +37 -8
  200. package/dist/src/services/SyncScheduler.js.map +1 -1
  201. package/dist/src/services/baselineRepair.d.ts +13 -3
  202. package/dist/src/services/baselineRepair.d.ts.map +1 -1
  203. package/dist/src/services/baselineRepair.js +13 -3
  204. package/dist/src/services/baselineRepair.js.map +1 -1
  205. package/dist/src/services/declaredSources.d.ts +125 -42
  206. package/dist/src/services/declaredSources.d.ts.map +1 -1
  207. package/dist/src/services/declaredSources.js +117 -45
  208. package/dist/src/services/declaredSources.js.map +1 -1
  209. package/dist/src/store/dataFormats.d.ts +17 -2
  210. package/dist/src/store/dataFormats.d.ts.map +1 -1
  211. package/dist/src/store/dataFormats.js +18 -3
  212. package/dist/src/store/dataFormats.js.map +1 -1
  213. package/dist/src/sync/DeltaSyncRunner.d.ts.map +1 -1
  214. package/dist/src/sync/DeltaSyncRunner.js +144 -4
  215. package/dist/src/sync/DeltaSyncRunner.js.map +1 -1
  216. package/dist/src/sync/SyncJobQueue.d.ts +7 -2
  217. package/dist/src/sync/SyncJobQueue.d.ts.map +1 -1
  218. package/dist/src/sync/SyncJobQueue.js +16 -10
  219. package/dist/src/sync/SyncJobQueue.js.map +1 -1
  220. package/dist/src/sync/SyncWatchService.d.ts +21 -4
  221. package/dist/src/sync/SyncWatchService.d.ts.map +1 -1
  222. package/dist/src/sync/SyncWatchService.js +115 -10
  223. package/dist/src/sync/SyncWatchService.js.map +1 -1
  224. package/dist/src/sync/categoryInference.d.ts +1 -1
  225. package/dist/src/sync/categoryInference.js +1 -1
  226. package/dist/src/usecases/admitSourceRoot.d.ts +65 -0
  227. package/dist/src/usecases/admitSourceRoot.d.ts.map +1 -0
  228. package/dist/src/usecases/admitSourceRoot.js +85 -0
  229. package/dist/src/usecases/admitSourceRoot.js.map +1 -0
  230. package/dist/src/usecases/browseSourceFolders.d.ts +85 -0
  231. package/dist/src/usecases/browseSourceFolders.d.ts.map +1 -0
  232. package/dist/src/usecases/browseSourceFolders.js +210 -0
  233. package/dist/src/usecases/browseSourceFolders.js.map +1 -0
  234. package/dist/src/usecases/createDeclaredSources.d.ts +13 -2
  235. package/dist/src/usecases/createDeclaredSources.d.ts.map +1 -1
  236. package/dist/src/usecases/createDeclaredSources.js +39 -0
  237. package/dist/src/usecases/createDeclaredSources.js.map +1 -1
  238. package/dist/src/usecases/list.d.ts.map +1 -1
  239. package/dist/src/usecases/list.js +83 -26
  240. package/dist/src/usecases/list.js.map +1 -1
  241. package/dist/src/usecases/listAttachableDevices.d.ts +13 -0
  242. package/dist/src/usecases/listAttachableDevices.d.ts.map +1 -0
  243. package/dist/src/usecases/listAttachableDevices.js +10 -0
  244. package/dist/src/usecases/listAttachableDevices.js.map +1 -0
  245. package/dist/src/usecases/listSourcePackages.d.ts.map +1 -1
  246. package/dist/src/usecases/listSourcePackages.js +2 -5
  247. package/dist/src/usecases/listSourcePackages.js.map +1 -1
  248. package/dist/src/usecases/purgeExcludedPoints.d.ts.map +1 -1
  249. package/dist/src/usecases/purgeExcludedPoints.js +3 -2
  250. package/dist/src/usecases/purgeExcludedPoints.js.map +1 -1
  251. package/dist/src/usecases/readFiles.d.ts.map +1 -1
  252. package/dist/src/usecases/readFiles.js +15 -0
  253. package/dist/src/usecases/readFiles.js.map +1 -1
  254. package/dist/src/usecases/reconcileSourcePackageRoots.d.ts +1 -1
  255. package/dist/src/usecases/reconcileSourcePackageRoots.d.ts.map +1 -1
  256. package/dist/src/usecases/reconcileSourcePackageRoots.js +2 -1
  257. package/dist/src/usecases/reconcileSourcePackageRoots.js.map +1 -1
  258. package/dist/src/usecases/revokePrincipal.d.ts +7 -5
  259. package/dist/src/usecases/revokePrincipal.d.ts.map +1 -1
  260. package/dist/src/usecases/revokePrincipal.js +29 -7
  261. package/dist/src/usecases/revokePrincipal.js.map +1 -1
  262. package/dist/src/usecases/scheduleSourceSync.d.ts +7 -0
  263. package/dist/src/usecases/scheduleSourceSync.d.ts.map +1 -1
  264. package/dist/src/usecases/scheduleSourceSync.js +6 -5
  265. package/dist/src/usecases/scheduleSourceSync.js.map +1 -1
  266. package/dist/src/usecases/triggerSourceSync.d.ts +46 -0
  267. package/dist/src/usecases/triggerSourceSync.d.ts.map +1 -0
  268. package/dist/src/usecases/triggerSourceSync.js +75 -0
  269. package/dist/src/usecases/triggerSourceSync.js.map +1 -0
  270. package/dist/src/usecases/uploadBinary.d.ts +2 -1
  271. package/dist/src/usecases/uploadBinary.d.ts.map +1 -1
  272. package/dist/src/usecases/uploadBinary.js +2 -2
  273. package/dist/src/usecases/uploadBinary.js.map +1 -1
  274. package/dist/src/usecases/vector/endpointGuard.d.ts +1 -1
  275. package/dist/src/usecases/vector/endpointGuard.js +1 -1
  276. package/dist/src/vector/qdrantClient.d.ts +1 -1
  277. package/dist/src/vector/qdrantClient.js +1 -1
  278. package/dist/src/wiring.d.ts +3 -0
  279. package/dist/src/wiring.d.ts.map +1 -1
  280. package/dist/src/wiring.js +72 -6
  281. package/dist/src/wiring.js.map +1 -1
  282. package/package.json +145 -54
  283. package/skills/connect-business-data/SKILL.md +2 -2
  284. package/skills/create-package/SKILL.md +18 -18
  285. package/skills/create-package/references/config-and-credentials.md +16 -13
  286. package/skills/create-package/references/connectors-and-uri-policies.md +36 -27
  287. package/skills/create-package/references/manifest-and-discovery.md +12 -12
  288. package/skills/create-package/references/runtime-and-build.md +18 -18
  289. package/skills/create-package/references/skills-and-context.md +35 -19
  290. package/skills/create-package/references/surfaces-and-design.md +16 -16
  291. package/skills/create-package/references/team-and-workflows.md +2 -2
  292. package/skills/create-package/references/test-and-ship.md +17 -17
  293. package/skills/create-package/references/tools-and-schemas.md +5 -5
  294. package/skills/create-package/scripts/{check-package.sh → check-package.mjs} +78 -64
  295. package/skills/create-package/scripts/{verify-loaded.sh → verify-loaded.mjs} +156 -162
  296. package/skills/git/SKILL.md +31 -29
  297. package/skills/manage-files/SKILL.md +11 -14
  298. package/skills/manage-sources/SKILL.md +85 -45
  299. package/skills/manage-uri-policy/SKILL.md +9 -6
  300. package/skills/sync/SKILL.md +1 -1
  301. package/dist/src/connectors/LocalDiskConnector.d.ts +0 -171
  302. package/dist/src/connectors/LocalDiskConnector.d.ts.map +0 -1
  303. package/dist/src/connectors/LocalDiskConnector.js +0 -1233
  304. package/dist/src/connectors/LocalDiskConnector.js.map +0 -1
  305. package/skills/manage-files/scripts/copy.sh +0 -7
  306. package/skills/manage-files/scripts/create.sh +0 -7
  307. package/skills/manage-files/scripts/mkdir.sh +0 -7
  308. package/skills/manage-files/scripts/modify.sh +0 -7
  309. package/skills/manage-files/scripts/upload.sh +0 -16
  310. package/skills/manage-files/scripts/write.sh +0 -29
  311. 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, validatePermissionsUsersRules, SourcePermissionDeniedError } from '../domain/sourceConfig.js';
8
+ import { validateSourceConfig, validatePermissionsGrantOnlyRules, sourceScopeOrigin } from '../domain/sourceConfig.js';
9
9
  import { computeFilterHash } from '../domain/syncignore.js';
10
- import { canAccessScope, isConnectorPlaneExecKind, isHostPlaneKind } from '@neuralis/package-system/contracts';
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
- const absRoot = resolvePath(rawRoot);
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
- const usersRuleErrors = validatePermissionsUsersRules(params.permissions);
91
- if (usersRuleErrors.length > 0)
92
- throw new Error(usersRuleErrors.join(' '));
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.recognizesPackages !== undefined
123
- ? { recognizesPackages: params.recognizesPackages }
124
- : (existing.recognizesPackages !== undefined ? { recognizesPackages: existing.recognizesPackages } : {})),
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
- const usersRuleErrors = validatePermissionsUsersRules(params.permissions);
202
- if (usersRuleErrors.length > 0)
203
- throw new Error(usersRuleErrors.join(' '));
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), isHostPlaneKind(params.connection.kind)), source), params.connection), kindMetadata);
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.recognizesPackages !== undefined ? { recognizesPackages: params.recognizesPackages } : {}),
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
- const source = normalizeSource(params.source);
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. The connector's per-path ALLOW
511
- * matrix is deliberately NOT applied — those rows stay dead (turning them on
512
- * would WIDEN access, which is an owner decision, not a side effect).
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 host-plane source: it lives on its creator's OWN
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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,iCAAiC,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACvH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAiB5D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAC7H,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EACL,WAAW,EACX,iBAAiB,IAAI,wBAAwB,GAG9C,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EACL,oCAAoC,EACpC,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,8BAA8B,EAC9B,cAAc,GACf,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAE9F;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oBAAoB,CAClC,WAAoC,EACpC,UAA4B,EAC5B,KAA8B;IAE9B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,WAAW,CAAC;IAC9D,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,OAAO;QAAE,OAAO,WAAW,CAAC;IAC5H,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAuB,CAAC;IAC5D,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,IAAI,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC;IACjC,qEAAqE;IACrE,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI;QACnD,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,uBAAuB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACjI,MAAM,OAAO,GAAG,YAAY,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1C,OAAO,KAAK,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,CACzE,CAAC;IACF,IAAI,CAAC,SAAS;QAAE,OAAO,WAAW,CAAC;IAEnC,MAAM,IAAI,GAA4B;QACpC,GAAG,WAAW;QACd,MAAM,EAAE;YACN,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC;YAC7B,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YACpF,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YACpF,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE;SACzF;KACF,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AA6CD,MAAM,OAAO,aAAa;IACf,MAAM,CAAkB;IACxB,UAAU,CAAgB;IAC1B,qBAAqB,CAAc;IACnC,YAAY,CAAqB;IACjC,sBAAsB,CAA0E;IAChG,gBAAgB,CAAiC;IAE1D,YAAY,IAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,IAAI,CAAC,oBAAoB;YAAE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,IAAI,CAAC,qBAAqB;YAAE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACzF,IAAI,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,KAAwB,EAAE,MAAM,GAAwB,EAAE;QAChF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,OAAO,QAAQ;aACZ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;aAChD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;aACrE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,KAAwB,EACxB,MAoBC;QAED,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,cAAc,CAAC,CAAC;QACnD,CAAC;QACD,0EAA0E;QAC1E,yEAAyE;QACzE,oCAAoC,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC/E,uFAAuF;QACvF,MAAM,eAAe,GAAG,iCAAiC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC9E,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;YAC9D,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtI,OAAO;gBACL,IAAI,EAAE;oBACJ,GAAG,MAAM,CAAC,IAAI;oBACd,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ;oBACjC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,QAAQ;oBACzC,UAAU,EAAE,OAAO;oBACnB,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc;oBAC7C,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc;oBAC7C,kEAAkE;oBAClE,mEAAmE;oBACnE,mBAAmB;oBACnB,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9E,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChE;aACF,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEtD,MAAM,IAAI,GAAiB;YACzB,MAAM;YACN,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS;gBAClC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE;gBACrC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACtF,GAAG,WAAW;YACd,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvI,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS;gBACrC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1F,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/F,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,yEAAyE;YACzE,wEAAwE;YACxE,yEAAyE;YACzE,0EAA0E;YAC1E,GAAG,CAAC,QAAQ,CAAC,qBAAqB,KAAK,SAAS;gBAC9C,CAAC,CAAC,EAAE,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB,EAAE;gBAC3D,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QACF,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAElE,oEAAoE;QACpE,yEAAyE;QACzE,qEAAqE;QACrE,yEAAyE;QACzE,2BAA2B;QAC3B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,sEAAsE;YACtE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;YAC5F,IAAI,YAAY,IAAI,OAAO,KAAK,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;gBAC1D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QACD,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CACpB,KAAwB,EACxB,MAAuD;QAEvD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,cAAc,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,2DAA2D,MAAM,mBAAmB,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpI,CAAC;QACD,MAAM,IAAI,GAAiB;YACzB,GAAG,QAAQ;YACX,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;SACtC,CAAC;QACF,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,KAAwB,EACxB,MAwBC;QAED,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE9C,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,IAAI,yBAAyB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,sBAAsB,EAAE,CAAC;QACrC,CAAC;QACD,uFAAuF;QACvF,MAAM,eAAe,GAAG,iCAAiC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC9E,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAE3E,uBAAuB;QACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpE,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,mBAAmB,CAAC,CAAC;QACxD,CAAC;QAED,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,wBAAwB,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK;gBACnD,oFAAoF,CACrF,CAAC;QACJ,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CACvD,MAAM,CAAC,UAAU,CAAC,IAAI,EACtB,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAC/B,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uCAAuC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1H,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACvC,qEAAqE;QACrE,uEAAuE;QACvE,oEAAoE;QACpE,kDAAkD;QAClD,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAClD,IAAI,CAAC,qBAAqB,CACxB,IAAI,CAAC,uBAAuB,CAC1B,yBAAyB,CACvB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,KAAK,EACZ,KAAK,CAAC,MAAM,EACZ,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,EAC3E,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,QAAQ,CAC3E,EACD,MAAM,CACP,EACD,MAAM,CAAC,UAAU,CAClB,EACD,YAAY,CACb,CAAC;QACF,MAAM,MAAM,GAAiB;YAC3B,MAAM;YACN,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,iBAAiB;YAC9B,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChB,IAAI,EAAE;oBACJ,GAAG,MAAM,CAAC,IAAI;oBACd,MAAM,EAAE,QAAiB;oBACzB,UAAU,EAAE,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;iBAClI;aACF,CAAC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,KAAK,CAAC,MAAM;SACxB,CAAC;QAEF,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEpE,yBAAyB;QACzB,MAAM,mBAAmB,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAE7F,4EAA4E;QAC5E,wEAAwE;QACxE,0EAA0E;QAC1E,WAAW;QACX,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAClG,CAAC;YAAC,MAAM,CAAC;gBACP,sDAAsD;YACxD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,YAAY,CAChB,KAAwB,EACxB,MAAc,EACd,IAAI,GAAiD,EAAE;QAEvD,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,cAAc,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAE/B,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAE5C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACvC,KAAK;YACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;YAC3B,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,aAAa,CACjB,KAAwB,EACxB,MAAmF;QAEnF,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,cAAc,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,8BAA8B,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC7B,KAAK;gBACL,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM;gBACN,KAAK,EAAE,IAAI;gBACX,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAmB,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,CAAC;aAClH,CAAC,CAAC;QACL,CAAC;QAED,uEAAuE;QACvE,uDAAuD;QACvD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEtC,6DAA6D;QAC7D,MAAM,WAAW,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1I,MAAM,aAAa,GAAiB;YAClC,GAAG,MAAM;YACT,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE;YAC1I,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;SACtC,CAAC;QACF,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC7B,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM;YACN,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAClB,KAAwB,EACxB,MAA0B;QAE1B,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,cAAc,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,8BAA8B,CAAC,CAAC;QAEnF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEtC,MAAM,WAAW,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1I,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE;YAC5C,GAAG,MAAM;YACT,IAAI,EAAE;gBACJ,GAAG,MAAM,CAAC,IAAI;gBACd,QAAQ,EAAE,SAAS;gBACnB,cAAc,EAAE,SAAS;gBACzB,UAAU,EAAE,WAAW;gBACvB,MAAM,EAAE,QAAQ;gBAChB,cAAc,EAAE,SAAS;aAC1B;YACD,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;SACtC,CAAC,CAAC;QAEH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,gBAAgB,CACpB,KAAwB,EACxB,MAAM,GAAwB,EAAE;QAOhC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACpG,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;YAC5C,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,MAAM;YAC1C,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ;SACjC,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CACnB,KAAwB,EACxB,MAAc,EACd,MAAM,GAAwB,EAAE;QAEhC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACpE,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,4GAA4G;IAC5G,KAAK,CAAC,iBAAiB,CAAC,KAAwB,EAAE,MAA+B;QAC/E,OAAO,wBAAwB,CAC7B,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAC9F,KAAK,EACL,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,KAAwB,EAAE,MAAc;QACvD,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAC9B,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CACxE,GAAG,CAAC,CAAC;IACR,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,KAAwB,EAAE,MAAc;QACjD,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;aACnD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QACxF,OAAO,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IACjD,CAAC;IAED,iFAAiF;IACjF,YAAY,CAAC,SAAiB;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACH,uBAAuB,CACrB,WAAoC,EACpC,MAAc;QAEd,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,CAAC;QAClD,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAChF,IAAI,CAAC,YAAY;YAAE,OAAO,WAAW,CAAC;QACtC,MAAM,SAAS,GAAuC,EAAE,CAAC;QACzD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,SAAS,CAAC,IAAI,CAAC,GAAG,8BAA8B,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,WAAW,CAAC;QAC/C,0EAA0E;QAC1E,4EAA4E;QAC5E,2EAA2E;QAC3E,4EAA4E;QAC5E,0EAA0E;QAC1E,sEAAsE;QACtE,0EAA0E;QAC1E,kEAAkE;QAClE,MAAM,MAAM,GAAG,cAAc,CAAC;YAC5B,WAA0D;YAC1D,GAAG,SAAS;SACb,CAAC,CAAC;QACH,OAAO,MAA4C,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,qBAAqB,CACnB,WAAoC,EACpC,YAAgC;QAEhC,IAAI,YAAY,CAAC,YAAY,KAAK,WAAW;YAAE,OAAO,WAAW,CAAC;QAClE,MAAM,MAAM,GAAG,uBAAuB,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QACxE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,WAAW,CAAC;QAC5C,OAAO;YACL,GAAG,WAAW;YACd,KAAK,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC;SACjD,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,qBAAqB,CACnB,WAAoC,EACpC,UAA4B;QAE5B,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;QACxC,OAAO,oBAAoB,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,aAAa,CACX,MAAoB,EACpB,KAAwB,EACxB,IAAsB,EACtB,MAAM,GAAwB,EAAE;QAEhC,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE;YAClC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,QAAQ;YAC7B,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE;SAC9C,EAAE,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,eAAe,CAAC,MAAoB,EAAE,KAAwB;QAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;QACzF,OAAO;YACL,GAAG,MAAM;YACT,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;YAC5C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;gBACpC,KAAK,EAAE;oBACL,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;oBAC3B,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5E;aACF,CAAC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;CACF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,yBAAyB,CACvC,WAAoC,EACpC,WAAwB,EACxB,SAAiB,EACjB,WAAW,GAAG,KAAK,EACnB,WAAW,GAAG,KAAK;IAEnB,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO;gBACL,GAAG,WAAW;gBACd,MAAM,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;aAChG,CAAC;QACJ,CAAC;QACD,yEAAyE;QACzE,0EAA0E;QAC1E,IAAI,CAAC,WAAW;YAAE,OAAO,WAAW,CAAC;QACrC,OAAO;YACL,GAAG,WAAW;YACd,MAAM,EAAE;gBACN,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC;gBAC7B,KAAK,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;gBAC3D,KAAK,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;aAC5D;SACF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,IAAI,SAAS,CAAC;IAChD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,KAAK,MAAM;QACxC,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QACvF,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;IACvB,OAAO;QACL,GAAG,WAAW;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;QACnD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,MAAM,EAAE;YACN,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC;YAC7B,0EAA0E;YAC1E,6EAA6E;YAC7E,4EAA4E;YAC5E,kDAAkD;YAClD,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;YACrB,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;SACtB;QACD,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;YACjC,OAAO,EAAE;gBACP,GAAG,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC9B,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;aAC3F;SACF,CAAC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
@@ -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
- * effectively-enabled, exactly the filter the root `list` view already
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":"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"}
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 { LocalDiskConnector } from '../connectors/LocalDiskConnector.js';
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 { SourceNotConfiguredError, SourcePermissionDeniedError, SourceDisabledError, } from '../domain/sourceConfig.js';
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
- const filteredFolders = await this.#filterReadableNodes(ctx, scopeFolders, readPolicyCache);
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 === 'local' ? 'local-disk' : (cfg.connection?.kind ?? deriveSourceKind(cfg.source));
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
- ...(liveness ? { live: liveness.live, ...(liveness.reason ? { live_reason: liveness.reason } : {}) } : {}),
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
- // Icon enrichment from the connector manifest. Connector kind is the
201
- // registry key (`local-disk` is a UI-side rename of the `local` kind).
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 registryKind = entry.source_kind === 'local-disk' ? 'local' : entry.source_kind;
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?.kind === 'local')
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 LocalDiskConnector)
257
- root = connector.root;
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?.kind === 'local')
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 LocalDiskConnector)
352
- root = connector.root;
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
- return nodes.filter((_, i) => verdicts[i]);
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
- await this.#checkPermission(ctx, trimmed, 'read');
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
- * effectively-enabled, exactly the filter the root `list` view already
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 with 10s TTL per `userId:projectId`.
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
- if (!resolved.read)
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 };