@zvec/zvec-grep 0.1.5 → 0.1.7

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/README.md +154 -236
  2. package/README_CN.md +142 -233
  3. package/dist/authorization/index.d.ts +7 -0
  4. package/dist/authorization/index.js +7 -0
  5. package/dist/authorization/index.js.map +1 -0
  6. package/dist/authorization/manager.d.ts +8 -0
  7. package/dist/authorization/manager.js +19 -0
  8. package/dist/authorization/manager.js.map +1 -0
  9. package/dist/authorization/operation.d.ts +7 -0
  10. package/dist/authorization/operation.js +50 -0
  11. package/dist/authorization/operation.js.map +1 -0
  12. package/dist/authorization/planner.d.ts +21 -0
  13. package/dist/authorization/planner.js +97 -0
  14. package/dist/authorization/planner.js.map +1 -0
  15. package/dist/authorization/prompt.d.ts +11 -0
  16. package/dist/authorization/prompt.js +62 -0
  17. package/dist/authorization/prompt.js.map +1 -0
  18. package/dist/authorization/store.d.ts +20 -0
  19. package/dist/authorization/store.js +251 -0
  20. package/dist/authorization/store.js.map +1 -0
  21. package/dist/authorization/target.d.ts +15 -0
  22. package/dist/authorization/target.js +49 -0
  23. package/dist/authorization/target.js.map +1 -0
  24. package/dist/authorization/types.d.ts +61 -0
  25. package/dist/authorization/types.js +2 -0
  26. package/dist/authorization/types.js.map +1 -0
  27. package/dist/cli/args.d.ts +1 -1
  28. package/dist/cli/args.js +338 -55
  29. package/dist/cli/args.js.map +1 -1
  30. package/dist/cli/auth.d.ts +21 -0
  31. package/dist/cli/auth.js +209 -0
  32. package/dist/cli/auth.js.map +1 -0
  33. package/dist/cli/commands.js +469 -625
  34. package/dist/cli/commands.js.map +1 -1
  35. package/dist/cli/errors.js +2 -2
  36. package/dist/cli/errors.js.map +1 -1
  37. package/dist/cli/format/context.d.ts +4 -0
  38. package/dist/cli/format/context.js +311 -44
  39. package/dist/cli/format/context.js.map +1 -1
  40. package/dist/cli/format/debug.js +12 -6
  41. package/dist/cli/format/debug.js.map +1 -1
  42. package/dist/cli/format/progress.d.ts +4 -0
  43. package/dist/cli/format/progress.js +219 -46
  44. package/dist/cli/format/progress.js.map +1 -1
  45. package/dist/cli/format/status.d.ts +79 -6
  46. package/dist/cli/format/status.js +341 -111
  47. package/dist/cli/format/status.js.map +1 -1
  48. package/dist/cli/help.js +395 -63
  49. package/dist/cli/help.js.map +1 -1
  50. package/dist/cli/index.d.ts +1 -1
  51. package/dist/cli/index.js +1 -1
  52. package/dist/cli/install.d.ts +4 -0
  53. package/dist/cli/install.js +963 -0
  54. package/dist/cli/install.js.map +1 -0
  55. package/dist/cli/managed-rg.d.ts +10 -0
  56. package/dist/cli/managed-rg.js +329 -0
  57. package/dist/cli/managed-rg.js.map +1 -0
  58. package/dist/cli/server-search.d.ts +3 -0
  59. package/dist/cli/server-search.js +12 -0
  60. package/dist/cli/server-search.js.map +1 -0
  61. package/dist/cli/types.d.ts +23 -6
  62. package/dist/cli/types.js.map +1 -1
  63. package/dist/client/daemon-client.d.ts +31 -0
  64. package/dist/client/daemon-client.js +203 -0
  65. package/dist/client/daemon-client.js.map +1 -0
  66. package/dist/client/mode-router.d.ts +9 -0
  67. package/dist/client/mode-router.js +28 -0
  68. package/dist/client/mode-router.js.map +1 -0
  69. package/dist/client/search-policy.d.ts +11 -0
  70. package/dist/client/search-policy.js +15 -0
  71. package/dist/client/search-policy.js.map +1 -0
  72. package/dist/daemon/backend.d.ts +77 -0
  73. package/dist/daemon/backend.js +1087 -0
  74. package/dist/daemon/backend.js.map +1 -0
  75. package/dist/daemon/change-set.d.ts +25 -0
  76. package/dist/daemon/change-set.js +101 -0
  77. package/dist/daemon/change-set.js.map +1 -0
  78. package/dist/daemon/config.d.ts +24 -0
  79. package/dist/daemon/config.js +88 -0
  80. package/dist/daemon/config.js.map +1 -0
  81. package/dist/daemon/errors.d.ts +5 -0
  82. package/dist/daemon/errors.js +11 -0
  83. package/dist/daemon/errors.js.map +1 -0
  84. package/dist/daemon/http-server.d.ts +30 -0
  85. package/dist/daemon/http-server.js +288 -0
  86. package/dist/daemon/http-server.js.map +1 -0
  87. package/dist/daemon/index-coordinator.d.ts +24 -0
  88. package/dist/daemon/index-coordinator.js +68 -0
  89. package/dist/daemon/index-coordinator.js.map +1 -0
  90. package/dist/daemon/job-scheduler.d.ts +70 -0
  91. package/dist/daemon/job-scheduler.js +366 -0
  92. package/dist/daemon/job-scheduler.js.map +1 -0
  93. package/dist/daemon/logger.d.ts +9 -0
  94. package/dist/daemon/logger.js +53 -0
  95. package/dist/daemon/logger.js.map +1 -0
  96. package/dist/daemon/model-pool.d.ts +45 -0
  97. package/dist/daemon/model-pool.js +187 -0
  98. package/dist/daemon/model-pool.js.map +1 -0
  99. package/dist/daemon/root-lease.d.ts +14 -0
  100. package/dist/daemon/root-lease.js +188 -0
  101. package/dist/daemon/root-lease.js.map +1 -0
  102. package/dist/daemon/root-runtime.d.ts +78 -0
  103. package/dist/daemon/root-runtime.js +333 -0
  104. package/dist/daemon/root-runtime.js.map +1 -0
  105. package/dist/daemon/runtime-manager.d.ts +46 -0
  106. package/dist/daemon/runtime-manager.js +246 -0
  107. package/dist/daemon/runtime-manager.js.map +1 -0
  108. package/dist/daemon/runtime.d.ts +12 -0
  109. package/dist/daemon/runtime.js +102 -0
  110. package/dist/daemon/runtime.js.map +1 -0
  111. package/dist/daemon/server-controller.d.ts +39 -0
  112. package/dist/daemon/server-controller.js +254 -0
  113. package/dist/daemon/server-controller.js.map +1 -0
  114. package/dist/daemon/watch-manager.d.ts +50 -0
  115. package/dist/daemon/watch-manager.js +293 -0
  116. package/dist/daemon/watch-manager.js.map +1 -0
  117. package/dist/daemon/workspace-read-session-cache.d.ts +31 -0
  118. package/dist/daemon/workspace-read-session-cache.js +115 -0
  119. package/dist/daemon/workspace-read-session-cache.js.map +1 -0
  120. package/dist/engine/code-formats.d.ts +3 -0
  121. package/dist/engine/code-formats.js +14 -0
  122. package/dist/engine/code-formats.js.map +1 -0
  123. package/dist/engine/config.d.ts +30 -8
  124. package/dist/engine/config.js +171 -45
  125. package/dist/engine/config.js.map +1 -1
  126. package/dist/engine/{errors/index.d.ts → errors.d.ts} +6 -1
  127. package/dist/engine/{errors/details.js → errors.js} +17 -4
  128. package/dist/engine/errors.js.map +1 -0
  129. package/dist/engine/extraction/code/adapter.d.ts +1 -1
  130. package/dist/engine/extraction/code/adapter.js +1 -1
  131. package/dist/engine/extraction/code/adapter.js.map +1 -1
  132. package/dist/engine/extraction/code/extractor.d.ts +5 -11
  133. package/dist/engine/extraction/code/extractor.js +116 -48
  134. package/dist/engine/extraction/code/extractor.js.map +1 -1
  135. package/dist/engine/extraction/code/families/c-family.js +1 -1
  136. package/dist/engine/extraction/code/families/c-family.js.map +1 -1
  137. package/dist/engine/extraction/code/families/js-ts.d.ts +1 -1
  138. package/dist/engine/extraction/code/families/metadata.d.ts +1 -1
  139. package/dist/engine/extraction/code/tree-sitter/grammar.js.map +1 -0
  140. package/dist/engine/extraction/code/tree-sitter/nodes.js.map +1 -0
  141. package/dist/engine/extraction/code/tree-sitter/parser.js.map +1 -0
  142. package/dist/engine/extraction/image/extractor.d.ts +5 -0
  143. package/dist/engine/extraction/image/extractor.js +35 -0
  144. package/dist/engine/extraction/image/extractor.js.map +1 -0
  145. package/dist/engine/extraction/index.d.ts +4 -44
  146. package/dist/engine/extraction/index.js +2 -280
  147. package/dist/engine/extraction/index.js.map +1 -1
  148. package/dist/engine/extraction/markdown/extractor.d.ts +5 -11
  149. package/dist/engine/extraction/markdown/extractor.js +38 -17
  150. package/dist/engine/extraction/markdown/extractor.js.map +1 -1
  151. package/dist/engine/extraction/runtime.d.ts +4 -0
  152. package/dist/engine/extraction/runtime.js +26 -0
  153. package/dist/engine/extraction/runtime.js.map +1 -0
  154. package/dist/engine/extraction/source.d.ts +18 -0
  155. package/dist/engine/extraction/source.js +22 -0
  156. package/dist/engine/extraction/source.js.map +1 -0
  157. package/dist/engine/extraction/text/extractor.d.ts +7 -0
  158. package/dist/engine/extraction/text/extractor.js +168 -0
  159. package/dist/engine/extraction/text/extractor.js.map +1 -0
  160. package/dist/engine/extraction/types.d.ts +4 -0
  161. package/dist/engine/{models → extraction}/types.js.map +1 -1
  162. package/dist/engine/extraction/vector-content.d.ts +5 -0
  163. package/dist/engine/extraction/vector-content.js +95 -0
  164. package/dist/engine/extraction/vector-content.js.map +1 -0
  165. package/dist/engine/file-size-policy.d.ts +6 -0
  166. package/dist/engine/file-size-policy.js +20 -0
  167. package/dist/engine/file-size-policy.js.map +1 -0
  168. package/dist/engine/file-type.d.ts +15 -0
  169. package/dist/engine/file-type.js +152 -0
  170. package/dist/engine/file-type.js.map +1 -0
  171. package/dist/engine/index-status.d.ts +9 -0
  172. package/dist/engine/index-status.js +38 -0
  173. package/dist/engine/index-status.js.map +1 -0
  174. package/dist/engine/manifest.d.ts +13 -0
  175. package/dist/engine/manifest.js +124 -0
  176. package/dist/engine/manifest.js.map +1 -0
  177. package/dist/engine/models/{providers/llama-cpp/embedding.d.ts → backends/llama-cpp.d.ts} +25 -20
  178. package/dist/engine/models/{providers/llama-cpp/embedding.js → backends/llama-cpp.js} +127 -106
  179. package/dist/engine/models/backends/llama-cpp.js.map +1 -0
  180. package/dist/engine/models/backends/model2vec-runtime.d.ts +63 -0
  181. package/dist/engine/models/backends/model2vec-runtime.js +112 -0
  182. package/dist/engine/models/backends/model2vec-runtime.js.map +1 -0
  183. package/dist/engine/models/backends/model2vec-tokenizer.d.ts +2 -0
  184. package/dist/engine/models/backends/model2vec-tokenizer.js +42 -0
  185. package/dist/engine/models/backends/model2vec-tokenizer.js.map +1 -0
  186. package/dist/engine/models/backends/model2vec-worker-pool.d.ts +25 -0
  187. package/dist/engine/models/backends/model2vec-worker-pool.js +264 -0
  188. package/dist/engine/models/backends/model2vec-worker-pool.js.map +1 -0
  189. package/dist/engine/models/backends/model2vec-worker.d.ts +1 -0
  190. package/dist/engine/models/backends/model2vec-worker.js +41 -0
  191. package/dist/engine/models/backends/model2vec-worker.js.map +1 -0
  192. package/dist/engine/models/backends/model2vec.d.ts +40 -0
  193. package/dist/engine/models/backends/model2vec.js +311 -0
  194. package/dist/engine/models/backends/model2vec.js.map +1 -0
  195. package/dist/engine/models/backends/qwen.d.ts +44 -0
  196. package/dist/engine/models/{providers/qwen/embedding.js → backends/qwen.js} +155 -94
  197. package/dist/engine/models/backends/qwen.js.map +1 -0
  198. package/dist/engine/models/backends/transformers-js.d.ts +87 -0
  199. package/dist/engine/models/backends/transformers-js.js +316 -0
  200. package/dist/engine/models/backends/transformers-js.js.map +1 -0
  201. package/dist/engine/models/catalog.d.ts +207 -23
  202. package/dist/engine/models/catalog.js +191 -25
  203. package/dist/engine/models/catalog.js.map +1 -1
  204. package/dist/engine/models/download-progress.d.ts +15 -0
  205. package/dist/engine/models/download-progress.js +48 -0
  206. package/dist/engine/models/download-progress.js.map +1 -0
  207. package/dist/engine/models/embeddings.d.ts +59 -18
  208. package/dist/engine/models/embeddings.js +52 -28
  209. package/dist/engine/models/embeddings.js.map +1 -1
  210. package/dist/engine/models/factory.d.ts +2 -5
  211. package/dist/engine/models/factory.js +41 -56
  212. package/dist/engine/models/factory.js.map +1 -1
  213. package/dist/engine/models/index.d.ts +4 -6
  214. package/dist/engine/models/index.js +4 -4
  215. package/dist/engine/models/index.js.map +1 -1
  216. package/dist/engine/models/ranking.d.ts +7 -3
  217. package/dist/engine/models/resolution.d.ts +8 -0
  218. package/dist/engine/models/resolution.js +22 -0
  219. package/dist/engine/models/resolution.js.map +1 -0
  220. package/dist/engine/pipeline/indexing/index.d.ts +9 -7
  221. package/dist/engine/pipeline/indexing/index.js +409 -165
  222. package/dist/engine/pipeline/indexing/index.js.map +1 -1
  223. package/dist/engine/pipeline/indexing/input-budget.d.ts +2 -0
  224. package/dist/engine/pipeline/indexing/input-budget.js +51 -0
  225. package/dist/engine/pipeline/indexing/input-budget.js.map +1 -0
  226. package/dist/engine/pipeline/indexing/root-paths.js +6 -6
  227. package/dist/engine/pipeline/indexing/root-paths.js.map +1 -1
  228. package/dist/engine/pipeline/indexing/scanner/index.d.ts +9 -2
  229. package/dist/engine/pipeline/indexing/scanner/index.js +291 -35
  230. package/dist/engine/pipeline/indexing/scanner/index.js.map +1 -1
  231. package/dist/engine/pipeline/search/index.d.ts +6 -6
  232. package/dist/engine/pipeline/search/index.js +8 -10
  233. package/dist/engine/pipeline/search/index.js.map +1 -1
  234. package/dist/engine/service/index.d.ts +3 -2
  235. package/dist/engine/service/index.js +1 -1
  236. package/dist/engine/service/index.js.map +1 -1
  237. package/dist/engine/service/root.d.ts +10 -12
  238. package/dist/engine/service/root.js +29 -25
  239. package/dist/engine/service/root.js.map +1 -1
  240. package/dist/engine/service/structure-enrichment.d.ts +1 -1
  241. package/dist/engine/service/structure-enrichment.js +20 -22
  242. package/dist/engine/service/structure-enrichment.js.map +1 -1
  243. package/dist/engine/service/types.d.ts +40 -38
  244. package/dist/engine/service/workspace-index.d.ts +26 -0
  245. package/dist/engine/service/workspace-index.js +157 -0
  246. package/dist/engine/service/workspace-index.js.map +1 -0
  247. package/dist/engine/service/zvec-grep.d.ts +12 -1
  248. package/dist/engine/service/zvec-grep.js +698 -489
  249. package/dist/engine/service/zvec-grep.js.map +1 -1
  250. package/dist/engine/storage/index.d.ts +30 -20
  251. package/dist/engine/storage/index.js +2 -1
  252. package/dist/engine/storage/index.js.map +1 -1
  253. package/dist/engine/storage/layout.d.ts +10 -0
  254. package/dist/engine/storage/layout.js +29 -0
  255. package/dist/engine/storage/layout.js.map +1 -0
  256. package/dist/engine/storage/zvec.d.ts +4 -67
  257. package/dist/engine/storage/zvec.js +115 -85
  258. package/dist/engine/storage/zvec.js.map +1 -1
  259. package/dist/engine/types.d.ts +29 -23
  260. package/dist/engine/types.js +1 -1
  261. package/dist/engine/types.js.map +1 -1
  262. package/dist/engine/utils/daemon-lease.d.ts +17 -0
  263. package/dist/engine/utils/daemon-lease.js +175 -0
  264. package/dist/engine/utils/daemon-lease.js.map +1 -0
  265. package/dist/engine/utils/file-selection.js +38 -1
  266. package/dist/engine/utils/file-selection.js.map +1 -1
  267. package/dist/engine/utils/lock.js +1 -1
  268. package/dist/engine/utils/lock.js.map +1 -1
  269. package/dist/index-progress.d.ts +10 -0
  270. package/dist/index-progress.js +159 -0
  271. package/dist/index-progress.js.map +1 -0
  272. package/dist/index.d.ts +4 -4
  273. package/dist/index.js +1 -1
  274. package/dist/index.js.map +1 -1
  275. package/dist/mcp/http-transport.d.ts +27 -0
  276. package/dist/mcp/http-transport.js +182 -0
  277. package/dist/mcp/http-transport.js.map +1 -0
  278. package/dist/mcp/input-normalization.d.ts +38 -0
  279. package/dist/mcp/input-normalization.js +104 -0
  280. package/dist/mcp/input-normalization.js.map +1 -0
  281. package/dist/mcp/progress-heartbeat.d.ts +17 -0
  282. package/dist/mcp/progress-heartbeat.js +46 -0
  283. package/dist/mcp/progress-heartbeat.js.map +1 -0
  284. package/dist/mcp/request-metadata.d.ts +2 -0
  285. package/dist/mcp/request-metadata.js +11 -0
  286. package/dist/mcp/request-metadata.js.map +1 -0
  287. package/dist/mcp/request-state.d.ts +40 -0
  288. package/dist/mcp/request-state.js +210 -0
  289. package/dist/mcp/request-state.js.map +1 -0
  290. package/dist/mcp/result-format.d.ts +13 -0
  291. package/dist/mcp/result-format.js +75 -0
  292. package/dist/mcp/result-format.js.map +1 -0
  293. package/dist/mcp/schemas.d.ts +672 -0
  294. package/dist/mcp/schemas.js +506 -0
  295. package/dist/mcp/schemas.js.map +1 -0
  296. package/dist/mcp/stdio-bridge.d.ts +9 -0
  297. package/dist/mcp/stdio-bridge.js +131 -0
  298. package/dist/mcp/stdio-bridge.js.map +1 -0
  299. package/dist/mcp/tools.d.ts +153 -0
  300. package/dist/mcp/tools.js +482 -0
  301. package/dist/mcp/tools.js.map +1 -0
  302. package/dist/mcp/toolset.d.ts +5 -0
  303. package/dist/mcp/toolset.js +12 -0
  304. package/dist/mcp/toolset.js.map +1 -0
  305. package/dist/observability/trace-context.d.ts +11 -0
  306. package/dist/observability/trace-context.js +138 -0
  307. package/dist/observability/trace-context.js.map +1 -0
  308. package/dist/prompts/zvec-grep-guidance.d.ts +2 -0
  309. package/dist/prompts/zvec-grep-guidance.js +9 -0
  310. package/dist/prompts/zvec-grep-guidance.js.map +1 -0
  311. package/docs/01-agents.md +132 -0
  312. package/docs/02-cli.md +239 -0
  313. package/docs/03-mcp.md +185 -0
  314. package/docs/04-pipeline.md +226 -0
  315. package/docs/05-architecture.md +86 -0
  316. package/docs/06-server.md +215 -0
  317. package/docs/07-embedding.md +182 -0
  318. package/docs/08-roadmap.md +85 -0
  319. package/docs/README.md +53 -0
  320. package/package.json +20 -11
  321. package/dist/cli/mcp.d.ts +0 -2
  322. package/dist/cli/mcp.js +0 -354
  323. package/dist/cli/mcp.js.map +0 -1
  324. package/dist/engine/collection/index.d.ts +0 -55
  325. package/dist/engine/collection/index.js +0 -710
  326. package/dist/engine/collection/index.js.map +0 -1
  327. package/dist/engine/errors/details.d.ts +0 -6
  328. package/dist/engine/errors/details.js.map +0 -1
  329. package/dist/engine/errors/index.js +0 -16
  330. package/dist/engine/errors/index.js.map +0 -1
  331. package/dist/engine/extraction/tree-sitter/grammar.js.map +0 -1
  332. package/dist/engine/extraction/tree-sitter/nodes.js.map +0 -1
  333. package/dist/engine/extraction/tree-sitter/parser.js.map +0 -1
  334. package/dist/engine/files/file-type.d.ts +0 -5
  335. package/dist/engine/files/file-type.js +0 -119
  336. package/dist/engine/files/file-type.js.map +0 -1
  337. package/dist/engine/models/providers/index.d.ts +0 -2
  338. package/dist/engine/models/providers/index.js +0 -3
  339. package/dist/engine/models/providers/index.js.map +0 -1
  340. package/dist/engine/models/providers/llama-cpp/embedding.js.map +0 -1
  341. package/dist/engine/models/providers/llama-cpp/index.d.ts +0 -1
  342. package/dist/engine/models/providers/llama-cpp/index.js +0 -2
  343. package/dist/engine/models/providers/llama-cpp/index.js.map +0 -1
  344. package/dist/engine/models/providers/qwen/embedding.d.ts +0 -42
  345. package/dist/engine/models/providers/qwen/embedding.js.map +0 -1
  346. package/dist/engine/models/providers/qwen/index.d.ts +0 -1
  347. package/dist/engine/models/providers/qwen/index.js +0 -2
  348. package/dist/engine/models/providers/qwen/index.js.map +0 -1
  349. package/dist/engine/models/types.d.ts +0 -30
  350. package/skills/zvec-grep/SKILL.md +0 -151
  351. package/skills/zvec-grep/agents/openai.yaml +0 -4
  352. /package/dist/engine/extraction/{tree-sitter → code/tree-sitter}/grammar.d.ts +0 -0
  353. /package/dist/engine/extraction/{tree-sitter → code/tree-sitter}/grammar.js +0 -0
  354. /package/dist/engine/extraction/{tree-sitter → code/tree-sitter}/nodes.d.ts +0 -0
  355. /package/dist/engine/extraction/{tree-sitter → code/tree-sitter}/nodes.js +0 -0
  356. /package/dist/engine/extraction/{tree-sitter → code/tree-sitter}/parser.d.ts +0 -0
  357. /package/dist/engine/extraction/{tree-sitter → code/tree-sitter}/parser.js +0 -0
  358. /package/dist/engine/{models → extraction}/types.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const MCP_TOOLSET_ENV = "ZVEC_GREP_MCP_TOOLSET";
2
+ export declare const DEFAULT_MCP_TOOLSET = "agent";
3
+ export type McpToolset = "agent" | "full";
4
+ export declare function parseMcpToolset(value: string): McpToolset;
5
+ export declare function resolveMcpToolset(explicitValue?: string, environmentValue?: string): McpToolset;
@@ -0,0 +1,12 @@
1
+ export const MCP_TOOLSET_ENV = "ZVEC_GREP_MCP_TOOLSET";
2
+ export const DEFAULT_MCP_TOOLSET = "agent";
3
+ export function parseMcpToolset(value) {
4
+ if (value === "agent" || value === "full")
5
+ return value;
6
+ throw new Error(`Unsupported MCP toolset "${value}". Expected "agent" or "full".`);
7
+ }
8
+ export function resolveMcpToolset(explicitValue, environmentValue) {
9
+ const value = explicitValue ?? environmentValue;
10
+ return value === undefined ? DEFAULT_MCP_TOOLSET : parseMcpToolset(value);
11
+ }
12
+ //# sourceMappingURL=toolset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolset.js","sourceRoot":"","sources":["../../src/mcp/toolset.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAI3C,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,gCAAgC,CAClE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,aAAsB,EACtB,gBAAyB;IAEzB,MAAM,KAAK,GAAG,aAAa,IAAI,gBAAgB,CAAC;IAChD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,11 @@
1
+ export type TraceContext = {
2
+ traceparent: string;
3
+ traceId: string;
4
+ tracestate?: string;
5
+ baggage?: string;
6
+ };
7
+ export declare function currentTraceContext(): TraceContext | undefined;
8
+ export declare function runWithTraceContext<T>(context: TraceContext | undefined, operation: () => T): T;
9
+ export declare function traceContextFromMcpBody(body: unknown): TraceContext | undefined;
10
+ export declare function traceContextFromMcpMeta(meta: unknown): TraceContext | undefined;
11
+ export declare function traceHeaders(): Record<string, string>;
@@ -0,0 +1,138 @@
1
+ import { AsyncLocalStorage } from "node:async_hooks";
2
+ const storage = new AsyncLocalStorage();
3
+ const TRACEPARENT = /^([0-9a-f]{2})-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})((?:-[0-9a-f]+)*)$/;
4
+ export function currentTraceContext() {
5
+ return storage.getStore();
6
+ }
7
+ export function runWithTraceContext(context, operation) {
8
+ return context ? storage.run(context, operation) : operation();
9
+ }
10
+ export function traceContextFromMcpBody(body) {
11
+ if (!body || typeof body !== "object" || Array.isArray(body)) {
12
+ return undefined;
13
+ }
14
+ return traceContextFromMcpMeta(body.params?._meta);
15
+ }
16
+ export function traceContextFromMcpMeta(meta) {
17
+ if (!meta || typeof meta !== "object" || Array.isArray(meta)) {
18
+ return undefined;
19
+ }
20
+ const values = meta;
21
+ const traceparent = typeof values.traceparent === "string" ? values.traceparent : undefined;
22
+ const match = traceparent?.match(TRACEPARENT);
23
+ if (!match ||
24
+ match[1] === "ff" ||
25
+ (match[1] === "00" && match[5] !== "") ||
26
+ match[2] === "0".repeat(32) ||
27
+ match[3] === "0".repeat(16)) {
28
+ return undefined;
29
+ }
30
+ const tracestate = validTracestate(values.tracestate);
31
+ const baggage = validBaggage(values.baggage);
32
+ return {
33
+ traceparent: traceparent,
34
+ traceId: match[2],
35
+ ...(tracestate ? { tracestate } : {}),
36
+ ...(baggage ? { baggage } : {}),
37
+ };
38
+ }
39
+ export function traceHeaders() {
40
+ const context = currentTraceContext();
41
+ if (!context)
42
+ return {};
43
+ return {
44
+ traceparent: context.traceparent,
45
+ ...(context.tracestate ? { tracestate: context.tracestate } : {}),
46
+ ...(context.baggage ? { baggage: context.baggage } : {}),
47
+ };
48
+ }
49
+ function boundedHeader(value, maxLength, allowHorizontalTab = false) {
50
+ if (typeof value !== "string" || value.length > maxLength)
51
+ return undefined;
52
+ for (const character of value) {
53
+ const code = character.charCodeAt(0);
54
+ if (code > 0x7e ||
55
+ (code < 0x20 && !(allowHorizontalTab && code === 0x09))) {
56
+ return undefined;
57
+ }
58
+ }
59
+ return value;
60
+ }
61
+ function validTracestate(value) {
62
+ const header = boundedHeader(value, 512);
63
+ if (!header)
64
+ return undefined;
65
+ const members = header.split(",");
66
+ if (members.length > 32)
67
+ return undefined;
68
+ const keys = new Set();
69
+ for (const rawMember of members) {
70
+ const member = rawMember.trim();
71
+ const separator = member.indexOf("=");
72
+ if (separator <= 0)
73
+ return undefined;
74
+ const key = member.slice(0, separator);
75
+ const item = member.slice(separator + 1);
76
+ if (!/^(?:[a-z][a-z0-9_\-*/]{0,255}|[a-z0-9][a-z0-9_\-*/]{0,240}@[a-z][a-z0-9_\-*/]{0,13})$/.test(key) ||
77
+ item.length === 0 ||
78
+ item.length > 256 ||
79
+ !/^[\x20-\x2b\x2d-\x3c\x3e-\x7e]+$/.test(item) ||
80
+ item.endsWith(" ") ||
81
+ keys.has(key)) {
82
+ return undefined;
83
+ }
84
+ keys.add(key);
85
+ }
86
+ return header;
87
+ }
88
+ function validBaggage(value) {
89
+ const header = boundedHeader(value, 8_192, true);
90
+ if (!header)
91
+ return undefined;
92
+ const members = header.split(",");
93
+ if (members.length > 64)
94
+ return undefined;
95
+ for (const rawMember of members) {
96
+ const segments = rawMember.trim().split(";");
97
+ const pair = segments.shift();
98
+ const separator = pair.indexOf("=");
99
+ const pairValue = separator < 0 ? "" : pair.slice(separator + 1).trim();
100
+ if (separator <= 0 ||
101
+ !isHttpToken(pair.slice(0, separator).trim()) ||
102
+ hasInvalidBaggageCharacters(pairValue, ",")) {
103
+ return undefined;
104
+ }
105
+ for (const rawProperty of segments) {
106
+ const property = rawProperty.trim();
107
+ const propertySeparator = property.indexOf("=");
108
+ const key = propertySeparator < 0
109
+ ? property
110
+ : property.slice(0, propertySeparator).trim();
111
+ const propertyValue = propertySeparator < 0
112
+ ? ""
113
+ : property.slice(propertySeparator + 1).trim();
114
+ if (!isHttpToken(key) ||
115
+ hasInvalidBaggageCharacters(propertyValue, ";,")) {
116
+ return undefined;
117
+ }
118
+ }
119
+ }
120
+ return header;
121
+ }
122
+ function isHttpToken(value) {
123
+ return /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/.test(value);
124
+ }
125
+ function hasInvalidBaggageCharacters(value, delimiters) {
126
+ for (const character of value) {
127
+ const code = character.charCodeAt(0);
128
+ if (code <= 0x20 ||
129
+ code === 0x22 ||
130
+ code === 0x5c ||
131
+ code === 0x7f ||
132
+ delimiters.includes(character)) {
133
+ return true;
134
+ }
135
+ }
136
+ return false;
137
+ }
138
+ //# sourceMappingURL=trace-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-context.js","sourceRoot":"","sources":["../../src/observability/trace-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const ZVEC_GREP_WORKSPACE_EVIDENCE_RULES: readonly ["Use the current workspace as the evidence source when the user asks about local material, prior context establishes it as relevant, or the question concerns how the current project works—even if the workspace is not mentioned explicitly.", "A workspace may contain source code, documentation, books, research material, meeting notes, knowledge-base exports, manuals, configuration, data, or mixed content.", "Do not use workspace retrieval for unrelated open-world questions, current external facts, or web content that does not depend on local evidence."];
2
+ export declare function formatPromptRules(heading: string, rules: readonly string[]): string;
@@ -0,0 +1,9 @@
1
+ export const ZVEC_GREP_WORKSPACE_EVIDENCE_RULES = [
2
+ "Use the current workspace as the evidence source when the user asks about local material, prior context establishes it as relevant, or the question concerns how the current project works—even if the workspace is not mentioned explicitly.",
3
+ "A workspace may contain source code, documentation, books, research material, meeting notes, knowledge-base exports, manuals, configuration, data, or mixed content.",
4
+ "Do not use workspace retrieval for unrelated open-world questions, current external facts, or web content that does not depend on local evidence.",
5
+ ];
6
+ export function formatPromptRules(heading, rules) {
7
+ return [heading, ...rules.map((rule) => `- ${rule}`)].join("\n");
8
+ }
9
+ //# sourceMappingURL=zvec-grep-guidance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zvec-grep-guidance.js","sourceRoot":"","sources":["../../src/prompts/zvec-grep-guidance.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,+OAA+O;IAC/O,sKAAsK;IACtK,mJAAmJ;CAC3I,CAAC;AAEX,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,KAAwB;IAExB,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,132 @@
1
+ # Agent integrations
2
+
3
+ [Documentation](./README.md) · [Agents](./01-agents.md) ·
4
+ [CLI](./02-cli.md) · [MCP](./03-mcp.md) · [Pipeline](./04-pipeline.md) ·
5
+ [Architecture](./05-architecture.md) · [Server](./06-server.md) ·
6
+ [Embedding](./07-embedding.md) · [Roadmap](./08-roadmap.md)
7
+
8
+ `zg install` connects zvec-grep to supported agents through the local MCP
9
+ server. After that, the agent can use indexed retrieval for workspace-grounded
10
+ semantic discovery while keeping exact lookup on the appropriate native or
11
+ managed-rg route.
12
+
13
+ ## Supported agents
14
+
15
+ | Agent | Target | Managed configuration |
16
+ | --- | --- | --- |
17
+ | Codex | `codex` | `~/.codex/config.toml` and `~/.codex/AGENTS.md` |
18
+ | Claude Code | `claude` | `~/.claude.json`, `~/.claude/settings.json`, and `~/.claude/CLAUDE.md` |
19
+ | OpenCode | `opencode` | `~/.config/opencode/opencode.json` and the adjacent `AGENTS.md` |
20
+ | Cursor | `cursor` | `~/.cursor/mcp.json` |
21
+
22
+ The standard environment overrides used by each agent are respected, including
23
+ `CODEX_HOME`, `CLAUDE_CONFIG_DIR`, `OPENCODE_CONFIG`, and
24
+ `CURSOR_CONFIG_DIR`.
25
+
26
+ ## Install an integration
27
+
28
+ Run the guided installer to select from detected agents:
29
+
30
+ ```bash
31
+ zg install
32
+ ```
33
+
34
+ For scripts or repeatable setup, select targets explicitly:
35
+
36
+ ```bash
37
+ zg install --target codex --yes
38
+ zg install --target claude --target cursor --yes
39
+ zg install --target all --yes
40
+ ```
41
+
42
+ The installer:
43
+
44
+ 1. adds a managed `zvec_grep` MCP entry;
45
+ 2. adds search guidance where the agent supports it;
46
+ 3. adds local MCP tool approval for Codex and Claude Code;
47
+ 4. starts the local zvec-grep server when possible.
48
+
49
+ The [Server guide](./06-server.md) explains when the daemon is useful and how its
50
+ lifecycle differs from Direct execution.
51
+
52
+ Managed text blocks use `ZVEC_GREP_START` and `ZVEC_GREP_END` markers. Existing
53
+ content outside those blocks is preserved. If an unmanaged `zvec_grep` entry
54
+ already exists, inspect it before using `--force` to replace it.
55
+
56
+ Restart the selected agent, or open a new session, after installation.
57
+
58
+ ## How the agent searches
59
+
60
+ The agent routes in two stages: first it decides whether the answer should be
61
+ grounded in the current indexed workspace, then it chooses exact or semantic
62
+ retrieval. Code versus non-code is not the boundary; a workspace may contain
63
+ source code, documentation, books, research material, meeting notes,
64
+ knowledge-base exports, manuals, configuration, data, or mixed content.
65
+
66
+ Workspace content is the intended evidence source when the user asks to inspect,
67
+ search, or ground the answer in local files, the workspace, or its index; prior
68
+ context established local material as the intended source; or the user asks
69
+ whether relevant local material exists. Negative, incidental, or comparative
70
+ workspace mentions do not establish relevance. Tool availability or topic
71
+ overlap alone does not establish workspace relevance.
72
+
73
+ The default MCP surface gives the agent one indexed search tool and leaves exact
74
+ lexical lookup to the agent's native tools:
75
+
76
+ | Intent | Tool |
77
+ | --- | --- |
78
+ | Workspace-grounded exact words, quotations, names, dates, keys, filenames, paths, or regexes are sufficient | Native grep or rg |
79
+ | Workspace-grounded wording or location is unknown, or the answer requires semantic, fuzzy, relationship, chronology, causality, comparison, or cross-file synthesis | `zvec_grep_search` |
80
+ | Exact anchors are known but the answer requires broader context or synthesis | `zvec_grep_search`, then native grep or rg |
81
+ | The answer is unrelated open-world knowledge, a current external fact, or web content that does not depend on local evidence | The appropriate external source, not zvec-grep |
82
+
83
+ `zvec_grep_search` needs an existing index. Managed rg remains available through
84
+ `zg query --rg` and through the optional `full` MCP toolset. See the
85
+ [Pipeline guide](./04-pipeline.md) for the distinction and the
86
+ [MCP guide](./03-mcp.md) for tool inputs.
87
+
88
+ When semantic discovery is selected because no sufficient exact anchor is
89
+ available and the user asks whether conceptually related material exists
90
+ locally, the agent makes at most one focused `zvec_grep_search` probe and stops
91
+ when the results are not relevant. Exact quotations, configuration keys,
92
+ filenames, regexes, and exhaustive occurrence requests stay on the exact route.
93
+
94
+ ## Verify the setup
95
+
96
+ Check the server first:
97
+
98
+ ```bash
99
+ zg server status --check-ready
100
+ ```
101
+
102
+ Then start a new agent session and confirm that `zvec_grep_search` is available.
103
+ If the MCP connection is unavailable, the same indexed search and optional
104
+ managed-rg route remain available from the shell:
105
+
106
+ ```bash
107
+ zg query "where theme preferences are restored"
108
+ zg query --rg -F "loadTheme" src
109
+ ```
110
+
111
+ ## Permissions and remote data
112
+
113
+ The server listens on loopback and has no token by default. See
114
+ [Server authentication](./06-server.md#bearer-authentication) when a local Bearer
115
+ token is required.
116
+
117
+ MCP tool approval only authorizes calls to the local server. It does **not**
118
+ authorize sending query text or workspace content to a remote Embedding
119
+ provider. Remote Embedding asks separately on first use; see
120
+ [Embedding models](./07-embedding.md#remote-embedding-and-authorization).
121
+
122
+ ## Remove an integration
123
+
124
+ Use the same target names to remove only zvec-grep-managed entries:
125
+
126
+ ```bash
127
+ zg uninstall --target codex --yes
128
+ zg uninstall --target all --yes
129
+ ```
130
+
131
+ Restart the agent or open a new session to apply the change. Uninstalling an
132
+ agent integration does not delete repository indexes or the npm package.
package/docs/02-cli.md ADDED
@@ -0,0 +1,239 @@
1
+ # CLI guide
2
+
3
+ [Documentation](./README.md) · [Agents](./01-agents.md) ·
4
+ [CLI](./02-cli.md) · [MCP](./03-mcp.md) · [Pipeline](./04-pipeline.md) ·
5
+ [Architecture](./05-architecture.md) · [Server](./06-server.md) ·
6
+ [Embedding](./07-embedding.md) · [Roadmap](./08-roadmap.md)
7
+
8
+ The `zg` command is the human and shell interface to the same local search
9
+ layer used by agents. This page groups the main commands and options; use the
10
+ installed CLI for version-specific help:
11
+
12
+ ```bash
13
+ zg help
14
+ zg help query
15
+ zg help models
16
+ zg help file-types
17
+ zg help environment
18
+ zg <command> --help
19
+ ```
20
+
21
+ ## Command overview
22
+
23
+ | Command | Purpose |
24
+ | --- | --- |
25
+ | `query` | Search an index or run managed ripgrep |
26
+ | `index` | Build, update, rebuild, or drop a Workspace index |
27
+ | `status` | Inspect Workspace and index state |
28
+ | `install` / `uninstall` | Manage agent integrations |
29
+ | `config` | Configure provider credentials and model defaults |
30
+ | `auth` | Manage Remote Embedding authorization |
31
+ | `server` | Manage the shared MCP server |
32
+ | `help` / `version` | Show help or the installed version |
33
+
34
+ ## `zg query`
35
+
36
+ ```text
37
+ zg query <query> [options]
38
+ zg query --hybrid <query> --fts <query> --vector <query> [--fuse]
39
+ zg query --rg [rg-options] <pattern> [path...]
40
+ ```
41
+
42
+ Search routes:
43
+
44
+ | Option | Meaning |
45
+ | --- | --- |
46
+ | positional query | Hybrid lexical and vector retrieval |
47
+ | `--hybrid <query>` | Add an explicit hybrid query group |
48
+ | `--fts <query>` | Add a ranked lexical query group |
49
+ | `--vector <query>` | Add a semantic-only query group |
50
+ | `--fuse` | Combine all groups into one ranked plan |
51
+ | `--rg` | Run exhaustive managed ripgrep without an index |
52
+
53
+ Result controls:
54
+
55
+ | Option | Meaning |
56
+ | --- | --- |
57
+ | `--limit <n>` | Maximum returned items per group |
58
+ | `--human` | Terminal-oriented output with full previews by default |
59
+ | `--preview none\|short\|full` | Indexed source preview size |
60
+ | `--refresh background\|wait\|off` | Index refresh policy |
61
+ | `--mode direct\|server\|auto` | Execution transport |
62
+ | `--debug` | Print diagnostics to stderr |
63
+ | `--trace` | Add per-hit indexed search trace |
64
+ | `--prefer-symbol` | Prefer an exact indexed symbol |
65
+ | `--symbol-type <type>` | Restrict results to a symbol type |
66
+ | `--modified-after <time>` | Search files modified after a time |
67
+ | `--modified-before <time>` | Search files modified before a time |
68
+
69
+ Indexed CLI results are separated by query group and preserve the rank assigned
70
+ inside that group. The CLI does not apply the MCP response's cross-group
71
+ coverage/global-fill presentation. A result recalled by several groups appears
72
+ under each of those groups. `--limit` continues to bound each group.
73
+
74
+ Valid symbol types are `module`, `class`, `interface`, `function`, `value`, and
75
+ `alias`.
76
+
77
+ Common scope options for indexed search are `-g/--glob`, `--iglob`, `-t/--type`,
78
+ and `-T/--type-not`. Managed rg additionally supports common ripgrep matching,
79
+ context, discovery, encoding, and regex-engine flags.
80
+
81
+ Examples:
82
+
83
+ ```bash
84
+ zg query "theme preference persistence on startup"
85
+ zg query --fts "loadTheme" -g "src/**" -t ts
86
+ zg query --vector "where user preferences are restored" --limit 5
87
+ zg query --human "plugin lifecycle" --preview full
88
+ zg query --rg -i -C 2 -g "*.ts" "dark mode" src
89
+ ```
90
+
91
+ See [Retrieval pipeline](./04-pipeline.md#3-query-through-one-search-layer) for
92
+ route selection and freshness behavior.
93
+
94
+ ## `zg index`
95
+
96
+ ```text
97
+ zg index [root] [options]
98
+ zg index [root] --rebuild [options]
99
+ zg index [root] --drop [--yes]
100
+ ```
101
+
102
+ Core options:
103
+
104
+ | Option | Meaning |
105
+ | --- | --- |
106
+ | `--embedding <model>` | Model for a new or rebuilt index |
107
+ | `--rebuild` | Recreate an existing index |
108
+ | `--drop` | Permanently remove the Workspace index |
109
+ | `--yes` | Confirm `--drop` without a prompt |
110
+ | `--reset-paths` | Replace stored file-selection settings |
111
+ | `--mode direct\|server\|auto` | Execution transport |
112
+ | `--api-key <key>` | One-command provider credential |
113
+ | `--endpoint <url>` | Remote provider endpoint |
114
+ | `--model-cache <path>` | Local model cache directory |
115
+ | `--device <device>` | `auto`, `cpu`, `metal`, `vulkan`, or `cuda` |
116
+ | `--embedding-concurrency <n>` | Concurrent Embedding tasks |
117
+ | `--allow-remote` | Authorize Remote Embedding for this command |
118
+
119
+ Local Potion embedding tasks run on worker threads. They default to two workers;
120
+ `--embedding-concurrency` can override that value for larger machines.
121
+
122
+ File discovery accepts `-g/--glob`, `--iglob`, `-t/--type`, `-T/--type-not`,
123
+ `--hidden`, `--no-ignore`, `--ignore-file`, `--max-depth`, `--max-filesize`, and
124
+ `-L/--follow`.
125
+
126
+ Examples:
127
+
128
+ ```bash
129
+ zg index --embedding local/potion-code-16m-v2
130
+ zg index
131
+ zg index --rebuild --embedding local/jina-embeddings-v2-base-code
132
+ zg index --drop --yes
133
+ ```
134
+
135
+ ## `zg status`
136
+
137
+ ```text
138
+ zg status [root] [--mode direct|server|auto] [--check-ready]
139
+ ```
140
+
141
+ Status includes the selected root, index policy, stored schema and paths, file
142
+ counts, refresh state, and a suggested next action. `--check-ready` preserves
143
+ normal output and exits non-zero unless the index is ready, which is useful in
144
+ scripts.
145
+
146
+ ## `zg install` and `zg uninstall`
147
+
148
+ ```text
149
+ zg install [--target codex|claude|opencode|cursor|all|auto] [--yes] [--force]
150
+ zg uninstall [--target codex|claude|opencode|cursor|all|auto] [--yes]
151
+ ```
152
+
153
+ `--target` is repeatable. `zg install` also accepts:
154
+
155
+ | Option | Meaning |
156
+ | --- | --- |
157
+ | `--mcp-tool-timeout <seconds>` | Codex/OpenCode MCP timeout; default 600 seconds |
158
+ | `--mcp-token-env <name>` | Environment variable containing the server token |
159
+ | `--force` | Replace a conflicting unmanaged `zvec_grep` entry |
160
+
161
+ See [Agent integrations](./01-agents.md) before using `--force`.
162
+
163
+ ## `zg config`
164
+
165
+ ```text
166
+ zg config provider set <provider> --api-key <key>
167
+ zg config model set <model> [--endpoint <url> | --device <device>] [--default]
168
+ ```
169
+
170
+ Examples:
171
+
172
+ ```bash
173
+ zg config provider set qwen --api-key "$DASHSCOPE_API_KEY"
174
+ zg config model set qwen/text-embedding-v4 --default
175
+ zg config model set local/potion-code-16m-v2 --device metal
176
+ ```
177
+
178
+ Global configuration is stored in `~/.zvec-grep/config.json`. Existing indexes
179
+ continue to use their stored model until explicitly rebuilt.
180
+
181
+ ## `zg auth`
182
+
183
+ ```text
184
+ zg auth grant [root] --capability embedding --scope workspace [--embedding <model>]
185
+ zg auth status [root]
186
+ zg auth revoke [root]
187
+ ```
188
+
189
+ Workspace grants are stored under `.zvec-grep/authorization.json` and shared by
190
+ the CLI and MCP server. `--allow-remote` is the non-persistent alternative for
191
+ one `query` or `index` command. `--embedding` selects the Remote Embedding model
192
+ to authorize; it does not run embedding. It may be omitted when the model can be
193
+ resolved from the existing Workspace index, `ZVEC_GREP_EMBEDDING`, or the global
194
+ default, in that order.
195
+
196
+ ## `zg server`
197
+
198
+ ```text
199
+ zg server on [--listen 127.0.0.1:7999] [--token-file <path>] [--mcp-toolset agent|full]
200
+ zg server off [--token-file <path>]
201
+ zg server status [--check-ready]
202
+ zg server run [--listen 127.0.0.1:7999] [--token-file <path>] [--mcp-toolset agent|full]
203
+ ```
204
+
205
+ `on` starts the background daemon; `run` keeps it in the foreground. The server
206
+ only accepts loopback listen addresses. The default public endpoint is
207
+ `http://127.0.0.1:7999/mcp` with the `agent` toolset.
208
+
209
+ See [Server and execution modes](./06-server.md) for mode selection, lifecycle,
210
+ refresh, authentication, and logs. See [MCP](./03-mcp.md) for the tool contract.
211
+
212
+ ## Environment variables
213
+
214
+ | Variable | Purpose |
215
+ | --- | --- |
216
+ | `ZVEC_GREP_HOME` | Override zvec-grep state directory |
217
+ | `ZVEC_GREP_MODE` | Default `direct`, `server`, or `auto` transport |
218
+ | `ZVEC_GREP_SERVER_URL` | Override the MCP server URL used by clients |
219
+ | `ZVEC_GREP_SERVER_TOKEN` | Server/client Bearer token |
220
+ | `ZVEC_GREP_SERVER_TOKEN_FILE` | File containing the server/client token |
221
+ | `ZVEC_GREP_MCP_TOOLSET` | Default `agent` or `full` MCP surface |
222
+ | `ZVEC_GREP_EMBEDDING` | Default model for new indexes |
223
+ | `ZVEC_GREP_API_KEY` | Embedding provider API key |
224
+ | `ZVEC_GREP_ENDPOINT` | Remote Embedding endpoint |
225
+ | `ZVEC_GREP_MODEL_CACHE` | Local model cache directory |
226
+ | `ZVEC_GREP_DEVICE` | Local model device |
227
+ | `DASHSCOPE_API_KEY` | Qwen API-key fallback after `ZVEC_GREP_API_KEY` |
228
+ | `QWEN_API_KEY` | Qwen API-key fallback after `DASHSCOPE_API_KEY` |
229
+
230
+ Run `zg help environment` for advanced variables, agent integration paths,
231
+ scope, and detailed precedence. A new index selects its model in this order:
232
+ explicit `--embedding`, `ZVEC_GREP_EMBEDDING`, then the global default. Existing
233
+ indexes continue to use their stored model unless `--embedding` and `--rebuild`
234
+ explicitly change it.
235
+
236
+ Embedding runtime values such as endpoint and device retain this order: explicit
237
+ command option, Workspace snapshot, global configuration, then environment.
238
+ `zg index` forwards its `ZVEC_GREP_EMBEDDING` value in server and auto modes;
239
+ direct MCP calls use the environment inherited when the daemon started.