@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.
Files changed (259) hide show
  1. package/.version.json +3 -3
  2. package/CHANGELOG.md +35 -4
  3. package/README.md +77 -62
  4. package/dist/.version.json +3 -3
  5. package/dist/adapters/a2a/a2a-protocol.js +4 -2
  6. package/dist/adapters/a2a/a2a-tool.js +4 -2
  7. package/dist/adapters/a2a/mcp-integration.d.ts +2 -1
  8. package/dist/adapters/a2a/mcp-integration.js +6 -3
  9. package/dist/adapters/browser/browser-exporter.d.ts +26 -0
  10. package/dist/adapters/browser/browser-exporter.js +73 -0
  11. package/dist/adapters/browser/browser-runner.d.ts +23 -0
  12. package/dist/adapters/browser/browser-runner.js +46 -0
  13. package/dist/adapters/browser/index.d.ts +9 -0
  14. package/dist/adapters/browser/index.js +9 -0
  15. package/dist/adapters/claude-code/adapter.js +2 -2
  16. package/dist/adapters/docker/generators.js +19 -19
  17. package/dist/adapters/docker/index.d.ts +2 -0
  18. package/dist/adapters/docker/index.js +2 -0
  19. package/dist/adapters/docker/openclaw-bridge.d.ts +57 -0
  20. package/dist/adapters/docker/openclaw-bridge.js +173 -0
  21. package/dist/adapters/drupal/generator.js +76 -76
  22. package/dist/adapters/drupal/index.d.ts +1 -0
  23. package/dist/adapters/drupal/index.js +2 -0
  24. package/dist/adapters/drupal/twig-renderer.d.ts +23 -0
  25. package/dist/adapters/drupal/twig-renderer.js +99 -0
  26. package/dist/adapters/gitlab/agent-generator.js +2 -1
  27. package/dist/adapters/openai-agents/adapter.js +2 -2
  28. package/dist/api/index.js +2 -1
  29. package/dist/api/routes/mcp.router.js +3 -1
  30. package/dist/api/routes/wizard.router.js +3 -1
  31. package/dist/cli/commands/agent/discover-type.command.js +1 -1
  32. package/dist/cli/commands/agent-card.command.js +37 -10
  33. package/dist/cli/commands/agents-sync.command.d.ts +2 -2
  34. package/dist/cli/commands/agents-sync.command.js +27 -17
  35. package/dist/cli/commands/catalog/config.js +1 -1
  36. package/dist/cli/commands/catalog/validate.command.js +2 -2
  37. package/dist/cli/commands/config.command.js +2 -2
  38. package/dist/cli/commands/daemon.command.js +32 -8
  39. package/dist/cli/commands/discover.d.ts +1 -1
  40. package/dist/cli/commands/discover.js +16 -8
  41. package/dist/cli/commands/economics.command.d.ts +9 -0
  42. package/dist/cli/commands/economics.command.js +113 -0
  43. package/dist/cli/commands/export.command.js +6 -3
  44. package/dist/cli/commands/mcp.command.js +3 -1
  45. package/dist/cli/commands/memory.command.d.ts +18 -0
  46. package/dist/cli/commands/memory.command.js +168 -0
  47. package/dist/cli/commands/publish.command.js +7 -4
  48. package/dist/cli/commands/serve-builder-routes.js +1 -1
  49. package/dist/cli/commands/usie-skills.command.d.ts +24 -0
  50. package/dist/cli/commands/usie-skills.command.js +297 -0
  51. package/dist/cli/commands/validate.command.js +8 -1
  52. package/dist/cli/commands/verify.d.ts +3 -3
  53. package/dist/cli/commands/verify.js +12 -6
  54. package/dist/cli/commands/workspace.command.d.ts +1 -0
  55. package/dist/cli/commands/workspace.command.js +28 -4
  56. package/dist/cli/index.js +12 -0
  57. package/dist/cli/schema-driven/schema-loader.js +5 -5
  58. package/dist/cli/workspace-validate.d.ts +23 -0
  59. package/dist/cli/workspace-validate.js +117 -0
  60. package/dist/data/platform-matrix.js +1 -4
  61. package/dist/generated/types.d.ts +97 -97
  62. package/dist/index.d.ts +2 -0
  63. package/dist/index.js +2 -0
  64. package/dist/mcp-server/index.js +658 -982
  65. package/dist/mesh/discovery-gkg.d.ts +26 -0
  66. package/dist/mesh/discovery-gkg.js +92 -0
  67. package/dist/messenger/Handler/AgentBatchHandler.js +3 -2
  68. package/dist/messenger/Handler/AgentExecutionHandler.js +6 -1
  69. package/dist/package.json +43 -14
  70. package/dist/sdks/shared/types.d.ts +1 -1
  71. package/dist/services/agent-card-generator.js +6 -2
  72. package/dist/services/daemon/audit-log.service.js +3 -1
  73. package/dist/services/daemon/execution.service.js +8 -4
  74. package/dist/services/daemon/fs-watcher.service.js +6 -7
  75. package/dist/services/daemon/pairing.service.js +2 -1
  76. package/dist/services/daemon/skill-aggregator.service.js +105 -21
  77. package/dist/services/daemon/sse-endpoints.js +1 -1
  78. package/dist/services/daemon/ws-server.js +10 -3
  79. package/dist/services/export/langchain/langchain-exporter.js +2 -2
  80. package/dist/services/export/langchain/memory-generator.js +2 -2
  81. package/dist/services/export/testing/test-generator.js +1 -1
  82. package/dist/services/governance/cedar-provider.js +12 -8
  83. package/dist/services/governance/cedar-validator.service.js +1 -1
  84. package/dist/services/mcp/bridge.service.js +40 -9
  85. package/dist/services/openapi-extensions-validation.d.ts +20 -0
  86. package/dist/services/openapi-extensions-validation.js +193 -0
  87. package/dist/services/release-automation/merge-request.service.d.ts +4 -4
  88. package/dist/services/release-automation/release-buttons.js +3 -3
  89. package/dist/services/release-automation/schemas/release.schema.d.ts +3 -3
  90. package/dist/services/runtime/openai.adapter.d.ts +46 -13
  91. package/dist/services/runtime/openai.adapter.js +169 -131
  92. package/dist/services/skill-registry.service.d.ts +1 -1
  93. package/dist/services/skills-pipeline/skills-research.service.js +47 -7
  94. package/dist/services/taxonomy-service.d.ts +3 -3
  95. package/dist/services/trust/trust.service.js +6 -4
  96. package/dist/services/validation-zod.service.js +3 -22
  97. package/dist/services/validators/index.d.ts +1 -0
  98. package/dist/services/validators/index.js +1 -0
  99. package/dist/services/validators/registry.d.ts +21 -0
  100. package/dist/services/validators/registry.js +42 -0
  101. package/dist/skills/test-skill/package.json +1 -1
  102. package/dist/spec/extensions/cognition.schema.json +87 -0
  103. package/dist/spec/extensions/role-manifest.md +188 -0
  104. package/dist/spec/layer4-economics/duadp-examples.json +44 -0
  105. package/dist/spec/v0.4/agent.schema.json +14 -0
  106. package/dist/spec/v0.4/extensions/mcp/README.md +1 -1
  107. package/dist/spec/v0.5/agent-builder-openapi.yaml +230 -0
  108. package/dist/spec/v0.5/agent.schema.json +34 -2
  109. package/dist/spec/v0.5/extensions/cognition/cognition.schema.json +78 -1
  110. package/dist/spec/v0.5/extensions/economics/context-pack.schema.json +91 -0
  111. package/dist/spec/v0.5/extensions/economics/execution-profile.schema.json +148 -0
  112. package/dist/spec/v0.5/extensions/economics/failure-semantics.schema.json +32 -0
  113. package/dist/spec/v0.5/extensions/economics/replay-packet.schema.json +120 -0
  114. package/dist/spec/v0.5/memory-hierarchy.yaml +120 -0
  115. package/dist/spec/v0.5/role.schema.json +268 -0
  116. package/dist/spec/v1/agent-card.schema.json +254 -0
  117. package/dist/types/cognition.zod.d.ts +312 -0
  118. package/dist/types/cognition.zod.js +223 -0
  119. package/dist/types/identity.zod.d.ts +5 -5
  120. package/dist/types/index.d.ts +54 -6
  121. package/dist/types/index.js +6 -2
  122. package/dist/types/personality.zod.d.ts +3 -3
  123. package/dist/types/role.d.ts +126 -0
  124. package/dist/types/role.js +38 -0
  125. package/dist/utils/http-client.d.ts +22 -0
  126. package/dist/utils/http-client.js +51 -0
  127. package/dist/utils/index.d.ts +3 -0
  128. package/dist/utils/index.js +3 -0
  129. package/dist/utils/proxy-resolver.d.ts +36 -0
  130. package/dist/utils/proxy-resolver.js +59 -0
  131. package/dist/utils/user-agent.d.ts +11 -0
  132. package/dist/utils/user-agent.js +17 -0
  133. package/dist/validation/validator.js +1 -1
  134. package/dist/validation/version-compliance.js +1 -1
  135. package/examples/agents/01-customer-support-bot/agent.ossa.yaml +24 -31
  136. package/examples/agents/05-sales-assistant/agent.ossa.yaml +35 -23
  137. package/examples/agents/07-research-assistant/agent.ossa.yaml +27 -21
  138. package/examples/agents/10-meeting-assistant/agent.ossa.yaml +27 -35
  139. package/examples/agents/security-audit-agent.ossa.yaml +234 -0
  140. package/examples/agentscope/react-assistant/README.md +1 -1
  141. package/examples/agentscope/react-assistant/agent.ossa.yaml +37 -33
  142. package/examples/drupal/content-moderator.ossa.yaml +2 -2
  143. package/examples/drupal/drupal-contributor-agent/.eslintrc.json +58 -0
  144. package/examples/drupal/drupal-contributor-agent/.prettierrc.json +10 -0
  145. package/examples/drupal/drupal-contributor-agent/package.json +55 -0
  146. package/examples/drupal/drupal-contributor-agent/src/core/index.ts +10 -0
  147. package/examples/drupal/drupal-contributor-agent/src/index.ts +17 -0
  148. package/examples/drupal/drupal-contributor-agent/src/types/index.ts +180 -0
  149. package/examples/drupal/drupal-contributor-agent/tsconfig.json +36 -0
  150. package/examples/drupal/drupal-contributor.ossa.yaml +247 -0
  151. package/examples/export/langchain/production-agent-with-memory/README.md +1 -1
  152. package/examples/export/langchain/production-agent-with-memory/agent.ossa.yaml +13 -23
  153. package/examples/export/langchain/production-agent-with-streaming/agent.ossa.yaml +1 -15
  154. package/examples/export/langchain/production-agent-with-tools/agent.ossa.yaml +28 -29
  155. package/examples/getting-started/01-minimal-agent.ossa.yaml +1 -1
  156. package/examples/getting-started/02-agent-with-tools.ossa.yaml +1 -1
  157. package/examples/getting-started/03-agent-with-safety.ossa.yaml +1 -1
  158. package/examples/getting-started/04-agent-with-messaging.ossa.yaml +1 -1
  159. package/examples/getting-started/05-workflow-composition.ossa.yaml +1 -1
  160. package/examples/getting-started/README.md +3 -3
  161. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  162. package/examples/gitlab-agents/gitlab-ci-agent.ossa.yaml +221 -0
  163. package/examples/hierarchical-agent.ossa.yaml +10 -53
  164. package/examples/kagent/ossa-kagent-anthropic.ossa.yaml +2 -25
  165. package/examples/kagent/ossa-kagent-mcp-tools.ossa.yaml +2 -30
  166. package/examples/kagent/ossa-kagent-multi-tool.ossa.yaml +2 -18
  167. package/examples/kagent/ossa-kagent-poc.ossa.yaml +2 -16
  168. package/examples/pipeline-agent.ossa.yaml +3 -3
  169. package/examples/platform-specific/claude-code-subagent.yaml +1 -1
  170. package/examples/platform-specific/cursor-coding-agent.yaml +1 -1
  171. package/examples/platform-specific/warp-terminal-agent.yaml +1 -1
  172. package/examples/production-ready/01-customer-support-bot/agent.ossa.yaml +24 -31
  173. package/examples/production-ready/05-sales-assistant/agent.ossa.yaml +35 -23
  174. package/examples/production-ready/07-research-assistant/agent.ossa.yaml +27 -19
  175. package/examples/production-ready/10-meeting-assistant/agent.ossa.yaml +27 -35
  176. package/examples/roles/drupal-developer.role.yaml +37 -0
  177. package/examples/roles/platform-operator.role.yaml +28 -0
  178. package/examples/roles/security-auditor.role.yaml +27 -0
  179. package/examples/swarm-agent.ossa.yaml +13 -51
  180. package/examples/team-agent.ossa.yaml +12 -61
  181. package/examples/team-lead-teammate.ossa.yaml +12 -17
  182. package/openapi/agent-cognition-sessions.yaml +580 -0
  183. package/openapi/agent-communication.yaml +260 -212
  184. package/openapi/agent-crud.yaml +237 -207
  185. package/openapi/agent-discovery.yaml +119 -81
  186. package/openapi/agent-identity.yaml +219 -187
  187. package/openapi/agent-taxonomy.yaml +95 -38
  188. package/openapi/agents-md-service.yaml +103 -30
  189. package/openapi/cli/openapi.yaml +147 -40
  190. package/openapi/core/ossa-core-api.openapi.yaml +327 -271
  191. package/openapi/core/ossa-registry-api.openapi.yaml +299 -236
  192. package/openapi/core/ossa-registry.openapi.yaml +299 -159
  193. package/openapi/core/unified-agent-gateway.openapi.yaml +234 -170
  194. package/openapi/daemon-api.openapi.yaml +323 -181
  195. package/openapi/dev-cli/openapi.yaml +137 -113
  196. package/openapi/github-sync.yaml +62 -19
  197. package/openapi/marketplace-plugin.openapi.yaml +539 -466
  198. package/openapi/ossa-api.openapi.yaml +354 -213
  199. package/openapi/ossa-cli-enhancements.openapi.yaml +109 -90
  200. package/openapi/ossa-cli.yaml +260 -184
  201. package/openapi/protocols/sse-streams.yaml +66 -74
  202. package/openapi/protocols/websocket-events.yaml +61 -54
  203. package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +37 -20
  204. package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +35 -23
  205. package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +29 -18
  206. package/openapi/reference-implementations/critic-agent-api.openapi.yaml +45 -19
  207. package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +30 -24
  208. package/openapi/reference-implementations/drupal-agent-api.openapi.yaml +101 -50
  209. package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +33 -22
  210. package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +20 -16
  211. package/openapi/reference-implementations/governor-agent-api.openapi.yaml +41 -23
  212. package/openapi/reference-implementations/helm-generator.openapi.yaml +88 -46
  213. package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +30 -20
  214. package/openapi/reference-implementations/judge-agent-api.openapi.yaml +22 -16
  215. package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +32 -18
  216. package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +32 -21
  217. package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +34 -21
  218. package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +49 -27
  219. package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +27 -19
  220. package/openapi/reference-implementations/self-evolving-ecosystem.openapi.yaml +427 -293
  221. package/openapi/reference-implementations/worker-agent-api.openapi.yaml +34 -23
  222. package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +35 -21
  223. package/openapi/release-automation.openapi.yaml +48 -14
  224. package/openapi/schemas/common/agent.yaml +30 -29
  225. package/openapi/schemas/common/economics.yaml +98 -0
  226. package/openapi/schemas/common/errors.yaml +13 -3
  227. package/openapi/schemas/common/metadata.yaml +22 -7
  228. package/openapi/schemas/common/pagination.yaml +18 -6
  229. package/openapi/schemas/common/security.yaml +13 -5
  230. package/openapi/schemas/index.yaml +49 -42
  231. package/openapi/uadp-asyncapi.yaml +5 -3
  232. package/openapi/uadp-openapi.yaml +243 -165
  233. package/openapi/version-management.openapi.yaml +142 -135
  234. package/package.json +43 -14
  235. package/spec/extensions/cognition.schema.json +87 -0
  236. package/spec/extensions/role-manifest.md +188 -0
  237. package/spec/layer4-economics/duadp-examples.json +44 -0
  238. package/spec/v0.4/agent.schema.json +14 -0
  239. package/spec/v0.4/extensions/mcp/README.md +1 -1
  240. package/spec/v0.5/agent-builder-openapi.yaml +230 -0
  241. package/spec/v0.5/agent.schema.json +34 -2
  242. package/spec/v0.5/extensions/cognition/cognition.schema.json +78 -1
  243. package/spec/v0.5/extensions/economics/context-pack.schema.json +91 -0
  244. package/spec/v0.5/extensions/economics/execution-profile.schema.json +148 -0
  245. package/spec/v0.5/extensions/economics/failure-semantics.schema.json +32 -0
  246. package/spec/v0.5/extensions/economics/replay-packet.schema.json +120 -0
  247. package/spec/v0.5/memory-hierarchy.yaml +120 -0
  248. package/spec/v0.5/role.schema.json +268 -0
  249. package/spec/v1/agent-card.schema.json +254 -0
  250. package/dist/adapters/a2a/__tests__/mcp-integration.spec.d.ts +0 -5
  251. package/dist/adapters/a2a/__tests__/mcp-integration.spec.js +0 -268
  252. package/dist/adapters/a2a/__tests__/mcp-transport.spec.d.ts +0 -5
  253. package/dist/adapters/a2a/__tests__/mcp-transport.spec.js +0 -203
  254. package/dist/mcp-server/__tests__/mcp-server.spec.d.ts +0 -8
  255. package/dist/mcp-server/__tests__/mcp-server.spec.js +0 -557
  256. package/dist/validation/__tests__/error-codes.test.d.ts +0 -5
  257. package/dist/validation/__tests__/error-codes.test.js +0 -252
  258. package/dist/version-management/core/version-manager.test.d.ts +0 -2
  259. package/dist/version-management/core/version-manager.test.js +0 -210
@@ -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
+ }
@@ -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
+ }