copilotkit 4.10.1 → 4.12.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/LICENSE +11 -0
- package/README.md +153 -17
- package/cli-build-info.json +8 -8
- package/index.js +5104 -4673
- package/onboarding/index.json +9 -2
- package/onboarding/prompts/authenticate/start.md +35 -19
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +37 -27
- package/onboarding/prompts/credentials/plan.md +20 -20
- package/onboarding/prompts/credentials/settle-credentials.md +57 -25
- package/onboarding/prompts/credentials/write-plan.md +7 -7
- package/onboarding/prompts/fallback/best-effort.md +9 -8
- package/onboarding/prompts/feature/a2ui/implement.md +7 -7
- package/onboarding/prompts/feature/a2ui/proof.md +6 -6
- package/onboarding/prompts/feature/a2ui/start.md +10 -8
- package/onboarding/prompts/feature/blocked-by-plan.md +32 -0
- package/onboarding/prompts/feature/channels/implement.md +9 -9
- package/onboarding/prompts/feature/channels/proof.md +6 -6
- package/onboarding/prompts/feature/channels/start.md +20 -15
- package/onboarding/prompts/feature/chat-suggestions/implement.md +7 -7
- package/onboarding/prompts/feature/chat-suggestions/proof.md +6 -6
- package/onboarding/prompts/feature/chat-suggestions/start.md +10 -8
- package/onboarding/prompts/feature/complete.md +1 -1
- package/onboarding/prompts/feature/learning/implement.md +73 -14
- package/onboarding/prompts/feature/learning/proof.md +10 -9
- package/onboarding/prompts/feature/learning/start.md +61 -7
- package/onboarding/prompts/feature/open-generative-ui/implement.md +7 -7
- package/onboarding/prompts/feature/open-generative-ui/proof.md +6 -6
- package/onboarding/prompts/feature/open-generative-ui/start.md +10 -8
- package/onboarding/prompts/feature/realtime-sync/implement.md +8 -8
- package/onboarding/prompts/feature/realtime-sync/proof.md +6 -6
- package/onboarding/prompts/feature/realtime-sync/start.md +9 -7
- package/onboarding/prompts/feature/rich-threads/implement.md +9 -9
- package/onboarding/prompts/feature/rich-threads/proof.md +6 -6
- package/onboarding/prompts/feature/rich-threads/start.md +9 -7
- package/onboarding/prompts/feature/stop.md +6 -6
- package/onboarding/prompts/feature/voice/implement.md +7 -7
- package/onboarding/prompts/feature/voice/proof.md +6 -6
- package/onboarding/prompts/feature/voice/start.md +10 -8
- 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 +2 -2
- package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
- 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 +5 -5
- package/onboarding/prompts/frontend/nextjs.md +4 -4
- package/onboarding/prompts/frontend/plan.md +17 -12
- 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 +35 -18
- package/onboarding/prompts/proof/complete.md +26 -17
- package/onboarding/prompts/proof/oss-baseline.md +5 -5
- package/onboarding/prompts/proof/round-trip.md +16 -15
- package/onboarding/prompts/research/gather.md +55 -9
- package/onboarding/prompts/research/route.md +30 -10
- package/onboarding/prompts/starter/clone.md +6 -6
- package/onboarding/prompts/stopped/run-failed.md +32 -3
- package/onboarding/prompts/subagent/create-plan.md +7 -1
- package/onboarding/prompts/subagent/implement-and-validate.md +2 -1
- package/onboarding/prompts/subagent/inspect-repository.md +43 -16
- package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
- package/onboarding/prompts/subagent/prove-round-trip.md +52 -18
- package/onboarding/prompts/unsupported/no-validated-path.md +4 -4
- package/package.json +4 -3
- package/release/release-tool.js +1 -1
|
@@ -9,26 +9,31 @@ the alternatives short. When the frontend is unknown, use this rule: Ask one fro
|
|
|
9
9
|
question that lists the recommendation and valid choices. Do not ask a yes-or-no question
|
|
10
10
|
first. Do not ask about the model or project in this step.
|
|
11
11
|
|
|
12
|
+
If the developer already named Slack or Microsoft Teams, use that choice.
|
|
13
|
+
If the copied prompt came from a Slack or Teams docs page, use that page as the named frontend.
|
|
14
|
+
|
|
12
15
|
If the project has a frontend, preserve it and use the matching route below. If the project
|
|
13
16
|
needs a frontend, show the valid choices and one recommendation based on repository
|
|
14
17
|
evidence, then ask the developer to choose.
|
|
15
18
|
|
|
16
|
-
The valid choices are React SPA, Next.js, Angular, Vue 3,
|
|
17
|
-
in every starting state. Do not show the internal route.
|
|
19
|
+
The valid choices are React SPA, Next.js, Angular, Vue 3, React Native, Slack, and
|
|
20
|
+
Microsoft Teams. They are valid in every starting state. Do not show the internal route.
|
|
18
21
|
|
|
19
22
|
Recommend the frontend the project already uses. Where there is no existing frontend,
|
|
20
|
-
|
|
21
|
-
CopilotKit runtime lives: Next.js hosts it in a route handler, Angular in its SSR
|
|
22
|
-
server, and Vue 3, React SPA and React Native reach a runtime that runs as its own
|
|
23
|
-
process.
|
|
23
|
+
include Slack and Microsoft Teams in the frontend question. They are chat UIs, not
|
|
24
|
+
CopilotKit web apps. Then recommend the one the developer names, and say what each choice implies for where the CopilotKit runtime lives: Next.js hosts it in a route handler, Angular in its SSR server, and Vue 3, React SPA and React Native reach a runtime that runs as its own process. Slack and Microsoft Teams use a long-running Channel host, not a CopilotKit web app.
|
|
24
25
|
|
|
25
26
|
Use exactly one matching internal route:
|
|
26
27
|
|
|
27
|
-
1. React SPA: `npx --yes copilotkit@4.
|
|
28
|
-
2. Next.js: `npx --yes copilotkit@4.
|
|
29
|
-
3. Angular: `npx --yes copilotkit@4.
|
|
30
|
-
4. Vue 3: `npx --yes copilotkit@4.
|
|
31
|
-
5. React Native: `npx --yes copilotkit@4.
|
|
28
|
+
1. React SPA: `npx --yes copilotkit@4.12.0 onboard read frontend/react-spa`
|
|
29
|
+
2. Next.js: `npx --yes copilotkit@4.12.0 onboard read frontend/nextjs`
|
|
30
|
+
3. Angular: `npx --yes copilotkit@4.12.0 onboard read frontend/angular`
|
|
31
|
+
4. Vue 3: `npx --yes copilotkit@4.12.0 onboard read frontend/vue`
|
|
32
|
+
5. React Native: `npx --yes copilotkit@4.12.0 onboard read frontend/react-native`
|
|
33
|
+
6. Slack or Microsoft Teams: `npx --yes copilotkit@4.12.0 onboard read feature/channels/start`
|
|
34
|
+
|
|
35
|
+
If they chose Slack or Microsoft Teams, tell that node which one they chose so it
|
|
36
|
+
does not ask again.
|
|
32
37
|
|
|
33
38
|
If no listed frontend fits, run
|
|
34
|
-
`npx --yes copilotkit@4.
|
|
39
|
+
`npx --yes copilotkit@4.12.0 onboard read unsupported/no-validated-path`.
|
|
@@ -15,7 +15,7 @@ documents `useRenderTool`, which is React Native's own hook for drawing a tool t
|
|
|
15
15
|
already has. That is a different job and needs a tool in the agent.
|
|
16
16
|
|
|
17
17
|
If the pages support the selection, record React Native and these URLs. Then run
|
|
18
|
-
`npx --yes copilotkit@4.
|
|
18
|
+
`npx --yes copilotkit@4.12.0 onboard read credentials/finalize-plan`.
|
|
19
19
|
|
|
20
20
|
If the documentation does not support the selection, run
|
|
21
|
-
`npx --yes copilotkit@4.
|
|
21
|
+
`npx --yes copilotkit@4.12.0 onboard read unsupported/no-validated-path`.
|
|
@@ -11,7 +11,7 @@ not move the agent into it.
|
|
|
11
11
|
- https://docs.copilotkit.ai/react-spa.md
|
|
12
12
|
|
|
13
13
|
If the page supports the selection, record React SPA and this URL. Then run
|
|
14
|
-
`npx --yes copilotkit@4.
|
|
14
|
+
`npx --yes copilotkit@4.12.0 onboard read credentials/finalize-plan`.
|
|
15
15
|
|
|
16
16
|
If the documentation does not support the selection, run
|
|
17
|
-
`npx --yes copilotkit@4.
|
|
17
|
+
`npx --yes copilotkit@4.12.0 onboard read unsupported/no-validated-path`.
|
|
@@ -16,7 +16,7 @@ page above. Vue has its own `useComponent`, which is not the React package. Take
|
|
|
16
16
|
that reference page rather than from a Vue generative-UI guide, which is not published.
|
|
17
17
|
|
|
18
18
|
If the pages support the selection, record Vue 3 and these URLs. Then run
|
|
19
|
-
`npx --yes copilotkit@4.
|
|
19
|
+
`npx --yes copilotkit@4.12.0 onboard read credentials/finalize-plan`.
|
|
20
20
|
|
|
21
21
|
If the documentation does not support the selection, run
|
|
22
|
-
`npx --yes copilotkit@4.
|
|
22
|
+
`npx --yes copilotkit@4.12.0 onboard read unsupported/no-validated-path`.
|
|
@@ -7,11 +7,12 @@ Do not implement the plan yourself. Use the step order in the approved plan.
|
|
|
7
7
|
One rule below stops onboarding: a Learning Container create that fails for a reason other
|
|
8
8
|
than the container already existing. It ends a run the developer has already approved a
|
|
9
9
|
plan for. Name the exact command, id, and error code that stopped you: a report that names
|
|
10
|
-
only the step cannot be acted on. Send one short report before you stop. Run the friction
|
|
11
|
-
|
|
10
|
+
only the step cannot be acted on. Send one short report before you stop. Run the friction
|
|
11
|
+
command without another developer question. Do not ask the developer about telemetry: the
|
|
12
|
+
command applies the setting they already have.
|
|
12
13
|
|
|
13
14
|
```text
|
|
14
|
-
npx --yes copilotkit@4.
|
|
15
|
+
npx --yes copilotkit@4.12.0 onboard friction --phase stop --category <slug>
|
|
15
16
|
```
|
|
16
17
|
|
|
17
18
|
Write one or two sentences to standard input: the step you stopped at and what stopped it.
|
|
@@ -24,6 +25,17 @@ carries any of those, prints the reason, and exits zero. A refused report is not
|
|
|
24
25
|
step. Send the report, then stop. Reporting is not a route change and does not resume the
|
|
25
26
|
run.
|
|
26
27
|
|
|
28
|
+
## Departing from the approved plan
|
|
29
|
+
|
|
30
|
+
The developer approved a written plan and was told that approval was the last thing this
|
|
31
|
+
run needed from them. A step that cannot be built as written is therefore a change to the
|
|
32
|
+
only thing they agreed to.
|
|
33
|
+
|
|
34
|
+
Where you depart from a path, a version, or a step the plan named, record it: what the
|
|
35
|
+
plan said, what you did instead, and why. Carry that record into the closing summary,
|
|
36
|
+
which has an item for it. Do not stop for a departure that is the right call, and do not
|
|
37
|
+
leave it unrecorded either.
|
|
38
|
+
|
|
27
39
|
## Authorization requested by the plan
|
|
28
40
|
|
|
29
41
|
Approving the plan is the developer agreeing to every path it listed under
|
|
@@ -31,19 +43,24 @@ Approving the plan is the developer agreeing to every path it listed under
|
|
|
31
43
|
app directory:
|
|
32
44
|
|
|
33
45
|
```text
|
|
34
|
-
npx --yes copilotkit@4.
|
|
46
|
+
npx --yes copilotkit@4.12.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
|
|
35
47
|
```
|
|
36
48
|
|
|
37
49
|
Consent has to be on the record before the file moves, so a call made after the change is
|
|
38
50
|
refused. Continue only if every result starts with `Status: passed`. If the plan listed
|
|
39
51
|
nothing there, skip this section.
|
|
40
52
|
|
|
53
|
+
What you record here covers changing the file. It does not cover removing it. Never delete,
|
|
54
|
+
move, or rename a protected path, whatever the plan says: the audit fails a path that is
|
|
55
|
+
gone even when consent was recorded for it, and no command clears that. If a step cannot
|
|
56
|
+
proceed without removing one, route out and report the path.
|
|
57
|
+
|
|
41
58
|
If a path the plan listed has already changed, the developer changed it after the capture.
|
|
42
59
|
No implementation step has run yet, so the change is theirs rather than this run's. Record
|
|
43
60
|
consent over it by adding one flag:
|
|
44
61
|
|
|
45
62
|
```text
|
|
46
|
-
npx --yes copilotkit@4.
|
|
63
|
+
npx --yes copilotkit@4.12.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>" --with-prior-change
|
|
47
64
|
```
|
|
48
65
|
|
|
49
66
|
The flag records their change as drift beside the consent, so the closing report names both
|
|
@@ -62,7 +79,7 @@ rather than this section.
|
|
|
62
79
|
Run the audit from the target app directory:
|
|
63
80
|
|
|
64
81
|
```text
|
|
65
|
-
npx --yes copilotkit@4.
|
|
82
|
+
npx --yes copilotkit@4.12.0 onboard audit
|
|
66
83
|
```
|
|
67
84
|
|
|
68
85
|
It compares every protected path with the digest the CLI captured for it. Its result starts
|
|
@@ -75,7 +92,7 @@ answers the same.
|
|
|
75
92
|
|
|
76
93
|
Decide each path the audit names, one at a time.
|
|
77
94
|
|
|
78
|
-
A path the audit lists under `Authorized to
|
|
95
|
+
A path the audit lists under `Authorized to modify:` is not a finding. The developer approved
|
|
79
96
|
it, the record says why, and the audit reports it rather than failing on it. Carry it into the
|
|
80
97
|
summary with its reason. Nothing else is needed for it.
|
|
81
98
|
|
|
@@ -97,14 +114,14 @@ A path that no Files changed section names changed outside the run, and it is th
|
|
|
97
114
|
developer's own file. Accept it by name:
|
|
98
115
|
|
|
99
116
|
```text
|
|
100
|
-
npx --yes copilotkit@4.
|
|
117
|
+
npx --yes copilotkit@4.12.0 onboard protect --accept-external --path <path>
|
|
101
118
|
```
|
|
102
119
|
|
|
103
120
|
A changed env file is its own case. This run asked the developer to place a credential
|
|
104
121
|
there, so it takes the credential route rather than this one:
|
|
105
122
|
|
|
106
123
|
```text
|
|
107
|
-
npx --yes copilotkit@4.
|
|
124
|
+
npx --yes copilotkit@4.12.0 onboard protect --accept-credential --path <path>
|
|
108
125
|
```
|
|
109
126
|
|
|
110
127
|
That route proves no recorded credential was lost, instead of taking the run's word that it
|
|
@@ -123,7 +140,7 @@ neither does a one-line fix. Never repair, reset, or revert it. Ask the develope
|
|
|
123
140
|
the change, and record the answer they give:
|
|
124
141
|
|
|
125
142
|
```text
|
|
126
|
-
npx --yes copilotkit@4.
|
|
143
|
+
npx --yes copilotkit@4.12.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
127
144
|
```
|
|
128
145
|
|
|
129
146
|
Use it only for an answer a developer actually gave. It records the consent as taken
|
|
@@ -144,7 +161,7 @@ create it now, from the target app directory. The developer approved the id befo
|
|
|
144
161
|
made, so this is the first point at which it can be created:
|
|
145
162
|
|
|
146
163
|
```text
|
|
147
|
-
npx --yes copilotkit@4.
|
|
164
|
+
npx --yes copilotkit@4.12.0 learning containers create --id <id> --name <name> --json
|
|
148
165
|
```
|
|
149
166
|
|
|
150
167
|
Pass the id the plan names. Take the name from the selected project's own display name, so
|
|
@@ -160,7 +177,7 @@ hold.
|
|
|
160
177
|
Then report that the container is settled, before any edit:
|
|
161
178
|
|
|
162
179
|
```text
|
|
163
|
-
npx --yes copilotkit@4.
|
|
180
|
+
npx --yes copilotkit@4.12.0 onboard checkpoint --phase container-settled
|
|
164
181
|
```
|
|
165
182
|
|
|
166
183
|
Where the plan names a container the platform already held, report the same checkpoint and
|
|
@@ -169,11 +186,11 @@ create nothing. Where the plan names no container, skip this section.
|
|
|
169
186
|
Report the plan this run is about to implement:
|
|
170
187
|
|
|
171
188
|
```text
|
|
172
|
-
npx --yes copilotkit@4.
|
|
189
|
+
npx --yes copilotkit@4.12.0 onboard checkpoint --phase plan-written
|
|
173
190
|
```
|
|
174
191
|
|
|
175
192
|
Spawn one implementation subagent. Tell it to run
|
|
176
|
-
`npx --yes copilotkit@4.
|
|
193
|
+
`npx --yes copilotkit@4.12.0 onboard read subagent/implement-and-validate` first and follow
|
|
177
194
|
the prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
178
195
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
179
196
|
and the same handoff. Give it the plan, selected framework, frontend, model, exact target app
|
|
@@ -193,11 +210,11 @@ returned. Continue to proof only when that audit passes.
|
|
|
193
210
|
After the selected implementation path passes, report it:
|
|
194
211
|
|
|
195
212
|
```text
|
|
196
|
-
npx --yes copilotkit@4.
|
|
213
|
+
npx --yes copilotkit@4.12.0 onboard checkpoint --phase build-validated
|
|
197
214
|
```
|
|
198
215
|
|
|
199
216
|
Then run
|
|
200
|
-
`npx --yes copilotkit@4.
|
|
217
|
+
`npx --yes copilotkit@4.12.0 onboard read proof/round-trip`.
|
|
201
218
|
|
|
202
219
|
## Repair rules
|
|
203
220
|
|
|
@@ -219,9 +236,9 @@ the same command still fails after three repair attempts, or a result starts wit
|
|
|
219
236
|
`Status: blocked`. A defect in a package this run installed is not a stack CopilotKit does
|
|
220
237
|
not serve, a command this run cannot get to pass is not one either, and a blocked audit
|
|
221
238
|
proved nothing about the stack. In those cases run
|
|
222
|
-
`npx --yes copilotkit@4.
|
|
239
|
+
`npx --yes copilotkit@4.12.0 onboard read stopped/run-failed`.
|
|
223
240
|
|
|
224
241
|
A plan with no path to follow takes the unsupported ending: the fix requires changing the
|
|
225
242
|
developer's existing agent or frontend, or the documentation does not support the plan. In
|
|
226
243
|
those cases run
|
|
227
|
-
`npx --yes copilotkit@4.
|
|
244
|
+
`npx --yes copilotkit@4.12.0 onboard read unsupported/no-validated-path`.
|
|
@@ -37,11 +37,15 @@ The handoff must include:
|
|
|
37
37
|
- The URL of the running app.
|
|
38
38
|
- The command that starts the app in the future.
|
|
39
39
|
- The debugging surface this journey's frontend can reach, named below.
|
|
40
|
-
- How to use https://intelligence.copilotkit.ai to manage the Intelligence
|
|
40
|
+
- How to use https://intelligence.copilotkit.ai to manage the CopilotKit Intelligence
|
|
41
41
|
installation. Do not open it. This item makes the developer aware the dashboard is
|
|
42
42
|
there, and it is a sentence to write rather than a check to perform. Nothing in this
|
|
43
43
|
graph gates on the dashboard, so a dashboard this run never opened is not a finding,
|
|
44
44
|
not a caveat, and not a blocker.
|
|
45
|
+
- What changed since the developer approved the plan. Name every path, version, or step
|
|
46
|
+
the run departed from, and why. A deviation can be the right call and still has to
|
|
47
|
+
reach the person who approved the thing it departed from. Where nothing departed, say
|
|
48
|
+
that in one line rather than leaving the item out.
|
|
45
49
|
- The process IDs and stop commands for the running agent and frontend.
|
|
46
50
|
- The `@copilotkit/*` versions this conversion changed, and what they were before.
|
|
47
51
|
- On a conversion, the criterion this run was judged against, in the words the run was
|
|
@@ -66,17 +70,19 @@ Name the debugging surface this journey's frontend can reach, rather than the on
|
|
|
66
70
|
of the documentation leads with. For a web frontend it is the CopilotKit Inspector. For
|
|
67
71
|
React Native there is no Inspector: it is a browser overlay built on a DOM custom element,
|
|
68
72
|
and `@copilotkit/react-native` does not ship it. Give a mobile developer
|
|
69
|
-
`npx --yes copilotkit@4.
|
|
70
|
-
Event Inspector in the CopilotKit VS Code extension, and the Intelligence
|
|
73
|
+
`npx --yes copilotkit@4.12.0 verify --round-trip`, the runtime's own log, the AG-UI
|
|
74
|
+
Event Inspector in the CopilotKit VS Code extension, and the CopilotKit Intelligence
|
|
75
|
+
thread view
|
|
71
76
|
instead. Naming the Inspector to a developer who cannot open it costs them the time it
|
|
72
77
|
takes to conclude their own wiring is broken.
|
|
73
78
|
|
|
74
79
|
Where this run settled a Learning Container, tell the developer what happens next, because
|
|
75
80
|
a correct run looks like a broken one otherwise. Learning runs on its own: the first
|
|
76
81
|
automatic run needs new threads from 15 distinct conversations in this container, and only
|
|
77
|
-
the newest snapshot of each thread counts.
|
|
78
|
-
|
|
79
|
-
|
|
82
|
+
the newest snapshot of each thread counts. Existing threads can receive their first
|
|
83
|
+
container assignment after prior runs. Their surviving earlier history becomes eligible
|
|
84
|
+
for collection and counts toward the same threshold. Creating a container does not enroll
|
|
85
|
+
existing threads automatically.
|
|
80
86
|
|
|
81
87
|
Where the Learning step was skipped because this organization cannot use Learning, say so in
|
|
82
88
|
one line and name what was not created. A skip nobody names reads as a container that
|
|
@@ -85,11 +91,11 @@ exists, and the developer then waits for insights from a container this run neve
|
|
|
85
91
|
State that the servers remain running after proof.
|
|
86
92
|
|
|
87
93
|
Report each thing that slowed this run down. Send at most four reports, worst first. Run
|
|
88
|
-
the friction commands without another developer question.
|
|
89
|
-
|
|
94
|
+
the friction commands without another developer question. Do not ask the developer about
|
|
95
|
+
telemetry: the command applies the setting they already have.
|
|
90
96
|
|
|
91
97
|
```text
|
|
92
|
-
npx --yes copilotkit@4.
|
|
98
|
+
npx --yes copilotkit@4.12.0 onboard friction --category <slug> --cost-seconds <seconds>
|
|
93
99
|
```
|
|
94
100
|
|
|
95
101
|
Write one or two sentences on the command's standard input. Pick one category from
|
|
@@ -101,7 +107,7 @@ Pass --docs-path only for a docs-missing or docs-wrong report, naming the page t
|
|
|
101
107
|
is about:
|
|
102
108
|
|
|
103
109
|
```text
|
|
104
|
-
npx --yes copilotkit@4.
|
|
110
|
+
npx --yes copilotkit@4.12.0 onboard friction --category docs-wrong --cost-seconds 300 --docs-path /docs/threads/drawer
|
|
105
111
|
```
|
|
106
112
|
|
|
107
113
|
Give the page's site-relative path or its full URL, with no spaces, query string, or
|
|
@@ -118,25 +124,28 @@ Tell the developer when you send a friction report. Do not quote or summarize th
|
|
|
118
124
|
unless the developer asks. If the CLI says the report was not sent,
|
|
119
125
|
state what it said and continue without another question.
|
|
120
126
|
|
|
121
|
-
When the evidence is gathered, run `npx --yes copilotkit@4.
|
|
127
|
+
When the evidence is gathered, run `npx --yes copilotkit@4.12.0 onboard complete`, carrying
|
|
122
128
|
the surface-check outcome the proof subagent returned. Pass exactly one flag, and pass the
|
|
123
129
|
one that matches this journey's surface.
|
|
124
130
|
|
|
125
131
|
For a web frontend -- React SPA, Next.js, Angular, Vue:
|
|
126
132
|
|
|
127
133
|
```text
|
|
128
|
-
npx --yes copilotkit@4.
|
|
134
|
+
npx --yes copilotkit@4.12.0 onboard complete --visual-check <outcome>
|
|
129
135
|
```
|
|
130
136
|
|
|
131
|
-
The outcome is one of `performed`, `skipped-no-browser-tool`, or
|
|
137
|
+
The outcome is one of `performed`, `skipped-no-browser-tool`, `skipped-cloned-starter`, or
|
|
138
|
+
`failed`. Use `skipped-cloned-starter` only for a run that cloned a starter and was told to
|
|
139
|
+
open no browser. It is the one skip that does not block.
|
|
132
140
|
|
|
133
141
|
For React Native:
|
|
134
142
|
|
|
135
143
|
```text
|
|
136
|
-
npx --yes copilotkit@4.
|
|
144
|
+
npx --yes copilotkit@4.12.0 onboard complete --device-check <outcome>
|
|
137
145
|
```
|
|
138
146
|
|
|
139
|
-
The outcome is one of `performed`, `skipped-no-device`, or
|
|
147
|
+
The outcome is one of `performed`, `skipped-no-device`, `skipped-cloned-starter`, or
|
|
148
|
+
`failed`.
|
|
140
149
|
|
|
141
150
|
The two flags are not interchangeable and neither takes the other's outcomes. A browser
|
|
142
151
|
proves nothing about a React Native view tree, and a device capture proves nothing about
|
|
@@ -145,7 +154,7 @@ browser-origin CORS, so the flag you pass is how this run states which surface i
|
|
|
145
154
|
For a web frontend, also pass the URL the browser opened:
|
|
146
155
|
|
|
147
156
|
```text
|
|
148
|
-
npx --yes copilotkit@4.
|
|
157
|
+
npx --yes copilotkit@4.12.0 onboard complete --visual-check <outcome> \
|
|
149
158
|
--frontend-url <the url you opened>
|
|
150
159
|
```
|
|
151
160
|
|
|
@@ -164,7 +173,7 @@ If the round trip proved and something after it still blocked this run, add `--b
|
|
|
164
173
|
to the same command:
|
|
165
174
|
|
|
166
175
|
```text
|
|
167
|
-
npx --yes copilotkit@4.
|
|
176
|
+
npx --yes copilotkit@4.12.0 onboard complete --visual-check performed --blocked-by <cause>
|
|
168
177
|
```
|
|
169
178
|
|
|
170
179
|
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 --yes copilotkit@4.
|
|
4
|
+
`npx --yes copilotkit@4.12.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 --yes copilotkit@4.
|
|
20
|
+
npx --yes copilotkit@4.12.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. Pass `passed` when the subagent proved a predicate,
|
|
@@ -35,12 +35,12 @@ Do not change project files before this proof ends. Starting existing developmen
|
|
|
35
35
|
processes and their ignored runtime files is allowed.
|
|
36
36
|
|
|
37
37
|
If the subagent proves the `both-oss` predicate, keep its evidence with the plan and run
|
|
38
|
-
`npx --yes copilotkit@4.
|
|
38
|
+
`npx --yes copilotkit@4.12.0 onboard read conversion/plan`. That project already works.
|
|
39
39
|
What it needs is the conversion, not a build.
|
|
40
40
|
|
|
41
41
|
If the proof does not establish the baseline, record the starting state
|
|
42
42
|
`both-copilotkit-unproved` and run
|
|
43
|
-
`npx --yes copilotkit@4.
|
|
43
|
+
`npx --yes copilotkit@4.12.0 onboard read credentials/plan`. This prompt is served
|
|
44
44
|
whenever a project looks like an OSS integration, so a baseline that did not prove is an
|
|
45
45
|
ordinary starting state rather than a failure. Keep the failing predicate with the plan.
|
|
46
46
|
|
|
@@ -54,5 +54,5 @@ and the plan preserves it rather than repeating it.
|
|
|
54
54
|
|
|
55
55
|
If it cannot identify the running process safely, exposes a secret, or finds a baseline
|
|
56
56
|
failure that cannot be classified, run
|
|
57
|
-
`npx --yes copilotkit@4.
|
|
57
|
+
`npx --yes copilotkit@4.12.0 onboard read stopped/run-failed`. None of those mean the
|
|
58
58
|
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 --yes copilotkit@4.
|
|
4
|
+
`npx --yes copilotkit@4.12.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
|
|
@@ -20,8 +20,9 @@ starter smoke jobs already drive on every change, so opening a browser re-proves
|
|
|
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,
|
|
22
22
|
so it holds for every runtime mount and needs no browser. Give that subagent no browser or
|
|
23
|
-
device control, and
|
|
24
|
-
|
|
23
|
+
device control, and have it report `skipped-cloned-starter` rather than a missing
|
|
24
|
+
capability: nothing was unavailable, the run declined to spend it. That outcome completes
|
|
25
|
+
the run. Every other skip says nothing drove the surface, and blocks it.
|
|
25
26
|
|
|
26
27
|
Give the subagent this guide for continued-development tools:
|
|
27
28
|
https://docs.copilotkit.ai/build-with-agents.md
|
|
@@ -32,13 +33,13 @@ pass the time.
|
|
|
32
33
|
Report each attempt at the journey as it ends, counting from one:
|
|
33
34
|
|
|
34
35
|
```text
|
|
35
|
-
npx --yes copilotkit@4.
|
|
36
|
+
npx --yes copilotkit@4.12.0 onboard checkpoint --phase journey-attempted --attempt 1
|
|
36
37
|
```
|
|
37
38
|
|
|
38
39
|
Record what that proof returned before you route on it:
|
|
39
40
|
|
|
40
41
|
```text
|
|
41
|
-
npx --yes copilotkit@4.
|
|
42
|
+
npx --yes copilotkit@4.12.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
42
43
|
```
|
|
43
44
|
|
|
44
45
|
Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. The
|
|
@@ -46,7 +47,7 @@ command prints one line and sends nothing else. Where a repair cycle runs the pr
|
|
|
46
47
|
record each attempt as it ends.
|
|
47
48
|
|
|
48
49
|
For every protected-path audit in this prompt, run
|
|
49
|
-
`npx --yes copilotkit@4.
|
|
50
|
+
`npx --yes copilotkit@4.12.0 onboard audit` from the target app directory. If its result
|
|
50
51
|
starts with `Status: blocked`, report the printed reason and use the route-out rules below.
|
|
51
52
|
A blocked audit proved nothing changed and is not a preservation failure. If a
|
|
52
53
|
protected-path audit reports a changed path, decide it the way the implementation prompt
|
|
@@ -55,7 +56,7 @@ returns none, so a finding with no Files changed section to test against routes
|
|
|
55
56
|
path one of those sections names is this run's own change and routes out too. Accept a
|
|
56
57
|
path only when a section this run collected covers the step that wrote it and does not
|
|
57
58
|
name it:
|
|
58
|
-
`npx --yes copilotkit@4.
|
|
59
|
+
`npx --yes copilotkit@4.12.0 onboard protect --accept-external --path <path>`. Then run
|
|
59
60
|
the audit again and name the path in the closing summary. Never repair, reset, or revert a
|
|
60
61
|
protected path.
|
|
61
62
|
|
|
@@ -63,12 +64,12 @@ That holds for a repair cycle too. When the fix for a failing check lands on a p
|
|
|
63
64
|
path, the path is still the developer's, however right the diagnosis is and however small
|
|
64
65
|
the fix. Reading the file never settles who wrote it. Ask the developer to allow the
|
|
65
66
|
change, and record their answer with
|
|
66
|
-
`npx --yes copilotkit@4.
|
|
67
|
+
`npx --yes copilotkit@4.12.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
|
|
67
68
|
or route out. Never repair it, and never send it to a repair worker.
|
|
68
69
|
|
|
69
70
|
If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
|
|
70
71
|
`proof/complete` only if that audit passes. After the audit passes, run
|
|
71
|
-
`npx --yes copilotkit@4.
|
|
72
|
+
`npx --yes copilotkit@4.12.0 onboard read proof/complete`. A performed surface outcome with
|
|
72
73
|
the full round trip is core success even if a continued-development tool fails. A skipped
|
|
73
74
|
surface outcome still enters `proof/complete` so the CLI records the blocked result. Do not
|
|
74
75
|
describe a skipped surface as proved. Keep the Skills and MCP results separate from the proof
|
|
@@ -124,7 +125,7 @@ Restart each project-owned process changed by the repair. Report the cycle, coun
|
|
|
124
125
|
one:
|
|
125
126
|
|
|
126
127
|
```text
|
|
127
|
-
npx --yes copilotkit@4.
|
|
128
|
+
npx --yes copilotkit@4.12.0 onboard checkpoint --phase repair-attempted --attempt 1
|
|
128
129
|
```
|
|
129
130
|
|
|
130
131
|
Then spawn a fresh proof subagent
|
|
@@ -142,18 +143,18 @@ and proof cycles.
|
|
|
142
143
|
|
|
143
144
|
Route out only when the failure is not yours to fix, when the same proof still fails after
|
|
144
145
|
three attempts, or when no evidence of the round trip can be produced. In those cases run
|
|
145
|
-
`npx --yes copilotkit@4.
|
|
146
|
+
`npx --yes copilotkit@4.12.0 onboard read stopped/run-failed`. The stack is supported:
|
|
146
147
|
this run did not finish, which is a different ending and a different report. All three are
|
|
147
148
|
about the round trip itself. A round trip that proved is not one of them, whatever failed
|
|
148
149
|
after it.
|
|
149
150
|
|
|
150
151
|
If you stop here without taking that route -- a repair cycle you cannot finish, a limit in
|
|
151
|
-
your own harness, a run that has run out -- send one short report before you stop.
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
your own harness, a run that has run out -- send one short report before you stop. Run the
|
|
153
|
+
friction command without another developer question. Do not ask the developer about
|
|
154
|
+
telemetry: the command applies the setting they already have.
|
|
154
155
|
|
|
155
156
|
```text
|
|
156
|
-
npx --yes copilotkit@4.
|
|
157
|
+
npx --yes copilotkit@4.12.0 onboard friction --phase stop --category <slug>
|
|
157
158
|
```
|
|
158
159
|
|
|
159
160
|
Write one or two sentences to standard input: the step you stopped at and what stopped it.
|
|
@@ -23,11 +23,33 @@ that waiting for the result does not, and it spends wall clock, which is one of
|
|
|
23
23
|
this journey is measured on. One recorded run spent most of two hours asleep between
|
|
24
24
|
dispatches that had all returned in seconds.
|
|
25
25
|
|
|
26
|
+
## When a subagent cannot work
|
|
27
|
+
|
|
28
|
+
This rule also covers every subagent this run spawns, here and in every later prompt.
|
|
29
|
+
|
|
30
|
+
A subagent that returns no usable result has failed in your harness, not in this graph.
|
|
31
|
+
Delegation buys parallelism and a clean context, not capability: every assignment in this
|
|
32
|
+
run is work you can do yourself, slower. So run that assignment yourself and carry on,
|
|
33
|
+
rather than treating it as the end of the run.
|
|
34
|
+
|
|
35
|
+
Both research subagents failing means this harness has no working subagent at all, which
|
|
36
|
+
is worth recording once:
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
npx --yes copilotkit@4.12.0 onboard checkpoint --phase delegation-unavailable
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Then say once, in your own words, that this environment has no working subagents, so you
|
|
43
|
+
will carry out each step yourself and the run will take longer than usual.
|
|
44
|
+
|
|
45
|
+
For the rest of this run, wherever a prompt tells you to spawn a subagent, read that
|
|
46
|
+
`subagent/` brief yourself and follow it in place of spawning one.
|
|
47
|
+
|
|
26
48
|
Before you ask the developer any setup question, finish every read-only investigation and
|
|
27
49
|
preflight check in this section.
|
|
28
50
|
|
|
29
51
|
Prepare two research assignments. Give each research subagent one assignment. Tell it to run
|
|
30
|
-
`npx --yes copilotkit@4.
|
|
52
|
+
`npx --yes copilotkit@4.12.0 onboard read subagent/inspect-repository` first and follow the
|
|
31
53
|
prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
32
54
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
33
55
|
and the same handoff. Require only its assigned packet.
|
|
@@ -89,10 +111,24 @@ whole finding, and a browser is not a substitute for a device.
|
|
|
89
111
|
|
|
90
112
|
Wait for both research subagents to finish.
|
|
91
113
|
|
|
114
|
+
## Settle the port
|
|
115
|
+
|
|
116
|
+
The findings name the ports this project declares and the ports already held on this
|
|
117
|
+
machine. Pick one free port for the frontend now, and use that number for the rest of the
|
|
118
|
+
run: in the plan, in the implementation, and in the proof. Record it with the findings you
|
|
119
|
+
hand to every later subagent.
|
|
120
|
+
|
|
121
|
+
Do not let a later step pick again. A run that decides the port three times produces three
|
|
122
|
+
numbers, and `verify` reads none of them: with no recorded URL it assumes port 3000, and
|
|
123
|
+
whatever holds that port answers. An unrelated checkout on this machine then reports as
|
|
124
|
+
this project's proven wiring.
|
|
125
|
+
|
|
126
|
+
Project selection is where the settled port is written down, through `--runtime-url`.
|
|
127
|
+
|
|
92
128
|
Then report that the research came back:
|
|
93
129
|
|
|
94
130
|
```text
|
|
95
|
-
npx --yes copilotkit@4.
|
|
131
|
+
npx --yes copilotkit@4.12.0 onboard checkpoint --phase research-returned
|
|
96
132
|
```
|
|
97
133
|
|
|
98
134
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -108,14 +144,24 @@ the item, both cited findings, and the research limits. Require its result to st
|
|
|
108
144
|
not inspect the project to settle the conflict yourself. Use the stop route for a non-pass
|
|
109
145
|
verifier result.
|
|
110
146
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
147
|
+
A target project directory that holds no project has no app directory to key on, and
|
|
148
|
+
that is a merged result rather than a failed merge. Record that this run has no target app
|
|
149
|
+
directory and no environment row, then take the read below. Do not send a focused directory
|
|
150
|
+
check, and do not use the stop route: neither worker can find a directory a developer has
|
|
151
|
+
not created yet, and the route below is where such a project picks its starter.
|
|
152
|
+
|
|
153
|
+
A directory holding only a Git repository, a coding agent's own configuration, editor
|
|
154
|
+
settings or scratch notes holds no project. `onboard inspect` reports that as
|
|
155
|
+
`appDiscovery.reason` of `no-project`.
|
|
156
|
+
|
|
157
|
+
For a target project that does hold an app, match environment evidence to the target app
|
|
158
|
+
directory from the project packet. Require one target app directory and one matching
|
|
159
|
+
environment row. If either packet gives no match or more than one match, send each research
|
|
160
|
+
worker a focused directory check. Continue only when both workers return the same one target
|
|
161
|
+
app directory. Both results must start with `Status: passed`. Otherwise, use the stop route.
|
|
116
162
|
|
|
117
163
|
When both research results are merged, run
|
|
118
|
-
`npx --yes copilotkit@4.
|
|
164
|
+
`npx --yes copilotkit@4.12.0 onboard read research/route`.
|
|
119
165
|
|
|
120
166
|
If inspection stops onboarding, run
|
|
121
|
-
`npx --yes copilotkit@4.
|
|
167
|
+
`npx --yes copilotkit@4.12.0 onboard read stopped/run-failed`.
|