@bluefly/openstandardagents 0.4.9 → 0.5.1
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 +35 -4
- package/README.md +77 -62
- package/dist/.version.json +3 -3
- package/dist/adapters/a2a/a2a-protocol.js +4 -2
- package/dist/adapters/a2a/a2a-tool.js +4 -2
- package/dist/adapters/a2a/mcp-integration.d.ts +2 -1
- package/dist/adapters/a2a/mcp-integration.js +6 -3
- package/dist/adapters/browser/browser-exporter.d.ts +26 -0
- package/dist/adapters/browser/browser-exporter.js +73 -0
- package/dist/adapters/browser/browser-runner.d.ts +23 -0
- package/dist/adapters/browser/browser-runner.js +46 -0
- package/dist/adapters/browser/index.d.ts +9 -0
- package/dist/adapters/browser/index.js +9 -0
- package/dist/adapters/claude-code/adapter.js +2 -2
- package/dist/adapters/docker/generators.js +19 -19
- package/dist/adapters/docker/index.d.ts +2 -0
- package/dist/adapters/docker/index.js +2 -0
- package/dist/adapters/docker/openclaw-bridge.d.ts +57 -0
- package/dist/adapters/docker/openclaw-bridge.js +173 -0
- package/dist/adapters/drupal/generator.js +76 -76
- package/dist/adapters/drupal/index.d.ts +1 -0
- package/dist/adapters/drupal/index.js +2 -0
- package/dist/adapters/drupal/twig-renderer.d.ts +23 -0
- package/dist/adapters/drupal/twig-renderer.js +99 -0
- package/dist/adapters/gitlab/agent-generator.js +2 -1
- package/dist/adapters/openai-agents/adapter.js +2 -2
- package/dist/api/index.js +2 -1
- package/dist/api/routes/mcp.router.js +3 -1
- package/dist/api/routes/wizard.router.js +3 -1
- package/dist/cli/commands/agent/discover-type.command.js +1 -1
- package/dist/cli/commands/agent-card.command.js +37 -10
- package/dist/cli/commands/agents-sync.command.d.ts +2 -2
- package/dist/cli/commands/agents-sync.command.js +27 -17
- package/dist/cli/commands/catalog/config.js +1 -1
- package/dist/cli/commands/catalog/validate.command.js +2 -2
- package/dist/cli/commands/config.command.js +2 -2
- package/dist/cli/commands/daemon.command.js +32 -8
- package/dist/cli/commands/discover.d.ts +1 -1
- package/dist/cli/commands/discover.js +16 -8
- package/dist/cli/commands/economics.command.d.ts +9 -0
- package/dist/cli/commands/economics.command.js +113 -0
- package/dist/cli/commands/export.command.js +6 -3
- package/dist/cli/commands/mcp.command.js +3 -1
- package/dist/cli/commands/memory.command.d.ts +18 -0
- package/dist/cli/commands/memory.command.js +168 -0
- package/dist/cli/commands/publish.command.js +7 -4
- package/dist/cli/commands/serve-builder-routes.js +1 -1
- package/dist/cli/commands/usie-skills.command.d.ts +24 -0
- package/dist/cli/commands/usie-skills.command.js +297 -0
- package/dist/cli/commands/validate.command.js +8 -1
- package/dist/cli/commands/verify.d.ts +3 -3
- package/dist/cli/commands/verify.js +12 -6
- package/dist/cli/commands/workspace.command.d.ts +1 -0
- package/dist/cli/commands/workspace.command.js +28 -4
- package/dist/cli/index.js +12 -0
- package/dist/cli/schema-driven/schema-loader.js +5 -5
- package/dist/cli/workspace-validate.d.ts +23 -0
- package/dist/cli/workspace-validate.js +117 -0
- package/dist/data/platform-matrix.js +1 -4
- package/dist/generated/types.d.ts +97 -97
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/mcp-server/index.js +658 -982
- package/dist/mesh/discovery-gkg.d.ts +26 -0
- package/dist/mesh/discovery-gkg.js +92 -0
- package/dist/messenger/Handler/AgentBatchHandler.js +3 -2
- package/dist/messenger/Handler/AgentExecutionHandler.js +6 -1
- package/dist/package.json +43 -14
- package/dist/sdks/shared/types.d.ts +1 -1
- package/dist/services/agent-card-generator.js +6 -2
- package/dist/services/daemon/audit-log.service.js +3 -1
- package/dist/services/daemon/execution.service.js +8 -4
- package/dist/services/daemon/fs-watcher.service.js +6 -7
- package/dist/services/daemon/pairing.service.js +2 -1
- package/dist/services/daemon/skill-aggregator.service.js +105 -21
- package/dist/services/daemon/sse-endpoints.js +1 -1
- package/dist/services/daemon/ws-server.js +10 -3
- package/dist/services/export/langchain/langchain-exporter.js +2 -2
- package/dist/services/export/langchain/memory-generator.js +2 -2
- package/dist/services/export/testing/test-generator.js +1 -1
- package/dist/services/governance/cedar-provider.js +12 -8
- package/dist/services/governance/cedar-validator.service.js +1 -1
- package/dist/services/mcp/bridge.service.js +40 -9
- package/dist/services/openapi-extensions-validation.d.ts +20 -0
- package/dist/services/openapi-extensions-validation.js +193 -0
- package/dist/services/release-automation/merge-request.service.d.ts +4 -4
- package/dist/services/release-automation/release-buttons.js +3 -3
- package/dist/services/release-automation/schemas/release.schema.d.ts +3 -3
- package/dist/services/runtime/openai.adapter.d.ts +46 -13
- package/dist/services/runtime/openai.adapter.js +169 -131
- package/dist/services/skill-registry.service.d.ts +1 -1
- package/dist/services/skills-pipeline/skills-research.service.js +47 -7
- package/dist/services/taxonomy-service.d.ts +3 -3
- package/dist/services/trust/trust.service.js +6 -4
- package/dist/services/validation-zod.service.js +3 -22
- package/dist/services/validators/index.d.ts +1 -0
- package/dist/services/validators/index.js +1 -0
- package/dist/services/validators/registry.d.ts +21 -0
- package/dist/services/validators/registry.js +42 -0
- package/dist/skills/test-skill/package.json +1 -1
- package/dist/spec/extensions/cognition.schema.json +87 -0
- package/dist/spec/extensions/role-manifest.md +188 -0
- package/dist/spec/layer4-economics/duadp-examples.json +44 -0
- package/dist/spec/v0.4/agent.schema.json +14 -0
- package/dist/spec/v0.4/extensions/mcp/README.md +1 -1
- package/dist/spec/v0.5/agent-builder-openapi.yaml +230 -0
- package/dist/spec/v0.5/agent.schema.json +34 -2
- package/dist/spec/v0.5/extensions/cognition/cognition.schema.json +78 -1
- package/dist/spec/v0.5/extensions/economics/context-pack.schema.json +91 -0
- package/dist/spec/v0.5/extensions/economics/execution-profile.schema.json +148 -0
- package/dist/spec/v0.5/extensions/economics/failure-semantics.schema.json +32 -0
- package/dist/spec/v0.5/extensions/economics/replay-packet.schema.json +120 -0
- package/dist/spec/v0.5/memory-hierarchy.yaml +120 -0
- package/dist/spec/v0.5/role.schema.json +268 -0
- package/dist/spec/v1/agent-card.schema.json +254 -0
- package/dist/types/cognition.zod.d.ts +312 -0
- package/dist/types/cognition.zod.js +223 -0
- package/dist/types/identity.zod.d.ts +5 -5
- package/dist/types/index.d.ts +54 -6
- package/dist/types/index.js +6 -2
- package/dist/types/personality.zod.d.ts +3 -3
- package/dist/types/role.d.ts +126 -0
- package/dist/types/role.js +38 -0
- package/dist/utils/http-client.d.ts +22 -0
- package/dist/utils/http-client.js +51 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/proxy-resolver.d.ts +36 -0
- package/dist/utils/proxy-resolver.js +59 -0
- package/dist/utils/user-agent.d.ts +11 -0
- package/dist/utils/user-agent.js +17 -0
- package/dist/validation/validator.js +1 -1
- package/dist/validation/version-compliance.js +1 -1
- package/examples/agents/01-customer-support-bot/agent.ossa.yaml +24 -31
- package/examples/agents/05-sales-assistant/agent.ossa.yaml +35 -23
- package/examples/agents/07-research-assistant/agent.ossa.yaml +27 -21
- package/examples/agents/10-meeting-assistant/agent.ossa.yaml +27 -35
- package/examples/agents/security-audit-agent.ossa.yaml +234 -0
- package/examples/agentscope/react-assistant/README.md +1 -1
- package/examples/agentscope/react-assistant/agent.ossa.yaml +37 -33
- package/examples/drupal/content-moderator.ossa.yaml +2 -2
- package/examples/drupal/drupal-contributor-agent/.eslintrc.json +58 -0
- package/examples/drupal/drupal-contributor-agent/.prettierrc.json +10 -0
- package/examples/drupal/drupal-contributor-agent/package.json +55 -0
- package/examples/drupal/drupal-contributor-agent/src/core/index.ts +10 -0
- package/examples/drupal/drupal-contributor-agent/src/index.ts +17 -0
- package/examples/drupal/drupal-contributor-agent/src/types/index.ts +180 -0
- package/examples/drupal/drupal-contributor-agent/tsconfig.json +36 -0
- package/examples/drupal/drupal-contributor.ossa.yaml +247 -0
- package/examples/export/langchain/production-agent-with-memory/README.md +1 -1
- package/examples/export/langchain/production-agent-with-memory/agent.ossa.yaml +13 -23
- package/examples/export/langchain/production-agent-with-streaming/agent.ossa.yaml +1 -15
- package/examples/export/langchain/production-agent-with-tools/agent.ossa.yaml +28 -29
- 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/README.md +3 -3
- package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
- package/examples/gitlab-agents/gitlab-ci-agent.ossa.yaml +221 -0
- package/examples/hierarchical-agent.ossa.yaml +10 -53
- package/examples/kagent/ossa-kagent-anthropic.ossa.yaml +2 -25
- package/examples/kagent/ossa-kagent-mcp-tools.ossa.yaml +2 -30
- package/examples/kagent/ossa-kagent-multi-tool.ossa.yaml +2 -18
- package/examples/kagent/ossa-kagent-poc.ossa.yaml +2 -16
- package/examples/pipeline-agent.ossa.yaml +3 -3
- package/examples/platform-specific/claude-code-subagent.yaml +1 -1
- package/examples/platform-specific/cursor-coding-agent.yaml +1 -1
- package/examples/platform-specific/warp-terminal-agent.yaml +1 -1
- package/examples/production-ready/01-customer-support-bot/agent.ossa.yaml +24 -31
- package/examples/production-ready/05-sales-assistant/agent.ossa.yaml +35 -23
- package/examples/production-ready/07-research-assistant/agent.ossa.yaml +27 -19
- package/examples/production-ready/10-meeting-assistant/agent.ossa.yaml +27 -35
- package/examples/roles/drupal-developer.role.yaml +37 -0
- package/examples/roles/platform-operator.role.yaml +28 -0
- package/examples/roles/security-auditor.role.yaml +27 -0
- package/examples/swarm-agent.ossa.yaml +13 -51
- package/examples/team-agent.ossa.yaml +12 -61
- package/examples/team-lead-teammate.ossa.yaml +12 -17
- package/openapi/agent-cognition-sessions.yaml +580 -0
- package/openapi/agent-communication.yaml +260 -212
- package/openapi/agent-crud.yaml +237 -207
- package/openapi/agent-discovery.yaml +119 -81
- package/openapi/agent-identity.yaml +219 -187
- package/openapi/agent-taxonomy.yaml +95 -38
- package/openapi/agents-md-service.yaml +103 -30
- package/openapi/cli/openapi.yaml +147 -40
- package/openapi/core/ossa-core-api.openapi.yaml +327 -271
- package/openapi/core/ossa-registry-api.openapi.yaml +299 -236
- package/openapi/core/ossa-registry.openapi.yaml +299 -159
- package/openapi/core/unified-agent-gateway.openapi.yaml +234 -170
- package/openapi/daemon-api.openapi.yaml +323 -181
- package/openapi/dev-cli/openapi.yaml +137 -113
- package/openapi/github-sync.yaml +62 -19
- package/openapi/marketplace-plugin.openapi.yaml +539 -466
- package/openapi/ossa-api.openapi.yaml +354 -213
- package/openapi/ossa-cli-enhancements.openapi.yaml +109 -90
- package/openapi/ossa-cli.yaml +260 -184
- package/openapi/protocols/sse-streams.yaml +66 -74
- package/openapi/protocols/websocket-events.yaml +61 -54
- package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +37 -20
- package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +35 -23
- package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +29 -18
- package/openapi/reference-implementations/critic-agent-api.openapi.yaml +45 -19
- package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +30 -24
- package/openapi/reference-implementations/drupal-agent-api.openapi.yaml +101 -50
- package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +33 -22
- package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +20 -16
- package/openapi/reference-implementations/governor-agent-api.openapi.yaml +41 -23
- package/openapi/reference-implementations/helm-generator.openapi.yaml +88 -46
- package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +30 -20
- package/openapi/reference-implementations/judge-agent-api.openapi.yaml +22 -16
- package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +32 -18
- package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +32 -21
- package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +34 -21
- package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +49 -27
- package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +27 -19
- package/openapi/reference-implementations/self-evolving-ecosystem.openapi.yaml +427 -293
- package/openapi/reference-implementations/worker-agent-api.openapi.yaml +34 -23
- package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +35 -21
- package/openapi/release-automation.openapi.yaml +48 -14
- package/openapi/schemas/common/agent.yaml +30 -29
- package/openapi/schemas/common/economics.yaml +98 -0
- package/openapi/schemas/common/errors.yaml +13 -3
- package/openapi/schemas/common/metadata.yaml +22 -7
- package/openapi/schemas/common/pagination.yaml +18 -6
- package/openapi/schemas/common/security.yaml +13 -5
- package/openapi/schemas/index.yaml +49 -42
- package/openapi/uadp-asyncapi.yaml +5 -3
- package/openapi/uadp-openapi.yaml +243 -165
- package/openapi/version-management.openapi.yaml +142 -135
- package/package.json +43 -14
- package/spec/extensions/cognition.schema.json +87 -0
- package/spec/extensions/role-manifest.md +188 -0
- package/spec/layer4-economics/duadp-examples.json +44 -0
- package/spec/v0.4/agent.schema.json +14 -0
- package/spec/v0.4/extensions/mcp/README.md +1 -1
- package/spec/v0.5/agent-builder-openapi.yaml +230 -0
- package/spec/v0.5/agent.schema.json +34 -2
- package/spec/v0.5/extensions/cognition/cognition.schema.json +78 -1
- package/spec/v0.5/extensions/economics/context-pack.schema.json +91 -0
- package/spec/v0.5/extensions/economics/execution-profile.schema.json +148 -0
- package/spec/v0.5/extensions/economics/failure-semantics.schema.json +32 -0
- package/spec/v0.5/extensions/economics/replay-packet.schema.json +120 -0
- package/spec/v0.5/memory-hierarchy.yaml +120 -0
- package/spec/v0.5/role.schema.json +268 -0
- package/spec/v1/agent-card.schema.json +254 -0
- package/dist/adapters/a2a/__tests__/mcp-integration.spec.d.ts +0 -5
- package/dist/adapters/a2a/__tests__/mcp-integration.spec.js +0 -268
- package/dist/adapters/a2a/__tests__/mcp-transport.spec.d.ts +0 -5
- package/dist/adapters/a2a/__tests__/mcp-transport.spec.js +0 -203
- package/dist/mcp-server/__tests__/mcp-server.spec.d.ts +0 -8
- package/dist/mcp-server/__tests__/mcp-server.spec.js +0 -557
- package/dist/validation/__tests__/error-codes.test.d.ts +0 -5
- package/dist/validation/__tests__/error-codes.test.js +0 -252
- package/dist/version-management/core/version-manager.test.d.ts +0 -2
- package/dist/version-management/core/version-manager.test.js +0 -210
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://openstandardagents.org/schemas/extensions/cognition.schema.json",
|
|
4
|
+
"title": "OSSA Cognition Extension",
|
|
5
|
+
"description": "Declares agent session capabilities, hypothesis behavior, and alignment gates for collaborative multi-agent cognition",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"session": {
|
|
9
|
+
"type": "object",
|
|
10
|
+
"description": "Session capabilities for collaborative multi-agent interactions",
|
|
11
|
+
"properties": {
|
|
12
|
+
"joinable": {
|
|
13
|
+
"type": "boolean",
|
|
14
|
+
"description": "Can this agent join collaborative sessions"
|
|
15
|
+
},
|
|
16
|
+
"maxConcurrent": {
|
|
17
|
+
"type": "integer",
|
|
18
|
+
"minimum": 1,
|
|
19
|
+
"default": 1,
|
|
20
|
+
"description": "Maximum number of concurrent sessions this agent can participate in"
|
|
21
|
+
},
|
|
22
|
+
"role": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"enum": ["leader", "contributor", "observer"],
|
|
25
|
+
"default": "contributor",
|
|
26
|
+
"description": "Default role this agent assumes in collaborative sessions"
|
|
27
|
+
},
|
|
28
|
+
"conflictBehavior": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"enum": ["pause", "yield", "escalate"],
|
|
31
|
+
"default": "pause",
|
|
32
|
+
"description": "How the agent handles conflicts during collaborative sessions"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"additionalProperties": false
|
|
36
|
+
},
|
|
37
|
+
"hypothesis": {
|
|
38
|
+
"type": "object",
|
|
39
|
+
"description": "Hypothesis declaration behavior for transparent agent reasoning",
|
|
40
|
+
"properties": {
|
|
41
|
+
"declaresIntent": {
|
|
42
|
+
"type": "boolean",
|
|
43
|
+
"default": true,
|
|
44
|
+
"description": "Whether the agent declares its intent before acting"
|
|
45
|
+
},
|
|
46
|
+
"confidenceThreshold": {
|
|
47
|
+
"type": "number",
|
|
48
|
+
"minimum": 0,
|
|
49
|
+
"maximum": 1,
|
|
50
|
+
"default": 0.7,
|
|
51
|
+
"description": "Minimum confidence score required to proceed without review"
|
|
52
|
+
},
|
|
53
|
+
"requiresAlignment": {
|
|
54
|
+
"type": "boolean",
|
|
55
|
+
"default": false,
|
|
56
|
+
"description": "Whether the agent must pass an alignment gate before executing hypotheses"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"additionalProperties": false
|
|
60
|
+
},
|
|
61
|
+
"alignmentGate": {
|
|
62
|
+
"type": "object",
|
|
63
|
+
"description": "Alignment gate configuration for hypothesis validation before execution",
|
|
64
|
+
"properties": {
|
|
65
|
+
"enabled": {
|
|
66
|
+
"type": "boolean",
|
|
67
|
+
"default": false,
|
|
68
|
+
"description": "Whether the alignment gate is active"
|
|
69
|
+
},
|
|
70
|
+
"arbiter": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"enum": ["human", "compliance-engine", "consensus"],
|
|
73
|
+
"default": "human",
|
|
74
|
+
"description": "Who or what arbitrates alignment decisions"
|
|
75
|
+
},
|
|
76
|
+
"timeout": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"default": "5m",
|
|
79
|
+
"pattern": "^\\d+[smhd]$",
|
|
80
|
+
"description": "Maximum time to wait for alignment decision (e.g. 5m, 30s, 1h)"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"additionalProperties": false
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"additionalProperties": false
|
|
87
|
+
}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# OSSA Role Manifest Extension
|
|
2
|
+
|
|
3
|
+
**Version:** 0.5.0
|
|
4
|
+
**Status:** Draft
|
|
5
|
+
**Last Updated:** 2026-03-13
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
This extension introduces `kind: Role` as a new OSSA manifest type. Roles define **behavioral overlays** for IDE and CLI agents (Claude Code, Cursor, Codex CLI, etc.) — configuring instructions, tool access, hooks, MCP server connections, and activation conditions.
|
|
10
|
+
|
|
11
|
+
### Role vs Agent
|
|
12
|
+
|
|
13
|
+
| Aspect | `kind: Agent` | `kind: Role` |
|
|
14
|
+
|--------|--------------|--------------|
|
|
15
|
+
| **Purpose** | Autonomous agentic loop | Operator context overlay |
|
|
16
|
+
| **Execution** | Runs independently | Applied to an existing agent session |
|
|
17
|
+
| **Lifecycle** | Deployed, scaled, monitored | Activated, composed, switched |
|
|
18
|
+
| **Identity** | Has its own agent ID | Inherits the host agent's identity |
|
|
19
|
+
| **Example** | A code review bot | "Drupal developer" context for Claude Code |
|
|
20
|
+
|
|
21
|
+
Roles answer the question: *"What context, rules, and tools should an AI coding assistant have when working in this domain?"*
|
|
22
|
+
|
|
23
|
+
## Manifest Structure
|
|
24
|
+
|
|
25
|
+
```yaml
|
|
26
|
+
apiVersion: ossa/v0.5
|
|
27
|
+
kind: Role
|
|
28
|
+
metadata:
|
|
29
|
+
name: <role-name> # Required: DNS-style identifier
|
|
30
|
+
version: <semver> # Recommended: e.g. 1.0.0
|
|
31
|
+
description: <string> # Human-readable summary
|
|
32
|
+
labels: # Optional: key-value pairs for filtering
|
|
33
|
+
platform: claude-code
|
|
34
|
+
domain: drupal
|
|
35
|
+
annotations: # Optional: non-identifying metadata
|
|
36
|
+
org: example-corp
|
|
37
|
+
spec:
|
|
38
|
+
role: <string> # System prompt / persona definition
|
|
39
|
+
instructions: # Behavioral instructions
|
|
40
|
+
preamble: <markdown> # Prepended to every conversation
|
|
41
|
+
constraints: # Hard rules (MUST/MUST NOT)
|
|
42
|
+
- <string>
|
|
43
|
+
tools: # Tool access configuration
|
|
44
|
+
allowed: [<string>] # Allowed tool names
|
|
45
|
+
denied: [<string>] # Denied tool names (overrides allowed)
|
|
46
|
+
skills: [<string>] # OSSA skill references
|
|
47
|
+
hooks: # Lifecycle hooks
|
|
48
|
+
on_activate: <string> # Run when role is activated
|
|
49
|
+
on_deactivate: <string> # Run when role is deactivated
|
|
50
|
+
pre_commit: <string> # Run before git commits
|
|
51
|
+
post_save: <string> # Run after file saves
|
|
52
|
+
context: # Context injection
|
|
53
|
+
schemas: [<path>] # JSON/OpenAPI schemas to load
|
|
54
|
+
files: # Files to include in context
|
|
55
|
+
- path: <glob>
|
|
56
|
+
description: <string>
|
|
57
|
+
knowledge: [<path>] # Knowledge base files (markdown, text)
|
|
58
|
+
protocols: # Protocol connections
|
|
59
|
+
mcp: # Model Context Protocol
|
|
60
|
+
servers:
|
|
61
|
+
- name: <string>
|
|
62
|
+
transport: stdio | sse
|
|
63
|
+
command: <string> # For stdio transport
|
|
64
|
+
args: [<string>]
|
|
65
|
+
url: <string> # For SSE transport
|
|
66
|
+
extends: # Role composition
|
|
67
|
+
- role: <role-name> # Inherit from another role
|
|
68
|
+
override: true | false # Whether to override conflicts (default: false)
|
|
69
|
+
activation: # When this role should activate
|
|
70
|
+
file_patterns: [<glob>] # Activate when matching files are open
|
|
71
|
+
command: <string> # CLI command to activate (e.g. "/role drupal")
|
|
72
|
+
env: # Environment variable conditions
|
|
73
|
+
<key>: <value>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Field Reference
|
|
77
|
+
|
|
78
|
+
### `spec.role`
|
|
79
|
+
|
|
80
|
+
A string defining the agent's persona when this role is active. This is the system-level identity statement.
|
|
81
|
+
|
|
82
|
+
```yaml
|
|
83
|
+
spec:
|
|
84
|
+
role: |
|
|
85
|
+
You are a Drupal module developer following Drupal coding standards.
|
|
86
|
+
You write PHP 8.2+ code with strict typing and dependency injection.
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### `spec.instructions`
|
|
90
|
+
|
|
91
|
+
Structured behavioral instructions.
|
|
92
|
+
|
|
93
|
+
- **`preamble`**: Markdown content prepended to every conversation. Use for rules, conventions, and domain knowledge that should always be present.
|
|
94
|
+
- **`constraints`**: An array of hard rules. Each constraint is a MUST or MUST NOT statement that the agent should never violate.
|
|
95
|
+
|
|
96
|
+
### `spec.tools`
|
|
97
|
+
|
|
98
|
+
Controls which tools the agent can use within this role.
|
|
99
|
+
|
|
100
|
+
- **`allowed`**: Whitelist of tool names. If specified, only these tools are available.
|
|
101
|
+
- **`denied`**: Blacklist of tool names. Takes precedence over `allowed`.
|
|
102
|
+
- **`skills`**: References to OSSA `kind: Skill` manifests that should be loaded.
|
|
103
|
+
|
|
104
|
+
### `spec.hooks`
|
|
105
|
+
|
|
106
|
+
Lifecycle hooks executed at specific points. Values are command strings or script references.
|
|
107
|
+
|
|
108
|
+
- **`on_activate`**: Runs when the role is first activated in a session.
|
|
109
|
+
- **`on_deactivate`**: Runs when switching away from this role.
|
|
110
|
+
- **`pre_commit`**: Runs before git commit operations.
|
|
111
|
+
- **`post_save`**: Runs after file save operations.
|
|
112
|
+
|
|
113
|
+
### `spec.context`
|
|
114
|
+
|
|
115
|
+
Injects additional context into the agent's working memory.
|
|
116
|
+
|
|
117
|
+
- **`schemas`**: Paths to JSON Schema or OpenAPI specification files. The agent can reference these for type-correct code generation.
|
|
118
|
+
- **`files`**: Specific files or globs to include in the agent's context window.
|
|
119
|
+
- **`knowledge`**: Paths to knowledge base documents (markdown, text) that provide domain reference material.
|
|
120
|
+
|
|
121
|
+
### `spec.protocols.mcp`
|
|
122
|
+
|
|
123
|
+
MCP server connections available when this role is active.
|
|
124
|
+
|
|
125
|
+
Each server entry requires:
|
|
126
|
+
- **`name`**: Identifier for the MCP server.
|
|
127
|
+
- **`transport`**: Either `stdio` (local process) or `sse` (HTTP Server-Sent Events).
|
|
128
|
+
- **`command`** + **`args`**: For `stdio` transport, the command to spawn.
|
|
129
|
+
- **`url`**: For `sse` transport, the endpoint URL.
|
|
130
|
+
|
|
131
|
+
### `spec.extends`
|
|
132
|
+
|
|
133
|
+
Enables role composition by inheriting from other roles.
|
|
134
|
+
|
|
135
|
+
- **`role`**: Name of the parent role to inherit from.
|
|
136
|
+
- **`override`**: If `true`, child fields replace parent fields. If `false` (default), child fields merge with parent fields (arrays are concatenated, objects are deep-merged).
|
|
137
|
+
|
|
138
|
+
### `spec.activation`
|
|
139
|
+
|
|
140
|
+
Defines conditions under which this role should automatically activate.
|
|
141
|
+
|
|
142
|
+
- **`file_patterns`**: Glob patterns matched against open files. If any file matches, the role activates.
|
|
143
|
+
- **`command`**: A slash command (e.g., `/role drupal`) that activates the role.
|
|
144
|
+
- **`env`**: Environment variable conditions. All specified variables must match for activation.
|
|
145
|
+
|
|
146
|
+
## Composition Rules
|
|
147
|
+
|
|
148
|
+
When a role extends another:
|
|
149
|
+
|
|
150
|
+
1. **`spec.role`**: Child replaces parent (no merge).
|
|
151
|
+
2. **`spec.instructions.preamble`**: Child is appended after parent.
|
|
152
|
+
3. **`spec.instructions.constraints`**: Arrays are concatenated (all constraints apply).
|
|
153
|
+
4. **`spec.tools.allowed`**: Intersection of parent and child (child cannot grant tools the parent denies).
|
|
154
|
+
5. **`spec.tools.denied`**: Union of parent and child (denials accumulate).
|
|
155
|
+
6. **`spec.tools.skills`**: Arrays are concatenated.
|
|
156
|
+
7. **`spec.hooks`**: Child hooks replace parent hooks for the same lifecycle event.
|
|
157
|
+
8. **`spec.context`**: All context entries are merged (files, schemas, knowledge concatenated).
|
|
158
|
+
9. **`spec.protocols.mcp.servers`**: Arrays are concatenated (all servers available).
|
|
159
|
+
10. **`spec.activation`**: Child activation conditions replace parent.
|
|
160
|
+
|
|
161
|
+
## Relationship to Other OSSA Kinds
|
|
162
|
+
|
|
163
|
+
| Kind | Relationship to Role |
|
|
164
|
+
|------|---------------------|
|
|
165
|
+
| `Agent` | Roles are applied to agents. An agent can have multiple roles. |
|
|
166
|
+
| `Skill` | Roles reference skills via `spec.tools.skills`. Skills provide capabilities; roles provide context. |
|
|
167
|
+
| `Task` | Roles may influence how tasks are executed by setting constraints and tool access. |
|
|
168
|
+
| `Workflow` | Roles can be assigned per workflow step to change agent behavior. |
|
|
169
|
+
|
|
170
|
+
## Platform Mapping
|
|
171
|
+
|
|
172
|
+
Roles map naturally to platform-specific configuration:
|
|
173
|
+
|
|
174
|
+
| Role Field | Claude Code | Cursor | Codex CLI |
|
|
175
|
+
|-----------|-------------|--------|-----------|
|
|
176
|
+
| `spec.role` | CLAUDE.md system prompt | .cursorrules | instructions |
|
|
177
|
+
| `spec.instructions.preamble` | CLAUDE.md content | .cursorrules content | --instructions |
|
|
178
|
+
| `spec.tools.allowed` | Tool permissions | Tool config | --tools |
|
|
179
|
+
| `spec.protocols.mcp` | .mcp.json servers | MCP config | MCP servers |
|
|
180
|
+
| `spec.activation.file_patterns` | Glob triggers | File associations | --pattern |
|
|
181
|
+
|
|
182
|
+
## Examples
|
|
183
|
+
|
|
184
|
+
See `examples/roles/` for complete role manifests:
|
|
185
|
+
|
|
186
|
+
- `drupal-developer.role.yaml` — Drupal module development
|
|
187
|
+
- `security-auditor.role.yaml` — Security audit and compliance review
|
|
188
|
+
- `platform-operator.role.yaml` — Full-stack platform operations with composition
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"records": [
|
|
3
|
+
{
|
|
4
|
+
"id": "did:web:bluefly.io:execution:profiles:fast-route",
|
|
5
|
+
"type": "ExecutionProfile",
|
|
6
|
+
"data": {
|
|
7
|
+
"profile_type": "fast-route",
|
|
8
|
+
"economics": {
|
|
9
|
+
"cost_ceiling_usd": 0.05,
|
|
10
|
+
"context_budget_tokens": 4096
|
|
11
|
+
},
|
|
12
|
+
"performance": {
|
|
13
|
+
"latency_target_ms": 500,
|
|
14
|
+
"priority": 90
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "did:web:bluefly.io:execution:profiles:deep-reason",
|
|
20
|
+
"type": "ExecutionProfile",
|
|
21
|
+
"data": {
|
|
22
|
+
"profile_type": "deep-reason",
|
|
23
|
+
"economics": {
|
|
24
|
+
"cost_ceiling_usd": 2.00,
|
|
25
|
+
"context_budget_tokens": 128000
|
|
26
|
+
},
|
|
27
|
+
"performance": {
|
|
28
|
+
"latency_target_ms": 30000,
|
|
29
|
+
"priority": 50
|
|
30
|
+
},
|
|
31
|
+
"reliability": {
|
|
32
|
+
"failure_semantics": "graceful-degradation",
|
|
33
|
+
"escalation_rules": [
|
|
34
|
+
{
|
|
35
|
+
"on_failure": "timeout",
|
|
36
|
+
"action": "fallback-profile",
|
|
37
|
+
"fallback_profile_id": "balanced-work"
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
@@ -1414,6 +1414,20 @@
|
|
|
1414
1414
|
"audit_required": { "type": "boolean", "default": false }
|
|
1415
1415
|
},
|
|
1416
1416
|
"additionalProperties": false
|
|
1417
|
+
},
|
|
1418
|
+
"sessions": {
|
|
1419
|
+
"type": "object",
|
|
1420
|
+
"description": "CAOE collaborative session capabilities for hypothesis broadcasting and conflict detection",
|
|
1421
|
+
"properties": {
|
|
1422
|
+
"sessionCapable": { "type": "boolean", "default": false },
|
|
1423
|
+
"hypothesisEmission": { "type": "string", "enum": ["required", "optional", "disabled"], "default": "optional" },
|
|
1424
|
+
"conflictBehavior": { "type": "string", "enum": ["block", "warn", "defer"], "default": "block" },
|
|
1425
|
+
"alignmentGate": { "type": "string", "enum": ["human_approval", "auto_on_confidence", "peer_agent", "none"], "default": "human_approval" },
|
|
1426
|
+
"autoLockConfidenceThreshold": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.95 },
|
|
1427
|
+
"maxConcurrentHypotheses": { "type": "integer", "minimum": 1, "maximum": 5, "default": 1 },
|
|
1428
|
+
"cognitiveFingerprint": { "type": "string" }
|
|
1429
|
+
},
|
|
1430
|
+
"additionalProperties": false
|
|
1417
1431
|
}
|
|
1418
1432
|
},
|
|
1419
1433
|
"additionalProperties": false
|
|
@@ -187,7 +187,7 @@ spec:
|
|
|
187
187
|
- "-y"
|
|
188
188
|
- "@modelcontextprotocol/server-postgres"
|
|
189
189
|
env:
|
|
190
|
-
DATABASE_URL: "postgresql://user
|
|
190
|
+
DATABASE_URL: "postgresql://user:${POSTGRES_PASSWORD}@localhost:5432/db"
|
|
191
191
|
capabilities:
|
|
192
192
|
tools:
|
|
193
193
|
listChanged: false
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
openapi: 3.1.0
|
|
2
|
+
info:
|
|
3
|
+
title: OSSA Agent Builder API
|
|
4
|
+
version: 0.5.1
|
|
5
|
+
description: |
|
|
6
|
+
Canonical builder API for creating and deploying OSSA agents.
|
|
7
|
+
Owned by ossa-studio (studio.blueflyagents.com) per OWNERSHIP.md.
|
|
8
|
+
Triggers ossa-deploy pipeline for build/score/publish lifecycle.
|
|
9
|
+
contact:
|
|
10
|
+
name: BlueFly.io
|
|
11
|
+
url: https://bluefly.io
|
|
12
|
+
license:
|
|
13
|
+
name: MIT
|
|
14
|
+
servers:
|
|
15
|
+
- url: http://localhost:3000
|
|
16
|
+
description: Local development
|
|
17
|
+
- url: https://studio.blueflyagents.com
|
|
18
|
+
description: Production (moved from agents.blueflyagents.com/wizard)
|
|
19
|
+
|
|
20
|
+
paths:
|
|
21
|
+
/api/agent-builder/generate:
|
|
22
|
+
post:
|
|
23
|
+
summary: Generate an OSSA agent manifest
|
|
24
|
+
operationId: generateAgent
|
|
25
|
+
requestBody:
|
|
26
|
+
required: true
|
|
27
|
+
content:
|
|
28
|
+
application/json:
|
|
29
|
+
schema:
|
|
30
|
+
$ref: '#/components/schemas/AgentBuilderRequest'
|
|
31
|
+
responses:
|
|
32
|
+
'200':
|
|
33
|
+
description: Manifest generated successfully
|
|
34
|
+
content:
|
|
35
|
+
application/json:
|
|
36
|
+
schema:
|
|
37
|
+
$ref: '#/components/schemas/AgentBuilderResult'
|
|
38
|
+
'400':
|
|
39
|
+
description: Invalid request — version gate rejects manifests < ossa/v0.5.0
|
|
40
|
+
'500':
|
|
41
|
+
description: Build pipeline error
|
|
42
|
+
|
|
43
|
+
/api/agent-builder/deploy:
|
|
44
|
+
post:
|
|
45
|
+
summary: Deploy agent via ossa-deploy pipeline
|
|
46
|
+
operationId: deployAgent
|
|
47
|
+
requestBody:
|
|
48
|
+
required: true
|
|
49
|
+
content:
|
|
50
|
+
application/json:
|
|
51
|
+
schema:
|
|
52
|
+
$ref: '#/components/schemas/DeployRequest'
|
|
53
|
+
responses:
|
|
54
|
+
'202':
|
|
55
|
+
description: Deploy queued
|
|
56
|
+
content:
|
|
57
|
+
application/json:
|
|
58
|
+
schema:
|
|
59
|
+
$ref: '#/components/schemas/DeployResult'
|
|
60
|
+
'400':
|
|
61
|
+
description: Invalid manifest or version
|
|
62
|
+
'503':
|
|
63
|
+
description: ossa-deploy unavailable
|
|
64
|
+
|
|
65
|
+
/api/agent-builder/memory:
|
|
66
|
+
post:
|
|
67
|
+
summary: Configure memory tier for an agent
|
|
68
|
+
operationId: configureMemory
|
|
69
|
+
requestBody:
|
|
70
|
+
required: true
|
|
71
|
+
content:
|
|
72
|
+
application/json:
|
|
73
|
+
schema:
|
|
74
|
+
$ref: '#/components/schemas/MemoryConfig'
|
|
75
|
+
responses:
|
|
76
|
+
'200':
|
|
77
|
+
description: Memory configured
|
|
78
|
+
'400':
|
|
79
|
+
description: Invalid memory config
|
|
80
|
+
|
|
81
|
+
/api/agent-builder/options:
|
|
82
|
+
get:
|
|
83
|
+
summary: Get all available builder options
|
|
84
|
+
operationId: getBuilderOptions
|
|
85
|
+
responses:
|
|
86
|
+
'200':
|
|
87
|
+
description: Available options
|
|
88
|
+
content:
|
|
89
|
+
application/json:
|
|
90
|
+
schema:
|
|
91
|
+
$ref: '#/components/schemas/BuilderOptions'
|
|
92
|
+
|
|
93
|
+
components:
|
|
94
|
+
schemas:
|
|
95
|
+
AgentBuilderRequest:
|
|
96
|
+
type: object
|
|
97
|
+
required: [kind, apiVersion, metadata]
|
|
98
|
+
properties:
|
|
99
|
+
kind:
|
|
100
|
+
type: string
|
|
101
|
+
enum: [Agent, Task, Workflow]
|
|
102
|
+
apiVersion:
|
|
103
|
+
type: string
|
|
104
|
+
description: Must be ossa/v0.5.0 or later; older versions are rejected
|
|
105
|
+
example: ossa/v0.5.0
|
|
106
|
+
metadata:
|
|
107
|
+
type: object
|
|
108
|
+
properties:
|
|
109
|
+
name:
|
|
110
|
+
type: string
|
|
111
|
+
displayName:
|
|
112
|
+
type: string
|
|
113
|
+
description:
|
|
114
|
+
type: string
|
|
115
|
+
spec:
|
|
116
|
+
type: object
|
|
117
|
+
|
|
118
|
+
AgentBuilderResult:
|
|
119
|
+
type: object
|
|
120
|
+
properties:
|
|
121
|
+
manifestYaml:
|
|
122
|
+
type: string
|
|
123
|
+
agentName:
|
|
124
|
+
type: string
|
|
125
|
+
apiVersion:
|
|
126
|
+
type: string
|
|
127
|
+
example: ossa/v0.5.0
|
|
128
|
+
steps:
|
|
129
|
+
type: array
|
|
130
|
+
items:
|
|
131
|
+
type: object
|
|
132
|
+
properties:
|
|
133
|
+
step:
|
|
134
|
+
type: string
|
|
135
|
+
stdout:
|
|
136
|
+
type: string
|
|
137
|
+
exitCode:
|
|
138
|
+
type: integer
|
|
139
|
+
|
|
140
|
+
DeployRequest:
|
|
141
|
+
type: object
|
|
142
|
+
required: [manifestPath, sourceRepo]
|
|
143
|
+
properties:
|
|
144
|
+
manifestPath:
|
|
145
|
+
type: string
|
|
146
|
+
description: Path to manifest within the source repo
|
|
147
|
+
sourceRepo:
|
|
148
|
+
type: string
|
|
149
|
+
sourceRef:
|
|
150
|
+
type: string
|
|
151
|
+
default: main
|
|
152
|
+
requestedBy:
|
|
153
|
+
type: string
|
|
154
|
+
options:
|
|
155
|
+
type: object
|
|
156
|
+
properties:
|
|
157
|
+
score:
|
|
158
|
+
type: boolean
|
|
159
|
+
default: true
|
|
160
|
+
publish:
|
|
161
|
+
type: boolean
|
|
162
|
+
default: true
|
|
163
|
+
openMr:
|
|
164
|
+
type: boolean
|
|
165
|
+
default: true
|
|
166
|
+
|
|
167
|
+
DeployResult:
|
|
168
|
+
type: object
|
|
169
|
+
properties:
|
|
170
|
+
jobId:
|
|
171
|
+
type: string
|
|
172
|
+
format: uuid
|
|
173
|
+
status:
|
|
174
|
+
type: string
|
|
175
|
+
enum: [queued, running, complete, failed]
|
|
176
|
+
score:
|
|
177
|
+
type: number
|
|
178
|
+
artifactUrl:
|
|
179
|
+
type: string
|
|
180
|
+
format: uri
|
|
181
|
+
mrUrl:
|
|
182
|
+
type: string
|
|
183
|
+
format: uri
|
|
184
|
+
duadpDid:
|
|
185
|
+
type: string
|
|
186
|
+
nullable: true
|
|
187
|
+
errors:
|
|
188
|
+
type: array
|
|
189
|
+
items:
|
|
190
|
+
type: string
|
|
191
|
+
pipelineUrl:
|
|
192
|
+
type: string
|
|
193
|
+
format: uri
|
|
194
|
+
|
|
195
|
+
MemoryConfig:
|
|
196
|
+
type: object
|
|
197
|
+
required: [agentName, tier]
|
|
198
|
+
properties:
|
|
199
|
+
agentName:
|
|
200
|
+
type: string
|
|
201
|
+
tier:
|
|
202
|
+
type: string
|
|
203
|
+
enum: [global, domain, agent]
|
|
204
|
+
collection:
|
|
205
|
+
type: string
|
|
206
|
+
description: 'Naming: global.<collection>, <domain>.<collection>, <domain>.<agent>.<collection>'
|
|
207
|
+
|
|
208
|
+
BuilderOptions:
|
|
209
|
+
type: object
|
|
210
|
+
properties:
|
|
211
|
+
apiVersions:
|
|
212
|
+
type: array
|
|
213
|
+
items:
|
|
214
|
+
type: string
|
|
215
|
+
example: ['ossa/v0.5.0', 'ossa/v0.5.1']
|
|
216
|
+
kinds:
|
|
217
|
+
type: array
|
|
218
|
+
items:
|
|
219
|
+
type: string
|
|
220
|
+
example: [Agent, Task, Workflow]
|
|
221
|
+
platforms:
|
|
222
|
+
type: array
|
|
223
|
+
items:
|
|
224
|
+
type: string
|
|
225
|
+
example: [docker, kubernetes, serverless]
|
|
226
|
+
memoryTiers:
|
|
227
|
+
type: array
|
|
228
|
+
items:
|
|
229
|
+
type: string
|
|
230
|
+
example: [global, domain, agent]
|
|
@@ -25,11 +25,12 @@
|
|
|
25
25
|
"type": "string",
|
|
26
26
|
"enum": [
|
|
27
27
|
"Agent",
|
|
28
|
+
"Role",
|
|
28
29
|
"Task",
|
|
29
30
|
"Workflow",
|
|
30
31
|
"Flow"
|
|
31
32
|
],
|
|
32
|
-
"description": "Resource type: Agent (agentic loops), Task (deterministic steps), Workflow (composition), or Flow (streaming)"
|
|
33
|
+
"description": "Resource type: Agent (agentic loops), Role (IDE operator overlay), Task (deterministic steps), Workflow (composition), or Flow (streaming)"
|
|
33
34
|
},
|
|
34
35
|
"metadata": {
|
|
35
36
|
"$ref": "#/definitions/Metadata"
|
|
@@ -1380,7 +1381,7 @@
|
|
|
1380
1381
|
},
|
|
1381
1382
|
"Cognition": {
|
|
1382
1383
|
"type": "object",
|
|
1383
|
-
"description": "Reasoning pattern, thought trace configuration, and
|
|
1384
|
+
"description": "Reasoning pattern, thought trace configuration, governance, session capabilities, hypothesis behavior, and alignment gates for auditable agent cognition (v0.5.0 draft). First-class spec-level primitive for NIST/FedRAMP alignment.",
|
|
1384
1385
|
"properties": {
|
|
1385
1386
|
"pattern": {
|
|
1386
1387
|
"type": "string",
|
|
@@ -1424,6 +1425,37 @@
|
|
|
1424
1425
|
"audit_required": { "type": "boolean", "default": false }
|
|
1425
1426
|
},
|
|
1426
1427
|
"additionalProperties": false
|
|
1428
|
+
},
|
|
1429
|
+
"session": {
|
|
1430
|
+
"type": "object",
|
|
1431
|
+
"description": "Session capabilities for collaborative multi-agent interactions",
|
|
1432
|
+
"properties": {
|
|
1433
|
+
"joinable": { "type": "boolean", "description": "Can this agent join collaborative sessions" },
|
|
1434
|
+
"maxConcurrent": { "type": "integer", "minimum": 1, "default": 1, "description": "Maximum concurrent sessions" },
|
|
1435
|
+
"role": { "type": "string", "enum": ["leader", "contributor", "observer"], "default": "contributor" },
|
|
1436
|
+
"conflictBehavior": { "type": "string", "enum": ["pause", "yield", "escalate"], "default": "pause" }
|
|
1437
|
+
},
|
|
1438
|
+
"additionalProperties": false
|
|
1439
|
+
},
|
|
1440
|
+
"hypothesis": {
|
|
1441
|
+
"type": "object",
|
|
1442
|
+
"description": "Hypothesis declaration behavior for transparent agent reasoning",
|
|
1443
|
+
"properties": {
|
|
1444
|
+
"declaresIntent": { "type": "boolean", "default": true, "description": "Whether the agent declares its intent before acting" },
|
|
1445
|
+
"confidenceThreshold": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.7, "description": "Minimum confidence to proceed without review" },
|
|
1446
|
+
"requiresAlignment": { "type": "boolean", "default": false, "description": "Must pass alignment gate before executing" }
|
|
1447
|
+
},
|
|
1448
|
+
"additionalProperties": false
|
|
1449
|
+
},
|
|
1450
|
+
"alignmentGate": {
|
|
1451
|
+
"type": "object",
|
|
1452
|
+
"description": "Alignment gate configuration for hypothesis validation before execution",
|
|
1453
|
+
"properties": {
|
|
1454
|
+
"enabled": { "type": "boolean", "default": false },
|
|
1455
|
+
"arbiter": { "type": "string", "enum": ["human", "compliance-engine", "consensus"], "default": "human" },
|
|
1456
|
+
"timeout": { "type": "string", "default": "5m", "pattern": "^\\d+[smhd]$", "description": "Max wait time for alignment decision" }
|
|
1457
|
+
},
|
|
1458
|
+
"additionalProperties": false
|
|
1427
1459
|
}
|
|
1428
1460
|
},
|
|
1429
1461
|
"additionalProperties": false
|