@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
@@ -20,11 +20,12 @@
20
20
  * blocking `buildSharedInfra()` during brain-core init().
21
21
  */
22
22
  import { resolveOperatorEndpointEgress } from '@neuralis/package-system/web-common';
23
- import { resolveActiveEmbeddingConfig, resolveActiveEmbeddingShape, resolveEmbeddingConfigFor, resolveEmbeddingModel, getBrainConfigNumber, getBrainConfigProvider, getBrainConfigString, ActiveEmbeddingModelUnresolvableError, } from '../config/env.js';
23
+ import { resolveActiveEmbeddingConfig, requireEmbeddingEnabled, resolveActiveEmbeddingShape, resolveEmbeddingConfigFor, resolveEmbeddingModel, getBrainConfigNumber, getBrainConfigProvider, getBrainConfigString, ActiveEmbeddingModelUnresolvableError, EmbeddingDisabledError, EmbeddingMetadataOnlyError, EmbeddingCredentialMissingError, EmbeddingUnavailableError, } from '../config/env.js';
24
24
  import { buildEmbedUsageGuard } from './usageGate.js';
25
25
  import { embedModelMarker, embedRecipeOf, supportsEmbedInput, tagEmbedding } from './models.js';
26
26
  import { peekActiveLock } from './lock.js';
27
- import { CHARS_PER_TOKEN, estimateMediaTokens, estimateTokens, getEmbeddingUsageMeter } from './usage.js';
27
+ import { CHARS_PER_TOKEN, estimateMediaTokens, estimateTokens, getEmbeddingUsageMeter, isEmbeddingBudgetStopError } from './usage.js';
28
+ import { isProviderQuotaExhaustedError } from './providerQuota.js';
28
29
  import { DeterministicEmbedder } from './clients/DeterministicEmbedder.js';
29
30
  import { OllamaEmbedder } from './clients/OllamaEmbedder.js';
30
31
  import { OPENAI_MAX_INPUT_CHARS, OpenAIEmbedder } from './clients/OpenAIEmbedder.js';
@@ -257,13 +258,31 @@ function activeBuildFingerprint() {
257
258
  const provider = getBrainConfigProvider();
258
259
  const lock = peekActiveLock();
259
260
  return JSON.stringify([
260
- lock ? `${lock.modelId}@${lock.dimension}#${lock.embedRecipe}` : [provider?.get('embeddingModelId'), provider?.get('embeddingDimension')],
261
+ lock?.mode === 'dense' ? `${lock.modelId}@${lock.dimension}#${lock.embedRecipe}` : [provider?.get('embeddingModelId'), provider?.get('embeddingDimension')],
261
262
  provider?.get('embeddingEndpoints') ?? null,
262
263
  provider?.get('openaiBaseUrl') ?? null,
263
264
  provider?.get('qwenEmbeddingBaseUrl') ?? null,
264
265
  provider?.get('ollamaUrl') ?? null,
265
266
  ]);
266
267
  }
268
+ /** Safe availability reasons; arbitrary provider/schema/program errors do not qualify. */
269
+ export function embeddingUnavailableReason(error) {
270
+ if (error instanceof EmbeddingUnavailableError)
271
+ return error.reason;
272
+ if (error instanceof EmbeddingDisabledError)
273
+ return 'disabled';
274
+ if (error instanceof EmbeddingMetadataOnlyError)
275
+ return 'metadata_only';
276
+ if (error instanceof EmbeddingCredentialMissingError)
277
+ return 'credentials';
278
+ if (error instanceof ActiveEmbeddingModelUnresolvableError)
279
+ return 'model_missing';
280
+ if (isEmbeddingBudgetStopError(error))
281
+ return 'budget';
282
+ if (isProviderQuotaExhaustedError(error))
283
+ return 'quota';
284
+ return undefined;
285
+ }
267
286
  /** A media input the model's registry row does not list (the modality gate). */
268
287
  export class EmbedInputUnsupportedError extends Error {
269
288
  kind;
@@ -287,6 +306,7 @@ export class LazyEmbedder {
287
306
  #builtAt = embedderGeneration;
288
307
  #builtFrom = '';
289
308
  async #resolve() {
309
+ requireEmbeddingEnabled();
290
310
  const fingerprint = activeBuildFingerprint();
291
311
  if (this.#cached && (this.#builtAt !== embedderGeneration || this.#builtFrom !== fingerprint)) {
292
312
  this.#cached = null;
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/embeddings/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/embeddings/factory.ts"],"names":[],"mappings":"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"}
@@ -14,16 +14,17 @@
14
14
  * the run (paused) with its shadow — a resume re-verifies from the start but
15
15
  * re-embeds only what the shadow does not already hold.
16
16
  *
17
- * Format: v2. A v1 lock (dimension-only, one collection) reads as generation 1
18
- * with the base recipe; a lock NEWER than this binary is a typed refusal
17
+ * Format: v3 metadata/dense serving records, the ONLY format this runtime reads.
18
+ * A v1/v2 lock is refused naming the offline upgrade (`pnpm neuralis:upgrade`,
19
+ * `scripts/embeddingLockV3.ts`); a lock NEWER than this binary is a typed refusal
19
20
  * (`RecordNewerError`) — never "no lock", which is what used to overwrite it.
20
21
  * Writes are durable (temp + fsync + rename, mode 0600) and serialized in this
21
22
  * process, so a batch cursor, a dirty-id flush and the swap never interleave.
22
23
  */
23
- import { type EmbeddingProviderId } from './models.js';
24
+ import type { EmbeddingProviderId } from './models.js';
24
25
  /** The data-format ledger kind of this record (declared in `store/dataFormats.ts`). */
25
26
  export declare const EMBEDDING_LOCK_KIND: "brain-core/embedding-lock";
26
- export declare const EMBEDDING_LOCK_VERSION: 2;
27
+ export declare const EMBEDDING_LOCK_VERSION: 3;
27
28
  /** One model's identity as the vectors of a generation know it. */
28
29
  export type EmbeddingGeneration = {
29
30
  modelId: string;
@@ -39,6 +40,7 @@ export type EmbeddingRebuild = {
39
40
  generation: number;
40
41
  shadowCollection: string;
41
42
  state: EmbeddingRebuildState;
43
+ phase: 'prepared' | 'copying' | 'ready';
42
44
  startedAt: string;
43
45
  /** The scan's position in the ACTIVE collection (progress; a resume re-verifies from the start). */
44
46
  cursor?: string;
@@ -59,20 +61,27 @@ export type EmbeddingRebuild = {
59
61
  lastError?: string;
60
62
  updatedAt: string;
61
63
  };
62
- export type EmbeddingLock = EmbeddingGeneration & {
63
- version: 2;
64
- generation: number;
64
+ type EmbeddingServingRecord = {
65
+ version: 3;
65
66
  collection: string;
66
67
  createdAt: string;
67
- /** Set when the lock was written for a collection that already existed without one — its model label is inferred. */
68
- backfilledAt?: string;
69
68
  rebuild?: EmbeddingRebuild;
70
69
  };
70
+ export type MetadataEmbeddingLock = EmbeddingServingRecord & {
71
+ mode: 'metadata';
72
+ };
73
+ export type DenseEmbeddingLock = EmbeddingServingRecord & EmbeddingGeneration & {
74
+ mode: 'dense';
75
+ generation: number;
76
+ /** A pre-existing collection's model label was inferred, not proved. */
77
+ backfilledAt?: string;
78
+ };
79
+ export type EmbeddingLock = MetadataEmbeddingLock | DenseEmbeddingLock;
71
80
  declare const LOCK_RELATIVE = "app/config/embedding-lock.json";
72
81
  /** The lock file exists but is not a lock — never overwritten, never read as "no lock". */
73
82
  export declare class EmbeddingLockInvalidError extends Error {
74
83
  readonly code: 'embedding_lock_invalid';
75
- constructor(detail: string);
84
+ constructor(detail: string, remedy?: string);
76
85
  }
77
86
  export declare function readLock(appRoot: string): Promise<EmbeddingLock | null>;
78
87
  export declare function writeLock(appRoot: string, lock: EmbeddingLock): Promise<void>;
@@ -93,7 +102,9 @@ export declare function mutateLock(appRoot: string, fn: (lock: EmbeddingLock | n
93
102
  export declare function buildLockRecord(shape: EmbeddingGeneration, collection: string, opts?: {
94
103
  backfilled?: boolean;
95
104
  now?: string;
96
- }): EmbeddingLock;
105
+ }): DenseEmbeddingLock;
106
+ /** A serving collection with no invented model or dense schema. */
107
+ export declare function buildMetadataLockRecord(collection: string, now?: string): MetadataEmbeddingLock;
97
108
  /** The generation identity a lock records (without the rebuild state). */
98
109
  export declare function generationOf(lock: EmbeddingGeneration): EmbeddingGeneration;
99
110
  /** Do two generations write vectors into the same space? `apiModelId` is superseded in place, so it is not compared. */
@@ -1 +1 @@
1
- {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../../src/embeddings/lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../../src/embeddings/lock.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,9 @@
14
14
  * the run (paused) with its shadow — a resume re-verifies from the start but
15
15
  * re-embeds only what the shadow does not already hold.
16
16
  *
17
- * Format: v2. A v1 lock (dimension-only, one collection) reads as generation 1
18
- * with the base recipe; a lock NEWER than this binary is a typed refusal
17
+ * Format: v3 metadata/dense serving records, the ONLY format this runtime reads.
18
+ * A v1/v2 lock is refused naming the offline upgrade (`pnpm neuralis:upgrade`,
19
+ * `scripts/embeddingLockV3.ts`); a lock NEWER than this binary is a typed refusal
19
20
  * (`RecordNewerError`) — never "no lock", which is what used to overwrite it.
20
21
  * Writes are durable (temp + fsync + rename, mode 0600) and serialized in this
21
22
  * process, so a batch cursor, a dirty-id flush and the swap never interleave.
@@ -23,7 +24,6 @@
23
24
  import { readFile, mkdir, unlink } from 'node:fs/promises';
24
25
  import { join, dirname } from 'node:path';
25
26
  import { assertRecordFormat, durableReplaceFile } from '@neuralis/package-system/data';
26
- import { EMBED_RECIPE_BASE } from './models.js';
27
27
  import { EMBEDDING_LOCK_FORMAT } from '../store/dataFormats.js';
28
28
  /** The data-format ledger kind of this record (declared in `store/dataFormats.ts`). */
29
29
  export const EMBEDDING_LOCK_KIND = EMBEDDING_LOCK_FORMAT.kind;
@@ -32,8 +32,8 @@ const LOCK_RELATIVE = 'app/config/embedding-lock.json';
32
32
  /** The lock file exists but is not a lock — never overwritten, never read as "no lock". */
33
33
  export class EmbeddingLockInvalidError extends Error {
34
34
  code = 'embedding_lock_invalid';
35
- constructor(detail) {
36
- super(`EMBEDDING_LOCK_INVALID: ${detail}. Fix or remove ${LOCK_RELATIVE} (a removal is a vector reset).`);
35
+ constructor(detail, remedy = `Fix or remove ${LOCK_RELATIVE} (a removal is a vector reset).`) {
36
+ super(`EMBEDDING_LOCK_INVALID: ${detail}. ${remedy}`);
37
37
  this.name = 'EmbeddingLockInvalidError';
38
38
  }
39
39
  }
@@ -48,33 +48,46 @@ function parseLock(raw) {
48
48
  throw new EmbeddingLockInvalidError('not a JSON object');
49
49
  const version = typeof raw.version === 'number' ? raw.version : undefined;
50
50
  assertRecordFormat(EMBEDDING_LOCK_KIND, version, EMBEDDING_LOCK_VERSION);
51
- if (version !== 1 && version !== 2)
51
+ if (version === 1 || version === 2) {
52
+ throw new EmbeddingLockInvalidError(`format v${version} predates this build`, 'Stop the app and run `neuralis upgrade` (it converts the lock offline).');
53
+ }
54
+ if (version !== 3)
52
55
  throw new EmbeddingLockInvalidError(`unknown version ${String(raw.version)}`);
53
- if (typeof raw.modelId !== 'string' || !raw.modelId)
54
- throw new EmbeddingLockInvalidError('modelId missing');
55
- if (typeof raw.dimension !== 'number' || !(raw.dimension > 0))
56
- throw new EmbeddingLockInvalidError('dimension missing');
57
56
  if (typeof raw.collection !== 'string' || !raw.collection)
58
57
  throw new EmbeddingLockInvalidError('collection missing');
59
- if (version === 1) {
60
- // v1 → generation 1, the base recipe (every client's document request was
61
- // the base one when v1 locks were written).
62
- return {
63
- version: 2,
64
- generation: 1,
65
- collection: raw.collection,
66
- modelId: raw.modelId,
67
- provider: raw.provider,
68
- apiModelId: typeof raw.apiModelId === 'string' ? raw.apiModelId : '',
69
- embedRecipe: EMBED_RECIPE_BASE,
70
- dimension: raw.dimension,
71
- createdAt: typeof raw.createdAt === 'string' ? raw.createdAt : '',
72
- };
58
+ if (typeof raw.createdAt !== 'string')
59
+ throw new EmbeddingLockInvalidError('createdAt missing');
60
+ let rebuild;
61
+ if (raw.rebuild !== undefined) {
62
+ if (!isRecord(raw.rebuild))
63
+ throw new EmbeddingLockInvalidError('rebuild invalid');
64
+ const phase = raw.rebuild.phase;
65
+ if (phase !== 'prepared' && phase !== 'copying' && phase !== 'ready')
66
+ throw new EmbeddingLockInvalidError('rebuild phase invalid');
67
+ // Existing rebuild validation belongs to the job resolver; retain its durable state.
68
+ rebuild = raw.rebuild;
73
69
  }
74
- if (typeof raw.generation !== 'number' || !(raw.generation >= 1)) {
75
- throw new EmbeddingLockInvalidError('generation missing');
76
- }
77
- return raw;
70
+ const serving = { version: 3, collection: raw.collection, createdAt: raw.createdAt, ...(rebuild ? { rebuild } : {}) };
71
+ if (raw.mode === 'metadata')
72
+ return { ...serving, mode: 'metadata' };
73
+ if (raw.mode !== 'dense')
74
+ throw new EmbeddingLockInvalidError('mode invalid');
75
+ if (typeof raw.modelId !== 'string' || !raw.modelId)
76
+ throw new EmbeddingLockInvalidError('modelId missing');
77
+ if (typeof raw.dimension !== 'number' || !Number.isInteger(raw.dimension) || raw.dimension <= 0)
78
+ throw new EmbeddingLockInvalidError('dimension invalid');
79
+ if (typeof raw.generation !== 'number' || !Number.isInteger(raw.generation) || raw.generation < 1)
80
+ throw new EmbeddingLockInvalidError('generation invalid');
81
+ if (typeof raw.provider !== 'string' || typeof raw.apiModelId !== 'string')
82
+ throw new EmbeddingLockInvalidError('provider identity missing');
83
+ if (typeof raw.embedRecipe !== 'string' || !raw.embedRecipe)
84
+ throw new EmbeddingLockInvalidError('embedRecipe missing');
85
+ return {
86
+ ...serving, mode: 'dense', generation: raw.generation, modelId: raw.modelId,
87
+ provider: raw.provider, apiModelId: raw.apiModelId,
88
+ embedRecipe: raw.embedRecipe, dimension: raw.dimension,
89
+ ...(typeof raw.backfilledAt === 'string' ? { backfilledAt: raw.backfilledAt } : {}),
90
+ };
78
91
  }
79
92
  export async function readLock(appRoot) {
80
93
  let text;
@@ -160,7 +173,8 @@ export function mutateLock(appRoot, fn) {
160
173
  export function buildLockRecord(shape, collection, opts = {}) {
161
174
  const now = opts.now ?? new Date().toISOString();
162
175
  return {
163
- version: 2,
176
+ version: 3,
177
+ mode: 'dense',
164
178
  generation: 1,
165
179
  collection,
166
180
  modelId: shape.modelId,
@@ -172,6 +186,10 @@ export function buildLockRecord(shape, collection, opts = {}) {
172
186
  ...(opts.backfilled ? { backfilledAt: now } : {}),
173
187
  };
174
188
  }
189
+ /** A serving collection with no invented model or dense schema. */
190
+ export function buildMetadataLockRecord(collection, now = new Date().toISOString()) {
191
+ return { version: 3, mode: 'metadata', collection, createdAt: now };
192
+ }
175
193
  /** The generation identity a lock records (without the rebuild state). */
176
194
  export function generationOf(lock) {
177
195
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../../src/embeddings/lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../../src/embeddings/lock.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
+ /** Bound transport and body consumption even when a provider ignores cancellation. */
2
+ export declare function requestEmbeddingResponse(fetchImpl: typeof fetch, url: string, init: RequestInit, signal?: AbortSignal): Promise<{
3
+ response: Response;
4
+ raw: string;
5
+ }>;
1
6
  /** Existing bounded backoff shared by embedding clients. */
2
7
  export declare function waitEmbedRetry(ms: number, signal?: AbortSignal, abortMessage?: string): Promise<void>;
3
8
  export declare function retryDelayMs(rawText: string, attempt: number, retryAfter?: string | null): number;
@@ -1 +1 @@
1
- {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/embeddings/retry.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,SAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9G;AACD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAajG"}
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/embeddings/retry.ts"],"names":[],"mappings":"AAEA,sFAAsF;AACtF,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,OAAO,KAAK,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CA6B9C;AAED,4DAA4D;AAC5D,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,SAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9G;AACD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAajG"}
@@ -1,3 +1,38 @@
1
+ import { EmbeddingUnavailableError, getBrainConfigNumber } from '../config/env.js';
2
+ /** Bound transport and body consumption even when a provider ignores cancellation. */
3
+ export async function requestEmbeddingResponse(fetchImpl, url, init, signal) {
4
+ signal?.throwIfAborted();
5
+ const timeoutMs = getBrainConfigNumber('embeddingRequestTimeoutMs', undefined, 30_000);
6
+ if (!Number.isFinite(timeoutMs) || timeoutMs <= 0)
7
+ throw new Error('INVALID_EMBEDDING_REQUEST_TIMEOUT');
8
+ const controller = new AbortController();
9
+ let timer;
10
+ let onAbort;
11
+ const cancellation = new Promise((_resolve, reject) => {
12
+ onAbort = () => { controller.abort(signal?.reason); reject(signal?.reason); };
13
+ signal?.addEventListener('abort', onAbort, { once: true });
14
+ timer = setTimeout(() => {
15
+ const error = new EmbeddingUnavailableError('timeout');
16
+ controller.abort(error);
17
+ reject(error);
18
+ }, timeoutMs);
19
+ });
20
+ try {
21
+ return await Promise.race([
22
+ (async () => {
23
+ const response = await fetchImpl(url, { ...init, signal: controller.signal });
24
+ const raw = await response.text();
25
+ return { response, raw };
26
+ })(),
27
+ cancellation,
28
+ ]);
29
+ }
30
+ finally {
31
+ clearTimeout(timer);
32
+ if (onAbort)
33
+ signal?.removeEventListener('abort', onAbort);
34
+ }
35
+ }
1
36
  /** Existing bounded backoff shared by embedding clients. */
2
37
  export function waitEmbedRetry(ms, signal, abortMessage = 'EMBED_ABORTED') {
3
38
  return new Promise((resolve, reject) => {
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/embeddings/retry.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,MAAM,UAAU,cAAc,CAAC,EAAU,EAAE,MAAoB,EAAE,YAAY,GAAG,eAAe;IAC7F,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACjE,MAAM,OAAO,GAAG,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClG,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AACD,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,OAAe,EAAE,UAA0B;IACvF,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9F,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,IAAI,GAAG,qCAAqC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjE,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/embeddings/retry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * The `pending` event subject — ONE content-free summary per quiet window that
3
+ * a project has changes waiting for review (and, separately, that reviews were
4
+ * resolved). It never says which files, how many or whose: a reader opens the
5
+ * Changes view, whose per-record filtered list and count are the truth.
6
+ *
7
+ * PRODUCER: an OBSERVER on each project's own filesystem bus, attached when the
8
+ * project's infra entry is built (`CommunityInfraFactory`) — never through the
9
+ * factory's pinning `subscribe`, which would keep every project alive forever.
10
+ * Pending-relevant events (`isPendingRelevantEvent`) arrive PER FILE, so the
11
+ * observer coalesces: a 2 s quiet window (restarted by each event, capped at
12
+ * 10 s from the window's first event), one `unref()`'d timer per project with
13
+ * a window open, cleared when the entry is disposed. The summary is addressed
14
+ * to the bounded set of real actors seen in the window (followers come from
15
+ * the host). A burst notifies 2 s after it ends, at most 10 s after it began —
16
+ * stacked on, and independent of, the Files client's own 1 s / 5 s
17
+ * `pending:changed` re-count debounce.
18
+ *
19
+ * `visible`: a role-holding member of the event's project — the declaration's
20
+ * `requires.features` (`drive.read`, the pending route's feature) is checked by
21
+ * the host before this runs. Content-free, so nothing else is needed to judge
22
+ * it; the list behind the `nav` re-applies every per-record gate.
23
+ *
24
+ * RESOLUTION: the Inbox/popover marking a row read when it is shown or opened
25
+ * is the mechanism; a resolved review does NOT clear another reader's
26
+ * warning (`pending.review.resolved` declares no `clears`).
27
+ */
28
+ import { type EventBridge, type EventVisibilityPredicate, type NeuralisEventInput } from '@neuralis/package-system/contracts';
29
+ export declare const subject = "pending";
30
+ /** The quiet window and its ceiling — code floors of a coalescer, not tunables of a product. */
31
+ export declare const PENDING_SUMMARY_QUIET_MS = 2000;
32
+ export declare const PENDING_SUMMARY_MAX_WAIT_MS = 10000;
33
+ /** At most this many addressed actors per summary; followers are the host's. */
34
+ export declare const PENDING_SUMMARY_MAX_ACTORS = 50;
35
+ export type PendingSignalPublish = (input: Omit<NeuralisEventInput, 'projectId'> & {
36
+ projectId: string;
37
+ }) => unknown;
38
+ export type PendingObserver = {
39
+ /** Feed one bus event; anything not pending-relevant costs a string check. */
40
+ observe(event: Record<string, unknown>): void;
41
+ /** Drop the open window (its timer included) — the entry is gone. */
42
+ dispose(): void;
43
+ };
44
+ /**
45
+ * One project's coalescing observer. `publisher()` is read when a window
46
+ * CLOSES, so an observer born before the subject's bridge is wired simply stays
47
+ * silent until it is.
48
+ */
49
+ export declare function createPendingObserver(projectId: string, publisher: () => PendingSignalPublish | undefined, timers?: {
50
+ set: (fn: () => void, ms: number) => ReturnType<typeof setTimeout>;
51
+ clear: (handle: ReturnType<typeof setTimeout>) => void;
52
+ now: () => number;
53
+ }): PendingObserver;
54
+ export declare const visible: EventVisibilityPredicate;
55
+ export declare const bridge: EventBridge;
56
+ //# sourceMappingURL=pending.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending.d.ts","sourceRoot":"","sources":["../../../src/events/pending.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACxB,MAAM,oCAAoC,CAAC;AAI5C,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,gGAAgG;AAChG,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAC9C,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAClD,gFAAgF;AAChF,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC;AAErH,MAAM,MAAM,eAAe,GAAG;IAC5B,8EAA8E;IAC9E,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,qEAAqE;IACrE,OAAO,IAAI,IAAI,CAAC;CACjB,CAAC;AAIF;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,oBAAoB,GAAG,SAAS,EACjD,MAAM,GAAE;IAAE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,KAAK,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,MAAM,CAAA;CAEtJ,GACA,eAAe,CAkDjB;AAED,eAAO,MAAM,OAAO,EAAE,wBACwE,CAAC;AAE/F,eAAO,MAAM,MAAM,EAAE,WAIpB,CAAC"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * The `pending` event subject — ONE content-free summary per quiet window that
3
+ * a project has changes waiting for review (and, separately, that reviews were
4
+ * resolved). It never says which files, how many or whose: a reader opens the
5
+ * Changes view, whose per-record filtered list and count are the truth.
6
+ *
7
+ * PRODUCER: an OBSERVER on each project's own filesystem bus, attached when the
8
+ * project's infra entry is built (`CommunityInfraFactory`) — never through the
9
+ * factory's pinning `subscribe`, which would keep every project alive forever.
10
+ * Pending-relevant events (`isPendingRelevantEvent`) arrive PER FILE, so the
11
+ * observer coalesces: a 2 s quiet window (restarted by each event, capped at
12
+ * 10 s from the window's first event), one `unref()`'d timer per project with
13
+ * a window open, cleared when the entry is disposed. The summary is addressed
14
+ * to the bounded set of real actors seen in the window (followers come from
15
+ * the host). A burst notifies 2 s after it ends, at most 10 s after it began —
16
+ * stacked on, and independent of, the Files client's own 1 s / 5 s
17
+ * `pending:changed` re-count debounce.
18
+ *
19
+ * `visible`: a role-holding member of the event's project — the declaration's
20
+ * `requires.features` (`drive.read`, the pending route's feature) is checked by
21
+ * the host before this runs. Content-free, so nothing else is needed to judge
22
+ * it; the list behind the `nav` re-applies every per-record gate.
23
+ *
24
+ * RESOLUTION: the Inbox/popover marking a row read when it is shown or opened
25
+ * is the mechanism; a resolved review does NOT clear another reader's
26
+ * warning (`pending.review.resolved` declares no `clears`).
27
+ */
28
+ import { isSentinelId, } from '@neuralis/package-system/contracts';
29
+ import { isPendingRelevantEvent } from '../domain/events.js';
30
+ export const subject = 'pending';
31
+ /** The quiet window and its ceiling — code floors of a coalescer, not tunables of a product. */
32
+ export const PENDING_SUMMARY_QUIET_MS = 2_000;
33
+ export const PENDING_SUMMARY_MAX_WAIT_MS = 10_000;
34
+ /** At most this many addressed actors per summary; followers are the host's. */
35
+ export const PENDING_SUMMARY_MAX_ACTORS = 50;
36
+ const FILES_NAV = { widgetType: 'filesystem', initialState: { nav: { kind: 'filesystem', action: 'open-pending' } } };
37
+ /**
38
+ * One project's coalescing observer. `publisher()` is read when a window
39
+ * CLOSES, so an observer born before the subject's bridge is wired simply stays
40
+ * silent until it is.
41
+ */
42
+ export function createPendingObserver(projectId, publisher, timers = {
43
+ set: (fn, ms) => setTimeout(fn, ms), clear: (handle) => clearTimeout(handle), now: () => Date.now(),
44
+ }) {
45
+ let timer;
46
+ let openedAt = 0;
47
+ let required = false;
48
+ let resolved = false;
49
+ const actors = new Set();
50
+ const flush = () => {
51
+ timer = undefined;
52
+ const publish = publisher();
53
+ const audience = [...actors];
54
+ const kinds = [required ? 'pending.review.required' : null, resolved ? 'pending.review.resolved' : null]
55
+ .filter((kind) => kind !== null);
56
+ required = false;
57
+ resolved = false;
58
+ actors.clear();
59
+ if (!publish)
60
+ return;
61
+ for (const event of kinds) {
62
+ try {
63
+ publish({ event, subjectId: 'pending', projectId, data: { nav: FILES_NAV },
64
+ ...(audience.length ? { audience: { userIds: audience } } : {}) });
65
+ }
66
+ catch {
67
+ // A refused publish is the producer's bug and is loud in the hub's own log; the bus goes on.
68
+ }
69
+ }
70
+ };
71
+ return {
72
+ observe(event) {
73
+ if (event.projectId !== projectId || !isPendingRelevantEvent(event))
74
+ return;
75
+ const payload = (event.payload ?? {});
76
+ if (payload.status === 'pending_review')
77
+ required = true;
78
+ else
79
+ resolved = true;
80
+ const actor = event.userId;
81
+ if (typeof actor === 'string' && actor && !isSentinelId(actor) && actors.size < PENDING_SUMMARY_MAX_ACTORS)
82
+ actors.add(actor);
83
+ const now = timers.now();
84
+ if (timer === undefined)
85
+ openedAt = now;
86
+ else
87
+ timers.clear(timer);
88
+ const wait = Math.max(0, Math.min(PENDING_SUMMARY_QUIET_MS, openedAt + PENDING_SUMMARY_MAX_WAIT_MS - now));
89
+ timer = timers.set(flush, wait);
90
+ timer.unref?.();
91
+ },
92
+ dispose() {
93
+ if (timer !== undefined)
94
+ timers.clear(timer);
95
+ timer = undefined;
96
+ actors.clear();
97
+ required = false;
98
+ resolved = false;
99
+ },
100
+ };
101
+ }
102
+ export const visible = (event, session) => Boolean(session.role) && Boolean(session.projectId) && event.projectId === session.projectId;
103
+ export const bridge = (publish, state) => {
104
+ const factory = state.infraFactory;
105
+ factory.setPendingPublisher((input) => publish(input));
106
+ return () => factory.setPendingPublisher(undefined);
107
+ };
108
+ //# sourceMappingURL=pending.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending.js","sourceRoot":"","sources":["../../../src/events/pending.ts"],"names":[],"mappings":"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"}