copilotkit 4.15.0 → 4.16.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 +49 -6
  2. package/cli-build-info.json +8 -8
  3. package/index.js +22447 -2987
  4. package/onboarding/index.json +1 -1
  5. package/onboarding/prompts/authenticate/start.md +8 -8
  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 +21 -21
  9. package/onboarding/prompts/credentials/settle-credentials.md +9 -9
  10. package/onboarding/prompts/credentials/write-plan.md +5 -5
  11. package/onboarding/prompts/fallback/best-effort.md +6 -6
  12. package/onboarding/prompts/feature/a2ui/implement.md +6 -6
  13. package/onboarding/prompts/feature/a2ui/proof.md +6 -6
  14. package/onboarding/prompts/feature/a2ui/start.md +7 -7
  15. package/onboarding/prompts/feature/channels/implement.md +7 -7
  16. package/onboarding/prompts/feature/channels/proof.md +6 -6
  17. package/onboarding/prompts/feature/channels/start.md +7 -7
  18. package/onboarding/prompts/feature/chat-suggestions/implement.md +6 -6
  19. package/onboarding/prompts/feature/chat-suggestions/proof.md +6 -6
  20. package/onboarding/prompts/feature/chat-suggestions/start.md +7 -7
  21. package/onboarding/prompts/feature/complete.md +2 -2
  22. package/onboarding/prompts/feature/learning/implement.md +15 -15
  23. package/onboarding/prompts/feature/learning/proof.md +7 -7
  24. package/onboarding/prompts/feature/learning/start.md +8 -8
  25. package/onboarding/prompts/feature/open-generative-ui/implement.md +6 -6
  26. package/onboarding/prompts/feature/open-generative-ui/proof.md +6 -6
  27. package/onboarding/prompts/feature/open-generative-ui/start.md +7 -7
  28. package/onboarding/prompts/feature/realtime-sync/implement.md +7 -7
  29. package/onboarding/prompts/feature/realtime-sync/proof.md +6 -6
  30. package/onboarding/prompts/feature/realtime-sync/start.md +6 -6
  31. package/onboarding/prompts/feature/rich-threads/implement.md +8 -8
  32. package/onboarding/prompts/feature/rich-threads/proof.md +6 -6
  33. package/onboarding/prompts/feature/rich-threads/start.md +6 -6
  34. package/onboarding/prompts/feature/stop.md +3 -3
  35. package/onboarding/prompts/feature/voice/implement.md +6 -6
  36. package/onboarding/prompts/feature/voice/proof.md +6 -6
  37. package/onboarding/prompts/feature/voice/start.md +7 -7
  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 +2 -2
  52. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
  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 +15 -15
  64. package/onboarding/prompts/proof/complete.md +8 -8
  65. package/onboarding/prompts/proof/oss-baseline.md +5 -5
  66. package/onboarding/prompts/proof/round-trip.md +10 -10
  67. package/onboarding/prompts/research/gather.md +6 -6
  68. package/onboarding/prompts/research/merge.md +3 -3
  69. package/onboarding/prompts/research/preflight.md +4 -4
  70. package/onboarding/prompts/research/route.md +5 -5
  71. package/onboarding/prompts/starter/clone.md +22 -15
  72. package/onboarding/prompts/stopped/run-failed.md +8 -2
  73. package/onboarding/prompts/subagent/create-plan.md +1 -1
  74. package/onboarding/prompts/subagent/inspect-repository.md +1 -1
  75. package/onboarding/prompts/subagent/prove-oss-baseline.md +7 -1
  76. package/onboarding/prompts/subagent/prove-round-trip.md +17 -7
  77. package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
  78. package/package.json +1 -1
  79. package/release/release-tool.js +52 -7
@@ -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.15.0 onboard read starter/clone` before you fetch documentation.
8
+ `npx --prefer-offline --yes copilotkit@4.16.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.15.0 onboard read credentials/finalize-plan`.
66
+ `npx --prefer-offline --yes copilotkit@4.16.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.15.0 onboard read unsupported/no-validated-path`.
69
+ together, run `npx --prefer-offline --yes copilotkit@4.16.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.15.0 onboard read starter/clone` before you fetch documentation.
18
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read starter/clone` before you fetch documentation.
19
19
 
20
20
  ## Documentation
21
21
 
@@ -27,7 +27,7 @@ agent as the default agent, which is correct only for a project that has no agen
27
27
  Do not replace the developer's existing agent with the built-in agent.
28
28
 
29
29
  If the page supports the selection, record Next.js and this URL. Then run
30
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read credentials/finalize-plan`.
30
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read credentials/finalize-plan`.
31
31
 
32
32
  If the documentation does not support the selection, run
33
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read unsupported/no-validated-path`.
33
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read unsupported/no-validated-path`.
@@ -36,15 +36,15 @@ CopilotKit web apps. Then recommend the one the developer names, and say what ea
36
36
 
37
37
  Use exactly one matching internal route:
38
38
 
39
- 1. React SPA: `npx --prefer-offline --yes copilotkit@4.15.0 onboard read frontend/react-spa`
40
- 2. Next.js: `npx --prefer-offline --yes copilotkit@4.15.0 onboard read frontend/nextjs`
41
- 3. Angular: `npx --prefer-offline --yes copilotkit@4.15.0 onboard read frontend/angular`
42
- 4. Vue 3: `npx --prefer-offline --yes copilotkit@4.15.0 onboard read frontend/vue`
43
- 5. React Native: `npx --prefer-offline --yes copilotkit@4.15.0 onboard read frontend/react-native`
44
- 6. Slack or Microsoft Teams: `npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/channels/start`
39
+ 1. React SPA: `npx --prefer-offline --yes copilotkit@4.16.0 onboard read frontend/react-spa`
40
+ 2. Next.js: `npx --prefer-offline --yes copilotkit@4.16.0 onboard read frontend/nextjs`
41
+ 3. Angular: `npx --prefer-offline --yes copilotkit@4.16.0 onboard read frontend/angular`
42
+ 4. Vue 3: `npx --prefer-offline --yes copilotkit@4.16.0 onboard read frontend/vue`
43
+ 5. React Native: `npx --prefer-offline --yes copilotkit@4.16.0 onboard read frontend/react-native`
44
+ 6. Slack or Microsoft Teams: `npx --prefer-offline --yes copilotkit@4.16.0 onboard read feature/channels/start`
45
45
 
46
46
  If they chose Slack or Microsoft Teams, tell that node which one they chose so it
47
47
  does not ask again.
48
48
 
49
49
  If no listed frontend fits, run
50
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read unsupported/no-validated-path`.
50
+ `npx --prefer-offline --yes copilotkit@4.16.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.15.0 onboard read credentials/finalize-plan`.
21
+ `npx --prefer-offline --yes copilotkit@4.16.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.15.0 onboard read unsupported/no-validated-path`.
24
+ `npx --prefer-offline --yes copilotkit@4.16.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.15.0 onboard read credentials/finalize-plan`.
17
+ `npx --prefer-offline --yes copilotkit@4.16.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.15.0 onboard read unsupported/no-validated-path`.
20
+ `npx --prefer-offline --yes copilotkit@4.16.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.15.0 onboard read credentials/finalize-plan`.
22
+ `npx --prefer-offline --yes copilotkit@4.16.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.15.0 onboard read unsupported/no-validated-path`.
25
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read unsupported/no-validated-path`.
@@ -12,7 +12,7 @@ command without another developer question. Do not ask the developer about telem
12
12
  command applies the setting they already have.
13
13
 
14
14
  ```text
15
- npx --prefer-offline --yes copilotkit@4.15.0 onboard friction --phase stop --category <slug> --message "<sentences>"
15
+ npx --prefer-offline --yes copilotkit@4.16.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.
@@ -54,7 +54,7 @@ Approving the plan is the developer agreeing to every path it listed under
54
54
  app directory:
55
55
 
56
56
  ```text
57
- npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
57
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
58
58
  ```
59
59
 
60
60
  Consent has to be on the record before the file moves, so a call made after the change is
@@ -71,7 +71,7 @@ No implementation step has run yet, so the change is theirs rather than this run
71
71
  consent over it by adding one flag:
72
72
 
73
73
  ```text
74
- npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>" --with-prior-change
74
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>" --with-prior-change
75
75
  ```
76
76
 
77
77
  The flag records their change as drift beside the consent, so the closing report names both
@@ -90,7 +90,7 @@ rather than this section.
90
90
  Run the audit from the target app directory:
91
91
 
92
92
  ```text
93
- npx --prefer-offline --yes copilotkit@4.15.0 onboard audit
93
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard audit
94
94
  ```
95
95
 
96
96
  It compares every protected path with the digest the CLI captured for it. Its result starts
@@ -125,14 +125,14 @@ A path that no Files changed section names changed outside the run, and it is th
125
125
  developer's own file. Accept it by name:
126
126
 
127
127
  ```text
128
- npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --accept-external --path <path>
128
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard protect --accept-external --path <path>
129
129
  ```
130
130
 
131
131
  A changed env file is its own case. This run asked the developer to place a credential
132
132
  there, so it takes the credential route rather than this one:
133
133
 
134
134
  ```text
135
- npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --accept-credential --path <path>
135
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard protect --accept-credential --path <path>
136
136
  ```
137
137
 
138
138
  That route proves no recorded credential was lost, instead of taking the run's word that it
@@ -151,7 +151,7 @@ neither does a one-line fix. Never repair, reset, or revert it. Ask the develope
151
151
  the change, and record the answer they give:
152
152
 
153
153
  ```text
154
- npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
154
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
155
155
  ```
156
156
 
157
157
  Use it only for an answer a developer actually gave. It records the consent as taken
@@ -172,7 +172,7 @@ create it now, from the target app directory. The developer approved the id befo
172
172
  made, so this is the first point at which it can be created:
173
173
 
174
174
  ```text
175
- npx --prefer-offline --yes copilotkit@4.15.0 learning containers create --id <id> --name <name> --json
175
+ npx --prefer-offline --yes copilotkit@4.16.0 learning containers create --id <id> --name <name> --json
176
176
  ```
177
177
 
178
178
  Pass the id the plan names. Take the name from the selected project's own display name, so
@@ -188,7 +188,7 @@ hold.
188
188
  Then report that the container is settled, before any edit:
189
189
 
190
190
  ```text
191
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase container-settled
191
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase container-settled
192
192
  ```
193
193
 
194
194
  Where the plan names a container the platform already held, report the same checkpoint and
@@ -197,11 +197,11 @@ create nothing. Where the plan names no container, skip this section.
197
197
  Report the plan this run is about to implement:
198
198
 
199
199
  ```text
200
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase plan-written
200
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase plan-written
201
201
  ```
202
202
 
203
203
  Spawn one implementation subagent. Tell it to run
204
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read subagent/implement-and-validate` first and follow
204
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read subagent/implement-and-validate` first and follow
205
205
  the prompt it returns. If that read fails because the subagent cannot use the shell, stop that
206
206
  subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
207
207
  and the same handoff. Give it the plan, selected framework, frontend, model, exact target app
@@ -229,11 +229,11 @@ returned. Continue to proof only when that audit passes.
229
229
  After the selected implementation path passes, report it:
230
230
 
231
231
  ```text
232
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase build-validated
232
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase build-validated
233
233
  ```
234
234
 
235
235
  Then run
236
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read proof/round-trip`.
236
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read proof/round-trip`.
237
237
 
238
238
  ## Repair rules
239
239
 
@@ -255,9 +255,9 @@ the same command still fails after three repair attempts, or a result starts wit
255
255
  `Status: blocked`. A defect in a package this run installed is not a stack CopilotKit does
256
256
  not serve, a command this run cannot get to pass is not one either, and a blocked audit
257
257
  proved nothing about the stack. In those cases run
258
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read stopped/run-failed`.
258
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read stopped/run-failed`.
259
259
 
260
260
  A plan with no path to follow takes the unsupported ending: the fix requires changing the
261
261
  developer's existing agent or frontend, or the documentation does not support the plan. In
262
262
  those cases run
263
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read unsupported/no-validated-path`.
263
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read unsupported/no-validated-path`.
@@ -84,7 +84,7 @@ Name the debugging surface this journey's frontend can reach, rather than the on
84
84
  of the documentation leads with. For a web frontend it is the CopilotKit Inspector. For
85
85
  React Native there is no Inspector: it is a browser overlay built on a DOM custom element,
86
86
  and `@copilotkit/react-native` does not ship it. Give a mobile developer
87
- `npx --prefer-offline --yes copilotkit@4.15.0 verify --round-trip`, the runtime's own log, the AG-UI
87
+ `npx --prefer-offline --yes copilotkit@4.16.0 verify --round-trip`, the runtime's own log, the AG-UI
88
88
  Event Inspector in the CopilotKit VS Code extension, and the CopilotKit Intelligence
89
89
  thread view
90
90
  instead. Naming the Inspector to a developer who cannot open it costs them the time it
@@ -114,7 +114,7 @@ the friction commands without another developer question. Do not ask the develop
114
114
  telemetry: the command applies the setting they already have.
115
115
 
116
116
  ```text
117
- npx --prefer-offline --yes copilotkit@4.15.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
117
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
118
118
  ```
119
119
 
120
120
  Put one or two sentences in `--message`. Pick one category from
@@ -126,7 +126,7 @@ Pass --docs-path only for a docs-missing or docs-wrong report, naming the page t
126
126
  is about:
127
127
 
128
128
  ```text
129
- npx --prefer-offline --yes copilotkit@4.15.0 onboard friction --category docs-wrong --cost-seconds 300 --docs-path /docs/threads/drawer --message "<sentences>"
129
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard friction --category docs-wrong --cost-seconds 300 --docs-path /docs/threads/drawer --message "<sentences>"
130
130
  ```
131
131
 
132
132
  Give the page's site-relative path or its full URL, with no spaces, query string, or
@@ -143,14 +143,14 @@ Tell the developer when you send a friction report. Do not quote or summarize th
143
143
  unless the developer asks. If the CLI says the report was not sent,
144
144
  state what it said and continue without another question.
145
145
 
146
- When the evidence is gathered, run `npx --prefer-offline --yes copilotkit@4.15.0 onboard complete`, carrying
146
+ When the evidence is gathered, run `npx --prefer-offline --yes copilotkit@4.16.0 onboard complete`, carrying
147
147
  the surface-check outcome the proof subagent returned. Pass exactly one flag, and pass the
148
148
  one that matches this journey's surface.
149
149
 
150
150
  For a web frontend -- React SPA, Next.js, Angular, Vue:
151
151
 
152
152
  ```text
153
- npx --prefer-offline --yes copilotkit@4.15.0 onboard complete --visual-check <outcome>
153
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard complete --visual-check <outcome>
154
154
  ```
155
155
 
156
156
  The outcome is one of `performed`, `skipped-no-browser-tool`, `skipped-cloned-starter`, or
@@ -160,7 +160,7 @@ open no browser. It is the one skip that does not block.
160
160
  For React Native:
161
161
 
162
162
  ```text
163
- npx --prefer-offline --yes copilotkit@4.15.0 onboard complete --device-check <outcome>
163
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard complete --device-check <outcome>
164
164
  ```
165
165
 
166
166
  The outcome is one of `performed`, `skipped-no-device`, `skipped-cloned-starter`, or
@@ -173,7 +173,7 @@ browser-origin CORS, so the flag you pass is how this run states which surface i
173
173
  For a web frontend, also pass the URL the browser opened:
174
174
 
175
175
  ```text
176
- npx --prefer-offline --yes copilotkit@4.15.0 onboard complete --visual-check <outcome> \
176
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard complete --visual-check <outcome> \
177
177
  --frontend-url <the url you opened>
178
178
  ```
179
179
 
@@ -192,7 +192,7 @@ If the round trip proved and something after it still blocked this run, add `--b
192
192
  to the same command:
193
193
 
194
194
  ```text
195
- npx --prefer-offline --yes copilotkit@4.15.0 onboard complete --visual-check performed --blocked-by <cause>
195
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard complete --visual-check performed --blocked-by <cause>
196
196
  ```
197
197
 
198
198
  The cause is one of `inspector` for a debugging surface that did not open,
@@ -1,7 +1,7 @@
1
1
  # Prove the existing OSS baseline
2
2
 
3
3
  Do not prove the baseline yourself. Spawn one proof subagent. Tell it to run
4
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read subagent/prove-oss-baseline` first and follow the
4
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read subagent/prove-oss-baseline` first and follow the
5
5
  prompt it returns. If that read fails because the subagent cannot use the shell, stop that
6
6
  subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
7
7
  and the same handoff. Give it the repository findings and exact CLI package spec.
@@ -17,7 +17,7 @@ Wait for the subagent to finish.
17
17
  Record what that proof returned before you route on it:
18
18
 
19
19
  ```text
20
- npx --prefer-offline --yes copilotkit@4.15.0 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
20
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
21
21
  ```
22
22
 
23
23
  Report the gate whatever it returned. Pass `passed` when the subagent proved a predicate,
@@ -35,12 +35,12 @@ Do not change project files before this proof ends. Starting existing developmen
35
35
  processes and their ignored runtime files is allowed.
36
36
 
37
37
  If the subagent proves the `both-oss` predicate, keep its evidence with the plan and run
38
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read conversion/plan`. That project already works.
38
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read conversion/plan`. That project already works.
39
39
  What it needs is the conversion, not a build.
40
40
 
41
41
  If the proof does not establish the baseline, record the starting state
42
42
  `both-copilotkit-unproved` and run
43
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read credentials/plan`. This prompt is served
43
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read credentials/plan`. This prompt is served
44
44
  whenever a project looks like an OSS integration, so a baseline that did not prove is an
45
45
  ordinary starting state rather than a failure. Keep the failing predicate with the plan.
46
46
 
@@ -54,5 +54,5 @@ and the plan preserves it rather than repeating it.
54
54
 
55
55
  If it cannot identify the running process safely, exposes a secret, or finds a baseline
56
56
  failure that cannot be classified, run
57
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read stopped/run-failed`. None of those mean the
57
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read stopped/run-failed`. None of those mean the
58
58
  project is unsupported: they mean this run did not establish what it needed to.
@@ -1,7 +1,7 @@
1
1
  # Prove the user journey
2
2
 
3
3
  Do not do the proof work yourself. Spawn one proof subagent. Tell it to run
4
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read subagent/prove-round-trip` first and follow the
4
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read subagent/prove-round-trip` first and follow the
5
5
  prompt it returns. If that read fails because the subagent cannot use the shell, stop that
6
6
  subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
7
7
  and the same handoff. Give it the selected framework, frontend, model, approved plan, selected
@@ -33,13 +33,13 @@ pass the time.
33
33
  Report each attempt at the journey as it ends, counting from one:
34
34
 
35
35
  ```text
36
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase journey-attempted --attempt 1
36
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase journey-attempted --attempt 1
37
37
  ```
38
38
 
39
39
  Record what that proof returned before you route on it:
40
40
 
41
41
  ```text
42
- npx --prefer-offline --yes copilotkit@4.15.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
42
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
43
43
  ```
44
44
 
45
45
  Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. The
@@ -47,7 +47,7 @@ command prints one line and sends nothing else. Where a repair cycle runs the pr
47
47
  record each attempt as it ends.
48
48
 
49
49
  For every protected-path audit in this prompt, run
50
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard audit` from the target app directory. If its result
50
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard audit` from the target app directory. If its result
51
51
  starts with `Status: blocked`, report the printed reason and use the route-out rules below.
52
52
  A blocked audit proved nothing changed and is not a preservation failure. If a
53
53
  protected-path audit reports a changed path, decide it the way the implementation prompt
@@ -56,7 +56,7 @@ returns none, so a finding with no Files changed section to test against routes
56
56
  path one of those sections names is this run's own change and routes out too. Accept a
57
57
  path only when a section this run collected covers the step that wrote it and does not
58
58
  name it:
59
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --accept-external --path <path>`. Then run
59
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard protect --accept-external --path <path>`. Then run
60
60
  the audit again and name the path in the closing summary. Never repair, reset, or revert a
61
61
  protected path.
62
62
 
@@ -64,12 +64,12 @@ That holds for a repair cycle too. When the fix for a failing check lands on a p
64
64
  path, the path is still the developer's, however right the diagnosis is and however small
65
65
  the fix. Reading the file never settles who wrote it. Ask the developer to allow the
66
66
  change, and record their answer with
67
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
67
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
68
68
  or route out. Never repair it, and never send it to a repair worker.
69
69
 
70
70
  If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
71
71
  `proof/complete` only if that audit passes. After the audit passes, run
72
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read proof/complete`. A performed surface outcome with
72
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read proof/complete`. A performed surface outcome with
73
73
  the full round trip is core success even if a continued-development tool fails. A skipped
74
74
  surface outcome still enters `proof/complete` so the CLI records the blocked result. Do not
75
75
  describe a skipped surface as proved. Keep the Skills and MCP results separate from the proof
@@ -136,7 +136,7 @@ Restart each project-owned process changed by the repair. Report the cycle, coun
136
136
  one:
137
137
 
138
138
  ```text
139
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase repair-attempted --attempt 1
139
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase repair-attempted --attempt 1
140
140
  ```
141
141
 
142
142
  Then spawn a fresh proof subagent
@@ -154,7 +154,7 @@ and proof cycles.
154
154
 
155
155
  Route out only when the failure is not yours to fix, when the same proof still fails after
156
156
  three attempts, or when no evidence of the round trip can be produced. In those cases run
157
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read stopped/run-failed`. The stack is supported:
157
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read stopped/run-failed`. The stack is supported:
158
158
  this run did not finish, which is a different ending and a different report. All three are
159
159
  about the round trip itself. A round trip that proved is not one of them, whatever failed
160
160
  after it.
@@ -165,7 +165,7 @@ friction command without another developer question: it applies the telemetry se
165
165
  developer already set.
166
166
 
167
167
  ```text
168
- npx --prefer-offline --yes copilotkit@4.15.0 onboard friction --phase stop --category <slug> --message "<sentences>"
168
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard friction --phase stop --category <slug> --message "<sentences>"
169
169
  ```
170
170
 
171
171
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -43,7 +43,7 @@ Before you end your turn to wait for the developer where the prompt states no de
43
43
  report the pause:
44
44
 
45
45
  ```text
46
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase awaiting-developer
46
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase awaiting-developer
47
47
  ```
48
48
 
49
49
  When the answer or the result arrives, continue from the step that paused. Do not read an
@@ -63,7 +63,7 @@ Both research subagents failing means this harness has no working subagent at al
63
63
  is worth recording once:
64
64
 
65
65
  ```text
66
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase delegation-unavailable
66
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase delegation-unavailable
67
67
  ```
68
68
 
69
69
  Then say once, in your own words, that this environment has no working subagents, so you
@@ -76,7 +76,7 @@ Before you ask the developer any setup question, finish every read-only investig
76
76
  preflight check in this section.
77
77
 
78
78
  Prepare two research assignments. Give each research subagent one assignment. Tell it to run
79
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read subagent/inspect-repository` first and follow the
79
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read subagent/inspect-repository` first and follow the
80
80
  prompt it returns. If that read fails because the subagent cannot use the shell, stop that
81
81
  subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
82
82
  and the same handoff. Require only its assigned packet.
@@ -90,7 +90,7 @@ Start both research subagents in parallel:
90
90
  Report that both subagents started:
91
91
 
92
92
  ```text
93
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase research-dispatched
93
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase research-dispatched
94
94
  ```
95
95
 
96
96
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -99,8 +99,8 @@ failed step.
99
99
  The research is under way. Continue to the surface-control preflight while it runs:
100
100
 
101
101
  ```text
102
- npx --prefer-offline --yes copilotkit@4.15.0 onboard read research/preflight
102
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard read research/preflight
103
103
  ```
104
104
 
105
105
  If inspection stops onboarding, run
106
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read stopped/run-failed`.
106
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read stopped/run-failed`.
@@ -21,7 +21,7 @@ Project selection is where the settled port is written down, through `--runtime-
21
21
  Then report that the research came back:
22
22
 
23
23
  ```text
24
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase research-returned
24
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase research-returned
25
25
  ```
26
26
 
27
27
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -54,7 +54,7 @@ worker a focused directory check. Continue only when both workers return the sam
54
54
  app directory. Both results must start with `Status: passed`. Otherwise, use the stop route.
55
55
 
56
56
  When both research results are merged, run
57
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read research/route`.
57
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read research/route`.
58
58
 
59
59
  If inspection stops onboarding, run
60
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read stopped/run-failed`.
60
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read stopped/run-failed`.
@@ -45,7 +45,7 @@ mechanism a later step uses for the CopilotKit documentation server.
45
45
 
46
46
  Some coding agents, Claude Code among them, load a newly registered MCP server only at the
47
47
  next session start. Tell the developer in one line to expect one restart, then restart and
48
- re-bind with `npx --prefer-offline --yes copilotkit@4.15.0 onboard start --run <onboarding_run_id>`. That
48
+ re-bind with `npx --prefer-offline --yes copilotkit@4.16.0 onboard start --run <onboarding_run_id>`. That
49
49
  restart is a step here, not an error.
50
50
 
51
51
  Do not add a browser or device driver to the project. A driver added there is a
@@ -62,14 +62,14 @@ whole finding.
62
62
  Report that the probe settled, whichever way it came out:
63
63
 
64
64
  ```text
65
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase surface-probed
65
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase surface-probed
66
66
  ```
67
67
 
68
68
  Then merge the research:
69
69
 
70
70
  ```text
71
- npx --prefer-offline --yes copilotkit@4.15.0 onboard read research/merge
71
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard read research/merge
72
72
  ```
73
73
 
74
74
  If inspection stops onboarding, run
75
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read stopped/run-failed`.
75
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read stopped/run-failed`.
@@ -9,7 +9,7 @@ sends the run down one path.
9
9
  Before you route on, run this from the target app directory:
10
10
 
11
11
  ```text
12
- npx --prefer-offline --yes copilotkit@4.15.0 onboard protect
12
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard protect
13
13
  ```
14
14
 
15
15
  It reads the working tree itself, records every changed or untracked path with a digest,
@@ -41,7 +41,7 @@ On either, run this before you read the three findings below, and without asking
41
41
  purpose question:
42
42
 
43
43
  ```text
44
- npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/channels/start
44
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard read feature/channels/start
45
45
  ```
46
46
 
47
47
  Name the provider to that node so it does not ask again. A Slack page names Slack. A Teams
@@ -96,7 +96,7 @@ settle these three from your own reading of the project. Each one comes from the
96
96
  packets or it is not proved.
97
97
 
98
98
  If all three are proved, prove the live starting state before any project file changes. Run
99
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read proof/oss-baseline`.
99
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read proof/oss-baseline`.
100
100
 
101
101
  Route there before you ask the developer anything else. The questions after this prompt
102
102
  select a framework and a frontend that the findings already name, so a developer who
@@ -109,7 +109,7 @@ developer nor the repository findings prove what the project is for, ask one gui
109
109
  question about the user outcome. This asks what the developer wants to build before you
110
110
  select a framework. Give two or three short examples. Record the answer and give it to
111
111
  each later subagent. Then run
112
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read credentials/plan`.
112
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read credentials/plan`.
113
113
 
114
114
  Do not ask that question on the route above. A project carrying all three states its
115
115
  purpose in the application it already serves.
@@ -123,5 +123,5 @@ A purpose question here names a domain before that choice.
123
123
  Take the same read named above without asking.
124
124
 
125
125
  If authentication or inspection stops onboarding, run
126
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read stopped/run-failed`. Neither says anything
126
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read stopped/run-failed`. Neither says anything
127
127
  about whether this project's stack is supported, which is not yet known at this point.
@@ -52,7 +52,7 @@ the derived name.
52
52
  Only if the developer asks for an existing project, or asks to see the projects they have,
53
53
  read the choices:
54
54
 
55
- `npx --prefer-offline --yes copilotkit@4.15.0 project list --json`
55
+ `npx --prefer-offline --yes copilotkit@4.16.0 project list --json`
56
56
 
57
57
  Then ask which one to use. Do not order the projects by creation time. If the developer
58
58
  already gave this answer, do not ask again. Do not read a secret value. Do not show or
@@ -79,7 +79,7 @@ Run the command from the parent directory. Do not inspect another entry in the p
79
79
  directory. Replace each placeholder with the recorded value. Do not run a placeholder as
80
80
  a shell argument.
81
81
 
82
- `npx --prefer-offline --yes copilotkit@4.15.0 init --name <directory-name> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
82
+ `npx --prefer-offline --yes copilotkit@4.16.0 init --name <directory-name> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
83
83
 
84
84
  `--name` is always the target directory name derived above, because `init` creates the
85
85
  app at `<parent>/<name>`. Any other value puts the app in a new folder beside the target,
@@ -91,6 +91,13 @@ the dependency install, use
91
91
  answer as a flag. `--no-key-prompt` stops `init` from asking for a model key. The `init`
92
92
  output still names each missing key as `Set <VARIABLE> in .env`.
93
93
 
94
+ If the developer named a key file, add `--model-key-file <key-file>` with the path they gave.
95
+ `init` copies only the variable the starter needs into the starter's own env file,
96
+ including `agent/.env` for the Microsoft Agent Framework Python starter. It prints the
97
+ variable name and never the value. Do not read or copy the key file yourself. If `init`
98
+ reports that it cannot read the model key file, it stopped before it cloned anything. Ask
99
+ the developer for the right path, or run the command again without the flag.
100
+
94
101
  The command clones the starter into the empty target directory. It also connects the
95
102
  starter to the developer's Intelligence project. The earlier login phase supplies the
96
103
  account. The command does not need terminal input.
@@ -98,7 +105,7 @@ account. The command does not need terminal input.
98
105
  Report the clone before you inspect anything:
99
106
 
100
107
  ```text
101
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase starter-cloned
108
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase starter-cloned
102
109
  ```
103
110
 
104
111
  This is its own step, not an aside. A run that clones and then goes quiet is
@@ -111,6 +118,10 @@ and validation commands.
111
118
 
112
119
  ## Settle the model credential
113
120
 
121
+ The `init` output names each key it copied from a key file as
122
+ `Copied <VARIABLE> from the model key file into <file>`. A copied key is in place, so do
123
+ not check it. If the key file did not hold a variable, the output warns by name.
124
+
114
125
  The `init` output names each missing credential as `Set <VARIABLE> in .env`. For each
115
126
  one, check the starter's own `.env` without reading the value:
116
127
 
@@ -121,19 +132,15 @@ grep -c '^<VARIABLE>=.' <target>/.env
121
132
  `1` means the variable holds a value. `0` means it is empty or absent. The command prints
122
133
  a count and never the value.
123
134
 
124
- If the developer named a key file, copy that one variable from it into `<target>/.env`,
125
- in place of the empty line. Do not print either file, and do not print the value. Then
126
- run the check again.
127
-
128
- If a variable is still empty, ask the developer to add it to `<target>/.env` themselves.
135
+ If a variable is empty, ask the developer to add it to `<target>/.env` themselves.
129
136
 
130
137
  The two Microsoft Agent Framework starters keep their key outside `<target>/.env`, so
131
138
  `init` prints no `Set` line for them. Settle the key from the Model key column instead:
132
139
 
133
- - For the Python starter, run the same check for `OPENAI_API_KEY` against
134
- `<target>/agent/.env`. A missing file counts as `0`. If the developer named a key file,
135
- copy the variable into `<target>/agent/.env` the same way. If it is still empty, ask the
136
- developer to add it there themselves.
140
+ - For the Python starter, a key file passed to `init` fills `<target>/agent/.env`, and the
141
+ output says so. Otherwise, run the same check for `OPENAI_API_KEY` against
142
+ `<target>/agent/.env`. A missing file counts as `0`. If it is empty, ask the developer to
143
+ add it there themselves.
137
144
  - For the .NET starter, the key lives in `dotnet user-secrets`, and no check can read it
138
145
  without printing the value. Ask the developer to run
139
146
  `cd <target>/agent && dotnet user-secrets set OPENAI_API_KEY "<key>"` themselves, even
@@ -142,7 +149,7 @@ The two Microsoft Agent Framework starters keep their key outside `<target>/.env
142
149
  Then report the pause and end your turn:
143
150
 
144
151
  ```text
145
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase awaiting-developer
152
+ npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase awaiting-developer
146
153
  ```
147
154
 
148
155
  This is a pause, not a stop. Do not send a stop report, and do not take a stop route.
@@ -153,10 +160,10 @@ call.
153
160
 
154
161
  If no credential is missing, report no pause and continue.
155
162
 
156
- Then run `npx --prefer-offline --yes copilotkit@4.15.0 onboard read proof/round-trip`.
163
+ Then run `npx --prefer-offline --yes copilotkit@4.16.0 onboard read proof/round-trip`.
157
164
 
158
165
  If the command fails, report its exact error and do not claim that the starter is ready.
159
166
  Then run
160
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read stopped/run-failed`. The starter is one this
167
+ `npx --prefer-offline --yes copilotkit@4.16.0 onboard read stopped/run-failed`. The starter is one this
161
168
  graph ships and the stack was chosen from its own supported list, so a command that
162
169
  returned an error is a run that broke, not a setup this release does not support.