@opensearch-project/agent-health 0.3.0 → 0.5.2
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 +77 -6
- package/cli/dist/index.js +10072 -4502
- package/deployment/cloudformation/agent-health-observability.yaml +762 -0
- package/dist/assets/index-CCQRDlO0.js +243 -0
- package/dist/assets/index-CNHQVbcj.css +1 -0
- package/dist/index.html +2 -2
- package/docs/ARCHITECTURE.md +450 -0
- package/docs/BACKEND_JOB_QUEUE.md +405 -0
- package/docs/CLAUDE_CODE_TELEMETRY.md +283 -0
- package/docs/CLI.md +431 -0
- package/docs/CODING_AGENT_ANALYTICS.md +298 -0
- package/docs/CONFIGURATION.md +388 -0
- package/docs/CONNECTORS.md +536 -0
- package/docs/INSTRUMENT_WITH_OTEL.md +390 -0
- package/docs/ML-COMMONS-SETUP.md +289 -0
- package/docs/NPX_PACKAGING.md +195 -0
- package/docs/PERFORMANCE-MONITORING.md +200 -0
- package/docs/PERFORMANCE.md +390 -0
- package/docs/PI_PROFILING.md +169 -0
- package/docs/PLAN-non-agui-agent-support.md +525 -0
- package/docs/SDK.md +577 -0
- package/docs/SKILLS.md +264 -0
- package/docs/blogs/2026-02-28-opensearch-agent-health.md +200 -0
- package/docs/blogs/getting-started-blog.md +608 -0
- package/docs/diagrams/Agent-health.excalidraw +5656 -0
- package/docs/diagrams/architecture.png +0 -0
- package/docs/plans/field-redesign.md +468 -0
- package/docs/rfcs/001-coding-agent-analytics.md +374 -0
- package/docs/rfcs/002-enterprise-leaderboard.md +267 -0
- package/docs/rfcs/003-remote-aggregation.md +146 -0
- package/docs/rfcs/004-test-sdk-v2.md +599 -0
- package/docs/skills/AGENT_HEALTH.md +598 -0
- package/docs/skills/AGENT_PROFILE.md +191 -0
- package/docs/skills/add-connector/SKILL.md +68 -0
- package/docs/skills/agent-health-profile/SKILL.md +40 -0
- package/docs/skills/config-auth/SKILL.md +194 -0
- package/docs/skills/config-auth/evals/evals.json +35 -0
- package/docs/skills/create-pr/SKILL.md +73 -0
- package/docs/skills/instrument-otel/SKILL.md +84 -0
- package/docs/skills/write-test/SKILL.md +124 -0
- package/docs/ui prd.md +376 -0
- package/examples/README.md +53 -0
- package/examples/config/agent-health.config.example.ts +155 -0
- package/examples/connectors/echo-connector.ts +131 -0
- package/examples/eval-files/demo.eval.js +128 -0
- package/examples/eval-files/sdk-hooks-demo.eval.js +99 -0
- package/examples/pi-profiling/README.md +77 -0
- package/examples/pi-profiling/agent-health-profile.ts +417 -0
- package/lib/dist/lib/agentUtils.d.ts +29 -0
- package/lib/dist/lib/agentUtils.d.ts.map +1 -0
- package/lib/dist/lib/agentUtils.js +43 -0
- package/lib/dist/lib/agentUtils.js.map +1 -0
- package/lib/dist/lib/benchmarkExport.d.ts +14 -0
- package/lib/dist/lib/benchmarkExport.d.ts.map +1 -0
- package/lib/dist/lib/benchmarkExport.js +41 -0
- package/lib/dist/lib/benchmarkExport.js.map +1 -0
- package/lib/dist/lib/benchmarkVersionUtils.d.ts +37 -0
- package/lib/dist/lib/benchmarkVersionUtils.d.ts.map +1 -0
- package/lib/dist/lib/benchmarkVersionUtils.js +68 -0
- package/lib/dist/lib/benchmarkVersionUtils.js.map +1 -0
- package/lib/dist/lib/config/defineConfig.d.ts +27 -0
- package/lib/dist/lib/config/defineConfig.d.ts.map +1 -0
- package/lib/dist/lib/config/defineConfig.js +28 -0
- package/lib/dist/lib/config/defineConfig.js.map +1 -0
- package/lib/dist/lib/config/index.d.ts +9 -0
- package/lib/dist/lib/config/index.d.ts.map +1 -0
- package/lib/dist/lib/config/index.js +8 -0
- package/lib/dist/lib/config/index.js.map +1 -0
- package/lib/dist/lib/config/loader.d.ts +39 -0
- package/lib/dist/lib/config/loader.d.ts.map +1 -0
- package/lib/dist/lib/config/loader.js +258 -0
- package/lib/dist/lib/config/loader.js.map +1 -0
- package/lib/dist/lib/config/statePaths.d.ts +61 -0
- package/lib/dist/lib/config/statePaths.d.ts.map +1 -0
- package/lib/dist/lib/config/statePaths.js +188 -0
- package/lib/dist/lib/config/statePaths.js.map +1 -0
- package/lib/dist/lib/config/types.d.ts +231 -0
- package/lib/dist/lib/config/types.d.ts.map +1 -0
- package/lib/dist/lib/config/types.js +6 -0
- package/lib/dist/lib/config/types.js.map +1 -0
- package/lib/dist/lib/config.d.ts +39 -0
- package/lib/dist/lib/config.d.ts.map +1 -0
- package/lib/dist/lib/config.js +118 -0
- package/lib/dist/lib/config.js.map +1 -0
- package/lib/dist/lib/constants.d.ts +70 -0
- package/lib/dist/lib/constants.d.ts.map +1 -0
- package/lib/dist/lib/constants.js +365 -0
- package/lib/dist/lib/constants.js.map +1 -0
- package/lib/dist/lib/contextUtilization.d.ts +23 -0
- package/lib/dist/lib/contextUtilization.d.ts.map +1 -0
- package/lib/dist/lib/contextUtilization.js +72 -0
- package/lib/dist/lib/contextUtilization.js.map +1 -0
- package/lib/dist/lib/dashboardMetrics.d.ts +87 -0
- package/lib/dist/lib/dashboardMetrics.d.ts.map +1 -0
- package/lib/dist/lib/dashboardMetrics.js +242 -0
- package/lib/dist/lib/dashboardMetrics.js.map +1 -0
- package/lib/dist/lib/dataSourceConfig.d.ts +108 -0
- package/lib/dist/lib/dataSourceConfig.d.ts.map +1 -0
- package/lib/dist/lib/dataSourceConfig.js +166 -0
- package/lib/dist/lib/dataSourceConfig.js.map +1 -0
- package/lib/dist/lib/debug.d.ts +26 -0
- package/lib/dist/lib/debug.d.ts.map +1 -0
- package/lib/dist/lib/debug.js +132 -0
- package/lib/dist/lib/debug.js.map +1 -0
- package/lib/dist/lib/diagnostics.d.ts +28 -0
- package/lib/dist/lib/diagnostics.d.ts.map +1 -0
- package/lib/dist/lib/diagnostics.js +65 -0
- package/lib/dist/lib/diagnostics.js.map +1 -0
- package/lib/dist/lib/envCompat.d.ts +27 -0
- package/lib/dist/lib/envCompat.d.ts.map +1 -0
- package/lib/dist/lib/envCompat.js +73 -0
- package/lib/dist/lib/envCompat.js.map +1 -0
- package/lib/dist/lib/findPackageRoot.d.ts +7 -0
- package/lib/dist/lib/findPackageRoot.d.ts.map +1 -0
- package/lib/dist/lib/findPackageRoot.js +57 -0
- package/lib/dist/lib/findPackageRoot.js.map +1 -0
- package/lib/dist/lib/hooks.d.ts +36 -0
- package/lib/dist/lib/hooks.d.ts.map +1 -0
- package/lib/dist/lib/hooks.js +112 -0
- package/lib/dist/lib/hooks.js.map +1 -0
- package/lib/dist/lib/index.d.ts +47 -0
- package/lib/dist/lib/index.d.ts.map +1 -0
- package/lib/dist/lib/index.js +62 -0
- package/lib/dist/lib/index.js.map +1 -0
- package/lib/dist/lib/labels.d.ts +90 -0
- package/lib/dist/lib/labels.d.ts.map +1 -0
- package/lib/dist/lib/labels.js +158 -0
- package/lib/dist/lib/labels.js.map +1 -0
- package/lib/dist/lib/markdown.d.ts +16 -0
- package/lib/dist/lib/markdown.d.ts.map +1 -0
- package/lib/dist/lib/markdown.js +42 -0
- package/lib/dist/lib/markdown.js.map +1 -0
- package/lib/dist/lib/matchers/expect.d.ts +3 -0
- package/lib/dist/lib/matchers/expect.d.ts.map +1 -0
- package/lib/dist/lib/matchers/expect.js +225 -0
- package/lib/dist/lib/matchers/expect.js.map +1 -0
- package/lib/dist/lib/matchers/index.d.ts +8 -0
- package/lib/dist/lib/matchers/index.d.ts.map +1 -0
- package/lib/dist/lib/matchers/index.js +9 -0
- package/lib/dist/lib/matchers/index.js.map +1 -0
- package/lib/dist/lib/matchers/judgeAccessor.d.ts +113 -0
- package/lib/dist/lib/matchers/judgeAccessor.d.ts.map +1 -0
- package/lib/dist/lib/matchers/judgeAccessor.js +183 -0
- package/lib/dist/lib/matchers/judgeAccessor.js.map +1 -0
- package/lib/dist/lib/matchers/session.d.ts +39 -0
- package/lib/dist/lib/matchers/session.d.ts.map +1 -0
- package/lib/dist/lib/matchers/session.js +116 -0
- package/lib/dist/lib/matchers/session.js.map +1 -0
- package/lib/dist/lib/matchers/traces.d.ts +55 -0
- package/lib/dist/lib/matchers/traces.d.ts.map +1 -0
- package/lib/dist/lib/matchers/traces.js +116 -0
- package/lib/dist/lib/matchers/traces.js.map +1 -0
- package/lib/dist/lib/matchers/types.d.ts +75 -0
- package/lib/dist/lib/matchers/types.d.ts.map +1 -0
- package/lib/dist/lib/matchers/types.js +6 -0
- package/lib/dist/lib/matchers/types.js.map +1 -0
- package/lib/dist/lib/packagePaths.d.ts +29 -0
- package/lib/dist/lib/packagePaths.d.ts.map +1 -0
- package/lib/dist/lib/packagePaths.js +63 -0
- package/lib/dist/lib/packagePaths.js.map +1 -0
- package/lib/dist/lib/performance.d.ts +51 -0
- package/lib/dist/lib/performance.d.ts.map +1 -0
- package/lib/dist/lib/performance.js +159 -0
- package/lib/dist/lib/performance.js.map +1 -0
- package/lib/dist/lib/portConfig.d.ts +29 -0
- package/lib/dist/lib/portConfig.d.ts.map +1 -0
- package/lib/dist/lib/portConfig.js +64 -0
- package/lib/dist/lib/portConfig.js.map +1 -0
- package/lib/dist/lib/preferences.d.ts +63 -0
- package/lib/dist/lib/preferences.d.ts.map +1 -0
- package/lib/dist/lib/preferences.js +117 -0
- package/lib/dist/lib/preferences.js.map +1 -0
- package/lib/dist/lib/resolveAgentModel.d.ts +22 -0
- package/lib/dist/lib/resolveAgentModel.d.ts.map +1 -0
- package/lib/dist/lib/resolveAgentModel.js +37 -0
- package/lib/dist/lib/resolveAgentModel.js.map +1 -0
- package/lib/dist/lib/runStats.d.ts +92 -0
- package/lib/dist/lib/runStats.d.ts.map +1 -0
- package/lib/dist/lib/runStats.js +160 -0
- package/lib/dist/lib/runStats.js.map +1 -0
- package/lib/dist/lib/telemetry/constants.d.ts +60 -0
- package/lib/dist/lib/telemetry/constants.d.ts.map +1 -0
- package/lib/dist/lib/telemetry/constants.js +87 -0
- package/lib/dist/lib/telemetry/constants.js.map +1 -0
- package/lib/dist/lib/telemetry/evalSpans.d.ts +61 -0
- package/lib/dist/lib/telemetry/evalSpans.d.ts.map +1 -0
- package/lib/dist/lib/telemetry/evalSpans.js +254 -0
- package/lib/dist/lib/telemetry/evalSpans.js.map +1 -0
- package/lib/dist/lib/telemetry/index.d.ts +11 -0
- package/lib/dist/lib/telemetry/index.d.ts.map +1 -0
- package/lib/dist/lib/telemetry/index.js +15 -0
- package/lib/dist/lib/telemetry/index.js.map +1 -0
- package/lib/dist/lib/telemetry/opensearchExporter.d.ts +43 -0
- package/lib/dist/lib/telemetry/opensearchExporter.d.ts.map +1 -0
- package/lib/dist/lib/telemetry/opensearchExporter.js +217 -0
- package/lib/dist/lib/telemetry/opensearchExporter.js.map +1 -0
- package/lib/dist/lib/telemetry/provider.d.ts +55 -0
- package/lib/dist/lib/telemetry/provider.d.ts.map +1 -0
- package/lib/dist/lib/telemetry/provider.js +140 -0
- package/lib/dist/lib/telemetry/provider.js.map +1 -0
- package/lib/dist/lib/testCaseLabels.d.ts +34 -0
- package/lib/dist/lib/testCaseLabels.d.ts.map +1 -0
- package/lib/dist/lib/testCaseLabels.js +88 -0
- package/lib/dist/lib/testCaseLabels.js.map +1 -0
- package/lib/dist/lib/testCaseValidation.d.ts +140 -0
- package/lib/dist/lib/testCaseValidation.d.ts.map +1 -0
- package/lib/dist/lib/testCaseValidation.js +162 -0
- package/lib/dist/lib/testCaseValidation.js.map +1 -0
- package/lib/dist/lib/testCases/agentFixture.d.ts +80 -0
- package/lib/dist/lib/testCases/agentFixture.d.ts.map +1 -0
- package/lib/dist/lib/testCases/agentFixture.js +43 -0
- package/lib/dist/lib/testCases/agentFixture.js.map +1 -0
- package/lib/dist/lib/testCases/authoringSurface.d.ts +10 -0
- package/lib/dist/lib/testCases/authoringSurface.d.ts.map +1 -0
- package/lib/dist/lib/testCases/authoringSurface.js +54 -0
- package/lib/dist/lib/testCases/authoringSurface.js.map +1 -0
- package/lib/dist/lib/testCases/codemod.d.ts +13 -0
- package/lib/dist/lib/testCases/codemod.d.ts.map +1 -0
- package/lib/dist/lib/testCases/codemod.js +169 -0
- package/lib/dist/lib/testCases/codemod.js.map +1 -0
- package/lib/dist/lib/testCases/define.d.ts +114 -0
- package/lib/dist/lib/testCases/define.d.ts.map +1 -0
- package/lib/dist/lib/testCases/define.js +253 -0
- package/lib/dist/lib/testCases/define.js.map +1 -0
- package/lib/dist/lib/testCases/evaluators.d.ts +80 -0
- package/lib/dist/lib/testCases/evaluators.d.ts.map +1 -0
- package/lib/dist/lib/testCases/evaluators.js +105 -0
- package/lib/dist/lib/testCases/evaluators.js.map +1 -0
- package/lib/dist/lib/testCases/index.d.ts +14 -0
- package/lib/dist/lib/testCases/index.d.ts.map +1 -0
- package/lib/dist/lib/testCases/index.js +12 -0
- package/lib/dist/lib/testCases/index.js.map +1 -0
- package/lib/dist/lib/testCases/judge.d.ts +165 -0
- package/lib/dist/lib/testCases/judge.d.ts.map +1 -0
- package/lib/dist/lib/testCases/judge.js +359 -0
- package/lib/dist/lib/testCases/judge.js.map +1 -0
- package/lib/dist/lib/testCases/loader.d.ts +26 -0
- package/lib/dist/lib/testCases/loader.d.ts.map +1 -0
- package/lib/dist/lib/testCases/loader.js +149 -0
- package/lib/dist/lib/testCases/loader.js.map +1 -0
- package/lib/dist/lib/testCases/types.d.ts +242 -0
- package/lib/dist/lib/testCases/types.d.ts.map +1 -0
- package/lib/dist/lib/testCases/types.js +6 -0
- package/lib/dist/lib/testCases/types.js.map +1 -0
- package/lib/dist/lib/theme.d.ts +6 -0
- package/lib/dist/lib/theme.d.ts.map +1 -0
- package/lib/dist/lib/theme.js +36 -0
- package/lib/dist/lib/theme.js.map +1 -0
- package/lib/dist/lib/uiTelemetry.d.ts +7 -0
- package/lib/dist/lib/uiTelemetry.d.ts.map +1 -0
- package/lib/dist/lib/uiTelemetry.js +25 -0
- package/lib/dist/lib/uiTelemetry.js.map +1 -0
- package/lib/dist/lib/utils.d.ts +96 -0
- package/lib/dist/lib/utils.d.ts.map +1 -0
- package/lib/dist/lib/utils.js +232 -0
- package/lib/dist/lib/utils.js.map +1 -0
- package/lib/dist/lib/workflow/consolidate.d.ts +12 -0
- package/lib/dist/lib/workflow/consolidate.d.ts.map +1 -0
- package/lib/dist/lib/workflow/consolidate.js +33 -0
- package/lib/dist/lib/workflow/consolidate.js.map +1 -0
- package/lib/dist/lib/workflow/index.d.ts +13 -0
- package/lib/dist/lib/workflow/index.d.ts.map +1 -0
- package/lib/dist/lib/workflow/index.js +12 -0
- package/lib/dist/lib/workflow/index.js.map +1 -0
- package/lib/dist/lib/workflow/ledger.d.ts +30 -0
- package/lib/dist/lib/workflow/ledger.d.ts.map +1 -0
- package/lib/dist/lib/workflow/ledger.js +41 -0
- package/lib/dist/lib/workflow/ledger.js.map +1 -0
- package/lib/dist/lib/workflow/pool.d.ts +13 -0
- package/lib/dist/lib/workflow/pool.d.ts.map +1 -0
- package/lib/dist/lib/workflow/pool.js +44 -0
- package/lib/dist/lib/workflow/pool.js.map +1 -0
- package/lib/dist/lib/workflow/source.d.ts +22 -0
- package/lib/dist/lib/workflow/source.d.ts.map +1 -0
- package/lib/dist/lib/workflow/source.js +29 -0
- package/lib/dist/lib/workflow/source.js.map +1 -0
- package/lib/dist/lib/workflow/stepB.d.ts +71 -0
- package/lib/dist/lib/workflow/stepB.d.ts.map +1 -0
- package/lib/dist/lib/workflow/stepB.js +99 -0
- package/lib/dist/lib/workflow/stepB.js.map +1 -0
- package/lib/dist/lib/workflow/types.d.ts +86 -0
- package/lib/dist/lib/workflow/types.d.ts.map +1 -0
- package/lib/dist/lib/workflow/types.js +6 -0
- package/lib/dist/lib/workflow/types.js.map +1 -0
- package/lib/dist/lib/workflow/workflow.d.ts +119 -0
- package/lib/dist/lib/workflow/workflow.d.ts.map +1 -0
- package/lib/dist/lib/workflow/workflow.js +195 -0
- package/lib/dist/lib/workflow/workflow.js.map +1 -0
- package/lib/dist/services/agent/aguiConverter.d.ts +50 -0
- package/lib/dist/services/agent/aguiConverter.d.ts.map +1 -0
- package/lib/dist/services/agent/aguiConverter.js +449 -0
- package/lib/dist/services/agent/aguiConverter.js.map +1 -0
- package/lib/dist/services/agent/index.d.ts +10 -0
- package/lib/dist/services/agent/index.d.ts.map +1 -0
- package/lib/dist/services/agent/index.js +12 -0
- package/lib/dist/services/agent/index.js.map +1 -0
- package/lib/dist/services/agent/payloadBuilder.d.ts +33 -0
- package/lib/dist/services/agent/payloadBuilder.d.ts.map +1 -0
- package/lib/dist/services/agent/payloadBuilder.js +75 -0
- package/lib/dist/services/agent/payloadBuilder.js.map +1 -0
- package/lib/dist/services/agent/sseStream.d.ts +43 -0
- package/lib/dist/services/agent/sseStream.d.ts.map +1 -0
- package/lib/dist/services/agent/sseStream.js +223 -0
- package/lib/dist/services/agent/sseStream.js.map +1 -0
- package/lib/dist/services/connectors/agui/AGUIStreamingConnector.d.ts +44 -0
- package/lib/dist/services/connectors/agui/AGUIStreamingConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/agui/AGUIStreamingConnector.js +95 -0
- package/lib/dist/services/connectors/agui/AGUIStreamingConnector.js.map +1 -0
- package/lib/dist/services/connectors/base/BaseConnector.d.ts +81 -0
- package/lib/dist/services/connectors/base/BaseConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/base/BaseConnector.js +170 -0
- package/lib/dist/services/connectors/base/BaseConnector.js.map +1 -0
- package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.d.ts +116 -0
- package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.js +403 -0
- package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.js.map +1 -0
- package/lib/dist/services/connectors/index.d.ts +13 -0
- package/lib/dist/services/connectors/index.d.ts.map +1 -0
- package/lib/dist/services/connectors/index.js +32 -0
- package/lib/dist/services/connectors/index.js.map +1 -0
- package/lib/dist/services/connectors/kiro/KiroConnector.d.ts +48 -0
- package/lib/dist/services/connectors/kiro/KiroConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/kiro/KiroConnector.js +158 -0
- package/lib/dist/services/connectors/kiro/KiroConnector.js.map +1 -0
- package/lib/dist/services/connectors/langgraph/LangGraphConnector.d.ts +36 -0
- package/lib/dist/services/connectors/langgraph/LangGraphConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/langgraph/LangGraphConnector.js +175 -0
- package/lib/dist/services/connectors/langgraph/LangGraphConnector.js.map +1 -0
- package/lib/dist/services/connectors/mock/MockConnector.d.ts +37 -0
- package/lib/dist/services/connectors/mock/MockConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/mock/MockConnector.js +120 -0
- package/lib/dist/services/connectors/mock/MockConnector.js.map +1 -0
- package/lib/dist/services/connectors/openai-compatible/OpenAICompatibleConnector.d.ts +42 -0
- package/lib/dist/services/connectors/openai-compatible/OpenAICompatibleConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/openai-compatible/OpenAICompatibleConnector.js +133 -0
- package/lib/dist/services/connectors/openai-compatible/OpenAICompatibleConnector.js.map +1 -0
- package/lib/dist/services/connectors/pi/PiConnector.d.ts +87 -0
- package/lib/dist/services/connectors/pi/PiConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/pi/PiConnector.js +274 -0
- package/lib/dist/services/connectors/pi/PiConnector.js.map +1 -0
- package/lib/dist/services/connectors/registry.d.ts +57 -0
- package/lib/dist/services/connectors/registry.d.ts.map +1 -0
- package/lib/dist/services/connectors/registry.js +106 -0
- package/lib/dist/services/connectors/registry.js.map +1 -0
- package/lib/dist/services/connectors/rest/RESTConnector.d.ts +38 -0
- package/lib/dist/services/connectors/rest/RESTConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/rest/RESTConnector.js +117 -0
- package/lib/dist/services/connectors/rest/RESTConnector.js.map +1 -0
- package/lib/dist/services/connectors/server.d.ts +13 -0
- package/lib/dist/services/connectors/server.d.ts.map +1 -0
- package/lib/dist/services/connectors/server.js +34 -0
- package/lib/dist/services/connectors/server.js.map +1 -0
- package/lib/dist/services/connectors/strands/StrandsConnector.d.ts +48 -0
- package/lib/dist/services/connectors/strands/StrandsConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/strands/StrandsConnector.js +221 -0
- package/lib/dist/services/connectors/strands/StrandsConnector.js.map +1 -0
- package/lib/dist/services/connectors/subprocess/SubprocessConnector.d.ts +88 -0
- package/lib/dist/services/connectors/subprocess/SubprocessConnector.d.ts.map +1 -0
- package/lib/dist/services/connectors/subprocess/SubprocessConnector.js +418 -0
- package/lib/dist/services/connectors/subprocess/SubprocessConnector.js.map +1 -0
- package/lib/dist/services/connectors/types.d.ts +213 -0
- package/lib/dist/services/connectors/types.d.ts.map +1 -0
- package/lib/dist/services/connectors/types.js +6 -0
- package/lib/dist/services/connectors/types.js.map +1 -0
- package/lib/dist/services/evaluation/bedrockJudge.d.ts +64 -0
- package/lib/dist/services/evaluation/bedrockJudge.d.ts.map +1 -0
- package/lib/dist/services/evaluation/bedrockJudge.js +167 -0
- package/lib/dist/services/evaluation/bedrockJudge.js.map +1 -0
- package/lib/dist/services/evaluation/evaluatorError.d.ts +56 -0
- package/lib/dist/services/evaluation/evaluatorError.d.ts.map +1 -0
- package/lib/dist/services/evaluation/evaluatorError.js +56 -0
- package/lib/dist/services/evaluation/evaluatorError.js.map +1 -0
- package/lib/dist/services/evaluation/index.d.ts +106 -0
- package/lib/dist/services/evaluation/index.d.ts.map +1 -0
- package/lib/dist/services/evaluation/index.js +684 -0
- package/lib/dist/services/evaluation/index.js.map +1 -0
- package/lib/dist/services/evaluation/mockTrajectory.d.ts +3 -0
- package/lib/dist/services/evaluation/mockTrajectory.d.ts.map +1 -0
- package/lib/dist/services/evaluation/mockTrajectory.js +72 -0
- package/lib/dist/services/evaluation/mockTrajectory.js.map +1 -0
- package/lib/dist/services/opensearch/client.d.ts +26 -0
- package/lib/dist/services/opensearch/client.d.ts.map +1 -0
- package/lib/dist/services/opensearch/client.js +131 -0
- package/lib/dist/services/opensearch/client.js.map +1 -0
- package/lib/dist/services/opensearch/index.d.ts +16 -0
- package/lib/dist/services/opensearch/index.d.ts.map +1 -0
- package/lib/dist/services/opensearch/index.js +25 -0
- package/lib/dist/services/opensearch/index.js.map +1 -0
- package/lib/dist/services/storage/asyncBenchmarkStorage.d.ts +123 -0
- package/lib/dist/services/storage/asyncBenchmarkStorage.d.ts.map +1 -0
- package/lib/dist/services/storage/asyncBenchmarkStorage.js +429 -0
- package/lib/dist/services/storage/asyncBenchmarkStorage.js.map +1 -0
- package/lib/dist/services/storage/asyncRunStorage.d.ts +127 -0
- package/lib/dist/services/storage/asyncRunStorage.d.ts.map +1 -0
- package/lib/dist/services/storage/asyncRunStorage.js +448 -0
- package/lib/dist/services/storage/asyncRunStorage.js.map +1 -0
- package/lib/dist/services/storage/asyncTestCaseStorage.d.ts +156 -0
- package/lib/dist/services/storage/asyncTestCaseStorage.d.ts.map +1 -0
- package/lib/dist/services/storage/asyncTestCaseStorage.js +285 -0
- package/lib/dist/services/storage/asyncTestCaseStorage.js.map +1 -0
- package/lib/dist/services/storage/index.d.ts +17 -0
- package/lib/dist/services/storage/index.d.ts.map +1 -0
- package/lib/dist/services/storage/index.js +20 -0
- package/lib/dist/services/storage/index.js.map +1 -0
- package/lib/dist/services/storage/migration.d.ts +54 -0
- package/lib/dist/services/storage/migration.d.ts.map +1 -0
- package/lib/dist/services/storage/migration.js +296 -0
- package/lib/dist/services/storage/migration.js.map +1 -0
- package/lib/dist/services/storage/opensearchClient.d.ts +924 -0
- package/lib/dist/services/storage/opensearchClient.d.ts.map +1 -0
- package/lib/dist/services/storage/opensearchClient.js +435 -0
- package/lib/dist/services/storage/opensearchClient.js.map +1 -0
- package/lib/dist/services/traces/browserRecovery.d.ts +26 -0
- package/lib/dist/services/traces/browserRecovery.d.ts.map +1 -0
- package/lib/dist/services/traces/browserRecovery.js +81 -0
- package/lib/dist/services/traces/browserRecovery.js.map +1 -0
- package/lib/dist/services/traces/categoryStyles.d.ts +21 -0
- package/lib/dist/services/traces/categoryStyles.d.ts.map +1 -0
- package/lib/dist/services/traces/categoryStyles.js +56 -0
- package/lib/dist/services/traces/categoryStyles.js.map +1 -0
- package/lib/dist/services/traces/executionOrderTransform.d.ts +35 -0
- package/lib/dist/services/traces/executionOrderTransform.d.ts.map +1 -0
- package/lib/dist/services/traces/executionOrderTransform.js +313 -0
- package/lib/dist/services/traces/executionOrderTransform.js.map +1 -0
- package/lib/dist/services/traces/fetchSpansForRun.d.ts +86 -0
- package/lib/dist/services/traces/fetchSpansForRun.d.ts.map +1 -0
- package/lib/dist/services/traces/fetchSpansForRun.js +69 -0
- package/lib/dist/services/traces/fetchSpansForRun.js.map +1 -0
- package/lib/dist/services/traces/flowTransform.d.ts +24 -0
- package/lib/dist/services/traces/flowTransform.d.ts.map +1 -0
- package/lib/dist/services/traces/flowTransform.js +228 -0
- package/lib/dist/services/traces/flowTransform.js.map +1 -0
- package/lib/dist/services/traces/index.d.ts +121 -0
- package/lib/dist/services/traces/index.d.ts.map +1 -0
- package/lib/dist/services/traces/index.js +255 -0
- package/lib/dist/services/traces/index.js.map +1 -0
- package/lib/dist/services/traces/intentTransform.d.ts +20 -0
- package/lib/dist/services/traces/intentTransform.d.ts.map +1 -0
- package/lib/dist/services/traces/intentTransform.js +131 -0
- package/lib/dist/services/traces/intentTransform.js.map +1 -0
- package/lib/dist/services/traces/judgeAgentsHints.d.ts +63 -0
- package/lib/dist/services/traces/judgeAgentsHints.d.ts.map +1 -0
- package/lib/dist/services/traces/judgeAgentsHints.js +89 -0
- package/lib/dist/services/traces/judgeAgentsHints.js.map +1 -0
- package/lib/dist/services/traces/messageExtraction.d.ts +15 -0
- package/lib/dist/services/traces/messageExtraction.d.ts.map +1 -0
- package/lib/dist/services/traces/messageExtraction.js +251 -0
- package/lib/dist/services/traces/messageExtraction.js.map +1 -0
- package/lib/dist/services/traces/spanCategorization.d.ts +63 -0
- package/lib/dist/services/traces/spanCategorization.d.ts.map +1 -0
- package/lib/dist/services/traces/spanCategorization.js +276 -0
- package/lib/dist/services/traces/spanCategorization.js.map +1 -0
- package/lib/dist/services/traces/spanPreprocessing.d.ts +37 -0
- package/lib/dist/services/traces/spanPreprocessing.d.ts.map +1 -0
- package/lib/dist/services/traces/spanPreprocessing.js +102 -0
- package/lib/dist/services/traces/spanPreprocessing.js.map +1 -0
- package/lib/dist/services/traces/spansToTrajectory.d.ts +36 -0
- package/lib/dist/services/traces/spansToTrajectory.d.ts.map +1 -0
- package/lib/dist/services/traces/spansToTrajectory.js +387 -0
- package/lib/dist/services/traces/spansToTrajectory.js.map +1 -0
- package/lib/dist/services/traces/toolSimilarity.d.ts +35 -0
- package/lib/dist/services/traces/toolSimilarity.d.ts.map +1 -0
- package/lib/dist/services/traces/toolSimilarity.js +203 -0
- package/lib/dist/services/traces/toolSimilarity.js.map +1 -0
- package/lib/dist/services/traces/traceComparison.d.ts +31 -0
- package/lib/dist/services/traces/traceComparison.d.ts.map +1 -0
- package/lib/dist/services/traces/traceComparison.js +318 -0
- package/lib/dist/services/traces/traceComparison.js.map +1 -0
- package/lib/dist/services/traces/traceGrouping.d.ts +19 -0
- package/lib/dist/services/traces/traceGrouping.d.ts.map +1 -0
- package/lib/dist/services/traces/traceGrouping.js +107 -0
- package/lib/dist/services/traces/traceGrouping.js.map +1 -0
- package/lib/dist/services/traces/tracePoller.d.ts +84 -0
- package/lib/dist/services/traces/tracePoller.d.ts.map +1 -0
- package/lib/dist/services/traces/tracePoller.js +309 -0
- package/lib/dist/services/traces/tracePoller.js.map +1 -0
- package/lib/dist/services/traces/traceStats.d.ts +45 -0
- package/lib/dist/services/traces/traceStats.d.ts.map +1 -0
- package/lib/dist/services/traces/traceStats.js +114 -0
- package/lib/dist/services/traces/traceStats.js.map +1 -0
- package/lib/dist/services/traces/traceSummary.d.ts +47 -0
- package/lib/dist/services/traces/traceSummary.d.ts.map +1 -0
- package/lib/dist/services/traces/traceSummary.js +68 -0
- package/lib/dist/services/traces/traceSummary.js.map +1 -0
- package/lib/dist/services/traces/utils.d.ts +33 -0
- package/lib/dist/services/traces/utils.d.ts.map +1 -0
- package/lib/dist/services/traces/utils.js +114 -0
- package/lib/dist/services/traces/utils.js.map +1 -0
- package/lib/dist/types/agui.d.ts +13 -0
- package/lib/dist/types/agui.d.ts.map +1 -0
- package/lib/dist/types/agui.js +16 -0
- package/lib/dist/types/agui.js.map +1 -0
- package/lib/dist/types/index.d.ts +1175 -0
- package/lib/dist/types/index.d.ts.map +1 -0
- package/lib/dist/types/index.js +12 -0
- package/lib/dist/types/index.js.map +1 -0
- package/lib/dist/types/skills.d.ts +146 -0
- package/lib/dist/types/skills.d.ts.map +1 -0
- package/lib/dist/types/skills.js +6 -0
- package/lib/dist/types/skills.js.map +1 -0
- package/observio-sample-agent/pi-package/README.md +112 -0
- package/observio-sample-agent/pi-package/extensions/agent-health.ts +373 -0
- package/observio-sample-agent/pi-package/package.json +17 -0
- package/observio-sample-agent/pi-package/prompts/agent-health.md +37 -0
- package/observio-sample-agent/pi-package/skills/create-pr/SKILL.md +88 -0
- package/observio-sample-agent/pi-package/skills/fix-bug/SKILL.md +71 -0
- package/observio-sample-agent/pi-package/skills/implement-feature/SKILL.md +156 -0
- package/observio-sample-agent/pi-package/skills/instrument-otel/SKILL.md +208 -0
- package/observio-sample-agent/pi-package/skills/setup-collector/SKILL.md +146 -0
- package/observio-sample-agent/pi-package/skills/write-test/SKILL.md +115 -0
- package/package.json +64 -13
- package/server/dist/app.js +32651 -17637
- package/server/dist/index.js +29875 -14638
- package/tsconfig.lib.json +71 -0
- package/dist/assets/index-EvPLSTAS.js +0 -267
- package/dist/assets/index-RXasQKUs.css +0 -1
- package/lib/dist/config/index.js +0 -404
- package/lib/dist/index.js +0 -1665
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Code Connector
|
|
3
|
+
* Specialized subprocess connector for Claude Code CLI
|
|
4
|
+
*/
|
|
5
|
+
import type { TrajectoryStep } from '../../../types/index.js';
|
|
6
|
+
import { SubprocessConnector } from '../../../services/connectors/subprocess/SubprocessConnector.js';
|
|
7
|
+
import type { ConnectorAuth, ConnectorRequest, ConnectorProgressCallback, SubprocessConfig } from '../../../services/connectors/types.js';
|
|
8
|
+
/**
|
|
9
|
+
* MCP server definition for Claude Code --mcp-config flag
|
|
10
|
+
*/
|
|
11
|
+
export interface ClaudeCodeMCPServer {
|
|
12
|
+
command: string;
|
|
13
|
+
args?: string[];
|
|
14
|
+
env?: Record<string, string>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Configuration options for Claude Code connector
|
|
18
|
+
* Passed via agent.connectorConfig in agent-health.config.ts
|
|
19
|
+
*/
|
|
20
|
+
export interface ClaudeCodeConnectorConfig {
|
|
21
|
+
env?: Record<string, string>;
|
|
22
|
+
dangerouslySkipPermissions?: boolean;
|
|
23
|
+
allowedTools?: string[];
|
|
24
|
+
disallowedTools?: string[];
|
|
25
|
+
appendSystemPrompt?: string;
|
|
26
|
+
systemPrompt?: string;
|
|
27
|
+
/** Path to a standard MCP config JSON file (passed to --mcp-config) */
|
|
28
|
+
mcpConfigPath?: string;
|
|
29
|
+
/** Inline MCP server definitions (used when mcpConfigPath is not set) */
|
|
30
|
+
mcpServers?: Record<string, ClaudeCodeMCPServer>;
|
|
31
|
+
strictMcpConfig?: boolean;
|
|
32
|
+
usePromptArg?: boolean;
|
|
33
|
+
workingDir?: string;
|
|
34
|
+
timeout?: number;
|
|
35
|
+
additionalArgs?: string[];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Claude Code CLI Connector
|
|
39
|
+
* Invokes Claude Code as a subprocess for agent evaluation
|
|
40
|
+
*/
|
|
41
|
+
export declare class ClaudeCodeConnector extends SubprocessConnector {
|
|
42
|
+
readonly type: "claude-code";
|
|
43
|
+
readonly name = "Claude Code CLI";
|
|
44
|
+
traceContext: {
|
|
45
|
+
propagateEnv: boolean;
|
|
46
|
+
serviceName: string;
|
|
47
|
+
};
|
|
48
|
+
private outputBuffer;
|
|
49
|
+
private thinkingBuffer;
|
|
50
|
+
private textBuffer;
|
|
51
|
+
private isInThinking;
|
|
52
|
+
/**
|
|
53
|
+
* Claude Code's `session_id` (present on every stream-json event). Captured
|
|
54
|
+
* for Strategy D trace correlation — it equals the `session.id` attribute
|
|
55
|
+
* Claude Code stamps on its OTel spans. Surfaced to the report via
|
|
56
|
+
* {@link extraResultMetadata}.
|
|
57
|
+
*/
|
|
58
|
+
private sessionId?;
|
|
59
|
+
constructor(config?: Partial<SubprocessConfig>);
|
|
60
|
+
/**
|
|
61
|
+
* Build prompt for Claude Code
|
|
62
|
+
* Structures the input to get the best RCA results
|
|
63
|
+
*/
|
|
64
|
+
buildPayload(request: ConnectorRequest): string;
|
|
65
|
+
/**
|
|
66
|
+
* Parse Claude Code streaming output (stream-json format)
|
|
67
|
+
* Each line is a JSON object with type and content
|
|
68
|
+
*/
|
|
69
|
+
protected parseStreamingOutput(chunk: string, trajectory: TrajectoryStep[], onProgress?: ConnectorProgressCallback): void;
|
|
70
|
+
/**
|
|
71
|
+
* Parse a single JSON event from stream-json output
|
|
72
|
+
*/
|
|
73
|
+
private parseJsonEvent;
|
|
74
|
+
/**
|
|
75
|
+
* Parse final output for Claude Code
|
|
76
|
+
*/
|
|
77
|
+
parseResponse(data: {
|
|
78
|
+
stdout: string;
|
|
79
|
+
stderr: string;
|
|
80
|
+
exitCode: number;
|
|
81
|
+
}): TrajectoryStep[];
|
|
82
|
+
/**
|
|
83
|
+
* Reset state for new execution
|
|
84
|
+
*/
|
|
85
|
+
private resetState;
|
|
86
|
+
/**
|
|
87
|
+
* Flush remaining buffers when the subprocess stream ends.
|
|
88
|
+
*/
|
|
89
|
+
protected onBeforeStreamEnd(trajectory: TrajectoryStep[], onProgress?: ConnectorProgressCallback): void;
|
|
90
|
+
/**
|
|
91
|
+
* Build CLI args from ClaudeCodeConnectorConfig
|
|
92
|
+
*/
|
|
93
|
+
private buildConfigArgs;
|
|
94
|
+
/**
|
|
95
|
+
* Override execute to reset state and apply connectorConfig
|
|
96
|
+
*/
|
|
97
|
+
execute(endpoint: string, request: ConnectorRequest, auth: ConnectorAuth, onProgress?: ConnectorProgressCallback, onRawEvent?: (event: any) => void): Promise<import('../types.js').ConnectorResponse>;
|
|
98
|
+
/**
|
|
99
|
+
* Health check - verify claude command exists
|
|
100
|
+
*/
|
|
101
|
+
healthCheck(endpoint: string, auth: ConnectorAuth): Promise<boolean>;
|
|
102
|
+
/**
|
|
103
|
+
* Surface the captured Claude Code `session_id` so the runner can persist it
|
|
104
|
+
* as `report.sessionId` for Strategy D trace correlation.
|
|
105
|
+
*/
|
|
106
|
+
protected extraResultMetadata(): Record<string, any>;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Create a Claude Code connector with specific Bedrock configuration
|
|
110
|
+
*/
|
|
111
|
+
export declare function createBedrockClaudeCodeConnector(): ClaudeCodeConnector;
|
|
112
|
+
/**
|
|
113
|
+
* Default instance for convenience
|
|
114
|
+
*/
|
|
115
|
+
export declare const claudeCodeConnector: ClaudeCodeConnector;
|
|
116
|
+
//# sourceMappingURL=ClaudeCodeConnector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClaudeCodeConnector.d.ts","sourceRoot":"","sources":["../../../../../services/connectors/claude-code/ClaudeCodeConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright OpenSearch Contributors
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { ToolCallStatus } from '../../../types/index.js';
|
|
6
|
+
import { SubprocessConnector } from '../../../services/connectors/subprocess/SubprocessConnector.js';
|
|
7
|
+
/**
|
|
8
|
+
* Default Claude Code configuration
|
|
9
|
+
*
|
|
10
|
+
* Telemetry: Set OTEL_EXPORTER_OTLP_ENDPOINT in your environment to enable
|
|
11
|
+
* OpenTelemetry traces. Claude Code respects standard OTEL env vars.
|
|
12
|
+
*/
|
|
13
|
+
const CLAUDE_CODE_DEFAULT_CONFIG = {
|
|
14
|
+
command: 'claude',
|
|
15
|
+
args: ['--print', '--verbose', '--output-format', 'stream-json'], // Structured JSON output (--verbose required with stream-json)
|
|
16
|
+
env: {
|
|
17
|
+
// These can be overridden by agent config or environment
|
|
18
|
+
DISABLE_PROMPT_CACHING: '1',
|
|
19
|
+
DISABLE_ERROR_REPORTING: '1',
|
|
20
|
+
// Note: DISABLE_TELEMETRY removed - telemetry enabled by default
|
|
21
|
+
// Configure OTEL_EXPORTER_OTLP_ENDPOINT in .env to send traces
|
|
22
|
+
},
|
|
23
|
+
inputMode: 'stdin',
|
|
24
|
+
outputParser: 'streaming',
|
|
25
|
+
timeout: 600000, // 10 minutes for Claude Code
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Claude Code CLI Connector
|
|
29
|
+
* Invokes Claude Code as a subprocess for agent evaluation
|
|
30
|
+
*/
|
|
31
|
+
export class ClaudeCodeConnector extends SubprocessConnector {
|
|
32
|
+
constructor(config) {
|
|
33
|
+
super({ ...CLAUDE_CODE_DEFAULT_CONFIG, ...config });
|
|
34
|
+
this.type = 'claude-code';
|
|
35
|
+
this.name = 'Claude Code CLI';
|
|
36
|
+
this.traceContext = { propagateEnv: true, serviceName: 'claude-code-agent' };
|
|
37
|
+
this.outputBuffer = '';
|
|
38
|
+
this.thinkingBuffer = '';
|
|
39
|
+
this.textBuffer = '';
|
|
40
|
+
this.isInThinking = false;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Build prompt for Claude Code
|
|
44
|
+
* Structures the input to get the best RCA results
|
|
45
|
+
*/
|
|
46
|
+
buildPayload(request) {
|
|
47
|
+
const parts = [];
|
|
48
|
+
// Add system context if available
|
|
49
|
+
if (request.testCase.context && request.testCase.context.length > 0) {
|
|
50
|
+
parts.push('## Context');
|
|
51
|
+
for (const ctx of request.testCase.context) {
|
|
52
|
+
parts.push(`**${ctx.description}:**`);
|
|
53
|
+
parts.push(ctx.value);
|
|
54
|
+
parts.push('');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Add the main prompt
|
|
58
|
+
parts.push('## Task');
|
|
59
|
+
parts.push(request.testCase.initialPrompt);
|
|
60
|
+
return parts.join('\n');
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Parse Claude Code streaming output (stream-json format)
|
|
64
|
+
* Each line is a JSON object with type and content
|
|
65
|
+
*/
|
|
66
|
+
parseStreamingOutput(chunk, trajectory, onProgress) {
|
|
67
|
+
this.outputBuffer += chunk;
|
|
68
|
+
// Parse complete JSON lines (NDJSON format)
|
|
69
|
+
const lines = this.outputBuffer.split('\n');
|
|
70
|
+
this.outputBuffer = lines.pop() || ''; // Keep incomplete line
|
|
71
|
+
for (const line of lines) {
|
|
72
|
+
const trimmed = line.trim();
|
|
73
|
+
if (!trimmed)
|
|
74
|
+
continue;
|
|
75
|
+
try {
|
|
76
|
+
const event = JSON.parse(trimmed);
|
|
77
|
+
const steps = this.parseJsonEvent(event);
|
|
78
|
+
for (const step of steps) {
|
|
79
|
+
trajectory.push(step);
|
|
80
|
+
onProgress?.(step);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
// Not JSON, treat as plain text
|
|
85
|
+
if (trimmed) {
|
|
86
|
+
const step = this.createStep('assistant', trimmed);
|
|
87
|
+
trajectory.push(step);
|
|
88
|
+
onProgress?.(step);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Parse a single JSON event from stream-json output
|
|
95
|
+
*/
|
|
96
|
+
parseJsonEvent(event) {
|
|
97
|
+
const steps = [];
|
|
98
|
+
// Capture the session id (present on system/init, assistant, user, result
|
|
99
|
+
// events). Used for Strategy D trace correlation (attributes.session.id).
|
|
100
|
+
if (typeof event.session_id === 'string' && event.session_id) {
|
|
101
|
+
this.sessionId = event.session_id;
|
|
102
|
+
}
|
|
103
|
+
// Handle different event types from Claude Code stream-json
|
|
104
|
+
if (event.type === 'assistant' && event.message?.content) {
|
|
105
|
+
for (const block of event.message.content) {
|
|
106
|
+
if (block.type === 'thinking' && block.thinking) {
|
|
107
|
+
steps.push(this.createStep('thinking', block.thinking));
|
|
108
|
+
}
|
|
109
|
+
else if (block.type === 'text' && block.text) {
|
|
110
|
+
steps.push(this.createStep('assistant', block.text));
|
|
111
|
+
}
|
|
112
|
+
else if (block.type === 'tool_use') {
|
|
113
|
+
steps.push(this.createStep('action', JSON.stringify(block.input || {}), {
|
|
114
|
+
toolName: block.name,
|
|
115
|
+
toolArgs: block.input,
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else if (event.type === 'user' && event.message?.content) {
|
|
121
|
+
// Claude Code emits tool results as user-role messages with tool_result
|
|
122
|
+
// content blocks (referenced back to the assistant's tool_use_id).
|
|
123
|
+
// Without this branch, tool outputs are silently dropped — the trajectory
|
|
124
|
+
// shows the tool calls but not their results.
|
|
125
|
+
for (const block of event.message.content) {
|
|
126
|
+
if (block.type === 'tool_result') {
|
|
127
|
+
const content = typeof block.content === 'string'
|
|
128
|
+
? block.content
|
|
129
|
+
: JSON.stringify(block.content);
|
|
130
|
+
steps.push(this.createStep('tool_result', content, {
|
|
131
|
+
status: block.is_error ? ToolCallStatus.FAILURE : ToolCallStatus.SUCCESS,
|
|
132
|
+
}));
|
|
133
|
+
}
|
|
134
|
+
else if (block.type === 'text' && block.text) {
|
|
135
|
+
// Rare: plain text in a user message (e.g., tool-orchestrator follow-ups)
|
|
136
|
+
steps.push(this.createStep('assistant', block.text));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else if (event.type === 'content_block_delta') {
|
|
141
|
+
// Streaming delta updates — accumulate into buffers
|
|
142
|
+
if (event.delta?.type === 'thinking_delta' && event.delta.thinking) {
|
|
143
|
+
this.thinkingBuffer += event.delta.thinking;
|
|
144
|
+
}
|
|
145
|
+
else if (event.delta?.type === 'text_delta' && event.delta.text) {
|
|
146
|
+
// Accumulate text deltas; the 'result' event will emit the final response
|
|
147
|
+
this.textBuffer += event.delta.text;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
else if (event.type === 'content_block_stop') {
|
|
151
|
+
// Flush thinking buffer when block ends
|
|
152
|
+
if (this.thinkingBuffer) {
|
|
153
|
+
steps.push(this.createStep('thinking', this.thinkingBuffer));
|
|
154
|
+
this.thinkingBuffer = '';
|
|
155
|
+
}
|
|
156
|
+
// Flush text buffer when block ends (consolidated assistant step)
|
|
157
|
+
if (this.textBuffer) {
|
|
158
|
+
steps.push(this.createStep('assistant', this.textBuffer));
|
|
159
|
+
this.textBuffer = '';
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
else if (event.type === 'result' && event.result) {
|
|
163
|
+
// Final result message
|
|
164
|
+
steps.push(this.createStep('response', typeof event.result === 'string' ? event.result : JSON.stringify(event.result)));
|
|
165
|
+
}
|
|
166
|
+
return steps;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Parse final output for Claude Code
|
|
170
|
+
*/
|
|
171
|
+
parseResponse(data) {
|
|
172
|
+
const steps = [];
|
|
173
|
+
let content = data.stdout;
|
|
174
|
+
// Extract thinking blocks
|
|
175
|
+
const thinkingMatches = content.matchAll(/<thinking>([\s\S]*?)<\/thinking>/g);
|
|
176
|
+
for (const match of thinkingMatches) {
|
|
177
|
+
const thinking = match[1].trim();
|
|
178
|
+
if (thinking) {
|
|
179
|
+
steps.push(this.createStep('thinking', thinking));
|
|
180
|
+
}
|
|
181
|
+
content = content.replace(match[0], '');
|
|
182
|
+
}
|
|
183
|
+
// The remaining content is the response
|
|
184
|
+
const response = content.trim();
|
|
185
|
+
if (response) {
|
|
186
|
+
steps.push(this.createStep('response', response));
|
|
187
|
+
}
|
|
188
|
+
// Add error if there was stderr
|
|
189
|
+
if (data.exitCode !== 0 && data.stderr.trim()) {
|
|
190
|
+
steps.push(this.createStep('tool_result', `Error: ${data.stderr.trim()}`, {
|
|
191
|
+
status: ToolCallStatus.FAILURE,
|
|
192
|
+
}));
|
|
193
|
+
}
|
|
194
|
+
return steps;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Reset state for new execution
|
|
198
|
+
*/
|
|
199
|
+
resetState() {
|
|
200
|
+
this.outputBuffer = '';
|
|
201
|
+
this.thinkingBuffer = '';
|
|
202
|
+
this.textBuffer = '';
|
|
203
|
+
this.isInThinking = false;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Flush remaining buffers when the subprocess stream ends.
|
|
207
|
+
*/
|
|
208
|
+
onBeforeStreamEnd(trajectory, onProgress) {
|
|
209
|
+
// Flush outputBuffer (incomplete NDJSON line)
|
|
210
|
+
if (this.outputBuffer.trim()) {
|
|
211
|
+
try {
|
|
212
|
+
const event = JSON.parse(this.outputBuffer.trim());
|
|
213
|
+
const steps = this.parseJsonEvent(event);
|
|
214
|
+
for (const step of steps) {
|
|
215
|
+
trajectory.push(step);
|
|
216
|
+
onProgress?.(step);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
const step = this.createStep('assistant', this.outputBuffer.trim());
|
|
221
|
+
trajectory.push(step);
|
|
222
|
+
onProgress?.(step);
|
|
223
|
+
}
|
|
224
|
+
this.outputBuffer = '';
|
|
225
|
+
}
|
|
226
|
+
// Flush thinkingBuffer
|
|
227
|
+
if (this.thinkingBuffer) {
|
|
228
|
+
const step = this.createStep('thinking', this.thinkingBuffer);
|
|
229
|
+
trajectory.push(step);
|
|
230
|
+
onProgress?.(step);
|
|
231
|
+
this.thinkingBuffer = '';
|
|
232
|
+
}
|
|
233
|
+
// Flush textBuffer (text deltas received without a result event)
|
|
234
|
+
if (this.textBuffer) {
|
|
235
|
+
const step = this.createStep('response', this.textBuffer);
|
|
236
|
+
trajectory.push(step);
|
|
237
|
+
onProgress?.(step);
|
|
238
|
+
this.textBuffer = '';
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Build CLI args from ClaudeCodeConnectorConfig
|
|
243
|
+
*/
|
|
244
|
+
buildConfigArgs(config) {
|
|
245
|
+
const args = [];
|
|
246
|
+
if (config.dangerouslySkipPermissions) {
|
|
247
|
+
args.push('--dangerously-skip-permissions');
|
|
248
|
+
}
|
|
249
|
+
if (config.systemPrompt) {
|
|
250
|
+
args.push('--system-prompt', config.systemPrompt);
|
|
251
|
+
}
|
|
252
|
+
else if (config.appendSystemPrompt) {
|
|
253
|
+
args.push('--append-system-prompt', config.appendSystemPrompt);
|
|
254
|
+
}
|
|
255
|
+
if (config.allowedTools?.length) {
|
|
256
|
+
args.push('--allowed-tools', ...config.allowedTools);
|
|
257
|
+
}
|
|
258
|
+
if (config.disallowedTools?.length) {
|
|
259
|
+
args.push('--disallowed-tools', ...config.disallowedTools);
|
|
260
|
+
}
|
|
261
|
+
if (config.mcpConfigPath) {
|
|
262
|
+
args.push('--mcp-config', config.mcpConfigPath);
|
|
263
|
+
}
|
|
264
|
+
else if (config.mcpServers && Object.keys(config.mcpServers).length > 0) {
|
|
265
|
+
args.push('--mcp-config', JSON.stringify({ mcpServers: config.mcpServers }));
|
|
266
|
+
}
|
|
267
|
+
if (config.strictMcpConfig) {
|
|
268
|
+
args.push('--strict-mcp-config');
|
|
269
|
+
}
|
|
270
|
+
if (config.additionalArgs) {
|
|
271
|
+
args.push(...config.additionalArgs);
|
|
272
|
+
}
|
|
273
|
+
return args;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Override execute to reset state and apply connectorConfig
|
|
277
|
+
*/
|
|
278
|
+
async execute(endpoint, request, auth, onProgress, onRawEvent) {
|
|
279
|
+
this.debug('========== execute() STARTED ==========');
|
|
280
|
+
this.debug('Endpoint:', endpoint);
|
|
281
|
+
this.debug('Test case:', request.testCase.name);
|
|
282
|
+
this.debug('Config:', this['config']);
|
|
283
|
+
this.resetState();
|
|
284
|
+
// Save original config for restoration after execution.
|
|
285
|
+
// Uses structured clone for env to prevent leaking nested mutations
|
|
286
|
+
// between consecutive executions in a benchmark run.
|
|
287
|
+
const originalEnv = this.config.env ? structuredClone(this.config.env) : {};
|
|
288
|
+
const originalArgs = this.config.args ? [...this.config.args] : [];
|
|
289
|
+
const originalInputMode = this.config.inputMode;
|
|
290
|
+
const originalTimeout = this.config.timeout;
|
|
291
|
+
const originalWorkingDir = this.config.workingDir;
|
|
292
|
+
// Apply connectorConfig if provided
|
|
293
|
+
const ccConfig = request.connectorConfig;
|
|
294
|
+
if (ccConfig) {
|
|
295
|
+
this.debug('Applying connectorConfig:', Object.keys(ccConfig));
|
|
296
|
+
// Merge environment variables
|
|
297
|
+
if (ccConfig.env) {
|
|
298
|
+
this.config.env = { ...this.config.env, ...ccConfig.env };
|
|
299
|
+
}
|
|
300
|
+
// Switch input mode if requested
|
|
301
|
+
if (ccConfig.usePromptArg) {
|
|
302
|
+
this.config.inputMode = 'arg';
|
|
303
|
+
}
|
|
304
|
+
// Override timeout if specified
|
|
305
|
+
if (ccConfig.timeout !== undefined) {
|
|
306
|
+
this.config.timeout = ccConfig.timeout;
|
|
307
|
+
}
|
|
308
|
+
// Override working directory if specified
|
|
309
|
+
if (ccConfig.workingDir) {
|
|
310
|
+
this.config.workingDir = ccConfig.workingDir;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
// When using Bedrock, clear any Anthropic API key to prevent
|
|
314
|
+
// login-managed key from taking precedence and triggering a credit
|
|
315
|
+
// balance check instead of routing through Bedrock.
|
|
316
|
+
if (this.config.env?.CLAUDE_CODE_USE_BEDROCK === '1') {
|
|
317
|
+
this.config.env = { ...this.config.env, ANTHROPIC_API_KEY: '' };
|
|
318
|
+
this.debug('Bedrock mode: cleared ANTHROPIC_API_KEY to bypass credit check');
|
|
319
|
+
}
|
|
320
|
+
// The agent's model is owned by its agent-health.config.ts connector
|
|
321
|
+
// config (env.ANTHROPIC_MODEL, or a `--model` flag in connectorConfig.args)
|
|
322
|
+
// — there is no run-level / user-selected agent model. We intentionally do
|
|
323
|
+
// NOT inject a model from the run here.
|
|
324
|
+
// Append config-driven args
|
|
325
|
+
if (ccConfig) {
|
|
326
|
+
const configArgs = this.buildConfigArgs(ccConfig);
|
|
327
|
+
if (configArgs.length > 0) {
|
|
328
|
+
this.config.args = [...(this.config.args || []), ...configArgs];
|
|
329
|
+
this.debug('Config args added:', configArgs);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
try {
|
|
333
|
+
this.debug('State reset, calling super.execute()...');
|
|
334
|
+
this.sessionId = undefined;
|
|
335
|
+
const result = await super.execute(endpoint, request, auth, onProgress, onRawEvent);
|
|
336
|
+
this.debug('super.execute() returned with', result.trajectory.length, 'steps');
|
|
337
|
+
this.debug('========== execute() COMPLETED ==========');
|
|
338
|
+
return result;
|
|
339
|
+
}
|
|
340
|
+
finally {
|
|
341
|
+
// Restore config to pre-execution state. Uses deep copies to prevent
|
|
342
|
+
// config pollution between consecutive executions in a benchmark run.
|
|
343
|
+
this.config.env = originalEnv;
|
|
344
|
+
this.config.args = originalArgs;
|
|
345
|
+
this.config.inputMode = originalInputMode;
|
|
346
|
+
this.config.timeout = originalTimeout;
|
|
347
|
+
this.config.workingDir = originalWorkingDir;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Health check - verify claude command exists
|
|
352
|
+
*/
|
|
353
|
+
async healthCheck(endpoint, auth) {
|
|
354
|
+
return super.healthCheck(endpoint || 'claude', auth);
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Surface the captured Claude Code `session_id` so the runner can persist it
|
|
358
|
+
* as `report.sessionId` for Strategy D trace correlation.
|
|
359
|
+
*/
|
|
360
|
+
extraResultMetadata() {
|
|
361
|
+
return this.sessionId ? { sessionId: this.sessionId } : {};
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Create a Claude Code connector with specific Bedrock configuration
|
|
366
|
+
*/
|
|
367
|
+
export function createBedrockClaudeCodeConnector() {
|
|
368
|
+
const env = {
|
|
369
|
+
AWS_PROFILE: process.env.AWS_PROFILE || 'Bedrock',
|
|
370
|
+
CLAUDE_CODE_USE_BEDROCK: '1',
|
|
371
|
+
ANTHROPIC_API_KEY: '', // Prevent login-managed key from overriding Bedrock
|
|
372
|
+
AWS_REGION: process.env.AWS_REGION || 'us-west-2',
|
|
373
|
+
DISABLE_PROMPT_CACHING: '1',
|
|
374
|
+
DISABLE_ERROR_REPORTING: '1',
|
|
375
|
+
};
|
|
376
|
+
const telemetryEnabled = process.env.CLAUDE_CODE_TELEMETRY_ENABLED === 'true';
|
|
377
|
+
const otelEndpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT;
|
|
378
|
+
if (telemetryEnabled && otelEndpoint) {
|
|
379
|
+
env.CLAUDE_CODE_ENABLE_TELEMETRY = '1';
|
|
380
|
+
env.OTEL_EXPORTER_OTLP_ENDPOINT = otelEndpoint;
|
|
381
|
+
env.OTEL_TRACES_EXPORTER = 'otlp';
|
|
382
|
+
env.OTEL_METRICS_EXPORTER = 'otlp';
|
|
383
|
+
env.OTEL_LOGS_EXPORTER = 'otlp';
|
|
384
|
+
// Log the user prompt as a log record attribute so the run's prompt is
|
|
385
|
+
// visible in the Traces view. Opt-out via OTEL_LOG_USER_PROMPTS=0.
|
|
386
|
+
env.OTEL_LOG_USER_PROMPTS = process.env.OTEL_LOG_USER_PROMPTS ?? '1';
|
|
387
|
+
if (process.env.OTEL_SERVICE_NAME)
|
|
388
|
+
env.OTEL_SERVICE_NAME = process.env.OTEL_SERVICE_NAME;
|
|
389
|
+
if (process.env.OTEL_EXPORTER_OTLP_PROTOCOL)
|
|
390
|
+
env.OTEL_EXPORTER_OTLP_PROTOCOL = process.env.OTEL_EXPORTER_OTLP_PROTOCOL;
|
|
391
|
+
if (process.env.OTEL_EXPORTER_OTLP_HEADERS)
|
|
392
|
+
env.OTEL_EXPORTER_OTLP_HEADERS = process.env.OTEL_EXPORTER_OTLP_HEADERS;
|
|
393
|
+
}
|
|
394
|
+
else {
|
|
395
|
+
env.DISABLE_TELEMETRY = '1';
|
|
396
|
+
}
|
|
397
|
+
return new ClaudeCodeConnector({ env });
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Default instance for convenience
|
|
401
|
+
*/
|
|
402
|
+
export const claudeCodeConnector = new ClaudeCodeConnector();
|
|
403
|
+
//# sourceMappingURL=ClaudeCodeConnector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClaudeCodeConnector.js","sourceRoot":"","sources":["../../../../../services/connectors/claude-code/ClaudeCodeConnector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAC;AAuC3F;;;;;GAKG;AACH,MAAM,0BAA0B,GAA8B;IAC5D,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,+DAA+D;IACjI,GAAG,EAAE;QACH,yDAAyD;QACzD,sBAAsB,EAAE,GAAG;QAC3B,uBAAuB,EAAE,GAAG;QAC5B,iEAAiE;QACjE,+DAA+D;KAChE;IACD,SAAS,EAAE,OAAO;IAClB,YAAY,EAAE,WAAW;IACzB,OAAO,EAAE,MAAM,EAAE,6BAA6B;CAC/C,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,mBAAmB;IAkB1D,YAAY,MAAkC;QAC5C,KAAK,CAAC,EAAE,GAAG,0BAA0B,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QAlB7C,SAAI,GAAG,aAAsB,CAAC;QACrB,SAAI,GAAG,iBAAiB,CAAC;QAElC,iBAAY,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;QAEzE,iBAAY,GAAG,EAAE,CAAC;QAClB,mBAAc,GAAG,EAAE,CAAC;QACpB,eAAU,GAAG,EAAE,CAAC;QAChB,iBAAY,GAAG,KAAK,CAAC;IAW7B,CAAC;IAED;;;OAGG;IACM,YAAY,CAAC,OAAyB;QAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,kCAAkC;QAClC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,WAAW,KAAK,CAAC,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAE3C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACgB,oBAAoB,CACrC,KAAa,EACb,UAA4B,EAC5B,UAAsC;QAEtC,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC;QAE3B,4CAA4C;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,uBAAuB;QAE9D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtB,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,gCAAgC;gBAChC,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;oBACnD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtB,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,KAAU;QAC/B,MAAM,KAAK,GAAqB,EAAE,CAAC;QAEnC,0EAA0E;QAC1E,0EAA0E;QAC1E,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YAC7D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,CAAC;QAED,4DAA4D;QAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;YACzD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAChD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC1D,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC/C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvD,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACrC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE;wBACtE,QAAQ,EAAE,KAAK,CAAC,IAAI;wBACpB,QAAQ,EAAE,KAAK,CAAC,KAAK;qBACtB,CAAC,CAAC,CAAC;gBACN,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;YAC3D,wEAAwE;YACxE,mEAAmE;YACnE,0EAA0E;YAC1E,8CAA8C;YAC9C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACjC,MAAM,OAAO,GACX,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;wBAC/B,CAAC,CAAC,KAAK,CAAC,OAAO;wBACf,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACpC,KAAK,CAAC,IAAI,CACR,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE;wBACtC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO;qBACzE,CAAC,CACH,CAAC;gBACJ,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC/C,0EAA0E;oBAC1E,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAChD,oDAAoD;YACpD,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnE,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC9C,CAAC;iBAAM,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClE,0EAA0E;gBAC1E,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;YACtC,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YAC/C,wCAAwC;YACxC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC7D,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YAC3B,CAAC;YACD,kEAAkE;YAClE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACnD,uBAAuB;YACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EACnC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAC/E,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACM,aAAa,CAAC,IAA0D;QAC/E,MAAM,KAAK,GAAqB,EAAE,CAAC;QACnC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAE1B,0BAA0B;QAC1B,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;QAC9E,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,wCAAwC;QACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,gCAAgC;QAChC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE;gBACxE,MAAM,EAAE,cAAc,CAAC,OAAO;aAC/B,CAAC,CAAC,CAAC;QACN,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,UAAU;QAChB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED;;OAEG;IACgB,iBAAiB,CAClC,UAA4B,EAC5B,UAAsC;QAEtC,8CAA8C;QAC9C,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;gBACnD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtB,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACzB,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QAC3B,CAAC;QAED,iEAAiE;QACjE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,MAAiC;QACvD,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,IAAI,MAAM,CAAC,0BAA0B,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,OAAO,CACpB,QAAgB,EAChB,OAAyB,EACzB,IAAmB,EACnB,UAAsC,EACtC,UAAiC;QAEjC,IAAI,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,wDAAwD;QACxD,oEAAoE;QACpE,qDAAqD;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAChD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC5C,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAElD,oCAAoC;QACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAwD,CAAC;QAClF,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,2BAA2B,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAE/D,8BAA8B;YAC9B,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC5D,CAAC;YAED,iCAAiC;YACjC,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;YAChC,CAAC;YAED,gCAAgC;YAChC,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;YACzC,CAAC;YAED,0CAA0C;YAC1C,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,mEAAmE;QACnE,oDAAoD;QACpD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,uBAAuB,KAAK,GAAG,EAAE,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAC/E,CAAC;QAED,qEAAqE;QACrE,4EAA4E;QAC5E,2EAA2E;QAC3E,wCAAwC;QAExC,4BAA4B;QAC5B,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;gBAChE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YACpF,IAAI,CAAC,KAAK,CAAC,+BAA+B,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/E,IAAI,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACxD,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,qEAAqE;YACrE,sEAAsE;YACtE,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,WAAW,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,iBAAiB,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,eAAe,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,kBAAkB,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,IAAmB;QAC9D,OAAO,KAAK,CAAC,WAAW,CAAC,QAAQ,IAAI,QAAQ,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACgB,mBAAmB;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC;IAC9C,MAAM,GAAG,GAA2B;QAClC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,SAAS;QACjD,uBAAuB,EAAE,GAAG;QAC5B,iBAAiB,EAAE,EAAE,EAAE,oDAAoD;QAC3E,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW;QACjD,sBAAsB,EAAE,GAAG;QAC3B,uBAAuB,EAAE,GAAG;KAC7B,CAAC;IAEF,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,MAAM,CAAC;IAC9E,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAC7D,IAAI,gBAAgB,IAAI,YAAY,EAAE,CAAC;QACrC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAC;QACvC,GAAG,CAAC,2BAA2B,GAAG,YAAY,CAAC;QAC/C,GAAG,CAAC,oBAAoB,GAAG,MAAM,CAAC;QAClC,GAAG,CAAC,qBAAqB,GAAG,MAAM,CAAC;QACnC,GAAG,CAAC,kBAAkB,GAAG,MAAM,CAAC;QAChC,uEAAuE;QACvE,mEAAmE;QACnE,GAAG,CAAC,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC;QACrE,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;YAAE,GAAG,CAAC,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACzF,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B;YAAE,GAAG,CAAC,2BAA2B,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;QACvH,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B;YAAE,GAAG,CAAC,0BAA0B,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;IACtH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connector System
|
|
3
|
+
* Provides a pluggable abstraction for different agent communication protocols
|
|
4
|
+
*/
|
|
5
|
+
export type { ConnectorProtocol, ConnectorAuthType, ConnectorAuth, ConnectorRequest, ConnectorResponse, ConnectorProgressCallback, ConnectorRawEventCallback, AgentConnector, SubprocessInputMode, SubprocessOutputParser, SubprocessConfig, AgentConfigWithConnector, ConnectorRegistry, ConnectorExecuteOptions, } from './types.js';
|
|
6
|
+
export { connectorRegistry, getConnectorForAgent, registerConnector, } from './registry.js';
|
|
7
|
+
export { BaseConnector } from './base/BaseConnector.js';
|
|
8
|
+
export { AGUIStreamingConnector, aguiStreamingConnector } from './agui/AGUIStreamingConnector.js';
|
|
9
|
+
export { MockConnector, mockConnector } from './mock/MockConnector.js';
|
|
10
|
+
export { RESTConnector, restConnector } from './rest/RESTConnector.js';
|
|
11
|
+
export { OpenAICompatibleConnector, openaiCompatibleConnector } from './openai-compatible/OpenAICompatibleConnector.js';
|
|
12
|
+
export { LangGraphConnector, langgraphConnector } from './langgraph/LangGraphConnector.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../services/connectors/index.ts"],"names":[],"mappings":"AAKA;;;GAGG;AAGH,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,EACzB,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AACrH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright OpenSearch Contributors
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
// ============ Registry Exports ============
|
|
6
|
+
export { connectorRegistry, getConnectorForAgent, registerConnector, } from './registry.js';
|
|
7
|
+
// ============ Base Class Export ============
|
|
8
|
+
export { BaseConnector } from './base/BaseConnector.js';
|
|
9
|
+
// ============ Browser-safe Connector Exports ============
|
|
10
|
+
// These connectors work in browser environments (no Node.js dependencies)
|
|
11
|
+
export { AGUIStreamingConnector, aguiStreamingConnector } from './agui/AGUIStreamingConnector.js';
|
|
12
|
+
export { MockConnector, mockConnector } from './mock/MockConnector.js';
|
|
13
|
+
export { RESTConnector, restConnector } from './rest/RESTConnector.js';
|
|
14
|
+
export { OpenAICompatibleConnector, openaiCompatibleConnector } from './openai-compatible/OpenAICompatibleConnector.js';
|
|
15
|
+
export { LangGraphConnector, langgraphConnector } from './langgraph/LangGraphConnector.js';
|
|
16
|
+
// ============ Auto-register Browser-safe Connectors ============
|
|
17
|
+
import { connectorRegistry } from './registry.js';
|
|
18
|
+
import { logStartupDiagnostic } from '../../lib/diagnostics.js';
|
|
19
|
+
import { aguiStreamingConnector } from './agui/AGUIStreamingConnector.js';
|
|
20
|
+
import { mockConnector } from './mock/MockConnector.js';
|
|
21
|
+
import { restConnector } from './rest/RESTConnector.js';
|
|
22
|
+
import { openaiCompatibleConnector } from './openai-compatible/OpenAICompatibleConnector.js';
|
|
23
|
+
import { langgraphConnector } from './langgraph/LangGraphConnector.js';
|
|
24
|
+
// Register browser-compatible connectors on module load
|
|
25
|
+
// Server-only connectors (subprocess, claude-code, strands) are registered via server.ts
|
|
26
|
+
connectorRegistry.register(aguiStreamingConnector);
|
|
27
|
+
connectorRegistry.register(mockConnector);
|
|
28
|
+
connectorRegistry.register(restConnector);
|
|
29
|
+
connectorRegistry.register(openaiCompatibleConnector);
|
|
30
|
+
connectorRegistry.register(langgraphConnector);
|
|
31
|
+
logStartupDiagnostic('[Connectors] Browser-safe connectors registered:', connectorRegistry.getRegisteredTypes().join(', '));
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../services/connectors/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyBH,6CAA6C;AAC7C,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,8CAA8C;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,2DAA2D;AAC3D,0EAA0E;AAC1E,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AACrH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAExF,kEAAkE;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,wDAAwD;AACxD,yFAAyF;AACzF,iBAAiB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AACnD,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC1C,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC1C,iBAAiB,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;AACtD,iBAAiB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAE/C,oBAAoB,CAAC,kDAAkD,EAAE,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { TrajectoryStep } from '../../../types/index.js';
|
|
2
|
+
import { SubprocessConnector } from '../../../services/connectors/subprocess/SubprocessConnector.js';
|
|
3
|
+
import type { ConnectorAuth, ConnectorProgressCallback, SubprocessConfig } from '../../../services/connectors/types.js';
|
|
4
|
+
export declare class KiroConnector extends SubprocessConnector {
|
|
5
|
+
readonly type: "kiro";
|
|
6
|
+
readonly name = "Kiro CLI";
|
|
7
|
+
traceContext: {
|
|
8
|
+
propagateEnv: boolean;
|
|
9
|
+
serviceName: string;
|
|
10
|
+
};
|
|
11
|
+
/** Carry-over for a partial last line on stderr stream */
|
|
12
|
+
private stderrLineBuffer;
|
|
13
|
+
/** Tool name from the last unmatched `[tool] Running:` line, used to
|
|
14
|
+
* attach the same toolName to the corresponding `[tool] status:` row. */
|
|
15
|
+
private pendingToolName;
|
|
16
|
+
constructor(config?: Partial<SubprocessConfig>);
|
|
17
|
+
/**
|
|
18
|
+
* Convert kiro-cli's stderr `[tool]` markers into trajectory steps.
|
|
19
|
+
*
|
|
20
|
+
* Each chunk may straddle line boundaries, so we accumulate into
|
|
21
|
+
* `stderrLineBuffer` and only consume complete lines (the trailing
|
|
22
|
+
* partial line is held until the next chunk or `onBeforeStreamEnd`).
|
|
23
|
+
*/
|
|
24
|
+
protected parseStderrChunk(chunk: string, trajectory: TrajectoryStep[], onProgress?: ConnectorProgressCallback): void;
|
|
25
|
+
/**
|
|
26
|
+
* Drain any held partial line from the stderr buffer and reset
|
|
27
|
+
* per-run state, then defer to the base class to flush the
|
|
28
|
+
* consolidated stdout response step.
|
|
29
|
+
*/
|
|
30
|
+
protected onBeforeStreamEnd(trajectory: TrajectoryStep[], onProgress?: ConnectorProgressCallback): void;
|
|
31
|
+
/**
|
|
32
|
+
* Parse a single stderr line. Recognised forms:
|
|
33
|
+
*
|
|
34
|
+
* [tool] Running: <command> -> emit `action` step
|
|
35
|
+
* [tool] status: Completed -> emit `tool_result` (SUCCESS)
|
|
36
|
+
* [tool] status: Failed -> emit `tool_result` (FAILURE)
|
|
37
|
+
* [tool] status: <anything else> -> emit `tool_result` (FAILURE)
|
|
38
|
+
*
|
|
39
|
+
* Other stderr lines (AWS SDK warnings, telemetry info, etc.) are ignored.
|
|
40
|
+
*/
|
|
41
|
+
private processStderrLine;
|
|
42
|
+
healthCheck(endpoint: string, auth: ConnectorAuth): Promise<boolean>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Default instance for convenience.
|
|
46
|
+
*/
|
|
47
|
+
export declare const kiroConnector: KiroConnector;
|
|
48
|
+
//# sourceMappingURL=KiroConnector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KiroConnector.d.ts","sourceRoot":"","sources":["../../../../../services/connectors/kiro/KiroConnector.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,KAAK,EACV,aAAa,EACb,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AA2BrC,qBAAa,aAAc,SAAQ,mBAAmB;IACpD,SAAkB,IAAI,EAAG,MAAM,CAAU;IACzC,SAAkB,IAAI,cAAc;IAE3B,YAAY;;;MAAqD;IAE1E,0DAA0D;IAC1D,OAAO,CAAC,gBAAgB,CAAM;IAE9B;8EAC0E;IAC1E,OAAO,CAAC,eAAe,CAAuB;gBAElC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAI9C;;;;;;OAMG;cACgB,gBAAgB,CACjC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,cAAc,EAAE,EAC5B,UAAU,CAAC,EAAE,yBAAyB,GACrC,IAAI;IAUP;;;;OAIG;cACgB,iBAAiB,CAClC,UAAU,EAAE,cAAc,EAAE,EAC5B,UAAU,CAAC,EAAE,yBAAyB,GACrC,IAAI;IAWP;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;IAkDV,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAGpF;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|