copilotkit 4.16.0 → 4.17.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 +69 -4
- package/cli-build-info.json +7 -7
- package/index.js +3993 -2742
- package/onboarding/index.json +1 -1
- package/onboarding/prompts/authenticate/start.md +17 -15
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +20 -20
- package/onboarding/prompts/credentials/plan.md +21 -21
- package/onboarding/prompts/credentials/settle-credentials.md +46 -10
- package/onboarding/prompts/credentials/write-plan.md +35 -20
- package/onboarding/prompts/fallback/best-effort.md +23 -15
- 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 +8 -10
- 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 +11 -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 +8 -10
- package/onboarding/prompts/feature/complete.md +2 -2
- package/onboarding/prompts/feature/learning/implement.md +58 -26
- package/onboarding/prompts/feature/learning/proof.md +30 -10
- package/onboarding/prompts/feature/learning/start.md +15 -12
- 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 +8 -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 +8 -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 +8 -9
- package/onboarding/prompts/feature/stop.md +3 -3
- 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 +8 -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 +7 -7
- package/onboarding/prompts/frontend/react-native.md +2 -2
- package/onboarding/prompts/frontend/react-spa.md +2 -2
- package/onboarding/prompts/frontend/vue.md +2 -2
- package/onboarding/prompts/implementation/build-and-validate.md +67 -28
- package/onboarding/prompts/proof/complete.md +21 -14
- package/onboarding/prompts/proof/oss-baseline.md +16 -12
- package/onboarding/prompts/proof/round-trip.md +33 -22
- 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 +14 -11
- package/onboarding/prompts/stopped/run-failed.md +9 -9
- package/onboarding/prompts/subagent/create-plan.md +15 -10
- package/onboarding/prompts/subagent/implement-and-validate.md +25 -11
- package/onboarding/prompts/subagent/inspect-repository.md +14 -6
- package/onboarding/prompts/subagent/prove-oss-baseline.md +5 -4
- package/onboarding/prompts/subagent/prove-round-trip.md +38 -14
- package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
- package/package.json +1 -5
- package/release/release-tool.js +171 -40
package/onboarding/index.json
CHANGED
|
@@ -15,7 +15,7 @@ does is hidden from the developer.
|
|
|
15
15
|
Run each CLI call exactly as written, as its own command: no pipe, `tee`, `&&`, redirect,
|
|
16
16
|
or variable prefix. If your harness asks the developer to approve commands, request
|
|
17
17
|
escalation on the `onboard identify` call with the prefix rule
|
|
18
|
-
`["npx", "--prefer-offline", "--yes", "copilotkit@4.
|
|
18
|
+
`["npx", "--prefer-offline", "--yes", "copilotkit@4.17.0"]`. Every CLI call in this run
|
|
19
19
|
matches it. Say then that the install, the dev servers, `curl` to the local app, and `ps`,
|
|
20
20
|
`lsof`, and `kill` ask for approval later.
|
|
21
21
|
|
|
@@ -24,10 +24,12 @@ matches it. Say then that the install, the dev servers, `curl` to the local app,
|
|
|
24
24
|
Run this before anything else in this prompt, including the welcome message below:
|
|
25
25
|
|
|
26
26
|
```text
|
|
27
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
27
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id>
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
Report your own product with one short slug, such as `codex` or `claude-code`.
|
|
30
|
+
Report your own product with one short slug, such as `codex` or `claude-code`. For
|
|
31
|
+
`--model`, give the exact model id your instructions name. If they name none, leave out
|
|
32
|
+
`--model` rather than guess.
|
|
31
33
|
|
|
32
34
|
## How to run this onboarding
|
|
33
35
|
|
|
@@ -47,10 +49,10 @@ printed once.
|
|
|
47
49
|
Every later command must run from the directory this run started in. A command run
|
|
48
50
|
somewhere else is refused, because the run it belongs to cannot be found from there. That
|
|
49
51
|
refusal is a step, not a stop to report: run
|
|
50
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
52
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard start --run <onboarding_run_id>` where you are
|
|
51
53
|
standing, then run the refused command again.
|
|
52
54
|
|
|
53
|
-
If you no longer hold the id, run `npx --prefer-offline --yes copilotkit@4.
|
|
55
|
+
If you no longer hold the id, run `npx --prefer-offline --yes copilotkit@4.17.0 onboard start` in the
|
|
54
56
|
directory this run started in, with no `--run` and no `--intent`. It reprints the id of the
|
|
55
57
|
run under way and starts nothing. An id this project does not already hold starts a second
|
|
56
58
|
run, and the work already done stops counting toward the first.
|
|
@@ -113,11 +115,12 @@ record to the repository root by itself and prints where it put it.
|
|
|
113
115
|
This run reports its own stops. If you stop this run at any point, send one short report
|
|
114
116
|
before you stop. That covers a stop this prompt names, a stop a later prompt names, and a
|
|
115
117
|
stop no prompt anticipated, including one your own harness causes. A turn that ends while
|
|
116
|
-
the run waits is a pause, not a stop, even when your harness ends it.
|
|
117
|
-
|
|
118
|
+
the run waits is a pause, not a stop, even when your harness ends it. A terminal that
|
|
119
|
+
sends the report itself, or says to file none, overrides this.
|
|
120
|
+
Run the friction command without another developer question.
|
|
118
121
|
|
|
119
122
|
```text
|
|
120
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
123
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
121
124
|
```
|
|
122
125
|
|
|
123
126
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -127,13 +130,12 @@ sdk-gap, environment, port-collision, credential, validation-loop, and other. Le
|
|
|
127
130
|
report that carries any of those, prints the reason, and exits zero. A refused report is
|
|
128
131
|
not a failed step. Reword it and send it again, or stop without a report.
|
|
129
132
|
|
|
130
|
-
Reporting a stop is not a route change. It does not resume the run
|
|
131
|
-
|
|
132
|
-
next: send the report, then stop.
|
|
133
|
+
Reporting a stop is not a route change. It does not resume the run or replace what the
|
|
134
|
+
rule that stopped you says next: send the report, then stop.
|
|
133
135
|
|
|
134
136
|
## Check sign-in
|
|
135
137
|
|
|
136
|
-
Run `npx --prefer-offline --yes copilotkit@4.
|
|
138
|
+
Run `npx --prefer-offline --yes copilotkit@4.17.0 login --json` before any project work. This command
|
|
137
139
|
checks the current session. It starts sign-in only as needed. Treat this as a long-lived
|
|
138
140
|
streaming process. Do not wait for the command to exit before you read its standard output.
|
|
139
141
|
|
|
@@ -167,7 +169,7 @@ Read each JSON Lines record as the running command writes it:
|
|
|
167
169
|
second login command. Do not treat the opener command finishing as sign-in finishing.
|
|
168
170
|
6. Continue onboarding only after that same process emits `type: completed`.
|
|
169
171
|
7. On `type: failed` with `reason: expired`, ask once whether to retry. If yes, start one
|
|
170
|
-
new `login --json`.
|
|
172
|
+
new `login --json`. Use `--force` only when the developer asks.
|
|
171
173
|
8. If that process emits `type: failed`, report the error and stop onboarding.
|
|
172
174
|
|
|
173
175
|
If your harness ends the login process or your turn before the process emits
|
|
@@ -180,8 +182,8 @@ Do not use `whoami` for this check. Do not put account tokens or credentials in
|
|
|
180
182
|
conversation.
|
|
181
183
|
|
|
182
184
|
When sign-in is settled, run
|
|
183
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
185
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read research/gather`.
|
|
184
186
|
|
|
185
187
|
If sign-in stops onboarding, run
|
|
186
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
188
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read stopped/run-failed`. It says nothing about
|
|
187
189
|
whether this project's stack is supported, which is not yet known at this point.
|
|
@@ -100,7 +100,7 @@ of this journey, and a drawer that lists nothing is not a reason to mint one. Li
|
|
|
100
100
|
tokens stay a self-hosted concern.
|
|
101
101
|
|
|
102
102
|
Where this journey's frontend framework ships no threads drawer -- React Native --, the
|
|
103
|
-
fifth item is proved by `npx --prefer-offline --yes copilotkit@4.
|
|
103
|
+
fifth item is proved by `npx --prefer-offline --yes copilotkit@4.17.0 verify --round-trip`, which sends a
|
|
104
104
|
real request and reads the answer back off the thread it landed on. The run says which of
|
|
105
105
|
the two it proved. Do not send a run to the managed Intelligence dashboard to prove this.
|
|
106
106
|
An authenticated browser session at a hosted dashboard is the one thing an agent-driven run
|
|
@@ -116,7 +116,7 @@ and passed -- so a run scored on either one was scored on the same fact. Every r
|
|
|
116
116
|
resolves that condition from, while `licenseStatus` is a compatibility projection of it
|
|
117
117
|
for older thread surfaces and outlives them only until those surfaces go.
|
|
118
118
|
|
|
119
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
119
|
+
Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard read credentials/finalize-plan`.
|
|
120
120
|
|
|
121
121
|
If a selected page does not load after the second method, run
|
|
122
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
122
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read unsupported/no-validated-path`.
|
|
@@ -15,23 +15,22 @@ question.
|
|
|
15
15
|
|
|
16
16
|
## If you stop in this phase
|
|
17
17
|
|
|
18
|
-
Several rules below stop onboarding:
|
|
19
|
-
that reports a false field, a
|
|
20
|
-
|
|
21
|
-
exact file, value, or check that stopped you
|
|
22
|
-
|
|
18
|
+
Several rules below stop onboarding: an environment path that cannot be made ignored, a
|
|
19
|
+
project selection that reports a false field, a project record written somewhere other
|
|
20
|
+
than the expected path, and a failed credential check. Each one ends a run that never got
|
|
21
|
+
a plan. Name the exact file, value, or check that stopped you, not only the step. Send one
|
|
22
|
+
short report before you stop. Run the friction command without another
|
|
23
23
|
developer question. Do not ask the developer about telemetry: the command applies the
|
|
24
24
|
setting they already have.
|
|
25
25
|
|
|
26
26
|
```text
|
|
27
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
27
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
31
31
|
Pick the category that fits from docs-missing, docs-wrong, docs-sequential, cli-gap,
|
|
32
32
|
sdk-gap, environment, port-collision, credential, validation-loop, and other. Leave
|
|
33
|
-
--cost-seconds off
|
|
34
|
-
of the whole run, so the estimate is optional on a stop report and only there.
|
|
33
|
+
--cost-seconds off: a stopped run cannot separate one papercut's cost from the whole run's.
|
|
35
34
|
Send no secrets, source code, logs, or command output. The command refuses a report that
|
|
36
35
|
carries any of those, prints the reason, and exits zero. A refused report is not a failed
|
|
37
36
|
step. Send the report, then stop the way the rule that stopped you says to. Reporting is
|
|
@@ -59,7 +58,7 @@ the command refuses one of them from a run that was served that node.
|
|
|
59
58
|
Run this command with the exact selected slugs:
|
|
60
59
|
|
|
61
60
|
```text
|
|
62
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
61
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend>
|
|
63
62
|
```
|
|
64
63
|
|
|
65
64
|
Do not continue if a value is refused. Fix the value from the choices that the earlier
|
|
@@ -72,7 +71,8 @@ the runtime `.env` file, do not default to the repository root.
|
|
|
72
71
|
Set the environment path to `<target>/.env`.
|
|
73
72
|
|
|
74
73
|
Every credential this run writes goes to the environment path. That covers the project
|
|
75
|
-
key and the model credential
|
|
74
|
+
key and the model credential, unless the framework node names another location for the
|
|
75
|
+
model credential. Do not write a credential to `.env.local`, or to any second
|
|
76
76
|
env file beside it. A project ignore file usually covers `.env` and not
|
|
77
77
|
`.env.local`, so a credential written there is untracked, visible, and added by the first
|
|
78
78
|
`git add -A`. And a second env file beside `.env` outranks it when a key is read back, so
|
|
@@ -125,9 +125,8 @@ that provisions its key.
|
|
|
125
125
|
|
|
126
126
|
If an output path overlaps a `protected` path, do not stop. Name the path, say what
|
|
127
127
|
project selection writes there, list that file in the plan with every other change, and
|
|
128
|
-
carry on.
|
|
129
|
-
this project's key, so a
|
|
130
|
-
way to finish.
|
|
128
|
+
carry on. A `protected` path overlap does not end the run. Project selection provisions
|
|
129
|
+
this project's key, so a stop here leaves the developer with no key and no way to finish.
|
|
131
130
|
|
|
132
131
|
### Create a project for this directory
|
|
133
132
|
|
|
@@ -156,7 +155,7 @@ passes against the wrong one.
|
|
|
156
155
|
Create it, from the target directory, passing the port research settled:
|
|
157
156
|
|
|
158
157
|
```text
|
|
159
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
158
|
+
npx --prefer-offline --yes copilotkit@4.17.0 project select --create <name> \
|
|
160
159
|
--runtime-url http://localhost:<port>/api/copilotkit --json
|
|
161
160
|
```
|
|
162
161
|
|
|
@@ -174,13 +173,13 @@ Take this branch only when the developer asks for an existing project, or asks t
|
|
|
174
173
|
projects they have. Read the choices:
|
|
175
174
|
|
|
176
175
|
```text
|
|
177
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
176
|
+
npx --prefer-offline --yes copilotkit@4.17.0 project list --json
|
|
178
177
|
```
|
|
179
178
|
|
|
180
179
|
Narrow them:
|
|
181
180
|
|
|
182
181
|
```text
|
|
183
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
182
|
+
npx --prefer-offline --yes copilotkit@4.17.0 project list --search <query> --json
|
|
184
183
|
```
|
|
185
184
|
|
|
186
185
|
With `--json` the payload is the only thing on standard output, so it is safe to parse. Do
|
|
@@ -193,7 +192,7 @@ Then record the project they name, from the target directory, with the same
|
|
|
193
192
|
`--runtime-url`:
|
|
194
193
|
|
|
195
194
|
```text
|
|
196
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
195
|
+
npx --prefer-offline --yes copilotkit@4.17.0 project select --project <slug-or-id> \
|
|
197
196
|
--runtime-url http://localhost:<port>/api/copilotkit --json
|
|
198
197
|
```
|
|
199
198
|
|
|
@@ -220,8 +219,9 @@ onboarding.
|
|
|
220
219
|
Never print the payload or any secret value.
|
|
221
220
|
|
|
222
221
|
After project reuse or a warning-free selection result, send the environment
|
|
223
|
-
research subagent a focused follow-up check. Give it the exact target app directory
|
|
224
|
-
credential paths
|
|
222
|
+
research subagent a focused follow-up check. Give it the exact target app directory, both
|
|
223
|
+
credential paths, and the `.env` modification time the inspection returned. Require it to
|
|
224
|
+
report these facts without values:
|
|
225
225
|
|
|
226
226
|
- The project-record path has non-empty `projectId` and `projectSlug` fields. Unless
|
|
227
227
|
`COPILOTKIT_DEPLOYMENT` is `self-hosted`, it also has a non-empty `clerkOrgId` field.
|
|
@@ -238,4 +238,4 @@ project-record path and environment path as the credential setup path list. Do n
|
|
|
238
238
|
to the baseline yet.
|
|
239
239
|
|
|
240
240
|
When project selection is settled, run
|
|
241
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
241
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read credentials/settle-credentials`.
|
|
@@ -20,7 +20,7 @@ If the target directory holds no project and the copied prompt came from the Sla
|
|
|
20
20
|
Microsoft Teams docs page, do not ask the framework question. The Channel starter brings
|
|
21
21
|
its own agent, so an answer here decides nothing. Tell the developer that the Channel
|
|
22
22
|
starter decides the agent, then run
|
|
23
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
23
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read frontend/plan`.
|
|
24
24
|
|
|
25
25
|
Use a gentle wizard. Ask one short question at a time. Do not combine separate choices in
|
|
26
26
|
one question. Put the recommendation first, give its evidence in one sentence, and keep
|
|
@@ -74,26 +74,26 @@ another framework. Do not show the internal route.
|
|
|
74
74
|
|
|
75
75
|
Use exactly one matching internal route:
|
|
76
76
|
|
|
77
|
-
1. AG2: `npx --prefer-offline --yes copilotkit@4.
|
|
78
|
-
2. Agno: `npx --prefer-offline --yes copilotkit@4.
|
|
79
|
-
3. Built-in CopilotKit agent: `npx --prefer-offline --yes copilotkit@4.
|
|
80
|
-
4. Claude Agent SDK Python: `npx --prefer-offline --yes copilotkit@4.
|
|
81
|
-
5. Claude Agent SDK TypeScript: `npx --prefer-offline --yes copilotkit@4.
|
|
82
|
-
6. CrewAI Flows: `npx --prefer-offline --yes copilotkit@4.
|
|
83
|
-
7. Deep Agents: `npx --prefer-offline --yes copilotkit@4.
|
|
84
|
-
8. LangGraph Python: `npx --prefer-offline --yes copilotkit@4.
|
|
85
|
-
9. LangGraph FastAPI: `npx --prefer-offline --yes copilotkit@4.
|
|
86
|
-
10. LangGraph TypeScript: `npx --prefer-offline --yes copilotkit@4.
|
|
87
|
-
11. LlamaIndex: `npx --prefer-offline --yes copilotkit@4.
|
|
88
|
-
12. ADK: `npx --prefer-offline --yes copilotkit@4.
|
|
89
|
-
13. Microsoft Agent Framework Python: `npx --prefer-offline --yes copilotkit@4.
|
|
90
|
-
14. Microsoft Agent Framework .NET: `npx --prefer-offline --yes copilotkit@4.
|
|
91
|
-
15. Mastra: `npx --prefer-offline --yes copilotkit@4.
|
|
92
|
-
16. MS Agent Harness .NET: `npx --prefer-offline --yes copilotkit@4.
|
|
93
|
-
17. Pydantic AI: `npx --prefer-offline --yes copilotkit@4.
|
|
94
|
-
18. Strands Agents Python: `npx --prefer-offline --yes copilotkit@4.
|
|
95
|
-
19. Strands Agents TypeScript: `npx --prefer-offline --yes copilotkit@4.
|
|
77
|
+
1. AG2: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/ag2`
|
|
78
|
+
2. Agno: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/agno`
|
|
79
|
+
3. Built-in CopilotKit agent: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/built-in`
|
|
80
|
+
4. Claude Agent SDK Python: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/claude-sdk-python`
|
|
81
|
+
5. Claude Agent SDK TypeScript: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/claude-sdk-typescript`
|
|
82
|
+
6. CrewAI Flows: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/crewai-flows`
|
|
83
|
+
7. Deep Agents: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/deep-agents`
|
|
84
|
+
8. LangGraph Python: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/langgraph-python`
|
|
85
|
+
9. LangGraph FastAPI: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/langgraph-fastapi`
|
|
86
|
+
10. LangGraph TypeScript: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/langgraph-typescript`
|
|
87
|
+
11. LlamaIndex: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/llamaindex`
|
|
88
|
+
12. ADK: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/google-adk`
|
|
89
|
+
13. Microsoft Agent Framework Python: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/ms-agent-python`
|
|
90
|
+
14. Microsoft Agent Framework .NET: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/ms-agent-dotnet`
|
|
91
|
+
15. Mastra: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/mastra`
|
|
92
|
+
16. MS Agent Harness .NET: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/ms-agent-harness-dotnet`
|
|
93
|
+
17. Pydantic AI: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/pydantic-ai`
|
|
94
|
+
18. Strands Agents Python: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/strands-python`
|
|
95
|
+
19. Strands Agents TypeScript: `npx --prefer-offline --yes copilotkit@4.17.0 onboard read framework/strands-typescript`
|
|
96
96
|
|
|
97
97
|
If the project has an agent in another framework, or no listed framework fits, keep the
|
|
98
98
|
developer's current agent and run
|
|
99
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
99
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read unsupported/no-validated-path`.
|
|
@@ -11,7 +11,7 @@ friction command without another developer question. Do not ask the developer ab
|
|
|
11
11
|
telemetry: the command applies the setting they already have.
|
|
12
12
|
|
|
13
13
|
```text
|
|
14
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
14
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -60,7 +60,7 @@ One container for this project is the default scope, so the id comes from the se
|
|
|
60
60
|
project slug. Ask the CLI for it, from the target directory:
|
|
61
61
|
|
|
62
62
|
```text
|
|
63
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
63
|
+
npx --prefer-offline --yes copilotkit@4.17.0 learning containers default-id --json
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
The command reads the local project record. It needs no credential and makes no network
|
|
@@ -79,7 +79,7 @@ happened.
|
|
|
79
79
|
Then ask the platform about that id, from the target directory:
|
|
80
80
|
|
|
81
81
|
```text
|
|
82
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
82
|
+
npx --prefer-offline --yes copilotkit@4.17.0 learning containers get <id> --json
|
|
83
83
|
```
|
|
84
84
|
|
|
85
85
|
The read carries the same availability gate as the create, so it answers the entitlement
|
|
@@ -104,7 +104,7 @@ Never invent an id, scrape a dashboard, or treat an arbitrary string as a contai
|
|
|
104
104
|
Report what the read found, before anything is planned:
|
|
105
105
|
|
|
106
106
|
```text
|
|
107
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
107
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase container-surveyed
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
Carry the derived id into the planning subagent's handoff, with whether the platform
|
|
@@ -128,7 +128,7 @@ finds is not.
|
|
|
128
128
|
Until the developer answers, the run waits. Report the pause and end your turn:
|
|
129
129
|
|
|
130
130
|
```text
|
|
131
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
131
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase awaiting-developer
|
|
132
132
|
```
|
|
133
133
|
|
|
134
134
|
This is a pause, not a stop. `research/gather` describes it under "Pausing vs stopping".
|
|
@@ -136,12 +136,47 @@ Do not send a stop report, and do not take a stop route. When the developer answ
|
|
|
136
136
|
continue from this step. Do not write a placeholder or an empty value. A scaffold carrying
|
|
137
137
|
a dummy key looks finished and fails at the first model call.
|
|
138
138
|
|
|
139
|
+
## Check that the vendor accepts the model credential
|
|
140
|
+
|
|
141
|
+
When a model credential is in place, ask the vendor whether the key can pay for a model
|
|
142
|
+
call. Run this once for each model credential variable the plan names, from the
|
|
143
|
+
target app directory, with the env file the application reads it from:
|
|
144
|
+
|
|
145
|
+
```text
|
|
146
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard model-key --key <variable name> --env-file <env file> --json
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
The command reads the value itself and sends one request with a one-token answer to that
|
|
150
|
+
vendor. It never prints the value, so you still do not read it. Read `status` from the
|
|
151
|
+
payload:
|
|
152
|
+
|
|
153
|
+
- `pass`: the vendor served a model call with this key. Continue.
|
|
154
|
+
- `fail`: the vendor refused the key, and it will refuse every model call the application
|
|
155
|
+
makes. `cause` says why. `model_quota` means the key has no credits. `model_auth` means
|
|
156
|
+
the vendor rejected the key. Tell the developer that exact cause, and offer the choices:
|
|
157
|
+
add credits, use another key, or switch the model provider. Then report the pause the
|
|
158
|
+
way the section above does, and end your turn. When the developer answers, place the
|
|
159
|
+
new credential and run this check again.
|
|
160
|
+
- `missing`: there is no real value to check. `reason` says which file or key is empty.
|
|
161
|
+
Go back to the section above and ask the developer where the credential lives.
|
|
162
|
+
- `unsupported` or `undetermined`: the check did not settle it. Name the `reason` in the
|
|
163
|
+
closing report and continue. `custom-endpoint` means a base URL sends the key to
|
|
164
|
+
another endpoint, such as a local Ollama, so the vendor was not asked.
|
|
165
|
+
`environment-override` means the shell sets a different value for the key, and the
|
|
166
|
+
application reads that value first. Do not stop the
|
|
167
|
+
run for either status.
|
|
168
|
+
|
|
169
|
+
Do not skip a `fail` to save time. The next model call is the round-trip proof, after the
|
|
170
|
+
whole build, and it reports a dead key only as a timeout that names no key.
|
|
171
|
+
|
|
172
|
+
## Protect the credential paths
|
|
173
|
+
|
|
139
174
|
After model credential placement is complete, add each credential setup path to the
|
|
140
175
|
protected path list. Also add each project file that the developer changed for model
|
|
141
176
|
credentials. Record them in the baseline from the target app directory:
|
|
142
177
|
|
|
143
178
|
```text
|
|
144
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
179
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --path <path>
|
|
145
180
|
```
|
|
146
181
|
|
|
147
182
|
Pass one `--path` for each. The command captures a digest for each path and never re-reads
|
|
@@ -155,7 +190,7 @@ Then re-capture the files this graph wrote itself. For each path the first captu
|
|
|
155
190
|
as `deferred` that this run has now written, run:
|
|
156
191
|
|
|
157
192
|
```text
|
|
158
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
193
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --rebaseline --path <path>
|
|
159
194
|
```
|
|
160
195
|
|
|
161
196
|
From that point they are protected like any other path, so a later step that rewrites
|
|
@@ -174,14 +209,15 @@ environment path. The command below is what to run at that point, from the targe
|
|
|
174
209
|
directory:
|
|
175
210
|
|
|
176
211
|
```text
|
|
177
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
212
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-credential --path <environment path>
|
|
178
213
|
```
|
|
179
214
|
|
|
180
215
|
The command compares the variable names the baseline recorded with the names the file holds
|
|
181
216
|
now. Read its result:
|
|
182
217
|
|
|
183
218
|
- `Status: passed` means the developer added a credential and every recorded credential is
|
|
184
|
-
still there. Carry the accepted path into the summary.
|
|
219
|
+
still there. Carry the accepted path into the summary. Then run the vendor check above
|
|
220
|
+
for the credential the developer added.
|
|
185
221
|
- `credential-lost` means a variable the baseline recorded is gone or empty, and the
|
|
186
222
|
refusal names it. Do not repair or rewrite the file. Report the named variable and stop
|
|
187
223
|
onboarding. A run that lost the project key has nothing to prove a round trip with.
|
|
@@ -189,4 +225,4 @@ now. Read its result:
|
|
|
189
225
|
is not a failed step. It answers the question and the run carries on.
|
|
190
226
|
|
|
191
227
|
When the credential question is answered, run
|
|
192
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
228
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read credentials/write-plan`.
|
|
@@ -11,7 +11,7 @@ friction command without another developer question. Do not ask the developer ab
|
|
|
11
11
|
telemetry: the command applies the setting they already have.
|
|
12
12
|
|
|
13
13
|
```text
|
|
14
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
14
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -29,30 +29,41 @@ it. The credential reaches the platform only when the runtime is constructed wit
|
|
|
29
29
|
Intelligence client, and a runtime built without one compiles, serves, answers in a
|
|
30
30
|
browser, and never touches the platform.
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
Which mount works depends on the `@copilotkit/core` version the app runs: the installed
|
|
33
|
+
version the inspection reported, or the version the plan upgrades to. Do not detect it
|
|
34
|
+
again. Where the inspection reports no `@copilotkit/core`, as a pnpm tree often does, read
|
|
35
|
+
the `@copilotkit/react-core` or `@copilotkit/runtime` version: the three release together.
|
|
36
|
+
Give this rule and that version to the planning subagent below.
|
|
37
|
+
|
|
38
|
+
From `@copilotkit/core` 1.73.1, the Intelligence client honors a single-route transport,
|
|
39
|
+
so either mount works. Keep the mount the project already has, together with its provider
|
|
40
|
+
setting: `mode: "single-route"` with `useSingleEndpoint` true or unset, or the full route
|
|
41
|
+
subtree with `useSingleEndpoint={false}`. For a new mount, use the full route subtree below.
|
|
42
|
+
|
|
43
|
+
Below 1.73.1, mount the runtime on the full route subtree. An Intelligence runtime serves
|
|
44
|
+
its runs over two REST paths: `/agent/<id>/run` and `/agent/<id>/connect`, and the
|
|
45
|
+
Intelligence client of those versions addresses them for every transport the provider
|
|
46
|
+
selects. A runtime mounted with `mode: "single-route"` answers every other call. It
|
|
47
|
+
returns not found for every run and every thread reopen. The other fix is an upgrade of
|
|
48
|
+
the CopilotKit packages to 1.73.1 or later, which the plan can name as its dependency
|
|
49
|
+
upgrade. The round-trip check passes with either mount, so nothing later in this run
|
|
50
|
+
catches the mistake.
|
|
51
|
+
|
|
52
|
+
For the full route subtree in a Next.js app, mount the handler at
|
|
53
|
+
`app/api/copilotkit/[[...slug]]/route.ts`. Export `GET`, `POST`, `PATCH` and `DELETE`.
|
|
54
|
+
Pass `useSingleEndpoint={false}` to the React provider.
|
|
44
55
|
|
|
45
56
|
Add these pages to the selected documentation URLs for the planning, implementation, and
|
|
46
57
|
proof subagents:
|
|
47
58
|
|
|
48
|
-
- https://docs.copilotkit.ai/intelligence/
|
|
59
|
+
- https://docs.copilotkit.ai/intelligence/quickstart.md
|
|
49
60
|
- https://docs.copilotkit.ai/backend/runtime-endpoints.md
|
|
50
61
|
- https://docs.copilotkit.ai/intelligence/managed-intelligence-platform.md
|
|
51
62
|
|
|
52
63
|
Fetch them together with the pages already selected rather than on their own.
|
|
53
64
|
|
|
54
65
|
Spawn one planning subagent. Tell it to run
|
|
55
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
66
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read subagent/create-plan` first and follow the prompt
|
|
56
67
|
it returns. If that read fails because the subagent cannot use the shell, stop that subagent.
|
|
57
68
|
Run the same command yourself, then spawn a fresh subagent with the returned prompt and the
|
|
58
69
|
same handoff. Give it the repository findings, selected framework, frontend, model, credential
|
|
@@ -63,8 +74,11 @@ Wait for the subagent to finish.
|
|
|
63
74
|
Continue only if the planning result starts with `Status: passed`. For `Status: failed`,
|
|
64
75
|
send the result back to the planning subagent for repair, up to three attempts. For
|
|
65
76
|
`Status: blocked`, or a third failed result, run
|
|
66
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
67
|
-
write is a run that broke, not a stack the documentation does not cover.
|
|
77
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read stopped/run-failed`. A plan this run cannot
|
|
78
|
+
write is a run that broke, not a stack the documentation does not cover. The exception is
|
|
79
|
+
a blocked result that names `unsupported/no-validated-path`: the planning subagent found
|
|
80
|
+
that no page supports the plan, so take the no-supported-path route at the end of this
|
|
81
|
+
prompt instead. Do not show or
|
|
68
82
|
ask for approval of a non-pass plan.
|
|
69
83
|
|
|
70
84
|
Make sure that the plan preserves each part that already exists. The plan must name the
|
|
@@ -95,7 +109,8 @@ developer did not approve.
|
|
|
95
109
|
When you ask for approval, tell the developer in one line that this is the last thing you
|
|
96
110
|
need from them, and, unless your harness makes the developer approve commands before they
|
|
97
111
|
run, that they can leave the run once they approve. That is a fact about this graph rather
|
|
98
|
-
than a reassurance: no step after approval asks the developer a question
|
|
112
|
+
than a reassurance: no step after approval asks the developer a question unless a step
|
|
113
|
+
cannot be built as approved, and the steps
|
|
99
114
|
that follow are the longest ones in the run. A developer who does not know that waits at
|
|
100
115
|
the terminal through all of them for a question that never comes. Say it in the same
|
|
101
116
|
message as the plan, and do not turn it into a second question.
|
|
@@ -107,7 +122,7 @@ build. Keep this window open until the app runs." Decide from your own approval
|
|
|
107
122
|
as the welcome did, not from your coding-agent slug.
|
|
108
123
|
|
|
109
124
|
If the developer approves the plan, run
|
|
110
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
125
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read implementation/build-and-validate`.
|
|
111
126
|
|
|
112
127
|
If no exact supported path or documentation URL exists, run
|
|
113
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
128
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read unsupported/no-validated-path`.
|
|
@@ -8,13 +8,15 @@ This fallback contains unproved steps. Use the approved plan in step order.
|
|
|
8
8
|
## If you stop in this fallback
|
|
9
9
|
|
|
10
10
|
Several rules below stop onboarding: a blocked or third failed implementation result, a
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
blocked audit, a changed protected path this run wrote, a changed path that no Files
|
|
12
|
+
changed section accounts for after a proof subagent ran, a credential acceptance refused for a lost variable, a blocked or third
|
|
13
|
+
failed proof, a blocked or third failed repair, and a fix that needs changes to the existing
|
|
14
|
+
agent or frontend. Send one short report before you stop. Run the friction
|
|
13
15
|
command without another developer question. Do not ask the developer about telemetry: the
|
|
14
16
|
command applies the setting they already have.
|
|
15
17
|
|
|
16
18
|
```text
|
|
17
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
19
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
18
20
|
```
|
|
19
21
|
|
|
20
22
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -60,17 +62,23 @@ or frontend, stop onboarding.
|
|
|
60
62
|
|
|
61
63
|
Use these rules for every protected-path check in this fallback:
|
|
62
64
|
|
|
63
|
-
- Run `npx --prefer-offline --yes copilotkit@4.
|
|
65
|
+
- Run `npx --prefer-offline --yes copilotkit@4.17.0 onboard audit` from the target app directory.
|
|
64
66
|
- If a result starts with `Status: blocked`, stop onboarding and report the printed reason.
|
|
65
67
|
It proved nothing changed, so do not report a preservation failure.
|
|
66
68
|
- If a result reports a changed protected path this run wrote, stop onboarding.
|
|
67
|
-
- If a result reports a changed
|
|
68
|
-
the
|
|
69
|
-
|
|
69
|
+
- If a result reports a changed env file, this rule replaces the one above, even when this
|
|
70
|
+
run wrote the file. This run asked the developer to place a
|
|
71
|
+
credential there, so take the credential route rather than the external one. Accept it
|
|
72
|
+
with `npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-credential --path <path>`,
|
|
73
|
+
run the audit again, and name it in the closing report. If the command refuses because
|
|
74
|
+
it names a lost variable, stop onboarding.
|
|
75
|
+
- Before any proof subagent runs, a changed path that no Files changed section from this
|
|
76
|
+
run names came from outside the run. Accept it by name with
|
|
77
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-external --path <path>`, run the
|
|
70
78
|
audit again, and name it in the closing report.
|
|
71
|
-
-
|
|
72
|
-
|
|
73
|
-
|
|
79
|
+
- After a proof subagent runs, a changed path that no Files changed section from this run
|
|
80
|
+
names is unsettled rather than outside the run, because the proof subagent here returns
|
|
81
|
+
no such section. Stop onboarding.
|
|
74
82
|
- Never repair, reset, or revert a protected path.
|
|
75
83
|
|
|
76
84
|
Run the protected-path check now. Apply the protected-path rules. Continue only when the
|
|
@@ -119,13 +127,13 @@ application passes proof. Report each tool result separately from the proof resu
|
|
|
119
127
|
Report the documentation gap and each assumption with the proof evidence. Do not claim
|
|
120
128
|
that the selected documentation proved an inferred step.
|
|
121
129
|
|
|
122
|
-
When the proof is complete, run `npx --prefer-offline --yes copilotkit@4.
|
|
123
|
-
surface-check result the proof subagent returned. Pass exactly one
|
|
124
|
-
journey's surface:
|
|
130
|
+
When the proof is complete, run `npx --prefer-offline --yes copilotkit@4.17.0 onboard complete`, carrying the
|
|
131
|
+
surface-check result the proof subagent returned. Pass exactly one of `--visual-check` or
|
|
132
|
+
`--device-check`, matching this journey's surface:
|
|
125
133
|
|
|
126
134
|
```text
|
|
127
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
128
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
135
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard complete --visual-check <outcome>
|
|
136
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard complete --device-check <outcome>
|
|
129
137
|
```
|
|
130
138
|
|
|
131
139
|
`--visual-check` is for a web frontend and takes `performed`, `skipped-no-browser-tool`, or
|