copilotkit 4.17.0 → 4.18.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 (81) hide show
  1. package/README.md +127 -5
  2. package/cli-build-info.json +7 -7
  3. package/exporters/langgraph/README.md +118 -0
  4. package/exporters/langgraph/export_checkpointer.py +125 -0
  5. package/index.js +12227 -9022
  6. package/onboarding/index.json +1 -1
  7. package/onboarding/prompts/authenticate/start.md +18 -19
  8. package/onboarding/prompts/conversion/plan.md +3 -3
  9. package/onboarding/prompts/credentials/finalize-plan.md +57 -200
  10. package/onboarding/prompts/credentials/plan.md +24 -23
  11. package/onboarding/prompts/credentials/settle-credentials.md +40 -213
  12. package/onboarding/prompts/credentials/write-plan.md +17 -8
  13. package/onboarding/prompts/fallback/best-effort.md +12 -12
  14. package/onboarding/prompts/feature/a2ui/implement.md +7 -7
  15. package/onboarding/prompts/feature/a2ui/proof.md +7 -7
  16. package/onboarding/prompts/feature/a2ui/start.md +53 -9
  17. package/onboarding/prompts/feature/channels/implement.md +8 -8
  18. package/onboarding/prompts/feature/channels/proof.md +7 -7
  19. package/onboarding/prompts/feature/channels/start.md +50 -7
  20. package/onboarding/prompts/feature/chat-suggestions/implement.md +7 -7
  21. package/onboarding/prompts/feature/chat-suggestions/proof.md +7 -7
  22. package/onboarding/prompts/feature/chat-suggestions/start.md +50 -7
  23. package/onboarding/prompts/feature/complete.md +2 -2
  24. package/onboarding/prompts/feature/learning/implement.md +24 -19
  25. package/onboarding/prompts/feature/learning/proof.md +8 -8
  26. package/onboarding/prompts/feature/learning/start.md +43 -20
  27. package/onboarding/prompts/feature/open-generative-ui/implement.md +7 -7
  28. package/onboarding/prompts/feature/open-generative-ui/proof.md +7 -7
  29. package/onboarding/prompts/feature/open-generative-ui/start.md +50 -7
  30. package/onboarding/prompts/feature/realtime-sync/implement.md +8 -8
  31. package/onboarding/prompts/feature/realtime-sync/proof.md +7 -7
  32. package/onboarding/prompts/feature/realtime-sync/start.md +49 -6
  33. package/onboarding/prompts/feature/rich-threads/implement.md +9 -9
  34. package/onboarding/prompts/feature/rich-threads/proof.md +7 -7
  35. package/onboarding/prompts/feature/rich-threads/start.md +49 -6
  36. package/onboarding/prompts/feature/stop.md +5 -5
  37. package/onboarding/prompts/feature/voice/implement.md +7 -7
  38. package/onboarding/prompts/feature/voice/proof.md +7 -7
  39. package/onboarding/prompts/feature/voice/start.md +50 -7
  40. package/onboarding/prompts/framework/ag2.md +2 -2
  41. package/onboarding/prompts/framework/agno.md +2 -2
  42. package/onboarding/prompts/framework/built-in.md +2 -2
  43. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  44. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  45. package/onboarding/prompts/framework/crewai-flows.md +2 -2
  46. package/onboarding/prompts/framework/deep-agents.md +2 -2
  47. package/onboarding/prompts/framework/google-adk.md +2 -2
  48. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  49. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  50. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  51. package/onboarding/prompts/framework/llamaindex.md +2 -2
  52. package/onboarding/prompts/framework/mastra.md +2 -2
  53. package/onboarding/prompts/framework/ms-agent-dotnet.md +2 -2
  54. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
  55. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  56. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  57. package/onboarding/prompts/framework/strands-python.md +2 -2
  58. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  59. package/onboarding/prompts/frontend/angular.md +3 -3
  60. package/onboarding/prompts/frontend/nextjs.md +3 -3
  61. package/onboarding/prompts/frontend/plan.md +9 -8
  62. package/onboarding/prompts/frontend/react-native.md +2 -2
  63. package/onboarding/prompts/frontend/react-spa.md +2 -2
  64. package/onboarding/prompts/frontend/vue.md +2 -2
  65. package/onboarding/prompts/implementation/build-and-validate.md +19 -20
  66. package/onboarding/prompts/proof/complete.md +11 -11
  67. package/onboarding/prompts/proof/oss-baseline.md +5 -5
  68. package/onboarding/prompts/proof/round-trip.md +16 -15
  69. package/onboarding/prompts/research/gather.md +6 -6
  70. package/onboarding/prompts/research/merge.md +3 -3
  71. package/onboarding/prompts/research/preflight.md +4 -4
  72. package/onboarding/prompts/research/route.md +5 -5
  73. package/onboarding/prompts/starter/clone.md +8 -7
  74. package/onboarding/prompts/stopped/run-failed.md +4 -4
  75. package/onboarding/prompts/subagent/create-plan.md +10 -1
  76. package/onboarding/prompts/subagent/inspect-repository.md +9 -2
  77. package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
  78. package/onboarding/prompts/subagent/prove-round-trip.md +47 -17
  79. package/onboarding/prompts/unsupported/no-validated-path.md +4 -4
  80. package/package.json +1 -1
  81. package/release/release-tool.js +19 -5
@@ -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.17.0 onboard read credentials/finalize-plan`.
17
+ `npx --prefer-offline --yes copilotkit@4.18.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.17.0 onboard read unsupported/no-validated-path`.
20
+ `npx --prefer-offline --yes copilotkit@4.18.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.17.0 onboard read credentials/finalize-plan`.
22
+ `npx --prefer-offline --yes copilotkit@4.18.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.17.0 onboard read unsupported/no-validated-path`.
25
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read unsupported/no-validated-path`.
@@ -6,14 +6,13 @@ Do not implement the plan yourself. Use the step order in the approved plan.
6
6
 
7
7
  Two rules below stop onboarding: a Learning Container create that fails for a reason other
8
8
  than the container already existing, and a `--accept-credential` refusal that names a lost
9
- variable. Each one ends a run the developer has already approved a plan for. Name the
10
- exact command, id, and error code that stopped you: a report that names only the step
11
- cannot be acted on. Send one short report before you stop. Run the friction
12
- command without another developer question. Do not ask the developer about telemetry: the
13
- command applies the setting they already have.
9
+ variable. Each one ends a run the developer has already approved a plan for. Name the exact
10
+ command, id, and error code that stopped you: a report that names only the step cannot be
11
+ acted on. Send one short report before you stop. The friction command follows the telemetry
12
+ setting the developer already chose, so it needs no separate question.
14
13
 
15
14
  ```text
16
- npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --phase stop --category <slug> --message "<sentences>"
15
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --phase stop --category <slug> --message "<sentences>"
17
16
  ```
18
17
 
19
18
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -68,7 +67,7 @@ Approving the plan is the developer agreeing to every path it listed under
68
67
  app directory:
69
68
 
70
69
  ```text
71
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
70
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
72
71
  ```
73
72
 
74
73
  Consent has to be on the record before the file moves, so a call made after the change is
@@ -96,7 +95,7 @@ No implementation step has run yet, so the change is theirs rather than this run
96
95
  consent over it by adding one flag:
97
96
 
98
97
  ```text
99
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>" --with-prior-change
98
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>" --with-prior-change
100
99
  ```
101
100
 
102
101
  The flag records their change as drift beside the consent, so the closing report names both
@@ -116,7 +115,7 @@ audit below describes, rather than use this section.
116
115
  Run the audit from the target app directory:
117
116
 
118
117
  ```text
119
- npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
118
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard audit
120
119
  ```
121
120
 
122
121
  It compares every protected path with the digest the CLI captured for it. Its result starts
@@ -151,14 +150,14 @@ A path that no Files changed section names changed outside the run, and it is th
151
150
  developer's own file. Accept it by name:
152
151
 
153
152
  ```text
154
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-external --path <path>
153
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --accept-external --path <path>
155
154
  ```
156
155
 
157
156
  A changed env file is its own case. This run asked the developer to place a credential
158
157
  there, so it takes the credential route rather than this one:
159
158
 
160
159
  ```text
161
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-credential --path <path>
160
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --accept-credential --path <path>
162
161
  ```
163
162
 
164
163
  That route proves no recorded credential was lost, instead of taking the run's word that it
@@ -177,7 +176,7 @@ neither does a one-line fix. Never repair, reset, or revert it. Ask the develope
177
176
  the change, and record the answer they give:
178
177
 
179
178
  ```text
180
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
179
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
181
180
  ```
182
181
 
183
182
  Use it only for an answer a developer actually gave. It records the consent as taken
@@ -204,7 +203,7 @@ create it now, from the target app directory. The developer approved the id befo
204
203
  made, so this is the first point at which it can be created:
205
204
 
206
205
  ```text
207
- npx --prefer-offline --yes copilotkit@4.17.0 learning containers create --id <id> --name <name> --json
206
+ npx --prefer-offline --yes copilotkit@4.18.0 learning containers create --id <id> --name <name> --json
208
207
  ```
209
208
 
210
209
  Pass the id the plan names. Take the name from the selected project's own display name, so
@@ -220,7 +219,7 @@ hold.
220
219
  Then report that the container is settled, before any edit:
221
220
 
222
221
  ```text
223
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase container-settled
222
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase container-settled
224
223
  ```
225
224
 
226
225
  Where the plan names a container the platform already held, report the same checkpoint and
@@ -231,11 +230,11 @@ create nothing. Where the plan names no container, skip this section.
231
230
  Report the plan this run is about to implement:
232
231
 
233
232
  ```text
234
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase plan-written
233
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase plan-written
235
234
  ```
236
235
 
237
236
  Spawn one implementation subagent. Tell it to run
238
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read subagent/implement-and-validate` first and follow
237
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read subagent/implement-and-validate` first and follow
239
238
  the prompt it returns. If that read fails because the subagent cannot use the shell, stop that
240
239
  subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
241
240
  and the same handoff. Give it the plan, selected framework, frontend, model, exact target app
@@ -264,11 +263,11 @@ returned. Continue to proof only when that audit passes.
264
263
  After the selected implementation path passes, report it:
265
264
 
266
265
  ```text
267
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase build-validated
266
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase build-validated
268
267
  ```
269
268
 
270
269
  Then run
271
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read proof/round-trip`.
270
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read proof/round-trip`.
272
271
 
273
272
  ## Repair rules
274
273
 
@@ -294,9 +293,9 @@ the same command still fails after three repair attempts, a result starts with
294
293
  declined a file the plan does not name, or the run cannot ask them about it. A defect in a
295
294
  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
296
295
  proved nothing about the stack. In those cases run
297
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read stopped/run-failed`.
296
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`.
298
297
 
299
298
  A plan with no path to follow takes the unsupported ending: the fix requires changing the
300
299
  developer's existing agent or frontend, or the documentation does not support the plan. In
301
300
  those cases run
302
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read unsupported/no-validated-path`.
301
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read unsupported/no-validated-path`.
@@ -85,7 +85,7 @@ Name the debugging surface this journey's frontend can reach, rather than the on
85
85
  of the documentation leads with. For a web frontend it is the CopilotKit Inspector. For
86
86
  React Native there is no Inspector: it is a browser overlay built on a DOM custom element,
87
87
  and `@copilotkit/react-native` does not ship it. Give a mobile developer
88
- `npx --prefer-offline --yes copilotkit@4.17.0 verify --round-trip`, the runtime's own log, the AG-UI
88
+ `npx --prefer-offline --yes copilotkit@4.18.0 verify --round-trip`, the runtime's own log, the AG-UI
89
89
  Event Inspector in the CopilotKit VS Code extension, and the CopilotKit Intelligence
90
90
  thread view
91
91
  instead. Naming the Inspector to a developer who cannot open it costs them the time it
@@ -115,12 +115,12 @@ Learning Container. The servers end when that host ends, and a `localhost` URL o
115
115
  developer's machine only through a forwarded port. Write the items that output lists in
116
116
  place of this sentence.
117
117
 
118
- Report each thing that slowed this run down. Send at most four reports, worst first. Run
119
- the friction commands without another developer question. Do not ask the developer about
120
- telemetry: the command applies the setting they already have.
118
+ Report each thing that slowed this run down. Send at most four reports, worst first. The
119
+ friction commands follow the telemetry setting the developer already chose, so they need no
120
+ separate question.
121
121
 
122
122
  ```text
123
- npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
123
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
124
124
  ```
125
125
 
126
126
  Put one or two sentences in `--message`. Pick one category from
@@ -132,7 +132,7 @@ Pass --docs-path only for a docs-missing or docs-wrong report, naming the page t
132
132
  is about:
133
133
 
134
134
  ```text
135
- npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --category docs-wrong --cost-seconds 300 --docs-path /docs/threads/drawer --message "<sentences>"
135
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --category docs-wrong --cost-seconds 300 --docs-path /docs/threads/drawer --message "<sentences>"
136
136
  ```
137
137
 
138
138
  Give the page's site-relative path or its full URL, with no spaces, query string, or
@@ -149,14 +149,14 @@ Tell the developer when you send a friction report. Do not quote or summarize th
149
149
  unless the developer asks. If the CLI says the report was not sent,
150
150
  state what it said and continue without another question.
151
151
 
152
- When the evidence is gathered, run `npx --prefer-offline --yes copilotkit@4.17.0 onboard complete`, carrying
152
+ When the evidence is gathered, run `npx --prefer-offline --yes copilotkit@4.18.0 onboard complete`, carrying
153
153
  the surface-check outcome the proof subagent returned. Pass exactly one of `--visual-check`
154
154
  or `--device-check`, and pass the one that matches this journey's surface.
155
155
 
156
156
  For a web frontend -- React SPA, Next.js, Angular, Vue:
157
157
 
158
158
  ```text
159
- npx --prefer-offline --yes copilotkit@4.17.0 onboard complete --visual-check <outcome>
159
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard complete --visual-check <outcome>
160
160
  ```
161
161
 
162
162
  The outcome is one of `performed`, `skipped-no-browser-tool`, `skipped-cloned-starter`, or
@@ -166,7 +166,7 @@ open no browser. It is the one skip that does not block.
166
166
  For React Native:
167
167
 
168
168
  ```text
169
- npx --prefer-offline --yes copilotkit@4.17.0 onboard complete --device-check <outcome>
169
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard complete --device-check <outcome>
170
170
  ```
171
171
 
172
172
  The outcome is one of `performed`, `skipped-no-device`, `skipped-cloned-starter`, or
@@ -179,7 +179,7 @@ browser-origin CORS, so the flag you pass is how this run states which surface i
179
179
  For a web frontend, also pass the URL the browser opened:
180
180
 
181
181
  ```text
182
- npx --prefer-offline --yes copilotkit@4.17.0 onboard complete --visual-check <outcome> \
182
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard complete --visual-check <outcome> \
183
183
  --frontend-url <the url you opened>
184
184
  ```
185
185
 
@@ -199,7 +199,7 @@ If the round trip proved and something after it still blocked this run, add `--b
199
199
  to the same command:
200
200
 
201
201
  ```text
202
- npx --prefer-offline --yes copilotkit@4.17.0 onboard complete --visual-check performed --blocked-by <cause>
202
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard complete --visual-check performed --blocked-by <cause>
203
203
  ```
204
204
 
205
205
  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.17.0 onboard read subagent/prove-oss-baseline` first and follow the
4
+ `npx --prefer-offline --yes copilotkit@4.18.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.17.0 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
20
+ npx --prefer-offline --yes copilotkit@4.18.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. Use the list below. A proof that never ran is `skipped`, not failed. The command prints one line and sends
@@ -39,12 +39,12 @@ Do not change project files before this proof ends. Starting existing developmen
39
39
  processes and their ignored runtime files is allowed.
40
40
 
41
41
  If the subagent proves the `both-oss` predicate, keep its evidence with the plan and run
42
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read conversion/plan`. That project already works.
42
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read conversion/plan`. That project already works.
43
43
  What it needs is the conversion, not a build.
44
44
 
45
45
  If the proof does not establish the baseline, record the starting state
46
46
  `both-copilotkit-unproved` and run
47
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read credentials/plan`. This prompt is served
47
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read credentials/plan`. This prompt is served
48
48
  whenever a project looks like an OSS integration, so a baseline that did not prove is an
49
49
  ordinary starting state rather than a failure. Keep the failing predicate with the plan.
50
50
 
@@ -58,5 +58,5 @@ and the plan preserves it rather than repeating it.
58
58
 
59
59
  If it cannot identify the running process safely, exposes a secret, or finds a baseline
60
60
  failure that cannot be classified, run
61
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read stopped/run-failed`. None of those mean the
61
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`. None of those mean the
62
62
  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.17.0 onboard read subagent/prove-round-trip` first and follow the
4
+ `npx --prefer-offline --yes copilotkit@4.18.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,21 +33,22 @@ 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.17.0 onboard checkpoint --phase journey-attempted --attempt 1
36
+ npx --prefer-offline --yes copilotkit@4.18.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.17.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
42
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
43
43
  ```
44
44
 
45
- Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. The
46
- command prints one line and sends nothing else. Where a repair cycle runs the proof again,
45
+ Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. A
46
+ round trip that `verify --round-trip` ran and saw fail is `failed`, and the command refuses
47
+ to record it as `skipped`. The command prints one line and sends nothing else. Where a repair cycle runs the proof again,
47
48
  record each attempt as it ends.
48
49
 
49
50
  For every protected-path audit in this prompt, run
50
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard audit` from the target app directory. If its result
51
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard audit` from the target app directory. If its result
51
52
  starts with `Status: blocked`, report the printed reason and use the route-out rules below.
52
53
  A blocked audit proved nothing changed and is not a preservation failure. If a
53
54
  protected-path audit reports a changed path, decide it the way the implementation prompt
@@ -56,7 +57,7 @@ returns none, so a finding with no Files changed section to test against routes
56
57
  path one of those sections names is this run's own change and routes out too. Accept a
57
58
  path only when a section this run collected covers the step that wrote it and does not
58
59
  name it:
59
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-external --path <path>`. Then run
60
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --accept-external --path <path>`. Then run
60
61
  the audit again and name the path in the closing summary. Never repair, reset, or revert a
61
62
  protected path.
62
63
 
@@ -64,12 +65,12 @@ That holds for a repair cycle too. When the fix for a failing check lands on a p
64
65
  path, the path is still the developer's, however right the diagnosis is and however small
65
66
  the fix. Reading the file never settles who wrote it. Ask the developer to allow the
66
67
  change, and record their answer with
67
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
68
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
68
69
  or route out. Never repair it, and never send it to a repair worker.
69
70
 
70
71
  If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
71
72
  `proof/complete` only if that audit passes. After the audit passes, run
72
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read proof/complete`. A performed surface outcome with
73
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read proof/complete`. A performed surface outcome with
73
74
  the full round trip is core success even if a continued-development tool fails. A skipped
74
75
  surface outcome still enters `proof/complete` so the CLI records the blocked result.
75
76
  `skipped-cloned-starter` is the exception: the CLI records that run as complete. Do not
@@ -147,7 +148,7 @@ Restart each project-owned process changed by the repair. Report the cycle, coun
147
148
  one:
148
149
 
149
150
  ```text
150
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase repair-attempted --attempt 1
151
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase repair-attempted --attempt 1
151
152
  ```
152
153
 
153
154
  Then spawn a fresh proof subagent
@@ -165,18 +166,18 @@ proof cycles, use the route-out rules below.
165
166
 
166
167
  Route out only when the failure is not yours to fix, when the same proof still fails after
167
168
  three attempts, or when no evidence of the round trip can be produced. In those cases run
168
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read stopped/run-failed`. The stack is supported:
169
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`. The stack is supported:
169
170
  this run did not finish, which is a different ending and a different report. All three are
170
171
  about the round trip itself. A round trip that proved is not one of them, whatever failed
171
172
  after it.
172
173
 
173
174
  If you stop here without taking that route -- a repair cycle you cannot finish, a limit in
174
- your own harness, a run that has run out -- send one short report before you stop. Run the
175
- friction command without another developer question: it applies the telemetry setting the
176
- developer already set.
175
+ your own harness, a run that has run out -- send one short report before you stop. The
176
+ friction command follows the telemetry setting the developer already chose, so it needs no
177
+ separate question.
177
178
 
178
179
  ```text
179
- npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --phase stop --category <slug> --message "<sentences>"
180
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --phase stop --category <slug> --message "<sentences>"
180
181
  ```
181
182
 
182
183
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -44,7 +44,7 @@ Before you end your turn to wait for the developer where the prompt states no de
44
44
  report the pause:
45
45
 
46
46
  ```text
47
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase awaiting-developer
47
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase awaiting-developer
48
48
  ```
49
49
 
50
50
  When the answer or the result arrives, continue from the step that paused. Do not read an
@@ -64,7 +64,7 @@ Both research subagents failing means this harness has no working subagent at al
64
64
  is worth recording once:
65
65
 
66
66
  ```text
67
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase delegation-unavailable
67
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase delegation-unavailable
68
68
  ```
69
69
 
70
70
  Then say once, in your own words, that this environment has no working subagents, so you
@@ -77,7 +77,7 @@ Before you ask the developer any setup question, finish every read-only investig
77
77
  preflight check in this section.
78
78
 
79
79
  Prepare two research assignments. Give each research subagent one assignment. Tell it to run
80
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read subagent/inspect-repository` first and follow the
80
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read subagent/inspect-repository` first and follow the
81
81
  prompt it returns. If that read fails because the subagent cannot use the shell, stop that
82
82
  subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
83
83
  and the same handoff. Require only its assigned packet.
@@ -91,7 +91,7 @@ Start both research subagents in parallel:
91
91
  Report that both subagents started:
92
92
 
93
93
  ```text
94
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase research-dispatched
94
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase research-dispatched
95
95
  ```
96
96
 
97
97
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -100,8 +100,8 @@ failed step.
100
100
  The research is under way. Continue to the surface-control preflight while it runs:
101
101
 
102
102
  ```text
103
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read research/preflight
103
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read research/preflight
104
104
  ```
105
105
 
106
106
  If inspection stops onboarding, run
107
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read stopped/run-failed`.
107
+ `npx --prefer-offline --yes copilotkit@4.18.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.17.0 onboard checkpoint --phase research-returned
24
+ npx --prefer-offline --yes copilotkit@4.18.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.17.0 onboard read research/route`.
57
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read research/route`.
58
58
 
59
59
  If inspection stops onboarding, run
60
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read stopped/run-failed`.
60
+ `npx --prefer-offline --yes copilotkit@4.18.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.17.0 onboard start --run <onboarding_run_id>`. That
48
+ re-bind with `npx --prefer-offline --yes copilotkit@4.18.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.17.0 onboard checkpoint --phase surface-probed
65
+ npx --prefer-offline --yes copilotkit@4.18.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.17.0 onboard read research/merge
71
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read research/merge
72
72
  ```
73
73
 
74
74
  If inspection stops onboarding, run
75
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read stopped/run-failed`.
75
+ `npx --prefer-offline --yes copilotkit@4.18.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.17.0 onboard protect
12
+ npx --prefer-offline --yes copilotkit@4.18.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.17.0 onboard read feature/channels/start
44
+ npx --prefer-offline --yes copilotkit@4.18.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.17.0 onboard read proof/oss-baseline`.
99
+ `npx --prefer-offline --yes copilotkit@4.18.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.17.0 onboard read credentials/plan`.
112
+ `npx --prefer-offline --yes copilotkit@4.18.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, inspection, or the baseline capture stops onboarding, run
126
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read stopped/run-failed`. None of them says anything
126
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`. None of them says anything
127
127
  about whether this project's stack is supported, which is not yet known at this point.
@@ -55,7 +55,7 @@ the derived name.
55
55
  Only if the developer asks for an existing project, or asks to see the projects they have,
56
56
  read the choices:
57
57
 
58
- `npx --prefer-offline --yes copilotkit@4.17.0 project list --json`
58
+ `npx --prefer-offline --yes copilotkit@4.18.0 project list --json`
59
59
 
60
60
  Then ask which one to use. Do not order the projects by creation time. If the developer
61
61
  already gave this answer, do not ask again. Do not read a secret value. Do not show or
@@ -82,7 +82,7 @@ Run the command from the parent directory. Do not inspect another entry in the p
82
82
  directory. Replace each placeholder with the recorded value. Do not run a placeholder as
83
83
  a shell argument. If the directory name holds a space, put it in double quotes.
84
84
 
85
- `npx --prefer-offline --yes copilotkit@4.17.0 init --name <directory-name> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
85
+ `npx --prefer-offline --yes copilotkit@4.18.0 init --name <directory-name> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
86
86
 
87
87
  `--name` is always the target directory name derived above, because `init` creates the
88
88
  app at `<parent>/<name>`. Any other value puts the app in a new folder beside the target,
@@ -108,7 +108,7 @@ account. The command does not need terminal input.
108
108
  Report the clone before you inspect anything:
109
109
 
110
110
  ```text
111
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase starter-cloned
111
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase starter-cloned
112
112
  ```
113
113
 
114
114
  This is its own step, not an aside. A run that clones and then goes quiet is
@@ -149,10 +149,11 @@ The two Microsoft Agent Framework starters keep their key outside `<target>/.env
149
149
  `cd <target>/agent && dotnet user-secrets set OPENAI_API_KEY "<key>"` themselves, even
150
150
  if they named a key file.
151
151
 
152
- Then report the pause and end your turn:
152
+ When you ask, name each variable and the file it goes in, and say that the run continues
153
+ when they reply or resume this session. Then report the pause and end your turn:
153
154
 
154
155
  ```text
155
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase awaiting-developer
156
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase awaiting-model-credential
156
157
  ```
157
158
 
158
159
  This is a pause, not a stop. Do not send a stop report, and do not take a stop route.
@@ -163,10 +164,10 @@ call.
163
164
 
164
165
  If no credential is missing, report no pause and continue.
165
166
 
166
- Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard read proof/round-trip`.
167
+ Then run `npx --prefer-offline --yes copilotkit@4.18.0 onboard read proof/round-trip`.
167
168
 
168
169
  If the command fails, report its exact error and do not claim that the starter is ready.
169
170
  Then run
170
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read stopped/run-failed`. The starter is one this
171
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`. The starter is one this
171
172
  graph ships and the stack was chosen from its own supported list, so a command that
172
173
  returned an error is a run that broke, not a setup this release does not support.
@@ -41,7 +41,7 @@ put to them, stop here and send the report below.
41
41
  If they approve it, make that one fix and nothing else. Then come back into this run:
42
42
 
43
43
  ```text
44
- npx --prefer-offline --yes copilotkit@4.17.0 onboard resume --message "<approval>"
44
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard resume --message "<approval>"
45
45
  ```
46
46
 
47
47
  Put the developer's approval in `--message`, in one or two sentences: the fix they
@@ -60,11 +60,11 @@ said and stop.
60
60
 
61
61
  Stop onboarding without making more repository changes.
62
62
 
63
- Send one short report. Run the friction command without another developer question. Do not
64
- ask the developer about telemetry: the command applies the setting they already have.
63
+ Send one short report. The friction command follows the telemetry setting the developer
64
+ already chose, so it needs no separate question.
65
65
 
66
66
  ```text
67
- npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --phase stop --category <slug> --message "<sentences>"
67
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --phase stop --category <slug> --message "<sentences>"
68
68
  ```
69
69
 
70
70
  `--message` takes one or two sentences: the step you stopped at and what stopped
@@ -174,7 +174,7 @@ here is work the developer did not ask for.
174
174
  Plan the threads drawer itself: add it from the selected drawer page, where this frontend
175
175
  does not already render one. Where this journey's frontend framework ships no threads
176
176
  drawer -- React Native --, plan that the thread is proved by
177
- `npx --prefer-offline --yes copilotkit@4.17.0 verify --round-trip`, which needs no browser. Do not plan a
177
+ `npx --prefer-offline --yes copilotkit@4.18.0 verify --round-trip`, which needs no browser. Do not plan a
178
178
  step that opens the managed Intelligence dashboard.
179
179
 
180
180
  ## Order the plan into steps
@@ -219,6 +219,15 @@ to make a build pass during onboarding.
219
219
 
220
220
  The type check runs against the project's own configuration. If the project has no
221
221
  type-check command, add one that uses the configuration the project already has.
222
+ Where the repository findings carry a `typescript.migration` for an app, plan it as its
223
+ own step, before the first step that imports a CopilotKit package in that app. Name the
224
+ migration `file` and each change in `changes`, and give its `reason` in one sentence.
225
+ Under `node` or `node10` resolution, TypeScript ignores a package's `exports` map, so
226
+ every CopilotKit subpath import fails the type check while the app still runs. A plan
227
+ without this step stops after approval to ask for it. If the file is a protected path,
228
+ list it under `Authorization requested`. Where no migration is reported, do not change
229
+ `moduleResolution` or `module`. This change does not weaken type safety.
230
+
222
231
  Do not add compiler strictness the project did not have. Nothing later in the run is
223
232
  allowed to weaken type safety, so a stricter gate named here is one the run cannot get
224
233
  back out of.
@@ -7,7 +7,7 @@ Work only on the packet you were assigned. Inspect the repository without changi
7
7
  Run this first, from the target project directory:
8
8
 
9
9
  ```text
10
- npx --prefer-offline --yes copilotkit@4.17.0 onboard inspect --json
10
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard inspect --json
11
11
  ```
12
12
 
13
13
  It answers the deterministic half of both packets exactly, from the same code
@@ -15,7 +15,8 @@ It answers the deterministic half of both packets exactly, from the same code
15
15
  directory on its own, the env files, which variable carries the Intelligence key and which
16
16
  file it came from, whether that directory's own process can load it, the package manager
17
17
  its lockfile proves, the port it declares, the exact installed version of every
18
- `@copilotkit/*` dependency, and every provider base URL its process will read. It reads
18
+ `@copilotkit/*` dependency, every provider base URL its process will read, and the
19
+ module resolution its `tsconfig.json` sets, read through the `extends` chain. It reads
19
20
  only and prints no secret value.
20
21
 
21
22
  Report each `providerEndpoints` entry with the variable, its origin, and where it came
@@ -67,6 +68,12 @@ reading of the files will not reproduce.
67
68
  neither can be proved from project files
68
69
  - package compatibility risks, and whether any `@copilotkit/*` version the CLI reported is
69
70
  below 1.70.0
71
+ - the `tsconfig.json` change each app needs, from `typescript.migration`: its file and each
72
+ change, as they came back. The change lets CopilotKit subpath imports such as
73
+ `@copilotkit/runtime/v2` type-check. A `null` migration means that no change is needed.
74
+ Where `typescript.status` is `unreadable` or `typescript.unresolvedExtends` is not
75
+ empty, read that app's `tsconfig.json` chain and report its `moduleResolution` and
76
+ `module` values, or report them as unproved
70
77
 
71
78
  Key every environment finding by its app or runtime directory. Do not combine findings
72
79
  from different directories. The CLI packet keys its own readings the same way.