copilotkit 4.21.0 → 4.23.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 +419 -23
- package/cli-build-info.json +8 -8
- package/index.js +62600 -43650
- package/onboarding/index.json +92 -9
- package/onboarding/prompts/authenticate/start.md +47 -43
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +12 -7
- package/onboarding/prompts/credentials/plan.md +36 -25
- package/onboarding/prompts/credentials/settle-credentials.md +10 -7
- package/onboarding/prompts/credentials/write-plan.md +22 -20
- package/onboarding/prompts/deployment/choose-local.md +46 -0
- package/onboarding/prompts/deployment/local-evaluation.md +71 -0
- package/onboarding/prompts/fallback/best-effort.md +8 -8
- package/onboarding/prompts/feature/a2ui/implement.md +6 -6
- package/onboarding/prompts/feature/a2ui/plan.md +72 -0
- package/onboarding/prompts/feature/a2ui/proof.md +5 -5
- package/onboarding/prompts/feature/a2ui/start.md +11 -32
- package/onboarding/prompts/feature/channels/implement.md +23 -16
- package/onboarding/prompts/feature/channels/plan.md +85 -0
- package/onboarding/prompts/feature/channels/proof.md +5 -5
- package/onboarding/prompts/feature/channels/start.md +14 -41
- package/onboarding/prompts/feature/chat-suggestions/implement.md +6 -6
- package/onboarding/prompts/feature/chat-suggestions/plan.md +71 -0
- package/onboarding/prompts/feature/chat-suggestions/proof.md +5 -5
- package/onboarding/prompts/feature/chat-suggestions/start.md +11 -30
- package/onboarding/prompts/feature/complete.md +2 -2
- package/onboarding/prompts/feature/learning/implement.md +13 -13
- package/onboarding/prompts/feature/learning/plan.md +82 -0
- package/onboarding/prompts/feature/learning/proof.md +6 -6
- package/onboarding/prompts/feature/learning/start.md +11 -40
- package/onboarding/prompts/feature/open-generative-ui/implement.md +6 -6
- package/onboarding/prompts/feature/open-generative-ui/plan.md +70 -0
- package/onboarding/prompts/feature/open-generative-ui/proof.md +5 -5
- package/onboarding/prompts/feature/open-generative-ui/start.md +11 -30
- package/onboarding/prompts/feature/realtime-sync/implement.md +7 -7
- package/onboarding/prompts/feature/realtime-sync/plan.md +75 -0
- package/onboarding/prompts/feature/realtime-sync/proof.md +5 -5
- package/onboarding/prompts/feature/realtime-sync/start.md +10 -33
- package/onboarding/prompts/feature/rich-threads/implement.md +8 -8
- package/onboarding/prompts/feature/rich-threads/plan.md +77 -0
- package/onboarding/prompts/feature/rich-threads/proof.md +5 -5
- package/onboarding/prompts/feature/rich-threads/start.md +10 -35
- package/onboarding/prompts/feature/stop.md +3 -3
- package/onboarding/prompts/feature/voice/implement.md +6 -6
- package/onboarding/prompts/feature/voice/plan.md +74 -0
- package/onboarding/prompts/feature/voice/proof.md +5 -5
- package/onboarding/prompts/feature/voice/start.md +11 -29
- 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/custom-ag-ui.md +101 -0
- 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 +10 -21
- 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 +14 -13
- package/onboarding/prompts/proof/complete.md +3 -3
- package/onboarding/prompts/proof/oss-baseline.md +5 -5
- package/onboarding/prompts/proof/round-trip.md +18 -13
- package/onboarding/prompts/research/gather.md +9 -8
- package/onboarding/prompts/research/merge.md +6 -3
- package/onboarding/prompts/research/preflight.md +2 -2
- package/onboarding/prompts/research/route.md +26 -18
- package/onboarding/prompts/starter/clone.md +15 -14
- package/onboarding/prompts/stopped/run-failed.md +2 -2
- package/onboarding/prompts/subagent/create-plan.md +33 -40
- package/onboarding/prompts/subagent/implement-and-validate.md +58 -38
- package/onboarding/prompts/subagent/inspect-repository.md +4 -1
- package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
- package/onboarding/prompts/subagent/prove-round-trip.md +117 -257
- package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
- package/package.json +4 -1
- package/release/release-tool.js +167 -18
- package/services/local-auth-worker.js +21465 -0
|
@@ -1,13 +1,18 @@
|
|
|
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.23.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
|
|
8
8
|
documentation URLs, and validation evidence. Give it the documentation policy recorded during
|
|
9
9
|
framework selection or conversion planning. On a conversion, also give it the frozen
|
|
10
|
-
criterion. Give it the protected path list.
|
|
10
|
+
criterion. Give it the protected path list. Give it the developer's answer on the Skills
|
|
11
|
+
install and the Skills result the implementation returned.
|
|
12
|
+
|
|
13
|
+
Give it the frontend files that publish the page context and register the tools, by path,
|
|
14
|
+
from the Files changed sections the implementation returned. The subagent sends what those
|
|
15
|
+
files send, and without their paths it searches the project and its dependencies for them.
|
|
11
16
|
|
|
12
17
|
Give it the browser or device control you recorded in the preflight as well. The subagent
|
|
13
18
|
drives the surface and cannot see your environment, so without that finding it spends the
|
|
@@ -17,7 +22,7 @@ A web run with no browser tool reports `skipped-no-browser-tool`. That outcome c
|
|
|
17
22
|
run once the round trip is recorded as `passed`.
|
|
18
23
|
|
|
19
24
|
A run that cloned a starter is the exception. Tell that subagent that this run cloned a
|
|
20
|
-
starter, to finish after `
|
|
25
|
+
starter, to finish after `onboard proof-check`, and to open no browser. The cloned code is what this repository's
|
|
21
26
|
starter smoke jobs already drive on every change, so opening a browser re-proves in the
|
|
22
27
|
developer's run what those jobs prove before the starter ships, and it is the most
|
|
23
28
|
expensive step in this setup. `verify --round-trip` reads the answer back off the thread,
|
|
@@ -35,7 +40,7 @@ pass the time.
|
|
|
35
40
|
Record what that proof returned before you route on it:
|
|
36
41
|
|
|
37
42
|
```text
|
|
38
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
43
|
+
npx --prefer-offline --yes copilotkit@4.23.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
39
44
|
```
|
|
40
45
|
|
|
41
46
|
Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. A
|
|
@@ -44,7 +49,7 @@ to record it as `skipped`. The command prints one line and sends nothing else. W
|
|
|
44
49
|
record each attempt as it ends.
|
|
45
50
|
|
|
46
51
|
For every protected-path audit in this prompt, run
|
|
47
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
52
|
+
`npx --prefer-offline --yes copilotkit@4.23.0 onboard audit` from the target app directory. If its result
|
|
48
53
|
starts with `Status: blocked`, report the printed reason and use the route-out rules below.
|
|
49
54
|
A blocked audit proved nothing changed and is not a preservation failure. If a
|
|
50
55
|
protected-path audit reports a changed path, decide it the way the implementation prompt
|
|
@@ -53,7 +58,7 @@ returns none, so a finding with no Files changed section to test against routes
|
|
|
53
58
|
path one of those sections names is this run's own change and routes out too. Accept a
|
|
54
59
|
path only when a section this run collected covers the step that wrote it and does not
|
|
55
60
|
name it:
|
|
56
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
61
|
+
`npx --prefer-offline --yes copilotkit@4.23.0 onboard protect --accept-external --path <path>`. Then run
|
|
57
62
|
the audit again and name the path in the closing summary. Never repair, reset, or revert a
|
|
58
63
|
protected path.
|
|
59
64
|
|
|
@@ -61,12 +66,12 @@ That holds for a repair cycle too. When the fix for a failing check lands on a p
|
|
|
61
66
|
path, the path is still the developer's, however right the diagnosis is and however small
|
|
62
67
|
the fix. Reading the file never settles who wrote it. Ask the developer to allow the
|
|
63
68
|
change, and record their answer with
|
|
64
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
69
|
+
`npx --prefer-offline --yes copilotkit@4.23.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
|
|
65
70
|
or route out. Never repair it, and never send it to a repair worker.
|
|
66
71
|
|
|
67
72
|
If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
|
|
68
73
|
`proof/complete` only if that audit passes. After the audit passes, run
|
|
69
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
74
|
+
`npx --prefer-offline --yes copilotkit@4.23.0 onboard read proof/complete`. A performed surface outcome with
|
|
70
75
|
the full round trip is core success even if a continued-development tool fails. A skipped
|
|
71
76
|
surface outcome still enters `proof/complete`. The CLI records `skipped-cloned-starter` and
|
|
72
77
|
`skipped-no-browser-tool` after a passed round trip as complete, and `skipped-no-device` as
|
|
@@ -90,7 +95,7 @@ stop report instead of the application they now have.
|
|
|
90
95
|
|
|
91
96
|
If the round trip fails, decide which kind of failure it is before you route. The proof
|
|
92
97
|
subagent can repair only project-owned processes, ports, and request options, and it can
|
|
93
|
-
|
|
98
|
+
run the credential command that `verify:api_key_loadable_by_app` names. A failure caused
|
|
94
99
|
by a source, configuration, dependency, or tracked-file change is a defect in the new work.
|
|
95
100
|
|
|
96
101
|
Retry the proof subagent only for a project-owned process, port, request-option, or
|
|
@@ -140,8 +145,8 @@ way `implementation/build-and-validate` does: pause and ask the developer, add t
|
|
|
140
145
|
the handoff if they allow it, and use the route-out rules below if they decline. For a
|
|
141
146
|
protected file, record their answer with `--authorize --unplanned` and run the audit again
|
|
142
147
|
first. Then spawn a fresh repair worker with this repair handoff, not the whole-plan
|
|
143
|
-
implementation handoff: the plan, the proof evidence, the protected path list,
|
|
144
|
-
authorized list from that audit.
|
|
148
|
+
implementation handoff: the plan, the proof evidence, the protected path list, the
|
|
149
|
+
authorized list from that audit, and the developer's answer on the Skills install.
|
|
145
150
|
|
|
146
151
|
Run the protected-path audit again after validation passes. Continue only if its result
|
|
147
152
|
starts with `Status: passed`.
|
|
@@ -161,7 +166,7 @@ proof cycles, use the route-out rules below.
|
|
|
161
166
|
|
|
162
167
|
Route out only when the failure is not yours to fix, when the same proof still fails after
|
|
163
168
|
three attempts, or when no evidence of the round trip can be produced. In those cases run
|
|
164
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
169
|
+
`npx --prefer-offline --yes copilotkit@4.23.0 onboard read stopped/run-failed`. The stack is supported:
|
|
165
170
|
this run did not finish, which is a different ending and a different report. All three are
|
|
166
171
|
about the round trip itself. A round trip that proved is not one of them, whatever failed
|
|
167
172
|
after it.
|
|
@@ -172,7 +177,7 @@ friction command follows the telemetry setting the developer already chose, so i
|
|
|
172
177
|
separate question.
|
|
173
178
|
|
|
174
179
|
```text
|
|
175
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
180
|
+
npx --prefer-offline --yes copilotkit@4.23.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
176
181
|
```
|
|
177
182
|
|
|
178
183
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# Gather the evidence this run routes on
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
The developer can still be signing in. Keep reading the login process as
|
|
4
|
+
`authenticate/start` says while this phase runs. This phase inspects the project and proves
|
|
5
|
+
what this environment can drive. Do not change application code here, and do not ask the
|
|
6
|
+
developer a setup question yet: every read-only investigation finishes first.
|
|
6
7
|
|
|
7
8
|
## How to wait for a subagent
|
|
8
9
|
|
|
@@ -44,7 +45,7 @@ Before you end your turn to wait for the developer where the prompt states no de
|
|
|
44
45
|
report the pause:
|
|
45
46
|
|
|
46
47
|
```text
|
|
47
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
48
|
+
npx --prefer-offline --yes copilotkit@4.23.0 onboard checkpoint --phase awaiting-developer
|
|
48
49
|
```
|
|
49
50
|
|
|
50
51
|
When the answer or the result arrives, continue from the step that paused. Do not read an
|
|
@@ -64,7 +65,7 @@ Both research subagents failing means this harness has no working subagent at al
|
|
|
64
65
|
is worth recording once:
|
|
65
66
|
|
|
66
67
|
```text
|
|
67
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
68
|
+
npx --prefer-offline --yes copilotkit@4.23.0 onboard checkpoint --phase delegation-unavailable
|
|
68
69
|
```
|
|
69
70
|
|
|
70
71
|
Then say once, in your own words, that this environment has no working subagents, so you
|
|
@@ -77,7 +78,7 @@ Before you ask the developer any setup question, finish every read-only investig
|
|
|
77
78
|
preflight check in this section.
|
|
78
79
|
|
|
79
80
|
Prepare two research assignments. Give each research subagent one assignment. Tell it to run
|
|
80
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
81
|
+
`npx --prefer-offline --yes copilotkit@4.23.0 onboard read subagent/inspect-repository` first and follow the
|
|
81
82
|
prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
82
83
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
83
84
|
and the same handoff. Require only its assigned packet.
|
|
@@ -91,8 +92,8 @@ Start both research subagents in parallel:
|
|
|
91
92
|
The research is under way. Continue to the surface-control preflight while it runs:
|
|
92
93
|
|
|
93
94
|
```text
|
|
94
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
95
|
+
npx --prefer-offline --yes copilotkit@4.23.0 onboard read research/preflight
|
|
95
96
|
```
|
|
96
97
|
|
|
97
98
|
If inspection stops onboarding, run
|
|
98
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
99
|
+
`npx --prefer-offline --yes copilotkit@4.23.0 onboard read stopped/run-failed`.
|
|
@@ -45,8 +45,11 @@ environment row. If either packet gives no match or more than one match, send ea
|
|
|
45
45
|
worker a focused directory check. Continue only when both workers return the same one target
|
|
46
46
|
app directory. Both results must start with `Status: passed`. Otherwise, use the stop route.
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
Read the next step only after `login --json` has emitted `type: completed`. If sign-in still
|
|
49
|
+
waits on the developer, end your turn and wait for it: that is a pause.
|
|
50
|
+
|
|
51
|
+
When both research results are merged and sign-in is done, run
|
|
52
|
+
`npx --prefer-offline --yes copilotkit@4.23.0 onboard read research/route`.
|
|
50
53
|
|
|
51
54
|
If inspection stops onboarding, run
|
|
52
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
55
|
+
`npx --prefer-offline --yes copilotkit@4.23.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.23.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.23.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.23.0 onboard protect
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
It reads the working tree itself, records every changed or untracked path with a digest,
|
|
@@ -31,28 +31,36 @@ route at the end of this prompt.
|
|
|
31
31
|
|
|
32
32
|
## Route a named Channel before the findings
|
|
33
33
|
|
|
34
|
-
The prompt the developer copied names the docs page it came from. A
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
The prompt the developer copied names the docs page it came from. A CopilotKit docs page
|
|
35
|
+
under `/channels`, `/slack`, or `/teams` names a Channel. So does a run that follows the
|
|
36
|
+
`channels-setup` skill, which `copilotkit channels setup` installs in the project. The
|
|
37
|
+
prompt that command prints names no page. So does a developer who asks for a Channel,
|
|
38
|
+
Slack, or Microsoft Teams in their own words. Any one of these settles the frontend.
|
|
37
39
|
|
|
38
|
-
Record that
|
|
39
|
-
the
|
|
40
|
+
Record that page or request and give it to every later node and subagent. No flag states
|
|
41
|
+
the surface the developer wants, so this record is its only carrier.
|
|
40
42
|
|
|
41
|
-
On
|
|
42
|
-
purpose question:
|
|
43
|
+
On any one of them, run this before you read the three findings below, and without asking
|
|
44
|
+
the purpose question:
|
|
43
45
|
|
|
44
46
|
```text
|
|
45
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
47
|
+
npx --prefer-offline --yes copilotkit@4.23.0 onboard read feature/channels/start
|
|
46
48
|
```
|
|
47
49
|
|
|
48
|
-
Name the provider to that node so it does not ask again. A
|
|
49
|
-
page names Teams.
|
|
50
|
+
Name the provider to that node so it does not ask again. A `/slack` page names Slack. A
|
|
51
|
+
`/teams` page names Teams. A request that names no provider leaves that question to the
|
|
52
|
+
node.
|
|
50
53
|
|
|
51
54
|
Take this route whatever the three findings prove. An agent, a frontend and a CopilotKit
|
|
52
55
|
integration are a valid start for a Channel, not a reason to convert the application: the
|
|
53
56
|
run keeps that code as it is and wires a managed Channel onto it. Do not send a Channel
|
|
54
57
|
request to the conversion route.
|
|
55
58
|
|
|
59
|
+
Nothing else names a Channel. A project with its own channels, bots, or coworkers does not
|
|
60
|
+
ask for one. A repository the developer asked you to clone does not ask for one either.
|
|
61
|
+
Without one of the requests above, read the findings below. `frontend/plan` offers Slack
|
|
62
|
+
and Microsoft Teams when the project has no frontend.
|
|
63
|
+
|
|
56
64
|
## What the merged findings must contain
|
|
57
65
|
|
|
58
66
|
If a repository file exists, each finding must cite it. For an empty project, the subagents
|
|
@@ -78,10 +86,10 @@ directory behind each answer. Read it as a proposal.
|
|
|
78
86
|
- `unmatched` names the dependencies it did not place. Use them as evidence for what the
|
|
79
87
|
project runs.
|
|
80
88
|
|
|
81
|
-
Detection proposes and you dispose.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
answer and say that the two disagreed.
|
|
89
|
+
Detection proposes and you dispose. An agent outside this set that already speaks AG-UI
|
|
90
|
+
is still yours to recognize. The framework question has a route for it, so record in the
|
|
91
|
+
findings that the agent speaks AG-UI and cite the file that proves it. Where your reading
|
|
92
|
+
disagrees with the proposal, record your own answer and say that the two disagreed.
|
|
85
93
|
|
|
86
94
|
## Route on the merged findings
|
|
87
95
|
|
|
@@ -97,7 +105,7 @@ settle these three from your own reading of the project. Each one comes from the
|
|
|
97
105
|
packets or it is not proved.
|
|
98
106
|
|
|
99
107
|
If all three are proved, prove the live starting state before any project file changes. Run
|
|
100
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
108
|
+
`npx --prefer-offline --yes copilotkit@4.23.0 onboard read proof/oss-baseline`.
|
|
101
109
|
|
|
102
110
|
Route there before you ask the developer anything else. The questions after this prompt
|
|
103
111
|
select a framework and a frontend that the findings already name, so a developer who
|
|
@@ -110,7 +118,7 @@ developer nor the repository findings prove what the project is for, ask one gui
|
|
|
110
118
|
question about the user outcome. This asks what the developer wants to build before you
|
|
111
119
|
select a framework. Give two or three short examples. Record the answer and give it to
|
|
112
120
|
each later subagent. Then run
|
|
113
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
121
|
+
`npx --prefer-offline --yes copilotkit@4.23.0 onboard read credentials/plan`.
|
|
114
122
|
|
|
115
123
|
Do not ask that question on the route above. A project carrying all three states its
|
|
116
124
|
purpose in the application it already serves.
|
|
@@ -124,5 +132,5 @@ A purpose question here names a domain before that choice.
|
|
|
124
132
|
Take the same read named above without asking.
|
|
125
133
|
|
|
126
134
|
If authentication, inspection, or the baseline capture stops onboarding, run
|
|
127
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
135
|
+
`npx --prefer-offline --yes copilotkit@4.23.0 onboard read stopped/run-failed`. None of them says anything
|
|
128
136
|
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.23.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
|
|
@@ -78,18 +78,19 @@ way bills a project nobody chose.
|
|
|
78
78
|
|
|
79
79
|
## Clone the starter
|
|
80
80
|
|
|
81
|
-
Run the command from
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
Run the command in one step, from any directory. `--dir` names the target, so the app
|
|
82
|
+
lands there whatever directory the shell is in. Do not change directory before the command.
|
|
83
|
+
Do not inspect another entry in the parent directory. Replace each placeholder with the
|
|
84
|
+
recorded value. Do not run a placeholder as a shell argument. If the path holds a space,
|
|
85
|
+
put it in double quotes.
|
|
84
86
|
|
|
85
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
87
|
+
`npx --prefer-offline --yes copilotkit@4.23.0 init --dir <absolute-target-directory> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
|
|
86
88
|
|
|
87
|
-
`--
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
the dependency install, use
|
|
89
|
+
`--dir` is always the absolute path of the target directory. `init` builds the app in that
|
|
90
|
+
directory and gives the app the directory's name. Do not add `--name`: `init` refuses
|
|
91
|
+
`--name` together with `--dir`. Pass the confirmed project name to `--create` only. If the
|
|
92
|
+
developer names an existing project, use `--project <slug-or-id>` instead of
|
|
93
|
+
`--create <name>`. If the developer asked to skip the dependency install, use
|
|
93
94
|
`--no-install` instead of `--install`. Do not wait for an interactive prompt. Pass every
|
|
94
95
|
answer as a flag. `--no-key-prompt` stops `init` from asking for a model key. The `init`
|
|
95
96
|
output still names each missing key as `Set <VARIABLE> in .env`.
|
|
@@ -143,7 +144,7 @@ When you ask, name each variable and the file it goes in, and say that the run c
|
|
|
143
144
|
when they reply or resume this session. Then report the pause and end your turn:
|
|
144
145
|
|
|
145
146
|
```text
|
|
146
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
147
|
+
npx --prefer-offline --yes copilotkit@4.23.0 onboard checkpoint --phase awaiting-model-credential
|
|
147
148
|
```
|
|
148
149
|
|
|
149
150
|
This is a pause, not a stop. Do not send a stop report, and do not take a stop route.
|
|
@@ -154,10 +155,10 @@ call.
|
|
|
154
155
|
|
|
155
156
|
If no credential is missing, report no pause and continue.
|
|
156
157
|
|
|
157
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
158
|
+
Then run `npx --prefer-offline --yes copilotkit@4.23.0 onboard read proof/round-trip`.
|
|
158
159
|
|
|
159
160
|
If the command fails, report its exact error and do not claim that the starter is ready.
|
|
160
161
|
Then run
|
|
161
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
162
|
+
`npx --prefer-offline --yes copilotkit@4.23.0 onboard read stopped/run-failed`. The starter is one this
|
|
162
163
|
graph ships and the stack was chosen from its own supported list, so a command that
|
|
163
164
|
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.23.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.23.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
|
|
@@ -12,6 +12,13 @@ the documentation example differs from that purpose, the project wins.
|
|
|
12
12
|
Read only inside the project directory. Answer an API question from the documentation
|
|
13
13
|
URLs you were given, not from another checkout on this machine.
|
|
14
14
|
|
|
15
|
+
The main coding agent also gives you the findings of the framework route, such as how the
|
|
16
|
+
agent connects or whether a subclass needs a `clone()` override. Some of those rules, such
|
|
17
|
+
as the `clone()` override, are on no documentation page. Use the findings of the framework
|
|
18
|
+
route as they are. Do not confirm them again from the source of an installed package. Read
|
|
19
|
+
the project's own code only to apply them, for example to find the fields that a `clone()`
|
|
20
|
+
override copies.
|
|
21
|
+
|
|
15
22
|
List the required credential variable names. Do not read or return credential values.
|
|
16
23
|
Preserve each agent or frontend that already exists.
|
|
17
24
|
|
|
@@ -84,24 +91,32 @@ reference naming hosts that route nothing, and it requires the platform URLs the
|
|
|
84
91
|
documentation calls optional. A run that reads that reference configures the runtime
|
|
85
92
|
against a dead host, and the failure arrives as an empty-body 404 with no cause named.
|
|
86
93
|
|
|
87
|
-
|
|
88
|
-
dependency to its latest published version. Packages that share a version line must end
|
|
89
|
-
on the same version. Never force a package onto a version line it does not publish on.
|
|
90
|
-
Resolve each latest version at run time rather than from a remembered version number.
|
|
91
|
-
Where every `@copilotkit/*` dependency already meets that floor, plan no dependency
|
|
92
|
-
change.
|
|
94
|
+
Ask the CLI for the dependency upgrade, from the target directory:
|
|
93
95
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
adds lists nothing even after every command-line check passes.
|
|
96
|
+
```text
|
|
97
|
+
npx --prefer-offline --yes copilotkit@4.23.0 onboard upgrade-plan --json
|
|
98
|
+
```
|
|
98
99
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
100
|
+
It reads the installed tree and the registry. Read `status`:
|
|
101
|
+
|
|
102
|
+
- `none-needed`: every `@copilotkit/*` package already meets the 1.70.0 floor. Plan no
|
|
103
|
+
dependency change.
|
|
104
|
+
- `upgrade`: plan `moves` as their own step, before the Intelligence runtime wiring. Each
|
|
105
|
+
move names the app, the declared range, and the exact version to declare. A
|
|
106
|
+
`required-by` move is a direct dependency the target CopilotKit version needs at a
|
|
107
|
+
version the app's range excludes. Plan to re-run the recorded baseline checks right
|
|
108
|
+
after the upgrade. The revert is `onboard upgrade-plan --revert`, which restores the
|
|
109
|
+
manifests and lockfiles the command snapshotted.
|
|
110
|
+
- `blocked`: `blockedBy` names a package whose own declaration excludes the target.
|
|
111
|
+
Return `Status: blocked` and name `unsupported/no-validated-path` as the outcome.
|
|
112
|
+
- `undetermined`: the CLI did not reach the registry. Return `Status: blocked` with the
|
|
113
|
+
`detail`.
|
|
114
|
+
|
|
115
|
+
The floor is 1.70.0 because the runtime resolves managed Intelligence entitlement
|
|
116
|
+
authority from that version. Below it, the Intelligence features stay dark with no error.
|
|
117
|
+
An exact pin is usually deliberate, so each move is a step the developer approves, not a
|
|
118
|
+
repair the run invents halfway through. Where the developer needs a pin held, return
|
|
119
|
+
`Status: blocked` and name `unsupported/no-validated-path` as the outcome.
|
|
105
120
|
|
|
106
121
|
A package the plan adds that a `@copilotkit/*` or `@ag-ui/*` package also depends on, such
|
|
107
122
|
as `zod`, takes the version that tree resolves, not the latest published one. A peer range
|
|
@@ -110,29 +125,7 @@ does not settle it. `@copilotkit/react-core@1.75.0` declares `zod >=3.25`, while
|
|
|
110
125
|
Read the range with `npm view @ag-ui/core@<version> dependencies`, for the `@ag-ui/core`
|
|
111
126
|
version the target `@copilotkit/*` release requires, and plan the latest version inside it.
|
|
112
127
|
Where the project already depends on that package, keep its version if that tree accepts
|
|
113
|
-
it. Otherwise name the move
|
|
114
|
-
|
|
115
|
-
The intersection includes what a `@copilotkit/*` package on its own version line declares
|
|
116
|
-
about the `1.x` line. `@copilotkit/angular` is the one that has this, and its declaration
|
|
117
|
-
is materialized at publish time rather than written in the repository, so read it from the
|
|
118
|
-
registry rather than from any checkout. Where it cannot be satisfied by the version the
|
|
119
|
-
floor requires, there is no upgrade to plan: return `Status: blocked` and name
|
|
120
|
-
`unsupported/no-validated-path` as the outcome.
|
|
121
|
-
|
|
122
|
-
An exact pin is usually deliberate. Naming the move here is what makes it a step the
|
|
123
|
-
developer approved rather than a repair the run invents halfway through. Do not move a pin
|
|
124
|
-
the developer did not approve moving. Where the developer needs one held, return
|
|
125
|
-
`Status: blocked` and name `unsupported/no-validated-path` as the outcome. The upgrade
|
|
126
|
-
step's revert is the way back.
|
|
127
|
-
|
|
128
|
-
Name the exact version the target requires. A caret does not stand in for it below `0.1.0`:
|
|
129
|
-
`^0.0.59` admits only `0.0.59`, so a pin rewritten that way is the same pin under a
|
|
130
|
-
different spelling, and it breaks again as soon as CopilotKit moves to `0.0.60`.
|
|
131
|
-
|
|
132
|
-
Plan the upgrade as its own step before the Intelligence runtime wiring, and plan to
|
|
133
|
-
re-run the recorded baseline checks immediately after it. Name the revert: restore the
|
|
134
|
-
manifest and lockfile to their recorded state and report the break, rather than wiring
|
|
135
|
-
Intelligence onto a baseline the upgrade broke.
|
|
128
|
+
it. Otherwise name the move in the plan, with the version it moves to.
|
|
136
129
|
|
|
137
130
|
Where the SDK requires an application-level value that the repository cannot supply, such
|
|
138
131
|
as an end-user identity for threads, use one clearly marked local placeholder and name what
|
|
@@ -183,7 +176,7 @@ here is work the developer did not ask for.
|
|
|
183
176
|
Plan the threads drawer itself: add it from the selected drawer page, where this frontend
|
|
184
177
|
does not already render one. Where this journey's frontend framework ships no threads
|
|
185
178
|
drawer -- React Native --, plan that the thread is proved by
|
|
186
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
179
|
+
`npx --prefer-offline --yes copilotkit@4.23.0 verify --round-trip`, which needs no browser. Do not plan a
|
|
187
180
|
step that opens the managed Intelligence dashboard.
|
|
188
181
|
|
|
189
182
|
## Name the files the run writes itself
|
|
@@ -110,44 +110,32 @@ upgrade, Intelligence runtime wiring, and the approved threads drawer: the drawe
|
|
|
110
110
|
in that list because the approved plan already named it, not because this step invents a
|
|
111
111
|
new one. After wiring, run the recorded baseline checks and report any regression.
|
|
112
112
|
|
|
113
|
-
Where the plan names a CopilotKit dependency upgrade
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
their recorded state, leave Intelligence unwired, and report which package resolved to more
|
|
140
|
-
than one version, which versions, and which declared range held the top of the tree. Then
|
|
141
|
-
end your turn. Do not wire Intelligence onto a tree carrying two copies of a package.
|
|
142
|
-
|
|
143
|
-
Never add an `overrides`, `resolutions`, or `pnpm.overrides` block to collapse the two
|
|
144
|
-
copies. It forces a version the developer did not approve onto their whole tree, and it
|
|
145
|
-
turns a reportable mismatch between two published packages into a local workaround nobody
|
|
146
|
-
else can see.
|
|
147
|
-
|
|
148
|
-
If the baseline regresses, restore the manifest and lockfile to their recorded state, leave
|
|
149
|
-
Intelligence unwired, and report the regression with the failing check. Then end your
|
|
150
|
-
turn. Where the plan names no dependency change, report that the installed versions met
|
|
113
|
+
Where the plan names a CopilotKit dependency upgrade, apply its moves before you wire
|
|
114
|
+
Intelligence: declare each exact version in its app's manifest, then install with the
|
|
115
|
+
project's package manager. Then check the installed tree:
|
|
116
|
+
|
|
117
|
+
```text
|
|
118
|
+
npx --prefer-offline --yes copilotkit@4.23.0 onboard upgrade-plan --check --json
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
`single` means every direct dependency resolved to one version. `duplicates` names each
|
|
122
|
+
package that resolved to more than one, and the versions. `no-tree` means the apps in
|
|
123
|
+
`unread` have no `node_modules` to read. Install first. Under Yarn Plug'n'Play, ask
|
|
124
|
+
`yarn why <name>` for each direct dependency. The install does not fail on this. npm
|
|
125
|
+
keeps a pin at the top of the tree and nests the copy the upgrade needs. Two copies of a
|
|
126
|
+
package that carries types then fail the type check in an unrelated field. Then re-run
|
|
127
|
+
the recorded baseline checks.
|
|
128
|
+
|
|
129
|
+
If the check finds duplicates or the baseline regresses, put the manifests and lockfiles
|
|
130
|
+
back, leave Intelligence unwired, and report what failed:
|
|
131
|
+
|
|
132
|
+
```text
|
|
133
|
+
npx --prefer-offline --yes copilotkit@4.23.0 onboard upgrade-plan --revert --json
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Then end your turn. Never add an `overrides`, `resolutions`, or `pnpm.overrides` block to
|
|
137
|
+
collapse two copies. It forces a version the developer did not approve onto their whole
|
|
138
|
+
tree. Where the plan names no dependency change, report that the installed versions met
|
|
151
139
|
the floor.
|
|
152
140
|
|
|
153
141
|
When the documentation uses the framework's scaffolder,
|
|
@@ -181,6 +169,38 @@ constructor for it, and never write an id the plan does not name: a selector poi
|
|
|
181
169
|
id the platform does not hold answers `LEARNING_CONTAINER_NOT_FOUND` on every thread create.
|
|
182
170
|
Where the plan names no container, write no selector.
|
|
183
171
|
|
|
172
|
+
## Install the CopilotKit Skills
|
|
173
|
+
|
|
174
|
+
The main coding agent gives you the developer's answer on the Skills install. Where the
|
|
175
|
+
whole-plan implementation handoff carries no answer, read the approved plan. Approving the
|
|
176
|
+
plan without a word on the Skills approves the install. A repair handoff that carries no
|
|
177
|
+
Skills answer never installs them.
|
|
178
|
+
|
|
179
|
+
Where `.agents/skills` already holds the CopilotKit skills, do not install them again.
|
|
180
|
+
Report that they are in place.
|
|
181
|
+
|
|
182
|
+
Install the Skills only when the developer approved them. Where the developer declined
|
|
183
|
+
them, do not install them, and do not call that a change from the plan. Report in the
|
|
184
|
+
Validation section that the developer declined them.
|
|
185
|
+
|
|
186
|
+
Install them after you run the full validation list. Tell the developer what the skills
|
|
187
|
+
install writes into this project before you run it: a `.agents/skills` directory holding
|
|
188
|
+
one folder per CopilotKit skill, linked into `.claude/skills`. Both sit in the working tree,
|
|
189
|
+
so the install shows up in `git status` and can land in a commit. You cannot know whether
|
|
190
|
+
this project keeps those directories in version control, so name them before you write them
|
|
191
|
+
rather than after.
|
|
192
|
+
|
|
193
|
+
Then run `npx skills add CopilotKit/CopilotKit/skills -y` in the target app directory.
|
|
194
|
+
|
|
195
|
+
The plan names both directories under `Files the run writes itself`, so they are not
|
|
196
|
+
departures. Name them under Files changed. Do not register an MCP server: the Skills read
|
|
197
|
+
the CopilotKit documentation without one.
|
|
198
|
+
|
|
199
|
+
Check whether the install succeeded, and record the command result in the Validation
|
|
200
|
+
section. A failed install does not change your status. Report it and continue.
|
|
201
|
+
|
|
202
|
+
## Report the result
|
|
203
|
+
|
|
184
204
|
Report the runtime constructor you wrote. Name whether it passes `intelligence` or
|
|
185
205
|
`runner`, and whether it carries `getLearningContainerId`, with the id it returns.
|
|
186
206
|
A runtime built with `runner` is the SSE runtime and never reads the credential,
|
|
@@ -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.23.0 onboard inspect --json
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
It answers the deterministic half of both packets exactly, from the same code
|
|
@@ -50,6 +50,9 @@ Find evidence for:
|
|
|
50
50
|
- whether the target project directory contains any entries
|
|
51
51
|
- any existing agent framework and frontend, confirming or contradicting the
|
|
52
52
|
`detection` block the CLI proposed
|
|
53
|
+
- for an existing agent in no listed framework, whether it speaks AG-UI: a class that
|
|
54
|
+
extends `AbstractAgent` and implements `run`, or an endpoint that streams AG-UI events.
|
|
55
|
+
Cite the file
|
|
53
56
|
- current CopilotKit integration and configuration
|
|
54
57
|
- authentication boundaries
|
|
55
58
|
- initial changed and untracked paths, without file contents
|
|
@@ -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.23.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
|