@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,657 @@
|
|
|
1
|
+
Solutions for common issues with `@crownpeak/dqm-react-component`.
|
|
2
|
+
|
|
3
|
+
## Table of Contents
|
|
4
|
+
- [FAQ](#faq)
|
|
5
|
+
- [Error Messages](#error-messages)
|
|
6
|
+
- [AI Features Issues](#ai-features-issues)
|
|
7
|
+
- [Browser Compatibility](#browser-compatibility)
|
|
8
|
+
- [Performance Issues](#performance-issues)
|
|
9
|
+
- [Debugging Tools](#debugging-tools)
|
|
10
|
+
|
|
11
|
+
## FAQ
|
|
12
|
+
|
|
13
|
+
### General
|
|
14
|
+
|
|
15
|
+
#### Q: Sidebar not showing after installation?
|
|
16
|
+
|
|
17
|
+
**A:** Check these common issues:
|
|
18
|
+
|
|
19
|
+
1. **Authentication**: Verify `apiKey` and `websiteId` are set
|
|
20
|
+
2. **Component State**: Ensure `open` prop is set to `true` or FAB button is clicked
|
|
21
|
+
3. **CSS Conflicts**: Check if global styles hide or break sidebar
|
|
22
|
+
4. **Browser Console**: Look for errors in console
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
// Verify authentication
|
|
26
|
+
console.log('API Key:', localStorage.getItem('dqm_apiKey'));
|
|
27
|
+
console.log('Website ID:', localStorage.getItem('dqm_websiteID'));
|
|
28
|
+
|
|
29
|
+
// Force open sidebar
|
|
30
|
+
<DQMSidebar
|
|
31
|
+
open={true} // Force open for testing
|
|
32
|
+
onOpen={...}
|
|
33
|
+
onClose={...}
|
|
34
|
+
/>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
#### Q: How do I know which authentication mode is active?
|
|
40
|
+
|
|
41
|
+
**A:** Use `onAuthSuccess` callback to inspect session type:
|
|
42
|
+
|
|
43
|
+
```typescript
|
|
44
|
+
<DQMSidebar
|
|
45
|
+
open={open}
|
|
46
|
+
onOpen={() => setOpen(true)}
|
|
47
|
+
onClose={() => setOpen(false)}
|
|
48
|
+
onAuthSuccess={(credentials) => {
|
|
49
|
+
console.log('Session Type:', credentials.sessionType);
|
|
50
|
+
// 'direct' = Direct DQM API calls
|
|
51
|
+
// 'backend' = Proxy via backend server
|
|
52
|
+
}}
|
|
53
|
+
/>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
#### Q: Can I use DQM without React?
|
|
59
|
+
|
|
60
|
+
**A:** Yes! Use the standalone widget bundle (IIFE or ESM):
|
|
61
|
+
|
|
62
|
+
```html
|
|
63
|
+
<script src="https://unpkg.com/@crownpeak/dqm-react-component/dist/dqm-widget.iife.js"></script>
|
|
64
|
+
<script>
|
|
65
|
+
window.DQMWidget.loadDQMWidget({
|
|
66
|
+
config: {
|
|
67
|
+
websiteId: 'your-website-id',
|
|
68
|
+
apiKey: 'your-api-key',
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
</script>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
See **[Widget Guide](./WIDGET-GUIDE.md)** for details.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
#### Q: How do I disable DQM in production?
|
|
79
|
+
|
|
80
|
+
**A:** Use the `disabled` config property:
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
<DQMSidebar
|
|
84
|
+
open={open}
|
|
85
|
+
onOpen={...}
|
|
86
|
+
onClose={...}
|
|
87
|
+
config={{
|
|
88
|
+
disabled: process.env.NODE_ENV === 'production',
|
|
89
|
+
}}
|
|
90
|
+
/>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Or conditionally render:
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
{process.env.NODE_ENV === 'development' && (
|
|
97
|
+
<DQMSidebar open={open} onOpen={...} onClose={...} />
|
|
98
|
+
)}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
#### Q: Can I customize sidebar styles?
|
|
104
|
+
|
|
105
|
+
**A:** No, the sidebar uses Shadow DOM for style isolation. Styles are bundled and cannot be overridden. This ensures consistent rendering across all environments.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
### AI Features
|
|
110
|
+
|
|
111
|
+
#### Q: Why is translation not working?
|
|
112
|
+
|
|
113
|
+
**A:** Check these requirements:
|
|
114
|
+
|
|
115
|
+
1. **Enabled**: `translation.enabled` must be `true`
|
|
116
|
+
2. **API Key**: Valid OpenAI `apiKey` (starts with `sk-`)
|
|
117
|
+
3. **Model**: Check model name is correct
|
|
118
|
+
4. **Target Language**: Valid ISO 639-1 code (e.g., `'de'`, `'es'`, `'fr'`)
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
config={{
|
|
122
|
+
translation: {
|
|
123
|
+
enabled: true, // MUST be true
|
|
124
|
+
apiKey: 'sk-...', // Valid OpenAI API key
|
|
125
|
+
model: 'gpt-4o-mini', // Correct model name
|
|
126
|
+
targetLanguage: 'de', // ISO 639-1 code
|
|
127
|
+
mode: 'fast',
|
|
128
|
+
},
|
|
129
|
+
}}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**Debug:**
|
|
133
|
+
```typescript
|
|
134
|
+
// Check localStorage settings
|
|
135
|
+
console.log('Translation Enabled:', localStorage.getItem('dqm_translate_results_enabled'));
|
|
136
|
+
console.log('Target Language:', localStorage.getItem('dqm_target_language'));
|
|
137
|
+
console.log('OpenAI API Key Set:', !!localStorage.getItem('dqm_openai_apiKey'));
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
#### Q: Translation taking too long?
|
|
143
|
+
|
|
144
|
+
**A:** Try these optimizations:
|
|
145
|
+
|
|
146
|
+
1. **Switch to Fast Mode**: `mode: 'fast'` (15s timeout vs 120s for `'full'`)
|
|
147
|
+
2. **Use a faster model**: `gpt-4o-mini` is optimized for speed
|
|
148
|
+
|
|
149
|
+
```typescript
|
|
150
|
+
// Optimize for speed
|
|
151
|
+
translation: {
|
|
152
|
+
enabled: true,
|
|
153
|
+
apiKey: 'sk-...',
|
|
154
|
+
model: 'gpt-4o-mini', // Fast + cheap
|
|
155
|
+
targetLanguage: 'de',
|
|
156
|
+
mode: 'fast', // 15s timeout
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
#### Q: Summary generation failing?
|
|
163
|
+
|
|
164
|
+
**A:** Check these:
|
|
165
|
+
|
|
166
|
+
1. **OpenAI API Key**: Summary requires valid OpenAI key
|
|
167
|
+
2. **Model**: Ensure model supports JSON mode (`gpt-4o-mini`, `gpt-4o`, `gpt-4.1`)
|
|
168
|
+
3. **Timeout**: Increase timeout if analysis has many checkpoints
|
|
169
|
+
|
|
170
|
+
```typescript
|
|
171
|
+
config={{
|
|
172
|
+
summary: {
|
|
173
|
+
enabled: true,
|
|
174
|
+
backend: 'openai', // Only OpenAI supported
|
|
175
|
+
apiKey: 'sk-...', // Valid key
|
|
176
|
+
model: 'gpt-4o-mini', // Supported model
|
|
177
|
+
timeoutMs: 60000, // Increase timeout for large analyses
|
|
178
|
+
},
|
|
179
|
+
}}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
#### Q: How do I clear AI cache?
|
|
185
|
+
|
|
186
|
+
**A:** Clear IndexedDB cache:
|
|
187
|
+
|
|
188
|
+
```javascript
|
|
189
|
+
// Clear translation cache
|
|
190
|
+
indexedDB.deleteDatabase('DQMTranslationCache');
|
|
191
|
+
|
|
192
|
+
// Reload page
|
|
193
|
+
window.location.reload();
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Or use browser DevTools:
|
|
197
|
+
1. Open DevTools (F12)
|
|
198
|
+
2. Go to "Application" tab
|
|
199
|
+
3. Click "IndexedDB" → "DQMTranslationCache"
|
|
200
|
+
4. Right-click → "Delete database"
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
### Internationalization
|
|
205
|
+
|
|
206
|
+
#### Q: How do I change sidebar language?
|
|
207
|
+
|
|
208
|
+
**A:** Set `dqm_locale` in localStorage:
|
|
209
|
+
|
|
210
|
+
```typescript
|
|
211
|
+
// Change to German
|
|
212
|
+
localStorage.setItem('dqm_locale', 'de');
|
|
213
|
+
|
|
214
|
+
// Reload to apply
|
|
215
|
+
window.location.reload();
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Or use i18next directly:
|
|
219
|
+
|
|
220
|
+
```typescript
|
|
221
|
+
import { useTranslation } from 'react-i18next';
|
|
222
|
+
|
|
223
|
+
function MyComponent() {
|
|
224
|
+
const { i18n } = useTranslation();
|
|
225
|
+
|
|
226
|
+
return (
|
|
227
|
+
<button onClick={() => i18n.changeLanguage('de')}>
|
|
228
|
+
Deutsch
|
|
229
|
+
</button>
|
|
230
|
+
);
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
**Supported Languages:** `en`, `de`, `es`
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Error Messages
|
|
239
|
+
|
|
240
|
+
### Authentication Errors
|
|
241
|
+
|
|
242
|
+
#### `AUTH_001: Invalid API Key`
|
|
243
|
+
|
|
244
|
+
**Cause:** API key is invalid or expired.
|
|
245
|
+
|
|
246
|
+
**Solution:**
|
|
247
|
+
1. Verify API key is correct (check for typos)
|
|
248
|
+
2. Check API key hasn't been revoked in Crownpeak DQM admin
|
|
249
|
+
3. Ensure API key has access to specified website ID
|
|
250
|
+
|
|
251
|
+
```typescript
|
|
252
|
+
// Verify credentials
|
|
253
|
+
console.log('API Key:', localStorage.getItem('dqm_apiKey'));
|
|
254
|
+
console.log('Website ID:', localStorage.getItem('dqm_websiteID'));
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
#### `AUTH_002: Website ID Not Found`
|
|
260
|
+
|
|
261
|
+
**Cause:** Website ID doesn't exist or API key doesn't have access.
|
|
262
|
+
|
|
263
|
+
**Solution:**
|
|
264
|
+
1. Verify website ID is correct
|
|
265
|
+
2. Check API key has permission for this website
|
|
266
|
+
3. Contact Crownpeak support if issue persists
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
#### `AUTH_003: Backend Server Unreachable`
|
|
271
|
+
|
|
272
|
+
**Cause:** Backend server (authentication proxy) is down or URL is incorrect.
|
|
273
|
+
|
|
274
|
+
**Solution:**
|
|
275
|
+
1. Verify `authBackendUrl` is correct
|
|
276
|
+
2. Check backend server is running
|
|
277
|
+
3. Check CORS configuration on backend
|
|
278
|
+
|
|
279
|
+
```typescript
|
|
280
|
+
// Test backend connectivity
|
|
281
|
+
fetch('https://your-backend.com/auth/session')
|
|
282
|
+
.then(res => res.json())
|
|
283
|
+
.then(data => console.log('Backend reachable:', data))
|
|
284
|
+
.catch(err => console.error('Backend unreachable:', err));
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
### Translation Errors
|
|
290
|
+
|
|
291
|
+
#### `TRANSLATION_001: OpenAI API Key Invalid`
|
|
292
|
+
|
|
293
|
+
**Cause:** OpenAI API key is invalid or quota exceeded.
|
|
294
|
+
|
|
295
|
+
**Solution:**
|
|
296
|
+
1. Verify API key is correct (starts with `sk-`)
|
|
297
|
+
2. Check OpenAI account has credits
|
|
298
|
+
3. Verify API key hasn't been revoked
|
|
299
|
+
|
|
300
|
+
```typescript
|
|
301
|
+
// Test OpenAI API key
|
|
302
|
+
fetch('https://api.openai.com/v1/models', {
|
|
303
|
+
headers: { 'Authorization': `Bearer sk-...` }
|
|
304
|
+
})
|
|
305
|
+
.then(res => res.json())
|
|
306
|
+
.then(data => console.log('OpenAI API working:', data))
|
|
307
|
+
.catch(err => console.error('OpenAI API error:', err));
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
#### `TRANSLATION_003: Translation Timeout`
|
|
313
|
+
|
|
314
|
+
**Cause:** Translation took longer than configured timeout.
|
|
315
|
+
|
|
316
|
+
**Solution:**
|
|
317
|
+
1. Switch from `'full'` to `'fast'` mode
|
|
318
|
+
2. Reduce number of checkpoints (if applicable)
|
|
319
|
+
|
|
320
|
+
```typescript
|
|
321
|
+
// Optimize for speed
|
|
322
|
+
translation: {
|
|
323
|
+
apiKey: 'sk-...',
|
|
324
|
+
model: 'gpt-4o-mini',
|
|
325
|
+
targetLanguage: 'de',
|
|
326
|
+
mode: 'fast', // 15s timeout instead of 120s
|
|
327
|
+
}
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
### Summary Errors
|
|
333
|
+
|
|
334
|
+
#### `SUMMARY_001: OpenAI API Error`
|
|
335
|
+
|
|
336
|
+
**Cause:** OpenAI API request failed (rate limit, quota, network).
|
|
337
|
+
|
|
338
|
+
**Solution:**
|
|
339
|
+
1. Check OpenAI account credits
|
|
340
|
+
2. Verify API key permissions
|
|
341
|
+
3. Check rate limits (tier-based)
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
#### `SUMMARY_002: Chunking Strategy Failed`
|
|
346
|
+
|
|
347
|
+
**Cause:** Too many checkpoints, chunking strategy couldn't complete.
|
|
348
|
+
|
|
349
|
+
**Solution:**
|
|
350
|
+
1. Increase timeout: `summary.timeoutMs: 90000`
|
|
351
|
+
2. Reduce checkpoint count (filter failed only)
|
|
352
|
+
3. Use simpler model (`gpt-4o-mini` instead of `gpt-4o`)
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
### Analysis Errors
|
|
357
|
+
|
|
358
|
+
#### `ANALYSIS_001: DQM API Timeout`
|
|
359
|
+
|
|
360
|
+
**Cause:** DQM API took too long to analyze HTML.
|
|
361
|
+
|
|
362
|
+
**Solution:**
|
|
363
|
+
1. Reduce HTML complexity (remove unnecessary elements)
|
|
364
|
+
2. Check HTML size (<1MB recommended)
|
|
365
|
+
3. Try again (transient error)
|
|
366
|
+
|
|
367
|
+
---
|
|
368
|
+
|
|
369
|
+
#### `ANALYSIS_002: Invalid HTML`
|
|
370
|
+
|
|
371
|
+
**Cause:** HTML contains syntax errors preventing analysis.
|
|
372
|
+
|
|
373
|
+
**Solution:**
|
|
374
|
+
1. Validate HTML with W3C Validator
|
|
375
|
+
2. Check for unclosed tags
|
|
376
|
+
3. Remove invalid characters
|
|
377
|
+
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
## AI Features Issues
|
|
381
|
+
|
|
382
|
+
### Performance
|
|
383
|
+
|
|
384
|
+
| Checkpoint Count | Translation Time |
|
|
385
|
+
|-----------------|------------------|
|
|
386
|
+
| 10 | 2-3s |
|
|
387
|
+
| 50 | 5-8s |
|
|
388
|
+
| 100 | 10-15s |
|
|
389
|
+
|
|
390
|
+
**Note:** Times assume good network connection. Cached checkpoints: instant (0ms).
|
|
391
|
+
|
|
392
|
+
### Caching Issues
|
|
393
|
+
|
|
394
|
+
#### Cache Not Working?
|
|
395
|
+
|
|
396
|
+
**Symptoms:** Translation re-runs every time even with same checkpoints.
|
|
397
|
+
|
|
398
|
+
**Cause:** IndexedDB cache disabled or cleared.
|
|
399
|
+
|
|
400
|
+
**Solution:**
|
|
401
|
+
1. Verify IndexedDB works in browser
|
|
402
|
+
2. Check browser storage quota
|
|
403
|
+
3. Enable IndexedDB cache in config
|
|
404
|
+
|
|
405
|
+
```typescript
|
|
406
|
+
// Check IndexedDB support
|
|
407
|
+
if ('indexedDB' in window) {
|
|
408
|
+
console.log('IndexedDB supported');
|
|
409
|
+
} else {
|
|
410
|
+
console.error('IndexedDB not supported - caching disabled');
|
|
411
|
+
}
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
#### Cache Taking Too Much Space?
|
|
417
|
+
|
|
418
|
+
**Symptoms:** Browser storage quota exceeded.
|
|
419
|
+
|
|
420
|
+
**Solution:** Clear old cache entries:
|
|
421
|
+
|
|
422
|
+
```javascript
|
|
423
|
+
// Clear translation cache
|
|
424
|
+
indexedDB.deleteDatabase('DQMTranslationCache');
|
|
425
|
+
|
|
426
|
+
// Cache will rebuild on next translation
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
---
|
|
430
|
+
|
|
431
|
+
## Browser Compatibility
|
|
432
|
+
|
|
433
|
+
### React Version Compatibility
|
|
434
|
+
|
|
435
|
+
| React Version | Compatible | Notes |
|
|
436
|
+
|---------------|------------|-------|
|
|
437
|
+
| 18.x | ✅ Yes | Recommended |
|
|
438
|
+
| 17.x | ⚠️ Partial | Some features may not work |
|
|
439
|
+
| 16.x | ❌ No | Not supported |
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
443
|
+
### Material-UI Version Compatibility
|
|
444
|
+
|
|
445
|
+
| MUI Version | Compatible | Notes |
|
|
446
|
+
|-------------|------------|-------|
|
|
447
|
+
| 5.x | ✅ Yes | Recommended |
|
|
448
|
+
| 4.x | ❌ No | Not supported |
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
## Performance Issues
|
|
453
|
+
|
|
454
|
+
### Sidebar Loading Slowly?
|
|
455
|
+
|
|
456
|
+
**Symptoms:** Sidebar takes 5+ seconds to open.
|
|
457
|
+
|
|
458
|
+
**Possible Causes:**
|
|
459
|
+
1. Large HTML document (>1MB)
|
|
460
|
+
2. Slow DQM API response
|
|
461
|
+
3. AI features enabled with slow backend
|
|
462
|
+
|
|
463
|
+
**Solutions:**
|
|
464
|
+
|
|
465
|
+
```typescript
|
|
466
|
+
// 1. Optimize HTML before analysis
|
|
467
|
+
const optimizedHtml = document.documentElement.outerHTML
|
|
468
|
+
.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '') // Remove scripts
|
|
469
|
+
.replace(/<style\b[^<]*(?:(?!<\/style>)<[^<]*)*<\/style>/gi, ''); // Remove styles
|
|
470
|
+
|
|
471
|
+
// 2. Disable AI features for faster loading
|
|
472
|
+
<DQMSidebar
|
|
473
|
+
open={open}
|
|
474
|
+
onOpen={...}
|
|
475
|
+
onClose={...}
|
|
476
|
+
config={{
|
|
477
|
+
websiteId: '...',
|
|
478
|
+
apiKey: '...',
|
|
479
|
+
// translation: { enabled: false }, // Disable for faster loading
|
|
480
|
+
// summary: { enabled: false },
|
|
481
|
+
}}
|
|
482
|
+
/>
|
|
483
|
+
|
|
484
|
+
// 3. Use fast mode for AI translation
|
|
485
|
+
translation: {
|
|
486
|
+
enabled: true,
|
|
487
|
+
apiKey: 'sk-...',
|
|
488
|
+
model: 'gpt-4o-mini',
|
|
489
|
+
targetLanguage: 'de',
|
|
490
|
+
mode: 'fast', // 15s timeout instead of 120s
|
|
491
|
+
}
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
---
|
|
495
|
+
|
|
496
|
+
### High Memory Usage?
|
|
497
|
+
|
|
498
|
+
**Symptoms:** Browser tab uses excessive memory.
|
|
499
|
+
|
|
500
|
+
**Possible Causes:**
|
|
501
|
+
1. Large IndexedDB cache
|
|
502
|
+
2. Many cached highlight renderings
|
|
503
|
+
|
|
504
|
+
**Solutions:**
|
|
505
|
+
|
|
506
|
+
```typescript
|
|
507
|
+
// Clear cache periodically
|
|
508
|
+
indexedDB.deleteDatabase('DQMTranslationCache');
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
---
|
|
512
|
+
|
|
513
|
+
## Debugging Tools
|
|
514
|
+
|
|
515
|
+
### Enable Debug Logging
|
|
516
|
+
|
|
517
|
+
```typescript
|
|
518
|
+
// Method 1: Via localStorage
|
|
519
|
+
localStorage.setItem('dqm_debug', 'true');
|
|
520
|
+
window.location.reload();
|
|
521
|
+
|
|
522
|
+
// Method 2: Via logger (if using library export)
|
|
523
|
+
import { logger } from '@crownpeak/dqm-react-component';
|
|
524
|
+
logger.setDebugMode(true);
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
**Log Format:**
|
|
528
|
+
```
|
|
529
|
+
[DQM] [DEBUG] Analysis started
|
|
530
|
+
[DQM] [WARN] Translation timeout (15s)
|
|
531
|
+
[DQM] [ERROR] API request failed: 401 Unauthorized
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
---
|
|
535
|
+
|
|
536
|
+
### Inspect localStorage
|
|
537
|
+
|
|
538
|
+
```javascript
|
|
539
|
+
// View all DQM settings
|
|
540
|
+
Object.keys(localStorage)
|
|
541
|
+
.filter(key => key.startsWith('dqm_'))
|
|
542
|
+
.forEach(key => {
|
|
543
|
+
console.log(key, '=', localStorage.getItem(key));
|
|
544
|
+
});
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
**Expected Keys:**
|
|
548
|
+
- `dqm_apiKey` - DQM API key
|
|
549
|
+
- `dqm_websiteID` - Website ID
|
|
550
|
+
- `dqm_translate_results_enabled` - Translation toggle
|
|
551
|
+
- `dqm_target_language` - Target language
|
|
552
|
+
- `dqm_ai_summary_enabled` - Summary toggle
|
|
553
|
+
- `dqm_openai_apiKey` - OpenAI API key
|
|
554
|
+
- `dqm_openai_model` - OpenAI model name
|
|
555
|
+
- `dqm_locale` - UI language
|
|
556
|
+
- `dqm_debug` - Debug mode
|
|
557
|
+
|
|
558
|
+
---
|
|
559
|
+
|
|
560
|
+
### Inspect IndexedDB
|
|
561
|
+
|
|
562
|
+
1. Open DevTools (F12)
|
|
563
|
+
2. Go to "Application" tab
|
|
564
|
+
3. Click "IndexedDB" → "DQMTranslationCache"
|
|
565
|
+
4. View cached translations
|
|
566
|
+
|
|
567
|
+
**Cache Structure:**
|
|
568
|
+
```javascript
|
|
569
|
+
{
|
|
570
|
+
key: 'fnv1a_hash_of_checkpoint',
|
|
571
|
+
value: {
|
|
572
|
+
originalText: 'Original checkpoint description',
|
|
573
|
+
translatedText: 'Übersetzter Checkpoint-Text',
|
|
574
|
+
targetLanguage: 'de',
|
|
575
|
+
timestamp: 1234567890,
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
---
|
|
581
|
+
|
|
582
|
+
### Network Inspection
|
|
583
|
+
|
|
584
|
+
**DQM API Calls:**
|
|
585
|
+
1. Open DevTools (F12) → "Network" tab
|
|
586
|
+
2. Filter by "dqm" or "api.crownpeak.net"
|
|
587
|
+
3. Check request/response:
|
|
588
|
+
- **POST /assets**: HTML analysis request
|
|
589
|
+
- **GET /assets/{id}**: Poll for analysis result
|
|
590
|
+
- **GET /assets/{id}/pagehighlight/{checkpointId}**: Fetch highlighted HTML
|
|
591
|
+
|
|
592
|
+
**OpenAI API Calls:**
|
|
593
|
+
1. Filter by "api.openai.com"
|
|
594
|
+
2. Check requests:
|
|
595
|
+
- **POST /v1/chat/completions**: Translation or summary request
|
|
596
|
+
- Response should have `choices[0].message.content`
|
|
597
|
+
|
|
598
|
+
---
|
|
599
|
+
|
|
600
|
+
### Redux DevTools
|
|
601
|
+
|
|
602
|
+
Install Redux DevTools Extension:
|
|
603
|
+
- [Chrome](https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd)
|
|
604
|
+
- [Firefox](https://addons.mozilla.org/en-US/firefox/addon/reduxdevtools/)
|
|
605
|
+
|
|
606
|
+
**Inspect State:**
|
|
607
|
+
1. Open DevTools → "Redux" tab
|
|
608
|
+
2. View state tree:
|
|
609
|
+
- `auth` - Authentication state
|
|
610
|
+
- `ai` - AI translation/summary state
|
|
611
|
+
- `highlight` - Error highlight navigation
|
|
612
|
+
- `locale` - UI language
|
|
613
|
+
|
|
614
|
+
---
|
|
615
|
+
|
|
616
|
+
### React DevTools
|
|
617
|
+
|
|
618
|
+
Install React DevTools Extension:
|
|
619
|
+
- [Chrome](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi)
|
|
620
|
+
- [Firefox](https://addons.mozilla.org/en-US/firefox/addon/react-devtools/)
|
|
621
|
+
|
|
622
|
+
**Inspect Components:**
|
|
623
|
+
1. Open DevTools → "Components" tab
|
|
624
|
+
2. Find `DQMSidebar` component
|
|
625
|
+
3. View props and state
|
|
626
|
+
|
|
627
|
+
---
|
|
628
|
+
|
|
629
|
+
## Getting Help
|
|
630
|
+
|
|
631
|
+
### Before Opening an Issue
|
|
632
|
+
|
|
633
|
+
1. **Enable Debug Logging**: `localStorage.setItem('dqm_debug', 'true')`
|
|
634
|
+
2. **Check Browser Console**: Look for error messages
|
|
635
|
+
3. **Inspect Network Tab**: Verify API calls are successful
|
|
636
|
+
4. **Review localStorage**: Ensure credentials are set
|
|
637
|
+
5. **Test in Incognito**: Rule out extension conflicts
|
|
638
|
+
|
|
639
|
+
### Include in Bug Reports
|
|
640
|
+
|
|
641
|
+
- **Browser**: Chrome 120.0.6099.109
|
|
642
|
+
- **React Version**: 18.2.0
|
|
643
|
+
- **MUI Version**: 5.14.0
|
|
644
|
+
- **Component Version**: 1.2.0
|
|
645
|
+
- **Error Message**: Full error from console
|
|
646
|
+
- **Steps to Reproduce**: Minimal code example
|
|
647
|
+
- **Expected vs Actual**: What you expected vs what happened
|
|
648
|
+
|
|
649
|
+
---
|
|
650
|
+
|
|
651
|
+
## See Also
|
|
652
|
+
|
|
653
|
+
- **[Examples](./EXAMPLES.md)** - Integration examples
|
|
654
|
+
- **[AI Features Guide](./AI-FEATURES.md)** - AI documentation
|
|
655
|
+
- **[API Reference](./API-REFERENCE.md)** - TypeScript API
|
|
656
|
+
- **[Migration Guide](./MIGRATION-GUIDE.md)** - Upgrade from v1.1 to v1.2
|
|
657
|
+
- **[GitHub Issues](https://github.com/e-Spirit/crownpeak-dqm-react-component/issues)** - Report bugs
|