@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,120 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://openstandardagents.org/schemas/v0.5.0/replay-packet.schema.json",
|
|
4
|
+
"title": "OSSA v0.5.0 Replay Packet Schema",
|
|
5
|
+
"description": "ReplayPacket is a portable execution artifact for audit, governance, and benchmarking. It enables high-fidelity reproduction of agent reasoning.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"apiVersion",
|
|
9
|
+
"kind",
|
|
10
|
+
"metadata",
|
|
11
|
+
"spec"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"apiVersion": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"pattern": "^ossa/v0\\.5.*$"
|
|
17
|
+
},
|
|
18
|
+
"kind": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"const": "ReplayPacket"
|
|
21
|
+
},
|
|
22
|
+
"metadata": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"required": [
|
|
25
|
+
"name"
|
|
26
|
+
],
|
|
27
|
+
"properties": {
|
|
28
|
+
"name": {
|
|
29
|
+
"type": "string"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"spec": {
|
|
34
|
+
"type": "object",
|
|
35
|
+
"required": [
|
|
36
|
+
"execution_id",
|
|
37
|
+
"events"
|
|
38
|
+
],
|
|
39
|
+
"properties": {
|
|
40
|
+
"execution_id": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"format": "uuid"
|
|
43
|
+
},
|
|
44
|
+
"profile_id": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"description": "The ExecutionProfile used during this execution."
|
|
47
|
+
},
|
|
48
|
+
"events": {
|
|
49
|
+
"type": "array",
|
|
50
|
+
"items": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"required": [
|
|
53
|
+
"timestamp",
|
|
54
|
+
"type"
|
|
55
|
+
],
|
|
56
|
+
"properties": {
|
|
57
|
+
"timestamp": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"format": "date-time"
|
|
60
|
+
},
|
|
61
|
+
"type": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"enum": [
|
|
64
|
+
"input",
|
|
65
|
+
"output",
|
|
66
|
+
"tool_call",
|
|
67
|
+
"tool_result",
|
|
68
|
+
"state_change",
|
|
69
|
+
"metric",
|
|
70
|
+
"human_intervention"
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
"data": {
|
|
74
|
+
"type": "object"
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"metrics": {
|
|
80
|
+
"type": "object",
|
|
81
|
+
"properties": {
|
|
82
|
+
"duration_ms": {
|
|
83
|
+
"type": "integer"
|
|
84
|
+
},
|
|
85
|
+
"input_tokens": {
|
|
86
|
+
"type": "integer"
|
|
87
|
+
},
|
|
88
|
+
"output_tokens": {
|
|
89
|
+
"type": "integer"
|
|
90
|
+
},
|
|
91
|
+
"total_cost_usd": {
|
|
92
|
+
"type": "number"
|
|
93
|
+
},
|
|
94
|
+
"efficiency_score": {
|
|
95
|
+
"type": "number",
|
|
96
|
+
"minimum": 0,
|
|
97
|
+
"maximum": 1
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"provenance": {
|
|
102
|
+
"type": "object",
|
|
103
|
+
"properties": {
|
|
104
|
+
"signer": {
|
|
105
|
+
"type": "string",
|
|
106
|
+
"description": "DID or Public Key of the signing entity."
|
|
107
|
+
},
|
|
108
|
+
"signature": {
|
|
109
|
+
"type": "string"
|
|
110
|
+
},
|
|
111
|
+
"hash": {
|
|
112
|
+
"type": "string",
|
|
113
|
+
"description": "Content-addressable hash of the packet."
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# OSSA Memory Hierarchy Contracts v0.5.0
|
|
2
|
+
# ============================================================================
|
|
3
|
+
# Document: memory tier conventions, directory structure, naming contracts.
|
|
4
|
+
# These are contracts only — HierarchicalMemoryResolver implementation deferred
|
|
5
|
+
# to P7 (agent-brain service, brain.bluefly.internal:6333).
|
|
6
|
+
# ============================================================================
|
|
7
|
+
#
|
|
8
|
+
# Per COMPLETION_REPORT_AGENT_BUILDER.md Phase 5 (contracts-only). Resolver
|
|
9
|
+
# deferred — implement ONLY after P1–P4 are green and passing CI.
|
|
10
|
+
|
|
11
|
+
memory_hierarchy:
|
|
12
|
+
apiVersion: "ossa/v0.5.0"
|
|
13
|
+
kind: MemoryContracts
|
|
14
|
+
description: |
|
|
15
|
+
Three-tier memory system for OSSA agents. Each tier is isolated by scope:
|
|
16
|
+
global (platform-wide shared state), domain (capability-scoped working
|
|
17
|
+
memory), and agent (per-agent private context). Tiers merge at runtime
|
|
18
|
+
via the HierarchicalMemoryResolver — lower tiers cannot overwrite higher.
|
|
19
|
+
|
|
20
|
+
tiers:
|
|
21
|
+
global:
|
|
22
|
+
description: "Platform-wide shared memory. Read by all agents. Written only by operators."
|
|
23
|
+
directory: ".agents-workspace/memory/"
|
|
24
|
+
naming_scheme: "global.<collection>"
|
|
25
|
+
examples:
|
|
26
|
+
- "global.policies"
|
|
27
|
+
- "global.cedar-rules"
|
|
28
|
+
- "global.compliance-baseline"
|
|
29
|
+
gitignore_rules:
|
|
30
|
+
- ".agents-workspace/memory/*.db"
|
|
31
|
+
- ".agents-workspace/memory/*.sqlite"
|
|
32
|
+
- ".agents-workspace/memory/.cache/"
|
|
33
|
+
commit_rule: "Schemas and seed data MUST be committed. Cache and runtime state MUST NOT."
|
|
34
|
+
|
|
35
|
+
domain:
|
|
36
|
+
description: "Capability-scoped working memory. Shared within a domain (e.g. gitlab, drupal, security)."
|
|
37
|
+
directory: ".agents/workspace/memory/"
|
|
38
|
+
naming_scheme: "<domain>.<collection>"
|
|
39
|
+
examples:
|
|
40
|
+
- "gitlab.mr-context"
|
|
41
|
+
- "drupal.module-catalog"
|
|
42
|
+
- "security.vuln-signatures"
|
|
43
|
+
gitignore_rules:
|
|
44
|
+
- ".agents/workspace/memory/*.db"
|
|
45
|
+
- ".agents/workspace/memory/*.sqlite"
|
|
46
|
+
- ".agents/workspace/memory/.cache/"
|
|
47
|
+
commit_rule: "Domain-scoped seed data committed. Runtime embeddings excluded."
|
|
48
|
+
|
|
49
|
+
agent:
|
|
50
|
+
description: "Per-agent private context. Not shared across agents. Scoped to agent lifecycle."
|
|
51
|
+
directory: ".agents/agents/<agent-name>/memory/"
|
|
52
|
+
naming_scheme: "<domain>.<agent>.<collection>"
|
|
53
|
+
examples:
|
|
54
|
+
- "gitlab.mr-reviewer.recent-reviews"
|
|
55
|
+
- "drupal.module-generator.scaffold-history"
|
|
56
|
+
- "security.scanner.false-positive-index"
|
|
57
|
+
gitignore_rules:
|
|
58
|
+
- ".agents/agents/*/memory/*.db"
|
|
59
|
+
- ".agents/agents/*/memory/*.sqlite"
|
|
60
|
+
- ".agents/agents/*/memory/.cache/"
|
|
61
|
+
- ".agents/agents/*/memory/embeddings/"
|
|
62
|
+
commit_rule: "Only seed data committed. All runtime state excluded."
|
|
63
|
+
|
|
64
|
+
# =============================================================================
|
|
65
|
+
# Canonical .gitignore block — copy into consuming repos
|
|
66
|
+
# =============================================================================
|
|
67
|
+
gitignore_block: |
|
|
68
|
+
# OSSA Memory Hierarchy — runtime state excluded, schemas committed
|
|
69
|
+
.agents-workspace/memory/*.db
|
|
70
|
+
.agents-workspace/memory/*.sqlite
|
|
71
|
+
.agents-workspace/memory/.cache/
|
|
72
|
+
.agents/workspace/memory/*.db
|
|
73
|
+
.agents/workspace/memory/*.sqlite
|
|
74
|
+
.agents/workspace/memory/.cache/
|
|
75
|
+
.agents/agents/*/memory/*.db
|
|
76
|
+
.agents/agents/*/memory/*.sqlite
|
|
77
|
+
.agents/agents/*/memory/.cache/
|
|
78
|
+
.agents/agents/*/memory/embeddings/
|
|
79
|
+
|
|
80
|
+
# =============================================================================
|
|
81
|
+
# Resolver contract (deferred P7 implementation in agent-brain)
|
|
82
|
+
# =============================================================================
|
|
83
|
+
resolver:
|
|
84
|
+
service: "agent-brain"
|
|
85
|
+
endpoint: "http://brain.bluefly.internal:6333"
|
|
86
|
+
protocol: "REST"
|
|
87
|
+
merge_order:
|
|
88
|
+
- "global" # lowest precedence (base layer)
|
|
89
|
+
- "domain" # mid layer
|
|
90
|
+
- "agent" # highest precedence (wins on conflict)
|
|
91
|
+
implementation: "DEFERRED — implement after P1-P4 green"
|
|
92
|
+
interface:
|
|
93
|
+
resolve:
|
|
94
|
+
method: "GET"
|
|
95
|
+
path: "/api/v1/memory/{collection}"
|
|
96
|
+
description: "Merge tiers and return resolved context for a named collection."
|
|
97
|
+
index:
|
|
98
|
+
method: "POST"
|
|
99
|
+
path: "/api/v1/memory/{tier}/{collection}/index"
|
|
100
|
+
description: "Vector-index a memory collection for semantic retrieval."
|
|
101
|
+
promote:
|
|
102
|
+
method: "POST"
|
|
103
|
+
path: "/api/v1/memory/{collection}/promote"
|
|
104
|
+
description: "Promote agent memory to domain tier (requires operator approval)."
|
|
105
|
+
|
|
106
|
+
# =============================================================================
|
|
107
|
+
# ossa scaffold extension — directory scaffold
|
|
108
|
+
# =============================================================================
|
|
109
|
+
scaffold:
|
|
110
|
+
description: |
|
|
111
|
+
`ossa scaffold` MUST emit memory/ directories when generating a new agent workspace.
|
|
112
|
+
Add to ossa scaffold templates when implementing CLI extension (P5 CLI work).
|
|
113
|
+
directories:
|
|
114
|
+
- ".agents-workspace/memory/"
|
|
115
|
+
- ".agents/workspace/memory/"
|
|
116
|
+
# Per-agent dirs created by ossa scaffold --agent <name>:
|
|
117
|
+
# .agents/agents/<name>/memory/
|
|
118
|
+
seed_files:
|
|
119
|
+
global_readme: ".agents-workspace/memory/README.md"
|
|
120
|
+
domain_readme: ".agents/workspace/memory/README.md"
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://openstandardagents.org/schemas/v0.5/role.schema.json",
|
|
4
|
+
"title": "OSSA v0.5 Role Manifest Schema",
|
|
5
|
+
"description": "Open Standard for Software Agents (OSSA) v0.5 - Role manifest. Defines behavioral overlays for IDE/CLI agents (Claude Code, Cursor, etc.) with instructions, tool sets, hooks, MCP connections, and activation conditions.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["apiVersion", "kind", "metadata", "spec"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"apiVersion": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"pattern": "^ossa/v[0-9]+(\\.[0-9]+)*(-[a-zA-Z0-9.]+)?$",
|
|
12
|
+
"description": "OSSA API version",
|
|
13
|
+
"examples": ["ossa/v0.5", "ossa/v1"]
|
|
14
|
+
},
|
|
15
|
+
"kind": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"const": "Role",
|
|
18
|
+
"description": "Resource type — must be Role"
|
|
19
|
+
},
|
|
20
|
+
"metadata": {
|
|
21
|
+
"$ref": "#/definitions/RoleMetadata"
|
|
22
|
+
},
|
|
23
|
+
"spec": {
|
|
24
|
+
"$ref": "#/definitions/RoleSpec"
|
|
25
|
+
},
|
|
26
|
+
"extensions": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"description": "Platform-specific extensions",
|
|
29
|
+
"additionalProperties": true
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"definitions": {
|
|
33
|
+
"RoleMetadata": {
|
|
34
|
+
"type": "object",
|
|
35
|
+
"required": ["name"],
|
|
36
|
+
"properties": {
|
|
37
|
+
"name": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
40
|
+
"description": "DNS-style role name (lowercase, hyphens)",
|
|
41
|
+
"examples": ["drupal-developer", "security-auditor", "platform-operator"]
|
|
42
|
+
},
|
|
43
|
+
"version": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(-[a-zA-Z0-9.]+)?$",
|
|
46
|
+
"description": "Semantic version",
|
|
47
|
+
"examples": ["1.0.0", "2.1.0-beta"]
|
|
48
|
+
},
|
|
49
|
+
"description": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"description": "Human-readable description"
|
|
52
|
+
},
|
|
53
|
+
"labels": {
|
|
54
|
+
"type": "object",
|
|
55
|
+
"additionalProperties": { "type": "string" },
|
|
56
|
+
"description": "Key-value labels for filtering and categorization"
|
|
57
|
+
},
|
|
58
|
+
"annotations": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"additionalProperties": { "type": "string" },
|
|
61
|
+
"description": "Non-identifying metadata"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"RoleSpec": {
|
|
66
|
+
"type": "object",
|
|
67
|
+
"properties": {
|
|
68
|
+
"role": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"description": "System prompt / persona definition"
|
|
71
|
+
},
|
|
72
|
+
"instructions": {
|
|
73
|
+
"$ref": "#/definitions/RoleInstructions"
|
|
74
|
+
},
|
|
75
|
+
"tools": {
|
|
76
|
+
"$ref": "#/definitions/RoleTools"
|
|
77
|
+
},
|
|
78
|
+
"hooks": {
|
|
79
|
+
"$ref": "#/definitions/RoleHooks"
|
|
80
|
+
},
|
|
81
|
+
"context": {
|
|
82
|
+
"$ref": "#/definitions/RoleContext"
|
|
83
|
+
},
|
|
84
|
+
"protocols": {
|
|
85
|
+
"$ref": "#/definitions/RoleProtocols"
|
|
86
|
+
},
|
|
87
|
+
"extends": {
|
|
88
|
+
"type": "array",
|
|
89
|
+
"items": { "$ref": "#/definitions/RoleExtension" },
|
|
90
|
+
"description": "Role composition — inherit from other roles"
|
|
91
|
+
},
|
|
92
|
+
"activation": {
|
|
93
|
+
"$ref": "#/definitions/RoleActivation"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"RoleInstructions": {
|
|
98
|
+
"type": "object",
|
|
99
|
+
"properties": {
|
|
100
|
+
"preamble": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"description": "Markdown content prepended to every conversation"
|
|
103
|
+
},
|
|
104
|
+
"constraints": {
|
|
105
|
+
"type": "array",
|
|
106
|
+
"items": { "type": "string" },
|
|
107
|
+
"description": "Hard rules — MUST/MUST NOT statements"
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"RoleTools": {
|
|
112
|
+
"type": "object",
|
|
113
|
+
"properties": {
|
|
114
|
+
"allowed": {
|
|
115
|
+
"type": "array",
|
|
116
|
+
"items": { "type": "string" },
|
|
117
|
+
"description": "Whitelist of allowed tool names"
|
|
118
|
+
},
|
|
119
|
+
"denied": {
|
|
120
|
+
"type": "array",
|
|
121
|
+
"items": { "type": "string" },
|
|
122
|
+
"description": "Blacklist of denied tool names (overrides allowed)"
|
|
123
|
+
},
|
|
124
|
+
"skills": {
|
|
125
|
+
"type": "array",
|
|
126
|
+
"items": { "type": "string" },
|
|
127
|
+
"description": "References to OSSA Skill manifests"
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"RoleHooks": {
|
|
132
|
+
"type": "object",
|
|
133
|
+
"properties": {
|
|
134
|
+
"on_activate": {
|
|
135
|
+
"type": "string",
|
|
136
|
+
"description": "Run when role is activated"
|
|
137
|
+
},
|
|
138
|
+
"on_deactivate": {
|
|
139
|
+
"type": "string",
|
|
140
|
+
"description": "Run when switching away from this role"
|
|
141
|
+
},
|
|
142
|
+
"pre_commit": {
|
|
143
|
+
"type": "string",
|
|
144
|
+
"description": "Run before git commits"
|
|
145
|
+
},
|
|
146
|
+
"post_save": {
|
|
147
|
+
"type": "string",
|
|
148
|
+
"description": "Run after file saves"
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
"RoleContext": {
|
|
153
|
+
"type": "object",
|
|
154
|
+
"properties": {
|
|
155
|
+
"schemas": {
|
|
156
|
+
"type": "array",
|
|
157
|
+
"items": { "type": "string" },
|
|
158
|
+
"description": "Paths to JSON Schema or OpenAPI spec files"
|
|
159
|
+
},
|
|
160
|
+
"files": {
|
|
161
|
+
"type": "array",
|
|
162
|
+
"items": { "$ref": "#/definitions/RoleContextFile" },
|
|
163
|
+
"description": "Files to include in agent context"
|
|
164
|
+
},
|
|
165
|
+
"knowledge": {
|
|
166
|
+
"type": "array",
|
|
167
|
+
"items": { "type": "string" },
|
|
168
|
+
"description": "Paths to knowledge base documents"
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"RoleContextFile": {
|
|
173
|
+
"type": "object",
|
|
174
|
+
"required": ["path"],
|
|
175
|
+
"properties": {
|
|
176
|
+
"path": {
|
|
177
|
+
"type": "string",
|
|
178
|
+
"description": "File path or glob pattern"
|
|
179
|
+
},
|
|
180
|
+
"description": {
|
|
181
|
+
"type": "string",
|
|
182
|
+
"description": "Description of what this file provides"
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
"RoleProtocols": {
|
|
187
|
+
"type": "object",
|
|
188
|
+
"properties": {
|
|
189
|
+
"mcp": {
|
|
190
|
+
"$ref": "#/definitions/RoleMCPConfig"
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"RoleMCPConfig": {
|
|
195
|
+
"type": "object",
|
|
196
|
+
"properties": {
|
|
197
|
+
"servers": {
|
|
198
|
+
"type": "array",
|
|
199
|
+
"items": { "$ref": "#/definitions/RoleMCPServer" },
|
|
200
|
+
"description": "MCP servers available when this role is active"
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
"RoleMCPServer": {
|
|
205
|
+
"type": "object",
|
|
206
|
+
"required": ["name", "transport"],
|
|
207
|
+
"properties": {
|
|
208
|
+
"name": {
|
|
209
|
+
"type": "string",
|
|
210
|
+
"description": "Server identifier"
|
|
211
|
+
},
|
|
212
|
+
"transport": {
|
|
213
|
+
"type": "string",
|
|
214
|
+
"enum": ["stdio", "sse"],
|
|
215
|
+
"description": "Transport type"
|
|
216
|
+
},
|
|
217
|
+
"command": {
|
|
218
|
+
"type": "string",
|
|
219
|
+
"description": "Command to spawn (stdio transport)"
|
|
220
|
+
},
|
|
221
|
+
"args": {
|
|
222
|
+
"type": "array",
|
|
223
|
+
"items": { "type": "string" },
|
|
224
|
+
"description": "Command arguments (stdio transport)"
|
|
225
|
+
},
|
|
226
|
+
"url": {
|
|
227
|
+
"type": "string",
|
|
228
|
+
"format": "uri",
|
|
229
|
+
"description": "Endpoint URL (SSE transport)"
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
"RoleExtension": {
|
|
234
|
+
"type": "object",
|
|
235
|
+
"required": ["role"],
|
|
236
|
+
"properties": {
|
|
237
|
+
"role": {
|
|
238
|
+
"type": "string",
|
|
239
|
+
"description": "Name of the parent role to inherit from"
|
|
240
|
+
},
|
|
241
|
+
"override": {
|
|
242
|
+
"type": "boolean",
|
|
243
|
+
"default": false,
|
|
244
|
+
"description": "If true, child fields replace parent fields; if false, they merge"
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
},
|
|
248
|
+
"RoleActivation": {
|
|
249
|
+
"type": "object",
|
|
250
|
+
"properties": {
|
|
251
|
+
"file_patterns": {
|
|
252
|
+
"type": "array",
|
|
253
|
+
"items": { "type": "string" },
|
|
254
|
+
"description": "Glob patterns — activate when matching files are open"
|
|
255
|
+
},
|
|
256
|
+
"command": {
|
|
257
|
+
"type": "string",
|
|
258
|
+
"description": "CLI command to activate (e.g., /role drupal)"
|
|
259
|
+
},
|
|
260
|
+
"env": {
|
|
261
|
+
"type": "object",
|
|
262
|
+
"additionalProperties": { "type": "string" },
|
|
263
|
+
"description": "Environment variable conditions (all must match)"
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|