@bluefly/openstandardagents 0.2.5-RC → 0.2.7

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 (238) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.yml +63 -0
  2. package/.github/ISSUE_TEMPLATE/feature_request.yml +40 -0
  3. package/.github/workflows/dependabot-comment.yml +34 -0
  4. package/.github/workflows/pr-comment.yml +33 -0
  5. package/.husky/pre-commit +5 -0
  6. package/.kiro/config.json +21 -0
  7. package/.kiro/settings/mcp.json +61 -0
  8. package/.kiro/specs/scripts-migration-api-first/design.md +883 -0
  9. package/.kiro/specs/scripts-migration-api-first/requirements.md +165 -0
  10. package/.kiro/specs/scripts-migration-api-first/tasks.md +539 -0
  11. package/.kiro/specs/{website-design-audit → website-brand-identity}/design.md +381 -0
  12. package/.kiro/specs/{website-design-audit → website-brand-identity}/requirements.md +88 -0
  13. package/.kiro/specs/website-brand-identity/tasks.md +981 -0
  14. package/CHANGELOG.md +23 -0
  15. package/README.md +12 -3
  16. package/bin/ossa-dev +42 -0
  17. package/bin/ossa-export +32 -0
  18. package/bin/ossa-generate +60 -0
  19. package/bin/ossa-health +40 -0
  20. package/bin/ossa-init +26 -0
  21. package/dist/repositories/schema.repository.d.ts.map +1 -1
  22. package/dist/repositories/schema.repository.js +15 -10
  23. package/dist/repositories/schema.repository.js.map +1 -1
  24. package/dist/services/github-sync/github-client.d.ts +14 -0
  25. package/dist/services/github-sync/github-client.d.ts.map +1 -0
  26. package/dist/services/github-sync/github-client.js +41 -0
  27. package/dist/services/github-sync/github-client.js.map +1 -0
  28. package/dist/services/github-sync/gitlab-client.d.ts +17 -0
  29. package/dist/services/github-sync/gitlab-client.d.ts.map +1 -0
  30. package/dist/services/github-sync/gitlab-client.js +42 -0
  31. package/dist/services/github-sync/gitlab-client.js.map +1 -0
  32. package/dist/services/github-sync/schemas.d.ts +46 -0
  33. package/dist/services/github-sync/schemas.d.ts.map +1 -0
  34. package/dist/services/github-sync/schemas.js +36 -0
  35. package/dist/services/github-sync/schemas.js.map +1 -0
  36. package/dist/services/github-sync/sync.service.d.ts +27 -0
  37. package/dist/services/github-sync/sync.service.d.ts.map +1 -0
  38. package/dist/services/github-sync/sync.service.js +99 -0
  39. package/dist/services/github-sync/sync.service.js.map +1 -0
  40. package/dist/services/runtime/claude/capability-mapper.d.ts +84 -0
  41. package/dist/services/runtime/claude/capability-mapper.d.ts.map +1 -0
  42. package/dist/services/runtime/claude/capability-mapper.js +245 -0
  43. package/dist/services/runtime/claude/capability-mapper.js.map +1 -0
  44. package/dist/services/runtime/claude/claude-adapter.d.ts +80 -0
  45. package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -0
  46. package/dist/services/runtime/claude/claude-adapter.js +287 -0
  47. package/dist/services/runtime/claude/claude-adapter.js.map +1 -0
  48. package/dist/services/runtime/claude/manifest-parser.d.ts +77 -0
  49. package/dist/services/runtime/claude/manifest-parser.d.ts.map +1 -0
  50. package/dist/services/runtime/claude/manifest-parser.js +169 -0
  51. package/dist/services/runtime/claude/manifest-parser.js.map +1 -0
  52. package/dist/services/runtime/claude/types.d.ts +115 -0
  53. package/dist/services/runtime/claude/types.d.ts.map +1 -0
  54. package/dist/services/runtime/claude/types.js +6 -0
  55. package/dist/services/runtime/claude/types.js.map +1 -0
  56. package/dist/services/validation.service.d.ts.map +1 -1
  57. package/dist/services/validation.service.js +12 -1
  58. package/dist/services/validation.service.js.map +1 -1
  59. package/dist/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
  60. package/dist/spec/v0.2.6/CHANGELOG.md +401 -0
  61. package/dist/spec/v0.2.6/README.md +72 -0
  62. package/dist/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
  63. package/dist/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  64. package/dist/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
  65. package/dist/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
  66. package/dist/spec/v0.2.6-dev/CHANGELOG.md +164 -0
  67. package/dist/spec/v0.2.6-dev/README.md +75 -0
  68. package/dist/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
  69. package/dist/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
  70. package/dist/spec/{v0.2.4/ossa-0.2.4-dev.schema.json → v0.2.6-dev/ossa-0.2.5.schema.json} +9 -9
  71. package/dist/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
  72. package/{spec/v0.2.4/ossa-0.2.4-dev.schema.json → dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json} +9 -9
  73. package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
  74. package/dist/spec/v0.2.7/core/agentgraph.md +324 -0
  75. package/dist/spec/v0.2.7/resources/agentgraph.yaml +135 -0
  76. package/docs/brand-guide/01-brand-overview.md +37 -0
  77. package/docs/brand-guide/02-logo-usage.md +43 -0
  78. package/docs/brand-guide/03-color-palette.md +70 -0
  79. package/docs/brand-guide/04-typography.md +82 -0
  80. package/docs/brand-guide/05-voice-and-tone.md +108 -0
  81. package/docs/brand-guide/06-visual-elements.md +137 -0
  82. package/docs/brand-guide/07-application-examples.md +153 -0
  83. package/docs/brand-guide/OssaLogo/OssA_Logo.svg +21 -0
  84. package/docs/brand-guide/OssaLogo/brand.af +0 -0
  85. package/docs/brand-guide/README.md +107 -0
  86. package/docs/comparison.md +315 -0
  87. package/docs/operations/automation-roadmap.md +245 -0
  88. package/docs/operations/github-sync-strategy.md +357 -0
  89. package/examples/anthropic/claude-assistant.ossa.json +5 -4
  90. package/examples/autogen/multi-agent.ossa.json +6 -4
  91. package/examples/crewai/research-team.ossa.json +14 -5
  92. package/examples/cursor/code-review-agent.ossa.json +21 -6
  93. package/examples/langchain/chain-agent.ossa.json +21 -5
  94. package/examples/langflow/workflow-agent.ossa.json +2 -3
  95. package/examples/langgraph/state-machine-agent.ossa.json +2 -3
  96. package/examples/llamaindex/rag-agent.ossa.json +2 -3
  97. package/examples/openai/multi-tool-agent.ossa.json +32 -9
  98. package/examples/openai/swarm-agent.ossa.json +18 -5
  99. package/examples/vercel/edge-agent.ossa.json +5 -4
  100. package/openapi/github-sync.yaml +115 -0
  101. package/package.json +25 -4
  102. package/scripts/README.md +103 -0
  103. package/scripts/auto-rebase-mrs.ts +106 -0
  104. package/scripts/batch-dependabot.sh +57 -0
  105. package/scripts/configure-gitlab-branch-protection.ts +95 -0
  106. package/scripts/create-issue-helper.ts +238 -0
  107. package/scripts/create-milestone-issue.ts +73 -0
  108. package/scripts/fix-schema-formats.js +82 -0
  109. package/scripts/generate-agents-catalog.ts +77 -0
  110. package/scripts/generate-api-docs.ts +218 -0
  111. package/scripts/generate-cli-docs.ts +410 -0
  112. package/scripts/generate-config-docs.ts +109 -0
  113. package/scripts/generate-errors-docs.ts +76 -0
  114. package/scripts/generate-examples-docs.ts +99 -0
  115. package/scripts/generate-schema-docs.ts +296 -0
  116. package/scripts/generate-types-docs.ts +48 -0
  117. package/scripts/lowercase-docs.ts +43 -0
  118. package/scripts/manage-milestone-mrs.ts +279 -0
  119. package/scripts/rebase-all-mrs.sh +75 -0
  120. package/scripts/sync-github-pr.sh +48 -0
  121. package/scripts/sync-version.js +40 -0
  122. package/scripts/sync-wiki.sh +50 -0
  123. package/scripts/validate-all.js +127 -0
  124. package/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
  125. package/spec/v0.2.6/CHANGELOG.md +401 -0
  126. package/spec/v0.2.6/README.md +72 -0
  127. package/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
  128. package/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  129. package/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
  130. package/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
  131. package/spec/v0.2.6-dev/CHANGELOG.md +164 -0
  132. package/spec/v0.2.6-dev/README.md +75 -0
  133. package/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
  134. package/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
  135. package/spec/v0.2.6-dev/ossa-0.2.5.schema.json +1696 -0
  136. package/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
  137. package/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +1696 -0
  138. package/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
  139. package/spec/v0.2.7/core/agentgraph.md +324 -0
  140. package/spec/v0.2.7/resources/agentgraph.yaml +135 -0
  141. package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +445 -0
  142. package/website/app/about/page.tsx +53 -44
  143. package/website/app/ecosystem/page.tsx +146 -111
  144. package/website/app/globals.scss +256 -21
  145. package/website/app/page.tsx +394 -182
  146. package/website/app/page.tsx.bak +679 -0
  147. package/website/app/page.tsx.bak2 +649 -0
  148. package/website/app/schema/page.tsx +3 -3
  149. package/website/app/specification/page.tsx +1 -1
  150. package/website/components/layout/Header.tsx +27 -23
  151. package/website/components/ui/Badge.tsx +82 -0
  152. package/website/components/ui/Button.tsx +116 -0
  153. package/website/components/ui/Card.tsx +167 -0
  154. package/website/components/ui/Checkbox.tsx +141 -0
  155. package/website/components/ui/Input.tsx +169 -0
  156. package/website/components/ui/Radio.tsx +141 -0
  157. package/website/components/ui/Select.tsx +182 -0
  158. package/website/components/ui/Tag.tsx +158 -0
  159. package/website/components/ui/Textarea.tsx +195 -0
  160. package/website/components/ui/index.ts +11 -0
  161. package/website/content/docs/{00-HOME.md → 00-home.md} +1 -1
  162. package/website/content/docs/agents/catalog.md +28 -0
  163. package/website/content/docs/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
  164. package/website/content/docs/api-reference/index.md +38 -0
  165. package/website/content/docs/api-reference/ossa-core-api.md +634 -0
  166. package/website/content/docs/api-reference/ossa-registry-api.md +515 -0
  167. package/website/content/docs/api-reference/unified-agent-gateway.md +599 -0
  168. package/website/content/docs/cli-reference/index.md +111 -0
  169. package/website/content/docs/cli-reference/ossa-agents.md +70 -0
  170. package/website/content/docs/cli-reference/ossa-export.md +56 -0
  171. package/website/content/docs/cli-reference/ossa-generate.md +66 -0
  172. package/website/content/docs/cli-reference/ossa-gitlab-agent.md +57 -0
  173. package/website/content/docs/cli-reference/ossa-import.md +56 -0
  174. package/website/content/docs/cli-reference/ossa-init.md +57 -0
  175. package/website/content/docs/cli-reference/ossa-migrate.md +62 -0
  176. package/website/content/docs/cli-reference/ossa-run.md +66 -0
  177. package/website/content/docs/cli-reference/ossa-schema.md +57 -0
  178. package/website/content/docs/cli-reference/ossa-setup.md +57 -0
  179. package/website/content/docs/cli-reference/ossa-validate.md +66 -0
  180. package/website/content/docs/configuration/index.md +97 -0
  181. package/website/content/docs/deployment/github-mirroring.md +924 -0
  182. package/website/content/docs/documentation.md +100 -0
  183. package/website/content/docs/ecosystem/framework-support.md +551 -9
  184. package/website/content/docs/errors/index.md +10 -0
  185. package/website/content/docs/examples/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
  186. package/website/content/docs/examples/catalog.md +300 -0
  187. package/website/content/docs/for-audiences/{Students-Researchers.md → students-researchers.md} +1 -1
  188. package/website/content/docs/getting-started/{Installation.md → installation.md} +1 -1
  189. package/website/content/docs/getting-started.md +1 -1
  190. package/website/content/docs/integrations/aiflow.md +2 -2
  191. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +5 -5
  192. package/website/content/docs/migration-guides/crewai-to-ossa.md +3 -3
  193. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +7 -7
  194. package/website/content/docs/migration-guides/langchain-to-ossa.md +4 -4
  195. package/website/content/docs/openapi-extensions/index.md +1 -1
  196. package/website/content/docs/ossa-compliant-badge.md +1 -1
  197. package/website/content/docs/pre-release/index.md +5 -5
  198. package/website/content/docs/releases/v0.2.6.md +99 -0
  199. package/website/content/docs/schema-reference/agent-capabilities.md +50 -0
  200. package/website/content/docs/schema-reference/agent-id.md +52 -0
  201. package/website/content/docs/schema-reference/agent-name.md +50 -0
  202. package/website/content/docs/schema-reference/agent-role.md +54 -0
  203. package/website/content/docs/schema-reference/agent-version.md +50 -0
  204. package/website/content/docs/schema-reference/index.md +26 -157
  205. package/website/content/docs/types-reference/index.md +105 -0
  206. package/website/content/docs/versioning.md +3 -3
  207. package/website/dev.sh +53 -0
  208. package/website/docker-compose.dev.yml +36 -0
  209. package/website/lib/version.ts +1 -1
  210. package/website/lib/versions.json +45 -20
  211. package/website/package.json +1 -1
  212. package/website/styles/_spacing.scss +453 -0
  213. package/website/styles/_tokens.scss +245 -0
  214. package/website/styles/_typography.scss +361 -0
  215. package/website/styles/_variables.scss +270 -19
  216. package/website/tailwind.config.ts +113 -79
  217. package/.kiro/specs/agent-buildkit-templates/design.md +0 -495
  218. package/.kiro/specs/agent-buildkit-templates/requirements.md +0 -165
  219. package/.kiro/specs/kiro-ide-supercharger/README.md +0 -202
  220. package/.kiro/specs/kiro-ide-supercharger/design.md +0 -1005
  221. package/.kiro/specs/kiro-ide-supercharger/requirements.md +0 -141
  222. package/.kiro/specs/kiro-ide-supercharger/tasks.md +0 -507
  223. package/docs/issue-19-completion-summary.md +0 -648
  224. package/docs/issue-19-validation.md +0 -351
  225. package/website/content/docs/Examples.md +0 -71
  226. package/website/content/docs/OpenAPI-Extensions.md +0 -934
  227. package/website/content/docs/core-concepts/Project-Structure.md +0 -348
  228. package/website/content/docs/examples/Migration-Guides.md +0 -214
  229. package/website/content/docs/for-audiences/Architects.md +0 -224
  230. package/website/content/docs/for-audiences/Developers.md +0 -220
  231. package/website/content/docs/for-audiences/Enterprises.md +0 -256
  232. package/website/content/docs/getting-started/5-Minute-Overview.md +0 -85
  233. package/website/content/docs/getting-started/First-Agent.md +0 -196
  234. package/website/content/docs/getting-started/Hello-World.md +0 -184
  235. package/website/content/docs/migration-guides/00-INDEX.md +0 -76
  236. package/website/content/docs/migration-guides/README.md +0 -133
  237. /package/dist/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
  238. /package/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
@@ -0,0 +1,324 @@
1
+ # AgentGraph Resource Specification
2
+
3
+ **Version:** v0.2.7
4
+ **Status:** Draft
5
+ **Type:** Core Resource
6
+
7
+ ## Overview
8
+
9
+ AgentGraph is a resource type for defining multi-agent compositions as directed graphs. It enables orchestration of multiple agents with explicit data flow and conditional routing.
10
+
11
+ ## Motivation
12
+
13
+ Single agents are limited in capability. Complex tasks require:
14
+ - Multiple specialized agents working together
15
+ - Data flow between agents
16
+ - Conditional routing based on outputs
17
+ - Error handling across agent boundaries
18
+
19
+ AgentGraph provides a declarative way to compose agents into workflows.
20
+
21
+ ## Resource Structure
22
+
23
+ ```yaml
24
+ apiVersion: ossa.ai/v0.2.7
25
+ kind: AgentGraph
26
+ metadata:
27
+ name: string
28
+ version: string
29
+ description: string
30
+ spec:
31
+ agents: Agent[]
32
+ edges: Edge[]
33
+ entrypoint: string
34
+ errorHandling: ErrorHandling
35
+ ```
36
+
37
+ ## Fields
38
+
39
+ ### metadata
40
+
41
+ Standard OSSA metadata block.
42
+
43
+ **Required fields:**
44
+ - `name`: Unique identifier for the graph
45
+ - `version`: Semantic version
46
+
47
+ ### spec.agents
48
+
49
+ Array of agent definitions within the graph.
50
+
51
+ **Fields:**
52
+ - `id` (required): Unique identifier within graph
53
+ - `agentRef` (required): Reference to Agent resource
54
+ - `config` (optional): Agent-specific configuration overrides
55
+
56
+ **Example:**
57
+ ```yaml
58
+ agents:
59
+ - id: analyzer
60
+ agentRef: sentiment-analyzer
61
+ config:
62
+ threshold: 0.8
63
+ - id: responder
64
+ agentRef: response-generator
65
+ ```
66
+
67
+ ### spec.edges
68
+
69
+ Array defining data flow between agents.
70
+
71
+ **Fields:**
72
+ - `from` (required): Source agent ID
73
+ - `to` (required): Target agent ID
74
+ - `condition` (optional): Boolean expression for conditional routing
75
+ - `transform` (optional): Data transformation expression
76
+
77
+ **Example:**
78
+ ```yaml
79
+ edges:
80
+ - from: analyzer
81
+ to: responder
82
+ - from: analyzer
83
+ to: escalation
84
+ condition: output.sentiment < 0.3
85
+ ```
86
+
87
+ ### spec.entrypoint
88
+
89
+ ID of the starting agent. Graph execution begins here.
90
+
91
+ ### spec.errorHandling
92
+
93
+ Error handling strategy for the graph.
94
+
95
+ **Fields:**
96
+ - `strategy`: `fail-fast` | `continue` | `retry`
97
+ - `maxRetries`: Maximum retry attempts (for retry strategy)
98
+ - `fallbackAgent`: Agent ID to invoke on error
99
+
100
+ ## Execution Model
101
+
102
+ ### Sequential Execution
103
+
104
+ Agents execute in topological order based on edges.
105
+
106
+ ```yaml
107
+ edges:
108
+ - from: A
109
+ to: B
110
+ - from: B
111
+ to: C
112
+ ```
113
+
114
+ Execution: A → B → C
115
+
116
+ ### Parallel Execution
117
+
118
+ Agents with no dependencies execute in parallel.
119
+
120
+ ```yaml
121
+ edges:
122
+ - from: A
123
+ to: B
124
+ - from: A
125
+ to: C
126
+ - from: B
127
+ to: D
128
+ - from: C
129
+ to: D
130
+ ```
131
+
132
+ Execution: A → (B || C) → D
133
+
134
+ ### Conditional Routing
135
+
136
+ Edges with conditions enable branching.
137
+
138
+ ```yaml
139
+ edges:
140
+ - from: classifier
141
+ to: pathA
142
+ condition: output.category == 'A'
143
+ - from: classifier
144
+ to: pathB
145
+ condition: output.category == 'B'
146
+ ```
147
+
148
+ ### Data Flow
149
+
150
+ Output from source agent becomes input to target agent.
151
+
152
+ **Transformation:**
153
+ ```yaml
154
+ edges:
155
+ - from: extractor
156
+ to: formatter
157
+ transform: |
158
+ {
159
+ "data": output.extracted,
160
+ "format": "json"
161
+ }
162
+ ```
163
+
164
+ ## Error Handling
165
+
166
+ ### Fail-Fast (default)
167
+
168
+ Stop execution on first error.
169
+
170
+ ```yaml
171
+ errorHandling:
172
+ strategy: fail-fast
173
+ ```
174
+
175
+ ### Continue
176
+
177
+ Continue execution, skip failed agents.
178
+
179
+ ```yaml
180
+ errorHandling:
181
+ strategy: continue
182
+ ```
183
+
184
+ ### Retry
185
+
186
+ Retry failed agents up to maxRetries.
187
+
188
+ ```yaml
189
+ errorHandling:
190
+ strategy: retry
191
+ maxRetries: 3
192
+ ```
193
+
194
+ ### Fallback
195
+
196
+ Invoke fallback agent on error.
197
+
198
+ ```yaml
199
+ errorHandling:
200
+ strategy: fail-fast
201
+ fallbackAgent: error-handler
202
+ ```
203
+
204
+ ## Examples
205
+
206
+ ### Sequential Pipeline
207
+
208
+ ```yaml
209
+ apiVersion: ossa.ai/v0.2.7
210
+ kind: AgentGraph
211
+ metadata:
212
+ name: content-pipeline
213
+ version: 1.0.0
214
+ spec:
215
+ agents:
216
+ - id: researcher
217
+ agentRef: research-agent
218
+ - id: writer
219
+ agentRef: writing-agent
220
+ - id: editor
221
+ agentRef: editing-agent
222
+ edges:
223
+ - from: researcher
224
+ to: writer
225
+ - from: writer
226
+ to: editor
227
+ entrypoint: researcher
228
+ ```
229
+
230
+ ### Parallel Processing
231
+
232
+ ```yaml
233
+ apiVersion: ossa.ai/v0.2.7
234
+ kind: AgentGraph
235
+ metadata:
236
+ name: parallel-analysis
237
+ version: 1.0.0
238
+ spec:
239
+ agents:
240
+ - id: splitter
241
+ agentRef: data-splitter
242
+ - id: analyzer1
243
+ agentRef: sentiment-analyzer
244
+ - id: analyzer2
245
+ agentRef: entity-extractor
246
+ - id: merger
247
+ agentRef: result-merger
248
+ edges:
249
+ - from: splitter
250
+ to: analyzer1
251
+ - from: splitter
252
+ to: analyzer2
253
+ - from: analyzer1
254
+ to: merger
255
+ - from: analyzer2
256
+ to: merger
257
+ entrypoint: splitter
258
+ ```
259
+
260
+ ### Conditional Routing
261
+
262
+ ```yaml
263
+ apiVersion: ossa.ai/v0.2.7
264
+ kind: AgentGraph
265
+ metadata:
266
+ name: support-router
267
+ version: 1.0.0
268
+ spec:
269
+ agents:
270
+ - id: classifier
271
+ agentRef: intent-classifier
272
+ - id: technical
273
+ agentRef: technical-support
274
+ - id: billing
275
+ agentRef: billing-support
276
+ - id: general
277
+ agentRef: general-support
278
+ edges:
279
+ - from: classifier
280
+ to: technical
281
+ condition: output.intent == 'technical'
282
+ - from: classifier
283
+ to: billing
284
+ condition: output.intent == 'billing'
285
+ - from: classifier
286
+ to: general
287
+ condition: output.intent == 'general'
288
+ entrypoint: classifier
289
+ errorHandling:
290
+ strategy: fail-fast
291
+ fallbackAgent: general
292
+ ```
293
+
294
+ ## Validation Rules
295
+
296
+ 1. **Acyclic**: Graph MUST NOT contain cycles
297
+ 2. **Connected**: All agents MUST be reachable from entrypoint
298
+ 3. **Valid References**: All `agentRef` MUST reference existing Agent resources
299
+ 4. **Unique IDs**: Agent IDs MUST be unique within graph
300
+ 5. **Valid Edges**: Edge `from`/`to` MUST reference agent IDs in graph
301
+
302
+ ## Runtime Requirements
303
+
304
+ Implementations MUST:
305
+ - Validate graph structure before execution
306
+ - Execute agents in topological order
307
+ - Handle parallel execution where possible
308
+ - Evaluate conditions before edge traversal
309
+ - Apply transformations to data flow
310
+ - Implement specified error handling strategy
311
+
312
+ ## Future Considerations
313
+
314
+ - **Loops**: Support for iterative agent execution
315
+ - **Subgraphs**: Nested AgentGraph resources
316
+ - **Dynamic Routing**: Runtime edge creation
317
+ - **State Management**: Shared state across agents
318
+ - **Observability**: Built-in tracing and metrics
319
+
320
+ ## Related Resources
321
+
322
+ - [Agent Resource](./agent-definition.md)
323
+ - [Multi-Agent Composition](../examples/multi-agent/)
324
+ - [Error Handling](./error-handling.md)
@@ -0,0 +1,135 @@
1
+ apiVersion: ossa.ai/v0.2.7
2
+ kind: ResourceDefinition
3
+ metadata:
4
+ name: AgentGraph
5
+ version: 1.0.0
6
+ description: Multi-agent composition and orchestration resource
7
+
8
+ spec:
9
+ # AgentGraph defines a directed graph of agents with data flow
10
+ schema:
11
+ apiVersion:
12
+ type: string
13
+ pattern: ^ossa\.ai/v\d+\.\d+\.\d+$
14
+ required: true
15
+
16
+ kind:
17
+ type: string
18
+ enum: [AgentGraph]
19
+ required: true
20
+
21
+ metadata:
22
+ type: object
23
+ required: true
24
+ properties:
25
+ name:
26
+ type: string
27
+ description: Unique identifier for the agent graph
28
+ version:
29
+ type: string
30
+ pattern: ^\d+\.\d+\.\d+$
31
+ description:
32
+ type: string
33
+
34
+ spec:
35
+ type: object
36
+ required: true
37
+ properties:
38
+ agents:
39
+ type: array
40
+ description: List of agents in the graph
41
+ items:
42
+ type: object
43
+ properties:
44
+ id:
45
+ type: string
46
+ description: Unique ID within graph
47
+ agentRef:
48
+ type: string
49
+ description: Reference to Agent resource
50
+ config:
51
+ type: object
52
+ description: Agent-specific configuration
53
+
54
+ edges:
55
+ type: array
56
+ description: Data flow between agents
57
+ items:
58
+ type: object
59
+ properties:
60
+ from:
61
+ type: string
62
+ description: Source agent ID
63
+ to:
64
+ type: string
65
+ description: Target agent ID
66
+ condition:
67
+ type: string
68
+ description: Optional condition for edge traversal
69
+ transform:
70
+ type: string
71
+ description: Optional data transformation
72
+
73
+ entrypoint:
74
+ type: string
75
+ description: Starting agent ID
76
+
77
+ errorHandling:
78
+ type: object
79
+ properties:
80
+ strategy:
81
+ type: string
82
+ enum: [fail-fast, continue, retry]
83
+ maxRetries:
84
+ type: integer
85
+ fallbackAgent:
86
+ type: string
87
+
88
+ examples:
89
+ - name: Sequential Pipeline
90
+ description: Simple sequential agent pipeline
91
+ yaml: |
92
+ apiVersion: ossa.ai/v0.2.7
93
+ kind: AgentGraph
94
+ metadata:
95
+ name: content-pipeline
96
+ version: 1.0.0
97
+ spec:
98
+ agents:
99
+ - id: researcher
100
+ agentRef: research-agent
101
+ - id: writer
102
+ agentRef: writing-agent
103
+ - id: editor
104
+ agentRef: editing-agent
105
+ edges:
106
+ - from: researcher
107
+ to: writer
108
+ - from: writer
109
+ to: editor
110
+ entrypoint: researcher
111
+
112
+ - name: Conditional Routing
113
+ description: Route based on agent output
114
+ yaml: |
115
+ apiVersion: ossa.ai/v0.2.7
116
+ kind: AgentGraph
117
+ metadata:
118
+ name: support-router
119
+ version: 1.0.0
120
+ spec:
121
+ agents:
122
+ - id: classifier
123
+ agentRef: intent-classifier
124
+ - id: technical
125
+ agentRef: technical-support
126
+ - id: billing
127
+ agentRef: billing-support
128
+ edges:
129
+ - from: classifier
130
+ to: technical
131
+ condition: output.intent == 'technical'
132
+ - from: classifier
133
+ to: billing
134
+ condition: output.intent == 'billing'
135
+ entrypoint: classifier