@bluefly/openstandardagents 0.4.3 → 0.4.5
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/.version.json +3 -3
- package/CHANGELOG.md +770 -0
- package/README.md +497 -360
- package/bin/ossa +3 -0
- package/dist/.version.json +7 -0
- package/dist/adapters/a2a/__tests__/mcp-integration.spec.d.ts +5 -0
- package/dist/adapters/a2a/__tests__/mcp-integration.spec.d.ts.map +1 -0
- package/dist/adapters/a2a/__tests__/mcp-integration.spec.js +267 -0
- package/dist/adapters/a2a/__tests__/mcp-integration.spec.js.map +1 -0
- package/dist/adapters/a2a/__tests__/mcp-transport.spec.d.ts +5 -0
- package/dist/adapters/a2a/__tests__/mcp-transport.spec.d.ts.map +1 -0
- package/dist/adapters/a2a/__tests__/mcp-transport.spec.js +202 -0
- package/dist/adapters/a2a/__tests__/mcp-transport.spec.js.map +1 -0
- package/dist/adapters/a2a/a2a-protocol.d.ts +398 -0
- package/dist/adapters/a2a/a2a-protocol.d.ts.map +1 -0
- package/dist/adapters/a2a/a2a-protocol.js +257 -0
- package/dist/adapters/a2a/a2a-protocol.js.map +1 -0
- package/dist/adapters/a2a/a2a-tool.d.ts +110 -0
- package/dist/adapters/a2a/a2a-tool.d.ts.map +1 -0
- package/dist/adapters/a2a/a2a-tool.js +349 -0
- package/dist/adapters/a2a/a2a-tool.js.map +1 -0
- package/dist/adapters/a2a/agent-mesh.d.ts +195 -0
- package/dist/adapters/a2a/agent-mesh.d.ts.map +1 -0
- package/dist/adapters/a2a/agent-mesh.js +347 -0
- package/dist/adapters/a2a/agent-mesh.js.map +1 -0
- package/dist/adapters/a2a/delegation.d.ts +232 -0
- package/dist/adapters/a2a/delegation.d.ts.map +1 -0
- package/dist/adapters/a2a/delegation.js +236 -0
- package/dist/adapters/a2a/delegation.js.map +1 -0
- package/dist/adapters/a2a/index.d.ts +18 -0
- package/dist/adapters/a2a/index.d.ts.map +1 -0
- package/dist/adapters/a2a/index.js +24 -0
- package/dist/adapters/a2a/index.js.map +1 -0
- package/dist/adapters/a2a/mcp-integration.d.ts +258 -0
- package/dist/adapters/a2a/mcp-integration.d.ts.map +1 -0
- package/dist/adapters/a2a/mcp-integration.js +328 -0
- package/dist/adapters/a2a/mcp-integration.js.map +1 -0
- package/dist/adapters/a2a/mcp-transport.d.ts +118 -0
- package/dist/adapters/a2a/mcp-transport.d.ts.map +1 -0
- package/dist/adapters/a2a/mcp-transport.js +287 -0
- package/dist/adapters/a2a/mcp-transport.js.map +1 -0
- package/dist/adapters/a2a/swarm-orchestration.d.ts +278 -0
- package/dist/adapters/a2a/swarm-orchestration.d.ts.map +1 -0
- package/dist/adapters/a2a/swarm-orchestration.js +322 -0
- package/dist/adapters/a2a/swarm-orchestration.js.map +1 -0
- package/dist/adapters/agent-skills/exporter.d.ts +98 -0
- package/dist/adapters/agent-skills/exporter.d.ts.map +1 -0
- package/dist/adapters/agent-skills/exporter.js +460 -0
- package/dist/adapters/agent-skills/exporter.js.map +1 -0
- package/dist/adapters/agent-skills/index.d.ts +7 -0
- package/dist/adapters/agent-skills/index.d.ts.map +1 -0
- package/dist/adapters/agent-skills/index.js +6 -0
- package/dist/adapters/agent-skills/index.js.map +1 -0
- package/dist/adapters/anthropic/claude-optimizations.d.ts +44 -0
- package/dist/adapters/anthropic/claude-optimizations.d.ts.map +1 -0
- package/dist/adapters/anthropic/claude-optimizations.js +187 -0
- package/dist/adapters/anthropic/claude-optimizations.js.map +1 -0
- package/dist/adapters/anthropic/client.d.ts +33 -121
- package/dist/adapters/anthropic/client.d.ts.map +1 -1
- package/dist/adapters/anthropic/client.js +67 -334
- package/dist/adapters/anthropic/client.js.map +1 -1
- package/dist/adapters/anthropic/index.d.ts +4 -25
- package/dist/adapters/anthropic/index.d.ts.map +1 -1
- package/dist/adapters/anthropic/index.js +5 -25
- package/dist/adapters/anthropic/index.js.map +1 -1
- package/dist/adapters/anthropic/messages.d.ts +3 -3
- package/dist/adapters/anthropic/messages.d.ts.map +1 -1
- package/dist/adapters/anthropic/messages.js +60 -99
- package/dist/adapters/anthropic/messages.js.map +1 -1
- package/dist/adapters/anthropic/tools.d.ts +0 -15
- package/dist/adapters/anthropic/tools.d.ts.map +1 -1
- package/dist/adapters/anthropic/tools.js +20 -84
- package/dist/adapters/anthropic/tools.js.map +1 -1
- package/dist/adapters/base/adapter.interface.d.ts +67 -2
- package/dist/adapters/base/adapter.interface.d.ts.map +1 -1
- package/dist/adapters/base/adapter.interface.js +41 -0
- package/dist/adapters/base/adapter.interface.js.map +1 -1
- package/dist/adapters/base/base-exporter.d.ts +108 -0
- package/dist/adapters/base/base-exporter.d.ts.map +1 -0
- package/dist/adapters/base/base-exporter.js +165 -0
- package/dist/adapters/base/base-exporter.js.map +1 -0
- package/dist/adapters/base/common-file-generator.d.ts +217 -0
- package/dist/adapters/base/common-file-generator.d.ts.map +1 -0
- package/dist/adapters/base/common-file-generator.js +682 -0
- package/dist/adapters/base/common-file-generator.js.map +1 -0
- package/dist/adapters/base/index.d.ts +23 -0
- package/dist/adapters/base/index.d.ts.map +1 -0
- package/dist/adapters/base/index.js +29 -0
- package/dist/adapters/base/index.js.map +1 -0
- package/dist/adapters/base/manifest-validator.d.ts +84 -0
- package/dist/adapters/base/manifest-validator.d.ts.map +1 -0
- package/dist/adapters/base/manifest-validator.js +266 -0
- package/dist/adapters/base/manifest-validator.js.map +1 -0
- package/dist/adapters/base/perfect-agent-utils.d.ts +29 -0
- package/dist/adapters/base/perfect-agent-utils.d.ts.map +1 -0
- package/dist/adapters/base/perfect-agent-utils.js +234 -0
- package/dist/adapters/base/perfect-agent-utils.js.map +1 -0
- package/dist/adapters/base/template-engine.d.ts +52 -0
- package/dist/adapters/base/template-engine.d.ts.map +1 -0
- package/dist/adapters/base/template-engine.js +157 -0
- package/dist/adapters/base/template-engine.js.map +1 -0
- package/dist/adapters/base/tool-params.d.ts +42 -0
- package/dist/adapters/base/tool-params.d.ts.map +1 -0
- package/dist/adapters/base/tool-params.js +123 -0
- package/dist/adapters/base/tool-params.js.map +1 -0
- package/dist/adapters/claude-code/adapter.d.ts +64 -0
- package/dist/adapters/claude-code/adapter.d.ts.map +1 -0
- package/dist/adapters/claude-code/adapter.js +336 -0
- package/dist/adapters/claude-code/adapter.js.map +1 -0
- package/dist/adapters/claude-code/types.d.ts +154 -0
- package/dist/adapters/claude-code/types.d.ts.map +1 -0
- package/dist/adapters/claude-code/types.js +6 -0
- package/dist/adapters/claude-code/types.js.map +1 -0
- package/dist/adapters/crewai/adapter.d.ts +54 -1
- package/dist/adapters/crewai/adapter.d.ts.map +1 -1
- package/dist/adapters/crewai/adapter.js +1494 -41
- package/dist/adapters/crewai/adapter.js.map +1 -1
- package/dist/adapters/crewai/converter.d.ts +8 -0
- package/dist/adapters/crewai/converter.d.ts.map +1 -1
- package/dist/adapters/crewai/converter.js +56 -25
- package/dist/adapters/crewai/converter.js.map +1 -1
- package/dist/adapters/cursor/adapter.d.ts +75 -0
- package/dist/adapters/cursor/adapter.d.ts.map +1 -0
- package/dist/adapters/cursor/adapter.js +474 -0
- package/dist/adapters/cursor/adapter.js.map +1 -0
- package/dist/adapters/cursor/types.d.ts +221 -0
- package/dist/adapters/cursor/types.d.ts.map +1 -0
- package/dist/adapters/cursor/types.js +6 -0
- package/dist/adapters/cursor/types.js.map +1 -0
- package/dist/adapters/docker/docker-exporter.d.ts +38 -0
- package/dist/adapters/docker/docker-exporter.d.ts.map +1 -0
- package/dist/adapters/docker/docker-exporter.js +648 -0
- package/dist/adapters/docker/docker-exporter.js.map +1 -0
- package/dist/adapters/docker/generators.d.ts +73 -7
- package/dist/adapters/docker/generators.d.ts.map +1 -1
- package/dist/adapters/docker/generators.js +733 -43
- package/dist/adapters/docker/generators.js.map +1 -1
- package/dist/adapters/docker/index.d.ts +4 -3
- package/dist/adapters/docker/index.d.ts.map +1 -1
- package/dist/adapters/docker/index.js +3 -2
- package/dist/adapters/docker/index.js.map +1 -1
- package/dist/adapters/docker/types.d.ts +70 -0
- package/dist/adapters/docker/types.d.ts.map +1 -1
- package/dist/adapters/drupal/adapter.d.ts +1 -0
- package/dist/adapters/drupal/adapter.d.ts.map +1 -1
- package/dist/adapters/drupal/adapter.js +5 -2
- package/dist/adapters/drupal/adapter.js.map +1 -1
- package/dist/adapters/drupal/generator.d.ts +1 -0
- package/dist/adapters/drupal/generator.d.ts.map +1 -1
- package/dist/adapters/drupal/generator.js +17 -9
- package/dist/adapters/drupal/generator.js.map +1 -1
- package/dist/adapters/drupal/index.d.ts +2 -1
- package/dist/adapters/drupal/index.d.ts.map +1 -1
- package/dist/adapters/drupal/index.js +3 -1
- package/dist/adapters/drupal/index.js.map +1 -1
- package/dist/adapters/drupal/manifest-exporter.d.ts +87 -0
- package/dist/adapters/drupal/manifest-exporter.d.ts.map +1 -0
- package/dist/adapters/drupal/manifest-exporter.js +406 -0
- package/dist/adapters/drupal/manifest-exporter.js.map +1 -0
- package/dist/adapters/gitlab/agent-generator.d.ts +103 -0
- package/dist/adapters/gitlab/agent-generator.d.ts.map +1 -0
- package/dist/adapters/gitlab/agent-generator.js +898 -0
- package/dist/adapters/gitlab/agent-generator.js.map +1 -0
- package/dist/adapters/gitlab/converter.d.ts +12 -2
- package/dist/adapters/gitlab/converter.d.ts.map +1 -1
- package/dist/adapters/gitlab/converter.js +19 -2
- package/dist/adapters/gitlab/converter.js.map +1 -1
- package/dist/adapters/gitlab/external-agent-generator.d.ts +70 -0
- package/dist/adapters/gitlab/external-agent-generator.d.ts.map +1 -0
- package/dist/adapters/gitlab/external-agent-generator.js +347 -0
- package/dist/adapters/gitlab/external-agent-generator.js.map +1 -0
- package/dist/adapters/gitlab/flow-generator.d.ts +73 -0
- package/dist/adapters/gitlab/flow-generator.d.ts.map +1 -0
- package/dist/adapters/gitlab/flow-generator.js +710 -0
- package/dist/adapters/gitlab/flow-generator.js.map +1 -0
- package/dist/adapters/gitlab/index.d.ts +10 -2
- package/dist/adapters/gitlab/index.d.ts.map +1 -1
- package/dist/adapters/gitlab/index.js +6 -1
- package/dist/adapters/gitlab/index.js.map +1 -1
- package/dist/adapters/gitlab/package-generator.d.ts +180 -0
- package/dist/adapters/gitlab/package-generator.d.ts.map +1 -0
- package/dist/adapters/gitlab/package-generator.js +2401 -0
- package/dist/adapters/gitlab/package-generator.js.map +1 -0
- package/dist/adapters/gitlab/router-generator.d.ts +113 -0
- package/dist/adapters/gitlab/router-generator.d.ts.map +1 -0
- package/dist/adapters/gitlab/router-generator.js +545 -0
- package/dist/adapters/gitlab/router-generator.js.map +1 -0
- package/dist/adapters/gitlab/trigger-generator.d.ts +154 -0
- package/dist/adapters/gitlab/trigger-generator.d.ts.map +1 -0
- package/dist/adapters/gitlab/trigger-generator.js +279 -0
- package/dist/adapters/gitlab/trigger-generator.js.map +1 -0
- package/dist/adapters/gitlab/types.d.ts +98 -0
- package/dist/adapters/gitlab/types.d.ts.map +1 -1
- package/dist/adapters/gitlab-duo/adapter.d.ts +1 -0
- package/dist/adapters/gitlab-duo/adapter.d.ts.map +1 -1
- package/dist/adapters/gitlab-duo/adapter.js +3 -0
- package/dist/adapters/gitlab-duo/adapter.js.map +1 -1
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +12 -0
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/kubernetes/generator.d.ts +93 -5
- package/dist/adapters/kubernetes/generator.d.ts.map +1 -1
- package/dist/adapters/kubernetes/generator.js +1286 -33
- package/dist/adapters/kubernetes/generator.js.map +1 -1
- package/dist/adapters/kubernetes/index.d.ts +2 -2
- package/dist/adapters/kubernetes/index.d.ts.map +1 -1
- package/dist/adapters/kubernetes/index.js +1 -1
- package/dist/adapters/kubernetes/kagent-crd-generator.d.ts +72 -0
- package/dist/adapters/kubernetes/kagent-crd-generator.d.ts.map +1 -0
- package/dist/adapters/kubernetes/kagent-crd-generator.js +237 -0
- package/dist/adapters/kubernetes/kagent-crd-generator.js.map +1 -0
- package/dist/adapters/kubernetes/types.d.ts +45 -0
- package/dist/adapters/kubernetes/types.d.ts.map +1 -1
- package/dist/adapters/langchain/adapter.d.ts +2 -9
- package/dist/adapters/langchain/adapter.d.ts.map +1 -1
- package/dist/adapters/langchain/adapter.js +38 -131
- package/dist/adapters/langchain/adapter.js.map +1 -1
- package/dist/adapters/langchain/converter.d.ts.map +1 -1
- package/dist/adapters/langchain/converter.js +17 -6
- package/dist/adapters/langchain/converter.js.map +1 -1
- package/dist/adapters/langfuse.adapter.d.ts +1 -1
- package/dist/adapters/langsmith.adapter.d.ts +1 -1
- package/dist/adapters/mcp/adapter.d.ts +12 -20
- package/dist/adapters/mcp/adapter.d.ts.map +1 -1
- package/dist/adapters/mcp/adapter.js +67 -213
- package/dist/adapters/mcp/adapter.js.map +1 -1
- package/dist/adapters/mcp/converter.d.ts +1 -0
- package/dist/adapters/mcp/converter.d.ts.map +1 -1
- package/dist/adapters/mcp/converter.js +5 -2
- package/dist/adapters/mcp/converter.js.map +1 -1
- package/dist/adapters/mobile-agent/adapter.d.ts +63 -0
- package/dist/adapters/mobile-agent/adapter.d.ts.map +1 -0
- package/dist/adapters/mobile-agent/adapter.js +678 -0
- package/dist/adapters/mobile-agent/adapter.js.map +1 -0
- package/dist/adapters/npm/adapter.d.ts +2 -5
- package/dist/adapters/npm/adapter.d.ts.map +1 -1
- package/dist/adapters/npm/adapter.js +49 -86
- package/dist/adapters/npm/adapter.js.map +1 -1
- package/dist/adapters/npm/converter.d.ts +6 -9
- package/dist/adapters/npm/converter.d.ts.map +1 -1
- package/dist/adapters/npm/converter.js +50 -83
- package/dist/adapters/npm/converter.js.map +1 -1
- package/dist/adapters/npm/package-generator.d.ts +93 -0
- package/dist/adapters/npm/package-generator.d.ts.map +1 -0
- package/dist/adapters/npm/package-generator.js +240 -0
- package/dist/adapters/npm/package-generator.js.map +1 -0
- package/dist/adapters/npm/type-aware-dependencies.d.ts +19 -0
- package/dist/adapters/npm/type-aware-dependencies.d.ts.map +1 -0
- package/dist/adapters/npm/type-aware-dependencies.js +160 -0
- package/dist/adapters/npm/type-aware-dependencies.js.map +1 -0
- package/dist/adapters/openai-agents/adapter.d.ts +31 -0
- package/dist/adapters/openai-agents/adapter.d.ts.map +1 -0
- package/dist/adapters/openai-agents/adapter.js +344 -0
- package/dist/adapters/openai-agents/adapter.js.map +1 -0
- package/dist/adapters/openai-agents/index.d.ts +10 -0
- package/dist/adapters/openai-agents/index.d.ts.map +1 -0
- package/dist/adapters/openai-agents/index.js +10 -0
- package/dist/adapters/openai-agents/index.js.map +1 -0
- package/dist/adapters/opentelemetry.adapter.d.ts +8 -2
- package/dist/adapters/opentelemetry.adapter.d.ts.map +1 -1
- package/dist/adapters/opentelemetry.adapter.js +92 -11
- package/dist/adapters/opentelemetry.adapter.js.map +1 -1
- package/dist/adapters/phoenix.adapter.d.ts +1 -1
- package/dist/adapters/registry/platform-registry.d.ts +1 -0
- package/dist/adapters/registry/platform-registry.d.ts.map +1 -1
- package/dist/adapters/registry/platform-registry.js +1 -0
- package/dist/adapters/registry/platform-registry.js.map +1 -1
- package/dist/adapters/warp/adapter.d.ts +52 -0
- package/dist/adapters/warp/adapter.d.ts.map +1 -0
- package/dist/adapters/warp/adapter.js +383 -0
- package/dist/adapters/warp/adapter.js.map +1 -0
- package/dist/adapters/warp/types.d.ts +140 -0
- package/dist/adapters/warp/types.d.ts.map +1 -0
- package/dist/adapters/warp/types.js +6 -0
- package/dist/adapters/warp/types.js.map +1 -0
- package/dist/bot/agent-compliance.js +1 -1
- package/dist/cli/banner.d.ts.map +1 -1
- package/dist/cli/banner.js +11 -4
- package/dist/cli/banner.js.map +1 -1
- package/dist/cli/commands/agent/discover-type.command.d.ts +39 -0
- package/dist/cli/commands/agent/discover-type.command.d.ts.map +1 -0
- package/dist/cli/commands/agent/discover-type.command.js +332 -0
- package/dist/cli/commands/agent/discover-type.command.js.map +1 -0
- package/dist/cli/commands/agent-card.command.d.ts +3 -9
- package/dist/cli/commands/agent-card.command.d.ts.map +1 -1
- package/dist/cli/commands/agent-card.command.js +109 -255
- package/dist/cli/commands/agent-card.command.js.map +1 -1
- package/dist/cli/commands/agent-wizard.command.d.ts.map +1 -1
- package/dist/cli/commands/agent-wizard.command.js +396 -1
- package/dist/cli/commands/agent-wizard.command.js.map +1 -1
- package/dist/cli/commands/agents/persona.command.d.ts +10 -0
- package/dist/cli/commands/agents/persona.command.d.ts.map +1 -0
- package/dist/cli/commands/agents/persona.command.js +519 -0
- package/dist/cli/commands/agents/persona.command.js.map +1 -0
- package/dist/cli/commands/agents-local.command.d.ts +10 -0
- package/dist/cli/commands/agents-local.command.d.ts.map +1 -0
- package/dist/cli/commands/agents-local.command.js +283 -0
- package/dist/cli/commands/agents-local.command.js.map +1 -0
- package/dist/cli/commands/agents-md.command.d.ts.map +1 -1
- package/dist/cli/commands/agents-md.command.js.map +1 -1
- package/dist/cli/commands/agents.command.d.ts +4 -4
- package/dist/cli/commands/agents.command.d.ts.map +1 -1
- package/dist/cli/commands/agents.command.js +9 -136
- package/dist/cli/commands/agents.command.js.map +1 -1
- package/dist/cli/commands/audit.d.ts.map +1 -1
- package/dist/cli/commands/audit.js +26 -9
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/build.command.d.ts.map +1 -1
- package/dist/cli/commands/build.command.js +8 -31
- package/dist/cli/commands/build.command.js.map +1 -1
- package/dist/cli/commands/capability/create.command.d.ts +7 -0
- package/dist/cli/commands/capability/create.command.d.ts.map +1 -0
- package/dist/cli/commands/capability/create.command.js +225 -0
- package/dist/cli/commands/capability/create.command.js.map +1 -0
- package/dist/cli/commands/capability/index.d.ts +7 -0
- package/dist/cli/commands/capability/index.d.ts.map +1 -0
- package/dist/cli/commands/capability/index.js +10 -0
- package/dist/cli/commands/capability/index.js.map +1 -0
- package/dist/cli/commands/catalog/index.d.ts +0 -4
- package/dist/cli/commands/catalog/index.d.ts.map +1 -1
- package/dist/cli/commands/catalog/index.js +0 -12
- package/dist/cli/commands/catalog/index.js.map +1 -1
- package/dist/cli/commands/catalog/schemas.d.ts +1 -1
- package/dist/cli/commands/deploy-enhanced.command.d.ts +15 -0
- package/dist/cli/commands/deploy-enhanced.command.d.ts.map +1 -0
- package/dist/cli/commands/deploy-enhanced.command.js +334 -0
- package/dist/cli/commands/deploy-enhanced.command.js.map +1 -0
- package/dist/cli/commands/deploy.command.d.ts.map +1 -1
- package/dist/cli/commands/deploy.command.js +4 -3
- package/dist/cli/commands/deploy.command.js.map +1 -1
- package/dist/cli/commands/deploy.d.ts.map +1 -1
- package/dist/cli/commands/deploy.js +6 -5
- package/dist/cli/commands/deploy.js.map +1 -1
- package/dist/cli/commands/discover.d.ts +15 -0
- package/dist/cli/commands/discover.d.ts.map +1 -0
- package/dist/cli/commands/discover.js +215 -0
- package/dist/cli/commands/discover.js.map +1 -0
- package/dist/cli/commands/estimate.command.js +1 -1
- package/dist/cli/commands/estimate.command.js.map +1 -1
- package/dist/cli/commands/export.command.d.ts.map +1 -1
- package/dist/cli/commands/export.command.js +567 -89
- package/dist/cli/commands/export.command.js.map +1 -1
- package/dist/cli/commands/framework.command.d.ts.map +1 -1
- package/dist/cli/commands/framework.command.js +2 -1
- package/dist/cli/commands/framework.command.js.map +1 -1
- package/dist/cli/commands/generate-gaid.command.d.ts +14 -0
- package/dist/cli/commands/generate-gaid.command.d.ts.map +1 -0
- package/dist/cli/commands/generate-gaid.command.js +141 -0
- package/dist/cli/commands/generate-gaid.command.js.map +1 -0
- package/dist/cli/commands/governance.command.d.ts +11 -0
- package/dist/cli/commands/governance.command.d.ts.map +1 -0
- package/dist/cli/commands/governance.command.js +166 -0
- package/dist/cli/commands/governance.command.js.map +1 -0
- package/dist/cli/commands/import.command.d.ts.map +1 -1
- package/dist/cli/commands/import.command.js +11 -0
- package/dist/cli/commands/import.command.js.map +1 -1
- package/dist/cli/commands/init.command.d.ts.map +1 -1
- package/dist/cli/commands/init.command.js +23 -14
- package/dist/cli/commands/init.command.js.map +1 -1
- package/dist/cli/commands/lint.command.js +3 -1
- package/dist/cli/commands/lint.command.js.map +1 -1
- package/dist/cli/commands/manifest/diff.command.d.ts +7 -0
- package/dist/cli/commands/manifest/diff.command.d.ts.map +1 -0
- package/dist/cli/commands/manifest/diff.command.js +186 -0
- package/dist/cli/commands/manifest/diff.command.js.map +1 -0
- package/dist/cli/commands/manifest/explain.command.d.ts +7 -0
- package/dist/cli/commands/manifest/explain.command.d.ts.map +1 -0
- package/dist/cli/commands/manifest/explain.command.js +193 -0
- package/dist/cli/commands/manifest/explain.command.js.map +1 -0
- package/dist/cli/commands/manifest/index.d.ts +7 -0
- package/dist/cli/commands/manifest/index.d.ts.map +1 -0
- package/dist/cli/commands/manifest/index.js +12 -0
- package/dist/cli/commands/manifest/index.js.map +1 -0
- package/dist/cli/commands/migrate-langchain.command.js +3 -3
- package/dist/cli/commands/migrate-langchain.command.js.map +1 -1
- package/dist/cli/commands/migrate.command.d.ts +4 -1
- package/dist/cli/commands/migrate.command.d.ts.map +1 -1
- package/dist/cli/commands/migrate.command.js +56 -81
- package/dist/cli/commands/migrate.command.js.map +1 -1
- package/dist/cli/commands/publish.command.d.ts.map +1 -1
- package/dist/cli/commands/publish.command.js.map +1 -1
- package/dist/cli/commands/quickstart.command.d.ts.map +1 -1
- package/dist/cli/commands/quickstart.command.js +32 -49
- package/dist/cli/commands/quickstart.command.js.map +1 -1
- package/dist/cli/commands/register.d.ts +12 -0
- package/dist/cli/commands/register.d.ts.map +1 -0
- package/dist/cli/commands/register.js +200 -0
- package/dist/cli/commands/register.js.map +1 -0
- package/dist/cli/commands/rollback.command.d.ts +13 -0
- package/dist/cli/commands/rollback.command.d.ts.map +1 -0
- package/dist/cli/commands/rollback.command.js +156 -0
- package/dist/cli/commands/rollback.command.js.map +1 -0
- package/dist/cli/commands/run.command.d.ts.map +1 -1
- package/dist/cli/commands/run.command.js +19 -4
- package/dist/cli/commands/run.command.js.map +1 -1
- package/dist/cli/commands/skills.command.d.ts.map +1 -1
- package/dist/cli/commands/skills.command.js +177 -0
- package/dist/cli/commands/skills.command.js.map +1 -1
- package/dist/cli/commands/standardize.command.js +3 -6
- package/dist/cli/commands/standardize.command.js.map +1 -1
- package/dist/cli/commands/test.command.d.ts.map +1 -1
- package/dist/cli/commands/test.command.js +1 -1
- package/dist/cli/commands/test.command.js.map +1 -1
- package/dist/cli/commands/tool/create.command.d.ts +12 -0
- package/dist/cli/commands/tool/create.command.d.ts.map +1 -0
- package/dist/cli/commands/tool/create.command.js +276 -0
- package/dist/cli/commands/tool/create.command.js.map +1 -0
- package/dist/cli/commands/tool/index.d.ts +7 -0
- package/dist/cli/commands/tool/index.d.ts.map +1 -0
- package/dist/cli/commands/tool/index.js +14 -0
- package/dist/cli/commands/tool/index.js.map +1 -0
- package/dist/cli/commands/tool/list.command.d.ts +7 -0
- package/dist/cli/commands/tool/list.command.d.ts.map +1 -0
- package/dist/cli/commands/tool/list.command.js +268 -0
- package/dist/cli/commands/tool/list.command.js.map +1 -0
- package/dist/cli/commands/tool/validate.command.d.ts +7 -0
- package/dist/cli/commands/tool/validate.command.d.ts.map +1 -0
- package/dist/cli/commands/tool/validate.command.js +103 -0
- package/dist/cli/commands/tool/validate.command.js.map +1 -0
- package/dist/cli/commands/types/wizard-config.types.d.ts.map +1 -1
- package/dist/cli/commands/types/wizard-config.types.js.map +1 -1
- package/dist/cli/commands/upgrade.command.d.ts.map +1 -1
- package/dist/cli/commands/upgrade.command.js +12 -0
- package/dist/cli/commands/upgrade.command.js.map +1 -1
- package/dist/cli/commands/validate.command.js +1 -3
- package/dist/cli/commands/validate.command.js.map +1 -1
- package/dist/cli/commands/verify.d.ts +15 -0
- package/dist/cli/commands/verify.d.ts.map +1 -0
- package/dist/cli/commands/verify.js +274 -0
- package/dist/cli/commands/verify.js.map +1 -0
- package/dist/cli/commands/wizard-api-first.command.d.ts.map +1 -1
- package/dist/cli/commands/wizard-api-first.command.js +77 -2
- package/dist/cli/commands/wizard-api-first.command.js.map +1 -1
- package/dist/cli/commands/wizard-interactive.command.d.ts.map +1 -1
- package/dist/cli/commands/wizard-interactive.command.js +1503 -118
- package/dist/cli/commands/wizard-interactive.command.js.map +1 -1
- package/dist/cli/commands/wizard.command.js +1 -1
- package/dist/cli/commands/wizard.command.js.map +1 -1
- package/dist/cli/extensions/gitlab.extension.js +1 -1
- package/dist/cli/index.js +107 -63
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/schema-driven/schema-loader.d.ts.map +1 -1
- package/dist/cli/schema-driven/schema-loader.js +2 -2
- package/dist/cli/schema-driven/schema-loader.js.map +1 -1
- package/dist/cli/schema-driven/ui-generator.d.ts.map +1 -1
- package/dist/cli/schema-driven/ui-generator.js +13 -4
- package/dist/cli/schema-driven/ui-generator.js.map +1 -1
- package/dist/cli/templates/enhanced-templates.d.ts.map +1 -1
- package/dist/cli/templates/enhanced-templates.js +2 -1
- package/dist/cli/templates/enhanced-templates.js.map +1 -1
- package/dist/cli/utils/error-formatter.js +3 -3
- package/dist/cli/utils/index.d.ts +1 -0
- package/dist/cli/utils/index.d.ts.map +1 -1
- package/dist/cli/utils/index.js +2 -0
- package/dist/cli/utils/index.js.map +1 -1
- package/dist/cli/utils/logo.d.ts +10 -0
- package/dist/cli/utils/logo.d.ts.map +1 -0
- package/dist/cli/utils/logo.js +49 -0
- package/dist/cli/utils/logo.js.map +1 -0
- package/dist/cli/utils/standard-options.d.ts +21 -0
- package/dist/cli/utils/standard-options.d.ts.map +1 -1
- package/dist/cli/utils/standard-options.js +31 -0
- package/dist/cli/utils/standard-options.js.map +1 -1
- package/dist/cli/utils/validation-builder.d.ts +121 -0
- package/dist/cli/utils/validation-builder.d.ts.map +1 -0
- package/dist/cli/utils/validation-builder.js +322 -0
- package/dist/cli/utils/validation-builder.js.map +1 -0
- package/dist/cli/wizard/data/taxonomy.d.ts.map +1 -1
- package/dist/cli/wizard/data/taxonomy.js +5 -1
- package/dist/cli/wizard/data/taxonomy.js.map +1 -1
- package/dist/cli/wizard/interactive-wizard.d.ts.map +1 -1
- package/dist/cli/wizard/interactive-wizard.js +26 -13
- package/dist/cli/wizard/interactive-wizard.js.map +1 -1
- package/dist/cli/wizard/steps/02-basic-info.js +1 -1
- package/dist/cli/wizard/steps/04a-persona.d.ts +16 -0
- package/dist/cli/wizard/steps/04a-persona.d.ts.map +1 -0
- package/dist/cli/wizard/steps/04a-persona.js +297 -0
- package/dist/cli/wizard/steps/04a-persona.js.map +1 -0
- package/dist/cli/wizard/steps/05-tools.d.ts.map +1 -1
- package/dist/cli/wizard/steps/05-tools.js +32 -4
- package/dist/cli/wizard/steps/05-tools.js.map +1 -1
- package/dist/cli/wizard/steps/06-autonomy.js +1 -1
- package/dist/cli/wizard/steps/07-observability.js +1 -1
- package/dist/cli/wizard/steps/08-deployment.js +1 -1
- package/dist/cli/wizard/steps/09-advanced.js +1 -1
- package/dist/cli/wizard/steps/09-advanced.js.map +1 -1
- package/dist/cli/wizard/steps/10-review.d.ts.map +1 -1
- package/dist/cli/wizard/steps/10-review.js +6 -4
- package/dist/cli/wizard/steps/10-review.js.map +1 -1
- package/dist/cli/wizard/steps/12-agents-folder.d.ts.map +1 -1
- package/dist/cli/wizard/steps/12-agents-folder.js +14 -10
- package/dist/cli/wizard/steps/12-agents-folder.js.map +1 -1
- package/dist/cli/wizard/steps/13-openapi-generation.d.ts.map +1 -1
- package/dist/cli/wizard/steps/13-openapi-generation.js +10 -2
- package/dist/cli/wizard/steps/13-openapi-generation.js.map +1 -1
- package/dist/cli/wizard/steps/14-workspace-registration.d.ts.map +1 -1
- package/dist/cli/wizard/steps/14-workspace-registration.js +10 -2
- package/dist/cli/wizard/steps/14-workspace-registration.js.map +1 -1
- package/dist/cli/wizard/steps/15-cost-estimation.d.ts.map +1 -1
- package/dist/cli/wizard/steps/15-cost-estimation.js +27 -11
- package/dist/cli/wizard/steps/15-cost-estimation.js.map +1 -1
- package/dist/cli/wizard/steps/16-best-practices.d.ts.map +1 -1
- package/dist/cli/wizard/steps/16-best-practices.js +14 -13
- package/dist/cli/wizard/steps/16-best-practices.js.map +1 -1
- package/dist/cli/wizard/ui/banner.d.ts +20 -0
- package/dist/cli/wizard/ui/banner.d.ts.map +1 -0
- package/dist/cli/wizard/ui/banner.js +66 -0
- package/dist/cli/wizard/ui/banner.js.map +1 -0
- package/dist/cli/wizard/ui/console.d.ts.map +1 -1
- package/dist/cli/wizard/ui/console.js +21 -23
- package/dist/cli/wizard/ui/console.js.map +1 -1
- package/dist/cli/wizard/ui/wizard-ui.d.ts.map +1 -1
- package/dist/cli/wizard/ui/wizard-ui.js +54 -75
- package/dist/cli/wizard/ui/wizard-ui.js.map +1 -1
- package/dist/cli/wizard/use-cases.d.ts.map +1 -1
- package/dist/cli/wizard/use-cases.js.map +1 -1
- package/dist/config/defaults.d.ts +59 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +73 -1
- package/dist/config/defaults.js.map +1 -1
- package/dist/deploy/cloud/aws-driver.d.ts +75 -0
- package/dist/deploy/cloud/aws-driver.d.ts.map +1 -0
- package/dist/deploy/cloud/aws-driver.js +344 -0
- package/dist/deploy/cloud/aws-driver.js.map +1 -0
- package/dist/deploy/cloud/azure-driver.d.ts +54 -0
- package/dist/deploy/cloud/azure-driver.d.ts.map +1 -0
- package/dist/deploy/cloud/azure-driver.js +221 -0
- package/dist/deploy/cloud/azure-driver.js.map +1 -0
- package/dist/deploy/cloud/gcp-driver.d.ts +56 -0
- package/dist/deploy/cloud/gcp-driver.d.ts.map +1 -0
- package/dist/deploy/cloud/gcp-driver.js +216 -0
- package/dist/deploy/cloud/gcp-driver.js.map +1 -0
- package/dist/dev-cli/commands/release-prep.command.d.ts +1 -5
- package/dist/dev-cli/commands/release-prep.command.d.ts.map +1 -1
- package/dist/dev-cli/commands/release-prep.command.js +4 -8
- package/dist/dev-cli/commands/release-prep.command.js.map +1 -1
- package/dist/dev-cli/commands/version.command.js +18 -18
- package/dist/dev-cli/commands/version.command.js.map +1 -1
- package/dist/dev-cli/services/spec-generate.service.d.ts +8 -1
- package/dist/dev-cli/services/spec-generate.service.d.ts.map +1 -1
- package/dist/dev-cli/services/spec-generate.service.js +96 -11
- package/dist/dev-cli/services/spec-generate.service.js.map +1 -1
- package/dist/dev-cli/services/spec-validate.service.d.ts.map +1 -1
- package/dist/dev-cli/services/spec-validate.service.js +66 -5
- package/dist/dev-cli/services/spec-validate.service.js.map +1 -1
- package/dist/dev-cli/services/version-check.service.d.ts.map +1 -1
- package/dist/dev-cli/services/version-check.service.js +2 -1
- package/dist/dev-cli/services/version-check.service.js.map +1 -1
- package/dist/dev-cli/services/version-validate.service.d.ts.map +1 -1
- package/dist/dev-cli/services/version-validate.service.js +1 -3
- package/dist/dev-cli/services/version-validate.service.js.map +1 -1
- package/dist/di-container.d.ts +5 -0
- package/dist/di-container.d.ts.map +1 -1
- package/dist/di-container.js +30 -6
- package/dist/di-container.js.map +1 -1
- package/dist/errors/index.d.ts +154 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +327 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/generated/types.d.ts +91 -91
- package/dist/generated/types.d.ts.map +1 -1
- package/dist/interfaces/governance-provider.interface.d.ts +98 -0
- package/dist/interfaces/governance-provider.interface.d.ts.map +1 -0
- package/dist/interfaces/governance-provider.interface.js +20 -0
- package/dist/interfaces/governance-provider.interface.js.map +1 -0
- package/dist/mesh/advanced-routing.d.ts +181 -0
- package/dist/mesh/advanced-routing.d.ts.map +1 -0
- package/dist/mesh/advanced-routing.js +479 -0
- package/dist/mesh/advanced-routing.js.map +1 -0
- package/dist/mesh/agent-graph.d.ts +218 -0
- package/dist/mesh/agent-graph.d.ts.map +1 -0
- package/dist/mesh/agent-graph.js +493 -0
- package/dist/mesh/agent-graph.js.map +1 -0
- package/dist/mesh/discovery-providers.d.ts +162 -0
- package/dist/mesh/discovery-providers.d.ts.map +1 -0
- package/dist/mesh/discovery-providers.js +520 -0
- package/dist/mesh/discovery-providers.js.map +1 -0
- package/dist/mesh/index.d.ts +3 -0
- package/dist/mesh/index.d.ts.map +1 -1
- package/dist/mesh/index.js +6 -0
- package/dist/mesh/index.js.map +1 -1
- package/dist/mesh/types.d.ts +212 -1
- package/dist/mesh/types.d.ts.map +1 -1
- package/dist/messaging/channels.d.ts +1 -1
- package/dist/messaging/channels.js +1 -1
- package/dist/messaging/protocols/memory.d.ts +1 -1
- package/dist/messaging/protocols/memory.js +1 -1
- package/dist/messenger/Commands/MessengerConsumeCommand.d.ts +57 -0
- package/dist/messenger/Commands/MessengerConsumeCommand.d.ts.map +1 -0
- package/dist/messenger/Commands/MessengerConsumeCommand.js +49 -0
- package/dist/messenger/Commands/MessengerConsumeCommand.js.map +1 -0
- package/dist/messenger/Commands/MessengerFailedCommand.d.ts +76 -0
- package/dist/messenger/Commands/MessengerFailedCommand.d.ts.map +1 -0
- package/dist/messenger/Commands/MessengerFailedCommand.js +120 -0
- package/dist/messenger/Commands/MessengerFailedCommand.js.map +1 -0
- package/dist/messenger/Commands/MessengerStatsCommand.d.ts +61 -0
- package/dist/messenger/Commands/MessengerStatsCommand.d.ts.map +1 -0
- package/dist/messenger/Commands/MessengerStatsCommand.js +80 -0
- package/dist/messenger/Commands/MessengerStatsCommand.js.map +1 -0
- package/dist/messenger/Commands/index.d.ts +10 -0
- package/dist/messenger/Commands/index.d.ts.map +1 -0
- package/dist/messenger/Commands/index.js +10 -0
- package/dist/messenger/Commands/index.js.map +1 -0
- package/dist/messenger/EventSubscriber/FailedMessageSubscriber.d.ts +44 -0
- package/dist/messenger/EventSubscriber/FailedMessageSubscriber.d.ts.map +1 -0
- package/dist/messenger/EventSubscriber/FailedMessageSubscriber.js +64 -0
- package/dist/messenger/EventSubscriber/FailedMessageSubscriber.js.map +1 -0
- package/dist/messenger/Handler/AgentBatchHandler.d.ts +80 -0
- package/dist/messenger/Handler/AgentBatchHandler.d.ts.map +1 -0
- package/dist/messenger/Handler/AgentBatchHandler.js +211 -0
- package/dist/messenger/Handler/AgentBatchHandler.js.map +1 -0
- package/dist/messenger/Handler/AgentExecutionHandler.d.ts +76 -0
- package/dist/messenger/Handler/AgentExecutionHandler.d.ts.map +1 -0
- package/dist/messenger/Handler/AgentExecutionHandler.js +131 -0
- package/dist/messenger/Handler/AgentExecutionHandler.js.map +1 -0
- package/dist/messenger/Handler/index.d.ts +9 -0
- package/dist/messenger/Handler/index.d.ts.map +1 -0
- package/dist/messenger/Handler/index.js +9 -0
- package/dist/messenger/Handler/index.js.map +1 -0
- package/dist/messenger/Message/AgentBatchMessage.d.ts +115 -0
- package/dist/messenger/Message/AgentBatchMessage.d.ts.map +1 -0
- package/dist/messenger/Message/AgentBatchMessage.js +102 -0
- package/dist/messenger/Message/AgentBatchMessage.js.map +1 -0
- package/dist/messenger/Message/AgentExecutionMessage.d.ts +98 -0
- package/dist/messenger/Message/AgentExecutionMessage.d.ts.map +1 -0
- package/dist/messenger/Message/AgentExecutionMessage.js +77 -0
- package/dist/messenger/Message/AgentExecutionMessage.js.map +1 -0
- package/dist/messenger/Message/index.d.ts +9 -0
- package/dist/messenger/Message/index.d.ts.map +1 -0
- package/dist/messenger/Message/index.js +9 -0
- package/dist/messenger/Message/index.js.map +1 -0
- package/dist/messenger/Middleware/AuthenticationMiddleware.d.ts +41 -0
- package/dist/messenger/Middleware/AuthenticationMiddleware.d.ts.map +1 -0
- package/dist/messenger/Middleware/AuthenticationMiddleware.js +84 -0
- package/dist/messenger/Middleware/AuthenticationMiddleware.js.map +1 -0
- package/dist/messenger/Middleware/LoggingMiddleware.d.ts +30 -0
- package/dist/messenger/Middleware/LoggingMiddleware.d.ts.map +1 -0
- package/dist/messenger/Middleware/LoggingMiddleware.js +59 -0
- package/dist/messenger/Middleware/LoggingMiddleware.js.map +1 -0
- package/dist/messenger/Middleware/RateLimitMiddleware.d.ts +67 -0
- package/dist/messenger/Middleware/RateLimitMiddleware.d.ts.map +1 -0
- package/dist/messenger/Middleware/RateLimitMiddleware.js +90 -0
- package/dist/messenger/Middleware/RateLimitMiddleware.js.map +1 -0
- package/dist/messenger/Middleware/ValidationMiddleware.d.ts +39 -0
- package/dist/messenger/Middleware/ValidationMiddleware.d.ts.map +1 -0
- package/dist/messenger/Middleware/ValidationMiddleware.js +96 -0
- package/dist/messenger/Middleware/ValidationMiddleware.js.map +1 -0
- package/dist/messenger/Middleware/index.d.ts +11 -0
- package/dist/messenger/Middleware/index.d.ts.map +1 -0
- package/dist/messenger/Middleware/index.js +11 -0
- package/dist/messenger/Middleware/index.js.map +1 -0
- package/dist/messenger/Monitoring/MetricsCollector.d.ts +107 -0
- package/dist/messenger/Monitoring/MetricsCollector.d.ts.map +1 -0
- package/dist/messenger/Monitoring/MetricsCollector.js +80 -0
- package/dist/messenger/Monitoring/MetricsCollector.js.map +1 -0
- package/dist/messenger/Monitoring/QueueMonitor.d.ts +74 -0
- package/dist/messenger/Monitoring/QueueMonitor.d.ts.map +1 -0
- package/dist/messenger/Monitoring/QueueMonitor.js +160 -0
- package/dist/messenger/Monitoring/QueueMonitor.js.map +1 -0
- package/dist/messenger/Monitoring/index.d.ts +9 -0
- package/dist/messenger/Monitoring/index.d.ts.map +1 -0
- package/dist/messenger/Monitoring/index.js +9 -0
- package/dist/messenger/Monitoring/index.js.map +1 -0
- package/dist/messenger/index.d.ts +38 -0
- package/dist/messenger/index.d.ts.map +1 -0
- package/dist/messenger/index.js +44 -0
- package/dist/messenger/index.js.map +1 -0
- package/dist/observability/index.d.ts +13 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +14 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/metrics.d.ts +131 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +308 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/observability/middleware.d.ts +64 -0
- package/dist/observability/middleware.d.ts.map +1 -0
- package/dist/observability/middleware.js +225 -0
- package/dist/observability/middleware.js.map +1 -0
- package/dist/package.json +49 -28
- package/dist/repositories/schema.repository.d.ts.map +1 -1
- package/dist/repositories/schema.repository.js +10 -4
- package/dist/repositories/schema.repository.js.map +1 -1
- package/dist/runtime/agent-runner.d.ts.map +1 -1
- package/dist/runtime/agent-runner.js +23 -23
- package/dist/runtime/agent-runner.js.map +1 -1
- package/dist/sdks/kagent/crd-generator.d.ts +63 -1
- package/dist/sdks/kagent/crd-generator.d.ts.map +1 -1
- package/dist/sdks/kagent/crd-generator.js +770 -20
- package/dist/sdks/kagent/crd-generator.js.map +1 -1
- package/dist/sdks/kagent/crd-parser.d.ts.map +1 -1
- package/dist/sdks/kagent/crd-parser.js +2 -1
- package/dist/sdks/kagent/crd-parser.js.map +1 -1
- package/dist/sdks/kagent/index.d.ts +1 -1
- package/dist/sdks/kagent/index.d.ts.map +1 -1
- package/dist/sdks/kagent/k8s-resources-generator.d.ts.map +1 -1
- package/dist/sdks/kagent/k8s-resources-generator.js.map +1 -1
- package/dist/sdks/kagent/types.d.ts +30 -0
- package/dist/sdks/kagent/types.d.ts.map +1 -1
- package/dist/sdks/shared/validation.d.ts +4 -4
- package/dist/sdks/typescript/builders/autonomy.builder.d.ts +119 -0
- package/dist/sdks/typescript/builders/autonomy.builder.d.ts.map +1 -0
- package/dist/sdks/typescript/builders/autonomy.builder.js +165 -0
- package/dist/sdks/typescript/builders/autonomy.builder.js.map +1 -0
- package/dist/sdks/typescript/builders/index.d.ts +12 -0
- package/dist/sdks/typescript/builders/index.d.ts.map +1 -0
- package/dist/sdks/typescript/builders/index.js +11 -0
- package/dist/sdks/typescript/builders/index.js.map +1 -0
- package/dist/sdks/typescript/builders/llm.builder.d.ts +74 -0
- package/dist/sdks/typescript/builders/llm.builder.d.ts.map +1 -0
- package/dist/sdks/typescript/builders/llm.builder.js +123 -0
- package/dist/sdks/typescript/builders/llm.builder.js.map +1 -0
- package/dist/sdks/typescript/builders/manifest.builder.d.ts +153 -0
- package/dist/sdks/typescript/builders/manifest.builder.d.ts.map +1 -0
- package/dist/sdks/typescript/builders/manifest.builder.js +343 -0
- package/dist/sdks/typescript/builders/manifest.builder.js.map +1 -0
- package/dist/sdks/typescript/builders/safety.builder.d.ts +79 -0
- package/dist/sdks/typescript/builders/safety.builder.d.ts.map +1 -0
- package/dist/sdks/typescript/builders/safety.builder.js +147 -0
- package/dist/sdks/typescript/builders/safety.builder.js.map +1 -0
- package/dist/sdks/typescript/builders/tool.builder.d.ts +179 -0
- package/dist/sdks/typescript/builders/tool.builder.d.ts.map +1 -0
- package/dist/sdks/typescript/builders/tool.builder.js +305 -0
- package/dist/sdks/typescript/builders/tool.builder.js.map +1 -0
- package/dist/sdks/typescript/client.d.ts +1 -3
- package/dist/sdks/typescript/client.d.ts.map +1 -1
- package/dist/sdks/typescript/client.js +1 -3
- package/dist/sdks/typescript/client.js.map +1 -1
- package/dist/sdks/typescript/constants.d.ts +24 -0
- package/dist/sdks/typescript/constants.d.ts.map +1 -0
- package/dist/sdks/typescript/constants.js +102 -0
- package/dist/sdks/typescript/constants.js.map +1 -0
- package/dist/sdks/typescript/index.d.ts +4 -0
- package/dist/sdks/typescript/index.d.ts.map +1 -1
- package/dist/sdks/typescript/index.js +4 -0
- package/dist/sdks/typescript/index.js.map +1 -1
- package/dist/sdks/typescript/manifest.d.ts +8 -3
- package/dist/sdks/typescript/manifest.d.ts.map +1 -1
- package/dist/sdks/typescript/manifest.js +12 -28
- package/dist/sdks/typescript/manifest.js.map +1 -1
- package/dist/sdks/typescript/types.d.ts +5 -3
- package/dist/sdks/typescript/types.d.ts.map +1 -1
- package/dist/sdks/typescript/types.js +6 -3
- package/dist/sdks/typescript/types.js.map +1 -1
- package/dist/sdks/typescript/validator.d.ts +31 -0
- package/dist/sdks/typescript/validator.d.ts.map +1 -1
- package/dist/sdks/typescript/validator.js +205 -1
- package/dist/sdks/typescript/validator.js.map +1 -1
- package/dist/services/agent-card-generator.d.ts +57 -0
- package/dist/services/agent-card-generator.d.ts.map +1 -0
- package/dist/services/agent-card-generator.js +592 -0
- package/dist/services/agent-card-generator.js.map +1 -0
- package/dist/services/agent-type-detector.service.d.ts +72 -0
- package/dist/services/agent-type-detector.service.d.ts.map +1 -0
- package/dist/services/agent-type-detector.service.js +197 -0
- package/dist/services/agent-type-detector.service.js.map +1 -0
- package/dist/services/agents-md/agents-md-generator.service.d.ts +29 -0
- package/dist/services/agents-md/agents-md-generator.service.d.ts.map +1 -0
- package/dist/services/agents-md/agents-md-generator.service.js +252 -0
- package/dist/services/agents-md/agents-md-generator.service.js.map +1 -0
- package/dist/services/ai-architect.service.js +1 -1
- package/dist/services/ai-architect.service.js.map +1 -1
- package/dist/services/audit.d.ts +7 -1
- package/dist/services/audit.d.ts.map +1 -1
- package/dist/services/audit.js +70 -40
- package/dist/services/audit.js.map +1 -1
- package/dist/services/codegen/generators/vscode.generator.js +2 -2
- package/dist/services/codegen/generators/vscode.generator.js.map +1 -1
- package/dist/services/cost-estimation/token-counter.service.js +1 -1
- package/dist/services/cost-estimation/token-counter.service.js.map +1 -1
- package/dist/services/dev-server/websocket-server.d.ts.map +1 -1
- package/dist/services/dev-server/websocket-server.js +2 -1
- package/dist/services/dev-server/websocket-server.js.map +1 -1
- package/dist/services/evals/evals-generator.service.d.ts +90 -0
- package/dist/services/evals/evals-generator.service.d.ts.map +1 -0
- package/dist/services/evals/evals-generator.service.js +1603 -0
- package/dist/services/evals/evals-generator.service.js.map +1 -0
- package/dist/services/export/anthropic/anthropic-exporter.d.ts +1 -0
- package/dist/services/export/anthropic/anthropic-exporter.d.ts.map +1 -1
- package/dist/services/export/anthropic/anthropic-exporter.js +19 -5
- package/dist/services/export/anthropic/anthropic-exporter.js.map +1 -1
- package/dist/services/export/anthropic/index.d.ts +1 -1
- package/dist/services/export/anthropic/index.d.ts.map +1 -1
- package/dist/services/export/anthropic/index.js +1 -1
- package/dist/services/export/anthropic/index.js.map +1 -1
- package/dist/services/export/export-orchestrator.d.ts +1 -0
- package/dist/services/export/export-orchestrator.d.ts.map +1 -1
- package/dist/services/export/langchain/callbacks-generator.d.ts.map +1 -1
- package/dist/services/export/langchain/callbacks-generator.js +16 -8
- package/dist/services/export/langchain/callbacks-generator.js.map +1 -1
- package/dist/services/export/langchain/error-handling-generator.d.ts.map +1 -1
- package/dist/services/export/langchain/error-handling-generator.js +9 -5
- package/dist/services/export/langchain/error-handling-generator.js.map +1 -1
- package/dist/services/export/langchain/langchain-exporter.d.ts.map +1 -1
- package/dist/services/export/langchain/langchain-exporter.js +16 -8
- package/dist/services/export/langchain/langchain-exporter.js.map +1 -1
- package/dist/services/export/langchain/langgraph-generator.d.ts.map +1 -1
- package/dist/services/export/langchain/langgraph-generator.js +34 -20
- package/dist/services/export/langchain/langgraph-generator.js.map +1 -1
- package/dist/services/export/langchain/langserve-generator.d.ts.map +1 -1
- package/dist/services/export/langchain/langserve-generator.js +7 -1
- package/dist/services/export/langchain/langserve-generator.js.map +1 -1
- package/dist/services/export/langchain/memory-generator.d.ts.map +1 -1
- package/dist/services/export/langchain/memory-generator.js.map +1 -1
- package/dist/services/export/langchain/plan-execute-generator.d.ts.map +1 -1
- package/dist/services/export/langchain/plan-execute-generator.js.map +1 -1
- package/dist/services/export/langchain/streaming-generator.d.ts.map +1 -1
- package/dist/services/export/langchain/streaming-generator.js +12 -6
- package/dist/services/export/langchain/streaming-generator.js.map +1 -1
- package/dist/services/export/langchain/tools-generator.d.ts.map +1 -1
- package/dist/services/export/langchain/tools-generator.js.map +1 -1
- package/dist/services/export/npm/npm-exporter.d.ts +40 -0
- package/dist/services/export/npm/npm-exporter.d.ts.map +1 -1
- package/dist/services/export/npm/npm-exporter.js +1294 -1
- package/dist/services/export/npm/npm-exporter.js.map +1 -1
- package/dist/services/export/npm/package-json-generator.d.ts.map +1 -1
- package/dist/services/export/npm/package-json-generator.js +5 -2
- package/dist/services/export/npm/package-json-generator.js.map +1 -1
- package/dist/services/export/npm/typescript-generator.d.ts.map +1 -1
- package/dist/services/export/npm/typescript-generator.js +7 -3
- package/dist/services/export/npm/typescript-generator.js.map +1 -1
- package/dist/services/export/testing/index.d.ts +1 -1
- package/dist/services/export/testing/index.d.ts.map +1 -1
- package/dist/services/export/testing/test-generator.d.ts.map +1 -1
- package/dist/services/export/testing/test-generator.js +5 -1
- package/dist/services/export/testing/test-generator.js.map +1 -1
- package/dist/services/framework-import/langchain-importer.service.d.ts.map +1 -1
- package/dist/services/framework-import/langchain-importer.service.js +2 -1
- package/dist/services/framework-import/langchain-importer.service.js.map +1 -1
- package/dist/services/framework-import/langflow-importer.service.d.ts.map +1 -1
- package/dist/services/framework-import/langflow-importer.service.js +3 -2
- package/dist/services/framework-import/langflow-importer.service.js.map +1 -1
- package/dist/services/generation.service.d.ts +7 -0
- package/dist/services/generation.service.d.ts.map +1 -1
- package/dist/services/generation.service.js +31 -8
- package/dist/services/generation.service.js.map +1 -1
- package/dist/services/github-sync/schemas.d.ts +1 -1
- package/dist/services/governance/governance-generator.service.d.ts +120 -0
- package/dist/services/governance/governance-generator.service.d.ts.map +1 -0
- package/dist/services/governance/governance-generator.service.js +955 -0
- package/dist/services/governance/governance-generator.service.js.map +1 -0
- package/dist/services/governance-client.service.d.ts +39 -0
- package/dist/services/governance-client.service.d.ts.map +1 -0
- package/dist/services/governance-client.service.js +124 -0
- package/dist/services/governance-client.service.js.map +1 -0
- package/dist/services/id-card.service.d.ts +109 -0
- package/dist/services/id-card.service.d.ts.map +1 -0
- package/dist/services/id-card.service.js +236 -0
- package/dist/services/id-card.service.js.map +1 -0
- package/dist/services/llms-txt/llms-txt.service.d.ts +2 -2
- package/dist/services/llms-txt/llms-txt.service.js +2 -2
- package/dist/services/messaging/index.d.ts +0 -1
- package/dist/services/messaging/index.d.ts.map +1 -1
- package/dist/services/messaging/index.js +2 -1
- package/dist/services/messaging/index.js.map +1 -1
- package/dist/services/migration/langchain-migration.service.js +2 -2
- package/dist/services/migration/langchain-migration.service.js.map +1 -1
- package/dist/services/multi-agent/team-generator.service.d.ts +41 -0
- package/dist/services/multi-agent/team-generator.service.d.ts.map +1 -0
- package/dist/services/multi-agent/team-generator.service.js +560 -0
- package/dist/services/multi-agent/team-generator.service.js.map +1 -0
- package/dist/services/observability/observability-generator.service.d.ts +54 -0
- package/dist/services/observability/observability-generator.service.d.ts.map +1 -0
- package/dist/services/observability/observability-generator.service.js +1353 -0
- package/dist/services/observability/observability-generator.service.js.map +1 -0
- package/dist/services/registry/bundle.service.d.ts.map +1 -1
- package/dist/services/registry/bundle.service.js +2 -1
- package/dist/services/registry/bundle.service.js.map +1 -1
- package/dist/services/registry/index.service.js +1 -1
- package/dist/services/registry.service.d.ts.map +1 -1
- package/dist/services/registry.service.js +2 -1
- package/dist/services/registry.service.js.map +1 -1
- package/dist/services/release-automation/release-agent.service.js +1 -1
- package/dist/services/release-automation/release.service.d.ts +4 -4
- package/dist/services/release-automation/schemas/release.schema.d.ts +5 -5
- package/dist/services/release-automation/tag.service.d.ts +3 -3
- package/dist/services/runtime/anthropic.adapter.d.ts.map +1 -1
- package/dist/services/runtime/anthropic.adapter.js +2 -6
- package/dist/services/runtime/anthropic.adapter.js.map +1 -1
- package/dist/services/runtime/azure.adapter.d.ts +1 -1
- package/dist/services/runtime/azure.adapter.js +3 -3
- package/dist/services/runtime/azure.adapter.js.map +1 -1
- package/dist/services/runtime/bedrock.adapter.d.ts.map +1 -1
- package/dist/services/runtime/bedrock.adapter.js +2 -6
- package/dist/services/runtime/bedrock.adapter.js.map +1 -1
- package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -1
- package/dist/services/runtime/claude/claude-adapter.js +2 -6
- package/dist/services/runtime/claude/claude-adapter.js.map +1 -1
- package/dist/services/runtime/gemini.adapter.d.ts.map +1 -1
- package/dist/services/runtime/gemini.adapter.js +2 -6
- package/dist/services/runtime/gemini.adapter.js.map +1 -1
- package/dist/services/runtime/mistral.adapter.d.ts.map +1 -1
- package/dist/services/runtime/mistral.adapter.js +2 -6
- package/dist/services/runtime/mistral.adapter.js.map +1 -1
- package/dist/services/runtime/ollama.adapter.d.ts.map +1 -1
- package/dist/services/runtime/ollama.adapter.js +2 -6
- package/dist/services/runtime/ollama.adapter.js.map +1 -1
- package/dist/services/runtime/openai.adapter.js +2 -2
- package/dist/services/runtime/openai.adapter.js.map +1 -1
- package/dist/services/skills-pipeline/index.d.ts +8 -0
- package/dist/services/skills-pipeline/index.d.ts.map +1 -0
- package/dist/services/skills-pipeline/index.js +8 -0
- package/dist/services/skills-pipeline/index.js.map +1 -0
- package/dist/services/skills-pipeline/skills-export.service.d.ts +86 -0
- package/dist/services/skills-pipeline/skills-export.service.d.ts.map +1 -0
- package/dist/services/skills-pipeline/skills-export.service.js +483 -0
- package/dist/services/skills-pipeline/skills-export.service.js.map +1 -0
- package/dist/services/skills-pipeline/skills-generator.service.d.ts +118 -0
- package/dist/services/skills-pipeline/skills-generator.service.d.ts.map +1 -0
- package/dist/services/skills-pipeline/skills-generator.service.js +648 -0
- package/dist/services/skills-pipeline/skills-generator.service.js.map +1 -0
- package/dist/services/skills-pipeline/skills-research.service.d.ts +112 -0
- package/dist/services/skills-pipeline/skills-research.service.d.ts.map +1 -0
- package/dist/services/skills-pipeline/skills-research.service.js +471 -0
- package/dist/services/skills-pipeline/skills-research.service.js.map +1 -0
- package/dist/services/taxonomy-service.d.ts +4 -4
- package/dist/services/taxonomy-service.js +1 -1
- package/dist/services/template-processor.service.d.ts.map +1 -1
- package/dist/services/template-processor.service.js +7 -5
- package/dist/services/template-processor.service.js.map +1 -1
- package/dist/services/test-runner/mock-llm.service.d.ts.map +1 -1
- package/dist/services/test-runner/mock-llm.service.js +1 -2
- package/dist/services/test-runner/mock-llm.service.js.map +1 -1
- package/dist/services/test-runner/scenarios.d.ts.map +1 -1
- package/dist/services/test-runner/scenarios.js +9 -3
- package/dist/services/test-runner/scenarios.js.map +1 -1
- package/dist/services/test-runner/test-runner.service.d.ts.map +1 -1
- package/dist/services/test-runner/test-runner.service.js.map +1 -1
- package/dist/services/validation/best-practices-validator.d.ts.map +1 -1
- package/dist/services/validation/best-practices-validator.js.map +1 -1
- package/dist/services/validation/cost-estimator.d.ts.map +1 -1
- package/dist/services/validation/cost-estimator.js +4 -2
- package/dist/services/validation/cost-estimator.js.map +1 -1
- package/dist/services/validation/enhanced-validator.d.ts.map +1 -1
- package/dist/services/validation/enhanced-validator.js +2 -4
- package/dist/services/validation/enhanced-validator.js.map +1 -1
- package/dist/services/validation/security-validator.d.ts.map +1 -1
- package/dist/services/validation/security-validator.js +3 -1
- package/dist/services/validation/security-validator.js.map +1 -1
- package/dist/services/validation-zod.service.js +1 -1
- package/dist/services/validation-zod.service.js.map +1 -1
- package/dist/services/validation.service.d.ts +7 -2
- package/dist/services/validation.service.d.ts.map +1 -1
- package/dist/services/validation.service.js +7 -4
- package/dist/services/validation.service.js.map +1 -1
- package/dist/services/validators/a2a.validator.js +1 -1
- package/dist/services/validators/a2a.validator.js.map +1 -1
- package/dist/services/validators/autogen.validator.js +1 -1
- package/dist/services/validators/autogen.validator.js.map +1 -1
- package/dist/services/validators/contract.validator.js.map +1 -1
- package/dist/services/validators/crewai.validator.js +1 -1
- package/dist/services/validators/crewai.validator.js.map +1 -1
- package/dist/services/validators/dependencies.validator.d.ts +1 -1
- package/dist/services/validators/dependencies.validator.d.ts.map +1 -1
- package/dist/services/validators/kagent.validator.js +1 -1
- package/dist/services/validators/kagent.validator.js.map +1 -1
- package/dist/services/validators/langchain.validator.js +1 -1
- package/dist/services/validators/langchain.validator.js.map +1 -1
- package/dist/services/validators/langgraph.validator.js +1 -1
- package/dist/services/validators/langgraph.validator.js.map +1 -1
- package/dist/services/validators/mcp.validator.js +1 -1
- package/dist/services/validators/mcp.validator.js.map +1 -1
- package/dist/services/wizard/prompts.d.ts.map +1 -1
- package/dist/services/wizard/prompts.js +37 -14
- package/dist/services/wizard/prompts.js.map +1 -1
- package/dist/services/wizard/wizard.service.d.ts +1 -1
- package/dist/services/wizard/wizard.service.d.ts.map +1 -1
- package/dist/services/wizard/wizard.service.js +98 -30
- package/dist/services/wizard/wizard.service.js.map +1 -1
- package/dist/spec/extensions/knowledge-graph/knowledge-graph.schema.json +386 -0
- package/dist/spec/extensions/manifest-extensions.md +2 -2
- package/dist/spec/registry/README.md +1 -1
- package/dist/spec/registry/registry-spec.md +4 -4
- package/dist/spec/v0.4/agent-card.schema.json +390 -0
- package/dist/spec/v0.4/agent.schema.json +952 -39
- package/dist/spec/v0.4/extensions/drupal/drupal.schema.json +77 -0
- package/dist/spec/v0.4/extensions/evals/evals.schema.json +597 -0
- package/dist/spec/v0.4/extensions/governance/governance-extension.yaml +161 -0
- package/dist/spec/v0.4/extensions/identity/identity.schema.json +302 -0
- package/dist/spec/v0.4/extensions/kagent/README.md +1 -1
- package/dist/spec/v0.4/extensions/team/team.schema.json +304 -0
- package/dist/spec/v0.4/validator.schema.json +282 -0
- package/dist/spec/v0.5/agent.schema.json +768 -0
- package/dist/transports/websocket.d.ts +1 -0
- package/dist/transports/websocket.d.ts.map +1 -1
- package/dist/transports/websocket.js +10 -2
- package/dist/transports/websocket.js.map +1 -1
- package/dist/types/architect.d.ts +2 -2
- package/dist/types/architect.d.ts.map +1 -1
- package/dist/types/dynamic-agent-types.d.ts +158 -0
- package/dist/types/dynamic-agent-types.d.ts.map +1 -0
- package/dist/types/dynamic-agent-types.js +473 -0
- package/dist/types/dynamic-agent-types.js.map +1 -0
- package/dist/types/generated/ossa-0.3.4.types.d.ts +63 -0
- package/dist/types/generated/ossa-0.3.4.types.d.ts.map +1 -1
- package/dist/types/generated/ossa-0.3.4.zod.d.ts +303 -0
- package/dist/types/generated/ossa-0.3.4.zod.d.ts.map +1 -1
- package/dist/types/generated/ossa-0.3.4.zod.js +92 -0
- package/dist/types/generated/ossa-0.3.4.zod.js.map +1 -1
- package/dist/types/identity.zod.d.ts +20 -20
- package/dist/types/index.d.ts +238 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/personality.zod.d.ts +69 -69
- package/dist/types/prompts.zod.d.ts +2 -2
- package/dist/types/protocols.d.ts +158 -0
- package/dist/types/protocols.d.ts.map +1 -0
- package/dist/types/protocols.js +8 -0
- package/dist/types/protocols.js.map +1 -0
- package/dist/types/security.d.ts +123 -0
- package/dist/types/security.d.ts.map +1 -0
- package/dist/types/security.js +9 -0
- package/dist/types/security.js.map +1 -0
- package/dist/types/tool.d.ts +73 -0
- package/dist/types/tool.d.ts.map +1 -0
- package/dist/types/tool.js +66 -0
- package/dist/types/tool.js.map +1 -0
- package/dist/utils/logger.d.ts +82 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +250 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/version.d.ts +9 -9
- package/dist/utils/version.d.ts.map +1 -1
- package/dist/utils/version.js +11 -18
- package/dist/utils/version.js.map +1 -1
- package/dist/validation/error-codes.js +5 -5
- package/dist/validation/error-codes.js.map +1 -1
- package/dist/validation/index.d.ts +3 -0
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +6 -0
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/linter.d.ts +3 -3
- package/dist/validation/linter.js +4 -4
- package/dist/validation/linter.js.map +1 -1
- package/dist/validation/progressive-scorer.d.ts +123 -0
- package/dist/validation/progressive-scorer.d.ts.map +1 -0
- package/dist/validation/progressive-scorer.js +353 -0
- package/dist/validation/progressive-scorer.js.map +1 -0
- package/dist/validation/validation-context.d.ts +86 -0
- package/dist/validation/validation-context.d.ts.map +1 -0
- package/dist/validation/validation-context.js +138 -0
- package/dist/validation/validation-context.js.map +1 -0
- package/dist/validation/validator-registry.d.ts +158 -0
- package/dist/validation/validator-registry.d.ts.map +1 -0
- package/dist/validation/validator-registry.js +245 -0
- package/dist/validation/validator-registry.js.map +1 -0
- package/dist/validation/validator.d.ts +3 -3
- package/dist/validation/validator.d.ts.map +1 -1
- package/dist/validation/validator.js +4 -4
- package/dist/validation/validator.js.map +1 -1
- package/dist/version-management/api/server.d.ts.map +1 -1
- package/dist/version-management/api/server.js.map +1 -1
- package/dist/version-management/cli/index.js +8 -1
- package/dist/version-management/cli/index.js.map +1 -1
- package/dist/version-management/core/version-manager.d.ts.map +1 -1
- package/dist/version-management/core/version-manager.js +5 -2
- package/dist/version-management/core/version-manager.js.map +1 -1
- package/dist/version-management/core/version-manager.test.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +10 -7
- package/dist/version.js.map +1 -1
- package/examples/a2a/agent-handoff.ossa.yaml +1 -1
- package/examples/a2a/service-discovery.ossa.yaml +1 -1
- package/examples/adapters/drupal-eca-mapping.yaml +1 -1
- package/examples/adapters/drupal-eca-task.yaml +1 -1
- package/examples/adapters/drupal-flowdrop-mapping.yaml +1 -1
- package/examples/adapters/drupal-maestro-mapping.yaml +1 -1
- package/examples/adapters/mistral-README.md +1 -1
- package/examples/adapters/mistral-agent.yaml +1 -1
- package/examples/adapters/symfony-messenger-task.yaml +1 -1
- package/examples/adapters/symfony-messenger-workflow.yaml +1 -1
- package/examples/adk-integration/code-review-workflow.yml +1 -1
- package/examples/adk-integration/customer-support.yml +1 -1
- package/examples/adk-integration/data-pipeline.yml +1 -1
- package/examples/advanced/reasoning-agent.yaml +1 -1
- package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
- package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
- package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
- package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
- package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
- package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
- package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
- package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
- package/examples/agent-manifests/v0.5-identity-security-protocols.ossa.yaml +159 -0
- package/examples/agent-manifests/v0.5-minimal.ossa.yaml +37 -0
- package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
- package/examples/agent-mesh/DISCOVERY.md +679 -0
- package/examples/agent-mesh/discovery-system.ts +670 -0
- package/examples/agent-taxonomy-example.ossa.yaml +89 -0
- package/examples/agents/01-customer-support-bot/agent.ossa.yaml +1 -1
- package/examples/agents/02-code-review-agent/agent.ossa.yaml +50 -1
- package/examples/agents/03-data-analysis-agent/agent.ossa.yaml +56 -1
- package/examples/agents/04-content-moderator/agent.ossa.yaml +1 -1
- package/examples/agents/05-sales-assistant/agent.ossa.yaml +1 -1
- package/examples/agents/06-devops-agent/agent.ossa.yaml +48 -1
- package/examples/agents/07-research-assistant/agent.ossa.yaml +62 -2
- package/examples/agents/08-email-triage-agent/agent.ossa.yaml +1 -1
- package/examples/agents/09-security-scanner/agent.ossa.yaml +47 -1
- package/examples/agents/10-meeting-assistant/agent.ossa.yaml +1 -1
- package/examples/agents/architecture-healer-enterprise.yaml +1 -1
- package/examples/agents/dependency-healer-npm.yaml +1 -1
- package/examples/agents/spec-healer-openapi.yaml +1 -1
- package/examples/agents/wiki-healer-production.yaml +1 -1
- package/examples/agents-md/monorepo-agent.ossa.yaml +1 -1
- package/examples/autonomous-evolution/self-evolving-agent.ossa.yaml +1 -1
- package/examples/build-once-use-everywhere/README.md +3 -3
- package/examples/build-once-use-everywhere/agent.ossa.yaml +1 -1
- package/examples/claude-code/code-reviewer.ossa.yaml +1 -1
- package/examples/claude-code/ossa-validator.ossa.yaml +1 -1
- package/examples/common_npm/agent-router.ossa.yaml +1 -1
- package/examples/contracts/data-consumer.ossa.yaml +1 -1
- package/examples/contracts/data-producer-v2.ossa.yaml +1 -1
- package/examples/contracts/data-producer.ossa.yaml +1 -1
- package/examples/deployment-workflow.md +601 -0
- package/examples/drupal/QUICKSTART.md +8 -8
- package/examples/drupal/content-moderator.ossa.yaml +1 -1
- package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -1
- package/examples/export/langchain/production-agent-with-memory/agent.ossa.yaml +1 -1
- package/examples/export/langchain/production-agent-with-tools/agent.ossa.yaml +1 -1
- package/examples/extensions/agents-md-advanced.yml +1 -1
- package/examples/extensions/agents-md-basic.yml +1 -1
- package/examples/extensions/agents-md-sync.yml +1 -1
- package/examples/extensions/agents-md-v1.yml +3 -3
- package/examples/extensions/drupal-v1.yml +1 -1
- package/examples/extensions/encryption-multi-provider.yaml +4 -4
- package/examples/extensions/kagent-v1.yml +1 -1
- package/examples/extensions/knowledge-sources.yaml +1 -1
- package/examples/extensions/mcp-full-featured.yaml +1 -1
- package/examples/getting-started/01-minimal-agent.ossa.yaml +1 -1
- package/examples/getting-started/02-agent-with-tools.ossa.yaml +1 -1
- package/examples/getting-started/03-agent-with-safety.ossa.yaml +1 -1
- package/examples/getting-started/04-agent-with-messaging.ossa.yaml +1 -1
- package/examples/getting-started/05-workflow-composition.ossa.yaml +1 -1
- package/examples/getting-started/hello-world-complete.ossa.yaml +2 -1
- package/examples/gitlab-agents/DEPLOYMENT.md +331 -0
- package/examples/gitlab-agents/daily-code-scan/.env.example +11 -0
- package/examples/gitlab-agents/daily-code-scan/.gitlab-ci.yml +34 -0
- package/examples/gitlab-agents/daily-code-scan/Dockerfile +18 -0
- package/examples/gitlab-agents/daily-code-scan/README.md +80 -0
- package/examples/gitlab-agents/daily-code-scan/package.json +28 -0
- package/examples/gitlab-agents/daily-code-scan/src/gitlab-client.ts +135 -0
- package/examples/gitlab-agents/daily-code-scan/src/index.ts +50 -0
- package/examples/gitlab-agents/daily-code-scan/src/types.ts +22 -0
- package/examples/gitlab-agents/daily-code-scan/src/workflow.ts +109 -0
- package/examples/gitlab-agents/daily-code-scan/tsconfig.json +24 -0
- package/examples/gitlab-agents/duo-comment-responder/.env.example +14 -0
- package/examples/gitlab-agents/duo-comment-responder/.gitlab-ci.yml +34 -0
- package/examples/gitlab-agents/duo-comment-responder/Dockerfile +18 -0
- package/examples/gitlab-agents/duo-comment-responder/README.md +98 -0
- package/examples/gitlab-agents/duo-comment-responder/package.json +29 -0
- package/examples/gitlab-agents/duo-comment-responder/src/gitlab-client.ts +56 -0
- package/examples/gitlab-agents/duo-comment-responder/src/index.ts +103 -0
- package/examples/gitlab-agents/duo-comment-responder/src/llm-client.ts +75 -0
- package/examples/gitlab-agents/duo-comment-responder/src/types.ts +22 -0
- package/examples/gitlab-agents/duo-comment-responder/src/workflow.ts +135 -0
- package/examples/gitlab-agents/duo-comment-responder/tsconfig.json +24 -0
- package/examples/gitlab-agents/duo-comment-responder/webhook-config.json +11 -0
- package/examples/gitlab-agents/k8s/deploy-all.yaml +341 -0
- package/examples/gitlab-agents/mr-reviewer/.env.example +14 -0
- package/examples/gitlab-agents/mr-reviewer/.gitlab-ci.yml +34 -0
- package/examples/gitlab-agents/mr-reviewer/Dockerfile +18 -0
- package/examples/gitlab-agents/mr-reviewer/README.md +98 -0
- package/examples/gitlab-agents/mr-reviewer/package.json +29 -0
- package/examples/gitlab-agents/mr-reviewer/src/gitlab-client.ts +136 -0
- package/examples/gitlab-agents/mr-reviewer/src/index.ts +103 -0
- package/examples/gitlab-agents/mr-reviewer/src/llm-client.ts +95 -0
- package/examples/gitlab-agents/mr-reviewer/src/types.ts +22 -0
- package/examples/gitlab-agents/mr-reviewer/src/workflow.ts +144 -0
- package/examples/gitlab-agents/mr-reviewer/tsconfig.json +24 -0
- package/examples/gitlab-agents/mr-reviewer/webhook-config.json +11 -0
- package/examples/gitlab-agents/pipeline-auto-fix/.env.example +14 -0
- package/examples/gitlab-agents/pipeline-auto-fix/.gitlab-ci.yml +34 -0
- package/examples/gitlab-agents/pipeline-auto-fix/Dockerfile +18 -0
- package/examples/gitlab-agents/pipeline-auto-fix/README.md +98 -0
- package/examples/gitlab-agents/pipeline-auto-fix/package.json +29 -0
- package/examples/gitlab-agents/pipeline-auto-fix/src/gitlab-client.ts +76 -0
- package/examples/gitlab-agents/pipeline-auto-fix/src/index.ts +103 -0
- package/examples/gitlab-agents/pipeline-auto-fix/src/llm-client.ts +79 -0
- package/examples/gitlab-agents/pipeline-auto-fix/src/types.ts +22 -0
- package/examples/gitlab-agents/pipeline-auto-fix/src/workflow.ts +146 -0
- package/examples/gitlab-agents/pipeline-auto-fix/tsconfig.json +24 -0
- package/examples/gitlab-agents/pipeline-auto-fix/webhook-config.json +11 -0
- package/examples/gitlab-agents/pre-commit-quality-check/.env.example +11 -0
- package/examples/gitlab-agents/pre-commit-quality-check/.gitlab-ci.yml +34 -0
- package/examples/gitlab-agents/pre-commit-quality-check/Dockerfile +18 -0
- package/examples/gitlab-agents/pre-commit-quality-check/README.md +80 -0
- package/examples/gitlab-agents/pre-commit-quality-check/package.json +28 -0
- package/examples/gitlab-agents/pre-commit-quality-check/src/gitlab-client.ts +20 -0
- package/examples/gitlab-agents/pre-commit-quality-check/src/index.ts +50 -0
- package/examples/gitlab-agents/pre-commit-quality-check/src/types.ts +22 -0
- package/examples/gitlab-agents/pre-commit-quality-check/src/workflow.ts +63 -0
- package/examples/gitlab-agents/pre-commit-quality-check/tsconfig.json +24 -0
- package/examples/gitlab-agents/pre-push-validation/.env.example +11 -0
- package/examples/gitlab-agents/pre-push-validation/.gitlab-ci.yml +34 -0
- package/examples/gitlab-agents/pre-push-validation/Dockerfile +18 -0
- package/examples/gitlab-agents/pre-push-validation/README.md +80 -0
- package/examples/gitlab-agents/pre-push-validation/package.json +28 -0
- package/examples/gitlab-agents/pre-push-validation/src/gitlab-client.ts +20 -0
- package/examples/gitlab-agents/pre-push-validation/src/index.ts +50 -0
- package/examples/gitlab-agents/pre-push-validation/src/types.ts +22 -0
- package/examples/gitlab-agents/pre-push-validation/src/workflow.ts +63 -0
- package/examples/gitlab-agents/pre-push-validation/tsconfig.json +24 -0
- package/examples/gitlab-duo/EXTERNAL_AGENTS.md +466 -0
- package/examples/gitlab-duo/README.md +307 -0
- package/examples/gitlab-duo/code-review-flow.yaml +62 -0
- package/examples/gitlab-duo/external-agent-example.ts +192 -0
- package/examples/gitlab-duo/generated/custom-vars-agent.yaml +45 -0
- package/examples/gitlab-duo/generated/go-agent.yaml +41 -0
- package/examples/gitlab-duo/generated/python-agent.yaml +43 -0
- package/examples/gitlab-duo/generated/webhook-agent.yaml +52 -0
- package/examples/hierarchical-agent.ossa.yaml +126 -0
- package/examples/hierarchical-crewai.ossa.yaml +96 -0
- package/examples/infrastructure/token-rotation/README.md +117 -0
- package/examples/infrastructure/token-rotation/manifest.ossa.yaml +73 -0
- package/examples/infrastructure/token-rotation/openapi.yaml +133 -0
- package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +1 -1
- package/examples/kagent/compliance-validator.ossa.yaml +1 -1
- package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
- package/examples/kagent/documentation-agent.ossa.yaml +1 -1
- package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -1
- package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
- package/examples/kagent/security-scanner.ossa.yaml +1 -1
- package/examples/knowledge-graph/drupal-agent-with-kg.ossa.yaml +289 -0
- package/examples/mcp/browser-puppeteer.ossa.yaml +232 -0
- package/examples/mcp/database-mcp.ossa.yaml +1 -1
- package/examples/mcp/filesystem-mcp.ossa.yaml +1 -1
- package/examples/messaging/dependency-healer.ossa.yaml +1 -1
- package/examples/messaging/incident-responder.ossa.yaml +1 -1
- package/examples/messaging/routing-rules.ossa.yaml +1 -1
- package/examples/messaging/security-scanner.ossa.yaml +1 -1
- package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
- package/examples/migrations/langchain/01-python-react-agent-after.ossa.yaml +1 -1
- package/examples/migrations/langchain/02-typescript-conversational-after.ossa.yaml +1 -1
- package/examples/migrations/langchain/03-sequential-chain-after.ossa.yaml +1 -1
- package/examples/migrations/langchain/04-config-based-after.ossa.yaml +1 -1
- package/examples/migrations/langchain/USAGE.txt +1 -1
- package/examples/migrations/swarm-to-ossa/QUICKSTART.md +3 -3
- package/examples/migrations/swarm-to-ossa/after-handoffs.ossa.yaml +6 -6
- package/examples/migrations/swarm-to-ossa/after-triage-agent.ossa.yaml +3 -3
- package/examples/minimal/agent.yml +1 -1
- package/examples/mr-reviewer-with-governance.ossa.yaml +130 -0
- package/examples/multi-agent/conditional-router.ossa.yaml +1 -1
- package/examples/multi-agent/parallel-execution.ossa.yaml +1 -1
- package/examples/multi-agent/sequential-pipeline.ossa.yaml +1 -1
- package/examples/multi-agent-research-workflow.ossa.yaml +1 -1
- package/examples/multi-platform/single-manifest/agent.ossa.yaml +1 -1
- package/examples/observability/activity-stream-full.yaml +1 -1
- package/examples/openai/basic-agent.ossa.yaml +1 -1
- package/examples/ossa-templates/01-code-assistant.ossa.yaml +1 -1
- package/examples/ossa-templates/02-security-scanner.ossa.yaml +1 -1
- package/examples/ossa-templates/03-ci-pipeline.ossa.yaml +1 -1
- package/examples/ossa-templates/04-code-reviewer.ossa.yaml +1 -1
- package/examples/ossa-templates/05-doc-generator.ossa.yaml +1 -1
- package/examples/ossa-templates/06-compliance-validator.ossa.yaml +1 -1
- package/examples/ossa-templates/07-workflow-orchestrator.ossa.yaml +1 -1
- package/examples/ossa-templates/08-content-writer.ossa.yaml +1 -1
- package/examples/ossa-templates/09-test-generator.ossa.yaml +1 -1
- package/examples/ossa-templates/10-data-transformer.ossa.yaml +1 -1
- package/examples/ossa-templates/11-react-performance-expert.ossa.yaml +1 -1
- package/examples/ossa-templates/12-typescript-type-safety-expert.ossa.yaml +1 -1
- package/examples/ossa-templates/13-accessibility-champion.ossa.yaml +1 -1
- package/examples/ossa-templates/14-security-hardening-agent.ossa.yaml +1 -1
- package/examples/pipeline-agent.ossa.yaml +196 -0
- package/examples/platform-specific/claude-code-subagent.yaml +185 -0
- package/examples/platform-specific/cursor-coding-agent.yaml +175 -0
- package/examples/platform-specific/warp-terminal-agent.yaml +122 -0
- package/examples/production/document-analyzer-openai.yml +1 -1
- package/examples/production-ready/01-customer-support-bot/agent.ossa.yaml +1 -1
- package/examples/production-ready/02-code-review-agent/agent.ossa.yaml +1 -1
- package/examples/production-ready/03-data-analysis-agent/agent.ossa.yaml +1 -1
- package/examples/production-ready/04-content-moderator/agent.ossa.yaml +1 -1
- package/examples/production-ready/05-sales-assistant/agent.ossa.yaml +1 -1
- package/examples/production-ready/06-devops-agent/agent.ossa.yaml +1 -1
- package/examples/production-ready/07-research-assistant/agent.ossa.yaml +1 -1
- package/examples/production-ready/08-email-triage-agent/agent.ossa.yaml +1 -1
- package/examples/production-ready/09-security-scanner/agent.ossa.yaml +1 -1
- package/examples/production-ready/10-meeting-assistant/agent.ossa.yaml +1 -1
- package/examples/quickstart/support-agent.ossa.yaml +1 -1
- package/examples/real-world/gitlab-cicd-optimizer.ossa.yaml +1 -1
- package/examples/real-world/rag-documentation-assistant.ossa.yaml +1 -1
- package/examples/reference-implementations/python-client/README.md +2 -2
- package/examples/reference-implementations/typescript-client/README.md +1 -1
- package/examples/registry/agents/code-reviewer/agent.yaml +1 -1
- package/examples/registry/agents/security-scanner/agent.yaml +1 -1
- package/examples/runtime-adapters/bedrock-claude-example.ossa.yaml +1 -1
- package/examples/schema/reusable-components.yaml +1 -1
- package/examples/showcase/PRODUCTION_EXAMPLES.md +499 -0
- package/examples/showcase/ci-pipeline.ossa.yaml +1 -1
- package/examples/showcase/code-assistant.ossa.yaml +1 -1
- package/examples/showcase/code-reviewer.ossa.yaml +1 -1
- package/examples/showcase/compliance-checker.ossa.yaml +207 -0
- package/examples/showcase/compliance-validator.ossa.yaml +1 -1
- package/examples/showcase/content-writer.ossa.yaml +1 -1
- package/examples/showcase/customer-support.ossa.yaml +344 -0
- package/examples/showcase/data-processing-pipeline.ossa.yaml +254 -0
- package/examples/showcase/data-transformer.ossa.yaml +1 -1
- package/examples/showcase/doc-generator.ossa.yaml +1 -1
- package/examples/showcase/full-power-agent.ossa.yaml +350 -0
- package/examples/showcase/security-scanner-enhanced.ossa.yaml +304 -0
- package/examples/showcase/security-scanner.ossa.yaml +1 -1
- package/examples/showcase/team-leader.ossa.yaml +306 -0
- package/examples/showcase/test-generator.ossa.yaml +1 -1
- package/examples/showcase/workflow-orchestrator.ossa.yaml +1 -1
- package/examples/single-agent.ossa.yaml +40 -0
- package/examples/skills-example.ossa.yaml +1 -1
- package/examples/subagents-pipeline.ossa.yaml +76 -0
- package/examples/swarm-agent.ossa.yaml +136 -0
- package/examples/swarm-handoff.ossa.yaml +67 -0
- package/examples/tasks/batch-email-sender.yaml +1 -1
- package/examples/tasks/data-transform.yaml +1 -1
- package/examples/tasks/publish-content.yaml +1 -1
- package/examples/team-agent.ossa.yaml +159 -0
- package/examples/team-lead-teammate.ossa.yaml +83 -0
- package/examples/templates/ossa-compliance.yaml +1 -1
- package/examples/unified/security-scanner.ossa.yaml +1 -1
- package/examples/workflows/batch-email-campaign.yaml +1 -1
- package/examples/workflows/content-review-publish.yaml +1 -1
- package/examples/workflows/simple-etl.yaml +1 -1
- package/openapi/agents-md-service.yaml +1 -1
- package/openapi/core/unified-agent-gateway.openapi.yaml +1 -1
- package/openapi/ossa-cli-enhancements.openapi.yaml +3 -3
- package/openapi/ossa-cli.yaml +1 -1
- package/openapi/protocols/sse-streams.yaml +1 -1
- package/openapi/protocols/websocket-events.yaml +2 -2
- package/openapi/release-automation.openapi.yaml +1 -1
- package/package.json +49 -28
- package/spec/extensions/knowledge-graph/knowledge-graph.schema.json +386 -0
- package/spec/extensions/manifest-extensions.md +2 -2
- package/spec/registry/README.md +1 -1
- package/spec/registry/registry-spec.md +4 -4
- package/spec/v0.4/agent-card.schema.json +390 -0
- package/spec/v0.4/agent.schema.json +952 -39
- package/spec/v0.4/extensions/drupal/drupal.schema.json +77 -0
- package/spec/v0.4/extensions/evals/evals.schema.json +597 -0
- package/spec/v0.4/extensions/governance/governance-extension.yaml +161 -0
- package/spec/v0.4/extensions/identity/identity.schema.json +302 -0
- package/spec/v0.4/extensions/kagent/README.md +1 -1
- package/spec/v0.4/extensions/team/team.schema.json +304 -0
- package/spec/v0.4/validator.schema.json +282 -0
- package/spec/v0.5/agent.schema.json +768 -0
- package/templates/agent-types/claude-agent.ossa.yaml +83 -0
- package/templates/agent-types/kagent.ossa.yaml +110 -0
- package/templates/agent-types/langchain-agent.ossa.yaml +106 -0
- package/templates/agent-types/openapi-agent.ossa.yaml +121 -0
- package/templates/agent-types/swarm-agents.ossa.yaml +168 -0
- package/templates/ci-cd/github-actions.deploy.yml +272 -0
- package/templates/ci-cd/gitlab-ci.deploy.yml +205 -0
- package/templates/validators/capability-compatibility.ossa.yaml +174 -0
- package/templates/validators/coordination-consistency.ossa.yaml +160 -0
- package/templates/validators/pattern-requirements.ossa.yaml +182 -0
- package/templates/validators/transport-compatibility.ossa.yaml +185 -0
- package/.wiki-config.json +0 -24
- package/DEMO.md +0 -212
- package/dist/adapters/anthropic/runtime.d.ts +0 -136
- package/dist/adapters/anthropic/runtime.d.ts.map +0 -1
- package/dist/adapters/anthropic/runtime.js +0 -290
- package/dist/adapters/anthropic/runtime.js.map +0 -1
- package/dist/cli/commands/agent-create.command.d.ts +0 -18
- package/dist/cli/commands/agent-create.command.d.ts.map +0 -1
- package/dist/cli/commands/agent-create.command.js +0 -437
- package/dist/cli/commands/agent-create.command.js.map +0 -1
- package/dist/cli/commands/catalog/diff.command.d.ts +0 -8
- package/dist/cli/commands/catalog/diff.command.d.ts.map +0 -1
- package/dist/cli/commands/catalog/diff.command.js +0 -76
- package/dist/cli/commands/catalog/diff.command.js.map +0 -1
- package/dist/cli/commands/catalog/pull.command.d.ts +0 -8
- package/dist/cli/commands/catalog/pull.command.d.ts.map +0 -1
- package/dist/cli/commands/catalog/pull.command.js +0 -87
- package/dist/cli/commands/catalog/pull.command.js.map +0 -1
- package/dist/cli/commands/catalog/push.command.d.ts +0 -8
- package/dist/cli/commands/catalog/push.command.d.ts.map +0 -1
- package/dist/cli/commands/catalog/push.command.js +0 -98
- package/dist/cli/commands/catalog/push.command.js.map +0 -1
- package/dist/cli/commands/catalog/sync.command.d.ts +0 -8
- package/dist/cli/commands/catalog/sync.command.d.ts.map +0 -1
- package/dist/cli/commands/catalog/sync.command.js +0 -69
- package/dist/cli/commands/catalog/sync.command.js.map +0 -1
- package/dist/cli/commands/setup.command.d.ts +0 -11
- package/dist/cli/commands/setup.command.d.ts.map +0 -1
- package/dist/cli/commands/setup.command.js +0 -354
- package/dist/cli/commands/setup.command.js.map +0 -1
- package/dist/spec/v0.3/CHANGELOG.md +0 -237
- package/dist/spec/v0.3/MIGRATION-v0.3.4-to-v0.3.5.md +0 -292
- package/dist/spec/v0.3/MIGRATION-v0.3.5-to-v0.3.6.md +0 -552
- package/dist/spec/v0.3/README.md +0 -366
- package/dist/spec/v0.3/adoption-blockers.json +0 -142
- package/dist/spec/v0.3/bat-framework.schema.json +0 -114
- package/dist/spec/v0.3/capability-discovery.schema.json +0 -128
- package/dist/spec/v0.3/checkpoint.schema.json +0 -132
- package/dist/spec/v0.3/completion-signals.schema.json +0 -136
- package/dist/spec/v0.3/conformance/IMPLEMENTATION.md +0 -402
- package/dist/spec/v0.3/conformance/PROFILES.md +0 -210
- package/dist/spec/v0.3/conformance/README.md +0 -263
- package/dist/spec/v0.3/conformance/profiles/baseline.json +0 -27
- package/dist/spec/v0.3/conformance/profiles/enterprise.json +0 -33
- package/dist/spec/v0.3/conformance/profiles/gitlab-kagent.json +0 -36
- package/dist/spec/v0.3/conformance/tests/baseline/invalid/missing-identity.yaml +0 -6
- package/dist/spec/v0.3/conformance/tests/baseline/invalid/missing-kind.yaml +0 -7
- package/dist/spec/v0.3/conformance/tests/baseline/valid/basic-agent.yaml +0 -22
- package/dist/spec/v0.3/conformance/tests/baseline/valid/minimal-agent.yaml +0 -15
- package/dist/spec/v0.3/conformance/tests/enterprise/valid/enterprise-agent.yaml +0 -88
- package/dist/spec/v0.3/conformance/tests/enterprise/valid/production-agent.yaml +0 -112
- package/dist/spec/v0.3/conformance/tests/gitlab-kagent/valid/kagent-agent.yaml +0 -117
- package/dist/spec/v0.3/conformance/tests/gitlab-kagent/valid/kagent-full.yaml +0 -125
- package/dist/spec/v0.3/examples/checkpoint-example.ossa.yaml +0 -81
- package/dist/spec/v0.3/examples/flow-example.ossa.yaml +0 -119
- package/dist/spec/v0.3/examples/forward-thinking-agent.ossa.yaml +0 -294
- package/dist/spec/v0.3/examples/moe-example.ossa.yaml +0 -120
- package/dist/spec/v0.3/extensions/a2a/README.md +0 -193
- package/dist/spec/v0.3/extensions/a2a/a2a.schema.json +0 -77
- package/dist/spec/v0.3/extensions/ag2/ag2.schema.json +0 -277
- package/dist/spec/v0.3/extensions/crewai/crewai.schema.json +0 -256
- package/dist/spec/v0.3/extensions/kagent/README.md +0 -315
- package/dist/spec/v0.3/extensions/kagent/kagent.schema.json +0 -624
- package/dist/spec/v0.3/extensions/langchain/langchain.schema.json +0 -243
- package/dist/spec/v0.3/extensions/langgraph/langgraph.schema.json +0 -211
- package/dist/spec/v0.3/extensions/mcp/README.md +0 -276
- package/dist/spec/v0.3/extensions/mcp/mcp.schema.json +0 -84
- package/dist/spec/v0.3/feedback-loops.schema.json +0 -145
- package/dist/spec/v0.3/flow-kind.schema.json +0 -244
- package/dist/spec/v0.3/infrastructure-substrate.schema.json +0 -190
- package/dist/spec/v0.3/mixture-of-experts.schema.json +0 -159
- package/dist/spec/v0.3/moe-metrics.schema.json +0 -162
- package/dist/spec/v0.3/ossa-0.3.5.schema.json +0 -13534
- package/dist/spec/v0.3/ossa-0.3.6.schema.json +0 -14920
- package/dist/spec/v0.3/ossa-v0.3.schema.json +0 -15824
- package/dist/spec/v0.3/registry/registry-contract.schema.json +0 -359
- package/dist/spec/v0.3.6/CHANGELOG.md +0 -171
- package/dist/spec/v0.3.6/README.md +0 -382
- package/dist/spec/v0.3.6/taxonomy.yaml +0 -506
- package/examples/bridges/__pycache__/test_aiflow_integration.cpython-313.pyc +0 -0
- package/examples/migrations/swarm-to-ossa/before-handoffs.py +0 -373
- package/examples/v0.3.6/full-featured-v0.3.6.ossa.yaml +0 -304
- package/examples/v0.3.6/gitlab-duo-composite-identity.ossa.yaml +0 -119
- package/examples/v0.3.6/knowledge-graph-integration.ossa.yaml +0 -109
- package/examples/v0.3.6/token-efficiency-economy.ossa.yaml +0 -111
- package/examples/v0.3.6-features/README.md +0 -433
- package/examples/v0.3.6-features/genetics-breeding-advanced.ossa.yaml +0 -496
- package/examples/v0.3.6-features/genetics-breeding-simple.ossa.yaml +0 -304
- package/examples/v0.3.6-features/genetics-fitness-scoring.ossa.yaml +0 -551
- package/junit.xml +0 -1469
- package/llms-ctx-full.txt +0 -41
- package/llms-ctx.txt +0 -41
- package/schemas/capability-contract.v0.json +0 -116
- package/schemas/identity.lock.schema.json +0 -59
- package/schemas/identity.plan.schema.json +0 -132
- package/spec/v0.3/CHANGELOG.md +0 -237
- package/spec/v0.3/MIGRATION-v0.3.4-to-v0.3.5.md +0 -292
- package/spec/v0.3/MIGRATION-v0.3.5-to-v0.3.6.md +0 -552
- package/spec/v0.3/README.md +0 -366
- package/spec/v0.3/adoption-blockers.json +0 -142
- package/spec/v0.3/bat-framework.schema.json +0 -114
- package/spec/v0.3/capability-discovery.schema.json +0 -128
- package/spec/v0.3/checkpoint.schema.json +0 -132
- package/spec/v0.3/completion-signals.schema.json +0 -136
- package/spec/v0.3/conformance/IMPLEMENTATION.md +0 -402
- package/spec/v0.3/conformance/PROFILES.md +0 -210
- package/spec/v0.3/conformance/README.md +0 -263
- package/spec/v0.3/conformance/profiles/baseline.json +0 -27
- package/spec/v0.3/conformance/profiles/enterprise.json +0 -33
- package/spec/v0.3/conformance/profiles/gitlab-kagent.json +0 -36
- package/spec/v0.3/conformance/tests/baseline/invalid/missing-identity.yaml +0 -6
- package/spec/v0.3/conformance/tests/baseline/invalid/missing-kind.yaml +0 -7
- package/spec/v0.3/conformance/tests/baseline/valid/basic-agent.yaml +0 -22
- package/spec/v0.3/conformance/tests/baseline/valid/minimal-agent.yaml +0 -15
- package/spec/v0.3/conformance/tests/enterprise/valid/enterprise-agent.yaml +0 -88
- package/spec/v0.3/conformance/tests/enterprise/valid/production-agent.yaml +0 -112
- package/spec/v0.3/conformance/tests/gitlab-kagent/valid/kagent-agent.yaml +0 -117
- package/spec/v0.3/conformance/tests/gitlab-kagent/valid/kagent-full.yaml +0 -125
- package/spec/v0.3/examples/checkpoint-example.ossa.yaml +0 -81
- package/spec/v0.3/examples/flow-example.ossa.yaml +0 -119
- package/spec/v0.3/examples/forward-thinking-agent.ossa.yaml +0 -294
- package/spec/v0.3/examples/moe-example.ossa.yaml +0 -120
- package/spec/v0.3/extensions/a2a/README.md +0 -193
- package/spec/v0.3/extensions/a2a/a2a.schema.json +0 -77
- package/spec/v0.3/extensions/ag2/ag2.schema.json +0 -277
- package/spec/v0.3/extensions/crewai/crewai.schema.json +0 -256
- package/spec/v0.3/extensions/kagent/README.md +0 -315
- package/spec/v0.3/extensions/kagent/kagent.schema.json +0 -624
- package/spec/v0.3/extensions/langchain/langchain.schema.json +0 -243
- package/spec/v0.3/extensions/langgraph/langgraph.schema.json +0 -211
- package/spec/v0.3/extensions/mcp/README.md +0 -276
- package/spec/v0.3/extensions/mcp/mcp.schema.json +0 -84
- package/spec/v0.3/feedback-loops.schema.json +0 -145
- package/spec/v0.3/flow-kind.schema.json +0 -244
- package/spec/v0.3/infrastructure-substrate.schema.json +0 -190
- package/spec/v0.3/mixture-of-experts.schema.json +0 -159
- package/spec/v0.3/moe-metrics.schema.json +0 -162
- package/spec/v0.3/ossa-0.3.5.schema.json +0 -13534
- package/spec/v0.3/ossa-0.3.6.schema.json +0 -14920
- package/spec/v0.3/ossa-v0.3.schema.json +0 -15824
- package/spec/v0.3/registry/registry-contract.schema.json +0 -359
- package/spec/v0.3.6/CHANGELOG.md +0 -171
- package/spec/v0.3.6/README.md +0 -382
- package/spec/v0.3.6/taxonomy.yaml +0 -506
- package/templates/agent-types/analyzer/cost-analyzer.yaml +0 -38
- package/templates/agent-types/analyzer/performance-profiler.yaml +0 -38
- package/templates/agent-types/analyzer/security-scanner.yaml +0 -36
- package/templates/agent-types/backend/api-validator.yaml +0 -37
- package/templates/agent-types/backend/load-balancer.yaml +0 -39
- package/templates/agent-types/content/content-generator.yaml +0 -40
- package/templates/agent-types/content/seo-optimizer.yaml +0 -39
- package/templates/agent-types/data/data-processor.yaml +0 -38
- package/templates/agent-types/data/report-generator.yaml +0 -40
- package/templates/agent-types/development/code-generator.yaml +0 -39
- package/templates/agent-types/development/dependency-updater.yaml +0 -38
- package/templates/agent-types/frontend/accessibility-checker.yaml +0 -38
- package/templates/agent-types/frontend/ui-tester.yaml +0 -38
- package/templates/agent-types/infrastructure/deployment-automator.yaml +0 -39
- package/templates/agent-types/infrastructure/resource-optimizer.yaml +0 -38
- package/templates/agent-types/monitor/health-checker.yaml +0 -37
- package/templates/agent-types/monitor/log-analyzer.yaml +0 -37
- package/templates/agent-types/orchestrator/multi-agent-coordinator.yaml +0 -38
- package/templates/agent-types/orchestrator/workflow-manager.yaml +0 -39
- package/templates/agent-types/security/compliance-checker.yaml +0 -38
- package/templates/agent-types/security/vulnerability-scanner.yaml +0 -38
- package/templates/agent-types/worker/api-tester.yaml +0 -43
- package/templates/agent-types/worker/code-reviewer.yaml +0 -39
- package/templates/agent-types/worker/database-migrator.yaml +0 -38
- package/templates/platforms/cursor/code-assistant/manifest.ossa.yaml +0 -40
- package/templates/platforms/drupal/content-agent/manifest.ossa.yaml +0 -39
- package/templates/platforms/gitlab/ci-agent/manifest.ossa.yaml +0 -41
- package/templates/platforms/kubernetes/operator-agent/manifest.ossa.yaml +0 -39
- package/templates/platforms/langflow/workflow-agent/manifest.ossa.yaml +0 -38
|
@@ -0,0 +1,1353 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observability Generator Service
|
|
3
|
+
*
|
|
4
|
+
* Generates deployable observability configuration from an OSSA agent manifest:
|
|
5
|
+
* - observability/traces.yaml OTel Collector pipeline config
|
|
6
|
+
* - observability/metrics.yaml Prometheus-compatible metric definitions
|
|
7
|
+
* - observability/dashboards/agent-health.json Grafana dashboard template
|
|
8
|
+
*
|
|
9
|
+
* Uses OpenTelemetry gen_ai semantic conventions (v1.39.0 experimental).
|
|
10
|
+
* Reference: src/adapters/opentelemetry.adapter.ts for runtime patterns.
|
|
11
|
+
* This service generates static config FILES, not runtime initialization.
|
|
12
|
+
*
|
|
13
|
+
* SOLID: Single Responsibility - observability config generation only
|
|
14
|
+
* DRY: Reuses OssaAgent types, single-source manifest
|
|
15
|
+
*/
|
|
16
|
+
import * as yaml from 'yaml';
|
|
17
|
+
// ── Service ─────────────────────────────────────────────────────────
|
|
18
|
+
export class ObservabilityGeneratorService {
|
|
19
|
+
/**
|
|
20
|
+
* Generate observability configuration files from an OSSA manifest.
|
|
21
|
+
*
|
|
22
|
+
* @param manifest - A validated OssaAgent manifest
|
|
23
|
+
* @returns ExportFile[] ready for disk write or archive
|
|
24
|
+
*/
|
|
25
|
+
generate(manifest) {
|
|
26
|
+
const identity = this.resolveIdentity(manifest);
|
|
27
|
+
const endpoints = this.resolveEndpoints(manifest);
|
|
28
|
+
const constraints = this.resolveConstraints(manifest);
|
|
29
|
+
const tools = this.resolveTools(manifest);
|
|
30
|
+
const team = this.resolveTeam(manifest);
|
|
31
|
+
const isMultiAgent = team.length > 0;
|
|
32
|
+
const files = [
|
|
33
|
+
this.generateTracesYaml(identity, endpoints, tools, team),
|
|
34
|
+
this.generateMetricsYaml(identity, endpoints, constraints, tools, team),
|
|
35
|
+
this.generateDashboardJson(identity, constraints, tools, isMultiAgent),
|
|
36
|
+
];
|
|
37
|
+
return files;
|
|
38
|
+
}
|
|
39
|
+
// ── Identity resolution ─────────────────────────────────────────
|
|
40
|
+
resolveIdentity(manifest) {
|
|
41
|
+
const meta = manifest.metadata;
|
|
42
|
+
const spec = manifest.spec;
|
|
43
|
+
return {
|
|
44
|
+
name: meta?.name ?? 'unnamed-agent',
|
|
45
|
+
version: meta?.version ?? '0.0.0',
|
|
46
|
+
provider: spec?.llm?.provider ?? 'unknown',
|
|
47
|
+
model: spec?.llm?.model ?? 'unknown',
|
|
48
|
+
pattern: meta?.agentArchitecture?.pattern ?? 'single',
|
|
49
|
+
agentType: meta?.agentType ?? 'custom',
|
|
50
|
+
agentKind: meta?.agentKind ?? 'worker',
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
// ── Endpoint resolution ─────────────────────────────────────────
|
|
54
|
+
resolveEndpoints(manifest) {
|
|
55
|
+
const obs = manifest.spec?.observability;
|
|
56
|
+
const ext = manifest.extensions?.observability;
|
|
57
|
+
const extTraces = ext?.traces;
|
|
58
|
+
const extMetrics = ext?.metrics;
|
|
59
|
+
// Prefer spec.observability, fall back to extensions.observability, then defaults
|
|
60
|
+
const tracesEndpoint = obs?.tracing?.endpoint ??
|
|
61
|
+
extTraces?.endpoint ??
|
|
62
|
+
'http://localhost:4318/v1/traces';
|
|
63
|
+
const metricsEndpoint = obs?.metrics?.endpoint ??
|
|
64
|
+
extMetrics?.endpoint ??
|
|
65
|
+
'http://localhost:4318/v1/metrics';
|
|
66
|
+
const tracesExporter = obs?.tracing?.exporter ?? 'otlp';
|
|
67
|
+
const metricsExporter = obs?.metrics?.exporter ?? 'otlp';
|
|
68
|
+
const sampleRate = extTraces?.sample_rate ?? 1.0;
|
|
69
|
+
const collectionIntervalSeconds = extMetrics?.collection_interval_seconds ?? 60;
|
|
70
|
+
return {
|
|
71
|
+
tracesEndpoint,
|
|
72
|
+
metricsEndpoint,
|
|
73
|
+
tracesExporter,
|
|
74
|
+
metricsExporter,
|
|
75
|
+
sampleRate,
|
|
76
|
+
collectionIntervalSeconds,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// ── Constraint resolution ───────────────────────────────────────
|
|
80
|
+
resolveConstraints(manifest) {
|
|
81
|
+
const cost = manifest.spec?.constraints?.cost;
|
|
82
|
+
const perf = manifest.spec?.constraints?.performance;
|
|
83
|
+
return {
|
|
84
|
+
maxTokensPerDay: cost?.maxTokensPerDay ?? 1_000_000,
|
|
85
|
+
maxCostPerDay: cost?.maxCostPerDay ?? 100,
|
|
86
|
+
maxLatencySeconds: perf?.maxLatencySeconds ?? 30,
|
|
87
|
+
maxErrorRate: perf?.maxErrorRate ?? 0.05,
|
|
88
|
+
timeoutSeconds: perf?.timeoutSeconds ?? 120,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
// ── Tool resolution ─────────────────────────────────────────────
|
|
92
|
+
resolveTools(manifest) {
|
|
93
|
+
const tools = manifest.spec?.tools ?? [];
|
|
94
|
+
return tools.map((t) => t.name ?? t.type ?? 'unknown_tool');
|
|
95
|
+
}
|
|
96
|
+
// ── Team resolution ─────────────────────────────────────────────
|
|
97
|
+
resolveTeam(manifest) {
|
|
98
|
+
const spec = manifest.spec;
|
|
99
|
+
if (!spec)
|
|
100
|
+
return [];
|
|
101
|
+
// Check spec.team.members (primary path for multi-agent)
|
|
102
|
+
const team = spec.team;
|
|
103
|
+
if (team?.members && Array.isArray(team.members)) {
|
|
104
|
+
return team.members.map((m) => ({
|
|
105
|
+
name: m.name ?? 'unnamed',
|
|
106
|
+
role: m.role ?? 'worker',
|
|
107
|
+
}));
|
|
108
|
+
}
|
|
109
|
+
// Check spec.swarm.agents
|
|
110
|
+
const swarm = spec.swarm;
|
|
111
|
+
if (swarm?.agents && Array.isArray(swarm.agents)) {
|
|
112
|
+
return swarm.agents.map((a) => ({
|
|
113
|
+
name: a.name ?? 'unnamed',
|
|
114
|
+
role: a.role ?? 'worker',
|
|
115
|
+
}));
|
|
116
|
+
}
|
|
117
|
+
// Check spec.subagents
|
|
118
|
+
if (spec.subagents && Array.isArray(spec.subagents)) {
|
|
119
|
+
return spec.subagents.map((s) => ({
|
|
120
|
+
name: s.name ?? 'unnamed',
|
|
121
|
+
role: s.role ?? 'worker',
|
|
122
|
+
}));
|
|
123
|
+
}
|
|
124
|
+
return [];
|
|
125
|
+
}
|
|
126
|
+
// ── Traces YAML ─────────────────────────────────────────────────
|
|
127
|
+
generateTracesYaml(identity, endpoints, tools, team) {
|
|
128
|
+
const isMultiAgent = team.length > 0;
|
|
129
|
+
// Build OTel Collector config using gen_ai semantic conventions
|
|
130
|
+
const config = {
|
|
131
|
+
// Header comment captured as YAML comment below
|
|
132
|
+
receivers: {
|
|
133
|
+
otlp: {
|
|
134
|
+
protocols: {
|
|
135
|
+
http: {
|
|
136
|
+
endpoint: '0.0.0.0:4318',
|
|
137
|
+
},
|
|
138
|
+
grpc: {
|
|
139
|
+
endpoint: '0.0.0.0:4317',
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
processors: {
|
|
145
|
+
batch: {
|
|
146
|
+
timeout: '5s',
|
|
147
|
+
send_batch_size: 512,
|
|
148
|
+
send_batch_max_size: 1024,
|
|
149
|
+
},
|
|
150
|
+
// Enrich all spans with agent resource attributes
|
|
151
|
+
resource: {
|
|
152
|
+
attributes: [
|
|
153
|
+
{ key: 'service.name', value: identity.name, action: 'upsert' },
|
|
154
|
+
{ key: 'service.version', value: identity.version, action: 'upsert' },
|
|
155
|
+
{ key: 'gen_ai.agent.name', value: identity.name, action: 'upsert' },
|
|
156
|
+
{ key: 'gen_ai.provider.name', value: identity.provider, action: 'upsert' },
|
|
157
|
+
{ key: 'gen_ai.request.model', value: identity.model, action: 'upsert' },
|
|
158
|
+
{ key: 'ossa.agent.type', value: identity.agentType, action: 'upsert' },
|
|
159
|
+
{ key: 'ossa.agent.kind', value: identity.agentKind, action: 'upsert' },
|
|
160
|
+
{ key: 'ossa.agent.architecture.pattern', value: identity.pattern, action: 'upsert' },
|
|
161
|
+
],
|
|
162
|
+
},
|
|
163
|
+
// Probabilistic sampling for high-throughput agents
|
|
164
|
+
probabilistic_sampler: {
|
|
165
|
+
sampling_percentage: endpoints.sampleRate * 100,
|
|
166
|
+
},
|
|
167
|
+
// Span filtering: keep only gen_ai.* and agent.* spans in production
|
|
168
|
+
filter: {
|
|
169
|
+
error_mode: 'ignore',
|
|
170
|
+
traces: {
|
|
171
|
+
span: [
|
|
172
|
+
'attributes["gen_ai.operation.name"] != nil',
|
|
173
|
+
'attributes["gen_ai.agent.name"] != nil',
|
|
174
|
+
'name == "invoke_agent"',
|
|
175
|
+
'name == "gen_ai.tool.call"',
|
|
176
|
+
'name == "gen_ai.chat"',
|
|
177
|
+
'name == "gen_ai.content.completion"',
|
|
178
|
+
],
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
exporters: this.buildTraceExporters(endpoints),
|
|
183
|
+
service: {
|
|
184
|
+
pipelines: {
|
|
185
|
+
traces: {
|
|
186
|
+
receivers: ['otlp'],
|
|
187
|
+
processors: ['resource', 'probabilistic_sampler', 'batch'],
|
|
188
|
+
exporters: this.buildTraceExporterNames(endpoints),
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
telemetry: {
|
|
192
|
+
logs: {
|
|
193
|
+
level: 'info',
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
// Add span definitions as documentation for instrumentation
|
|
199
|
+
const spanDefinitions = this.buildSpanDefinitions(identity, tools, team, isMultiAgent);
|
|
200
|
+
const yamlContent = [
|
|
201
|
+
`# OpenTelemetry Collector configuration for ${identity.name}`,
|
|
202
|
+
`# Generated from OSSA manifest v${identity.version}`,
|
|
203
|
+
`# gen_ai semantic conventions v1.39.0 (experimental)`,
|
|
204
|
+
'#',
|
|
205
|
+
'# Span naming conventions:',
|
|
206
|
+
'# invoke_agent - Top-level agent invocation (kind: CLIENT)',
|
|
207
|
+
'# gen_ai.chat - LLM chat completion call (kind: CLIENT)',
|
|
208
|
+
'# gen_ai.content.completion - Content generation (kind: INTERNAL)',
|
|
209
|
+
'# gen_ai.tool.call - Tool invocation (kind: INTERNAL)',
|
|
210
|
+
...(isMultiAgent
|
|
211
|
+
? [
|
|
212
|
+
'# agent.handoff - Inter-agent handoff (kind: INTERNAL)',
|
|
213
|
+
'# agent.coordinate - Team coordination (kind: INTERNAL)',
|
|
214
|
+
]
|
|
215
|
+
: []),
|
|
216
|
+
'#',
|
|
217
|
+
yaml.stringify(config, { lineWidth: 120 }),
|
|
218
|
+
'',
|
|
219
|
+
'# ── Span Definitions (for instrumentation reference) ──',
|
|
220
|
+
'#',
|
|
221
|
+
yaml.stringify({ _span_definitions: spanDefinitions }, { lineWidth: 120 }),
|
|
222
|
+
].join('\n');
|
|
223
|
+
return {
|
|
224
|
+
path: 'observability/traces.yaml',
|
|
225
|
+
content: yamlContent,
|
|
226
|
+
type: 'config',
|
|
227
|
+
language: 'yaml',
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
buildTraceExporters(endpoints) {
|
|
231
|
+
const exporters = {};
|
|
232
|
+
switch (endpoints.tracesExporter) {
|
|
233
|
+
case 'jaeger':
|
|
234
|
+
exporters.jaeger = {
|
|
235
|
+
endpoint: endpoints.tracesEndpoint,
|
|
236
|
+
tls: { insecure: true },
|
|
237
|
+
};
|
|
238
|
+
break;
|
|
239
|
+
case 'zipkin':
|
|
240
|
+
exporters.zipkin = {
|
|
241
|
+
endpoint: endpoints.tracesEndpoint,
|
|
242
|
+
};
|
|
243
|
+
break;
|
|
244
|
+
case 'otlp':
|
|
245
|
+
default:
|
|
246
|
+
exporters.otlp = {
|
|
247
|
+
endpoint: endpoints.tracesEndpoint,
|
|
248
|
+
tls: { insecure: true },
|
|
249
|
+
};
|
|
250
|
+
break;
|
|
251
|
+
}
|
|
252
|
+
// Always include debug exporter for development
|
|
253
|
+
exporters.debug = {
|
|
254
|
+
verbosity: 'basic',
|
|
255
|
+
};
|
|
256
|
+
return exporters;
|
|
257
|
+
}
|
|
258
|
+
buildTraceExporterNames(endpoints) {
|
|
259
|
+
const names = [];
|
|
260
|
+
switch (endpoints.tracesExporter) {
|
|
261
|
+
case 'jaeger':
|
|
262
|
+
names.push('jaeger');
|
|
263
|
+
break;
|
|
264
|
+
case 'zipkin':
|
|
265
|
+
names.push('zipkin');
|
|
266
|
+
break;
|
|
267
|
+
case 'otlp':
|
|
268
|
+
default:
|
|
269
|
+
names.push('otlp');
|
|
270
|
+
break;
|
|
271
|
+
}
|
|
272
|
+
names.push('debug');
|
|
273
|
+
return names;
|
|
274
|
+
}
|
|
275
|
+
buildSpanDefinitions(identity, tools, team, isMultiAgent) {
|
|
276
|
+
const spans = [
|
|
277
|
+
{
|
|
278
|
+
name: 'invoke_agent',
|
|
279
|
+
kind: 'CLIENT',
|
|
280
|
+
description: `Top-level invocation of ${identity.name}`,
|
|
281
|
+
attributes: {
|
|
282
|
+
'gen_ai.agent.name': identity.name,
|
|
283
|
+
'gen_ai.operation.name': 'invoke_agent',
|
|
284
|
+
'gen_ai.request.model': identity.model,
|
|
285
|
+
'gen_ai.provider.name': identity.provider,
|
|
286
|
+
'gen_ai.agent.description': `${identity.agentKind} agent (${identity.pattern} pattern)`,
|
|
287
|
+
},
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
name: 'gen_ai.chat',
|
|
291
|
+
kind: 'CLIENT',
|
|
292
|
+
description: 'LLM chat completion request',
|
|
293
|
+
attributes: {
|
|
294
|
+
'gen_ai.operation.name': 'chat',
|
|
295
|
+
'gen_ai.request.model': identity.model,
|
|
296
|
+
'gen_ai.provider.name': identity.provider,
|
|
297
|
+
'gen_ai.request.temperature': '${temperature}',
|
|
298
|
+
'gen_ai.request.max_tokens': '${maxTokens}',
|
|
299
|
+
'gen_ai.request.top_p': '${topP}',
|
|
300
|
+
},
|
|
301
|
+
events: [
|
|
302
|
+
{
|
|
303
|
+
name: 'gen_ai.content.prompt',
|
|
304
|
+
attributes: { 'gen_ai.prompt': '${prompt_content}' },
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
name: 'gen_ai.content.completion',
|
|
308
|
+
attributes: { 'gen_ai.completion': '${completion_content}' },
|
|
309
|
+
},
|
|
310
|
+
],
|
|
311
|
+
metrics_on_end: {
|
|
312
|
+
'gen_ai.usage.input_tokens': '${input_tokens}',
|
|
313
|
+
'gen_ai.usage.output_tokens': '${output_tokens}',
|
|
314
|
+
},
|
|
315
|
+
},
|
|
316
|
+
];
|
|
317
|
+
// Tool call spans
|
|
318
|
+
for (const toolName of tools) {
|
|
319
|
+
spans.push({
|
|
320
|
+
name: 'gen_ai.tool.call',
|
|
321
|
+
kind: 'INTERNAL',
|
|
322
|
+
description: `Tool invocation: ${toolName}`,
|
|
323
|
+
attributes: {
|
|
324
|
+
'gen_ai.operation.name': 'tool_call',
|
|
325
|
+
'gen_ai.tool.name': toolName,
|
|
326
|
+
'gen_ai.tool.call.id': '${call_id}',
|
|
327
|
+
'gen_ai.tool.parameters': '${parameters_json}',
|
|
328
|
+
},
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
// Multi-agent coordination spans
|
|
332
|
+
if (isMultiAgent) {
|
|
333
|
+
spans.push({
|
|
334
|
+
name: 'agent.handoff',
|
|
335
|
+
kind: 'INTERNAL',
|
|
336
|
+
description: 'Handoff between agents in the team',
|
|
337
|
+
attributes: {
|
|
338
|
+
'gen_ai.operation.name': 'handoff',
|
|
339
|
+
'ossa.handoff.source_agent': '${source_agent}',
|
|
340
|
+
'ossa.handoff.target_agent': '${target_agent}',
|
|
341
|
+
'ossa.handoff.reason': '${reason}',
|
|
342
|
+
},
|
|
343
|
+
}, {
|
|
344
|
+
name: 'agent.coordinate',
|
|
345
|
+
kind: 'INTERNAL',
|
|
346
|
+
description: 'Team coordination event',
|
|
347
|
+
attributes: {
|
|
348
|
+
'gen_ai.operation.name': 'coordinate',
|
|
349
|
+
'ossa.coordination.team_size': String(team.length),
|
|
350
|
+
'ossa.coordination.pattern': identity.pattern,
|
|
351
|
+
'ossa.coordination.leader': '${leader_name}',
|
|
352
|
+
},
|
|
353
|
+
});
|
|
354
|
+
// Per-member invocation spans
|
|
355
|
+
for (const member of team) {
|
|
356
|
+
spans.push({
|
|
357
|
+
name: `invoke_agent`,
|
|
358
|
+
kind: 'INTERNAL',
|
|
359
|
+
description: `Invocation of team member: ${member.name} (${member.role})`,
|
|
360
|
+
attributes: {
|
|
361
|
+
'gen_ai.agent.name': member.name,
|
|
362
|
+
'gen_ai.operation.name': 'invoke_agent',
|
|
363
|
+
'ossa.agent.role': member.role,
|
|
364
|
+
'ossa.team.parent': identity.name,
|
|
365
|
+
},
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
return spans;
|
|
370
|
+
}
|
|
371
|
+
// ── Metrics YAML ────────────────────────────────────────────────
|
|
372
|
+
generateMetricsYaml(identity, endpoints, constraints, tools, team) {
|
|
373
|
+
const isMultiAgent = team.length > 0;
|
|
374
|
+
const sanitizedName = identity.name.replace(/[^a-zA-Z0-9_]/g, '_');
|
|
375
|
+
const metricDefinitions = this.buildMetricDefinitions(sanitizedName, identity, constraints, tools, team, isMultiAgent);
|
|
376
|
+
// OTel Collector config fragment for metrics pipeline
|
|
377
|
+
const collectorConfig = {
|
|
378
|
+
receivers: {
|
|
379
|
+
otlp: {
|
|
380
|
+
protocols: {
|
|
381
|
+
http: { endpoint: '0.0.0.0:4318' },
|
|
382
|
+
grpc: { endpoint: '0.0.0.0:4317' },
|
|
383
|
+
},
|
|
384
|
+
},
|
|
385
|
+
prometheus: {
|
|
386
|
+
config: {
|
|
387
|
+
scrape_configs: [
|
|
388
|
+
{
|
|
389
|
+
job_name: `${identity.name}-metrics`,
|
|
390
|
+
scrape_interval: `${endpoints.collectionIntervalSeconds}s`,
|
|
391
|
+
static_configs: [
|
|
392
|
+
{
|
|
393
|
+
targets: ['localhost:9464'],
|
|
394
|
+
labels: {
|
|
395
|
+
agent: identity.name,
|
|
396
|
+
version: identity.version,
|
|
397
|
+
provider: identity.provider,
|
|
398
|
+
},
|
|
399
|
+
},
|
|
400
|
+
],
|
|
401
|
+
},
|
|
402
|
+
],
|
|
403
|
+
},
|
|
404
|
+
},
|
|
405
|
+
},
|
|
406
|
+
processors: {
|
|
407
|
+
batch: {
|
|
408
|
+
timeout: '10s',
|
|
409
|
+
send_batch_size: 256,
|
|
410
|
+
},
|
|
411
|
+
resource: {
|
|
412
|
+
attributes: [
|
|
413
|
+
{ key: 'service.name', value: identity.name, action: 'upsert' },
|
|
414
|
+
{ key: 'service.version', value: identity.version, action: 'upsert' },
|
|
415
|
+
],
|
|
416
|
+
},
|
|
417
|
+
},
|
|
418
|
+
exporters: this.buildMetricExporters(endpoints),
|
|
419
|
+
service: {
|
|
420
|
+
pipelines: {
|
|
421
|
+
metrics: {
|
|
422
|
+
receivers: ['otlp', 'prometheus'],
|
|
423
|
+
processors: ['resource', 'batch'],
|
|
424
|
+
exporters: this.buildMetricExporterNames(endpoints),
|
|
425
|
+
},
|
|
426
|
+
},
|
|
427
|
+
},
|
|
428
|
+
};
|
|
429
|
+
// Prometheus recording rules for derived metrics
|
|
430
|
+
const recordingRules = this.buildRecordingRules(sanitizedName, identity, constraints, isMultiAgent);
|
|
431
|
+
// Alert rules based on constraints
|
|
432
|
+
const alertRules = this.buildAlertRules(sanitizedName, identity, constraints, isMultiAgent);
|
|
433
|
+
const yamlContent = [
|
|
434
|
+
`# Metrics configuration for ${identity.name}`,
|
|
435
|
+
`# Generated from OSSA manifest v${identity.version}`,
|
|
436
|
+
`# gen_ai semantic conventions v1.39.0 (experimental)`,
|
|
437
|
+
'#',
|
|
438
|
+
'# Includes:',
|
|
439
|
+
'# - OTel Collector metrics pipeline config',
|
|
440
|
+
'# - Metric definitions (Prometheus-compatible)',
|
|
441
|
+
'# - Recording rules (pre-computed aggregates)',
|
|
442
|
+
'# - Alert rules (constraint-based thresholds)',
|
|
443
|
+
'#',
|
|
444
|
+
'',
|
|
445
|
+
'# ── OTel Collector Config ──',
|
|
446
|
+
yaml.stringify(collectorConfig, { lineWidth: 120 }),
|
|
447
|
+
'',
|
|
448
|
+
'# ── Metric Definitions ──',
|
|
449
|
+
yaml.stringify({ metric_definitions: metricDefinitions }, { lineWidth: 120 }),
|
|
450
|
+
'',
|
|
451
|
+
'# ── Prometheus Recording Rules ──',
|
|
452
|
+
yaml.stringify({ groups: [recordingRules] }, { lineWidth: 120 }),
|
|
453
|
+
'',
|
|
454
|
+
'# ── Prometheus Alert Rules ──',
|
|
455
|
+
yaml.stringify({ groups: [alertRules] }, { lineWidth: 120 }),
|
|
456
|
+
].join('\n');
|
|
457
|
+
return {
|
|
458
|
+
path: 'observability/metrics.yaml',
|
|
459
|
+
content: yamlContent,
|
|
460
|
+
type: 'config',
|
|
461
|
+
language: 'yaml',
|
|
462
|
+
};
|
|
463
|
+
}
|
|
464
|
+
buildMetricExporters(endpoints) {
|
|
465
|
+
const exporters = {};
|
|
466
|
+
switch (endpoints.metricsExporter) {
|
|
467
|
+
case 'prometheus':
|
|
468
|
+
exporters.prometheus = {
|
|
469
|
+
endpoint: '0.0.0.0:9464',
|
|
470
|
+
namespace: 'ossa',
|
|
471
|
+
const_labels: {
|
|
472
|
+
source: 'ossa-agent',
|
|
473
|
+
},
|
|
474
|
+
};
|
|
475
|
+
break;
|
|
476
|
+
case 'otlp':
|
|
477
|
+
default:
|
|
478
|
+
exporters.otlp = {
|
|
479
|
+
endpoint: endpoints.metricsEndpoint,
|
|
480
|
+
tls: { insecure: true },
|
|
481
|
+
};
|
|
482
|
+
break;
|
|
483
|
+
}
|
|
484
|
+
exporters.debug = {
|
|
485
|
+
verbosity: 'basic',
|
|
486
|
+
};
|
|
487
|
+
return exporters;
|
|
488
|
+
}
|
|
489
|
+
buildMetricExporterNames(endpoints) {
|
|
490
|
+
const names = [];
|
|
491
|
+
switch (endpoints.metricsExporter) {
|
|
492
|
+
case 'prometheus':
|
|
493
|
+
names.push('prometheus');
|
|
494
|
+
break;
|
|
495
|
+
case 'otlp':
|
|
496
|
+
default:
|
|
497
|
+
names.push('otlp');
|
|
498
|
+
break;
|
|
499
|
+
}
|
|
500
|
+
names.push('debug');
|
|
501
|
+
return names;
|
|
502
|
+
}
|
|
503
|
+
buildMetricDefinitions(sanitizedName, identity, constraints, tools, team, isMultiAgent) {
|
|
504
|
+
const metrics = [
|
|
505
|
+
// ── Token Usage ───────────────────────────────────
|
|
506
|
+
{
|
|
507
|
+
name: 'gen_ai_usage_input_tokens_total',
|
|
508
|
+
type: 'counter',
|
|
509
|
+
unit: 'tokens',
|
|
510
|
+
description: 'Total input tokens consumed by LLM requests',
|
|
511
|
+
labels: ['gen_ai.provider.name', 'gen_ai.request.model', 'gen_ai.agent.name'],
|
|
512
|
+
semantic_convention: 'gen_ai.usage.input_tokens',
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
name: 'gen_ai_usage_output_tokens_total',
|
|
516
|
+
type: 'counter',
|
|
517
|
+
unit: 'tokens',
|
|
518
|
+
description: 'Total output tokens generated by LLM responses',
|
|
519
|
+
labels: ['gen_ai.provider.name', 'gen_ai.request.model', 'gen_ai.agent.name'],
|
|
520
|
+
semantic_convention: 'gen_ai.usage.output_tokens',
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
name: `${sanitizedName}_tokens_daily_total`,
|
|
524
|
+
type: 'counter',
|
|
525
|
+
unit: 'tokens',
|
|
526
|
+
description: `Daily token budget consumption for ${identity.name}`,
|
|
527
|
+
labels: ['direction', 'gen_ai.request.model'],
|
|
528
|
+
threshold: constraints.maxTokensPerDay,
|
|
529
|
+
},
|
|
530
|
+
// ── Latency ───────────────────────────────────────
|
|
531
|
+
{
|
|
532
|
+
name: 'gen_ai_client_operation_duration_seconds',
|
|
533
|
+
type: 'histogram',
|
|
534
|
+
unit: 'seconds',
|
|
535
|
+
description: 'Duration of gen_ai operations (chat, tool_call, invoke_agent)',
|
|
536
|
+
labels: ['gen_ai.operation.name', 'gen_ai.agent.name', 'gen_ai.request.model'],
|
|
537
|
+
buckets: [0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 15.0, 30.0, 60.0, 120.0],
|
|
538
|
+
semantic_convention: 'gen_ai.client.operation.duration',
|
|
539
|
+
slo_threshold: constraints.maxLatencySeconds,
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
name: `${sanitizedName}_time_to_first_token_seconds`,
|
|
543
|
+
type: 'histogram',
|
|
544
|
+
unit: 'seconds',
|
|
545
|
+
description: 'Time to first token in streaming responses',
|
|
546
|
+
labels: ['gen_ai.request.model', 'gen_ai.provider.name'],
|
|
547
|
+
buckets: [0.05, 0.1, 0.2, 0.5, 1.0, 2.0, 5.0],
|
|
548
|
+
},
|
|
549
|
+
// ── Cost ──────────────────────────────────────────
|
|
550
|
+
{
|
|
551
|
+
name: `${sanitizedName}_cost_per_request_dollars`,
|
|
552
|
+
type: 'histogram',
|
|
553
|
+
unit: 'dollars',
|
|
554
|
+
description: 'Estimated cost per LLM request in USD',
|
|
555
|
+
labels: ['gen_ai.operation.name', 'gen_ai.request.model'],
|
|
556
|
+
buckets: [0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1.0, 5.0],
|
|
557
|
+
},
|
|
558
|
+
{
|
|
559
|
+
name: `${sanitizedName}_cost_daily_total_dollars`,
|
|
560
|
+
type: 'counter',
|
|
561
|
+
unit: 'dollars',
|
|
562
|
+
description: `Daily cost accumulation for ${identity.name}`,
|
|
563
|
+
labels: ['gen_ai.request.model'],
|
|
564
|
+
threshold: constraints.maxCostPerDay,
|
|
565
|
+
},
|
|
566
|
+
// ── Error Tracking ────────────────────────────────
|
|
567
|
+
{
|
|
568
|
+
name: `${sanitizedName}_requests_total`,
|
|
569
|
+
type: 'counter',
|
|
570
|
+
description: 'Total requests processed by the agent',
|
|
571
|
+
labels: ['gen_ai.operation.name', 'status', 'error.type'],
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
name: `${sanitizedName}_errors_total`,
|
|
575
|
+
type: 'counter',
|
|
576
|
+
description: 'Total errors encountered by the agent',
|
|
577
|
+
labels: ['gen_ai.operation.name', 'error.type', 'gen_ai.request.model'],
|
|
578
|
+
threshold_rate: constraints.maxErrorRate,
|
|
579
|
+
},
|
|
580
|
+
// ── Tool Metrics ──────────────────────────────────
|
|
581
|
+
{
|
|
582
|
+
name: `${sanitizedName}_tool_calls_total`,
|
|
583
|
+
type: 'counter',
|
|
584
|
+
description: 'Total tool invocations',
|
|
585
|
+
labels: ['gen_ai.tool.name', 'status'],
|
|
586
|
+
},
|
|
587
|
+
{
|
|
588
|
+
name: `${sanitizedName}_tool_duration_seconds`,
|
|
589
|
+
type: 'histogram',
|
|
590
|
+
unit: 'seconds',
|
|
591
|
+
description: 'Duration of individual tool calls',
|
|
592
|
+
labels: ['gen_ai.tool.name'],
|
|
593
|
+
buckets: [0.01, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0, 30.0],
|
|
594
|
+
},
|
|
595
|
+
// ── Agent Lifecycle ───────────────────────────────
|
|
596
|
+
{
|
|
597
|
+
name: `${sanitizedName}_invocations_total`,
|
|
598
|
+
type: 'counter',
|
|
599
|
+
description: 'Total agent invocations',
|
|
600
|
+
labels: ['gen_ai.agent.name', 'status'],
|
|
601
|
+
},
|
|
602
|
+
{
|
|
603
|
+
name: `${sanitizedName}_active_invocations`,
|
|
604
|
+
type: 'gauge',
|
|
605
|
+
description: 'Currently active agent invocations',
|
|
606
|
+
labels: ['gen_ai.agent.name'],
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
name: `${sanitizedName}_invocation_duration_seconds`,
|
|
610
|
+
type: 'histogram',
|
|
611
|
+
unit: 'seconds',
|
|
612
|
+
description: 'End-to-end duration of a full agent invocation',
|
|
613
|
+
labels: ['gen_ai.agent.name', 'status'],
|
|
614
|
+
buckets: [0.5, 1.0, 2.5, 5.0, 10.0, 30.0, 60.0, 120.0, 300.0],
|
|
615
|
+
},
|
|
616
|
+
];
|
|
617
|
+
// Per-tool specific counters
|
|
618
|
+
for (const tool of tools) {
|
|
619
|
+
metrics.push({
|
|
620
|
+
name: `${sanitizedName}_tool_${tool.replace(/[^a-zA-Z0-9_]/g, '_')}_calls_total`,
|
|
621
|
+
type: 'counter',
|
|
622
|
+
description: `Invocations of tool: ${tool}`,
|
|
623
|
+
labels: ['status', 'error.type'],
|
|
624
|
+
});
|
|
625
|
+
}
|
|
626
|
+
// ── Multi-agent / Team metrics ──────────────────────
|
|
627
|
+
if (isMultiAgent) {
|
|
628
|
+
metrics.push({
|
|
629
|
+
name: `${sanitizedName}_team_handoffs_total`,
|
|
630
|
+
type: 'counter',
|
|
631
|
+
description: 'Total handoffs between team members',
|
|
632
|
+
labels: ['source_agent', 'target_agent', 'reason'],
|
|
633
|
+
}, {
|
|
634
|
+
name: `${sanitizedName}_team_coordination_duration_seconds`,
|
|
635
|
+
type: 'histogram',
|
|
636
|
+
unit: 'seconds',
|
|
637
|
+
description: 'Duration of team coordination events',
|
|
638
|
+
labels: ['coordination_type', 'pattern'],
|
|
639
|
+
buckets: [0.1, 0.5, 1.0, 5.0, 10.0, 30.0, 60.0],
|
|
640
|
+
}, {
|
|
641
|
+
name: `${sanitizedName}_team_member_utilization_ratio`,
|
|
642
|
+
type: 'gauge',
|
|
643
|
+
description: 'Utilization ratio per team member (active time / total time)',
|
|
644
|
+
labels: ['gen_ai.agent.name', 'role'],
|
|
645
|
+
});
|
|
646
|
+
// Per-member metrics
|
|
647
|
+
for (const member of team) {
|
|
648
|
+
const memberSafe = member.name.replace(/[^a-zA-Z0-9_]/g, '_');
|
|
649
|
+
metrics.push({
|
|
650
|
+
name: `${sanitizedName}_member_${memberSafe}_tokens_total`,
|
|
651
|
+
type: 'counter',
|
|
652
|
+
unit: 'tokens',
|
|
653
|
+
description: `Token usage for team member: ${member.name} (${member.role})`,
|
|
654
|
+
labels: ['direction', 'gen_ai.request.model'],
|
|
655
|
+
}, {
|
|
656
|
+
name: `${sanitizedName}_member_${memberSafe}_invocations_total`,
|
|
657
|
+
type: 'counter',
|
|
658
|
+
description: `Invocations of team member: ${member.name}`,
|
|
659
|
+
labels: ['status'],
|
|
660
|
+
});
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
return metrics;
|
|
664
|
+
}
|
|
665
|
+
buildRecordingRules(sanitizedName, identity, constraints, isMultiAgent) {
|
|
666
|
+
const rules = [
|
|
667
|
+
// Token usage rate (tokens per minute)
|
|
668
|
+
{
|
|
669
|
+
record: `${sanitizedName}:tokens_per_minute`,
|
|
670
|
+
expr: `rate(gen_ai_usage_input_tokens_total{gen_ai_agent_name="${identity.name}"}[5m]) + rate(gen_ai_usage_output_tokens_total{gen_ai_agent_name="${identity.name}"}[5m])`,
|
|
671
|
+
},
|
|
672
|
+
// Error rate over 5m window
|
|
673
|
+
{
|
|
674
|
+
record: `${sanitizedName}:error_rate_5m`,
|
|
675
|
+
expr: `rate(${sanitizedName}_errors_total[5m]) / rate(${sanitizedName}_requests_total[5m])`,
|
|
676
|
+
},
|
|
677
|
+
// p50, p95, p99 latency
|
|
678
|
+
{
|
|
679
|
+
record: `${sanitizedName}:latency_p50`,
|
|
680
|
+
expr: `histogram_quantile(0.50, rate(gen_ai_client_operation_duration_seconds_bucket{gen_ai_agent_name="${identity.name}"}[5m]))`,
|
|
681
|
+
},
|
|
682
|
+
{
|
|
683
|
+
record: `${sanitizedName}:latency_p95`,
|
|
684
|
+
expr: `histogram_quantile(0.95, rate(gen_ai_client_operation_duration_seconds_bucket{gen_ai_agent_name="${identity.name}"}[5m]))`,
|
|
685
|
+
},
|
|
686
|
+
{
|
|
687
|
+
record: `${sanitizedName}:latency_p99`,
|
|
688
|
+
expr: `histogram_quantile(0.99, rate(gen_ai_client_operation_duration_seconds_bucket{gen_ai_agent_name="${identity.name}"}[5m]))`,
|
|
689
|
+
},
|
|
690
|
+
// Cost per task (estimated from token usage)
|
|
691
|
+
{
|
|
692
|
+
record: `${sanitizedName}:cost_per_task_avg`,
|
|
693
|
+
expr: `rate(${sanitizedName}_cost_daily_total_dollars[5m]) / rate(${sanitizedName}_invocations_total{status="success"}[5m])`,
|
|
694
|
+
},
|
|
695
|
+
// Token budget utilization (percentage of daily limit used)
|
|
696
|
+
{
|
|
697
|
+
record: `${sanitizedName}:token_budget_utilization`,
|
|
698
|
+
expr: `increase(${sanitizedName}_tokens_daily_total[24h]) / ${constraints.maxTokensPerDay}`,
|
|
699
|
+
},
|
|
700
|
+
// Tool call success rate
|
|
701
|
+
{
|
|
702
|
+
record: `${sanitizedName}:tool_success_rate`,
|
|
703
|
+
expr: `rate(${sanitizedName}_tool_calls_total{status="success"}[5m]) / rate(${sanitizedName}_tool_calls_total[5m])`,
|
|
704
|
+
},
|
|
705
|
+
];
|
|
706
|
+
if (isMultiAgent) {
|
|
707
|
+
rules.push({
|
|
708
|
+
record: `${sanitizedName}:handoff_rate_5m`,
|
|
709
|
+
expr: `rate(${sanitizedName}_team_handoffs_total[5m])`,
|
|
710
|
+
}, {
|
|
711
|
+
record: `${sanitizedName}:coordination_overhead_ratio`,
|
|
712
|
+
expr: `rate(${sanitizedName}_team_coordination_duration_seconds_sum[5m]) / rate(${sanitizedName}_invocation_duration_seconds_sum[5m])`,
|
|
713
|
+
});
|
|
714
|
+
}
|
|
715
|
+
return {
|
|
716
|
+
name: `${identity.name}_recording_rules`,
|
|
717
|
+
interval: '30s',
|
|
718
|
+
rules,
|
|
719
|
+
};
|
|
720
|
+
}
|
|
721
|
+
buildAlertRules(sanitizedName, identity, constraints, isMultiAgent) {
|
|
722
|
+
const rules = [
|
|
723
|
+
// High error rate
|
|
724
|
+
{
|
|
725
|
+
alert: `${identity.name}_HighErrorRate`,
|
|
726
|
+
expr: `${sanitizedName}:error_rate_5m > ${constraints.maxErrorRate}`,
|
|
727
|
+
for: '5m',
|
|
728
|
+
labels: {
|
|
729
|
+
severity: 'critical',
|
|
730
|
+
agent: identity.name,
|
|
731
|
+
},
|
|
732
|
+
annotations: {
|
|
733
|
+
summary: `Agent ${identity.name} error rate exceeds ${constraints.maxErrorRate * 100}%`,
|
|
734
|
+
description: `Error rate is {{ $value | humanizePercentage }} (threshold: ${constraints.maxErrorRate * 100}%).`,
|
|
735
|
+
runbook_url: `https://runbooks.example.com/agents/${identity.name}/high-error-rate`,
|
|
736
|
+
},
|
|
737
|
+
},
|
|
738
|
+
// High latency (p95 exceeding SLO)
|
|
739
|
+
{
|
|
740
|
+
alert: `${identity.name}_HighLatency`,
|
|
741
|
+
expr: `${sanitizedName}:latency_p95 > ${constraints.maxLatencySeconds}`,
|
|
742
|
+
for: '5m',
|
|
743
|
+
labels: {
|
|
744
|
+
severity: 'warning',
|
|
745
|
+
agent: identity.name,
|
|
746
|
+
},
|
|
747
|
+
annotations: {
|
|
748
|
+
summary: `Agent ${identity.name} p95 latency exceeds ${constraints.maxLatencySeconds}s`,
|
|
749
|
+
description: `p95 latency is {{ $value | humanizeDuration }} (SLO: ${constraints.maxLatencySeconds}s).`,
|
|
750
|
+
},
|
|
751
|
+
},
|
|
752
|
+
// Token budget exhaustion (>80% of daily budget)
|
|
753
|
+
{
|
|
754
|
+
alert: `${identity.name}_TokenBudgetWarning`,
|
|
755
|
+
expr: `${sanitizedName}:token_budget_utilization > 0.8`,
|
|
756
|
+
for: '10m',
|
|
757
|
+
labels: {
|
|
758
|
+
severity: 'warning',
|
|
759
|
+
agent: identity.name,
|
|
760
|
+
},
|
|
761
|
+
annotations: {
|
|
762
|
+
summary: `Agent ${identity.name} approaching token budget limit`,
|
|
763
|
+
description: `Token budget utilization is {{ $value | humanizePercentage }} of daily limit (${constraints.maxTokensPerDay.toLocaleString()} tokens).`,
|
|
764
|
+
},
|
|
765
|
+
},
|
|
766
|
+
// Token budget exceeded
|
|
767
|
+
{
|
|
768
|
+
alert: `${identity.name}_TokenBudgetExceeded`,
|
|
769
|
+
expr: `${sanitizedName}:token_budget_utilization > 1.0`,
|
|
770
|
+
for: '1m',
|
|
771
|
+
labels: {
|
|
772
|
+
severity: 'critical',
|
|
773
|
+
agent: identity.name,
|
|
774
|
+
},
|
|
775
|
+
annotations: {
|
|
776
|
+
summary: `Agent ${identity.name} has exceeded daily token budget`,
|
|
777
|
+
description: `Token budget utilization is {{ $value | humanizePercentage }}. Limit: ${constraints.maxTokensPerDay.toLocaleString()} tokens/day.`,
|
|
778
|
+
},
|
|
779
|
+
},
|
|
780
|
+
// Cost threshold exceeded
|
|
781
|
+
{
|
|
782
|
+
alert: `${identity.name}_DailyCostExceeded`,
|
|
783
|
+
expr: `increase(${sanitizedName}_cost_daily_total_dollars[24h]) > ${constraints.maxCostPerDay}`,
|
|
784
|
+
for: '5m',
|
|
785
|
+
labels: {
|
|
786
|
+
severity: 'critical',
|
|
787
|
+
agent: identity.name,
|
|
788
|
+
},
|
|
789
|
+
annotations: {
|
|
790
|
+
summary: `Agent ${identity.name} daily cost exceeds $${constraints.maxCostPerDay}`,
|
|
791
|
+
description: 'Daily cost is ${{ $value | printf "%.2f" }}.',
|
|
792
|
+
},
|
|
793
|
+
},
|
|
794
|
+
// Agent down (no invocations in 15m)
|
|
795
|
+
{
|
|
796
|
+
alert: `${identity.name}_AgentDown`,
|
|
797
|
+
expr: `rate(${sanitizedName}_invocations_total[15m]) == 0`,
|
|
798
|
+
for: '15m',
|
|
799
|
+
labels: {
|
|
800
|
+
severity: 'warning',
|
|
801
|
+
agent: identity.name,
|
|
802
|
+
},
|
|
803
|
+
annotations: {
|
|
804
|
+
summary: `Agent ${identity.name} has received no invocations in 15 minutes`,
|
|
805
|
+
description: 'The agent may be down or unreachable.',
|
|
806
|
+
},
|
|
807
|
+
},
|
|
808
|
+
// Tool failure spike
|
|
809
|
+
{
|
|
810
|
+
alert: `${identity.name}_ToolFailureSpike`,
|
|
811
|
+
expr: `(1 - ${sanitizedName}:tool_success_rate) > 0.2`,
|
|
812
|
+
for: '5m',
|
|
813
|
+
labels: {
|
|
814
|
+
severity: 'warning',
|
|
815
|
+
agent: identity.name,
|
|
816
|
+
},
|
|
817
|
+
annotations: {
|
|
818
|
+
summary: `Agent ${identity.name} tool failure rate exceeds 20%`,
|
|
819
|
+
description: 'Tool success rate is {{ $value | humanizePercentage }}.',
|
|
820
|
+
},
|
|
821
|
+
},
|
|
822
|
+
];
|
|
823
|
+
if (isMultiAgent) {
|
|
824
|
+
rules.push({
|
|
825
|
+
alert: `${identity.name}_HighCoordinationOverhead`,
|
|
826
|
+
expr: `${sanitizedName}:coordination_overhead_ratio > 0.3`,
|
|
827
|
+
for: '10m',
|
|
828
|
+
labels: {
|
|
829
|
+
severity: 'warning',
|
|
830
|
+
agent: identity.name,
|
|
831
|
+
},
|
|
832
|
+
annotations: {
|
|
833
|
+
summary: `Agent ${identity.name} spending >30% of time on coordination`,
|
|
834
|
+
description: 'Coordination overhead is {{ $value | humanizePercentage }}. Consider simplifying the team structure.',
|
|
835
|
+
},
|
|
836
|
+
}, {
|
|
837
|
+
alert: `${identity.name}_ExcessiveHandoffs`,
|
|
838
|
+
expr: `${sanitizedName}:handoff_rate_5m > 10`,
|
|
839
|
+
for: '5m',
|
|
840
|
+
labels: {
|
|
841
|
+
severity: 'warning',
|
|
842
|
+
agent: identity.name,
|
|
843
|
+
},
|
|
844
|
+
annotations: {
|
|
845
|
+
summary: `Agent ${identity.name} team handoff rate exceeds 10/5m`,
|
|
846
|
+
description: 'High handoff rate may indicate unclear task boundaries.',
|
|
847
|
+
},
|
|
848
|
+
});
|
|
849
|
+
}
|
|
850
|
+
return {
|
|
851
|
+
name: `${identity.name}_alert_rules`,
|
|
852
|
+
rules,
|
|
853
|
+
};
|
|
854
|
+
}
|
|
855
|
+
// ── Grafana Dashboard JSON ──────────────────────────────────────
|
|
856
|
+
generateDashboardJson(identity, constraints, tools, isMultiAgent) {
|
|
857
|
+
const dashboard = this.buildGrafanaDashboard(identity, constraints, tools, isMultiAgent);
|
|
858
|
+
return {
|
|
859
|
+
path: 'observability/dashboards/agent-health.json',
|
|
860
|
+
content: JSON.stringify(dashboard, null, 2),
|
|
861
|
+
type: 'config',
|
|
862
|
+
language: 'json',
|
|
863
|
+
};
|
|
864
|
+
}
|
|
865
|
+
buildGrafanaDashboard(identity, constraints, tools, isMultiAgent) {
|
|
866
|
+
const sanitizedName = identity.name.replace(/[^a-zA-Z0-9_]/g, '_');
|
|
867
|
+
const panels = [];
|
|
868
|
+
let panelId = 1;
|
|
869
|
+
let gridY = 0;
|
|
870
|
+
// ── Row: Overview ─────────────────────────────────
|
|
871
|
+
panels.push(this.createRow('Overview', gridY));
|
|
872
|
+
gridY += 1;
|
|
873
|
+
// Stat panels row
|
|
874
|
+
panels.push(this.createStatPanel(panelId++, 'Total Invocations', `sum(increase(${sanitizedName}_invocations_total[24h]))`, { x: 0, y: gridY, w: 4, h: 4 }, 'none', 'blue'));
|
|
875
|
+
panels.push(this.createStatPanel(panelId++, 'Active Invocations', `sum(${sanitizedName}_active_invocations)`, { x: 4, y: gridY, w: 4, h: 4 }, 'none', 'green'));
|
|
876
|
+
panels.push(this.createStatPanel(panelId++, 'Error Rate', `${sanitizedName}:error_rate_5m`, { x: 8, y: gridY, w: 4, h: 4 }, 'percentunit', 'red', [
|
|
877
|
+
{ color: 'green', value: null },
|
|
878
|
+
{ color: 'orange', value: constraints.maxErrorRate * 0.5 },
|
|
879
|
+
{ color: 'red', value: constraints.maxErrorRate },
|
|
880
|
+
]));
|
|
881
|
+
panels.push(this.createStatPanel(panelId++, 'p95 Latency', `${sanitizedName}:latency_p95`, { x: 12, y: gridY, w: 4, h: 4 }, 's', 'orange', [
|
|
882
|
+
{ color: 'green', value: null },
|
|
883
|
+
{ color: 'orange', value: constraints.maxLatencySeconds * 0.7 },
|
|
884
|
+
{ color: 'red', value: constraints.maxLatencySeconds },
|
|
885
|
+
]));
|
|
886
|
+
panels.push(this.createStatPanel(panelId++, 'Daily Cost', `increase(${sanitizedName}_cost_daily_total_dollars[24h])`, { x: 16, y: gridY, w: 4, h: 4 }, 'currencyUSD', 'purple', [
|
|
887
|
+
{ color: 'green', value: null },
|
|
888
|
+
{ color: 'orange', value: constraints.maxCostPerDay * 0.8 },
|
|
889
|
+
{ color: 'red', value: constraints.maxCostPerDay },
|
|
890
|
+
]));
|
|
891
|
+
panels.push(this.createStatPanel(panelId++, 'Token Budget Used', `${sanitizedName}:token_budget_utilization * 100`, { x: 20, y: gridY, w: 4, h: 4 }, 'percent', 'yellow', [
|
|
892
|
+
{ color: 'green', value: null },
|
|
893
|
+
{ color: 'orange', value: 80 },
|
|
894
|
+
{ color: 'red', value: 100 },
|
|
895
|
+
]));
|
|
896
|
+
gridY += 4;
|
|
897
|
+
// ── Row: Token Usage ──────────────────────────────
|
|
898
|
+
panels.push(this.createRow('Token Usage', gridY));
|
|
899
|
+
gridY += 1;
|
|
900
|
+
panels.push(this.createTimeSeriesPanel(panelId++, 'Token Usage Over Time', [
|
|
901
|
+
{
|
|
902
|
+
expr: `rate(gen_ai_usage_input_tokens_total{gen_ai_agent_name="${identity.name}"}[5m])`,
|
|
903
|
+
legendFormat: 'Input tokens/s',
|
|
904
|
+
},
|
|
905
|
+
{
|
|
906
|
+
expr: `rate(gen_ai_usage_output_tokens_total{gen_ai_agent_name="${identity.name}"}[5m])`,
|
|
907
|
+
legendFormat: 'Output tokens/s',
|
|
908
|
+
},
|
|
909
|
+
], { x: 0, y: gridY, w: 12, h: 8 }, 'tokens/s'));
|
|
910
|
+
panels.push(this.createTimeSeriesPanel(panelId++, 'Cumulative Token Budget', [
|
|
911
|
+
{
|
|
912
|
+
expr: `increase(${sanitizedName}_tokens_daily_total[${this.buildRange('$__range')}])`,
|
|
913
|
+
legendFormat: 'Tokens used',
|
|
914
|
+
},
|
|
915
|
+
{
|
|
916
|
+
expr: `vector(${constraints.maxTokensPerDay})`,
|
|
917
|
+
legendFormat: 'Daily limit',
|
|
918
|
+
},
|
|
919
|
+
], { x: 12, y: gridY, w: 12, h: 8 }, 'tokens'));
|
|
920
|
+
gridY += 8;
|
|
921
|
+
// ── Row: Latency ──────────────────────────────────
|
|
922
|
+
panels.push(this.createRow('Latency', gridY));
|
|
923
|
+
gridY += 1;
|
|
924
|
+
panels.push(this.createTimeSeriesPanel(panelId++, 'Latency Percentiles (p50 / p95 / p99)', [
|
|
925
|
+
{
|
|
926
|
+
expr: `${sanitizedName}:latency_p50`,
|
|
927
|
+
legendFormat: 'p50',
|
|
928
|
+
},
|
|
929
|
+
{
|
|
930
|
+
expr: `${sanitizedName}:latency_p95`,
|
|
931
|
+
legendFormat: 'p95',
|
|
932
|
+
},
|
|
933
|
+
{
|
|
934
|
+
expr: `${sanitizedName}:latency_p99`,
|
|
935
|
+
legendFormat: 'p99',
|
|
936
|
+
},
|
|
937
|
+
{
|
|
938
|
+
expr: `vector(${constraints.maxLatencySeconds})`,
|
|
939
|
+
legendFormat: 'SLO threshold',
|
|
940
|
+
},
|
|
941
|
+
], { x: 0, y: gridY, w: 12, h: 8 }, 's'));
|
|
942
|
+
panels.push(this.createHeatmapPanel(panelId++, 'Latency Distribution', `sum(rate(gen_ai_client_operation_duration_seconds_bucket{gen_ai_agent_name="${identity.name}"}[5m])) by (le)`, { x: 12, y: gridY, w: 12, h: 8 }));
|
|
943
|
+
gridY += 8;
|
|
944
|
+
// ── Row: Cost ─────────────────────────────────────
|
|
945
|
+
panels.push(this.createRow('Cost Per Task', gridY));
|
|
946
|
+
gridY += 1;
|
|
947
|
+
panels.push(this.createTimeSeriesPanel(panelId++, 'Cost Per Request', [
|
|
948
|
+
{
|
|
949
|
+
expr: `rate(${sanitizedName}_cost_per_request_dollars_sum[5m]) / rate(${sanitizedName}_cost_per_request_dollars_count[5m])`,
|
|
950
|
+
legendFormat: 'Avg cost/request',
|
|
951
|
+
},
|
|
952
|
+
{
|
|
953
|
+
expr: `histogram_quantile(0.95, rate(${sanitizedName}_cost_per_request_dollars_bucket[5m]))`,
|
|
954
|
+
legendFormat: 'p95 cost/request',
|
|
955
|
+
},
|
|
956
|
+
], { x: 0, y: gridY, w: 12, h: 8 }, 'currencyUSD'));
|
|
957
|
+
panels.push(this.createTimeSeriesPanel(panelId++, 'Daily Cost Accumulation', [
|
|
958
|
+
{
|
|
959
|
+
expr: `increase(${sanitizedName}_cost_daily_total_dollars[1h])`,
|
|
960
|
+
legendFormat: 'Hourly spend',
|
|
961
|
+
},
|
|
962
|
+
{
|
|
963
|
+
expr: `vector(${constraints.maxCostPerDay / 24})`,
|
|
964
|
+
legendFormat: 'Hourly budget',
|
|
965
|
+
},
|
|
966
|
+
], { x: 12, y: gridY, w: 12, h: 8 }, 'currencyUSD'));
|
|
967
|
+
gridY += 8;
|
|
968
|
+
// ── Row: Error Rate ───────────────────────────────
|
|
969
|
+
panels.push(this.createRow('Error Rate', gridY));
|
|
970
|
+
gridY += 1;
|
|
971
|
+
panels.push(this.createTimeSeriesPanel(panelId++, 'Error Rate Over Time', [
|
|
972
|
+
{
|
|
973
|
+
expr: `${sanitizedName}:error_rate_5m`,
|
|
974
|
+
legendFormat: 'Error rate',
|
|
975
|
+
},
|
|
976
|
+
{
|
|
977
|
+
expr: `vector(${constraints.maxErrorRate})`,
|
|
978
|
+
legendFormat: 'SLO threshold',
|
|
979
|
+
},
|
|
980
|
+
], { x: 0, y: gridY, w: 12, h: 8 }, 'percentunit'));
|
|
981
|
+
panels.push(this.createTimeSeriesPanel(panelId++, 'Errors by Type', [
|
|
982
|
+
{
|
|
983
|
+
expr: `sum by (error_type) (rate(${sanitizedName}_errors_total[5m]))`,
|
|
984
|
+
legendFormat: '{{ error_type }}',
|
|
985
|
+
},
|
|
986
|
+
], { x: 12, y: gridY, w: 12, h: 8 }, 'ops'));
|
|
987
|
+
gridY += 8;
|
|
988
|
+
// ── Row: Tool Call Frequency ──────────────────────
|
|
989
|
+
panels.push(this.createRow('Tool Calls', gridY));
|
|
990
|
+
gridY += 1;
|
|
991
|
+
panels.push(this.createTimeSeriesPanel(panelId++, 'Tool Call Frequency', [
|
|
992
|
+
{
|
|
993
|
+
expr: `sum by (gen_ai_tool_name) (rate(${sanitizedName}_tool_calls_total[5m]))`,
|
|
994
|
+
legendFormat: '{{ gen_ai_tool_name }}',
|
|
995
|
+
},
|
|
996
|
+
], { x: 0, y: gridY, w: 12, h: 8 }, 'ops'));
|
|
997
|
+
panels.push(this.createTimeSeriesPanel(panelId++, 'Tool Latency by Tool', [
|
|
998
|
+
{
|
|
999
|
+
expr: `histogram_quantile(0.95, sum by (gen_ai_tool_name, le) (rate(${sanitizedName}_tool_duration_seconds_bucket[5m])))`,
|
|
1000
|
+
legendFormat: '{{ gen_ai_tool_name }} p95',
|
|
1001
|
+
},
|
|
1002
|
+
], { x: 12, y: gridY, w: 12, h: 8 }, 's'));
|
|
1003
|
+
gridY += 8;
|
|
1004
|
+
// Per-tool breakdown table
|
|
1005
|
+
if (tools.length > 0) {
|
|
1006
|
+
panels.push(this.createTablePanel(panelId++, 'Tool Breakdown', [
|
|
1007
|
+
{
|
|
1008
|
+
expr: `sum by (gen_ai_tool_name) (increase(${sanitizedName}_tool_calls_total[24h]))`,
|
|
1009
|
+
legendFormat: '{{ gen_ai_tool_name }}',
|
|
1010
|
+
format: 'table',
|
|
1011
|
+
instant: true,
|
|
1012
|
+
},
|
|
1013
|
+
], { x: 0, y: gridY, w: 24, h: 6 }));
|
|
1014
|
+
gridY += 6;
|
|
1015
|
+
}
|
|
1016
|
+
// ── Row: Multi-agent (conditional) ────────────────
|
|
1017
|
+
if (isMultiAgent) {
|
|
1018
|
+
panels.push(this.createRow('Team Coordination', gridY));
|
|
1019
|
+
gridY += 1;
|
|
1020
|
+
panels.push(this.createTimeSeriesPanel(panelId++, 'Handoff Rate', [
|
|
1021
|
+
{
|
|
1022
|
+
expr: `sum by (source_agent, target_agent) (rate(${sanitizedName}_team_handoffs_total[5m]))`,
|
|
1023
|
+
legendFormat: '{{ source_agent }} -> {{ target_agent }}',
|
|
1024
|
+
},
|
|
1025
|
+
], { x: 0, y: gridY, w: 12, h: 8 }, 'ops'));
|
|
1026
|
+
panels.push(this.createTimeSeriesPanel(panelId++, 'Coordination Overhead', [
|
|
1027
|
+
{
|
|
1028
|
+
expr: `${sanitizedName}:coordination_overhead_ratio`,
|
|
1029
|
+
legendFormat: 'Overhead ratio',
|
|
1030
|
+
},
|
|
1031
|
+
{
|
|
1032
|
+
expr: 'vector(0.3)',
|
|
1033
|
+
legendFormat: 'Threshold (30%)',
|
|
1034
|
+
},
|
|
1035
|
+
], { x: 12, y: gridY, w: 12, h: 8 }, 'percentunit'));
|
|
1036
|
+
gridY += 8;
|
|
1037
|
+
panels.push(this.createTimeSeriesPanel(panelId++, 'Member Utilization', [
|
|
1038
|
+
{
|
|
1039
|
+
expr: `${sanitizedName}_team_member_utilization_ratio`,
|
|
1040
|
+
legendFormat: '{{ gen_ai_agent_name }} ({{ role }})',
|
|
1041
|
+
},
|
|
1042
|
+
], { x: 0, y: gridY, w: 24, h: 8 }, 'percentunit'));
|
|
1043
|
+
gridY += 8;
|
|
1044
|
+
}
|
|
1045
|
+
return {
|
|
1046
|
+
__inputs: [
|
|
1047
|
+
{
|
|
1048
|
+
name: 'DS_PROMETHEUS',
|
|
1049
|
+
label: 'Prometheus',
|
|
1050
|
+
description: 'Prometheus data source for agent metrics',
|
|
1051
|
+
type: 'datasource',
|
|
1052
|
+
pluginId: 'prometheus',
|
|
1053
|
+
pluginName: 'Prometheus',
|
|
1054
|
+
},
|
|
1055
|
+
],
|
|
1056
|
+
__requires: [
|
|
1057
|
+
{ type: 'grafana', id: 'grafana', name: 'Grafana', version: '10.0.0' },
|
|
1058
|
+
{ type: 'datasource', id: 'prometheus', name: 'Prometheus', version: '1.0.0' },
|
|
1059
|
+
{ type: 'panel', id: 'timeseries', name: 'Time series', version: '' },
|
|
1060
|
+
{ type: 'panel', id: 'stat', name: 'Stat', version: '' },
|
|
1061
|
+
{ type: 'panel', id: 'heatmap', name: 'Heatmap', version: '' },
|
|
1062
|
+
{ type: 'panel', id: 'table', name: 'Table', version: '' },
|
|
1063
|
+
{ type: 'panel', id: 'row', name: 'Row', version: '' },
|
|
1064
|
+
],
|
|
1065
|
+
annotations: {
|
|
1066
|
+
list: [
|
|
1067
|
+
{
|
|
1068
|
+
builtIn: 1,
|
|
1069
|
+
datasource: { type: 'grafana', uid: '-- Grafana --' },
|
|
1070
|
+
enable: true,
|
|
1071
|
+
hide: true,
|
|
1072
|
+
iconColor: 'rgba(0, 211, 255, 1)',
|
|
1073
|
+
name: 'Annotations & Alerts',
|
|
1074
|
+
type: 'dashboard',
|
|
1075
|
+
},
|
|
1076
|
+
],
|
|
1077
|
+
},
|
|
1078
|
+
description: `Health dashboard for OSSA agent: ${identity.name} (${identity.agentKind}, ${identity.pattern} pattern)`,
|
|
1079
|
+
editable: true,
|
|
1080
|
+
fiscalYearStartMonth: 0,
|
|
1081
|
+
graphTooltip: 1, // Shared crosshair
|
|
1082
|
+
id: null,
|
|
1083
|
+
links: [],
|
|
1084
|
+
panels,
|
|
1085
|
+
schemaVersion: 39,
|
|
1086
|
+
tags: ['ossa', 'agent', identity.name, identity.agentType, identity.pattern],
|
|
1087
|
+
templating: {
|
|
1088
|
+
list: [
|
|
1089
|
+
{
|
|
1090
|
+
current: { selected: false, text: 'Prometheus', value: 'Prometheus' },
|
|
1091
|
+
hide: 0,
|
|
1092
|
+
includeAll: false,
|
|
1093
|
+
label: 'Data Source',
|
|
1094
|
+
multi: false,
|
|
1095
|
+
name: 'datasource',
|
|
1096
|
+
options: [],
|
|
1097
|
+
query: 'prometheus',
|
|
1098
|
+
queryValue: '',
|
|
1099
|
+
refresh: 1,
|
|
1100
|
+
regex: '',
|
|
1101
|
+
skipUrlSync: false,
|
|
1102
|
+
type: 'datasource',
|
|
1103
|
+
},
|
|
1104
|
+
{
|
|
1105
|
+
current: { selected: false, text: identity.name, value: identity.name },
|
|
1106
|
+
hide: 2,
|
|
1107
|
+
label: 'Agent Name',
|
|
1108
|
+
name: 'agent_name',
|
|
1109
|
+
options: [{ selected: true, text: identity.name, value: identity.name }],
|
|
1110
|
+
query: identity.name,
|
|
1111
|
+
skipUrlSync: false,
|
|
1112
|
+
type: 'constant',
|
|
1113
|
+
},
|
|
1114
|
+
],
|
|
1115
|
+
},
|
|
1116
|
+
time: { from: 'now-6h', to: 'now' },
|
|
1117
|
+
timepicker: {},
|
|
1118
|
+
timezone: 'browser',
|
|
1119
|
+
title: `${identity.name} - Agent Health`,
|
|
1120
|
+
uid: `ossa-${sanitizedName}-health`,
|
|
1121
|
+
version: 1,
|
|
1122
|
+
refresh: '30s',
|
|
1123
|
+
};
|
|
1124
|
+
}
|
|
1125
|
+
// ── Grafana panel builders ──────────────────────────────────────
|
|
1126
|
+
createRow(title, gridY) {
|
|
1127
|
+
return {
|
|
1128
|
+
collapsed: false,
|
|
1129
|
+
gridPos: { h: 1, w: 24, x: 0, y: gridY },
|
|
1130
|
+
id: 1000 + gridY,
|
|
1131
|
+
panels: [],
|
|
1132
|
+
title,
|
|
1133
|
+
type: 'row',
|
|
1134
|
+
};
|
|
1135
|
+
}
|
|
1136
|
+
createStatPanel(id, title, expr, gridPos, unit, color, thresholds) {
|
|
1137
|
+
return {
|
|
1138
|
+
id,
|
|
1139
|
+
title,
|
|
1140
|
+
type: 'stat',
|
|
1141
|
+
datasource: { type: 'prometheus', uid: '${datasource}' },
|
|
1142
|
+
fieldConfig: {
|
|
1143
|
+
defaults: {
|
|
1144
|
+
color: { mode: thresholds ? 'thresholds' : 'fixed', fixedColor: color },
|
|
1145
|
+
mappings: [],
|
|
1146
|
+
thresholds: {
|
|
1147
|
+
mode: 'absolute',
|
|
1148
|
+
steps: thresholds ?? [
|
|
1149
|
+
{ color: color, value: null },
|
|
1150
|
+
],
|
|
1151
|
+
},
|
|
1152
|
+
unit,
|
|
1153
|
+
},
|
|
1154
|
+
overrides: [],
|
|
1155
|
+
},
|
|
1156
|
+
gridPos,
|
|
1157
|
+
options: {
|
|
1158
|
+
colorMode: thresholds ? 'background' : 'value',
|
|
1159
|
+
graphMode: 'area',
|
|
1160
|
+
justifyMode: 'auto',
|
|
1161
|
+
orientation: 'auto',
|
|
1162
|
+
reduceOptions: {
|
|
1163
|
+
calcs: ['lastNotNull'],
|
|
1164
|
+
fields: '',
|
|
1165
|
+
values: false,
|
|
1166
|
+
},
|
|
1167
|
+
textMode: 'auto',
|
|
1168
|
+
wideLayout: true,
|
|
1169
|
+
},
|
|
1170
|
+
targets: [
|
|
1171
|
+
{
|
|
1172
|
+
datasource: { type: 'prometheus', uid: '${datasource}' },
|
|
1173
|
+
expr,
|
|
1174
|
+
instant: true,
|
|
1175
|
+
legendFormat: '__auto',
|
|
1176
|
+
refId: 'A',
|
|
1177
|
+
},
|
|
1178
|
+
],
|
|
1179
|
+
};
|
|
1180
|
+
}
|
|
1181
|
+
createTimeSeriesPanel(id, title, queries, gridPos, unit) {
|
|
1182
|
+
return {
|
|
1183
|
+
id,
|
|
1184
|
+
title,
|
|
1185
|
+
type: 'timeseries',
|
|
1186
|
+
datasource: { type: 'prometheus', uid: '${datasource}' },
|
|
1187
|
+
fieldConfig: {
|
|
1188
|
+
defaults: {
|
|
1189
|
+
color: { mode: 'palette-classic' },
|
|
1190
|
+
custom: {
|
|
1191
|
+
axisBorderShow: false,
|
|
1192
|
+
axisCenteredZero: false,
|
|
1193
|
+
axisColorMode: 'text',
|
|
1194
|
+
axisLabel: '',
|
|
1195
|
+
axisPlacement: 'auto',
|
|
1196
|
+
barAlignment: 0,
|
|
1197
|
+
drawStyle: 'line',
|
|
1198
|
+
fillOpacity: 10,
|
|
1199
|
+
gradientMode: 'none',
|
|
1200
|
+
hideFrom: { legend: false, tooltip: false, viz: false },
|
|
1201
|
+
insertNulls: false,
|
|
1202
|
+
lineInterpolation: 'smooth',
|
|
1203
|
+
lineWidth: 2,
|
|
1204
|
+
pointSize: 5,
|
|
1205
|
+
scaleDistribution: { type: 'linear' },
|
|
1206
|
+
showPoints: 'auto',
|
|
1207
|
+
spanNulls: false,
|
|
1208
|
+
stacking: { group: 'A', mode: 'none' },
|
|
1209
|
+
thresholdsStyle: { mode: 'off' },
|
|
1210
|
+
},
|
|
1211
|
+
mappings: [],
|
|
1212
|
+
thresholds: {
|
|
1213
|
+
mode: 'absolute',
|
|
1214
|
+
steps: [{ color: 'green', value: null }],
|
|
1215
|
+
},
|
|
1216
|
+
unit,
|
|
1217
|
+
},
|
|
1218
|
+
overrides: [],
|
|
1219
|
+
},
|
|
1220
|
+
gridPos,
|
|
1221
|
+
options: {
|
|
1222
|
+
legend: {
|
|
1223
|
+
calcs: ['mean', 'max', 'lastNotNull'],
|
|
1224
|
+
displayMode: 'table',
|
|
1225
|
+
placement: 'bottom',
|
|
1226
|
+
showLegend: true,
|
|
1227
|
+
},
|
|
1228
|
+
tooltip: { mode: 'multi', sort: 'desc' },
|
|
1229
|
+
},
|
|
1230
|
+
targets: queries.map((q, i) => ({
|
|
1231
|
+
datasource: { type: 'prometheus', uid: '${datasource}' },
|
|
1232
|
+
expr: q.expr,
|
|
1233
|
+
legendFormat: q.legendFormat,
|
|
1234
|
+
refId: String.fromCharCode(65 + i), // A, B, C, ...
|
|
1235
|
+
})),
|
|
1236
|
+
};
|
|
1237
|
+
}
|
|
1238
|
+
createHeatmapPanel(id, title, expr, gridPos) {
|
|
1239
|
+
return {
|
|
1240
|
+
id,
|
|
1241
|
+
title,
|
|
1242
|
+
type: 'heatmap',
|
|
1243
|
+
datasource: { type: 'prometheus', uid: '${datasource}' },
|
|
1244
|
+
gridPos,
|
|
1245
|
+
options: {
|
|
1246
|
+
calculate: false,
|
|
1247
|
+
cellGap: 1,
|
|
1248
|
+
color: {
|
|
1249
|
+
exponent: 0.5,
|
|
1250
|
+
fill: 'dark-orange',
|
|
1251
|
+
mode: 'scheme',
|
|
1252
|
+
reverse: false,
|
|
1253
|
+
scale: 'exponential',
|
|
1254
|
+
scheme: 'Oranges',
|
|
1255
|
+
steps: 64,
|
|
1256
|
+
},
|
|
1257
|
+
exemplars: { color: 'rgba(255,0,255,0.7)' },
|
|
1258
|
+
filterValues: { le: 1e-9 },
|
|
1259
|
+
legend: { show: true },
|
|
1260
|
+
rowsFrame: { layout: 'le' },
|
|
1261
|
+
showValue: 'auto',
|
|
1262
|
+
tooltip: { mode: 'single', showColorScale: false, yHistogram: false },
|
|
1263
|
+
yAxis: {
|
|
1264
|
+
axisPlacement: 'left',
|
|
1265
|
+
reverse: false,
|
|
1266
|
+
unit: 's',
|
|
1267
|
+
},
|
|
1268
|
+
},
|
|
1269
|
+
targets: [
|
|
1270
|
+
{
|
|
1271
|
+
datasource: { type: 'prometheus', uid: '${datasource}' },
|
|
1272
|
+
expr,
|
|
1273
|
+
format: 'heatmap',
|
|
1274
|
+
legendFormat: '{{ le }}',
|
|
1275
|
+
refId: 'A',
|
|
1276
|
+
},
|
|
1277
|
+
],
|
|
1278
|
+
};
|
|
1279
|
+
}
|
|
1280
|
+
createTablePanel(id, title, queries, gridPos) {
|
|
1281
|
+
return {
|
|
1282
|
+
id,
|
|
1283
|
+
title,
|
|
1284
|
+
type: 'table',
|
|
1285
|
+
datasource: { type: 'prometheus', uid: '${datasource}' },
|
|
1286
|
+
fieldConfig: {
|
|
1287
|
+
defaults: {
|
|
1288
|
+
color: { mode: 'thresholds' },
|
|
1289
|
+
custom: {
|
|
1290
|
+
align: 'auto',
|
|
1291
|
+
cellOptions: { type: 'auto' },
|
|
1292
|
+
inspect: false,
|
|
1293
|
+
},
|
|
1294
|
+
mappings: [],
|
|
1295
|
+
thresholds: {
|
|
1296
|
+
mode: 'absolute',
|
|
1297
|
+
steps: [
|
|
1298
|
+
{ color: 'green', value: null },
|
|
1299
|
+
{ color: 'red', value: 80 },
|
|
1300
|
+
],
|
|
1301
|
+
},
|
|
1302
|
+
},
|
|
1303
|
+
overrides: [
|
|
1304
|
+
{
|
|
1305
|
+
matcher: { id: 'byName', options: 'gen_ai_tool_name' },
|
|
1306
|
+
properties: [{ id: 'displayName', value: 'Tool' }],
|
|
1307
|
+
},
|
|
1308
|
+
{
|
|
1309
|
+
matcher: { id: 'byName', options: 'Value' },
|
|
1310
|
+
properties: [{ id: 'displayName', value: 'Calls (24h)' }],
|
|
1311
|
+
},
|
|
1312
|
+
],
|
|
1313
|
+
},
|
|
1314
|
+
gridPos,
|
|
1315
|
+
options: {
|
|
1316
|
+
cellHeight: 'sm',
|
|
1317
|
+
footer: { countRows: false, fields: '', reducer: ['sum'], show: true },
|
|
1318
|
+
showHeader: true,
|
|
1319
|
+
sortBy: [{ desc: true, displayName: 'Calls (24h)' }],
|
|
1320
|
+
},
|
|
1321
|
+
targets: queries.map((q, i) => ({
|
|
1322
|
+
datasource: { type: 'prometheus', uid: '${datasource}' },
|
|
1323
|
+
expr: q.expr,
|
|
1324
|
+
format: q.format,
|
|
1325
|
+
instant: q.instant,
|
|
1326
|
+
legendFormat: q.legendFormat,
|
|
1327
|
+
refId: String.fromCharCode(65 + i),
|
|
1328
|
+
})),
|
|
1329
|
+
transformations: [
|
|
1330
|
+
{
|
|
1331
|
+
id: 'merge',
|
|
1332
|
+
options: {},
|
|
1333
|
+
},
|
|
1334
|
+
{
|
|
1335
|
+
id: 'organize',
|
|
1336
|
+
options: {
|
|
1337
|
+
excludeByName: { Time: true, __name__: true },
|
|
1338
|
+
indexByName: {},
|
|
1339
|
+
renameByName: {},
|
|
1340
|
+
},
|
|
1341
|
+
},
|
|
1342
|
+
],
|
|
1343
|
+
};
|
|
1344
|
+
}
|
|
1345
|
+
/**
|
|
1346
|
+
* Build a range expression for PromQL that works with Grafana variables.
|
|
1347
|
+
* Falls back to a static range if no variable is available.
|
|
1348
|
+
*/
|
|
1349
|
+
buildRange(variable) {
|
|
1350
|
+
return variable;
|
|
1351
|
+
}
|
|
1352
|
+
}
|
|
1353
|
+
//# sourceMappingURL=observability-generator.service.js.map
|