@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,229 @@
|
|
|
1
|
+
@echo off
|
|
2
|
+
setlocal enabledelayedexpansion
|
|
3
|
+
|
|
4
|
+
echo.
|
|
5
|
+
echo =======================================
|
|
6
|
+
echo Probe Windows Build Script
|
|
7
|
+
echo =======================================
|
|
8
|
+
echo.
|
|
9
|
+
|
|
10
|
+
set "BUILD_LOG=%TEMP%\probe-build-windows.log"
|
|
11
|
+
echo Probe Windows Build Started at %date% %time% > "%BUILD_LOG%"
|
|
12
|
+
|
|
13
|
+
:: Set script directory and repo root
|
|
14
|
+
set "SCRIPT_DIR=%~dp0"
|
|
15
|
+
set "REPO_ROOT=%SCRIPT_DIR%"
|
|
16
|
+
cd /d "%REPO_ROOT%"
|
|
17
|
+
|
|
18
|
+
echo [1/5] Checking prerequisites...
|
|
19
|
+
echo [1/5] Checking prerequisites... >> "%BUILD_LOG%"
|
|
20
|
+
|
|
21
|
+
:: Check for Rust installation
|
|
22
|
+
echo - Checking for Rust installation...
|
|
23
|
+
where /q rustc
|
|
24
|
+
if %ERRORLEVEL% neq 0 (
|
|
25
|
+
echo [ERROR] Rust is not installed or not in PATH >> "%BUILD_LOG%"
|
|
26
|
+
echo [ERROR] Rust is not installed or not in PATH.
|
|
27
|
+
echo Please install Rust from https://www.rust-lang.org/tools/install
|
|
28
|
+
echo Run the following command in your browser:
|
|
29
|
+
echo https://static.rust-lang.org/rustup/rustup-init.exe
|
|
30
|
+
exit /b 1
|
|
31
|
+
) else (
|
|
32
|
+
rustc --version >> "%BUILD_LOG%" 2>&1
|
|
33
|
+
echo - Rust is installed: !ERRORLEVEL!
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
:: Check for MSYS2 installation
|
|
37
|
+
echo - Checking for MSYS2 installation...
|
|
38
|
+
if exist "C:\msys64\usr\bin\bash.exe" (
|
|
39
|
+
echo - MSYS2 is installed.
|
|
40
|
+
echo MSYS2 is installed >> "%BUILD_LOG%"
|
|
41
|
+
) else (
|
|
42
|
+
echo - [WARNING] MSYS2 does not appear to be installed at the default location.
|
|
43
|
+
echo - This is required for GCC compiler toolchain.
|
|
44
|
+
echo - Install MSYS2 using Windows Package Manager:
|
|
45
|
+
echo - winget install MSYS2.MSYS2
|
|
46
|
+
echo - Then install MinGW toolchain by running:
|
|
47
|
+
echo - pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
|
|
48
|
+
echo - And add C:\msys64\ucrt64\bin to your PATH
|
|
49
|
+
echo MSYS2 might not be installed >> "%BUILD_LOG%"
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
:: Check if GCC is available
|
|
53
|
+
echo - Checking for GCC compiler...
|
|
54
|
+
where /q gcc
|
|
55
|
+
if %ERRORLEVEL% neq 0 (
|
|
56
|
+
echo - [WARNING] GCC compiler not found in PATH.
|
|
57
|
+
echo - If you encounter build errors related to 'gcc.exe', you will need to:
|
|
58
|
+
echo - 1. Ensure MSYS2 is installed: winget install MSYS2.MSYS2
|
|
59
|
+
echo - 2. Open MSYS2 MSYS shell from Start Menu
|
|
60
|
+
echo - 3. Run: pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
|
|
61
|
+
echo - 4. Add C:\msys64\ucrt64\bin to your system PATH
|
|
62
|
+
echo GCC not found in PATH >> "%BUILD_LOG%"
|
|
63
|
+
) else (
|
|
64
|
+
gcc --version >> "%BUILD_LOG%" 2>&1
|
|
65
|
+
echo - GCC compiler found: !ERRORLEVEL!
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
:: Check for Visual Studio Build Tools
|
|
69
|
+
echo - Checking for Visual Studio 2022 C++ Build Tools...
|
|
70
|
+
reg query "HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v "17.0" >nul 2>&1
|
|
71
|
+
set VS2022_INSTALLED=%ERRORLEVEL%
|
|
72
|
+
|
|
73
|
+
reg query "HKLM\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\VS7" /v "17.0" >nul 2>&1
|
|
74
|
+
set VS2022_INSTALLED_WOW=%ERRORLEVEL%
|
|
75
|
+
|
|
76
|
+
reg query "HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VC7" /v "17.0" >nul 2>&1
|
|
77
|
+
set VS2022_VC_INSTALLED=%ERRORLEVEL%
|
|
78
|
+
|
|
79
|
+
if %VS2022_INSTALLED% equ 0 (
|
|
80
|
+
echo - Visual Studio 2022 is installed.
|
|
81
|
+
echo VS2022 is installed >> "%BUILD_LOG%"
|
|
82
|
+
) else if %VS2022_INSTALLED_WOW% equ 0 (
|
|
83
|
+
echo - Visual Studio 2022 is installed (WOW64).
|
|
84
|
+
echo VS2022 is installed (WOW64) >> "%BUILD_LOG%"
|
|
85
|
+
) else if %VS2022_VC_INSTALLED% equ 0 (
|
|
86
|
+
echo - Visual Studio 2022 C++ components are installed.
|
|
87
|
+
echo VS2022 C++ components are installed >> "%BUILD_LOG%"
|
|
88
|
+
) else (
|
|
89
|
+
echo - [WARNING] Visual Studio 2022 Build Tools might not be installed.
|
|
90
|
+
echo - This could cause compilation issues with some dependencies.
|
|
91
|
+
echo - Download and install Build Tools from:
|
|
92
|
+
echo - https://visualstudio.microsoft.com/visual-cpp-build-tools/
|
|
93
|
+
echo - Be sure to select "Desktop development with C++" workload.
|
|
94
|
+
echo VS2022 Build Tools might not be installed >> "%BUILD_LOG%"
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
:: Check for MSVC installation
|
|
98
|
+
echo - Checking for Microsoft Visual C++ Redistributable...
|
|
99
|
+
reg query "HKLM\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64" /v Version >nul 2>&1
|
|
100
|
+
if %ERRORLEVEL% equ 0 (
|
|
101
|
+
echo - Microsoft Visual C++ Redistributable is installed.
|
|
102
|
+
echo MSVC is installed >> "%BUILD_LOG%"
|
|
103
|
+
) else (
|
|
104
|
+
reg query "HKLM\SOFTWARE\Classes\Installer\Dependencies\VC,redist.x64,amd64,14.29,bundle" /v Version >nul 2>&1
|
|
105
|
+
if %ERRORLEVEL% equ 0 (
|
|
106
|
+
echo - Microsoft Visual C++ Redistributable is installed.
|
|
107
|
+
echo MSVC is installed (alternate registry key) >> "%BUILD_LOG%"
|
|
108
|
+
) else (
|
|
109
|
+
echo - [WARNING] Microsoft Visual C++ Redistributable might not be installed.
|
|
110
|
+
echo - The build can proceed, but the binary may not run without installing:
|
|
111
|
+
echo - https://aka.ms/vs/17/release/vc_redist.x64.exe
|
|
112
|
+
echo MSVC might not be installed, but continuing build >> "%BUILD_LOG%"
|
|
113
|
+
)
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
echo.
|
|
117
|
+
echo [2/5] Cleaning previous build...
|
|
118
|
+
echo [2/5] Cleaning previous build... >> "%BUILD_LOG%"
|
|
119
|
+
cargo clean
|
|
120
|
+
if %ERRORLEVEL% neq 0 (
|
|
121
|
+
echo [ERROR] Failed to clean project >> "%BUILD_LOG%"
|
|
122
|
+
echo [ERROR] Failed to clean project. See build log for details: "%BUILD_LOG%"
|
|
123
|
+
exit /b 1
|
|
124
|
+
)
|
|
125
|
+
|
|
126
|
+
echo.
|
|
127
|
+
echo [3/5] Building Probe with Windows-optimized settings...
|
|
128
|
+
echo [3/5] Building Probe with Windows-optimized settings... >> "%BUILD_LOG%"
|
|
129
|
+
echo - This may take a few minutes...
|
|
130
|
+
echo.
|
|
131
|
+
|
|
132
|
+
:: Build with release settings
|
|
133
|
+
cargo build --release >> "%BUILD_LOG%" 2>&1
|
|
134
|
+
set BUILD_ERROR=%ERRORLEVEL%
|
|
135
|
+
|
|
136
|
+
if %BUILD_ERROR% neq 0 (
|
|
137
|
+
echo [ERROR] Build failed with code %BUILD_ERROR%. >> "%BUILD_LOG%"
|
|
138
|
+
echo [ERROR] Build failed with code %BUILD_ERROR%.
|
|
139
|
+
|
|
140
|
+
:: Check for specific error patterns in the log
|
|
141
|
+
findstr /C:"failed to find tool \"gcc.exe\"" "%BUILD_LOG%" >nul 2>&1
|
|
142
|
+
if %ERRORLEVEL% equ 0 (
|
|
143
|
+
echo.
|
|
144
|
+
echo [ERROR DETAILS] Missing GCC compiler.
|
|
145
|
+
echo.
|
|
146
|
+
echo This error occurs because the C/C++ compiler toolchain is missing.
|
|
147
|
+
echo To fix this:
|
|
148
|
+
echo.
|
|
149
|
+
echo 1. Install MSYS2 using Windows Package Manager:
|
|
150
|
+
echo winget install MSYS2.MSYS2
|
|
151
|
+
echo.
|
|
152
|
+
echo 2. Open the "MSYS2 MSYS2" shortcut from the Start Menu
|
|
153
|
+
echo.
|
|
154
|
+
echo 3. Install the MinGW-w64 toolchain by running:
|
|
155
|
+
echo pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
|
|
156
|
+
echo.
|
|
157
|
+
echo 4. Add the compiler to your PATH:
|
|
158
|
+
echo - Open Windows Settings ^> System ^> About ^> Advanced system settings
|
|
159
|
+
echo - Click on "Environment Variables"
|
|
160
|
+
echo - Edit the "Path" variable under either User or System variables
|
|
161
|
+
echo - Add C:\msys64\ucrt64\bin to the list
|
|
162
|
+
echo - Click OK and close all dialogs
|
|
163
|
+
echo.
|
|
164
|
+
echo 5. Restart your terminal/PowerShell and run this script again
|
|
165
|
+
echo.
|
|
166
|
+
) else (
|
|
167
|
+
findstr /C:"requires nightly" "%BUILD_LOG%" >nul 2>&1
|
|
168
|
+
if %ERRORLEVEL% equ 0 (
|
|
169
|
+
echo [ERROR DETAILS] This project requires the nightly Rust toolchain.
|
|
170
|
+
echo To fix this, run:
|
|
171
|
+
echo.
|
|
172
|
+
echo rustup install nightly
|
|
173
|
+
echo rustup default nightly
|
|
174
|
+
echo.
|
|
175
|
+
echo Then run this script again.
|
|
176
|
+
) else (
|
|
177
|
+
echo See build log for details: "%BUILD_LOG%"
|
|
178
|
+
)
|
|
179
|
+
)
|
|
180
|
+
|
|
181
|
+
exit /b 1
|
|
182
|
+
)
|
|
183
|
+
|
|
184
|
+
echo.
|
|
185
|
+
echo [4/5] Verifying build...
|
|
186
|
+
echo [4/5] Verifying build... >> "%BUILD_LOG%"
|
|
187
|
+
|
|
188
|
+
:: Check if executable exists
|
|
189
|
+
if not exist "target\release\probe.exe" (
|
|
190
|
+
echo [ERROR] Build completed but executable not found >> "%BUILD_LOG%"
|
|
191
|
+
echo [ERROR] Build completed but executable not found at target\release\probe.exe
|
|
192
|
+
exit /b 1
|
|
193
|
+
)
|
|
194
|
+
|
|
195
|
+
echo - Executable created successfully at target\release\probe.exe
|
|
196
|
+
echo - Executable created successfully >> "%BUILD_LOG%"
|
|
197
|
+
|
|
198
|
+
echo.
|
|
199
|
+
echo [5/5] Testing executable...
|
|
200
|
+
echo [5/5] Testing executable... >> "%BUILD_LOG%"
|
|
201
|
+
|
|
202
|
+
:: Test if executable runs
|
|
203
|
+
target\release\probe.exe --help > nul 2>&1
|
|
204
|
+
if %ERRORLEVEL% neq 0 (
|
|
205
|
+
echo [WARNING] Executable built but test run failed. You may need to install: >> "%BUILD_LOG%"
|
|
206
|
+
echo [WARNING] Executable built but test run failed.
|
|
207
|
+
echo This may be due to missing Microsoft Visual C++ Redistributable.
|
|
208
|
+
echo Please install it from: https://aka.ms/vs/17/release/vc_redist.x64.exe
|
|
209
|
+
) else (
|
|
210
|
+
echo - Executable test successful
|
|
211
|
+
echo - Executable test successful >> "%BUILD_LOG%"
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
echo.
|
|
215
|
+
echo =======================================
|
|
216
|
+
echo Build completed successfully!
|
|
217
|
+
echo =======================================
|
|
218
|
+
echo.
|
|
219
|
+
echo The probe executable is available at:
|
|
220
|
+
echo %REPO_ROOT%target\release\probe.exe
|
|
221
|
+
echo.
|
|
222
|
+
echo Build log saved to: "%BUILD_LOG%"
|
|
223
|
+
echo.
|
|
224
|
+
echo Next steps:
|
|
225
|
+
echo - Run: .\target\release\probe.exe search "query" path\to\search
|
|
226
|
+
echo - Start MCP server: cd mcp ^&^& npm run build ^&^& node build\index.js
|
|
227
|
+
echo.
|
|
228
|
+
|
|
229
|
+
endlocal
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# Performance Optimization Methodology
|
|
2
|
+
|
|
3
|
+
This document describes the systematic approach for identifying and fixing performance bottlenecks in the probe codebase.
|
|
4
|
+
|
|
5
|
+
## Phase 1: Performance Profiling and Analysis
|
|
6
|
+
|
|
7
|
+
### Step 1: Establish Baseline Performance
|
|
8
|
+
```bash
|
|
9
|
+
# Build release binary first
|
|
10
|
+
cargo build --release
|
|
11
|
+
|
|
12
|
+
# Run performance profiling with debug timing
|
|
13
|
+
DEBUG=1 ./target/release/probe search "workflow" ~/go/src/semantic-kernel/ --max-results 10 --timeout 300 2>/dev/null | sed -n '/=== SEARCH TIMING INFORMATION ===/,/====================================/p'
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Step 2: Identify Performance Bottlenecks
|
|
17
|
+
- Parse timing output to identify components taking >1 second
|
|
18
|
+
- Focus on operations consuming >5% of total execution time
|
|
19
|
+
- Look for patterns: repeated operations, inefficient algorithms, unnecessary work
|
|
20
|
+
|
|
21
|
+
**Example Analysis:**
|
|
22
|
+
```
|
|
23
|
+
=== SEARCH TIMING INFORMATION ===
|
|
24
|
+
Total search time: 53.38s
|
|
25
|
+
Result processing: 39.95s (75% of total - PRIMARY TARGET)
|
|
26
|
+
- Uncovered lines: 22.73s (43% of total - HIGHEST PRIORITY)
|
|
27
|
+
- AST parsing: 11.74s (22% of total - HIGH PRIORITY)
|
|
28
|
+
- Line map building: 8.90s (biggest AST component)
|
|
29
|
+
- Term matching: 7.74s (15% of total - HIGH PRIORITY)
|
|
30
|
+
Limit application: 11.72s (22% of total - HIGH PRIORITY)
|
|
31
|
+
===================================
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Step 3: Architecture Research
|
|
35
|
+
For each bottleneck >1s, spawn separate research agents to analyze:
|
|
36
|
+
- Current implementation approach and complexity
|
|
37
|
+
- Root cause analysis of performance issues
|
|
38
|
+
- Potential optimization strategies with confidence levels
|
|
39
|
+
- Expected performance savings for each strategy
|
|
40
|
+
|
|
41
|
+
## Phase 2: Implementation Strategy
|
|
42
|
+
|
|
43
|
+
### Priority Classification:
|
|
44
|
+
- **High Priority**: >8s potential savings or >15% of total time
|
|
45
|
+
- **Medium Priority**: 2-8s potential savings or 5-15% of total time
|
|
46
|
+
- **Low Priority**: <2s potential savings or <5% of total time
|
|
47
|
+
|
|
48
|
+
### Implementation Order:
|
|
49
|
+
1. **Quick wins first**: High confidence (8-10/10), low complexity optimizations
|
|
50
|
+
2. **High impact second**: Medium confidence, high potential savings
|
|
51
|
+
3. **Polish last**: Lower impact optimizations for final performance tuning
|
|
52
|
+
|
|
53
|
+
## Phase 3: Individual Optimization Implementation
|
|
54
|
+
|
|
55
|
+
For each optimization, follow this exact process:
|
|
56
|
+
|
|
57
|
+
### Step 1: Pre-Implementation Baseline
|
|
58
|
+
```bash
|
|
59
|
+
# Performance test
|
|
60
|
+
DEBUG=1 ./target/release/probe search "workflow" ~/go/src/semantic-kernel/ --max-results 10 --timeout 300 2>/dev/null | sed -n '/=== SEARCH TIMING INFORMATION ===/,/====================================/p'
|
|
61
|
+
|
|
62
|
+
# Correctness test
|
|
63
|
+
./target/release/probe search "stemming" ~/go/src/semantic-kernel/ --max-results 5
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Step 2: Implementation
|
|
67
|
+
- Use architecture agents for complex optimizations
|
|
68
|
+
- Maintain full backward compatibility
|
|
69
|
+
- Add comprehensive comments explaining the optimization
|
|
70
|
+
- Focus on correctness first, performance second
|
|
71
|
+
|
|
72
|
+
### Step 3: Post-Implementation Verification
|
|
73
|
+
```bash
|
|
74
|
+
# Performance verification (same commands as Step 1)
|
|
75
|
+
DEBUG=1 ./target/release/probe search "workflow" ~/go/src/semantic-kernel/ --max-results 10 --timeout 300 2>/dev/null | sed -n '/=== SEARCH TIMING INFORMATION ===/,/====================================/p'
|
|
76
|
+
|
|
77
|
+
# Correctness verification - output should be identical
|
|
78
|
+
./target/release/probe search "stemming" ~/go/src/semantic-kernel/ --max-results 5
|
|
79
|
+
|
|
80
|
+
# Comprehensive testing
|
|
81
|
+
make test
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Step 4: Quality Assurance
|
|
85
|
+
- All tests must pass (unit, integration, CLI tests)
|
|
86
|
+
- Output correctness: same number of results, same content (slight ranking differences OK)
|
|
87
|
+
- Performance improvement: measurable reduction in target timing component
|
|
88
|
+
- Code quality: passes `make lint` and `make format`
|
|
89
|
+
|
|
90
|
+
### Step 5: Documentation and Commit
|
|
91
|
+
```bash
|
|
92
|
+
# Create separate git commit for each optimization
|
|
93
|
+
git add .
|
|
94
|
+
git commit -m "Optimize [component]: [brief description]
|
|
95
|
+
|
|
96
|
+
- [Technical details of what was optimized]
|
|
97
|
+
- Performance improvement: [measurement]
|
|
98
|
+
- [Any important implementation notes]
|
|
99
|
+
|
|
100
|
+
🤖 Generated with [Claude Code](https://claude.ai/code)
|
|
101
|
+
|
|
102
|
+
Co-Authored-By: Claude <noreply@anthropic.com>"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Phase 4: Verification Commands
|
|
106
|
+
|
|
107
|
+
### Standard Performance Test:
|
|
108
|
+
```bash
|
|
109
|
+
DEBUG=1 ./target/release/probe search "workflow" ~/go/src/semantic-kernel/ --max-results 10 --timeout 300 2>/dev/null | sed -n '/=== SEARCH TIMING INFORMATION ===/,/====================================/p'
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Standard Correctness Test:
|
|
113
|
+
```bash
|
|
114
|
+
./target/release/probe search "stemming" ~/go/src/semantic-kernel/ --max-results 5
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Comprehensive Test Suite:
|
|
118
|
+
```bash
|
|
119
|
+
make test
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Output Validation Checklist:
|
|
123
|
+
- ✅ Same number of search results before/after
|
|
124
|
+
- ✅ Same total bytes and tokens returned
|
|
125
|
+
- ✅ All tests pass without regressions
|
|
126
|
+
- ✅ Performance improvement in target component
|
|
127
|
+
- ✅ No new compilation warnings or errors
|
|
128
|
+
|
|
129
|
+
## Phase 5: Success Metrics
|
|
130
|
+
|
|
131
|
+
### Optimization Success Criteria:
|
|
132
|
+
1. **Performance**: Measurable improvement in target timing component
|
|
133
|
+
2. **Correctness**: Identical functional output (same results, bytes, tokens)
|
|
134
|
+
3. **Quality**: All tests pass, no regressions introduced
|
|
135
|
+
4. **Maintainability**: Clean code with comprehensive comments
|
|
136
|
+
5. **Reliability**: Backward compatibility preserved
|
|
137
|
+
|
|
138
|
+
### Performance Tracking:
|
|
139
|
+
Track cumulative improvements across optimization phases:
|
|
140
|
+
- **Baseline**: 53.38s total search time
|
|
141
|
+
- **After Phase 1**: [timing] ([improvement]% faster)
|
|
142
|
+
- **After Phase 2**: [timing] ([improvement]% faster)
|
|
143
|
+
- **Final**: [timing] ([improvement]% faster overall)
|
|
144
|
+
|
|
145
|
+
## Optimization Examples Applied
|
|
146
|
+
|
|
147
|
+
### High-Impact Optimizations Completed:
|
|
148
|
+
1. **Lazy line map construction**: 980ms improvement (26% faster overall)
|
|
149
|
+
2. **AST node filtering**: 700ms improvement (39% faster line map building)
|
|
150
|
+
3. **Simplified query evaluation**: 45% improvement in filtering time
|
|
151
|
+
4. **Token count caching**: 300ms improvement for repeated tokenization
|
|
152
|
+
5. **Uncovered lines batch processing**: 57ms improvement (26% faster uncovered lines)
|
|
153
|
+
|
|
154
|
+
### Key Lessons Learned:
|
|
155
|
+
- **Algorithm complexity** often matters more than micro-optimizations
|
|
156
|
+
- **Lazy evaluation** provides significant gains when work can be avoided
|
|
157
|
+
- **Caching strategies** effective for repeated operations on similar data
|
|
158
|
+
- **Early termination** powerful for processing large datasets
|
|
159
|
+
- **Backward compatibility** essential - never sacrifice correctness for performance
|
|
160
|
+
|
|
161
|
+
This methodology successfully achieved **~95% performance improvement** (53.38s → 2.86s) while maintaining full correctness and backward compatibility.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
use probe_code::language::parser::parse_file_for_code_blocks;
|
|
2
|
+
use std::collections::HashSet;
|
|
3
|
+
|
|
4
|
+
fn main() {
|
|
5
|
+
// Set up test content
|
|
6
|
+
let content = r#"
|
|
7
|
+
fn test_function() {
|
|
8
|
+
// This is a comment
|
|
9
|
+
let x = 42;
|
|
10
|
+
println!("Hello, world!");
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
struct TestStruct {
|
|
14
|
+
field1: i32,
|
|
15
|
+
field2: String,
|
|
16
|
+
}
|
|
17
|
+
"#;
|
|
18
|
+
|
|
19
|
+
// Create a set of line numbers to extract
|
|
20
|
+
let mut line_numbers = HashSet::new();
|
|
21
|
+
line_numbers.insert(3); // Comment line
|
|
22
|
+
line_numbers.insert(4); // Code line
|
|
23
|
+
line_numbers.insert(8); // Struct field line
|
|
24
|
+
|
|
25
|
+
println!("First call (should be a cache miss):");
|
|
26
|
+
let result1 = parse_file_for_code_blocks(content, "rs", &line_numbers, true, None).unwrap();
|
|
27
|
+
println!("Found {} code blocks", result1.len());
|
|
28
|
+
|
|
29
|
+
println!("\nSecond call (should be a cache hit):");
|
|
30
|
+
let result2 = parse_file_for_code_blocks(content, "rs", &line_numbers, true, None).unwrap();
|
|
31
|
+
println!("Found {} code blocks", result2.len());
|
|
32
|
+
|
|
33
|
+
println!("\nThird call with different allow_tests flag (should be a cache miss):");
|
|
34
|
+
let result3 = parse_file_for_code_blocks(content, "rs", &line_numbers, false, None).unwrap();
|
|
35
|
+
println!("Found {} code blocks", result3.len());
|
|
36
|
+
|
|
37
|
+
println!("\nFourth call with different content (should be a cache miss):");
|
|
38
|
+
let content2 = r#"
|
|
39
|
+
fn different_function() {
|
|
40
|
+
// This is a different comment
|
|
41
|
+
let y = 100;
|
|
42
|
+
}
|
|
43
|
+
"#;
|
|
44
|
+
let result4 = parse_file_for_code_blocks(content2, "rs", &line_numbers, true, None).unwrap();
|
|
45
|
+
println!("Found {} code blocks", result4.len());
|
|
46
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Node.js
|
|
2
|
+
node_modules/
|
|
3
|
+
npm-debug.log*
|
|
4
|
+
yarn-debug.log*
|
|
5
|
+
yarn-error.log*
|
|
6
|
+
.npm
|
|
7
|
+
.yarn
|
|
8
|
+
|
|
9
|
+
# Logs
|
|
10
|
+
*.log
|
|
11
|
+
logs/
|
|
12
|
+
*.tmp
|
|
13
|
+
|
|
14
|
+
# Test files (we'll copy them explicitly if needed)
|
|
15
|
+
test/
|
|
16
|
+
*.test.js
|
|
17
|
+
test-*.js
|
|
18
|
+
|
|
19
|
+
# Development files
|
|
20
|
+
.gitignore
|
|
21
|
+
.git/
|
|
22
|
+
.github/
|
|
23
|
+
.vscode/
|
|
24
|
+
.idea/
|
|
25
|
+
|
|
26
|
+
# Temporary files
|
|
27
|
+
probe-debug.txt
|
|
28
|
+
simple-traces.jsonl
|
|
29
|
+
*.cache
|
|
30
|
+
|
|
31
|
+
# Documentation (keep only essential ones)
|
|
32
|
+
TRACING.md
|
|
33
|
+
README.md
|
|
34
|
+
|
|
35
|
+
# OS generated files
|
|
36
|
+
.DS_Store
|
|
37
|
+
Thumbs.db
|