@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,145 @@
1
+ /**
2
+ * Minimal Deep Lake HTTP transport for nectar (PRD-005).
3
+ *
4
+ * Per ADR-0002, nectar is an independent daemon that reaches Deep Lake
5
+ * over the network through its OWN client, never by importing the honeycomb
6
+ * runtime in-process. This module mirrors the shape of honeycomb's
7
+ * `HttpDeepLakeTransport` (`src/daemon/storage/transport.ts`), scoped down to
8
+ * exactly what the two hive-graph tables need: one method that posts a SQL
9
+ * statement to the Deep Lake query endpoint and returns rows, or throws a
10
+ * typed `TransportError`.
11
+ *
12
+ * Node built-ins only (`fetch` is global on Node >=22); no new runtime
13
+ * dependency, matching nectar's zero-runtime-dependency rule (AGENTS.md).
14
+ *
15
+ * The transport is deliberately thin: no retry, no concurrency bounding.
16
+ * Nectar's write volume (one file-registration event at a time, from a
17
+ * single daemon worker loop per `worker.ts`) does not need honeycomb's
18
+ * `Semaphore(5)` + 429/5xx retry client layer that exists to bound a
19
+ * high-concurrency multi-harness workload; a future PRD can add that layer
20
+ * here without changing this transport's contract if nectar's write
21
+ * volume grows to need it.
22
+ */
23
+ /**
24
+ * A typed failure raised by {@link HttpDeepLakeTransport}. `status` carries
25
+ * the HTTP status for query failures (e.g. 404, 500) so heal logic
26
+ * (`deeplake-heal.ts`) can classify the failure message.
27
+ */
28
+ export class TransportError extends Error {
29
+ kind;
30
+ status;
31
+ constructor(kind, message, status) {
32
+ super(message);
33
+ this.name = "TransportError";
34
+ this.kind = kind;
35
+ if (status !== undefined)
36
+ this.status = status;
37
+ }
38
+ }
39
+ /** Header name Deep Lake reads to attribute traffic by client family. */
40
+ export const DEEPLAKE_CLIENT_HEADER = "X-Deeplake-Client";
41
+ /** Header name Deep Lake reads to scope a request to an org partition. */
42
+ export const DEEPLAKE_ORG_HEADER = "X-Activeloop-Org-Id";
43
+ /** Default per-statement timeout when the caller does not override it. */
44
+ export const DEFAULT_TRANSPORT_TIMEOUT_MS = 15_000;
45
+ /**
46
+ * Real HTTP transport against the Deep Lake SQL endpoint. POSTs
47
+ * `{ query: sql }` to `${endpoint}/workspaces/${workspaceId}/tables/query`
48
+ * with a bearer token, the org header, and a client-family header, exactly
49
+ * mirroring honeycomb's `HttpDeepLakeTransport.query` shape. Maps a fetch
50
+ * failure / abort / non-ok response into a typed `TransportError` the heal
51
+ * logic and the store can branch on.
52
+ */
53
+ export class HttpDeepLakeTransport {
54
+ endpoint;
55
+ token;
56
+ orgId;
57
+ workspaceId;
58
+ timeoutMs;
59
+ constructor(config) {
60
+ this.endpoint = config.endpoint.replace(/\/+$/, "");
61
+ this.token = config.token;
62
+ this.orgId = config.orgId;
63
+ this.workspaceId = config.workspaceId;
64
+ this.timeoutMs = config.timeoutMs ?? DEFAULT_TRANSPORT_TIMEOUT_MS;
65
+ }
66
+ /**
67
+ * Run one SQL statement against the configured workspace.
68
+ *
69
+ * Transient failures (HTTP 429 and 5xx, e.g. the backend's intermittent
70
+ * 'failed to get database connection' 500) are retried with bounded
71
+ * exponential backoff plus jitter before the TransportError propagates:
72
+ * a single upstream blip must not abort a minutes-long brood or an
73
+ * enricher cycle. Non-transient failures (4xx other than 429: schema
74
+ * errors, bad SQL, auth) fail fast on the first attempt so heal and
75
+ * fail-soft classification see them unchanged.
76
+ */
77
+ async query(sql) {
78
+ let lastTransient = null;
79
+ for (let attempt = 0; attempt < QUERY_TRANSIENT_MAX_ATTEMPTS; attempt += 1) {
80
+ if (attempt > 0) {
81
+ const backoff = QUERY_TRANSIENT_BASE_BACKOFF_MS * 2 ** (attempt - 1);
82
+ await new Promise((resolve) => setTimeout(resolve, backoff + Math.random() * backoff));
83
+ }
84
+ try {
85
+ return await this.queryOnce(sql);
86
+ }
87
+ catch (err) {
88
+ if (err instanceof TransportError &&
89
+ err.kind === "query" &&
90
+ err.status !== undefined &&
91
+ (err.status === 429 || err.status >= 500)) {
92
+ lastTransient = err;
93
+ continue;
94
+ }
95
+ throw err;
96
+ }
97
+ }
98
+ // lastTransient is always set when the loop exhausts.
99
+ throw lastTransient ?? new TransportError("query", "transient retry loop exhausted without an error");
100
+ }
101
+ async queryOnce(sql) {
102
+ const controller = new AbortController();
103
+ const timer = setTimeout(() => controller.abort(), this.timeoutMs);
104
+ let resp;
105
+ try {
106
+ resp = await fetch(`${this.endpoint}/workspaces/${encodeURIComponent(this.workspaceId)}/tables/query`, {
107
+ method: "POST",
108
+ headers: {
109
+ Authorization: `Bearer ${this.token}`,
110
+ "Content-Type": "application/json",
111
+ [DEEPLAKE_ORG_HEADER]: this.orgId,
112
+ [DEEPLAKE_CLIENT_HEADER]: "nectar",
113
+ },
114
+ signal: controller.signal,
115
+ body: JSON.stringify({ query: sql }),
116
+ });
117
+ }
118
+ catch (e) {
119
+ // AbortError fires when our own timeout aborts the request. Map it to
120
+ // the timeout kind so callers can distinguish it from a dropped socket.
121
+ if (e instanceof Error && e.name === "AbortError") {
122
+ throw new TransportError("timeout", `request aborted after ${this.timeoutMs}ms`);
123
+ }
124
+ const message = e instanceof Error ? e.message : String(e);
125
+ throw new TransportError("connection", message);
126
+ }
127
+ finally {
128
+ clearTimeout(timer);
129
+ }
130
+ if (!resp.ok) {
131
+ const text = await resp.text().catch(() => "");
132
+ throw new TransportError("query", `${resp.status}: ${text.slice(0, 200)}`, resp.status);
133
+ }
134
+ const raw = (await resp.json().catch(() => null));
135
+ if (!raw?.rows || !raw?.columns)
136
+ return [];
137
+ const columns = raw.columns;
138
+ return raw.rows.map((row) => Object.fromEntries(columns.map((col, i) => [col, row[i]])));
139
+ }
140
+ }
141
+ /** Bounded attempts for transient (429/5xx) query failures. */
142
+ export const QUERY_TRANSIENT_MAX_ATTEMPTS = 4;
143
+ /** First-retry backoff; doubles per attempt, with up-to-equal jitter added. */
144
+ export const QUERY_TRANSIENT_BASE_BACKOFF_MS = 500;
145
+ //# sourceMappingURL=deeplake-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deeplake-transport.js","sourceRoot":"","sources":["../../src/hive-graph/deeplake-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAqB;IACzB,MAAM,CAAU;IACzB,YAAY,IAAwB,EAAE,OAAe,EAAE,MAAe;QACpE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACjD,CAAC;CACF;AAKD,yEAAyE;AACzE,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAC1D,0EAA0E;AAC1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AACzD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAgBnD;;;;;;;GAOG;AACH,MAAM,OAAO,qBAAqB;IACf,QAAQ,CAAS;IACjB,KAAK,CAAS;IACd,KAAK,CAAS;IACd,WAAW,CAAS;IACpB,SAAS,CAAS;IAEnC,YAAY,MAA+B;QACzC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,4BAA4B,CAAC;IACpE,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,CAAC,GAAW;QACrB,IAAI,aAAa,GAA0B,IAAI,CAAC;QAChD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,4BAA4B,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;YAC3E,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,+BAA+B,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBACrE,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;YACzF,CAAC;YACD,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IACE,GAAG,YAAY,cAAc;oBAC7B,GAAG,CAAC,IAAI,KAAK,OAAO;oBACpB,GAAG,CAAC,MAAM,KAAK,SAAS;oBACxB,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,EACzC,CAAC;oBACD,aAAa,GAAG,GAAG,CAAC;oBACpB,SAAS;gBACX,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QACD,sDAAsD;QACtD,MAAM,aAAa,IAAI,IAAI,cAAc,CAAC,OAAO,EAAE,iDAAiD,CAAC,CAAC;IACxG,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,GAAW;QACjC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,IAAc,CAAC;QACnB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,eAAe,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE;gBACrG,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;oBACrC,cAAc,EAAE,kBAAkB;oBAClC,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC,KAAK;oBACjC,CAAC,sBAAsB,CAAC,EAAE,QAAQ;iBACnC;gBACD,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,sEAAsE;YACtE,wEAAwE;YACxE,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAClD,MAAM,IAAI,cAAc,CAAC,SAAS,EAAE,yBAAyB,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YACnF,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,IAAI,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/C,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAsD,CAAC;QACvG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO;YAAE,OAAO,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;CACF;AAED,+DAA+D;AAC/D,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Lowercase hex sha256 of the given data. */
2
+ export declare function sha256Hex(data: string | Uint8Array): string;
3
+ //# sourceMappingURL=hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/hive-graph/hash.ts"],"names":[],"mappings":"AAQA,8CAA8C;AAC9C,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAE3D"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Content hashing for the Hive Graph (PRD-005 / PRD-006).
3
+ *
4
+ * `content_hash` is the sha256 of file content at observation, and the composite
5
+ * key part 2 on `hive_graph_versions`. Node built-ins only (`node:crypto`).
6
+ */
7
+ import { createHash } from "node:crypto";
8
+ /** Lowercase hex sha256 of the given data. */
9
+ export function sha256Hex(data) {
10
+ return createHash("sha256").update(data).digest("hex");
11
+ }
12
+ //# sourceMappingURL=hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/hive-graph/hash.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,8CAA8C;AAC9C,MAAM,UAAU,SAAS,CAAC,IAAyB;IACjD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * In-memory HiveGraphStore adapter (PRD-005).
3
+ *
4
+ * A complete, correct implementation of the store seam backed by plain Maps.
5
+ * It is the store the file-registration ladder (PRD-006), brooding (PRD-007),
6
+ * and the search engine (PRD-012) run against in tests and local dev. The Deep
7
+ * Lake adapter (the durable substrate, reached through nectar's own client
8
+ * per ADR-0002) implements the same interface and is a drop-in replacement; no
9
+ * consumer changes when it lands.
10
+ *
11
+ * "latest version" is always MAX(seq) for a nectar. All reads are tenancy-scoped
12
+ * (org+workspace+project); project_id is a plain column predicate here, exactly
13
+ * as the soft-filter contract (PRD-005c) specifies.
14
+ */
15
+ import type { HiveGraphRow, HiveGraphVersionRow, Tenancy } from "./model.js";
16
+ import type { LatestVersion, HiveGraphStore } from "./store.js";
17
+ export declare class InMemoryHiveGraphStore implements HiveGraphStore {
18
+ private readonly identities;
19
+ /** nectar -> version rows in append order (seq ascending). */
20
+ private readonly versions;
21
+ insertIdentity(row: HiveGraphRow): void;
22
+ getIdentity(nectar: string): HiveGraphRow | undefined;
23
+ touchIdentity(nectar: string, lastUpdateDate: string): void;
24
+ appendVersion(row: HiveGraphVersionRow): void;
25
+ nextSeq(nectar: string): number;
26
+ latestVersion(nectar: string): HiveGraphVersionRow | undefined;
27
+ listLatestVersions(tenancy: Tenancy): LatestVersion[];
28
+ listLatestDescribedVersions(tenancy: Tenancy): LatestVersion[];
29
+ /** The highest-seq version whose `describeStatus` is `described`, or undefined. */
30
+ private latestDescribedVersion;
31
+ latestVersionByPath(tenancy: Tenancy, path: string): LatestVersion | undefined;
32
+ latestVersionByHash(tenancy: Tenancy, contentHash: string): LatestVersion | undefined;
33
+ deleteNectar(tenancy: Tenancy, nectar: string): void;
34
+ /** Every identity row in scope, including one with zero version rows (PRD-018d repair sweep). */
35
+ listIdentities(tenancy: Tenancy): HiveGraphRow[];
36
+ /** Every nectar with at least one version row in scope, including one with NO identity row (CodeRabbit PR-18 finding #8 repair sweep). Scoped via the version row's own tenancy columns, since an orphan has no identity to scope against. */
37
+ listVersionNectars(tenancy: Tenancy): string[];
38
+ }
39
+ //# sourceMappingURL=memory-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../src/hive-graph/memory-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE7E,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;IAC9D,8DAA8D;IAC9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4C;IAErE,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;IAOvC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAKrD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAK3D,aAAa,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IAM7C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAQ/B,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAQ9D,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE;IAUrD,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE;IAU9D,mFAAmF;IACnF,OAAO,CAAC,sBAAsB;IAW9B,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAO9E,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAOrF,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQpD,iGAAiG;IACjG,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,EAAE;IAQhD,8OAA8O;IAC9O,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE;CAQ/C"}
@@ -0,0 +1,125 @@
1
+ import { inTenancy } from "./model.js";
2
+ export class InMemoryHiveGraphStore {
3
+ identities = new Map();
4
+ /** nectar -> version rows in append order (seq ascending). */
5
+ versions = new Map();
6
+ insertIdentity(row) {
7
+ if (this.identities.has(row.nectar)) {
8
+ throw new Error(`identity already exists for nectar ${row.nectar}`);
9
+ }
10
+ this.identities.set(row.nectar, { ...row });
11
+ }
12
+ getIdentity(nectar) {
13
+ const row = this.identities.get(nectar);
14
+ return row ? { ...row } : undefined;
15
+ }
16
+ touchIdentity(nectar, lastUpdateDate) {
17
+ const row = this.identities.get(nectar);
18
+ if (row !== undefined)
19
+ row.lastUpdateDate = lastUpdateDate;
20
+ }
21
+ appendVersion(row) {
22
+ const list = this.versions.get(row.nectar) ?? [];
23
+ list.push({ ...row });
24
+ this.versions.set(row.nectar, list);
25
+ }
26
+ nextSeq(nectar) {
27
+ const list = this.versions.get(nectar);
28
+ if (list === undefined || list.length === 0)
29
+ return 0;
30
+ let max = -1;
31
+ for (const v of list)
32
+ if (v.seq > max)
33
+ max = v.seq;
34
+ return max + 1;
35
+ }
36
+ latestVersion(nectar) {
37
+ const list = this.versions.get(nectar);
38
+ if (list === undefined || list.length === 0)
39
+ return undefined;
40
+ let latest = list[0];
41
+ for (const v of list)
42
+ if (v.seq > latest.seq)
43
+ latest = v;
44
+ return { ...latest };
45
+ }
46
+ listLatestVersions(tenancy) {
47
+ const out = [];
48
+ for (const [nectar, identity] of this.identities) {
49
+ if (!inTenancy(identity, tenancy))
50
+ continue;
51
+ const version = this.latestVersion(nectar);
52
+ if (version !== undefined)
53
+ out.push({ identity: { ...identity }, version });
54
+ }
55
+ return out;
56
+ }
57
+ listLatestDescribedVersions(tenancy) {
58
+ const out = [];
59
+ for (const [nectar, identity] of this.identities) {
60
+ if (!inTenancy(identity, tenancy))
61
+ continue;
62
+ const described = this.latestDescribedVersion(nectar);
63
+ if (described !== undefined)
64
+ out.push({ identity: { ...identity }, version: described });
65
+ }
66
+ return out;
67
+ }
68
+ /** The highest-seq version whose `describeStatus` is `described`, or undefined. */
69
+ latestDescribedVersion(nectar) {
70
+ const list = this.versions.get(nectar);
71
+ if (list === undefined || list.length === 0)
72
+ return undefined;
73
+ let latest;
74
+ for (const v of list) {
75
+ if (v.describeStatus !== "described")
76
+ continue;
77
+ if (latest === undefined || v.seq > latest.seq)
78
+ latest = v;
79
+ }
80
+ return latest === undefined ? undefined : { ...latest };
81
+ }
82
+ latestVersionByPath(tenancy, path) {
83
+ for (const lv of this.listLatestVersions(tenancy)) {
84
+ if (lv.version.path === path)
85
+ return lv;
86
+ }
87
+ return undefined;
88
+ }
89
+ latestVersionByHash(tenancy, contentHash) {
90
+ for (const lv of this.listLatestVersions(tenancy)) {
91
+ if (lv.version.contentHash === contentHash)
92
+ return lv;
93
+ }
94
+ return undefined;
95
+ }
96
+ deleteNectar(tenancy, nectar) {
97
+ const identity = this.identities.get(nectar);
98
+ if (identity === undefined)
99
+ return; // unknown nectar: no-op
100
+ if (!inTenancy(identity, tenancy))
101
+ return; // refuse a cross-project delete (AC-20)
102
+ this.identities.delete(nectar);
103
+ this.versions.delete(nectar);
104
+ }
105
+ /** Every identity row in scope, including one with zero version rows (PRD-018d repair sweep). */
106
+ listIdentities(tenancy) {
107
+ const out = [];
108
+ for (const identity of this.identities.values()) {
109
+ if (inTenancy(identity, tenancy))
110
+ out.push({ ...identity });
111
+ }
112
+ return out;
113
+ }
114
+ /** Every nectar with at least one version row in scope, including one with NO identity row (CodeRabbit PR-18 finding #8 repair sweep). Scoped via the version row's own tenancy columns, since an orphan has no identity to scope against. */
115
+ listVersionNectars(tenancy) {
116
+ const out = [];
117
+ for (const [nectar, list] of this.versions) {
118
+ const first = list[0];
119
+ if (first !== undefined && inTenancy(first, tenancy))
120
+ out.push(nectar);
121
+ }
122
+ return out;
123
+ }
124
+ }
125
+ //# sourceMappingURL=memory-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../src/hive-graph/memory-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * The Hive Graph domain model (PRD-005).
3
+ *
4
+ * Two tables, one purpose each, straight from the corpus
5
+ * (`library/knowledge/private/data/hive-graph-schema.md`):
6
+ * - `hive_graph` one row per logical file, keyed by nectar (ULID). Identity + provenance.
7
+ * - `hive_graph_versions` append-only, keyed by (nectar, content_hash). Content + lazy description.
8
+ *
9
+ * These types are the frozen contract the store adapters (PRD-005) and the
10
+ * file-registration ladder (PRD-006) both build against. Column names match the
11
+ * DDL exactly so the future Deep Lake adapter maps 1:1.
12
+ */
13
+ /** Tenancy triple. Scope is org+workspace at the storage layer; project_id is a soft column filter (PRD-005c / decision #3). */
14
+ export interface Tenancy {
15
+ readonly orgId: string;
16
+ readonly workspaceId: string;
17
+ readonly projectId: string;
18
+ }
19
+ /**
20
+ * True when a row's tenancy columns match `t` exactly on all three of
21
+ * `orgId`/`workspaceId`/`projectId`. The single scoping predicate re-used by
22
+ * the in-memory store, the ladder's carry guard, and the delete/prune/review
23
+ * paths so no identity mutation ever crosses a project boundary (AC-20).
24
+ */
25
+ export declare function inTenancy(row: {
26
+ orgId: string;
27
+ workspaceId: string;
28
+ projectId: string;
29
+ }, t: Tenancy): boolean;
30
+ /** `hive_graph.kind` discriminator. Only `file` is minted in v1; `directory` reserves the namespace (schema doc YAGNI note). */
31
+ export type NectarKind = "file" | "directory";
32
+ /**
33
+ * `hive_graph_versions.describe_status`. Exactly the six values in the schema
34
+ * doc column table (including `skipped-deleted`, the decisions-doc #14 addition).
35
+ */
36
+ export type DescribeStatus = "pending" | "described" | "failed" | "skipped-too-large" | "skipped-binary" | "skipped-deleted";
37
+ export declare const DESCRIBE_STATUSES: readonly DescribeStatus[];
38
+ /** A row of `hive_graph` (identity + provenance only; no content, no description). */
39
+ export interface HiveGraphRow {
40
+ /** 26-char ULID, minted once, never derived from content. Primary key. */
41
+ nectar: string;
42
+ kind: NectarKind;
43
+ /** ISO 8601 minting time (the decoded ULID timestamp). */
44
+ createdAt: string;
45
+ /** Copy-paste provenance; empty for an originally-minted file. */
46
+ derivedFromNectar: string;
47
+ /** Content hash at the fork point; empty unless derived. */
48
+ forkContentHash: string;
49
+ orgId: string;
50
+ workspaceId: string;
51
+ projectId: string;
52
+ /** Denormalized "last observed change" timestamp; bumped on every appended version. */
53
+ lastUpdateDate: string;
54
+ }
55
+ /** A row of `hive_graph_versions` (one per observed content state of a nectar). */
56
+ export interface HiveGraphVersionRow {
57
+ /** FK -> hive_graph.nectar. Composite key part 1. */
58
+ nectar: string;
59
+ /** sha256 of file content at observation. Composite key part 2. */
60
+ contentHash: string;
61
+ /** Monotonic per-nectar version counter (0, 1, 2, ...). "latest" = MAX(seq). */
62
+ seq: number;
63
+ /** Repo-relative path (forward slashes) at observation time. Mutable across a nectar's versions -> records moves. */
64
+ path: string;
65
+ filename: string;
66
+ /** Lowercased extension without the dot (`ts`, `md`, `json`). */
67
+ ext: string;
68
+ sizeBytes: number;
69
+ /** File mtime at observation (ISO 8601). Not authoritative; a fast-path cache key only. */
70
+ mtimeObserved: string;
71
+ /** LLM-minted, <=80 chars. Empty while pending. */
72
+ title: string;
73
+ /** LLM-minted, 1-3 sentences. Empty while pending. */
74
+ description: string;
75
+ /** JSON-encoded string array, e.g. '["auth","session"]'. Defaults to '[]'. */
76
+ concepts: string;
77
+ /** 768-dim vector over title+description. Null until enriched (or if embeddings off). */
78
+ embedding: number[] | null;
79
+ /** Set only on ladder step-4 (TLSH fuzzy) rows: 1 - normalizedTLSHDistance. Null otherwise. */
80
+ confidence: number | null;
81
+ /**
82
+ * TLSH-family fingerprint of the content (the `computeFingerprint` "H1"-prefixed
83
+ * digest); set on every content-bearing row, consulted by ladder step 4 for
84
+ * missing files so cold-catch-up fuzzy matching survives a daemon restart. Null
85
+ * on pre-fingerprint rows (they self-heal on next observation).
86
+ */
87
+ fingerprint: string | null;
88
+ describedAt: string;
89
+ describeModel: string;
90
+ /**
91
+ * The embedding model that produced {@link embedding} (PRD-018i / NEC-018).
92
+ * Null when the row carries no embedding (`embedding === null`) or was written
93
+ * before this column existed (the catalog heal path backfills old rows as
94
+ * null). Additive nullable column; the ONLY schema change in PRD-018.
95
+ */
96
+ embedModel?: string | null;
97
+ describeStatus: DescribeStatus;
98
+ /** Timestamp the version row was appended (distinct from mtimeObserved). */
99
+ observedAt: string;
100
+ orgId: string;
101
+ workspaceId: string;
102
+ projectId: string;
103
+ lastUpdateDate: string;
104
+ }
105
+ /** The embedding contract: 768 dims, tied to the FLOAT4[] column (ADR-0001 / PRD-014). A different dimension is rejected upstream. */
106
+ export declare const EMBED_DIMS = 768;
107
+ /** True if a vector honors the 768-dim contract. Recall's `embed.dim_rejected` guard discards anything else. */
108
+ export declare function isValidEmbedding(vec: number[] | null): boolean;
109
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/hive-graph/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,gIAAgI;AAChI,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAE7G;AAED,gIAAgI;AAChI,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,WAAW,GACX,QAAQ,GACR,mBAAmB,GACnB,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAOtD,CAAC;AAEF,sFAAsF;AACtF,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,qHAAqH;IACrH,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,2FAA2F;IAC3F,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3B,+FAA+F;IAC/F,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;;;;OAKG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,sIAAsI;AACtI,eAAO,MAAM,UAAU,MAAM,CAAC;AAE9B,gHAAgH;AAChH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAE9D"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * The Hive Graph domain model (PRD-005).
3
+ *
4
+ * Two tables, one purpose each, straight from the corpus
5
+ * (`library/knowledge/private/data/hive-graph-schema.md`):
6
+ * - `hive_graph` one row per logical file, keyed by nectar (ULID). Identity + provenance.
7
+ * - `hive_graph_versions` append-only, keyed by (nectar, content_hash). Content + lazy description.
8
+ *
9
+ * These types are the frozen contract the store adapters (PRD-005) and the
10
+ * file-registration ladder (PRD-006) both build against. Column names match the
11
+ * DDL exactly so the future Deep Lake adapter maps 1:1.
12
+ */
13
+ /**
14
+ * True when a row's tenancy columns match `t` exactly on all three of
15
+ * `orgId`/`workspaceId`/`projectId`. The single scoping predicate re-used by
16
+ * the in-memory store, the ladder's carry guard, and the delete/prune/review
17
+ * paths so no identity mutation ever crosses a project boundary (AC-20).
18
+ */
19
+ export function inTenancy(row, t) {
20
+ return row.orgId === t.orgId && row.workspaceId === t.workspaceId && row.projectId === t.projectId;
21
+ }
22
+ export const DESCRIBE_STATUSES = [
23
+ "pending",
24
+ "described",
25
+ "failed",
26
+ "skipped-too-large",
27
+ "skipped-binary",
28
+ "skipped-deleted",
29
+ ];
30
+ /** The embedding contract: 768 dims, tied to the FLOAT4[] column (ADR-0001 / PRD-014). A different dimension is rejected upstream. */
31
+ export const EMBED_DIMS = 768;
32
+ /** True if a vector honors the 768-dim contract. Recall's `embed.dim_rejected` guard discards anything else. */
33
+ export function isValidEmbedding(vec) {
34
+ return vec === null || vec.length === EMBED_DIMS;
35
+ }
36
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/hive-graph/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,GAA8D,EAAE,CAAU;IAClG,OAAO,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,CAAC;AACrG,CAAC;AAiBD,MAAM,CAAC,MAAM,iBAAiB,GAA8B;IAC1D,SAAS;IACT,WAAW;IACX,QAAQ;IACR,mBAAmB;IACnB,gBAAgB;IAChB,iBAAiB;CAClB,CAAC;AAuEF,sIAAsI;AACtI,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAE9B,gHAAgH;AAChH,MAAM,UAAU,gBAAgB,CAAC,GAAoB;IACnD,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC;AACnD,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** Repo-relative, forward-slashed path. `root` is the project root; `absOrRel` may be absolute or already relative. */
2
+ export declare function toRepoRelative(absOrRel: string, root: string): string;
3
+ /** Bare filename (`a.ts`) from a path. */
4
+ export declare function filenameOf(p: string): string;
5
+ /** Lowercased extension without the leading dot (`ts`, `md`, `json`); empty string if none. */
6
+ export declare function extOf(p: string): string;
7
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/hive-graph/paths.ts"],"names":[],"mappings":"AASA,uHAAuH;AACvH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrE;AAED,0CAA0C;AAC1C,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,+FAA+F;AAC/F,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Path helpers for building version rows (PRD-005 / PRD-006).
3
+ *
4
+ * Paths in `hive_graph_versions.path` are repo-relative with forward slashes,
5
+ * regardless of OS. `filename` and `ext` are denormalized from the path for fast
6
+ * filename-only search and extractor routing (per hive-graph-schema.md).
7
+ */
8
+ import { relative, basename, extname } from "node:path";
9
+ /** Repo-relative, forward-slashed path. `root` is the project root; `absOrRel` may be absolute or already relative. */
10
+ export function toRepoRelative(absOrRel, root) {
11
+ const rel = relative(root, absOrRel);
12
+ // If `absOrRel` was already relative to cwd and not under root, `relative` may
13
+ // return it unchanged; normalize separators either way.
14
+ const forward = (rel === "" ? absOrRel : rel).replace(/\\/g, "/");
15
+ return forward.replace(/^\.\//, "");
16
+ }
17
+ /** Bare filename (`a.ts`) from a path. */
18
+ export function filenameOf(p) {
19
+ return basename(p.replace(/\\/g, "/"));
20
+ }
21
+ /** Lowercased extension without the leading dot (`ts`, `md`, `json`); empty string if none. */
22
+ export function extOf(p) {
23
+ const ext = extname(p);
24
+ return ext.startsWith(".") ? ext.slice(1).toLowerCase() : ext.toLowerCase();
25
+ }
26
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/hive-graph/paths.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAExD,uHAAuH;AACvH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,IAAY;IAC3D,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrC,+EAA+E;IAC/E,wDAAwD;IACxD,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClE,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,UAAU,CAAC,CAAS;IAClC,OAAO,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvB,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;AAC9E,CAAC"}