Commit Graph

11487 Commits

Author SHA1 Message Date
Jordan Ritter 914db1288b fix(showcase): bump ms-agent-python @ag-ui/* to 0.0.55
(cherry picked from commit 6254bdad0b54a7930334129c715a1f18176fb094)
2026-06-10 07:06:30 -07:00
Jordan Ritter c99e240bbc fix(showcase): bump claude-sdk-typescript @ag-ui/* to 0.0.55
(cherry picked from commit 9996a01c17432d2a5fc508884156ffad11269c4b)
2026-06-10 07:06:30 -07:00
Jordan Ritter 7e0adf1b44 fix(showcase): bump strands @ag-ui/* to 0.0.55
(cherry picked from commit 30540f6c7ae1bef7b1ada449e9d0c83782b438d0)
2026-06-10 07:06:29 -07:00
Jordan Ritter 860f9fd19e fix(showcase): bump pydantic-ai @ag-ui/* to 0.0.55
(cherry picked from commit 4aa62ca567d8150c50309ca5290dcdc91f2f6c71)
2026-06-10 07:06:29 -07:00
Jordan Ritter 589bf36310 fix(showcase): bump claude-sdk-python @ag-ui/* to 0.0.55
(cherry picked from commit 776e91445a7ca47f584f9ca75a22754b1302c91b)
2026-06-10 07:06:29 -07:00
Jordan Ritter 37d4a35b69 fix(showcase): bump agno @ag-ui/* to 0.0.55
(cherry picked from commit befb301b086e87b1d3317f78301fac1232945240)
2026-06-10 07:06:29 -07:00
Jordan Ritter a628a166d3 fix(showcase): bump llamaindex @ag-ui/* to 0.0.55
(cherry picked from commit d22f7e6ab585fa77c31d7f6b567a296b3e815a29)
2026-06-10 07:06:29 -07:00
Ran Shemtov 692698b27e feat(a2ui): adopt new A2UIToolParams API + bump @ag-ui deps (OSS-248) (#5339)
## What

Adopts the new `ag-ui-langgraph` single-arg tool-factory API in
CopilotKit's LangGraph middlewares, and upgrades the `@ag-ui/*`
dependencies to the latest published releases.

Counterpart to ag-ui-protocol/ag-ui#1894 (OSS-248: re-enable A2UI
generation & design guidelines via the shared `A2UIToolParams` bag).

## Commits

1. **`feat(a2ui): use new ag-ui single-arg A2UIToolParams API`**
- sdk-python + sdk-js middleware: `get_a2ui_tools`/`getA2UITools` now
take a single `A2UIToolParams` object (model inside);
`composition_guide` folds into the `guidelines` bag.
- Guarded `A2UIToolParams` import (py); typed import (ts). a2ui test
skip-reason wording.
- Pins: `@ag-ui/langgraph 0.0.40` (js, the release carrying the new
API), `ag-ui-langgraph >=0.0.41` (py).

2. **`chore(deps): use latest @ag-ui packages and langgraph
integration`**
- `@ag-ui/core`, `@ag-ui/client`: `0.0.53 → 0.0.56` across all packages
+ root pnpm override.
- `@ag-ui/langgraph` (runtime): `0.0.39 → 0.0.40`. `ag-ui-protocol
>=0.1.19`.
- `.npmrc`: exclude first-party `@ag-ui/{core,client,encoder,proto}`
from the minimum-release-age gate so the freshly-published `0.0.56` set
installs.
   - Regenerated `pnpm-lock.yaml` + `sdk-python/poetry.lock`.

3. **`chore(showcase): align a2ui to single-arg get_a2ui_tools API`**
   - `showcase/.../graph.ts`: `getA2UITools(model, opts)` → single-arg.

## Notes

- All `@ag-ui` deps are live on npm/PyPI, so the branch installs
cleanly.
- Showcase **docs** alignment (TS backend tabs for dynamic-schema) is
still being sorted out — the per-integration docs architecture needs
untangling first; deferred to a follow-up.
2026-06-10 13:21:35 +02:00
Ran Shemtov 0a76aa1ff7 Merge branch 'main' into ran/oss-248-a2ui-shared-params 2026-06-10 09:29:57 +02:00
Jordan Ritter 8eefbcc0c6 docs(showcase): document XDG isolate state paths and real --keep semantics
- isolate state paths updated for the XDG migration
- --keep now documented as leaving the isolated stack standing
2026-06-09 18:18:10 -07:00
Jordan Ritter b57b2162c1 test(showcase): pin isolate invariants in bats — trap wiring, races, anti-vacuity
- real-trap-path tests for --keep (no simulated trap shortcuts)
- sweep/lock/tombstone race pins (heartbeat resurrection, lock
  takeover, duplicate-name TOCTOU)
- sentinel anti-vacuity discipline so trap tests cannot pass vacuously
- reap-order probe pinning live-slot protection during sweeps
- root/PID-reuse/DST guards for liveness and age checks
2026-06-09 18:18:03 -07:00
Jordan Ritter f2ed2b28ef fix(showcase): harden isolate state machine — --keep wiring, default-stack guards, registry concurrency
- ISOLATE_KEEP promoted to a global so --keep survives cmd_test return
  into the trap scope
- early-die and default-stack protection: failed --isolate setup no
  longer tears down the default stack; half-initialized state is
  cleaned up on the way out
- liveness/PID/age reaping signals with a sweep lock: heartbeat
  updates, own-pid lock release, tombstones, and a claim-then-verify
  duplicate-name guard close slot-registry races (TOCTOU, lock
  takeover, reap order)
- teardown robustness: --volumes on every compose down, failed-down
  runs preserve state for diagnosis, reap remnants get a compose-down,
  path-traversal guard, uniform rm guards under set -e
- name validation: --isolate names must start with a lowercase letter
  or digit; reserved name 'showcase' rejected (it aliases the default
  stack)
- fail-loud warning before pre-down of an existing stack; help text
  updated

Result of an 8-round, 7-agent code-review loop with red-green
verified fixes.
2026-06-09 18:17:55 -07:00
Jordan Ritter 0b097d0c89 fix(showcase): fail loud on unnormalized env in expandImageConsumers; prune redundant assertions 2026-06-09 18:17:21 -07:00
Jordan Ritter 26a43a794f fix(showcase): reject prototype-key service names; sync redeploy scope docs 2026-06-09 18:09:01 -07:00
Jordan Ritter 6f3f9ef736 fix(showcase): validate imageOf env overlap, prototype-safe target lookup; clarify expansion docs 2026-06-09 18:00:46 -07:00
Jordan Ritter 58c655beee docs(showcase): correct stale redeploy default-scope claims; stub summary env in tests 2026-06-09 17:52:16 -07:00
Jordan Ritter 2af5d691ef fix(showcase): redeploy image consumers (harness-workers) when their shared image is rebuilt
harness-workers runs the SAME showcase-harness GHCR image as the harness
scheduler but has ciBuilt:false (it has no build slot of its own), and the
CI staging redeploy scope was derived purely from ciBuilt — so a main-merge
rebuild of showcase-harness:latest only bounced the scheduler while the
workers silently kept running the stale image (PR #5352's worker-side fixes
never reached staging).

Model image consumption explicitly in the SSOT instead:

- railway-envs.ts: new optional `imageOf` field on ServiceEntry — the SSOT
  key of the ciBuilt service whose image this entry runs. Set
  `imageOf: "harness"` on harness-workers. New module-load invariant
  `assertImageConsumersValid` (fail-loud, same style as
  assertDispatchNamesUnique): imageOf must name an existing SSOT key, the
  target must be ciBuilt, and the consumer itself must not be ciBuilt.
- redeploy-env.ts: new `expandImageConsumers(names, env)` applied inside
  runRedeploy — the redeploy set becomes the resolved scope PLUS any
  service whose imageOf points at a service already in scope. Env-aware:
  a consumer only joins envs it declares, so the staging-only worker
  never enters a prod redeploy (prod behavior unchanged).

No workflow change needed: showcase_build.yml keeps passing the
built-and-successful dispatch_names; the script expands them. Gate
behavior (gateIgnore / image-ref gate), the generated JSON
(emit --check passes byte-identical), and the promote dropdown are all
untouched. harness-legacy deliberately gets no imageOf (pinned pre-fleet
digest; must not follow rebuilds).
2026-06-09 17:40:41 -07:00
Mike Ryan a0840c0a15 fix(shell-docs): keep docs headings block-level (#5334)
## Summary
- fix shell-docs heading anchors so docs headings remain block-level
rows
- prevent adjacent headings, like `## What the runtime provides`
followed by `### Authentication & security`, from rendering on the same
line
- add a `globals.css` regression guard against bringing back
`inline-flex` on `.docs-heading`

## Verification
- `npm run test -- src/app/__tests__/globals-css.test.ts` in
`showcase/shell-docs`
- `npm run lint` in `showcase/shell-docs`
- `npm run test` in `showcase/shell-docs`
- `npm run typecheck` in `showcase/shell-docs`
- `npm run build` in `showcase/shell-docs`
- local visual check at `http://localhost:3003/backend/copilot-runtime`
with Playwright: the H2 and H3 render as separate full-width rows
- lefthook pre-commit passed `check-binaries`, `lint-fix`,
`test-and-check-packages`, and commitlint

## Notes
- `npm run lint` still reports existing warnings unrelated to this
change.
- `npm run build` still emits the existing Turbopack/NFT warning from
`next.config.ts` / `llms-mdx`, but completes successfully.
2026-06-09 17:25:34 -07:00
Jordan Ritter 2c82fa4586 fix(harness): stop staging dashboard flapping (per-run X-Test-Id, graceful drain, worker-row GC) (#5352)
## Summary

Root-caused and fixed the staging dashboard's red↔green flapping.
Empirical investigation separated it into three mechanisms:

1. **PRIMARY (recurring flap): aimock fixture-sequence desync.** Harness
drivers sent a stable `d6-<slug>` `X-Test-Id` shared across runs.
aimock's stateful strict-mode matching (sequenced fixtures match only
when per-test-id matchCount === sequenceIndex) drifts via replay
exhaustion and 500-test-id FIFO eviction, so whole integrations 503'd
together (~2,200/hr) and recovered — the flap.
2. **SECONDARY (one-off reds): worker restart mid-job.** In-flight
`driver.run` was un-cancellable; redeploys SIGKILL'd workers mid-run,
leaving partial results that fleet-health painted red
(`worker-crashed-mid-job`).
3. **COSMETIC (red floor): dead roster rows.** 22 dead-container
registry rows were never GC'd; the restart hook is a no-op stub, so
`restartsAttempted` over-counted on rows nothing would ever restart.

## Fixes

- **Per-run-unique X-Test-Id** — fold the existing per-run `mintRunId()`
into the test id via exported `buildE2eTestId(slug, runId)` (injectable
`idFactory` for tests) in the d6/d5 and d4 drivers, so every run gets a
fresh aimock sequence cursor.
- **Graceful worker drain** — on SIGTERM the worker aborts in-flight
runs, suppresses red side-emits (`drainReason === "shutdown"` live
getter + abort conjunction), **abandons** partial results (skips
`queue.report`; the 300s lease sweeper synthesizes neutral
`worker-reclaimed-pending`), and deregisters via a latched,
`lastWrite`-chained roster delete so late heartbeats cannot resurrect
the row. Stop bounded by `WORKER_DRAIN_GRACE_MS` (25s default); order
`worker.stop → registration.stop → deregister → pool.shutdown`.
- **Fleet-health GC** — roster rows dead longer than
`DEFAULT_WORKER_GC_AFTER_MS` (24h) are deleted (`gcDeleted` counter),
malformed rows are GC'd by age before the worker_id guard,
`restartsAttempted` is demoted when the restart hook is a no-op, and
`createFleetHealthMonitor` fails loud when `gcAfterMs <= staleAfterMs`.

Companion PR: CopilotKit/aimock#259 (strict-mode no-match diagnostics,
1.30.0) makes the PRIMARY mechanism observable instead of a bare 503.

## Review

- 3 unbiased CR rounds (8 reviewer agents each, verbatim non-leading
prompt) converged to **zero actionable findings**; round-1 criticals
(drain-suppression of genuine timeouts, deregister/heartbeat
resurrection race, vacuous tests, GC-skipped malformed rows) were fixed
with red-green proofs and confirmed in byte-identical follow-up rounds.
- Bucket-(c) promotion audit: 0 promotions to actionable; 3 trivial
consistency items deferred to the follow-up backlog with ~25
pre-existing harness findings.

## Test plan

- [x] Full harness suite: 122 files / 2146 tests green
- [x] `tsc --noEmit` on both tsconfigs; build green
- [x] oxfmt clean on all 14 changed files
- [x] Red-green discipline on every behavioral fix (failures observed
before fixes)
- [x] CI green on this PR
- [ ] Staging promotion (explicitly out of scope here; separate step)

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-09 17:12:46 -07:00
Jordan Ritter e90afdd223 feat(harness): GC long-dead worker rows, fail loud on gc/stale misconfig, demote restartsAttempted 2026-06-09 16:52:11 -07:00
Jordan Ritter 194d6219bc test(harness): cover fleet-health GC of dead roster rows 2026-06-09 16:52:10 -07:00
Jordan Ritter 6c30f523d7 fix(harness): graceful worker drain — abort in-flight runs, abandon partials, deregister with a latched write chain 2026-06-09 16:52:04 -07:00
Jordan Ritter 57b36f2e0f test(harness): cover graceful drain, deregistration races, and drain/timeout quadrants 2026-06-09 16:52:04 -07:00
Jordan Ritter cdc1e90e4a fix(harness): per-run-unique X-Test-Id to stop aimock fixture-sequence desync 2026-06-09 16:51:58 -07:00
Jordan Ritter 3684bd42cf test(harness): pin per-run-unique X-Test-Id across d6/d5/d4 drivers 2026-06-09 16:51:57 -07:00
Austin Merrick af4cd629aa feat(shell-docs): instrument hero command copies with hero_command_copied
The global CopyTracker already emits the generic cli_command_copied on
any clipboard copy, but it cannot distinguish which hero card was used.
Each card now also captures hero_command_copied with command_id
(create | onboard), the full command string, and clipboard_blocked, so
create-vs-onboard funnels are queryable per landing page.

Validated locally against a live PostHog client: each click POSTs one
$autocapture, one cli_command_copied, and one hero_command_copied to
/ingest/e (HTTP 200) with the expected properties.
2026-06-09 16:37:53 -07:00
Austin Merrick 2502533cd9 feat(shell-docs): restore quickstart CTA and unify landing hero layouts
Review follow-up: bring back the quickstart button alongside the two
recommended commands, and render the identical <HeroStartActions> block
on the home hero and every framework landing hero.

- Quickstart returns in its original accent treatment: the framework
  dropdown on home, a direct guide link on framework pages; bespoke-init
  frameworks (a2a, ms-agent-dotnet) get back the old button + chip row.
- One layout everywhere: cards are always two-up from sm (no more
  stacked framework variant); commands wrap balanced at token boundaries
  instead of truncating, so long framework-pinned commands stay fully
  readable at every width.
2026-06-09 16:02:06 -07:00
Austin Merrick 0518414f0a docs(skills): recommend CopilotKit from /v2 everywhere and scrub CopilotCloud mentions
Follow-up to #5345 per review feedback:

- Propagate the provider change to all remaining skills: every example,
  props table, eval check, and prose mention now recommends CopilotKit
  imported from @copilotkit/react-core/v2 (the compatibility bridge and
  strict superset) instead of CopilotKitProvider. Migration docs in
  copilotkit-upgrade now point at the /v2 import path as the target and
  explicitly warn against migrating to CopilotKitProvider.
- Scrub CopilotCloud / Copilot Cloud / CopilotKit Cloud branding from
  skills, replacing it with CopilotKit Intelligence where the hosted
  platform is meant. Literal endpoint URLs and real identifiers like
  MissingPublicApiKeyError are unchanged.
- Fix react-core provider-setup.md which claimed publicApiKey was the
  canonical prop; publicLicenseKey is canonical and publicApiKey is a
  deprecated alias, matching #5345.
- Edits made in the packages/*/skills source dirs for the three mirrored
  skills, with skills/ regenerated via pnpm sync:plugin-skills (this also
  re-pins the plugin version fields to 1.59.5).
2026-06-09 13:53:55 -07:00
Austin Merrick db73ceac91 docs(skills): fix outdated APIs in copilotkit-setup skill (#5345)
Fixes 4 accuracy issues surfaced by a docs gardener agent reviewing the
`copilotkit-setup` skill. Docs-only; no runtime code touched.

| # | Issue | Fix | Proof (source) |
|---|-------|-----|----------------|
| 1 | `licenseKey` is not a valid `CopilotKitProvider` prop | Use
`publicLicenseKey` (alias of `publicApiKey`) | [`publicApiKey`
L102](https://github.com/CopilotKit/CopilotKit/blob/01f89396a494cd44437979730ded6d9dcbbc02ab/packages/react-core/src/v2/providers/CopilotKitProvider.tsx#L102),
[`publicLicenseKey`
L106](https://github.com/CopilotKit/CopilotKit/blob/01f89396a494cd44437979730ded6d9dcbbc02ab/packages/react-core/src/v2/providers/CopilotKitProvider.tsx#L106)
|
| 2 | `createCopilotEndpoint` / `createCopilotEndpointSingleRoute` are
`@deprecated` | Use `createCopilotHonoHandler` with `mode:
"single-route"` | [`createCopilotEndpoint` deprecated alias, hono.ts
L52-55](https://github.com/CopilotKit/CopilotKit/blob/01f89396a494cd44437979730ded6d9dcbbc02ab/packages/runtime/src/v2/runtime/endpoints/hono.ts#L52-L55),
[single-route deprecated, hono-single.ts
L24](https://github.com/CopilotKit/CopilotKit/blob/01f89396a494cd44437979730ded6d9dcbbc02ab/packages/runtime/src/v2/runtime/endpoints/hono-single.ts#L24)
|
| 3 | `createCopilotEndpointExpress` / `...SingleRouteExpress` are
`@deprecated` | Use `createCopilotExpressHandler` with `mode:
"single-route"` | [`createCopilotEndpointExpress` deprecated alias,
express.ts
L88-91](https://github.com/CopilotKit/CopilotKit/blob/01f89396a494cd44437979730ded6d9dcbbc02ab/packages/runtime/src/v2/runtime/endpoints/express.ts#L88-L91),
[single-route deprecated, express-single.ts
L41](https://github.com/CopilotKit/CopilotKit/blob/01f89396a494cd44437979730ded6d9dcbbc02ab/packages/runtime/src/v2/runtime/endpoints/express-single.ts#L41)
|
| 4 | `headers` prop type incomplete | Document `Record<string, string>
\| (() => Record<string, string>)`, evaluated per-request | [headers
union type, CopilotKitProvider.tsx
L94](https://github.com/CopilotKit/CopilotKit/blob/01f89396a494cd44437979730ded6d9dcbbc02ab/packages/react-core/src/v2/providers/CopilotKitProvider.tsx#L94)
|

### Notes for review
- Both deprecated factory families collapse into a single factory each
(`createCopilotHonoHandler` / `createCopilotExpressHandler`),
differentiated by `mode` (`"multi-route"` is the default). The
deprecated names still work, so existing user code is unaffected; only
the recommended docs path changed.
- `createCopilotExpressHandler` defaults to `cors: true` ([express.ts
L91](https://github.com/CopilotKit/CopilotKit/blob/01f89396a494cd44437979730ded6d9dcbbc02ab/packages/runtime/src/v2/runtime/endpoints/express.ts#L91)),
matching the old `...SingleRouteExpress` wrapper, so the single-route
example keeps identical CORS behavior without an extra option.
- Quick Reference table rewritten with a `Mode` column; a one-line note
keeps the deprecated names discoverable.
- Skill `version` bumped from 1.1.1 to 1.1.2.
2026-06-09 13:28:26 -07:00
Austin Merrick ba99cbef88 docs(skills): recommend CopilotKit from /v2 instead of CopilotKitProvider
Per review feedback: CopilotKit from @copilotkit/react-core/v2 is the
compatibility bridge across v1 and v2 and a strict superset of both the
legacy root CopilotKit and CopilotKitProvider. Switch all provider
examples, the props table, references, the page asset, and eval checks
to it, and finish the licenseKey -> publicLicenseKey rename in
telemetry-setup.md.
2026-06-09 12:54:14 -07:00
Jordan Ritter da504c147c fix(showcase): honor --keep on the isolate teardown path
Previously the EXIT-trap restore_isolation always tore down the isolated
stack, ignoring --keep. Now restore_isolation reads a keep flag (set in
cmd-test.sh when --keep is parsed): when kept it skips compose down, the run-dir
removal, and the slot release, and instead prints a survival notice with the
project, slot, the three offset host ports, and the exact manual teardown
command. The kept stack's live containers keep its slot from being reaped.
2026-06-09 12:52:33 -07:00
Jordan Ritter 1d31c2782b feat(showcase): reap stale isolate slots by compose-project liveness
Persist the compose project name into each claimed slot dir, and at claim time
reap any slot whose recorded project has no live containers (queried via
docker ps --filter label=com.docker.compose.project). This correctly leaves a
--keep'd stack's slot alone since its containers are still up. The existing
PID/age heuristics remain as a fallback for slots predating the project file.
2026-06-09 12:52:12 -07:00
Jordan Ritter 887191db95 refactor(showcase): migrate isolate runtime state to XDG_STATE_HOME
Move the --isolate slot registry and per-run scratch dir off /tmp (wiped on
reboot, world-writable) to $XDG_STATE_HOME/copilotkit/showcase (slots/ and
runs/<name>). The run dir is now keyed by the finalized project name instead
of the PID so a kept run is locatable for manual teardown. Adds a bats suite
covering the new state-base helper and run-dir location.
2026-06-09 12:51:53 -07:00
Sam Julien 5994e7be63 docs: simplify README agent-skills section (#5327)
Replaces the "Install as a Claude Code plugin" section and its
skill-inventory table with our recommended one-line install:

```bash
npx copilotkit@latest skills install
```

**Why:**

- The hand-maintained skill table goes stale fast. It already listed 9
skills and 6 lifecycle slugs that no longer exist (there are 11 skills
now).
- `npx copilotkit@latest skills install` is our new recommended way to
install the skills. It works across Claude Code, Codex, Cursor, Gemini,
and others, and always pulls the latest.

**Two commits, reviewed separately:**

1. `style: format README with oxfmt`. README has failed `oxfmt` on main
since 1e70dae97 widened the lint-fix glob to cover markdown but never
backfilled existing files. This runs the formatter once so the file
conforms, which also keeps the content change below from being buried
under whole-file reformat noise. Render-neutral: only emphasis markers
and table column padding, which GitHub renders identically.
2. `docs: simplify README agent-skills section`. The actual content
change. Surgical, one section.
2026-06-09 11:36:17 -07:00
Jordan Ritter 9a6d1b4ae3 docs(showcase): document --d6 --isolate as the canonical d6 verification flow
RUNBOOK.md + DEBUGGING.md establish `bin/showcase test <slug> --d6 --isolate <name>` as the default way to verify a slug's d6 state (isolated stack on offset ports, own compose project, doesn't touch the shared stack), replacing the stale isolated-run sections.
2026-06-09 11:29:08 -07:00
Jordan Ritter 5125292a22 fix(showcase): authenticate isolated PocketBase so --d6 --isolate enqueues + runs d6-all-pills
host CLI loads no env file so isolated runs use the config.ts default superuser; that default (admin@localhost.dev) mismatched the compose-seeded admin@example.com (docker-compose.local.yml POCKETBASE_SUPERUSER_EMAIL), so a fresh isolated PB 400'd pb-auth → 0 jobs enqueued → d6-all-pills no-op. Aligned the default to admin@example.com (password already matched). Added config.test.ts deriving the expected value from docker-compose.local.yml so host CLI and container seed can't drift. Verified llamaindex+agno --isolate: no 400, Enqueued 1 job, worker runs d6-all-pills per-pill.
2026-06-09 11:29:08 -07:00
Austin Merrick e71e43c338 docs(skills): fix outdated APIs in copilotkit-setup skill
- Replace deprecated endpoint factories with createCopilotHonoHandler /
  createCopilotExpressHandler (+ mode: "single-route") in all examples
  and the Quick Reference table
- Fix invalid CopilotKitProvider prop: licenseKey -> publicLicenseKey
- Document headers prop function form: Record | (() => Record)
- Bump skill version 1.1.1 -> 1.1.2
2026-06-09 11:13:45 -07:00
Austin Merrick 92614e7b22 docs: simplify README agent-skills section
Replace the Claude-Code-specific plugin instructions and the stale skill
inventory table (wrong skill count, renamed lifecycle slugs that no longer
exist) with a single agent-agnostic install command that works across Claude
Code, Codex, Cursor, Gemini, and others:

  npx copilotkit@latest skills install

Drops the hand-maintained table that drifts out of sync with the skills on
disk.
2026-06-09 10:51:20 -07:00
Austin Merrick bed578e6f9 style: format README with oxfmt
README was never backfilled when 1e70dae97 widened the lint-fix glob to
cover markdown, so it has failed oxfmt on main since. Run the formatter once
to make it conform. Changes are render-neutral (emphasis markers and table
column padding); GitHub renders the file identically. Isolated in its own
commit so the content change in the next commit stays easy to review.
2026-06-09 10:51:20 -07:00
Ran Shem Tov 518bc2ed75 Merge remote-tracking branch 'origin/main' into ran/oss-248-a2ui-shared-params
# Conflicts:
#	.npmrc
#	packages/runtime/package.json
#	pnpm-lock.yaml
2026-06-09 18:45:43 +02:00
Ran Shemtov 01f89396a4 fix(core): bump @ag-ui core packages to 0.0.56 and adapt runHttpRequest (#5344) 2026-06-09 18:32:22 +02:00
Ran Shemtov 62cd295c89 Merge branch 'main' into claude/exciting-mccarthy-453abc 2026-06-09 18:32:11 +02:00
Sam Julien d29e985b79 chore(README): Add Slack, MS Teams, Discord, and Google Chat support (#5343)
<!--
Thank you for sending the PR! We appreciate you spending the time to
work on these changes.

Help us understand your motivation by explaining why you decided to make
this change.


**Please PLEASE reach out to us first before starting any significant
work on new or existing features.**

By the time you've gotten here, you're looking at creating a pull
request so hopefully we're not too late.

We love community contributions! That said, we want to make sure we're
all on the same page before you start.
Investing a lot of time and effort just to find out it doesn't align
with the upstream project feels awful, and we don't want that to happen.
It also helps to make sure the work you're planning isn't already in
progress.

As described in our contributing guide, please file an issue first:
https://github.com/ag-ui-protocol/ag-ui/issues
Or, reach out to us on Discord: https://discord.com/invite/6dffbvGU3D


You can learn more about contributing to copilotkit here:
https://github.com/copilotkit/copilotkit/blob/master/CONTRIBUTING.md

Happy contributing!

-->

## What does this PR do?

(Describe the changes introduced in this PR)

## Related PRs and Issues

- (Direct link to related PR or issue, if relevant)

## Checklist

- [ ] I have read the [Contribution
Guide](https://github.com/copilotkit/copilotkit/blob/master/CONTRIBUTING.md)
- [ ] If the PR changes or adds functionality, I have updated the
relevant documentation
- [ ] "Allow edits by maintainers" is checked (lets us help iterate on
your PR directly — faster turnaround for everyone)
2026-06-09 09:24:58 -07:00
Ran Shem Tov e5d3963db6 fix(core): bump @ag-ui core packages to 0.0.56 and adapt runHttpRequest
Bump @ag-ui/core, @ag-ui/client, @ag-ui/encoder from 0.0.53 to 0.0.56
across all packages.

@ag-ui/client 0.0.56 changed runHttpRequest from (url, requestInit) to a
fetch-thunk signature (() => Promise<Response>). Update the single-route
and connect transport paths in ProxiedCopilotRuntimeAgent to wrap the
request in () => this.fetch(url, init), restoring the broken envelope
transports.

Add @ag-ui/core, client, encoder, proto to minimum-release-age-exclude
in .npmrc so the freshly published 0.0.56 (under the 24h release-age
gate) installs in CI.
2026-06-09 17:47:43 +02:00
Ran Shemtov e241d37cb4 Merge branch 'main' into ran/oss-248-a2ui-shared-params 2026-06-09 17:39:18 +02:00
Nathan 🔶 Tarbert 1e2b50b034 chore(README): Add Slack, MS Teams, Discord, and Google Chat support 2026-06-09 11:17:50 -04:00
Ran Shem Tov 6e9240accc chore(deps): revert @ag-ui/core,client to 0.0.53 (decouple from langgraph 0.0.41 bump)
@ag-ui/client 0.0.56 changed runHttpRequest to a thunk signature, breaking
@copilotkit/core's ProxiedCopilotRuntimeAgent. OSS-248 only needs
@ag-ui/langgraph 0.0.41; keep that, revert the unrelated core/client/protocol
'latest' bump. Adopting client 0.0.56 is a separate migration.
2026-06-09 16:59:50 +02:00
Mike Ryan 001220577f fix(angular): support Angular 19–21 install and fix README package name (#5342)
## What & why

A fresh **Angular 21** + CopilotKit setup (validated this week against
an enterprise eval that was blocked on it) hits avoidable friction. This
PR fixes the two issues that are unambiguously correct, and documents a
third for follow-up.

### Fixed here
- **Peer-dep `ERESOLVE`** — `@angular/*` peer range was `^19.0.0`, so a
clean install on Angular 20/21 failed and required `--legacy-peer-deps`.
Widened to `^19.0.0 || ^20.0.0 || ^21.0.0`. (The library is built with
ng-packagr 19 but runs fine on 20/21.)
- **README points at a package that 404s** — install/import examples
referenced `@copilotkit/angular`, which does not exist on npm. The
package is `@copilotkitnext/angular`. Corrected the install command and
all import examples.

### Documented, not fixed (needs a maintainer call)
- **`TS7016` missing types** — the published `exports` map has no
`types` condition, so TS (`moduleResolution: bundler`/`node16`) can't
find declarations. Adding `"types": "./dist/index.d.ts"` to `exports`
makes **bundler** resolution green (what Angular apps use), but trips
the `attw` **node16** gate by exposing a pre-existing
internal-resolution issue in the generated `.d.ts` files (on `main`,
attw passes only because `untyped-resolution` is in its ignore list).
Properly fixing this means addressing the ng-packagr exports/`.d.ts`
output, so it's left out of this PR. The README now documents the
`tsconfig paths` workaround so users aren't blocked in the meantime.

## Testing
- Lefthook green (format, `check:packages` incl. `publint`/`attw`,
commitlint).
- Empirically verified: bare-minimum app on Angular 21.2.16 builds, dev
server boots, and `<copilot-chat>` renders.

Originating real-world report:
https://copilotkit.slack.com/archives/C08LNPSE5CM/p1781015696972179

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-09 07:48:46 -07:00
David McKay 50bdbf6ac5 fix(angular): support Angular 19-21 install and fix README package name
A fresh Angular 21 setup hit two blockers: a clean install failed with
ERESOLVE, and the README pointed at @copilotkit/angular, which 404s on npm.
Widen the @angular/* peer range to 19-21 and correct the README package name,
install command, and the TS7016 types workaround.
2026-06-09 09:46:25 -05:00
Sam Julien df090637df chore(README): Move Quick Start section towards the top (#5333)
Added quick start section with commands for new and existing projects.

<!--
Thank you for sending the PR! We appreciate you spending the time to
work on these changes.

Help us understand your motivation by explaining why you decided to make
this change.


**Please PLEASE reach out to us first before starting any significant
work on new or existing features.**

By the time you've gotten here, you're looking at creating a pull
request so hopefully we're not too late.

We love community contributions! That said, we want to make sure we're
all on the same page before you start.
Investing a lot of time and effort just to find out it doesn't align
with the upstream project feels awful, and we don't want that to happen.
It also helps to make sure the work you're planning isn't already in
progress.

As described in our contributing guide, please file an issue first:
https://github.com/ag-ui-protocol/ag-ui/issues
Or, reach out to us on Discord: https://discord.com/invite/6dffbvGU3D


You can learn more about contributing to copilotkit here:
https://github.com/copilotkit/copilotkit/blob/master/CONTRIBUTING.md

Happy contributing!

-->

## What does this PR do?

(Describe the changes introduced in this PR)

## Related PRs and Issues

- (Direct link to related PR or issue, if relevant)

## Checklist

- [ ] I have read the [Contribution
Guide](https://github.com/copilotkit/copilotkit/blob/master/CONTRIBUTING.md)
- [ ] If the PR changes or adds functionality, I have updated the
relevant documentation
- [ ] "Allow edits by maintainers" is checked (lets us help iterate on
your PR directly — faster turnaround for everyone)
2026-06-09 07:36:05 -07:00