@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,109 @@
1
+ /**
2
+ * Deep Lake credentials loader for hivenectar (PRD-005).
3
+ *
4
+ * Reads the SHARED `~/.deeplake/credentials.json` file that `hivemind login`
5
+ * (and honeycomb) already write, mirroring the shape honeycomb's
6
+ * `loadDiskCredentials` / `deeplakeCredentialsFileProvider`
7
+ * (`src/daemon/runtime/auth/credentials-store.ts`,
8
+ * `src/daemon/storage/config.ts`) read: `{ apiUrl, token, orgId, workspaceId }`.
9
+ * Per ADR-0002, hivenectar never imports honeycomb's runtime for this; it
10
+ * reads the same on-disk file with its own loader.
11
+ *
12
+ * Fail-closed by design (mirrors honeycomb's `StorageConfigError` posture): a
13
+ * missing file, malformed JSON, or a missing required field throws a
14
+ * `DeepLakeCredentialsError` listing exactly what is wrong, rather than
15
+ * returning a partially-undefined credential object a caller could
16
+ * accidentally use. `apiUrl` is the one field with a documented default (a
17
+ * legacy or hand-written file may omit it); `token`, `orgId`, and
18
+ * `workspaceId` are load-bearing and always required.
19
+ *
20
+ * The token is never logged or included in an error message in full;
21
+ * `redactToken` keeps only the last 4 characters, exactly like honeycomb's
22
+ * `redactToken` (`src/daemon/runtime/auth/credentials-store.ts:254-257`, its
23
+ * `defaultCredentialProvider` variant).
24
+ */
25
+ import { existsSync, readFileSync } from "node:fs";
26
+ import { homedir } from "node:os";
27
+ import { join } from "node:path";
28
+ /** The SHARED credentials directory name under the user's home. */
29
+ export const CREDENTIALS_DIR_NAME = ".deeplake";
30
+ /** The credentials file name within the dir. */
31
+ export const CREDENTIALS_FILE_NAME = "credentials.json";
32
+ /** The canonical Deep Lake API base URL used when a file omits `apiUrl`. */
33
+ export const DEFAULT_DEEPLAKE_API_URL = "https://api.deeplake.ai";
34
+ /**
35
+ * Structured, fail-closed rejection. Carries exactly which fields were missing
36
+ * or invalid so a caller (or an operator reading a log line) knows what to
37
+ * fix without the loader ever echoing the file's contents (which may hold the
38
+ * token).
39
+ */
40
+ export class DeepLakeCredentialsError extends Error {
41
+ missing;
42
+ constructor(missing) {
43
+ super(`Invalid Deep Lake credentials: ${missing.join("; ")}`);
44
+ this.name = "DeepLakeCredentialsError";
45
+ this.missing = missing;
46
+ }
47
+ }
48
+ /** Resolve the credentials directory, honoring the test override. */
49
+ export function credentialsDir(options = {}) {
50
+ return options.dir ?? join(homedir(), CREDENTIALS_DIR_NAME);
51
+ }
52
+ /** Resolve the full credentials file path within the (possibly overridden) dir. */
53
+ export function credentialsPath(options = {}) {
54
+ return join(credentialsDir(options), CREDENTIALS_FILE_NAME);
55
+ }
56
+ /**
57
+ * Load and validate `~/.deeplake/credentials.json` (or the overridden dir in
58
+ * `options.dir`). Throws {@link DeepLakeCredentialsError} listing every
59
+ * problem found: a missing file, invalid JSON, a non-object payload, or a
60
+ * missing/empty `token` / `orgId` / `workspaceId`. Never returns a partial
61
+ * credential — the caller either gets a fully-populated `DeepLakeCredentials`
62
+ * or a clear, typed reason it could not.
63
+ */
64
+ export function loadDeepLakeCredentials(options = {}) {
65
+ const path = credentialsPath(options);
66
+ if (!existsSync(path)) {
67
+ throw new DeepLakeCredentialsError([`credentials file not found at ${path}`]);
68
+ }
69
+ let parsed;
70
+ try {
71
+ parsed = JSON.parse(readFileSync(path, "utf8"));
72
+ }
73
+ catch {
74
+ throw new DeepLakeCredentialsError([`credentials file at ${path} is not valid JSON`]);
75
+ }
76
+ if (typeof parsed !== "object" || parsed === null) {
77
+ throw new DeepLakeCredentialsError([`credentials file at ${path} does not contain a JSON object`]);
78
+ }
79
+ const record = parsed;
80
+ const missing = [];
81
+ if (typeof record.token !== "string" || record.token.length === 0)
82
+ missing.push("token");
83
+ if (typeof record.orgId !== "string" || record.orgId.length === 0)
84
+ missing.push("orgId");
85
+ if (typeof record.workspaceId !== "string" || record.workspaceId.length === 0)
86
+ missing.push("workspaceId");
87
+ if (missing.length > 0) {
88
+ throw new DeepLakeCredentialsError(missing);
89
+ }
90
+ const apiUrl = typeof record.apiUrl === "string" && record.apiUrl.length > 0 ? record.apiUrl : DEFAULT_DEEPLAKE_API_URL;
91
+ return {
92
+ apiUrl,
93
+ token: record.token,
94
+ orgId: record.orgId,
95
+ workspaceId: record.workspaceId,
96
+ };
97
+ }
98
+ /**
99
+ * Redact a token for logs and errors. Never echoes a token in full: keeps the
100
+ * last 4 chars for correlation, masks the rest. An empty/short value collapses
101
+ * to a fixed mask so length isn't leaked either. Mirrors honeycomb's
102
+ * `redactToken` (`src/daemon/runtime/auth/credentials-store.ts:254-257`).
103
+ */
104
+ export function redactToken(value) {
105
+ if (value.length <= 4)
106
+ return "****";
107
+ return `****${value.slice(-4)}`;
108
+ }
109
+ //# sourceMappingURL=deeplake-credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deeplake-credentials.js","sourceRoot":"","sources":["../../src/source-graph/deeplake-credentials.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Heal-on-first-write for the Deep Lake adapter (PRD-005).
3
+ *
4
+ * Mirrors the missing-table branch of honeycomb's `withHeal`
5
+ * (`src/daemon/storage/heal.ts:286-313`), scoped down to what the
6
+ * source-graph tables need: a write that fails because its table does not
7
+ * exist yet triggers exactly ONE create-then-retry. Any other failure
8
+ * (permission, connection, timeout, a genuine syntax error) propagates
9
+ * unchanged and never triggers a create — the same anti-mask rule honeycomb's
10
+ * `classifyFailure` documents: a credentials or syntax problem must never be
11
+ * misread as a schema gap behind a confusing CREATE attempt.
12
+ *
13
+ * Column healing (honeycomb's `healColumns` / `ALTER TABLE ADD COLUMN`) is
14
+ * deliberately NOT ported here: `SOURCE_GRAPH_COLUMNS` /
15
+ * `SOURCE_GRAPH_VERSIONS_COLUMNS` are the full, fixed column set at CREATE
16
+ * time and PRD-005 does not add columns to an already-created table out from
17
+ * under a running adapter, so there is no missing-column case for this
18
+ * adapter to heal. A future PRD that adds a column to the catalog would need
19
+ * to bring the column-heal half of honeycomb's engine over too.
20
+ */
21
+ import type { CatalogTable } from "./schema.js";
22
+ import type { DeepLakeRow } from "./deeplake-transport.js";
23
+ import { TransportError } from "./deeplake-transport.js";
24
+ /**
25
+ * The minimal shape `withHeal` needs from a transport: one method that runs a
26
+ * SQL statement. `HttpDeepLakeTransport` satisfies this structurally (its
27
+ * `query` method is public even though its connection fields are private), so
28
+ * production callers pass it directly; a test can pass a plain fake object
29
+ * with a `query` method instead, without needing to construct a real
30
+ * `HttpDeepLakeTransport` or reach for a mocking library (hivenectar has
31
+ * none, by design).
32
+ */
33
+ export interface QueryRunner {
34
+ query(sql: string): Promise<DeepLakeRow[]>;
35
+ }
36
+ /**
37
+ * Classify a `query`-kind `TransportError` message as a missing-table failure
38
+ * (mirrors honeycomb's `classifyFailure`, `src/daemon/storage/heal.ts:77-98`,
39
+ * missing-table branch only). Auth/permission failures are excluded first so a
40
+ * message that happens to mention a relation is never misread as a schema gap.
41
+ */
42
+ export declare function isMissingTableError(err: TransportError): boolean;
43
+ /**
44
+ * Run a write, and on a missing-table failure, CREATE the table and retry the
45
+ * write EXACTLY ONCE. Any other failure (or a success) returns/throws
46
+ * immediately and unhealed. A second failure after the heal propagates
47
+ * without a further retry (no infinite loop).
48
+ *
49
+ * `runWrite` is the original statement's thunk so the retry re-issues the
50
+ * identical write.
51
+ */
52
+ export declare function withHeal(transport: QueryRunner, table: CatalogTable, runWrite: () => Promise<DeepLakeRow[]>): Promise<DeepLakeRow[]>;
53
+ //# sourceMappingURL=deeplake-heal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deeplake-heal.d.ts","sourceRoot":"","sources":["../../src/source-graph/deeplake-heal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAC5C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAQhE;AAED;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,WAAW,EACtB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,GACrC,OAAO,CAAC,WAAW,EAAE,CAAC,CAaxB"}
@@ -0,0 +1,41 @@
1
+ import { buildCreateTableSql } from "./schema.js";
2
+ import { TransportError } from "./deeplake-transport.js";
3
+ /**
4
+ * Classify a `query`-kind `TransportError` message as a missing-table failure
5
+ * (mirrors honeycomb's `classifyFailure`, `src/daemon/storage/heal.ts:77-98`,
6
+ * missing-table branch only). Auth/permission failures are excluded first so a
7
+ * message that happens to mention a relation is never misread as a schema gap.
8
+ */
9
+ export function isMissingTableError(err) {
10
+ if (err.kind !== "query")
11
+ return false;
12
+ if (/permission denied|must be owner|not authorized|forbidden|unauthorized/i.test(err.message)) {
13
+ return false;
14
+ }
15
+ return /table does not exist|relation ["']?[A-Za-z_][A-Za-z0-9_.]*["']? does not exist|no such table/i.test(err.message);
16
+ }
17
+ /**
18
+ * Run a write, and on a missing-table failure, CREATE the table and retry the
19
+ * write EXACTLY ONCE. Any other failure (or a success) returns/throws
20
+ * immediately and unhealed. A second failure after the heal propagates
21
+ * without a further retry (no infinite loop).
22
+ *
23
+ * `runWrite` is the original statement's thunk so the retry re-issues the
24
+ * identical write.
25
+ */
26
+ export async function withHeal(transport, table, runWrite) {
27
+ try {
28
+ return await runWrite();
29
+ }
30
+ catch (err) {
31
+ if (!(err instanceof TransportError) || !isMissingTableError(err)) {
32
+ throw err;
33
+ }
34
+ // Missing table: create it (IF NOT EXISTS makes concurrent heals
35
+ // converge), then retry the original write exactly once. Any failure from
36
+ // here on (the create itself, or the retried write) propagates unchanged.
37
+ await transport.query(buildCreateTableSql(table));
38
+ return runWrite();
39
+ }
40
+ }
41
+ //# sourceMappingURL=deeplake-heal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deeplake-heal.js","sourceRoot":"","sources":["../../src/source-graph/deeplake-heal.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAezD;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAmB;IACrD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,wEAAwE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/F,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,+FAA+F,CAAC,IAAI,CACzG,GAAG,CAAC,OAAO,CACZ,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,SAAsB,EACtB,KAAmB,EACnB,QAAsC;IAEtC,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,EAAE,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,GAAG,YAAY,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;YAClE,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,iEAAiE;QACjE,0EAA0E;QAC1E,0EAA0E;QAC1E,MAAM,SAAS,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;AACH,CAAC"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * The Deep Lake-backed SourceGraphStore adapter (PRD-005).
3
+ *
4
+ * `DeepLakeSourceGraphStore` is the durable substrate for the two source-graph
5
+ * tables (`source_graph`, `source_graph_versions`), reached over the network
6
+ * through hivenectar's own transport (`deeplake-transport.ts`) per ADR-0002 -
7
+ * never by importing the honeycomb runtime in-process. It is an ADDITIONAL
8
+ * adapter alongside `InMemorySourceGraphStore` (`memory-store.ts`), not a
9
+ * replacement of it: the in-memory store keeps backing the file-registration
10
+ * ladder's tests and local dev, unchanged.
11
+ *
12
+ * `DeepLakeSourceGraphStore implements AsyncSourceGraphStore`
13
+ * (`store.ts`), not the synchronous `SourceGraphStore`. See the docblock on
14
+ * `AsyncSourceGraphStore` for why: the ladder's synchronous contract cannot be
15
+ * honored by a store that does real HTTP I/O, and wiring the ladder to an
16
+ * async store is a future PRD's decision, not this adapter's.
17
+ *
18
+ * All reads are scoped by `org_id`/`workspace_id`/`project_id` wherever the
19
+ * method receives a `Tenancy` (`listLatestVersions`, `latestVersionByPath`,
20
+ * `latestVersionByHash`), per PRD-005c's soft-filter contract - the
21
+ * `project_id` predicate is never omitted from those queries. The four
22
+ * by-nectar-only methods (`getIdentity`, `touchIdentity`, `nextSeq`,
23
+ * `latestVersion`) take no `Tenancy` parameter in the `SourceGraphStore` /
24
+ * `AsyncSourceGraphStore` seam itself - `nectar` is a globally-unique 26-char
25
+ * ULID (`ulid.ts`) and `InMemorySourceGraphStore` looks those up by nectar
26
+ * alone too (no tenancy filter), so this adapter matches that seam exactly
27
+ * for drop-in-replacement parity rather than inventing extra scoping the
28
+ * interface does not carry.
29
+ */
30
+ import type { SourceGraphRow, SourceGraphVersionRow, Tenancy } from "./model.js";
31
+ import type { AsyncSourceGraphStore, LatestVersion } from "./store.js";
32
+ import type { DeepLakeCredentials } from "./deeplake-credentials.js";
33
+ import type { QueryRunner } from "./deeplake-heal.js";
34
+ /** Options for {@link DeepLakeSourceGraphStore}. */
35
+ export interface DeepLakeSourceGraphStoreOptions {
36
+ /** Loaded via `deeplake-credentials.ts#loadDeepLakeCredentials`. */
37
+ readonly credentials: DeepLakeCredentials;
38
+ /** Per-statement timeout override in ms; see `DEFAULT_TRANSPORT_TIMEOUT_MS`. */
39
+ readonly timeoutMs?: number;
40
+ /**
41
+ * TEST-ONLY SEAM: inject a fake `QueryRunner` instead of constructing a
42
+ * real `HttpDeepLakeTransport` from `credentials`. When absent (the
43
+ * production path, and the default for every existing caller), the
44
+ * constructor builds a real `HttpDeepLakeTransport` from `credentials`
45
+ * exactly as before this option existed. `credentials` is still required
46
+ * even when `transport` is supplied (a test passes a trivial placeholder
47
+ * object; nothing in the class reads `credentials` again once the
48
+ * transport is constructed), which keeps this a strict addition rather
49
+ * than a change to the required shape of the options object.
50
+ */
51
+ readonly transport?: QueryRunner;
52
+ }
53
+ export declare class DeepLakeSourceGraphStore implements AsyncSourceGraphStore {
54
+ private readonly transport;
55
+ constructor(options: DeepLakeSourceGraphStoreOptions);
56
+ /**
57
+ * Run a READ statement, tolerating a missing-table failure as "no data yet"
58
+ * (an empty result), exactly like honeycomb's read-path guard
59
+ * (`tableExists`, `src/daemon/storage/heal.ts:171-175`) fails OPEN rather
60
+ * than provoking a CREATE. Only the missing-table shape is tolerated; a
61
+ * genuine connection/timeout/permission/syntax failure still propagates.
62
+ * Reads never create a table - only a write does, via `withHeal`.
63
+ */
64
+ private readTolerant;
65
+ /**
66
+ * Insert-only mint, mirroring honeycomb's SELECT-before-INSERT write
67
+ * pattern (`selectBeforeInsert`, `src/daemon/storage/writes.ts:325-360`)
68
+ * rather than relying on a Deep Lake UNIQUE constraint: the Deep Lake SQL
69
+ * surface this adapter targets has no reliably-enforced uniqueness
70
+ * constraint to lean on, so "does the nectar already exist" is answered by
71
+ * probing first. Both the probe and the insert are heal-aware (a fresh
72
+ * tenancy's tables may not exist yet).
73
+ *
74
+ * After the insert, a best-effort re-verify SELECT counts the rows for the
75
+ * nectar; more than one means a race doubled it. Deep Lake offers no
76
+ * transactions, so this cannot PREVENT a race, only make it observable
77
+ * (the same limitation honeycomb documents). In practice a real race here
78
+ * is a near-zero-probability event - a nectar is a 26-char ULID with 80
79
+ * bits of randomness (`ulid.ts`), not a narrow key space two writers could
80
+ * plausibly collide on - so a failure of the re-verify SELECT itself
81
+ * (e.g. a transient network hiccup immediately after a successful insert)
82
+ * does not fail the whole call; the insert already succeeded and the
83
+ * re-verify is an observability nicety, not the source of truth.
84
+ */
85
+ insertIdentity(row: SourceGraphRow): Promise<void>;
86
+ getIdentity(nectar: string): Promise<SourceGraphRow | undefined>;
87
+ /**
88
+ * Bump `last_update_date` via an in-place `UPDATE`.
89
+ *
90
+ * KNOWN CAVEAT: honeycomb's own operational history found that an in-place
91
+ * `UPDATE ... WHERE id = ...` does not reliably land on this backend under
92
+ * load - a by-id point read can still return a pre-update snapshot from a
93
+ * stale segment (see honeycomb `src/daemon/storage/catalog/tenancy.ts:475-489`,
94
+ * where the equivalent revoke-by-UPDATE was RETIRED in favor of an
95
+ * append-only version-bump for that reason). `source_graph`'s catalog entry
96
+ * (`schema.ts`) nonetheless declares `writePattern: "update-or-insert"` for
97
+ * this exact field, and `last_update_date` is a low-stakes denormalized
98
+ * "last observed change" timestamp (not an authorization-bearing flag like
99
+ * the retired revoke), so this adapter uses `UPDATE` as declared rather than
100
+ * inventing an append-based scheme the schema does not define. If
101
+ * `last_update_date` staleness proves to be a real problem in practice, a
102
+ * future PRD should revisit this the same way honeycomb did - not this
103
+ * adapter, which mirrors the declared write pattern faithfully.
104
+ */
105
+ touchIdentity(nectar: string, lastUpdateDate: string): Promise<void>;
106
+ appendVersion(row: SourceGraphVersionRow): Promise<void>;
107
+ /**
108
+ * The next monotonic seq for a nectar: MAX(seq)+1 over every version row,
109
+ * computed client-side by {@link reduceLatestVersion} rather than trusted
110
+ * to an SQL `ORDER BY`/`LIMIT`/`MAX()` clause. See that function's docblock
111
+ * for why.
112
+ */
113
+ nextSeq(nectar: string): Promise<number>;
114
+ /** The latest (MAX seq) version row for a nectar; see {@link reduceLatestVersion}. */
115
+ latestVersion(nectar: string): Promise<SourceGraphVersionRow | undefined>;
116
+ /**
117
+ * Every nectar's latest version, scoped by the full tenancy predicate
118
+ * (`org_id`/`workspace_id`/`project_id`, PRD-005c). Fetches every identity
119
+ * and every version row for the tenancy and reduces to "latest per nectar"
120
+ * in application code, mirroring `InMemorySourceGraphStore.listLatestVersions`'s
121
+ * iterate-and-reduce shape rather than pushing a `GROUP BY`/window-function
122
+ * reduction into SQL. This is not optimized for a very large per-tenant
123
+ * row count; a future PRD could push the "latest per nectar" reduction into
124
+ * SQL if that becomes the bottleneck. It is not this adapter's job to
125
+ * diverge from the reference in-memory implementation's behavior to chase
126
+ * that optimization prematurely.
127
+ */
128
+ listLatestVersions(tenancy: Tenancy): Promise<LatestVersion[]>;
129
+ latestVersionByPath(tenancy: Tenancy, path: string): Promise<LatestVersion | undefined>;
130
+ latestVersionByHash(tenancy: Tenancy, contentHash: string): Promise<LatestVersion | undefined>;
131
+ /**
132
+ * Delete a nectar (identity + versions) scoped to `tenancy`, the SOLE deletion
133
+ * path (`prune --confirm`, PRD-006d). Both DELETE statements carry the full
134
+ * tenancy predicate (`org_id`/`workspace_id`/`project_id`, never omitting
135
+ * `project_id`) alongside the nectar key, so a nectar minted under another
136
+ * project is never removed by a delete issued in this tenancy (AC-20).
137
+ *
138
+ * The delete path deliberately does NOT go through `withHeal`: a missing table
139
+ * means there is nothing to delete, so it is a harmless no-op, NOT a reason to
140
+ * CREATE a fresh (empty) table. `deleteTolerant` therefore swallows only the
141
+ * missing-table transport error (via `isMissingTableError`, the same
142
+ * classification the read path uses) and lets every other failure propagate.
143
+ */
144
+ deleteNectar(tenancy: Tenancy, nectar: string): Promise<void>;
145
+ /**
146
+ * Run a DELETE, tolerating a missing-table failure as "nothing to delete" (a
147
+ * no-op). Never creates a table. Any other transport failure propagates.
148
+ */
149
+ private deleteTolerant;
150
+ }
151
+ //# sourceMappingURL=deeplake-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deeplake-store.d.ts","sourceRoot":"","sources":["../../src/source-graph/deeplake-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,EAAkB,cAAc,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEjG,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOtD,oDAAoD;AACpD,MAAM,WAAW,+BAA+B;IAC9C,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAC1C,gFAAgF;IAChF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC;CAClC;AAyLD,qBAAa,wBAAyB,YAAW,qBAAqB;IACpE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;gBAE5B,OAAO,EAAE,+BAA+B;IAYpD;;;;;;;OAOG;YACW,YAAY;IAS1B;;;;;;;;;;;;;;;;;;;OAmBG;IACG,cAAc,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBlD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAMtE;;;;;;;;;;;;;;;;;OAiBG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpE,aAAa,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9D;;;;;OAKG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY9C,sFAAsF;IAChF,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAM/E;;;;;;;;;;;OAWG;IACG,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA8B9D,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAKvF,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAKpG;;;;;;;;;;;;OAYG;IACG,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnE;;;OAGG;YACW,cAAc;CAQ7B"}