copilotkit 4.20.0 → 4.21.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 +28 -0
- package/cli-build-info.json +8 -8
- package/index.js +3530 -2868
- package/onboarding/prompts/authenticate/start.md +8 -8
- 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 +3 -3
- package/onboarding/prompts/credentials/write-plan.md +5 -5
- package/onboarding/prompts/fallback/best-effort.md +8 -8
- package/onboarding/prompts/feature/a2ui/implement.md +6 -6
- package/onboarding/prompts/feature/a2ui/proof.md +5 -5
- package/onboarding/prompts/feature/a2ui/start.md +9 -9
- package/onboarding/prompts/feature/channels/implement.md +7 -7
- package/onboarding/prompts/feature/channels/proof.md +5 -5
- package/onboarding/prompts/feature/channels/start.md +9 -9
- package/onboarding/prompts/feature/chat-suggestions/implement.md +6 -6
- package/onboarding/prompts/feature/chat-suggestions/proof.md +5 -5
- package/onboarding/prompts/feature/chat-suggestions/start.md +9 -9
- package/onboarding/prompts/feature/complete.md +2 -2
- package/onboarding/prompts/feature/learning/implement.md +13 -13
- package/onboarding/prompts/feature/learning/proof.md +6 -6
- package/onboarding/prompts/feature/learning/start.md +9 -9
- package/onboarding/prompts/feature/open-generative-ui/implement.md +6 -6
- package/onboarding/prompts/feature/open-generative-ui/proof.md +5 -5
- package/onboarding/prompts/feature/open-generative-ui/start.md +9 -9
- package/onboarding/prompts/feature/realtime-sync/implement.md +7 -7
- package/onboarding/prompts/feature/realtime-sync/proof.md +5 -5
- package/onboarding/prompts/feature/realtime-sync/start.md +8 -8
- package/onboarding/prompts/feature/rich-threads/implement.md +8 -8
- package/onboarding/prompts/feature/rich-threads/proof.md +5 -5
- package/onboarding/prompts/feature/rich-threads/start.md +8 -8
- package/onboarding/prompts/feature/stop.md +3 -3
- package/onboarding/prompts/feature/voice/implement.md +6 -6
- package/onboarding/prompts/feature/voice/proof.md +5 -5
- package/onboarding/prompts/feature/voice/start.md +9 -9
- 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 +12 -12
- package/onboarding/prompts/proof/complete.md +3 -3
- package/onboarding/prompts/proof/oss-baseline.md +5 -5
- package/onboarding/prompts/proof/round-trip.md +8 -8
- package/onboarding/prompts/research/gather.md +5 -5
- package/onboarding/prompts/research/merge.md +2 -2
- package/onboarding/prompts/research/preflight.md +2 -2
- package/onboarding/prompts/research/route.md +5 -5
- package/onboarding/prompts/starter/clone.md +5 -5
- package/onboarding/prompts/stopped/run-failed.md +2 -2
- package/onboarding/prompts/subagent/create-plan.md +1 -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 +10 -10
- package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
- package/package.json +1 -1
- package/release/release-tool.js +9 -5
|
@@ -30,7 +30,7 @@ Record the selected framework, vendor, model, required credential variable names
|
|
|
30
30
|
URLs, and the context documentation gap.
|
|
31
31
|
|
|
32
32
|
If the pages support the selection, run
|
|
33
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
33
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read frontend/plan`.
|
|
34
34
|
|
|
35
35
|
If the documentation does not support the selection, run
|
|
36
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
36
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read unsupported/no-validated-path`.
|
|
@@ -5,7 +5,7 @@ Preserve an existing Angular frontend. Use the selected page for a new frontend.
|
|
|
5
5
|
Use the starter shortcut only if all these facts are true: the target directory holds no
|
|
6
6
|
project, its name is a valid `init` project name, and the selected framework is ADK.
|
|
7
7
|
If all three facts are true, record Angular as the selected frontend. Then run
|
|
8
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
8
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read starter/clone` before you fetch documentation.
|
|
9
9
|
|
|
10
10
|
## Documentation
|
|
11
11
|
|
|
@@ -63,7 +63,7 @@ you create or build an Angular project. If the installed version is lower, selec
|
|
|
63
63
|
supported version first and use it for every later command in this project.
|
|
64
64
|
|
|
65
65
|
If the pages support the selection, record Angular and these URLs. Then run
|
|
66
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
66
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read credentials/finalize-plan`.
|
|
67
67
|
|
|
68
68
|
If the documentation does not support the selection, or the two version lines do not fit
|
|
69
|
-
together, run `npx --prefer-offline --yes copilotkit@4.
|
|
69
|
+
together, run `npx --prefer-offline --yes copilotkit@4.21.0 onboard read unsupported/no-validated-path`.
|
|
@@ -15,7 +15,7 @@ These TypeScript options have starters: Claude Agent SDK TypeScript, LangGraph T
|
|
|
15
15
|
Mastra, and Strands Agents TypeScript. The .NET option is Microsoft Agent Framework .NET.
|
|
16
16
|
|
|
17
17
|
If all shortcut conditions are true, record Next.js as the selected frontend. Then run
|
|
18
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
18
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read starter/clone` before you fetch documentation.
|
|
19
19
|
|
|
20
20
|
## Documentation
|
|
21
21
|
|
|
@@ -40,7 +40,7 @@ developer's work.
|
|
|
40
40
|
- Do not claim, revert, or delete these files. Name them in the report as Next.js output.
|
|
41
41
|
|
|
42
42
|
If the page supports the selection, record Next.js and this URL. Then run
|
|
43
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
43
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read credentials/finalize-plan`.
|
|
44
44
|
|
|
45
45
|
If the documentation does not support the selection, run
|
|
46
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
46
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read unsupported/no-validated-path`.
|
|
@@ -37,15 +37,15 @@ CopilotKit web apps. Then recommend the one the developer names, and say what ea
|
|
|
37
37
|
|
|
38
38
|
Use exactly one matching internal route:
|
|
39
39
|
|
|
40
|
-
1. React SPA: `npx --prefer-offline --yes copilotkit@4.
|
|
41
|
-
2. Next.js: `npx --prefer-offline --yes copilotkit@4.
|
|
42
|
-
3. Angular: `npx --prefer-offline --yes copilotkit@4.
|
|
43
|
-
4. Vue 3: `npx --prefer-offline --yes copilotkit@4.
|
|
44
|
-
5. React Native: `npx --prefer-offline --yes copilotkit@4.
|
|
45
|
-
6. Slack or Microsoft Teams: `npx --prefer-offline --yes copilotkit@4.
|
|
40
|
+
1. React SPA: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read frontend/react-spa`
|
|
41
|
+
2. Next.js: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read frontend/nextjs`
|
|
42
|
+
3. Angular: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read frontend/angular`
|
|
43
|
+
4. Vue 3: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read frontend/vue`
|
|
44
|
+
5. React Native: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read frontend/react-native`
|
|
45
|
+
6. Slack or Microsoft Teams: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read feature/channels/start`
|
|
46
46
|
|
|
47
47
|
If they chose Slack or Microsoft Teams, tell that node which one they chose so it
|
|
48
48
|
does not ask again.
|
|
49
49
|
|
|
50
50
|
If no listed frontend fits, run
|
|
51
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
51
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read unsupported/no-validated-path`.
|
|
@@ -18,7 +18,7 @@ documents `useRenderTool`, which is React Native's own hook for drawing a tool t
|
|
|
18
18
|
already has. That is a different job and needs a tool in the agent.
|
|
19
19
|
|
|
20
20
|
If the pages support the selection, record React Native and these URLs. Then run
|
|
21
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
21
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read credentials/finalize-plan`.
|
|
22
22
|
|
|
23
23
|
If the documentation does not support the selection, run
|
|
24
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
24
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read unsupported/no-validated-path`.
|
|
@@ -14,7 +14,7 @@ not move the agent into it.
|
|
|
14
14
|
- https://docs.copilotkit.ai/react-spa.md
|
|
15
15
|
|
|
16
16
|
If the page supports the selection, record React SPA and this URL. Then run
|
|
17
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
17
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read credentials/finalize-plan`.
|
|
18
18
|
|
|
19
19
|
If the documentation does not support the selection, run
|
|
20
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
20
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read unsupported/no-validated-path`.
|
|
@@ -19,7 +19,7 @@ page above. Vue has its own `useComponent`, which is not the React package. Take
|
|
|
19
19
|
that reference page rather than from a Vue generative-UI guide, which is not published.
|
|
20
20
|
|
|
21
21
|
If the pages support the selection, record Vue 3 and these URLs. Then run
|
|
22
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
22
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read credentials/finalize-plan`.
|
|
23
23
|
|
|
24
24
|
If the documentation does not support the selection, run
|
|
25
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
25
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read unsupported/no-validated-path`.
|
|
@@ -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.21.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -67,7 +67,7 @@ Approving the plan is the developer agreeing to every path it listed under
|
|
|
67
67
|
app directory:
|
|
68
68
|
|
|
69
69
|
```text
|
|
70
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
70
|
+
npx --prefer-offline --yes copilotkit@4.21.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
|
|
@@ -99,7 +99,7 @@ No implementation step has run yet, so the change is theirs rather than this run
|
|
|
99
99
|
consent over it by adding one flag:
|
|
100
100
|
|
|
101
101
|
```text
|
|
102
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
102
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>" --with-prior-change
|
|
103
103
|
```
|
|
104
104
|
|
|
105
105
|
The flag records their change as drift beside the consent, so the closing report names both
|
|
@@ -119,7 +119,7 @@ audit below describes, rather than use this section.
|
|
|
119
119
|
Run the audit from the target app directory:
|
|
120
120
|
|
|
121
121
|
```text
|
|
122
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
122
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard audit
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
It compares every protected path with the digest the CLI captured for it. Its result starts
|
|
@@ -154,14 +154,14 @@ A path that no Files changed section names changed outside the run, and it is th
|
|
|
154
154
|
developer's own file. Accept it by name:
|
|
155
155
|
|
|
156
156
|
```text
|
|
157
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
157
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard protect --accept-external --path <path>
|
|
158
158
|
```
|
|
159
159
|
|
|
160
160
|
A changed env file is its own case. This run asked the developer to place a credential
|
|
161
161
|
there, so it takes the credential route rather than this one:
|
|
162
162
|
|
|
163
163
|
```text
|
|
164
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
164
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard protect --accept-credential --path <path>
|
|
165
165
|
```
|
|
166
166
|
|
|
167
167
|
That route proves no recorded credential was lost, instead of taking the run's word that it
|
|
@@ -180,7 +180,7 @@ neither does a one-line fix. Never repair, reset, or revert it. Ask the develope
|
|
|
180
180
|
the change, and record the answer they give:
|
|
181
181
|
|
|
182
182
|
```text
|
|
183
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
183
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
184
184
|
```
|
|
185
185
|
|
|
186
186
|
Use it only for an answer a developer actually gave. It records the consent as taken
|
|
@@ -215,7 +215,7 @@ directory. The developer approved the id before it was made, so this is the firs
|
|
|
215
215
|
which it can be created:
|
|
216
216
|
|
|
217
217
|
```text
|
|
218
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
218
|
+
npx --prefer-offline --yes copilotkit@4.21.0 learning containers create --id <id> --name <name> --json
|
|
219
219
|
```
|
|
220
220
|
|
|
221
221
|
Pass the id the plan names. Take the name from the selected project's own display name, so
|
|
@@ -232,7 +232,7 @@ plan names no container, skip this section.
|
|
|
232
232
|
## Implement the plan
|
|
233
233
|
|
|
234
234
|
Spawn one implementation subagent. Tell it to run
|
|
235
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
235
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read subagent/implement-and-validate` first and follow
|
|
236
236
|
the prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
237
237
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
238
238
|
and the same handoff. Give it the plan, selected framework, frontend, model, exact target app
|
|
@@ -259,7 +259,7 @@ names the same way as above, against the Files changed section that subagent jus
|
|
|
259
259
|
returned. Continue to proof only when that audit passes.
|
|
260
260
|
|
|
261
261
|
Then run
|
|
262
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
262
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read proof/round-trip`.
|
|
263
263
|
|
|
264
264
|
## Repair rules
|
|
265
265
|
|
|
@@ -285,9 +285,9 @@ the same command still fails after three repair attempts, a result starts with
|
|
|
285
285
|
declined a file the plan does not name, or the run cannot ask them about it. A defect in a
|
|
286
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
|
|
287
287
|
proved nothing about the stack. In those cases run
|
|
288
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
288
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read stopped/run-failed`.
|
|
289
289
|
|
|
290
290
|
A plan with no path to follow takes the unsupported ending: the fix requires changing the
|
|
291
291
|
developer's existing agent or frontend, or the documentation does not support the plan. In
|
|
292
292
|
those cases run
|
|
293
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
293
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read unsupported/no-validated-path`.
|
|
@@ -24,7 +24,7 @@ friction commands follow the telemetry setting the developer already chose, so t
|
|
|
24
24
|
separate question.
|
|
25
25
|
|
|
26
26
|
```text
|
|
27
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
27
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
Put one or two sentences in `--message`. Pick one category from docs-missing, docs-wrong,
|
|
@@ -46,7 +46,7 @@ Pass the surface-check outcome the proof subagent returned, not the one you want
|
|
|
46
46
|
web frontend, pass `--visual-check` and the URL the browser opened, unchanged:
|
|
47
47
|
|
|
48
48
|
```text
|
|
49
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
49
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard complete --visual-check <outcome> \
|
|
50
50
|
--frontend-url <the url you opened>
|
|
51
51
|
```
|
|
52
52
|
|
|
@@ -74,7 +74,7 @@ this graph opens.
|
|
|
74
74
|
nothing drove the frontend:
|
|
75
75
|
|
|
76
76
|
```text
|
|
77
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
77
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard complete --visual-check failed --blocked-by browser-control-unresponsive
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
## Write the handoff
|
|
@@ -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.21.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.21.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.21.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.21.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.21.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.21.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
|
|
@@ -35,7 +35,7 @@ pass the time.
|
|
|
35
35
|
Record what that proof returned before you route on it:
|
|
36
36
|
|
|
37
37
|
```text
|
|
38
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
38
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. A
|
|
@@ -44,7 +44,7 @@ to record it as `skipped`. The command prints one line and sends nothing else. W
|
|
|
44
44
|
record each attempt as it ends.
|
|
45
45
|
|
|
46
46
|
For every protected-path audit in this prompt, run
|
|
47
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
47
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard audit` from the target app directory. If its result
|
|
48
48
|
starts with `Status: blocked`, report the printed reason and use the route-out rules below.
|
|
49
49
|
A blocked audit proved nothing changed and is not a preservation failure. If a
|
|
50
50
|
protected-path audit reports a changed path, decide it the way the implementation prompt
|
|
@@ -53,7 +53,7 @@ returns none, so a finding with no Files changed section to test against routes
|
|
|
53
53
|
path one of those sections names is this run's own change and routes out too. Accept a
|
|
54
54
|
path only when a section this run collected covers the step that wrote it and does not
|
|
55
55
|
name it:
|
|
56
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
56
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard protect --accept-external --path <path>`. Then run
|
|
57
57
|
the audit again and name the path in the closing summary. Never repair, reset, or revert a
|
|
58
58
|
protected path.
|
|
59
59
|
|
|
@@ -61,12 +61,12 @@ That holds for a repair cycle too. When the fix for a failing check lands on a p
|
|
|
61
61
|
path, the path is still the developer's, however right the diagnosis is and however small
|
|
62
62
|
the fix. Reading the file never settles who wrote it. Ask the developer to allow the
|
|
63
63
|
change, and record their answer with
|
|
64
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
64
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
|
|
65
65
|
or route out. Never repair it, and never send it to a repair worker.
|
|
66
66
|
|
|
67
67
|
If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
|
|
68
68
|
`proof/complete` only if that audit passes. After the audit passes, run
|
|
69
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
69
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read proof/complete`. A performed surface outcome with
|
|
70
70
|
the full round trip is core success even if a continued-development tool fails. A skipped
|
|
71
71
|
surface outcome still enters `proof/complete`. The CLI records `skipped-cloned-starter` and
|
|
72
72
|
`skipped-no-browser-tool` after a passed round trip as complete, and `skipped-no-device` as
|
|
@@ -161,7 +161,7 @@ proof cycles, use the route-out rules below.
|
|
|
161
161
|
|
|
162
162
|
Route out only when the failure is not yours to fix, when the same proof still fails after
|
|
163
163
|
three attempts, or when no evidence of the round trip can be produced. In those cases run
|
|
164
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
164
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read stopped/run-failed`. The stack is supported:
|
|
165
165
|
this run did not finish, which is a different ending and a different report. All three are
|
|
166
166
|
about the round trip itself. A round trip that proved is not one of them, whatever failed
|
|
167
167
|
after it.
|
|
@@ -172,7 +172,7 @@ friction command follows the telemetry setting the developer already chose, so i
|
|
|
172
172
|
separate question.
|
|
173
173
|
|
|
174
174
|
```text
|
|
175
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
175
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
176
176
|
```
|
|
177
177
|
|
|
178
178
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -44,7 +44,7 @@ Before you end your turn to wait for the developer where the prompt states no de
|
|
|
44
44
|
report the pause:
|
|
45
45
|
|
|
46
46
|
```text
|
|
47
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
47
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard checkpoint --phase awaiting-developer
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
When the answer or the result arrives, continue from the step that paused. Do not read an
|
|
@@ -64,7 +64,7 @@ Both research subagents failing means this harness has no working subagent at al
|
|
|
64
64
|
is worth recording once:
|
|
65
65
|
|
|
66
66
|
```text
|
|
67
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
67
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard checkpoint --phase delegation-unavailable
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
Then say once, in your own words, that this environment has no working subagents, so you
|
|
@@ -77,7 +77,7 @@ Before you ask the developer any setup question, finish every read-only investig
|
|
|
77
77
|
preflight check in this section.
|
|
78
78
|
|
|
79
79
|
Prepare two research assignments. Give each research subagent one assignment. Tell it to run
|
|
80
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
80
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read subagent/inspect-repository` first and follow the
|
|
81
81
|
prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
82
82
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
83
83
|
and the same handoff. Require only its assigned packet.
|
|
@@ -91,8 +91,8 @@ Start both research subagents in parallel:
|
|
|
91
91
|
The research is under way. Continue to the surface-control preflight while it runs:
|
|
92
92
|
|
|
93
93
|
```text
|
|
94
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
94
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard read research/preflight
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
If inspection stops onboarding, run
|
|
98
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
98
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read stopped/run-failed`.
|
|
@@ -46,7 +46,7 @@ worker a focused directory check. Continue only when both workers return the sam
|
|
|
46
46
|
app directory. Both results must start with `Status: passed`. Otherwise, use the stop route.
|
|
47
47
|
|
|
48
48
|
When both research results are merged, run
|
|
49
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
49
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read research/route`.
|
|
50
50
|
|
|
51
51
|
If inspection stops onboarding, run
|
|
52
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
52
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read stopped/run-failed`.
|
|
@@ -27,8 +27,8 @@ Where the device probe found no booted device, that is the whole finding.
|
|
|
27
27
|
Then merge the research:
|
|
28
28
|
|
|
29
29
|
```text
|
|
30
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
30
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard read research/merge
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
If inspection stops onboarding, run
|
|
34
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
34
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read stopped/run-failed`.
|
|
@@ -9,7 +9,7 @@ sends the run down one path.
|
|
|
9
9
|
Before you route on, run this from the target app directory:
|
|
10
10
|
|
|
11
11
|
```text
|
|
12
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
12
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard protect
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
It reads the working tree itself, records every changed or untracked path with a digest,
|
|
@@ -42,7 +42,7 @@ On either, run this before you read the three findings below, and without asking
|
|
|
42
42
|
purpose question:
|
|
43
43
|
|
|
44
44
|
```text
|
|
45
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
45
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard read feature/channels/start
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
Name the provider to that node so it does not ask again. A Slack page names Slack. A Teams
|
|
@@ -97,7 +97,7 @@ settle these three from your own reading of the project. Each one comes from the
|
|
|
97
97
|
packets or it is not proved.
|
|
98
98
|
|
|
99
99
|
If all three are proved, prove the live starting state before any project file changes. Run
|
|
100
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
100
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read proof/oss-baseline`.
|
|
101
101
|
|
|
102
102
|
Route there before you ask the developer anything else. The questions after this prompt
|
|
103
103
|
select a framework and a frontend that the findings already name, so a developer who
|
|
@@ -110,7 +110,7 @@ developer nor the repository findings prove what the project is for, ask one gui
|
|
|
110
110
|
question about the user outcome. This asks what the developer wants to build before you
|
|
111
111
|
select a framework. Give two or three short examples. Record the answer and give it to
|
|
112
112
|
each later subagent. Then run
|
|
113
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
113
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read credentials/plan`.
|
|
114
114
|
|
|
115
115
|
Do not ask that question on the route above. A project carrying all three states its
|
|
116
116
|
purpose in the application it already serves.
|
|
@@ -124,5 +124,5 @@ A purpose question here names a domain before that choice.
|
|
|
124
124
|
Take the same read named above without asking.
|
|
125
125
|
|
|
126
126
|
If authentication, inspection, or the baseline capture stops onboarding, run
|
|
127
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
127
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read stopped/run-failed`. None of them says anything
|
|
128
128
|
about whether this project's stack is supported, which is not yet known at this point.
|
|
@@ -55,7 +55,7 @@ the derived name.
|
|
|
55
55
|
Only if the developer asks for an existing project, or asks to see the projects they have,
|
|
56
56
|
read the choices:
|
|
57
57
|
|
|
58
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
58
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 project list --json`
|
|
59
59
|
|
|
60
60
|
Then ask which one to use. Do not order the projects by creation time. If the developer
|
|
61
61
|
already gave this answer, do not ask again. Do not read a secret value. Do not show or
|
|
@@ -82,7 +82,7 @@ Run the command from the parent directory. Do not inspect another entry in the p
|
|
|
82
82
|
directory. Replace each placeholder with the recorded value. Do not run a placeholder as
|
|
83
83
|
a shell argument. If the directory name holds a space, put it in double quotes.
|
|
84
84
|
|
|
85
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
85
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 init --name <directory-name> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
|
|
86
86
|
|
|
87
87
|
`--name` is always the target directory name derived above, because `init` creates the
|
|
88
88
|
app at `<parent>/<name>`. Any other value puts the app in a new folder beside the target,
|
|
@@ -143,7 +143,7 @@ When you ask, name each variable and the file it goes in, and say that the run c
|
|
|
143
143
|
when they reply or resume this session. Then report the pause and end your turn:
|
|
144
144
|
|
|
145
145
|
```text
|
|
146
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
146
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard checkpoint --phase awaiting-model-credential
|
|
147
147
|
```
|
|
148
148
|
|
|
149
149
|
This is a pause, not a stop. Do not send a stop report, and do not take a stop route.
|
|
@@ -154,10 +154,10 @@ call.
|
|
|
154
154
|
|
|
155
155
|
If no credential is missing, report no pause and continue.
|
|
156
156
|
|
|
157
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
157
|
+
Then run `npx --prefer-offline --yes copilotkit@4.21.0 onboard read proof/round-trip`.
|
|
158
158
|
|
|
159
159
|
If the command fails, report its exact error and do not claim that the starter is ready.
|
|
160
160
|
Then run
|
|
161
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
161
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 onboard read stopped/run-failed`. The starter is one this
|
|
162
162
|
graph ships and the stack was chosen from its own supported list, so a command that
|
|
163
163
|
returned an error is a run that broke, not a setup this release does not support.
|
|
@@ -41,7 +41,7 @@ put to them, stop here and send the report below.
|
|
|
41
41
|
If they approve it, make that one fix and nothing else. Then come back into this run:
|
|
42
42
|
|
|
43
43
|
```text
|
|
44
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
44
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard resume --message "<approval>"
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
Put the developer's approval in `--message`, in one or two sentences: the fix they
|
|
@@ -64,7 +64,7 @@ Send one short report. The friction command follows the telemetry setting the de
|
|
|
64
64
|
already chose, so it needs no separate question.
|
|
65
65
|
|
|
66
66
|
```text
|
|
67
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
67
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
`--message` takes one or two sentences: the step you stopped at and what stopped
|
|
@@ -183,7 +183,7 @@ here is work the developer did not ask for.
|
|
|
183
183
|
Plan the threads drawer itself: add it from the selected drawer page, where this frontend
|
|
184
184
|
does not already render one. Where this journey's frontend framework ships no threads
|
|
185
185
|
drawer -- React Native --, plan that the thread is proved by
|
|
186
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
186
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 verify --round-trip`, which needs no browser. Do not plan a
|
|
187
187
|
step that opens the managed Intelligence dashboard.
|
|
188
188
|
|
|
189
189
|
## Name the files the run writes itself
|
|
@@ -7,7 +7,7 @@ Work only on the packet you were assigned. Inspect the repository without changi
|
|
|
7
7
|
Run this first, from the target project directory:
|
|
8
8
|
|
|
9
9
|
```text
|
|
10
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
10
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard inspect --json
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
It answers the deterministic half of both packets exactly, from the same code
|
|
@@ -32,7 +32,7 @@ Prove the live runtime in this order:
|
|
|
32
32
|
4. Confirm from project files that the runtime constructor passes a `runner` option rather
|
|
33
33
|
than an `intelligence` option. A package, import, project file, or key is not use proof.
|
|
34
34
|
5. Run
|
|
35
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
35
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 verify --expect-runtime oss --round-trip --agent <expected-agent-id> --json`,
|
|
36
36
|
with the runtime URL or auth header options that this project needs. Require exit zero
|
|
37
37
|
and the JSON `ok` field to be `true`.
|
|
38
38
|
6. Drive one real request through the existing frontend, CopilotKit runtime, and expected
|
|
@@ -135,7 +135,7 @@ is taken moves to the next free one without asking. Where the runtime runs as a
|
|
|
135
135
|
its own, this is the runtime's port, not the frontend's.
|
|
136
136
|
|
|
137
137
|
```text
|
|
138
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
138
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard runtime-url --url <runtime-url>
|
|
139
139
|
```
|
|
140
140
|
|
|
141
141
|
`<runtime-url>` is the Step 1 runtime URL with its port replaced by the port that server
|
|
@@ -185,7 +185,7 @@ IPv6 only, so an IPv4 literal fails against the correct port.
|
|
|
185
185
|
## Step 4 -- Check the wiring
|
|
186
186
|
|
|
187
187
|
With both running, check the wiring in one command before you open a browser:
|
|
188
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
188
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 verify --json`. It reads the port from this project, so a
|
|
189
189
|
non-default port needs no flag. The payload reports `runtimeUrl` and `runtimeUrlSource`. A
|
|
190
190
|
`runtimeUrlSource` of `default` means nothing in the project named a port, so the Step 2
|
|
191
191
|
record is missing. Run the Step 2 `onboard runtime-url` command, then run `verify` again. Read the individual checks rather than
|
|
@@ -223,7 +223,7 @@ named no port the CLI can read: keep step 2's URL, and rewrite its host as `loca
|
|
|
223
223
|
before you use it.
|
|
224
224
|
|
|
225
225
|
Then run the command once more with the URL you are about to open:
|
|
226
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
226
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 verify --frontend-url <that url> --json`. The
|
|
227
227
|
`frontend_assets_served` check asks that server for its page and for one of the page's own
|
|
228
228
|
assets, on that exact host. A `fail` there means the dev server refuses its own static
|
|
229
229
|
assets on the host you were about to use, and the check names the URL to use instead. This
|
|
@@ -231,7 +231,7 @@ is the cheapest step that can save the most expensive one, so run it before the
|
|
|
231
231
|
|
|
232
232
|
## Step 5 -- Prove that the agent runs
|
|
233
233
|
|
|
234
|
-
Run `npx --prefer-offline --yes copilotkit@4.
|
|
234
|
+
Run `npx --prefer-offline --yes copilotkit@4.21.0 verify --round-trip --json`. It sends one request through
|
|
235
235
|
the runtime and reads the answer back from the thread, so it separates an agent that is
|
|
236
236
|
configured from an agent that works. Use `--agent <id>` when the runtime declares more
|
|
237
237
|
than one. If it reports `user-not-identified`, this project's `identifyUser` reads a
|
|
@@ -256,7 +256,7 @@ Where this run settled a Learning Container, add the flag to the call above rath
|
|
|
256
256
|
running a second round trip:
|
|
257
257
|
|
|
258
258
|
```text
|
|
259
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
259
|
+
npx --prefer-offline --yes copilotkit@4.21.0 verify --round-trip --expect-learning-container <container id> --json
|
|
260
260
|
```
|
|
261
261
|
|
|
262
262
|
The check reads the thread that this run created, so a second round trip proves a second
|
|
@@ -290,7 +290,7 @@ the credential was written holds an empty key while the file beside it carries t
|
|
|
290
290
|
one. Run this from the target app directory:
|
|
291
291
|
|
|
292
292
|
```text
|
|
293
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
293
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard env-staleness
|
|
294
294
|
```
|
|
295
295
|
|
|
296
296
|
A `stale` line names the env file and how long after launch it was written. Report that,
|
|
@@ -306,7 +306,7 @@ environment on to every process it starts, so a provider base URL exported for t
|
|
|
306
306
|
reaches the dev servers. Run this from the target app directory:
|
|
307
307
|
|
|
308
308
|
```text
|
|
309
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
309
|
+
npx --prefer-offline --yes copilotkit@4.21.0 onboard inspect --json
|
|
310
310
|
```
|
|
311
311
|
|
|
312
312
|
Read `providerEndpoints` for the app directory. An entry with a `null` `source` came from
|
|
@@ -396,7 +396,7 @@ For a recorded `both-oss` starting state, this step has no component to render.
|
|
|
396
396
|
same request the baseline recorded, require the same kind of user-visible result the
|
|
397
397
|
baseline produced, and require that the thread for that request is listed in the drawer.
|
|
398
398
|
Where this journey's frontend framework ships no threads drawer -- React Native --, prove
|
|
399
|
-
that thread with `npx --prefer-offline --yes copilotkit@4.
|
|
399
|
+
that thread with `npx --prefer-offline --yes copilotkit@4.21.0 verify --round-trip`, which reads the
|
|
400
400
|
answer back off the thread and needs no browser. Record which of the two you proved.
|
|
401
401
|
|
|
402
402
|
Use the surface control the main coding agent recorded for your environment. That finding
|
|
@@ -424,7 +424,7 @@ limit can be ten minutes. You cannot interrupt a call while it runs, so the limi
|
|
|
424
424
|
what you do after one. If a browser call took longer than 60 seconds to return, the browser
|
|
425
425
|
control is unresponsive. Do not call the browser again in this attempt. A second call to a
|
|
426
426
|
hung tool waits as long as the first one did. Run
|
|
427
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
427
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 verify --frontend-url <the url step 4 resolved> --json` once,
|
|
428
428
|
and record the `frontend_assets_served` result. Report the outcome `failed` with the cause
|
|
429
429
|
`browser-control-unresponsive`. The application is not at fault on this evidence: every
|
|
430
430
|
step before the browser proved the runtime without one, and no repair to the project can
|
|
@@ -434,7 +434,7 @@ reach the tool.
|
|
|
434
434
|
the page to finish loading. Do not retype the host, and do not substitute a URL a tool
|
|
435
435
|
offers you by default. Where the page loads but its styling is missing or the chat
|
|
436
436
|
control is dead, run
|
|
437
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
437
|
+
`npx --prefer-offline --yes copilotkit@4.21.0 verify --frontend-url <the url you opened> --json`
|
|
438
438
|
before you diagnose anything else. A dev server can serve its page and refuse every
|
|
439
439
|
static chunk behind it, and on screen that is indistinguishable from a broken
|
|
440
440
|
integration. The `frontend_assets_served` check tells the two apart.
|