@neuralis/brain-core 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. package/README.md +26 -35
  2. package/app/README.md +1 -1
  3. package/app/cards/DiffView.tsx +9 -7
  4. package/app/cards/README.md +1 -1
  5. package/app/cards/diffLine.tsx +2 -4
  6. package/app/filesystem/README.md +4 -4
  7. package/app/filesystem/api/README.md +3 -3
  8. package/app/filesystem/api/index.ts +137 -123
  9. package/app/filesystem/domain/types.ts +36 -5
  10. package/app/filesystem/hooks/README.md +5 -5
  11. package/app/filesystem/hooks/useDiscoverableSources.ts +4 -2
  12. package/app/filesystem/hooks/useFilesystemSSE.ts +31 -23
  13. package/app/filesystem/hooks/useGitChangesInventory.ts +4 -2
  14. package/app/filesystem/host/README.md +3 -2
  15. package/app/filesystem/host/installFilesystemHostComponents.tsx +22 -9
  16. package/app/filesystem/store/README.md +11 -7
  17. package/app/filesystem/store/filesystemStore.ts +454 -162
  18. package/app/filesystem/store/gitSlice.ts +6 -6
  19. package/app/filesystem/store/listSlice.ts +10 -6
  20. package/app/filesystem/store/searchSlice.ts +27 -4
  21. package/app/filesystem/ui/FileEditor.tsx +48 -35
  22. package/app/filesystem/ui/FileTree.tsx +10 -9
  23. package/app/filesystem/ui/FileTreeSearch.tsx +29 -2
  24. package/app/filesystem/ui/GitCommitChangesView.tsx +5 -3
  25. package/app/filesystem/ui/GitCommitGraph.tsx +6 -5
  26. package/app/filesystem/ui/GitControlPanel.tsx +14 -13
  27. package/app/filesystem/ui/GitDiffView.tsx +2 -1
  28. package/app/filesystem/ui/GitFileDiff.tsx +7 -6
  29. package/app/filesystem/ui/PendingChangesPanel.tsx +88 -28
  30. package/app/filesystem/ui/PendingReviewDialog.tsx +52 -24
  31. package/app/filesystem/ui/README.md +8 -7
  32. package/app/filesystem/ui/ReembedDialog.tsx +22 -9
  33. package/app/filesystem/ui/SourceDeleteConfirm.tsx +1 -1
  34. package/app/filesystem/ui/SourcesPanel.tsx +135 -42
  35. package/app/filesystem/ui/VectorHealthPanel.tsx +20 -4
  36. package/app/filesystem/ui/pendingChangesModel.ts +9 -5
  37. package/dist/app/chunks/{astro-LRAFGXNX.js → astro-B2J4AS2D.js} +1 -1
  38. package/dist/app/chunks/bash-KY6SAQTH.js +1 -0
  39. package/dist/app/chunks/c-OBOPYVZ7.js +1 -0
  40. package/dist/app/chunks/{chunk-5H7ZCOD3.js → chunk-2X3GNKJ3.js} +1 -1
  41. package/dist/app/chunks/{chunk-XIFGTNRM.js → chunk-JPJIVRFI.js} +1 -1
  42. package/dist/app/chunks/{chunk-RH3QY5LF.js → chunk-LEFIFWND.js} +1 -1
  43. package/dist/app/chunks/{chunk-G4RZ3UNX.js → chunk-N6RXX3PH.js} +1 -1
  44. package/dist/app/chunks/{chunk-QXXJ73P5.js → chunk-PZAW4HPB.js} +1 -1
  45. package/dist/app/chunks/{chunk-3QLE7Y4L.js → chunk-ZBYWWTO6.js} +1 -1
  46. package/dist/app/chunks/cpp-TVWVOTEQ.js +1 -0
  47. package/dist/app/chunks/css-MANZBYA4.js +1 -0
  48. package/dist/app/chunks/{elixir-M36XROA6.js → elixir-S725Z7EH.js} +1 -1
  49. package/dist/app/chunks/{elm-7BG6QAIK.js → elm-5WUUSTNB.js} +1 -1
  50. package/dist/app/chunks/graphql-UGOPR3WU.js +1 -0
  51. package/dist/app/chunks/html-F6FWTBSG.js +1 -0
  52. package/dist/app/chunks/java-ANIVV5H5.js +1 -0
  53. package/dist/app/chunks/javascript-IH374YWG.js +1 -0
  54. package/dist/app/chunks/json-WGGVVXSB.js +1 -0
  55. package/dist/app/chunks/jsx-OTXJQD32.js +1 -0
  56. package/dist/app/chunks/{latex-ZWK7SXB6.js → latex-QCZNITGN.js} +1 -1
  57. package/dist/app/chunks/lua-4CRZ64PU.js +1 -0
  58. package/dist/app/chunks/{nginx-2L6VRV3A.js → nginx-V4CYS7WR.js} +1 -1
  59. package/dist/app/chunks/{perl-PBUAXXK6.js → perl-BHTX7F5B.js} +1 -1
  60. package/dist/app/chunks/{php-QJX57PA6.js → php-AYGJ5WYZ.js} +1 -1
  61. package/dist/app/chunks/r-4YFCFA4B.js +1 -0
  62. package/dist/app/chunks/{ruby-RLOWMVPO.js → ruby-42NMJWAL.js} +1 -1
  63. package/dist/app/chunks/{scss-B5CAI3HR.js → scss-XD7VU2CU.js} +1 -1
  64. package/dist/app/chunks/sql-B55MH6JJ.js +1 -0
  65. package/dist/app/chunks/{svelte-GT3D4C44.js → svelte-WR3QPIJU.js} +1 -1
  66. package/dist/app/chunks/tsx-S73GAE2L.js +1 -0
  67. package/dist/app/chunks/typescript-NEWOAB5Z.js +1 -0
  68. package/dist/app/chunks/{vue-JOW62MHD.js → vue-CCDS4VZK.js} +1 -1
  69. package/dist/app/chunks/xml-UXKAGLDR.js +1 -0
  70. package/dist/app/chunks/yaml-UMWKDTK7.js +1 -0
  71. package/dist/app/host.js +46 -46
  72. package/dist/scripts/embeddingLockV3.d.ts +30 -0
  73. package/dist/scripts/embeddingLockV3.d.ts.map +1 -0
  74. package/dist/scripts/embeddingLockV3.js +100 -0
  75. package/dist/scripts/embeddingLockV3.js.map +1 -0
  76. package/dist/scripts/vectorProofV1.d.ts +90 -0
  77. package/dist/scripts/vectorProofV1.d.ts.map +1 -0
  78. package/dist/scripts/vectorProofV1.js +220 -0
  79. package/dist/scripts/vectorProofV1.js.map +1 -0
  80. package/dist/src/config/env.d.ts +21 -0
  81. package/dist/src/config/env.d.ts.map +1 -1
  82. package/dist/src/config/env.js +55 -0
  83. package/dist/src/config/env.js.map +1 -1
  84. package/dist/src/connectors/AppSourceConfigStore.d.ts +12 -2
  85. package/dist/src/connectors/AppSourceConfigStore.d.ts.map +1 -1
  86. package/dist/src/connectors/AppSourceConfigStore.js +48 -40
  87. package/dist/src/connectors/AppSourceConfigStore.js.map +1 -1
  88. package/dist/src/connectors/LocalDiskConnector.d.ts +11 -14
  89. package/dist/src/connectors/LocalDiskConnector.d.ts.map +1 -1
  90. package/dist/src/connectors/LocalDiskConnector.js +87 -107
  91. package/dist/src/connectors/LocalDiskConnector.js.map +1 -1
  92. package/dist/src/connectors/sourceConfigMutation.d.ts +11 -1
  93. package/dist/src/connectors/sourceConfigMutation.d.ts.map +1 -1
  94. package/dist/src/connectors/sourceConfigMutation.js +36 -3
  95. package/dist/src/connectors/sourceConfigMutation.js.map +1 -1
  96. package/dist/src/domain/chunker.js +8 -3
  97. package/dist/src/domain/chunker.js.map +1 -1
  98. package/dist/src/domain/healthTypes.d.ts +11 -0
  99. package/dist/src/domain/healthTypes.d.ts.map +1 -1
  100. package/dist/src/domain/mime.d.ts +1 -0
  101. package/dist/src/domain/mime.d.ts.map +1 -1
  102. package/dist/src/domain/mime.js +48 -0
  103. package/dist/src/domain/mime.js.map +1 -1
  104. package/dist/src/domain/pendingChange.d.ts +7 -0
  105. package/dist/src/domain/pendingChange.d.ts.map +1 -1
  106. package/dist/src/domain/pendingChange.js +11 -0
  107. package/dist/src/domain/pendingChange.js.map +1 -1
  108. package/dist/src/domain/sourceConfig.d.ts +7 -14
  109. package/dist/src/domain/sourceConfig.d.ts.map +1 -1
  110. package/dist/src/domain/sourceConfig.js +1 -13
  111. package/dist/src/domain/sourceConfig.js.map +1 -1
  112. package/dist/src/domain/sourcePackages.d.ts +11 -2
  113. package/dist/src/domain/sourcePackages.d.ts.map +1 -1
  114. package/dist/src/domain/syncTrigger.d.ts +2 -3
  115. package/dist/src/domain/syncTrigger.d.ts.map +1 -1
  116. package/dist/src/domain/syncTrigger.js +2 -3
  117. package/dist/src/domain/syncTrigger.js.map +1 -1
  118. package/dist/src/domain/syncTypes.d.ts +21 -4
  119. package/dist/src/domain/syncTypes.d.ts.map +1 -1
  120. package/dist/src/domain/syncTypes.js.map +1 -1
  121. package/dist/src/domain/text.d.ts +3 -0
  122. package/dist/src/domain/text.d.ts.map +1 -1
  123. package/dist/src/domain/text.js +5 -0
  124. package/dist/src/domain/text.js.map +1 -1
  125. package/dist/src/domain/types.d.ts +9 -0
  126. package/dist/src/domain/types.d.ts.map +1 -1
  127. package/dist/src/embeddings/clients/GeminiEmbedder.d.ts.map +1 -1
  128. package/dist/src/embeddings/clients/GeminiEmbedder.js +11 -5
  129. package/dist/src/embeddings/clients/GeminiEmbedder.js.map +1 -1
  130. package/dist/src/embeddings/clients/OllamaEmbedder.d.ts.map +1 -1
  131. package/dist/src/embeddings/clients/OllamaEmbedder.js +13 -6
  132. package/dist/src/embeddings/clients/OllamaEmbedder.js.map +1 -1
  133. package/dist/src/embeddings/clients/OpenAIEmbedder.d.ts.map +1 -1
  134. package/dist/src/embeddings/clients/OpenAIEmbedder.js +12 -9
  135. package/dist/src/embeddings/clients/OpenAIEmbedder.js.map +1 -1
  136. package/dist/src/embeddings/clients/QwenEmbedder.d.ts.map +1 -1
  137. package/dist/src/embeddings/clients/QwenEmbedder.js +12 -5
  138. package/dist/src/embeddings/clients/QwenEmbedder.js.map +1 -1
  139. package/dist/src/embeddings/clients/VoyageEmbedder.d.ts.map +1 -1
  140. package/dist/src/embeddings/clients/VoyageEmbedder.js +12 -5
  141. package/dist/src/embeddings/clients/VoyageEmbedder.js.map +1 -1
  142. package/dist/src/embeddings/factory.d.ts +2 -0
  143. package/dist/src/embeddings/factory.d.ts.map +1 -1
  144. package/dist/src/embeddings/factory.js +23 -3
  145. package/dist/src/embeddings/factory.js.map +1 -1
  146. package/dist/src/embeddings/lock.d.ts +22 -11
  147. package/dist/src/embeddings/lock.d.ts.map +1 -1
  148. package/dist/src/embeddings/lock.js +47 -29
  149. package/dist/src/embeddings/lock.js.map +1 -1
  150. package/dist/src/embeddings/retry.d.ts +5 -0
  151. package/dist/src/embeddings/retry.d.ts.map +1 -1
  152. package/dist/src/embeddings/retry.js +35 -0
  153. package/dist/src/embeddings/retry.js.map +1 -1
  154. package/dist/src/events/pending.d.ts +56 -0
  155. package/dist/src/events/pending.d.ts.map +1 -0
  156. package/dist/src/events/pending.js +108 -0
  157. package/dist/src/events/pending.js.map +1 -0
  158. package/dist/src/events/source.d.ts +60 -14
  159. package/dist/src/events/source.d.ts.map +1 -1
  160. package/dist/src/events/source.js +149 -31
  161. package/dist/src/events/source.js.map +1 -1
  162. package/dist/src/events/vector.d.ts +33 -0
  163. package/dist/src/events/vector.d.ts.map +1 -0
  164. package/dist/src/events/vector.js +57 -0
  165. package/dist/src/events/vector.js.map +1 -0
  166. package/dist/src/git/GitRunner.d.ts.map +1 -1
  167. package/dist/src/git/GitRunner.js +11 -8
  168. package/dist/src/git/GitRunner.js.map +1 -1
  169. package/dist/src/git/sourceGitControl.d.ts.map +1 -1
  170. package/dist/src/git/sourceGitControl.js +2 -1
  171. package/dist/src/git/sourceGitControl.js.map +1 -1
  172. package/dist/src/index.d.ts +5 -4
  173. package/dist/src/index.d.ts.map +1 -1
  174. package/dist/src/index.js +4 -3
  175. package/dist/src/index.js.map +1 -1
  176. package/dist/src/lifecycle.d.ts +20 -4
  177. package/dist/src/lifecycle.d.ts.map +1 -1
  178. package/dist/src/lifecycle.js +5 -1
  179. package/dist/src/lifecycle.js.map +1 -1
  180. package/dist/src/routes/health.js +6 -1
  181. package/dist/src/routes/health.js.map +1 -1
  182. package/dist/src/routes/pending.d.ts.map +1 -1
  183. package/dist/src/routes/pending.js +2 -1
  184. package/dist/src/routes/pending.js.map +1 -1
  185. package/dist/src/routes/sources.d.ts.map +1 -1
  186. package/dist/src/routes/sources.js +60 -11
  187. package/dist/src/routes/sources.js.map +1 -1
  188. package/dist/src/services/BridgeService.d.ts +2 -2
  189. package/dist/src/services/BridgeService.d.ts.map +1 -1
  190. package/dist/src/services/BridgeService.js +11 -2
  191. package/dist/src/services/BridgeService.js.map +1 -1
  192. package/dist/src/services/FilesystemService.d.ts +3 -1
  193. package/dist/src/services/FilesystemService.d.ts.map +1 -1
  194. package/dist/src/services/FilesystemService.js +3 -1
  195. package/dist/src/services/FilesystemService.js.map +1 -1
  196. package/dist/src/services/FilesystemUiService.js +1 -1
  197. package/dist/src/services/FilesystemUiService.js.map +1 -1
  198. package/dist/src/services/SyncScheduler.d.ts.map +1 -1
  199. package/dist/src/services/SyncScheduler.js +0 -14
  200. package/dist/src/services/SyncScheduler.js.map +1 -1
  201. package/dist/src/services/VectorHealthService.d.ts.map +1 -1
  202. package/dist/src/services/VectorHealthService.js +2 -46
  203. package/dist/src/services/VectorHealthService.js.map +1 -1
  204. package/dist/src/services/baselineRepair.d.ts +2 -2
  205. package/dist/src/services/baselineRepair.js +2 -2
  206. package/dist/src/services/declaredSources.d.ts +8 -1
  207. package/dist/src/services/declaredSources.d.ts.map +1 -1
  208. package/dist/src/services/declaredSources.js +19 -19
  209. package/dist/src/services/declaredSources.js.map +1 -1
  210. package/dist/src/store/dataFormats.d.ts +14 -3
  211. package/dist/src/store/dataFormats.d.ts.map +1 -1
  212. package/dist/src/store/dataFormats.js +15 -5
  213. package/dist/src/store/dataFormats.js.map +1 -1
  214. package/dist/src/sync/DeltaSyncRunner.d.ts.map +1 -1
  215. package/dist/src/sync/DeltaSyncRunner.js +78 -243
  216. package/dist/src/sync/DeltaSyncRunner.js.map +1 -1
  217. package/dist/src/sync/SyncJobQueue.d.ts +33 -4
  218. package/dist/src/sync/SyncJobQueue.d.ts.map +1 -1
  219. package/dist/src/sync/SyncJobQueue.js +179 -19
  220. package/dist/src/sync/SyncJobQueue.js.map +1 -1
  221. package/dist/src/sync/moveDetector.d.ts +2 -1
  222. package/dist/src/sync/moveDetector.d.ts.map +1 -1
  223. package/dist/src/sync/moveDetector.js +2 -1
  224. package/dist/src/sync/moveDetector.js.map +1 -1
  225. package/dist/src/tools/fs_search.d.ts.map +1 -1
  226. package/dist/src/tools/fs_search.js +8 -0
  227. package/dist/src/tools/fs_search.js.map +1 -1
  228. package/dist/src/tools/fs_write.js +3 -1
  229. package/dist/src/tools/fs_write.js.map +1 -1
  230. package/dist/src/usecases/chunkUpsert.d.ts +4 -0
  231. package/dist/src/usecases/chunkUpsert.d.ts.map +1 -1
  232. package/dist/src/usecases/chunkUpsert.js +103 -60
  233. package/dist/src/usecases/chunkUpsert.js.map +1 -1
  234. package/dist/src/usecases/embeddingBacklog.d.ts +31 -0
  235. package/dist/src/usecases/embeddingBacklog.d.ts.map +1 -0
  236. package/dist/src/usecases/embeddingBacklog.js +244 -0
  237. package/dist/src/usecases/embeddingBacklog.js.map +1 -0
  238. package/dist/src/usecases/listSourcePackages.js +17 -1
  239. package/dist/src/usecases/listSourcePackages.js.map +1 -1
  240. package/dist/src/usecases/mediaLane.d.ts +11 -4
  241. package/dist/src/usecases/mediaLane.d.ts.map +1 -1
  242. package/dist/src/usecases/mediaLane.js +67 -30
  243. package/dist/src/usecases/mediaLane.js.map +1 -1
  244. package/dist/src/usecases/pendingReview.d.ts.map +1 -1
  245. package/dist/src/usecases/pendingReview.js +24 -7
  246. package/dist/src/usecases/pendingReview.js.map +1 -1
  247. package/dist/src/usecases/purgeExcludedPoints.d.ts +2 -0
  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 +33 -6
  253. package/dist/src/usecases/readFiles.js.map +1 -1
  254. package/dist/src/usecases/reconcileSourcePackageRoots.d.ts +31 -0
  255. package/dist/src/usecases/reconcileSourcePackageRoots.d.ts.map +1 -0
  256. package/dist/src/usecases/reconcileSourcePackageRoots.js +114 -0
  257. package/dist/src/usecases/reconcileSourcePackageRoots.js.map +1 -0
  258. package/dist/src/usecases/searchFiles.d.ts.map +1 -1
  259. package/dist/src/usecases/searchFiles.js +62 -64
  260. package/dist/src/usecases/searchFiles.js.map +1 -1
  261. package/dist/src/usecases/syncIndexedFile.d.ts +42 -0
  262. package/dist/src/usecases/syncIndexedFile.d.ts.map +1 -0
  263. package/dist/src/usecases/syncIndexedFile.js +242 -0
  264. package/dist/src/usecases/syncIndexedFile.js.map +1 -0
  265. package/dist/src/usecases/syncPointWrites.d.ts +5 -0
  266. package/dist/src/usecases/syncPointWrites.d.ts.map +1 -1
  267. package/dist/src/usecases/syncPointWrites.js +32 -5
  268. package/dist/src/usecases/syncPointWrites.js.map +1 -1
  269. package/dist/src/usecases/uploadBinary.d.ts.map +1 -1
  270. package/dist/src/usecases/uploadBinary.js +36 -49
  271. package/dist/src/usecases/uploadBinary.js.map +1 -1
  272. package/dist/src/usecases/vector/endpointGuard.js +2 -1
  273. package/dist/src/usecases/vector/endpointGuard.js.map +1 -1
  274. package/dist/src/usecases/vector/estimate.d.ts +7 -4
  275. package/dist/src/usecases/vector/estimate.d.ts.map +1 -1
  276. package/dist/src/usecases/vector/estimate.js +8 -5
  277. package/dist/src/usecases/vector/estimate.js.map +1 -1
  278. package/dist/src/usecases/vector/rebuildGeneration.d.ts +29 -5
  279. package/dist/src/usecases/vector/rebuildGeneration.d.ts.map +1 -1
  280. package/dist/src/usecases/vector/rebuildGeneration.js +224 -82
  281. package/dist/src/usecases/vector/rebuildGeneration.js.map +1 -1
  282. package/dist/src/usecases/vectorMaintenance.d.ts +46 -4
  283. package/dist/src/usecases/vectorMaintenance.d.ts.map +1 -1
  284. package/dist/src/usecases/vectorMaintenance.js +190 -11
  285. package/dist/src/usecases/vectorMaintenance.js.map +1 -1
  286. package/dist/src/usecases/write/commit.d.ts +6 -8
  287. package/dist/src/usecases/write/commit.d.ts.map +1 -1
  288. package/dist/src/usecases/write/commit.js +96 -112
  289. package/dist/src/usecases/write/commit.js.map +1 -1
  290. package/dist/src/usecases/write/content.js +1 -2
  291. package/dist/src/usecases/write/content.js.map +1 -1
  292. package/dist/src/usecases/write/ports.d.ts +1 -0
  293. package/dist/src/usecases/write/ports.d.ts.map +1 -1
  294. package/dist/src/vector/FilesystemVectorIndex.d.ts +34 -3
  295. package/dist/src/vector/FilesystemVectorIndex.d.ts.map +1 -1
  296. package/dist/src/vector/FilesystemVectorIndex.js +254 -20
  297. package/dist/src/vector/FilesystemVectorIndex.js.map +1 -1
  298. package/dist/src/vector/InMemoryVectorIndex.d.ts +9 -2
  299. package/dist/src/vector/InMemoryVectorIndex.d.ts.map +1 -1
  300. package/dist/src/vector/InMemoryVectorIndex.js +25 -6
  301. package/dist/src/vector/InMemoryVectorIndex.js.map +1 -1
  302. package/dist/src/vector/QdrantVectorIndex.d.ts +35 -9
  303. package/dist/src/vector/QdrantVectorIndex.d.ts.map +1 -1
  304. package/dist/src/vector/QdrantVectorIndex.js +209 -90
  305. package/dist/src/vector/QdrantVectorIndex.js.map +1 -1
  306. package/dist/src/vector/qdrantFilter.d.ts +3 -1
  307. package/dist/src/vector/qdrantFilter.d.ts.map +1 -1
  308. package/dist/src/vector/qdrantFilter.js +2 -0
  309. package/dist/src/vector/qdrantFilter.js.map +1 -1
  310. package/dist/src/vector/types.d.ts +81 -0
  311. package/dist/src/vector/types.d.ts.map +1 -1
  312. package/dist/src/vector/types.js +2 -0
  313. package/dist/src/vector/types.js.map +1 -1
  314. package/dist/src/wiring.d.ts +6 -0
  315. package/dist/src/wiring.d.ts.map +1 -1
  316. package/dist/src/wiring.js +62 -3
  317. package/dist/src/wiring.js.map +1 -1
  318. package/dist/tools/fs_search.json +2 -2
  319. package/docs/drive-overview.md +2 -2
  320. package/instructions/brain-model.md +1 -1
  321. package/package.json +1000 -11
  322. package/rules/brain-rules.md +1 -1
  323. package/skills/connect-business-data/SKILL.md +6 -4
  324. package/skills/create-package/SKILL.md +14 -12
  325. package/skills/create-package/references/config-and-credentials.md +3 -3
  326. package/skills/create-package/references/connectors-and-uri-policies.md +5 -3
  327. package/skills/create-package/references/manifest-and-discovery.md +5 -4
  328. package/skills/create-package/references/runtime-and-build.md +9 -9
  329. package/skills/create-package/references/skills-and-context.md +3 -3
  330. package/skills/create-package/references/surfaces-and-design.md +9 -6
  331. package/skills/create-package/references/team-and-workflows.md +2 -2
  332. package/skills/create-package/references/test-and-ship.md +15 -15
  333. package/skills/create-package/references/tools-and-schemas.md +1 -1
  334. package/skills/create-package/scripts/check-package.sh +50 -4
  335. package/skills/create-package/scripts/verify-loaded.sh +16 -16
  336. package/skills/manage-files/SKILL.md +2 -2
  337. package/skills/manage-sources/SKILL.md +16 -15
  338. package/skills/manage-sources/scripts/reembed.sh +9 -3
  339. package/skills/sync/SKILL.md +4 -4
  340. package/tools/fs_search.json +2 -2
  341. package/app/filesystem/hooks/useContainerWidth.ts +0 -39
  342. package/dist/app/chunks/bash-M45GHPBQ.js +0 -1
  343. package/dist/app/chunks/c-X3REOAWD.js +0 -1
  344. package/dist/app/chunks/cpp-VOWI743W.js +0 -1
  345. package/dist/app/chunks/css-2ZVPHE25.js +0 -1
  346. package/dist/app/chunks/graphql-7V2NP54C.js +0 -1
  347. package/dist/app/chunks/html-UF3LFLNA.js +0 -1
  348. package/dist/app/chunks/java-PNTAU4L3.js +0 -1
  349. package/dist/app/chunks/javascript-4JJTQGEL.js +0 -1
  350. package/dist/app/chunks/json-VLQ6D3JH.js +0 -1
  351. package/dist/app/chunks/jsx-KQKSLAAH.js +0 -1
  352. package/dist/app/chunks/lua-UFPYUJ2O.js +0 -1
  353. package/dist/app/chunks/r-QEZB45SR.js +0 -1
  354. package/dist/app/chunks/sql-DTZHNUZP.js +0 -1
  355. package/dist/app/chunks/tsx-WPR2WRZD.js +0 -1
  356. package/dist/app/chunks/typescript-LWO362OA.js +0 -1
  357. package/dist/app/chunks/xml-A5H72RTS.js +0 -1
  358. package/dist/app/chunks/yaml-MXHSIJCI.js +0 -1
  359. package/dist/src/services/purgePendingNodes.d.ts +0 -32
  360. package/dist/src/services/purgePendingNodes.d.ts.map +0 -1
  361. package/dist/src/services/purgePendingNodes.js +0 -61
  362. package/dist/src/services/purgePendingNodes.js.map +0 -1
  363. /package/dist/app/chunks/{chunk-737Y24HS.js → chunk-3JASFUPF.js} +0 -0
  364. /package/dist/app/chunks/{chunk-DKD2L57N.js → chunk-6EYLOQ4F.js} +0 -0
  365. /package/dist/app/chunks/{chunk-KYH5EHHY.js → chunk-7YRZ5LOQ.js} +0 -0
  366. /package/dist/app/chunks/{chunk-6TC3DVWV.js → chunk-C7LU4RID.js} +0 -0
  367. /package/dist/app/chunks/{chunk-TY33BMKR.js → chunk-CD52YDZP.js} +0 -0
  368. /package/dist/app/chunks/{chunk-OLEIKJ3X.js → chunk-DCJKTCJ5.js} +0 -0
  369. /package/dist/app/chunks/{chunk-QLBZ4JR2.js → chunk-EXIU2KBV.js} +0 -0
  370. /package/dist/app/chunks/{chunk-SFUNBBEA.js → chunk-FDP4LO4P.js} +0 -0
  371. /package/dist/app/chunks/{chunk-BGRVFATT.js → chunk-HNETUS7U.js} +0 -0
  372. /package/dist/app/chunks/{chunk-4QNMHAIR.js → chunk-LBFZJEDR.js} +0 -0
  373. /package/dist/app/chunks/{chunk-TRRUHDPN.js → chunk-ULRXL5VM.js} +0 -0
  374. /package/dist/app/chunks/{chunk-S6B4WWIF.js → chunk-XJK47SMJ.js} +0 -0
  375. /package/dist/app/chunks/{chunk-DZ5C5FKI.js → chunk-YYAAIAU2.js} +0 -0
  376. /package/dist/app/chunks/{clojure-OC6KPSJO.js → clojure-4QCN4GHG.js} +0 -0
  377. /package/dist/app/chunks/{core-KGE7TQJ3.js → core-ZHTX3P2Q.js} +0 -0
  378. /package/dist/app/chunks/{csharp-E7VIFITL.js → csharp-HQWR4N52.js} +0 -0
  379. /package/dist/app/chunks/{dark-plus-BOSCZXE4.js → dark-plus-GYPKKZES.js} +0 -0
  380. /package/dist/app/chunks/{dart-6Y3X27SZ.js → dart-FO4TTVO2.js} +0 -0
  381. /package/dist/app/chunks/{diff-TR2NPA64.js → diff-SHANV4YC.js} +0 -0
  382. /package/dist/app/chunks/{dist-T32U2VVR.js → dist-WSDF34DM.js} +0 -0
  383. /package/dist/app/chunks/{docker-N33HOW54.js → docker-VX55HTDS.js} +0 -0
  384. /package/dist/app/chunks/{go-6DGG5UTP.js → go-5UCPEC6S.js} +0 -0
  385. /package/dist/app/chunks/{haskell-KK36PMMM.js → haskell-25PJ3OSG.js} +0 -0
  386. /package/dist/app/chunks/{ini-VHVQ5TPB.js → ini-BJIVD5MK.js} +0 -0
  387. /package/dist/app/chunks/{kotlin-44WS3JHE.js → kotlin-MNR6XOEQ.js} +0 -0
  388. /package/dist/app/chunks/{less-5WZ3KLAK.js → less-KA5JURX6.js} +0 -0
  389. /package/dist/app/chunks/{light-plus-HGGBC43G.js → light-plus-QXH2UUWZ.js} +0 -0
  390. /package/dist/app/chunks/{make-X7RXMVW7.js → make-LPD5KOCO.js} +0 -0
  391. /package/dist/app/chunks/{markdown-46IKUAIB.js → markdown-LMWF6MQR.js} +0 -0
  392. /package/dist/app/chunks/{mdx-DGLHDAO7.js → mdx-WPMNN5BS.js} +0 -0
  393. /package/dist/app/chunks/{nix-Q6FYQZLX.js → nix-QGWLUUMZ.js} +0 -0
  394. /package/dist/app/chunks/{powershell-L4KJJ6DK.js → powershell-7GSBBEFF.js} +0 -0
  395. /package/dist/app/chunks/{prisma-IKS4LVH2.js → prisma-FPMPQISO.js} +0 -0
  396. /package/dist/app/chunks/{proto-AYCDOTJO.js → proto-7KDX5Z2U.js} +0 -0
  397. /package/dist/app/chunks/{python-KXMCSAFQ.js → python-CFG4FTQW.js} +0 -0
  398. /package/dist/app/chunks/{rust-J3BC3P6V.js → rust-X7A37WU3.js} +0 -0
  399. /package/dist/app/chunks/{scala-AYIIHBJK.js → scala-OYHJSUG2.js} +0 -0
  400. /package/dist/app/chunks/{swift-QPHHCQD3.js → swift-PE7VNYW5.js} +0 -0
  401. /package/dist/app/chunks/{toml-UV7JK7K7.js → toml-ETQRDILP.js} +0 -0
@@ -1,24 +1,70 @@
1
1
  /**
2
- * The `source` event subject — events about one SOURCE (a slug), today only
3
- * `source.sync.failed`.
2
+ * The `source` event subject — events about one SOURCE's sync lifecycle.
4
3
  *
5
- * `visible` is the source-access question the `filesystem` channel's
6
- * source-scoped branch asks (`BridgeService` → `canAccessScope`, the read
7
- * axis), asked for the ONE source the event is about and re-asked on every
8
- * event, so a revoked source stops delivering at once. A session without a
9
- * role, outside the event's project or without access is denied.
4
+ * SUBJECT = one FAMILY of jobs of one source: `v1:<mode>:<force>:<slug>`
5
+ * (`mode` ∈ full|targeted|embedding, `force` ∈ 0|1). A family is its own
6
+ * notification row, so a watcher-driven targeted success can never resolve a
7
+ * full sync's failure, and a forced re-embed is told apart from a plain sync.
8
+ * Embedding health has its own family, `v1:embedding:0:<slug>`. A slug has no
9
+ * `:`, so the form parses back unambiguously and stays under the kernel's
10
+ * 256-character coordinate cap (≤ 215 at a 200-character slug). Rows written
11
+ * before the families existed carry the BARE slug; they still parse (and stay
12
+ * visible), and only a deletion resolves them.
10
13
  *
11
- * `bridge` observes the ONE sync queue's terminal jobs and publishes a failed
12
- * sync as a SIGNAL: the source slug and a fixed failure class, never the job's
13
- * error text — that text carries host paths and per-path names and stays on
14
- * the actor-only `sync:failed` bus event. It is addressed to the user the job
15
- * ran for, or to the source's creator when the job ran under a system scope.
16
- * A failed purge is not published: its source is already gone.
14
+ * `visible` asks the source-access question the `filesystem` channel's
15
+ * source-scoped branch asks (`BridgeService` → `canAccessScope`) AND the
16
+ * source ROOT's uri-policy READ (`canReadUri`), for the ONE source the
17
+ * subject names, re-asked on every event — so a revoked or read-denied source
18
+ * stops delivering at once. A session without a role, outside the event's
19
+ * project or without access is denied.
20
+ *
21
+ * `bridge` observes the ONE sync queue's terminal jobs and publishes SIGNALS:
22
+ * the slug, a fixed mode/failure code and the Files Sources-panel `nav` —
23
+ * never the job's error text (it carries host paths and per-path names and
24
+ * stays on the actor-only `sync:failed` bus event). Transitions come from the
25
+ * queue (`SyncJobFinished.transition`, read against the state its completion
26
+ * writer saw), never from a level, so a healthy source publishes no
27
+ * "recovered" on every run. Clear matrix (`notify.clears`, same subject): a
28
+ * family's recovery resolves that family's failure; a FORCED full recovery
29
+ * also resolves the plain full family (a superset pass); embedding recovery
30
+ * resolves embedding degradation. Addressed to the user the job ran for, or
31
+ * the source's creator when it ran under a system scope. A purge job publishes
32
+ * nothing; the DELETION does: `source.deleted` (default off, no row of its own)
33
+ * goes once per subject the source could hold rows under — the bare slug and
34
+ * every family — and `notify.clears` every other source type there, so no
35
+ * unread row outlives its source (a gone source fails `visible`, so the row
36
+ * would stay hidden yet counted). Its own `visible` is AUDIENCE-bound at
37
+ * delivery — the deleting actor and the source's creator, who knew the slug —
38
+ * never the access check a gone source can no longer answer; the list's
39
+ * re-judge of a delivered row (no audience on it) answers by project.
17
40
  */
18
- import { type EventBridge, type EventVisibilityPredicate } from '@neuralis/package-system/contracts';
41
+ import { type EventBridge, type EventVisibilityPredicate, type NeuralisEventInput } from '@neuralis/package-system/contracts';
42
+ import type { SyncJobFinished } from '../sync/SyncJobQueue.js';
19
43
  export declare const subject = "source";
20
44
  /** The only failure class in v1 — a fixed code, never a message. */
21
45
  export declare const SOURCE_SYNC_FAILURE_CLASS = "sync_failed";
46
+ export type SourceEventFamily = {
47
+ mode: 'full' | 'targeted' | 'embedding';
48
+ force: boolean;
49
+ };
50
+ /** `v1:<mode>:<force>:<slug>` — one notification row per family of one source. */
51
+ export declare function sourceSubjectId(slug: string, family: SourceEventFamily): string;
52
+ /** The slug (and family) a subject names — a historical bare slug included; `null` for a malformed one. */
53
+ export declare function parseSourceSubjectId(subjectId: string): {
54
+ slug: string;
55
+ family?: SourceEventFamily;
56
+ } | null;
57
+ /** Every family subject a source can hold rows under, the historical bare slug first. */
58
+ export declare function sourceSubjectsOf(slug: string): string[];
59
+ export type SourceDeletion = {
60
+ projectId: string;
61
+ slug: string;
62
+ actor: string;
63
+ creator?: string;
64
+ };
65
+ export type SourceDeletionPublish = (deletion: SourceDeletion) => void;
22
66
  export declare const visible: EventVisibilityPredicate;
67
+ /** What one terminal job announces — family events, in publish order. */
68
+ export declare function sourceEventsFor(job: SyncJobFinished): Array<Omit<NeuralisEventInput, 'projectId' | 'audience'>>;
23
69
  export declare const bridge: EventBridge;
24
70
  //# sourceMappingURL=source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/events/source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC9B,MAAM,oCAAoC,CAAC;AAK5C,eAAO,MAAM,OAAO,WAAW,CAAC;AAEhC,oEAAoE;AACpE,eAAO,MAAM,yBAAyB,gBAAgB,CAAC;AAEvD,eAAO,MAAM,OAAO,EAAE,wBAarB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,WAqCpB,CAAC"}
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/events/source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACxB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,eAAO,MAAM,OAAO,WAAW,CAAC;AAEhC,oEAAoE;AACpE,eAAO,MAAM,yBAAyB,gBAAgB,CAAC;AAEvD,MAAM,MAAM,iBAAiB,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAI5F,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAE/E;AAED,2GAA2G;AAC3G,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;CAAE,GAAG,IAAI,CAK3G;AAED,yFAAyF;AACzF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGvD;AAKD,MAAM,MAAM,cAAc,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAClG,MAAM,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;AAEvE,eAAO,MAAM,OAAO,EAAE,wBA2BrB,CAAC;AAOF,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,GAAG,UAAU,CAAC,CAAC,CA6B/G;AAED,eAAO,MAAM,MAAM,EAAE,WAmDpB,CAAC"}
@@ -1,46 +1,154 @@
1
1
  /**
2
- * The `source` event subject — events about one SOURCE (a slug), today only
3
- * `source.sync.failed`.
2
+ * The `source` event subject — events about one SOURCE's sync lifecycle.
4
3
  *
5
- * `visible` is the source-access question the `filesystem` channel's
6
- * source-scoped branch asks (`BridgeService` → `canAccessScope`, the read
7
- * axis), asked for the ONE source the event is about and re-asked on every
8
- * event, so a revoked source stops delivering at once. A session without a
9
- * role, outside the event's project or without access is denied.
4
+ * SUBJECT = one FAMILY of jobs of one source: `v1:<mode>:<force>:<slug>`
5
+ * (`mode` ∈ full|targeted|embedding, `force` ∈ 0|1). A family is its own
6
+ * notification row, so a watcher-driven targeted success can never resolve a
7
+ * full sync's failure, and a forced re-embed is told apart from a plain sync.
8
+ * Embedding health has its own family, `v1:embedding:0:<slug>`. A slug has no
9
+ * `:`, so the form parses back unambiguously and stays under the kernel's
10
+ * 256-character coordinate cap (≤ 215 at a 200-character slug). Rows written
11
+ * before the families existed carry the BARE slug; they still parse (and stay
12
+ * visible), and only a deletion resolves them.
10
13
  *
11
- * `bridge` observes the ONE sync queue's terminal jobs and publishes a failed
12
- * sync as a SIGNAL: the source slug and a fixed failure class, never the job's
13
- * error text — that text carries host paths and per-path names and stays on
14
- * the actor-only `sync:failed` bus event. It is addressed to the user the job
15
- * ran for, or to the source's creator when the job ran under a system scope.
16
- * A failed purge is not published: its source is already gone.
14
+ * `visible` asks the source-access question the `filesystem` channel's
15
+ * source-scoped branch asks (`BridgeService` → `canAccessScope`) AND the
16
+ * source ROOT's uri-policy READ (`canReadUri`), for the ONE source the
17
+ * subject names, re-asked on every event — so a revoked or read-denied source
18
+ * stops delivering at once. A session without a role, outside the event's
19
+ * project or without access is denied.
20
+ *
21
+ * `bridge` observes the ONE sync queue's terminal jobs and publishes SIGNALS:
22
+ * the slug, a fixed mode/failure code and the Files Sources-panel `nav` —
23
+ * never the job's error text (it carries host paths and per-path names and
24
+ * stays on the actor-only `sync:failed` bus event). Transitions come from the
25
+ * queue (`SyncJobFinished.transition`, read against the state its completion
26
+ * writer saw), never from a level, so a healthy source publishes no
27
+ * "recovered" on every run. Clear matrix (`notify.clears`, same subject): a
28
+ * family's recovery resolves that family's failure; a FORCED full recovery
29
+ * also resolves the plain full family (a superset pass); embedding recovery
30
+ * resolves embedding degradation. Addressed to the user the job ran for, or
31
+ * the source's creator when it ran under a system scope. A purge job publishes
32
+ * nothing; the DELETION does: `source.deleted` (default off, no row of its own)
33
+ * goes once per subject the source could hold rows under — the bare slug and
34
+ * every family — and `notify.clears` every other source type there, so no
35
+ * unread row outlives its source (a gone source fails `visible`, so the row
36
+ * would stay hidden yet counted). Its own `visible` is AUDIENCE-bound at
37
+ * delivery — the deleting actor and the source's creator, who knew the slug —
38
+ * never the access check a gone source can no longer answer; the list's
39
+ * re-judge of a delivered row (no audience on it) answers by project.
17
40
  */
18
41
  import { isSentinelId, } from '@neuralis/package-system/contracts';
19
42
  import { getServices } from '../routes/helpers.js';
43
+ import { canReadUri } from '../domain/access/uriReadable.js';
20
44
  export const subject = 'source';
21
45
  /** The only failure class in v1 — a fixed code, never a message. */
22
46
  export const SOURCE_SYNC_FAILURE_CLASS = 'sync_failed';
47
+ const FAMILY_MODES = new Set(['full', 'targeted', 'embedding']);
48
+ /** `v1:<mode>:<force>:<slug>` — one notification row per family of one source. */
49
+ export function sourceSubjectId(slug, family) {
50
+ return `v1:${family.mode}:${family.force ? 1 : 0}:${slug}`;
51
+ }
52
+ /** The slug (and family) a subject names — a historical bare slug included; `null` for a malformed one. */
53
+ export function parseSourceSubjectId(subjectId) {
54
+ if (!subjectId.startsWith('v1:'))
55
+ return subjectId && !subjectId.includes(':') ? { slug: subjectId } : null;
56
+ const [, mode, force, slug, ...rest] = subjectId.split(':');
57
+ if (rest.length > 0 || !slug || !FAMILY_MODES.has(mode) || (force !== '0' && force !== '1'))
58
+ return null;
59
+ return { slug, family: { mode: mode, force: force === '1' } };
60
+ }
61
+ /** Every family subject a source can hold rows under, the historical bare slug first. */
62
+ export function sourceSubjectsOf(slug) {
63
+ const families = ['full', 'targeted', 'embedding'].flatMap((mode) => [false, true].map((force) => ({ mode, force })));
64
+ return [slug, ...families.map((family) => sourceSubjectId(slug, family))];
65
+ }
66
+ /** The deletion event — it resolves every other source type, on every subject the source may have. */
67
+ const SOURCE_DELETED = 'source.deleted';
23
68
  export const visible = async (event, session, state) => {
24
69
  if (!session.role || !session.projectId || event.projectId !== session.projectId)
25
70
  return false;
71
+ if (event.type.endsWith(`.${SOURCE_DELETED}`)) {
72
+ // Materialization carries the audience: only it learns the slug. A list re-judge carries none — the
73
+ // row exists only for an addressee, and the host already checked membership and `requires`.
74
+ return event.audience ? event.audience.userIds.includes(session.userId) : true;
75
+ }
76
+ const parsed = parseSourceSubjectId(event.subjectId);
77
+ if (!parsed)
78
+ return false;
26
79
  const services = await getServices(state, session.projectId);
27
- const config = await services.bridge.getSourceConfig({ userId: session.userId, projectId: session.projectId }, event.subjectId, {
80
+ const config = await services.bridge.getSourceConfig({ userId: session.userId, projectId: session.projectId }, parsed.slug, {
28
81
  agentId: session.agentId ?? '',
29
82
  role: session.role,
30
83
  grantedFeatures: session.grantedFeatures ?? [],
31
84
  });
32
- return config !== null;
85
+ if (config === null)
86
+ return false;
87
+ return canReadUri(services.infra, {
88
+ userId: session.userId,
89
+ projectId: session.projectId,
90
+ agentId: session.agentId ?? '',
91
+ role: session.role,
92
+ grantedFeatures: session.grantedFeatures ?? [],
93
+ }, `${parsed.slug}://`);
33
94
  };
95
+ /** The Files widget's Sources panel, opened on this source. */
96
+ function sourcesNav(slug) {
97
+ return { widgetType: 'filesystem', initialState: { nav: { kind: 'filesystem', action: 'open-sources', source: slug } } };
98
+ }
99
+ /** What one terminal job announces — family events, in publish order. */
100
+ export function sourceEventsFor(job) {
101
+ if (job.mode === 'purge')
102
+ return [];
103
+ const slug = job.source;
104
+ const family = { mode: job.mode, force: job.force };
105
+ const at = (fam) => sourceSubjectId(slug, fam);
106
+ const base = { sourceSlug: slug, title: slug, nav: sourcesNav(slug) };
107
+ const out = [];
108
+ if (job.status === 'failed') {
109
+ out.push({ event: 'source.sync.failed', subjectId: at(family),
110
+ data: { ...base, mode: job.mode, failureClass: SOURCE_SYNC_FAILURE_CLASS } });
111
+ }
112
+ else if (job.status === 'cancelled') {
113
+ out.push({ event: 'source.sync.cancelled', subjectId: at(family), data: { ...base, mode: job.mode } });
114
+ }
115
+ else if (job.status === 'completed') {
116
+ if (job.transition.recovered) {
117
+ out.push({ event: 'source.sync.recovered', subjectId: at(family), data: { ...base, mode: job.mode } });
118
+ // A forced full pass is a superset of the plain one: it resolves that family too.
119
+ if (job.mode === 'full' && job.force) {
120
+ out.push({ event: 'source.sync.recovered', subjectId: at({ mode: 'full', force: false }), data: { ...base, mode: job.mode } });
121
+ }
122
+ }
123
+ if (job.mode !== 'embedding') {
124
+ if (job.force)
125
+ out.push({ event: 'source.reindex.completed', subjectId: at(family), data: { ...base, mode: job.mode } });
126
+ else if (job.mode === 'full')
127
+ out.push({ event: 'source.sync.completed', subjectId: at(family), data: { ...base, mode: job.mode } });
128
+ }
129
+ const embedding = at({ mode: 'embedding', force: false });
130
+ if (job.transition.embeddingDegraded)
131
+ out.push({ event: 'source.embedding.degraded', subjectId: embedding, data: base });
132
+ if (job.transition.embeddingRecovered)
133
+ out.push({ event: 'source.embedding.recovered', subjectId: embedding, data: base });
134
+ }
135
+ return out;
136
+ }
34
137
  export const bridge = (publish, state) => {
35
138
  const brain = state;
36
- const publishFailure = (job, recipient) => {
37
- publish({
38
- event: 'source.sync.failed',
39
- projectId: job.scope.projectId,
40
- subjectId: job.source,
41
- data: { sourceSlug: job.source, failureClass: SOURCE_SYNC_FAILURE_CLASS },
42
- ...(recipient && !isSentinelId(recipient) ? { audience: { userIds: [recipient] } } : {}),
43
- });
139
+ const publishAll = (job, recipient) => {
140
+ for (const input of sourceEventsFor(job)) {
141
+ try {
142
+ publish({
143
+ ...input,
144
+ projectId: job.scope.projectId,
145
+ ...(recipient && !isSentinelId(recipient) ? { audience: { userIds: [recipient] } } : {}),
146
+ });
147
+ }
148
+ catch (err) {
149
+ warn(job, err);
150
+ }
151
+ }
44
152
  };
45
153
  const warn = (job, err) => {
46
154
  brain.syncLogger.warn('source.event.publish_failed', {
@@ -49,24 +157,34 @@ export const bridge = (publish, state) => {
49
157
  error: err instanceof Error ? err.message : String(err),
50
158
  });
51
159
  };
52
- return brain.syncQueue.onJobFinished((job) => {
53
- if (job.status !== 'failed' || job.mode === 'purge')
160
+ brain.sourceDeletions = (deletion) => {
161
+ const userIds = [...new Set([deletion.actor, deletion.creator ?? ''])].filter((id) => id && !isSentinelId(id));
162
+ if (isSentinelId(deletion.projectId))
54
163
  return;
55
- if (isSentinelId(job.scope.projectId))
56
- return;
57
- if (!isSentinelId(job.scope.userId)) {
164
+ for (const subjectId of sourceSubjectsOf(deletion.slug)) {
58
165
  try {
59
- publishFailure(job, job.scope.userId);
166
+ publish({ event: SOURCE_DELETED, subjectId, projectId: deletion.projectId,
167
+ data: { sourceSlug: deletion.slug, title: deletion.slug }, ...(userIds.length ? { audience: { userIds } } : {}) });
60
168
  }
61
169
  catch (err) {
62
- warn(job, err);
170
+ brain.syncLogger.warn('source.event.publish_failed', { source: deletion.slug, error: err instanceof Error ? err.message : String(err) });
63
171
  }
172
+ }
173
+ };
174
+ const stopJobs = brain.syncQueue.onJobFinished((job) => {
175
+ if (job.mode === 'purge' || job.status === 'paused')
176
+ return;
177
+ if (isSentinelId(job.scope.projectId))
178
+ return;
179
+ if (!isSentinelId(job.scope.userId)) {
180
+ publishAll(job, job.scope.userId);
64
181
  return;
65
182
  }
66
183
  brain.globalSourceConfigs
67
184
  .get(job.scope, job.source)
68
- .then((config) => publishFailure(job, config?.createdBy))
185
+ .then((config) => publishAll(job, config?.createdBy))
69
186
  .catch((err) => warn(job, err));
70
187
  });
188
+ return () => { stopJobs(); brain.sourceDeletions = undefined; };
71
189
  };
72
190
  //# sourceMappingURL=source.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../../../src/events/source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../../src/events/source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * The `vector` event subject — the outcome of an operator's collection action:
3
+ * a rebuild to the target embedding model that finished or paused, and a
4
+ * maintenance action (`dense-clear`, index migration, tuning, quantization,
5
+ * text ranking) that completed or failed. One row per ACTION (the subject id),
6
+ * addressed to the operator who started it, in the project they started it
7
+ * from; a completion resolves that action's failure (`notify.clears`).
8
+ *
9
+ * The outcome is known only to the process that ran the request: a rebuild
10
+ * RESUMED after a restart has nobody to address and publishes nothing — its
11
+ * state stays on the Vector Health panel and in the log. A full store reset
12
+ * runs from the admin package and is not reported here.
13
+ *
14
+ * `visible`: a role-holding member of the event's project holding
15
+ * `platform.vector.maintain` (the collection route's own escalation) — the
16
+ * collection is platform-wide, the row is the operator's project-scoped
17
+ * signal; decided from the subject and the session alone (a re-judge sees no
18
+ * data).
19
+ */
20
+ import { type EventBridge, type EventVisibilityPredicate } from '@neuralis/package-system/contracts';
21
+ export declare const subject = "vector";
22
+ export type VectorActionOutcome = {
23
+ action: string;
24
+ outcome: 'completed' | 'failed' | 'paused';
25
+ projectId: string;
26
+ principal: string;
27
+ };
28
+ export type VectorOutcomePublish = (outcome: VectorActionOutcome) => void;
29
+ export declare const visible: EventVisibilityPredicate;
30
+ /** The declaration an outcome publishes, or `null` for one that is no notification (a rebuild "failed" is a pause). */
31
+ export declare function vectorEventFor(outcome: VectorActionOutcome): string | null;
32
+ export declare const bridge: EventBridge;
33
+ //# sourceMappingURL=vector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../../src/events/vector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC9B,MAAM,oCAAoC,CAAC;AAG5C,eAAO,MAAM,OAAO,WAAW,CAAC;AAEhC,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;AAI1E,eAAO,MAAM,OAAO,EAAE,wBAE8B,CAAC;AAErD,uHAAuH;AACvH,wBAAgB,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAK1E;AAED,eAAO,MAAM,MAAM,EAAE,WAqBpB,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * The `vector` event subject — the outcome of an operator's collection action:
3
+ * a rebuild to the target embedding model that finished or paused, and a
4
+ * maintenance action (`dense-clear`, index migration, tuning, quantization,
5
+ * text ranking) that completed or failed. One row per ACTION (the subject id),
6
+ * addressed to the operator who started it, in the project they started it
7
+ * from; a completion resolves that action's failure (`notify.clears`).
8
+ *
9
+ * The outcome is known only to the process that ran the request: a rebuild
10
+ * RESUMED after a restart has nobody to address and publishes nothing — its
11
+ * state stays on the Vector Health panel and in the log. A full store reset
12
+ * runs from the admin package and is not reported here.
13
+ *
14
+ * `visible`: a role-holding member of the event's project holding
15
+ * `platform.vector.maintain` (the collection route's own escalation) — the
16
+ * collection is platform-wide, the row is the operator's project-scoped
17
+ * signal; decided from the subject and the session alone (a re-judge sees no
18
+ * data).
19
+ */
20
+ import { hasFeature } from '@neuralis/package-system/access';
21
+ import { isSentinelId, } from '@neuralis/package-system/contracts';
22
+ export const subject = 'vector';
23
+ const FILES_VECTOR_NAV = { widgetType: 'filesystem', initialState: { nav: { kind: 'filesystem', action: 'open-vector-health' } } };
24
+ export const visible = (event, session) => Boolean(session.role) && Boolean(session.projectId) && event.projectId === session.projectId
25
+ && hasFeature(session, 'platform.vector.maintain');
26
+ /** The declaration an outcome publishes, or `null` for one that is no notification (a rebuild "failed" is a pause). */
27
+ export function vectorEventFor(outcome) {
28
+ if (outcome.action === 'rebuild-generation') {
29
+ return outcome.outcome === 'completed' ? 'vector.rebuild.completed' : outcome.outcome === 'paused' ? 'vector.rebuild.paused' : null;
30
+ }
31
+ return outcome.outcome === 'completed' ? 'vector.maintenance.completed' : outcome.outcome === 'failed' ? 'vector.maintenance.failed' : null;
32
+ }
33
+ export const bridge = (publish, state) => {
34
+ const brain = state;
35
+ brain.vectorOutcomes = (outcome) => {
36
+ const event = vectorEventFor(outcome);
37
+ if (!event || isSentinelId(outcome.projectId))
38
+ return;
39
+ try {
40
+ publish({
41
+ event,
42
+ subjectId: outcome.action,
43
+ projectId: outcome.projectId,
44
+ data: { action: outcome.action, title: outcome.action, nav: FILES_VECTOR_NAV },
45
+ ...(outcome.principal && !isSentinelId(outcome.principal) ? { audience: { userIds: [outcome.principal] } } : {}),
46
+ });
47
+ }
48
+ catch (err) {
49
+ brain.vectorLogger.warn('vector.event.publish_failed', {
50
+ action: outcome.action,
51
+ error: err instanceof Error ? err.message : String(err),
52
+ });
53
+ }
54
+ };
55
+ return () => { brain.vectorOutcomes = undefined; };
56
+ };
57
+ //# sourceMappingURL=vector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../src/events/vector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,YAAY,GAGb,MAAM,oCAAoC,CAAC;AAG5C,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAWhC,MAAM,gBAAgB,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC;AAEnI,MAAM,CAAC,MAAM,OAAO,GAA6B,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAClE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS;OACzF,UAAU,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;AAErD,uHAAuH;AACvH,MAAM,UAAU,cAAc,CAAC,OAA4B;IACzD,IAAI,OAAO,CAAC,MAAM,KAAK,oBAAoB,EAAE,CAAC;QAC5C,OAAO,OAAO,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC;IACtI,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9I,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;IACpD,MAAM,KAAK,GAAG,KAAuB,CAAC;IACtC,KAAK,CAAC,cAAc,GAAG,CAAC,OAAO,EAAE,EAAE;QACjC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,OAAO;QACtD,IAAI,CAAC;YACH,OAAO,CAAC;gBACN,KAAK;gBACL,SAAS,EAAE,OAAO,CAAC,MAAM;gBACzB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE;gBAC9E,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjH,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACrD,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IACF,OAAO,GAAG,EAAE,GAAG,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"GitRunner.d.ts","sourceRoot":"","sources":["../../../src/git/GitRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAKH,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAO1E,yFAAyF;AACzF,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAG,iBAAiB,CAAU;IAC3C,cAGC;CACF;AAED,0DAA0D;AAC1D,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAG,gBAAgB,CAAU;IAC1C,YAAY,IAAI,EAAE,MAAM,EAGvB;CACF;AAED;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAG,oBAAoB,CAAU;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,YAAY,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAK1C;CACF;AAED,oFAAoF;AACpF,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAG,kBAAkB,CAAU;IAC5C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IACvC,YAAY,IAAI,EAAE,MAAM,EAGvB;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAG,kBAAkB,CAAU;IAC5C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAG,kBAAkB,CAAU;IAC5C,YAAY,IAAI,EAAE,MAAM,EAGvB;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAG3C,QAAQ,CAAC,GAAG,EAAE,MAAM;IAFtB,QAAQ,CAAC,IAAI,EAAG,wBAAwB,CAAU;IAClD,YACW,GAAG,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EAIb;CACF;AAMD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE,SAAS,MAAM,EAAO,GAAG,UAAU,CAgDlF;AAMD,sFAAsF;AACtF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB;8DAC0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qFAAqF;IACrF,aAAa,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAkBF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,wBAAwB,QAY7B,CAAC;AAaT;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,6CAA6C,CAAC;AAoEzE,qBAAa,SAAS;;IASpB,OAAO,eAKN;IAED,oEAAoE;IACpE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,OAAa,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAsCjE;IAuRD;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAcjD;IAED;;;;OAIG;IACG,IAAI,CAAC,IAAI,GAAE;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KACb,GAAG,OAAO,CAAC,MAAM,CAAC,CAUvB;IAED;;;;;;;;;OASG;IACG,WAAW,CAAC,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAK7E;IAED;;;;OAIG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAO1E;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,UAAU,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAmBvH;IAED;;;;;;;;;;OAUG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAezF;IAED;;;;;OAKG;IACG,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAK7C;IAED;;;;;;OAMG;IACG,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI9C;IAEK,GAAG,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAahF;IAED;;;;;;;;;;;;OAYG;IACG,QAAQ,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA+BvG;IAED;;;;;;OAMG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAY5E;IAED;;;;;;;;;;;;OAYG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAI3F;IAED;;;;;;OAMG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAIlD;IAED;;;;;;;OAOG;IACG,YAAY,CAAC,GAAG,SAA2B,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAU3E;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACG,mBAAmB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAwBvF;IAeD;;;;;;OAMG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI7D;IAED;;;;OAIG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ7D;IAED;;;;;;;OAOG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM1D;IAEK,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAQ3C;IAED;;;;;;;OAOG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAS5C;IAMK,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAIxC;IAED;;;;;OAKG;IACG,KAAK,CAAC,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAW1G;IAEK,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3D;IAED;;;;;;OAMG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAKjD;IAEK,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAO7E;IAED;;;;;;OAMG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CASjG;IAED;;;;;;;;;;OAUG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CA4B/E;IASD;;;;;;;OAOG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5D;IAED;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlD;IAEK,KAAK,CAAC,IAAI,GAAE,MAAM,EAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpD;IAEK,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKnE;IAEK,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7D;IAQD;;;;;;;;;;OAUG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWtF;IAsEK,KAAK,CAAC,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,gBAAgB,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAQxF;IAED;;;;OAIG;IACG,IAAI,CAAC,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,gBAAgB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjF;IAED;;;;;;OAMG;IACG,IAAI,CAAC,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,gBAAgB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjF;IAED;;;;;OAKG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAGlC;CACF;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAMF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAmBnE;AAED,kFAAkF;AAClF,MAAM,MAAM,eAAe,GAAG;IAC5B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,+BAA+B;AAC/B,MAAM,MAAM,OAAO,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,GAClD,eAAe,EAAE,CAiCnB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK/D;AAKD,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAsB/D"}
1
+ {"version":3,"file":"GitRunner.d.ts","sourceRoot":"","sources":["../../../src/git/GitRunner.ts"],"names":[],"mappings":"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"}
@@ -283,14 +283,10 @@ const GIT_MAX_OUTPUT_BYTES = 4 * 1024 * 1024;
283
283
  const GIT_LOG_FS = '\x1f';
284
284
  /**
285
285
  * Env names OUTSIDE the `GIT_*` namespace that still drive git command
286
- * execution (git falls back to them when the GIT_ form is absent). simple-git
287
- * v3's unsafe-operations plugin (`vulnerabilityCheck(args, env)`) BLOCKS every
288
- * call outright when one is present in the child env — live-bitten (G2.4
289
- * adversarial-review debug): `npm exec`/`npx` injects `EDITOR=vi` into child
290
- * processes, which made EVERY simple-git task throw `Use of "EDITOR" is not
291
- * permitted` under `npx vitest` (and would do the same to a production host
292
- * started from a shell exporting `EDITOR`). Stripped alongside the GIT_*
293
- * sweep — a non-interactive hardened runner never needs any of them.
286
+ * execution (git falls back to them when the GIT_ form is absent). These
287
+ * command-bearing variables are stripped alongside the GIT_* sweep, never
288
+ * allowed through simple-git's environment guard: a non-interactive hardened
289
+ * runner needs none of them, even when its parent exports an editor command.
294
290
  */
295
291
  const UNSAFE_PLAIN_ENV = new Set(['EDITOR', 'VISUAL', 'PAGER', 'PREFIX', 'SSH_ASKPASS']);
296
292
  function sanitizedGitEnv() {
@@ -376,6 +372,13 @@ export class GitRunner {
376
372
  ? { timeout: { block: options.timeoutMs } }
377
373
  : {}),
378
374
  config: HARDENING_CONFIG,
375
+ // Only the sanitizer's four defensive Git overrides may cross v4's gate.
376
+ allowEnvironment: [
377
+ 'GIT_CONFIG_GLOBAL',
378
+ 'GIT_CONFIG_SYSTEM',
379
+ 'GIT_TERMINAL_PROMPT',
380
+ 'GIT_OPTIONAL_LOCKS',
381
+ ],
379
382
  // simple-git blocks `-c core.hooksPath|fsmonitor|pager` because those are
380
383
  // the exact keys an ATTACKER-supplied arg would abuse. Here the values are
381
384
  // HARDCODED safe constants (HARDENING_CONFIG) set DEFENSIVELY, never