copilotkit 4.16.0 → 4.18.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 +195 -8
- 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 +13890 -9434
- package/onboarding/index.json +1 -1
- package/onboarding/prompts/authenticate/start.md +24 -23
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +56 -199
- package/onboarding/prompts/credentials/plan.md +24 -23
- package/onboarding/prompts/credentials/settle-credentials.md +40 -177
- package/onboarding/prompts/credentials/write-plan.md +47 -23
- package/onboarding/prompts/fallback/best-effort.md +25 -17
- package/onboarding/prompts/feature/a2ui/implement.md +40 -12
- package/onboarding/prompts/feature/a2ui/proof.md +29 -9
- package/onboarding/prompts/feature/a2ui/start.md +54 -12
- package/onboarding/prompts/feature/blocked-by-plan.md +4 -4
- package/onboarding/prompts/feature/channels/implement.md +41 -13
- package/onboarding/prompts/feature/channels/proof.md +30 -11
- package/onboarding/prompts/feature/channels/start.md +54 -9
- package/onboarding/prompts/feature/chat-suggestions/implement.md +40 -12
- package/onboarding/prompts/feature/chat-suggestions/proof.md +29 -9
- package/onboarding/prompts/feature/chat-suggestions/start.md +51 -10
- package/onboarding/prompts/feature/complete.md +2 -2
- package/onboarding/prompts/feature/learning/implement.md +66 -29
- package/onboarding/prompts/feature/learning/proof.md +30 -10
- package/onboarding/prompts/feature/learning/start.md +46 -20
- package/onboarding/prompts/feature/open-generative-ui/implement.md +41 -13
- package/onboarding/prompts/feature/open-generative-ui/proof.md +29 -9
- package/onboarding/prompts/feature/open-generative-ui/start.md +51 -10
- package/onboarding/prompts/feature/realtime-sync/implement.md +41 -13
- package/onboarding/prompts/feature/realtime-sync/proof.md +31 -10
- package/onboarding/prompts/feature/realtime-sync/start.md +51 -9
- package/onboarding/prompts/feature/rich-threads/implement.md +42 -14
- package/onboarding/prompts/feature/rich-threads/proof.md +31 -10
- package/onboarding/prompts/feature/rich-threads/start.md +51 -9
- package/onboarding/prompts/feature/stop.md +5 -5
- package/onboarding/prompts/feature/voice/implement.md +40 -12
- package/onboarding/prompts/feature/voice/proof.md +29 -9
- package/onboarding/prompts/feature/voice/start.md +51 -9
- package/onboarding/prompts/framework/ag2.md +2 -2
- package/onboarding/prompts/framework/agno.md +4 -4
- package/onboarding/prompts/framework/built-in.md +2 -2
- package/onboarding/prompts/framework/claude-sdk-python.md +8 -7
- package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
- package/onboarding/prompts/framework/crewai-flows.md +15 -7
- package/onboarding/prompts/framework/deep-agents.md +4 -3
- package/onboarding/prompts/framework/google-adk.md +7 -7
- 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 +4 -4
- 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 +6 -6
- package/onboarding/prompts/framework/pydantic-ai.md +2 -2
- package/onboarding/prompts/framework/strands-python.md +4 -4
- package/onboarding/prompts/framework/strands-typescript.md +4 -4
- package/onboarding/prompts/frontend/angular.md +3 -3
- package/onboarding/prompts/frontend/nextjs.md +16 -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 +68 -30
- package/onboarding/prompts/proof/complete.md +24 -17
- package/onboarding/prompts/proof/oss-baseline.md +16 -12
- package/onboarding/prompts/proof/round-trip.md +39 -27
- package/onboarding/prompts/research/gather.md +8 -7
- package/onboarding/prompts/research/merge.md +3 -3
- package/onboarding/prompts/research/preflight.md +4 -4
- package/onboarding/prompts/research/route.md +6 -6
- package/onboarding/prompts/starter/clone.md +16 -12
- package/onboarding/prompts/stopped/run-failed.md +11 -11
- package/onboarding/prompts/subagent/create-plan.md +24 -10
- package/onboarding/prompts/subagent/implement-and-validate.md +25 -11
- package/onboarding/prompts/subagent/inspect-repository.md +21 -6
- package/onboarding/prompts/subagent/prove-oss-baseline.md +5 -4
- package/onboarding/prompts/subagent/prove-round-trip.md +77 -23
- package/onboarding/prompts/unsupported/no-validated-path.md +4 -4
- package/package.json +1 -5
- package/release/release-tool.js +189 -44
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Prove the existing OSS baseline
|
|
2
2
|
|
|
3
3
|
Do not prove the baseline yourself. Spawn one proof subagent. Tell it to run
|
|
4
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
4
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 onboard read subagent/prove-oss-baseline` first and follow the
|
|
5
5
|
prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
6
6
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
7
7
|
and the same handoff. Give it the repository findings and exact CLI package spec.
|
|
@@ -17,30 +17,34 @@ Wait for the subagent to finish.
|
|
|
17
17
|
Record what that proof returned before you route on it:
|
|
18
18
|
|
|
19
19
|
```text
|
|
20
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
20
|
+
npx --prefer-offline --yes copilotkit@4.18.0 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
Report the gate whatever it returned.
|
|
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
|
|
23
|
+
Report the gate whatever it returned. Use the list below. A proof that never ran is `skipped`, not failed. The command prints one line and sends
|
|
26
24
|
nothing else.
|
|
27
25
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
The subagent returns all six results. Report the gate from them this way:
|
|
27
|
+
|
|
28
|
+
- Predicates 1 to 5 true, and predicate 6 passed: `--outcome passed`.
|
|
29
|
+
- Predicates 1 to 5 true, and predicate 6 skipped because the preflight recorded no surface
|
|
30
|
+
control: `--outcome passed`. A skipped predicate 6 does not withhold `both-oss`.
|
|
31
|
+
- Predicates 1 to 5 true, and predicate 6 failed on an available surface:
|
|
32
|
+
`--outcome failed --predicate 6`. That is a baseline failure, not a skip.
|
|
33
|
+
- Any of predicates 1 to 5 failed: `--outcome failed --predicate <the first that failed>`.
|
|
34
|
+
- The proof never ran: `--outcome skipped`.
|
|
35
|
+
|
|
32
36
|
A passed gate takes no predicate.
|
|
33
37
|
|
|
34
38
|
Do not change project files before this proof ends. Starting existing development
|
|
35
39
|
processes and their ignored runtime files is allowed.
|
|
36
40
|
|
|
37
41
|
If the subagent proves the `both-oss` predicate, keep its evidence with the plan and run
|
|
38
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
42
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 onboard read conversion/plan`. That project already works.
|
|
39
43
|
What it needs is the conversion, not a build.
|
|
40
44
|
|
|
41
45
|
If the proof does not establish the baseline, record the starting state
|
|
42
46
|
`both-copilotkit-unproved` and run
|
|
43
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
47
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 onboard read credentials/plan`. This prompt is served
|
|
44
48
|
whenever a project looks like an OSS integration, so a baseline that did not prove is an
|
|
45
49
|
ordinary starting state rather than a failure. Keep the failing predicate with the plan.
|
|
46
50
|
|
|
@@ -54,5 +58,5 @@ and the plan preserves it rather than repeating it.
|
|
|
54
58
|
|
|
55
59
|
If it cannot identify the running process safely, exposes a secret, or finds a baseline
|
|
56
60
|
failure that cannot be classified, run
|
|
57
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
61
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`. None of those mean the
|
|
58
62
|
project is unsupported: they mean this run did not establish what it needed to.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Prove the user journey
|
|
2
2
|
|
|
3
3
|
Do not do the proof work yourself. Spawn one proof subagent. Tell it to run
|
|
4
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
4
|
+
`npx --prefer-offline --yes copilotkit@4.18.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
|
|
@@ -14,8 +14,8 @@ drives the surface and cannot see your environment, so without that finding it s
|
|
|
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
16
|
|
|
17
|
-
A run that cloned a starter is the exception. Tell that subagent
|
|
18
|
-
`verify --round-trip
|
|
17
|
+
A run that cloned a starter is the exception. Tell that subagent that this run cloned a
|
|
18
|
+
starter, to finish after `verify --round-trip`, and to open no browser. The cloned code is what this repository's
|
|
19
19
|
starter smoke jobs already drive on every change, so opening a browser re-proves in the
|
|
20
20
|
developer's run what those jobs prove before the starter ships, and it is the most
|
|
21
21
|
expensive step in this setup. `verify --round-trip` reads the answer back off the thread,
|
|
@@ -33,21 +33,22 @@ pass the time.
|
|
|
33
33
|
Report each attempt at the journey as it ends, counting from one:
|
|
34
34
|
|
|
35
35
|
```text
|
|
36
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
36
|
+
npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase journey-attempted --attempt 1
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
Record what that proof returned before you route on it:
|
|
40
40
|
|
|
41
41
|
```text
|
|
42
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
42
|
+
npx --prefer-offline --yes copilotkit@4.18.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
Report the gate whatever it returned. A proof that never ran is `skipped`, not failed.
|
|
46
|
-
|
|
45
|
+
Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. A
|
|
46
|
+
round trip that `verify --round-trip` ran and saw fail is `failed`, and the command refuses
|
|
47
|
+
to record it as `skipped`. The command prints one line and sends nothing else. Where a repair cycle runs the proof again,
|
|
47
48
|
record each attempt as it ends.
|
|
48
49
|
|
|
49
50
|
For every protected-path audit in this prompt, run
|
|
50
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
51
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 onboard audit` from the target app directory. If its result
|
|
51
52
|
starts with `Status: blocked`, report the printed reason and use the route-out rules below.
|
|
52
53
|
A blocked audit proved nothing changed and is not a preservation failure. If a
|
|
53
54
|
protected-path audit reports a changed path, decide it the way the implementation prompt
|
|
@@ -56,7 +57,7 @@ returns none, so a finding with no Files changed section to test against routes
|
|
|
56
57
|
path one of those sections names is this run's own change and routes out too. Accept a
|
|
57
58
|
path only when a section this run collected covers the step that wrote it and does not
|
|
58
59
|
name it:
|
|
59
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
60
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --accept-external --path <path>`. Then run
|
|
60
61
|
the audit again and name the path in the closing summary. Never repair, reset, or revert a
|
|
61
62
|
protected path.
|
|
62
63
|
|
|
@@ -64,14 +65,15 @@ That holds for a repair cycle too. When the fix for a failing check lands on a p
|
|
|
64
65
|
path, the path is still the developer's, however right the diagnosis is and however small
|
|
65
66
|
the fix. Reading the file never settles who wrote it. Ask the developer to allow the
|
|
66
67
|
change, and record their answer with
|
|
67
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
68
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
|
|
68
69
|
or route out. Never repair it, and never send it to a repair worker.
|
|
69
70
|
|
|
70
71
|
If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
|
|
71
72
|
`proof/complete` only if that audit passes. After the audit passes, run
|
|
72
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
73
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 onboard read proof/complete`. A performed surface outcome with
|
|
73
74
|
the full round trip is core success even if a continued-development tool fails. A skipped
|
|
74
|
-
surface outcome still enters `proof/complete` so the CLI records the blocked result.
|
|
75
|
+
surface outcome still enters `proof/complete` so the CLI records the blocked result.
|
|
76
|
+
`skipped-cloned-starter` is the exception: the CLI records that run as complete. Do not
|
|
75
77
|
describe a skipped surface as proved. Keep the Skills and MCP results separate from the proof
|
|
76
78
|
result.
|
|
77
79
|
|
|
@@ -85,14 +87,16 @@ developer that a framework and frontend that just worked are unsupported, and ha
|
|
|
85
87
|
stop report instead of the application they now have.
|
|
86
88
|
|
|
87
89
|
If the round trip fails, decide which kind of failure it is before you route. The proof
|
|
88
|
-
subagent can repair only project-owned processes, ports, and request options
|
|
90
|
+
subagent can repair only project-owned processes, ports, and request options, and it can
|
|
91
|
+
make the credential write that its Step 4 names for `api_key_loadable_by_app`. A failure caused
|
|
89
92
|
by a source, configuration, dependency, or tracked-file change is a defect in the new work.
|
|
90
93
|
|
|
91
|
-
Retry the proof subagent only for a project-owned process, port,
|
|
94
|
+
Retry the proof subagent only for a project-owned process, port, request-option, or
|
|
95
|
+
`api_key_loadable_by_app` failure.
|
|
92
96
|
Give it the failure evidence and the failed attempt's pinned Step 1 record. Wait for the
|
|
93
97
|
proof subagent after each operational repair.
|
|
94
|
-
If the result passes, use the passed-result route above.
|
|
95
|
-
|
|
98
|
+
If the result passes, use the passed-result route above. Run the proof at most three times
|
|
99
|
+
in total. Use the route-out rules below for a blocked or third failed result.
|
|
96
100
|
|
|
97
101
|
Enter the code-repair branch only for a source, configuration, dependency, or tracked-file
|
|
98
102
|
defect.
|
|
@@ -116,8 +120,9 @@ secret values. Require its result to start with `Status: passed`, `Status: faile
|
|
|
116
120
|
`Status: blocked`, followed by Files changed, Validation, and Blockers. Otherwise, send the
|
|
117
121
|
defect to the implementation subagent that validated the planned implementation path. Give it
|
|
118
122
|
the approved plan and proof evidence. Treat the worker that gets the defect as the repair worker.
|
|
119
|
-
Give the repair worker the protected path list
|
|
120
|
-
|
|
123
|
+
Give the repair worker the protected path list and the authorized list from the
|
|
124
|
+
`Authorized to modify:` block of the latest audit. Do not let a generated or repaired path overlap a
|
|
125
|
+
protected path, other than an authorized path itself.
|
|
121
126
|
|
|
122
127
|
Require the full validation list to pass again. Wait for the repair worker to finish.
|
|
123
128
|
Continue only if its result starts with `Status: passed`. If the repair worker returns
|
|
@@ -127,7 +132,14 @@ implementation worker for a planned implementation path. Use the repair worker f
|
|
|
127
132
|
path. Wait for the validator to finish. If its result starts with `Status: passed`, continue.
|
|
128
133
|
If the validator returns `Status: failed`, return its evidence to the repair
|
|
129
134
|
worker. Repeat repair and validation at most three times. If either worker returns
|
|
130
|
-
`Status: blocked`, use the route-out rules below.
|
|
135
|
+
`Status: blocked`, use the route-out rules below. The exception is an implementation worker
|
|
136
|
+
that returns blocked because the repair needs a file the plan does not name. Handle it the
|
|
137
|
+
way `implementation/build-and-validate` does: pause and ask the developer, add the file to
|
|
138
|
+
the handoff if they allow it, and use the route-out rules below if they decline. For a
|
|
139
|
+
protected file, record their answer with `--authorize --unplanned` and run the audit again
|
|
140
|
+
first. Then spawn a fresh repair worker with this repair handoff, not the whole-plan
|
|
141
|
+
implementation handoff: the plan, the proof evidence, the protected path list, and the
|
|
142
|
+
authorized list from that audit.
|
|
131
143
|
|
|
132
144
|
Run the protected-path audit again after validation passes. Continue only if its result
|
|
133
145
|
starts with `Status: passed`.
|
|
@@ -136,7 +148,7 @@ Restart each project-owned process changed by the repair. Report the cycle, coun
|
|
|
136
148
|
one:
|
|
137
149
|
|
|
138
150
|
```text
|
|
139
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
151
|
+
npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase repair-attempted --attempt 1
|
|
140
152
|
```
|
|
141
153
|
|
|
142
154
|
Then spawn a fresh proof subagent
|
|
@@ -149,23 +161,23 @@ its grounding check then speaks about a question the failed attempt never asked.
|
|
|
149
161
|
Wait for the fresh proof subagent to finish.
|
|
150
162
|
If the fresh proof result starts with `Status: passed`, run the protected-path audit and use
|
|
151
163
|
the passed-result route above. If it starts with `Status: failed`, begin the next bounded
|
|
152
|
-
repair cycle. Use the route-out rules below for `Status: blocked`.
|
|
153
|
-
|
|
164
|
+
repair cycle. Use the route-out rules below for `Status: blocked`. After three repair and
|
|
165
|
+
proof cycles, use the route-out rules below.
|
|
154
166
|
|
|
155
167
|
Route out only when the failure is not yours to fix, when the same proof still fails after
|
|
156
168
|
three attempts, or when no evidence of the round trip can be produced. In those cases run
|
|
157
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
169
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`. The stack is supported:
|
|
158
170
|
this run did not finish, which is a different ending and a different report. All three are
|
|
159
171
|
about the round trip itself. A round trip that proved is not one of them, whatever failed
|
|
160
172
|
after it.
|
|
161
173
|
|
|
162
174
|
If you stop here without taking that route -- a repair cycle you cannot finish, a limit in
|
|
163
|
-
your own harness, a run that has run out -- send one short report before you stop.
|
|
164
|
-
friction command
|
|
165
|
-
|
|
175
|
+
your own harness, a run that has run out -- send one short report before you stop. The
|
|
176
|
+
friction command follows the telemetry setting the developer already chose, so it needs no
|
|
177
|
+
separate question.
|
|
166
178
|
|
|
167
179
|
```text
|
|
168
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
180
|
+
npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
169
181
|
```
|
|
170
182
|
|
|
171
183
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -28,7 +28,8 @@ This rule covers the whole run, here and in every later prompt.
|
|
|
28
28
|
|
|
29
29
|
In this graph, stop means one thing: end the run through a named terminal. You send the
|
|
30
30
|
stop report `authenticate/start` describes, then read the terminal that the rule names.
|
|
31
|
-
|
|
31
|
+
Where a rule names a terminal, read that terminal first: if it sends the report itself or
|
|
32
|
+
says to file none, follow it, so the run sends one report at most. Nothing else is a stop.
|
|
32
33
|
|
|
33
34
|
A pause keeps the run open. "End your turn and wait for" something means: end this turn,
|
|
34
35
|
and continue when that thing arrives. A pause waits for one of two things:
|
|
@@ -43,7 +44,7 @@ Before you end your turn to wait for the developer where the prompt states no de
|
|
|
43
44
|
report the pause:
|
|
44
45
|
|
|
45
46
|
```text
|
|
46
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
47
|
+
npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase awaiting-developer
|
|
47
48
|
```
|
|
48
49
|
|
|
49
50
|
When the answer or the result arrives, continue from the step that paused. Do not read an
|
|
@@ -63,7 +64,7 @@ Both research subagents failing means this harness has no working subagent at al
|
|
|
63
64
|
is worth recording once:
|
|
64
65
|
|
|
65
66
|
```text
|
|
66
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
67
|
+
npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase delegation-unavailable
|
|
67
68
|
```
|
|
68
69
|
|
|
69
70
|
Then say once, in your own words, that this environment has no working subagents, so you
|
|
@@ -76,7 +77,7 @@ Before you ask the developer any setup question, finish every read-only investig
|
|
|
76
77
|
preflight check in this section.
|
|
77
78
|
|
|
78
79
|
Prepare two research assignments. Give each research subagent one assignment. Tell it to run
|
|
79
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
80
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 onboard read subagent/inspect-repository` first and follow the
|
|
80
81
|
prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
81
82
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
82
83
|
and the same handoff. Require only its assigned packet.
|
|
@@ -90,7 +91,7 @@ Start both research subagents in parallel:
|
|
|
90
91
|
Report that both subagents started:
|
|
91
92
|
|
|
92
93
|
```text
|
|
93
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
94
|
+
npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase research-dispatched
|
|
94
95
|
```
|
|
95
96
|
|
|
96
97
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -99,8 +100,8 @@ failed step.
|
|
|
99
100
|
The research is under way. Continue to the surface-control preflight while it runs:
|
|
100
101
|
|
|
101
102
|
```text
|
|
102
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
103
|
+
npx --prefer-offline --yes copilotkit@4.18.0 onboard read research/preflight
|
|
103
104
|
```
|
|
104
105
|
|
|
105
106
|
If inspection stops onboarding, run
|
|
106
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
107
|
+
`npx --prefer-offline --yes copilotkit@4.18.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.18.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
|
|
@@ -54,7 +54,7 @@ worker a focused directory check. Continue only when both workers return the sam
|
|
|
54
54
|
app directory. Both results must start with `Status: passed`. Otherwise, use the stop route.
|
|
55
55
|
|
|
56
56
|
When both research results are merged, run
|
|
57
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
57
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 onboard read research/route`.
|
|
58
58
|
|
|
59
59
|
If inspection stops onboarding, run
|
|
60
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
60
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`.
|
|
@@ -45,7 +45,7 @@ mechanism a later step uses for the CopilotKit documentation server.
|
|
|
45
45
|
|
|
46
46
|
Some coding agents, Claude Code among them, load a newly registered MCP server only at the
|
|
47
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.
|
|
48
|
+
re-bind with `npx --prefer-offline --yes copilotkit@4.18.0 onboard start --run <onboarding_run_id>`. That
|
|
49
49
|
restart is a step here, not an error.
|
|
50
50
|
|
|
51
51
|
Do not add a browser or device driver to the project. A driver added there is a
|
|
@@ -62,14 +62,14 @@ whole finding.
|
|
|
62
62
|
Report that the probe settled, whichever way it came out:
|
|
63
63
|
|
|
64
64
|
```text
|
|
65
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
65
|
+
npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase surface-probed
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
Then merge the research:
|
|
69
69
|
|
|
70
70
|
```text
|
|
71
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
71
|
+
npx --prefer-offline --yes copilotkit@4.18.0 onboard read research/merge
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
If inspection stops onboarding, run
|
|
75
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
75
|
+
`npx --prefer-offline --yes copilotkit@4.18.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.18.0 onboard protect
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
It reads the working tree itself, records every changed or untracked path with a digest,
|
|
@@ -41,7 +41,7 @@ On either, run this before you read the three findings below, and without asking
|
|
|
41
41
|
purpose question:
|
|
42
42
|
|
|
43
43
|
```text
|
|
44
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
44
|
+
npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/channels/start
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
Name the provider to that node so it does not ask again. A Slack page names Slack. A Teams
|
|
@@ -96,7 +96,7 @@ settle these three from your own reading of the project. Each one comes from the
|
|
|
96
96
|
packets or it is not proved.
|
|
97
97
|
|
|
98
98
|
If all three are proved, prove the live starting state before any project file changes. Run
|
|
99
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
99
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 onboard read proof/oss-baseline`.
|
|
100
100
|
|
|
101
101
|
Route there before you ask the developer anything else. The questions after this prompt
|
|
102
102
|
select a framework and a frontend that the findings already name, so a developer who
|
|
@@ -109,7 +109,7 @@ developer nor the repository findings prove what the project is for, ask one gui
|
|
|
109
109
|
question about the user outcome. This asks what the developer wants to build before you
|
|
110
110
|
select a framework. Give two or three short examples. Record the answer and give it to
|
|
111
111
|
each later subagent. Then run
|
|
112
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
112
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 onboard read credentials/plan`.
|
|
113
113
|
|
|
114
114
|
Do not ask that question on the route above. A project carrying all three states its
|
|
115
115
|
purpose in the application it already serves.
|
|
@@ -122,6 +122,6 @@ Slack and Microsoft Teams are choices at that step.
|
|
|
122
122
|
A purpose question here names a domain before that choice.
|
|
123
123
|
Take the same read named above without asking.
|
|
124
124
|
|
|
125
|
-
If authentication or
|
|
126
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
125
|
+
If authentication, inspection, or the baseline capture stops onboarding, run
|
|
126
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`. None of them says anything
|
|
127
127
|
about whether this project's stack is supported, which is not yet known at this point.
|
|
@@ -37,11 +37,14 @@ Each Framework ID selects a starter that the CLI ships with Intelligence. Do not
|
|
|
37
37
|
different pair from a similar name. AG2 does not use this shortcut because its starter does
|
|
38
38
|
not include Intelligence.
|
|
39
39
|
|
|
40
|
-
Get the target directory name from its path. The
|
|
41
|
-
|
|
40
|
+
Get the target directory name from its path. The name can contain 1 to 100 letters,
|
|
41
|
+
numbers, spaces, dots, underscores, or hyphens, in any case. It must not be `.` or `..`,
|
|
42
|
+
start or end with a space, or end with a dot. `init` accepts the name of an existing empty
|
|
43
|
+
directory as it is, so a name such as `MyApp` is valid. Do not rename the directory. If the
|
|
42
44
|
selected pair is not in the table, or the directory name is not valid, stop the shortcut.
|
|
43
|
-
Do not run `init`.
|
|
44
|
-
|
|
45
|
+
Do not run `init`. No command ran, so this is not a failed shortcut. Go back to the
|
|
46
|
+
`## Documentation` section of the frontend prompt you read before this one, and build the
|
|
47
|
+
project from its pages.
|
|
45
48
|
|
|
46
49
|
If the developer did not name a project, create one for the app being
|
|
47
50
|
cloned. This directory is new, so no existing project is already its own: take the project
|
|
@@ -52,7 +55,7 @@ the derived name.
|
|
|
52
55
|
Only if the developer asks for an existing project, or asks to see the projects they have,
|
|
53
56
|
read the choices:
|
|
54
57
|
|
|
55
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
58
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 project list --json`
|
|
56
59
|
|
|
57
60
|
Then ask which one to use. Do not order the projects by creation time. If the developer
|
|
58
61
|
already gave this answer, do not ask again. Do not read a secret value. Do not show or
|
|
@@ -77,9 +80,9 @@ way bills a project nobody chose.
|
|
|
77
80
|
|
|
78
81
|
Run the command from the parent directory. Do not inspect another entry in the parent
|
|
79
82
|
directory. Replace each placeholder with the recorded value. Do not run a placeholder as
|
|
80
|
-
a shell argument.
|
|
83
|
+
a shell argument. If the directory name holds a space, put it in double quotes.
|
|
81
84
|
|
|
82
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
85
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 init --name <directory-name> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
|
|
83
86
|
|
|
84
87
|
`--name` is always the target directory name derived above, because `init` creates the
|
|
85
88
|
app at `<parent>/<name>`. Any other value puts the app in a new folder beside the target,
|
|
@@ -105,7 +108,7 @@ account. The command does not need terminal input.
|
|
|
105
108
|
Report the clone before you inspect anything:
|
|
106
109
|
|
|
107
110
|
```text
|
|
108
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
111
|
+
npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase starter-cloned
|
|
109
112
|
```
|
|
110
113
|
|
|
111
114
|
This is its own step, not an aside. A run that clones and then goes quiet is
|
|
@@ -146,10 +149,11 @@ The two Microsoft Agent Framework starters keep their key outside `<target>/.env
|
|
|
146
149
|
`cd <target>/agent && dotnet user-secrets set OPENAI_API_KEY "<key>"` themselves, even
|
|
147
150
|
if they named a key file.
|
|
148
151
|
|
|
149
|
-
|
|
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:
|
|
150
154
|
|
|
151
155
|
```text
|
|
152
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
156
|
+
npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase awaiting-model-credential
|
|
153
157
|
```
|
|
154
158
|
|
|
155
159
|
This is a pause, not a stop. Do not send a stop report, and do not take a stop route.
|
|
@@ -160,10 +164,10 @@ call.
|
|
|
160
164
|
|
|
161
165
|
If no credential is missing, report no pause and continue.
|
|
162
166
|
|
|
163
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
167
|
+
Then run `npx --prefer-offline --yes copilotkit@4.18.0 onboard read proof/round-trip`.
|
|
164
168
|
|
|
165
169
|
If the command fails, report its exact error and do not claim that the starter is ready.
|
|
166
170
|
Then run
|
|
167
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
171
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`. The starter is one this
|
|
168
172
|
graph ships and the stack was chosen from its own supported list, so a command that
|
|
169
173
|
returned an error is a run that broke, not a setup this release does not support.
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# Stop because the run did not finish
|
|
2
2
|
|
|
3
|
-
This is the ending for a run that broke.
|
|
4
|
-
|
|
5
|
-
to say.
|
|
3
|
+
This is the ending for a run that broke. Something in this run stopped it, and that is
|
|
4
|
+
what the report has to say. This ending makes no judgment about the stack.
|
|
6
5
|
|
|
7
|
-
Do not tell the developer their setup is unsupported.
|
|
8
|
-
|
|
6
|
+
Do not tell the developer their setup is unsupported. A run that says so sends them to
|
|
7
|
+
change a stack that was never shown to be the problem.
|
|
9
8
|
|
|
10
9
|
Keep the developer's current agent, frontend, authentication, and package choices.
|
|
11
10
|
|
|
12
11
|
Name the exact step that stopped the run, and what it returned. State whether
|
|
13
|
-
authentication,
|
|
14
|
-
|
|
12
|
+
authentication, repository inspection, the protected-path baseline capture, the OSS baseline
|
|
13
|
+
proof, project selection, project credentials, the plan, the starter clone, the journey,
|
|
14
|
+
implementation, validation, or the round trip stopped it. Give the failure in the words the step printed,
|
|
15
15
|
not a summary of them.
|
|
16
16
|
|
|
17
17
|
If a protected path stopped this run, name that path and how it changed, in the words the
|
|
@@ -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.18.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.18.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
|
|
@@ -37,8 +37,9 @@ Plan the runtime to consume the Intelligence credential. The runtime takes an
|
|
|
37
37
|
`runner` option instead is the OSS runtime. It never reads the Intelligence key, and the
|
|
38
38
|
Inspector reads the project as locked. The default in-memory OSS runner is ephemeral.
|
|
39
39
|
SQLite, custom, or framework persistence can be durable. The two options cannot be
|
|
40
|
-
combined. Take the constructor from the
|
|
41
|
-
quickstart
|
|
40
|
+
combined. Take the constructor from the Intelligence quickstart
|
|
41
|
+
(https://docs.copilotkit.ai/intelligence/quickstart.md). Where a framework quickstart
|
|
42
|
+
shows a `runner` option instead, the Intelligence quickstart wins.
|
|
42
43
|
|
|
43
44
|
## Plan the Learning Container and its selector
|
|
44
45
|
|
|
@@ -106,12 +107,14 @@ The intersection includes what a `@copilotkit/*` package on its own version line
|
|
|
106
107
|
about the `1.x` line. `@copilotkit/angular` is the one that has this, and its declaration
|
|
107
108
|
is materialized at publish time rather than written in the repository, so read it from the
|
|
108
109
|
registry rather than from any checkout. Where it cannot be satisfied by the version the
|
|
109
|
-
floor requires, there is no upgrade to plan:
|
|
110
|
+
floor requires, there is no upgrade to plan: return `Status: blocked` and name
|
|
111
|
+
`unsupported/no-validated-path` as the outcome.
|
|
110
112
|
|
|
111
113
|
An exact pin is usually deliberate. Naming the move here is what makes it a step the
|
|
112
114
|
developer approved rather than a repair the run invents halfway through. Do not move a pin
|
|
113
|
-
the developer did not approve moving. Where the developer needs one held,
|
|
114
|
-
`unsupported/no-validated-path
|
|
115
|
+
the developer did not approve moving. Where the developer needs one held, return
|
|
116
|
+
`Status: blocked` and name `unsupported/no-validated-path` as the outcome. The upgrade
|
|
117
|
+
step's revert is the way back.
|
|
115
118
|
|
|
116
119
|
Name the exact version the target requires. A caret does not stand in for it below `0.1.0`:
|
|
117
120
|
`^0.0.59` admits only `0.0.59`, so a pin rewritten that way is the same pin under a
|
|
@@ -136,8 +139,9 @@ If the value of the journey depends on data the project already holds, name that
|
|
|
136
139
|
name where it lives, and name how it reaches the agent. Rendering a list in the DOM does
|
|
137
140
|
not give the agent access to it. An agent wired without the page's data answers from
|
|
138
141
|
entities it invents, and the answer looks correct. Take the frontend-context step from
|
|
139
|
-
the selected documentation. Where no selected page documents it
|
|
140
|
-
frontend,
|
|
142
|
+
the selected documentation, and never guess the API. Where no selected page documents it
|
|
143
|
+
for this framework or frontend, the data has no documented way to reach the agent: return
|
|
144
|
+
`Status: blocked` and name `unsupported/no-validated-path` as the outcome.
|
|
141
145
|
|
|
142
146
|
Where that data exists, name the entities the proof compares against: the ids, names, or
|
|
143
147
|
records the project holds and the answer has to reference. Where the outcome references
|
|
@@ -170,7 +174,7 @@ here is work the developer did not ask for.
|
|
|
170
174
|
Plan the threads drawer itself: add it from the selected drawer page, where this frontend
|
|
171
175
|
does not already render one. Where this journey's frontend framework ships no threads
|
|
172
176
|
drawer -- React Native --, plan that the thread is proved by
|
|
173
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
177
|
+
`npx --prefer-offline --yes copilotkit@4.18.0 verify --round-trip`, which needs no browser. Do not plan a
|
|
174
178
|
step that opens the managed Intelligence dashboard.
|
|
175
179
|
|
|
176
180
|
## Order the plan into steps
|
|
@@ -193,8 +197,9 @@ feature to an app the developer already built is the case this exists for: the o
|
|
|
193
197
|
in a file they wrote, and on an app whose work was never committed that file is in the
|
|
194
198
|
baseline. List every such path under `Authorization requested`, one line each, with the path
|
|
195
199
|
and one sentence saying what the step changes there and why no other file will do. Keep the
|
|
196
|
-
step in the plan.
|
|
197
|
-
cannot justify in that sentence
|
|
200
|
+
step in the plan. Where a protected path you can justify is the only obstacle, the step
|
|
201
|
+
stays. Where the plan needs a protected path you cannot justify in that sentence, return
|
|
202
|
+
`Status: blocked`.
|
|
198
203
|
|
|
199
204
|
Authorization covers changing a protected path, not removing it. Do not plan the deletion
|
|
200
205
|
of a protected path, and do not plan a step that moves or renames one, which removes it
|
|
@@ -214,6 +219,15 @@ to make a build pass during onboarding.
|
|
|
214
219
|
|
|
215
220
|
The type check runs against the project's own configuration. If the project has no
|
|
216
221
|
type-check command, add one that uses the configuration the project already has.
|
|
222
|
+
Where the repository findings carry a `typescript.migration` for an app, plan it as its
|
|
223
|
+
own step, before the first step that imports a CopilotKit package in that app. Name the
|
|
224
|
+
migration `file` and each change in `changes`, and give its `reason` in one sentence.
|
|
225
|
+
Under `node` or `node10` resolution, TypeScript ignores a package's `exports` map, so
|
|
226
|
+
every CopilotKit subpath import fails the type check while the app still runs. A plan
|
|
227
|
+
without this step stops after approval to ask for it. If the file is a protected path,
|
|
228
|
+
list it under `Authorization requested`. Where no migration is reported, do not change
|
|
229
|
+
`moduleResolution` or `module`. This change does not weaken type safety.
|
|
230
|
+
|
|
217
231
|
Do not add compiler strictness the project did not have. Nothing later in the run is
|
|
218
232
|
allowed to weaken type safety, so a stricter gate named here is one the run cannot get
|
|
219
233
|
back out of.
|