@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,427 @@
|
|
|
1
|
+
# AI Chat Mode
|
|
2
|
+
|
|
3
|
+
Probe's AI Chat mode provides an interactive interface where you can ask questions about your codebase and get AI-powered responses. This mode combines Probe's powerful code search capabilities with large language models to help you understand and navigate your codebase more effectively.
|
|
4
|
+
|
|
5
|
+
> **Note**: For comprehensive documentation on all AI integration features, including the AI chat mode, MCP server integration, and Node.js SDK, see the [AI Integration](./ai-integration.md) page.
|
|
6
|
+
|
|
7
|
+
## Unified Interface
|
|
8
|
+
|
|
9
|
+
Probe now features a unified interface that combines both CLI and web functionality in a single package. The `@probelabs/probe-chat` package supports both CLI mode (default) and web mode (with the `--web` flag).
|
|
10
|
+
|
|
11
|
+
For detailed information about the web interface mode, see the [Web Interface](./web-interface.md) documentation.
|
|
12
|
+
|
|
13
|
+
## Getting Started
|
|
14
|
+
|
|
15
|
+
The AI chat functionality is available as a standalone npm package that can be run directly with npx.
|
|
16
|
+
|
|
17
|
+
### Using npx (Recommended)
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Run directly with npx in CLI mode (no installation needed)
|
|
21
|
+
npx -y @probelabs/probe-chat@latest
|
|
22
|
+
|
|
23
|
+
# Run in web interface mode
|
|
24
|
+
npx -y @probelabs/probe-chat@latest --web
|
|
25
|
+
|
|
26
|
+
# Set your API key first
|
|
27
|
+
export ANTHROPIC_API_KEY=your_api_key
|
|
28
|
+
# Or for OpenAI
|
|
29
|
+
# export OPENAI_API_KEY=your_api_key
|
|
30
|
+
# Or for Google
|
|
31
|
+
# export GOOGLE_API_KEY=your_api_key
|
|
32
|
+
|
|
33
|
+
# Or specify a directory to search
|
|
34
|
+
npx -y @probelabs/probe-chat@latest /path/to/your/project
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Using the npm package
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Install globally
|
|
41
|
+
npm install -g @probelabs/probe-chat@latest
|
|
42
|
+
|
|
43
|
+
# Start the chat interface in CLI mode
|
|
44
|
+
probe-chat
|
|
45
|
+
|
|
46
|
+
# Start the chat interface in web mode
|
|
47
|
+
probe-chat --web
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Using the example code
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Navigate to the examples directory
|
|
54
|
+
cd examples/chat
|
|
55
|
+
|
|
56
|
+
# Install dependencies
|
|
57
|
+
npm install
|
|
58
|
+
|
|
59
|
+
# Set your API key
|
|
60
|
+
export ANTHROPIC_API_KEY=your_api_key
|
|
61
|
+
# Or for OpenAI
|
|
62
|
+
# export OPENAI_API_KEY=your_api_key
|
|
63
|
+
# Or for Google
|
|
64
|
+
# export GOOGLE_API_KEY=your_api_key
|
|
65
|
+
|
|
66
|
+
# Start the chat interface in CLI mode
|
|
67
|
+
node index.js
|
|
68
|
+
|
|
69
|
+
# Start the chat interface in web mode
|
|
70
|
+
node index.js --web
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Features
|
|
74
|
+
|
|
75
|
+
### AI-Powered Search
|
|
76
|
+
|
|
77
|
+
The AI Chat mode uses large language models to understand your questions and search your codebase intelligently. It can:
|
|
78
|
+
|
|
79
|
+
- Find relevant code based on natural language descriptions
|
|
80
|
+
- Explain how different parts of your codebase work together
|
|
81
|
+
- Identify patterns and architectural decisions
|
|
82
|
+
- Help you understand complex code
|
|
83
|
+
|
|
84
|
+
### Multi-Model Support
|
|
85
|
+
|
|
86
|
+
Probe's AI Chat mode supports multiple AI providers:
|
|
87
|
+
|
|
88
|
+
- **Anthropic Claude**: Provides excellent code understanding and explanation capabilities
|
|
89
|
+
- **OpenAI GPT**: Offers strong general-purpose capabilities
|
|
90
|
+
- **Google Gemini**: Delivers fast responses and efficient code search
|
|
91
|
+
|
|
92
|
+
The default model is selected based on which API key you provide, or you can force a specific provider using the `--force-provider` option.
|
|
93
|
+
|
|
94
|
+
#### Force Provider Option
|
|
95
|
+
|
|
96
|
+
You can force the chat to use a specific provider regardless of which API keys are available:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# Force using Anthropic Claude
|
|
100
|
+
probe-chat --force-provider anthropic
|
|
101
|
+
|
|
102
|
+
# Force using OpenAI
|
|
103
|
+
probe-chat --force-provider openai
|
|
104
|
+
|
|
105
|
+
# Force using Google Gemini
|
|
106
|
+
probe-chat --force-provider google
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
This is useful when you have multiple API keys configured but want to use a specific provider for certain tasks.
|
|
110
|
+
|
|
111
|
+
### Token Tracking
|
|
112
|
+
|
|
113
|
+
The AI Chat mode monitors token usage for both requests and responses, helping you keep track of your API usage:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
Token Usage: Request: 1245 Response: 1532 (Current message only: ~1532)
|
|
117
|
+
Total: 2777 tokens (Cumulative for entire session)
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### OpenTelemetry Tracing
|
|
121
|
+
|
|
122
|
+
Probe Chat includes built-in OpenTelemetry tracing support to monitor AI model interactions, performance metrics, and usage patterns:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
# Enable file-based tracing
|
|
126
|
+
probe-chat --trace-file ./traces.jsonl
|
|
127
|
+
|
|
128
|
+
# Enable remote tracing to an OpenTelemetry collector
|
|
129
|
+
probe-chat --trace-remote http://localhost:4318/v1/traces
|
|
130
|
+
|
|
131
|
+
# Enable console tracing for debugging
|
|
132
|
+
probe-chat --trace-console
|
|
133
|
+
|
|
134
|
+
# Combine multiple tracing options
|
|
135
|
+
probe-chat --trace-file --trace-remote --trace-console
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
#### What Gets Traced
|
|
139
|
+
|
|
140
|
+
The tracing system captures comprehensive data about AI interactions:
|
|
141
|
+
|
|
142
|
+
- **AI Model Calls**: Complete request/response cycles with timing
|
|
143
|
+
- **Token Usage**: Detailed token consumption (prompt, completion, total)
|
|
144
|
+
- **Performance Metrics**: Response times, request durations, and throughput
|
|
145
|
+
- **Session Information**: Session IDs, iteration counts, and conversation flow
|
|
146
|
+
- **Model Configuration**: Provider, model name, temperature, and other parameters
|
|
147
|
+
- **Error Tracking**: Failed requests, timeouts, and error details
|
|
148
|
+
|
|
149
|
+
#### File Tracing
|
|
150
|
+
|
|
151
|
+
File tracing saves traces to a JSON Lines format file:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
# Basic file tracing
|
|
155
|
+
probe-chat --trace-file
|
|
156
|
+
|
|
157
|
+
# Custom file path
|
|
158
|
+
probe-chat --trace-file ./debug-traces.jsonl
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Trace files contain one JSON object per line, making them easy to analyze:
|
|
162
|
+
|
|
163
|
+
```json
|
|
164
|
+
{
|
|
165
|
+
"traceId": "abc123...",
|
|
166
|
+
"name": "ai.generateText",
|
|
167
|
+
"attributes": {
|
|
168
|
+
"ai.model.id": "claude-3-7-sonnet-20250219",
|
|
169
|
+
"ai.model.provider": "anthropic",
|
|
170
|
+
"ai.usage.prompt_tokens": "15",
|
|
171
|
+
"ai.usage.completion_tokens": "8",
|
|
172
|
+
"ai.usage.total_tokens": "23"
|
|
173
|
+
},
|
|
174
|
+
"events": [
|
|
175
|
+
{
|
|
176
|
+
"name": "ai.request.start",
|
|
177
|
+
"attributes": {
|
|
178
|
+
"ai.request.messages": "[{\"role\":\"user\",\"content\":\"Hello\"}]"
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
]
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
#### Remote Tracing
|
|
186
|
+
|
|
187
|
+
Send traces to any OpenTelemetry-compatible collector:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
# Jaeger
|
|
191
|
+
probe-chat --trace-remote http://localhost:4318/v1/traces
|
|
192
|
+
|
|
193
|
+
# Custom collector
|
|
194
|
+
probe-chat --trace-remote https://your-collector.com/v1/traces
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
For Jaeger setup:
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# Start Jaeger with Docker
|
|
201
|
+
docker run -d --name jaeger \
|
|
202
|
+
-p 16686:16686 \
|
|
203
|
+
-p 4318:4318 \
|
|
204
|
+
jaegertracing/all-in-one:latest
|
|
205
|
+
|
|
206
|
+
# Use probe-chat with remote tracing
|
|
207
|
+
probe-chat --trace-remote http://localhost:4318/v1/traces
|
|
208
|
+
|
|
209
|
+
# View traces at http://localhost:16686
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
#### Environment Variables
|
|
213
|
+
|
|
214
|
+
Configure tracing through environment variables:
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
# Enable file tracing
|
|
218
|
+
export OTEL_ENABLE_FILE=true
|
|
219
|
+
export OTEL_FILE_PATH=./traces.jsonl
|
|
220
|
+
|
|
221
|
+
# Enable remote tracing
|
|
222
|
+
export OTEL_ENABLE_REMOTE=true
|
|
223
|
+
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4318/v1/traces
|
|
224
|
+
|
|
225
|
+
# Enable console tracing
|
|
226
|
+
export OTEL_ENABLE_CONSOLE=true
|
|
227
|
+
|
|
228
|
+
# Service information
|
|
229
|
+
export OTEL_SERVICE_NAME=probe-chat
|
|
230
|
+
export OTEL_SERVICE_VERSION=1.0.0
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
#### Analyzing Traces
|
|
234
|
+
|
|
235
|
+
Use standard tools to analyze trace data:
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
# View all traces
|
|
239
|
+
cat traces.jsonl | jq '.'
|
|
240
|
+
|
|
241
|
+
# Count successful vs failed requests
|
|
242
|
+
cat traces.jsonl | jq -r '.status.code' | sort | uniq -c
|
|
243
|
+
|
|
244
|
+
# Extract token usage statistics
|
|
245
|
+
cat traces.jsonl | jq -r '.events[]? | select(.name == "ai.response.complete") | .attributes."ai.usage.total_tokens"'
|
|
246
|
+
|
|
247
|
+
# Calculate average response time
|
|
248
|
+
cat traces.jsonl | jq -r '((.endTimeUnixNano - .startTimeUnixNano) / 1000000)' | \
|
|
249
|
+
awk '{sum+=$1} END {print sum/NR " ms"}'
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### Conversation History
|
|
253
|
+
|
|
254
|
+
The chat maintains context across multiple interactions, allowing for follow-up questions and deeper exploration of topics.
|
|
255
|
+
|
|
256
|
+
### Colored Output
|
|
257
|
+
|
|
258
|
+
The terminal interface provides user-friendly colored output with syntax highlighting for code blocks.
|
|
259
|
+
|
|
260
|
+
### Code Editing (Experimental)
|
|
261
|
+
|
|
262
|
+
Probe can help you modify your code in two ways:
|
|
263
|
+
|
|
264
|
+
#### Local Code Editing (`--allow-edit`)
|
|
265
|
+
|
|
266
|
+
When you use the `--allow-edit` flag, Probe can make changes directly to your code files.
|
|
267
|
+
|
|
268
|
+
* **What it does**: Ask Probe to "fix this bug" or "add error handling" and it will modify your files.
|
|
269
|
+
* **What you need**: Install a code editing backend tool:
|
|
270
|
+
- **Claude Code** (default if available): `npm install -g @anthropic-ai/claude-code`
|
|
271
|
+
- **Aider** (fallback): `pip install aider-chat`
|
|
272
|
+
* **Backend selection**: Probe automatically detects which tool is available. You can override this with the `implement_tool_backend` environment variable:
|
|
273
|
+
```bash
|
|
274
|
+
# Force Claude Code
|
|
275
|
+
export implement_tool_backend=claude
|
|
276
|
+
probe-chat --allow-edit
|
|
277
|
+
|
|
278
|
+
# Force Aider
|
|
279
|
+
export implement_tool_backend=aider
|
|
280
|
+
probe-chat --allow-edit
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
#### GitHub Integration
|
|
284
|
+
|
|
285
|
+
If you're using Probe with GitHub Actions, you can set up code suggestions instead of direct changes.
|
|
286
|
+
|
|
287
|
+
* **How it works**: Probe creates suggested changes that appear in your pull requests, just like human code reviews.
|
|
288
|
+
* **Setup**: See the [GitHub Actions Integration](./integrations/github-actions.md#code-modification-options) guide for configuration details.
|
|
289
|
+
|
|
290
|
+
#### Stay Safe
|
|
291
|
+
|
|
292
|
+
* **Always check changes** before keeping them
|
|
293
|
+
* **Test your code** after Probe makes modifications
|
|
294
|
+
* **Start with small requests** to see how it works
|
|
295
|
+
* **GitHub suggestions are safer** because you review changes before applying them
|
|
296
|
+
|
|
297
|
+
For complete usage instructions, see the [CLI Reference](./cli-mode.md#code-editing---allow-edit).
|
|
298
|
+
|
|
299
|
+
## Configuration
|
|
300
|
+
|
|
301
|
+
You can configure the AI Chat mode using environment variables or command-line options:
|
|
302
|
+
|
|
303
|
+
### Command-Line Options
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
# Enable debug mode
|
|
307
|
+
node index.js --debug
|
|
308
|
+
|
|
309
|
+
# Specify a model
|
|
310
|
+
node index.js --model claude-3-7-sonnet-latest
|
|
311
|
+
|
|
312
|
+
# Force a specific provider
|
|
313
|
+
node index.js --force-provider anthropic
|
|
314
|
+
|
|
315
|
+
# Run in web mode
|
|
316
|
+
node index.js --web
|
|
317
|
+
|
|
318
|
+
# Specify a port for web mode
|
|
319
|
+
node index.js --web --port 3000
|
|
320
|
+
|
|
321
|
+
# Specify a directory to search
|
|
322
|
+
node index.js /path/to/your/project
|
|
323
|
+
|
|
324
|
+
# Enable tracing
|
|
325
|
+
node index.js --trace-file ./traces.jsonl
|
|
326
|
+
node index.js --trace-remote http://localhost:4318/v1/traces
|
|
327
|
+
node index.js --trace-console
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Environment Variables
|
|
331
|
+
|
|
332
|
+
```bash
|
|
333
|
+
# Override the default model
|
|
334
|
+
export MODEL_NAME=claude-3-opus-20240229
|
|
335
|
+
probe-chat
|
|
336
|
+
|
|
337
|
+
# Force a specific provider
|
|
338
|
+
export FORCE_PROVIDER=anthropic # Options: anthropic, openai, google
|
|
339
|
+
probe-chat
|
|
340
|
+
|
|
341
|
+
# Override API URLs (useful for proxies or enterprise deployments)
|
|
342
|
+
export ANTHROPIC_API_URL=https://your-anthropic-proxy.com
|
|
343
|
+
export OPENAI_API_URL=https://your-openai-proxy.com/v1
|
|
344
|
+
export GOOGLE_API_URL=https://your-google-proxy.com
|
|
345
|
+
probe-chat
|
|
346
|
+
|
|
347
|
+
# Enable debug mode for detailed logging
|
|
348
|
+
export DEBUG=1 probe-chat
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
## Example Usage
|
|
352
|
+
|
|
353
|
+
Here's an example of how you might use the AI Chat mode:
|
|
354
|
+
|
|
355
|
+
```
|
|
356
|
+
❯ How does the ranking algorithm work?
|
|
357
|
+
|
|
358
|
+
─ Response ─────────────────────────────────────────────────────────
|
|
359
|
+
I'll explain how the ranking algorithm works in the codebase.
|
|
360
|
+
|
|
361
|
+
The ranking system in Probe uses multiple algorithms to sort search results by relevance. The main ranking algorithms are:
|
|
362
|
+
|
|
363
|
+
1. TF-IDF (Term Frequency-Inverse Document Frequency)
|
|
364
|
+
2. BM25 (Best Matching 25)
|
|
365
|
+
3. Hybrid (a combination approach)
|
|
366
|
+
|
|
367
|
+
Let me break down each approach:
|
|
368
|
+
|
|
369
|
+
## TF-IDF Ranking
|
|
370
|
+
|
|
371
|
+
TF-IDF weighs terms based on how frequently they appear in a document versus how common they are across all documents.
|
|
372
|
+
|
|
373
|
+
Key implementation details:
|
|
374
|
+
- Term frequency (TF) measures how often a term appears in a document
|
|
375
|
+
- Inverse document frequency (IDF) measures how rare a term is across all documents
|
|
376
|
+
- Final score is calculated as TF × IDF
|
|
377
|
+
|
|
378
|
+
## BM25 Ranking
|
|
379
|
+
|
|
380
|
+
BM25 is an advanced ranking function that improves upon TF-IDF by adding document length normalization.
|
|
381
|
+
|
|
382
|
+
Key implementation details:
|
|
383
|
+
- Uses parameters k1 (term frequency saturation) and b (document length normalization)
|
|
384
|
+
- Handles edge cases like empty documents and rare terms
|
|
385
|
+
- Provides better results for longer documents
|
|
386
|
+
|
|
387
|
+
## Hybrid Ranking
|
|
388
|
+
|
|
389
|
+
The hybrid approach combines multiple ranking signals for better results:
|
|
390
|
+
|
|
391
|
+
1. Combines scores from both TF-IDF and BM25
|
|
392
|
+
2. Considers document length and term positions
|
|
393
|
+
3. Applies normalization to ensure fair comparison
|
|
394
|
+
|
|
395
|
+
The default reranker is "hybrid" which provides the best overall results for code search.
|
|
396
|
+
|
|
397
|
+
The ranking implementation can be found in `src/search/result_ranking.rs`.
|
|
398
|
+
─────────────────────────────────────────────────────────────────────
|
|
399
|
+
Token Usage: Request: 1245 Response: 1532 (Current message only: ~1532)
|
|
400
|
+
Total: 2777 tokens (Cumulative for entire session)
|
|
401
|
+
─────────────────────────────────────────────────────────────────────
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
## CLI Commands
|
|
405
|
+
|
|
406
|
+
While in the chat interface, you can use these commands:
|
|
407
|
+
|
|
408
|
+
- `help`: Display help information
|
|
409
|
+
- `quit` or `exit`: Exit the assistant
|
|
410
|
+
- `usage`: Display token usage statistics
|
|
411
|
+
- `clear`: Clear the chat history and start a new session
|
|
412
|
+
|
|
413
|
+
## Tips for Effective Use
|
|
414
|
+
|
|
415
|
+
1. **Be Specific**: Ask specific questions about your codebase for more targeted answers
|
|
416
|
+
2. **Start with Overview Questions**: Begin with high-level questions to understand the structure before diving into details
|
|
417
|
+
3. **Follow Up**: Use follow-up questions to explore topics in more depth
|
|
418
|
+
4. **Reference Files**: Mention specific files or directories if you want to focus on a particular area
|
|
419
|
+
5. **Ask for Explanations**: The AI is particularly good at explaining complex code or concepts
|
|
420
|
+
6. **Request Examples**: Ask for examples if you're trying to understand how to use a particular feature or API
|
|
421
|
+
|
|
422
|
+
## Limitations
|
|
423
|
+
|
|
424
|
+
- The AI's knowledge is based on the code it can find in your repository
|
|
425
|
+
- Very large codebases may need multiple targeted questions rather than broad ones
|
|
426
|
+
- The AI may occasionally make mistakes in its understanding or explanations
|
|
427
|
+
- Token limits may restrict the amount of code that can be analyzed at once
|