@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 @@
1
+ {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/enricher/describe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Enricher failure ladder + persistent alert state (PRD-016c).
3
+ */
4
+ export interface PersistentFailureState {
5
+ consecutiveFailures: number;
6
+ alertRaised: boolean;
7
+ acknowledged: boolean;
8
+ }
9
+ export declare function createPersistentFailureState(): PersistentFailureState;
10
+ export interface CycleFailureInput {
11
+ readonly hadWork: boolean;
12
+ readonly cycleFailed: boolean;
13
+ readonly threshold?: number;
14
+ }
15
+ /**
16
+ * Update persistent-failure counters after a cycle.
17
+ *
18
+ * Idle cycles (no work) neither increment nor reset. Successful cycles reset.
19
+ */
20
+ export declare function advancePersistentFailureState(state: PersistentFailureState, input: CycleFailureInput): PersistentFailureState;
21
+ export declare function acknowledgePersistentAlert(state: PersistentFailureState): PersistentFailureState;
22
+ export declare function enrichmentHalted(state: PersistentFailureState): boolean;
23
+ /** Split a batch in half for context-window recovery (PRD-016c AC-2). */
24
+ export declare function splitBatch<T>(items: readonly T[]): [T[], T[]];
25
+ //# sourceMappingURL=failure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure.d.ts","sourceRoot":"","sources":["../../src/enricher/failure.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,sBAAsB;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,4BAA4B,IAAI,sBAAsB,CAErE;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,sBAAsB,EAC7B,KAAK,EAAE,iBAAiB,GACvB,sBAAsB,CAaxB;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,sBAAsB,GAAG,sBAAsB,CAOhG;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAEvE;AAED,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAI7D"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Enricher failure ladder + persistent alert state (PRD-016c).
3
+ */
4
+ import { DEFAULT_PERSISTENT_FAILURE_THRESHOLD } from "./config.js";
5
+ export function createPersistentFailureState() {
6
+ return { consecutiveFailures: 0, alertRaised: false, acknowledged: false };
7
+ }
8
+ /**
9
+ * Update persistent-failure counters after a cycle.
10
+ *
11
+ * Idle cycles (no work) neither increment nor reset. Successful cycles reset.
12
+ */
13
+ export function advancePersistentFailureState(state, input) {
14
+ const threshold = input.threshold ?? DEFAULT_PERSISTENT_FAILURE_THRESHOLD;
15
+ if (!input.hadWork)
16
+ return state;
17
+ if (!input.cycleFailed) {
18
+ return { ...state, consecutiveFailures: 0 };
19
+ }
20
+ const consecutiveFailures = state.consecutiveFailures + 1;
21
+ const alertRaised = consecutiveFailures >= threshold;
22
+ return {
23
+ consecutiveFailures,
24
+ alertRaised,
25
+ acknowledged: alertRaised ? false : state.acknowledged,
26
+ };
27
+ }
28
+ export function acknowledgePersistentAlert(state) {
29
+ return {
30
+ ...state,
31
+ alertRaised: false,
32
+ acknowledged: true,
33
+ consecutiveFailures: 0,
34
+ };
35
+ }
36
+ export function enrichmentHalted(state) {
37
+ return state.alertRaised && !state.acknowledged;
38
+ }
39
+ /** Split a batch in half for context-window recovery (PRD-016c AC-2). */
40
+ export function splitBatch(items) {
41
+ if (items.length <= 1)
42
+ return [[...items], []];
43
+ const mid = Math.ceil(items.length / 2);
44
+ return [items.slice(0, mid), items.slice(mid)];
45
+ }
46
+ //# sourceMappingURL=failure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure.js","sourceRoot":"","sources":["../../src/enricher/failure.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oCAAoC,EAAE,MAAM,aAAa,CAAC;AAQnE,MAAM,UAAU,4BAA4B;IAC1C,OAAO,EAAE,mBAAmB,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AAC7E,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAA6B,EAC7B,KAAwB;IAExB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,oCAAoC,CAAC;IAC1E,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,EAAE,GAAG,KAAK,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,mBAAmB,IAAI,SAAS,CAAC;IACrD,OAAO;QACL,mBAAmB;QACnB,WAAW;QACX,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY;KACvD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAA6B;IACtE,OAAO;QACL,GAAG,KAAK;QACR,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,IAAI;QAClB,mBAAmB,EAAE,CAAC;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAA6B;IAC5D,OAAO,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAClD,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,UAAU,CAAI,KAAmB;IAC/C,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Enricher steady-state loop (PRD-016).
3
+ *
4
+ * Export surface for daemon boot integration. The orchestrator wires
5
+ * `createEnricherLoop` alongside registration, projection, and health.
6
+ */
7
+ export { DEFAULT_ENRICHER_BATCH_SIZE, DEFAULT_ENRICHER_POLL_INTERVAL_MS, DEFAULT_PERSISTENT_FAILURE_THRESHOLD, DEFAULT_REDESCRIBE_THRESHOLD, DEFAULT_WATCHER_DEBOUNCE_MS, ENRICHER_INPUT_USD_PER_TOKEN, ENRICHER_OUTPUT_USD_PER_TOKEN, resolveEnricherConfig, type EnricherConfig, } from "./config.js";
8
+ export { tokenizeSource, tokenMultiset } from "./tokenize.js";
9
+ export { multisetJaccard, contentJaccardSimilarity } from "./jaccard.js";
10
+ export { applyCosmeticInheritance, buildCosmeticInheritancePatch, classifyMeaningfulChange, inheritedFromMarker, type CosmeticInheritancePatch, type MeaningfulChangeInput, type MeaningfulChangeVerdict, } from "./meaningful-change.js";
11
+ export { buildPendingWorkSql, selectPendingWorkInMemory, type PendingWorkRow } from "./pending-query.js";
12
+ export { buildUpdateVersionSql } from "./sql-update.js";
13
+ export { EnricherInMemoryStore, type EnricherStore, type EnricherWorkItem } from "./store.js";
14
+ export { clampUtf8Bytes, computeEnricherBatchMaxTokens, describeFilesBatch, DescribeTruncatedError, embeddingText, ENRICHER_OUTPUT_TOKEN_HEADROOM, ENRICHER_OUTPUT_TOKENS_PER_FILE, isContextWindowError, MAX_DESCRIBE_FILE_BYTES, MAX_DESCRIPTION_CHARS, MAX_TITLE_CHARS, parseDescribeResponse, type DescribeBatchResult, type DescribeFileInput, } from "./describe.js";
15
+ export { createPriorContentCache, DEFAULT_PRIOR_CONTENT_CACHE_MAX, type PriorContentCache } from "./content-cache.js";
16
+ export { acknowledgePersistentAlert, acknowledgePersistentAlert as acknowledgeEnricherAlert, advancePersistentFailureState, createPersistentFailureState, createPersistentFailureState as createEnricherFailureState, enrichmentHalted, enrichmentHalted as isEnrichmentHalted, splitBatch, type PersistentFailureState, } from "./failure.js";
17
+ export { consoleCycleLogSink, emptyCycleStats, estimateCostUsd, mergeCycleStats, type EnricherCycleLogSink, type EnricherCycleStats, } from "./observability.js";
18
+ export { runEnricherCycle, type ContentReader, type EnricherCycleDeps, type EnricherCycleResult, } from "./cycle.js";
19
+ export { createEnricherLoop, type EnricherLoop, type EnricherLoopOptions } from "./loop.js";
20
+ /** Watcher intake debounce re-export for integrators (PRD-016a AC-2; owned by PRD-006). */
21
+ export { DEFAULT_DEBOUNCE_MS as WATCHER_INTAKE_DEBOUNCE_MS } from "../registration/fs-watch.js";
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enricher/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,oCAAoC,EACpC,4BAA4B,EAC5B,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,qBAAqB,EACrB,KAAK,cAAc,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAEzE,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9F,OAAO,EACL,cAAc,EACd,6BAA6B,EAC7B,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,8BAA8B,EAC9B,+BAA+B,EAC/B,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEtH,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,IAAI,wBAAwB,EACtD,6BAA6B,EAC7B,4BAA4B,EAC5B,4BAA4B,IAAI,0BAA0B,EAC1D,gBAAgB,EAChB,gBAAgB,IAAI,kBAAkB,EACtC,UAAU,EACV,KAAK,sBAAsB,GAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAE5F,2FAA2F;AAC3F,OAAO,EAAE,mBAAmB,IAAI,0BAA0B,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Enricher steady-state loop (PRD-016).
3
+ *
4
+ * Export surface for daemon boot integration. The orchestrator wires
5
+ * `createEnricherLoop` alongside registration, projection, and health.
6
+ */
7
+ export { DEFAULT_ENRICHER_BATCH_SIZE, DEFAULT_ENRICHER_POLL_INTERVAL_MS, DEFAULT_PERSISTENT_FAILURE_THRESHOLD, DEFAULT_REDESCRIBE_THRESHOLD, DEFAULT_WATCHER_DEBOUNCE_MS, ENRICHER_INPUT_USD_PER_TOKEN, ENRICHER_OUTPUT_USD_PER_TOKEN, resolveEnricherConfig, } from "./config.js";
8
+ export { tokenizeSource, tokenMultiset } from "./tokenize.js";
9
+ export { multisetJaccard, contentJaccardSimilarity } from "./jaccard.js";
10
+ export { applyCosmeticInheritance, buildCosmeticInheritancePatch, classifyMeaningfulChange, inheritedFromMarker, } from "./meaningful-change.js";
11
+ export { buildPendingWorkSql, selectPendingWorkInMemory } from "./pending-query.js";
12
+ export { buildUpdateVersionSql } from "./sql-update.js";
13
+ export { EnricherInMemoryStore } from "./store.js";
14
+ export { clampUtf8Bytes, computeEnricherBatchMaxTokens, describeFilesBatch, DescribeTruncatedError, embeddingText, ENRICHER_OUTPUT_TOKEN_HEADROOM, ENRICHER_OUTPUT_TOKENS_PER_FILE, isContextWindowError, MAX_DESCRIBE_FILE_BYTES, MAX_DESCRIPTION_CHARS, MAX_TITLE_CHARS, parseDescribeResponse, } from "./describe.js";
15
+ export { createPriorContentCache, DEFAULT_PRIOR_CONTENT_CACHE_MAX } from "./content-cache.js";
16
+ export { acknowledgePersistentAlert, acknowledgePersistentAlert as acknowledgeEnricherAlert, advancePersistentFailureState, createPersistentFailureState, createPersistentFailureState as createEnricherFailureState, enrichmentHalted, enrichmentHalted as isEnrichmentHalted, splitBatch, } from "./failure.js";
17
+ export { consoleCycleLogSink, emptyCycleStats, estimateCostUsd, mergeCycleStats, } from "./observability.js";
18
+ export { runEnricherCycle, } from "./cycle.js";
19
+ export { createEnricherLoop } from "./loop.js";
20
+ /** Watcher intake debounce re-export for integrators (PRD-016a AC-2; owned by PRD-006). */
21
+ export { DEFAULT_DEBOUNCE_MS as WATCHER_INTAKE_DEBOUNCE_MS } from "../registration/fs-watch.js";
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enricher/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,oCAAoC,EACpC,4BAA4B,EAC5B,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,qBAAqB,GAEtB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAEzE,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,wBAAwB,EACxB,mBAAmB,GAIpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAuB,MAAM,oBAAoB,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAA6C,MAAM,YAAY,CAAC;AAE9F,OAAO,EACL,cAAc,EACd,6BAA6B,EAC7B,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,8BAA8B,EAC9B,+BAA+B,EAC/B,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,GAGtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,uBAAuB,EAAE,+BAA+B,EAA0B,MAAM,oBAAoB,CAAC;AAEtH,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,IAAI,wBAAwB,EACtD,6BAA6B,EAC7B,4BAA4B,EAC5B,4BAA4B,IAAI,0BAA0B,EAC1D,gBAAgB,EAChB,gBAAgB,IAAI,kBAAkB,EACtC,UAAU,GAEX,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,eAAe,GAGhB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,GAIjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAA+C,MAAM,WAAW,CAAC;AAE5F,2FAA2F;AAC3F,OAAO,EAAE,mBAAmB,IAAI,0BAA0B,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Multiset Jaccard similarity for the meaningful-change heuristic (PRD-016a).
3
+ */
4
+ /**
5
+ * Multiset Jaccard: sum(min(a_i, b_i)) / sum(max(a_i, b_i)) over all token keys.
6
+ * Returns 1 for identical multisets, 0 when disjoint.
7
+ */
8
+ export declare function multisetJaccard(a: readonly string[], b: readonly string[]): number;
9
+ /** Compare two source bodies directly. */
10
+ export declare function contentJaccardSimilarity(prevContent: string, nextContent: string): number;
11
+ //# sourceMappingURL=jaccard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jaccard.d.ts","sourceRoot":"","sources":["../../src/enricher/jaccard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAclF;AAED,0CAA0C;AAC1C,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEzF"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Multiset Jaccard similarity for the meaningful-change heuristic (PRD-016a).
3
+ */
4
+ import { tokenMultiset, tokenizeSource } from "./tokenize.js";
5
+ /**
6
+ * Multiset Jaccard: sum(min(a_i, b_i)) / sum(max(a_i, b_i)) over all token keys.
7
+ * Returns 1 for identical multisets, 0 when disjoint.
8
+ */
9
+ export function multisetJaccard(a, b) {
10
+ const ma = tokenMultiset(a);
11
+ const mb = tokenMultiset(b);
12
+ const keys = new Set([...ma.keys(), ...mb.keys()]);
13
+ let intersection = 0;
14
+ let union = 0;
15
+ for (const key of keys) {
16
+ const ca = ma.get(key) ?? 0;
17
+ const cb = mb.get(key) ?? 0;
18
+ intersection += Math.min(ca, cb);
19
+ union += Math.max(ca, cb);
20
+ }
21
+ if (union === 0)
22
+ return 1;
23
+ return intersection / union;
24
+ }
25
+ /** Compare two source bodies directly. */
26
+ export function contentJaccardSimilarity(prevContent, nextContent) {
27
+ return multisetJaccard(tokenizeSource(prevContent), tokenizeSource(nextContent));
28
+ }
29
+ //# sourceMappingURL=jaccard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jaccard.js","sourceRoot":"","sources":["../../src/enricher/jaccard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE9D;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,CAAoB,EAAE,CAAoB;IACxE,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3D,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACjC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1B,OAAO,YAAY,GAAG,KAAK,CAAC;AAC9B,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,wBAAwB,CAAC,WAAmB,EAAE,WAAmB;IAC/E,OAAO,eAAe,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;AACnF,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Enricher poll loop (PRD-016a): flat 30s cadence with overlap guard.
3
+ */
4
+ import { type Timer } from "../poll-loop.js";
5
+ import { type PersistentFailureState } from "./failure.js";
6
+ import { type EnricherCycleDeps } from "./cycle.js";
7
+ export interface EnricherLoopOptions {
8
+ readonly deps: EnricherCycleDeps;
9
+ readonly pollIntervalMs?: number;
10
+ readonly timer?: Timer;
11
+ readonly onError?: (err: unknown) => void;
12
+ }
13
+ export interface EnricherLoop {
14
+ start(): void;
15
+ stop(): void;
16
+ runOnce(): Promise<boolean>;
17
+ getFailureState(): PersistentFailureState;
18
+ acknowledgeAlert(): void;
19
+ }
20
+ /** Build the background enricher poll loop (PRD-016 / PRD-002b host seam). */
21
+ export declare function createEnricherLoop(opts: EnricherLoopOptions): EnricherLoop;
22
+ //# sourceMappingURL=loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/enricher/loop.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAY,KAAK,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAA4D,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACrH,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,eAAe,IAAI,sBAAsB,CAAC;IAC1C,gBAAgB,IAAI,IAAI,CAAC;CAC1B;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,YAAY,CA0B1E"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Enricher poll loop (PRD-016a): flat 30s cadence with overlap guard.
3
+ */
4
+ import { PollLoop } from "../poll-loop.js";
5
+ import { DEFAULT_ENRICHER_POLL_INTERVAL_MS } from "./config.js";
6
+ import { acknowledgePersistentAlert, createPersistentFailureState } from "./failure.js";
7
+ import { runEnricherCycle } from "./cycle.js";
8
+ /** Build the background enricher poll loop (PRD-016 / PRD-002b host seam). */
9
+ export function createEnricherLoop(opts) {
10
+ const pollMs = opts.pollIntervalMs ?? opts.deps.config?.pollIntervalMs ?? DEFAULT_ENRICHER_POLL_INTERVAL_MS;
11
+ let failureState = createPersistentFailureState();
12
+ const loop = new PollLoop({
13
+ floorMs: pollMs,
14
+ ceilingMs: pollMs,
15
+ backoffFactor: 1,
16
+ timer: opts.timer,
17
+ onError: opts.onError ?? (() => { }),
18
+ tick: async () => {
19
+ const result = await runEnricherCycle(opts.deps, failureState);
20
+ failureState = result.failureState;
21
+ return result.stats.filesDescribed > 0 || result.stats.filesInherited > 0 || result.stats.filesSkippedDeleted > 0;
22
+ },
23
+ });
24
+ return {
25
+ start: () => loop.start(),
26
+ stop: () => loop.stop(),
27
+ runOnce: () => loop.runOnce(),
28
+ getFailureState: () => ({ ...failureState }),
29
+ acknowledgeAlert: () => {
30
+ failureState = acknowledgePersistentAlert(failureState);
31
+ },
32
+ };
33
+ }
34
+ //# sourceMappingURL=loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/enricher/loop.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAc,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,4BAA4B,EAA+B,MAAM,cAAc,CAAC;AACrH,OAAO,EAAE,gBAAgB,EAA0B,MAAM,YAAY,CAAC;AAiBtE,8EAA8E;AAC9E,MAAM,UAAU,kBAAkB,CAAC,IAAyB;IAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,IAAI,iCAAiC,CAAC;IAC5G,IAAI,YAAY,GAA2B,4BAA4B,EAAE,CAAC;IAE1E,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC;QACxB,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,CAAC;QAChB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;QACnC,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC/D,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;YACnC,OAAO,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC;QACpH,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE;QACzB,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;QACvB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;QAC7B,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,CAAC;QAC5C,gBAAgB,EAAE,GAAG,EAAE;YACrB,YAAY,GAAG,0BAA0B,CAAC,YAAY,CAAC,CAAC;QAC1D,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The meaningful-change heuristic (PRD-016a / AC-3, AC-4).
3
+ */
4
+ import type { HiveGraphVersionRow } from "../hive-graph/model.js";
5
+ export type MeaningfulChangeVerdict = "cosmetic" | "meaningful";
6
+ export interface MeaningfulChangeInput {
7
+ readonly newContent: string;
8
+ readonly priorContent: string;
9
+ readonly priorDescribed: HiveGraphVersionRow;
10
+ readonly threshold?: number;
11
+ }
12
+ export interface CosmeticInheritancePatch {
13
+ readonly title: string;
14
+ readonly description: string;
15
+ readonly concepts: string;
16
+ readonly embedding: number[] | null;
17
+ readonly describeModel: string;
18
+ readonly describeStatus: "described";
19
+ readonly describedAt: string;
20
+ }
21
+ export declare function inheritedFromMarker(prevContentHash: string): string;
22
+ /** Classify a content delta as cosmetic (inherit) or meaningful (queue). */
23
+ export declare function classifyMeaningfulChange(input: MeaningfulChangeInput): MeaningfulChangeVerdict;
24
+ /** Build the row patch for a cosmetic inheritance (no LLM call). */
25
+ export declare function buildCosmeticInheritancePatch(priorDescribed: HiveGraphVersionRow, describedAt: string): CosmeticInheritancePatch;
26
+ /** Apply a cosmetic inheritance patch onto a pending version row. */
27
+ export declare function applyCosmeticInheritance(row: HiveGraphVersionRow, priorDescribed: HiveGraphVersionRow, describedAt: string): HiveGraphVersionRow;
28
+ //# sourceMappingURL=meaningful-change.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meaningful-change.d.ts","sourceRoot":"","sources":["../../src/enricher/meaningful-change.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,YAAY,CAAC;AAEhE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,mBAAmB,CAAC;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,4EAA4E;AAC5E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,qBAAqB,GAAG,uBAAuB,CAI9F;AAED,oEAAoE;AACpE,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,mBAAmB,EACnC,WAAW,EAAE,MAAM,GAClB,wBAAwB,CAU1B;AAED,qEAAqE;AACrE,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,mBAAmB,EACxB,cAAc,EAAE,mBAAmB,EACnC,WAAW,EAAE,MAAM,GAClB,mBAAmB,CAYrB"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The meaningful-change heuristic (PRD-016a / AC-3, AC-4).
3
+ */
4
+ import { DEFAULT_REDESCRIBE_THRESHOLD } from "./config.js";
5
+ import { contentJaccardSimilarity } from "./jaccard.js";
6
+ export function inheritedFromMarker(prevContentHash) {
7
+ return `inherited-from:${prevContentHash}`;
8
+ }
9
+ /** Classify a content delta as cosmetic (inherit) or meaningful (queue). */
10
+ export function classifyMeaningfulChange(input) {
11
+ const threshold = input.threshold ?? DEFAULT_REDESCRIBE_THRESHOLD;
12
+ const similarity = contentJaccardSimilarity(input.priorContent, input.newContent);
13
+ return similarity >= threshold ? "cosmetic" : "meaningful";
14
+ }
15
+ /** Build the row patch for a cosmetic inheritance (no LLM call). */
16
+ export function buildCosmeticInheritancePatch(priorDescribed, describedAt) {
17
+ return {
18
+ title: priorDescribed.title,
19
+ description: priorDescribed.description,
20
+ concepts: priorDescribed.concepts,
21
+ embedding: priorDescribed.embedding,
22
+ describeModel: inheritedFromMarker(priorDescribed.contentHash),
23
+ describeStatus: "described",
24
+ describedAt,
25
+ };
26
+ }
27
+ /** Apply a cosmetic inheritance patch onto a pending version row. */
28
+ export function applyCosmeticInheritance(row, priorDescribed, describedAt) {
29
+ const patch = buildCosmeticInheritancePatch(priorDescribed, describedAt);
30
+ return {
31
+ ...row,
32
+ title: patch.title,
33
+ description: patch.description,
34
+ concepts: patch.concepts,
35
+ embedding: patch.embedding,
36
+ describeModel: patch.describeModel,
37
+ describeStatus: patch.describeStatus,
38
+ describedAt: patch.describedAt,
39
+ };
40
+ }
41
+ //# sourceMappingURL=meaningful-change.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meaningful-change.js","sourceRoot":"","sources":["../../src/enricher/meaningful-change.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAqBxD,MAAM,UAAU,mBAAmB,CAAC,eAAuB;IACzD,OAAO,kBAAkB,eAAe,EAAE,CAAC;AAC7C,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,wBAAwB,CAAC,KAA4B;IACnE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,4BAA4B,CAAC;IAClE,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAClF,OAAO,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;AAC7D,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,6BAA6B,CAC3C,cAAmC,EACnC,WAAmB;IAEnB,OAAO;QACL,KAAK,EAAE,cAAc,CAAC,KAAK;QAC3B,WAAW,EAAE,cAAc,CAAC,WAAW;QACvC,QAAQ,EAAE,cAAc,CAAC,QAAQ;QACjC,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,aAAa,EAAE,mBAAmB,CAAC,cAAc,CAAC,WAAW,CAAC;QAC9D,cAAc,EAAE,WAAW;QAC3B,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,wBAAwB,CACtC,GAAwB,EACxB,cAAmC,EACnC,WAAmB;IAEnB,MAAM,KAAK,GAAG,6BAA6B,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACzE,OAAO;QACL,GAAG,GAAG;QACN,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Per-cycle observability (PRD-016c AC-5).
3
+ */
4
+ export interface EnricherCycleStats {
5
+ filesDescribed: number;
6
+ filesInherited: number;
7
+ filesFailed: number;
8
+ filesSkippedDeleted: number;
9
+ inputTokens: number;
10
+ outputTokens: number;
11
+ estimatedUsd: number;
12
+ queueDepth: number;
13
+ }
14
+ export declare function emptyCycleStats(queueDepth?: number): EnricherCycleStats;
15
+ export declare function estimateCostUsd(inputTokens: number, outputTokens: number): number;
16
+ export declare function mergeCycleStats(base: EnricherCycleStats, delta: Partial<EnricherCycleStats>): EnricherCycleStats;
17
+ export interface EnricherCycleLogSink {
18
+ logCycle(stats: EnricherCycleStats): void;
19
+ }
20
+ /** Default sink: structured console line (fail-soft). */
21
+ export declare const consoleCycleLogSink: EnricherCycleLogSink;
22
+ //# sourceMappingURL=observability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../src/enricher/observability.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,UAAU,SAAI,GAAG,kBAAkB,CAWlE;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAahH;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC3C;AAED,yDAAyD;AACzD,eAAO,MAAM,mBAAmB,EAAE,oBAoBjC,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Per-cycle observability (PRD-016c AC-5).
3
+ */
4
+ import { ENRICHER_INPUT_USD_PER_TOKEN, ENRICHER_OUTPUT_USD_PER_TOKEN } from "./config.js";
5
+ export function emptyCycleStats(queueDepth = 0) {
6
+ return {
7
+ filesDescribed: 0,
8
+ filesInherited: 0,
9
+ filesFailed: 0,
10
+ filesSkippedDeleted: 0,
11
+ inputTokens: 0,
12
+ outputTokens: 0,
13
+ estimatedUsd: 0,
14
+ queueDepth,
15
+ };
16
+ }
17
+ export function estimateCostUsd(inputTokens, outputTokens) {
18
+ return inputTokens * ENRICHER_INPUT_USD_PER_TOKEN + outputTokens * ENRICHER_OUTPUT_USD_PER_TOKEN;
19
+ }
20
+ export function mergeCycleStats(base, delta) {
21
+ const inputTokens = base.inputTokens + (delta.inputTokens ?? 0);
22
+ const outputTokens = base.outputTokens + (delta.outputTokens ?? 0);
23
+ return {
24
+ filesDescribed: base.filesDescribed + (delta.filesDescribed ?? 0),
25
+ filesInherited: base.filesInherited + (delta.filesInherited ?? 0),
26
+ filesFailed: base.filesFailed + (delta.filesFailed ?? 0),
27
+ filesSkippedDeleted: base.filesSkippedDeleted + (delta.filesSkippedDeleted ?? 0),
28
+ inputTokens,
29
+ outputTokens,
30
+ estimatedUsd: estimateCostUsd(inputTokens, outputTokens),
31
+ queueDepth: delta.queueDepth ?? base.queueDepth,
32
+ };
33
+ }
34
+ /** Default sink: structured console line (fail-soft). */
35
+ export const consoleCycleLogSink = {
36
+ logCycle(stats) {
37
+ try {
38
+ console.info(JSON.stringify({
39
+ component: "enricher",
40
+ filesDescribed: stats.filesDescribed,
41
+ filesInherited: stats.filesInherited,
42
+ filesFailed: stats.filesFailed,
43
+ filesSkippedDeleted: stats.filesSkippedDeleted,
44
+ inputTokens: stats.inputTokens,
45
+ outputTokens: stats.outputTokens,
46
+ estimatedUsd: stats.estimatedUsd,
47
+ queueDepth: stats.queueDepth,
48
+ }));
49
+ }
50
+ catch {
51
+ // fail-soft
52
+ }
53
+ },
54
+ };
55
+ //# sourceMappingURL=observability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.js","sourceRoot":"","sources":["../../src/enricher/observability.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAa1F,MAAM,UAAU,eAAe,CAAC,UAAU,GAAG,CAAC;IAC5C,OAAO;QACL,cAAc,EAAE,CAAC;QACjB,cAAc,EAAE,CAAC;QACjB,WAAW,EAAE,CAAC;QACd,mBAAmB,EAAE,CAAC;QACtB,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,CAAC;QACf,UAAU;KACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,YAAoB;IACvE,OAAO,WAAW,GAAG,4BAA4B,GAAG,YAAY,GAAG,6BAA6B,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAwB,EAAE,KAAkC;IAC1F,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;IACnE,OAAO;QACL,cAAc,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC;QACjE,cAAc,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC;QACjE,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;QACxD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,GAAG,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC;QAChF,WAAW;QACX,YAAY;QACZ,YAAY,EAAE,eAAe,CAAC,WAAW,EAAE,YAAY,CAAC;QACxD,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;KAChD,CAAC;AACJ,CAAC;AAMD,yDAAyD;AACzD,MAAM,CAAC,MAAM,mBAAmB,GAAyB;IACvD,QAAQ,CAAC,KAAK;QACZ,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CACV,IAAI,CAAC,SAAS,CAAC;gBACb,SAAS,EAAE,UAAU;gBACrB,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;gBAC9C,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { Tenancy } from "../hive-graph/model.js";
2
+ export interface PendingWorkRow {
3
+ readonly nectar: string;
4
+ readonly seq: number;
5
+ }
6
+ export interface PendingWorkSourceRow {
7
+ readonly nectar: string;
8
+ readonly seq: number;
9
+ readonly describeStatus: string;
10
+ readonly observedAt: string;
11
+ readonly orgId: string;
12
+ readonly workspaceId: string;
13
+ readonly projectId: string;
14
+ }
15
+ /**
16
+ * Build the enricher's pending-work query (PRD-018g / NEC-017): the LATEST row
17
+ * per nectar (`MAX(seq)`), returned only when that latest row's status is
18
+ * `pending`/`failed`.
19
+ *
20
+ * This "latest-is-pending" shape (rather than "MAX(seq) among pending rows") is
21
+ * what makes the version-bump append durable write terminate: once the enricher
22
+ * appends a `described` row at `seq+1`, that becomes the latest row for the
23
+ * nectar and the nectar drops out of this selection, instead of looping forever
24
+ * on the still-`pending` lower-seq row an append leaves behind. Values are
25
+ * `sLiteral`-guarded per codebase convention.
26
+ */
27
+ export declare function buildPendingWorkSql(tenancy: Tenancy, batchSize: number): string;
28
+ /**
29
+ * Pure in-memory equivalent of the pending-work query for tests and the memory
30
+ * adapter (PRD-018g / NEC-017): the LATEST row per nectar, selected only when
31
+ * that latest row is `pending`/`failed`. Mirrors {@link buildPendingWorkSql}'s
32
+ * latest-is-pending shape so the version-bump append terminates.
33
+ */
34
+ export declare function selectPendingWorkInMemory(rows: readonly PendingWorkSourceRow[], tenancy: Tenancy, batchSize: number): PendingWorkRow[];
35
+ //# sourceMappingURL=pending-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-query.d.ts","sourceRoot":"","sources":["../../src/enricher/pending-query.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAkB/E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,SAAS,oBAAoB,EAAE,EACrC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,GAChB,cAAc,EAAE,CAgBlB"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Pending-work SQL builder (PRD-016a). Values are sqlStr-guarded per codebase convention.
3
+ */
4
+ import { sLiteral } from "../hive-graph/sql-guards.js";
5
+ /**
6
+ * Build the enricher's pending-work query (PRD-018g / NEC-017): the LATEST row
7
+ * per nectar (`MAX(seq)`), returned only when that latest row's status is
8
+ * `pending`/`failed`.
9
+ *
10
+ * This "latest-is-pending" shape (rather than "MAX(seq) among pending rows") is
11
+ * what makes the version-bump append durable write terminate: once the enricher
12
+ * appends a `described` row at `seq+1`, that becomes the latest row for the
13
+ * nectar and the nectar drops out of this selection, instead of looping forever
14
+ * on the still-`pending` lower-seq row an append leaves behind. Values are
15
+ * `sLiteral`-guarded per codebase convention.
16
+ */
17
+ export function buildPendingWorkSql(tenancy, batchSize) {
18
+ const org = sLiteral(tenancy.orgId);
19
+ const workspace = sLiteral(tenancy.workspaceId);
20
+ const project = sLiteral(tenancy.projectId);
21
+ const limit = Math.max(1, Math.floor(batchSize));
22
+ const tenancySql = `org_id = ${org} AND workspace_id = ${workspace} AND project_id = ${project}`;
23
+ const latest = `SELECT nectar, MAX(seq) AS max_seq FROM hive_graph_versions ` +
24
+ `WHERE ${tenancySql} GROUP BY nectar`;
25
+ return (`SELECT v.nectar AS nectar, v.seq AS seq ` +
26
+ `FROM hive_graph_versions v ` +
27
+ `INNER JOIN (${latest}) latest ON v.nectar = latest.nectar AND v.seq = latest.max_seq ` +
28
+ `WHERE v.describe_status IN ('pending', 'failed') AND ${tenancySql} ` +
29
+ `ORDER BY v.observed_at ` +
30
+ `LIMIT ${limit}`);
31
+ }
32
+ /**
33
+ * Pure in-memory equivalent of the pending-work query for tests and the memory
34
+ * adapter (PRD-018g / NEC-017): the LATEST row per nectar, selected only when
35
+ * that latest row is `pending`/`failed`. Mirrors {@link buildPendingWorkSql}'s
36
+ * latest-is-pending shape so the version-bump append terminates.
37
+ */
38
+ export function selectPendingWorkInMemory(rows, tenancy, batchSize) {
39
+ const latestByNectar = new Map();
40
+ for (const row of rows) {
41
+ if (row.orgId !== tenancy.orgId || row.workspaceId !== tenancy.workspaceId || row.projectId !== tenancy.projectId) {
42
+ continue;
43
+ }
44
+ const existing = latestByNectar.get(row.nectar);
45
+ if (existing === undefined || row.seq > existing.seq)
46
+ latestByNectar.set(row.nectar, row);
47
+ }
48
+ return [...latestByNectar.values()]
49
+ .filter((r) => r.describeStatus === "pending" || r.describeStatus === "failed")
50
+ .sort((a, b) => a.observedAt.localeCompare(b.observedAt))
51
+ .slice(0, Math.max(1, batchSize))
52
+ .map((r) => ({ nectar: r.nectar, seq: r.seq }));
53
+ }
54
+ //# sourceMappingURL=pending-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-query.js","sourceRoot":"","sources":["../../src/enricher/pending-query.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAkBvD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB,EAAE,SAAiB;IACrE,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACjD,MAAM,UAAU,GACd,YAAY,GAAG,uBAAuB,SAAS,qBAAqB,OAAO,EAAE,CAAC;IAChF,MAAM,MAAM,GACV,8DAA8D;QAC9D,SAAS,UAAU,kBAAkB,CAAC;IACxC,OAAO,CACL,0CAA0C;QAC1C,6BAA6B;QAC7B,eAAe,MAAM,kEAAkE;QACvF,wDAAwD,UAAU,GAAG;QACrE,yBAAyB;QACzB,SAAS,KAAK,EAAE,CACjB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAqC,EACrC,OAAgB,EAChB,SAAiB;IAEjB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAgC,CAAC;IAE/D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;YAClH,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG;YAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,CAAC,cAAc,KAAK,QAAQ,CAAC;SAC9E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;SACxD,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * SQL UPDATE builder for enricher row patches (PRD-016).
3
+ */
4
+ import type { HiveGraphVersionRow } from "../hive-graph/model.js";
5
+ /** Build an in-place UPDATE for one version row keyed by nectar + seq. */
6
+ export declare function buildUpdateVersionSql(row: HiveGraphVersionRow): string;
7
+ //# sourceMappingURL=sql-update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-update.d.ts","sourceRoot":"","sources":["../../src/enricher/sql-update.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAMlE,0EAA0E;AAC1E,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAmBtE"}
@@ -0,0 +1,22 @@
1
+ import { eLiteral, sLiteral, sqlFloat4Array, sqlIdent, sqlNum } from "../hive-graph/sql-guards.js";
2
+ import { HIVE_GRAPH_VERSIONS_TABLE } from "../hive-graph/schema.js";
3
+ const TABLE = sqlIdent(HIVE_GRAPH_VERSIONS_TABLE.name);
4
+ /** Build an in-place UPDATE for one version row keyed by nectar + seq. */
5
+ export function buildUpdateVersionSql(row) {
6
+ const embedding = row.embedding !== null ? sqlFloat4Array(row.embedding) : "NULL";
7
+ const confidence = row.confidence !== null ? sqlNum(row.confidence) : "NULL";
8
+ const fingerprint = row.fingerprint !== null ? sLiteral(row.fingerprint) : "NULL";
9
+ return (`UPDATE "${TABLE}" SET ` +
10
+ `title = ${eLiteral(row.title)}, ` +
11
+ `description = ${eLiteral(row.description)}, ` +
12
+ `concepts = ${eLiteral(row.concepts)}, ` +
13
+ `embedding = ${embedding}, ` +
14
+ `confidence = ${confidence}, ` +
15
+ `fingerprint = ${fingerprint}, ` +
16
+ `described_at = ${sLiteral(row.describedAt)}, ` +
17
+ `describe_model = ${sLiteral(row.describeModel)}, ` +
18
+ `describe_status = ${sLiteral(row.describeStatus)}, ` +
19
+ `last_update_date = ${sLiteral(row.lastUpdateDate)} ` +
20
+ `WHERE nectar = ${sLiteral(row.nectar)} AND seq = ${sqlNum(row.seq)}`);
21
+ }
22
+ //# sourceMappingURL=sql-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-update.js","sourceRoot":"","sources":["../../src/enricher/sql-update.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACnG,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,KAAK,GAAG,QAAQ,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;AAEvD,0EAA0E;AAC1E,MAAM,UAAU,qBAAqB,CAAC,GAAwB;IAC5D,MAAM,SAAS,GACb,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAClE,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7E,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAClF,OAAO,CACL,WAAW,KAAK,QAAQ;QACxB,WAAW,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;QAClC,iBAAiB,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI;QAC9C,cAAc,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;QACxC,eAAe,SAAS,IAAI;QAC5B,gBAAgB,UAAU,IAAI;QAC9B,iBAAiB,WAAW,IAAI;QAChC,kBAAkB,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI;QAC/C,oBAAoB,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI;QACnD,qBAAqB,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI;QACrD,sBAAsB,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG;QACrD,kBAAkB,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CACtE,CAAC;AACJ,CAAC"}