copilotkit 4.18.0 → 4.19.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.
- package/README.md +8 -3
- package/cli-build-info.json +7 -7
- package/index.js +4050 -3186
- package/onboarding/index.json +1 -1
- package/onboarding/prompts/authenticate/start.md +21 -12
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +7 -7
- package/onboarding/prompts/credentials/plan.md +47 -21
- package/onboarding/prompts/credentials/settle-credentials.md +24 -12
- package/onboarding/prompts/credentials/write-plan.md +5 -5
- package/onboarding/prompts/fallback/best-effort.md +31 -19
- package/onboarding/prompts/feature/a2ui/implement.md +7 -7
- package/onboarding/prompts/feature/a2ui/proof.md +8 -8
- package/onboarding/prompts/feature/a2ui/start.md +10 -10
- package/onboarding/prompts/feature/channels/implement.md +8 -8
- package/onboarding/prompts/feature/channels/proof.md +7 -7
- package/onboarding/prompts/feature/channels/start.md +10 -10
- package/onboarding/prompts/feature/chat-suggestions/implement.md +7 -7
- package/onboarding/prompts/feature/chat-suggestions/proof.md +7 -7
- package/onboarding/prompts/feature/chat-suggestions/start.md +10 -10
- package/onboarding/prompts/feature/complete.md +2 -2
- package/onboarding/prompts/feature/learning/implement.md +16 -16
- package/onboarding/prompts/feature/learning/proof.md +8 -8
- package/onboarding/prompts/feature/learning/start.md +10 -10
- package/onboarding/prompts/feature/open-generative-ui/implement.md +7 -7
- package/onboarding/prompts/feature/open-generative-ui/proof.md +7 -7
- package/onboarding/prompts/feature/open-generative-ui/start.md +10 -10
- package/onboarding/prompts/feature/realtime-sync/implement.md +8 -8
- package/onboarding/prompts/feature/realtime-sync/proof.md +7 -7
- package/onboarding/prompts/feature/realtime-sync/start.md +9 -9
- package/onboarding/prompts/feature/rich-threads/implement.md +9 -9
- package/onboarding/prompts/feature/rich-threads/proof.md +7 -7
- package/onboarding/prompts/feature/rich-threads/start.md +9 -9
- package/onboarding/prompts/feature/stop.md +3 -3
- package/onboarding/prompts/feature/voice/implement.md +7 -7
- package/onboarding/prompts/feature/voice/proof.md +7 -7
- package/onboarding/prompts/feature/voice/start.md +10 -10
- package/onboarding/prompts/framework/ag2.md +2 -2
- package/onboarding/prompts/framework/agno.md +2 -2
- package/onboarding/prompts/framework/built-in.md +2 -2
- package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
- package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
- package/onboarding/prompts/framework/crewai-flows.md +2 -2
- package/onboarding/prompts/framework/deep-agents.md +2 -2
- package/onboarding/prompts/framework/google-adk.md +2 -2
- package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
- package/onboarding/prompts/framework/langgraph-python.md +2 -2
- package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
- package/onboarding/prompts/framework/llamaindex.md +2 -2
- package/onboarding/prompts/framework/mastra.md +2 -2
- package/onboarding/prompts/framework/ms-agent-dotnet.md +8 -3
- package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +8 -3
- package/onboarding/prompts/framework/ms-agent-python.md +2 -2
- package/onboarding/prompts/framework/pydantic-ai.md +2 -2
- package/onboarding/prompts/framework/strands-python.md +2 -2
- package/onboarding/prompts/framework/strands-typescript.md +2 -2
- package/onboarding/prompts/frontend/angular.md +3 -3
- package/onboarding/prompts/frontend/nextjs.md +3 -3
- package/onboarding/prompts/frontend/plan.md +7 -7
- package/onboarding/prompts/frontend/react-native.md +2 -2
- package/onboarding/prompts/frontend/react-spa.md +2 -2
- package/onboarding/prompts/frontend/vue.md +2 -2
- package/onboarding/prompts/implementation/build-and-validate.md +23 -15
- package/onboarding/prompts/proof/complete.md +32 -16
- package/onboarding/prompts/proof/oss-baseline.md +5 -5
- package/onboarding/prompts/proof/round-trip.md +23 -15
- package/onboarding/prompts/research/gather.md +6 -6
- package/onboarding/prompts/research/merge.md +5 -4
- package/onboarding/prompts/research/preflight.md +15 -50
- package/onboarding/prompts/research/route.md +7 -6
- package/onboarding/prompts/starter/clone.md +6 -6
- package/onboarding/prompts/stopped/run-failed.md +2 -2
- package/onboarding/prompts/subagent/create-plan.md +10 -1
- package/onboarding/prompts/subagent/inspect-repository.md +10 -2
- package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
- package/onboarding/prompts/subagent/prove-round-trip.md +70 -56
- package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
- package/package.json +1 -1
- package/release/release-tool.js +11 -2
|
@@ -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.
|
|
15
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -67,7 +67,7 @@ Approving the plan is the developer agreeing to every path it listed under
|
|
|
67
67
|
app directory:
|
|
68
68
|
|
|
69
69
|
```text
|
|
70
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
70
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
Consent has to be on the record before the file moves, so a call made after the change is
|
|
@@ -95,7 +95,7 @@ No implementation step has run yet, so the change is theirs rather than this run
|
|
|
95
95
|
consent over it by adding one flag:
|
|
96
96
|
|
|
97
97
|
```text
|
|
98
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
98
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>" --with-prior-change
|
|
99
99
|
```
|
|
100
100
|
|
|
101
101
|
The flag records their change as drift beside the consent, so the closing report names both
|
|
@@ -115,7 +115,7 @@ audit below describes, rather than use this section.
|
|
|
115
115
|
Run the audit from the target app directory:
|
|
116
116
|
|
|
117
117
|
```text
|
|
118
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
118
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard audit
|
|
119
119
|
```
|
|
120
120
|
|
|
121
121
|
It compares every protected path with the digest the CLI captured for it. Its result starts
|
|
@@ -150,14 +150,14 @@ A path that no Files changed section names changed outside the run, and it is th
|
|
|
150
150
|
developer's own file. Accept it by name:
|
|
151
151
|
|
|
152
152
|
```text
|
|
153
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
153
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --accept-external --path <path>
|
|
154
154
|
```
|
|
155
155
|
|
|
156
156
|
A changed env file is its own case. This run asked the developer to place a credential
|
|
157
157
|
there, so it takes the credential route rather than this one:
|
|
158
158
|
|
|
159
159
|
```text
|
|
160
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
160
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --accept-credential --path <path>
|
|
161
161
|
```
|
|
162
162
|
|
|
163
163
|
That route proves no recorded credential was lost, instead of taking the run's word that it
|
|
@@ -176,7 +176,7 @@ neither does a one-line fix. Never repair, reset, or revert it. Ask the develope
|
|
|
176
176
|
the change, and record the answer they give:
|
|
177
177
|
|
|
178
178
|
```text
|
|
179
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
179
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
180
180
|
```
|
|
181
181
|
|
|
182
182
|
Use it only for an answer a developer actually gave. It records the consent as taken
|
|
@@ -188,6 +188,14 @@ and spawn a fresh implementation subagent with the same handoff and that list. I
|
|
|
188
188
|
audit starts with `Status: blocked`, use the route-out rules instead. A subagent
|
|
189
189
|
that already returned cannot pick up consent recorded after it was spawned.
|
|
190
190
|
|
|
191
|
+
A failed audit can also list project files that name a credential file outside the
|
|
192
|
+
repository. Such a file is not a protected path, and no route accepts it. It ties the commit
|
|
193
|
+
to a folder in the developer's home directory, so the app has no model key on any other
|
|
194
|
+
machine. Spawn a fresh implementation subagent with the same handoff and this one change:
|
|
195
|
+
remove the outside path, and load the key the way the approved plan says, from the app's
|
|
196
|
+
env file or from an environment variable. Then run the audit again. If the file is a
|
|
197
|
+
protected path, or the plan names no other way to load the key, use the route-out rules.
|
|
198
|
+
|
|
191
199
|
`Status: blocked` means the audit has no baseline to read. A blocked audit compared
|
|
192
200
|
nothing and proved nothing changed. It is not a preservation failure: do not report a
|
|
193
201
|
protected path as changed. Report the printed reason and use the route-out rules.
|
|
@@ -203,7 +211,7 @@ create it now, from the target app directory. The developer approved the id befo
|
|
|
203
211
|
made, so this is the first point at which it can be created:
|
|
204
212
|
|
|
205
213
|
```text
|
|
206
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
214
|
+
npx --prefer-offline --yes copilotkit@4.19.0 learning containers create --id <id> --name <name> --json
|
|
207
215
|
```
|
|
208
216
|
|
|
209
217
|
Pass the id the plan names. Take the name from the selected project's own display name, so
|
|
@@ -219,7 +227,7 @@ hold.
|
|
|
219
227
|
Then report that the container is settled, before any edit:
|
|
220
228
|
|
|
221
229
|
```text
|
|
222
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
230
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase container-settled
|
|
223
231
|
```
|
|
224
232
|
|
|
225
233
|
Where the plan names a container the platform already held, report the same checkpoint and
|
|
@@ -230,11 +238,11 @@ create nothing. Where the plan names no container, skip this section.
|
|
|
230
238
|
Report the plan this run is about to implement:
|
|
231
239
|
|
|
232
240
|
```text
|
|
233
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
241
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase plan-written
|
|
234
242
|
```
|
|
235
243
|
|
|
236
244
|
Spawn one implementation subagent. Tell it to run
|
|
237
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
245
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read subagent/implement-and-validate` first and follow
|
|
238
246
|
the prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
239
247
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
240
248
|
and the same handoff. Give it the plan, selected framework, frontend, model, exact target app
|
|
@@ -263,11 +271,11 @@ returned. Continue to proof only when that audit passes.
|
|
|
263
271
|
After the selected implementation path passes, report it:
|
|
264
272
|
|
|
265
273
|
```text
|
|
266
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
274
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase build-validated
|
|
267
275
|
```
|
|
268
276
|
|
|
269
277
|
Then run
|
|
270
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
278
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read proof/round-trip`.
|
|
271
279
|
|
|
272
280
|
## Repair rules
|
|
273
281
|
|
|
@@ -293,9 +301,9 @@ the same command still fails after three repair attempts, a result starts with
|
|
|
293
301
|
declined a file the plan does not name, or the run cannot ask them about it. A defect in a
|
|
294
302
|
package this run installed is not a stack CopilotKit does not serve, a command this run cannot get to pass is not one either, and a blocked audit
|
|
295
303
|
proved nothing about the stack. In those cases run
|
|
296
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
304
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read stopped/run-failed`.
|
|
297
305
|
|
|
298
306
|
A plan with no path to follow takes the unsupported ending: the fix requires changing the
|
|
299
307
|
developer's existing agent or frontend, or the documentation does not support the plan. In
|
|
300
308
|
those cases run
|
|
301
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
309
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read unsupported/no-validated-path`.
|
|
@@ -8,12 +8,16 @@ Do not complete onboarding without this evidence.
|
|
|
8
8
|
Report whether the real UI was driven on this journey's own surface -- in a browser for a
|
|
9
9
|
web frontend, on a device for React Native -- using the outcome the proof subagent
|
|
10
10
|
returned. Do not soften it and do not leave it out: a run that never drove the UI proved
|
|
11
|
-
the agent, not the surface, and the developer needs to know which they have.
|
|
11
|
+
the agent, not the surface, and the developer needs to know which they have. For
|
|
12
|
+
`skipped-no-browser-tool`, the command's list of what no browser checked is that report. Give
|
|
13
|
+
it once, in the section about what was proved. Do not add a separate line, heading, or
|
|
14
|
+
opening sentence about the missing browser.
|
|
12
15
|
|
|
13
16
|
**Whether this run is complete is decided by the command at the end of this prompt, not
|
|
14
17
|
here.** Run it before you write the summary, and let its output decide which summary you
|
|
15
18
|
write. A run whose surface was never driven is blocked, not complete, unless it cloned a
|
|
16
|
-
starter and records `skipped-cloned-starter
|
|
19
|
+
starter and records `skipped-cloned-starter`, or had no browser tool loaded, records
|
|
20
|
+
`skipped-no-browser-tool`, and recorded a passed round trip. For a blocked run, say so in the first
|
|
17
21
|
line, name the evidence the command lists as missing, and do not describe the run as
|
|
18
22
|
finished, working, or ready. Everything else below applies to either outcome.
|
|
19
23
|
|
|
@@ -85,7 +89,7 @@ Name the debugging surface this journey's frontend can reach, rather than the on
|
|
|
85
89
|
of the documentation leads with. For a web frontend it is the CopilotKit Inspector. For
|
|
86
90
|
React Native there is no Inspector: it is a browser overlay built on a DOM custom element,
|
|
87
91
|
and `@copilotkit/react-native` does not ship it. Give a mobile developer
|
|
88
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
92
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 verify --round-trip`, the runtime's own log, the AG-UI
|
|
89
93
|
Event Inspector in the CopilotKit VS Code extension, and the CopilotKit Intelligence
|
|
90
94
|
thread view
|
|
91
95
|
instead. Naming the Inspector to a developer who cannot open it costs them the time it
|
|
@@ -120,7 +124,7 @@ friction commands follow the telemetry setting the developer already chose, so t
|
|
|
120
124
|
separate question.
|
|
121
125
|
|
|
122
126
|
```text
|
|
123
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
127
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
|
|
124
128
|
```
|
|
125
129
|
|
|
126
130
|
Put one or two sentences in `--message`. Pick one category from
|
|
@@ -132,7 +136,7 @@ Pass --docs-path only for a docs-missing or docs-wrong report, naming the page t
|
|
|
132
136
|
is about:
|
|
133
137
|
|
|
134
138
|
```text
|
|
135
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
139
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard friction --category docs-wrong --cost-seconds 300 --docs-path /docs/threads/drawer --message "<sentences>"
|
|
136
140
|
```
|
|
137
141
|
|
|
138
142
|
Give the page's site-relative path or its full URL, with no spaces, query string, or
|
|
@@ -149,24 +153,28 @@ Tell the developer when you send a friction report. Do not quote or summarize th
|
|
|
149
153
|
unless the developer asks. If the CLI says the report was not sent,
|
|
150
154
|
state what it said and continue without another question.
|
|
151
155
|
|
|
152
|
-
When the evidence is gathered, run `npx --prefer-offline --yes copilotkit@4.
|
|
156
|
+
When the evidence is gathered, run `npx --prefer-offline --yes copilotkit@4.19.0 onboard complete`, carrying
|
|
153
157
|
the surface-check outcome the proof subagent returned. Pass exactly one of `--visual-check`
|
|
154
158
|
or `--device-check`, and pass the one that matches this journey's surface.
|
|
155
159
|
|
|
156
160
|
For a web frontend -- React SPA, Next.js, Angular, Vue:
|
|
157
161
|
|
|
158
162
|
```text
|
|
159
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
163
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard complete --visual-check <outcome>
|
|
160
164
|
```
|
|
161
165
|
|
|
162
166
|
The outcome is one of `performed`, `skipped-no-browser-tool`, `skipped-cloned-starter`, or
|
|
163
167
|
`failed`. Use `skipped-cloned-starter` only for a run that cloned a starter and was told to
|
|
164
|
-
open no browser.
|
|
168
|
+
open no browser. Use `skipped-no-browser-tool` for a run with no browser tool loaded in this
|
|
169
|
+
session. `skipped-cloned-starter` does not block. `skipped-no-browser-tool` does not block
|
|
170
|
+
when this run recorded a passed round trip with `onboard proof`. The command then prints
|
|
171
|
+
what no browser checked and how to add a browser for the next session. Put each in the
|
|
172
|
+
summary once, as the command prints it.
|
|
165
173
|
|
|
166
174
|
For React Native:
|
|
167
175
|
|
|
168
176
|
```text
|
|
169
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
177
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard complete --device-check <outcome>
|
|
170
178
|
```
|
|
171
179
|
|
|
172
180
|
The outcome is one of `performed`, `skipped-no-device`, `skipped-cloned-starter`, or
|
|
@@ -179,7 +187,7 @@ browser-origin CORS, so the flag you pass is how this run states which surface i
|
|
|
179
187
|
For a web frontend, also pass the URL the browser opened:
|
|
180
188
|
|
|
181
189
|
```text
|
|
182
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
190
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard complete --visual-check <outcome> \
|
|
183
191
|
--frontend-url <the url you opened>
|
|
184
192
|
```
|
|
185
193
|
|
|
@@ -189,9 +197,9 @@ name -- and never the host itself. A run that opened the loopback IP literal los
|
|
|
189
197
|
static chunk to a refusal, and the field is how that stops being invisible. Leave the flag
|
|
190
198
|
off for React Native, which opens no URL.
|
|
191
199
|
|
|
192
|
-
Pass the outcome you were given rather than the one you wanted.
|
|
193
|
-
`skipped-
|
|
194
|
-
|
|
200
|
+
Pass the outcome you were given rather than the one you wanted. `failed` and
|
|
201
|
+
`skipped-no-device` print what the missing check leaves unverified and end this run as
|
|
202
|
+
blocked. That output
|
|
195
203
|
is the developer's finding, so carry it into the summary rather than restating it as a
|
|
196
204
|
smaller caveat.
|
|
197
205
|
|
|
@@ -199,13 +207,21 @@ If the round trip proved and something after it still blocked this run, add `--b
|
|
|
199
207
|
to the same command:
|
|
200
208
|
|
|
201
209
|
```text
|
|
202
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
210
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard complete --visual-check performed --blocked-by <cause>
|
|
203
211
|
```
|
|
204
212
|
|
|
205
213
|
The cause is one of `inspector` for a debugging surface that did not open,
|
|
206
214
|
`plan-excluded-capability` for a capability the approved plan had already excluded for this
|
|
207
|
-
framework,
|
|
208
|
-
|
|
215
|
+
framework, `browser-control-unresponsive` for a browser tool that stopped answering during
|
|
216
|
+
the surface check, and `other` for anything else. Pick `other` rather than leaving the flag
|
|
217
|
+
off. The command ends the run as blocked and prints what the blocker leaves unverified.
|
|
218
|
+
|
|
219
|
+
`browser-control-unresponsive` is the one cause that goes with the failed check, because
|
|
220
|
+
nothing drove the frontend:
|
|
221
|
+
|
|
222
|
+
```text
|
|
223
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard complete --visual-check failed --blocked-by browser-control-unresponsive
|
|
224
|
+
```
|
|
209
225
|
|
|
210
226
|
The managed Intelligence dashboard is not among these, because nothing in this graph asks a
|
|
211
227
|
run to open it. A run that records a blocker for a surface it was never sent to looks worse
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Prove the existing OSS baseline
|
|
2
2
|
|
|
3
3
|
Do not prove the baseline yourself. Spawn one proof subagent. Tell it to run
|
|
4
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
4
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read subagent/prove-oss-baseline` first and follow the
|
|
5
5
|
prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
6
6
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
7
7
|
and the same handoff. Give it the repository findings and exact CLI package spec.
|
|
@@ -17,7 +17,7 @@ Wait for the subagent to finish.
|
|
|
17
17
|
Record what that proof returned before you route on it:
|
|
18
18
|
|
|
19
19
|
```text
|
|
20
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
20
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
Report the gate whatever it returned. Use the list below. A proof that never ran is `skipped`, not failed. The command prints one line and sends
|
|
@@ -39,12 +39,12 @@ Do not change project files before this proof ends. Starting existing developmen
|
|
|
39
39
|
processes and their ignored runtime files is allowed.
|
|
40
40
|
|
|
41
41
|
If the subagent proves the `both-oss` predicate, keep its evidence with the plan and run
|
|
42
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
42
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read conversion/plan`. That project already works.
|
|
43
43
|
What it needs is the conversion, not a build.
|
|
44
44
|
|
|
45
45
|
If the proof does not establish the baseline, record the starting state
|
|
46
46
|
`both-copilotkit-unproved` and run
|
|
47
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
47
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read credentials/plan`. This prompt is served
|
|
48
48
|
whenever a project looks like an OSS integration, so a baseline that did not prove is an
|
|
49
49
|
ordinary starting state rather than a failure. Keep the failing predicate with the plan.
|
|
50
50
|
|
|
@@ -58,5 +58,5 @@ and the plan preserves it rather than repeating it.
|
|
|
58
58
|
|
|
59
59
|
If it cannot identify the running process safely, exposes a secret, or finds a baseline
|
|
60
60
|
failure that cannot be classified, run
|
|
61
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
61
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read stopped/run-failed`. None of those mean the
|
|
62
62
|
project is unsupported: they mean this run did not establish what it needed to.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Prove the user journey
|
|
2
2
|
|
|
3
3
|
Do not do the proof work yourself. Spawn one proof subagent. Tell it to run
|
|
4
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
4
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read subagent/prove-round-trip` first and follow the
|
|
5
5
|
prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
6
6
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
7
7
|
and the same handoff. Give it the selected framework, frontend, model, approved plan, selected
|
|
@@ -13,6 +13,8 @@ Give it the browser or device control you recorded in the preflight as well. The
|
|
|
13
13
|
drives the surface and cannot see your environment, so without that finding it spends the
|
|
14
14
|
step discovering what you already know. A subagent told it has no control for the surface
|
|
15
15
|
this frontend needs reports the skip outcome rather than looking for a way around it.
|
|
16
|
+
A web run with no browser tool reports `skipped-no-browser-tool`. That outcome completes the
|
|
17
|
+
run once the round trip is recorded as `passed`.
|
|
16
18
|
|
|
17
19
|
A run that cloned a starter is the exception. Tell that subagent that this run cloned a
|
|
18
20
|
starter, to finish after `verify --round-trip`, and to open no browser. The cloned code is what this repository's
|
|
@@ -22,7 +24,7 @@ expensive step in this setup. `verify --round-trip` reads the answer back off th
|
|
|
22
24
|
so it holds for every runtime mount and needs no browser. Give that subagent no browser or
|
|
23
25
|
device control, and have it report `skipped-cloned-starter` rather than a missing
|
|
24
26
|
capability: nothing was unavailable, the run declined to spend it. That outcome completes
|
|
25
|
-
the run.
|
|
27
|
+
the run.
|
|
26
28
|
|
|
27
29
|
Give the subagent this guide for continued-development tools:
|
|
28
30
|
https://docs.copilotkit.ai/build-with-agents.md
|
|
@@ -33,13 +35,13 @@ pass the time.
|
|
|
33
35
|
Report each attempt at the journey as it ends, counting from one:
|
|
34
36
|
|
|
35
37
|
```text
|
|
36
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
38
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase journey-attempted --attempt 1
|
|
37
39
|
```
|
|
38
40
|
|
|
39
41
|
Record what that proof returned before you route on it:
|
|
40
42
|
|
|
41
43
|
```text
|
|
42
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
44
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
43
45
|
```
|
|
44
46
|
|
|
45
47
|
Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. A
|
|
@@ -48,7 +50,7 @@ to record it as `skipped`. The command prints one line and sends nothing else. W
|
|
|
48
50
|
record each attempt as it ends.
|
|
49
51
|
|
|
50
52
|
For every protected-path audit in this prompt, run
|
|
51
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
53
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard audit` from the target app directory. If its result
|
|
52
54
|
starts with `Status: blocked`, report the printed reason and use the route-out rules below.
|
|
53
55
|
A blocked audit proved nothing changed and is not a preservation failure. If a
|
|
54
56
|
protected-path audit reports a changed path, decide it the way the implementation prompt
|
|
@@ -57,7 +59,7 @@ returns none, so a finding with no Files changed section to test against routes
|
|
|
57
59
|
path one of those sections names is this run's own change and routes out too. Accept a
|
|
58
60
|
path only when a section this run collected covers the step that wrote it and does not
|
|
59
61
|
name it:
|
|
60
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
62
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --accept-external --path <path>`. Then run
|
|
61
63
|
the audit again and name the path in the closing summary. Never repair, reset, or revert a
|
|
62
64
|
protected path.
|
|
63
65
|
|
|
@@ -65,17 +67,23 @@ That holds for a repair cycle too. When the fix for a failing check lands on a p
|
|
|
65
67
|
path, the path is still the developer's, however right the diagnosis is and however small
|
|
66
68
|
the fix. Reading the file never settles who wrote it. Ask the developer to allow the
|
|
67
69
|
change, and record their answer with
|
|
68
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
70
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
|
|
69
71
|
or route out. Never repair it, and never send it to a repair worker.
|
|
70
72
|
|
|
71
73
|
If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
|
|
72
74
|
`proof/complete` only if that audit passes. After the audit passes, run
|
|
73
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
75
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read proof/complete`. A performed surface outcome with
|
|
74
76
|
the full round trip is core success even if a continued-development tool fails. A skipped
|
|
75
|
-
surface outcome still enters `proof/complete
|
|
76
|
-
`skipped-
|
|
77
|
-
|
|
78
|
-
result.
|
|
77
|
+
surface outcome still enters `proof/complete`. The CLI records `skipped-cloned-starter` and
|
|
78
|
+
`skipped-no-browser-tool` after a passed round trip as complete, and `skipped-no-device` as
|
|
79
|
+
blocked. Do not describe a
|
|
80
|
+
skipped surface as proved. Keep the Skills result separate from the proof result.
|
|
81
|
+
|
|
82
|
+
A passed result can carry the surface-check outcome `failed` with the cause
|
|
83
|
+
`browser-control-unresponsive`. It means that the browser tool stopped answering, not that
|
|
84
|
+
the journey failed. Record the round trip as `passed`, and carry the cause to
|
|
85
|
+
`proof/complete`. Do not send it to a repair worker, and do not run the proof again. No
|
|
86
|
+
repair to the project reaches the tool, and a second attempt waits on the same hang.
|
|
79
87
|
|
|
80
88
|
If the round trip proves and something after it blocks this run anyway -- the debugging
|
|
81
89
|
surface, or a capability the approved plan already excluded for this framework -- read
|
|
@@ -148,7 +156,7 @@ Restart each project-owned process changed by the repair. Report the cycle, coun
|
|
|
148
156
|
one:
|
|
149
157
|
|
|
150
158
|
```text
|
|
151
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
159
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase repair-attempted --attempt 1
|
|
152
160
|
```
|
|
153
161
|
|
|
154
162
|
Then spawn a fresh proof subagent
|
|
@@ -166,7 +174,7 @@ proof cycles, use the route-out rules below.
|
|
|
166
174
|
|
|
167
175
|
Route out only when the failure is not yours to fix, when the same proof still fails after
|
|
168
176
|
three attempts, or when no evidence of the round trip can be produced. In those cases run
|
|
169
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
177
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read stopped/run-failed`. The stack is supported:
|
|
170
178
|
this run did not finish, which is a different ending and a different report. All three are
|
|
171
179
|
about the round trip itself. A round trip that proved is not one of them, whatever failed
|
|
172
180
|
after it.
|
|
@@ -177,7 +185,7 @@ friction command follows the telemetry setting the developer already chose, so i
|
|
|
177
185
|
separate question.
|
|
178
186
|
|
|
179
187
|
```text
|
|
180
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
188
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
181
189
|
```
|
|
182
190
|
|
|
183
191
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -44,7 +44,7 @@ Before you end your turn to wait for the developer where the prompt states no de
|
|
|
44
44
|
report the pause:
|
|
45
45
|
|
|
46
46
|
```text
|
|
47
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
47
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase awaiting-developer
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
When the answer or the result arrives, continue from the step that paused. Do not read an
|
|
@@ -64,7 +64,7 @@ Both research subagents failing means this harness has no working subagent at al
|
|
|
64
64
|
is worth recording once:
|
|
65
65
|
|
|
66
66
|
```text
|
|
67
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
67
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase delegation-unavailable
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
Then say once, in your own words, that this environment has no working subagents, so you
|
|
@@ -77,7 +77,7 @@ Before you ask the developer any setup question, finish every read-only investig
|
|
|
77
77
|
preflight check in this section.
|
|
78
78
|
|
|
79
79
|
Prepare two research assignments. Give each research subagent one assignment. Tell it to run
|
|
80
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
80
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read subagent/inspect-repository` first and follow the
|
|
81
81
|
prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
82
82
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
83
83
|
and the same handoff. Require only its assigned packet.
|
|
@@ -91,7 +91,7 @@ Start both research subagents in parallel:
|
|
|
91
91
|
Report that both subagents started:
|
|
92
92
|
|
|
93
93
|
```text
|
|
94
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
94
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase research-dispatched
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -100,8 +100,8 @@ failed step.
|
|
|
100
100
|
The research is under way. Continue to the surface-control preflight while it runs:
|
|
101
101
|
|
|
102
102
|
```text
|
|
103
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
103
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard read research/preflight
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
If inspection stops onboarding, run
|
|
107
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
107
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read stopped/run-failed`.
|
|
@@ -21,7 +21,7 @@ Project selection is where the settled port is written down, through `--runtime-
|
|
|
21
21
|
Then report that the research came back:
|
|
22
22
|
|
|
23
23
|
```text
|
|
24
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
24
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase research-returned
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -39,7 +39,8 @@ verifier result.
|
|
|
39
39
|
|
|
40
40
|
A target project directory that holds no project has no app directory to key on, and
|
|
41
41
|
that is a merged result rather than a failed merge. Record that this run has no target app
|
|
42
|
-
directory and no environment row
|
|
42
|
+
directory and no environment row. Keep the toolchain reading: it is about this machine, not
|
|
43
|
+
a directory, and the framework question reads it. Then take the read below. Do not send a focused directory
|
|
43
44
|
check, and do not use the stop route: neither worker can find a directory a developer has
|
|
44
45
|
not created yet, and the route below is where such a project picks its starter.
|
|
45
46
|
|
|
@@ -54,7 +55,7 @@ worker a focused directory check. Continue only when both workers return the sam
|
|
|
54
55
|
app directory. Both results must start with `Status: passed`. Otherwise, use the stop route.
|
|
55
56
|
|
|
56
57
|
When both research results are merged, run
|
|
57
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
58
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read research/route`.
|
|
58
59
|
|
|
59
60
|
If inspection stops onboarding, run
|
|
60
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
61
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read stopped/run-failed`.
|
|
@@ -5,71 +5,36 @@ every later step reads one recorded answer instead of guessing. Do not change ap
|
|
|
5
5
|
code here, and do not wait for the research packets yet.
|
|
6
6
|
|
|
7
7
|
Prove whether your coding-agent environment has browser or device control. Do not assume it
|
|
8
|
-
either way, and do not report what you expect to be true. Use a browser or device tool
|
|
9
|
-
|
|
10
|
-
CopilotKit documentation server. With a browser tool, open one inert page such as
|
|
8
|
+
either way, and do not report what you expect to be true. Use a browser or device tool that
|
|
9
|
+
is already loaded in this session. With a browser tool, open one inert page such as
|
|
11
10
|
`about:blank` and read its title. With a device tool and no browser, list the booted devices
|
|
12
11
|
in one command: `adb devices -l`. Record the outcome of that attempt: `available` when the
|
|
13
|
-
tool answered, `unavailable` when there was none to call or the page did not open. Use
|
|
14
|
-
|
|
12
|
+
tool answered, `unavailable` when there was none to call or the page did not open. Use the
|
|
13
|
+
control that matches the selected surface later.
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
Where no
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
agent's configuration rather than in their repository, and that they can remove it again.
|
|
23
|
-
Say that before you run the command. The run does not ask again.
|
|
24
|
-
|
|
25
|
-
Register this server:
|
|
26
|
-
|
|
27
|
-
```text
|
|
28
|
-
npx --yes @playwright/mcp@latest --browser chrome --isolated --output-dir <project>/.copilotkit/proof/browser
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Replace `<project>` with the absolute path of the target project directory. The server is
|
|
32
|
-
registered against the coding agent rather than against a directory, so a relative path here
|
|
33
|
-
resolves wherever that server happens to start.
|
|
34
|
-
|
|
35
|
-
`--browser chrome` drives an installed Google Chrome. Where this machine has none, use
|
|
36
|
-
`--browser chromium` instead and expect Playwright to download a browser build. Tell the
|
|
37
|
-
developer before that download starts. If the server then reports no build, run
|
|
38
|
-
`npx playwright install chromium`, and if it still cannot find one, run
|
|
39
|
-
`npx @playwright/mcp install-browser chrome-for-testing`. `--isolated` keeps the profile in
|
|
40
|
-
memory, so it never touches their own Chrome profile. `--output-dir` keeps the snapshots and
|
|
41
|
-
screenshots out of the developer's repository root: without it this server writes them to
|
|
42
|
-
`.playwright-mcp/` beside their code, which a project that never asked for a browser has no
|
|
43
|
-
reason to carry. Register it the way your own harness registers a server, which is the
|
|
44
|
-
mechanism a later step uses for the CopilotKit documentation server.
|
|
45
|
-
|
|
46
|
-
Some coding agents, Claude Code among them, load a newly registered MCP server only at the
|
|
47
|
-
next session start. Tell the developer in one line to expect one restart, then restart and
|
|
48
|
-
re-bind with `npx --prefer-offline --yes copilotkit@4.18.0 onboard start --run <onboarding_run_id>`. That
|
|
49
|
-
restart is a step here, not an error.
|
|
15
|
+
Register nothing. Do not add a browser MCP server to this coding agent, and do not install a
|
|
16
|
+
browser. A server registered during a run loads only in the next session, so it cannot help
|
|
17
|
+
this one. Where no tool answered, the run still completes: the proof step reports
|
|
18
|
+
`skipped-no-browser-tool`, and the closing report tells the developer how to add a browser
|
|
19
|
+
for their next session. Say in one line that the live UI check will be skipped and that the
|
|
20
|
+
run can still complete.
|
|
50
21
|
|
|
51
22
|
Do not add a browser or device driver to the project. A driver added there is a
|
|
52
|
-
devDependency and a browser download in the diff of a repository that never asked for one
|
|
53
|
-
which is a different thing from a server registered against the coding agent.
|
|
54
|
-
|
|
55
|
-
Where the second probe still does not answer -- no browser to drive, no network, or a
|
|
56
|
-
harness that cannot register a server -- record `unavailable` and carry it. Do not keep
|
|
57
|
-
trying. Say so in one line. Nothing here is for the developer to decide.
|
|
23
|
+
devDependency and a browser download in the diff of a repository that never asked for one.
|
|
58
24
|
|
|
59
|
-
|
|
60
|
-
whole finding.
|
|
25
|
+
Where the device probe found no booted device, that is the whole finding.
|
|
61
26
|
|
|
62
27
|
Report that the probe settled, whichever way it came out:
|
|
63
28
|
|
|
64
29
|
```text
|
|
65
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
30
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase surface-probed
|
|
66
31
|
```
|
|
67
32
|
|
|
68
33
|
Then merge the research:
|
|
69
34
|
|
|
70
35
|
```text
|
|
71
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
36
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard read research/merge
|
|
72
37
|
```
|
|
73
38
|
|
|
74
39
|
If inspection stops onboarding, run
|
|
75
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
40
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read stopped/run-failed`.
|
|
@@ -9,11 +9,12 @@ 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.
|
|
12
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard protect
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
It reads the working tree itself, records every changed or untracked path with a digest,
|
|
16
|
-
and prints the list. Require its result to start with `Status: passed`.
|
|
16
|
+
and prints the list. Require its result to start with `Status: passed`. On a restart of the
|
|
17
|
+
same run, it prints the baseline the run already holds and re-reads nothing.
|
|
17
18
|
|
|
18
19
|
Use the printed list as the protected path list for the rest of the run. Do not assemble
|
|
19
20
|
that list yourself, and do not ask a subagent to hold it: every later audit reads the
|
|
@@ -41,7 +42,7 @@ On either, run this before you read the three findings below, and without asking
|
|
|
41
42
|
purpose question:
|
|
42
43
|
|
|
43
44
|
```text
|
|
44
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
45
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/channels/start
|
|
45
46
|
```
|
|
46
47
|
|
|
47
48
|
Name the provider to that node so it does not ask again. A Slack page names Slack. A Teams
|
|
@@ -96,7 +97,7 @@ settle these three from your own reading of the project. Each one comes from the
|
|
|
96
97
|
packets or it is not proved.
|
|
97
98
|
|
|
98
99
|
If all three are proved, prove the live starting state before any project file changes. Run
|
|
99
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
100
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read proof/oss-baseline`.
|
|
100
101
|
|
|
101
102
|
Route there before you ask the developer anything else. The questions after this prompt
|
|
102
103
|
select a framework and a frontend that the findings already name, so a developer who
|
|
@@ -109,7 +110,7 @@ developer nor the repository findings prove what the project is for, ask one gui
|
|
|
109
110
|
question about the user outcome. This asks what the developer wants to build before you
|
|
110
111
|
select a framework. Give two or three short examples. Record the answer and give it to
|
|
111
112
|
each later subagent. Then run
|
|
112
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
113
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read credentials/plan`.
|
|
113
114
|
|
|
114
115
|
Do not ask that question on the route above. A project carrying all three states its
|
|
115
116
|
purpose in the application it already serves.
|
|
@@ -123,5 +124,5 @@ A purpose question here names a domain before that choice.
|
|
|
123
124
|
Take the same read named above without asking.
|
|
124
125
|
|
|
125
126
|
If authentication, inspection, or the baseline capture stops onboarding, run
|
|
126
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
127
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read stopped/run-failed`. None of them says anything
|
|
127
128
|
about whether this project's stack is supported, which is not yet known at this point.
|