@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,357 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ require("../../chunk-Ble4zEEl.js");
3
+ const require_batteries_vector_filters = require("./filters.cjs");
4
+ const require_batteries_vector_helpers = require("./helpers.cjs");
5
+ const require_batteries_vector_exceptions = require("./exceptions.cjs");
6
+ const require_batteries_vector_contract = require("./contract.cjs");
7
+ const require_batteries_vector_validation = require("./validation.cjs");
8
+ //#region src/batteries/vector/milvus/index.ts
9
+ /**
10
+ * @module @nhtio/adk/batteries/vector/milvus
11
+ */
12
+ var getMilvusClient = async () => {
13
+ try {
14
+ return (await import("@zilliz/milvus2-sdk-node")).MilvusClient;
15
+ } catch {
16
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_DRIVER_UNAVAILABLE(["@zilliz/milvus2-sdk-node"]);
17
+ }
18
+ };
19
+ var getDataType = async () => {
20
+ try {
21
+ return (await import("@zilliz/milvus2-sdk-node")).DataType;
22
+ } catch {
23
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_DRIVER_UNAVAILABLE(["@zilliz/milvus2-sdk-node"]);
24
+ }
25
+ };
26
+ var mapMetricToMilvus = (metric) => {
27
+ if (metric === "cosine") return "COSINE";
28
+ if (metric === "dot") return "IP";
29
+ if (metric === "euclidean") return "L2";
30
+ return "COSINE";
31
+ };
32
+ var MilvusVectorStore = class extends require_batteries_vector_contract.BaseVectorStore {
33
+ capabilities = {
34
+ transactions: false,
35
+ namedVectors: false,
36
+ rename: true,
37
+ rawSql: false,
38
+ builtInEncoding: false,
39
+ consistency: {
40
+ configurable: false,
41
+ default: "strong",
42
+ modes: ["strong"]
43
+ }
44
+ };
45
+ #client = null;
46
+ #dims = /* @__PURE__ */ new Map();
47
+ get #opts() {
48
+ return this.options;
49
+ }
50
+ static isAvailable() {
51
+ return typeof process !== "undefined";
52
+ }
53
+ isAvailable() {
54
+ return typeof process !== "undefined";
55
+ }
56
+ async connect() {
57
+ if (this.#client) return;
58
+ const MilvusClient = await getMilvusClient();
59
+ const c = this.#opts.connection || {};
60
+ let address = c.address;
61
+ if (!address && c.url) try {
62
+ const url = new URL(c.url);
63
+ address = `${url.hostname}:${url.port || (url.protocol === "https:" ? "443" : "19530")}`;
64
+ } catch {
65
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_CONNECTION_FAILED(["Invalid connection URL"]);
66
+ }
67
+ if (!address) address = "localhost:19530";
68
+ try {
69
+ this.#client = new MilvusClient({
70
+ address,
71
+ token: c.token,
72
+ username: c.username,
73
+ password: c.password,
74
+ ssl: c.ssl
75
+ });
76
+ } catch (err) {
77
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_CONNECTION_FAILED([String(err)]);
78
+ }
79
+ }
80
+ async close() {
81
+ if (this.#client) {
82
+ await this.#client.closeConnection?.();
83
+ this.#client = null;
84
+ }
85
+ }
86
+ async createCollection(spec, ifNotExists) {
87
+ const client = this.#client || (await this.connect(), this.#client);
88
+ const collectionName = spec.collection;
89
+ const metric = spec.vector.metric ?? "cosine";
90
+ const dim = spec.vector.dimensions;
91
+ if (ifNotExists && await this.hasCollection(collectionName)) return;
92
+ try {
93
+ const has = await client.hasCollection({ collection_name: collectionName });
94
+ if (has.value && !ifNotExists) throw new require_batteries_vector_exceptions.E_VECTOR_STORE_COLLECTION_FAILED(["create", "collection exists"]);
95
+ if (has.value && ifNotExists) return;
96
+ const DataType = await getDataType();
97
+ await client.createCollection({
98
+ collection_name: collectionName,
99
+ fields: [
100
+ {
101
+ name: "id",
102
+ data_type: DataType.VarChar,
103
+ is_primary_key: true,
104
+ max_length: 512
105
+ },
106
+ {
107
+ name: "vector",
108
+ data_type: DataType.FloatVector,
109
+ dim
110
+ },
111
+ {
112
+ name: "document",
113
+ data_type: DataType.VarChar,
114
+ max_length: 65535
115
+ },
116
+ {
117
+ name: "metadata",
118
+ data_type: DataType.JSON
119
+ }
120
+ ]
121
+ });
122
+ const indexType = "AUTOINDEX";
123
+ const metricType = mapMetricToMilvus(metric);
124
+ await client.createIndex({
125
+ collection_name: collectionName,
126
+ field_name: "vector",
127
+ index_type: indexType,
128
+ metric_type: metricType
129
+ });
130
+ await client.loadCollectionSync({ collection_name: collectionName });
131
+ this.#dims.set(collectionName, dim);
132
+ } catch (err) {
133
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_COLLECTION_FAILED(["createCollection", String(err)]);
134
+ }
135
+ }
136
+ async dropCollection(collection, ifExists) {
137
+ const client = this.#client || (await this.connect(), this.#client);
138
+ if (ifExists && !await this.hasCollection(collection)) return;
139
+ try {
140
+ if (!(await client.hasCollection({ collection_name: collection })).value && !ifExists) throw new require_batteries_vector_exceptions.E_VECTOR_STORE_COLLECTION_FAILED(["drop", "collection does not exist"]);
141
+ await client.dropCollection({ collection_name: collection });
142
+ this.#dims.delete(collection);
143
+ } catch (err) {
144
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_COLLECTION_FAILED(["dropCollection", String(err)]);
145
+ }
146
+ }
147
+ async hasCollection(collection) {
148
+ const client = this.#client || (await this.connect(), this.#client);
149
+ try {
150
+ return !!(await client.hasCollection({ collection_name: collection })).value;
151
+ } catch {
152
+ return false;
153
+ }
154
+ }
155
+ async renameCollection(from, to) {
156
+ const client = this.#client || (await this.connect(), this.#client);
157
+ try {
158
+ await client.renameCollection({
159
+ old_collection_name: from,
160
+ new_collection_name: to
161
+ });
162
+ if (this.#dims.has(from)) {
163
+ this.#dims.set(to, this.#dims.get(from));
164
+ this.#dims.delete(from);
165
+ }
166
+ } catch (err) {
167
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_COLLECTION_FAILED(["renameCollection", String(err)]);
168
+ }
169
+ }
170
+ async executeUpsert(plan) {
171
+ if (plan.records.length === 0) return;
172
+ require_batteries_vector_validation.validateRecords(plan.records);
173
+ const client = this.#client || (await this.connect(), this.#client);
174
+ const collectionName = plan.collection;
175
+ const dim = this.#dims.get(collectionName);
176
+ const rows = [];
177
+ for (const r of plan.records) {
178
+ let vector = r.vector;
179
+ if (!vector && r.document) {
180
+ const [v] = await this.encode([r.document], "document");
181
+ vector = v;
182
+ }
183
+ if (!vector) throw new require_batteries_vector_exceptions.E_VECTOR_STORE_UPSERT_FAILED(["Record missing vector and document"]);
184
+ if (dim !== void 0 && vector.length !== dim) throw new require_batteries_vector_exceptions.E_VECTOR_STORE_DIMENSION_MISMATCH([dim, vector.length]);
185
+ rows.push({
186
+ id: r.id,
187
+ vector,
188
+ document: r.document ?? "",
189
+ metadata: r.metadata ?? {}
190
+ });
191
+ }
192
+ try {
193
+ await client.upsert({
194
+ collection_name: collectionName,
195
+ data: rows
196
+ });
197
+ await client.flushSync({ collection_names: [collectionName] });
198
+ } catch (err) {
199
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_UPSERT_FAILED([String(err)]);
200
+ }
201
+ }
202
+ async executeSearch(plan) {
203
+ const client = this.#client || (await this.connect(), this.#client);
204
+ const metric = this.#opts.metric ?? "cosine";
205
+ let queryVector;
206
+ if (plan.near) {
207
+ if ("vector" in plan.near) queryVector = plan.near.vector;
208
+ else if ("serverText" in plan.near) {
209
+ const [v] = await this.encode([plan.near.serverText], "query");
210
+ queryVector = v;
211
+ } else if ("id" in plan.near) {
212
+ const res = await client.query({
213
+ collection_name: plan.collection,
214
+ filter: `id == "${plan.near.id}"`,
215
+ output_fields: ["vector"]
216
+ });
217
+ if (res.data.length === 0) throw new require_batteries_vector_exceptions.E_VECTOR_STORE_SEARCH_FAILED(["Referenced id not found: " + plan.near.id]);
218
+ queryVector = res.data[0].vector;
219
+ }
220
+ }
221
+ const outputFields = [
222
+ "id",
223
+ "document",
224
+ "metadata"
225
+ ];
226
+ if (plan.projection.vector) outputFields.push("vector");
227
+ const milvusFilter = translateMilvusFilter(plan.filter);
228
+ let results;
229
+ if (queryVector) results = await client.search({
230
+ collection_name: plan.collection,
231
+ data: [queryVector],
232
+ limit: plan.topK,
233
+ offset: plan.offset,
234
+ filter: milvusFilter,
235
+ output_fields: outputFields,
236
+ consistency_level: "Strong"
237
+ });
238
+ else results = await client.query({
239
+ collection_name: plan.collection,
240
+ filter: milvusFilter || "",
241
+ limit: plan.topK,
242
+ offset: plan.offset,
243
+ output_fields: outputFields,
244
+ consistency_level: "Strong"
245
+ });
246
+ const hitList = results.results || results.data || [];
247
+ const proj = plan.projection;
248
+ return hitList.map((hit) => this.projectHit(hit, proj, metric));
249
+ }
250
+ async executeDelete(plan) {
251
+ const client = this.#client || (await this.connect(), this.#client);
252
+ try {
253
+ const collectionName = plan.collection;
254
+ if (plan.ids) {
255
+ const filter = `id in [${plan.ids.map((i) => JSON.stringify(i)).join(",")}]`;
256
+ await client.delete({
257
+ collection_name: collectionName,
258
+ filter
259
+ });
260
+ } else if (plan.filter) {
261
+ const filter = translateMilvusFilter(plan.filter);
262
+ await client.delete({
263
+ collection_name: collectionName,
264
+ filter
265
+ });
266
+ } else await client.delete({
267
+ collection_name: collectionName,
268
+ filter: "id != \"\""
269
+ });
270
+ } catch (err) {
271
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_DELETE_FAILED([String(err)]);
272
+ }
273
+ }
274
+ projectHit(hit, projection, metric) {
275
+ const out = {};
276
+ if (projection.id) out.id = hit.id;
277
+ if (projection.vector && "vector" in hit) out.vector = hit.vector;
278
+ if (projection.document) out.document = hit.document;
279
+ if (projection.metadata) out.metadata = hit.metadata;
280
+ if ("score" in hit && hit.score !== void 0) {
281
+ const kind = metric === "euclidean" ? "distance" : "similarity";
282
+ out.score = require_batteries_vector_helpers.normalizeScore(hit.score, metric, kind);
283
+ }
284
+ return out;
285
+ }
286
+ translateMilvusFilter(filter) {
287
+ return translateMilvusFilter(filter);
288
+ }
289
+ };
290
+ var translateMilvusFilter = (filter) => {
291
+ if (!filter) return "";
292
+ if (require_batteries_vector_filters.isRawFilter(filter)) {
293
+ if (filter.$dialect === "milvus" && typeof filter.$raw === "string") return filter.$raw;
294
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR(["milvus", String(filter.$dialect)]);
295
+ }
296
+ if (require_batteries_vector_filters.isFilterCondition(filter)) {
297
+ const { field, op, value } = filter;
298
+ const jsonField = `metadata["${field}"]`;
299
+ if (value === void 0) {
300
+ if (op === "exists") return `exists ${jsonField}`;
301
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR(["milvus", op]);
302
+ }
303
+ const toJsonValue = (v) => {
304
+ if (typeof v === "string") return JSON.stringify(v);
305
+ if (typeof v === "number" || typeof v === "boolean") return String(v);
306
+ if (Array.isArray(v)) return `[${v.map(toJsonValue).join(",")}]`;
307
+ return JSON.stringify(v);
308
+ };
309
+ if (op === "eq") return `${jsonField} == ${toJsonValue(value)}`;
310
+ if (op === "ne") return `${jsonField} != ${toJsonValue(value)}`;
311
+ if (op === "gt") return `${jsonField} > ${toJsonValue(value)}`;
312
+ if (op === "gte") return `${jsonField} >= ${toJsonValue(value)}`;
313
+ if (op === "lt") return `${jsonField} < ${toJsonValue(value)}`;
314
+ if (op === "lte") return `${jsonField} <= ${toJsonValue(value)}`;
315
+ if (op === "in") {
316
+ if (!Array.isArray(value)) return "";
317
+ return `${jsonField} in [${value.map(toJsonValue).join(",")}]`;
318
+ }
319
+ if (op === "nin") {
320
+ if (!Array.isArray(value)) return "";
321
+ return `${jsonField} not in [${value.map(toJsonValue).join(",")}]`;
322
+ }
323
+ if (op === "exists") return `exists ${jsonField}`;
324
+ if (op === "contains") return `json_contains(${jsonField}, ${toJsonValue(value)})`;
325
+ throw new require_batteries_vector_exceptions.E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR(["milvus", op]);
326
+ }
327
+ if (require_batteries_vector_filters.isFilterGroup(filter)) {
328
+ const { and, or, not } = filter;
329
+ const parts = [];
330
+ if (and) {
331
+ const children = and.map((f) => translateMilvusFilter(f)).filter((c) => c !== "");
332
+ if (children.length === 0) return "";
333
+ if (children.length === 1) return children[0];
334
+ parts.push(`(${children.join(" && ")})`);
335
+ }
336
+ if (or) {
337
+ const children = or.map((f) => translateMilvusFilter(f)).filter((c) => c !== "");
338
+ if (children.length === 0) return "";
339
+ if (children.length === 1) return children[0];
340
+ parts.push(`(${children.join(" || ")})`);
341
+ }
342
+ if (not) {
343
+ const child = translateMilvusFilter(not);
344
+ if (child === "") return "";
345
+ parts.push(`!(${child})`);
346
+ }
347
+ if (parts.length === 0) return "";
348
+ if (parts.length === 1) return parts[0];
349
+ return parts.join(" && ");
350
+ }
351
+ return "";
352
+ };
353
+ //#endregion
354
+ exports.MilvusVectorStore = MilvusVectorStore;
355
+ exports.translateMilvusFilter = translateMilvusFilter;
356
+
357
+ //# sourceMappingURL=milvus.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"milvus.cjs","names":["#opts","#client","#dims"],"sources":["../../../src/batteries/vector/milvus/index.ts"],"sourcesContent":["/**\n * @module @nhtio/adk/batteries/vector/milvus\n */\n\nimport { normalizeScore } from '../helpers'\nimport { BaseVectorStore } from '../contract'\nimport { validateRecords } from '../validation'\nimport { isFilterCondition, isRawFilter, isFilterGroup } from '../filters'\nimport {\n E_VECTOR_STORE_DRIVER_UNAVAILABLE,\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_FILTER_OPERATOR,\n E_VECTOR_STORE_CONNECTION_FAILED,\n} from '../exceptions'\nimport type { VectorFilter } from '../filters'\nimport type { SearchPlan, UpsertPlan, DeletePlan, CollectionSpec } from '../plan'\nimport type { VectorMatch, VectorStoreCapabilities, BaseVectorStoreOptions } from '../types'\n\nexport interface MilvusVectorStoreOptions extends BaseVectorStoreOptions {\n connection?: {\n address?: string\n url?: string\n token?: string\n username?: string\n password?: string\n ssl?: boolean\n }\n}\n\nconst getMilvusClient = async () => {\n try {\n const mod = await import('@zilliz/milvus2-sdk-node')\n return mod.MilvusClient\n } catch {\n throw new E_VECTOR_STORE_DRIVER_UNAVAILABLE(['@zilliz/milvus2-sdk-node'])\n }\n}\n\nconst getDataType = async () => {\n try {\n const mod = await import('@zilliz/milvus2-sdk-node')\n return mod.DataType\n } catch {\n throw new E_VECTOR_STORE_DRIVER_UNAVAILABLE(['@zilliz/milvus2-sdk-node'])\n }\n}\n\nconst mapMetricToMilvus = (metric: string): string => {\n if (metric === 'cosine') return 'COSINE'\n if (metric === 'dot') return 'IP'\n if (metric === 'euclidean') return 'L2'\n return 'COSINE'\n}\n\nexport class MilvusVectorStore extends BaseVectorStore {\n readonly capabilities: VectorStoreCapabilities = {\n transactions: false,\n namedVectors: false,\n rename: true,\n rawSql: false,\n builtInEncoding: false,\n // Strongly consistent (search/query use consistency_level 'Strong'); the option is a no-op.\n consistency: { configurable: false, default: 'strong', modes: ['strong'] },\n }\n #client: any | null = null\n #dims: Map<string, number> = new Map()\n get #opts() {\n return this.options as MilvusVectorStoreOptions\n }\n static isAvailable(): boolean {\n return typeof process !== 'undefined'\n }\n isAvailable(): boolean {\n return typeof process !== 'undefined'\n }\n async connect(): Promise<void> {\n if (this.#client) return\n const MilvusClient = await getMilvusClient()\n const c = this.#opts.connection || {}\n let address = c.address\n if (!address && c.url) {\n try {\n const url = new URL(c.url)\n const host = url.hostname\n const port = url.port || (url.protocol === 'https:' ? '443' : '19530')\n address = `${host}:${port}`\n } catch {\n throw new E_VECTOR_STORE_CONNECTION_FAILED(['Invalid connection URL'])\n }\n }\n if (!address) {\n address = 'localhost:19530'\n }\n try {\n this.#client = new MilvusClient({\n address,\n token: c.token,\n username: c.username,\n password: c.password,\n ssl: c.ssl,\n })\n } catch (err) {\n throw new E_VECTOR_STORE_CONNECTION_FAILED([String(err)])\n }\n }\n async close(): Promise<void> {\n if (this.#client) {\n await this.#client.closeConnection?.()\n this.#client = null\n }\n }\n async createCollection(spec: CollectionSpec, ifNotExists: boolean): Promise<void> {\n const client = this.#client || (await this.connect(), this.#client!)\n const collectionName = spec.collection\n const metric = spec.vector.metric ?? 'cosine'\n const dim = spec.vector.dimensions\n if (ifNotExists && (await this.hasCollection(collectionName))) return\n try {\n const has = await client.hasCollection({ collection_name: collectionName })\n if (has.value && !ifNotExists) {\n throw new E_VECTOR_STORE_COLLECTION_FAILED(['create', 'collection exists'])\n }\n if (has.value && ifNotExists) return\n const DataType = await getDataType()\n await client.createCollection({\n collection_name: collectionName,\n fields: [\n { name: 'id', data_type: DataType.VarChar, is_primary_key: true, max_length: 512 },\n { name: 'vector', data_type: DataType.FloatVector, dim },\n { name: 'document', data_type: DataType.VarChar, max_length: 65535 },\n { name: 'metadata', data_type: DataType.JSON },\n ],\n })\n const indexType = 'AUTOINDEX'\n const metricType = mapMetricToMilvus(metric)\n await client.createIndex({\n collection_name: collectionName,\n field_name: 'vector',\n index_type: indexType,\n metric_type: metricType,\n })\n await client.loadCollectionSync({ collection_name: collectionName })\n this.#dims.set(collectionName, dim)\n } catch (err) {\n throw new E_VECTOR_STORE_COLLECTION_FAILED(['createCollection', String(err)])\n }\n }\n async dropCollection(collection: string, ifExists: boolean): Promise<void> {\n const client = this.#client || (await this.connect(), this.#client!)\n if (ifExists && !(await this.hasCollection(collection))) return\n try {\n const has = await client.hasCollection({ collection_name: collection })\n if (!has.value && !ifExists) {\n throw new E_VECTOR_STORE_COLLECTION_FAILED(['drop', 'collection does not exist'])\n }\n await client.dropCollection({ collection_name: collection })\n this.#dims.delete(collection)\n } catch (err) {\n throw new E_VECTOR_STORE_COLLECTION_FAILED(['dropCollection', String(err)])\n }\n }\n async hasCollection(collection: string): Promise<boolean> {\n const client = this.#client || (await this.connect(), this.#client!)\n try {\n const r = await client.hasCollection({ collection_name: collection })\n return !!r.value\n } catch {\n return false\n }\n }\n async renameCollection(from: string, to: string): Promise<void> {\n const client = this.#client || (await this.connect(), this.#client!)\n try {\n await client.renameCollection({ old_collection_name: from, new_collection_name: to })\n if (this.#dims.has(from)) {\n this.#dims.set(to, this.#dims.get(from)!)\n this.#dims.delete(from)\n }\n } catch (err) {\n throw new E_VECTOR_STORE_COLLECTION_FAILED(['renameCollection', String(err)])\n }\n }\n async executeUpsert(plan: UpsertPlan): Promise<void> {\n if (plan.records.length === 0) return\n validateRecords(plan.records)\n const client = this.#client || (await this.connect(), this.#client!)\n const collectionName = plan.collection\n const dim = this.#dims.get(collectionName)\n const rows: any[] = []\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) {\n throw new E_VECTOR_STORE_UPSERT_FAILED(['Record missing vector and document'])\n }\n if (dim !== undefined && vector.length !== dim) {\n throw new E_VECTOR_STORE_DIMENSION_MISMATCH([dim, vector.length])\n }\n rows.push({\n id: r.id,\n vector,\n document: r.document ?? '',\n metadata: r.metadata ?? {},\n })\n }\n try {\n await client.upsert({ collection_name: collectionName, data: rows })\n await client.flushSync({ collection_names: [collectionName] })\n } catch (err) {\n throw new E_VECTOR_STORE_UPSERT_FAILED([String(err)])\n }\n }\n async executeSearch(plan: SearchPlan): Promise<VectorMatch[]> {\n const client = this.#client || (await this.connect(), this.#client!)\n const metric = this.#opts.metric ?? 'cosine'\n let queryVector: number[] | undefined\n if (plan.near) {\n if ('vector' in plan.near) {\n queryVector = plan.near.vector\n } else if ('serverText' in plan.near) {\n const [v] = await this.encode([plan.near.serverText], 'query')\n queryVector = v\n } else if ('id' in plan.near) {\n const res = await client.query({\n collection_name: plan.collection,\n filter: `id == \"${plan.near.id}\"`,\n output_fields: ['vector'],\n })\n if (res.data.length === 0) {\n throw new E_VECTOR_STORE_SEARCH_FAILED(['Referenced id not found: ' + plan.near.id])\n }\n queryVector = res.data[0].vector as number[]\n }\n }\n const outputFields = ['id', 'document', 'metadata']\n if (plan.projection.vector) {\n outputFields.push('vector')\n }\n const milvusFilter = translateMilvusFilter(plan.filter)\n let results: any\n if (queryVector) {\n results = await client.search({\n collection_name: plan.collection,\n data: [queryVector],\n limit: plan.topK,\n offset: plan.offset,\n filter: milvusFilter,\n output_fields: outputFields,\n consistency_level: 'Strong',\n })\n } else {\n results = await client.query({\n collection_name: plan.collection,\n filter: milvusFilter || '',\n limit: plan.topK,\n offset: plan.offset,\n output_fields: outputFields,\n consistency_level: 'Strong',\n })\n }\n const hitList = results.results || results.data || []\n const proj = plan.projection\n return hitList.map((hit: any) => this.projectHit(hit, proj, metric))\n }\n async executeDelete(plan: DeletePlan): Promise<void> {\n const client = this.#client || (await this.connect(), this.#client!)\n try {\n const collectionName = plan.collection\n if (plan.ids) {\n const filter = `id in [${plan.ids.map((i) => JSON.stringify(i)).join(',')}]`\n await client.delete({ collection_name: collectionName, filter })\n } else if (plan.filter) {\n const filter = translateMilvusFilter(plan.filter)\n await client.delete({ collection_name: collectionName, filter })\n } else {\n await client.delete({ collection_name: collectionName, filter: 'id != \"\"' })\n }\n } catch (err) {\n throw new E_VECTOR_STORE_DELETE_FAILED([String(err)])\n }\n }\n projectHit(hit: any, projection: any, metric: string): VectorMatch {\n const out: VectorMatch = {}\n if (projection.id) {\n out.id = hit.id\n }\n if (projection.vector && 'vector' in hit) {\n out.vector = hit.vector\n }\n if (projection.document) {\n out.document = hit.document\n }\n if (projection.metadata) {\n out.metadata = hit.metadata\n }\n if ('score' in hit && hit.score !== undefined) {\n const kind = metric === 'euclidean' ? 'distance' : 'similarity'\n out.score = normalizeScore(hit.score as number, metric as any, kind)\n }\n return out\n }\n translateMilvusFilter(filter?: VectorFilter): string {\n return translateMilvusFilter(filter)\n }\n}\n\nexport const translateMilvusFilter = (filter?: VectorFilter): string => {\n if (!filter) return ''\n if (isRawFilter(filter)) {\n if (filter.$dialect === 'milvus' && typeof filter.$raw === 'string') {\n return filter.$raw\n }\n throw new E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR(['milvus', String(filter.$dialect)])\n }\n if (isFilterCondition(filter)) {\n const { field, op, value } = filter\n const jsonField = `metadata[\"${field}\"]`\n if (value === undefined) {\n if (op === 'exists') {\n return `exists ${jsonField}`\n }\n throw new E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR(['milvus', op])\n }\n const toJsonValue = (v: unknown): string => {\n if (typeof v === 'string') return JSON.stringify(v)\n if (typeof v === 'number' || typeof v === 'boolean') return String(v)\n if (Array.isArray(v)) {\n return `[${v.map(toJsonValue).join(',')}]`\n }\n return JSON.stringify(v)\n }\n if (op === 'eq') return `${jsonField} == ${toJsonValue(value)}`\n if (op === 'ne') return `${jsonField} != ${toJsonValue(value)}`\n if (op === 'gt') return `${jsonField} > ${toJsonValue(value)}`\n if (op === 'gte') return `${jsonField} >= ${toJsonValue(value)}`\n if (op === 'lt') return `${jsonField} < ${toJsonValue(value)}`\n if (op === 'lte') return `${jsonField} <= ${toJsonValue(value)}`\n if (op === 'in') {\n if (!Array.isArray(value)) return ''\n return `${jsonField} in [${value.map(toJsonValue).join(',')}]`\n }\n if (op === 'nin') {\n if (!Array.isArray(value)) return ''\n return `${jsonField} not in [${value.map(toJsonValue).join(',')}]`\n }\n if (op === 'exists') {\n return `exists ${jsonField}`\n }\n if (op === 'contains') {\n return `json_contains(${jsonField}, ${toJsonValue(value)})`\n }\n throw new E_VECTOR_STORE_UNSUPPORTED_FILTER_OPERATOR(['milvus', op])\n }\n if (isFilterGroup(filter)) {\n const { and, or, not } = filter\n const parts: string[] = []\n if (and) {\n const children = and.map((f) => translateMilvusFilter(f)).filter((c) => c !== '')\n if (children.length === 0) return ''\n if (children.length === 1) return children[0]\n parts.push(`(${children.join(' && ')})`)\n }\n if (or) {\n const children = or.map((f) => translateMilvusFilter(f)).filter((c) => c !== '')\n if (children.length === 0) return ''\n if (children.length === 1) return children[0]\n parts.push(`(${children.join(' || ')})`)\n }\n if (not) {\n const child = translateMilvusFilter(not)\n if (child === '') return ''\n parts.push(`!(${child})`)\n }\n if (parts.length === 0) return ''\n if (parts.length === 1) return parts[0]\n return parts.join(' && ')\n }\n return ''\n}\n"],"mappings":"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"}