@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,502 @@
|
|
|
1
|
+
# OpenAI Codex CLI Integration Guide
|
|
2
|
+
|
|
3
|
+
Complete guide for using ProbeAgent with OpenAI's Codex CLI command for zero-configuration AI-powered code assistance.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
- [Overview](#overview)
|
|
7
|
+
- [Quick Start](#quick-start)
|
|
8
|
+
- [How It Works](#how-it-works)
|
|
9
|
+
- [Auto-Fallback Feature](#auto-fallback-feature)
|
|
10
|
+
- [Tool Event Extraction](#tool-event-extraction)
|
|
11
|
+
- [Configuration](#configuration)
|
|
12
|
+
- [Examples](#examples)
|
|
13
|
+
- [Testing](#testing)
|
|
14
|
+
- [Troubleshooting](#troubleshooting)
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
ProbeAgent now supports OpenAI's Codex CLI `codex` command as a provider, enabling:
|
|
19
|
+
- **Zero-configuration usage** in Codex environments
|
|
20
|
+
- **Automatic fallback** when no API keys are present
|
|
21
|
+
- **Black-box operation** - Codex CLI handles its own agentic loop
|
|
22
|
+
- **Tool event extraction** - Visibility into internal tool usage
|
|
23
|
+
- **Full MCP integration** - Access to Probe's semantic search tools
|
|
24
|
+
|
|
25
|
+
## Quick Start
|
|
26
|
+
|
|
27
|
+
### Automatic (Zero Config)
|
|
28
|
+
|
|
29
|
+
```javascript
|
|
30
|
+
import { ProbeAgent } from 'probe-agent';
|
|
31
|
+
|
|
32
|
+
// Works automatically if codex command is installed!
|
|
33
|
+
const agent = new ProbeAgent({
|
|
34
|
+
allowedFolders: ['/path/to/your/code']
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
await agent.initialize();
|
|
38
|
+
const response = await agent.answer('Explain how this codebase works');
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Explicit Provider
|
|
42
|
+
|
|
43
|
+
```javascript
|
|
44
|
+
const agent = new ProbeAgent({
|
|
45
|
+
provider: 'codex', // Explicit
|
|
46
|
+
allowedFolders: ['/path/to/your/code']
|
|
47
|
+
});
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Environment Variable
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
USE_CODEX=true node your-script.js
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## How It Works
|
|
57
|
+
|
|
58
|
+
### Architecture
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
ProbeAgent
|
|
62
|
+
↓
|
|
63
|
+
provider: 'codex'
|
|
64
|
+
↓
|
|
65
|
+
Enhanced Codex Engine
|
|
66
|
+
↓
|
|
67
|
+
Spawns: codex --output-format json --mcp-config ...
|
|
68
|
+
↓
|
|
69
|
+
Codex CLI (black box)
|
|
70
|
+
- Handles its own agentic loop
|
|
71
|
+
- Uses MCP tools (mcp__probe__*)
|
|
72
|
+
- Returns final response
|
|
73
|
+
↓
|
|
74
|
+
Tool Event Extraction
|
|
75
|
+
↓
|
|
76
|
+
Response + Tool Events
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Black Box Mode
|
|
80
|
+
|
|
81
|
+
Unlike the native engine which controls tool iteration:
|
|
82
|
+
- **Codex CLI manages its own loop** - ProbeAgent doesn't see intermediate steps
|
|
83
|
+
- **No XML formatting** - Uses native MCP protocol
|
|
84
|
+
- **Tool events extracted post-hoc** - Emitted as batch after response
|
|
85
|
+
- **Bypass tool loop** - ProbeAgent's iteration logic is skipped
|
|
86
|
+
|
|
87
|
+
### Key Components
|
|
88
|
+
|
|
89
|
+
1. **Enhanced Codex Engine** (`src/agent/engines/enhanced-codex.js`)
|
|
90
|
+
- Spawns `codex` command with MCP configuration
|
|
91
|
+
- Manages session persistence
|
|
92
|
+
- Extracts tool events from response stream
|
|
93
|
+
|
|
94
|
+
2. **Built-in MCP Server** (`src/agent/mcp/built-in-server.js`)
|
|
95
|
+
- Provides Probe tools via MCP protocol
|
|
96
|
+
- Tools: search, extract, query, list_files, search_files
|
|
97
|
+
- Automatically configured and started
|
|
98
|
+
|
|
99
|
+
3. **Auto-Detection Logic** (`src/agent/ProbeAgent.js`)
|
|
100
|
+
- Checks for `codex` command availability
|
|
101
|
+
- Falls back when no API keys present
|
|
102
|
+
|
|
103
|
+
## Auto-Fallback Feature
|
|
104
|
+
|
|
105
|
+
### Fallback Priority
|
|
106
|
+
|
|
107
|
+
When ProbeAgent is initialized without API keys:
|
|
108
|
+
|
|
109
|
+
1. **Check for `claude` command** → Use `claude-code` provider
|
|
110
|
+
2. **Check for `codex` command** → Use `codex` provider
|
|
111
|
+
3. **No CLI commands found** → Error with installation instructions
|
|
112
|
+
|
|
113
|
+
### How Auto-Fallback Works
|
|
114
|
+
|
|
115
|
+
```javascript
|
|
116
|
+
// In ProbeAgent.initialize()
|
|
117
|
+
async initialize() {
|
|
118
|
+
// No API keys configured
|
|
119
|
+
if (this.apiType === 'uninitialized') {
|
|
120
|
+
const claudeAvailable = await this.isClaudeCommandAvailable();
|
|
121
|
+
const codexAvailable = await this.isCodexCommandAvailable();
|
|
122
|
+
|
|
123
|
+
if (claudeAvailable) {
|
|
124
|
+
// Use claude-code (priority 1)
|
|
125
|
+
this.clientApiProvider = 'claude-code';
|
|
126
|
+
} else if (codexAvailable) {
|
|
127
|
+
// Use codex (priority 2)
|
|
128
|
+
this.clientApiProvider = 'codex';
|
|
129
|
+
} else {
|
|
130
|
+
// Error - neither available
|
|
131
|
+
throw new Error('...');
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Force Codex CLI
|
|
138
|
+
|
|
139
|
+
Even if Claude Code is available, you can force Codex CLI:
|
|
140
|
+
|
|
141
|
+
```javascript
|
|
142
|
+
const agent = new ProbeAgent({
|
|
143
|
+
provider: 'codex', // Force Codex even if claude available
|
|
144
|
+
allowedFolders: [process.cwd()]
|
|
145
|
+
});
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Or via environment:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
USE_CODEX=true node script.js
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Tool Event Extraction
|
|
155
|
+
|
|
156
|
+
### Why Extract Tool Events?
|
|
157
|
+
|
|
158
|
+
Codex CLI operates as a black box - ProbeAgent doesn't control tool execution. But users still want visibility into:
|
|
159
|
+
- Which tools were used
|
|
160
|
+
- What arguments were passed
|
|
161
|
+
- When tools were called
|
|
162
|
+
|
|
163
|
+
### How Extraction Works
|
|
164
|
+
|
|
165
|
+
The engine parses JSON output from Codex CLI:
|
|
166
|
+
|
|
167
|
+
```javascript
|
|
168
|
+
// Codex CLI emits JSON like:
|
|
169
|
+
{
|
|
170
|
+
"type": "assistant",
|
|
171
|
+
"message": {
|
|
172
|
+
"content": [
|
|
173
|
+
{ "type": "text", "text": "..." },
|
|
174
|
+
{
|
|
175
|
+
"type": "tool_use",
|
|
176
|
+
"id": "toolu_123",
|
|
177
|
+
"name": "mcp__probe__search",
|
|
178
|
+
"input": { "query": "ProbeAgent" }
|
|
179
|
+
}
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Events are collected and emitted as a batch:
|
|
186
|
+
|
|
187
|
+
```javascript
|
|
188
|
+
agent.events.on('toolCall', (event) => {
|
|
189
|
+
console.log(`Tool: ${event.name}`);
|
|
190
|
+
console.log(`Status: ${event.status}`); // 'started' or 'completed'
|
|
191
|
+
console.log(`Args:`, event.args);
|
|
192
|
+
console.log(`Timestamp:`, event.timestamp);
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
agent.events.on('toolBatch', (batch) => {
|
|
196
|
+
console.log(`Total tools used: ${batch.tools.length}`);
|
|
197
|
+
console.log(`Batch timestamp: ${batch.timestamp}`);
|
|
198
|
+
});
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Configuration
|
|
202
|
+
|
|
203
|
+
### Model Selection
|
|
204
|
+
|
|
205
|
+
Default model is `gpt-4o`. Override with:
|
|
206
|
+
|
|
207
|
+
```javascript
|
|
208
|
+
const agent = new ProbeAgent({
|
|
209
|
+
provider: 'codex',
|
|
210
|
+
model: 'gpt-4o-mini', // Use faster model
|
|
211
|
+
allowedFolders: [process.cwd()]
|
|
212
|
+
});
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Or via environment:
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
MODEL_NAME=gpt-4o-mini USE_CODEX=true node script.js
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### Tool Filtering
|
|
222
|
+
|
|
223
|
+
Restrict which tools Codex CLI can access:
|
|
224
|
+
|
|
225
|
+
```javascript
|
|
226
|
+
const agent = new ProbeAgent({
|
|
227
|
+
provider: 'codex',
|
|
228
|
+
allowedTools: ['search', 'extract'], // Only these tools
|
|
229
|
+
allowedFolders: [process.cwd()]
|
|
230
|
+
});
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Tools are automatically prefixed for MCP: `search` → `mcp__probe__search`
|
|
234
|
+
|
|
235
|
+
### Session Persistence
|
|
236
|
+
|
|
237
|
+
Sessions are automatically managed:
|
|
238
|
+
|
|
239
|
+
```javascript
|
|
240
|
+
const agent1 = new ProbeAgent({
|
|
241
|
+
provider: 'codex',
|
|
242
|
+
sessionId: 'my-session',
|
|
243
|
+
allowedFolders: [process.cwd()]
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
await agent1.answer('What is ProbeAgent?');
|
|
247
|
+
|
|
248
|
+
// Later - resume same conversation
|
|
249
|
+
const agent2 = new ProbeAgent({
|
|
250
|
+
provider: 'codex',
|
|
251
|
+
sessionId: 'my-session', // Same session ID
|
|
252
|
+
allowedFolders: [process.cwd()]
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
await agent2.answer('Tell me more'); // Continues context
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Debug Mode
|
|
259
|
+
|
|
260
|
+
Enable verbose logging:
|
|
261
|
+
|
|
262
|
+
```javascript
|
|
263
|
+
const agent = new ProbeAgent({
|
|
264
|
+
provider: 'codex',
|
|
265
|
+
debug: true,
|
|
266
|
+
allowedFolders: [process.cwd()]
|
|
267
|
+
});
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
Shows:
|
|
271
|
+
- Codex command execution
|
|
272
|
+
- Tool events as they're extracted
|
|
273
|
+
- Session management details
|
|
274
|
+
- MCP server lifecycle
|
|
275
|
+
|
|
276
|
+
## Examples
|
|
277
|
+
|
|
278
|
+
### Example 1: Zero-Config Code Exploration
|
|
279
|
+
|
|
280
|
+
```javascript
|
|
281
|
+
import { ProbeAgent } from 'probe-agent';
|
|
282
|
+
|
|
283
|
+
// Auto-detects codex command
|
|
284
|
+
const agent = new ProbeAgent({
|
|
285
|
+
allowedFolders: ['/path/to/repo']
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
await agent.initialize();
|
|
289
|
+
|
|
290
|
+
// Codex will automatically use search/extract tools
|
|
291
|
+
const answer = await agent.answer('How does authentication work in this app?');
|
|
292
|
+
console.log(answer);
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### Example 2: Monitor Tool Usage
|
|
296
|
+
|
|
297
|
+
```javascript
|
|
298
|
+
const agent = new ProbeAgent({
|
|
299
|
+
provider: 'codex',
|
|
300
|
+
allowedFolders: [process.cwd()],
|
|
301
|
+
debug: true
|
|
302
|
+
});
|
|
303
|
+
|
|
304
|
+
await agent.initialize();
|
|
305
|
+
|
|
306
|
+
// Track all tools used
|
|
307
|
+
const toolsUsed = [];
|
|
308
|
+
agent.events.on('toolCall', (event) => {
|
|
309
|
+
toolsUsed.push(event.name);
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
await agent.answer('Find all API endpoints in this codebase');
|
|
313
|
+
|
|
314
|
+
console.log('Tools used:', [...new Set(toolsUsed)]);
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
### Example 3: Custom Persona with Codex
|
|
318
|
+
|
|
319
|
+
```javascript
|
|
320
|
+
const agent = new ProbeAgent({
|
|
321
|
+
provider: 'codex',
|
|
322
|
+
predefinedPrompt: 'architect', // Use architect persona
|
|
323
|
+
allowedFolders: [process.cwd()]
|
|
324
|
+
});
|
|
325
|
+
|
|
326
|
+
await agent.initialize();
|
|
327
|
+
|
|
328
|
+
const analysis = await agent.answer('Analyze the architecture of this system');
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
### Example 4: Multi-Step Query with Session
|
|
332
|
+
|
|
333
|
+
```javascript
|
|
334
|
+
const sessionId = `codex-${Date.now()}`;
|
|
335
|
+
|
|
336
|
+
const agent = new ProbeAgent({
|
|
337
|
+
provider: 'codex',
|
|
338
|
+
sessionId,
|
|
339
|
+
allowedFolders: [process.cwd()]
|
|
340
|
+
});
|
|
341
|
+
|
|
342
|
+
await agent.initialize();
|
|
343
|
+
|
|
344
|
+
// Step 1
|
|
345
|
+
await agent.answer('What components does this app have?');
|
|
346
|
+
|
|
347
|
+
// Step 2 - builds on previous context
|
|
348
|
+
await agent.answer('Which component handles user authentication?');
|
|
349
|
+
|
|
350
|
+
// Step 3 - continues same conversation
|
|
351
|
+
await agent.answer('Show me the authentication implementation');
|
|
352
|
+
|
|
353
|
+
// Clean up
|
|
354
|
+
if (agent.engine?.close) {
|
|
355
|
+
await agent.engine.close();
|
|
356
|
+
}
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
## Testing
|
|
360
|
+
|
|
361
|
+
### Run Integration Tests
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
# Auto-fallback test
|
|
365
|
+
node npm/tests/integration/codex-auto-fallback.spec.js
|
|
366
|
+
|
|
367
|
+
# Tool event extraction test
|
|
368
|
+
node npm/tests/integration/codex-tool-events.spec.js
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
### Test Requirements
|
|
372
|
+
|
|
373
|
+
- Codex CLI must be installed and in PATH
|
|
374
|
+
- Tests temporarily remove API keys to trigger auto-fallback
|
|
375
|
+
- Tests verify tool event extraction works correctly
|
|
376
|
+
|
|
377
|
+
### What Tests Verify
|
|
378
|
+
|
|
379
|
+
1. **Auto-Fallback Test**
|
|
380
|
+
- Codex CLI is detected when no API keys present
|
|
381
|
+
- Provider switches to `codex`
|
|
382
|
+
- Basic queries work end-to-end
|
|
383
|
+
|
|
384
|
+
2. **Tool Events Test**
|
|
385
|
+
- Tool usage is captured from Codex output
|
|
386
|
+
- Events have correct format: `{ name, args, status, timestamp, id }`
|
|
387
|
+
- Batch emission works correctly
|
|
388
|
+
|
|
389
|
+
## Troubleshooting
|
|
390
|
+
|
|
391
|
+
### Codex Command Not Found
|
|
392
|
+
|
|
393
|
+
**Error:**
|
|
394
|
+
```
|
|
395
|
+
No API key provided and neither claude nor codex command found
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
**Solution:**
|
|
399
|
+
1. Install OpenAI Codex CLI from https://openai.com/codex
|
|
400
|
+
2. Verify installation: `codex --version`
|
|
401
|
+
3. Ensure `codex` is in your PATH
|
|
402
|
+
|
|
403
|
+
### Wrong Provider Selected
|
|
404
|
+
|
|
405
|
+
**Issue:** Claude Code is used instead of Codex CLI
|
|
406
|
+
|
|
407
|
+
**Reason:** Claude has higher priority in auto-fallback
|
|
408
|
+
|
|
409
|
+
**Solution:** Force Codex explicitly:
|
|
410
|
+
```javascript
|
|
411
|
+
const agent = new ProbeAgent({
|
|
412
|
+
provider: 'codex', // Force Codex
|
|
413
|
+
allowedFolders: [process.cwd()]
|
|
414
|
+
});
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
### MCP Server Fails to Start
|
|
418
|
+
|
|
419
|
+
**Error:**
|
|
420
|
+
```
|
|
421
|
+
Failed to start built-in MCP server
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
**Solutions:**
|
|
425
|
+
1. Check port availability (uses ephemeral ports)
|
|
426
|
+
2. Verify Node.js version (requires Node 18+)
|
|
427
|
+
3. Enable debug mode to see detailed error:
|
|
428
|
+
```javascript
|
|
429
|
+
const agent = new ProbeAgent({
|
|
430
|
+
provider: 'codex',
|
|
431
|
+
debug: true,
|
|
432
|
+
allowedFolders: [process.cwd()]
|
|
433
|
+
});
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
### Tool Events Not Emitted
|
|
437
|
+
|
|
438
|
+
**Issue:** `toolCall` events not firing
|
|
439
|
+
|
|
440
|
+
**Possible causes:**
|
|
441
|
+
1. Query didn't require tools
|
|
442
|
+
2. Codex CLI used internal reasoning only
|
|
443
|
+
3. Tool filtering blocked all tools
|
|
444
|
+
|
|
445
|
+
**Debug:**
|
|
446
|
+
```javascript
|
|
447
|
+
agent.events.on('toolBatch', (batch) => {
|
|
448
|
+
console.log('Tools in batch:', batch.tools.length);
|
|
449
|
+
console.log('Tools:', batch.tools.map(t => t.name));
|
|
450
|
+
});
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
### Session Resume Not Working
|
|
454
|
+
|
|
455
|
+
**Issue:** Context lost between queries
|
|
456
|
+
|
|
457
|
+
**Solutions:**
|
|
458
|
+
1. Use same `sessionId` for both agent instances
|
|
459
|
+
2. Don't close engine between queries:
|
|
460
|
+
```javascript
|
|
461
|
+
await agent.answer('First query');
|
|
462
|
+
await agent.answer('Second query'); // Same session
|
|
463
|
+
// Only close at the very end
|
|
464
|
+
await agent.engine.close();
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
### Performance Issues
|
|
468
|
+
|
|
469
|
+
**Issue:** Codex CLI is slow
|
|
470
|
+
|
|
471
|
+
**Solutions:**
|
|
472
|
+
1. Use faster model: `model: 'gpt-4o-mini'`
|
|
473
|
+
2. Limit tool access: `allowedTools: ['search']`
|
|
474
|
+
3. Reduce workspace size: `allowedFolders: ['/specific/path']`
|
|
475
|
+
|
|
476
|
+
## Comparison: Codex CLI vs Other Providers
|
|
477
|
+
|
|
478
|
+
| Feature | Codex CLI | Claude Code | Vercel AI SDK |
|
|
479
|
+
|---------|-----------|-------------|---------------|
|
|
480
|
+
| **API Key Required** | No | No | Yes |
|
|
481
|
+
| **Zero-Config** | ✅ | ✅ | ❌ |
|
|
482
|
+
| **Auto-Fallback** | ✅ (priority 2) | ✅ (priority 1) | ❌ |
|
|
483
|
+
| **Tool Control** | Black box | Black box | Full control |
|
|
484
|
+
| **Tool Events** | Post-hoc extraction | Post-hoc extraction | Real-time |
|
|
485
|
+
| **Session Persistence** | ✅ | ✅ | Manual |
|
|
486
|
+
| **MCP Integration** | Native | Native | XML parsing |
|
|
487
|
+
| **Best For** | OpenAI users | Claude users | Full control |
|
|
488
|
+
|
|
489
|
+
## Related Documentation
|
|
490
|
+
|
|
491
|
+
- [Claude Code Integration](./CLAUDE_CODE_INTEGRATION.md) - Similar guide for Claude
|
|
492
|
+
- [ProbeAgent API](../README.md) - Main ProbeAgent documentation
|
|
493
|
+
- [MCP Tools](./MCP_TOOLS.md) - Available MCP tools reference
|
|
494
|
+
- [Multi-Engine Demo](../examples/multi-engine-demo.js) - Example switching engines
|
|
495
|
+
|
|
496
|
+
## Contributing
|
|
497
|
+
|
|
498
|
+
Found a bug or have a feature request for Codex CLI integration?
|
|
499
|
+
|
|
500
|
+
1. Check existing issues: https://github.com/probelabs/probe/issues
|
|
501
|
+
2. Create new issue with `[codex]` prefix
|
|
502
|
+
3. Include debug logs: Set `debug: true` in ProbeAgent options
|