@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,253 @@
|
|
|
1
|
+
# Advanced CLI: Speed, Token Limits, and Large Repos
|
|
2
|
+
|
|
3
|
+
This guide covers advanced techniques for using Probe's command-line interface effectively, especially when working with large codebases and integrating with AI tools.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Probe's CLI is designed for performance and flexibility, but working with large repositories or preparing results for AI models requires some additional techniques. This guide will show you how to optimize your workflow for speed, manage token limits, and effectively handle large codebases.
|
|
8
|
+
|
|
9
|
+
## Merging Code Blocks and Session-Based Caching
|
|
10
|
+
|
|
11
|
+
### Controlling Block Merging
|
|
12
|
+
|
|
13
|
+
By default, Probe merges adjacent code blocks to provide better context. You can control this behavior:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Disable merging completely
|
|
17
|
+
probe search "authentication" --no-merge
|
|
18
|
+
|
|
19
|
+
# Adjust the threshold for merging (default is 5 lines)
|
|
20
|
+
probe search "authentication" --merge-threshold 10
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
When to use:
|
|
24
|
+
- Use `--no-merge` when you need precise, separate results
|
|
25
|
+
- Increase `--merge-threshold` when you want more context between related blocks
|
|
26
|
+
- Decrease `--merge-threshold` for more focused results
|
|
27
|
+
|
|
28
|
+
### Session-Based Caching
|
|
29
|
+
|
|
30
|
+
When performing multiple related searches, use session-based caching to avoid seeing the same code blocks repeatedly:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# First search - generates a session ID
|
|
34
|
+
probe search "authentication" --session ""
|
|
35
|
+
# Session: a1b2c3d4 (example output)
|
|
36
|
+
|
|
37
|
+
# Subsequent searches - reuse the session ID
|
|
38
|
+
probe search "login" --session "a1b2c3d4"
|
|
39
|
+
# Will skip code blocks already shown in the previous search
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
This is particularly useful when:
|
|
43
|
+
- Exploring a topic with multiple related searches
|
|
44
|
+
- Working with AI assistants to avoid repetitive results
|
|
45
|
+
- Building up a comprehensive understanding of a feature
|
|
46
|
+
|
|
47
|
+
## Dealing with Huge Monorepos
|
|
48
|
+
|
|
49
|
+
Large monorepos present unique challenges. Here are strategies to handle them effectively:
|
|
50
|
+
|
|
51
|
+
### Targeted Directory Searches
|
|
52
|
+
|
|
53
|
+
Instead of searching the entire repository, target specific directories:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Search only in the authentication module
|
|
57
|
+
probe search "password reset" ./src/auth
|
|
58
|
+
|
|
59
|
+
# Search multiple specific directories
|
|
60
|
+
probe search "user profile" ./src/users ./src/profiles ./src/auth
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Custom Ignore Patterns
|
|
64
|
+
|
|
65
|
+
Use custom ignore patterns to exclude irrelevant directories:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# Exclude generated code, tests, and third-party libraries
|
|
69
|
+
probe search "api" --ignore "node_modules,dist,build,vendor,test,__tests__"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Two-Phase Search Approach
|
|
73
|
+
|
|
74
|
+
For very large repositories, use a two-phase approach:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Phase 1: Find relevant files
|
|
78
|
+
probe search "authentication" --files-only > auth-files.txt
|
|
79
|
+
|
|
80
|
+
# Phase 2: Search only in those files
|
|
81
|
+
cat auth-files.txt | xargs probe search "password reset"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Parallel Processing
|
|
85
|
+
|
|
86
|
+
For extremely large codebases, split the search across multiple processes:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# Split the search across multiple directories
|
|
90
|
+
find ./src -type d -maxdepth 1 | xargs -P 4 -I {} probe search "error handling" {} --format json
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Scripting with grep, xargs, etc.
|
|
94
|
+
|
|
95
|
+
Probe integrates well with standard Unix tools for powerful workflows:
|
|
96
|
+
|
|
97
|
+
### Piping and Filtering
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# Find code, then filter with grep
|
|
101
|
+
probe search "database" | grep "connection"
|
|
102
|
+
|
|
103
|
+
# Process results with awk
|
|
104
|
+
probe search "function" --format plain | awk '/export/ {print $0}'
|
|
105
|
+
|
|
106
|
+
# Count occurrences
|
|
107
|
+
probe search "TODO" --format plain | grep -c "TODO"
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Advanced xargs Usage
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# Extract code from all files matching a pattern
|
|
114
|
+
probe search "class" --files-only | xargs -I {} probe extract {}
|
|
115
|
+
|
|
116
|
+
# Process multiple search terms
|
|
117
|
+
echo -e "auth\nuser\nprofile" | xargs -I {} probe search "{}" ./src
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Creating Custom Reports
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Generate a markdown report of all TODO comments
|
|
124
|
+
probe search "TODO" --format markdown > todo-report.md
|
|
125
|
+
|
|
126
|
+
# Create a JSON report of error handling patterns
|
|
127
|
+
probe search "try|catch|error" --format json > error-handling.json
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Token-Limiting for AI Context Windows
|
|
131
|
+
|
|
132
|
+
When using Probe with AI models, managing token count is crucial:
|
|
133
|
+
|
|
134
|
+
### Limiting Output Size
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# Limit by token count (for AI context windows)
|
|
138
|
+
probe search "authentication flow" --max-tokens 8000
|
|
139
|
+
|
|
140
|
+
# Limit by byte size
|
|
141
|
+
probe search "authentication flow" --max-bytes 16000
|
|
142
|
+
|
|
143
|
+
# Limit by result count
|
|
144
|
+
probe search "authentication flow" --max-results 5
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Format Selection for AI
|
|
148
|
+
|
|
149
|
+
Different AI models work better with different formats:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
# Markdown format for most AI models
|
|
153
|
+
probe search "authentication" --format markdown
|
|
154
|
+
|
|
155
|
+
# Plain text for simpler models
|
|
156
|
+
probe search "authentication" --format plain
|
|
157
|
+
|
|
158
|
+
# JSON for programmatic processing
|
|
159
|
+
probe search "authentication" --format json
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Optimizing for Token Efficiency
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
# Exclude filenames to save tokens
|
|
166
|
+
probe search "authentication" --exclude-filenames
|
|
167
|
+
|
|
168
|
+
# Use more specific search terms to reduce noise
|
|
169
|
+
probe search "authentication function"
|
|
170
|
+
|
|
171
|
+
# Focus on specific file types
|
|
172
|
+
probe search "authentication" ./src --ignore "*.test.js,*.spec.js,*.css,*.html"
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Performance Optimization Techniques
|
|
176
|
+
|
|
177
|
+
### Search Speed Optimization
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# Use frequency-based search (default)
|
|
181
|
+
probe search "authentication" --frequency
|
|
182
|
+
|
|
183
|
+
# Use more specific search terms for better precision
|
|
184
|
+
probe search "exactString function"
|
|
185
|
+
|
|
186
|
+
# Search only filenames first, then content
|
|
187
|
+
probe search "config" --files-only
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Result Ranking Control
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
# Use different ranking algorithms
|
|
194
|
+
probe search "authentication" --reranker hybrid # Default
|
|
195
|
+
probe search "authentication" --reranker bm25 # Better for longer documents
|
|
196
|
+
probe search "authentication" --reranker tfidf # Classic algorithm
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Memory Usage Optimization
|
|
200
|
+
|
|
201
|
+
For very large repositories or limited memory environments:
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
# Process files in smaller batches
|
|
205
|
+
find ./src -name "*.js" | split -l 100 - batch_
|
|
206
|
+
for batch in batch_*; do
|
|
207
|
+
probe search "memory leak" $(cat $batch)
|
|
208
|
+
rm $batch
|
|
209
|
+
done
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
## Practical Examples
|
|
213
|
+
|
|
214
|
+
### Finding Security Issues
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
# Search for common security vulnerabilities
|
|
218
|
+
probe search "password|token|secret|api_key" --format markdown > security-audit.md
|
|
219
|
+
|
|
220
|
+
# Look for SQL injection vulnerabilities
|
|
221
|
+
probe search "exec|eval|SELECT.*FROM.*WHERE" --format json > sql-injection-check.json
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### Code Quality Analysis
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
# Find TODO comments
|
|
228
|
+
probe search "TODO|FIXME|HACK" > todos.txt
|
|
229
|
+
|
|
230
|
+
# Look for large functions
|
|
231
|
+
probe query "function $NAME($$$PARAMS) $$$BODY" ./src --language javascript > large-functions.txt
|
|
232
|
+
|
|
233
|
+
# Find deprecated API usage
|
|
234
|
+
probe search "deprecated" --format markdown > deprecated-usage.md
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### Documentation Generation
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
# Extract all exported functions
|
|
241
|
+
probe query "export function $NAME($$$PARAMS) $$$BODY" ./src --language typescript > exported-functions.txt
|
|
242
|
+
|
|
243
|
+
# Generate API documentation
|
|
244
|
+
probe query "export function $NAME($$$PARAMS) $$$BODY" ./src --language typescript | \
|
|
245
|
+
probe extract > api-docs.md
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
## Next Steps
|
|
249
|
+
|
|
250
|
+
- For AI integration, see [Integrating Probe into AI Code Editors](/use-cases/integrating-probe-into-ai-code-editors)
|
|
251
|
+
- For team collaboration, check out [Deploying the Probe Web Interface](/use-cases/deploying-probe-web-interface)
|
|
252
|
+
- For programmatic access, explore [Building AI Tools on Probe](/use-cases/building-ai-tools)
|
|
253
|
+
- For complete command reference, see the [CLI Reference (Commands & Flags)](/cli-mode)
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
# Using Probe with AI Code Editors
|
|
2
|
+
|
|
3
|
+
This guide explains how to integrate Probe with AI-powered code editors to enhance your coding experience with intelligent code search and understanding.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
AI code editors and assistants are powerful tools, but they often struggle with large codebases because they can't efficiently search and understand your entire project. Probe solves this problem by providing a specialized code search capability that AI assistants can use to find and understand relevant code.
|
|
8
|
+
|
|
9
|
+
By integrating Probe with your AI code editor, you enable your AI assistant to:
|
|
10
|
+
|
|
11
|
+
- Search your codebase with natural language queries
|
|
12
|
+
- Find specific code structures and patterns
|
|
13
|
+
- Extract complete code blocks with proper context
|
|
14
|
+
- Understand the relationships between different parts of your code
|
|
15
|
+
|
|
16
|
+
## Migrating from @probelabs/probe-mcp
|
|
17
|
+
|
|
18
|
+
If you're currently using the standalone `@probelabs/probe-mcp` package, `probe mcp` is a **drop-in replacement**. Simply change your MCP configuration from:
|
|
19
|
+
|
|
20
|
+
```json
|
|
21
|
+
"args": ["-y", "@probelabs/probe-mcp"]
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
to:
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
"args": ["-y", "@probelabs/probe", "mcp"]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
All the same tools, parameters, and functionality - just with the integrated command!
|
|
31
|
+
|
|
32
|
+
## Integration Options
|
|
33
|
+
|
|
34
|
+
### 1. MCP Server Integration (Recommended)
|
|
35
|
+
|
|
36
|
+
The Model Context Protocol (MCP) server integration is the most powerful way to connect Probe with AI editors. It allows the AI to directly use Probe's search capabilities through a standardized protocol.
|
|
37
|
+
|
|
38
|
+
#### Setting Up MCP Integration
|
|
39
|
+
|
|
40
|
+
1. **Create an MCP configuration file** in your project:
|
|
41
|
+
|
|
42
|
+
For Cline, create `.cline/mcp_config.json`:
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"mcpServers": {
|
|
47
|
+
"probe": {
|
|
48
|
+
"command": "npx",
|
|
49
|
+
"args": [
|
|
50
|
+
"-y",
|
|
51
|
+
"@probelabs/probe",
|
|
52
|
+
"mcp"
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
For Roo, Cursor, Windsurf, and other editors, the MCP configuration follows a similar pattern. Check your editor's documentation for specific details.
|
|
60
|
+
|
|
61
|
+
2. **Start your AI editor** and begin asking questions about your codebase.
|
|
62
|
+
|
|
63
|
+
3. **Use natural language queries** to search your code:
|
|
64
|
+
- "Find all authentication-related functions in the project"
|
|
65
|
+
- "Show me how error handling is implemented"
|
|
66
|
+
- "Search for code that processes user input"
|
|
67
|
+
|
|
68
|
+
### 2. Manual Search and Copy
|
|
69
|
+
|
|
70
|
+
If your AI editor doesn't support MCP, you can still use Probe manually:
|
|
71
|
+
|
|
72
|
+
1. **Run Probe searches** in your terminal:
|
|
73
|
+
```bash
|
|
74
|
+
probe search "authentication" ./src
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
2. **Copy the results** into your conversation with the AI assistant.
|
|
78
|
+
|
|
79
|
+
3. **Ask follow-up questions** based on the code you've shared.
|
|
80
|
+
|
|
81
|
+
## Example Workflows
|
|
82
|
+
|
|
83
|
+
### Exploring a New Codebase
|
|
84
|
+
|
|
85
|
+
When joining a new project or exploring an unfamiliar codebase:
|
|
86
|
+
|
|
87
|
+
1. **Ask for an overview**: "Can you help me understand the structure of this project?"
|
|
88
|
+
2. **Explore key components**: "Show me the main entry points of the application"
|
|
89
|
+
3. **Dive deeper**: "How is authentication implemented in this project?"
|
|
90
|
+
|
|
91
|
+
### Implementing New Features
|
|
92
|
+
|
|
93
|
+
When adding new functionality to an existing project:
|
|
94
|
+
|
|
95
|
+
1. **Find similar patterns**: "Show me examples of API endpoints in this codebase"
|
|
96
|
+
2. **Understand dependencies**: "What modules would I need to modify to add a new user role?"
|
|
97
|
+
3. **Get implementation guidance**: "Based on the existing code, how should I implement this new feature?"
|
|
98
|
+
|
|
99
|
+
### Debugging Issues
|
|
100
|
+
|
|
101
|
+
When troubleshooting problems:
|
|
102
|
+
|
|
103
|
+
1. **Find error handling**: "Show me how errors are handled in the authentication flow"
|
|
104
|
+
2. **Trace execution paths**: "Find all places where user input is validated"
|
|
105
|
+
3. **Identify patterns**: "Are there similar issues elsewhere in the codebase?"
|
|
106
|
+
|
|
107
|
+
## Editor-Specific Setup
|
|
108
|
+
|
|
109
|
+
### Cline
|
|
110
|
+
|
|
111
|
+
1. Create `.cline/mcp_config.json` with the configuration shown above
|
|
112
|
+
2. Start Cline in your project directory
|
|
113
|
+
3. Ask questions about your codebase
|
|
114
|
+
|
|
115
|
+
### Roo Code
|
|
116
|
+
|
|
117
|
+
1. Visit [Roo Code on GitHub](https://github.com/RooVetGit/Roo-Code) for installation instructions
|
|
118
|
+
2. Configure Roo to use Probe via MCP
|
|
119
|
+
3. Roo can be configured the same way as other editors via MCP
|
|
120
|
+
|
|
121
|
+
### VSCode with Cursor or Windsurf
|
|
122
|
+
|
|
123
|
+
1. Install the Cursor or Windsurf extension
|
|
124
|
+
2. Configure the extension to use external tools
|
|
125
|
+
3. Add the Probe MCP configuration to your settings
|
|
126
|
+
|
|
127
|
+
## Advanced Configuration
|
|
128
|
+
|
|
129
|
+
### Custom Search Paths
|
|
130
|
+
|
|
131
|
+
You can configure the MCP server to search specific directories by default:
|
|
132
|
+
|
|
133
|
+
```json
|
|
134
|
+
{
|
|
135
|
+
"mcpServers": {
|
|
136
|
+
"probe": {
|
|
137
|
+
"command": "npx",
|
|
138
|
+
"args": [
|
|
139
|
+
"-y",
|
|
140
|
+
"@probelabs/probe",
|
|
141
|
+
"mcp"
|
|
142
|
+
],
|
|
143
|
+
"env": {
|
|
144
|
+
"PROBE_DEFAULT_PATHS": "/path/to/project1,/path/to/project2"
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Limiting Results
|
|
152
|
+
|
|
153
|
+
For large codebases, you can limit the amount of code returned:
|
|
154
|
+
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"mcpServers": {
|
|
158
|
+
"probe": {
|
|
159
|
+
"command": "npx",
|
|
160
|
+
"args": [
|
|
161
|
+
"-y",
|
|
162
|
+
"@probelabs/probe",
|
|
163
|
+
"mcp"
|
|
164
|
+
],
|
|
165
|
+
"env": {
|
|
166
|
+
"PROBE_MAX_TOKENS": "20000"
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Optimizing Probe Usage in AI Editors
|
|
174
|
+
|
|
175
|
+
To get the most out of Probe in your AI code editor, you can provide custom instructions to guide how the AI uses Probe's tools. Below is an example from a `.roomodes` configuration file that optimizes Probe usage:
|
|
176
|
+
|
|
177
|
+
```json
|
|
178
|
+
{
|
|
179
|
+
"customModes": [
|
|
180
|
+
{
|
|
181
|
+
"slug": "ask-probe",
|
|
182
|
+
"name": "Ask Probe",
|
|
183
|
+
"roleDefinition": "You are Roo, a code intelligence assistant powered by the Probe MCP tools. Always prefer Probe MCP tools for searching the code. Rather then guessing, start with using `search_code` tool, with exact keywords, and extend your search deeper. AVOID reading full files, unless absolutelly necessary. Use this tools as a scalpel, not a hammer. Use 'exact' parameter if you looking for something specific. Avoid searching with too common keywords, like 'if', 'for', 'while', etc. If you need to extract a specific code block, use `extract_code` tool. If you need to find a specific code structure, use `query_code` tool. If you are unsure about the results, refine your query or ask for clarification.",
|
|
184
|
+
"groups": [
|
|
185
|
+
"read",
|
|
186
|
+
"mcp"
|
|
187
|
+
],
|
|
188
|
+
"customInstructions": "Leverage Probe MCP tools effectively:\n\n1. **search_code**:\n - Use simple, unique keywords (e.g., 'rpc' over 'rpc layer')\n - Use ElasticSearch query language: ALWAYS use + for required terms, and omit for general and optional, - for excluded terms, and AND/OR for logic. Prefer explicit searches, with this syntax.\n\n2. **query_code**:\n - Craft tree-sitter patterns (e.g., 'fn $NAME($$$PARAMS) $$$BODY') for specific structures\n - Match patterns to the language (e.g., Rust, Python)\n - Use sparingly for precise structural queries\n\n3. **extract_code**:\n - Extract blocks by line number (e.g., '/file.rs:42') or full files for context\n - Include `contextLines` only if AST parsing fails\n\n**Approach**:\n- Start with a clear search strategy\n- Interpret results concisely, tying them to the user's question\n- If unsure, refine queries or ask for clarification"
|
|
189
|
+
}
|
|
190
|
+
]
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
This configuration instructs the AI to:
|
|
195
|
+
- Use Probe MCP tools as the primary method for code search
|
|
196
|
+
- Start with specific keywords rather than guessing
|
|
197
|
+
- Use the appropriate tool for each task (search_code, query_code, extract_code)
|
|
198
|
+
- Follow best practices for each tool, such as using ElasticSearch query syntax
|
|
199
|
+
- Avoid common pitfalls like searching with overly generic terms
|
|
200
|
+
|
|
201
|
+
## Best Practices
|
|
202
|
+
|
|
203
|
+
1. **Be specific in your queries**: Instead of "show me the code," ask "show me the authentication implementation in the user service"
|
|
204
|
+
|
|
205
|
+
2. **Provide context**: Tell the AI what you're trying to accomplish so it can formulate better searches
|
|
206
|
+
|
|
207
|
+
3. **Use follow-up questions**: Build on previous results to explore the code more deeply
|
|
208
|
+
|
|
209
|
+
4. **Combine with documentation**: Ask the AI to explain the code it finds by referencing project documentation
|
|
210
|
+
|
|
211
|
+
5. **Iterate on searches**: If you don't find what you're looking for, try reformulating your query
|
|
212
|
+
|
|
213
|
+
6. **Consider privacy implications**: Remember that when using Probe with external AI services, code snippets are sent to those services
|
|
214
|
+
|
|
215
|
+
## Troubleshooting
|
|
216
|
+
|
|
217
|
+
### Common Issues
|
|
218
|
+
|
|
219
|
+
| Issue | Solution |
|
|
220
|
+
|-------|----------|
|
|
221
|
+
| AI doesn't use Probe | Explicitly ask the AI to use Probe: "Using Probe, search for..." |
|
|
222
|
+
| Empty search results | Try a simpler query or check if you're searching in the right directory |
|
|
223
|
+
| Too much code returned | Use more specific queries or configure result limits |
|
|
224
|
+
| MCP server not starting | Check your MCP configuration and ensure npx is installed |
|
|
225
|
+
| Privacy concerns with sensitive code | Use local AI models or limit searches to non-sensitive code areas |
|
|
226
|
+
|
|
227
|
+
### Getting Help
|
|
228
|
+
|
|
229
|
+
If you encounter issues with the MCP integration:
|
|
230
|
+
|
|
231
|
+
1. Check the [MCP Server Reference](/mcp-server) for detailed information
|
|
232
|
+
2. Visit the [Probe GitHub repository](https://github.com/probelabs/probe) for the latest updates
|
|
233
|
+
3. Open an issue if you encounter a bug or have a feature request
|
|
234
|
+
|
|
235
|
+
## Next Steps
|
|
236
|
+
|
|
237
|
+
- Learn about [Probe's CLI capabilities](/cli-mode) for advanced usage
|
|
238
|
+
- Explore [hosting a team chat](/use-cases/team-chat) for collaborative code exploration
|
|
239
|
+
- Check out [building custom tools](/use-cases/nodejs-sdk) with the Node.js SDK
|