copilotkit 4.19.0 → 4.20.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 +18 -9
- package/cli-build-info.json +7 -7
- package/index.js +3127 -2335
- package/onboarding/index.json +1 -1
- package/onboarding/prompts/authenticate/start.md +26 -28
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +7 -7
- package/onboarding/prompts/credentials/plan.md +22 -22
- package/onboarding/prompts/credentials/settle-credentials.md +7 -5
- package/onboarding/prompts/credentials/write-plan.md +9 -6
- package/onboarding/prompts/fallback/best-effort.md +8 -8
- package/onboarding/prompts/feature/a2ui/implement.md +6 -12
- package/onboarding/prompts/feature/a2ui/proof.md +7 -18
- package/onboarding/prompts/feature/a2ui/start.md +9 -18
- package/onboarding/prompts/feature/channels/implement.md +12 -21
- package/onboarding/prompts/feature/channels/proof.md +7 -18
- package/onboarding/prompts/feature/channels/start.md +14 -21
- package/onboarding/prompts/feature/chat-suggestions/implement.md +6 -12
- package/onboarding/prompts/feature/chat-suggestions/proof.md +7 -18
- package/onboarding/prompts/feature/chat-suggestions/start.md +9 -18
- package/onboarding/prompts/feature/complete.md +4 -2
- package/onboarding/prompts/feature/learning/implement.md +13 -38
- package/onboarding/prompts/feature/learning/proof.md +8 -19
- package/onboarding/prompts/feature/learning/start.md +9 -18
- package/onboarding/prompts/feature/open-generative-ui/implement.md +6 -12
- package/onboarding/prompts/feature/open-generative-ui/proof.md +7 -18
- package/onboarding/prompts/feature/open-generative-ui/start.md +9 -18
- package/onboarding/prompts/feature/realtime-sync/implement.md +7 -13
- package/onboarding/prompts/feature/realtime-sync/proof.md +7 -18
- package/onboarding/prompts/feature/realtime-sync/start.md +8 -17
- package/onboarding/prompts/feature/rich-threads/implement.md +8 -14
- package/onboarding/prompts/feature/rich-threads/proof.md +7 -18
- package/onboarding/prompts/feature/rich-threads/start.md +8 -17
- package/onboarding/prompts/feature/stop.md +3 -3
- package/onboarding/prompts/feature/voice/implement.md +6 -12
- package/onboarding/prompts/feature/voice/proof.md +7 -18
- package/onboarding/prompts/feature/voice/start.md +9 -18
- 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 +3 -3
- package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +3 -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 +24 -40
- package/onboarding/prompts/proof/complete.md +86 -204
- package/onboarding/prompts/proof/oss-baseline.md +5 -5
- package/onboarding/prompts/proof/round-trip.md +9 -22
- package/onboarding/prompts/research/gather.md +5 -14
- package/onboarding/prompts/research/merge.md +2 -11
- package/onboarding/prompts/research/preflight.md +2 -8
- package/onboarding/prompts/research/route.md +5 -5
- package/onboarding/prompts/starter/clone.md +5 -15
- package/onboarding/prompts/stopped/run-failed.md +2 -2
- package/onboarding/prompts/subagent/create-plan.md +16 -1
- package/onboarding/prompts/subagent/inspect-repository.md +1 -1
- package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
- package/onboarding/prompts/subagent/prove-round-trip.md +28 -20
- package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
- package/package.json +1 -1
- package/release/release-tool.js +1 -1
|
@@ -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.20.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,13 +67,17 @@ 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.20.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
|
|
74
74
|
refused. Continue only if every result starts with `Status: passed`. If the plan listed
|
|
75
75
|
nothing there, skip this section.
|
|
76
76
|
|
|
77
|
+
Do not authorize a path the plan lists under `Files the run writes itself`. The CLI refuses
|
|
78
|
+
`--authorize` for `.env` and `.copilotkit/project.json`, because this run writes them. A
|
|
79
|
+
copied model key is recorded with `--accept-credential`, after the copy.
|
|
80
|
+
|
|
77
81
|
The implementation subagent cannot change a protected path unless it has the authorized
|
|
78
82
|
list. Take that list from the CLI rather than from the plan: run `onboard audit` after the
|
|
79
83
|
last authorization, and copy the paths under `Authorized to modify:`. An audit that passes
|
|
@@ -95,7 +99,7 @@ No implementation step has run yet, so the change is theirs rather than this run
|
|
|
95
99
|
consent over it by adding one flag:
|
|
96
100
|
|
|
97
101
|
```text
|
|
98
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
102
|
+
npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>" --with-prior-change
|
|
99
103
|
```
|
|
100
104
|
|
|
101
105
|
The flag records their change as drift beside the consent, so the closing report names both
|
|
@@ -115,7 +119,7 @@ audit below describes, rather than use this section.
|
|
|
115
119
|
Run the audit from the target app directory:
|
|
116
120
|
|
|
117
121
|
```text
|
|
118
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
122
|
+
npx --prefer-offline --yes copilotkit@4.20.0 onboard audit
|
|
119
123
|
```
|
|
120
124
|
|
|
121
125
|
It compares every protected path with the digest the CLI captured for it. Its result starts
|
|
@@ -150,14 +154,14 @@ A path that no Files changed section names changed outside the run, and it is th
|
|
|
150
154
|
developer's own file. Accept it by name:
|
|
151
155
|
|
|
152
156
|
```text
|
|
153
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
157
|
+
npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --accept-external --path <path>
|
|
154
158
|
```
|
|
155
159
|
|
|
156
160
|
A changed env file is its own case. This run asked the developer to place a credential
|
|
157
161
|
there, so it takes the credential route rather than this one:
|
|
158
162
|
|
|
159
163
|
```text
|
|
160
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
164
|
+
npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --accept-credential --path <path>
|
|
161
165
|
```
|
|
162
166
|
|
|
163
167
|
That route proves no recorded credential was lost, instead of taking the run's word that it
|
|
@@ -176,7 +180,7 @@ neither does a one-line fix. Never repair, reset, or revert it. Ask the develope
|
|
|
176
180
|
the change, and record the answer they give:
|
|
177
181
|
|
|
178
182
|
```text
|
|
179
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
183
|
+
npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
180
184
|
```
|
|
181
185
|
|
|
182
186
|
Use it only for an answer a developer actually gave. It records the consent as taken
|
|
@@ -206,12 +210,12 @@ an acceptance clears it, or route out. Do not send an audit result to a repair w
|
|
|
206
210
|
|
|
207
211
|
## Create the approved Learning Container
|
|
208
212
|
|
|
209
|
-
Where the approved plan names a Learning Container id
|
|
210
|
-
|
|
211
|
-
|
|
213
|
+
Where the approved plan names a Learning Container id, create it now, from the target app
|
|
214
|
+
directory. The developer approved the id before it was made, so this is the first point at
|
|
215
|
+
which it can be created:
|
|
212
216
|
|
|
213
217
|
```text
|
|
214
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
218
|
+
npx --prefer-offline --yes copilotkit@4.20.0 learning containers create --id <id> --name <name> --json
|
|
215
219
|
```
|
|
216
220
|
|
|
217
221
|
Pass the id the plan names. Take the name from the selected project's own display name, so
|
|
@@ -219,30 +223,16 @@ the container reads as this project's in the dashboard. Both flags are required
|
|
|
219
223
|
`--json`: a create that leaves either one out is refused as `NON_INTERACTIVE` rather than
|
|
220
224
|
prompted for, whatever terminal the run has.
|
|
221
225
|
|
|
222
|
-
`LEARNING_CONTAINER_ALREADY_EXISTS` means
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
hold.
|
|
226
|
-
|
|
227
|
-
Then report that the container is settled, before any edit:
|
|
228
|
-
|
|
229
|
-
```text
|
|
230
|
-
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase container-settled
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
Where the plan names a container the platform already held, report the same checkpoint and
|
|
234
|
-
create nothing. Where the plan names no container, skip this section.
|
|
226
|
+
`LEARNING_CONTAINER_ALREADY_EXISTS` means the platform already holds it, because the
|
|
227
|
+
credentials step found it or another run made it. That is a container to reuse, not a
|
|
228
|
+
failure to repair and not a reason to pick a new id. Any other error code: report it and
|
|
229
|
+
stop onboarding, so no run wires a selector to an id the platform does not hold. Where the
|
|
230
|
+
plan names no container, skip this section.
|
|
235
231
|
|
|
236
232
|
## Implement the plan
|
|
237
233
|
|
|
238
|
-
Report the plan this run is about to implement:
|
|
239
|
-
|
|
240
|
-
```text
|
|
241
|
-
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase plan-written
|
|
242
|
-
```
|
|
243
|
-
|
|
244
234
|
Spawn one implementation subagent. Tell it to run
|
|
245
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
235
|
+
`npx --prefer-offline --yes copilotkit@4.20.0 onboard read subagent/implement-and-validate` first and follow
|
|
246
236
|
the prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
247
237
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
248
238
|
and the same handoff. Give it the plan, selected framework, frontend, model, exact target app
|
|
@@ -268,14 +258,8 @@ Run the protected-path audit after the implementation subagent passes. Decide ea
|
|
|
268
258
|
names the same way as above, against the Files changed section that subagent just
|
|
269
259
|
returned. Continue to proof only when that audit passes.
|
|
270
260
|
|
|
271
|
-
After the selected implementation path passes, report it:
|
|
272
|
-
|
|
273
|
-
```text
|
|
274
|
-
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase build-validated
|
|
275
|
-
```
|
|
276
|
-
|
|
277
261
|
Then run
|
|
278
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
262
|
+
`npx --prefer-offline --yes copilotkit@4.20.0 onboard read proof/round-trip`.
|
|
279
263
|
|
|
280
264
|
## Repair rules
|
|
281
265
|
|
|
@@ -301,9 +285,9 @@ the same command still fails after three repair attempts, a result starts with
|
|
|
301
285
|
declined a file the plan does not name, or the run cannot ask them about it. A defect in a
|
|
302
286
|
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
|
|
303
287
|
proved nothing about the stack. In those cases run
|
|
304
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
288
|
+
`npx --prefer-offline --yes copilotkit@4.20.0 onboard read stopped/run-failed`.
|
|
305
289
|
|
|
306
290
|
A plan with no path to follow takes the unsupported ending: the fix requires changing the
|
|
307
291
|
developer's existing agent or frontend, or the documentation does not support the plan. In
|
|
308
292
|
those cases run
|
|
309
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
293
|
+
`npx --prefer-offline --yes copilotkit@4.20.0 onboard read unsupported/no-validated-path`.
|
|
@@ -1,233 +1,115 @@
|
|
|
1
1
|
# Close out onboarding
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Do not complete onboarding without this evidence.
|
|
7
|
-
|
|
8
|
-
Report whether the real UI was driven on this journey's own surface -- in a browser for a
|
|
9
|
-
web frontend, on a device for React Native -- using the outcome the proof subagent
|
|
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. 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.
|
|
15
|
-
|
|
16
|
-
**Whether this run is complete is decided by the command at the end of this prompt, not
|
|
17
|
-
here.** Run it before you write the summary, and let its output decide which summary you
|
|
18
|
-
write. A run whose surface was never driven is blocked, not complete, unless it cloned a
|
|
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
|
|
21
|
-
line, name the evidence the command lists as missing, and do not describe the run as
|
|
22
|
-
finished, working, or ready. Everything else below applies to either outcome.
|
|
23
|
-
|
|
24
|
-
Report only the project this run worked in. The summary and every report below describe
|
|
25
|
-
that project and nothing else. Do not name or describe a file outside the project
|
|
26
|
-
directory: not its path, not its contents, not how long a value in it is, not whether it
|
|
27
|
-
holds one. A path the developer named is theirs to give this run, not this run's to
|
|
28
|
-
record. A friction report leaves the machine, and a completion summary is durable. The
|
|
29
|
-
file's owner chose neither.
|
|
30
|
-
|
|
31
|
-
The summary is the developer's handoff, not this run's retrospective. Report what was
|
|
32
|
-
built, the round trip and its evidence, the validation commands, where the evidence is,
|
|
33
|
-
and how to start it again. Report a failed check as part of that evidence. Say nothing
|
|
34
|
-
about what this run found awkward in the onboarding graph, the documentation, or the CLI.
|
|
35
|
-
A defect this run hit belongs in the summary only as the thing the developer must do
|
|
36
|
-
about it: keep this version pin, wire this constructor, run this build. It never appears
|
|
37
|
-
as an account of hitting it. No count of what went wrong, no list of fixes made along the
|
|
38
|
-
way, no argument that a failed check is not a defect.
|
|
39
|
-
|
|
40
|
-
Where this run connected and proved Rich Threads, explain in your own words that they
|
|
41
|
-
preserve messages, generative UI, tool interactions, and application state so users
|
|
42
|
-
can return to earlier work. Explain that these interactions can also provide evidence
|
|
43
|
-
for Automatic Learning. Describe only the capabilities supported by this run's result.
|
|
44
|
-
This is required content within the handoff, not a separate message or a new check.
|
|
45
|
-
|
|
46
|
-
The handoff must include:
|
|
47
|
-
|
|
48
|
-
- The URL of the running app.
|
|
49
|
-
- The command that starts the app in the future.
|
|
50
|
-
- The debugging surface this journey's frontend can reach, named below.
|
|
51
|
-
- How to use https://intelligence.copilotkit.ai to manage the CopilotKit Intelligence
|
|
52
|
-
installation. Do not open it. This item makes the developer aware the dashboard is
|
|
53
|
-
there, and it is a sentence to write rather than a check to perform. Nothing in this
|
|
54
|
-
graph gates on the dashboard, so a dashboard this run never opened is not a finding,
|
|
55
|
-
not a caveat, and not a blocker. Where this run settled a Learning Container, tell the
|
|
56
|
-
developer they can use their project there to follow progress, review Insights and
|
|
57
|
-
supporting conversations, and approve proposed Skills as they become available.
|
|
58
|
-
- What changed since the developer approved the plan. Name every path, version, or step
|
|
59
|
-
the run departed from, and why. A deviation can be the right call and still has to
|
|
60
|
-
reach the person who approved the thing it departed from. Where nothing departed, say
|
|
61
|
-
that in one line rather than leaving the item out.
|
|
62
|
-
- Every change to the existing agent's behavior: its system prompt or instructions, its
|
|
63
|
-
tools or what those tools do, its model or provider configuration, or its memory or
|
|
64
|
-
state handling. Name each one, name the file, and say the developer approved it. Where
|
|
65
|
-
none of them changed, write `none` on that line rather than leaving the item out. Such a
|
|
66
|
-
change answers differently everywhere the agent is used, not only in CopilotKit, and the
|
|
67
|
-
developer is the only one who can tell whether that is wanted.
|
|
68
|
-
- The process IDs and stop commands for the running agent and frontend.
|
|
69
|
-
- The `@copilotkit/*` versions this conversion changed, and what they were before.
|
|
70
|
-
- On a conversion, the criterion this run was judged against, in the words the run was
|
|
71
|
-
given.
|
|
72
|
-
- The Learning Container this run settled, or the fact that Learning is not available to
|
|
73
|
-
this organization and no container was created.
|
|
74
|
-
- Any path this run created that git does not ignore, and what to do with each.
|
|
75
|
-
- Any protected path this run accepted as changed from outside it, and what changed. The
|
|
76
|
-
command at the end of this prompt prints each one, so copy them from its output rather
|
|
77
|
-
than from memory. This run did not change them and cannot say what did, so the developer
|
|
78
|
-
decides what to do about each.
|
|
79
|
-
|
|
80
|
-
A run leaves paths beside the credential file. Tool output such as `.playwright-mcp/` and
|
|
81
|
-
`.langgraph_api/` is regenerable, so the developer normally wants it ignored.
|
|
82
|
-
`.copilotkit/` is not debris: `project.json` and `channels.json` are the project's own
|
|
83
|
-
declared state and belong in the commit, while `.copilotkit/artifacts/` holds regenerable
|
|
84
|
-
manifests and does not. Name each path and say which of the two it is. Do not add an
|
|
85
|
-
ignore line for any of them yourself. None of these carries a secret, unlike the
|
|
86
|
-
credential path, so the developer decides.
|
|
87
|
-
|
|
88
|
-
Name the debugging surface this journey's frontend can reach, rather than the one the rest
|
|
89
|
-
of the documentation leads with. For a web frontend it is the CopilotKit Inspector. For
|
|
90
|
-
React Native there is no Inspector: it is a browser overlay built on a DOM custom element,
|
|
91
|
-
and `@copilotkit/react-native` does not ship it. Give a mobile developer
|
|
92
|
-
`npx --prefer-offline --yes copilotkit@4.19.0 verify --round-trip`, the runtime's own log, the AG-UI
|
|
93
|
-
Event Inspector in the CopilotKit VS Code extension, and the CopilotKit Intelligence
|
|
94
|
-
thread view
|
|
95
|
-
instead. Naming the Inspector to a developer who cannot open it costs them the time it
|
|
96
|
-
takes to conclude their own wiring is broken.
|
|
97
|
-
|
|
98
|
-
Where this run settled a Learning Container, explain in your own words that new
|
|
99
|
-
conversations are routed to it, where Automatic Learning can find recurring patterns
|
|
100
|
-
and propose reusable Skills to help the agent improve. The developer controls which
|
|
101
|
-
Skills get approved. Explain that Learning results appear as new conversations provide
|
|
102
|
-
enough evidence.
|
|
103
|
-
|
|
104
|
-
These are required explanations within the existing handoff, not fixed wording or
|
|
105
|
-
additional actions. Describe only the setup supported by this run's evidence. Do not
|
|
106
|
-
claim this run produced Insights or Skills or configured automatic Skill delivery
|
|
107
|
-
unless its evidence proves that. If no container was configured, report the actual
|
|
108
|
-
reason and retain the project-management destination without implying that Learning
|
|
109
|
-
is collecting evidence.
|
|
110
|
-
|
|
111
|
-
Where the Learning step was skipped because this organization cannot use Learning, say so in
|
|
112
|
-
one line and name what was not created. A skip nobody names reads as a container that
|
|
113
|
-
exists, and the developer then waits for insights from a container this run never made.
|
|
114
|
-
|
|
115
|
-
State that the servers remain running after proof, unless the command at the end of this
|
|
116
|
-
prompt prints `environment_kind: container` or `environment_kind: sandbox`. That run is on
|
|
117
|
-
an isolated host, such as a Docker container or a cloud agent session, which is not a
|
|
118
|
-
Learning Container. The servers end when that host ends, and a `localhost` URL opens on the
|
|
119
|
-
developer's machine only through a forwarded port. Write the items that output lists in
|
|
120
|
-
place of this sentence.
|
|
121
|
-
|
|
122
|
-
Report each thing that slowed this run down. Send at most four reports, worst first. The
|
|
123
|
-
friction commands follow the telemetry setting the developer already chose, so they need no
|
|
124
|
-
separate question.
|
|
125
|
-
|
|
126
|
-
```text
|
|
127
|
-
npx --prefer-offline --yes copilotkit@4.19.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
Put one or two sentences in `--message`. Pick one category from
|
|
131
|
-
docs-missing, docs-wrong, docs-sequential, cli-gap, sdk-gap, environment,
|
|
132
|
-
port-collision, credential, validation-loop, and other. For the seconds, give your
|
|
133
|
-
own estimate of what that one papercut cost this run.
|
|
134
|
-
|
|
135
|
-
Pass --docs-path only for a docs-missing or docs-wrong report, naming the page the report
|
|
136
|
-
is about:
|
|
137
|
-
|
|
138
|
-
```text
|
|
139
|
-
npx --prefer-offline --yes copilotkit@4.19.0 onboard friction --category docs-wrong --cost-seconds 300 --docs-path /docs/threads/drawer --message "<sentences>"
|
|
140
|
-
```
|
|
3
|
+
Send the friction reports first, then run `onboard complete`, then write the handoff. The
|
|
4
|
+
command decides whether this run is complete, and it prints the facts the handoff carries.
|
|
141
5
|
|
|
142
|
-
|
|
143
|
-
fragment. A report that names its page can be counted against that page. A report that
|
|
144
|
-
describes the page in prose cannot. Leave the flag off for every other category, and leave
|
|
145
|
-
it off when no single page is at fault.
|
|
6
|
+
## What the reports can say
|
|
146
7
|
|
|
147
|
-
|
|
148
|
-
that
|
|
149
|
-
|
|
150
|
-
|
|
8
|
+
Report only the project this run worked in. The handoff and every friction report describe
|
|
9
|
+
that project and nothing else. Do not name or describe a file outside the project
|
|
10
|
+
directory. That covers its path, its contents, how long a value in it is, and whether it
|
|
11
|
+
holds a value at all. A path the developer named is theirs to give this run, not this run's to
|
|
12
|
+
record. A friction report leaves the machine, and the handoff is durable.
|
|
151
13
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
14
|
+
The handoff is the developer's handoff, not this run's retrospective. Say nothing about
|
|
15
|
+
what this run found awkward in the onboarding graph, the documentation, or the CLI. A
|
|
16
|
+
defect this run hit appears only as the thing the developer must do about it. Give no
|
|
17
|
+
count of what went wrong, no list of fixes made along the way, and no argument that a
|
|
18
|
+
failed check is not a defect. Report a failed check as part of the evidence.
|
|
155
19
|
|
|
156
|
-
|
|
157
|
-
the surface-check outcome the proof subagent returned. Pass exactly one of `--visual-check`
|
|
158
|
-
or `--device-check`, and pass the one that matches this journey's surface.
|
|
20
|
+
## Report friction
|
|
159
21
|
|
|
160
|
-
|
|
22
|
+
Report each thing that slowed this run down. Send at most four reports, worst first. The
|
|
23
|
+
friction commands follow the telemetry setting the developer already chose, so they need no
|
|
24
|
+
separate question.
|
|
161
25
|
|
|
162
26
|
```text
|
|
163
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
27
|
+
npx --prefer-offline --yes copilotkit@4.20.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
|
|
164
28
|
```
|
|
165
29
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
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.
|
|
173
|
-
|
|
174
|
-
For React Native:
|
|
175
|
-
|
|
176
|
-
```text
|
|
177
|
-
npx --prefer-offline --yes copilotkit@4.19.0 onboard complete --device-check <outcome>
|
|
178
|
-
```
|
|
30
|
+
Put one or two sentences in `--message`. Pick one category from docs-missing, docs-wrong,
|
|
31
|
+
docs-sequential, cli-gap, sdk-gap, environment, port-collision, credential,
|
|
32
|
+
validation-loop, and other. For the seconds, give your own estimate of what that one
|
|
33
|
+
papercut cost this run. For a docs-missing or docs-wrong report about one page, add
|
|
34
|
+
`--docs-path <site-relative path or full URL>`, with no spaces, query string, or fragment.
|
|
179
35
|
|
|
180
|
-
|
|
181
|
-
|
|
36
|
+
Send no secrets, source code, logs, or command output. The command refuses a report that
|
|
37
|
+
carries any of those, prints the reason, and exits zero. A refused report is not a failed
|
|
38
|
+
step. Reword it and send it again, or move on. A run that proves a round trip is complete
|
|
39
|
+
whether or not it reported friction. When you send a report, tell the developer. Do not
|
|
40
|
+
quote it unless they ask. If the CLI says the report was not sent, say what it said and go
|
|
41
|
+
on without another question.
|
|
182
42
|
|
|
183
|
-
|
|
184
|
-
proves nothing about a React Native view tree, and a device capture proves nothing about
|
|
185
|
-
browser-origin CORS, so the flag you pass is how this run states which surface it proved.
|
|
43
|
+
## Run the completion
|
|
186
44
|
|
|
187
|
-
|
|
45
|
+
Pass the surface-check outcome the proof subagent returned, not the one you wanted. For a
|
|
46
|
+
web frontend, pass `--visual-check` and the URL the browser opened, unchanged:
|
|
188
47
|
|
|
189
48
|
```text
|
|
190
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
49
|
+
npx --prefer-offline --yes copilotkit@4.20.0 onboard complete --visual-check <outcome> \
|
|
191
50
|
--frontend-url <the url you opened>
|
|
192
51
|
```
|
|
193
52
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
53
|
+
The outcome is one of `performed`, `skipped-no-browser-tool`, `skipped-cloned-starter`,
|
|
54
|
+
or `failed`. For React Native, pass `--device-check` with one of `performed`,
|
|
55
|
+
`skipped-no-device`, `skipped-cloned-starter`, or `failed`, and no URL. Use
|
|
56
|
+
`skipped-cloned-starter` only for a run that cloned a starter and was told to open no
|
|
57
|
+
browser. Use `skipped-no-browser-tool` for a run with no browser tool loaded in this
|
|
58
|
+
session.
|
|
199
59
|
|
|
200
|
-
|
|
60
|
+
`skipped-cloned-starter` does not block. `skipped-no-browser-tool` does not block when this
|
|
61
|
+
run recorded a passed round trip with `onboard proof`. The command then prints what no
|
|
62
|
+
browser checked and how to add a browser for the next session. `failed` and
|
|
201
63
|
`skipped-no-device` print what the missing check leaves unverified and end this run as
|
|
202
|
-
blocked.
|
|
203
|
-
is the developer's finding, so carry it into the summary rather than restating it as a
|
|
204
|
-
smaller caveat.
|
|
64
|
+
blocked.
|
|
205
65
|
|
|
206
|
-
If the round trip proved and something after it still blocked this run, add
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
The cause is one of `inspector` for a debugging surface that did not open,
|
|
214
|
-
`plan-excluded-capability` for a capability the approved plan had already excluded for this
|
|
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.
|
|
66
|
+
If the round trip proved and something after it still blocked this run, add
|
|
67
|
+
`--blocked-by <cause>`: `inspector` for a debugging surface that did not open,
|
|
68
|
+
`plan-excluded-capability` for a capability the approved plan excluded,
|
|
69
|
+
`browser-control-unresponsive` for a browser tool that stopped answering during the surface
|
|
70
|
+
check, or `other`. Do not use it for the CopilotKit Intelligence dashboard, which nothing in
|
|
71
|
+
this graph opens.
|
|
218
72
|
|
|
219
73
|
`browser-control-unresponsive` is the one cause that goes with the failed check, because
|
|
220
74
|
nothing drove the frontend:
|
|
221
75
|
|
|
222
76
|
```text
|
|
223
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
77
|
+
npx --prefer-offline --yes copilotkit@4.20.0 onboard complete --visual-check failed --blocked-by browser-control-unresponsive
|
|
224
78
|
```
|
|
225
79
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
80
|
+
## Write the handoff
|
|
81
|
+
|
|
82
|
+
If the command reports the run as blocked, say so in the first line and name the evidence
|
|
83
|
+
it lists as missing. Do not call the run finished, working, or ready. A blocked run is
|
|
84
|
+
still owed the full handoff.
|
|
85
|
+
|
|
86
|
+
For `skipped-no-browser-tool`, the command's list of what no browser checked is that report.
|
|
87
|
+
Give it once, in the section about what was proved, with how to add a browser, as the
|
|
88
|
+
command prints them. Do not add a separate line, heading, or opening sentence about the
|
|
89
|
+
missing browser.
|
|
90
|
+
|
|
91
|
+
Paste the **Handoff facts** block the command printed, as it is. Copy any accepted or
|
|
92
|
+
authorized path it lists too. The dashboard line there only tells the developer where the
|
|
93
|
+
dashboard is. Do not open it. Nothing in this graph gates on the dashboard. Then add what
|
|
94
|
+
only you can say:
|
|
95
|
+
|
|
96
|
+
- What the project now does, and the first thing to try in it.
|
|
97
|
+
- What changed since the developer approved the plan: every path, version, or step the run
|
|
98
|
+
departed from, and why. Where nothing departed, say so in one line. A file the approved
|
|
99
|
+
plan named under `Files the run writes itself` is not a departure, and neither is a
|
|
100
|
+
Skills install the developer declined.
|
|
101
|
+
- Every change to the existing agent's behavior: its instructions, its tools, its model or
|
|
102
|
+
provider, or its memory. Name each one and its file, and say the developer approved it.
|
|
103
|
+
Where none changed, write `none`.
|
|
104
|
+
- On a conversion, the criterion this run was judged against, in the words the run was
|
|
105
|
+
given.
|
|
106
|
+
- Where this run proved Rich Threads: they keep messages, generative UI, tool interactions,
|
|
107
|
+
and application state, so users can return to earlier work. The same conversations give
|
|
108
|
+
Automatic Learning its evidence.
|
|
109
|
+
- Where the facts name a Learning Container: new conversations go to it. Automatic
|
|
110
|
+
Learning can find recurring patterns and propose Skills, and the developer approves which
|
|
111
|
+
ones apply. Results appear as conversations give enough evidence. Claim no Insight or
|
|
112
|
+
Skill this run did not produce.
|
|
113
|
+
|
|
114
|
+
Say that the servers keep running, unless the command printed `environment_kind`. Then
|
|
115
|
+
write the items it lists instead.
|
|
@@ -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.20.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.20.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.20.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.20.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.20.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.20.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
|
|
@@ -32,16 +32,10 @@ https://docs.copilotkit.ai/build-with-agents.md
|
|
|
32
32
|
Wait for the subagent to finish. Its result arrives as a notification. Do not sleep to
|
|
33
33
|
pass the time.
|
|
34
34
|
|
|
35
|
-
Report each attempt at the journey as it ends, counting from one:
|
|
36
|
-
|
|
37
|
-
```text
|
|
38
|
-
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase journey-attempted --attempt 1
|
|
39
|
-
```
|
|
40
|
-
|
|
41
35
|
Record what that proof returned before you route on it:
|
|
42
36
|
|
|
43
37
|
```text
|
|
44
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
38
|
+
npx --prefer-offline --yes copilotkit@4.20.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
45
39
|
```
|
|
46
40
|
|
|
47
41
|
Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. A
|
|
@@ -50,7 +44,7 @@ to record it as `skipped`. The command prints one line and sends nothing else. W
|
|
|
50
44
|
record each attempt as it ends.
|
|
51
45
|
|
|
52
46
|
For every protected-path audit in this prompt, run
|
|
53
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
47
|
+
`npx --prefer-offline --yes copilotkit@4.20.0 onboard audit` from the target app directory. If its result
|
|
54
48
|
starts with `Status: blocked`, report the printed reason and use the route-out rules below.
|
|
55
49
|
A blocked audit proved nothing changed and is not a preservation failure. If a
|
|
56
50
|
protected-path audit reports a changed path, decide it the way the implementation prompt
|
|
@@ -59,7 +53,7 @@ returns none, so a finding with no Files changed section to test against routes
|
|
|
59
53
|
path one of those sections names is this run's own change and routes out too. Accept a
|
|
60
54
|
path only when a section this run collected covers the step that wrote it and does not
|
|
61
55
|
name it:
|
|
62
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
56
|
+
`npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --accept-external --path <path>`. Then run
|
|
63
57
|
the audit again and name the path in the closing summary. Never repair, reset, or revert a
|
|
64
58
|
protected path.
|
|
65
59
|
|
|
@@ -67,12 +61,12 @@ That holds for a repair cycle too. When the fix for a failing check lands on a p
|
|
|
67
61
|
path, the path is still the developer's, however right the diagnosis is and however small
|
|
68
62
|
the fix. Reading the file never settles who wrote it. Ask the developer to allow the
|
|
69
63
|
change, and record their answer with
|
|
70
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
64
|
+
`npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
|
|
71
65
|
or route out. Never repair it, and never send it to a repair worker.
|
|
72
66
|
|
|
73
67
|
If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
|
|
74
68
|
`proof/complete` only if that audit passes. After the audit passes, run
|
|
75
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
69
|
+
`npx --prefer-offline --yes copilotkit@4.20.0 onboard read proof/complete`. A performed surface outcome with
|
|
76
70
|
the full round trip is core success even if a continued-development tool fails. A skipped
|
|
77
71
|
surface outcome still enters `proof/complete`. The CLI records `skipped-cloned-starter` and
|
|
78
72
|
`skipped-no-browser-tool` after a passed round trip as complete, and `skipped-no-device` as
|
|
@@ -152,14 +146,7 @@ authorized list from that audit.
|
|
|
152
146
|
Run the protected-path audit again after validation passes. Continue only if its result
|
|
153
147
|
starts with `Status: passed`.
|
|
154
148
|
|
|
155
|
-
Restart each project-owned process changed by the repair.
|
|
156
|
-
one:
|
|
157
|
-
|
|
158
|
-
```text
|
|
159
|
-
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase repair-attempted --attempt 1
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
Then spawn a fresh proof subagent
|
|
149
|
+
Restart each project-owned process changed by the repair. Then spawn a fresh proof subagent
|
|
163
150
|
with the full original proof handoff, failed proof evidence, and new validation evidence.
|
|
164
151
|
This handoff includes the plan, documentation, policy, current process IDs, ports,
|
|
165
152
|
surface-control state, the continued-tools guide, and the failed attempt's pinned Step 1
|
|
@@ -174,7 +161,7 @@ proof cycles, use the route-out rules below.
|
|
|
174
161
|
|
|
175
162
|
Route out only when the failure is not yours to fix, when the same proof still fails after
|
|
176
163
|
three attempts, or when no evidence of the round trip can be produced. In those cases run
|
|
177
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
164
|
+
`npx --prefer-offline --yes copilotkit@4.20.0 onboard read stopped/run-failed`. The stack is supported:
|
|
178
165
|
this run did not finish, which is a different ending and a different report. All three are
|
|
179
166
|
about the round trip itself. A round trip that proved is not one of them, whatever failed
|
|
180
167
|
after it.
|
|
@@ -185,7 +172,7 @@ friction command follows the telemetry setting the developer already chose, so i
|
|
|
185
172
|
separate question.
|
|
186
173
|
|
|
187
174
|
```text
|
|
188
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
175
|
+
npx --prefer-offline --yes copilotkit@4.20.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
189
176
|
```
|
|
190
177
|
|
|
191
178
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|