@bluefly/openstandardagents 0.2.7 → 0.2.9

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 (327) hide show
  1. package/.devfile.yaml +1 -1
  2. package/.env.example +1 -1
  3. package/.github/AGENTS.md +245 -0
  4. package/.github/agents/github-issue-triage.ossa.yaml +99 -0
  5. package/.github/agents/github-pr-triage.ossa.yaml +137 -0
  6. package/.github/workflows/issue-sync-to-gitlab.yml +138 -0
  7. package/.github/workflows/pr-triage-to-gitlab.yml +164 -0
  8. package/.version.json +2 -2
  9. package/.wiki-config.json +24 -0
  10. package/CHANGELOG.md +44 -18
  11. package/CODEOWNERS +75 -0
  12. package/CONTRIBUTING.md +103 -4
  13. package/README.md +178 -243
  14. package/dist/index.d.ts +1 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +2 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/repositories/schema.repository.d.ts +6 -1
  19. package/dist/repositories/schema.repository.d.ts.map +1 -1
  20. package/dist/repositories/schema.repository.js +49 -27
  21. package/dist/repositories/schema.repository.js.map +1 -1
  22. package/dist/services/migration.service.d.ts +4 -3
  23. package/dist/services/migration.service.d.ts.map +1 -1
  24. package/dist/services/migration.service.js +11 -10
  25. package/dist/services/migration.service.js.map +1 -1
  26. package/dist/services/release-automation/release.service.js +1 -1
  27. package/dist/services/release-automation/release.service.js.map +1 -1
  28. package/dist/services/release-automation/schemas/release.schema.js +1 -1
  29. package/dist/services/release-automation/webhook.service.js +3 -3
  30. package/dist/services/release-automation/webhook.service.js.map +1 -1
  31. package/dist/services/runtime/claude/claude-adapter.d.ts +1 -1
  32. package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -1
  33. package/dist/services/runtime/claude/claude-adapter.js +2 -2
  34. package/dist/services/runtime/claude/claude-adapter.js.map +1 -1
  35. package/dist/spec/v0.2.8/CHANGELOG.md +401 -0
  36. package/dist/spec/v0.2.8/README.md +72 -0
  37. package/dist/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
  38. package/dist/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  39. package/dist/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
  40. package/{spec/v0.2.6-dev/ossa-0.2.5.schema.json → dist/spec/v0.2.8/ossa-0.2.8.schema.json} +1509 -52
  41. package/dist/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
  42. package/dist/spec/v0.2.9/a2a-protocol.md +1337 -0
  43. package/dist/spec/v0.2.9/agent.md +1946 -0
  44. package/dist/spec/v0.2.9/capabilities/index.yaml +25 -0
  45. package/dist/spec/v0.2.9/capabilities/memory.yaml +251 -0
  46. package/dist/spec/v0.2.9/capability-schema.md +576 -0
  47. package/dist/spec/v0.2.9/compliance-profiles.md +533 -0
  48. package/dist/spec/v0.2.9/conformance-testing.md +1527 -0
  49. package/dist/spec/v0.2.9/gitlab-duo-integration.md +621 -0
  50. package/dist/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
  51. package/dist/spec/v0.2.9/runtime-semantics.md +464 -0
  52. package/dist/spec/v0.2.9/security-model.md +1245 -0
  53. package/dist/spec/v0.2.9/semantic-conventions.md +347 -0
  54. package/dist/spec/v0.2.9/types.ts +522 -0
  55. package/dist/types/index.d.ts +3 -2
  56. package/dist/types/index.d.ts.map +1 -1
  57. package/dist/types/policy.d.ts +377 -0
  58. package/dist/types/policy.d.ts.map +1 -0
  59. package/dist/types/policy.js +84 -0
  60. package/dist/types/policy.js.map +1 -0
  61. package/dist/utils/index.d.ts +6 -0
  62. package/dist/utils/index.d.ts.map +1 -0
  63. package/dist/utils/index.js +6 -0
  64. package/dist/utils/index.js.map +1 -0
  65. package/dist/utils/version.d.ts +68 -0
  66. package/dist/utils/version.d.ts.map +1 -0
  67. package/dist/utils/version.js +156 -0
  68. package/dist/utils/version.js.map +1 -0
  69. package/docs/specs/policy-dsl.md +925 -0
  70. package/eslint-report.json +1 -0
  71. package/examples/adk-integration/code-review-workflow.yml +1 -1
  72. package/examples/adk-integration/customer-support.yml +1 -1
  73. package/examples/adk-integration/data-pipeline.yml +1 -1
  74. package/examples/advanced/reasoning-agent.yaml +136 -0
  75. package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
  76. package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
  77. package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
  78. package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
  79. package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
  80. package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
  81. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
  82. package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
  83. package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
  84. package/examples/agents-md/code-agent.ossa.json +100 -0
  85. package/examples/agents-md/monorepo-agent.ossa.yaml +180 -0
  86. package/examples/anthropic/claude-assistant.ossa.json +1 -1
  87. package/examples/autogen/multi-agent.ossa.json +1 -1
  88. package/examples/claude-code/code-reviewer.ossa.yaml +78 -0
  89. package/examples/claude-code/ossa-validator.ossa.yaml +80 -0
  90. package/examples/common_npm/agent-router.ossa.yaml +1 -0
  91. package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +1 -1
  92. package/examples/crewai/research-team.ossa.json +1 -1
  93. package/examples/cursor/code-review-agent.ossa.json +1 -1
  94. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -0
  95. package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +1 -1
  96. package/examples/extensions/agents-md-v1.yml +175 -0
  97. package/examples/extensions/drupal-v1.yml +1 -1
  98. package/examples/extensions/kagent-v1.yml +1 -1
  99. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  100. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
  101. package/examples/kagent/compliance-validator.ossa.yaml +1 -1
  102. package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
  103. package/examples/kagent/documentation-agent.ossa.yaml +1 -1
  104. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -0
  105. package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +1 -1
  106. package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
  107. package/examples/kagent/security-scanner.ossa.yaml +1 -1
  108. package/examples/langchain/chain-agent.ossa.json +1 -1
  109. package/examples/langflow/workflow-agent.ossa.json +1 -1
  110. package/examples/langgraph/state-machine-agent.ossa.json +1 -1
  111. package/examples/llamaindex/rag-agent.ossa.json +1 -1
  112. package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
  113. package/examples/multi-agent/README.md +74 -0
  114. package/examples/multi-agent/conditional-router.ossa.yaml +42 -0
  115. package/examples/multi-agent/parallel-execution.ossa.yaml +54 -0
  116. package/examples/multi-agent/sequential-pipeline.ossa.yaml +45 -0
  117. package/examples/openai/basic-agent.ossa.yaml +1 -1
  118. package/examples/openai/multi-tool-agent.ossa.json +1 -1
  119. package/examples/openai/swarm-agent.ossa.json +1 -1
  120. package/examples/production/document-analyzer-openai.yml +1 -1
  121. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  122. package/examples/spec-examples/audit-agent.yml +1 -1
  123. package/examples/spec-examples/chat-agent.yml +1 -1
  124. package/examples/spec-examples/compliance-agent.yml +1 -1
  125. package/examples/spec-examples/monitoring-agent.yml +1 -1
  126. package/examples/spec-examples/workflow-agent.yml +1 -1
  127. package/examples/templates/ossa-compliance.yaml +1 -1
  128. package/examples/vercel/edge-agent.ossa.json +1 -1
  129. package/gl-code-quality-report.json +62 -0
  130. package/llms-ctx-full.txt +39 -0
  131. package/llms-ctx.txt +39 -0
  132. package/llms.txt +47 -0
  133. package/package.json +6 -3
  134. package/scripts/README.md +25 -0
  135. package/scripts/compliance-audit.ts +796 -0
  136. package/scripts/eslint-to-codequality.cjs +34 -0
  137. package/scripts/generate-agents-catalog.ts +2 -1
  138. package/scripts/generate-api-docs.ts +2 -1
  139. package/scripts/generate-examples-docs.ts +2 -1
  140. package/scripts/generate-llms-ctx.sh +17 -0
  141. package/scripts/generate-schema-docs.ts +31 -10
  142. package/scripts/sync-version.js +4 -12
  143. package/scripts/validate-schema.ts +2 -1
  144. package/spec/v0.2.8/CHANGELOG.md +401 -0
  145. package/spec/v0.2.8/README.md +72 -0
  146. package/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
  147. package/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  148. package/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
  149. package/spec/{v0.2.6-dev/ossa-0.2.6-dev.schema.json → v0.2.8/ossa-0.2.8.schema.json} +1509 -52
  150. package/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
  151. package/spec/v0.2.9/a2a-protocol.md +1337 -0
  152. package/spec/v0.2.9/agent.md +1946 -0
  153. package/spec/v0.2.9/capabilities/index.yaml +25 -0
  154. package/spec/v0.2.9/capabilities/memory.yaml +251 -0
  155. package/spec/v0.2.9/capability-schema.md +576 -0
  156. package/spec/v0.2.9/compliance-profiles.md +533 -0
  157. package/spec/v0.2.9/conformance-testing.md +1527 -0
  158. package/spec/v0.2.9/gitlab-duo-integration.md +621 -0
  159. package/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
  160. package/spec/v0.2.9/runtime-semantics.md +464 -0
  161. package/spec/v0.2.9/security-model.md +1245 -0
  162. package/spec/v0.2.9/semantic-conventions.md +347 -0
  163. package/spec/v0.2.9/types.ts +522 -0
  164. package/test-results/junit.xml +337 -0
  165. package/.github/workflows/pr-comment.yml +0 -33
  166. package/bin/validate-ossa-0.2.5-RC.ts +0 -244
  167. package/dist/spec/v0.2.6-dev/ossa-0.2.5.schema.json +0 -1696
  168. package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +0 -1696
  169. package/scripts/lib/exec.ts +0 -37
  170. package/scripts/lib/file-ops.ts +0 -58
  171. package/scripts/lib/version.ts +0 -83
  172. package/website/.lighthouserc.ts +0 -24
  173. package/website/.prettierrc +0 -10
  174. package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +0 -445
  175. package/website/Dockerfile +0 -30
  176. package/website/app/about/page.tsx +0 -304
  177. package/website/app/blog/[slug]/page.tsx +0 -208
  178. package/website/app/blog/page.tsx +0 -249
  179. package/website/app/design-guide/page.tsx +0 -511
  180. package/website/app/docs/[[...slug]]/page.tsx +0 -847
  181. package/website/app/docs/core-concepts/project-structure/page.tsx +0 -349
  182. package/website/app/ecosystem/page.tsx +0 -410
  183. package/website/app/examples/page.tsx +0 -133
  184. package/website/app/globals.scss +0 -370
  185. package/website/app/layout.tsx +0 -106
  186. package/website/app/license/page.tsx +0 -183
  187. package/website/app/not-found.tsx +0 -18
  188. package/website/app/page.tsx +0 -686
  189. package/website/app/page.tsx.bak +0 -679
  190. package/website/app/page.tsx.bak2 +0 -649
  191. package/website/app/playground/page.tsx +0 -487
  192. package/website/app/robots.ts +0 -19
  193. package/website/app/rss.xml/route.ts +0 -74
  194. package/website/app/schema/page.tsx +0 -1001
  195. package/website/app/sitemap.ts +0 -56
  196. package/website/app/specification/page.tsx +0 -287
  197. package/website/components/InstallCommand.tsx +0 -96
  198. package/website/components/Logo.tsx +0 -97
  199. package/website/components/StructuredData.tsx +0 -65
  200. package/website/components/docs/DocsSearch.tsx +0 -104
  201. package/website/components/docs/DocsSidebar.tsx +0 -155
  202. package/website/components/docs/MarkdownContent.tsx +0 -401
  203. package/website/components/docs/VersionSelector.tsx +0 -105
  204. package/website/components/examples/ExamplesViewer.tsx +0 -293
  205. package/website/components/layout/Footer.tsx +0 -116
  206. package/website/components/layout/Header.tsx +0 -172
  207. package/website/components/schema/SchemaComponentsAccordion.tsx +0 -84
  208. package/website/components/schema/SchemaExplorer.tsx +0 -213
  209. package/website/components/ui/Badge.tsx +0 -82
  210. package/website/components/ui/Button.tsx +0 -116
  211. package/website/components/ui/Card.tsx +0 -167
  212. package/website/components/ui/Checkbox.tsx +0 -141
  213. package/website/components/ui/Input.tsx +0 -169
  214. package/website/components/ui/Radio.tsx +0 -141
  215. package/website/components/ui/Select.tsx +0 -182
  216. package/website/components/ui/Tag.tsx +0 -158
  217. package/website/components/ui/Textarea.tsx +0 -195
  218. package/website/components/ui/index.ts +0 -11
  219. package/website/content/blog/OpenAPI-AI-Agents-Standard.md +0 -285
  220. package/website/content/blog/Why-Formal-Standards-Matter-Now.md +0 -198
  221. package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +0 -286
  222. package/website/content/blog/introducing-ossa-framework.md +0 -328
  223. package/website/content/blog/ossa-production-results.md +0 -279
  224. package/website/content/blog/welcome-to-ossa.md +0 -43
  225. package/website/content/blog/why-ai-agents-need-open-standard.md +0 -98
  226. package/website/content/docs/00-home.md +0 -153
  227. package/website/content/docs/adapters/openai-adapter.md +0 -693
  228. package/website/content/docs/agents/catalog.md +0 -28
  229. package/website/content/docs/aiflow-framework-integration-with-ossa.md +0 -107
  230. package/website/content/docs/api-reference/index.md +0 -38
  231. package/website/content/docs/api-reference/ossa-core-api.md +0 -634
  232. package/website/content/docs/api-reference/ossa-registry-api.md +0 -515
  233. package/website/content/docs/api-reference/unified-agent-gateway.md +0 -599
  234. package/website/content/docs/architecture/execution-flow.md +0 -335
  235. package/website/content/docs/architecture/multi-agent-systems.md +0 -737
  236. package/website/content/docs/architecture/overview.md +0 -121
  237. package/website/content/docs/architecture/stack-integration.md +0 -461
  238. package/website/content/docs/changelog.md +0 -246
  239. package/website/content/docs/cli-reference/index.md +0 -111
  240. package/website/content/docs/cli-reference/ossa-agents.md +0 -70
  241. package/website/content/docs/cli-reference/ossa-export.md +0 -56
  242. package/website/content/docs/cli-reference/ossa-generate.md +0 -66
  243. package/website/content/docs/cli-reference/ossa-gitlab-agent.md +0 -57
  244. package/website/content/docs/cli-reference/ossa-import.md +0 -56
  245. package/website/content/docs/cli-reference/ossa-init.md +0 -57
  246. package/website/content/docs/cli-reference/ossa-migrate.md +0 -62
  247. package/website/content/docs/cli-reference/ossa-run.md +0 -66
  248. package/website/content/docs/cli-reference/ossa-schema.md +0 -57
  249. package/website/content/docs/cli-reference/ossa-setup.md +0 -57
  250. package/website/content/docs/cli-reference/ossa-validate.md +0 -66
  251. package/website/content/docs/configuration/index.md +0 -97
  252. package/website/content/docs/contributing.md +0 -599
  253. package/website/content/docs/deployment/github-mirroring.md +0 -924
  254. package/website/content/docs/documentation.md +0 -100
  255. package/website/content/docs/ecosystem/framework-support.md +0 -1361
  256. package/website/content/docs/ecosystem/overview.md +0 -366
  257. package/website/content/docs/errors/index.md +0 -10
  258. package/website/content/docs/examples/aiflow-framework-integration-with-ossa.md +0 -107
  259. package/website/content/docs/examples/catalog.md +0 -300
  260. package/website/content/docs/for-audiences/students-researchers.md +0 -122
  261. package/website/content/docs/getting-started/index.md +0 -92
  262. package/website/content/docs/getting-started/installation.md +0 -155
  263. package/website/content/docs/getting-started/running-agents.md +0 -309
  264. package/website/content/docs/getting-started.md +0 -91
  265. package/website/content/docs/integrations/aiflow.md +0 -104
  266. package/website/content/docs/integrations/drupal.md +0 -105
  267. package/website/content/docs/migration-guides/agent-schema-comparison.md +0 -232
  268. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +0 -1750
  269. package/website/content/docs/migration-guides/crewai-to-ossa.md +0 -274
  270. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +0 -2017
  271. package/website/content/docs/migration-guides/general-agent-schema.yml +0 -247
  272. package/website/content/docs/migration-guides/index.md +0 -133
  273. package/website/content/docs/migration-guides/langchain-to-ossa.md +0 -1714
  274. package/website/content/docs/migration-guides/langflow-to-ossa.md +0 -2075
  275. package/website/content/docs/migration-guides/migration-manifest.json +0 -64
  276. package/website/content/docs/migration-guides/openai-to-ossa.md +0 -1202
  277. package/website/content/docs/openapi-extensions/examples.md +0 -550
  278. package/website/content/docs/openapi-extensions/index.md +0 -551
  279. package/website/content/docs/openapi-extensions/operation-extensions.md +0 -457
  280. package/website/content/docs/openapi-extensions/root-extensions.md +0 -410
  281. package/website/content/docs/ossa-compliant-badge.md +0 -251
  282. package/website/content/docs/pre-release/index.md +0 -175
  283. package/website/content/docs/quick-reference.md +0 -17
  284. package/website/content/docs/readme.md +0 -35
  285. package/website/content/docs/releases/v0.2.6.md +0 -99
  286. package/website/content/docs/schema-reference/agent-capabilities.md +0 -50
  287. package/website/content/docs/schema-reference/agent-id.md +0 -52
  288. package/website/content/docs/schema-reference/agent-name.md +0 -50
  289. package/website/content/docs/schema-reference/agent-role.md +0 -54
  290. package/website/content/docs/schema-reference/agent-spec.md +0 -406
  291. package/website/content/docs/schema-reference/agent-version.md +0 -50
  292. package/website/content/docs/schema-reference/autonomy.md +0 -568
  293. package/website/content/docs/schema-reference/constraints.md +0 -543
  294. package/website/content/docs/schema-reference/index.md +0 -45
  295. package/website/content/docs/schema-reference/llm-config.md +0 -445
  296. package/website/content/docs/schema-reference/observability.md +0 -654
  297. package/website/content/docs/schema-reference/ossa-manifest.md +0 -309
  298. package/website/content/docs/schema-reference/taxonomy.md +0 -509
  299. package/website/content/docs/schema-reference/tools.md +0 -628
  300. package/website/content/docs/templates/blog-post.md +0 -43
  301. package/website/content/docs/types-reference/index.md +0 -105
  302. package/website/content/docs/use-cases/00-index.md +0 -395
  303. package/website/content/docs/use-cases/cicd-code-review.md +0 -1236
  304. package/website/content/docs/use-cases/customer-support.md +0 -1234
  305. package/website/content/docs/use-cases/enterprise-compliance.md +0 -1208
  306. package/website/content/docs/use-cases/research-multi-agent.md +0 -1161
  307. package/website/content/docs/versioning.md +0 -288
  308. package/website/dev.sh +0 -53
  309. package/website/docker-compose.dev.yml +0 -36
  310. package/website/lib/version.ts +0 -35
  311. package/website/lib/versions.json +0 -103
  312. package/website/next.config.ts +0 -18
  313. package/website/nginx.conf +0 -32
  314. package/website/package-lock.json +0 -9679
  315. package/website/package.json +0 -59
  316. package/website/postcss.config.mjs +0 -9
  317. package/website/scripts/fetch-versions.js +0 -166
  318. package/website/scripts/generate-examples-index.js +0 -163
  319. package/website/scripts/merge-docs-to-wiki.ts +0 -207
  320. package/website/scripts/sync-version.js +0 -72
  321. package/website/scripts/sync-wiki.ts +0 -322
  322. package/website/scripts/upload-wiki.ts +0 -199
  323. package/website/styles/_spacing.scss +0 -453
  324. package/website/styles/_tokens.scss +0 -245
  325. package/website/styles/_typography.scss +0 -361
  326. package/website/styles/_variables.scss +0 -287
  327. package/website/tailwind.config.ts +0 -170
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://openstandardagents.org/schemas/v0.2.5/agent.json",
4
- "title": "OSSA v0.2.5-RC Agent Manifest Schema",
3
+ "$id": "https://openstandardagents.org/schemas/v0.2.8/agent.json",
4
+ "title": "OSSA v0.2.8 Agent Manifest Schema",
5
5
  "description": "Open Standard for Scalable AI Agents (OSSA) - The OpenAPI for AI Agents. Specification for declarative agent definition with framework-agnostic portability.",
6
6
  "type": "object",
7
7
  "required": [
@@ -13,10 +13,12 @@
13
13
  "properties": {
14
14
  "apiVersion": {
15
15
  "type": "string",
16
- "pattern": "^ossa/v(0\\.2\\.[2-5](-dev)?|1)(\\.[0-9]+)?(-[a-zA-Z0-9]+)?$",
17
- "description": "OSSA API version (supports ossa/v0.2.2, ossa/v0.2.3, ossa/v0.2.5, or ossa/v1 for compatibility)",
16
+ "pattern": "^ossa/v(0\\.2\\.[2-8](-dev)?|1)(\\.[0-9]+)?(-[a-zA-Z0-9]+)?$",
17
+ "description": "OSSA API version (supports ossa/v0.2.2 through ossa/v0.2.8, or ossa/v1 for compatibility)",
18
18
  "examples": [
19
19
  "ossa/v1",
20
+ "ossa/v0.2.8",
21
+ "ossa/v0.2.6",
20
22
  "ossa/v0.2.5",
21
23
  "ossa/v0.2.3",
22
24
  "ossa/v0.2.2",
@@ -87,6 +89,9 @@
87
89
  },
88
90
  "google_adk": {
89
91
  "$ref": "#/definitions/GoogleADKExtension"
92
+ },
93
+ "a2a": {
94
+ "$ref": "#/definitions/A2AExtension"
90
95
  }
91
96
  },
92
97
  "additionalProperties": true
@@ -169,6 +174,21 @@
169
174
  },
170
175
  "state": {
171
176
  "$ref": "#/definitions/State"
177
+ },
178
+ "security": {
179
+ "$ref": "#/definitions/Security"
180
+ },
181
+ "reliability": {
182
+ "$ref": "#/definitions/Reliability"
183
+ },
184
+ "collaboration": {
185
+ "$ref": "#/definitions/Collaboration"
186
+ },
187
+ "safety": {
188
+ "$ref": "#/definitions/Safety"
189
+ },
190
+ "deployment": {
191
+ "$ref": "#/definitions/Deployment"
172
192
  }
173
193
  },
174
194
  "additionalProperties": true
@@ -266,6 +286,62 @@
266
286
  "minimum": -2,
267
287
  "maximum": 2,
268
288
  "description": "Presence penalty for token generation"
289
+ },
290
+ "fallback_models": {
291
+ "type": "array",
292
+ "description": "Fallback models to use if primary model fails",
293
+ "items": {
294
+ "type": "object",
295
+ "properties": {
296
+ "provider": {
297
+ "type": "string",
298
+ "enum": ["openai", "anthropic", "google", "azure", "ollama", "custom"]
299
+ },
300
+ "model": {
301
+ "type": "string"
302
+ }
303
+ },
304
+ "required": ["provider", "model"]
305
+ }
306
+ },
307
+ "retry_config": {
308
+ "type": "object",
309
+ "description": "Retry configuration for LLM calls",
310
+ "properties": {
311
+ "max_attempts": {
312
+ "type": "integer",
313
+ "minimum": 1,
314
+ "maximum": 5,
315
+ "default": 3
316
+ },
317
+ "backoff_strategy": {
318
+ "type": "string",
319
+ "enum": ["fixed", "exponential"],
320
+ "default": "exponential"
321
+ }
322
+ }
323
+ },
324
+ "cost_tracking": {
325
+ "type": "object",
326
+ "description": "Cost tracking and budgeting",
327
+ "properties": {
328
+ "enabled": {
329
+ "type": "boolean",
330
+ "default": false
331
+ },
332
+ "budget_alert_threshold": {
333
+ "type": "number",
334
+ "minimum": 0,
335
+ "description": "Alert when cost exceeds this threshold"
336
+ },
337
+ "cost_allocation_tags": {
338
+ "type": "object",
339
+ "additionalProperties": {
340
+ "type": "string"
341
+ },
342
+ "description": "Tags for cost allocation"
343
+ }
344
+ }
269
345
  }
270
346
  },
271
347
  "additionalProperties": false
@@ -303,7 +379,6 @@
303
379
  },
304
380
  "endpoint": {
305
381
  "type": "string",
306
- "format": "uri",
307
382
  "description": "HTTP/gRPC endpoint (for type=http/grpc)"
308
383
  },
309
384
  "capabilities": {
@@ -353,12 +428,57 @@
353
428
  "type": "string"
354
429
  },
355
430
  "description": "Compliance framework tags (e.g., 'pii', 'hipaa', 'gdpr', 'fedramp')"
431
+ },
432
+ "health_check": {
433
+ "type": "object",
434
+ "description": "Health check configuration for this tool",
435
+ "properties": {
436
+ "enabled": {
437
+ "type": "boolean",
438
+ "default": false
439
+ },
440
+ "endpoint": {
441
+ "type": "string",
442
+ "description": "Health check endpoint"
443
+ },
444
+ "interval_seconds": {
445
+ "type": "integer",
446
+ "minimum": 1,
447
+ "default": 30
448
+ },
449
+ "timeout_seconds": {
450
+ "type": "integer",
451
+ "minimum": 1,
452
+ "default": 5
453
+ }
454
+ }
455
+ },
456
+ "circuit_breaker": {
457
+ "type": "object",
458
+ "description": "Circuit breaker configuration for this tool",
459
+ "properties": {
460
+ "enabled": {
461
+ "type": "boolean",
462
+ "default": false
463
+ },
464
+ "failure_threshold": {
465
+ "type": "integer",
466
+ "minimum": 1,
467
+ "default": 5
468
+ },
469
+ "timeout_seconds": {
470
+ "type": "number",
471
+ "minimum": 0,
472
+ "default": 60
473
+ }
474
+ }
356
475
  }
357
476
  },
358
477
  "additionalProperties": false
359
478
  },
360
479
  "Capability": {
361
480
  "type": "object",
481
+ "required": ["name"],
362
482
  "properties": {
363
483
  "name": {
364
484
  "type": "string",
@@ -390,6 +510,31 @@
390
510
  "type": "object",
391
511
  "description": "JSON Schema for capability output"
392
512
  },
513
+ "examples": {
514
+ "type": "array",
515
+ "description": "Example invocations of this capability",
516
+ "items": {
517
+ "type": "object",
518
+ "properties": {
519
+ "name": {
520
+ "type": "string",
521
+ "description": "Example name"
522
+ },
523
+ "description": {
524
+ "type": "string",
525
+ "description": "Example description"
526
+ },
527
+ "input": {
528
+ "type": "object",
529
+ "description": "Example input"
530
+ },
531
+ "output": {
532
+ "type": "object",
533
+ "description": "Expected output"
534
+ }
535
+ }
536
+ }
537
+ },
393
538
  "transport": {
394
539
  "$ref": "#/definitions/Transport"
395
540
  },
@@ -406,6 +551,134 @@
406
551
  "type": "string"
407
552
  },
408
553
  "description": "Compliance framework tags for this capability"
554
+ },
555
+ "timeout": {
556
+ "type": "object",
557
+ "description": "Timeout configuration for capability execution",
558
+ "properties": {
559
+ "execution_seconds": {
560
+ "type": "number",
561
+ "minimum": 0,
562
+ "description": "Maximum execution time in seconds"
563
+ },
564
+ "connection_seconds": {
565
+ "type": "number",
566
+ "minimum": 0,
567
+ "description": "Connection timeout in seconds"
568
+ }
569
+ }
570
+ },
571
+ "retry_policy": {
572
+ "type": "object",
573
+ "description": "Retry policy for failed capability invocations",
574
+ "properties": {
575
+ "max_attempts": {
576
+ "type": "integer",
577
+ "minimum": 1,
578
+ "maximum": 10,
579
+ "default": 3,
580
+ "description": "Maximum retry attempts"
581
+ },
582
+ "backoff_strategy": {
583
+ "type": "string",
584
+ "enum": ["fixed", "exponential", "linear"],
585
+ "default": "exponential",
586
+ "description": "Backoff strategy between retries"
587
+ },
588
+ "initial_delay_ms": {
589
+ "type": "integer",
590
+ "minimum": 0,
591
+ "default": 1000,
592
+ "description": "Initial delay in milliseconds"
593
+ },
594
+ "max_delay_ms": {
595
+ "type": "integer",
596
+ "minimum": 0,
597
+ "default": 30000,
598
+ "description": "Maximum delay in milliseconds"
599
+ },
600
+ "retryable_errors": {
601
+ "type": "array",
602
+ "items": {
603
+ "type": "string"
604
+ },
605
+ "description": "Error codes/types that should trigger retry"
606
+ }
607
+ }
608
+ },
609
+ "error_handling": {
610
+ "type": "object",
611
+ "description": "Error handling configuration",
612
+ "properties": {
613
+ "fallback_capability": {
614
+ "type": "string",
615
+ "description": "Fallback capability to use on failure"
616
+ },
617
+ "error_mapping": {
618
+ "type": "object",
619
+ "description": "Map internal errors to standard error codes",
620
+ "additionalProperties": {
621
+ "type": "string"
622
+ }
623
+ },
624
+ "on_error": {
625
+ "type": "string",
626
+ "enum": ["fail", "fallback", "ignore", "retry"],
627
+ "default": "fail",
628
+ "description": "Action to take on error"
629
+ }
630
+ }
631
+ },
632
+ "caching": {
633
+ "type": "object",
634
+ "description": "Caching configuration for capability results",
635
+ "properties": {
636
+ "enabled": {
637
+ "type": "boolean",
638
+ "default": false,
639
+ "description": "Enable result caching"
640
+ },
641
+ "ttl_seconds": {
642
+ "type": "integer",
643
+ "minimum": 0,
644
+ "description": "Cache TTL in seconds"
645
+ },
646
+ "cache_key_fields": {
647
+ "type": "array",
648
+ "items": {
649
+ "type": "string"
650
+ },
651
+ "description": "Input fields to use for cache key generation"
652
+ },
653
+ "invalidation_strategy": {
654
+ "type": "string",
655
+ "enum": ["ttl", "manual", "event_driven"],
656
+ "default": "ttl"
657
+ }
658
+ }
659
+ },
660
+ "idempotency": {
661
+ "type": "object",
662
+ "description": "Idempotency configuration",
663
+ "properties": {
664
+ "enabled": {
665
+ "type": "boolean",
666
+ "default": false,
667
+ "description": "Whether this capability is idempotent"
668
+ },
669
+ "key_fields": {
670
+ "type": "array",
671
+ "items": {
672
+ "type": "string"
673
+ },
674
+ "description": "Fields used to determine idempotency"
675
+ },
676
+ "ttl_seconds": {
677
+ "type": "integer",
678
+ "minimum": 0,
679
+ "description": "How long to track idempotency keys"
680
+ }
681
+ }
409
682
  }
410
683
  },
411
684
  "additionalProperties": false
@@ -449,6 +722,39 @@
449
722
  "application/x-ndjson",
450
723
  "text/event-stream"
451
724
  ]
725
+ },
726
+ "rateLimit": {
727
+ "type": "object",
728
+ "description": "Rate limiting configuration for this transport",
729
+ "properties": {
730
+ "requestsPerMinute": {
731
+ "type": "integer",
732
+ "minimum": 1,
733
+ "description": "Maximum requests per minute"
734
+ },
735
+ "requestsPerHour": {
736
+ "type": "integer",
737
+ "minimum": 1,
738
+ "description": "Maximum requests per hour"
739
+ },
740
+ "burstLimit": {
741
+ "type": "integer",
742
+ "minimum": 1,
743
+ "description": "Maximum burst of concurrent requests"
744
+ },
745
+ "strategy": {
746
+ "type": "string",
747
+ "enum": ["fixed_window", "sliding_window", "token_bucket", "leaky_bucket"],
748
+ "default": "sliding_window",
749
+ "description": "Rate limiting algorithm"
750
+ },
751
+ "onExceeded": {
752
+ "type": "string",
753
+ "enum": ["reject", "queue", "throttle"],
754
+ "default": "reject",
755
+ "description": "Behavior when rate limit is exceeded"
756
+ }
757
+ }
452
758
  }
453
759
  },
454
760
  "additionalProperties": false
@@ -497,6 +803,40 @@
497
803
  "type": "object",
498
804
  "description": "Storage-specific configuration",
499
805
  "additionalProperties": true
806
+ },
807
+ "encryption": {
808
+ "type": "object",
809
+ "description": "Encryption configuration for stored state data",
810
+ "properties": {
811
+ "enabled": {
812
+ "type": "boolean",
813
+ "default": false,
814
+ "description": "Enable encryption for state storage"
815
+ },
816
+ "algorithm": {
817
+ "type": "string",
818
+ "enum": ["aes-256-gcm", "aes-256-cbc", "chacha20-poly1305"],
819
+ "default": "aes-256-gcm",
820
+ "description": "Encryption algorithm"
821
+ },
822
+ "keyRef": {
823
+ "type": "string",
824
+ "description": "Secret reference for encryption key (e.g., 'vault:secret/data/agent-keys')"
825
+ },
826
+ "keyRotation": {
827
+ "type": "object",
828
+ "properties": {
829
+ "enabled": {
830
+ "type": "boolean",
831
+ "default": false
832
+ },
833
+ "interval": {
834
+ "type": "string",
835
+ "description": "Key rotation interval (e.g., '30d', '90d')"
836
+ }
837
+ }
838
+ }
839
+ }
500
840
  }
501
841
  },
502
842
  "additionalProperties": false
@@ -649,8 +989,7 @@
649
989
  ]
650
990
  },
651
991
  "endpoint": {
652
- "type": "string",
653
- "format": "uri"
992
+ "type": "string"
654
993
  }
655
994
  }
656
995
  },
@@ -670,8 +1009,7 @@
670
1009
  ]
671
1010
  },
672
1011
  "endpoint": {
673
- "type": "string",
674
- "format": "uri"
1012
+ "type": "string"
675
1013
  }
676
1014
  }
677
1015
  },
@@ -697,6 +1035,66 @@
697
1035
  "default": "json"
698
1036
  }
699
1037
  }
1038
+ },
1039
+ "alerting": {
1040
+ "type": "object",
1041
+ "description": "Alerting configuration",
1042
+ "properties": {
1043
+ "enabled": {
1044
+ "type": "boolean",
1045
+ "default": false
1046
+ },
1047
+ "channels": {
1048
+ "type": "array",
1049
+ "items": {
1050
+ "type": "string",
1051
+ "enum": ["email", "slack", "pagerduty", "webhook", "sns"]
1052
+ },
1053
+ "description": "Alert notification channels"
1054
+ },
1055
+ "rules": {
1056
+ "type": "array",
1057
+ "items": {
1058
+ "type": "object",
1059
+ "properties": {
1060
+ "name": {
1061
+ "type": "string"
1062
+ },
1063
+ "condition": {
1064
+ "type": "string",
1065
+ "description": "Alert condition (e.g., 'error_rate > 5%')"
1066
+ },
1067
+ "severity": {
1068
+ "type": "string",
1069
+ "enum": ["critical", "warning", "info"]
1070
+ }
1071
+ }
1072
+ }
1073
+ }
1074
+ }
1075
+ },
1076
+ "slo": {
1077
+ "type": "object",
1078
+ "description": "Service Level Objectives",
1079
+ "properties": {
1080
+ "availability": {
1081
+ "type": "number",
1082
+ "minimum": 0,
1083
+ "maximum": 100,
1084
+ "description": "Target availability percentage"
1085
+ },
1086
+ "latency_p95_ms": {
1087
+ "type": "number",
1088
+ "minimum": 0,
1089
+ "description": "P95 latency target in milliseconds"
1090
+ },
1091
+ "error_budget": {
1092
+ "type": "number",
1093
+ "minimum": 0,
1094
+ "maximum": 100,
1095
+ "description": "Allowed error budget percentage"
1096
+ }
1097
+ }
700
1098
  }
701
1099
  },
702
1100
  "additionalProperties": false
@@ -739,7 +1137,10 @@
739
1137
  },
740
1138
  "strategy": {
741
1139
  "type": "string",
742
- "enum": ["rolling-update", "recreate"],
1140
+ "enum": [
1141
+ "rolling-update",
1142
+ "recreate"
1143
+ ],
743
1144
  "default": "rolling-update"
744
1145
  }
745
1146
  }
@@ -783,7 +1184,11 @@
783
1184
  },
784
1185
  "runtime": {
785
1186
  "type": "string",
786
- "enum": ["docker", "podman", "containerd"],
1187
+ "enum": [
1188
+ "docker",
1189
+ "podman",
1190
+ "containerd"
1191
+ ],
787
1192
  "default": "docker"
788
1193
  },
789
1194
  "resources": {
@@ -851,7 +1256,6 @@
851
1256
  },
852
1257
  "endpoint": {
853
1258
  "type": "string",
854
- "format": "uri",
855
1259
  "description": "LibreChat API endpoint"
856
1260
  },
857
1261
  "authentication": {
@@ -871,7 +1275,11 @@
871
1275
  },
872
1276
  "server_type": {
873
1277
  "type": "string",
874
- "enum": ["stdio", "sse", "websocket"],
1278
+ "enum": [
1279
+ "stdio",
1280
+ "sse",
1281
+ "websocket"
1282
+ ],
875
1283
  "default": "stdio"
876
1284
  },
877
1285
  "server_name": {
@@ -881,32 +1289,129 @@
881
1289
  "config": {
882
1290
  "type": "object",
883
1291
  "description": "MCP server configuration"
884
- }
885
- },
886
- "additionalProperties": true
887
- },
888
- "LangChainExtension": {
889
- "type": "object",
890
- "description": "LangChain framework integration extension",
891
- "properties": {
892
- "enabled": {
893
- "type": "boolean",
894
- "default": false
895
- },
896
- "tool_class": {
897
- "type": "string",
898
- "description": "LangChain tool class name"
899
1292
  },
900
- "chain_type": {
1293
+ "resources": {
1294
+ "type": "array",
1295
+ "description": "MCP resources exposed by this agent",
1296
+ "items": {
1297
+ "type": "object",
1298
+ "required": ["uri", "name"],
1299
+ "properties": {
1300
+ "uri": {
1301
+ "type": "string",
1302
+ "description": "Resource URI (e.g., file://, http://, custom://)"
1303
+ },
1304
+ "name": {
1305
+ "type": "string",
1306
+ "description": "Resource display name"
1307
+ },
1308
+ "description": {
1309
+ "type": "string",
1310
+ "description": "Resource description"
1311
+ },
1312
+ "mimeType": {
1313
+ "type": "string",
1314
+ "description": "Resource MIME type"
1315
+ }
1316
+ }
1317
+ }
1318
+ },
1319
+ "prompts": {
1320
+ "type": "array",
1321
+ "description": "MCP prompts exposed by this agent",
1322
+ "items": {
1323
+ "type": "object",
1324
+ "required": ["name"],
1325
+ "properties": {
1326
+ "name": {
1327
+ "type": "string",
1328
+ "description": "Prompt identifier"
1329
+ },
1330
+ "description": {
1331
+ "type": "string",
1332
+ "description": "Prompt description"
1333
+ },
1334
+ "arguments": {
1335
+ "type": "array",
1336
+ "description": "Prompt arguments",
1337
+ "items": {
1338
+ "type": "object",
1339
+ "required": ["name"],
1340
+ "properties": {
1341
+ "name": {
1342
+ "type": "string"
1343
+ },
1344
+ "description": {
1345
+ "type": "string"
1346
+ },
1347
+ "required": {
1348
+ "type": "boolean",
1349
+ "default": false
1350
+ }
1351
+ }
1352
+ }
1353
+ }
1354
+ }
1355
+ }
1356
+ },
1357
+ "tools": {
1358
+ "type": "array",
1359
+ "description": "MCP tools configuration",
1360
+ "items": {
1361
+ "type": "object",
1362
+ "required": ["name"],
1363
+ "properties": {
1364
+ "name": {
1365
+ "type": "string",
1366
+ "description": "Tool name"
1367
+ },
1368
+ "description": {
1369
+ "type": "string",
1370
+ "description": "Tool description"
1371
+ },
1372
+ "inputSchema": {
1373
+ "type": "object",
1374
+ "description": "JSON Schema for tool input"
1375
+ }
1376
+ }
1377
+ }
1378
+ }
1379
+ },
1380
+ "additionalProperties": true
1381
+ },
1382
+ "LangChainExtension": {
1383
+ "type": "object",
1384
+ "description": "LangChain framework integration extension",
1385
+ "properties": {
1386
+ "enabled": {
1387
+ "type": "boolean",
1388
+ "default": false
1389
+ },
1390
+ "tool_class": {
1391
+ "type": "string",
1392
+ "description": "LangChain tool class name"
1393
+ },
1394
+ "chain_type": {
901
1395
  "type": "string",
902
- "enum": ["llm", "retrieval", "agent", "sequential", "custom"]
1396
+ "enum": [
1397
+ "llm",
1398
+ "retrieval",
1399
+ "agent",
1400
+ "sequential",
1401
+ "custom"
1402
+ ]
903
1403
  },
904
1404
  "memory": {
905
1405
  "type": "object",
906
1406
  "properties": {
907
1407
  "type": {
908
1408
  "type": "string",
909
- "enum": ["buffer", "summary", "conversation", "vector"]
1409
+ "enum": [
1410
+ "buffer",
1411
+ "summary",
1412
+ "conversation",
1413
+ "vector"
1414
+ ]
910
1415
  },
911
1416
  "max_tokens": {
912
1417
  "type": "integer"
@@ -926,7 +1431,13 @@
926
1431
  },
927
1432
  "agent_type": {
928
1433
  "type": "string",
929
- "enum": ["worker", "manager", "researcher", "analyst", "custom"]
1434
+ "enum": [
1435
+ "worker",
1436
+ "manager",
1437
+ "researcher",
1438
+ "analyst",
1439
+ "custom"
1440
+ ]
930
1441
  },
931
1442
  "role": {
932
1443
  "type": "string",
@@ -1113,7 +1624,6 @@
1113
1624
  },
1114
1625
  "endpoint": {
1115
1626
  "type": "string",
1116
- "format": "uri",
1117
1627
  "description": "Custom tracing endpoint (for provider=custom)"
1118
1628
  }
1119
1629
  },
@@ -1133,7 +1643,12 @@
1133
1643
  },
1134
1644
  "agent_type": {
1135
1645
  "type": "string",
1136
- "enum": ["composer", "chat", "background", "cloud"],
1646
+ "enum": [
1647
+ "composer",
1648
+ "chat",
1649
+ "background",
1650
+ "cloud"
1651
+ ],
1137
1652
  "default": "composer",
1138
1653
  "description": "Cursor agent type (composer, chat, background, or cloud)"
1139
1654
  },
@@ -1186,7 +1701,11 @@
1186
1701
  "properties": {
1187
1702
  "provider": {
1188
1703
  "type": "string",
1189
- "enum": ["openai", "anthropic", "custom"],
1704
+ "enum": [
1705
+ "openai",
1706
+ "anthropic",
1707
+ "custom"
1708
+ ],
1190
1709
  "default": "openai"
1191
1710
  },
1192
1711
  "name": {
@@ -1217,7 +1736,6 @@
1217
1736
  },
1218
1737
  "endpoint": {
1219
1738
  "type": "string",
1220
- "format": "uri",
1221
1739
  "description": "Langflow API endpoint"
1222
1740
  },
1223
1741
  "api_key": {
@@ -1260,7 +1778,12 @@
1260
1778
  },
1261
1779
  "agent_type": {
1262
1780
  "type": "string",
1263
- "enum": ["assistant", "user_proxy", "groupchat", "custom"],
1781
+ "enum": [
1782
+ "assistant",
1783
+ "user_proxy",
1784
+ "groupchat",
1785
+ "custom"
1786
+ ],
1264
1787
  "description": "AutoGen agent type"
1265
1788
  },
1266
1789
  "system_message": {
@@ -1269,7 +1792,11 @@
1269
1792
  },
1270
1793
  "human_input_mode": {
1271
1794
  "type": "string",
1272
- "enum": ["ALWAYS", "NEVER", "TERMINATE"],
1795
+ "enum": [
1796
+ "ALWAYS",
1797
+ "NEVER",
1798
+ "TERMINATE"
1799
+ ],
1273
1800
  "default": "NEVER",
1274
1801
  "description": "When to request human input"
1275
1802
  },
@@ -1329,7 +1856,10 @@
1329
1856
  },
1330
1857
  "runtime": {
1331
1858
  "type": "string",
1332
- "enum": ["edge", "nodejs"],
1859
+ "enum": [
1860
+ "edge",
1861
+ "nodejs"
1862
+ ],
1333
1863
  "default": "edge",
1334
1864
  "description": "Runtime environment (edge or nodejs)"
1335
1865
  },
@@ -1380,7 +1910,12 @@
1380
1910
  },
1381
1911
  "agent_type": {
1382
1912
  "type": "string",
1383
- "enum": ["query_engine", "chat_engine", "retriever", "custom"],
1913
+ "enum": [
1914
+ "query_engine",
1915
+ "chat_engine",
1916
+ "retriever",
1917
+ "custom"
1918
+ ],
1384
1919
  "description": "LlamaIndex agent/engine type"
1385
1920
  },
1386
1921
  "llm": {
@@ -1388,7 +1923,12 @@
1388
1923
  "properties": {
1389
1924
  "provider": {
1390
1925
  "type": "string",
1391
- "enum": ["openai", "anthropic", "local", "custom"]
1926
+ "enum": [
1927
+ "openai",
1928
+ "anthropic",
1929
+ "local",
1930
+ "custom"
1931
+ ]
1392
1932
  },
1393
1933
  "model": {
1394
1934
  "type": "string"
@@ -1406,7 +1946,14 @@
1406
1946
  "properties": {
1407
1947
  "type": {
1408
1948
  "type": "string",
1409
- "enum": ["pinecone", "weaviate", "chroma", "qdrant", "milvus", "custom"]
1949
+ "enum": [
1950
+ "pinecone",
1951
+ "weaviate",
1952
+ "chroma",
1953
+ "qdrant",
1954
+ "milvus",
1955
+ "custom"
1956
+ ]
1410
1957
  },
1411
1958
  "config": {
1412
1959
  "type": "object",
@@ -1510,7 +2057,12 @@
1510
2057
  },
1511
2058
  "type": {
1512
2059
  "type": "string",
1513
- "enum": ["memory", "sqlite", "postgres", "custom"]
2060
+ "enum": [
2061
+ "memory",
2062
+ "sqlite",
2063
+ "postgres",
2064
+ "custom"
2065
+ ]
1514
2066
  }
1515
2067
  }
1516
2068
  }
@@ -1529,13 +2081,16 @@
1529
2081
  "model": {
1530
2082
  "type": "string",
1531
2083
  "enum": [
2084
+ "claude-opus-4-5-20251101",
2085
+ "claude-sonnet-4-5-20250929",
2086
+ "claude-haiku-4-5-20251001",
1532
2087
  "claude-3-5-sonnet-20241022",
1533
2088
  "claude-3-5-haiku-20241022",
1534
2089
  "claude-3-opus-20240229",
1535
2090
  "claude-3-sonnet-20240229",
1536
2091
  "claude-3-haiku-20240307"
1537
2092
  ],
1538
- "default": "claude-3-5-sonnet-20241022",
2093
+ "default": "claude-sonnet-4-5-20250929",
1539
2094
  "description": "Claude model version"
1540
2095
  },
1541
2096
  "system": {
@@ -1545,9 +2100,9 @@
1545
2100
  "max_tokens": {
1546
2101
  "type": "integer",
1547
2102
  "minimum": 1,
1548
- "maximum": 4096,
2103
+ "maximum": 32000,
1549
2104
  "default": 4096,
1550
- "description": "Maximum tokens in response"
2105
+ "description": "Maximum tokens in response (Claude 4.5 supports up to 32K output tokens)"
1551
2106
  },
1552
2107
  "temperature": {
1553
2108
  "type": "number",
@@ -1573,7 +2128,11 @@
1573
2128
  "description": "Tool input schema (JSON Schema)"
1574
2129
  }
1575
2130
  },
1576
- "required": ["name", "description", "input_schema"]
2131
+ "required": [
2132
+ "name",
2133
+ "description",
2134
+ "input_schema"
2135
+ ]
1577
2136
  }
1578
2137
  },
1579
2138
  "streaming": {
@@ -1602,14 +2161,24 @@
1602
2161
  },
1603
2162
  "agent_type": {
1604
2163
  "type": "string",
1605
- "enum": ["llm_agent", "sequential_agent", "parallel_agent", "loop_agent", "custom"],
2164
+ "enum": [
2165
+ "llm_agent",
2166
+ "sequential_agent",
2167
+ "parallel_agent",
2168
+ "loop_agent",
2169
+ "conditional_agent",
2170
+ "custom"
2171
+ ],
1606
2172
  "default": "llm_agent",
1607
2173
  "description": "ADK agent type"
1608
2174
  },
1609
2175
  "model": {
1610
2176
  "type": "string",
1611
2177
  "description": "Gemini model to use",
1612
- "examples": ["gemini-2.0-flash-exp", "gemini-1.5-pro"]
2178
+ "examples": [
2179
+ "gemini-2.0-flash-exp",
2180
+ "gemini-1.5-pro"
2181
+ ]
1613
2182
  },
1614
2183
  "instruction": {
1615
2184
  "type": "string",
@@ -1626,7 +2195,11 @@
1626
2195
  },
1627
2196
  "type": {
1628
2197
  "type": "string",
1629
- "enum": ["function", "agent", "mcp_server"]
2198
+ "enum": [
2199
+ "function",
2200
+ "agent",
2201
+ "mcp_server"
2202
+ ]
1630
2203
  },
1631
2204
  "config": {
1632
2205
  "type": "object",
@@ -1648,7 +2221,11 @@
1648
2221
  "properties": {
1649
2222
  "service": {
1650
2223
  "type": "string",
1651
- "enum": ["in_memory", "database", "vertex_ai"],
2224
+ "enum": [
2225
+ "in_memory",
2226
+ "database",
2227
+ "vertex_ai"
2228
+ ],
1652
2229
  "default": "in_memory"
1653
2230
  },
1654
2231
  "state_schema": {
@@ -1667,7 +2244,10 @@
1667
2244
  },
1668
2245
  "service": {
1669
2246
  "type": "string",
1670
- "enum": ["in_memory", "vertex_ai_rag"]
2247
+ "enum": [
2248
+ "in_memory",
2249
+ "vertex_ai_rag"
2250
+ ]
1671
2251
  }
1672
2252
  }
1673
2253
  },
@@ -1691,6 +2271,883 @@
1691
2271
  }
1692
2272
  },
1693
2273
  "additionalProperties": true
2274
+ },
2275
+ "A2AExtension": {
2276
+ "type": "object",
2277
+ "description": "Agent-to-Agent (A2A) protocol extension for inter-agent communication",
2278
+ "properties": {
2279
+ "enabled": {
2280
+ "type": "boolean",
2281
+ "default": false,
2282
+ "description": "Enable A2A protocol support"
2283
+ },
2284
+ "agent_card": {
2285
+ "type": "object",
2286
+ "description": "A2A Agent Card configuration for discovery",
2287
+ "properties": {
2288
+ "name": {
2289
+ "type": "string",
2290
+ "description": "Agent display name"
2291
+ },
2292
+ "description": {
2293
+ "type": "string",
2294
+ "description": "Agent description for discovery"
2295
+ },
2296
+ "url": {
2297
+ "type": "string",
2298
+ "format": "uri",
2299
+ "description": "Agent endpoint URL"
2300
+ },
2301
+ "version": {
2302
+ "type": "string",
2303
+ "description": "Agent version"
2304
+ },
2305
+ "capabilities": {
2306
+ "type": "array",
2307
+ "items": {
2308
+ "type": "string"
2309
+ },
2310
+ "description": "List of capabilities the agent exposes"
2311
+ },
2312
+ "authentication": {
2313
+ "type": "object",
2314
+ "properties": {
2315
+ "schemes": {
2316
+ "type": "array",
2317
+ "items": {
2318
+ "type": "string",
2319
+ "enum": ["bearer", "oauth2", "mtls", "apikey", "none"]
2320
+ },
2321
+ "description": "Supported authentication schemes"
2322
+ }
2323
+ }
2324
+ },
2325
+ "provider": {
2326
+ "type": "object",
2327
+ "properties": {
2328
+ "organization": {
2329
+ "type": "string"
2330
+ },
2331
+ "url": {
2332
+ "type": "string",
2333
+ "format": "uri"
2334
+ }
2335
+ }
2336
+ }
2337
+ }
2338
+ },
2339
+ "supported_content_types": {
2340
+ "type": "array",
2341
+ "items": {
2342
+ "type": "string"
2343
+ },
2344
+ "default": ["application/json"],
2345
+ "description": "Content types the agent can process",
2346
+ "examples": [
2347
+ ["application/json", "text/plain", "application/x-ndjson"]
2348
+ ]
2349
+ },
2350
+ "skills": {
2351
+ "type": "array",
2352
+ "description": "Skills exposed via A2A protocol",
2353
+ "items": {
2354
+ "type": "object",
2355
+ "properties": {
2356
+ "id": {
2357
+ "type": "string",
2358
+ "description": "Skill identifier"
2359
+ },
2360
+ "name": {
2361
+ "type": "string",
2362
+ "description": "Skill display name"
2363
+ },
2364
+ "description": {
2365
+ "type": "string",
2366
+ "description": "Skill description"
2367
+ },
2368
+ "input_modes": {
2369
+ "type": "array",
2370
+ "items": {
2371
+ "type": "string",
2372
+ "enum": ["text", "file", "data"]
2373
+ }
2374
+ },
2375
+ "output_modes": {
2376
+ "type": "array",
2377
+ "items": {
2378
+ "type": "string",
2379
+ "enum": ["text", "file", "data"]
2380
+ }
2381
+ }
2382
+ }
2383
+ }
2384
+ },
2385
+ "streaming": {
2386
+ "type": "string",
2387
+ "enum": ["none", "response"],
2388
+ "default": "none",
2389
+ "description": "A2A streaming mode"
2390
+ },
2391
+ "push_notifications": {
2392
+ "type": "object",
2393
+ "description": "Push notification configuration",
2394
+ "properties": {
2395
+ "enabled": {
2396
+ "type": "boolean",
2397
+ "default": false
2398
+ },
2399
+ "webhook_url": {
2400
+ "type": "string",
2401
+ "format": "uri",
2402
+ "description": "Webhook URL for push notifications"
2403
+ }
2404
+ }
2405
+ }
2406
+ },
2407
+ "additionalProperties": true
2408
+ },
2409
+ "Security": {
2410
+ "type": "object",
2411
+ "description": "Security configuration for agent operations",
2412
+ "properties": {
2413
+ "authentication": {
2414
+ "type": "object",
2415
+ "properties": {
2416
+ "required": {
2417
+ "type": "boolean",
2418
+ "default": true,
2419
+ "description": "Whether authentication is required"
2420
+ },
2421
+ "methods": {
2422
+ "type": "array",
2423
+ "items": {
2424
+ "type": "string",
2425
+ "enum": ["bearer", "oauth2", "mtls", "apikey", "jwt", "saml"]
2426
+ },
2427
+ "description": "Supported authentication methods"
2428
+ },
2429
+ "mfa_required": {
2430
+ "type": "boolean",
2431
+ "default": false,
2432
+ "description": "Require multi-factor authentication"
2433
+ }
2434
+ }
2435
+ },
2436
+ "authorization": {
2437
+ "type": "object",
2438
+ "properties": {
2439
+ "model": {
2440
+ "type": "string",
2441
+ "enum": ["rbac", "abac", "acl", "custom"],
2442
+ "default": "rbac",
2443
+ "description": "Authorization model"
2444
+ },
2445
+ "roles": {
2446
+ "type": "array",
2447
+ "items": {
2448
+ "type": "string"
2449
+ },
2450
+ "description": "Required roles for agent access"
2451
+ },
2452
+ "permissions": {
2453
+ "type": "array",
2454
+ "items": {
2455
+ "type": "string"
2456
+ },
2457
+ "description": "Required permissions"
2458
+ }
2459
+ }
2460
+ },
2461
+ "encryption": {
2462
+ "type": "object",
2463
+ "properties": {
2464
+ "in_transit": {
2465
+ "type": "object",
2466
+ "properties": {
2467
+ "enabled": {
2468
+ "type": "boolean",
2469
+ "default": true
2470
+ },
2471
+ "tls_version": {
2472
+ "type": "string",
2473
+ "enum": ["1.2", "1.3"],
2474
+ "default": "1.3"
2475
+ },
2476
+ "cipher_suites": {
2477
+ "type": "array",
2478
+ "items": {
2479
+ "type": "string"
2480
+ }
2481
+ }
2482
+ }
2483
+ },
2484
+ "at_rest": {
2485
+ "type": "object",
2486
+ "properties": {
2487
+ "enabled": {
2488
+ "type": "boolean",
2489
+ "default": false
2490
+ },
2491
+ "algorithm": {
2492
+ "type": "string",
2493
+ "enum": ["aes-256-gcm", "aes-256-cbc", "chacha20-poly1305"],
2494
+ "default": "aes-256-gcm"
2495
+ },
2496
+ "key_management": {
2497
+ "type": "string",
2498
+ "enum": ["kms", "vault", "hsm", "manual"],
2499
+ "description": "Key management system"
2500
+ }
2501
+ }
2502
+ }
2503
+ }
2504
+ },
2505
+ "secrets": {
2506
+ "type": "object",
2507
+ "properties": {
2508
+ "provider": {
2509
+ "type": "string",
2510
+ "enum": ["vault", "aws_secrets_manager", "azure_key_vault", "gcp_secret_manager", "kubernetes"],
2511
+ "description": "Secret management provider"
2512
+ },
2513
+ "rotation": {
2514
+ "type": "object",
2515
+ "properties": {
2516
+ "enabled": {
2517
+ "type": "boolean",
2518
+ "default": false
2519
+ },
2520
+ "interval_days": {
2521
+ "type": "integer",
2522
+ "minimum": 1,
2523
+ "description": "Secret rotation interval in days"
2524
+ }
2525
+ }
2526
+ }
2527
+ }
2528
+ },
2529
+ "audit": {
2530
+ "type": "object",
2531
+ "properties": {
2532
+ "enabled": {
2533
+ "type": "boolean",
2534
+ "default": true
2535
+ },
2536
+ "log_level": {
2537
+ "type": "string",
2538
+ "enum": ["minimal", "standard", "detailed"],
2539
+ "default": "standard"
2540
+ },
2541
+ "retention_days": {
2542
+ "type": "integer",
2543
+ "minimum": 1,
2544
+ "description": "Audit log retention period"
2545
+ },
2546
+ "pii_redaction": {
2547
+ "type": "boolean",
2548
+ "default": true,
2549
+ "description": "Redact PII from audit logs"
2550
+ }
2551
+ }
2552
+ },
2553
+ "compliance": {
2554
+ "type": "object",
2555
+ "properties": {
2556
+ "frameworks": {
2557
+ "type": "array",
2558
+ "items": {
2559
+ "type": "string",
2560
+ "enum": ["soc2", "hipaa", "gdpr", "fedramp", "pci-dss", "iso27001"]
2561
+ },
2562
+ "description": "Compliance frameworks this agent adheres to"
2563
+ },
2564
+ "data_residency": {
2565
+ "type": "array",
2566
+ "items": {
2567
+ "type": "string"
2568
+ },
2569
+ "description": "Allowed data residency regions (ISO 3166-1 alpha-2)"
2570
+ }
2571
+ }
2572
+ }
2573
+ },
2574
+ "additionalProperties": false
2575
+ },
2576
+ "Reliability": {
2577
+ "type": "object",
2578
+ "description": "Reliability and resilience configuration",
2579
+ "properties": {
2580
+ "sla": {
2581
+ "type": "object",
2582
+ "properties": {
2583
+ "availability_percent": {
2584
+ "type": "number",
2585
+ "minimum": 0,
2586
+ "maximum": 100,
2587
+ "description": "Target availability percentage (e.g., 99.9)"
2588
+ },
2589
+ "latency_p50_ms": {
2590
+ "type": "number",
2591
+ "minimum": 0,
2592
+ "description": "P50 latency target in milliseconds"
2593
+ },
2594
+ "latency_p95_ms": {
2595
+ "type": "number",
2596
+ "minimum": 0,
2597
+ "description": "P95 latency target in milliseconds"
2598
+ },
2599
+ "latency_p99_ms": {
2600
+ "type": "number",
2601
+ "minimum": 0,
2602
+ "description": "P99 latency target in milliseconds"
2603
+ },
2604
+ "error_rate_percent": {
2605
+ "type": "number",
2606
+ "minimum": 0,
2607
+ "maximum": 100,
2608
+ "description": "Maximum acceptable error rate percentage"
2609
+ }
2610
+ }
2611
+ },
2612
+ "circuit_breaker": {
2613
+ "type": "object",
2614
+ "properties": {
2615
+ "enabled": {
2616
+ "type": "boolean",
2617
+ "default": true
2618
+ },
2619
+ "failure_threshold": {
2620
+ "type": "integer",
2621
+ "minimum": 1,
2622
+ "default": 5,
2623
+ "description": "Number of failures before opening circuit"
2624
+ },
2625
+ "timeout_seconds": {
2626
+ "type": "number",
2627
+ "minimum": 0,
2628
+ "default": 60,
2629
+ "description": "Time to wait before attempting to close circuit"
2630
+ },
2631
+ "half_open_requests": {
2632
+ "type": "integer",
2633
+ "minimum": 1,
2634
+ "default": 3,
2635
+ "description": "Number of test requests in half-open state"
2636
+ }
2637
+ }
2638
+ },
2639
+ "health_check": {
2640
+ "type": "object",
2641
+ "properties": {
2642
+ "enabled": {
2643
+ "type": "boolean",
2644
+ "default": true
2645
+ },
2646
+ "endpoint": {
2647
+ "type": "string",
2648
+ "description": "Health check endpoint path"
2649
+ },
2650
+ "interval_seconds": {
2651
+ "type": "integer",
2652
+ "minimum": 1,
2653
+ "default": 30,
2654
+ "description": "Health check interval"
2655
+ },
2656
+ "timeout_seconds": {
2657
+ "type": "integer",
2658
+ "minimum": 1,
2659
+ "default": 5
2660
+ },
2661
+ "unhealthy_threshold": {
2662
+ "type": "integer",
2663
+ "minimum": 1,
2664
+ "default": 3,
2665
+ "description": "Consecutive failures before marking unhealthy"
2666
+ },
2667
+ "healthy_threshold": {
2668
+ "type": "integer",
2669
+ "minimum": 1,
2670
+ "default": 2,
2671
+ "description": "Consecutive successes before marking healthy"
2672
+ }
2673
+ }
2674
+ },
2675
+ "failover": {
2676
+ "type": "object",
2677
+ "properties": {
2678
+ "enabled": {
2679
+ "type": "boolean",
2680
+ "default": false
2681
+ },
2682
+ "strategy": {
2683
+ "type": "string",
2684
+ "enum": ["active-passive", "active-active", "round-robin"],
2685
+ "default": "active-passive"
2686
+ },
2687
+ "fallback_agents": {
2688
+ "type": "array",
2689
+ "items": {
2690
+ "type": "string"
2691
+ },
2692
+ "description": "List of fallback agent IDs"
2693
+ }
2694
+ }
2695
+ },
2696
+ "disaster_recovery": {
2697
+ "type": "object",
2698
+ "properties": {
2699
+ "enabled": {
2700
+ "type": "boolean",
2701
+ "default": false
2702
+ },
2703
+ "rpo_minutes": {
2704
+ "type": "integer",
2705
+ "minimum": 0,
2706
+ "description": "Recovery Point Objective in minutes"
2707
+ },
2708
+ "rto_minutes": {
2709
+ "type": "integer",
2710
+ "minimum": 0,
2711
+ "description": "Recovery Time Objective in minutes"
2712
+ },
2713
+ "backup_regions": {
2714
+ "type": "array",
2715
+ "items": {
2716
+ "type": "string"
2717
+ },
2718
+ "description": "Backup deployment regions"
2719
+ }
2720
+ }
2721
+ }
2722
+ },
2723
+ "additionalProperties": false
2724
+ },
2725
+ "Collaboration": {
2726
+ "type": "object",
2727
+ "description": "Multi-agent collaboration and orchestration",
2728
+ "properties": {
2729
+ "mode": {
2730
+ "type": "string",
2731
+ "enum": ["standalone", "collaborative", "orchestrated"],
2732
+ "default": "standalone",
2733
+ "description": "Agent collaboration mode"
2734
+ },
2735
+ "handoffs": {
2736
+ "type": "array",
2737
+ "description": "Agent handoff configuration",
2738
+ "items": {
2739
+ "type": "object",
2740
+ "properties": {
2741
+ "target_agent": {
2742
+ "type": "string",
2743
+ "description": "Target agent ID for handoff"
2744
+ },
2745
+ "conditions": {
2746
+ "type": "array",
2747
+ "items": {
2748
+ "type": "string"
2749
+ },
2750
+ "description": "Conditions that trigger handoff"
2751
+ },
2752
+ "context_transfer": {
2753
+ "type": "string",
2754
+ "enum": ["full", "partial", "minimal"],
2755
+ "default": "partial",
2756
+ "description": "How much context to transfer"
2757
+ }
2758
+ }
2759
+ }
2760
+ },
2761
+ "delegation": {
2762
+ "type": "object",
2763
+ "properties": {
2764
+ "enabled": {
2765
+ "type": "boolean",
2766
+ "default": false
2767
+ },
2768
+ "allowed_agents": {
2769
+ "type": "array",
2770
+ "items": {
2771
+ "type": "string"
2772
+ },
2773
+ "description": "Agents this agent can delegate to"
2774
+ },
2775
+ "max_depth": {
2776
+ "type": "integer",
2777
+ "minimum": 1,
2778
+ "default": 3,
2779
+ "description": "Maximum delegation depth"
2780
+ }
2781
+ }
2782
+ },
2783
+ "communication": {
2784
+ "type": "object",
2785
+ "properties": {
2786
+ "protocols": {
2787
+ "type": "array",
2788
+ "items": {
2789
+ "type": "string",
2790
+ "enum": ["a2a", "mcp", "http", "grpc", "websocket"]
2791
+ },
2792
+ "description": "Supported inter-agent communication protocols"
2793
+ },
2794
+ "message_format": {
2795
+ "type": "string",
2796
+ "enum": ["json", "protobuf", "msgpack"],
2797
+ "default": "json"
2798
+ }
2799
+ }
2800
+ },
2801
+ "orchestration": {
2802
+ "type": "object",
2803
+ "properties": {
2804
+ "role": {
2805
+ "type": "string",
2806
+ "enum": ["orchestrator", "worker", "both"],
2807
+ "description": "Agent's role in orchestration"
2808
+ },
2809
+ "workflow_engine": {
2810
+ "type": "string",
2811
+ "enum": ["langgraph", "autogen", "crewai", "custom"],
2812
+ "description": "Workflow orchestration engine"
2813
+ }
2814
+ }
2815
+ }
2816
+ },
2817
+ "additionalProperties": false
2818
+ },
2819
+ "Safety": {
2820
+ "type": "object",
2821
+ "description": "Safety and content moderation configuration",
2822
+ "properties": {
2823
+ "content_filtering": {
2824
+ "type": "object",
2825
+ "properties": {
2826
+ "enabled": {
2827
+ "type": "boolean",
2828
+ "default": true
2829
+ },
2830
+ "categories": {
2831
+ "type": "array",
2832
+ "items": {
2833
+ "type": "string",
2834
+ "enum": ["hate", "violence", "sexual", "self-harm", "profanity", "pii"]
2835
+ },
2836
+ "description": "Content categories to filter"
2837
+ },
2838
+ "threshold": {
2839
+ "type": "string",
2840
+ "enum": ["low", "medium", "high"],
2841
+ "default": "medium",
2842
+ "description": "Filtering sensitivity threshold"
2843
+ },
2844
+ "action": {
2845
+ "type": "string",
2846
+ "enum": ["block", "warn", "log"],
2847
+ "default": "block",
2848
+ "description": "Action when harmful content detected"
2849
+ }
2850
+ }
2851
+ },
2852
+ "pii_detection": {
2853
+ "type": "object",
2854
+ "properties": {
2855
+ "enabled": {
2856
+ "type": "boolean",
2857
+ "default": true
2858
+ },
2859
+ "types": {
2860
+ "type": "array",
2861
+ "items": {
2862
+ "type": "string",
2863
+ "enum": ["email", "phone", "ssn", "credit_card", "ip_address", "name", "address"]
2864
+ },
2865
+ "description": "PII types to detect"
2866
+ },
2867
+ "action": {
2868
+ "type": "string",
2869
+ "enum": ["redact", "block", "warn", "log"],
2870
+ "default": "redact",
2871
+ "description": "Action when PII detected"
2872
+ }
2873
+ }
2874
+ },
2875
+ "rate_limiting": {
2876
+ "type": "object",
2877
+ "properties": {
2878
+ "enabled": {
2879
+ "type": "boolean",
2880
+ "default": true
2881
+ },
2882
+ "requests_per_minute": {
2883
+ "type": "integer",
2884
+ "minimum": 1,
2885
+ "description": "Maximum requests per minute per user"
2886
+ },
2887
+ "requests_per_hour": {
2888
+ "type": "integer",
2889
+ "minimum": 1,
2890
+ "description": "Maximum requests per hour per user"
2891
+ },
2892
+ "burst_limit": {
2893
+ "type": "integer",
2894
+ "minimum": 1,
2895
+ "description": "Maximum burst requests"
2896
+ }
2897
+ }
2898
+ },
2899
+ "guardrails": {
2900
+ "type": "object",
2901
+ "properties": {
2902
+ "enabled": {
2903
+ "type": "boolean",
2904
+ "default": true
2905
+ },
2906
+ "policies": {
2907
+ "type": "array",
2908
+ "items": {
2909
+ "type": "object",
2910
+ "properties": {
2911
+ "name": {
2912
+ "type": "string"
2913
+ },
2914
+ "type": {
2915
+ "type": "string",
2916
+ "enum": ["input", "output", "both"]
2917
+ },
2918
+ "rules": {
2919
+ "type": "array",
2920
+ "items": {
2921
+ "type": "string"
2922
+ }
2923
+ }
2924
+ }
2925
+ },
2926
+ "description": "Safety guardrail policies"
2927
+ },
2928
+ "max_tool_calls": {
2929
+ "type": "integer",
2930
+ "minimum": 1,
2931
+ "description": "Maximum tool calls per execution"
2932
+ },
2933
+ "max_execution_time_seconds": {
2934
+ "type": "integer",
2935
+ "minimum": 1,
2936
+ "description": "Maximum execution time"
2937
+ }
2938
+ }
2939
+ },
2940
+ "human_in_loop": {
2941
+ "type": "object",
2942
+ "properties": {
2943
+ "enabled": {
2944
+ "type": "boolean",
2945
+ "default": false
2946
+ },
2947
+ "triggers": {
2948
+ "type": "array",
2949
+ "items": {
2950
+ "type": "string",
2951
+ "enum": ["high_risk_action", "low_confidence", "policy_violation", "user_request"]
2952
+ },
2953
+ "description": "Conditions that trigger human review"
2954
+ },
2955
+ "timeout_seconds": {
2956
+ "type": "integer",
2957
+ "minimum": 1,
2958
+ "description": "Timeout waiting for human response"
2959
+ }
2960
+ }
2961
+ }
2962
+ },
2963
+ "additionalProperties": false
2964
+ },
2965
+ "Deployment": {
2966
+ "type": "object",
2967
+ "description": "Deployment and lifecycle management configuration",
2968
+ "properties": {
2969
+ "strategy": {
2970
+ "type": "string",
2971
+ "enum": ["rolling", "blue-green", "canary", "recreate"],
2972
+ "default": "rolling",
2973
+ "description": "Deployment strategy"
2974
+ },
2975
+ "canary": {
2976
+ "type": "object",
2977
+ "properties": {
2978
+ "enabled": {
2979
+ "type": "boolean",
2980
+ "default": false
2981
+ },
2982
+ "initial_traffic_percent": {
2983
+ "type": "number",
2984
+ "minimum": 0,
2985
+ "maximum": 100,
2986
+ "default": 10,
2987
+ "description": "Initial traffic percentage for canary"
2988
+ },
2989
+ "increment_percent": {
2990
+ "type": "number",
2991
+ "minimum": 0,
2992
+ "maximum": 100,
2993
+ "default": 10,
2994
+ "description": "Traffic increment per step"
2995
+ },
2996
+ "interval_minutes": {
2997
+ "type": "integer",
2998
+ "minimum": 1,
2999
+ "default": 5,
3000
+ "description": "Time between traffic increments"
3001
+ },
3002
+ "success_criteria": {
3003
+ "type": "object",
3004
+ "properties": {
3005
+ "error_rate_threshold": {
3006
+ "type": "number",
3007
+ "minimum": 0,
3008
+ "maximum": 100
3009
+ },
3010
+ "latency_p95_threshold_ms": {
3011
+ "type": "number",
3012
+ "minimum": 0
3013
+ }
3014
+ }
3015
+ }
3016
+ }
3017
+ },
3018
+ "rollback": {
3019
+ "type": "object",
3020
+ "properties": {
3021
+ "enabled": {
3022
+ "type": "boolean",
3023
+ "default": true
3024
+ },
3025
+ "automatic": {
3026
+ "type": "boolean",
3027
+ "default": false,
3028
+ "description": "Automatically rollback on failure"
3029
+ },
3030
+ "triggers": {
3031
+ "type": "array",
3032
+ "items": {
3033
+ "type": "string",
3034
+ "enum": ["error_rate", "latency", "health_check", "manual"]
3035
+ },
3036
+ "description": "Conditions that trigger rollback"
3037
+ }
3038
+ }
3039
+ },
3040
+ "versioning": {
3041
+ "type": "object",
3042
+ "properties": {
3043
+ "scheme": {
3044
+ "type": "string",
3045
+ "enum": ["semver", "timestamp", "git_sha"],
3046
+ "default": "semver"
3047
+ },
3048
+ "compatibility": {
3049
+ "type": "string",
3050
+ "enum": ["backward", "forward", "both", "none"],
3051
+ "default": "backward",
3052
+ "description": "Version compatibility mode"
3053
+ }
3054
+ }
3055
+ },
3056
+ "testing": {
3057
+ "type": "object",
3058
+ "properties": {
3059
+ "dry_run": {
3060
+ "type": "boolean",
3061
+ "default": false,
3062
+ "description": "Enable dry-run mode for testing"
3063
+ },
3064
+ "shadow_mode": {
3065
+ "type": "boolean",
3066
+ "default": false,
3067
+ "description": "Run in shadow mode (process but don't act)"
3068
+ },
3069
+ "test_traffic_percent": {
3070
+ "type": "number",
3071
+ "minimum": 0,
3072
+ "maximum": 100,
3073
+ "description": "Percentage of traffic to use for testing"
3074
+ }
3075
+ }
3076
+ },
3077
+ "lifecycle": {
3078
+ "type": "object",
3079
+ "properties": {
3080
+ "startup_probe": {
3081
+ "type": "object",
3082
+ "properties": {
3083
+ "enabled": {
3084
+ "type": "boolean",
3085
+ "default": true
3086
+ },
3087
+ "initial_delay_seconds": {
3088
+ "type": "integer",
3089
+ "minimum": 0,
3090
+ "default": 0
3091
+ },
3092
+ "period_seconds": {
3093
+ "type": "integer",
3094
+ "minimum": 1,
3095
+ "default": 10
3096
+ },
3097
+ "failure_threshold": {
3098
+ "type": "integer",
3099
+ "minimum": 1,
3100
+ "default": 3
3101
+ }
3102
+ }
3103
+ },
3104
+ "readiness_probe": {
3105
+ "type": "object",
3106
+ "properties": {
3107
+ "enabled": {
3108
+ "type": "boolean",
3109
+ "default": true
3110
+ },
3111
+ "period_seconds": {
3112
+ "type": "integer",
3113
+ "minimum": 1,
3114
+ "default": 10
3115
+ }
3116
+ }
3117
+ },
3118
+ "liveness_probe": {
3119
+ "type": "object",
3120
+ "properties": {
3121
+ "enabled": {
3122
+ "type": "boolean",
3123
+ "default": true
3124
+ },
3125
+ "period_seconds": {
3126
+ "type": "integer",
3127
+ "minimum": 1,
3128
+ "default": 30
3129
+ }
3130
+ }
3131
+ },
3132
+ "graceful_shutdown": {
3133
+ "type": "object",
3134
+ "properties": {
3135
+ "enabled": {
3136
+ "type": "boolean",
3137
+ "default": true
3138
+ },
3139
+ "timeout_seconds": {
3140
+ "type": "integer",
3141
+ "minimum": 0,
3142
+ "default": 30,
3143
+ "description": "Time to wait for graceful shutdown"
3144
+ }
3145
+ }
3146
+ }
3147
+ }
3148
+ }
3149
+ },
3150
+ "additionalProperties": false
1694
3151
  }
1695
3152
  }
1696
3153
  }