@crownpeak/dqm-react-component-dev-mcp 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +138 -0
- package/data/.env.example +22 -0
- package/data/.gitattributes +47 -0
- package/data/.glfrc.json +7 -0
- package/data/.husky/pre-commit +5 -0
- package/data/.nvmrc +1 -0
- package/data/CHANGELOG.md +75 -0
- package/data/CODE_OF_CONDUCT.md +129 -0
- package/data/CONTRIBUTING.md +203 -0
- package/data/DOCS-STRUCTURE.md +307 -0
- package/data/I18N.md +292 -0
- package/data/LICENSE +22 -0
- package/data/README.md +315 -0
- package/data/SECURITY.md +125 -0
- package/data/WIKI-DEPLOYMENT.md +348 -0
- package/data/docs/AI-FEATURES.md +610 -0
- package/data/docs/API-REFERENCE.md +1022 -0
- package/data/docs/AUTHENTICATION.md +301 -0
- package/data/docs/BACKEND-API.md +468 -0
- package/data/docs/DEVELOPMENT.md +375 -0
- package/data/docs/EXAMPLES.md +622 -0
- package/data/docs/MCP-SERVER.md +307 -0
- package/data/docs/MIGRATION-GUIDE.md +367 -0
- package/data/docs/NPM-PUBLISH.md +193 -0
- package/data/docs/QUICKSTART.md +206 -0
- package/data/docs/REDIS-SETUP.md +162 -0
- package/data/docs/SERVER.md +228 -0
- package/data/docs/TROUBLESHOOTING.md +657 -0
- package/data/docs/WIDGET-GUIDE.md +638 -0
- package/data/docs/WIKI-HOME.md +58 -0
- package/data/docs/WIKI-SIDEBAR.md +39 -0
- package/data/package.json +171 -0
- package/data/playwright.config.ts +64 -0
- package/data/probe/.cargo/config.toml +10 -0
- package/data/probe/.claude/commands/performance-review.md +15 -0
- package/data/probe/.clinerules +288 -0
- package/data/probe/.dockerignore +57 -0
- package/data/probe/.githooks/post-commit +11 -0
- package/data/probe/.githooks/pre-commit +99 -0
- package/data/probe/.githooks/pre-commit-vow +9 -0
- package/data/probe/.prompts/engineer.md +41 -0
- package/data/probe/.roomodes +28 -0
- package/data/probe/.windsurfrules +0 -0
- package/data/probe/BASH_TOOL_SUMMARY.md +148 -0
- package/data/probe/BENCHMARKING.md +256 -0
- package/data/probe/CLAUDE.md +226 -0
- package/data/probe/CODE_OF_CONDUCT.md +128 -0
- package/data/probe/CONTRIBUTING.md +193 -0
- package/data/probe/Cargo.toml +120 -0
- package/data/probe/Cross.toml +10 -0
- package/data/probe/DOCKER-README.md +224 -0
- package/data/probe/Dockerfile +32 -0
- package/data/probe/ENHANCED_DEBUG_TELEMETRY.md +188 -0
- package/data/probe/LICENSE +201 -0
- package/data/probe/Makefile +210 -0
- package/data/probe/README.md +824 -0
- package/data/probe/SECURITY.md +67 -0
- package/data/probe/WINDOWS-GUIDE.md +294 -0
- package/data/probe/benches/parsing_benchmarks.rs +370 -0
- package/data/probe/benches/search_benchmarks.rs +599 -0
- package/data/probe/benches/simd_benchmarks.rs +372 -0
- package/data/probe/benches/timing_benchmarks.rs +287 -0
- package/data/probe/build-windows.bat +229 -0
- package/data/probe/codex-config/config.toml +6 -0
- package/data/probe/docs/PERFORMANCE_OPTIMIZATION.md +161 -0
- package/data/probe/examples/cache_demo.rs +46 -0
- package/data/probe/examples/chat/.dockerignore +37 -0
- package/data/probe/examples/chat/ChatSessionManager.js +295 -0
- package/data/probe/examples/chat/Dockerfile +98 -0
- package/data/probe/examples/chat/LICENSE +201 -0
- package/data/probe/examples/chat/LOCAL_IMAGE_SUPPORT.md +195 -0
- package/data/probe/examples/chat/MCP_INTEGRATION.md +400 -0
- package/data/probe/examples/chat/README.md +338 -0
- package/data/probe/examples/chat/TRACING.md +226 -0
- package/data/probe/examples/chat/appTracer.js +968 -0
- package/data/probe/examples/chat/auth.js +76 -0
- package/data/probe/examples/chat/bin/probe-chat.js +13 -0
- package/data/probe/examples/chat/build.js +104 -0
- package/data/probe/examples/chat/cancelRequest.js +84 -0
- package/data/probe/examples/chat/demo-agentic-image-flow.js +88 -0
- package/data/probe/examples/chat/demo-local-images.js +128 -0
- package/data/probe/examples/chat/fileSpanExporter.js +181 -0
- package/data/probe/examples/chat/implement/README.md +228 -0
- package/data/probe/examples/chat/implement/backends/AiderBackend.js +750 -0
- package/data/probe/examples/chat/implement/backends/BaseBackend.js +276 -0
- package/data/probe/examples/chat/implement/backends/ClaudeCodeBackend.js +767 -0
- package/data/probe/examples/chat/implement/backends/MockBackend.js +237 -0
- package/data/probe/examples/chat/implement/backends/registry.js +85 -0
- package/data/probe/examples/chat/implement/core/BackendManager.js +567 -0
- package/data/probe/examples/chat/implement/core/ImplementTool.js +354 -0
- package/data/probe/examples/chat/implement/core/config.js +428 -0
- package/data/probe/examples/chat/implement/core/timeouts.js +58 -0
- package/data/probe/examples/chat/implement/core/utils.js +496 -0
- package/data/probe/examples/chat/implement/types/BackendTypes.js +126 -0
- package/data/probe/examples/chat/index.js +669 -0
- package/data/probe/examples/chat/mcpServer.js +341 -0
- package/data/probe/examples/chat/npm/LICENSE +15 -0
- package/data/probe/examples/chat/npm/README.md +168 -0
- package/data/probe/examples/chat/npm/bin/probe-chat.js +156 -0
- package/data/probe/examples/chat/npm/index.js +259 -0
- package/data/probe/examples/chat/npm/package.json +54 -0
- package/data/probe/examples/chat/package.json +102 -0
- package/data/probe/examples/chat/probeChat.js +456 -0
- package/data/probe/examples/chat/probeTool.js +491 -0
- package/data/probe/examples/chat/storage/JsonChatStorage.js +476 -0
- package/data/probe/examples/chat/telemetry.js +281 -0
- package/data/probe/examples/chat/test/integration/chatFlows.test.js +320 -0
- package/data/probe/examples/chat/test/integration/toolCalling.test.js +471 -0
- package/data/probe/examples/chat/test/mocks/mockLLMProvider.js +269 -0
- package/data/probe/examples/chat/test/test-backends.js +90 -0
- package/data/probe/examples/chat/test/testUtils.js +530 -0
- package/data/probe/examples/chat/test/unit/backendTimeout.test.js +161 -0
- package/data/probe/examples/chat/test/unit/packageFiles.test.js +120 -0
- package/data/probe/examples/chat/test/verify-tests.js +118 -0
- package/data/probe/examples/chat/test-agentic-image-loading.js +294 -0
- package/data/probe/examples/chat/test-ai-sdk-telemetry.js +204 -0
- package/data/probe/examples/chat/test-chat-tracing.js +38 -0
- package/data/probe/examples/chat/test-direct-function.js +49 -0
- package/data/probe/examples/chat/test-file-size-validation.js +103 -0
- package/data/probe/examples/chat/test-full-mcp-integration.js +258 -0
- package/data/probe/examples/chat/test-github-context.txt +12 -0
- package/data/probe/examples/chat/test-hierarchy.js +203 -0
- package/data/probe/examples/chat/test-image-spans.js +37 -0
- package/data/probe/examples/chat/test-local-image-reading.js +176 -0
- package/data/probe/examples/chat/test-mcp-integration.js +136 -0
- package/data/probe/examples/chat/test-mcp-probe-server.js +161 -0
- package/data/probe/examples/chat/test-mcp-with-ai.js +279 -0
- package/data/probe/examples/chat/test-multiple-allowed-dirs.js +111 -0
- package/data/probe/examples/chat/test-probe-mcp-server.js +110 -0
- package/data/probe/examples/chat/test-security-validation.js +145 -0
- package/data/probe/examples/chat/test-simple-tracing.js +32 -0
- package/data/probe/examples/chat/test-trace-verification.js +235 -0
- package/data/probe/examples/chat/test-tracing.js +114 -0
- package/data/probe/examples/chat/tokenCounter.js +419 -0
- package/data/probe/examples/chat/tokenUsageDisplay.js +134 -0
- package/data/probe/examples/chat/webServer.js +1103 -0
- package/data/probe/examples/reranker/Cargo.toml +33 -0
- package/data/probe/examples/reranker/DEBUG_OUTPUT_ANALYSIS.md +71 -0
- package/data/probe/examples/reranker/MODELS.md +66 -0
- package/data/probe/examples/reranker/MODEL_COMPARISON.md +60 -0
- package/data/probe/examples/reranker/MULTI_MODEL_ANALYSIS.md +176 -0
- package/data/probe/examples/reranker/PERFORMANCE_SUMMARY.md +156 -0
- package/data/probe/examples/reranker/README.md +347 -0
- package/data/probe/examples/reranker/RUST_BERT_COMPARISON.md +82 -0
- package/data/probe/examples/reranker/TOKENIZATION_GUIDE.md +120 -0
- package/data/probe/examples/reranker/check_rust_tokenizer.py +108 -0
- package/data/probe/examples/reranker/convert_to_torchscript.py +109 -0
- package/data/probe/examples/reranker/debug_scoring.py +189 -0
- package/data/probe/examples/reranker/debug_tokenization.py +154 -0
- package/data/probe/examples/reranker/download_models.sh +73 -0
- package/data/probe/examples/reranker/requirements.txt +13 -0
- package/data/probe/examples/reranker/run_comprehensive_benchmark.sh +83 -0
- package/data/probe/examples/reranker/rust_bert_test/Cargo.toml +12 -0
- package/data/probe/examples/reranker/rust_bert_test/README.md +54 -0
- package/data/probe/examples/reranker/simple_test.py +50 -0
- package/data/probe/examples/reranker/test_all_models.sh +63 -0
- package/data/probe/examples/reranker/test_bert_results.sh +44 -0
- package/data/probe/examples/reranker/test_cross_encoder.py +334 -0
- package/data/probe/examples/reranker/test_cross_encoder.sh +80 -0
- package/data/probe/examples/reranker/test_exact_comparison.py +151 -0
- package/data/probe/examples/reranker/test_parallel_performance.sh +56 -0
- package/data/probe/examples/reranker/test_scores.py +132 -0
- package/data/probe/install.ps1 +508 -0
- package/data/probe/install.sh +460 -0
- package/data/probe/npm/CLONE_METHOD_EXAMPLES.md +596 -0
- package/data/probe/npm/CONTEXT_COMPACTION.md +303 -0
- package/data/probe/npm/DELEGATE_TOOL_README.md +166 -0
- package/data/probe/npm/MAID_INTEGRATION.md +313 -0
- package/data/probe/npm/MCP_INTEGRATION_SUMMARY.md +241 -0
- package/data/probe/npm/README.md +824 -0
- package/data/probe/npm/bin/.gitignore +7 -0
- package/data/probe/npm/bin/.gitkeep +0 -0
- package/data/probe/npm/bin/README.md +12 -0
- package/data/probe/npm/bin/probe +167 -0
- package/data/probe/npm/docs/CLAUDE_CODE_INTEGRATION.md +414 -0
- package/data/probe/npm/docs/CODEX_INTEGRATION.md +502 -0
- package/data/probe/npm/docs/EDIT_CREATE_TOOLS.md +233 -0
- package/data/probe/npm/docs/RETRY_AND_FALLBACK.md +674 -0
- package/data/probe/npm/example-usage.js +335 -0
- package/data/probe/npm/examples/multi-engine-demo.js +117 -0
- package/data/probe/npm/examples/probe-agent-cli.js +113 -0
- package/data/probe/npm/examples/test-agent-edit.js +114 -0
- package/data/probe/npm/examples/test-edit-create.js +120 -0
- package/data/probe/npm/examples/test-edit-direct.js +114 -0
- package/data/probe/npm/index.d.ts +744 -0
- package/data/probe/npm/jest.config.js +52 -0
- package/data/probe/npm/package.json +117 -0
- package/data/probe/npm/scripts/build-agent.cjs +75 -0
- package/data/probe/npm/scripts/build-cjs.js +124 -0
- package/data/probe/npm/scripts/build-mcp.cjs +36 -0
- package/data/probe/npm/scripts/postinstall.js +216 -0
- package/data/probe/npm/test-codex-e2e.js +78 -0
- package/data/probe/npm/test-download-lock.js +109 -0
- package/data/probe/npm/test-grep-security.js +94 -0
- package/data/probe/npm/test-grep-simplified.js +63 -0
- package/data/probe/npm/test-grep.js +51 -0
- package/data/probe/npm/tests/README.md +96 -0
- package/data/probe/npm/tests/agent-compact-history.test.js +174 -0
- package/data/probe/npm/tests/allow-tests-default.test.js +151 -0
- package/data/probe/npm/tests/contextCompactor.test.js +498 -0
- package/data/probe/npm/tests/delegate-config.test.js +353 -0
- package/data/probe/npm/tests/delegate-integration.test.js +348 -0
- package/data/probe/npm/tests/extractor-integration.test.js +162 -0
- package/data/probe/npm/tests/extractor.test.js +317 -0
- package/data/probe/npm/tests/fixtures/sampleDiagrams.js +267 -0
- package/data/probe/npm/tests/integration/claude-code-auto-fallback.spec.js +148 -0
- package/data/probe/npm/tests/integration/claude-code-multi-step.spec.js +127 -0
- package/data/probe/npm/tests/integration/claude-code-tool-events.spec.js +163 -0
- package/data/probe/npm/tests/integration/codex-auto-fallback.spec.js +191 -0
- package/data/probe/npm/tests/integration/codex-tool-events.spec.js +147 -0
- package/data/probe/npm/tests/integration/examplesChatMcp.test.js +402 -0
- package/data/probe/npm/tests/integration/mcpDotenvSupport.test.js +174 -0
- package/data/probe/npm/tests/integration/mcpErrorHandling.test.js +566 -0
- package/data/probe/npm/tests/integration/mcpRobustness.test.js +564 -0
- package/data/probe/npm/tests/integration/mcpStdoutPurity.test.js +355 -0
- package/data/probe/npm/tests/integration/probeAgentMcp.test.js +398 -0
- package/data/probe/npm/tests/integration/retryFallback.test.js +368 -0
- package/data/probe/npm/tests/integration/schema-in-initial-message.test.js +318 -0
- package/data/probe/npm/tests/integration/schema-validation-loop-prevention.test.js +244 -0
- package/data/probe/npm/tests/integration/schemaRetryLogic.test.js +94 -0
- package/data/probe/npm/tests/integration/validationFlow.test.js +329 -0
- package/data/probe/npm/tests/manual/test-codex-basic.js +110 -0
- package/data/probe/npm/tests/mcp/mcpClientManager.test.js +614 -0
- package/data/probe/npm/tests/mcp/mcpConfig.test.js +359 -0
- package/data/probe/npm/tests/mcp/mcpXmlBridge.test.js +436 -0
- package/data/probe/npm/tests/mcp/mockMcpServer.js +510 -0
- package/data/probe/npm/tests/mcp-strict-syntax.test.js +319 -0
- package/data/probe/npm/tests/mermaidQuoteEscaping.test.js +214 -0
- package/data/probe/npm/tests/nestedQuoteFix.test.js +40 -0
- package/data/probe/npm/tests/setup.js +46 -0
- package/data/probe/npm/tests/unit/allowed-tools.test.js +513 -0
- package/data/probe/npm/tests/unit/attempt-completion-closing-tag-in-content.test.js +188 -0
- package/data/probe/npm/tests/unit/attemptCompletionJsonFix.test.js +238 -0
- package/data/probe/npm/tests/unit/attemptCompletionJsonIssue.test.js +128 -0
- package/data/probe/npm/tests/unit/backtickAutoFix.test.js +35 -0
- package/data/probe/npm/tests/unit/bash-probe-agent-integration.test.js +389 -0
- package/data/probe/npm/tests/unit/bash-simple-commands.test.js +324 -0
- package/data/probe/npm/tests/unit/bash-tool-comprehensive.test.js +371 -0
- package/data/probe/npm/tests/unit/bash-tool-integration.test.js +310 -0
- package/data/probe/npm/tests/unit/bash-tool.test.js +341 -0
- package/data/probe/npm/tests/unit/completion-prompt.test.js +379 -0
- package/data/probe/npm/tests/unit/cwd-path-options.test.js +287 -0
- package/data/probe/npm/tests/unit/delegate-limits.test.js +422 -0
- package/data/probe/npm/tests/unit/direct-content-attempt-completion.test.js +235 -0
- package/data/probe/npm/tests/unit/edit-create-tools.test.js +609 -0
- package/data/probe/npm/tests/unit/enhancedMermaidValidation.test.js +577 -0
- package/data/probe/npm/tests/unit/extract-content.test.js +83 -0
- package/data/probe/npm/tests/unit/extract-multiple-targets.test.js +89 -0
- package/data/probe/npm/tests/unit/fallbackManager.test.js +442 -0
- package/data/probe/npm/tests/unit/githubCompatibilityValidation.test.js +258 -0
- package/data/probe/npm/tests/unit/imageConfig.test.js +149 -0
- package/data/probe/npm/tests/unit/imagePathResolution.test.js +345 -0
- package/data/probe/npm/tests/unit/json-fixing-agent.test.js +238 -0
- package/data/probe/npm/tests/unit/json-validation-enhanced-errors.test.js +199 -0
- package/data/probe/npm/tests/unit/jsonValidationInfiniteLoopFix.test.js +228 -0
- package/data/probe/npm/tests/unit/maidIntegration.test.js +139 -0
- package/data/probe/npm/tests/unit/maxIterationsWarning.test.js +195 -0
- package/data/probe/npm/tests/unit/mermaidEdgeLabelFix.test.js +161 -0
- package/data/probe/npm/tests/unit/mermaidHtmlEntities.test.js +76 -0
- package/data/probe/npm/tests/unit/mermaidInfiniteLoopFix.test.js +64 -0
- package/data/probe/npm/tests/unit/mermaidValidation.test.js +723 -0
- package/data/probe/npm/tests/unit/mermaidValidationVisorExample.test.js +309 -0
- package/data/probe/npm/tests/unit/probe-agent-clone-realistic.test.js +643 -0
- package/data/probe/npm/tests/unit/probe-agent-clone.test.js +476 -0
- package/data/probe/npm/tests/unit/probe-agent-delegate.test.js +400 -0
- package/data/probe/npm/tests/unit/probe-agent-model-option.test.js +118 -0
- package/data/probe/npm/tests/unit/probeTool-security.test.js +283 -0
- package/data/probe/npm/tests/unit/readImageTool.test.js +418 -0
- package/data/probe/npm/tests/unit/retryManager.test.js +317 -0
- package/data/probe/npm/tests/unit/schema-aware-reminders.test.js +288 -0
- package/data/probe/npm/tests/unit/schemaDefinitionDetection.test.js +115 -0
- package/data/probe/npm/tests/unit/schemaUtils.test.js +1268 -0
- package/data/probe/npm/tests/unit/simpleTelemetry.test.js +282 -0
- package/data/probe/npm/tests/unit/simplified-attempt-completion.test.js +274 -0
- package/data/probe/npm/tests/unit/single-quote-json-bug.test.js +231 -0
- package/data/probe/npm/tests/unit/subgraphAutoFix.test.js +110 -0
- package/data/probe/npm/tests/unit/system-prompt.test.js +32 -0
- package/data/probe/npm/tests/unit/types-probe-agent-options.test.js +42 -0
- package/data/probe/npm/tests/unit/xmlParsing.test.js +720 -0
- package/data/probe/npm/tsconfig.json +21 -0
- package/data/probe/result1.txt +19 -0
- package/data/probe/result2.txt +26 -0
- package/data/probe/scripts/benchmark.sh +270 -0
- package/data/probe/scripts/cache_memory_analysis.rs +844 -0
- package/data/probe/scripts/claude-hook-wrapper.sh +56 -0
- package/data/probe/site/.env.example +10 -0
- package/data/probe/site/DEPLOYMENT.md +86 -0
- package/data/probe/site/README.md +183 -0
- package/data/probe/site/adding-languages.md +135 -0
- package/data/probe/site/ai-chat.md +427 -0
- package/data/probe/site/ai-integration.md +1488 -0
- package/data/probe/site/blog/agentic-flow-custom-xml-protocol.md +407 -0
- package/data/probe/site/blog/index.md +118 -0
- package/data/probe/site/blog/v0.6.0-release.md +426 -0
- package/data/probe/site/blog.md +8 -0
- package/data/probe/site/changelog.md +200 -0
- package/data/probe/site/cli-mode.md +437 -0
- package/data/probe/site/code-extraction.md +436 -0
- package/data/probe/site/contributing/README.md +9 -0
- package/data/probe/site/contributing/documentation-cross-references.md +215 -0
- package/data/probe/site/contributing/documentation-maintenance.md +275 -0
- package/data/probe/site/contributing/documentation-structure.md +75 -0
- package/data/probe/site/documentation-cross-references.md +215 -0
- package/data/probe/site/documentation-guide.md +132 -0
- package/data/probe/site/documentation-maintenance.md +275 -0
- package/data/probe/site/features.md +147 -0
- package/data/probe/site/how-it-works.md +118 -0
- package/data/probe/site/index.md +175 -0
- package/data/probe/site/index.md.bak +133 -0
- package/data/probe/site/installation.md +235 -0
- package/data/probe/site/integrations/docker.md +248 -0
- package/data/probe/site/integrations/github-actions.md +413 -0
- package/data/probe/site/language-support-overview.md +168 -0
- package/data/probe/site/mcp-integration.md +587 -0
- package/data/probe/site/mcp-server.md +304 -0
- package/data/probe/site/navigation-structure.md +76 -0
- package/data/probe/site/nodejs-sdk.md +798 -0
- package/data/probe/site/output-formats.md +625 -0
- package/data/probe/site/package.json +21 -0
- package/data/probe/site/public/_headers +28 -0
- package/data/probe/site/public/_redirects +11 -0
- package/data/probe/site/quick-start.md +289 -0
- package/data/probe/site/search-functionality.md +291 -0
- package/data/probe/site/search-reference.md +291 -0
- package/data/probe/site/supported-languages.md +215 -0
- package/data/probe/site/use-cases/README.md +8 -0
- package/data/probe/site/use-cases/advanced-cli.md +253 -0
- package/data/probe/site/use-cases/ai-code-editors.md +239 -0
- package/data/probe/site/use-cases/building-ai-tools.md +529 -0
- package/data/probe/site/use-cases/cli-ai-workflows.md +285 -0
- package/data/probe/site/use-cases/deploying-probe-web-interface.md +255 -0
- package/data/probe/site/use-cases/integrating-probe-into-ai-code-editors.md +161 -0
- package/data/probe/site/use-cases/nodejs-sdk.md +596 -0
- package/data/probe/site/use-cases/team-chat.md +350 -0
- package/data/probe/site/web-interface.md +434 -0
- package/data/probe/site/wrangler.toml +9 -0
- package/data/probe/test-api-key.sh +1 -0
- package/data/probe/test-probe-implementation/hello.js +7 -0
- package/data/probe/test_cases/demonstrate_early_termination_issues.sh +176 -0
- package/data/probe/test_cases/early_termination_issues.rs +533 -0
- package/data/probe/test_data/test_nested_struct.go +26 -0
- package/data/probe/tests/README.md +286 -0
- package/data/probe/tests/README_search_determinism_tests.md +116 -0
- package/data/probe/tests/adjacent_comment_test.rs +152 -0
- package/data/probe/tests/apostrophe_handling_tests.rs +132 -0
- package/data/probe/tests/block_filtering_with_ast_tests.rs +669 -0
- package/data/probe/tests/block_merging_tests.rs +396 -0
- package/data/probe/tests/c_outline_format_tests.rs +2179 -0
- package/data/probe/tests/cache_invalidation_issues.rs.disabled +682 -0
- package/data/probe/tests/cache_order_tests.rs +147 -0
- package/data/probe/tests/cache_query_scoping_tests.rs +221 -0
- package/data/probe/tests/cli_tests.rs +680 -0
- package/data/probe/tests/comment_context_integration_test.rs +240 -0
- package/data/probe/tests/common.rs +33 -0
- package/data/probe/tests/complex_block_merging_tests.rs +599 -0
- package/data/probe/tests/complex_query_block_filtering_tests.rs +422 -0
- package/data/probe/tests/control_flow_closing_braces_test.rs +91 -0
- package/data/probe/tests/cpp_outline_format_tests.rs +1507 -0
- package/data/probe/tests/csharp_outline_format_tests.rs +941 -0
- package/data/probe/tests/elastic_query_integration_tests.rs +922 -0
- package/data/probe/tests/extract_command_tests.rs +1848 -0
- package/data/probe/tests/extract_deduplication_tests.rs +146 -0
- package/data/probe/tests/extract_input_file_tests.rs +84 -0
- package/data/probe/tests/extract_prompt_tests.rs +102 -0
- package/data/probe/tests/filename_search_tests.rs +96 -0
- package/data/probe/tests/fixtures/user/AssemblyInfo.cs +3 -0
- package/data/probe/tests/github_extract_tests.rs +234 -0
- package/data/probe/tests/go_comment_test.rs +253 -0
- package/data/probe/tests/go_outline_format_tests.rs +2587 -0
- package/data/probe/tests/go_path_resolver_tests.rs +96 -0
- package/data/probe/tests/html_outline_format_tests.rs +637 -0
- package/data/probe/tests/integration_tests.rs +837 -0
- package/data/probe/tests/ip_whitelist_test.rs +148 -0
- package/data/probe/tests/java_outline_format_tests.rs +1611 -0
- package/data/probe/tests/javascript_extract_tests.rs +315 -0
- package/data/probe/tests/javascript_outline_format_tests.rs +1464 -0
- package/data/probe/tests/json_format_tests.rs +436 -0
- package/data/probe/tests/json_schema_validation_tests.rs +450 -0
- package/data/probe/tests/lib_usage.rs +60 -0
- package/data/probe/tests/line_comment_context_extension_test.rs +459 -0
- package/data/probe/tests/line_map_cache_tests.rs +114 -0
- package/data/probe/tests/markdown_integration_tests.rs +190 -0
- package/data/probe/tests/mocks/test_ip_whitelist.go +11 -0
- package/data/probe/tests/mocks/test_object.js +27 -0
- package/data/probe/tests/mocks/test_struct.go +50 -0
- package/data/probe/tests/multi_keyword_pattern_tests.rs +464 -0
- package/data/probe/tests/multi_language_syntax_integration_tests.rs +218 -0
- package/data/probe/tests/multiple_capture_groups_tests.rs +169 -0
- package/data/probe/tests/negative_compound_word_tests.rs +246 -0
- package/data/probe/tests/nested_symbol_extraction_tests.rs +99 -0
- package/data/probe/tests/outline_cross_file_interference_test.rs +335 -0
- package/data/probe/tests/outline_keyword_preservation_test.rs +67 -0
- package/data/probe/tests/output_format_edge_cases_tests.rs +693 -0
- package/data/probe/tests/parallel_extraction_tests.rs +178 -0
- package/data/probe/tests/parallel_search_tests.rs +355 -0
- package/data/probe/tests/path_resolver_tests.rs +698 -0
- package/data/probe/tests/php_outline_format_extended_tests.rs +928 -0
- package/data/probe/tests/php_outline_format_tests.rs +768 -0
- package/data/probe/tests/property_tests.proptest-regressions +9 -0
- package/data/probe/tests/property_tests.rs +118 -0
- package/data/probe/tests/python_outline_format_tests.rs +1538 -0
- package/data/probe/tests/query_command_json_tests.rs +438 -0
- package/data/probe/tests/query_command_tests.rs +232 -0
- package/data/probe/tests/query_command_xml_tests.rs +569 -0
- package/data/probe/tests/quoted_term_with_negative_keyword_tests.rs +216 -0
- package/data/probe/tests/required_terms_filename_tests.rs +116 -0
- package/data/probe/tests/ruby_outline_format_tests.rs +1011 -0
- package/data/probe/tests/rust_line_comment_context_test.rs +151 -0
- package/data/probe/tests/rust_outline_format_enhanced_tests.rs +725 -0
- package/data/probe/tests/rust_outline_format_tests.rs +843 -0
- package/data/probe/tests/schemas/xml_output_schema.xsd +38 -0
- package/data/probe/tests/search_determinism_tests.rs +451 -0
- package/data/probe/tests/search_hints_tests.rs +253 -0
- package/data/probe/tests/special_character_escaping_tests.rs +417 -0
- package/data/probe/tests/stemming_compound_word_filtering_tests.rs +535 -0
- package/data/probe/tests/strict_elastic_syntax_tests.rs +404 -0
- package/data/probe/tests/swift_outline_format_tests.rs +3319 -0
- package/data/probe/tests/symbols_tests.rs +166 -0
- package/data/probe/tests/test_file.rs +45 -0
- package/data/probe/tests/test_tokenize.rs +28 -0
- package/data/probe/tests/timeout_tests.rs +82 -0
- package/data/probe/tests/tokenization_tests.rs +195 -0
- package/data/probe/tests/tokenized_block_filtering_tests.rs +174 -0
- package/data/probe/tests/typescript_extract_tests.rs +214 -0
- package/data/probe/tests/typescript_outline_format_tests.rs +2188 -0
- package/data/probe/tests/xml_format_tests.rs +568 -0
- package/data/probe/tests/xml_schema_validation_tests.rs +497 -0
- package/data/scripts/postinstall.mjs +9 -0
- package/data/scripts/set-version.js +0 -0
- package/data/scripts/wiki-build.sh +111 -0
- package/data/scripts/wiki-deploy.sh +73 -0
- package/data/serve.json +12 -0
- package/data/test/demo-dynamic.html +134 -0
- package/data/test/demo-esm.html +105 -0
- package/data/test/demo-iife.html +78 -0
- package/data/tsconfig.json +7 -0
- package/data/vite.server.ts +483 -0
- package/data/vitest.config.ts +40 -0
- package/data/wiki/Home.md +58 -0
- package/data/wiki/_Sidebar.md +39 -0
- package/docs-mcp.config.json +20 -0
- package/package.json +56 -0
- package/src/config.js +111 -0
- package/src/index.js +395 -0
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
# Quick Start
|
|
2
|
+
|
|
3
|
+
This guide will help you get up and running with Probe quickly. For more detailed information, check out the other sections of the documentation.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
The easiest way to install Probe is via npm:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g @probelabs/probe@latest
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Or using curl (for macOS and Linux):
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
curl -fsSL https://raw.githubusercontent.com/probelabs/probe/main/install.sh | bash
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Or using PowerShell (for Windows):
|
|
20
|
+
|
|
21
|
+
```powershell
|
|
22
|
+
iwr -useb https://raw.githubusercontent.com/probelabs/probe/main/install.ps1 | iex
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
For more detailed installation instructions, including manual installation and building from source, see the [Installation Guide](/installation).
|
|
26
|
+
|
|
27
|
+
## Basic Search Example
|
|
28
|
+
|
|
29
|
+
Search for code containing the phrase "llm pricing" in the current directory:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
probe search "llm pricing" ./
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
This will search for the terms "llm" and "pricing" in your codebase and return the most relevant code blocks.
|
|
36
|
+
|
|
37
|
+
For more advanced search techniques and options, see the [Search Functionality](/search-functionality) documentation.
|
|
38
|
+
|
|
39
|
+
## Advanced Search (with Token Limiting)
|
|
40
|
+
|
|
41
|
+
Search for "prompt injection" in the current directory but limit the total tokens to 10000 (useful for AI tools with context window constraints):
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
probe search "prompt injection" ./ --max-tokens 10000
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
This is particularly useful when you need to feed the results into an AI model with a limited context window. Learn more about AI integration in the [AI Integration Overview](/ai-integration).
|
|
48
|
+
|
|
49
|
+
## Session-Based Caching
|
|
50
|
+
|
|
51
|
+
Use session IDs to avoid seeing the same code blocks multiple times in related searches:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# First search - generates a session ID
|
|
55
|
+
probe search "authentication" --session ""
|
|
56
|
+
# Session: a1b2 (example output)
|
|
57
|
+
|
|
58
|
+
# Subsequent searches - reuse the session ID
|
|
59
|
+
probe search "login" --session "a1b2"
|
|
60
|
+
# Will skip code blocks already shown in the previous search
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
In Node.js applications:
|
|
64
|
+
|
|
65
|
+
```javascript
|
|
66
|
+
import { search } from '@probelabs/probe';
|
|
67
|
+
|
|
68
|
+
// First search with empty session string (generates a session ID)
|
|
69
|
+
const results1 = await search({
|
|
70
|
+
path: '/path/to/your/project',
|
|
71
|
+
query: 'authentication',
|
|
72
|
+
session: ''
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
// Get the session ID from the results
|
|
76
|
+
const sessionId = results1.session;
|
|
77
|
+
|
|
78
|
+
// Use the same session ID for related searches
|
|
79
|
+
const results2 = await search({
|
|
80
|
+
path: '/path/to/your/project',
|
|
81
|
+
query: 'login',
|
|
82
|
+
session: sessionId
|
|
83
|
+
});
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
This is especially useful when performing multiple related searches, as it helps avoid duplicate results and provides a more cohesive search experience.
|
|
87
|
+
|
|
88
|
+
## Elastic Search Queries
|
|
89
|
+
|
|
90
|
+
Use advanced query syntax for more powerful searches:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# Use AND operator for terms that must appear together
|
|
94
|
+
probe search "error AND handling" ./
|
|
95
|
+
|
|
96
|
+
# Use OR operator for alternative terms
|
|
97
|
+
probe search "login OR authentication OR auth" ./src
|
|
98
|
+
|
|
99
|
+
# Group terms with parentheses for complex queries
|
|
100
|
+
probe search "(error OR exception) AND (handle OR process)" ./
|
|
101
|
+
|
|
102
|
+
# Use wildcards for partial matching
|
|
103
|
+
probe search "auth* connect*" ./
|
|
104
|
+
|
|
105
|
+
# Exclude terms with NOT operator
|
|
106
|
+
probe search "database NOT sqlite" ./
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
For a complete reference of search syntax and capabilities, see the [Search Functionality](/search-functionality#elastic-search-syntax) documentation.
|
|
110
|
+
|
|
111
|
+
## Extract Code Blocks
|
|
112
|
+
|
|
113
|
+
Extract a specific function or code block containing line 42 in main.rs:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
probe extract src/main.rs:42
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
This will use tree-sitter to find the closest suitable parent node (function, struct, class, etc.) for that line.
|
|
120
|
+
|
|
121
|
+
You can even pipe failing test output and it will extract needed files and AST out of it:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
go test | probe extract
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Extract code with LLM prompt and instructions for AI integration:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# Extract with engineer prompt template
|
|
131
|
+
probe extract src/auth.rs#authenticate --prompt engineer --instructions "Explain this authentication function"
|
|
132
|
+
|
|
133
|
+
# Extract with architect prompt template
|
|
134
|
+
probe extract src/api.js --prompt architect --instructions "Analyze this API module"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
To learn more about code extraction features, see the [Code Extraction](/code-extraction) documentation.
|
|
138
|
+
|
|
139
|
+
## Query Code Structures
|
|
140
|
+
|
|
141
|
+
Find specific code structures using tree-sitter patterns:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
# Find JavaScript functions
|
|
145
|
+
probe query "function $NAME($$$PARAMS) $$$BODY" ./src --language javascript
|
|
146
|
+
|
|
147
|
+
# Find Python functions
|
|
148
|
+
probe query "def $NAME($$$PARAMS): $$$BODY" ./src --language python
|
|
149
|
+
|
|
150
|
+
# Find Go structs
|
|
151
|
+
probe query "type $NAME struct { $$$FIELDS }" ./src --language go
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
The query command uses tree-sitter patterns to find specific code structures in your codebase. This is more precise than text-based search and understands the syntax of the programming language.
|
|
155
|
+
|
|
156
|
+
For more details on the query command, see the [CLI Mode](/cli-mode#query-command) documentation.
|
|
157
|
+
|
|
158
|
+
## Interactive AI Chat
|
|
159
|
+
Use the built-in AI assistant with web interface for the best code search experience:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# Run directly with npx (no installation needed)
|
|
163
|
+
npx -y @probelabs/probe-chat@latest --web
|
|
164
|
+
npx -y @probelabs/probe-chat@latest
|
|
165
|
+
|
|
166
|
+
# Set your API key first
|
|
167
|
+
export ANTHROPIC_API_KEY=your_api_key
|
|
168
|
+
# Or for OpenAI
|
|
169
|
+
# export OPENAI_API_KEY=your_api_key
|
|
170
|
+
|
|
171
|
+
# Specify a directory to search (optional)
|
|
172
|
+
npx -y @probelabs/probe-chat@latest /path/to/your/project
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Example questions you might ask:
|
|
176
|
+
- "How does the ranking algorithm work?"
|
|
177
|
+
- "Explain the file structure of this project"
|
|
178
|
+
- "What are the main components of the search functionality?"
|
|
179
|
+
|
|
180
|
+
For more details on the AI chat capabilities, see the [AI Chat Mode](/ai-chat) documentation.
|
|
181
|
+
|
|
182
|
+
## MCP Server Integration
|
|
183
|
+
|
|
184
|
+
Integrate with any AI editor by adding this to your MCP configuration:
|
|
185
|
+
|
|
186
|
+
```json
|
|
187
|
+
{
|
|
188
|
+
"mcpServers": {
|
|
189
|
+
"memory": {
|
|
190
|
+
"command": "npx",
|
|
191
|
+
"args": [
|
|
192
|
+
"-y",
|
|
193
|
+
"@probelabs/probe",
|
|
194
|
+
"mcp"
|
|
195
|
+
]
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Example queries you can use with your AI assistant:
|
|
202
|
+
- "Do the probe and search my codebase for implementations of the ranking algorithm"
|
|
203
|
+
- "Using probe find all functions related to error handling in the src directory"
|
|
204
|
+
|
|
205
|
+
For more information on MCP integration, see the [MCP Integration](/mcp-integration) and [MCP Server](/mcp-server) documentation.
|
|
206
|
+
|
|
207
|
+
## Node.js SDK Usage
|
|
208
|
+
|
|
209
|
+
Use Probe programmatically in your Node.js applications:
|
|
210
|
+
|
|
211
|
+
```javascript
|
|
212
|
+
import { search, query, extract } from '@probelabs/probe';
|
|
213
|
+
|
|
214
|
+
// Search for code
|
|
215
|
+
const searchResults = await search({
|
|
216
|
+
path: '/path/to/your/project',
|
|
217
|
+
query: 'authentication',
|
|
218
|
+
maxResults: 10
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
// Query for specific code structures
|
|
222
|
+
const queryResults = await query({
|
|
223
|
+
path: '/path/to/your/project',
|
|
224
|
+
pattern: 'function $NAME($$$PARAMS) $$$BODY',
|
|
225
|
+
language: 'javascript'
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
// Extract code blocks
|
|
229
|
+
const extractResults = await extract({
|
|
230
|
+
files: ['/path/to/your/project/src/main.js:42']
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
// Extract with LLM prompt and instructions
|
|
234
|
+
const extractWithPrompt = await extract({
|
|
235
|
+
files: ['/path/to/your/project/src/auth.js#authenticate'],
|
|
236
|
+
prompt: 'engineer',
|
|
237
|
+
instructions: 'Explain this authentication function'
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
console.log(searchResults);
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
For comprehensive documentation on the Node.js SDK, see the [Node.js SDK](/nodejs-sdk) documentation.
|
|
244
|
+
|
|
245
|
+
## Choose Your Path
|
|
246
|
+
|
|
247
|
+
Depending on how you plan to use Probe, we have specific guides tailored to different user needs:
|
|
248
|
+
|
|
249
|
+
### I am an AI Code Editor User
|
|
250
|
+
|
|
251
|
+
If you want to integrate Probe with your AI-powered code editor (like Cline, GitHub Copilot, or other MCP-compatible assistants):
|
|
252
|
+
|
|
253
|
+
- [Integrating Probe into AI Code Editors](/use-cases/integrating-probe-into-ai-code-editors) - Set up the MCP server, configure your editor, and start asking questions about your code
|
|
254
|
+
|
|
255
|
+
### I am a CLI Power User
|
|
256
|
+
|
|
257
|
+
If you need advanced text-based queries or want to feed code blocks into LLMs:
|
|
258
|
+
|
|
259
|
+
- [Advanced CLI: Speed, Token Limits, and Large Repos](/use-cases/advanced-cli) - Learn techniques for handling large codebases, optimizing token usage, and integrating with other CLI tools
|
|
260
|
+
|
|
261
|
+
### I am a Team Admin
|
|
262
|
+
|
|
263
|
+
If you're looking for a centralized server or chat interface for your team:
|
|
264
|
+
|
|
265
|
+
- [Deploying the Probe Web Interface](/use-cases/deploying-probe-web-interface) - Set up a Docker-based deployment, manage security, and configure for team usage
|
|
266
|
+
|
|
267
|
+
### I am an AI Tooling Developer
|
|
268
|
+
|
|
269
|
+
If you want to embed Probe programmatically into your Node.js or Python tools:
|
|
270
|
+
|
|
271
|
+
- [Building AI Tools on Probe](/use-cases/building-ai-tools) - Use the Node.js SDK, integrate with LangChain or Vercel AI SDK, and build custom AI-powered code tools
|
|
272
|
+
|
|
273
|
+
### Automating Workflows
|
|
274
|
+
|
|
275
|
+
If you want to integrate Probe into your CI/CD or development workflows:
|
|
276
|
+
|
|
277
|
+
- [GitHub Actions Integration](/integrations/github-actions) - Automate issue responses and PR reviews using Probe directly within GitHub.
|
|
278
|
+
|
|
279
|
+
## Reference Documentation
|
|
280
|
+
|
|
281
|
+
For comprehensive reference information:
|
|
282
|
+
|
|
283
|
+
- [CLI Reference (Commands & Flags)](/cli-mode) - Complete command-line reference
|
|
284
|
+
- [AI Integration Overview](/ai-integration) - Overview of all AI capabilities
|
|
285
|
+
- [MCP Protocol & Tools Reference](/mcp-server) - Detailed MCP server documentation
|
|
286
|
+
- [Node.js SDK API Reference](/nodejs-sdk) - Complete SDK API reference
|
|
287
|
+
- [Output Formats Reference](/output-formats) - JSON, XML, and other output formats
|
|
288
|
+
- [How It Works](/how-it-works) - Understand the technology behind Probe
|
|
289
|
+
- [Language Support](/language-support-overview) - See how Probe understands different programming languages
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
# Search Functionality Reference
|
|
2
|
+
|
|
3
|
+
Complete reference documentation for Probe's search capabilities, including query syntax, ranking algorithms, and advanced search techniques.
|
|
4
|
+
|
|
5
|
+
## SEARCH COMMAND
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
probe search <QUERY> [PATH] [OPTIONS]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### CORE PARAMETERS
|
|
12
|
+
|
|
13
|
+
| Parameter | Description |
|
|
14
|
+
|-----------|-------------|
|
|
15
|
+
| `<QUERY>` | **Required**: Search terms or expression |
|
|
16
|
+
| `[PATH]` | Directory to search (defaults to current directory) |
|
|
17
|
+
|
|
18
|
+
### KEY OPTIONS
|
|
19
|
+
|
|
20
|
+
| Option | Description | Default |
|
|
21
|
+
|--------|-------------|---------|
|
|
22
|
+
| `--files-only` | List matching files without code blocks | Off |
|
|
23
|
+
| `--ignore <PATTERN>` | Additional patterns to ignore | None |
|
|
24
|
+
| `--exclude-filenames, -n` | Exclude filenames from matching | Off |
|
|
25
|
+
| `--reranker, -r <TYPE>` | Ranking algorithm: `hybrid`, `hybrid2`, `bm25`, `tfidf` | `hybrid` |
|
|
26
|
+
| `--frequency, -s` | Enable smart token matching | On |
|
|
27
|
+
| `--max-results <N>` | Limit number of results | No limit |
|
|
28
|
+
| `--max-bytes <N>` | Limit total bytes of code returned | No limit |
|
|
29
|
+
| `--max-tokens <N>` | Limit total tokens | No limit |
|
|
30
|
+
| `--allow-tests` | Include test files and code | Off |
|
|
31
|
+
| `--any-term` | Match any search term (OR logic) | Off |
|
|
32
|
+
| `--no-merge` | Keep code blocks separate | Off |
|
|
33
|
+
| `--merge-threshold <N>` | Max lines between blocks to merge | 5 |
|
|
34
|
+
| `--session <ID>` | Session ID for caching results | None |
|
|
35
|
+
| `--format <TYPE>` | Output format: `color`, `plain`, `markdown`, `json` | `color` |
|
|
36
|
+
|
|
37
|
+
For complete option details, see `probe search --help`.
|
|
38
|
+
|
|
39
|
+
## QUERY PROCESSING
|
|
40
|
+
|
|
41
|
+
Probe enhances search queries through several techniques:
|
|
42
|
+
|
|
43
|
+
### TOKENIZATION
|
|
44
|
+
|
|
45
|
+
Breaks down terms into tokens:
|
|
46
|
+
```
|
|
47
|
+
findUserByEmail → [find, user, by, email]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### STEMMING
|
|
51
|
+
|
|
52
|
+
Reduces words to their root form:
|
|
53
|
+
```
|
|
54
|
+
implementing, implementation → implement
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### SMART PATTERN GENERATION
|
|
58
|
+
|
|
59
|
+
- **Term Boundaries**: Understands where code tokens start/end
|
|
60
|
+
- **Case Handling**: Works with camelCase, snake_case, etc.
|
|
61
|
+
- **Compound Handling**: Breaks down compound terms
|
|
62
|
+
|
|
63
|
+
## QUERY SYNTAX
|
|
64
|
+
|
|
65
|
+
Probe supports an Elasticsearch-like query syntax:
|
|
66
|
+
|
|
67
|
+
### BASIC TERMS
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
probe search "authentication" # Single term
|
|
71
|
+
probe search "user authentication" # Multiple terms (AND logic)
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### BOOLEAN OPERATORS
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
probe search "error AND handling" # Require both terms
|
|
78
|
+
probe search "login OR authentication" # Match either term
|
|
79
|
+
probe search "database NOT sqlite" # Exclude term
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### GROUPING
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
probe search "(error OR exception) AND (handle OR process)"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### TERM MODIFIERS
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
probe search "+authentication login" # Required term
|
|
92
|
+
probe search "database -sqlite" # Excluded term
|
|
93
|
+
probe search "\"handle error\"" # Exact phrase
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### FIELD SPECIFIERS
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
probe search "function:authenticate" # Search in function names
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### SEARCH HINTS
|
|
103
|
+
|
|
104
|
+
Search hints allow you to filter results by file properties. These filters are applied at the file discovery stage and removed from the query before content searching:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
probe search "error AND ext:rs" # Only search in .rs files
|
|
108
|
+
probe search "class AND file:src/**/*.py" # Only search in Python files under src/
|
|
109
|
+
probe search "function AND dir:tests" # Only search in files under tests/ directory
|
|
110
|
+
probe search "struct AND type:rust" # Only search in Rust files
|
|
111
|
+
probe search "component AND lang:javascript" # Only search in JavaScript files
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Available Search Hints:**
|
|
115
|
+
|
|
116
|
+
| Hint | Description | Examples |
|
|
117
|
+
|------|-------------|----------|
|
|
118
|
+
| `ext:<extension>` | Filter by file extension | `ext:rs`, `ext:py,js,ts` |
|
|
119
|
+
| `file:<pattern>` | Filter by file path pattern (supports globs) | `file:src/**/*.rs`, `file:*test*` |
|
|
120
|
+
| `path:<pattern>` | Alias for `file:` | `path:src/main.rs` |
|
|
121
|
+
| `dir:<pattern>` | Filter by directory pattern | `dir:src`, `dir:tests` |
|
|
122
|
+
| `type:<filetype>` | Filter by ripgrep file type | `type:rust`, `type:javascript` |
|
|
123
|
+
| `lang:<language>` | Filter by programming language | `lang:rust`, `lang:python` |
|
|
124
|
+
|
|
125
|
+
**Combining Search Hints:**
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Multiple filters (all must match)
|
|
129
|
+
probe search "config AND ext:rs AND dir:src"
|
|
130
|
+
|
|
131
|
+
# Multiple extensions (any can match)
|
|
132
|
+
probe search "import AND ext:js,ts,jsx,tsx"
|
|
133
|
+
|
|
134
|
+
# Complex combinations
|
|
135
|
+
probe search "(error OR exception) AND ext:rs AND file:src/**/*"
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### WILDCARDS
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
probe search "auth*" # Matches "auth", "authentication", "authorize", etc.
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## RANKING ALGORITHMS
|
|
145
|
+
|
|
146
|
+
Probe uses sophisticated algorithms to rank search results:
|
|
147
|
+
|
|
148
|
+
### TF-IDF RANKING
|
|
149
|
+
|
|
150
|
+
Term Frequency-Inverse Document Frequency balances how often terms appear in a specific code block against how common they are across the codebase.
|
|
151
|
+
|
|
152
|
+
#### HOW IT WORKS
|
|
153
|
+
|
|
154
|
+
1. **Term Frequency (TF)**: How often a term appears in a code block
|
|
155
|
+
```
|
|
156
|
+
TF(term, block) = (Number of times term appears in block) / (Total number of terms in block)
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
2. **Inverse Document Frequency (IDF)**: Measures how unique or rare a term is
|
|
160
|
+
```
|
|
161
|
+
IDF(term) = ln(Total number of blocks / Number of blocks containing term)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
3. **TF-IDF Score**: Combines these factors
|
|
165
|
+
```
|
|
166
|
+
TF-IDF(term, block) = TF(term, block) * IDF(term)^2
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Key benefits:
|
|
170
|
+
- Rewards matches on rare, important terms
|
|
171
|
+
- Penalizes common terms that appear everywhere
|
|
172
|
+
- Considers term frequency within each code block
|
|
173
|
+
|
|
174
|
+
### BM25 RANKING
|
|
175
|
+
|
|
176
|
+
BM25 (Best Matching 25) is an improved version of TF-IDF that addresses some of its limitations.
|
|
177
|
+
|
|
178
|
+
#### HOW IT WORKS
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
BM25(block, query) = ∑ IDF(term) * (TF(term, block) * (k1 + 1)) / (TF(term, block) + k1 * (1 - b + b * (block_length / average_block_length)))
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Where:
|
|
185
|
+
- `k1` (1.2): Controls term frequency saturation
|
|
186
|
+
- `b` (0.75): Controls length normalization
|
|
187
|
+
|
|
188
|
+
Key benefits:
|
|
189
|
+
- Better handling of document length
|
|
190
|
+
- Diminishing returns for repeated terms
|
|
191
|
+
- More accurate for longer code blocks
|
|
192
|
+
- Improved handling of edge cases
|
|
193
|
+
|
|
194
|
+
### HYBRID RANKING
|
|
195
|
+
|
|
196
|
+
Probe's default ranking algorithm combines multiple signals for superior results.
|
|
197
|
+
|
|
198
|
+
#### HOW IT WORKS
|
|
199
|
+
|
|
200
|
+
The hybrid algorithm considers:
|
|
201
|
+
|
|
202
|
+
1. **Combined score**: Weighted combination of TF-IDF and BM25
|
|
203
|
+
```
|
|
204
|
+
Combined = α * TF-IDF + (1-α) * BM25
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
2. **Position weights**: Terms in function names, class names, and identifiers receive higher scores
|
|
208
|
+
|
|
209
|
+
3. **Block metrics**:
|
|
210
|
+
- Number of unique terms matched
|
|
211
|
+
- Total matches in the block
|
|
212
|
+
- Block type (methods score higher than comments)
|
|
213
|
+
|
|
214
|
+
4. **File metrics**:
|
|
215
|
+
- File match rank
|
|
216
|
+
- Number of unique terms in the file
|
|
217
|
+
- Total matches in the file
|
|
218
|
+
|
|
219
|
+
Key benefits:
|
|
220
|
+
- More balanced scoring across different code structures
|
|
221
|
+
- Better handling of both short and long code blocks
|
|
222
|
+
- Prioritizes meaningful code over comments or boilerplate
|
|
223
|
+
|
|
224
|
+
### HYBRID2 RANKING
|
|
225
|
+
|
|
226
|
+
An enhanced version of the hybrid algorithm with improved relevance:
|
|
227
|
+
- Better normalization of scores across different metrics
|
|
228
|
+
- Enhanced weighting for structural elements
|
|
229
|
+
- Improved handling of term proximity
|
|
230
|
+
- More sophisticated position weighting
|
|
231
|
+
|
|
232
|
+
## PRACTICAL EXAMPLES
|
|
233
|
+
|
|
234
|
+
### FINDING ERROR HANDLING CODE
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
probe search "error handling try catch"
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
This search:
|
|
241
|
+
1. Tokenizes to: ["error", "handl", "try", "catch"]
|
|
242
|
+
2. Matches files containing these terms
|
|
243
|
+
3. Ranks results based on term frequency and importance
|
|
244
|
+
4. Returns complete code blocks with error handling logic
|
|
245
|
+
|
|
246
|
+
### SEARCHING FOR AUTHENTICATION FLOWS
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
probe search "(login OR authenticate) AND (user OR account) NOT test"
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
This complex query:
|
|
253
|
+
1. Finds code with either "login" or "authenticate"
|
|
254
|
+
2. Requires either "user" or "account" to be present
|
|
255
|
+
3. Excludes results containing "test"
|
|
256
|
+
4. Returns ranked, complete code blocks
|
|
257
|
+
|
|
258
|
+
### FINDING SPECIFIC API ENDPOINTS
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
probe search "function:create* api endpoint"
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
This search:
|
|
265
|
+
1. Targets functions starting with "create"
|
|
266
|
+
2. Requires "api" and "endpoint" terms
|
|
267
|
+
3. Returns complete function definitions
|
|
268
|
+
4. Ranks results with the most relevant endpoints first
|
|
269
|
+
|
|
270
|
+
### LIMITING RESULTS FOR AI INTEGRATION
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
probe search "database connection pool" --max-tokens 4000 --format json
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
This search:
|
|
277
|
+
1. Finds code related to database connection pools
|
|
278
|
+
2. Limits results to fit within 4000 tokens
|
|
279
|
+
3. Returns JSON-formatted output suitable for AI processing
|
|
280
|
+
|
|
281
|
+
## PERFORMANCE TIPS
|
|
282
|
+
|
|
283
|
+
- **Be specific**: More specific queries yield more relevant results
|
|
284
|
+
- **Use field specifiers**: Target specific code elements with `function:`, `class:`, etc.
|
|
285
|
+
- **Leverage boolean operators**: Combine terms with AND, OR, NOT for precision
|
|
286
|
+
- **Control result size**: Use `--max-results`, `--max-bytes`, or `--max-tokens` for large codebases
|
|
287
|
+
- **Session caching**: Use `--session` to avoid seeing the same code blocks repeatedly
|
|
288
|
+
- **Experiment with rankers**: Try different ranking algorithms for different types of searches
|
|
289
|
+
|
|
290
|
+
For more information on how Probe works internally, see [How Probe Works](how-it-works.md).
|
|
291
|
+
For details on code extraction, see [Code Extraction](code-extraction.md).
|