@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,291 @@
|
|
|
1
|
+
# Search Functionality Reference
|
|
2
|
+
|
|
3
|
+
Complete reference documentation for Probe's search capabilities, including query syntax, ranking algorithms, and advanced search techniques.
|
|
4
|
+
|
|
5
|
+
## SEARCH COMMAND
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
probe search <QUERY> [PATH] [OPTIONS]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### CORE PARAMETERS
|
|
12
|
+
|
|
13
|
+
| Parameter | Description |
|
|
14
|
+
|-----------|-------------|
|
|
15
|
+
| `<QUERY>` | **Required**: Search terms or expression |
|
|
16
|
+
| `[PATH]` | Directory to search (defaults to current directory) |
|
|
17
|
+
|
|
18
|
+
### KEY OPTIONS
|
|
19
|
+
|
|
20
|
+
| Option | Description | Default |
|
|
21
|
+
|--------|-------------|---------|
|
|
22
|
+
| `--files-only` | List matching files without code blocks | Off |
|
|
23
|
+
| `--ignore <PATTERN>` | Additional patterns to ignore | None |
|
|
24
|
+
| `--exclude-filenames, -n` | Exclude filenames from matching | Off |
|
|
25
|
+
| `--reranker, -r <TYPE>` | Ranking algorithm: `hybrid`, `hybrid2`, `bm25`, `tfidf` | `hybrid` |
|
|
26
|
+
| `--frequency, -s` | Enable smart token matching | On |
|
|
27
|
+
| `--max-results <N>` | Limit number of results | No limit |
|
|
28
|
+
| `--max-bytes <N>` | Limit total bytes of code returned | No limit |
|
|
29
|
+
| `--max-tokens <N>` | Limit total tokens | No limit |
|
|
30
|
+
| `--allow-tests` | Include test files and code | Off |
|
|
31
|
+
| `--any-term` | Match any search term (OR logic) | Off |
|
|
32
|
+
| `--no-merge` | Keep code blocks separate | Off |
|
|
33
|
+
| `--merge-threshold <N>` | Max lines between blocks to merge | 5 |
|
|
34
|
+
| `--session <ID>` | Session ID for caching results | None |
|
|
35
|
+
| `--format <TYPE>` | Output format: `color`, `plain`, `markdown`, `json` | `color` |
|
|
36
|
+
|
|
37
|
+
For complete option details, see `probe search --help`.
|
|
38
|
+
|
|
39
|
+
## QUERY PROCESSING
|
|
40
|
+
|
|
41
|
+
Probe enhances search queries through several techniques:
|
|
42
|
+
|
|
43
|
+
### TOKENIZATION
|
|
44
|
+
|
|
45
|
+
Breaks down terms into tokens:
|
|
46
|
+
```
|
|
47
|
+
findUserByEmail → [find, user, by, email]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### STEMMING
|
|
51
|
+
|
|
52
|
+
Reduces words to their root form:
|
|
53
|
+
```
|
|
54
|
+
implementing, implementation → implement
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### SMART PATTERN GENERATION
|
|
58
|
+
|
|
59
|
+
- **Term Boundaries**: Understands where code tokens start/end
|
|
60
|
+
- **Case Handling**: Works with camelCase, snake_case, etc.
|
|
61
|
+
- **Compound Handling**: Breaks down compound terms
|
|
62
|
+
|
|
63
|
+
## QUERY SYNTAX
|
|
64
|
+
|
|
65
|
+
Probe supports an Elasticsearch-like query syntax:
|
|
66
|
+
|
|
67
|
+
### BASIC TERMS
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
probe search "authentication" # Single term
|
|
71
|
+
probe search "user authentication" # Multiple terms (AND logic)
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### BOOLEAN OPERATORS
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
probe search "error AND handling" # Require both terms
|
|
78
|
+
probe search "login OR authentication" # Match either term
|
|
79
|
+
probe search "database NOT sqlite" # Exclude term
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### GROUPING
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
probe search "(error OR exception) AND (handle OR process)"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### TERM MODIFIERS
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
probe search "+authentication login" # Required term
|
|
92
|
+
probe search "database -sqlite" # Excluded term
|
|
93
|
+
probe search "\"handle error\"" # Exact phrase
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### FIELD SPECIFIERS
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
probe search "function:authenticate" # Search in function names
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### SEARCH HINTS
|
|
103
|
+
|
|
104
|
+
Search hints allow you to filter results by file properties. These filters are applied at the file discovery stage and removed from the query before content searching:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
probe search "error AND ext:rs" # Only search in .rs files
|
|
108
|
+
probe search "class AND file:src/**/*.py" # Only search in Python files under src/
|
|
109
|
+
probe search "function AND dir:tests" # Only search in files under tests/ directory
|
|
110
|
+
probe search "struct AND type:rust" # Only search in Rust files
|
|
111
|
+
probe search "component AND lang:javascript" # Only search in JavaScript files
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Available Search Hints:**
|
|
115
|
+
|
|
116
|
+
| Hint | Description | Examples |
|
|
117
|
+
|------|-------------|----------|
|
|
118
|
+
| `ext:<extension>` | Filter by file extension | `ext:rs`, `ext:py,js,ts` |
|
|
119
|
+
| `file:<pattern>` | Filter by file path pattern (supports globs) | `file:src/**/*.rs`, `file:*test*` |
|
|
120
|
+
| `path:<pattern>` | Alias for `file:` | `path:src/main.rs` |
|
|
121
|
+
| `dir:<pattern>` | Filter by directory pattern | `dir:src`, `dir:tests` |
|
|
122
|
+
| `type:<filetype>` | Filter by ripgrep file type | `type:rust`, `type:javascript` |
|
|
123
|
+
| `lang:<language>` | Filter by programming language | `lang:rust`, `lang:python` |
|
|
124
|
+
|
|
125
|
+
**Combining Search Hints:**
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Multiple filters (all must match)
|
|
129
|
+
probe search "config AND ext:rs AND dir:src"
|
|
130
|
+
|
|
131
|
+
# Multiple extensions (any can match)
|
|
132
|
+
probe search "import AND ext:js,ts,jsx,tsx"
|
|
133
|
+
|
|
134
|
+
# Complex combinations
|
|
135
|
+
probe search "(error OR exception) AND ext:rs AND file:src/**/*"
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### WILDCARDS
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
probe search "auth*" # Matches "auth", "authentication", "authorize", etc.
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## RANKING ALGORITHMS
|
|
145
|
+
|
|
146
|
+
Probe uses sophisticated algorithms to rank search results:
|
|
147
|
+
|
|
148
|
+
### TF-IDF RANKING
|
|
149
|
+
|
|
150
|
+
Term Frequency-Inverse Document Frequency balances how often terms appear in a specific code block against how common they are across the codebase.
|
|
151
|
+
|
|
152
|
+
#### HOW IT WORKS
|
|
153
|
+
|
|
154
|
+
1. **Term Frequency (TF)**: How often a term appears in a code block
|
|
155
|
+
```
|
|
156
|
+
TF(term, block) = (Number of times term appears in block) / (Total number of terms in block)
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
2. **Inverse Document Frequency (IDF)**: Measures how unique or rare a term is
|
|
160
|
+
```
|
|
161
|
+
IDF(term) = ln(Total number of blocks / Number of blocks containing term)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
3. **TF-IDF Score**: Combines these factors
|
|
165
|
+
```
|
|
166
|
+
TF-IDF(term, block) = TF(term, block) * IDF(term)^2
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Key benefits:
|
|
170
|
+
- Rewards matches on rare, important terms
|
|
171
|
+
- Penalizes common terms that appear everywhere
|
|
172
|
+
- Considers term frequency within each code block
|
|
173
|
+
|
|
174
|
+
### BM25 RANKING
|
|
175
|
+
|
|
176
|
+
BM25 (Best Matching 25) is an improved version of TF-IDF that addresses some of its limitations.
|
|
177
|
+
|
|
178
|
+
#### HOW IT WORKS
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
BM25(block, query) = ∑ IDF(term) * (TF(term, block) * (k1 + 1)) / (TF(term, block) + k1 * (1 - b + b * (block_length / average_block_length)))
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Where:
|
|
185
|
+
- `k1` (1.2): Controls term frequency saturation
|
|
186
|
+
- `b` (0.75): Controls length normalization
|
|
187
|
+
|
|
188
|
+
Key benefits:
|
|
189
|
+
- Better handling of document length
|
|
190
|
+
- Diminishing returns for repeated terms
|
|
191
|
+
- More accurate for longer code blocks
|
|
192
|
+
- Improved handling of edge cases
|
|
193
|
+
|
|
194
|
+
### HYBRID RANKING
|
|
195
|
+
|
|
196
|
+
Probe's default ranking algorithm combines multiple signals for superior results.
|
|
197
|
+
|
|
198
|
+
#### HOW IT WORKS
|
|
199
|
+
|
|
200
|
+
The hybrid algorithm considers:
|
|
201
|
+
|
|
202
|
+
1. **Combined score**: Weighted combination of TF-IDF and BM25
|
|
203
|
+
```
|
|
204
|
+
Combined = α * TF-IDF + (1-α) * BM25
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
2. **Position weights**: Terms in function names, class names, and identifiers receive higher scores
|
|
208
|
+
|
|
209
|
+
3. **Block metrics**:
|
|
210
|
+
- Number of unique terms matched
|
|
211
|
+
- Total matches in the block
|
|
212
|
+
- Block type (methods score higher than comments)
|
|
213
|
+
|
|
214
|
+
4. **File metrics**:
|
|
215
|
+
- File match rank
|
|
216
|
+
- Number of unique terms in the file
|
|
217
|
+
- Total matches in the file
|
|
218
|
+
|
|
219
|
+
Key benefits:
|
|
220
|
+
- More balanced scoring across different code structures
|
|
221
|
+
- Better handling of both short and long code blocks
|
|
222
|
+
- Prioritizes meaningful code over comments or boilerplate
|
|
223
|
+
|
|
224
|
+
### HYBRID2 RANKING
|
|
225
|
+
|
|
226
|
+
An enhanced version of the hybrid algorithm with improved relevance:
|
|
227
|
+
- Better normalization of scores across different metrics
|
|
228
|
+
- Enhanced weighting for structural elements
|
|
229
|
+
- Improved handling of term proximity
|
|
230
|
+
- More sophisticated position weighting
|
|
231
|
+
|
|
232
|
+
## PRACTICAL EXAMPLES
|
|
233
|
+
|
|
234
|
+
### FINDING ERROR HANDLING CODE
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
probe search "error handling try catch"
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
This search:
|
|
241
|
+
1. Tokenizes to: ["error", "handl", "try", "catch"]
|
|
242
|
+
2. Matches files containing these terms
|
|
243
|
+
3. Ranks results based on term frequency and importance
|
|
244
|
+
4. Returns complete code blocks with error handling logic
|
|
245
|
+
|
|
246
|
+
### SEARCHING FOR AUTHENTICATION FLOWS
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
probe search "(login OR authenticate) AND (user OR account) NOT test"
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
This complex query:
|
|
253
|
+
1. Finds code with either "login" or "authenticate"
|
|
254
|
+
2. Requires either "user" or "account" to be present
|
|
255
|
+
3. Excludes results containing "test"
|
|
256
|
+
4. Returns ranked, complete code blocks
|
|
257
|
+
|
|
258
|
+
### FINDING SPECIFIC API ENDPOINTS
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
probe search "function:create* api endpoint"
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
This search:
|
|
265
|
+
1. Targets functions starting with "create"
|
|
266
|
+
2. Requires "api" and "endpoint" terms
|
|
267
|
+
3. Returns complete function definitions
|
|
268
|
+
4. Ranks results with the most relevant endpoints first
|
|
269
|
+
|
|
270
|
+
### LIMITING RESULTS FOR AI INTEGRATION
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
probe search "database connection pool" --max-tokens 4000 --format json
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
This search:
|
|
277
|
+
1. Finds code related to database connection pools
|
|
278
|
+
2. Limits results to fit within 4000 tokens
|
|
279
|
+
3. Returns JSON-formatted output suitable for AI processing
|
|
280
|
+
|
|
281
|
+
## PERFORMANCE TIPS
|
|
282
|
+
|
|
283
|
+
- **Be specific**: More specific queries yield more relevant results
|
|
284
|
+
- **Use field specifiers**: Target specific code elements with `function:`, `class:`, etc.
|
|
285
|
+
- **Leverage boolean operators**: Combine terms with AND, OR, NOT for precision
|
|
286
|
+
- **Control result size**: Use `--max-results`, `--max-bytes`, or `--max-tokens` for large codebases
|
|
287
|
+
- **Session caching**: Use `--session` to avoid seeing the same code blocks repeatedly
|
|
288
|
+
- **Experiment with rankers**: Try different ranking algorithms for different types of searches
|
|
289
|
+
|
|
290
|
+
For more information on how Probe works internally, see [How Probe Works](how-it-works.md).
|
|
291
|
+
For details on code extraction, see [Code Extraction Reference](code-extraction.md).
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# Supported Languages
|
|
2
|
+
|
|
3
|
+
Probe provides language-aware code search and extraction for a wide range of programming languages. This page details the supported languages and their specific features.
|
|
4
|
+
|
|
5
|
+
> For a comprehensive overview of how Probe's language support system works, see the [Language Support Overview](/language-support-overview) page.
|
|
6
|
+
|
|
7
|
+
## Language Support Table
|
|
8
|
+
|
|
9
|
+
| Language | File Extensions | AST Parsing | Block Extraction |
|
|
10
|
+
|----------|----------------|-------------|-----------------|
|
|
11
|
+
| Rust | `.rs` | ✅ | ✅ |
|
|
12
|
+
| JavaScript / JSX | `.js`, `.jsx` | ✅ | ✅ |
|
|
13
|
+
| TypeScript / TSX | `.ts`, `.tsx` | ✅ | ✅ |
|
|
14
|
+
| Python | `.py` | ✅ | ✅ |
|
|
15
|
+
| Go | `.go` | ✅ | ✅ |
|
|
16
|
+
| C / C++ | `.c`, `.h`, `.cpp`, `.cc`, `.cxx`, `.hpp`, `.hxx` | ✅ | ✅ |
|
|
17
|
+
| Java | `.java` | ✅ | ✅ |
|
|
18
|
+
| Ruby | `.rb` | ✅ | ✅ |
|
|
19
|
+
| PHP | `.php` | ✅ | ✅ |
|
|
20
|
+
| Swift | `.swift` | ✅ | ✅ |
|
|
21
|
+
| C# | `.cs` | ✅ | ✅ |
|
|
22
|
+
| Markdown | `.md`, `.markdown` | ✅ | ✅ |
|
|
23
|
+
| YAML | `.yaml`, `.yml` | ✅ | ✅ |
|
|
24
|
+
|
|
25
|
+
## Language Detection
|
|
26
|
+
|
|
27
|
+
Probe automatically detects the language of a file based on its extension. This detection is used to:
|
|
28
|
+
|
|
29
|
+
1. **Select the appropriate parser**: Each language has a specialized parser
|
|
30
|
+
2. **Apply language-specific extraction rules**: Different languages have different code structures
|
|
31
|
+
3. **Handle language-specific features**: Such as Python's significant whitespace or Rust's macros
|
|
32
|
+
|
|
33
|
+
## Language-Specific Features
|
|
34
|
+
|
|
35
|
+
Each language has specific features and capabilities in Probe:
|
|
36
|
+
|
|
37
|
+
### Rust
|
|
38
|
+
|
|
39
|
+
- **Function Extraction**: Extracts complete function definitions including attributes and documentation
|
|
40
|
+
- **Struct/Enum Extraction**: Extracts complete struct and enum definitions
|
|
41
|
+
- **Impl Block Extraction**: Extracts implementation blocks for types
|
|
42
|
+
- **Macro Handling**: Properly handles macro definitions and invocations
|
|
43
|
+
- **Module Awareness**: Understands Rust's module system
|
|
44
|
+
- **Test Detection**: Identifies test functions marked with `#[test]` attribute or functions with names starting with `test_`
|
|
45
|
+
|
|
46
|
+
### JavaScript / TypeScript
|
|
47
|
+
|
|
48
|
+
- **Function Extraction**: Extracts function and arrow function definitions
|
|
49
|
+
- **Class Extraction**: Extracts complete class definitions with methods
|
|
50
|
+
- **JSX/TSX Support**: Properly handles JSX and TSX syntax
|
|
51
|
+
- **Module Awareness**: Understands ES modules and CommonJS
|
|
52
|
+
- **Type Definitions**: Extracts TypeScript interfaces and type definitions
|
|
53
|
+
- **Test Detection**: Identifies test functions using Jest, Mocha, or other frameworks
|
|
54
|
+
|
|
55
|
+
TypeScript adds additional support for interfaces, type aliases, enums, and namespaces.
|
|
56
|
+
|
|
57
|
+
### Python
|
|
58
|
+
|
|
59
|
+
- **Function Extraction**: Extracts function definitions with docstrings
|
|
60
|
+
- **Class Extraction**: Extracts complete class definitions with methods
|
|
61
|
+
- **Decorator Handling**: Properly handles decorated functions and classes
|
|
62
|
+
- **Indentation Awareness**: Understands Python's significant whitespace
|
|
63
|
+
- **Module Docstrings**: Includes module-level docstrings in relevant extractions
|
|
64
|
+
- **Test Detection**: Identifies test functions using unittest, pytest, or other frameworks
|
|
65
|
+
|
|
66
|
+
### Go
|
|
67
|
+
|
|
68
|
+
- **Function Extraction**: Extracts function definitions with documentation
|
|
69
|
+
- **Struct Extraction**: Extracts complete struct definitions
|
|
70
|
+
- **Interface Extraction**: Extracts interface definitions
|
|
71
|
+
- **Method Extraction**: Extracts methods associated with types
|
|
72
|
+
- **Comment Handling**: Properly associates comments with code blocks
|
|
73
|
+
- **Test Detection**: Identifies test functions with the `Test` prefix
|
|
74
|
+
|
|
75
|
+
Go also implements special handling for nested struct types.
|
|
76
|
+
|
|
77
|
+
### C / C++
|
|
78
|
+
|
|
79
|
+
- **Function Extraction**: Extracts function definitions and declarations
|
|
80
|
+
- **Class/Struct Extraction**: Extracts complete class and struct definitions
|
|
81
|
+
- **Template Handling**: Properly handles template definitions
|
|
82
|
+
- **Namespace Awareness**: Understands C++ namespaces
|
|
83
|
+
- **Preprocessor Handling**: Includes relevant preprocessor directives
|
|
84
|
+
- **Test Detection**: Identifies test functions based on naming conventions
|
|
85
|
+
|
|
86
|
+
### Java
|
|
87
|
+
|
|
88
|
+
- **Method Extraction**: Extracts method definitions with annotations
|
|
89
|
+
- **Class Extraction**: Extracts complete class definitions
|
|
90
|
+
- **Interface Extraction**: Extracts interface definitions
|
|
91
|
+
- **Annotation Handling**: Properly handles annotated elements
|
|
92
|
+
- **Package Awareness**: Understands Java's package system
|
|
93
|
+
- **Test Detection**: Identifies test classes and methods using JUnit annotations
|
|
94
|
+
|
|
95
|
+
### Ruby
|
|
96
|
+
|
|
97
|
+
- **Method Extraction**: Extracts method definitions
|
|
98
|
+
- **Class/Module Extraction**: Extracts complete class and module definitions
|
|
99
|
+
- **Block Handling**: Properly handles Ruby blocks
|
|
100
|
+
- **Mixin Awareness**: Understands Ruby's include and extend
|
|
101
|
+
- **Documentation**: Includes RDoc comments in extractions
|
|
102
|
+
- **Test Detection**: Identifies test methods in Test::Unit, RSpec, or Minitest
|
|
103
|
+
|
|
104
|
+
### PHP
|
|
105
|
+
|
|
106
|
+
- **Function Extraction**: Extracts function definitions
|
|
107
|
+
- **Class Extraction**: Extracts complete class definitions with methods
|
|
108
|
+
- **Namespace Awareness**: Understands PHP namespaces
|
|
109
|
+
- **Attribute Handling**: Properly handles PHP 8 attributes
|
|
110
|
+
- **Documentation**: Includes PHPDoc comments in extractions
|
|
111
|
+
- **Test Detection**: Identifies test classes and methods using PHPUnit conventions
|
|
112
|
+
|
|
113
|
+
### Swift
|
|
114
|
+
|
|
115
|
+
- **Function Extraction**: Extracts function and method definitions
|
|
116
|
+
- **Class/Struct Extraction**: Extracts complete class and struct definitions
|
|
117
|
+
- **Protocol Extraction**: Extracts protocol definitions
|
|
118
|
+
- **Extension Handling**: Properly handles Swift extensions
|
|
119
|
+
- **Attribute Handling**: Includes relevant attributes in extractions
|
|
120
|
+
- **Test Detection**: Identifies test classes and methods using XCTest conventions
|
|
121
|
+
|
|
122
|
+
### C#
|
|
123
|
+
|
|
124
|
+
- **Method Extraction**: Extracts method definitions with attributes
|
|
125
|
+
- **Class Extraction**: Extracts complete class definitions
|
|
126
|
+
- **Interface Extraction**: Extracts interface definitions
|
|
127
|
+
- **Namespace Awareness**: Understands C# namespaces
|
|
128
|
+
- **Attribute Handling**: Properly handles C# attributes
|
|
129
|
+
- **Test Detection**: Identifies test classes and methods using NUnit, MSTest, or xUnit conventions
|
|
130
|
+
|
|
131
|
+
### Markdown
|
|
132
|
+
|
|
133
|
+
- **Section Extraction**: Extracts complete sections based on headings
|
|
134
|
+
- **Code Block Extraction**: Extracts fenced code blocks
|
|
135
|
+
- **List Extraction**: Extracts complete lists
|
|
136
|
+
- **Table Extraction**: Extracts complete tables
|
|
137
|
+
- **Frontmatter Handling**: Properly handles YAML frontmatter
|
|
138
|
+
|
|
139
|
+
### YAML
|
|
140
|
+
|
|
141
|
+
- **Key-Value Pair Extraction**: Extracts mapping pairs with keys and values
|
|
142
|
+
- **Sequence Extraction**: Extracts arrays and lists
|
|
143
|
+
- **Scalar Extraction**: Extracts literal and folded block scalars
|
|
144
|
+
- **Comment Extraction**: Extracts comments and preserves them in context
|
|
145
|
+
- **Document Structure**: Handles multi-document YAML streams
|
|
146
|
+
- **Anchor and Alias Support**: Properly handles YAML anchors and aliases
|
|
147
|
+
- **Test Detection**: Identifies test-related configuration keys and values
|
|
148
|
+
|
|
149
|
+
## Test Detection
|
|
150
|
+
|
|
151
|
+
Probe can detect test code at two levels:
|
|
152
|
+
|
|
153
|
+
1. **File-level detection**: Identifies test files based on naming conventions and directory patterns
|
|
154
|
+
2. **Node-level detection**: Identifies test functions and classes within files
|
|
155
|
+
|
|
156
|
+
This allows users to include or exclude test code from search results using the `--allow-tests` flag.
|
|
157
|
+
|
|
158
|
+
### File-level Test Detection
|
|
159
|
+
|
|
160
|
+
Probe identifies test files based on common naming patterns:
|
|
161
|
+
|
|
162
|
+
- **Rust**: `*_test.rs`, `*_tests.rs`, `test_*.rs`, `tests.rs`
|
|
163
|
+
- **JavaScript/TypeScript**: `*.test.js`, `*.spec.js`, `*.test.ts`, `*.spec.ts`
|
|
164
|
+
- **Python**: `test_*.py`, `*_test.py`
|
|
165
|
+
- **Go**: `*_test.go`
|
|
166
|
+
- **Java**: `*Test.java`, `*Tests.java`
|
|
167
|
+
|
|
168
|
+
Probe also identifies test files based on directory patterns:
|
|
169
|
+
- `/test/`, `/tests/`, `/spec/`, `/specs/`, `/__tests__/`
|
|
170
|
+
|
|
171
|
+
### Node-level Test Detection
|
|
172
|
+
|
|
173
|
+
Each language implementation has specific logic to identify test functions and classes:
|
|
174
|
+
|
|
175
|
+
- **Rust**: Functions with `#[test]` attribute or names starting with `test_`
|
|
176
|
+
- **JavaScript/TypeScript**: Functions using Jest, Mocha, or other test frameworks
|
|
177
|
+
- **Python**: Functions using unittest, pytest, or other test frameworks
|
|
178
|
+
- **Go**: Functions with the `Test` prefix
|
|
179
|
+
- **Java**: Classes and methods with JUnit annotations
|
|
180
|
+
|
|
181
|
+
## Pattern Matching Examples
|
|
182
|
+
|
|
183
|
+
Probe supports language-specific pattern matching. Here are some examples:
|
|
184
|
+
|
|
185
|
+
### Rust Patterns
|
|
186
|
+
```
|
|
187
|
+
fn $NAME($$$PARAMS) $$$BODY
|
|
188
|
+
struct $NAME { $$$FIELDS }
|
|
189
|
+
impl $TYPE { $$$METHODS }
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### JavaScript/TypeScript Patterns
|
|
193
|
+
```
|
|
194
|
+
function $NAME($$$PARAMS) { $$$BODY }
|
|
195
|
+
const $NAME = ($$$PARAMS) => $$$BODY
|
|
196
|
+
class $NAME { $$$METHODS }
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Python Patterns
|
|
200
|
+
```
|
|
201
|
+
def $NAME($$$PARAMS): $$$BODY
|
|
202
|
+
class $NAME: $$$METHODS
|
|
203
|
+
@$DECORATOR\ndef $NAME($$$PARAMS): $$$BODY
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Go Patterns
|
|
207
|
+
```
|
|
208
|
+
func $NAME($$$PARAMS) $$$BODY
|
|
209
|
+
type $NAME struct { $$$FIELDS }
|
|
210
|
+
func ($RECEIVER $TYPE) $NAME($$$PARAMS) $$$BODY
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Adding Support for New Languages
|
|
214
|
+
|
|
215
|
+
If you're interested in adding support for a language that's not currently supported, see the [Adding New Languages](/adding-languages) page for a detailed guide.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Use Cases & Workflows
|
|
2
|
+
|
|
3
|
+
This directory contains scenario-based documentation for different Probe usage patterns.
|
|
4
|
+
|
|
5
|
+
- **Web Interface**: Code as a source of truth for product functionality
|
|
6
|
+
- **AI Code Editors & MCP**: Integration with AI-powered code editors
|
|
7
|
+
- **CLI for AI Workflows**: Using Probe in the command line for AI-assisted workflows
|
|
8
|
+
- **Developers & SDK**: Building custom tools with the Node.js SDK
|