copilotkit 4.28.0 → 4.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +6 -3
  2. package/cli-build-info.json +5 -5
  3. package/index.js +555 -196
  4. package/onboarding/index.json +2 -2
  5. package/onboarding/prompts/authenticate/start.md +32 -20
  6. package/onboarding/prompts/conversion/plan.md +3 -3
  7. package/onboarding/prompts/credentials/finalize-plan.md +15 -15
  8. package/onboarding/prompts/credentials/plan.md +24 -24
  9. package/onboarding/prompts/credentials/settle-credentials.md +7 -7
  10. package/onboarding/prompts/credentials/write-plan.md +34 -26
  11. package/onboarding/prompts/deployment/choose-local.md +9 -9
  12. package/onboarding/prompts/deployment/local-evaluation.md +12 -12
  13. package/onboarding/prompts/fallback/best-effort.md +6 -6
  14. package/onboarding/prompts/feature/a2ui/implement.md +4 -4
  15. package/onboarding/prompts/feature/a2ui/plan.md +3 -3
  16. package/onboarding/prompts/feature/a2ui/proof.md +5 -5
  17. package/onboarding/prompts/feature/a2ui/start.md +17 -8
  18. package/onboarding/prompts/feature/channels/implement.md +7 -7
  19. package/onboarding/prompts/feature/channels/plan.md +5 -5
  20. package/onboarding/prompts/feature/channels/proof.md +5 -5
  21. package/onboarding/prompts/feature/channels/start.md +18 -9
  22. package/onboarding/prompts/feature/chat-suggestions/implement.md +4 -4
  23. package/onboarding/prompts/feature/chat-suggestions/plan.md +3 -3
  24. package/onboarding/prompts/feature/chat-suggestions/proof.md +5 -5
  25. package/onboarding/prompts/feature/chat-suggestions/start.md +17 -8
  26. package/onboarding/prompts/feature/complete.md +2 -2
  27. package/onboarding/prompts/feature/learning/implement.md +12 -12
  28. package/onboarding/prompts/feature/learning/plan.md +4 -4
  29. package/onboarding/prompts/feature/learning/proof.md +13 -13
  30. package/onboarding/prompts/feature/learning/start.md +17 -8
  31. package/onboarding/prompts/feature/open-generative-ui/implement.md +4 -4
  32. package/onboarding/prompts/feature/open-generative-ui/plan.md +3 -3
  33. package/onboarding/prompts/feature/open-generative-ui/proof.md +5 -5
  34. package/onboarding/prompts/feature/open-generative-ui/start.md +17 -8
  35. package/onboarding/prompts/feature/realtime-sync/implement.md +5 -5
  36. package/onboarding/prompts/feature/realtime-sync/plan.md +3 -3
  37. package/onboarding/prompts/feature/realtime-sync/proof.md +5 -5
  38. package/onboarding/prompts/feature/realtime-sync/start.md +16 -7
  39. package/onboarding/prompts/feature/rich-threads/implement.md +6 -6
  40. package/onboarding/prompts/feature/rich-threads/plan.md +3 -3
  41. package/onboarding/prompts/feature/rich-threads/proof.md +5 -5
  42. package/onboarding/prompts/feature/rich-threads/start.md +16 -7
  43. package/onboarding/prompts/feature/stop.md +4 -4
  44. package/onboarding/prompts/feature/voice/implement.md +4 -4
  45. package/onboarding/prompts/feature/voice/plan.md +4 -4
  46. package/onboarding/prompts/feature/voice/proof.md +5 -5
  47. package/onboarding/prompts/feature/voice/start.md +17 -8
  48. package/onboarding/prompts/framework/ag2.md +3 -3
  49. package/onboarding/prompts/framework/agno.md +3 -3
  50. package/onboarding/prompts/framework/built-in.md +3 -3
  51. package/onboarding/prompts/framework/claude-sdk-python.md +3 -3
  52. package/onboarding/prompts/framework/claude-sdk-typescript.md +3 -3
  53. package/onboarding/prompts/framework/crewai-flows.md +5 -5
  54. package/onboarding/prompts/framework/custom-ag-ui.md +4 -4
  55. package/onboarding/prompts/framework/deep-agents.md +3 -3
  56. package/onboarding/prompts/framework/google-adk.md +3 -3
  57. package/onboarding/prompts/framework/langgraph-fastapi.md +3 -3
  58. package/onboarding/prompts/framework/langgraph-python.md +3 -3
  59. package/onboarding/prompts/framework/langgraph-typescript.md +3 -3
  60. package/onboarding/prompts/framework/llamaindex.md +3 -3
  61. package/onboarding/prompts/framework/mastra.md +3 -3
  62. package/onboarding/prompts/framework/ms-agent-dotnet.md +5 -5
  63. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +5 -5
  64. package/onboarding/prompts/framework/ms-agent-python.md +3 -3
  65. package/onboarding/prompts/framework/pydantic-ai.md +3 -3
  66. package/onboarding/prompts/framework/strands-python.md +3 -3
  67. package/onboarding/prompts/framework/strands-typescript.md +3 -3
  68. package/onboarding/prompts/frontend/angular.md +4 -4
  69. package/onboarding/prompts/frontend/nextjs.md +4 -4
  70. package/onboarding/prompts/frontend/plan.md +10 -10
  71. package/onboarding/prompts/frontend/react-native.md +3 -3
  72. package/onboarding/prompts/frontend/react-spa.md +3 -3
  73. package/onboarding/prompts/frontend/vue.md +3 -3
  74. package/onboarding/prompts/implementation/build-and-validate.md +26 -10
  75. package/onboarding/prompts/proof/complete.md +3 -3
  76. package/onboarding/prompts/proof/oss-baseline.md +21 -5
  77. package/onboarding/prompts/proof/round-trip.md +33 -11
  78. package/onboarding/prompts/research/gather.md +58 -41
  79. package/onboarding/prompts/research/merge.md +3 -3
  80. package/onboarding/prompts/research/preflight.md +2 -2
  81. package/onboarding/prompts/research/route.md +5 -5
  82. package/onboarding/prompts/setup/questions.md +6 -6
  83. package/onboarding/prompts/starter/clone.md +28 -28
  84. package/onboarding/prompts/stopped/run-failed.md +3 -3
  85. package/onboarding/prompts/subagent/create-plan.md +27 -2
  86. package/onboarding/prompts/subagent/implement-and-validate.md +31 -3
  87. package/onboarding/prompts/subagent/inspect-repository.md +17 -4
  88. package/onboarding/prompts/subagent/prove-oss-baseline.md +24 -1
  89. package/onboarding/prompts/subagent/prove-round-trip.md +29 -6
  90. package/onboarding/prompts/unsupported/no-validated-path.md +3 -3
  91. package/package.json +1 -1
@@ -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.28.0 onboard read subagent/prove-oss-baseline` first and follow
4
+ `npx --prefer-offline --yes copilotkit@4.29.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
@@ -18,10 +18,26 @@ for a substitute.
18
18
 
19
19
  Wait for the subagent to finish.
20
20
 
21
+ If only its closing `subagent-returned` checkpoint was refused, the subagent finished.
22
+ Record no `refused` return and spawn nothing: run that checkpoint yourself, with the result
23
+ the subagent returned.
24
+
25
+ If the subagent returns because its harness refused any other command, record that return:
26
+
27
+ ```text
28
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase subagent-returned --brief prove-oss-baseline --result refused
29
+ ```
30
+
31
+ Then run that command yourself, from the directory the subagent named. Spawn at most one
32
+ fresh subagent for each refused command, with the same handoff and that command's result.
33
+ If the fresh subagent is refused a command too, spawn no other. Follow the
34
+ `subagent/prove-oss-baseline` brief yourself, as "When a subagent cannot work" in
35
+ `research/gather` says.
36
+
21
37
  Record what that proof returned before you route on it:
22
38
 
23
39
  ```text
24
- npx --prefer-offline --yes copilotkit@4.28.0 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
40
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
25
41
  ```
26
42
 
27
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
@@ -43,7 +59,7 @@ Do not change project files before this proof ends. Starting existing developmen
43
59
  processes and their ignored runtime files is allowed.
44
60
 
45
61
  If the subagent proves the `both-oss` predicate, keep its evidence with the plan and run
46
- `npx --prefer-offline --yes copilotkit@4.28.0 onboard read conversion/plan`. That project already works.
62
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read conversion/plan`. That project already works.
47
63
  What it needs is the conversion, not a build.
48
64
 
49
65
  A failed baseline does not end the run, and this step does not repair it. Decide which
@@ -58,7 +74,7 @@ pass. This proof only reads.
58
74
  A failed baseline whose cause is in the project is the starting state of this project. So
59
75
  is an operational failure still there after the third attempt. Record the starting state
60
76
  `both-copilotkit-unproved` and run
61
- `npx --prefer-offline --yes copilotkit@4.28.0 onboard read credentials/plan`. This prompt is served
77
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read credentials/plan`. This prompt is served
62
78
  whenever a project looks like an OSS integration, so a baseline that did not prove is an
63
79
  ordinary starting state rather than a failure. The build that follows fixes the
64
80
  integration, and `proof/round-trip` proves the result, with its own bounded repair cycle.
@@ -78,5 +94,5 @@ operational. Run the proof again, three times in total, then record the starting
78
94
  above and go on. Both causes lead to the same plan.
79
95
 
80
96
  If the proof cannot identify the running process safely, or it exposes a secret, run
81
- `npx --prefer-offline --yes copilotkit@4.28.0 onboard read stopped/run-failed`. Neither means the
97
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read stopped/run-failed`. Neither means the
82
98
  project is unsupported: each means this run did not establish what it needed to.
@@ -1,7 +1,7 @@
1
1
  # Prove the user journey
2
2
 
3
3
  Do not do the proof work yourself. Spawn one proof subagent. Tell it to run
4
- `npx --prefer-offline --yes copilotkit@4.28.0 onboard read subagent/prove-round-trip` first and follow the
4
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read subagent/prove-round-trip` first and follow the
5
5
  prompt it returns. Tell it to return at once, and say so, if that read is refused or fails,
6
6
  and not to wait for an approval. If it returns that way, stop that subagent. Run the same
7
7
  command yourself, then spawn a fresh subagent with the returned prompt and the same handoff.
@@ -37,10 +37,26 @@ the run.
37
37
  Wait for the subagent to finish. Its result arrives as a notification. Do not sleep to
38
38
  pass the time.
39
39
 
40
+ If only its closing `subagent-returned` checkpoint was refused, the subagent finished.
41
+ Record no `refused` return and spawn nothing: run that checkpoint yourself, with the result
42
+ the subagent returned.
43
+
44
+ If the subagent returns because its harness refused any other command, record that return:
45
+
46
+ ```text
47
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase subagent-returned --brief prove-round-trip --result refused
48
+ ```
49
+
50
+ Then run that command yourself, from the directory the subagent named. Spawn at most one
51
+ fresh subagent for each refused command, with the same handoff and that command's result.
52
+ If the fresh subagent is refused a command too, spawn no other. Follow the
53
+ `subagent/prove-round-trip` brief yourself, as "When a subagent cannot work" in
54
+ `research/gather` says.
55
+
40
56
  Record what that proof returned before you route on it:
41
57
 
42
58
  ```text
43
- npx --prefer-offline --yes copilotkit@4.28.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
59
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
44
60
  ```
45
61
 
46
62
  Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. A
@@ -52,7 +68,7 @@ the next one starts. Until then, `onboard proof-check` counts the next failure a
52
68
  If the CLI prints `## Stop: this run deleted or moved the developer's work` instead of a
53
69
  step, show the developer the list it printed, and run what they choose:
54
70
  the `onboard restore` command the tripwire stop prints, which names each deleted file, or
55
- `npx --prefer-offline --yes copilotkit@4.28.0 onboard tripwire --continue`. Then read the step again. If
71
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard tripwire --continue`. Then read the step again. If
56
72
  you cannot ask, use the route-out rules below.
57
73
 
58
74
  Never repair, reset, or revert a file the developer changed outside this run. That holds for
@@ -62,14 +78,20 @@ developer's, however right the diagnosis is and however small the fix. Ask the d
62
78
  allow the change, or route out. Never send it to a repair worker without their answer.
63
79
 
64
80
  This prompt pauses for the developer in several places. Before you end your turn to wait
65
- for the developer, report the pause:
81
+ for the developer, report the pause. For the tripwire choice:
82
+
83
+ ```text
84
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about restore-files
85
+ ```
86
+
87
+ For a file the plan does not name:
66
88
 
67
89
  ```text
68
- npx --prefer-offline --yes copilotkit@4.28.0 onboard checkpoint --phase awaiting-developer
90
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about uncommitted-file
69
91
  ```
70
92
 
71
93
  If the proof result starts with `Status: passed`, run
72
- `npx --prefer-offline --yes copilotkit@4.28.0 onboard read proof/complete`. A skipped
94
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read proof/complete`. A skipped
73
95
  surface outcome still enters `proof/complete`. The CLI records `skipped-cloned-starter` and
74
96
  `skipped-no-browser-tool` after a passed round trip as complete, and `skipped-no-device` as
75
97
  blocked. Do not describe a
@@ -95,7 +117,7 @@ credentials step found the model key missing, or the vendor refused it, and the
95
117
  started nothing. Do not send it to a repair worker. Run the `onboard credentials` command
96
118
  that its detail names, and act on its answer as `credentials/settle-credentials` says. Ask
97
119
  the developer its question, report the pause with
98
- `npx --prefer-offline --yes copilotkit@4.28.0 onboard checkpoint --phase awaiting-model-credential`, and
120
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-model-credential`, and
99
121
  end your turn. When the key settles, run the proof subagent again. If you have not recorded
100
122
  this attempt yet, record it first, with the outcome it ended with. This attempt does not
101
123
  count toward the three.
@@ -122,7 +144,7 @@ fault, so this is not a route-out. Ask the developer to send one message in the
122
144
  thread, and to give you that thread's id. Give them the app URL and the request words from
123
145
  the result. Tell them where the id is: in the browser's network tools, the request the page
124
146
  sends to the runtime URL carries `threadId` in its body. Report the pause with
125
- `npx --prefer-offline --yes copilotkit@4.28.0 onboard checkpoint --phase awaiting-developer` and end your
147
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about thread-id` and end your
126
148
  turn. When the developer gives the id, start a new proof subagent with
127
149
  the full original proof handoff, the pinned Step 1 record, and the thread id. Tell it to run
128
150
  the proof checks with `--thread <id>`. This attempt does not count toward the three. Use the
@@ -171,7 +193,7 @@ the files the developer allowed.
171
193
  Before you end your turn to wait for the developer, report the pause:
172
194
 
173
195
  ```text
174
- npx --prefer-offline --yes copilotkit@4.28.0 onboard checkpoint --phase awaiting-developer
196
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about uncommitted-file
175
197
  ```
176
198
 
177
199
  Restart each project-owned process changed by the repair. Then spawn a fresh proof subagent
@@ -189,7 +211,7 @@ takes the developer path above instead.
189
211
 
190
212
  Route out only when the failure is not yours to fix, when the same proof still fails after
191
213
  three attempts, or when no evidence of the round trip can be produced. In those cases run
192
- `npx --prefer-offline --yes copilotkit@4.28.0 onboard read stopped/run-failed`. The stack is supported:
214
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read stopped/run-failed`. The stack is supported:
193
215
  this run did not finish, which is a different ending and a different report. All three are
194
216
  about the round trip itself. A round trip that proved is not one of them, whatever failed
195
217
  after it.
@@ -200,7 +222,7 @@ friction command follows the telemetry setting the developer already chose, so i
200
222
  separate question.
201
223
 
202
224
  ```text
203
- npx --prefer-offline --yes copilotkit@4.28.0 onboard friction --phase stop --category <slug> --message "<sentences>"
225
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard friction --phase stop --category <slug> --message "<sentences>"
204
226
  ```
205
227
 
206
228
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -15,16 +15,16 @@ 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.28.0 onboard start --run <onboarding_run_id>` where you are
18
+ `npx --prefer-offline --yes copilotkit@4.29.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.28.0 onboard start` in the
21
+ If you no longer hold the id, run `npx --prefer-offline --yes copilotkit@4.29.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.
25
25
 
26
26
  Read only inside the target project directory. Every subagent you spawn inherits that
27
- limit, including one this graph does not name. Answer a CopilotKit API or configuration
27
+ limit. Answer a CopilotKit API or configuration
28
28
  question from the documentation this graph gives you. Another checkout on this machine is
29
29
  not a source.
30
30
 
@@ -35,7 +35,7 @@ pass.
35
35
 
36
36
  Telemetry and friction reports follow the CLI telemetry setting the developer controls with
37
37
  `copilotkit telemetry` or `DO_NOT_TRACK=1`. Each report is one or two sentences and carries
38
- no secrets and no source. The feedback commands enforce that setting on every send. Explain it once.
38
+ no secrets and no source. The commands enforce that setting. Explain it once.
39
39
 
40
40
  The directory this run started in is the run root. Every `--path` argument is read against
41
41
  it, so one path names one file from anywhere in the project.
@@ -48,19 +48,33 @@ to the repository root and prints its path.
48
48
 
49
49
  This rule covers every subagent this run spawns, here and in every later prompt.
50
50
 
51
- Spawning a subagent returns almost at once. That return is the dispatch succeeding, not the
52
- work finishing: the subagent runs in the background, and its result reaches you as a
53
- notification. Where your own harness hands you the report from the dispatch itself instead,
54
- you already hold the result. Either way there is nothing to poll.
51
+ Spawning a subagent returns almost at once. That return is the dispatch, not the result:
52
+ the result reaches you as a notification, or with the dispatch in some harnesses. There is
53
+ nothing to poll.
55
54
 
56
- After you dispatch, do the work that does not depend on the result. For example, dispatch
57
- the other subagent, or run the preflight that the next prompt gives you. Then end your turn
58
- and wait for the result. Wherever a prompt in this graph says to wait for a subagent to finish, that is
59
- what it means. It is a pause, as "Pausing vs stopping" below describes, and not a stop.
55
+ After you dispatch, do the work that does not depend on the result, then end your turn
56
+ and wait for the result. That is what "wait for a subagent to finish" means in this graph.
57
+ It is a pause, as "Pausing vs stopping" below describes, and not a stop.
60
58
 
61
- Do not sleep to pass the time. Not `sleep`, not `/bin/sleep`, not a timer under another
62
- name, and not a loop that re-checks whether a result arrived. Sleeping tells you nothing
63
- that waiting for the result does not, and it spends wall clock.
59
+ Do not sleep to pass the time: no `sleep`, no timer, and no loop that re-checks for a
60
+ result. It spends wall clock and tells you nothing.
61
+
62
+ ## When a subagent is refused a command
63
+
64
+ This rule covers every subagent this run spawns. A subagent whose harness refuses a command
65
+ returns at once with the command, its directory, and the refusal. Then run that command
66
+ yourself, from that directory. Spawn at most one fresh subagent for each refused command,
67
+ with the same handoff and that result. If the fresh subagent is refused a command too,
68
+ spawn no other: do the brief yourself.
69
+
70
+ Record each research result, since a research subagent runs no onboarding command:
71
+
72
+ ```text
73
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase subagent-returned --brief inspect-repository --result <ok|refused|failed>
74
+ ```
75
+
76
+ `ok` is `Status: passed`, `failed` is failed or blocked, and `refused` names a refused
77
+ command.
64
78
 
65
79
  ## Pausing vs stopping
66
80
 
@@ -74,7 +88,7 @@ says to file none, follow it, so the run sends one report at most. Nothing else
74
88
  A pause keeps the run open. "End your turn and wait for" something means: end this turn.
75
89
  When that thing arrives, continue. A pause waits for one of two things:
76
90
 
77
- 1. A subagent result. The section above says how to wait for one.
91
+ 1. A subagent result, waited for as the section above says.
78
92
  2. The developer. Ask the question, then end your turn and wait for the reply. The reply
79
93
  is the answer. A developer who replies without choosing, such as "go ahead" or "you
80
94
  pick", gives no answer, and the default that the prompt states applies. Where the
@@ -83,54 +97,57 @@ When that thing arrives, continue. A pause waits for one of two things:
83
97
  Before you end your turn to wait for the developer, report the pause:
84
98
 
85
99
  ```text
86
- npx --prefer-offline --yes copilotkit@4.28.0 onboard checkpoint --phase awaiting-developer
100
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about <question>
87
101
  ```
88
102
 
103
+ Use the question the asking prompt names, or else the closest of: `harness-permission`,
104
+ `sign-in`, `setup-answers`, `stack-choice`, `project-name`, `which-project`,
105
+ `env-file-tracked`, `local-connection`, `local-terms`, `existing-folder`,
106
+ `environment-fix`, `uncommitted-file`, `agent-change`, `restore-files`, `thread-id`,
107
+ `scoped-fix`, `feature-binding`, `other`. Report it before every turn that ends while the
108
+ run is open, with `other` if you asked nothing. A run that goes quiet without it reads as
109
+ a run that died.
110
+
89
111
  When the answer or the result arrives, continue from the step that paused. Do not read an
90
- earlier prompt again, send the welcome again, or start a new run: the run id you hold still
91
- names this run. A pause is not a stop. It sends no stop report and takes no stop route.
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.29.0 onboard route`. Skip every `subagent/` entry: a
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.
92
115
 
93
116
  ## When a subagent cannot work
94
117
 
95
- This rule also covers every subagent this run spawns, here and in every later prompt.
118
+ This rule covers every subagent too.
96
119
 
97
- A subagent that returns no usable result failed in your harness, not in this graph.
98
- Delegation buys parallelism and a clean context, not capability: every assignment in this
99
- run is work you can do yourself, slower. So run that assignment yourself and carry on,
100
- rather than treating it as the end of the run.
120
+ A subagent that returns no usable result failed in your harness, not in this graph. Every
121
+ assignment in this run is work you can do yourself, slower. So do it yourself and carry
122
+ on. It is not the end of the run.
101
123
 
102
124
  Both research subagents failing means this harness has no working subagent at all, which
103
125
  is worth recording once:
104
126
 
105
127
  ```text
106
- npx --prefer-offline --yes copilotkit@4.28.0 onboard checkpoint --phase delegation-unavailable
128
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase delegation-unavailable
107
129
  ```
108
130
 
109
- Then say once, in your own words, that this environment has no working subagents. Say that
110
- you will do each step yourself, and that the run will take longer than usual.
131
+ Then tell the developer once that this environment has no working subagents, so you do
132
+ each step yourself and the run takes longer.
111
133
 
112
134
  For the rest of this run, do not spawn a subagent where a prompt tells you to. Read that
113
135
  `subagent/` brief yourself and follow it.
114
136
 
115
- Before you ask the developer any setup question, finish every read-only investigation and
116
- preflight check in this section. The setup message below is the one exception.
117
-
118
137
  Prepare two research assignments. Before you spawn either subagent, run these two
119
138
  read-only commands yourself, from the target project directory:
120
139
 
121
140
  ```text
122
- npx --prefer-offline --yes copilotkit@4.28.0 onboard read subagent/inspect-repository
123
- npx --prefer-offline --yes copilotkit@4.28.0 onboard inspect --json
141
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard read subagent/inspect-repository
142
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard inspect --json
124
143
  ```
125
144
 
126
145
  Give each research subagent the prompt that the first command returns, the whole JSON that
127
146
  the second command returns, and one assignment. Tell it that its handoff already holds both,
128
- so it runs no onboarding command. A coding agent's permission layer can refuse a registry
129
- package inside a subagent, even where it lets you run the same command.
130
- The run then waits for an approval that nobody sees. Require only its assigned packet.
147
+ so it runs no onboarding command: a permission layer can refuse one inside a subagent, and
148
+ the run then waits for an approval nobody sees. Require only its assigned packet.
131
149
 
132
- Give the same JSON to every later subagent that this research spawns, such as a retry, a
133
- focused directory check, or a conflict verifier.
150
+ Give the same JSON to every later subagent this research spawns, such as a retry.
134
151
 
135
152
  Start both research subagents in parallel:
136
153
 
@@ -149,12 +166,12 @@ names no Channel (as `research/route` lists), and the `onboard inspect` JSON sho
149
166
  `detection.agentFramework` has an empty `matched` and an empty `unmatched`.
150
167
 
151
168
  Once `login --json` has emitted `type: completed`, read the setup questions now:
152
- `npx --prefer-offline --yes copilotkit@4.28.0 onboard read setup/questions`. Record the frontend from
169
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read setup/questions`. Record the frontend from
153
170
  `detection` first.
154
171
  Show the message. Before you end your turn to wait for the developer, report the pause:
155
172
 
156
173
  ```text
157
- npx --prefer-offline --yes copilotkit@4.28.0 onboard checkpoint --phase awaiting-developer
174
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about setup-answers
158
175
  ```
159
176
 
160
177
  Then continue below: the preflight and the merge do not wait for the reply. When the
@@ -168,8 +185,8 @@ the research first.
168
185
  The research is under way. Continue to the surface-control preflight while it runs:
169
186
 
170
187
  ```text
171
- npx --prefer-offline --yes copilotkit@4.28.0 onboard read research/preflight
188
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard read research/preflight
172
189
  ```
173
190
 
174
191
  If inspection stops onboarding, run
175
- `npx --prefer-offline --yes copilotkit@4.28.0 onboard read stopped/run-failed`.
192
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read stopped/run-failed`.
@@ -51,11 +51,11 @@ waits on the developer, end your turn and wait for it: that is a pause.
51
51
  Before you end your turn to wait for the developer, report the pause:
52
52
 
53
53
  ```text
54
- npx --prefer-offline --yes copilotkit@4.28.0 onboard checkpoint --phase awaiting-developer
54
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about sign-in
55
55
  ```
56
56
 
57
57
  When both research results are merged and sign-in is done, run
58
- `npx --prefer-offline --yes copilotkit@4.28.0 onboard read research/route`.
58
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read research/route`.
59
59
 
60
60
  If inspection stops onboarding, run
61
- `npx --prefer-offline --yes copilotkit@4.28.0 onboard read stopped/run-failed`.
61
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read stopped/run-failed`.
@@ -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.28.0 onboard read research/merge
35
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard read research/merge
36
36
  ```
37
37
 
38
38
  If inspection stops onboarding, run
39
- `npx --prefer-offline --yes copilotkit@4.28.0 onboard read stopped/run-failed`.
39
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read stopped/run-failed`.
@@ -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.28.0 onboard read feature/channels/start
24
+ npx --prefer-offline --yes copilotkit@4.29.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.28.0 onboard read proof/oss-baseline`.
85
+ `npx --prefer-offline --yes copilotkit@4.29.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,16 +91,16 @@ 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.28.0 onboard read setup/questions`. That node asks every
94
+ `npx --prefer-offline --yes copilotkit@4.29.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
 
98
98
  On a blank folder the setup message can go out before the research ends. If the setup
99
99
  message is already out and the developer has not replied, record what the findings settle
100
100
  with `onboard setup-answers`, then end your turn and send the developer nothing. Report
101
- the pause with `onboard checkpoint --phase awaiting-developer` first. Do not remind them,
101
+ the pause with `onboard checkpoint --phase awaiting-developer --about setup-answers` first. Do not remind them,
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.28.0 onboard read stopped/run-failed`. Neither says anything
105
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read stopped/run-failed`. 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.28.0 onboard setup-answers` before you build the
9
+ each one with `npx --prefer-offline --yes copilotkit@4.29.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,14 +31,14 @@ 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.28.0 onboard local-terms --json`.
34
+ On the local route, first run `npx --prefer-offline --yes copilotkit@4.29.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.28.0 onboard setup-message --target <empty|existing> [--language <typescript|python|dotnet>] [--vendor <vendor>]
41
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard setup-message --target <empty|existing> [--language <typescript|python|dotnet>] [--vendor <vendor>]
42
42
  ```
43
43
 
44
44
  - `--target empty` for a target with no project yet, `existing` for one with a project.
@@ -52,14 +52,14 @@ 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.28.0 onboard checkpoint --phase awaiting-developer
55
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about setup-answers
56
56
  ```
57
57
 
58
58
  Then end your turn and wait for the developer. When the developer replies, record their
59
59
  answers with `onboard setup-answers`, and run `onboard setup-message` again with
60
60
  `--accept-defaults`, as `next` says. When it prints `status: settled`, run
61
- `npx --prefer-offline --yes copilotkit@4.28.0 onboard read credentials/plan`. If you came here from
61
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read credentials/plan`. If you came here from
62
62
  `research/gather` before the research merged, do not read `credentials/plan` yet: finish the
63
63
  research. If it returns and the developer has not replied, record what the findings settle
64
64
  with `onboard setup-answers`, then end your turn and send the developer nothing. Report
65
- the pause with `onboard checkpoint --phase awaiting-developer` first.
65
+ the same pause first.