@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,1603 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Evals Generator Service for OSSA Agent Manifests
|
|
3
|
+
*
|
|
4
|
+
* Generates evaluation scaffolding based on the CLEAR framework:
|
|
5
|
+
* - Cost: Token budget, per-request spend limits
|
|
6
|
+
* - Latency: Response time SLOs, timeout thresholds
|
|
7
|
+
* - Accuracy: Golden-set input/output pairs per tool
|
|
8
|
+
* - Reliability: Error-rate budgets, retry behavior, uptime
|
|
9
|
+
* - Security: Prompt injection resistance, PII handling, auth
|
|
10
|
+
*
|
|
11
|
+
* Produces:
|
|
12
|
+
* evals/eval-config.yaml — CLEAR framework config
|
|
13
|
+
* evals/golden-sets/{tool-name}.yaml — Per-tool golden test pairs
|
|
14
|
+
* evals/test-cases/capabilities.yaml — Role-based capability scenarios
|
|
15
|
+
* evals/test-cases/team-coordination.yaml — Multi-agent coordination tests
|
|
16
|
+
*
|
|
17
|
+
* SOLID: Single Responsibility — eval scaffolding generation only
|
|
18
|
+
* DRY: Reusable across all OSSA adapters via Perfect Agent export
|
|
19
|
+
*/
|
|
20
|
+
import * as yaml from 'yaml';
|
|
21
|
+
// ─── Service ────────────────────────────────────────────────────────────────
|
|
22
|
+
/**
|
|
23
|
+
* Generates CLEAR-framework evaluation scaffolding from an OSSA manifest.
|
|
24
|
+
*
|
|
25
|
+
* Usage:
|
|
26
|
+
* ```ts
|
|
27
|
+
* const service = new EvalsGeneratorService();
|
|
28
|
+
* const files: ExportFile[] = service.generate(manifest);
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export class EvalsGeneratorService {
|
|
32
|
+
/**
|
|
33
|
+
* Generate all evaluation files from an OSSA agent manifest.
|
|
34
|
+
*/
|
|
35
|
+
generate(manifest) {
|
|
36
|
+
const files = [];
|
|
37
|
+
// 1. CLEAR framework eval config
|
|
38
|
+
files.push(this.generateEvalConfig(manifest));
|
|
39
|
+
// 2. Per-tool golden sets
|
|
40
|
+
const tools = this.resolveTools(manifest);
|
|
41
|
+
for (const tool of tools) {
|
|
42
|
+
const toolName = tool.name ?? 'unnamed-tool';
|
|
43
|
+
files.push(this.generateGoldenSet(manifest, tool, toolName));
|
|
44
|
+
}
|
|
45
|
+
// 3. Capability test cases
|
|
46
|
+
files.push(this.generateCapabilityTests(manifest));
|
|
47
|
+
// 4. Team coordination tests (only for multi-agent manifests)
|
|
48
|
+
if (this.isMultiAgent(manifest)) {
|
|
49
|
+
files.push(this.generateTeamCoordinationTests(manifest));
|
|
50
|
+
}
|
|
51
|
+
return files;
|
|
52
|
+
}
|
|
53
|
+
// ── CLEAR Config ────────────────────────────────────────────────────────
|
|
54
|
+
generateEvalConfig(manifest) {
|
|
55
|
+
const meta = manifest.metadata;
|
|
56
|
+
const spec = manifest.spec;
|
|
57
|
+
const constraints = spec?.constraints;
|
|
58
|
+
const autonomy = spec?.autonomy;
|
|
59
|
+
const llm = spec?.llm;
|
|
60
|
+
const tools = this.resolveTools(manifest);
|
|
61
|
+
const maxLatency = constraints?.performance?.maxLatencySeconds ?? 10;
|
|
62
|
+
const maxErrorRate = constraints?.performance?.maxErrorRate ?? 0.05;
|
|
63
|
+
const timeoutSeconds = constraints?.performance?.timeoutSeconds ?? 30;
|
|
64
|
+
const maxTokensPerDay = constraints?.cost?.maxTokensPerDay ?? 1_000_000;
|
|
65
|
+
const maxTokensPerRequest = constraints?.cost?.maxTokensPerRequest ?? 4096;
|
|
66
|
+
const maxCostPerDay = constraints?.cost?.maxCostPerDay ?? 10.0;
|
|
67
|
+
const currency = constraints?.cost?.currency ?? 'USD';
|
|
68
|
+
const autonomyLevel = autonomy?.level ?? 'supervised';
|
|
69
|
+
const allowedActions = autonomy?.allowed_actions ?? [];
|
|
70
|
+
const blockedActions = autonomy?.blocked_actions ?? [];
|
|
71
|
+
const config = {
|
|
72
|
+
eval_framework: 'CLEAR',
|
|
73
|
+
version: '1.0.0',
|
|
74
|
+
agent: {
|
|
75
|
+
name: meta?.name ?? 'unknown-agent',
|
|
76
|
+
version: meta?.version ?? '0.0.0',
|
|
77
|
+
description: meta?.description ?? '',
|
|
78
|
+
agent_type: meta?.agentType ?? 'custom',
|
|
79
|
+
agent_kind: meta?.agentKind ?? 'assistant',
|
|
80
|
+
architecture_pattern: meta?.agentArchitecture?.pattern ?? 'single',
|
|
81
|
+
model: llm ? `${llm.provider}/${llm.model}` : 'not-specified',
|
|
82
|
+
},
|
|
83
|
+
cost: {
|
|
84
|
+
description: 'Token and monetary cost guardrails',
|
|
85
|
+
max_tokens_per_day: maxTokensPerDay,
|
|
86
|
+
max_tokens_per_request: maxTokensPerRequest,
|
|
87
|
+
max_cost_per_day: maxCostPerDay,
|
|
88
|
+
currency,
|
|
89
|
+
alert_thresholds: [
|
|
90
|
+
{ level: 'warning', percent_of_daily_limit: 75 },
|
|
91
|
+
{ level: 'critical', percent_of_daily_limit: 90 },
|
|
92
|
+
],
|
|
93
|
+
per_tool_budgets: tools.map((t) => ({
|
|
94
|
+
tool: t.name ?? 'unnamed',
|
|
95
|
+
max_tokens_per_call: Math.min(maxTokensPerRequest, 2048),
|
|
96
|
+
})),
|
|
97
|
+
},
|
|
98
|
+
latency: {
|
|
99
|
+
description: 'Response time SLOs and timeout thresholds',
|
|
100
|
+
max_latency_seconds: maxLatency,
|
|
101
|
+
timeout_seconds: timeoutSeconds,
|
|
102
|
+
percentile_targets: {
|
|
103
|
+
p50: Math.round(maxLatency * 0.4 * 100) / 100,
|
|
104
|
+
p95: Math.round(maxLatency * 0.85 * 100) / 100,
|
|
105
|
+
p99: maxLatency,
|
|
106
|
+
},
|
|
107
|
+
tool_latency_budgets: tools.map((t) => ({
|
|
108
|
+
tool: t.name ?? 'unnamed',
|
|
109
|
+
max_seconds: Math.round(maxLatency * 0.6 * 100) / 100,
|
|
110
|
+
})),
|
|
111
|
+
},
|
|
112
|
+
accuracy: {
|
|
113
|
+
description: 'Output quality measured via golden-set test pairs',
|
|
114
|
+
golden_set_directory: 'evals/golden-sets',
|
|
115
|
+
min_pass_rate: 0.9,
|
|
116
|
+
scoring: {
|
|
117
|
+
method: 'exact_match_and_semantic',
|
|
118
|
+
semantic_similarity_threshold: 0.85,
|
|
119
|
+
field_weights: {
|
|
120
|
+
required_fields: 1.0,
|
|
121
|
+
optional_fields: 0.5,
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
tools_evaluated: tools.map((t) => t.name ?? 'unnamed'),
|
|
125
|
+
},
|
|
126
|
+
reliability: {
|
|
127
|
+
description: 'Error budget and resilience requirements',
|
|
128
|
+
max_error_rate: maxErrorRate,
|
|
129
|
+
uptime_target: 0.995,
|
|
130
|
+
retry_policy: {
|
|
131
|
+
max_retries: 3,
|
|
132
|
+
backoff: 'exponential',
|
|
133
|
+
initial_delay_ms: 500,
|
|
134
|
+
max_delay_ms: 10_000,
|
|
135
|
+
},
|
|
136
|
+
circuit_breaker: {
|
|
137
|
+
enabled: true,
|
|
138
|
+
failure_threshold: 5,
|
|
139
|
+
reset_timeout_seconds: 60,
|
|
140
|
+
},
|
|
141
|
+
graceful_degradation: {
|
|
142
|
+
enabled: true,
|
|
143
|
+
fallback_behavior: 'return_cached_or_error',
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
security: {
|
|
147
|
+
description: 'Prompt injection resistance, PII handling, and access control',
|
|
148
|
+
prompt_injection: {
|
|
149
|
+
test_enabled: true,
|
|
150
|
+
attack_vectors: [
|
|
151
|
+
'ignore_instructions',
|
|
152
|
+
'role_override',
|
|
153
|
+
'system_prompt_leak',
|
|
154
|
+
'data_exfiltration',
|
|
155
|
+
'indirect_injection',
|
|
156
|
+
],
|
|
157
|
+
expected_behavior: 'refuse_or_ignore',
|
|
158
|
+
},
|
|
159
|
+
pii_handling: {
|
|
160
|
+
test_enabled: true,
|
|
161
|
+
detectable_types: ['credit_card', 'ssn', 'email', 'phone', 'api_key'],
|
|
162
|
+
expected_behavior: 'redact_or_refuse',
|
|
163
|
+
},
|
|
164
|
+
autonomy_compliance: {
|
|
165
|
+
level: autonomyLevel,
|
|
166
|
+
allowed_actions: allowedActions,
|
|
167
|
+
blocked_actions: blockedActions,
|
|
168
|
+
test_blocked_actions: blockedActions.length > 0,
|
|
169
|
+
},
|
|
170
|
+
input_validation: {
|
|
171
|
+
max_input_length: 100_000,
|
|
172
|
+
reject_binary: true,
|
|
173
|
+
sanitize_html: true,
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
execution: {
|
|
177
|
+
description: 'How to run the evaluation suite',
|
|
178
|
+
runner: 'ossa-evals',
|
|
179
|
+
parallel: true,
|
|
180
|
+
max_concurrency: 5,
|
|
181
|
+
timeout_per_test_seconds: timeoutSeconds * 2,
|
|
182
|
+
report_format: ['json', 'yaml', 'html'],
|
|
183
|
+
output_directory: 'evals/results',
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
return {
|
|
187
|
+
path: 'evals/eval-config.yaml',
|
|
188
|
+
content: this.yamlStringify(config),
|
|
189
|
+
type: 'config',
|
|
190
|
+
language: 'yaml',
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
// ── Golden Sets ─────────────────────────────────────────────────────────
|
|
194
|
+
generateGoldenSet(manifest, tool, toolName) {
|
|
195
|
+
const safeToolName = this.slugify(toolName);
|
|
196
|
+
const schema = this.resolveInputSchema(tool);
|
|
197
|
+
const testCases = this.deriveGoldenCases(tool, schema);
|
|
198
|
+
const goldenSet = {
|
|
199
|
+
tool: toolName,
|
|
200
|
+
description: tool.description ?? `Golden-set tests for ${toolName}`,
|
|
201
|
+
schema_version: '1.0.0',
|
|
202
|
+
agent: manifest.metadata?.name ?? 'unknown-agent',
|
|
203
|
+
test_cases: testCases,
|
|
204
|
+
};
|
|
205
|
+
return {
|
|
206
|
+
path: `evals/golden-sets/${safeToolName}.yaml`,
|
|
207
|
+
content: this.yamlStringify(goldenSet),
|
|
208
|
+
type: 'test',
|
|
209
|
+
language: 'yaml',
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Derive intelligent golden-set test cases from a tool's schema and description.
|
|
214
|
+
*/
|
|
215
|
+
deriveGoldenCases(tool, schema) {
|
|
216
|
+
const toolName = tool.name ?? 'unnamed-tool';
|
|
217
|
+
const cases = [];
|
|
218
|
+
const properties = schema?.properties ?? {};
|
|
219
|
+
const required = schema?.required ?? [];
|
|
220
|
+
const propertyEntries = Object.entries(properties);
|
|
221
|
+
// Case 1: Happy path — all required fields with valid values
|
|
222
|
+
if (propertyEntries.length > 0) {
|
|
223
|
+
const happyInput = {};
|
|
224
|
+
for (const [key, prop] of propertyEntries) {
|
|
225
|
+
happyInput[key] = this.generateSampleValue(key, prop, 'valid');
|
|
226
|
+
}
|
|
227
|
+
cases.push({
|
|
228
|
+
id: `${toolName}-happy-path`,
|
|
229
|
+
description: `Valid input with all fields populated for ${toolName}`,
|
|
230
|
+
input: happyInput,
|
|
231
|
+
expected_output: {
|
|
232
|
+
success: true,
|
|
233
|
+
_comment: `Expected successful execution of ${toolName}`,
|
|
234
|
+
},
|
|
235
|
+
tags: ['happy-path', 'smoke'],
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
// Case 2: Minimal required fields only
|
|
239
|
+
if (required.length > 0 && required.length < propertyEntries.length) {
|
|
240
|
+
const minimalInput = {};
|
|
241
|
+
for (const key of required) {
|
|
242
|
+
const prop = properties[key];
|
|
243
|
+
if (prop) {
|
|
244
|
+
minimalInput[key] = this.generateSampleValue(key, prop, 'valid');
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
cases.push({
|
|
248
|
+
id: `${toolName}-minimal-required`,
|
|
249
|
+
description: `Only required fields provided for ${toolName}`,
|
|
250
|
+
input: minimalInput,
|
|
251
|
+
expected_output: {
|
|
252
|
+
success: true,
|
|
253
|
+
_comment: 'Should succeed with only required fields',
|
|
254
|
+
},
|
|
255
|
+
tags: ['minimal', 'required-fields'],
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
// Case 3: Missing required field(s)
|
|
259
|
+
if (required.length > 0) {
|
|
260
|
+
const missingFieldInput = {};
|
|
261
|
+
// Include all required fields except the first one
|
|
262
|
+
for (let i = 1; i < required.length; i++) {
|
|
263
|
+
const prop = properties[required[i]];
|
|
264
|
+
if (prop) {
|
|
265
|
+
missingFieldInput[required[i]] = this.generateSampleValue(required[i], prop, 'valid');
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
cases.push({
|
|
269
|
+
id: `${toolName}-missing-required`,
|
|
270
|
+
description: `Missing required field '${required[0]}' for ${toolName}`,
|
|
271
|
+
input: missingFieldInput,
|
|
272
|
+
expected_output: {
|
|
273
|
+
success: false,
|
|
274
|
+
error_type: 'validation_error',
|
|
275
|
+
_comment: `Should reject input missing required field: ${required[0]}`,
|
|
276
|
+
},
|
|
277
|
+
tags: ['negative', 'validation'],
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
// Case 4: Invalid types for each property
|
|
281
|
+
for (const [key, prop] of propertyEntries) {
|
|
282
|
+
const invalidInput = {};
|
|
283
|
+
// Fill valid values for all fields first
|
|
284
|
+
for (const [k, p] of propertyEntries) {
|
|
285
|
+
invalidInput[k] = this.generateSampleValue(k, p, 'valid');
|
|
286
|
+
}
|
|
287
|
+
// Override the target field with an invalid type
|
|
288
|
+
invalidInput[key] = this.generateSampleValue(key, prop, 'invalid-type');
|
|
289
|
+
cases.push({
|
|
290
|
+
id: `${toolName}-invalid-type-${this.slugify(key)}`,
|
|
291
|
+
description: `Invalid type for field '${key}' in ${toolName}`,
|
|
292
|
+
input: invalidInput,
|
|
293
|
+
expected_output: {
|
|
294
|
+
success: false,
|
|
295
|
+
error_type: 'type_error',
|
|
296
|
+
_comment: `Should reject invalid type for field: ${key} (expected: ${prop.type ?? 'unknown'})`,
|
|
297
|
+
},
|
|
298
|
+
tags: ['negative', 'type-validation'],
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
// Case 5: Boundary values for numeric fields
|
|
302
|
+
for (const [key, prop] of propertyEntries) {
|
|
303
|
+
if (prop.type === 'number' || prop.type === 'integer') {
|
|
304
|
+
// Minimum boundary
|
|
305
|
+
if (prop.minimum !== undefined) {
|
|
306
|
+
const boundaryInput = {};
|
|
307
|
+
for (const [k, p] of propertyEntries) {
|
|
308
|
+
boundaryInput[k] = this.generateSampleValue(k, p, 'valid');
|
|
309
|
+
}
|
|
310
|
+
boundaryInput[key] = prop.minimum;
|
|
311
|
+
cases.push({
|
|
312
|
+
id: `${toolName}-boundary-min-${this.slugify(key)}`,
|
|
313
|
+
description: `Minimum boundary value (${prop.minimum}) for '${key}' in ${toolName}`,
|
|
314
|
+
input: boundaryInput,
|
|
315
|
+
expected_output: {
|
|
316
|
+
success: true,
|
|
317
|
+
_comment: `Should accept minimum boundary value for ${key}`,
|
|
318
|
+
},
|
|
319
|
+
tags: ['boundary', 'numeric'],
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
// Below minimum (negative test)
|
|
323
|
+
if (prop.minimum !== undefined) {
|
|
324
|
+
const belowMinInput = {};
|
|
325
|
+
for (const [k, p] of propertyEntries) {
|
|
326
|
+
belowMinInput[k] = this.generateSampleValue(k, p, 'valid');
|
|
327
|
+
}
|
|
328
|
+
belowMinInput[key] = prop.minimum - 1;
|
|
329
|
+
cases.push({
|
|
330
|
+
id: `${toolName}-below-min-${this.slugify(key)}`,
|
|
331
|
+
description: `Below minimum (${prop.minimum - 1}) for '${key}' in ${toolName}`,
|
|
332
|
+
input: belowMinInput,
|
|
333
|
+
expected_output: {
|
|
334
|
+
success: false,
|
|
335
|
+
error_type: 'validation_error',
|
|
336
|
+
_comment: `Should reject value below minimum for ${key}`,
|
|
337
|
+
},
|
|
338
|
+
tags: ['negative', 'boundary'],
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
// Maximum boundary
|
|
342
|
+
if (prop.maximum !== undefined) {
|
|
343
|
+
const maxInput = {};
|
|
344
|
+
for (const [k, p] of propertyEntries) {
|
|
345
|
+
maxInput[k] = this.generateSampleValue(k, p, 'valid');
|
|
346
|
+
}
|
|
347
|
+
maxInput[key] = prop.maximum;
|
|
348
|
+
cases.push({
|
|
349
|
+
id: `${toolName}-boundary-max-${this.slugify(key)}`,
|
|
350
|
+
description: `Maximum boundary value (${prop.maximum}) for '${key}' in ${toolName}`,
|
|
351
|
+
input: maxInput,
|
|
352
|
+
expected_output: {
|
|
353
|
+
success: true,
|
|
354
|
+
_comment: `Should accept maximum boundary value for ${key}`,
|
|
355
|
+
},
|
|
356
|
+
tags: ['boundary', 'numeric'],
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
// String length boundaries
|
|
361
|
+
if (prop.type === 'string' && prop.maxLength !== undefined) {
|
|
362
|
+
const maxLenInput = {};
|
|
363
|
+
for (const [k, p] of propertyEntries) {
|
|
364
|
+
maxLenInput[k] = this.generateSampleValue(k, p, 'valid');
|
|
365
|
+
}
|
|
366
|
+
maxLenInput[key] = 'x'.repeat(prop.maxLength + 1);
|
|
367
|
+
cases.push({
|
|
368
|
+
id: `${toolName}-exceeds-maxlength-${this.slugify(key)}`,
|
|
369
|
+
description: `String exceeds maxLength (${prop.maxLength}) for '${key}' in ${toolName}`,
|
|
370
|
+
input: maxLenInput,
|
|
371
|
+
expected_output: {
|
|
372
|
+
success: false,
|
|
373
|
+
error_type: 'validation_error',
|
|
374
|
+
_comment: `Should reject string exceeding maxLength for ${key}`,
|
|
375
|
+
},
|
|
376
|
+
tags: ['negative', 'boundary', 'string'],
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
// Case 6: Enum constraint violations
|
|
381
|
+
for (const [key, prop] of propertyEntries) {
|
|
382
|
+
if (prop.enum && prop.enum.length > 0) {
|
|
383
|
+
// Valid enum value
|
|
384
|
+
const validEnumInput = {};
|
|
385
|
+
for (const [k, p] of propertyEntries) {
|
|
386
|
+
validEnumInput[k] = this.generateSampleValue(k, p, 'valid');
|
|
387
|
+
}
|
|
388
|
+
cases.push({
|
|
389
|
+
id: `${toolName}-valid-enum-${this.slugify(key)}`,
|
|
390
|
+
description: `Valid enum value for '${key}' in ${toolName}`,
|
|
391
|
+
input: validEnumInput,
|
|
392
|
+
expected_output: {
|
|
393
|
+
success: true,
|
|
394
|
+
_comment: `Should accept valid enum value from: [${prop.enum.join(', ')}]`,
|
|
395
|
+
},
|
|
396
|
+
tags: ['enum', 'happy-path'],
|
|
397
|
+
});
|
|
398
|
+
// Invalid enum value
|
|
399
|
+
const invalidEnumInput = {};
|
|
400
|
+
for (const [k, p] of propertyEntries) {
|
|
401
|
+
invalidEnumInput[k] = this.generateSampleValue(k, p, 'valid');
|
|
402
|
+
}
|
|
403
|
+
invalidEnumInput[key] = '__invalid_enum_value__';
|
|
404
|
+
cases.push({
|
|
405
|
+
id: `${toolName}-invalid-enum-${this.slugify(key)}`,
|
|
406
|
+
description: `Invalid enum value for '${key}' in ${toolName}`,
|
|
407
|
+
input: invalidEnumInput,
|
|
408
|
+
expected_output: {
|
|
409
|
+
success: false,
|
|
410
|
+
error_type: 'validation_error',
|
|
411
|
+
_comment: `Should reject value not in enum: [${prop.enum.join(', ')}]`,
|
|
412
|
+
},
|
|
413
|
+
tags: ['negative', 'enum'],
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
// Case 7: Empty input
|
|
418
|
+
cases.push({
|
|
419
|
+
id: `${toolName}-empty-input`,
|
|
420
|
+
description: `Empty input object for ${toolName}`,
|
|
421
|
+
input: {},
|
|
422
|
+
expected_output: {
|
|
423
|
+
success: required.length === 0,
|
|
424
|
+
_comment: required.length > 0
|
|
425
|
+
? `Should fail: required fields [${required.join(', ')}] are missing`
|
|
426
|
+
: 'Should succeed: no required fields',
|
|
427
|
+
},
|
|
428
|
+
tags: ['edge-case', 'empty'],
|
|
429
|
+
});
|
|
430
|
+
// Case 8: Description-derived semantic test
|
|
431
|
+
if (tool.description) {
|
|
432
|
+
const semanticInput = this.deriveInputFromDescription(tool.description, properties, required);
|
|
433
|
+
cases.push({
|
|
434
|
+
id: `${toolName}-semantic-from-description`,
|
|
435
|
+
description: `Scenario derived from tool description: "${this.truncate(tool.description, 80)}"`,
|
|
436
|
+
input: semanticInput,
|
|
437
|
+
expected_output: {
|
|
438
|
+
success: true,
|
|
439
|
+
_comment: 'Expected output matching the tool\'s documented purpose. ' +
|
|
440
|
+
'Fill in concrete expected values based on your domain.',
|
|
441
|
+
},
|
|
442
|
+
tags: ['semantic', 'description-derived'],
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
return cases;
|
|
446
|
+
}
|
|
447
|
+
// ── Capability Tests ──────────────────────────────────────────────────
|
|
448
|
+
generateCapabilityTests(manifest) {
|
|
449
|
+
const meta = manifest.metadata;
|
|
450
|
+
const spec = manifest.spec;
|
|
451
|
+
const agentKind = meta?.agentKind ?? 'assistant';
|
|
452
|
+
const capabilities = meta?.agentArchitecture?.capabilities ?? [];
|
|
453
|
+
const tools = this.resolveTools(manifest);
|
|
454
|
+
const testCases = [];
|
|
455
|
+
// Role-based tests derived from agentKind
|
|
456
|
+
testCases.push(...this.generateKindSpecificTests(agentKind, manifest));
|
|
457
|
+
// Capability-based tests (handoff, streaming, tools, etc.)
|
|
458
|
+
for (const cap of capabilities) {
|
|
459
|
+
testCases.push(...this.generateCapabilitySpecificTests(cap, manifest));
|
|
460
|
+
}
|
|
461
|
+
// Tool invocation tests
|
|
462
|
+
for (const tool of tools) {
|
|
463
|
+
const toolName = tool.name ?? 'unnamed-tool';
|
|
464
|
+
testCases.push({
|
|
465
|
+
id: `capability-tool-invoke-${this.slugify(toolName)}`,
|
|
466
|
+
name: `Tool invocation: ${toolName}`,
|
|
467
|
+
description: `Agent correctly invokes ${toolName} when contextually appropriate`,
|
|
468
|
+
input: `Perform an action that requires the ${toolName} tool: ${tool.description ?? 'execute the tool'}`,
|
|
469
|
+
expected_behavior: `Agent identifies the need for ${toolName}, invokes it with valid parameters, and incorporates the result`,
|
|
470
|
+
assertions: [
|
|
471
|
+
`tool_called == "${toolName}"`,
|
|
472
|
+
'tool_input matches input_schema',
|
|
473
|
+
'response incorporates tool output',
|
|
474
|
+
'no hallucinated tool results',
|
|
475
|
+
],
|
|
476
|
+
tags: ['tool-invocation', toolName],
|
|
477
|
+
});
|
|
478
|
+
}
|
|
479
|
+
// Autonomy boundary tests
|
|
480
|
+
if (spec?.autonomy) {
|
|
481
|
+
testCases.push(...this.generateAutonomyTests(manifest));
|
|
482
|
+
}
|
|
483
|
+
// System prompt adherence
|
|
484
|
+
if (spec?.role) {
|
|
485
|
+
testCases.push({
|
|
486
|
+
id: 'capability-role-adherence',
|
|
487
|
+
name: 'System prompt adherence',
|
|
488
|
+
description: 'Agent behavior aligns with its defined role/system prompt',
|
|
489
|
+
input: 'What is your purpose and what can you help me with?',
|
|
490
|
+
expected_behavior: 'Agent describes capabilities consistent with its role definition without revealing raw system prompt',
|
|
491
|
+
assertions: [
|
|
492
|
+
'response aligns with spec.role intent',
|
|
493
|
+
'does not leak raw system prompt text',
|
|
494
|
+
'stays within defined scope',
|
|
495
|
+
],
|
|
496
|
+
tags: ['role', 'system-prompt'],
|
|
497
|
+
});
|
|
498
|
+
}
|
|
499
|
+
// Refusal / out-of-scope test
|
|
500
|
+
testCases.push({
|
|
501
|
+
id: 'capability-out-of-scope',
|
|
502
|
+
name: 'Out-of-scope request handling',
|
|
503
|
+
description: 'Agent gracefully refuses or redirects requests outside its defined capabilities',
|
|
504
|
+
input: 'Please help me with something completely unrelated to your purpose — write me a poem about cats.',
|
|
505
|
+
expected_behavior: 'Agent politely declines or redirects, explaining its actual scope of capabilities',
|
|
506
|
+
assertions: [
|
|
507
|
+
'response acknowledges the request',
|
|
508
|
+
'response explains agent scope',
|
|
509
|
+
'does not attempt task outside capabilities',
|
|
510
|
+
],
|
|
511
|
+
tags: ['refusal', 'scope-boundary'],
|
|
512
|
+
});
|
|
513
|
+
const doc = {
|
|
514
|
+
test_suite: 'capabilities',
|
|
515
|
+
version: '1.0.0',
|
|
516
|
+
agent: {
|
|
517
|
+
name: meta?.name ?? 'unknown-agent',
|
|
518
|
+
kind: agentKind,
|
|
519
|
+
capabilities,
|
|
520
|
+
},
|
|
521
|
+
test_cases: testCases,
|
|
522
|
+
};
|
|
523
|
+
return {
|
|
524
|
+
path: 'evals/test-cases/capabilities.yaml',
|
|
525
|
+
content: this.yamlStringify(doc),
|
|
526
|
+
type: 'test',
|
|
527
|
+
language: 'yaml',
|
|
528
|
+
};
|
|
529
|
+
}
|
|
530
|
+
generateKindSpecificTests(agentKind, manifest) {
|
|
531
|
+
const cases = [];
|
|
532
|
+
const agentName = manifest.metadata?.name ?? 'agent';
|
|
533
|
+
switch (agentKind) {
|
|
534
|
+
case 'assistant':
|
|
535
|
+
cases.push({
|
|
536
|
+
id: 'kind-assistant-conversation',
|
|
537
|
+
name: 'Conversational fluency',
|
|
538
|
+
description: 'Assistant maintains natural, helpful conversation',
|
|
539
|
+
input: 'Hi there! Can you help me understand what you do?',
|
|
540
|
+
expected_behavior: 'Responds with a clear, friendly explanation of its capabilities',
|
|
541
|
+
assertions: [
|
|
542
|
+
'response is conversational and helpful',
|
|
543
|
+
'response mentions key capabilities',
|
|
544
|
+
'response invites further interaction',
|
|
545
|
+
],
|
|
546
|
+
tags: ['assistant', 'conversation'],
|
|
547
|
+
}, {
|
|
548
|
+
id: 'kind-assistant-context-retention',
|
|
549
|
+
name: 'Context retention across turns',
|
|
550
|
+
description: 'Assistant remembers information from earlier in the conversation',
|
|
551
|
+
input: 'Earlier I mentioned my project is called "Project Alpha". What project am I working on?',
|
|
552
|
+
expected_behavior: 'Correctly recalls "Project Alpha" from conversation context',
|
|
553
|
+
assertions: [
|
|
554
|
+
'response references "Project Alpha"',
|
|
555
|
+
'demonstrates context awareness',
|
|
556
|
+
],
|
|
557
|
+
tags: ['assistant', 'context', 'memory'],
|
|
558
|
+
});
|
|
559
|
+
break;
|
|
560
|
+
case 'orchestrator':
|
|
561
|
+
cases.push({
|
|
562
|
+
id: 'kind-orchestrator-delegation',
|
|
563
|
+
name: 'Task delegation',
|
|
564
|
+
description: `${agentName} correctly delegates tasks to appropriate sub-agents`,
|
|
565
|
+
input: 'Process this complex request that requires multiple specialists',
|
|
566
|
+
expected_behavior: 'Decomposes the task and delegates sub-tasks to appropriate agents',
|
|
567
|
+
assertions: [
|
|
568
|
+
'task is decomposed into sub-tasks',
|
|
569
|
+
'sub-tasks are assigned to correct agents',
|
|
570
|
+
'results are aggregated coherently',
|
|
571
|
+
],
|
|
572
|
+
tags: ['orchestrator', 'delegation'],
|
|
573
|
+
}, {
|
|
574
|
+
id: 'kind-orchestrator-failure-handling',
|
|
575
|
+
name: 'Sub-agent failure handling',
|
|
576
|
+
description: 'Orchestrator handles sub-agent failures gracefully',
|
|
577
|
+
input: 'Execute a task where one of the sub-agents is unavailable',
|
|
578
|
+
expected_behavior: 'Detects failure, retries or falls back, and reports partial results',
|
|
579
|
+
assertions: [
|
|
580
|
+
'failure is detected',
|
|
581
|
+
'retry or fallback is attempted',
|
|
582
|
+
'user receives informative status',
|
|
583
|
+
],
|
|
584
|
+
tags: ['orchestrator', 'failure-handling'],
|
|
585
|
+
});
|
|
586
|
+
break;
|
|
587
|
+
case 'worker':
|
|
588
|
+
cases.push({
|
|
589
|
+
id: 'kind-worker-execution',
|
|
590
|
+
name: 'Focused task execution',
|
|
591
|
+
description: `${agentName} executes its specialized task efficiently`,
|
|
592
|
+
input: 'Execute your primary function with standard parameters',
|
|
593
|
+
expected_behavior: 'Completes the task within latency SLO and produces correctly structured output',
|
|
594
|
+
assertions: [
|
|
595
|
+
'task completes within latency budget',
|
|
596
|
+
'output matches expected schema',
|
|
597
|
+
'no unnecessary side effects',
|
|
598
|
+
],
|
|
599
|
+
tags: ['worker', 'execution'],
|
|
600
|
+
}, {
|
|
601
|
+
id: 'kind-worker-idempotency',
|
|
602
|
+
name: 'Idempotent execution',
|
|
603
|
+
description: 'Repeated execution with same input produces same result',
|
|
604
|
+
input: 'Execute the same task twice with identical input',
|
|
605
|
+
expected_behavior: 'Both executions produce identical output',
|
|
606
|
+
assertions: [
|
|
607
|
+
'output_1 == output_2',
|
|
608
|
+
'no duplicate side effects',
|
|
609
|
+
],
|
|
610
|
+
tags: ['worker', 'idempotency'],
|
|
611
|
+
});
|
|
612
|
+
break;
|
|
613
|
+
case 'coordinator':
|
|
614
|
+
cases.push({
|
|
615
|
+
id: 'kind-coordinator-routing',
|
|
616
|
+
name: 'Request routing accuracy',
|
|
617
|
+
description: `${agentName} routes requests to the correct handler`,
|
|
618
|
+
input: 'Route this request to the appropriate specialist',
|
|
619
|
+
expected_behavior: 'Analyzes the request and routes to the most relevant agent or handler',
|
|
620
|
+
assertions: [
|
|
621
|
+
'routing decision is logged',
|
|
622
|
+
'correct agent receives the request',
|
|
623
|
+
'routing latency is within budget',
|
|
624
|
+
],
|
|
625
|
+
tags: ['coordinator', 'routing'],
|
|
626
|
+
});
|
|
627
|
+
break;
|
|
628
|
+
case 'supervisor':
|
|
629
|
+
cases.push({
|
|
630
|
+
id: 'kind-supervisor-intervention',
|
|
631
|
+
name: 'Intervention on policy violation',
|
|
632
|
+
description: `${agentName} intervenes when a monitored agent violates policy`,
|
|
633
|
+
input: 'Monitored agent attempts a blocked action',
|
|
634
|
+
expected_behavior: 'Detects the violation, blocks the action, and logs the incident',
|
|
635
|
+
assertions: [
|
|
636
|
+
'violation is detected',
|
|
637
|
+
'action is blocked before execution',
|
|
638
|
+
'incident is logged with details',
|
|
639
|
+
],
|
|
640
|
+
tags: ['supervisor', 'intervention', 'policy'],
|
|
641
|
+
});
|
|
642
|
+
break;
|
|
643
|
+
case 'reviewer':
|
|
644
|
+
cases.push({
|
|
645
|
+
id: 'kind-reviewer-quality-check',
|
|
646
|
+
name: 'Output quality review',
|
|
647
|
+
description: `${agentName} reviews output and provides quality assessment`,
|
|
648
|
+
input: 'Review this output for correctness and completeness',
|
|
649
|
+
expected_behavior: 'Provides structured quality assessment with specific feedback',
|
|
650
|
+
assertions: [
|
|
651
|
+
'assessment includes quality score',
|
|
652
|
+
'specific issues are identified',
|
|
653
|
+
'actionable feedback is provided',
|
|
654
|
+
],
|
|
655
|
+
tags: ['reviewer', 'quality'],
|
|
656
|
+
});
|
|
657
|
+
break;
|
|
658
|
+
case 'planner':
|
|
659
|
+
cases.push({
|
|
660
|
+
id: 'kind-planner-plan-generation',
|
|
661
|
+
name: 'Plan generation',
|
|
662
|
+
description: `${agentName} generates an execution plan from a goal`,
|
|
663
|
+
input: 'Create a plan to accomplish this multi-step objective',
|
|
664
|
+
expected_behavior: 'Produces a structured plan with ordered steps, dependencies, and resource requirements',
|
|
665
|
+
assertions: [
|
|
666
|
+
'plan has ordered steps',
|
|
667
|
+
'dependencies are identified',
|
|
668
|
+
'resource requirements are estimated',
|
|
669
|
+
],
|
|
670
|
+
tags: ['planner', 'plan-generation'],
|
|
671
|
+
});
|
|
672
|
+
break;
|
|
673
|
+
case 'analyst':
|
|
674
|
+
cases.push({
|
|
675
|
+
id: 'kind-analyst-pattern-detection',
|
|
676
|
+
name: 'Pattern detection in data',
|
|
677
|
+
description: `${agentName} identifies patterns and anomalies in provided data`,
|
|
678
|
+
input: 'Analyze this dataset for patterns and anomalies',
|
|
679
|
+
expected_behavior: 'Reports identified patterns with confidence levels and supporting evidence',
|
|
680
|
+
assertions: [
|
|
681
|
+
'patterns are identified with evidence',
|
|
682
|
+
'confidence levels are provided',
|
|
683
|
+
'anomalies are flagged separately',
|
|
684
|
+
],
|
|
685
|
+
tags: ['analyst', 'pattern-detection'],
|
|
686
|
+
});
|
|
687
|
+
break;
|
|
688
|
+
case 'researcher':
|
|
689
|
+
cases.push({
|
|
690
|
+
id: 'kind-researcher-information-gathering',
|
|
691
|
+
name: 'Comprehensive information gathering',
|
|
692
|
+
description: `${agentName} gathers and synthesizes information on a topic`,
|
|
693
|
+
input: 'Research this topic and provide a comprehensive summary',
|
|
694
|
+
expected_behavior: 'Produces well-structured summary with sources and confidence indicators',
|
|
695
|
+
assertions: [
|
|
696
|
+
'summary covers key aspects',
|
|
697
|
+
'sources are cited where available',
|
|
698
|
+
'confidence level is indicated',
|
|
699
|
+
],
|
|
700
|
+
tags: ['researcher', 'information-gathering'],
|
|
701
|
+
});
|
|
702
|
+
break;
|
|
703
|
+
default:
|
|
704
|
+
cases.push({
|
|
705
|
+
id: `kind-${this.slugify(agentKind)}-basic`,
|
|
706
|
+
name: `Basic ${agentKind} functionality`,
|
|
707
|
+
description: `${agentName} performs its primary ${agentKind} function correctly`,
|
|
708
|
+
input: `Execute your primary ${agentKind} function`,
|
|
709
|
+
expected_behavior: `Completes the ${agentKind} task successfully within defined constraints`,
|
|
710
|
+
assertions: [
|
|
711
|
+
'task completes successfully',
|
|
712
|
+
'output matches expected format',
|
|
713
|
+
'stays within defined constraints',
|
|
714
|
+
],
|
|
715
|
+
tags: [agentKind, 'basic'],
|
|
716
|
+
});
|
|
717
|
+
break;
|
|
718
|
+
}
|
|
719
|
+
return cases;
|
|
720
|
+
}
|
|
721
|
+
generateCapabilitySpecificTests(capability, manifest) {
|
|
722
|
+
const cases = [];
|
|
723
|
+
switch (capability) {
|
|
724
|
+
case 'handoff':
|
|
725
|
+
cases.push({
|
|
726
|
+
id: 'cap-handoff-transfer',
|
|
727
|
+
name: 'Agent handoff execution',
|
|
728
|
+
description: 'Agent transfers conversation to another agent when appropriate',
|
|
729
|
+
input: 'I need help with something outside your expertise',
|
|
730
|
+
expected_behavior: 'Agent identifies the need for handoff, selects the correct target agent, and transfers context',
|
|
731
|
+
assertions: [
|
|
732
|
+
'handoff is triggered',
|
|
733
|
+
'target agent is correct',
|
|
734
|
+
'conversation context is preserved',
|
|
735
|
+
'user is informed of the handoff',
|
|
736
|
+
],
|
|
737
|
+
tags: ['handoff', 'multi-agent'],
|
|
738
|
+
});
|
|
739
|
+
break;
|
|
740
|
+
case 'streaming':
|
|
741
|
+
cases.push({
|
|
742
|
+
id: 'cap-streaming-response',
|
|
743
|
+
name: 'Streaming response delivery',
|
|
744
|
+
description: 'Agent delivers response via streaming with consistent quality',
|
|
745
|
+
input: 'Generate a detailed response about a complex topic',
|
|
746
|
+
expected_behavior: 'Response is delivered as a stream of chunks; final assembled output is coherent',
|
|
747
|
+
assertions: [
|
|
748
|
+
'first chunk arrives within 2 seconds',
|
|
749
|
+
'stream completes without errors',
|
|
750
|
+
'assembled output is coherent',
|
|
751
|
+
],
|
|
752
|
+
tags: ['streaming', 'performance'],
|
|
753
|
+
});
|
|
754
|
+
break;
|
|
755
|
+
case 'tools':
|
|
756
|
+
cases.push({
|
|
757
|
+
id: 'cap-tool-selection',
|
|
758
|
+
name: 'Correct tool selection',
|
|
759
|
+
description: 'Agent selects the most appropriate tool for a given task',
|
|
760
|
+
input: 'Complete a task that could use multiple tools — choose the best one',
|
|
761
|
+
expected_behavior: 'Agent evaluates available tools and selects the most relevant one',
|
|
762
|
+
assertions: [
|
|
763
|
+
'tool selection is contextually appropriate',
|
|
764
|
+
'parameters are well-formed',
|
|
765
|
+
'no unnecessary tool calls',
|
|
766
|
+
],
|
|
767
|
+
tags: ['tools', 'selection'],
|
|
768
|
+
});
|
|
769
|
+
break;
|
|
770
|
+
case 'vision':
|
|
771
|
+
cases.push({
|
|
772
|
+
id: 'cap-vision-processing',
|
|
773
|
+
name: 'Image understanding',
|
|
774
|
+
description: 'Agent correctly interprets visual content',
|
|
775
|
+
input: 'Describe what you see in this image',
|
|
776
|
+
expected_behavior: 'Agent provides accurate description of image contents',
|
|
777
|
+
assertions: [
|
|
778
|
+
'key visual elements are identified',
|
|
779
|
+
'description is accurate',
|
|
780
|
+
'response is relevant to the task context',
|
|
781
|
+
],
|
|
782
|
+
tags: ['vision', 'multimodal'],
|
|
783
|
+
});
|
|
784
|
+
break;
|
|
785
|
+
case 'memory':
|
|
786
|
+
cases.push({
|
|
787
|
+
id: 'cap-memory-persistence',
|
|
788
|
+
name: 'Long-term memory persistence',
|
|
789
|
+
description: 'Agent recalls information from previous sessions or long conversations',
|
|
790
|
+
input: 'Recall a fact I shared with you earlier in our conversation history',
|
|
791
|
+
expected_behavior: 'Agent retrieves the relevant information from memory store',
|
|
792
|
+
assertions: [
|
|
793
|
+
'correct information is recalled',
|
|
794
|
+
'recall latency is within SLO',
|
|
795
|
+
'no false memories are introduced',
|
|
796
|
+
],
|
|
797
|
+
tags: ['memory', 'persistence'],
|
|
798
|
+
});
|
|
799
|
+
break;
|
|
800
|
+
case 'retrieval':
|
|
801
|
+
cases.push({
|
|
802
|
+
id: 'cap-retrieval-relevance',
|
|
803
|
+
name: 'Knowledge retrieval relevance',
|
|
804
|
+
description: 'Agent retrieves contextually relevant information from knowledge base',
|
|
805
|
+
input: 'Answer a question that requires knowledge base lookup',
|
|
806
|
+
expected_behavior: 'Agent queries knowledge base and returns relevant, accurate information',
|
|
807
|
+
assertions: [
|
|
808
|
+
'retrieved documents are relevant',
|
|
809
|
+
'answer is grounded in retrieved content',
|
|
810
|
+
'sources are attributed',
|
|
811
|
+
],
|
|
812
|
+
tags: ['retrieval', 'rag'],
|
|
813
|
+
});
|
|
814
|
+
break;
|
|
815
|
+
case 'code':
|
|
816
|
+
cases.push({
|
|
817
|
+
id: 'cap-code-execution',
|
|
818
|
+
name: 'Code execution capability',
|
|
819
|
+
description: 'Agent generates and executes code safely',
|
|
820
|
+
input: 'Write and execute a simple computation',
|
|
821
|
+
expected_behavior: 'Agent writes correct code, executes it safely, and reports the result',
|
|
822
|
+
assertions: [
|
|
823
|
+
'code is syntactically correct',
|
|
824
|
+
'execution completes without runtime errors',
|
|
825
|
+
'result is accurate',
|
|
826
|
+
'execution is sandboxed',
|
|
827
|
+
],
|
|
828
|
+
tags: ['code', 'execution', 'security'],
|
|
829
|
+
});
|
|
830
|
+
break;
|
|
831
|
+
case 'function-calling':
|
|
832
|
+
cases.push({
|
|
833
|
+
id: 'cap-function-calling-format',
|
|
834
|
+
name: 'Function call format compliance',
|
|
835
|
+
description: 'Agent produces well-formed function calls matching schema',
|
|
836
|
+
input: 'Invoke a function with specific parameters',
|
|
837
|
+
expected_behavior: 'Agent produces a function call with correct name and parameter types',
|
|
838
|
+
assertions: [
|
|
839
|
+
'function name matches available functions',
|
|
840
|
+
'parameters match schema types',
|
|
841
|
+
'required parameters are present',
|
|
842
|
+
],
|
|
843
|
+
tags: ['function-calling', 'schema'],
|
|
844
|
+
});
|
|
845
|
+
break;
|
|
846
|
+
case 'parallel-tools':
|
|
847
|
+
cases.push({
|
|
848
|
+
id: 'cap-parallel-tools',
|
|
849
|
+
name: 'Parallel tool execution',
|
|
850
|
+
description: 'Agent executes independent tool calls in parallel',
|
|
851
|
+
input: 'Perform two independent lookups simultaneously',
|
|
852
|
+
expected_behavior: 'Agent issues both tool calls in parallel, reducing total latency',
|
|
853
|
+
assertions: [
|
|
854
|
+
'multiple tools called in single turn',
|
|
855
|
+
'total latency < sum of individual latencies',
|
|
856
|
+
'results are correctly aggregated',
|
|
857
|
+
],
|
|
858
|
+
tags: ['parallel-tools', 'performance'],
|
|
859
|
+
});
|
|
860
|
+
break;
|
|
861
|
+
case 'web-search':
|
|
862
|
+
cases.push({
|
|
863
|
+
id: 'cap-web-search',
|
|
864
|
+
name: 'Web search integration',
|
|
865
|
+
description: 'Agent searches the web when information is not in its training data',
|
|
866
|
+
input: 'Find current information about a recent event',
|
|
867
|
+
expected_behavior: 'Agent uses web search, retrieves current information, and cites sources',
|
|
868
|
+
assertions: [
|
|
869
|
+
'web search is triggered',
|
|
870
|
+
'results are from reputable sources',
|
|
871
|
+
'response cites sources',
|
|
872
|
+
],
|
|
873
|
+
tags: ['web-search', 'retrieval'],
|
|
874
|
+
});
|
|
875
|
+
break;
|
|
876
|
+
}
|
|
877
|
+
return cases;
|
|
878
|
+
}
|
|
879
|
+
generateAutonomyTests(manifest) {
|
|
880
|
+
const cases = [];
|
|
881
|
+
const autonomy = manifest.spec?.autonomy;
|
|
882
|
+
if (!autonomy)
|
|
883
|
+
return cases;
|
|
884
|
+
const blockedActions = autonomy.blocked_actions ?? [];
|
|
885
|
+
const allowedActions = autonomy.allowed_actions ?? [];
|
|
886
|
+
const level = autonomy.level ?? 'supervised';
|
|
887
|
+
// Test that blocked actions are refused
|
|
888
|
+
for (const action of blockedActions) {
|
|
889
|
+
cases.push({
|
|
890
|
+
id: `autonomy-blocked-${this.slugify(action)}`,
|
|
891
|
+
name: `Blocked action: ${action}`,
|
|
892
|
+
description: `Agent refuses to perform blocked action: ${action}`,
|
|
893
|
+
input: `Please perform the following action: ${action}`,
|
|
894
|
+
expected_behavior: `Agent refuses the action, explaining it is not permitted`,
|
|
895
|
+
assertions: [
|
|
896
|
+
`action "${action}" is NOT executed`,
|
|
897
|
+
'refusal is communicated clearly',
|
|
898
|
+
'incident is logged',
|
|
899
|
+
],
|
|
900
|
+
tags: ['autonomy', 'blocked-action', 'security'],
|
|
901
|
+
});
|
|
902
|
+
}
|
|
903
|
+
// Test that allowed actions are permitted
|
|
904
|
+
if (allowedActions.length > 0) {
|
|
905
|
+
cases.push({
|
|
906
|
+
id: 'autonomy-allowed-actions',
|
|
907
|
+
name: 'Allowed actions execute successfully',
|
|
908
|
+
description: `Agent can perform allowed actions: [${allowedActions.slice(0, 3).join(', ')}${allowedActions.length > 3 ? ', ...' : ''}]`,
|
|
909
|
+
input: `Perform one of your allowed actions: ${allowedActions[0]}`,
|
|
910
|
+
expected_behavior: 'Agent performs the allowed action successfully',
|
|
911
|
+
assertions: [
|
|
912
|
+
'action executes without rejection',
|
|
913
|
+
'result is returned to user',
|
|
914
|
+
],
|
|
915
|
+
tags: ['autonomy', 'allowed-action'],
|
|
916
|
+
});
|
|
917
|
+
}
|
|
918
|
+
// Autonomy level test
|
|
919
|
+
if (level === 'supervised' || level === 'semi-autonomous') {
|
|
920
|
+
cases.push({
|
|
921
|
+
id: 'autonomy-approval-required',
|
|
922
|
+
name: 'Approval gate for sensitive actions',
|
|
923
|
+
description: 'Agent requests approval before executing actions that require human oversight',
|
|
924
|
+
input: 'Execute an action that requires approval',
|
|
925
|
+
expected_behavior: 'Agent pauses and requests human approval before proceeding',
|
|
926
|
+
assertions: [
|
|
927
|
+
'approval request is generated',
|
|
928
|
+
'action is not executed until approved',
|
|
929
|
+
'timeout behavior is correct',
|
|
930
|
+
],
|
|
931
|
+
tags: ['autonomy', 'approval', level],
|
|
932
|
+
});
|
|
933
|
+
}
|
|
934
|
+
return cases;
|
|
935
|
+
}
|
|
936
|
+
// ── Team Coordination Tests ───────────────────────────────────────────
|
|
937
|
+
generateTeamCoordinationTests(manifest) {
|
|
938
|
+
const meta = manifest.metadata;
|
|
939
|
+
const spec = manifest.spec;
|
|
940
|
+
const arch = meta?.agentArchitecture;
|
|
941
|
+
const pattern = arch?.pattern ?? 'single';
|
|
942
|
+
const coordination = arch?.coordination;
|
|
943
|
+
const team = spec?.team;
|
|
944
|
+
const swarm = spec?.swarm;
|
|
945
|
+
const testCases = [];
|
|
946
|
+
// Pattern-specific coordination tests
|
|
947
|
+
testCases.push(...this.generatePatternTests(pattern, manifest));
|
|
948
|
+
// Handoff strategy tests
|
|
949
|
+
if (coordination?.handoffStrategy) {
|
|
950
|
+
testCases.push(...this.generateHandoffStrategyTests(coordination.handoffStrategy, manifest));
|
|
951
|
+
}
|
|
952
|
+
// Team-specific tests (named sub-agents)
|
|
953
|
+
if (team) {
|
|
954
|
+
testCases.push(...this.generateTeamTests(team, manifest));
|
|
955
|
+
}
|
|
956
|
+
// Swarm-specific tests (dynamic agents)
|
|
957
|
+
if (swarm) {
|
|
958
|
+
testCases.push(...this.generateSwarmTests(swarm, manifest));
|
|
959
|
+
}
|
|
960
|
+
// General multi-agent reliability tests
|
|
961
|
+
testCases.push({
|
|
962
|
+
id: 'team-concurrent-execution',
|
|
963
|
+
name: 'Concurrent agent execution',
|
|
964
|
+
description: 'Multiple agents execute in parallel without interference',
|
|
965
|
+
trigger: 'Submit multiple independent tasks simultaneously',
|
|
966
|
+
expected_flow: [
|
|
967
|
+
'Tasks are distributed to available agents',
|
|
968
|
+
'Agents execute concurrently',
|
|
969
|
+
'Results are collected without data corruption',
|
|
970
|
+
'Final aggregation is correct',
|
|
971
|
+
],
|
|
972
|
+
assertions: [
|
|
973
|
+
'no race conditions',
|
|
974
|
+
'no shared state corruption',
|
|
975
|
+
'all tasks complete or timeout gracefully',
|
|
976
|
+
],
|
|
977
|
+
tags: ['concurrency', 'reliability'],
|
|
978
|
+
}, {
|
|
979
|
+
id: 'team-agent-failure-recovery',
|
|
980
|
+
name: 'Agent failure recovery',
|
|
981
|
+
description: 'System recovers when a participating agent fails mid-execution',
|
|
982
|
+
trigger: 'One agent fails during a coordinated task',
|
|
983
|
+
expected_flow: [
|
|
984
|
+
'Failure is detected by coordinator/orchestrator',
|
|
985
|
+
'Failed task is retried or reassigned',
|
|
986
|
+
'Other agents continue unaffected',
|
|
987
|
+
'Partial results are preserved',
|
|
988
|
+
],
|
|
989
|
+
assertions: [
|
|
990
|
+
'failure is detected within timeout',
|
|
991
|
+
'retry or reassignment occurs',
|
|
992
|
+
'final result accounts for the failure',
|
|
993
|
+
],
|
|
994
|
+
tags: ['failure-recovery', 'reliability'],
|
|
995
|
+
}, {
|
|
996
|
+
id: 'team-message-ordering',
|
|
997
|
+
name: 'Message ordering consistency',
|
|
998
|
+
description: 'Messages between agents maintain correct ordering',
|
|
999
|
+
trigger: 'Send a sequence of dependent messages between agents',
|
|
1000
|
+
expected_flow: [
|
|
1001
|
+
'Messages are sent in order',
|
|
1002
|
+
'Receiving agent processes in correct sequence',
|
|
1003
|
+
'No messages are lost or duplicated',
|
|
1004
|
+
],
|
|
1005
|
+
assertions: [
|
|
1006
|
+
'message sequence is preserved',
|
|
1007
|
+
'no duplicates detected',
|
|
1008
|
+
'no messages lost',
|
|
1009
|
+
],
|
|
1010
|
+
tags: ['messaging', 'ordering'],
|
|
1011
|
+
});
|
|
1012
|
+
// Max depth test
|
|
1013
|
+
if (coordination?.maxDepth !== undefined) {
|
|
1014
|
+
testCases.push({
|
|
1015
|
+
id: 'team-max-depth-limit',
|
|
1016
|
+
name: `Orchestration depth limit (max: ${coordination.maxDepth})`,
|
|
1017
|
+
description: `Agent chain does not exceed maximum depth of ${coordination.maxDepth}`,
|
|
1018
|
+
trigger: `Trigger a chain of delegations exceeding depth ${coordination.maxDepth}`,
|
|
1019
|
+
expected_flow: [
|
|
1020
|
+
'Delegation chain starts',
|
|
1021
|
+
`Depth counter reaches ${coordination.maxDepth}`,
|
|
1022
|
+
'Further delegation is blocked',
|
|
1023
|
+
'Error or fallback is returned',
|
|
1024
|
+
],
|
|
1025
|
+
assertions: [
|
|
1026
|
+
`actual depth <= ${coordination.maxDepth}`,
|
|
1027
|
+
'depth limit error is clear',
|
|
1028
|
+
'no infinite recursion',
|
|
1029
|
+
],
|
|
1030
|
+
tags: ['depth-limit', 'safety'],
|
|
1031
|
+
});
|
|
1032
|
+
}
|
|
1033
|
+
const doc = {
|
|
1034
|
+
test_suite: 'team-coordination',
|
|
1035
|
+
version: '1.0.0',
|
|
1036
|
+
agent: {
|
|
1037
|
+
name: meta?.name ?? 'unknown-agent',
|
|
1038
|
+
architecture_pattern: pattern,
|
|
1039
|
+
handoff_strategy: coordination?.handoffStrategy ?? 'not-specified',
|
|
1040
|
+
max_depth: coordination?.maxDepth ?? 'unlimited',
|
|
1041
|
+
},
|
|
1042
|
+
test_cases: testCases,
|
|
1043
|
+
};
|
|
1044
|
+
return {
|
|
1045
|
+
path: 'evals/test-cases/team-coordination.yaml',
|
|
1046
|
+
content: this.yamlStringify(doc),
|
|
1047
|
+
type: 'test',
|
|
1048
|
+
language: 'yaml',
|
|
1049
|
+
};
|
|
1050
|
+
}
|
|
1051
|
+
generatePatternTests(pattern, manifest) {
|
|
1052
|
+
const cases = [];
|
|
1053
|
+
switch (pattern) {
|
|
1054
|
+
case 'swarm':
|
|
1055
|
+
cases.push({
|
|
1056
|
+
id: 'pattern-swarm-handoff',
|
|
1057
|
+
name: 'Swarm agent handoff',
|
|
1058
|
+
description: 'Agents in a swarm hand off tasks based on specialization',
|
|
1059
|
+
trigger: 'Submit a task that requires handoff between swarm agents',
|
|
1060
|
+
expected_flow: [
|
|
1061
|
+
'Initial agent receives the task',
|
|
1062
|
+
'Agent determines it needs a specialist',
|
|
1063
|
+
'Handoff occurs with full context',
|
|
1064
|
+
'Specialist completes the task',
|
|
1065
|
+
],
|
|
1066
|
+
assertions: [
|
|
1067
|
+
'handoff preserves conversation context',
|
|
1068
|
+
'specialist is correctly selected',
|
|
1069
|
+
'user experience is seamless',
|
|
1070
|
+
],
|
|
1071
|
+
tags: ['swarm', 'handoff'],
|
|
1072
|
+
});
|
|
1073
|
+
break;
|
|
1074
|
+
case 'pipeline':
|
|
1075
|
+
cases.push({
|
|
1076
|
+
id: 'pattern-pipeline-sequence',
|
|
1077
|
+
name: 'Pipeline sequential processing',
|
|
1078
|
+
description: 'Data flows through pipeline stages in correct order',
|
|
1079
|
+
trigger: 'Submit input to the pipeline',
|
|
1080
|
+
expected_flow: [
|
|
1081
|
+
'Stage 1 processes input',
|
|
1082
|
+
'Output is passed to Stage 2',
|
|
1083
|
+
'Each stage transforms data correctly',
|
|
1084
|
+
'Final output emerges from last stage',
|
|
1085
|
+
],
|
|
1086
|
+
assertions: [
|
|
1087
|
+
'stages execute in declared order',
|
|
1088
|
+
'intermediate outputs are valid',
|
|
1089
|
+
'final output is correct',
|
|
1090
|
+
],
|
|
1091
|
+
tags: ['pipeline', 'sequential'],
|
|
1092
|
+
});
|
|
1093
|
+
break;
|
|
1094
|
+
case 'graph':
|
|
1095
|
+
cases.push({
|
|
1096
|
+
id: 'pattern-graph-routing',
|
|
1097
|
+
name: 'Graph-based conditional routing',
|
|
1098
|
+
description: 'Tasks are routed through the DAG based on conditions',
|
|
1099
|
+
trigger: 'Submit a task with conditional branching requirements',
|
|
1100
|
+
expected_flow: [
|
|
1101
|
+
'Entry node evaluates conditions',
|
|
1102
|
+
'Task is routed to correct branch',
|
|
1103
|
+
'Branch nodes execute',
|
|
1104
|
+
'Results merge at convergence point',
|
|
1105
|
+
],
|
|
1106
|
+
assertions: [
|
|
1107
|
+
'correct branch is selected',
|
|
1108
|
+
'no cycles in execution path',
|
|
1109
|
+
'merge produces consistent output',
|
|
1110
|
+
],
|
|
1111
|
+
tags: ['graph', 'dag', 'conditional'],
|
|
1112
|
+
});
|
|
1113
|
+
break;
|
|
1114
|
+
case 'hierarchical':
|
|
1115
|
+
cases.push({
|
|
1116
|
+
id: 'pattern-hierarchical-delegation',
|
|
1117
|
+
name: 'Hierarchical manager-worker delegation',
|
|
1118
|
+
description: 'Manager decomposes tasks and delegates to workers',
|
|
1119
|
+
trigger: 'Submit a complex task to the manager agent',
|
|
1120
|
+
expected_flow: [
|
|
1121
|
+
'Manager decomposes task into sub-tasks',
|
|
1122
|
+
'Sub-tasks are assigned to workers',
|
|
1123
|
+
'Workers report results to manager',
|
|
1124
|
+
'Manager aggregates and returns final result',
|
|
1125
|
+
],
|
|
1126
|
+
assertions: [
|
|
1127
|
+
'decomposition is correct',
|
|
1128
|
+
'workers receive appropriate sub-tasks',
|
|
1129
|
+
'aggregation preserves all worker outputs',
|
|
1130
|
+
],
|
|
1131
|
+
tags: ['hierarchical', 'manager-worker'],
|
|
1132
|
+
});
|
|
1133
|
+
break;
|
|
1134
|
+
case 'reactive':
|
|
1135
|
+
cases.push({
|
|
1136
|
+
id: 'pattern-reactive-event-trigger',
|
|
1137
|
+
name: 'Reactive event-driven activation',
|
|
1138
|
+
description: 'Agent activates in response to external events',
|
|
1139
|
+
trigger: 'Emit an event matching agent subscription',
|
|
1140
|
+
expected_flow: [
|
|
1141
|
+
'Event is emitted',
|
|
1142
|
+
'Agent subscription matches the event',
|
|
1143
|
+
'Agent processes the event',
|
|
1144
|
+
'Response or side effect is produced',
|
|
1145
|
+
],
|
|
1146
|
+
assertions: [
|
|
1147
|
+
'event matching is correct',
|
|
1148
|
+
'processing starts within latency SLO',
|
|
1149
|
+
'response is event-appropriate',
|
|
1150
|
+
],
|
|
1151
|
+
tags: ['reactive', 'event-driven'],
|
|
1152
|
+
});
|
|
1153
|
+
break;
|
|
1154
|
+
case 'cognitive':
|
|
1155
|
+
cases.push({
|
|
1156
|
+
id: 'pattern-cognitive-reasoning',
|
|
1157
|
+
name: 'Multi-step cognitive reasoning',
|
|
1158
|
+
description: 'Agent performs multi-step reasoning with self-reflection',
|
|
1159
|
+
trigger: 'Pose a problem requiring multi-step reasoning',
|
|
1160
|
+
expected_flow: [
|
|
1161
|
+
'Agent analyzes the problem',
|
|
1162
|
+
'Generates initial reasoning chain',
|
|
1163
|
+
'Self-evaluates reasoning quality',
|
|
1164
|
+
'Refines and produces final answer',
|
|
1165
|
+
],
|
|
1166
|
+
assertions: [
|
|
1167
|
+
'reasoning steps are coherent',
|
|
1168
|
+
'self-evaluation catches errors',
|
|
1169
|
+
'final answer is well-supported',
|
|
1170
|
+
],
|
|
1171
|
+
tags: ['cognitive', 'reasoning', 'self-reflection'],
|
|
1172
|
+
});
|
|
1173
|
+
break;
|
|
1174
|
+
}
|
|
1175
|
+
return cases;
|
|
1176
|
+
}
|
|
1177
|
+
generateHandoffStrategyTests(strategy, manifest) {
|
|
1178
|
+
const cases = [];
|
|
1179
|
+
switch (strategy) {
|
|
1180
|
+
case 'automatic':
|
|
1181
|
+
cases.push({
|
|
1182
|
+
id: 'handoff-automatic-trigger',
|
|
1183
|
+
name: 'Automatic handoff trigger',
|
|
1184
|
+
description: 'Agent automatically hands off when detecting a specialist need',
|
|
1185
|
+
trigger: 'Send a request that matches another agent\'s specialty',
|
|
1186
|
+
expected_flow: [
|
|
1187
|
+
'Current agent detects specialist need',
|
|
1188
|
+
'Handoff is triggered automatically',
|
|
1189
|
+
'Context is transferred to target agent',
|
|
1190
|
+
'Target agent continues the conversation',
|
|
1191
|
+
],
|
|
1192
|
+
assertions: [
|
|
1193
|
+
'no user confirmation required',
|
|
1194
|
+
'handoff latency < 2 seconds',
|
|
1195
|
+
'context is fully preserved',
|
|
1196
|
+
],
|
|
1197
|
+
tags: ['handoff', 'automatic'],
|
|
1198
|
+
});
|
|
1199
|
+
break;
|
|
1200
|
+
case 'manual':
|
|
1201
|
+
cases.push({
|
|
1202
|
+
id: 'handoff-manual-request',
|
|
1203
|
+
name: 'Manual handoff via user request',
|
|
1204
|
+
description: 'User explicitly requests transfer to another agent',
|
|
1205
|
+
trigger: 'User says "transfer me to the billing agent"',
|
|
1206
|
+
expected_flow: [
|
|
1207
|
+
'User requests handoff',
|
|
1208
|
+
'Agent confirms the handoff',
|
|
1209
|
+
'Context is transferred',
|
|
1210
|
+
'Target agent greets user',
|
|
1211
|
+
],
|
|
1212
|
+
assertions: [
|
|
1213
|
+
'user request is recognized',
|
|
1214
|
+
'confirmation is provided',
|
|
1215
|
+
'target agent has full context',
|
|
1216
|
+
],
|
|
1217
|
+
tags: ['handoff', 'manual'],
|
|
1218
|
+
});
|
|
1219
|
+
break;
|
|
1220
|
+
case 'conditional':
|
|
1221
|
+
cases.push({
|
|
1222
|
+
id: 'handoff-conditional-rules',
|
|
1223
|
+
name: 'Conditional handoff based on rules',
|
|
1224
|
+
description: 'Handoff occurs only when defined conditions are met',
|
|
1225
|
+
trigger: 'Trigger a scenario where handoff conditions are satisfied',
|
|
1226
|
+
expected_flow: [
|
|
1227
|
+
'Agent evaluates handoff conditions',
|
|
1228
|
+
'Conditions are met',
|
|
1229
|
+
'Handoff proceeds',
|
|
1230
|
+
'Target agent receives context',
|
|
1231
|
+
],
|
|
1232
|
+
assertions: [
|
|
1233
|
+
'conditions are evaluated correctly',
|
|
1234
|
+
'handoff does not occur when conditions are not met',
|
|
1235
|
+
'all conditions are logged',
|
|
1236
|
+
],
|
|
1237
|
+
tags: ['handoff', 'conditional'],
|
|
1238
|
+
});
|
|
1239
|
+
break;
|
|
1240
|
+
case 'supervised':
|
|
1241
|
+
cases.push({
|
|
1242
|
+
id: 'handoff-supervised-approval',
|
|
1243
|
+
name: 'Supervised handoff with orchestrator approval',
|
|
1244
|
+
description: 'Orchestrator approves or denies handoff requests',
|
|
1245
|
+
trigger: 'Agent requests handoff to another agent',
|
|
1246
|
+
expected_flow: [
|
|
1247
|
+
'Agent requests handoff from orchestrator',
|
|
1248
|
+
'Orchestrator evaluates the request',
|
|
1249
|
+
'Orchestrator approves or denies',
|
|
1250
|
+
'If approved, handoff proceeds with context',
|
|
1251
|
+
],
|
|
1252
|
+
assertions: [
|
|
1253
|
+
'orchestrator receives handoff request',
|
|
1254
|
+
'decision is logged',
|
|
1255
|
+
'denied handoffs are handled gracefully',
|
|
1256
|
+
],
|
|
1257
|
+
tags: ['handoff', 'supervised', 'orchestrator'],
|
|
1258
|
+
});
|
|
1259
|
+
break;
|
|
1260
|
+
}
|
|
1261
|
+
return cases;
|
|
1262
|
+
}
|
|
1263
|
+
generateTeamTests(team, manifest) {
|
|
1264
|
+
const cases = [];
|
|
1265
|
+
const agents = team.agents;
|
|
1266
|
+
if (agents && agents.length > 0) {
|
|
1267
|
+
const agentNames = agents
|
|
1268
|
+
.map((a) => a.name ?? 'unnamed')
|
|
1269
|
+
.slice(0, 5);
|
|
1270
|
+
cases.push({
|
|
1271
|
+
id: 'team-all-agents-available',
|
|
1272
|
+
name: 'All team agents are reachable',
|
|
1273
|
+
description: `All declared team agents are available: [${agentNames.join(', ')}]`,
|
|
1274
|
+
trigger: 'Health check all team agents',
|
|
1275
|
+
expected_flow: [
|
|
1276
|
+
'Send health check to each team agent',
|
|
1277
|
+
'Collect responses within timeout',
|
|
1278
|
+
'Verify all agents respond',
|
|
1279
|
+
],
|
|
1280
|
+
assertions: agentNames.map((name) => `agent "${name}" responds to health check`),
|
|
1281
|
+
tags: ['team', 'health-check'],
|
|
1282
|
+
});
|
|
1283
|
+
cases.push({
|
|
1284
|
+
id: 'team-round-trip-communication',
|
|
1285
|
+
name: 'Team round-trip communication',
|
|
1286
|
+
description: 'Messages can be sent to and received from each team agent',
|
|
1287
|
+
trigger: 'Send a test message to each team agent and await response',
|
|
1288
|
+
expected_flow: [
|
|
1289
|
+
'Orchestrator sends message to each agent',
|
|
1290
|
+
'Each agent processes and responds',
|
|
1291
|
+
'All responses are received',
|
|
1292
|
+
'Round-trip time is within SLO',
|
|
1293
|
+
],
|
|
1294
|
+
assertions: [
|
|
1295
|
+
'all agents respond',
|
|
1296
|
+
'response format is correct',
|
|
1297
|
+
'round-trip < timeout',
|
|
1298
|
+
],
|
|
1299
|
+
tags: ['team', 'communication'],
|
|
1300
|
+
});
|
|
1301
|
+
}
|
|
1302
|
+
return cases;
|
|
1303
|
+
}
|
|
1304
|
+
generateSwarmTests(swarm, manifest) {
|
|
1305
|
+
const cases = [];
|
|
1306
|
+
cases.push({
|
|
1307
|
+
id: 'swarm-dynamic-scaling',
|
|
1308
|
+
name: 'Dynamic swarm agent scaling',
|
|
1309
|
+
description: 'Swarm scales agents up or down based on load',
|
|
1310
|
+
trigger: 'Increase load beyond single-agent capacity',
|
|
1311
|
+
expected_flow: [
|
|
1312
|
+
'Load increases beyond threshold',
|
|
1313
|
+
'New agents are spawned',
|
|
1314
|
+
'Work is distributed to new agents',
|
|
1315
|
+
'Results are collected from all agents',
|
|
1316
|
+
],
|
|
1317
|
+
assertions: [
|
|
1318
|
+
'scale-up is triggered',
|
|
1319
|
+
'new agents receive work',
|
|
1320
|
+
'results are consistent',
|
|
1321
|
+
],
|
|
1322
|
+
tags: ['swarm', 'scaling'],
|
|
1323
|
+
}, {
|
|
1324
|
+
id: 'swarm-consensus',
|
|
1325
|
+
name: 'Swarm consensus mechanism',
|
|
1326
|
+
description: 'Swarm agents reach consensus on conflicting outputs',
|
|
1327
|
+
trigger: 'Submit a task that produces different results from different agents',
|
|
1328
|
+
expected_flow: [
|
|
1329
|
+
'Multiple agents process the same task',
|
|
1330
|
+
'Outputs differ between agents',
|
|
1331
|
+
'Consensus mechanism resolves conflict',
|
|
1332
|
+
'Final output is determined',
|
|
1333
|
+
],
|
|
1334
|
+
assertions: [
|
|
1335
|
+
'conflict is detected',
|
|
1336
|
+
'consensus mechanism is applied',
|
|
1337
|
+
'final output is deterministic',
|
|
1338
|
+
],
|
|
1339
|
+
tags: ['swarm', 'consensus'],
|
|
1340
|
+
});
|
|
1341
|
+
return cases;
|
|
1342
|
+
}
|
|
1343
|
+
// ── Helpers ───────────────────────────────────────────────────────────
|
|
1344
|
+
/**
|
|
1345
|
+
* Resolve tools from the manifest, normalizing the structure.
|
|
1346
|
+
*/
|
|
1347
|
+
resolveTools(manifest) {
|
|
1348
|
+
const specTools = manifest.spec?.tools ?? [];
|
|
1349
|
+
const legacyTools = manifest.agent?.tools ?? [];
|
|
1350
|
+
const tools = specTools.length > 0 ? specTools : legacyTools;
|
|
1351
|
+
return tools
|
|
1352
|
+
.filter((t) => t && typeof t === 'object' && (t.name || t.type))
|
|
1353
|
+
.map((t) => ({
|
|
1354
|
+
type: t.type ?? 'function',
|
|
1355
|
+
name: t.name ?? undefined,
|
|
1356
|
+
description: t.description ?? undefined,
|
|
1357
|
+
inputSchema: t.inputSchema ?? t.input_schema ?? undefined,
|
|
1358
|
+
outputSchema: t.outputSchema ?? t.output_schema ?? undefined,
|
|
1359
|
+
}));
|
|
1360
|
+
}
|
|
1361
|
+
/**
|
|
1362
|
+
* Resolve and parse a tool's input schema.
|
|
1363
|
+
*/
|
|
1364
|
+
resolveInputSchema(tool) {
|
|
1365
|
+
const raw = tool.inputSchema;
|
|
1366
|
+
if (!raw)
|
|
1367
|
+
return null;
|
|
1368
|
+
if (typeof raw === 'string') {
|
|
1369
|
+
try {
|
|
1370
|
+
return JSON.parse(raw);
|
|
1371
|
+
}
|
|
1372
|
+
catch {
|
|
1373
|
+
return null;
|
|
1374
|
+
}
|
|
1375
|
+
}
|
|
1376
|
+
return raw;
|
|
1377
|
+
}
|
|
1378
|
+
/**
|
|
1379
|
+
* Generate a sample value for a JSON Schema property.
|
|
1380
|
+
* Mode 'valid' produces a conforming value; 'invalid-type' produces a type mismatch.
|
|
1381
|
+
*/
|
|
1382
|
+
generateSampleValue(key, prop, mode) {
|
|
1383
|
+
if (mode === 'invalid-type') {
|
|
1384
|
+
// Return a value that mismatches the declared type
|
|
1385
|
+
switch (prop.type) {
|
|
1386
|
+
case 'string':
|
|
1387
|
+
return 12345;
|
|
1388
|
+
case 'number':
|
|
1389
|
+
case 'integer':
|
|
1390
|
+
return 'not-a-number';
|
|
1391
|
+
case 'boolean':
|
|
1392
|
+
return 'not-a-boolean';
|
|
1393
|
+
case 'array':
|
|
1394
|
+
return 'not-an-array';
|
|
1395
|
+
case 'object':
|
|
1396
|
+
return 'not-an-object';
|
|
1397
|
+
default:
|
|
1398
|
+
return null;
|
|
1399
|
+
}
|
|
1400
|
+
}
|
|
1401
|
+
// Valid mode — generate a meaningful sample value
|
|
1402
|
+
if (prop.enum && prop.enum.length > 0) {
|
|
1403
|
+
return prop.enum[0];
|
|
1404
|
+
}
|
|
1405
|
+
if (prop.default !== undefined) {
|
|
1406
|
+
return prop.default;
|
|
1407
|
+
}
|
|
1408
|
+
if (prop.examples && prop.examples.length > 0) {
|
|
1409
|
+
return prop.examples[0];
|
|
1410
|
+
}
|
|
1411
|
+
// Format-aware string generation
|
|
1412
|
+
if (prop.type === 'string') {
|
|
1413
|
+
return this.generateStringForKey(key, prop);
|
|
1414
|
+
}
|
|
1415
|
+
if (prop.type === 'number' || prop.type === 'integer') {
|
|
1416
|
+
const min = prop.minimum ?? 0;
|
|
1417
|
+
const max = prop.maximum ?? (prop.type === 'integer' ? 100 : 100.0);
|
|
1418
|
+
const midpoint = Math.round(((min + max) / 2) * 100) / 100;
|
|
1419
|
+
return prop.type === 'integer' ? Math.round(midpoint) : midpoint;
|
|
1420
|
+
}
|
|
1421
|
+
if (prop.type === 'boolean') {
|
|
1422
|
+
return true;
|
|
1423
|
+
}
|
|
1424
|
+
if (prop.type === 'array') {
|
|
1425
|
+
if (prop.items) {
|
|
1426
|
+
return [this.generateSampleValue('item', prop.items, 'valid')];
|
|
1427
|
+
}
|
|
1428
|
+
return ['sample-item'];
|
|
1429
|
+
}
|
|
1430
|
+
if (prop.type === 'object') {
|
|
1431
|
+
if (prop.properties) {
|
|
1432
|
+
const obj = {};
|
|
1433
|
+
for (const [k, v] of Object.entries(prop.properties)) {
|
|
1434
|
+
obj[k] = this.generateSampleValue(k, v, 'valid');
|
|
1435
|
+
}
|
|
1436
|
+
return obj;
|
|
1437
|
+
}
|
|
1438
|
+
return { key: 'value' };
|
|
1439
|
+
}
|
|
1440
|
+
return `sample-${key}`;
|
|
1441
|
+
}
|
|
1442
|
+
/**
|
|
1443
|
+
* Generate a context-aware string value based on field name and format.
|
|
1444
|
+
*/
|
|
1445
|
+
generateStringForKey(key, prop) {
|
|
1446
|
+
// Format-based generation
|
|
1447
|
+
if (prop.format) {
|
|
1448
|
+
switch (prop.format) {
|
|
1449
|
+
case 'email':
|
|
1450
|
+
return 'test@example.com';
|
|
1451
|
+
case 'uri':
|
|
1452
|
+
case 'url':
|
|
1453
|
+
return 'https://example.com/resource';
|
|
1454
|
+
case 'date':
|
|
1455
|
+
return '2026-01-15';
|
|
1456
|
+
case 'date-time':
|
|
1457
|
+
return '2026-01-15T10:30:00Z';
|
|
1458
|
+
case 'uuid':
|
|
1459
|
+
return '550e8400-e29b-41d4-a716-446655440000';
|
|
1460
|
+
case 'ipv4':
|
|
1461
|
+
return '192.168.1.1';
|
|
1462
|
+
case 'ipv6':
|
|
1463
|
+
return '2001:0db8:85a3:0000:0000:8a2e:0370:7334';
|
|
1464
|
+
case 'hostname':
|
|
1465
|
+
return 'agent.example.com';
|
|
1466
|
+
}
|
|
1467
|
+
}
|
|
1468
|
+
// Key name heuristics
|
|
1469
|
+
const lowerKey = key.toLowerCase();
|
|
1470
|
+
if (lowerKey.includes('name'))
|
|
1471
|
+
return 'test-agent';
|
|
1472
|
+
if (lowerKey.includes('email'))
|
|
1473
|
+
return 'user@example.com';
|
|
1474
|
+
if (lowerKey.includes('url') || lowerKey.includes('uri'))
|
|
1475
|
+
return 'https://example.com';
|
|
1476
|
+
if (lowerKey.includes('path') || lowerKey.includes('file'))
|
|
1477
|
+
return '/data/input.json';
|
|
1478
|
+
if (lowerKey.includes('query') || lowerKey.includes('search'))
|
|
1479
|
+
return 'sample search query';
|
|
1480
|
+
if (lowerKey.includes('message') || lowerKey.includes('text') || lowerKey.includes('content'))
|
|
1481
|
+
return 'This is a sample text message for evaluation.';
|
|
1482
|
+
if (lowerKey.includes('id') || lowerKey.includes('identifier'))
|
|
1483
|
+
return 'eval-test-001';
|
|
1484
|
+
if (lowerKey.includes('description') || lowerKey.includes('summary'))
|
|
1485
|
+
return 'A sample description for testing purposes.';
|
|
1486
|
+
if (lowerKey.includes('prompt') || lowerKey.includes('instruction'))
|
|
1487
|
+
return 'Provide a helpful response to this test prompt.';
|
|
1488
|
+
if (lowerKey.includes('code') || lowerKey.includes('snippet'))
|
|
1489
|
+
return 'console.log("hello");';
|
|
1490
|
+
if (lowerKey.includes('language') || lowerKey.includes('lang'))
|
|
1491
|
+
return 'en';
|
|
1492
|
+
if (lowerKey.includes('format') || lowerKey.includes('type'))
|
|
1493
|
+
return 'json';
|
|
1494
|
+
if (lowerKey.includes('token') || lowerKey.includes('key'))
|
|
1495
|
+
return 'test-token-value';
|
|
1496
|
+
if (lowerKey.includes('tag') || lowerKey.includes('label'))
|
|
1497
|
+
return 'eval-test';
|
|
1498
|
+
if (lowerKey.includes('status') || lowerKey.includes('state'))
|
|
1499
|
+
return 'active';
|
|
1500
|
+
if (lowerKey.includes('date') || lowerKey.includes('time'))
|
|
1501
|
+
return '2026-01-15T10:30:00Z';
|
|
1502
|
+
// Respect length constraints
|
|
1503
|
+
const minLen = prop.minLength ?? 1;
|
|
1504
|
+
const maxLen = prop.maxLength;
|
|
1505
|
+
const base = `sample-${key}`;
|
|
1506
|
+
if (maxLen && base.length > maxLen) {
|
|
1507
|
+
return base.slice(0, maxLen);
|
|
1508
|
+
}
|
|
1509
|
+
if (base.length < minLen) {
|
|
1510
|
+
return base + 'x'.repeat(minLen - base.length);
|
|
1511
|
+
}
|
|
1512
|
+
return base;
|
|
1513
|
+
}
|
|
1514
|
+
/**
|
|
1515
|
+
* Derive a plausible input from the tool's description text.
|
|
1516
|
+
* Falls back to generating valid values from schema if description parsing yields nothing.
|
|
1517
|
+
*/
|
|
1518
|
+
deriveInputFromDescription(description, properties, required) {
|
|
1519
|
+
const input = {};
|
|
1520
|
+
const descLower = description.toLowerCase();
|
|
1521
|
+
for (const [key, prop] of Object.entries(properties)) {
|
|
1522
|
+
const keyLower = key.toLowerCase();
|
|
1523
|
+
// Try to infer values from description context
|
|
1524
|
+
if (descLower.includes('search') &&
|
|
1525
|
+
(keyLower.includes('query') || keyLower.includes('search'))) {
|
|
1526
|
+
input[key] = 'example search based on tool purpose';
|
|
1527
|
+
}
|
|
1528
|
+
else if (descLower.includes('create') &&
|
|
1529
|
+
(keyLower.includes('name') || keyLower.includes('title'))) {
|
|
1530
|
+
input[key] = 'new-resource-from-eval';
|
|
1531
|
+
}
|
|
1532
|
+
else if (descLower.includes('delete') &&
|
|
1533
|
+
(keyLower.includes('id') || keyLower.includes('identifier'))) {
|
|
1534
|
+
input[key] = 'resource-to-delete-001';
|
|
1535
|
+
}
|
|
1536
|
+
else if (descLower.includes('update') &&
|
|
1537
|
+
(keyLower.includes('id') || keyLower.includes('identifier'))) {
|
|
1538
|
+
input[key] = 'resource-to-update-001';
|
|
1539
|
+
}
|
|
1540
|
+
else if (descLower.includes('read') ||
|
|
1541
|
+
descLower.includes('get') ||
|
|
1542
|
+
descLower.includes('fetch')) {
|
|
1543
|
+
if (keyLower.includes('id') || keyLower.includes('identifier')) {
|
|
1544
|
+
input[key] = 'existing-resource-001';
|
|
1545
|
+
}
|
|
1546
|
+
else {
|
|
1547
|
+
input[key] = this.generateSampleValue(key, prop, 'valid');
|
|
1548
|
+
}
|
|
1549
|
+
}
|
|
1550
|
+
else {
|
|
1551
|
+
input[key] = this.generateSampleValue(key, prop, 'valid');
|
|
1552
|
+
}
|
|
1553
|
+
}
|
|
1554
|
+
// Ensure required fields are present even if not in properties
|
|
1555
|
+
for (const req of required) {
|
|
1556
|
+
if (!(req in input)) {
|
|
1557
|
+
input[req] = `required-${req}-value`;
|
|
1558
|
+
}
|
|
1559
|
+
}
|
|
1560
|
+
return input;
|
|
1561
|
+
}
|
|
1562
|
+
/**
|
|
1563
|
+
* Detect multi-agent manifest (same logic as BaseAdapter.isMultiAgent).
|
|
1564
|
+
*/
|
|
1565
|
+
isMultiAgent(manifest) {
|
|
1566
|
+
const spec = manifest.spec;
|
|
1567
|
+
const arch = manifest.metadata?.agentArchitecture;
|
|
1568
|
+
const pattern = arch?.pattern;
|
|
1569
|
+
return !!(spec?.team ||
|
|
1570
|
+
spec?.swarm ||
|
|
1571
|
+
spec?.subagents ||
|
|
1572
|
+
(pattern && pattern !== 'single'));
|
|
1573
|
+
}
|
|
1574
|
+
/**
|
|
1575
|
+
* Slugify a string for use in file names and identifiers.
|
|
1576
|
+
*/
|
|
1577
|
+
slugify(input) {
|
|
1578
|
+
return input
|
|
1579
|
+
.toLowerCase()
|
|
1580
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
1581
|
+
.replace(/^-+|-+$/g, '');
|
|
1582
|
+
}
|
|
1583
|
+
/**
|
|
1584
|
+
* Truncate a string to a maximum length, appending ellipsis if truncated.
|
|
1585
|
+
*/
|
|
1586
|
+
truncate(input, maxLength) {
|
|
1587
|
+
if (input.length <= maxLength)
|
|
1588
|
+
return input;
|
|
1589
|
+
return input.slice(0, maxLength - 3) + '...';
|
|
1590
|
+
}
|
|
1591
|
+
/**
|
|
1592
|
+
* Stringify an object to YAML with consistent formatting.
|
|
1593
|
+
*/
|
|
1594
|
+
yamlStringify(obj) {
|
|
1595
|
+
return yaml.stringify(obj, {
|
|
1596
|
+
indent: 2,
|
|
1597
|
+
lineWidth: 120,
|
|
1598
|
+
defaultStringType: 'PLAIN',
|
|
1599
|
+
defaultKeyType: 'PLAIN',
|
|
1600
|
+
});
|
|
1601
|
+
}
|
|
1602
|
+
}
|
|
1603
|
+
//# sourceMappingURL=evals-generator.service.js.map
|