Skip to content

Commit 99f5e68

Browse files
committed
Revert
1 parent 0d04958 commit 99f5e68

File tree

160 files changed

+2695
-5671
lines changed

Some content is hidden

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

160 files changed

+2695
-5671
lines changed

.github/workflows/dojo-e2e.yml

Lines changed: 98 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,60 @@ 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: agno
18+
test_path: tests/agnoTests
19+
services: ["dojo","agno"]
20+
wait_on: http://localhost:9999,tcp:localhost:8002
21+
- suite: crew-ai
22+
test_path: tests/crewAITests
23+
services: ["dojo","crew-ai"]
24+
wait_on: http://localhost:9999,tcp:localhost:8003
25+
- suite: langgraph
26+
test_path: tests/langgraphTests
27+
services: ["dojo","langgraph-platform-python","langgraph-platform-typescript"]
28+
wait_on: http://localhost:9999,tcp:localhost:8005,tcp:localhost:8006
29+
- suite: langgraph-fastapi
30+
test_path: tests/langgraphFastAPITests
31+
services: ["dojo","langgraph-fastapi"]
32+
wait_on: http://localhost:9999,tcp:localhost:8004
33+
- suite: llama-index
34+
test_path: tests/llamaIndexTests
35+
services: ["dojo","llama-index"]
36+
wait_on: http://localhost:9999,tcp:localhost:8007
37+
- suite: mastra
38+
test_path: tests/mastraTests
39+
services: ["dojo","mastra"]
40+
wait_on: http://localhost:9999,tcp:localhost:8008
41+
- suite: mastra-agent-local
42+
test_path: tests/mastraAgentLocalTests
43+
services: ["dojo"]
44+
wait_on: http://localhost:9999
45+
- suite: middleware-starter
46+
test_path: tests/middlewareStarterTests
47+
services: ["dojo"]
48+
wait_on: http://localhost:9999
49+
- suite: pydantic-ai
50+
test_path: tests/pydanticAITests
51+
services: ["dojo","pydantic-ai"]
52+
wait_on: http://localhost:9999,tcp:localhost:8009
53+
- suite: server-starter
54+
test_path: tests/serverStarterTests
55+
services: ["dojo","server-starter"]
56+
wait_on: http://localhost:9999,tcp:localhost:8000
57+
- suite: server-starter-all
58+
test_path: tests/serverStarterAllFeaturesTests
59+
services: ["dojo","server-starter-all"]
60+
wait_on: http://localhost:9999,tcp:localhost:8001
61+
- suite: vercel-ai-sdk
62+
test_path: tests/vercelAISdkTests
63+
services: ["dojo"]
64+
wait_on: http://localhost:9999
1365

1466
steps:
1567
- name: Checkout code
@@ -25,6 +77,33 @@ jobs:
2577
with:
2678
version: 10.13.1
2779

80+
# Now that pnpm is available, cache its store to speed installs
81+
- name: Resolve pnpm store path
82+
id: pnpm-store
83+
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
84+
85+
- name: Cache pnpm store
86+
uses: actions/cache@v4
87+
with:
88+
path: ${{ env.STORE_PATH }}
89+
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
90+
restore-keys: |
91+
${{ runner.os }}-pnpm-store-
92+
93+
# Cache Python tool caches and virtualenvs; restore only to avoid long saves
94+
- name: Cache Python dependencies (restore-only)
95+
id: cache-python
96+
uses: actions/cache/restore@v4
97+
with:
98+
path: |
99+
~/.cache/pip
100+
~/.cache/pypoetry
101+
~/.cache/uv
102+
**/.venv
103+
key: ${{ runner.os }}-pydeps-${{ hashFiles('**/poetry.lock', '**/pyproject.toml') }}
104+
restore-keys: |
105+
${{ runner.os }}-pydeps-
106+
28107
- name: Install Poetry
29108
uses: snok/install-poetry@v1
30109
with:
@@ -35,21 +114,14 @@ jobs:
35114
- name: Install uv
36115
uses: astral-sh/setup-uv@v6
37116

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-
46117
- name: Install dependencies
47118
working-directory: typescript-sdk
48119
run: pnpm install --frozen-lockfile
49120

50121
- name: Prepare dojo for e2e
51122
working-directory: typescript-sdk/apps/dojo
52-
run: node ./scripts/prep-dojo-everything.js -e2e
123+
if: ${{ join(matrix.services, ',') != '' }}
124+
run: node ./scripts/prep-dojo-everything.js --only ${{ join(matrix.services, ',') }}
53125

54126
- name: Install e2e dependencies
55127
working-directory: typescript-sdk/apps/dojo/e2e
@@ -61,6 +133,7 @@ jobs:
61133
env:
62134
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
63135
LANGSMITH_API_KEY: ${{ secrets.LANGSMITH_API_KEY }}
136+
if: ${{ contains(join(matrix.services, ','), 'langgraph-fastapi') || contains(join(matrix.services, ','), 'langgraph-platform-python') || contains(join(matrix.services, ','), 'langgraph-platform-typescript') }}
64137
run: |
65138
echo "OPENAI_API_KEY=${OPENAI_API_KEY}" > examples/python/.env
66139
echo "LANGSMITH_API_KEY=${LANGSMITH_API_KEY}" >> examples/python/.env
@@ -74,33 +147,28 @@ jobs:
74147
env:
75148
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
76149
LANGSMITH_API_KEY: ${{ secrets.LANGSMITH_API_KEY }}
150+
if: ${{ join(matrix.services, ',') != '' && contains(join(matrix.services, ','), 'dojo') }}
77151
with:
78152
run: |
79-
node ../scripts/run-dojo-everything.js
153+
node ../scripts/run-dojo-everything.js --only ${{ join(matrix.services, ',') }}
80154
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
155+
wait-on: ${{ matrix.wait_on }}
156+
wait-for: 300000
157+
158+
- name: Run tests – ${{ matrix.suite }}
95159
working-directory: typescript-sdk/apps/dojo/e2e
96160
env:
97161
BASE_URL: http://localhost:9999
98-
run: pnpm test
162+
PLAYWRIGHT_SUITE: ${{ matrix.suite }}
163+
run: |
164+
pnpm test -- ${{ matrix.test_path }}
99165
100-
- name: Upload traces
166+
- name: Upload traces – ${{ matrix.suite }}
101167
if: always() # Uploads artifacts even if tests fail
102168
uses: actions/upload-artifact@v4
103169
with:
104-
name: playwright-traces
105-
path: typescript-sdk/apps/dojo/e2e/test-results/
170+
name: ${{ matrix.suite }}-playwright-traces
171+
path: |
172+
typescript-sdk/apps/dojo/e2e/test-results/${{ matrix.suite }}/**/*
173+
typescript-sdk/apps/dojo/e2e/playwright-report/**/*
106174
retention-days: 7

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1+
**/.claude/settings.local.json
12
.vscode/
3+
.idea/

README.md

Lines changed: 14 additions & 16 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

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

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

7573
## 🚀 Features
7674

@@ -86,22 +84,22 @@ AG-UI is complementary to the other 2 top agentic protocols
8684

8785
AG-UI was born from CopilotKit's initial partnership with LangGraph and CrewAI - and brings the incredibly popular agent-user-interactivity infrastructure to the wider agentic ecosystem.
8886

89-
| Framework | Status | AG-UI Resources | Integrations |
87+
| Framework | Status | AG-UI Resources | Integrations |
9088
| ------------------------------------------------------------------ | ------------------------ | ---------------------------------------------------------------------------- | ------------------------ |
9189
| No-framework | ✅ Supported | ➡️ Docs coming soon | |
92-
| [LangGraph](https://www.langchain.com/langgraph) | ✅ Supported | ➡️ [Demo](https://v0-langgraph-land.vercel.app/) | Partnership |
93-
| [CrewAI](https://crewai.com/) | ✅ Supported | ➡️ [Demo](https://v0-crew-land.vercel.app/) | Partnership |
94-
| [Mastra](https://mastra.ai/) | ✅ Supported | ➡️ [Demo](https://v0-mastra-land.vercel.app/) | 1st party |
95-
| [AG2](https://ag2.ai/) | ✅ Supported | ➡️ [Demo](https://v0-ag2-land.vercel.app/) | 1st party |
96-
| [Agno](https://github.com/agno-agi/agno) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/agno) | 1st party |
97-
| [LlamaIndex](https://github.com/run-llama/llama_index) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/llamaindex) | 1st party |
98-
| [Pydantic AI](https://github.com/pydantic/pydantic-ai) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/pydantic-ai) | 1st party |
90+
| [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 |
91+
| [CrewAI](https://crewai.com/) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/crewai-flows) [Demos](https://dojo.ag-ui.com/crewai/feature/shared_state) | Partnership |
92+
| [Mastra](https://mastra.ai/) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/mastra/) [Demos](https://dojo.ag-ui.com/mastra/feature/shared_state) | 1st party |
93+
| [AG2](https://ag2.ai/) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/ag2/) [Demos](https://dojo.ag-ui.com/ag2/feature/shared_state) | 1st party |
94+
| [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 |
95+
| [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 |
96+
| [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 |
97+
| [Google ADK](https://google.github.io/adk-docs/get-started/) | 🛠️ [PR](https://github.com/ag-ui-protocol/ag-ui/pull/274) || 1st party |
98+
| [AWS Bedrock Agents](https://aws.amazon.com/bedrock/agents/) | 🛠️ In Progress || 1st party |
99+
| [AWS Strands Agents](https://github.com/strands-agents/sdk-python) | 🛠️ In Progress || 1st Party |
99100
| [Vercel AI SDK](https://github.com/vercel/ai) | 🛠️ In Progress || Community |
100-
| [Google ADK](https://google.github.io/adk-docs/get-started/) | 🛠️ In Progress || Community |
101101
| [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 |
103102
| [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 |
105103

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

@@ -131,7 +129,7 @@ https://agui-demo.vercel.app/
131129

132130

133131
## 🧩 AG-UI Showcase: The AG-UI Dojo (Building-Blocks Viewer)
134-
The [AG-UI Dojo](https://copilotkit-feature-viewer.vercel.app/) 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)).
132+
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.
135133

136134
The building blocks are designed to be simple and focused -- between 50-200 lines of code.
137135

@@ -142,7 +140,7 @@ https://github.com/user-attachments/assets/a67d3d54-36b2-4c7a-ac69-a0ca01365d5b
142140

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

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

148146
## Roadmap

docs/concepts/events.mdx

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,10 @@ for an incoming message, such as creating a new message bubble with a loading
194194
indicator. The `role` property identifies whether the message is coming from the
195195
assistant or potentially another participant in the conversation.
196196

197-
| Property | Description |
198-
| ----------- | ---------------------------------------------- |
199-
| `messageId` | Unique identifier for the message |
200-
| `role` | Role of the message sender (e.g., "assistant") |
197+
| Property | Description |
198+
| ----------- | --------------------------------------------------------------------------------- |
199+
| `messageId` | Unique identifier for the message |
200+
| `role` | Role of the message sender ("developer", "system", "assistant", "user", "tool") |
201201

202202
### TextMessageContent
203203

@@ -231,6 +231,22 @@ automatic scrolling to ensure the full message is visible.
231231
| ----------- | -------------------------------------- |
232232
| `messageId` | Matches the ID from `TextMessageStart` |
233233

234+
### TextMessageChunk
235+
236+
A self-contained text message event that combines start, content, and end.
237+
238+
The `TextMessageChunk` event provides a convenient way to send complete text messages
239+
in a single event instead of the three-event sequence (start, content, end). This is
240+
particularly useful for simple messages or when the entire content is available at once.
241+
The event includes both the message metadata and content, making it more efficient for
242+
non-streaming scenarios.
243+
244+
| Property | Description |
245+
| ----------- | ------------------------------------------------------------------------------------- |
246+
| `messageId` | Optional unique identifier for the message |
247+
| `role` | Optional role of the sender ("developer", "system", "assistant", "user", "tool") |
248+
| `delta` | Optional text content of the message |
249+
234250
## Tool Call Events
235251

236252
These events represent the lifecycle of tool calls made by agents. Tool calls

docs/development/roadmap.mdx

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,11 @@ title: Roadmap
33
description: Our plans for evolving Agent User Interaction Protocol
44
---
55

6-
The Agent User Interaction Protocol is rapidly evolving. This page outlines our
7-
current thinking on key priorities and future direction.
8-
9-
<Note>
10-
The ideas presented here are not commitments—we may solve these challenges
11-
differently than described, or some may not materialize at all. This is also
12-
not an _exhaustive_ list; we may incorporate work that isn't mentioned here.
13-
</Note>
6+
You can follow the progress of the AG-UI Protocol on our
7+
[public roadmap](https://github.com/orgs/ag-ui-protocol/projects/1).
148

159
## Get Involved
1610

17-
We welcome community participation in shaping AG-UI's future. Visit our
18-
[GitHub Discussions](https://github.com/orgs/ag-ui-protocol/discussions) to join
19-
the conversation and contribute your ideas.
11+
If you’d like to contribute ideas, feature requests, or bug reports to
12+
the roadmap, please see the [Contributing Guide](https://github.com/ag-ui-protocol/ag-ui/blob/main/CONTRIBUTING.md)
13+
for details on how to get involved.

docs/introduction.mdx

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,13 @@ AG-UI provides:
2929
AG-UI has been integrated with several popular agent frameworks, making it easy
3030
to adopt regardless of your preferred tooling:
3131

32-
- **[LangGraph](https://docs.copilotkit.ai/coagents)**: Build agent-native
33-
applications with shared state and human-in-the-loop workflows using
34-
LangGraph's powerful orchestration capabilities.
35-
- **[CrewAI Flows](https://docs.copilotkit.ai/crewai-flows)**: Create sequential
36-
multi-agent workflows with well-defined stages and process control.
37-
- **[CrewAI Crews](https://docs.copilotkit.ai/crewai-crews)**: Design
38-
collaborative agent teams with specialized roles and inter-agent
39-
communication.
40-
- **[Mastra](/mastra)**: Leverage TypeScript for building strongly-typed agent
41-
implementations with enhanced developer experience.
32+
- **[LangGraph](https://docs.copilotkit.ai/coagents)**: Build agent-native applications with shared state and human-in-the-loop workflows using LangGraph's powerful orchestration capabilities.
33+
- **[Mastra](/mastra)**: Leverage TypeScript for building strongly-typed agent implementations with enhanced developer experience.
34+
- **[Pydantic AI](https://docs.copilotkit.ai/pydantic-ai)**: Painlessly build production grade agentic applications and workflows using fully type-safe Python.
35+
- **[CrewAI Flows](https://docs.copilotkit.ai/crewai-flows)**: Create sequential multi-agent workflows with well-defined stages and process control.
36+
- **[CrewAI Crews](https://docs.copilotkit.ai/crewai-crews)**: Design collaborative agent teams with specialized roles and inter-agent communication.
37+
- **[Agno](https://docs.copilotkit.ai/agno)**: Build, run and manage secure multi-agent systems in your cloud with Agno's AgentOS.
38+
- **[LlamaIndex](https://docs.copilotkit.ai/llamaindex)**: A simple, flexible framework for building agentic generative AI applications that allow large language models to work with your data in any format.
4239
- **[AG2](/ag2)**: Utilize the open-source AgentOS for scalable,
4340
production-ready agent deployments.
4441

0 commit comments

Comments
 (0)