Commit Graph

36 Commits

Author SHA1 Message Date
Jordan Ritter af35569d7d chore(showcase/packages): QA markdown parity + integration tooling
Rename hitl.md → hitl-in-chat.md across all 17 showcase packages,
add shared-state-read / shared-state-write / shared-state-streaming /
gen-ui-agent / subagents QA docs where missing, update demos/hitl
README cross-links. Refresh showcase/shell + shell-dojo registry +
demo-content JSON to match new QA shape. Update integration tooling
(audit, create-integration, bundle-demo-content, generate-registry,
validate-parity, capture-previews, manifest lib) + e2e tests to the
new parity contract.
2026-04-22 11:00:46 -07:00
Alem Tuzlak 06d24fd8ba Merge remote-tracking branch 'origin/main' into fix/scrub-open-gen-ui
The scrub and #4084 touched the same surface: #4084 re-added an `open:`
generative_ui profile listing `open-gen-ui`/`open-gen-ui-advanced`, and
re-added both features to `constrained-explicit.allowed`. Extending the
branch's scrub to both re-additions keeps the semantic consistent with
the schema (which already dropped `open` from the approaches enum).

- `showcase/shared/constraints.yaml`: drop `open-gen-ui` +
  `open-gen-ui-advanced` from `constrained-explicit.allowed`; drop main's
  re-added `open:` profile entirely.
- `showcase/packages/langgraph-python/manifest.yaml`: drop the now-orphan
  `open-gen-ui` + `open-gen-ui-advanced` feature and demo entries
  (validator confirmed they had no allowed approach left).
- Regenerated `showcase/shell/src/data/registry.json` + sibling
  `shell-docs`/`shell-dojo` registries and `constraints.json` via
  `pnpm --dir showcase/scripts generate-registry`. All 17 integrations
  validate.

`feature-registry.json` intentionally still defines both features — the
original scrub commits (2b996c54d, 27f886e59) left it untouched, so the
demo source files on disk also stay. Follow-up deletion if desired is
out of scope for this merge.
2026-04-22 13:17:34 +02:00
Jordan Ritter b9bcf2e6b6 fix(showcase/packages-python): drop to USER app across 11 Python packages, add missing /app/public COPY to langgraph-python
All 11 Python runners previously executed as root. Bring them into parity
with langroid (the one Python package that already had the pattern):

- Create uid/gid 1001 'app' user/group before any COPY
- Add --chown=app:app to runner-stage COPY directives
- USER app before EXPOSE/CMD
- langgraph-python: add the missing COPY --from=frontend /app/public line
  (every other Python package has it) plus an empty public/.gitkeep so
  the copy resolves

Packages touched: ag2, agno, claude-sdk-python, crewai-crews, google-adk,
langgraph-fastapi, langgraph-python, llamaindex, ms-agent-python,
pydantic-ai, strands.
2026-04-21 19:05:23 -07:00
Jordan Ritter e97096c397 fix(showcase/package-claude-sdk-python): multi-stage Dockerfile with venv builder
Split Python install into a dedicated agent-builder stage (python:3.12.13)
that produces /opt/venv, which the slim runner COPYs in. The runner no
longer runs pip install, so no compiler toolchain or build-essential bloats
the final image.

Preserves behavior: entrypoint.sh, port 10000, ENV NODE_ENV=production,
shared_python/ -> /app/shared/python/ + PYTHONPATH.
2026-04-21 18:24:15 -07:00
Jordan Ritter 6f7dd1b8b1 fix(showcase/packages): extend silent-hang watchdog across Bucket-B + spring-ai
Hand-applied watchdog + unbuffered-stdout block for every Bucket-B package
entrypoint where the shape couldn't come from the starter generator:

  * ag2, agno, claude-sdk-python, claude-sdk-typescript, google-adk,
    langgraph-fastapi, langgraph-python, langgraph-typescript, langroid,
    llamaindex, ms-agent-dotnet, ms-agent-python, pydantic-ai, strands
    -> watchdog polls the framework-native health endpoint; Python variants
       also get `python -u` + awk fflush log prefixing.

  * spring-ai (Bucket C) -> watchdog extends the existing startup probe;
    polls :8000/health every 30s and kills PID on 3 consecutive failures.
    Added WATCHDOG_PID cleanup to the post-wait block.

  * mastra is single-`exec next start` on the package side — no agent
    process to probe, so no watchdog needed (N/A).

Reference shape: showcase/packages/crewai-crews/entrypoint.sh (unchanged
from origin/main; proven in production via PRs #4114 + #4115).
2026-04-21 09:20:58 -07:00
Atai Barkai 7644f180a6 fix(showcase): restore shared-state-read-write scaffolds + regen starters
Post-merge CI caught two regressions:

1. shared-state-read-write demo directories were on disk but never
   committed — 16 packages' manifests reference the demo but the
   page.tsx scaffolds weren't tracked. This failed validate-parity,
   bundle-demo-content tests, and drift-check transitively.

2. langgraph-python starter templates drifted after main added
   docstring region markers to weather-tool-backend; regenerating
   via `npx tsx generate-starters.ts` syncs the 17 starters.

Bundle (showcase/shell/src/data/demo-content.json) regenerated to
pick up the new demo content.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 21:34:13 -07:00
Atai Barkai a1ed347faa Merge remote-tracking branch 'origin/main' into atai/2026-04-18/feature-port-no-docker-restructure
# Conflicts:
#	showcase/scripts/__tests__/bundle-demo-content.test.ts
#	showcase/scripts/lib/manifest.ts
#	showcase/scripts/validate-parity.ts
2026-04-19 16:40:48 -07:00
Atai Barkai aa93004208 chore(showcase): port docs-links.json files from 4084 (per-column overrides)
Ports 16 per-package docs-links.json files (one per integration column) from
4084. These provide per-(integration, feature) curated docs overrides that the
shell-internal DocsRow component reads via `integration.docs_links.features[id]`
to render ✓ instead of ✗ in the docs-og/docs-shell badge columns. Consumed by
the loadDocsLinks() helper in generate-registry.ts which merges them into the
shell's registry.json bundle.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 14:09:15 -07:00
Atai Barkai fb062d3750 chore(showcase): port shared schema + feature-registry + constraints
Port the 4084 internal-showcase-followups state of the shared showcase
schema to 4085 (no Docker restructure):

- feature-registry.json: new Dev Ex category, category reorder
  (Dev Ex → Chat & UI → Platform → Controlled → Declarative → Open →
  Operational → Interactivity → Agent State → Multi-Agent → BYOC);
  +8 new features (beautiful-chat, cli-start, interrupt-headless,
  reasoning-default-render, tool-rendering-reasoning-chain,
  open-gen-ui-advanced, declarative-gen-ui-hardcoded,
  readonly-state-agent-context); renames (shared-state-write →
  shared-state-read-write, shared-state-agent-readonly →
  readonly-state-agent-context); removals (shared-state-read,
  state-rendering, a2ui-*, shared-state-io, shared-state, readables,
  a2a-chat, deep-agents, vnext-chat, byoc-a2ui, byoc-tambo);
  gen-ui-agent → kind: testing.
- constraints.yaml: allowlists updated to reference the new IDs.
- manifest.schema.json: `route` is optional; `command` field added for
  informational demos (e.g. cli-start).
- All 17 column manifests: shared-state-read removed,
  shared-state-write renamed to shared-state-read-write.
- langgraph-python manifest: full 4084 features list + demos entries
  with 4085-appropriate highlight paths (src/agents/*.py +
  src/app/demos/<cell>/* rather than backend/ + frontend/).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 11:24:33 -07:00
Jordan Ritter 20efc40960 fix(showcase/starters): serve /health via middleware to bypass FastAPI mount shadow
Python FastAPI showcase starters were registering an @app.get("/health")
handler BEFORE app.mount("/", ...) (or the adapter's equivalent catch-all).
Starlette's Mount at "/" is a prefix match that swallows every subsequent
request including /health, so the decorated handler never fired and the
Next.js /api/health probe saw a non-JSON agent response and flagged the
starter as "degraded".

Install a HealthMiddleware (BaseHTTPMiddleware) that short-circuits
GET /health above the routing layer, which runs before any Mount can
claim the path. The agent mount is kept intact so AG-UI traffic at / is
unaffected.

Affects 10 Python agent starters: ag2, agno, claude-sdk-python,
crewai-crews, google-adk, langroid, llamaindex, ms-agent-python,
pydantic-ai, strands.
2026-04-19 08:57:44 -07:00
Jordan Ritter df83668bd0 fix(showcase): raise /api/smoke upstream timeout from 25s to 45s
Cold-start on showcase packages with heavy Python agents (agno in particular)
consistently lands just over the 25s budget, producing 502s on first probe
with latency_ms: 25001 and stage: "timeout". Raise the upstream
AbortSignal.timeout on /api/smoke from 25s to 45s across all 16 showcase
packages that exercise the full agent round-trip, and bump Next.js
maxDuration from 30s to 60s so the route can actually run that long.

Also bumps the create-integration template so new packages inherit the
new budget.

Tail-latency beyond 45s will still alert — which is the intent.

Evidence: agno 502 alerts tonight at 18:40 PDT and 19:42 PDT, both with
latency_ms: 25001, stage: "timeout" on /api/smoke. /api/health already
200 on both probes — pure cold-start boundary issue.
2026-04-18 20:56:30 -07:00
Jordan Ritter 76f0c13c85 feat(showcase/starters): regen with aimock + .env propagation
Regenerated from showcase/scripts/generate-starters.ts with the updated
propagation rules. Every starter whose package ships .env.example now carries
one (port-rewritten to :8123 where AGENT_URL points at localhost), and the
crewai-crews starter additionally carries aimock_toggle.py alongside the
agent_server.

OPENAI_API_KEY placeholder text in every package + starter .env.example now
reads 'replace-with-your-key' (not a fake sk-... value), so users who skip
editing get a loud 401 from real OpenAI instead of a silent aimock success
masking misconfig.
2026-04-18 02:12:08 -07:00
Atai Barkai 14537d8f3b feat(showcase): reorganize feature matrix + auto-rebundle demo content
Feature registry reorganization:
- Move `tool-rendering` to generative-ui (was agent-capabilities);
  move `interactivity` category above `agent-state`.
- Split `hitl` into `hitl-in-chat` (generative-ui) + `hitl-in-app`
  (interactivity). All 17 manifests updated: feature + demo id renamed
  `hitl` -> `hitl-in-chat`; demo routes stay `/demos/hitl` so deployed
  backends are unaffected.
- Rename `Tool-Based Generative UI` -> `Controlled Generative UI`;
  drop duplicate `controlled-gen-ui` registry entry.
- Add generative-ui rows: `declarative-gen-ui`, `open-gen-ui`,
  `a2ui` (moved from a2ui category), `mcp-apps` (moved from platform).
- Rename `Frontend Tools` -> `Frontend Tools (In-app actions)`.
- Add `frontend-tools` feature to langgraph-python manifest + register
  `frontend_tools` agent name in api/copilotkit/route.ts (noise-free
  `change_background` demo split out from agentic-chat).

Bundle script improvements:
- `bundle-demo-content.ts`: resolve demo directory from `demo.route`
  instead of `demo.id`. Decouples feature id renames from on-disk
  directory names.
- `--watch` mode using native `fs.watch` over `packages/` with a
  debounced re-bundle on edits under demos/, agents/, agent/, mastra/,
  or README.md.
- `shell/package.json` dev script runs the bundler in watch mode
  alongside `next dev` via `npx concurrently -k`.

Tests updated for the rename and new counts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 17:36:00 -07:00
Jordan Ritter 27f886e59c fix(showcase): complete open-gen-ui scrub — 5→4 count, schema enum, fixture, full regen 2026-04-16 18:30:02 -07:00
Jordan Ritter 626b86c23b feat: fill QA checklists with real test steps, add test coverage matrix
Replace TODO placeholders in all 73 QA checklist files across 17 showcase
packages with specific, actionable test steps derived from reading the
actual demo page source code. Each checklist now references real
data-testid selectors, hook names, expected UI states, and interaction
flows.

Add showcase/QA-COVERAGE.md with a comprehensive matrix showing coverage
across manual QA, Vitest unit tests, Playwright E2E (smoke and interaction),
per-package E2E, aimock fixtures, and CI automation for all 9 demos plus
the Sales Dashboard starter hero.
2026-04-14 16:06:58 -07:00
Jordan Ritter c25c1ca291 fix: remove shared_frontend COPY from demo package Dockerfiles (deleted in #3896) 2026-04-14 13:27:05 -07:00
Jordan Ritter d8d889aebf chore: remove dead demo-wrapper/error-boundary files, regenerate shell data
Remove orphaned demo-wrapper.tsx (1 file) and error-boundary.tsx (17 files)
that still imported from the deleted @copilotkit/showcase-shared.
Regenerate registry.json, demo-content.json, and starter-content.json.
2026-04-14 12:57:32 -07:00
Jordan Ritter b844a7c97c feat: decouple 17 demo packages from shared frontend, update manifests and playwright configs
- Remove @copilotkit/showcase-shared webpack alias from all 17 next.config.ts
- Remove @copilotkit/showcase-shared tsconfig paths from all 17 tsconfig.json
- Update all 17 manifest.yaml starter sections to point to showcase/starters/<slug>
  with Sales Dashboard name, npx degit clone command, and Railway demo URLs
- Add OPENAI_BASE_URL/OPENAI_API_KEY env passthrough to all 17 playwright configs
  for aimock-backed e2e testing
2026-04-14 12:51:11 -07:00
Jordan Ritter 5b95a9d54d feat: revert all 153 demo pages to self-contained originals
Replace shared-import demo pages across all 17 showcase packages with
the original self-contained implementations from git history. Each demo
is now fully readable in the Code tab with zero @copilotkit/showcase-shared
imports, no demonstrationCatalog, and no shared error boundaries.

9 demos x 17 packages = 153 page.tsx files reverted.
2026-04-14 12:50:50 -07:00
Jordan Ritter fd615b30ac fix: add ignoreBuildErrors to all showcase packages
shared_frontend uses useAgentContext from @copilotkit/react-core which
may not be in the npm-published version. Docker builds install from npm,
not from the monorepo, so TypeScript fails on the missing export.
ignoreBuildErrors skips TS checking during next build.
2026-04-13 22:29:29 -07:00
Jordan Ritter cff246364e fix: add hashbrown deps to all 17 showcase packages
shared_frontend imports @hashbrownai/core and @hashbrownai/react but
each package's Dockerfile installs deps from its own package.json.
Without these listed, npm install doesn't fetch them and the webpack
build fails with "Can't resolve '@hashbrownai/react'".
2026-04-13 22:24:18 -07:00
Jordan Ritter ece8d4590e fix: regenerate lockfile, apply formatting, sync next.config with main
Lockfile was stale after rebase — hashbrown deps not in pnpm-lock.yaml.
Also applies oxfmt formatting and syncs next.config.ts webpack alias
with the simplified form from main.
2026-04-13 22:03:08 -07:00
Jordan Ritter 5f857e26d8 feat: wire renderer selector into agentic-chat, gen-ui-tool-based, gen-ui-agent across all 17 packages
Each package's 3 GenUI demo pages now include the RendererSelector pill toggle,
allowing users to switch between 4 active rendering strategies (json-render
falls back to tool-based until the Zod 4 isolated bundle is built).
2026-04-13 21:37:37 -07:00
Jordan Ritter 6dd9a575bc fix: simplify webpack alias to relative path (works in both local and CI Docker) 2026-04-13 21:09:00 -07:00
Jordan Ritter 506020848e fix: use process.cwd() instead of __dirname for webpack alias in Docker 2026-04-13 20:51:10 -07:00
Jordan Ritter e256dc3996 fix: resolve @copilotkit/showcase-shared via webpack alias in all showcase packages
transpilePackages tries to find the package in node_modules first, which
fails in Docker builds even though tsconfig paths and shared_frontend/src
are correctly set up. Replace with an explicit webpack resolve alias that
points directly to the shared_frontend/src directory.
2026-04-13 20:32:12 -07:00
github-actions[bot] b670dd34bc style: auto-fix formatting 2026-04-14 03:03:54 +00:00
Jordan Ritter b6fcafe4cd feat: all 17 showcase packages to 9-demo parity with Sales Dashboard hero
Every package: 9 demos (agentic-chat hero, hitl MeetingTimePicker, tool-rendering,
gen-ui-tool-based Chart Generator, gen-ui-agent A2UI dynamic, shared-state-read/
write/streaming, subagents), 7 backend tools, Playwright e2e tests per demo.
Cross-cutting: debug routes, error boundaries, camelCase SSE, generate_a2ui
conversation context, spring-ai JSON weather, langroid adapter fixes.

# Conflicts:
#	showcase/packages/ag2/manifest.yaml
#	showcase/packages/ag2/src/agents/agent.py
#	showcase/packages/ag2/src/app/api/debug/route.ts
#	showcase/packages/ag2/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/ag2/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/ag2/src/app/demos/hitl/page.tsx
#	showcase/packages/ag2/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/ag2/tests/e2e/gen-ui-tool-based.spec.ts
#	showcase/packages/ag2/tests/e2e/hitl.spec.ts
#	showcase/packages/ag2/tsconfig.json
#	showcase/packages/agno/manifest.yaml
#	showcase/packages/agno/src/agents/main.py
#	showcase/packages/agno/src/app/api/debug/route.ts
#	showcase/packages/agno/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/agno/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/agno/src/app/demos/hitl/page.tsx
#	showcase/packages/agno/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/agno/tsconfig.json
#	showcase/packages/claude-sdk-python/manifest.yaml
#	showcase/packages/claude-sdk-python/src/agents/agent.py
#	showcase/packages/claude-sdk-python/src/app/api/debug/route.ts
#	showcase/packages/claude-sdk-python/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/claude-sdk-python/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/claude-sdk-python/src/app/demos/hitl/page.tsx
#	showcase/packages/claude-sdk-python/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/claude-sdk-python/tests/e2e/gen-ui-tool-based.spec.ts
#	showcase/packages/claude-sdk-python/tests/e2e/hitl.spec.ts
#	showcase/packages/claude-sdk-python/tsconfig.json
#	showcase/packages/claude-sdk-typescript/.gitignore
#	showcase/packages/claude-sdk-typescript/src/app/api/debug/route.ts
#	showcase/packages/claude-sdk-typescript/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/claude-sdk-typescript/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/claude-sdk-typescript/tests/e2e/gen-ui-tool-based.spec.ts
#	showcase/packages/claude-sdk-typescript/tests/e2e/hitl.spec.ts
#	showcase/packages/crewai-crews/manifest.yaml
#	showcase/packages/crewai-crews/src/agents/crew.py
#	showcase/packages/crewai-crews/src/agents/tools/custom_tool.py
#	showcase/packages/crewai-crews/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/crewai-crews/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/google-adk/manifest.yaml
#	showcase/packages/google-adk/src/agents/main.py
#	showcase/packages/google-adk/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/google-adk/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/google-adk/src/app/demos/hitl/page.tsx
#	showcase/packages/langgraph-fastapi/src/app/api/debug/route.ts
#	showcase/packages/langgraph-fastapi/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/langgraph-fastapi/src/app/demos/hitl/page.tsx
#	showcase/packages/langgraph-fastapi/tests/e2e/hitl.spec.ts
#	showcase/packages/langgraph-fastapi/tsconfig.json
#	showcase/packages/langgraph-python/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/langgraph-python/src/app/demos/hitl/page.tsx
#	showcase/packages/langgraph-python/tests/e2e/agentic-chat.spec.ts
#	showcase/packages/langgraph-python/tests/e2e/hitl.spec.ts
#	showcase/packages/langgraph-python/tests/e2e/shared-state-streaming.spec.ts
#	showcase/packages/langgraph-python/tests/e2e/shared-state-write.spec.ts
#	showcase/packages/langgraph-python/tests/e2e/subagents.spec.ts
#	showcase/packages/langgraph-python/tsconfig.json
#	showcase/packages/langgraph-typescript/.gitignore
#	showcase/packages/langgraph-typescript/src/agent/graph.ts
#	showcase/packages/langgraph-typescript/src/app/api/debug/route.ts
#	showcase/packages/langgraph-typescript/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/langgraph-typescript/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/langgraph-typescript/tests/e2e/gen-ui-tool-based.spec.ts
#	showcase/packages/langgraph-typescript/tests/e2e/hitl.spec.ts
#	showcase/packages/langroid/src/agents/agent.py
#	showcase/packages/langroid/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/langroid/src/app/demos/hitl/page.tsx
#	showcase/packages/langroid/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/llamaindex/manifest.yaml
#	showcase/packages/llamaindex/src/agents/agent.py
#	showcase/packages/llamaindex/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/llamaindex/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/llamaindex/src/app/demos/hitl/page.tsx
#	showcase/packages/llamaindex/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/mastra/.gitignore
#	showcase/packages/mastra/package.json
#	showcase/packages/mastra/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/mastra/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/mastra/src/mastra/agents/index.ts
#	showcase/packages/mastra/src/mastra/tools/index.ts
#	showcase/packages/mastra/tests/e2e/gen-ui-tool-based.spec.ts
#	showcase/packages/mastra/tests/e2e/hitl.spec.ts
#	showcase/packages/ms-agent-dotnet/agent/Program.cs
#	showcase/packages/ms-agent-dotnet/manifest.yaml
#	showcase/packages/ms-agent-dotnet/src/app/api/debug/route.ts
#	showcase/packages/ms-agent-dotnet/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/ms-agent-dotnet/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/ms-agent-dotnet/src/app/demos/hitl/page.tsx
#	showcase/packages/ms-agent-dotnet/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/ms-agent-dotnet/tests/e2e/hitl.spec.ts
#	showcase/packages/ms-agent-dotnet/tsconfig.json
#	showcase/packages/ms-agent-python/src/agents/agent.py
#	showcase/packages/ms-agent-python/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/ms-agent-python/src/app/demos/hitl/page.tsx
#	showcase/packages/ms-agent-python/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/pydantic-ai/manifest.yaml
#	showcase/packages/pydantic-ai/src/agents/agent.py
#	showcase/packages/pydantic-ai/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/pydantic-ai/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/pydantic-ai/src/app/demos/hitl/page.tsx
#	showcase/packages/spring-ai/manifest.yaml
#	showcase/packages/spring-ai/src/app/api/debug/route.ts
#	showcase/packages/spring-ai/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/spring-ai/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/spring-ai/src/app/demos/hitl/page.tsx
#	showcase/packages/spring-ai/src/app/demos/tool-rendering/page.tsx
#	showcase/packages/spring-ai/src/main/java/com/copilotkit/showcase/springai/AgentConfig.java
#	showcase/packages/spring-ai/src/main/java/com/copilotkit/showcase/springai/tools/WeatherTool.java
#	showcase/packages/spring-ai/tests/e2e/gen-ui-tool-based.spec.ts
#	showcase/packages/spring-ai/tests/e2e/hitl.spec.ts
#	showcase/packages/spring-ai/tsconfig.json
#	showcase/packages/strands/manifest.yaml
#	showcase/packages/strands/src/agents/agent.py
#	showcase/packages/strands/src/app/demos/agentic-chat/page.tsx
#	showcase/packages/strands/src/app/demos/gen-ui-tool-based/page.tsx
#	showcase/packages/strands/src/app/demos/hitl/page.tsx
#	showcase/packages/strands/src/app/demos/tool-rendering/page.tsx
#	showcase/shell/src/data/registry.json
2026-04-13 19:57:58 -07:00
github-actions[bot] 88763b348c style: auto-fix formatting 2026-04-14 00:41:48 +00:00
Jordan Ritter e233d08f40 feat: upgrade all 17 showcase packages to full feature parity
Each package wraps shared tools in its framework's idiom, demo pages import
from @copilotkit/showcase-shared via tsconfig paths. Comprehensive Playwright
e2e tests adapted per package (130+ test files).

Cross-cutting fixes: debug routes (/ok→/health), dead code removal,
error boundaries, thread safety, langroid adapter, claude-sdk-ts text emission.
2026-04-13 17:38:55 -07:00
Jordan Ritter 9a9a8e380e fix: add lockfiles to showcase packages, switch to npm ci for reproducible builds 2026-04-12 23:40:22 -07:00
Jordan Ritter 1bdc85845a fix: pin all showcase Docker base images to specific minor versions 2026-04-12 23:40:16 -07:00
Jordan Ritter 204dd29a97 fix: standardize health checks on /health port 8000 2026-04-08 21:22:35 -07:00
Jordan Ritter 6f679bd092 feat: deploy Claude SDK, Langroid, and Spring AI integrations 2026-04-08 19:59:30 -07:00
Jordan Ritter 101a783c0c fix: replace TODO placeholders and fix markdown rendering in demo content 2026-04-08 19:59:30 -07:00
Jordan Ritter 479e62cb7f feat: add unified showcase platform with CI, Docker starters, and 13 deployed integrations 2026-04-08 19:59:29 -07:00