copilotkit 4.23.1 → 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 +164 -17
- package/cli-build-info.json +8 -8
- package/exporters/langgraph/README.md +33 -0
- package/exporters/langgraph/export_checkpointer.py +16 -0
- package/index.js +10909 -8245
- package/onboarding/index.json +2 -1
- package/onboarding/prompts/authenticate/start.md +50 -42
- 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 +16 -5
- package/onboarding/prompts/credentials/write-plan.md +15 -15
- package/onboarding/prompts/deployment/choose-local.md +62 -14
- package/onboarding/prompts/deployment/local-evaluation.md +37 -7
- 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 +26 -8
- 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 +30 -19
- 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 +26 -8
- 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 +76 -9
- package/onboarding/prompts/feature/learning/start.md +26 -8
- 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 +26 -8
- 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 +25 -7
- 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 +25 -7
- 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 +26 -8
- 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 +49 -21
- 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 +151 -9
- 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 +53 -10
- package/onboarding/prompts/unsupported/no-validated-path.md +8 -2
- package/package.json +1 -1
- package/release/release-tool.js +18 -1
- package/services/local-auth-worker.js +175 -159
|
@@ -12,7 +12,7 @@ The approval is a wait for the developer. Before you end your turn to wait, repo
|
|
|
12
12
|
pause:
|
|
13
13
|
|
|
14
14
|
```text
|
|
15
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
15
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
|
|
@@ -34,7 +34,7 @@ you plan. Run `onboard protect` again from the target app directory: on the same
|
|
|
34
34
|
prints the baseline the run already holds.
|
|
35
35
|
|
|
36
36
|
```text
|
|
37
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
37
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
Then have one read-only subagent repeat the inspection for the findings above, and wait
|
|
@@ -64,19 +64,27 @@ Show a concise plan for managed runtime/thread prerequisites, a stable selected
|
|
|
64
64
|
the documented `getLearningContainerId` selector, validation, and a visible assignment
|
|
65
65
|
proof. Ask for approval as its own question.
|
|
66
66
|
|
|
67
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
68
|
+
|
|
69
|
+
```text
|
|
70
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-plan-approval
|
|
71
|
+
```
|
|
72
|
+
|
|
67
73
|
The plan must list every protected path it needs to change under `Authorization requested`,
|
|
68
|
-
with one sentence explaining why. Write `None` when it needs none.
|
|
69
|
-
|
|
70
|
-
|
|
74
|
+
with one sentence explaining why. Write `None` when it needs none. A step that installs or
|
|
75
|
+
upgrades a package changes its manifest, so list a protected manifest such as `package.json`
|
|
76
|
+
or `pyproject.toml`. Its consent covers its lockfile, beside it or at the workspace root.
|
|
77
|
+
Authorization covers changing a protected path, not removing it, so the plan must not
|
|
78
|
+
delete, move, or rename one.
|
|
71
79
|
|
|
72
80
|
After approval, record each approved path before implementation:
|
|
73
81
|
|
|
74
82
|
```text
|
|
75
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
83
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
|
|
76
84
|
```
|
|
77
85
|
|
|
78
86
|
If an approved path changed after capture and no implementation step has run, add
|
|
79
87
|
`--with-prior-change`. Continue only when every result starts with `Status: passed`. Do not
|
|
80
88
|
authorize a path the approved plan did not list.
|
|
81
89
|
|
|
82
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
90
|
+
Then run `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/learning/implement`.
|
|
@@ -2,17 +2,77 @@
|
|
|
2
2
|
|
|
3
3
|
Delegate proof to a fresh subagent. In the real authenticated app, create or use a thread,
|
|
4
4
|
send a normal agent request, and confirm the resulting run reached the selected Learning
|
|
5
|
-
Container. Confirm the thread remains associated with the expected user.
|
|
5
|
+
Container. Confirm the thread remains associated with the expected user. Where the proof
|
|
6
|
+
uses `--thread` (below), that command cannot show the user, so read the user from the app.
|
|
7
|
+
|
|
8
|
+
## Check the local Learning model first
|
|
9
|
+
|
|
10
|
+
If the app directory has `.copilotkit/local.json`, the app uses a local evaluation stack.
|
|
11
|
+
A local stack runs Learning only with a model that the developer gave it. Before the proof,
|
|
12
|
+
run this command from the app directory:
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
npx --prefer-offline --yes copilotkit@4.25.0 local status --json
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Read `learning.configuration`. If it is `configured`, continue with the proof. Any other
|
|
19
|
+
value means that the stack has no Learning model.
|
|
20
|
+
|
|
21
|
+
If the developer chose "configure later" in `deployment/choose-local`, and the run's plan
|
|
22
|
+
records that choice, do not ask again. Continue with the proof, and report it as below.
|
|
23
|
+
|
|
24
|
+
Otherwise, tell the developer that Learning cannot process this container's threads until
|
|
25
|
+
it has a model. Ask them to run this command in their own terminal window, in the app
|
|
26
|
+
directory:
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
npx --prefer-offline --yes copilotkit@4.25.0 local setup
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Do not give it as a `!` line, and do not run it yourself. Its guided model prompt needs a
|
|
33
|
+
terminal, and a coding agent's shell has none. Without a terminal, the command stops and
|
|
34
|
+
changes nothing. The prompt asks for the model and its key, and it saves them privately.
|
|
35
|
+
On a running stack, it restarts only Learning. The container and its threads stay. Do not
|
|
36
|
+
ask the developer to write a model file, and do not read or print the model key.
|
|
37
|
+
|
|
38
|
+
Say that the run continues when they reply or resume this session. Report the pause with
|
|
39
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-model-credential`, end your
|
|
40
|
+
turn, and wait. When the developer replies, run `local status --json` again.
|
|
41
|
+
When it reports `configured`, continue with the proof.
|
|
42
|
+
|
|
43
|
+
If the developer declines, continue with the proof, because the container assignment can
|
|
44
|
+
still be proved. In the closing report, write "Learning configuration incomplete". Name the
|
|
45
|
+
command that adds the model later: `npx --prefer-offline --yes copilotkit@4.25.0 local setup`, run from
|
|
46
|
+
the app directory. `learning.verified` is always `false`. It does not mean that Learning
|
|
47
|
+
failed.
|
|
48
|
+
|
|
49
|
+
## Prove the container assignment
|
|
6
50
|
|
|
7
51
|
One command decides it:
|
|
8
52
|
|
|
9
53
|
```text
|
|
10
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
54
|
+
npx --prefer-offline --yes copilotkit@4.25.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --expect-learning-container <id> --json
|
|
11
55
|
```
|
|
12
56
|
|
|
13
57
|
It reads the thread back from the platform, so it answers for any runtime mount, and it
|
|
14
58
|
passes only when that thread carries the container this run selected.
|
|
15
59
|
|
|
60
|
+
That command starts its own run on a new thread. An app that runs only threads it created,
|
|
61
|
+
or whose `identifyUser` reads a session, refuses that run, and the container check never
|
|
62
|
+
runs. Do not change the app to accept it. Send one request on a new thread in the app, as
|
|
63
|
+
a signed-in user, read that request's `threadId` from the request body the page sent to
|
|
64
|
+
the runtime, and prove the same thread. Where the page needs a sign-in, do not create an
|
|
65
|
+
account and do not enter credentials. Where you cannot send the request yourself, ask the
|
|
66
|
+
developer to send one message on a new thread and give you its thread id. Report the pause
|
|
67
|
+
with `npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer`, then
|
|
68
|
+
end your turn and wait. When the developer gives the id, prove that thread:
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
npx --prefer-offline --yes copilotkit@4.25.0 verify --expect-runtime intelligence --thread <thread-id> --expect-learning-container <id> --json
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
It reads that thread from the platform with the project key and starts no run.
|
|
75
|
+
|
|
16
76
|
Two other signals look like proof and are not. `features.self_learning` is a plan
|
|
17
77
|
entitlement and is already true before any wiring. The `/info` response reports Learning
|
|
18
78
|
from the presence of a callback, not from a single assigned thread. Never report either one
|
|
@@ -36,11 +96,18 @@ not edit it. It returns a result that starts with `Status: blocked` and names th
|
|
|
36
96
|
Blockers.
|
|
37
97
|
|
|
38
98
|
That result is a question for the developer. The file has not changed yet, so consent can
|
|
39
|
-
still go on the record. Name the file and why the fix needs it
|
|
40
|
-
|
|
99
|
+
still go on the record. Name the file and why the fix needs it.
|
|
100
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
101
|
+
|
|
102
|
+
```text
|
|
103
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Then end your turn and wait for the developer's answer. If they allow it, record their
|
|
107
|
+
answer before any edit:
|
|
41
108
|
|
|
42
109
|
```text
|
|
43
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
110
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
44
111
|
```
|
|
45
112
|
|
|
46
113
|
Continue only when the result starts with `Status: passed`. Run the audit again, take the
|
|
@@ -53,12 +120,12 @@ Report the outcome of each attempt as it ends, before any repair. The command co
|
|
|
53
120
|
attempts and the repairs:
|
|
54
121
|
|
|
55
122
|
```text
|
|
56
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
123
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
57
124
|
```
|
|
58
125
|
|
|
59
126
|
Use `passed` only for a proved Container assignment, `failed` for an attempted proof that
|
|
60
127
|
failed, and `skipped` when the proof could not run. Then run
|
|
61
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
128
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard audit`. Continue only when it starts with
|
|
62
129
|
`Status: passed`.
|
|
63
130
|
|
|
64
131
|
If the audit fails, never repair, reset, or revert a protected path. Compare each named path
|
|
@@ -73,9 +140,9 @@ the path and the change the audit reports. Run the audit again after each accept
|
|
|
73
140
|
If the audit still fails, or starts with `Status: blocked`, route out and stop:
|
|
74
141
|
|
|
75
142
|
```text
|
|
76
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
143
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
|
|
77
144
|
```
|
|
78
145
|
|
|
79
146
|
When the audit passes, run
|
|
80
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
147
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/complete` with the actual surface
|
|
81
148
|
outcome.
|
|
@@ -4,6 +4,24 @@ Treat Learning as a managed Intelligence feature that assigns real threads to a
|
|
|
4
4
|
Learning Container. Orchestrate with separate read-only, implementation, and proof
|
|
5
5
|
subagents. Work only inside the target project and preserve its existing agent and chat.
|
|
6
6
|
|
|
7
|
+
## First, say which coding agent you are
|
|
8
|
+
|
|
9
|
+
Run this before anything else in this prompt:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Report your product slug, such as `codex` or `claude-code`. The command needs no sign-in,
|
|
16
|
+
browser, or project. If this run already ran `onboard identify`, skip this step.
|
|
17
|
+
|
|
18
|
+
- `--model`: copy the model id exactly as your instructions write it. Without an exact
|
|
19
|
+
model id, leave out `--model` rather than guess.
|
|
20
|
+
- `--model-family`: give it even without `--model`. Closest of: `claude-opus`,
|
|
21
|
+
`claude-sonnet`, `claude-haiku`, `gpt-5`, `gemini`, `grok`, `glm`, `minimax`, `mimo`,
|
|
22
|
+
`deepseek`, `qwen`, `kimi`, else the model's series. Leave it out if you do not know it.
|
|
23
|
+
- Never give your product slug as a model, or as an unlisted family.
|
|
24
|
+
|
|
7
25
|
## Waits, stops, and subagents
|
|
8
26
|
|
|
9
27
|
A run that starts here has not read these rules yet, so they come first. They cover this
|
|
@@ -20,13 +38,13 @@ carry on. Keep a read-only assignment read-only. If no subagent works at all, re
|
|
|
20
38
|
once:
|
|
21
39
|
|
|
22
40
|
```text
|
|
23
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
41
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase delegation-unavailable
|
|
24
42
|
```
|
|
25
43
|
|
|
26
44
|
Before you end your turn to wait for the developer, report the pause:
|
|
27
45
|
|
|
28
46
|
```text
|
|
29
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
47
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
30
48
|
```
|
|
31
49
|
|
|
32
50
|
A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
|
|
@@ -36,7 +54,7 @@ If you stop this run, send one short report before you stop. The friction comman
|
|
|
36
54
|
the telemetry setting the developer already chose, so it needs no separate question.
|
|
37
55
|
|
|
38
56
|
```text
|
|
39
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
57
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
40
58
|
```
|
|
41
59
|
|
|
42
60
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -66,7 +84,7 @@ status:
|
|
|
66
84
|
before the capture, the inspection, and any edit:
|
|
67
85
|
|
|
68
86
|
```text
|
|
69
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
87
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/blocked-by-plan
|
|
70
88
|
```
|
|
71
89
|
|
|
72
90
|
- `LEARNING_AVAILABILITY_UNAVAILABLE` means the platform did not resolve the answer. It is
|
|
@@ -87,7 +105,7 @@ again: it has no answer, so it carries the question forward rather than ending o
|
|
|
87
105
|
Before any subagent or project process runs, capture the developer's existing work:
|
|
88
106
|
|
|
89
107
|
```text
|
|
90
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
108
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect
|
|
91
109
|
```
|
|
92
110
|
|
|
93
111
|
Keep the exact protected path list it prints and give that list to every subagent. No
|
|
@@ -101,20 +119,20 @@ test/dev commands. Prove the current round trip and inspect `/info`.
|
|
|
101
119
|
Wait for the inspection subagent to finish. Then report that the inspection came back:
|
|
102
120
|
|
|
103
121
|
```text
|
|
104
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
122
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase research-returned
|
|
105
123
|
```
|
|
106
124
|
|
|
107
125
|
If the inspection did not prove the baseline this intent extends, stop here without
|
|
108
126
|
changing files:
|
|
109
127
|
|
|
110
128
|
```text
|
|
111
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
129
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
|
|
112
130
|
```
|
|
113
131
|
|
|
114
132
|
When the inspection proved what this intent needs, read the next prompt now, in this turn:
|
|
115
133
|
|
|
116
134
|
```text
|
|
117
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
135
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/learning/plan
|
|
118
136
|
```
|
|
119
137
|
|
|
120
138
|
That prompt holds the plan, the developer's approval, and the paths the plan changes.
|
|
@@ -16,7 +16,7 @@ validation results without secrets.
|
|
|
16
16
|
Before you spawn the implementation subagent, take the authorized list from the CLI:
|
|
17
17
|
|
|
18
18
|
```text
|
|
19
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
19
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard audit
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
|
|
@@ -31,11 +31,18 @@ protected path, it must not edit it. It returns a result that starts with `Statu
|
|
|
31
31
|
and names the file under Blockers.
|
|
32
32
|
|
|
33
33
|
That result is a question for the developer. The file has not changed yet, so consent can
|
|
34
|
-
still go on the record. Name the file and why the work needs it
|
|
35
|
-
|
|
34
|
+
still go on the record. Name the file and why the work needs it.
|
|
35
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
36
36
|
|
|
37
37
|
```text
|
|
38
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
38
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Then end your turn and wait for the developer's answer. If they allow it, record their
|
|
42
|
+
answer before any edit:
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
39
46
|
```
|
|
40
47
|
|
|
41
48
|
Continue only when the result starts with `Status: passed`. Run the audit again, take the
|
|
@@ -47,7 +54,7 @@ feature stop route below.
|
|
|
47
54
|
After validation and each repair, run:
|
|
48
55
|
|
|
49
56
|
```text
|
|
50
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
57
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard audit
|
|
51
58
|
```
|
|
52
59
|
|
|
53
60
|
Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
|
|
@@ -58,7 +65,7 @@ with the implementation subagent's `Files changed` section. If that section does
|
|
|
58
65
|
the path, accept the developer's external change:
|
|
59
66
|
|
|
60
67
|
```text
|
|
61
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
68
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --accept-external --path <path>
|
|
62
69
|
```
|
|
63
70
|
|
|
64
71
|
For an env file where the developer placed a requested credential, use
|
|
@@ -71,11 +78,11 @@ Run the audit again after each accepted change. If it still fails, or starts
|
|
|
71
78
|
with `Status: blocked`, route out and stop:
|
|
72
79
|
|
|
73
80
|
```text
|
|
74
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
81
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
|
|
75
82
|
```
|
|
76
83
|
|
|
77
84
|
If validation cannot pass, or this intent needs a prerequisite the app does not have, use
|
|
78
85
|
the feature stop route above without further changes.
|
|
79
86
|
|
|
80
87
|
Otherwise run
|
|
81
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
88
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/open-generative-ui/proof`.
|
|
@@ -12,7 +12,7 @@ The approval is a wait for the developer. Before you end your turn to wait, repo
|
|
|
12
12
|
pause:
|
|
13
13
|
|
|
14
14
|
```text
|
|
15
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
15
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
|
|
@@ -33,7 +33,7 @@ you plan. Run `onboard protect` again from the target app directory: on the same
|
|
|
33
33
|
prints the baseline the run already holds.
|
|
34
34
|
|
|
35
35
|
```text
|
|
36
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
36
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
Then have one read-only subagent repeat the inspection for the findings above, and wait
|
|
@@ -52,19 +52,27 @@ Retry through a second retrieval method if needed. Setup is the documented
|
|
|
52
52
|
Show a small plan covering that runtime option, the existing provider's renderer path,
|
|
53
53
|
likely CSP/sandbox implications, tests, and a user-visible generated UI proof. Ask for approval as its own question.
|
|
54
54
|
|
|
55
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-plan-approval
|
|
59
|
+
```
|
|
60
|
+
|
|
55
61
|
The plan must list every protected path it needs to change under `Authorization requested`,
|
|
56
|
-
with one sentence explaining why. Write `None` when it needs none.
|
|
57
|
-
|
|
58
|
-
|
|
62
|
+
with one sentence explaining why. Write `None` when it needs none. A step that installs or
|
|
63
|
+
upgrades a package changes its manifest, so list a protected manifest such as `package.json`
|
|
64
|
+
or `pyproject.toml`. Its consent covers its lockfile, beside it or at the workspace root.
|
|
65
|
+
Authorization covers changing a protected path, not removing it, so the plan must not
|
|
66
|
+
delete, move, or rename one.
|
|
59
67
|
|
|
60
68
|
After approval, record each approved path before implementation:
|
|
61
69
|
|
|
62
70
|
```text
|
|
63
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
71
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
|
|
64
72
|
```
|
|
65
73
|
|
|
66
74
|
If an approved path changed after capture and no implementation step has run, add
|
|
67
75
|
`--with-prior-change`. Continue only when every result starts with `Status: passed`. Do not
|
|
68
76
|
authorize a path the approved plan did not list.
|
|
69
77
|
|
|
70
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
78
|
+
Then run `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/open-generative-ui/implement`.
|
|
@@ -17,11 +17,18 @@ not edit it. It returns a result that starts with `Status: blocked` and names th
|
|
|
17
17
|
Blockers.
|
|
18
18
|
|
|
19
19
|
That result is a question for the developer. The file has not changed yet, so consent can
|
|
20
|
-
still go on the record. Name the file and why the fix needs it
|
|
21
|
-
|
|
20
|
+
still go on the record. Name the file and why the fix needs it.
|
|
21
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
22
22
|
|
|
23
23
|
```text
|
|
24
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
24
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Then end your turn and wait for the developer's answer. If they allow it, record their
|
|
28
|
+
answer before any edit:
|
|
29
|
+
|
|
30
|
+
```text
|
|
31
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
25
32
|
```
|
|
26
33
|
|
|
27
34
|
Continue only when the result starts with `Status: passed`. Run the audit again, take the
|
|
@@ -34,11 +41,11 @@ Report the outcome of each attempt as it ends, before any repair. The command co
|
|
|
34
41
|
attempts and the repairs:
|
|
35
42
|
|
|
36
43
|
```text
|
|
37
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
44
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
38
45
|
```
|
|
39
46
|
|
|
40
47
|
Use `passed` only for a proved generated UI, `failed` for an attempted proof that failed,
|
|
41
|
-
and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.
|
|
48
|
+
and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.25.0 onboard audit`.
|
|
42
49
|
Continue only when it starts with `Status: passed`.
|
|
43
50
|
|
|
44
51
|
If the audit fails, never repair, reset, or revert a protected path. Compare each named path
|
|
@@ -53,9 +60,9 @@ the path and the change the audit reports. Run the audit again after each accept
|
|
|
53
60
|
If the audit still fails, or starts with `Status: blocked`, route out and stop:
|
|
54
61
|
|
|
55
62
|
```text
|
|
56
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
63
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
|
|
57
64
|
```
|
|
58
65
|
|
|
59
66
|
When the audit passes, run
|
|
60
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
67
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/complete` with the outcome actually
|
|
61
68
|
observed.
|
|
@@ -3,6 +3,24 @@
|
|
|
3
3
|
Treat this as a focused OSS enhancement. Orchestrate the work with separate read-only,
|
|
4
4
|
implementation, and proof subagents, all restricted to the target project directory.
|
|
5
5
|
|
|
6
|
+
## First, say which coding agent you are
|
|
7
|
+
|
|
8
|
+
Run this before anything else in this prompt:
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Report your product slug, such as `codex` or `claude-code`. The command needs no sign-in,
|
|
15
|
+
browser, or project. If this run already ran `onboard identify`, skip this step.
|
|
16
|
+
|
|
17
|
+
- `--model`: copy the model id exactly as your instructions write it. Without an exact
|
|
18
|
+
model id, leave out `--model` rather than guess.
|
|
19
|
+
- `--model-family`: give it even without `--model`. Closest of: `claude-opus`,
|
|
20
|
+
`claude-sonnet`, `claude-haiku`, `gpt-5`, `gemini`, `grok`, `glm`, `minimax`, `mimo`,
|
|
21
|
+
`deepseek`, `qwen`, `kimi`, else the model's series. Leave it out if you do not know it.
|
|
22
|
+
- Never give your product slug as a model, or as an unlisted family.
|
|
23
|
+
|
|
6
24
|
## Waits, stops, and subagents
|
|
7
25
|
|
|
8
26
|
A run that starts here has not read these rules yet, so they come first. They cover this
|
|
@@ -19,13 +37,13 @@ carry on. Keep a read-only assignment read-only. If no subagent works at all, re
|
|
|
19
37
|
once:
|
|
20
38
|
|
|
21
39
|
```text
|
|
22
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
40
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase delegation-unavailable
|
|
23
41
|
```
|
|
24
42
|
|
|
25
43
|
Before you end your turn to wait for the developer, report the pause:
|
|
26
44
|
|
|
27
45
|
```text
|
|
28
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
46
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
29
47
|
```
|
|
30
48
|
|
|
31
49
|
A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
|
|
@@ -35,7 +53,7 @@ If you stop this run, send one short report before you stop. The friction comman
|
|
|
35
53
|
the telemetry setting the developer already chose, so it needs no separate question.
|
|
36
54
|
|
|
37
55
|
```text
|
|
38
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
56
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
39
57
|
```
|
|
40
58
|
|
|
41
59
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -49,7 +67,7 @@ one scoped fix, and sends the report itself when no fix is approved.
|
|
|
49
67
|
Before any subagent or project process runs, capture the developer's existing work:
|
|
50
68
|
|
|
51
69
|
```text
|
|
52
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
70
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect
|
|
53
71
|
```
|
|
54
72
|
|
|
55
73
|
Keep the exact protected path list it prints and give that list to every subagent. No
|
|
@@ -59,26 +77,26 @@ approved authorization before implementation.
|
|
|
59
77
|
Before edits, have a research subagent identify the current CopilotKit runtime route,
|
|
60
78
|
provider/chat component, agent id, package versions, existing middleware, sandbox/CSP
|
|
61
79
|
constraints, and normal test/dev commands. Prove the existing app first with `/info`,
|
|
62
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
80
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
|
|
63
81
|
and a real frontend request when browser control is available.
|
|
64
82
|
|
|
65
83
|
Wait for the inspection subagent to finish. Then report that the inspection came back:
|
|
66
84
|
|
|
67
85
|
```text
|
|
68
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
86
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase research-returned
|
|
69
87
|
```
|
|
70
88
|
|
|
71
89
|
If the inspection did not prove the baseline this intent extends, stop here without
|
|
72
90
|
changing files:
|
|
73
91
|
|
|
74
92
|
```text
|
|
75
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
93
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
|
|
76
94
|
```
|
|
77
95
|
|
|
78
96
|
When the inspection proved what this intent needs, read the next prompt now, in this turn:
|
|
79
97
|
|
|
80
98
|
```text
|
|
81
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
99
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/open-generative-ui/plan
|
|
82
100
|
```
|
|
83
101
|
|
|
84
102
|
That prompt holds the plan, the developer's approval, and the paths the plan changes.
|
|
@@ -12,19 +12,20 @@ or rewrite either endpoint. For hosted setup, do not add a speculative URL.
|
|
|
12
12
|
|
|
13
13
|
An Intelligence runtime requires `identifyUser`, and it usually reads a signed-in session
|
|
14
14
|
that a CLI request does not carry. That makes the round trip UNKNOWN and the command exit
|
|
15
|
-
non-zero on an app that is working.
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
non-zero on an app that is working. It is not a defect to repair. The proof step proves
|
|
16
|
+
such an app on a thread the app created, with `--thread <id>`, which needs no session. Pass
|
|
17
|
+
`--header "Name: value"` only when the developer offers what `identifyUser` reads, or
|
|
18
|
+
record UNKNOWN as the expected result here.
|
|
18
19
|
|
|
19
20
|
Run focused tests and
|
|
20
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
21
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
|
|
21
22
|
Repair changed-file failures and record changed paths and secret-safe validation
|
|
22
23
|
evidence.
|
|
23
24
|
|
|
24
25
|
Before you spawn the implementation subagent, take the authorized list from the CLI:
|
|
25
26
|
|
|
26
27
|
```text
|
|
27
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
28
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard audit
|
|
28
29
|
```
|
|
29
30
|
|
|
30
31
|
From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
|
|
@@ -39,11 +40,18 @@ protected path, it must not edit it. It returns a result that starts with `Statu
|
|
|
39
40
|
and names the file under Blockers.
|
|
40
41
|
|
|
41
42
|
That result is a question for the developer. The file has not changed yet, so consent can
|
|
42
|
-
still go on the record. Name the file and why the work needs it
|
|
43
|
-
|
|
43
|
+
still go on the record. Name the file and why the work needs it.
|
|
44
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
44
45
|
|
|
45
46
|
```text
|
|
46
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
47
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Then end your turn and wait for the developer's answer. If they allow it, record their
|
|
51
|
+
answer before any edit:
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
47
55
|
```
|
|
48
56
|
|
|
49
57
|
Continue only when the result starts with `Status: passed`. Run the audit again, take the
|
|
@@ -55,7 +63,7 @@ feature stop route below.
|
|
|
55
63
|
After validation and each repair, run:
|
|
56
64
|
|
|
57
65
|
```text
|
|
58
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
66
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard audit
|
|
59
67
|
```
|
|
60
68
|
|
|
61
69
|
Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
|
|
@@ -66,7 +74,7 @@ with the implementation subagent's `Files changed` section. If that section does
|
|
|
66
74
|
the path, accept the developer's external change:
|
|
67
75
|
|
|
68
76
|
```text
|
|
69
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
77
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --accept-external --path <path>
|
|
70
78
|
```
|
|
71
79
|
|
|
72
80
|
For an env file where the developer placed a requested credential, use
|
|
@@ -79,11 +87,11 @@ Run the audit again after each accepted change. If it still fails, or starts
|
|
|
79
87
|
with `Status: blocked`, route out and stop:
|
|
80
88
|
|
|
81
89
|
```text
|
|
82
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
90
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
|
|
83
91
|
```
|
|
84
92
|
|
|
85
93
|
If validation cannot pass, or this intent needs a prerequisite the app does not have, use
|
|
86
94
|
the feature stop route above without further changes.
|
|
87
95
|
|
|
88
96
|
Otherwise run
|
|
89
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
97
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/realtime-sync/proof`.
|
|
@@ -12,7 +12,7 @@ The approval is a wait for the developer. Before you end your turn to wait, repo
|
|
|
12
12
|
pause:
|
|
13
13
|
|
|
14
14
|
```text
|
|
15
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
15
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
|
|
@@ -34,7 +34,7 @@ you plan. Run `onboard protect` again from the target app directory: on the same
|
|
|
34
34
|
prints the baseline the run already holds.
|
|
35
35
|
|
|
36
36
|
```text
|
|
37
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
37
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
Then have one read-only subagent repeat the inspection for the findings above, and wait
|
|
@@ -57,19 +57,27 @@ from explicit developer-owned values. Never derive one from the other. The clien
|
|
|
57
57
|
`/api` itself, so an `apiUrl` that already ends in `/api` produces `/api/api/...`. Hosted setup may not
|
|
58
58
|
need a `wsUrl`. Ask for approval as its own question.
|
|
59
59
|
|
|
60
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-plan-approval
|
|
64
|
+
```
|
|
65
|
+
|
|
60
66
|
The plan must list every protected path it needs to change under `Authorization requested`,
|
|
61
|
-
with one sentence explaining why. Write `None` when it needs none.
|
|
62
|
-
|
|
63
|
-
|
|
67
|
+
with one sentence explaining why. Write `None` when it needs none. A step that installs or
|
|
68
|
+
upgrades a package changes its manifest, so list a protected manifest such as `package.json`
|
|
69
|
+
or `pyproject.toml`. Its consent covers its lockfile, beside it or at the workspace root.
|
|
70
|
+
Authorization covers changing a protected path, not removing it, so the plan must not
|
|
71
|
+
delete, move, or rename one.
|
|
64
72
|
|
|
65
73
|
After approval, record each approved path before implementation:
|
|
66
74
|
|
|
67
75
|
```text
|
|
68
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
76
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
|
|
69
77
|
```
|
|
70
78
|
|
|
71
79
|
If an approved path changed after capture and no implementation step has run, add
|
|
72
80
|
`--with-prior-change`. Continue only when every result starts with `Status: passed`. Do not
|
|
73
81
|
authorize a path the approved plan did not list.
|
|
74
82
|
|
|
75
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
83
|
+
Then run `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/realtime-sync/implement`.
|