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