@neuralis/brain-core 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. package/README.md +26 -35
  2. package/app/cards/DiffView.tsx +9 -7
  3. package/app/cards/README.md +1 -1
  4. package/app/cards/diffLine.tsx +2 -4
  5. package/app/filesystem/README.md +1 -1
  6. package/app/filesystem/api/index.ts +14 -5
  7. package/app/filesystem/domain/types.ts +24 -5
  8. package/app/filesystem/store/filesystemStore.ts +20 -1
  9. package/app/filesystem/store/listSlice.ts +2 -0
  10. package/app/filesystem/store/searchSlice.ts +24 -1
  11. package/app/filesystem/ui/FileTreeSearch.tsx +29 -2
  12. package/app/filesystem/ui/PendingChangesPanel.tsx +74 -17
  13. package/app/filesystem/ui/PendingReviewDialog.tsx +45 -20
  14. package/app/filesystem/ui/README.md +8 -7
  15. package/app/filesystem/ui/ReembedDialog.tsx +20 -9
  16. package/app/filesystem/ui/SourceDeleteConfirm.tsx +1 -1
  17. package/app/filesystem/ui/SourcesPanel.tsx +110 -17
  18. package/app/filesystem/ui/VectorHealthPanel.tsx +14 -0
  19. package/app/filesystem/ui/pendingChangesModel.ts +9 -5
  20. package/dist/app/chunks/{astro-LRAFGXNX.js → astro-B2J4AS2D.js} +1 -1
  21. package/dist/app/chunks/bash-KY6SAQTH.js +1 -0
  22. package/dist/app/chunks/c-OBOPYVZ7.js +1 -0
  23. package/dist/app/chunks/{chunk-5H7ZCOD3.js → chunk-2X3GNKJ3.js} +1 -1
  24. package/dist/app/chunks/{chunk-XIFGTNRM.js → chunk-JPJIVRFI.js} +1 -1
  25. package/dist/app/chunks/{chunk-RH3QY5LF.js → chunk-LEFIFWND.js} +1 -1
  26. package/dist/app/chunks/{chunk-G4RZ3UNX.js → chunk-N6RXX3PH.js} +1 -1
  27. package/dist/app/chunks/{chunk-QXXJ73P5.js → chunk-PZAW4HPB.js} +1 -1
  28. package/dist/app/chunks/{chunk-3QLE7Y4L.js → chunk-ZBYWWTO6.js} +1 -1
  29. package/dist/app/chunks/cpp-TVWVOTEQ.js +1 -0
  30. package/dist/app/chunks/css-MANZBYA4.js +1 -0
  31. package/dist/app/chunks/{elixir-M36XROA6.js → elixir-S725Z7EH.js} +1 -1
  32. package/dist/app/chunks/{elm-7BG6QAIK.js → elm-5WUUSTNB.js} +1 -1
  33. package/dist/app/chunks/graphql-UGOPR3WU.js +1 -0
  34. package/dist/app/chunks/html-F6FWTBSG.js +1 -0
  35. package/dist/app/chunks/java-ANIVV5H5.js +1 -0
  36. package/dist/app/chunks/javascript-IH374YWG.js +1 -0
  37. package/dist/app/chunks/json-WGGVVXSB.js +1 -0
  38. package/dist/app/chunks/jsx-OTXJQD32.js +1 -0
  39. package/dist/app/chunks/{latex-ZWK7SXB6.js → latex-QCZNITGN.js} +1 -1
  40. package/dist/app/chunks/lua-4CRZ64PU.js +1 -0
  41. package/dist/app/chunks/{nginx-2L6VRV3A.js → nginx-V4CYS7WR.js} +1 -1
  42. package/dist/app/chunks/{perl-PBUAXXK6.js → perl-BHTX7F5B.js} +1 -1
  43. package/dist/app/chunks/{php-QJX57PA6.js → php-AYGJ5WYZ.js} +1 -1
  44. package/dist/app/chunks/r-4YFCFA4B.js +1 -0
  45. package/dist/app/chunks/{ruby-RLOWMVPO.js → ruby-42NMJWAL.js} +1 -1
  46. package/dist/app/chunks/{scss-B5CAI3HR.js → scss-XD7VU2CU.js} +1 -1
  47. package/dist/app/chunks/sql-B55MH6JJ.js +1 -0
  48. package/dist/app/chunks/{svelte-GT3D4C44.js → svelte-WR3QPIJU.js} +1 -1
  49. package/dist/app/chunks/tsx-S73GAE2L.js +1 -0
  50. package/dist/app/chunks/typescript-NEWOAB5Z.js +1 -0
  51. package/dist/app/chunks/{vue-JOW62MHD.js → vue-CCDS4VZK.js} +1 -1
  52. package/dist/app/chunks/xml-UXKAGLDR.js +1 -0
  53. package/dist/app/chunks/yaml-UMWKDTK7.js +1 -0
  54. package/dist/app/host.js +40 -40
  55. package/dist/scripts/embeddingLockV3.d.ts +30 -0
  56. package/dist/scripts/embeddingLockV3.d.ts.map +1 -0
  57. package/dist/scripts/embeddingLockV3.js +100 -0
  58. package/dist/scripts/embeddingLockV3.js.map +1 -0
  59. package/dist/scripts/vectorProofV1.d.ts +90 -0
  60. package/dist/scripts/vectorProofV1.d.ts.map +1 -0
  61. package/dist/scripts/vectorProofV1.js +220 -0
  62. package/dist/scripts/vectorProofV1.js.map +1 -0
  63. package/dist/src/config/env.d.ts +21 -0
  64. package/dist/src/config/env.d.ts.map +1 -1
  65. package/dist/src/config/env.js +55 -0
  66. package/dist/src/config/env.js.map +1 -1
  67. package/dist/src/connectors/AppSourceConfigStore.d.ts +12 -2
  68. package/dist/src/connectors/AppSourceConfigStore.d.ts.map +1 -1
  69. package/dist/src/connectors/AppSourceConfigStore.js +48 -40
  70. package/dist/src/connectors/AppSourceConfigStore.js.map +1 -1
  71. package/dist/src/connectors/LocalDiskConnector.d.ts +11 -14
  72. package/dist/src/connectors/LocalDiskConnector.d.ts.map +1 -1
  73. package/dist/src/connectors/LocalDiskConnector.js +87 -107
  74. package/dist/src/connectors/LocalDiskConnector.js.map +1 -1
  75. package/dist/src/connectors/sourceConfigMutation.d.ts +11 -1
  76. package/dist/src/connectors/sourceConfigMutation.d.ts.map +1 -1
  77. package/dist/src/connectors/sourceConfigMutation.js +36 -3
  78. package/dist/src/connectors/sourceConfigMutation.js.map +1 -1
  79. package/dist/src/domain/chunker.js +8 -3
  80. package/dist/src/domain/chunker.js.map +1 -1
  81. package/dist/src/domain/healthTypes.d.ts +11 -0
  82. package/dist/src/domain/healthTypes.d.ts.map +1 -1
  83. package/dist/src/domain/mime.d.ts +1 -0
  84. package/dist/src/domain/mime.d.ts.map +1 -1
  85. package/dist/src/domain/mime.js +48 -0
  86. package/dist/src/domain/mime.js.map +1 -1
  87. package/dist/src/domain/pendingChange.d.ts +7 -0
  88. package/dist/src/domain/pendingChange.d.ts.map +1 -1
  89. package/dist/src/domain/pendingChange.js +11 -0
  90. package/dist/src/domain/pendingChange.js.map +1 -1
  91. package/dist/src/domain/sourceConfig.d.ts +7 -14
  92. package/dist/src/domain/sourceConfig.d.ts.map +1 -1
  93. package/dist/src/domain/sourceConfig.js +1 -13
  94. package/dist/src/domain/sourceConfig.js.map +1 -1
  95. package/dist/src/domain/sourcePackages.d.ts +11 -2
  96. package/dist/src/domain/sourcePackages.d.ts.map +1 -1
  97. package/dist/src/domain/syncTrigger.d.ts +2 -3
  98. package/dist/src/domain/syncTrigger.d.ts.map +1 -1
  99. package/dist/src/domain/syncTrigger.js +2 -3
  100. package/dist/src/domain/syncTrigger.js.map +1 -1
  101. package/dist/src/domain/syncTypes.d.ts +21 -4
  102. package/dist/src/domain/syncTypes.d.ts.map +1 -1
  103. package/dist/src/domain/syncTypes.js.map +1 -1
  104. package/dist/src/domain/text.d.ts +3 -0
  105. package/dist/src/domain/text.d.ts.map +1 -1
  106. package/dist/src/domain/text.js +5 -0
  107. package/dist/src/domain/text.js.map +1 -1
  108. package/dist/src/domain/types.d.ts +9 -0
  109. package/dist/src/domain/types.d.ts.map +1 -1
  110. package/dist/src/embeddings/clients/GeminiEmbedder.d.ts.map +1 -1
  111. package/dist/src/embeddings/clients/GeminiEmbedder.js +11 -5
  112. package/dist/src/embeddings/clients/GeminiEmbedder.js.map +1 -1
  113. package/dist/src/embeddings/clients/OllamaEmbedder.d.ts.map +1 -1
  114. package/dist/src/embeddings/clients/OllamaEmbedder.js +13 -6
  115. package/dist/src/embeddings/clients/OllamaEmbedder.js.map +1 -1
  116. package/dist/src/embeddings/clients/OpenAIEmbedder.d.ts.map +1 -1
  117. package/dist/src/embeddings/clients/OpenAIEmbedder.js +12 -9
  118. package/dist/src/embeddings/clients/OpenAIEmbedder.js.map +1 -1
  119. package/dist/src/embeddings/clients/QwenEmbedder.d.ts.map +1 -1
  120. package/dist/src/embeddings/clients/QwenEmbedder.js +12 -5
  121. package/dist/src/embeddings/clients/QwenEmbedder.js.map +1 -1
  122. package/dist/src/embeddings/clients/VoyageEmbedder.d.ts.map +1 -1
  123. package/dist/src/embeddings/clients/VoyageEmbedder.js +12 -5
  124. package/dist/src/embeddings/clients/VoyageEmbedder.js.map +1 -1
  125. package/dist/src/embeddings/factory.d.ts +2 -0
  126. package/dist/src/embeddings/factory.d.ts.map +1 -1
  127. package/dist/src/embeddings/factory.js +23 -3
  128. package/dist/src/embeddings/factory.js.map +1 -1
  129. package/dist/src/embeddings/lock.d.ts +22 -11
  130. package/dist/src/embeddings/lock.d.ts.map +1 -1
  131. package/dist/src/embeddings/lock.js +47 -29
  132. package/dist/src/embeddings/lock.js.map +1 -1
  133. package/dist/src/embeddings/retry.d.ts +5 -0
  134. package/dist/src/embeddings/retry.d.ts.map +1 -1
  135. package/dist/src/embeddings/retry.js +35 -0
  136. package/dist/src/embeddings/retry.js.map +1 -1
  137. package/dist/src/events/pending.d.ts +56 -0
  138. package/dist/src/events/pending.d.ts.map +1 -0
  139. package/dist/src/events/pending.js +108 -0
  140. package/dist/src/events/pending.js.map +1 -0
  141. package/dist/src/events/source.d.ts +60 -14
  142. package/dist/src/events/source.d.ts.map +1 -1
  143. package/dist/src/events/source.js +149 -31
  144. package/dist/src/events/source.js.map +1 -1
  145. package/dist/src/events/vector.d.ts +33 -0
  146. package/dist/src/events/vector.d.ts.map +1 -0
  147. package/dist/src/events/vector.js +57 -0
  148. package/dist/src/events/vector.js.map +1 -0
  149. package/dist/src/git/GitRunner.d.ts.map +1 -1
  150. package/dist/src/git/GitRunner.js +11 -8
  151. package/dist/src/git/GitRunner.js.map +1 -1
  152. package/dist/src/git/sourceGitControl.d.ts.map +1 -1
  153. package/dist/src/git/sourceGitControl.js +2 -1
  154. package/dist/src/git/sourceGitControl.js.map +1 -1
  155. package/dist/src/index.d.ts +5 -4
  156. package/dist/src/index.d.ts.map +1 -1
  157. package/dist/src/index.js +4 -3
  158. package/dist/src/index.js.map +1 -1
  159. package/dist/src/lifecycle.d.ts +20 -4
  160. package/dist/src/lifecycle.d.ts.map +1 -1
  161. package/dist/src/lifecycle.js +5 -1
  162. package/dist/src/lifecycle.js.map +1 -1
  163. package/dist/src/routes/health.js +6 -1
  164. package/dist/src/routes/health.js.map +1 -1
  165. package/dist/src/routes/pending.d.ts.map +1 -1
  166. package/dist/src/routes/pending.js +2 -1
  167. package/dist/src/routes/pending.js.map +1 -1
  168. package/dist/src/routes/sources.d.ts.map +1 -1
  169. package/dist/src/routes/sources.js +60 -11
  170. package/dist/src/routes/sources.js.map +1 -1
  171. package/dist/src/services/BridgeService.d.ts +2 -2
  172. package/dist/src/services/BridgeService.d.ts.map +1 -1
  173. package/dist/src/services/BridgeService.js +11 -2
  174. package/dist/src/services/BridgeService.js.map +1 -1
  175. package/dist/src/services/FilesystemService.d.ts +3 -1
  176. package/dist/src/services/FilesystemService.d.ts.map +1 -1
  177. package/dist/src/services/FilesystemService.js +3 -1
  178. package/dist/src/services/FilesystemService.js.map +1 -1
  179. package/dist/src/services/FilesystemUiService.js +1 -1
  180. package/dist/src/services/FilesystemUiService.js.map +1 -1
  181. package/dist/src/services/SyncScheduler.d.ts.map +1 -1
  182. package/dist/src/services/SyncScheduler.js +0 -14
  183. package/dist/src/services/SyncScheduler.js.map +1 -1
  184. package/dist/src/services/VectorHealthService.d.ts.map +1 -1
  185. package/dist/src/services/VectorHealthService.js +2 -46
  186. package/dist/src/services/VectorHealthService.js.map +1 -1
  187. package/dist/src/services/baselineRepair.d.ts +2 -2
  188. package/dist/src/services/baselineRepair.js +2 -2
  189. package/dist/src/services/declaredSources.d.ts +8 -1
  190. package/dist/src/services/declaredSources.d.ts.map +1 -1
  191. package/dist/src/services/declaredSources.js +19 -19
  192. package/dist/src/services/declaredSources.js.map +1 -1
  193. package/dist/src/store/dataFormats.d.ts +14 -3
  194. package/dist/src/store/dataFormats.d.ts.map +1 -1
  195. package/dist/src/store/dataFormats.js +15 -5
  196. package/dist/src/store/dataFormats.js.map +1 -1
  197. package/dist/src/sync/DeltaSyncRunner.d.ts.map +1 -1
  198. package/dist/src/sync/DeltaSyncRunner.js +78 -243
  199. package/dist/src/sync/DeltaSyncRunner.js.map +1 -1
  200. package/dist/src/sync/SyncJobQueue.d.ts +33 -4
  201. package/dist/src/sync/SyncJobQueue.d.ts.map +1 -1
  202. package/dist/src/sync/SyncJobQueue.js +179 -19
  203. package/dist/src/sync/SyncJobQueue.js.map +1 -1
  204. package/dist/src/sync/moveDetector.d.ts +2 -1
  205. package/dist/src/sync/moveDetector.d.ts.map +1 -1
  206. package/dist/src/sync/moveDetector.js +2 -1
  207. package/dist/src/sync/moveDetector.js.map +1 -1
  208. package/dist/src/tools/fs_search.d.ts.map +1 -1
  209. package/dist/src/tools/fs_search.js +8 -0
  210. package/dist/src/tools/fs_search.js.map +1 -1
  211. package/dist/src/tools/fs_write.js +3 -1
  212. package/dist/src/tools/fs_write.js.map +1 -1
  213. package/dist/src/usecases/chunkUpsert.d.ts +4 -0
  214. package/dist/src/usecases/chunkUpsert.d.ts.map +1 -1
  215. package/dist/src/usecases/chunkUpsert.js +103 -60
  216. package/dist/src/usecases/chunkUpsert.js.map +1 -1
  217. package/dist/src/usecases/embeddingBacklog.d.ts +31 -0
  218. package/dist/src/usecases/embeddingBacklog.d.ts.map +1 -0
  219. package/dist/src/usecases/embeddingBacklog.js +244 -0
  220. package/dist/src/usecases/embeddingBacklog.js.map +1 -0
  221. package/dist/src/usecases/listSourcePackages.js +17 -1
  222. package/dist/src/usecases/listSourcePackages.js.map +1 -1
  223. package/dist/src/usecases/mediaLane.d.ts +11 -4
  224. package/dist/src/usecases/mediaLane.d.ts.map +1 -1
  225. package/dist/src/usecases/mediaLane.js +67 -30
  226. package/dist/src/usecases/mediaLane.js.map +1 -1
  227. package/dist/src/usecases/pendingReview.d.ts.map +1 -1
  228. package/dist/src/usecases/pendingReview.js +24 -7
  229. package/dist/src/usecases/pendingReview.js.map +1 -1
  230. package/dist/src/usecases/purgeExcludedPoints.d.ts +2 -0
  231. package/dist/src/usecases/purgeExcludedPoints.d.ts.map +1 -1
  232. package/dist/src/usecases/purgeExcludedPoints.js +3 -2
  233. package/dist/src/usecases/purgeExcludedPoints.js.map +1 -1
  234. package/dist/src/usecases/readFiles.d.ts.map +1 -1
  235. package/dist/src/usecases/readFiles.js +33 -6
  236. package/dist/src/usecases/readFiles.js.map +1 -1
  237. package/dist/src/usecases/reconcileSourcePackageRoots.d.ts +31 -0
  238. package/dist/src/usecases/reconcileSourcePackageRoots.d.ts.map +1 -0
  239. package/dist/src/usecases/reconcileSourcePackageRoots.js +114 -0
  240. package/dist/src/usecases/reconcileSourcePackageRoots.js.map +1 -0
  241. package/dist/src/usecases/searchFiles.d.ts.map +1 -1
  242. package/dist/src/usecases/searchFiles.js +62 -64
  243. package/dist/src/usecases/searchFiles.js.map +1 -1
  244. package/dist/src/usecases/syncIndexedFile.d.ts +42 -0
  245. package/dist/src/usecases/syncIndexedFile.d.ts.map +1 -0
  246. package/dist/src/usecases/syncIndexedFile.js +242 -0
  247. package/dist/src/usecases/syncIndexedFile.js.map +1 -0
  248. package/dist/src/usecases/syncPointWrites.d.ts +5 -0
  249. package/dist/src/usecases/syncPointWrites.d.ts.map +1 -1
  250. package/dist/src/usecases/syncPointWrites.js +32 -5
  251. package/dist/src/usecases/syncPointWrites.js.map +1 -1
  252. package/dist/src/usecases/uploadBinary.d.ts.map +1 -1
  253. package/dist/src/usecases/uploadBinary.js +36 -49
  254. package/dist/src/usecases/uploadBinary.js.map +1 -1
  255. package/dist/src/usecases/vector/endpointGuard.js +2 -1
  256. package/dist/src/usecases/vector/endpointGuard.js.map +1 -1
  257. package/dist/src/usecases/vector/estimate.d.ts +7 -4
  258. package/dist/src/usecases/vector/estimate.d.ts.map +1 -1
  259. package/dist/src/usecases/vector/estimate.js +8 -5
  260. package/dist/src/usecases/vector/estimate.js.map +1 -1
  261. package/dist/src/usecases/vector/rebuildGeneration.d.ts +29 -5
  262. package/dist/src/usecases/vector/rebuildGeneration.d.ts.map +1 -1
  263. package/dist/src/usecases/vector/rebuildGeneration.js +224 -82
  264. package/dist/src/usecases/vector/rebuildGeneration.js.map +1 -1
  265. package/dist/src/usecases/vectorMaintenance.d.ts +46 -4
  266. package/dist/src/usecases/vectorMaintenance.d.ts.map +1 -1
  267. package/dist/src/usecases/vectorMaintenance.js +190 -11
  268. package/dist/src/usecases/vectorMaintenance.js.map +1 -1
  269. package/dist/src/usecases/write/commit.d.ts +6 -8
  270. package/dist/src/usecases/write/commit.d.ts.map +1 -1
  271. package/dist/src/usecases/write/commit.js +96 -112
  272. package/dist/src/usecases/write/commit.js.map +1 -1
  273. package/dist/src/usecases/write/content.js +1 -2
  274. package/dist/src/usecases/write/content.js.map +1 -1
  275. package/dist/src/usecases/write/ports.d.ts +1 -0
  276. package/dist/src/usecases/write/ports.d.ts.map +1 -1
  277. package/dist/src/vector/FilesystemVectorIndex.d.ts +34 -3
  278. package/dist/src/vector/FilesystemVectorIndex.d.ts.map +1 -1
  279. package/dist/src/vector/FilesystemVectorIndex.js +254 -20
  280. package/dist/src/vector/FilesystemVectorIndex.js.map +1 -1
  281. package/dist/src/vector/InMemoryVectorIndex.d.ts +9 -2
  282. package/dist/src/vector/InMemoryVectorIndex.d.ts.map +1 -1
  283. package/dist/src/vector/InMemoryVectorIndex.js +25 -6
  284. package/dist/src/vector/InMemoryVectorIndex.js.map +1 -1
  285. package/dist/src/vector/QdrantVectorIndex.d.ts +35 -9
  286. package/dist/src/vector/QdrantVectorIndex.d.ts.map +1 -1
  287. package/dist/src/vector/QdrantVectorIndex.js +209 -90
  288. package/dist/src/vector/QdrantVectorIndex.js.map +1 -1
  289. package/dist/src/vector/qdrantFilter.d.ts +3 -1
  290. package/dist/src/vector/qdrantFilter.d.ts.map +1 -1
  291. package/dist/src/vector/qdrantFilter.js +2 -0
  292. package/dist/src/vector/qdrantFilter.js.map +1 -1
  293. package/dist/src/vector/types.d.ts +81 -0
  294. package/dist/src/vector/types.d.ts.map +1 -1
  295. package/dist/src/vector/types.js +2 -0
  296. package/dist/src/vector/types.js.map +1 -1
  297. package/dist/src/wiring.d.ts +6 -0
  298. package/dist/src/wiring.d.ts.map +1 -1
  299. package/dist/src/wiring.js +62 -3
  300. package/dist/src/wiring.js.map +1 -1
  301. package/dist/tools/fs_search.json +2 -2
  302. package/docs/drive-overview.md +2 -2
  303. package/instructions/brain-model.md +1 -1
  304. package/package.json +999 -10
  305. package/rules/brain-rules.md +1 -1
  306. package/skills/connect-business-data/SKILL.md +6 -4
  307. package/skills/create-package/SKILL.md +14 -12
  308. package/skills/create-package/references/config-and-credentials.md +3 -3
  309. package/skills/create-package/references/connectors-and-uri-policies.md +5 -3
  310. package/skills/create-package/references/manifest-and-discovery.md +4 -3
  311. package/skills/create-package/references/runtime-and-build.md +9 -9
  312. package/skills/create-package/references/skills-and-context.md +3 -3
  313. package/skills/create-package/references/surfaces-and-design.md +2 -1
  314. package/skills/create-package/references/team-and-workflows.md +2 -2
  315. package/skills/create-package/references/test-and-ship.md +15 -15
  316. package/skills/create-package/references/tools-and-schemas.md +1 -1
  317. package/skills/create-package/scripts/check-package.sh +3 -3
  318. package/skills/create-package/scripts/verify-loaded.sh +16 -16
  319. package/skills/manage-files/SKILL.md +2 -2
  320. package/skills/manage-sources/SKILL.md +16 -15
  321. package/skills/manage-sources/scripts/reembed.sh +9 -3
  322. package/skills/sync/SKILL.md +4 -4
  323. package/tools/fs_search.json +2 -2
  324. package/dist/app/chunks/bash-M45GHPBQ.js +0 -1
  325. package/dist/app/chunks/c-X3REOAWD.js +0 -1
  326. package/dist/app/chunks/cpp-VOWI743W.js +0 -1
  327. package/dist/app/chunks/css-2ZVPHE25.js +0 -1
  328. package/dist/app/chunks/graphql-7V2NP54C.js +0 -1
  329. package/dist/app/chunks/html-UF3LFLNA.js +0 -1
  330. package/dist/app/chunks/java-PNTAU4L3.js +0 -1
  331. package/dist/app/chunks/javascript-4JJTQGEL.js +0 -1
  332. package/dist/app/chunks/json-VLQ6D3JH.js +0 -1
  333. package/dist/app/chunks/jsx-KQKSLAAH.js +0 -1
  334. package/dist/app/chunks/lua-UFPYUJ2O.js +0 -1
  335. package/dist/app/chunks/r-QEZB45SR.js +0 -1
  336. package/dist/app/chunks/sql-DTZHNUZP.js +0 -1
  337. package/dist/app/chunks/tsx-WPR2WRZD.js +0 -1
  338. package/dist/app/chunks/typescript-LWO362OA.js +0 -1
  339. package/dist/app/chunks/xml-A5H72RTS.js +0 -1
  340. package/dist/app/chunks/yaml-MXHSIJCI.js +0 -1
  341. package/dist/src/services/purgePendingNodes.d.ts +0 -32
  342. package/dist/src/services/purgePendingNodes.d.ts.map +0 -1
  343. package/dist/src/services/purgePendingNodes.js +0 -61
  344. package/dist/src/services/purgePendingNodes.js.map +0 -1
  345. /package/dist/app/chunks/{chunk-737Y24HS.js → chunk-3JASFUPF.js} +0 -0
  346. /package/dist/app/chunks/{chunk-DKD2L57N.js → chunk-6EYLOQ4F.js} +0 -0
  347. /package/dist/app/chunks/{chunk-KYH5EHHY.js → chunk-7YRZ5LOQ.js} +0 -0
  348. /package/dist/app/chunks/{chunk-6TC3DVWV.js → chunk-C7LU4RID.js} +0 -0
  349. /package/dist/app/chunks/{chunk-TY33BMKR.js → chunk-CD52YDZP.js} +0 -0
  350. /package/dist/app/chunks/{chunk-OLEIKJ3X.js → chunk-DCJKTCJ5.js} +0 -0
  351. /package/dist/app/chunks/{chunk-QLBZ4JR2.js → chunk-EXIU2KBV.js} +0 -0
  352. /package/dist/app/chunks/{chunk-SFUNBBEA.js → chunk-FDP4LO4P.js} +0 -0
  353. /package/dist/app/chunks/{chunk-BGRVFATT.js → chunk-HNETUS7U.js} +0 -0
  354. /package/dist/app/chunks/{chunk-4QNMHAIR.js → chunk-LBFZJEDR.js} +0 -0
  355. /package/dist/app/chunks/{chunk-TRRUHDPN.js → chunk-ULRXL5VM.js} +0 -0
  356. /package/dist/app/chunks/{chunk-S6B4WWIF.js → chunk-XJK47SMJ.js} +0 -0
  357. /package/dist/app/chunks/{chunk-DZ5C5FKI.js → chunk-YYAAIAU2.js} +0 -0
  358. /package/dist/app/chunks/{clojure-OC6KPSJO.js → clojure-4QCN4GHG.js} +0 -0
  359. /package/dist/app/chunks/{core-KGE7TQJ3.js → core-ZHTX3P2Q.js} +0 -0
  360. /package/dist/app/chunks/{csharp-E7VIFITL.js → csharp-HQWR4N52.js} +0 -0
  361. /package/dist/app/chunks/{dark-plus-BOSCZXE4.js → dark-plus-GYPKKZES.js} +0 -0
  362. /package/dist/app/chunks/{dart-6Y3X27SZ.js → dart-FO4TTVO2.js} +0 -0
  363. /package/dist/app/chunks/{diff-TR2NPA64.js → diff-SHANV4YC.js} +0 -0
  364. /package/dist/app/chunks/{dist-T32U2VVR.js → dist-WSDF34DM.js} +0 -0
  365. /package/dist/app/chunks/{docker-N33HOW54.js → docker-VX55HTDS.js} +0 -0
  366. /package/dist/app/chunks/{go-6DGG5UTP.js → go-5UCPEC6S.js} +0 -0
  367. /package/dist/app/chunks/{haskell-KK36PMMM.js → haskell-25PJ3OSG.js} +0 -0
  368. /package/dist/app/chunks/{ini-VHVQ5TPB.js → ini-BJIVD5MK.js} +0 -0
  369. /package/dist/app/chunks/{kotlin-44WS3JHE.js → kotlin-MNR6XOEQ.js} +0 -0
  370. /package/dist/app/chunks/{less-5WZ3KLAK.js → less-KA5JURX6.js} +0 -0
  371. /package/dist/app/chunks/{light-plus-HGGBC43G.js → light-plus-QXH2UUWZ.js} +0 -0
  372. /package/dist/app/chunks/{make-X7RXMVW7.js → make-LPD5KOCO.js} +0 -0
  373. /package/dist/app/chunks/{markdown-46IKUAIB.js → markdown-LMWF6MQR.js} +0 -0
  374. /package/dist/app/chunks/{mdx-DGLHDAO7.js → mdx-WPMNN5BS.js} +0 -0
  375. /package/dist/app/chunks/{nix-Q6FYQZLX.js → nix-QGWLUUMZ.js} +0 -0
  376. /package/dist/app/chunks/{powershell-L4KJJ6DK.js → powershell-7GSBBEFF.js} +0 -0
  377. /package/dist/app/chunks/{prisma-IKS4LVH2.js → prisma-FPMPQISO.js} +0 -0
  378. /package/dist/app/chunks/{proto-AYCDOTJO.js → proto-7KDX5Z2U.js} +0 -0
  379. /package/dist/app/chunks/{python-KXMCSAFQ.js → python-CFG4FTQW.js} +0 -0
  380. /package/dist/app/chunks/{rust-J3BC3P6V.js → rust-X7A37WU3.js} +0 -0
  381. /package/dist/app/chunks/{scala-AYIIHBJK.js → scala-OYHJSUG2.js} +0 -0
  382. /package/dist/app/chunks/{swift-QPHHCQD3.js → swift-PE7VNYW5.js} +0 -0
  383. /package/dist/app/chunks/{toml-UV7JK7K7.js → toml-ETQRDILP.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryVectorIndex.js","sourceRoot":"","sources":["../../../src/vector/InMemoryVectorIndex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InMemoryVectorIndex.js","sourceRoot":"","sources":["../../../src/vector/InMemoryVectorIndex.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import type { QdrantClient, Schemas } from '@qdrant/js-client-rest';
2
2
  import type { Logger } from '@neuralis/package-system/data';
3
- import type { VectorCollectionMaintenance, VectorFacetHit, VectorFilter, VectorIndexPort, VectorPoint, VectorReadProjection, VectorSearchHit } from './types.js';
3
+ import type { VectorCollectionMaintenance, VectorFacetHit, VectorFilter, VectorBackend, PayloadDerivation, VectorPoint, VectorReadProjection, VectorSearchHit } from './types.js';
4
4
  /**
5
5
  * Split points into consecutive requests whose serialized size stays under
6
- * `maxBytes`. A single point larger than the bound travels alone (the server
7
- * then decides); order is preserved.
6
+ * `maxBytes`. An oversized single item is refused before any request is sent;
7
+ * order is preserved. The sender subtracts its complete envelope overhead.
8
8
  */
9
9
  export declare function splitByRequestBytes<T>(points: T[], maxBytes: number): T[][];
10
10
  /**
@@ -22,13 +22,30 @@ export type WirePoint = {
22
22
  export declare function fetchCauseCode(err: unknown): string | undefined;
23
23
  /** The retryable socket code of `err`, or `undefined` — an HTTP status, auth or size error never qualifies. */
24
24
  export declare function retryableSocketCode(err: unknown): string | undefined;
25
+ type SocketRetryPolicy = {
26
+ maxRetries: number;
27
+ baseDelayMs: number;
28
+ };
29
+ /**
30
+ * Repeat ONE idempotent request when its socket was reset (`retryableSocketCode`
31
+ * only — an HTTP status, auth or size error is thrown at once). Each repeat logs
32
+ * `<event>` with the attempt, cause code and delay; an abort ends the backoff
33
+ * and no further attempt starts.
34
+ */
35
+ export declare function retryOnSocketReset<T>(run: () => Promise<T>, opts: {
36
+ logger: Logger;
37
+ event: string;
38
+ meta: Record<string, unknown>;
39
+ signal?: AbortSignal;
40
+ policy?: SocketRetryPolicy;
41
+ onRetry?: () => void;
42
+ }): Promise<T>;
25
43
  /**
26
44
  * THE split-and-send path of every multi-point vector write: byte-bounded
27
- * requests, sent in order, each one repeated on a socket reset only. A repeat
28
- * re-sends the SAME request (same ids, `wait:true`), so it is idempotent; the
29
- * vectors are already in memory, nothing is re-embedded. Budget and base delay
30
- * are read per call (`vectorStoreWriteMaxRetries`, `vectorStoreWriteRetryDelayMs`,
31
- * ×4 per attempt); an abort ends the backoff and no further attempt starts.
45
+ * requests, sent in order, each one repeated on a socket reset only
46
+ * (`retryOnSocketReset`). A repeat re-sends the SAME request (same ids,
47
+ * `wait:true`), so it is idempotent; the vectors are already in memory,
48
+ * nothing is re-embedded.
32
49
  */
33
50
  export declare function sendSplitUpsert(client: Pick<QdrantClient, 'upsert'>, collection: string, wire: WirePoint[], opts: {
34
51
  logger: Logger;
@@ -58,7 +75,7 @@ export declare function forgetVectorCollectionState(): void;
58
75
  export declare const __ensurePayloadIndexesForTest: (client: QdrantClient, collection: string, logger: Logger) => Promise<void>;
59
76
  export declare class QdrantVectorIndex<TPayload extends {
60
77
  id: string;
61
- }> implements VectorIndexPort<TPayload> {
78
+ }> implements VectorBackend<TPayload> {
62
79
  #private;
63
80
  readonly maintenance: VectorCollectionMaintenance;
64
81
  constructor(params?: {
@@ -66,6 +83,14 @@ export declare class QdrantVectorIndex<TPayload extends {
66
83
  logger?: Logger;
67
84
  });
68
85
  ensureAgentCollection(agentId: string): Promise<void>;
86
+ writePayload(point: Pick<VectorPoint<TPayload>, 'id' | 'payload'>): Promise<void>;
87
+ writePayloads(points: Array<Pick<VectorPoint<TPayload>, 'id' | 'payload'>>, derivation: PayloadDerivation<TPayload>): Promise<void>;
88
+ /** `update_vectors` (dense only — BM25 stays) + a merging `set_payload`; never re-creates a deleted point. */
89
+ patchPoints(points: Array<{
90
+ id: string;
91
+ vector?: number[];
92
+ patch: Partial<TPayload>;
93
+ }>): Promise<void>;
69
94
  retainPayload(point: Pick<VectorPoint<TPayload>, 'id' | 'payload'>): Promise<void>;
70
95
  upsert(point: VectorPoint<TPayload>): Promise<void>;
71
96
  retrieve(id: string, projection?: VectorReadProjection): Promise<VectorPoint<TPayload> | null>;
@@ -109,4 +134,5 @@ export declare class QdrantVectorIndex<TPayload extends {
109
134
  truncated: boolean;
110
135
  }>;
111
136
  }
137
+ export {};
112
138
  //# sourceMappingURL=QdrantVectorIndex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QdrantVectorIndex.d.ts","sourceRoot":"","sources":["../../../src/vector/QdrantVectorIndex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QdrantVectorIndex.d.ts","sourceRoot":"","sources":["../../../src/vector/QdrantVectorIndex.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
+ import { VECTOR_WRITE_REQUEST_BYTES } from './types.js';
1
2
  import { resolveNeuralisHome } from '@neuralis/package-system/paths';
2
- import { noopLogger } from '@neuralis/package-system/data';
3
- import { getNeuralisEnv, resolveTargetEmbeddingShape, generationFor, getBrainConfigString, getBrainConfigNumber, } from '../config/env.js';
4
- import { forgetActiveLock, getActiveLock, mutateLock, peekActiveLock, buildLockRecord, sameVectorSpace, generationOf, } from '../embeddings/lock.js';
3
+ import { noopLogger, RecordNewerError } from '@neuralis/package-system/data';
4
+ import { getNeuralisEnv, resolveTargetEmbeddingShape, embeddingEnabled, generationFor, getBrainConfigString, getBrainConfigNumber, } from '../config/env.js';
5
+ import { forgetActiveLock, getActiveLock, mutateLock, peekActiveLock, buildLockRecord, buildMetadataLockRecord, sameVectorSpace, generationOf, EmbeddingLockInvalidError, } from '../embeddings/lock.js';
5
6
  import { waitEmbedRetry } from '../embeddings/retry.js';
6
7
  import { getQdrantClient } from './qdrantClient.js';
7
8
  import { toQdrantFilter } from './qdrantFilter.js';
@@ -46,6 +47,8 @@ const FILESYSTEM_PAYLOAD_INDEXES = [
46
47
  // Which model wrote the vector (`<modelId>@<dim>#<recipe>`), stamped only on
47
48
  // a VECTOR write; the status counts it. Filter-only.
48
49
  { field: 'embed_model', type: 'keyword', hnsw: false },
50
+ { field: 'embedding_status', type: 'keyword', hnsw: false },
51
+ { field: 'embedding_generation', type: 'integer', hnsw: false },
49
52
  ];
50
53
  /** Indexes no writer sets and no filter reads; the operator migration drops them. */
51
54
  const RETIRED_PAYLOAD_INDEXES = ['projectName', 'agentName'];
@@ -63,11 +66,11 @@ const TEXT_RANKING_FIELD = 'content';
63
66
  * chunk text), so a count bound cannot hold it — an append-shaped file's first
64
67
  * index put 840 chunks in one request. 8 MiB leaves 4x headroom.
65
68
  */
66
- const MAX_UPSERT_REQUEST_BYTES = 8 * 1024 * 1024;
69
+ const MAX_UPSERT_REQUEST_BYTES = VECTOR_WRITE_REQUEST_BYTES;
67
70
  /**
68
71
  * Split points into consecutive requests whose serialized size stays under
69
- * `maxBytes`. A single point larger than the bound travels alone (the server
70
- * then decides); order is preserved.
72
+ * `maxBytes`. An oversized single item is refused before any request is sent;
73
+ * order is preserved. The sender subtracts its complete envelope overhead.
71
74
  */
72
75
  export function splitByRequestBytes(points, maxBytes) {
73
76
  const requests = [];
@@ -75,6 +78,8 @@ export function splitByRequestBytes(points, maxBytes) {
75
78
  let currentBytes = 0;
76
79
  for (const point of points) {
77
80
  const bytes = Buffer.byteLength(JSON.stringify(point), 'utf8') + 1;
81
+ if (bytes > maxBytes)
82
+ throw new Error('VECTOR_REQUEST_TOO_LARGE');
78
83
  if (current.length > 0 && currentBytes + bytes > maxBytes) {
79
84
  requests.push(current);
80
85
  current = [];
@@ -88,7 +93,7 @@ export function splitByRequestBytes(points, maxBytes) {
88
93
  return requests;
89
94
  }
90
95
  /**
91
- * The socket failures a write may repeat. Qdrant closes an idle keep-alive
96
+ * The socket failures a request may repeat. Qdrant closes an idle keep-alive
92
97
  * connection after `service.http_keep_alive_timeout_sec` (5 s by default)
93
98
  * while the client's pool keeps it for 10 s (`@qdrant/js-client-rest` hardcodes
94
99
  * `keepAliveTimeout: 10_000` and exposes no option), so a request can be
@@ -114,46 +119,59 @@ export function retryableSocketCode(err) {
114
119
  const codes = [errorCode(causeOf(err)), errorCode(causeOf(causeOf(err)))];
115
120
  return codes.find((code) => code !== undefined && RETRYABLE_SOCKET_CODES.has(code));
116
121
  }
122
+ /** Read per call: `vectorStoreWriteMaxRetries` attempts, `vectorStoreWriteRetryDelayMs` ×4 per attempt. */
123
+ function socketRetryPolicy() {
124
+ return {
125
+ maxRetries: Math.max(0, Math.floor(getBrainConfigNumber('vectorStoreWriteMaxRetries', undefined, 2))),
126
+ baseDelayMs: Math.max(0, getBrainConfigNumber('vectorStoreWriteRetryDelayMs', undefined, 250)),
127
+ };
128
+ }
129
+ /**
130
+ * Repeat ONE idempotent request when its socket was reset (`retryableSocketCode`
131
+ * only — an HTTP status, auth or size error is thrown at once). Each repeat logs
132
+ * `<event>` with the attempt, cause code and delay; an abort ends the backoff
133
+ * and no further attempt starts.
134
+ */
135
+ export async function retryOnSocketReset(run, opts) {
136
+ const { maxRetries, baseDelayMs } = opts.policy ?? socketRetryPolicy();
137
+ for (let attempt = 0;; attempt += 1) {
138
+ try {
139
+ return await run();
140
+ }
141
+ catch (err) {
142
+ const causeCode = retryableSocketCode(err);
143
+ if (!causeCode || attempt >= maxRetries || opts.signal?.aborted)
144
+ throw err;
145
+ const delayMs = baseDelayMs * 4 ** attempt;
146
+ opts.logger.warn(opts.event, { ...opts.meta, attempt: attempt + 1, causeCode, delayMs });
147
+ await waitEmbedRetry(delayMs, opts.signal, 'VECTOR_WRITE_ABORTED');
148
+ opts.onRetry?.();
149
+ }
150
+ }
151
+ }
117
152
  /**
118
153
  * THE split-and-send path of every multi-point vector write: byte-bounded
119
- * requests, sent in order, each one repeated on a socket reset only. A repeat
120
- * re-sends the SAME request (same ids, `wait:true`), so it is idempotent; the
121
- * vectors are already in memory, nothing is re-embedded. Budget and base delay
122
- * are read per call (`vectorStoreWriteMaxRetries`, `vectorStoreWriteRetryDelayMs`,
123
- * ×4 per attempt); an abort ends the backoff and no further attempt starts.
154
+ * requests, sent in order, each one repeated on a socket reset only
155
+ * (`retryOnSocketReset`). A repeat re-sends the SAME request (same ids,
156
+ * `wait:true`), so it is idempotent; the vectors are already in memory,
157
+ * nothing is re-embedded.
124
158
  */
125
159
  export async function sendSplitUpsert(client, collection, wire, opts) {
126
- const requests = splitByRequestBytes(wire, MAX_UPSERT_REQUEST_BYTES);
127
- const maxRetries = Math.max(0, Math.floor(getBrainConfigNumber('vectorStoreWriteMaxRetries', undefined, 2)));
128
- const baseDelayMs = Math.max(0, getBrainConfigNumber('vectorStoreWriteRetryDelayMs', undefined, 250));
160
+ const requests = splitByRequestBytes(wire, MAX_UPSERT_REQUEST_BYTES - Buffer.byteLength(JSON.stringify({ points: [], wait: true }), 'utf8'));
161
+ const policy = socketRetryPolicy();
129
162
  let retries = 0;
130
163
  // Sequential: every request is one bounded body, and a file's chunks land in
131
164
  // order — a failure leaves the parent unwritten (chunk-before-parent), so the
132
165
  // next pass re-converges on the deterministic ids.
133
166
  for (const [index, points] of requests.entries()) {
134
- for (let attempt = 0;; attempt += 1) {
135
- try {
136
- await client.upsert(collection, { points, wait: true });
137
- break;
138
- }
139
- catch (err) {
140
- const causeCode = retryableSocketCode(err);
141
- if (!causeCode || attempt >= maxRetries || opts.signal?.aborted)
142
- throw err;
143
- const delayMs = baseDelayMs * 4 ** attempt;
144
- opts.logger.warn('vector.upsert.retry', {
145
- collection,
146
- request: index + 1,
147
- requestCount: requests.length,
148
- pointCount: points.length,
149
- attempt: attempt + 1,
150
- causeCode,
151
- delayMs,
152
- });
153
- await waitEmbedRetry(delayMs, opts.signal, 'VECTOR_WRITE_ABORTED');
154
- retries += 1;
155
- }
156
- }
167
+ await retryOnSocketReset(() => client.upsert(collection, { points, wait: true }), {
168
+ logger: opts.logger,
169
+ event: 'vector.upsert.retry',
170
+ meta: { collection, request: index + 1, requestCount: requests.length, pointCount: points.length },
171
+ policy,
172
+ onRetry: () => { retries += 1; },
173
+ ...(opts.signal ? { signal: opts.signal } : {}),
174
+ });
157
175
  }
158
176
  return { requestCount: requests.length, retries };
159
177
  }
@@ -294,25 +312,22 @@ function readCollectionVectorSize(payload) {
294
312
  const maybeSize = vectors.size;
295
313
  if (typeof maybeSize === 'number' && Number.isFinite(maybeSize))
296
314
  return maybeSize;
297
- for (const value of Object.values(vectors)) {
298
- if (value && typeof value === 'object') {
299
- const namedSize = value.size;
300
- if (typeof namedSize === 'number' && Number.isFinite(namedSize))
301
- return namedSize;
302
- }
303
- }
315
+ const named = vectors;
316
+ if (Object.keys(named).length)
317
+ throw Object.assign(new Error('QDRANT_COLLECTION_SCHEMA_UNSUPPORTED'), { code: 'vector_collection_schema_unsupported' });
304
318
  }
305
319
  return null;
306
320
  }
307
321
  function assertCollectionDimensionMatches(params) {
308
- if (params.qdrantDimension === null || params.qdrantDimension === params.expectedDimension)
322
+ if (params.qdrantDimension === params.expectedDimension)
309
323
  return;
310
324
  const lockDetails = params.lockDimension
311
325
  ? ` lock=${params.lockDimension} (${params.lockModelId ?? 'unknown'})`
312
326
  : ' no embedding-lock.json present';
313
327
  throw new Error(`QDRANT_COLLECTION_DIMENSION_MISMATCH: collection '${params.collection}' exists with dim=${params.qdrantDimension}, ` +
314
328
  `but platform expects dim=${params.expectedDimension} (${params.expectedModelId});${lockDetails}. ` +
315
- `Run 'pnpm reset:vector' to drop the collection and rebuild it with the current embedding config.`);
329
+ `Restore the matching stored generation/schema before serving dense queries; preserve payload and recovery data. ` +
330
+ `A full vector-store reset is separately destructive and is not required to change the configured target model.`);
316
331
  }
317
332
  // ── Optional human-readable, colour-coded vector-op console log ──────────────
318
333
  // OFF by default; set BRAIN_VECTOR_LOG_CONSOLE to tee one compact, coloured
@@ -438,57 +453,46 @@ async function ensureCollection(client, collection, logger) {
438
453
  // a reason to refuse the collection the index already runs on.
439
454
  const lock = await getActiveLock(appRoot);
440
455
  let target = null;
441
- try {
442
- target = resolveTargetEmbeddingShape();
456
+ if (embeddingEnabled() && lock?.mode === 'dense') {
457
+ try {
458
+ target = resolveTargetEmbeddingShape();
459
+ }
460
+ catch (err) {
461
+ if (!lock)
462
+ throw err;
463
+ logger.warn('vector.target_model_invalid', { error: err instanceof Error ? err.message : String(err) });
464
+ }
443
465
  }
444
- catch (err) {
445
- // An unknown target only matters when there is no lock to build from.
446
- if (!lock)
447
- throw err;
448
- logger.warn('vector.target_model_invalid', { error: err instanceof Error ? err.message : String(err) });
449
- }
450
- const expected = lock
451
- ? { modelId: lock.modelId, dimension: lock.dimension }
452
- : { modelId: target.info.id, dimension: target.dimension };
453
- if (lock && target && !sameVectorSpace(generationOf(lock), generationFor(target.info, target.dimension))) {
454
- logger.warn('vector.model_switch_pending', {
455
- active: `${lock.modelId}@${lock.dimension}#${lock.embedRecipe}`,
456
- target: `${target.info.id}@${target.dimension}`,
457
- hint: 'Nothing switches by itself: estimate and start the rebuild from the Vector section (health/collection rebuild-generation).',
458
- });
466
+ // No lock yet + embedding on ⇒ the CONFIGURED model is the first dense
467
+ // generation — for a new collection and for one that pre-existed without a
468
+ // lock (its label is inferred: `backfilledAt`), shape-checked below. Metadata
469
+ // serving is only the off / fresh-skip state.
470
+ let dense = lock?.mode === 'dense' ? lock : null;
471
+ if (!lock && embeddingEnabled()) {
472
+ const initial = resolveTargetEmbeddingShape();
473
+ dense = generationFor(initial.info, initial.dimension);
474
+ }
475
+ if (lock?.mode === 'dense' && target && !sameVectorSpace(generationOf(lock), generationFor(target.info, target.dimension))) {
476
+ logger.warn('vector.model_switch_pending', { active: `${lock.modelId}@${lock.dimension}#${lock.embedRecipe}`, target: `${target.info.id}@${target.dimension}` });
459
477
  }
460
478
  let existed = true;
461
479
  try {
462
- const existingCollection = await client.getCollection(collection);
463
- collectionFeatures.set(collection, readCollectionFeatures(existingCollection));
464
- assertCollectionDimensionMatches({
465
- collection,
466
- qdrantDimension: readCollectionVectorSize(existingCollection),
467
- expectedDimension: expected.dimension,
468
- expectedModelId: expected.modelId,
469
- lockDimension: lock?.dimension,
470
- lockModelId: lock?.modelId,
471
- });
480
+ const existing = await client.getCollection(collection);
481
+ collectionFeatures.set(collection, readCollectionFeatures(existing));
482
+ const actual = readCollectionVectorSize(existing);
483
+ if (dense)
484
+ assertCollectionDimensionMatches({ collection, qdrantDimension: actual, expectedDimension: dense.dimension, expectedModelId: dense.modelId });
485
+ // Metadata mode certifies no active vector space; existing unknown dense is preserved.
472
486
  }
473
487
  catch (err) {
474
- if (err instanceof Error && err.message.startsWith('QDRANT_COLLECTION_DIMENSION_MISMATCH')) {
488
+ if (!isCollectionMissingError(err))
475
489
  throw err;
476
- }
477
490
  existed = false;
478
- await createFilesystemCollection(client, collection, expected.dimension);
479
- logger.info('vector.collection.created', {
480
- collection,
481
- dimension: expected.dimension,
482
- distance: 'Cosine',
483
- textRanking: collectionFeatures.get(collection)?.textRanking ?? false,
484
- serverVersion: knownServerVersion,
485
- });
491
+ await createFilesystemCollection(client, collection, dense?.dimension ?? null);
492
+ logger.info('vector.collection.created', { collection, dimension: dense?.dimension ?? null, textRanking: collectionFeatures.get(collection)?.textRanking ?? false, serverVersion: knownServerVersion });
486
493
  }
487
- // First creation writes the lock. A collection that pre-existed WITHOUT a
488
- // lock gets one too, but its model label is the configured one — inferred,
489
- // not known — so the record says so (`backfilledAt`).
490
494
  if (!lock) {
491
- await mutateLock(appRoot, (current) => current ?? buildLockRecord(generationFor(target.info, target.dimension), collection, { backfilled: existed }));
495
+ await mutateLock(appRoot, current => current ?? (dense ? buildLockRecord(dense, collection, { backfilled: existed }) : buildMetadataLockRecord(collection)));
492
496
  }
493
497
  await ensurePayloadIndexes(client, collection, logger);
494
498
  initializedCollections.add(collection);
@@ -502,7 +506,7 @@ async function ensureCollection(client, collection, logger) {
502
506
  async function createFilesystemCollection(client, collection, dimension) {
503
507
  const textRanking = serverRunsBm25(knownServerVersion);
504
508
  await client.createCollection(collection, {
505
- vectors: { size: dimension, distance: 'Cosine' },
509
+ vectors: dimension === null ? {} : { size: dimension, distance: 'Cosine' },
506
510
  hnsw_config: {
507
511
  // m: 0 disables the global HNSW graph (we never search without tenant filters).
508
512
  // payload_m: 16 is the degree of the per-VALUE subgraphs the optimizer
@@ -755,6 +759,9 @@ export class QdrantVectorIndex {
755
759
  await ensureCollection(this.#client, collection, this.#logger);
756
760
  }
757
761
  catch (err) {
762
+ if (err instanceof EmbeddingLockInvalidError || err instanceof RecordNewerError
763
+ || (err && typeof err === 'object' && 'code' in err && err.code === 'vector_collection_schema_unsupported'))
764
+ throw err;
758
765
  // Non-fatal: if Qdrant is unreachable the subsequent operations will
759
766
  // fail individually with their own error messages. Blocking every
760
767
  // usecase at this point is worse than letting them try and degrade.
@@ -767,6 +774,43 @@ export class QdrantVectorIndex {
767
774
  }
768
775
  }
769
776
  }
777
+ async writePayload(point) {
778
+ const payload = point.payload;
779
+ const collection = collectionForAgent(String(payload.agentId ?? ''));
780
+ await this.#withCollectionRecovery(collection, async (target) => {
781
+ const { textRanking } = await this.#features(target);
782
+ await timed(this.#logger, 'writePayload', { collection: target, id: point.id }, () => writeNativePayload(this.#client, target, { id: point.id, payload }, textRanking));
783
+ });
784
+ }
785
+ async writePayloads(points, derivation) {
786
+ if (!points.length)
787
+ return;
788
+ const collection = currentCollection();
789
+ await this.#withCollectionRecovery(collection, async (target) => {
790
+ const { textRanking } = await this.#features(target);
791
+ await timed(this.#logger, 'writePayloadBatch', { collection: target, pointCount: points.length }, () => writeNativePayloads(this.#client, target, points, textRanking, derivation));
792
+ });
793
+ }
794
+ /** `update_vectors` (dense only — BM25 stays) + a merging `set_payload`; never re-creates a deleted point. */
795
+ async patchPoints(points) {
796
+ if (!points.length)
797
+ return;
798
+ await this.#withCollectionRecovery(currentCollection(), async (target) => {
799
+ const { textRanking } = await this.#features(target);
800
+ const operations = [];
801
+ for (const point of points) {
802
+ if (point.vector)
803
+ operations.push({ update_vectors: { points: [{ id: point.id, vector: textRanking ? { '': point.vector } : point.vector }] } });
804
+ operations.push({ set_payload: { points: [point.id], payload: point.patch } });
805
+ }
806
+ const overhead = Buffer.byteLength(JSON.stringify({ operations: [], wait: true }), 'utf8');
807
+ await timed(this.#logger, 'patchPoints', { collection: target, pointCount: points.length }, async () => {
808
+ for (const request of splitByRequestBytes(operations, MAX_UPSERT_REQUEST_BYTES - overhead)) {
809
+ await this.#client.batchUpdate(target, { wait: true, operations: request });
810
+ }
811
+ });
812
+ });
813
+ }
770
814
  async retainPayload(point) {
771
815
  const collection = collectionForAgent(String(point.payload.agentId ?? ''));
772
816
  await this.#withCollectionRecovery(collection, async (target) => {
@@ -810,6 +854,8 @@ export class QdrantVectorIndex {
810
854
  * write, never a loop.
811
855
  */
812
856
  async #withCollectionRecovery(collection, write) {
857
+ await getActiveLock(resolveNeuralisHome().appRoot);
858
+ collection = currentCollection();
813
859
  try {
814
860
  await write(collection);
815
861
  }
@@ -896,7 +942,9 @@ export class QdrantVectorIndex {
896
942
  filterKeys: filterKeys(params.filter),
897
943
  hasCursor: Boolean(params.cursor),
898
944
  }, async () => {
899
- const res = await this.#client.scroll(collection, {
945
+ // A read is idempotent: a scroll that meets a reset socket (the idle
946
+ // keep-alive window above) is repeated like a write.
947
+ const res = await retryOnSocketReset(() => this.#client.scroll(collection, {
900
948
  limit: params.limit,
901
949
  filter: toQdrantFilter(params.filter),
902
950
  // Projected when the caller asked for specific fields — a folder-colouring
@@ -904,6 +952,10 @@ export class QdrantVectorIndex {
904
952
  with_payload: params.payloadFields?.length ? params.payloadFields : true,
905
953
  with_vector: false,
906
954
  offset: params.cursor ? params.cursor : undefined,
955
+ }), {
956
+ logger: this.#logger,
957
+ event: 'vector.scroll.retry',
958
+ meta: { collection, filterKeys: filterKeys(params.filter) },
907
959
  });
908
960
  const pointsRaw = res?.points ?? res?.result?.points ?? [];
909
961
  const nextOffset = res?.next_page_offset ?? res?.result?.next_page_offset ?? null;
@@ -1190,6 +1242,11 @@ class QdrantGenerationCollections {
1190
1242
  await ensurePayloadIndexes(this.#client, collection, this.#logger);
1191
1243
  this.#logger.info('vector.generation.created', { collection, dimension });
1192
1244
  }
1245
+ async validate(collection, dimension) {
1246
+ const info = await this.#client.getCollection(collection);
1247
+ if (readCollectionVectorSize(info) !== dimension)
1248
+ throw new Error('SHADOW_COLLECTION_DIMENSION_MISMATCH');
1249
+ }
1193
1250
  async drop(collection) {
1194
1251
  await this.#client.deleteCollection(collection);
1195
1252
  initializedCollections.delete(collection);
@@ -1211,6 +1268,10 @@ class QdrantGenerationCollections {
1211
1268
  }));
1212
1269
  await timed(this.#logger, 'generation.upsert', { collection, pointCount: points.length }, () => sendSplitUpsert(this.#client, collection, wire, { logger: this.#logger, ...(opts?.signal ? { signal: opts.signal } : {}) }), (sent) => sent);
1213
1270
  }
1271
+ async writePayload(collection, point) {
1272
+ const textRanking = collectionFeatures.get(collection)?.textRanking ?? false;
1273
+ await timed(this.#logger, 'generation.writePayload', { collection, id: point.id }, () => writeNativePayload(this.#client, collection, point, textRanking));
1274
+ }
1214
1275
  async retainPayload(collection, point) {
1215
1276
  await timed(this.#logger, 'generation.retainPayload', { collection, id: point.id }, async () => {
1216
1277
  await this.#client.upsert(collection, { wait: true, points: [{ id: point.id, vector: {}, payload: { ...point.payload, id: point.id } }] });
@@ -1379,6 +1440,9 @@ class QdrantCollectionMaintenance {
1379
1440
  */
1380
1441
  async applyQuantization(mode) {
1381
1442
  const collection = currentCollection();
1443
+ if (readCollectionVectorSize(await this.#client.getCollection(collection)) === null) {
1444
+ return { applied: { applicable: false, reason: 'dense_schema_missing' } };
1445
+ }
1382
1446
  const applied = {
1383
1447
  vectors: { '': { on_disk: mode !== 'off' } },
1384
1448
  quantization_config: quantizationConfig(mode),
@@ -1389,6 +1453,24 @@ class QdrantCollectionMaintenance {
1389
1453
  this.#logger.info('vector.collection.quantization', { collection, mode });
1390
1454
  return { applied };
1391
1455
  }
1456
+ async clearDense(params) {
1457
+ const collection = currentCollection();
1458
+ if (!params.cursor && readCollectionVectorSize(await this.#client.getCollection(collection)) === null)
1459
+ return { processed: 0, applicable: false };
1460
+ const page = await this.#client.scroll(collection, {
1461
+ limit: Math.max(1, Math.floor(params.limit)), with_payload: false, with_vector: false,
1462
+ ...(params.cursor ? { offset: params.cursor } : {}),
1463
+ });
1464
+ const ids = page.points.map(point => point.id);
1465
+ if (ids.length) {
1466
+ await this.#client.batchUpdate(collection, { wait: true, operations: [
1467
+ { set_payload: { points: ids, payload: { embedding_status: 'missing' } } },
1468
+ { delete_vectors: { points: ids, vector: [''] } },
1469
+ ] });
1470
+ }
1471
+ const next = page.next_page_offset;
1472
+ return { processed: ids.length, applicable: true, ...(next === undefined || next === null ? {} : { nextCursor: String(next) }) };
1473
+ }
1392
1474
  /** The BM25 sparse vector, added to an OLDER collection (server >= 1.18; no re-create); a new one is created with it. */
1393
1475
  async enableTextRanking() {
1394
1476
  const collection = currentCollection();
@@ -1445,4 +1527,41 @@ class QdrantCollectionMaintenance {
1445
1527
  return features;
1446
1528
  }
1447
1529
  }
1530
+ /** Native payload replacement never transfers dense floats through this process. */
1531
+ async function writeNativePayload(client, collection, point, textRanking) {
1532
+ await writeNativePayloads(client, collection, [point], textRanking, KEEP_PAYLOAD);
1533
+ }
1534
+ /** The identity derivation: the caller's payload is written as given. */
1535
+ const KEEP_PAYLOAD = { readFields: [], derive: point => point.payload };
1536
+ /** A batch is ordered durable requests, never a transaction or rollback guarantee. */
1537
+ async function writeNativePayloads(client, collection, points, textRanking, derivation) {
1538
+ const hits = await client.retrieve(collection, { ids: points.map(point => point.id), with_payload: [TEXT_RANKING_FIELD, 'sparse_status', ...derivation.readFields], with_vector: false });
1539
+ const existing = new Map(hits.map(hit => [String(hit.id), hit]));
1540
+ const operations = [];
1541
+ for (const point of points) {
1542
+ const current = existing.get(point.id);
1543
+ const stored = current ? Object.fromEntries(derivation.readFields.filter(field => current.payload && field in current.payload).map(field => [field, current.payload[field]])) : undefined;
1544
+ const payload = { ...derivation.derive(point, stored), id: point.id };
1545
+ const text = textRankingText(payload);
1546
+ const sparseChanged = textRanking && (!current || current.payload?.[TEXT_RANKING_FIELD] !== payload[TEXT_RANKING_FIELD] || current.payload?.sparse_status === 'missing');
1547
+ const storedPayload = sparseChanged ? { ...payload, sparse_status: 'missing' } : payload;
1548
+ if (sparseChanged && current)
1549
+ operations.push({ delete_vectors: { points: [point.id], vector: [TEXT_RANKING_VECTOR] } });
1550
+ if (current)
1551
+ operations.push({ overwrite_payload: { points: [point.id], payload: storedPayload } });
1552
+ else
1553
+ operations.push({ upsert: { points: [{ id: point.id, vector: {}, payload: storedPayload }] } });
1554
+ if (sparseChanged && text) {
1555
+ operations.push({ update_vectors: { points: [{ id: point.id, vector: { [TEXT_RANKING_VECTOR]: { text, model: TEXT_RANKING_MODEL } } }] } });
1556
+ operations.push({ set_payload: { points: [point.id], payload: { sparse_status: 'current' } } });
1557
+ }
1558
+ }
1559
+ // Validate EVERY operation before sending the first. A runtime404 leaves a
1560
+ // durable prefix; retries re-read payload state and reconcile, never recreate
1561
+ // a point from a stale overwrite request. Only known-new points use upsert.
1562
+ const overhead = Buffer.byteLength(JSON.stringify({ operations: [], wait: true }), 'utf8');
1563
+ const requests = splitByRequestBytes(operations, MAX_UPSERT_REQUEST_BYTES - overhead);
1564
+ for (const operations of requests)
1565
+ await client.batchUpdate(collection, { wait: true, operations });
1566
+ }
1448
1567
  //# sourceMappingURL=QdrantVectorIndex.js.map