@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,625 @@
|
|
|
1
|
+
# Output Formats Reference
|
|
2
|
+
|
|
3
|
+
Complete reference documentation for Probe's output formats, including JSON and XML schemas for all commands. This reference covers the structure and usage of each format for the `search`, `query`, and `extract` commands.
|
|
4
|
+
|
|
5
|
+
## Common Format Options
|
|
6
|
+
|
|
7
|
+
All three commands (`search`, `query`, and `extract`) support the following output formats:
|
|
8
|
+
|
|
9
|
+
| Format | Description |
|
|
10
|
+
|--------|-------------|
|
|
11
|
+
| `color` | Colorized terminal output (default) |
|
|
12
|
+
| `terminal` | Plain terminal output without colors |
|
|
13
|
+
| `markdown` | Markdown-formatted output |
|
|
14
|
+
| `plain` | Plain text output without formatting |
|
|
15
|
+
| `json` | JSON-formatted output |
|
|
16
|
+
| `xml` | XML-formatted output |
|
|
17
|
+
|
|
18
|
+
To specify an output format, use the `--format` or `-o` option:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
probe search "query" --format json
|
|
22
|
+
probe query "pattern" ./src --format xml
|
|
23
|
+
probe extract file.rs:42 --format markdown
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## JSON Output Format
|
|
27
|
+
|
|
28
|
+
The JSON output format provides a structured representation of search results that's easy to parse programmatically. This is particularly useful for integrating Probe with other tools or scripts.
|
|
29
|
+
|
|
30
|
+
### Common JSON Structure
|
|
31
|
+
|
|
32
|
+
All three commands share a common top-level JSON structure:
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"results": [
|
|
37
|
+
// Array of result objects
|
|
38
|
+
],
|
|
39
|
+
"summary": {
|
|
40
|
+
"count": 5, // Number of results
|
|
41
|
+
"total_bytes": 1024, // Total bytes of code in results
|
|
42
|
+
"total_tokens": 256 // Total tokens in results (for AI usage)
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Search Command JSON Format
|
|
48
|
+
|
|
49
|
+
The `search` command's JSON output includes the following fields for each result:
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"results": [
|
|
54
|
+
{
|
|
55
|
+
"file": "/path/to/file.rs", // File path
|
|
56
|
+
"lines": [10, 20], // Start and end line numbers
|
|
57
|
+
"node_type": "function", // Type of code block (function, class, struct, etc.)
|
|
58
|
+
"code": "fn example() { ... }", // The actual code content
|
|
59
|
+
"matched_keywords": [ // Keywords that matched (if available)
|
|
60
|
+
"example",
|
|
61
|
+
"function"
|
|
62
|
+
],
|
|
63
|
+
"rank": 1, // Rank in search results (if available)
|
|
64
|
+
"score": 0.95 // Relevance score (if available)
|
|
65
|
+
},
|
|
66
|
+
// More results...
|
|
67
|
+
],
|
|
68
|
+
"summary": {
|
|
69
|
+
"count": 5,
|
|
70
|
+
"total_bytes": 1024,
|
|
71
|
+
"total_tokens": 256
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
#### Example: Search JSON Output
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
probe search "authentication" --format json
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"results": [
|
|
85
|
+
{
|
|
86
|
+
"file": "/path/to/auth.rs",
|
|
87
|
+
"lines": [15, 30],
|
|
88
|
+
"node_type": "function",
|
|
89
|
+
"code": "fn authenticate_user(username: &str, password: &str) -> Result<User, AuthError> {\n // Authentication logic\n ...\n}",
|
|
90
|
+
"matched_keywords": ["authenticate", "user"],
|
|
91
|
+
"rank": 1,
|
|
92
|
+
"score": 0.98
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"summary": {
|
|
96
|
+
"count": 1,
|
|
97
|
+
"total_bytes": 120,
|
|
98
|
+
"total_tokens": 30
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Query Command JSON Format
|
|
104
|
+
|
|
105
|
+
The `query` command's JSON output is similar to the search command but includes additional fields specific to AST-based queries:
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"results": [
|
|
110
|
+
{
|
|
111
|
+
"file": "/path/to/file.rs", // File path
|
|
112
|
+
"lines": [10, 20], // Start and end line numbers
|
|
113
|
+
"node_type": "function", // Type of code block (function, class, struct, etc.)
|
|
114
|
+
"code": "fn example() { ... }", // The actual code content
|
|
115
|
+
"column_start": 0, // Starting column
|
|
116
|
+
"column_end": 20 // Ending column
|
|
117
|
+
},
|
|
118
|
+
// More results...
|
|
119
|
+
],
|
|
120
|
+
"summary": {
|
|
121
|
+
"count": 5,
|
|
122
|
+
"total_bytes": 1024,
|
|
123
|
+
"total_tokens": 256
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
#### Example: Query JSON Output
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
probe query "fn $NAME($$$PARAMS) $$$BODY" ./src --language rust --format json
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
```json
|
|
135
|
+
{
|
|
136
|
+
"results": [
|
|
137
|
+
{
|
|
138
|
+
"file": "/path/to/functions.rs",
|
|
139
|
+
"lines": [5, 8],
|
|
140
|
+
"node_type": "function",
|
|
141
|
+
"code": "fn add(a: i32, b: i32) -> i32 {\n a + b\n}",
|
|
142
|
+
"column_start": 0,
|
|
143
|
+
"column_end": 35
|
|
144
|
+
}
|
|
145
|
+
],
|
|
146
|
+
"summary": {
|
|
147
|
+
"count": 1,
|
|
148
|
+
"total_bytes": 35,
|
|
149
|
+
"total_tokens": 15
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Extract Command JSON Format
|
|
155
|
+
|
|
156
|
+
The `extract` command's JSON output is similar to the other commands but may include different `node_type` values depending on the extraction method:
|
|
157
|
+
|
|
158
|
+
```json
|
|
159
|
+
{
|
|
160
|
+
"results": [
|
|
161
|
+
{
|
|
162
|
+
"file": "/path/to/file.rs", // File path
|
|
163
|
+
"lines": [10, 20], // Start and end line numbers
|
|
164
|
+
"node_type": "function", // Type: "function", "struct", "file", "range", "context"
|
|
165
|
+
"code": "fn example() { ... }" // The extracted code content
|
|
166
|
+
},
|
|
167
|
+
// More results...
|
|
168
|
+
],
|
|
169
|
+
"summary": {
|
|
170
|
+
"count": 1,
|
|
171
|
+
"total_bytes": 1024,
|
|
172
|
+
"total_tokens": 256
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
When using the `--keep-input` flag, the JSON output includes an additional `original_input` field containing the exact input text:
|
|
178
|
+
|
|
179
|
+
```json
|
|
180
|
+
{
|
|
181
|
+
"original_input": "src/main.rs:42: error: invalid syntax", // Original input when using --keep-input
|
|
182
|
+
"results": [
|
|
183
|
+
{
|
|
184
|
+
"file": "src/main.rs",
|
|
185
|
+
"lines": [40, 45],
|
|
186
|
+
"node_type": "function",
|
|
187
|
+
"code": "fn process_data(data: &[u8]) -> Result<Vec<u8>, Error> {\n // Processing logic\n ...\n}"
|
|
188
|
+
}
|
|
189
|
+
],
|
|
190
|
+
"summary": {
|
|
191
|
+
"count": 1,
|
|
192
|
+
"total_bytes": 85,
|
|
193
|
+
"total_tokens": 25
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
#### Example: Extract JSON Output
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
probe extract src/main.rs:42 --format json
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
```json
|
|
205
|
+
{
|
|
206
|
+
"results": [
|
|
207
|
+
{
|
|
208
|
+
"file": "src/main.rs",
|
|
209
|
+
"lines": [40, 45],
|
|
210
|
+
"node_type": "function",
|
|
211
|
+
"code": "fn process_data(data: &[u8]) -> Result<Vec<u8>, Error> {\n // Processing logic\n ...\n}"
|
|
212
|
+
}
|
|
213
|
+
],
|
|
214
|
+
"summary": {
|
|
215
|
+
"count": 1,
|
|
216
|
+
"total_bytes": 85,
|
|
217
|
+
"total_tokens": 25
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## XML Output Format
|
|
223
|
+
|
|
224
|
+
The XML output format provides a structured representation similar to JSON but in XML format. This can be useful for tools that prefer XML over JSON.
|
|
225
|
+
|
|
226
|
+
### Common XML Structure
|
|
227
|
+
|
|
228
|
+
All three commands share a common XML structure:
|
|
229
|
+
|
|
230
|
+
```xml
|
|
231
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
232
|
+
<probe_results>
|
|
233
|
+
<result>
|
|
234
|
+
<!-- Result elements -->
|
|
235
|
+
</result>
|
|
236
|
+
<!-- More results... -->
|
|
237
|
+
<summary>
|
|
238
|
+
<count>5</count>
|
|
239
|
+
<total_bytes>1024</total_bytes>
|
|
240
|
+
<total_tokens>256</total_tokens>
|
|
241
|
+
</summary>
|
|
242
|
+
</probe_results>
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### Search Command XML Format
|
|
246
|
+
|
|
247
|
+
The `search` command's XML output includes the following elements for each result:
|
|
248
|
+
|
|
249
|
+
```xml
|
|
250
|
+
<probe_results>
|
|
251
|
+
<result>
|
|
252
|
+
<file>/path/to/file.rs</file>
|
|
253
|
+
<lines>
|
|
254
|
+
<start>10</start>
|
|
255
|
+
<end>20</end>
|
|
256
|
+
</lines>
|
|
257
|
+
<node_type>function</node_type>
|
|
258
|
+
<code><![CDATA[fn example() { ... }]]></code>
|
|
259
|
+
<matched_keywords>
|
|
260
|
+
<keyword>example</keyword>
|
|
261
|
+
<keyword>function</keyword>
|
|
262
|
+
</matched_keywords>
|
|
263
|
+
<rank>1</rank>
|
|
264
|
+
<score>0.95</score>
|
|
265
|
+
</result>
|
|
266
|
+
<!-- More results... -->
|
|
267
|
+
<summary>
|
|
268
|
+
<count>5</count>
|
|
269
|
+
<total_bytes>1024</total_bytes>
|
|
270
|
+
<total_tokens>256</total_tokens>
|
|
271
|
+
</summary>
|
|
272
|
+
</probe_results>
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
#### Example: Search XML Output
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
probe search "authentication" --format xml
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
```xml
|
|
282
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
283
|
+
<probe_results>
|
|
284
|
+
<result>
|
|
285
|
+
<file>/path/to/auth.rs</file>
|
|
286
|
+
<lines>
|
|
287
|
+
<start>15</start>
|
|
288
|
+
<end>30</end>
|
|
289
|
+
</lines>
|
|
290
|
+
<node_type>function</node_type>
|
|
291
|
+
<code><![CDATA[fn authenticate_user(username: &str, password: &str) -> Result<User, AuthError> {
|
|
292
|
+
// Authentication logic
|
|
293
|
+
...
|
|
294
|
+
}]]></code>
|
|
295
|
+
<matched_keywords>
|
|
296
|
+
<keyword>authenticate</keyword>
|
|
297
|
+
<keyword>user</keyword>
|
|
298
|
+
</matched_keywords>
|
|
299
|
+
<rank>1</rank>
|
|
300
|
+
<score>0.98</score>
|
|
301
|
+
</result>
|
|
302
|
+
<summary>
|
|
303
|
+
<count>1</count>
|
|
304
|
+
<total_bytes>120</total_bytes>
|
|
305
|
+
<total_tokens>30</total_tokens>
|
|
306
|
+
</summary>
|
|
307
|
+
</probe_results>
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
### Query Command XML Format
|
|
311
|
+
|
|
312
|
+
The `query` command's XML output is similar to the search command but includes additional elements specific to AST-based queries:
|
|
313
|
+
|
|
314
|
+
```xml
|
|
315
|
+
<probe_results>
|
|
316
|
+
<result>
|
|
317
|
+
<file>/path/to/file.rs</file>
|
|
318
|
+
<lines>
|
|
319
|
+
<start>10</start>
|
|
320
|
+
<end>20</end>
|
|
321
|
+
</lines>
|
|
322
|
+
<node_type>function</node_type>
|
|
323
|
+
<column_start>0</column_start>
|
|
324
|
+
<column_end>20</column_end>
|
|
325
|
+
<code><![CDATA[fn example() { ... }]]></code>
|
|
326
|
+
</result>
|
|
327
|
+
<!-- More results... -->
|
|
328
|
+
<summary>
|
|
329
|
+
<count>5</count>
|
|
330
|
+
<total_bytes>1024</total_bytes>
|
|
331
|
+
<total_tokens>256</total_tokens>
|
|
332
|
+
</summary>
|
|
333
|
+
</probe_results>
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
#### Example: Query XML Output
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
probe query "fn $NAME($$$PARAMS) $$$BODY" ./src --language rust --format xml
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
```xml
|
|
343
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
344
|
+
<probe_results>
|
|
345
|
+
<result>
|
|
346
|
+
<file>/path/to/functions.rs</file>
|
|
347
|
+
<lines>
|
|
348
|
+
<start>5</start>
|
|
349
|
+
<end>8</end>
|
|
350
|
+
</lines>
|
|
351
|
+
<node_type>function</node_type>
|
|
352
|
+
<column_start>0</column_start>
|
|
353
|
+
<column_end>35</column_end>
|
|
354
|
+
<code><![CDATA[fn add(a: i32, b: i32) -> i32 {
|
|
355
|
+
a + b
|
|
356
|
+
}]]></code>
|
|
357
|
+
</result>
|
|
358
|
+
<summary>
|
|
359
|
+
<count>1</count>
|
|
360
|
+
<total_bytes>35</total_bytes>
|
|
361
|
+
<total_tokens>15</total_tokens>
|
|
362
|
+
</summary>
|
|
363
|
+
</probe_results>
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### Extract Command XML Format
|
|
367
|
+
|
|
368
|
+
The `extract` command's XML output is similar to the other commands but may include different `node_type` values depending on the extraction method:
|
|
369
|
+
|
|
370
|
+
```xml
|
|
371
|
+
<probe_results>
|
|
372
|
+
<result>
|
|
373
|
+
<file>/path/to/file.rs</file>
|
|
374
|
+
<lines>
|
|
375
|
+
<start>10</start>
|
|
376
|
+
<end>20</end>
|
|
377
|
+
</lines>
|
|
378
|
+
<node_type>function</node_type>
|
|
379
|
+
<code><![CDATA[fn example() { ... }]]></code>
|
|
380
|
+
</result>
|
|
381
|
+
<!-- More results... -->
|
|
382
|
+
<summary>
|
|
383
|
+
<count>1</count>
|
|
384
|
+
<total_bytes>1024</total_bytes>
|
|
385
|
+
<total_tokens>256</total_tokens>
|
|
386
|
+
</summary>
|
|
387
|
+
</probe_results>
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
When using the `--keep-input` flag, the XML output includes an additional `original_input` element containing the exact input text:
|
|
391
|
+
|
|
392
|
+
```xml
|
|
393
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
394
|
+
<probe_results>
|
|
395
|
+
<original_input><![CDATA[src/main.rs:42: error: invalid syntax]]></original_input>
|
|
396
|
+
<result>
|
|
397
|
+
<file>src/main.rs</file>
|
|
398
|
+
<lines>
|
|
399
|
+
<start>40</start>
|
|
400
|
+
<end>45</end>
|
|
401
|
+
</lines>
|
|
402
|
+
<node_type>function</node_type>
|
|
403
|
+
<code><![CDATA[fn process_data(data: &[u8]) -> Result<Vec<u8>, Error> {
|
|
404
|
+
// Processing logic
|
|
405
|
+
...
|
|
406
|
+
}]]></code>
|
|
407
|
+
</result>
|
|
408
|
+
<summary>
|
|
409
|
+
<count>1</count>
|
|
410
|
+
<total_bytes>85</total_bytes>
|
|
411
|
+
<total_tokens>25</total_tokens>
|
|
412
|
+
</summary>
|
|
413
|
+
</probe_results>
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
#### Example: Extract XML Output
|
|
417
|
+
|
|
418
|
+
```bash
|
|
419
|
+
probe extract src/main.rs:42 --format xml
|
|
420
|
+
|
|
421
|
+
# With --keep-input flag to preserve original input
|
|
422
|
+
probe extract src/main.rs:42 --format xml --keep-input
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
```xml
|
|
426
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
427
|
+
<probe_results>
|
|
428
|
+
<result>
|
|
429
|
+
<file>src/main.rs</file>
|
|
430
|
+
<lines>
|
|
431
|
+
<start>40</start>
|
|
432
|
+
<end>45</end>
|
|
433
|
+
</lines>
|
|
434
|
+
<node_type>function</node_type>
|
|
435
|
+
<code><![CDATA[fn process_data(data: &[u8]) -> Result<Vec<u8>, Error> {
|
|
436
|
+
// Processing logic
|
|
437
|
+
...
|
|
438
|
+
}]]></code>
|
|
439
|
+
</result>
|
|
440
|
+
<summary>
|
|
441
|
+
<count>1</count>
|
|
442
|
+
<total_bytes>85</total_bytes>
|
|
443
|
+
<total_tokens>25</total_tokens>
|
|
444
|
+
</summary>
|
|
445
|
+
</probe_results>
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
## Parsing and Using the Output
|
|
449
|
+
|
|
450
|
+
### Parsing JSON Output
|
|
451
|
+
|
|
452
|
+
You can easily parse the JSON output using any JSON parser. Here are some examples:
|
|
453
|
+
|
|
454
|
+
#### Python Example
|
|
455
|
+
|
|
456
|
+
```python
|
|
457
|
+
import json
|
|
458
|
+
import subprocess
|
|
459
|
+
|
|
460
|
+
# Run probe search and capture output
|
|
461
|
+
output = subprocess.check_output(["probe", "search", "authentication", "--format", "json"])
|
|
462
|
+
results = json.loads(output)
|
|
463
|
+
|
|
464
|
+
# Process the results
|
|
465
|
+
# Check if original input is present (when using --keep-input)
|
|
466
|
+
if "original_input" in results:
|
|
467
|
+
print(f"Original Input:\n{results['original_input']}")
|
|
468
|
+
print("---")
|
|
469
|
+
|
|
470
|
+
for result in results["results"]:
|
|
471
|
+
print(f"File: {result['file']}")
|
|
472
|
+
print(f"Lines: {result['lines'][0]}-{result['lines'][1]}")
|
|
473
|
+
print(f"Code:\n{result['code']}")
|
|
474
|
+
print("---")
|
|
475
|
+
|
|
476
|
+
# Get summary information
|
|
477
|
+
print(f"Found {results['summary']['count']} results")
|
|
478
|
+
print(f"Total bytes: {results['summary']['total_bytes']}")
|
|
479
|
+
print(f"Total tokens: {results['summary']['total_tokens']}")
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
#### JavaScript/Node.js Example
|
|
483
|
+
|
|
484
|
+
```javascript
|
|
485
|
+
const { execSync } = require('child_process');
|
|
486
|
+
|
|
487
|
+
// Run probe search and capture output
|
|
488
|
+
const output = execSync('probe search "authentication" --format json', { encoding: 'utf-8' });
|
|
489
|
+
const results = JSON.parse(output);
|
|
490
|
+
|
|
491
|
+
// Process the results
|
|
492
|
+
// Check if original input is present (when using --keep-input)
|
|
493
|
+
if (results.original_input) {
|
|
494
|
+
console.log(`Original Input:\n${results.original_input}`);
|
|
495
|
+
console.log('---');
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
results.results.forEach(result => {
|
|
499
|
+
console.log(`File: ${result.file}`);
|
|
500
|
+
console.log(`Lines: ${result.lines[0]}-${result.lines[1]}`);
|
|
501
|
+
console.log(`Code:\n${result.code}`);
|
|
502
|
+
console.log('---');
|
|
503
|
+
});
|
|
504
|
+
|
|
505
|
+
// Get summary information
|
|
506
|
+
console.log(`Found ${results.summary.count} results`);
|
|
507
|
+
console.log(`Total bytes: ${results.summary.total_bytes}`);
|
|
508
|
+
console.log(`Total tokens: ${results.summary.total_tokens}`);
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
### Parsing XML Output
|
|
512
|
+
|
|
513
|
+
You can parse the XML output using any XML parser. Here are some examples:
|
|
514
|
+
|
|
515
|
+
#### Python Example
|
|
516
|
+
|
|
517
|
+
```python
|
|
518
|
+
import subprocess
|
|
519
|
+
import xml.etree.ElementTree as ET
|
|
520
|
+
|
|
521
|
+
# Run probe search and capture output
|
|
522
|
+
output = subprocess.check_output(["probe", "search", "authentication", "--format", "xml"])
|
|
523
|
+
root = ET.fromstring(output)
|
|
524
|
+
|
|
525
|
+
# Process the results
|
|
526
|
+
# Check if original input is present (when using --keep-input)
|
|
527
|
+
original_input = root.find('original_input')
|
|
528
|
+
if original_input is not None:
|
|
529
|
+
print(f"Original Input:\n{original_input.text}")
|
|
530
|
+
print("---")
|
|
531
|
+
|
|
532
|
+
for result in root.findall('./result'):
|
|
533
|
+
file = result.find('file').text
|
|
534
|
+
lines_start = result.find('./lines/start').text
|
|
535
|
+
lines_end = result.find('./lines/end').text
|
|
536
|
+
code = result.find('code').text
|
|
537
|
+
|
|
538
|
+
print(f"File: {file}")
|
|
539
|
+
print(f"Lines: {lines_start}-{lines_end}")
|
|
540
|
+
print(f"Code:\n{code}")
|
|
541
|
+
print("---")
|
|
542
|
+
|
|
543
|
+
# Get summary information
|
|
544
|
+
summary = root.find('summary')
|
|
545
|
+
count = summary.find('count').text
|
|
546
|
+
total_bytes = summary.find('total_bytes').text
|
|
547
|
+
total_tokens = summary.find('total_tokens').text
|
|
548
|
+
|
|
549
|
+
print(f"Found {count} results")
|
|
550
|
+
print(f"Total bytes: {total_bytes}")
|
|
551
|
+
print(f"Total tokens: {total_tokens}")
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
#### JavaScript/Node.js Example
|
|
555
|
+
|
|
556
|
+
```javascript
|
|
557
|
+
const { execSync } = require('child_process');
|
|
558
|
+
const { parseString } = require('xml2js');
|
|
559
|
+
|
|
560
|
+
// Run probe search and capture output
|
|
561
|
+
const output = execSync('probe search "authentication" --format xml', { encoding: 'utf-8' });
|
|
562
|
+
|
|
563
|
+
// Parse XML
|
|
564
|
+
parseString(output, (err, result) => {
|
|
565
|
+
if (err) {
|
|
566
|
+
console.error('Error parsing XML:', err);
|
|
567
|
+
return;
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
// Process the results
|
|
571
|
+
// Check if original input is present (when using --keep-input)
|
|
572
|
+
if (result.probe_results.original_input) {
|
|
573
|
+
console.log(`Original Input:\n${result.probe_results.original_input[0]}`);
|
|
574
|
+
console.log('---');
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
const results = result.probe_results.result || [];
|
|
578
|
+
results.forEach(result => {
|
|
579
|
+
const file = result.file[0];
|
|
580
|
+
const linesStart = result.lines[0].start[0];
|
|
581
|
+
const linesEnd = result.lines[0].end[0];
|
|
582
|
+
const code = result.code[0];
|
|
583
|
+
|
|
584
|
+
console.log(`File: ${file}`);
|
|
585
|
+
console.log(`Lines: ${linesStart}-${linesEnd}`);
|
|
586
|
+
console.log(`Code:\n${code}`);
|
|
587
|
+
console.log('---');
|
|
588
|
+
});
|
|
589
|
+
|
|
590
|
+
// Get summary information
|
|
591
|
+
const summary = result.probe_results.summary[0];
|
|
592
|
+
console.log(`Found ${summary.count[0]} results`);
|
|
593
|
+
console.log(`Total bytes: ${summary.total_bytes[0]}`);
|
|
594
|
+
console.log(`Total tokens: ${summary.total_tokens[0]}`);
|
|
595
|
+
});
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
## Format Differences Between Commands
|
|
599
|
+
|
|
600
|
+
While the overall structure is similar, there are some differences in the output formats between commands:
|
|
601
|
+
|
|
602
|
+
1. **Search Command**:
|
|
603
|
+
- Includes ranking and scoring information
|
|
604
|
+
- May include matched keywords
|
|
605
|
+
- Node types are typically language constructs (function, class, etc.)
|
|
606
|
+
|
|
607
|
+
2. **Query Command**:
|
|
608
|
+
- Includes column start and end positions
|
|
609
|
+
- Results are based on AST patterns rather than text search
|
|
610
|
+
- More precise structural matching
|
|
611
|
+
|
|
612
|
+
3. **Extract Command**:
|
|
613
|
+
- Node types can be "file", "function", "range", or "context"
|
|
614
|
+
- Focused on extracting specific code blocks rather than searching
|
|
615
|
+
- May include context lines around the extracted code
|
|
616
|
+
- Can include original input text when using `--keep-input` flag
|
|
617
|
+
|
|
618
|
+
## Special Character Handling
|
|
619
|
+
|
|
620
|
+
Both JSON and XML formats handle special characters appropriately:
|
|
621
|
+
|
|
622
|
+
- **JSON**: Special characters in code are properly escaped according to JSON rules
|
|
623
|
+
- **XML**: Code blocks are wrapped in CDATA sections to preserve formatting and special characters
|
|
624
|
+
|
|
625
|
+
This ensures that the output can be reliably parsed regardless of the content of the code.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "probe-docs",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Documentation for Probe - AI-friendly code search tool",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"docs:dev": "vitepress dev",
|
|
7
|
+
"docs:build": "vitepress build",
|
|
8
|
+
"docs:preview": "vitepress preview",
|
|
9
|
+
"dev": "vitepress dev",
|
|
10
|
+
"build": "vitepress build",
|
|
11
|
+
"preview": "vitepress preview"
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"highlight.js": "^11.11.1",
|
|
15
|
+
"vitepress": "^1.6.3"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@vuepress/plugin-shiki": "^2.0.0-rc.83",
|
|
19
|
+
"markdown-it": "^14.1.0"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Global headers for all files
|
|
2
|
+
/*
|
|
3
|
+
X-Frame-Options: DENY
|
|
4
|
+
X-Content-Type-Options: nosniff
|
|
5
|
+
Referrer-Policy: strict-origin-when-cross-origin
|
|
6
|
+
X-XSS-Protection: 1; mode=block
|
|
7
|
+
|
|
8
|
+
# Cache static assets for 1 year
|
|
9
|
+
/assets/*
|
|
10
|
+
Cache-Control: public, max-age=31536000, immutable
|
|
11
|
+
|
|
12
|
+
# Cache images for 1 week
|
|
13
|
+
/*.png
|
|
14
|
+
Cache-Control: public, max-age=604800
|
|
15
|
+
|
|
16
|
+
/*.jpg
|
|
17
|
+
Cache-Control: public, max-age=604800
|
|
18
|
+
|
|
19
|
+
/*.svg
|
|
20
|
+
Cache-Control: public, max-age=604800
|
|
21
|
+
|
|
22
|
+
# Cache main page for 1 hour
|
|
23
|
+
/
|
|
24
|
+
Cache-Control: public, max-age=3600
|
|
25
|
+
|
|
26
|
+
# Cache other HTML files for 1 hour
|
|
27
|
+
/*.html
|
|
28
|
+
Cache-Control: public, max-age=3600
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Redirect rules for Cloudflare Pages
|
|
2
|
+
|
|
3
|
+
# Redirect www to main domain
|
|
4
|
+
https://www.probelabs.com/* https://probelabs.com/:splat 301
|
|
5
|
+
|
|
6
|
+
# Handle clean URLs - VitePress already generates clean URLs
|
|
7
|
+
# but this ensures fallback behavior
|
|
8
|
+
/docs/* /404.html 404
|
|
9
|
+
|
|
10
|
+
# Fallback for any 404s to custom 404 page
|
|
11
|
+
/* /404.html 404
|