Skip to content

Commit 7df68ca

Browse files
committed
Merge branch 'main' into mme/multiple-runs
2 parents 4b94c37 + 8442577 commit 7df68ca

File tree

264 files changed

+29895
-24786
lines changed

Some content is hidden

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

264 files changed

+29895
-24786
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Check Generated Files
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
check-files-json:
11+
name: Check files.json
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v4
16+
17+
- name: Regenerate files.json
18+
working-directory: typescript-sdk/apps/dojo
19+
run: npm run generate-content-json
20+
21+
- name: Check files.json
22+
working-directory: typescript-sdk/apps/dojo
23+
run: |
24+
if git diff --exit-code src/files.json > /dev/null; then
25+
echo "✅ No changes detected in dojo/src/files.json. Everything is up to date."
26+
else
27+
echo "❌ Detected changes in dojo/src/files.json."
28+
echo ""
29+
echo "Please run \`(p)npm run generate-content-json\` in the typescript-sdk/apps/dojo folder and commit the changes."
30+
echo ""
31+
echo "The detected diff was as follows:"
32+
echo "::group::Diff for dojo/src/files.json"
33+
git diff src/files.json
34+
echo "::endgroup::"
35+
exit 1
36+
fi
37+
38+

.github/workflows/dojo-e2e.yml

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
name: e2e
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
e2e:
11+
name: E2E Tests
12+
runs-on: depot-ubuntu-latest-8
13+
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v4
17+
18+
- name: Set up Node.js
19+
uses: actions/setup-node@v4
20+
with:
21+
node-version: '22'
22+
23+
- name: Install pnpm
24+
uses: pnpm/action-setup@v4
25+
with:
26+
version: 10.13.1
27+
28+
- name: Install Poetry
29+
uses: snok/install-poetry@v1
30+
with:
31+
version: latest
32+
virtualenvs-create: true
33+
virtualenvs-in-project: true
34+
35+
- name: Install uv
36+
uses: astral-sh/setup-uv@v6
37+
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+
46+
- name: Install dependencies
47+
working-directory: typescript-sdk
48+
run: pnpm install --frozen-lockfile
49+
50+
- name: Prepare dojo for e2e
51+
working-directory: typescript-sdk/apps/dojo
52+
run: node ./scripts/prep-dojo-everything.js -e2e
53+
54+
- name: Install e2e dependencies
55+
working-directory: typescript-sdk/apps/dojo/e2e
56+
run: |
57+
pnpm install
58+
59+
- name: write langgraph env files
60+
working-directory: typescript-sdk/integrations/langgraph
61+
env:
62+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
63+
LANGSMITH_API_KEY: ${{ secrets.LANGSMITH_API_KEY }}
64+
run: |
65+
echo "OPENAI_API_KEY=${OPENAI_API_KEY}" > examples/python/.env
66+
echo "LANGSMITH_API_KEY=${LANGSMITH_API_KEY}" >> examples/python/.env
67+
echo "OPENAI_API_KEY=${OPENAI_API_KEY}" > examples/typescript/.env
68+
echo "LANGSMITH_API_KEY=${LANGSMITH_API_KEY}" >> examples/typescript/.env
69+
echo "OPENAI_API_KEY=${OPENAI_API_KEY}" > python/ag_ui_langgraph/.env
70+
echo "LANGSMITH_API_KEY=${LANGSMITH_API_KEY}" >> python/ag_ui_langgraph/.env
71+
72+
- name: Run dojo+agents
73+
uses: JarvusInnovations/background-action@v1
74+
env:
75+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
76+
LANGSMITH_API_KEY: ${{ secrets.LANGSMITH_API_KEY }}
77+
with:
78+
run: |
79+
node ../scripts/run-dojo-everything.js
80+
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
95+
working-directory: typescript-sdk/apps/dojo/e2e
96+
env:
97+
BASE_URL: http://localhost:9999
98+
run: pnpm test
99+
100+
- name: Upload traces
101+
if: always() # Uploads artifacts even if tests fail
102+
uses: actions/upload-artifact@v4
103+
with:
104+
name: playwright-traces
105+
path: typescript-sdk/apps/dojo/e2e/test-results/
106+
retention-days: 7

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ jobs:
6969
- name: Install pnpm
7070
uses: pnpm/action-setup@v4
7171
with:
72-
version: 9.0.0
72+
version: 10.13.1
7373

7474
- name: Setup pnpm cache
7575
uses: actions/cache@v4

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.vscode/

README.md

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

77
---
88

9-
[📅 Upcoming Event: July 24 - San Francisco AG-UI workshop with AI Tinkerers in person (Feat. CopilotKit & Mastra)](https://lu.ma/ai-tinkerers-workshop?tk=JeUCY5)
9+
[📅 Upcoming Event: August 6th - AG-UI + Mastra: Build a Project Management Canvas](https://lu.ma/94688z7e)
1010

1111
<br>
1212

@@ -29,7 +29,7 @@ Built for simplicity and flexibility, it enables seamless integration between AI
2929

3030
## 🚀 Getting Started
3131
Create a new AG-UI application in seconds:
32-
```ts
32+
```bash
3333
npx create-ag-ui-app my-agent-app
3434
```
3535
<h3>Building AG-UI Integrations (new frameworks):</h3>
@@ -81,39 +81,39 @@ AG-UI is complementary to the other 2 top agentic protocols
8181
- 🛠️ Frontend tool integration
8282
- 🧑‍💻 Human-in-the-loop collaboration
8383

84-
### 1st party integrations with top agentic frameworks
85-
8684

8785
## 🛠 Supported Frameworks
8886

89-
AG-UI integrates with many popular agent frameworks
87+
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.
9088

91-
| Framework | Status | AG-UI Resources | ✅ 1st Party Integration |
89+
| Framework | Status | AG-UI Resources | Integrations |
9290
| ------------------------------------------------------------------ | ------------------------ | ---------------------------------------------------------------------------- | ------------------------ |
93-
| No-framework | ✅ Supported | ➡️ Docs coming soon | |
94-
| [LangGraph](https://www.langchain.com/langgraph) | ✅ Supported | ➡️ [Demo](https://v0-langgraph-land.vercel.app/) | |
95-
| [Mastra](https://mastra.ai/) | ✅ Supported | ➡️ [Demo](https://v0-mastra-land.vercel.app/) | |
96-
| [CrewAI](https://crewai.com/) | ✅ Supported | ➡️ [Demo](https://v0-crew-land.vercel.app/) | |
97-
| [AG2](https://ag2.ai/) | ✅ Supported | ➡️ [Demo](https://v0-ag2-land.vercel.app/) | |
98-
| [Agno](https://github.com/agno-agi/agno) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/agno) | |
99-
| [LlamaIndex](https://github.com/run-llama/llama_index) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/llamaindex) | |
100-
| [Pydantic AI](https://github.com/pydantic/pydantic-ai) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/pydantic-ai) | |
101-
| [Vercel AI SDK](https://github.com/vercel/ai) | 🛠️ In Progress || |
102-
| [Google ADK](https://google.github.io/adk-docs/get-started/) | 🛠️ In Progress || |
103-
| [OpenAI Agent SDK](https://openai.github.io/openai-agents-python/) | 💡 Open to Contributions | | |
104-
| [AWS Bedrock Agents](https://aws.amazon.com/bedrock/agents/) | 💡 Open to Contributions | | |
105-
| [Cloudflare Agents](https://developers.cloudflare.com/agents/) | 💡 Open to Contributions || |
106-
| [Strands Agents SDK](https://github.com/strands-agents/sdk-python) | 💡 Open to Contributions || |
91+
| 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 |
99+
| [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 |
101+
| [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 |
103+
| [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 |
107105

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

110108

111-
| Language SDK | Status | AG-UI Resources |
112-
| ------------------------------------------------------------------ | ------------------------ | ---------------------------------------------------------------------------- |
113-
| [Kotlin]() | 🛠️ In Progress | ➡️ [GitHub Source](https://github.com/Contextable/ag-ui-4k) |
109+
| Language SDK | Status | AG-UI Resources |
110+
| ------------------------------------------------------------------ | ------------------------ | ---------------------------------------------------------------------------- |
111+
| [Kotlin]() | ✅ Supported | ➡️ [GitHub Source](https://github.com/Contextable/ag-ui-4k) |
114112
| [.NET]() | 🛠️ In Progress | ➡️ [PR](https://github.com/ag-ui-protocol/ag-ui/pull/38) |
115113
| [Nim]() | 🛠️ In Progress | ➡️ [PR](https://github.com/ag-ui-protocol/ag-ui/pull/29) |
116114
| [Golang]() | 🛠️ In Progress | ➡️ [Issue](https://github.com/ag-ui-protocol/ag-ui/issues/156) |
115+
| [Rust]() | 🛠️ In Progress | ➡️ [Issue](https://github.com/ag-ui-protocol/ag-ui/issues/239) |
116+
| [Java]() | 🛠️ In Progress | ➡️ [GitHub Source](https://github.com/work-m8/ag-ui-4j) |
117117

118118

119119
[View all supported frameworks →](https://ag-ui.com/frameworks)
@@ -153,4 +153,3 @@ Check out the [AG-UI Roadmap](https://github.com/orgs/ag-ui-protocol/projects/1)
153153
## 📄 License
154154

155155
AG-UI is open source software [licensed as MIT](https://opensource.org/licenses/MIT).
156-
Maintained by [AG Protocol](https://www.agprotocol.ai).

docs/quickstart/clients.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ AG-UI protocol.
1515

1616
Building your own client is useful if you want to explore/hack on the AG-UI
1717
protocol. For production use, use a full-featured client like
18-
[CopilotKit ](https://copilokit.ai).
18+
[CopilotKit](https://copilotkit.ai).
1919

2020
## What you'll build
2121

typescript-sdk/apps/client-cli-example/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
"@ag-ui/core": "workspace:*",
1414
"@ag-ui/mastra": "workspace:*",
1515
"@ai-sdk/openai": "1.3.22",
16-
"@mastra/client-js": "0.10.9",
17-
"@mastra/core": "0.10.10",
18-
"@mastra/libsql": "0.11.0",
19-
"@mastra/loggers": "0.10.3",
20-
"@mastra/memory": "0.11.1",
16+
"@mastra/client-js": "0.10.18",
17+
"@mastra/core": "0.12.1",
18+
"@mastra/libsql": "0.12.0",
19+
"@mastra/loggers": "0.10.5",
20+
"@mastra/memory": "0.12.0",
2121
"open": "^10.1.2",
2222
"zod": "^3.22.4"
2323
},
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
playwright-report/
2+
test-results/
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# CopilotKit Demo Smoke Tests
2+
3+
This repository houses Playwright-based smoke tests that run on a 6-hour schedule to make sure CopilotKit demo apps remain live and functional.
4+
5+
## 🔧 Local development
6+
7+
```bash
8+
# Install deps
9+
npm install
10+
11+
# Install browsers once
12+
npx playwright install --with-deps
13+
14+
# Run the full suite
15+
npm test
16+
```
17+
18+
Playwright HTML reports are saved to `./playwright-report`.
19+
20+
## ➕ Adding a new smoke test
21+
22+
1. Duplicate an existing file in `tests/` or create `tests/<demo>.spec.ts`.
23+
2. Use Playwright's `test` API—keep the test short (<30 s).
24+
3. Commit and push—GitHub Actions will pick it up on the next scheduled run.
25+
26+
## 🚦 CI / CD
27+
28+
- `.github/workflows/scheduled-tests.yml` executes the suite every 6 hours and on manual trigger.
29+
- Failing runs surface in the Actions tab; the HTML report is uploaded as an artifact.
30+
- (Optional) Slack notifications can be wired by adding a step after the tests.
31+
- Slack alert on failure is baked into the workflow. Just add `SLACK_WEBHOOK_URL` (Incoming Webhook) in repo secrets.

0 commit comments

Comments
 (0)