copilotkit 4.15.0 → 4.17.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 +118 -10
- package/cli-build-info.json +8 -8
- package/index.js +24194 -3483
- package/onboarding/index.json +1 -1
- package/onboarding/prompts/authenticate/start.md +17 -15
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +20 -20
- package/onboarding/prompts/credentials/plan.md +21 -21
- package/onboarding/prompts/credentials/settle-credentials.md +46 -10
- package/onboarding/prompts/credentials/write-plan.md +35 -20
- package/onboarding/prompts/fallback/best-effort.md +23 -15
- package/onboarding/prompts/feature/a2ui/implement.md +40 -12
- package/onboarding/prompts/feature/a2ui/proof.md +29 -9
- package/onboarding/prompts/feature/a2ui/start.md +8 -10
- package/onboarding/prompts/feature/blocked-by-plan.md +4 -4
- package/onboarding/prompts/feature/channels/implement.md +41 -13
- package/onboarding/prompts/feature/channels/proof.md +30 -11
- package/onboarding/prompts/feature/channels/start.md +11 -9
- package/onboarding/prompts/feature/chat-suggestions/implement.md +40 -12
- package/onboarding/prompts/feature/chat-suggestions/proof.md +29 -9
- package/onboarding/prompts/feature/chat-suggestions/start.md +8 -10
- package/onboarding/prompts/feature/complete.md +2 -2
- package/onboarding/prompts/feature/learning/implement.md +58 -26
- package/onboarding/prompts/feature/learning/proof.md +30 -10
- package/onboarding/prompts/feature/learning/start.md +15 -12
- package/onboarding/prompts/feature/open-generative-ui/implement.md +41 -13
- package/onboarding/prompts/feature/open-generative-ui/proof.md +29 -9
- package/onboarding/prompts/feature/open-generative-ui/start.md +8 -10
- package/onboarding/prompts/feature/realtime-sync/implement.md +41 -13
- package/onboarding/prompts/feature/realtime-sync/proof.md +31 -10
- package/onboarding/prompts/feature/realtime-sync/start.md +8 -9
- package/onboarding/prompts/feature/rich-threads/implement.md +42 -14
- package/onboarding/prompts/feature/rich-threads/proof.md +31 -10
- package/onboarding/prompts/feature/rich-threads/start.md +8 -9
- package/onboarding/prompts/feature/stop.md +3 -3
- package/onboarding/prompts/feature/voice/implement.md +40 -12
- package/onboarding/prompts/feature/voice/proof.md +29 -9
- package/onboarding/prompts/feature/voice/start.md +8 -9
- package/onboarding/prompts/framework/ag2.md +2 -2
- package/onboarding/prompts/framework/agno.md +4 -4
- package/onboarding/prompts/framework/built-in.md +2 -2
- package/onboarding/prompts/framework/claude-sdk-python.md +8 -7
- package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
- package/onboarding/prompts/framework/crewai-flows.md +15 -7
- package/onboarding/prompts/framework/deep-agents.md +4 -3
- package/onboarding/prompts/framework/google-adk.md +7 -7
- 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 +4 -4
- package/onboarding/prompts/framework/mastra.md +2 -2
- package/onboarding/prompts/framework/ms-agent-dotnet.md +2 -2
- package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
- package/onboarding/prompts/framework/ms-agent-python.md +6 -6
- package/onboarding/prompts/framework/pydantic-ai.md +2 -2
- package/onboarding/prompts/framework/strands-python.md +4 -4
- package/onboarding/prompts/framework/strands-typescript.md +4 -4
- package/onboarding/prompts/frontend/angular.md +3 -3
- package/onboarding/prompts/frontend/nextjs.md +16 -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 +67 -28
- package/onboarding/prompts/proof/complete.md +21 -14
- package/onboarding/prompts/proof/oss-baseline.md +16 -12
- package/onboarding/prompts/proof/round-trip.md +33 -22
- package/onboarding/prompts/research/gather.md +8 -7
- package/onboarding/prompts/research/merge.md +3 -3
- package/onboarding/prompts/research/preflight.md +4 -4
- package/onboarding/prompts/research/route.md +6 -6
- package/onboarding/prompts/starter/clone.md +30 -20
- package/onboarding/prompts/stopped/run-failed.md +15 -9
- package/onboarding/prompts/subagent/create-plan.md +15 -10
- package/onboarding/prompts/subagent/implement-and-validate.md +25 -11
- package/onboarding/prompts/subagent/inspect-repository.md +14 -6
- package/onboarding/prompts/subagent/prove-oss-baseline.md +11 -4
- package/onboarding/prompts/subagent/prove-round-trip.md +48 -14
- package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
- package/package.json +1 -5
- package/release/release-tool.js +222 -46
|
@@ -4,15 +4,16 @@ Do not implement the plan yourself. Use the step order in the approved plan.
|
|
|
4
4
|
|
|
5
5
|
## If you stop in this phase
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
than the container already existing
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
Two rules below stop onboarding: a Learning Container create that fails for a reason other
|
|
8
|
+
than the container already existing, and a `--accept-credential` refusal that names a lost
|
|
9
|
+
variable. Each one ends a run the developer has already approved a plan for. Name the
|
|
10
|
+
exact command, id, and error code that stopped you: a report that names only the step
|
|
11
|
+
cannot be acted on. Send one short report before you stop. Run the friction
|
|
11
12
|
command without another developer question. Do not ask the developer about telemetry: the
|
|
12
13
|
command applies the setting they already have.
|
|
13
14
|
|
|
14
15
|
```text
|
|
15
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
16
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
16
17
|
```
|
|
17
18
|
|
|
18
19
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -36,6 +37,19 @@ plan said, what you did instead, and why. Carry that record into the closing sum
|
|
|
36
37
|
which has an item for it. Do not stop for a departure that is the right call, and do not
|
|
37
38
|
leave it unrecorded either.
|
|
38
39
|
|
|
40
|
+
The implementation subagent marks its own departures in its Files changed section: a file
|
|
41
|
+
that has the same role as a planned file at a different path, and the documentation file
|
|
42
|
+
it writes. Carry each one into that record.
|
|
43
|
+
|
|
44
|
+
Any other file the plan does not name comes back as a result that starts with
|
|
45
|
+
`Status: blocked` and names the file under Blockers. That result is a question for the
|
|
46
|
+
developer, not a run that broke. Where that file is a protected path, the protected-path
|
|
47
|
+
rules in the audit section below apply instead. Otherwise, pause: name the file and why the
|
|
48
|
+
work needs it, then end your turn and wait for the developer's answer. If they allow it,
|
|
49
|
+
spawn a fresh implementation subagent with the same handoff. Add that file to the handoff
|
|
50
|
+
as a path the developer approved, and record it as a departure. If you cannot ask, or the
|
|
51
|
+
developer declines, the failure ending in the route-out rules below applies.
|
|
52
|
+
|
|
39
53
|
The existing agent's behavior is never a departure to record and carry on from. It is four
|
|
40
54
|
things: its system prompt and instructions, its tools and what those tools do, its model
|
|
41
55
|
and provider configuration, and its memory or state handling. Repair a failing check on
|
|
@@ -54,13 +68,24 @@ Approving the plan is the developer agreeing to every path it listed under
|
|
|
54
68
|
app directory:
|
|
55
69
|
|
|
56
70
|
```text
|
|
57
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
71
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
|
|
58
72
|
```
|
|
59
73
|
|
|
60
74
|
Consent has to be on the record before the file moves, so a call made after the change is
|
|
61
75
|
refused. Continue only if every result starts with `Status: passed`. If the plan listed
|
|
62
76
|
nothing there, skip this section.
|
|
63
77
|
|
|
78
|
+
The implementation subagent cannot change a protected path unless it has the authorized
|
|
79
|
+
list. Take that list from the CLI rather than from the plan: run `onboard audit` after the
|
|
80
|
+
last authorization, and copy the paths under `Authorized to modify:`. An audit that passes
|
|
81
|
+
or fails prints that block whenever an authorization exists, so a passed or failed audit
|
|
82
|
+
with no such block means nothing is authorized. A blocked audit prints no block at all:
|
|
83
|
+
if this audit starts with `Status: blocked`, the CLI cannot supply the list, so report the
|
|
84
|
+
printed reason and use the route-out rules below. A failed audit here is the one exception
|
|
85
|
+
to the rule that an audit that has not passed never continues the run: read only its
|
|
86
|
+
`Authorized to modify:` block now, and decide its findings with the audit rules below,
|
|
87
|
+
after implementation.
|
|
88
|
+
|
|
64
89
|
What you record here covers changing the file. It does not cover removing it. Never delete,
|
|
65
90
|
move, or rename a protected path, whatever the plan says: the audit fails a path that is
|
|
66
91
|
gone even when consent was recorded for it, and no command clears that. If a step cannot
|
|
@@ -71,7 +96,7 @@ No implementation step has run yet, so the change is theirs rather than this run
|
|
|
71
96
|
consent over it by adding one flag:
|
|
72
97
|
|
|
73
98
|
```text
|
|
74
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
99
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>" --with-prior-change
|
|
75
100
|
```
|
|
76
101
|
|
|
77
102
|
The flag records their change as drift beside the consent, so the closing report names both
|
|
@@ -81,16 +106,17 @@ the route-out rules apply.
|
|
|
81
106
|
|
|
82
107
|
This section is the only place the plan's own authorizations are recorded. Once this run
|
|
83
108
|
reports its plan, the CLI refuses `--authorize` for every path the plan did not name. The
|
|
84
|
-
developer approved a plan, not a permission to reach further, so there is no consent
|
|
85
|
-
record for a path that comes up later. If you find such a path mid-run,
|
|
86
|
-
|
|
109
|
+
developer approved a plan, not a permission to reach further, so there is no plan consent
|
|
110
|
+
to record for a path that comes up later. If you find such a path mid-run, ask the
|
|
111
|
+
developer and record their answer with `--authorize --unplanned`, as the protected-path
|
|
112
|
+
audit below describes, rather than use this section.
|
|
87
113
|
|
|
88
114
|
## Protected-path audit
|
|
89
115
|
|
|
90
116
|
Run the audit from the target app directory:
|
|
91
117
|
|
|
92
118
|
```text
|
|
93
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
119
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
|
|
94
120
|
```
|
|
95
121
|
|
|
96
122
|
It compares every protected path with the digest the CLI captured for it. Its result starts
|
|
@@ -125,14 +151,14 @@ A path that no Files changed section names changed outside the run, and it is th
|
|
|
125
151
|
developer's own file. Accept it by name:
|
|
126
152
|
|
|
127
153
|
```text
|
|
128
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
154
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-external --path <path>
|
|
129
155
|
```
|
|
130
156
|
|
|
131
157
|
A changed env file is its own case. This run asked the developer to place a credential
|
|
132
158
|
there, so it takes the credential route rather than this one:
|
|
133
159
|
|
|
134
160
|
```text
|
|
135
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
161
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-credential --path <path>
|
|
136
162
|
```
|
|
137
163
|
|
|
138
164
|
That route proves no recorded credential was lost, instead of taking the run's word that it
|
|
@@ -151,19 +177,25 @@ neither does a one-line fix. Never repair, reset, or revert it. Ask the develope
|
|
|
151
177
|
the change, and record the answer they give:
|
|
152
178
|
|
|
153
179
|
```text
|
|
154
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
180
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
155
181
|
```
|
|
156
182
|
|
|
157
183
|
Use it only for an answer a developer actually gave. It records the consent as taken
|
|
158
184
|
outside the approved plan, and every later audit and the closing report say so, which is
|
|
159
185
|
what tells the developer they were asked mid-run. If you cannot ask, route out.
|
|
160
186
|
|
|
187
|
+
Then run the audit again, take the authorized list from its `Authorized to modify:` block,
|
|
188
|
+
and spawn a fresh implementation subagent with the same handoff and that list. If that
|
|
189
|
+
audit starts with `Status: blocked`, use the route-out rules instead. A subagent
|
|
190
|
+
that already returned cannot pick up consent recorded after it was spawned.
|
|
191
|
+
|
|
161
192
|
`Status: blocked` means the audit has no baseline to read. A blocked audit compared
|
|
162
193
|
nothing and proved nothing changed. It is not a preservation failure: do not report a
|
|
163
194
|
protected path as changed. Report the printed reason and use the route-out rules.
|
|
164
195
|
|
|
165
|
-
An audit that has not passed never continues the run by itself.
|
|
166
|
-
|
|
196
|
+
An audit that has not passed never continues the run by itself. The failed audit before
|
|
197
|
+
implementation that supplies the authorized list is the one exception. Continue only after
|
|
198
|
+
an acceptance clears it, or route out. Do not send an audit result to a repair worker.
|
|
167
199
|
|
|
168
200
|
## Create the approved Learning Container
|
|
169
201
|
|
|
@@ -172,7 +204,7 @@ create it now, from the target app directory. The developer approved the id befo
|
|
|
172
204
|
made, so this is the first point at which it can be created:
|
|
173
205
|
|
|
174
206
|
```text
|
|
175
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
207
|
+
npx --prefer-offline --yes copilotkit@4.17.0 learning containers create --id <id> --name <name> --json
|
|
176
208
|
```
|
|
177
209
|
|
|
178
210
|
Pass the id the plan names. Take the name from the selected project's own display name, so
|
|
@@ -188,26 +220,29 @@ hold.
|
|
|
188
220
|
Then report that the container is settled, before any edit:
|
|
189
221
|
|
|
190
222
|
```text
|
|
191
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
223
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase container-settled
|
|
192
224
|
```
|
|
193
225
|
|
|
194
226
|
Where the plan names a container the platform already held, report the same checkpoint and
|
|
195
227
|
create nothing. Where the plan names no container, skip this section.
|
|
196
228
|
|
|
229
|
+
## Implement the plan
|
|
230
|
+
|
|
197
231
|
Report the plan this run is about to implement:
|
|
198
232
|
|
|
199
233
|
```text
|
|
200
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
234
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase plan-written
|
|
201
235
|
```
|
|
202
236
|
|
|
203
237
|
Spawn one implementation subagent. Tell it to run
|
|
204
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
238
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read subagent/implement-and-validate` first and follow
|
|
205
239
|
the prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
206
240
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
207
241
|
and the same handoff. Give it the plan, selected framework, frontend, model, exact target app
|
|
208
242
|
directory, selected documentation URLs, and the
|
|
209
243
|
documentation policy recorded during framework selection or conversion planning. On a
|
|
210
|
-
conversion, also give it the frozen criterion. Give it the protected path list
|
|
244
|
+
conversion, also give it the frozen criterion. Give it the protected path list and the
|
|
245
|
+
authorized list. Require it
|
|
211
246
|
to implement every step in plan order and run the full validation list. Wait for it.
|
|
212
247
|
|
|
213
248
|
One subagent implements the whole plan. Do not divide the work across concurrent subagents,
|
|
@@ -229,11 +264,11 @@ returned. Continue to proof only when that audit passes.
|
|
|
229
264
|
After the selected implementation path passes, report it:
|
|
230
265
|
|
|
231
266
|
```text
|
|
232
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
267
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase build-validated
|
|
233
268
|
```
|
|
234
269
|
|
|
235
270
|
Then run
|
|
236
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
271
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read proof/round-trip`.
|
|
237
272
|
|
|
238
273
|
## Repair rules
|
|
239
274
|
|
|
@@ -250,14 +285,18 @@ implementation path.
|
|
|
250
285
|
Route out only when the failure is not yours to fix. Two endings are open from here, and
|
|
251
286
|
what failed decides which one this run takes.
|
|
252
287
|
|
|
288
|
+
A fix that requires changing the developer's existing agent or frontend always takes the
|
|
289
|
+
unsupported ending below, whatever else it matches.
|
|
290
|
+
|
|
253
291
|
A run that broke takes the failure ending: the failure is in code this run did not write,
|
|
254
|
-
the same command still fails after three repair attempts,
|
|
255
|
-
`Status: blocked
|
|
256
|
-
not
|
|
292
|
+
the same command still fails after three repair attempts, a result starts with
|
|
293
|
+
`Status: blocked` for a reason other than a file the plan does not name, or the developer
|
|
294
|
+
declined a file the plan does not name, or the run cannot ask them about it. A defect in a
|
|
295
|
+
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
|
|
257
296
|
proved nothing about the stack. In those cases run
|
|
258
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
297
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read stopped/run-failed`.
|
|
259
298
|
|
|
260
299
|
A plan with no path to follow takes the unsupported ending: the fix requires changing the
|
|
261
300
|
developer's existing agent or frontend, or the documentation does not support the plan. In
|
|
262
301
|
those cases run
|
|
263
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
302
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read unsupported/no-validated-path`.
|
|
@@ -12,7 +12,8 @@ the agent, not the surface, and the developer needs to know which they have.
|
|
|
12
12
|
|
|
13
13
|
**Whether this run is complete is decided by the command at the end of this prompt, not
|
|
14
14
|
here.** Run it before you write the summary, and let its output decide which summary you
|
|
15
|
-
write. A run whose surface was never driven is blocked, not complete
|
|
15
|
+
write. A run whose surface was never driven is blocked, not complete, unless it cloned a
|
|
16
|
+
starter and records `skipped-cloned-starter`. For a blocked run, say so in the first
|
|
16
17
|
line, name the evidence the command lists as missing, and do not describe the run as
|
|
17
18
|
finished, working, or ready. Everything else below applies to either outcome.
|
|
18
19
|
|
|
@@ -84,7 +85,7 @@ Name the debugging surface this journey's frontend can reach, rather than the on
|
|
|
84
85
|
of the documentation leads with. For a web frontend it is the CopilotKit Inspector. For
|
|
85
86
|
React Native there is no Inspector: it is a browser overlay built on a DOM custom element,
|
|
86
87
|
and `@copilotkit/react-native` does not ship it. Give a mobile developer
|
|
87
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
88
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 verify --round-trip`, the runtime's own log, the AG-UI
|
|
88
89
|
Event Inspector in the CopilotKit VS Code extension, and the CopilotKit Intelligence
|
|
89
90
|
thread view
|
|
90
91
|
instead. Naming the Inspector to a developer who cannot open it costs them the time it
|
|
@@ -107,14 +108,19 @@ Where the Learning step was skipped because this organization cannot use Learnin
|
|
|
107
108
|
one line and name what was not created. A skip nobody names reads as a container that
|
|
108
109
|
exists, and the developer then waits for insights from a container this run never made.
|
|
109
110
|
|
|
110
|
-
State that the servers remain running after proof
|
|
111
|
+
State that the servers remain running after proof, unless the command at the end of this
|
|
112
|
+
prompt prints `environment_kind: container` or `environment_kind: sandbox`. That run is on
|
|
113
|
+
an isolated host, such as a Docker container or a cloud agent session, which is not a
|
|
114
|
+
Learning Container. The servers end when that host ends, and a `localhost` URL opens on the
|
|
115
|
+
developer's machine only through a forwarded port. Write the items that output lists in
|
|
116
|
+
place of this sentence.
|
|
111
117
|
|
|
112
118
|
Report each thing that slowed this run down. Send at most four reports, worst first. Run
|
|
113
119
|
the friction commands without another developer question. Do not ask the developer about
|
|
114
120
|
telemetry: the command applies the setting they already have.
|
|
115
121
|
|
|
116
122
|
```text
|
|
117
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
123
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
|
|
118
124
|
```
|
|
119
125
|
|
|
120
126
|
Put one or two sentences in `--message`. Pick one category from
|
|
@@ -126,7 +132,7 @@ Pass --docs-path only for a docs-missing or docs-wrong report, naming the page t
|
|
|
126
132
|
is about:
|
|
127
133
|
|
|
128
134
|
```text
|
|
129
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
135
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --category docs-wrong --cost-seconds 300 --docs-path /docs/threads/drawer --message "<sentences>"
|
|
130
136
|
```
|
|
131
137
|
|
|
132
138
|
Give the page's site-relative path or its full URL, with no spaces, query string, or
|
|
@@ -143,14 +149,14 @@ Tell the developer when you send a friction report. Do not quote or summarize th
|
|
|
143
149
|
unless the developer asks. If the CLI says the report was not sent,
|
|
144
150
|
state what it said and continue without another question.
|
|
145
151
|
|
|
146
|
-
When the evidence is gathered, run `npx --prefer-offline --yes copilotkit@4.
|
|
147
|
-
the surface-check outcome the proof subagent returned. Pass exactly one
|
|
148
|
-
one that matches this journey's surface.
|
|
152
|
+
When the evidence is gathered, run `npx --prefer-offline --yes copilotkit@4.17.0 onboard complete`, carrying
|
|
153
|
+
the surface-check outcome the proof subagent returned. Pass exactly one of `--visual-check`
|
|
154
|
+
or `--device-check`, and pass the one that matches this journey's surface.
|
|
149
155
|
|
|
150
156
|
For a web frontend -- React SPA, Next.js, Angular, Vue:
|
|
151
157
|
|
|
152
158
|
```text
|
|
153
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
159
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard complete --visual-check <outcome>
|
|
154
160
|
```
|
|
155
161
|
|
|
156
162
|
The outcome is one of `performed`, `skipped-no-browser-tool`, `skipped-cloned-starter`, or
|
|
@@ -160,7 +166,7 @@ open no browser. It is the one skip that does not block.
|
|
|
160
166
|
For React Native:
|
|
161
167
|
|
|
162
168
|
```text
|
|
163
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
169
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard complete --device-check <outcome>
|
|
164
170
|
```
|
|
165
171
|
|
|
166
172
|
The outcome is one of `performed`, `skipped-no-device`, `skipped-cloned-starter`, or
|
|
@@ -173,7 +179,7 @@ browser-origin CORS, so the flag you pass is how this run states which surface i
|
|
|
173
179
|
For a web frontend, also pass the URL the browser opened:
|
|
174
180
|
|
|
175
181
|
```text
|
|
176
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
182
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard complete --visual-check <outcome> \
|
|
177
183
|
--frontend-url <the url you opened>
|
|
178
184
|
```
|
|
179
185
|
|
|
@@ -183,8 +189,9 @@ name -- and never the host itself. A run that opened the loopback IP literal los
|
|
|
183
189
|
static chunk to a refusal, and the field is how that stops being invisible. Leave the flag
|
|
184
190
|
off for React Native, which opens no URL.
|
|
185
191
|
|
|
186
|
-
Pass the outcome you were given rather than the one you wanted. Anything but `performed`
|
|
187
|
-
prints what the missing check leaves unverified and ends this run
|
|
192
|
+
Pass the outcome you were given rather than the one you wanted. Anything but `performed` or
|
|
193
|
+
`skipped-cloned-starter` prints what the missing check leaves unverified and ends this run
|
|
194
|
+
as blocked. That output
|
|
188
195
|
is the developer's finding, so carry it into the summary rather than restating it as a
|
|
189
196
|
smaller caveat.
|
|
190
197
|
|
|
@@ -192,7 +199,7 @@ If the round trip proved and something after it still blocked this run, add `--b
|
|
|
192
199
|
to the same command:
|
|
193
200
|
|
|
194
201
|
```text
|
|
195
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
202
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard complete --visual-check performed --blocked-by <cause>
|
|
196
203
|
```
|
|
197
204
|
|
|
198
205
|
The cause is one of `inspector` for a debugging surface that did not open,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Prove the existing OSS baseline
|
|
2
2
|
|
|
3
3
|
Do not prove the baseline yourself. Spawn one proof subagent. Tell it to run
|
|
4
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
4
|
+
`npx --prefer-offline --yes copilotkit@4.17.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,30 +17,34 @@ 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.17.0 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
Report the gate whatever it returned.
|
|
24
|
-
and `failed` when it cannot classify the baseline.
|
|
25
|
-
A proof that never ran is `skipped`, not failed. The command prints one line and sends
|
|
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
|
|
26
24
|
nothing else.
|
|
27
25
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
The subagent returns all six results. Report the gate from them this way:
|
|
27
|
+
|
|
28
|
+
- Predicates 1 to 5 true, and predicate 6 passed: `--outcome passed`.
|
|
29
|
+
- Predicates 1 to 5 true, and predicate 6 skipped because the preflight recorded no surface
|
|
30
|
+
control: `--outcome passed`. A skipped predicate 6 does not withhold `both-oss`.
|
|
31
|
+
- Predicates 1 to 5 true, and predicate 6 failed on an available surface:
|
|
32
|
+
`--outcome failed --predicate 6`. That is a baseline failure, not a skip.
|
|
33
|
+
- Any of predicates 1 to 5 failed: `--outcome failed --predicate <the first that failed>`.
|
|
34
|
+
- The proof never ran: `--outcome skipped`.
|
|
35
|
+
|
|
32
36
|
A passed gate takes no predicate.
|
|
33
37
|
|
|
34
38
|
Do not change project files before this proof ends. Starting existing development
|
|
35
39
|
processes and their ignored runtime files is allowed.
|
|
36
40
|
|
|
37
41
|
If the subagent proves the `both-oss` predicate, keep its evidence with the plan and run
|
|
38
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
42
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read conversion/plan`. That project already works.
|
|
39
43
|
What it needs is the conversion, not a build.
|
|
40
44
|
|
|
41
45
|
If the proof does not establish the baseline, record the starting state
|
|
42
46
|
`both-copilotkit-unproved` and run
|
|
43
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
47
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read credentials/plan`. This prompt is served
|
|
44
48
|
whenever a project looks like an OSS integration, so a baseline that did not prove is an
|
|
45
49
|
ordinary starting state rather than a failure. Keep the failing predicate with the plan.
|
|
46
50
|
|
|
@@ -54,5 +58,5 @@ and the plan preserves it rather than repeating it.
|
|
|
54
58
|
|
|
55
59
|
If it cannot identify the running process safely, exposes a secret, or finds a baseline
|
|
56
60
|
failure that cannot be classified, run
|
|
57
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
61
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read stopped/run-failed`. None of those mean the
|
|
58
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.17.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
|
|
@@ -14,8 +14,8 @@ drives the surface and cannot see your environment, so without that finding it s
|
|
|
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
16
|
|
|
17
|
-
A run that cloned a starter is the exception. Tell that subagent
|
|
18
|
-
`verify --round-trip
|
|
17
|
+
A run that cloned a starter is the exception. Tell that subagent that this run cloned a
|
|
18
|
+
starter, to finish after `verify --round-trip`, and to open no browser. The cloned code is what this repository's
|
|
19
19
|
starter smoke jobs already drive on every change, so opening a browser re-proves in the
|
|
20
20
|
developer's run what those jobs prove before the starter ships, and it is the most
|
|
21
21
|
expensive step in this setup. `verify --round-trip` reads the answer back off the thread,
|
|
@@ -33,13 +33,13 @@ pass the time.
|
|
|
33
33
|
Report each attempt at the journey as it ends, counting from one:
|
|
34
34
|
|
|
35
35
|
```text
|
|
36
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
36
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase journey-attempted --attempt 1
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
Record what that proof returned before you route on it:
|
|
40
40
|
|
|
41
41
|
```text
|
|
42
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
42
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. The
|
|
@@ -47,7 +47,7 @@ command prints one line and sends nothing else. Where a repair cycle runs the pr
|
|
|
47
47
|
record each attempt as it ends.
|
|
48
48
|
|
|
49
49
|
For every protected-path audit in this prompt, run
|
|
50
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
50
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard audit` from the target app directory. If its result
|
|
51
51
|
starts with `Status: blocked`, report the printed reason and use the route-out rules below.
|
|
52
52
|
A blocked audit proved nothing changed and is not a preservation failure. If a
|
|
53
53
|
protected-path audit reports a changed path, decide it the way the implementation prompt
|
|
@@ -56,7 +56,7 @@ returns none, so a finding with no Files changed section to test against routes
|
|
|
56
56
|
path one of those sections names is this run's own change and routes out too. Accept a
|
|
57
57
|
path only when a section this run collected covers the step that wrote it and does not
|
|
58
58
|
name it:
|
|
59
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
59
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-external --path <path>`. Then run
|
|
60
60
|
the audit again and name the path in the closing summary. Never repair, reset, or revert a
|
|
61
61
|
protected path.
|
|
62
62
|
|
|
@@ -64,14 +64,15 @@ That holds for a repair cycle too. When the fix for a failing check lands on a p
|
|
|
64
64
|
path, the path is still the developer's, however right the diagnosis is and however small
|
|
65
65
|
the fix. Reading the file never settles who wrote it. Ask the developer to allow the
|
|
66
66
|
change, and record their answer with
|
|
67
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
67
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
|
|
68
68
|
or route out. Never repair it, and never send it to a repair worker.
|
|
69
69
|
|
|
70
70
|
If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
|
|
71
71
|
`proof/complete` only if that audit passes. After the audit passes, run
|
|
72
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
72
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read proof/complete`. A performed surface outcome with
|
|
73
73
|
the full round trip is core success even if a continued-development tool fails. A skipped
|
|
74
|
-
surface outcome still enters `proof/complete` so the CLI records the blocked result.
|
|
74
|
+
surface outcome still enters `proof/complete` so the CLI records the blocked result.
|
|
75
|
+
`skipped-cloned-starter` is the exception: the CLI records that run as complete. Do not
|
|
75
76
|
describe a skipped surface as proved. Keep the Skills and MCP results separate from the proof
|
|
76
77
|
result.
|
|
77
78
|
|
|
@@ -85,14 +86,16 @@ developer that a framework and frontend that just worked are unsupported, and ha
|
|
|
85
86
|
stop report instead of the application they now have.
|
|
86
87
|
|
|
87
88
|
If the round trip fails, decide which kind of failure it is before you route. The proof
|
|
88
|
-
subagent can repair only project-owned processes, ports, and request options
|
|
89
|
+
subagent can repair only project-owned processes, ports, and request options, and it can
|
|
90
|
+
make the credential write that its Step 4 names for `api_key_loadable_by_app`. A failure caused
|
|
89
91
|
by a source, configuration, dependency, or tracked-file change is a defect in the new work.
|
|
90
92
|
|
|
91
|
-
Retry the proof subagent only for a project-owned process, port,
|
|
93
|
+
Retry the proof subagent only for a project-owned process, port, request-option, or
|
|
94
|
+
`api_key_loadable_by_app` failure.
|
|
92
95
|
Give it the failure evidence and the failed attempt's pinned Step 1 record. Wait for the
|
|
93
96
|
proof subagent after each operational repair.
|
|
94
|
-
If the result passes, use the passed-result route above.
|
|
95
|
-
|
|
97
|
+
If the result passes, use the passed-result route above. Run the proof at most three times
|
|
98
|
+
in total. Use the route-out rules below for a blocked or third failed result.
|
|
96
99
|
|
|
97
100
|
Enter the code-repair branch only for a source, configuration, dependency, or tracked-file
|
|
98
101
|
defect.
|
|
@@ -116,8 +119,9 @@ secret values. Require its result to start with `Status: passed`, `Status: faile
|
|
|
116
119
|
`Status: blocked`, followed by Files changed, Validation, and Blockers. Otherwise, send the
|
|
117
120
|
defect to the implementation subagent that validated the planned implementation path. Give it
|
|
118
121
|
the approved plan and proof evidence. Treat the worker that gets the defect as the repair worker.
|
|
119
|
-
Give the repair worker the protected path list
|
|
120
|
-
|
|
122
|
+
Give the repair worker the protected path list and the authorized list from the
|
|
123
|
+
`Authorized to modify:` block of the latest audit. Do not let a generated or repaired path overlap a
|
|
124
|
+
protected path, other than an authorized path itself.
|
|
121
125
|
|
|
122
126
|
Require the full validation list to pass again. Wait for the repair worker to finish.
|
|
123
127
|
Continue only if its result starts with `Status: passed`. If the repair worker returns
|
|
@@ -127,7 +131,14 @@ implementation worker for a planned implementation path. Use the repair worker f
|
|
|
127
131
|
path. Wait for the validator to finish. If its result starts with `Status: passed`, continue.
|
|
128
132
|
If the validator returns `Status: failed`, return its evidence to the repair
|
|
129
133
|
worker. Repeat repair and validation at most three times. If either worker returns
|
|
130
|
-
`Status: blocked`, use the route-out rules below.
|
|
134
|
+
`Status: blocked`, use the route-out rules below. The exception is an implementation worker
|
|
135
|
+
that returns blocked because the repair needs a file the plan does not name. Handle it the
|
|
136
|
+
way `implementation/build-and-validate` does: pause and ask the developer, add the file to
|
|
137
|
+
the handoff if they allow it, and use the route-out rules below if they decline. For a
|
|
138
|
+
protected file, record their answer with `--authorize --unplanned` and run the audit again
|
|
139
|
+
first. Then spawn a fresh repair worker with this repair handoff, not the whole-plan
|
|
140
|
+
implementation handoff: the plan, the proof evidence, the protected path list, and the
|
|
141
|
+
authorized list from that audit.
|
|
131
142
|
|
|
132
143
|
Run the protected-path audit again after validation passes. Continue only if its result
|
|
133
144
|
starts with `Status: passed`.
|
|
@@ -136,7 +147,7 @@ Restart each project-owned process changed by the repair. Report the cycle, coun
|
|
|
136
147
|
one:
|
|
137
148
|
|
|
138
149
|
```text
|
|
139
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
150
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase repair-attempted --attempt 1
|
|
140
151
|
```
|
|
141
152
|
|
|
142
153
|
Then spawn a fresh proof subagent
|
|
@@ -149,12 +160,12 @@ its grounding check then speaks about a question the failed attempt never asked.
|
|
|
149
160
|
Wait for the fresh proof subagent to finish.
|
|
150
161
|
If the fresh proof result starts with `Status: passed`, run the protected-path audit and use
|
|
151
162
|
the passed-result route above. If it starts with `Status: failed`, begin the next bounded
|
|
152
|
-
repair cycle. Use the route-out rules below for `Status: blocked`.
|
|
153
|
-
|
|
163
|
+
repair cycle. Use the route-out rules below for `Status: blocked`. After three repair and
|
|
164
|
+
proof cycles, use the route-out rules below.
|
|
154
165
|
|
|
155
166
|
Route out only when the failure is not yours to fix, when the same proof still fails after
|
|
156
167
|
three attempts, or when no evidence of the round trip can be produced. In those cases run
|
|
157
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
168
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read stopped/run-failed`. The stack is supported:
|
|
158
169
|
this run did not finish, which is a different ending and a different report. All three are
|
|
159
170
|
about the round trip itself. A round trip that proved is not one of them, whatever failed
|
|
160
171
|
after it.
|
|
@@ -165,7 +176,7 @@ friction command without another developer question: it applies the telemetry se
|
|
|
165
176
|
developer already set.
|
|
166
177
|
|
|
167
178
|
```text
|
|
168
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
179
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
169
180
|
```
|
|
170
181
|
|
|
171
182
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -28,7 +28,8 @@ This rule covers the whole run, here and in every later prompt.
|
|
|
28
28
|
|
|
29
29
|
In this graph, stop means one thing: end the run through a named terminal. You send the
|
|
30
30
|
stop report `authenticate/start` describes, then read the terminal that the rule names.
|
|
31
|
-
|
|
31
|
+
Where a rule names a terminal, read that terminal first: if it sends the report itself or
|
|
32
|
+
says to file none, follow it, so the run sends one report at most. Nothing else is a stop.
|
|
32
33
|
|
|
33
34
|
A pause keeps the run open. "End your turn and wait for" something means: end this turn,
|
|
34
35
|
and continue when that thing arrives. A pause waits for one of two things:
|
|
@@ -43,7 +44,7 @@ Before you end your turn to wait for the developer where the prompt states no de
|
|
|
43
44
|
report the pause:
|
|
44
45
|
|
|
45
46
|
```text
|
|
46
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
47
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase awaiting-developer
|
|
47
48
|
```
|
|
48
49
|
|
|
49
50
|
When the answer or the result arrives, continue from the step that paused. Do not read an
|
|
@@ -63,7 +64,7 @@ Both research subagents failing means this harness has no working subagent at al
|
|
|
63
64
|
is worth recording once:
|
|
64
65
|
|
|
65
66
|
```text
|
|
66
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
67
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase delegation-unavailable
|
|
67
68
|
```
|
|
68
69
|
|
|
69
70
|
Then say once, in your own words, that this environment has no working subagents, so you
|
|
@@ -76,7 +77,7 @@ Before you ask the developer any setup question, finish every read-only investig
|
|
|
76
77
|
preflight check in this section.
|
|
77
78
|
|
|
78
79
|
Prepare two research assignments. Give each research subagent one assignment. Tell it to run
|
|
79
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
80
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read subagent/inspect-repository` first and follow the
|
|
80
81
|
prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
81
82
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
82
83
|
and the same handoff. Require only its assigned packet.
|
|
@@ -90,7 +91,7 @@ Start both research subagents in parallel:
|
|
|
90
91
|
Report that both subagents started:
|
|
91
92
|
|
|
92
93
|
```text
|
|
93
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
94
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase research-dispatched
|
|
94
95
|
```
|
|
95
96
|
|
|
96
97
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -99,8 +100,8 @@ failed step.
|
|
|
99
100
|
The research is under way. Continue to the surface-control preflight while it runs:
|
|
100
101
|
|
|
101
102
|
```text
|
|
102
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
103
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard read research/preflight
|
|
103
104
|
```
|
|
104
105
|
|
|
105
106
|
If inspection stops onboarding, run
|
|
106
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
107
|
+
`npx --prefer-offline --yes copilotkit@4.17.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.17.0 onboard checkpoint --phase research-returned
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -54,7 +54,7 @@ worker a focused directory check. Continue only when both workers return the sam
|
|
|
54
54
|
app directory. Both results must start with `Status: passed`. Otherwise, use the stop route.
|
|
55
55
|
|
|
56
56
|
When both research results are merged, run
|
|
57
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
57
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read research/route`.
|
|
58
58
|
|
|
59
59
|
If inspection stops onboarding, run
|
|
60
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
60
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read stopped/run-failed`.
|