copilotkit 4.9.0 → 4.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +24 -0
  2. package/cli-build-info.json +7 -7
  3. package/index.js +559 -96
  4. package/onboarding/index.json +10 -0
  5. package/onboarding/prompts/authenticate/start.md +43 -17
  6. package/onboarding/prompts/credentials/finalize-plan.md +62 -14
  7. package/onboarding/prompts/credentials/plan.md +26 -20
  8. package/onboarding/prompts/fallback/best-effort.md +10 -3
  9. package/onboarding/prompts/framework/ag2.md +2 -2
  10. package/onboarding/prompts/framework/agno.md +2 -2
  11. package/onboarding/prompts/framework/built-in.md +2 -2
  12. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  13. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  14. package/onboarding/prompts/framework/crewai-flows.md +2 -2
  15. package/onboarding/prompts/framework/deep-agents.md +2 -2
  16. package/onboarding/prompts/framework/google-adk.md +2 -2
  17. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  18. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  19. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  20. package/onboarding/prompts/framework/llamaindex.md +2 -2
  21. package/onboarding/prompts/framework/mastra.md +2 -2
  22. package/onboarding/prompts/framework/ms-agent-dotnet.md +2 -2
  23. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
  24. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  25. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  26. package/onboarding/prompts/framework/strands-python.md +2 -2
  27. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  28. package/onboarding/prompts/frontend/angular.md +7 -2
  29. package/onboarding/prompts/frontend/nextjs.md +17 -2
  30. package/onboarding/prompts/frontend/plan.md +12 -6
  31. package/onboarding/prompts/frontend/react-native.md +2 -2
  32. package/onboarding/prompts/frontend/react-spa.md +2 -2
  33. package/onboarding/prompts/frontend/vue.md +2 -2
  34. package/onboarding/prompts/implementation/build-and-validate.md +19 -4
  35. package/onboarding/prompts/proof/complete.md +51 -15
  36. package/onboarding/prompts/proof/oss-baseline.md +3 -3
  37. package/onboarding/prompts/proof/round-trip.md +192 -60
  38. package/onboarding/prompts/starter/clone.md +67 -0
  39. package/onboarding/prompts/subagent/create-plan.md +22 -4
  40. package/onboarding/prompts/subagent/implement-and-validate.md +17 -2
  41. package/onboarding/prompts/subagent/inspect-repository.md +11 -1
  42. package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
  43. package/onboarding/prompts/subagent/prove-round-trip.md +184 -58
  44. package/onboarding/prompts/unsupported/no-validated-path.md +6 -5
  45. package/package.json +1 -1
  46. package/release/release-tool.js +15 -1
@@ -31,10 +31,28 @@ combined. Take the constructor from the connect-your-runtime page. Where a frame
31
31
  quickstart shows a `runner` option instead, the connect-your-runtime page wins.
32
32
 
33
33
  When the starting state is `both-oss`, use its recorded live baseline evidence. Preserve
34
- the working agent, frontend, CopilotKit integration, and OSS behavior. Plan only the
35
- project selection, Intelligence runtime configuration, and authenticated proof needed for
36
- the conversion. Preserve the existing persistence and user-visible request. Do not
37
- rebuild a path that already works.
34
+ the working agent, frontend, CopilotKit integration, and OSS behavior. Plan the project
35
+ selection, the CopilotKit dependency upgrade below, the Intelligence runtime
36
+ configuration, and the authenticated proof needed for the conversion. Preserve the
37
+ existing persistence and user-visible request. Do not rebuild a path that already works.
38
+
39
+ Preserving the OSS baseline preserves the application, not its CopilotKit dependency
40
+ versions. An install that predates the managed platform defaults carries a bundled
41
+ reference naming hosts that route nothing, and it requires the platform URLs the same
42
+ documentation calls optional. A run that reads that reference configures the runtime
43
+ against a dead host, and the failure arrives as an empty-body 404 with no cause named.
44
+
45
+ If any `@copilotkit/*` dependency is below 1.64.0, plan to upgrade every `@copilotkit/*`
46
+ dependency to its latest published version. Packages that share a version line must end
47
+ on the same version. Never force a package onto a version line it does not publish on.
48
+ Resolve each latest version at run time rather than from a remembered version number.
49
+ Where every `@copilotkit/*` dependency already meets that floor, plan no dependency
50
+ change.
51
+
52
+ Plan the upgrade as its own step before the Intelligence runtime wiring, and plan to
53
+ re-run the recorded baseline checks immediately after it. Name the revert: restore the
54
+ manifest and lockfile to their recorded state and stop, rather than wiring Intelligence
55
+ onto a baseline the upgrade broke.
38
56
 
39
57
  Where the SDK requires an application-level value that the repository cannot supply, such
40
58
  as an end-user identity for threads, use one clearly marked local placeholder and name what
@@ -27,8 +27,23 @@ for.
27
27
 
28
28
  For a recorded `both-oss` baseline, preserve the existing agent, frontend, CopilotKit
29
29
  integration, user-visible request, and runtime behavior. Do not replace the existing
30
- persistence. Change only the approved project selection and Intelligence runtime wiring.
31
- Run the recorded baseline checks after the change and report any regression.
30
+ persistence. Change only the approved project selection, the approved CopilotKit
31
+ dependency upgrade, and the Intelligence runtime wiring.
32
+ Run the recorded baseline checks again after the Intelligence wiring and report any
33
+ regression.
34
+
35
+ Apply the planned CopilotKit dependency upgrade before you wire Intelligence, as its own
36
+ step, and record each version it changed. Then re-run the recorded baseline checks. A
37
+ regression at this point can only be the upgrade, which is why it is checked here rather
38
+ than after the wiring.
39
+
40
+ If the baseline regresses, restore the manifest and lockfile to their recorded state,
41
+ leave Intelligence unwired, and report the regression with the failing check. A
42
+ half-upgraded project with no working chat is worse than the one this run was given, and
43
+ finishing the wiring on top of a broken baseline hides which change broke it.
44
+
45
+ Report each `@copilotkit/*` version before and after the upgrade. Where the plan named no
46
+ dependency change, say that the installed versions already met the floor.
32
47
 
33
48
  When the documentation creates the frontend with the framework's own scaffolder,
34
49
  run that scaffolder rather than hand-authoring what it emits.
@@ -8,6 +8,15 @@ Inspect the repository without changing it. Find evidence for:
8
8
  - current CopilotKit packages and configuration
9
9
  - authentication boundaries
10
10
  - names of required credential variables, without reading their values
11
+ - package manager and lockfile
12
+ - required toolchains and their installed versions
13
+ - declared ports and whether each port is available
14
+ - CopilotKit package versions and package compatibility risks
15
+
16
+ For the CopilotKit versions, report the exact installed version of every `@copilotkit/*`
17
+ dependency, read from the lockfile rather than a manifest range, and state whether any of
18
+ them is below 1.64.0. The conversion decides its upgrade from exactly that, and a caret
19
+ range does not answer it.
11
20
 
12
21
  A project states what it is for in its `README.md`, in its package description, or in
13
22
  the prompt of an agent it already has. Quote that statement rather than rewriting it. An
@@ -16,7 +25,8 @@ evidence. State the purpose as unproved when the project never says.
16
25
 
17
26
  Gather what you need in as few commands as possible. Combine independent reads into one
18
27
  command rather than running them one at a time. Split a command only when its result decides
19
- what you run next.
28
+ what you run next. Keep this preflight read-only. Do not install packages, stop processes,
29
+ or change a port. Check only the toolchains and ports that repository files require.
20
30
 
21
31
  Return the file paths and a short finding for each item. State each absent or unproved item.
22
32
  Do not read, print, or return secret values. Do not read a file outside the project
@@ -16,7 +16,7 @@ Prove the live runtime in this order:
16
16
  4. Confirm from project files that the runtime constructor passes a `runner` option rather
17
17
  than an `intelligence` option. A package, import, project file, or key is not use proof.
18
18
  5. Run
19
- `npx --yes copilotkit@4.9.0 verify --expect-runtime oss --round-trip --agent <expected-agent-id> --json`,
19
+ `npx --yes copilotkit@4.9.2 verify --expect-runtime oss --round-trip --agent <expected-agent-id> --json`,
20
20
  with the runtime URL or auth header options that this project needs. Require exit zero
21
21
  and the JSON `ok` field to be `true`.
22
22
  6. Drive one real request through the existing frontend, CopilotKit runtime, and expected
@@ -4,63 +4,90 @@ Use the proof steps and documentation URLs from the approved plan. Fetch every s
4
4
  URL in one step before you start, rather than one after another.
5
5
  Do not use remembered CopilotKit instructions.
6
6
 
7
+ Run the steps below in the order they appear. They are the proof. Do not design a
8
+ different sequence of your own, and do not drop a step because an earlier one looked
9
+ convincing. Step 6 has a web form and a React Native form: run the one that matches this
10
+ journey's frontend, and run only that one.
11
+
12
+ Record the result of every step as you go. A step with nothing recorded did not happen.
13
+ Write each captured file to `.copilotkit/proof/` inside the project and name the path in
14
+ the record. That directory holds regenerable evidence rather than application code. Where
15
+ a browser or device tool writes to a location of its own, keep that location and record
16
+ it instead.
17
+
7
18
  A fetch tool that refuses a URL, or fails to reach it, reports a limit of the tool and
8
19
  not a fact about the page. Retrieve the same URL a second way before you judge it. Run
9
20
  `curl -fsSL <url>`, or read the same page without the `.md` suffix. Report a
10
21
  documentation gap only after a second method also fails.
11
22
 
12
- Read the port the developer's agent already serves from this project's own
13
- configuration. Do not assume a default, and do not start a second copy of an agent this
14
- project is already running. Before you bind any new server, check that the port is free
15
- and pick another one if it is not. Record every port you used.
23
+ Gather what you need in as few commands as possible. Combine independent reads into one
24
+ command rather than running them one at a time. Split a command only when its result decides
25
+ what you run next.
16
26
 
17
- Start the agent and the selected frontend.
27
+ ## Step 1 -- Read what the proof needs
18
28
 
19
- Leave the agent and frontend servers running after proof. Record each process ID and a
20
- safe command that stops that process. Record the frontend URL and the commands that start
21
- both servers again.
29
+ Read all of this from the approved plan in one pass, before you start anything:
22
30
 
23
- With both running, check the wiring in one command before you open a browser:
24
- `npx --yes copilotkit@4.9.0 verify --json`. Add `--runtime-url` when the runtime is not at
25
- `http://localhost:3000/api/copilotkit`. Read the individual checks rather than the summary
26
- alone: a check reported `undetermined` did not run, and that is not a pass. Fix anything
27
- that is not a pass before the browser, because a browser failure stacked on broken wiring
28
- costs a round of debugging to reach an answer this command already gave.
31
+ - the exact request to send through the frontend, in the words the plan gave it,
32
+ - the user-visible result that request has to produce,
33
+ - the expected agent id,
34
+ - where the project's own data lives, and which entities the answer has to name,
35
+ - the start command for the agent and for the frontend, from the plan where it named
36
+ one and from the project's own scripts otherwise,
37
+ - the runtime URL.
29
38
 
30
- Treat `intelligence_consumed` as the check that matters most here. A journey that finishes
31
- with the Intelligence credential never read looks complete and proves nothing about the
32
- paid surface. `api_key_authenticates` passing beside it says the key is real and the
33
- runtime never used it.
39
+ Where the plan named no request, write one that produces the outcome the plan named, and
40
+ record the request you wrote. Every later step uses these words unchanged, so that the
41
+ browser, the device, and the grounding check all speak about one request.
34
42
 
35
- `intelligence_thread_routes` fails when the runtime reports a license but serves no
36
- thread routes, which means saved Threads cannot load in a browser. The usual cause is a
37
- handler mounted `mode: "single-route"`: remove that option so the handler serves its full
38
- route set, and mount it at a catch-all route. If instead that check is `undetermined`
39
- because the runtime reports no thread-endpoint state, the runtime predates the field.
40
- Record that and move on — there is nothing to repair.
43
+ ## Step 2 -- Start the agent and the frontend
41
44
 
42
- Then prove that the agent actually runs, which is the gate for this node:
43
- `npx --yes copilotkit@4.9.0 verify --round-trip --json`. It sends one request through the
44
- runtime and reads the answer back from the thread, so it separates an agent that is
45
- configured from an agent that works. Use `--agent <id>` when the runtime declares more
46
- than one. If it reports `user-not-identified`, this project's `identifyUser` reads a
47
- session the CLI does not carry: pass what it reads with `--header "Name: value"` and run
48
- it again, because an auth-gated app refusing an unauthenticated caller is that app
49
- working. Do not continue until this passes, and never report a round trip proven without
50
- it.
45
+ Read the port the developer's agent already serves from this project's own configuration.
46
+ Do not assume a default, and do not start a second copy of an agent this project is
47
+ already running. Before you bind any new server, check that the port is free and pick
48
+ another one if it is not. Record every port you used.
49
+
50
+ The table names what each frontend's own scaffolder writes, for recognizing a port in a
51
+ started process's output. The project's configuration wins over the table.
52
+
53
+ | Frontend | Dev server the scaffolder writes |
54
+ | ------------ | -------------------------------- |
55
+ | Next.js | `next dev`, port 3000 |
56
+ | React SPA | Vite, port 5173 |
57
+ | Vue 3 | Vite, port 5173 |
58
+ | Angular | `ng serve`, port 4200 |
59
+ | React Native | Metro, port 8081 |
60
+
61
+ Where this project's runtime runs as a process of its own, the frontend documentation
62
+ puts it on port 8200. Use the runtime URL from step 1 rather than that number.
63
+
64
+ Start each server in the background with the project's own script. Then wait for it to
65
+ answer rather than for a fixed number of seconds:
66
+
67
+ ```bash
68
+ ready=
69
+ for _ in $(seq 90); do
70
+ curl -fs -o /dev/null "<url>" && ready=1 && break
71
+ sleep 1
72
+ done
73
+ [ "$ready" = 1 ] && echo "up" || echo "no answer from <url> after 90 seconds"
74
+ ```
51
75
 
52
- Then send one real request through the frontend. Make sure that the request passes through
53
- CopilotKit and reaches the selected agent.
76
+ Read the loop's own last line rather than assuming it ended because the server answered.
77
+ A server that never answered has written the reason to its own output, and reading that
78
+ output is faster than starting it again.
54
79
 
55
- For a recorded `both-oss` starting state: Compare the final round trip with the recorded
56
- OSS baseline. The same frontend request must still reach the same agent and produce the
57
- same kind of user-visible result. The runtime must now report `licenseStatus`, and the
58
- authenticated Intelligence checks must pass. Record both before and after evidence.
80
+ Leave the agent and frontend servers running after proof. Record each process ID and a
81
+ safe command that stops that process. Record the frontend URL and the commands that start
82
+ both servers again.
83
+
84
+ ## Step 3 -- Identify the process that answered
59
85
 
60
86
  Before you trust the agent, confirm that the process answering is the one in this
61
87
  repository. `verify` reports which agents the runtime declares and has nothing to compare
62
88
  them against, and `--round-trip` proves an agent answers under the declared id without
63
- proving which deployment did, so this comparison is yours. A health endpoint that returns success proves only that something listens on
89
+ proving which deployment did, so this comparison is yours. A health endpoint that returns
90
+ success proves only that something listens on
64
91
  that port. An agent from earlier work often still holds it, and a stale process answers
65
92
  as though it were the new one. Ask the running agent which graph or agent id it serves
66
93
  and compare that with the id declared in this project.
@@ -78,23 +105,112 @@ by one.
78
105
  Address a local agent by host name rather than by an IP literal. Some local agents bind
79
106
  IPv6 only, so an IPv4 literal fails against the correct port.
80
107
 
81
- Drive the real UI in a browser whenever your environment can, and make sure that the
82
- frontend receives working generative UI from the agent. Prefer this: it is the only step
83
- that covers realtime delivery to a browser, browser-origin CORS and CSP, the frontend
84
- provider being wired to this runtime, and a generative UI component actually rendering,
85
- and no command-line check reaches any of them.
108
+ ## Step 4 -- Check the wiring
86
109
 
87
- Use a browser MCP server already configured for the coding agent you are running as, the
88
- same way the CopilotKit documentation MCP server below is configured. Do not add a browser
89
- driver to this project: a devDependency and a browser download land in the diff and tax a
90
- repository that never asked for one. If nothing in your environment can drive a
91
- browser, skip this step rather than installing one, and never report a visual result you
92
- did not see.
110
+ With both running, check the wiring in one command before you open a browser:
111
+ `npx --yes copilotkit@4.9.2 verify --json`. Add `--runtime-url` when the runtime is not at
112
+ `http://localhost:3000/api/copilotkit`. Read the individual checks rather than the summary
113
+ alone: a check reported `undetermined` did not run, and that is not a pass. Fix anything
114
+ that is not a pass before the browser, because a browser failure stacked on broken wiring
115
+ costs a round of debugging to reach an answer this command already gave.
93
116
 
94
- Report exactly one of `performed`, `skipped-no-browser-tool`, or `failed` for this step.
117
+ Treat `intelligence_consumed` as the check that matters most here. A journey that finishes
118
+ with the Intelligence credential never read looks complete and proves nothing about the
119
+ paid surface. `api_key_authenticates` passing beside it says the key is real and the
120
+ runtime never used it.
95
121
 
96
- Record the input, visible result, relevant process status, and evidence locations. Do not
97
- return secret values.
122
+ `intelligence_thread_routes` fails when the runtime reports a license but serves no
123
+ thread routes, which means saved Threads cannot load in a browser. The usual cause is a
124
+ handler mounted `mode: "single-route"`: remove that option so the handler serves its full
125
+ route set, and mount it at a catch-all route. If instead that check is `undetermined`
126
+ because the runtime reports no thread-endpoint state, the runtime predates the field.
127
+ Record that and move on -- there is nothing to repair.
128
+
129
+ ## Step 5 -- Prove that the agent runs
130
+
131
+ Run `npx --yes copilotkit@4.9.2 verify --round-trip --json`. It sends one request through
132
+ the runtime and reads the answer back from the thread, so it separates an agent that is
133
+ configured from an agent that works. Use `--agent <id>` when the runtime declares more
134
+ than one. If it reports `user-not-identified`, this project's `identifyUser` reads a
135
+ session the CLI does not carry: pass what it reads with `--header "Name: value"` and run
136
+ it again, because an auth-gated app refusing an unauthenticated caller is that app
137
+ working. Do not continue until this passes, and never report a round trip proven without
138
+ it.
139
+
140
+ ## Step 6 -- Drive the surface
141
+
142
+ Now send one real request through the running frontend, on this journey's own surface.
143
+ Make sure that the request passes through CopilotKit and reaches the selected agent, and
144
+ that the frontend receives working generative UI from the agent. This is the step that
145
+ covers realtime delivery, the frontend provider being wired to this runtime, and a
146
+ generative UI component actually rendering, and no command-line check reaches any of them.
147
+ It is not optional polish: a run that skips it has proven the agent and not the journey,
148
+ and the graph ends such a run as blocked rather than complete.
149
+
150
+ Use the surface control the main coding agent recorded for your environment. Do not add a
151
+ browser driver or a device tool to this project: a devDependency and a browser download
152
+ land in the diff and tax a repository that never asked for one. If nothing in your
153
+ environment can drive the surface this journey needs, skip this step rather than
154
+ installing one, and report the skip outcome named below.
155
+
156
+ Never report a result you did not see, on either surface.
157
+
158
+ ### Step 6a -- Web frontends: React SPA, Next.js, Angular, Vue 3
159
+
160
+ The surface is a browser, and it also covers browser-origin CORS and CSP, which a CLI
161
+ request never exercises. Use a browser MCP server already configured for the coding agent
162
+ you are running as, the same way step 9 configures the CopilotKit documentation MCP
163
+ server.
164
+
165
+ 1. Open the frontend URL from step 2 and wait for the page to finish loading.
166
+ 2. Take one page snapshot. Record whether the CopilotKit surface is on the page. A page
167
+ that renders without it is a wiring failure rather than a proof to retry.
168
+ 3. Read the browser console before you type anything, and record every error already
169
+ there. An error at this point belongs to page load rather than to the request.
170
+ 4. Enter the step 1 request into the CopilotKit input, in the words step 1 recorded, and
171
+ submit it.
172
+ 5. Wait for the assistant turn to finish rather than for a fixed number of seconds. The
173
+ turn is finished when the streamed text stops growing and the generative UI component
174
+ has rendered.
175
+ 6. Take one screenshot of the finished turn and record where you wrote it.
176
+ 7. Read the browser console a second time, and record every error that step 3 did not
177
+ already list. Those belong to the request.
178
+ 8. Read the network requests. Record every request the page made to the runtime endpoint
179
+ and the status each returned. An answer on the page with no successful request to this
180
+ runtime behind it came from something else, and that is a failed proof rather than a
181
+ passing one.
182
+ 9. Record one line for the finished turn: the time, the page URL, the element you read
183
+ the answer from, and what that element showed.
184
+
185
+ Report exactly one of `performed`, `skipped-no-browser-tool`, or `failed` for a web
186
+ frontend.
187
+
188
+ ### Step 6b -- React Native
189
+
190
+ The surface is a device or emulator, and a browser cannot stand in for it.
191
+
192
+ 1. List the booted devices in one command: `adb devices -l`. With no booted device this
193
+ step is `skipped-no-device`. Do not substitute a browser.
194
+ 2. Build and install the app on the booted device with the project's own script, which
195
+ an Expo or React Native CLI project names in `package.json`.
196
+ 3. Clear the log buffer before the request: `adb logcat -c`.
197
+ 4. Open the CopilotKit surface in the running app and enter the step 1 request, in the
198
+ words step 1 recorded.
199
+ 5. Wait for the assistant turn to finish rather than for a fixed number of seconds.
200
+ 6. Capture the terminal state with
201
+ `adb exec-out screencap -p > .copilotkit/proof/surface.png`, and record that path.
202
+ 7. Read the log for the request with `adb logcat -d -t 500`. A redbox is a runtime failure
203
+ the terminal state never shows.
204
+ 8. Record one line for the finished turn: the time, the platform, the device id, the
205
+ screen you were on, and what that screen showed.
206
+
207
+ An Android emulator reaches a runtime on the host machine at `10.0.2.2` rather than at
208
+ `localhost`. A request that fails against the runtime with nothing in the runtime's own
209
+ log is that, rather than a broken runtime.
210
+
211
+ Report exactly one of `performed`, `skipped-no-device`, or `failed` for React Native.
212
+
213
+ ## Step 7 -- Check the answer against the project's data
98
214
 
99
215
  Where the answer is meant to be about data the project holds, check it against that data.
100
216
  Read the entities the project holds -- the ids, names, or records the answer claims to
@@ -110,6 +226,16 @@ project's data never reaches the agent, the agent receives it and its instructio
110
226
  it, the page loads its data after the context was registered, or the run wired a different
111
227
  source than the page renders. Fix that cause, then prove again.
112
228
 
229
+ ## Step 8 -- Compare with the recorded OSS baseline
230
+
231
+ Run this step only for a recorded `both-oss` starting state. Compare the final round trip
232
+ with the recorded OSS baseline. The same frontend request must still reach the same agent
233
+ and produce the same kind of user-visible result. The runtime must now report
234
+ `licenseStatus`, and the authenticated Intelligence checks must pass. Record both before
235
+ and after evidence.
236
+
237
+ ## Step 9 -- Set up the continued-development tools
238
+
113
239
  Fetch the continued-development guide from the main coding agent with the proof
114
240
  documentation. Try the continued-development tools after the application passes proof.
115
241
  Use it to install the project-scoped CopilotKit Skills.
@@ -119,9 +245,9 @@ Do not validate whether the Skills or MCP server installed correctly. Record the
119
245
  result for each attempt. Report each tool result separately. A tool error does not change
120
246
  the proof result.
121
247
 
122
- Gather what you need in as few commands as possible. Combine independent reads into one
123
- command rather than running them one at a time. Split a command only when its result decides
124
- what you run next.
248
+ ## Step 10 -- Return the result
125
249
 
126
250
  Return the proof or the exact failed step to the main coding agent, together with the
127
- visual-check outcome. Stop after you return the result.
251
+ input, the visible result, the relevant process status, the evidence locations, the
252
+ surface-check outcome, and which surface that outcome speaks for. Do not return secret
253
+ values. Stop after you return the result.
@@ -18,12 +18,13 @@ Mark each step that the selected pages do not prove. Do not treat the documentat
18
18
  proof that the requested integration is unsupported.
19
19
 
20
20
  After the developer approves the best-effort plan, run
21
- `npx --yes copilotkit@4.9.0 onboard read fallback/best-effort`.
21
+ `npx --yes copilotkit@4.9.2 onboard read fallback/best-effort`.
22
22
 
23
- If the developer permitted external feedback at the start, you can send one short report:
23
+ Send one short report. Run the feedback command without another developer question. The
24
+ CLI telemetry gate decides whether the report is sent.
24
25
 
25
26
  ```text
26
- npx --yes copilotkit@4.9.0 onboard feedback
27
+ npx --yes copilotkit@4.9.2 onboard feedback
27
28
  ```
28
29
 
29
30
  Write the feedback message to the command's standard input, in at most four lines.
@@ -31,5 +32,5 @@ Send no secrets, source code, logs, or command output. The command refuses a rep
31
32
  that carries any of those, prints the reason, and exits zero. A refused report is not
32
33
  a failed step. Reword it and send it again, or stop without a report. The command
33
34
  prints what it sent. This is the channel for a stop. Report friction only from a run that
34
- finished, never from here. If the developer did not permit feedback, do not run the
35
- command.
35
+ finished, never from here. If the CLI says that telemetry is disabled or unavailable,
36
+ state that the report was not sent and stop without another question.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "copilotkit",
3
- "version": "4.9.0",
3
+ "version": "4.9.2",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -76,6 +76,9 @@ var agentCore = copilotKitStarter("examples/integrations/agentcore");
76
76
  var STARTER_SOURCE_CATALOG = {
77
77
  "langgraph-py": langGraphPython,
78
78
  "langgraph-js": copilotKitStarter("examples/integrations/langgraph-js"),
79
+ "langgraph-fastapi": copilotKitStarter(
80
+ "examples/integrations/langgraph-fastapi"
81
+ ),
79
82
  "claude-sdk-typescript": copilotKitStarter(
80
83
  "examples/integrations/claude-sdk-typescript"
81
84
  ),
@@ -14695,7 +14698,7 @@ import * as path4 from "node:path";
14695
14698
 
14696
14699
  // apps/cli/src/config.ts
14697
14700
  function getTemplateRef() {
14698
- return true ? "bf2068734bcc42b9dc9999b183d0fd07a673f713" : "main";
14701
+ return true ? "e432fd161b9114fb15080dbd9d9208e29f5e8960" : "main";
14699
14702
  }
14700
14703
 
14701
14704
  // apps/cli/src/services/agentcore-config.ts
@@ -14897,6 +14900,7 @@ var AGENT_FRAMEWORKS = Object.keys(
14897
14900
  var FRAMEWORK_EMOJI = {
14898
14901
  "langgraph-py": "\u{1F99C}",
14899
14902
  "langgraph-js": "\u{1F99C}",
14903
+ "langgraph-fastapi": "\u{1F99C}",
14900
14904
  "claude-sdk-typescript": "\u{1F506}",
14901
14905
  "claude-sdk-python": "\u{1F506}",
14902
14906
  flows: "\u{1F465}",
@@ -14927,6 +14931,10 @@ var FRAMEWORK_CHOICES = [
14927
14931
  label: `${FRAMEWORK_EMOJI["langgraph-js"]} LangGraph (JavaScript)`,
14928
14932
  value: "langgraph-js"
14929
14933
  },
14934
+ {
14935
+ label: `${FRAMEWORK_EMOJI["langgraph-fastapi"]} LangGraph (Python, FastAPI)`,
14936
+ value: "langgraph-fastapi"
14937
+ },
14930
14938
  {
14931
14939
  label: `${FRAMEWORK_EMOJI["claude-sdk-typescript"]} Claude Agent SDK (TypeScript)`,
14932
14940
  value: "claude-sdk-typescript"
@@ -15023,6 +15031,7 @@ var GOOGLE_ENV_KEY = {
15023
15031
  function standardTemplate(framework, template, successEmoji) {
15024
15032
  const pythonUvTemplates = /* @__PURE__ */ new Set([
15025
15033
  "langgraph-py",
15034
+ "langgraph-fastapi",
15026
15035
  "claude-sdk-python",
15027
15036
  "flows",
15028
15037
  "llamaindex",
@@ -15060,6 +15069,11 @@ var FRAMEWORK_TEMPLATES = {
15060
15069
  TEMPLATE_REPOS["langgraph-js"],
15061
15070
  `\u{1FA81}\u{1F91D}${FRAMEWORK_EMOJI["langgraph-js"]}`
15062
15071
  ),
15072
+ "langgraph-fastapi": standardTemplate(
15073
+ "langgraph-fastapi",
15074
+ TEMPLATE_REPOS["langgraph-fastapi"],
15075
+ `\u{1FA81}\u{1F91D}${FRAMEWORK_EMOJI["langgraph-fastapi"]}`
15076
+ ),
15063
15077
  "claude-sdk-typescript": {
15064
15078
  ...standardTemplate(
15065
15079
  "claude-sdk-typescript",