@bluefly/openstandardagents 0.2.7 → 0.2.8

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 (277) hide show
  1. package/.devfile.yaml +1 -1
  2. package/.env.example +1 -1
  3. package/.version.json +2 -2
  4. package/.wiki-config.json +24 -0
  5. package/CHANGELOG.md +11 -18
  6. package/CODEOWNERS +75 -0
  7. package/CONTRIBUTING.md +1 -1
  8. package/README.md +171 -243
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/repositories/schema.repository.d.ts +6 -1
  14. package/dist/repositories/schema.repository.d.ts.map +1 -1
  15. package/dist/repositories/schema.repository.js +49 -27
  16. package/dist/repositories/schema.repository.js.map +1 -1
  17. package/dist/services/migration.service.d.ts +4 -3
  18. package/dist/services/migration.service.d.ts.map +1 -1
  19. package/dist/services/migration.service.js +11 -10
  20. package/dist/services/migration.service.js.map +1 -1
  21. package/dist/services/release-automation/release.service.js +1 -1
  22. package/dist/services/release-automation/release.service.js.map +1 -1
  23. package/dist/services/release-automation/schemas/release.schema.js +1 -1
  24. package/dist/services/runtime/claude/claude-adapter.js +1 -1
  25. package/dist/services/runtime/claude/claude-adapter.js.map +1 -1
  26. package/dist/spec/v0.2.8/CHANGELOG.md +401 -0
  27. package/dist/spec/v0.2.8/README.md +72 -0
  28. package/dist/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
  29. package/dist/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  30. package/dist/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
  31. 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
  32. package/dist/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
  33. package/dist/types/index.d.ts +3 -2
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/dist/utils/index.d.ts +6 -0
  36. package/dist/utils/index.d.ts.map +1 -0
  37. package/dist/utils/index.js +6 -0
  38. package/dist/utils/index.js.map +1 -0
  39. package/dist/utils/version.d.ts +68 -0
  40. package/dist/utils/version.d.ts.map +1 -0
  41. package/dist/utils/version.js +156 -0
  42. package/dist/utils/version.js.map +1 -0
  43. package/eslint-report.json +1 -0
  44. package/examples/adk-integration/code-review-workflow.yml +1 -1
  45. package/examples/adk-integration/customer-support.yml +1 -1
  46. package/examples/adk-integration/data-pipeline.yml +1 -1
  47. package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
  48. package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
  49. package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
  50. package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
  51. package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
  52. package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
  53. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
  54. package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
  55. package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
  56. package/examples/anthropic/claude-assistant.ossa.json +1 -1
  57. package/examples/autogen/multi-agent.ossa.json +1 -1
  58. package/examples/claude-code/code-reviewer.ossa.yaml +78 -0
  59. package/examples/claude-code/ossa-validator.ossa.yaml +80 -0
  60. package/examples/common_npm/agent-router.ossa.yaml +1 -0
  61. package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +1 -1
  62. package/examples/crewai/research-team.ossa.json +1 -1
  63. package/examples/cursor/code-review-agent.ossa.json +1 -1
  64. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -0
  65. package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +1 -1
  66. package/examples/extensions/drupal-v1.yml +1 -1
  67. package/examples/extensions/kagent-v1.yml +1 -1
  68. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  69. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
  70. package/examples/kagent/compliance-validator.ossa.yaml +1 -1
  71. package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
  72. package/examples/kagent/documentation-agent.ossa.yaml +1 -1
  73. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -0
  74. package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +1 -1
  75. package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
  76. package/examples/kagent/security-scanner.ossa.yaml +1 -1
  77. package/examples/langchain/chain-agent.ossa.json +1 -1
  78. package/examples/langflow/workflow-agent.ossa.json +1 -1
  79. package/examples/langgraph/state-machine-agent.ossa.json +1 -1
  80. package/examples/llamaindex/rag-agent.ossa.json +1 -1
  81. package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
  82. package/examples/multi-agent/README.md +74 -0
  83. package/examples/multi-agent/conditional-router.ossa.yaml +42 -0
  84. package/examples/multi-agent/parallel-execution.ossa.yaml +54 -0
  85. package/examples/multi-agent/sequential-pipeline.ossa.yaml +45 -0
  86. package/examples/openai/basic-agent.ossa.yaml +1 -1
  87. package/examples/openai/multi-tool-agent.ossa.json +1 -1
  88. package/examples/openai/swarm-agent.ossa.json +1 -1
  89. package/examples/production/document-analyzer-openai.yml +1 -1
  90. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  91. package/examples/spec-examples/audit-agent.yml +1 -1
  92. package/examples/spec-examples/chat-agent.yml +1 -1
  93. package/examples/spec-examples/compliance-agent.yml +1 -1
  94. package/examples/spec-examples/monitoring-agent.yml +1 -1
  95. package/examples/spec-examples/workflow-agent.yml +1 -1
  96. package/examples/templates/ossa-compliance.yaml +1 -1
  97. package/examples/vercel/edge-agent.ossa.json +1 -1
  98. package/gl-code-quality-report.json +62 -0
  99. package/llms-ctx-full.txt +39 -0
  100. package/llms-ctx.txt +39 -0
  101. package/llms.txt +47 -0
  102. package/package.json +3 -2
  103. package/scripts/eslint-to-codequality.cjs +34 -0
  104. package/scripts/generate-llms-ctx.sh +17 -0
  105. package/scripts/generate-schema-docs.ts +31 -10
  106. package/scripts/sync-version.js +4 -12
  107. package/scripts/validate-schema.ts +2 -1
  108. package/spec/v0.2.8/CHANGELOG.md +401 -0
  109. package/spec/v0.2.8/README.md +72 -0
  110. package/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
  111. package/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  112. package/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
  113. package/{dist/spec/v0.2.6-dev/ossa-0.2.5.schema.json → spec/v0.2.8/ossa-0.2.8.schema.json} +1509 -52
  114. package/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
  115. package/test-results/junit.xml +299 -0
  116. package/bin/validate-ossa-0.2.5-RC.ts +0 -244
  117. package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +0 -1696
  118. package/scripts/lib/exec.ts +0 -37
  119. package/scripts/lib/file-ops.ts +0 -58
  120. package/scripts/lib/version.ts +0 -83
  121. package/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +0 -1696
  122. package/website/.lighthouserc.ts +0 -24
  123. package/website/.prettierrc +0 -10
  124. package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +0 -445
  125. package/website/Dockerfile +0 -30
  126. package/website/app/about/page.tsx +0 -304
  127. package/website/app/blog/[slug]/page.tsx +0 -208
  128. package/website/app/blog/page.tsx +0 -249
  129. package/website/app/design-guide/page.tsx +0 -511
  130. package/website/app/docs/[[...slug]]/page.tsx +0 -847
  131. package/website/app/docs/core-concepts/project-structure/page.tsx +0 -349
  132. package/website/app/ecosystem/page.tsx +0 -410
  133. package/website/app/examples/page.tsx +0 -133
  134. package/website/app/globals.scss +0 -370
  135. package/website/app/layout.tsx +0 -106
  136. package/website/app/license/page.tsx +0 -183
  137. package/website/app/not-found.tsx +0 -18
  138. package/website/app/page.tsx +0 -686
  139. package/website/app/page.tsx.bak +0 -679
  140. package/website/app/page.tsx.bak2 +0 -649
  141. package/website/app/playground/page.tsx +0 -487
  142. package/website/app/robots.ts +0 -19
  143. package/website/app/rss.xml/route.ts +0 -74
  144. package/website/app/schema/page.tsx +0 -1001
  145. package/website/app/sitemap.ts +0 -56
  146. package/website/app/specification/page.tsx +0 -287
  147. package/website/components/InstallCommand.tsx +0 -96
  148. package/website/components/Logo.tsx +0 -97
  149. package/website/components/StructuredData.tsx +0 -65
  150. package/website/components/docs/DocsSearch.tsx +0 -104
  151. package/website/components/docs/DocsSidebar.tsx +0 -155
  152. package/website/components/docs/MarkdownContent.tsx +0 -401
  153. package/website/components/docs/VersionSelector.tsx +0 -105
  154. package/website/components/examples/ExamplesViewer.tsx +0 -293
  155. package/website/components/layout/Footer.tsx +0 -116
  156. package/website/components/layout/Header.tsx +0 -172
  157. package/website/components/schema/SchemaComponentsAccordion.tsx +0 -84
  158. package/website/components/schema/SchemaExplorer.tsx +0 -213
  159. package/website/components/ui/Badge.tsx +0 -82
  160. package/website/components/ui/Button.tsx +0 -116
  161. package/website/components/ui/Card.tsx +0 -167
  162. package/website/components/ui/Checkbox.tsx +0 -141
  163. package/website/components/ui/Input.tsx +0 -169
  164. package/website/components/ui/Radio.tsx +0 -141
  165. package/website/components/ui/Select.tsx +0 -182
  166. package/website/components/ui/Tag.tsx +0 -158
  167. package/website/components/ui/Textarea.tsx +0 -195
  168. package/website/components/ui/index.ts +0 -11
  169. package/website/content/blog/OpenAPI-AI-Agents-Standard.md +0 -285
  170. package/website/content/blog/Why-Formal-Standards-Matter-Now.md +0 -198
  171. package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +0 -286
  172. package/website/content/blog/introducing-ossa-framework.md +0 -328
  173. package/website/content/blog/ossa-production-results.md +0 -279
  174. package/website/content/blog/welcome-to-ossa.md +0 -43
  175. package/website/content/blog/why-ai-agents-need-open-standard.md +0 -98
  176. package/website/content/docs/00-home.md +0 -153
  177. package/website/content/docs/adapters/openai-adapter.md +0 -693
  178. package/website/content/docs/agents/catalog.md +0 -28
  179. package/website/content/docs/aiflow-framework-integration-with-ossa.md +0 -107
  180. package/website/content/docs/api-reference/index.md +0 -38
  181. package/website/content/docs/api-reference/ossa-core-api.md +0 -634
  182. package/website/content/docs/api-reference/ossa-registry-api.md +0 -515
  183. package/website/content/docs/api-reference/unified-agent-gateway.md +0 -599
  184. package/website/content/docs/architecture/execution-flow.md +0 -335
  185. package/website/content/docs/architecture/multi-agent-systems.md +0 -737
  186. package/website/content/docs/architecture/overview.md +0 -121
  187. package/website/content/docs/architecture/stack-integration.md +0 -461
  188. package/website/content/docs/changelog.md +0 -246
  189. package/website/content/docs/cli-reference/index.md +0 -111
  190. package/website/content/docs/cli-reference/ossa-agents.md +0 -70
  191. package/website/content/docs/cli-reference/ossa-export.md +0 -56
  192. package/website/content/docs/cli-reference/ossa-generate.md +0 -66
  193. package/website/content/docs/cli-reference/ossa-gitlab-agent.md +0 -57
  194. package/website/content/docs/cli-reference/ossa-import.md +0 -56
  195. package/website/content/docs/cli-reference/ossa-init.md +0 -57
  196. package/website/content/docs/cli-reference/ossa-migrate.md +0 -62
  197. package/website/content/docs/cli-reference/ossa-run.md +0 -66
  198. package/website/content/docs/cli-reference/ossa-schema.md +0 -57
  199. package/website/content/docs/cli-reference/ossa-setup.md +0 -57
  200. package/website/content/docs/cli-reference/ossa-validate.md +0 -66
  201. package/website/content/docs/configuration/index.md +0 -97
  202. package/website/content/docs/contributing.md +0 -599
  203. package/website/content/docs/deployment/github-mirroring.md +0 -924
  204. package/website/content/docs/documentation.md +0 -100
  205. package/website/content/docs/ecosystem/framework-support.md +0 -1361
  206. package/website/content/docs/ecosystem/overview.md +0 -366
  207. package/website/content/docs/errors/index.md +0 -10
  208. package/website/content/docs/examples/aiflow-framework-integration-with-ossa.md +0 -107
  209. package/website/content/docs/examples/catalog.md +0 -300
  210. package/website/content/docs/for-audiences/students-researchers.md +0 -122
  211. package/website/content/docs/getting-started/index.md +0 -92
  212. package/website/content/docs/getting-started/installation.md +0 -155
  213. package/website/content/docs/getting-started/running-agents.md +0 -309
  214. package/website/content/docs/getting-started.md +0 -91
  215. package/website/content/docs/integrations/aiflow.md +0 -104
  216. package/website/content/docs/integrations/drupal.md +0 -105
  217. package/website/content/docs/migration-guides/agent-schema-comparison.md +0 -232
  218. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +0 -1750
  219. package/website/content/docs/migration-guides/crewai-to-ossa.md +0 -274
  220. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +0 -2017
  221. package/website/content/docs/migration-guides/general-agent-schema.yml +0 -247
  222. package/website/content/docs/migration-guides/index.md +0 -133
  223. package/website/content/docs/migration-guides/langchain-to-ossa.md +0 -1714
  224. package/website/content/docs/migration-guides/langflow-to-ossa.md +0 -2075
  225. package/website/content/docs/migration-guides/migration-manifest.json +0 -64
  226. package/website/content/docs/migration-guides/openai-to-ossa.md +0 -1202
  227. package/website/content/docs/openapi-extensions/examples.md +0 -550
  228. package/website/content/docs/openapi-extensions/index.md +0 -551
  229. package/website/content/docs/openapi-extensions/operation-extensions.md +0 -457
  230. package/website/content/docs/openapi-extensions/root-extensions.md +0 -410
  231. package/website/content/docs/ossa-compliant-badge.md +0 -251
  232. package/website/content/docs/pre-release/index.md +0 -175
  233. package/website/content/docs/quick-reference.md +0 -17
  234. package/website/content/docs/readme.md +0 -35
  235. package/website/content/docs/releases/v0.2.6.md +0 -99
  236. package/website/content/docs/schema-reference/agent-capabilities.md +0 -50
  237. package/website/content/docs/schema-reference/agent-id.md +0 -52
  238. package/website/content/docs/schema-reference/agent-name.md +0 -50
  239. package/website/content/docs/schema-reference/agent-role.md +0 -54
  240. package/website/content/docs/schema-reference/agent-spec.md +0 -406
  241. package/website/content/docs/schema-reference/agent-version.md +0 -50
  242. package/website/content/docs/schema-reference/autonomy.md +0 -568
  243. package/website/content/docs/schema-reference/constraints.md +0 -543
  244. package/website/content/docs/schema-reference/index.md +0 -45
  245. package/website/content/docs/schema-reference/llm-config.md +0 -445
  246. package/website/content/docs/schema-reference/observability.md +0 -654
  247. package/website/content/docs/schema-reference/ossa-manifest.md +0 -309
  248. package/website/content/docs/schema-reference/taxonomy.md +0 -509
  249. package/website/content/docs/schema-reference/tools.md +0 -628
  250. package/website/content/docs/templates/blog-post.md +0 -43
  251. package/website/content/docs/types-reference/index.md +0 -105
  252. package/website/content/docs/use-cases/00-index.md +0 -395
  253. package/website/content/docs/use-cases/cicd-code-review.md +0 -1236
  254. package/website/content/docs/use-cases/customer-support.md +0 -1234
  255. package/website/content/docs/use-cases/enterprise-compliance.md +0 -1208
  256. package/website/content/docs/use-cases/research-multi-agent.md +0 -1161
  257. package/website/content/docs/versioning.md +0 -288
  258. package/website/dev.sh +0 -53
  259. package/website/docker-compose.dev.yml +0 -36
  260. package/website/lib/version.ts +0 -35
  261. package/website/lib/versions.json +0 -103
  262. package/website/next.config.ts +0 -18
  263. package/website/nginx.conf +0 -32
  264. package/website/package-lock.json +0 -9679
  265. package/website/package.json +0 -59
  266. package/website/postcss.config.mjs +0 -9
  267. package/website/scripts/fetch-versions.js +0 -166
  268. package/website/scripts/generate-examples-index.js +0 -163
  269. package/website/scripts/merge-docs-to-wiki.ts +0 -207
  270. package/website/scripts/sync-version.js +0 -72
  271. package/website/scripts/sync-wiki.ts +0 -322
  272. package/website/scripts/upload-wiki.ts +0 -199
  273. package/website/styles/_spacing.scss +0 -453
  274. package/website/styles/_tokens.scss +0 -245
  275. package/website/styles/_typography.scss +0 -361
  276. package/website/styles/_variables.scss +0 -287
  277. 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
  }