copilotkit 4.17.0 → 4.19.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 +133 -6
- package/cli-build-info.json +7 -7
- package/exporters/langgraph/README.md +118 -0
- package/exporters/langgraph/export_checkpointer.py +125 -0
- package/index.js +13382 -9313
- package/onboarding/index.json +1 -1
- package/onboarding/prompts/authenticate/start.md +31 -23
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +57 -200
- package/onboarding/prompts/credentials/plan.md +50 -23
- package/onboarding/prompts/credentials/settle-credentials.md +56 -217
- package/onboarding/prompts/credentials/write-plan.md +17 -8
- package/onboarding/prompts/fallback/best-effort.md +36 -24
- package/onboarding/prompts/feature/a2ui/implement.md +7 -7
- package/onboarding/prompts/feature/a2ui/proof.md +8 -8
- package/onboarding/prompts/feature/a2ui/start.md +53 -9
- package/onboarding/prompts/feature/channels/implement.md +8 -8
- package/onboarding/prompts/feature/channels/proof.md +7 -7
- package/onboarding/prompts/feature/channels/start.md +50 -7
- package/onboarding/prompts/feature/chat-suggestions/implement.md +7 -7
- package/onboarding/prompts/feature/chat-suggestions/proof.md +7 -7
- package/onboarding/prompts/feature/chat-suggestions/start.md +50 -7
- package/onboarding/prompts/feature/complete.md +2 -2
- package/onboarding/prompts/feature/learning/implement.md +24 -19
- package/onboarding/prompts/feature/learning/proof.md +8 -8
- package/onboarding/prompts/feature/learning/start.md +43 -20
- package/onboarding/prompts/feature/open-generative-ui/implement.md +7 -7
- package/onboarding/prompts/feature/open-generative-ui/proof.md +7 -7
- package/onboarding/prompts/feature/open-generative-ui/start.md +50 -7
- package/onboarding/prompts/feature/realtime-sync/implement.md +8 -8
- package/onboarding/prompts/feature/realtime-sync/proof.md +7 -7
- package/onboarding/prompts/feature/realtime-sync/start.md +49 -6
- package/onboarding/prompts/feature/rich-threads/implement.md +9 -9
- package/onboarding/prompts/feature/rich-threads/proof.md +7 -7
- package/onboarding/prompts/feature/rich-threads/start.md +49 -6
- package/onboarding/prompts/feature/stop.md +5 -5
- package/onboarding/prompts/feature/voice/implement.md +7 -7
- package/onboarding/prompts/feature/voice/proof.md +7 -7
- package/onboarding/prompts/feature/voice/start.md +50 -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 +8 -3
- package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +8 -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 +9 -8
- 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 +27 -20
- package/onboarding/prompts/proof/complete.md +35 -19
- package/onboarding/prompts/proof/oss-baseline.md +5 -5
- package/onboarding/prompts/proof/round-trip.md +29 -20
- package/onboarding/prompts/research/gather.md +6 -6
- package/onboarding/prompts/research/merge.md +5 -4
- package/onboarding/prompts/research/preflight.md +15 -50
- package/onboarding/prompts/research/route.md +7 -6
- package/onboarding/prompts/starter/clone.md +8 -7
- package/onboarding/prompts/stopped/run-failed.md +4 -4
- package/onboarding/prompts/subagent/create-plan.md +19 -1
- package/onboarding/prompts/subagent/inspect-repository.md +18 -3
- package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
- package/onboarding/prompts/subagent/prove-round-trip.md +106 -62
- package/onboarding/prompts/unsupported/no-validated-path.md +4 -4
- package/package.json +1 -1
- package/release/release-tool.js +28 -5
|
@@ -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.19.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
|
|
@@ -13,6 +13,8 @@ Give it the browser or device control you recorded in the preflight as well. The
|
|
|
13
13
|
drives the surface and cannot see your environment, so without that finding it spends the
|
|
14
14
|
step discovering what you already know. A subagent told it has no control for the surface
|
|
15
15
|
this frontend needs reports the skip outcome rather than looking for a way around it.
|
|
16
|
+
A web run with no browser tool reports `skipped-no-browser-tool`. That outcome completes the
|
|
17
|
+
run once the round trip is recorded as `passed`.
|
|
16
18
|
|
|
17
19
|
A run that cloned a starter is the exception. Tell that subagent that this run cloned a
|
|
18
20
|
starter, to finish after `verify --round-trip`, and to open no browser. The cloned code is what this repository's
|
|
@@ -22,7 +24,7 @@ expensive step in this setup. `verify --round-trip` reads the answer back off th
|
|
|
22
24
|
so it holds for every runtime mount and needs no browser. Give that subagent no browser or
|
|
23
25
|
device control, and have it report `skipped-cloned-starter` rather than a missing
|
|
24
26
|
capability: nothing was unavailable, the run declined to spend it. That outcome completes
|
|
25
|
-
the run.
|
|
27
|
+
the run.
|
|
26
28
|
|
|
27
29
|
Give the subagent this guide for continued-development tools:
|
|
28
30
|
https://docs.copilotkit.ai/build-with-agents.md
|
|
@@ -33,21 +35,22 @@ pass the time.
|
|
|
33
35
|
Report each attempt at the journey as it ends, counting from one:
|
|
34
36
|
|
|
35
37
|
```text
|
|
36
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
38
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase journey-attempted --attempt 1
|
|
37
39
|
```
|
|
38
40
|
|
|
39
41
|
Record what that proof returned before you route on it:
|
|
40
42
|
|
|
41
43
|
```text
|
|
42
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
44
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
43
45
|
```
|
|
44
46
|
|
|
45
|
-
Report the gate whatever it returned. A proof that never ran is `skipped`, not failed.
|
|
46
|
-
|
|
47
|
+
Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. A
|
|
48
|
+
round trip that `verify --round-trip` ran and saw fail is `failed`, and the command refuses
|
|
49
|
+
to record it as `skipped`. The command prints one line and sends nothing else. Where a repair cycle runs the proof again,
|
|
47
50
|
record each attempt as it ends.
|
|
48
51
|
|
|
49
52
|
For every protected-path audit in this prompt, run
|
|
50
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
53
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard audit` from the target app directory. If its result
|
|
51
54
|
starts with `Status: blocked`, report the printed reason and use the route-out rules below.
|
|
52
55
|
A blocked audit proved nothing changed and is not a preservation failure. If a
|
|
53
56
|
protected-path audit reports a changed path, decide it the way the implementation prompt
|
|
@@ -56,7 +59,7 @@ returns none, so a finding with no Files changed section to test against routes
|
|
|
56
59
|
path one of those sections names is this run's own change and routes out too. Accept a
|
|
57
60
|
path only when a section this run collected covers the step that wrote it and does not
|
|
58
61
|
name it:
|
|
59
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
62
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --accept-external --path <path>`. Then run
|
|
60
63
|
the audit again and name the path in the closing summary. Never repair, reset, or revert a
|
|
61
64
|
protected path.
|
|
62
65
|
|
|
@@ -64,17 +67,23 @@ That holds for a repair cycle too. When the fix for a failing check lands on a p
|
|
|
64
67
|
path, the path is still the developer's, however right the diagnosis is and however small
|
|
65
68
|
the fix. Reading the file never settles who wrote it. Ask the developer to allow the
|
|
66
69
|
change, and record their answer with
|
|
67
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
70
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
|
|
68
71
|
or route out. Never repair it, and never send it to a repair worker.
|
|
69
72
|
|
|
70
73
|
If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
|
|
71
74
|
`proof/complete` only if that audit passes. After the audit passes, run
|
|
72
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
75
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read proof/complete`. A performed surface outcome with
|
|
73
76
|
the full round trip is core success even if a continued-development tool fails. A skipped
|
|
74
|
-
surface outcome still enters `proof/complete
|
|
75
|
-
`skipped-
|
|
76
|
-
|
|
77
|
-
result.
|
|
77
|
+
surface outcome still enters `proof/complete`. The CLI records `skipped-cloned-starter` and
|
|
78
|
+
`skipped-no-browser-tool` after a passed round trip as complete, and `skipped-no-device` as
|
|
79
|
+
blocked. Do not describe a
|
|
80
|
+
skipped surface as proved. Keep the Skills result separate from the proof result.
|
|
81
|
+
|
|
82
|
+
A passed result can carry the surface-check outcome `failed` with the cause
|
|
83
|
+
`browser-control-unresponsive`. It means that the browser tool stopped answering, not that
|
|
84
|
+
the journey failed. Record the round trip as `passed`, and carry the cause to
|
|
85
|
+
`proof/complete`. Do not send it to a repair worker, and do not run the proof again. No
|
|
86
|
+
repair to the project reaches the tool, and a second attempt waits on the same hang.
|
|
78
87
|
|
|
79
88
|
If the round trip proves and something after it blocks this run anyway -- the debugging
|
|
80
89
|
surface, or a capability the approved plan already excluded for this framework -- read
|
|
@@ -147,7 +156,7 @@ Restart each project-owned process changed by the repair. Report the cycle, coun
|
|
|
147
156
|
one:
|
|
148
157
|
|
|
149
158
|
```text
|
|
150
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
159
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase repair-attempted --attempt 1
|
|
151
160
|
```
|
|
152
161
|
|
|
153
162
|
Then spawn a fresh proof subagent
|
|
@@ -165,18 +174,18 @@ proof cycles, use the route-out rules below.
|
|
|
165
174
|
|
|
166
175
|
Route out only when the failure is not yours to fix, when the same proof still fails after
|
|
167
176
|
three attempts, or when no evidence of the round trip can be produced. In those cases run
|
|
168
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
177
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read stopped/run-failed`. The stack is supported:
|
|
169
178
|
this run did not finish, which is a different ending and a different report. All three are
|
|
170
179
|
about the round trip itself. A round trip that proved is not one of them, whatever failed
|
|
171
180
|
after it.
|
|
172
181
|
|
|
173
182
|
If you stop here without taking that route -- a repair cycle you cannot finish, a limit in
|
|
174
|
-
your own harness, a run that has run out -- send one short report before you stop.
|
|
175
|
-
friction command
|
|
176
|
-
|
|
183
|
+
your own harness, a run that has run out -- send one short report before you stop. The
|
|
184
|
+
friction command follows the telemetry setting the developer already chose, so it needs no
|
|
185
|
+
separate question.
|
|
177
186
|
|
|
178
187
|
```text
|
|
179
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
188
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
180
189
|
```
|
|
181
190
|
|
|
182
191
|
`--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.19.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.19.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.19.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,7 +91,7 @@ Start both research subagents in parallel:
|
|
|
91
91
|
Report that both subagents started:
|
|
92
92
|
|
|
93
93
|
```text
|
|
94
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
94
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase research-dispatched
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -100,8 +100,8 @@ failed step.
|
|
|
100
100
|
The research is under way. Continue to the surface-control preflight while it runs:
|
|
101
101
|
|
|
102
102
|
```text
|
|
103
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
103
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard read research/preflight
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
If inspection stops onboarding, run
|
|
107
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
107
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read stopped/run-failed`.
|
|
@@ -21,7 +21,7 @@ Project selection is where the settled port is written down, through `--runtime-
|
|
|
21
21
|
Then report that the research came back:
|
|
22
22
|
|
|
23
23
|
```text
|
|
24
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
24
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase research-returned
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -39,7 +39,8 @@ verifier result.
|
|
|
39
39
|
|
|
40
40
|
A target project directory that holds no project has no app directory to key on, and
|
|
41
41
|
that is a merged result rather than a failed merge. Record that this run has no target app
|
|
42
|
-
directory and no environment row
|
|
42
|
+
directory and no environment row. Keep the toolchain reading: it is about this machine, not
|
|
43
|
+
a directory, and the framework question reads it. Then take the read below. Do not send a focused directory
|
|
43
44
|
check, and do not use the stop route: neither worker can find a directory a developer has
|
|
44
45
|
not created yet, and the route below is where such a project picks its starter.
|
|
45
46
|
|
|
@@ -54,7 +55,7 @@ worker a focused directory check. Continue only when both workers return the sam
|
|
|
54
55
|
app directory. Both results must start with `Status: passed`. Otherwise, use the stop route.
|
|
55
56
|
|
|
56
57
|
When both research results are merged, run
|
|
57
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
58
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read research/route`.
|
|
58
59
|
|
|
59
60
|
If inspection stops onboarding, run
|
|
60
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
61
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read stopped/run-failed`.
|
|
@@ -5,71 +5,36 @@ every later step reads one recorded answer instead of guessing. Do not change ap
|
|
|
5
5
|
code here, and do not wait for the research packets yet.
|
|
6
6
|
|
|
7
7
|
Prove whether your coding-agent environment has browser or device control. Do not assume it
|
|
8
|
-
either way, and do not report what you expect to be true. Use a browser or device tool
|
|
9
|
-
|
|
10
|
-
CopilotKit documentation server. With a browser tool, open one inert page such as
|
|
8
|
+
either way, and do not report what you expect to be true. Use a browser or device tool that
|
|
9
|
+
is already loaded in this session. With a browser tool, open one inert page such as
|
|
11
10
|
`about:blank` and read its title. With a device tool and no browser, list the booted devices
|
|
12
11
|
in one command: `adb devices -l`. Record the outcome of that attempt: `available` when the
|
|
13
|
-
tool answered, `unavailable` when there was none to call or the page did not open. Use
|
|
14
|
-
|
|
12
|
+
tool answered, `unavailable` when there was none to call or the page did not open. Use the
|
|
13
|
+
control that matches the selected surface later.
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
Where no
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
agent's configuration rather than in their repository, and that they can remove it again.
|
|
23
|
-
Say that before you run the command. The run does not ask again.
|
|
24
|
-
|
|
25
|
-
Register this server:
|
|
26
|
-
|
|
27
|
-
```text
|
|
28
|
-
npx --yes @playwright/mcp@latest --browser chrome --isolated --output-dir <project>/.copilotkit/proof/browser
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Replace `<project>` with the absolute path of the target project directory. The server is
|
|
32
|
-
registered against the coding agent rather than against a directory, so a relative path here
|
|
33
|
-
resolves wherever that server happens to start.
|
|
34
|
-
|
|
35
|
-
`--browser chrome` drives an installed Google Chrome. Where this machine has none, use
|
|
36
|
-
`--browser chromium` instead and expect Playwright to download a browser build. Tell the
|
|
37
|
-
developer before that download starts. If the server then reports no build, run
|
|
38
|
-
`npx playwright install chromium`, and if it still cannot find one, run
|
|
39
|
-
`npx @playwright/mcp install-browser chrome-for-testing`. `--isolated` keeps the profile in
|
|
40
|
-
memory, so it never touches their own Chrome profile. `--output-dir` keeps the snapshots and
|
|
41
|
-
screenshots out of the developer's repository root: without it this server writes them to
|
|
42
|
-
`.playwright-mcp/` beside their code, which a project that never asked for a browser has no
|
|
43
|
-
reason to carry. Register it the way your own harness registers a server, which is the
|
|
44
|
-
mechanism a later step uses for the CopilotKit documentation server.
|
|
45
|
-
|
|
46
|
-
Some coding agents, Claude Code among them, load a newly registered MCP server only at the
|
|
47
|
-
next session start. Tell the developer in one line to expect one restart, then restart and
|
|
48
|
-
re-bind with `npx --prefer-offline --yes copilotkit@4.17.0 onboard start --run <onboarding_run_id>`. That
|
|
49
|
-
restart is a step here, not an error.
|
|
15
|
+
Register nothing. Do not add a browser MCP server to this coding agent, and do not install a
|
|
16
|
+
browser. A server registered during a run loads only in the next session, so it cannot help
|
|
17
|
+
this one. Where no tool answered, the run still completes: the proof step reports
|
|
18
|
+
`skipped-no-browser-tool`, and the closing report tells the developer how to add a browser
|
|
19
|
+
for their next session. Say in one line that the live UI check will be skipped and that the
|
|
20
|
+
run can still complete.
|
|
50
21
|
|
|
51
22
|
Do not add a browser or device driver to the project. A driver added there is a
|
|
52
|
-
devDependency and a browser download in the diff of a repository that never asked for one
|
|
53
|
-
which is a different thing from a server registered against the coding agent.
|
|
54
|
-
|
|
55
|
-
Where the second probe still does not answer -- no browser to drive, no network, or a
|
|
56
|
-
harness that cannot register a server -- record `unavailable` and carry it. Do not keep
|
|
57
|
-
trying. Say so in one line. Nothing here is for the developer to decide.
|
|
23
|
+
devDependency and a browser download in the diff of a repository that never asked for one.
|
|
58
24
|
|
|
59
|
-
|
|
60
|
-
whole finding.
|
|
25
|
+
Where the device probe found no booted device, that is the whole finding.
|
|
61
26
|
|
|
62
27
|
Report that the probe settled, whichever way it came out:
|
|
63
28
|
|
|
64
29
|
```text
|
|
65
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
30
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase surface-probed
|
|
66
31
|
```
|
|
67
32
|
|
|
68
33
|
Then merge the research:
|
|
69
34
|
|
|
70
35
|
```text
|
|
71
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
36
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard read research/merge
|
|
72
37
|
```
|
|
73
38
|
|
|
74
39
|
If inspection stops onboarding, run
|
|
75
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
40
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read stopped/run-failed`.
|
|
@@ -9,11 +9,12 @@ 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.19.0 onboard protect
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
It reads the working tree itself, records every changed or untracked path with a digest,
|
|
16
|
-
and prints the list. Require its result to start with `Status: passed`.
|
|
16
|
+
and prints the list. Require its result to start with `Status: passed`. On a restart of the
|
|
17
|
+
same run, it prints the baseline the run already holds and re-reads nothing.
|
|
17
18
|
|
|
18
19
|
Use the printed list as the protected path list for the rest of the run. Do not assemble
|
|
19
20
|
that list yourself, and do not ask a subagent to hold it: every later audit reads the
|
|
@@ -41,7 +42,7 @@ On either, run this before you read the three findings below, and without asking
|
|
|
41
42
|
purpose question:
|
|
42
43
|
|
|
43
44
|
```text
|
|
44
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
45
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/channels/start
|
|
45
46
|
```
|
|
46
47
|
|
|
47
48
|
Name the provider to that node so it does not ask again. A Slack page names Slack. A Teams
|
|
@@ -96,7 +97,7 @@ settle these three from your own reading of the project. Each one comes from the
|
|
|
96
97
|
packets or it is not proved.
|
|
97
98
|
|
|
98
99
|
If all three are proved, prove the live starting state before any project file changes. Run
|
|
99
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
100
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read proof/oss-baseline`.
|
|
100
101
|
|
|
101
102
|
Route there before you ask the developer anything else. The questions after this prompt
|
|
102
103
|
select a framework and a frontend that the findings already name, so a developer who
|
|
@@ -109,7 +110,7 @@ developer nor the repository findings prove what the project is for, ask one gui
|
|
|
109
110
|
question about the user outcome. This asks what the developer wants to build before you
|
|
110
111
|
select a framework. Give two or three short examples. Record the answer and give it to
|
|
111
112
|
each later subagent. Then run
|
|
112
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
113
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read credentials/plan`.
|
|
113
114
|
|
|
114
115
|
Do not ask that question on the route above. A project carrying all three states its
|
|
115
116
|
purpose in the application it already serves.
|
|
@@ -123,5 +124,5 @@ A purpose question here names a domain before that choice.
|
|
|
123
124
|
Take the same read named above without asking.
|
|
124
125
|
|
|
125
126
|
If authentication, inspection, or the baseline capture stops onboarding, run
|
|
126
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
127
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read stopped/run-failed`. None of them says anything
|
|
127
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.19.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.19.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,
|
|
@@ -108,7 +108,7 @@ account. The command does not need terminal input.
|
|
|
108
108
|
Report the clone before you inspect anything:
|
|
109
109
|
|
|
110
110
|
```text
|
|
111
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
111
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase starter-cloned
|
|
112
112
|
```
|
|
113
113
|
|
|
114
114
|
This is its own step, not an aside. A run that clones and then goes quiet is
|
|
@@ -149,10 +149,11 @@ The two Microsoft Agent Framework starters keep their key outside `<target>/.env
|
|
|
149
149
|
`cd <target>/agent && dotnet user-secrets set OPENAI_API_KEY "<key>"` themselves, even
|
|
150
150
|
if they named a key file.
|
|
151
151
|
|
|
152
|
-
|
|
152
|
+
When you ask, name each variable and the file it goes in, and say that the run continues
|
|
153
|
+
when they reply or resume this session. Then report the pause and end your turn:
|
|
153
154
|
|
|
154
155
|
```text
|
|
155
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
156
|
+
npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase awaiting-model-credential
|
|
156
157
|
```
|
|
157
158
|
|
|
158
159
|
This is a pause, not a stop. Do not send a stop report, and do not take a stop route.
|
|
@@ -163,10 +164,10 @@ call.
|
|
|
163
164
|
|
|
164
165
|
If no credential is missing, report no pause and continue.
|
|
165
166
|
|
|
166
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
167
|
+
Then run `npx --prefer-offline --yes copilotkit@4.19.0 onboard read proof/round-trip`.
|
|
167
168
|
|
|
168
169
|
If the command fails, report its exact error and do not claim that the starter is ready.
|
|
169
170
|
Then run
|
|
170
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
171
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 onboard read stopped/run-failed`. The starter is one this
|
|
171
172
|
graph ships and the stack was chosen from its own supported list, so a command that
|
|
172
173
|
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.19.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
|
|
@@ -60,11 +60,11 @@ said and stop.
|
|
|
60
60
|
|
|
61
61
|
Stop onboarding without making more repository changes.
|
|
62
62
|
|
|
63
|
-
Send one short report.
|
|
64
|
-
|
|
63
|
+
Send one short report. The friction command follows the telemetry setting the developer
|
|
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.19.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
|
|
@@ -103,6 +103,15 @@ it moves to. The `@ag-ui/*` packages are the CopilotKit protocol layer, on their
|
|
|
103
103
|
line, so they are the ones this meets most often, but the rule is the intersection rather
|
|
104
104
|
than that namespace.
|
|
105
105
|
|
|
106
|
+
A package the plan adds that a `@copilotkit/*` or `@ag-ui/*` package also depends on, such
|
|
107
|
+
as `zod`, takes the version that tree resolves, not the latest published one. A peer range
|
|
108
|
+
does not settle it. `@copilotkit/react-core@1.75.0` declares `zod >=3.25`, while
|
|
109
|
+
`@ag-ui/core@0.0.59` requires `zod ^3.22.4`, so a plan that adds zod 4 installs two copies.
|
|
110
|
+
Read the range with `npm view @ag-ui/core@<version> dependencies`, for the `@ag-ui/core`
|
|
111
|
+
version the target `@copilotkit/*` release requires, and plan the latest version inside it.
|
|
112
|
+
Where the project already depends on that package, keep its version if that tree accepts
|
|
113
|
+
it. Otherwise name the move as above.
|
|
114
|
+
|
|
106
115
|
The intersection includes what a `@copilotkit/*` package on its own version line declares
|
|
107
116
|
about the `1.x` line. `@copilotkit/angular` is the one that has this, and its declaration
|
|
108
117
|
is materialized at publish time rather than written in the repository, so read it from the
|
|
@@ -174,7 +183,7 @@ here is work the developer did not ask for.
|
|
|
174
183
|
Plan the threads drawer itself: add it from the selected drawer page, where this frontend
|
|
175
184
|
does not already render one. Where this journey's frontend framework ships no threads
|
|
176
185
|
drawer -- React Native --, plan that the thread is proved by
|
|
177
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
186
|
+
`npx --prefer-offline --yes copilotkit@4.19.0 verify --round-trip`, which needs no browser. Do not plan a
|
|
178
187
|
step that opens the managed Intelligence dashboard.
|
|
179
188
|
|
|
180
189
|
## Order the plan into steps
|
|
@@ -219,6 +228,15 @@ to make a build pass during onboarding.
|
|
|
219
228
|
|
|
220
229
|
The type check runs against the project's own configuration. If the project has no
|
|
221
230
|
type-check command, add one that uses the configuration the project already has.
|
|
231
|
+
Where the repository findings carry a `typescript.migration` for an app, plan it as its
|
|
232
|
+
own step, before the first step that imports a CopilotKit package in that app. Name the
|
|
233
|
+
migration `file` and each change in `changes`, and give its `reason` in one sentence.
|
|
234
|
+
Under `node` or `node10` resolution, TypeScript ignores a package's `exports` map, so
|
|
235
|
+
every CopilotKit subpath import fails the type check while the app still runs. A plan
|
|
236
|
+
without this step stops after approval to ask for it. If the file is a protected path,
|
|
237
|
+
list it under `Authorization requested`. Where no migration is reported, do not change
|
|
238
|
+
`moduleResolution` or `module`. This change does not weaken type safety.
|
|
239
|
+
|
|
222
240
|
Do not add compiler strictness the project did not have. Nothing later in the run is
|
|
223
241
|
allowed to weaken type safety, so a stricter gate named here is one the run cannot get
|
|
224
242
|
back out of.
|
|
@@ -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.19.0 onboard inspect --json
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
It answers the deterministic half of both packets exactly, from the same code
|
|
@@ -15,7 +15,8 @@ It answers the deterministic half of both packets exactly, from the same code
|
|
|
15
15
|
directory on its own, the env files, which variable carries the Intelligence key and which
|
|
16
16
|
file it came from, whether that directory's own process can load it, the package manager
|
|
17
17
|
its lockfile proves, the port it declares, the exact installed version of every
|
|
18
|
-
`@copilotkit/*` dependency,
|
|
18
|
+
`@copilotkit/*` dependency, every provider base URL its process will read, and the
|
|
19
|
+
module resolution its `tsconfig.json` sets, read through the `extends` chain. It reads
|
|
19
20
|
only and prints no secret value.
|
|
20
21
|
|
|
21
22
|
Report each `providerEndpoints` entry with the variable, its origin, and where it came
|
|
@@ -23,6 +24,13 @@ from. A `null` `source` means the process environment supplied it. A coding agen
|
|
|
23
24
|
passes that value on to every dev server it starts, so it decides where the model calls
|
|
24
25
|
go before any project file does. Carry its `warning` as it came back.
|
|
25
26
|
|
|
27
|
+
The packet's `toolchains` block reads the .NET SDK, Node.js, and Python 3 from PATH. Its
|
|
28
|
+
`unready` list names every framework that this machine cannot run yet, with the toolchain
|
|
29
|
+
each one needs. Report both as they came back. The framework question reads them before
|
|
30
|
+
the developer chooses. This reading is about the machine, not about one directory, so
|
|
31
|
+
report it once and not per app. Report it when `apps` is empty too: a project that does
|
|
32
|
+
not exist yet still picks a framework.
|
|
33
|
+
|
|
26
34
|
Carry those readings into your findings as they came back. Do not work one of them out
|
|
27
35
|
again by reading files. The directory that owns `.env` is the hard case and the CLI holds
|
|
28
36
|
the fixes for it, so a second answer derived here is a guess competing with a proof.
|
|
@@ -61,12 +69,19 @@ reading of the files will not reproduce.
|
|
|
61
69
|
- names of required credential variables, beyond the Intelligence key the CLI reported
|
|
62
70
|
- the `.env` modification time, or that no `.env` exists, for a later comparison. It is a
|
|
63
71
|
timestamp, not a value from the file
|
|
64
|
-
- required toolchains and their installed versions
|
|
72
|
+
- required toolchains and their installed versions. Start from the CLI's `toolchains`
|
|
73
|
+
block, and add only the version of each toolchain it reported as present
|
|
65
74
|
- whether each port the CLI reported as declared is free
|
|
66
75
|
- whether the runtime constructor uses a `runner` option, an `intelligence` option, or
|
|
67
76
|
neither can be proved from project files
|
|
68
77
|
- package compatibility risks, and whether any `@copilotkit/*` version the CLI reported is
|
|
69
78
|
below 1.70.0
|
|
79
|
+
- the `tsconfig.json` change each app needs, from `typescript.migration`: its file and each
|
|
80
|
+
change, as they came back. The change lets CopilotKit subpath imports such as
|
|
81
|
+
`@copilotkit/runtime/v2` type-check. A `null` migration means that no change is needed.
|
|
82
|
+
Where `typescript.status` is `unreadable` or `typescript.unresolvedExtends` is not
|
|
83
|
+
empty, read that app's `tsconfig.json` chain and report its `moduleResolution` and
|
|
84
|
+
`module` values, or report them as unproved
|
|
70
85
|
|
|
71
86
|
Key every environment finding by its app or runtime directory. Do not combine findings
|
|
72
87
|
from different directories. The CLI packet keys its own readings the same way.
|
|
@@ -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.19.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
|