@zvec/zvec-grep 0.1.6 → 0.1.8

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 (161) hide show
  1. package/README.md +88 -52
  2. package/README_CN.md +85 -49
  3. package/dist/cli/args.js +40 -7
  4. package/dist/cli/args.js.map +1 -1
  5. package/dist/cli/auth.js +1 -4
  6. package/dist/cli/auth.js.map +1 -1
  7. package/dist/cli/commands.js +53 -24
  8. package/dist/cli/commands.js.map +1 -1
  9. package/dist/cli/format/context.d.ts +3 -0
  10. package/dist/cli/format/context.js +93 -22
  11. package/dist/cli/format/context.js.map +1 -1
  12. package/dist/cli/format/debug.js +10 -4
  13. package/dist/cli/format/debug.js.map +1 -1
  14. package/dist/cli/format/status.d.ts +3 -1
  15. package/dist/cli/format/status.js +34 -0
  16. package/dist/cli/format/status.js.map +1 -1
  17. package/dist/cli/help.js +149 -16
  18. package/dist/cli/help.js.map +1 -1
  19. package/dist/cli/index.d.ts +1 -1
  20. package/dist/cli/index.js +1 -1
  21. package/dist/cli/install.js +174 -56
  22. package/dist/cli/install.js.map +1 -1
  23. package/dist/cli/server-search.d.ts +3 -0
  24. package/dist/cli/server-search.js +12 -0
  25. package/dist/cli/server-search.js.map +1 -0
  26. package/dist/cli/types.d.ts +3 -0
  27. package/dist/cli/types.js.map +1 -1
  28. package/dist/client/daemon-client.d.ts +12 -0
  29. package/dist/client/daemon-client.js +23 -0
  30. package/dist/client/daemon-client.js.map +1 -1
  31. package/dist/daemon/backend.d.ts +2 -0
  32. package/dist/daemon/backend.js +121 -90
  33. package/dist/daemon/backend.js.map +1 -1
  34. package/dist/daemon/change-set.d.ts +5 -0
  35. package/dist/daemon/change-set.js +75 -13
  36. package/dist/daemon/change-set.js.map +1 -1
  37. package/dist/daemon/http-server.js +1 -0
  38. package/dist/daemon/http-server.js.map +1 -1
  39. package/dist/daemon/index-coordinator.d.ts +3 -4
  40. package/dist/daemon/index-coordinator.js +8 -21
  41. package/dist/daemon/index-coordinator.js.map +1 -1
  42. package/dist/daemon/root-runtime.js +2 -2
  43. package/dist/daemon/root-runtime.js.map +1 -1
  44. package/dist/daemon/runtime-manager.d.ts +1 -0
  45. package/dist/daemon/runtime-manager.js +4 -1
  46. package/dist/daemon/runtime-manager.js.map +1 -1
  47. package/dist/daemon/server-controller.js +138 -14
  48. package/dist/daemon/server-controller.js.map +1 -1
  49. package/dist/daemon/watch-manager.d.ts +5 -0
  50. package/dist/daemon/watch-manager.js +68 -21
  51. package/dist/daemon/watch-manager.js.map +1 -1
  52. package/dist/engine/code-formats.d.ts +3 -0
  53. package/dist/engine/code-formats.js +14 -0
  54. package/dist/engine/code-formats.js.map +1 -0
  55. package/dist/engine/extraction/code/adapter.js +1 -1
  56. package/dist/engine/extraction/code/adapter.js.map +1 -1
  57. package/dist/engine/extraction/code/extractor.d.ts +5 -0
  58. package/dist/engine/extraction/code/extractor.js +53 -26
  59. package/dist/engine/extraction/code/extractor.js.map +1 -1
  60. package/dist/engine/extraction/index.d.ts +2 -1
  61. package/dist/engine/extraction/index.js +2 -1
  62. package/dist/engine/extraction/index.js.map +1 -1
  63. package/dist/engine/extraction/markdown/extractor.js +5 -3
  64. package/dist/engine/extraction/markdown/extractor.js.map +1 -1
  65. package/dist/engine/extraction/runtime.d.ts +6 -1
  66. package/dist/engine/extraction/runtime.js +11 -0
  67. package/dist/engine/extraction/runtime.js.map +1 -1
  68. package/dist/engine/extraction/vector-content.d.ts +5 -0
  69. package/dist/engine/extraction/vector-content.js +83 -0
  70. package/dist/engine/extraction/vector-content.js.map +1 -0
  71. package/dist/engine/file-size-policy.d.ts +6 -0
  72. package/dist/engine/file-size-policy.js +20 -0
  73. package/dist/engine/file-size-policy.js.map +1 -0
  74. package/dist/engine/file-type.d.ts +10 -0
  75. package/dist/engine/file-type.js +71 -38
  76. package/dist/engine/file-type.js.map +1 -1
  77. package/dist/engine/manifest.d.ts +1 -0
  78. package/dist/engine/manifest.js +4 -0
  79. package/dist/engine/manifest.js.map +1 -1
  80. package/dist/engine/models/backends/model2vec-runtime.d.ts +63 -0
  81. package/dist/engine/models/backends/model2vec-runtime.js +112 -0
  82. package/dist/engine/models/backends/model2vec-runtime.js.map +1 -0
  83. package/dist/engine/models/backends/model2vec-tokenizer.d.ts +2 -0
  84. package/dist/engine/models/backends/model2vec-tokenizer.js +42 -0
  85. package/dist/engine/models/backends/model2vec-tokenizer.js.map +1 -0
  86. package/dist/engine/models/backends/model2vec-worker-pool.d.ts +25 -0
  87. package/dist/engine/models/backends/model2vec-worker-pool.js +264 -0
  88. package/dist/engine/models/backends/model2vec-worker-pool.js.map +1 -0
  89. package/dist/engine/models/backends/model2vec-worker.d.ts +1 -0
  90. package/dist/engine/models/backends/model2vec-worker.js +41 -0
  91. package/dist/engine/models/backends/model2vec-worker.js.map +1 -0
  92. package/dist/engine/models/backends/model2vec.d.ts +3 -20
  93. package/dist/engine/models/backends/model2vec.js +107 -128
  94. package/dist/engine/models/backends/model2vec.js.map +1 -1
  95. package/dist/engine/models/catalog.d.ts +26 -7
  96. package/dist/engine/models/catalog.js +26 -7
  97. package/dist/engine/models/catalog.js.map +1 -1
  98. package/dist/engine/models/embeddings.d.ts +1 -0
  99. package/dist/engine/models/embeddings.js.map +1 -1
  100. package/dist/engine/models/resolution.js +1 -1
  101. package/dist/engine/models/resolution.js.map +1 -1
  102. package/dist/engine/pipeline/indexing/index.js +102 -78
  103. package/dist/engine/pipeline/indexing/index.js.map +1 -1
  104. package/dist/engine/pipeline/indexing/input-budget.d.ts +2 -0
  105. package/dist/engine/pipeline/indexing/input-budget.js +51 -0
  106. package/dist/engine/pipeline/indexing/input-budget.js.map +1 -0
  107. package/dist/engine/pipeline/indexing/scanner/index.d.ts +5 -1
  108. package/dist/engine/pipeline/indexing/scanner/index.js +129 -20
  109. package/dist/engine/pipeline/indexing/scanner/index.js.map +1 -1
  110. package/dist/engine/pipeline/search/index.js.map +1 -1
  111. package/dist/engine/service/index.d.ts +1 -1
  112. package/dist/engine/service/root.d.ts +1 -4
  113. package/dist/engine/service/root.js +15 -22
  114. package/dist/engine/service/root.js.map +1 -1
  115. package/dist/engine/service/structure-enrichment.d.ts +1 -1
  116. package/dist/engine/service/structure-enrichment.js +10 -10
  117. package/dist/engine/service/structure-enrichment.js.map +1 -1
  118. package/dist/engine/service/types.d.ts +8 -1
  119. package/dist/engine/service/workspace-index.d.ts +6 -4
  120. package/dist/engine/service/workspace-index.js +18 -12
  121. package/dist/engine/service/workspace-index.js.map +1 -1
  122. package/dist/engine/service/zvec-grep.js +47 -29
  123. package/dist/engine/service/zvec-grep.js.map +1 -1
  124. package/dist/engine/storage/index.d.ts +28 -21
  125. package/dist/engine/storage/index.js +2 -1
  126. package/dist/engine/storage/index.js.map +1 -1
  127. package/dist/engine/storage/layout.d.ts +10 -0
  128. package/dist/engine/storage/layout.js +29 -0
  129. package/dist/engine/storage/layout.js.map +1 -0
  130. package/dist/engine/storage/zvec.d.ts +2 -42
  131. package/dist/engine/storage/zvec.js +62 -71
  132. package/dist/engine/storage/zvec.js.map +1 -1
  133. package/dist/engine/types.d.ts +14 -0
  134. package/dist/engine/types.js.map +1 -1
  135. package/dist/index.d.ts +2 -2
  136. package/dist/index.js.map +1 -1
  137. package/dist/mcp/input-normalization.d.ts +2 -2
  138. package/dist/mcp/input-normalization.js +14 -5
  139. package/dist/mcp/input-normalization.js.map +1 -1
  140. package/dist/mcp/schemas.d.ts +242 -0
  141. package/dist/mcp/schemas.js +73 -14
  142. package/dist/mcp/schemas.js.map +1 -1
  143. package/dist/mcp/stdio-bridge.d.ts +11 -0
  144. package/dist/mcp/stdio-bridge.js +134 -0
  145. package/dist/mcp/stdio-bridge.js.map +1 -0
  146. package/dist/mcp/tools.d.ts +4 -1
  147. package/dist/mcp/tools.js +78 -44
  148. package/dist/mcp/tools.js.map +1 -1
  149. package/dist/prompts/zvec-grep-guidance.d.ts +2 -0
  150. package/dist/prompts/zvec-grep-guidance.js +9 -0
  151. package/dist/prompts/zvec-grep-guidance.js.map +1 -0
  152. package/docs/01-agents.md +26 -5
  153. package/docs/02-cli.md +11 -1
  154. package/docs/03-mcp.md +29 -11
  155. package/docs/04-pipeline.md +10 -2
  156. package/docs/06-server.md +9 -0
  157. package/docs/07-embedding.md +6 -3
  158. package/package.json +5 -4
  159. package/skills/zvec-grep/SKILL.md +0 -61
  160. package/skills/zvec-grep/agents/openai.yaml +0 -4
  161. package/skills/zvec-grep/references/cli-fallback.md +0 -85
@@ -0,0 +1,134 @@
1
+ import { Client, StreamableHTTPClientTransport, } from "@modelcontextprotocol/client";
2
+ import { ResultSchema } from "@modelcontextprotocol/core";
3
+ import { Server } from "@modelcontextprotocol/server";
4
+ import { StdioServerTransport } from "@modelcontextprotocol/server/stdio";
5
+ import { resolveClientToken } from "../daemon/config.js";
6
+ import { serverStatus, startServer, } from "../daemon/server-controller.js";
7
+ import { LONG_RUNNING_MCP_TIMEOUT_MS } from "./progress-heartbeat.js";
8
+ export async function runStdioBootstrapBridge(options) {
9
+ const status = await startServer({
10
+ cliPath: options.cliPath,
11
+ home: options.home,
12
+ tokenFile: options.tokenFile,
13
+ listen: options.listen,
14
+ mcpToolset: options.mcpToolset,
15
+ });
16
+ if (!status.serverUrl) {
17
+ throw new Error("zvec-grep server became ready without an MCP URL");
18
+ }
19
+ const downstreamHolder = {};
20
+ let closed = false;
21
+ let resolveClosed;
22
+ const closedPromise = new Promise((resolve) => {
23
+ resolveClosed = resolve;
24
+ });
25
+ const finish = () => {
26
+ if (closed)
27
+ return;
28
+ closed = true;
29
+ resolveClosed();
30
+ };
31
+ const upstream = new Client({ name: "zvec-grep-stdio-bridge", version: options.version }, {
32
+ capabilities: {
33
+ elicitation: { form: {}, url: {} },
34
+ roots: { listChanged: true },
35
+ sampling: {},
36
+ },
37
+ versionNegotiation: { mode: { pin: "2026-07-28" } },
38
+ });
39
+ upstream.fallbackRequestHandler = async (request, context) => {
40
+ if (!downstreamHolder.server) {
41
+ throw new Error("stdio MCP client is not connected");
42
+ }
43
+ return forwardRequest(downstreamHolder.server, request, context.mcpReq.signal, context.mcpReq._meta);
44
+ };
45
+ upstream.fallbackNotificationHandler = async (notification) => {
46
+ await downstreamHolder.server?.notification(notification);
47
+ };
48
+ upstream.onerror = (error) => console.error(error.message);
49
+ upstream.onclose = finish;
50
+ const token = await resolveClientToken({
51
+ home: options.home,
52
+ tokenFile: options.tokenFile,
53
+ });
54
+ const upstreamTransport = new StreamableHTTPClientTransport(new URL(status.serverUrl), {
55
+ requestInit: {
56
+ headers: token ? { Authorization: `Bearer ${token}` } : {},
57
+ },
58
+ });
59
+ await upstream.connect(upstreamTransport);
60
+ const downstream = new Server(upstream.getServerVersion() ?? {
61
+ name: "zvec-grep",
62
+ version: options.version,
63
+ }, {
64
+ capabilities: upstream.getServerCapabilities() ?? {},
65
+ instructions: upstream.getInstructions(),
66
+ });
67
+ downstream.fallbackRequestHandler = async (request, context) => forwardRequest(upstream, request, context.mcpReq.signal, context.mcpReq._meta, context.mcpReq.notify);
68
+ downstream.fallbackNotificationHandler = async (notification) => {
69
+ await upstream.notification(notification);
70
+ };
71
+ downstreamHolder.server = downstream;
72
+ downstream.onerror = (error) => console.error(error.message);
73
+ downstream.onclose = finish;
74
+ const downstreamTransport = new StdioServerTransport();
75
+ let monitorRunning = false;
76
+ let daemonFailure;
77
+ const monitor = setInterval(() => {
78
+ if (closed || monitorRunning)
79
+ return;
80
+ monitorRunning = true;
81
+ void serverStatus(options.home)
82
+ .then(async (current) => {
83
+ if (!shouldStopStdioBridge(status, current)) {
84
+ return;
85
+ }
86
+ daemonFailure = new Error("zvec-grep daemon stopped while the stdio bridge was connected");
87
+ finish();
88
+ await downstream.close().catch(() => undefined);
89
+ })
90
+ .finally(() => {
91
+ monitorRunning = false;
92
+ });
93
+ }, 2_000);
94
+ monitor.unref?.();
95
+ try {
96
+ await downstream.connect(downstreamTransport);
97
+ await closedPromise;
98
+ }
99
+ finally {
100
+ clearInterval(monitor);
101
+ await Promise.allSettled([upstream.close(), downstream.close()]);
102
+ }
103
+ if (daemonFailure)
104
+ throw daemonFailure;
105
+ }
106
+ export function shouldStopStdioBridge(connected, current) {
107
+ return (!current.running ||
108
+ current.pid !== connected.pid ||
109
+ current.serverUrl !== connected.serverUrl);
110
+ }
111
+ async function forwardRequest(peer, request, signal, meta, notify) {
112
+ const progressToken = meta?.progressToken;
113
+ const forwardedRequest = meta
114
+ ? {
115
+ ...request,
116
+ params: {
117
+ ...(request.params ?? {}),
118
+ _meta: meta,
119
+ },
120
+ }
121
+ : request;
122
+ return peer.request(forwardedRequest, ResultSchema, {
123
+ signal,
124
+ timeout: LONG_RUNNING_MCP_TIMEOUT_MS,
125
+ resetTimeoutOnProgress: true,
126
+ onprogress: progressToken === undefined || !notify
127
+ ? undefined
128
+ : (progress) => notify({
129
+ method: "notifications/progress",
130
+ params: { ...progress, progressToken },
131
+ }),
132
+ });
133
+ }
134
+ //# sourceMappingURL=stdio-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio-bridge.js","sourceRoot":"","sources":["../../src/mcp/stdio-bridge.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { McpServer, type RequestStateCodec } from "@modelcontextprotocol/server";
2
- import type { IndexProgress, ZvecGrepContextResult } from "../index.js";
2
+ import type { FileScanDiagnostics, IndexProgress, ZvecGrepContextResult } from "../index.js";
3
3
  import { type NormalizedSearchInput } from "./input-normalization.js";
4
4
  import { type ZvecGrepIndexRequest, type ZvecGrepIndexDropInput, type ZvecGrepIndexStatusInput, type ZvecGrepRgInput, type ZvecGrepSearchIndexing } from "./schemas.js";
5
5
  import type { RemoteEmbeddingAuthorizationPlan, RemoteEmbeddingAuthorizationScope, RemoteEmbeddingOperationPermit } from "../authorization/types.js";
@@ -17,6 +17,7 @@ export type ZvecGrepIndexResult = {
17
17
  code: string;
18
18
  message: string;
19
19
  };
20
+ scanDiagnostics?: FileScanDiagnostics;
20
21
  };
21
22
  export type ZvecGrepIndexDropResult = {
22
23
  root: string;
@@ -142,6 +143,8 @@ export declare const ZVEC_GREP_FULL_MCP_INSTRUCTIONS: string;
142
143
  export declare const ZVEC_GREP_MCP_INSTRUCTIONS: string;
143
144
  export type ZvecGrepMcpServerOptions = {
144
145
  acceptEmbeddingEnvironmentMeta?: boolean;
146
+ /** Internal CLI transport only; public MCP search remains compact text. */
147
+ includeSearchStructuredContent?: boolean;
145
148
  requestStateCodec?: RequestStateCodec<RemoteEmbeddingRequestState>;
146
149
  requestStateReplayGuard?: RemoteEmbeddingRequestStateReplayGuard;
147
150
  toolset?: McpToolset;
package/dist/mcp/tools.js CHANGED
@@ -4,48 +4,53 @@ import { z } from "zod";
4
4
  import { formatAgentContextResult } from "../cli/format/context.js";
5
5
  import { formatRemoteEmbeddingAuthorizationPrompt, remoteEmbeddingDisclosureData, } from "../authorization/prompt.js";
6
6
  import { normalizeSearchInput, } from "./input-normalization.js";
7
- import { zvecGrepIndexInputSchema, zvecGrepIndexOutputSchema, zvecGrepIndexDropInputSchema, zvecGrepIndexDropOutputSchema, zvecGrepIndexStatusInputSchema, zvecGrepIndexStatusOutputSchema, zvecGrepRgInputSchema, zvecGrepSearchInputSchema, zvecGrepServerStatusInputSchema, zvecGrepServerStatusOutputSchema, } from "./schemas.js";
7
+ import { zvecGrepIndexInputSchema, zvecGrepIndexOutputSchema, zvecGrepIndexDropInputSchema, zvecGrepIndexDropOutputSchema, zvecGrepIndexStatusInputSchema, zvecGrepIndexStatusOutputSchema, zvecGrepRgInputSchema, zvecGrepCliSearchInputSchema, zvecGrepSearchInputSchema, zvecGrepSearchOutputSchema, zvecGrepServerStatusInputSchema, zvecGrepServerStatusOutputSchema, } from "./schemas.js";
8
8
  import { embeddingEnvironmentFromRequestMeta } from "./request-metadata.js";
9
9
  import { textToolResult, toolResult } from "./result-format.js";
10
10
  import { indexProgressMessage } from "../index-progress.js";
11
11
  import { DEFAULT_MCP_TOOLSET } from "./toolset.js";
12
12
  import { createRemoteEmbeddingRequestStateCodec, InMemoryRemoteEmbeddingRequestStateReplayGuard, matchesRemoteEmbeddingRequestState, remoteEmbeddingRequestState, } from "./request-state.js";
13
13
  import { runWithTraceContext, traceContextFromMcpMeta, } from "../observability/trace-context.js";
14
- const ZVEC_GREP_AGENT_SEARCH_MCP_INSTRUCTIONS = [
15
- "Choose the initial search tool by the scope of the requested answer, not merely by whether the question contains an identifier.",
16
- "Use native Grep or rg first when the answer can be obtained by locating a specific definition, reference, filename, configuration key, error message, literal, source fragment, or regex.",
17
- "Use zvec_grep_search first when the answer requires architecture, lifecycle, system design, conceptual discovery, data or control flow, comparison across implementations, design rationale, or performance analysis.",
18
- "When exact symbols are present but the answer spans multiple components, files, stages, or implementations, treat it as a mixed task: use zvec_grep_search with the concept and known symbols, then use native Grep or rg for focused follow-up.",
19
- "Before using broad file reads or a sub-agent for conceptual repository discovery, make at least one appropriate zvec_grep_search call.",
20
- "Do not launch a sub-agent solely to locate code. Stop discovery when the evidence covers all components requested by the question.",
21
- ];
22
- const ZVEC_GREP_FULL_SEARCH_MCP_INSTRUCTIONS = [
23
- "Choose the initial search tool by the scope of the requested answer, not merely by whether the question contains an identifier.",
24
- "Use zvec_grep_rg first only when the answer can be obtained by locating a specific definition, reference, filename, configuration key, error message, literal, source fragment, or regex.",
25
- "Use zvec_grep_search first when the answer requires architecture, lifecycle, system design, conceptual discovery, data or control flow, comparison across implementations, design rationale, or performance analysis.",
26
- "When exact symbols are present but the answer spans multiple components, files, stages, or implementations, treat it as a mixed task: search using the concept and known symbols, then use zvec_grep_rg for focused follow-up.",
27
- "Before using native Grep, Glob, shell rg, broad file reads, or a sub-agent for repository discovery, make at least one appropriate zvec-grep call.",
28
- "Do not launch a sub-agent solely to locate code. Stop discovery when the evidence covers all components requested by the question.",
29
- ];
30
- export const ZVEC_GREP_AGENT_MCP_INSTRUCTIONS = [
14
+ import { formatPromptRules, ZVEC_GREP_WORKSPACE_EVIDENCE_RULES, } from "../prompts/zvec-grep-guidance.js";
15
+ function searchRoutingRules(exactTool, focusedTools) {
16
+ return [
17
+ `Use ${exactTool} first only when exact lookup alone is sufficient, such as locating one definition, literal, filename, configuration key, error message, regex match, or exhaustive occurrence list.`,
18
+ "Use zvec_grep_search first when wording or location is unknown, or when the answer requires architecture, lifecycle, call relationships, dependencies, data or control flow, design rationale, comparison, or synthesis across files or components.",
19
+ `When user-provided or verified exact symbols are present but the answer spans multiple files, components, stages, implementations, or relationships, treat the task as mixed: call zvec_grep_search with the semantic intent and those anchors, then use ${focusedTools} for focused verification.`,
20
+ "For a semantic or mixed workspace task, start discovery with focused zvec_grep_search before broad file discovery.",
21
+ "Preserve the question's concepts, relationships, and constraints from the user request and established context in semantic queries. Treat inferred names as supplemental hypotheses, not replacements for or constraints on the stated intent.",
22
+ "`query` creates one primary hybrid FTS-plus-vector group; `queries` creates one or more primary hybrid groups; `fts` and `vector` add supplemental lexical-only or semantic-only route groups. These are retrieval routes, not hard constraints. Without `fuse`, the response is one deduplicated and reranked list with query-group metadata; set `fuse: true` to collapse every group into one ranked search plan.",
23
+ 'For a fused mixed search, use arguments such as {"root":"/absolute/workspace","query":"how are results ranked and fused","fts":["RRF","score"],"fuse":true}.',
24
+ "Search results include bounded source snippets. Treat a sufficient snippet as already-read evidence, and open only the cited file or range when a required detail falls outside it.",
25
+ "Evidence is sufficient when it matches the requested answer shape and resolves material ambiguity. A chain, flow, or lifecycle requires the relevant path and material transitions, not an isolated match. When a task requires one target and several candidates plausibly fit, compare them; if they remain indistinguishable, state the ambiguity.",
26
+ `Use the smallest focused follow-up needed to fill a material coverage gap or distinguish plausible candidates: refine zvec_grep_search, or verify with ${focusedTools}. If semantic retrieval remains irrelevant, fall back to ${exactTool}. Stop once the requested scope is supported; do not continue merely to reconfirm or broaden it.`,
27
+ "Do not launch a sub-agent solely to locate workspace material.",
28
+ ];
29
+ }
30
+ const ZVEC_GREP_AGENT_SEARCH_MCP_INSTRUCTIONS = searchRoutingRules("native Grep or rg", "Read, Grep, or rg");
31
+ const ZVEC_GREP_FULL_SEARCH_MCP_INSTRUCTIONS = searchRoutingRules("zvec_grep_rg", "Read or zvec_grep_rg");
32
+ const ZVEC_GREP_SEARCH_TOOL_DESCRIPTION = "Search an existing workspace index for semantic, relational, cross-file, or multi-hop evidence such as architecture, call chains, dependencies, lifecycle, data or control flow, design rationale, and comparisons. Use it when exact lookup alone cannot answer a workspace-grounded question. Results include bounded source snippets and query-group metadata; treat sufficient snippets as already-read evidence.";
33
+ export const ZVEC_GREP_AGENT_MCP_INSTRUCTIONS = formatPromptRules("Use zvec-grep with these workspace retrieval rules:", [
34
+ ...ZVEC_GREP_WORKSPACE_EVIDENCE_RULES,
31
35
  ...ZVEC_GREP_AGENT_SEARCH_MCP_INSTRUCTIONS,
32
- "Every repository operation requires an absolute root path visible to the daemon.",
33
- "Read freshness and indexing directly from zvec_grep_search responses without a status preflight.",
34
- "Use possibly_stale search results immediately when they are sufficient; do not perform extra diagnostics merely because a background update is active.",
35
- "When an index is missing and literal or regex search can answer the task, use native Grep or rg.",
36
- ].join(" ");
37
- export const ZVEC_GREP_FULL_MCP_INSTRUCTIONS = [
36
+ "Every workspace operation requires an absolute root path visible to the daemon.",
37
+ "Read freshness and background_refresh directly from zvec_grep_search responses without a status preflight.",
38
+ "When results are served_from_current_index, use them immediately when they are sufficient; do not perform extra diagnostics merely because a background refresh is active.",
39
+ "When an index is missing and literal or regex search can answer the task, use native Grep or rg. Creating or rebuilding a persistent index requires explicit user authorization.",
40
+ ]);
41
+ export const ZVEC_GREP_FULL_MCP_INSTRUCTIONS = formatPromptRules("Use zvec-grep with these workspace retrieval and lifecycle rules:", [
42
+ ...ZVEC_GREP_WORKSPACE_EVIDENCE_RULES,
38
43
  ...ZVEC_GREP_FULL_SEARCH_MCP_INSTRUCTIONS,
39
- "Every repository operation requires an absolute root path visible to the daemon.",
40
- "Use the zvec_grep_* tools directly for repository search, status, indexing, deletion, and exhaustive lexical search.",
41
- "Use freshness and indexing from zvec_grep_search without a status preflight; call zvec_grep_index_status only for a missing index, failed or cancelled indexing, diagnostics, or explicit progress monitoring.",
42
- "Use possibly_stale search results immediately when they are sufficient; do not call status merely because a background update is active.",
44
+ "Every workspace operation requires an absolute root path visible to the daemon.",
45
+ "Use the zvec_grep_* tools directly for workspace search, status, indexing, deletion, and exhaustive lexical search.",
46
+ "Use freshness and background_refresh from zvec_grep_search without a status preflight; call zvec_grep_index_status only for a missing index, failed or cancelled indexing, diagnostics, or explicit progress monitoring.",
47
+ "When results are served_from_current_index, use them immediately when they are sufficient; do not call status merely because a background refresh is active.",
43
48
  "Call zvec_grep_index only when persistent indexing or index deletion is explicitly requested. Never silently create, rebuild, or drop an index.",
44
49
  "For a new index, use a user-selected embedding or omit it only when a server default model is known; never guess a model.",
45
50
  "zvec_grep_index wait defaults to false; poll zvec_grep_index_status for background progress and set wait to true only when completion is required before continuing.",
46
51
  "Use zvec_grep_index with drop: true, or zvec_grep_index_drop, only when index deletion is explicitly requested.",
47
52
  "Call zvec_grep_server_status only for daemon diagnostics, not before ordinary searches.",
48
- ].join(" ");
53
+ ]);
49
54
  export const ZVEC_GREP_MCP_INSTRUCTIONS = ZVEC_GREP_AGENT_MCP_INSTRUCTIONS;
50
55
  export function createZvecGrepMcpServer(backend, version, options = {}) {
51
56
  const toolset = options.toolset ?? DEFAULT_MCP_TOOLSET;
@@ -77,13 +82,13 @@ export function registerZvecGrepTools(server, backend, options = {}) {
77
82
  if (full) {
78
83
  server.registerTool("zvec_grep_index", {
79
84
  title: "Ensure or drop zvec-grep index",
80
- description: "Activate an absolute repository root to create, incrementally update, rebuild, or explicitly drop its index. Do not call this tool to create, rebuild, or drop an index unless the user requested persistent indexing or index deletion.",
85
+ description: "Activate an absolute workspace root to create, incrementally update, rebuild, or explicitly drop its index. Do not call this tool to create, rebuild, or drop an index unless the user requested persistent indexing or index deletion.",
81
86
  inputSchema: zvecGrepIndexInputSchema,
82
87
  outputSchema: zvecGrepIndexOutputSchema,
83
88
  annotations: {
84
89
  readOnlyHint: false,
85
90
  destructiveHint: true,
86
- idempotentHint: true,
91
+ idempotentHint: false,
87
92
  openWorldHint: true,
88
93
  },
89
94
  }, async (input, ctx) => await runWithTraceContext(traceContextFromMcpMeta(ctx.mcpReq._meta), async () => {
@@ -118,6 +123,7 @@ export function registerZvecGrepTools(server, backend, options = {}) {
118
123
  action: result.action,
119
124
  dropped: result.dropped,
120
125
  error: result.error,
126
+ scan_diagnostics: result.scanDiagnostics,
121
127
  };
122
128
  return toolResult([
123
129
  `root: ${result.root}`,
@@ -134,20 +140,28 @@ export function registerZvecGrepTools(server, backend, options = {}) {
134
140
  `error_message: ${result.error.message}`,
135
141
  ]
136
142
  : []),
143
+ ...(result.scanDiagnostics
144
+ ? [`skipped_files: ${result.scanDiagnostics.skippedFiles}`]
145
+ : []),
137
146
  ].join("\n"), structuredContent);
138
147
  }));
139
148
  }
140
149
  server.registerTool("zvec_grep_search", {
141
150
  title: "Search with zvec-grep",
142
151
  description: full
143
- ? "Search an existing repository index when the answer requires architecture, lifecycle, system design, conceptual discovery, data or control flow, comparison across implementations, design rationale, or performance analysis. Use search for mixed tasks whose question names exact symbols but whose answer spans multiple components, files, stages, or implementations; use managed ripgrep for focused follow-up. Read freshness and indexing from the response; use zvec_grep_index_status only for missing indexes, failed or cancelled indexing, diagnostics, or explicit progress monitoring."
144
- : "Search an existing repository index when the answer requires architecture, lifecycle, system design, conceptual discovery, data or control flow, comparison across implementations, design rationale, or performance analysis. Use search for mixed tasks whose question names exact symbols but whose answer spans multiple components, files, stages, or implementations; use native Grep or rg for focused follow-up. Read freshness and indexing directly from the response without a status preflight. When an index is unavailable, use the returned diagnostics and native Grep or rg for exact fallback.",
145
- inputSchema: zvecGrepSearchInputSchema,
152
+ ? `${ZVEC_GREP_SEARCH_TOOL_DESCRIPTION} Use zvec_grep_rg instead when exact lookup alone is sufficient. Read freshness and background_refresh from the response; when results are served_from_current_index, use them if sufficient.`
153
+ : `${ZVEC_GREP_SEARCH_TOOL_DESCRIPTION} Use native Grep or rg instead when exact lookup alone is sufficient. Read freshness and background_refresh from the response without a status preflight; when results are served_from_current_index, use them if sufficient.`,
154
+ inputSchema: options.includeSearchStructuredContent
155
+ ? zvecGrepCliSearchInputSchema
156
+ : zvecGrepSearchInputSchema,
157
+ ...(options.includeSearchStructuredContent
158
+ ? { outputSchema: zvecGrepSearchOutputSchema }
159
+ : {}),
146
160
  annotations: {
147
161
  readOnlyHint: false,
148
162
  destructiveHint: false,
149
163
  idempotentHint: false,
150
- openWorldHint: false,
164
+ openWorldHint: true,
151
165
  },
152
166
  }, async (input, ctx) => await runWithTraceContext(traceContextFromMcpMeta(ctx.mcpReq._meta), async () => {
153
167
  const normalized = normalizeSearchInput(input);
@@ -166,21 +180,41 @@ export function registerZvecGrepTools(server, backend, options = {}) {
166
180
  const statusLines = [
167
181
  `freshness: ${response.freshness}`,
168
182
  ...(response.indexing
169
- ? [`indexing: ${formatSearchIndexing(response.indexing)}`]
183
+ ? [
184
+ "results: served_from_current_index",
185
+ `background_refresh: ${formatSearchIndexing(response.indexing)}`,
186
+ ]
170
187
  : []),
171
188
  ];
172
189
  // Mirror the compact rg output: return agent-formatted text only and drop
173
190
  // the verbose structuredContent (per-item outline + full source), which
174
191
  // otherwise dominates the agent's context. `short` keeps a bounded source
175
192
  // snippet per hit so relevance is judgeable without extra file reads.
176
- return textToolResult(`${statusLines.join("\n")}\n${formatAgentContextResult(response.result, {
193
+ const text = `${statusLines.join("\n")}\n${formatAgentContextResult(response.result, {
177
194
  preview: "short",
178
- })}`);
195
+ })}`;
196
+ return options.includeSearchStructuredContent
197
+ ? toolResult(text, {
198
+ root: response.root,
199
+ freshness: response.freshness,
200
+ indexing: response.indexing,
201
+ // The CLI renders per-group recall and does not consume the
202
+ // cross-group list. Avoid serializing every full item twice.
203
+ result: {
204
+ ...response.result,
205
+ items: [],
206
+ groupResults: response.result.groupResults?.map((group) => ({
207
+ ...group,
208
+ items: group.items.map(({ queryGroups: _queryGroups, selectionReason: _selectionReason, coverageGroup: _coverageGroup, ...item }) => item),
209
+ })),
210
+ },
211
+ })
212
+ : textToolResult(text);
179
213
  }));
180
214
  if (full) {
181
215
  server.registerTool("zvec_grep_index_drop", {
182
- title: "Drop zvec-grep Workspace index",
183
- description: "Delete the persisted index for an absolute Workspace root and release its daemon runtime.",
216
+ title: "Drop zvec-grep workspace index",
217
+ description: "Delete the persisted index for an absolute workspace root and release its daemon runtime.",
184
218
  inputSchema: zvecGrepIndexDropInputSchema,
185
219
  outputSchema: zvecGrepIndexDropOutputSchema,
186
220
  annotations: {
@@ -196,20 +230,20 @@ export function registerZvecGrepTools(server, backend, options = {}) {
196
230
  removed: result.removed,
197
231
  };
198
232
  return toolResult(result.removed
199
- ? `Dropped Workspace index for ${result.root}`
200
- : `No Workspace index found for ${result.root}`, structuredContent);
233
+ ? `Dropped workspace index for ${result.root}`
234
+ : `No workspace index found for ${result.root}`, structuredContent);
201
235
  });
202
236
  }
203
237
  if (full) {
204
238
  server.registerTool("zvec_grep_rg", {
205
239
  title: "Search with managed ripgrep",
206
- description: "Run exhaustive, AST-enriched managed ripgrep locally without requiring an index. Use it first only when the answer can be obtained by locating a specific definition, reference, filename, configuration key, error message, literal, source fragment, or regex. Pass the rg command you would otherwise run. Results are exhaustive by default; append `| head -N` only when you intentionally want a bounded result set. Scope broad matches with command paths, `-g`/`--glob`, or `-t`/`--type` filters.",
240
+ description: "Run exhaustive, AST-enriched ripgrep across code or non-code workspace material without an index. Use it when a known word, symbol, filename, source fragment, or regex can answer the workspace-grounded question. Pass a command starting with `rg`; results are exhaustive unless a trailing `| head -N` explicitly bounds them.",
207
241
  inputSchema: zvecGrepRgInputSchema,
208
242
  annotations: {
209
243
  readOnlyHint: true,
210
244
  destructiveHint: false,
211
245
  idempotentHint: true,
212
- openWorldHint: true,
246
+ openWorldHint: false,
213
247
  },
214
248
  }, async (input) => {
215
249
  const response = await backend.rg(input);
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.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"}
package/docs/01-agents.md CHANGED
@@ -6,8 +6,9 @@
6
6
  [Embedding](./07-embedding.md) · [Roadmap](./08-roadmap.md)
7
7
 
8
8
  `zg install` connects zvec-grep to supported agents through the local MCP
9
- server. After that, the agent can use zg for conceptual discovery and exact
10
- search without switching between unrelated search tools.
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.
11
12
 
12
13
  ## Supported agents
13
14
 
@@ -56,20 +57,40 @@ Restart the selected agent, or open a new session, after installation.
56
57
 
57
58
  ## How the agent searches
58
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
+
59
73
  The default MCP surface gives the agent one indexed search tool and leaves exact
60
74
  lexical lookup to the agent's native tools:
61
75
 
62
76
  | Intent | Tool |
63
77
  | --- | --- |
64
- | Locating known words, symbols, filenames, paths, or regexes is sufficient | Native grep or rg |
65
- | The answer requires conceptual discovery, architecture, lifecycle, or cross-component flow | `zvec_grep_search` |
66
- | Exact symbols are known but the answer spans components, files, or stages | `zvec_grep_search`, then native grep or rg |
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 |
67
82
 
68
83
  `zvec_grep_search` needs an existing index. Managed rg remains available through
69
84
  `zg query --rg` and through the optional `full` MCP toolset. See the
70
85
  [Pipeline guide](./04-pipeline.md) for the distinction and the
71
86
  [MCP guide](./03-mcp.md) for tool inputs.
72
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
+
73
94
  ## Verify the setup
74
95
 
75
96
  Check the server first:
package/docs/02-cli.md CHANGED
@@ -12,6 +12,8 @@ installed CLI for version-specific help:
12
12
  ```bash
13
13
  zg help
14
14
  zg help query
15
+ zg help models
16
+ zg help file-types
15
17
  zg help environment
16
18
  zg <command> --help
17
19
  ```
@@ -64,6 +66,11 @@ Result controls:
64
66
  | `--modified-after <time>` | Search files modified after a time |
65
67
  | `--modified-before <time>` | Search files modified before a time |
66
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
+
67
74
  Valid symbol types are `module`, `class`, `interface`, `function`, `value`, and
68
75
  `alias`.
69
76
 
@@ -109,6 +116,9 @@ Core options:
109
116
  | `--embedding-concurrency <n>` | Concurrent Embedding tasks |
110
117
  | `--allow-remote` | Authorize Remote Embedding for this command |
111
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
+
112
122
  File discovery accepts `-g/--glob`, `--iglob`, `-t/--type`, `-T/--type-not`,
113
123
  `--hidden`, `--no-ignore`, `--ignore-file`, `--max-depth`, `--max-filesize`, and
114
124
  `-L/--follow`.
@@ -162,7 +172,7 @@ Examples:
162
172
  ```bash
163
173
  zg config provider set qwen --api-key "$DASHSCOPE_API_KEY"
164
174
  zg config model set qwen/text-embedding-v4 --default
165
- zg config model set local/embeddinggemma-300m --device metal
175
+ zg config model set local/potion-code-16m-v2 --device metal
166
176
  ```
167
177
 
168
178
  Global configuration is stored in `~/.zvec-grep/config.json`. Existing indexes