@legioncodeinc/nectar 0.0.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 (467) hide show
  1. package/LICENSE.md +662 -0
  2. package/README.md +307 -0
  3. package/dist/api/daemon-api-wiring.d.ts +72 -0
  4. package/dist/api/daemon-api-wiring.d.ts.map +1 -0
  5. package/dist/api/daemon-api-wiring.js +150 -0
  6. package/dist/api/daemon-api-wiring.js.map +1 -0
  7. package/dist/api/hive-graph-api.d.ts +136 -0
  8. package/dist/api/hive-graph-api.d.ts.map +1 -0
  9. package/dist/api/hive-graph-api.js +234 -0
  10. package/dist/api/hive-graph-api.js.map +1 -0
  11. package/dist/api/loopback-client.d.ts +27 -0
  12. package/dist/api/loopback-client.d.ts.map +1 -0
  13. package/dist/api/loopback-client.js +87 -0
  14. package/dist/api/loopback-client.js.map +1 -0
  15. package/dist/api/router.d.ts +172 -0
  16. package/dist/api/router.d.ts.map +1 -0
  17. package/dist/api/router.js +212 -0
  18. package/dist/api/router.js.map +1 -0
  19. package/dist/api/status-query.d.ts +49 -0
  20. package/dist/api/status-query.d.ts.map +1 -0
  21. package/dist/api/status-query.js +103 -0
  22. package/dist/api/status-query.js.map +1 -0
  23. package/dist/brood-guard.d.ts +24 -0
  24. package/dist/brood-guard.d.ts.map +1 -0
  25. package/dist/brood-guard.js +19 -0
  26. package/dist/brood-guard.js.map +1 -0
  27. package/dist/brood-prereqs.d.ts +62 -0
  28. package/dist/brood-prereqs.d.ts.map +1 -0
  29. package/dist/brood-prereqs.js +87 -0
  30. package/dist/brood-prereqs.js.map +1 -0
  31. package/dist/brooding/bucketing.d.ts +68 -0
  32. package/dist/brooding/bucketing.d.ts.map +1 -0
  33. package/dist/brooding/bucketing.js +122 -0
  34. package/dist/brooding/bucketing.js.map +1 -0
  35. package/dist/brooding/cli.d.ts +78 -0
  36. package/dist/brooding/cli.d.ts.map +1 -0
  37. package/dist/brooding/cli.js +140 -0
  38. package/dist/brooding/cli.js.map +1 -0
  39. package/dist/brooding/constants.d.ts +75 -0
  40. package/dist/brooding/constants.d.ts.map +1 -0
  41. package/dist/brooding/constants.js +91 -0
  42. package/dist/brooding/constants.js.map +1 -0
  43. package/dist/brooding/cost.d.ts +110 -0
  44. package/dist/brooding/cost.d.ts.map +1 -0
  45. package/dist/brooding/cost.js +96 -0
  46. package/dist/brooding/cost.js.map +1 -0
  47. package/dist/brooding/describe.d.ts +152 -0
  48. package/dist/brooding/describe.d.ts.map +1 -0
  49. package/dist/brooding/describe.js +281 -0
  50. package/dist/brooding/describe.js.map +1 -0
  51. package/dist/brooding/discovery.d.ts +116 -0
  52. package/dist/brooding/discovery.d.ts.map +1 -0
  53. package/dist/brooding/discovery.js +179 -0
  54. package/dist/brooding/discovery.js.map +1 -0
  55. package/dist/brooding/index.d.ts +23 -0
  56. package/dist/brooding/index.d.ts.map +1 -0
  57. package/dist/brooding/index.js +33 -0
  58. package/dist/brooding/index.js.map +1 -0
  59. package/dist/brooding/pipeline-async.d.ts +97 -0
  60. package/dist/brooding/pipeline-async.d.ts.map +1 -0
  61. package/dist/brooding/pipeline-async.js +364 -0
  62. package/dist/brooding/pipeline-async.js.map +1 -0
  63. package/dist/brooding/pipeline.d.ts +198 -0
  64. package/dist/brooding/pipeline.d.ts.map +1 -0
  65. package/dist/brooding/pipeline.js +454 -0
  66. package/dist/brooding/pipeline.js.map +1 -0
  67. package/dist/brooding/precheck.d.ts +52 -0
  68. package/dist/brooding/precheck.d.ts.map +1 -0
  69. package/dist/brooding/precheck.js +143 -0
  70. package/dist/brooding/precheck.js.map +1 -0
  71. package/dist/brooding/resumability.d.ts +57 -0
  72. package/dist/brooding/resumability.d.ts.map +1 -0
  73. package/dist/brooding/resumability.js +46 -0
  74. package/dist/brooding/resumability.js.map +1 -0
  75. package/dist/cli.d.ts +139 -0
  76. package/dist/cli.d.ts.map +1 -0
  77. package/dist/cli.js +912 -0
  78. package/dist/cli.js.map +1 -0
  79. package/dist/config-file.d.ts +52 -0
  80. package/dist/config-file.d.ts.map +1 -0
  81. package/dist/config-file.js +130 -0
  82. package/dist/config-file.js.map +1 -0
  83. package/dist/config.d.ts +49 -0
  84. package/dist/config.d.ts.map +1 -0
  85. package/dist/config.js +98 -0
  86. package/dist/config.js.map +1 -0
  87. package/dist/daemon.d.ts +265 -0
  88. package/dist/daemon.d.ts.map +1 -0
  89. package/dist/daemon.js +664 -0
  90. package/dist/daemon.js.map +1 -0
  91. package/dist/doctor-registry.d.ts +134 -0
  92. package/dist/doctor-registry.d.ts.map +1 -0
  93. package/dist/doctor-registry.js +173 -0
  94. package/dist/doctor-registry.js.map +1 -0
  95. package/dist/embeddings/cohere-portkey.d.ts +67 -0
  96. package/dist/embeddings/cohere-portkey.d.ts.map +1 -0
  97. package/dist/embeddings/cohere-portkey.js +171 -0
  98. package/dist/embeddings/cohere-portkey.js.map +1 -0
  99. package/dist/embeddings/config.d.ts +74 -0
  100. package/dist/embeddings/config.d.ts.map +1 -0
  101. package/dist/embeddings/config.js +131 -0
  102. package/dist/embeddings/config.js.map +1 -0
  103. package/dist/embeddings/guard.d.ts +34 -0
  104. package/dist/embeddings/guard.d.ts.map +1 -0
  105. package/dist/embeddings/guard.js +67 -0
  106. package/dist/embeddings/guard.js.map +1 -0
  107. package/dist/embeddings/hosted-portkey.d.ts +73 -0
  108. package/dist/embeddings/hosted-portkey.d.ts.map +1 -0
  109. package/dist/embeddings/hosted-portkey.js +179 -0
  110. package/dist/embeddings/hosted-portkey.js.map +1 -0
  111. package/dist/embeddings/http.d.ts +33 -0
  112. package/dist/embeddings/http.d.ts.map +1 -0
  113. package/dist/embeddings/http.js +19 -0
  114. package/dist/embeddings/http.js.map +1 -0
  115. package/dist/embeddings/index.d.ts +17 -0
  116. package/dist/embeddings/index.d.ts.map +1 -0
  117. package/dist/embeddings/index.js +17 -0
  118. package/dist/embeddings/index.js.map +1 -0
  119. package/dist/embeddings/local-nomic.d.ts +78 -0
  120. package/dist/embeddings/local-nomic.d.ts.map +1 -0
  121. package/dist/embeddings/local-nomic.js +126 -0
  122. package/dist/embeddings/local-nomic.js.map +1 -0
  123. package/dist/embeddings/provider.d.ts +79 -0
  124. package/dist/embeddings/provider.d.ts.map +1 -0
  125. package/dist/embeddings/provider.js +50 -0
  126. package/dist/embeddings/provider.js.map +1 -0
  127. package/dist/enricher/config.d.ts +43 -0
  128. package/dist/enricher/config.d.ts.map +1 -0
  129. package/dist/enricher/config.js +34 -0
  130. package/dist/enricher/config.js.map +1 -0
  131. package/dist/enricher/content-cache.d.ts +29 -0
  132. package/dist/enricher/content-cache.d.ts.map +1 -0
  133. package/dist/enricher/content-cache.js +24 -0
  134. package/dist/enricher/content-cache.js.map +1 -0
  135. package/dist/enricher/cycle.d.ts +71 -0
  136. package/dist/enricher/cycle.d.ts.map +1 -0
  137. package/dist/enricher/cycle.js +319 -0
  138. package/dist/enricher/cycle.js.map +1 -0
  139. package/dist/enricher/describe.d.ts +61 -0
  140. package/dist/enricher/describe.d.ts.map +1 -0
  141. package/dist/enricher/describe.js +175 -0
  142. package/dist/enricher/describe.js.map +1 -0
  143. package/dist/enricher/failure.d.ts +25 -0
  144. package/dist/enricher/failure.d.ts.map +1 -0
  145. package/dist/enricher/failure.js +46 -0
  146. package/dist/enricher/failure.js.map +1 -0
  147. package/dist/enricher/index.d.ts +22 -0
  148. package/dist/enricher/index.d.ts.map +1 -0
  149. package/dist/enricher/index.js +22 -0
  150. package/dist/enricher/index.js.map +1 -0
  151. package/dist/enricher/jaccard.d.ts +11 -0
  152. package/dist/enricher/jaccard.d.ts.map +1 -0
  153. package/dist/enricher/jaccard.js +29 -0
  154. package/dist/enricher/jaccard.js.map +1 -0
  155. package/dist/enricher/loop.d.ts +22 -0
  156. package/dist/enricher/loop.d.ts.map +1 -0
  157. package/dist/enricher/loop.js +34 -0
  158. package/dist/enricher/loop.js.map +1 -0
  159. package/dist/enricher/meaningful-change.d.ts +28 -0
  160. package/dist/enricher/meaningful-change.d.ts.map +1 -0
  161. package/dist/enricher/meaningful-change.js +41 -0
  162. package/dist/enricher/meaningful-change.js.map +1 -0
  163. package/dist/enricher/observability.d.ts +22 -0
  164. package/dist/enricher/observability.d.ts.map +1 -0
  165. package/dist/enricher/observability.js +55 -0
  166. package/dist/enricher/observability.js.map +1 -0
  167. package/dist/enricher/pending-query.d.ts +35 -0
  168. package/dist/enricher/pending-query.d.ts.map +1 -0
  169. package/dist/enricher/pending-query.js +54 -0
  170. package/dist/enricher/pending-query.js.map +1 -0
  171. package/dist/enricher/sql-update.d.ts +7 -0
  172. package/dist/enricher/sql-update.d.ts.map +1 -0
  173. package/dist/enricher/sql-update.js +22 -0
  174. package/dist/enricher/sql-update.js.map +1 -0
  175. package/dist/enricher/store-adapter.d.ts +98 -0
  176. package/dist/enricher/store-adapter.d.ts.map +1 -0
  177. package/dist/enricher/store-adapter.js +129 -0
  178. package/dist/enricher/store-adapter.js.map +1 -0
  179. package/dist/enricher/store.d.ts +58 -0
  180. package/dist/enricher/store.d.ts.map +1 -0
  181. package/dist/enricher/store.js +126 -0
  182. package/dist/enricher/store.js.map +1 -0
  183. package/dist/enricher/tokenize.d.ts +10 -0
  184. package/dist/enricher/tokenize.d.ts.map +1 -0
  185. package/dist/enricher/tokenize.js +28 -0
  186. package/dist/enricher/tokenize.js.map +1 -0
  187. package/dist/errors.d.ts +41 -0
  188. package/dist/errors.d.ts.map +1 -0
  189. package/dist/errors.js +56 -0
  190. package/dist/errors.js.map +1 -0
  191. package/dist/health.d.ts +147 -0
  192. package/dist/health.d.ts.map +1 -0
  193. package/dist/health.js +168 -0
  194. package/dist/health.js.map +1 -0
  195. package/dist/hive-graph/deeplake-credentials.d.ts +68 -0
  196. package/dist/hive-graph/deeplake-credentials.d.ts.map +1 -0
  197. package/dist/hive-graph/deeplake-credentials.js +135 -0
  198. package/dist/hive-graph/deeplake-credentials.js.map +1 -0
  199. package/dist/hive-graph/deeplake-heal.d.ts +63 -0
  200. package/dist/hive-graph/deeplake-heal.d.ts.map +1 -0
  201. package/dist/hive-graph/deeplake-heal.js +118 -0
  202. package/dist/hive-graph/deeplake-heal.js.map +1 -0
  203. package/dist/hive-graph/deeplake-store.d.ts +199 -0
  204. package/dist/hive-graph/deeplake-store.d.ts.map +1 -0
  205. package/dist/hive-graph/deeplake-store.js +541 -0
  206. package/dist/hive-graph/deeplake-store.js.map +1 -0
  207. package/dist/hive-graph/deeplake-transport.d.ts +89 -0
  208. package/dist/hive-graph/deeplake-transport.d.ts.map +1 -0
  209. package/dist/hive-graph/deeplake-transport.js +145 -0
  210. package/dist/hive-graph/deeplake-transport.js.map +1 -0
  211. package/dist/hive-graph/hash.d.ts +3 -0
  212. package/dist/hive-graph/hash.d.ts.map +1 -0
  213. package/dist/hive-graph/hash.js +12 -0
  214. package/dist/hive-graph/hash.js.map +1 -0
  215. package/dist/hive-graph/memory-store.d.ts +39 -0
  216. package/dist/hive-graph/memory-store.d.ts.map +1 -0
  217. package/dist/hive-graph/memory-store.js +125 -0
  218. package/dist/hive-graph/memory-store.js.map +1 -0
  219. package/dist/hive-graph/model.d.ts +109 -0
  220. package/dist/hive-graph/model.d.ts.map +1 -0
  221. package/dist/hive-graph/model.js +36 -0
  222. package/dist/hive-graph/model.js.map +1 -0
  223. package/dist/hive-graph/paths.d.ts +7 -0
  224. package/dist/hive-graph/paths.d.ts.map +1 -0
  225. package/dist/hive-graph/paths.js +26 -0
  226. package/dist/hive-graph/paths.js.map +1 -0
  227. package/dist/hive-graph/project-scope.d.ts +99 -0
  228. package/dist/hive-graph/project-scope.d.ts.map +1 -0
  229. package/dist/hive-graph/project-scope.js +286 -0
  230. package/dist/hive-graph/project-scope.js.map +1 -0
  231. package/dist/hive-graph/schema.d.ts +53 -0
  232. package/dist/hive-graph/schema.d.ts.map +1 -0
  233. package/dist/hive-graph/schema.js +139 -0
  234. package/dist/hive-graph/schema.js.map +1 -0
  235. package/dist/hive-graph/search-types.d.ts +82 -0
  236. package/dist/hive-graph/search-types.d.ts.map +1 -0
  237. package/dist/hive-graph/search-types.js +2 -0
  238. package/dist/hive-graph/search-types.js.map +1 -0
  239. package/dist/hive-graph/search.d.ts +51 -0
  240. package/dist/hive-graph/search.d.ts.map +1 -0
  241. package/dist/hive-graph/search.js +417 -0
  242. package/dist/hive-graph/search.js.map +1 -0
  243. package/dist/hive-graph/sql-guards.d.ts +99 -0
  244. package/dist/hive-graph/sql-guards.d.ts.map +1 -0
  245. package/dist/hive-graph/sql-guards.js +129 -0
  246. package/dist/hive-graph/sql-guards.js.map +1 -0
  247. package/dist/hive-graph/store.d.ts +151 -0
  248. package/dist/hive-graph/store.d.ts.map +1 -0
  249. package/dist/hive-graph/store.js +2 -0
  250. package/dist/hive-graph/store.js.map +1 -0
  251. package/dist/hive-graph/ulid.d.ts +14 -0
  252. package/dist/hive-graph/ulid.d.ts.map +1 -0
  253. package/dist/hive-graph/ulid.js +109 -0
  254. package/dist/hive-graph/ulid.js.map +1 -0
  255. package/dist/hivedoctor-registry.d.ts +111 -0
  256. package/dist/hivedoctor-registry.d.ts.map +1 -0
  257. package/dist/hivedoctor-registry.js +143 -0
  258. package/dist/hivedoctor-registry.js.map +1 -0
  259. package/dist/index.d.ts +106 -0
  260. package/dist/index.d.ts.map +1 -0
  261. package/dist/index.js +78 -0
  262. package/dist/index.js.map +1 -0
  263. package/dist/lock.d.ts +66 -0
  264. package/dist/lock.d.ts.map +1 -0
  265. package/dist/lock.js +282 -0
  266. package/dist/lock.js.map +1 -0
  267. package/dist/poll-loop.d.ts +71 -0
  268. package/dist/poll-loop.d.ts.map +1 -0
  269. package/dist/poll-loop.js +130 -0
  270. package/dist/poll-loop.js.map +1 -0
  271. package/dist/portkey/config.d.ts +46 -0
  272. package/dist/portkey/config.d.ts.map +1 -0
  273. package/dist/portkey/config.js +68 -0
  274. package/dist/portkey/config.js.map +1 -0
  275. package/dist/portkey/describe-model.d.ts +53 -0
  276. package/dist/portkey/describe-model.d.ts.map +1 -0
  277. package/dist/portkey/describe-model.js +56 -0
  278. package/dist/portkey/describe-model.js.map +1 -0
  279. package/dist/portkey/headers.d.ts +31 -0
  280. package/dist/portkey/headers.d.ts.map +1 -0
  281. package/dist/portkey/headers.js +37 -0
  282. package/dist/portkey/headers.js.map +1 -0
  283. package/dist/portkey/transport.d.ts +89 -0
  284. package/dist/portkey/transport.d.ts.map +1 -0
  285. package/dist/portkey/transport.js +167 -0
  286. package/dist/portkey/transport.js.map +1 -0
  287. package/dist/projection/format.d.ts +51 -0
  288. package/dist/projection/format.d.ts.map +1 -0
  289. package/dist/projection/format.js +81 -0
  290. package/dist/projection/format.js.map +1 -0
  291. package/dist/projection/generate.d.ts +31 -0
  292. package/dist/projection/generate.d.ts.map +1 -0
  293. package/dist/projection/generate.js +83 -0
  294. package/dist/projection/generate.js.map +1 -0
  295. package/dist/projection/inherit.d.ts +27 -0
  296. package/dist/projection/inherit.d.ts.map +1 -0
  297. package/dist/projection/inherit.js +128 -0
  298. package/dist/projection/inherit.js.map +1 -0
  299. package/dist/projection/load.d.ts +47 -0
  300. package/dist/projection/load.d.ts.map +1 -0
  301. package/dist/projection/load.js +258 -0
  302. package/dist/projection/load.js.map +1 -0
  303. package/dist/projection/store-adapter.d.ts +42 -0
  304. package/dist/projection/store-adapter.d.ts.map +1 -0
  305. package/dist/projection/store-adapter.js +42 -0
  306. package/dist/projection/store-adapter.js.map +1 -0
  307. package/dist/projection/write.d.ts +79 -0
  308. package/dist/projection/write.d.ts.map +1 -0
  309. package/dist/projection/write.js +122 -0
  310. package/dist/projection/write.js.map +1 -0
  311. package/dist/registration/classify.d.ts +33 -0
  312. package/dist/registration/classify.d.ts.map +1 -0
  313. package/dist/registration/classify.js +32 -0
  314. package/dist/registration/classify.js.map +1 -0
  315. package/dist/registration/copy-detect.d.ts +22 -0
  316. package/dist/registration/copy-detect.d.ts.map +1 -0
  317. package/dist/registration/copy-detect.js +12 -0
  318. package/dist/registration/copy-detect.js.map +1 -0
  319. package/dist/registration/disk-fs.d.ts +41 -0
  320. package/dist/registration/disk-fs.d.ts.map +1 -0
  321. package/dist/registration/disk-fs.js +175 -0
  322. package/dist/registration/disk-fs.js.map +1 -0
  323. package/dist/registration/fs-watch.d.ts +114 -0
  324. package/dist/registration/fs-watch.d.ts.map +1 -0
  325. package/dist/registration/fs-watch.js +266 -0
  326. package/dist/registration/fs-watch.js.map +1 -0
  327. package/dist/registration/ignore.d.ts +77 -0
  328. package/dist/registration/ignore.d.ts.map +1 -0
  329. package/dist/registration/ignore.js +249 -0
  330. package/dist/registration/ignore.js.map +1 -0
  331. package/dist/registration/ladder.d.ts +211 -0
  332. package/dist/registration/ladder.d.ts.map +1 -0
  333. package/dist/registration/ladder.js +378 -0
  334. package/dist/registration/ladder.js.map +1 -0
  335. package/dist/registration/paths-safe.d.ts +21 -0
  336. package/dist/registration/paths-safe.d.ts.map +1 -0
  337. package/dist/registration/paths-safe.js +88 -0
  338. package/dist/registration/paths-safe.js.map +1 -0
  339. package/dist/registration/prune-cli.d.ts +48 -0
  340. package/dist/registration/prune-cli.d.ts.map +1 -0
  341. package/dist/registration/prune-cli.js +57 -0
  342. package/dist/registration/prune-cli.js.map +1 -0
  343. package/dist/registration/review-cli.d.ts +42 -0
  344. package/dist/registration/review-cli.d.ts.map +1 -0
  345. package/dist/registration/review-cli.js +110 -0
  346. package/dist/registration/review-cli.js.map +1 -0
  347. package/dist/registration/review-store.d.ts +73 -0
  348. package/dist/registration/review-store.d.ts.map +1 -0
  349. package/dist/registration/review-store.js +243 -0
  350. package/dist/registration/review-store.js.map +1 -0
  351. package/dist/registration/service.d.ts +196 -0
  352. package/dist/registration/service.d.ts.map +1 -0
  353. package/dist/registration/service.js +384 -0
  354. package/dist/registration/service.js.map +1 -0
  355. package/dist/registration/store-bridge.d.ts +133 -0
  356. package/dist/registration/store-bridge.d.ts.map +1 -0
  357. package/dist/registration/store-bridge.js +159 -0
  358. package/dist/registration/store-bridge.js.map +1 -0
  359. package/dist/registration/tlsh.d.ts +125 -0
  360. package/dist/registration/tlsh.d.ts.map +1 -0
  361. package/dist/registration/tlsh.js +274 -0
  362. package/dist/registration/tlsh.js.map +1 -0
  363. package/dist/server.d.ts +26 -0
  364. package/dist/server.d.ts.map +1 -0
  365. package/dist/server.js +156 -0
  366. package/dist/server.js.map +1 -0
  367. package/dist/service/argv.d.ts +52 -0
  368. package/dist/service/argv.d.ts.map +1 -0
  369. package/dist/service/argv.js +127 -0
  370. package/dist/service/argv.js.map +1 -0
  371. package/dist/service/command-runner.d.ts +54 -0
  372. package/dist/service/command-runner.d.ts.map +1 -0
  373. package/dist/service/command-runner.js +55 -0
  374. package/dist/service/command-runner.js.map +1 -0
  375. package/dist/service/index.d.ts +83 -0
  376. package/dist/service/index.d.ts.map +1 -0
  377. package/dist/service/index.js +270 -0
  378. package/dist/service/index.js.map +1 -0
  379. package/dist/service/platform.d.ts +110 -0
  380. package/dist/service/platform.d.ts.map +1 -0
  381. package/dist/service/platform.js +157 -0
  382. package/dist/service/platform.js.map +1 -0
  383. package/dist/service/templates.d.ts +88 -0
  384. package/dist/service/templates.d.ts.map +1 -0
  385. package/dist/service/templates.js +212 -0
  386. package/dist/service/templates.js.map +1 -0
  387. package/dist/source-graph/deeplake-credentials.d.ts +57 -0
  388. package/dist/source-graph/deeplake-credentials.d.ts.map +1 -0
  389. package/dist/source-graph/deeplake-credentials.js +109 -0
  390. package/dist/source-graph/deeplake-credentials.js.map +1 -0
  391. package/dist/source-graph/deeplake-heal.d.ts +53 -0
  392. package/dist/source-graph/deeplake-heal.d.ts.map +1 -0
  393. package/dist/source-graph/deeplake-heal.js +41 -0
  394. package/dist/source-graph/deeplake-heal.js.map +1 -0
  395. package/dist/source-graph/deeplake-store.d.ts +151 -0
  396. package/dist/source-graph/deeplake-store.d.ts.map +1 -0
  397. package/dist/source-graph/deeplake-store.js +389 -0
  398. package/dist/source-graph/deeplake-store.js.map +1 -0
  399. package/dist/source-graph/deeplake-transport.d.ts +74 -0
  400. package/dist/source-graph/deeplake-transport.d.ts.map +1 -0
  401. package/dist/source-graph/deeplake-transport.js +107 -0
  402. package/dist/source-graph/deeplake-transport.js.map +1 -0
  403. package/dist/source-graph/hash.d.ts +3 -0
  404. package/dist/source-graph/hash.d.ts.map +1 -0
  405. package/dist/source-graph/hash.js +12 -0
  406. package/dist/source-graph/hash.js.map +1 -0
  407. package/dist/source-graph/memory-store.d.ts +32 -0
  408. package/dist/source-graph/memory-store.d.ts.map +1 -0
  409. package/dist/source-graph/memory-store.js +81 -0
  410. package/dist/source-graph/memory-store.js.map +1 -0
  411. package/dist/source-graph/model.d.ts +102 -0
  412. package/dist/source-graph/model.d.ts.map +1 -0
  413. package/dist/source-graph/model.js +36 -0
  414. package/dist/source-graph/model.js.map +1 -0
  415. package/dist/source-graph/paths.d.ts +7 -0
  416. package/dist/source-graph/paths.d.ts.map +1 -0
  417. package/dist/source-graph/paths.js +26 -0
  418. package/dist/source-graph/paths.js.map +1 -0
  419. package/dist/source-graph/schema.d.ts +44 -0
  420. package/dist/source-graph/schema.d.ts.map +1 -0
  421. package/dist/source-graph/schema.js +123 -0
  422. package/dist/source-graph/schema.js.map +1 -0
  423. package/dist/source-graph/sql-guards.d.ts +99 -0
  424. package/dist/source-graph/sql-guards.d.ts.map +1 -0
  425. package/dist/source-graph/sql-guards.js +129 -0
  426. package/dist/source-graph/sql-guards.js.map +1 -0
  427. package/dist/source-graph/store.d.ts +101 -0
  428. package/dist/source-graph/store.d.ts.map +1 -0
  429. package/dist/source-graph/store.js +2 -0
  430. package/dist/source-graph/store.js.map +1 -0
  431. package/dist/source-graph/ulid.d.ts +9 -0
  432. package/dist/source-graph/ulid.d.ts.map +1 -0
  433. package/dist/source-graph/ulid.js +61 -0
  434. package/dist/source-graph/ulid.js.map +1 -0
  435. package/dist/telemetry/checkin.d.ts +66 -0
  436. package/dist/telemetry/checkin.d.ts.map +1 -0
  437. package/dist/telemetry/checkin.js +142 -0
  438. package/dist/telemetry/checkin.js.map +1 -0
  439. package/dist/telemetry/db.d.ts +34 -0
  440. package/dist/telemetry/db.d.ts.map +1 -0
  441. package/dist/telemetry/db.js +122 -0
  442. package/dist/telemetry/db.js.map +1 -0
  443. package/dist/telemetry/index.d.ts +76 -0
  444. package/dist/telemetry/index.d.ts.map +1 -0
  445. package/dist/telemetry/index.js +98 -0
  446. package/dist/telemetry/index.js.map +1 -0
  447. package/dist/telemetry/logs.d.ts +83 -0
  448. package/dist/telemetry/logs.d.ts.map +1 -0
  449. package/dist/telemetry/logs.js +110 -0
  450. package/dist/telemetry/logs.js.map +1 -0
  451. package/dist/telemetry/metrics.d.ts +82 -0
  452. package/dist/telemetry/metrics.d.ts.map +1 -0
  453. package/dist/telemetry/metrics.js +148 -0
  454. package/dist/telemetry/metrics.js.map +1 -0
  455. package/dist/telemetry-usage/emit.d.ts +105 -0
  456. package/dist/telemetry-usage/emit.d.ts.map +1 -0
  457. package/dist/telemetry-usage/emit.js +267 -0
  458. package/dist/telemetry-usage/emit.js.map +1 -0
  459. package/dist/telemetry-usage/posthog-key.d.ts +22 -0
  460. package/dist/telemetry-usage/posthog-key.d.ts.map +1 -0
  461. package/dist/telemetry-usage/posthog-key.js +22 -0
  462. package/dist/telemetry-usage/posthog-key.js.map +1 -0
  463. package/dist/worker.d.ts +69 -0
  464. package/dist/worker.d.ts.map +1 -0
  465. package/dist/worker.js +91 -0
  466. package/dist/worker.js.map +1 -0
  467. package/package.json +44 -0
@@ -0,0 +1,33 @@
1
+ /**
2
+ * The brooding module barrel (PRD-007).
3
+ *
4
+ * The clean module surface the orchestrator wires into the CLI verb, the daemon
5
+ * boot (background auto-trigger), and the HTTP `POST /api/hive-graph/build`
6
+ * seam. Nothing here touches `src/cli.ts`, `src/daemon.ts`, or any other agent's
7
+ * file: the orchestrator imports {@link runBrood} / {@link planBrood} /
8
+ * {@link parseBroodArgs} / {@link shouldAutoBrood} and wires the seams.
9
+ *
10
+ * Pipeline order (fixed, PRD-007):
11
+ * discover -> pre-check -> bucket -> describe -> embed -> persist -> regenerate-projection
12
+ */
13
+ // Stage constants + buckets (PRD-007b).
14
+ export { BATCH_FILE_SIZE, BATCH_TOTAL_SIZE, MAX_DESCRIBE_SIZE, BINARY_SNIFF_BYTES, BATCH_INPUT_TOKEN_BUDGET, MAX_BATCH_FILES, MIN_BATCH_FILES_BAND, BYTES_PER_TOKEN, KNOWN_BINARY_EXTENSIONS, } from "./constants.js";
15
+ // Stage 1: discovery (PRD-007a; NEC-007/NEC-039 loud-failure surfacing PRD-018c).
16
+ export { discoverFiles, spawnGitLsFiles, GitDiscoveryError, GIT_LS_FILES_MAX_BUFFER, GIT_LS_FILES_ARGS, } from "./discovery.js";
17
+ // Stage 2: content-hash pre-check (PRD-007a).
18
+ export { prepareFile, prepareFiles, contentHashPrecheck, } from "./precheck.js";
19
+ // Stage 3: bucketing + dynamic packing (PRD-007b).
20
+ export { estimateTokens, classifyBucket, packBatches, bucketFiles, } from "./bucketing.js";
21
+ // Cost math (PRD-007b).
22
+ export { GEMINI_INPUT_PRICE_PER_M_LE_200K, GEMINI_OUTPUT_PRICE_PER_M_LE_200K, GEMINI_INPUT_PRICE_PER_M_GT_200K, GEMINI_OUTPUT_PRICE_PER_M_GT_200K, AVG_OUTPUT_TOKENS_PER_CALL, BROODING_COST_REFERENCE, estimateBroodCost, } from "./cost.js";
23
+ // Stages 4-5: describe + embed (PRD-007b).
24
+ export { BATCH_SYSTEM_PROMPT, SOLO_SYSTEM_PROMPT, MAX_TITLE_CHARS, MAX_CONCEPTS, MAX_DESCRIPTION_CHARS, buildBatchUserMessage, buildSoloUserMessage, extractJson, describeBatchGroup, describeSoloFile, embeddingText, embedDescriptions, } from "./describe.js";
25
+ // Resumability state machine (PRD-007c).
26
+ export { BROOD_TERMINAL_STATUSES, isTerminalBroodStatus, isForceProtectedStatus, classifyResume, } from "./resumability.js";
27
+ // Orchestrator (PRD-007).
28
+ export { BroodError, planBrood, runBrood, resolveProjection, buildVersionRow, buildIdentity, resolveDescribeFn, defaultNow, } from "./pipeline.js";
29
+ // Async-native orchestrator: the sync/async store bridge (Wave D dormancy closure).
30
+ export { planBroodAsync, runBroodAsync, } from "./pipeline-async.js";
31
+ // CLI verb surface + dry-run (PRD-007d).
32
+ export { parseBroodArgs, shouldAutoBrood, evaluateAutoBrood, evaluateAutoBroodAsync, formatDryRunReport, } from "./cli.js";
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/brooding/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,wCAAwC;AACxC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,uBAAuB,GAExB,MAAM,gBAAgB,CAAC;AAExB,kFAAkF;AAClF,OAAO,EACL,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,GAOlB,MAAM,gBAAgB,CAAC;AAExB,8CAA8C;AAC9C,OAAO,EACL,WAAW,EACX,YAAY,EACZ,mBAAmB,GAIpB,MAAM,eAAe,CAAC;AAEvB,mDAAmD;AACnD,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,EACX,WAAW,GAIZ,MAAM,gBAAgB,CAAC;AAExB,wBAAwB;AACxB,OAAO,EACL,gCAAgC,EAChC,iCAAiC,EACjC,gCAAgC,EAChC,iCAAiC,EACjC,0BAA0B,EAC1B,uBAAuB,EACvB,iBAAiB,GAGlB,MAAM,WAAW,CAAC;AAEnB,2CAA2C;AAC3C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,GAKlB,MAAM,eAAe,CAAC;AAEvB,yCAAyC;AACzC,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,GAGf,MAAM,mBAAmB,CAAC;AAE3B,0BAA0B;AAC1B,OAAO,EACL,UAAU,EACV,SAAS,EACT,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,UAAU,GAUX,MAAM,eAAe,CAAC;AAEvB,oFAAoF;AACpF,OAAO,EACL,cAAc,EACd,aAAa,GAGd,MAAM,qBAAqB,CAAC;AAE7B,yCAAyC;AACzC,OAAO,EACL,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,GAInB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * The async-native brooding pipeline (the sync/async bridge, Wave D dormancy closure).
3
+ *
4
+ * `runBrood` (`pipeline.ts`) consumes the SYNCHRONOUS {@link HiveGraphStore}; the
5
+ * only durable substrate (`DeepLakeHiveGraphStore`) implements the ASYNC
6
+ * {@link AsyncHiveGraphStore}. Rather than hydrate an entire repo's version rows
7
+ * into an in-memory sync mirror (the batch-shaped brood is exactly the workload
8
+ * where that is the wrong trade), this is an async-native variant of the same
9
+ * pipeline: it reuses every store-agnostic stage verbatim
10
+ * (`discoverFiles`/`prepareFiles`/`contentHashPrecheck`/`bucketFiles`/
11
+ * `classifyResume`/`describeBatchGroup`/`describeSoloFile`/`embedDescriptions`/
12
+ * `estimateBroodCost`) and the shared row/identity/describe helpers exported from
13
+ * `pipeline.ts`, differing ONLY in that each store read/write is `await`ed
14
+ * against the async store. `runBrood` was already `async` (it awaits the LLM +
15
+ * embed stages), so the sole structural change here is threading `await` through
16
+ * the store calls; the fixed pipeline order and every semantic (resumability via
17
+ * `describe_status`, the #22 packing, the skip-bucket terminal writes, fail-soft
18
+ * projection regen) is identical.
19
+ *
20
+ * This is the path the live `POST /api/hive-graph/build` endpoint and the
21
+ * daemon's durable auto-brood invoke (see `api/daemon-api-wiring.ts` and
22
+ * `daemon.ts`).
23
+ */
24
+ import type { Tenancy } from "../hive-graph/model.js";
25
+ import type { AsyncHiveGraphStore } from "../hive-graph/store.js";
26
+ import type { RegistrationFs } from "../registration/service.js";
27
+ import type { IgnorePredicate } from "../registration/ignore.js";
28
+ import type { PortkeyFetch } from "../portkey/transport.js";
29
+ import type { PortkeyEnabled } from "../portkey/config.js";
30
+ import { type EmbedProvider } from "../embeddings/provider.js";
31
+ import type { PortableProjection } from "../projection/format.js";
32
+ import { type GitLsFiles } from "./discovery.js";
33
+ import { type PackBatchesOptions } from "./bucketing.js";
34
+ import { type DescribeFn } from "./describe.js";
35
+ import { type BroodPlan, type BroodResult, type BroodRunOptions, type PlanBroodOptions } from "./pipeline.js";
36
+ /** Shared configuration for {@link planBroodAsync} and {@link runBroodAsync} (the async twin of `BroodConfig`). */
37
+ export interface AsyncBroodConfig {
38
+ /** The durable async store the brood reads from and writes to (Deep Lake). */
39
+ readonly store: AsyncHiveGraphStore;
40
+ readonly tenancy: Tenancy;
41
+ /** The project root discovery walks and the projection is written under. */
42
+ readonly root: string;
43
+ /** Filesystem seam (stat/read/list); typically `createDiskRegistrationFs(root)`. */
44
+ readonly fs: RegistrationFs;
45
+ /** git-ls-files seam (default spawns git); overridden in tests. */
46
+ readonly gitLsFiles?: GitLsFiles;
47
+ /** Ignore predicate for the walk fallback (default: the shared CodeGraph ignore). */
48
+ readonly isIgnored?: IgnorePredicate;
49
+ /**
50
+ * The committed projection consulted by the pre-check. `undefined` -> attempt
51
+ * to load `<root>/.honeycomb/nectars.json`; `null` -> no projection.
52
+ */
53
+ readonly projection?: PortableProjection | null;
54
+ /** ISO 8601 "now"; injectable for deterministic tests. */
55
+ readonly now?: () => string;
56
+ /** Dynamic batch-packing overrides (default: the decision #22 constants). */
57
+ readonly packOptions?: PackBatchesOptions;
58
+ /** Structured log sink; defaults to a no-op. */
59
+ readonly log?: (line: Record<string, unknown>) => void;
60
+ }
61
+ /** Transport + provider seams a full async describe run needs (never touched by dry-run). */
62
+ export interface AsyncBroodRuntimeDeps {
63
+ /** The chat transport. Default wires `describeViaPortkey` against `portkey`. */
64
+ readonly describe?: DescribeFn;
65
+ /** Portkey credentials used to build the default `describe` when none is given. */
66
+ readonly portkey?: PortkeyEnabled;
67
+ /** Injectable fetch for the default describe transport (tests). */
68
+ readonly fetch?: PortkeyFetch;
69
+ /** The embedding provider (default: the disabled provider -> NULL embeddings, BM25 fallback). */
70
+ readonly embedProvider?: EmbedProvider;
71
+ /** Active embedding model id stamped as `embed_model` on rows carrying an embedding (PRD-018i / NEC-018). */
72
+ readonly embedModelId?: string | null;
73
+ /**
74
+ * Projection regeneration seam (default: {@link rebuildProjectionAsync} from
75
+ * the async store). Returns the written path. The async twin of the sync
76
+ * pipeline's `regenerateProjection`.
77
+ */
78
+ readonly regenerateProjection?: (store: AsyncHiveGraphStore, tenancy: Tenancy, root: string) => Promise<string>;
79
+ }
80
+ /**
81
+ * The `--dry-run` cost preview against the async store (the async twin of
82
+ * {@link planBrood}): discover -> pre-check -> bucket -> estimate. Makes NO LLM
83
+ * call and writes NOTHING (no rows, no projection); it only reads the async
84
+ * store's latest-per-nectar set for the pre-check's already-brooded skip. The
85
+ * bucket counts and estimate reflect only the resumability-remaining
86
+ * survivors (brooding review M4 / EX-3).
87
+ */
88
+ export declare function planBroodAsync(config: AsyncBroodConfig, options?: PlanBroodOptions): Promise<BroodPlan>;
89
+ /**
90
+ * The full brooding run against the durable {@link AsyncHiveGraphStore} (the
91
+ * sync/async bridge). Applies resumability, mints, describes, embeds, persists,
92
+ * and regenerates the projection - identical in behavior to {@link runBrood},
93
+ * awaiting the async store throughout. On `dryRun`, delegates to
94
+ * {@link planBroodAsync} and returns without any LLM call or store write.
95
+ */
96
+ export declare function runBroodAsync(config: AsyncBroodConfig, deps?: AsyncBroodRuntimeDeps, options?: BroodRunOptions): Promise<BroodResult>;
97
+ //# sourceMappingURL=pipeline-async.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-async.d.ts","sourceRoot":"","sources":["../../src/brooding/pipeline-async.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAqC,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAuC,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEtF,OAAO,EAA+B,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEtF,OAAO,EAIL,KAAK,UAAU,EAEhB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAGtB,MAAM,eAAe,CAAC;AAEvB,mHAAmH;AACnH,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,qFAAqF;IACrF,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAChD,0DAA0D;IAC1D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAC1C,gDAAgD;IAChD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACxD;AAED,6FAA6F;AAC7F,MAAM,WAAW,qBAAqB;IACpC,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;IAClC,mEAAmE;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,iGAAiG;IACjG,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,6GAA6G;IAC7G,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACjH;AAmDD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,CAiBjH;AAqBD;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,gBAAgB,EACxB,IAAI,GAAE,qBAA0B,EAChC,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAmStB"}
@@ -0,0 +1,364 @@
1
+ import { isValidEmbedding } from "../hive-graph/model.js";
2
+ import { mintNectar } from "../hive-graph/ulid.js";
3
+ import { filenameOf } from "../hive-graph/paths.js";
4
+ import { createOffProvider } from "../embeddings/provider.js";
5
+ import { rebuildProjectionAsync } from "../projection/write.js";
6
+ import { discoverFiles } from "./discovery.js";
7
+ import { contentHashPrecheck, prepareFiles } from "./precheck.js";
8
+ import { bucketFiles, classifyBucket } from "./bucketing.js";
9
+ import { estimateBroodCost, usageCostUsd } from "./cost.js";
10
+ import { describeBatchGroup, describeSoloFile, embedDescriptions, } from "./describe.js";
11
+ import { classifyResume } from "./resumability.js";
12
+ import { BroodError, buildIdentity, buildVersionRow, defaultNow, resolveDescribeFn, resolveProjection, } from "./pipeline.js";
13
+ /** The set of nectars already present in the async store (skip re-inheriting these). */
14
+ async function existingNectarSetAsync(store, tenancy) {
15
+ const set = new Set();
16
+ for (const lv of await store.listLatestVersions(tenancy))
17
+ set.add(lv.identity.nectar);
18
+ return set;
19
+ }
20
+ /** Stage 1-3: discover -> pre-check -> bucket against the async store, returning survivors + buckets. */
21
+ async function discoverPrecheckBucketAsync(config, options = {}) {
22
+ const discovery = discoverFiles({
23
+ root: config.root,
24
+ fs: config.fs,
25
+ gitLsFiles: config.gitLsFiles,
26
+ isIgnored: config.isIgnored,
27
+ });
28
+ const prepared = prepareFiles(config.fs, discovery.files);
29
+ const precheck = contentHashPrecheck(prepared, {
30
+ tenancy: config.tenancy,
31
+ projection: resolveProjection(config),
32
+ existingNectars: await existingNectarSetAsync(config.store, config.tenancy),
33
+ nowIso: (config.now ?? defaultNow)(),
34
+ });
35
+ // Apply the resume partition before bucketing (brooding review M4 / EX-3):
36
+ // a `--dry-run` should quote the REMAINING cost, not the full original cost.
37
+ const remaining = [];
38
+ for (const p of precheck.survivors) {
39
+ const existing = await config.store.latestVersionByPath(config.tenancy, p.file.relPath);
40
+ const action = classifyResume(existing?.version, { force: options.force, preparedContentHash: p.contentHash });
41
+ if (action !== "skip")
42
+ remaining.push(p);
43
+ }
44
+ const bucketed = bucketFiles(remaining, config.packOptions);
45
+ return {
46
+ source: discovery.source,
47
+ discoveredCount: discovery.files.length,
48
+ inheritedRows: precheck.inheritedRows,
49
+ survivors: precheck.survivors,
50
+ bucketed,
51
+ };
52
+ }
53
+ /**
54
+ * The `--dry-run` cost preview against the async store (the async twin of
55
+ * {@link planBrood}): discover -> pre-check -> bucket -> estimate. Makes NO LLM
56
+ * call and writes NOTHING (no rows, no projection); it only reads the async
57
+ * store's latest-per-nectar set for the pre-check's already-brooded skip. The
58
+ * bucket counts and estimate reflect only the resumability-remaining
59
+ * survivors (brooding review M4 / EX-3).
60
+ */
61
+ export async function planBroodAsync(config, options = {}) {
62
+ const { source, discoveredCount, inheritedRows, bucketed } = await discoverPrecheckBucketAsync(config, options);
63
+ const estimate = estimateBroodCost(bucketed);
64
+ return {
65
+ source,
66
+ discoveredCount,
67
+ inheritedCount: inheritedRows.length,
68
+ survivorCount: bucketed.skipBinary.length + bucketed.skipTooLarge.length + bucketed.batchFileCount + bucketed.soloFileCount,
69
+ skipBinaryCount: bucketed.skipBinary.length,
70
+ skipTooLargeCount: bucketed.skipTooLarge.length,
71
+ batchFileCount: bucketed.batchFileCount,
72
+ soloFileCount: bucketed.soloFileCount,
73
+ batchCalls: bucketed.batches.length,
74
+ soloCalls: bucketed.soloFiles.length,
75
+ estimate,
76
+ };
77
+ }
78
+ /** Persist a terminal (skip) row against the async store: mint+insert for fresh, append+touch for re-enqueue. */
79
+ async function persistTerminalAsync(config, now, item, fields) {
80
+ if (item.action === "fresh") {
81
+ const nectar = mintNectar();
82
+ await config.store.insertIdentity(buildIdentity(config.tenancy, now, nectar));
83
+ await config.store.appendVersion(buildVersionRow(config.tenancy, now, item.prepared, nectar, 0, fields));
84
+ }
85
+ else {
86
+ const nectar = item.existingNectar;
87
+ const seq = await config.store.nextSeq(nectar);
88
+ await config.store.appendVersion(buildVersionRow(config.tenancy, now, item.prepared, nectar, seq, fields));
89
+ await config.store.touchIdentity(nectar, now);
90
+ }
91
+ }
92
+ /**
93
+ * The full brooding run against the durable {@link AsyncHiveGraphStore} (the
94
+ * sync/async bridge). Applies resumability, mints, describes, embeds, persists,
95
+ * and regenerates the projection - identical in behavior to {@link runBrood},
96
+ * awaiting the async store throughout. On `dryRun`, delegates to
97
+ * {@link planBroodAsync} and returns without any LLM call or store write.
98
+ */
99
+ export async function runBroodAsync(config, deps = {}, options = {}) {
100
+ const now = config.now ?? defaultNow;
101
+ if (options.dryRun === true) {
102
+ const plan = await planBroodAsync(config, { force: options.force });
103
+ return {
104
+ ...plan,
105
+ dryRun: true,
106
+ skippedResumeCount: 0,
107
+ reenqueueCount: 0,
108
+ freshCount: 0,
109
+ describedCount: 0,
110
+ failedCount: 0,
111
+ projectionPath: null,
112
+ actualUsage: { inputTokens: 0, outputTokens: 0, usd: 0 },
113
+ };
114
+ }
115
+ // ── Stage 1-2: discover + pre-check (writes inherited rows, $0) ──────────────
116
+ const discovery = discoverFiles({
117
+ root: config.root,
118
+ fs: config.fs,
119
+ gitLsFiles: config.gitLsFiles,
120
+ isIgnored: config.isIgnored,
121
+ });
122
+ const prepared = prepareFiles(config.fs, discovery.files);
123
+ const precheck = contentHashPrecheck(prepared, {
124
+ tenancy: config.tenancy,
125
+ projection: resolveProjection(config),
126
+ existingNectars: await existingNectarSetAsync(config.store, config.tenancy),
127
+ nowIso: now(),
128
+ });
129
+ for (const row of precheck.inheritedRows) {
130
+ if ((await config.store.getIdentity(row.identity.nectar)) === undefined) {
131
+ await config.store.insertIdentity(row.identity);
132
+ }
133
+ await config.store.appendVersion(row.version);
134
+ }
135
+ // ── Resumability: partition survivors into skip / re-enqueue / fresh ─────────
136
+ let skippedResumeCount = 0;
137
+ const toBrood = [];
138
+ for (const p of precheck.survivors) {
139
+ const existing = await config.store.latestVersionByPath(config.tenancy, p.file.relPath);
140
+ const action = classifyResume(existing?.version, {
141
+ force: options.force,
142
+ preparedContentHash: p.contentHash,
143
+ });
144
+ if (action === "skip") {
145
+ skippedResumeCount += 1;
146
+ continue;
147
+ }
148
+ if (action === "re-enqueue") {
149
+ toBrood.push({
150
+ prepared: p,
151
+ action: "re-enqueue",
152
+ existingNectar: existing?.identity.nectar,
153
+ latestPending: existing?.version.describeStatus === "pending",
154
+ });
155
+ }
156
+ else {
157
+ toBrood.push({ prepared: p, action: "fresh" });
158
+ }
159
+ }
160
+ // ── Stage 3: bucket. Skip buckets are terminal writes; batch/solo get described.
161
+ const skipItems = [];
162
+ const describeItems = [];
163
+ for (const item of toBrood) {
164
+ const bucket = classifyBucket(item.prepared);
165
+ if (bucket === "skip-binary" || bucket === "skip-too-large")
166
+ skipItems.push(item);
167
+ else
168
+ describeItems.push(item);
169
+ }
170
+ // Persist the skip buckets (mint nectar / reuse; write a terminal skip row).
171
+ let skipBinaryCount = 0;
172
+ let skipTooLargeCount = 0;
173
+ for (const item of skipItems) {
174
+ const bucket = classifyBucket(item.prepared);
175
+ const status = bucket === "skip-binary" ? "skipped-binary" : "skipped-too-large";
176
+ if (status === "skipped-binary")
177
+ skipBinaryCount += 1;
178
+ else
179
+ skipTooLargeCount += 1;
180
+ await persistTerminalAsync(config, now(), item, {
181
+ title: filenameOf(item.prepared.file.relPath),
182
+ describeStatus: status,
183
+ });
184
+ }
185
+ // ── `--limit N`: cap describe-eligible files (the rest resume on a later run).
186
+ const capped = options.limit !== undefined && options.limit >= 0 ? describeItems.slice(0, options.limit) : describeItems;
187
+ // ── Phase A: mint identities + write pending rows for the describe set ───────
188
+ const nectarByPrepared = new Map();
189
+ let freshCount = 0;
190
+ let reenqueueCount = 0;
191
+ for (const item of capped) {
192
+ if (item.action === "fresh") {
193
+ freshCount += 1;
194
+ const nectar = mintNectar();
195
+ await config.store.insertIdentity(buildIdentity(config.tenancy, now(), nectar));
196
+ await config.store.appendVersion(buildVersionRow(config.tenancy, now(), item.prepared, nectar, 0, { describeStatus: "pending" }));
197
+ nectarByPrepared.set(item.prepared, nectar);
198
+ }
199
+ else {
200
+ reenqueueCount += 1;
201
+ const nectar = item.existingNectar;
202
+ if (item.latestPending !== true) {
203
+ const seq = await config.store.nextSeq(nectar);
204
+ await config.store.appendVersion(buildVersionRow(config.tenancy, now(), item.prepared, nectar, seq, { describeStatus: "pending" }));
205
+ await config.store.touchIdentity(nectar, now());
206
+ }
207
+ nectarByPrepared.set(item.prepared, nectar);
208
+ }
209
+ }
210
+ // ── Stage 4-6: describe -> embed -> persist, INCREMENTALLY per batch group
211
+ // and per solo call (NEC-003 / AC-018e.1-4): a chunk's described+failed rows
212
+ // are committed to the store before the next chunk's describe call runs, so
213
+ // a mid-run kill (or a throwing embed provider) leaves every already-
214
+ // completed chunk durable. A transport-level batch failure marks its rows
215
+ // failed with no solo retry, and a truncated batch is halved and retried
216
+ // (NEC-013); the positional-fallback safety lives in `describe.ts` (NEC-014).
217
+ const describe = resolveDescribeFn(deps, capped.length);
218
+ const bucketed = bucketFiles(capped.map((i) => i.prepared), config.packOptions);
219
+ const embedProvider = deps.embedProvider ?? createOffProvider();
220
+ const embedModelId = deps.embedModelId ?? null;
221
+ const preparedByNectar = new Map();
222
+ for (const [prepared, nectar] of nectarByPrepared)
223
+ preparedByNectar.set(nectar, prepared);
224
+ const targetFor = (p) => ({ nectar: nectarByPrepared.get(p), prepared: p });
225
+ let describedCount = 0;
226
+ let failedCount = 0;
227
+ let actualInputTokens = 0;
228
+ let actualOutputTokens = 0;
229
+ function accumulateUsage(usage) {
230
+ if (usage === null)
231
+ return;
232
+ actualInputTokens += usage.inputTokens;
233
+ actualOutputTokens += usage.outputTokens;
234
+ }
235
+ /** Embed one chunk's described payloads and persist them immediately (await against the async store). */
236
+ async function persistDescribedChunk(entries) {
237
+ if (entries.length === 0)
238
+ return;
239
+ const vectors = await embedDescriptions(embedProvider, entries.map((e) => e.payload));
240
+ for (let i = 0; i < entries.length; i++) {
241
+ const e = entries[i];
242
+ const raw = vectors[i] ?? null;
243
+ const embedding = isValidEmbedding(raw) ? raw : null;
244
+ const seq = await config.store.nextSeq(e.nectar);
245
+ await config.store.appendVersion(buildVersionRow(config.tenancy, now(), e.prepared, e.nectar, seq, {
246
+ title: e.payload.title,
247
+ description: e.payload.description,
248
+ concepts: e.payload.concepts,
249
+ describeStatus: "described",
250
+ describeModel: e.model,
251
+ describedAt: now(),
252
+ embedding,
253
+ embedModel: embedding !== null ? embedModelId : null,
254
+ }));
255
+ await config.store.touchIdentity(e.nectar, now());
256
+ describedCount += 1;
257
+ }
258
+ }
259
+ /** Persist a set of nectars as `failed` immediately (re-enqueueable next run / by the enricher). */
260
+ async function persistFailedNectars(nectars) {
261
+ for (const nectar of nectars) {
262
+ const prepared = preparedByNectar.get(nectar);
263
+ if (prepared === undefined)
264
+ continue;
265
+ const seq = await config.store.nextSeq(nectar);
266
+ await config.store.appendVersion(buildVersionRow(config.tenancy, now(), prepared, nectar, seq, { describeStatus: "failed" }));
267
+ await config.store.touchIdentity(nectar, now());
268
+ failedCount += 1;
269
+ }
270
+ }
271
+ /** Describe one solo target and persist its outcome before the next solo call is issued (AC-018e.2). */
272
+ async function describeAndPersistSolo(target) {
273
+ const solo = await describeSoloFile(target, describe, options.model);
274
+ accumulateUsage(solo.usage);
275
+ if (solo.payload !== null) {
276
+ await persistDescribedChunk([
277
+ { nectar: target.nectar, prepared: target.prepared, payload: solo.payload, model: solo.model },
278
+ ]);
279
+ }
280
+ else {
281
+ await persistFailedNectars([target.nectar]);
282
+ }
283
+ }
284
+ /**
285
+ * Describe one batch group, applying the failure-class retry policy
286
+ * (NEC-013) and the malformed-entry solo retry (spec-preserved), persisting
287
+ * as soon as each outcome is known.
288
+ */
289
+ async function describeAndPersistGroup(targets) {
290
+ if (targets.length === 0)
291
+ return;
292
+ const result = await describeBatchGroup(targets, describe, { model: options.model });
293
+ accumulateUsage(result.usage);
294
+ if (result.outcome === "transport-failed") {
295
+ await persistFailedNectars(result.failed);
296
+ return;
297
+ }
298
+ if (result.outcome === "truncated") {
299
+ if (targets.length === 1) {
300
+ await persistFailedNectars(targets.map((t) => t.nectar));
301
+ return;
302
+ }
303
+ const mid = Math.ceil(targets.length / 2);
304
+ await describeAndPersistGroup(targets.slice(0, mid));
305
+ await describeAndPersistGroup(targets.slice(mid));
306
+ return;
307
+ }
308
+ // outcome === "ok": persist the well-formed entries, then solo-retry the
309
+ // malformed ones (per spec), persisting each solo result immediately.
310
+ const describedEntries = [];
311
+ for (const d of result.described) {
312
+ const target = targets.find((t) => t.nectar === d.nectar);
313
+ if (target !== undefined) {
314
+ describedEntries.push({ nectar: d.nectar, prepared: target.prepared, payload: d.payload, model: result.model });
315
+ }
316
+ }
317
+ await persistDescribedChunk(describedEntries);
318
+ for (const nectar of result.failed) {
319
+ const target = targets.find((t) => t.nectar === nectar);
320
+ if (target === undefined) {
321
+ await persistFailedNectars([nectar]);
322
+ continue;
323
+ }
324
+ await describeAndPersistSolo(target);
325
+ }
326
+ }
327
+ for (const group of bucketed.batches) {
328
+ await describeAndPersistGroup(group.files.map(targetFor));
329
+ }
330
+ for (const p of bucketed.soloFiles) {
331
+ await describeAndPersistSolo(targetFor(p));
332
+ }
333
+ // ── Stage 7: regenerate the projection ──────────────────────────────────────
334
+ const regenerate = deps.regenerateProjection ??
335
+ (async (store, tenancy, root) => (await rebuildProjectionAsync(store, tenancy, { projectRoot: root })).path);
336
+ const projectionPath = await regenerate(config.store, config.tenancy, config.root);
337
+ const estimate = estimateBroodCost(bucketed);
338
+ return {
339
+ source: discovery.source,
340
+ discoveredCount: discovery.files.length,
341
+ inheritedCount: precheck.inheritedRows.length,
342
+ survivorCount: precheck.survivors.length,
343
+ skipBinaryCount,
344
+ skipTooLargeCount,
345
+ batchFileCount: bucketed.batchFileCount,
346
+ soloFileCount: bucketed.soloFileCount,
347
+ batchCalls: bucketed.batches.length,
348
+ soloCalls: bucketed.soloFiles.length,
349
+ estimate,
350
+ dryRun: false,
351
+ skippedResumeCount,
352
+ reenqueueCount,
353
+ freshCount,
354
+ describedCount,
355
+ failedCount,
356
+ projectionPath,
357
+ actualUsage: {
358
+ inputTokens: actualInputTokens,
359
+ outputTokens: actualOutputTokens,
360
+ usd: usageCostUsd(actualInputTokens, actualOutputTokens),
361
+ },
362
+ };
363
+ }
364
+ //# sourceMappingURL=pipeline-async.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-async.js","sourceRoot":"","sources":["../../src/brooding/pipeline-async.ts"],"names":[],"mappings":"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"}