Skip to content

Commit cbeb6c8

Browse files
committed
Merge remote-tracking branch 'origin/main' into tyler/showcase-fix-shelldocs-structure
# Conflicts: # showcase/shell-docs/src/app/[[...slug]]/page.tsx
2 parents 37db1c8 + 6f8ff69 commit cbeb6c8

418 files changed

Lines changed: 36539 additions & 775 deletions

File tree

Some content is hidden

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

.claude/skills/showcase-demo-debugging/SKILL.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
---
22
name: showcase-demo-debugging
33
description: Build, debug, and regression-test CopilotKit showcase demos. Use when working under showcase/, creating new showcase demos/items/cells/pills, implementing showcase features, investigating showcase demo bugs, D5/e2e-deep failures, aimock fixture gaps, direct-LLM versus aimock behavior, recording fixtures, testing every demo pill/cell, verifying repeated and interleaved suggestion-pill fixture stability, enforcing langgraph-python 1:1 parity, or migrating a demo to the v2 CopilotKit showcase flow.
4+
metadata:
5+
internal: true
46
---
57

68
# Showcase Demo Work

.github/config-allowlist.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ showcase/integrations/langroid/next.config.ts
102102
showcase/integrations/llamaindex/next.config.ts
103103
showcase/integrations/mastra/next.config.ts
104104
showcase/integrations/ms-agent-dotnet/next.config.ts
105+
showcase/integrations/ms-agent-harness-dotnet/next.config.ts
105106
showcase/integrations/ms-agent-python/next.config.ts
106107
showcase/integrations/pydantic-ai/next.config.ts
107108
showcase/integrations/spring-ai/next.config.ts

.github/workflows/prerelease.yml

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,24 @@ jobs:
7474
- name: Run tests
7575
run: pnpm run test
7676

77+
# Exclude node_modules and build caches from the artifact. Including
78+
# them produces ~6M files for this monorepo, which OOMs
79+
# upload-artifact's Node process at its 4GB heap limit during
80+
# enumeration (each pnpm symlink resolves to a separate entry, and
81+
# the action holds the full manifest in memory before streaming).
82+
# The publish job runs `pnpm install --frozen-lockfile` after
83+
# download to restore node_modules from pnpm-lock.yaml — mirrors
84+
# publish-release.yml.
7785
- name: Upload workspace
7886
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
7987
with:
8088
name: workspace
81-
path: .
89+
path: |
90+
.
91+
!**/node_modules/**
92+
!**/.next/**
93+
!**/.turbo/**
94+
!**/.nx/**
8295
include-hidden-files: true
8396
retention-days: 1
8497

@@ -107,6 +120,14 @@ jobs:
107120
node-version: 22.x
108121
registry-url: https://registry.npmjs.org
109122

123+
# Restore node_modules — the build job excludes them from the
124+
# uploaded workspace artifact (see "Upload workspace" above). Uses
125+
# pnpm-lock.yaml from the artifact, so this is a deterministic
126+
# restore of exactly what the build job ran with. `pnpm tsx` in the
127+
# publish step below requires tsx to be installed locally.
128+
- name: Install Dependencies
129+
run: pnpm install --frozen-lockfile
130+
110131
- name: Publish prerelease
111132
env:
112133
NODE_AUTH_TOKEN: ""

.github/workflows/showcase_build.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ on:
4343
- ms-agent-python
4444
- claude-sdk-typescript
4545
- ms-agent-dotnet
46+
- ms-agent-harness-dotnet
4647
- claude-sdk-python
4748
- built-in-agent
4849
- shell-dojo
@@ -124,6 +125,8 @@ jobs:
124125
- 'showcase/integrations/claude-sdk-typescript/**'
125126
ms_agent_dotnet:
126127
- 'showcase/integrations/ms-agent-dotnet/**'
128+
ms_agent_harness_dotnet:
129+
- 'showcase/integrations/ms-agent-harness-dotnet/**'
127130
claude_sdk_python:
128131
- 'showcase/integrations/claude-sdk-python/**'
129132
built_in_agent:
@@ -187,6 +190,7 @@ jobs:
187190
{"dispatch_name":"ms-agent-python","filter_key":"ms_agent_python","context":"showcase/integrations/ms-agent-python","image":"showcase-ms-agent-python","railway_id":"655db75a-af8d-427d-a4f9-441570ae5003","timeout":15,"lfs":false,"build_args":"","dockerfile":"","health_path":"/api/health"},
188191
{"dispatch_name":"claude-sdk-typescript","filter_key":"claude_sdk_typescript","context":"showcase/integrations/claude-sdk-typescript","image":"showcase-claude-sdk-typescript","railway_id":"18a98727-5700-44aa-b497-b60795dbbd6a","timeout":15,"lfs":false,"build_args":"","dockerfile":"","health_path":"/api/health"},
189192
{"dispatch_name":"ms-agent-dotnet","filter_key":"ms_agent_dotnet","context":"showcase/integrations/ms-agent-dotnet","image":"showcase-ms-agent-dotnet","railway_id":"beeb2dd6-87a4-4599-aa07-0578f7bd6519","timeout":15,"lfs":false,"build_args":"","dockerfile":"","health_path":"/api/health"},
193+
{"dispatch_name":"ms-agent-harness-dotnet","filter_key":"ms_agent_harness_dotnet","context":"showcase/integrations/ms-agent-harness-dotnet","image":"showcase-ms-agent-harness-dotnet","railway_id":"6343d7f9-6c3f-4c8d-9a6e-79f03d2f1e37","timeout":15,"lfs":false,"build_args":"","dockerfile":"","health_path":"/api/health"},
190194
{"dispatch_name":"claude-sdk-python","filter_key":"claude_sdk_python","context":"showcase/integrations/claude-sdk-python","image":"showcase-claude-sdk-python","railway_id":"b122ab65-9854-4cb2-a68e-b50ff13f7481","timeout":15,"lfs":false,"build_args":"","dockerfile":"","health_path":"/api/health"},
191195
{"dispatch_name":"built-in-agent","filter_key":"built_in_agent","context":"showcase/integrations/built-in-agent","image":"showcase-built-in-agent","railway_id":"f4f8371a-bc46-45b2-b6d4-9c9af608bdbf","timeout":15,"lfs":false,"build_args":"","dockerfile":"","health_path":"/api/health"},
192196
{"dispatch_name":"shell-dojo","filter_key":"shell_dojo","context":".","image":"showcase-shell-dojo","railway_id":"7ad1ece7-2228-49cd-8a78-bddf30322907","timeout":10,"lfs":false,"build_args":"","dockerfile":"showcase/shell-dojo/Dockerfile","health_path":"/"},
@@ -304,7 +308,7 @@ jobs:
304308
uses: depot/setup-action@15c09a5f77a0840ad4bce955686522a257853461 # v1
305309

306310
- name: Login to GHCR
307-
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
311+
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
308312
with:
309313
registry: ghcr.io
310314
username: ${{ github.actor }}
@@ -397,7 +401,7 @@ jobs:
397401
done
398402
399403
- name: Build and push
400-
uses: depot/build-push-action@5f3b3c2e5a00f0093de47f657aeaefcedff27d18 # v1
404+
uses: depot/build-push-action@98e78adca7817480b8185f474a400b451d74e287 # v1.18.0
401405
with:
402406
project: m2kw2wmmcp
403407
context: ${{ matrix.service.context }}

.github/workflows/showcase_build_check.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ jobs:
7878
- 'showcase/integrations/claude-sdk-typescript/**'
7979
ms_agent_dotnet:
8080
- 'showcase/integrations/ms-agent-dotnet/**'
81+
ms_agent_harness_dotnet:
82+
- 'showcase/integrations/ms-agent-harness-dotnet/**'
8183
claude_sdk_python:
8284
- 'showcase/integrations/claude-sdk-python/**'
8385
built_in_agent:
@@ -141,6 +143,7 @@ jobs:
141143
{"dispatch_name":"ms-agent-python","filter_key":"ms_agent_python","context":"showcase/integrations/ms-agent-python","image":"showcase-ms-agent-python","timeout":15,"lfs":false,"build_args":"","dockerfile":""},
142144
{"dispatch_name":"claude-sdk-typescript","filter_key":"claude_sdk_typescript","context":"showcase/integrations/claude-sdk-typescript","image":"showcase-claude-sdk-typescript","timeout":15,"lfs":false,"build_args":"","dockerfile":""},
143145
{"dispatch_name":"ms-agent-dotnet","filter_key":"ms_agent_dotnet","context":"showcase/integrations/ms-agent-dotnet","image":"showcase-ms-agent-dotnet","timeout":15,"lfs":false,"build_args":"","dockerfile":""},
146+
{"dispatch_name":"ms-agent-harness-dotnet","filter_key":"ms_agent_harness_dotnet","context":"showcase/integrations/ms-agent-harness-dotnet","image":"showcase-ms-agent-harness-dotnet","timeout":15,"lfs":false,"build_args":"","dockerfile":""},
144147
{"dispatch_name":"claude-sdk-python","filter_key":"claude_sdk_python","context":"showcase/integrations/claude-sdk-python","image":"showcase-claude-sdk-python","timeout":15,"lfs":false,"build_args":"","dockerfile":""},
145148
{"dispatch_name":"built-in-agent","filter_key":"built_in_agent","context":"showcase/integrations/built-in-agent","image":"showcase-built-in-agent","timeout":15,"lfs":false,"build_args":"","dockerfile":""},
146149
{"dispatch_name":"shell-dojo","filter_key":"shell_dojo","context":".","image":"showcase-shell-dojo","timeout":10,"lfs":false,"build_args":"","dockerfile":"showcase/shell-dojo/Dockerfile"},
@@ -261,7 +264,7 @@ jobs:
261264
done
262265
263266
- name: Build Docker image (no push)
264-
uses: depot/build-push-action@5f3b3c2e5a00f0093de47f657aeaefcedff27d18 # v1
267+
uses: depot/build-push-action@98e78adca7817480b8185f474a400b451d74e287 # v1.18.0
265268
with:
266269
project: m2kw2wmmcp
267270
context: ${{ matrix.service.context }}

.github/workflows/showcase_deploy.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ on:
4141
- ms-agent-python
4242
- claude-sdk-typescript
4343
- ms-agent-dotnet
44+
- ms-agent-harness-dotnet
4445
- claude-sdk-python
4546
- built-in-agent
4647
- shell-dojo
@@ -110,6 +111,7 @@ jobs:
110111
{"dispatch_name":"ms-agent-python","railway_id":"655db75a-af8d-427d-a4f9-441570ae5003","health_path":"/api/health"},
111112
{"dispatch_name":"claude-sdk-typescript","railway_id":"18a98727-5700-44aa-b497-b60795dbbd6a","health_path":"/api/health"},
112113
{"dispatch_name":"ms-agent-dotnet","railway_id":"beeb2dd6-87a4-4599-aa07-0578f7bd6519","health_path":"/api/health"},
114+
{"dispatch_name":"ms-agent-harness-dotnet","railway_id":"6343d7f9-6c3f-4c8d-9a6e-79f03d2f1e37","health_path":"/api/health"},
113115
{"dispatch_name":"claude-sdk-python","railway_id":"b122ab65-9854-4cb2-a68e-b50ff13f7481","health_path":"/api/health"},
114116
{"dispatch_name":"built-in-agent","railway_id":"f4f8371a-bc46-45b2-b6d4-9c9af608bdbf","health_path":"/api/health"},
115117
{"dispatch_name":"shell-dojo","railway_id":"7ad1ece7-2228-49cd-8a78-bddf30322907","health_path":"/"},

.github/workflows/showcase_eval-webhook_build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
persist-credentials: false
2222

2323
- name: Log in to GHCR
24-
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
24+
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
2525
with:
2626
registry: ghcr.io
2727
username: ${{ github.actor }}

.github/workflows/showcase_keep-alive.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ jobs:
4444
- llamaindex
4545
- mastra
4646
- ms-agent-dotnet
47+
- ms-agent-harness-dotnet
4748
- ms-agent-python
4849
- pydantic-ai
4950
- spring-ai

.oxlintrc.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@
2828
"unicorn/prefer-array-flat-map": "warn"
2929
},
3030
"overrides": [
31+
{
32+
"files": ["packages/**/*.{ts,tsx}"],
33+
"rules": {
34+
"copilotkit/no-single-arg-zod-record": "error"
35+
}
36+
},
3137
{
3238
"files": ["packages/**/*.{ts,tsx}", "examples/**/*.{ts,tsx}"],
3339
"rules": {

lefthook.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,15 @@ pre-commit:
2929
# still invokes this hook with an empty expansion, and oxlint/oxfmt
3030
# would default to operating on the current directory, defeating the
3131
# scoping entirely. stage_fixed re-stages whatever the hooks modify.
32-
glob: "*.{js,jsx,ts,tsx,mjs,cjs,json,jsonc,json5,md,css,yml,yaml,html,vue,py}"
32+
# Intentionally excludes json/jsonc/json5: oxfmt --write rewrites JSON
33+
# files into JSON5 syntax (4-space indent, trailing commas, compact
34+
# objects) when invoked via lefthook with staged file paths. The result
35+
# is invalid strict JSON that pnpm rejects with ERR_PNPM_JSON_PARSE,
36+
# blocking every commit that touches a package.json (see PRs #5054,
37+
# #5055). JSON formatting is owned by pnpm/manual editing; oxfmt has
38+
# no per-file knobs to keep package.json valid, so the only safe fix
39+
# is to keep .json* out of this hook entirely.
40+
glob: "*.{js,jsx,ts,tsx,mjs,cjs,md,css,yml,yaml,html,vue,py}"
3341
# Mirror the ignorePatterns in .oxlintrc.json / .oxfmtrc.json at the
3442
# hook layer. Without this, a docs-only commit expands {staged_files}
3543
# to a single docs/** path; oxlint silently processes 0 files, then

0 commit comments

Comments
 (0)