copilotkit 4.13.1 → 4.15.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 +150 -12
- package/cli-build-info.json +8 -8
- package/index.js +76560 -73271
- package/onboarding/index.json +1 -1
- package/onboarding/prompts/authenticate/start.md +48 -28
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +13 -12
- package/onboarding/prompts/credentials/plan.md +21 -21
- package/onboarding/prompts/credentials/settle-credentials.md +19 -12
- package/onboarding/prompts/credentials/write-plan.md +20 -13
- package/onboarding/prompts/fallback/best-effort.md +10 -10
- package/onboarding/prompts/feature/a2ui/implement.md +6 -6
- package/onboarding/prompts/feature/a2ui/proof.md +6 -6
- package/onboarding/prompts/feature/a2ui/start.md +7 -7
- package/onboarding/prompts/feature/channels/implement.md +33 -15
- package/onboarding/prompts/feature/channels/proof.md +12 -10
- package/onboarding/prompts/feature/channels/start.md +13 -12
- package/onboarding/prompts/feature/chat-suggestions/implement.md +6 -6
- package/onboarding/prompts/feature/chat-suggestions/proof.md +6 -6
- package/onboarding/prompts/feature/chat-suggestions/start.md +7 -7
- package/onboarding/prompts/feature/complete.md +19 -1
- package/onboarding/prompts/feature/learning/implement.md +17 -17
- package/onboarding/prompts/feature/learning/proof.md +7 -7
- package/onboarding/prompts/feature/learning/start.md +9 -9
- package/onboarding/prompts/feature/open-generative-ui/implement.md +6 -6
- package/onboarding/prompts/feature/open-generative-ui/proof.md +6 -6
- package/onboarding/prompts/feature/open-generative-ui/start.md +7 -7
- package/onboarding/prompts/feature/realtime-sync/implement.md +7 -7
- package/onboarding/prompts/feature/realtime-sync/proof.md +6 -6
- package/onboarding/prompts/feature/realtime-sync/start.md +6 -6
- package/onboarding/prompts/feature/rich-threads/implement.md +10 -10
- package/onboarding/prompts/feature/rich-threads/proof.md +6 -6
- package/onboarding/prompts/feature/rich-threads/start.md +6 -6
- package/onboarding/prompts/feature/stop.md +37 -3
- package/onboarding/prompts/feature/voice/implement.md +7 -7
- package/onboarding/prompts/feature/voice/proof.md +6 -6
- package/onboarding/prompts/feature/voice/start.md +8 -8
- package/onboarding/prompts/framework/ag2.md +2 -2
- package/onboarding/prompts/framework/agno.md +2 -2
- package/onboarding/prompts/framework/built-in.md +2 -2
- package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
- package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
- package/onboarding/prompts/framework/crewai-flows.md +2 -2
- package/onboarding/prompts/framework/deep-agents.md +2 -2
- package/onboarding/prompts/framework/google-adk.md +2 -2
- package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
- package/onboarding/prompts/framework/langgraph-python.md +2 -2
- package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
- package/onboarding/prompts/framework/llamaindex.md +2 -2
- package/onboarding/prompts/framework/mastra.md +2 -2
- package/onboarding/prompts/framework/ms-agent-dotnet.md +2 -2
- package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
- package/onboarding/prompts/framework/ms-agent-python.md +2 -2
- package/onboarding/prompts/framework/pydantic-ai.md +2 -2
- package/onboarding/prompts/framework/strands-python.md +2 -2
- package/onboarding/prompts/framework/strands-typescript.md +2 -2
- package/onboarding/prompts/frontend/angular.md +3 -3
- package/onboarding/prompts/frontend/nextjs.md +3 -3
- package/onboarding/prompts/frontend/plan.md +7 -7
- package/onboarding/prompts/frontend/react-native.md +5 -2
- package/onboarding/prompts/frontend/react-spa.md +5 -2
- package/onboarding/prompts/frontend/vue.md +5 -2
- package/onboarding/prompts/implementation/build-and-validate.md +25 -24
- package/onboarding/prompts/proof/complete.md +9 -9
- package/onboarding/prompts/proof/oss-baseline.md +5 -5
- package/onboarding/prompts/proof/round-trip.md +12 -12
- package/onboarding/prompts/research/gather.md +36 -7
- package/onboarding/prompts/research/merge.md +3 -3
- package/onboarding/prompts/research/preflight.md +4 -4
- package/onboarding/prompts/research/route.md +8 -6
- package/onboarding/prompts/starter/clone.md +97 -26
- package/onboarding/prompts/stopped/run-failed.md +4 -4
- package/onboarding/prompts/subagent/create-plan.md +4 -4
- package/onboarding/prompts/subagent/implement-and-validate.md +19 -6
- package/onboarding/prompts/subagent/inspect-repository.md +2 -2
- package/onboarding/prompts/subagent/prove-oss-baseline.md +9 -2
- package/onboarding/prompts/subagent/prove-round-trip.md +21 -19
- package/onboarding/prompts/unsupported/no-validated-path.md +3 -3
- package/package.json +5 -1
- package/release/release-tool.js +230 -72
|
@@ -84,7 +84,7 @@ Name the debugging surface this journey's frontend can reach, rather than the on
|
|
|
84
84
|
of the documentation leads with. For a web frontend it is the CopilotKit Inspector. For
|
|
85
85
|
React Native there is no Inspector: it is a browser overlay built on a DOM custom element,
|
|
86
86
|
and `@copilotkit/react-native` does not ship it. Give a mobile developer
|
|
87
|
-
`npx --yes copilotkit@4.
|
|
87
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 verify --round-trip`, the runtime's own log, the AG-UI
|
|
88
88
|
Event Inspector in the CopilotKit VS Code extension, and the CopilotKit Intelligence
|
|
89
89
|
thread view
|
|
90
90
|
instead. Naming the Inspector to a developer who cannot open it costs them the time it
|
|
@@ -114,10 +114,10 @@ the friction commands without another developer question. Do not ask the develop
|
|
|
114
114
|
telemetry: the command applies the setting they already have.
|
|
115
115
|
|
|
116
116
|
```text
|
|
117
|
-
npx --yes copilotkit@4.
|
|
117
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
-
|
|
120
|
+
Put one or two sentences in `--message`. Pick one category from
|
|
121
121
|
docs-missing, docs-wrong, docs-sequential, cli-gap, sdk-gap, environment,
|
|
122
122
|
port-collision, credential, validation-loop, and other. For the seconds, give your
|
|
123
123
|
own estimate of what that one papercut cost this run.
|
|
@@ -126,7 +126,7 @@ Pass --docs-path only for a docs-missing or docs-wrong report, naming the page t
|
|
|
126
126
|
is about:
|
|
127
127
|
|
|
128
128
|
```text
|
|
129
|
-
npx --yes copilotkit@4.
|
|
129
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard friction --category docs-wrong --cost-seconds 300 --docs-path /docs/threads/drawer --message "<sentences>"
|
|
130
130
|
```
|
|
131
131
|
|
|
132
132
|
Give the page's site-relative path or its full URL, with no spaces, query string, or
|
|
@@ -143,14 +143,14 @@ Tell the developer when you send a friction report. Do not quote or summarize th
|
|
|
143
143
|
unless the developer asks. If the CLI says the report was not sent,
|
|
144
144
|
state what it said and continue without another question.
|
|
145
145
|
|
|
146
|
-
When the evidence is gathered, run `npx --yes copilotkit@4.
|
|
146
|
+
When the evidence is gathered, run `npx --prefer-offline --yes copilotkit@4.15.0 onboard complete`, carrying
|
|
147
147
|
the surface-check outcome the proof subagent returned. Pass exactly one flag, and pass the
|
|
148
148
|
one that matches this journey's surface.
|
|
149
149
|
|
|
150
150
|
For a web frontend -- React SPA, Next.js, Angular, Vue:
|
|
151
151
|
|
|
152
152
|
```text
|
|
153
|
-
npx --yes copilotkit@4.
|
|
153
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard complete --visual-check <outcome>
|
|
154
154
|
```
|
|
155
155
|
|
|
156
156
|
The outcome is one of `performed`, `skipped-no-browser-tool`, `skipped-cloned-starter`, or
|
|
@@ -160,7 +160,7 @@ open no browser. It is the one skip that does not block.
|
|
|
160
160
|
For React Native:
|
|
161
161
|
|
|
162
162
|
```text
|
|
163
|
-
npx --yes copilotkit@4.
|
|
163
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard complete --device-check <outcome>
|
|
164
164
|
```
|
|
165
165
|
|
|
166
166
|
The outcome is one of `performed`, `skipped-no-device`, `skipped-cloned-starter`, or
|
|
@@ -173,7 +173,7 @@ browser-origin CORS, so the flag you pass is how this run states which surface i
|
|
|
173
173
|
For a web frontend, also pass the URL the browser opened:
|
|
174
174
|
|
|
175
175
|
```text
|
|
176
|
-
npx --yes copilotkit@4.
|
|
176
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard complete --visual-check <outcome> \
|
|
177
177
|
--frontend-url <the url you opened>
|
|
178
178
|
```
|
|
179
179
|
|
|
@@ -192,7 +192,7 @@ If the round trip proved and something after it still blocked this run, add `--b
|
|
|
192
192
|
to the same command:
|
|
193
193
|
|
|
194
194
|
```text
|
|
195
|
-
npx --yes copilotkit@4.
|
|
195
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard complete --visual-check performed --blocked-by <cause>
|
|
196
196
|
```
|
|
197
197
|
|
|
198
198
|
The cause is one of `inspector` for a debugging surface that did not open,
|
|
@@ -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 --yes copilotkit@4.
|
|
4
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard read subagent/prove-oss-baseline` first and follow the
|
|
5
5
|
prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
6
6
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
7
7
|
and the same handoff. Give it the repository findings and exact CLI package spec.
|
|
@@ -17,7 +17,7 @@ Wait for the subagent to finish.
|
|
|
17
17
|
Record what that proof returned before you route on it:
|
|
18
18
|
|
|
19
19
|
```text
|
|
20
|
-
npx --yes copilotkit@4.
|
|
20
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
Report the gate whatever it returned. Pass `passed` when the subagent proved a predicate,
|
|
@@ -35,12 +35,12 @@ Do not change project files before this proof ends. Starting existing developmen
|
|
|
35
35
|
processes and their ignored runtime files is allowed.
|
|
36
36
|
|
|
37
37
|
If the subagent proves the `both-oss` predicate, keep its evidence with the plan and run
|
|
38
|
-
`npx --yes copilotkit@4.
|
|
38
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard read conversion/plan`. That project already works.
|
|
39
39
|
What it needs is the conversion, not a build.
|
|
40
40
|
|
|
41
41
|
If the proof does not establish the baseline, record the starting state
|
|
42
42
|
`both-copilotkit-unproved` and run
|
|
43
|
-
`npx --yes copilotkit@4.
|
|
43
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard read credentials/plan`. This prompt is served
|
|
44
44
|
whenever a project looks like an OSS integration, so a baseline that did not prove is an
|
|
45
45
|
ordinary starting state rather than a failure. Keep the failing predicate with the plan.
|
|
46
46
|
|
|
@@ -54,5 +54,5 @@ and the plan preserves it rather than repeating it.
|
|
|
54
54
|
|
|
55
55
|
If it cannot identify the running process safely, exposes a secret, or finds a baseline
|
|
56
56
|
failure that cannot be classified, run
|
|
57
|
-
`npx --yes copilotkit@4.
|
|
57
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard read stopped/run-failed`. None of those mean the
|
|
58
58
|
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 --yes copilotkit@4.
|
|
4
|
+
`npx --prefer-offline --yes copilotkit@4.15.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,7 +14,7 @@ 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 to
|
|
17
|
+
A run that cloned a starter is the exception. Tell that subagent to finish after
|
|
18
18
|
`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
|
|
@@ -33,13 +33,13 @@ pass the time.
|
|
|
33
33
|
Report each attempt at the journey as it ends, counting from one:
|
|
34
34
|
|
|
35
35
|
```text
|
|
36
|
-
npx --yes copilotkit@4.
|
|
36
|
+
npx --prefer-offline --yes copilotkit@4.15.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 --yes copilotkit@4.
|
|
42
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. The
|
|
@@ -47,7 +47,7 @@ command prints one line and sends nothing else. Where a repair cycle runs the pr
|
|
|
47
47
|
record each attempt as it ends.
|
|
48
48
|
|
|
49
49
|
For every protected-path audit in this prompt, run
|
|
50
|
-
`npx --yes copilotkit@4.
|
|
50
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard audit` from the target app directory. If its result
|
|
51
51
|
starts with `Status: blocked`, report the printed reason and use the route-out rules below.
|
|
52
52
|
A blocked audit proved nothing changed and is not a preservation failure. If a
|
|
53
53
|
protected-path audit reports a changed path, decide it the way the implementation prompt
|
|
@@ -56,7 +56,7 @@ returns none, so a finding with no Files changed section to test against routes
|
|
|
56
56
|
path one of those sections names is this run's own change and routes out too. Accept a
|
|
57
57
|
path only when a section this run collected covers the step that wrote it and does not
|
|
58
58
|
name it:
|
|
59
|
-
`npx --yes copilotkit@4.
|
|
59
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --accept-external --path <path>`. Then run
|
|
60
60
|
the audit again and name the path in the closing summary. Never repair, reset, or revert a
|
|
61
61
|
protected path.
|
|
62
62
|
|
|
@@ -64,12 +64,12 @@ That holds for a repair cycle too. When the fix for a failing check lands on a p
|
|
|
64
64
|
path, the path is still the developer's, however right the diagnosis is and however small
|
|
65
65
|
the fix. Reading the file never settles who wrote it. Ask the developer to allow the
|
|
66
66
|
change, and record their answer with
|
|
67
|
-
`npx --yes copilotkit@4.
|
|
67
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
|
|
68
68
|
or route out. Never repair it, and never send it to a repair worker.
|
|
69
69
|
|
|
70
70
|
If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
|
|
71
71
|
`proof/complete` only if that audit passes. After the audit passes, run
|
|
72
|
-
`npx --yes copilotkit@4.
|
|
72
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard read proof/complete`. A performed surface outcome with
|
|
73
73
|
the full round trip is core success even if a continued-development tool fails. A skipped
|
|
74
74
|
surface outcome still enters `proof/complete` so the CLI records the blocked result. Do not
|
|
75
75
|
describe a skipped surface as proved. Keep the Skills and MCP results separate from the proof
|
|
@@ -136,7 +136,7 @@ Restart each project-owned process changed by the repair. Report the cycle, coun
|
|
|
136
136
|
one:
|
|
137
137
|
|
|
138
138
|
```text
|
|
139
|
-
npx --yes copilotkit@4.
|
|
139
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase repair-attempted --attempt 1
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
Then spawn a fresh proof subagent
|
|
@@ -154,7 +154,7 @@ and proof cycles.
|
|
|
154
154
|
|
|
155
155
|
Route out only when the failure is not yours to fix, when the same proof still fails after
|
|
156
156
|
three attempts, or when no evidence of the round trip can be produced. In those cases run
|
|
157
|
-
`npx --yes copilotkit@4.
|
|
157
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard read stopped/run-failed`. The stack is supported:
|
|
158
158
|
this run did not finish, which is a different ending and a different report. All three are
|
|
159
159
|
about the round trip itself. A round trip that proved is not one of them, whatever failed
|
|
160
160
|
after it.
|
|
@@ -165,10 +165,10 @@ friction command without another developer question: it applies the telemetry se
|
|
|
165
165
|
developer already set.
|
|
166
166
|
|
|
167
167
|
```text
|
|
168
|
-
npx --yes copilotkit@4.
|
|
168
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
169
169
|
```
|
|
170
170
|
|
|
171
|
-
|
|
171
|
+
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
172
172
|
Pick the category that fits from docs-missing, docs-wrong, docs-sequential, cli-gap,
|
|
173
173
|
sdk-gap, environment, port-collision, credential, validation-loop, and other. Leave
|
|
174
174
|
--cost-seconds off. A run that stopped cannot separate one papercut's cost from the cost
|
|
@@ -14,13 +14,42 @@ notification. Where your own harness hands you the report from the dispatch itse
|
|
|
14
14
|
you already hold the result. Either way there is nothing to poll.
|
|
15
15
|
|
|
16
16
|
After you dispatch, do the work that does not depend on the result -- dispatch the other
|
|
17
|
-
subagent, run the preflight the next prompt gives you -- and then
|
|
18
|
-
prompt in this graph says to wait for a subagent to finish, that is
|
|
17
|
+
subagent, run the preflight the next prompt gives you -- and then end your turn and wait for
|
|
18
|
+
the result. Wherever a prompt in this graph says to wait for a subagent to finish, that is
|
|
19
|
+
what it means. It is a pause, as "Pausing vs stopping" below describes, and not a stop.
|
|
19
20
|
|
|
20
21
|
Do not sleep to pass the time. Not `sleep`, not `/bin/sleep`, not a timer under another
|
|
21
22
|
name, and not a loop that re-checks whether a result has arrived. Sleeping tells you nothing
|
|
22
23
|
that waiting for the result does not, and it spends wall clock.
|
|
23
24
|
|
|
25
|
+
## Pausing vs stopping
|
|
26
|
+
|
|
27
|
+
This rule covers the whole run, here and in every later prompt.
|
|
28
|
+
|
|
29
|
+
In this graph, stop means one thing: end the run through a named terminal. You send the
|
|
30
|
+
stop report `authenticate/start` describes, then read the terminal that the rule names.
|
|
31
|
+
Nothing else is a stop.
|
|
32
|
+
|
|
33
|
+
A pause keeps the run open. "End your turn and wait for" something means: end this turn,
|
|
34
|
+
and continue when that thing arrives. A pause waits for one of two things:
|
|
35
|
+
|
|
36
|
+
1. A subagent result. The section above says how to wait for one.
|
|
37
|
+
2. The developer. Ask the question, then end your turn and wait for the reply. The reply
|
|
38
|
+
is the answer. A developer who replies without choosing, such as "go ahead" or "you
|
|
39
|
+
pick", gives no answer, and the default that the prompt states applies. Where the
|
|
40
|
+
prompt states no default, ask once more.
|
|
41
|
+
|
|
42
|
+
Before you end your turn to wait for the developer where the prompt states no default,
|
|
43
|
+
report the pause:
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase awaiting-developer
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
When the answer or the result arrives, continue from the step that paused. Do not read an
|
|
50
|
+
earlier prompt again, send the welcome again, or start a new run: the run id you hold still
|
|
51
|
+
names this run. A pause is not a stop. It sends no stop report and takes no stop route.
|
|
52
|
+
|
|
24
53
|
## When a subagent cannot work
|
|
25
54
|
|
|
26
55
|
This rule also covers every subagent this run spawns, here and in every later prompt.
|
|
@@ -34,7 +63,7 @@ Both research subagents failing means this harness has no working subagent at al
|
|
|
34
63
|
is worth recording once:
|
|
35
64
|
|
|
36
65
|
```text
|
|
37
|
-
npx --yes copilotkit@4.
|
|
66
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase delegation-unavailable
|
|
38
67
|
```
|
|
39
68
|
|
|
40
69
|
Then say once, in your own words, that this environment has no working subagents, so you
|
|
@@ -47,7 +76,7 @@ Before you ask the developer any setup question, finish every read-only investig
|
|
|
47
76
|
preflight check in this section.
|
|
48
77
|
|
|
49
78
|
Prepare two research assignments. Give each research subagent one assignment. Tell it to run
|
|
50
|
-
`npx --yes copilotkit@4.
|
|
79
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard read subagent/inspect-repository` first and follow the
|
|
51
80
|
prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
52
81
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
53
82
|
and the same handoff. Require only its assigned packet.
|
|
@@ -61,7 +90,7 @@ Start both research subagents in parallel:
|
|
|
61
90
|
Report that both subagents started:
|
|
62
91
|
|
|
63
92
|
```text
|
|
64
|
-
npx --yes copilotkit@4.
|
|
93
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase research-dispatched
|
|
65
94
|
```
|
|
66
95
|
|
|
67
96
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -70,8 +99,8 @@ failed step.
|
|
|
70
99
|
The research is under way. Continue to the surface-control preflight while it runs:
|
|
71
100
|
|
|
72
101
|
```text
|
|
73
|
-
npx --yes copilotkit@4.
|
|
102
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard read research/preflight
|
|
74
103
|
```
|
|
75
104
|
|
|
76
105
|
If inspection stops onboarding, run
|
|
77
|
-
`npx --yes copilotkit@4.
|
|
106
|
+
`npx --prefer-offline --yes copilotkit@4.15.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 --yes copilotkit@4.
|
|
24
|
+
npx --prefer-offline --yes copilotkit@4.15.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 --yes copilotkit@4.
|
|
57
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard read research/route`.
|
|
58
58
|
|
|
59
59
|
If inspection stops onboarding, run
|
|
60
|
-
`npx --yes copilotkit@4.
|
|
60
|
+
`npx --prefer-offline --yes copilotkit@4.15.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 --yes copilotkit@4.
|
|
48
|
+
re-bind with `npx --prefer-offline --yes copilotkit@4.15.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 --yes copilotkit@4.
|
|
65
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase surface-probed
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
Then merge the research:
|
|
69
69
|
|
|
70
70
|
```text
|
|
71
|
-
npx --yes copilotkit@4.
|
|
71
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard read research/merge
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
If inspection stops onboarding, run
|
|
75
|
-
`npx --yes copilotkit@4.
|
|
75
|
+
`npx --prefer-offline --yes copilotkit@4.15.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 --yes copilotkit@4.
|
|
12
|
+
npx --prefer-offline --yes copilotkit@4.15.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 --yes copilotkit@4.
|
|
44
|
+
npx --prefer-offline --yes copilotkit@4.15.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 --yes copilotkit@4.
|
|
99
|
+
`npx --prefer-offline --yes copilotkit@4.15.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,17 +109,19 @@ 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 --yes copilotkit@4.
|
|
112
|
+
`npx --prefer-offline --yes copilotkit@4.15.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.
|
|
116
116
|
|
|
117
117
|
Do not ask it when the target directory holds no project either.
|
|
118
|
-
The frontend they pick next decides
|
|
118
|
+
The frontend they pick next decides whether a starter exists.
|
|
119
|
+
Next.js and Angular have starters for some agent frameworks.
|
|
120
|
+
React SPA, Vue 3 and React Native have no starter, so the project is built from their documentation.
|
|
119
121
|
Slack and Microsoft Teams are choices at that step.
|
|
120
122
|
A purpose question here names a domain before that choice.
|
|
121
123
|
Take the same read named above without asking.
|
|
122
124
|
|
|
123
125
|
If authentication or inspection stops onboarding, run
|
|
124
|
-
`npx --yes copilotkit@4.
|
|
126
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard read stopped/run-failed`. Neither says anything
|
|
125
127
|
about whether this project's stack is supported, which is not yet known at this point.
|
|
@@ -7,25 +7,31 @@ A directory that holds only a Git repository, a coding agent's own configuration
|
|
|
7
7
|
settings or scratch notes still qualifies. Those are not a project, and `git init` is the
|
|
8
8
|
marker this CLI anchors a run on, so it cannot also be the thing that disqualifies one.
|
|
9
9
|
|
|
10
|
+
The home folder and system folders never qualify. Neither does a directory with no Git
|
|
11
|
+
repository of its own whose folders, one or two levels down, hold a Git repository or a
|
|
12
|
+
dependency manifest: those folders are the developer's projects. `init` refuses all
|
|
13
|
+
three. If the target is one of them, stop the shortcut and ask the developer which
|
|
14
|
+
project to use, or to open the coding agent in a new empty folder.
|
|
15
|
+
|
|
10
16
|
Match the selected agent framework and frontend to this table:
|
|
11
17
|
|
|
12
|
-
| Agent framework | Frontend | Framework ID |
|
|
13
|
-
| -------------------------------- | -------- | ---------------------------------- |
|
|
14
|
-
| Agno | Next.js | `agno` |
|
|
15
|
-
| Claude Agent SDK Python | Next.js | `claude-sdk-python` |
|
|
16
|
-
| Claude Agent SDK TypeScript | Next.js | `claude-sdk-typescript` |
|
|
17
|
-
| CrewAI Flows | Next.js | `flows` |
|
|
18
|
-
| LangGraph Python | Next.js | `langgraph-py` |
|
|
19
|
-
| LangGraph TypeScript | Next.js | `langgraph-js` |
|
|
20
|
-
| LlamaIndex | Next.js | `llamaindex` |
|
|
21
|
-
| ADK | Next.js | `adk` |
|
|
22
|
-
| ADK | Angular | `adk-angular` |
|
|
23
|
-
| Microsoft Agent Framework Python | Next.js | `microsoft-agent-framework-py` |
|
|
24
|
-
| Microsoft Agent Framework .NET | Next.js | `microsoft-agent-framework-dotnet` |
|
|
25
|
-
| Mastra | Next.js | `mastra` |
|
|
26
|
-
| Pydantic AI | Next.js | `pydantic-ai` |
|
|
27
|
-
| Strands Agents Python | Next.js | `aws-strands-py` |
|
|
28
|
-
| Strands Agents TypeScript | Next.js | `aws-strands-ts` |
|
|
18
|
+
| Agent framework | Frontend | Framework ID | Model key |
|
|
19
|
+
| -------------------------------- | -------- | ---------------------------------- | ----------------------------------------- |
|
|
20
|
+
| Agno | Next.js | `agno` | `OPENAI_API_KEY` |
|
|
21
|
+
| Claude Agent SDK Python | Next.js | `claude-sdk-python` | `ANTHROPIC_API_KEY` |
|
|
22
|
+
| Claude Agent SDK TypeScript | Next.js | `claude-sdk-typescript` | `ANTHROPIC_API_KEY` |
|
|
23
|
+
| CrewAI Flows | Next.js | `flows` | `OPENAI_API_KEY` |
|
|
24
|
+
| LangGraph Python | Next.js | `langgraph-py` | `OPENAI_API_KEY` |
|
|
25
|
+
| LangGraph TypeScript | Next.js | `langgraph-js` | `OPENAI_API_KEY` |
|
|
26
|
+
| LlamaIndex | Next.js | `llamaindex` | `OPENAI_API_KEY` |
|
|
27
|
+
| ADK | Next.js | `adk` | `GOOGLE_API_KEY` |
|
|
28
|
+
| ADK | Angular | `adk-angular` | `GOOGLE_API_KEY` |
|
|
29
|
+
| Microsoft Agent Framework Python | Next.js | `microsoft-agent-framework-py` | `OPENAI_API_KEY` in `agent/.env` |
|
|
30
|
+
| Microsoft Agent Framework .NET | Next.js | `microsoft-agent-framework-dotnet` | `OPENAI_API_KEY` in `dotnet user-secrets` |
|
|
31
|
+
| Mastra | Next.js | `mastra` | `OPENAI_API_KEY` |
|
|
32
|
+
| Pydantic AI | Next.js | `pydantic-ai` | `OPENAI_API_KEY` |
|
|
33
|
+
| Strands Agents Python | Next.js | `aws-strands-py` | `OPENAI_API_KEY` |
|
|
34
|
+
| Strands Agents TypeScript | Next.js | `aws-strands-ts` | `OPENAI_API_KEY` |
|
|
29
35
|
|
|
30
36
|
Each Framework ID selects a starter that the CLI ships with Intelligence. Do not infer a
|
|
31
37
|
different pair from a similar name. AG2 does not use this shortcut because its starter does
|
|
@@ -46,24 +52,44 @@ the derived name.
|
|
|
46
52
|
Only if the developer asks for an existing project, or asks to see the projects they have,
|
|
47
53
|
read the choices:
|
|
48
54
|
|
|
49
|
-
`npx --yes copilotkit@4.
|
|
55
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 project list --json`
|
|
50
56
|
|
|
51
57
|
Then ask which one to use. Do not order the projects by creation time. If the developer
|
|
52
58
|
already gave this answer, do not ask again. Do not read a secret value. Do not show or
|
|
53
59
|
store a secret value.
|
|
54
60
|
|
|
61
|
+
## Ask where the model credential lives
|
|
62
|
+
|
|
63
|
+
The starter reads a model credential, and the `init` command below does not ask for one.
|
|
64
|
+
Ask for it now, while the developer is still here, and not after the clone. The variable
|
|
65
|
+
is the Model key column of the row you matched. Do not guess it from the framework name.
|
|
66
|
+
|
|
67
|
+
Ask the developer one question: which file holds that key, or whether they will add it
|
|
68
|
+
themselves after the clone. Asking where a credential lives is not requesting a secret
|
|
69
|
+
value. Never ask for the value itself. If no answer comes, clone anyway. The step after
|
|
70
|
+
the clone pauses for the key.
|
|
71
|
+
|
|
72
|
+
A path the developer names is theirs to give, including one outside the project. A path
|
|
73
|
+
this run finds is not. Never read a key file the developer did not name. A key found that
|
|
74
|
+
way bills a project nobody chose.
|
|
75
|
+
|
|
76
|
+
## Clone the starter
|
|
77
|
+
|
|
55
78
|
Run the command from the parent directory. Do not inspect another entry in the parent
|
|
56
79
|
directory. Replace each placeholder with the recorded value. Do not run a placeholder as
|
|
57
80
|
a shell argument.
|
|
58
81
|
|
|
59
|
-
`npx --yes copilotkit@4.
|
|
82
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 init --name <directory-name> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
|
|
60
83
|
|
|
61
|
-
|
|
62
|
-
|
|
84
|
+
`--name` is always the target directory name derived above, because `init` creates the
|
|
85
|
+
app at `<parent>/<name>`. Any other value puts the app in a new folder beside the target,
|
|
86
|
+
outside the directory this run is bound to. Pass the confirmed project name to `--create`
|
|
87
|
+
only. If the developer names an existing project,
|
|
63
88
|
use `--project <slug-or-id>` instead of `--create <name>`. If the developer asked to skip
|
|
64
89
|
the dependency install, use
|
|
65
90
|
`--no-install` instead of `--install`. Do not wait for an interactive prompt. Pass every
|
|
66
|
-
answer as a flag.
|
|
91
|
+
answer as a flag. `--no-key-prompt` stops `init` from asking for a model key. The `init`
|
|
92
|
+
output still names each missing key as `Set <VARIABLE> in .env`.
|
|
67
93
|
|
|
68
94
|
The command clones the starter into the empty target directory. It also connects the
|
|
69
95
|
starter to the developer's Intelligence project. The earlier login phase supplies the
|
|
@@ -72,7 +98,7 @@ account. The command does not need terminal input.
|
|
|
72
98
|
Report the clone before you inspect anything:
|
|
73
99
|
|
|
74
100
|
```text
|
|
75
|
-
npx --yes copilotkit@4.
|
|
101
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase starter-cloned
|
|
76
102
|
```
|
|
77
103
|
|
|
78
104
|
This is its own step, not an aside. A run that clones and then goes quiet is
|
|
@@ -81,11 +107,56 @@ separates them.
|
|
|
81
107
|
|
|
82
108
|
Do not rebuild the starter by hand. Then inspect only the generated
|
|
83
109
|
paths inside the target directory. Record the files, install result, project connection,
|
|
84
|
-
and validation commands.
|
|
85
|
-
|
|
110
|
+
and validation commands.
|
|
111
|
+
|
|
112
|
+
## Settle the model credential
|
|
113
|
+
|
|
114
|
+
The `init` output names each missing credential as `Set <VARIABLE> in .env`. For each
|
|
115
|
+
one, check the starter's own `.env` without reading the value:
|
|
116
|
+
|
|
117
|
+
```text
|
|
118
|
+
grep -c '^<VARIABLE>=.' <target>/.env
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
`1` means the variable holds a value. `0` means it is empty or absent. The command prints
|
|
122
|
+
a count and never the value.
|
|
123
|
+
|
|
124
|
+
If the developer named a key file, copy that one variable from it into `<target>/.env`,
|
|
125
|
+
in place of the empty line. Do not print either file, and do not print the value. Then
|
|
126
|
+
run the check again.
|
|
127
|
+
|
|
128
|
+
If a variable is still empty, ask the developer to add it to `<target>/.env` themselves.
|
|
129
|
+
|
|
130
|
+
The two Microsoft Agent Framework starters keep their key outside `<target>/.env`, so
|
|
131
|
+
`init` prints no `Set` line for them. Settle the key from the Model key column instead:
|
|
132
|
+
|
|
133
|
+
- For the Python starter, run the same check for `OPENAI_API_KEY` against
|
|
134
|
+
`<target>/agent/.env`. A missing file counts as `0`. If the developer named a key file,
|
|
135
|
+
copy the variable into `<target>/agent/.env` the same way. If it is still empty, ask the
|
|
136
|
+
developer to add it there themselves.
|
|
137
|
+
- For the .NET starter, the key lives in `dotnet user-secrets`, and no check can read it
|
|
138
|
+
without printing the value. Ask the developer to run
|
|
139
|
+
`cd <target>/agent && dotnet user-secrets set OPENAI_API_KEY "<key>"` themselves, even
|
|
140
|
+
if they named a key file.
|
|
141
|
+
|
|
142
|
+
Then report the pause and end your turn:
|
|
143
|
+
|
|
144
|
+
```text
|
|
145
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase awaiting-developer
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
This is a pause, not a stop. Do not send a stop report, and do not take a stop route.
|
|
149
|
+
When the developer says the credential is in place, run the check again, and continue
|
|
150
|
+
when every variable holds a value. For the .NET starter, continue on the developer's word. Do not write a placeholder or an empty value to get
|
|
151
|
+
past this step. A starter with a dummy key looks finished and fails at the first model
|
|
152
|
+
call.
|
|
153
|
+
|
|
154
|
+
If no credential is missing, report no pause and continue.
|
|
155
|
+
|
|
156
|
+
Then run `npx --prefer-offline --yes copilotkit@4.15.0 onboard read proof/round-trip`.
|
|
86
157
|
|
|
87
158
|
If the command fails, report its exact error and do not claim that the starter is ready.
|
|
88
159
|
Then run
|
|
89
|
-
`npx --yes copilotkit@4.
|
|
160
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard read stopped/run-failed`. The starter is one this
|
|
90
161
|
graph ships and the stack was chosen from its own supported list, so a command that
|
|
91
162
|
returned an error is a run that broke, not a setup this release does not support.
|
|
@@ -35,10 +35,10 @@ put to them, stop here and send the report below.
|
|
|
35
35
|
If they approve it, make that one fix and nothing else. Then come back into this run:
|
|
36
36
|
|
|
37
37
|
```text
|
|
38
|
-
npx --yes copilotkit@4.
|
|
38
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard resume --message "<approval>"
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
Put the developer's approval in `--message`, in one or two sentences: the fix they
|
|
42
42
|
approved and what it touches. Send no secrets, source code, logs, or command output. The
|
|
43
43
|
command refuses an approval that carries any of those, prints the reason, exits zero, and
|
|
44
44
|
serves nothing. Reword it and send it again.
|
|
@@ -58,10 +58,10 @@ Send one short report. Run the friction command without another developer questi
|
|
|
58
58
|
ask the developer about telemetry: the command applies the setting they already have.
|
|
59
59
|
|
|
60
60
|
```text
|
|
61
|
-
npx --yes copilotkit@4.
|
|
61
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
`--message` takes one or two sentences: the step you stopped at and what stopped
|
|
65
65
|
it. Pick the category that fits from docs-missing, docs-wrong, docs-sequential, cli-gap,
|
|
66
66
|
sdk-gap, environment, port-collision, credential, validation-loop, and other. Leave
|
|
67
67
|
--cost-seconds off. A run that stopped cannot separate one papercut's cost from the cost
|
|
@@ -119,8 +119,8 @@ different spelling, and it breaks again as soon as CopilotKit moves to `0.0.60`.
|
|
|
119
119
|
|
|
120
120
|
Plan the upgrade as its own step before the Intelligence runtime wiring, and plan to
|
|
121
121
|
re-run the recorded baseline checks immediately after it. Name the revert: restore the
|
|
122
|
-
manifest and lockfile to their recorded state and
|
|
123
|
-
onto a baseline the upgrade broke.
|
|
122
|
+
manifest and lockfile to their recorded state and report the break, rather than wiring
|
|
123
|
+
Intelligence onto a baseline the upgrade broke.
|
|
124
124
|
|
|
125
125
|
Where the SDK requires an application-level value that the repository cannot supply, such
|
|
126
126
|
as an end-user identity for threads, use one clearly marked local placeholder and name what
|
|
@@ -170,7 +170,7 @@ here is work the developer did not ask for.
|
|
|
170
170
|
Plan the threads drawer itself: add it from the selected drawer page, where this frontend
|
|
171
171
|
does not already render one. Where this journey's frontend framework ships no threads
|
|
172
172
|
drawer -- React Native --, plan that the thread is proved by
|
|
173
|
-
`npx --yes copilotkit@4.
|
|
173
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 verify --round-trip`, which needs no browser. Do not plan a
|
|
174
174
|
step that opens the managed Intelligence dashboard.
|
|
175
175
|
|
|
176
176
|
## Order the plan into steps
|
|
@@ -223,5 +223,5 @@ command rather than running them one at a time. Split a command only when its re
|
|
|
223
223
|
what you run next.
|
|
224
224
|
|
|
225
225
|
Start with `Status: passed`, `Status: failed`, or `Status: blocked`.
|
|
226
|
-
Return the plan, the URLs that you read, and each documentation gap.
|
|
226
|
+
Return the plan, the URLs that you read, and each documentation gap. End your turn after you return
|
|
227
227
|
the findings to the main coding agent.
|