mirror of
https://github.com/CopilotKit/CopilotKit.git
synced 2026-09-14 16:26:20 +08:00
a3d93266e9
Real demo-time bugs in the langgraph-python integration:
- `interrupt-headless` was rendering hardcoded stale slot dates from a
`DEFAULT_SLOTS` constant instead of reading `payload.slots` that the
backend `interrupt(...)` already supplies. Sibling `gen-ui-interrupt`
does this correctly. Headless variant now matches.
- `_shared/interrupt-fallback-slots.ts` (new) — the JS fallback for
when the backend returns no `slots` array. Generates relative to
Date.now() so the picker never shows past dates. Used by both
`interrupt-headless` and `gen-ui-interrupt`. Deletes the old stale-
literal `gen-ui-interrupt/fallback-slots.ts` (dates from April that
had already decayed).
- `interrupt_agent.py` — replaced hardcoded `timezone(timedelta(-7))`
PDT with `zoneinfo.ZoneInfo("America/Los_Angeles")` so the demo
doesn't lie about offsets in winter. Also fixed a Sunday edge case
where `next_monday` collapsed to the same date as `tomorrow` (both
Python and the JS fallback) — added a `<= 1` skip-a-week guard.
- `package.json#dev` ran `uvicorn agent_server:app --port 8000` but
`src/agent_server.py` was a 3-line stub with no `app` symbol AND the
API route pointed at port 8123. Replaced with the canonical
`langgraph_cli dev --port 8123` invocation; deleted the dead stub.
- `entrypoint.sh:47` smoke-checked `src/agents/tools.py` (a file that
never existed) so every Railway boot logged a phantom ERROR. Dropped.
- `reasoning_agent.py` and `tool_rendering_reasoning_chain_agent.py`
intentionally omit `CopilotKitMiddleware` (they exercise only
reasoning-token streaming, no frontend tools / app context). Added a
one-line comment so a future maintainer doesn't cargo-cult it back in.
- `subagents._invoke_sub_agent` text-block walker had a regression
where a `{"type":"text","text":null}` payload (a known provider
quirk) would crash `"".join(parts)` with `TypeError: sequence item
N: expected str instance, NoneType found`. Restored the
`isinstance(block.get("text"), str)` guard.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
52 lines
1.5 KiB
JSON
52 lines
1.5 KiB
JSON
{
|
|
"name": "@copilotkit/showcase-langgraph-python",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "concurrently \"next dev --turbopack\" \"python -u -m langgraph_cli dev --config langgraph.json --host 0.0.0.0 --port 8123 --no-browser\"",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "next lint",
|
|
"test:e2e": "playwright test"
|
|
},
|
|
"dependencies": {
|
|
"@copilotkit/a2ui-renderer": "1.56.5",
|
|
"@copilotkit/react-core": "1.56.5",
|
|
"@copilotkit/runtime": "1.56.5",
|
|
"@copilotkit/shared": "1.56.5",
|
|
"@copilotkit/voice": "1.56.5",
|
|
"@hashbrownai/core": "0.5.0-beta.4",
|
|
"@hashbrownai/react": "0.5.0-beta.4",
|
|
"@json-render/core": "0.18.0",
|
|
"@json-render/react": "0.18.0",
|
|
"@radix-ui/react-checkbox": "^1.3.3",
|
|
"@radix-ui/react-separator": "^1.1.8",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cmdk": "^0.2.1",
|
|
"embla-carousel-react": "^8.6.0",
|
|
"lucide-react": "^1.14.0",
|
|
"next": "^15.5.15",
|
|
"openai": "^5.9.0",
|
|
"radix-ui": "^1.4.3",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"react-markdown": "^10.1.0",
|
|
"recharts": "^2.15.0",
|
|
"remark-gfm": "^4.0.1",
|
|
"tailwind-merge": "^3.5.0",
|
|
"yaml": "^2.8.4",
|
|
"zod": "^3.24.0"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.59.1",
|
|
"@tailwindcss/postcss": "^4.0.0",
|
|
"@types/node": "^22.0.0",
|
|
"@types/react": "^19.0.0",
|
|
"concurrently": "^9.1.0",
|
|
"postcss": "^8.5.0",
|
|
"tailwindcss": "^4.0.0",
|
|
"typescript": "^5.7.0"
|
|
}
|
|
}
|