copilotkit 4.27.0 → 4.29.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 +161 -26
- package/cli-build-info.json +7 -7
- package/index.js +8234 -5108
- package/onboarding/index.json +3 -2
- package/onboarding/prompts/authenticate/start.md +54 -55
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +28 -24
- package/onboarding/prompts/credentials/plan.md +31 -28
- package/onboarding/prompts/credentials/settle-credentials.md +7 -7
- package/onboarding/prompts/credentials/write-plan.md +77 -51
- package/onboarding/prompts/deployment/choose-local.md +9 -9
- package/onboarding/prompts/deployment/local-evaluation.md +12 -12
- package/onboarding/prompts/fallback/best-effort.md +9 -13
- package/onboarding/prompts/feature/a2ui/implement.md +4 -4
- package/onboarding/prompts/feature/a2ui/plan.md +3 -3
- package/onboarding/prompts/feature/a2ui/proof.md +5 -5
- package/onboarding/prompts/feature/a2ui/start.md +17 -8
- package/onboarding/prompts/feature/channels/implement.md +7 -7
- package/onboarding/prompts/feature/channels/plan.md +5 -5
- package/onboarding/prompts/feature/channels/proof.md +8 -7
- package/onboarding/prompts/feature/channels/start.md +18 -9
- package/onboarding/prompts/feature/chat-suggestions/implement.md +4 -4
- package/onboarding/prompts/feature/chat-suggestions/plan.md +3 -3
- package/onboarding/prompts/feature/chat-suggestions/proof.md +5 -5
- package/onboarding/prompts/feature/chat-suggestions/start.md +17 -8
- package/onboarding/prompts/feature/complete.md +2 -2
- package/onboarding/prompts/feature/learning/implement.md +12 -12
- package/onboarding/prompts/feature/learning/plan.md +4 -4
- package/onboarding/prompts/feature/learning/proof.md +13 -13
- package/onboarding/prompts/feature/learning/start.md +17 -8
- package/onboarding/prompts/feature/open-generative-ui/implement.md +4 -4
- package/onboarding/prompts/feature/open-generative-ui/plan.md +3 -3
- package/onboarding/prompts/feature/open-generative-ui/proof.md +5 -5
- package/onboarding/prompts/feature/open-generative-ui/start.md +17 -8
- package/onboarding/prompts/feature/realtime-sync/implement.md +5 -5
- package/onboarding/prompts/feature/realtime-sync/plan.md +3 -3
- package/onboarding/prompts/feature/realtime-sync/proof.md +5 -5
- package/onboarding/prompts/feature/realtime-sync/start.md +16 -7
- package/onboarding/prompts/feature/rich-threads/implement.md +6 -6
- package/onboarding/prompts/feature/rich-threads/plan.md +3 -3
- package/onboarding/prompts/feature/rich-threads/proof.md +5 -5
- package/onboarding/prompts/feature/rich-threads/start.md +16 -7
- package/onboarding/prompts/feature/stop.md +4 -4
- package/onboarding/prompts/feature/voice/implement.md +4 -4
- package/onboarding/prompts/feature/voice/plan.md +4 -4
- package/onboarding/prompts/feature/voice/proof.md +5 -5
- package/onboarding/prompts/feature/voice/start.md +17 -8
- package/onboarding/prompts/framework/ag2.md +3 -3
- package/onboarding/prompts/framework/agno.md +3 -3
- package/onboarding/prompts/framework/built-in.md +3 -3
- package/onboarding/prompts/framework/claude-sdk-python.md +3 -3
- package/onboarding/prompts/framework/claude-sdk-typescript.md +3 -3
- package/onboarding/prompts/framework/crewai-flows.md +6 -6
- package/onboarding/prompts/framework/custom-ag-ui.md +4 -4
- package/onboarding/prompts/framework/deep-agents.md +3 -3
- package/onboarding/prompts/framework/google-adk.md +3 -3
- package/onboarding/prompts/framework/langgraph-fastapi.md +3 -3
- package/onboarding/prompts/framework/langgraph-python.md +3 -3
- package/onboarding/prompts/framework/langgraph-typescript.md +3 -3
- package/onboarding/prompts/framework/llamaindex.md +3 -3
- package/onboarding/prompts/framework/mastra.md +3 -3
- package/onboarding/prompts/framework/ms-agent-dotnet.md +5 -5
- package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +5 -5
- package/onboarding/prompts/framework/ms-agent-python.md +3 -3
- package/onboarding/prompts/framework/pydantic-ai.md +3 -3
- package/onboarding/prompts/framework/strands-python.md +3 -3
- package/onboarding/prompts/framework/strands-typescript.md +3 -3
- package/onboarding/prompts/frontend/angular.md +4 -4
- package/onboarding/prompts/frontend/nextjs.md +4 -4
- package/onboarding/prompts/frontend/plan.md +12 -12
- package/onboarding/prompts/frontend/react-native.md +3 -3
- package/onboarding/prompts/frontend/react-spa.md +3 -3
- package/onboarding/prompts/frontend/vue.md +3 -3
- package/onboarding/prompts/implementation/build-and-validate.md +32 -14
- package/onboarding/prompts/proof/complete.md +6 -7
- package/onboarding/prompts/proof/oss-baseline.md +24 -5
- package/onboarding/prompts/proof/round-trip.md +41 -21
- package/onboarding/prompts/research/gather.md +85 -40
- package/onboarding/prompts/research/merge.md +3 -3
- package/onboarding/prompts/research/preflight.md +2 -2
- package/onboarding/prompts/research/route.md +10 -4
- package/onboarding/prompts/setup/questions.md +53 -234
- package/onboarding/prompts/starter/clone.md +43 -34
- package/onboarding/prompts/stopped/run-failed.md +3 -3
- package/onboarding/prompts/subagent/create-plan.md +57 -34
- package/onboarding/prompts/subagent/implement-and-validate.md +40 -35
- package/onboarding/prompts/subagent/inspect-repository.md +17 -4
- package/onboarding/prompts/subagent/prove-oss-baseline.md +24 -1
- package/onboarding/prompts/subagent/prove-round-trip.md +55 -49
- package/onboarding/prompts/unsupported/no-validated-path.md +3 -3
- package/package.json +1 -1
- package/release/release-tool.js +8 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Clone a starter
|
|
2
2
|
|
|
3
|
-
First run `npx --prefer-offline --yes copilotkit@4.
|
|
3
|
+
First run `npx --prefer-offline --yes copilotkit@4.29.0 onboard setup-answers`. It prints the answers that
|
|
4
4
|
`setup/questions` recorded, even after this conversation lost them: `framework`, `frontend`,
|
|
5
5
|
`vendor`, `project`, `key`, and on the local route `learning`. Take every "recorded" answer
|
|
6
6
|
below from the record, or this conversation when the record lacks it. Do not ask a question
|
|
@@ -22,7 +22,7 @@ project to use, or to open the coding agent in a new empty folder.
|
|
|
22
22
|
Before you end your turn to wait for the developer, report the pause:
|
|
23
23
|
|
|
24
24
|
```text
|
|
25
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
25
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about existing-folder
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
Match the selected agent framework and frontend to this table:
|
|
@@ -68,7 +68,7 @@ again.
|
|
|
68
68
|
|
|
69
69
|
If neither the record nor this conversation holds a project answer, ask here. If the developer did not name a
|
|
70
70
|
project, create one for the app being cloned. This directory is new, so no existing project is already its own: take the project
|
|
71
|
-
name from the target directory name derived above, and ask as the setup
|
|
71
|
+
name from the target directory name derived above, and ask as the options view of `onboard setup-message` does:
|
|
72
72
|
"Project: **new project "<name>"**", then "Other: another name · a project you already
|
|
73
73
|
have". Do not list the projects in the organization. If no developer answers, use
|
|
74
74
|
the derived name.
|
|
@@ -76,7 +76,7 @@ the derived name.
|
|
|
76
76
|
Only if the developer asks for an existing project, or asks to see the projects they have,
|
|
77
77
|
read the choices:
|
|
78
78
|
|
|
79
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
79
|
+
`npx --prefer-offline --yes copilotkit@4.29.0 project list --json`
|
|
80
80
|
|
|
81
81
|
Then ask which one to use. Do not order the projects by creation time. If the developer
|
|
82
82
|
already gave this answer, do not ask again. Do not read a secret value. Do not show or
|
|
@@ -85,7 +85,7 @@ store a secret value.
|
|
|
85
85
|
Before you end your turn to wait for the developer, report the pause:
|
|
86
86
|
|
|
87
87
|
```text
|
|
88
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
88
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about project-name
|
|
89
89
|
```
|
|
90
90
|
|
|
91
91
|
## Ask where the model credential lives
|
|
@@ -119,7 +119,7 @@ stops the clone. Pass the new file with `--model-key-file`, as for any other key
|
|
|
119
119
|
Before you end your turn to wait for the developer, report the pause:
|
|
120
120
|
|
|
121
121
|
```text
|
|
122
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
122
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-model-credential
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
A path the developer names is theirs to give, including one outside the project. A path
|
|
@@ -132,7 +132,7 @@ This route skips the plan step that records the path, so record it here, once, b
|
|
|
132
132
|
the clone:
|
|
133
133
|
|
|
134
134
|
```text
|
|
135
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
135
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend> --model-vendor <model-vendor> --model-vendor-choice <model-vendor-choice>
|
|
136
136
|
```
|
|
137
137
|
|
|
138
138
|
- `<starting-state>`: the starting state the research recorded, usually `empty`.
|
|
@@ -155,13 +155,15 @@ Do not inspect another entry in the parent directory. Replace each placeholder w
|
|
|
155
155
|
recorded value. Do not run a placeholder as a shell argument. If the path holds a space,
|
|
156
156
|
put it in double quotes.
|
|
157
157
|
|
|
158
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
158
|
+
`npx --prefer-offline --yes copilotkit@4.29.0 init --dir <absolute-target-directory> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
|
|
159
159
|
|
|
160
160
|
`--dir` is always the absolute path of the target directory. `init` builds the app in that
|
|
161
161
|
directory and gives the app the directory's name. Do not add `--name`: `init` refuses
|
|
162
162
|
`--name` together with `--dir`. Pass the confirmed project name to `--create` only. If the
|
|
163
163
|
developer names an existing project, use `--project <slug-or-id>` instead of
|
|
164
|
-
`--create <name>`. If the
|
|
164
|
+
`--create <name>`. If `init` says that the account already has a project with that name,
|
|
165
|
+
ask the developer for a new name, or which of their projects to use. Do not select the
|
|
166
|
+
existing project until they name it. If the developer asked to skip the dependency install, use
|
|
165
167
|
`--no-install` instead of `--install`. Do not wait for an interactive prompt. Pass every
|
|
166
168
|
answer as a flag. `--no-key-prompt` stops `init` from asking for a model key. The `init`
|
|
167
169
|
output still names each missing key as `Set <VARIABLE> in .env`.
|
|
@@ -176,23 +178,23 @@ the developer for the right path, or run the command again without the flag.
|
|
|
176
178
|
Before you end your turn to wait for the developer, report the pause:
|
|
177
179
|
|
|
178
180
|
```text
|
|
179
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
181
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-model-credential
|
|
180
182
|
```
|
|
181
183
|
|
|
182
184
|
If you cannot pass the key file to `init`, for example because a sandbox refuses the path,
|
|
183
185
|
clone without `--model-key-file`. Then copy the key from `<target>` with one command:
|
|
184
|
-
`cd <target> && npx --prefer-offline --yes copilotkit@4.
|
|
186
|
+
`cd <target> && npx --prefer-offline --yes copilotkit@4.29.0 onboard credentials --model-key <VARIABLE> --env-path <key-file> --copy-to <env file> --json`.
|
|
185
187
|
`<env file>` is `.env`, or `agent/.env` for the Microsoft Agent Framework Python starter.
|
|
186
188
|
The command writes the key into that file without printing it. If the
|
|
187
189
|
command is refused too, ask the developer to run it. Give them exactly this one line:
|
|
188
|
-
`! cd <target> && npx --prefer-offline --yes copilotkit@4.
|
|
190
|
+
`! cd <target> && npx --prefer-offline --yes copilotkit@4.29.0 onboard credentials --model-key <VARIABLE> --env-path <key-file> --copy-to <env file>`.
|
|
189
191
|
The command needs no input. Without `!`, they run the same command in a terminal.
|
|
190
192
|
Do not write a `sed`, `grep`, or `cat` command to copy the key.
|
|
191
193
|
|
|
192
194
|
Before you end your turn to wait for the developer, report the pause:
|
|
193
195
|
|
|
194
196
|
```text
|
|
195
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
197
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-model-credential
|
|
196
198
|
```
|
|
197
199
|
|
|
198
200
|
### For a recorded local choice
|
|
@@ -202,7 +204,7 @@ command instead of the hosted command above. Do not ask the project questions ab
|
|
|
202
204
|
Local evaluation creates its own empty project, and `init --local` refuses `--create` and
|
|
203
205
|
`--project`.
|
|
204
206
|
|
|
205
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
207
|
+
`npx --prefer-offline --yes copilotkit@4.29.0 init --dir <absolute-target-directory> --framework <framework-id> --channel none --no-banner --no-key-prompt --local --defer-model --install`
|
|
206
208
|
|
|
207
209
|
Use the `learning` answer from the record, or this conversation. Use the default only when
|
|
208
210
|
neither holds one.
|
|
@@ -212,12 +214,12 @@ file. The CLI selects the latest stable release. If the developer gave a candida
|
|
|
212
214
|
manifest for release testing, add `--candidate <manifest.json>`. Otherwise, do not add it.
|
|
213
215
|
The `--dir`, `--no-install` and `--model-key-file` rules above apply here too.
|
|
214
216
|
|
|
215
|
-
Before `init`, run `npx --prefer-offline --yes copilotkit@4.
|
|
217
|
+
Before `init`, run `npx --prefer-offline --yes copilotkit@4.29.0 onboard local-terms --json`. If `accepted`
|
|
216
218
|
is false, pause here. Give the developer this exact command to run in their own terminal:
|
|
217
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
219
|
+
`npx --prefer-offline --yes copilotkit@4.29.0 local accept-terms`. Never accept the agreement yourself.
|
|
218
220
|
Report the pause with
|
|
219
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
220
|
-
and wait for "done". Then run `local-terms` again, and continue only when `accepted` is
|
|
221
|
+
`npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about local-terms`, end your
|
|
222
|
+
turn, and wait for "done". Then run `local-terms` again, and continue only when `accepted` is
|
|
221
223
|
true. A local command that fails with `eula_acceptance_required` comes back to this step.
|
|
222
224
|
|
|
223
225
|
For `learning.guided`, keep `--defer-model`.
|
|
@@ -226,7 +228,7 @@ After `init` reports the stack ready:
|
|
|
226
228
|
Ask the developer to run this command in their own terminal window, in `<target>`:
|
|
227
229
|
|
|
228
230
|
```text
|
|
229
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
231
|
+
npx --prefer-offline --yes copilotkit@4.29.0 local setup
|
|
230
232
|
```
|
|
231
233
|
|
|
232
234
|
Do not give it as a `!` line, and do not run it yourself. Its guided model prompt needs a
|
|
@@ -235,9 +237,9 @@ changes nothing. The prompt asks for the model and its key, and it saves them pr
|
|
|
235
237
|
On a running stack, it restarts only Learning. Do not ask for a model file.
|
|
236
238
|
|
|
237
239
|
Say that the run continues when they reply or resume this session. Report the pause with
|
|
238
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
240
|
+
`npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-model-credential`, end your
|
|
239
241
|
turn, and wait. When the developer replies, run
|
|
240
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
242
|
+
`npx --prefer-offline --yes copilotkit@4.29.0 local status --json` from `<target>` and read `learning.configuration`.
|
|
241
243
|
|
|
242
244
|
The command installs the local stack, then connects the starter to it. It writes the
|
|
243
245
|
gitignored `.copilotkit/local.json` stack reference and `.copilotkit/project.json` with the
|
|
@@ -275,7 +277,7 @@ later release, and offer the Built-in CopilotKit agent if they need them now.
|
|
|
275
277
|
2. For an OpenAI-compatible provider, set `COPILOTKIT_AGENT_MODEL` to
|
|
276
278
|
`openai:<vendor.modelId>`, and `OPENAI_BASE_URL` to `vendor.baseUrl`.
|
|
277
279
|
3. If the developer named a key file, copy the key with the `onboard credentials
|
|
278
|
-
|
|
280
|
+
--model-key <VARIABLE> --env-path <key-file> --copy-to <env file> --json` command above,
|
|
279
281
|
with the recorded vendor's variable. Otherwise the next section pauses for it.
|
|
280
282
|
|
|
281
283
|
For the Microsoft Agent Framework .NET starter, set these values with
|
|
@@ -299,7 +301,15 @@ grep -c '^<VARIABLE>=.' <target>/.env
|
|
|
299
301
|
`1` means the variable holds a value. `0` means it is empty or absent. The command prints
|
|
300
302
|
a count and never the value.
|
|
301
303
|
|
|
302
|
-
If a variable is empty,
|
|
304
|
+
If a variable is empty, run
|
|
305
|
+
`npx --prefer-offline --yes copilotkit@4.29.0 onboard credentials --model-key <VARIABLE> --json` from
|
|
306
|
+
`<target>`, and show the developer `question.ask` word for word. It names the file by its
|
|
307
|
+
full path and the line to add. If they reply with the path of a file that holds the key, run
|
|
308
|
+
`npx --prefer-offline --yes copilotkit@4.29.0 onboard credentials --model-key <VARIABLE> --env-path <file> --copy-to <question.envFile> --json`
|
|
309
|
+
from `<target>`. Ask nothing else first. Quote a path that holds a space. The command copies
|
|
310
|
+
the key without printing it. When it reports `ready`, the key is in `question.envFile`. Run
|
|
311
|
+
the check above again, and continue. Follow this paragraph, not the packet's `next`, which is
|
|
312
|
+
written for an existing app that copies the key only after its plan.
|
|
303
313
|
|
|
304
314
|
A local server needs no key. That is a server such as Ollama or LM Studio, with
|
|
305
315
|
`OPENAI_BASE_URL` on `localhost`, `127.0.0.1` or `::1` in `<target>/.env`. A local base
|
|
@@ -313,18 +323,17 @@ The two Microsoft Agent Framework starters keep their key outside `<target>/.env
|
|
|
313
323
|
|
|
314
324
|
- For the Python starter, a key file passed to `init` fills `<target>/agent/.env`, and the
|
|
315
325
|
output says so. Otherwise, run the same check for `OPENAI_API_KEY` against
|
|
316
|
-
`<target>/agent/.env`. A missing file counts as `0`. If it is empty, ask
|
|
317
|
-
|
|
326
|
+
`<target>/agent/.env`. A missing file counts as `0`. If it is empty, ask as above, with
|
|
327
|
+
`--env-path agent/.env` added to the first command.
|
|
318
328
|
- For the .NET starter, the key lives in `dotnet user-secrets`, and no check can read it
|
|
319
329
|
without printing the value. Ask the developer to run
|
|
320
330
|
`cd <target>/agent && dotnet user-secrets set OPENAI_API_KEY "<key>"` themselves, even
|
|
321
331
|
if they named a key file.
|
|
322
332
|
|
|
323
|
-
When you ask,
|
|
324
|
-
when they reply or resume this session. Then report the pause and end your turn:
|
|
333
|
+
When you ask, say that the run continues when they reply or resume this session. Then report the pause and end your turn:
|
|
325
334
|
|
|
326
335
|
```text
|
|
327
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
336
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-model-credential
|
|
328
337
|
```
|
|
329
338
|
|
|
330
339
|
This is a pause, not a stop. Do not send a stop report, and do not take a stop route.
|
|
@@ -340,7 +349,7 @@ Run this from `<target>`, with one `--model-key` for each variable. For the Micr
|
|
|
340
349
|
Framework Python starter, add `--env-path agent/.env`. Skip it for the .NET starter.
|
|
341
350
|
|
|
342
351
|
```text
|
|
343
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
352
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard credentials --model-key <VARIABLE> --json
|
|
344
353
|
```
|
|
345
354
|
|
|
346
355
|
The command never prints a value. If `status` is `ready`, continue. Otherwise do what
|
|
@@ -353,7 +362,7 @@ works and the app's model does not: the vendor does not serve the model that
|
|
|
353
362
|
names, or names another, change `COPILOTKIT_AGENT_MODEL` where `question.ask` says, and
|
|
354
363
|
run the command again.
|
|
355
364
|
|
|
356
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
365
|
+
Then run `npx --prefer-offline --yes copilotkit@4.29.0 onboard read proof/round-trip`.
|
|
357
366
|
|
|
358
367
|
If the local command fails, `init` keeps the cloned starter in `<target>`, and its error
|
|
359
368
|
says whether it installed the starter's dependencies, or names the command that does. Do
|
|
@@ -366,14 +375,14 @@ available memory, or 40 GiB storage. Tell the developer what to change in Docker
|
|
|
366
375
|
memory, pass on the amount the message names. Then report the pause and end your turn:
|
|
367
376
|
|
|
368
377
|
```text
|
|
369
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
378
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about environment-fix
|
|
370
379
|
```
|
|
371
380
|
|
|
372
381
|
When the developer says that Docker is ready, resume from `<target>` with the same model
|
|
373
382
|
choice. If the run used a `--candidate`, add the same one:
|
|
374
383
|
|
|
375
384
|
```text
|
|
376
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
385
|
+
npx --prefer-offline --yes copilotkit@4.29.0 local setup --defer-model --json
|
|
377
386
|
```
|
|
378
387
|
|
|
379
388
|
If the run used model settings, replace `--defer-model` with `--model-config <private-file>`.
|
|
@@ -381,7 +390,7 @@ Read blockers and the recorded failed step. Do not delete or recreate a failed s
|
|
|
381
390
|
setup reports the stack ready, connect the starter from `<target>`:
|
|
382
391
|
|
|
383
392
|
```text
|
|
384
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
393
|
+
npx --prefer-offline --yes copilotkit@4.29.0 local connect --approve-connection --json
|
|
385
394
|
```
|
|
386
395
|
|
|
387
396
|
The connection writes `.copilotkit/local.json`, `.copilotkit/project.json`, and the local
|
|
@@ -391,6 +400,6 @@ take the route below.
|
|
|
391
400
|
|
|
392
401
|
If the command fails, report its exact error and do not claim that the starter is ready.
|
|
393
402
|
Then run
|
|
394
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
403
|
+
`npx --prefer-offline --yes copilotkit@4.29.0 onboard read stopped/run-failed`. The starter is one this
|
|
395
404
|
graph ships and the stack was chosen from its own supported list, so a command that
|
|
396
405
|
returned an error is a run that broke, not a setup this release does not support.
|
|
@@ -42,13 +42,13 @@ put to them, stop here and send the report below.
|
|
|
42
42
|
Before you end your turn to wait for the developer, report the pause:
|
|
43
43
|
|
|
44
44
|
```text
|
|
45
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
45
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about scoped-fix
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
If they approve it, make that one fix and nothing else. Then come back into this run:
|
|
49
49
|
|
|
50
50
|
```text
|
|
51
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
51
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard resume --message "<approval>"
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
Put the developer's approval in `--message`, in one or two sentences: the fix they
|
|
@@ -71,7 +71,7 @@ Send one short report. The friction command follows the telemetry setting the de
|
|
|
71
71
|
already chose, so it needs no separate question.
|
|
72
72
|
|
|
73
73
|
```text
|
|
74
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
74
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
`--message` takes one or two sentences: the step you stopped at and what stopped
|
|
@@ -22,6 +22,19 @@ override copies.
|
|
|
22
22
|
List the required credential variable names. Do not read or return credential values.
|
|
23
23
|
Preserve each agent or frontend that already exists.
|
|
24
24
|
|
|
25
|
+
## When a command is refused
|
|
26
|
+
|
|
27
|
+
If you are a subagent and your harness refuses a command, return at once. Name the
|
|
28
|
+
command, the directory you ran it from, and the refusal, and run nothing else. Do not wait
|
|
29
|
+
for an approval: nobody sees it. The main coding agent runs the command itself and passes
|
|
30
|
+
the result on. The one wait allowed is a harness escalation request that this brief tells
|
|
31
|
+
you to make for a command. Make that request and wait for its answer.
|
|
32
|
+
|
|
33
|
+
If your handoff holds a command's result, use it and do not run that command again.
|
|
34
|
+
|
|
35
|
+
If you are the main coding agent and follow this brief yourself, this section is not for
|
|
36
|
+
you. Do not return: handle a refused command as the run's other prompts say.
|
|
37
|
+
|
|
25
38
|
## What the existing agent's behavior is
|
|
26
39
|
|
|
27
40
|
The existing agent's behavior is four things: its system prompt and instructions, its
|
|
@@ -32,8 +45,8 @@ Wiring is not behavior. The CopilotKit SDK dependency, the middleware the agent
|
|
|
32
45
|
in, the runtime mount, the AG-UI connection, and a frontend that renders what the agent
|
|
33
46
|
already returns are wiring. Plan them as ordinary steps.
|
|
34
47
|
|
|
35
|
-
Every item on the behavior list is a change the developer has to approve, so it
|
|
36
|
-
|
|
48
|
+
Every item on the behavior list is a change the developer has to approve, so it goes under
|
|
49
|
+
`Changes that need your approval`. Where a step needs one, plan it as its own item, name the file and the exact change, and state that it
|
|
37
50
|
changes how the agent answers everywhere, not only in CopilotKit. A system prompt the
|
|
38
51
|
developer wrote is the agent's behavior rather than a setting this run tunes until a
|
|
39
52
|
component renders. Where the plan cannot be written without such a change and you cannot
|
|
@@ -97,7 +110,7 @@ against a dead host, and the failure arrives as an empty-body 404 with no cause
|
|
|
97
110
|
Ask the CLI for the dependency upgrade, from the target directory:
|
|
98
111
|
|
|
99
112
|
```text
|
|
100
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
113
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard upgrade-plan --json
|
|
101
114
|
```
|
|
102
115
|
|
|
103
116
|
It reads the installed tree and the registry. Read `status`:
|
|
@@ -118,7 +131,7 @@ It reads the installed tree and the registry. Read `status`:
|
|
|
118
131
|
|
|
119
132
|
The floor is 1.70.0 because the runtime resolves managed Intelligence entitlement
|
|
120
133
|
authority from that version. Below it, the Intelligence features stay dark with no error.
|
|
121
|
-
An exact pin is usually deliberate, so a move of one is a
|
|
134
|
+
An exact pin is usually deliberate, so a move of one is a change the developer
|
|
122
135
|
approves, not a repair the run invents halfway through. Where the developer needs a pin held, return
|
|
123
136
|
`Status: blocked` and name `unsupported/no-validated-path` as the outcome.
|
|
124
137
|
|
|
@@ -185,33 +198,22 @@ here is work the developer did not ask for.
|
|
|
185
198
|
Plan the threads drawer itself: add it from the selected drawer page, where this frontend
|
|
186
199
|
does not already render one. Where this journey's frontend framework ships no threads
|
|
187
200
|
drawer -- React Native --, plan that the thread is proved by
|
|
188
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
201
|
+
`npx --prefer-offline --yes copilotkit@4.29.0 verify --round-trip`, which needs no browser. Do not plan a
|
|
189
202
|
step that opens the managed Intelligence dashboard.
|
|
190
203
|
|
|
191
204
|
## Name the files the run writes itself
|
|
192
205
|
|
|
193
206
|
List these in the plan under `Files the run writes itself`, apart from the implementation
|
|
194
|
-
steps. They are not steps, and they
|
|
207
|
+
steps. They are not steps, and they need no approval, except a file that is also under
|
|
208
|
+
`Uncommitted files`: list that one under `Changes that need your approval` too.
|
|
195
209
|
|
|
196
210
|
- Each `planChanges` entry from `onboard credentials`: the project key in the env file
|
|
197
211
|
`environmentPath` names, the project record, and, where it lists `ignore-entries`, the
|
|
198
|
-
lines `project select` adds to `.gitignore` so that no credential env file
|
|
199
|
-
committed.
|
|
212
|
+
lines `project select` adds to `.gitignore` so that no credential env file and no
|
|
213
|
+
`.playwright-mcp/` browser snapshot can be committed.
|
|
200
214
|
- `.copilotkit/proof/`, where the proof writes its evidence. It holds no source. The
|
|
201
215
|
developer can delete it after the run.
|
|
202
216
|
|
|
203
|
-
## Name the Skills install
|
|
204
|
-
|
|
205
|
-
List the CopilotKit Skills install under `Skills install`, as its own line:
|
|
206
|
-
`npx skills add CopilotKit/CopilotKit/skills -y`. It writes `.agents/skills/` and links it
|
|
207
|
-
into `.claude/skills/`. End the line with "say **no Skills** to skip". Where
|
|
208
|
-
`.agents/skills` already holds the CopilotKit skills, write `in place` instead, and plan no
|
|
209
|
-
install.
|
|
210
|
-
|
|
211
|
-
The Skills install is not a risky change. It adds agent-rule files only, holds no secret,
|
|
212
|
-
changes nothing the app runs, and comes out with one delete. Do not list it under
|
|
213
|
-
`Risky changes`.
|
|
214
|
-
|
|
215
217
|
## Scaffold an empty project
|
|
216
218
|
|
|
217
219
|
This section applies when the starting state is `empty` and a step runs a scaffolder, such
|
|
@@ -243,7 +245,7 @@ the plan under `Uncommitted files`, one line each, with the path and one sentenc
|
|
|
243
245
|
what the step changes there and why no other file will do. Keep the step in the plan.
|
|
244
246
|
Adding a feature to an app the developer already built is the case this exists for: the
|
|
245
247
|
option lives in a file they wrote, and on an app whose work was never committed that file
|
|
246
|
-
has uncommitted changes. Each of those edits
|
|
248
|
+
has uncommitted changes. Each of those edits needs approval, so the developer's answer
|
|
247
249
|
to the plan is their consent. The CLI records none.
|
|
248
250
|
|
|
249
251
|
Installing or upgrading a package changes the manifest that lists it, such as `package.json`
|
|
@@ -288,15 +290,16 @@ Do not add compiler strictness the project did not have. Nothing later in the ru
|
|
|
288
290
|
allowed to weaken type safety, so a stricter gate named here is one the run cannot get
|
|
289
291
|
back out of.
|
|
290
292
|
|
|
291
|
-
## Name the
|
|
293
|
+
## Name the changes that need approval
|
|
292
294
|
|
|
293
295
|
The run shows the plan to the developer and goes on to build it without waiting. It stops
|
|
294
|
-
for an answer only when the plan makes a
|
|
295
|
-
`onboard restore` undoes any other change the backup holds.
|
|
296
|
+
for an answer only when the plan makes a change that needs approval. `onboard start` took a
|
|
297
|
+
backup, so `onboard restore` undoes any other change the backup holds.
|
|
296
298
|
|
|
297
|
-
List each
|
|
298
|
-
step does to it, and why the plan needs it. Write `none` when there is
|
|
299
|
-
step makes a
|
|
299
|
+
List each change that needs approval under `Changes that need your approval`, one line each: the path
|
|
300
|
+
or package, what the step does to it, and why the plan needs it. Write `none` when there is
|
|
301
|
+
none. List every other change under `What I will change`. A step makes a change that needs
|
|
302
|
+
approval when it:
|
|
300
303
|
|
|
301
304
|
- upgrades a dependency by a major version: a move whose `to` has a different major version
|
|
302
305
|
than `from`, or a move of an exact pin
|
|
@@ -306,31 +309,51 @@ step makes a risky change when it:
|
|
|
306
309
|
- changes a file that has uncommitted changes, from `Uncommitted files`
|
|
307
310
|
- untracks a file or changes `.gitignore`, other than the lines under
|
|
308
311
|
`Files the run writes itself`
|
|
309
|
-
- writes to an env file the app already uses, other than the key line the
|
|
310
|
-
|
|
312
|
+
- writes to an env file the app already uses, other than the key line for the key file
|
|
313
|
+
the setup answers recorded
|
|
311
314
|
- changes the existing agent's behavior, as `What the existing agent's behavior is`
|
|
312
315
|
defines it
|
|
313
|
-
- changes more than 10 files in all
|
|
314
|
-
|
|
316
|
+
- changes more than 10 files in all. Count only the files the plan's own steps change. Do
|
|
317
|
+
not count a file the framework's own tooling writes by itself, such as the `AGENTS.md`
|
|
318
|
+
and `CLAUDE.md` that `next dev` writes, or a file under `Files the run writes itself`.
|
|
319
|
+
The limit is the same one the backup tripwire sets for deleted files
|
|
315
320
|
- writes a file outside the project directory
|
|
316
321
|
- changes the version of any CopilotKit dependency: an `@copilotkit/*` package or the
|
|
317
322
|
`copilotkit` Python package, by any amount
|
|
318
323
|
|
|
319
|
-
|
|
324
|
+
A change the developer approved in the setup message needs no approval in the plan. The setup
|
|
325
|
+
answers the main coding agent gives you show it: `envFile` is `approved` for the untrack or
|
|
326
|
+
the `.gitignore` line that the env-file line named, and `alternative` for the key in the other
|
|
327
|
+
env file. `uncommittedWrites: approved` allows the connection's writes to the env file and
|
|
328
|
+
`.copilotkit/project.json`. Name each one under the notes instead.
|
|
329
|
+
|
|
330
|
+
The plan also needs approval when the backup does not hold every file: `backup.status` is
|
|
320
331
|
`partial` or `failed` in the `backup` result the main coding agent gives you. Name it as a
|
|
321
332
|
line of its own. For `partial`, name each path in `backup.notHeld` with its `why`, which
|
|
322
333
|
names the limit for a size skip, and the count in `backup.moreNotHeld` if any. For
|
|
323
334
|
`failed`, name the cause in `backup.detail`, and that `onboard restore` puts nothing back.
|
|
324
|
-
A step that changes one of those paths cannot be undone. `pending`
|
|
335
|
+
A step that changes one of those paths cannot be undone. `pending` needs no approval: the CLI
|
|
325
336
|
takes the backup when the run moves to the chosen project, or at the next step, before any
|
|
326
337
|
change. Say that in the plan.
|
|
327
338
|
|
|
328
|
-
Do not leave a
|
|
339
|
+
Do not leave a change that needs approval out of the list to keep the run moving.
|
|
340
|
+
|
|
341
|
+
## Return the result
|
|
329
342
|
|
|
330
343
|
Gather what you need in as few commands as possible. Combine independent reads into one
|
|
331
344
|
command rather than running them one at a time. Split a command only when its result decides
|
|
332
345
|
what you run next.
|
|
333
346
|
|
|
347
|
+
Before you return, record that you are returning:
|
|
348
|
+
|
|
349
|
+
```text
|
|
350
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase subagent-returned --brief create-plan --result <ok|failed>
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
The Status line of your result decides the value. Pass `ok` only for `Status: passed`.
|
|
354
|
+
Pass `failed` for `Status: failed` or `Status: blocked`. If your harness refuses this command, say so in your result and return
|
|
355
|
+
anyway: the main coding agent records it.
|
|
356
|
+
|
|
334
357
|
Start with `Status: passed`, `Status: failed`, or `Status: blocked`.
|
|
335
358
|
Return the plan, the URLs that you read, and each documentation gap. End your turn after you return
|
|
336
359
|
the findings to the main coding agent.
|
|
@@ -32,7 +32,7 @@ listen on a port, and cannot connect to localhost. It does not always fail: a pa
|
|
|
32
32
|
install can wait with no output until you stop it. So request escalation on the first run,
|
|
33
33
|
not after a hang or an error, for these commands:
|
|
34
34
|
|
|
35
|
-
- the dependency install
|
|
35
|
+
- the dependency install,
|
|
36
36
|
- the commands that start the app and agent servers,
|
|
37
37
|
- HTTP requests to those servers.
|
|
38
38
|
|
|
@@ -89,6 +89,19 @@ approved paths that do not overwrite such a file, unless the plan lists it under
|
|
|
89
89
|
running the scaffolder. Ask the main coding agent to revise credential setup when a
|
|
90
90
|
required variable is missing. Do not provision another key to repair a scaffold overwrite.
|
|
91
91
|
|
|
92
|
+
## When a command is refused
|
|
93
|
+
|
|
94
|
+
If you are a subagent and your harness refuses a command, return at once. Name the
|
|
95
|
+
command, the directory you ran it from, and the refusal, and run nothing else. Do not wait
|
|
96
|
+
for an approval: nobody sees it. The main coding agent runs the command itself and passes
|
|
97
|
+
the result on. The one wait allowed is a harness escalation request that this brief tells
|
|
98
|
+
you to make for a command. Make that request and wait for its answer.
|
|
99
|
+
|
|
100
|
+
If your handoff holds a command's result, use it and do not run that command again.
|
|
101
|
+
|
|
102
|
+
If you are the main coding agent and follow this brief yourself, this section is not for
|
|
103
|
+
you. Do not return: handle a refused command as the run's other prompts say.
|
|
104
|
+
|
|
92
105
|
## What the existing agent's behavior is
|
|
93
106
|
|
|
94
107
|
The existing agent's behavior is four things: its system prompt and instructions, its
|
|
@@ -100,6 +113,13 @@ Wiring is not behavior. Add the CopilotKit SDK dependency, wrap the agent in the
|
|
|
100
113
|
middleware, mount the runtime, connect AG-UI, and render what the agent already returns.
|
|
101
114
|
Those are the parts this run adds.
|
|
102
115
|
|
|
116
|
+
Every install in this step follows one rule for a version the registry does not serve
|
|
117
|
+
yet. npm reports it as `ETARGET`, pnpm as `ERR_PNPM_NO_MATCHING_VERSION`, Yarn as
|
|
118
|
+
`Couldn't find any versions` or `No candidates found`, and Bun as `No version matching`.
|
|
119
|
+
A package published minutes earlier can name a dependency whose publish has not reached
|
|
120
|
+
the registry. Wait 30 seconds and run the same install once more. If it fails again,
|
|
121
|
+
report the first error.
|
|
122
|
+
|
|
103
123
|
A run whose `environmentPath` ends in `.env.local` hosts the CopilotKit runtime in that
|
|
104
124
|
Next.js app, never in a separate server: no other process reads the key from that file.
|
|
105
125
|
|
|
@@ -126,10 +146,10 @@ new one. After wiring, run the recorded baseline checks and report any regressio
|
|
|
126
146
|
|
|
127
147
|
Where the plan names a CopilotKit dependency upgrade, apply its moves before you wire
|
|
128
148
|
Intelligence: declare each exact version in its app's manifest, then install with the
|
|
129
|
-
project's package manager. Then check the installed tree:
|
|
149
|
+
project's package manager, under the install rule above. Then check the installed tree:
|
|
130
150
|
|
|
131
151
|
```text
|
|
132
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
152
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard upgrade-plan --check --json
|
|
133
153
|
```
|
|
134
154
|
|
|
135
155
|
`single` means every direct dependency resolved to one version. `duplicates` names each
|
|
@@ -144,7 +164,7 @@ If the check finds duplicates or the baseline regresses, put the manifests and l
|
|
|
144
164
|
back, leave Intelligence unwired, and report what failed:
|
|
145
165
|
|
|
146
166
|
```text
|
|
147
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
167
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard upgrade-plan --revert --json
|
|
148
168
|
```
|
|
149
169
|
|
|
150
170
|
Then end your turn. Never add an `overrides`, `resolutions`, or `pnpm.overrides` block to
|
|
@@ -176,11 +196,16 @@ project does not hold, and the rendered result looks the same either way.
|
|
|
176
196
|
Run the full validation list. Record changed files, command results, and errors. Do not
|
|
177
197
|
claim that the real user journey works in this phase.
|
|
178
198
|
|
|
199
|
+
Your validation stops at `verify`. The proof step runs the round trip and records the
|
|
200
|
+
proof, once. Do not run `verify --round-trip`, `onboard proof-check`, or `onboard proof`.
|
|
201
|
+
Where the validation list names the round trip, leave it to the proof step and say so in
|
|
202
|
+
the Validation section.
|
|
203
|
+
|
|
179
204
|
Where the plan names a Learning Container id, check that the container exists first. Run
|
|
180
205
|
this from the target app directory, before you write any selector:
|
|
181
206
|
|
|
182
207
|
```text
|
|
183
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
208
|
+
npx --prefer-offline --yes copilotkit@4.29.0 learning containers get <id> --json
|
|
184
209
|
```
|
|
185
210
|
|
|
186
211
|
`"status": "success"` means the container exists. An `error.code` of
|
|
@@ -202,36 +227,6 @@ constructor for it, and never write an id the plan does not name: a selector poi
|
|
|
202
227
|
id the platform does not hold answers `LEARNING_CONTAINER_NOT_FOUND` on every thread create.
|
|
203
228
|
Where the plan names no container, write no selector.
|
|
204
229
|
|
|
205
|
-
## Install the CopilotKit Skills
|
|
206
|
-
|
|
207
|
-
The plan names the Skills install on its own line, and the build does not wait for an
|
|
208
|
-
answer on it. Install them in a whole-plan implementation. Skip it only when the developer
|
|
209
|
-
said no, which the main coding agent passes in the handoff. A repair handoff never installs
|
|
210
|
-
them.
|
|
211
|
-
|
|
212
|
-
Where `.agents/skills` already holds the CopilotKit skills, do not install them again.
|
|
213
|
-
Report that they are in place.
|
|
214
|
-
|
|
215
|
-
Where the developer said no, do not install them, and do not call that a change from the
|
|
216
|
-
plan. Report in the Validation section that the developer declined them.
|
|
217
|
-
|
|
218
|
-
Install them at the same time as the project's dependencies, not after validation: start both installs together. Where this run installs no dependencies,
|
|
219
|
-
install them before you run the validation list. Tell the developer what the skills
|
|
220
|
-
install writes into this project before you run it: a `.agents/skills` directory holding
|
|
221
|
-
one folder per CopilotKit skill, linked into `.claude/skills`. Both sit in the working tree,
|
|
222
|
-
so the install shows up in `git status` and can land in a commit. You cannot know whether
|
|
223
|
-
this project keeps those directories in version control, so name them before you write them
|
|
224
|
-
rather than after.
|
|
225
|
-
|
|
226
|
-
Then run `npx skills add CopilotKit/CopilotKit/skills -y` in the target app directory.
|
|
227
|
-
|
|
228
|
-
The plan names both directories under `Skills install`, so they are not departures. Name
|
|
229
|
-
them under Files changed. Do not register an MCP server: the Skills read the CopilotKit
|
|
230
|
-
documentation without one.
|
|
231
|
-
|
|
232
|
-
Check whether the install succeeded, and record the command result in the Validation
|
|
233
|
-
section. A failed install does not change your status. Report it and continue.
|
|
234
|
-
|
|
235
230
|
## Report the result
|
|
236
231
|
|
|
237
232
|
Report the runtime constructor you wrote. Name whether it passes `intelligence` or
|
|
@@ -243,6 +238,16 @@ Gather what you need in as few commands as possible. Combine independent reads i
|
|
|
243
238
|
command rather than running them one at a time. Split a command only when its result decides
|
|
244
239
|
what you run next.
|
|
245
240
|
|
|
241
|
+
Before you return, record that you are returning:
|
|
242
|
+
|
|
243
|
+
```text
|
|
244
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase subagent-returned --brief implement-and-validate --result <ok|failed>
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
The Status line of your result decides the value. Pass `ok` only for `Status: passed`.
|
|
248
|
+
Pass `failed` for `Status: failed` or `Status: blocked`. If your harness refuses this command, say so in your result and return
|
|
249
|
+
anyway: the main coding agent records it.
|
|
250
|
+
|
|
246
251
|
Start with `Status: passed`, `Status: failed`, or `Status: blocked`.
|
|
247
252
|
Return exactly four sections: Status, Files changed, Validation, and Blockers. Then end
|
|
248
253
|
your turn.
|
|
@@ -8,13 +8,13 @@ Your handoff holds the JSON of this command, which the main coding agent ran fro
|
|
|
8
8
|
target project directory:
|
|
9
9
|
|
|
10
10
|
```text
|
|
11
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
11
|
+
npx --prefer-offline --yes copilotkit@4.29.0 onboard inspect --json
|
|
12
12
|
```
|
|
13
13
|
|
|
14
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
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
the command yourself. If your harness refuses it, return with no packet, as "When a command
|
|
16
|
+
is refused" below says. That is not `Status: blocked`: the main coding agent can run the
|
|
17
|
+
command and do this work itself.
|
|
18
18
|
|
|
19
19
|
The JSON answers the deterministic half of both packets exactly, from the same code
|
|
20
20
|
`copilotkit verify` uses: the project record by presence, and, for each app or runtime
|
|
@@ -48,6 +48,19 @@ target directory that holds no project yet, and `no-declared-dependency` for a p
|
|
|
48
48
|
where no directory declares one. Report that reason as the finding. Do not report that
|
|
49
49
|
the inspection found nothing.
|
|
50
50
|
|
|
51
|
+
## When a command is refused
|
|
52
|
+
|
|
53
|
+
If you are a subagent and your harness refuses a command, return at once. Name the
|
|
54
|
+
command, the directory you ran it from, and the refusal, and run nothing else. Do not wait
|
|
55
|
+
for an approval: nobody sees it. The main coding agent runs the command itself and passes
|
|
56
|
+
the result on. The one wait allowed is a harness escalation request that this brief tells
|
|
57
|
+
you to make for a command. Make that request and wait for its answer.
|
|
58
|
+
|
|
59
|
+
If your handoff holds a command's result, use it and do not run that command again.
|
|
60
|
+
|
|
61
|
+
If you are the main coding agent and follow this brief yourself, this section is not for
|
|
62
|
+
you. Do not return: handle a refused command as the run's other prompts say.
|
|
63
|
+
|
|
51
64
|
## Project evidence packet
|
|
52
65
|
|
|
53
66
|
Find evidence for:
|