@bluefly/openstandardagents 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (406) hide show
  1. package/.devfile.yaml +87 -0
  2. package/.gitlab-ci-trigger +1 -0
  3. package/.wiki-config.json +24 -0
  4. package/CHANGELOG.md +212 -1
  5. package/README.md +8 -193
  6. package/dist/adapters/anthropic/runtime.js +2 -2
  7. package/dist/adapters/anthropic/runtime.js.map +1 -1
  8. package/dist/bot/architecture-validator-bot.d.ts +8 -0
  9. package/dist/bot/architecture-validator-bot.d.ts.map +1 -0
  10. package/dist/bot/architecture-validator-bot.js +15 -0
  11. package/dist/bot/architecture-validator-bot.js.map +1 -0
  12. package/dist/bot/ci-pipeline-bot.d.ts +7 -0
  13. package/dist/bot/ci-pipeline-bot.d.ts.map +1 -0
  14. package/dist/bot/ci-pipeline-bot.js +7 -0
  15. package/dist/bot/ci-pipeline-bot.js.map +1 -0
  16. package/dist/bot/compliance-bot.d.ts +56 -0
  17. package/dist/bot/compliance-bot.d.ts.map +1 -0
  18. package/dist/bot/compliance-bot.js +203 -0
  19. package/dist/bot/compliance-bot.js.map +1 -0
  20. package/dist/bot/dependency-updater-bot.d.ts +9 -0
  21. package/dist/bot/dependency-updater-bot.d.ts.map +1 -0
  22. package/dist/bot/dependency-updater-bot.js +9 -0
  23. package/dist/bot/dependency-updater-bot.js.map +1 -0
  24. package/dist/bot/security-scanner-bot.d.ts +11 -0
  25. package/dist/bot/security-scanner-bot.d.ts.map +1 -0
  26. package/dist/bot/security-scanner-bot.js +21 -0
  27. package/dist/bot/security-scanner-bot.js.map +1 -0
  28. package/dist/cli/commands/agent-card.command.d.ts +11 -0
  29. package/dist/cli/commands/agent-card.command.d.ts.map +1 -0
  30. package/dist/cli/commands/agent-card.command.js +285 -0
  31. package/dist/cli/commands/agent-card.command.js.map +1 -0
  32. package/dist/cli/commands/agents.command.d.ts +11 -0
  33. package/dist/cli/commands/agents.command.d.ts.map +1 -0
  34. package/dist/cli/commands/agents.command.js +326 -0
  35. package/dist/cli/commands/agents.command.js.map +1 -0
  36. package/dist/cli/commands/diff.command.d.ts +7 -0
  37. package/dist/cli/commands/diff.command.d.ts.map +1 -0
  38. package/dist/cli/commands/diff.command.js +181 -0
  39. package/dist/cli/commands/diff.command.js.map +1 -0
  40. package/dist/cli/commands/docs.command.d.ts +7 -0
  41. package/dist/cli/commands/docs.command.d.ts.map +1 -0
  42. package/dist/cli/commands/docs.command.js +274 -0
  43. package/dist/cli/commands/docs.command.js.map +1 -0
  44. package/dist/cli/commands/generate.command.d.ts +13 -2
  45. package/dist/cli/commands/generate.command.d.ts.map +1 -1
  46. package/dist/cli/commands/generate.command.js +204 -29
  47. package/dist/cli/commands/generate.command.js.map +1 -1
  48. package/dist/cli/commands/lint.command.d.ts +7 -0
  49. package/dist/cli/commands/lint.command.d.ts.map +1 -0
  50. package/dist/cli/commands/lint.command.js +342 -0
  51. package/dist/cli/commands/lint.command.js.map +1 -0
  52. package/dist/cli/commands/registry.command.d.ts +14 -0
  53. package/dist/cli/commands/registry.command.d.ts.map +1 -0
  54. package/dist/cli/commands/registry.command.js +428 -0
  55. package/dist/cli/commands/registry.command.js.map +1 -0
  56. package/dist/cli/commands/serve.command.d.ts +7 -0
  57. package/dist/cli/commands/serve.command.d.ts.map +1 -0
  58. package/dist/cli/commands/serve.command.js +232 -0
  59. package/dist/cli/commands/serve.command.js.map +1 -0
  60. package/dist/cli/commands/workspace.command.d.ts +14 -0
  61. package/dist/cli/commands/workspace.command.d.ts.map +1 -0
  62. package/dist/cli/commands/workspace.command.js +467 -0
  63. package/dist/cli/commands/workspace.command.js.map +1 -0
  64. package/dist/cli/index.js +13 -0
  65. package/dist/cli/index.js.map +1 -1
  66. package/dist/di-container.d.ts.map +1 -1
  67. package/dist/di-container.js +23 -0
  68. package/dist/di-container.js.map +1 -1
  69. package/dist/services/codegen/codegen.service.d.ts +75 -0
  70. package/dist/services/codegen/codegen.service.d.ts.map +1 -0
  71. package/dist/services/codegen/codegen.service.js +136 -0
  72. package/dist/services/codegen/codegen.service.js.map +1 -0
  73. package/dist/services/codegen/generators/manifest.generator.d.ts +41 -0
  74. package/dist/services/codegen/generators/manifest.generator.d.ts.map +1 -0
  75. package/dist/services/codegen/generators/manifest.generator.js +178 -0
  76. package/dist/services/codegen/generators/manifest.generator.js.map +1 -0
  77. package/dist/services/codegen/generators/openapi.generator.d.ts +46 -0
  78. package/dist/services/codegen/generators/openapi.generator.d.ts.map +1 -0
  79. package/dist/services/codegen/generators/openapi.generator.js +157 -0
  80. package/dist/services/codegen/generators/openapi.generator.js.map +1 -0
  81. package/dist/services/codegen/generators/types.generator.d.ts +27 -0
  82. package/dist/services/codegen/generators/types.generator.d.ts.map +1 -0
  83. package/dist/services/codegen/generators/types.generator.js +97 -0
  84. package/dist/services/codegen/generators/types.generator.js.map +1 -0
  85. package/dist/services/codegen/generators/vscode.generator.d.ts +43 -0
  86. package/dist/services/codegen/generators/vscode.generator.d.ts.map +1 -0
  87. package/dist/services/codegen/generators/vscode.generator.js +163 -0
  88. package/dist/services/codegen/generators/vscode.generator.js.map +1 -0
  89. package/dist/services/codegen/generators/zod.generator.d.ts +31 -0
  90. package/dist/services/codegen/generators/zod.generator.d.ts.map +1 -0
  91. package/dist/services/codegen/generators/zod.generator.js +134 -0
  92. package/dist/services/codegen/generators/zod.generator.js.map +1 -0
  93. package/dist/services/codegen/index.d.ts +33 -0
  94. package/dist/services/codegen/index.d.ts.map +1 -0
  95. package/dist/services/codegen/index.js +36 -0
  96. package/dist/services/codegen/index.js.map +1 -0
  97. package/dist/services/git.service.d.ts +40 -0
  98. package/dist/services/git.service.d.ts.map +1 -0
  99. package/dist/services/git.service.js +122 -0
  100. package/dist/services/git.service.js.map +1 -0
  101. package/dist/spec/extensions/openapi/ossa-openapi-extensions.schema.json +804 -0
  102. package/dist/spec/v0.3.0/examples/drupal-content-writer.ossa.yaml +1 -1
  103. package/dist/spec/v0.3.0/examples/drupal-moderation-assistant.ossa.yaml +1 -1
  104. package/dist/spec/v0.3.0/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +1 -1
  105. package/dist/spec/v0.3.0/runtime-bindings/anthropic.yaml +209 -0
  106. package/dist/spec/v0.3.1/UNIFIED-SCHEMA.md +120 -0
  107. package/dist/spec/v0.3.1/adapters/drupal.md +541 -0
  108. package/dist/spec/v0.3.1/adapters/symfony.md +659 -0
  109. package/dist/spec/v0.3.1/agent-test.schema.json +75 -0
  110. package/dist/spec/v0.3.1/examples/agent-with-identity.ossa.yaml +68 -0
  111. package/dist/spec/v0.3.1/examples/drupal-content-writer.ossa.yaml +110 -0
  112. package/dist/spec/v0.3.1/examples/drupal-moderation-assistant.ossa.yaml +96 -0
  113. package/dist/spec/v0.3.1/examples/multi-provider-identity.ossa.yaml +236 -0
  114. package/dist/spec/v0.3.1/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
  115. package/dist/spec/v0.3.1/extensions/agent-identity.yaml +594 -0
  116. package/dist/spec/v0.3.1/extensions/drupal.md +417 -0
  117. package/dist/spec/v0.3.1/ossa-0.3.1.schema.json +3085 -0
  118. package/dist/spec/v0.3.1/protocols/sse.md +494 -0
  119. package/dist/spec/v0.3.1/protocols/webrtc.md +600 -0
  120. package/dist/spec/v0.3.1/protocols/websocket.md +362 -0
  121. package/dist/spec/v0.3.1/schemas/agent-unified.yaml +165 -0
  122. package/dist/spec/v0.3.1/schemas/capabilities.yaml +102 -0
  123. package/dist/spec/v0.3.1/schemas/functions.yaml +75 -0
  124. package/dist/spec/v0.3.1/schemas/messaging/channel.schema.json +245 -0
  125. package/dist/spec/v0.3.1/schemas/messaging/delivery-receipt.schema.json +192 -0
  126. package/dist/spec/v0.3.1/schemas/messaging/message.schema.json +205 -0
  127. package/dist/spec/v0.3.1/schemas/messaging/subscription.schema.json +214 -0
  128. package/dist/spec/v0.3.1/schemas/runtime.yaml +102 -0
  129. package/dist/spec/v0.3.1/schemas/taxonomy.yaml +533 -0
  130. package/dist/spec/v0.3.1/schemas/unified-llm.yaml +91 -0
  131. package/dist/spec/v0.3.1/taxonomy.yaml +256 -0
  132. package/dist/spec/v0.3.2/MIGRATION-v0.3.1-to-v0.3.2.md +293 -0
  133. package/dist/spec/v0.3.2/UNIFIED-SCHEMA.md +120 -0
  134. package/dist/spec/v0.3.2/access_tiers.yaml +375 -0
  135. package/dist/spec/v0.3.2/adapters/drupal.md +541 -0
  136. package/dist/spec/v0.3.2/adapters/symfony.md +659 -0
  137. package/dist/spec/v0.3.2/agent-test.schema.json +75 -0
  138. package/dist/spec/v0.3.2/examples/access-tiers/README.md +106 -0
  139. package/dist/spec/v0.3.2/examples/access-tiers/code-critic.ossa.yaml +119 -0
  140. package/dist/spec/v0.3.2/examples/access-tiers/compliance-governor.ossa.yaml +234 -0
  141. package/dist/spec/v0.3.2/examples/access-tiers/deployment-operator.ossa.yaml +201 -0
  142. package/dist/spec/v0.3.2/examples/access-tiers/doc-generator.ossa.yaml +117 -0
  143. package/dist/spec/v0.3.2/examples/access-tiers/security-scanner.ossa.yaml +133 -0
  144. package/dist/spec/v0.3.2/examples/agent-with-identity.ossa.yaml +68 -0
  145. package/dist/spec/v0.3.2/examples/drupal-content-writer.ossa.yaml +110 -0
  146. package/dist/spec/v0.3.2/examples/drupal-moderation-assistant.ossa.yaml +96 -0
  147. package/dist/spec/v0.3.2/examples/multi-provider-identity.ossa.yaml +236 -0
  148. package/dist/spec/v0.3.2/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
  149. package/dist/spec/v0.3.2/examples/tasks/data-transform.ossa.yaml +147 -0
  150. package/dist/spec/v0.3.2/examples/tasks/publish-content.ossa.yaml +125 -0
  151. package/dist/spec/v0.3.2/examples/workflows/content-publishing.ossa.yaml +190 -0
  152. package/dist/spec/v0.3.2/examples/workflows/deployment-pipeline.ossa.yaml +247 -0
  153. package/dist/spec/v0.3.2/extensions/agent-identity.yaml +594 -0
  154. package/dist/spec/v0.3.2/extensions/drupal.md +417 -0
  155. package/dist/spec/v0.3.2/infrastructure/service-ports.yaml +324 -0
  156. package/dist/spec/v0.3.2/ossa-0.3.2.schema.json +3316 -0
  157. package/dist/spec/v0.3.2/protocols/delegation.yaml +239 -0
  158. package/dist/spec/v0.3.2/protocols/sse.md +494 -0
  159. package/dist/spec/v0.3.2/protocols/webrtc.md +600 -0
  160. package/dist/spec/v0.3.2/protocols/websocket.md +362 -0
  161. package/dist/spec/v0.3.2/runtime/RUNTIME.md +457 -0
  162. package/dist/spec/v0.3.2/runtime/memory-model.yaml +871 -0
  163. package/dist/spec/v0.3.2/runtime/runtime.yaml +926 -0
  164. package/dist/spec/v0.3.2/schemas/agent-unified.yaml +165 -0
  165. package/dist/spec/v0.3.2/schemas/capabilities.yaml +102 -0
  166. package/dist/spec/v0.3.2/schemas/functions.yaml +75 -0
  167. package/dist/spec/v0.3.2/schemas/messaging/channel.schema.json +245 -0
  168. package/dist/spec/v0.3.2/schemas/messaging/delivery-receipt.schema.json +192 -0
  169. package/dist/spec/v0.3.2/schemas/messaging/message.schema.json +205 -0
  170. package/dist/spec/v0.3.2/schemas/messaging/subscription.schema.json +214 -0
  171. package/dist/spec/v0.3.2/schemas/runtime.yaml +102 -0
  172. package/dist/spec/v0.3.2/schemas/taxonomy.yaml +533 -0
  173. package/dist/spec/v0.3.2/schemas/unified-llm.yaml +91 -0
  174. package/dist/spec/v0.3.2/taxonomy.yaml +363 -0
  175. package/dist/testing/fixtures.d.ts.map +1 -1
  176. package/dist/testing/fixtures.js +3 -2
  177. package/dist/testing/fixtures.js.map +1 -1
  178. package/dist/types/generated/{ossa-0.3.0.types.d.ts → ossa-0.3.2.types.d.ts} +58 -7
  179. package/dist/types/generated/ossa-0.3.2.types.d.ts.map +1 -0
  180. package/dist/types/generated/ossa-0.3.2.types.js +10 -0
  181. package/dist/types/generated/ossa-0.3.2.types.js.map +1 -0
  182. package/dist/types/generated/ossa-0.3.2.zod.d.ts +36 -0
  183. package/dist/types/generated/ossa-0.3.2.zod.d.ts.map +1 -0
  184. package/dist/types/generated/ossa-0.3.2.zod.js +25 -0
  185. package/dist/types/generated/ossa-0.3.2.zod.js.map +1 -0
  186. package/examples/adapters/drupal-eca-mapping.yaml +1 -1
  187. package/examples/adapters/drupal-eca-task.yaml +1 -1
  188. package/examples/adapters/drupal-flowdrop-mapping.yaml +1 -1
  189. package/examples/adapters/drupal-maestro-mapping.yaml +1 -1
  190. package/examples/adapters/mistral-agent.yaml +1 -1
  191. package/examples/adapters/symfony-messenger-task.yaml +1 -1
  192. package/examples/adapters/symfony-messenger-workflow.yaml +1 -1
  193. package/examples/adk-integration/code-review-workflow.yml +1 -1
  194. package/examples/adk-integration/customer-support.yml +1 -1
  195. package/examples/adk-integration/data-pipeline.yml +1 -1
  196. package/examples/advanced/reasoning-agent.yaml +1 -1
  197. package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
  198. package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
  199. package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
  200. package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
  201. package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
  202. package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
  203. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
  204. package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
  205. package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
  206. package/examples/agents/architecture-healer-enterprise.yaml +1 -1
  207. package/examples/agents/dependency-healer-npm.yaml +1 -1
  208. package/examples/agents/spec-healer-openapi.yaml +1 -1
  209. package/examples/agents/wiki-healer-production.yaml +1 -1
  210. package/examples/agents-md/code-agent.ossa.json +36 -11
  211. package/examples/agents-md/monorepo-agent.ossa.yaml +1 -1
  212. package/examples/anthropic/claude-assistant.ossa.json +4 -4
  213. package/examples/autogen/multi-agent.ossa.json +2 -2
  214. package/examples/autonomous-evolution/self-evolving-agent.ossa.yaml +1 -1
  215. package/examples/claude-code/code-reviewer.ossa.yaml +1 -1
  216. package/examples/claude-code/ossa-validator.ossa.yaml +1 -1
  217. package/examples/common_npm/agent-router.ossa.yaml +1 -1
  218. package/examples/contracts/data-consumer.ossa.yaml +1 -1
  219. package/examples/contracts/data-producer-v2.ossa.yaml +1 -1
  220. package/examples/contracts/data-producer.ossa.yaml +1 -1
  221. package/examples/crewai/research-team.ossa.json +2 -2
  222. package/examples/cursor/code-review-agent.ossa.json +2 -2
  223. package/examples/drupal/ai_agents_ossa-module/.agents/example-agent/agent.ossa.yaml +1 -1
  224. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -1
  225. package/examples/extensions/agents-md-advanced.yml +1 -1
  226. package/examples/extensions/agents-md-basic.yml +1 -1
  227. package/examples/extensions/agents-md-sync.yml +1 -1
  228. package/examples/extensions/agents-md-v1.yml +1 -1
  229. package/examples/extensions/drupal-v1.yml +1 -1
  230. package/examples/extensions/encryption-multi-provider.yaml +4 -4
  231. package/examples/extensions/kagent-v1.yml +1 -1
  232. package/examples/extensions/knowledge-sources.yaml +1 -1
  233. package/examples/extensions/mcp-full-featured.yaml +1 -1
  234. package/examples/getting-started/01-minimal-agent.ossa.yaml +3 -3
  235. package/examples/getting-started/02-agent-with-tools.ossa.yaml +1 -1
  236. package/examples/getting-started/03-agent-with-safety.ossa.yaml +1 -1
  237. package/examples/getting-started/04-agent-with-messaging.ossa.yaml +2 -2
  238. package/examples/getting-started/05-workflow-composition.ossa.yaml +1 -1
  239. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  240. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
  241. package/examples/kagent/compliance-validator.ossa.yaml +1 -1
  242. package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
  243. package/examples/kagent/documentation-agent.ossa.yaml +1 -1
  244. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -1
  245. package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
  246. package/examples/kagent/security-scanner.ossa.yaml +1 -1
  247. package/examples/langchain/chain-agent.ossa.json +2 -2
  248. package/examples/langflow/workflow-agent.ossa.json +2 -2
  249. package/examples/langgraph/state-machine-agent.ossa.json +2 -2
  250. package/examples/llamaindex/rag-agent.ossa.json +2 -2
  251. package/examples/messaging/dependency-healer.ossa.yaml +1 -1
  252. package/examples/messaging/incident-responder.ossa.yaml +1 -1
  253. package/examples/messaging/routing-rules.ossa.yaml +3 -3
  254. package/examples/messaging/security-scanner.ossa.yaml +1 -1
  255. package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
  256. package/examples/multi-agent/conditional-router.ossa.yaml +1 -1
  257. package/examples/multi-agent/parallel-execution.ossa.yaml +1 -1
  258. package/examples/multi-agent/sequential-pipeline.ossa.yaml +1 -1
  259. package/examples/observability/activity-stream-full.yaml +1 -1
  260. package/examples/openai/basic-agent.ossa.yaml +1 -1
  261. package/examples/openai/multi-tool-agent.ossa.json +2 -2
  262. package/examples/openai/swarm-agent.ossa.json +2 -2
  263. package/examples/production/document-analyzer-openai.yml +1 -1
  264. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  265. package/examples/real-world/gitlab-cicd-optimizer.ossa.yaml +1 -1
  266. package/examples/real-world/rag-documentation-assistant.ossa.yaml +1 -1
  267. package/examples/runtime-adapters/bedrock-claude-example.ossa.yaml +1 -1
  268. package/examples/schema/reusable-components.yaml +1 -1
  269. package/examples/showcase/ci-pipeline.ossa.yaml +59 -0
  270. package/examples/showcase/code-assistant.ossa.yaml +118 -0
  271. package/examples/showcase/code-reviewer.ossa.yaml +61 -0
  272. package/examples/showcase/compliance-validator.ossa.yaml +62 -0
  273. package/examples/showcase/content-writer.ossa.yaml +67 -0
  274. package/examples/showcase/data-transformer.ossa.yaml +78 -0
  275. package/examples/showcase/doc-generator.ossa.yaml +68 -0
  276. package/examples/showcase/security-scanner.ossa.yaml +65 -0
  277. package/examples/showcase/test-generator.ossa.yaml +63 -0
  278. package/examples/showcase/workflow-orchestrator.ossa.yaml +129 -0
  279. package/examples/tasks/batch-email-sender.yaml +1 -1
  280. package/examples/tasks/data-transform.yaml +1 -1
  281. package/examples/tasks/publish-content.yaml +1 -1
  282. package/examples/templates/ossa-compliance.yaml +1 -1
  283. package/examples/unified/security-scanner.ossa.yaml +1 -1
  284. package/examples/vercel/edge-agent.ossa.json +2 -2
  285. package/examples/workflows/batch-email-campaign.yaml +1 -1
  286. package/examples/workflows/content-review-publish.yaml +1 -1
  287. package/examples/workflows/simple-etl.yaml +1 -1
  288. package/llms-ctx-full.txt +39 -0
  289. package/llms-ctx.txt +39 -0
  290. package/openapi/agent-communication.yaml +1 -1
  291. package/openapi/agent-crud.yaml +8 -8
  292. package/openapi/agent-discovery.yaml +2 -2
  293. package/openapi/agent-identity.yaml +8 -8
  294. package/openapi/cli-commands.openapi.yaml +231 -0
  295. package/openapi/core/ossa-core-api.openapi.yaml +1 -1
  296. package/openapi/core/ossa-registry-api.openapi.yaml +1 -1
  297. package/openapi/core/ossa-registry.openapi.yaml +1 -1
  298. package/openapi/core/unified-agent-gateway.openapi.yaml +1 -1
  299. package/openapi/github-sync.yaml +1 -1
  300. package/openapi/protocols/sse-streams.yaml +1 -1
  301. package/openapi/protocols/websocket-events.yaml +2 -2
  302. package/openapi/reference-implementations/aiflow-bridge-api.openapi.yaml +2 -2
  303. package/openapi/reference-implementations/compliance-agent-api.openapi.yaml +1 -1
  304. package/openapi/reference-implementations/crewai-agent-api.openapi.yaml +1 -1
  305. package/openapi/reference-implementations/critic-agent-api.openapi.yaml +2 -2
  306. package/openapi/reference-implementations/document-analyzer-api.openapi.yaml +2 -2
  307. package/openapi/reference-implementations/drupal-agent-api.openapi.yaml +1 -1
  308. package/openapi/reference-implementations/getting-started-hello-world-api.openapi.yaml +1 -1
  309. package/openapi/reference-implementations/gitlab-ml-recommender-api.openapi.yaml +2 -2
  310. package/openapi/reference-implementations/governor-agent-api.openapi.yaml +1 -1
  311. package/openapi/reference-implementations/helm-generator.openapi.yaml +1 -1
  312. package/openapi/reference-implementations/integrator-agent-api.openapi.yaml +1 -1
  313. package/openapi/reference-implementations/judge-agent-api.openapi.yaml +1 -1
  314. package/openapi/reference-implementations/k8s-troubleshooter-api.openapi.yaml +2 -2
  315. package/openapi/reference-implementations/langchain-agent-api.openapi.yaml +1 -1
  316. package/openapi/reference-implementations/monitor-agent-api.openapi.yaml +2 -2
  317. package/openapi/reference-implementations/orchestrator-agent-api.openapi.yaml +1 -1
  318. package/openapi/reference-implementations/quickstart-support-agent-api.openapi.yaml +2 -2
  319. package/openapi/reference-implementations/self-evolving-ecosystem.openapi.yaml +1 -1
  320. package/openapi/reference-implementations/worker-agent-api.openapi.yaml +2 -2
  321. package/openapi/reference-implementations/workflow-orchestrator-api.openapi.yaml +1 -1
  322. package/package.json +14 -32
  323. package/spec/extensions/openapi/ossa-openapi-extensions.schema.json +804 -0
  324. package/spec/v0.3.0/examples/drupal-content-writer.ossa.yaml +1 -1
  325. package/spec/v0.3.0/examples/drupal-moderation-assistant.ossa.yaml +1 -1
  326. package/spec/v0.3.0/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +1 -1
  327. package/spec/v0.3.0/runtime-bindings/anthropic.yaml +209 -0
  328. package/spec/v0.3.1/UNIFIED-SCHEMA.md +120 -0
  329. package/spec/v0.3.1/adapters/drupal.md +541 -0
  330. package/spec/v0.3.1/adapters/symfony.md +659 -0
  331. package/spec/v0.3.1/agent-test.schema.json +75 -0
  332. package/spec/v0.3.1/examples/agent-with-identity.ossa.yaml +68 -0
  333. package/spec/v0.3.1/examples/drupal-content-writer.ossa.yaml +110 -0
  334. package/spec/v0.3.1/examples/drupal-moderation-assistant.ossa.yaml +96 -0
  335. package/spec/v0.3.1/examples/multi-provider-identity.ossa.yaml +236 -0
  336. package/spec/v0.3.1/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
  337. package/spec/v0.3.1/extensions/agent-identity.yaml +594 -0
  338. package/spec/v0.3.1/extensions/drupal.md +417 -0
  339. package/spec/v0.3.1/ossa-0.3.1.schema.json +3085 -0
  340. package/spec/v0.3.1/protocols/sse.md +494 -0
  341. package/spec/v0.3.1/protocols/webrtc.md +600 -0
  342. package/spec/v0.3.1/protocols/websocket.md +362 -0
  343. package/spec/v0.3.1/schemas/agent-unified.yaml +165 -0
  344. package/spec/v0.3.1/schemas/capabilities.yaml +102 -0
  345. package/spec/v0.3.1/schemas/functions.yaml +75 -0
  346. package/spec/v0.3.1/schemas/messaging/channel.schema.json +245 -0
  347. package/spec/v0.3.1/schemas/messaging/delivery-receipt.schema.json +192 -0
  348. package/spec/v0.3.1/schemas/messaging/message.schema.json +205 -0
  349. package/spec/v0.3.1/schemas/messaging/subscription.schema.json +214 -0
  350. package/spec/v0.3.1/schemas/runtime.yaml +102 -0
  351. package/spec/v0.3.1/schemas/taxonomy.yaml +533 -0
  352. package/spec/v0.3.1/schemas/unified-llm.yaml +91 -0
  353. package/spec/v0.3.1/taxonomy.yaml +256 -0
  354. package/spec/v0.3.2/MIGRATION-v0.3.1-to-v0.3.2.md +293 -0
  355. package/spec/v0.3.2/UNIFIED-SCHEMA.md +120 -0
  356. package/spec/v0.3.2/access_tiers.yaml +375 -0
  357. package/spec/v0.3.2/adapters/drupal.md +541 -0
  358. package/spec/v0.3.2/adapters/symfony.md +659 -0
  359. package/spec/v0.3.2/agent-test.schema.json +75 -0
  360. package/spec/v0.3.2/examples/access-tiers/README.md +106 -0
  361. package/spec/v0.3.2/examples/access-tiers/code-critic.ossa.yaml +119 -0
  362. package/spec/v0.3.2/examples/access-tiers/compliance-governor.ossa.yaml +234 -0
  363. package/spec/v0.3.2/examples/access-tiers/deployment-operator.ossa.yaml +201 -0
  364. package/spec/v0.3.2/examples/access-tiers/doc-generator.ossa.yaml +117 -0
  365. package/spec/v0.3.2/examples/access-tiers/security-scanner.ossa.yaml +133 -0
  366. package/spec/v0.3.2/examples/agent-with-identity.ossa.yaml +68 -0
  367. package/spec/v0.3.2/examples/drupal-content-writer.ossa.yaml +110 -0
  368. package/spec/v0.3.2/examples/drupal-moderation-assistant.ossa.yaml +96 -0
  369. package/spec/v0.3.2/examples/multi-provider-identity.ossa.yaml +236 -0
  370. package/spec/v0.3.2/examples/quick-wins/complete-agent-with-quick-wins.ossa.yaml +144 -0
  371. package/spec/v0.3.2/examples/tasks/data-transform.ossa.yaml +147 -0
  372. package/spec/v0.3.2/examples/tasks/publish-content.ossa.yaml +125 -0
  373. package/spec/v0.3.2/examples/workflows/content-publishing.ossa.yaml +190 -0
  374. package/spec/v0.3.2/examples/workflows/deployment-pipeline.ossa.yaml +247 -0
  375. package/spec/v0.3.2/extensions/agent-identity.yaml +594 -0
  376. package/spec/v0.3.2/extensions/drupal.md +417 -0
  377. package/spec/v0.3.2/infrastructure/service-ports.yaml +324 -0
  378. package/spec/v0.3.2/ossa-0.3.2.schema.json +3316 -0
  379. package/spec/v0.3.2/protocols/delegation.yaml +239 -0
  380. package/spec/v0.3.2/protocols/sse.md +494 -0
  381. package/spec/v0.3.2/protocols/webrtc.md +600 -0
  382. package/spec/v0.3.2/protocols/websocket.md +362 -0
  383. package/spec/v0.3.2/runtime/RUNTIME.md +457 -0
  384. package/spec/v0.3.2/runtime/memory-model.yaml +871 -0
  385. package/spec/v0.3.2/runtime/runtime.yaml +926 -0
  386. package/spec/v0.3.2/schemas/agent-unified.yaml +165 -0
  387. package/spec/v0.3.2/schemas/capabilities.yaml +102 -0
  388. package/spec/v0.3.2/schemas/functions.yaml +75 -0
  389. package/spec/v0.3.2/schemas/messaging/channel.schema.json +245 -0
  390. package/spec/v0.3.2/schemas/messaging/delivery-receipt.schema.json +192 -0
  391. package/spec/v0.3.2/schemas/messaging/message.schema.json +205 -0
  392. package/spec/v0.3.2/schemas/messaging/subscription.schema.json +214 -0
  393. package/spec/v0.3.2/schemas/runtime.yaml +102 -0
  394. package/spec/v0.3.2/schemas/taxonomy.yaml +533 -0
  395. package/spec/v0.3.2/schemas/unified-llm.yaml +91 -0
  396. package/spec/v0.3.2/taxonomy.yaml +363 -0
  397. package/dist/types/generated/ossa-0.3.0.types.d.ts.map +0 -1
  398. package/dist/types/generated/ossa-0.3.0.types.js +0 -8
  399. package/dist/types/generated/ossa-0.3.0.types.js.map +0 -1
  400. package/dist/types/generated/ossa-0.3.0.zod.d.ts +0 -17
  401. package/dist/types/generated/ossa-0.3.0.zod.d.ts.map +0 -1
  402. package/dist/types/generated/ossa-0.3.0.zod.js +0 -3
  403. package/dist/types/generated/ossa-0.3.0.zod.js.map +0 -1
  404. package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +0 -60
  405. package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +0 -68
  406. package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +0 -106
@@ -0,0 +1,3316 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://openstandardagents.org/schemas/v0.3.2/manifest.json",
4
+ "title": "OSSA v0.3.2 Manifest Schema",
5
+ "description": "Open Standard for Scalable AI Agents (OSSA) v0.3.2 - Unified Task Schema with Access Tiers & Separation of Duties. Supports Agent (agentic loops with LLM), Task (deterministic workflow steps), and Workflow (composition of Tasks and Agents) kinds. Includes Agent-to-Agent Messaging Extension and Access Control Tiers for privilege separation.",
6
+ "type": "object",
7
+ "required": [
8
+ "apiVersion",
9
+ "kind",
10
+ "metadata"
11
+ ],
12
+ "properties": {
13
+ "apiVersion": {
14
+ "type": "string",
15
+ "pattern": "^ossa/v(0\\.3\\.[0-9]+(-[a-zA-Z0-9]+)?|0\\.2\\.[2-9](-dev)?|1)(\\.[0-9]+)?(-[a-zA-Z0-9]+)?$",
16
+ "description": "OSSA API version (v0.3.2+ supports Task and Workflow kinds)",
17
+ "examples": [
18
+ "ossa/v0.3.2",
19
+ "ossa/v1",
20
+ "ossa/v0.2.9"
21
+ ]
22
+ },
23
+ "kind": {
24
+ "type": "string",
25
+ "enum": [
26
+ "Agent",
27
+ "Task",
28
+ "Workflow"
29
+ ],
30
+ "description": "Resource type: Agent (agentic loops), Task (deterministic steps), or Workflow (composition)"
31
+ },
32
+ "metadata": {
33
+ "$ref": "#/definitions/Metadata"
34
+ },
35
+ "spec": {
36
+ "description": "Specification varies based on kind"
37
+ },
38
+ "extensions": {
39
+ "type": "object",
40
+ "description": "Framework-specific extensions",
41
+ "properties": {
42
+ "mcp": {
43
+ "$ref": "#/definitions/MCPExtension"
44
+ }
45
+ },
46
+ "additionalProperties": true
47
+ },
48
+ "runtime": {
49
+ "$ref": "#/definitions/RuntimeBinding",
50
+ "description": "Runtime-specific capability bindings (for Task and Workflow kinds)"
51
+ }
52
+ },
53
+ "allOf": [
54
+ {
55
+ "if": {
56
+ "properties": {
57
+ "kind": {
58
+ "const": "Agent"
59
+ }
60
+ }
61
+ },
62
+ "then": {
63
+ "properties": {
64
+ "spec": {
65
+ "$ref": "#/definitions/AgentSpec"
66
+ }
67
+ },
68
+ "required": [
69
+ "spec"
70
+ ]
71
+ }
72
+ },
73
+ {
74
+ "if": {
75
+ "properties": {
76
+ "kind": {
77
+ "const": "Task"
78
+ }
79
+ }
80
+ },
81
+ "then": {
82
+ "properties": {
83
+ "spec": {
84
+ "$ref": "#/definitions/TaskSpec"
85
+ }
86
+ },
87
+ "required": [
88
+ "spec"
89
+ ]
90
+ }
91
+ },
92
+ {
93
+ "if": {
94
+ "properties": {
95
+ "kind": {
96
+ "const": "Workflow"
97
+ }
98
+ }
99
+ },
100
+ "then": {
101
+ "properties": {
102
+ "spec": {
103
+ "$ref": "#/definitions/WorkflowSpec"
104
+ }
105
+ },
106
+ "required": [
107
+ "spec"
108
+ ]
109
+ }
110
+ }
111
+ ],
112
+ "definitions": {
113
+ "AccessTier": {
114
+ "type": "object",
115
+ "description": "Access tier configuration for separation of duties (v0.3.2+). Defines privilege levels and role separations for agents.",
116
+ "required": ["tier"],
117
+ "properties": {
118
+ "tier": {
119
+ "type": "string",
120
+ "enum": ["tier_1_read", "tier_2_write_limited", "tier_3_write_elevated", "tier_4_policy"],
121
+ "description": "Access tier level: tier_1_read (analyzers), tier_2_write_limited (workers), tier_3_write_elevated (operators), tier_4_policy (governors)"
122
+ },
123
+ "permissions": {
124
+ "type": "array",
125
+ "description": "Explicit permissions granted to this agent",
126
+ "items": {
127
+ "type": "string",
128
+ "enum": [
129
+ "read_code",
130
+ "read_configs",
131
+ "read_metrics",
132
+ "read_logs",
133
+ "read_issues",
134
+ "read_mrs",
135
+ "execute_queries",
136
+ "write_docs",
137
+ "write_tests",
138
+ "write_scaffolds",
139
+ "write_configs_draft",
140
+ "create_issues",
141
+ "create_mrs_draft",
142
+ "execute_sandboxed",
143
+ "write_production_code",
144
+ "merge_mrs",
145
+ "delete_branches",
146
+ "modify_infrastructure",
147
+ "modify_secrets",
148
+ "execute_deployments",
149
+ "modify_pipelines",
150
+ "modify_configs",
151
+ "execute_commands",
152
+ "define_policies",
153
+ "publish_policies",
154
+ "audit_compliance",
155
+ "report_violations"
156
+ ]
157
+ },
158
+ "uniqueItems": true
159
+ },
160
+ "prohibited": {
161
+ "type": "array",
162
+ "description": "Explicitly prohibited actions for this agent",
163
+ "items": {
164
+ "type": "string"
165
+ },
166
+ "uniqueItems": true
167
+ },
168
+ "audit_level": {
169
+ "type": "string",
170
+ "enum": ["standard", "detailed", "comprehensive"],
171
+ "default": "standard",
172
+ "description": "Audit logging level: standard (30 days), detailed (90 days), comprehensive (365 days)"
173
+ },
174
+ "requires_approval": {
175
+ "type": "boolean",
176
+ "default": false,
177
+ "description": "Whether operations require approval chain"
178
+ },
179
+ "approval_chain": {
180
+ "type": "string",
181
+ "enum": ["standard", "elevated", "critical"],
182
+ "description": "Approval workflow to use when requires_approval is true"
183
+ },
184
+ "isolation": {
185
+ "type": "string",
186
+ "enum": ["none", "standard", "strict"],
187
+ "default": "none",
188
+ "description": "Isolation level: none (default), standard (limited delegation), strict (no execution, policy only)"
189
+ }
190
+ },
191
+ "additionalProperties": false
192
+ },
193
+ "SeparationOfDuties": {
194
+ "type": "object",
195
+ "description": "Role separation rules for preventing conflicts of interest",
196
+ "properties": {
197
+ "role": {
198
+ "type": "string",
199
+ "description": "Primary role of this agent",
200
+ "enum": [
201
+ "analyzer",
202
+ "auditor",
203
+ "scanner",
204
+ "reviewer",
205
+ "monitor",
206
+ "generator",
207
+ "scaffolder",
208
+ "documenter",
209
+ "test_writer",
210
+ "deployer",
211
+ "operator",
212
+ "executor",
213
+ "maintainer",
214
+ "governor",
215
+ "policy_definer",
216
+ "compliance_officer",
217
+ "approver",
218
+ "critic",
219
+ "remediator",
220
+ "enforcer"
221
+ ]
222
+ },
223
+ "conflicts_with": {
224
+ "type": "array",
225
+ "description": "Roles that this agent must NOT also perform (separation of duties)",
226
+ "items": {
227
+ "type": "string"
228
+ },
229
+ "uniqueItems": true
230
+ },
231
+ "can_delegate_to": {
232
+ "type": "array",
233
+ "description": "Roles/tiers this agent can delegate tasks to",
234
+ "items": {
235
+ "type": "string"
236
+ },
237
+ "uniqueItems": true
238
+ },
239
+ "prohibited_actions": {
240
+ "type": "array",
241
+ "description": "Specific actions this role must never perform",
242
+ "items": {
243
+ "type": "string",
244
+ "enum": ["approve", "merge", "execute", "deploy", "delete", "modify_production", "define_policies", "bypass_approvals"]
245
+ },
246
+ "uniqueItems": true
247
+ }
248
+ },
249
+ "additionalProperties": false
250
+ },
251
+ "DelegationConfig": {
252
+ "type": "object",
253
+ "description": "Configuration for delegating tasks to other agents",
254
+ "properties": {
255
+ "enabled": {
256
+ "type": "boolean",
257
+ "default": true,
258
+ "description": "Whether this agent can delegate to others"
259
+ },
260
+ "allowed_tiers": {
261
+ "type": "array",
262
+ "description": "Tiers this agent can delegate to",
263
+ "items": {
264
+ "type": "string",
265
+ "enum": ["tier_1_read", "tier_2_write_limited", "tier_3_write_elevated"]
266
+ },
267
+ "uniqueItems": true
268
+ },
269
+ "allowed_operations": {
270
+ "type": "array",
271
+ "description": "Operations that can be delegated",
272
+ "items": {
273
+ "type": "string"
274
+ }
275
+ },
276
+ "requires": {
277
+ "type": "array",
278
+ "description": "Requirements for delegation",
279
+ "items": {
280
+ "type": "string",
281
+ "enum": ["delegation_token", "audit_trail", "violation_report", "task_specification", "approval"]
282
+ }
283
+ }
284
+ },
285
+ "additionalProperties": false
286
+ },
287
+ "TaxonomyClassification": {
288
+ "type": "object",
289
+ "description": "Hierarchical taxonomy classification for agents (v0.3.2+). Links to taxonomy.yaml spec.",
290
+ "required": ["domain"],
291
+ "properties": {
292
+ "domain": {
293
+ "type": "string",
294
+ "enum": ["security", "infrastructure", "documentation", "backend", "frontend", "data", "agents", "development", "content"],
295
+ "description": "Primary domain classification - every agent belongs to exactly one domain"
296
+ },
297
+ "subdomain": {
298
+ "type": "string",
299
+ "description": "Subdomain within the primary domain (e.g., auth, ci-cd, api-docs)"
300
+ },
301
+ "capability": {
302
+ "type": "string",
303
+ "pattern": "^[a-z][a-z0-9_]*$",
304
+ "description": "Primary capability this agent provides"
305
+ },
306
+ "concerns": {
307
+ "type": "array",
308
+ "description": "Cross-cutting concerns that apply to this agent",
309
+ "items": {
310
+ "type": "string",
311
+ "enum": ["quality", "observability", "governance", "performance", "architecture", "cost", "reliability"]
312
+ },
313
+ "uniqueItems": true
314
+ },
315
+ "recommended_tier": {
316
+ "type": "string",
317
+ "enum": ["tier_1_read", "tier_2_write_limited", "tier_3_write_elevated", "tier_4_policy"],
318
+ "description": "Recommended access tier based on domain defaults"
319
+ }
320
+ },
321
+ "additionalProperties": false
322
+ },
323
+ "AgentIdentity": {
324
+ "type": "object",
325
+ "description": "Comprehensive agent identity configuration for service accounts, authentication, and observability",
326
+ "properties": {
327
+ "provider": {
328
+ "type": "string",
329
+ "enum": ["gitlab", "github", "azure-devops", "bitbucket", "generic"],
330
+ "description": "Identity provider type for service account integration"
331
+ },
332
+ "service_account": {
333
+ "type": "object",
334
+ "description": "Service account details for automated operations",
335
+ "required": ["username", "email"],
336
+ "properties": {
337
+ "id": {
338
+ "oneOf": [{"type": "integer"}, {"type": "string"}],
339
+ "description": "Provider-specific account ID"
340
+ },
341
+ "username": {
342
+ "type": "string",
343
+ "pattern": "^[a-z0-9_\\[\\]-]+$",
344
+ "minLength": 1,
345
+ "maxLength": 64,
346
+ "description": "Service account username"
347
+ },
348
+ "email": {
349
+ "type": "string",
350
+ "format": "email",
351
+ "description": "Service account email for git attribution"
352
+ },
353
+ "display_name": {
354
+ "type": "string",
355
+ "description": "Human-readable display name"
356
+ },
357
+ "roles": {
358
+ "type": "array",
359
+ "items": {
360
+ "type": "string",
361
+ "enum": ["developer", "maintainer", "owner", "reporter", "guest"]
362
+ },
363
+ "description": "Roles assigned to this service account"
364
+ }
365
+ }
366
+ },
367
+ "authentication": {
368
+ "type": "object",
369
+ "description": "Authentication method configuration",
370
+ "properties": {
371
+ "method": {
372
+ "type": "string",
373
+ "enum": ["personal_access_token", "project_access_token", "group_access_token", "deploy_token", "oauth2", "ssh_key", "mtls", "github_app", "azure_service_principal"],
374
+ "default": "personal_access_token",
375
+ "description": "Authentication method type"
376
+ },
377
+ "scopes": {
378
+ "type": "array",
379
+ "items": {"type": "string"},
380
+ "description": "Required token scopes (provider-specific)"
381
+ },
382
+ "auto_refresh": {
383
+ "type": "boolean",
384
+ "default": false,
385
+ "description": "Automatically refresh token before expiry"
386
+ },
387
+ "expiry_warning_days": {
388
+ "type": "integer",
389
+ "default": 7,
390
+ "minimum": 1,
391
+ "maximum": 90,
392
+ "description": "Days before expiry to warn about token rotation"
393
+ },
394
+ "rotation_policy": {
395
+ "type": "object",
396
+ "properties": {
397
+ "enabled": {"type": "boolean", "default": false},
398
+ "interval_days": {"type": "integer", "default": 90, "minimum": 7, "maximum": 365},
399
+ "notify_on_rotation": {"type": "boolean", "default": true}
400
+ }
401
+ }
402
+ }
403
+ },
404
+ "token_source": {
405
+ "type": "object",
406
+ "description": "Token/credential source configuration with priority order",
407
+ "properties": {
408
+ "env_var": {
409
+ "type": "string",
410
+ "pattern": "^[A-Z][A-Z0-9_]*$",
411
+ "description": "Environment variable name containing the token (highest priority)"
412
+ },
413
+ "file_path": {
414
+ "type": "string",
415
+ "description": "Path to token file (second priority, supports ~ expansion)"
416
+ },
417
+ "vault": {
418
+ "type": "object",
419
+ "properties": {
420
+ "path": {"type": "string", "description": "Vault secret path"},
421
+ "key": {"type": "string", "default": "value"},
422
+ "role": {"type": "string", "description": "Vault role for authentication"}
423
+ }
424
+ },
425
+ "kubernetes_secret": {
426
+ "type": "object",
427
+ "properties": {
428
+ "name": {"type": "string"},
429
+ "namespace": {"type": "string"},
430
+ "key": {"type": "string", "default": "token"}
431
+ }
432
+ }
433
+ }
434
+ },
435
+ "patterns": {
436
+ "type": "array",
437
+ "items": {"type": "string"},
438
+ "description": "Glob patterns for auto-detection based on working directory (picomatch syntax)"
439
+ },
440
+ "fallback": {
441
+ "type": "array",
442
+ "items": {
443
+ "type": "object",
444
+ "required": ["provider", "service_account"],
445
+ "properties": {
446
+ "provider": {"type": "string", "enum": ["gitlab", "github", "azure-devops", "bitbucket", "generic"]},
447
+ "service_account": {"$ref": "#/definitions/AgentIdentity/properties/service_account"},
448
+ "token_source": {"$ref": "#/definitions/AgentIdentity/properties/token_source"},
449
+ "condition": {
450
+ "type": "object",
451
+ "properties": {
452
+ "pattern_match": {"type": "array", "items": {"type": "string"}},
453
+ "platform_unavailable": {"type": "boolean"}
454
+ }
455
+ }
456
+ }
457
+ },
458
+ "description": "Fallback identity chain for high availability"
459
+ },
460
+ "dora_tracking": {
461
+ "type": "object",
462
+ "description": "DORA metrics tracking configuration",
463
+ "properties": {
464
+ "enabled": {"type": "boolean", "default": false},
465
+ "metrics": {
466
+ "type": "array",
467
+ "items": {
468
+ "type": "string",
469
+ "enum": ["deployment_frequency", "lead_time", "change_failure_rate", "mttr"]
470
+ },
471
+ "uniqueItems": true
472
+ },
473
+ "labels": {
474
+ "type": "object",
475
+ "additionalProperties": {"type": "string"},
476
+ "description": "Additional labels for metrics"
477
+ },
478
+ "prometheus": {
479
+ "type": "object",
480
+ "properties": {
481
+ "push_gateway": {"type": "string", "format": "uri"},
482
+ "job_name": {"type": "string"}
483
+ }
484
+ }
485
+ }
486
+ },
487
+ "session": {
488
+ "type": "object",
489
+ "description": "Session management for Claude Code integration",
490
+ "properties": {
491
+ "init_on_start": {"type": "boolean", "default": true},
492
+ "propagate_to_subprocesses": {"type": "boolean", "default": true},
493
+ "git_attribution": {"type": "boolean", "default": true},
494
+ "heartbeat_interval": {"type": "integer", "default": 300, "minimum": 30, "maximum": 3600},
495
+ "timeout": {"type": "integer", "default": 3600, "minimum": 60, "maximum": 86400},
496
+ "hooks": {
497
+ "type": "object",
498
+ "properties": {
499
+ "pre_prompt_submit": {"type": "boolean", "default": true},
500
+ "post_session": {"type": "boolean", "default": false}
501
+ }
502
+ }
503
+ }
504
+ },
505
+ "observability": {
506
+ "type": "object",
507
+ "description": "OpenTelemetry service identity for distributed tracing",
508
+ "properties": {
509
+ "service_name": {"type": "string"},
510
+ "service_namespace": {"type": "string"},
511
+ "service_version": {"type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(-[a-zA-Z0-9.]+)?$"},
512
+ "service_instance_id": {"type": "string"},
513
+ "resource_attributes": {
514
+ "type": "object",
515
+ "additionalProperties": {"type": "string"}
516
+ }
517
+ }
518
+ },
519
+ "security": {
520
+ "type": "object",
521
+ "description": "Security policies for identity management",
522
+ "properties": {
523
+ "token_encryption": {
524
+ "type": "string",
525
+ "enum": ["none", "at_rest", "in_transit", "both"],
526
+ "default": "both"
527
+ },
528
+ "minimum_token_length": {"type": "integer", "default": 32},
529
+ "prohibited_actions": {
530
+ "type": "array",
531
+ "items": {"type": "string"}
532
+ },
533
+ "required_approvals": {
534
+ "type": "object",
535
+ "properties": {
536
+ "force_push": {"type": "boolean", "default": true},
537
+ "delete_protected_branch": {"type": "boolean", "default": true},
538
+ "modify_ci_config": {"type": "boolean", "default": false}
539
+ }
540
+ },
541
+ "rate_limits": {
542
+ "type": "object",
543
+ "properties": {
544
+ "requests_per_minute": {"type": "integer", "default": 60},
545
+ "requests_per_hour": {"type": "integer", "default": 1000},
546
+ "git_operations_per_hour": {"type": "integer", "default": 100}
547
+ }
548
+ }
549
+ }
550
+ }
551
+ },
552
+ "additionalProperties": false
553
+ },
554
+ "Metadata": {
555
+ "type": "object",
556
+ "required": [
557
+ "name"
558
+ ],
559
+ "properties": {
560
+ "name": {
561
+ "type": "string",
562
+ "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$",
563
+ "maxLength": 253,
564
+ "description": "Resource identifier (DNS-1123 subdomain format for Kubernetes compatibility)"
565
+ },
566
+ "version": {
567
+ "type": "string",
568
+ "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-]+)*))?$",
569
+ "description": "Semantic version (semver 2.0.0)"
570
+ },
571
+ "description": {
572
+ "type": "string",
573
+ "maxLength": 2000,
574
+ "description": "Human-readable description"
575
+ },
576
+ "labels": {
577
+ "type": "object",
578
+ "additionalProperties": {
579
+ "type": "string",
580
+ "maxLength": 63
581
+ },
582
+ "description": "Key-value labels for organization and filtering"
583
+ },
584
+ "annotations": {
585
+ "type": "object",
586
+ "additionalProperties": {
587
+ "type": "string"
588
+ },
589
+ "description": "Arbitrary metadata for tooling"
590
+ }
591
+ },
592
+ "additionalProperties": false
593
+ },
594
+ "TaskSpec": {
595
+ "type": "object",
596
+ "description": "Specification for deterministic, non-agentic workflow steps (kind: Task)",
597
+ "required": [
598
+ "execution"
599
+ ],
600
+ "properties": {
601
+ "execution": {
602
+ "type": "object",
603
+ "description": "Execution configuration for the task",
604
+ "required": [
605
+ "type"
606
+ ],
607
+ "properties": {
608
+ "type": {
609
+ "type": "string",
610
+ "enum": [
611
+ "deterministic",
612
+ "idempotent",
613
+ "transactional"
614
+ ],
615
+ "default": "deterministic",
616
+ "description": "Execution type: deterministic (pure function), idempotent (safe to retry), transactional (all-or-nothing)"
617
+ },
618
+ "runtime": {
619
+ "type": "string",
620
+ "description": "Target runtime environment",
621
+ "examples": [
622
+ "drupal",
623
+ "symfony",
624
+ "node",
625
+ "python",
626
+ "any"
627
+ ]
628
+ },
629
+ "entrypoint": {
630
+ "type": "string",
631
+ "description": "Entry point for execution (class::method, function name, or script path)"
632
+ },
633
+ "timeout_seconds": {
634
+ "type": "integer",
635
+ "minimum": 1,
636
+ "maximum": 86400,
637
+ "default": 300,
638
+ "description": "Maximum execution time in seconds"
639
+ }
640
+ },
641
+ "additionalProperties": false
642
+ },
643
+ "capabilities": {
644
+ "type": "array",
645
+ "description": "Abstract capabilities this task requires (bound at runtime)",
646
+ "items": {
647
+ "type": "string",
648
+ "pattern": "^[a-z][a-z0-9_]*$",
649
+ "description": "Capability identifier (e.g., publish_content, send_email)"
650
+ },
651
+ "uniqueItems": true,
652
+ "examples": [
653
+ [
654
+ "publish_content",
655
+ "send_notification"
656
+ ],
657
+ [
658
+ "transform_data",
659
+ "validate_schema"
660
+ ]
661
+ ]
662
+ },
663
+ "input": {
664
+ "$ref": "#/definitions/JSONSchemaDefinition",
665
+ "description": "JSON Schema for task input validation"
666
+ },
667
+ "output": {
668
+ "$ref": "#/definitions/JSONSchemaDefinition",
669
+ "description": "JSON Schema for task output validation"
670
+ },
671
+ "batch": {
672
+ "type": "object",
673
+ "description": "Batch processing configuration",
674
+ "properties": {
675
+ "enabled": {
676
+ "type": "boolean",
677
+ "default": false,
678
+ "description": "Enable batch processing mode"
679
+ },
680
+ "parallelism": {
681
+ "type": "integer",
682
+ "minimum": 1,
683
+ "maximum": 1000,
684
+ "default": 10,
685
+ "description": "Maximum parallel executions"
686
+ },
687
+ "chunk_size": {
688
+ "type": "integer",
689
+ "minimum": 1,
690
+ "default": 100,
691
+ "description": "Items per batch chunk"
692
+ },
693
+ "retry": {
694
+ "type": "object",
695
+ "properties": {
696
+ "max_attempts": {
697
+ "type": "integer",
698
+ "minimum": 1,
699
+ "maximum": 10,
700
+ "default": 3
701
+ },
702
+ "backoff_strategy": {
703
+ "type": "string",
704
+ "enum": [
705
+ "fixed",
706
+ "exponential",
707
+ "linear"
708
+ ],
709
+ "default": "exponential"
710
+ },
711
+ "initial_delay_ms": {
712
+ "type": "integer",
713
+ "minimum": 100,
714
+ "default": 1000
715
+ }
716
+ },
717
+ "additionalProperties": false
718
+ },
719
+ "on_item_error": {
720
+ "type": "string",
721
+ "enum": [
722
+ "skip",
723
+ "fail",
724
+ "retry"
725
+ ],
726
+ "default": "retry",
727
+ "description": "Behavior when individual item fails"
728
+ }
729
+ },
730
+ "additionalProperties": false
731
+ },
732
+ "dependencies": {
733
+ "type": "array",
734
+ "description": "Other tasks or agents this task depends on",
735
+ "items": {
736
+ "type": "object",
737
+ "required": [
738
+ "ref"
739
+ ],
740
+ "properties": {
741
+ "ref": {
742
+ "type": "string",
743
+ "description": "Reference to dependency (file path or name)"
744
+ },
745
+ "kind": {
746
+ "type": "string",
747
+ "enum": [
748
+ "Task",
749
+ "Agent"
750
+ ],
751
+ "description": "Kind of dependency"
752
+ },
753
+ "optional": {
754
+ "type": "boolean",
755
+ "default": false,
756
+ "description": "Whether this dependency is optional"
757
+ }
758
+ },
759
+ "additionalProperties": false
760
+ }
761
+ },
762
+ "preconditions": {
763
+ "type": "array",
764
+ "description": "Conditions that must be true before task execution",
765
+ "items": {
766
+ "type": "object",
767
+ "required": [
768
+ "expression"
769
+ ],
770
+ "properties": {
771
+ "expression": {
772
+ "type": "string",
773
+ "description": "Condition expression (e.g., '${{ input.status == \"draft\" }}')"
774
+ },
775
+ "error_message": {
776
+ "type": "string",
777
+ "description": "Error message if condition fails"
778
+ }
779
+ },
780
+ "additionalProperties": false
781
+ }
782
+ },
783
+ "postconditions": {
784
+ "type": "array",
785
+ "description": "Conditions that must be true after task execution",
786
+ "items": {
787
+ "type": "object",
788
+ "required": [
789
+ "expression"
790
+ ],
791
+ "properties": {
792
+ "expression": {
793
+ "type": "string",
794
+ "description": "Condition expression"
795
+ },
796
+ "error_message": {
797
+ "type": "string"
798
+ }
799
+ },
800
+ "additionalProperties": false
801
+ }
802
+ },
803
+ "error_handling": {
804
+ "type": "object",
805
+ "description": "Error handling configuration",
806
+ "properties": {
807
+ "on_error": {
808
+ "type": "string",
809
+ "enum": [
810
+ "fail",
811
+ "retry",
812
+ "fallback",
813
+ "ignore"
814
+ ],
815
+ "default": "fail"
816
+ },
817
+ "fallback_task": {
818
+ "type": "string",
819
+ "description": "Reference to fallback task on failure"
820
+ },
821
+ "error_mapping": {
822
+ "type": "object",
823
+ "description": "Map error codes to actions",
824
+ "additionalProperties": {
825
+ "type": "string",
826
+ "enum": [
827
+ "fail",
828
+ "retry",
829
+ "fallback",
830
+ "ignore"
831
+ ]
832
+ }
833
+ }
834
+ },
835
+ "additionalProperties": false
836
+ },
837
+ "observability": {
838
+ "type": "object",
839
+ "description": "Observability configuration",
840
+ "properties": {
841
+ "logging": {
842
+ "type": "object",
843
+ "properties": {
844
+ "level": {
845
+ "type": "string",
846
+ "enum": [
847
+ "debug",
848
+ "info",
849
+ "warn",
850
+ "error"
851
+ ],
852
+ "default": "info"
853
+ },
854
+ "include_input": {
855
+ "type": "boolean",
856
+ "default": false,
857
+ "description": "Log input data (caution: may contain sensitive data)"
858
+ },
859
+ "include_output": {
860
+ "type": "boolean",
861
+ "default": false,
862
+ "description": "Log output data"
863
+ }
864
+ }
865
+ },
866
+ "metrics": {
867
+ "type": "object",
868
+ "properties": {
869
+ "enabled": {
870
+ "type": "boolean",
871
+ "default": true
872
+ },
873
+ "custom_labels": {
874
+ "type": "object",
875
+ "additionalProperties": {
876
+ "type": "string"
877
+ }
878
+ }
879
+ }
880
+ },
881
+ "tracing": {
882
+ "type": "object",
883
+ "properties": {
884
+ "enabled": {
885
+ "type": "boolean",
886
+ "default": true
887
+ },
888
+ "sample_rate": {
889
+ "type": "number",
890
+ "minimum": 0,
891
+ "maximum": 1,
892
+ "default": 1
893
+ }
894
+ }
895
+ }
896
+ },
897
+ "additionalProperties": false
898
+ }
899
+ },
900
+ "additionalProperties": false
901
+ },
902
+ "AgentSpec": {
903
+ "type": "object",
904
+ "description": "Specification for agentic loops with LLM (kind: Agent) - inherits from v0.2.9. Either 'role' or 'prompts.system.template' is required.",
905
+ "properties": {
906
+ "role": {
907
+ "type": "string",
908
+ "minLength": 1,
909
+ "description": "Agent role/system prompt (alternative: use prompts.system.template)"
910
+ },
911
+ "prompts": {
912
+ "type": "object",
913
+ "description": "Structured prompts configuration (alternative to role)",
914
+ "properties": {
915
+ "system": {
916
+ "type": "object",
917
+ "properties": {
918
+ "template": {
919
+ "type": "string",
920
+ "description": "System prompt template"
921
+ },
922
+ "version": {
923
+ "type": "string",
924
+ "description": "Prompt version"
925
+ }
926
+ }
927
+ }
928
+ },
929
+ "additionalProperties": true
930
+ },
931
+ "llm": {
932
+ "$ref": "#/definitions/LLMConfig"
933
+ },
934
+ "tools": {
935
+ "type": "array",
936
+ "items": {
937
+ "$ref": "#/definitions/Tool"
938
+ }
939
+ },
940
+ "autonomy": {
941
+ "$ref": "#/definitions/Autonomy"
942
+ },
943
+ "constraints": {
944
+ "$ref": "#/definitions/Constraints"
945
+ },
946
+ "state": {
947
+ "$ref": "#/definitions/State"
948
+ },
949
+ "observability": {
950
+ "$ref": "#/definitions/AgentObservability"
951
+ },
952
+ "safety": {
953
+ "$ref": "#/definitions/Safety"
954
+ },
955
+ "messaging": {
956
+ "$ref": "#/definitions/MessagingExtension",
957
+ "description": "Agent-to-agent messaging configuration (v0.3.2+)"
958
+ },
959
+ "functions": {
960
+ "type": "array",
961
+ "description": "A2A/OpenAI-style function definitions for structured tool calling",
962
+ "items": {
963
+ "$ref": "#/definitions/FunctionDefinition"
964
+ }
965
+ },
966
+ "identity": {
967
+ "$ref": "#/definitions/AgentIdentity",
968
+ "description": "Agent identity configuration including service accounts, authentication, and observability (v0.3.2+)"
969
+ },
970
+ "access": {
971
+ "$ref": "#/definitions/AccessTier",
972
+ "description": "Access tier configuration for separation of duties (v0.3.2+). Defines privilege level and allowed operations."
973
+ },
974
+ "separation": {
975
+ "$ref": "#/definitions/SeparationOfDuties",
976
+ "description": "Role separation configuration to prevent conflicts of interest (v0.3.2+)"
977
+ },
978
+ "delegation": {
979
+ "$ref": "#/definitions/DelegationConfig",
980
+ "description": "Delegation configuration for multi-agent hierarchies (v0.3.2+)"
981
+ },
982
+ "type": {
983
+ "type": "string",
984
+ "enum": ["analyzer", "worker", "operator", "supervisor", "orchestrator", "governor", "specialist", "critic"],
985
+ "description": "Agent type classification aligned with access tiers (v0.3.2+)"
986
+ },
987
+ "taxonomy": {
988
+ "$ref": "#/definitions/TaxonomyClassification",
989
+ "description": "Taxonomy classification for domain and cross-cutting concerns (v0.3.2+)"
990
+ },
991
+ "compliance": {
992
+ "type": "object",
993
+ "description": "Regulatory compliance and data governance configuration",
994
+ "properties": {
995
+ "frameworks": {
996
+ "type": "array",
997
+ "description": "Applicable compliance frameworks",
998
+ "items": {
999
+ "type": "string",
1000
+ "enum": [
1001
+ "SOC2",
1002
+ "HIPAA",
1003
+ "GDPR",
1004
+ "FedRAMP",
1005
+ "PCI-DSS",
1006
+ "ISO27001"
1007
+ ]
1008
+ },
1009
+ "uniqueItems": true
1010
+ },
1011
+ "data_residency": {
1012
+ "type": "string",
1013
+ "description": "Required data residency region (e.g., us-east-1, eu-west-1)"
1014
+ },
1015
+ "audit_logging": {
1016
+ "type": "string",
1017
+ "enum": [
1018
+ "required",
1019
+ "optional",
1020
+ "disabled"
1021
+ ],
1022
+ "default": "optional",
1023
+ "description": "Audit logging requirement level"
1024
+ },
1025
+ "pii_handling": {
1026
+ "type": "string",
1027
+ "enum": [
1028
+ "encrypt_at_rest",
1029
+ "anonymize",
1030
+ "redact",
1031
+ "none"
1032
+ ],
1033
+ "default": "none",
1034
+ "description": "Personally Identifiable Information handling strategy"
1035
+ }
1036
+ },
1037
+ "additionalProperties": false
1038
+ },
1039
+ "lifecycle": {
1040
+ "type": "object",
1041
+ "description": "Agent lifecycle and environment management configuration",
1042
+ "properties": {
1043
+ "environments": {
1044
+ "type": "object",
1045
+ "description": "Environment-specific configurations",
1046
+ "additionalProperties": {
1047
+ "type": "object",
1048
+ "description": "Configuration for a specific environment (e.g., development, staging, production)",
1049
+ "additionalProperties": true
1050
+ }
1051
+ },
1052
+ "dependencies": {
1053
+ "type": "array",
1054
+ "description": "External dependencies required by this agent",
1055
+ "items": {
1056
+ "type": "object",
1057
+ "required": [
1058
+ "name",
1059
+ "version"
1060
+ ],
1061
+ "properties": {
1062
+ "name": {
1063
+ "type": "string",
1064
+ "description": "Dependency name"
1065
+ },
1066
+ "version": {
1067
+ "type": "string",
1068
+ "description": "Dependency version (semver recommended)"
1069
+ },
1070
+ "type": {
1071
+ "type": "string",
1072
+ "enum": [
1073
+ "runtime",
1074
+ "build",
1075
+ "optional"
1076
+ ],
1077
+ "default": "runtime",
1078
+ "description": "Dependency type"
1079
+ },
1080
+ "source": {
1081
+ "type": "string",
1082
+ "description": "Dependency source (e.g., npm, pip, composer, docker)"
1083
+ }
1084
+ },
1085
+ "additionalProperties": false
1086
+ }
1087
+ }
1088
+ },
1089
+ "additionalProperties": false
1090
+ }
1091
+ },
1092
+ "additionalProperties": true
1093
+ },
1094
+ "WorkflowSpec": {
1095
+ "type": "object",
1096
+ "description": "Specification for workflow composition (kind: Workflow) - composes Tasks and Agents into executable pipelines",
1097
+ "required": [
1098
+ "steps"
1099
+ ],
1100
+ "properties": {
1101
+ "triggers": {
1102
+ "type": "array",
1103
+ "description": "Events that trigger workflow execution",
1104
+ "items": {
1105
+ "$ref": "#/definitions/Trigger"
1106
+ }
1107
+ },
1108
+ "inputs": {
1109
+ "$ref": "#/definitions/JSONSchemaDefinition",
1110
+ "description": "JSON Schema for workflow input validation"
1111
+ },
1112
+ "outputs": {
1113
+ "$ref": "#/definitions/JSONSchemaDefinition",
1114
+ "description": "JSON Schema for workflow output validation"
1115
+ },
1116
+ "steps": {
1117
+ "type": "array",
1118
+ "description": "Workflow steps (Tasks and/or Agents)",
1119
+ "minItems": 1,
1120
+ "items": {
1121
+ "$ref": "#/definitions/WorkflowStep"
1122
+ }
1123
+ },
1124
+ "context": {
1125
+ "type": "object",
1126
+ "description": "Shared context available to all steps",
1127
+ "properties": {
1128
+ "variables": {
1129
+ "type": "object",
1130
+ "description": "Workflow-level variables",
1131
+ "additionalProperties": true
1132
+ },
1133
+ "secrets": {
1134
+ "type": "array",
1135
+ "description": "Secret references available to steps",
1136
+ "items": {
1137
+ "type": "object",
1138
+ "properties": {
1139
+ "name": {
1140
+ "type": "string",
1141
+ "description": "Secret name available to steps"
1142
+ },
1143
+ "ref": {
1144
+ "type": "string",
1145
+ "description": "Secret reference (e.g., vault://secret/api-key)"
1146
+ }
1147
+ },
1148
+ "required": [
1149
+ "name",
1150
+ "ref"
1151
+ ]
1152
+ }
1153
+ }
1154
+ },
1155
+ "additionalProperties": false
1156
+ },
1157
+ "concurrency": {
1158
+ "type": "object",
1159
+ "description": "Concurrency control",
1160
+ "properties": {
1161
+ "group": {
1162
+ "type": "string",
1163
+ "description": "Concurrency group name (workflows in same group are serialized)"
1164
+ },
1165
+ "cancel_in_progress": {
1166
+ "type": "boolean",
1167
+ "default": false,
1168
+ "description": "Cancel running workflow if new one starts in same group"
1169
+ }
1170
+ },
1171
+ "additionalProperties": false
1172
+ },
1173
+ "error_handling": {
1174
+ "type": "object",
1175
+ "description": "Workflow-level error handling",
1176
+ "properties": {
1177
+ "on_failure": {
1178
+ "type": "string",
1179
+ "enum": [
1180
+ "halt",
1181
+ "continue",
1182
+ "rollback",
1183
+ "notify",
1184
+ "compensate",
1185
+ "compensation"
1186
+ ],
1187
+ "default": "halt",
1188
+ "description": "Action on step failure"
1189
+ },
1190
+ "compensation_steps": {
1191
+ "type": "array",
1192
+ "description": "Steps to run on rollback/compensate",
1193
+ "items": {
1194
+ "$ref": "#/definitions/WorkflowStep"
1195
+ }
1196
+ },
1197
+ "notification": {
1198
+ "type": "object",
1199
+ "description": "Notification on failure",
1200
+ "properties": {
1201
+ "channels": {
1202
+ "type": "array",
1203
+ "items": {
1204
+ "type": "string",
1205
+ "enum": [
1206
+ "email",
1207
+ "slack",
1208
+ "webhook",
1209
+ "pagerduty"
1210
+ ]
1211
+ }
1212
+ },
1213
+ "template": {
1214
+ "type": "string",
1215
+ "description": "Notification template reference"
1216
+ }
1217
+ }
1218
+ },
1219
+ "retry_policy": {
1220
+ "type": "object",
1221
+ "properties": {
1222
+ "max_attempts": {
1223
+ "type": "integer",
1224
+ "minimum": 1,
1225
+ "maximum": 10,
1226
+ "default": 3
1227
+ },
1228
+ "backoff": {
1229
+ "type": "string",
1230
+ "enum": [
1231
+ "fixed",
1232
+ "exponential",
1233
+ "linear"
1234
+ ],
1235
+ "default": "exponential"
1236
+ },
1237
+ "initial_delay_ms": {
1238
+ "type": "integer",
1239
+ "minimum": 100,
1240
+ "default": 1000
1241
+ },
1242
+ "max_delay_ms": {
1243
+ "type": "integer",
1244
+ "default": 60000
1245
+ }
1246
+ }
1247
+ }
1248
+ },
1249
+ "additionalProperties": true
1250
+ },
1251
+ "timeout_seconds": {
1252
+ "type": "integer",
1253
+ "minimum": 1,
1254
+ "maximum": 86400,
1255
+ "description": "Maximum workflow execution time in seconds"
1256
+ },
1257
+ "observability": {
1258
+ "type": "object",
1259
+ "description": "Workflow observability configuration",
1260
+ "properties": {
1261
+ "tracing": {
1262
+ "type": "object",
1263
+ "properties": {
1264
+ "enabled": {
1265
+ "type": "boolean",
1266
+ "default": true
1267
+ },
1268
+ "propagate_context": {
1269
+ "type": "boolean",
1270
+ "default": true,
1271
+ "description": "Propagate trace context to steps"
1272
+ }
1273
+ }
1274
+ },
1275
+ "metrics": {
1276
+ "type": "object",
1277
+ "properties": {
1278
+ "enabled": {
1279
+ "type": "boolean",
1280
+ "default": true
1281
+ },
1282
+ "custom_labels": {
1283
+ "type": "object",
1284
+ "additionalProperties": {
1285
+ "type": "string"
1286
+ }
1287
+ }
1288
+ }
1289
+ },
1290
+ "logging": {
1291
+ "type": "object",
1292
+ "properties": {
1293
+ "level": {
1294
+ "type": "string",
1295
+ "enum": [
1296
+ "debug",
1297
+ "info",
1298
+ "warn",
1299
+ "error"
1300
+ ],
1301
+ "default": "info"
1302
+ }
1303
+ }
1304
+ }
1305
+ },
1306
+ "additionalProperties": true
1307
+ }
1308
+ },
1309
+ "additionalProperties": true
1310
+ },
1311
+ "RuntimeBinding": {
1312
+ "type": "object",
1313
+ "description": "Multi-runtime compatibility declaration",
1314
+ "properties": {
1315
+ "type": {
1316
+ "type": "string",
1317
+ "description": "Primary runtime type",
1318
+ "enum": [
1319
+ "unified",
1320
+ "google-a2a",
1321
+ "gitlab-duo",
1322
+ "ossa-mesh",
1323
+ "mcp",
1324
+ "local",
1325
+ "drupal",
1326
+ "symfony_messenger",
1327
+ "kagent",
1328
+ "temporal",
1329
+ "node"
1330
+ ],
1331
+ "default": "unified"
1332
+ },
1333
+ "supports": {
1334
+ "type": "array",
1335
+ "description": "List of compatible runtimes",
1336
+ "items": {
1337
+ "type": "string",
1338
+ "enum": [
1339
+ "google-a2a",
1340
+ "gitlab-duo",
1341
+ "ossa-mesh",
1342
+ "mcp",
1343
+ "local-execution",
1344
+ "kubernetes",
1345
+ "serverless",
1346
+ "lambda",
1347
+ "cloudflare-workers",
1348
+ "drupal",
1349
+ "symfony"
1350
+ ]
1351
+ },
1352
+ "uniqueItems": true
1353
+ },
1354
+ "transport": {
1355
+ "type": "string",
1356
+ "description": "Message transport for async runtimes",
1357
+ "examples": [
1358
+ "async",
1359
+ "sync",
1360
+ "amqp",
1361
+ "redis"
1362
+ ]
1363
+ },
1364
+ "scheduling": {
1365
+ "$ref": "#/definitions/SchedulingConfig",
1366
+ "description": "Agent scheduling configuration"
1367
+ },
1368
+ "resource_limits": {
1369
+ "$ref": "#/definitions/ResourceLimits",
1370
+ "description": "Compute resource constraints"
1371
+ },
1372
+ "extensions": {
1373
+ "type": "array",
1374
+ "description": "External runtime extensions",
1375
+ "items": {
1376
+ "$ref": "#/definitions/RuntimeExtension"
1377
+ }
1378
+ },
1379
+ "bindings": {
1380
+ "type": "object",
1381
+ "description": "Map of capability names to runtime-specific handlers",
1382
+ "additionalProperties": {
1383
+ "type": "object",
1384
+ "properties": {
1385
+ "handler": {
1386
+ "type": "string",
1387
+ "description": "Handler class/function (e.g., 'Drupal\\node\\NodeQuery::getList')"
1388
+ },
1389
+ "mcp_server": {
1390
+ "type": "string",
1391
+ "description": "MCP server name for MCP-based bindings"
1392
+ },
1393
+ "tool": {
1394
+ "type": "string",
1395
+ "description": "Tool name within MCP server"
1396
+ },
1397
+ "config": {
1398
+ "type": "object",
1399
+ "description": "Additional binding configuration",
1400
+ "additionalProperties": true
1401
+ }
1402
+ },
1403
+ "additionalProperties": false
1404
+ }
1405
+ },
1406
+ "kubernetes": {
1407
+ "$ref": "#/definitions/KubernetesConfig",
1408
+ "description": "Kubernetes-specific configuration (KAS-inspired)"
1409
+ }
1410
+ },
1411
+ "additionalProperties": false
1412
+ },
1413
+ "Trigger": {
1414
+ "type": "object",
1415
+ "description": "Workflow trigger configuration",
1416
+ "required": [
1417
+ "type"
1418
+ ],
1419
+ "properties": {
1420
+ "type": {
1421
+ "type": "string",
1422
+ "enum": [
1423
+ "webhook",
1424
+ "cron",
1425
+ "event",
1426
+ "manual"
1427
+ ],
1428
+ "description": "Trigger type"
1429
+ },
1430
+ "path": {
1431
+ "type": "string",
1432
+ "description": "Webhook path (for type=webhook)"
1433
+ },
1434
+ "schedule": {
1435
+ "type": "string",
1436
+ "description": "Cron expression (for type=cron)",
1437
+ "examples": [
1438
+ "0 8 * * *",
1439
+ "*/15 * * * *"
1440
+ ]
1441
+ },
1442
+ "source": {
1443
+ "type": "string",
1444
+ "description": "Event source (for type=event)",
1445
+ "examples": [
1446
+ "drupal",
1447
+ "kafka",
1448
+ "webhook"
1449
+ ]
1450
+ },
1451
+ "event": {
1452
+ "type": "string",
1453
+ "description": "Event name (for type=event)",
1454
+ "examples": [
1455
+ "node.created",
1456
+ "user.login",
1457
+ "order.placed"
1458
+ ]
1459
+ },
1460
+ "filter": {
1461
+ "type": "object",
1462
+ "description": "Event filter conditions",
1463
+ "additionalProperties": true
1464
+ }
1465
+ },
1466
+ "additionalProperties": true
1467
+ },
1468
+ "WorkflowStep": {
1469
+ "type": "object",
1470
+ "description": "A step in a workflow - can be a Task, Agent, or control structure",
1471
+ "required": [
1472
+ "id"
1473
+ ],
1474
+ "properties": {
1475
+ "id": {
1476
+ "type": "string",
1477
+ "pattern": "^[a-z][a-z0-9_-]*$",
1478
+ "description": "Step identifier (unique within workflow)"
1479
+ },
1480
+ "name": {
1481
+ "type": "string",
1482
+ "description": "Human-readable step name for display"
1483
+ },
1484
+ "kind": {
1485
+ "type": "string",
1486
+ "enum": [
1487
+ "Task",
1488
+ "Agent",
1489
+ "Parallel",
1490
+ "Conditional",
1491
+ "Loop"
1492
+ ],
1493
+ "description": "Step type"
1494
+ },
1495
+ "ref": {
1496
+ "type": "string",
1497
+ "description": "Reference to Task or Agent manifest file",
1498
+ "examples": [
1499
+ "./tasks/publish-content.yaml",
1500
+ "./agents/content-reviewer.yaml"
1501
+ ]
1502
+ },
1503
+ "inline": {
1504
+ "type": "object",
1505
+ "description": "Inline Task or Agent specification (alternative to ref)"
1506
+ },
1507
+ "input": {
1508
+ "type": "object",
1509
+ "description": "Input mapping using expression syntax",
1510
+ "additionalProperties": true,
1511
+ "examples": [
1512
+ {
1513
+ "content": "${{ steps.fetch.output.content }}",
1514
+ "priority": "${{ workflow.input.priority }}"
1515
+ }
1516
+ ]
1517
+ },
1518
+ "output": {
1519
+ "type": "object",
1520
+ "description": "Output mapping to workflow context",
1521
+ "properties": {
1522
+ "to": {
1523
+ "type": "string",
1524
+ "description": "Variable name to store output"
1525
+ },
1526
+ "fields": {
1527
+ "type": "array",
1528
+ "items": {
1529
+ "type": "string"
1530
+ },
1531
+ "description": "Specific fields to extract from output"
1532
+ }
1533
+ }
1534
+ },
1535
+ "condition": {
1536
+ "type": "string",
1537
+ "description": "Condition expression for conditional execution",
1538
+ "examples": [
1539
+ "${{ steps.review.output.approved }}",
1540
+ "${{ workflow.input.priority == 'high' }}",
1541
+ "${{ steps.check.output.status == 'ready' && context.retry_count < 3 }}"
1542
+ ]
1543
+ },
1544
+ "depends_on": {
1545
+ "type": "array",
1546
+ "description": "Explicit dependencies on other steps",
1547
+ "items": {
1548
+ "type": "string"
1549
+ },
1550
+ "examples": [
1551
+ [
1552
+ "fetch",
1553
+ "validate"
1554
+ ]
1555
+ ]
1556
+ },
1557
+ "parallel": {
1558
+ "type": "array",
1559
+ "description": "Steps to run in parallel (for kind: Parallel)",
1560
+ "items": {
1561
+ "$ref": "#/definitions/WorkflowStep"
1562
+ }
1563
+ },
1564
+ "branches": {
1565
+ "type": "array",
1566
+ "description": "Conditional branches (for kind: Conditional)",
1567
+ "items": {
1568
+ "type": "object",
1569
+ "properties": {
1570
+ "condition": {
1571
+ "type": "string",
1572
+ "description": "Branch condition expression"
1573
+ },
1574
+ "steps": {
1575
+ "type": "array",
1576
+ "items": {
1577
+ "$ref": "#/definitions/WorkflowStep"
1578
+ }
1579
+ }
1580
+ },
1581
+ "required": [
1582
+ "condition",
1583
+ "steps"
1584
+ ]
1585
+ }
1586
+ },
1587
+ "else": {
1588
+ "type": "array",
1589
+ "description": "Steps to run if no branch condition matches (for kind: Conditional)",
1590
+ "items": {
1591
+ "$ref": "#/definitions/WorkflowStep"
1592
+ }
1593
+ },
1594
+ "loop": {
1595
+ "type": "object",
1596
+ "description": "Loop configuration (for kind: Loop)",
1597
+ "properties": {
1598
+ "over": {
1599
+ "type": "string",
1600
+ "description": "Expression returning array to iterate over",
1601
+ "examples": [
1602
+ "${{ steps.fetch.output.items }}",
1603
+ "${{ workflow.input.recipients }}"
1604
+ ]
1605
+ },
1606
+ "as": {
1607
+ "type": "string",
1608
+ "description": "Variable name for current item",
1609
+ "default": "item"
1610
+ },
1611
+ "index": {
1612
+ "type": "string",
1613
+ "description": "Variable name for current index",
1614
+ "default": "index"
1615
+ },
1616
+ "parallelism": {
1617
+ "type": "integer",
1618
+ "minimum": 1,
1619
+ "description": "Maximum parallel iterations"
1620
+ }
1621
+ },
1622
+ "required": [
1623
+ "over"
1624
+ ]
1625
+ },
1626
+ "steps": {
1627
+ "type": "array",
1628
+ "description": "Nested steps (for Loop and Conditional kinds)",
1629
+ "items": {
1630
+ "$ref": "#/definitions/WorkflowStep"
1631
+ }
1632
+ },
1633
+ "retry": {
1634
+ "type": "object",
1635
+ "description": "Step-specific retry configuration",
1636
+ "properties": {
1637
+ "max_attempts": {
1638
+ "type": "integer",
1639
+ "minimum": 1,
1640
+ "maximum": 10,
1641
+ "default": 3
1642
+ },
1643
+ "backoff_strategy": {
1644
+ "type": "string",
1645
+ "enum": [
1646
+ "fixed",
1647
+ "exponential",
1648
+ "linear"
1649
+ ],
1650
+ "default": "exponential"
1651
+ },
1652
+ "initial_delay_ms": {
1653
+ "type": "integer",
1654
+ "minimum": 100,
1655
+ "default": 1000
1656
+ },
1657
+ "retryable_errors": {
1658
+ "type": "array",
1659
+ "items": {
1660
+ "type": "string"
1661
+ },
1662
+ "description": "Error codes that should trigger retry"
1663
+ }
1664
+ }
1665
+ },
1666
+ "timeout_seconds": {
1667
+ "type": "integer",
1668
+ "minimum": 1,
1669
+ "maximum": 86400,
1670
+ "description": "Step-specific timeout"
1671
+ },
1672
+ "continue_on_error": {
1673
+ "type": "boolean",
1674
+ "default": false,
1675
+ "description": "Continue workflow even if this step fails"
1676
+ },
1677
+ "on_error": {
1678
+ "type": "object",
1679
+ "description": "Step-specific error handling",
1680
+ "properties": {
1681
+ "action": {
1682
+ "type": "string",
1683
+ "enum": [
1684
+ "fail",
1685
+ "continue",
1686
+ "goto",
1687
+ "compensate"
1688
+ ],
1689
+ "default": "fail"
1690
+ },
1691
+ "goto": {
1692
+ "type": "string",
1693
+ "description": "Step ID to jump to on error (for action: goto)"
1694
+ },
1695
+ "compensation": {
1696
+ "$ref": "#/definitions/WorkflowStep",
1697
+ "description": "Compensation step to run on error"
1698
+ }
1699
+ }
1700
+ },
1701
+ "labels": {
1702
+ "type": "object",
1703
+ "description": "Step labels for filtering and organization",
1704
+ "additionalProperties": {
1705
+ "type": "string"
1706
+ }
1707
+ }
1708
+ },
1709
+ "additionalProperties": true
1710
+ },
1711
+ "JSONSchemaDefinition": {
1712
+ "type": "object",
1713
+ "description": "JSON Schema definition for input/output validation",
1714
+ "properties": {
1715
+ "type": {
1716
+ "type": "string",
1717
+ "enum": [
1718
+ "object",
1719
+ "array",
1720
+ "string",
1721
+ "number",
1722
+ "integer",
1723
+ "boolean",
1724
+ "null"
1725
+ ]
1726
+ },
1727
+ "properties": {
1728
+ "type": "object",
1729
+ "additionalProperties": true
1730
+ },
1731
+ "required": {
1732
+ "type": "array",
1733
+ "items": {
1734
+ "type": "string"
1735
+ }
1736
+ },
1737
+ "items": {
1738
+ "type": "object"
1739
+ },
1740
+ "additionalProperties": {
1741
+ "type": [
1742
+ "boolean",
1743
+ "object"
1744
+ ]
1745
+ }
1746
+ },
1747
+ "additionalProperties": true
1748
+ },
1749
+ "LLMConfig": {
1750
+ "type": "object",
1751
+ "required": [
1752
+ "provider",
1753
+ "model"
1754
+ ],
1755
+ "properties": {
1756
+ "provider": {
1757
+ "description": "LLM provider - literal value or environment variable with default (e.g., ${LLM_PROVIDER:-anthropic})",
1758
+ "anyOf": [
1759
+ {
1760
+ "type": "string",
1761
+ "enum": [
1762
+ "openai",
1763
+ "anthropic",
1764
+ "google",
1765
+ "azure",
1766
+ "ollama",
1767
+ "mistral",
1768
+ "cohere",
1769
+ "groq",
1770
+ "together",
1771
+ "fireworks",
1772
+ "deepseek",
1773
+ "custom"
1774
+ ]
1775
+ },
1776
+ {
1777
+ "type": "string",
1778
+ "pattern": "^[$]\\{[A-Za-z_][A-Za-z0-9_]*(?::-[a-zA-Z0-9_-]+)?\\}$",
1779
+ "description": "Environment variable reference with optional default"
1780
+ }
1781
+ ]
1782
+ },
1783
+ "model": {
1784
+ "type": "string",
1785
+ "description": "Model identifier (e.g., gpt-4o, claude-sonnet-4.5-20250929)"
1786
+ },
1787
+ "temperature": {
1788
+ "type": "number",
1789
+ "minimum": 0,
1790
+ "maximum": 2,
1791
+ "description": "Sampling temperature for response generation"
1792
+ },
1793
+ "maxTokens": {
1794
+ "type": "integer",
1795
+ "minimum": 1,
1796
+ "description": "Maximum tokens in response"
1797
+ },
1798
+ "fallback_models": {
1799
+ "type": "array",
1800
+ "description": "Ordered list of fallback LLM configurations for resilience",
1801
+ "items": {
1802
+ "$ref": "#/definitions/FallbackLLM"
1803
+ }
1804
+ },
1805
+ "retry_config": {
1806
+ "$ref": "#/definitions/RetryConfig",
1807
+ "description": "Retry and backoff configuration for transient failures"
1808
+ },
1809
+ "cost_tracking": {
1810
+ "$ref": "#/definitions/CostTracking",
1811
+ "description": "Cost governance and allocation tracking"
1812
+ },
1813
+ "profile": {
1814
+ "description": "Execution profile for task-specific optimization (A2A compatible)",
1815
+ "anyOf": [
1816
+ {
1817
+ "type": "string",
1818
+ "enum": [
1819
+ "fast",
1820
+ "balanced",
1821
+ "deep",
1822
+ "safe"
1823
+ ]
1824
+ },
1825
+ {
1826
+ "type": "string",
1827
+ "pattern": "^[$]\\{[A-Za-z_][A-Za-z0-9_]*(?::-[a-zA-Z0-9_-]+)?\\}$",
1828
+ "description": "Environment variable reference with optional default"
1829
+ }
1830
+ ],
1831
+ "default": "balanced"
1832
+ },
1833
+ "execution_profiles": {
1834
+ "$ref": "#/definitions/ExecutionProfiles",
1835
+ "description": "Custom execution profile definitions"
1836
+ }
1837
+ },
1838
+ "additionalProperties": true
1839
+ },
1840
+ "FallbackLLM": {
1841
+ "type": "object",
1842
+ "description": "Fallback LLM configuration for resilience",
1843
+ "required": [
1844
+ "provider",
1845
+ "model"
1846
+ ],
1847
+ "properties": {
1848
+ "provider": {
1849
+ "description": "LLM provider - literal value or environment variable",
1850
+ "anyOf": [
1851
+ {
1852
+ "type": "string",
1853
+ "enum": [
1854
+ "openai",
1855
+ "anthropic",
1856
+ "google",
1857
+ "azure",
1858
+ "ollama",
1859
+ "mistral",
1860
+ "cohere",
1861
+ "groq",
1862
+ "together",
1863
+ "fireworks",
1864
+ "deepseek",
1865
+ "custom"
1866
+ ]
1867
+ },
1868
+ {
1869
+ "type": "string",
1870
+ "pattern": "^[$]\\{[A-Za-z_][A-Za-z0-9_]*(?::-[a-zA-Z0-9_-]+)?\\}$"
1871
+ }
1872
+ ]
1873
+ },
1874
+ "model": {
1875
+ "type": "string",
1876
+ "description": "Model identifier"
1877
+ },
1878
+ "temperature": {
1879
+ "type": "number",
1880
+ "minimum": 0,
1881
+ "maximum": 2
1882
+ },
1883
+ "trigger": {
1884
+ "type": "object",
1885
+ "description": "Conditions that trigger fallback",
1886
+ "properties": {
1887
+ "on_error": {
1888
+ "type": "boolean",
1889
+ "description": "Trigger on any error from primary"
1890
+ },
1891
+ "max_retries": {
1892
+ "type": "integer",
1893
+ "description": "Retries before falling back"
1894
+ },
1895
+ "error_codes": {
1896
+ "type": "array",
1897
+ "items": {
1898
+ "type": "integer"
1899
+ },
1900
+ "description": "Specific error codes to trigger on"
1901
+ },
1902
+ "latency_threshold_ms": {
1903
+ "type": "integer",
1904
+ "description": "Trigger when latency exceeds this threshold"
1905
+ }
1906
+ },
1907
+ "additionalProperties": true
1908
+ }
1909
+ },
1910
+ "additionalProperties": true
1911
+ },
1912
+ "RetryConfig": {
1913
+ "type": "object",
1914
+ "description": "Retry and backoff configuration for LLM calls",
1915
+ "properties": {
1916
+ "max_attempts": {
1917
+ "type": "integer",
1918
+ "minimum": 1,
1919
+ "maximum": 10,
1920
+ "default": 3,
1921
+ "description": "Maximum number of retry attempts"
1922
+ },
1923
+ "backoff_strategy": {
1924
+ "type": "string",
1925
+ "enum": [
1926
+ "none",
1927
+ "linear",
1928
+ "exponential"
1929
+ ],
1930
+ "default": "exponential",
1931
+ "description": "Backoff strategy between retries"
1932
+ },
1933
+ "initial_delay_ms": {
1934
+ "type": "integer",
1935
+ "minimum": 0,
1936
+ "default": 1000,
1937
+ "description": "Initial delay in milliseconds before first retry"
1938
+ },
1939
+ "max_delay_ms": {
1940
+ "type": "integer",
1941
+ "minimum": 0,
1942
+ "default": 30000,
1943
+ "description": "Maximum delay between retries"
1944
+ }
1945
+ },
1946
+ "additionalProperties": false
1947
+ },
1948
+ "CostTracking": {
1949
+ "type": "object",
1950
+ "description": "Cost governance and allocation tracking for LLM usage",
1951
+ "properties": {
1952
+ "enabled": {
1953
+ "type": "boolean",
1954
+ "default": false,
1955
+ "description": "Enable cost tracking for this agent"
1956
+ },
1957
+ "budget_alert_threshold": {
1958
+ "type": "number",
1959
+ "minimum": 0,
1960
+ "description": "Alert threshold in dollars for budget monitoring"
1961
+ },
1962
+ "cost_allocation_tags": {
1963
+ "type": "object",
1964
+ "additionalProperties": {
1965
+ "type": "string"
1966
+ },
1967
+ "description": "Tags for cost allocation and chargeback (e.g., project, team, service)"
1968
+ }
1969
+ },
1970
+ "additionalProperties": false
1971
+ },
1972
+ "Tool": {
1973
+ "type": "object",
1974
+ "required": [
1975
+ "type"
1976
+ ],
1977
+ "properties": {
1978
+ "type": {
1979
+ "type": "string",
1980
+ "enum": [
1981
+ "mcp",
1982
+ "kubernetes",
1983
+ "http",
1984
+ "api",
1985
+ "grpc",
1986
+ "function",
1987
+ "a2a",
1988
+ "webhook",
1989
+ "schedule",
1990
+ "pipeline",
1991
+ "workflow",
1992
+ "artifact",
1993
+ "git-commit",
1994
+ "ci-status",
1995
+ "comment",
1996
+ "library",
1997
+ "custom"
1998
+ ],
1999
+ "description": "Tool/trigger type: mcp (Model Context Protocol), kubernetes (K8s API), http (HTTP endpoints), api (REST APIs), grpc (gRPC), function (local), a2a (agent-to-agent), webhook (event triggers), schedule (cron triggers), pipeline (CI/CD events), workflow (status changes), artifact (file outputs), git-commit (commit outputs), ci-status (pipeline status), comment (MR/issue comments), library (reusable logic), custom"
2000
+ },
2001
+ "name": {
2002
+ "type": "string"
2003
+ },
2004
+ "capabilities": {
2005
+ "type": "array",
2006
+ "items": {
2007
+ "$ref": "#/definitions/Capability"
2008
+ }
2009
+ }
2010
+ },
2011
+ "additionalProperties": true
2012
+ },
2013
+ "Capability": {
2014
+ "description": "Capability definition - can be a simple string name or a detailed object",
2015
+ "anyOf": [
2016
+ {
2017
+ "type": "string",
2018
+ "description": "Simple capability name"
2019
+ },
2020
+ {
2021
+ "type": "object",
2022
+ "required": [
2023
+ "name"
2024
+ ],
2025
+ "properties": {
2026
+ "name": {
2027
+ "type": "string"
2028
+ },
2029
+ "version": {
2030
+ "type": "string",
2031
+ "description": "Capability version"
2032
+ },
2033
+ "description": {
2034
+ "type": "string"
2035
+ },
2036
+ "scopes": {
2037
+ "type": "array",
2038
+ "items": {
2039
+ "type": "string"
2040
+ },
2041
+ "description": "Required scopes/permissions"
2042
+ },
2043
+ "transport": {
2044
+ "type": "object",
2045
+ "description": "Transport binding configuration"
2046
+ },
2047
+ "input_schema": {
2048
+ "type": "object"
2049
+ },
2050
+ "output_schema": {
2051
+ "type": "object"
2052
+ }
2053
+ },
2054
+ "additionalProperties": true
2055
+ }
2056
+ ]
2057
+ },
2058
+ "Autonomy": {
2059
+ "type": "object",
2060
+ "description": "Agent autonomy configuration",
2061
+ "properties": {
2062
+ "level": {
2063
+ "type": "string",
2064
+ "enum": [
2065
+ "supervised",
2066
+ "assisted",
2067
+ "semi_autonomous",
2068
+ "autonomous",
2069
+ "fully_autonomous"
2070
+ ],
2071
+ "description": "Autonomy level: supervised (all approval), assisted (guidance with approval), semi_autonomous (limited autonomy), autonomous (self-directed), fully_autonomous (no oversight)"
2072
+ },
2073
+ "approval_required": {
2074
+ "description": "Whether human approval is required, or list of specific actions requiring approval",
2075
+ "anyOf": [
2076
+ {
2077
+ "type": "boolean"
2078
+ },
2079
+ {
2080
+ "type": "array",
2081
+ "items": {
2082
+ "type": "string"
2083
+ },
2084
+ "description": "List of action types that require human approval"
2085
+ }
2086
+ ]
2087
+ },
2088
+ "allowed_actions": {
2089
+ "type": "array",
2090
+ "items": {
2091
+ "type": "string"
2092
+ },
2093
+ "description": "Actions the agent is allowed to perform"
2094
+ },
2095
+ "blocked_actions": {
2096
+ "type": "array",
2097
+ "items": {
2098
+ "type": "string"
2099
+ },
2100
+ "description": "Actions the agent is explicitly blocked from"
2101
+ },
2102
+ "escalation_policy": {
2103
+ "type": "object",
2104
+ "description": "Policy for escalating to humans or other agents",
2105
+ "properties": {
2106
+ "triggers": {
2107
+ "type": "array",
2108
+ "items": {
2109
+ "type": "string"
2110
+ },
2111
+ "description": "Conditions that trigger escalation"
2112
+ },
2113
+ "notify": {
2114
+ "type": "array",
2115
+ "items": {
2116
+ "type": "string"
2117
+ },
2118
+ "description": "Notification channels (e.g., slack:#channel, gitlab:@team)"
2119
+ }
2120
+ },
2121
+ "additionalProperties": true
2122
+ }
2123
+ },
2124
+ "additionalProperties": true
2125
+ },
2126
+ "Constraints": {
2127
+ "type": "object",
2128
+ "description": "Agent resource and operational constraints",
2129
+ "properties": {
2130
+ "cost": {
2131
+ "type": "object",
2132
+ "description": "Cost constraints for LLM usage",
2133
+ "properties": {
2134
+ "maxTokensPerDay": {
2135
+ "type": "integer",
2136
+ "description": "Maximum tokens per day"
2137
+ },
2138
+ "maxTokensPerRequest": {
2139
+ "type": "integer",
2140
+ "description": "Maximum tokens per request"
2141
+ },
2142
+ "maxCostPerDay": {
2143
+ "type": "number",
2144
+ "description": "Maximum cost per day"
2145
+ },
2146
+ "currency": {
2147
+ "type": "string",
2148
+ "description": "Currency for cost tracking (e.g., USD, EUR)"
2149
+ }
2150
+ },
2151
+ "additionalProperties": true
2152
+ },
2153
+ "performance": {
2154
+ "type": "object",
2155
+ "description": "Performance constraints",
2156
+ "properties": {
2157
+ "maxLatencySeconds": {
2158
+ "type": "number",
2159
+ "description": "Maximum response latency in seconds"
2160
+ },
2161
+ "maxConcurrentRequests": {
2162
+ "type": "integer",
2163
+ "description": "Maximum concurrent requests"
2164
+ },
2165
+ "timeoutSeconds": {
2166
+ "type": "number",
2167
+ "description": "Request timeout in seconds"
2168
+ }
2169
+ },
2170
+ "additionalProperties": true
2171
+ },
2172
+ "resources": {
2173
+ "type": "object",
2174
+ "description": "Compute resource constraints (Kubernetes-style)",
2175
+ "properties": {
2176
+ "cpu": {
2177
+ "type": "string",
2178
+ "description": "CPU limit (e.g., '1', '500m')"
2179
+ },
2180
+ "memory": {
2181
+ "type": "string",
2182
+ "description": "Memory limit (e.g., '2Gi', '512Mi')"
2183
+ }
2184
+ },
2185
+ "additionalProperties": true
2186
+ }
2187
+ },
2188
+ "additionalProperties": true
2189
+ },
2190
+ "State": {
2191
+ "type": "object",
2192
+ "description": "Agent state management configuration",
2193
+ "properties": {
2194
+ "mode": {
2195
+ "type": "string",
2196
+ "enum": [
2197
+ "stateless",
2198
+ "session",
2199
+ "long_running"
2200
+ ],
2201
+ "description": "State persistence mode"
2202
+ },
2203
+ "storage": {
2204
+ "type": "object",
2205
+ "description": "State storage configuration",
2206
+ "properties": {
2207
+ "type": {
2208
+ "type": "string",
2209
+ "enum": [
2210
+ "memory",
2211
+ "vector-db",
2212
+ "kv",
2213
+ "rdbms",
2214
+ "custom"
2215
+ ],
2216
+ "description": "Storage backend type"
2217
+ },
2218
+ "retention": {
2219
+ "type": "string",
2220
+ "description": "Data retention period (e.g., '30d', '1h')"
2221
+ },
2222
+ "config": {
2223
+ "type": "object",
2224
+ "description": "Storage-specific configuration",
2225
+ "properties": {
2226
+ "provider": {
2227
+ "type": "string",
2228
+ "description": "Storage provider (e.g., redis, postgres, pinecone)"
2229
+ },
2230
+ "prefix": {
2231
+ "type": "string",
2232
+ "description": "Key prefix for namespacing"
2233
+ },
2234
+ "endpoint": {
2235
+ "type": "string",
2236
+ "description": "Storage endpoint URL"
2237
+ }
2238
+ },
2239
+ "additionalProperties": true
2240
+ },
2241
+ "encryption": {
2242
+ "type": "object",
2243
+ "description": "Storage encryption configuration",
2244
+ "properties": {
2245
+ "enabled": {
2246
+ "type": "boolean"
2247
+ },
2248
+ "algorithm": {
2249
+ "type": "string",
2250
+ "description": "Encryption algorithm (e.g., aes-256-gcm)"
2251
+ },
2252
+ "keyRef": {
2253
+ "type": "string",
2254
+ "description": "Reference to encryption key (e.g., env:ENCRYPTION_KEY)"
2255
+ }
2256
+ },
2257
+ "additionalProperties": true
2258
+ }
2259
+ },
2260
+ "additionalProperties": true
2261
+ },
2262
+ "context_window": {
2263
+ "type": "object",
2264
+ "description": "Context window management for conversation history",
2265
+ "properties": {
2266
+ "max_messages": {
2267
+ "type": "integer",
2268
+ "description": "Maximum messages to retain"
2269
+ },
2270
+ "max_tokens": {
2271
+ "type": "integer",
2272
+ "description": "Maximum tokens in context"
2273
+ },
2274
+ "strategy": {
2275
+ "type": "string",
2276
+ "enum": [
2277
+ "truncation",
2278
+ "summarization",
2279
+ "sliding_window"
2280
+ ],
2281
+ "description": "Strategy for managing context overflow"
2282
+ }
2283
+ },
2284
+ "additionalProperties": true
2285
+ }
2286
+ },
2287
+ "additionalProperties": true
2288
+ },
2289
+ "AgentObservability": {
2290
+ "type": "object",
2291
+ "description": "Agent observability configuration",
2292
+ "properties": {
2293
+ "tracing": {
2294
+ "type": "object",
2295
+ "description": "Distributed tracing configuration",
2296
+ "properties": {
2297
+ "enabled": {
2298
+ "type": "boolean"
2299
+ },
2300
+ "exporter": {
2301
+ "type": "string",
2302
+ "description": "Trace exporter (e.g., otlp, jaeger, zipkin)"
2303
+ },
2304
+ "endpoint": {
2305
+ "type": "string",
2306
+ "description": "Trace collector endpoint"
2307
+ }
2308
+ },
2309
+ "additionalProperties": true
2310
+ },
2311
+ "metrics": {
2312
+ "type": "object",
2313
+ "description": "Metrics collection configuration",
2314
+ "properties": {
2315
+ "enabled": {
2316
+ "type": "boolean"
2317
+ },
2318
+ "exporter": {
2319
+ "type": "string",
2320
+ "description": "Metrics exporter (e.g., prometheus, otlp)"
2321
+ },
2322
+ "endpoint": {
2323
+ "type": "string",
2324
+ "description": "Metrics endpoint"
2325
+ },
2326
+ "port": {
2327
+ "type": "integer",
2328
+ "description": "Metrics server port"
2329
+ },
2330
+ "customMetrics": {
2331
+ "type": "array",
2332
+ "description": "Custom metrics definitions",
2333
+ "items": {
2334
+ "type": "object",
2335
+ "properties": {
2336
+ "name": {
2337
+ "type": "string"
2338
+ },
2339
+ "type": {
2340
+ "type": "string",
2341
+ "enum": [
2342
+ "counter",
2343
+ "gauge",
2344
+ "histogram"
2345
+ ]
2346
+ },
2347
+ "description": {
2348
+ "type": "string"
2349
+ }
2350
+ }
2351
+ }
2352
+ }
2353
+ },
2354
+ "additionalProperties": true
2355
+ },
2356
+ "logging": {
2357
+ "type": "object",
2358
+ "description": "Logging configuration",
2359
+ "properties": {
2360
+ "level": {
2361
+ "type": "string",
2362
+ "enum": [
2363
+ "debug",
2364
+ "info",
2365
+ "warn",
2366
+ "error"
2367
+ ],
2368
+ "description": "Log level"
2369
+ },
2370
+ "format": {
2371
+ "type": "string",
2372
+ "enum": [
2373
+ "json",
2374
+ "text"
2375
+ ],
2376
+ "description": "Log format"
2377
+ }
2378
+ },
2379
+ "additionalProperties": true
2380
+ },
2381
+ "alerting": {
2382
+ "type": "object",
2383
+ "description": "Alerting configuration",
2384
+ "properties": {
2385
+ "enabled": {
2386
+ "type": "boolean"
2387
+ },
2388
+ "channels": {
2389
+ "type": "array",
2390
+ "items": {
2391
+ "type": "string"
2392
+ }
2393
+ },
2394
+ "rules": {
2395
+ "type": "array",
2396
+ "items": {
2397
+ "type": "object"
2398
+ }
2399
+ }
2400
+ },
2401
+ "additionalProperties": true
2402
+ },
2403
+ "slo": {
2404
+ "type": "object",
2405
+ "description": "Service level objectives",
2406
+ "properties": {
2407
+ "availability": {
2408
+ "type": "number"
2409
+ },
2410
+ "latency_p95_ms": {
2411
+ "type": "integer"
2412
+ },
2413
+ "error_budget": {
2414
+ "type": "number"
2415
+ }
2416
+ },
2417
+ "additionalProperties": true
2418
+ }
2419
+ },
2420
+ "additionalProperties": true
2421
+ },
2422
+ "Safety": {
2423
+ "type": "object",
2424
+ "description": "Agent safety and security configuration",
2425
+ "properties": {
2426
+ "content_filtering": {
2427
+ "type": "object",
2428
+ "description": "Content filtering for inputs/outputs",
2429
+ "properties": {
2430
+ "enabled": {
2431
+ "type": "boolean"
2432
+ },
2433
+ "categories": {
2434
+ "type": "array",
2435
+ "items": {
2436
+ "type": "string"
2437
+ },
2438
+ "description": "Categories to filter (e.g., pii, credentials)"
2439
+ },
2440
+ "threshold": {
2441
+ "type": "string",
2442
+ "enum": [
2443
+ "low",
2444
+ "medium",
2445
+ "high"
2446
+ ],
2447
+ "description": "Filtering sensitivity"
2448
+ },
2449
+ "action": {
2450
+ "type": "string",
2451
+ "enum": [
2452
+ "warn",
2453
+ "block",
2454
+ "redact"
2455
+ ],
2456
+ "description": "Action when content matches"
2457
+ }
2458
+ },
2459
+ "additionalProperties": true
2460
+ },
2461
+ "pii_detection": {
2462
+ "type": "object",
2463
+ "description": "PII detection and handling",
2464
+ "properties": {
2465
+ "enabled": {
2466
+ "type": "boolean"
2467
+ },
2468
+ "types": {
2469
+ "type": "array",
2470
+ "items": {
2471
+ "type": "string"
2472
+ },
2473
+ "description": "PII types to detect (email, phone, ssn, api_key, etc.)"
2474
+ },
2475
+ "action": {
2476
+ "type": "string",
2477
+ "enum": [
2478
+ "warn",
2479
+ "block",
2480
+ "redact"
2481
+ ],
2482
+ "description": "Action when PII detected"
2483
+ }
2484
+ },
2485
+ "additionalProperties": true
2486
+ },
2487
+ "rate_limiting": {
2488
+ "type": "object",
2489
+ "description": "Rate limiting configuration",
2490
+ "properties": {
2491
+ "enabled": {
2492
+ "type": "boolean"
2493
+ },
2494
+ "requests_per_minute": {
2495
+ "type": "integer"
2496
+ },
2497
+ "burst_limit": {
2498
+ "type": "integer"
2499
+ }
2500
+ },
2501
+ "additionalProperties": true
2502
+ },
2503
+ "guardrails": {
2504
+ "type": "object",
2505
+ "description": "Guardrails for agent behavior",
2506
+ "properties": {
2507
+ "enabled": {
2508
+ "type": "boolean"
2509
+ },
2510
+ "policies": {
2511
+ "type": "array",
2512
+ "items": {
2513
+ "type": "object"
2514
+ },
2515
+ "description": "Policy definitions"
2516
+ },
2517
+ "max_tool_calls": {
2518
+ "type": "integer",
2519
+ "description": "Maximum tool calls per turn"
2520
+ },
2521
+ "max_execution_time_seconds": {
2522
+ "type": "integer",
2523
+ "description": "Maximum execution time"
2524
+ }
2525
+ },
2526
+ "additionalProperties": true
2527
+ },
2528
+ "human_in_loop": {
2529
+ "type": "object",
2530
+ "description": "Human-in-the-loop configuration",
2531
+ "properties": {
2532
+ "enabled": {
2533
+ "type": "boolean"
2534
+ },
2535
+ "triggers": {
2536
+ "type": "array",
2537
+ "items": {
2538
+ "type": "string"
2539
+ },
2540
+ "description": "Conditions that require human approval"
2541
+ }
2542
+ },
2543
+ "additionalProperties": true
2544
+ }
2545
+ },
2546
+ "additionalProperties": true
2547
+ },
2548
+ "MCPExtension": {
2549
+ "type": "object",
2550
+ "description": "Model Context Protocol (MCP) extension for agents - supports tools, resources, and prompts",
2551
+ "properties": {
2552
+ "enabled": {
2553
+ "type": "boolean",
2554
+ "default": true,
2555
+ "description": "Whether MCP is enabled for this agent"
2556
+ },
2557
+ "server_type": {
2558
+ "type": "string",
2559
+ "enum": [
2560
+ "stdio",
2561
+ "http",
2562
+ "sse"
2563
+ ],
2564
+ "description": "MCP server transport mechanism"
2565
+ },
2566
+ "server_name": {
2567
+ "type": "string",
2568
+ "description": "Name of the MCP server"
2569
+ },
2570
+ "tools": {
2571
+ "type": "array",
2572
+ "description": "MCP tools (functions/actions the agent can invoke)",
2573
+ "items": {
2574
+ "$ref": "#/definitions/MCPTool"
2575
+ }
2576
+ },
2577
+ "resources": {
2578
+ "type": "array",
2579
+ "description": "MCP resources (read-only context/data sources)",
2580
+ "items": {
2581
+ "$ref": "#/definitions/MCPResource"
2582
+ }
2583
+ },
2584
+ "prompts": {
2585
+ "type": "array",
2586
+ "description": "MCP prompts (templated workflows and interactions)",
2587
+ "items": {
2588
+ "$ref": "#/definitions/MCPPrompt"
2589
+ }
2590
+ }
2591
+ },
2592
+ "additionalProperties": false
2593
+ },
2594
+ "MCPTool": {
2595
+ "type": "object",
2596
+ "description": "MCP tool definition - actions/functions the agent can invoke",
2597
+ "required": [
2598
+ "name"
2599
+ ],
2600
+ "properties": {
2601
+ "name": {
2602
+ "type": "string",
2603
+ "description": "Unique tool name"
2604
+ },
2605
+ "description": {
2606
+ "type": "string",
2607
+ "description": "Human-readable description of what the tool does"
2608
+ },
2609
+ "input_schema": {
2610
+ "$ref": "#/definitions/JSONSchemaDefinition",
2611
+ "description": "JSON Schema for tool input parameters (snake_case)"
2612
+ },
2613
+ "inputSchema": {
2614
+ "$ref": "#/definitions/JSONSchemaDefinition",
2615
+ "description": "JSON Schema for tool input parameters (camelCase - MCP SDK convention)"
2616
+ }
2617
+ },
2618
+ "additionalProperties": true
2619
+ },
2620
+ "MCPResource": {
2621
+ "type": "object",
2622
+ "description": "MCP resource definition - read-only context and data sources",
2623
+ "required": [
2624
+ "uri",
2625
+ "name"
2626
+ ],
2627
+ "properties": {
2628
+ "uri": {
2629
+ "type": "string",
2630
+ "format": "uri",
2631
+ "description": "Unique resource identifier (URI)"
2632
+ },
2633
+ "name": {
2634
+ "type": "string",
2635
+ "description": "Human-readable resource name"
2636
+ },
2637
+ "description": {
2638
+ "type": "string",
2639
+ "description": "Description of the resource and its contents"
2640
+ },
2641
+ "mimeType": {
2642
+ "type": "string",
2643
+ "description": "MIME type of the resource content",
2644
+ "examples": [
2645
+ "text/plain",
2646
+ "application/json",
2647
+ "text/markdown",
2648
+ "image/png"
2649
+ ]
2650
+ },
2651
+ "metadata": {
2652
+ "type": "object",
2653
+ "description": "Additional resource metadata",
2654
+ "additionalProperties": true
2655
+ }
2656
+ },
2657
+ "additionalProperties": false
2658
+ },
2659
+ "MCPPrompt": {
2660
+ "type": "object",
2661
+ "description": "MCP prompt definition - templated messages and workflows",
2662
+ "required": [
2663
+ "name"
2664
+ ],
2665
+ "properties": {
2666
+ "name": {
2667
+ "type": "string",
2668
+ "description": "Unique prompt identifier"
2669
+ },
2670
+ "description": {
2671
+ "type": "string",
2672
+ "description": "Human-readable description of the prompt purpose"
2673
+ },
2674
+ "arguments": {
2675
+ "type": "array",
2676
+ "description": "Template arguments that can be substituted",
2677
+ "items": {
2678
+ "$ref": "#/definitions/MCPPromptArgument"
2679
+ }
2680
+ }
2681
+ },
2682
+ "additionalProperties": false
2683
+ },
2684
+ "MCPPromptArgument": {
2685
+ "type": "object",
2686
+ "description": "Argument definition for MCP prompts",
2687
+ "required": [
2688
+ "name"
2689
+ ],
2690
+ "properties": {
2691
+ "name": {
2692
+ "type": "string",
2693
+ "description": "Argument name"
2694
+ },
2695
+ "description": {
2696
+ "type": "string",
2697
+ "description": "Description of what this argument represents"
2698
+ },
2699
+ "required": {
2700
+ "type": "boolean",
2701
+ "default": false,
2702
+ "description": "Whether this argument is required"
2703
+ }
2704
+ },
2705
+ "additionalProperties": false
2706
+ },
2707
+ "MessagingExtension": {
2708
+ "type": "object",
2709
+ "description": "Agent-to-agent messaging configuration (v0.3.2+)",
2710
+ "properties": {
2711
+ "publishes": {
2712
+ "type": "array",
2713
+ "description": "Channels this agent publishes to",
2714
+ "items": {
2715
+ "$ref": "#/definitions/PublishedChannel"
2716
+ }
2717
+ },
2718
+ "subscribes": {
2719
+ "type": "array",
2720
+ "description": "Channels this agent subscribes to",
2721
+ "items": {
2722
+ "$ref": "#/definitions/Subscription"
2723
+ }
2724
+ },
2725
+ "commands": {
2726
+ "type": "array",
2727
+ "description": "Commands this agent accepts (RPC-style operations)",
2728
+ "items": {
2729
+ "$ref": "#/definitions/Command"
2730
+ }
2731
+ },
2732
+ "reliability": {
2733
+ "$ref": "#/definitions/ReliabilityConfig",
2734
+ "description": "Message reliability configuration"
2735
+ }
2736
+ },
2737
+ "additionalProperties": false
2738
+ },
2739
+ "PublishedChannel": {
2740
+ "type": "object",
2741
+ "description": "Channel that an agent publishes messages to",
2742
+ "required": [
2743
+ "channel",
2744
+ "schema"
2745
+ ],
2746
+ "properties": {
2747
+ "channel": {
2748
+ "type": "string",
2749
+ "pattern": "^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$",
2750
+ "description": "Channel name (e.g., 'security.vulnerabilities')"
2751
+ },
2752
+ "description": {
2753
+ "type": "string",
2754
+ "description": "Human-readable description of the channel"
2755
+ },
2756
+ "schema": {
2757
+ "type": "object",
2758
+ "description": "JSON Schema for published messages",
2759
+ "additionalProperties": true
2760
+ },
2761
+ "examples": {
2762
+ "type": "array",
2763
+ "description": "Example messages",
2764
+ "items": {
2765
+ "type": "object",
2766
+ "additionalProperties": true
2767
+ }
2768
+ },
2769
+ "contentType": {
2770
+ "type": "string",
2771
+ "description": "Content type of messages",
2772
+ "default": "application/json"
2773
+ },
2774
+ "tags": {
2775
+ "type": "array",
2776
+ "description": "Tags for categorization",
2777
+ "items": {
2778
+ "type": "string"
2779
+ }
2780
+ }
2781
+ },
2782
+ "additionalProperties": false
2783
+ },
2784
+ "Subscription": {
2785
+ "type": "object",
2786
+ "description": "Channel subscription configuration",
2787
+ "required": [
2788
+ "channel"
2789
+ ],
2790
+ "properties": {
2791
+ "channel": {
2792
+ "type": "string",
2793
+ "pattern": "^[a-z][a-z0-9_]*(\\.[a-z][a-z0-9_]*)*$",
2794
+ "description": "Channel name to subscribe to"
2795
+ },
2796
+ "description": {
2797
+ "type": "string",
2798
+ "description": "Human-readable description"
2799
+ },
2800
+ "schema": {
2801
+ "type": "object",
2802
+ "description": "Expected message schema",
2803
+ "additionalProperties": true
2804
+ },
2805
+ "handler": {
2806
+ "type": "string",
2807
+ "description": "Handler function name"
2808
+ },
2809
+ "filter": {
2810
+ "type": "object",
2811
+ "description": "Message filter configuration - supports JSONPath-style filtering",
2812
+ "properties": {
2813
+ "expression": {
2814
+ "type": "string",
2815
+ "description": "Filter expression"
2816
+ },
2817
+ "fields": {
2818
+ "type": "object",
2819
+ "description": "Field-based filters",
2820
+ "additionalProperties": true
2821
+ }
2822
+ },
2823
+ "additionalProperties": true
2824
+ },
2825
+ "priority": {
2826
+ "type": "string",
2827
+ "enum": [
2828
+ "low",
2829
+ "normal",
2830
+ "high",
2831
+ "critical"
2832
+ ],
2833
+ "default": "normal",
2834
+ "description": "Message priority"
2835
+ },
2836
+ "maxConcurrency": {
2837
+ "type": "integer",
2838
+ "minimum": 1,
2839
+ "description": "Maximum concurrent message processing"
2840
+ }
2841
+ },
2842
+ "additionalProperties": false
2843
+ },
2844
+ "Command": {
2845
+ "type": "object",
2846
+ "description": "RPC-style command that an agent accepts",
2847
+ "required": [
2848
+ "name"
2849
+ ],
2850
+ "properties": {
2851
+ "name": {
2852
+ "type": "string",
2853
+ "pattern": "^[a-z][a-z0-9_]*$",
2854
+ "description": "Command name (snake_case)"
2855
+ },
2856
+ "description": {
2857
+ "type": "string",
2858
+ "description": "Human-readable description"
2859
+ },
2860
+ "inputSchema": {
2861
+ "type": "object",
2862
+ "description": "JSON Schema for command input (camelCase)",
2863
+ "additionalProperties": true
2864
+ },
2865
+ "input_schema": {
2866
+ "type": "object",
2867
+ "description": "JSON Schema for command input (snake_case alias)",
2868
+ "additionalProperties": true
2869
+ },
2870
+ "outputSchema": {
2871
+ "type": "object",
2872
+ "description": "JSON Schema for command output (camelCase)",
2873
+ "additionalProperties": true
2874
+ },
2875
+ "output_schema": {
2876
+ "type": "object",
2877
+ "description": "JSON Schema for command output (snake_case alias)",
2878
+ "additionalProperties": true
2879
+ },
2880
+ "timeoutSeconds": {
2881
+ "type": "integer",
2882
+ "minimum": 1,
2883
+ "maximum": 3600,
2884
+ "description": "Command execution timeout in seconds"
2885
+ },
2886
+ "timeout_seconds": {
2887
+ "type": "integer",
2888
+ "minimum": 1,
2889
+ "maximum": 3600,
2890
+ "description": "Command execution timeout (snake_case alias)"
2891
+ },
2892
+ "idempotent": {
2893
+ "type": "boolean",
2894
+ "default": false,
2895
+ "description": "Whether the command is idempotent"
2896
+ },
2897
+ "async": {
2898
+ "type": "boolean",
2899
+ "default": false,
2900
+ "description": "Whether the command executes asynchronously"
2901
+ }
2902
+ },
2903
+ "additionalProperties": true
2904
+ },
2905
+ "ReliabilityConfig": {
2906
+ "type": "object",
2907
+ "description": "Message delivery reliability configuration",
2908
+ "properties": {
2909
+ "deliveryGuarantee": {
2910
+ "type": "string",
2911
+ "enum": [
2912
+ "at-least-once",
2913
+ "at-most-once",
2914
+ "exactly-once",
2915
+ "at_least_once",
2916
+ "at_most_once",
2917
+ "exactly_once"
2918
+ ],
2919
+ "default": "at-least-once",
2920
+ "description": "Message delivery guarantee"
2921
+ },
2922
+ "delivery": {
2923
+ "type": "string",
2924
+ "enum": [
2925
+ "at-least-once",
2926
+ "at-most-once",
2927
+ "exactly-once",
2928
+ "at_least_once",
2929
+ "at_most_once",
2930
+ "exactly_once"
2931
+ ],
2932
+ "description": "Message delivery guarantee (alias for deliveryGuarantee)"
2933
+ },
2934
+ "retry": {
2935
+ "type": "object",
2936
+ "description": "Retry configuration",
2937
+ "properties": {
2938
+ "maxAttempts": {
2939
+ "type": "integer",
2940
+ "minimum": 0,
2941
+ "maximum": 10,
2942
+ "default": 3,
2943
+ "description": "Maximum retry attempts"
2944
+ },
2945
+ "backoff": {
2946
+ "type": "object",
2947
+ "description": "Backoff strategy configuration",
2948
+ "properties": {
2949
+ "strategy": {
2950
+ "type": "string",
2951
+ "enum": [
2952
+ "exponential",
2953
+ "linear",
2954
+ "constant"
2955
+ ],
2956
+ "default": "exponential",
2957
+ "description": "Backoff strategy"
2958
+ },
2959
+ "initialDelayMs": {
2960
+ "type": "integer",
2961
+ "minimum": 0,
2962
+ "default": 1000,
2963
+ "description": "Initial delay in milliseconds"
2964
+ },
2965
+ "maxDelayMs": {
2966
+ "type": "integer",
2967
+ "minimum": 0,
2968
+ "default": 60000,
2969
+ "description": "Maximum delay in milliseconds"
2970
+ },
2971
+ "multiplier": {
2972
+ "type": "number",
2973
+ "minimum": 1,
2974
+ "default": 2,
2975
+ "description": "Backoff multiplier"
2976
+ }
2977
+ },
2978
+ "additionalProperties": false
2979
+ }
2980
+ },
2981
+ "additionalProperties": false
2982
+ },
2983
+ "dlq": {
2984
+ "type": "object",
2985
+ "description": "Dead letter queue configuration",
2986
+ "properties": {
2987
+ "enabled": {
2988
+ "type": "boolean",
2989
+ "default": false,
2990
+ "description": "Enable dead letter queue"
2991
+ },
2992
+ "channel": {
2993
+ "type": "string",
2994
+ "description": "Dead letter queue channel name"
2995
+ },
2996
+ "retentionDays": {
2997
+ "type": "integer",
2998
+ "minimum": 1,
2999
+ "maximum": 90,
3000
+ "default": 7,
3001
+ "description": "Message retention in days"
3002
+ }
3003
+ },
3004
+ "additionalProperties": false
3005
+ },
3006
+ "ordering": {
3007
+ "type": "object",
3008
+ "description": "Message ordering configuration",
3009
+ "properties": {
3010
+ "guarantee": {
3011
+ "type": "string",
3012
+ "enum": [
3013
+ "per-source",
3014
+ "global"
3015
+ ],
3016
+ "default": "per-source",
3017
+ "description": "Ordering guarantee level"
3018
+ },
3019
+ "mode": {
3020
+ "type": "string",
3021
+ "enum": [
3022
+ "global",
3023
+ "per_channel",
3024
+ "per-channel",
3025
+ "none"
3026
+ ],
3027
+ "description": "Ordering mode (alias for guarantee)"
3028
+ },
3029
+ "timeoutSeconds": {
3030
+ "type": "integer",
3031
+ "minimum": 1,
3032
+ "description": "Ordering timeout in seconds"
3033
+ }
3034
+ },
3035
+ "additionalProperties": true
3036
+ },
3037
+ "acknowledgment": {
3038
+ "type": "object",
3039
+ "description": "Message acknowledgment configuration",
3040
+ "properties": {
3041
+ "mode": {
3042
+ "type": "string",
3043
+ "enum": [
3044
+ "manual",
3045
+ "automatic"
3046
+ ],
3047
+ "default": "automatic",
3048
+ "description": "Acknowledgment mode"
3049
+ },
3050
+ "timeoutSeconds": {
3051
+ "type": "integer",
3052
+ "minimum": 1,
3053
+ "default": 30,
3054
+ "description": "Acknowledgment timeout in seconds"
3055
+ }
3056
+ },
3057
+ "additionalProperties": false
3058
+ }
3059
+ },
3060
+ "additionalProperties": true
3061
+ },
3062
+ "ExecutionProfiles": {
3063
+ "type": "object",
3064
+ "description": "Execution profile presets for different use cases",
3065
+ "properties": {
3066
+ "default": {
3067
+ "type": "string",
3068
+ "description": "Default profile name"
3069
+ },
3070
+ "profiles": {
3071
+ "type": "object",
3072
+ "additionalProperties": {
3073
+ "$ref": "#/definitions/ExecutionProfileConfig"
3074
+ }
3075
+ }
3076
+ }
3077
+ },
3078
+ "ExecutionProfileConfig": {
3079
+ "type": "object",
3080
+ "description": "Individual execution profile configuration",
3081
+ "properties": {
3082
+ "maxTokens": {
3083
+ "type": "integer",
3084
+ "minimum": 1,
3085
+ "description": "Maximum tokens for this profile"
3086
+ },
3087
+ "temperature": {
3088
+ "type": "number",
3089
+ "minimum": 0,
3090
+ "maximum": 2,
3091
+ "description": "Sampling temperature"
3092
+ },
3093
+ "reasoning_enabled": {
3094
+ "type": "boolean",
3095
+ "default": false,
3096
+ "description": "Enable extended thinking/reasoning"
3097
+ },
3098
+ "validation_required": {
3099
+ "type": "boolean",
3100
+ "default": false,
3101
+ "description": "Require output validation"
3102
+ },
3103
+ "audit_log": {
3104
+ "type": "boolean",
3105
+ "default": false,
3106
+ "description": "Enable detailed audit logging"
3107
+ },
3108
+ "description": {
3109
+ "type": "string",
3110
+ "description": "Profile description"
3111
+ }
3112
+ },
3113
+ "additionalProperties": false
3114
+ },
3115
+ "FunctionDefinition": {
3116
+ "type": "object",
3117
+ "description": "Function definition in A2A/OpenAI format",
3118
+ "required": [
3119
+ "name",
3120
+ "description",
3121
+ "parameters"
3122
+ ],
3123
+ "properties": {
3124
+ "name": {
3125
+ "type": "string",
3126
+ "pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$",
3127
+ "description": "Function name"
3128
+ },
3129
+ "description": {
3130
+ "type": "string",
3131
+ "description": "What the function does"
3132
+ },
3133
+ "parameters": {
3134
+ "$ref": "#/definitions/JSONSchemaDefinition",
3135
+ "description": "JSON Schema for function parameters"
3136
+ },
3137
+ "returns": {
3138
+ "$ref": "#/definitions/JSONSchemaDefinition",
3139
+ "description": "JSON Schema for return value"
3140
+ },
3141
+ "strict": {
3142
+ "type": "boolean",
3143
+ "default": true,
3144
+ "description": "Enforce strict schema validation"
3145
+ }
3146
+ },
3147
+ "additionalProperties": false
3148
+ },
3149
+ "SchedulingConfig": {
3150
+ "type": "object",
3151
+ "description": "Agent scheduling configuration",
3152
+ "properties": {
3153
+ "strategy": {
3154
+ "type": "string",
3155
+ "enum": [
3156
+ "fair",
3157
+ "priority",
3158
+ "deadline",
3159
+ "cost-optimized"
3160
+ ],
3161
+ "default": "fair",
3162
+ "description": "Scheduling strategy"
3163
+ },
3164
+ "priority": {
3165
+ "type": "string",
3166
+ "enum": [
3167
+ "critical",
3168
+ "high",
3169
+ "normal",
3170
+ "low",
3171
+ "background"
3172
+ ],
3173
+ "default": "normal",
3174
+ "description": "Execution priority"
3175
+ },
3176
+ "max_concurrent": {
3177
+ "type": "integer",
3178
+ "minimum": 1,
3179
+ "default": 10,
3180
+ "description": "Maximum concurrent executions"
3181
+ },
3182
+ "timeout_seconds": {
3183
+ "type": "integer",
3184
+ "minimum": 1,
3185
+ "default": 300,
3186
+ "description": "Execution timeout in seconds"
3187
+ }
3188
+ },
3189
+ "additionalProperties": false
3190
+ },
3191
+ "ResourceLimits": {
3192
+ "type": "object",
3193
+ "description": "Compute resource constraints (Kubernetes-style)",
3194
+ "properties": {
3195
+ "memory_mb": {
3196
+ "type": "integer",
3197
+ "minimum": 64,
3198
+ "description": "Memory limit in megabytes"
3199
+ },
3200
+ "cpu_millicores": {
3201
+ "type": "integer",
3202
+ "minimum": 100,
3203
+ "description": "CPU limit in millicores (1000 = 1 CPU)"
3204
+ },
3205
+ "gpu_required": {
3206
+ "type": "boolean",
3207
+ "default": false,
3208
+ "description": "Requires GPU acceleration"
3209
+ },
3210
+ "gpu_type": {
3211
+ "type": "string",
3212
+ "description": "Required GPU type (e.g., nvidia-a100, nvidia-h100)"
3213
+ }
3214
+ },
3215
+ "additionalProperties": false
3216
+ },
3217
+ "RuntimeExtension": {
3218
+ "type": "object",
3219
+ "description": "External runtime extension (A2A compatible)",
3220
+ "required": [
3221
+ "type",
3222
+ "name"
3223
+ ],
3224
+ "properties": {
3225
+ "type": {
3226
+ "type": "string",
3227
+ "enum": [
3228
+ "http",
3229
+ "grpc",
3230
+ "mcp",
3231
+ "websocket",
3232
+ "kafka",
3233
+ "pubsub"
3234
+ ],
3235
+ "description": "Extension protocol type"
3236
+ },
3237
+ "name": {
3238
+ "type": "string",
3239
+ "description": "Extension name"
3240
+ },
3241
+ "endpoint": {
3242
+ "type": "string",
3243
+ "description": "Extension endpoint URL"
3244
+ },
3245
+ "credentials_ref": {
3246
+ "type": "string",
3247
+ "description": "Reference to credentials for authentication"
3248
+ }
3249
+ },
3250
+ "additionalProperties": false
3251
+ },
3252
+ "KubernetesConfig": {
3253
+ "type": "object",
3254
+ "description": "Kubernetes-specific runtime configuration (KAS-inspired)",
3255
+ "properties": {
3256
+ "namespace": {
3257
+ "type": "string",
3258
+ "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$",
3259
+ "description": "Kubernetes namespace (DNS-1123 subdomain)"
3260
+ },
3261
+ "service_account": {
3262
+ "type": "string",
3263
+ "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$",
3264
+ "description": "Kubernetes service account name"
3265
+ },
3266
+ "api_server_url": {
3267
+ "type": "string",
3268
+ "format": "uri",
3269
+ "description": "Kubernetes API server URL (similar to KAS private API URL)"
3270
+ },
3271
+ "network_family": {
3272
+ "type": "string",
3273
+ "enum": [
3274
+ "tcp",
3275
+ "tcp4",
3276
+ "tcp6"
3277
+ ],
3278
+ "default": "tcp",
3279
+ "description": "Network family (KAS pattern: tcp, tcp4, tcp6)"
3280
+ },
3281
+ "health_check_endpoint": {
3282
+ "type": "string",
3283
+ "format": "uri",
3284
+ "description": "Health check endpoint URL"
3285
+ },
3286
+ "config_map_ref": {
3287
+ "type": "string",
3288
+ "description": "Reference to Kubernetes ConfigMap"
3289
+ },
3290
+ "secret_ref": {
3291
+ "type": "string",
3292
+ "description": "Reference to Kubernetes Secret"
3293
+ },
3294
+ "rbac": {
3295
+ "type": "object",
3296
+ "properties": {
3297
+ "role": {
3298
+ "type": "string",
3299
+ "description": "Kubernetes Role name"
3300
+ },
3301
+ "cluster_role": {
3302
+ "type": "string",
3303
+ "description": "Kubernetes ClusterRole name"
3304
+ },
3305
+ "role_binding": {
3306
+ "type": "string",
3307
+ "description": "Kubernetes RoleBinding name"
3308
+ }
3309
+ },
3310
+ "additionalProperties": false
3311
+ }
3312
+ },
3313
+ "additionalProperties": false
3314
+ }
3315
+ }
3316
+ }