@legioncodeinc/nectar 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (467) hide show
  1. package/LICENSE.md +662 -0
  2. package/README.md +307 -0
  3. package/dist/api/daemon-api-wiring.d.ts +72 -0
  4. package/dist/api/daemon-api-wiring.d.ts.map +1 -0
  5. package/dist/api/daemon-api-wiring.js +150 -0
  6. package/dist/api/daemon-api-wiring.js.map +1 -0
  7. package/dist/api/hive-graph-api.d.ts +136 -0
  8. package/dist/api/hive-graph-api.d.ts.map +1 -0
  9. package/dist/api/hive-graph-api.js +234 -0
  10. package/dist/api/hive-graph-api.js.map +1 -0
  11. package/dist/api/loopback-client.d.ts +27 -0
  12. package/dist/api/loopback-client.d.ts.map +1 -0
  13. package/dist/api/loopback-client.js +87 -0
  14. package/dist/api/loopback-client.js.map +1 -0
  15. package/dist/api/router.d.ts +172 -0
  16. package/dist/api/router.d.ts.map +1 -0
  17. package/dist/api/router.js +212 -0
  18. package/dist/api/router.js.map +1 -0
  19. package/dist/api/status-query.d.ts +49 -0
  20. package/dist/api/status-query.d.ts.map +1 -0
  21. package/dist/api/status-query.js +103 -0
  22. package/dist/api/status-query.js.map +1 -0
  23. package/dist/brood-guard.d.ts +24 -0
  24. package/dist/brood-guard.d.ts.map +1 -0
  25. package/dist/brood-guard.js +19 -0
  26. package/dist/brood-guard.js.map +1 -0
  27. package/dist/brood-prereqs.d.ts +62 -0
  28. package/dist/brood-prereqs.d.ts.map +1 -0
  29. package/dist/brood-prereqs.js +87 -0
  30. package/dist/brood-prereqs.js.map +1 -0
  31. package/dist/brooding/bucketing.d.ts +68 -0
  32. package/dist/brooding/bucketing.d.ts.map +1 -0
  33. package/dist/brooding/bucketing.js +122 -0
  34. package/dist/brooding/bucketing.js.map +1 -0
  35. package/dist/brooding/cli.d.ts +78 -0
  36. package/dist/brooding/cli.d.ts.map +1 -0
  37. package/dist/brooding/cli.js +140 -0
  38. package/dist/brooding/cli.js.map +1 -0
  39. package/dist/brooding/constants.d.ts +75 -0
  40. package/dist/brooding/constants.d.ts.map +1 -0
  41. package/dist/brooding/constants.js +91 -0
  42. package/dist/brooding/constants.js.map +1 -0
  43. package/dist/brooding/cost.d.ts +110 -0
  44. package/dist/brooding/cost.d.ts.map +1 -0
  45. package/dist/brooding/cost.js +96 -0
  46. package/dist/brooding/cost.js.map +1 -0
  47. package/dist/brooding/describe.d.ts +152 -0
  48. package/dist/brooding/describe.d.ts.map +1 -0
  49. package/dist/brooding/describe.js +281 -0
  50. package/dist/brooding/describe.js.map +1 -0
  51. package/dist/brooding/discovery.d.ts +116 -0
  52. package/dist/brooding/discovery.d.ts.map +1 -0
  53. package/dist/brooding/discovery.js +179 -0
  54. package/dist/brooding/discovery.js.map +1 -0
  55. package/dist/brooding/index.d.ts +23 -0
  56. package/dist/brooding/index.d.ts.map +1 -0
  57. package/dist/brooding/index.js +33 -0
  58. package/dist/brooding/index.js.map +1 -0
  59. package/dist/brooding/pipeline-async.d.ts +97 -0
  60. package/dist/brooding/pipeline-async.d.ts.map +1 -0
  61. package/dist/brooding/pipeline-async.js +364 -0
  62. package/dist/brooding/pipeline-async.js.map +1 -0
  63. package/dist/brooding/pipeline.d.ts +198 -0
  64. package/dist/brooding/pipeline.d.ts.map +1 -0
  65. package/dist/brooding/pipeline.js +454 -0
  66. package/dist/brooding/pipeline.js.map +1 -0
  67. package/dist/brooding/precheck.d.ts +52 -0
  68. package/dist/brooding/precheck.d.ts.map +1 -0
  69. package/dist/brooding/precheck.js +143 -0
  70. package/dist/brooding/precheck.js.map +1 -0
  71. package/dist/brooding/resumability.d.ts +57 -0
  72. package/dist/brooding/resumability.d.ts.map +1 -0
  73. package/dist/brooding/resumability.js +46 -0
  74. package/dist/brooding/resumability.js.map +1 -0
  75. package/dist/cli.d.ts +139 -0
  76. package/dist/cli.d.ts.map +1 -0
  77. package/dist/cli.js +912 -0
  78. package/dist/cli.js.map +1 -0
  79. package/dist/config-file.d.ts +52 -0
  80. package/dist/config-file.d.ts.map +1 -0
  81. package/dist/config-file.js +130 -0
  82. package/dist/config-file.js.map +1 -0
  83. package/dist/config.d.ts +49 -0
  84. package/dist/config.d.ts.map +1 -0
  85. package/dist/config.js +98 -0
  86. package/dist/config.js.map +1 -0
  87. package/dist/daemon.d.ts +265 -0
  88. package/dist/daemon.d.ts.map +1 -0
  89. package/dist/daemon.js +664 -0
  90. package/dist/daemon.js.map +1 -0
  91. package/dist/doctor-registry.d.ts +134 -0
  92. package/dist/doctor-registry.d.ts.map +1 -0
  93. package/dist/doctor-registry.js +173 -0
  94. package/dist/doctor-registry.js.map +1 -0
  95. package/dist/embeddings/cohere-portkey.d.ts +67 -0
  96. package/dist/embeddings/cohere-portkey.d.ts.map +1 -0
  97. package/dist/embeddings/cohere-portkey.js +171 -0
  98. package/dist/embeddings/cohere-portkey.js.map +1 -0
  99. package/dist/embeddings/config.d.ts +74 -0
  100. package/dist/embeddings/config.d.ts.map +1 -0
  101. package/dist/embeddings/config.js +131 -0
  102. package/dist/embeddings/config.js.map +1 -0
  103. package/dist/embeddings/guard.d.ts +34 -0
  104. package/dist/embeddings/guard.d.ts.map +1 -0
  105. package/dist/embeddings/guard.js +67 -0
  106. package/dist/embeddings/guard.js.map +1 -0
  107. package/dist/embeddings/hosted-portkey.d.ts +73 -0
  108. package/dist/embeddings/hosted-portkey.d.ts.map +1 -0
  109. package/dist/embeddings/hosted-portkey.js +179 -0
  110. package/dist/embeddings/hosted-portkey.js.map +1 -0
  111. package/dist/embeddings/http.d.ts +33 -0
  112. package/dist/embeddings/http.d.ts.map +1 -0
  113. package/dist/embeddings/http.js +19 -0
  114. package/dist/embeddings/http.js.map +1 -0
  115. package/dist/embeddings/index.d.ts +17 -0
  116. package/dist/embeddings/index.d.ts.map +1 -0
  117. package/dist/embeddings/index.js +17 -0
  118. package/dist/embeddings/index.js.map +1 -0
  119. package/dist/embeddings/local-nomic.d.ts +78 -0
  120. package/dist/embeddings/local-nomic.d.ts.map +1 -0
  121. package/dist/embeddings/local-nomic.js +126 -0
  122. package/dist/embeddings/local-nomic.js.map +1 -0
  123. package/dist/embeddings/provider.d.ts +79 -0
  124. package/dist/embeddings/provider.d.ts.map +1 -0
  125. package/dist/embeddings/provider.js +50 -0
  126. package/dist/embeddings/provider.js.map +1 -0
  127. package/dist/enricher/config.d.ts +43 -0
  128. package/dist/enricher/config.d.ts.map +1 -0
  129. package/dist/enricher/config.js +34 -0
  130. package/dist/enricher/config.js.map +1 -0
  131. package/dist/enricher/content-cache.d.ts +29 -0
  132. package/dist/enricher/content-cache.d.ts.map +1 -0
  133. package/dist/enricher/content-cache.js +24 -0
  134. package/dist/enricher/content-cache.js.map +1 -0
  135. package/dist/enricher/cycle.d.ts +71 -0
  136. package/dist/enricher/cycle.d.ts.map +1 -0
  137. package/dist/enricher/cycle.js +319 -0
  138. package/dist/enricher/cycle.js.map +1 -0
  139. package/dist/enricher/describe.d.ts +61 -0
  140. package/dist/enricher/describe.d.ts.map +1 -0
  141. package/dist/enricher/describe.js +175 -0
  142. package/dist/enricher/describe.js.map +1 -0
  143. package/dist/enricher/failure.d.ts +25 -0
  144. package/dist/enricher/failure.d.ts.map +1 -0
  145. package/dist/enricher/failure.js +46 -0
  146. package/dist/enricher/failure.js.map +1 -0
  147. package/dist/enricher/index.d.ts +22 -0
  148. package/dist/enricher/index.d.ts.map +1 -0
  149. package/dist/enricher/index.js +22 -0
  150. package/dist/enricher/index.js.map +1 -0
  151. package/dist/enricher/jaccard.d.ts +11 -0
  152. package/dist/enricher/jaccard.d.ts.map +1 -0
  153. package/dist/enricher/jaccard.js +29 -0
  154. package/dist/enricher/jaccard.js.map +1 -0
  155. package/dist/enricher/loop.d.ts +22 -0
  156. package/dist/enricher/loop.d.ts.map +1 -0
  157. package/dist/enricher/loop.js +34 -0
  158. package/dist/enricher/loop.js.map +1 -0
  159. package/dist/enricher/meaningful-change.d.ts +28 -0
  160. package/dist/enricher/meaningful-change.d.ts.map +1 -0
  161. package/dist/enricher/meaningful-change.js +41 -0
  162. package/dist/enricher/meaningful-change.js.map +1 -0
  163. package/dist/enricher/observability.d.ts +22 -0
  164. package/dist/enricher/observability.d.ts.map +1 -0
  165. package/dist/enricher/observability.js +55 -0
  166. package/dist/enricher/observability.js.map +1 -0
  167. package/dist/enricher/pending-query.d.ts +35 -0
  168. package/dist/enricher/pending-query.d.ts.map +1 -0
  169. package/dist/enricher/pending-query.js +54 -0
  170. package/dist/enricher/pending-query.js.map +1 -0
  171. package/dist/enricher/sql-update.d.ts +7 -0
  172. package/dist/enricher/sql-update.d.ts.map +1 -0
  173. package/dist/enricher/sql-update.js +22 -0
  174. package/dist/enricher/sql-update.js.map +1 -0
  175. package/dist/enricher/store-adapter.d.ts +98 -0
  176. package/dist/enricher/store-adapter.d.ts.map +1 -0
  177. package/dist/enricher/store-adapter.js +129 -0
  178. package/dist/enricher/store-adapter.js.map +1 -0
  179. package/dist/enricher/store.d.ts +58 -0
  180. package/dist/enricher/store.d.ts.map +1 -0
  181. package/dist/enricher/store.js +126 -0
  182. package/dist/enricher/store.js.map +1 -0
  183. package/dist/enricher/tokenize.d.ts +10 -0
  184. package/dist/enricher/tokenize.d.ts.map +1 -0
  185. package/dist/enricher/tokenize.js +28 -0
  186. package/dist/enricher/tokenize.js.map +1 -0
  187. package/dist/errors.d.ts +41 -0
  188. package/dist/errors.d.ts.map +1 -0
  189. package/dist/errors.js +56 -0
  190. package/dist/errors.js.map +1 -0
  191. package/dist/health.d.ts +147 -0
  192. package/dist/health.d.ts.map +1 -0
  193. package/dist/health.js +168 -0
  194. package/dist/health.js.map +1 -0
  195. package/dist/hive-graph/deeplake-credentials.d.ts +68 -0
  196. package/dist/hive-graph/deeplake-credentials.d.ts.map +1 -0
  197. package/dist/hive-graph/deeplake-credentials.js +135 -0
  198. package/dist/hive-graph/deeplake-credentials.js.map +1 -0
  199. package/dist/hive-graph/deeplake-heal.d.ts +63 -0
  200. package/dist/hive-graph/deeplake-heal.d.ts.map +1 -0
  201. package/dist/hive-graph/deeplake-heal.js +118 -0
  202. package/dist/hive-graph/deeplake-heal.js.map +1 -0
  203. package/dist/hive-graph/deeplake-store.d.ts +199 -0
  204. package/dist/hive-graph/deeplake-store.d.ts.map +1 -0
  205. package/dist/hive-graph/deeplake-store.js +541 -0
  206. package/dist/hive-graph/deeplake-store.js.map +1 -0
  207. package/dist/hive-graph/deeplake-transport.d.ts +89 -0
  208. package/dist/hive-graph/deeplake-transport.d.ts.map +1 -0
  209. package/dist/hive-graph/deeplake-transport.js +145 -0
  210. package/dist/hive-graph/deeplake-transport.js.map +1 -0
  211. package/dist/hive-graph/hash.d.ts +3 -0
  212. package/dist/hive-graph/hash.d.ts.map +1 -0
  213. package/dist/hive-graph/hash.js +12 -0
  214. package/dist/hive-graph/hash.js.map +1 -0
  215. package/dist/hive-graph/memory-store.d.ts +39 -0
  216. package/dist/hive-graph/memory-store.d.ts.map +1 -0
  217. package/dist/hive-graph/memory-store.js +125 -0
  218. package/dist/hive-graph/memory-store.js.map +1 -0
  219. package/dist/hive-graph/model.d.ts +109 -0
  220. package/dist/hive-graph/model.d.ts.map +1 -0
  221. package/dist/hive-graph/model.js +36 -0
  222. package/dist/hive-graph/model.js.map +1 -0
  223. package/dist/hive-graph/paths.d.ts +7 -0
  224. package/dist/hive-graph/paths.d.ts.map +1 -0
  225. package/dist/hive-graph/paths.js +26 -0
  226. package/dist/hive-graph/paths.js.map +1 -0
  227. package/dist/hive-graph/project-scope.d.ts +99 -0
  228. package/dist/hive-graph/project-scope.d.ts.map +1 -0
  229. package/dist/hive-graph/project-scope.js +286 -0
  230. package/dist/hive-graph/project-scope.js.map +1 -0
  231. package/dist/hive-graph/schema.d.ts +53 -0
  232. package/dist/hive-graph/schema.d.ts.map +1 -0
  233. package/dist/hive-graph/schema.js +139 -0
  234. package/dist/hive-graph/schema.js.map +1 -0
  235. package/dist/hive-graph/search-types.d.ts +82 -0
  236. package/dist/hive-graph/search-types.d.ts.map +1 -0
  237. package/dist/hive-graph/search-types.js +2 -0
  238. package/dist/hive-graph/search-types.js.map +1 -0
  239. package/dist/hive-graph/search.d.ts +51 -0
  240. package/dist/hive-graph/search.d.ts.map +1 -0
  241. package/dist/hive-graph/search.js +417 -0
  242. package/dist/hive-graph/search.js.map +1 -0
  243. package/dist/hive-graph/sql-guards.d.ts +99 -0
  244. package/dist/hive-graph/sql-guards.d.ts.map +1 -0
  245. package/dist/hive-graph/sql-guards.js +129 -0
  246. package/dist/hive-graph/sql-guards.js.map +1 -0
  247. package/dist/hive-graph/store.d.ts +151 -0
  248. package/dist/hive-graph/store.d.ts.map +1 -0
  249. package/dist/hive-graph/store.js +2 -0
  250. package/dist/hive-graph/store.js.map +1 -0
  251. package/dist/hive-graph/ulid.d.ts +14 -0
  252. package/dist/hive-graph/ulid.d.ts.map +1 -0
  253. package/dist/hive-graph/ulid.js +109 -0
  254. package/dist/hive-graph/ulid.js.map +1 -0
  255. package/dist/hivedoctor-registry.d.ts +111 -0
  256. package/dist/hivedoctor-registry.d.ts.map +1 -0
  257. package/dist/hivedoctor-registry.js +143 -0
  258. package/dist/hivedoctor-registry.js.map +1 -0
  259. package/dist/index.d.ts +106 -0
  260. package/dist/index.d.ts.map +1 -0
  261. package/dist/index.js +78 -0
  262. package/dist/index.js.map +1 -0
  263. package/dist/lock.d.ts +66 -0
  264. package/dist/lock.d.ts.map +1 -0
  265. package/dist/lock.js +282 -0
  266. package/dist/lock.js.map +1 -0
  267. package/dist/poll-loop.d.ts +71 -0
  268. package/dist/poll-loop.d.ts.map +1 -0
  269. package/dist/poll-loop.js +130 -0
  270. package/dist/poll-loop.js.map +1 -0
  271. package/dist/portkey/config.d.ts +46 -0
  272. package/dist/portkey/config.d.ts.map +1 -0
  273. package/dist/portkey/config.js +68 -0
  274. package/dist/portkey/config.js.map +1 -0
  275. package/dist/portkey/describe-model.d.ts +53 -0
  276. package/dist/portkey/describe-model.d.ts.map +1 -0
  277. package/dist/portkey/describe-model.js +56 -0
  278. package/dist/portkey/describe-model.js.map +1 -0
  279. package/dist/portkey/headers.d.ts +31 -0
  280. package/dist/portkey/headers.d.ts.map +1 -0
  281. package/dist/portkey/headers.js +37 -0
  282. package/dist/portkey/headers.js.map +1 -0
  283. package/dist/portkey/transport.d.ts +89 -0
  284. package/dist/portkey/transport.d.ts.map +1 -0
  285. package/dist/portkey/transport.js +167 -0
  286. package/dist/portkey/transport.js.map +1 -0
  287. package/dist/projection/format.d.ts +51 -0
  288. package/dist/projection/format.d.ts.map +1 -0
  289. package/dist/projection/format.js +81 -0
  290. package/dist/projection/format.js.map +1 -0
  291. package/dist/projection/generate.d.ts +31 -0
  292. package/dist/projection/generate.d.ts.map +1 -0
  293. package/dist/projection/generate.js +83 -0
  294. package/dist/projection/generate.js.map +1 -0
  295. package/dist/projection/inherit.d.ts +27 -0
  296. package/dist/projection/inherit.d.ts.map +1 -0
  297. package/dist/projection/inherit.js +128 -0
  298. package/dist/projection/inherit.js.map +1 -0
  299. package/dist/projection/load.d.ts +47 -0
  300. package/dist/projection/load.d.ts.map +1 -0
  301. package/dist/projection/load.js +258 -0
  302. package/dist/projection/load.js.map +1 -0
  303. package/dist/projection/store-adapter.d.ts +42 -0
  304. package/dist/projection/store-adapter.d.ts.map +1 -0
  305. package/dist/projection/store-adapter.js +42 -0
  306. package/dist/projection/store-adapter.js.map +1 -0
  307. package/dist/projection/write.d.ts +79 -0
  308. package/dist/projection/write.d.ts.map +1 -0
  309. package/dist/projection/write.js +122 -0
  310. package/dist/projection/write.js.map +1 -0
  311. package/dist/registration/classify.d.ts +33 -0
  312. package/dist/registration/classify.d.ts.map +1 -0
  313. package/dist/registration/classify.js +32 -0
  314. package/dist/registration/classify.js.map +1 -0
  315. package/dist/registration/copy-detect.d.ts +22 -0
  316. package/dist/registration/copy-detect.d.ts.map +1 -0
  317. package/dist/registration/copy-detect.js +12 -0
  318. package/dist/registration/copy-detect.js.map +1 -0
  319. package/dist/registration/disk-fs.d.ts +41 -0
  320. package/dist/registration/disk-fs.d.ts.map +1 -0
  321. package/dist/registration/disk-fs.js +175 -0
  322. package/dist/registration/disk-fs.js.map +1 -0
  323. package/dist/registration/fs-watch.d.ts +114 -0
  324. package/dist/registration/fs-watch.d.ts.map +1 -0
  325. package/dist/registration/fs-watch.js +266 -0
  326. package/dist/registration/fs-watch.js.map +1 -0
  327. package/dist/registration/ignore.d.ts +77 -0
  328. package/dist/registration/ignore.d.ts.map +1 -0
  329. package/dist/registration/ignore.js +249 -0
  330. package/dist/registration/ignore.js.map +1 -0
  331. package/dist/registration/ladder.d.ts +211 -0
  332. package/dist/registration/ladder.d.ts.map +1 -0
  333. package/dist/registration/ladder.js +378 -0
  334. package/dist/registration/ladder.js.map +1 -0
  335. package/dist/registration/paths-safe.d.ts +21 -0
  336. package/dist/registration/paths-safe.d.ts.map +1 -0
  337. package/dist/registration/paths-safe.js +88 -0
  338. package/dist/registration/paths-safe.js.map +1 -0
  339. package/dist/registration/prune-cli.d.ts +48 -0
  340. package/dist/registration/prune-cli.d.ts.map +1 -0
  341. package/dist/registration/prune-cli.js +57 -0
  342. package/dist/registration/prune-cli.js.map +1 -0
  343. package/dist/registration/review-cli.d.ts +42 -0
  344. package/dist/registration/review-cli.d.ts.map +1 -0
  345. package/dist/registration/review-cli.js +110 -0
  346. package/dist/registration/review-cli.js.map +1 -0
  347. package/dist/registration/review-store.d.ts +73 -0
  348. package/dist/registration/review-store.d.ts.map +1 -0
  349. package/dist/registration/review-store.js +243 -0
  350. package/dist/registration/review-store.js.map +1 -0
  351. package/dist/registration/service.d.ts +196 -0
  352. package/dist/registration/service.d.ts.map +1 -0
  353. package/dist/registration/service.js +384 -0
  354. package/dist/registration/service.js.map +1 -0
  355. package/dist/registration/store-bridge.d.ts +133 -0
  356. package/dist/registration/store-bridge.d.ts.map +1 -0
  357. package/dist/registration/store-bridge.js +159 -0
  358. package/dist/registration/store-bridge.js.map +1 -0
  359. package/dist/registration/tlsh.d.ts +125 -0
  360. package/dist/registration/tlsh.d.ts.map +1 -0
  361. package/dist/registration/tlsh.js +274 -0
  362. package/dist/registration/tlsh.js.map +1 -0
  363. package/dist/server.d.ts +26 -0
  364. package/dist/server.d.ts.map +1 -0
  365. package/dist/server.js +156 -0
  366. package/dist/server.js.map +1 -0
  367. package/dist/service/argv.d.ts +52 -0
  368. package/dist/service/argv.d.ts.map +1 -0
  369. package/dist/service/argv.js +127 -0
  370. package/dist/service/argv.js.map +1 -0
  371. package/dist/service/command-runner.d.ts +54 -0
  372. package/dist/service/command-runner.d.ts.map +1 -0
  373. package/dist/service/command-runner.js +55 -0
  374. package/dist/service/command-runner.js.map +1 -0
  375. package/dist/service/index.d.ts +83 -0
  376. package/dist/service/index.d.ts.map +1 -0
  377. package/dist/service/index.js +270 -0
  378. package/dist/service/index.js.map +1 -0
  379. package/dist/service/platform.d.ts +110 -0
  380. package/dist/service/platform.d.ts.map +1 -0
  381. package/dist/service/platform.js +157 -0
  382. package/dist/service/platform.js.map +1 -0
  383. package/dist/service/templates.d.ts +88 -0
  384. package/dist/service/templates.d.ts.map +1 -0
  385. package/dist/service/templates.js +212 -0
  386. package/dist/service/templates.js.map +1 -0
  387. package/dist/source-graph/deeplake-credentials.d.ts +57 -0
  388. package/dist/source-graph/deeplake-credentials.d.ts.map +1 -0
  389. package/dist/source-graph/deeplake-credentials.js +109 -0
  390. package/dist/source-graph/deeplake-credentials.js.map +1 -0
  391. package/dist/source-graph/deeplake-heal.d.ts +53 -0
  392. package/dist/source-graph/deeplake-heal.d.ts.map +1 -0
  393. package/dist/source-graph/deeplake-heal.js +41 -0
  394. package/dist/source-graph/deeplake-heal.js.map +1 -0
  395. package/dist/source-graph/deeplake-store.d.ts +151 -0
  396. package/dist/source-graph/deeplake-store.d.ts.map +1 -0
  397. package/dist/source-graph/deeplake-store.js +389 -0
  398. package/dist/source-graph/deeplake-store.js.map +1 -0
  399. package/dist/source-graph/deeplake-transport.d.ts +74 -0
  400. package/dist/source-graph/deeplake-transport.d.ts.map +1 -0
  401. package/dist/source-graph/deeplake-transport.js +107 -0
  402. package/dist/source-graph/deeplake-transport.js.map +1 -0
  403. package/dist/source-graph/hash.d.ts +3 -0
  404. package/dist/source-graph/hash.d.ts.map +1 -0
  405. package/dist/source-graph/hash.js +12 -0
  406. package/dist/source-graph/hash.js.map +1 -0
  407. package/dist/source-graph/memory-store.d.ts +32 -0
  408. package/dist/source-graph/memory-store.d.ts.map +1 -0
  409. package/dist/source-graph/memory-store.js +81 -0
  410. package/dist/source-graph/memory-store.js.map +1 -0
  411. package/dist/source-graph/model.d.ts +102 -0
  412. package/dist/source-graph/model.d.ts.map +1 -0
  413. package/dist/source-graph/model.js +36 -0
  414. package/dist/source-graph/model.js.map +1 -0
  415. package/dist/source-graph/paths.d.ts +7 -0
  416. package/dist/source-graph/paths.d.ts.map +1 -0
  417. package/dist/source-graph/paths.js +26 -0
  418. package/dist/source-graph/paths.js.map +1 -0
  419. package/dist/source-graph/schema.d.ts +44 -0
  420. package/dist/source-graph/schema.d.ts.map +1 -0
  421. package/dist/source-graph/schema.js +123 -0
  422. package/dist/source-graph/schema.js.map +1 -0
  423. package/dist/source-graph/sql-guards.d.ts +99 -0
  424. package/dist/source-graph/sql-guards.d.ts.map +1 -0
  425. package/dist/source-graph/sql-guards.js +129 -0
  426. package/dist/source-graph/sql-guards.js.map +1 -0
  427. package/dist/source-graph/store.d.ts +101 -0
  428. package/dist/source-graph/store.d.ts.map +1 -0
  429. package/dist/source-graph/store.js +2 -0
  430. package/dist/source-graph/store.js.map +1 -0
  431. package/dist/source-graph/ulid.d.ts +9 -0
  432. package/dist/source-graph/ulid.d.ts.map +1 -0
  433. package/dist/source-graph/ulid.js +61 -0
  434. package/dist/source-graph/ulid.js.map +1 -0
  435. package/dist/telemetry/checkin.d.ts +66 -0
  436. package/dist/telemetry/checkin.d.ts.map +1 -0
  437. package/dist/telemetry/checkin.js +142 -0
  438. package/dist/telemetry/checkin.js.map +1 -0
  439. package/dist/telemetry/db.d.ts +34 -0
  440. package/dist/telemetry/db.d.ts.map +1 -0
  441. package/dist/telemetry/db.js +122 -0
  442. package/dist/telemetry/db.js.map +1 -0
  443. package/dist/telemetry/index.d.ts +76 -0
  444. package/dist/telemetry/index.d.ts.map +1 -0
  445. package/dist/telemetry/index.js +98 -0
  446. package/dist/telemetry/index.js.map +1 -0
  447. package/dist/telemetry/logs.d.ts +83 -0
  448. package/dist/telemetry/logs.d.ts.map +1 -0
  449. package/dist/telemetry/logs.js +110 -0
  450. package/dist/telemetry/logs.js.map +1 -0
  451. package/dist/telemetry/metrics.d.ts +82 -0
  452. package/dist/telemetry/metrics.d.ts.map +1 -0
  453. package/dist/telemetry/metrics.js +148 -0
  454. package/dist/telemetry/metrics.js.map +1 -0
  455. package/dist/telemetry-usage/emit.d.ts +105 -0
  456. package/dist/telemetry-usage/emit.d.ts.map +1 -0
  457. package/dist/telemetry-usage/emit.js +267 -0
  458. package/dist/telemetry-usage/emit.js.map +1 -0
  459. package/dist/telemetry-usage/posthog-key.d.ts +22 -0
  460. package/dist/telemetry-usage/posthog-key.d.ts.map +1 -0
  461. package/dist/telemetry-usage/posthog-key.js +22 -0
  462. package/dist/telemetry-usage/posthog-key.js.map +1 -0
  463. package/dist/worker.d.ts +69 -0
  464. package/dist/worker.d.ts.map +1 -0
  465. package/dist/worker.js +91 -0
  466. package/dist/worker.js.map +1 -0
  467. package/package.json +44 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * nectar's registry entry in doctor's daemon registry (PRD-003c).
3
+ *
4
+ * nectar becomes a supervised daemon by appending ONE entry to doctor's
5
+ * registry file (`~/.honeycomb/doctor.daemons.json`, the schema PRD-004a
6
+ * specifies, mirrored read-side in `doctor/src/registry.ts`). That entry
7
+ * carries nectar's `healthUrl`, `pidPath`, `probeIntervalMs`, `startupGraceMs`,
8
+ * and restart thresholds. At the next doctor boot, doctor reads the
9
+ * registry and spawns one supervisor instance for nectar alongside honeycomb
10
+ * and hive.
11
+ *
12
+ * Registration is a FILE EDIT at install time (PRD-003c "Registration mechanics"),
13
+ * never a runtime call: this module does not restart doctor, does not open an
14
+ * HTTP connection, and does not hot-reload anything. It is idempotent - re-running
15
+ * the installer replaces nectar's own entry (keyed by `name: "nectar"`)
16
+ * rather than appending a duplicate, and every other daemon's entry is preserved
17
+ * byte-for-byte apart from array position.
18
+ *
19
+ * A PRESENT-but-malformed registry file fails loudly (this module never silently
20
+ * clobbers a broken file it cannot safely parse), mirroring doctor's own
21
+ * fail-loud posture for a malformed registry (`doctor/src/registry.ts`).
22
+ * PRD-017a deliberately does NOT change this posture to match doctor's own
23
+ * fail-soft posture for a malformed registry read - the two are intentionally
24
+ * different (this writer refuses to clobber a broken install-time file; a
25
+ * malformed registry read is doctor's own runtime concern, not this one).
26
+ *
27
+ * **Known race (PRD-018j / NEC-032).** Concurrent installs of two products
28
+ * (for example nectar and hive) perform read-modify-write with no serialization;
29
+ * one entry can be lost. Writes are atomic (temp file plus rename) and preserve
30
+ * unknown top-level keys, but the read-modify-write window itself is not locked.
31
+ *
32
+ * PRD-017a extends this entry with `telemetryDbPath`: the absolute path to
33
+ * nectar's runtime telemetry SQLite database (`telemetry/db.ts`,
34
+ * `~/.honeycomb/telemetry/nectar.sqlite` by default), per doctor's
35
+ * `ADR-0002-service-registration-static-registry-plus-runtime-sqlite.md`. It is
36
+ * derived from `config.pidFilePath`'s directory (the same resolved runtime dir
37
+ * `healthUrl`/`pidPath` already come from), so a test-overridden runtime dir
38
+ * (`NECTAR_RUNTIME_DIR` / `resolveConfig({ runtimeDir })`) keeps every
39
+ * per-daemon artifact - pid, lock, and now telemetry DB - colocated, with no
40
+ * separate `~` round-trip needed here (same rationale as `healthUrl`/`pidPath`).
41
+ *
42
+ * Built-ins only: node:fs, node:os, node:path.
43
+ */
44
+ import type { RuntimeConfig } from "./config.js";
45
+ /** The daemon name nectar registers itself under. */
46
+ export declare const NECTAR_DAEMON_NAME: "nectar";
47
+ /**
48
+ * Who restarts nectar. PRD-018a (NEC-030) decides the OS service unit is the
49
+ * single restart authority: doctor probes health and reports, but does not spawn
50
+ * or restart nectar when an OS unit is installed. `nectar install` installs an
51
+ * always-restart OS unit (`service/index.ts`), so the registry entry it writes
52
+ * marks restarts as externally owned. Two contending restart authorities would,
53
+ * via NEC-002, have each losing attempt destroy the winner's lock.
54
+ */
55
+ export declare const NECTAR_RESTART_POLICY: "external";
56
+ export type RestartPolicy = typeof NECTAR_RESTART_POLICY;
57
+ /**
58
+ * One registry entry, matching the schema doctor's registry loader parses
59
+ * (PRD-004a / `doctor/src/registry.ts`).
60
+ */
61
+ export interface DoctorRegistryEntry {
62
+ readonly name: string;
63
+ readonly healthUrl: string;
64
+ readonly pidPath: string;
65
+ readonly probeIntervalMs: number;
66
+ readonly startupGraceMs: number;
67
+ readonly restartGiveUpThreshold: number;
68
+ readonly restartCooldownMs: number;
69
+ /**
70
+ * Who owns restarting nectar (PRD-018a NEC-030). `"external"` marks the OS
71
+ * service unit as the single restart authority, so doctor observes health but
72
+ * does not spawn/restart nectar. Optional in the type only so a pre-PRD-018a
73
+ * entry a test constructs by hand still type-checks; `buildNectarRegistryEntry`
74
+ * always populates it.
75
+ */
76
+ readonly restartPolicy?: RestartPolicy;
77
+ /**
78
+ * The absolute path to nectar's runtime telemetry SQLite database
79
+ * (PRD-017a), so doctor knows where to poll (read-only) for check-in
80
+ * status, metrics, and logs. Optional in the type only so a pre-PRD-017
81
+ * entry a test constructs by hand still type-checks; `buildNectarRegistryEntry`
82
+ * always populates it.
83
+ */
84
+ readonly telemetryDbPath?: string;
85
+ }
86
+ /** doctor's per-daemon defaults nectar's entry resolves to (PRD-003c table). */
87
+ export declare const DEFAULT_PROBE_INTERVAL_MS = 30000;
88
+ export declare const DEFAULT_STARTUP_GRACE_MS = 60000;
89
+ export declare const DEFAULT_RESTART_GIVE_UP_THRESHOLD = 3;
90
+ export declare const DEFAULT_RESTART_COOLDOWN_MS = 5000;
91
+ /** Thrown when a PRESENT registry file cannot be safely parsed/edited. */
92
+ export declare class DoctorRegistryError extends Error {
93
+ constructor(message: string);
94
+ }
95
+ /** The default registry file location, alongside the other `~/.honeycomb` artifacts. */
96
+ export declare function defaultDoctorRegistryPath(home?: string): string;
97
+ /**
98
+ * Build nectar's registry entry from its resolved {@link RuntimeConfig}
99
+ * (PRD-003c table): `healthUrl`/`pidPath` come from nectar's own runtime
100
+ * config (already home-expanded, so no `~` round-trip is needed here); the
101
+ * remaining fields are doctor's per-daemon defaults unless overridden.
102
+ *
103
+ * `telemetryDbPath` (PRD-017a) defaults to `<runtimeDir>/telemetry/nectar.sqlite`,
104
+ * where `runtimeDir` is `pidFilePath`'s own directory - the same resolved
105
+ * runtime dir every other per-daemon artifact already lives under, so a
106
+ * test-overridden runtime dir keeps pid/lock/telemetry colocated automatically.
107
+ */
108
+ export declare function buildNectarRegistryEntry(config: Pick<RuntimeConfig, "host" | "port" | "pidFilePath">, overrides?: Partial<Pick<DoctorRegistryEntry, "probeIntervalMs" | "startupGraceMs" | "restartGiveUpThreshold" | "restartCooldownMs" | "telemetryDbPath">>): DoctorRegistryEntry;
109
+ export interface RegisterWithDoctorOptions {
110
+ /** nectar's runtime config (supplies healthUrl + pidPath). */
111
+ readonly config: Pick<RuntimeConfig, "host" | "port" | "pidFilePath">;
112
+ /** Override the registry file path (default: {@link defaultDoctorRegistryPath}). */
113
+ readonly registryPath?: string;
114
+ /** Override the entry's per-daemon fields (default: doctor's built-in defaults). */
115
+ readonly overrides?: Partial<Pick<DoctorRegistryEntry, "probeIntervalMs" | "startupGraceMs" | "restartGiveUpThreshold" | "restartCooldownMs" | "telemetryDbPath">>;
116
+ }
117
+ export interface RegisterWithDoctorResult {
118
+ /** The path the registry file was written to. */
119
+ readonly registryPath: string;
120
+ /** The entry that was written for nectar. */
121
+ readonly entry: DoctorRegistryEntry;
122
+ /** True when the registry file did not exist and was created fresh. */
123
+ readonly created: boolean;
124
+ /** True when an existing nectar entry was replaced (idempotent re-install). */
125
+ readonly replaced: boolean;
126
+ }
127
+ /**
128
+ * Append (or idempotently replace) nectar's entry in doctor's registry
129
+ * file (PRD-003c US-003c.1). Every OTHER daemon's entry is preserved unchanged.
130
+ * Does NOT restart doctor and does NOT touch anything besides this one file -
131
+ * the entry takes effect at doctor's next natural boot (PRD-003c Non-Goals).
132
+ */
133
+ export declare function registerWithDoctor(options: RegisterWithDoctorOptions): RegisterWithDoctorResult;
134
+ //# sourceMappingURL=doctor-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-registry.d.ts","sourceRoot":"","sources":["../src/doctor-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,EAAG,QAAiB,CAAC;AAEpD;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,EAAG,UAAmB,CAAC;AACzD,MAAM,MAAM,aAAa,GAAG,OAAO,qBAAqB,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,gFAAgF;AAChF,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAChD,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AAEjD,0EAA0E;AAC1E,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,wFAAwF;AACxF,wBAAgB,yBAAyB,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,CAE1E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC,EAC5D,SAAS,GAAE,OAAO,CAChB,IAAI,CACF,mBAAmB,EACnB,iBAAiB,GAAG,gBAAgB,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,iBAAiB,CAC1G,CACG,GACL,mBAAmB,CAcrB;AA+ED,MAAM,WAAW,yBAAyB;IACxC,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC,CAAC;IACtE,oFAAoF;IACpF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,oFAAoF;IACpF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAC1B,IAAI,CACF,mBAAmB,EACnB,iBAAiB,GAAG,gBAAgB,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,iBAAiB,CAC1G,CACF,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,iDAAiD;IACjD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,yBAAyB,GACjC,wBAAwB,CAY1B"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * nectar's registry entry in doctor's daemon registry (PRD-003c).
3
+ *
4
+ * nectar becomes a supervised daemon by appending ONE entry to doctor's
5
+ * registry file (`~/.honeycomb/doctor.daemons.json`, the schema PRD-004a
6
+ * specifies, mirrored read-side in `doctor/src/registry.ts`). That entry
7
+ * carries nectar's `healthUrl`, `pidPath`, `probeIntervalMs`, `startupGraceMs`,
8
+ * and restart thresholds. At the next doctor boot, doctor reads the
9
+ * registry and spawns one supervisor instance for nectar alongside honeycomb
10
+ * and hive.
11
+ *
12
+ * Registration is a FILE EDIT at install time (PRD-003c "Registration mechanics"),
13
+ * never a runtime call: this module does not restart doctor, does not open an
14
+ * HTTP connection, and does not hot-reload anything. It is idempotent - re-running
15
+ * the installer replaces nectar's own entry (keyed by `name: "nectar"`)
16
+ * rather than appending a duplicate, and every other daemon's entry is preserved
17
+ * byte-for-byte apart from array position.
18
+ *
19
+ * A PRESENT-but-malformed registry file fails loudly (this module never silently
20
+ * clobbers a broken file it cannot safely parse), mirroring doctor's own
21
+ * fail-loud posture for a malformed registry (`doctor/src/registry.ts`).
22
+ * PRD-017a deliberately does NOT change this posture to match doctor's own
23
+ * fail-soft posture for a malformed registry read - the two are intentionally
24
+ * different (this writer refuses to clobber a broken install-time file; a
25
+ * malformed registry read is doctor's own runtime concern, not this one).
26
+ *
27
+ * **Known race (PRD-018j / NEC-032).** Concurrent installs of two products
28
+ * (for example nectar and hive) perform read-modify-write with no serialization;
29
+ * one entry can be lost. Writes are atomic (temp file plus rename) and preserve
30
+ * unknown top-level keys, but the read-modify-write window itself is not locked.
31
+ *
32
+ * PRD-017a extends this entry with `telemetryDbPath`: the absolute path to
33
+ * nectar's runtime telemetry SQLite database (`telemetry/db.ts`,
34
+ * `~/.honeycomb/telemetry/nectar.sqlite` by default), per doctor's
35
+ * `ADR-0002-service-registration-static-registry-plus-runtime-sqlite.md`. It is
36
+ * derived from `config.pidFilePath`'s directory (the same resolved runtime dir
37
+ * `healthUrl`/`pidPath` already come from), so a test-overridden runtime dir
38
+ * (`NECTAR_RUNTIME_DIR` / `resolveConfig({ runtimeDir })`) keeps every
39
+ * per-daemon artifact - pid, lock, and now telemetry DB - colocated, with no
40
+ * separate `~` round-trip needed here (same rationale as `healthUrl`/`pidPath`).
41
+ *
42
+ * Built-ins only: node:fs, node:os, node:path.
43
+ */
44
+ import { mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
45
+ import { homedir } from "node:os";
46
+ import { basename, dirname, join } from "node:path";
47
+ import { TELEMETRY_DB_FILE_NAME, TELEMETRY_DIR_NAME } from "./telemetry/db.js";
48
+ /** The daemon name nectar registers itself under. */
49
+ export const NECTAR_DAEMON_NAME = "nectar";
50
+ /**
51
+ * Who restarts nectar. PRD-018a (NEC-030) decides the OS service unit is the
52
+ * single restart authority: doctor probes health and reports, but does not spawn
53
+ * or restart nectar when an OS unit is installed. `nectar install` installs an
54
+ * always-restart OS unit (`service/index.ts`), so the registry entry it writes
55
+ * marks restarts as externally owned. Two contending restart authorities would,
56
+ * via NEC-002, have each losing attempt destroy the winner's lock.
57
+ */
58
+ export const NECTAR_RESTART_POLICY = "external";
59
+ /** doctor's per-daemon defaults nectar's entry resolves to (PRD-003c table). */
60
+ export const DEFAULT_PROBE_INTERVAL_MS = 30_000;
61
+ export const DEFAULT_STARTUP_GRACE_MS = 60_000;
62
+ export const DEFAULT_RESTART_GIVE_UP_THRESHOLD = 3;
63
+ export const DEFAULT_RESTART_COOLDOWN_MS = 5_000;
64
+ /** Thrown when a PRESENT registry file cannot be safely parsed/edited. */
65
+ export class DoctorRegistryError extends Error {
66
+ constructor(message) {
67
+ super(message);
68
+ this.name = "DoctorRegistryError";
69
+ }
70
+ }
71
+ /** The default registry file location, alongside the other `~/.honeycomb` artifacts. */
72
+ export function defaultDoctorRegistryPath(home = homedir()) {
73
+ return join(home, ".honeycomb", "doctor.daemons.json");
74
+ }
75
+ /**
76
+ * Build nectar's registry entry from its resolved {@link RuntimeConfig}
77
+ * (PRD-003c table): `healthUrl`/`pidPath` come from nectar's own runtime
78
+ * config (already home-expanded, so no `~` round-trip is needed here); the
79
+ * remaining fields are doctor's per-daemon defaults unless overridden.
80
+ *
81
+ * `telemetryDbPath` (PRD-017a) defaults to `<runtimeDir>/telemetry/nectar.sqlite`,
82
+ * where `runtimeDir` is `pidFilePath`'s own directory - the same resolved
83
+ * runtime dir every other per-daemon artifact already lives under, so a
84
+ * test-overridden runtime dir keeps pid/lock/telemetry colocated automatically.
85
+ */
86
+ export function buildNectarRegistryEntry(config, overrides = {}) {
87
+ const runtimeDir = dirname(config.pidFilePath);
88
+ return {
89
+ name: NECTAR_DAEMON_NAME,
90
+ healthUrl: `http://${config.host}:${config.port}/health`,
91
+ pidPath: config.pidFilePath,
92
+ probeIntervalMs: overrides.probeIntervalMs ?? DEFAULT_PROBE_INTERVAL_MS,
93
+ startupGraceMs: overrides.startupGraceMs ?? DEFAULT_STARTUP_GRACE_MS,
94
+ restartGiveUpThreshold: overrides.restartGiveUpThreshold ?? DEFAULT_RESTART_GIVE_UP_THRESHOLD,
95
+ restartCooldownMs: overrides.restartCooldownMs ?? DEFAULT_RESTART_COOLDOWN_MS,
96
+ // PRD-018a NEC-030: the OS service unit is the single restart authority.
97
+ restartPolicy: NECTAR_RESTART_POLICY,
98
+ telemetryDbPath: overrides.telemetryDbPath ?? join(runtimeDir, TELEMETRY_DIR_NAME, TELEMETRY_DB_FILE_NAME),
99
+ };
100
+ }
101
+ function isRecord(value) {
102
+ return value !== null && typeof value === "object";
103
+ }
104
+ /**
105
+ * Read the registry file's raw `daemons` array. A PRESENT-but-malformed file
106
+ * (unparseable JSON, not an object, or a `daemons` field that is not an array)
107
+ * throws {@link DoctorRegistryError} rather than being silently overwritten -
108
+ * a real misconfiguration must not be clobbered by an installer.
109
+ */
110
+ function readExistingRegistry(registryPath) {
111
+ let contents;
112
+ try {
113
+ contents = readFileSync(registryPath, "utf8");
114
+ }
115
+ catch (error) {
116
+ if (error.code === "ENOENT") {
117
+ return { fileExisted: false, root: {}, daemons: [] };
118
+ }
119
+ throw new DoctorRegistryError(`could not read the doctor registry at ${registryPath}: ${error instanceof Error ? error.message : "unknown"}`);
120
+ }
121
+ let parsed;
122
+ try {
123
+ parsed = JSON.parse(contents);
124
+ }
125
+ catch (error) {
126
+ throw new DoctorRegistryError(`the doctor registry at ${registryPath} is not valid JSON: ${error instanceof Error ? error.message : "unknown"}`);
127
+ }
128
+ if (!isRecord(parsed)) {
129
+ throw new DoctorRegistryError(`the doctor registry at ${registryPath} must be a JSON object with a "daemons" array`);
130
+ }
131
+ const daemons = parsed.daemons;
132
+ if (daemons === undefined)
133
+ return { fileExisted: true, root: { ...parsed }, daemons: [] };
134
+ if (!Array.isArray(daemons)) {
135
+ throw new DoctorRegistryError(`the doctor registry at ${registryPath} has a non-array "daemons" field`);
136
+ }
137
+ return { fileExisted: true, root: { ...parsed }, daemons };
138
+ }
139
+ /**
140
+ * Serialize and write the registry atomically (temp + rename in the same
141
+ * directory), mirroring `projection/write.ts:56-73`.
142
+ */
143
+ function writeRegistryAtomic(registryPath, root) {
144
+ const dir = dirname(registryPath);
145
+ mkdirSync(dir, { recursive: true });
146
+ const baseName = basename(registryPath);
147
+ const tmpPath = join(dir, `.${baseName}.${process.pid}.${Date.now()}.tmp`);
148
+ // Known limitation (PRD-018j / NEC-032): concurrent installs of two products
149
+ // perform read-modify-write with no serialization; one entry can be lost.
150
+ writeFileSync(tmpPath, `${JSON.stringify(root, null, 2)}\n`, "utf8");
151
+ renameSync(tmpPath, registryPath);
152
+ }
153
+ /** True iff a raw (unvalidated) registry entry names nectar. */
154
+ function isNectarEntry(raw) {
155
+ return isRecord(raw) && raw.name === NECTAR_DAEMON_NAME;
156
+ }
157
+ /**
158
+ * Append (or idempotently replace) nectar's entry in doctor's registry
159
+ * file (PRD-003c US-003c.1). Every OTHER daemon's entry is preserved unchanged.
160
+ * Does NOT restart doctor and does NOT touch anything besides this one file -
161
+ * the entry takes effect at doctor's next natural boot (PRD-003c Non-Goals).
162
+ */
163
+ export function registerWithDoctor(options) {
164
+ const registryPath = options.registryPath ?? defaultDoctorRegistryPath();
165
+ const entry = buildNectarRegistryEntry(options.config, options.overrides);
166
+ const { fileExisted, root, daemons: existing } = readExistingRegistry(registryPath);
167
+ const replaced = existing.some(isNectarEntry);
168
+ const kept = existing.filter((raw) => !isNectarEntry(raw));
169
+ const updatedRoot = { ...root, daemons: [...kept, entry] };
170
+ writeRegistryAtomic(registryPath, updatedRoot);
171
+ return { registryPath, entry, created: !fileExisted, replaced };
172
+ }
173
+ //# sourceMappingURL=doctor-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-registry.js","sourceRoot":"","sources":["../src/doctor-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { type FetchLike, type SleepFn } from "./http.js";
2
+ import type { EmbedProvider } from "./provider.js";
3
+ /** SIGNED OFF 2026-07-02 (decision #30): the Cohere embed model the opt-in targets. Config-overridable. */
4
+ export declare const DEFAULT_COHERE_EMBED_MODEL: "embed-v4.0";
5
+ /**
6
+ * SIGNED OFF 2026-07-02 (decision #30): the requested output dimension. 768 keeps
7
+ * the opt-in on the fixed 768-dim contract; the guard discards anything else.
8
+ * Config-overridable. (Cohere's documented Matryoshka set for embed-v4.0 is
9
+ * [256, 512, 1024, 1536]; if the gateway ignores 768 the guard degrades to BM25.
10
+ * See the module report.)
11
+ */
12
+ export declare const DEFAULT_COHERE_OUTPUT_DIMENSION: 768;
13
+ /** HTTP statuses that trigger a bounded retry (429 rate limit + transient 5xx), matching the chat transport. */
14
+ export declare const COHERE_RETRYABLE_STATUSES: ReadonlySet<number>;
15
+ /** Maximum attempts including the first POST (mirrors `src/portkey/transport.ts`'s `PORTKEY_MAX_ATTEMPTS`). */
16
+ export declare const DEFAULT_COHERE_MAX_ATTEMPTS: 3;
17
+ /** Backoff between retryable failures in ms (mirrors `src/portkey/transport.ts`'s backoff). */
18
+ export declare const DEFAULT_COHERE_RETRY_BACKOFF_MS: 250;
19
+ /**
20
+ * Per-attempt request timeout (ms), mirroring `deeplake-transport.ts`'s
21
+ * `DEFAULT_TRANSPORT_TIMEOUT_MS` AbortController pattern: an unresponsive gateway
22
+ * aborts rather than hanging the embed path indefinitely (fail-soft, AC-4).
23
+ */
24
+ export declare const DEFAULT_COHERE_REQUEST_TIMEOUT_MS: 15000;
25
+ /** The resolved Cohere-via-Portkey config. `apiKey`/`configId` are `null` when Portkey is not keyed. */
26
+ export interface CohereEmbeddingsConfig {
27
+ /** The Cohere embed model id (default {@link DEFAULT_COHERE_EMBED_MODEL}). Config-overridable (AC-2). */
28
+ readonly model: string;
29
+ /** The requested output dimension (default {@link DEFAULT_COHERE_OUTPUT_DIMENSION}). Config-overridable (AC-2). */
30
+ readonly outputDimension: number;
31
+ /** The resolved Portkey API key, or `null` when unkeyed (then embed fails soft to nulls). */
32
+ readonly apiKey: string | null;
33
+ /** The `portkey.config` / virtual-key id, or `null` when unset. */
34
+ readonly configId: string | null;
35
+ /** The endpoint URL (default {@link PORTKEY_EMBEDDINGS_URL}); overridable for a fake-fetch test. */
36
+ readonly url: string;
37
+ /** Max attempts including the first POST. */
38
+ readonly maxAttempts: number;
39
+ /** Backoff between retryable failures (ms). */
40
+ readonly retryBackoffMs: number;
41
+ /** Per-attempt request timeout (ms) before the attempt aborts (default {@link DEFAULT_COHERE_REQUEST_TIMEOUT_MS}). */
42
+ readonly requestTimeoutMs: number;
43
+ }
44
+ /** Construction deps for {@link createCoherePortkeyProvider}; fetch + sleep are injectable for tests. */
45
+ export interface CoherePortkeyDeps {
46
+ /** The `fetch` implementation; defaults to `globalThis.fetch`. Tests inject a fake (no network). */
47
+ readonly fetch?: FetchLike;
48
+ /** The backoff sleep; a test passes a no-op so retry paths run without real time. */
49
+ readonly sleep?: SleepFn;
50
+ }
51
+ /**
52
+ * Parse the embeddings response into one vector (or `null`) per input index,
53
+ * defensively. Primary shape is Portkey's OpenAI-compatible
54
+ * `{ data: [{ embedding: number[], index }] }`; a Cohere-native
55
+ * `{ embeddings: number[][] }` or `{ embeddings: { float: number[][] } }` body is
56
+ * tolerated as a fallback. Anything else yields all-nulls. Never throws. The
57
+ * per-vector dimension is NOT checked here — the guard owns that (AC-3).
58
+ */
59
+ export declare function parseEmbeddingsResponse(raw: string, count: number): (number[] | null)[];
60
+ /**
61
+ * Build the Cohere-via-Portkey embeddings {@link EmbedProvider} (PRD-014b). A
62
+ * batch is sent as ONE POST reusing the rerank transport's auth pattern; the body
63
+ * carries the config model id + `output_dimension` (AC-2). Every failure resolves
64
+ * to nulls for the batch (fail-soft, AC-4); the key is never logged or thrown.
65
+ */
66
+ export declare function createCoherePortkeyProvider(config: CohereEmbeddingsConfig, deps?: CoherePortkeyDeps): EmbedProvider;
67
+ //# sourceMappingURL=cohere-portkey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cohere-portkey.d.ts","sourceRoot":"","sources":["../../src/embeddings/cohere-portkey.ts"],"names":[],"mappings":"AA+BA,OAAO,EAA8B,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,2GAA2G;AAC3G,eAAO,MAAM,0BAA0B,EAAG,YAAqB,CAAC;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,EAAG,GAAY,CAAC;AAE5D,gHAAgH;AAChH,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAAsC,CAAC;AAEjG,+GAA+G;AAC/G,eAAO,MAAM,2BAA2B,EAAG,CAAU,CAAC;AAEtD,+FAA+F;AAC/F,eAAO,MAAM,+BAA+B,EAAG,GAAY,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,EAAG,KAAe,CAAC;AAEjE,wGAAwG;AACxG,MAAM,WAAW,sBAAsB;IACrC,yGAAyG;IACzG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mHAAmH;IACnH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oGAAoG;IACpG,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+CAA+C;IAC/C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,sHAAsH;IACtH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,yGAAyG;AACzG,MAAM,WAAW,iBAAiB;IAChC,oGAAoG;IACpG,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,qFAAqF;IACrF,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAOD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAyCvF;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,sBAAsB,EAC9B,IAAI,GAAE,iBAAsB,GAC3B,aAAa,CAsDf"}
@@ -0,0 +1,171 @@
1
+ /**
2
+ * The Cohere-via-Portkey embeddings transport (PRD-014b — the operator opt-in).
3
+ *
4
+ * Modeled on honeycomb's shipped Cohere-rerank-via-Portkey transport
5
+ * (`honeycomb/src/daemon/runtime/recall/rerank-portkey.ts`): it reuses the SAME
6
+ * `x-portkey-api-key` + `x-portkey-config` auth pair (via
7
+ * {@link buildPortkeyHeaders}) and the SAME gateway host; the ONE difference is
8
+ * the path — `/v1/embeddings` ({@link PORTKEY_EMBEDDINGS_URL}) instead of
9
+ * `/v1/rerank` — and the request/response shape.
10
+ *
11
+ * ── Model + dimension are config, not hardcoded (decision #30) ───────────────
12
+ * The opt-in targets Cohere `embed-v4.0` with `output_dimension: 768` so it
13
+ * produces contract-valid 768-dim vectors instead of guard-discarded 1024-dim
14
+ * ones. Both the model id and the output dimension are config values
15
+ * ({@link CohereEmbeddingsConfig}); recall's 768-dim guard (`guard.ts`) stays as
16
+ * the backstop for whatever the gateway actually returns.
17
+ *
18
+ * ── Fail-soft is the cardinal rule (AC-4 / US-014b.3) ────────────────────────
19
+ * EVERY failure path — Portkey not keyed, a network/transport error, a non-2xx
20
+ * gateway status, or a malformed body — resolves to `null` for the affected
21
+ * texts, NEVER a throw into the caller's hot path. A bounded retry covers 429 +
22
+ * transient 5xx (the same statuses the sibling chat transport retries); the
23
+ * bound is exhausted to nulls rather than thrown.
24
+ *
25
+ * ── The secret-never-logged invariant (US-014b.3) ────────────────────────────
26
+ * The resolved key is placed ONLY in the `x-portkey-api-key` header (via
27
+ * {@link buildPortkeyHeaders}) and is NEVER included in a returned value, a log
28
+ * line, or an error. On any failure the response body is not read into a message
29
+ * (it could echo a credential).
30
+ */
31
+ import { buildPortkeyHeaders, PORTKEY_EMBEDDINGS_URL } from "../portkey/headers.js";
32
+ import { defaultFetch, defaultSleep } from "./http.js";
33
+ /** SIGNED OFF 2026-07-02 (decision #30): the Cohere embed model the opt-in targets. Config-overridable. */
34
+ export const DEFAULT_COHERE_EMBED_MODEL = "embed-v4.0";
35
+ /**
36
+ * SIGNED OFF 2026-07-02 (decision #30): the requested output dimension. 768 keeps
37
+ * the opt-in on the fixed 768-dim contract; the guard discards anything else.
38
+ * Config-overridable. (Cohere's documented Matryoshka set for embed-v4.0 is
39
+ * [256, 512, 1024, 1536]; if the gateway ignores 768 the guard degrades to BM25.
40
+ * See the module report.)
41
+ */
42
+ export const DEFAULT_COHERE_OUTPUT_DIMENSION = 768;
43
+ /** HTTP statuses that trigger a bounded retry (429 rate limit + transient 5xx), matching the chat transport. */
44
+ export const COHERE_RETRYABLE_STATUSES = new Set([429, 500, 502, 503, 504]);
45
+ /** Maximum attempts including the first POST (mirrors `src/portkey/transport.ts`'s `PORTKEY_MAX_ATTEMPTS`). */
46
+ export const DEFAULT_COHERE_MAX_ATTEMPTS = 3;
47
+ /** Backoff between retryable failures in ms (mirrors `src/portkey/transport.ts`'s backoff). */
48
+ export const DEFAULT_COHERE_RETRY_BACKOFF_MS = 250;
49
+ /**
50
+ * Per-attempt request timeout (ms), mirroring `deeplake-transport.ts`'s
51
+ * `DEFAULT_TRANSPORT_TIMEOUT_MS` AbortController pattern: an unresponsive gateway
52
+ * aborts rather than hanging the embed path indefinitely (fail-soft, AC-4).
53
+ */
54
+ export const DEFAULT_COHERE_REQUEST_TIMEOUT_MS = 15_000;
55
+ /** All-nulls result of length `n` (the fail-soft shape, built in one place). */
56
+ function allNull(n) {
57
+ return new Array(n).fill(null);
58
+ }
59
+ /**
60
+ * Parse the embeddings response into one vector (or `null`) per input index,
61
+ * defensively. Primary shape is Portkey's OpenAI-compatible
62
+ * `{ data: [{ embedding: number[], index }] }`; a Cohere-native
63
+ * `{ embeddings: number[][] }` or `{ embeddings: { float: number[][] } }` body is
64
+ * tolerated as a fallback. Anything else yields all-nulls. Never throws. The
65
+ * per-vector dimension is NOT checked here — the guard owns that (AC-3).
66
+ */
67
+ export function parseEmbeddingsResponse(raw, count) {
68
+ let body;
69
+ try {
70
+ body = raw.length > 0 ? JSON.parse(raw) : null;
71
+ }
72
+ catch {
73
+ return allNull(count);
74
+ }
75
+ if (typeof body !== "object" || body === null)
76
+ return allNull(count);
77
+ const out = allNull(count);
78
+ const asFinite = (v) => Array.isArray(v) && v.every((n) => typeof n === "number" && Number.isFinite(n)) ? v : null;
79
+ // Primary: OpenAI-compatible `data: [{ embedding, index }]`.
80
+ const data = body.data;
81
+ if (Array.isArray(data)) {
82
+ data.forEach((entry, i) => {
83
+ if (typeof entry !== "object" || entry === null)
84
+ return;
85
+ const e = entry;
86
+ const idx = typeof e.index === "number" && Number.isInteger(e.index) ? e.index : i;
87
+ if (idx < 0 || idx >= count)
88
+ return;
89
+ out[idx] = asFinite(e.embedding);
90
+ });
91
+ return out;
92
+ }
93
+ // Fallback: Cohere-native `embeddings: number[][]` or `embeddings: { float: number[][] }`.
94
+ const embeddings = body.embeddings;
95
+ const rows = Array.isArray(embeddings)
96
+ ? embeddings
97
+ : typeof embeddings === "object" && embeddings !== null && Array.isArray(embeddings.float)
98
+ ? (embeddings.float)
99
+ : null;
100
+ if (rows !== null) {
101
+ rows.forEach((row, i) => {
102
+ if (i < count)
103
+ out[i] = asFinite(row);
104
+ });
105
+ return out;
106
+ }
107
+ return allNull(count);
108
+ }
109
+ /**
110
+ * Build the Cohere-via-Portkey embeddings {@link EmbedProvider} (PRD-014b). A
111
+ * batch is sent as ONE POST reusing the rerank transport's auth pattern; the body
112
+ * carries the config model id + `output_dimension` (AC-2). Every failure resolves
113
+ * to nulls for the batch (fail-soft, AC-4); the key is never logged or thrown.
114
+ */
115
+ export function createCoherePortkeyProvider(config, deps = {}) {
116
+ const doFetch = deps.fetch ?? defaultFetch();
117
+ const sleep = deps.sleep ?? defaultSleep;
118
+ return {
119
+ kind: "cohere",
120
+ async embed(texts) {
121
+ if (texts.length === 0)
122
+ return [];
123
+ // Not keyed -> fail soft to nulls (no POST). A missing key is a misconfiguration, not a crash (AC-4).
124
+ if (config.apiKey === null || config.configId === null)
125
+ return allNull(texts.length);
126
+ const headers = buildPortkeyHeaders(config.apiKey, config.configId);
127
+ // The embeddings body (decision #30): the config model id + `output_dimension`, both overridable (AC-2).
128
+ const body = JSON.stringify({
129
+ model: config.model,
130
+ input: [...texts],
131
+ output_dimension: config.outputDimension,
132
+ });
133
+ for (let attempt = 1; attempt <= config.maxAttempts; attempt++) {
134
+ let res;
135
+ const controller = new AbortController();
136
+ const timer = setTimeout(() => controller.abort(), config.requestTimeoutMs);
137
+ try {
138
+ res = await doFetch(config.url, { method: "POST", headers, body, signal: controller.signal });
139
+ }
140
+ catch {
141
+ // Network/transport failure, or our own abort on `requestTimeoutMs` (an unresponsive
142
+ // gateway) -> retry within the bound, else fail soft to nulls. Never surface the error
143
+ // (it could carry a body/key); only the fail-soft nulls escape.
144
+ if (attempt < config.maxAttempts) {
145
+ await sleep(config.retryBackoffMs * attempt);
146
+ continue;
147
+ }
148
+ return allNull(texts.length);
149
+ }
150
+ finally {
151
+ clearTimeout(timer);
152
+ }
153
+ if (!res.ok) {
154
+ // A non-2xx gateway status: retry the retryable ones within the bound, else fail soft. Never
155
+ // read the body into a message (it could echo a credential).
156
+ if (attempt < config.maxAttempts && COHERE_RETRYABLE_STATUSES.has(res.status)) {
157
+ await sleep(config.retryBackoffMs * attempt);
158
+ continue;
159
+ }
160
+ return allNull(texts.length);
161
+ }
162
+ // A 2xx: parse defensively. A malformed body fails soft to nulls (the gateway was reachable,
163
+ // the body was just unusable) rather than throwing.
164
+ const text = await res.text().catch(() => "");
165
+ return parseEmbeddingsResponse(text, texts.length);
166
+ }
167
+ return allNull(texts.length);
168
+ },
169
+ };
170
+ }
171
+ //# sourceMappingURL=cohere-portkey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cohere-portkey.js","sourceRoot":"","sources":["../../src/embeddings/cohere-portkey.ts"],"names":[],"mappings":"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"}