@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,285 @@
|
|
|
1
|
+
# Using Probe in the CLI for Advanced AI
|
|
2
|
+
|
|
3
|
+
This guide explains how to use Probe's CLI-based AI chat capabilities for powerful code exploration and understanding directly from your terminal.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Probe's AI Chat mode combines the power of large language models with Probe's code search capabilities, all in a convenient command-line interface. This integration allows you to have natural conversations about your codebase without leaving your terminal.
|
|
8
|
+
|
|
9
|
+
Key benefits:
|
|
10
|
+
|
|
11
|
+
- **Natural Language Understanding**: Ask questions about your code in plain English
|
|
12
|
+
- **Contextual Awareness**: The AI maintains conversation history for follow-up questions
|
|
13
|
+
- **Code-Aware Responses**: Get explanations that reference specific files and line numbers
|
|
14
|
+
- **Intelligent Search**: The AI automatically formulates optimal search queries based on your questions
|
|
15
|
+
- **Local Search Engine**: Probe searches your code locally without requiring embedding generation, but search results are sent to the AI service
|
|
16
|
+
|
|
17
|
+
## Getting Started
|
|
18
|
+
|
|
19
|
+
### Quick Setup
|
|
20
|
+
|
|
21
|
+
The fastest way to get started is using npx:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Set your API key first
|
|
25
|
+
export ANTHROPIC_API_KEY=your_api_key
|
|
26
|
+
# Or for OpenAI
|
|
27
|
+
# export OPENAI_API_KEY=your_api_key
|
|
28
|
+
|
|
29
|
+
# Run directly with npx (no installation needed)
|
|
30
|
+
npx -y @probelabs/probe-chat@latest
|
|
31
|
+
|
|
32
|
+
# Or specify a directory to search
|
|
33
|
+
npx -y @probelabs/probe-chat@latest /path/to/your/project
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Global Installation
|
|
37
|
+
|
|
38
|
+
For regular use, you might prefer a global installation:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# Install globally
|
|
42
|
+
npm install -g @probelabs/probe-chat@latest
|
|
43
|
+
|
|
44
|
+
# Start the chat interface
|
|
45
|
+
probe-chat
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Common Workflows
|
|
49
|
+
|
|
50
|
+
### 1. Exploring a New Codebase
|
|
51
|
+
|
|
52
|
+
When you're new to a project, the AI chat can help you quickly understand its structure and functionality:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
❯ What's the overall architecture of this project?
|
|
56
|
+
|
|
57
|
+
❯ What are the main components and how do they interact?
|
|
58
|
+
|
|
59
|
+
❯ How is data flowing through the system?
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 2. Understanding Complex Code
|
|
63
|
+
|
|
64
|
+
When you encounter complex code that's difficult to understand:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
❯ Can you explain how the ranking algorithm in src/ranking.rs works?
|
|
68
|
+
|
|
69
|
+
❯ What's the purpose of the cache implementation in the search module?
|
|
70
|
+
|
|
71
|
+
❯ Walk me through the authentication flow step by step.
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 3. Finding Implementation Details
|
|
75
|
+
|
|
76
|
+
When you need to locate specific functionality:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
❯ Where is the error handling implemented for API requests?
|
|
80
|
+
|
|
81
|
+
❯ How does the system validate user input?
|
|
82
|
+
|
|
83
|
+
❯ Show me all the places where database connections are created.
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 4. Learning Best Practices
|
|
87
|
+
|
|
88
|
+
When you want to understand the patterns and practices used in the codebase:
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
❯ What design patterns are used in this project?
|
|
92
|
+
|
|
93
|
+
❯ How is testing implemented across the codebase?
|
|
94
|
+
|
|
95
|
+
❯ What's the error handling strategy used in this project?
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### 5. Planning Changes
|
|
99
|
+
|
|
100
|
+
When you need to make changes to the codebase:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
❯ If I wanted to add a new authentication method, what files would I need to modify?
|
|
104
|
+
|
|
105
|
+
❯ What would be the impact of changing the database schema for users?
|
|
106
|
+
|
|
107
|
+
❯ How could I improve the performance of the search functionality?
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Advanced Configuration
|
|
111
|
+
|
|
112
|
+
### Model Selection
|
|
113
|
+
|
|
114
|
+
You can choose which AI model to use:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Override the default model
|
|
118
|
+
export MODEL_NAME=claude-3-opus-20240229
|
|
119
|
+
probe-chat
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### API URLs
|
|
123
|
+
|
|
124
|
+
For enterprise deployments or when using proxies:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# Override API URLs
|
|
128
|
+
export ANTHROPIC_API_URL=https://your-anthropic-proxy.com
|
|
129
|
+
export OPENAI_API_URL=https://your-openai-proxy.com/v1
|
|
130
|
+
probe-chat
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Debug Mode
|
|
134
|
+
|
|
135
|
+
For troubleshooting or development:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
# Enable debug mode for detailed logging
|
|
139
|
+
export DEBUG=1 probe-chat
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Session-Based Caching
|
|
143
|
+
|
|
144
|
+
Probe uses session-based caching to avoid showing the same code blocks multiple times in a conversation:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# First search generates a session ID
|
|
148
|
+
probe search "authentication" --session ""
|
|
149
|
+
# Session: a1b2 (example output)
|
|
150
|
+
|
|
151
|
+
# Subsequent searches reuse the session ID
|
|
152
|
+
probe search "login" --session "a1b2"
|
|
153
|
+
# Will skip code blocks already shown in the previous search
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Integration with Other CLI Tools
|
|
157
|
+
|
|
158
|
+
Probe's AI chat can be combined with other command-line tools for even more powerful workflows:
|
|
159
|
+
|
|
160
|
+
### Piping Compiler Errors
|
|
161
|
+
|
|
162
|
+
Feed compiler errors directly to the AI for explanation:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
# Compile and pipe errors to AI chat
|
|
166
|
+
rustc main.rs 2>&1 | probe-chat
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Using Extract with LLM Prompts
|
|
170
|
+
|
|
171
|
+
Extract code with built-in prompt templates for LLM integration:
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
# Extract with engineer prompt template
|
|
175
|
+
probe extract src/auth.rs#authenticate --prompt engineer --instructions "Explain this authentication function"
|
|
176
|
+
|
|
177
|
+
# Extract with architect prompt template
|
|
178
|
+
probe extract src/api.js --prompt architect --instructions "Analyze this API module"
|
|
179
|
+
|
|
180
|
+
# Extract and pipe to AI chat
|
|
181
|
+
probe extract src/main.rs:42 --prompt engineer --instructions "Explain this function" | probe-chat
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Processing Search Results
|
|
185
|
+
|
|
186
|
+
Use standard Unix tools to process search results:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
# Find then filter
|
|
190
|
+
probe search "database" | grep "connection" | probe-chat
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Scripting with AI Chat
|
|
194
|
+
|
|
195
|
+
You can create scripts that use the AI chat for automated tasks:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
#!/bin/bash
|
|
199
|
+
# Example script to analyze code quality
|
|
200
|
+
echo "What are the potential security issues in this codebase?" | probe-chat > security_report.txt
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Best Practices
|
|
204
|
+
|
|
205
|
+
1. **Be Specific**: Ask specific questions about your codebase for more targeted answers
|
|
206
|
+
|
|
207
|
+
2. **Start with Overview Questions**: Begin with high-level questions to understand the structure before diving into details
|
|
208
|
+
|
|
209
|
+
3. **Follow Up**: Use follow-up questions to explore topics in more depth
|
|
210
|
+
|
|
211
|
+
4. **Reference Files**: Mention specific files or directories if you want to focus on a particular area
|
|
212
|
+
|
|
213
|
+
5. **Ask for Explanations**: The AI is particularly good at explaining complex code or concepts
|
|
214
|
+
|
|
215
|
+
6. **Request Examples**: Ask for examples if you're trying to understand how to use a particular feature or API
|
|
216
|
+
|
|
217
|
+
7. **Use Multiple Queries**: If you don't find what you're looking for, try reformulating your question
|
|
218
|
+
|
|
219
|
+
8. **Combine with Regular CLI**: Use the AI chat alongside regular Probe CLI commands for maximum effectiveness
|
|
220
|
+
|
|
221
|
+
## Example Conversation
|
|
222
|
+
|
|
223
|
+
Here's an example of how you might use the AI Chat mode:
|
|
224
|
+
|
|
225
|
+
```
|
|
226
|
+
❯ How does the ranking algorithm work?
|
|
227
|
+
|
|
228
|
+
─ Response ─────────────────────────────────────────────────────────
|
|
229
|
+
I'll explain how the ranking algorithm works in the codebase.
|
|
230
|
+
|
|
231
|
+
The ranking system in Probe uses multiple algorithms to sort search results by relevance. The main ranking algorithms are:
|
|
232
|
+
|
|
233
|
+
1. TF-IDF (Term Frequency-Inverse Document Frequency)
|
|
234
|
+
2. BM25 (Best Matching 25)
|
|
235
|
+
3. Hybrid (a combination approach)
|
|
236
|
+
|
|
237
|
+
Let me break down each approach:
|
|
238
|
+
|
|
239
|
+
## TF-IDF Ranking
|
|
240
|
+
|
|
241
|
+
TF-IDF weighs terms based on how frequently they appear in a document versus how common they are across all documents.
|
|
242
|
+
|
|
243
|
+
Key implementation details:
|
|
244
|
+
- Term frequency (TF) measures how often a term appears in a document
|
|
245
|
+
- Inverse document frequency (IDF) measures how rare a term is across all documents
|
|
246
|
+
- Final score is calculated as TF × IDF
|
|
247
|
+
|
|
248
|
+
## BM25 Ranking
|
|
249
|
+
|
|
250
|
+
BM25 is an advanced ranking function that improves upon TF-IDF by adding document length normalization.
|
|
251
|
+
|
|
252
|
+
Key implementation details:
|
|
253
|
+
- Uses parameters k1 (term frequency saturation) and b (document length normalization)
|
|
254
|
+
- Handles edge cases like empty documents and rare terms
|
|
255
|
+
- Provides better results for longer documents
|
|
256
|
+
|
|
257
|
+
## Hybrid Ranking
|
|
258
|
+
|
|
259
|
+
The hybrid approach combines multiple ranking signals for better results:
|
|
260
|
+
|
|
261
|
+
1. Combines scores from both TF-IDF and BM25
|
|
262
|
+
2. Considers document length and term positions
|
|
263
|
+
3. Applies normalization to ensure fair comparison
|
|
264
|
+
|
|
265
|
+
The default reranker is "hybrid" which provides the best overall results for code search.
|
|
266
|
+
|
|
267
|
+
The ranking implementation can be found in `src/search/result_ranking.rs`.
|
|
268
|
+
─────────────────────────────────────────────────────────────────────
|
|
269
|
+
Token Usage: Request: 1245 Response: 1532 (Current message only: ~1532)
|
|
270
|
+
Total: 2777 tokens (Cumulative for entire session)
|
|
271
|
+
─────────────────────────────────────────────────────────────────────
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
## Limitations and Considerations
|
|
275
|
+
|
|
276
|
+
- **Token Limits**: Very large codebases may need multiple targeted questions rather than broad ones
|
|
277
|
+
- **API Costs**: Be mindful of token usage, especially with larger models
|
|
278
|
+
- **Privacy**: When using Probe with AI services, code snippets found by Probe are sent to external AI providers (Anthropic, OpenAI, etc.) as part of your queries
|
|
279
|
+
- **Accuracy**: The AI may occasionally make mistakes in its understanding or explanations
|
|
280
|
+
|
|
281
|
+
## Next Steps
|
|
282
|
+
|
|
283
|
+
- Learn about [Probe's CLI Reference](/cli-mode) for more advanced command-line usage
|
|
284
|
+
- Explore [using Probe with AI Code Editors](/use-cases/ai-code-editors) for integrated IDE experiences
|
|
285
|
+
- Check out [building custom tools](/use-cases/nodejs-sdk) with the Node.js SDK
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
# Centralized Code Search: Deploying the Probe Web Interface
|
|
2
|
+
|
|
3
|
+
This guide explains how to set up and deploy Probe's web interface as a centralized code search and intelligence platform for your entire organization.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Probe's web interface provides a user-friendly chat experience that allows all team members to interact with your codebase using AI. By hosting this interface, you create a source of truth for how your product works that's accessible to both technical and non-technical team members. This enables quick issue resolution, documentation generation, architecture understanding, and helps product managers, QA teams, and other stakeholders make informed decisions without needing to understand implementation details.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Quick Setup with npx
|
|
11
|
+
|
|
12
|
+
The easiest way to deploy Probe's web interface for a team is using npx:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Set your API key first (either Anthropic or OpenAI)
|
|
16
|
+
export ANTHROPIC_API_KEY=your_anthropic_api_key
|
|
17
|
+
# OR
|
|
18
|
+
export OPENAI_API_KEY=your_openai_api_key
|
|
19
|
+
|
|
20
|
+
# Configure allowed folders (required)
|
|
21
|
+
export ALLOWED_FOLDERS=/path/to/repo1,/path/to/repo2
|
|
22
|
+
|
|
23
|
+
# Enable authentication for team use
|
|
24
|
+
export AUTH_ENABLED=true
|
|
25
|
+
export AUTH_USERNAME=team
|
|
26
|
+
export AUTH_PASSWORD=secure_password
|
|
27
|
+
|
|
28
|
+
# Run the web interface
|
|
29
|
+
npx -y @probelabs/probe-chat@latest --web
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Access the Web Interface
|
|
33
|
+
|
|
34
|
+
Once the server is running, team members can access the web interface at:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
http://your-server-ip:8080
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
You can customize the port using the `--port` option:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npx -y @probelabs/probe-chat@latest --web --port 3000
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Setting Allowed Folders (Security & Privacy)
|
|
47
|
+
|
|
48
|
+
Controlling which code repositories are accessible is crucial for security:
|
|
49
|
+
|
|
50
|
+
### Configuring Allowed Folders
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Specify which folders can be searched
|
|
54
|
+
export ALLOWED_FOLDERS=/path/to/repo1,/path/to/repo2,/path/to/repo3
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
This environment variable:
|
|
58
|
+
- Restricts search to only the specified directories
|
|
59
|
+
- Prevents access to sensitive files outside these directories
|
|
60
|
+
- Can include multiple repositories separated by commas
|
|
61
|
+
|
|
62
|
+
### Best Practices for Folder Access
|
|
63
|
+
|
|
64
|
+
1. **Use Absolute Paths**: Always use full paths to avoid ambiguity
|
|
65
|
+
2. **Limit Scope**: Only include repositories that should be accessible
|
|
66
|
+
3. **Exclude Sensitive Directories**: Don't include directories with secrets or sensitive data
|
|
67
|
+
4. **Consider Read-Only Access**: For additional security, consider setting up read-only filesystem permissions for the user running the service
|
|
68
|
+
|
|
69
|
+
## Managing API Keys for the Chat
|
|
70
|
+
|
|
71
|
+
The web interface requires an API key for either Anthropic Claude or OpenAI:
|
|
72
|
+
|
|
73
|
+
### API Key Management
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# For Anthropic Claude (recommended)
|
|
77
|
+
export ANTHROPIC_API_KEY=your_anthropic_api_key
|
|
78
|
+
|
|
79
|
+
# OR for OpenAI
|
|
80
|
+
export OPENAI_API_KEY=your_openai_api_key
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Best Practices for API Keys
|
|
84
|
+
|
|
85
|
+
1. **Use Environment Variables**: Never hardcode API keys in files
|
|
86
|
+
2. **Rotate Keys Regularly**: Change keys periodically for security
|
|
87
|
+
3. **Monitor Usage**: Keep track of API usage to control costs
|
|
88
|
+
4. **Use a Secrets Manager**: For production deployments, consider using a secrets manager
|
|
89
|
+
|
|
90
|
+
### Model Selection
|
|
91
|
+
|
|
92
|
+
You can specify which AI model to use:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# For Anthropic Claude
|
|
96
|
+
export MODEL_NAME=claude-3-opus-20240229
|
|
97
|
+
|
|
98
|
+
# For OpenAI
|
|
99
|
+
export MODEL_NAME=gpt-4o
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Authentication & Environment Variables
|
|
103
|
+
|
|
104
|
+
Secure your deployment with authentication:
|
|
105
|
+
|
|
106
|
+
### Enabling Authentication
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# Enable basic authentication
|
|
110
|
+
export AUTH_ENABLED=true
|
|
111
|
+
export AUTH_USERNAME=your_username
|
|
112
|
+
export AUTH_PASSWORD=your_secure_password
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Complete Environment Variable Reference
|
|
116
|
+
|
|
117
|
+
| Variable | Description | Default |
|
|
118
|
+
|----------|-------------|---------|
|
|
119
|
+
| `ANTHROPIC_API_KEY` | Your Anthropic API key | (Required if not using OpenAI) |
|
|
120
|
+
| `OPENAI_API_KEY` | Your OpenAI API key | (Required if not using Anthropic) |
|
|
121
|
+
| `ALLOWED_FOLDERS` | Comma-separated list of folders to search | (Required) |
|
|
122
|
+
| `PORT` | The port to run the server on | 8080 |
|
|
123
|
+
| `MODEL_NAME` | Override the default model | claude-3-7-sonnet-latest or gpt-4o |
|
|
124
|
+
| `AUTH_ENABLED` | Enable basic authentication | false |
|
|
125
|
+
| `AUTH_USERNAME` | Username for authentication | admin |
|
|
126
|
+
| `AUTH_PASSWORD` | Password for authentication | password |
|
|
127
|
+
| `DEBUG` | Enable debug mode | false |
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
## Command-Line Options
|
|
131
|
+
|
|
132
|
+
The web interface supports the following command-line options:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
# Show help
|
|
136
|
+
npx -y @probelabs/probe-chat@latest --help
|
|
137
|
+
|
|
138
|
+
# Run in web mode on a specific port
|
|
139
|
+
npx -y @probelabs/probe-chat@latest --web --port 3000
|
|
140
|
+
|
|
141
|
+
# Specify a model
|
|
142
|
+
npx -y @probelabs/probe-chat@latest --web --model claude-3-7-sonnet-latest
|
|
143
|
+
|
|
144
|
+
# Enable debug mode
|
|
145
|
+
npx -y @probelabs/probe-chat@latest --web --debug
|
|
146
|
+
|
|
147
|
+
# Specify a directory to search
|
|
148
|
+
npx -y @probelabs/probe-chat@latest --web /path/to/your/project
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Using the npm package (Alternative)
|
|
152
|
+
|
|
153
|
+
If you prefer, you can install the package globally:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# Install globally
|
|
157
|
+
npm install -g @probelabs/probe-chat@latest
|
|
158
|
+
|
|
159
|
+
# Start the web interface
|
|
160
|
+
probe-chat --web --port 3000
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Best Practices for Organization-Wide Usage
|
|
164
|
+
|
|
165
|
+
### Cross-Functional Team Onboarding
|
|
166
|
+
|
|
167
|
+
1. **Create Role-Specific Documentation**: Tailor guides for different roles (developers, product managers, QA)
|
|
168
|
+
2. **Provide Example Queries**: Share effective prompts and questions for common use cases
|
|
169
|
+
3. **Set Usage Guidelines**: Establish best practices for different types of searches
|
|
170
|
+
4. **Training Sessions**: Conduct role-specific training for technical and non-technical users
|
|
171
|
+
5. **Highlight Business Benefits**: Demonstrate how code search improves collaboration and knowledge sharing
|
|
172
|
+
|
|
173
|
+
### Performance Optimization
|
|
174
|
+
|
|
175
|
+
1. **Limit Repository Size**: Include only necessary repositories
|
|
176
|
+
2. **Use a Powerful Server**: Ensure adequate CPU and memory
|
|
177
|
+
3. **Consider SSD Storage**: Faster disk access improves search performance
|
|
178
|
+
4. **Regular Maintenance**: Keep the package and Node.js updated
|
|
179
|
+
|
|
180
|
+
### Security Considerations
|
|
181
|
+
|
|
182
|
+
1. **Network Security**: Use a reverse proxy with HTTPS
|
|
183
|
+
2. **IP Restrictions**: Limit access to your company network
|
|
184
|
+
3. **Regular Updates**: Keep the software updated
|
|
185
|
+
4. **Audit Logs**: Monitor access and usage
|
|
186
|
+
|
|
187
|
+
### Example Nginx Configuration
|
|
188
|
+
|
|
189
|
+
```nginx
|
|
190
|
+
server {
|
|
191
|
+
listen 443 ssl;
|
|
192
|
+
server_name code-chat.yourcompany.com;
|
|
193
|
+
|
|
194
|
+
ssl_certificate /path/to/cert.pem;
|
|
195
|
+
ssl_certificate_key /path/to/key.pem;
|
|
196
|
+
|
|
197
|
+
location / {
|
|
198
|
+
proxy_pass http://localhost:8080;
|
|
199
|
+
proxy_set_header Host $host;
|
|
200
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
201
|
+
|
|
202
|
+
# Rate limiting
|
|
203
|
+
limit_req zone=one burst=10 nodelay;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Cloud Deployment Options
|
|
209
|
+
|
|
210
|
+
For teams working remotely:
|
|
211
|
+
|
|
212
|
+
### Virtual Private Server (VPS)
|
|
213
|
+
|
|
214
|
+
1. Provision a VPS with adequate resources
|
|
215
|
+
2. Install Node.js (v18 or later)
|
|
216
|
+
3. Set up environment variables for API keys and allowed folders
|
|
217
|
+
4. Run the web interface using npx
|
|
218
|
+
5. Set up a domain name and SSL certificate
|
|
219
|
+
6. Configure a reverse proxy for HTTPS
|
|
220
|
+
|
|
221
|
+
### Process Management
|
|
222
|
+
|
|
223
|
+
For production deployments, use a process manager like PM2:
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
# Install PM2
|
|
227
|
+
npm install -g pm2
|
|
228
|
+
|
|
229
|
+
# Start the web interface with PM2
|
|
230
|
+
pm2 start "npx -y @probelabs/probe-chat@latest --web" --name "probe-web" --env "ANTHROPIC_API_KEY=your_key" "ALLOWED_FOLDERS=/path/to/repos"
|
|
231
|
+
|
|
232
|
+
# Ensure it starts on system boot
|
|
233
|
+
pm2 startup
|
|
234
|
+
pm2 save
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## Monitoring and Maintenance
|
|
238
|
+
|
|
239
|
+
### Usage Monitoring
|
|
240
|
+
|
|
241
|
+
1. **API Usage**: Monitor API costs and usage
|
|
242
|
+
2. **Server Resources**: Track CPU, memory, and disk usage
|
|
243
|
+
3. **User Activity**: Monitor access logs and usage patterns
|
|
244
|
+
|
|
245
|
+
### Regular Updates
|
|
246
|
+
|
|
247
|
+
1. **Update Package**: Regularly update to the latest version with `npm update -g @probelabs/probe-chat`
|
|
248
|
+
2. **Update Node.js**: Keep Node.js updated to the latest LTS version
|
|
249
|
+
3. **Rotate Credentials**: Change API keys and passwords periodically
|
|
250
|
+
|
|
251
|
+
## Next Steps
|
|
252
|
+
|
|
253
|
+
- For individual developer workflows, see [Integrating Probe into AI Code Editors](/use-cases/integrating-probe-into-ai-code-editors)
|
|
254
|
+
- For advanced CLI usage, check out [CLI AI Workflows](/use-cases/advanced-cli)
|
|
255
|
+
- For programmatic access, explore [Building AI Tools on Probe](/use-cases/building-ai-tools)
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# Integrating Probe into 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
|
+
## Quick Setup
|
|
10
|
+
|
|
11
|
+
### Installing @probelabs/probe with NPX
|
|
12
|
+
|
|
13
|
+
The easiest way to integrate Probe with your AI code editor is through the MCP (Model Context Protocol) server:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# You don't need to install anything permanently
|
|
17
|
+
# NPX will run the package directly
|
|
18
|
+
npx -y @probelabs/probe@latest mcp
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Migrating from @probelabs/probe-mcp?** This is a drop-in replacement - just replace `npx @probelabs/probe-mcp` with `npx @probelabs/probe mcp`.
|
|
22
|
+
|
|
23
|
+
This command will:
|
|
24
|
+
1. Download the Probe MCP server package
|
|
25
|
+
2. Automatically download the appropriate Probe binary for your platform
|
|
26
|
+
3. Start the MCP server, which will listen for requests from your AI editor
|
|
27
|
+
|
|
28
|
+
### Configuring Your AI Editor
|
|
29
|
+
|
|
30
|
+
#### For Cline
|
|
31
|
+
|
|
32
|
+
1. Create a `.cline` directory in your project root:
|
|
33
|
+
```bash
|
|
34
|
+
mkdir -p .cline
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
2. Create an MCP configuration file:
|
|
38
|
+
```bash
|
|
39
|
+
# Create the configuration file
|
|
40
|
+
touch .cline/mcp_config.json
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
3. Add the following configuration to `.cline/mcp_config.json`:
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"mcpServers": {
|
|
47
|
+
"probe": {
|
|
48
|
+
"command": "npx",
|
|
49
|
+
"args": [
|
|
50
|
+
"-y",
|
|
51
|
+
"@probelabs/probe@latest",
|
|
52
|
+
"mcp"
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
4. Start Cline in your project directory and begin asking questions about your code.
|
|
60
|
+
|
|
61
|
+
#### For Roo Code
|
|
62
|
+
|
|
63
|
+
[Roo Code](https://github.com/RooVetGit/Roo-Code) can be configured the same way as other editors via MCP:
|
|
64
|
+
|
|
65
|
+
1. Follow the installation instructions from the Roo Code GitHub repository
|
|
66
|
+
2. Configure Roo to use Probe via MCP using the same configuration pattern
|
|
67
|
+
3. Start using Roo with Probe integration
|
|
68
|
+
|
|
69
|
+
#### For Cursor and Windsurf
|
|
70
|
+
|
|
71
|
+
1. Install Cursor or Windsurf
|
|
72
|
+
2. Configure the editor to use MCP
|
|
73
|
+
3. Add the Probe MCP server configuration
|
|
74
|
+
4. Restart the editor to apply changes
|
|
75
|
+
|
|
76
|
+
#### For Other AI Assistants
|
|
77
|
+
|
|
78
|
+
Check your AI editor's documentation for MCP configuration. The general pattern is similar:
|
|
79
|
+
|
|
80
|
+
1. Find where your editor stores MCP configuration
|
|
81
|
+
2. Add the Probe MCP server configuration
|
|
82
|
+
3. Restart your editor or reload the configuration
|
|
83
|
+
|
|
84
|
+
## Using Probe with Your AI Editor
|
|
85
|
+
|
|
86
|
+
Once configured, you can ask your AI assistant questions about your codebase:
|
|
87
|
+
|
|
88
|
+
- "Find all authentication-related functions in the project"
|
|
89
|
+
- "Show me how error handling is implemented"
|
|
90
|
+
- "Search for code that processes user input"
|
|
91
|
+
|
|
92
|
+
The AI will use Probe to search your codebase and provide relevant code snippets and explanations.
|
|
93
|
+
|
|
94
|
+
## Checking Logs and Debugging
|
|
95
|
+
|
|
96
|
+
If you encounter issues with the integration:
|
|
97
|
+
|
|
98
|
+
### Enable Debug Mode
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# Run the MCP server with debug logging
|
|
102
|
+
DEBUG=1 npx -y @probelabs/probe@latest mcp
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
This will show detailed logs of:
|
|
106
|
+
- Tool calls from the AI
|
|
107
|
+
- Search queries being executed
|
|
108
|
+
- Results being returned
|
|
109
|
+
|
|
110
|
+
### Common Issues and Solutions
|
|
111
|
+
|
|
112
|
+
| Issue | Solution |
|
|
113
|
+
|-------|----------|
|
|
114
|
+
| AI doesn't use Probe | Explicitly ask the AI to use Probe: "Using Probe, search for..." |
|
|
115
|
+
| Empty search results | Try a simpler query or check if you're searching in the right directory |
|
|
116
|
+
| MCP server not starting | Check your MCP configuration and ensure npx is installed |
|
|
117
|
+
| Permission errors | Check file permissions on your codebase |
|
|
118
|
+
|
|
119
|
+
### Verifying the Integration
|
|
120
|
+
|
|
121
|
+
To verify that the integration is working:
|
|
122
|
+
|
|
123
|
+
1. Start your AI editor
|
|
124
|
+
2. Ask a question like: "Using Probe, find all functions related to authentication in this project"
|
|
125
|
+
3. Check if the AI responds with relevant code snippets
|
|
126
|
+
4. If not, check the MCP server logs for errors
|
|
127
|
+
|
|
128
|
+
## Advanced Configuration
|
|
129
|
+
|
|
130
|
+
For more control over the MCP server:
|
|
131
|
+
|
|
132
|
+
```json
|
|
133
|
+
{
|
|
134
|
+
"mcpServers": {
|
|
135
|
+
"probe": {
|
|
136
|
+
"command": "npx",
|
|
137
|
+
"args": [
|
|
138
|
+
"-y",
|
|
139
|
+
"@probelabs/probe@latest",
|
|
140
|
+
"mcp"
|
|
141
|
+
],
|
|
142
|
+
"env": {
|
|
143
|
+
"PROBE_DEFAULT_PATHS": "/path/to/project1,/path/to/project2",
|
|
144
|
+
"PROBE_MAX_TOKENS": "20000",
|
|
145
|
+
"DEBUG": "1"
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
This configuration:
|
|
153
|
+
- Sets default search paths
|
|
154
|
+
- Limits the maximum tokens returned
|
|
155
|
+
- Enables debug logging
|
|
156
|
+
|
|
157
|
+
## Next Steps
|
|
158
|
+
|
|
159
|
+
- For advanced MCP usage, see the [MCP Protocol & Tools Reference](/mcp-server)
|
|
160
|
+
- For larger queries or team collaboration, check out the [Web Interface for Teams](/use-cases/team-chat)
|
|
161
|
+
- For CLI-based workflows, explore [Advanced CLI Usage](/use-cases/advanced-cli)
|