copilotkit 4.9.4 → 4.9.24

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 (47) hide show
  1. package/README.md +26 -12
  2. package/cli-build-info.json +8 -8
  3. package/index.js +3508 -2375
  4. package/onboarding/index.json +15 -1
  5. package/onboarding/prompts/authenticate/start.md +129 -65
  6. package/onboarding/prompts/conversion/plan.md +113 -0
  7. package/onboarding/prompts/credentials/finalize-plan.md +174 -138
  8. package/onboarding/prompts/credentials/plan.md +26 -21
  9. package/onboarding/prompts/fallback/best-effort.md +103 -22
  10. package/onboarding/prompts/framework/ag2.md +7 -7
  11. package/onboarding/prompts/framework/agno.md +11 -8
  12. package/onboarding/prompts/framework/built-in.md +2 -2
  13. package/onboarding/prompts/framework/claude-sdk-python.md +7 -7
  14. package/onboarding/prompts/framework/claude-sdk-typescript.md +9 -9
  15. package/onboarding/prompts/framework/crewai-flows.md +27 -11
  16. package/onboarding/prompts/framework/deep-agents.md +8 -7
  17. package/onboarding/prompts/framework/google-adk.md +3 -3
  18. package/onboarding/prompts/framework/langgraph-fastapi.md +3 -3
  19. package/onboarding/prompts/framework/langgraph-python.md +3 -3
  20. package/onboarding/prompts/framework/langgraph-typescript.md +3 -3
  21. package/onboarding/prompts/framework/llamaindex.md +6 -6
  22. package/onboarding/prompts/framework/mastra.md +3 -3
  23. package/onboarding/prompts/framework/ms-agent-dotnet.md +3 -3
  24. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +7 -9
  25. package/onboarding/prompts/framework/ms-agent-python.md +3 -3
  26. package/onboarding/prompts/framework/pydantic-ai.md +26 -15
  27. package/onboarding/prompts/framework/strands-python.md +7 -6
  28. package/onboarding/prompts/framework/strands-typescript.md +9 -7
  29. package/onboarding/prompts/frontend/angular.md +16 -3
  30. package/onboarding/prompts/frontend/nextjs.md +3 -3
  31. package/onboarding/prompts/frontend/plan.md +6 -6
  32. package/onboarding/prompts/frontend/react-native.md +7 -2
  33. package/onboarding/prompts/frontend/react-spa.md +2 -2
  34. package/onboarding/prompts/frontend/vue.md +7 -2
  35. package/onboarding/prompts/implementation/build-and-validate.md +45 -79
  36. package/onboarding/prompts/proof/complete.md +31 -12
  37. package/onboarding/prompts/proof/oss-baseline.md +15 -50
  38. package/onboarding/prompts/proof/round-trip.md +88 -268
  39. package/onboarding/prompts/starter/clone.md +17 -8
  40. package/onboarding/prompts/subagent/create-plan.md +52 -1
  41. package/onboarding/prompts/subagent/implement-and-validate.md +70 -44
  42. package/onboarding/prompts/subagent/inspect-repository.md +26 -4
  43. package/onboarding/prompts/subagent/prove-oss-baseline.md +2 -1
  44. package/onboarding/prompts/subagent/prove-round-trip.md +156 -36
  45. package/onboarding/prompts/unsupported/no-validated-path.md +10 -2
  46. package/package.json +1 -1
  47. package/release/release-tool.js +1 -1
@@ -1,7 +1,9 @@
1
1
  # Select the Intelligence project and create the plan
2
2
 
3
3
  Use the selected framework, frontend, model vendor, model, documentation URLs, and
4
- repository findings. Ask the developer only for choices that the repository does not
4
+ repository findings. On a conversion these were read from the baseline rather than
5
+ selected, and the conversion prompt recorded them: use those values and ask no framework
6
+ or frontend question here. Ask the developer only for choices that the repository does not
5
7
  show. Do not change application code in this phase. Do not read, show, store, or request
6
8
  a secret value.
7
9
 
@@ -10,6 +12,25 @@ one question. Put the recommendation first, give its evidence in one sentence, a
10
12
  the alternatives short. When project selection is unknown, ask only which Intelligence
11
13
  project to use. Keep final plan approval as its own later question.
12
14
 
15
+ ## If you stop in this phase
16
+
17
+ Several rules below stop onboarding: a refused classification value, an output path that
18
+ overlaps a protected path, a project selection that reports a false field, a failed
19
+ credential check, a model credential nobody can place. Each one ends a run that reached
20
+ project selection and never got a plan, and more runs stop here than anywhere else. Send
21
+ one short report before you stop. Run the feedback command without another developer
22
+ question. The CLI telemetry gate decides whether the report is sent.
23
+
24
+ ```text
25
+ npx --yes copilotkit@4.9.24 onboard feedback
26
+ ```
27
+
28
+ Write at most four lines to standard input: the step you stopped at and what stopped it.
29
+ Send no secrets, source code, logs, or command output. The command refuses a report that
30
+ carries any of those, prints the reason, and exits zero. A refused report is not a failed
31
+ step. Send the report, then stop the way the rule that stopped you says to. Reporting is
32
+ not a route change and does not resume the run.
33
+
13
34
  ## Record the audit cell
14
35
 
15
36
  Use the repository findings and selected choices to record the path before project work
@@ -24,7 +45,7 @@ starts. Choose one starting state: empty, agent-only, frontend-only, both, both-
24
45
  Run this command with the exact selected slugs:
25
46
 
26
47
  ```text
27
- npx --yes copilotkit@4.9.4 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend>
48
+ npx --yes copilotkit@4.9.24 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend>
28
49
  ```
29
50
 
30
51
  Do not continue if a value is refused. Fix the value from the choices that the earlier
@@ -34,61 +55,140 @@ prompts gave, then run the command again.
34
55
 
35
56
  Use the target app or runtime directory from the repository findings. If a nested app owns
36
57
  the runtime `.env` file, do not default to the repository root.
58
+ Set the environment path to `<target>/.env`.
59
+
60
+ Every credential this run writes goes to the environment path. That covers the project
61
+ key, the model credential, and a license token. Do not write a credential to `.env.local`,
62
+ or to any second env file beside it. A project ignore file usually covers `.env` and not
63
+ `.env.local`, so a credential written there is untracked, visible, and added by the first
64
+ `git add -A`. And a second env file beside `.env` outranks it when a key is read back, so
65
+ the value the run depends on is the one it did not write.
66
+
67
+ ### Prove the environment path is ignored
68
+
69
+ Do this before the first credential is written. Ask git whether it ignores the environment
70
+ path, from the repository the path lives in:
71
+
72
+ ```text
73
+ git check-ignore -q <environment path>
74
+ ```
75
+
76
+ Ask git rather than reading `.gitignore`. The answer also comes from a parent ignore file,
77
+ a global excludes file, or a pattern the developer already has, and reading one file gets
78
+ each of those wrong.
79
+
80
+ Exit zero means git ignores the path and nothing more is needed. Exit one means git tracks
81
+ the path, and the credential this run is about to write lands in the first commit. Add the
82
+ missing pattern to the ignore file the developer already keeps, and list that edit in the
83
+ plan with every other file change. Any other exit means there is no work tree here to
84
+ protect. Say so once and carry on.
85
+
86
+ If the path cannot be made ignored, stop onboarding and report it. Do not write the
87
+ credential and leave the problem in the closing report. A developer who commits before
88
+ reading the last screen has already published the token.
37
89
 
38
- If valid project fields and a non-empty `INTELLIGENCE_API_KEY` already exist, use this
90
+ If valid project fields and a non-empty `CPK_INTELLIGENCE_API_KEY` already exist, use this
39
91
  rule: Reuse that project without another question. Do not mint another key. The round-trip
40
92
  proof later runs the authenticated Intelligence checks. Record the reused project
41
93
  credentials as unverified in the plan until those checks pass.
94
+ If you reuse a project, set the project-record path to the exact evidence path from the
95
+ project research subagent.
96
+
97
+ If the developer needs a project, do the work yourself from the target directory.
98
+ Do not send the developer to another terminal.
99
+
100
+ Project selection writes the environment path. It updates the nearest project record from
101
+ the target through the repository root. If no project record exists there, it writes one at
102
+ the repository root. If no repository exists, use the target. If the repository root is the
103
+ home directory, use the target.
104
+
105
+ Before project selection, derive the expected project-record path from the repository
106
+ findings. Compare that path and the environment path with the initial protected paths. Use
107
+ the path-segment overlap rule. If either output path overlaps an initial protected path, do
108
+ not run project selection. Report the conflicting path and stop onboarding.
109
+
110
+ ### Create a project for this directory
111
+
112
+ No project is bound to this directory, so creating a project for this directory is the
113
+ default. Take the name from the directory that holds the expected project-record path. If
114
+ that directory name is generic -- `project`, `app`, `apps`, `src`, `web`, `frontend`,
115
+ `backend`, `server`, `packages`, `repo` -- use the nearest enclosing directory whose name
116
+ is not. A generic name tells the developer nothing later, and every run that derives it
117
+ collides on it.
42
118
 
43
- If the developer needs a project or another project, do the selection yourself from the
44
- target directory. Do not send the developer to another terminal.
119
+ Ask one question: confirm that name, give another, or ask to use a project they already
120
+ have. Name that third answer, so a developer who has one is not asked to guess
121
+ that it is available. Do not list the organization's projects as part of the question: a
122
+ menu of projects is what bound one onboarding to another one's project, and a developer who
123
+ wants theirs will say so. If they ask for an existing project, take the branch below.
45
124
 
46
- Read the choices first:
125
+ Do not combine this question with a frontend, framework, model, credential, or
126
+ plan-approval question. If no developer answers, create with the derived name. Never select
127
+ a project from a listing without an answer that names it. A project another run created
128
+ minutes ago reads exactly like this directory's own, and every check after the selection
129
+ passes against the wrong one.
130
+
131
+ Create it, from the target directory:
47
132
 
48
133
  ```text
49
- npx --yes copilotkit@4.9.4 project list --json
134
+ npx --yes copilotkit@4.9.24 project select --create <name> --json
50
135
  ```
51
136
 
52
- With `--json` the payload is the only thing on standard output, so it is safe to parse.
53
- Show the current selection and the five most recent projects. Sort recency by `createdAt`.
54
- Offer search, create-new, and list-all options. Do not show every project unless the
55
- developer asks.
137
+ If the command fails as a duplicate, the organization already holds that display name and
138
+ the refusal names the colliding slug. Do not select the colliding project. Ask whether that
139
+ project is this app's. If no developer answers, run the command again with the next free
140
+ `-2`, `-3` suffix on the name.
141
+
142
+ ### Select an existing project instead
143
+
144
+ Take this branch only when the developer asks for an existing project, or asks to see the
145
+ projects they have. Read the choices:
146
+
147
+ ```text
148
+ npx --yes copilotkit@4.9.24 project list --json
149
+ ```
56
150
 
57
- If the developer searches, run:
151
+ Narrow them:
58
152
 
59
153
  ```text
60
- npx --yes copilotkit@4.9.4 project list --search <query> --json
154
+ npx --yes copilotkit@4.9.24 project list --search <query> --json
61
155
  ```
62
156
 
63
- If the developer asks for all projects, show the result of the first list command. Ask
64
- which project to use, or ask for a new project name. Do not combine this question with a
65
- frontend, framework, model, credential, or plan-approval question.
157
+ With `--json` the payload is the only thing on standard output, so it is safe to parse. Do
158
+ not run either list command unless the developer asks. Show what they asked for and nothing
159
+ more. Do not order the projects by creation time: the newest project in the organization is
160
+ the one another run created while this one was working, and it is the least likely to be
161
+ this directory's.
66
162
 
67
- Then record their answer, from the target directory:
163
+ Then record the project they name, from the target directory:
68
164
 
69
165
  ```text
70
- npx --yes copilotkit@4.9.4 project select --project <slug-or-id> --json
166
+ npx --yes copilotkit@4.9.24 project select --project <slug-or-id> --json
71
167
  ```
72
168
 
73
- Use `--create <name> --json` instead when they want a new project. The two flags cannot be
74
- combined. A slug that does not exist fails and lists the real ones, so a typo cannot record
75
- a selection that points at nothing.
169
+ The two flags cannot be combined. A slug that does not exist fails and lists the real ones,
170
+ so a typo cannot record a selection that points at nothing.
171
+
172
+ Read the JSON result. It reports `selected_project_slug`, `config_path`,
173
+ `api_key_provisioned`, `project_file_written`, and `environment_file_written` at the top
174
+ level. The result does not contain a secret. Report `selected_project_slug` as the project
175
+ slug that the server selected or created. Require `api_key_provisioned`,
176
+ `project_file_written`, and `environment_file_written` to be true. If one is false, report
177
+ the error and stop onboarding. Key provisioning is non-fatal, so the command can persist a
178
+ selection and still exit zero with no key. A scaffold with no key looks finished and is not.
76
179
 
77
- Read the JSON result. It reports `selected_project_slug`, `api_key_provisioned`,
78
- `project_file_written`, and `environment_file_written` at the top level. The result does
79
- not contain a secret. Report `selected_project_slug` as the project slug that the server
80
- selected or created. Require `api_key_provisioned`, `project_file_written`, and
81
- `environment_file_written` to be true. If one is false, report the error and stop
82
- onboarding. Key provisioning is non-fatal, so the command can persist a selection and
83
- still exit zero with no key. A scaffold with no key looks finished and is not.
180
+ After project selection, set the project-record path to the absolute `config_path` from the
181
+ JSON result. If it differs from the expected project-record path, report both paths and stop
182
+ onboarding.
84
183
 
85
184
  Never print the payload or any secret value.
86
185
 
87
- After a warning-free result, send the research subagent a follow-up check. Require it to
88
- confirm these facts without showing values:
186
+ After project reuse or a warning-free selection result, send the environment
187
+ research subagent a focused follow-up check. Give it the exact target app directory and both
188
+ credential paths. Require it to report these facts without values:
89
189
 
90
- - `.copilotkit/project.json` has non-empty `projectId`, `projectSlug`, and `clerkOrgId` fields.
91
- - `.env` has a non-empty `INTELLIGENCE_API_KEY` entry.
190
+ - The project-record path has non-empty `projectId`, `projectSlug`, and `clerkOrgId` fields.
191
+ - The environment path has a non-empty `CPK_INTELLIGENCE_API_KEY` entry.
92
192
  - If project selection ran, its selected slug matches `projectSlug`.
93
193
  - If project selection ran, the `.env` file was created or its modification time advanced.
94
194
 
@@ -96,6 +196,10 @@ Do not print either file or any secret value. If a check fails, stop onboarding.
96
196
  selection success message alone does not prove key readiness. The CLI cannot prove key scope
97
197
  before an authenticated Intelligence call succeeds.
98
198
 
199
+ Continue only if the environment follow-up result starts with `Status: passed`. Retain the
200
+ project-record path and environment path as the credential setup path list. Do not add them
201
+ to the baseline yet.
202
+
99
203
  ## Where a model credential comes from
100
204
 
101
205
  The plan names the model credential variables. Finding their values is not its job.
@@ -114,6 +218,28 @@ If no answer comes, stop. Do not write a placeholder or an empty value. A scaffo
114
218
  carrying a dummy key looks finished and fails at the first model call, which is worse
115
219
  than stopping here.
116
220
 
221
+ After model credential placement is complete, add each credential setup path to the
222
+ protected path list. Also add each project file that the developer changed for model
223
+ credentials. Record them in the baseline from the target app directory:
224
+
225
+ ```text
226
+ npx --yes copilotkit@4.9.24 onboard protect --path <path>
227
+ ```
228
+
229
+ Pass one `--path` for each. The command captures a digest for each path and never re-reads
230
+ a path the baseline already holds.
231
+
232
+ Then re-capture the files this graph wrote itself. For each path the first capture printed
233
+ as `deferred` that this run has now written, run:
234
+
235
+ ```text
236
+ npx --yes copilotkit@4.9.24 onboard protect --rebaseline --path <path>
237
+ ```
238
+
239
+ From that point they are protected like any other path, so a later step that rewrites
240
+ `.env` and drops its key fails the audit rather than passing it. Continue only if every
241
+ result starts with `Status: passed`.
242
+
117
243
  ## Wire the runtime to Intelligence
118
244
 
119
245
  The key in `.env` does nothing on its own. The runtime reads no environment variable for
@@ -130,10 +256,19 @@ proof subagents:
130
256
 
131
257
  Fetch them together with the pages already selected rather than on their own.
132
258
 
133
- Spawn one planning subagent. Give it the full text of the planning brief at the end of this
134
- prompt, the repository findings, selected framework, frontend, model, credential variable
135
- names, selected documentation URLs, and documentation policy. Wait for the subagent to
136
- finish.
259
+ Spawn one planning subagent. Tell it to run
260
+ `npx --yes copilotkit@4.9.24 onboard read subagent/create-plan` first and follow the prompt
261
+ it returns. If that read fails because the subagent cannot use the shell, stop that subagent.
262
+ Run the same command yourself, then spawn a fresh subagent with the returned prompt and the
263
+ same handoff. Give it the repository findings, selected framework, frontend, model, credential
264
+ variable names, selected documentation URLs, and documentation policy. On a conversion, also
265
+ give it the frozen criterion. Give the planning subagent the updated protected path list.
266
+ Wait for the subagent to finish.
267
+
268
+ Continue only if the planning result starts with `Status: passed`. For `Status: failed`,
269
+ send the result back to the planning subagent for repair, up to three attempts. For
270
+ `Status: blocked`, or a third failed result, use the unsupported route below. Do not show or
271
+ ask for approval of a non-pass plan.
137
272
 
138
273
  Make sure that the plan preserves each part that already exists. The plan must name the
139
274
  credential variables, the Intelligence runtime wiring, the application the project asks
@@ -141,113 +276,14 @@ for, implementation steps, validation steps, and proof steps. Where the plan upg
141
276
  CopilotKit dependencies, it must name the versions it moves and the revert it falls back
142
277
  to. It must not contain secret values.
143
278
 
144
- Show only the selected framework, frontend, model, planned file changes, the CopilotKit dependency upgrade and the versions it moves, validation commands, and proof steps.
279
+ Show only the selected framework, frontend, model, planned file changes, any ignore-file line this run adds, the CopilotKit dependency upgrade and the versions it moves, validation commands, and proof steps.
145
280
 
146
281
  An upgrade to a working install is the developer's call, so it belongs in the plan they
147
282
  approve rather than in the implementation that follows. Do not upgrade a dependency the
148
283
  developer did not approve.
149
284
 
150
285
  If the developer approves the plan, run
151
- `npx --yes copilotkit@4.9.4 onboard read implementation/build-and-validate`.
286
+ `npx --yes copilotkit@4.9.24 onboard read implementation/build-and-validate`.
152
287
 
153
288
  If no exact supported path or documentation URL exists, run
154
- `npx --yes copilotkit@4.9.4 onboard read unsupported/no-validated-path`.
155
-
156
- ## Planning subagent brief
157
-
158
- Everything below the rule is the subagent's prompt. Give it verbatim.
159
-
160
- ---
161
-
162
- # Create the onboarding plan
163
-
164
- Use the selected framework, frontend, model, repository findings, and documentation URLs
165
- from the main coding agent. Follow the documentation policy it gives you.
166
-
167
- Name the application the project asks for, and plan that application. Each documentation
168
- page teaches through one worked example, and that example carries a domain of its own.
169
- The domain belongs to the page. Use the purpose from the repository findings, or the
170
- developer outcome if the repository purpose was unproved. Do not ask for it again. Where
171
- the documentation example differs from that purpose, the project wins.
172
-
173
- Read only inside the project directory. Answer an API question from the documentation
174
- URLs you were given, not from another checkout on this machine.
175
-
176
- List the required credential variable names. Do not read or return credential values.
177
- Preserve each agent or frontend that already exists.
178
-
179
- Plan the runtime to consume the Intelligence credential. The runtime takes an
180
- `intelligence` option holding a client built from the project key. A runtime given a
181
- `runner` option instead is the OSS runtime. It never reads the Intelligence key, and the
182
- Inspector reads the project as locked. The default in-memory OSS runner is ephemeral.
183
- SQLite, custom, or framework persistence can be durable. The two options cannot be
184
- combined. Take the constructor from the connect-your-runtime page. Where a framework
185
- quickstart shows a `runner` option instead, the connect-your-runtime page wins.
186
-
187
- When the starting state is `both-oss`, use its recorded live baseline evidence. Preserve
188
- the working agent, frontend, CopilotKit integration, and OSS behavior. Plan the project
189
- selection, the CopilotKit dependency upgrade below, the Intelligence runtime
190
- configuration, and the authenticated proof needed for the conversion. Preserve the
191
- existing persistence and user-visible request. Do not rebuild a path that already works.
192
-
193
- Preserving the OSS baseline preserves the application, not its CopilotKit dependency
194
- versions. An install that predates the managed platform defaults carries a bundled
195
- reference naming hosts that route nothing, and it requires the platform URLs the same
196
- documentation calls optional. A run that reads that reference configures the runtime
197
- against a dead host, and the failure arrives as an empty-body 404 with no cause named.
198
-
199
- If any `@copilotkit/*` dependency is below 1.64.0, plan to upgrade every `@copilotkit/*`
200
- dependency to its latest published version. Packages that share a version line must end
201
- on the same version. Never force a package onto a version line it does not publish on.
202
- Resolve each latest version at run time rather than from a remembered version number.
203
- Where every `@copilotkit/*` dependency already meets that floor, plan no dependency
204
- change.
205
-
206
- Plan the upgrade as its own step before the Intelligence runtime wiring, and plan to
207
- re-run the recorded baseline checks immediately after it. Name the revert: restore the
208
- manifest and lockfile to their recorded state and stop, rather than wiring Intelligence
209
- onto a baseline the upgrade broke.
210
-
211
- Where the SDK requires an application-level value that the repository cannot supply, such
212
- as an end-user identity for threads, use one clearly marked local placeholder and name what
213
- production requires instead. Do not stop onboarding to ask the developer for it.
214
-
215
- Check whether the existing agent performs unattended side effects, such as paging, sending
216
- notifications, writing to an external system, or creating tickets. If it does, the new
217
- conversational surface must not trigger them. Wrap only the reasoning steps, or require an
218
- explicit developer confirmation before the side effect can run. Name each side effect you
219
- found and state how the plan avoids it.
220
-
221
- If the value of the journey depends on data the project already holds, name that data,
222
- name where it lives, and name how it reaches the agent. Rendering a list in the DOM does
223
- not give the agent access to it. An agent wired without the page's data answers from
224
- entities it invents, and the answer looks correct. Take the frontend-context step from
225
- the selected documentation. Where no selected page documents it for this framework or
226
- frontend, record that as a documentation gap rather than guessing the API.
227
-
228
- Where that data exists, name the entities the proof compares against: the ids, names, or
229
- records the project holds and the answer has to reference. Where the outcome references
230
- no project data, say so in the plan, so that the proof asks for evidence this journey can
231
- produce.
232
-
233
- Create one plan for implementation, validation, and proof. Name each file or area that can
234
- change. Name the commands that can validate the result.
235
- Name the commands or user path that prove a real generative-UI round trip.
236
-
237
- Keep a production build out of the validation commands. A type check plus the real round
238
- trip is the proof, and the round trip runs in development mode. Name the production build
239
- as a follow-up for the developer instead. Never raise a bundle budget or relax a lint rule
240
- to make a build pass during onboarding.
241
-
242
- The type check runs against the project's own configuration. If the project has no
243
- type-check command, add one that uses the configuration the project already has.
244
- Do not add compiler strictness the project did not have. Nothing later in the run is
245
- allowed to weaken type safety, so a stricter gate named here is one the run cannot get
246
- back out of.
247
-
248
- Gather what you need in as few commands as possible. Combine independent reads into one
249
- command rather than running them one at a time. Split a command only when its result decides
250
- what you run next.
251
-
252
- Return the plan, the URLs that you read, and each documentation gap. Stop after you return
253
- the findings to the main coding agent.
289
+ `npx --yes copilotkit@4.9.24 onboard read unsupported/no-validated-path`.
@@ -4,7 +4,7 @@ Use the repository findings to select the agent framework. Ask the developer onl
4
4
  choices that the repository does not show. Do not change application code in this phase.
5
5
  Do not read, show, store, or request a secret value.
6
6
 
7
- Keep `INTELLIGENCE_API_KEY` separate from every model-vendor credential. Do not read,
7
+ Keep `CPK_INTELLIGENCE_API_KEY` separate from every model-vendor credential. Do not read,
8
8
  show, store, or copy either credential.
9
9
 
10
10
  This documentation policy applies to every framework and frontend route below. Deduplicate
@@ -46,6 +46,11 @@ These are the agent frameworks and their default vendors:
46
46
  | Strands Agents (Python) | OpenAI |
47
47
  | Strands Agents (TypeScript) | OpenAI |
48
48
 
49
+ "Project-defined" is not a missing default. It means that framework's own route settles
50
+ the vendor with the developer: it keeps the one the repository already uses, and asks a
51
+ single question when the repository shows none. Do not read it as a framework this release
52
+ cannot onboard.
53
+
49
54
  If the project already has an agent in a listed framework, preserve that framework and
50
55
  its model setup. Ask only about choices that remain unknown.
51
56
 
@@ -63,26 +68,26 @@ another framework. Do not show the internal route.
63
68
 
64
69
  Use exactly one matching internal route:
65
70
 
66
- 1. AG2: `npx --yes copilotkit@4.9.4 onboard read framework/ag2`
67
- 2. Agno: `npx --yes copilotkit@4.9.4 onboard read framework/agno`
68
- 3. Built-in CopilotKit agent: `npx --yes copilotkit@4.9.4 onboard read framework/built-in`
69
- 4. Claude Agent SDK Python: `npx --yes copilotkit@4.9.4 onboard read framework/claude-sdk-python`
70
- 5. Claude Agent SDK TypeScript: `npx --yes copilotkit@4.9.4 onboard read framework/claude-sdk-typescript`
71
- 6. CrewAI Flows: `npx --yes copilotkit@4.9.4 onboard read framework/crewai-flows`
72
- 7. Deep Agents: `npx --yes copilotkit@4.9.4 onboard read framework/deep-agents`
73
- 8. LangGraph Python: `npx --yes copilotkit@4.9.4 onboard read framework/langgraph-python`
74
- 9. LangGraph FastAPI: `npx --yes copilotkit@4.9.4 onboard read framework/langgraph-fastapi`
75
- 10. LangGraph TypeScript: `npx --yes copilotkit@4.9.4 onboard read framework/langgraph-typescript`
76
- 11. LlamaIndex: `npx --yes copilotkit@4.9.4 onboard read framework/llamaindex`
77
- 12. ADK: `npx --yes copilotkit@4.9.4 onboard read framework/google-adk`
78
- 13. Microsoft Agent Framework Python: `npx --yes copilotkit@4.9.4 onboard read framework/ms-agent-python`
79
- 14. Microsoft Agent Framework .NET: `npx --yes copilotkit@4.9.4 onboard read framework/ms-agent-dotnet`
80
- 15. Mastra: `npx --yes copilotkit@4.9.4 onboard read framework/mastra`
81
- 16. MS Agent Harness .NET: `npx --yes copilotkit@4.9.4 onboard read framework/ms-agent-harness-dotnet`
82
- 17. Pydantic AI: `npx --yes copilotkit@4.9.4 onboard read framework/pydantic-ai`
83
- 18. Strands Agents Python: `npx --yes copilotkit@4.9.4 onboard read framework/strands-python`
84
- 19. Strands Agents TypeScript: `npx --yes copilotkit@4.9.4 onboard read framework/strands-typescript`
71
+ 1. AG2: `npx --yes copilotkit@4.9.24 onboard read framework/ag2`
72
+ 2. Agno: `npx --yes copilotkit@4.9.24 onboard read framework/agno`
73
+ 3. Built-in CopilotKit agent: `npx --yes copilotkit@4.9.24 onboard read framework/built-in`
74
+ 4. Claude Agent SDK Python: `npx --yes copilotkit@4.9.24 onboard read framework/claude-sdk-python`
75
+ 5. Claude Agent SDK TypeScript: `npx --yes copilotkit@4.9.24 onboard read framework/claude-sdk-typescript`
76
+ 6. CrewAI Flows: `npx --yes copilotkit@4.9.24 onboard read framework/crewai-flows`
77
+ 7. Deep Agents: `npx --yes copilotkit@4.9.24 onboard read framework/deep-agents`
78
+ 8. LangGraph Python: `npx --yes copilotkit@4.9.24 onboard read framework/langgraph-python`
79
+ 9. LangGraph FastAPI: `npx --yes copilotkit@4.9.24 onboard read framework/langgraph-fastapi`
80
+ 10. LangGraph TypeScript: `npx --yes copilotkit@4.9.24 onboard read framework/langgraph-typescript`
81
+ 11. LlamaIndex: `npx --yes copilotkit@4.9.24 onboard read framework/llamaindex`
82
+ 12. ADK: `npx --yes copilotkit@4.9.24 onboard read framework/google-adk`
83
+ 13. Microsoft Agent Framework Python: `npx --yes copilotkit@4.9.24 onboard read framework/ms-agent-python`
84
+ 14. Microsoft Agent Framework .NET: `npx --yes copilotkit@4.9.24 onboard read framework/ms-agent-dotnet`
85
+ 15. Mastra: `npx --yes copilotkit@4.9.24 onboard read framework/mastra`
86
+ 16. MS Agent Harness .NET: `npx --yes copilotkit@4.9.24 onboard read framework/ms-agent-harness-dotnet`
87
+ 17. Pydantic AI: `npx --yes copilotkit@4.9.24 onboard read framework/pydantic-ai`
88
+ 18. Strands Agents Python: `npx --yes copilotkit@4.9.24 onboard read framework/strands-python`
89
+ 19. Strands Agents TypeScript: `npx --yes copilotkit@4.9.24 onboard read framework/strands-typescript`
85
90
 
86
91
  If the project has an agent in another framework, or no listed framework fits, keep the
87
92
  developer's current agent and run
88
- `npx --yes copilotkit@4.9.4 onboard read unsupported/no-validated-path`.
93
+ `npx --yes copilotkit@4.9.24 onboard read unsupported/no-validated-path`.
@@ -3,37 +3,117 @@
3
3
  Work only in the target project directory. Do not read, show, store, or request a secret
4
4
  value.
5
5
 
6
- Spawn one implementation subagent. Tell it which plan steps lack direct documentation.
7
- Give it the approved plan, repository findings, target project directory, and all official
8
- documentation that you fetched for the plan.
6
+ This fallback contains unproved steps. Use the approved plan in step order.
9
7
 
10
- Tell the subagent to preserve the existing project. It must not invent a CopilotKit API.
11
- It can combine compatible APIs from different official pages when one page omits the
12
- selected framework and frontend combination.
8
+ ## If you stop in this fallback
13
9
 
14
- Tell the implementation subagent to run the approved implementation and validation steps.
15
- Send a failure in new work back to it at most three times. Stop if a fix requires changes
16
- to the developer's existing agent or frontend.
10
+ Several rules below stop onboarding: a blocked or third failed implementation result, a
11
+ changed protected path, a blocked or third failed proof, a fix that needs changes to the
12
+ existing agent or frontend. Send one short report before you stop. Run the feedback
13
+ command without another developer question. The CLI telemetry gate decides whether the
14
+ report is sent.
17
15
 
18
- After validation passes, use this rule: Spawn one proof subagent. Give it the approved
19
- plan, validation evidence, target project directory, all official documentation that you
20
- fetched for the plan, and recorded browser or device control. Tell it to prove the runtime,
21
- agent round trip, and real frontend path with the same proof rules from the approved plan.
22
- Keep the development servers running after proof.
16
+ ```text
17
+ npx --yes copilotkit@4.9.24 onboard feedback
18
+ ```
19
+
20
+ Write at most four lines to standard input: the step you stopped at and what stopped it.
21
+ Send no secrets, source code, logs, or command output. The command refuses a report that
22
+ carries any of those, prints the reason, and exits zero. A refused report is not a failed
23
+ step. Send the report, then stop the way the rule that stopped you says to. This fallback
24
+ runs because the documentation already fell short once, so a stop inside it is the second
25
+ gap in the same run and neither is recorded anywhere else.
26
+
27
+ Spawn one implementation subagent. Give it the approved plan, repository findings, and
28
+ target project directory. Tell it which steps lack direct documentation. Give it all
29
+ official documentation that you fetched for the plan. Give it the protected path list.
30
+ Give it these rules:
31
+
32
+ - Preserve the existing project.
33
+ - Change only the paths the approved plan names.
34
+ - Do not change a protected path or an overlapping path.
35
+ - Do not invent a CopilotKit API.
36
+ - Do not read, show, store, or return secret values.
37
+
38
+ When one page omits the selected framework and frontend combination, combine compatible APIs
39
+ from different official pages. Tell it to run every implementation and validation step in
40
+ plan order, and to run the full validation list.
41
+
42
+ Give it this result format: Start with `Status: passed`, `Status: failed`, or
43
+ `Status: blocked`.
44
+
45
+ Wait for the implementation subagent to finish.
46
+
47
+ Use these rules for the implementation result:
48
+
49
+ 1. For `Status: passed`, keep the result.
50
+ 2. For `Status: failed`, retry the same subagent with its evidence. Make at most three attempts.
51
+ 3. For `Status: blocked`, stop onboarding. Report the blocker.
52
+
53
+ After a third failed result, stop. When a fix needs changes to the existing agent or frontend,
54
+ stop.
55
+
56
+ Use these rules for every protected-path check in this fallback:
57
+
58
+ - Run `npx --yes copilotkit@4.9.24 onboard audit` from the target app directory.
59
+ - If a result starts with `Status: blocked`, stop onboarding and report the printed reason.
60
+ It proved nothing changed, so do not report a preservation failure.
61
+ - If a result reports a changed protected path, stop onboarding.
62
+ - Never repair, reset, or revert a protected path.
63
+
64
+ Run the protected-path check now. Apply the protected-path rules. Continue only when the
65
+ audit starts with `Status: passed`.
66
+
67
+ After validation passes, use this rule: Spawn one proof subagent. Give it the complete ordered
68
+ proof rules from the approved plan, validation evidence, project directory, all official
69
+ documentation that you fetched for the plan, and recorded browser or device control. Require
70
+ the runtime, agent round trip, and real frontend proof. Keep the development servers running.
71
+ Give the proof subagent the protected path list.
72
+ Tell the proof subagent not to write a path that overlaps a protected path.
73
+ Tell it not to read, show, store, or return secret values. During proof, do not edit source
74
+ files, configuration files, dependencies, or tracked files. Allow only operational repairs
75
+ to project-owned processes, ports, and request options.
76
+ Require this result format: Start with `Status: passed`, `Status: failed`, or `Status: blocked`.
77
+ Tell it to use `Status: passed` only when the proof attempt completed with `performed`,
78
+ `skipped-no-browser-tool`, or `skipped-no-device`. Use `Status: failed` for any failed proof
79
+ step. Use `Status: blocked` when a safety or access limit stops the attempt before a surface
80
+ outcome.
81
+ Wait for the proof subagent to finish. For `Status: blocked`, stop onboarding and report the
82
+ blocker. For `Status: failed`, classify the cause before retrying.
83
+
84
+ Retry the proof worker only for a project-owned process, port, or request-option failure.
85
+ Give it the failure evidence and wait after each attempt. Stop after three failed attempts.
86
+
87
+ For a source, configuration, dependency, or tracked-file defect, send the evidence to the
88
+ implementation subagent. Require the repair and full validation. Wait for the repair to
89
+ finish. Continue only if its result starts with `Status: passed`. For a failed repair,
90
+ retry that worker with its evidence, up to three attempts. For a blocked or third failed
91
+ repair, stop onboarding and report the blocker. Run the protected-path check after the repair
92
+ passes. Apply the protected-path rules before you continue. After repair, full validation,
93
+ and the protected-path check pass, spawn a fresh proof subagent. Give it the full original
94
+ proof handoff, failed proof evidence, and new validation evidence. The handoff includes the
95
+ protected path list. Wait for the fresh proof subagent and apply the same proof-result rules.
96
+ Continue only if the proof result starts with `Status: passed`.
97
+
98
+ Run the protected-path check again after the final proof result passes. Apply the
99
+ protected-path rules. Continue only if the audit starts with `Status: passed`.
23
100
 
24
- Do not block core proof on CopilotKit Skills or MCP configuration. Try these tools after
25
- the application passes proof. Report each tool result separately.
101
+ Do not block core proof on CopilotKit Skills or MCP configuration. Tell the developer that
102
+ the skills install writes a `.agents/skills` directory and `.claude/skills` links into the
103
+ working tree before you run it, because both show up in `git status` and this run cannot
104
+ know whether the project keeps them in version control. Try these tools after the
105
+ application passes proof. Report each tool result separately from the proof result.
26
106
 
27
107
  Report the documentation gap and each assumption with the proof evidence. Do not claim
28
108
  that the selected documentation proved an inferred step.
29
109
 
30
- When the proof is complete, run `npx --yes copilotkit@4.9.4 onboard complete`, carrying the
110
+ When the proof is complete, run `npx --yes copilotkit@4.9.24 onboard complete`, carrying the
31
111
  surface-check result the proof subagent returned. Pass exactly one flag, matching this
32
112
  journey's surface:
33
113
 
34
114
  ```text
35
- npx --yes copilotkit@4.9.4 onboard complete --visual-check <outcome>
36
- npx --yes copilotkit@4.9.4 onboard complete --device-check <outcome>
115
+ npx --yes copilotkit@4.9.24 onboard complete --visual-check <outcome>
116
+ npx --yes copilotkit@4.9.24 onboard complete --device-check <outcome>
37
117
  ```
38
118
 
39
119
  `--visual-check` is for a web frontend and takes `performed`, `skipped-no-browser-tool`, or
@@ -42,6 +122,7 @@ or `failed`. Anything but `performed` ends this run as blocked, and the command'
42
122
  names the evidence that is missing. Report it that way.
43
123
 
44
124
  If the proof passed and something after it still blocked this run, add
45
- `--blocked-by <cause>` to the same command, with one of `hosted-dashboard`, `inspector`,
46
- `plan-excluded-capability`, or `other`. It ends the run as blocked and names what the
47
- blocker leaves unverified.
125
+ `--blocked-by <cause>` to the same command, with one of `inspector`, `plan-excluded-capability`,
126
+ or `other`. It ends the run as blocked and names what the blocker leaves unverified. The
127
+ managed Intelligence dashboard is not a cause, because nothing in this graph asks a run to
128
+ open it.