copilotkit 4.24.0 → 4.25.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 +75 -14
- package/cli-build-info.json +7 -7
- package/index.js +8544 -6674
- package/onboarding/index.json +2 -2
- package/onboarding/prompts/authenticate/start.md +50 -45
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +30 -8
- package/onboarding/prompts/credentials/plan.md +115 -49
- package/onboarding/prompts/credentials/settle-credentials.md +7 -5
- package/onboarding/prompts/credentials/write-plan.md +15 -15
- package/onboarding/prompts/deployment/choose-local.md +44 -7
- package/onboarding/prompts/deployment/local-evaluation.md +12 -6
- package/onboarding/prompts/fallback/best-effort.md +8 -8
- package/onboarding/prompts/feature/a2ui/implement.md +15 -8
- package/onboarding/prompts/feature/a2ui/plan.md +15 -7
- package/onboarding/prompts/feature/a2ui/proof.md +14 -7
- package/onboarding/prompts/feature/a2ui/start.md +15 -14
- package/onboarding/prompts/feature/channels/implement.md +21 -9
- package/onboarding/prompts/feature/channels/plan.md +15 -7
- package/onboarding/prompts/feature/channels/proof.md +14 -7
- package/onboarding/prompts/feature/channels/start.md +20 -13
- package/onboarding/prompts/feature/chat-suggestions/implement.md +15 -8
- package/onboarding/prompts/feature/chat-suggestions/plan.md +15 -7
- package/onboarding/prompts/feature/chat-suggestions/proof.md +14 -7
- package/onboarding/prompts/feature/chat-suggestions/start.md +15 -14
- package/onboarding/prompts/feature/complete.md +2 -2
- package/onboarding/prompts/feature/learning/implement.md +32 -18
- package/onboarding/prompts/feature/learning/plan.md +15 -7
- package/onboarding/prompts/feature/learning/proof.md +37 -13
- package/onboarding/prompts/feature/learning/start.md +15 -14
- package/onboarding/prompts/feature/open-generative-ui/implement.md +15 -8
- package/onboarding/prompts/feature/open-generative-ui/plan.md +15 -7
- package/onboarding/prompts/feature/open-generative-ui/proof.md +14 -7
- package/onboarding/prompts/feature/open-generative-ui/start.md +15 -14
- package/onboarding/prompts/feature/realtime-sync/implement.md +20 -12
- package/onboarding/prompts/feature/realtime-sync/plan.md +15 -7
- package/onboarding/prompts/feature/realtime-sync/proof.md +14 -7
- package/onboarding/prompts/feature/realtime-sync/start.md +14 -13
- package/onboarding/prompts/feature/rich-threads/implement.md +21 -13
- package/onboarding/prompts/feature/rich-threads/plan.md +15 -7
- package/onboarding/prompts/feature/rich-threads/proof.md +14 -7
- package/onboarding/prompts/feature/rich-threads/start.md +14 -13
- package/onboarding/prompts/feature/stop.md +9 -3
- package/onboarding/prompts/feature/voice/implement.md +15 -8
- package/onboarding/prompts/feature/voice/plan.md +16 -8
- package/onboarding/prompts/feature/voice/proof.md +14 -7
- package/onboarding/prompts/feature/voice/start.md +15 -14
- package/onboarding/prompts/framework/ag2.md +6 -5
- package/onboarding/prompts/framework/agno.md +6 -5
- package/onboarding/prompts/framework/built-in.md +9 -6
- 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 +12 -4
- package/onboarding/prompts/framework/custom-ag-ui.md +8 -2
- package/onboarding/prompts/framework/deep-agents.md +6 -5
- package/onboarding/prompts/framework/google-adk.md +2 -2
- package/onboarding/prompts/framework/langgraph-fastapi.md +8 -5
- package/onboarding/prompts/framework/langgraph-python.md +8 -5
- package/onboarding/prompts/framework/langgraph-typescript.md +8 -5
- package/onboarding/prompts/framework/llamaindex.md +6 -5
- package/onboarding/prompts/framework/mastra.md +9 -6
- package/onboarding/prompts/framework/ms-agent-dotnet.md +12 -4
- package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +12 -4
- package/onboarding/prompts/framework/ms-agent-python.md +6 -5
- package/onboarding/prompts/framework/pydantic-ai.md +6 -5
- package/onboarding/prompts/framework/strands-python.md +10 -6
- package/onboarding/prompts/framework/strands-typescript.md +10 -6
- package/onboarding/prompts/frontend/angular.md +10 -3
- package/onboarding/prompts/frontend/nextjs.md +36 -3
- package/onboarding/prompts/frontend/plan.md +13 -7
- package/onboarding/prompts/frontend/react-native.md +9 -2
- package/onboarding/prompts/frontend/react-spa.md +9 -2
- package/onboarding/prompts/frontend/vue.md +9 -2
- package/onboarding/prompts/implementation/build-and-validate.md +45 -19
- package/onboarding/prompts/proof/complete.md +3 -3
- package/onboarding/prompts/proof/oss-baseline.md +30 -13
- package/onboarding/prompts/proof/round-trip.md +55 -17
- package/onboarding/prompts/research/gather.md +21 -11
- package/onboarding/prompts/research/merge.md +8 -2
- package/onboarding/prompts/research/preflight.md +2 -2
- package/onboarding/prompts/research/route.md +14 -7
- package/onboarding/prompts/starter/clone.md +73 -16
- package/onboarding/prompts/stopped/run-failed.md +8 -2
- package/onboarding/prompts/subagent/create-plan.md +9 -2
- package/onboarding/prompts/subagent/implement-and-validate.md +2 -2
- package/onboarding/prompts/subagent/inspect-repository.md +12 -6
- package/onboarding/prompts/subagent/prove-oss-baseline.md +6 -1
- package/onboarding/prompts/subagent/prove-round-trip.md +50 -9
- package/onboarding/prompts/unsupported/no-validated-path.md +8 -2
- package/package.json +1 -1
- package/release/release-tool.js +9 -3
|
@@ -13,6 +13,12 @@ dependency manifest: those folders are the developer's projects. `init` refuses
|
|
|
13
13
|
three. If the target is one of them, stop the shortcut and ask the developer which
|
|
14
14
|
project to use, or to open the coding agent in a new empty folder.
|
|
15
15
|
|
|
16
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
20
|
+
```
|
|
21
|
+
|
|
16
22
|
Match the selected agent framework and frontend to this table:
|
|
17
23
|
|
|
18
24
|
| Agent framework | Frontend | Framework ID | Model key |
|
|
@@ -40,8 +46,14 @@ not include Intelligence.
|
|
|
40
46
|
Get the target directory name from its path. The name can contain 1 to 100 letters,
|
|
41
47
|
numbers, spaces, dots, underscores, or hyphens, in any case. It must not be `.` or `..`,
|
|
42
48
|
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.
|
|
44
|
-
|
|
49
|
+
directory as it is, so a name such as `MyApp` is valid. Do not rename the directory. Stop
|
|
50
|
+
the shortcut in each of these cases:
|
|
51
|
+
|
|
52
|
+
- The selected pair is not in the table.
|
|
53
|
+
- The developer chose a model vendor whose key is not the Model key of the matched row.
|
|
54
|
+
Each starter runs on the vendor in that column only.
|
|
55
|
+
- The directory name is not valid.
|
|
56
|
+
|
|
45
57
|
Do not run `init`. No command ran, so this is not a failed shortcut. Go back to the
|
|
46
58
|
`## Documentation` section of the frontend prompt you read before this one, and build the
|
|
47
59
|
project from its pages.
|
|
@@ -55,12 +67,18 @@ the derived name.
|
|
|
55
67
|
Only if the developer asks for an existing project, or asks to see the projects they have,
|
|
56
68
|
read the choices:
|
|
57
69
|
|
|
58
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
70
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 project list --json`
|
|
59
71
|
|
|
60
72
|
Then ask which one to use. Do not order the projects by creation time. If the developer
|
|
61
73
|
already gave this answer, do not ask again. Do not read a secret value. Do not show or
|
|
62
74
|
store a secret value.
|
|
63
75
|
|
|
76
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
80
|
+
```
|
|
81
|
+
|
|
64
82
|
## Ask where the model credential lives
|
|
65
83
|
|
|
66
84
|
The starter reads a model credential, and the `init` command below does not ask for one.
|
|
@@ -72,10 +90,37 @@ themselves after the clone. Asking where a credential lives is not requesting a
|
|
|
72
90
|
value. Never ask for the value itself. If no answer comes, clone anyway. The step after
|
|
73
91
|
the clone pauses for the key.
|
|
74
92
|
|
|
93
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-model-credential
|
|
97
|
+
```
|
|
98
|
+
|
|
75
99
|
A path the developer names is theirs to give, including one outside the project. A path
|
|
76
100
|
this run finds is not. Never read a key file the developer did not name. A key found that
|
|
77
101
|
way bills a project nobody chose.
|
|
78
102
|
|
|
103
|
+
## Record the selected path
|
|
104
|
+
|
|
105
|
+
This route skips the plan step that records the path, so record it here, once, before
|
|
106
|
+
the clone:
|
|
107
|
+
|
|
108
|
+
```text
|
|
109
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend> --model-vendor <model-vendor> --model-vendor-choice <model-vendor-choice>
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
- `<starting-state>`: the starting state the research recorded, usually `empty`.
|
|
113
|
+
- `<agent-framework>`: the name of the framework prompt this run read, such as
|
|
114
|
+
`langgraph-typescript` for `framework/langgraph-typescript`. It is not the Framework ID
|
|
115
|
+
in the table.
|
|
116
|
+
- `<frontend>`: the Frontend column of the matched row, `nextjs` or `angular`.
|
|
117
|
+
- `<model-vendor>`: `openai`, `anthropic`, `google`, or `other`.
|
|
118
|
+
- `<model-vendor-choice>`: if the developer chose the provider, `developer`. Otherwise,
|
|
119
|
+
`default`.
|
|
120
|
+
|
|
121
|
+
If a value is refused, fix it from the choices the earlier prompts gave, and run the
|
|
122
|
+
command again.
|
|
123
|
+
|
|
79
124
|
## Clone the starter
|
|
80
125
|
|
|
81
126
|
Run the command in one step, from any directory. `--dir` names the target, so the app
|
|
@@ -84,7 +129,7 @@ Do not inspect another entry in the parent directory. Replace each placeholder w
|
|
|
84
129
|
recorded value. Do not run a placeholder as a shell argument. If the path holds a space,
|
|
85
130
|
put it in double quotes.
|
|
86
131
|
|
|
87
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
132
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 init --dir <absolute-target-directory> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
|
|
88
133
|
|
|
89
134
|
`--dir` is always the absolute path of the target directory. `init` builds the app in that
|
|
90
135
|
directory and gives the app the directory's name. Do not add `--name`: `init` refuses
|
|
@@ -102,16 +147,28 @@ variable name and never the value. Do not read or copy the key file yourself. If
|
|
|
102
147
|
reports that it cannot read the model key file, it stopped before it cloned anything. Ask
|
|
103
148
|
the developer for the right path, or run the command again without the flag.
|
|
104
149
|
|
|
150
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
151
|
+
|
|
152
|
+
```text
|
|
153
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-model-credential
|
|
154
|
+
```
|
|
155
|
+
|
|
105
156
|
If you cannot pass the key file to `init`, for example because a sandbox refuses the path,
|
|
106
157
|
clone without `--model-key-file`. Then copy the key from `<target>` with one command:
|
|
107
|
-
`cd <target> && npx --prefer-offline --yes copilotkit@4.
|
|
158
|
+
`cd <target> && npx --prefer-offline --yes copilotkit@4.25.0 onboard credentials --model-key <VARIABLE> --env-path <key-file> --copy-to <env file> --json`.
|
|
108
159
|
`<env file>` is `.env`, or `agent/.env` for the Microsoft Agent Framework Python starter.
|
|
109
160
|
The command writes the key into that file without printing it and protects the file. If the
|
|
110
161
|
command is refused too, ask the developer to run it. Give them exactly this one line:
|
|
111
|
-
`! cd <target> && npx --prefer-offline --yes copilotkit@4.
|
|
162
|
+
`! cd <target> && npx --prefer-offline --yes copilotkit@4.25.0 onboard credentials --model-key <VARIABLE> --env-path <key-file> --copy-to <env file>`.
|
|
112
163
|
The command needs no input. Without `!`, they run the same command in a terminal.
|
|
113
164
|
Do not write a `sed`, `grep`, or `cat` command to copy the key.
|
|
114
165
|
|
|
166
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
167
|
+
|
|
168
|
+
```text
|
|
169
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-model-credential
|
|
170
|
+
```
|
|
171
|
+
|
|
115
172
|
### For a recorded local choice
|
|
116
173
|
|
|
117
174
|
If the run recorded the local deployment choice in `deployment/choose-local`, use this
|
|
@@ -119,7 +176,7 @@ command instead of the hosted command above. Do not ask the project questions ab
|
|
|
119
176
|
Local evaluation creates its own empty project, and `init --local` refuses `--create` and
|
|
120
177
|
`--project`.
|
|
121
178
|
|
|
122
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
179
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 init --dir <absolute-target-directory> --framework <framework-id> --channel none --no-banner --no-key-prompt --local --defer-model --install`
|
|
123
180
|
|
|
124
181
|
Use the model choice from `deployment/choose-local`. If the developer deferred it, keep
|
|
125
182
|
`--defer-model`. If the developer gave model settings, replace `--defer-model` with
|
|
@@ -134,7 +191,7 @@ After `init` reports the stack ready:
|
|
|
134
191
|
Ask the developer to run this command in their own terminal window, in `<target>`:
|
|
135
192
|
|
|
136
193
|
```text
|
|
137
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
194
|
+
npx --prefer-offline --yes copilotkit@4.25.0 local setup
|
|
138
195
|
```
|
|
139
196
|
|
|
140
197
|
Do not give it as a `!` line, and do not run it yourself. Its guided model prompt needs a
|
|
@@ -143,9 +200,9 @@ changes nothing. The prompt asks for the model and its key, and it saves them pr
|
|
|
143
200
|
On a running stack, it restarts only Learning. Do not ask for a model file.
|
|
144
201
|
|
|
145
202
|
Say that the run continues when they reply or resume this session. Report the pause with
|
|
146
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
203
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-model-credential`, end your
|
|
147
204
|
turn, and wait. When the developer replies, run
|
|
148
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
205
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 local status --json` from `<target>` and read `learning.configuration`.
|
|
149
206
|
|
|
150
207
|
The command installs the local stack, then connects the starter to it. It writes the
|
|
151
208
|
gitignored `.copilotkit/local.json` stack reference and `.copilotkit/project.json` with the
|
|
@@ -199,7 +256,7 @@ When you ask, name each variable and the file it goes in, and say that the run c
|
|
|
199
256
|
when they reply or resume this session. Then report the pause and end your turn:
|
|
200
257
|
|
|
201
258
|
```text
|
|
202
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
259
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-model-credential
|
|
203
260
|
```
|
|
204
261
|
|
|
205
262
|
This is a pause, not a stop. Do not send a stop report, and do not take a stop route.
|
|
@@ -210,7 +267,7 @@ call.
|
|
|
210
267
|
|
|
211
268
|
If no credential is missing, report no pause and continue.
|
|
212
269
|
|
|
213
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
270
|
+
Then run `npx --prefer-offline --yes copilotkit@4.25.0 onboard read proof/round-trip`.
|
|
214
271
|
|
|
215
272
|
If the local command fails, `init` keeps the cloned starter in `<target>`. Do not run
|
|
216
273
|
`init` again, because the target is no longer empty. Do not delete the starter or the stack.
|
|
@@ -220,14 +277,14 @@ missing, or `Docker available resources` is below 4 CPUs, 12 GiB RAM, or 40 GiB
|
|
|
220
277
|
Tell the developer what to change in Docker. Then report the pause and end your turn:
|
|
221
278
|
|
|
222
279
|
```text
|
|
223
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
280
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
224
281
|
```
|
|
225
282
|
|
|
226
283
|
When the developer says that Docker is ready, resume from `<target>` with the same model
|
|
227
284
|
choice. If the run used a `--candidate`, add the same one:
|
|
228
285
|
|
|
229
286
|
```text
|
|
230
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
287
|
+
npx --prefer-offline --yes copilotkit@4.25.0 local setup --defer-model --json
|
|
231
288
|
```
|
|
232
289
|
|
|
233
290
|
If the run used model settings, replace `--defer-model` with `--model-config <private-file>`.
|
|
@@ -235,7 +292,7 @@ Read blockers and the recorded failed step. Do not delete or recreate a failed s
|
|
|
235
292
|
setup reports the stack ready, connect the starter from `<target>`:
|
|
236
293
|
|
|
237
294
|
```text
|
|
238
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
295
|
+
npx --prefer-offline --yes copilotkit@4.25.0 local connect --approve-connection --json
|
|
239
296
|
```
|
|
240
297
|
|
|
241
298
|
The connection writes `.copilotkit/local.json`, `.copilotkit/project.json`, and the local
|
|
@@ -244,6 +301,6 @@ setup fails again with an error that does not name Docker, take the route below.
|
|
|
244
301
|
|
|
245
302
|
If the command fails, report its exact error and do not claim that the starter is ready.
|
|
246
303
|
Then run
|
|
247
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
304
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read stopped/run-failed`. The starter is one this
|
|
248
305
|
graph ships and the stack was chosen from its own supported list, so a command that
|
|
249
306
|
returned an error is a run that broke, not a setup this release does not support.
|
|
@@ -38,10 +38,16 @@ Name the one fix you propose, and say which file or process it touches. Ask the
|
|
|
38
38
|
developer whether they approve that one fix. If they decline, or the question cannot be
|
|
39
39
|
put to them, stop here and send the report below.
|
|
40
40
|
|
|
41
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
45
|
+
```
|
|
46
|
+
|
|
41
47
|
If they approve it, make that one fix and nothing else. Then come back into this run:
|
|
42
48
|
|
|
43
49
|
```text
|
|
44
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
50
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard resume --message "<approval>"
|
|
45
51
|
```
|
|
46
52
|
|
|
47
53
|
Put the developer's approval in `--message`, in one or two sentences: the fix they
|
|
@@ -64,7 +70,7 @@ Send one short report. The friction command follows the telemetry setting the de
|
|
|
64
70
|
already chose, so it needs no separate question.
|
|
65
71
|
|
|
66
72
|
```text
|
|
67
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
73
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
68
74
|
```
|
|
69
75
|
|
|
70
76
|
`--message` takes one or two sentences: the step you stopped at and what stopped
|
|
@@ -94,7 +94,7 @@ against a dead host, and the failure arrives as an empty-body 404 with no cause
|
|
|
94
94
|
Ask the CLI for the dependency upgrade, from the target directory:
|
|
95
95
|
|
|
96
96
|
```text
|
|
97
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
97
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard upgrade-plan --json
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
It reads the installed tree and the registry. Read `status`:
|
|
@@ -176,7 +176,7 @@ here is work the developer did not ask for.
|
|
|
176
176
|
Plan the threads drawer itself: add it from the selected drawer page, where this frontend
|
|
177
177
|
does not already render one. Where this journey's frontend framework ships no threads
|
|
178
178
|
drawer -- React Native --, plan that the thread is proved by
|
|
179
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
179
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 verify --round-trip`, which needs no browser. Do not plan a
|
|
180
180
|
step that opens the managed Intelligence dashboard.
|
|
181
181
|
|
|
182
182
|
## Name the files the run writes itself
|
|
@@ -218,6 +218,13 @@ step in the plan. Where a protected path you can justify is the only obstacle, t
|
|
|
218
218
|
stays. Where the plan needs a protected path you cannot justify in that sentence, return
|
|
219
219
|
`Status: blocked`.
|
|
220
220
|
|
|
221
|
+
Installing or upgrading a package changes the manifest that lists it, such as `package.json`
|
|
222
|
+
or `pyproject.toml`. When a step does that and the manifest is a protected path, list the
|
|
223
|
+
manifest under `Authorization requested`, even if no step edits it by hand. Its consent
|
|
224
|
+
also covers its lockfile, such as `package-lock.json` or `uv.lock`, beside it or at the
|
|
225
|
+
workspace root, so do not list the lockfile on its own line. Install with the package manager's usual command, which
|
|
226
|
+
rewrites the lockfile in place. Never delete a lockfile to regenerate it.
|
|
227
|
+
|
|
221
228
|
Authorization covers changing a protected path, not removing it. Do not plan the deletion
|
|
222
229
|
of a protected path, and do not plan a step that moves or renames one, which removes it
|
|
223
230
|
under its captured name. If a step cannot be written any other way, return
|
|
@@ -115,7 +115,7 @@ Intelligence: declare each exact version in its app's manifest, then install wit
|
|
|
115
115
|
project's package manager. Then check the installed tree:
|
|
116
116
|
|
|
117
117
|
```text
|
|
118
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
118
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard upgrade-plan --check --json
|
|
119
119
|
```
|
|
120
120
|
|
|
121
121
|
`single` means every direct dependency resolved to one version. `duplicates` names each
|
|
@@ -130,7 +130,7 @@ If the check finds duplicates or the baseline regresses, put the manifests and l
|
|
|
130
130
|
back, leave Intelligence unwired, and report what failed:
|
|
131
131
|
|
|
132
132
|
```text
|
|
133
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
133
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard upgrade-plan --revert --json
|
|
134
134
|
```
|
|
135
135
|
|
|
136
136
|
Then end your turn. Never add an `overrides`, `resolutions`, or `pnpm.overrides` block to
|
|
@@ -4,13 +4,19 @@ Work only on the packet you were assigned. Inspect the repository without changi
|
|
|
4
4
|
|
|
5
5
|
## Start with what the CLI already knows
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Your handoff holds the JSON of this command, which the main coding agent ran from the
|
|
8
|
+
target project directory:
|
|
8
9
|
|
|
9
10
|
```text
|
|
10
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
11
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard inspect --json
|
|
11
12
|
```
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
Read that JSON. Do not run the command again. If the handoff holds no inspection JSON, run
|
|
15
|
+
the command yourself. If your harness refuses it, return at once with no packet. Say that
|
|
16
|
+
the harness refused the command, name it, and do not wait for an approval. That is not
|
|
17
|
+
`Status: blocked`: the main coding agent can run the command and do this work itself.
|
|
18
|
+
|
|
19
|
+
The JSON answers the deterministic half of both packets exactly, from the same code
|
|
14
20
|
`copilotkit verify` uses: the project record by presence, and, for each app or runtime
|
|
15
21
|
directory on its own, the env files, which variable carries the Intelligence key and which
|
|
16
22
|
file it came from, whether that directory's own process can load it, the package manager
|
|
@@ -111,6 +117,6 @@ Return one row for each assigned item with its status, evidence path, and a shor
|
|
|
111
117
|
Use only `proved`, `absent`, or `unproved` for the status. State each absent or unproved item.
|
|
112
118
|
Do not read, print, or return secret values. For `.env` and `.copilotkit/project.json`
|
|
113
119
|
checks, return only paths, presence checks, missing field names, and the one `.env`
|
|
114
|
-
modification time named above. Do not read a file
|
|
115
|
-
|
|
116
|
-
|
|
120
|
+
modification time named above. Do not read a file outside the project directory. Do not
|
|
121
|
+
run an onboarding command, except `onboard inspect` when the handoff holds no inspection
|
|
122
|
+
JSON. End your turn after returning the findings to the main coding agent.
|
|
@@ -32,7 +32,7 @@ Prove the live runtime in this order:
|
|
|
32
32
|
4. Confirm from project files that the runtime constructor passes a `runner` option rather
|
|
33
33
|
than an `intelligence` option. A package, import, project file, or key is not use proof.
|
|
34
34
|
5. Run
|
|
35
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
35
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 verify --expect-runtime oss --round-trip --agent <expected-agent-id> --json`,
|
|
36
36
|
with the runtime URL or auth header options that this project needs. Require exit zero
|
|
37
37
|
and the JSON `ok` field to be `true`.
|
|
38
38
|
6. Drive one real request through the existing frontend, CopilotKit runtime, and expected
|
|
@@ -54,6 +54,11 @@ passed, failed, or skipped, and do not withhold `both-oss` for a skip. A failed
|
|
|
54
54
|
on an available surface is a baseline failure and is not a skip. Return each predicate and
|
|
55
55
|
its secret-safe evidence.
|
|
56
56
|
|
|
57
|
+
For each failed predicate, say whether its cause is operational -- a project-owned process
|
|
58
|
+
or port, a request option, or a sandbox block -- or the project itself. Name the check that
|
|
59
|
+
failed, such as the `verify` check id. The main coding agent retries only an operational
|
|
60
|
+
failure.
|
|
61
|
+
|
|
57
62
|
The default in-memory OSS runner is ephemeral. SQLite, custom, or framework persistence
|
|
58
63
|
can be durable. Report the persistence that project evidence proves, or `unproved`. Do not
|
|
59
64
|
replace it and do not describe all OSS runs as ephemeral.
|
|
@@ -78,7 +78,7 @@ about the failure it was spawned to clear.
|
|
|
78
78
|
Run this from the target app directory:
|
|
79
79
|
|
|
80
80
|
```text
|
|
81
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
81
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard proof-check --json
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
It starts each app's `dev` script unless a server from that app already listens, and
|
|
@@ -109,6 +109,9 @@ the agent ID question all the same.
|
|
|
109
109
|
|
|
110
110
|
Otherwise sort `firstFailure`, and run the command again after each repair:
|
|
111
111
|
|
|
112
|
+
- `model-key`: the credentials step found the model key missing, or the vendor refused it.
|
|
113
|
+
The agent cannot answer a chat without it, so the command started nothing. Do not change
|
|
114
|
+
code, and do not write a key. Return it with its detail, before the browser.
|
|
112
115
|
- `runtime-answers`: nothing answered, or the project records no runtime URL. When the
|
|
113
116
|
record holds no URL, the command records one itself if exactly one port in the project
|
|
114
117
|
answers as a runtime. So this failure means it found none, or more than one. Read the
|
|
@@ -116,7 +119,7 @@ Otherwise sort `firstFailure`, and run the command again after each repair:
|
|
|
116
119
|
asking. Read the port from the log, not from the plan, and record it:
|
|
117
120
|
|
|
118
121
|
```text
|
|
119
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
122
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard runtime-url --url <runtime-url>
|
|
120
123
|
```
|
|
121
124
|
|
|
122
125
|
`<runtime-url>` is the project's runtime URL, or the plan's, with its port replaced by the
|
|
@@ -131,8 +134,37 @@ Otherwise sort `firstFailure`, and run the command again after each repair:
|
|
|
131
134
|
- `verify:intelligence_thread_routes`: usually a missing `identifyUser` where the runtime is
|
|
132
135
|
constructed. Return it for implementation. Never remove a `mode: "single-route"` mount
|
|
133
136
|
to satisfy it.
|
|
134
|
-
- `round-trip:agent_answers` naming `user-not-identified
|
|
135
|
-
|
|
137
|
+
- `round-trip:agent_answers` naming `user-not-identified`, or at `fail` because the runtime
|
|
138
|
+
refused the thread the check sent: the check starts its own run on a new thread, and this
|
|
139
|
+
app refuses that run. Its `identifyUser` reads a session the CLI does not carry, or it runs
|
|
140
|
+
only threads that it created. That is the app working. Do not change the app to accept the
|
|
141
|
+
run, and do not ask the developer for a session cookie. Prove the round trip on a thread
|
|
142
|
+
the app created:
|
|
143
|
+
1. Open the `frontendUrl` the checks resolved, under the Step 6a rules. The app needs a
|
|
144
|
+
signed-in user. Where the page asks for a sign-in, do not create an account and do not
|
|
145
|
+
enter credentials.
|
|
146
|
+
2. Send the Step 1 request once, on a new thread. On a second attempt, send it again: a
|
|
147
|
+
thread from before the repair does not prove the repaired app.
|
|
148
|
+
3. Read that request's `threadId` from the request body the page sent to the runtime
|
|
149
|
+
endpoint, in the network requests.
|
|
150
|
+
4. Run the checks again with `--thread <id>`. They read that thread from the platform with
|
|
151
|
+
the project key and start no run. The checks fail a thread that did not change during
|
|
152
|
+
this run, a thread whose newest message has no answer, and a thread of another agent.
|
|
153
|
+
Follow that detail once, with a new thread, before you report a failed proof.
|
|
154
|
+
|
|
155
|
+
Return `Status: blocked` with this check and its evidence when you cannot do these steps:
|
|
156
|
+
- a cloned-starter run, which opens no browser,
|
|
157
|
+
- no browser tool loaded,
|
|
158
|
+
- a sign-in you cannot complete,
|
|
159
|
+
- a browser tool that does not show request bodies.
|
|
160
|
+
|
|
161
|
+
Say that the developer can
|
|
162
|
+
send one message in the app and give you its thread id, which is all `--thread` needs.
|
|
163
|
+
The app is not at fault, so do not report `failed`. Pass `--header "Name: value"` instead
|
|
164
|
+
only when the developer offers what `identifyUser` reads.
|
|
165
|
+
|
|
166
|
+
Where the handoff carries a thread id from the developer, skip the numbered steps above
|
|
167
|
+
and do not open the app for them. Run the checks with `--thread <id>` at once.
|
|
136
168
|
- `round-trip:page_context_reaches_agent` at `fail`: the agent answered the plain request
|
|
137
169
|
and recorded nothing for the request that carried context. Return it with its evidence as
|
|
138
170
|
a failed proof step. At `undetermined` and marked `advisory`, the agent answered without
|
|
@@ -142,6 +174,7 @@ Otherwise sort `firstFailure`, and run the command again after each repair:
|
|
|
142
174
|
still does not complete, prove the path in Step 5a, and report the check with its detail.
|
|
143
175
|
- `round-trip:learning_container_assigned` at `fail`: the thread carries no container or
|
|
144
176
|
another one. A thread cannot move, so start a new thread rather than repairing that one.
|
|
177
|
+
With `--thread`, send the Step 1 request on a new thread in the app, and pass that id.
|
|
145
178
|
`features.self_learning` and `/info` are not evidence of an assignment.
|
|
146
179
|
- `env-files-current`: the process it names started before its env file was written, and
|
|
147
180
|
has to start again before a 401 means anything. Report it. Do not restart or stop it.
|
|
@@ -162,6 +195,11 @@ with a prefix rule for `curl`, run it again, and do not record a failed predicat
|
|
|
162
195
|
|
|
163
196
|
### Step 5a -- Prove that the page's data reaches the model
|
|
164
197
|
|
|
198
|
+
Where the proof checks needed `--thread`, the app refuses a run that Steps 5a and 5b send,
|
|
199
|
+
for the same reason. Skip both steps and send no run. Record that they sent no run for that
|
|
200
|
+
reason, and prove the page's data and the component in the browser instead, at Steps 6
|
|
201
|
+
and 7.
|
|
202
|
+
|
|
165
203
|
`verify --round-trip` asks a question that needs no context. Where the frontend's files
|
|
166
204
|
call a context hook, it also sends one token as context and reports
|
|
167
205
|
`page_context_reaches_agent`, whose `pass` proves that the agent's model sees context at
|
|
@@ -219,7 +257,8 @@ to read.
|
|
|
219
257
|
Read the registrations this project's frontend declares, by name. Step 5a already sent the
|
|
220
258
|
step 1 request with those declarations, so read the tool calls out of the events Step 5a
|
|
221
259
|
captured for the run carrying the page's unchanged context. Do not send that request again.
|
|
222
|
-
Where Step 5a sent no run
|
|
260
|
+
Where Step 5a sent no run because the proof checks needed `--thread`, send no run here
|
|
261
|
+
either. Where Step 5a sent no run, because this journey shares no page data, send the step 1 request
|
|
223
262
|
to `<runtime>/agent/<agent id>/run`, carrying those declarations, and read the tool calls out
|
|
224
263
|
of that run's own events. Where the Step 5a run carried none of those declarations, send
|
|
225
264
|
that run once more with them, and read that run instead. Never report a wiring gap from a run
|
|
@@ -251,8 +290,10 @@ For a recorded `both-oss` starting state, this step has no component to render.
|
|
|
251
290
|
same request the baseline recorded, require the same kind of user-visible result the
|
|
252
291
|
baseline produced, and require that the thread for that request is listed in the drawer.
|
|
253
292
|
Where this journey's frontend framework ships no threads drawer -- React Native --, prove
|
|
254
|
-
that thread with `npx --prefer-offline --yes copilotkit@4.
|
|
255
|
-
answer back off the thread and needs no browser.
|
|
293
|
+
that thread with `npx --prefer-offline --yes copilotkit@4.25.0 verify --round-trip`, which reads the
|
|
294
|
+
answer back off the thread and needs no browser. Where the proof checks needed `--thread`,
|
|
295
|
+
prove the thread for this request with `verify --thread <id>` instead. Record which of the
|
|
296
|
+
two you proved.
|
|
256
297
|
|
|
257
298
|
Use the surface control the main coding agent recorded for your environment. That finding
|
|
258
299
|
is the answer, and there is nothing here for you to go looking for. Do not register a
|
|
@@ -279,7 +320,7 @@ limit can be ten minutes. You cannot interrupt a call while it runs, so the limi
|
|
|
279
320
|
what you do after one. If a browser call took longer than 60 seconds to return, the browser
|
|
280
321
|
control is unresponsive. Do not call the browser again in this attempt. A second call to a
|
|
281
322
|
hung tool waits as long as the first one did. Run
|
|
282
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
323
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 verify --frontend-url <the frontendUrl the proof checks resolved> --json` once,
|
|
283
324
|
and record the `frontend_assets_served` result. Report the outcome `failed` with the cause
|
|
284
325
|
`browser-control-unresponsive`. The application is not at fault on this evidence: every
|
|
285
326
|
step before the browser proved the runtime without one, and no repair to the project can
|
|
@@ -289,7 +330,7 @@ reach the tool.
|
|
|
289
330
|
the page to finish loading. Do not retype the host, and do not substitute a URL a tool
|
|
290
331
|
offers you by default. Where the page loads but its styling is missing or the chat
|
|
291
332
|
control is dead, run
|
|
292
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
333
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 verify --frontend-url <the url you opened> --json`
|
|
293
334
|
before you diagnose anything else. A dev server can serve its page and refuse every
|
|
294
335
|
static chunk behind it, and on screen that is indistinguishable from a broken
|
|
295
336
|
integration. The `frontend_assets_served` check tells the two apart.
|
|
@@ -29,14 +29,20 @@ Before you show the best-effort plan, require this complete packet:
|
|
|
29
29
|
- Give the full validation command list.
|
|
30
30
|
- Give the ordered proof rules.
|
|
31
31
|
|
|
32
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
36
|
+
```
|
|
37
|
+
|
|
32
38
|
After the developer approves the best-effort plan, run
|
|
33
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
39
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read fallback/best-effort`.
|
|
34
40
|
|
|
35
41
|
Send one short report. The friction command follows the telemetry setting the developer
|
|
36
42
|
already chose, so it needs no separate question.
|
|
37
43
|
|
|
38
44
|
```text
|
|
39
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
45
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
40
46
|
```
|
|
41
47
|
|
|
42
48
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
package/package.json
CHANGED
package/release/release-tool.js
CHANGED
|
@@ -14920,11 +14920,17 @@ var FLAG_DEFINITIONS = defineFlags({
|
|
|
14920
14920
|
// gateway stores browser event batches. Both surfaces read the derived
|
|
14921
14921
|
// FF_LEARNING_TRAJECTORIES override; the gateway mirrors the env default.
|
|
14922
14922
|
"learning.trajectories": {
|
|
14923
|
-
purpose: "Gates Trajectory
|
|
14923
|
+
purpose: "Gates Trajectory capture, saved reads, and Trajectory sessions as a Learning source in app-api, the realtime gateway, the web app, and the Learning scheduler and runners.",
|
|
14924
14924
|
owner: "learning",
|
|
14925
14925
|
createdAt: "2026-10-01",
|
|
14926
14926
|
status: "rollout",
|
|
14927
|
-
surfaces: [
|
|
14927
|
+
surfaces: [
|
|
14928
|
+
"app-api",
|
|
14929
|
+
"realtime-gateway",
|
|
14930
|
+
"app-frontend",
|
|
14931
|
+
"learning-scheduler",
|
|
14932
|
+
"learning-runner"
|
|
14933
|
+
],
|
|
14928
14934
|
defaultByEnv: { dev: true, ci: true, prod: false }
|
|
14929
14935
|
},
|
|
14930
14936
|
"analytics.pipeline": {
|
|
@@ -14957,7 +14963,7 @@ init_define_CLI_LOCAL_EVALUATION_SUPPORT();
|
|
|
14957
14963
|
|
|
14958
14964
|
// apps/cli/src/config.ts
|
|
14959
14965
|
function getTemplateRef() {
|
|
14960
|
-
return true ? "
|
|
14966
|
+
return true ? "1477c8eab6f88833fa93236fe766746c9800a991" : "main";
|
|
14961
14967
|
}
|
|
14962
14968
|
|
|
14963
14969
|
// apps/cli/src/services/agentcore-config.ts
|