copilotkit 4.27.0 → 4.29.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 (92) hide show
  1. package/README.md +161 -26
  2. package/cli-build-info.json +7 -7
  3. package/index.js +8234 -5108
  4. package/onboarding/index.json +3 -2
  5. package/onboarding/prompts/authenticate/start.md +54 -55
  6. package/onboarding/prompts/conversion/plan.md +3 -3
  7. package/onboarding/prompts/credentials/finalize-plan.md +28 -24
  8. package/onboarding/prompts/credentials/plan.md +31 -28
  9. package/onboarding/prompts/credentials/settle-credentials.md +7 -7
  10. package/onboarding/prompts/credentials/write-plan.md +77 -51
  11. package/onboarding/prompts/deployment/choose-local.md +9 -9
  12. package/onboarding/prompts/deployment/local-evaluation.md +12 -12
  13. package/onboarding/prompts/fallback/best-effort.md +9 -13
  14. package/onboarding/prompts/feature/a2ui/implement.md +4 -4
  15. package/onboarding/prompts/feature/a2ui/plan.md +3 -3
  16. package/onboarding/prompts/feature/a2ui/proof.md +5 -5
  17. package/onboarding/prompts/feature/a2ui/start.md +17 -8
  18. package/onboarding/prompts/feature/channels/implement.md +7 -7
  19. package/onboarding/prompts/feature/channels/plan.md +5 -5
  20. package/onboarding/prompts/feature/channels/proof.md +8 -7
  21. package/onboarding/prompts/feature/channels/start.md +18 -9
  22. package/onboarding/prompts/feature/chat-suggestions/implement.md +4 -4
  23. package/onboarding/prompts/feature/chat-suggestions/plan.md +3 -3
  24. package/onboarding/prompts/feature/chat-suggestions/proof.md +5 -5
  25. package/onboarding/prompts/feature/chat-suggestions/start.md +17 -8
  26. package/onboarding/prompts/feature/complete.md +2 -2
  27. package/onboarding/prompts/feature/learning/implement.md +12 -12
  28. package/onboarding/prompts/feature/learning/plan.md +4 -4
  29. package/onboarding/prompts/feature/learning/proof.md +13 -13
  30. package/onboarding/prompts/feature/learning/start.md +17 -8
  31. package/onboarding/prompts/feature/open-generative-ui/implement.md +4 -4
  32. package/onboarding/prompts/feature/open-generative-ui/plan.md +3 -3
  33. package/onboarding/prompts/feature/open-generative-ui/proof.md +5 -5
  34. package/onboarding/prompts/feature/open-generative-ui/start.md +17 -8
  35. package/onboarding/prompts/feature/realtime-sync/implement.md +5 -5
  36. package/onboarding/prompts/feature/realtime-sync/plan.md +3 -3
  37. package/onboarding/prompts/feature/realtime-sync/proof.md +5 -5
  38. package/onboarding/prompts/feature/realtime-sync/start.md +16 -7
  39. package/onboarding/prompts/feature/rich-threads/implement.md +6 -6
  40. package/onboarding/prompts/feature/rich-threads/plan.md +3 -3
  41. package/onboarding/prompts/feature/rich-threads/proof.md +5 -5
  42. package/onboarding/prompts/feature/rich-threads/start.md +16 -7
  43. package/onboarding/prompts/feature/stop.md +4 -4
  44. package/onboarding/prompts/feature/voice/implement.md +4 -4
  45. package/onboarding/prompts/feature/voice/plan.md +4 -4
  46. package/onboarding/prompts/feature/voice/proof.md +5 -5
  47. package/onboarding/prompts/feature/voice/start.md +17 -8
  48. package/onboarding/prompts/framework/ag2.md +3 -3
  49. package/onboarding/prompts/framework/agno.md +3 -3
  50. package/onboarding/prompts/framework/built-in.md +3 -3
  51. package/onboarding/prompts/framework/claude-sdk-python.md +3 -3
  52. package/onboarding/prompts/framework/claude-sdk-typescript.md +3 -3
  53. package/onboarding/prompts/framework/crewai-flows.md +6 -6
  54. package/onboarding/prompts/framework/custom-ag-ui.md +4 -4
  55. package/onboarding/prompts/framework/deep-agents.md +3 -3
  56. package/onboarding/prompts/framework/google-adk.md +3 -3
  57. package/onboarding/prompts/framework/langgraph-fastapi.md +3 -3
  58. package/onboarding/prompts/framework/langgraph-python.md +3 -3
  59. package/onboarding/prompts/framework/langgraph-typescript.md +3 -3
  60. package/onboarding/prompts/framework/llamaindex.md +3 -3
  61. package/onboarding/prompts/framework/mastra.md +3 -3
  62. package/onboarding/prompts/framework/ms-agent-dotnet.md +5 -5
  63. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +5 -5
  64. package/onboarding/prompts/framework/ms-agent-python.md +3 -3
  65. package/onboarding/prompts/framework/pydantic-ai.md +3 -3
  66. package/onboarding/prompts/framework/strands-python.md +3 -3
  67. package/onboarding/prompts/framework/strands-typescript.md +3 -3
  68. package/onboarding/prompts/frontend/angular.md +4 -4
  69. package/onboarding/prompts/frontend/nextjs.md +4 -4
  70. package/onboarding/prompts/frontend/plan.md +12 -12
  71. package/onboarding/prompts/frontend/react-native.md +3 -3
  72. package/onboarding/prompts/frontend/react-spa.md +3 -3
  73. package/onboarding/prompts/frontend/vue.md +3 -3
  74. package/onboarding/prompts/implementation/build-and-validate.md +32 -14
  75. package/onboarding/prompts/proof/complete.md +6 -7
  76. package/onboarding/prompts/proof/oss-baseline.md +24 -5
  77. package/onboarding/prompts/proof/round-trip.md +41 -21
  78. package/onboarding/prompts/research/gather.md +85 -40
  79. package/onboarding/prompts/research/merge.md +3 -3
  80. package/onboarding/prompts/research/preflight.md +2 -2
  81. package/onboarding/prompts/research/route.md +10 -4
  82. package/onboarding/prompts/setup/questions.md +53 -234
  83. package/onboarding/prompts/starter/clone.md +43 -34
  84. package/onboarding/prompts/stopped/run-failed.md +3 -3
  85. package/onboarding/prompts/subagent/create-plan.md +57 -34
  86. package/onboarding/prompts/subagent/implement-and-validate.md +40 -35
  87. package/onboarding/prompts/subagent/inspect-repository.md +17 -4
  88. package/onboarding/prompts/subagent/prove-oss-baseline.md +24 -1
  89. package/onboarding/prompts/subagent/prove-round-trip.md +55 -49
  90. package/onboarding/prompts/unsupported/no-validated-path.md +3 -3
  91. package/package.json +1 -1
  92. package/release/release-tool.js +8 -1
@@ -2,16 +2,14 @@
2
2
 
3
3
  The project and its credentials are settled. This phase wires the runtime, has a
4
4
  subagent write the plan, and shows the plan to the developer. The run waits for their
5
- answer only when the plan makes a risky change or still needs the model key.
5
+ answer only when the plan makes a change that needs approval or still needs the model key.
6
6
 
7
7
  ## If you stop in this phase
8
8
 
9
- Name the exact file, value, or check that stopped you, then send one short report. The
10
- friction command follows the telemetry setting the developer already chose, so it needs no
11
- separate question.
9
+ Name the exact file, value, or check that stopped you, then send one short report.
12
10
 
13
11
  ```text
14
- npx --prefer-offline --yes copilotkit@4.27.0 onboard friction --phase stop --category <slug> --message "<sentences>"
12
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard friction --phase stop --category <slug> --message "<sentences>"
15
13
  ```
16
14
 
17
15
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -38,11 +36,10 @@ so either mount works. Keep the mount the project already has, together with its
38
36
  setting: `mode: "single-route"` with `useSingleEndpoint` true or unset, or the full route
39
37
  subtree with `useSingleEndpoint={false}`. For a new mount, use the full route subtree below.
40
38
 
41
- Below 1.73.1, mount the runtime on the full route subtree. An Intelligence runtime serves
42
- its runs over two REST paths: `/agent/<id>/run` and `/agent/<id>/connect`, and the
43
- Intelligence client of those versions addresses them for every transport the provider
44
- selects. A runtime mounted with `mode: "single-route"` answers every other call. It
45
- returns not found for every run and every thread reopen. The other fix is an upgrade of
39
+ Below 1.73.1, mount the runtime on the full route subtree. The Intelligence client of those
40
+ versions calls `/agent/<id>/run` and `/agent/<id>/connect` for every transport, so a
41
+ runtime mounted with `mode: "single-route"` returns not found for every run and every
42
+ thread reopen. The other fix is an upgrade of
46
43
  the CopilotKit packages to 1.73.1 or later, which the plan can name as its dependency
47
44
  upgrade. The round-trip check passes with either mount, so nothing later in this run
48
45
  catches the mistake.
@@ -58,7 +55,7 @@ proof subagents:
58
55
  - https://docs.copilotkit.ai/backend/runtime-endpoints.md
59
56
  - https://docs.copilotkit.ai/intelligence/managed-intelligence-platform.md
60
57
 
61
- Fetch them together with the pages already selected rather than on their own.
58
+ Fetch them with the pages already selected, not on their own.
62
59
 
63
60
  The planning subagent adds a threads drawer from the selected drawer page. If no drawer
64
61
  page is selected yet, add the one for the frontend selected above to the same list:
@@ -69,24 +66,41 @@ page is selected yet, add the one for the frontend selected above to the same li
69
66
  4. React Native: select no drawer page. No page documents a threads drawer for React
70
67
  Native, so the planner proves the thread with `verify --round-trip` instead.
71
68
 
69
+ When you start a subagent in the background, tell the developer in one sentence what it
70
+ does. Then send nothing more until it returns.
71
+
72
72
  Spawn one planning subagent. Tell it to run
73
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read subagent/create-plan` first and follow the
73
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read subagent/create-plan` first and follow the
74
74
  prompt it returns. Tell it to return at once, and say so, if that read is refused or fails,
75
- and not to wait for an approval. If it returns that way, stop that subagent. Run the same
76
- command yourself, then spawn a fresh subagent with the returned prompt and the same handoff.
75
+ and not to wait for an approval.
77
76
  Give it the repository findings, selected framework, frontend, model, credential variable
78
77
  names, selected documentation URLs, and documentation policy. Give it each finding that the
79
78
  framework route told you to record, such as how the agent connects or a `clone()` finding.
80
- Some of those rules, such as the `clone()` override, are on no documentation page. On a
79
+ On a
81
80
  conversion, also give it the frozen criterion. Give the planning subagent the paths that
82
81
  had uncommitted changes when the run started, from the repository findings, and the
83
- `backup` result from `onboard credentials`. Wait for the subagent to finish.
82
+ `backup` result from `onboard credentials`. Also give it the JSON that
83
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard setup-answers` prints, so the plan does not ask again
84
+ for a change the setup message settled. Wait for the subagent to finish.
85
+
86
+ If only its closing `subagent-returned` checkpoint was refused, the subagent finished.
87
+ Record no `refused` return and spawn nothing: run that checkpoint yourself, with the result
88
+ the subagent returned.
89
+
90
+ If the subagent returns because its harness refused any other command, record that return:
91
+
92
+ ```text
93
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase subagent-returned --brief create-plan --result refused
94
+ ```
95
+
96
+ Then run that command yourself, from the directory the subagent named. Spawn at most one
97
+ fresh subagent for each refused command, with the same handoff and that command's result.
98
+ If the fresh subagent is refused a command too, spawn no other. Follow the brief yourself.
84
99
 
85
100
  Continue only if the planning result starts with `Status: passed`. For `Status: failed`,
86
101
  send the result back to the planning subagent for repair, up to three attempts. For
87
102
  `Status: blocked`, or a third failed result, run
88
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read stopped/run-failed`. A plan this run cannot
89
- write is a run that broke, not a stack the documentation does not cover. The exception is
103
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read stopped/run-failed`. The exception is
90
104
  a blocked result that names `unsupported/no-validated-path`: the planning subagent found
91
105
  that no page supports the plan, so take the no-supported-path route at the end of this
92
106
  prompt instead. Do not show a
@@ -100,28 +114,28 @@ move with them, and the revert it falls back to. It must not contain secret valu
100
114
 
101
115
  ## Show the plan
102
116
 
103
- Show the plan as one short message, one line per item, in this order: the agent, the app
104
- changes, the packages, Learning, Skills, the notes, and the risky changes last. Leave out a
105
- line with nothing to say, except the risky changes. When `Risky changes` says `none`:
117
+ Show the plan as one short message. Under `What I will change`, write one line per item,
118
+ in this order: the agent, the app changes, the packages, Learning, and the notes. Leave out
119
+ a line with nothing to say. The changes that need approval have a heading of their own, and
120
+ the approval question is about them alone. When `Changes that need your approval` says `none`:
106
121
 
107
122
  ```text
108
123
  Plan: no approval needed. Reply **stop** at any time.
109
124
 
125
+ What I will change:
110
126
  - Agent: built-in CopilotKit agent on Groq (openai/gpt-oss-120b)
111
127
  - App changes: runtime route, provider, chat with order status cards and a Threads drawer (7 files)
112
128
  - Packages added: @copilotkit/runtime and @copilotkit/react-core 1.78.0, @ai-sdk/openai, zod. No upgrades.
113
129
  - Learning: new container order-assistant
114
- - Skills: CopilotKit skills into .agents/skills/ (say **no Skills** to skip)
115
130
  - Note: the fixed test user identity works only in development (this app has no sign-in)
116
131
 
117
- Risky changes: none. `onboard restore` puts back what the backup holds.
132
+ Changes that need your approval: none. `onboard restore` puts back what the backup holds.
118
133
  ```
119
134
 
120
135
  - App changes: what the app gains, and how many files change.
121
136
  - Packages: each package added, with the CopilotKit version. Name each version a move
122
137
  changes, or end with "No upgrades."
123
138
  - Learning: the container id, or that Learning is not available to this organization.
124
- - Skills: the `Skills install` line, or "in place".
125
139
  - A note is only for something that changes behavior or security, such as a local
126
140
  placeholder, a side effect the plan blocks, a TypeScript upgrade, or an ignore-file line
127
141
  this run adds.
@@ -129,67 +143,79 @@ Risky changes: none. `onboard restore` puts back what the backup holds.
129
143
  Leave out what a feature does, the validation and proof steps, and the files the run
130
144
  writes itself. They stay in the plan.
131
145
 
132
- A plan with a risky change puts its risky lines at the top, from the plan's `Risky
133
- changes` section, and waits:
146
+ A plan with a change that needs approval puts those lines at the top, under their own
147
+ heading, from the plan's `Changes that need your approval` section. Every other line goes under
148
+ `What I will change`. Then the plan waits:
134
149
 
135
150
  ```text
136
- Plan: reply **go** to make the risky changes below, or name the ones to leave out. Reply **stop** at any time.
151
+ Plan: reply **go** to make the changes that need your approval, or name the ones to leave out. Reply **stop** at any time.
137
152
 
138
- Risky changes:
153
+ Changes that need your approval:
139
154
  - package.json: moves @copilotkit/react-core from 1.70.2 to 1.78.0, which Intelligence needs
140
155
 
156
+ What I will change:
141
157
  - Agent: ...
142
158
 
143
159
  `onboard restore` puts back what the backup holds.
144
160
  ```
145
161
 
146
- The Skills install is not a risky change, so the plan does not wait for it. If the developer
147
- says no to it, at any point, carry that into the implementation and proof handoffs. If the
148
- no arrives after the install, tell the developer that the install wrote `.agents/skills/`
149
- and its links in `.claude/skills/`, and that deleting both removes it.
150
-
151
- An upgrade to a working install is the developer's call. Do not upgrade a dependency the
152
- plan does not name.
162
+ Do not upgrade a dependency the plan does not name.
153
163
 
154
164
  ## Go on, or wait for one answer
155
165
 
156
- Check `Risky changes` first. Where the plan makes one of these and does not list it, send
166
+ Check `Changes that need your approval` first. Where the plan makes one of these and does not list it, send
157
167
  the plan back to the planning subagent: a write outside the project, any CopilotKit
158
168
  dependency version change, and a backup that is `partial` or `failed`.
159
169
 
160
- When `Risky changes` says `none`, do not wait for an answer. Send the plan message and
170
+ When `Changes that need your approval` says `none`, do not wait for an answer. Send the plan message and
161
171
  start the build at once, in the same turn, with the read at the end of this section. Do not
162
172
  ask the developer to approve the plan, and do not end your turn.
163
173
 
164
- Otherwise, the plan's first line asks the risky-change question, as above. A reply
165
- such as "go" approves every risky change except an untrack: only an answer to that line
166
- approves an untrack. Add one line: this is the last thing you need from them, unless a command needs their
174
+ Otherwise, the plan's first line asks the approval question, as above. A reply such as
175
+ "go" approves every change that needs approval except an untrack. An untrack needs its own yes
176
+ to the line that names it: **go** alone never approves an untrack. Add one line: this is the last thing you need from them, unless a command needs their
167
177
  approval or something blocks you. Before you end your turn to
168
178
  wait for the answer, report the pause, each time you show the plan:
169
179
 
170
180
  ```text
171
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-plan-approval
181
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-plan-approval --reason <reasons>
172
182
  ```
173
183
 
174
- When the developer leaves a risky change out, send the plan back to the planning subagent
184
+ `--reason` names why the plan stopped, one reason for each kind of line that needs approval, separated
185
+ by commas, such as `--reason dependency_upgrade,file_count`:
186
+
187
+ - `dependency_upgrade`: a major version upgrade, or a move of an exact pin.
188
+ - `dependency_removal`: a dependency removed, or moved outside the declared range.
189
+ - `file_removal`: a file the developer wrote is deleted, moved, or renamed.
190
+ - `uncommitted_file`: a change to a file with uncommitted changes.
191
+ - `gitignore`: an untrack, or a `.gitignore` change.
192
+ - `env_file`: a write to an env file the app already uses.
193
+ - `existing_agent_change`: a change to the existing agent's behavior.
194
+ - `file_count`: more than 10 files change.
195
+ - `outside_project`: a write outside the project directory.
196
+ - `copilotkit_version`: a CopilotKit version change.
197
+ - `backup_partial`: the backup does not hold every file.
198
+ - `other`: a line that needs approval and fits none of these.
199
+
200
+ When the developer leaves a change out, send the plan back to the planning subagent
175
201
  without it. Show the new plan the same way.
176
202
 
177
203
  If the plan carries a missing model key, the run cannot build without it, so wait for it
178
- even when `Risky changes` says `none`. Name the variable and its file in the plan message,
179
- and ask the developer to add the key. Ask the risky-change question in the same message, if
180
- there is one. When the plan has no risky change, report the pause with
181
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-model-credential`
204
+ even when `Changes that need your approval` says `none`. Name the variable and its file in the plan message,
205
+ and ask the developer to add the key. Ask the approval question in the same message, if
206
+ there is one. When the plan has no change that needs approval, report the pause with
207
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-model-credential`
182
208
  instead. When the developer answers, run the same `onboard credentials --model-key` check
183
209
  again. On `ready`, continue. If the key is still missing, ask the developer `question.ask`
184
210
  in those words. Report the pause with
185
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-model-credential`, end
211
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-model-credential`, end
186
212
  your turn, and run the check again when they answer.
187
213
 
188
214
  When the plan needs no answer, or after the developer answers, run
189
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read implementation/build-and-validate`.
215
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read implementation/build-and-validate`.
190
216
 
191
217
  If no exact supported path or documentation URL exists, run
192
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read unsupported/no-validated-path`.
218
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read unsupported/no-validated-path`.
193
219
 
194
220
  ## If the developer replies **stop**
195
221
 
@@ -199,10 +225,10 @@ run added stay, and that the restore also undoes any edit the developer made to
199
225
  during the run. Before you end your turn to wait for the answer, report the pause:
200
226
 
201
227
  ```text
202
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
228
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about restore-files
203
229
  ```
204
230
 
205
- If they say yes, run `npx --prefer-offline --yes copilotkit@4.27.0 onboard restore --force`. The run has
231
+ If they say yes, run `npx --prefer-offline --yes copilotkit@4.29.0 onboard restore --force`. The run has
206
232
  not ended yet, so without `--force` the restore cannot tell the run's edits from the
207
233
  developer's and skips every changed file. Show the developer what it restored and what it
208
234
  skipped. If they say no, change nothing. Then send the stop report from the start of this
@@ -9,15 +9,15 @@ A local request can arrive after this run created a hosted project: `init --crea
9
9
  Tell the developer that this run already created a hosted project, so it stays managed.
10
10
  Return to the step you were on.
11
11
 
12
- First run `npx --prefer-offline --yes copilotkit@4.27.0 local --help`. If it does not list `setup`
12
+ First run `npx --prefer-offline --yes copilotkit@4.29.0 local --help`. If it does not list `setup`
13
13
  ("Configure model access and install or resume the local stack"), this release has no
14
14
  local evaluation. Tell the developer so, and keep managed. If this run has not recorded
15
- managed yet, run `npx --prefer-offline --yes copilotkit@4.27.0 onboard deployment --choice managed`.
15
+ managed yet, run `npx --prefer-offline --yes copilotkit@4.29.0 onboard deployment --choice managed`.
16
16
  Then return to “Check sign-in” in the start prompt. If a login process from it still
17
17
  runs, keep reading that process and start no second one. Otherwise record the choice:
18
18
 
19
19
  ```text
20
- npx --prefer-offline --yes copilotkit@4.27.0 onboard deployment --choice local
20
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard deployment --choice local
21
21
  ```
22
22
 
23
23
  Explain these conditions before sign-in:
@@ -48,10 +48,10 @@ choices:
48
48
 
49
49
  1. Configure later, the default. Install with `--defer-model`. In the closing report, write
50
50
  "Learning configuration incomplete". Name the command that adds the model later:
51
- `npx --prefer-offline --yes copilotkit@4.27.0 local setup`, run in a terminal in the app directory.
51
+ `npx --prefer-offline --yes copilotkit@4.29.0 local setup`, run in a terminal in the app directory.
52
52
  2. Guided setup. If the developer named Learning as a goal, offer it first. Install
53
53
  the stack with `--defer-model`. After the stack is ready, the developer runs
54
- `npx --prefer-offline --yes copilotkit@4.27.0 local setup` in their own terminal window, in the app
54
+ `npx --prefer-offline --yes copilotkit@4.29.0 local setup` in their own terminal window, in the app
55
55
  directory. Never give it as a `!` line: its guided prompt needs a terminal, and a coding
56
56
  agent's shell has none. The prompt asks for the model and its key, and it saves them
57
57
  privately. On a running stack, it restarts only Learning. Do not ask the developer to
@@ -71,7 +71,7 @@ If the managed sign-in message was already sent, send this once and no other sig
71
71
  message: “You asked to run it locally, so this project gets no managed CopilotKit project.
72
72
  Signing in only gets the renewable evaluation license.”
73
73
 
74
- Otherwise run `npx --prefer-offline --yes copilotkit@4.27.0 login --json`. Follow the streaming sign-in
74
+ Otherwise run `npx --prefer-offline --yes copilotkit@4.29.0 login --json`. Follow the streaming sign-in
75
75
  protocol from “Check sign-in” in the start prompt: open the first authentication URL
76
76
  once, keep the same process running, and continue only after its completed record.
77
77
  When the first authentication URL arrives, send this message in place of the managed
@@ -79,9 +79,9 @@ sign-in message: “Sign in to get the renewable evaluation license. Your local
79
79
  will use CLI approval.”
80
80
  On failed or declined sign-in, take the failure path below.
81
81
 
82
- After sign-in completes, report it: `npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase sign-in-settled`.
82
+ After sign-in completes, report it: `npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase sign-in-settled`.
83
83
  Then continue with
84
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read research/gather`, unless research already started.
84
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read research/gather`, unless research already started.
85
85
  If it already started, return to the step you were on. `starter/clone` and
86
86
  `credentials/finalize-plan` each have a branch for a recorded local choice.
87
87
  Keep the local choice and collected paths in the run's plan and worker context.
@@ -89,4 +89,4 @@ Keep the local choice and collected paths in the run's plan and worker context.
89
89
  ## Failure path
90
90
 
91
91
  If sign-in fails or is declined, stop before cluster creation.
92
- Run `npx --prefer-offline --yes copilotkit@4.27.0 onboard read stopped/run-failed`.
92
+ Run `npx --prefer-offline --yes copilotkit@4.29.0 onboard read stopped/run-failed`.
@@ -19,7 +19,7 @@ settings are saved in private CLI state before the app changes. `local cancel` r
19
19
  settings that still match this setup's writes and reports conflicting setting names. It
20
20
  preserves later edits and the stack's data.
21
21
 
22
- Run `npx --prefer-offline --yes copilotkit@4.27.0 onboard setup-answers`. It holds the setup message's
22
+ Run `npx --prefer-offline --yes copilotkit@4.29.0 onboard setup-answers`. It holds the setup message's
23
23
  answers, even after this conversation lost them. Take each answer below from the record,
24
24
  or this conversation when the record lacks it. A field the record lacks is not a "no".
25
25
 
@@ -41,7 +41,7 @@ authorize replacing an existing app's connection.
41
41
  Before you end your turn to wait for the developer, report the pause:
42
42
 
43
43
  ```text
44
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
44
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about local-connection
45
45
  ```
46
46
 
47
47
  ## Run the shared installer
@@ -50,16 +50,16 @@ From the exact app directory, use the `learning` answer from the record, or this
50
50
  conversation:
51
51
 
52
52
  ```text
53
- npx --prefer-offline --yes copilotkit@4.27.0 local setup --defer-model --json
53
+ npx --prefer-offline --yes copilotkit@4.29.0 local setup --defer-model --json
54
54
  ```
55
55
 
56
56
  For `learning.file`, replace `--defer-model` with `--model-config <learning.file>`.
57
- Before setup, run `npx --prefer-offline --yes copilotkit@4.27.0 onboard local-terms --json`. If `accepted`
57
+ Before setup, run `npx --prefer-offline --yes copilotkit@4.29.0 onboard local-terms --json`. If `accepted`
58
58
  is false, pause here. Give the developer this exact command to run in their own terminal:
59
- `npx --prefer-offline --yes copilotkit@4.27.0 local accept-terms`. Never accept the agreement yourself.
59
+ `npx --prefer-offline --yes copilotkit@4.29.0 local accept-terms`. Never accept the agreement yourself.
60
60
  Report the pause with
61
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer`, end your turn,
62
- and wait for "done". Then run `local-terms` again, and continue only when `accepted` is
61
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about local-terms`, end your
62
+ turn, and wait for "done". Then run `local-terms` again, and continue only when `accepted` is
63
63
  true. A local command that fails with `eula_acceptance_required` comes back to this step.
64
64
  The CLI selects the latest stable release. Add `--candidate <manifest.json>` only when the
65
65
  developer gave a candidate manifest for release testing.
@@ -75,7 +75,7 @@ A copied app needs explicit `--share-stack`. Do not infer sharing from a copied
75
75
  After setup reports the stack ready, run the approved connection step from that directory:
76
76
 
77
77
  ```text
78
- npx --prefer-offline --yes copilotkit@4.27.0 local connect --approve-connection --json
78
+ npx --prefer-offline --yes copilotkit@4.29.0 local connect --approve-connection --json
79
79
  ```
80
80
 
81
81
  Read the local `.copilotkit/project.json` for its project ID and slug. Do not run hosted
@@ -95,7 +95,7 @@ this conversation, wait until the stack is ready. Then:
95
95
  Ask the developer to run this command in their own terminal window, in the app directory:
96
96
 
97
97
  ```text
98
- npx --prefer-offline --yes copilotkit@4.27.0 local setup
98
+ npx --prefer-offline --yes copilotkit@4.29.0 local setup
99
99
  ```
100
100
 
101
101
  Do not give it as a `!` line, and do not run it yourself. Its guided model prompt needs a
@@ -104,9 +104,9 @@ changes nothing. The prompt asks for the model and its key, and it saves them pr
104
104
  On a running stack, it restarts only Learning. Do not ask for a model file.
105
105
 
106
106
  Say that the run continues when they reply or resume this session. Report the pause with
107
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-model-credential`, end your
107
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-model-credential`, end your
108
108
  turn, and wait. When the developer replies, run
109
- `npx --prefer-offline --yes copilotkit@4.27.0 local status --json` and read `learning.configuration`.
109
+ `npx --prefer-offline --yes copilotkit@4.29.0 local status --json` and read `learning.configuration`.
110
110
 
111
111
  If the model is still missing or was deferred, report “Learning configuration incomplete”
112
112
  and name the same command, run in a terminal window. No Learning run is required to finish
@@ -120,6 +120,6 @@ must not block Threads, the dashboard, or later Learning configuration.
120
120
  If the developer cancels the connection, run `local cancel --json` from the app directory.
121
121
  Report conflict names only. Keep the stack unless deletion is separately confirmed.
122
122
 
123
- Continue with `npx --prefer-offline --yes copilotkit@4.27.0 onboard read credentials/settle-credentials`.
123
+ Continue with `npx --prefer-offline --yes copilotkit@4.29.0 onboard read credentials/settle-credentials`.
124
124
  For this local route, skip the hosted selection-result checks and use the local project
125
125
  record. Continue the existing implementation and proof paths against local endpoints.
@@ -14,7 +14,7 @@ you stop. The friction command follows the telemetry setting the developer alrea
14
14
  so it needs no separate question.
15
15
 
16
16
  ```text
17
- npx --prefer-offline --yes copilotkit@4.27.0 onboard friction --phase stop --category <slug> --message "<sentences>"
17
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard friction --phase stop --category <slug> --message "<sentences>"
18
18
  ```
19
19
 
20
20
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -28,6 +28,9 @@ step. Send the report, then stop the way the rule that stopped you says to. This
28
28
  runs because the documentation already fell short once, so a stop inside it is the second
29
29
  gap in the same run and neither is recorded anywhere else.
30
30
 
31
+ When you start a subagent in the background, tell the developer in one sentence what it
32
+ does. Then send nothing more until it returns.
33
+
31
34
  Spawn one implementation subagent. Give it the approved plan, repository findings, and
32
35
  target project directory. Tell it which steps lack direct documentation. Give it all
33
36
  official documentation that you fetched for the plan. Give it the paths that had
@@ -61,7 +64,7 @@ or frontend, stop onboarding.
61
64
  If the CLI prints `## Stop: this run deleted or moved the developer's work` instead of a
62
65
  step, show the developer the list it printed, and run what they choose:
63
66
  the `onboard restore` command the tripwire stop prints, which names each deleted file, or
64
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard tripwire --continue`. Then read the step again. If
67
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard tripwire --continue`. Then read the step again. If
65
68
  you cannot ask, stop onboarding. Never repair, reset, or revert a file the developer changed
66
69
  outside this run.
67
70
 
@@ -97,29 +100,22 @@ new validation evidence. The handoff includes the paths that had uncommitted cha
97
100
  the run started. Wait for the fresh proof subagent and apply the same proof-result rules.
98
101
  Continue only if the proof result starts with `Status: passed`.
99
102
 
100
- Do not block core proof on the CopilotKit Skills. Tell the developer that the skills
101
- install writes a `.agents/skills` directory and `.claude/skills` links into the working
102
- tree before you run it, because both show up in `git status` and this run cannot know
103
- whether the project keeps them in version control. Install them after the application
104
- passes proof. Do not register an MCP server: the Skills read the CopilotKit documentation
105
- without one. Report the Skills result separately from the proof result.
106
-
107
103
  Report the documentation gap and each assumption with the proof evidence. Do not claim
108
104
  that the selected documentation proved an inferred step.
109
105
 
110
106
  Record what the proof returned before you complete:
111
107
 
112
108
  ```text
113
- npx --prefer-offline --yes copilotkit@4.27.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
109
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
114
110
  ```
115
111
 
116
- When the proof is complete, run `npx --prefer-offline --yes copilotkit@4.27.0 onboard complete`, carrying the
112
+ When the proof is complete, run `npx --prefer-offline --yes copilotkit@4.29.0 onboard complete`, carrying the
117
113
  surface-check result the proof subagent returned. Pass exactly one of `--visual-check` or
118
114
  `--device-check`, matching this journey's surface:
119
115
 
120
116
  ```text
121
- npx --prefer-offline --yes copilotkit@4.27.0 onboard complete --visual-check <outcome>
122
- npx --prefer-offline --yes copilotkit@4.27.0 onboard complete --device-check <outcome>
117
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard complete --visual-check <outcome>
118
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard complete --device-check <outcome>
123
119
  ```
124
120
 
125
121
  `--visual-check` is for a web frontend and takes `performed`, `skipped-no-browser-tool`, or
@@ -24,7 +24,7 @@ That result is a question for the developer. Name the file and why the work need
24
24
  Before you end your turn to wait for the developer, report the pause:
25
25
 
26
26
  ```text
27
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
27
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about uncommitted-file
28
28
  ```
29
29
 
30
30
  Then end your turn and wait for the developer's answer. If they allow it, spawn a fresh
@@ -34,16 +34,16 @@ cannot ask, or the developer declines, take the feature stop route below.
34
34
  If the CLI prints `## Stop: this run deleted or moved the developer's work` instead of
35
35
  a step, show the developer the list it printed, and run what they choose:
36
36
  the `onboard restore` command the tripwire stop prints, which names each deleted file, or
37
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard tripwire --continue`. Then read the step again.
37
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard tripwire --continue`. Then read the step again.
38
38
 
39
39
  To route out and stop:
40
40
 
41
41
  ```text
42
- npx --prefer-offline --yes copilotkit@4.27.0 onboard read feature/stop
42
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard read feature/stop
43
43
  ```
44
44
 
45
45
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
46
46
  the feature stop route above without further changes.
47
47
 
48
48
  Otherwise run
49
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read feature/a2ui/proof`.
49
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read feature/a2ui/proof`.
@@ -12,7 +12,7 @@ The approval is a wait for the developer. Before you end your turn to wait, repo
12
12
  pause:
13
13
 
14
14
  ```text
15
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
15
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-plan-approval
16
16
  ```
17
17
 
18
18
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
@@ -49,7 +49,7 @@ renders a compact visible surface. Ask for approval as its own question.
49
49
  Before you end your turn to wait for the developer, report the pause:
50
50
 
51
51
  ```text
52
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-plan-approval
52
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-plan-approval
53
53
  ```
54
54
 
55
55
  Ask the developer before you edit a file that has uncommitted changes. List those files in
@@ -57,4 +57,4 @@ the plan under `Uncommitted files`, each with one sentence explaining why, or wr
57
57
  `git status` names them. The CLI records no consent: the approved plan is the record. The
58
58
  plan must not delete, move, or rename one of those files.
59
59
 
60
- Then run `npx --prefer-offline --yes copilotkit@4.27.0 onboard read feature/a2ui/implement`.
60
+ Then run `npx --prefer-offline --yes copilotkit@4.29.0 onboard read feature/a2ui/implement`.
@@ -25,7 +25,7 @@ That result is a question for the developer. Name the file and why the fix needs
25
25
  Before you end your turn to wait for the developer, report the pause:
26
26
 
27
27
  ```text
28
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
28
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about uncommitted-file
29
29
  ```
30
30
 
31
31
  Then end your turn and wait for the developer's answer. If they allow it, spawn a fresh
@@ -35,13 +35,13 @@ or the developer declines, take the feature stop route below.
35
35
  If the CLI prints `## Stop: this run deleted or moved the developer's work` instead of
36
36
  a step, show the developer the list it printed, and run what they choose:
37
37
  the `onboard restore` command the tripwire stop prints, which names each deleted file, or
38
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard tripwire --continue`. Then read the step again.
38
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard tripwire --continue`. Then read the step again.
39
39
 
40
40
  Report the outcome of each attempt as it ends, before any repair. The command counts the
41
41
  attempts and the repairs:
42
42
 
43
43
  ```text
44
- npx --prefer-offline --yes copilotkit@4.27.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
44
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
45
45
  ```
46
46
 
47
47
  Use `passed` only for a proved A2UI surface, `failed` for an attempted proof that failed,
@@ -50,9 +50,9 @@ and `skipped` when the proof could not run.
50
50
  To route out and stop:
51
51
 
52
52
  ```text
53
- npx --prefer-offline --yes copilotkit@4.27.0 onboard read feature/stop
53
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard read feature/stop
54
54
  ```
55
55
 
56
56
  When the proof is recorded, run
57
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read feature/complete` with the actual browser-proof
57
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read feature/complete` with the actual browser-proof
58
58
  outcome.
@@ -10,7 +10,7 @@ run is doing in the developer's words instead.
10
10
  Run this before anything else in this prompt:
11
11
 
12
12
  ```text
13
- npx --prefer-offline --yes copilotkit@4.27.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
13
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
14
14
  ```
15
15
 
16
16
  Report your product slug, such as `codex` or `claude-code`. The command needs no sign-in,
@@ -39,15 +39,24 @@ carry on. Keep a read-only assignment read-only. If no subagent works at all, re
39
39
  once:
40
40
 
41
41
  ```text
42
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase delegation-unavailable
42
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase delegation-unavailable
43
43
  ```
44
44
 
45
45
  Before you end your turn to wait for the developer, report the pause:
46
46
 
47
47
  ```text
48
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
48
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about <question>
49
49
  ```
50
50
 
51
+ Name the question with `--about`. Use the one the prompt that asks it names, or else the
52
+ closest of: `harness-permission`, `sign-in`, `setup-answers`, `stack-choice`,
53
+ `project-name`, `which-project`, `env-file-tracked`, `local-connection`, `local-terms`,
54
+ `existing-folder`,
55
+ `environment-fix`, `uncommitted-file`, `agent-change`, `restore-files`, `thread-id`,
56
+ `scoped-fix`, `feature-binding`, `other`. Report the pause before every turn that ends while
57
+ the run is still open, even a turn where you asked nothing, with `other` then. A run that
58
+ goes quiet without it reads as a run that died.
59
+
51
60
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
52
61
  When the answer or the result arrives, continue from the step that paused.
53
62
 
@@ -55,7 +64,7 @@ If you stop this run, send one short report before you stop. The friction comman
55
64
  the telemetry setting the developer already chose, so it needs no separate question.
56
65
 
57
66
  ```text
58
- npx --prefer-offline --yes copilotkit@4.27.0 onboard friction --phase stop --category <slug> --message "<sentences>"
67
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard friction --phase stop --category <slug> --message "<sentences>"
59
68
  ```
60
69
 
61
70
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -77,7 +86,7 @@ development/test commands. It must return paths and secret-safe presence checks
77
86
 
78
87
  Require an existing frontend, agent, and CopilotKit round trip. Start only project-owned
79
88
  processes when needed, inspect `/info`, and run
80
- `npx --prefer-offline --yes copilotkit@4.27.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`.
89
+ `npx --prefer-offline --yes copilotkit@4.29.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`.
81
90
  Also drive one existing request through the frontend when browser control is available.
82
91
  The `verify` report names the runtime URL it probed. If the dev server serves the
83
92
  runtime at another URL, add `--runtime-url <url>`.
@@ -85,20 +94,20 @@ runtime at another URL, add `--runtime-url <url>`.
85
94
  Wait for the inspection subagent to finish. Then report that the inspection came back:
86
95
 
87
96
  ```text
88
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase research-returned
97
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase research-returned
89
98
  ```
90
99
 
91
100
  If the inspection did not prove the baseline this intent extends, stop here without
92
101
  changing files:
93
102
 
94
103
  ```text
95
- npx --prefer-offline --yes copilotkit@4.27.0 onboard read feature/stop
104
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard read feature/stop
96
105
  ```
97
106
 
98
107
  When the inspection proved what this intent needs, read the next prompt now, in this turn:
99
108
 
100
109
  ```text
101
- npx --prefer-offline --yes copilotkit@4.27.0 onboard read feature/a2ui/plan
110
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard read feature/a2ui/plan
102
111
  ```
103
112
 
104
113
  That prompt holds the plan, the developer's approval, and the paths the plan changes.