vectra 0.12.2 → 0.14.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 (392) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +92 -100
  3. package/bin/vectra.js +3 -0
  4. package/lib/BrowserWebFetcher.d.ts +75 -0
  5. package/lib/BrowserWebFetcher.d.ts.map +1 -0
  6. package/lib/BrowserWebFetcher.js +290 -0
  7. package/lib/BrowserWebFetcher.js.map +1 -0
  8. package/lib/FileFetcher.d.ts +5 -0
  9. package/lib/FileFetcher.d.ts.map +1 -0
  10. package/lib/FileFetcher.js +89 -0
  11. package/lib/FileFetcher.js.map +1 -0
  12. package/lib/FileFetcher.spec.d.ts +2 -0
  13. package/lib/FileFetcher.spec.d.ts.map +1 -0
  14. package/lib/FileFetcher.spec.js +244 -0
  15. package/lib/FileFetcher.spec.js.map +1 -0
  16. package/lib/FolderWatcher.d.ts +91 -0
  17. package/lib/FolderWatcher.d.ts.map +1 -0
  18. package/lib/FolderWatcher.js +304 -0
  19. package/lib/FolderWatcher.js.map +1 -0
  20. package/lib/FolderWatcher.spec.d.ts +2 -0
  21. package/lib/FolderWatcher.spec.d.ts.map +1 -0
  22. package/lib/FolderWatcher.spec.js +308 -0
  23. package/lib/FolderWatcher.spec.js.map +1 -0
  24. package/lib/GPT3Tokenizer.d.ts +9 -0
  25. package/lib/GPT3Tokenizer.spec.d.ts +2 -0
  26. package/lib/GPT3Tokenizer.spec.d.ts.map +1 -0
  27. package/lib/GPT3Tokenizer.spec.js +45 -0
  28. package/lib/GPT3Tokenizer.spec.js.map +1 -0
  29. package/lib/ItemSelector.d.ts +41 -0
  30. package/lib/ItemSelector.d.ts.map +1 -0
  31. package/lib/ItemSelector.js +179 -0
  32. package/lib/ItemSelector.js.map +1 -0
  33. package/lib/ItemSelector.spec.d.ts +2 -0
  34. package/lib/ItemSelector.spec.d.ts.map +1 -0
  35. package/lib/ItemSelector.spec.js +204 -0
  36. package/lib/ItemSelector.spec.js.map +1 -0
  37. package/lib/LocalDocument.d.ts +54 -0
  38. package/lib/LocalDocument.d.ts.map +1 -1
  39. package/lib/LocalDocument.js +116 -0
  40. package/lib/LocalDocument.js.map +1 -0
  41. package/lib/LocalDocument.spec.d.ts +2 -0
  42. package/lib/LocalDocument.spec.d.ts.map +1 -0
  43. package/lib/LocalDocument.spec.js +214 -0
  44. package/lib/LocalDocument.spec.js.map +1 -0
  45. package/lib/LocalDocumentIndex.d.ts +152 -0
  46. package/lib/LocalDocumentIndex.d.ts.map +1 -1
  47. package/lib/LocalDocumentIndex.js +420 -0
  48. package/lib/LocalDocumentIndex.js.map +1 -0
  49. package/lib/LocalDocumentIndex.spec.d.ts +2 -0
  50. package/lib/LocalDocumentIndex.spec.d.ts.map +1 -0
  51. package/lib/LocalDocumentIndex.spec.js +494 -0
  52. package/lib/LocalDocumentIndex.spec.js.map +1 -0
  53. package/lib/LocalDocumentResult.d.ts +66 -0
  54. package/lib/LocalDocumentResult.d.ts.map +1 -1
  55. package/lib/LocalDocumentResult.js +376 -0
  56. package/lib/LocalDocumentResult.js.map +1 -0
  57. package/lib/LocalDocumentResult.spec.d.ts +2 -0
  58. package/lib/LocalDocumentResult.spec.d.ts.map +1 -0
  59. package/lib/LocalDocumentResult.spec.js +373 -0
  60. package/lib/LocalDocumentResult.spec.js.map +1 -0
  61. package/lib/LocalEmbeddings.d.ts +59 -0
  62. package/lib/LocalEmbeddings.d.ts.map +1 -0
  63. package/lib/LocalEmbeddings.js +101 -0
  64. package/lib/LocalEmbeddings.js.map +1 -0
  65. package/lib/LocalEmbeddings.spec.d.ts +2 -0
  66. package/lib/LocalEmbeddings.spec.d.ts.map +1 -0
  67. package/lib/LocalEmbeddings.spec.js +155 -0
  68. package/lib/LocalEmbeddings.spec.js.map +1 -0
  69. package/lib/LocalIndex.d.ts +159 -0
  70. package/lib/LocalIndex.d.ts.map +1 -1
  71. package/lib/LocalIndex.js +519 -0
  72. package/lib/LocalIndex.js.map +1 -0
  73. package/lib/LocalIndex.spec.d.ts +2 -0
  74. package/lib/LocalIndex.spec.js +611 -9
  75. package/lib/LocalIndex.spec.js.map +1 -1
  76. package/lib/OpenAIEmbeddings.d.ts +124 -0
  77. package/lib/OpenAIEmbeddings.d.ts.map +1 -0
  78. package/lib/OpenAIEmbeddings.js +166 -0
  79. package/lib/OpenAIEmbeddings.js.map +1 -0
  80. package/lib/OpenAIEmbeddings.spec.d.ts +2 -0
  81. package/lib/OpenAIEmbeddings.spec.d.ts.map +1 -0
  82. package/lib/OpenAIEmbeddings.spec.js +298 -0
  83. package/lib/OpenAIEmbeddings.spec.js.map +1 -0
  84. package/lib/TextSplitter.d.ts +21 -0
  85. package/lib/TextSplitter.d.ts.map +1 -1
  86. package/lib/TextSplitter.js +500 -0
  87. package/lib/TextSplitter.js.map +1 -0
  88. package/lib/TextSplitter.spec.d.ts +2 -0
  89. package/lib/TextSplitter.spec.d.ts.map +1 -0
  90. package/lib/TextSplitter.spec.js +337 -0
  91. package/lib/TextSplitter.spec.js.map +1 -0
  92. package/lib/TransformersEmbeddings.d.ts +121 -0
  93. package/lib/TransformersEmbeddings.d.ts.map +1 -0
  94. package/lib/TransformersEmbeddings.js +176 -0
  95. package/lib/TransformersEmbeddings.js.map +1 -0
  96. package/lib/TransformersEmbeddings.spec.d.ts +2 -0
  97. package/lib/TransformersEmbeddings.spec.d.ts.map +1 -0
  98. package/lib/TransformersEmbeddings.spec.js +198 -0
  99. package/lib/TransformersEmbeddings.spec.js.map +1 -0
  100. package/lib/TransformersTokenizer.d.ts +33 -0
  101. package/lib/TransformersTokenizer.d.ts.map +1 -0
  102. package/lib/TransformersTokenizer.js +44 -0
  103. package/lib/TransformersTokenizer.js.map +1 -0
  104. package/lib/TransformersTokenizer.spec.d.ts +2 -0
  105. package/lib/TransformersTokenizer.spec.d.ts.map +1 -0
  106. package/lib/TransformersTokenizer.spec.js +112 -0
  107. package/lib/TransformersTokenizer.spec.js.map +1 -0
  108. package/lib/WebFetcher.d.ts +14 -0
  109. package/lib/WebFetcher.d.ts.map +1 -0
  110. package/lib/WebFetcher.js +238 -0
  111. package/lib/WebFetcher.js.map +1 -0
  112. package/lib/WebFetcher.spec.d.ts +2 -0
  113. package/lib/WebFetcher.spec.d.ts.map +1 -0
  114. package/lib/WebFetcher.spec.js +263 -0
  115. package/lib/WebFetcher.spec.js.map +1 -0
  116. package/lib/browser.d.ts +30 -0
  117. package/lib/browser.d.ts.map +1 -0
  118. package/lib/browser.js +52 -0
  119. package/lib/browser.js.map +1 -0
  120. package/lib/codecs/IndexCodec.d.ts +37 -0
  121. package/lib/codecs/IndexCodec.d.ts.map +1 -0
  122. package/lib/codecs/IndexCodec.js +3 -0
  123. package/lib/codecs/IndexCodec.js.map +1 -0
  124. package/lib/codecs/JsonCodec.d.ts +19 -0
  125. package/lib/codecs/JsonCodec.d.ts.map +1 -0
  126. package/lib/codecs/JsonCodec.js +35 -0
  127. package/lib/codecs/JsonCodec.js.map +1 -0
  128. package/lib/codecs/JsonCodec.spec.d.ts +2 -0
  129. package/lib/codecs/JsonCodec.spec.d.ts.map +1 -0
  130. package/lib/codecs/JsonCodec.spec.js +66 -0
  131. package/lib/codecs/JsonCodec.spec.js.map +1 -0
  132. package/lib/codecs/LocalIndex.protobuf.spec.d.ts +2 -0
  133. package/lib/codecs/LocalIndex.protobuf.spec.d.ts.map +1 -0
  134. package/lib/codecs/LocalIndex.protobuf.spec.js +108 -0
  135. package/lib/codecs/LocalIndex.protobuf.spec.js.map +1 -0
  136. package/lib/codecs/ProtobufCodec.d.ts +20 -0
  137. package/lib/codecs/ProtobufCodec.d.ts.map +1 -0
  138. package/lib/codecs/ProtobufCodec.js +225 -0
  139. package/lib/codecs/ProtobufCodec.js.map +1 -0
  140. package/lib/codecs/ProtobufCodec.spec.d.ts +2 -0
  141. package/lib/codecs/ProtobufCodec.spec.d.ts.map +1 -0
  142. package/lib/codecs/ProtobufCodec.spec.js +155 -0
  143. package/lib/codecs/ProtobufCodec.spec.js.map +1 -0
  144. package/lib/codecs/index.d.ts +5 -0
  145. package/lib/codecs/index.d.ts.map +1 -0
  146. package/lib/codecs/index.js +21 -0
  147. package/lib/codecs/index.js.map +1 -0
  148. package/lib/codecs/migrateIndex.d.ts +24 -0
  149. package/lib/codecs/migrateIndex.d.ts.map +1 -0
  150. package/lib/codecs/migrateIndex.js +119 -0
  151. package/lib/codecs/migrateIndex.js.map +1 -0
  152. package/lib/codecs/migrateIndex.spec.d.ts +2 -0
  153. package/lib/codecs/migrateIndex.spec.d.ts.map +1 -0
  154. package/lib/codecs/migrateIndex.spec.js +151 -0
  155. package/lib/codecs/migrateIndex.spec.js.map +1 -0
  156. package/lib/codecs/schemas/index.proto +34 -0
  157. package/lib/index.d.ts +20 -0
  158. package/lib/index.d.ts.map +1 -1
  159. package/lib/index.js +36 -0
  160. package/lib/index.js.map +1 -0
  161. package/lib/internals/Colorize.d.ts +14 -0
  162. package/lib/internals/Colorize.d.ts.map +1 -0
  163. package/lib/internals/Colorize.js +69 -0
  164. package/lib/internals/Colorize.js.map +1 -0
  165. package/lib/internals/index.d.ts +3 -0
  166. package/lib/internals/index.d.ts.map +1 -0
  167. package/lib/internals/index.js +19 -0
  168. package/lib/internals/index.js.map +1 -0
  169. package/lib/internals/types.d.ts +43 -0
  170. package/lib/internals/types.d.ts.map +1 -0
  171. package/lib/internals/types.js +3 -0
  172. package/lib/internals/types.js.map +1 -0
  173. package/lib/server/IndexManager.d.ts +78 -0
  174. package/lib/server/IndexManager.d.ts.map +1 -0
  175. package/lib/server/IndexManager.js +259 -0
  176. package/lib/server/IndexManager.js.map +1 -0
  177. package/lib/server/VectraServer.d.ts +40 -0
  178. package/lib/server/VectraServer.d.ts.map +1 -0
  179. package/lib/server/VectraServer.js +151 -0
  180. package/lib/server/VectraServer.js.map +1 -0
  181. package/lib/server/VectraServer.spec.d.ts +2 -0
  182. package/lib/server/VectraServer.spec.d.ts.map +1 -0
  183. package/lib/server/VectraServer.spec.js +322 -0
  184. package/lib/server/VectraServer.spec.js.map +1 -0
  185. package/lib/server/handlers/documentHandlers.d.ts +15 -0
  186. package/lib/server/handlers/documentHandlers.d.ts.map +1 -0
  187. package/lib/server/handlers/documentHandlers.js +95 -0
  188. package/lib/server/handlers/documentHandlers.js.map +1 -0
  189. package/lib/server/handlers/helpers.d.ts +23 -0
  190. package/lib/server/handlers/helpers.d.ts.map +1 -0
  191. package/lib/server/handlers/helpers.js +138 -0
  192. package/lib/server/handlers/helpers.js.map +1 -0
  193. package/lib/server/handlers/index.d.ts +8 -0
  194. package/lib/server/handlers/index.d.ts.map +1 -0
  195. package/lib/server/handlers/index.js +22 -0
  196. package/lib/server/handlers/index.js.map +1 -0
  197. package/lib/server/handlers/indexHandlers.d.ts +14 -0
  198. package/lib/server/handlers/indexHandlers.d.ts.map +1 -0
  199. package/lib/server/handlers/indexHandlers.js +85 -0
  200. package/lib/server/handlers/indexHandlers.js.map +1 -0
  201. package/lib/server/handlers/itemHandlers.d.ts +34 -0
  202. package/lib/server/handlers/itemHandlers.d.ts.map +1 -0
  203. package/lib/server/handlers/itemHandlers.js +166 -0
  204. package/lib/server/handlers/itemHandlers.js.map +1 -0
  205. package/lib/server/handlers/lifecycleHandlers.d.ts +11 -0
  206. package/lib/server/handlers/lifecycleHandlers.d.ts.map +1 -0
  207. package/lib/server/handlers/lifecycleHandlers.js +31 -0
  208. package/lib/server/handlers/lifecycleHandlers.js.map +1 -0
  209. package/lib/server/handlers/queryHandlers.d.ts +27 -0
  210. package/lib/server/handlers/queryHandlers.d.ts.map +1 -0
  211. package/lib/server/handlers/queryHandlers.js +135 -0
  212. package/lib/server/handlers/queryHandlers.js.map +1 -0
  213. package/lib/server/handlers/statsHandlers.d.ts +17 -0
  214. package/lib/server/handlers/statsHandlers.d.ts.map +1 -0
  215. package/lib/server/handlers/statsHandlers.js +81 -0
  216. package/lib/server/handlers/statsHandlers.js.map +1 -0
  217. package/lib/server/index.d.ts +4 -0
  218. package/lib/server/index.d.ts.map +1 -0
  219. package/lib/server/index.js +23 -0
  220. package/lib/server/index.js.map +1 -0
  221. package/lib/storage/FileStorage.d.ts +92 -0
  222. package/lib/storage/FileStorage.d.ts.map +1 -0
  223. package/lib/storage/FileStorage.js +3 -0
  224. package/lib/storage/FileStorage.js.map +1 -0
  225. package/lib/storage/FileStorageUtilities.d.ts +36 -0
  226. package/lib/storage/FileStorageUtilities.d.ts.map +1 -0
  227. package/lib/storage/FileStorageUtilities.js +91 -0
  228. package/lib/storage/FileStorageUtilities.js.map +1 -0
  229. package/lib/storage/FileStorageUtilities.spec.d.ts +2 -0
  230. package/lib/storage/FileStorageUtilities.spec.d.ts.map +1 -0
  231. package/lib/storage/FileStorageUtilities.spec.js +98 -0
  232. package/lib/storage/FileStorageUtilities.spec.js.map +1 -0
  233. package/lib/storage/FileType.d.ts +29 -0
  234. package/lib/storage/FileType.d.ts.map +1 -0
  235. package/lib/storage/FileType.js +38 -0
  236. package/lib/storage/FileType.js.map +1 -0
  237. package/lib/storage/IndexedDBStorage.d.ts +47 -0
  238. package/lib/storage/IndexedDBStorage.d.ts.map +1 -0
  239. package/lib/storage/IndexedDBStorage.js +347 -0
  240. package/lib/storage/IndexedDBStorage.js.map +1 -0
  241. package/lib/storage/LocalFileStorage.browser.d.ts +19 -0
  242. package/lib/storage/LocalFileStorage.browser.d.ts.map +1 -0
  243. package/lib/storage/LocalFileStorage.browser.js +43 -0
  244. package/lib/storage/LocalFileStorage.browser.js.map +1 -0
  245. package/lib/storage/LocalFileStorage.d.ts +23 -0
  246. package/lib/storage/LocalFileStorage.d.ts.map +1 -0
  247. package/lib/storage/LocalFileStorage.js +152 -0
  248. package/lib/storage/LocalFileStorage.js.map +1 -0
  249. package/lib/storage/LocalFileStorage.spec.d.ts +2 -0
  250. package/lib/storage/LocalFileStorage.spec.d.ts.map +1 -0
  251. package/lib/storage/LocalFileStorage.spec.js +249 -0
  252. package/lib/storage/LocalFileStorage.spec.js.map +1 -0
  253. package/lib/storage/VirtualFileStorage.d.ts +18 -0
  254. package/lib/storage/VirtualFileStorage.d.ts.map +1 -0
  255. package/lib/storage/VirtualFileStorage.js +178 -0
  256. package/lib/storage/VirtualFileStorage.js.map +1 -0
  257. package/lib/storage/VirtualFileStorage.spec.d.ts +2 -0
  258. package/lib/storage/VirtualFileStorage.spec.d.ts.map +1 -0
  259. package/lib/storage/VirtualFileStorage.spec.js +302 -0
  260. package/lib/storage/VirtualFileStorage.spec.js.map +1 -0
  261. package/lib/storage/index.d.ts +6 -0
  262. package/lib/storage/index.d.ts.map +1 -0
  263. package/lib/storage/index.js +22 -0
  264. package/lib/storage/index.js.map +1 -0
  265. package/lib/templates/templates/csharp/README.md +48 -0
  266. package/lib/templates/templates/csharp/VectraClient.cs +234 -0
  267. package/lib/templates/templates/go/README.md +71 -0
  268. package/lib/templates/templates/go/vectra_client.go +322 -0
  269. package/lib/templates/templates/java/README.md +81 -0
  270. package/lib/templates/templates/java/VectraClient.java +232 -0
  271. package/lib/templates/templates/python/README.md +37 -0
  272. package/lib/templates/templates/python/vectra_client.py +279 -0
  273. package/lib/templates/templates/rust/Cargo.toml +14 -0
  274. package/lib/templates/templates/rust/README.md +39 -0
  275. package/lib/templates/templates/rust/build.rs +4 -0
  276. package/lib/templates/templates/rust/lib.rs +284 -0
  277. package/lib/templates/templates/typescript/README.md +96 -0
  278. package/lib/templates/templates/typescript/VectraClient.ts +374 -0
  279. package/lib/templates/typescript/VectraClient.d.ts +114 -0
  280. package/lib/templates/typescript/VectraClient.d.ts.map +1 -0
  281. package/lib/templates/typescript/VectraClient.js +328 -0
  282. package/lib/templates/typescript/VectraClient.js.map +1 -0
  283. package/lib/types.d.ts +153 -0
  284. package/lib/types.d.ts.map +1 -0
  285. package/lib/types.js +3 -0
  286. package/lib/types.js.map +1 -0
  287. package/lib/utils/index.d.ts +2 -0
  288. package/lib/utils/index.d.ts.map +1 -0
  289. package/lib/utils/index.js +18 -0
  290. package/lib/utils/index.js.map +1 -0
  291. package/lib/utils/pathUtils.d.ts +40 -0
  292. package/lib/utils/pathUtils.d.ts.map +1 -0
  293. package/lib/utils/pathUtils.js +98 -0
  294. package/lib/utils/pathUtils.js.map +1 -0
  295. package/lib/vectra-cli.d.ts +2 -0
  296. package/lib/vectra-cli.d.ts.map +1 -1
  297. package/lib/vectra-cli.generate.spec.d.ts +2 -0
  298. package/lib/vectra-cli.generate.spec.d.ts.map +1 -0
  299. package/lib/vectra-cli.generate.spec.js +112 -0
  300. package/lib/vectra-cli.generate.spec.js.map +1 -0
  301. package/lib/vectra-cli.js +760 -0
  302. package/lib/vectra-cli.js.map +1 -0
  303. package/lib/vectra-cli.spec.d.ts +1 -0
  304. package/lib/vectra-cli.spec.d.ts.map +1 -0
  305. package/lib/vectra-cli.spec.js +2 -0
  306. package/lib/vectra-cli.spec.js.map +1 -0
  307. package/package.json +91 -16
  308. package/proto/vectra_service.proto +276 -0
  309. package/src/BrowserWebFetcher.ts +345 -0
  310. package/src/FileFetcher.spec.ts +234 -0
  311. package/src/FileFetcher.ts +37 -25
  312. package/src/FolderWatcher.spec.ts +288 -0
  313. package/src/FolderWatcher.ts +304 -0
  314. package/src/GPT3Tokenizer.spec.ts +50 -0
  315. package/src/ItemSelector.spec.ts +252 -0
  316. package/src/ItemSelector.ts +163 -150
  317. package/src/LocalDocument.spec.ts +211 -0
  318. package/src/LocalDocument.ts +88 -94
  319. package/src/LocalDocumentIndex.spec.ts +481 -0
  320. package/src/LocalDocumentIndex.ts +39 -40
  321. package/src/LocalDocumentResult.spec.ts +373 -0
  322. package/src/LocalDocumentResult.ts +489 -319
  323. package/src/LocalEmbeddings.spec.ts +138 -0
  324. package/src/LocalEmbeddings.ts +120 -0
  325. package/src/LocalIndex.spec.ts +808 -66
  326. package/src/LocalIndex.ts +479 -429
  327. package/src/OpenAIEmbeddings.spec.ts +354 -0
  328. package/src/OpenAIEmbeddings.ts +26 -27
  329. package/src/TextSplitter.spec.ts +342 -0
  330. package/src/TextSplitter.ts +517 -532
  331. package/src/TransformersEmbeddings.spec.ts +188 -0
  332. package/src/TransformersEmbeddings.ts +232 -0
  333. package/src/TransformersTokenizer.spec.ts +143 -0
  334. package/src/TransformersTokenizer.ts +45 -0
  335. package/src/WebFetcher.spec.ts +288 -0
  336. package/src/WebFetcher.ts +184 -186
  337. package/src/browser.ts +69 -0
  338. package/src/codecs/IndexCodec.ts +40 -0
  339. package/src/codecs/JsonCodec.spec.ts +70 -0
  340. package/src/codecs/JsonCodec.ts +37 -0
  341. package/src/codecs/LocalIndex.protobuf.spec.ts +115 -0
  342. package/src/codecs/ProtobufCodec.spec.ts +166 -0
  343. package/src/codecs/ProtobufCodec.ts +193 -0
  344. package/src/codecs/index.ts +4 -0
  345. package/src/codecs/migrateIndex.spec.ts +176 -0
  346. package/src/codecs/migrateIndex.ts +125 -0
  347. package/src/codecs/schemas/index.proto +34 -0
  348. package/src/index.ts +9 -1
  349. package/src/internals/Colorize.ts +19 -16
  350. package/src/server/IndexManager.ts +243 -0
  351. package/src/server/VectraServer.spec.ts +303 -0
  352. package/src/server/VectraServer.ts +156 -0
  353. package/src/server/handlers/documentHandlers.ts +59 -0
  354. package/src/server/handlers/helpers.ts +93 -0
  355. package/src/server/handlers/index.ts +7 -0
  356. package/src/server/handlers/indexHandlers.ts +44 -0
  357. package/src/server/handlers/itemHandlers.ts +140 -0
  358. package/src/server/handlers/lifecycleHandlers.ts +26 -0
  359. package/src/server/handlers/queryHandlers.ts +96 -0
  360. package/src/server/handlers/statsHandlers.ts +38 -0
  361. package/src/server/index.ts +3 -0
  362. package/src/storage/FileStorage.ts +105 -0
  363. package/src/storage/FileStorageUtilities.spec.ts +106 -0
  364. package/src/storage/FileStorageUtilities.ts +77 -0
  365. package/src/storage/FileType.ts +61 -0
  366. package/src/storage/IndexedDBStorage.ts +365 -0
  367. package/src/storage/LocalFileStorage.browser.ts +52 -0
  368. package/src/storage/LocalFileStorage.spec.ts +292 -0
  369. package/src/storage/LocalFileStorage.ts +98 -0
  370. package/src/storage/VirtualFileStorage.spec.ts +307 -0
  371. package/src/storage/VirtualFileStorage.ts +169 -0
  372. package/src/storage/index.ts +5 -0
  373. package/src/templates/csharp/README.md +48 -0
  374. package/src/templates/csharp/VectraClient.cs +234 -0
  375. package/src/templates/go/README.md +71 -0
  376. package/src/templates/go/vectra_client.go +322 -0
  377. package/src/templates/java/README.md +81 -0
  378. package/src/templates/java/VectraClient.java +232 -0
  379. package/src/templates/python/README.md +37 -0
  380. package/src/templates/python/vectra_client.py +279 -0
  381. package/src/templates/rust/Cargo.toml +14 -0
  382. package/src/templates/rust/README.md +39 -0
  383. package/src/templates/rust/build.rs +4 -0
  384. package/src/templates/rust/lib.rs +284 -0
  385. package/src/templates/typescript/README.md +96 -0
  386. package/src/templates/typescript/VectraClient.ts +374 -0
  387. package/src/types.ts +131 -123
  388. package/src/utils/index.ts +1 -0
  389. package/src/utils/pathUtils.ts +106 -0
  390. package/src/vectra-cli.generate.spec.ts +72 -0
  391. package/src/vectra-cli.spec.ts +0 -0
  392. package/src/vectra-cli.ts +687 -246
@@ -0,0 +1,284 @@
1
+ //! Vectra gRPC client — thin idiomatic wrapper over generated stubs.
2
+ //!
3
+ //! # Usage
4
+ //!
5
+ //! ```rust,no_run
6
+ //! use vectra_client::VectraClient;
7
+ //!
8
+ //! #[tokio::main]
9
+ //! async fn main() -> Result<(), Box<dyn std::error::Error>> {
10
+ //! let mut client = VectraClient::connect("http://127.0.0.1:50051").await?;
11
+ //! let results = client.query_documents("my-index", "search query", None).await?;
12
+ //! for doc in &results {
13
+ //! println!("{} (score: {:.3})", doc.uri, doc.score);
14
+ //! }
15
+ //! Ok(())
16
+ //! }
17
+ //! ```
18
+
19
+ pub mod vectra_service {
20
+ tonic::include_proto!("vectra");
21
+ }
22
+
23
+ use std::collections::HashMap;
24
+ use vectra_service::vectra_service_client::VectraServiceClient;
25
+ use vectra_service::*;
26
+
27
+ /// Idiomatic Rust client for the Vectra gRPC server.
28
+ pub struct VectraClient {
29
+ inner: VectraServiceClient<tonic::transport::Channel>,
30
+ }
31
+
32
+ impl VectraClient {
33
+ /// Connect to a Vectra gRPC server.
34
+ pub async fn connect(addr: &str) -> Result<Self, tonic::transport::Error> {
35
+ let inner = VectraServiceClient::connect(addr.to_string()).await?;
36
+ Ok(Self { inner })
37
+ }
38
+
39
+ // ── Index Management ──────────────────────────────────
40
+
41
+ pub async fn create_index(
42
+ &mut self,
43
+ name: &str,
44
+ format: &str,
45
+ is_document_index: bool,
46
+ ) -> Result<(), tonic::Status> {
47
+ let document_config = if is_document_index {
48
+ Some(DocumentIndexConfig {
49
+ version: 1,
50
+ chunk_size: 512,
51
+ chunk_overlap: 0,
52
+ embeddings_model: String::new(),
53
+ })
54
+ } else {
55
+ None
56
+ };
57
+ self.inner
58
+ .create_index(CreateIndexRequest {
59
+ index_name: name.to_string(),
60
+ format: format.to_string(),
61
+ is_document_index,
62
+ document_config,
63
+ })
64
+ .await?;
65
+ Ok(())
66
+ }
67
+
68
+ pub async fn delete_index(&mut self, name: &str) -> Result<(), tonic::Status> {
69
+ self.inner
70
+ .delete_index(DeleteIndexRequest {
71
+ index_name: name.to_string(),
72
+ })
73
+ .await?;
74
+ Ok(())
75
+ }
76
+
77
+ pub async fn list_indexes(&mut self) -> Result<Vec<IndexInfo>, tonic::Status> {
78
+ let resp = self.inner.list_indexes(ListIndexesRequest {}).await?;
79
+ Ok(resp.into_inner().indexes)
80
+ }
81
+
82
+ // ── Item Operations ───────────────────────────────────
83
+
84
+ pub async fn insert_item(
85
+ &mut self,
86
+ index: &str,
87
+ text: &str,
88
+ vector: Option<Vec<f32>>,
89
+ metadata: Option<HashMap<String, MetadataValue>>,
90
+ id: Option<&str>,
91
+ ) -> Result<String, tonic::Status> {
92
+ let resp = self
93
+ .inner
94
+ .insert_item(InsertItemRequest {
95
+ index_name: index.to_string(),
96
+ text: text.to_string(),
97
+ vector: vector.unwrap_or_default(),
98
+ metadata: metadata.unwrap_or_default(),
99
+ id: id.unwrap_or_default().to_string(),
100
+ })
101
+ .await?;
102
+ Ok(resp.into_inner().id)
103
+ }
104
+
105
+ pub async fn get_item(
106
+ &mut self,
107
+ index: &str,
108
+ id: &str,
109
+ ) -> Result<Option<ItemResult>, tonic::Status> {
110
+ let resp = self
111
+ .inner
112
+ .get_item(GetItemRequest {
113
+ index_name: index.to_string(),
114
+ id: id.to_string(),
115
+ })
116
+ .await?;
117
+ Ok(resp.into_inner().item)
118
+ }
119
+
120
+ pub async fn delete_item(&mut self, index: &str, id: &str) -> Result<(), tonic::Status> {
121
+ self.inner
122
+ .delete_item(DeleteItemRequest {
123
+ index_name: index.to_string(),
124
+ id: id.to_string(),
125
+ })
126
+ .await?;
127
+ Ok(())
128
+ }
129
+
130
+ // ── Query ─────────────────────────────────────────────
131
+
132
+ pub async fn query_items(
133
+ &mut self,
134
+ index: &str,
135
+ text: &str,
136
+ top_k: u32,
137
+ filter: Option<&str>,
138
+ ) -> Result<Vec<ItemResult>, tonic::Status> {
139
+ let resp = self
140
+ .inner
141
+ .query_items(QueryItemsRequest {
142
+ index_name: index.to_string(),
143
+ text: text.to_string(),
144
+ vector: vec![],
145
+ top_k,
146
+ filter: filter.map(|f| MetadataFilter {
147
+ filter_json: f.to_string(),
148
+ }),
149
+ })
150
+ .await?;
151
+ Ok(resp.into_inner().results)
152
+ }
153
+
154
+ pub async fn query_documents(
155
+ &mut self,
156
+ index: &str,
157
+ query: &str,
158
+ filter: Option<&str>,
159
+ ) -> Result<Vec<DocumentResult>, tonic::Status> {
160
+ self.query_documents_opts(index, query, 10, 50, filter, false)
161
+ .await
162
+ }
163
+
164
+ pub async fn query_documents_opts(
165
+ &mut self,
166
+ index: &str,
167
+ query: &str,
168
+ max_documents: u32,
169
+ max_chunks: u32,
170
+ filter: Option<&str>,
171
+ use_bm25: bool,
172
+ ) -> Result<Vec<DocumentResult>, tonic::Status> {
173
+ let resp = self
174
+ .inner
175
+ .query_documents(QueryDocumentsRequest {
176
+ index_name: index.to_string(),
177
+ query: query.to_string(),
178
+ max_documents,
179
+ max_chunks,
180
+ filter: filter.map(|f| MetadataFilter {
181
+ filter_json: f.to_string(),
182
+ }),
183
+ use_bm25,
184
+ })
185
+ .await?;
186
+ Ok(resp.into_inner().results)
187
+ }
188
+
189
+ // ── Document Operations ───────────────────────────────
190
+
191
+ pub async fn upsert_document(
192
+ &mut self,
193
+ index: &str,
194
+ uri: &str,
195
+ text: &str,
196
+ doc_type: Option<&str>,
197
+ metadata: Option<HashMap<String, MetadataValue>>,
198
+ ) -> Result<String, tonic::Status> {
199
+ let resp = self
200
+ .inner
201
+ .upsert_document(UpsertDocumentRequest {
202
+ index_name: index.to_string(),
203
+ uri: uri.to_string(),
204
+ text: text.to_string(),
205
+ doc_type: doc_type.unwrap_or_default().to_string(),
206
+ metadata: metadata.unwrap_or_default(),
207
+ })
208
+ .await?;
209
+ Ok(resp.into_inner().document_id)
210
+ }
211
+
212
+ pub async fn delete_document(&mut self, index: &str, uri: &str) -> Result<(), tonic::Status> {
213
+ self.inner
214
+ .delete_document(DeleteDocumentRequest {
215
+ index_name: index.to_string(),
216
+ uri: uri.to_string(),
217
+ })
218
+ .await?;
219
+ Ok(())
220
+ }
221
+
222
+ pub async fn list_documents(
223
+ &mut self,
224
+ index: &str,
225
+ ) -> Result<Vec<DocumentInfo>, tonic::Status> {
226
+ let resp = self
227
+ .inner
228
+ .list_documents(ListDocumentsRequest {
229
+ index_name: index.to_string(),
230
+ })
231
+ .await?;
232
+ Ok(resp.into_inner().documents)
233
+ }
234
+
235
+ // ── Stats ─────────────────────────────────────────────
236
+
237
+ pub async fn get_index_stats(
238
+ &mut self,
239
+ index: &str,
240
+ ) -> Result<GetIndexStatsResponse, tonic::Status> {
241
+ let resp = self
242
+ .inner
243
+ .get_index_stats(GetIndexStatsRequest {
244
+ index_name: index.to_string(),
245
+ })
246
+ .await?;
247
+ Ok(resp.into_inner())
248
+ }
249
+
250
+ // ── Lifecycle ─────────────────────────────────────────
251
+
252
+ pub async fn healthcheck(&mut self) -> Result<HealthcheckResponse, tonic::Status> {
253
+ let resp = self.inner.healthcheck(HealthcheckRequest {}).await?;
254
+ Ok(resp.into_inner())
255
+ }
256
+
257
+ pub async fn shutdown(&mut self) -> Result<(), tonic::Status> {
258
+ self.inner.shutdown(ShutdownRequest {}).await?;
259
+ Ok(())
260
+ }
261
+ }
262
+
263
+ // ── Helpers ───────────────────────────────────────────────
264
+
265
+ /// Create a string metadata value.
266
+ pub fn meta_string(s: &str) -> MetadataValue {
267
+ MetadataValue {
268
+ value: Some(metadata_value::Value::StringValue(s.to_string())),
269
+ }
270
+ }
271
+
272
+ /// Create a numeric metadata value.
273
+ pub fn meta_number(n: f64) -> MetadataValue {
274
+ MetadataValue {
275
+ value: Some(metadata_value::Value::NumberValue(n)),
276
+ }
277
+ }
278
+
279
+ /// Create a boolean metadata value.
280
+ pub fn meta_bool(b: bool) -> MetadataValue {
281
+ MetadataValue {
282
+ value: Some(metadata_value::Value::BoolValue(b)),
283
+ }
284
+ }
@@ -0,0 +1,96 @@
1
+ # Vectra TypeScript gRPC Client
2
+
3
+ A typed client wrapper for communicating with a running `vectra serve` instance over gRPC.
4
+
5
+ ## Prerequisites
6
+
7
+ - Node.js 18+
8
+ - A running Vectra gRPC server (`npx vectra serve <index>`)
9
+
10
+ ## Setup
11
+
12
+ Install the required gRPC packages:
13
+
14
+ ```bash
15
+ npm install @grpc/grpc-js @grpc/proto-loader
16
+ ```
17
+
18
+ No separate code generation step is needed — the proto file is loaded dynamically at runtime via `@grpc/proto-loader`.
19
+
20
+ ## Usage
21
+
22
+ ```typescript
23
+ import { VectraClient } from './VectraClient';
24
+
25
+ const client = new VectraClient(); // localhost:50051
26
+
27
+ // Check server health
28
+ const health = await client.healthcheck();
29
+ console.log(health.status, health.loadedIndexes);
30
+
31
+ // Query documents
32
+ const results = await client.queryDocuments('my-index', 'what is vector search?', {
33
+ maxDocuments: 5,
34
+ });
35
+ for (const doc of results) {
36
+ console.log(`${doc.uri} (score: ${doc.score})`);
37
+ for (const chunk of doc.chunks) {
38
+ console.log(` ${chunk.text}`);
39
+ }
40
+ }
41
+
42
+ // Insert an item with metadata
43
+ const id = await client.insertItem('my-index', {
44
+ text: 'hello world',
45
+ metadata: { source: 'example', priority: 1, active: true },
46
+ });
47
+
48
+ // Query items with filter
49
+ const items = await client.queryItems('my-index', {
50
+ text: 'hello',
51
+ topK: 5,
52
+ filter: { source: 'example' },
53
+ });
54
+
55
+ // Clean up
56
+ client.close();
57
+ ```
58
+
59
+ ## API
60
+
61
+ The `VectraClient` class provides typed methods for all 18 Vectra gRPC RPCs:
62
+
63
+ ### Index Management
64
+ - `createIndex(name, options?)` — Create a new index
65
+ - `deleteIndex(name)` — Delete an index
66
+ - `listIndexes()` — List all loaded indexes
67
+
68
+ ### Item Operations
69
+ - `insertItem(index, options)` — Insert a new item
70
+ - `upsertItem(index, id, options)` — Insert or update an item
71
+ - `getItem(index, id)` — Get an item by ID
72
+ - `deleteItem(index, id)` — Delete an item
73
+ - `listItems(index, filter?)` — List items with optional filter
74
+
75
+ ### Query
76
+ - `queryItems(index, options)` — Query by text or vector
77
+ - `queryDocuments(index, query, options?)` — Query documents with semantic + optional BM25
78
+
79
+ ### Document Operations
80
+ - `upsertDocument(index, uri, text, options?)` — Insert or update a document
81
+ - `deleteDocument(index, uri)` — Delete a document
82
+ - `listDocuments(index)` — List all documents
83
+
84
+ ### Stats
85
+ - `getIndexStats(index)` — Get index statistics
86
+ - `getCatalogStats(index)` — Get document catalog statistics
87
+
88
+ ### Lifecycle
89
+ - `healthcheck()` — Check server health
90
+ - `shutdown()` — Shut down the server
91
+
92
+ ## Custom Connection
93
+
94
+ ```typescript
95
+ const client = new VectraClient('192.168.1.100', 9090);
96
+ ```