@bluefly/openstandardagents 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.devfile.yaml +87 -0
- package/.gitlab-ci-trigger +1 -0
- package/.wiki-config.json +24 -0
- package/CHANGELOG.md +212 -1
- package/README.md +31 -56
- package/dist/adapters/anthropic/runtime.js +2 -2
- package/dist/adapters/anthropic/runtime.js.map +1 -1
- package/dist/bot/architecture-validator-bot.d.ts +8 -0
- package/dist/bot/architecture-validator-bot.d.ts.map +1 -0
- package/dist/bot/architecture-validator-bot.js +15 -0
- package/dist/bot/architecture-validator-bot.js.map +1 -0
- package/dist/bot/ci-pipeline-bot.d.ts +7 -0
- package/dist/bot/ci-pipeline-bot.d.ts.map +1 -0
- package/dist/bot/ci-pipeline-bot.js +7 -0
- package/dist/bot/ci-pipeline-bot.js.map +1 -0
- package/dist/bot/compliance-bot.d.ts +56 -0
- package/dist/bot/compliance-bot.d.ts.map +1 -0
- package/dist/bot/compliance-bot.js +203 -0
- package/dist/bot/compliance-bot.js.map +1 -0
- package/dist/bot/dependency-updater-bot.d.ts +9 -0
- package/dist/bot/dependency-updater-bot.d.ts.map +1 -0
- package/dist/bot/dependency-updater-bot.js +9 -0
- package/dist/bot/dependency-updater-bot.js.map +1 -0
- package/dist/bot/security-scanner-bot.d.ts +11 -0
- package/dist/bot/security-scanner-bot.d.ts.map +1 -0
- package/dist/bot/security-scanner-bot.js +21 -0
- package/dist/bot/security-scanner-bot.js.map +1 -0
- package/dist/cli/commands/agent-card.command.d.ts +11 -0
- package/dist/cli/commands/agent-card.command.d.ts.map +1 -0
- package/dist/cli/commands/agent-card.command.js +285 -0
- package/dist/cli/commands/agent-card.command.js.map +1 -0
- package/dist/cli/commands/agents.command.d.ts +11 -0
- package/dist/cli/commands/agents.command.d.ts.map +1 -0
- package/dist/cli/commands/agents.command.js +326 -0
- package/dist/cli/commands/agents.command.js.map +1 -0
- package/dist/cli/commands/generate.command.d.ts +13 -2
- package/dist/cli/commands/generate.command.d.ts.map +1 -1
- package/dist/cli/commands/generate.command.js +204 -29
- package/dist/cli/commands/generate.command.js.map +1 -1
- package/dist/cli/commands/registry.command.d.ts +14 -0
- package/dist/cli/commands/registry.command.d.ts.map +1 -0
- package/dist/cli/commands/registry.command.js +428 -0
- package/dist/cli/commands/registry.command.js.map +1 -0
- package/dist/cli/commands/workspace.command.d.ts +14 -0
- package/dist/cli/commands/workspace.command.d.ts.map +1 -0
- package/dist/cli/commands/workspace.command.js +467 -0
- package/dist/cli/commands/workspace.command.js.map +1 -0
- package/dist/cli/index.js +9 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/di-container.d.ts.map +1 -1
- package/dist/di-container.js +20 -0
- package/dist/di-container.js.map +1 -1
- package/dist/services/codegen/codegen.service.d.ts +75 -0
- package/dist/services/codegen/codegen.service.d.ts.map +1 -0
- package/dist/services/codegen/codegen.service.js +136 -0
- package/dist/services/codegen/codegen.service.js.map +1 -0
- package/dist/services/codegen/generators/manifest.generator.d.ts +41 -0
- package/dist/services/codegen/generators/manifest.generator.d.ts.map +1 -0
- package/dist/services/codegen/generators/manifest.generator.js +178 -0
- package/dist/services/codegen/generators/manifest.generator.js.map +1 -0
- package/dist/services/codegen/generators/openapi.generator.d.ts +46 -0
- package/dist/services/codegen/generators/openapi.generator.d.ts.map +1 -0
- package/dist/services/codegen/generators/openapi.generator.js +157 -0
- package/dist/services/codegen/generators/openapi.generator.js.map +1 -0
- package/dist/services/codegen/generators/types.generator.d.ts +27 -0
- package/dist/services/codegen/generators/types.generator.d.ts.map +1 -0
- package/dist/services/codegen/generators/types.generator.js +97 -0
- package/dist/services/codegen/generators/types.generator.js.map +1 -0
- package/dist/services/codegen/generators/vscode.generator.d.ts +43 -0
- package/dist/services/codegen/generators/vscode.generator.d.ts.map +1 -0
- package/dist/services/codegen/generators/vscode.generator.js +163 -0
- package/dist/services/codegen/generators/vscode.generator.js.map +1 -0
- package/dist/services/codegen/generators/zod.generator.d.ts +31 -0
- package/dist/services/codegen/generators/zod.generator.d.ts.map +1 -0
- package/dist/services/codegen/generators/zod.generator.js +134 -0
- package/dist/services/codegen/generators/zod.generator.js.map +1 -0
- package/dist/services/codegen/index.d.ts +33 -0
- package/dist/services/codegen/index.d.ts.map +1 -0
- package/dist/services/codegen/index.js +36 -0
- package/dist/services/codegen/index.js.map +1 -0
- package/dist/spec/extensions/openapi/ossa-openapi-extensions.schema.json +804 -0
- package/dist/spec/v0.3.0/examples/drupal-content-writer.ossa.yaml +1 -1
- package/dist/spec/v0.3.0/examples/drupal-moderation-assistant.ossa.yaml +1 -1
- package/dist/spec/v0.3.0/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +1 -1
- package/dist/spec/v0.3.0/runtime-bindings/anthropic.yaml +209 -0
- package/dist/spec/v0.3.1/examples/agent-with-identity.ossa.yaml +68 -0
- package/dist/spec/v0.3.1/examples/drupal-content-writer.ossa.yaml +1 -1
- package/dist/spec/v0.3.1/examples/drupal-moderation-assistant.ossa.yaml +1 -1
- package/dist/spec/v0.3.1/examples/multi-provider-identity.ossa.yaml +236 -0
- package/dist/spec/v0.3.1/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +1 -1
- package/dist/spec/v0.3.1/extensions/agent-identity.yaml +594 -0
- package/dist/spec/v0.3.1/ossa-0.3.1.schema.json +300 -21
- package/dist/spec/v0.3.2/MIGRATION-v0.3.1-to-v0.3.2.md +293 -0
- package/dist/spec/v0.3.2/UNIFIED-SCHEMA.md +120 -0
- package/dist/spec/v0.3.2/access_tiers.yaml +375 -0
- package/dist/spec/v0.3.2/adapters/drupal.md +541 -0
- package/dist/spec/v0.3.2/adapters/symfony.md +659 -0
- package/dist/spec/v0.3.2/agent-test.schema.json +75 -0
- package/dist/spec/v0.3.2/examples/access-tiers/README.md +106 -0
- package/dist/spec/v0.3.2/examples/access-tiers/code-critic.ossa.yaml +119 -0
- package/dist/spec/v0.3.2/examples/access-tiers/compliance-governor.ossa.yaml +234 -0
- package/dist/spec/v0.3.2/examples/access-tiers/deployment-operator.ossa.yaml +201 -0
- package/dist/spec/v0.3.2/examples/access-tiers/doc-generator.ossa.yaml +117 -0
- package/dist/spec/v0.3.2/examples/access-tiers/security-scanner.ossa.yaml +133 -0
- package/dist/spec/v0.3.2/examples/agent-with-identity.ossa.yaml +68 -0
- package/dist/spec/v0.3.2/examples/drupal-content-writer.ossa.yaml +110 -0
- package/dist/spec/v0.3.2/examples/drupal-moderation-assistant.ossa.yaml +96 -0
- package/dist/spec/v0.3.2/examples/multi-provider-identity.ossa.yaml +236 -0
- package/dist/spec/v0.3.2/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
- package/dist/spec/v0.3.2/examples/tasks/data-transform.ossa.yaml +147 -0
- package/dist/spec/v0.3.2/examples/tasks/publish-content.ossa.yaml +125 -0
- package/dist/spec/v0.3.2/examples/workflows/content-publishing.ossa.yaml +190 -0
- package/dist/spec/v0.3.2/examples/workflows/deployment-pipeline.ossa.yaml +247 -0
- package/dist/spec/v0.3.2/extensions/agent-identity.yaml +594 -0
- package/dist/spec/v0.3.2/extensions/drupal.md +417 -0
- package/dist/spec/v0.3.2/infrastructure/service-ports.yaml +324 -0
- package/dist/spec/{v0.3.1/ossa-0.3.0.schema.json → v0.3.2/ossa-0.3.2.schema.json} +563 -34
- package/dist/spec/v0.3.2/protocols/delegation.yaml +239 -0
- package/dist/spec/v0.3.2/protocols/sse.md +494 -0
- package/dist/spec/v0.3.2/protocols/webrtc.md +600 -0
- package/dist/spec/v0.3.2/protocols/websocket.md +362 -0
- package/dist/spec/v0.3.2/runtime/RUNTIME.md +457 -0
- package/dist/spec/v0.3.2/runtime/memory-model.yaml +871 -0
- package/dist/spec/v0.3.2/runtime/runtime.yaml +926 -0
- package/dist/spec/v0.3.2/schemas/agent-unified.yaml +165 -0
- package/dist/spec/v0.3.2/schemas/capabilities.yaml +102 -0
- package/dist/spec/v0.3.2/schemas/functions.yaml +75 -0
- package/dist/spec/v0.3.2/schemas/messaging/channel.schema.json +245 -0
- package/dist/spec/v0.3.2/schemas/messaging/delivery-receipt.schema.json +192 -0
- package/dist/spec/v0.3.2/schemas/messaging/message.schema.json +205 -0
- package/dist/spec/v0.3.2/schemas/messaging/subscription.schema.json +214 -0
- package/dist/spec/v0.3.2/schemas/runtime.yaml +102 -0
- package/dist/spec/v0.3.2/schemas/taxonomy.yaml +533 -0
- package/dist/spec/v0.3.2/schemas/unified-llm.yaml +91 -0
- package/dist/spec/v0.3.2/taxonomy.yaml +363 -0
- package/dist/types/generated/ossa-0.3.2.types.d.ts +367 -0
- package/dist/types/generated/ossa-0.3.2.types.d.ts.map +1 -0
- package/dist/types/generated/ossa-0.3.2.types.js +10 -0
- package/dist/types/generated/ossa-0.3.2.types.js.map +1 -0
- package/dist/types/generated/ossa-0.3.2.zod.d.ts +36 -0
- package/dist/types/generated/ossa-0.3.2.zod.d.ts.map +1 -0
- package/dist/types/generated/ossa-0.3.2.zod.js +25 -0
- package/dist/types/generated/ossa-0.3.2.zod.js.map +1 -0
- 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-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/workers/worker-agent.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/code-agent.ossa.json +36 -11
- package/examples/agents-md/monorepo-agent.ossa.yaml +1 -1
- package/examples/anthropic/claude-assistant.ossa.json +4 -4
- package/examples/autogen/multi-agent.ossa.json +2 -2
- package/examples/autonomous-evolution/self-evolving-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/crewai/research-team.ossa.json +2 -2
- package/examples/cursor/code-review-agent.ossa.json +2 -2
- package/examples/drupal/ai_agents_ossa-module/.agents/example-agent/agent.ossa.yaml +1 -1
- package/examples/drupal/gitlab-ml-recommender.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 +1 -1
- 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 +3 -3
- 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 +2 -2
- package/examples/getting-started/05-workflow-composition.ossa.yaml +1 -1
- package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
- package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
- 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/langchain/chain-agent.ossa.json +2 -2
- package/examples/langflow/workflow-agent.ossa.json +2 -2
- package/examples/langgraph/state-machine-agent.ossa.json +2 -2
- package/examples/llamaindex/rag-agent.ossa.json +2 -2
- 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 +3 -3
- package/examples/messaging/security-scanner.ossa.yaml +1 -1
- package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
- 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/observability/activity-stream-full.yaml +1 -1
- package/examples/openai/basic-agent.ossa.yaml +1 -1
- package/examples/openai/multi-tool-agent.ossa.json +2 -2
- package/examples/openai/swarm-agent.ossa.json +2 -2
- package/examples/production/document-analyzer-openai.yml +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/runtime-adapters/bedrock-claude-example.ossa.yaml +1 -1
- package/examples/schema/reusable-components.yaml +1 -1
- package/examples/showcase/ci-pipeline.ossa.yaml +59 -0
- package/examples/showcase/code-assistant.ossa.yaml +118 -0
- package/examples/showcase/code-reviewer.ossa.yaml +61 -0
- package/examples/showcase/compliance-validator.ossa.yaml +62 -0
- package/examples/showcase/content-writer.ossa.yaml +67 -0
- package/examples/showcase/data-transformer.ossa.yaml +78 -0
- package/examples/showcase/doc-generator.ossa.yaml +68 -0
- package/examples/showcase/security-scanner.ossa.yaml +65 -0
- package/examples/showcase/test-generator.ossa.yaml +63 -0
- package/examples/showcase/workflow-orchestrator.ossa.yaml +129 -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/templates/ossa-compliance.yaml +1 -1
- package/examples/unified/security-scanner.ossa.yaml +1 -1
- package/examples/vercel/edge-agent.ossa.json +2 -2
- 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/llms-ctx-full.txt +39 -0
- package/llms-ctx.txt +39 -0
- package/openapi/agent-communication.yaml +1 -1
- package/openapi/agent-crud.yaml +8 -8
- package/openapi/agent-discovery.yaml +2 -2
- package/openapi/agent-identity.yaml +8 -8
- package/openapi/cli-commands.openapi.yaml +231 -0
- package/openapi/core/ossa-core-api.openapi.yaml +1 -1
- package/openapi/core/ossa-registry-api.openapi.yaml +1 -1
- package/openapi/core/ossa-registry.openapi.yaml +1 -1
- package/openapi/core/unified-agent-gateway.openapi.yaml +1 -1
- package/openapi/github-sync.yaml +1 -1
- package/openapi/protocols/sse-streams.yaml +1 -1
- package/openapi/protocols/websocket-events.yaml +2 -2
- package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +2 -2
- package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/critic-agent-api.openapi.yaml +2 -2
- package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +2 -2
- package/openapi/reference-implementations/drupal-agent-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +2 -2
- package/openapi/reference-implementations/governor-agent-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/helm-generator.openapi.yaml +1 -1
- package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/judge-agent-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +2 -2
- package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +2 -2
- package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +1 -1
- package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +2 -2
- package/openapi/reference-implementations/self-evolving-ecosystem.openapi.yaml +1 -1
- package/openapi/reference-implementations/worker-agent-api.openapi.yaml +2 -2
- package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +1 -1
- package/package.json +13 -3
- package/spec/extensions/openapi/ossa-openapi-extensions.schema.json +804 -0
- package/spec/v0.3.0/examples/drupal-content-writer.ossa.yaml +1 -1
- package/spec/v0.3.0/examples/drupal-moderation-assistant.ossa.yaml +1 -1
- package/spec/v0.3.0/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +1 -1
- package/spec/v0.3.0/runtime-bindings/anthropic.yaml +209 -0
- package/spec/v0.3.1/examples/agent-with-identity.ossa.yaml +68 -0
- package/spec/v0.3.1/examples/drupal-content-writer.ossa.yaml +1 -1
- package/spec/v0.3.1/examples/drupal-moderation-assistant.ossa.yaml +1 -1
- package/spec/v0.3.1/examples/multi-provider-identity.ossa.yaml +236 -0
- package/spec/v0.3.1/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +1 -1
- package/spec/v0.3.1/extensions/agent-identity.yaml +594 -0
- package/spec/v0.3.1/ossa-0.3.1.schema.json +300 -21
- package/spec/v0.3.2/MIGRATION-v0.3.1-to-v0.3.2.md +293 -0
- package/spec/v0.3.2/UNIFIED-SCHEMA.md +120 -0
- package/spec/v0.3.2/access_tiers.yaml +375 -0
- package/spec/v0.3.2/adapters/drupal.md +541 -0
- package/spec/v0.3.2/adapters/symfony.md +659 -0
- package/spec/v0.3.2/agent-test.schema.json +75 -0
- package/spec/v0.3.2/examples/access-tiers/README.md +106 -0
- package/spec/v0.3.2/examples/access-tiers/code-critic.ossa.yaml +119 -0
- package/spec/v0.3.2/examples/access-tiers/compliance-governor.ossa.yaml +234 -0
- package/spec/v0.3.2/examples/access-tiers/deployment-operator.ossa.yaml +201 -0
- package/spec/v0.3.2/examples/access-tiers/doc-generator.ossa.yaml +117 -0
- package/spec/v0.3.2/examples/access-tiers/security-scanner.ossa.yaml +133 -0
- package/spec/v0.3.2/examples/agent-with-identity.ossa.yaml +68 -0
- package/spec/v0.3.2/examples/drupal-content-writer.ossa.yaml +110 -0
- package/spec/v0.3.2/examples/drupal-moderation-assistant.ossa.yaml +96 -0
- package/spec/v0.3.2/examples/multi-provider-identity.ossa.yaml +236 -0
- package/spec/v0.3.2/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
- package/spec/v0.3.2/examples/tasks/data-transform.ossa.yaml +147 -0
- package/spec/v0.3.2/examples/tasks/publish-content.ossa.yaml +125 -0
- package/spec/v0.3.2/examples/workflows/content-publishing.ossa.yaml +190 -0
- package/spec/v0.3.2/examples/workflows/deployment-pipeline.ossa.yaml +247 -0
- package/spec/v0.3.2/extensions/agent-identity.yaml +594 -0
- package/spec/v0.3.2/extensions/drupal.md +417 -0
- package/spec/v0.3.2/infrastructure/service-ports.yaml +324 -0
- package/spec/{v0.3.1/ossa-0.3.0.schema.json → v0.3.2/ossa-0.3.2.schema.json} +563 -34
- package/spec/v0.3.2/protocols/delegation.yaml +239 -0
- package/spec/v0.3.2/protocols/sse.md +494 -0
- package/spec/v0.3.2/protocols/webrtc.md +600 -0
- package/spec/v0.3.2/protocols/websocket.md +362 -0
- package/spec/v0.3.2/runtime/RUNTIME.md +457 -0
- package/spec/v0.3.2/runtime/memory-model.yaml +871 -0
- package/spec/v0.3.2/runtime/runtime.yaml +926 -0
- package/spec/v0.3.2/schemas/agent-unified.yaml +165 -0
- package/spec/v0.3.2/schemas/capabilities.yaml +102 -0
- package/spec/v0.3.2/schemas/functions.yaml +75 -0
- package/spec/v0.3.2/schemas/messaging/channel.schema.json +245 -0
- package/spec/v0.3.2/schemas/messaging/delivery-receipt.schema.json +192 -0
- package/spec/v0.3.2/schemas/messaging/message.schema.json +205 -0
- package/spec/v0.3.2/schemas/messaging/subscription.schema.json +214 -0
- package/spec/v0.3.2/schemas/runtime.yaml +102 -0
- package/spec/v0.3.2/schemas/taxonomy.yaml +533 -0
- package/spec/v0.3.2/schemas/unified-llm.yaml +91 -0
- package/spec/v0.3.2/taxonomy.yaml +363 -0
- package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +0 -60
- package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +0 -68
- package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +0 -106
|
@@ -110,6 +110,237 @@
|
|
|
110
110
|
}
|
|
111
111
|
],
|
|
112
112
|
"definitions": {
|
|
113
|
+
"AgentIdentity": {
|
|
114
|
+
"type": "object",
|
|
115
|
+
"description": "Comprehensive agent identity configuration for service accounts, authentication, and observability",
|
|
116
|
+
"properties": {
|
|
117
|
+
"provider": {
|
|
118
|
+
"type": "string",
|
|
119
|
+
"enum": ["gitlab", "github", "azure-devops", "bitbucket", "generic"],
|
|
120
|
+
"description": "Identity provider type for service account integration"
|
|
121
|
+
},
|
|
122
|
+
"service_account": {
|
|
123
|
+
"type": "object",
|
|
124
|
+
"description": "Service account details for automated operations",
|
|
125
|
+
"required": ["username", "email"],
|
|
126
|
+
"properties": {
|
|
127
|
+
"id": {
|
|
128
|
+
"oneOf": [{"type": "integer"}, {"type": "string"}],
|
|
129
|
+
"description": "Provider-specific account ID"
|
|
130
|
+
},
|
|
131
|
+
"username": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"pattern": "^[a-z0-9_\\[\\]-]+$",
|
|
134
|
+
"minLength": 1,
|
|
135
|
+
"maxLength": 64,
|
|
136
|
+
"description": "Service account username"
|
|
137
|
+
},
|
|
138
|
+
"email": {
|
|
139
|
+
"type": "string",
|
|
140
|
+
"format": "email",
|
|
141
|
+
"description": "Service account email for git attribution"
|
|
142
|
+
},
|
|
143
|
+
"display_name": {
|
|
144
|
+
"type": "string",
|
|
145
|
+
"description": "Human-readable display name"
|
|
146
|
+
},
|
|
147
|
+
"roles": {
|
|
148
|
+
"type": "array",
|
|
149
|
+
"items": {
|
|
150
|
+
"type": "string",
|
|
151
|
+
"enum": ["developer", "maintainer", "owner", "reporter", "guest"]
|
|
152
|
+
},
|
|
153
|
+
"description": "Roles assigned to this service account"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
"authentication": {
|
|
158
|
+
"type": "object",
|
|
159
|
+
"description": "Authentication method configuration",
|
|
160
|
+
"properties": {
|
|
161
|
+
"method": {
|
|
162
|
+
"type": "string",
|
|
163
|
+
"enum": ["personal_access_token", "project_access_token", "group_access_token", "deploy_token", "oauth2", "ssh_key", "mtls", "github_app", "azure_service_principal"],
|
|
164
|
+
"default": "personal_access_token",
|
|
165
|
+
"description": "Authentication method type"
|
|
166
|
+
},
|
|
167
|
+
"scopes": {
|
|
168
|
+
"type": "array",
|
|
169
|
+
"items": {"type": "string"},
|
|
170
|
+
"description": "Required token scopes (provider-specific)"
|
|
171
|
+
},
|
|
172
|
+
"auto_refresh": {
|
|
173
|
+
"type": "boolean",
|
|
174
|
+
"default": false,
|
|
175
|
+
"description": "Automatically refresh token before expiry"
|
|
176
|
+
},
|
|
177
|
+
"expiry_warning_days": {
|
|
178
|
+
"type": "integer",
|
|
179
|
+
"default": 7,
|
|
180
|
+
"minimum": 1,
|
|
181
|
+
"maximum": 90,
|
|
182
|
+
"description": "Days before expiry to warn about token rotation"
|
|
183
|
+
},
|
|
184
|
+
"rotation_policy": {
|
|
185
|
+
"type": "object",
|
|
186
|
+
"properties": {
|
|
187
|
+
"enabled": {"type": "boolean", "default": false},
|
|
188
|
+
"interval_days": {"type": "integer", "default": 90, "minimum": 7, "maximum": 365},
|
|
189
|
+
"notify_on_rotation": {"type": "boolean", "default": true}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"token_source": {
|
|
195
|
+
"type": "object",
|
|
196
|
+
"description": "Token/credential source configuration with priority order",
|
|
197
|
+
"properties": {
|
|
198
|
+
"env_var": {
|
|
199
|
+
"type": "string",
|
|
200
|
+
"pattern": "^[A-Z][A-Z0-9_]*$",
|
|
201
|
+
"description": "Environment variable name containing the token (highest priority)"
|
|
202
|
+
},
|
|
203
|
+
"file_path": {
|
|
204
|
+
"type": "string",
|
|
205
|
+
"description": "Path to token file (second priority, supports ~ expansion)"
|
|
206
|
+
},
|
|
207
|
+
"vault": {
|
|
208
|
+
"type": "object",
|
|
209
|
+
"properties": {
|
|
210
|
+
"path": {"type": "string", "description": "Vault secret path"},
|
|
211
|
+
"key": {"type": "string", "default": "value"},
|
|
212
|
+
"role": {"type": "string", "description": "Vault role for authentication"}
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
"kubernetes_secret": {
|
|
216
|
+
"type": "object",
|
|
217
|
+
"properties": {
|
|
218
|
+
"name": {"type": "string"},
|
|
219
|
+
"namespace": {"type": "string"},
|
|
220
|
+
"key": {"type": "string", "default": "token"}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
"patterns": {
|
|
226
|
+
"type": "array",
|
|
227
|
+
"items": {"type": "string"},
|
|
228
|
+
"description": "Glob patterns for auto-detection based on working directory (picomatch syntax)"
|
|
229
|
+
},
|
|
230
|
+
"fallback": {
|
|
231
|
+
"type": "array",
|
|
232
|
+
"items": {
|
|
233
|
+
"type": "object",
|
|
234
|
+
"required": ["provider", "service_account"],
|
|
235
|
+
"properties": {
|
|
236
|
+
"provider": {"type": "string", "enum": ["gitlab", "github", "azure-devops", "bitbucket", "generic"]},
|
|
237
|
+
"service_account": {"$ref": "#/definitions/AgentIdentity/properties/service_account"},
|
|
238
|
+
"token_source": {"$ref": "#/definitions/AgentIdentity/properties/token_source"},
|
|
239
|
+
"condition": {
|
|
240
|
+
"type": "object",
|
|
241
|
+
"properties": {
|
|
242
|
+
"pattern_match": {"type": "array", "items": {"type": "string"}},
|
|
243
|
+
"platform_unavailable": {"type": "boolean"}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
},
|
|
248
|
+
"description": "Fallback identity chain for high availability"
|
|
249
|
+
},
|
|
250
|
+
"dora_tracking": {
|
|
251
|
+
"type": "object",
|
|
252
|
+
"description": "DORA metrics tracking configuration",
|
|
253
|
+
"properties": {
|
|
254
|
+
"enabled": {"type": "boolean", "default": false},
|
|
255
|
+
"metrics": {
|
|
256
|
+
"type": "array",
|
|
257
|
+
"items": {
|
|
258
|
+
"type": "string",
|
|
259
|
+
"enum": ["deployment_frequency", "lead_time", "change_failure_rate", "mttr"]
|
|
260
|
+
},
|
|
261
|
+
"uniqueItems": true
|
|
262
|
+
},
|
|
263
|
+
"labels": {
|
|
264
|
+
"type": "object",
|
|
265
|
+
"additionalProperties": {"type": "string"},
|
|
266
|
+
"description": "Additional labels for metrics"
|
|
267
|
+
},
|
|
268
|
+
"prometheus": {
|
|
269
|
+
"type": "object",
|
|
270
|
+
"properties": {
|
|
271
|
+
"push_gateway": {"type": "string", "format": "uri"},
|
|
272
|
+
"job_name": {"type": "string"}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
"session": {
|
|
278
|
+
"type": "object",
|
|
279
|
+
"description": "Session management for Claude Code integration",
|
|
280
|
+
"properties": {
|
|
281
|
+
"init_on_start": {"type": "boolean", "default": true},
|
|
282
|
+
"propagate_to_subprocesses": {"type": "boolean", "default": true},
|
|
283
|
+
"git_attribution": {"type": "boolean", "default": true},
|
|
284
|
+
"heartbeat_interval": {"type": "integer", "default": 300, "minimum": 30, "maximum": 3600},
|
|
285
|
+
"timeout": {"type": "integer", "default": 3600, "minimum": 60, "maximum": 86400},
|
|
286
|
+
"hooks": {
|
|
287
|
+
"type": "object",
|
|
288
|
+
"properties": {
|
|
289
|
+
"pre_prompt_submit": {"type": "boolean", "default": true},
|
|
290
|
+
"post_session": {"type": "boolean", "default": false}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
"observability": {
|
|
296
|
+
"type": "object",
|
|
297
|
+
"description": "OpenTelemetry service identity for distributed tracing",
|
|
298
|
+
"properties": {
|
|
299
|
+
"service_name": {"type": "string"},
|
|
300
|
+
"service_namespace": {"type": "string"},
|
|
301
|
+
"service_version": {"type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(-[a-zA-Z0-9.]+)?$"},
|
|
302
|
+
"service_instance_id": {"type": "string"},
|
|
303
|
+
"resource_attributes": {
|
|
304
|
+
"type": "object",
|
|
305
|
+
"additionalProperties": {"type": "string"}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
"security": {
|
|
310
|
+
"type": "object",
|
|
311
|
+
"description": "Security policies for identity management",
|
|
312
|
+
"properties": {
|
|
313
|
+
"token_encryption": {
|
|
314
|
+
"type": "string",
|
|
315
|
+
"enum": ["none", "at_rest", "in_transit", "both"],
|
|
316
|
+
"default": "both"
|
|
317
|
+
},
|
|
318
|
+
"minimum_token_length": {"type": "integer", "default": 32},
|
|
319
|
+
"prohibited_actions": {
|
|
320
|
+
"type": "array",
|
|
321
|
+
"items": {"type": "string"}
|
|
322
|
+
},
|
|
323
|
+
"required_approvals": {
|
|
324
|
+
"type": "object",
|
|
325
|
+
"properties": {
|
|
326
|
+
"force_push": {"type": "boolean", "default": true},
|
|
327
|
+
"delete_protected_branch": {"type": "boolean", "default": true},
|
|
328
|
+
"modify_ci_config": {"type": "boolean", "default": false}
|
|
329
|
+
}
|
|
330
|
+
},
|
|
331
|
+
"rate_limits": {
|
|
332
|
+
"type": "object",
|
|
333
|
+
"properties": {
|
|
334
|
+
"requests_per_minute": {"type": "integer", "default": 60},
|
|
335
|
+
"requests_per_hour": {"type": "integer", "default": 1000},
|
|
336
|
+
"git_operations_per_hour": {"type": "integer", "default": 100}
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
},
|
|
342
|
+
"additionalProperties": false
|
|
343
|
+
},
|
|
113
344
|
"Metadata": {
|
|
114
345
|
"type": "object",
|
|
115
346
|
"required": [
|
|
@@ -523,27 +754,8 @@
|
|
|
523
754
|
}
|
|
524
755
|
},
|
|
525
756
|
"identity": {
|
|
526
|
-
"
|
|
527
|
-
"description": "
|
|
528
|
-
"properties": {
|
|
529
|
-
"service_name": {
|
|
530
|
-
"type": "string",
|
|
531
|
-
"description": "Service name for OpenTelemetry traces"
|
|
532
|
-
},
|
|
533
|
-
"service_namespace": {
|
|
534
|
-
"type": "string",
|
|
535
|
-
"description": "Service namespace (e.g., production, staging, development)"
|
|
536
|
-
},
|
|
537
|
-
"service_version": {
|
|
538
|
-
"type": "string",
|
|
539
|
-
"description": "Service version (semver recommended)"
|
|
540
|
-
},
|
|
541
|
-
"service_instance_id": {
|
|
542
|
-
"type": "string",
|
|
543
|
-
"description": "Unique instance identifier"
|
|
544
|
-
}
|
|
545
|
-
},
|
|
546
|
-
"additionalProperties": false
|
|
757
|
+
"$ref": "#/definitions/AgentIdentity",
|
|
758
|
+
"description": "Agent identity configuration including service accounts, authentication, and observability (v0.3.1+)"
|
|
547
759
|
},
|
|
548
760
|
"compliance": {
|
|
549
761
|
"type": "object",
|
|
@@ -959,6 +1171,10 @@
|
|
|
959
1171
|
},
|
|
960
1172
|
"additionalProperties": false
|
|
961
1173
|
}
|
|
1174
|
+
},
|
|
1175
|
+
"kubernetes": {
|
|
1176
|
+
"$ref": "#/definitions/KubernetesConfig",
|
|
1177
|
+
"description": "Kubernetes-specific configuration (KAS-inspired)"
|
|
962
1178
|
}
|
|
963
1179
|
},
|
|
964
1180
|
"additionalProperties": false
|
|
@@ -2801,6 +3017,69 @@
|
|
|
2801
3017
|
}
|
|
2802
3018
|
},
|
|
2803
3019
|
"additionalProperties": false
|
|
3020
|
+
},
|
|
3021
|
+
"KubernetesConfig": {
|
|
3022
|
+
"type": "object",
|
|
3023
|
+
"description": "Kubernetes-specific runtime configuration (KAS-inspired)",
|
|
3024
|
+
"properties": {
|
|
3025
|
+
"namespace": {
|
|
3026
|
+
"type": "string",
|
|
3027
|
+
"pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$",
|
|
3028
|
+
"description": "Kubernetes namespace (DNS-1123 subdomain)"
|
|
3029
|
+
},
|
|
3030
|
+
"service_account": {
|
|
3031
|
+
"type": "string",
|
|
3032
|
+
"pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$",
|
|
3033
|
+
"description": "Kubernetes service account name"
|
|
3034
|
+
},
|
|
3035
|
+
"api_server_url": {
|
|
3036
|
+
"type": "string",
|
|
3037
|
+
"format": "uri",
|
|
3038
|
+
"description": "Kubernetes API server URL (similar to KAS private API URL)"
|
|
3039
|
+
},
|
|
3040
|
+
"network_family": {
|
|
3041
|
+
"type": "string",
|
|
3042
|
+
"enum": [
|
|
3043
|
+
"tcp",
|
|
3044
|
+
"tcp4",
|
|
3045
|
+
"tcp6"
|
|
3046
|
+
],
|
|
3047
|
+
"default": "tcp",
|
|
3048
|
+
"description": "Network family (KAS pattern: tcp, tcp4, tcp6)"
|
|
3049
|
+
},
|
|
3050
|
+
"health_check_endpoint": {
|
|
3051
|
+
"type": "string",
|
|
3052
|
+
"format": "uri",
|
|
3053
|
+
"description": "Health check endpoint URL"
|
|
3054
|
+
},
|
|
3055
|
+
"config_map_ref": {
|
|
3056
|
+
"type": "string",
|
|
3057
|
+
"description": "Reference to Kubernetes ConfigMap"
|
|
3058
|
+
},
|
|
3059
|
+
"secret_ref": {
|
|
3060
|
+
"type": "string",
|
|
3061
|
+
"description": "Reference to Kubernetes Secret"
|
|
3062
|
+
},
|
|
3063
|
+
"rbac": {
|
|
3064
|
+
"type": "object",
|
|
3065
|
+
"properties": {
|
|
3066
|
+
"role": {
|
|
3067
|
+
"type": "string",
|
|
3068
|
+
"description": "Kubernetes Role name"
|
|
3069
|
+
},
|
|
3070
|
+
"cluster_role": {
|
|
3071
|
+
"type": "string",
|
|
3072
|
+
"description": "Kubernetes ClusterRole name"
|
|
3073
|
+
},
|
|
3074
|
+
"role_binding": {
|
|
3075
|
+
"type": "string",
|
|
3076
|
+
"description": "Kubernetes RoleBinding name"
|
|
3077
|
+
}
|
|
3078
|
+
},
|
|
3079
|
+
"additionalProperties": false
|
|
3080
|
+
}
|
|
3081
|
+
},
|
|
3082
|
+
"additionalProperties": false
|
|
2804
3083
|
}
|
|
2805
3084
|
}
|
|
2806
3085
|
}
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
# Migration Guide: OSSA v0.3.1 → v0.3.2
|
|
2
|
+
|
|
3
|
+
> **Status**: Draft
|
|
4
|
+
> **Last Updated**: 2025-12-28
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
OSSA v0.3.2 introduces **Access Tiers & Separation of Duties** while maintaining backward compatibility with v0.3.1 manifests.
|
|
11
|
+
|
|
12
|
+
### Key Changes
|
|
13
|
+
|
|
14
|
+
- ✅ **Backward Compatible**: v0.3.1 manifests validate against v0.3.2 schema
|
|
15
|
+
- ✅ **Optional Features**: Access tiers are optional - existing agents work without changes
|
|
16
|
+
- ✅ **Progressive Enhancement**: Add access tiers when ready
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Migration Path
|
|
21
|
+
|
|
22
|
+
### Option 1: No Changes Required (Recommended for Existing Agents)
|
|
23
|
+
|
|
24
|
+
**v0.3.1 agents continue to work without modification:**
|
|
25
|
+
|
|
26
|
+
```yaml
|
|
27
|
+
apiVersion: ossa/v0.3.1
|
|
28
|
+
kind: Agent
|
|
29
|
+
metadata:
|
|
30
|
+
name: my-agent
|
|
31
|
+
spec:
|
|
32
|
+
role: You are a helpful assistant.
|
|
33
|
+
llm:
|
|
34
|
+
provider: anthropic
|
|
35
|
+
model: claude-sonnet
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**This manifest validates against v0.3.2 schema** - no changes needed.
|
|
39
|
+
|
|
40
|
+
### Option 2: Update API Version Only
|
|
41
|
+
|
|
42
|
+
Simply update the `apiVersion` field:
|
|
43
|
+
|
|
44
|
+
```yaml
|
|
45
|
+
apiVersion: ossa/v0.3.2 # Changed from v0.3.1
|
|
46
|
+
kind: Agent
|
|
47
|
+
metadata:
|
|
48
|
+
name: my-agent
|
|
49
|
+
spec:
|
|
50
|
+
role: You are a helpful assistant.
|
|
51
|
+
llm:
|
|
52
|
+
provider: anthropic
|
|
53
|
+
model: claude-sonnet
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Option 3: Add Access Tiers (Recommended for New Agents)
|
|
57
|
+
|
|
58
|
+
Add access tier configuration for privilege separation:
|
|
59
|
+
|
|
60
|
+
```yaml
|
|
61
|
+
apiVersion: ossa/v0.3.2
|
|
62
|
+
kind: Agent
|
|
63
|
+
metadata:
|
|
64
|
+
name: my-agent
|
|
65
|
+
labels:
|
|
66
|
+
access_tier: tier_1_read # Optional label
|
|
67
|
+
spec:
|
|
68
|
+
type: analyzer # Agent type
|
|
69
|
+
|
|
70
|
+
# Access Tier Configuration (NEW in v0.3.2)
|
|
71
|
+
access:
|
|
72
|
+
tier: tier_1_read
|
|
73
|
+
permissions:
|
|
74
|
+
- read_code
|
|
75
|
+
- read_configs
|
|
76
|
+
prohibited:
|
|
77
|
+
- write_*
|
|
78
|
+
audit_level: standard
|
|
79
|
+
|
|
80
|
+
# Separation of Duties (NEW in v0.3.2)
|
|
81
|
+
separation:
|
|
82
|
+
role: analyzer
|
|
83
|
+
conflicts_with:
|
|
84
|
+
- executor
|
|
85
|
+
- approver
|
|
86
|
+
|
|
87
|
+
role: You are a helpful assistant.
|
|
88
|
+
llm:
|
|
89
|
+
provider: anthropic
|
|
90
|
+
model: claude-sonnet
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Access Tier Selection Guide
|
|
96
|
+
|
|
97
|
+
### Tier 1: Read Only (Analyzers)
|
|
98
|
+
|
|
99
|
+
**Use for**: Scanners, reviewers, auditors, monitors
|
|
100
|
+
|
|
101
|
+
```yaml
|
|
102
|
+
access:
|
|
103
|
+
tier: tier_1_read
|
|
104
|
+
permissions:
|
|
105
|
+
- read_code
|
|
106
|
+
- read_configs
|
|
107
|
+
- read_logs
|
|
108
|
+
- execute_queries
|
|
109
|
+
prohibited:
|
|
110
|
+
- write_*
|
|
111
|
+
- delete_*
|
|
112
|
+
- execute_commands
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Examples**: Security scanners, code critics, compliance auditors
|
|
116
|
+
|
|
117
|
+
### Tier 2: Write Limited (Workers)
|
|
118
|
+
|
|
119
|
+
**Use for**: Doc generators, test writers, scaffolders
|
|
120
|
+
|
|
121
|
+
```yaml
|
|
122
|
+
access:
|
|
123
|
+
tier: tier_2_write_limited
|
|
124
|
+
permissions:
|
|
125
|
+
- read_*
|
|
126
|
+
- write_docs
|
|
127
|
+
- write_tests
|
|
128
|
+
- write_scaffolds
|
|
129
|
+
- create_issues
|
|
130
|
+
- create_mrs_draft
|
|
131
|
+
prohibited:
|
|
132
|
+
- write_production_code
|
|
133
|
+
- merge_mrs
|
|
134
|
+
- modify_infrastructure
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Examples**: Documentation generators, test generators, module scaffolders
|
|
138
|
+
|
|
139
|
+
### Tier 3: Write Elevated (Operators)
|
|
140
|
+
|
|
141
|
+
**Use for**: Deployers, infrastructure operators, incident responders
|
|
142
|
+
|
|
143
|
+
```yaml
|
|
144
|
+
access:
|
|
145
|
+
tier: tier_3_write_elevated
|
|
146
|
+
permissions:
|
|
147
|
+
- read_*
|
|
148
|
+
- write_*
|
|
149
|
+
- execute_deployments
|
|
150
|
+
- modify_pipelines
|
|
151
|
+
- merge_mrs # With approval
|
|
152
|
+
prohibited:
|
|
153
|
+
- delete_production
|
|
154
|
+
- modify_secrets_direct
|
|
155
|
+
- bypass_approvals
|
|
156
|
+
requires_approval: true
|
|
157
|
+
approval_chain: standard
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Examples**: Deployment agents, CI/CD operators, infrastructure managers
|
|
161
|
+
|
|
162
|
+
### Tier 4: Policy (Governors)
|
|
163
|
+
|
|
164
|
+
**Use for**: Policy definers, compliance governors
|
|
165
|
+
|
|
166
|
+
```yaml
|
|
167
|
+
access:
|
|
168
|
+
tier: tier_4_policy
|
|
169
|
+
permissions:
|
|
170
|
+
- read_*
|
|
171
|
+
- define_policies
|
|
172
|
+
- publish_policies
|
|
173
|
+
- audit_compliance
|
|
174
|
+
prohibited:
|
|
175
|
+
- execute_*
|
|
176
|
+
- write_code
|
|
177
|
+
- modify_infrastructure
|
|
178
|
+
isolation: strict
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**Examples**: Compliance policy engines, security policy managers
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Separation of Duties Rules
|
|
186
|
+
|
|
187
|
+
### Critic-Executor Separation
|
|
188
|
+
|
|
189
|
+
Agents that review **cannot** also execute:
|
|
190
|
+
|
|
191
|
+
```yaml
|
|
192
|
+
separation:
|
|
193
|
+
role: reviewer
|
|
194
|
+
conflicts_with:
|
|
195
|
+
- executor
|
|
196
|
+
- approver
|
|
197
|
+
prohibited_actions:
|
|
198
|
+
- execute
|
|
199
|
+
- merge
|
|
200
|
+
- approve
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Governor-Executor Separation
|
|
204
|
+
|
|
205
|
+
Policy definers **cannot** execute:
|
|
206
|
+
|
|
207
|
+
```yaml
|
|
208
|
+
separation:
|
|
209
|
+
role: governor
|
|
210
|
+
conflicts_with:
|
|
211
|
+
- operator
|
|
212
|
+
- enforcer
|
|
213
|
+
prohibited_actions:
|
|
214
|
+
- execute
|
|
215
|
+
- remediate_direct
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## Validation
|
|
221
|
+
|
|
222
|
+
### Validate v0.3.1 Manifest Against v0.3.2 Schema
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
# Using OSSA CLI
|
|
226
|
+
ossa validate agent.ossa.yaml
|
|
227
|
+
|
|
228
|
+
# Schema accepts both v0.3.1 and v0.3.2
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Validate Access Tier Configuration
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
# Check separation of duties
|
|
235
|
+
ossa validate agent.ossa.yaml --check-separation
|
|
236
|
+
|
|
237
|
+
# Audit tier violations
|
|
238
|
+
ossa audit --tier-violations
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## Breaking Changes
|
|
244
|
+
|
|
245
|
+
**None** - v0.3.2 is fully backward compatible with v0.3.1.
|
|
246
|
+
|
|
247
|
+
### Deprecations
|
|
248
|
+
|
|
249
|
+
None in v0.3.2.
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Examples
|
|
254
|
+
|
|
255
|
+
See `spec/v0.3.2/examples/access-tiers/` for complete examples:
|
|
256
|
+
|
|
257
|
+
- `security-scanner.ossa.yaml` - Tier 1 (Read Only)
|
|
258
|
+
- `code-critic.ossa.yaml` - Tier 1 (Read Only)
|
|
259
|
+
- `doc-generator.ossa.yaml` - Tier 2 (Write Limited)
|
|
260
|
+
- `deployment-operator.ossa.yaml` - Tier 3 (Write Elevated)
|
|
261
|
+
- `compliance-governor.ossa.yaml` - Tier 4 (Policy)
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## FAQ
|
|
266
|
+
|
|
267
|
+
### Do I need to migrate immediately?
|
|
268
|
+
|
|
269
|
+
**No**. v0.3.1 manifests continue to work. Migrate when you need access tier features.
|
|
270
|
+
|
|
271
|
+
### Can I mix v0.3.1 and v0.3.2 agents?
|
|
272
|
+
|
|
273
|
+
**Yes**. Both versions validate against v0.3.2 schema.
|
|
274
|
+
|
|
275
|
+
### What if I don't specify an access tier?
|
|
276
|
+
|
|
277
|
+
**Agents work without access tiers**. They're optional for backward compatibility.
|
|
278
|
+
|
|
279
|
+
### How do I choose the right tier?
|
|
280
|
+
|
|
281
|
+
See [Access Tier Selection Guide](#access-tier-selection-guide) above.
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Related Documentation
|
|
286
|
+
|
|
287
|
+
- [Access Tiers Specification](access_tiers.yaml)
|
|
288
|
+
- [Schema Reference](ossa-0.3.2.schema.json)
|
|
289
|
+
- [Examples](../examples/access-tiers/)
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
**Last Updated**: 2025-12-28
|