Skip to content

Commit c0bd034

Browse files
committed
Merge branch 'main' into dart-sdk
2 parents e9d6aad + e5c7369 commit c0bd034

File tree

224 files changed

+28258
-1609
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

224 files changed

+28258
-1609
lines changed

.github/workflows/dojo-e2e.yml

Lines changed: 107 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,68 @@ on:
88

99
jobs:
1010
e2e:
11-
name: E2E Tests
12-
runs-on: depot-ubuntu-latest-8
11+
name: ${{ matrix.suite }}
12+
runs-on: depot-ubuntu-24.04
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
include:
17+
- suite: adk-middleware
18+
test_path: tests/adkMiddlewareTests
19+
services: ["dojo","adk-middleware"]
20+
wait_on: http://localhost:9999,tcp:localhost:8010
21+
- suite: agno
22+
test_path: tests/agnoTests
23+
services: ["dojo","agno"]
24+
wait_on: http://localhost:9999,tcp:localhost:8002
25+
- suite: crew-ai
26+
test_path: tests/crewAITests
27+
services: ["dojo","crew-ai"]
28+
wait_on: http://localhost:9999,tcp:localhost:8003
29+
- suite: langgraph-python
30+
test_path: tests/langgraphPythonTests
31+
services: ["dojo","langgraph-platform-python"]
32+
wait_on: http://localhost:9999,tcp:localhost:8005
33+
- suite: langgraph-typescript
34+
test_path: tests/langgraphTypescriptTests
35+
services: ["dojo","langgraph-platform-typescript"]
36+
wait_on: http://localhost:9999,tcp:localhost:8006
37+
- suite: langgraph-fastapi
38+
test_path: tests/langgraphFastAPITests
39+
services: ["dojo","langgraph-fastapi"]
40+
wait_on: http://localhost:9999,tcp:localhost:8004
41+
- suite: llama-index
42+
test_path: tests/llamaIndexTests
43+
services: ["dojo","llama-index"]
44+
wait_on: http://localhost:9999,tcp:localhost:8007
45+
- suite: mastra
46+
test_path: tests/mastraTests
47+
services: ["dojo","mastra"]
48+
wait_on: http://localhost:9999,tcp:localhost:8008
49+
- suite: mastra-agent-local
50+
test_path: tests/mastraAgentLocalTests
51+
services: ["dojo"]
52+
wait_on: http://localhost:9999
53+
- suite: middleware-starter
54+
test_path: tests/middlewareStarterTests
55+
services: ["dojo"]
56+
wait_on: http://localhost:9999
57+
- suite: pydantic-ai
58+
test_path: tests/pydanticAITests
59+
services: ["dojo","pydantic-ai"]
60+
wait_on: http://localhost:9999,tcp:localhost:8009
61+
- suite: server-starter
62+
test_path: tests/serverStarterTests
63+
services: ["dojo","server-starter"]
64+
wait_on: http://localhost:9999,tcp:localhost:8000
65+
- suite: server-starter-all
66+
test_path: tests/serverStarterAllFeaturesTests
67+
services: ["dojo","server-starter-all"]
68+
wait_on: http://localhost:9999,tcp:localhost:8001
69+
- suite: vercel-ai-sdk
70+
test_path: tests/vercelAISdkTests
71+
services: ["dojo"]
72+
wait_on: http://localhost:9999
1373

1474
steps:
1575
- name: Checkout code
@@ -25,6 +85,33 @@ jobs:
2585
with:
2686
version: 10.13.1
2787

88+
# Now that pnpm is available, cache its store to speed installs
89+
- name: Resolve pnpm store path
90+
id: pnpm-store
91+
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
92+
93+
- name: Cache pnpm store
94+
uses: actions/cache@v4
95+
with:
96+
path: ${{ env.STORE_PATH }}
97+
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
98+
restore-keys: |
99+
${{ runner.os }}-pnpm-store-
100+
101+
# Cache Python tool caches and virtualenvs; restore only to avoid long saves
102+
- name: Cache Python dependencies (restore-only)
103+
id: cache-python
104+
uses: actions/cache/restore@v4
105+
with:
106+
path: |
107+
~/.cache/pip
108+
~/.cache/pypoetry
109+
~/.cache/uv
110+
**/.venv
111+
key: ${{ runner.os }}-pydeps-${{ hashFiles('**/poetry.lock', '**/pyproject.toml') }}
112+
restore-keys: |
113+
${{ runner.os }}-pydeps-
114+
28115
- name: Install Poetry
29116
uses: snok/install-poetry@v1
30117
with:
@@ -35,21 +122,14 @@ jobs:
35122
- name: Install uv
36123
uses: astral-sh/setup-uv@v6
37124

38-
- name: Setup pnpm cache
39-
uses: actions/cache@v4
40-
with:
41-
path: ~/.local/share/pnpm/store
42-
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
43-
restore-keys: |
44-
${{ runner.os }}-pnpm-store-
45-
46125
- name: Install dependencies
47126
working-directory: typescript-sdk
48127
run: pnpm install --frozen-lockfile
49128

50129
- name: Prepare dojo for e2e
51130
working-directory: typescript-sdk/apps/dojo
52-
run: node ./scripts/prep-dojo-everything.js -e2e
131+
if: ${{ join(matrix.services, ',') != '' }}
132+
run: node ./scripts/prep-dojo-everything.js --only ${{ join(matrix.services, ',') }}
53133

54134
- name: Install e2e dependencies
55135
working-directory: typescript-sdk/apps/dojo/e2e
@@ -61,6 +141,7 @@ jobs:
61141
env:
62142
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
63143
LANGSMITH_API_KEY: ${{ secrets.LANGSMITH_API_KEY }}
144+
if: ${{ contains(join(matrix.services, ','), 'langgraph-fastapi') || contains(join(matrix.services, ','), 'langgraph-platform-python') || contains(join(matrix.services, ','), 'langgraph-platform-typescript') }}
64145
run: |
65146
echo "OPENAI_API_KEY=${OPENAI_API_KEY}" > examples/python/.env
66147
echo "LANGSMITH_API_KEY=${LANGSMITH_API_KEY}" >> examples/python/.env
@@ -74,33 +155,29 @@ jobs:
74155
env:
75156
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
76157
LANGSMITH_API_KEY: ${{ secrets.LANGSMITH_API_KEY }}
158+
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
159+
if: ${{ join(matrix.services, ',') != '' && contains(join(matrix.services, ','), 'dojo') }}
77160
with:
78161
run: |
79-
node ../scripts/run-dojo-everything.js
162+
node ../scripts/run-dojo-everything.js --only ${{ join(matrix.services, ',') }}
80163
working-directory: typescript-sdk/apps/dojo/e2e
81-
wait-on: |
82-
http://localhost:9999
83-
tcp:localhost:8000
84-
tcp:localhost:8001
85-
tcp:localhost:8002
86-
tcp:localhost:8003
87-
tcp:localhost:8004
88-
tcp:localhost:8005
89-
tcp:localhost:8006
90-
tcp:localhost:8007
91-
tcp:localhost:8008
92-
tcp:localhost:8009
93-
94-
- name: Run tests
164+
wait-on: ${{ matrix.wait_on }}
165+
wait-for: 300000
166+
167+
- name: Run tests – ${{ matrix.suite }}
95168
working-directory: typescript-sdk/apps/dojo/e2e
96169
env:
97170
BASE_URL: http://localhost:9999
98-
run: pnpm test
171+
PLAYWRIGHT_SUITE: ${{ matrix.suite }}
172+
run: |
173+
pnpm test -- ${{ matrix.test_path }}
99174
100-
- name: Upload traces
175+
- name: Upload traces – ${{ matrix.suite }}
101176
if: always() # Uploads artifacts even if tests fail
102177
uses: actions/upload-artifact@v4
103178
with:
104-
name: playwright-traces
105-
path: typescript-sdk/apps/dojo/e2e/test-results/
179+
name: ${{ matrix.suite }}-playwright-traces
180+
path: |
181+
typescript-sdk/apps/dojo/e2e/test-results/${{ matrix.suite }}/**/*
182+
typescript-sdk/apps/dojo/e2e/playwright-report/**/*
106183
retention-days: 7

.github/workflows/test.yml

Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -89,33 +89,4 @@ jobs:
8989

9090
- name: Run tests
9191
working-directory: typescript-sdk
92-
run: pnpm run test
93-
94-
dart:
95-
name: Dart SDK Tests
96-
runs-on: ubuntu-latest
97-
98-
steps:
99-
- name: Checkout code
100-
uses: actions/checkout@v4
101-
102-
- name: Set up Dart
103-
uses: dart-lang/setup-dart@v1
104-
with:
105-
sdk: stable
106-
107-
- name: Setup pub cache
108-
uses: actions/cache@v4
109-
with:
110-
path: ~/.pub-cache
111-
key: ${{ runner.os }}-dart-${{ hashFiles('**/pubspec.lock') }}
112-
restore-keys: |
113-
${{ runner.os }}-dart-
114-
115-
- name: Install dependencies
116-
working-directory: sdks/community/dart
117-
run: dart pub get
118-
119-
- name: Run tests
120-
working-directory: sdks/community/dart
121-
run: dart test --reporter expanded
92+
run: pnpm run test

.gitignore

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1+
**/.claude/settings.local.json
12
.vscode/
23
.idea/
3-
4-
# Never commit proompts folder
5-
proompts/

README.md

Lines changed: 25 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ Built for simplicity and flexibility, it enables seamless integration between AI
66

77
---
88

9-
[📅 Upcoming Event: August 6th - AG-UI + Mastra: Build a Project Management Canvas](https://lu.ma/94688z7e)
109

1110
<br>
1211

@@ -15,15 +14,7 @@ Built for simplicity and flexibility, it enables seamless integration between AI
1514
![MIT](https://img.shields.io/github/license/copilotkit/copilotkit?color=%236963ff&label=License)
1615
![Discord](https://img.shields.io/discord/1379082175625953370?logo=discord&logoColor=%23FFFFFF&label=Discord&color=%236963ff)
1716

18-
<a href="https://discord.gg/Jd3FzfdJa8" target="_blank">
19-
Join our Discord →
20-
</a> &nbsp;&nbsp;&nbsp;
21-
<a href="https://ag-ui.com/" target="_blank">
22-
Read the Docs →
23-
</a> &nbsp;&nbsp;&nbsp;
24-
<a href="https://x.com/CopilotKit" target="_blank">
25-
Follow us →
26-
</a>
17+
<a href="https://discord.gg/Jd3FzfdJa8" target="_blank"> Join our Discord → </a> &nbsp;&nbsp;&nbsp; <a href="https://ag-ui.com/" target="_blank"> Read the Docs → </a> &nbsp;&nbsp;&nbsp; <a href="https://dojo.ag-ui.com/" target="_blank"> Go to the AG-UI Dojo → </a> &nbsp;&nbsp;&nbsp; <a href="https://x.com/CopilotKit" target="_blank"> Follow us → </a>
2718

2819
<img width="4096" height="1752" alt="Your application-AG-UI protocol" src="https://github.com/user-attachments/assets/dc58c64c-3257-490a-b827-e163475f4166" />
2920

@@ -32,9 +23,12 @@ Create a new AG-UI application in seconds:
3223
```bash
3324
npx create-ag-ui-app my-agent-app
3425
```
35-
<h3>Building AG-UI Integrations (new frameworks):</h3>
3626

37-
- [Build new integrations (Quickstart)](https://go.copilotkit.ai/agui-contribute)
27+
<h3> Useful Links:</h3>
28+
29+
- [The AG-UI Dojo](https://dojo.ag-ui.com/)
30+
- [Build AG-UI-powered applications(Quickstart)](https://docs.ag-ui.com/quickstart/applications)
31+
- [Build new AG-UI framework integrations (Quickstart)](https://go.copilotkit.ai/agui-contribute)
3832
- [Book a call to discuss an AG-UI integration with a new framework](https://calendly.com/markus-copilotkit/ag-ui)
3933
- [Join the Discord Community](https://discord.gg/Jd3FzfdJa8)
4034

@@ -68,9 +62,8 @@ AG-UI is complementary to the other 2 top agentic protocols
6862
- AG-UI brings agents into user-facing applications
6963

7064
<div align="center">
71-
<img src="https://github.com/user-attachments/assets/0c1ec566-050b-4ef8-ab89-15be41abe64f" />
65+
<img width="2048" height="1182" alt="The Agent Protocol Stack" src="https://github.com/user-attachments/assets/41138f71-50be-4812-98aa-20e0ad595716" />
7266
</div>
73-
7467

7568
## 🚀 Features
7669

@@ -89,19 +82,19 @@ AG-UI was born from CopilotKit's initial partnership with LangGraph and CrewAI -
8982
| Framework | Status | AG-UI Resources | Integrations |
9083
| ------------------------------------------------------------------ | ------------------------ | ---------------------------------------------------------------------------- | ------------------------ |
9184
| No-framework | ✅ Supported | ➡️ Docs coming soon | |
92-
| [LangGraph](https://www.langchain.com/langgraph) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/langgraph/) [Demos](https://dojo.ag-ui.com/langgraph-fastapi/feature/shared_state) | Partnership |
93-
| [CrewAI](https://crewai.com/) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/crewai-flows) [Demos](https://dojo.ag-ui.com/crewai/feature/shared_state) | Partnership |
94-
| [Mastra](https://mastra.ai/) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/mastra/) [Demos](https://dojo.ag-ui.com/mastra/feature/shared_state) | 1st party |
95-
| [AG2](https://ag2.ai/) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/ag2/) [Demos](https://dojo.ag-ui.com/ag2/feature/shared_state) | 1st party |
96-
| [Agno](https://github.com/agno-agi/agno) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/agno/) [Demos](https://dojo.ag-ui.com/agno/feature/shared_state) | 1st party |
97-
| [LlamaIndex](https://github.com/run-llama/llama_index) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/llamaindex/) [Demos](https://dojo.ag-ui.com/llamaindex/feature/shared_state) | 1st party |
98-
| [Pydantic AI](https://github.com/pydantic/pydantic-ai) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/pydantic-ai/) [Demos](https://dojo.ag-ui.com/pydantic-ai/feature/shared_state) | 1st party |
85+
| [LangGraph](https://www.langchain.com/langgraph) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/langgraph/) 🎮 [Demos](https://dojo.ag-ui.com/langgraph-fastapi/feature/shared_state) | Partnership |
86+
| [CrewAI](https://crewai.com/) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/crewai-flows) 🎮 [Demos](https://dojo.ag-ui.com/crewai/feature/shared_state) | Partnership |
87+
| [Mastra](https://mastra.ai/) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/mastra/) 🎮 [Demos](https://dojo.ag-ui.com/mastra) | 1st party |
88+
| [AG2](https://ag2.ai/) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/ag2/) | 1st party |
89+
| [Agno](https://github.com/agno-agi/agno) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/agno/) 🎮 [Demos](https://dojo.ag-ui.com/agno) | 1st party |
90+
| [LlamaIndex](https://github.com/run-llama/llama_index) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/llamaindex/) 🎮 [Demos](https://dojo.ag-ui.com/llamaindex/feature/shared_state) | 1st party |
91+
| [Pydantic AI](https://github.com/pydantic/pydantic-ai) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/pydantic-ai/) 🎮 [Demos](https://dojo.ag-ui.com/pydantic-ai/feature/shared_state) | 1st party |
92+
| [Google ADK](https://google.github.io/adk-docs/get-started/) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/adk) 🎮 [Demos](https://dojo.ag-ui.com/adk-middleware) | Partnership |
93+
| [AWS Bedrock Agents](https://aws.amazon.com/bedrock/agents/) | 🛠️ In Progress || 1st party |
94+
| [AWS Strands Agents](https://github.com/strands-agents/sdk-python) | 🛠️ In Progress || 1st Party |
9995
| [Vercel AI SDK](https://github.com/vercel/ai) | 🛠️ In Progress || Community |
100-
| [Google ADK](https://google.github.io/adk-docs/get-started/) | 🛠️ [PR](https://github.com/ag-ui-protocol/ag-ui/pull/274) || Community |
10196
| [OpenAI Agent SDK](https://openai.github.io/openai-agents-python/) | 🛠️ In Progress || Community |
102-
| [AWS Bedrock Agents](https://aws.amazon.com/bedrock/agents/) | 🛠️ In Progress || 1st party |
10397
| [Cloudflare Agents](https://developers.cloudflare.com/agents/) | 💡 Open to Contributions || Community |
104-
| [Strands Agents SDK](https://github.com/strands-agents/sdk-python) | 💡 Open to Contributions || Community |
10598

10699
[View all supported frameworks →](https://ag-ui.com/frameworks)
107100

@@ -119,8 +112,8 @@ AG-UI was born from CopilotKit's initial partnership with LangGraph and CrewAI -
119112
[View all supported frameworks →](https://ag-ui.com/frameworks)
120113

121114

122-
## ✨ Hello World App
123-
115+
## Examples
116+
### Hello World App
124117

125118
Video:
126119

@@ -130,19 +123,20 @@ https://agui-demo.vercel.app/
130123

131124

132125

133-
## 🧩 AG-UI Showcase: The AG-UI Dojo (Building-Blocks Viewer)
134-
The [AG-UI Dojo](https://dojo.ag-ui.com/langgraph-fastapi/feature/shared_state) showcases many of the building blocks that AG-UI supports ([AG-UI Dojo Source Code](https://github.com/ag-ui-protocol/ag-ui/tree/main/typescript-sdk/apps/dojo)) with each Agent Framework integration.
126+
## The AG-UI Dojo (Building-Blocks Viewer)
127+
The AG-UI Dojo demonstrates AG-UI's core building blocks through simple, focused examples—each just 50-200 lines of code.
128+
129+
View the source code for the Dojo and all framework integrations [here](https://github.com/ag-ui-protocol/ag-ui/tree/main/typescript-sdk/apps/dojo).
135130

136-
The building blocks are designed to be simple and focused -- between 50-200 lines of code.
131+
https://github.com/user-attachments/assets/c298eea8-3f39-4a94-b968-7712429b0c49
137132

138-
https://github.com/user-attachments/assets/a67d3d54-36b2-4c7a-ac69-a0ca01365d5b
139133

140134

141135
## 🙋🏽‍♂️ Contributing to AG-UI
142136

143137
Check out the [Contributing guide](https://github.com/ag-ui-protocol/ag-ui/blob/main/CONTRIBUTING.md)
144138

145-
- **[Weekely AG-UI Working Group](https://lu.ma/CopilotKit?k=c)**
139+
- **[Bi-Weekely AG-UI Working Group](https://lu.ma/CopilotKit?k=c)**
146140
📅 Follow the CopilotKit Luma Events Calendar
147141

148142
## Roadmap

0 commit comments

Comments
 (0)