copilotkit 4.9.24 → 4.9.37
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 +147 -54
- package/cli-build-info.json +8 -8
- package/index.js +5170 -3291
- package/onboarding/index.json +1 -1
- package/onboarding/prompts/authenticate/start.md +36 -8
- package/onboarding/prompts/conversion/plan.md +15 -6
- package/onboarding/prompts/credentials/finalize-plan.md +39 -26
- package/onboarding/prompts/credentials/plan.md +20 -20
- package/onboarding/prompts/fallback/best-effort.md +15 -7
- 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 +32 -4
- package/onboarding/prompts/frontend/nextjs.md +3 -3
- package/onboarding/prompts/frontend/plan.md +6 -6
- 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 +45 -11
- package/onboarding/prompts/proof/complete.md +22 -6
- package/onboarding/prompts/proof/oss-baseline.md +30 -6
- package/onboarding/prompts/proof/round-trip.md +40 -9
- package/onboarding/prompts/starter/clone.md +11 -5
- package/onboarding/prompts/subagent/create-plan.md +23 -1
- package/onboarding/prompts/subagent/implement-and-validate.md +30 -1
- package/onboarding/prompts/subagent/prove-oss-baseline.md +21 -9
- package/onboarding/prompts/subagent/prove-round-trip.md +32 -16
- package/onboarding/prompts/unsupported/no-validated-path.md +6 -2
- package/package.json +1 -1
- package/release/release-tool.js +15 -1
|
@@ -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 contains
|
|
6
6
|
no entries, 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 --yes copilotkit@4.9.
|
|
8
|
+
`npx --yes copilotkit@4.9.37 onboard read starter/clone` before you fetch documentation.
|
|
9
9
|
|
|
10
10
|
## Documentation
|
|
11
11
|
|
|
@@ -30,12 +30,40 @@ same `component` and `handler: async () => {}` instead, and record that substitu
|
|
|
30
30
|
not give the handler a body: a display-only tool that returns a value writes it into the
|
|
31
31
|
thread as the tool's result.
|
|
32
32
|
|
|
33
|
+
## Version lines
|
|
34
|
+
|
|
35
|
+
`@copilotkit/angular` publishes on a `0.x` line of its own. Every other `@copilotkit/*`
|
|
36
|
+
package publishes on the `1.x` line. Never move either onto the other's line.
|
|
37
|
+
|
|
38
|
+
The two lines are released separately, so a published `@copilotkit/angular` declares a
|
|
39
|
+
`@copilotkit/core` chosen when that Angular release was cut, not when this run happens.
|
|
40
|
+
Read that declaration before you plan any dependency change:
|
|
41
|
+
|
|
42
|
+
```text
|
|
43
|
+
npm view @copilotkit/angular@latest dependencies
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
If the `@copilotkit/core` it declares cannot be satisfied by the version the floor
|
|
47
|
+
requires, the two published packages do not fit together. Installing both resolves two
|
|
48
|
+
copies of `@copilotkit/core`, the Angular package's calls land on the copy that does not
|
|
49
|
+
export what they need, and the threads drawer and the Inspector threads view throw in the
|
|
50
|
+
browser while every command-line check passes.
|
|
51
|
+
|
|
52
|
+
That is a version-line mismatch. Report it naming both versions -- the `@copilotkit/core`
|
|
53
|
+
the Angular package declares, and the one the floor requires -- and take the unsupported
|
|
54
|
+
route at the end of this page. Do not add an `overrides`, `resolutions`, or
|
|
55
|
+
`pnpm.overrides` block to force them together. That is a repair the developer did not
|
|
56
|
+
approve, it silently pins their whole tree, and it hides a mismatch between two packages
|
|
57
|
+
CopilotKit publishes rather than reporting it.
|
|
58
|
+
|
|
59
|
+
## Node
|
|
60
|
+
|
|
33
61
|
Angular CLI 22 requires Node `^22.22.3 || ^24.15.0 || >=26`. Check the Node version before
|
|
34
62
|
you create or build an Angular project. If the installed version is lower, select a
|
|
35
63
|
supported version first and use it for every later command in this project.
|
|
36
64
|
|
|
37
65
|
If the pages support the selection, record Angular and these URLs. Then run
|
|
38
|
-
`npx --yes copilotkit@4.9.
|
|
66
|
+
`npx --yes copilotkit@4.9.37 onboard read credentials/finalize-plan`.
|
|
39
67
|
|
|
40
|
-
If the documentation does not support the selection,
|
|
41
|
-
`npx --yes copilotkit@4.9.
|
|
68
|
+
If the documentation does not support the selection, or the two version lines do not fit
|
|
69
|
+
together, run `npx --yes copilotkit@4.9.37 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 --yes copilotkit@4.9.
|
|
18
|
+
`npx --yes copilotkit@4.9.37 onboard read starter/clone` before you fetch documentation.
|
|
19
19
|
|
|
20
20
|
## Documentation
|
|
21
21
|
|
|
@@ -27,7 +27,7 @@ agent as the default agent, which is correct only for a project that has no agen
|
|
|
27
27
|
Do not replace the developer's existing agent with the built-in agent.
|
|
28
28
|
|
|
29
29
|
If the page supports the selection, record Next.js and this URL. Then run
|
|
30
|
-
`npx --yes copilotkit@4.9.
|
|
30
|
+
`npx --yes copilotkit@4.9.37 onboard read credentials/finalize-plan`.
|
|
31
31
|
|
|
32
32
|
If the documentation does not support the selection, run
|
|
33
|
-
`npx --yes copilotkit@4.9.
|
|
33
|
+
`npx --yes copilotkit@4.9.37 onboard read unsupported/no-validated-path`.
|
|
@@ -24,11 +24,11 @@ process.
|
|
|
24
24
|
|
|
25
25
|
Use exactly one matching internal route:
|
|
26
26
|
|
|
27
|
-
1. React SPA: `npx --yes copilotkit@4.9.
|
|
28
|
-
2. Next.js: `npx --yes copilotkit@4.9.
|
|
29
|
-
3. Angular: `npx --yes copilotkit@4.9.
|
|
30
|
-
4. Vue 3: `npx --yes copilotkit@4.9.
|
|
31
|
-
5. React Native: `npx --yes copilotkit@4.9.
|
|
27
|
+
1. React SPA: `npx --yes copilotkit@4.9.37 onboard read frontend/react-spa`
|
|
28
|
+
2. Next.js: `npx --yes copilotkit@4.9.37 onboard read frontend/nextjs`
|
|
29
|
+
3. Angular: `npx --yes copilotkit@4.9.37 onboard read frontend/angular`
|
|
30
|
+
4. Vue 3: `npx --yes copilotkit@4.9.37 onboard read frontend/vue`
|
|
31
|
+
5. React Native: `npx --yes copilotkit@4.9.37 onboard read frontend/react-native`
|
|
32
32
|
|
|
33
33
|
If no listed frontend fits, run
|
|
34
|
-
`npx --yes copilotkit@4.9.
|
|
34
|
+
`npx --yes copilotkit@4.9.37 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.9.
|
|
18
|
+
`npx --yes copilotkit@4.9.37 onboard read credentials/finalize-plan`.
|
|
19
19
|
|
|
20
20
|
If the documentation does not support the selection, run
|
|
21
|
-
`npx --yes copilotkit@4.9.
|
|
21
|
+
`npx --yes copilotkit@4.9.37 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.9.
|
|
14
|
+
`npx --yes copilotkit@4.9.37 onboard read credentials/finalize-plan`.
|
|
15
15
|
|
|
16
16
|
If the documentation does not support the selection, run
|
|
17
|
-
`npx --yes copilotkit@4.9.
|
|
17
|
+
`npx --yes copilotkit@4.9.37 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.9.
|
|
19
|
+
`npx --yes copilotkit@4.9.37 onboard read credentials/finalize-plan`.
|
|
20
20
|
|
|
21
21
|
If the documentation does not support the selection, run
|
|
22
|
-
`npx --yes copilotkit@4.9.
|
|
22
|
+
`npx --yes copilotkit@4.9.37 onboard read unsupported/no-validated-path`.
|
|
@@ -7,25 +7,52 @@ Do not implement the plan yourself. Use the step order in the approved plan.
|
|
|
7
7
|
Run the audit from the target app directory:
|
|
8
8
|
|
|
9
9
|
```text
|
|
10
|
-
npx --yes copilotkit@4.9.
|
|
10
|
+
npx --yes copilotkit@4.9.37 onboard audit
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
It compares every protected path with the digest the CLI captured for it. Its result starts
|
|
14
14
|
with `Status: passed`, `Status: failed`, or `Status: blocked`. The audit passes only when
|
|
15
15
|
the result starts with `Status: passed`.
|
|
16
16
|
|
|
17
|
-
`Status: failed` names each protected path that changed and how.
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
`Status: failed` names each protected path that changed and how. Never repair, reset, or
|
|
18
|
+
revert a protected path. Also do not retry the audit: it reads files, so a second run of it
|
|
19
|
+
answers the same.
|
|
20
|
+
|
|
21
|
+
Decide each path the audit names, one at a time. Accept a path only when you can show that
|
|
22
|
+
this run did not write it. Every implementation subagent reports what it touched in its
|
|
23
|
+
Files changed section, so the test is whether the path appears in any Files changed section
|
|
24
|
+
this run collected. If it appears in one, or the sections do not settle it, the change is
|
|
25
|
+
this run's own: use the route-out rules. The plan cannot name a protected path, so a plan
|
|
26
|
+
that does not name it proves nothing on its own.
|
|
27
|
+
|
|
28
|
+
A path that no Files changed section names changed outside the run, and it is the
|
|
29
|
+
developer's own file. Accept it by name:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
npx --yes copilotkit@4.9.37 onboard protect --accept-external --path <path>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Pass one `--path` for each path you accept. Accept only a path the audit named, and only
|
|
36
|
+
when no step of this run wrote it. The command re-captures that path, records that this
|
|
37
|
+
run accepted the change, and prints it. Run the audit again afterwards: it passes and
|
|
38
|
+
names every accepted path, and the closing summary must name them too. An acceptance is
|
|
39
|
+
not a repair. It proves nothing about what the file now holds.
|
|
20
40
|
|
|
21
41
|
`Status: blocked` means the audit has no baseline to read. A blocked audit compared
|
|
22
42
|
nothing and proved nothing changed. It is not a preservation failure: do not report a
|
|
23
43
|
protected path as changed. Report the printed reason and use the route-out rules.
|
|
24
44
|
|
|
25
|
-
|
|
45
|
+
An audit that has not passed never continues the run by itself. Continue only after an
|
|
46
|
+
acceptance clears it, or route out. Do not send an audit result to a repair worker.
|
|
47
|
+
|
|
48
|
+
Report the plan this run is about to implement:
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
npx --yes copilotkit@4.9.37 onboard checkpoint --phase plan-written
|
|
52
|
+
```
|
|
26
53
|
|
|
27
54
|
Spawn one implementation subagent. Tell it to run
|
|
28
|
-
`npx --yes copilotkit@4.9.
|
|
55
|
+
`npx --yes copilotkit@4.9.37 onboard read subagent/implement-and-validate` first and follow
|
|
29
56
|
the prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
30
57
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
31
58
|
and the same handoff. Give it the plan, selected framework, frontend, model, exact target app
|
|
@@ -38,11 +65,18 @@ One subagent implements the whole plan. Do not divide the work across concurrent
|
|
|
38
65
|
and do not spawn a second subagent to reconcile a split.
|
|
39
66
|
|
|
40
67
|
If the implementation result does not start with `Status: passed`, do not continue to proof.
|
|
41
|
-
Run the protected-path audit after the implementation subagent passes.
|
|
42
|
-
|
|
68
|
+
Run the protected-path audit after the implementation subagent passes. Decide each path it
|
|
69
|
+
names the same way as above, against the Files changed section that subagent just
|
|
70
|
+
returned. Continue to proof only when that audit passes.
|
|
71
|
+
|
|
72
|
+
After the selected implementation path passes, report it:
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
npx --yes copilotkit@4.9.37 onboard checkpoint --phase build-validated
|
|
76
|
+
```
|
|
43
77
|
|
|
44
|
-
|
|
45
|
-
`npx --yes copilotkit@4.9.
|
|
78
|
+
Then run
|
|
79
|
+
`npx --yes copilotkit@4.9.37 onboard read proof/round-trip`.
|
|
46
80
|
|
|
47
81
|
## Repair rules
|
|
48
82
|
|
|
@@ -60,4 +94,4 @@ Route out for `Status: blocked`. Route out only when the failure is not yours to
|
|
|
60
94
|
failure is in code this run did not write, the fix requires changing the developer's existing
|
|
61
95
|
agent or frontend, the same command still fails after three repair attempts, or the
|
|
62
96
|
documentation does not support the plan. In those cases run
|
|
63
|
-
`npx --yes copilotkit@4.9.
|
|
97
|
+
`npx --yes copilotkit@4.9.37 onboard read unsupported/no-validated-path`.
|
|
@@ -47,6 +47,10 @@ The handoff must include:
|
|
|
47
47
|
- On a conversion, the criterion this run was judged against, in the words the run was
|
|
48
48
|
given.
|
|
49
49
|
- Any path this run created that git does not ignore, and what to do with each.
|
|
50
|
+
- Any protected path this run accepted as changed from outside it, and what changed. The
|
|
51
|
+
command at the end of this prompt prints each one, so copy them from its output rather
|
|
52
|
+
than from memory. This run did not change them and cannot say what did, so the developer
|
|
53
|
+
decides what to do about each.
|
|
50
54
|
|
|
51
55
|
A run leaves paths beside the credential file. Tool output such as `.playwright-mcp/` and
|
|
52
56
|
`.langgraph_api/` is regenerable, so the developer normally wants it ignored.
|
|
@@ -60,7 +64,7 @@ Name the debugging surface this journey's frontend can reach, rather than the on
|
|
|
60
64
|
of the documentation leads with. For a web frontend it is the CopilotKit Inspector. For
|
|
61
65
|
React Native there is no Inspector: it is a browser overlay built on a DOM custom element,
|
|
62
66
|
and `@copilotkit/react-native` does not ship it. Give a mobile developer
|
|
63
|
-
`npx --yes copilotkit@4.9.
|
|
67
|
+
`npx --yes copilotkit@4.9.37 verify --round-trip`, the runtime's own log, the AG-UI
|
|
64
68
|
Event Inspector in the CopilotKit VS Code extension, and the Intelligence thread view
|
|
65
69
|
instead. Naming the Inspector to a developer who cannot open it costs them the time it
|
|
66
70
|
takes to conclude their own wiring is broken.
|
|
@@ -72,7 +76,7 @@ the friction commands without another developer question. The CLI telemetry gate
|
|
|
72
76
|
whether the report is sent.
|
|
73
77
|
|
|
74
78
|
```text
|
|
75
|
-
npx --yes copilotkit@4.9.
|
|
79
|
+
npx --yes copilotkit@4.9.37 onboard friction --category <slug> --cost-seconds <seconds>
|
|
76
80
|
```
|
|
77
81
|
|
|
78
82
|
Write one or two sentences on the command's standard input. Pick one category from
|
|
@@ -80,6 +84,18 @@ docs-missing, docs-wrong, docs-sequential, cli-gap, sdk-gap, environment,
|
|
|
80
84
|
port-collision, credential, validation-loop, and other. For the seconds, give your
|
|
81
85
|
own estimate of what that one papercut cost this run.
|
|
82
86
|
|
|
87
|
+
Pass --docs-path only for a docs-missing or docs-wrong report, naming the page the report
|
|
88
|
+
is about:
|
|
89
|
+
|
|
90
|
+
```text
|
|
91
|
+
npx --yes copilotkit@4.9.37 onboard friction --category docs-wrong --cost-seconds 300 --docs-path /docs/threads/drawer
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Give the page's site-relative path or its full URL, with no spaces, query string, or
|
|
95
|
+
fragment. A report that names its page can be counted against that page. A report that
|
|
96
|
+
describes the page in prose cannot. Leave the flag off for every other category, and leave
|
|
97
|
+
it off when no single page is at fault.
|
|
98
|
+
|
|
83
99
|
Send no secrets, source code, logs, or command output. The command refuses a report
|
|
84
100
|
that carries any of those, prints the reason, and exits zero. A refused report is not
|
|
85
101
|
a failed step and not a failed onboarding run. Reword it and send it again, or move
|
|
@@ -89,14 +105,14 @@ Tell the developer when you send a friction report. Do not quote or summarize th
|
|
|
89
105
|
unless the developer asks. If the CLI says that telemetry is disabled or unavailable,
|
|
90
106
|
state that the report was not sent and continue without another question.
|
|
91
107
|
|
|
92
|
-
When the evidence is gathered, run `npx --yes copilotkit@4.9.
|
|
108
|
+
When the evidence is gathered, run `npx --yes copilotkit@4.9.37 onboard complete`, carrying
|
|
93
109
|
the surface-check outcome the proof subagent returned. Pass exactly one flag, and pass the
|
|
94
110
|
one that matches this journey's surface.
|
|
95
111
|
|
|
96
112
|
For a web frontend -- React SPA, Next.js, Angular, Vue:
|
|
97
113
|
|
|
98
114
|
```text
|
|
99
|
-
npx --yes copilotkit@4.9.
|
|
115
|
+
npx --yes copilotkit@4.9.37 onboard complete --visual-check <outcome>
|
|
100
116
|
```
|
|
101
117
|
|
|
102
118
|
The outcome is one of `performed`, `skipped-no-browser-tool`, or `failed`.
|
|
@@ -104,7 +120,7 @@ The outcome is one of `performed`, `skipped-no-browser-tool`, or `failed`.
|
|
|
104
120
|
For React Native:
|
|
105
121
|
|
|
106
122
|
```text
|
|
107
|
-
npx --yes copilotkit@4.9.
|
|
123
|
+
npx --yes copilotkit@4.9.37 onboard complete --device-check <outcome>
|
|
108
124
|
```
|
|
109
125
|
|
|
110
126
|
The outcome is one of `performed`, `skipped-no-device`, or `failed`.
|
|
@@ -122,7 +138,7 @@ If the round trip proved and something after it still blocked this run, add `--b
|
|
|
122
138
|
to the same command:
|
|
123
139
|
|
|
124
140
|
```text
|
|
125
|
-
npx --yes copilotkit@4.9.
|
|
141
|
+
npx --yes copilotkit@4.9.37 onboard complete --visual-check performed --blocked-by <cause>
|
|
126
142
|
```
|
|
127
143
|
|
|
128
144
|
The cause is one of `inspector` for a debugging surface that did not open,
|
|
@@ -1,24 +1,48 @@
|
|
|
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.9.
|
|
4
|
+
`npx --yes copilotkit@4.9.37 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
|
-
and the same handoff. Give it the repository findings and exact CLI package spec.
|
|
8
|
-
|
|
7
|
+
and the same handoff. Give it the repository findings and exact CLI package spec.
|
|
8
|
+
|
|
9
|
+
Give it the browser or device control you recorded in the preflight as well. The subagent
|
|
10
|
+
proves the runtime from a shell and needs no browser for that. The control is for the one
|
|
11
|
+
predicate that drives the existing frontend. Where the preflight recorded `unavailable`, say
|
|
12
|
+
so, so the subagent records that predicate as skipped instead of spending the step looking
|
|
13
|
+
for a substitute.
|
|
14
|
+
|
|
15
|
+
Wait for the subagent to finish.
|
|
16
|
+
|
|
17
|
+
Record what that proof returned before you route on it:
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
npx --yes copilotkit@4.9.37 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Report the gate whatever it returned. Pass `passed` when the subagent proved a predicate,
|
|
24
|
+
and `failed` when it cannot classify the baseline.
|
|
25
|
+
A proof that never ran is `skipped`, not failed. The command prints one line and sends
|
|
26
|
+
nothing else.
|
|
27
|
+
|
|
28
|
+
Add `--predicate` with the number the subagent returned, for a failure or a skip. The
|
|
29
|
+
subagent returns all six results, and the number is the only part of them this command
|
|
30
|
+
carries. Pass it on a failure with the predicate that failed, and on a skip with the
|
|
31
|
+
predicate that was skipped, which is `6` where the preflight recorded no surface control.
|
|
32
|
+
A passed gate takes no predicate.
|
|
9
33
|
|
|
10
34
|
Do not change project files before this proof ends. Starting existing development
|
|
11
35
|
processes and their ignored runtime files is allowed.
|
|
12
36
|
|
|
13
37
|
If the subagent proves the `both-oss` predicate, keep its evidence with the plan and run
|
|
14
|
-
`npx --yes copilotkit@4.9.
|
|
38
|
+
`npx --yes copilotkit@4.9.37 onboard read conversion/plan`. That project already works.
|
|
15
39
|
What it needs is the conversion, not a build.
|
|
16
40
|
|
|
17
41
|
If it proves another supported starting state, record that state and run
|
|
18
|
-
`npx --yes copilotkit@4.9.
|
|
42
|
+
`npx --yes copilotkit@4.9.37 onboard read credentials/plan`. This prompt is served
|
|
19
43
|
whenever a project looks like an OSS integration, so a baseline that did not prove is an
|
|
20
44
|
ordinary starting state rather than a failure.
|
|
21
45
|
|
|
22
46
|
If it cannot identify the running process safely, exposes a secret, or finds a baseline
|
|
23
47
|
failure that cannot be classified, run
|
|
24
|
-
`npx --yes copilotkit@4.9.
|
|
48
|
+
`npx --yes copilotkit@4.9.37 onboard read unsupported/no-validated-path`.
|
|
@@ -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.9.
|
|
4
|
+
`npx --yes copilotkit@4.9.37 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
|
|
@@ -17,18 +17,42 @@ this frontend needs reports the skip outcome rather than looking for a way aroun
|
|
|
17
17
|
Give the subagent this guide for continued-development tools:
|
|
18
18
|
https://docs.copilotkit.ai/build-with-agents.md
|
|
19
19
|
|
|
20
|
-
Wait for the subagent to finish.
|
|
20
|
+
Wait for the subagent to finish. Its result arrives as a notification. Do not sleep to
|
|
21
|
+
pass the time.
|
|
22
|
+
|
|
23
|
+
Report each attempt at the journey as it ends, counting from one:
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
npx --yes copilotkit@4.9.37 onboard checkpoint --phase journey-attempted --attempt 1
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Record what that proof returned before you route on it:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
npx --yes copilotkit@4.9.37 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. The
|
|
36
|
+
command prints one line and sends nothing else. Where a repair cycle runs the proof again,
|
|
37
|
+
record each attempt as it ends.
|
|
21
38
|
|
|
22
39
|
For every protected-path audit in this prompt, run
|
|
23
|
-
`npx --yes copilotkit@4.9.
|
|
40
|
+
`npx --yes copilotkit@4.9.37 onboard audit` from the target app directory. If its result
|
|
24
41
|
starts with `Status: blocked`, report the printed reason and use the route-out rules below.
|
|
25
42
|
A blocked audit proved nothing changed and is not a preservation failure. If a
|
|
26
|
-
protected-path audit reports a changed path,
|
|
27
|
-
|
|
43
|
+
protected-path audit reports a changed path, decide it the way the implementation prompt
|
|
44
|
+
does, against the Files changed sections this run has collected. The proof subagent
|
|
45
|
+
returns none, so a finding with no Files changed section to test against routes out. A
|
|
46
|
+
path one of those sections names is this run's own change and routes out too. Accept a
|
|
47
|
+
path only when a section this run collected covers the step that wrote it and does not
|
|
48
|
+
name it:
|
|
49
|
+
`npx --yes copilotkit@4.9.37 onboard protect --accept-external --path <path>`. Then run
|
|
50
|
+
the audit again and name the path in the closing summary. Never repair, reset, or revert a
|
|
51
|
+
protected path.
|
|
28
52
|
|
|
29
53
|
If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
|
|
30
54
|
`proof/complete` only if that audit passes. After the audit passes, run
|
|
31
|
-
`npx --yes copilotkit@4.9.
|
|
55
|
+
`npx --yes copilotkit@4.9.37 onboard read proof/complete`. A performed surface outcome with
|
|
32
56
|
the full round trip is core success even if a continued-development tool fails. A skipped
|
|
33
57
|
surface outcome still enters `proof/complete` so the CLI records the blocked result. Do not
|
|
34
58
|
describe a skipped surface as proved. Keep the Skills and MCP results separate from the proof
|
|
@@ -80,7 +104,14 @@ worker. Repeat repair and validation at most three times. If either worker retur
|
|
|
80
104
|
Run the protected-path audit again after validation passes. Continue only if its result
|
|
81
105
|
starts with `Status: passed`.
|
|
82
106
|
|
|
83
|
-
Restart each project-owned process changed by the repair.
|
|
107
|
+
Restart each project-owned process changed by the repair. Report the cycle, counting from
|
|
108
|
+
one:
|
|
109
|
+
|
|
110
|
+
```text
|
|
111
|
+
npx --yes copilotkit@4.9.37 onboard checkpoint --phase repair-attempted --attempt 1
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Then spawn a fresh proof subagent
|
|
84
115
|
with the full original proof handoff, failed proof evidence, and new validation evidence.
|
|
85
116
|
This handoff includes the plan, documentation, policy, current process IDs, ports,
|
|
86
117
|
surface-control state, the continued-tools guide, and the failed attempt's pinned Step 1
|
|
@@ -95,7 +126,7 @@ and proof cycles.
|
|
|
95
126
|
|
|
96
127
|
Route out only when the failure is not yours to fix, when the same proof still fails after
|
|
97
128
|
three attempts, or when no evidence of the round trip can be produced. In those cases run
|
|
98
|
-
`npx --yes copilotkit@4.9.
|
|
129
|
+
`npx --yes copilotkit@4.9.37 onboard read unsupported/no-validated-path`. All three are
|
|
99
130
|
about the round trip itself. A round trip that proved is not one of them, whatever failed
|
|
100
131
|
after it.
|
|
101
132
|
|
|
@@ -105,7 +136,7 @@ Run the feedback command without another developer question. The CLI telemetry g
|
|
|
105
136
|
whether the report is sent.
|
|
106
137
|
|
|
107
138
|
```text
|
|
108
|
-
npx --yes copilotkit@4.9.
|
|
139
|
+
npx --yes copilotkit@4.9.37 onboard feedback
|
|
109
140
|
```
|
|
110
141
|
|
|
111
142
|
Write at most four lines to standard input: the step you stopped at and what stopped it.
|
|
@@ -43,7 +43,7 @@ the derived name.
|
|
|
43
43
|
Only if the developer asks for an existing project, or asks to see the projects they have,
|
|
44
44
|
read the choices:
|
|
45
45
|
|
|
46
|
-
`npx --yes copilotkit@4.9.
|
|
46
|
+
`npx --yes copilotkit@4.9.37 project list --json`
|
|
47
47
|
|
|
48
48
|
Then ask which one to use. Do not order the projects by creation time. If the developer
|
|
49
49
|
already gave this answer, do not ask again. Do not read a secret value. Do not show or
|
|
@@ -53,7 +53,7 @@ Run the command from the parent directory. Do not inspect another entry in the p
|
|
|
53
53
|
directory. Replace each placeholder with the recorded value. Do not run a placeholder as
|
|
54
54
|
a shell argument.
|
|
55
55
|
|
|
56
|
-
`npx --yes copilotkit@4.9.
|
|
56
|
+
`npx --yes copilotkit@4.9.37 init --name <project-name> --framework <framework-id> --channel none --no-banner --create <name> --install`
|
|
57
57
|
|
|
58
58
|
Pass the confirmed name to both `--name` and `--create`: the app directory and its
|
|
59
59
|
Intelligence project take the same name here. If the developer names an existing project,
|
|
@@ -66,11 +66,17 @@ The command clones the starter into the empty target directory. It also connects
|
|
|
66
66
|
starter to the developer's Intelligence project. The earlier login phase supplies the
|
|
67
67
|
account. The command does not need terminal input.
|
|
68
68
|
|
|
69
|
-
If the command succeeds, do not rebuild the starter by hand.
|
|
69
|
+
If the command succeeds, do not rebuild the starter by hand. Report the clone first:
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
npx --yes copilotkit@4.9.37 onboard checkpoint --phase starter-cloned
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Then inspect only the generated
|
|
70
76
|
paths inside the target directory. Record the files, install result, project connection,
|
|
71
77
|
and validation commands. Then run
|
|
72
|
-
`npx --yes copilotkit@4.9.
|
|
78
|
+
`npx --yes copilotkit@4.9.37 onboard read proof/round-trip`.
|
|
73
79
|
|
|
74
80
|
If the command fails, report its exact error and do not claim that the starter is ready.
|
|
75
81
|
Then run
|
|
76
|
-
`npx --yes copilotkit@4.9.
|
|
82
|
+
`npx --yes copilotkit@4.9.37 onboard read unsupported/no-validated-path`.
|
|
@@ -47,6 +47,28 @@ authority from that version. A runtime below it reports its license from a self-
|
|
|
47
47
|
token alone. A managed project holds no such token, so the threads drawer this conversion
|
|
48
48
|
adds lists nothing even after every command-line check passes.
|
|
49
49
|
|
|
50
|
+
The upgrade moves more than the `@copilotkit/*` namespace. Intersect the dependencies the
|
|
51
|
+
app declares directly with what the target `@copilotkit/*` versions require, and name in the
|
|
52
|
+
plan every one whose declared range excludes the version the target needs, with the version
|
|
53
|
+
it moves to. The `@ag-ui/*` packages are the CopilotKit protocol layer, on their own version
|
|
54
|
+
line, so they are the ones this meets most often, but the rule is the intersection rather
|
|
55
|
+
than that namespace.
|
|
56
|
+
|
|
57
|
+
The intersection includes what a `@copilotkit/*` package on its own version line declares
|
|
58
|
+
about the `1.x` line. `@copilotkit/angular` is the one that has this, and its declaration
|
|
59
|
+
is materialized at publish time rather than written in the repository, so read it from the
|
|
60
|
+
registry rather than from any checkout. Where it cannot be satisfied by the version the
|
|
61
|
+
floor requires, there is no upgrade to plan: that is `unsupported/no-validated-path`.
|
|
62
|
+
|
|
63
|
+
An exact pin is usually deliberate. Naming the move here is what makes it a step the
|
|
64
|
+
developer approved rather than a repair the run invents halfway through. Do not move a pin
|
|
65
|
+
the developer did not approve moving. Where the developer needs one held, that is
|
|
66
|
+
`unsupported/no-validated-path`, and the upgrade step's revert is the way back.
|
|
67
|
+
|
|
68
|
+
Name the exact version the target requires. A caret does not stand in for it below `0.1.0`:
|
|
69
|
+
`^0.0.59` admits only `0.0.59`, so a pin rewritten that way is the same pin under a
|
|
70
|
+
different spelling, and it breaks again as soon as CopilotKit moves to `0.0.60`.
|
|
71
|
+
|
|
50
72
|
Plan the upgrade as its own step before the Intelligence runtime wiring, and plan to
|
|
51
73
|
re-run the recorded baseline checks immediately after it. Name the revert: restore the
|
|
52
74
|
manifest and lockfile to their recorded state and stop, rather than wiring Intelligence
|
|
@@ -100,7 +122,7 @@ here is work the developer did not ask for.
|
|
|
100
122
|
Plan the threads drawer itself: add it from the selected drawer page, where this frontend
|
|
101
123
|
does not already render one. Where this journey's frontend framework ships no threads
|
|
102
124
|
drawer -- React Native --, plan that the thread is proved by
|
|
103
|
-
`npx --yes copilotkit@4.9.
|
|
125
|
+
`npx --yes copilotkit@4.9.37 verify --round-trip`, which needs no browser. Do not plan a
|
|
104
126
|
step that opens the managed Intelligence dashboard.
|
|
105
127
|
|
|
106
128
|
## Order the plan into steps
|
|
@@ -51,7 +51,36 @@ Where the plan names a CopilotKit dependency upgrade:
|
|
|
51
51
|
|
|
52
52
|
1. Apply the planned CopilotKit dependency upgrade before you wire Intelligence.
|
|
53
53
|
2. Report each `@copilotkit/*` version before and after the upgrade.
|
|
54
|
-
3.
|
|
54
|
+
3. Prove that every dependency the app declares directly resolves to exactly one version in
|
|
55
|
+
the installed tree.
|
|
56
|
+
4. Then re-run the recorded baseline checks.
|
|
57
|
+
|
|
58
|
+
The package manager does not fail on this. Where the app pins a package exactly and the
|
|
59
|
+
upgraded CopilotKit needs a different version of it, npm keeps the pin at the top of the
|
|
60
|
+
tree and nests the other copy, so the install exits zero and `--dry-run` shows nothing.
|
|
61
|
+
Two copies of a package that carries types fail the type check in some field that has
|
|
62
|
+
nothing to do with either version, so the developer reads it as a bug in their own code.
|
|
63
|
+
Read the installed tree, not the manifest: ask the package manager how many versions of
|
|
64
|
+
each direct dependency it resolved, with `npm ls <name>`, `pnpm why <name>`, or the
|
|
65
|
+
equivalent for the lockfile this project uses. Direct dependencies are a short list, and
|
|
66
|
+
they are the ones whose duplicate breaks a build, so this catches `react`, `zod`,
|
|
67
|
+
`graphql`, and the next protocol package as well as `@ag-ui/*`.
|
|
68
|
+
|
|
69
|
+
`@copilotkit/*` counts here, not only third-party packages. `@copilotkit/angular`
|
|
70
|
+
publishes on a version line of its own and declares a `@copilotkit/core` chosen when that
|
|
71
|
+
Angular release was cut, so the upgrade can install one `@copilotkit/core` while the
|
|
72
|
+
Angular package demands another. That is the case this catches most expensively, because
|
|
73
|
+
it fails in the threads drawer rather than at the install.
|
|
74
|
+
|
|
75
|
+
If one of them resolves to more than one version, restore the manifest and lockfile to
|
|
76
|
+
their recorded state, leave Intelligence unwired, and report which package resolved to more
|
|
77
|
+
than one version, which versions, and which declared range held the top of the tree. Stop.
|
|
78
|
+
Do not wire Intelligence onto a tree carrying two copies of a package.
|
|
79
|
+
|
|
80
|
+
Never add an `overrides`, `resolutions`, or `pnpm.overrides` block to collapse the two
|
|
81
|
+
copies. It forces a version the developer did not approve onto their whole tree, and it
|
|
82
|
+
turns a reportable mismatch between two published packages into a local workaround nobody
|
|
83
|
+
else can see.
|
|
55
84
|
|
|
56
85
|
If the baseline regresses, restore the manifest and lockfile to their recorded state, leave
|
|
57
86
|
Intelligence unwired, and report the regression with the failing check. Stop. Where the plan
|
|
@@ -11,22 +11,34 @@ Prove the live runtime in this order:
|
|
|
11
11
|
|
|
12
12
|
1. GET `/info` from the project's CopilotKit runtime and require a valid response.
|
|
13
13
|
2. Require `/info` to declare the expected agent id.
|
|
14
|
-
3. Confirm that `licenseStatus`
|
|
15
|
-
Intelligence and is not an OSS starting state.
|
|
14
|
+
3. Confirm that both `runtimeEntitlements` and `licenseStatus` are absent. The presence
|
|
15
|
+
of either means the live runtime uses Intelligence and is not an OSS starting state.
|
|
16
|
+
A runtime below `@copilotkit/runtime` 1.70.0 reports `licenseStatus` and no
|
|
17
|
+
`runtimeEntitlements`, so the second field is the one that catches it. A check that
|
|
18
|
+
reads only the first passes an Intelligence project as an OSS baseline.
|
|
16
19
|
4. Confirm from project files that the runtime constructor passes a `runner` option rather
|
|
17
20
|
than an `intelligence` option. A package, import, project file, or key is not use proof.
|
|
18
21
|
5. Run
|
|
19
|
-
`npx --yes copilotkit@4.9.
|
|
22
|
+
`npx --yes copilotkit@4.9.37 verify --expect-runtime oss --round-trip --agent <expected-agent-id> --json`,
|
|
20
23
|
with the runtime URL or auth header options that this project needs. Require exit zero
|
|
21
24
|
and the JSON `ok` field to be `true`.
|
|
22
25
|
6. Drive one real request through the existing frontend, CopilotKit runtime, and expected
|
|
23
|
-
agent. Require the existing user-visible result.
|
|
24
|
-
round trip is not proved and the state is `unproved`.
|
|
26
|
+
agent. Require the existing user-visible result.
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
Use the surface control the main coding agent recorded for your environment. It either had
|
|
29
|
+
one already or registered one before this step, so that finding is the answer and there is
|
|
30
|
+
nothing here for you to go looking for. Do not add a browser or device driver to this
|
|
31
|
+
project: a devDependency and a browser download land in the diff of a repository that never
|
|
32
|
+
asked for one, which is a different thing from a server registered against the coding agent.
|
|
33
|
+
Where the recorded control is `unavailable`, record predicate 6 as skipped, with that as the
|
|
34
|
+
reason, and prove the rest.
|
|
35
|
+
|
|
36
|
+
Classify the state as `both-oss` when predicates 1 to 5 are all true. Predicate 5 proves the
|
|
37
|
+
CopilotKit round trip from a shell, so those five settle the starting state on their own.
|
|
38
|
+
Predicate 6 adds the user-visible surface on top of a state already proved: record it as
|
|
39
|
+
passed, failed, or skipped, and do not withhold `both-oss` for a skip. A failed predicate 6
|
|
40
|
+
on an available surface is a baseline failure and is not a skip. Return each predicate and
|
|
41
|
+
its secret-safe evidence.
|
|
30
42
|
|
|
31
43
|
The default in-memory OSS runner is ephemeral. SQLite, custom, or framework persistence
|
|
32
44
|
can be durable. Report the persistence that project evidence proves, or `unproved`. Do not
|