@bluefly/openstandardagents 0.5.0 → 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 +43 -12
- package/README.md +31 -26
- package/bin/postinstall +0 -0
- 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/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/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/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/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 +20 -4
- 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/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/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/layer4-economics/duadp-examples.json +44 -0
- package/dist/spec/v0.4/agent.schema.json +14 -0
- package/dist/spec/v0.5/agent-builder-openapi.yaml +230 -0
- package/dist/spec/v0.5/agent.schema.json +32 -1
- 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/extensions/mcp/README.md +1 -1
- package/dist/spec/v0.5/memory-hierarchy.yaml +120 -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 +53 -7
- package/dist/types/index.js +4 -2
- package/dist/types/personality.zod.d.ts +3 -3
- 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/version-compliance.js +1 -1
- package/examples/agentscope/react-assistant/README.md +1 -1
- package/examples/agentscope/react-assistant/agent.ossa.yaml +1 -1
- 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/getting-started/01-minimal-agent.ossa.yaml +1 -1
- package/examples/getting-started/02-agent-with-tools.ossa.yaml +1 -1
- package/examples/getting-started/03-agent-with-safety.ossa.yaml +1 -1
- package/examples/getting-started/04-agent-with-messaging.ossa.yaml +1 -1
- package/examples/getting-started/05-workflow-composition.ossa.yaml +1 -1
- package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
- package/examples/reference-implementations/python-client/examples/basic_usage.py +0 -0
- package/examples/reference-implementations/python-client/examples/publish_agent.py +0 -0
- package/openapi/agent-cognition-sessions.yaml +580 -0
- package/openapi/agent-crud.yaml +20 -20
- package/openapi/core/ossa-registry-api.openapi.yaml +1 -1
- package/openapi/ossa-cli-enhancements.openapi.yaml +1 -1
- package/openapi/release-automation.openapi.yaml +1 -1
- package/openapi/schemas/common/economics.yaml +98 -0
- package/openapi/uadp-asyncapi.yaml +1 -1
- package/openapi/uadp-openapi.yaml +2 -2
- package/package.json +114 -96
- package/spec/extensions/cognition.schema.json +87 -0
- package/spec/layer4-economics/duadp-examples.json +44 -0
- package/spec/v0.4/agent.schema.json +14 -0
- package/spec/v0.5/agent-builder-openapi.yaml +230 -0
- package/spec/v0.5/agent.schema.json +32 -1
- 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/extensions/mcp/README.md +1 -1
- package/spec/v0.5/memory-hierarchy.yaml +120 -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 -566
- 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,148 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://openstandardagents.org/schemas/v0.5.0/execution-profile.schema.json",
|
|
4
|
+
"title": "OSSA v0.5.0 Execution Profile Schema",
|
|
5
|
+
"description": "ExecutionProfile defines the runtime economic and performance policy for an agent execution. It abstracts model selection into intent-based profiles.",
|
|
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": "ExecutionProfile"
|
|
21
|
+
},
|
|
22
|
+
"metadata": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"required": [
|
|
25
|
+
"name"
|
|
26
|
+
],
|
|
27
|
+
"properties": {
|
|
28
|
+
"name": {
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"namespace": {
|
|
32
|
+
"type": "string"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"spec": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"required": [
|
|
39
|
+
"profile_type"
|
|
40
|
+
],
|
|
41
|
+
"properties": {
|
|
42
|
+
"profile_type": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"enum": [
|
|
45
|
+
"micro-audit",
|
|
46
|
+
"fast-route",
|
|
47
|
+
"balanced-work",
|
|
48
|
+
"deep-reason",
|
|
49
|
+
"long-context",
|
|
50
|
+
"strict-structured",
|
|
51
|
+
"human-gated"
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
"economics": {
|
|
55
|
+
"type": "object",
|
|
56
|
+
"properties": {
|
|
57
|
+
"cost_ceiling_usd": {
|
|
58
|
+
"type": "number",
|
|
59
|
+
"minimum": 0
|
|
60
|
+
},
|
|
61
|
+
"context_budget_tokens": {
|
|
62
|
+
"type": "integer",
|
|
63
|
+
"minimum": 0
|
|
64
|
+
},
|
|
65
|
+
"compute_budget_units": {
|
|
66
|
+
"type": "integer",
|
|
67
|
+
"minimum": 0
|
|
68
|
+
},
|
|
69
|
+
"token_sovereignty": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"enum": [
|
|
72
|
+
"provider-managed",
|
|
73
|
+
"local-encrypted",
|
|
74
|
+
"ephemeral"
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"performance": {
|
|
80
|
+
"type": "object",
|
|
81
|
+
"properties": {
|
|
82
|
+
"latency_target_ms": {
|
|
83
|
+
"type": "integer",
|
|
84
|
+
"minimum": 0
|
|
85
|
+
},
|
|
86
|
+
"priority": {
|
|
87
|
+
"type": "integer",
|
|
88
|
+
"minimum": 0,
|
|
89
|
+
"maximum": 100
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"reliability": {
|
|
94
|
+
"type": "object",
|
|
95
|
+
"properties": {
|
|
96
|
+
"max_retries": {
|
|
97
|
+
"type": "integer",
|
|
98
|
+
"minimum": 0
|
|
99
|
+
},
|
|
100
|
+
"failure_semantics": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"enum": [
|
|
103
|
+
"fail-fast",
|
|
104
|
+
"graceful-degradation",
|
|
105
|
+
"retry-with-fallback"
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
"escalation_rules": {
|
|
109
|
+
"type": "array",
|
|
110
|
+
"items": {
|
|
111
|
+
"type": "object",
|
|
112
|
+
"properties": {
|
|
113
|
+
"on_failure": {
|
|
114
|
+
"type": "string"
|
|
115
|
+
},
|
|
116
|
+
"action": {
|
|
117
|
+
"type": "string",
|
|
118
|
+
"enum": [
|
|
119
|
+
"retry",
|
|
120
|
+
"fail",
|
|
121
|
+
"escalate-to-human",
|
|
122
|
+
"fallback-profile"
|
|
123
|
+
]
|
|
124
|
+
},
|
|
125
|
+
"fallback_profile_id": {
|
|
126
|
+
"type": "string"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
"audit": {
|
|
134
|
+
"type": "object",
|
|
135
|
+
"properties": {
|
|
136
|
+
"replay_required": {
|
|
137
|
+
"type": "boolean",
|
|
138
|
+
"default": false
|
|
139
|
+
},
|
|
140
|
+
"compression_policy": {
|
|
141
|
+
"type": "string"
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://schema.openstandardagents.org/v0.5.0/extensions/economics/failure-semantics.json",
|
|
4
|
+
"title": "Failure Semantics",
|
|
5
|
+
"description": "Standardized failure classes for agent executions.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"failure_class": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"enum": [
|
|
11
|
+
"context_insufficient",
|
|
12
|
+
"policy_denied",
|
|
13
|
+
"budget_exceeded",
|
|
14
|
+
"capability_unavailable",
|
|
15
|
+
"projection_conflict",
|
|
16
|
+
"state_challenged",
|
|
17
|
+
"confidence_too_low",
|
|
18
|
+
"human_required",
|
|
19
|
+
"provider_degraded"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
"details": {
|
|
23
|
+
"type": "string"
|
|
24
|
+
},
|
|
25
|
+
"recoverable": {
|
|
26
|
+
"type": "boolean"
|
|
27
|
+
},
|
|
28
|
+
"escalation_path": {
|
|
29
|
+
"type": "string"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -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
|
+
}
|
|
@@ -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:pass@localhost:5432/db"
|
|
191
191
|
capabilities:
|
|
192
192
|
tools:
|
|
193
193
|
listChanged: false
|
|
@@ -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,254 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "https://ossa.dev/spec/v1/agent-card.schema.json",
|
|
3
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
|
+
"title": "Agent Card v1.0",
|
|
5
|
+
"description": "Machine-readable agent passport enabling auto-discovery, auth negotiation, capability verification, and A2A protocol compatibility.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"schemaVersion",
|
|
9
|
+
"humanReadableId",
|
|
10
|
+
"agentVersion",
|
|
11
|
+
"name",
|
|
12
|
+
"description",
|
|
13
|
+
"url",
|
|
14
|
+
"capabilities",
|
|
15
|
+
"authSchemes"
|
|
16
|
+
],
|
|
17
|
+
"properties": {
|
|
18
|
+
"schemaVersion": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"const": "1.0",
|
|
21
|
+
"description": "Version of the Agent Card schema."
|
|
22
|
+
},
|
|
23
|
+
"humanReadableId": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"pattern": "^[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$",
|
|
26
|
+
"description": "Unique namespace/agent identifier in 'org/agent-name' format.",
|
|
27
|
+
"examples": ["acme/weather-reporter", "blueflyio/code-review-agent"]
|
|
28
|
+
},
|
|
29
|
+
"agentVersion": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
|
|
32
|
+
"description": "Semantic version (MAJOR.MINOR.PATCH) of the agent software.",
|
|
33
|
+
"examples": ["1.0.0", "2.1.0-beta.1"]
|
|
34
|
+
},
|
|
35
|
+
"name": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"maxLength": 150,
|
|
38
|
+
"description": "Human-readable display name."
|
|
39
|
+
},
|
|
40
|
+
"description": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"maxLength": 2000,
|
|
43
|
+
"description": "Clear description of the agent's purpose and capabilities."
|
|
44
|
+
},
|
|
45
|
+
"url": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"format": "uri",
|
|
48
|
+
"description": "Primary A2A endpoint URL. MUST use HTTPS except for localhost.",
|
|
49
|
+
"examples": ["https://api.my-agent.example.com/a2a"]
|
|
50
|
+
},
|
|
51
|
+
"provider": {
|
|
52
|
+
"$ref": "#/$defs/Provider"
|
|
53
|
+
},
|
|
54
|
+
"capabilities": {
|
|
55
|
+
"$ref": "#/$defs/Capabilities"
|
|
56
|
+
},
|
|
57
|
+
"authSchemes": {
|
|
58
|
+
"type": "array",
|
|
59
|
+
"minItems": 1,
|
|
60
|
+
"description": "Authentication schemes supported. At least one is required.",
|
|
61
|
+
"items": {
|
|
62
|
+
"$ref": "#/$defs/AuthScheme"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"skills": {
|
|
66
|
+
"type": "array",
|
|
67
|
+
"description": "Discrete operations the agent can perform.",
|
|
68
|
+
"items": {
|
|
69
|
+
"$ref": "#/$defs/Skill"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"tags": {
|
|
73
|
+
"type": "array",
|
|
74
|
+
"description": "Searchable discovery keywords.",
|
|
75
|
+
"items": {
|
|
76
|
+
"type": "string"
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"privacyPolicyUrl": {
|
|
80
|
+
"type": "string",
|
|
81
|
+
"format": "uri",
|
|
82
|
+
"description": "URL to the agent's privacy policy."
|
|
83
|
+
},
|
|
84
|
+
"termsOfServiceUrl": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"format": "uri",
|
|
87
|
+
"description": "URL to the agent's terms of service."
|
|
88
|
+
},
|
|
89
|
+
"iconUrl": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"format": "uri",
|
|
92
|
+
"description": "URL to the agent's icon image."
|
|
93
|
+
},
|
|
94
|
+
"lastUpdated": {
|
|
95
|
+
"type": "string",
|
|
96
|
+
"format": "date-time",
|
|
97
|
+
"description": "ISO 8601 timestamp of last modification to this card."
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"additionalProperties": false,
|
|
101
|
+
"$defs": {
|
|
102
|
+
"Provider": {
|
|
103
|
+
"type": "object",
|
|
104
|
+
"required": ["name"],
|
|
105
|
+
"description": "Organization or individual operating this agent.",
|
|
106
|
+
"properties": {
|
|
107
|
+
"name": {
|
|
108
|
+
"type": "string",
|
|
109
|
+
"description": "Display name of the provider."
|
|
110
|
+
},
|
|
111
|
+
"url": {
|
|
112
|
+
"type": "string",
|
|
113
|
+
"format": "uri",
|
|
114
|
+
"description": "Provider's homepage URL."
|
|
115
|
+
},
|
|
116
|
+
"support_contact": {
|
|
117
|
+
"type": "string",
|
|
118
|
+
"description": "Support contact (email, URL, or mailto: URI)."
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"additionalProperties": false
|
|
122
|
+
},
|
|
123
|
+
"Capabilities": {
|
|
124
|
+
"type": "object",
|
|
125
|
+
"required": ["a2aVersion"],
|
|
126
|
+
"description": "Protocol capabilities for this agent.",
|
|
127
|
+
"properties": {
|
|
128
|
+
"a2aVersion": {
|
|
129
|
+
"type": "string",
|
|
130
|
+
"description": "A2A protocol version supported.",
|
|
131
|
+
"examples": ["1.0"]
|
|
132
|
+
},
|
|
133
|
+
"mcpVersion": {
|
|
134
|
+
"type": "string",
|
|
135
|
+
"description": "MCP protocol version supported, if any.",
|
|
136
|
+
"examples": ["0.6"]
|
|
137
|
+
},
|
|
138
|
+
"supportedMessageParts": {
|
|
139
|
+
"type": "array",
|
|
140
|
+
"description": "Message part types this agent can consume/produce.",
|
|
141
|
+
"items": {
|
|
142
|
+
"type": "string",
|
|
143
|
+
"enum": ["text", "file", "data", "image", "audio", "video"]
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"supportsPushNotifications": {
|
|
147
|
+
"type": "boolean",
|
|
148
|
+
"default": false,
|
|
149
|
+
"description": "Whether the agent supports async push notifications."
|
|
150
|
+
},
|
|
151
|
+
"teeDetails": {
|
|
152
|
+
"$ref": "#/$defs/TeeDetails"
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"additionalProperties": false
|
|
156
|
+
},
|
|
157
|
+
"TeeDetails": {
|
|
158
|
+
"type": "object",
|
|
159
|
+
"required": ["type"],
|
|
160
|
+
"description": "Trusted Execution Environment attestation details.",
|
|
161
|
+
"properties": {
|
|
162
|
+
"type": {
|
|
163
|
+
"type": "string",
|
|
164
|
+
"description": "TEE technology type.",
|
|
165
|
+
"examples": ["Intel SGX", "AMD SEV", "AWS Nitro"]
|
|
166
|
+
},
|
|
167
|
+
"attestationEndpoint": {
|
|
168
|
+
"type": "string",
|
|
169
|
+
"format": "uri",
|
|
170
|
+
"description": "URL of the TEE remote attestation endpoint."
|
|
171
|
+
},
|
|
172
|
+
"publicKey": {
|
|
173
|
+
"type": "string",
|
|
174
|
+
"description": "PEM-encoded public key of the enclave."
|
|
175
|
+
},
|
|
176
|
+
"description": {
|
|
177
|
+
"type": "string",
|
|
178
|
+
"description": "Human-readable explanation of what the TEE protects."
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"additionalProperties": false
|
|
182
|
+
},
|
|
183
|
+
"AuthScheme": {
|
|
184
|
+
"type": "object",
|
|
185
|
+
"required": ["scheme"],
|
|
186
|
+
"description": "A single authentication method supported by the agent.",
|
|
187
|
+
"properties": {
|
|
188
|
+
"scheme": {
|
|
189
|
+
"type": "string",
|
|
190
|
+
"enum": ["apiKey", "oauth2", "bearer", "none"],
|
|
191
|
+
"description": "Authentication scheme identifier."
|
|
192
|
+
},
|
|
193
|
+
"description": {
|
|
194
|
+
"type": "string",
|
|
195
|
+
"description": "How to obtain and use credentials for this scheme."
|
|
196
|
+
},
|
|
197
|
+
"tokenUrl": {
|
|
198
|
+
"type": "string",
|
|
199
|
+
"format": "uri",
|
|
200
|
+
"description": "OAuth2 token endpoint. Required when scheme is 'oauth2'."
|
|
201
|
+
},
|
|
202
|
+
"scopes": {
|
|
203
|
+
"type": "array",
|
|
204
|
+
"description": "OAuth2 scopes required (scheme: oauth2 only).",
|
|
205
|
+
"items": {
|
|
206
|
+
"type": "string"
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
"service_identifier": {
|
|
210
|
+
"type": "string",
|
|
211
|
+
"description": "Stable key for credential managers (e.g., 'acme-weather-api')."
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
"if": {
|
|
215
|
+
"properties": { "scheme": { "const": "oauth2" } }
|
|
216
|
+
},
|
|
217
|
+
"then": {
|
|
218
|
+
"required": ["tokenUrl"]
|
|
219
|
+
},
|
|
220
|
+
"additionalProperties": false
|
|
221
|
+
},
|
|
222
|
+
"Skill": {
|
|
223
|
+
"type": "object",
|
|
224
|
+
"required": ["id", "name", "description"],
|
|
225
|
+
"description": "A discrete callable operation the agent can perform.",
|
|
226
|
+
"properties": {
|
|
227
|
+
"id": {
|
|
228
|
+
"type": "string",
|
|
229
|
+
"pattern": "^[a-z][a-z0-9_-]*$",
|
|
230
|
+
"description": "Stable machine-readable skill identifier, unique within the agent."
|
|
231
|
+
},
|
|
232
|
+
"name": {
|
|
233
|
+
"type": "string",
|
|
234
|
+
"description": "Human-readable display name."
|
|
235
|
+
},
|
|
236
|
+
"description": {
|
|
237
|
+
"type": "string",
|
|
238
|
+
"description": "Purpose and behaviour of this skill."
|
|
239
|
+
},
|
|
240
|
+
"input_schema": {
|
|
241
|
+
"type": "object",
|
|
242
|
+
"description": "JSON Schema describing the expected input payload.",
|
|
243
|
+
"additionalProperties": true
|
|
244
|
+
},
|
|
245
|
+
"output_schema": {
|
|
246
|
+
"type": "object",
|
|
247
|
+
"description": "JSON Schema describing the response payload structure.",
|
|
248
|
+
"additionalProperties": true
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
"additionalProperties": false
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|