copilotkit 4.16.0 → 4.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -4
- package/cli-build-info.json +7 -7
- package/index.js +3993 -2742
- package/onboarding/index.json +1 -1
- package/onboarding/prompts/authenticate/start.md +17 -15
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +20 -20
- package/onboarding/prompts/credentials/plan.md +21 -21
- package/onboarding/prompts/credentials/settle-credentials.md +46 -10
- package/onboarding/prompts/credentials/write-plan.md +35 -20
- package/onboarding/prompts/fallback/best-effort.md +23 -15
- package/onboarding/prompts/feature/a2ui/implement.md +40 -12
- package/onboarding/prompts/feature/a2ui/proof.md +29 -9
- package/onboarding/prompts/feature/a2ui/start.md +8 -10
- package/onboarding/prompts/feature/blocked-by-plan.md +4 -4
- package/onboarding/prompts/feature/channels/implement.md +41 -13
- package/onboarding/prompts/feature/channels/proof.md +30 -11
- package/onboarding/prompts/feature/channels/start.md +11 -9
- package/onboarding/prompts/feature/chat-suggestions/implement.md +40 -12
- package/onboarding/prompts/feature/chat-suggestions/proof.md +29 -9
- package/onboarding/prompts/feature/chat-suggestions/start.md +8 -10
- package/onboarding/prompts/feature/complete.md +2 -2
- package/onboarding/prompts/feature/learning/implement.md +58 -26
- package/onboarding/prompts/feature/learning/proof.md +30 -10
- package/onboarding/prompts/feature/learning/start.md +15 -12
- package/onboarding/prompts/feature/open-generative-ui/implement.md +41 -13
- package/onboarding/prompts/feature/open-generative-ui/proof.md +29 -9
- package/onboarding/prompts/feature/open-generative-ui/start.md +8 -10
- package/onboarding/prompts/feature/realtime-sync/implement.md +41 -13
- package/onboarding/prompts/feature/realtime-sync/proof.md +31 -10
- package/onboarding/prompts/feature/realtime-sync/start.md +8 -9
- package/onboarding/prompts/feature/rich-threads/implement.md +42 -14
- package/onboarding/prompts/feature/rich-threads/proof.md +31 -10
- package/onboarding/prompts/feature/rich-threads/start.md +8 -9
- package/onboarding/prompts/feature/stop.md +3 -3
- package/onboarding/prompts/feature/voice/implement.md +40 -12
- package/onboarding/prompts/feature/voice/proof.md +29 -9
- package/onboarding/prompts/feature/voice/start.md +8 -9
- package/onboarding/prompts/framework/ag2.md +2 -2
- package/onboarding/prompts/framework/agno.md +4 -4
- package/onboarding/prompts/framework/built-in.md +2 -2
- package/onboarding/prompts/framework/claude-sdk-python.md +8 -7
- package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
- package/onboarding/prompts/framework/crewai-flows.md +15 -7
- package/onboarding/prompts/framework/deep-agents.md +4 -3
- package/onboarding/prompts/framework/google-adk.md +7 -7
- package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
- package/onboarding/prompts/framework/langgraph-python.md +2 -2
- package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
- package/onboarding/prompts/framework/llamaindex.md +4 -4
- package/onboarding/prompts/framework/mastra.md +2 -2
- package/onboarding/prompts/framework/ms-agent-dotnet.md +2 -2
- package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
- package/onboarding/prompts/framework/ms-agent-python.md +6 -6
- package/onboarding/prompts/framework/pydantic-ai.md +2 -2
- package/onboarding/prompts/framework/strands-python.md +4 -4
- package/onboarding/prompts/framework/strands-typescript.md +4 -4
- package/onboarding/prompts/frontend/angular.md +3 -3
- package/onboarding/prompts/frontend/nextjs.md +16 -3
- package/onboarding/prompts/frontend/plan.md +7 -7
- package/onboarding/prompts/frontend/react-native.md +2 -2
- package/onboarding/prompts/frontend/react-spa.md +2 -2
- package/onboarding/prompts/frontend/vue.md +2 -2
- package/onboarding/prompts/implementation/build-and-validate.md +67 -28
- package/onboarding/prompts/proof/complete.md +21 -14
- package/onboarding/prompts/proof/oss-baseline.md +16 -12
- package/onboarding/prompts/proof/round-trip.md +33 -22
- package/onboarding/prompts/research/gather.md +8 -7
- package/onboarding/prompts/research/merge.md +3 -3
- package/onboarding/prompts/research/preflight.md +4 -4
- package/onboarding/prompts/research/route.md +6 -6
- package/onboarding/prompts/starter/clone.md +14 -11
- package/onboarding/prompts/stopped/run-failed.md +9 -9
- package/onboarding/prompts/subagent/create-plan.md +15 -10
- package/onboarding/prompts/subagent/implement-and-validate.md +25 -11
- package/onboarding/prompts/subagent/inspect-repository.md +14 -6
- package/onboarding/prompts/subagent/prove-oss-baseline.md +5 -4
- package/onboarding/prompts/subagent/prove-round-trip.md +38 -14
- package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
- package/package.json +1 -5
- package/release/release-tool.js +171 -40
|
@@ -6,7 +6,7 @@ implementation, and proof to separate subagents and keep all work inside the tar
|
|
|
6
6
|
Before any subagent or project process runs, capture the developer's existing work:
|
|
7
7
|
|
|
8
8
|
```text
|
|
9
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
9
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect
|
|
10
10
|
```
|
|
11
11
|
|
|
12
12
|
Keep the exact protected path list it prints and give that list to every subagent. No
|
|
@@ -15,15 +15,13 @@ approved authorization before implementation.
|
|
|
15
15
|
|
|
16
16
|
Before edits, identify the current CopilotKit provider, chat component, message lifecycle,
|
|
17
17
|
agent id, package version, and test/dev commands. Prove the existing OSS round trip with
|
|
18
|
-
`/info`, `npx --prefer-offline --yes copilotkit@4.
|
|
19
|
-
and one real frontend request when browser control is available.
|
|
20
|
-
existing CopilotKit chat, leave files unchanged and direct the developer to generic
|
|
21
|
-
onboarding first.
|
|
18
|
+
`/info`, `npx --prefer-offline --yes copilotkit@4.17.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
|
|
19
|
+
and one real frontend request when browser control is available.
|
|
22
20
|
|
|
23
21
|
Wait for the inspection subagent to finish. Then report that the inspection came back:
|
|
24
22
|
|
|
25
23
|
```text
|
|
26
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
24
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase research-returned
|
|
27
25
|
```
|
|
28
26
|
|
|
29
27
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -33,7 +31,7 @@ If the inspection did not prove the baseline this intent extends, stop here with
|
|
|
33
31
|
changing files:
|
|
34
32
|
|
|
35
33
|
```text
|
|
36
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
34
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
|
|
37
35
|
```
|
|
38
36
|
|
|
39
37
|
Do not run login, provision Intelligence, request a credential, replace the agent, or alter
|
|
@@ -55,7 +53,7 @@ one.
|
|
|
55
53
|
After approval, record each approved path before implementation:
|
|
56
54
|
|
|
57
55
|
```text
|
|
58
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
56
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
|
|
59
57
|
```
|
|
60
58
|
|
|
61
59
|
If an approved path changed after capture and no implementation step has run, add
|
|
@@ -65,7 +63,7 @@ authorize a path the approved plan did not list.
|
|
|
65
63
|
Then report the plan this run is about to implement:
|
|
66
64
|
|
|
67
65
|
```text
|
|
68
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
66
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase plan-written
|
|
69
67
|
```
|
|
70
68
|
|
|
71
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
69
|
+
Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/chat-suggestions/implement`.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Use the outcome the proof step observed. Run:
|
|
4
4
|
|
|
5
5
|
```text
|
|
6
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
6
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard complete --visual-check <performed|skipped-no-browser-tool|channels-proof-passed|failed>
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Use `channels-proof-passed` for a Slack or Teams run that recorded a passed round-trip proof
|
|
@@ -20,7 +20,7 @@ Before `onboard complete`, send the friction this run mentioned to the developer
|
|
|
20
20
|
report each, at most four, costliest first:
|
|
21
21
|
|
|
22
22
|
```text
|
|
23
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
23
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
Put one or two sentences in `--message`, with no secrets, source, or logs. Pick the
|
|
@@ -7,16 +7,17 @@ require the secret-safe project/key provisioning summary before wiring the runti
|
|
|
7
7
|
|
|
8
8
|
## If you stop in this phase
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
resolve, a container id that never resolves, an audit that
|
|
12
|
-
that cannot pass
|
|
10
|
+
Five rules below end this run without completing it: an entitlement the platform will not
|
|
11
|
+
resolve, a container id that never resolves, an audit that still fails or is blocked or
|
|
12
|
+
cannot be cleared, validation that cannot pass, and an intent that needs a prerequisite the
|
|
13
|
+
app does not have. Each one stops onboarding for a developer who has already approved a
|
|
13
14
|
plan. Name the exact command, id, and error code that stopped you: a report that names only
|
|
14
15
|
the step cannot be acted on. Send one short report before you stop. Run the friction
|
|
15
16
|
command without another developer question. Do not ask the developer about telemetry: the
|
|
16
17
|
command applies the setting they already have.
|
|
17
18
|
|
|
18
19
|
```text
|
|
19
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
20
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
20
21
|
```
|
|
21
22
|
|
|
22
23
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -29,7 +30,9 @@ those, prints the reason, and exits zero. A refused report is not a failed step.
|
|
|
29
30
|
report, then stop.
|
|
30
31
|
|
|
31
32
|
A refusal by the platform is the one exception. It reaches `feature/blocked-by-plan`, which
|
|
32
|
-
reports the ending by itself and says to file nothing further.
|
|
33
|
+
reports the ending by itself and says to file nothing further. A stop that routes to
|
|
34
|
+
`feature/stop` also sends no report here: that prompt first asks the developer about one
|
|
35
|
+
scoped fix, and sends the report itself when no fix is approved.
|
|
33
36
|
|
|
34
37
|
After the project is selected, settle the container from the terminal.
|
|
35
38
|
|
|
@@ -41,7 +44,7 @@ settled refusal rather than a missing baseline, so stop here, before any file ch
|
|
|
41
44
|
take its own ending:
|
|
42
45
|
|
|
43
46
|
```text
|
|
44
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
47
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/blocked-by-plan
|
|
45
48
|
```
|
|
46
49
|
|
|
47
50
|
`LEARNING_AVAILABILITY_UNAVAILABLE` means the platform did not resolve the answer. It is
|
|
@@ -55,7 +58,7 @@ then, so the read below is where its refusal surfaces.
|
|
|
55
58
|
When the plan or the repository already names an id, ask about that one id and nothing else:
|
|
56
59
|
|
|
57
60
|
```text
|
|
58
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
61
|
+
npx --prefer-offline --yes copilotkit@4.17.0 learning containers get <id> --json
|
|
59
62
|
```
|
|
60
63
|
|
|
61
64
|
One call answers it, and no list is needed.
|
|
@@ -63,7 +66,7 @@ One call answers it, and no list is needed.
|
|
|
63
66
|
When no id is in hand, survey what the project holds:
|
|
64
67
|
|
|
65
68
|
```text
|
|
66
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
69
|
+
npx --prefer-offline --yes copilotkit@4.17.0 learning containers list --json
|
|
67
70
|
```
|
|
68
71
|
|
|
69
72
|
One call returns at most 500 containers. When `nextCursor` in the result is not null, read
|
|
@@ -74,7 +77,7 @@ second container for work the first one already covers.
|
|
|
74
77
|
Report what the read found before asking anyone anything:
|
|
75
78
|
|
|
76
79
|
```text
|
|
77
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
80
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase container-surveyed
|
|
78
81
|
```
|
|
79
82
|
|
|
80
83
|
Everything after this waits on a person, so a run that stops past this point stopped on a
|
|
@@ -95,7 +98,7 @@ user, so the callback can return a different id per tier or per customer.
|
|
|
95
98
|
Ask the CLI for the id rather than spelling one yourself:
|
|
96
99
|
|
|
97
100
|
```text
|
|
98
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
101
|
+
npx --prefer-offline --yes copilotkit@4.17.0 learning containers default-id --json
|
|
99
102
|
```
|
|
100
103
|
|
|
101
104
|
It derives the project-scoped id from the selected project's slug, reads the local project
|
|
@@ -109,7 +112,7 @@ run that spells the id differently gives one project two containers, each below
|
|
|
109
112
|
above on its own. One command is what keeps the two spellings identical.
|
|
110
113
|
|
|
111
114
|
```text
|
|
112
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
115
|
+
npx --prefer-offline --yes copilotkit@4.17.0 learning containers create --id <id> --name <name> --json
|
|
113
116
|
```
|
|
114
117
|
|
|
115
118
|
An id already in use answers `LEARNING_CONTAINER_ALREADY_EXISTS`. That is a container to
|
|
@@ -124,7 +127,7 @@ or a guessed id.
|
|
|
124
127
|
Then report that the container is settled, before any edit:
|
|
125
128
|
|
|
126
129
|
```text
|
|
127
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
130
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase container-settled
|
|
128
131
|
```
|
|
129
132
|
|
|
130
133
|
Everything above happens between two prompts, so a run that stopped on a developer who could
|
|
@@ -145,13 +148,44 @@ non-zero on an app that is working. Pass what `identifyUser` reads with a repeat
|
|
|
145
148
|
It is not a defect to repair.
|
|
146
149
|
|
|
147
150
|
Run focused tests and
|
|
148
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
151
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
|
|
149
152
|
Repair changed-file failures and record secret-safe evidence.
|
|
150
153
|
|
|
154
|
+
Before you spawn the implementation subagent, take the authorized list from the CLI:
|
|
155
|
+
|
|
156
|
+
```text
|
|
157
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
|
|
161
|
+
no such block means that nothing is authorized. Read only that block now, and decide the
|
|
162
|
+
findings of a failed audit after implementation, with the audit rules below. If this audit
|
|
163
|
+
starts with `Status: blocked`, the CLI cannot supply the list. Report the printed reason and
|
|
164
|
+
take the feature stop route below.
|
|
165
|
+
|
|
166
|
+
Give the implementation subagent the protected path list and the authorized list. Tell it
|
|
167
|
+
this rule: it can change a path on the authorized list. When the work needs any other
|
|
168
|
+
protected path, it must not edit it. It returns a result that starts with `Status: blocked`
|
|
169
|
+
and names the file under Blockers.
|
|
170
|
+
|
|
171
|
+
That result is a question for the developer. The file has not changed yet, so consent can
|
|
172
|
+
still go on the record. Name the file and why the work needs it, then end your turn and wait
|
|
173
|
+
for the developer's answer. If they allow it, record their answer before any edit:
|
|
174
|
+
|
|
175
|
+
```text
|
|
176
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Continue only when the result starts with `Status: passed`. Run the audit again, take the
|
|
180
|
+
new list from its `Authorized to modify:` block, and spawn a fresh implementation subagent
|
|
181
|
+
with the same handoff and that list. A subagent that already returned cannot pick up consent
|
|
182
|
+
recorded after it was spawned. If you cannot ask, or the developer declines, take the
|
|
183
|
+
feature stop route below.
|
|
184
|
+
|
|
151
185
|
After validation and each repair, run:
|
|
152
186
|
|
|
153
187
|
```text
|
|
154
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
188
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
|
|
155
189
|
```
|
|
156
190
|
|
|
157
191
|
Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
|
|
@@ -162,33 +196,31 @@ with the implementation subagent's `Files changed` section. If that section does
|
|
|
162
196
|
the path, accept the developer's external change:
|
|
163
197
|
|
|
164
198
|
```text
|
|
165
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
199
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-external --path <path>
|
|
166
200
|
```
|
|
167
201
|
|
|
168
202
|
For an env file where the developer placed a requested credential, use
|
|
169
203
|
`onboard protect --accept-credential --path <path>` instead. If the subagent names the path,
|
|
170
|
-
or its report does not settle who changed it,
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
```text
|
|
174
|
-
npx --prefer-offline --yes copilotkit@4.16.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
175
|
-
```
|
|
204
|
+
or its report does not settle who changed it, the change is this run's own, made without
|
|
205
|
+
consent. Do not ask the developer to allow it: the CLI refuses consent for a path that
|
|
206
|
+
already changed. Route out, and name the path and the change the audit reports.
|
|
176
207
|
|
|
177
|
-
Run the audit again after each accepted
|
|
178
|
-
with `Status: blocked`, route out and stop
|
|
208
|
+
Run the audit again after each accepted change. If it still fails, or starts
|
|
209
|
+
with `Status: blocked`, route out and stop. Route out the same way when
|
|
210
|
+
`--accept-credential` refuses because it names a lost variable:
|
|
179
211
|
|
|
180
212
|
```text
|
|
181
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
213
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
|
|
182
214
|
```
|
|
183
215
|
|
|
184
216
|
When implementation validation passes, report it:
|
|
185
217
|
|
|
186
218
|
```text
|
|
187
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
219
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase build-validated
|
|
188
220
|
```
|
|
189
221
|
|
|
190
222
|
If validation cannot pass, or this intent needs a prerequisite the app does not have, use
|
|
191
223
|
the feature stop route above without further changes.
|
|
192
224
|
|
|
193
225
|
Otherwise run
|
|
194
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
226
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/learning/proof`.
|
|
@@ -7,7 +7,7 @@ Container. Confirm the thread remains associated with the expected user.
|
|
|
7
7
|
One command decides it:
|
|
8
8
|
|
|
9
9
|
```text
|
|
10
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
10
|
+
npx --prefer-offline --yes copilotkit@4.17.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --expect-learning-container <id> --json
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
It reads the thread back from the platform, so it answers for any runtime mount, and it
|
|
@@ -29,27 +29,47 @@ counts. Existing threads can join this container if they never belonged to anoth
|
|
|
29
29
|
Their surviving earlier history then becomes eligible for collection and counts toward the
|
|
30
30
|
same threshold. Existing threads do not join automatically just because a container exists.
|
|
31
31
|
|
|
32
|
+
Give the proof subagent the protected path list and the authorized list. Take that list from
|
|
33
|
+
the latest audit, and copy the paths under `Authorized to modify:`. Tell it this rule: a fix
|
|
34
|
+
can change a path on the authorized list. When a fix needs any other protected path, it must
|
|
35
|
+
not edit it. It returns a result that starts with `Status: blocked` and names the file under
|
|
36
|
+
Blockers.
|
|
37
|
+
|
|
38
|
+
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, then end your turn and wait
|
|
40
|
+
for the developer's answer. If they allow it, record their answer before any edit:
|
|
41
|
+
|
|
42
|
+
```text
|
|
43
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Continue only when the result starts with `Status: passed`. Run the audit again, take the
|
|
47
|
+
new list from its `Authorized to modify:` block, and spawn a fresh proof subagent with the
|
|
48
|
+
same handoff and that list. A subagent that already returned cannot pick up consent recorded
|
|
49
|
+
after it was spawned. If you cannot ask, or the developer declines, take the feature stop
|
|
50
|
+
route below.
|
|
51
|
+
|
|
32
52
|
Report each attempt at the proof as it ends, counting from one:
|
|
33
53
|
|
|
34
54
|
```text
|
|
35
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
55
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase journey-attempted --attempt 1
|
|
36
56
|
```
|
|
37
57
|
|
|
38
58
|
Report each repair cycle the same way, counting from one:
|
|
39
59
|
|
|
40
60
|
```text
|
|
41
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
61
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase repair-attempted --attempt 1
|
|
42
62
|
```
|
|
43
63
|
|
|
44
64
|
After the final attempt, report the gate exactly once:
|
|
45
65
|
|
|
46
66
|
```text
|
|
47
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
67
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
48
68
|
```
|
|
49
69
|
|
|
50
70
|
Use `passed` only for a proved Container assignment, `failed` for an attempted proof that
|
|
51
71
|
failed, and `skipped` when the proof could not run. Then run
|
|
52
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
72
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard audit`. Continue only when it starts with
|
|
53
73
|
`Status: passed`.
|
|
54
74
|
|
|
55
75
|
If the audit fails, never repair, reset, or revert a protected path. Compare each named path
|
|
@@ -57,16 +77,16 @@ with the proof subagent's `Files changed` section. If that section does not name
|
|
|
57
77
|
run `onboard protect --accept-external --path <path>`, or
|
|
58
78
|
`onboard protect --accept-credential --path <path>` for an env file where the developer
|
|
59
79
|
placed a requested credential. If the subagent names the path, or its report does not settle
|
|
60
|
-
who changed it,
|
|
61
|
-
|
|
62
|
-
Run the audit again after each accepted
|
|
80
|
+
who changed it, the change is this run's own, made without consent. Do not ask the developer
|
|
81
|
+
to allow it: the CLI refuses consent for a path that already changed. Route out, and name
|
|
82
|
+
the path and the change the audit reports. Run the audit again after each accepted change.
|
|
63
83
|
|
|
64
84
|
If the audit still fails, or starts with `Status: blocked`, route out and stop:
|
|
65
85
|
|
|
66
86
|
```text
|
|
67
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
87
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
|
|
68
88
|
```
|
|
69
89
|
|
|
70
90
|
When the audit passes, run
|
|
71
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
91
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/complete` with the actual surface
|
|
72
92
|
outcome.
|
|
@@ -11,7 +11,7 @@ friction command without another developer question. Do not ask the developer ab
|
|
|
11
11
|
telemetry: the command applies the setting they already have.
|
|
12
12
|
|
|
13
13
|
```text
|
|
14
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
14
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -22,6 +22,11 @@ the whole run, so the estimate is optional on a stop report and only there. Send
|
|
|
22
22
|
source code, logs, or command output. A refused report is not a failed step: reword it and
|
|
23
23
|
send it again, or stop without a report.
|
|
24
24
|
|
|
25
|
+
A refusal by the platform is the one exception. It reaches `feature/blocked-by-plan`, which
|
|
26
|
+
reports the ending by itself and says to file nothing further. A stop that routes to
|
|
27
|
+
`feature/stop` also sends no report here: that prompt first asks the developer about one
|
|
28
|
+
scoped fix, and sends the report itself when no fix is approved.
|
|
29
|
+
|
|
25
30
|
Ask the platform whether this organization may use Learning before doing any work. The
|
|
26
31
|
read carries the same availability gate as the create, so it answers the entitlement
|
|
27
32
|
question in one call and writes nothing:
|
|
@@ -38,7 +43,7 @@ status:
|
|
|
38
43
|
before the capture, the inspection, and any edit:
|
|
39
44
|
|
|
40
45
|
```text
|
|
41
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
46
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/blocked-by-plan
|
|
42
47
|
```
|
|
43
48
|
|
|
44
49
|
- `LEARNING_AVAILABILITY_UNAVAILABLE` means the platform did not resolve the answer. It is
|
|
@@ -59,7 +64,7 @@ again: it has no answer, so it carries the question forward rather than ending o
|
|
|
59
64
|
Before any subagent or project process runs, capture the developer's existing work:
|
|
60
65
|
|
|
61
66
|
```text
|
|
62
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
67
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect
|
|
63
68
|
```
|
|
64
69
|
|
|
65
70
|
Keep the exact protected path list it prints and give that list to every subagent. No
|
|
@@ -68,14 +73,12 @@ approved authorization before implementation.
|
|
|
68
73
|
|
|
69
74
|
Before edits, inspect the runtime, agent id, provider/chat, server-side user identity,
|
|
70
75
|
existing Intelligence configuration (presence only), existing thread routes, and the normal
|
|
71
|
-
test/dev commands. Prove the current round trip and inspect `/info`.
|
|
72
|
-
already have a CopilotKit app, leave it unchanged and direct the developer to generic
|
|
73
|
-
onboarding.
|
|
76
|
+
test/dev commands. Prove the current round trip and inspect `/info`.
|
|
74
77
|
|
|
75
78
|
Wait for the inspection subagent to finish. Then report that the inspection came back:
|
|
76
79
|
|
|
77
80
|
```text
|
|
78
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
81
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase research-returned
|
|
79
82
|
```
|
|
80
83
|
|
|
81
84
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -85,13 +88,13 @@ If the inspection did not prove the baseline this intent extends, stop here with
|
|
|
85
88
|
changing files:
|
|
86
89
|
|
|
87
90
|
```text
|
|
88
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
91
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
|
|
89
92
|
```
|
|
90
93
|
|
|
91
94
|
Fetch the current official guides before planning:
|
|
92
95
|
https://docs.copilotkit.ai/learning.md
|
|
93
96
|
https://docs.copilotkit.ai/backend/copilot-runtime.md
|
|
94
|
-
https://docs.copilotkit.ai/intelligence/
|
|
97
|
+
https://docs.copilotkit.ai/intelligence/quickstart.md
|
|
95
98
|
https://docs.copilotkit.ai/threads.md
|
|
96
99
|
Use a second retrieval method if needed.
|
|
97
100
|
|
|
@@ -117,7 +120,7 @@ one.
|
|
|
117
120
|
After approval, record each approved path before implementation:
|
|
118
121
|
|
|
119
122
|
```text
|
|
120
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
123
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
|
|
121
124
|
```
|
|
122
125
|
|
|
123
126
|
If an approved path changed after capture and no implementation step has run, add
|
|
@@ -127,7 +130,7 @@ authorize a path the approved plan did not list.
|
|
|
127
130
|
Then report the plan this run is about to implement:
|
|
128
131
|
|
|
129
132
|
```text
|
|
130
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
133
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase plan-written
|
|
131
134
|
```
|
|
132
135
|
|
|
133
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
136
|
+
Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/learning/implement`.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Implement Open Generative UI with the existing chat surface
|
|
2
2
|
|
|
3
3
|
Delegate implementation to one subagent with the approved plan and the fetched official
|
|
4
|
-
guide.
|
|
4
|
+
guide. Enable only the documented `openGenerativeUI` runtime option and any documented
|
|
5
5
|
provider wiring the current package versions require. Preserve the existing agent, runtime
|
|
6
6
|
route, persistence, chat surface, and model setup.
|
|
7
7
|
|
|
@@ -13,10 +13,41 @@ Run the project's focused validation commands. Start the app and confirm `/info`
|
|
|
13
13
|
`openGenerativeUIEnabled`, while treating that only as capability evidence. Record changed paths and
|
|
14
14
|
validation results without secrets.
|
|
15
15
|
|
|
16
|
+
Before you spawn the implementation subagent, take the authorized list from the CLI:
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
|
|
23
|
+
no such block means that nothing is authorized. Read only that block now, and decide the
|
|
24
|
+
findings of a failed audit after implementation, with the audit rules below. If this audit
|
|
25
|
+
starts with `Status: blocked`, the CLI cannot supply the list. Report the printed reason and
|
|
26
|
+
take the feature stop route below.
|
|
27
|
+
|
|
28
|
+
Give the implementation subagent the protected path list and the authorized list. Tell it
|
|
29
|
+
this rule: it can change a path on the authorized list. When the work needs any other
|
|
30
|
+
protected path, it must not edit it. It returns a result that starts with `Status: blocked`
|
|
31
|
+
and names the file under Blockers.
|
|
32
|
+
|
|
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, then end your turn and wait
|
|
35
|
+
for the developer's answer. If they allow it, record their answer before any edit:
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Continue only when the result starts with `Status: passed`. Run the audit again, take the
|
|
42
|
+
new list from its `Authorized to modify:` block, and spawn a fresh implementation subagent
|
|
43
|
+
with the same handoff and that list. A subagent that already returned cannot pick up consent
|
|
44
|
+
recorded after it was spawned. If you cannot ask, or the developer declines, take the
|
|
45
|
+
feature stop route below.
|
|
46
|
+
|
|
16
47
|
After validation and each repair, run:
|
|
17
48
|
|
|
18
49
|
```text
|
|
19
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
50
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
|
|
20
51
|
```
|
|
21
52
|
|
|
22
53
|
Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
|
|
@@ -27,33 +58,30 @@ with the implementation subagent's `Files changed` section. If that section does
|
|
|
27
58
|
the path, accept the developer's external change:
|
|
28
59
|
|
|
29
60
|
```text
|
|
30
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
61
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-external --path <path>
|
|
31
62
|
```
|
|
32
63
|
|
|
33
64
|
For an env file where the developer placed a requested credential, use
|
|
34
65
|
`onboard protect --accept-credential --path <path>` instead. If the subagent names the path,
|
|
35
|
-
or its report does not settle who changed it,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
```text
|
|
39
|
-
npx --prefer-offline --yes copilotkit@4.16.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
40
|
-
```
|
|
66
|
+
or its report does not settle who changed it, the change is this run's own, made without
|
|
67
|
+
consent. Do not ask the developer to allow it: the CLI refuses consent for a path that
|
|
68
|
+
already changed. Route out, and name the path and the change the audit reports.
|
|
41
69
|
|
|
42
|
-
Run the audit again after each accepted
|
|
70
|
+
Run the audit again after each accepted change. If it still fails, or starts
|
|
43
71
|
with `Status: blocked`, route out and stop:
|
|
44
72
|
|
|
45
73
|
```text
|
|
46
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
74
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
|
|
47
75
|
```
|
|
48
76
|
|
|
49
77
|
When implementation validation passes, report it:
|
|
50
78
|
|
|
51
79
|
```text
|
|
52
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
80
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase build-validated
|
|
53
81
|
```
|
|
54
82
|
|
|
55
83
|
If validation cannot pass, or this intent needs a prerequisite the app does not have, use
|
|
56
84
|
the feature stop route above without further changes.
|
|
57
85
|
|
|
58
86
|
Otherwise run
|
|
59
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
87
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/open-generative-ui/proof`.
|
|
@@ -10,26 +10,46 @@ project-owned services running. Repair a failure caused by changed files and pro
|
|
|
10
10
|
do not replace the output with a hard-coded component. If browser control is absent, report
|
|
11
11
|
the missing visual proof honestly.
|
|
12
12
|
|
|
13
|
+
Give the proof subagent the protected path list and the authorized list. Take that list from
|
|
14
|
+
the latest audit, and copy the paths under `Authorized to modify:`. Tell it this rule: a fix
|
|
15
|
+
can change a path on the authorized list. When a fix needs any other protected path, it must
|
|
16
|
+
not edit it. It returns a result that starts with `Status: blocked` and names the file under
|
|
17
|
+
Blockers.
|
|
18
|
+
|
|
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, then end your turn and wait
|
|
21
|
+
for the developer's answer. If they allow it, record their answer before any edit:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Continue only when the result starts with `Status: passed`. Run the audit again, take the
|
|
28
|
+
new list from its `Authorized to modify:` block, and spawn a fresh proof subagent with the
|
|
29
|
+
same handoff and that list. A subagent that already returned cannot pick up consent recorded
|
|
30
|
+
after it was spawned. If you cannot ask, or the developer declines, take the feature stop
|
|
31
|
+
route below.
|
|
32
|
+
|
|
13
33
|
Report each attempt at the proof as it ends, counting from one:
|
|
14
34
|
|
|
15
35
|
```text
|
|
16
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
36
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase journey-attempted --attempt 1
|
|
17
37
|
```
|
|
18
38
|
|
|
19
39
|
Report each repair cycle the same way, counting from one:
|
|
20
40
|
|
|
21
41
|
```text
|
|
22
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
42
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase repair-attempted --attempt 1
|
|
23
43
|
```
|
|
24
44
|
|
|
25
45
|
After the final attempt, report the gate exactly once:
|
|
26
46
|
|
|
27
47
|
```text
|
|
28
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
48
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
29
49
|
```
|
|
30
50
|
|
|
31
51
|
Use `passed` only for a proved generated UI, `failed` for an attempted proof that failed,
|
|
32
|
-
and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.
|
|
52
|
+
and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard audit`.
|
|
33
53
|
Continue only when it starts with `Status: passed`.
|
|
34
54
|
|
|
35
55
|
If the audit fails, never repair, reset, or revert a protected path. Compare each named path
|
|
@@ -37,16 +57,16 @@ with the proof subagent's `Files changed` section. If that section does not name
|
|
|
37
57
|
run `onboard protect --accept-external --path <path>`, or
|
|
38
58
|
`onboard protect --accept-credential --path <path>` for an env file where the developer
|
|
39
59
|
placed a requested credential. If the subagent names the path, or its report does not settle
|
|
40
|
-
who changed it,
|
|
41
|
-
|
|
42
|
-
Run the audit again after each accepted
|
|
60
|
+
who changed it, the change is this run's own, made without consent. Do not ask the developer
|
|
61
|
+
to allow it: the CLI refuses consent for a path that already changed. Route out, and name
|
|
62
|
+
the path and the change the audit reports. Run the audit again after each accepted change.
|
|
43
63
|
|
|
44
64
|
If the audit still fails, or starts with `Status: blocked`, route out and stop:
|
|
45
65
|
|
|
46
66
|
```text
|
|
47
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
67
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
|
|
48
68
|
```
|
|
49
69
|
|
|
50
70
|
When the audit passes, run
|
|
51
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
71
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/complete` with the outcome actually
|
|
52
72
|
observed.
|
|
@@ -6,7 +6,7 @@ implementation, and proof subagents, all restricted to the target project direct
|
|
|
6
6
|
Before any subagent or project process runs, capture the developer's existing work:
|
|
7
7
|
|
|
8
8
|
```text
|
|
9
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
9
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect
|
|
10
10
|
```
|
|
11
11
|
|
|
12
12
|
Keep the exact protected path list it prints and give that list to every subagent. No
|
|
@@ -16,15 +16,13 @@ approved authorization before implementation.
|
|
|
16
16
|
Before edits, have a research subagent identify the current CopilotKit runtime route,
|
|
17
17
|
provider/chat component, agent id, package versions, existing middleware, sandbox/CSP
|
|
18
18
|
constraints, and normal test/dev commands. Prove the existing app first with `/info`,
|
|
19
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
20
|
-
and a real frontend request when browser control is available.
|
|
21
|
-
OSS CopilotKit app with a proven round trip, change nothing and direct the developer to the
|
|
22
|
-
generic onboarding path first.
|
|
19
|
+
`npx --prefer-offline --yes copilotkit@4.17.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
|
|
20
|
+
and a real frontend request when browser control is available.
|
|
23
21
|
|
|
24
22
|
Wait for the inspection subagent to finish. Then report that the inspection came back:
|
|
25
23
|
|
|
26
24
|
```text
|
|
27
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
25
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase research-returned
|
|
28
26
|
```
|
|
29
27
|
|
|
30
28
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -34,7 +32,7 @@ If the inspection did not prove the baseline this intent extends, stop here with
|
|
|
34
32
|
changing files:
|
|
35
33
|
|
|
36
34
|
```text
|
|
37
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
35
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
|
|
38
36
|
```
|
|
39
37
|
|
|
40
38
|
Do not sign in, select an Intelligence project, create credentials, change the existing
|
|
@@ -56,7 +54,7 @@ one.
|
|
|
56
54
|
After approval, record each approved path before implementation:
|
|
57
55
|
|
|
58
56
|
```text
|
|
59
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
57
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
|
|
60
58
|
```
|
|
61
59
|
|
|
62
60
|
If an approved path changed after capture and no implementation step has run, add
|
|
@@ -66,7 +64,7 @@ authorize a path the approved plan did not list.
|
|
|
66
64
|
Then report the plan this run is about to implement:
|
|
67
65
|
|
|
68
66
|
```text
|
|
69
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
67
|
+
npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase plan-written
|
|
70
68
|
```
|
|
71
69
|
|
|
72
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
70
|
+
Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/open-generative-ui/implement`.
|