@zvec/zvec-grep 0.2.1 → 0.3.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (406) hide show
  1. package/README.md +87 -238
  2. package/bin/zg.exe +3 -0
  3. package/install.cjs +510 -0
  4. package/package.json +22 -72
  5. package/platforms.json +92 -0
  6. package/plugins.cjs +183 -0
  7. package/README_CN.md +0 -230
  8. package/dist/authorization/index.d.ts +0 -7
  9. package/dist/authorization/index.js +0 -7
  10. package/dist/authorization/index.js.map +0 -1
  11. package/dist/authorization/manager.d.ts +0 -8
  12. package/dist/authorization/manager.js +0 -19
  13. package/dist/authorization/manager.js.map +0 -1
  14. package/dist/authorization/operation.d.ts +0 -7
  15. package/dist/authorization/operation.js +0 -50
  16. package/dist/authorization/operation.js.map +0 -1
  17. package/dist/authorization/planner.d.ts +0 -21
  18. package/dist/authorization/planner.js +0 -97
  19. package/dist/authorization/planner.js.map +0 -1
  20. package/dist/authorization/prompt.d.ts +0 -12
  21. package/dist/authorization/prompt.js +0 -63
  22. package/dist/authorization/prompt.js.map +0 -1
  23. package/dist/authorization/store.d.ts +0 -20
  24. package/dist/authorization/store.js +0 -251
  25. package/dist/authorization/store.js.map +0 -1
  26. package/dist/authorization/target.d.ts +0 -15
  27. package/dist/authorization/target.js +0 -49
  28. package/dist/authorization/target.js.map +0 -1
  29. package/dist/authorization/types.d.ts +0 -61
  30. package/dist/authorization/types.js +0 -2
  31. package/dist/authorization/types.js.map +0 -1
  32. package/dist/cli/args.d.ts +0 -5
  33. package/dist/cli/args.js +0 -1207
  34. package/dist/cli/args.js.map +0 -1
  35. package/dist/cli/auth.d.ts +0 -21
  36. package/dist/cli/auth.js +0 -209
  37. package/dist/cli/auth.js.map +0 -1
  38. package/dist/cli/commands.d.ts +0 -4
  39. package/dist/cli/commands.js +0 -697
  40. package/dist/cli/commands.js.map +0 -1
  41. package/dist/cli/errors.d.ts +0 -6
  42. package/dist/cli/errors.js +0 -98
  43. package/dist/cli/errors.js.map +0 -1
  44. package/dist/cli/format/context.d.ts +0 -9
  45. package/dist/cli/format/context.js +0 -786
  46. package/dist/cli/format/context.js.map +0 -1
  47. package/dist/cli/format/debug.d.ts +0 -4
  48. package/dist/cli/format/debug.js +0 -60
  49. package/dist/cli/format/debug.js.map +0 -1
  50. package/dist/cli/format/highlight.d.ts +0 -3
  51. package/dist/cli/format/highlight.js +0 -106
  52. package/dist/cli/format/highlight.js.map +0 -1
  53. package/dist/cli/format/progress.d.ts +0 -13
  54. package/dist/cli/format/progress.js +0 -290
  55. package/dist/cli/format/progress.js.map +0 -1
  56. package/dist/cli/format/range.d.ts +0 -3
  57. package/dist/cli/format/range.js +0 -24
  58. package/dist/cli/format/range.js.map +0 -1
  59. package/dist/cli/format/status.d.ts +0 -81
  60. package/dist/cli/format/status.js +0 -512
  61. package/dist/cli/format/status.js.map +0 -1
  62. package/dist/cli/help.d.ts +0 -1
  63. package/dist/cli/help.js +0 -524
  64. package/dist/cli/help.js.map +0 -1
  65. package/dist/cli/index.d.ts +0 -2
  66. package/dist/cli/index.js +0 -32
  67. package/dist/cli/index.js.map +0 -1
  68. package/dist/cli/install.d.ts +0 -4
  69. package/dist/cli/install.js +0 -1661
  70. package/dist/cli/install.js.map +0 -1
  71. package/dist/cli/managed-rg.d.ts +0 -10
  72. package/dist/cli/managed-rg.js +0 -329
  73. package/dist/cli/managed-rg.js.map +0 -1
  74. package/dist/cli/server-search.d.ts +0 -3
  75. package/dist/cli/server-search.js +0 -12
  76. package/dist/cli/server-search.js.map +0 -1
  77. package/dist/cli/types.d.ts +0 -87
  78. package/dist/cli/types.js +0 -10
  79. package/dist/cli/types.js.map +0 -1
  80. package/dist/cli/version.d.ts +0 -1
  81. package/dist/cli/version.js +0 -13
  82. package/dist/cli/version.js.map +0 -1
  83. package/dist/client/daemon-client.d.ts +0 -31
  84. package/dist/client/daemon-client.js +0 -203
  85. package/dist/client/daemon-client.js.map +0 -1
  86. package/dist/client/mode-router.d.ts +0 -9
  87. package/dist/client/mode-router.js +0 -28
  88. package/dist/client/mode-router.js.map +0 -1
  89. package/dist/client/search-policy.d.ts +0 -11
  90. package/dist/client/search-policy.js +0 -15
  91. package/dist/client/search-policy.js.map +0 -1
  92. package/dist/daemon/backend.d.ts +0 -78
  93. package/dist/daemon/backend.js +0 -1085
  94. package/dist/daemon/backend.js.map +0 -1
  95. package/dist/daemon/change-set.d.ts +0 -30
  96. package/dist/daemon/change-set.js +0 -163
  97. package/dist/daemon/change-set.js.map +0 -1
  98. package/dist/daemon/config.d.ts +0 -24
  99. package/dist/daemon/config.js +0 -88
  100. package/dist/daemon/config.js.map +0 -1
  101. package/dist/daemon/errors.d.ts +0 -5
  102. package/dist/daemon/errors.js +0 -11
  103. package/dist/daemon/errors.js.map +0 -1
  104. package/dist/daemon/http-server.d.ts +0 -30
  105. package/dist/daemon/http-server.js +0 -288
  106. package/dist/daemon/http-server.js.map +0 -1
  107. package/dist/daemon/index-coordinator.d.ts +0 -22
  108. package/dist/daemon/index-coordinator.js +0 -55
  109. package/dist/daemon/index-coordinator.js.map +0 -1
  110. package/dist/daemon/job-scheduler.d.ts +0 -70
  111. package/dist/daemon/job-scheduler.js +0 -366
  112. package/dist/daemon/job-scheduler.js.map +0 -1
  113. package/dist/daemon/logger.d.ts +0 -9
  114. package/dist/daemon/logger.js +0 -53
  115. package/dist/daemon/logger.js.map +0 -1
  116. package/dist/daemon/model-pool.d.ts +0 -45
  117. package/dist/daemon/model-pool.js +0 -187
  118. package/dist/daemon/model-pool.js.map +0 -1
  119. package/dist/daemon/root-lease.d.ts +0 -14
  120. package/dist/daemon/root-lease.js +0 -188
  121. package/dist/daemon/root-lease.js.map +0 -1
  122. package/dist/daemon/root-runtime.d.ts +0 -79
  123. package/dist/daemon/root-runtime.js +0 -337
  124. package/dist/daemon/root-runtime.js.map +0 -1
  125. package/dist/daemon/runtime-manager.d.ts +0 -46
  126. package/dist/daemon/runtime-manager.js +0 -246
  127. package/dist/daemon/runtime-manager.js.map +0 -1
  128. package/dist/daemon/runtime.d.ts +0 -12
  129. package/dist/daemon/runtime.js +0 -102
  130. package/dist/daemon/runtime.js.map +0 -1
  131. package/dist/daemon/server-controller.d.ts +0 -39
  132. package/dist/daemon/server-controller.js +0 -327
  133. package/dist/daemon/server-controller.js.map +0 -1
  134. package/dist/daemon/watch-manager.d.ts +0 -55
  135. package/dist/daemon/watch-manager.js +0 -340
  136. package/dist/daemon/watch-manager.js.map +0 -1
  137. package/dist/daemon/workspace-read-session-cache.d.ts +0 -31
  138. package/dist/daemon/workspace-read-session-cache.js +0 -115
  139. package/dist/daemon/workspace-read-session-cache.js.map +0 -1
  140. package/dist/engine/code-formats.d.ts +0 -3
  141. package/dist/engine/code-formats.js +0 -14
  142. package/dist/engine/code-formats.js.map +0 -1
  143. package/dist/engine/config.d.ts +0 -50
  144. package/dist/engine/config.js +0 -321
  145. package/dist/engine/config.js.map +0 -1
  146. package/dist/engine/errors.d.ts +0 -19
  147. package/dist/engine/errors.js +0 -40
  148. package/dist/engine/errors.js.map +0 -1
  149. package/dist/engine/extraction/code/adapter.d.ts +0 -19
  150. package/dist/engine/extraction/code/adapter.js +0 -24
  151. package/dist/engine/extraction/code/adapter.js.map +0 -1
  152. package/dist/engine/extraction/code/extractor.d.ts +0 -13
  153. package/dist/engine/extraction/code/extractor.js +0 -696
  154. package/dist/engine/extraction/code/extractor.js.map +0 -1
  155. package/dist/engine/extraction/code/families/c-family.d.ts +0 -2
  156. package/dist/engine/extraction/code/families/c-family.js +0 -122
  157. package/dist/engine/extraction/code/families/c-family.js.map +0 -1
  158. package/dist/engine/extraction/code/families/js-ts.d.ts +0 -12
  159. package/dist/engine/extraction/code/families/js-ts.js +0 -118
  160. package/dist/engine/extraction/code/families/js-ts.js.map +0 -1
  161. package/dist/engine/extraction/code/families/metadata.d.ts +0 -8
  162. package/dist/engine/extraction/code/families/metadata.js +0 -86
  163. package/dist/engine/extraction/code/families/metadata.js.map +0 -1
  164. package/dist/engine/extraction/code/families/name-field.d.ts +0 -3
  165. package/dist/engine/extraction/code/families/name-field.js +0 -22
  166. package/dist/engine/extraction/code/families/name-field.js.map +0 -1
  167. package/dist/engine/extraction/code/languages/c.d.ts +0 -1
  168. package/dist/engine/extraction/code/languages/c.js +0 -12
  169. package/dist/engine/extraction/code/languages/c.js.map +0 -1
  170. package/dist/engine/extraction/code/languages/cpp.d.ts +0 -1
  171. package/dist/engine/extraction/code/languages/cpp.js +0 -18
  172. package/dist/engine/extraction/code/languages/cpp.js.map +0 -1
  173. package/dist/engine/extraction/code/languages/go.d.ts +0 -2
  174. package/dist/engine/extraction/code/languages/go.js +0 -70
  175. package/dist/engine/extraction/code/languages/go.js.map +0 -1
  176. package/dist/engine/extraction/code/languages/java.d.ts +0 -1
  177. package/dist/engine/extraction/code/languages/java.js +0 -17
  178. package/dist/engine/extraction/code/languages/java.js.map +0 -1
  179. package/dist/engine/extraction/code/languages/javascript.d.ts +0 -2
  180. package/dist/engine/extraction/code/languages/javascript.js +0 -23
  181. package/dist/engine/extraction/code/languages/javascript.js.map +0 -1
  182. package/dist/engine/extraction/code/languages/python.d.ts +0 -2
  183. package/dist/engine/extraction/code/languages/python.js +0 -52
  184. package/dist/engine/extraction/code/languages/python.js.map +0 -1
  185. package/dist/engine/extraction/code/languages/rust.d.ts +0 -2
  186. package/dist/engine/extraction/code/languages/rust.js +0 -25
  187. package/dist/engine/extraction/code/languages/rust.js.map +0 -1
  188. package/dist/engine/extraction/code/languages/typescript.d.ts +0 -2
  189. package/dist/engine/extraction/code/languages/typescript.js +0 -37
  190. package/dist/engine/extraction/code/languages/typescript.js.map +0 -1
  191. package/dist/engine/extraction/code/tree-sitter/grammar.d.ts +0 -4
  192. package/dist/engine/extraction/code/tree-sitter/grammar.js +0 -49
  193. package/dist/engine/extraction/code/tree-sitter/grammar.js.map +0 -1
  194. package/dist/engine/extraction/code/tree-sitter/nodes.d.ts +0 -3
  195. package/dist/engine/extraction/code/tree-sitter/nodes.js +0 -27
  196. package/dist/engine/extraction/code/tree-sitter/nodes.js.map +0 -1
  197. package/dist/engine/extraction/code/tree-sitter/parser.d.ts +0 -2
  198. package/dist/engine/extraction/code/tree-sitter/parser.js +0 -31
  199. package/dist/engine/extraction/code/tree-sitter/parser.js.map +0 -1
  200. package/dist/engine/extraction/ids.d.ts +0 -1
  201. package/dist/engine/extraction/ids.js +0 -5
  202. package/dist/engine/extraction/ids.js.map +0 -1
  203. package/dist/engine/extraction/image/extractor.d.ts +0 -5
  204. package/dist/engine/extraction/image/extractor.js +0 -35
  205. package/dist/engine/extraction/image/extractor.js.map +0 -1
  206. package/dist/engine/extraction/index.d.ts +0 -4
  207. package/dist/engine/extraction/index.js +0 -3
  208. package/dist/engine/extraction/index.js.map +0 -1
  209. package/dist/engine/extraction/markdown/extractor.d.ts +0 -7
  210. package/dist/engine/extraction/markdown/extractor.js +0 -362
  211. package/dist/engine/extraction/markdown/extractor.js.map +0 -1
  212. package/dist/engine/extraction/runtime.d.ts +0 -9
  213. package/dist/engine/extraction/runtime.js +0 -37
  214. package/dist/engine/extraction/runtime.js.map +0 -1
  215. package/dist/engine/extraction/source.d.ts +0 -18
  216. package/dist/engine/extraction/source.js +0 -22
  217. package/dist/engine/extraction/source.js.map +0 -1
  218. package/dist/engine/extraction/text/extractor.d.ts +0 -7
  219. package/dist/engine/extraction/text/extractor.js +0 -168
  220. package/dist/engine/extraction/text/extractor.js.map +0 -1
  221. package/dist/engine/extraction/types.d.ts +0 -4
  222. package/dist/engine/extraction/types.js +0 -2
  223. package/dist/engine/extraction/types.js.map +0 -1
  224. package/dist/engine/extraction/vector-content.d.ts +0 -5
  225. package/dist/engine/extraction/vector-content.js +0 -83
  226. package/dist/engine/extraction/vector-content.js.map +0 -1
  227. package/dist/engine/file-size-policy.d.ts +0 -6
  228. package/dist/engine/file-size-policy.js +0 -20
  229. package/dist/engine/file-size-policy.js.map +0 -1
  230. package/dist/engine/file-type.d.ts +0 -15
  231. package/dist/engine/file-type.js +0 -152
  232. package/dist/engine/file-type.js.map +0 -1
  233. package/dist/engine/index-status.d.ts +0 -9
  234. package/dist/engine/index-status.js +0 -38
  235. package/dist/engine/index-status.js.map +0 -1
  236. package/dist/engine/manifest.d.ts +0 -13
  237. package/dist/engine/manifest.js +0 -124
  238. package/dist/engine/manifest.js.map +0 -1
  239. package/dist/engine/models/backends/llama-cpp.d.ts +0 -99
  240. package/dist/engine/models/backends/llama-cpp.js +0 -511
  241. package/dist/engine/models/backends/llama-cpp.js.map +0 -1
  242. package/dist/engine/models/backends/model2vec-runtime.d.ts +0 -63
  243. package/dist/engine/models/backends/model2vec-runtime.js +0 -112
  244. package/dist/engine/models/backends/model2vec-runtime.js.map +0 -1
  245. package/dist/engine/models/backends/model2vec-tokenizer.d.ts +0 -2
  246. package/dist/engine/models/backends/model2vec-tokenizer.js +0 -42
  247. package/dist/engine/models/backends/model2vec-tokenizer.js.map +0 -1
  248. package/dist/engine/models/backends/model2vec-worker-pool.d.ts +0 -25
  249. package/dist/engine/models/backends/model2vec-worker-pool.js +0 -264
  250. package/dist/engine/models/backends/model2vec-worker-pool.js.map +0 -1
  251. package/dist/engine/models/backends/model2vec-worker.d.ts +0 -1
  252. package/dist/engine/models/backends/model2vec-worker.js +0 -41
  253. package/dist/engine/models/backends/model2vec-worker.js.map +0 -1
  254. package/dist/engine/models/backends/model2vec.d.ts +0 -40
  255. package/dist/engine/models/backends/model2vec.js +0 -311
  256. package/dist/engine/models/backends/model2vec.js.map +0 -1
  257. package/dist/engine/models/backends/qwen.d.ts +0 -44
  258. package/dist/engine/models/backends/qwen.js +0 -411
  259. package/dist/engine/models/backends/qwen.js.map +0 -1
  260. package/dist/engine/models/backends/transformers-js.d.ts +0 -87
  261. package/dist/engine/models/backends/transformers-js.js +0 -316
  262. package/dist/engine/models/backends/transformers-js.js.map +0 -1
  263. package/dist/engine/models/catalog.d.ts +0 -231
  264. package/dist/engine/models/catalog.js +0 -218
  265. package/dist/engine/models/catalog.js.map +0 -1
  266. package/dist/engine/models/download-progress.d.ts +0 -15
  267. package/dist/engine/models/download-progress.js +0 -48
  268. package/dist/engine/models/download-progress.js.map +0 -1
  269. package/dist/engine/models/embeddings.d.ts +0 -67
  270. package/dist/engine/models/embeddings.js +0 -125
  271. package/dist/engine/models/embeddings.js.map +0 -1
  272. package/dist/engine/models/factory.d.ts +0 -2
  273. package/dist/engine/models/factory.js +0 -51
  274. package/dist/engine/models/factory.js.map +0 -1
  275. package/dist/engine/models/index.d.ts +0 -4
  276. package/dist/engine/models/index.js +0 -5
  277. package/dist/engine/models/index.js.map +0 -1
  278. package/dist/engine/models/ranking.d.ts +0 -19
  279. package/dist/engine/models/ranking.js +0 -2
  280. package/dist/engine/models/ranking.js.map +0 -1
  281. package/dist/engine/models/resolution.d.ts +0 -8
  282. package/dist/engine/models/resolution.js +0 -22
  283. package/dist/engine/models/resolution.js.map +0 -1
  284. package/dist/engine/pipeline/indexing/index.d.ts +0 -14
  285. package/dist/engine/pipeline/indexing/index.js +0 -1061
  286. package/dist/engine/pipeline/indexing/index.js.map +0 -1
  287. package/dist/engine/pipeline/indexing/input-budget.d.ts +0 -2
  288. package/dist/engine/pipeline/indexing/input-budget.js +0 -51
  289. package/dist/engine/pipeline/indexing/input-budget.js.map +0 -1
  290. package/dist/engine/pipeline/indexing/root-paths.d.ts +0 -7
  291. package/dist/engine/pipeline/indexing/root-paths.js +0 -148
  292. package/dist/engine/pipeline/indexing/root-paths.js.map +0 -1
  293. package/dist/engine/pipeline/indexing/scanner/index.d.ts +0 -14
  294. package/dist/engine/pipeline/indexing/scanner/index.js +0 -776
  295. package/dist/engine/pipeline/indexing/scanner/index.js.map +0 -1
  296. package/dist/engine/pipeline/search/index.d.ts +0 -12
  297. package/dist/engine/pipeline/search/index.js +0 -811
  298. package/dist/engine/pipeline/search/index.js.map +0 -1
  299. package/dist/engine/service/index.d.ts +0 -3
  300. package/dist/engine/service/index.js +0 -2
  301. package/dist/engine/service/index.js.map +0 -1
  302. package/dist/engine/service/lexical.d.ts +0 -28
  303. package/dist/engine/service/lexical.js +0 -446
  304. package/dist/engine/service/lexical.js.map +0 -1
  305. package/dist/engine/service/root.d.ts +0 -15
  306. package/dist/engine/service/root.js +0 -57
  307. package/dist/engine/service/root.js.map +0 -1
  308. package/dist/engine/service/structure-enrichment.d.ts +0 -8
  309. package/dist/engine/service/structure-enrichment.js +0 -178
  310. package/dist/engine/service/structure-enrichment.js.map +0 -1
  311. package/dist/engine/service/types.d.ts +0 -210
  312. package/dist/engine/service/types.js +0 -2
  313. package/dist/engine/service/types.js.map +0 -1
  314. package/dist/engine/service/workspace-index.d.ts +0 -26
  315. package/dist/engine/service/workspace-index.js +0 -157
  316. package/dist/engine/service/workspace-index.js.map +0 -1
  317. package/dist/engine/service/zvec-grep.d.ts +0 -13
  318. package/dist/engine/service/zvec-grep.js +0 -1393
  319. package/dist/engine/service/zvec-grep.js.map +0 -1
  320. package/dist/engine/storage/index.d.ts +0 -53
  321. package/dist/engine/storage/index.js +0 -3
  322. package/dist/engine/storage/index.js.map +0 -1
  323. package/dist/engine/storage/layout.d.ts +0 -10
  324. package/dist/engine/storage/layout.js +0 -29
  325. package/dist/engine/storage/layout.js.map +0 -1
  326. package/dist/engine/storage/zvec.d.ts +0 -4
  327. package/dist/engine/storage/zvec.js +0 -976
  328. package/dist/engine/storage/zvec.js.map +0 -1
  329. package/dist/engine/types.d.ts +0 -303
  330. package/dist/engine/types.js +0 -14
  331. package/dist/engine/types.js.map +0 -1
  332. package/dist/engine/utils/daemon-lease.d.ts +0 -17
  333. package/dist/engine/utils/daemon-lease.js +0 -175
  334. package/dist/engine/utils/daemon-lease.js.map +0 -1
  335. package/dist/engine/utils/file-selection.d.ts +0 -10
  336. package/dist/engine/utils/file-selection.js +0 -157
  337. package/dist/engine/utils/file-selection.js.map +0 -1
  338. package/dist/engine/utils/glob.d.ts +0 -9
  339. package/dist/engine/utils/glob.js +0 -208
  340. package/dist/engine/utils/glob.js.map +0 -1
  341. package/dist/engine/utils/hash.d.ts +0 -2
  342. package/dist/engine/utils/hash.js +0 -8
  343. package/dist/engine/utils/hash.js.map +0 -1
  344. package/dist/engine/utils/json.d.ts +0 -8
  345. package/dist/engine/utils/json.js +0 -83
  346. package/dist/engine/utils/json.js.map +0 -1
  347. package/dist/engine/utils/lock.d.ts +0 -19
  348. package/dist/engine/utils/lock.js +0 -254
  349. package/dist/engine/utils/lock.js.map +0 -1
  350. package/dist/engine/utils/path.d.ts +0 -4
  351. package/dist/engine/utils/path.js +0 -18
  352. package/dist/engine/utils/path.js.map +0 -1
  353. package/dist/engine/utils/timing.d.ts +0 -19
  354. package/dist/engine/utils/timing.js +0 -87
  355. package/dist/engine/utils/timing.js.map +0 -1
  356. package/dist/index-progress.d.ts +0 -10
  357. package/dist/index-progress.js +0 -159
  358. package/dist/index-progress.js.map +0 -1
  359. package/dist/index.d.ts +0 -6
  360. package/dist/index.js +0 -4
  361. package/dist/index.js.map +0 -1
  362. package/dist/mcp/http-transport.d.ts +0 -27
  363. package/dist/mcp/http-transport.js +0 -182
  364. package/dist/mcp/http-transport.js.map +0 -1
  365. package/dist/mcp/input-normalization.d.ts +0 -38
  366. package/dist/mcp/input-normalization.js +0 -104
  367. package/dist/mcp/input-normalization.js.map +0 -1
  368. package/dist/mcp/progress-heartbeat.d.ts +0 -17
  369. package/dist/mcp/progress-heartbeat.js +0 -46
  370. package/dist/mcp/progress-heartbeat.js.map +0 -1
  371. package/dist/mcp/request-metadata.d.ts +0 -2
  372. package/dist/mcp/request-metadata.js +0 -11
  373. package/dist/mcp/request-metadata.js.map +0 -1
  374. package/dist/mcp/request-state.d.ts +0 -40
  375. package/dist/mcp/request-state.js +0 -210
  376. package/dist/mcp/request-state.js.map +0 -1
  377. package/dist/mcp/result-format.d.ts +0 -13
  378. package/dist/mcp/result-format.js +0 -75
  379. package/dist/mcp/result-format.js.map +0 -1
  380. package/dist/mcp/schemas.d.ts +0 -664
  381. package/dist/mcp/schemas.js +0 -510
  382. package/dist/mcp/schemas.js.map +0 -1
  383. package/dist/mcp/stdio-bridge.d.ts +0 -14
  384. package/dist/mcp/stdio-bridge.js +0 -178
  385. package/dist/mcp/stdio-bridge.js.map +0 -1
  386. package/dist/mcp/tools.d.ts +0 -153
  387. package/dist/mcp/tools.js +0 -482
  388. package/dist/mcp/tools.js.map +0 -1
  389. package/dist/mcp/toolset.d.ts +0 -5
  390. package/dist/mcp/toolset.js +0 -12
  391. package/dist/mcp/toolset.js.map +0 -1
  392. package/dist/observability/trace-context.d.ts +0 -11
  393. package/dist/observability/trace-context.js +0 -138
  394. package/dist/observability/trace-context.js.map +0 -1
  395. package/dist/prompts/zvec-grep-guidance.d.ts +0 -2
  396. package/dist/prompts/zvec-grep-guidance.js +0 -9
  397. package/dist/prompts/zvec-grep-guidance.js.map +0 -1
  398. package/docs/01-agents.md +0 -209
  399. package/docs/02-cli.md +0 -246
  400. package/docs/03-mcp.md +0 -185
  401. package/docs/04-pipeline.md +0 -226
  402. package/docs/05-architecture.md +0 -86
  403. package/docs/06-server.md +0 -220
  404. package/docs/07-embedding.md +0 -203
  405. package/docs/08-roadmap.md +0 -85
  406. package/docs/README.md +0 -53
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-pool.js","sourceRoot":"","sources":["../../src/daemon/model-pool.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- export type RootLease = {
2
- readonly root: string;
3
- release(): Promise<void>;
4
- };
5
- export declare class RootLeaseManager {
6
- readonly instanceToken: `${string}-${string}-${string}-${string}-${string}`;
7
- private readonly leases;
8
- acquire(root: string): Promise<RootLease>;
9
- close(): Promise<void>;
10
- private createLease;
11
- private release;
12
- private startHeartbeat;
13
- private removeOwnedLease;
14
- }
@@ -1,188 +0,0 @@
1
- import { randomUUID } from "node:crypto";
2
- import { mkdir, open, readFile, unlink, writeFile } from "node:fs/promises";
3
- import { hostname } from "node:os";
4
- import { dirname } from "node:path";
5
- import { daemonLeasePath, acquireDaemonLeaseGuard, daemonLeaseFileIsAbandoned, processIsAlive, } from "../engine/utils/daemon-lease.js";
6
- import { DaemonError } from "./errors.js";
7
- export class RootLeaseManager {
8
- instanceToken = randomUUID();
9
- leases = new Map();
10
- async acquire(root) {
11
- let managed = this.leases.get(root);
12
- if (!managed) {
13
- const record = await this.createLease(root);
14
- managed = {
15
- refs: 0,
16
- record,
17
- stopped: false,
18
- };
19
- managed.heartbeat = this.startHeartbeat(root, managed);
20
- this.leases.set(root, managed);
21
- }
22
- managed.refs += 1;
23
- let released = false;
24
- return {
25
- root,
26
- release: async () => {
27
- if (released) {
28
- return;
29
- }
30
- released = true;
31
- await this.release(root, managed);
32
- },
33
- };
34
- }
35
- async close() {
36
- const leases = [...this.leases.entries()];
37
- this.leases.clear();
38
- await Promise.all(leases.map(async ([root, managed]) => {
39
- managed.stopped = true;
40
- if (managed.heartbeat)
41
- clearInterval(managed.heartbeat);
42
- await managed.heartbeatInFlight;
43
- await this.removeOwnedLease(root, managed.record);
44
- }));
45
- }
46
- async createLease(root) {
47
- const path = daemonLeasePath(root);
48
- await mkdir(dirname(path), { recursive: true });
49
- const now = Date.now();
50
- const record = {
51
- pid: process.pid,
52
- hostname: hostname(),
53
- instanceToken: this.instanceToken,
54
- createdAt: now,
55
- updatedAt: now,
56
- };
57
- const guard = acquireDaemonLeaseGuard(root, this.instanceToken);
58
- if (!guard) {
59
- throw new DaemonError("INDEX_BUSY", "Another daemon is changing the root lease.", true);
60
- }
61
- try {
62
- try {
63
- const handle = await open(path, "wx", 0o600);
64
- try {
65
- await handle.writeFile(`${JSON.stringify(record)}\n`);
66
- }
67
- finally {
68
- await handle.close();
69
- }
70
- return record;
71
- }
72
- catch (error) {
73
- if (error.code !== "EEXIST") {
74
- throw error;
75
- }
76
- const existing = await readLeaseFile(path);
77
- if (existing?.pid === process.pid &&
78
- existing.instanceToken === this.instanceToken) {
79
- return existing;
80
- }
81
- if (existing &&
82
- existing.hostname === hostname() &&
83
- !processIsAlive(existing.pid)) {
84
- await unlink(path).catch(() => undefined);
85
- const handle = await open(path, "wx", 0o600);
86
- try {
87
- await handle.writeFile(`${JSON.stringify(record)}\n`);
88
- }
89
- finally {
90
- await handle.close();
91
- }
92
- return record;
93
- }
94
- if (!existing && daemonLeaseFileIsAbandoned(root)) {
95
- await unlink(path).catch(() => undefined);
96
- const handle = await open(path, "wx", 0o600);
97
- try {
98
- await handle.writeFile(`${JSON.stringify(record)}\n`);
99
- }
100
- finally {
101
- await handle.close();
102
- }
103
- return record;
104
- }
105
- throw new DaemonError("INDEX_BUSY", "Another daemon owns index writes for this root.", true);
106
- }
107
- }
108
- finally {
109
- guard.release();
110
- }
111
- }
112
- async release(root, managed) {
113
- managed.refs -= 1;
114
- if (managed.refs > 0 || this.leases.get(root) !== managed) {
115
- return;
116
- }
117
- this.leases.delete(root);
118
- managed.stopped = true;
119
- if (managed.heartbeat)
120
- clearInterval(managed.heartbeat);
121
- await managed.heartbeatInFlight;
122
- await this.removeOwnedLease(root, managed.record);
123
- }
124
- startHeartbeat(root, managed) {
125
- const timer = setInterval(() => {
126
- const heartbeat = (async () => {
127
- if (managed.stopped)
128
- return;
129
- const current = await readLeaseFile(daemonLeasePath(root));
130
- if (managed.stopped ||
131
- current?.pid !== managed.record.pid ||
132
- current.instanceToken !== managed.record.instanceToken)
133
- return;
134
- managed.record.updatedAt = Date.now();
135
- if (managed.stopped)
136
- return;
137
- await writeFile(daemonLeasePath(root), `${JSON.stringify(managed.record)}\n`, { mode: 0o600 });
138
- })().catch(() => undefined);
139
- managed.heartbeatInFlight = heartbeat;
140
- void heartbeat.finally(() => {
141
- if (managed.heartbeatInFlight === heartbeat)
142
- managed.heartbeatInFlight = undefined;
143
- });
144
- }, 5_000);
145
- timer.unref?.();
146
- return timer;
147
- }
148
- async removeOwnedLease(root, expected) {
149
- let guard;
150
- for (let attempt = 0; attempt < 10 && !guard; attempt++) {
151
- guard = acquireDaemonLeaseGuard(root, this.instanceToken);
152
- if (!guard) {
153
- await new Promise((resolve) => setTimeout(resolve, 10));
154
- }
155
- }
156
- if (!guard) {
157
- throw new DaemonError("INDEX_BUSY", "Could not remove the owned daemon lease.", true);
158
- }
159
- const path = daemonLeasePath(root);
160
- try {
161
- const current = await readLeaseFile(path);
162
- if (current?.pid === expected.pid &&
163
- current.instanceToken === expected.instanceToken) {
164
- await unlink(path).catch(() => undefined);
165
- }
166
- }
167
- finally {
168
- guard.release();
169
- }
170
- }
171
- }
172
- async function readLeaseFile(path) {
173
- try {
174
- const parsed = JSON.parse(await readFile(path, "utf8"));
175
- if (typeof parsed.pid !== "number" ||
176
- typeof parsed.hostname !== "string" ||
177
- typeof parsed.instanceToken !== "string" ||
178
- typeof parsed.createdAt !== "number" ||
179
- typeof parsed.updatedAt !== "number") {
180
- return undefined;
181
- }
182
- return parsed;
183
- }
184
- catch {
185
- return undefined;
186
- }
187
- }
188
- //# sourceMappingURL=root-lease.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"root-lease.js","sourceRoot":"","sources":["../../src/daemon/root-lease.ts"],"names":[],"mappings":"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"}
@@ -1,79 +0,0 @@
1
- import type { WorkspaceReadSession } from "../engine/service/zvec-grep.js";
2
- import type { ZvecGrepContextOptions, ZvecGrepContextResult } from "../engine/service/types.js";
3
- import type { EmbeddingModelLoadRequest, EmbeddingModelPool, ModelLease } from "./model-pool.js";
4
- import type { RootLease } from "./root-lease.js";
5
- export type RootRuntimeOptions = {
6
- canonicalRoot: string;
7
- modelPool: EmbeddingModelPool;
8
- modelLoadRequest?: EmbeddingModelLoadRequest;
9
- rootLease?: RootLease;
10
- readSessionIdleTtlMs?: number;
11
- openSession?: (lease: ModelLease) => WorkspaceReadSession | Promise<WorkspaceReadSession>;
12
- onActivity?: () => void;
13
- };
14
- export declare class RootRuntime {
15
- private readonly options;
16
- readonly canonicalRoot: string;
17
- private generation?;
18
- private generationTail;
19
- private modelLoadRequest?;
20
- private dirtyRevision;
21
- private indexedRevision;
22
- private fullReconciliationEpoch;
23
- private reconciledFullEpoch;
24
- private nonProbeableFullEpoch;
25
- private initialFreshnessProbe?;
26
- private watcherActive;
27
- private watcherPending;
28
- private watcherEpoch;
29
- private writerPending;
30
- private writerReady?;
31
- private writerReadyResolve?;
32
- private writerContext?;
33
- private writerModelKey?;
34
- private activeWriterSearches;
35
- private writerSearchesDrained?;
36
- private writerSearchesDrainedResolve?;
37
- private activeOperations;
38
- private closed;
39
- constructor(options: RootRuntimeOptions);
40
- updateModelLoadRequest(request: EmbeddingModelLoadRequest): void;
41
- embeddingProvider(): string | undefined;
42
- currentModelLoadRequest(): EmbeddingModelLoadRequest | undefined;
43
- beginActivity(): () => void;
44
- search(options: ZvecGrepContextOptions, modelLoadRequest?: EmbeddingModelLoadRequest): Promise<ZvecGrepContextResult>;
45
- setWriterPending(pending: boolean): void;
46
- setWriterContext(context: (options: ZvecGrepContextOptions) => Promise<ZvecGrepContextResult>, modelKey: string): () => Promise<void>;
47
- markDirty(): number;
48
- markIndexed(revision?: number): void;
49
- requireFullReconciliation(probeAllowed?: boolean): void;
50
- private armWriterReady;
51
- private notifyWriterStateChanged;
52
- reconciliationEpoch(): number;
53
- markReconciled(revision?: number, reconciliationEpoch?: number): void;
54
- requiresFullReconciliation(): boolean;
55
- canProbeFullReconciliation(): boolean;
56
- needsReconciliation(): boolean;
57
- hasKnownChanges(): boolean;
58
- probeInitialFreshness(probe: () => Promise<boolean>, onResult?: (result: "fresh" | "stale") => void): Promise<"fresh" | "stale">;
59
- probeFreshness(probe: () => Promise<boolean>): Promise<"fresh" | "stale">;
60
- setWatcherActive(active: boolean): void;
61
- setWatcherPending(pending: boolean): void;
62
- withWrite<T>(operation: () => Promise<T>): Promise<T>;
63
- snapshot(): {
64
- readSessionOpen: boolean;
65
- activeReaders: number;
66
- activeOperations: number;
67
- writerPending: boolean;
68
- dirtyRevision: number;
69
- indexedRevision: number;
70
- watcherActive: boolean;
71
- watcherPending: boolean;
72
- watcherEpoch: number;
73
- };
74
- close(): Promise<void>;
75
- private openLeasedSession;
76
- private withWriterContext;
77
- private runFreshnessProbe;
78
- private runGenerationSerial;
79
- }
@@ -1,337 +0,0 @@
1
- import { openWorkspaceReadSession } from "../engine/service/zvec-grep.js";
2
- import { WorkspaceReadSessionCache } from "./workspace-read-session-cache.js";
3
- export class RootRuntime {
4
- options;
5
- canonicalRoot;
6
- generation;
7
- generationTail = Promise.resolve();
8
- modelLoadRequest;
9
- dirtyRevision = 0;
10
- indexedRevision = 0;
11
- fullReconciliationEpoch = 0;
12
- reconciledFullEpoch = -1;
13
- nonProbeableFullEpoch = 0;
14
- initialFreshnessProbe;
15
- watcherActive = false;
16
- watcherPending = false;
17
- watcherEpoch = 0;
18
- writerPending = false;
19
- writerReady;
20
- writerReadyResolve;
21
- writerContext;
22
- writerModelKey;
23
- activeWriterSearches = 0;
24
- writerSearchesDrained;
25
- writerSearchesDrainedResolve;
26
- activeOperations = 0;
27
- closed = false;
28
- constructor(options) {
29
- this.options = options;
30
- this.canonicalRoot = options.canonicalRoot;
31
- this.modelLoadRequest = options.modelLoadRequest;
32
- }
33
- updateModelLoadRequest(request) {
34
- this.modelLoadRequest = request;
35
- }
36
- embeddingProvider() {
37
- return this.modelLoadRequest?.model.provider;
38
- }
39
- currentModelLoadRequest() {
40
- return this.modelLoadRequest;
41
- }
42
- beginActivity() {
43
- if (this.closed) {
44
- throw new Error("Root runtime is closed.");
45
- }
46
- this.activeOperations += 1;
47
- this.options.onActivity?.();
48
- let released = false;
49
- return () => {
50
- if (released) {
51
- return;
52
- }
53
- released = true;
54
- this.activeOperations = Math.max(0, this.activeOperations - 1);
55
- this.options.onActivity?.();
56
- };
57
- }
58
- async search(options, modelLoadRequest) {
59
- this.options.onActivity?.();
60
- if (this.closed) {
61
- throw new Error("Root runtime is closed.");
62
- }
63
- const overrideModelKey = modelLoadRequest
64
- ? this.options.modelPool.keyFor(modelLoadRequest)
65
- : undefined;
66
- while (true) {
67
- const writerContext = this.writerContext;
68
- if (writerContext &&
69
- (overrideModelKey === undefined ||
70
- overrideModelKey === this.writerModelKey)) {
71
- return await this.withWriterContext(writerContext, options);
72
- }
73
- if (!this.writerPending || !this.writerReady) {
74
- break;
75
- }
76
- await this.writerReady;
77
- }
78
- return this.runGenerationSerial(async () => {
79
- if (this.closed) {
80
- throw new Error("Root runtime is closed.");
81
- }
82
- const request = modelLoadRequest ?? this.modelLoadRequest;
83
- if (!request) {
84
- throw new Error("Root runtime does not have an embedding model.");
85
- }
86
- const desiredKey = this.options.modelPool.keyFor(request);
87
- if (this.generation?.key !== desiredKey) {
88
- await this.generation?.cache.close();
89
- this.generation = {
90
- key: desiredKey,
91
- cache: new WorkspaceReadSessionCache({
92
- open: () => this.openLeasedSession(request),
93
- idleTtlMs: this.options.readSessionIdleTtlMs,
94
- serializeOperations: true,
95
- }),
96
- };
97
- }
98
- return this.generation.cache.withRead((session) => session.context({
99
- ...options,
100
- root: this.canonicalRoot,
101
- autoUpdate: false,
102
- }));
103
- });
104
- }
105
- setWriterPending(pending) {
106
- if (pending === this.writerPending) {
107
- return;
108
- }
109
- this.writerPending = pending;
110
- if (pending) {
111
- this.armWriterReady();
112
- }
113
- else {
114
- this.notifyWriterStateChanged();
115
- }
116
- }
117
- setWriterContext(context, modelKey) {
118
- this.writerContext = context;
119
- this.writerModelKey = modelKey;
120
- this.notifyWriterStateChanged();
121
- this.armWriterReady();
122
- return async () => {
123
- if (this.writerContext !== context) {
124
- return;
125
- }
126
- this.writerContext = undefined;
127
- this.writerModelKey = undefined;
128
- this.notifyWriterStateChanged();
129
- this.armWriterReady();
130
- if (this.activeWriterSearches > 0) {
131
- this.writerSearchesDrained ??= new Promise((resolve) => {
132
- this.writerSearchesDrainedResolve = resolve;
133
- });
134
- await this.writerSearchesDrained;
135
- }
136
- };
137
- }
138
- markDirty() {
139
- this.dirtyRevision += 1;
140
- return this.dirtyRevision;
141
- }
142
- markIndexed(revision = this.dirtyRevision) {
143
- this.indexedRevision = Math.max(this.indexedRevision, revision);
144
- }
145
- requireFullReconciliation(probeAllowed = false) {
146
- this.fullReconciliationEpoch += 1;
147
- if (!probeAllowed) {
148
- this.nonProbeableFullEpoch = this.fullReconciliationEpoch;
149
- }
150
- }
151
- armWriterReady() {
152
- if (!this.writerPending || this.writerReady) {
153
- return;
154
- }
155
- this.writerReady = new Promise((resolve) => {
156
- this.writerReadyResolve = resolve;
157
- });
158
- }
159
- notifyWriterStateChanged() {
160
- const resolve = this.writerReadyResolve;
161
- this.writerReadyResolve = undefined;
162
- this.writerReady = undefined;
163
- resolve?.();
164
- }
165
- reconciliationEpoch() {
166
- return this.fullReconciliationEpoch;
167
- }
168
- markReconciled(revision = this.dirtyRevision, reconciliationEpoch = this.fullReconciliationEpoch) {
169
- this.markIndexed(revision);
170
- this.reconciledFullEpoch = Math.max(this.reconciledFullEpoch, reconciliationEpoch);
171
- }
172
- requiresFullReconciliation() {
173
- return this.reconciledFullEpoch < this.fullReconciliationEpoch;
174
- }
175
- canProbeFullReconciliation() {
176
- return this.nonProbeableFullEpoch <= this.reconciledFullEpoch;
177
- }
178
- needsReconciliation() {
179
- return (this.requiresFullReconciliation() ||
180
- this.indexedRevision < this.dirtyRevision);
181
- }
182
- hasKnownChanges() {
183
- return (this.indexedRevision < this.dirtyRevision ||
184
- (this.requiresFullReconciliation() && !this.canProbeFullReconciliation()));
185
- }
186
- probeInitialFreshness(probe, onResult) {
187
- this.initialFreshnessProbe ??= this.probeFreshness(probe).then((result) => {
188
- onResult?.(result);
189
- return result;
190
- });
191
- return this.initialFreshnessProbe;
192
- }
193
- probeFreshness(probe) {
194
- return this.runFreshnessProbe(probe);
195
- }
196
- setWatcherActive(active) {
197
- this.watcherActive = active;
198
- }
199
- setWatcherPending(pending) {
200
- if (pending) {
201
- this.watcherEpoch += 1;
202
- }
203
- this.watcherPending = pending;
204
- this.options.onActivity?.();
205
- }
206
- async withWrite(operation) {
207
- this.setWriterPending(true);
208
- try {
209
- return await this.runGenerationSerial(async () => {
210
- const generation = this.generation;
211
- this.generation = undefined;
212
- await generation?.cache.close();
213
- return operation();
214
- });
215
- }
216
- finally {
217
- this.setWriterPending(false);
218
- }
219
- }
220
- snapshot() {
221
- const read = this.generation?.cache.snapshot();
222
- return {
223
- readSessionOpen: read?.open ?? false,
224
- activeReaders: read?.activeReaders ?? 0,
225
- activeOperations: this.activeOperations,
226
- writerPending: this.writerPending,
227
- dirtyRevision: this.dirtyRevision,
228
- indexedRevision: this.indexedRevision,
229
- watcherActive: this.watcherActive,
230
- watcherPending: this.watcherPending,
231
- watcherEpoch: this.watcherEpoch,
232
- };
233
- }
234
- async close() {
235
- if (this.closed) {
236
- return;
237
- }
238
- this.closed = true;
239
- this.watcherActive = false;
240
- this.watcherPending = false;
241
- this.setWriterPending(false);
242
- await this.runGenerationSerial(async () => {
243
- const generation = this.generation;
244
- this.generation = undefined;
245
- try {
246
- await generation?.cache.close();
247
- }
248
- finally {
249
- await this.options.rootLease?.release();
250
- }
251
- });
252
- }
253
- async openLeasedSession(request) {
254
- const lease = await this.options.modelPool.acquire(request);
255
- let session;
256
- try {
257
- session = this.options.openSession
258
- ? await this.options.openSession(lease)
259
- : openWorkspaceReadSession(this.options.canonicalRoot, lease.model);
260
- }
261
- catch (error) {
262
- lease.release();
263
- throw error;
264
- }
265
- let closed = false;
266
- return {
267
- root: session.root,
268
- modelKey: lease.key,
269
- context: (contextOptions) => session.context(contextOptions),
270
- async close() {
271
- if (closed) {
272
- return;
273
- }
274
- closed = true;
275
- try {
276
- await session.close();
277
- }
278
- finally {
279
- lease.release();
280
- }
281
- },
282
- };
283
- }
284
- async withWriterContext(context, options) {
285
- this.activeWriterSearches += 1;
286
- try {
287
- return await context({
288
- ...options,
289
- root: this.canonicalRoot,
290
- autoUpdate: false,
291
- });
292
- }
293
- finally {
294
- this.activeWriterSearches -= 1;
295
- if (this.activeWriterSearches === 0) {
296
- this.writerSearchesDrainedResolve?.();
297
- this.writerSearchesDrainedResolve = undefined;
298
- this.writerSearchesDrained = undefined;
299
- }
300
- }
301
- }
302
- async runFreshnessProbe(probe) {
303
- const revision = this.dirtyRevision;
304
- const watcherEpoch = this.watcherEpoch;
305
- const reconciliationEpoch = this.fullReconciliationEpoch;
306
- let fresh = false;
307
- try {
308
- fresh = await probe();
309
- }
310
- catch {
311
- return "stale";
312
- }
313
- if (!fresh ||
314
- this.dirtyRevision !== revision ||
315
- this.watcherEpoch !== watcherEpoch ||
316
- this.fullReconciliationEpoch !== reconciliationEpoch) {
317
- return "stale";
318
- }
319
- this.markReconciled(revision, reconciliationEpoch);
320
- return "fresh";
321
- }
322
- async runGenerationSerial(operation) {
323
- const previous = this.generationTail;
324
- let release;
325
- this.generationTail = new Promise((resolve) => {
326
- release = resolve;
327
- });
328
- await previous;
329
- try {
330
- return await operation();
331
- }
332
- finally {
333
- release();
334
- }
335
- }
336
- }
337
- //# sourceMappingURL=root-runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"root-runtime.js","sourceRoot":"","sources":["../../src/daemon/root-runtime.ts"],"names":[],"mappings":"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"}