copilotkit 4.29.0 → 4.30.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 +311 -33
- package/cli-build-info.json +7 -7
- package/exporters/claude-sdk/README.md +93 -0
- package/exporters/claude-sdk/export_session_store.py +39 -0
- package/exporters/claude-sdk/store-export.ts +61 -0
- package/index.js +212561 -109267
- package/onboarding/index.json +51 -5
- package/onboarding/prompts/authenticate/start.md +51 -49
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +15 -15
- package/onboarding/prompts/credentials/plan.md +25 -29
- package/onboarding/prompts/credentials/settle-credentials.md +13 -8
- package/onboarding/prompts/credentials/write-plan.md +18 -16
- package/onboarding/prompts/deployment/choose-local.md +13 -12
- package/onboarding/prompts/deployment/local-evaluation.md +11 -11
- package/onboarding/prompts/fallback/best-effort.md +10 -11
- package/onboarding/prompts/feature/a2ui/implement.md +7 -5
- package/onboarding/prompts/feature/a2ui/plan.md +7 -3
- package/onboarding/prompts/feature/a2ui/proof.md +8 -6
- package/onboarding/prompts/feature/a2ui/start.md +10 -10
- package/onboarding/prompts/feature/channels/implement.md +10 -8
- package/onboarding/prompts/feature/channels/plan.md +9 -5
- package/onboarding/prompts/feature/channels/proof.md +8 -6
- package/onboarding/prompts/feature/channels/start.md +17 -13
- package/onboarding/prompts/feature/chat-suggestions/implement.md +7 -5
- package/onboarding/prompts/feature/chat-suggestions/plan.md +7 -3
- package/onboarding/prompts/feature/chat-suggestions/proof.md +8 -6
- package/onboarding/prompts/feature/chat-suggestions/start.md +10 -10
- package/onboarding/prompts/feature/complete.md +3 -3
- package/onboarding/prompts/feature/learning/implement.md +15 -13
- package/onboarding/prompts/feature/learning/plan.md +8 -4
- package/onboarding/prompts/feature/learning/proof.md +16 -14
- package/onboarding/prompts/feature/learning/start.md +10 -10
- package/onboarding/prompts/feature/open-generative-ui/implement.md +7 -5
- package/onboarding/prompts/feature/open-generative-ui/plan.md +7 -3
- package/onboarding/prompts/feature/open-generative-ui/proof.md +8 -6
- package/onboarding/prompts/feature/open-generative-ui/start.md +10 -10
- package/onboarding/prompts/feature/realtime-sync/implement.md +8 -6
- package/onboarding/prompts/feature/realtime-sync/plan.md +7 -3
- package/onboarding/prompts/feature/realtime-sync/proof.md +8 -6
- package/onboarding/prompts/feature/realtime-sync/start.md +9 -9
- package/onboarding/prompts/feature/rich-threads/implement.md +9 -7
- package/onboarding/prompts/feature/rich-threads/plan.md +7 -3
- package/onboarding/prompts/feature/rich-threads/proof.md +8 -6
- package/onboarding/prompts/feature/rich-threads/start.md +9 -9
- package/onboarding/prompts/feature/stop.md +4 -4
- package/onboarding/prompts/feature/voice/implement.md +7 -5
- package/onboarding/prompts/feature/voice/plan.md +8 -4
- package/onboarding/prompts/feature/voice/proof.md +8 -6
- package/onboarding/prompts/feature/voice/start.md +10 -10
- package/onboarding/prompts/framework/ag2.md +4 -11
- package/onboarding/prompts/framework/agno.md +4 -11
- 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 -12
- package/onboarding/prompts/framework/custom-ag-ui.md +5 -11
- package/onboarding/prompts/framework/deep-agents.md +5 -11
- package/onboarding/prompts/framework/google-adk.md +4 -8
- package/onboarding/prompts/framework/langgraph-fastapi.md +4 -10
- package/onboarding/prompts/framework/langgraph-python.md +4 -10
- package/onboarding/prompts/framework/langgraph-typescript.md +5 -11
- package/onboarding/prompts/framework/llamaindex.md +4 -10
- package/onboarding/prompts/framework/mastra.md +4 -10
- package/onboarding/prompts/framework/ms-agent-dotnet.md +6 -13
- package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +7 -13
- package/onboarding/prompts/framework/ms-agent-python.md +5 -11
- package/onboarding/prompts/framework/pydantic-ai.md +4 -10
- package/onboarding/prompts/framework/strands-python.md +4 -10
- package/onboarding/prompts/framework/strands-typescript.md +4 -10
- package/onboarding/prompts/frontend/angular.md +4 -4
- package/onboarding/prompts/frontend/nextjs.md +4 -4
- package/onboarding/prompts/frontend/plan.md +10 -10
- 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 +33 -16
- package/onboarding/prompts/proof/complete.md +22 -19
- package/onboarding/prompts/proof/oss-baseline.md +6 -6
- package/onboarding/prompts/proof/round-trip.md +34 -14
- package/onboarding/prompts/research/gather.md +15 -15
- package/onboarding/prompts/research/merge.md +6 -5
- package/onboarding/prompts/research/preflight.md +2 -2
- package/onboarding/prompts/research/route.md +4 -4
- package/onboarding/prompts/setup/questions.md +10 -8
- package/onboarding/prompts/starter/clone.md +77 -75
- package/onboarding/prompts/starter/setup.md +111 -0
- package/onboarding/prompts/stopped/declined.md +44 -0
- package/onboarding/prompts/stopped/run-failed.md +6 -6
- package/onboarding/prompts/subagent/create-plan.md +5 -5
- package/onboarding/prompts/subagent/implement-and-validate.md +4 -4
- package/onboarding/prompts/subagent/inspect-repository.md +1 -1
- package/onboarding/prompts/subagent/prove-oss-baseline.md +2 -2
- package/onboarding/prompts/subagent/prove-round-trip.md +21 -8
- package/onboarding/prompts/unsupported/no-validated-path.md +6 -6
- package/package.json +4 -1
- package/release/release-tool.js +383 -112
|
@@ -13,7 +13,7 @@ acted on. Send one short report before you stop. The friction command follows th
|
|
|
13
13
|
setting the developer already chose, so it needs no separate question.
|
|
14
14
|
|
|
15
15
|
```text
|
|
16
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
16
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -50,14 +50,14 @@ Any other file the plan does not name comes back as a result that starts with
|
|
|
50
50
|
developer, not a run that broke. Pause: name the file and why the
|
|
51
51
|
work needs it, then end your turn and wait for the developer's answer. If they allow it,
|
|
52
52
|
spawn a fresh implementation subagent with the same handoff. Add that file to the handoff
|
|
53
|
-
as a path the developer approved, and record it as a departure. If
|
|
54
|
-
|
|
53
|
+
as a path the developer approved, and record it as a departure. If the developer declines,
|
|
54
|
+
run `npx --prefer-offline --yes copilotkit@4.30.0 onboard read stopped/declined --message "<their reason>"`. If you cannot ask, the failure ending in the route-out rules below applies.
|
|
55
55
|
|
|
56
56
|
This prompt pauses for the developer in several places. Before you end your turn to wait
|
|
57
57
|
for the developer, report the pause:
|
|
58
58
|
|
|
59
59
|
```text
|
|
60
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
60
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase awaiting-developer --about uncommitted-file
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
The existing agent's behavior is never a departure to record and carry on from. It is four
|
|
@@ -74,7 +74,7 @@ declines, use the route-out rules below.
|
|
|
74
74
|
Before you end your turn to wait for the developer, report the pause:
|
|
75
75
|
|
|
76
76
|
```text
|
|
77
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
77
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase awaiting-developer --about agent-change
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
## The developer's uncommitted files
|
|
@@ -97,12 +97,12 @@ or from an environment variable.
|
|
|
97
97
|
If the CLI prints `## Stop: this run deleted or moved the developer's work` instead of a
|
|
98
98
|
step, show the developer the list it printed, and run what they choose:
|
|
99
99
|
the `onboard restore` command the tripwire stop prints, which names each deleted file, or
|
|
100
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
100
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard tripwire --continue`. Then read the step again. If
|
|
101
101
|
you cannot ask, use the route-out rules below. Before you end your turn to wait for the
|
|
102
102
|
developer, report the pause:
|
|
103
103
|
|
|
104
104
|
```text
|
|
105
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
105
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase awaiting-developer --about restore-files
|
|
106
106
|
```
|
|
107
107
|
|
|
108
108
|
## Implement the plan
|
|
@@ -116,7 +116,7 @@ Run this from the target app directory. The developer saw the id in the plan, so
|
|
|
116
116
|
the first point at which it can be created:
|
|
117
117
|
|
|
118
118
|
```text
|
|
119
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
119
|
+
npx --prefer-offline --yes copilotkit@4.30.0 learning containers create --id <id> --name <name> --json
|
|
120
120
|
```
|
|
121
121
|
|
|
122
122
|
Pass the id the plan names. Take the name from the selected project's own display name, so
|
|
@@ -133,7 +133,7 @@ When you start a subagent in the background, tell the developer in one sentence
|
|
|
133
133
|
does. Then send nothing more until it returns.
|
|
134
134
|
|
|
135
135
|
Spawn one implementation subagent. Tell it to run
|
|
136
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
136
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read subagent/implement-and-validate` first and
|
|
137
137
|
follow the prompt it returns. Tell it to return at once, and say so, if that read is refused
|
|
138
138
|
or fails, and not to wait for an approval. If it returns that way, stop that subagent. Run
|
|
139
139
|
the same command yourself, then spawn a fresh subagent with the returned prompt and the same
|
|
@@ -151,7 +151,7 @@ the subagent returned.
|
|
|
151
151
|
If the subagent returns because its harness refused any other command, record that return:
|
|
152
152
|
|
|
153
153
|
```text
|
|
154
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
154
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase subagent-returned --brief implement-and-validate --result refused
|
|
155
155
|
```
|
|
156
156
|
|
|
157
157
|
Then run that command yourself, from the directory the subagent named. Spawn at most one
|
|
@@ -183,7 +183,7 @@ Report it and take the failure ending.
|
|
|
183
183
|
If the implementation result does not start with `Status: passed`, do not continue to proof.
|
|
184
184
|
|
|
185
185
|
Then run
|
|
186
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
186
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read proof/round-trip`.
|
|
187
187
|
|
|
188
188
|
## Repair rules
|
|
189
189
|
|
|
@@ -207,13 +207,30 @@ A run that broke takes the failure ending: the failure is in code this run did n
|
|
|
207
207
|
the same command still fails after three repair attempts, a result starts with
|
|
208
208
|
`Status: blocked` for a reason other than a file the plan does not name or a missing Learning
|
|
209
209
|
Container before the one restart, a missing Learning Container after the one restart, or the
|
|
210
|
-
developer
|
|
211
|
-
declined a file the plan does not name, or the run cannot ask them about it. A defect in a
|
|
210
|
+
run cannot ask the developer about a file the plan does not name. A defect in a
|
|
212
211
|
package this run installed is not a stack CopilotKit does not serve, and a command this run
|
|
213
|
-
cannot get to pass is not one either. In those cases run
|
|
214
|
-
|
|
212
|
+
cannot get to pass is not one either. In those cases run:
|
|
213
|
+
|
|
214
|
+
```text
|
|
215
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard read stopped/run-failed --reason <reason> --message "<one line>"
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
The read refuses to serve the ending without `--reason`, because the command that failed
|
|
219
|
+
is usually your own, such as `next build`, `tsc` or `pytest`, and the CLI cannot see it.
|
|
220
|
+
Pick the one reason that fits what stopped the run:
|
|
221
|
+
|
|
222
|
+
- `build`: the app's build or dev server failed.
|
|
223
|
+
- `typecheck`: the type checker failed, such as `tsc` or `mypy`.
|
|
224
|
+
- `dependency-install`: a package install or resolve failed.
|
|
225
|
+
- `model-call`: a call to the model provider failed or was refused.
|
|
226
|
+
- `docs-gap`: the documentation did not cover a step the plan needs.
|
|
227
|
+
- `other`: none of these.
|
|
228
|
+
|
|
229
|
+
`--message` is one line: the command that failed and what it printed, in your own words.
|
|
230
|
+
Send no secrets, source code, logs, or command output. A developer who said no is not a
|
|
231
|
+
failure: that run reads `stopped/declined`, as above.
|
|
215
232
|
|
|
216
233
|
A plan with no path to follow takes the unsupported ending: the fix requires changing the
|
|
217
234
|
developer's existing agent or frontend, or the documentation does not support the plan. In
|
|
218
235
|
those cases run
|
|
219
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
236
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read unsupported/no-validated-path`.
|
|
@@ -24,7 +24,7 @@ friction commands follow the telemetry setting the developer already chose, so t
|
|
|
24
24
|
separate question.
|
|
25
25
|
|
|
26
26
|
```text
|
|
27
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
27
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
Put one or two sentences in `--message`. Pick one category from docs-missing, docs-wrong,
|
|
@@ -46,7 +46,7 @@ Pass the surface-check outcome the proof subagent returned, not the one you want
|
|
|
46
46
|
web frontend, pass `--visual-check` and the URL the browser opened, unchanged:
|
|
47
47
|
|
|
48
48
|
```text
|
|
49
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
49
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard complete --visual-check <outcome> \
|
|
50
50
|
--frontend-url <the url you opened>
|
|
51
51
|
```
|
|
52
52
|
|
|
@@ -74,7 +74,7 @@ this graph opens.
|
|
|
74
74
|
nothing drove the frontend:
|
|
75
75
|
|
|
76
76
|
```text
|
|
77
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
77
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard complete --visual-check failed --blocked-by browser-control-unresponsive
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
## Write the handoff
|
|
@@ -83,30 +83,33 @@ If the command reports the run as blocked, say so in the first line and name the
|
|
|
83
83
|
it lists as missing. Do not call the run finished, working, or ready. A blocked run is
|
|
84
84
|
still owed the full handoff.
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
86
|
+
A finished run prints a message to the developer: a first line that says what works, the
|
|
87
|
+
facts as a list, and how to add the CopilotKit skills. Write that message in your reply,
|
|
88
|
+
word for word, with no heading or preface before it. A blocked run prints the same facts
|
|
89
|
+
after its verdict: write them the same way. Then write the `## Your files` section as
|
|
90
|
+
printed, with its restore commands. A run that started in an empty folder prints no such
|
|
91
|
+
section: list no files and offer no restore.
|
|
90
92
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
the report says the run started in an empty folder, relay that one line alone: list no
|
|
94
|
-
files and offer no restore. The dashboard line there only tells the developer where the
|
|
95
|
-
dashboard is. Do not open it. Nothing in this graph gates on the dashboard. Then add what
|
|
96
|
-
only you can say:
|
|
93
|
+
For `skipped-no-browser-tool`, the message already says to open the page. Add no line,
|
|
94
|
+
heading, or opening sentence about the missing browser.
|
|
97
95
|
|
|
98
|
-
|
|
96
|
+
The dashboard line only tells the developer where the dashboard is. Do not open it. Nothing
|
|
97
|
+
in this graph gates on the dashboard. Then add what only you can say:
|
|
98
|
+
|
|
99
|
+
- What the project now does, and the first thing to try in it. Where the report already
|
|
100
|
+
names one, add no other.
|
|
99
101
|
- What changed since the developer approved the plan: every path, version, or step the run
|
|
100
|
-
departed from, and why. Where nothing departed,
|
|
102
|
+
departed from, and why. Where nothing departed, write nothing about it. A file the approved
|
|
101
103
|
plan named under `Files the run writes itself` is not a departure.
|
|
102
104
|
- A page-context warning the proof recorded: name the framework, and say that the page's data
|
|
103
105
|
does not reach its model yet.
|
|
104
|
-
-
|
|
105
|
-
provider, or its memory. Name each one and its file,
|
|
106
|
-
Where none changed, write `none`.
|
|
106
|
+
- When the project had an agent before this run, every change to its behavior: its
|
|
107
|
+
instructions, its tools, its model or provider, or its memory. Name each one and its file,
|
|
108
|
+
and say the developer approved it. Where none changed, write `none`. When the project had
|
|
109
|
+
no agent before this run, write nothing about it.
|
|
107
110
|
- On a conversion, the criterion this run was judged against, in the words the run was
|
|
108
111
|
given.
|
|
109
|
-
- Where this run proved
|
|
112
|
+
- Where this run proved AG-UI Streams: they keep messages, generative UI, tool interactions,
|
|
110
113
|
and application state, so users can return to earlier work. The same conversations give
|
|
111
114
|
Automatic Learning its evidence.
|
|
112
115
|
- Where the facts name a Learning Container: new conversations go to it. Automatic
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Prove the existing OSS baseline
|
|
2
2
|
|
|
3
3
|
Do not prove the baseline yourself. Spawn one proof subagent. Tell it to run
|
|
4
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
4
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read subagent/prove-oss-baseline` first and follow
|
|
5
5
|
the prompt it returns. Tell it to return at once, and say so, if that read is refused or
|
|
6
6
|
fails, and not to wait for an approval. If it returns that way, stop that subagent. Run the
|
|
7
7
|
same command yourself, then spawn a fresh subagent with the returned prompt and the same
|
|
@@ -25,7 +25,7 @@ the subagent returned.
|
|
|
25
25
|
If the subagent returns because its harness refused any other command, record that return:
|
|
26
26
|
|
|
27
27
|
```text
|
|
28
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
28
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase subagent-returned --brief prove-oss-baseline --result refused
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
Then run that command yourself, from the directory the subagent named. Spawn at most one
|
|
@@ -37,7 +37,7 @@ If the fresh subagent is refused a command too, spawn no other. Follow the
|
|
|
37
37
|
Record what that proof returned before you route on it:
|
|
38
38
|
|
|
39
39
|
```text
|
|
40
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
40
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
Report the gate whatever it returned. Use the list below. A proof that never ran is `skipped`, not failed. The command prints one line and sends
|
|
@@ -59,7 +59,7 @@ Do not change project files before this proof ends. Starting existing developmen
|
|
|
59
59
|
processes and their ignored runtime files is allowed.
|
|
60
60
|
|
|
61
61
|
If the subagent proves the `both-oss` predicate, keep its evidence with the plan and run
|
|
62
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
62
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read conversion/plan`. That project already works.
|
|
63
63
|
What it needs is the conversion, not a build.
|
|
64
64
|
|
|
65
65
|
A failed baseline does not end the run, and this step does not repair it. Decide which
|
|
@@ -74,7 +74,7 @@ pass. This proof only reads.
|
|
|
74
74
|
A failed baseline whose cause is in the project is the starting state of this project. So
|
|
75
75
|
is an operational failure still there after the third attempt. Record the starting state
|
|
76
76
|
`both-copilotkit-unproved` and run
|
|
77
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
77
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read credentials/plan`. This prompt is served
|
|
78
78
|
whenever a project looks like an OSS integration, so a baseline that did not prove is an
|
|
79
79
|
ordinary starting state rather than a failure. The build that follows fixes the
|
|
80
80
|
integration, and `proof/round-trip` proves the result, with its own bounded repair cycle.
|
|
@@ -94,5 +94,5 @@ operational. Run the proof again, three times in total, then record the starting
|
|
|
94
94
|
above and go on. Both causes lead to the same plan.
|
|
95
95
|
|
|
96
96
|
If the proof cannot identify the running process safely, or it exposes a secret, run
|
|
97
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
97
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read stopped/run-failed --reason other`. Neither means the
|
|
98
98
|
project is unsupported: each means this run did not establish what it needed to.
|
|
@@ -1,7 +1,24 @@
|
|
|
1
1
|
# Prove the user journey
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
Run the proof checks once yourself first, from the target app directory:
|
|
4
|
+
|
|
5
|
+
```text
|
|
6
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard proof-check --json
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Add `--server <directory>=<command>` for an agent that the approved plan starts outside the
|
|
10
|
+
app. When the runtime declares more than one agent, add `--agent <id>` with the agent id
|
|
11
|
+
from the approved plan.
|
|
12
|
+
<!-- sandboxed-harness -->
|
|
13
|
+
If your harness runs commands in a sandbox, request escalation for this command.
|
|
14
|
+
<!-- /sandboxed-harness -->
|
|
15
|
+
If it prints an `earlyReport`, show that text to the developer as it is, and go on. Do not
|
|
16
|
+
repair anything on this result. Give its result to the first proof subagent only, not to
|
|
17
|
+
one spawned after a repair. If your harness refuses the command, go on without it.
|
|
18
|
+
|
|
19
|
+
Apart from that one command, do not do the proof work yourself. Spawn one proof
|
|
20
|
+
subagent. Tell it to run
|
|
21
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read subagent/prove-round-trip` first and follow the
|
|
5
22
|
prompt it returns. Tell it to return at once, and say so, if that read is refused or fails,
|
|
6
23
|
and not to wait for an approval. If it returns that way, stop that subagent. Run the same
|
|
7
24
|
command yourself, then spawn a fresh subagent with the returned prompt and the same handoff.
|
|
@@ -44,7 +61,7 @@ the subagent returned.
|
|
|
44
61
|
If the subagent returns because its harness refused any other command, record that return:
|
|
45
62
|
|
|
46
63
|
```text
|
|
47
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
64
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase subagent-returned --brief prove-round-trip --result refused
|
|
48
65
|
```
|
|
49
66
|
|
|
50
67
|
Then run that command yourself, from the directory the subagent named. Spawn at most one
|
|
@@ -56,7 +73,7 @@ If the fresh subagent is refused a command too, spawn no other. Follow the
|
|
|
56
73
|
Record what that proof returned before you route on it:
|
|
57
74
|
|
|
58
75
|
```text
|
|
59
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
76
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
60
77
|
```
|
|
61
78
|
|
|
62
79
|
Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. A
|
|
@@ -68,7 +85,7 @@ the next one starts. Until then, `onboard proof-check` counts the next failure a
|
|
|
68
85
|
If the CLI prints `## Stop: this run deleted or moved the developer's work` instead of a
|
|
69
86
|
step, show the developer the list it printed, and run what they choose:
|
|
70
87
|
the `onboard restore` command the tripwire stop prints, which names each deleted file, or
|
|
71
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
88
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard tripwire --continue`. Then read the step again. If
|
|
72
89
|
you cannot ask, use the route-out rules below.
|
|
73
90
|
|
|
74
91
|
Never repair, reset, or revert a file the developer changed outside this run. That holds for
|
|
@@ -81,17 +98,17 @@ This prompt pauses for the developer in several places. Before you end your turn
|
|
|
81
98
|
for the developer, report the pause. For the tripwire choice:
|
|
82
99
|
|
|
83
100
|
```text
|
|
84
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
101
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase awaiting-developer --about restore-files
|
|
85
102
|
```
|
|
86
103
|
|
|
87
104
|
For a file the plan does not name:
|
|
88
105
|
|
|
89
106
|
```text
|
|
90
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
107
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase awaiting-developer --about uncommitted-file
|
|
91
108
|
```
|
|
92
109
|
|
|
93
110
|
If the proof result starts with `Status: passed`, run
|
|
94
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
111
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read proof/complete`. A skipped
|
|
95
112
|
surface outcome still enters `proof/complete`. The CLI records `skipped-cloned-starter` and
|
|
96
113
|
`skipped-no-browser-tool` after a passed round trip as complete, and `skipped-no-device` as
|
|
97
114
|
blocked. Do not describe a
|
|
@@ -117,7 +134,7 @@ credentials step found the model key missing, or the vendor refused it, and the
|
|
|
117
134
|
started nothing. Do not send it to a repair worker. Run the `onboard credentials` command
|
|
118
135
|
that its detail names, and act on its answer as `credentials/settle-credentials` says. Ask
|
|
119
136
|
the developer its question, report the pause with
|
|
120
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
137
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase awaiting-model-credential`, and
|
|
121
138
|
end your turn. When the key settles, run the proof subagent again. If you have not recorded
|
|
122
139
|
this attempt yet, record it first, with the outcome it ended with. This attempt does not
|
|
123
140
|
count toward the three.
|
|
@@ -144,7 +161,7 @@ fault, so this is not a route-out. Ask the developer to send one message in the
|
|
|
144
161
|
thread, and to give you that thread's id. Give them the app URL and the request words from
|
|
145
162
|
the result. Tell them where the id is: in the browser's network tools, the request the page
|
|
146
163
|
sends to the runtime URL carries `threadId` in its body. Report the pause with
|
|
147
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
164
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase awaiting-developer --about thread-id` and end your
|
|
148
165
|
turn. When the developer gives the id, start a new proof subagent with
|
|
149
166
|
the full original proof handoff, the pinned Step 1 record, and the thread id. Tell it to run
|
|
150
167
|
the proof checks with `--thread <id>`. This attempt does not count toward the three. Use the
|
|
@@ -193,7 +210,7 @@ the files the developer allowed.
|
|
|
193
210
|
Before you end your turn to wait for the developer, report the pause:
|
|
194
211
|
|
|
195
212
|
```text
|
|
196
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
213
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase awaiting-developer --about uncommitted-file
|
|
197
214
|
```
|
|
198
215
|
|
|
199
216
|
Restart each project-owned process changed by the repair. Then spawn a fresh proof subagent
|
|
@@ -211,10 +228,13 @@ takes the developer path above instead.
|
|
|
211
228
|
|
|
212
229
|
Route out only when the failure is not yours to fix, when the same proof still fails after
|
|
213
230
|
three attempts, or when no evidence of the round trip can be produced. In those cases run
|
|
214
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
231
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read stopped/run-failed --reason <reason>`. The stack is supported:
|
|
215
232
|
this run did not finish, which is a different ending and a different report. All three are
|
|
216
233
|
about the round trip itself. A round trip that proved is not one of them, whatever failed
|
|
217
|
-
after it.
|
|
234
|
+
after it. For `<reason>`, pick the one of `model-call`, `build`, `typecheck`,
|
|
235
|
+
`dependency-install`, `docs-gap`, or `other` that names what stopped the round trip.
|
|
236
|
+
When the developer declined what the proof needs, the run did not break: run
|
|
237
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read stopped/declined --message "<their reason>"` instead.
|
|
218
238
|
|
|
219
239
|
If you stop here without taking that route -- a repair cycle you cannot finish, a limit in
|
|
220
240
|
your own harness, a run that has run out -- send one short report before you stop. The
|
|
@@ -222,7 +242,7 @@ friction command follows the telemetry setting the developer already chose, so i
|
|
|
222
242
|
separate question.
|
|
223
243
|
|
|
224
244
|
```text
|
|
225
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
245
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
226
246
|
```
|
|
227
247
|
|
|
228
248
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Gather the evidence this run routes on
|
|
2
2
|
|
|
3
|
-
The developer can still be signing in.
|
|
3
|
+
The developer can still be signing in. When a login process runs, keep reading it as
|
|
4
4
|
`authenticate/start` says while this phase runs. This phase inspects the project and proves
|
|
5
5
|
what this environment can drive. Do not change application code here, and do not ask the
|
|
6
6
|
developer a setup question yet, except the setup message below: every other read-only
|
|
@@ -15,10 +15,10 @@ own bookkeeping. Say what the run is doing in the developer's words instead.
|
|
|
15
15
|
|
|
16
16
|
Every later command must run from the directory this run is bound to. Elsewhere, the
|
|
17
17
|
command cannot find its run and refuses. Do not report that refusal as a stop. Run
|
|
18
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
18
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard start --run <onboarding_run_id>` where you are
|
|
19
19
|
standing, then run the refused command again.
|
|
20
20
|
|
|
21
|
-
If you no longer hold the id, run `npx --prefer-offline --yes copilotkit@4.
|
|
21
|
+
If you no longer hold the id, run `npx --prefer-offline --yes copilotkit@4.30.0 onboard start` in the
|
|
22
22
|
directory this run started in, with no `--run` and no `--intent`. It reprints the id
|
|
23
23
|
and starts nothing. An id this project does not already hold starts a second
|
|
24
24
|
run, and the work already done stops counting toward the first.
|
|
@@ -70,7 +70,7 @@ spawn no other: do the brief yourself.
|
|
|
70
70
|
Record each research result, since a research subagent runs no onboarding command:
|
|
71
71
|
|
|
72
72
|
```text
|
|
73
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
73
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase subagent-returned --brief inspect-repository --result <ok|refused|failed>
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
`ok` is `Status: passed`, `failed` is failed or blocked, and `refused` names a refused
|
|
@@ -97,10 +97,10 @@ When that thing arrives, continue. A pause waits for one of two things:
|
|
|
97
97
|
Before you end your turn to wait for the developer, report the pause:
|
|
98
98
|
|
|
99
99
|
```text
|
|
100
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
100
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase awaiting-developer --about <question>
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
Use the question the asking prompt names, or else the closest of: `harness-permission`,
|
|
103
|
+
Use the question the asking prompt names, or else the closest of: `welcome`, `harness-permission`,
|
|
104
104
|
`sign-in`, `setup-answers`, `stack-choice`, `project-name`, `which-project`,
|
|
105
105
|
`env-file-tracked`, `local-connection`, `local-terms`, `existing-folder`,
|
|
106
106
|
`environment-fix`, `uncommitted-file`, `agent-change`, `restore-files`, `thread-id`,
|
|
@@ -110,7 +110,7 @@ a run that died.
|
|
|
110
110
|
|
|
111
111
|
When the answer or the result arrives, continue from the step that paused. Do not read an
|
|
112
112
|
earlier prompt again, send the welcome again, or start a new run. If you lost the step you
|
|
113
|
-
were on, run `npx --prefer-offline --yes copilotkit@4.
|
|
113
|
+
were on, run `npx --prefer-offline --yes copilotkit@4.30.0 onboard route`. Skip every `subagent/` entry: a
|
|
114
114
|
subagent read that brief. The last step left is that step. Read it again with `onboard read`. A pause is not a stop. It sends no stop report.
|
|
115
115
|
|
|
116
116
|
## When a subagent cannot work
|
|
@@ -125,7 +125,7 @@ Both research subagents failing means this harness has no working subagent at al
|
|
|
125
125
|
is worth recording once:
|
|
126
126
|
|
|
127
127
|
```text
|
|
128
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
128
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase delegation-unavailable
|
|
129
129
|
```
|
|
130
130
|
|
|
131
131
|
Then tell the developer once that this environment has no working subagents, so you do
|
|
@@ -138,8 +138,8 @@ Prepare two research assignments. Before you spawn either subagent, run these tw
|
|
|
138
138
|
read-only commands yourself, from the target project directory:
|
|
139
139
|
|
|
140
140
|
```text
|
|
141
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
142
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
141
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard read subagent/inspect-repository
|
|
142
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard inspect --json
|
|
143
143
|
```
|
|
144
144
|
|
|
145
145
|
Give each research subagent the prompt that the first command returns, the whole JSON that
|
|
@@ -165,13 +165,13 @@ names no Channel (as `research/route` lists), and the `onboard inspect` JSON sho
|
|
|
165
165
|
- A frontend and no agent: `detection.frontend` has a `match`, and
|
|
166
166
|
`detection.agentFramework` has an empty `matched` and an empty `unmatched`.
|
|
167
167
|
|
|
168
|
-
Once
|
|
169
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
168
|
+
Once sign-in is done, read the setup questions now:
|
|
169
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read setup/questions`. Record the frontend from
|
|
170
170
|
`detection` first.
|
|
171
171
|
Show the message. Before you end your turn to wait for the developer, report the pause:
|
|
172
172
|
|
|
173
173
|
```text
|
|
174
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
174
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase awaiting-developer --about setup-answers
|
|
175
175
|
```
|
|
176
176
|
|
|
177
177
|
Then continue below: the preflight and the merge do not wait for the reply. When the
|
|
@@ -185,8 +185,8 @@ the research first.
|
|
|
185
185
|
The research is under way. Continue to the surface-control preflight while it runs:
|
|
186
186
|
|
|
187
187
|
```text
|
|
188
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
188
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard read research/preflight
|
|
189
189
|
```
|
|
190
190
|
|
|
191
191
|
If inspection stops onboarding, run
|
|
192
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
192
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read stopped/run-failed --reason other`.
|
|
@@ -45,17 +45,18 @@ environment row. If either packet gives no match or more than one match, send ea
|
|
|
45
45
|
worker a focused directory check. Continue only when both workers return the same one target
|
|
46
46
|
app directory. Both results must start with `Status: passed`. Otherwise, use the stop route.
|
|
47
47
|
|
|
48
|
-
Read the next step only after
|
|
49
|
-
|
|
48
|
+
Read the next step only after sign-in is done: `onboard begin` confirmed the session, or
|
|
49
|
+
`login --json` emitted `type: completed`. Until then, keep reading the login process. End
|
|
50
|
+
your turn and wait for the developer only after it writes `type: pause`: that is a pause.
|
|
50
51
|
|
|
51
52
|
Before you end your turn to wait for the developer, report the pause:
|
|
52
53
|
|
|
53
54
|
```text
|
|
54
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
55
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase awaiting-developer --about sign-in
|
|
55
56
|
```
|
|
56
57
|
|
|
57
58
|
When both research results are merged and sign-in is done, run
|
|
58
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
59
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read research/route`.
|
|
59
60
|
|
|
60
61
|
If inspection stops onboarding, run
|
|
61
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
62
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read stopped/run-failed --reason other`.
|
|
@@ -32,8 +32,8 @@ Where the device probe found no booted device, that is the whole finding.
|
|
|
32
32
|
Then merge the research:
|
|
33
33
|
|
|
34
34
|
```text
|
|
35
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
35
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard read research/merge
|
|
36
36
|
```
|
|
37
37
|
|
|
38
38
|
If inspection stops onboarding, run
|
|
39
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
39
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read stopped/run-failed --reason other`.
|
|
@@ -21,7 +21,7 @@ On any one of them, run this before you read the three findings below, and witho
|
|
|
21
21
|
the purpose question:
|
|
22
22
|
|
|
23
23
|
```text
|
|
24
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
24
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard read feature/channels/start
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
Name the provider to that node so it does not ask again. A `/slack` page names Slack. A
|
|
@@ -82,7 +82,7 @@ settle these three from your own reading of the project. Each one comes from the
|
|
|
82
82
|
packets or it is not proved.
|
|
83
83
|
|
|
84
84
|
If all three are proved, prove the live starting state before any project file changes. Run
|
|
85
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
85
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read proof/oss-baseline`.
|
|
86
86
|
|
|
87
87
|
Route there before any other question to the developer. The questions after this prompt
|
|
88
88
|
select a framework and a frontend that the findings already name, so a developer who
|
|
@@ -91,7 +91,7 @@ application is what that node protects. Whether it works is what the proof decid
|
|
|
91
91
|
these three findings.
|
|
92
92
|
|
|
93
93
|
For every other combination of the three, run
|
|
94
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
94
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read setup/questions`. That node asks every
|
|
95
95
|
remaining setup question in one message, including what the project is for when nothing
|
|
96
96
|
proves it.
|
|
97
97
|
|
|
@@ -102,5 +102,5 @@ the pause with `onboard checkpoint --phase awaiting-developer --about setup-answ
|
|
|
102
102
|
and do not restate the setup. Their reply continues the run.
|
|
103
103
|
|
|
104
104
|
If authentication or inspection stops onboarding, run
|
|
105
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
105
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read stopped/run-failed --reason other`. Neither says anything
|
|
106
106
|
about whether this project's stack is supported, which is not yet known at this point.
|
|
@@ -6,7 +6,7 @@ Never ask for the key itself: the message asks only for the file that holds it.
|
|
|
6
6
|
## Record what the findings already answer
|
|
7
7
|
|
|
8
8
|
Do not ask the developer for a fact that the repository or their request answers. Record
|
|
9
|
-
each one with `npx --prefer-offline --yes copilotkit@4.
|
|
9
|
+
each one with `npx --prefer-offline --yes copilotkit@4.30.0 onboard setup-answers` before you build the
|
|
10
10
|
message, so the message leaves it out:
|
|
11
11
|
|
|
12
12
|
- An agent the project already has: `--framework <name>` with its vendor and the choice
|
|
@@ -31,17 +31,17 @@ For an existing app on the managed route, the command reads the app's project it
|
|
|
31
31
|
env-file and project lines are in the same message as the key. That read creates no project
|
|
32
32
|
and writes no file. If the command prints `status: stopped`, do what its `next` says.
|
|
33
33
|
|
|
34
|
-
On the local route, first run `npx --prefer-offline --yes copilotkit@4.
|
|
34
|
+
On the local route, first run `npx --prefer-offline --yes copilotkit@4.30.0 onboard local-terms --json`.
|
|
35
35
|
If it reports `signed-out` or `unavailable`, follow its `next`. Do not add its
|
|
36
36
|
`question.ask` yourself: the setup message already carries the agreement line.
|
|
37
37
|
|
|
38
38
|
From the target app directory, run:
|
|
39
39
|
|
|
40
40
|
```text
|
|
41
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
41
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard setup-message --target <empty|existing> [--language <typescript|python|dotnet>] [--vendor <vendor>]
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
- `--target empty` for a target with no project yet, `existing
|
|
44
|
+
- `--target`: `empty` for a target with no project yet, else `existing`.
|
|
45
45
|
- `--language` is the project's language, for a project with no agent.
|
|
46
46
|
- `--vendor` is a model vendor the developer named, as `openai`, `anthropic`, `google`, or
|
|
47
47
|
`openai-compatible`.
|
|
@@ -52,13 +52,15 @@ your own reply word for word. The developer does not see your tool output. Befor
|
|
|
52
52
|
put the one short line `next` names, and add nothing else. Before you end your turn to wait for the developer, report the pause:
|
|
53
53
|
|
|
54
54
|
```text
|
|
55
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
55
|
+
npx --prefer-offline --yes copilotkit@4.30.0 onboard checkpoint --phase awaiting-developer --about setup-answers
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
End your turn and wait. If they decline, such as **no**, run
|
|
59
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read stopped/declined --message "<their reason>"`.
|
|
60
|
+
Otherwise record their
|
|
59
61
|
answers with `onboard setup-answers`, and run `onboard setup-message` again with
|
|
60
|
-
`--accept-defaults
|
|
61
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
62
|
+
`--accept-defaults`. When it prints `status: settled`, run
|
|
63
|
+
`npx --prefer-offline --yes copilotkit@4.30.0 onboard read credentials/plan`. If you came here from
|
|
62
64
|
`research/gather` before the research merged, do not read `credentials/plan` yet: finish the
|
|
63
65
|
research. If it returns and the developer has not replied, record what the findings settle
|
|
64
66
|
with `onboard setup-answers`, then end your turn and send the developer nothing. Report
|