copilotkit 4.18.0 → 4.20.0

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 (79) hide show
  1. package/README.md +26 -12
  2. package/cli-build-info.json +7 -7
  3. package/index.js +4949 -3293
  4. package/onboarding/index.json +1 -1
  5. package/onboarding/prompts/authenticate/start.md +39 -32
  6. package/onboarding/prompts/conversion/plan.md +3 -3
  7. package/onboarding/prompts/credentials/finalize-plan.md +7 -7
  8. package/onboarding/prompts/credentials/plan.md +47 -21
  9. package/onboarding/prompts/credentials/settle-credentials.md +26 -12
  10. package/onboarding/prompts/credentials/write-plan.md +9 -6
  11. package/onboarding/prompts/fallback/best-effort.md +31 -19
  12. package/onboarding/prompts/feature/a2ui/implement.md +6 -12
  13. package/onboarding/prompts/feature/a2ui/proof.md +8 -19
  14. package/onboarding/prompts/feature/a2ui/start.md +9 -18
  15. package/onboarding/prompts/feature/channels/implement.md +12 -21
  16. package/onboarding/prompts/feature/channels/proof.md +7 -18
  17. package/onboarding/prompts/feature/channels/start.md +14 -21
  18. package/onboarding/prompts/feature/chat-suggestions/implement.md +6 -12
  19. package/onboarding/prompts/feature/chat-suggestions/proof.md +7 -18
  20. package/onboarding/prompts/feature/chat-suggestions/start.md +9 -18
  21. package/onboarding/prompts/feature/complete.md +4 -2
  22. package/onboarding/prompts/feature/learning/implement.md +13 -38
  23. package/onboarding/prompts/feature/learning/proof.md +8 -19
  24. package/onboarding/prompts/feature/learning/start.md +9 -18
  25. package/onboarding/prompts/feature/open-generative-ui/implement.md +6 -12
  26. package/onboarding/prompts/feature/open-generative-ui/proof.md +7 -18
  27. package/onboarding/prompts/feature/open-generative-ui/start.md +9 -18
  28. package/onboarding/prompts/feature/realtime-sync/implement.md +7 -13
  29. package/onboarding/prompts/feature/realtime-sync/proof.md +7 -18
  30. package/onboarding/prompts/feature/realtime-sync/start.md +8 -17
  31. package/onboarding/prompts/feature/rich-threads/implement.md +8 -14
  32. package/onboarding/prompts/feature/rich-threads/proof.md +7 -18
  33. package/onboarding/prompts/feature/rich-threads/start.md +8 -17
  34. package/onboarding/prompts/feature/stop.md +3 -3
  35. package/onboarding/prompts/feature/voice/implement.md +6 -12
  36. package/onboarding/prompts/feature/voice/proof.md +7 -18
  37. package/onboarding/prompts/feature/voice/start.md +9 -18
  38. package/onboarding/prompts/framework/ag2.md +2 -2
  39. package/onboarding/prompts/framework/agno.md +2 -2
  40. package/onboarding/prompts/framework/built-in.md +2 -2
  41. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  42. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  43. package/onboarding/prompts/framework/crewai-flows.md +2 -2
  44. package/onboarding/prompts/framework/deep-agents.md +2 -2
  45. package/onboarding/prompts/framework/google-adk.md +2 -2
  46. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  47. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  48. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  49. package/onboarding/prompts/framework/llamaindex.md +2 -2
  50. package/onboarding/prompts/framework/mastra.md +2 -2
  51. package/onboarding/prompts/framework/ms-agent-dotnet.md +8 -3
  52. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +8 -3
  53. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  54. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  55. package/onboarding/prompts/framework/strands-python.md +2 -2
  56. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  57. package/onboarding/prompts/frontend/angular.md +3 -3
  58. package/onboarding/prompts/frontend/nextjs.md +3 -3
  59. package/onboarding/prompts/frontend/plan.md +7 -7
  60. package/onboarding/prompts/frontend/react-native.md +2 -2
  61. package/onboarding/prompts/frontend/react-spa.md +2 -2
  62. package/onboarding/prompts/frontend/vue.md +2 -2
  63. package/onboarding/prompts/implementation/build-and-validate.md +32 -40
  64. package/onboarding/prompts/proof/complete.md +89 -191
  65. package/onboarding/prompts/proof/oss-baseline.md +5 -5
  66. package/onboarding/prompts/proof/round-trip.md +22 -27
  67. package/onboarding/prompts/research/gather.md +5 -14
  68. package/onboarding/prompts/research/merge.md +4 -12
  69. package/onboarding/prompts/research/preflight.md +14 -55
  70. package/onboarding/prompts/research/route.md +7 -6
  71. package/onboarding/prompts/starter/clone.md +5 -15
  72. package/onboarding/prompts/stopped/run-failed.md +2 -2
  73. package/onboarding/prompts/subagent/create-plan.md +25 -1
  74. package/onboarding/prompts/subagent/inspect-repository.md +10 -2
  75. package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
  76. package/onboarding/prompts/subagent/prove-round-trip.md +78 -56
  77. package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
  78. package/package.json +1 -1
  79. package/release/release-tool.js +11 -2
@@ -11,7 +11,12 @@ For a user secret, run `dotnet user-secrets set OPENAI_API_KEY` from the agent d
11
11
  The app must read the same name through .NET configuration. An exported environment
12
12
  variable with that name takes precedence over the user secret.
13
13
 
14
- Run `dotnet --version` before you change the project.
14
+ Run `dotnet --version` before you change the project. If it fails, no .NET SDK is on this
15
+ shell's PATH. Do not change the project, and do not install the SDK yourself. Tell the
16
+ developer to install the .NET SDK from https://dotnet.microsoft.com/download. Say that the
17
+ coding agent's shell cannot see a new install until the developer restarts the coding
18
+ agent. Give them `npx --prefer-offline --yes copilotkit@4.20.0 onboard start --run <onboarding_run_id>`
19
+ to resume the run after the restart. Then end your turn and wait for the developer.
15
20
 
16
21
  ## Documentation
17
22
 
@@ -36,7 +41,7 @@ Record the selected framework, provider, model, required credential variable nam
36
41
  these URLs.
37
42
 
38
43
  If the pages support the selection, run
39
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read frontend/plan`.
44
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read frontend/plan`.
40
45
 
41
46
  If the documentation does not support the selection, run
42
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read unsupported/no-validated-path`.
47
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read unsupported/no-validated-path`.
@@ -5,7 +5,12 @@ Use direct OpenAI for a new setup. Name its credential `OPENAI_API_KEY`.
5
5
 
6
6
  For a user secret, run `dotnet user-secrets set OPENAI_API_KEY` from the agent directory.
7
7
  The app must read the same name through .NET configuration. Run `dotnet --version` before
8
- you change the project.
8
+ you change the project. If it fails, no .NET SDK is on this shell's PATH. Do not change
9
+ the project, and do not install the SDK yourself. Tell the developer to install the .NET
10
+ SDK from https://dotnet.microsoft.com/download. Say that the coding agent's shell cannot
11
+ see a new install until the developer restarts the coding agent. Give them
12
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard start --run <onboarding_run_id>` to resume the run
13
+ after the restart. Then end your turn and wait for the developer.
9
14
 
10
15
  ## Documentation
11
16
 
@@ -44,7 +49,7 @@ Record the selected framework, provider, model, required credential variable nam
44
49
  URLs, and the quickstart gap.
45
50
 
46
51
  If the pages support the selection, run
47
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read frontend/plan`.
52
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read frontend/plan`.
48
53
 
49
54
  If the documentation does not support the selection, run
50
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read unsupported/no-validated-path`.
55
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read unsupported/no-validated-path`.
@@ -30,7 +30,7 @@ Record the selected framework, vendor, model, required credential variable names
30
30
  these URLs.
31
31
 
32
32
  If the pages support the selection, run
33
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read frontend/plan`.
33
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read frontend/plan`.
34
34
 
35
35
  If the documentation does not support the selection, run
36
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read unsupported/no-validated-path`.
36
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read unsupported/no-validated-path`.
@@ -43,7 +43,7 @@ Record the selected framework, vendor, model, required credential variable names
43
43
  URLs, and the two-step context route.
44
44
 
45
45
  If the pages support the selection, run
46
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read frontend/plan`.
46
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read frontend/plan`.
47
47
 
48
48
  If the documentation does not support the selection, run
49
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read unsupported/no-validated-path`.
49
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read unsupported/no-validated-path`.
@@ -29,7 +29,7 @@ Record the selected framework, vendor, model, required credential variable names
29
29
  URLs, and the context documentation gap.
30
30
 
31
31
  If the pages support the selection, run
32
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read frontend/plan`.
32
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read frontend/plan`.
33
33
 
34
34
  If the documentation does not support the selection, run
35
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read unsupported/no-validated-path`.
35
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read unsupported/no-validated-path`.
@@ -30,7 +30,7 @@ Record the selected framework, vendor, model, required credential variable names
30
30
  URLs, and the context documentation gap.
31
31
 
32
32
  If the pages support the selection, run
33
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read frontend/plan`.
33
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read frontend/plan`.
34
34
 
35
35
  If the documentation does not support the selection, run
36
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read unsupported/no-validated-path`.
36
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read unsupported/no-validated-path`.
@@ -5,7 +5,7 @@ Preserve an existing Angular frontend. Use the selected page for a new frontend.
5
5
  Use the starter shortcut only if all these facts are true: the target directory holds no
6
6
  project, its name is a valid `init` project name, and the selected framework is ADK.
7
7
  If all three facts are true, record Angular as the selected frontend. Then run
8
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read starter/clone` before you fetch documentation.
8
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read starter/clone` before you fetch documentation.
9
9
 
10
10
  ## Documentation
11
11
 
@@ -63,7 +63,7 @@ you create or build an Angular project. If the installed version is lower, selec
63
63
  supported version first and use it for every later command in this project.
64
64
 
65
65
  If the pages support the selection, record Angular and these URLs. Then run
66
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read credentials/finalize-plan`.
66
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read credentials/finalize-plan`.
67
67
 
68
68
  If the documentation does not support the selection, or the two version lines do not fit
69
- together, run `npx --prefer-offline --yes copilotkit@4.18.0 onboard read unsupported/no-validated-path`.
69
+ together, run `npx --prefer-offline --yes copilotkit@4.20.0 onboard read unsupported/no-validated-path`.
@@ -15,7 +15,7 @@ These TypeScript options have starters: Claude Agent SDK TypeScript, LangGraph T
15
15
  Mastra, and Strands Agents TypeScript. The .NET option is Microsoft Agent Framework .NET.
16
16
 
17
17
  If all shortcut conditions are true, record Next.js as the selected frontend. Then run
18
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read starter/clone` before you fetch documentation.
18
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read starter/clone` before you fetch documentation.
19
19
 
20
20
  ## Documentation
21
21
 
@@ -40,7 +40,7 @@ developer's work.
40
40
  - Do not claim, revert, or delete these files. Name them in the report as Next.js output.
41
41
 
42
42
  If the page supports the selection, record Next.js and this URL. Then run
43
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read credentials/finalize-plan`.
43
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read credentials/finalize-plan`.
44
44
 
45
45
  If the documentation does not support the selection, run
46
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read unsupported/no-validated-path`.
46
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read unsupported/no-validated-path`.
@@ -37,15 +37,15 @@ CopilotKit web apps. Then recommend the one the developer names, and say what ea
37
37
 
38
38
  Use exactly one matching internal route:
39
39
 
40
- 1. React SPA: `npx --prefer-offline --yes copilotkit@4.18.0 onboard read frontend/react-spa`
41
- 2. Next.js: `npx --prefer-offline --yes copilotkit@4.18.0 onboard read frontend/nextjs`
42
- 3. Angular: `npx --prefer-offline --yes copilotkit@4.18.0 onboard read frontend/angular`
43
- 4. Vue 3: `npx --prefer-offline --yes copilotkit@4.18.0 onboard read frontend/vue`
44
- 5. React Native: `npx --prefer-offline --yes copilotkit@4.18.0 onboard read frontend/react-native`
45
- 6. Slack or Microsoft Teams: `npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/channels/start`
40
+ 1. React SPA: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read frontend/react-spa`
41
+ 2. Next.js: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read frontend/nextjs`
42
+ 3. Angular: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read frontend/angular`
43
+ 4. Vue 3: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read frontend/vue`
44
+ 5. React Native: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read frontend/react-native`
45
+ 6. Slack or Microsoft Teams: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/channels/start`
46
46
 
47
47
  If they chose Slack or Microsoft Teams, tell that node which one they chose so it
48
48
  does not ask again.
49
49
 
50
50
  If no listed frontend fits, run
51
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read unsupported/no-validated-path`.
51
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read unsupported/no-validated-path`.
@@ -18,7 +18,7 @@ documents `useRenderTool`, which is React Native's own hook for drawing a tool t
18
18
  already has. That is a different job and needs a tool in the agent.
19
19
 
20
20
  If the pages support the selection, record React Native and these URLs. Then run
21
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read credentials/finalize-plan`.
21
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read credentials/finalize-plan`.
22
22
 
23
23
  If the documentation does not support the selection, run
24
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read unsupported/no-validated-path`.
24
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read unsupported/no-validated-path`.
@@ -14,7 +14,7 @@ not move the agent into it.
14
14
  - https://docs.copilotkit.ai/react-spa.md
15
15
 
16
16
  If the page supports the selection, record React SPA and this URL. Then run
17
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read credentials/finalize-plan`.
17
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read credentials/finalize-plan`.
18
18
 
19
19
  If the documentation does not support the selection, run
20
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read unsupported/no-validated-path`.
20
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read unsupported/no-validated-path`.
@@ -19,7 +19,7 @@ page above. Vue has its own `useComponent`, which is not the React package. Take
19
19
  that reference page rather than from a Vue generative-UI guide, which is not published.
20
20
 
21
21
  If the pages support the selection, record Vue 3 and these URLs. Then run
22
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read credentials/finalize-plan`.
22
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read credentials/finalize-plan`.
23
23
 
24
24
  If the documentation does not support the selection, run
25
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read unsupported/no-validated-path`.
25
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read unsupported/no-validated-path`.
@@ -12,7 +12,7 @@ acted on. Send one short report before you stop. The friction command follows th
12
12
  setting the developer already chose, so it needs no separate question.
13
13
 
14
14
  ```text
15
- npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --phase stop --category <slug> --message "<sentences>"
15
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard friction --phase stop --category <slug> --message "<sentences>"
16
16
  ```
17
17
 
18
18
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -67,13 +67,17 @@ Approving the plan is the developer agreeing to every path it listed under
67
67
  app directory:
68
68
 
69
69
  ```text
70
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
70
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
71
71
  ```
72
72
 
73
73
  Consent has to be on the record before the file moves, so a call made after the change is
74
74
  refused. Continue only if every result starts with `Status: passed`. If the plan listed
75
75
  nothing there, skip this section.
76
76
 
77
+ Do not authorize a path the plan lists under `Files the run writes itself`. The CLI refuses
78
+ `--authorize` for `.env` and `.copilotkit/project.json`, because this run writes them. A
79
+ copied model key is recorded with `--accept-credential`, after the copy.
80
+
77
81
  The implementation subagent cannot change a protected path unless it has the authorized
78
82
  list. Take that list from the CLI rather than from the plan: run `onboard audit` after the
79
83
  last authorization, and copy the paths under `Authorized to modify:`. An audit that passes
@@ -95,7 +99,7 @@ No implementation step has run yet, so the change is theirs rather than this run
95
99
  consent over it by adding one flag:
96
100
 
97
101
  ```text
98
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>" --with-prior-change
102
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>" --with-prior-change
99
103
  ```
100
104
 
101
105
  The flag records their change as drift beside the consent, so the closing report names both
@@ -115,7 +119,7 @@ audit below describes, rather than use this section.
115
119
  Run the audit from the target app directory:
116
120
 
117
121
  ```text
118
- npx --prefer-offline --yes copilotkit@4.18.0 onboard audit
122
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard audit
119
123
  ```
120
124
 
121
125
  It compares every protected path with the digest the CLI captured for it. Its result starts
@@ -150,14 +154,14 @@ A path that no Files changed section names changed outside the run, and it is th
150
154
  developer's own file. Accept it by name:
151
155
 
152
156
  ```text
153
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --accept-external --path <path>
157
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --accept-external --path <path>
154
158
  ```
155
159
 
156
160
  A changed env file is its own case. This run asked the developer to place a credential
157
161
  there, so it takes the credential route rather than this one:
158
162
 
159
163
  ```text
160
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --accept-credential --path <path>
164
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --accept-credential --path <path>
161
165
  ```
162
166
 
163
167
  That route proves no recorded credential was lost, instead of taking the run's word that it
@@ -176,7 +180,7 @@ neither does a one-line fix. Never repair, reset, or revert it. Ask the develope
176
180
  the change, and record the answer they give:
177
181
 
178
182
  ```text
179
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
183
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
180
184
  ```
181
185
 
182
186
  Use it only for an answer a developer actually gave. It records the consent as taken
@@ -188,6 +192,14 @@ and spawn a fresh implementation subagent with the same handoff and that list. I
188
192
  audit starts with `Status: blocked`, use the route-out rules instead. A subagent
189
193
  that already returned cannot pick up consent recorded after it was spawned.
190
194
 
195
+ A failed audit can also list project files that name a credential file outside the
196
+ repository. Such a file is not a protected path, and no route accepts it. It ties the commit
197
+ to a folder in the developer's home directory, so the app has no model key on any other
198
+ machine. Spawn a fresh implementation subagent with the same handoff and this one change:
199
+ remove the outside path, and load the key the way the approved plan says, from the app's
200
+ env file or from an environment variable. Then run the audit again. If the file is a
201
+ protected path, or the plan names no other way to load the key, use the route-out rules.
202
+
191
203
  `Status: blocked` means the audit has no baseline to read. A blocked audit compared
192
204
  nothing and proved nothing changed. It is not a preservation failure: do not report a
193
205
  protected path as changed. Report the printed reason and use the route-out rules.
@@ -198,12 +210,12 @@ an acceptance clears it, or route out. Do not send an audit result to a repair w
198
210
 
199
211
  ## Create the approved Learning Container
200
212
 
201
- Where the approved plan names a Learning Container id that the platform does not hold yet,
202
- create it now, from the target app directory. The developer approved the id before it was
203
- made, so this is the first point at which it can be created:
213
+ Where the approved plan names a Learning Container id, create it now, from the target app
214
+ directory. The developer approved the id before it was made, so this is the first point at
215
+ which it can be created:
204
216
 
205
217
  ```text
206
- npx --prefer-offline --yes copilotkit@4.18.0 learning containers create --id <id> --name <name> --json
218
+ npx --prefer-offline --yes copilotkit@4.20.0 learning containers create --id <id> --name <name> --json
207
219
  ```
208
220
 
209
221
  Pass the id the plan names. Take the name from the selected project's own display name, so
@@ -211,30 +223,16 @@ the container reads as this project's in the dashboard. Both flags are required
211
223
  `--json`: a create that leaves either one out is refused as `NON_INTERACTIVE` rather than
212
224
  prompted for, whatever terminal the run has.
213
225
 
214
- `LEARNING_CONTAINER_ALREADY_EXISTS` means another run already made it. That is a container
215
- to reuse, not a failure to repair and not a reason to pick a new id. Any other error code:
216
- report it and stop onboarding, so no run wires a selector to an id the platform does not
217
- hold.
218
-
219
- Then report that the container is settled, before any edit:
220
-
221
- ```text
222
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase container-settled
223
- ```
224
-
225
- Where the plan names a container the platform already held, report the same checkpoint and
226
- create nothing. Where the plan names no container, skip this section.
226
+ `LEARNING_CONTAINER_ALREADY_EXISTS` means the platform already holds it, because the
227
+ credentials step found it or another run made it. That is a container to reuse, not a
228
+ failure to repair and not a reason to pick a new id. Any other error code: report it and
229
+ stop onboarding, so no run wires a selector to an id the platform does not hold. Where the
230
+ plan names no container, skip this section.
227
231
 
228
232
  ## Implement the plan
229
233
 
230
- Report the plan this run is about to implement:
231
-
232
- ```text
233
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase plan-written
234
- ```
235
-
236
234
  Spawn one implementation subagent. Tell it to run
237
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read subagent/implement-and-validate` first and follow
235
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read subagent/implement-and-validate` first and follow
238
236
  the prompt it returns. If that read fails because the subagent cannot use the shell, stop that
239
237
  subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
240
238
  and the same handoff. Give it the plan, selected framework, frontend, model, exact target app
@@ -260,14 +258,8 @@ Run the protected-path audit after the implementation subagent passes. Decide ea
260
258
  names the same way as above, against the Files changed section that subagent just
261
259
  returned. Continue to proof only when that audit passes.
262
260
 
263
- After the selected implementation path passes, report it:
264
-
265
- ```text
266
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase build-validated
267
- ```
268
-
269
261
  Then run
270
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read proof/round-trip`.
262
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read proof/round-trip`.
271
263
 
272
264
  ## Repair rules
273
265
 
@@ -293,9 +285,9 @@ the same command still fails after three repair attempts, a result starts with
293
285
  declined a file the plan does not name, or the run cannot ask them about it. A defect in a
294
286
  package this run installed is not a stack CopilotKit does not serve, a command this run cannot get to pass is not one either, and a blocked audit
295
287
  proved nothing about the stack. In those cases run
296
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`.
288
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read stopped/run-failed`.
297
289
 
298
290
  A plan with no path to follow takes the unsupported ending: the fix requires changing the
299
291
  developer's existing agent or frontend, or the documentation does not support the plan. In
300
292
  those cases run
301
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read unsupported/no-validated-path`.
293
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read unsupported/no-validated-path`.