@nhtio/adk 1.20260604.0 → 1.20260607.0

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 (358) hide show
  1. package/CHANGELOG.md +261 -0
  2. package/adk-mcp.mjs +1 -1
  3. package/batteries/embeddings/openai/adapter.cjs +1 -1
  4. package/batteries/embeddings/openai/adapter.mjs +1 -1
  5. package/batteries/embeddings/webllm/adapter.cjs +1 -1
  6. package/batteries/embeddings/webllm/adapter.mjs +1 -1
  7. package/batteries/index.d.ts +1 -0
  8. package/batteries/llm/openai_chat_completions/adapter.cjs +6 -6
  9. package/batteries/llm/openai_chat_completions/adapter.cjs.map +1 -1
  10. package/batteries/llm/openai_chat_completions/adapter.mjs +6 -6
  11. package/batteries/llm/openai_chat_completions/adapter.mjs.map +1 -1
  12. package/batteries/llm/openai_chat_completions/helpers.cjs +2 -2
  13. package/batteries/llm/openai_chat_completions/helpers.mjs +2 -2
  14. package/batteries/llm/openai_chat_completions/validation.cjs +2 -2
  15. package/batteries/llm/openai_chat_completions/validation.cjs.map +1 -1
  16. package/batteries/llm/openai_chat_completions/validation.mjs +2 -2
  17. package/batteries/llm/openai_chat_completions/validation.mjs.map +1 -1
  18. package/batteries/llm/webllm_chat_completions/adapter.cjs +6 -6
  19. package/batteries/llm/webllm_chat_completions/adapter.cjs.map +1 -1
  20. package/batteries/llm/webllm_chat_completions/adapter.mjs +6 -6
  21. package/batteries/llm/webllm_chat_completions/adapter.mjs.map +1 -1
  22. package/batteries/llm/webllm_chat_completions/validation.cjs +2 -2
  23. package/batteries/llm/webllm_chat_completions/validation.cjs.map +1 -1
  24. package/batteries/llm/webllm_chat_completions/validation.mjs +2 -2
  25. package/batteries/llm/webllm_chat_completions/validation.mjs.map +1 -1
  26. package/batteries/storage/flydrive.cjs +1 -1
  27. package/batteries/storage/flydrive.mjs +2 -2
  28. package/batteries/storage/in_memory.cjs +1 -1
  29. package/batteries/storage/in_memory.mjs +1 -1
  30. package/batteries/storage/opfs.cjs +1 -1
  31. package/batteries/storage/opfs.mjs +1 -1
  32. package/batteries/tools/color.cjs +2 -2
  33. package/batteries/tools/color.mjs +2 -2
  34. package/batteries/tools/comparison.cjs +3 -3
  35. package/batteries/tools/comparison.mjs +3 -3
  36. package/batteries/tools/data_structure.cjs +3 -3
  37. package/batteries/tools/data_structure.mjs +3 -3
  38. package/batteries/tools/datetime_extended.cjs +2 -2
  39. package/batteries/tools/datetime_extended.mjs +2 -2
  40. package/batteries/tools/datetime_math.cjs +2 -2
  41. package/batteries/tools/datetime_math.mjs +2 -2
  42. package/batteries/tools/encoding.cjs +3 -3
  43. package/batteries/tools/encoding.mjs +3 -3
  44. package/batteries/tools/formatting.cjs +3 -3
  45. package/batteries/tools/formatting.mjs +3 -3
  46. package/batteries/tools/geo_basics.cjs +2 -2
  47. package/batteries/tools/geo_basics.mjs +2 -2
  48. package/batteries/tools/math/index.d.ts +16 -5
  49. package/batteries/tools/math.cjs +340 -22
  50. package/batteries/tools/math.cjs.map +1 -1
  51. package/batteries/tools/math.mjs +338 -21
  52. package/batteries/tools/math.mjs.map +1 -1
  53. package/batteries/tools/memory.cjs +5 -5
  54. package/batteries/tools/memory.mjs +5 -5
  55. package/batteries/tools/parsing.cjs +4 -4
  56. package/batteries/tools/parsing.mjs +4 -4
  57. package/batteries/tools/retrievables.cjs +4 -4
  58. package/batteries/tools/retrievables.mjs +4 -4
  59. package/batteries/tools/standing_instructions.cjs +4 -4
  60. package/batteries/tools/standing_instructions.mjs +4 -4
  61. package/batteries/tools/statistics.cjs +4 -4
  62. package/batteries/tools/statistics.mjs +4 -4
  63. package/batteries/tools/string_processing.cjs +3 -3
  64. package/batteries/tools/string_processing.mjs +3 -3
  65. package/batteries/tools/structured_data.cjs +3 -3
  66. package/batteries/tools/structured_data.mjs +3 -3
  67. package/batteries/tools/text_analysis.cjs +3 -3
  68. package/batteries/tools/text_analysis.mjs +3 -3
  69. package/batteries/tools/text_comparison.cjs +2 -2
  70. package/batteries/tools/text_comparison.mjs +2 -2
  71. package/batteries/tools/time.cjs +2 -2
  72. package/batteries/tools/time.mjs +2 -2
  73. package/batteries/tools/unit_conversion.cjs +2 -2
  74. package/batteries/tools/unit_conversion.mjs +2 -2
  75. package/batteries/vector/arangodb/index.d.ts +38 -0
  76. package/batteries/vector/arangodb.cjs +257 -0
  77. package/batteries/vector/arangodb.cjs.map +1 -0
  78. package/batteries/vector/arangodb.mjs +255 -0
  79. package/batteries/vector/arangodb.mjs.map +1 -0
  80. package/batteries/vector/builder.cjs +297 -0
  81. package/batteries/vector/builder.cjs.map +1 -0
  82. package/batteries/vector/builder.d.ts +87 -0
  83. package/batteries/vector/builder.mjs +294 -0
  84. package/batteries/vector/builder.mjs.map +1 -0
  85. package/batteries/vector/chroma/index.d.ts +32 -0
  86. package/batteries/vector/chroma.cjs +305 -0
  87. package/batteries/vector/chroma.cjs.map +1 -0
  88. package/batteries/vector/chroma.mjs +302 -0
  89. package/batteries/vector/chroma.mjs.map +1 -0
  90. package/batteries/vector/clickhouse/index.d.ts +39 -0
  91. package/batteries/vector/clickhouse.cjs +246 -0
  92. package/batteries/vector/clickhouse.cjs.map +1 -0
  93. package/batteries/vector/clickhouse.mjs +244 -0
  94. package/batteries/vector/clickhouse.mjs.map +1 -0
  95. package/batteries/vector/cloudflare/index.d.ts +43 -0
  96. package/batteries/vector/cloudflare.cjs +397 -0
  97. package/batteries/vector/cloudflare.cjs.map +1 -0
  98. package/batteries/vector/cloudflare.mjs +395 -0
  99. package/batteries/vector/cloudflare.mjs.map +1 -0
  100. package/batteries/vector/conformance/index.d.ts +15 -0
  101. package/batteries/vector/conformance.cjs +209 -0
  102. package/batteries/vector/conformance.cjs.map +1 -0
  103. package/batteries/vector/conformance.mjs +205 -0
  104. package/batteries/vector/conformance.mjs.map +1 -0
  105. package/batteries/vector/contract.cjs +42 -0
  106. package/batteries/vector/contract.cjs.map +1 -0
  107. package/batteries/vector/contract.d.ts +39 -0
  108. package/batteries/vector/contract.mjs +40 -0
  109. package/batteries/vector/contract.mjs.map +1 -0
  110. package/batteries/vector/couchbase/index.d.ts +49 -0
  111. package/batteries/vector/couchbase.cjs +401 -0
  112. package/batteries/vector/couchbase.cjs.map +1 -0
  113. package/batteries/vector/couchbase.mjs +399 -0
  114. package/batteries/vector/couchbase.mjs.map +1 -0
  115. package/batteries/vector/duckdb/index.d.ts +33 -0
  116. package/batteries/vector/duckdb.cjs +218 -0
  117. package/batteries/vector/duckdb.cjs.map +1 -0
  118. package/batteries/vector/duckdb.mjs +216 -0
  119. package/batteries/vector/duckdb.mjs.map +1 -0
  120. package/batteries/vector/elasticsearch/index.d.ts +43 -0
  121. package/batteries/vector/elasticsearch.cjs +306 -0
  122. package/batteries/vector/elasticsearch.cjs.map +1 -0
  123. package/batteries/vector/elasticsearch.mjs +303 -0
  124. package/batteries/vector/elasticsearch.mjs.map +1 -0
  125. package/batteries/vector/exceptions.cjs +126 -0
  126. package/batteries/vector/exceptions.cjs.map +1 -0
  127. package/batteries/vector/exceptions.d.ts +142 -0
  128. package/batteries/vector/exceptions.mjs +107 -0
  129. package/batteries/vector/exceptions.mjs.map +1 -0
  130. package/batteries/vector/factory.cjs +28 -0
  131. package/batteries/vector/factory.cjs.map +1 -0
  132. package/batteries/vector/factory.d.ts +38 -0
  133. package/batteries/vector/factory.mjs +25 -0
  134. package/batteries/vector/factory.mjs.map +1 -0
  135. package/batteries/vector/filters.cjs +107 -0
  136. package/batteries/vector/filters.cjs.map +1 -0
  137. package/batteries/vector/filters.d.ts +34 -0
  138. package/batteries/vector/filters.mjs +99 -0
  139. package/batteries/vector/filters.mjs.map +1 -0
  140. package/batteries/vector/helpers.cjs +23 -0
  141. package/batteries/vector/helpers.cjs.map +1 -0
  142. package/batteries/vector/helpers.d.ts +12 -0
  143. package/batteries/vector/helpers.mjs +17 -0
  144. package/batteries/vector/helpers.mjs.map +1 -0
  145. package/batteries/vector/hnswlib/index.d.ts +35 -0
  146. package/batteries/vector/hnswlib.cjs +237 -0
  147. package/batteries/vector/hnswlib.cjs.map +1 -0
  148. package/batteries/vector/hnswlib.mjs +235 -0
  149. package/batteries/vector/hnswlib.mjs.map +1 -0
  150. package/batteries/vector/in_memory/index.d.ts +23 -0
  151. package/batteries/vector/in_memory.cjs +178 -0
  152. package/batteries/vector/in_memory.cjs.map +1 -0
  153. package/batteries/vector/in_memory.mjs +176 -0
  154. package/batteries/vector/in_memory.mjs.map +1 -0
  155. package/batteries/vector/index.d.ts +18 -0
  156. package/batteries/vector/lancedb/index.d.ts +34 -0
  157. package/batteries/vector/lancedb.cjs +224 -0
  158. package/batteries/vector/lancedb.cjs.map +1 -0
  159. package/batteries/vector/lancedb.mjs +222 -0
  160. package/batteries/vector/lancedb.mjs.map +1 -0
  161. package/batteries/vector/mariadb/index.d.ts +39 -0
  162. package/batteries/vector/mariadb.cjs +228 -0
  163. package/batteries/vector/mariadb.cjs.map +1 -0
  164. package/batteries/vector/mariadb.mjs +226 -0
  165. package/batteries/vector/mariadb.mjs.map +1 -0
  166. package/batteries/vector/meilisearch/index.d.ts +36 -0
  167. package/batteries/vector/meilisearch.cjs +242 -0
  168. package/batteries/vector/meilisearch.cjs.map +1 -0
  169. package/batteries/vector/meilisearch.mjs +240 -0
  170. package/batteries/vector/meilisearch.mjs.map +1 -0
  171. package/batteries/vector/migrate.cjs +54 -0
  172. package/batteries/vector/migrate.cjs.map +1 -0
  173. package/batteries/vector/migrate.d.ts +30 -0
  174. package/batteries/vector/migrate.mjs +52 -0
  175. package/batteries/vector/migrate.mjs.map +1 -0
  176. package/batteries/vector/milvus/index.d.ts +35 -0
  177. package/batteries/vector/milvus.cjs +357 -0
  178. package/batteries/vector/milvus.cjs.map +1 -0
  179. package/batteries/vector/milvus.mjs +354 -0
  180. package/batteries/vector/milvus.mjs.map +1 -0
  181. package/batteries/vector/mongodb/index.d.ts +46 -0
  182. package/batteries/vector/mongodb.cjs +270 -0
  183. package/batteries/vector/mongodb.cjs.map +1 -0
  184. package/batteries/vector/mongodb.mjs +268 -0
  185. package/batteries/vector/mongodb.mjs.map +1 -0
  186. package/batteries/vector/neo4j/index.d.ts +38 -0
  187. package/batteries/vector/neo4j.cjs +231 -0
  188. package/batteries/vector/neo4j.cjs.map +1 -0
  189. package/batteries/vector/neo4j.mjs +229 -0
  190. package/batteries/vector/neo4j.mjs.map +1 -0
  191. package/batteries/vector/opensearch/index.d.ts +46 -0
  192. package/batteries/vector/opensearch.cjs +316 -0
  193. package/batteries/vector/opensearch.cjs.map +1 -0
  194. package/batteries/vector/opensearch.mjs +313 -0
  195. package/batteries/vector/opensearch.mjs.map +1 -0
  196. package/batteries/vector/oracle23ai/index.d.ts +45 -0
  197. package/batteries/vector/oracle23ai.cjs +340 -0
  198. package/batteries/vector/oracle23ai.cjs.map +1 -0
  199. package/batteries/vector/oracle23ai.mjs +338 -0
  200. package/batteries/vector/oracle23ai.mjs.map +1 -0
  201. package/batteries/vector/orama/index.d.ts +23 -0
  202. package/batteries/vector/orama.cjs +272 -0
  203. package/batteries/vector/orama.cjs.map +1 -0
  204. package/batteries/vector/orama.mjs +270 -0
  205. package/batteries/vector/orama.mjs.map +1 -0
  206. package/batteries/vector/pgvector/index.d.ts +43 -0
  207. package/batteries/vector/pgvector.cjs +411 -0
  208. package/batteries/vector/pgvector.cjs.map +1 -0
  209. package/batteries/vector/pgvector.mjs +408 -0
  210. package/batteries/vector/pgvector.mjs.map +1 -0
  211. package/batteries/vector/pinecone/index.d.ts +38 -0
  212. package/batteries/vector/pinecone.cjs +415 -0
  213. package/batteries/vector/pinecone.cjs.map +1 -0
  214. package/batteries/vector/pinecone.mjs +412 -0
  215. package/batteries/vector/pinecone.mjs.map +1 -0
  216. package/batteries/vector/plan.cjs +2 -0
  217. package/batteries/vector/plan.d.ts +65 -0
  218. package/batteries/vector/plan.mjs +0 -0
  219. package/batteries/vector/qdrant/index.d.ts +34 -0
  220. package/batteries/vector/qdrant.cjs +286 -0
  221. package/batteries/vector/qdrant.cjs.map +1 -0
  222. package/batteries/vector/qdrant.mjs +284 -0
  223. package/batteries/vector/qdrant.mjs.map +1 -0
  224. package/batteries/vector/redis/index.d.ts +44 -0
  225. package/batteries/vector/redis.cjs +391 -0
  226. package/batteries/vector/redis.cjs.map +1 -0
  227. package/batteries/vector/redis.mjs +388 -0
  228. package/batteries/vector/redis.mjs.map +1 -0
  229. package/batteries/vector/retrievable.cjs +69 -0
  230. package/batteries/vector/retrievable.cjs.map +1 -0
  231. package/batteries/vector/retrievable.mjs +67 -0
  232. package/batteries/vector/retrievable.mjs.map +1 -0
  233. package/batteries/vector/retrievable_glue.d.ts +24 -0
  234. package/batteries/vector/s3vectors/index.d.ts +52 -0
  235. package/batteries/vector/s3vectors.cjs +438 -0
  236. package/batteries/vector/s3vectors.cjs.map +1 -0
  237. package/batteries/vector/s3vectors.mjs +436 -0
  238. package/batteries/vector/s3vectors.mjs.map +1 -0
  239. package/batteries/vector/schema.cjs +96 -0
  240. package/batteries/vector/schema.cjs.map +1 -0
  241. package/batteries/vector/schema.d.ts +40 -0
  242. package/batteries/vector/schema.mjs +93 -0
  243. package/batteries/vector/schema.mjs.map +1 -0
  244. package/batteries/vector/solr/index.d.ts +36 -0
  245. package/batteries/vector/solr.cjs +230 -0
  246. package/batteries/vector/solr.cjs.map +1 -0
  247. package/batteries/vector/solr.mjs +228 -0
  248. package/batteries/vector/solr.mjs.map +1 -0
  249. package/batteries/vector/sqlite_vec/index.d.ts +30 -0
  250. package/batteries/vector/sqlite_vec.cjs +318 -0
  251. package/batteries/vector/sqlite_vec.cjs.map +1 -0
  252. package/batteries/vector/sqlite_vec.mjs +316 -0
  253. package/batteries/vector/sqlite_vec.mjs.map +1 -0
  254. package/batteries/vector/surrealdb/index.d.ts +37 -0
  255. package/batteries/vector/surrealdb.cjs +230 -0
  256. package/batteries/vector/surrealdb.cjs.map +1 -0
  257. package/batteries/vector/surrealdb.mjs +228 -0
  258. package/batteries/vector/surrealdb.mjs.map +1 -0
  259. package/batteries/vector/types.cjs +2 -0
  260. package/batteries/vector/types.d.ts +100 -0
  261. package/batteries/vector/types.mjs +0 -0
  262. package/batteries/vector/typesense/index.d.ts +38 -0
  263. package/batteries/vector/typesense.cjs +272 -0
  264. package/batteries/vector/typesense.cjs.map +1 -0
  265. package/batteries/vector/typesense.mjs +270 -0
  266. package/batteries/vector/typesense.mjs.map +1 -0
  267. package/batteries/vector/validation.cjs +90 -0
  268. package/batteries/vector/validation.cjs.map +1 -0
  269. package/batteries/vector/validation.d.ts +18 -0
  270. package/batteries/vector/validation.mjs +83 -0
  271. package/batteries/vector/validation.mjs.map +1 -0
  272. package/batteries/vector/vector_store_constructor.cjs +56 -0
  273. package/batteries/vector/vector_store_constructor.cjs.map +1 -0
  274. package/batteries/vector/vector_store_constructor.d.ts +30 -0
  275. package/batteries/vector/vector_store_constructor.mjs +53 -0
  276. package/batteries/vector/vector_store_constructor.mjs.map +1 -0
  277. package/batteries/vector/vespa/index.d.ts +39 -0
  278. package/batteries/vector/vespa.cjs +423 -0
  279. package/batteries/vector/vespa.cjs.map +1 -0
  280. package/batteries/vector/vespa.mjs +421 -0
  281. package/batteries/vector/vespa.mjs.map +1 -0
  282. package/batteries/vector/weaviate/index.d.ts +57 -0
  283. package/batteries/vector/weaviate.cjs +325 -0
  284. package/batteries/vector/weaviate.cjs.map +1 -0
  285. package/batteries/vector/weaviate.mjs +322 -0
  286. package/batteries/vector/weaviate.mjs.map +1 -0
  287. package/batteries/vector.cjs +63 -0
  288. package/batteries/vector.mjs +14 -0
  289. package/batteries.cjs +62 -0
  290. package/batteries.mjs +15 -1
  291. package/{chunk-kRvK8_k2.mjs → chunk-Bpcn9VDT.mjs} +5 -1
  292. package/{common-lMrnzoyn.mjs → common-BT0nfCi9.mjs} +8 -8
  293. package/{common-lMrnzoyn.mjs.map → common-BT0nfCi9.mjs.map} +1 -1
  294. package/{common-D_e5zYsG.js → common-Cj8TaQ9U.js} +8 -8
  295. package/{common-D_e5zYsG.js.map → common-Cj8TaQ9U.js.map} +1 -1
  296. package/common.cjs +7 -7
  297. package/common.mjs +7 -7
  298. package/{dispatch_runner-CpuyATj1.js → dispatch_runner-BHBNupqp.js} +2 -2
  299. package/dispatch_runner-BHBNupqp.js.map +1 -0
  300. package/{dispatch_runner-CDF3X0nv.mjs → dispatch_runner-DPcS7Y_M.mjs} +2 -2
  301. package/dispatch_runner-DPcS7Y_M.mjs.map +1 -0
  302. package/dispatch_runner.cjs +1 -1
  303. package/dispatch_runner.mjs +1 -1
  304. package/forge.cjs +4 -4
  305. package/forge.mjs +4 -4
  306. package/guards.cjs +8 -8
  307. package/guards.mjs +8 -8
  308. package/index.cjs +12 -12
  309. package/index.mjs +12 -12
  310. package/lib/classes/tool_registry.d.ts +70 -4
  311. package/mcp/adk-docs-corpus.json +1 -1
  312. package/package.json +424 -88
  313. package/skills/adk-assembly/SKILL.md +2 -2
  314. package/{spooled_artifact-B8gIIn9h.js → spooled_artifact-BTq6Nzfy.js} +4 -4
  315. package/spooled_artifact-BTq6Nzfy.js.map +1 -0
  316. package/{spooled_artifact-CWoKUDEm.mjs → spooled_artifact-CHoZgWwI.mjs} +4 -4
  317. package/spooled_artifact-CHoZgWwI.mjs.map +1 -0
  318. package/spooled_artifact.cjs +2 -2
  319. package/spooled_artifact.mjs +2 -2
  320. package/{spooled_markdown_artifact-DQX0RCdI.js → spooled_markdown_artifact-CALSDxIx.js} +3 -3
  321. package/{spooled_markdown_artifact-DQX0RCdI.js.map → spooled_markdown_artifact-CALSDxIx.js.map} +1 -1
  322. package/{spooled_markdown_artifact-CNle4jXN.mjs → spooled_markdown_artifact-Ci5UL7l4.mjs} +3 -3
  323. package/{spooled_markdown_artifact-CNle4jXN.mjs.map → spooled_markdown_artifact-Ci5UL7l4.mjs.map} +1 -1
  324. package/src/types/evaluatex.d.ts +31 -0
  325. package/{thought-BD6AkkOr.js → thought-BbwhJ1wb.js} +4 -4
  326. package/thought-BbwhJ1wb.js.map +1 -0
  327. package/{thought-B_P8LiB6.mjs → thought-D34QQZZ9.mjs} +4 -4
  328. package/thought-D34QQZZ9.mjs.map +1 -0
  329. package/{tool-CRZSUcdP.mjs → tool-CMhaDRNd.mjs} +3 -3
  330. package/tool-CMhaDRNd.mjs.map +1 -0
  331. package/{tool-CX9vNHAw.js → tool-CVyZkFC7.js} +3 -3
  332. package/tool-CVyZkFC7.js.map +1 -0
  333. package/{tool_call-BUeMuCc6.mjs → tool_call-CV5qVNlb.mjs} +3 -3
  334. package/{tool_call-BUeMuCc6.mjs.map → tool_call-CV5qVNlb.mjs.map} +1 -1
  335. package/{tool_call--7ti-frB.js → tool_call-Db68hB7y.js} +3 -3
  336. package/{tool_call--7ti-frB.js.map → tool_call-Db68hB7y.js.map} +1 -1
  337. package/{tool_registry-BGHg6KTq.mjs → tool_registry-D1pSSlsd.mjs} +109 -22
  338. package/tool_registry-D1pSSlsd.mjs.map +1 -0
  339. package/{tool_registry-CtCQ4Xoz.js → tool_registry-DYUYqXvo.js} +109 -22
  340. package/tool_registry-DYUYqXvo.js.map +1 -0
  341. package/{turn_runner-BJTtAORU.js → turn_runner-DqWHNP80.js} +5 -5
  342. package/turn_runner-DqWHNP80.js.map +1 -0
  343. package/{turn_runner-C02LZHjt.mjs → turn_runner-fg1Wc3dK.mjs} +5 -5
  344. package/turn_runner-fg1Wc3dK.mjs.map +1 -0
  345. package/turn_runner.cjs +1 -1
  346. package/turn_runner.mjs +1 -1
  347. package/dispatch_runner-CDF3X0nv.mjs.map +0 -1
  348. package/dispatch_runner-CpuyATj1.js.map +0 -1
  349. package/spooled_artifact-B8gIIn9h.js.map +0 -1
  350. package/spooled_artifact-CWoKUDEm.mjs.map +0 -1
  351. package/thought-BD6AkkOr.js.map +0 -1
  352. package/thought-B_P8LiB6.mjs.map +0 -1
  353. package/tool-CRZSUcdP.mjs.map +0 -1
  354. package/tool-CX9vNHAw.js.map +0 -1
  355. package/tool_registry-BGHg6KTq.mjs.map +0 -1
  356. package/tool_registry-CtCQ4Xoz.js.map +0 -1
  357. package/turn_runner-BJTtAORU.js.map +0 -1
  358. package/turn_runner-C02LZHjt.mjs.map +0 -1
@@ -0,0 +1,325 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ require("../../chunk-Ble4zEEl.js");
3
+ const require_tool_registry = require("../../tool_registry-DYUYqXvo.js");
4
+ require("../../guards.cjs");
5
+ const require_batteries_vector_filters = require("./filters.cjs");
6
+ const require_batteries_vector_helpers = require("./helpers.cjs");
7
+ const require_batteries_vector_exceptions = require("./exceptions.cjs");
8
+ const require_batteries_vector_contract = require("./contract.cjs");
9
+ const require_batteries_vector_validation = require("./validation.cjs");
10
+ let js_sha256 = require("js-sha256");
11
+ //#region src/batteries/vector/weaviate/index.ts
12
+ /**
13
+ * @module @nhtio/adk/batteries/vector/weaviate
14
+ *
15
+ * @remarks
16
+ * Weaviate-backed vector store adapter using the Weaviate v3 client with lazy driver
17
+ * loading, deterministic object UUIDs, explicit vectors, and in-JS metadata filtering.
18
+ */
19
+ /**
20
+ * Compiles a neutral {@link VectorFilter} into a Weaviate v3 filter built from a collection's
21
+ * `col.filter` builder (and `weaviate.Filters.and/or` for groups). Pure and dependency-injected
22
+ * (takes the `col` handle and the `weaviate` module), so it is unit-testable with stubs.
23
+ *
24
+ * @throws {@link @nhtio/adk/batteries/vector/exceptions!E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR}
25
+ * for operators Weaviate cannot express (`nin`, group `not`) or a non-`weaviate` raw dialect.
26
+ */
27
+ var translateWeaviateFilter = (col, weaviate, filter) => {
28
+ if (!filter) return void 0;
29
+ if (require_batteries_vector_filters.isRawFilter(filter)) {
30
+ if (filter.$dialect === "weaviate") return filter.$raw;
31
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR(["weaviate", String(filter.$dialect)]);
32
+ }
33
+ if (require_batteries_vector_filters.isFilterCondition(filter)) {
34
+ const { field, op, value } = filter;
35
+ if (value === void 0 && op !== "exists") throw new require_batteries_vector_exceptions.E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR(["weaviate", op]);
36
+ const f = col.filter.byProperty(field);
37
+ if (op === "eq") return f.equal(value);
38
+ if (op === "ne") return f.notEqual(value);
39
+ if (op === "gt") return f.greaterThan(value);
40
+ if (op === "gte") return f.greaterOrEqual(value);
41
+ if (op === "lt") return f.lessThan(value);
42
+ if (op === "lte") return f.lessOrEqual(value);
43
+ if (op === "in") return f.containsAny(value);
44
+ if (op === "nin") throw new require_batteries_vector_exceptions.E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR(["weaviate", "nin"]);
45
+ if (op === "exists") return f.isNull(value === false);
46
+ if (op === "contains") return f.containsAny(Array.isArray(value) ? value : [value]);
47
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR(["weaviate", op]);
48
+ }
49
+ if (require_batteries_vector_filters.isFilterGroup(filter)) {
50
+ const { and, or, not } = filter;
51
+ if (and) {
52
+ const children = and.map((c) => translateWeaviateFilter(col, weaviate, c)).filter((x) => x !== void 0);
53
+ if (children.length === 0) return void 0;
54
+ if (children.length === 1) return children[0];
55
+ return weaviate.Filters.and(...children);
56
+ }
57
+ if (or) {
58
+ const children = or.map((c) => translateWeaviateFilter(col, weaviate, c)).filter((x) => x !== void 0);
59
+ if (children.length === 0) return void 0;
60
+ if (children.length === 1) return children[0];
61
+ return weaviate.Filters.or(...children);
62
+ }
63
+ if (not) throw new require_batteries_vector_exceptions.E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR(["weaviate", "not"]);
64
+ return;
65
+ }
66
+ };
67
+ /**
68
+ * Weaviate-backed {@link @nhtio/adk/batteries/vector/contract!VectorStore}. Node-only.
69
+ *
70
+ * @remarks
71
+ * Stores ids/documents/metadata as explicit object properties and all metadata filtering is
72
+ * evaluated in JavaScript for portable behavior across Weaviate schema/index settings.
73
+ */
74
+ var WeaviateVectorStore = class extends require_batteries_vector_contract.BaseVectorStore {
75
+ capabilities = {
76
+ transactions: false,
77
+ namedVectors: true,
78
+ rename: false,
79
+ rawSql: false,
80
+ builtInEncoding: false,
81
+ consistency: {
82
+ configurable: false,
83
+ default: "strong",
84
+ modes: ["strong"]
85
+ }
86
+ };
87
+ #client = null;
88
+ #weaviate = null;
89
+ #dims = /* @__PURE__ */ new Map();
90
+ static isAvailable() {
91
+ return typeof process !== "undefined";
92
+ }
93
+ isAvailable() {
94
+ return typeof process !== "undefined";
95
+ }
96
+ async connect() {
97
+ if (this.#client) return;
98
+ let weaviate;
99
+ try {
100
+ weaviate = (await import("weaviate-client")).default;
101
+ } catch {
102
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_DRIVER_UNAVAILABLE(["weaviate-client"]);
103
+ }
104
+ const c = this.options.connection ?? {};
105
+ let httpHost = c.host ?? "localhost";
106
+ let httpPort = c.port ?? 8080;
107
+ let secure = c.secure;
108
+ if (c.url) {
109
+ const u = new URL(c.url);
110
+ httpHost = u.hostname;
111
+ httpPort = u.port ? Number(u.port) : u.protocol === "https:" ? 443 : 80;
112
+ secure = u.protocol === "https:";
113
+ }
114
+ try {
115
+ this.#client = await weaviate.connectToCustom({
116
+ httpHost,
117
+ httpPort,
118
+ httpSecure: !!secure,
119
+ grpcHost: c.grpcHost ?? httpHost,
120
+ grpcPort: c.grpcPort ?? 50051,
121
+ grpcSecure: !!c.grpcSecure,
122
+ headers: c.apiKey ? { Authorization: "Bearer " + c.apiKey } : void 0
123
+ });
124
+ this.#weaviate = weaviate;
125
+ } catch (e) {
126
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_CONNECTION_FAILED([e?.message ?? String(e)]);
127
+ }
128
+ }
129
+ async close() {
130
+ await this.#client?.close?.();
131
+ this.#client = null;
132
+ this.#weaviate = null;
133
+ }
134
+ async createCollection(spec, ifNotExists) {
135
+ await this.connect();
136
+ const c = this.#cls(spec.collection);
137
+ try {
138
+ if (await this.#client.collections.exists(c)) {
139
+ if (ifNotExists) return;
140
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_COLLECTION_FAILED(["create", "collection exists"]);
141
+ }
142
+ await this.#client.collections.create({
143
+ name: c,
144
+ vectorizers: this.#weaviate.configure.vectorizer.none(),
145
+ properties: [
146
+ {
147
+ name: "__id",
148
+ dataType: "text"
149
+ },
150
+ {
151
+ name: "__document",
152
+ dataType: "text"
153
+ },
154
+ {
155
+ name: "__metadata",
156
+ dataType: "text"
157
+ }
158
+ ]
159
+ });
160
+ this.#dims.set(spec.collection, spec.vector.dimensions);
161
+ } catch (e) {
162
+ if (require_tool_registry.isInstanceOf(e, "E_VECTOR_STORE_COLLECTION_FAILED", require_batteries_vector_exceptions.E_VECTOR_STORE_COLLECTION_FAILED)) throw e;
163
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_COLLECTION_FAILED(["create", e?.message ?? String(e)]);
164
+ }
165
+ }
166
+ async dropCollection(collection, ifExists) {
167
+ await this.connect();
168
+ const c = this.#cls(collection);
169
+ try {
170
+ if (!await this.#client.collections.exists(c)) {
171
+ if (!ifExists) throw new require_batteries_vector_exceptions.E_VECTOR_STORE_COLLECTION_FAILED(["drop", "collection does not exist"]);
172
+ return;
173
+ }
174
+ await this.#client.collections.delete(c);
175
+ this.#dims.delete(collection);
176
+ } catch (e) {
177
+ if (require_tool_registry.isInstanceOf(e, "E_VECTOR_STORE_COLLECTION_FAILED", require_batteries_vector_exceptions.E_VECTOR_STORE_COLLECTION_FAILED)) throw e;
178
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_COLLECTION_FAILED(["drop", e?.message ?? String(e)]);
179
+ }
180
+ }
181
+ async hasCollection(collection) {
182
+ await this.connect();
183
+ return await this.#client.collections.exists(this.#cls(collection));
184
+ }
185
+ async renameCollection(_from, _to) {
186
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_UNSUPPORTED_OPERATION(["renameCollection", "weaviate"]);
187
+ }
188
+ async executeUpsert(plan) {
189
+ await this.connect();
190
+ require_batteries_vector_validation.validateRecords(plan.records);
191
+ const dims = this.#dims.get(plan.collection) ?? this.options.dimensions;
192
+ const col = this.#client.collections.get(this.#cls(plan.collection));
193
+ try {
194
+ const objects = [];
195
+ for (const r of plan.records) {
196
+ let vector = r.vector;
197
+ if (!vector && r.document) {
198
+ const [v] = await this.encode([r.document], "document");
199
+ vector = v;
200
+ }
201
+ if (!vector) throw new require_batteries_vector_exceptions.E_VECTOR_STORE_UPSERT_FAILED(["Record missing vector and document"]);
202
+ if (dims !== void 0 && vector.length !== dims) throw new require_batteries_vector_exceptions.E_VECTOR_STORE_DIMENSION_MISMATCH([dims, vector.length]);
203
+ objects.push({
204
+ id: this.#uuidFromId(r.id),
205
+ properties: {
206
+ __id: r.id,
207
+ __document: r.document ?? "",
208
+ __metadata: JSON.stringify(r.metadata ?? {})
209
+ },
210
+ vectors: vector
211
+ });
212
+ }
213
+ if (objects.length > 0) await col.data.insertMany(objects);
214
+ } catch (e) {
215
+ if (require_tool_registry.isInstanceOf(e, "E_VECTOR_STORE_DIMENSION_MISMATCH", require_batteries_vector_exceptions.E_VECTOR_STORE_DIMENSION_MISMATCH)) throw e;
216
+ if (require_tool_registry.isInstanceOf(e, "E_VECTOR_STORE_UPSERT_FAILED", require_batteries_vector_exceptions.E_VECTOR_STORE_UPSERT_FAILED)) throw e;
217
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_UPSERT_FAILED([e?.message ?? String(e)]);
218
+ }
219
+ }
220
+ async executeSearch(plan) {
221
+ await this.connect();
222
+ const col = this.#client.collections.get(this.#cls(plan.collection));
223
+ const metric = this.options.metric ?? "cosine";
224
+ try {
225
+ let qvec;
226
+ if (plan.near) {
227
+ if ("vector" in plan.near) qvec = plan.near.vector;
228
+ else if ("serverText" in plan.near) {
229
+ const [v] = await this.encode([plan.near.serverText], "query");
230
+ qvec = v;
231
+ } else if ("id" in plan.near) {
232
+ const ref = await col.query.fetchObjectById(this.#uuidFromId(plan.near.id), { includeVector: true });
233
+ qvec = this.#extractVector(ref?.vectors);
234
+ }
235
+ }
236
+ let res;
237
+ if (qvec) res = await col.query.nearVector(qvec, {
238
+ limit: (plan.topK + (plan.offset ?? 0)) * 4,
239
+ returnMetadata: ["distance"],
240
+ includeVector: !!plan.projection.vector,
241
+ returnProperties: [
242
+ "__id",
243
+ "__document",
244
+ "__metadata"
245
+ ]
246
+ });
247
+ else res = await col.query.fetchObjects({
248
+ limit: 1e4,
249
+ includeVector: !!plan.projection.vector,
250
+ returnProperties: [
251
+ "__id",
252
+ "__document",
253
+ "__metadata"
254
+ ]
255
+ });
256
+ const filtered = (res.objects ?? []).filter((obj) => {
257
+ const metadata = this.#parseMetadata(obj);
258
+ return !plan.filter || require_batteries_vector_filters.evaluateFilter(plan.filter, metadata);
259
+ });
260
+ const start = plan.offset ?? 0;
261
+ return filtered.slice(start, start + plan.topK).map((obj) => this.#project(obj, plan, !!qvec, metric));
262
+ } catch (e) {
263
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_SEARCH_FAILED([e?.message ?? String(e)]);
264
+ }
265
+ }
266
+ async executeDelete(plan) {
267
+ await this.connect();
268
+ const col = this.#client.collections.get(this.#cls(plan.collection));
269
+ try {
270
+ if (plan.ids && plan.ids.length > 0) {
271
+ for (const id of plan.ids) await col.data.deleteById(this.#uuidFromId(id));
272
+ return;
273
+ }
274
+ const res = await col.query.fetchObjects({
275
+ limit: 1e4,
276
+ returnProperties: [
277
+ "__id",
278
+ "__document",
279
+ "__metadata"
280
+ ]
281
+ });
282
+ for (const obj of res.objects ?? []) {
283
+ const id = obj.properties?.__id;
284
+ if (!id) continue;
285
+ if (!plan.filter || require_batteries_vector_filters.evaluateFilter(plan.filter, this.#parseMetadata(obj))) await col.data.deleteById(this.#uuidFromId(id));
286
+ }
287
+ } catch (e) {
288
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_DELETE_FAILED([e?.message ?? String(e)]);
289
+ }
290
+ }
291
+ #cls(name) {
292
+ return name.charAt(0).toUpperCase() + name.slice(1);
293
+ }
294
+ #uuidFromId(id) {
295
+ const h = (0, js_sha256.sha256)(id);
296
+ return h.slice(0, 8) + "-" + h.slice(8, 12) + "-4" + h.slice(13, 16) + "-8" + h.slice(17, 20) + "-" + h.slice(20, 32);
297
+ }
298
+ #parseMetadata(obj) {
299
+ try {
300
+ return JSON.parse(obj.properties?.__metadata || "{}");
301
+ } catch {
302
+ return {};
303
+ }
304
+ }
305
+ #extractVector(vectors) {
306
+ if (Array.isArray(vectors)) return vectors;
307
+ if (vectors?.default) return vectors.default;
308
+ if (vectors && typeof vectors === "object") return Object.values(vectors)[0];
309
+ }
310
+ #project(obj, plan, scored, metric) {
311
+ const out = {};
312
+ const props = obj.properties ?? {};
313
+ if (plan.projection.id) out.id = props.__id;
314
+ if (plan.projection.document) out.document = props.__document;
315
+ if (plan.projection.metadata) out.metadata = this.#parseMetadata(obj);
316
+ if (plan.projection.vector) out.vector = this.#extractVector(obj.vectors);
317
+ if (scored) out.score = require_batteries_vector_helpers.normalizeScore(Number(obj.metadata?.distance ?? 0), metric, "distance");
318
+ return out;
319
+ }
320
+ };
321
+ //#endregion
322
+ exports.WeaviateVectorStore = WeaviateVectorStore;
323
+ exports.translateWeaviateFilter = translateWeaviateFilter;
324
+
325
+ //# sourceMappingURL=weaviate.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weaviate.cjs","names":["#client","#weaviate","#cls","#dims","#uuidFromId","#extractVector","#parseMetadata","#project"],"sources":["../../../src/batteries/vector/weaviate/index.ts"],"sourcesContent":["/**\n * @module @nhtio/adk/batteries/vector/weaviate\n *\n * @remarks\n * Weaviate-backed vector store adapter using the Weaviate v3 client with lazy driver\n * loading, deterministic object UUIDs, explicit vectors, and in-JS metadata filtering.\n */\n\nimport { sha256 } from 'js-sha256'\nimport { normalizeScore } from '../helpers'\nimport { BaseVectorStore } from '../contract'\nimport { validateRecords } from '../validation'\nimport { isInstanceOf } from '@nhtio/adk/guards'\nimport { evaluateFilter, isRawFilter, isFilterCondition, isFilterGroup } from '../filters'\nimport {\n E_VECTOR_STORE_DRIVER_UNAVAILABLE,\n E_VECTOR_STORE_CONNECTION_FAILED,\n E_VECTOR_STORE_COLLECTION_FAILED,\n E_VECTOR_STORE_UPSERT_FAILED,\n E_VECTOR_STORE_SEARCH_FAILED,\n E_VECTOR_STORE_DELETE_FAILED,\n E_VECTOR_STORE_DIMENSION_MISMATCH,\n E_VECTOR_STORE_UNSUPPORTED_OPERATION,\n E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR,\n} from '../exceptions'\nimport type { VectorFilter } from '../filters'\nimport type { SearchPlan, UpsertPlan, DeletePlan, CollectionSpec } from '../plan'\nimport type {\n VectorMatch,\n VectorMetadata,\n VectorStoreCapabilities,\n BaseVectorStoreOptions,\n} from '../types'\n\n/**\n * Connection options for {@link WeaviateVectorStore}.\n */\nexport interface WeaviateVectorStoreOptions extends BaseVectorStoreOptions {\n connection?: {\n url?: string\n host?: string\n port?: number\n grpcHost?: string\n grpcPort?: number\n apiKey?: string\n secure?: boolean\n grpcSecure?: boolean\n }\n}\n\n/**\n * Compiles a neutral {@link VectorFilter} into a Weaviate v3 filter built from a collection's\n * `col.filter` builder (and `weaviate.Filters.and/or` for groups). Pure and dependency-injected\n * (takes the `col` handle and the `weaviate` module), so it is unit-testable with stubs.\n *\n * @throws {@link @nhtio/adk/batteries/vector/exceptions!E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR}\n * for operators Weaviate cannot express (`nin`, group `not`) or a non-`weaviate` raw dialect.\n */\nexport const translateWeaviateFilter = (col: any, weaviate: any, filter?: VectorFilter): any => {\n if (!filter) return undefined\n if (isRawFilter(filter)) {\n if (filter.$dialect === 'weaviate') return filter.$raw\n throw new E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR(['weaviate', String(filter.$dialect)])\n }\n if (isFilterCondition(filter)) {\n const { field, op, value } = filter\n if (value === undefined && op !== 'exists') {\n throw new E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR(['weaviate', op])\n }\n const f = col.filter.byProperty(field)\n if (op === 'eq') return f.equal(value)\n if (op === 'ne') return f.notEqual(value)\n if (op === 'gt') return f.greaterThan(value)\n if (op === 'gte') return f.greaterOrEqual(value)\n if (op === 'lt') return f.lessThan(value)\n if (op === 'lte') return f.lessOrEqual(value)\n if (op === 'in') return f.containsAny(value)\n if (op === 'nin') throw new E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR(['weaviate', 'nin'])\n if (op === 'exists') return f.isNull(value === false)\n if (op === 'contains') return f.containsAny(Array.isArray(value) ? value : [value])\n throw new E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR(['weaviate', op])\n }\n if (isFilterGroup(filter)) {\n const { and, or, not } = filter\n if (and) {\n const children = and\n .map((c: VectorFilter) => translateWeaviateFilter(col, weaviate, c))\n .filter((x: any) => x !== undefined)\n if (children.length === 0) return undefined\n if (children.length === 1) return children[0]\n return weaviate.Filters.and(...children)\n }\n if (or) {\n const children = or\n .map((c: VectorFilter) => translateWeaviateFilter(col, weaviate, c))\n .filter((x: any) => x !== undefined)\n if (children.length === 0) return undefined\n if (children.length === 1) return children[0]\n return weaviate.Filters.or(...children)\n }\n if (not) throw new E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR(['weaviate', 'not'])\n return undefined\n }\n return undefined\n}\n\n/**\n * Weaviate-backed {@link @nhtio/adk/batteries/vector/contract!VectorStore}. Node-only.\n *\n * @remarks\n * Stores ids/documents/metadata as explicit object properties and all metadata filtering is\n * evaluated in JavaScript for portable behavior across Weaviate schema/index settings.\n */\nexport class WeaviateVectorStore extends BaseVectorStore {\n readonly capabilities: VectorStoreCapabilities = {\n transactions: false,\n namedVectors: true,\n rename: false,\n rawSql: false,\n builtInEncoding: false,\n // Single-node Weaviate is strongly consistent on resolve; the option is a no-op here.\n // (A future multi-node adapter variant would set configurable:true.)\n consistency: { configurable: false, default: 'strong', modes: ['strong'] },\n }\n\n #client: any = null\n #weaviate: any = null\n #dims = new Map<string, number>()\n\n static isAvailable(): boolean {\n return typeof process !== 'undefined'\n }\n\n isAvailable(): boolean {\n return typeof process !== 'undefined'\n }\n\n async connect(): Promise<void> {\n if (this.#client) return\n let weaviate: any\n try {\n const weaviateMod = await import('weaviate-client')\n weaviate = weaviateMod.default\n } catch {\n throw new E_VECTOR_STORE_DRIVER_UNAVAILABLE(['weaviate-client'])\n }\n const c = (this.options as WeaviateVectorStoreOptions).connection ?? {}\n let httpHost = c.host ?? 'localhost'\n let httpPort = c.port ?? 8080\n let secure = c.secure\n if (c.url) {\n const u = new URL(c.url)\n httpHost = u.hostname\n httpPort = u.port ? Number(u.port) : u.protocol === 'https:' ? 443 : 80\n secure = u.protocol === 'https:'\n }\n try {\n this.#client = await weaviate.connectToCustom({\n httpHost,\n httpPort,\n httpSecure: !!secure,\n grpcHost: c.grpcHost ?? httpHost,\n grpcPort: c.grpcPort ?? 50051,\n grpcSecure: !!c.grpcSecure,\n headers: c.apiKey ? { Authorization: 'Bearer ' + c.apiKey } : undefined,\n })\n this.#weaviate = weaviate\n } catch (e: any) {\n throw new E_VECTOR_STORE_CONNECTION_FAILED([e?.message ?? String(e)])\n }\n }\n\n async close(): Promise<void> {\n await this.#client?.close?.()\n this.#client = null\n this.#weaviate = null\n }\n\n async createCollection(spec: CollectionSpec, ifNotExists: boolean): Promise<void> {\n await this.connect()\n const c = this.#cls(spec.collection)\n try {\n if (await this.#client.collections.exists(c)) {\n if (ifNotExists) return\n throw new E_VECTOR_STORE_COLLECTION_FAILED(['create', 'collection exists'])\n }\n await this.#client.collections.create({\n name: c,\n vectorizers: this.#weaviate.configure.vectorizer.none(),\n properties: [\n { name: '__id', dataType: 'text' },\n { name: '__document', dataType: 'text' },\n { name: '__metadata', dataType: 'text' },\n ],\n })\n this.#dims.set(spec.collection, spec.vector.dimensions)\n } catch (e: any) {\n if (isInstanceOf(e, 'E_VECTOR_STORE_COLLECTION_FAILED', E_VECTOR_STORE_COLLECTION_FAILED))\n throw e\n throw new E_VECTOR_STORE_COLLECTION_FAILED(['create', e?.message ?? String(e)])\n }\n }\n\n async dropCollection(collection: string, ifExists: boolean): Promise<void> {\n await this.connect()\n const c = this.#cls(collection)\n try {\n const exists = await this.#client.collections.exists(c)\n if (!exists) {\n if (!ifExists)\n throw new E_VECTOR_STORE_COLLECTION_FAILED(['drop', 'collection does not exist'])\n return\n }\n await this.#client.collections.delete(c)\n this.#dims.delete(collection)\n } catch (e: any) {\n if (isInstanceOf(e, 'E_VECTOR_STORE_COLLECTION_FAILED', E_VECTOR_STORE_COLLECTION_FAILED))\n throw e\n throw new E_VECTOR_STORE_COLLECTION_FAILED(['drop', e?.message ?? String(e)])\n }\n }\n\n async hasCollection(collection: string): Promise<boolean> {\n await this.connect()\n return await this.#client.collections.exists(this.#cls(collection))\n }\n\n async renameCollection(_from: string, _to: string): Promise<void> {\n throw new E_VECTOR_STORE_UNSUPPORTED_OPERATION(['renameCollection', 'weaviate'])\n }\n\n async executeUpsert(plan: UpsertPlan): Promise<void> {\n await this.connect()\n validateRecords(plan.records)\n const dims = this.#dims.get(plan.collection) ?? this.options.dimensions\n const col = this.#client.collections.get(this.#cls(plan.collection))\n try {\n const objects = []\n for (const r of plan.records) {\n let vector = r.vector\n if (!vector && r.document) {\n const [v] = await this.encode([r.document], 'document')\n vector = v\n }\n if (!vector) throw new E_VECTOR_STORE_UPSERT_FAILED(['Record missing vector and document'])\n if (dims !== undefined && vector.length !== dims) {\n throw new E_VECTOR_STORE_DIMENSION_MISMATCH([dims, vector.length])\n }\n objects.push({\n id: this.#uuidFromId(r.id),\n properties: {\n __id: r.id,\n __document: r.document ?? '',\n __metadata: JSON.stringify(r.metadata ?? {}),\n },\n vectors: vector,\n })\n }\n if (objects.length > 0) await col.data.insertMany(objects)\n } catch (e: any) {\n if (isInstanceOf(e, 'E_VECTOR_STORE_DIMENSION_MISMATCH', E_VECTOR_STORE_DIMENSION_MISMATCH))\n throw e\n if (isInstanceOf(e, 'E_VECTOR_STORE_UPSERT_FAILED', E_VECTOR_STORE_UPSERT_FAILED)) throw e\n throw new E_VECTOR_STORE_UPSERT_FAILED([e?.message ?? String(e)])\n }\n }\n\n async executeSearch(plan: SearchPlan): Promise<VectorMatch[]> {\n await this.connect()\n const col = this.#client.collections.get(this.#cls(plan.collection))\n const metric = this.options.metric ?? 'cosine'\n try {\n let qvec: number[] | undefined\n if (plan.near) {\n if ('vector' in plan.near) qvec = plan.near.vector\n else if ('serverText' in plan.near) {\n const [v] = await this.encode([plan.near.serverText], 'query')\n qvec = v\n } else if ('id' in plan.near) {\n const ref = await col.query.fetchObjectById(this.#uuidFromId(plan.near.id), {\n includeVector: true,\n })\n qvec = this.#extractVector(ref?.vectors)\n }\n }\n let res: any\n if (qvec) {\n res = await col.query.nearVector(qvec, {\n limit: (plan.topK + (plan.offset ?? 0)) * 4,\n returnMetadata: ['distance'],\n includeVector: !!plan.projection.vector,\n returnProperties: ['__id', '__document', '__metadata'],\n })\n } else {\n res = await col.query.fetchObjects({\n limit: 10000,\n includeVector: !!plan.projection.vector,\n returnProperties: ['__id', '__document', '__metadata'],\n })\n }\n const filtered = (res.objects ?? []).filter((obj: any) => {\n const metadata = this.#parseMetadata(obj)\n return !plan.filter || evaluateFilter(plan.filter, metadata)\n })\n const start = plan.offset ?? 0\n return filtered\n .slice(start, start + plan.topK)\n .map((obj: any) => this.#project(obj, plan, !!qvec, metric))\n } catch (e: any) {\n throw new E_VECTOR_STORE_SEARCH_FAILED([e?.message ?? String(e)])\n }\n }\n\n async executeDelete(plan: DeletePlan): Promise<void> {\n await this.connect()\n const col = this.#client.collections.get(this.#cls(plan.collection))\n try {\n if (plan.ids && plan.ids.length > 0) {\n for (const id of plan.ids) await col.data.deleteById(this.#uuidFromId(id))\n return\n }\n const res = await col.query.fetchObjects({\n limit: 10000,\n returnProperties: ['__id', '__document', '__metadata'],\n })\n for (const obj of res.objects ?? []) {\n const id = obj.properties?.__id\n if (!id) continue\n if (!plan.filter || evaluateFilter(plan.filter, this.#parseMetadata(obj))) {\n await col.data.deleteById(this.#uuidFromId(id))\n }\n }\n } catch (e: any) {\n throw new E_VECTOR_STORE_DELETE_FAILED([e?.message ?? String(e)])\n }\n }\n\n #cls(name: string): string {\n return name.charAt(0).toUpperCase() + name.slice(1)\n }\n\n #uuidFromId(id: string): string {\n const h = sha256(id)\n return (\n h.slice(0, 8) +\n '-' +\n h.slice(8, 12) +\n '-4' +\n h.slice(13, 16) +\n '-8' +\n h.slice(17, 20) +\n '-' +\n h.slice(20, 32)\n )\n }\n\n #parseMetadata(obj: any): VectorMetadata {\n try {\n return JSON.parse(obj.properties?.__metadata || '{}') as VectorMetadata\n } catch {\n return {}\n }\n }\n\n #extractVector(vectors: any): number[] | undefined {\n if (Array.isArray(vectors)) return vectors as number[]\n if (vectors?.default) return vectors.default as number[]\n if (vectors && typeof vectors === 'object')\n return Object.values(vectors)[0] as number[] | undefined\n return undefined\n }\n\n #project(obj: any, plan: SearchPlan, scored: boolean, metric: string): VectorMatch {\n const out: VectorMatch = {}\n const props = obj.properties ?? {}\n if (plan.projection.id) out.id = props.__id\n if (plan.projection.document) out.document = props.__document\n if (plan.projection.metadata) out.metadata = this.#parseMetadata(obj)\n if (plan.projection.vector) out.vector = this.#extractVector(obj.vectors)\n if (scored)\n out.score = normalizeScore(Number(obj.metadata?.distance ?? 0), metric as any, 'distance')\n return out\n }\n}\n"],"mappings":"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"}