Skip to content

feat(cockpit-registry): add ag-ui product type + register ag-ui-streaming demo#450

Merged
blove merged 6 commits into
mainfrom
claude/agui-registry-integration
May 19, 2026
Merged

feat(cockpit-registry): add ag-ui product type + register ag-ui-streaming demo#450
blove merged 6 commits into
mainfrom
claude/agui-registry-integration

Conversation

@blove
Copy link
Copy Markdown
Contributor

@blove blove commented May 18, 2026

Summary

Thread A of Task #2 (rename + structural-consistency sweep). Threads B + C landed via PR #449.

Registers the existing `cockpit-ag-ui-streaming-angular` demo in `apps/cockpit/scripts/capability-registry.ts`. The ag-ui cap is unique in having no Python backend (uses FakeAgent in-process), so:

  1. `Capability` interface: `pythonDir` + `graphName` become optional; `product` union adds `'ag-ui'`.
  2. New entry: `{ id: 'ag-ui-streaming', product: 'ag-ui', topic: 'streaming', angularProject: 'cockpit-ag-ui-streaming-angular', port: 4600 }`. Port 4600 picks a new range above chat's 4500s.
  3. `scripts/generate-shared-deployment-config.ts`: skip caps without `pythonDir`. Shared-deploy manifest unchanged (32 graphs; ag-ui contributes none).
  4. `apps/cockpit/cockpit-e2e-wiring.spec.ts`: guard the `pythonDir` check with `!== undefined` (mirrors the existing `pythonPort` guard).

3 commits, one per file. Per-commit boundaries keep each change reviewable.

Test plan

  • Generated shared-deploy manifest unchanged (32 graphs, no ag-ui-streaming)
  • `nx build cockpit-ag-ui-streaming-angular` succeeds
  • `nx test cockpit` passes (cockpit-registry pre-existing failure did not surface — clean here)
  • `nx e2e cockpit-langgraph-streaming-angular` passes
  • `nx e2e cockpit-chat-tool-calls-angular` passes
  • `nx e2e cockpit-chat-subagents-angular` passes
  • `nx e2e cockpit-chat-interrupts-angular` passes
  • Manual: `nx serve cockpit-ag-ui-streaming-angular --port 4600` loads in browser; FakeAgent streams canned tokens
  • CI Cockpit gates green

What this doesn't touch

  • No backend deployment changes (ag-ui has no LangSmith assistant)
  • No nav additions in the cockpit Next.js app (if nav auto-renders from the registry, ag-ui appears; otherwise polish follow-up)
  • No new ag-ui caps beyond the existing `streaming` demo
  • No aimock e2e for ag-ui (under Task feat: autogenerated API reference from JSDoc #4 — separate sub-project)

CI noise

Per the user's standing warning, parallel domain changes may turn unrelated jobs red. Cockpit gates are the real signal. Admin-merge if only unrelated jobs fail.

🤖 Generated with Claude Code

blove and others added 5 commits May 18, 2026 16:32
Thread A of Task #2 (rename + structural-consistency sweep). Registers
the existing cockpit-ag-ui-streaming-angular cap in
apps/cockpit/scripts/capability-registry.ts. Schema makes pythonDir +
graphName optional to accommodate ag-ui's in-process FakeAgent
architecture. Two consumer guards: deploy script skips no-Python caps;
e2e-wiring spec guards its pythonDir checks.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 tasks (3 code commits + 1 verification + 1 orchestrator). Each
code commit touches one file; verification covers manifest count,
build, test target, and 4 aimock e2es.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Schema change: pythonDir and graphName become optional to accommodate
caps without a Python backend. Adds 'ag-ui' to the product union and
registers the existing cockpit-ag-ui-streaming-angular cap (uses
FakeAgent in-process; no LangSmith deployment).

Two downstream consumers need guards (separate commits):
- scripts/generate-shared-deployment-config.ts (skip when no pythonDir)
- apps/cockpit/cockpit-e2e-wiring.spec.ts (guard pythonDir check)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Per the schema change in the prior commit, pythonDir is now optional.
ag-ui caps (in-process FakeAgent) and any future no-Python caps need
to be skipped — they have no langgraph.json to stage and contribute
no graphs to the shared-dev deployment.

Manifest graph count unchanged (32 graphs).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Per the registry schema change two commits prior, pythonDir is now
optional. The e2e-wiring spec compares capability.pythonDir against
the per-cap e2e harness's langgraphCwd; caps without pythonDir (ag-ui)
don't have an e2e harness either, so the check should skip rather
than fail comparing undefined to a path string.

Mirrors the existing pythonPort guard pattern (already wrapped in
!== undefined).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 18, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
threadplane Ready Ready Preview, Comment May 18, 2026 11:56pm

Request Review

Two consumers missed in PR #450's pre-flight grep (which used
`capability.pythonDir` pattern but missed `c.pythonDir`/`cap.pythonDir`):
- apps/cockpit/scripts/generate-combined-langgraph.ts: TypeScript error
  using `c.graphName` (undefined for ag-ui) as object index
- apps/cockpit/scripts/serve-example.ts: would spawn `cd undefined && uv
  run langgraph dev` for ag-ui-streaming

Both now skip cleanly when pythonDir is absent.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@blove blove merged commit 00952e5 into main May 19, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant