@angri450/zvec-grep 0.2.2
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.
- package/LICENSE +201 -0
- package/README.md +319 -0
- package/README_CN.md +297 -0
- package/dist/authorization/index.d.ts +7 -0
- package/dist/authorization/index.js +7 -0
- package/dist/authorization/index.js.map +1 -0
- package/dist/authorization/manager.d.ts +8 -0
- package/dist/authorization/manager.js +19 -0
- package/dist/authorization/manager.js.map +1 -0
- package/dist/authorization/operation.d.ts +7 -0
- package/dist/authorization/operation.js +50 -0
- package/dist/authorization/operation.js.map +1 -0
- package/dist/authorization/planner.d.ts +21 -0
- package/dist/authorization/planner.js +97 -0
- package/dist/authorization/planner.js.map +1 -0
- package/dist/authorization/prompt.d.ts +12 -0
- package/dist/authorization/prompt.js +63 -0
- package/dist/authorization/prompt.js.map +1 -0
- package/dist/authorization/store.d.ts +20 -0
- package/dist/authorization/store.js +251 -0
- package/dist/authorization/store.js.map +1 -0
- package/dist/authorization/target.d.ts +15 -0
- package/dist/authorization/target.js +49 -0
- package/dist/authorization/target.js.map +1 -0
- package/dist/authorization/types.d.ts +61 -0
- package/dist/authorization/types.js +2 -0
- package/dist/authorization/types.js.map +1 -0
- package/dist/cli/args.d.ts +6 -0
- package/dist/cli/args.js +1255 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/auth.d.ts +21 -0
- package/dist/cli/auth.js +209 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/commands.d.ts +4 -0
- package/dist/cli/commands.js +801 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/errors.d.ts +9 -0
- package/dist/cli/errors.js +131 -0
- package/dist/cli/errors.js.map +1 -0
- package/dist/cli/format/context.d.ts +9 -0
- package/dist/cli/format/context.js +786 -0
- package/dist/cli/format/context.js.map +1 -0
- package/dist/cli/format/debug.d.ts +4 -0
- package/dist/cli/format/debug.js +60 -0
- package/dist/cli/format/debug.js.map +1 -0
- package/dist/cli/format/highlight.d.ts +3 -0
- package/dist/cli/format/highlight.js +106 -0
- package/dist/cli/format/highlight.js.map +1 -0
- package/dist/cli/format/progress.d.ts +13 -0
- package/dist/cli/format/progress.js +290 -0
- package/dist/cli/format/progress.js.map +1 -0
- package/dist/cli/format/range.d.ts +3 -0
- package/dist/cli/format/range.js +24 -0
- package/dist/cli/format/range.js.map +1 -0
- package/dist/cli/format/status.d.ts +83 -0
- package/dist/cli/format/status.js +530 -0
- package/dist/cli/format/status.js.map +1 -0
- package/dist/cli/help.d.ts +1 -0
- package/dist/cli/help.js +546 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +40 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/install.d.ts +4 -0
- package/dist/cli/install.js +1735 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/managed-rg.d.ts +10 -0
- package/dist/cli/managed-rg.js +337 -0
- package/dist/cli/managed-rg.js.map +1 -0
- package/dist/cli/server-search.d.ts +3 -0
- package/dist/cli/server-search.js +12 -0
- package/dist/cli/server-search.js.map +1 -0
- package/dist/cli/types.d.ts +87 -0
- package/dist/cli/types.js +10 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/version.d.ts +1 -0
- package/dist/cli/version.js +13 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/client/daemon-client.d.ts +31 -0
- package/dist/client/daemon-client.js +203 -0
- package/dist/client/daemon-client.js.map +1 -0
- package/dist/client/mode-router.d.ts +9 -0
- package/dist/client/mode-router.js +28 -0
- package/dist/client/mode-router.js.map +1 -0
- package/dist/client/search-policy.d.ts +11 -0
- package/dist/client/search-policy.js +15 -0
- package/dist/client/search-policy.js.map +1 -0
- package/dist/daemon/backend.d.ts +78 -0
- package/dist/daemon/backend.js +1118 -0
- package/dist/daemon/backend.js.map +1 -0
- package/dist/daemon/change-set.d.ts +30 -0
- package/dist/daemon/change-set.js +163 -0
- package/dist/daemon/change-set.js.map +1 -0
- package/dist/daemon/config.d.ts +27 -0
- package/dist/daemon/config.js +107 -0
- package/dist/daemon/config.js.map +1 -0
- package/dist/daemon/errors.d.ts +5 -0
- package/dist/daemon/errors.js +11 -0
- package/dist/daemon/errors.js.map +1 -0
- package/dist/daemon/http-server.d.ts +30 -0
- package/dist/daemon/http-server.js +307 -0
- package/dist/daemon/http-server.js.map +1 -0
- package/dist/daemon/index-coordinator.d.ts +22 -0
- package/dist/daemon/index-coordinator.js +55 -0
- package/dist/daemon/index-coordinator.js.map +1 -0
- package/dist/daemon/job-scheduler.d.ts +85 -0
- package/dist/daemon/job-scheduler.js +492 -0
- package/dist/daemon/job-scheduler.js.map +1 -0
- package/dist/daemon/logger.d.ts +10 -0
- package/dist/daemon/logger.js +101 -0
- package/dist/daemon/logger.js.map +1 -0
- package/dist/daemon/model-pool.d.ts +48 -0
- package/dist/daemon/model-pool.js +190 -0
- package/dist/daemon/model-pool.js.map +1 -0
- package/dist/daemon/root-lease.d.ts +14 -0
- package/dist/daemon/root-lease.js +197 -0
- package/dist/daemon/root-lease.js.map +1 -0
- package/dist/daemon/root-runtime.d.ts +80 -0
- package/dist/daemon/root-runtime.js +340 -0
- package/dist/daemon/root-runtime.js.map +1 -0
- package/dist/daemon/runtime-manager.d.ts +47 -0
- package/dist/daemon/runtime-manager.js +252 -0
- package/dist/daemon/runtime-manager.js.map +1 -0
- package/dist/daemon/runtime.d.ts +12 -0
- package/dist/daemon/runtime.js +105 -0
- package/dist/daemon/runtime.js.map +1 -0
- package/dist/daemon/server-controller.d.ts +38 -0
- package/dist/daemon/server-controller.js +327 -0
- package/dist/daemon/server-controller.js.map +1 -0
- package/dist/daemon/watch-manager.d.ts +62 -0
- package/dist/daemon/watch-manager.js +415 -0
- package/dist/daemon/watch-manager.js.map +1 -0
- package/dist/daemon/workspace-read-session-cache.d.ts +31 -0
- package/dist/daemon/workspace-read-session-cache.js +115 -0
- package/dist/daemon/workspace-read-session-cache.js.map +1 -0
- package/dist/engine/code-formats.d.ts +3 -0
- package/dist/engine/code-formats.js +14 -0
- package/dist/engine/code-formats.js.map +1 -0
- package/dist/engine/config.d.ts +57 -0
- package/dist/engine/config.js +351 -0
- package/dist/engine/config.js.map +1 -0
- package/dist/engine/errors.d.ts +20 -0
- package/dist/engine/errors.js +51 -0
- package/dist/engine/errors.js.map +1 -0
- package/dist/engine/extraction/code/adapter.d.ts +19 -0
- package/dist/engine/extraction/code/adapter.js +24 -0
- package/dist/engine/extraction/code/adapter.js.map +1 -0
- package/dist/engine/extraction/code/extractor.d.ts +13 -0
- package/dist/engine/extraction/code/extractor.js +696 -0
- package/dist/engine/extraction/code/extractor.js.map +1 -0
- package/dist/engine/extraction/code/families/c-family.d.ts +2 -0
- package/dist/engine/extraction/code/families/c-family.js +122 -0
- package/dist/engine/extraction/code/families/c-family.js.map +1 -0
- package/dist/engine/extraction/code/families/js-ts.d.ts +12 -0
- package/dist/engine/extraction/code/families/js-ts.js +118 -0
- package/dist/engine/extraction/code/families/js-ts.js.map +1 -0
- package/dist/engine/extraction/code/families/metadata.d.ts +8 -0
- package/dist/engine/extraction/code/families/metadata.js +86 -0
- package/dist/engine/extraction/code/families/metadata.js.map +1 -0
- package/dist/engine/extraction/code/families/name-field.d.ts +3 -0
- package/dist/engine/extraction/code/families/name-field.js +22 -0
- package/dist/engine/extraction/code/families/name-field.js.map +1 -0
- package/dist/engine/extraction/code/languages/c.d.ts +1 -0
- package/dist/engine/extraction/code/languages/c.js +12 -0
- package/dist/engine/extraction/code/languages/c.js.map +1 -0
- package/dist/engine/extraction/code/languages/cpp.d.ts +1 -0
- package/dist/engine/extraction/code/languages/cpp.js +18 -0
- package/dist/engine/extraction/code/languages/cpp.js.map +1 -0
- package/dist/engine/extraction/code/languages/go.d.ts +2 -0
- package/dist/engine/extraction/code/languages/go.js +70 -0
- package/dist/engine/extraction/code/languages/go.js.map +1 -0
- package/dist/engine/extraction/code/languages/java.d.ts +1 -0
- package/dist/engine/extraction/code/languages/java.js +17 -0
- package/dist/engine/extraction/code/languages/java.js.map +1 -0
- package/dist/engine/extraction/code/languages/javascript.d.ts +2 -0
- package/dist/engine/extraction/code/languages/javascript.js +23 -0
- package/dist/engine/extraction/code/languages/javascript.js.map +1 -0
- package/dist/engine/extraction/code/languages/python.d.ts +2 -0
- package/dist/engine/extraction/code/languages/python.js +52 -0
- package/dist/engine/extraction/code/languages/python.js.map +1 -0
- package/dist/engine/extraction/code/languages/rust.d.ts +2 -0
- package/dist/engine/extraction/code/languages/rust.js +25 -0
- package/dist/engine/extraction/code/languages/rust.js.map +1 -0
- package/dist/engine/extraction/code/languages/typescript.d.ts +2 -0
- package/dist/engine/extraction/code/languages/typescript.js +37 -0
- package/dist/engine/extraction/code/languages/typescript.js.map +1 -0
- package/dist/engine/extraction/code/tree-sitter/grammar.d.ts +4 -0
- package/dist/engine/extraction/code/tree-sitter/grammar.js +49 -0
- package/dist/engine/extraction/code/tree-sitter/grammar.js.map +1 -0
- package/dist/engine/extraction/code/tree-sitter/nodes.d.ts +3 -0
- package/dist/engine/extraction/code/tree-sitter/nodes.js +27 -0
- package/dist/engine/extraction/code/tree-sitter/nodes.js.map +1 -0
- package/dist/engine/extraction/code/tree-sitter/parser.d.ts +2 -0
- package/dist/engine/extraction/code/tree-sitter/parser.js +31 -0
- package/dist/engine/extraction/code/tree-sitter/parser.js.map +1 -0
- package/dist/engine/extraction/ids.d.ts +1 -0
- package/dist/engine/extraction/ids.js +5 -0
- package/dist/engine/extraction/ids.js.map +1 -0
- package/dist/engine/extraction/image/extractor.d.ts +5 -0
- package/dist/engine/extraction/image/extractor.js +35 -0
- package/dist/engine/extraction/image/extractor.js.map +1 -0
- package/dist/engine/extraction/index.d.ts +4 -0
- package/dist/engine/extraction/index.js +3 -0
- package/dist/engine/extraction/index.js.map +1 -0
- package/dist/engine/extraction/markdown/extractor.d.ts +7 -0
- package/dist/engine/extraction/markdown/extractor.js +362 -0
- package/dist/engine/extraction/markdown/extractor.js.map +1 -0
- package/dist/engine/extraction/runtime.d.ts +9 -0
- package/dist/engine/extraction/runtime.js +37 -0
- package/dist/engine/extraction/runtime.js.map +1 -0
- package/dist/engine/extraction/source.d.ts +18 -0
- package/dist/engine/extraction/source.js +22 -0
- package/dist/engine/extraction/source.js.map +1 -0
- package/dist/engine/extraction/text/extractor.d.ts +7 -0
- package/dist/engine/extraction/text/extractor.js +168 -0
- package/dist/engine/extraction/text/extractor.js.map +1 -0
- package/dist/engine/extraction/types.d.ts +4 -0
- package/dist/engine/extraction/types.js +2 -0
- package/dist/engine/extraction/types.js.map +1 -0
- package/dist/engine/extraction/vector-content.d.ts +5 -0
- package/dist/engine/extraction/vector-content.js +83 -0
- package/dist/engine/extraction/vector-content.js.map +1 -0
- package/dist/engine/file-size-policy.d.ts +6 -0
- package/dist/engine/file-size-policy.js +20 -0
- package/dist/engine/file-size-policy.js.map +1 -0
- package/dist/engine/file-type.d.ts +15 -0
- package/dist/engine/file-type.js +152 -0
- package/dist/engine/file-type.js.map +1 -0
- package/dist/engine/index-status.d.ts +9 -0
- package/dist/engine/index-status.js +38 -0
- package/dist/engine/index-status.js.map +1 -0
- package/dist/engine/manifest.d.ts +13 -0
- package/dist/engine/manifest.js +124 -0
- package/dist/engine/manifest.js.map +1 -0
- package/dist/engine/models/artifact-cache-lock.d.ts +16 -0
- package/dist/engine/models/artifact-cache-lock.js +228 -0
- package/dist/engine/models/artifact-cache-lock.js.map +1 -0
- package/dist/engine/models/artifact-downloader.d.ts +77 -0
- package/dist/engine/models/artifact-downloader.js +766 -0
- package/dist/engine/models/artifact-downloader.js.map +1 -0
- package/dist/engine/models/backends/llama-cpp.d.ts +100 -0
- package/dist/engine/models/backends/llama-cpp.js +567 -0
- package/dist/engine/models/backends/llama-cpp.js.map +1 -0
- package/dist/engine/models/backends/model2vec-runtime.d.ts +63 -0
- package/dist/engine/models/backends/model2vec-runtime.js +112 -0
- package/dist/engine/models/backends/model2vec-runtime.js.map +1 -0
- package/dist/engine/models/backends/model2vec-tokenizer.d.ts +2 -0
- package/dist/engine/models/backends/model2vec-tokenizer.js +42 -0
- package/dist/engine/models/backends/model2vec-tokenizer.js.map +1 -0
- package/dist/engine/models/backends/model2vec-worker-pool.d.ts +25 -0
- package/dist/engine/models/backends/model2vec-worker-pool.js +264 -0
- package/dist/engine/models/backends/model2vec-worker-pool.js.map +1 -0
- package/dist/engine/models/backends/model2vec-worker.d.ts +1 -0
- package/dist/engine/models/backends/model2vec-worker.js +41 -0
- package/dist/engine/models/backends/model2vec-worker.js.map +1 -0
- package/dist/engine/models/backends/model2vec.d.ts +38 -0
- package/dist/engine/models/backends/model2vec.js +344 -0
- package/dist/engine/models/backends/model2vec.js.map +1 -0
- package/dist/engine/models/backends/qwen.d.ts +44 -0
- package/dist/engine/models/backends/qwen.js +411 -0
- package/dist/engine/models/backends/qwen.js.map +1 -0
- package/dist/engine/models/backends/transformers-js.d.ts +90 -0
- package/dist/engine/models/backends/transformers-js.js +411 -0
- package/dist/engine/models/backends/transformers-js.js.map +1 -0
- package/dist/engine/models/catalog.d.ts +490 -0
- package/dist/engine/models/catalog.js +522 -0
- package/dist/engine/models/catalog.js.map +1 -0
- package/dist/engine/models/download-progress.d.ts +16 -0
- package/dist/engine/models/download-progress.js +47 -0
- package/dist/engine/models/download-progress.js.map +1 -0
- package/dist/engine/models/embeddings.d.ts +73 -0
- package/dist/engine/models/embeddings.js +125 -0
- package/dist/engine/models/embeddings.js.map +1 -0
- package/dist/engine/models/factory.d.ts +2 -0
- package/dist/engine/models/factory.js +51 -0
- package/dist/engine/models/factory.js.map +1 -0
- package/dist/engine/models/index.d.ts +5 -0
- package/dist/engine/models/index.js +6 -0
- package/dist/engine/models/index.js.map +1 -0
- package/dist/engine/models/local-embedding-parallelism.d.ts +15 -0
- package/dist/engine/models/local-embedding-parallelism.js +63 -0
- package/dist/engine/models/local-embedding-parallelism.js.map +1 -0
- package/dist/engine/models/local-embedding-queue.d.ts +12 -0
- package/dist/engine/models/local-embedding-queue.js +65 -0
- package/dist/engine/models/local-embedding-queue.js.map +1 -0
- package/dist/engine/models/ranking.d.ts +19 -0
- package/dist/engine/models/ranking.js +2 -0
- package/dist/engine/models/ranking.js.map +1 -0
- package/dist/engine/models/resolution.d.ts +8 -0
- package/dist/engine/models/resolution.js +22 -0
- package/dist/engine/models/resolution.js.map +1 -0
- package/dist/engine/pipeline/indexing/index.d.ts +14 -0
- package/dist/engine/pipeline/indexing/index.js +1219 -0
- package/dist/engine/pipeline/indexing/index.js.map +1 -0
- package/dist/engine/pipeline/indexing/input-budget.d.ts +2 -0
- package/dist/engine/pipeline/indexing/input-budget.js +51 -0
- package/dist/engine/pipeline/indexing/input-budget.js.map +1 -0
- package/dist/engine/pipeline/indexing/root-paths.d.ts +7 -0
- package/dist/engine/pipeline/indexing/root-paths.js +148 -0
- package/dist/engine/pipeline/indexing/root-paths.js.map +1 -0
- package/dist/engine/pipeline/indexing/scanner/index.d.ts +14 -0
- package/dist/engine/pipeline/indexing/scanner/index.js +776 -0
- package/dist/engine/pipeline/indexing/scanner/index.js.map +1 -0
- package/dist/engine/pipeline/search/index.d.ts +12 -0
- package/dist/engine/pipeline/search/index.js +811 -0
- package/dist/engine/pipeline/search/index.js.map +1 -0
- package/dist/engine/service/index.d.ts +3 -0
- package/dist/engine/service/index.js +2 -0
- package/dist/engine/service/index.js.map +1 -0
- package/dist/engine/service/lexical.d.ts +28 -0
- package/dist/engine/service/lexical.js +446 -0
- package/dist/engine/service/lexical.js.map +1 -0
- package/dist/engine/service/root.d.ts +15 -0
- package/dist/engine/service/root.js +57 -0
- package/dist/engine/service/root.js.map +1 -0
- package/dist/engine/service/structure-enrichment.d.ts +8 -0
- package/dist/engine/service/structure-enrichment.js +178 -0
- package/dist/engine/service/structure-enrichment.js.map +1 -0
- package/dist/engine/service/types.d.ts +212 -0
- package/dist/engine/service/types.js +2 -0
- package/dist/engine/service/types.js.map +1 -0
- package/dist/engine/service/workspace-index.d.ts +26 -0
- package/dist/engine/service/workspace-index.js +157 -0
- package/dist/engine/service/workspace-index.js.map +1 -0
- package/dist/engine/service/zvec-grep.d.ts +15 -0
- package/dist/engine/service/zvec-grep.js +1520 -0
- package/dist/engine/service/zvec-grep.js.map +1 -0
- package/dist/engine/storage/index.d.ts +53 -0
- package/dist/engine/storage/index.js +3 -0
- package/dist/engine/storage/index.js.map +1 -0
- package/dist/engine/storage/layout.d.ts +10 -0
- package/dist/engine/storage/layout.js +29 -0
- package/dist/engine/storage/layout.js.map +1 -0
- package/dist/engine/storage/zvec.d.ts +4 -0
- package/dist/engine/storage/zvec.js +976 -0
- package/dist/engine/storage/zvec.js.map +1 -0
- package/dist/engine/types.d.ts +303 -0
- package/dist/engine/types.js +14 -0
- package/dist/engine/types.js.map +1 -0
- package/dist/engine/utils/atomic-file.d.ts +3 -0
- package/dist/engine/utils/atomic-file.js +39 -0
- package/dist/engine/utils/atomic-file.js.map +1 -0
- package/dist/engine/utils/daemon-lease.d.ts +17 -0
- package/dist/engine/utils/daemon-lease.js +175 -0
- package/dist/engine/utils/daemon-lease.js.map +1 -0
- package/dist/engine/utils/file-selection.d.ts +10 -0
- package/dist/engine/utils/file-selection.js +157 -0
- package/dist/engine/utils/file-selection.js.map +1 -0
- package/dist/engine/utils/glob.d.ts +9 -0
- package/dist/engine/utils/glob.js +208 -0
- package/dist/engine/utils/glob.js.map +1 -0
- package/dist/engine/utils/hash.d.ts +2 -0
- package/dist/engine/utils/hash.js +8 -0
- package/dist/engine/utils/hash.js.map +1 -0
- package/dist/engine/utils/json.d.ts +8 -0
- package/dist/engine/utils/json.js +83 -0
- package/dist/engine/utils/json.js.map +1 -0
- package/dist/engine/utils/lock.d.ts +19 -0
- package/dist/engine/utils/lock.js +254 -0
- package/dist/engine/utils/lock.js.map +1 -0
- package/dist/engine/utils/path.d.ts +4 -0
- package/dist/engine/utils/path.js +18 -0
- package/dist/engine/utils/path.js.map +1 -0
- package/dist/engine/utils/timing.d.ts +19 -0
- package/dist/engine/utils/timing.js +87 -0
- package/dist/engine/utils/timing.js.map +1 -0
- package/dist/index-progress.d.ts +10 -0
- package/dist/index-progress.js +159 -0
- package/dist/index-progress.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/http-transport.d.ts +27 -0
- package/dist/mcp/http-transport.js +182 -0
- package/dist/mcp/http-transport.js.map +1 -0
- package/dist/mcp/input-normalization.d.ts +38 -0
- package/dist/mcp/input-normalization.js +104 -0
- package/dist/mcp/input-normalization.js.map +1 -0
- package/dist/mcp/progress-heartbeat.d.ts +17 -0
- package/dist/mcp/progress-heartbeat.js +46 -0
- package/dist/mcp/progress-heartbeat.js.map +1 -0
- package/dist/mcp/request-metadata.d.ts +2 -0
- package/dist/mcp/request-metadata.js +11 -0
- package/dist/mcp/request-metadata.js.map +1 -0
- package/dist/mcp/request-state.d.ts +40 -0
- package/dist/mcp/request-state.js +210 -0
- package/dist/mcp/request-state.js.map +1 -0
- package/dist/mcp/result-format.d.ts +13 -0
- package/dist/mcp/result-format.js +75 -0
- package/dist/mcp/result-format.js.map +1 -0
- package/dist/mcp/schemas.d.ts +668 -0
- package/dist/mcp/schemas.js +512 -0
- package/dist/mcp/schemas.js.map +1 -0
- package/dist/mcp/stdio-bridge.d.ts +15 -0
- package/dist/mcp/stdio-bridge.js +190 -0
- package/dist/mcp/stdio-bridge.js.map +1 -0
- package/dist/mcp/tools.d.ts +153 -0
- package/dist/mcp/tools.js +488 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/toolset.d.ts +5 -0
- package/dist/mcp/toolset.js +12 -0
- package/dist/mcp/toolset.js.map +1 -0
- package/dist/observability/trace-context.d.ts +11 -0
- package/dist/observability/trace-context.js +138 -0
- package/dist/observability/trace-context.js.map +1 -0
- package/dist/prompts/zvec-grep-guidance.d.ts +2 -0
- package/dist/prompts/zvec-grep-guidance.js +9 -0
- package/dist/prompts/zvec-grep-guidance.js.map +1 -0
- package/docs/01-agents.md +217 -0
- package/docs/02-cli.md +259 -0
- package/docs/03-mcp.md +185 -0
- package/docs/04-pipeline.md +234 -0
- package/docs/05-architecture.md +86 -0
- package/docs/06-server.md +279 -0
- package/docs/07-embedding.md +227 -0
- package/docs/08-roadmap.md +85 -0
- package/docs/README.md +53 -0
- package/package.json +87 -0
package/docs/03-mcp.md
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# MCP 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
|
+
zvec-grep exposes its local search layer over Streamable HTTP MCP. The normal
|
|
9
|
+
endpoint is:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
http://127.0.0.1:7999/mcp
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Run `zg --install` to configure a supported agent automatically. Use this page
|
|
16
|
+
when building another MCP client or when you need the exact boundary between
|
|
17
|
+
the default and compatibility toolsets. See
|
|
18
|
+
[Server and execution modes](./06-server.md) for lifecycle, mode selection,
|
|
19
|
+
refresh, authentication, and logs.
|
|
20
|
+
|
|
21
|
+
## Default agent toolset
|
|
22
|
+
|
|
23
|
+
The default `agent` toolset intentionally exposes only search:
|
|
24
|
+
|
|
25
|
+
Agents first decide whether the requested answer should be grounded in the
|
|
26
|
+
current indexed workspace, then choose exact or semantic retrieval. The same
|
|
27
|
+
rules apply to source code and non-code material such as documentation, books,
|
|
28
|
+
research material, meeting notes, knowledge-base exports, manuals,
|
|
29
|
+
configuration, and data.
|
|
30
|
+
|
|
31
|
+
Workspace relevance requires a request to inspect, search, or ground the answer
|
|
32
|
+
in local material, prior context that established local material as the intended
|
|
33
|
+
source, or a question about whether relevant local material exists. Negative,
|
|
34
|
+
incidental, or comparative workspace mentions do not establish relevance.
|
|
35
|
+
|
|
36
|
+
| Tool | Use it when | Index required |
|
|
37
|
+
| --- | --- | --- |
|
|
38
|
+
| `zvec_grep_search` | The answer is workspace-grounded and wording or location is unknown, or semantic, fuzzy, relationship, chronology, causality, comparison, or cross-file synthesis is required | Yes |
|
|
39
|
+
|
|
40
|
+
Agents use native grep or rg when locating an exact word, quotation, name, date,
|
|
41
|
+
key, filename, path, source fragment, or regex is sufficient. For mixed tasks,
|
|
42
|
+
start with `zvec_grep_search`, then use native grep or rg for focused follow-up.
|
|
43
|
+
When semantic discovery is selected because no sufficient exact anchor is
|
|
44
|
+
available and the user asks whether conceptually related material exists
|
|
45
|
+
locally, agents make at most one focused search probe and stop when its results
|
|
46
|
+
are not relevant. The probe does not apply to exact quotations, configuration
|
|
47
|
+
keys, filenames, regexes, or exhaustive occurrence requests. Unrelated
|
|
48
|
+
open-world knowledge, current external facts, and web content that does not
|
|
49
|
+
depend on local evidence use the appropriate external source instead.
|
|
50
|
+
|
|
51
|
+
Every workspace tool input uses an absolute `root` visible to the daemon.
|
|
52
|
+
|
|
53
|
+
## `zvec_grep_search`
|
|
54
|
+
|
|
55
|
+
The indexed tool supports hybrid, lexical, and vector query groups. At least one
|
|
56
|
+
of `query`, `queries`, `fts`, or `vector` is required.
|
|
57
|
+
|
|
58
|
+
Minimal conceptual search:
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"root": "/absolute/path/to/workspace",
|
|
63
|
+
"query": "decision history behind the launch date",
|
|
64
|
+
"limit": 5
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Explicit query routes and scope:
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"root": "/absolute/path/to/workspace",
|
|
73
|
+
"query": "authentication flow",
|
|
74
|
+
"fts": ["AuthService", "ForbiddenError"],
|
|
75
|
+
"globs": ["src/**", "!src/generated/**"],
|
|
76
|
+
"fileTypes": ["ts"],
|
|
77
|
+
"fuse": true,
|
|
78
|
+
"limit": 10
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Important inputs:
|
|
83
|
+
|
|
84
|
+
| Input | Meaning |
|
|
85
|
+
| --- | --- |
|
|
86
|
+
| `query` | One hybrid natural-language or exact query |
|
|
87
|
+
| `queries` | One or more hybrid query groups |
|
|
88
|
+
| `fts` | Ranked lexical constraints within indexed search, not exhaustive occurrence lookup |
|
|
89
|
+
| `vector` | Semantic-only query groups |
|
|
90
|
+
| `fuse` | Combine every group into one ranked plan |
|
|
91
|
+
| `limit` | Maximum items per group, up to 50 |
|
|
92
|
+
| `globs` / `insensitiveGlobs` | Ordered path rules |
|
|
93
|
+
| `fileTypes` / `excludedFileTypes` | ripgrep file-type filters |
|
|
94
|
+
| `symbolTypes` / `preferSymbol` | Indexed symbol controls |
|
|
95
|
+
| `modifiedAfter` / `modifiedBefore` | File modification-time bounds |
|
|
96
|
+
| `freshness` | `eventual` or `wait_for_fresh` |
|
|
97
|
+
| `autoUpdate` | Allow an eventual search to schedule a background update |
|
|
98
|
+
|
|
99
|
+
The response is compact text designed for agent context. It begins with index
|
|
100
|
+
state and then groups ranked results by file:
|
|
101
|
+
|
|
102
|
+
```text
|
|
103
|
+
freshness: fresh
|
|
104
|
+
src/theme/use-theme.ts:12-36
|
|
105
|
+
matched: 16-18
|
|
106
|
+
source:
|
|
107
|
+
15 export function useTheme() {
|
|
108
|
+
16 const [theme, setTheme] = useState("light");
|
|
109
|
+
17 useEffect(() => saveTheme(theme), [theme]);
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
When `freshness` is `possibly_stale`, the response may also include current
|
|
113
|
+
indexing state. Agents can use sufficient results immediately rather than
|
|
114
|
+
running a status preflight.
|
|
115
|
+
|
|
116
|
+
Remote models may cause the tool to request explicit Remote Embedding
|
|
117
|
+
authorization. See
|
|
118
|
+
[Embedding models](./07-embedding.md#remote-embedding-and-authorization).
|
|
119
|
+
|
|
120
|
+
## `zvec_grep_rg`
|
|
121
|
+
|
|
122
|
+
This tool is retained in the optional `full` MCP toolset and is not registered
|
|
123
|
+
in the default `agent` toolset. The CLI equivalent, `zg --rg`, remains
|
|
124
|
+
available without changing the MCP toolset.
|
|
125
|
+
|
|
126
|
+
Pass the ripgrep command you would otherwise run. The command is parsed into
|
|
127
|
+
arguments and is never executed by a shell:
|
|
128
|
+
|
|
129
|
+
```json
|
|
130
|
+
{
|
|
131
|
+
"root": "/absolute/path/to/workspace",
|
|
132
|
+
"command": "rg -n -F 'loadTheme' -g '*.ts' src"
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
The tool is exhaustive by default. Append `| head -N` only when intentionally
|
|
137
|
+
requesting bounded output:
|
|
138
|
+
|
|
139
|
+
```json
|
|
140
|
+
{
|
|
141
|
+
"root": "/absolute/path/to/workspace",
|
|
142
|
+
"command": "rg -n 'TODO|FIXME' src | head -50"
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Scope broad searches with command paths, `-g/--glob`, or `-t/--type`. Managed rg
|
|
147
|
+
supports common ripgrep matching, context, type, glob, ignore, encoding, and
|
|
148
|
+
regex-engine options while preserving zvec-grep's compact result format.
|
|
149
|
+
|
|
150
|
+
## Full compatibility toolset
|
|
151
|
+
|
|
152
|
+
The CLI owns index lifecycle and diagnostics, so agents normally do not need
|
|
153
|
+
administrative MCP tools. Clients that require them can restart the server with:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
zg --server off
|
|
157
|
+
zg --server on --mcp-toolset full
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
The `full` toolset exposes six tools:
|
|
161
|
+
|
|
162
|
+
| Tool | Purpose |
|
|
163
|
+
| --- | --- |
|
|
164
|
+
| `zvec_grep_search` | Indexed retrieval |
|
|
165
|
+
| `zvec_grep_rg` | No-index exhaustive search |
|
|
166
|
+
| `zvec_grep_index` | Create, update, rebuild, or explicitly drop an index |
|
|
167
|
+
| `zvec_grep_index_drop` | Explicitly delete an index |
|
|
168
|
+
| `zvec_grep_index_status` | Inspect persisted and active index state |
|
|
169
|
+
| `zvec_grep_server_status` | Inspect daemon, queue, runtime, and model-pool state |
|
|
170
|
+
|
|
171
|
+
`zvec_grep_index` requires an absolute root. Its `wait` input defaults to
|
|
172
|
+
`false`, returning a background job identifier. Poll `zvec_grep_index_status`
|
|
173
|
+
only when completion, progress, failure diagnosis, or explicit monitoring is
|
|
174
|
+
needed. An agent must never silently create, rebuild, or delete a persistent
|
|
175
|
+
index.
|
|
176
|
+
|
|
177
|
+
Set `ZVEC_GREP_MCP_TOOLSET=full` as an environment fallback. An explicit
|
|
178
|
+
`--mcp-toolset` flag takes precedence.
|
|
179
|
+
|
|
180
|
+
## Transport security
|
|
181
|
+
|
|
182
|
+
The MCP endpoint is loopback-only. Optional Bearer authentication protects the
|
|
183
|
+
local Server but remains independent of Embedding provider credentials and
|
|
184
|
+
Remote Embedding authorization. Configuration examples are in
|
|
185
|
+
[Server authentication](./06-server.md#bearer-authentication).
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# Retrieval pipeline
|
|
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 provides one search layer across semantic discovery, ranked lexical search,
|
|
9
|
+
and exhaustive ripgrep. The normal flow is:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
workspace → file discovery → local index → query routes → compact results
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
The index combines lexical and vector retrieval. Managed ripgrep follows the
|
|
16
|
+
same workspace and output conventions but can run without an index.
|
|
17
|
+
|
|
18
|
+
## 1. Choose the workspace scope
|
|
19
|
+
|
|
20
|
+
For the common case, run a search from the repository root. If no index exists,
|
|
21
|
+
zg creates one there with a local embedding model and then completes the search:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
cd your-repository
|
|
25
|
+
zg "where authentication is validated"
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Use `--index` when you need to select a model or constrain the workspace before
|
|
29
|
+
the first search:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
cd your-repository
|
|
33
|
+
zg --index --embedding local/potion-code-16m-v2
|
|
34
|
+
|
|
35
|
+
# Equivalent with an explicit root
|
|
36
|
+
zg --index /absolute/path/to/your-repository \
|
|
37
|
+
--embedding local/potion-code-16m-v2
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The workspace index is stored under `<root>/.zvec-grep/`. `.git` and
|
|
41
|
+
`.zvec-grep` are always excluded. Common dependency, build, generated, cache,
|
|
42
|
+
and log directories are excluded by default, as are files ignored by the
|
|
43
|
+
repository's ignore rules.
|
|
44
|
+
|
|
45
|
+
The main workspace files are `manifest.json`, `files.zvec`, and `index.zvec`.
|
|
46
|
+
The manifest stores index metadata and the workspace Embedding runtime settings,
|
|
47
|
+
including an API key when one was explicitly persisted for that workspace.
|
|
48
|
+
|
|
49
|
+
Scope large repositories early:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
zg --index \
|
|
53
|
+
--embedding local/potion-code-16m-v2 \
|
|
54
|
+
-g "src/**" \
|
|
55
|
+
-g "docs/**" \
|
|
56
|
+
-g "!dist/**" \
|
|
57
|
+
-t ts
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Useful discovery controls include:
|
|
61
|
+
|
|
62
|
+
| Option | Effect |
|
|
63
|
+
| --- | --- |
|
|
64
|
+
| `-g, --glob <glob>` | Add an ordered include or `!` exclude rule |
|
|
65
|
+
| `--iglob <glob>` | Add a case-insensitive glob rule |
|
|
66
|
+
| `-t, --type <type>` | Include a ripgrep file type |
|
|
67
|
+
| `-T, --type-not <type>` | Exclude a ripgrep file type |
|
|
68
|
+
| `--hidden` | Include hidden paths except `.git` and `.zvec-grep` |
|
|
69
|
+
| `--no-ignore` | Stop applying ignore files |
|
|
70
|
+
| `--ignore-file <path>` | Add an ignore file |
|
|
71
|
+
| `--max-depth <n>` | Limit recursive depth |
|
|
72
|
+
| `--max-filesize <size>` | Limit file size, for example `500K` or `2M` |
|
|
73
|
+
| `-L, --follow` | Follow symbolic links safely |
|
|
74
|
+
|
|
75
|
+
File-type filters narrow the result after glob rules. For example,
|
|
76
|
+
`-g "docs/**" -t ts` selects TypeScript files inside `docs`, not every file in
|
|
77
|
+
that directory.
|
|
78
|
+
|
|
79
|
+
Without an explicit `--max-filesize`, indexing uses type-aware safety limits:
|
|
80
|
+
1 MiB for code, 256 MiB for text and Markdown, 16 MiB for structured data, and
|
|
81
|
+
10 MiB for images. An explicit value replaces the type-aware defaults for every
|
|
82
|
+
selected file. Files excluded by these limits remain silent during normal
|
|
83
|
+
indexing; use `zg --index --debug` to print skipped-file counts and samples.
|
|
84
|
+
|
|
85
|
+
### Supported formats and extraction
|
|
86
|
+
|
|
87
|
+
The scanner assigns each admitted file to one extraction path. Structure-aware
|
|
88
|
+
extractors preserve useful code symbols or Markdown sections. When structure is
|
|
89
|
+
not available, zg falls back to plain-text chunks so the file can still
|
|
90
|
+
participate in indexed search.
|
|
91
|
+
|
|
92
|
+
| Files | Formats | Extractor | Indexed representation |
|
|
93
|
+
| --- | --- | --- | --- |
|
|
94
|
+
| Structure-aware code | C/C++ (`.c`, `.cc`, `.cpp`, `.cxx`, `.h`, `.hpp`), Go, Java, JavaScript/JSX, TypeScript/TSX, Python, Rust | `CodeExtractor` | Symbols, signatures, breadcrumbs, and surrounding source |
|
|
95
|
+
| Component scripts | `.vue`, `.svelte` | `CodeExtractor` | JavaScript or TypeScript `<script>` blocks; plain-text fallback when no structure is found |
|
|
96
|
+
| Other recognized code | Ruby, PHP, Swift, Kotlin, C#, Scala, shell, SQL, CSS/SCSS/Less, `Dockerfile`, `Makefile` | `CodeExtractor` | Plain-text chunks until a structural grammar is available |
|
|
97
|
+
| Markdown | `.md`, `.mdx` | `MarkdownExtractor` | Heading sections and breadcrumbs; plain-text fallback for documents without headings |
|
|
98
|
+
| Text documents | `.txt`, `.rst`, `.html`, `.htm`, `.xml` | `TextExtractor` | Plain-text chunks |
|
|
99
|
+
| Text data | `.csv`, `.json`, `.jsonc`, `.toml`, `.yaml`, `.yml` | `TextExtractor` | Plain-text chunks |
|
|
100
|
+
| Other non-binary files | Unrecognized extensions that pass binary detection | `TextExtractor` | Plain-text chunks |
|
|
101
|
+
| Raster images | `.gif`, `.jpeg`, `.jpg`, `.png`, `.webp` | `ImageExtractor` | Image content when explicitly included and the selected Embedding model accepts images |
|
|
102
|
+
|
|
103
|
+
Raster images are excluded by the default discovery rules and must be selected
|
|
104
|
+
explicitly. A text-only Embedding model cannot add image fragments to its
|
|
105
|
+
vector index.
|
|
106
|
+
|
|
107
|
+
The following binary formats are currently skipped before extraction:
|
|
108
|
+
|
|
109
|
+
- documents: `.pdf`, `.doc`, `.docx`, `.ppt`, `.pptx`, `.xls`, `.xlsx`;
|
|
110
|
+
- archives: `.zip`, `.tar`, `.gz`, `.bz2`, `.xz`, `.7z`, `.rar`;
|
|
111
|
+
- executables and compiled artifacts: `.exe`, `.dll`, `.dylib`, `.so`, `.a`,
|
|
112
|
+
`.o`, `.obj`, `.wasm`, `.class`, `.jar`;
|
|
113
|
+
- media and databases: `.mp3`, `.mp4`, `.mov`, `.avi`, `.mkv`, `.db`,
|
|
114
|
+
`.sqlite`.
|
|
115
|
+
|
|
116
|
+
Empty files, files above the configured size limit, and files detected as
|
|
117
|
+
binary are also skipped. Skipped files do not become extraction failures and
|
|
118
|
+
are not included in the current `filesScanned` count, so the index summary does
|
|
119
|
+
not list each skipped path or reason.
|
|
120
|
+
|
|
121
|
+
<a id="indexing"></a>
|
|
122
|
+
|
|
123
|
+
## 2. Build and maintain the index
|
|
124
|
+
|
|
125
|
+
A manually created index resolves its model from explicit `--embedding`,
|
|
126
|
+
`ZVEC_GREP_EMBEDDING`, the configured default, then the built-in local default.
|
|
127
|
+
An implicit first-search index always uses a local model. Existing indexes reuse
|
|
128
|
+
their stored model and file-selection settings:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# First build
|
|
132
|
+
zg --index --embedding local/potion-code-16m-v2
|
|
133
|
+
|
|
134
|
+
# Incremental update with the stored schema
|
|
135
|
+
zg --index
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Use `zg --status` to see the root, selected model, file counts, failures,
|
|
139
|
+
truncation, and the suggested next action:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
zg --status
|
|
143
|
+
zg --status --check-ready
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Changing the Embedding model or an incompatible endpoint requires an explicit
|
|
147
|
+
rebuild:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
zg --index --rebuild --embedding local/jina-embeddings-v2-base-code
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Use `--reset-paths` when the existing file-selection settings should be
|
|
154
|
+
replaced rather than reused. Deleting an index is explicit and destructive:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
zg --index --drop --yes
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
See [Embedding models](./07-embedding.md) before choosing or changing a model.
|
|
161
|
+
|
|
162
|
+
<a id="querying"></a>
|
|
163
|
+
|
|
164
|
+
## 3. Query through one search layer
|
|
165
|
+
|
|
166
|
+
The shortest query uses hybrid ranked retrieval:
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
zg "where theme preferences are restored"
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Choose an explicit route only when you need more control:
|
|
173
|
+
|
|
174
|
+
| Route | Use it for | Coverage |
|
|
175
|
+
| --- | --- | --- |
|
|
176
|
+
| Positional query or `--hybrid` | Intent plus useful lexical anchors | Ranked sample |
|
|
177
|
+
| `--fts` | Exact terms ranked through the index | Ranked sample |
|
|
178
|
+
| `--vector` | Conceptual similarity without lexical ranking | Ranked sample |
|
|
179
|
+
| `--rg` | Exhaustive literal or regex matching | Exhaustive unless explicitly bounded |
|
|
180
|
+
|
|
181
|
+
Examples:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
# Ranked lexical search
|
|
185
|
+
zg --fts "AuthService"
|
|
186
|
+
|
|
187
|
+
# Explicit semantic search
|
|
188
|
+
zg --vector "where credentials are validated"
|
|
189
|
+
|
|
190
|
+
# Combine and fuse several query groups
|
|
191
|
+
zg \
|
|
192
|
+
--hybrid "authentication flow" \
|
|
193
|
+
--fts "ForbiddenError" \
|
|
194
|
+
--fuse \
|
|
195
|
+
--limit 10
|
|
196
|
+
|
|
197
|
+
# No index required
|
|
198
|
+
zg --rg -n -F "AuthService" -g "*.ts" src
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Multiple positional queries remain separate groups unless `--fuse` is set.
|
|
202
|
+
Use `-g`, `--iglob`, `-t`, and `-T` on indexed queries to narrow results. Managed
|
|
203
|
+
rg also accepts common ripgrep matching, context, engine, encoding, discovery,
|
|
204
|
+
glob, and type options.
|
|
205
|
+
|
|
206
|
+
zg owns the managed-rg result format, so output-changing options such as
|
|
207
|
+
`--json`, `--count`, `--files`, `-l`, `-o`, `--replace`, and `--vimgrep` are
|
|
208
|
+
rejected. Use `-A`, `-B`, or `-C` to add context.
|
|
209
|
+
|
|
210
|
+
## Freshness
|
|
211
|
+
|
|
212
|
+
Indexed results report `fresh` or `possibly_stale`. Routine reconciliation stays
|
|
213
|
+
`fresh` until there is evidence of index drift. See
|
|
214
|
+
[Server and execution modes](./06-server.md#refresh-behavior) for the interaction
|
|
215
|
+
between `auto`, `server`, `direct`, and `--refresh`.
|
|
216
|
+
|
|
217
|
+
## Output for agents and people
|
|
218
|
+
|
|
219
|
+
When stdout is a terminal, indexed CLI output is human-readable and includes a
|
|
220
|
+
full source preview by default. When stdout is redirected, output is compact,
|
|
221
|
+
grouped by query group, and omits previews unless requested:
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
zg "plugin lifecycle" --preview short --limit 5
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
Use `--compact` to request the pipe-oriented form even in a terminal:
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
zg --compact "plugin lifecycle" --limit 5
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Use `--debug` for query diagnostics and `--trace` for per-hit indexed search
|
|
234
|
+
trace information.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Architecture
|
|
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 presents one search layer to people and agents while keeping execution,
|
|
9
|
+
retrieval, and storage local by default.
|
|
10
|
+
|
|
11
|
+
## System at a glance
|
|
12
|
+
|
|
13
|
+
```mermaid
|
|
14
|
+
flowchart LR
|
|
15
|
+
Human["Human or script"] --> CLI["zg CLI"]
|
|
16
|
+
Agent["Agent"] --> MCP["MCP client"]
|
|
17
|
+
|
|
18
|
+
CLI --> Router{"auto / server / direct"}
|
|
19
|
+
MCP --> Server["Local Server"]
|
|
20
|
+
Router --> Server
|
|
21
|
+
Router --> Direct["Direct runtime"]
|
|
22
|
+
|
|
23
|
+
Server --> Engine["zvec-grep engine"]
|
|
24
|
+
Direct --> Engine
|
|
25
|
+
|
|
26
|
+
Engine --> Indexed["Indexed search<br/>BM25 + vector + RRF"]
|
|
27
|
+
Engine --> RG["Managed ripgrep<br/>exact text + regex"]
|
|
28
|
+
Engine --> Indexing["Indexing<br/>scan + extract + embed"]
|
|
29
|
+
|
|
30
|
+
Files[("Workspace files")] --> RG
|
|
31
|
+
Files --> Indexing
|
|
32
|
+
Indexing --> Index[("Workspace index<br/>.zvec-grep/")]
|
|
33
|
+
Index --> Indexed
|
|
34
|
+
|
|
35
|
+
Indexed --> Results["Compact results"]
|
|
36
|
+
RG --> Results
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Entry and execution
|
|
40
|
+
|
|
41
|
+
People and scripts enter through the CLI. Agents normally enter through the
|
|
42
|
+
local Streamable HTTP MCP endpoint configured by `zg --install`.
|
|
43
|
+
|
|
44
|
+
The CLI routes indexed operations through `auto`, `server`, or `direct` mode.
|
|
45
|
+
Both Server and Direct modes call the same engine; the difference is process
|
|
46
|
+
lifetime and coordination, not search behavior. MCP requests always arrive
|
|
47
|
+
through the Server. Managed `zg --rg` can run directly without a Server
|
|
48
|
+
or index.
|
|
49
|
+
|
|
50
|
+
See [Agent integrations](./01-agents.md), [CLI](./02-cli.md),
|
|
51
|
+
[MCP](./03-mcp.md), and [Server and execution modes](./06-server.md) for the
|
|
52
|
+
individual interfaces.
|
|
53
|
+
|
|
54
|
+
## Retrieval paths
|
|
55
|
+
|
|
56
|
+
The engine exposes two complementary paths behind the same product boundary:
|
|
57
|
+
|
|
58
|
+
| Path | Best for | Data source |
|
|
59
|
+
| --- | --- | --- |
|
|
60
|
+
| Indexed retrieval | Intent, related concepts, and ranked keywords | BM25/FTS and vector data in the workspace index |
|
|
61
|
+
| Managed ripgrep | Known text, symbols, paths, and regular expressions | Workspace files scanned directly |
|
|
62
|
+
|
|
63
|
+
Indexed search can combine lexical and vector candidates and fuse their ranks
|
|
64
|
+
with reciprocal rank fusion (RRF). Managed ripgrep is exhaustive by default and
|
|
65
|
+
does not require an Embedding model. Both paths apply workspace-aware filtering
|
|
66
|
+
and return file-oriented results suitable for terminal reading or agent context.
|
|
67
|
+
|
|
68
|
+
The [Retrieval pipeline](./04-pipeline.md) covers indexing, freshness, filters,
|
|
69
|
+
and route selection in detail.
|
|
70
|
+
|
|
71
|
+
## State and trust boundary
|
|
72
|
+
|
|
73
|
+
The normal repository index lives under `<workspace>/.zvec-grep/`. Global
|
|
74
|
+
configuration and daemon state live under `~/.zvec-grep/`. Workspace scanning,
|
|
75
|
+
managed ripgrep, index storage, and local Embedding models remain on the local
|
|
76
|
+
machine, and the Server listens on loopback only.
|
|
77
|
+
|
|
78
|
+
Selecting a remote Embedding provider is the one path that can send query text
|
|
79
|
+
or workspace content outside the machine. zg requests explicit once-only or
|
|
80
|
+
workspace authorization before that transfer. MCP Bearer authentication protects
|
|
81
|
+
the local endpoint; it does not authorize remote Embedding.
|
|
82
|
+
|
|
83
|
+
See [Embedding models](./07-embedding.md#remote-embedding-and-authorization)
|
|
84
|
+
for provider authorization and
|
|
85
|
+
[Server authentication](./06-server.md#bearer-authentication) for the local
|
|
86
|
+
endpoint boundary.
|