@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,132 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright OpenSearch Contributors
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Simple Debug Utility
|
|
7
|
+
*
|
|
8
|
+
* Single source of truth: agent-health.config.json on server
|
|
9
|
+
*
|
|
10
|
+
* Server: Reads/writes agent-health.config.json
|
|
11
|
+
* Browser: Uses localStorage cache (synced via Settings page API calls)
|
|
12
|
+
*/
|
|
13
|
+
import fs from 'fs';
|
|
14
|
+
import path from 'path';
|
|
15
|
+
const isBrowser = typeof window !== 'undefined';
|
|
16
|
+
// Config v2: debug lives in the project runtime state file
|
|
17
|
+
// (<cwd>/.agent-health/state.json). In code-first mode (an
|
|
18
|
+
// agent-health.config.ts is present) it is in-memory only (DEBUG env still honored).
|
|
19
|
+
// Kept fs/path-only here because this module is isomorphic (browser + server);
|
|
20
|
+
// statePaths.ts is server-only.
|
|
21
|
+
const STATE_DIR = '.agent-health';
|
|
22
|
+
const STATE_FILE = 'state.json';
|
|
23
|
+
const AUTHORED_CONFIG_NAMES = ['agent-health.config.ts', 'agent-health.config.js', 'agent-health.config.mjs'];
|
|
24
|
+
function debugIsCodeFirst() {
|
|
25
|
+
// Mirror statePaths.isCodeFirstMode: an authored config at project OR user
|
|
26
|
+
// scope (~/.agent-health/) means code-first. os.homedir() is avoided so this
|
|
27
|
+
// isomorphic module stays browser-safe; this path only runs server-side.
|
|
28
|
+
const home = process.env.HOME || process.env.USERPROFILE || '';
|
|
29
|
+
return AUTHORED_CONFIG_NAMES.some((n) => fs.existsSync(path.join(process.cwd(), n)) ||
|
|
30
|
+
(!!home && fs.existsSync(path.join(home, STATE_DIR, n))));
|
|
31
|
+
}
|
|
32
|
+
function debugStatePath() {
|
|
33
|
+
return path.join(process.cwd(), STATE_DIR, STATE_FILE);
|
|
34
|
+
}
|
|
35
|
+
// Server-side: persist debug state in the runtime state file
|
|
36
|
+
let serverDebugEnabled = false;
|
|
37
|
+
// Initialize server debug state from the state file (ui-first) or env var
|
|
38
|
+
if (!isBrowser) {
|
|
39
|
+
try {
|
|
40
|
+
const statePath = debugStatePath();
|
|
41
|
+
if (!debugIsCodeFirst() && fs.existsSync(statePath)) {
|
|
42
|
+
const config = JSON.parse(fs.readFileSync(statePath, 'utf-8')) || {};
|
|
43
|
+
serverDebugEnabled = config.debug === true;
|
|
44
|
+
}
|
|
45
|
+
else if (process.env?.DEBUG === 'true') {
|
|
46
|
+
serverDebugEnabled = true;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
// Ignore read errors, fall back to env var
|
|
51
|
+
if (process.env?.DEBUG === 'true') {
|
|
52
|
+
serverDebugEnabled = true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Check if debug mode is enabled
|
|
58
|
+
* Server: reads from memory (loaded from agent-health.config.json)
|
|
59
|
+
* Browser: reads from localStorage cache (synced by Settings page)
|
|
60
|
+
*/
|
|
61
|
+
export function isDebugEnabled() {
|
|
62
|
+
if (isBrowser) {
|
|
63
|
+
try {
|
|
64
|
+
return localStorage.getItem('agenteval_debug') === 'true';
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return serverDebugEnabled;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Set debug state
|
|
74
|
+
* Server: updates memory + persists to agent-health.config.json
|
|
75
|
+
* Browser: updates localStorage cache (Settings page also calls /api/debug)
|
|
76
|
+
*/
|
|
77
|
+
export function setDebugEnabled(enabled) {
|
|
78
|
+
if (isBrowser) {
|
|
79
|
+
try {
|
|
80
|
+
localStorage.setItem('agenteval_debug', String(enabled));
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// Ignore errors (e.g. private browsing)
|
|
84
|
+
}
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
// Server-side: update memory + persist to the runtime state file
|
|
88
|
+
serverDebugEnabled = enabled;
|
|
89
|
+
// Code-first mode: the state file is ignored; keep debug in-memory only.
|
|
90
|
+
if (debugIsCodeFirst()) {
|
|
91
|
+
console.info(`[Debug] code-first mode (agent-health.config.ts present): debug ${enabled ? 'enabled' : 'disabled'} in-memory only (not persisted)`);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
try {
|
|
95
|
+
const dir = path.join(process.cwd(), STATE_DIR);
|
|
96
|
+
const statePath = debugStatePath();
|
|
97
|
+
let config = {};
|
|
98
|
+
if (fs.existsSync(statePath)) {
|
|
99
|
+
const parsed = JSON.parse(fs.readFileSync(statePath, 'utf-8'));
|
|
100
|
+
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
101
|
+
console.warn(`[Debug] State file contains non-object content, skipping write to avoid clobber`);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
config = parsed;
|
|
105
|
+
}
|
|
106
|
+
config.debug = enabled;
|
|
107
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
108
|
+
fs.writeFileSync(statePath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
109
|
+
console.info(`[Debug] Debug mode ${enabled ? 'enabled' : 'disabled'}, persisted to ${STATE_DIR}/${STATE_FILE}`);
|
|
110
|
+
}
|
|
111
|
+
catch (err) {
|
|
112
|
+
console.warn(`[Debug] Failed to persist debug state:`, err);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Debug log - only shown when debug mode is enabled
|
|
117
|
+
* Use for verbose/detailed logs that are noisy in normal operation
|
|
118
|
+
*/
|
|
119
|
+
export function debug(module, ...args) {
|
|
120
|
+
if (isDebugEnabled()) {
|
|
121
|
+
console.debug(`[${module}]`, ...args);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Standard log levels - always available, use appropriately:
|
|
126
|
+
* - console.error() - errors
|
|
127
|
+
* - console.warn() - warnings
|
|
128
|
+
* - console.info() - important milestones (connection established, eval complete)
|
|
129
|
+
* - console.log() - normal operational logs
|
|
130
|
+
* - debug() - verbose details (raw data, classifications, etc.)
|
|
131
|
+
*/
|
|
132
|
+
//# sourceMappingURL=debug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../debug.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Startup-diagnostic gating.
|
|
3
|
+
*
|
|
4
|
+
* Informational startup lines (`[Connectors] … registered`, `[Config] …`) are
|
|
5
|
+
* useful in interactive use and in the long-running server's own log stream,
|
|
6
|
+
* but they MUST NOT corrupt machine-readable CLI output. `console.log` writes
|
|
7
|
+
* to stdout, which is exactly the channel `agent-health list … --output json`
|
|
8
|
+
* needs to keep clean for `| jq` / `python -m json.tool`.
|
|
9
|
+
*
|
|
10
|
+
* `canLogStartupDiagnosticsToStdout()` decides whether those lines may go to
|
|
11
|
+
* stdout. It returns false (suppress) when the current invocation is a CLI
|
|
12
|
+
* command whose stdout is being consumed by a machine:
|
|
13
|
+
* - `--output json` / `-o json` / `--output=json` was requested, or
|
|
14
|
+
* - `--quiet` / `-q`, or
|
|
15
|
+
* - stdout is not an interactive TTY (piped to `| jq`, redirected to a file).
|
|
16
|
+
*
|
|
17
|
+
* The long-running server is exempt: its stdout IS its log stream (often a
|
|
18
|
+
* non-TTY pipe under a process manager / tunnel), so its startup diagnostics
|
|
19
|
+
* always pass through.
|
|
20
|
+
*/
|
|
21
|
+
export declare function canLogStartupDiagnosticsToStdout(): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Convenience: emit an informational startup diagnostic to stdout, but only
|
|
24
|
+
* when it won't corrupt machine-readable output (see
|
|
25
|
+
* `canLogStartupDiagnosticsToStdout`). A no-op otherwise.
|
|
26
|
+
*/
|
|
27
|
+
export declare function logStartupDiagnostic(...args: unknown[]): void;
|
|
28
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../diagnostics.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gCAAgC,IAAI,OAAO,CAoB1D;AAUD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAK7D"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright OpenSearch Contributors
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Startup-diagnostic gating.
|
|
7
|
+
*
|
|
8
|
+
* Informational startup lines (`[Connectors] … registered`, `[Config] …`) are
|
|
9
|
+
* useful in interactive use and in the long-running server's own log stream,
|
|
10
|
+
* but they MUST NOT corrupt machine-readable CLI output. `console.log` writes
|
|
11
|
+
* to stdout, which is exactly the channel `agent-health list … --output json`
|
|
12
|
+
* needs to keep clean for `| jq` / `python -m json.tool`.
|
|
13
|
+
*
|
|
14
|
+
* `canLogStartupDiagnosticsToStdout()` decides whether those lines may go to
|
|
15
|
+
* stdout. It returns false (suppress) when the current invocation is a CLI
|
|
16
|
+
* command whose stdout is being consumed by a machine:
|
|
17
|
+
* - `--output json` / `-o json` / `--output=json` was requested, or
|
|
18
|
+
* - `--quiet` / `-q`, or
|
|
19
|
+
* - stdout is not an interactive TTY (piped to `| jq`, redirected to a file).
|
|
20
|
+
*
|
|
21
|
+
* The long-running server is exempt: its stdout IS its log stream (often a
|
|
22
|
+
* non-TTY pipe under a process manager / tunnel), so its startup diagnostics
|
|
23
|
+
* always pass through.
|
|
24
|
+
*/
|
|
25
|
+
export function canLogStartupDiagnosticsToStdout() {
|
|
26
|
+
// Server process: stdout is its own log stream, not the CLI's data channel.
|
|
27
|
+
if (isServerProcess())
|
|
28
|
+
return true;
|
|
29
|
+
const args = process.argv.slice(2);
|
|
30
|
+
// Explicit quiet.
|
|
31
|
+
if (args.includes('--quiet') || args.includes('-q'))
|
|
32
|
+
return false;
|
|
33
|
+
// Structured output requested (the documented breakage: list … --output json).
|
|
34
|
+
for (let i = 0; i < args.length; i++) {
|
|
35
|
+
const a = args[i];
|
|
36
|
+
if ((a === '--output' || a === '-o') && /^json$/i.test(args[i + 1] ?? ''))
|
|
37
|
+
return false;
|
|
38
|
+
if (/^--output=json$/i.test(a))
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
// Piped or redirected stdout (| jq, > file): keep it machine-clean.
|
|
42
|
+
if (process.stdout.isTTY !== true)
|
|
43
|
+
return false;
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
function isServerProcess() {
|
|
47
|
+
if (process.env.AGENT_HEALTH_SERVER === '1')
|
|
48
|
+
return true;
|
|
49
|
+
const entry = process.argv[1] ?? '';
|
|
50
|
+
// server/dist/index.js (built) or server.ts / server/index.ts (tsx dev).
|
|
51
|
+
return /(?:^|[/\\])server[/\\](?:dist[/\\])?index\.(?:js|ts)$/.test(entry)
|
|
52
|
+
|| /(?:^|[/\\])server\.ts$/.test(entry);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Convenience: emit an informational startup diagnostic to stdout, but only
|
|
56
|
+
* when it won't corrupt machine-readable output (see
|
|
57
|
+
* `canLogStartupDiagnosticsToStdout`). A no-op otherwise.
|
|
58
|
+
*/
|
|
59
|
+
export function logStartupDiagnostic(...args) {
|
|
60
|
+
if (canLogStartupDiagnosticsToStdout()) {
|
|
61
|
+
// eslint-disable-next-line no-console
|
|
62
|
+
console.log(...args);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../diagnostics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,gCAAgC;IAC9C,4EAA4E;IAC5E,IAAI,eAAe,EAAE;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,kBAAkB;IAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAElE,+EAA+E;IAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QACxF,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAC/C,CAAC;IAED,oEAAoE;IACpE,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEhD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACzD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,yEAAyE;IACzE,OAAO,uDAAuD,CAAC,IAAI,CAAC,KAAK,CAAC;WACrE,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAG,IAAe;IACrD,IAAI,gCAAgC,EAAE,EAAE,CAAC;QACvC,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read an env var, preferring `newName`, falling back to `oldName`.
|
|
3
|
+
* Returns `undefined` when neither is set.
|
|
4
|
+
*
|
|
5
|
+
* On first use of the old name in the current process, prints a one-time
|
|
6
|
+
* deprecation warning to stderr.
|
|
7
|
+
*/
|
|
8
|
+
export declare function readEnv(newName: string, oldName: string): string | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Whether the old name is currently set (regardless of the new name).
|
|
11
|
+
* Useful for tests that exercise deprecation paths without triggering reads.
|
|
12
|
+
*/
|
|
13
|
+
export declare function isLegacyEnvSet(oldName: string): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Emit a one-time deprecation warning for an old env var name.
|
|
16
|
+
* Subsequent calls for the same `oldName` are no-ops.
|
|
17
|
+
*
|
|
18
|
+
* Suppressed when AH_QUIET_DEPRECATIONS=1 (also accepts the old prefix
|
|
19
|
+
* AGENT_HEALTH_QUIET_DEPRECATIONS=1) so tests and CI can stay quiet.
|
|
20
|
+
*/
|
|
21
|
+
export declare function warnDeprecated(oldName: string, newName: string): void;
|
|
22
|
+
/**
|
|
23
|
+
* TEST-ONLY: reset the warned set so a single test process can exercise
|
|
24
|
+
* multiple deprecation paths without one suppressing the next.
|
|
25
|
+
*/
|
|
26
|
+
export declare function _resetDeprecationCacheForTests(): void;
|
|
27
|
+
//# sourceMappingURL=envCompat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envCompat.d.ts","sourceRoot":"","sources":["../../envCompat.ts"],"names":[],"mappings":"AAuBA;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW5E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAiBrE;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAErD"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright OpenSearch Contributors
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Environment Variable Compatibility Layer
|
|
7
|
+
*
|
|
8
|
+
* Soft-deprecation helper for the `AGENT_HEALTH_*` → `AH_*` env var rename.
|
|
9
|
+
*
|
|
10
|
+
* Read sites should prefer the new `AH_*` name but fall back to the old
|
|
11
|
+
* `AGENT_HEALTH_*` name for one release. Old names emit a one-time
|
|
12
|
+
* deprecation warning per process.
|
|
13
|
+
*
|
|
14
|
+
* Example:
|
|
15
|
+
*
|
|
16
|
+
* const port = readEnv('AH_PORT', 'AGENT_HEALTH_PORT');
|
|
17
|
+
*
|
|
18
|
+
* The old name is scheduled for removal in a future major release.
|
|
19
|
+
*/
|
|
20
|
+
const warned = new Set();
|
|
21
|
+
/**
|
|
22
|
+
* Read an env var, preferring `newName`, falling back to `oldName`.
|
|
23
|
+
* Returns `undefined` when neither is set.
|
|
24
|
+
*
|
|
25
|
+
* On first use of the old name in the current process, prints a one-time
|
|
26
|
+
* deprecation warning to stderr.
|
|
27
|
+
*/
|
|
28
|
+
export function readEnv(newName, oldName) {
|
|
29
|
+
const newVal = process.env[newName];
|
|
30
|
+
if (newVal !== undefined)
|
|
31
|
+
return newVal;
|
|
32
|
+
const oldVal = process.env[oldName];
|
|
33
|
+
if (oldVal !== undefined) {
|
|
34
|
+
warnDeprecated(oldName, newName);
|
|
35
|
+
return oldVal;
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Whether the old name is currently set (regardless of the new name).
|
|
41
|
+
* Useful for tests that exercise deprecation paths without triggering reads.
|
|
42
|
+
*/
|
|
43
|
+
export function isLegacyEnvSet(oldName) {
|
|
44
|
+
return process.env[oldName] !== undefined;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Emit a one-time deprecation warning for an old env var name.
|
|
48
|
+
* Subsequent calls for the same `oldName` are no-ops.
|
|
49
|
+
*
|
|
50
|
+
* Suppressed when AH_QUIET_DEPRECATIONS=1 (also accepts the old prefix
|
|
51
|
+
* AGENT_HEALTH_QUIET_DEPRECATIONS=1) so tests and CI can stay quiet.
|
|
52
|
+
*/
|
|
53
|
+
export function warnDeprecated(oldName, newName) {
|
|
54
|
+
if (warned.has(oldName))
|
|
55
|
+
return;
|
|
56
|
+
warned.add(oldName);
|
|
57
|
+
if (process.env.AH_QUIET_DEPRECATIONS === '1' ||
|
|
58
|
+
process.env.AGENT_HEALTH_QUIET_DEPRECATIONS === '1') {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
// Use console.warn so this surfaces in normal stderr but doesn't crash
|
|
62
|
+
// structured-logging consumers. Prefix matches the rest of the codebase.
|
|
63
|
+
console.warn(`[agent-health] Deprecated env var ${oldName} is set; please rename it to ${newName}. ` +
|
|
64
|
+
`The old name will be removed in a future release.`);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* TEST-ONLY: reset the warned set so a single test process can exercise
|
|
68
|
+
* multiple deprecation paths without one suppressing the next.
|
|
69
|
+
*/
|
|
70
|
+
export function _resetDeprecationCacheForTests() {
|
|
71
|
+
warned.clear();
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=envCompat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envCompat.js","sourceRoot":"","sources":["../../envCompat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;AAEjC;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,OAAe;IACtD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAExC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,OAAe;IAC7D,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO;IAChC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEpB,IACE,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,GAAG;QACzC,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,GAAG,EACnD,CAAC;QACD,OAAO;IACT,CAAC;IAED,uEAAuE;IACvE,yEAAyE;IACzE,OAAO,CAAC,IAAI,CACV,qCAAqC,OAAO,gCAAgC,OAAO,IAAI;QACvF,mDAAmD,CACpD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,8BAA8B;IAC5C,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Walk up from `startDir` looking for the agent-health package root.
|
|
3
|
+
*
|
|
4
|
+
* @throws if no package.json is found within `maxLevels` parents.
|
|
5
|
+
*/
|
|
6
|
+
export declare function findPackageRootFrom(startDir: string, maxLevels?: number): string;
|
|
7
|
+
//# sourceMappingURL=findPackageRoot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findPackageRoot.d.ts","sourceRoot":"","sources":["../../findPackageRoot.ts"],"names":[],"mappings":"AAyBA;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,MAA2B,GACrC,MAAM,CA6BR"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright OpenSearch Contributors
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Pure helper to locate the agent-health package root from any starting
|
|
7
|
+
* directory.
|
|
8
|
+
*
|
|
9
|
+
* Kept in its own file (no `import.meta.url`) so it can be unit-tested with
|
|
10
|
+
* ts-jest's CommonJS loader without needing module mocks.
|
|
11
|
+
*
|
|
12
|
+
* The walk preferentially anchors on the agent-health package.json (matched
|
|
13
|
+
* by `name`) so we don't stop at a parent monorepo root or a wrapper
|
|
14
|
+
* package.json. If no matching package.json is found within `maxLevels`
|
|
15
|
+
* (e.g., the user has forked and renamed the package), we fall back to the
|
|
16
|
+
* nearest package.json on the path — best-effort.
|
|
17
|
+
*/
|
|
18
|
+
import { existsSync, readFileSync } from 'fs';
|
|
19
|
+
import { dirname, join, resolve } from 'path';
|
|
20
|
+
const PACKAGE_NAME = '@opensearch-project/agent-health';
|
|
21
|
+
const DEFAULT_MAX_LEVELS = 6;
|
|
22
|
+
/**
|
|
23
|
+
* Walk up from `startDir` looking for the agent-health package root.
|
|
24
|
+
*
|
|
25
|
+
* @throws if no package.json is found within `maxLevels` parents.
|
|
26
|
+
*/
|
|
27
|
+
export function findPackageRootFrom(startDir, maxLevels = DEFAULT_MAX_LEVELS) {
|
|
28
|
+
// First pass: prefer a package.json with the canonical agent-health name.
|
|
29
|
+
let dir = resolve(startDir);
|
|
30
|
+
let firstPkgRoot = null;
|
|
31
|
+
for (let i = 0; i <= maxLevels; i++) {
|
|
32
|
+
const pkgPath = join(dir, 'package.json');
|
|
33
|
+
if (existsSync(pkgPath)) {
|
|
34
|
+
if (firstPkgRoot === null)
|
|
35
|
+
firstPkgRoot = dir;
|
|
36
|
+
try {
|
|
37
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
|
|
38
|
+
if (pkg && pkg.name === PACKAGE_NAME)
|
|
39
|
+
return dir;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
/* unreadable / unparseable package.json — keep walking */
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const parent = dirname(dir);
|
|
46
|
+
if (parent === dir)
|
|
47
|
+
break;
|
|
48
|
+
dir = parent;
|
|
49
|
+
}
|
|
50
|
+
// Fallback: nearest package.json regardless of name. Covers forks that
|
|
51
|
+
// rename the package and unusual local layouts.
|
|
52
|
+
if (firstPkgRoot !== null)
|
|
53
|
+
return firstPkgRoot;
|
|
54
|
+
throw new Error(`Could not locate package root for ${PACKAGE_NAME} from ${startDir} ` +
|
|
55
|
+
`within ${maxLevels} parent directories`);
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=findPackageRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findPackageRoot.js","sourceRoot":"","sources":["../../findPackageRoot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE9C,MAAM,YAAY,GAAG,kCAAkC,CAAC;AACxD,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,YAAoB,kBAAkB;IAEtC,0EAA0E;IAC1E,IAAI,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,YAAY,GAAkB,IAAI,CAAC;IAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC1C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,IAAI,YAAY,KAAK,IAAI;gBAAE,YAAY,GAAG,GAAG,CAAC;YAC9C,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;gBACtD,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;oBAAE,OAAO,GAAG,CAAC;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,0DAA0D;YAC5D,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IAED,uEAAuE;IACvE,gDAAgD;IAChD,IAAI,YAAY,KAAK,IAAI;QAAE,OAAO,YAAY,CAAC;IAE/C,MAAM,IAAI,KAAK,CACb,qCAAqC,YAAY,SAAS,QAAQ,GAAG;QACrE,UAAU,SAAS,qBAAqB,CACzC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Lifecycle Hook Utilities
|
|
3
|
+
* Executes user-defined hooks from agent-health.config.ts
|
|
4
|
+
*/
|
|
5
|
+
import type { AgentHooks, BeforeRequestContext, AfterResponseContext, BuildTrajectoryContext, TrajectoryStep } from '../types/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Execute the beforeRequest hook if defined on the agent.
|
|
8
|
+
*
|
|
9
|
+
* - Returns the original context unchanged if no hook is defined
|
|
10
|
+
* - Validates the hook return value has required fields
|
|
11
|
+
* - Wraps errors with a descriptive message including the agent key
|
|
12
|
+
*/
|
|
13
|
+
export declare function executeBeforeRequestHook(hooks: AgentHooks | undefined, context: BeforeRequestContext, agentKey: string): Promise<BeforeRequestContext>;
|
|
14
|
+
/**
|
|
15
|
+
* Execute the afterResponse hook if defined on the agent.
|
|
16
|
+
*
|
|
17
|
+
* Use this hook to extract custom runId formats from agent responses
|
|
18
|
+
* (e.g., PER agent's memory_id).
|
|
19
|
+
*
|
|
20
|
+
* - Returns the original context unchanged if no hook is defined
|
|
21
|
+
* - Validates the hook return value has required fields
|
|
22
|
+
* - Wraps errors with a descriptive message including the agent key
|
|
23
|
+
*/
|
|
24
|
+
export declare function executeAfterResponseHook(hooks: AgentHooks | undefined, context: AfterResponseContext, agentKey: string): Promise<AfterResponseContext>;
|
|
25
|
+
/**
|
|
26
|
+
* Execute the buildTrajectory hook if defined on the agent.
|
|
27
|
+
*
|
|
28
|
+
* Use this hook to customize trajectory extraction from OTEL traces
|
|
29
|
+
* for agents with custom span formats.
|
|
30
|
+
*
|
|
31
|
+
* - Returns null if no hook is defined
|
|
32
|
+
* - Validates the hook return value is an array
|
|
33
|
+
* - Wraps errors with a descriptive message including the agent key
|
|
34
|
+
*/
|
|
35
|
+
export declare function executeBuildTrajectoryHook(hooks: AgentHooks | undefined, context: BuildTrajectoryContext, agentKey: string): Promise<TrajectoryStep[] | null>;
|
|
36
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../hooks.ts"],"names":[],"mappings":"AAKA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9H;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC,CA6B/B;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC,CAoC/B;AAED;;;;;;;;;GASG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,CAkBlC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright OpenSearch Contributors
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { debug } from '../lib/debug.js';
|
|
6
|
+
/**
|
|
7
|
+
* Execute the beforeRequest hook if defined on the agent.
|
|
8
|
+
*
|
|
9
|
+
* - Returns the original context unchanged if no hook is defined
|
|
10
|
+
* - Validates the hook return value has required fields
|
|
11
|
+
* - Wraps errors with a descriptive message including the agent key
|
|
12
|
+
*/
|
|
13
|
+
export async function executeBeforeRequestHook(hooks, context, agentKey) {
|
|
14
|
+
if (!hooks?.beforeRequest) {
|
|
15
|
+
return context;
|
|
16
|
+
}
|
|
17
|
+
debug('Hooks', `Executing beforeRequest hook for agent "${agentKey}"`);
|
|
18
|
+
try {
|
|
19
|
+
const result = await hooks.beforeRequest(context);
|
|
20
|
+
// Validate hook return value
|
|
21
|
+
if (!result || typeof result !== 'object') {
|
|
22
|
+
throw new Error('beforeRequest hook must return an object with endpoint, payload, and headers');
|
|
23
|
+
}
|
|
24
|
+
if (typeof result.endpoint !== 'string') {
|
|
25
|
+
throw new Error('beforeRequest hook must return an object with a string "endpoint" field');
|
|
26
|
+
}
|
|
27
|
+
if (!('payload' in result)) {
|
|
28
|
+
throw new Error('beforeRequest hook must return an object with a "payload" field');
|
|
29
|
+
}
|
|
30
|
+
if (!result.headers || typeof result.headers !== 'object') {
|
|
31
|
+
throw new Error('beforeRequest hook must return an object with an object "headers" field');
|
|
32
|
+
}
|
|
33
|
+
debug('Hooks', `beforeRequest hook for "${agentKey}" completed, endpoint:`, result.endpoint);
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
38
|
+
throw new Error(`beforeRequest hook failed for agent "${agentKey}": ${message}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Execute the afterResponse hook if defined on the agent.
|
|
43
|
+
*
|
|
44
|
+
* Use this hook to extract custom runId formats from agent responses
|
|
45
|
+
* (e.g., PER agent's memory_id).
|
|
46
|
+
*
|
|
47
|
+
* - Returns the original context unchanged if no hook is defined
|
|
48
|
+
* - Validates the hook return value has required fields
|
|
49
|
+
* - Wraps errors with a descriptive message including the agent key
|
|
50
|
+
*/
|
|
51
|
+
export async function executeAfterResponseHook(hooks, context, agentKey) {
|
|
52
|
+
if (!hooks?.afterResponse) {
|
|
53
|
+
return context;
|
|
54
|
+
}
|
|
55
|
+
debug('Hooks', `Executing afterResponse hook for agent "${agentKey}"`, {
|
|
56
|
+
hasResponse: !!context.response && Object.keys(context.response).length > 0,
|
|
57
|
+
trajectorySteps: context.trajectory.length,
|
|
58
|
+
runId: context.runId,
|
|
59
|
+
rawEventsCount: context.rawEvents?.length ?? 0,
|
|
60
|
+
hasMetadata: !!context.metadata,
|
|
61
|
+
});
|
|
62
|
+
try {
|
|
63
|
+
const result = await hooks.afterResponse(context);
|
|
64
|
+
// Validate hook return value
|
|
65
|
+
if (!result || typeof result !== 'object') {
|
|
66
|
+
throw new Error('afterResponse hook must return an object with response, trajectory, and optional runId');
|
|
67
|
+
}
|
|
68
|
+
if (!('response' in result)) {
|
|
69
|
+
throw new Error('afterResponse hook must return an object with a "response" field');
|
|
70
|
+
}
|
|
71
|
+
if (!Array.isArray(result.trajectory)) {
|
|
72
|
+
throw new Error('afterResponse hook must return an object with a "trajectory" array field');
|
|
73
|
+
}
|
|
74
|
+
debug('Hooks', `afterResponse hook for "${agentKey}" completed`, {
|
|
75
|
+
runId: result.runId,
|
|
76
|
+
trajectorySteps: result.trajectory.length,
|
|
77
|
+
});
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
82
|
+
throw new Error(`afterResponse hook failed for agent "${agentKey}": ${message}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Execute the buildTrajectory hook if defined on the agent.
|
|
87
|
+
*
|
|
88
|
+
* Use this hook to customize trajectory extraction from OTEL traces
|
|
89
|
+
* for agents with custom span formats.
|
|
90
|
+
*
|
|
91
|
+
* - Returns null if no hook is defined
|
|
92
|
+
* - Validates the hook return value is an array
|
|
93
|
+
* - Wraps errors with a descriptive message including the agent key
|
|
94
|
+
*/
|
|
95
|
+
export async function executeBuildTrajectoryHook(hooks, context, agentKey) {
|
|
96
|
+
if (!hooks?.buildTrajectory) {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
const result = await hooks.buildTrajectory(context);
|
|
101
|
+
// Validate hook return value
|
|
102
|
+
if (result !== null && !Array.isArray(result)) {
|
|
103
|
+
throw new Error('buildTrajectory hook must return an array of TrajectoryStep objects or null');
|
|
104
|
+
}
|
|
105
|
+
return result;
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
109
|
+
throw new Error(`buildTrajectory hook failed for agent "${agentKey}": ${message}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../hooks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAA6B,EAC7B,OAA6B,EAC7B,QAAgB;IAEhB,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,OAAO,EAAE,2CAA2C,QAAQ,GAAG,CAAC,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAElD,6BAA6B;QAC7B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAC7F,CAAC;QAED,KAAK,CAAC,OAAO,EAAE,2BAA2B,QAAQ,wBAAwB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7F,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,MAAM,OAAO,EAAE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAA6B,EAC7B,OAA6B,EAC7B,QAAgB;IAEhB,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,OAAO,EAAE,2CAA2C,QAAQ,GAAG,EAAE;QACrE,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;QAC3E,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM;QAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,cAAc,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;QAC9C,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ;KAChC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAElD,6BAA6B;QAC7B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;QAC5G,CAAC;QACD,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;QAED,KAAK,CAAC,OAAO,EAAE,2BAA2B,QAAQ,aAAa,EAAE;YAC/D,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM;SAC1C,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,MAAM,OAAO,EAAE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,KAA6B,EAC7B,OAA+B,EAC/B,QAAgB;IAEhB,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEpD,6BAA6B;QAC7B,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QACjG,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,0CAA0C,QAAQ,MAAM,OAAO,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public API for @opensearch-project/agent-health
|
|
3
|
+
*
|
|
4
|
+
* Users can import from this module in their agent-health.config.ts files:
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { defineConfig, RESTConnector } from '@opensearch-project/agent-health';
|
|
9
|
+
*
|
|
10
|
+
* export default defineConfig({
|
|
11
|
+
* agents: [
|
|
12
|
+
* {
|
|
13
|
+
* key: 'my-agent',
|
|
14
|
+
* name: 'My Agent',
|
|
15
|
+
* endpoint: 'https://api.example.com/chat',
|
|
16
|
+
* connectorType: 'rest',
|
|
17
|
+
* },
|
|
18
|
+
* ],
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export { defineConfig } from './config/defineConfig.js';
|
|
23
|
+
export type { UserConfig, UserAgentConfig, UserModelConfig, ResolvedConfig, ReporterConfig, JudgeConfig, } from './config/types.js';
|
|
24
|
+
export type { BeforeRequestContext, AgentHooks, JudgeContext, JudgeResult, BuildTrajectoryContext, } from '../types/index.js';
|
|
25
|
+
export type { Span, TrajectoryStep } from '../types/index.js';
|
|
26
|
+
export { fetchTracesByRunIds as fetchTraces } from '../services/traces/index.js';
|
|
27
|
+
export type { AgentConnector, ConnectorProtocol, ConnectorAuth, ConnectorRequest, ConnectorResponse, } from '../services/connectors/types.js';
|
|
28
|
+
export { BaseConnector } from '../services/connectors/base/BaseConnector.js';
|
|
29
|
+
export { AGUIStreamingConnector } from '../services/connectors/agui/AGUIStreamingConnector.js';
|
|
30
|
+
export { RESTConnector } from '../services/connectors/rest/RESTConnector.js';
|
|
31
|
+
export { SubprocessConnector } from '../services/connectors/subprocess/SubprocessConnector.js';
|
|
32
|
+
export { ClaudeCodeConnector } from '../services/connectors/claude-code/ClaudeCodeConnector.js';
|
|
33
|
+
export { MockConnector } from '../services/connectors/mock/MockConnector.js';
|
|
34
|
+
export { connectorRegistry, registerConnector } from '../services/connectors/registry.js';
|
|
35
|
+
export type { ConnectorRegistry } from '../services/connectors/types.js';
|
|
36
|
+
export { test, describe, beforeAll, afterAll, beforeEach, afterEach, judge } from './testCases/index.js';
|
|
37
|
+
export type { TestOptions, CodeTestCase, EvalResult, TestFixtures, TestInfo, HookKind, HookFn, RegisteredHook, } from './testCases/types.js';
|
|
38
|
+
export type { AgentFixture, AgentRunOptions } from './testCases/index.js';
|
|
39
|
+
export type { Verdict, JudgeVerdict, JudgeRole, JudgeFn } from './testCases/index.js';
|
|
40
|
+
export { defineEvaluator, evaluate } from './testCases/index.js';
|
|
41
|
+
export type { EvaluatorContext, EvaluatorResult, EvaluatorFn, EvaluateFn } from './testCases/index.js';
|
|
42
|
+
export { expect } from './matchers/index.js';
|
|
43
|
+
export type { TracesAccessor, MatcherResult, MatcherMethod } from './matchers/index.js';
|
|
44
|
+
export { source, workflow, FeedbackLedger, consolidate, mapPool } from './workflow/index.js';
|
|
45
|
+
export { profileSpans, buildAgentEditsPrompt, parseAgentEdits, deriveAgentEdits, } from './workflow/index.js';
|
|
46
|
+
export type { WorkItem, SourceFetchFn, SourceHandle, AgentRunResult, StagedItem, Cluster, WritesMode, RunAgentOptions, WorkflowConfig, PRRequest, LedgerEntry, PoolStats, Workflow, WorkflowContext, WorkflowRunOptions, WorkflowResult, ForEachOptions, SessionProfile, AgentEdit, ReasonFn, } from './workflow/index.js';
|
|
47
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,YAAY,EACV,UAAU,EACV,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAGjF,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAG7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAG7E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAG1F,YAAY,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAUzE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACzG,YAAY,EACV,WAAW,EACX,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC1E,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOvG,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOxF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,cAAc,EACd,UAAU,EACV,OAAO,EACP,UAAU,EACV,eAAe,EACf,cAAc,EACd,SAAS,EACT,WAAW,EACX,SAAS,EACT,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,EACd,SAAS,EACT,QAAQ,GACT,MAAM,qBAAqB,CAAC"}
|