@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,436 @@
|
|
|
1
|
+
# Code Extraction Reference
|
|
2
|
+
|
|
3
|
+
Complete reference documentation for Probe's code extraction capabilities, including AST parsing, language-specific extraction, and advanced usage techniques.
|
|
4
|
+
|
|
5
|
+
## EXTRACT COMMAND
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
probe extract <FILES> [OPTIONS]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### CORE PARAMETERS
|
|
12
|
+
|
|
13
|
+
| Parameter | Description |
|
|
14
|
+
|-----------|-------------|
|
|
15
|
+
| `<FILES>` | **Required**: Files to extract from (e.g., `main.rs:42` or `main.rs#function_name`) |
|
|
16
|
+
|
|
17
|
+
### KEY OPTIONS
|
|
18
|
+
|
|
19
|
+
| Option | Description | Default |
|
|
20
|
+
|--------|-------------|---------|
|
|
21
|
+
| `-c, --context <N>` | Add N context lines | 0 |
|
|
22
|
+
| `--diff` | Process input as git diff format | Off |
|
|
23
|
+
| `-f, --format <TYPE>` | Output as: `markdown`, `plain`, `json`, `xml`, `color` | `color` |
|
|
24
|
+
| `-k, --keep-input` | Preserve and display original input content | Off |
|
|
25
|
+
| `--prompt <TEMPLATE>` | System prompt template for LLM models (`engineer`, `architect`, or path to file) | None |
|
|
26
|
+
| `--instructions <TEXT>` | User instructions for LLM models | None |
|
|
27
|
+
| `--to-clipboard` | Copy results to clipboard | Off |
|
|
28
|
+
| `--from-clipboard` | Read file paths from clipboard | Off |
|
|
29
|
+
|
|
30
|
+
For complete option details, see `probe extract --help`.
|
|
31
|
+
|
|
32
|
+
## FILE PATH SYNTAX
|
|
33
|
+
|
|
34
|
+
Probe supports several ways to specify what code to extract:
|
|
35
|
+
|
|
36
|
+
- **Entire file**: `file.rs`
|
|
37
|
+
- **Specific line**: `file.rs:42`
|
|
38
|
+
- **Line range**: `file.rs:10-20`
|
|
39
|
+
- **Symbol name**: `file.rs#handle_extract`
|
|
40
|
+
- **Multiple files**: `file1.rs:10 file2.go:15`
|
|
41
|
+
- **Glob patterns**: `src/*.rs:42`
|
|
42
|
+
|
|
43
|
+
### MARKDOWN FORMATTING SUPPORT
|
|
44
|
+
|
|
45
|
+
Probe automatically handles markdown formatting when extracting file paths from text input:
|
|
46
|
+
|
|
47
|
+
#### Supported Markdown Patterns
|
|
48
|
+
- **Bold formatting**: `**src/main.rs:42**` → extracts `src/main.rs:42`
|
|
49
|
+
- **Italic formatting**: `*lib/utils.rs#helper*` → extracts `lib/utils.rs#helper`
|
|
50
|
+
- **Strikethrough**: `~~old/deprecated.py~~` → extracts `old/deprecated.py`
|
|
51
|
+
- **Code blocks**: `` `config/settings.json:10` `` → extracts `config/settings.json:10`
|
|
52
|
+
- **Mixed formatting**: `***Important: `src/config.rs:25`***` → extracts `src/config.rs:25`
|
|
53
|
+
|
|
54
|
+
#### Real-World Use Cases
|
|
55
|
+
- **GitHub Issues**: Copy file patterns directly from issue descriptions
|
|
56
|
+
- **Documentation**: Extract paths from markdown documentation
|
|
57
|
+
- **Chat Messages**: Process file references from team chat
|
|
58
|
+
- **Code Reviews**: Handle formatted file paths from review comments
|
|
59
|
+
|
|
60
|
+
#### Example Usage
|
|
61
|
+
```bash
|
|
62
|
+
# Extract from markdown-formatted text
|
|
63
|
+
echo "**src/main.rs:42** needs review" | probe extract --from-clipboard
|
|
64
|
+
|
|
65
|
+
# Process GitHub issue content
|
|
66
|
+
probe extract --input-file github-issue.md
|
|
67
|
+
|
|
68
|
+
# Handle complex markdown patterns
|
|
69
|
+
echo "Check ***`src/parser.rs:100-150`*** for implementation" | probe extract -
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## AST PARSING
|
|
73
|
+
|
|
74
|
+
Probe uses Abstract Syntax Tree (AST) parsing to understand code structure:
|
|
75
|
+
|
|
76
|
+
### EXTRACTION PROCESS
|
|
77
|
+
|
|
78
|
+
When you specify a line number, Probe:
|
|
79
|
+
|
|
80
|
+
1. **Parses** the file using tree-sitter to generate an AST
|
|
81
|
+
2. **Locates** the node in the AST containing the specified line
|
|
82
|
+
3. **Navigates** to find the smallest complete code unit (function, class, etc.)
|
|
83
|
+
4. **Extracts** the entire code block with proper formatting
|
|
84
|
+
|
|
85
|
+
This approach ensures you get complete, syntactically valid code blocks rather than arbitrary line ranges.
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
File Content → Tree-sitter Parser → AST Generation → Node Location → Parent Node Identification → Code Block Extraction
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### BENEFITS
|
|
92
|
+
|
|
93
|
+
- **Structural Understanding**: Recognizes code structures, not just text
|
|
94
|
+
- **Complete Units**: Extracts entire functions, classes, or blocks
|
|
95
|
+
- **Language Awareness**: Applies language-specific extraction rules
|
|
96
|
+
- **Context Preservation**: Maintains the full context of code elements
|
|
97
|
+
- **Documentation Inclusion**: Captures associated comments and documentation
|
|
98
|
+
|
|
99
|
+
### FALLBACK MECHANISMS
|
|
100
|
+
|
|
101
|
+
If AST parsing fails or isn't available for a particular language:
|
|
102
|
+
|
|
103
|
+
1. **Context-Based Fallback**: Extracts the specified line with configurable context
|
|
104
|
+
2. **Line Range Extraction**: For explicit line ranges, extracts exactly those lines
|
|
105
|
+
3. **Symbol Text Search**: For symbol references, falls back to text-based search
|
|
106
|
+
|
|
107
|
+
## LANGUAGE-SPECIFIC EXTRACTION
|
|
108
|
+
|
|
109
|
+
Probe provides specialized extraction for each supported language:
|
|
110
|
+
|
|
111
|
+
### RUST
|
|
112
|
+
|
|
113
|
+
- Function definitions with attributes and documentation
|
|
114
|
+
- Struct and enum definitions
|
|
115
|
+
- Implementation blocks
|
|
116
|
+
- Macro definitions
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# Extract a Rust function
|
|
120
|
+
probe extract src/main.rs#handle_request
|
|
121
|
+
|
|
122
|
+
# Extract an impl block
|
|
123
|
+
probe extract src/models.rs:42
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### JAVASCRIPT / TYPESCRIPT
|
|
127
|
+
|
|
128
|
+
- Function and arrow function definitions
|
|
129
|
+
- Class definitions with methods
|
|
130
|
+
- JSX/TSX components
|
|
131
|
+
- TypeScript interfaces and type definitions
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# Extract a JavaScript class
|
|
135
|
+
probe extract src/components/Button.js#Button
|
|
136
|
+
|
|
137
|
+
# Extract a React component
|
|
138
|
+
probe extract src/App.tsx:15
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### PYTHON
|
|
142
|
+
|
|
143
|
+
- Function definitions with docstrings
|
|
144
|
+
- Class definitions with methods
|
|
145
|
+
- Decorated functions and classes
|
|
146
|
+
- Indentation-aware extraction
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
# Extract a Python class
|
|
150
|
+
probe extract src/models.py#UserModel
|
|
151
|
+
|
|
152
|
+
# Extract a decorated function
|
|
153
|
+
probe extract src/views.py:42
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### GO
|
|
157
|
+
|
|
158
|
+
- Function definitions with documentation
|
|
159
|
+
- Struct and interface definitions
|
|
160
|
+
- Methods associated with types
|
|
161
|
+
- Comment association
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# Extract a Go struct
|
|
165
|
+
probe extract pkg/models/user.go#User
|
|
166
|
+
|
|
167
|
+
# Extract a method
|
|
168
|
+
probe extract pkg/handlers/auth.go:42
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### OTHER LANGUAGES
|
|
172
|
+
|
|
173
|
+
Probe supports extraction for many other languages including:
|
|
174
|
+
|
|
175
|
+
- **C/C++**: Functions, classes, structs, templates, namespaces
|
|
176
|
+
- **Java**: Methods, classes, interfaces, annotations
|
|
177
|
+
- **Ruby**: Methods, classes, modules, blocks
|
|
178
|
+
- **PHP**: Functions, classes, namespaces, attributes
|
|
179
|
+
- **Swift**: Functions, classes, structs, protocols, extensions
|
|
180
|
+
- **C#**: Methods, classes, interfaces, namespaces, attributes
|
|
181
|
+
- **Markdown**: Sections, code blocks, lists, tables, frontmatter
|
|
182
|
+
|
|
183
|
+
Each language implementation understands the unique syntax and structures of that language.
|
|
184
|
+
## ADVANCED USAGE TECHNIQUES
|
|
185
|
+
|
|
186
|
+
### PRESERVING ORIGINAL INPUT WITH --KEEP-INPUT
|
|
187
|
+
|
|
188
|
+
The `--keep-input` (or `-k`) flag preserves and displays the original, unstructured input content alongside the extracted code blocks:
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
# Extract code while preserving original input
|
|
192
|
+
probe extract src/main.rs:42 --keep-input
|
|
193
|
+
|
|
194
|
+
# Using the short form
|
|
195
|
+
probe extract src/main.rs:42 -k
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
When this flag is enabled, the output will include:
|
|
199
|
+
1. The original input text exactly as provided
|
|
200
|
+
2. The structured, extracted code blocks
|
|
201
|
+
|
|
202
|
+
This is particularly useful when:
|
|
203
|
+
- Working with error messages or logs where the context is important
|
|
204
|
+
- Debugging extraction issues by comparing input to output
|
|
205
|
+
- Creating documentation that references both the original text and the extracted code
|
|
206
|
+
- Preserving file paths and line numbers from compiler output
|
|
207
|
+
|
|
208
|
+
#### Output Format with --keep-input
|
|
209
|
+
|
|
210
|
+
In terminal output formats (`color`, `terminal`, `plain`, `markdown`), the original input is displayed first, followed by a separator, then the extracted code blocks:
|
|
211
|
+
|
|
212
|
+
```
|
|
213
|
+
--- Original Input ---
|
|
214
|
+
src/main.rs:42: error: invalid syntax
|
|
215
|
+
|
|
216
|
+
--- Extracted Code ---
|
|
217
|
+
fn process_data(data: &[u8]) -> Result<Vec<u8>, Error> {
|
|
218
|
+
// Processing logic
|
|
219
|
+
...
|
|
220
|
+
}
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
In structured output formats (`json`, `xml`), the original input is included as an additional field:
|
|
224
|
+
|
|
225
|
+
```json
|
|
226
|
+
{
|
|
227
|
+
"original_input": "src/main.rs:42: error: invalid syntax",
|
|
228
|
+
"results": [
|
|
229
|
+
{
|
|
230
|
+
"file": "src/main.rs",
|
|
231
|
+
"lines": [40, 45],
|
|
232
|
+
"node_type": "function",
|
|
233
|
+
"code": "fn process_data(data: &[u8]) -> Result<Vec<u8>, Error> {\n // Processing logic\n ...\n}"
|
|
234
|
+
}
|
|
235
|
+
],
|
|
236
|
+
"summary": {
|
|
237
|
+
"count": 1,
|
|
238
|
+
"total_bytes": 85,
|
|
239
|
+
"total_tokens": 25
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### EXTRACTING FROM ERROR MESSAGES
|
|
245
|
+
|
|
246
|
+
Feed compiler errors directly to extract relevant code:
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
# Extract code from compiler errors
|
|
250
|
+
rustc main.rs 2>&1 | probe extract
|
|
251
|
+
|
|
252
|
+
# Pull code from test failures
|
|
253
|
+
go test ./... | probe extract
|
|
254
|
+
|
|
255
|
+
# Extract code from errors while preserving the original error message
|
|
256
|
+
rustc main.rs 2>&1 | probe extract --keep-input
|
|
257
|
+
```
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### GIT DIFF EXTRACTION
|
|
261
|
+
|
|
262
|
+
Extract code from git diff output with automatic format detection:
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
# Extract code from git diff output (auto-detection)
|
|
266
|
+
git diff | probe extract
|
|
267
|
+
|
|
268
|
+
# Extract code from a diff file (auto-detection)
|
|
269
|
+
probe extract diff_file.patch
|
|
270
|
+
|
|
271
|
+
# Extract code from clipboard containing git diff (auto-detection)
|
|
272
|
+
probe extract --from-clipboard
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
Probe automatically detects git diff format when content starts with `diff --git`, making the `--diff` flag optional. This works with:
|
|
276
|
+
|
|
277
|
+
- Piped git diff output
|
|
278
|
+
- Diff files provided as arguments
|
|
279
|
+
- Clipboard content with `--from-clipboard`
|
|
280
|
+
|
|
281
|
+
The `--diff` flag is still supported for backward compatibility and explicit format specification.
|
|
282
|
+
|
|
283
|
+
### PIPELINE INTEGRATION
|
|
284
|
+
|
|
285
|
+
Chain with other tools for powerful workflows:
|
|
286
|
+
|
|
287
|
+
```bash
|
|
288
|
+
# Find and extract error handlers
|
|
289
|
+
probe search "error handling" --files-only | xargs -I{} probe extract {} --format markdown
|
|
290
|
+
|
|
291
|
+
# Extract specific functions with context
|
|
292
|
+
grep -n "handleRequest" ./src/*.js | cut -d':' -f1,2 | probe extract --context 3
|
|
293
|
+
|
|
294
|
+
# Extract all functions matching a pattern
|
|
295
|
+
find . -name "*.py" | xargs grep -l "def test_" | xargs -I{} probe extract {}#test_
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### SYMBOL EXTRACTION EXAMPLES
|
|
299
|
+
|
|
300
|
+
Extract code by symbol name across different languages:
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
# Extract a Rust function
|
|
304
|
+
probe extract src/main.rs#handle_extract
|
|
305
|
+
|
|
306
|
+
# Extract a JavaScript class method
|
|
307
|
+
probe extract src/components/User.js#User.authenticate
|
|
308
|
+
|
|
309
|
+
# Extract a Python class method
|
|
310
|
+
probe extract src/models.py#UserModel.save
|
|
311
|
+
|
|
312
|
+
# Extract a Go interface
|
|
313
|
+
probe extract pkg/service/interface.go#UserService
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
### MULTI-FILE EXTRACTION
|
|
317
|
+
|
|
318
|
+
Extract code from multiple files in a single command:
|
|
319
|
+
|
|
320
|
+
```bash
|
|
321
|
+
# Extract from multiple specific files
|
|
322
|
+
probe extract src/auth.js:15 src/api.js:27 src/models.rs:42
|
|
323
|
+
|
|
324
|
+
# Extract using glob patterns
|
|
325
|
+
probe extract src/*.rs:42
|
|
326
|
+
|
|
327
|
+
# Extract multiple symbols
|
|
328
|
+
probe extract src/main.rs#handle_request src/models.rs#User
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
## PRACTICAL APPLICATIONS
|
|
332
|
+
|
|
333
|
+
### CODE REVIEW WORKFLOWS
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
# Extract changes for review (using auto-detection)
|
|
337
|
+
git diff | probe extract
|
|
338
|
+
|
|
339
|
+
# Extract changes from a specific commit
|
|
340
|
+
git show commit_hash | probe extract
|
|
341
|
+
|
|
342
|
+
# Extract changes between branches
|
|
343
|
+
git diff main..feature-branch | probe extract
|
|
344
|
+
|
|
345
|
+
# Extract functions modified in a PR
|
|
346
|
+
git diff --name-only origin/main | xargs grep -l "fn " | xargs -I{} probe extract {}
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
### DOCUMENTATION GENERATION
|
|
350
|
+
|
|
351
|
+
```bash
|
|
352
|
+
# Extract public API functions for documentation
|
|
353
|
+
find . -name "*.rs" | xargs grep -l "pub fn" | xargs -I{} probe extract {} --format markdown > api_docs.md
|
|
354
|
+
|
|
355
|
+
# Extract class definitions for API reference
|
|
356
|
+
find . -name "*.py" | xargs grep -l "class " | xargs -I{} probe extract {} --format markdown > classes.md
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
### AI INTEGRATION
|
|
360
|
+
|
|
361
|
+
```bash
|
|
362
|
+
# Extract code for AI context
|
|
363
|
+
probe extract src/main.rs:42 --format json | jq '.results[0].code' | ai-assistant "Explain this code"
|
|
364
|
+
|
|
365
|
+
# Extract multiple related functions for AI analysis
|
|
366
|
+
probe extract src/auth.rs#authenticate src/auth.rs#validate --format json --max-tokens 4000
|
|
367
|
+
|
|
368
|
+
# Code review with git diff and AST extraction
|
|
369
|
+
git diff | tee /tmp/changes.diff | ai-assistant "Here are the changes:" && git diff | probe extract | ai-assistant "Here are the complete functions that were modified:"
|
|
370
|
+
|
|
371
|
+
# Comprehensive code review with both diff and AST context
|
|
372
|
+
git diff > /tmp/changes.diff && git diff | probe extract > /tmp/ast_blocks.txt && cat /tmp/changes.diff /tmp/ast_blocks.txt | ai-assistant "Review these changes. The first part shows the diff, and the second part shows the complete AST blocks of modified functions."
|
|
373
|
+
|
|
374
|
+
# Extract code with LLM prompt and instructions
|
|
375
|
+
probe extract src/auth.rs#authenticate --format json --prompt engineer --instructions "Explain this authentication function"
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
The git diff auto-detection feature is particularly valuable for AI code review workflows. When you pipe a git diff to `probe extract`, it automatically extracts the complete AST nodes (functions, classes, methods) that contain the changes, providing AI tools with both the specific changes (from the diff) and the full context (from the AST extraction).
|
|
379
|
+
|
|
380
|
+
### LLM INTEGRATION WITH PROMPTS
|
|
381
|
+
|
|
382
|
+
Probe's extract command supports direct integration with Large Language Models (LLMs) through the `--prompt` and `--instructions` flags:
|
|
383
|
+
|
|
384
|
+
```bash
|
|
385
|
+
# Extract code with engineer prompt template
|
|
386
|
+
probe extract src/main.rs#handle_request --prompt engineer --instructions "Explain this function"
|
|
387
|
+
|
|
388
|
+
# Extract code with architect prompt template
|
|
389
|
+
probe extract src/auth.rs --prompt architect --instructions "Analyze this authentication module"
|
|
390
|
+
|
|
391
|
+
# Extract code with custom prompt template
|
|
392
|
+
probe extract src/api.js:42 --prompt /path/to/custom/prompt.txt --instructions "Refactor this code"
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
#### PROMPT TEMPLATES
|
|
396
|
+
|
|
397
|
+
The `--prompt` flag accepts three types of values:
|
|
398
|
+
|
|
399
|
+
1. **Built-in templates**:
|
|
400
|
+
- `engineer`: A prompt template for software engineering tasks, focused on code implementation
|
|
401
|
+
- `architect`: A prompt template for architectural analysis and planning
|
|
402
|
+
|
|
403
|
+
2. **Custom templates**:
|
|
404
|
+
- Path to a file containing a custom prompt template
|
|
405
|
+
|
|
406
|
+
3. **Output integration**:
|
|
407
|
+
- In structured formats (JSON, XML), the prompt and instructions are included as fields
|
|
408
|
+
- In text formats, they appear as sections at the end of the output
|
|
409
|
+
|
|
410
|
+
This feature is particularly useful for:
|
|
411
|
+
- Creating consistent AI prompting patterns
|
|
412
|
+
- Providing context for code analysis
|
|
413
|
+
- Standardizing code review workflows
|
|
414
|
+
- Automating documentation generation
|
|
415
|
+
|
|
416
|
+
### DEBUGGING ASSISTANCE
|
|
417
|
+
|
|
418
|
+
```bash
|
|
419
|
+
# Extract code from error stack trace
|
|
420
|
+
cat error.log | probe extract
|
|
421
|
+
|
|
422
|
+
# Extract function with additional context
|
|
423
|
+
probe extract src/api.js:27 --context 10
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
## BENEFITS OF CODE EXTRACTION
|
|
427
|
+
|
|
428
|
+
- **COMPLETE CONTEXT**: Get entire functions or classes, not just fragments
|
|
429
|
+
- **LANGUAGE AWARENESS**: Extracts code according to language-specific rules
|
|
430
|
+
- **PRECISE TARGETING**: Extract exactly what you need by line or symbol name
|
|
431
|
+
- **FORMAT FLEXIBILITY**: Output in various formats for different workflows
|
|
432
|
+
- **TOOL INTEGRATION**: Works seamlessly with other command-line tools
|
|
433
|
+
- **INTELLIGENT FALLBACKS**: Gracefully handles cases where AST parsing isn't possible
|
|
434
|
+
|
|
435
|
+
For more information on how Probe works internally, see [How Probe Works](how-it-works.md).
|
|
436
|
+
For details on search capabilities, see [Search Functionality](search-functionality.md).
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Contributing to Probe
|
|
2
|
+
|
|
3
|
+
This directory contains guides for contributors to the Probe project, including:
|
|
4
|
+
|
|
5
|
+
- Documentation Maintenance
|
|
6
|
+
- Documentation Cross-References
|
|
7
|
+
- Documentation Structure
|
|
8
|
+
|
|
9
|
+
For general contribution guidelines, please see the [Contributing Guide](https://github.com/probelabs/probe/blob/main/CONTRIBUTING.md) in the main repository.
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# Documentation Cross-References
|
|
2
|
+
|
|
3
|
+
This guide explains how to maintain cross-references between different sections of the Probe documentation. Proper cross-referencing is essential for helping users navigate the documentation and find related information.
|
|
4
|
+
|
|
5
|
+
## Importance of Cross-References
|
|
6
|
+
|
|
7
|
+
Cross-references serve several important purposes:
|
|
8
|
+
|
|
9
|
+
1. **Navigation**: Help users move between related topics
|
|
10
|
+
2. **Context**: Provide additional context for complex topics
|
|
11
|
+
3. **Completeness**: Ensure users can find all relevant information
|
|
12
|
+
4. **Coherence**: Create a unified documentation experience
|
|
13
|
+
|
|
14
|
+
## Types of Cross-References
|
|
15
|
+
|
|
16
|
+
The Probe documentation uses several types of cross-references:
|
|
17
|
+
|
|
18
|
+
### 1. Section Links
|
|
19
|
+
|
|
20
|
+
Links between major sections of the documentation:
|
|
21
|
+
|
|
22
|
+
```markdown
|
|
23
|
+
For more information on installation, see the [Core Concepts & Setup](/installation) section.
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 2. Related Topics
|
|
27
|
+
|
|
28
|
+
Links to related topics within the same section:
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
Learn more about [search patterns](/search-functionality#patterns) to improve your search results.
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### 3. Workflow Connections
|
|
35
|
+
|
|
36
|
+
Links that connect different parts of a workflow:
|
|
37
|
+
|
|
38
|
+
```markdown
|
|
39
|
+
After [setting up the MCP server](/mcp-server#setting-up-the-mcp-server), you can [integrate it with your AI editor](/mcp-integration#editor-integration).
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 4. Reference Links
|
|
43
|
+
|
|
44
|
+
Links to reference documentation for specific features:
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
See the [CLI Reference](/cli-mode#search-command) for a complete list of search options.
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Cross-Reference Patterns
|
|
51
|
+
|
|
52
|
+
When adding cross-references, follow these patterns:
|
|
53
|
+
|
|
54
|
+
### Between Core Concepts and Use Cases
|
|
55
|
+
|
|
56
|
+
Core Concepts pages should link to relevant Use Cases:
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
# Language Support
|
|
60
|
+
|
|
61
|
+
[...content...]
|
|
62
|
+
|
|
63
|
+
## Using in Your Workflow
|
|
64
|
+
|
|
65
|
+
Once you understand the supported languages, you can:
|
|
66
|
+
|
|
67
|
+
- [Use Probe with AI Code Editors](/mcp-integration) for intelligent code assistance
|
|
68
|
+
- [Build custom tools with the Node.js SDK](/nodejs-sdk) for language-specific processing
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Use Cases should link back to relevant Core Concepts:
|
|
72
|
+
|
|
73
|
+
```markdown
|
|
74
|
+
# Using with AI Code Editors
|
|
75
|
+
|
|
76
|
+
[...content...]
|
|
77
|
+
|
|
78
|
+
This integration relies on Probe's [language parsing capabilities](/language-support-overview) to provide accurate code context.
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Between Use Cases and Reference
|
|
82
|
+
|
|
83
|
+
Use Cases should link to relevant Reference documentation:
|
|
84
|
+
|
|
85
|
+
```markdown
|
|
86
|
+
# Using in the CLI for Advanced AI
|
|
87
|
+
|
|
88
|
+
[...content...]
|
|
89
|
+
|
|
90
|
+
For a complete list of CLI options, see the [CLI Reference](/cli-mode).
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Reference documentation should mention relevant Use Cases:
|
|
94
|
+
|
|
95
|
+
```markdown
|
|
96
|
+
# CLI Reference
|
|
97
|
+
|
|
98
|
+
[...content...]
|
|
99
|
+
|
|
100
|
+
These commands are commonly used in [AI chat workflows](/ai-chat) and when [building custom tools](/nodejs-sdk).
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Maintaining Cross-References
|
|
104
|
+
|
|
105
|
+
When updating the documentation structure, follow these guidelines to maintain cross-references:
|
|
106
|
+
|
|
107
|
+
### 1. Update Links When Moving Pages
|
|
108
|
+
|
|
109
|
+
If you move a page to a new location, update all links to that page:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Find all links to a specific page
|
|
113
|
+
grep -r "\[.*\](\/old-page-path)" site/
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### 2. Check for Broken Links
|
|
117
|
+
|
|
118
|
+
Regularly check for broken links in the documentation:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# Using a tool like linkcheck
|
|
122
|
+
npx linkcheck https://probe-docs.example.com
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 3. Add Context to Links
|
|
126
|
+
|
|
127
|
+
When adding a link, include context about what the user will find:
|
|
128
|
+
|
|
129
|
+
```markdown
|
|
130
|
+
# Good
|
|
131
|
+
For details on output formatting, see the [Output Formats Reference](/output-formats).
|
|
132
|
+
|
|
133
|
+
# Better
|
|
134
|
+
For details on how to format search results as JSON or XML, see the [Output Formats Reference](/output-formats#json-and-xml).
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### 4. Use Anchor Links
|
|
138
|
+
|
|
139
|
+
Link to specific sections of a page when appropriate:
|
|
140
|
+
|
|
141
|
+
```markdown
|
|
142
|
+
See the [search command options](/cli-mode#search-options) for more details.
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Cross-Reference Map
|
|
146
|
+
|
|
147
|
+
The following table shows the key cross-references between different sections of the documentation:
|
|
148
|
+
|
|
149
|
+
| From | To | Purpose |
|
|
150
|
+
|------|-------|---------|
|
|
151
|
+
| Core Concepts → | Use Cases | Show how concepts are applied in practice |
|
|
152
|
+
| Use Cases → | Core Concepts | Provide background on underlying concepts |
|
|
153
|
+
| Use Cases → | Reference | Point to detailed technical information |
|
|
154
|
+
| Reference → | Use Cases | Show practical applications of technical features |
|
|
155
|
+
|
|
156
|
+
## Examples of Effective Cross-References
|
|
157
|
+
|
|
158
|
+
### Example 1: From Core Concepts to Use Cases
|
|
159
|
+
|
|
160
|
+
```markdown
|
|
161
|
+
# What is Probe?
|
|
162
|
+
|
|
163
|
+
[...content about Probe's features...]
|
|
164
|
+
|
|
165
|
+
## Real-World Applications
|
|
166
|
+
|
|
167
|
+
Probe can be used in various workflows:
|
|
168
|
+
|
|
169
|
+
- For AI-assisted coding, see [Using with AI Code Editors](/mcp-integration)
|
|
170
|
+
- For team collaboration, see [Hosting a Team Chat](/web-interface)
|
|
171
|
+
- For custom AI tools, see [Building AI Tools with Node.js SDK](/nodejs-sdk)
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Example 2: From Use Cases to Reference
|
|
175
|
+
|
|
176
|
+
```markdown
|
|
177
|
+
# Using in the CLI for Advanced AI
|
|
178
|
+
|
|
179
|
+
[...content about CLI usage...]
|
|
180
|
+
|
|
181
|
+
## Advanced Configuration
|
|
182
|
+
|
|
183
|
+
For advanced use cases, you can configure various aspects of the CLI:
|
|
184
|
+
|
|
185
|
+
- For output formatting options, see [Output Formats Reference](/output-formats)
|
|
186
|
+
- For search pattern syntax, see [Search Functionality](/search-functionality#patterns)
|
|
187
|
+
- For environment variables, see [AI Integration Reference](/ai-integration#configuration-options)
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Example 3: From Reference to Core Concepts and Use Cases
|
|
191
|
+
|
|
192
|
+
```markdown
|
|
193
|
+
# CLI Reference
|
|
194
|
+
|
|
195
|
+
[...command reference...]
|
|
196
|
+
|
|
197
|
+
## Background
|
|
198
|
+
|
|
199
|
+
The CLI commands are built on Probe's [core search technology](/how-it-works#search-technology).
|
|
200
|
+
|
|
201
|
+
## Common Workflows
|
|
202
|
+
|
|
203
|
+
These commands are commonly used in:
|
|
204
|
+
|
|
205
|
+
- [AI chat sessions](/ai-chat) for interactive code exploration
|
|
206
|
+
- [Custom AI tools](/nodejs-sdk) for automated code analysis
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## Best Practices Summary
|
|
210
|
+
|
|
211
|
+
1. **Be Specific**: Link to the most specific section that contains the relevant information
|
|
212
|
+
2. **Add Context**: Explain what the user will find at the linked location
|
|
213
|
+
3. **Maintain Bidirectional Links**: Ensure that related topics link to each other
|
|
214
|
+
4. **Check Regularly**: Verify that links remain valid as the documentation evolves
|
|
215
|
+
5. **Use Consistent Language**: Use consistent phrasing for similar types of cross-references
|