@neuralis/brain-core 0.3.1 → 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 (371) hide show
  1. package/README.md +88 -1417
  2. package/app/README.md +4 -4
  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 +24 -2
  8. package/app/filesystem/README.md +1 -1
  9. package/app/filesystem/api/README.md +3 -3
  10. package/app/filesystem/api/index.ts +38 -14
  11. package/app/filesystem/api/projectPackages.ts +13 -102
  12. package/app/filesystem/domain/types.ts +30 -10
  13. package/app/filesystem/hooks/README.md +4 -4
  14. package/app/filesystem/hooks/useDiscoverableSources.ts +19 -30
  15. package/app/filesystem/hooks/useFilesystemSSE.ts +42 -2
  16. package/app/filesystem/host/README.md +6 -4
  17. package/app/filesystem/host/buildFilesystemHostValue.ts +28 -2
  18. package/app/filesystem/host/installFilesystemHostComponents.tsx +1 -1
  19. package/app/filesystem/lib/sourceKindForm.ts +210 -27
  20. package/app/filesystem/lib/treeVisualState.tsx +98 -4
  21. package/app/filesystem/store/README.md +1 -0
  22. package/app/filesystem/store/filesystemStore.ts +99 -8
  23. package/app/filesystem/store/gitSlice.ts +5 -0
  24. package/app/filesystem/store/helpers.ts +17 -0
  25. package/app/filesystem/store/listSlice.ts +8 -0
  26. package/app/filesystem/ui/CodeEditor.tsx +18 -3
  27. package/app/filesystem/ui/DiscoverDock.tsx +5 -1
  28. package/app/filesystem/ui/FileEditor.tsx +15 -10
  29. package/app/filesystem/ui/FileTree.tsx +75 -24
  30. package/app/filesystem/ui/FilesystemWidget.tsx +10 -2
  31. package/app/filesystem/ui/FolderPicker.tsx +251 -0
  32. package/app/filesystem/ui/GitControlPanel.tsx +7 -2
  33. package/app/filesystem/ui/PackagesPanel.tsx +52 -374
  34. package/app/filesystem/ui/PendingChangesPanel.tsx +1 -1
  35. package/app/filesystem/ui/PolicyEditor.tsx +109 -24
  36. package/app/filesystem/ui/README.md +30 -23
  37. package/app/filesystem/ui/RawMediaPreview.tsx +58 -0
  38. package/app/filesystem/ui/SourceBranchHeader.tsx +4 -4
  39. package/app/filesystem/ui/SourcesPanel.tsx +502 -342
  40. package/app/filesystem/ui/Toolbar.tsx +1 -2
  41. package/app/filesystem/ui/VectorHealthPanel.tsx +2 -2
  42. package/app/shared/filesystem.png +0 -0
  43. package/dist/app/host.js +58 -46
  44. package/dist/scripts/sourceRootPairV1.d.ts +47 -0
  45. package/dist/scripts/sourceRootPairV1.d.ts.map +1 -0
  46. package/dist/scripts/sourceRootPairV1.js +147 -0
  47. package/dist/scripts/sourceRootPairV1.js.map +1 -0
  48. package/dist/scripts/sourceToFolderV1.d.ts +56 -0
  49. package/dist/scripts/sourceToFolderV1.d.ts.map +1 -0
  50. package/dist/scripts/sourceToFolderV1.js +152 -0
  51. package/dist/scripts/sourceToFolderV1.js.map +1 -0
  52. package/dist/scripts/sourceToHostV1.d.ts +56 -0
  53. package/dist/scripts/sourceToHostV1.d.ts.map +1 -0
  54. package/dist/scripts/sourceToHostV1.js +132 -0
  55. package/dist/scripts/sourceToHostV1.js.map +1 -0
  56. package/dist/src/channels/filesystem.d.ts +1 -1
  57. package/dist/src/channels/filesystem.js +1 -1
  58. package/dist/src/connectors/AppSourceConfigStore.d.ts +17 -3
  59. package/dist/src/connectors/AppSourceConfigStore.d.ts.map +1 -1
  60. package/dist/src/connectors/AppSourceConfigStore.js +46 -6
  61. package/dist/src/connectors/AppSourceConfigStore.js.map +1 -1
  62. package/dist/src/connectors/HostConnector.d.ts +201 -0
  63. package/dist/src/connectors/HostConnector.d.ts.map +1 -0
  64. package/dist/src/connectors/HostConnector.js +903 -0
  65. package/dist/src/connectors/HostConnector.js.map +1 -0
  66. package/dist/src/connectors/inProcessTransport.d.ts +131 -0
  67. package/dist/src/connectors/inProcessTransport.d.ts.map +1 -0
  68. package/dist/src/connectors/inProcessTransport.js +447 -0
  69. package/dist/src/connectors/inProcessTransport.js.map +1 -0
  70. package/dist/src/domain/access/callerPermissions.d.ts +29 -0
  71. package/dist/src/domain/access/callerPermissions.d.ts.map +1 -1
  72. package/dist/src/domain/access/callerPermissions.js +85 -5
  73. package/dist/src/domain/access/callerPermissions.js.map +1 -1
  74. package/dist/src/domain/access/nativeLocalFence.d.ts +65 -0
  75. package/dist/src/domain/access/nativeLocalFence.d.ts.map +1 -0
  76. package/dist/src/domain/access/nativeLocalFence.js +171 -0
  77. package/dist/src/domain/access/nativeLocalFence.js.map +1 -0
  78. package/dist/src/domain/access/uriPermission.js +3 -3
  79. package/dist/src/domain/access/uriPermission.js.map +1 -1
  80. package/dist/src/domain/byteRange.d.ts +15 -0
  81. package/dist/src/domain/byteRange.d.ts.map +1 -0
  82. package/dist/src/domain/byteRange.js +30 -0
  83. package/dist/src/domain/byteRange.js.map +1 -0
  84. package/dist/src/domain/defaultPermissions.d.ts.map +1 -1
  85. package/dist/src/domain/defaultPermissions.js +29 -0
  86. package/dist/src/domain/defaultPermissions.js.map +1 -1
  87. package/dist/src/domain/mime.d.ts +11 -19
  88. package/dist/src/domain/mime.d.ts.map +1 -1
  89. package/dist/src/domain/mime.js +13 -102
  90. package/dist/src/domain/mime.js.map +1 -1
  91. package/dist/src/domain/paths.d.ts.map +1 -1
  92. package/dist/src/domain/paths.js +5 -3
  93. package/dist/src/domain/paths.js.map +1 -1
  94. package/dist/src/domain/scopeAccessCtx.d.ts +2 -2
  95. package/dist/src/domain/scopeAccessCtx.js +2 -2
  96. package/dist/src/domain/sourceConfig.d.ts +52 -19
  97. package/dist/src/domain/sourceConfig.d.ts.map +1 -1
  98. package/dist/src/domain/sourceConfig.js +103 -19
  99. package/dist/src/domain/sourceConfig.js.map +1 -1
  100. package/dist/src/domain/sourcePackages.d.ts +8 -8
  101. package/dist/src/domain/sourcePackages.d.ts.map +1 -1
  102. package/dist/src/domain/sourceRootPair.d.ts +88 -0
  103. package/dist/src/domain/sourceRootPair.d.ts.map +1 -0
  104. package/dist/src/domain/sourceRootPair.js +108 -0
  105. package/dist/src/domain/sourceRootPair.js.map +1 -0
  106. package/dist/src/domain/syncTypes.d.ts +8 -1
  107. package/dist/src/domain/syncTypes.d.ts.map +1 -1
  108. package/dist/src/domain/syncTypes.js +1 -0
  109. package/dist/src/domain/syncTypes.js.map +1 -1
  110. package/dist/src/domain/types.d.ts +32 -2
  111. package/dist/src/domain/types.d.ts.map +1 -1
  112. package/dist/src/domain/uri.d.ts.map +1 -1
  113. package/dist/src/domain/uri.js +3 -2
  114. package/dist/src/domain/uri.js.map +1 -1
  115. package/dist/src/embeddings/clients/GeminiEmbedder.d.ts.map +1 -1
  116. package/dist/src/embeddings/clients/GeminiEmbedder.js +2 -5
  117. package/dist/src/embeddings/clients/GeminiEmbedder.js.map +1 -1
  118. package/dist/src/embeddings/clients/OpenAIEmbedder.d.ts.map +1 -1
  119. package/dist/src/embeddings/clients/OpenAIEmbedder.js +2 -3
  120. package/dist/src/embeddings/clients/OpenAIEmbedder.js.map +1 -1
  121. package/dist/src/embeddings/clients/QwenEmbedder.d.ts +2 -0
  122. package/dist/src/embeddings/clients/QwenEmbedder.d.ts.map +1 -1
  123. package/dist/src/embeddings/clients/QwenEmbedder.js +10 -2
  124. package/dist/src/embeddings/clients/QwenEmbedder.js.map +1 -1
  125. package/dist/src/embeddings/clients/VoyageEmbedder.d.ts +2 -0
  126. package/dist/src/embeddings/clients/VoyageEmbedder.d.ts.map +1 -1
  127. package/dist/src/embeddings/clients/VoyageEmbedder.js +8 -1
  128. package/dist/src/embeddings/clients/VoyageEmbedder.js.map +1 -1
  129. package/dist/src/embeddings/factory.d.ts +5 -3
  130. package/dist/src/embeddings/factory.d.ts.map +1 -1
  131. package/dist/src/embeddings/factory.js +7 -3
  132. package/dist/src/embeddings/factory.js.map +1 -1
  133. package/dist/src/embeddings/models.d.ts +1 -1
  134. package/dist/src/embeddings/models.d.ts.map +1 -1
  135. package/dist/src/embeddings/retry.js +1 -1
  136. package/dist/src/embeddings/retry.js.map +1 -1
  137. package/dist/src/embeddings/types.d.ts +6 -0
  138. package/dist/src/embeddings/types.d.ts.map +1 -1
  139. package/dist/src/embeddings/types.js +11 -0
  140. package/dist/src/embeddings/types.js.map +1 -1
  141. package/dist/src/events/pending.d.ts +1 -1
  142. package/dist/src/events/pending.js +1 -1
  143. package/dist/src/git/GitRunner.d.ts +110 -30
  144. package/dist/src/git/GitRunner.d.ts.map +1 -1
  145. package/dist/src/git/GitRunner.js +511 -199
  146. package/dist/src/git/GitRunner.js.map +1 -1
  147. package/dist/src/git/GitWatchRegistry.d.ts +41 -35
  148. package/dist/src/git/GitWatchRegistry.d.ts.map +1 -1
  149. package/dist/src/git/GitWatchRegistry.js +61 -79
  150. package/dist/src/git/GitWatchRegistry.js.map +1 -1
  151. package/dist/src/git/gitPlace.d.ts +61 -0
  152. package/dist/src/git/gitPlace.d.ts.map +1 -0
  153. package/dist/src/git/gitPlace.js +74 -0
  154. package/dist/src/git/gitPlace.js.map +1 -0
  155. package/dist/src/git/sourceGitControl.d.ts +33 -21
  156. package/dist/src/git/sourceGitControl.d.ts.map +1 -1
  157. package/dist/src/git/sourceGitControl.js +211 -95
  158. package/dist/src/git/sourceGitControl.js.map +1 -1
  159. package/dist/src/git/sourceGitStatus.js +1 -1
  160. package/dist/src/git/sourceGitStatus.js.map +1 -1
  161. package/dist/src/git/untrackedStats.js +1 -1
  162. package/dist/src/git/untrackedStats.js.map +1 -1
  163. package/dist/src/index.d.ts +2 -1
  164. package/dist/src/index.d.ts.map +1 -1
  165. package/dist/src/index.js +2 -1
  166. package/dist/src/index.js.map +1 -1
  167. package/dist/src/lifecycle.d.ts +9 -12
  168. package/dist/src/lifecycle.d.ts.map +1 -1
  169. package/dist/src/lifecycle.js +2 -1
  170. package/dist/src/lifecycle.js.map +1 -1
  171. package/dist/src/routes/approve.d.ts +1 -1
  172. package/dist/src/routes/approve.js +1 -1
  173. package/dist/src/routes/events.d.ts +1 -1
  174. package/dist/src/routes/events.js +1 -1
  175. package/dist/src/routes/git.d.ts +7 -7
  176. package/dist/src/routes/git.d.ts.map +1 -1
  177. package/dist/src/routes/git.js +201 -72
  178. package/dist/src/routes/git.js.map +1 -1
  179. package/dist/src/routes/health.d.ts +6 -6
  180. package/dist/src/routes/health.js +12 -12
  181. package/dist/src/routes/helpers/sourceNotConfigured.d.ts +1 -1
  182. package/dist/src/routes/helpers/sourceNotConfigured.js +1 -1
  183. package/dist/src/routes/helpers/uriGuard.d.ts +1 -1
  184. package/dist/src/routes/helpers/uriGuard.d.ts.map +1 -1
  185. package/dist/src/routes/helpers/uriGuard.js +3 -2
  186. package/dist/src/routes/helpers/uriGuard.js.map +1 -1
  187. package/dist/src/routes/helpers.d.ts +11 -4
  188. package/dist/src/routes/helpers.d.ts.map +1 -1
  189. package/dist/src/routes/helpers.js +13 -6
  190. package/dist/src/routes/helpers.js.map +1 -1
  191. package/dist/src/routes/list.d.ts +1 -1
  192. package/dist/src/routes/list.d.ts.map +1 -1
  193. package/dist/src/routes/list.js +3 -4
  194. package/dist/src/routes/list.js.map +1 -1
  195. package/dist/src/routes/pending.d.ts +4 -4
  196. package/dist/src/routes/pending.js +9 -9
  197. package/dist/src/routes/policies.d.ts +10 -8
  198. package/dist/src/routes/policies.d.ts.map +1 -1
  199. package/dist/src/routes/policies.js +31 -25
  200. package/dist/src/routes/policies.js.map +1 -1
  201. package/dist/src/routes/raw.d.ts +1 -1
  202. package/dist/src/routes/raw.d.ts.map +1 -1
  203. package/dist/src/routes/raw.js +66 -12
  204. package/dist/src/routes/raw.js.map +1 -1
  205. package/dist/src/routes/read.d.ts +1 -1
  206. package/dist/src/routes/read.js +1 -1
  207. package/dist/src/routes/search.d.ts +1 -1
  208. package/dist/src/routes/search.js +1 -1
  209. package/dist/src/routes/sources.d.ts +63 -6
  210. package/dist/src/routes/sources.d.ts.map +1 -1
  211. package/dist/src/routes/sources.js +494 -382
  212. package/dist/src/routes/sources.js.map +1 -1
  213. package/dist/src/routes/upload.d.ts +1 -1
  214. package/dist/src/routes/upload.js +1 -1
  215. package/dist/src/routes/write.d.ts +2 -2
  216. package/dist/src/routes/write.js +2 -2
  217. package/dist/src/services/BridgeService.d.ts +21 -35
  218. package/dist/src/services/BridgeService.d.ts.map +1 -1
  219. package/dist/src/services/BridgeService.js +42 -88
  220. package/dist/src/services/BridgeService.js.map +1 -1
  221. package/dist/src/services/FilesystemService.d.ts +4 -3
  222. package/dist/src/services/FilesystemService.d.ts.map +1 -1
  223. package/dist/src/services/FilesystemService.js +112 -34
  224. package/dist/src/services/FilesystemService.js.map +1 -1
  225. package/dist/src/services/FilesystemUiService.d.ts +4 -1
  226. package/dist/src/services/FilesystemUiService.d.ts.map +1 -1
  227. package/dist/src/services/FilesystemUiService.js +66 -25
  228. package/dist/src/services/FilesystemUiService.js.map +1 -1
  229. package/dist/src/services/SyncScheduler.d.ts +12 -4
  230. package/dist/src/services/SyncScheduler.d.ts.map +1 -1
  231. package/dist/src/services/SyncScheduler.js +37 -8
  232. package/dist/src/services/SyncScheduler.js.map +1 -1
  233. package/dist/src/services/baselineRepair.d.ts +13 -3
  234. package/dist/src/services/baselineRepair.d.ts.map +1 -1
  235. package/dist/src/services/baselineRepair.js +13 -3
  236. package/dist/src/services/baselineRepair.js.map +1 -1
  237. package/dist/src/services/declaredSources.d.ts +132 -43
  238. package/dist/src/services/declaredSources.d.ts.map +1 -1
  239. package/dist/src/services/declaredSources.js +118 -45
  240. package/dist/src/services/declaredSources.js.map +1 -1
  241. package/dist/src/store/dataFormats.d.ts +17 -2
  242. package/dist/src/store/dataFormats.d.ts.map +1 -1
  243. package/dist/src/store/dataFormats.js +18 -3
  244. package/dist/src/store/dataFormats.js.map +1 -1
  245. package/dist/src/sync/DeltaSyncRunner.d.ts.map +1 -1
  246. package/dist/src/sync/DeltaSyncRunner.js +144 -4
  247. package/dist/src/sync/DeltaSyncRunner.js.map +1 -1
  248. package/dist/src/sync/SyncJobQueue.d.ts +7 -2
  249. package/dist/src/sync/SyncJobQueue.d.ts.map +1 -1
  250. package/dist/src/sync/SyncJobQueue.js +16 -10
  251. package/dist/src/sync/SyncJobQueue.js.map +1 -1
  252. package/dist/src/sync/SyncWatchService.d.ts +21 -4
  253. package/dist/src/sync/SyncWatchService.d.ts.map +1 -1
  254. package/dist/src/sync/SyncWatchService.js +115 -10
  255. package/dist/src/sync/SyncWatchService.js.map +1 -1
  256. package/dist/src/sync/categoryInference.d.ts +1 -1
  257. package/dist/src/sync/categoryInference.js +1 -1
  258. package/dist/src/tools/execCtx.d.ts +2 -2
  259. package/dist/src/tools/execCtx.js +2 -2
  260. package/dist/src/tools/fs_read.d.ts.map +1 -1
  261. package/dist/src/tools/fs_read.js +5 -0
  262. package/dist/src/tools/fs_read.js.map +1 -1
  263. package/dist/src/usecases/admitSourceRoot.d.ts +65 -0
  264. package/dist/src/usecases/admitSourceRoot.d.ts.map +1 -0
  265. package/dist/src/usecases/admitSourceRoot.js +85 -0
  266. package/dist/src/usecases/admitSourceRoot.js.map +1 -0
  267. package/dist/src/usecases/browseSourceFolders.d.ts +85 -0
  268. package/dist/src/usecases/browseSourceFolders.d.ts.map +1 -0
  269. package/dist/src/usecases/browseSourceFolders.js +210 -0
  270. package/dist/src/usecases/browseSourceFolders.js.map +1 -0
  271. package/dist/src/usecases/createDeclaredSources.d.ts +13 -2
  272. package/dist/src/usecases/createDeclaredSources.d.ts.map +1 -1
  273. package/dist/src/usecases/createDeclaredSources.js +39 -0
  274. package/dist/src/usecases/createDeclaredSources.js.map +1 -1
  275. package/dist/src/usecases/embeddingBacklog.js +1 -1
  276. package/dist/src/usecases/embeddingBacklog.js.map +1 -1
  277. package/dist/src/usecases/list.d.ts.map +1 -1
  278. package/dist/src/usecases/list.js +83 -26
  279. package/dist/src/usecases/list.js.map +1 -1
  280. package/dist/src/usecases/listAttachableDevices.d.ts +13 -0
  281. package/dist/src/usecases/listAttachableDevices.d.ts.map +1 -0
  282. package/dist/src/usecases/listAttachableDevices.js +10 -0
  283. package/dist/src/usecases/listAttachableDevices.js.map +1 -0
  284. package/dist/src/usecases/listSourcePackages.d.ts.map +1 -1
  285. package/dist/src/usecases/listSourcePackages.js +2 -5
  286. package/dist/src/usecases/listSourcePackages.js.map +1 -1
  287. package/dist/src/usecases/purgeExcludedPoints.d.ts.map +1 -1
  288. package/dist/src/usecases/purgeExcludedPoints.js +3 -2
  289. package/dist/src/usecases/purgeExcludedPoints.js.map +1 -1
  290. package/dist/src/usecases/readFiles.d.ts.map +1 -1
  291. package/dist/src/usecases/readFiles.js +99 -1
  292. package/dist/src/usecases/readFiles.js.map +1 -1
  293. package/dist/src/usecases/reconcileSourcePackageRoots.d.ts +1 -1
  294. package/dist/src/usecases/reconcileSourcePackageRoots.d.ts.map +1 -1
  295. package/dist/src/usecases/reconcileSourcePackageRoots.js +2 -1
  296. package/dist/src/usecases/reconcileSourcePackageRoots.js.map +1 -1
  297. package/dist/src/usecases/revokePrincipal.d.ts +7 -5
  298. package/dist/src/usecases/revokePrincipal.d.ts.map +1 -1
  299. package/dist/src/usecases/revokePrincipal.js +29 -7
  300. package/dist/src/usecases/revokePrincipal.js.map +1 -1
  301. package/dist/src/usecases/scheduleSourceSync.d.ts +7 -0
  302. package/dist/src/usecases/scheduleSourceSync.d.ts.map +1 -1
  303. package/dist/src/usecases/scheduleSourceSync.js +6 -5
  304. package/dist/src/usecases/scheduleSourceSync.js.map +1 -1
  305. package/dist/src/usecases/syncPointWrites.d.ts +2 -0
  306. package/dist/src/usecases/syncPointWrites.d.ts.map +1 -1
  307. package/dist/src/usecases/syncPointWrites.js +5 -1
  308. package/dist/src/usecases/syncPointWrites.js.map +1 -1
  309. package/dist/src/usecases/triggerSourceSync.d.ts +46 -0
  310. package/dist/src/usecases/triggerSourceSync.d.ts.map +1 -0
  311. package/dist/src/usecases/triggerSourceSync.js +75 -0
  312. package/dist/src/usecases/triggerSourceSync.js.map +1 -0
  313. package/dist/src/usecases/uploadBinary.d.ts +2 -1
  314. package/dist/src/usecases/uploadBinary.d.ts.map +1 -1
  315. package/dist/src/usecases/uploadBinary.js +2 -2
  316. package/dist/src/usecases/uploadBinary.js.map +1 -1
  317. package/dist/src/usecases/vector/endpointGuard.d.ts +1 -1
  318. package/dist/src/usecases/vector/endpointGuard.js +1 -1
  319. package/dist/src/usecases/vectorMaintenance.js +1 -1
  320. package/dist/src/usecases/vectorMaintenance.js.map +1 -1
  321. package/dist/src/usecases/write/content.js +1 -1
  322. package/dist/src/vector/qdrantClient.d.ts +1 -1
  323. package/dist/src/vector/qdrantClient.js +1 -1
  324. package/dist/src/wiring.d.ts +3 -0
  325. package/dist/src/wiring.d.ts.map +1 -1
  326. package/dist/src/wiring.js +72 -6
  327. package/dist/src/wiring.js.map +1 -1
  328. package/dist/tools/fs_list.json +1 -1
  329. package/dist/tools/fs_read.json +1 -1
  330. package/dist/tools/fs_search.json +1 -1
  331. package/dist/tools/fs_write.json +1 -1
  332. package/instructions/brain-model.md +1 -1
  333. package/package.json +212 -114
  334. package/rules/brain-rules.md +2 -2
  335. package/skills/brain-start/SKILL.md +1 -1
  336. package/skills/connect-business-data/SKILL.md +3 -3
  337. package/skills/create-package/SKILL.md +26 -26
  338. package/skills/create-package/references/config-and-credentials.md +16 -13
  339. package/skills/create-package/references/connectors-and-uri-policies.md +39 -25
  340. package/skills/create-package/references/manifest-and-discovery.md +12 -12
  341. package/skills/create-package/references/runtime-and-build.md +19 -19
  342. package/skills/create-package/references/skills-and-context.md +36 -20
  343. package/skills/create-package/references/surfaces-and-design.md +16 -16
  344. package/skills/create-package/references/team-and-workflows.md +2 -2
  345. package/skills/create-package/references/test-and-ship.md +21 -21
  346. package/skills/create-package/references/tools-and-schemas.md +5 -5
  347. package/skills/create-package/scripts/{check-package.sh → check-package.mjs} +79 -65
  348. package/skills/create-package/scripts/{verify-loaded.sh → verify-loaded.mjs} +156 -162
  349. package/skills/git/SKILL.md +53 -51
  350. package/skills/manage-files/SKILL.md +22 -25
  351. package/skills/manage-sources/SKILL.md +128 -87
  352. package/skills/manage-uri-policy/SKILL.md +18 -15
  353. package/skills/organize/SKILL.md +1 -1
  354. package/skills/sync/SKILL.md +3 -3
  355. package/tools/fs_list.json +1 -1
  356. package/tools/fs_read.json +1 -1
  357. package/tools/fs_search.json +1 -1
  358. package/tools/fs_write.json +1 -1
  359. package/workflows/sources-digest.json +1 -1
  360. package/dist/src/connectors/LocalDiskConnector.d.ts +0 -171
  361. package/dist/src/connectors/LocalDiskConnector.d.ts.map +0 -1
  362. package/dist/src/connectors/LocalDiskConnector.js +0 -1233
  363. package/dist/src/connectors/LocalDiskConnector.js.map +0 -1
  364. package/docs/drive-overview.md +0 -59
  365. package/skills/manage-files/scripts/copy.sh +0 -7
  366. package/skills/manage-files/scripts/create.sh +0 -7
  367. package/skills/manage-files/scripts/mkdir.sh +0 -7
  368. package/skills/manage-files/scripts/modify.sh +0 -7
  369. package/skills/manage-files/scripts/upload.sh +0 -16
  370. package/skills/manage-files/scripts/write.sh +0 -29
  371. package/skills/manage-sources/scripts/reembed.sh +0 -23
@@ -1,7 +1,7 @@
1
1
  ---
2
- requiredFeatures: [drive.policy]
2
+ requiredFeatures: [sources.policy]
3
3
  name: manage-uri-policy
4
- description: "Inspect and patch role-aware read, write, and execute URI policy for any source. Use when a legitimate path is denied or access must be narrowed; patching needs the drive.policy feature, and prefer the smallest explicit exception over broad defaults."
4
+ description: "Inspect and patch role-aware read, write, and execute URI policy for any source. Use when a legitimate path is denied or access must be narrowed; patching needs the sources.policy feature, and prefer the smallest explicit exception over broad defaults."
5
5
  allowed-tools: execute
6
6
  ---
7
7
 
@@ -66,22 +66,25 @@ undone.
66
66
  # 0. Read the policy you are about to change, so you can prove you restored it.
67
67
  neuralis request GET @neuralis/brain-core/policies/uri/data
68
68
  # 1. Add the rule (LIVE — members lose read on this subtree immediately).
69
- neuralis request POST @neuralis/brain-core/policies/uri --input - <<<'{"source":"data","addPaths":[{"pattern":"data://agent-core/admin/**","permissions":{"read":false},"roles":["member"]}]}'
69
+ echo '{"source":"data","addPaths":[{"pattern":"data://agent-core/admin/**","permissions":{"read":false},"roles":["member"]}]}' | neuralis request POST @neuralis/brain-core/policies/uri --input -
70
70
  # 2. Take it back — same source, same pattern, byte for byte.
71
- neuralis request POST @neuralis/brain-core/policies/uri --input - <<<'{"source":"data","removePatterns":["data://agent-core/admin/**"]}'
71
+ echo '{"source":"data","removePatterns":["data://agent-core/admin/**"]}' | neuralis request POST @neuralis/brain-core/policies/uri --input -
72
72
  ```
73
73
 
74
74
  To keep a rule, run step 1 and stop; step 2 exists so the example is reversible
75
75
  rather than a permanent edit to a live source's access policy.
76
76
 
77
77
  Body: `source` (slug, required) plus either `addPaths` — rules of `{pattern,
78
- permissions, roles?}`, where `pattern` takes `**` wildcards, `permissions` maps
79
- `read`/`write`/`exec` to `false` (deny) or `true` (allow) and `roles` scopes the
80
- rule — or `removePatterns` (the patterns to take back).
78
+ permissions, roles?, priority?, override?}`, where `pattern` takes `**` wildcards, `permissions` maps
79
+ `read`/`write`/`exec` to `false` (deny) or `true` (allow), `roles` scopes the
80
+ rule to named project roles (each must exist in the project, else 400) and
81
+ `priority: 2` to callers whose role priority is 2 or stronger — admin and owner,
82
+ lower = stronger (an integer 1..99, only on a grant row: `override: true` with every
83
+ listed bit `true`); present fields all apply — or `removePatterns` (the patterns to take back).
81
84
 
82
85
  `exec` decides whether a shell may START in that directory — on an exec-capable
83
86
  source (a virtual desktop or any other one whose connector runs commands) as
84
- well as in the container. A caller also needs that plane's entry feature; the
87
+ well as on the app's own machine. A caller also needs that plane's entry feature; the
85
88
  policy row alone does not grant one, and the entry alone does not grant the row.
86
89
  So a source whose owner reports "I hold the feature and the shell is still
87
90
  refused" usually needs an `exec` ALLOW row for their role or agent here.
@@ -100,24 +103,24 @@ package's seed.
100
103
 
101
104
  - **Two arms, both keyed on FEATURES — there is no role-name check on this
102
105
  route.** Reading (`GET policies/uri/...`) is
103
- the module feature `drive.read`, which every built-in role holds down to
106
+ the module feature `files.read`, which every built-in role holds down to
104
107
  `viewer`. Patching (`POST policies/uri`) escalates in-handler to
105
- `drive.policy` and otherwise returns
106
- `403 Missing feature: drive.policy (URI policy editing)`. `drive.policy` has
108
+ `sources.policy` and otherwise returns
109
+ `403 Missing feature: sources.policy (URI policy editing)`. `sources.policy` has
107
110
  no grant below the `admin` tier (enumerated for `admin`, `'*'` for `owner`)
108
111
  and is grantable to any custom role — so a custom role can hold it and a
109
112
  built-in one can lack it.
110
113
  - **Being able to SEE this skill is not the route gate.** Its
111
- `requiredFeatures: [drive.policy]` frontmatter hides the bundle from anyone
114
+ `requiredFeatures: [sources.policy]` frontmatter hides the bundle from anyone
112
115
  without that feature; that is the ADVERTISEMENT layer. The session ticket
113
116
  carries your real identity to the route, and there is no synthetic owner
114
117
  upgrade anywhere.
115
118
  - **Patching SOMEONE ELSE'S user- or agent-scoped source additionally needs scope
116
119
  WRITE.** The POST runs `canAccessScope(..., 'write')` on the owning scope, which
117
120
  passes unconditionally for a project-scoped source and for your OWN user/agent
118
- scope — so on the common path `drive.policy` is the whole answer. Only a
119
- CROSS-scope patch consults `filesystem.modifyScoped`; an
120
- `observeScoped`-but-not-`modifyScoped` holder gets
121
+ scope — so on the common path `sources.policy` is the whole answer. Only a
122
+ CROSS-scope patch consults `files.writeOthers`; an
123
+ `files.readOthers`-but-not-`files.writeOthers` holder gets
121
124
  `403 Forbidden for source scope` there.
122
125
  - **Manifest baselines are not edited by this skill.** Package
123
126
  manifests ship `permissions.uriPolicies` as the read-only baseline;
@@ -1,5 +1,5 @@
1
1
  ---
2
- requiredFeatures: [drive.write]
2
+ requiredFeatures: [files.write]
3
3
  name: organize
4
4
  description: "Analyze a workspace for duplicate, misplaced, stale, or poorly indexed material and design a safer information architecture. Use when asked to clean up or reorganize; inspect references and propose or preview moves before mutating shared files."
5
5
  allowed-tools: fs_search fs_write fs_list fs_read
@@ -1,5 +1,5 @@
1
1
  ---
2
- requiredFeatures: [drive.sync]
2
+ requiredFeatures: [sources.sync]
3
3
  name: sync
4
4
  description: "Run and verify brain-core delta synchronization for configured sources. Use when live connector content and the vector index may differ, files are stale or unindexed, or changes must become searchable; inspect completion and index state instead of trusting dispatch alone."
5
5
  allowed-tools: fs_list fs_read execute
@@ -12,9 +12,9 @@ Trigger a delta sync for the brain-core filesystem.
12
12
  ## Steps
13
13
 
14
14
  1. Use `fs_list` with no `uri` first to identify configured sources, scopes, current sync status, and recent errors.
15
- 2. Call the brain-core source sync route for the intended source. The route answers 202 + a queue job snapshot — the sync runs in the background. Explicit sync requires `drive.sync`; source create/update/delete uses `drive.mount`; file writes use `drive.write`.
15
+ 2. Call the brain-core source sync route for the intended source. The route answers 202 + a queue job snapshot — the sync runs in the background. Explicit sync requires `sources.sync`; source create/update/delete uses `sources.mount`; file writes use `files.write`.
16
16
  3. Poll `GET /sources/sync-status?source=<slug>` until the job finishes, then report the job `result` counts: `filesAdded`, `filesUpdated`, `filesRemoved`, `filesSkipped`, `filesMoved`, `chunksRemoved`, `chunksEmbedded` and `chunksSkipped` plus `embeddingDegraded` (safe, deduplicated embedding stop reasons). Payload indexing can succeed with missing/stale embeddings; report that debt separately. Read the two flags before interpreting completion. `cancelled: true` is not a failure, but the run stopped early: the counts are partial and a re-run converges. `truncated: true` means the walk stopped at `filesScanCap`, so files past the cap were never examined and no deletion or move was inferred — call that a partial pass, never a completed sync.
17
- 4. If any errors occur, list them clearly with the affected source, scope, and file path.
17
+ 4. If any errors occur, list them clearly with the affected source, scope, and file path. Two job errors are fixed codes and removed nothing: `root_unreachable` (the source root cannot be reached — unmounted, renamed, device offline; fix the mount, then sync again) and `root_empty` (the root answers but holds no file while the index still holds some). Re-send `confirmEmpty:true` with the sync only after the user confirms the folder really is empty — that one pass removes its files from the index.
18
18
  5. Distinguish live connector data, indexed payload and embedding freshness. Provider outage or disabled embedding preserves metadata/full-text indexing; semantic results may be old, or the response may fall back to filter search. Ordinary sync completion does not settle all embedding debt. Use `manage-sources` explicit debt catchup; terminal `paused` carries `result.embedding.pausedReason`, and Resume creates a new authorized job from durable debt.
19
19
 
20
20
  ## What a sync will and will not index
@@ -73,7 +73,7 @@
73
73
  "transport": "embedded",
74
74
  "requires": {
75
75
  "features": [
76
- "drive.read"
76
+ "files.read"
77
77
  ]
78
78
  },
79
79
  "defaults": {
@@ -70,7 +70,7 @@
70
70
  "transport": "embedded",
71
71
  "requires": {
72
72
  "features": [
73
- "drive.read"
73
+ "files.read"
74
74
  ]
75
75
  },
76
76
  "defaults": {},
@@ -80,7 +80,7 @@
80
80
  "transport": "embedded",
81
81
  "requires": {
82
82
  "features": [
83
- "drive.search"
83
+ "files.search"
84
84
  ]
85
85
  },
86
86
  "defaults": {
@@ -226,7 +226,7 @@
226
226
  "transport": "embedded",
227
227
  "requires": {
228
228
  "features": [
229
- "drive.write"
229
+ "files.write"
230
230
  ]
231
231
  },
232
232
  "askOnKeys": [
@@ -27,5 +27,5 @@
27
27
  ],
28
28
  "defaultStateMode": "fresh",
29
29
  "delivery": { "mode": "none" },
30
- "requires": { "features": ["drive.search"] }
30
+ "requires": { "features": ["files.search"] }
31
31
  }
@@ -1,171 +0,0 @@
1
- import type { ConnectorPort, ConnectorCapability, ConnectorListItem, ConnectorReadResult, ConnectorReadRawOpts, ConnectorReadRawResult, ConnectorStatResult, ConnectorMoveResult, ConnectorWriteResult, ConnectorDeltaRequest, ConnectorDeltaResult, ConnectorCountOpts, ConnectorWalkOpts, ScanContentOpts, ScanContentResult, ConnectorFactoryContext, ConnectorChangeEvent, ConnectorEventSubscription, ConnectorSubscribeOpts, ConnectorConnectionProbe } from '@neuralis/package-system/contracts';
2
- import { ConnectorRootAccessError } from '@neuralis/package-system/contracts';
3
- import { type OsMount } from '@neuralis/package-system/paths';
4
- /**
5
- * Concrete root-access error thrown by the local-disk connector. Routes +
6
- * services catch the abstract base (`ConnectorRootAccessError`), not this
7
- * class specifically — so every future connector that touches a real FS
8
- * surface can share the same structured-warning pathway.
9
- */
10
- export declare class LocalDiskRootAccessError extends ConnectorRootAccessError {
11
- constructor(code: 'ROOT_MISSING' | 'ROOT_PERMISSION_DENIED', rootPath: string, uri: string, cause?: unknown);
12
- }
13
- /**
14
- * The capability set the local on-disk connector implements. This MUST stay
15
- * byte-equal to the `local` connector's `capabilities` array in
16
- * `package.json#neuralis.connectors` — `SourceLoader.instantiateConnector`
17
- * fails closed (`ConnectorCapabilityMismatch`) on any divergence, and for a
18
- * first-party connector `wiring.ts` now re-throws that (boot-fatal) instead of
19
- * silently degrading the kind. `localDiskCapabilities.test.ts` is the
20
- * derive-and-verify drift guard that catches a mismatch at TEST time.
21
- */
22
- export declare const LOCAL_DISK_CAPABILITIES: readonly ConnectorCapability[];
23
- /**
24
- * Structured failure thrown by `LocalDiskConnector.resolveOsUri` when the
25
- * connector is running inside a Docker container but no host-pair root has
26
- * been configured. Returning a container-internal path here would corrupt
27
- * vector payloads + filesystem-node `os_uri` fields with paths that do not
28
- * exist on the host. Callers (sync runner, the write engine) catch this
29
- * and either skip the upsert or persist `os_uri: undefined` instead.
30
- */
31
- export declare class OsUriUnresolvableError extends Error {
32
- readonly code: 'os_uri_host_pair_missing';
33
- readonly source: string;
34
- readonly uri: string;
35
- constructor(params: {
36
- source: string;
37
- uri: string;
38
- root?: string;
39
- });
40
- }
41
- /**
42
- * Connector for local filesystem access — URI-native.
43
- *
44
- * Contributed by brain-core via `neuralis.connectors[]` manifest entry
45
- * `{ kind: 'local', configSchema: { root, hostRoot? } }`. The package loader
46
- * instantiates it via `createLocalDiskConnector(ctx)` for each source binding.
47
- */
48
- export declare class LocalDiskConnector implements ConnectorPort {
49
- #private;
50
- readonly kind = "local";
51
- readonly source: string;
52
- readonly portVersion: 4;
53
- constructor(root: string, source: string, hostRoot?: string, isDocker?: boolean);
54
- capabilities(): ReadonlySet<ConnectorCapability>;
55
- /** Expose the resolved root path for diagnostics / wiring logs. */
56
- get root(): string;
57
- probeRoot(): Promise<{
58
- rootPath: string;
59
- exists: boolean;
60
- readable: boolean;
61
- error?: string;
62
- }>;
63
- /**
64
- * Connector-owned liveness — whether the backing host directory is reachable.
65
- * Wraps {@link probeRoot} but maps to the fixed `SourceLiveReason` enum and
66
- * DISCARDS the raw `rootPath`/`error` (those carry the absolute host-mount
67
- * path — leaking them to a member via the tone-title is a path-disclosure
68
- * regression). UI-tone + `<runtime_stack>` signal only; never gates access.
69
- */
70
- probeConnection(): Promise<ConnectorConnectionProbe>;
71
- list(uri: string): Promise<ConnectorListItem[]>;
72
- /**
73
- * Existence + metadata, on the SAME guarded path as `read` and without
74
- * transferring a byte of content. `null` = the path resolved but nothing is
75
- * there (`ENOENT`, from either the guard's per-segment walk or the `lstat`);
76
- * every other failure THROWS exactly as `read` would — a traversal/symlink
77
- * refusal, an EACCES, a root-access error — so the caller's existing
78
- * "gone vs. could-not-ask" split keeps working unchanged.
79
- *
80
- * `lstat`, never `stat`: `resolveAndGuard` REFUSES a symlink rather than
81
- * resolving through it, so following one here would answer for a target the
82
- * read path would never have served.
83
- */
84
- stat(uri: string): Promise<ConnectorStatResult | null>;
85
- /**
86
- * The sync media lane's PDF read — NOT a kernel `ConnectorPort` member (only
87
- * a connector that holds the file on its own disk can render it; the lane
88
- * treats a connector without it as "unavailable"). The raw bytes' sha256
89
- * (the point's `content_hash`) and pages `first..last` rendered by the ONE
90
- * renderer — none when the hash equals `unlessHash`, so an unchanged PDF is
91
- * never re-rendered. `null` when `pdftoppm` is not installed; the same
92
- * containment and read cap as `read`.
93
- */
94
- renderPdfPages(uri: string, opts: {
95
- first: number;
96
- last: number;
97
- unlessHash?: string;
98
- }): Promise<{
99
- contentHash: string;
100
- pages: Array<{
101
- page: number;
102
- png: Buffer;
103
- }>;
104
- } | null>;
105
- /**
106
- * The byte-exact read. Same guarded resolver as `read`; the cap is
107
- * `min(opts.maxBytes, brainMaxReadFileMb)`, checked on the OPENED
108
- * descriptor's size before any byte is buffered, and the read itself pulls
109
- * at most that size+1 bytes — a file that grew after the size check is
110
- * refused (over the cap: the too-large refusal), never cut.
111
- */
112
- readRaw(uri: string, opts: ConnectorReadRawOpts): Promise<ConnectorReadRawResult>;
113
- read(uri: string): Promise<ConnectorReadResult>;
114
- write(uri: string, content: string | Uint8Array): Promise<ConnectorWriteResult>;
115
- delete(uri: string): Promise<void>;
116
- move(fromUri: string, toUri: string): Promise<ConnectorMoveResult>;
117
- mkdir(uri: string): Promise<void>;
118
- rmdir(uri: string): Promise<void>;
119
- /**
120
- * OS-level change events under `rootUri`, fed by the shared FsWatchHub
121
- * (D6: ONE watcher substrate). Catches EVERY background change — shell
122
- * writes, host edits, git checkouts, external programs — not just app
123
- * writes. URI mapping happens here (the hub only knows absolute paths);
124
- * exclude filtering and debounce are the SUBSCRIBER's job. An `overflow`
125
- * event means "event delivery can no longer be trusted — full reconcile".
126
- */
127
- subscribeEvents(rootUri: string, listener: (event: ConnectorChangeEvent) => void, opts?: ConnectorSubscribeOpts): ConnectorEventSubscription;
128
- scanDelta(request: ConnectorDeltaRequest): Promise<ConnectorDeltaResult>;
129
- resolveOsUri(uri: string): string;
130
- peekCount(rootUri: string, opts?: ConnectorCountOpts): number | undefined;
131
- walk(rootUri: string, opts?: ConnectorWalkOpts): Promise<ConnectorListItem[]>;
132
- walkWithStatus(rootUri: string, opts?: ConnectorWalkOpts): Promise<{
133
- items: ConnectorListItem[];
134
- complete: boolean;
135
- truncated: boolean;
136
- }>;
137
- count(rootUri: string, opts?: ConnectorCountOpts): Promise<number>;
138
- scanContent(rootUri: string, query: string, opts?: ScanContentOpts): Promise<ScanContentResult[]>;
139
- }
140
- /**
141
- * Factory: builds a LocalDiskConnector instance for a specific source binding.
142
- *
143
- * Resolves `config.root` against the current projectRoot
144
- * (`resolveLocalRoot`): a relative path joins onto `ctx.projectRoot`, an
145
- * absolute one is the container path as written.
146
- */
147
- export declare function createLocalDiskConnector(ctx: ConnectorFactoryContext): ConnectorPort;
148
- /**
149
- * Derive a host-side root for `resolvedRoot` from the os-mount table. Returns
150
- * the host path for the *longest* matching mount whose `containerPath` is the
151
- * root itself or a path-boundary-correct ancestor (`/mounts/repo` matches
152
- * `/mounts/repo` and `/mounts/repo/sub`, but NOT `/mounts/repo2`). Mounts
153
- * without a `hostPath` (no `NEURALIS_MOUNT_HOST_*` pair) are skipped. Returns
154
- * `undefined` when nothing matches, so the caller falls through to the
155
- * fail-loud `OsUriUnresolvableError` path in Docker.
156
- */
157
- export declare function deriveHostRootFromOsMounts(resolvedRoot: string, mounts: OsMount[]): string | undefined;
158
- /**
159
- * Canonical container-root resolution for a local source's configured root.
160
- * Exported so the brain-core API can hand agent-core's shell uri-policy gate
161
- * the SAME resolved roots the connector itself mounts — the two branches
162
- * (relative under the project root, absolute as written) are never re-typed.
163
- */
164
- export declare function resolveLocalRoot(params: {
165
- configured: string;
166
- projectRoot: string;
167
- source: string;
168
- }): {
169
- resolvedRoot: string;
170
- };
171
- //# sourceMappingURL=LocalDiskConnector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LocalDiskConnector.d.ts","sourceRoot":"","sources":["../../../src/connectors/LocalDiskConnector.ts"],"names":[],"mappings":"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"}