@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.
- package/.github/ISSUE_TEMPLATE/bug_report.yml +63 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +40 -0
- package/.github/workflows/dependabot-comment.yml +34 -0
- package/.github/workflows/pr-comment.yml +33 -0
- package/.husky/pre-commit +5 -0
- package/.kiro/config.json +21 -0
- package/.kiro/settings/mcp.json +61 -0
- package/.kiro/specs/scripts-migration-api-first/design.md +883 -0
- package/.kiro/specs/scripts-migration-api-first/requirements.md +165 -0
- package/.kiro/specs/scripts-migration-api-first/tasks.md +539 -0
- package/.kiro/specs/{website-design-audit → website-brand-identity}/design.md +381 -0
- package/.kiro/specs/{website-design-audit → website-brand-identity}/requirements.md +88 -0
- package/.kiro/specs/website-brand-identity/tasks.md +981 -0
- package/CHANGELOG.md +23 -0
- package/README.md +12 -3
- package/bin/ossa-dev +42 -0
- package/bin/ossa-export +32 -0
- package/bin/ossa-generate +60 -0
- package/bin/ossa-health +40 -0
- package/bin/ossa-init +26 -0
- package/dist/repositories/schema.repository.d.ts.map +1 -1
- package/dist/repositories/schema.repository.js +15 -10
- package/dist/repositories/schema.repository.js.map +1 -1
- package/dist/services/github-sync/github-client.d.ts +14 -0
- package/dist/services/github-sync/github-client.d.ts.map +1 -0
- package/dist/services/github-sync/github-client.js +41 -0
- package/dist/services/github-sync/github-client.js.map +1 -0
- package/dist/services/github-sync/gitlab-client.d.ts +17 -0
- package/dist/services/github-sync/gitlab-client.d.ts.map +1 -0
- package/dist/services/github-sync/gitlab-client.js +42 -0
- package/dist/services/github-sync/gitlab-client.js.map +1 -0
- package/dist/services/github-sync/schemas.d.ts +46 -0
- package/dist/services/github-sync/schemas.d.ts.map +1 -0
- package/dist/services/github-sync/schemas.js +36 -0
- package/dist/services/github-sync/schemas.js.map +1 -0
- package/dist/services/github-sync/sync.service.d.ts +27 -0
- package/dist/services/github-sync/sync.service.d.ts.map +1 -0
- package/dist/services/github-sync/sync.service.js +99 -0
- package/dist/services/github-sync/sync.service.js.map +1 -0
- package/dist/services/runtime/claude/capability-mapper.d.ts +84 -0
- package/dist/services/runtime/claude/capability-mapper.d.ts.map +1 -0
- package/dist/services/runtime/claude/capability-mapper.js +245 -0
- package/dist/services/runtime/claude/capability-mapper.js.map +1 -0
- package/dist/services/runtime/claude/claude-adapter.d.ts +80 -0
- package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -0
- package/dist/services/runtime/claude/claude-adapter.js +287 -0
- package/dist/services/runtime/claude/claude-adapter.js.map +1 -0
- package/dist/services/runtime/claude/manifest-parser.d.ts +77 -0
- package/dist/services/runtime/claude/manifest-parser.d.ts.map +1 -0
- package/dist/services/runtime/claude/manifest-parser.js +169 -0
- package/dist/services/runtime/claude/manifest-parser.js.map +1 -0
- package/dist/services/runtime/claude/types.d.ts +115 -0
- package/dist/services/runtime/claude/types.d.ts.map +1 -0
- package/dist/services/runtime/claude/types.js +6 -0
- package/dist/services/runtime/claude/types.js.map +1 -0
- package/dist/services/validation.service.d.ts.map +1 -1
- package/dist/services/validation.service.js +12 -1
- package/dist/services/validation.service.js.map +1 -1
- package/dist/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
- package/dist/spec/v0.2.6/CHANGELOG.md +401 -0
- package/dist/spec/v0.2.6/README.md +72 -0
- package/dist/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/dist/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
- package/dist/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
- package/dist/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
- package/dist/spec/v0.2.6-dev/CHANGELOG.md +164 -0
- package/dist/spec/v0.2.6-dev/README.md +75 -0
- package/dist/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
- package/dist/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
- 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
- package/dist/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
- 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
- package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
- package/dist/spec/v0.2.7/core/agentgraph.md +324 -0
- package/dist/spec/v0.2.7/resources/agentgraph.yaml +135 -0
- package/docs/brand-guide/01-brand-overview.md +37 -0
- package/docs/brand-guide/02-logo-usage.md +43 -0
- package/docs/brand-guide/03-color-palette.md +70 -0
- package/docs/brand-guide/04-typography.md +82 -0
- package/docs/brand-guide/05-voice-and-tone.md +108 -0
- package/docs/brand-guide/06-visual-elements.md +137 -0
- package/docs/brand-guide/07-application-examples.md +153 -0
- package/docs/brand-guide/OssaLogo/OssA_Logo.svg +21 -0
- package/docs/brand-guide/OssaLogo/brand.af +0 -0
- package/docs/brand-guide/README.md +107 -0
- package/docs/comparison.md +315 -0
- package/docs/operations/automation-roadmap.md +245 -0
- package/docs/operations/github-sync-strategy.md +357 -0
- package/examples/anthropic/claude-assistant.ossa.json +5 -4
- package/examples/autogen/multi-agent.ossa.json +6 -4
- package/examples/crewai/research-team.ossa.json +14 -5
- package/examples/cursor/code-review-agent.ossa.json +21 -6
- package/examples/langchain/chain-agent.ossa.json +21 -5
- package/examples/langflow/workflow-agent.ossa.json +2 -3
- package/examples/langgraph/state-machine-agent.ossa.json +2 -3
- package/examples/llamaindex/rag-agent.ossa.json +2 -3
- package/examples/openai/multi-tool-agent.ossa.json +32 -9
- package/examples/openai/swarm-agent.ossa.json +18 -5
- package/examples/vercel/edge-agent.ossa.json +5 -4
- package/openapi/github-sync.yaml +115 -0
- package/package.json +25 -4
- package/scripts/README.md +103 -0
- package/scripts/auto-rebase-mrs.ts +106 -0
- package/scripts/batch-dependabot.sh +57 -0
- package/scripts/configure-gitlab-branch-protection.ts +95 -0
- package/scripts/create-issue-helper.ts +238 -0
- package/scripts/create-milestone-issue.ts +73 -0
- package/scripts/fix-schema-formats.js +82 -0
- package/scripts/generate-agents-catalog.ts +77 -0
- package/scripts/generate-api-docs.ts +218 -0
- package/scripts/generate-cli-docs.ts +410 -0
- package/scripts/generate-config-docs.ts +109 -0
- package/scripts/generate-errors-docs.ts +76 -0
- package/scripts/generate-examples-docs.ts +99 -0
- package/scripts/generate-schema-docs.ts +296 -0
- package/scripts/generate-types-docs.ts +48 -0
- package/scripts/lowercase-docs.ts +43 -0
- package/scripts/manage-milestone-mrs.ts +279 -0
- package/scripts/rebase-all-mrs.sh +75 -0
- package/scripts/sync-github-pr.sh +48 -0
- package/scripts/sync-version.js +40 -0
- package/scripts/sync-wiki.sh +50 -0
- package/scripts/validate-all.js +127 -0
- package/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
- package/spec/v0.2.6/CHANGELOG.md +401 -0
- package/spec/v0.2.6/README.md +72 -0
- package/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
- package/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
- package/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
- package/spec/v0.2.6-dev/CHANGELOG.md +164 -0
- package/spec/v0.2.6-dev/README.md +75 -0
- package/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
- package/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.6-dev/ossa-0.2.5.schema.json +1696 -0
- package/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
- package/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +1696 -0
- package/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
- package/spec/v0.2.7/core/agentgraph.md +324 -0
- package/spec/v0.2.7/resources/agentgraph.yaml +135 -0
- package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +445 -0
- package/website/app/about/page.tsx +53 -44
- package/website/app/ecosystem/page.tsx +146 -111
- package/website/app/globals.scss +256 -21
- package/website/app/page.tsx +394 -182
- package/website/app/page.tsx.bak +679 -0
- package/website/app/page.tsx.bak2 +649 -0
- package/website/app/schema/page.tsx +3 -3
- package/website/app/specification/page.tsx +1 -1
- package/website/components/layout/Header.tsx +27 -23
- package/website/components/ui/Badge.tsx +82 -0
- package/website/components/ui/Button.tsx +116 -0
- package/website/components/ui/Card.tsx +167 -0
- package/website/components/ui/Checkbox.tsx +141 -0
- package/website/components/ui/Input.tsx +169 -0
- package/website/components/ui/Radio.tsx +141 -0
- package/website/components/ui/Select.tsx +182 -0
- package/website/components/ui/Tag.tsx +158 -0
- package/website/components/ui/Textarea.tsx +195 -0
- package/website/components/ui/index.ts +11 -0
- package/website/content/docs/{00-HOME.md → 00-home.md} +1 -1
- package/website/content/docs/agents/catalog.md +28 -0
- package/website/content/docs/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
- package/website/content/docs/api-reference/index.md +38 -0
- package/website/content/docs/api-reference/ossa-core-api.md +634 -0
- package/website/content/docs/api-reference/ossa-registry-api.md +515 -0
- package/website/content/docs/api-reference/unified-agent-gateway.md +599 -0
- package/website/content/docs/cli-reference/index.md +111 -0
- package/website/content/docs/cli-reference/ossa-agents.md +70 -0
- package/website/content/docs/cli-reference/ossa-export.md +56 -0
- package/website/content/docs/cli-reference/ossa-generate.md +66 -0
- package/website/content/docs/cli-reference/ossa-gitlab-agent.md +57 -0
- package/website/content/docs/cli-reference/ossa-import.md +56 -0
- package/website/content/docs/cli-reference/ossa-init.md +57 -0
- package/website/content/docs/cli-reference/ossa-migrate.md +62 -0
- package/website/content/docs/cli-reference/ossa-run.md +66 -0
- package/website/content/docs/cli-reference/ossa-schema.md +57 -0
- package/website/content/docs/cli-reference/ossa-setup.md +57 -0
- package/website/content/docs/cli-reference/ossa-validate.md +66 -0
- package/website/content/docs/configuration/index.md +97 -0
- package/website/content/docs/deployment/github-mirroring.md +924 -0
- package/website/content/docs/documentation.md +100 -0
- package/website/content/docs/ecosystem/framework-support.md +551 -9
- package/website/content/docs/errors/index.md +10 -0
- package/website/content/docs/examples/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
- package/website/content/docs/examples/catalog.md +300 -0
- package/website/content/docs/for-audiences/{Students-Researchers.md → students-researchers.md} +1 -1
- package/website/content/docs/getting-started/{Installation.md → installation.md} +1 -1
- package/website/content/docs/getting-started.md +1 -1
- package/website/content/docs/integrations/aiflow.md +2 -2
- package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +5 -5
- package/website/content/docs/migration-guides/crewai-to-ossa.md +3 -3
- package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +7 -7
- package/website/content/docs/migration-guides/langchain-to-ossa.md +4 -4
- package/website/content/docs/openapi-extensions/index.md +1 -1
- package/website/content/docs/ossa-compliant-badge.md +1 -1
- package/website/content/docs/pre-release/index.md +5 -5
- package/website/content/docs/releases/v0.2.6.md +99 -0
- package/website/content/docs/schema-reference/agent-capabilities.md +50 -0
- package/website/content/docs/schema-reference/agent-id.md +52 -0
- package/website/content/docs/schema-reference/agent-name.md +50 -0
- package/website/content/docs/schema-reference/agent-role.md +54 -0
- package/website/content/docs/schema-reference/agent-version.md +50 -0
- package/website/content/docs/schema-reference/index.md +26 -157
- package/website/content/docs/types-reference/index.md +105 -0
- package/website/content/docs/versioning.md +3 -3
- package/website/dev.sh +53 -0
- package/website/docker-compose.dev.yml +36 -0
- package/website/lib/version.ts +1 -1
- package/website/lib/versions.json +45 -20
- package/website/package.json +1 -1
- package/website/styles/_spacing.scss +453 -0
- package/website/styles/_tokens.scss +245 -0
- package/website/styles/_typography.scss +361 -0
- package/website/styles/_variables.scss +270 -19
- package/website/tailwind.config.ts +113 -79
- package/.kiro/specs/agent-buildkit-templates/design.md +0 -495
- package/.kiro/specs/agent-buildkit-templates/requirements.md +0 -165
- package/.kiro/specs/kiro-ide-supercharger/README.md +0 -202
- package/.kiro/specs/kiro-ide-supercharger/design.md +0 -1005
- package/.kiro/specs/kiro-ide-supercharger/requirements.md +0 -141
- package/.kiro/specs/kiro-ide-supercharger/tasks.md +0 -507
- package/docs/issue-19-completion-summary.md +0 -648
- package/docs/issue-19-validation.md +0 -351
- package/website/content/docs/Examples.md +0 -71
- package/website/content/docs/OpenAPI-Extensions.md +0 -934
- package/website/content/docs/core-concepts/Project-Structure.md +0 -348
- package/website/content/docs/examples/Migration-Guides.md +0 -214
- package/website/content/docs/for-audiences/Architects.md +0 -224
- package/website/content/docs/for-audiences/Developers.md +0 -220
- package/website/content/docs/for-audiences/Enterprises.md +0 -256
- package/website/content/docs/getting-started/5-Minute-Overview.md +0 -85
- package/website/content/docs/getting-started/First-Agent.md +0 -196
- package/website/content/docs/getting-started/Hello-World.md +0 -184
- package/website/content/docs/migration-guides/00-INDEX.md +0 -76
- package/website/content/docs/migration-guides/README.md +0 -133
- /package/dist/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
- /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
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# OSSA Brand Overview
|
|
2
|
+
|
|
3
|
+
> Version 1.0.0 | Last Updated: November 2025
|
|
4
|
+
|
|
5
|
+
## Mission
|
|
6
|
+
|
|
7
|
+
**Make AI agents interoperable across all platforms and frameworks.**
|
|
8
|
+
|
|
9
|
+
OSSA (Open Standard for Scalable AI Agents) provides a vendor-neutral specification standard that enables AI agents to communicate and collaborate seamlessly.
|
|
10
|
+
|
|
11
|
+
## Vision
|
|
12
|
+
|
|
13
|
+
**Become the OpenAPI for AI agents** - the universally adopted standard for defining, deploying, and connecting autonomous AI systems.
|
|
14
|
+
|
|
15
|
+
## Core Values
|
|
16
|
+
|
|
17
|
+
### 1. Open & Vendor-Neutral
|
|
18
|
+
Community-driven, no vendor lock-in, Apache 2.0 license
|
|
19
|
+
|
|
20
|
+
### 2. Interoperable
|
|
21
|
+
Common language across frameworks, runtime-independent
|
|
22
|
+
|
|
23
|
+
### 3. Trustworthy
|
|
24
|
+
Compliance-ready, security built-in, enterprise-grade
|
|
25
|
+
|
|
26
|
+
### 4. Simple & Practical
|
|
27
|
+
Clear specification, production-ready implementations
|
|
28
|
+
|
|
29
|
+
## Key Messages
|
|
30
|
+
|
|
31
|
+
**Primary:** "The OpenAPI for AI Agents"
|
|
32
|
+
|
|
33
|
+
**For Enterprises:** Deploy anywhere, switch frameworks anytime, maintain compliance always
|
|
34
|
+
|
|
35
|
+
**For Developers:** Write once, deploy anywhere - portable and future-proof
|
|
36
|
+
|
|
37
|
+
**For Framework Builders:** Build on an open standard
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# OSSA Logo Usage Guidelines
|
|
2
|
+
|
|
3
|
+
> Version 1.0.0 | Last Updated: November 2025
|
|
4
|
+
|
|
5
|
+
## Primary Logo
|
|
6
|
+
|
|
7
|
+
Dynamic gradient-based mark representing interconnected AI agents.
|
|
8
|
+
|
|
9
|
+
**Location:** `/website/public/brand/ossa-logo.svg`
|
|
10
|
+
|
|
11
|
+
**Colors:** Gradient from Cyan Blue (#1CB9ED) → Deep Purple (#4A3ECD) → Light Purple (#9060EA)
|
|
12
|
+
|
|
13
|
+
## Logo Variations
|
|
14
|
+
|
|
15
|
+
- **Full Color:** White/light backgrounds
|
|
16
|
+
- **Monochrome White:** Dark backgrounds (#FFFFFF)
|
|
17
|
+
- **Monochrome Dark:** Light backgrounds, print (#2D1B69)
|
|
18
|
+
- **Grayscale:** Print only (#374151)
|
|
19
|
+
|
|
20
|
+
## Minimum Sizes
|
|
21
|
+
|
|
22
|
+
- **Digital:** 120px width min (180px recommended)
|
|
23
|
+
- **Print:** 1 inch min (1.5 inches recommended)
|
|
24
|
+
- **Icon:** 16px, 32px, 64px, 128px
|
|
25
|
+
|
|
26
|
+
## Clear Space
|
|
27
|
+
|
|
28
|
+
Maintain clear space = **0.5× logo height** on all sides
|
|
29
|
+
|
|
30
|
+
## Incorrect Usage
|
|
31
|
+
|
|
32
|
+
❌ Don't change colors
|
|
33
|
+
❌ Don't distort/stretch
|
|
34
|
+
❌ Don't add effects
|
|
35
|
+
❌ Don't modify
|
|
36
|
+
❌ Don't use low-quality
|
|
37
|
+
|
|
38
|
+
## Background Guidelines
|
|
39
|
+
|
|
40
|
+
✅ White, light gray, light blue, dark purple, black
|
|
41
|
+
❌ Bright colors, busy patterns, low-contrast
|
|
42
|
+
|
|
43
|
+
**Rule:** 4.5:1 minimum contrast ratio
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# OSSA Color Palette
|
|
2
|
+
|
|
3
|
+
> Version 1.0.0 | Last Updated: November 2025
|
|
4
|
+
|
|
5
|
+
## Primary Brand Colors
|
|
6
|
+
|
|
7
|
+
### Deep Purple (Primary)
|
|
8
|
+
**Base:** `#4A3ECD`
|
|
9
|
+
**Usage:** Primary actions, branding, emphasis
|
|
10
|
+
**Scale:** 50-950 (see full guide)
|
|
11
|
+
|
|
12
|
+
### Cyan Blue (Secondary)
|
|
13
|
+
**Base:** `#1CB9ED`
|
|
14
|
+
**Usage:** Secondary actions, accents, gradients
|
|
15
|
+
**Scale:** 50-950
|
|
16
|
+
|
|
17
|
+
### Light Purple (Accent)
|
|
18
|
+
**Base:** `#9060EA`
|
|
19
|
+
**Usage:** Decorative accents, gradient endpoints
|
|
20
|
+
**Scale:** 50-950
|
|
21
|
+
|
|
22
|
+
### Dark Purple (Depth)
|
|
23
|
+
**Base:** `#2D1B69`
|
|
24
|
+
**Usage:** Dark backgrounds, dark mode, contrast
|
|
25
|
+
**Scale:** 50-950
|
|
26
|
+
|
|
27
|
+
## Semantic Colors
|
|
28
|
+
|
|
29
|
+
- **Success:** `#10B981` (Green)
|
|
30
|
+
- **Warning:** `#F59E0B` (Amber)
|
|
31
|
+
- **Error:** `#EF4444` (Red)
|
|
32
|
+
- **Info:** `#06B6D4` (Cyan)
|
|
33
|
+
|
|
34
|
+
## Neutrals (Grays)
|
|
35
|
+
|
|
36
|
+
**Scale:** `#F9FAFB` (50) to `#111827` (900)
|
|
37
|
+
|
|
38
|
+
**Common Uses:**
|
|
39
|
+
- Primary text: Gray-700 (#374151) or Gray-900
|
|
40
|
+
- Secondary text: Gray-600 (#4B5563)
|
|
41
|
+
- Borders: Gray-200 (#E5E7EB) or Gray-300
|
|
42
|
+
- Backgrounds: White, Gray-50, Gray-100
|
|
43
|
+
|
|
44
|
+
## Gradients
|
|
45
|
+
|
|
46
|
+
### Brand Gradient
|
|
47
|
+
```css
|
|
48
|
+
background: linear-gradient(135deg, #1CB9ED 0%, #1CB9ED 40%, #4A3ECD 70%, #9060EA 100%);
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Hero Gradient
|
|
52
|
+
```css
|
|
53
|
+
background: linear-gradient(135deg, #1CB9ED 0%, #1CB9ED 35%, #4A3ECD 65%, #9060EA 100%);
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Accessibility
|
|
57
|
+
|
|
58
|
+
All combinations meet WCAG AA minimum (AAA preferred):
|
|
59
|
+
- Normal text: 4.5:1 minimum (7:1 target)
|
|
60
|
+
- Large text: 3:1 minimum (4.5:1 target)
|
|
61
|
+
- UI components: 3:1 minimum
|
|
62
|
+
|
|
63
|
+
**White text on:**
|
|
64
|
+
- Primary-500+: ✅ AAA (7.5:1)
|
|
65
|
+
- Secondary-600+: ✅ AA (4.7:1)
|
|
66
|
+
- Dark Purple-700+: ✅ AAA (10:1+)
|
|
67
|
+
|
|
68
|
+
**Black text on:**
|
|
69
|
+
- Gray-50 to Gray-300: ✅ AAA (8:1+)
|
|
70
|
+
- Primary-50 to Primary-400: ✅ AAA (7:1+)
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# OSSA Typography Guidelines
|
|
2
|
+
|
|
3
|
+
> Version 1.0.0 | Last Updated: November 2025
|
|
4
|
+
|
|
5
|
+
## Font Families
|
|
6
|
+
|
|
7
|
+
### Primary: Inter (Sans-serif)
|
|
8
|
+
**Usage:** UI, headings, body text, marketing
|
|
9
|
+
**Weights:** 400 (Regular), 500 (Medium), 600 (Semi-Bold), 700 (Bold), 800 (Extra-Bold)
|
|
10
|
+
**Why:** Exceptional legibility, optimized for screens, 200+ languages
|
|
11
|
+
|
|
12
|
+
### Monospace: JetBrains Mono
|
|
13
|
+
**Usage:** Code blocks, inline code, technical content
|
|
14
|
+
**Weights:** 400 (Regular), 500 (Medium), 600 (Semi-Bold)
|
|
15
|
+
**Why:** Developer-focused, excellent ligatures, clear character distinction
|
|
16
|
+
|
|
17
|
+
## Type Scale
|
|
18
|
+
|
|
19
|
+
| Element | Size | Line Height | Weight | Color |
|
|
20
|
+
|---------|------|-------------|--------|-------|
|
|
21
|
+
| **Display** | 72px (4.5rem) | 1.1 | 800 | Gray-900 or Gradient |
|
|
22
|
+
| **H1** | 56px (3.5rem) | 1.2 | 700 | Gray-900 or Primary-500 |
|
|
23
|
+
| **H2** | 40px (2.5rem) | 1.3 | 700 | Gray-900 |
|
|
24
|
+
| **H3** | 32px (2rem) | 1.4 | 600 | Gray-900 |
|
|
25
|
+
| **H4** | 24px (1.5rem) | 1.5 | 600 | Gray-800 |
|
|
26
|
+
| **H5** | 20px (1.25rem) | 1.5 | 600 | Gray-800 |
|
|
27
|
+
| **H6** | 18px (1.125rem) | 1.5 | 600 | Gray-700 |
|
|
28
|
+
| **Body** | 16px (1rem) | 1.6 | 400 | Gray-700 |
|
|
29
|
+
| **Body Large** | 18px (1.125rem) | 1.6 | 400 | Gray-700 |
|
|
30
|
+
| **Small** | 14px (0.875rem) | 1.5 | 400 | Gray-600 |
|
|
31
|
+
| **Extra Small** | 12px (0.75rem) | 1.5 | 400 | Gray-500 |
|
|
32
|
+
|
|
33
|
+
## Letter Spacing
|
|
34
|
+
|
|
35
|
+
- **Display:** -0.02em (tighter for large sizes)
|
|
36
|
+
- **H1:** -0.01em (slightly tighter)
|
|
37
|
+
- **H2-H6, Body:** 0 (normal)
|
|
38
|
+
- **All Caps:** 0.05em (improve readability)
|
|
39
|
+
|
|
40
|
+
## Code Typography
|
|
41
|
+
|
|
42
|
+
### Inline Code
|
|
43
|
+
- Font: JetBrains Mono, 0.875em
|
|
44
|
+
- Color: Primary-700 (#322598)
|
|
45
|
+
- Background: Primary-50 (#F5F4FD)
|
|
46
|
+
- Padding: 0.2em 0.4em
|
|
47
|
+
- Border Radius: 4px
|
|
48
|
+
|
|
49
|
+
### Code Blocks
|
|
50
|
+
- Font: JetBrains Mono, 14px (0.875rem)
|
|
51
|
+
- Color: #D4D4D4 (light gray on dark)
|
|
52
|
+
- Background: #1E1E1E (dark gray)
|
|
53
|
+
- Line Height: 1.6
|
|
54
|
+
- Padding: 16px
|
|
55
|
+
- Border Radius: 8px
|
|
56
|
+
|
|
57
|
+
## Responsive Typography
|
|
58
|
+
|
|
59
|
+
**Mobile (< 768px):**
|
|
60
|
+
- Display: 40px
|
|
61
|
+
- H1: 36px
|
|
62
|
+
- H2: 28px
|
|
63
|
+
|
|
64
|
+
**Tablet (768-1279px):**
|
|
65
|
+
- Display: 56px
|
|
66
|
+
- H1: 48px
|
|
67
|
+
- H2: 32px
|
|
68
|
+
|
|
69
|
+
**Desktop (1280px+):**
|
|
70
|
+
- Use full scale (above)
|
|
71
|
+
|
|
72
|
+
## Accessibility
|
|
73
|
+
|
|
74
|
+
✅ Line height: 1.5 minimum for body (we use 1.6)
|
|
75
|
+
✅ Contrast: All text meets WCAG AA minimum (AAA preferred)
|
|
76
|
+
✅ Font size: Never below 12px (prefer 14px minimum)
|
|
77
|
+
✅ Zoom: Support up to 200% without loss of functionality
|
|
78
|
+
|
|
79
|
+
**Text Contrast:**
|
|
80
|
+
- Primary text: Gray-700 on white (10.5:1 AAA)
|
|
81
|
+
- Secondary text: Gray-600 on white (7.4:1 AAA)
|
|
82
|
+
- Links: Primary-500 on white (6.1:1 AA)
|