@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,309 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for Mermaid validation functionality using real-world examples from Visor project
|
|
3
|
+
* These tests use actual mermaid diagrams extracted from project documentation
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { describe, test, expect } from '@jest/globals';
|
|
7
|
+
import {
|
|
8
|
+
extractMermaidFromMarkdown,
|
|
9
|
+
validateMermaidDiagram,
|
|
10
|
+
validateMermaidResponse
|
|
11
|
+
} from '../../src/agent/schemaUtils.js';
|
|
12
|
+
|
|
13
|
+
// Real-world mermaid diagrams extracted from Visor project documentation
|
|
14
|
+
const visorExampleDiagrams = {
|
|
15
|
+
componentInteraction: `
|
|
16
|
+
\`\`\`mermaid
|
|
17
|
+
graph TD
|
|
18
|
+
subgraph "Before: CLI-based Approach"
|
|
19
|
+
A[AICheckProvider] --> B[AIReviewService]
|
|
20
|
+
B --> C{spawn probe-chat}
|
|
21
|
+
C --> D[AI API]
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
subgraph "After: Integrated SDK Approach"
|
|
25
|
+
E[AICheckProvider] --> F[AIReviewService]
|
|
26
|
+
F --> G[ProbeAgent SDK]
|
|
27
|
+
G --> H[AI API]
|
|
28
|
+
end
|
|
29
|
+
\`\`\`
|
|
30
|
+
`,
|
|
31
|
+
|
|
32
|
+
aiCheckSequence: `
|
|
33
|
+
\`\`\`mermaid
|
|
34
|
+
sequenceDiagram
|
|
35
|
+
participant CEE as CheckExecutionEngine
|
|
36
|
+
participant AICP as AICheckProvider
|
|
37
|
+
participant ARS as AIReviewService
|
|
38
|
+
participant PA as ProbeAgent
|
|
39
|
+
participant AI as AI API
|
|
40
|
+
|
|
41
|
+
CEE->>+AICP: execute(checkConfig, prInfo, dependencies)
|
|
42
|
+
AICP->>AICP: Load prompt (from file or content)
|
|
43
|
+
AICP->>AICP: Render Liquid template with context (pr, files, outputs)
|
|
44
|
+
AICP->>+ARS: executeReview(processedPrompt, schema)
|
|
45
|
+
ARS->>+PA: new ProbeAgent(options)
|
|
46
|
+
ARS->>+PA: answer(prompt, { schema })
|
|
47
|
+
PA->>+AI: Send API Request
|
|
48
|
+
AI-->>-PA: Return JSON Response
|
|
49
|
+
PA->>PA: Validate response against schema
|
|
50
|
+
PA-->>-ARS: Return validated JSON
|
|
51
|
+
ARS-->>-AICP: Return ReviewSummary
|
|
52
|
+
AICP-->>-CEE: Return ReviewSummary
|
|
53
|
+
\`\`\`
|
|
54
|
+
`,
|
|
55
|
+
|
|
56
|
+
dataFlowChart: `
|
|
57
|
+
\`\`\`mermaid
|
|
58
|
+
flowchart TD
|
|
59
|
+
A[Start: .visor.yaml] --> B{Read Check Config};
|
|
60
|
+
B --> C["Load Prompt<br/>from file or content"];
|
|
61
|
+
C --> D{"Render Prompt Template<br/>with PR and Dep Context"};
|
|
62
|
+
D --> E[Execute AI Check via ProbeAgent];
|
|
63
|
+
E --> F[Receive Validated JSON Result];
|
|
64
|
+
F --> G["Load Output Template<br/>from config or default"];
|
|
65
|
+
G --> H{"Render Output Template<br/>with JSON Result"};
|
|
66
|
+
H --> I[Post Formatted Comment to GitHub];
|
|
67
|
+
I --> J[End];
|
|
68
|
+
\`\`\`
|
|
69
|
+
`
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// Test cases for validation improvements based on real-world usage
|
|
73
|
+
const edgeCaseDiagrams = {
|
|
74
|
+
complexFlowchartWithMultilineLabels: `
|
|
75
|
+
\`\`\`mermaid
|
|
76
|
+
flowchart TD
|
|
77
|
+
A["Complex Process<br/>with multiple lines<br/>and special chars"] --> B{Decision Point?}
|
|
78
|
+
B -->|Yes| C["Process Option A<br/>- Step 1<br/>- Step 2"]
|
|
79
|
+
B -->|No| D["Process Option B<br/>with details"]
|
|
80
|
+
C --> E[Final Result]
|
|
81
|
+
D --> E
|
|
82
|
+
E --> F["End Process<br/>📊 Generate Report"]
|
|
83
|
+
\`\`\`
|
|
84
|
+
`,
|
|
85
|
+
|
|
86
|
+
sequenceWithComplexParticipants: `
|
|
87
|
+
\`\`\`mermaid
|
|
88
|
+
sequenceDiagram
|
|
89
|
+
participant WebApp as Web Application
|
|
90
|
+
participant API as REST API Gateway
|
|
91
|
+
participant Auth as Authentication Service
|
|
92
|
+
participant DB as Database
|
|
93
|
+
participant Cache as Redis Cache
|
|
94
|
+
|
|
95
|
+
WebApp->>+API: POST /api/user/login
|
|
96
|
+
API->>+Auth: validateCredentials(username, password)
|
|
97
|
+
Auth->>+DB: SELECT user WHERE username = ?
|
|
98
|
+
DB-->>-Auth: User record or null
|
|
99
|
+
|
|
100
|
+
alt User exists and password valid
|
|
101
|
+
Auth-->>API: JWT token + user data
|
|
102
|
+
API->>+Cache: SETEX user_session:123 3600 {...}
|
|
103
|
+
Cache-->>-API: OK
|
|
104
|
+
API-->>WebApp: 200 OK + JWT + user profile
|
|
105
|
+
else Authentication failed
|
|
106
|
+
Auth-->>API: 401 Unauthorized
|
|
107
|
+
API-->>WebApp: 401 Unauthorized + error message
|
|
108
|
+
end
|
|
109
|
+
\`\`\`
|
|
110
|
+
`,
|
|
111
|
+
|
|
112
|
+
ganttChartExample: `
|
|
113
|
+
\`\`\`mermaid
|
|
114
|
+
gantt
|
|
115
|
+
title Software Development Timeline
|
|
116
|
+
dateFormat YYYY-MM-DD
|
|
117
|
+
section Planning
|
|
118
|
+
Requirements Analysis :done, req, 2024-01-01, 2024-01-15
|
|
119
|
+
System Design :done, design, after req, 15d
|
|
120
|
+
section Development
|
|
121
|
+
Backend Development :active, backend, 2024-02-01, 30d
|
|
122
|
+
Frontend Development :frontend, after backend, 25d
|
|
123
|
+
section Testing
|
|
124
|
+
Unit Testing :testing, after frontend, 10d
|
|
125
|
+
Integration Testing :int-test, after testing, 7d
|
|
126
|
+
section Deployment
|
|
127
|
+
Production Deployment :deploy, after int-test, 3d
|
|
128
|
+
\`\`\`
|
|
129
|
+
`
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
describe('Visor Project Mermaid Examples', () => {
|
|
133
|
+
describe('Real-world diagram validation', () => {
|
|
134
|
+
test('should validate component interaction diagram', async () => {
|
|
135
|
+
const { diagrams } = extractMermaidFromMarkdown(visorExampleDiagrams.componentInteraction);
|
|
136
|
+
expect(diagrams).toHaveLength(1);
|
|
137
|
+
|
|
138
|
+
const validation = await validateMermaidDiagram(diagrams[0].content);
|
|
139
|
+
expect(validation.isValid).toBe(true);
|
|
140
|
+
expect(validation.diagramType).toBe('flowchart');
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
test('should validate AI check sequence diagram', async () => {
|
|
144
|
+
const { diagrams } = extractMermaidFromMarkdown(visorExampleDiagrams.aiCheckSequence);
|
|
145
|
+
expect(diagrams).toHaveLength(1);
|
|
146
|
+
|
|
147
|
+
const validation = await validateMermaidDiagram(diagrams[0].content);
|
|
148
|
+
expect(validation.isValid).toBe(true);
|
|
149
|
+
expect(validation.diagramType).toBe('sequence');
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
test('should validate data flow chart', async () => {
|
|
153
|
+
const { diagrams } = extractMermaidFromMarkdown(visorExampleDiagrams.dataFlowChart);
|
|
154
|
+
expect(diagrams).toHaveLength(1);
|
|
155
|
+
|
|
156
|
+
const validation = await validateMermaidDiagram(diagrams[0].content);
|
|
157
|
+
expect(validation.isValid).toBe(true);
|
|
158
|
+
expect(validation.diagramType).toBe('flowchart');
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
test('should validate all Visor diagrams in batch', async () => {
|
|
162
|
+
const combinedResponse = Object.values(visorExampleDiagrams).join('\\n\\n');
|
|
163
|
+
const result = await validateMermaidResponse(combinedResponse);
|
|
164
|
+
|
|
165
|
+
expect(result.isValid).toBe(true);
|
|
166
|
+
expect(result.diagrams).toHaveLength(3);
|
|
167
|
+
expect(result.diagrams.every(d => d.isValid)).toBe(true);
|
|
168
|
+
|
|
169
|
+
// Check diagram types
|
|
170
|
+
const diagramTypes = result.diagrams.map(d => d.diagramType);
|
|
171
|
+
expect(diagramTypes).toContain('flowchart');
|
|
172
|
+
expect(diagramTypes).toContain('sequence');
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
describe('Complex real-world patterns', () => {
|
|
177
|
+
test('should validate flowchart with multiline labels and special characters', async () => {
|
|
178
|
+
const { diagrams } = extractMermaidFromMarkdown(edgeCaseDiagrams.complexFlowchartWithMultilineLabels);
|
|
179
|
+
expect(diagrams).toHaveLength(1);
|
|
180
|
+
|
|
181
|
+
const validation = await validateMermaidDiagram(diagrams[0].content);
|
|
182
|
+
expect(validation.isValid).toBe(true);
|
|
183
|
+
expect(validation.diagramType).toBe('flowchart');
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
test('should validate sequence diagram with complex participants and alt blocks', async () => {
|
|
187
|
+
const { diagrams } = extractMermaidFromMarkdown(edgeCaseDiagrams.sequenceWithComplexParticipants);
|
|
188
|
+
expect(diagrams).toHaveLength(1);
|
|
189
|
+
|
|
190
|
+
const validation = await validateMermaidDiagram(diagrams[0].content);
|
|
191
|
+
expect(validation.isValid).toBe(true);
|
|
192
|
+
expect(validation.diagramType).toBe('sequence');
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
test('should validate gantt chart with date formats', async () => {
|
|
196
|
+
const { diagrams } = extractMermaidFromMarkdown(edgeCaseDiagrams.ganttChartExample);
|
|
197
|
+
expect(diagrams).toHaveLength(1);
|
|
198
|
+
|
|
199
|
+
const validation = await validateMermaidDiagram(diagrams[0].content);
|
|
200
|
+
expect(validation.isValid).toBe(true);
|
|
201
|
+
// Maid 0.0.5 doesn't detect gantt type, returns 'unknown'
|
|
202
|
+
expect(validation.diagramType).toBe('unknown');
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
describe('Extraction accuracy', () => {
|
|
207
|
+
test('should preserve diagram structure and formatting', () => {
|
|
208
|
+
const { diagrams } = extractMermaidFromMarkdown(visorExampleDiagrams.aiCheckSequence);
|
|
209
|
+
const diagram = diagrams[0];
|
|
210
|
+
|
|
211
|
+
// Check that participant aliases are preserved
|
|
212
|
+
expect(diagram.content).toContain('participant CEE as CheckExecutionEngine');
|
|
213
|
+
expect(diagram.content).toContain('participant AICP as AICheckProvider');
|
|
214
|
+
|
|
215
|
+
// Check that sequence arrows are preserved
|
|
216
|
+
expect(diagram.content).toContain('CEE->>+AICP:');
|
|
217
|
+
expect(diagram.content).toContain('AI-->>-PA:');
|
|
218
|
+
|
|
219
|
+
// Check that nested calls are preserved
|
|
220
|
+
expect(diagram.content).toContain('AICP->>AICP:');
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
test('should handle subgraph structures correctly', () => {
|
|
224
|
+
const { diagrams } = extractMermaidFromMarkdown(visorExampleDiagrams.componentInteraction);
|
|
225
|
+
const diagram = diagrams[0];
|
|
226
|
+
|
|
227
|
+
// Check that subgraph definitions are preserved
|
|
228
|
+
expect(diagram.content).toContain('subgraph "Before: CLI-based Approach"');
|
|
229
|
+
expect(diagram.content).toContain('subgraph "After: Integrated SDK Approach"');
|
|
230
|
+
|
|
231
|
+
// Check that connections between subgraphs work
|
|
232
|
+
expect(diagram.content).toContain('A[AICheckProvider] --> B[AIReviewService]');
|
|
233
|
+
expect(diagram.content).toContain('E[AICheckProvider] --> F[AIReviewService]');
|
|
234
|
+
});
|
|
235
|
+
|
|
236
|
+
test('should preserve decision node formatting', () => {
|
|
237
|
+
const { diagrams } = extractMermaidFromMarkdown(visorExampleDiagrams.dataFlowChart);
|
|
238
|
+
const diagram = diagrams[0];
|
|
239
|
+
|
|
240
|
+
// Check that decision nodes (diamond shapes) are preserved
|
|
241
|
+
// Note: labels with <br/> now use quotes for maid compatibility
|
|
242
|
+
expect(diagram.content).toContain('{Read Check Config}');
|
|
243
|
+
expect(diagram.content).toContain('{"Render Prompt Template');
|
|
244
|
+
expect(diagram.content).toContain('{"Render Output Template');
|
|
245
|
+
|
|
246
|
+
// Check that multiline labels with HTML breaks are preserved (now quoted)
|
|
247
|
+
expect(diagram.content).toContain('["Load Prompt<br/>from file or content"]');
|
|
248
|
+
});
|
|
249
|
+
});
|
|
250
|
+
|
|
251
|
+
describe('Performance and edge cases', () => {
|
|
252
|
+
test('should handle large diagrams efficiently', async () => {
|
|
253
|
+
// Create a large flowchart with 50 nodes
|
|
254
|
+
const largeFlowchart = `\`\`\`mermaid
|
|
255
|
+
flowchart TD
|
|
256
|
+
${Array.from({length: 50}, (_, i) => ` N${i}[Node ${i}] --> N${i + 1}[Node ${i + 1}]`).join('\n')}
|
|
257
|
+
\`\`\``;
|
|
258
|
+
|
|
259
|
+
const startTime = Date.now();
|
|
260
|
+
const result = await validateMermaidResponse(largeFlowchart);
|
|
261
|
+
const duration = Date.now() - startTime;
|
|
262
|
+
|
|
263
|
+
expect(result.isValid).toBe(true);
|
|
264
|
+
expect(duration).toBeLessThan(1000); // Should complete within 1 second
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
test('should handle diagrams with unusual whitespace', () => {
|
|
268
|
+
const diagramWithWeirdWhitespace = `\`\`\`mermaid
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
graph TD
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
A[Start] --> B[Middle]
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
B --> C[End]
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
\`\`\``;
|
|
282
|
+
|
|
283
|
+
const { diagrams } = extractMermaidFromMarkdown(diagramWithWeirdWhitespace);
|
|
284
|
+
expect(diagrams).toHaveLength(1);
|
|
285
|
+
|
|
286
|
+
// Content preserves whitespace for maid compatibility (no trim)
|
|
287
|
+
const content = diagrams[0].content;
|
|
288
|
+
expect(content.trim().startsWith('graph TD')).toBe(true);
|
|
289
|
+
expect(content.trim().endsWith('B --> C[End]')).toBe(true);
|
|
290
|
+
expect(content).toContain('A[Start] --> B[Middle]'); // Internal spacing preserved
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
test('should extract diagrams with inline attributes', () => {
|
|
294
|
+
const diagramWithAttributes = `\`\`\`mermaid title="System Architecture"
|
|
295
|
+
graph TD
|
|
296
|
+
A --> B
|
|
297
|
+
\`\`\``;
|
|
298
|
+
|
|
299
|
+
const { diagrams } = extractMermaidFromMarkdown(diagramWithAttributes);
|
|
300
|
+
expect(diagrams).toHaveLength(1);
|
|
301
|
+
expect(diagrams[0].attributes).toBe('title="System Architecture"');
|
|
302
|
+
// Content now preserves trailing newline for maid compatibility
|
|
303
|
+
expect(diagrams[0].content).toBe('graph TD\n A --> B\n');
|
|
304
|
+
});
|
|
305
|
+
});
|
|
306
|
+
});
|
|
307
|
+
|
|
308
|
+
// Export the test diagrams for use in other test files or demonstration scripts
|
|
309
|
+
export { visorExampleDiagrams, edgeCaseDiagrams };
|