copilotkit 4.24.0 → 4.25.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 (91) hide show
  1. package/README.md +75 -14
  2. package/cli-build-info.json +7 -7
  3. package/index.js +8544 -6674
  4. package/onboarding/index.json +2 -2
  5. package/onboarding/prompts/authenticate/start.md +50 -45
  6. package/onboarding/prompts/conversion/plan.md +3 -3
  7. package/onboarding/prompts/credentials/finalize-plan.md +30 -8
  8. package/onboarding/prompts/credentials/plan.md +115 -49
  9. package/onboarding/prompts/credentials/settle-credentials.md +7 -5
  10. package/onboarding/prompts/credentials/write-plan.md +15 -15
  11. package/onboarding/prompts/deployment/choose-local.md +44 -7
  12. package/onboarding/prompts/deployment/local-evaluation.md +12 -6
  13. package/onboarding/prompts/fallback/best-effort.md +8 -8
  14. package/onboarding/prompts/feature/a2ui/implement.md +15 -8
  15. package/onboarding/prompts/feature/a2ui/plan.md +15 -7
  16. package/onboarding/prompts/feature/a2ui/proof.md +14 -7
  17. package/onboarding/prompts/feature/a2ui/start.md +15 -14
  18. package/onboarding/prompts/feature/channels/implement.md +21 -9
  19. package/onboarding/prompts/feature/channels/plan.md +15 -7
  20. package/onboarding/prompts/feature/channels/proof.md +14 -7
  21. package/onboarding/prompts/feature/channels/start.md +20 -13
  22. package/onboarding/prompts/feature/chat-suggestions/implement.md +15 -8
  23. package/onboarding/prompts/feature/chat-suggestions/plan.md +15 -7
  24. package/onboarding/prompts/feature/chat-suggestions/proof.md +14 -7
  25. package/onboarding/prompts/feature/chat-suggestions/start.md +15 -14
  26. package/onboarding/prompts/feature/complete.md +2 -2
  27. package/onboarding/prompts/feature/learning/implement.md +32 -18
  28. package/onboarding/prompts/feature/learning/plan.md +15 -7
  29. package/onboarding/prompts/feature/learning/proof.md +37 -13
  30. package/onboarding/prompts/feature/learning/start.md +15 -14
  31. package/onboarding/prompts/feature/open-generative-ui/implement.md +15 -8
  32. package/onboarding/prompts/feature/open-generative-ui/plan.md +15 -7
  33. package/onboarding/prompts/feature/open-generative-ui/proof.md +14 -7
  34. package/onboarding/prompts/feature/open-generative-ui/start.md +15 -14
  35. package/onboarding/prompts/feature/realtime-sync/implement.md +20 -12
  36. package/onboarding/prompts/feature/realtime-sync/plan.md +15 -7
  37. package/onboarding/prompts/feature/realtime-sync/proof.md +14 -7
  38. package/onboarding/prompts/feature/realtime-sync/start.md +14 -13
  39. package/onboarding/prompts/feature/rich-threads/implement.md +21 -13
  40. package/onboarding/prompts/feature/rich-threads/plan.md +15 -7
  41. package/onboarding/prompts/feature/rich-threads/proof.md +14 -7
  42. package/onboarding/prompts/feature/rich-threads/start.md +14 -13
  43. package/onboarding/prompts/feature/stop.md +9 -3
  44. package/onboarding/prompts/feature/voice/implement.md +15 -8
  45. package/onboarding/prompts/feature/voice/plan.md +16 -8
  46. package/onboarding/prompts/feature/voice/proof.md +14 -7
  47. package/onboarding/prompts/feature/voice/start.md +15 -14
  48. package/onboarding/prompts/framework/ag2.md +6 -5
  49. package/onboarding/prompts/framework/agno.md +6 -5
  50. package/onboarding/prompts/framework/built-in.md +9 -6
  51. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  52. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  53. package/onboarding/prompts/framework/crewai-flows.md +12 -4
  54. package/onboarding/prompts/framework/custom-ag-ui.md +8 -2
  55. package/onboarding/prompts/framework/deep-agents.md +6 -5
  56. package/onboarding/prompts/framework/google-adk.md +2 -2
  57. package/onboarding/prompts/framework/langgraph-fastapi.md +8 -5
  58. package/onboarding/prompts/framework/langgraph-python.md +8 -5
  59. package/onboarding/prompts/framework/langgraph-typescript.md +8 -5
  60. package/onboarding/prompts/framework/llamaindex.md +6 -5
  61. package/onboarding/prompts/framework/mastra.md +9 -6
  62. package/onboarding/prompts/framework/ms-agent-dotnet.md +12 -4
  63. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +12 -4
  64. package/onboarding/prompts/framework/ms-agent-python.md +6 -5
  65. package/onboarding/prompts/framework/pydantic-ai.md +6 -5
  66. package/onboarding/prompts/framework/strands-python.md +10 -6
  67. package/onboarding/prompts/framework/strands-typescript.md +10 -6
  68. package/onboarding/prompts/frontend/angular.md +10 -3
  69. package/onboarding/prompts/frontend/nextjs.md +36 -3
  70. package/onboarding/prompts/frontend/plan.md +13 -7
  71. package/onboarding/prompts/frontend/react-native.md +9 -2
  72. package/onboarding/prompts/frontend/react-spa.md +9 -2
  73. package/onboarding/prompts/frontend/vue.md +9 -2
  74. package/onboarding/prompts/implementation/build-and-validate.md +45 -19
  75. package/onboarding/prompts/proof/complete.md +3 -3
  76. package/onboarding/prompts/proof/oss-baseline.md +30 -13
  77. package/onboarding/prompts/proof/round-trip.md +55 -17
  78. package/onboarding/prompts/research/gather.md +21 -11
  79. package/onboarding/prompts/research/merge.md +8 -2
  80. package/onboarding/prompts/research/preflight.md +2 -2
  81. package/onboarding/prompts/research/route.md +14 -7
  82. package/onboarding/prompts/starter/clone.md +73 -16
  83. package/onboarding/prompts/stopped/run-failed.md +8 -2
  84. package/onboarding/prompts/subagent/create-plan.md +9 -2
  85. package/onboarding/prompts/subagent/implement-and-validate.md +2 -2
  86. package/onboarding/prompts/subagent/inspect-repository.md +12 -6
  87. package/onboarding/prompts/subagent/prove-oss-baseline.md +6 -1
  88. package/onboarding/prompts/subagent/prove-round-trip.md +50 -9
  89. package/onboarding/prompts/unsupported/no-validated-path.md +8 -2
  90. package/package.json +1 -1
  91. package/release/release-tool.js +9 -3
@@ -2,6 +2,13 @@
2
2
 
3
3
  Preserve an existing React Native frontend. Use the selected page for a new frontend.
4
4
 
5
+ This step asks the developer nothing. If the run must wait for the developer anyway, report
6
+ the pause first:
7
+
8
+ ```text
9
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
10
+ ```
11
+
5
12
  React Native has no starter. For a target directory that holds no project, build the new
6
13
  frontend from the documentation below.
7
14
 
@@ -18,7 +25,7 @@ documents `useRenderTool`, which is React Native's own hook for drawing a tool t
18
25
  already has. That is a different job and needs a tool in the agent.
19
26
 
20
27
  If the pages support the selection, record React Native and these URLs. Then run
21
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read credentials/finalize-plan`.
28
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read credentials/finalize-plan`.
22
29
 
23
30
  If the documentation does not support the selection, run
24
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read unsupported/no-validated-path`.
31
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read unsupported/no-validated-path`.
@@ -2,6 +2,13 @@
2
2
 
3
3
  Preserve an existing React SPA. Use the selected page for a new frontend.
4
4
 
5
+ This step asks the developer nothing. If the run must wait for the developer anyway, report
6
+ the pause first:
7
+
8
+ ```text
9
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
10
+ ```
11
+
5
12
  React SPA has no starter. For a target directory that holds no project, build the new
6
13
  frontend from the documentation below.
7
14
 
@@ -14,7 +21,7 @@ not move the agent into it.
14
21
  - https://docs.copilotkit.ai/react-spa.md
15
22
 
16
23
  If the page supports the selection, record React SPA and this URL. Then run
17
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read credentials/finalize-plan`.
24
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read credentials/finalize-plan`.
18
25
 
19
26
  If the documentation does not support the selection, run
20
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read unsupported/no-validated-path`.
27
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read unsupported/no-validated-path`.
@@ -2,6 +2,13 @@
2
2
 
3
3
  Preserve an existing Vue 3 frontend. Use the selected page for a new frontend.
4
4
 
5
+ This step asks the developer nothing. If the run must wait for the developer anyway, report
6
+ the pause first:
7
+
8
+ ```text
9
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
10
+ ```
11
+
5
12
  Vue 3 has no starter. For a target directory that holds no project, build the new
6
13
  frontend from the documentation below.
7
14
 
@@ -19,7 +26,7 @@ page above. Vue has its own `useComponent`, which is not the React package. Take
19
26
  that reference page rather than from a Vue generative-UI guide, which is not published.
20
27
 
21
28
  If the pages support the selection, record Vue 3 and these URLs. Then run
22
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read credentials/finalize-plan`.
29
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read credentials/finalize-plan`.
23
30
 
24
31
  If the documentation does not support the selection, run
25
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read unsupported/no-validated-path`.
32
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read unsupported/no-validated-path`.
@@ -12,7 +12,7 @@ acted on. Send one short report before you stop. The friction command follows th
12
12
  setting the developer already chose, so it needs no separate question.
13
13
 
14
14
  ```text
15
- npx --prefer-offline --yes copilotkit@4.24.0 onboard friction --phase stop --category <slug> --message "<sentences>"
15
+ npx --prefer-offline --yes copilotkit@4.25.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.
@@ -49,6 +49,13 @@ spawn a fresh implementation subagent with the same handoff. Add that file to th
49
49
  as a path the developer approved, and record it as a departure. If you cannot ask, or the
50
50
  developer declines, the failure ending in the route-out rules below applies.
51
51
 
52
+ This prompt pauses for the developer in several places. Before you end your turn to wait
53
+ for the developer, report the pause:
54
+
55
+ ```text
56
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
57
+ ```
58
+
52
59
  The existing agent's behavior is never a departure to record and carry on from. It is four
53
60
  things: its system prompt and instructions, its tools and what those tools do, its model
54
61
  and provider configuration, and its memory or state handling. Repair a failing check on
@@ -60,6 +67,12 @@ change is a behavior change, and the closing report names it as one. Never call
60
67
  to the agent's instructions or tools a repair. If you cannot ask, or the developer
61
68
  declines, use the route-out rules below.
62
69
 
70
+ Before you end your turn to wait for the developer, report the pause:
71
+
72
+ ```text
73
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
74
+ ```
75
+
63
76
  ## Authorization requested by the plan
64
77
 
65
78
  Approving the plan is the developer agreeing to every path it listed under
@@ -67,7 +80,7 @@ Approving the plan is the developer agreeing to every path it listed under
67
80
  app directory:
68
81
 
69
82
  ```text
70
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
83
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
71
84
  ```
72
85
 
73
86
  Consent has to be on the record before the file moves, so a call made after the change is
@@ -101,7 +114,7 @@ No implementation step has run yet, so the change is theirs rather than this run
101
114
  consent over it by adding one flag:
102
115
 
103
116
  ```text
104
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>" --with-prior-change
117
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>" --with-prior-change
105
118
  ```
106
119
 
107
120
  The flag records their change as drift beside the consent, so the closing report names both
@@ -116,12 +129,18 @@ to record for a path that comes up later. If you find such a path mid-run, ask t
116
129
  developer and record their answer with `--authorize --unplanned`, as the protected-path
117
130
  audit below describes, rather than use this section.
118
131
 
132
+ Before you end your turn to wait for the developer, report the pause:
133
+
134
+ ```text
135
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
136
+ ```
137
+
119
138
  ## Protected-path audit
120
139
 
121
140
  Run the audit from the target app directory:
122
141
 
123
142
  ```text
124
- npx --prefer-offline --yes copilotkit@4.24.0 onboard audit
143
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard audit
125
144
  ```
126
145
 
127
146
  It compares every protected path with the digest the CLI captured for it. Its result starts
@@ -156,14 +175,14 @@ A path that no Files changed section names changed outside the run, and it is th
156
175
  developer's own file. Accept it by name:
157
176
 
158
177
  ```text
159
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect --accept-external --path <path>
178
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --accept-external --path <path>
160
179
  ```
161
180
 
162
181
  A changed env file is its own case. This run asked the developer to place a credential
163
182
  there, so it takes the credential route rather than this one:
164
183
 
165
184
  ```text
166
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect --accept-credential --path <path>
185
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --accept-credential --path <path>
167
186
  ```
168
187
 
169
188
  That route proves no recorded credential was lost, instead of taking the run's word that it
@@ -179,10 +198,16 @@ The prohibition on repairing a protected path holds wherever the path comes up,
179
198
  here. A failing check is the usual way it comes up: the diagnosis lands on a file, and the
180
199
  file turns out to be protected. A correct diagnosis does not make the file this run's, and
181
200
  neither does a one-line fix. Never repair, reset, or revert it. Ask the developer to allow
182
- the change, and record the answer they give:
201
+ the change. Before you end your turn to wait for the developer, report the pause:
202
+
203
+ ```text
204
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
205
+ ```
206
+
207
+ Record the answer they give:
183
208
 
184
209
  ```text
185
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
210
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
186
211
  ```
187
212
 
188
213
  Use it only for an answer a developer actually gave. It records the consent as taken
@@ -217,7 +242,7 @@ directory. The developer approved the id before it was made, so this is the firs
217
242
  which it can be created:
218
243
 
219
244
  ```text
220
- npx --prefer-offline --yes copilotkit@4.24.0 learning containers create --id <id> --name <name> --json
245
+ npx --prefer-offline --yes copilotkit@4.25.0 learning containers create --id <id> --name <name> --json
221
246
  ```
222
247
 
223
248
  Pass the id the plan names. Take the name from the selected project's own display name, so
@@ -234,16 +259,17 @@ plan names no container, skip this section.
234
259
  ## Implement the plan
235
260
 
236
261
  Spawn one implementation subagent. Tell it to run
237
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read subagent/implement-and-validate` first and follow
238
- the prompt it returns. If that read fails because the subagent cannot use the shell, stop that
239
- subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
240
- and the same handoff. Give it the plan, selected framework, frontend, model, exact target app
241
- directory, selected documentation URLs, and the
262
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read subagent/implement-and-validate` first and
263
+ follow the prompt it returns. Tell it to return at once, and say so, if that read is refused
264
+ or fails, and not to wait for an approval. If it returns that way, stop that subagent. Run
265
+ the same command yourself, then spawn a fresh subagent with the returned prompt and the same
266
+ handoff. Give it the plan, selected framework, frontend, model, exact target app directory,
267
+ selected documentation URLs, and the
242
268
  documentation policy recorded during framework selection or conversion planning. On a
243
269
  conversion, also give it the frozen criterion. Give it the protected path list and the
244
270
  authorized list. Give it the developer's answer on the Skills install, so that it runs an
245
- approved install and skips a declined one. Require it
246
- to implement every step in plan order and run the full validation list. Wait for it.
271
+ approved install and skips a declined one. Require it to implement every step in plan order
272
+ and run the full validation list. Wait for it.
247
273
 
248
274
  One subagent implements the whole plan. Do not divide the work across concurrent subagents,
249
275
  and do not spawn a second subagent to reconcile a split.
@@ -262,7 +288,7 @@ names the same way as above, against the Files changed section that subagent jus
262
288
  returned. Continue to proof only when that audit passes.
263
289
 
264
290
  Then run
265
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read proof/round-trip`.
291
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read proof/round-trip`.
266
292
 
267
293
  ## Repair rules
268
294
 
@@ -288,9 +314,9 @@ the same command still fails after three repair attempts, a result starts with
288
314
  declined a file the plan does not name, or the run cannot ask them about it. A defect in a
289
315
  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
290
316
  proved nothing about the stack. In those cases run
291
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read stopped/run-failed`.
317
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read stopped/run-failed`.
292
318
 
293
319
  A plan with no path to follow takes the unsupported ending: the fix requires changing the
294
320
  developer's existing agent or frontend, or the documentation does not support the plan. In
295
321
  those cases run
296
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read unsupported/no-validated-path`.
322
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read unsupported/no-validated-path`.
@@ -24,7 +24,7 @@ friction commands follow the telemetry setting the developer already chose, so t
24
24
  separate question.
25
25
 
26
26
  ```text
27
- npx --prefer-offline --yes copilotkit@4.24.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
27
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
28
28
  ```
29
29
 
30
30
  Put one or two sentences in `--message`. Pick one category from docs-missing, docs-wrong,
@@ -46,7 +46,7 @@ Pass the surface-check outcome the proof subagent returned, not the one you want
46
46
  web frontend, pass `--visual-check` and the URL the browser opened, unchanged:
47
47
 
48
48
  ```text
49
- npx --prefer-offline --yes copilotkit@4.24.0 onboard complete --visual-check <outcome> \
49
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard complete --visual-check <outcome> \
50
50
  --frontend-url <the url you opened>
51
51
  ```
52
52
 
@@ -74,7 +74,7 @@ this graph opens.
74
74
  nothing drove the frontend:
75
75
 
76
76
  ```text
77
- npx --prefer-offline --yes copilotkit@4.24.0 onboard complete --visual-check failed --blocked-by browser-control-unresponsive
77
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard complete --visual-check failed --blocked-by browser-control-unresponsive
78
78
  ```
79
79
 
80
80
  ## Write the handoff
@@ -1,10 +1,11 @@
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.24.0 onboard read subagent/prove-oss-baseline` first and follow the
5
- prompt it returns. If that read fails because the subagent cannot use the shell, stop that
6
- subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
7
- and the same handoff. Give it the repository findings and exact CLI package spec.
4
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read subagent/prove-oss-baseline` first and follow
5
+ the prompt it returns. Tell it to return at once, and say so, if that read is refused or
6
+ fails, and not to wait for an approval. If it returns that way, stop that subagent. Run the
7
+ same command yourself, then spawn a fresh subagent with the returned prompt and the same
8
+ handoff. Give it the repository findings and exact CLI package spec.
8
9
 
9
10
  Give it the browser or device control you recorded in the preflight as well. The subagent
10
11
  proves the runtime from a shell and needs no browser for that. The control is for the one
@@ -17,7 +18,7 @@ Wait for the subagent to finish.
17
18
  Record what that proof returned before you route on it:
18
19
 
19
20
  ```text
20
- npx --prefer-offline --yes copilotkit@4.24.0 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
21
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
21
22
  ```
22
23
 
23
24
  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,14 +40,27 @@ Do not change project files before this proof ends. Starting existing developmen
39
40
  processes and their ignored runtime files is allowed.
40
41
 
41
42
  If the subagent proves the `both-oss` predicate, keep its evidence with the plan and run
42
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read conversion/plan`. That project already works.
43
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read conversion/plan`. That project already works.
43
44
  What it needs is the conversion, not a build.
44
45
 
45
- If the proof does not establish the baseline, record the starting state
46
+ A failed baseline does not end the run, and this step does not repair it. Decide which
47
+ kind of failure it is before you route, the way `proof/round-trip` does.
48
+
49
+ An operational failure says nothing about the project: a project-owned process or port, a
50
+ request option, or a sandbox that blocked a local request. Spawn a fresh proof subagent
51
+ with the same handoff and the failure evidence, and record each attempt as it ends. Run
52
+ the proof at most three times in total. Never edit a project file to make the baseline
53
+ pass. This proof only reads.
54
+
55
+ A failed baseline whose cause is in the project is the starting state of this project. So
56
+ is an operational failure still there after the third attempt. Record the starting state
46
57
  `both-copilotkit-unproved` and run
47
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read credentials/plan`. This prompt is served
58
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read credentials/plan`. This prompt is served
48
59
  whenever a project looks like an OSS integration, so a baseline that did not prove is an
49
- ordinary starting state rather than a failure. Keep the failing predicate with the plan.
60
+ ordinary starting state rather than a failure. The build that follows fixes the
61
+ integration, and `proof/round-trip` proves the result, with its own bounded repair cycle.
62
+ Keep the failing predicate and the check the subagent named with the plan, and tell the
63
+ developer that the existing integration did not prove before you ask for plan approval.
50
64
 
51
65
  Do not record a state that says the CopilotKit integration is absent. This prompt is
52
66
  reached only when the merged findings prove that the integration is there, so `both` is
@@ -56,7 +70,10 @@ Where the proof fails predicate 3, the live runtime already holds an Intelligenc
56
70
  client. Say so in the plan. Part of the work this run exists for is in place already,
57
71
  and the plan preserves it rather than repeating it.
58
72
 
59
- If it cannot identify the running process safely, exposes a secret, or finds a baseline
60
- failure that cannot be classified, run
61
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read stopped/run-failed`. None of those mean the
62
- project is unsupported: they mean this run did not establish what it needed to.
73
+ If you cannot tell whether the cause is operational or in the project, treat it as
74
+ operational. Run the proof again, three times in total, then record the starting state
75
+ above and go on. Both causes lead to the same plan.
76
+
77
+ If the proof cannot identify the running process safely, or it exposes a secret, run
78
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read stopped/run-failed`. Neither means the
79
+ project is unsupported: each means this run did not establish what it needed to.
@@ -1,14 +1,15 @@
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.24.0 onboard read subagent/prove-round-trip` first and follow the
5
- prompt it returns. If that read fails because the subagent cannot use the shell, stop that
6
- subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
7
- and the same handoff. Give it the selected framework, frontend, model, approved plan, selected
8
- documentation URLs, and validation evidence. Give it the documentation policy recorded during
9
- framework selection or conversion planning. On a conversion, also give it the frozen
10
- criterion. Give it the protected path list. Give it the developer's answer on the Skills
11
- install and the Skills result the implementation returned.
4
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read subagent/prove-round-trip` first and follow the
5
+ prompt it returns. Tell it to return at once, and say so, if that read is refused or fails,
6
+ and not to wait for an approval. If it returns that way, stop that subagent. Run the same
7
+ command yourself, then spawn a fresh subagent with the returned prompt and the same handoff.
8
+ Give it the selected framework, frontend, model, approved plan, selected documentation URLs,
9
+ and validation evidence. Give it the documentation policy recorded during framework
10
+ selection or conversion planning. On a conversion, also give it the frozen criterion. Give
11
+ it the protected path list. Give it the developer's answer on the Skills install and the
12
+ Skills result the implementation returned.
12
13
 
13
14
  Give it the frontend files that publish the page context and register the tools, by path,
14
15
  from the Files changed sections the implementation returned. The subagent sends what those
@@ -40,7 +41,7 @@ pass the time.
40
41
  Record what that proof returned before you route on it:
41
42
 
42
43
  ```text
43
- npx --prefer-offline --yes copilotkit@4.24.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
44
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
44
45
  ```
45
46
 
46
47
  Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. A
@@ -49,7 +50,7 @@ to record it as `skipped`. The command prints one line and sends nothing else. W
49
50
  record each attempt as it ends.
50
51
 
51
52
  For every protected-path audit in this prompt, run
52
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard audit` from the target app directory. If its result
53
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard audit` from the target app directory. If its result
53
54
  starts with `Status: blocked`, report the printed reason and use the route-out rules below.
54
55
  A blocked audit proved nothing changed and is not a preservation failure. If a
55
56
  protected-path audit reports a changed path, decide it the way the implementation prompt
@@ -58,7 +59,7 @@ returns none, so a finding with no Files changed section to test against routes
58
59
  path one of those sections names is this run's own change and routes out too. Accept a
59
60
  path only when a section this run collected covers the step that wrote it and does not
60
61
  name it:
61
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard protect --accept-external --path <path>`. Then run
62
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --accept-external --path <path>`. Then run
62
63
  the audit again and name the path in the closing summary. Never repair, reset, or revert a
63
64
  protected path.
64
65
 
@@ -66,12 +67,19 @@ That holds for a repair cycle too. When the fix for a failing check lands on a p
66
67
  path, the path is still the developer's, however right the diagnosis is and however small
67
68
  the fix. Reading the file never settles who wrote it. Ask the developer to allow the
68
69
  change, and record their answer with
69
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
70
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
70
71
  or route out. Never repair it, and never send it to a repair worker.
71
72
 
73
+ This prompt pauses for the developer in several places. Before you end your turn to wait
74
+ for the developer, report the pause:
75
+
76
+ ```text
77
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
78
+ ```
79
+
72
80
  If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
73
81
  `proof/complete` only if that audit passes. After the audit passes, run
74
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read proof/complete`. A performed surface outcome with
82
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read proof/complete`. A performed surface outcome with
75
83
  the full round trip is core success even if a continued-development tool fails. A skipped
76
84
  surface outcome still enters `proof/complete`. The CLI records `skipped-cloned-starter` and
77
85
  `skipped-no-browser-tool` after a passed round trip as complete, and `skipped-no-device` as
@@ -93,6 +101,15 @@ not for a journey that worked and then hit a wall: routing a proved run there te
93
101
  developer that a framework and frontend that just worked are unsupported, and hands them a
94
102
  stop report instead of the application they now have.
95
103
 
104
+ If the proof returns a `model-key` failure, it is not a defect in the new work. The
105
+ credentials step found the model key missing, or the vendor refused it, and the proof
106
+ started nothing. Do not send it to a repair worker. Run the `onboard credentials` command
107
+ that its detail names, and act on its answer as `credentials/settle-credentials` says. Ask
108
+ the developer its question, report the pause with
109
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-model-credential`, and
110
+ end your turn. When the key settles, run the proof subagent again. This attempt does not
111
+ count toward the three.
112
+
96
113
  If the round trip fails, decide which kind of failure it is before you route. The proof
97
114
  subagent can repair only project-owned processes, ports, and request options, and it can
98
115
  run the credential command that `verify:api_key_loadable_by_app` names. A failure caused
@@ -103,7 +120,21 @@ Retry the proof subagent only for a project-owned process, port, request-option,
103
120
  Give it the failure evidence and the failed attempt's pinned Step 1 record. Wait for the
104
121
  proof subagent after each operational repair.
105
122
  If the result passes, use the passed-result route above. Run the proof at most three times
106
- in total. Use the route-out rules below for a blocked or third failed result.
123
+ in total. Use the route-out rules below for a third failed result, and for a blocked result
124
+ other than the one in the next paragraph.
125
+
126
+ A proof result can start with `Status: blocked` on `round-trip:agent_answers`: the app
127
+ refused the run the check started, because it reads a session or runs only threads it
128
+ created, and the subagent cannot send a message in the app itself. The app is not at
129
+ fault, so this is not a route-out. Ask the developer to send one message in the app on a new
130
+ thread, and to give you that thread's id. Give them the app URL and the request words from
131
+ the result. Tell them where the id is: in the browser's network tools, the request the page
132
+ sends to the runtime URL carries `threadId` in its body. Report the pause with
133
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer` and end your
134
+ turn. When the developer gives the id, start a new proof subagent with
135
+ the full original proof handoff, the pinned Step 1 record, and the thread id. Tell it to run
136
+ the proof checks with `--thread <id>`. This attempt does not count toward the three. Use the
137
+ route-out rules below only when the developer declines or cannot give an id.
107
138
 
108
139
  Enter the code-repair branch only for a source, configuration, dependency, or tracked-file
109
140
  defect.
@@ -148,6 +179,12 @@ first. Then spawn a fresh repair worker with this repair handoff, not the whole-
148
179
  implementation handoff: the plan, the proof evidence, the protected path list, the
149
180
  authorized list from that audit, and the developer's answer on the Skills install.
150
181
 
182
+ Before you end your turn to wait for the developer, report the pause:
183
+
184
+ ```text
185
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
186
+ ```
187
+
151
188
  Run the protected-path audit again after validation passes. Continue only if its result
152
189
  starts with `Status: passed`.
153
190
 
@@ -162,11 +199,12 @@ Wait for the fresh proof subagent to finish.
162
199
  If the fresh proof result starts with `Status: passed`, run the protected-path audit and use
163
200
  the passed-result route above. If it starts with `Status: failed`, begin the next bounded
164
201
  repair cycle. Use the route-out rules below for `Status: blocked`. After three repair and
165
- proof cycles, use the route-out rules below.
202
+ proof cycles, use the route-out rules below. A blocked result that asks for a thread id
203
+ takes the developer path above instead.
166
204
 
167
205
  Route out only when the failure is not yours to fix, when the same proof still fails after
168
206
  three attempts, or when no evidence of the round trip can be produced. In those cases run
169
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read stopped/run-failed`. The stack is supported:
207
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read stopped/run-failed`. The stack is supported:
170
208
  this run did not finish, which is a different ending and a different report. All three are
171
209
  about the round trip itself. A round trip that proved is not one of them, whatever failed
172
210
  after it.
@@ -177,7 +215,7 @@ friction command follows the telemetry setting the developer already chose, so i
177
215
  separate question.
178
216
 
179
217
  ```text
180
- npx --prefer-offline --yes copilotkit@4.24.0 onboard friction --phase stop --category <slug> --message "<sentences>"
218
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard friction --phase stop --category <slug> --message "<sentences>"
181
219
  ```
182
220
 
183
221
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -41,11 +41,10 @@ and continue when that thing arrives. A pause waits for one of two things:
41
41
  pick", gives no answer, and the default that the prompt states applies. Where the
42
42
  prompt states no default, ask once more.
43
43
 
44
- Before you end your turn to wait for the developer where the prompt states no default,
45
- report the pause:
44
+ Before you end your turn to wait for the developer, report the pause:
46
45
 
47
46
  ```text
48
- npx --prefer-offline --yes copilotkit@4.24.0 onboard checkpoint --phase awaiting-developer
47
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
49
48
  ```
50
49
 
51
50
  When the answer or the result arrives, continue from the step that paused. Do not read an
@@ -65,7 +64,7 @@ Both research subagents failing means this harness has no working subagent at al
65
64
  is worth recording once:
66
65
 
67
66
  ```text
68
- npx --prefer-offline --yes copilotkit@4.24.0 onboard checkpoint --phase delegation-unavailable
67
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase delegation-unavailable
69
68
  ```
70
69
 
71
70
  Then say once, in your own words, that this environment has no working subagents, so you
@@ -77,11 +76,22 @@ For the rest of this run, wherever a prompt tells you to spawn a subagent, read
77
76
  Before you ask the developer any setup question, finish every read-only investigation and
78
77
  preflight check in this section.
79
78
 
80
- Prepare two research assignments. Give each research subagent one assignment. Tell it to run
81
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read subagent/inspect-repository` first and follow the
82
- prompt it returns. If that read fails because the subagent cannot use the shell, stop that
83
- subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
84
- and the same handoff. Require only its assigned packet.
79
+ Prepare two research assignments. Before you spawn either subagent, run these two
80
+ read-only commands yourself, from the target project directory:
81
+
82
+ ```text
83
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read subagent/inspect-repository
84
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard inspect --json
85
+ ```
86
+
87
+ Give each research subagent the prompt that the first command returns, the whole JSON that
88
+ the second command returns, and one assignment. Tell it that its handoff already holds both,
89
+ so it runs no onboarding command. A coding agent's permission layer can refuse a package
90
+ that runs from the registry inside a subagent, even where it lets you run the same command.
91
+ The run then waits for an approval that nobody sees. Require only its assigned packet.
92
+
93
+ Give the same JSON to every later subagent that this research spawns, such as a retry, a
94
+ focused directory check, or a conflict verifier.
85
95
 
86
96
  Start both research subagents in parallel:
87
97
 
@@ -92,8 +102,8 @@ Start both research subagents in parallel:
92
102
  The research is under way. Continue to the surface-control preflight while it runs:
93
103
 
94
104
  ```text
95
- npx --prefer-offline --yes copilotkit@4.24.0 onboard read research/preflight
105
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read research/preflight
96
106
  ```
97
107
 
98
108
  If inspection stops onboarding, run
99
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read stopped/run-failed`.
109
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read stopped/run-failed`.
@@ -48,8 +48,14 @@ app directory. Both results must start with `Status: passed`. Otherwise, use the
48
48
  Read the next step only after `login --json` has emitted `type: completed`. If sign-in still
49
49
  waits on the developer, end your turn and wait for it: that is a pause.
50
50
 
51
+ Before you end your turn to wait for the developer, report the pause:
52
+
53
+ ```text
54
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
55
+ ```
56
+
51
57
  When both research results are merged and sign-in is done, run
52
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read research/route`.
58
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read research/route`.
53
59
 
54
60
  If inspection stops onboarding, run
55
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read stopped/run-failed`.
61
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read stopped/run-failed`.
@@ -27,8 +27,8 @@ Where the device probe found no booted device, that is the whole finding.
27
27
  Then merge the research:
28
28
 
29
29
  ```text
30
- npx --prefer-offline --yes copilotkit@4.24.0 onboard read research/merge
30
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read research/merge
31
31
  ```
32
32
 
33
33
  If inspection stops onboarding, run
34
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read stopped/run-failed`.
34
+ `npx --prefer-offline --yes copilotkit@4.25.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.24.0 onboard protect
12
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect
13
13
  ```
14
14
 
15
15
  It reads the working tree itself, records every changed or untracked path with a digest,
@@ -44,7 +44,7 @@ On any one of them, run this before you read the three findings below, and witho
44
44
  the purpose question:
45
45
 
46
46
  ```text
47
- npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/channels/start
47
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/channels/start
48
48
  ```
49
49
 
50
50
  Name the provider to that node so it does not ask again. A `/slack` page names Slack. A
@@ -105,7 +105,7 @@ settle these three from your own reading of the project. Each one comes from the
105
105
  packets or it is not proved.
106
106
 
107
107
  If all three are proved, prove the live starting state before any project file changes. Run
108
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read proof/oss-baseline`.
108
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read proof/oss-baseline`.
109
109
 
110
110
  Route there before you ask the developer anything else. The questions after this prompt
111
111
  select a framework and a frontend that the findings already name, so a developer who
@@ -116,9 +116,16 @@ these three findings.
116
116
  For every other combination of the three, take one more step first. If neither the
117
117
  developer nor the repository findings prove what the project is for, ask one guided
118
118
  question about the user outcome. This asks what the developer wants to build before you
119
- select a framework. Give two or three short examples. Record the answer and give it to
120
- each later subagent. Then run
121
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read credentials/plan`.
119
+ select a framework. Give two or three short examples.
120
+
121
+ Before you end your turn to wait for the developer, report the pause:
122
+
123
+ ```text
124
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
125
+ ```
126
+
127
+ Record the answer and give it to each later subagent. Then run
128
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read credentials/plan`.
122
129
 
123
130
  Do not ask that question on the route above. A project carrying all three states its
124
131
  purpose in the application it already serves.
@@ -132,5 +139,5 @@ A purpose question here names a domain before that choice.
132
139
  Take the same read named above without asking.
133
140
 
134
141
  If authentication, inspection, or the baseline capture stops onboarding, run
135
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read stopped/run-failed`. None of them says anything
142
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read stopped/run-failed`. None of them says anything
136
143
  about whether this project's stack is supported, which is not yet known at this point.