copilotkit 4.27.0 → 4.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +161 -26
  2. package/cli-build-info.json +7 -7
  3. package/index.js +8234 -5108
  4. package/onboarding/index.json +3 -2
  5. package/onboarding/prompts/authenticate/start.md +54 -55
  6. package/onboarding/prompts/conversion/plan.md +3 -3
  7. package/onboarding/prompts/credentials/finalize-plan.md +28 -24
  8. package/onboarding/prompts/credentials/plan.md +31 -28
  9. package/onboarding/prompts/credentials/settle-credentials.md +7 -7
  10. package/onboarding/prompts/credentials/write-plan.md +77 -51
  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 +9 -13
  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 +8 -7
  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 +6 -6
  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 +12 -12
  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 +32 -14
  75. package/onboarding/prompts/proof/complete.md +6 -7
  76. package/onboarding/prompts/proof/oss-baseline.md +24 -5
  77. package/onboarding/prompts/proof/round-trip.md +41 -21
  78. package/onboarding/prompts/research/gather.md +85 -40
  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 +10 -4
  82. package/onboarding/prompts/setup/questions.md +53 -234
  83. package/onboarding/prompts/starter/clone.md +43 -34
  84. package/onboarding/prompts/stopped/run-failed.md +3 -3
  85. package/onboarding/prompts/subagent/create-plan.md +57 -34
  86. package/onboarding/prompts/subagent/implement-and-validate.md +40 -35
  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 +55 -49
  90. package/onboarding/prompts/unsupported/no-validated-path.md +3 -3
  91. package/package.json +1 -1
  92. package/release/release-tool.js +8 -1
@@ -6,13 +6,13 @@ This step asks the developer nothing. If the run must wait for the developer any
6
6
  the pause first:
7
7
 
8
8
  ```text
9
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
9
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about other
10
10
  ```
11
11
 
12
12
  Use the starter shortcut only if all these facts are true: the target directory holds no
13
13
  project, its name is a valid `init` project name, and the selected framework is ADK.
14
14
  If all three facts are true, record Angular as the selected frontend. Then run
15
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read starter/clone` before you fetch documentation.
15
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read starter/clone` before you fetch documentation.
16
16
 
17
17
  ## Documentation
18
18
 
@@ -59,7 +59,7 @@ you create or build an Angular project. If the installed version is lower, selec
59
59
  supported version first and use it for every later command in this project.
60
60
 
61
61
  If the pages support the selection, record Angular and these URLs. Then run
62
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read credentials/finalize-plan`.
62
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read credentials/finalize-plan`.
63
63
 
64
64
  If the documentation does not support the selection, or the two version lines do not fit
65
- together, run `npx --prefer-offline --yes copilotkit@4.27.0 onboard read unsupported/no-validated-path`.
65
+ together, run `npx --prefer-offline --yes copilotkit@4.29.0 onboard read unsupported/no-validated-path`.
@@ -6,7 +6,7 @@ This step asks the developer nothing. If the run must wait for the developer any
6
6
  the pause first:
7
7
 
8
8
  ```text
9
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
9
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about other
10
10
  ```
11
11
 
12
12
  Use the starter shortcut only if the target directory holds no project and its name is
@@ -22,7 +22,7 @@ These TypeScript options have starters: Claude Agent SDK TypeScript, LangGraph T
22
22
  Mastra, and Strands Agents TypeScript. The .NET option is Microsoft Agent Framework .NET.
23
23
 
24
24
  If all shortcut conditions are true, record Next.js as the selected frontend. Then run
25
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read starter/clone` before you fetch documentation.
25
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read starter/clone` before you fetch documentation.
26
26
 
27
27
  ## Documentation
28
28
 
@@ -73,7 +73,7 @@ also sets `outputFileTracingRoot`. Do not set `outputFileTracingRoot` to a
73
73
  different folder. For an existing frontend, name this change in the report.
74
74
 
75
75
  If the page supports the selection, record Next.js and this URL. Then run
76
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read credentials/finalize-plan`.
76
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read credentials/finalize-plan`.
77
77
 
78
78
  If the documentation does not support the selection, run
79
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read unsupported/no-validated-path`.
79
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read unsupported/no-validated-path`.
@@ -15,18 +15,18 @@ Every rule below is for a run that named neither.
15
15
 
16
16
  ## Use the recorded frontend
17
17
 
18
- Run `npx --prefer-offline --yes copilotkit@4.27.0 onboard setup-answers` and use its `frontend`. It holds
18
+ Run `npx --prefer-offline --yes copilotkit@4.29.0 onboard setup-answers` and use its `frontend`. It holds
19
19
  the answer that `setup/questions` recorded, even after this conversation lost it. If the
20
20
  project has a frontend, preserve it and use the matching route below. Do not change
21
- application code in this phase. If neither settles it, ask one line as the setup message
22
- does: the recommendation first, in bold, and the alternatives on one `Other:` line, from
21
+ application code in this phase. If neither settles it, ask one line as the options view
22
+ of `onboard setup-message` does: the recommendation first, in bold, and the alternatives on one `Other:` line, from
23
23
  React SPA, Next.js, Angular, Vue 3, React Native, Slack, and Microsoft Teams. Record the answer with
24
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard setup-answers --frontend <name>`.
24
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard setup-answers --frontend <name>`.
25
25
 
26
26
  Before you end your turn to wait for the developer, report the pause:
27
27
 
28
28
  ```text
29
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
29
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about stack-choice
30
30
  ```
31
31
 
32
32
  When the recorded frontend is not Next.js, tell the developer in one sentence where it runs
@@ -38,15 +38,15 @@ words instead.
38
38
 
39
39
  Use exactly one matching internal route:
40
40
 
41
- 1. React SPA: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read frontend/react-spa`
42
- 2. Next.js: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read frontend/nextjs`
43
- 3. Angular: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read frontend/angular`
44
- 4. Vue 3: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read frontend/vue`
45
- 5. React Native: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read frontend/react-native`
46
- 6. Slack or Microsoft Teams: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read feature/channels/start`
41
+ 1. React SPA: `npx --prefer-offline --yes copilotkit@4.29.0 onboard read frontend/react-spa`
42
+ 2. Next.js: `npx --prefer-offline --yes copilotkit@4.29.0 onboard read frontend/nextjs`
43
+ 3. Angular: `npx --prefer-offline --yes copilotkit@4.29.0 onboard read frontend/angular`
44
+ 4. Vue 3: `npx --prefer-offline --yes copilotkit@4.29.0 onboard read frontend/vue`
45
+ 5. React Native: `npx --prefer-offline --yes copilotkit@4.29.0 onboard read frontend/react-native`
46
+ 6. Slack or Microsoft Teams: `npx --prefer-offline --yes copilotkit@4.29.0 onboard read feature/channels/start`
47
47
 
48
48
  If they chose Slack or Microsoft Teams, tell that node which one they chose so it
49
49
  does not ask again.
50
50
 
51
51
  If no listed frontend fits, run
52
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read unsupported/no-validated-path`.
52
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read unsupported/no-validated-path`.
@@ -6,7 +6,7 @@ This step asks the developer nothing. If the run must wait for the developer any
6
6
  the pause first:
7
7
 
8
8
  ```text
9
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
9
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about other
10
10
  ```
11
11
 
12
12
  React Native has no starter. For a target directory that holds no project, build the new
@@ -25,7 +25,7 @@ documents `useRenderTool`, which is React Native's own hook for drawing a tool t
25
25
  already has. That is a different job and needs a tool in the agent.
26
26
 
27
27
  If the pages support the selection, record React Native and these URLs. Then run
28
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read credentials/finalize-plan`.
28
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read credentials/finalize-plan`.
29
29
 
30
30
  If the documentation does not support the selection, run
31
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read unsupported/no-validated-path`.
31
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read unsupported/no-validated-path`.
@@ -6,7 +6,7 @@ This step asks the developer nothing. If the run must wait for the developer any
6
6
  the pause first:
7
7
 
8
8
  ```text
9
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
9
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about other
10
10
  ```
11
11
 
12
12
  React SPA has no starter. For a target directory that holds no project, build the new
@@ -26,7 +26,7 @@ that import when Vite leaves the package external.
26
26
  - https://docs.copilotkit.ai/react-spa.md
27
27
 
28
28
  If the page supports the selection, record React SPA and this URL. Then run
29
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read credentials/finalize-plan`.
29
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read credentials/finalize-plan`.
30
30
 
31
31
  If the documentation does not support the selection, run
32
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read unsupported/no-validated-path`.
32
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read unsupported/no-validated-path`.
@@ -6,7 +6,7 @@ This step asks the developer nothing. If the run must wait for the developer any
6
6
  the pause first:
7
7
 
8
8
  ```text
9
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
9
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about other
10
10
  ```
11
11
 
12
12
  Vue 3 has no starter. For a target directory that holds no project, build the new
@@ -26,7 +26,7 @@ page above. Vue has its own `useComponent`, which is not the React package. Take
26
26
  that reference page rather than from a Vue generative-UI guide, which is not published.
27
27
 
28
28
  If the pages support the selection, record Vue 3 and these URLs. Then run
29
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read credentials/finalize-plan`.
29
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read credentials/finalize-plan`.
30
30
 
31
31
  If the documentation does not support the selection, run
32
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read unsupported/no-validated-path`.
32
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read unsupported/no-validated-path`.
@@ -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.27.0 onboard friction --phase stop --category <slug> --message "<sentences>"
16
+ npx --prefer-offline --yes copilotkit@4.29.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.
@@ -31,7 +31,7 @@ name in the plan prompt, `credentials/write-plan`.
31
31
 
32
32
  ## Departing from the approved plan
33
33
 
34
- The developer saw a written plan and answered any risky change in it. The approved plan is
34
+ The developer saw a written plan and answered any change in it that needs approval. The approved plan is
35
35
  that plan, with their answer. They were told that no question comes after it unless a step
36
36
  cannot be built as written. Such a step is therefore a change to the only thing they agreed
37
37
  to.
@@ -57,7 +57,7 @@ This prompt pauses for the developer in several places. Before you end your turn
57
57
  for the developer, report the pause:
58
58
 
59
59
  ```text
60
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
60
+ npx --prefer-offline --yes copilotkit@4.29.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,14 +74,14 @@ 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.27.0 onboard checkpoint --phase awaiting-developer
77
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about agent-change
78
78
  ```
79
79
 
80
80
  ## The developer's uncommitted files
81
81
 
82
82
  `onboard start` backed up the developer's work, so nothing is recorded before an edit. The
83
83
  approved plan lists the files that had uncommitted changes under `Uncommitted files`. Each
84
- one is a risky change, so the developer's answer to the plan is their agreement to those
84
+ one needs approval, so the developer's answer to the plan is their agreement to those
85
85
  edits. Any other such file is a file
86
86
  the plan does not name: ask the developer, as above.
87
87
 
@@ -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.27.0 onboard tripwire --continue`. Then read the step again. If
100
+ `npx --prefer-offline --yes copilotkit@4.29.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.27.0 onboard checkpoint --phase awaiting-developer
105
+ npx --prefer-offline --yes copilotkit@4.29.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.27.0 learning containers create --id <id> --name <name> --json
119
+ npx --prefer-offline --yes copilotkit@4.29.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
@@ -129,8 +129,11 @@ credentials step found it or another run made it. That is a container to reuse,
129
129
  failure to repair and not a reason to pick a new id. Any other error code: report it and
130
130
  stop onboarding, so no run wires a selector to an id the platform does not hold.
131
131
 
132
+ When you start a subagent in the background, tell the developer in one sentence what it
133
+ does. Then send nothing more until it returns.
134
+
132
135
  Spawn one implementation subagent. Tell it to run
133
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read subagent/implement-and-validate` first and
136
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read subagent/implement-and-validate` first and
134
137
  follow the prompt it returns. Tell it to return at once, and say so, if that read is refused
135
138
  or fails, and not to wait for an approval. If it returns that way, stop that subagent. Run
136
139
  the same command yourself, then spawn a fresh subagent with the returned prompt and the same
@@ -138,10 +141,25 @@ handoff. Give it the plan, selected framework, frontend, model, exact target app
138
141
  selected documentation URLs, and the
139
142
  documentation policy recorded during framework selection or conversion planning. On a
140
143
  conversion, also give it the frozen criterion. Give it the paths that had uncommitted
141
- changes when the run started. Give it the developer's answer on the Skills install, so that it skips a
142
- declined install. Require it to implement every step in plan order
144
+ changes when the run started. Require it to implement every step in plan order
143
145
  and run the full validation list. Wait for it.
144
146
 
147
+ If only its closing `subagent-returned` checkpoint was refused, the subagent finished.
148
+ Record no `refused` return and spawn nothing: run that checkpoint yourself, with the result
149
+ the subagent returned.
150
+
151
+ If the subagent returns because its harness refused any other command, record that return:
152
+
153
+ ```text
154
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase subagent-returned --brief implement-and-validate --result refused
155
+ ```
156
+
157
+ Then run that command yourself, from the directory the subagent named. Spawn at most one
158
+ fresh subagent for each refused command, with the same handoff and that command's result.
159
+ If the fresh subagent is refused a command too, spawn no other. Follow the
160
+ `subagent/implement-and-validate` brief yourself, as "When a subagent cannot work" in
161
+ `research/gather` says.
162
+
145
163
  One subagent implements the whole plan. Do not divide the work across concurrent subagents,
146
164
  and do not spawn a second subagent to reconcile a split.
147
165
 
@@ -165,7 +183,7 @@ Report it and take the failure ending.
165
183
  If the implementation result does not start with `Status: passed`, do not continue to proof.
166
184
 
167
185
  Then run
168
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read proof/round-trip`.
186
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read proof/round-trip`.
169
187
 
170
188
  ## Repair rules
171
189
 
@@ -193,9 +211,9 @@ developer
193
211
  declined a file the plan does not name, or the run cannot ask them about it. A defect in a
194
212
  package this run installed is not a stack CopilotKit does not serve, and a command this run
195
213
  cannot get to pass is not one either. In those cases run
196
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read stopped/run-failed`.
214
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read stopped/run-failed`.
197
215
 
198
216
  A plan with no path to follow takes the unsupported ending: the fix requires changing the
199
217
  developer's existing agent or frontend, or the documentation does not support the plan. In
200
218
  those cases run
201
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read unsupported/no-validated-path`.
219
+ `npx --prefer-offline --yes copilotkit@4.29.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.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
27
+ npx --prefer-offline --yes copilotkit@4.29.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.27.0 onboard complete --visual-check <outcome> \
49
+ npx --prefer-offline --yes copilotkit@4.29.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.27.0 onboard complete --visual-check failed --blocked-by browser-control-unresponsive
77
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard complete --visual-check failed --blocked-by browser-control-unresponsive
78
78
  ```
79
79
 
80
80
  ## Write the handoff
@@ -98,10 +98,9 @@ only you can say:
98
98
  - What the project now does, and the first thing to try in it.
99
99
  - What changed since the developer approved the plan: every path, version, or step the run
100
100
  departed from, and why. Where nothing departed, say so in one line. A file the approved
101
- plan named under `Files the run writes itself` or `Skills install` is not a departure, and
102
- neither is a Skills install the developer declined.
103
- - Where this run installed the CopilotKit Skills, the Skills files the install added:
104
- `.agents/skills/` and its links in `.claude/skills/`. Say that deleting both removes them.
101
+ plan named under `Files the run writes itself` is not a departure.
102
+ - A page-context warning the proof recorded: name the framework, and say that the page's data
103
+ does not reach its model yet.
105
104
  - Every change to the existing agent's behavior: its instructions, its tools, its model or
106
105
  provider, or its memory. Name each one and its file, and say the developer approved it.
107
106
  Where none changed, write `none`.
@@ -1,12 +1,15 @@
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.27.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
8
8
  handoff. Give it the repository findings and exact CLI package spec.
9
9
 
10
+ When you start a subagent in the background, tell the developer in one sentence what it
11
+ does. Then send nothing more until it returns.
12
+
10
13
  Give it the browser or device control you recorded in the preflight as well. The subagent
11
14
  proves the runtime from a shell and needs no browser for that. The control is for the one
12
15
  predicate that drives the existing frontend. Where the preflight recorded `unavailable`, say
@@ -15,10 +18,26 @@ for a substitute.
15
18
 
16
19
  Wait for the subagent to finish.
17
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
+
18
37
  Record what that proof returned before you route on it:
19
38
 
20
39
  ```text
21
- npx --prefer-offline --yes copilotkit@4.27.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>]
22
41
  ```
23
42
 
24
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
@@ -40,7 +59,7 @@ Do not change project files before this proof ends. Starting existing developmen
40
59
  processes and their ignored runtime files is allowed.
41
60
 
42
61
  If the subagent proves the `both-oss` predicate, keep its evidence with the plan and run
43
- `npx --prefer-offline --yes copilotkit@4.27.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.
44
63
  What it needs is the conversion, not a build.
45
64
 
46
65
  A failed baseline does not end the run, and this step does not repair it. Decide which
@@ -55,7 +74,7 @@ pass. This proof only reads.
55
74
  A failed baseline whose cause is in the project is the starting state of this project. So
56
75
  is an operational failure still there after the third attempt. Record the starting state
57
76
  `both-copilotkit-unproved` and run
58
- `npx --prefer-offline --yes copilotkit@4.27.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
59
78
  whenever a project looks like an OSS integration, so a baseline that did not prove is an
60
79
  ordinary starting state rather than a failure. The build that follows fixes the
61
80
  integration, and `proof/round-trip` proves the result, with its own bounded repair cycle.
@@ -75,5 +94,5 @@ operational. Run the proof again, three times in total, then record the starting
75
94
  above and go on. Both causes lead to the same plan.
76
95
 
77
96
  If the proof cannot identify the running process safely, or it exposes a secret, run
78
- `npx --prefer-offline --yes copilotkit@4.27.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
79
98
  project is unsupported: each means this run did not establish what it needed to.
@@ -1,15 +1,17 @@
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.27.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.
8
8
  Give it the selected framework, frontend, model, approved plan, selected documentation URLs,
9
9
  and validation evidence. Give it the documentation policy recorded during framework
10
10
  selection or conversion planning. On a conversion, also give it the frozen criterion. Give
11
- it the paths that had uncommitted changes when the run started. Give it the developer's answer on the Skills install and the
12
- Skills result the implementation returned.
11
+ it the paths that had uncommitted changes when the run started.
12
+
13
+ When you start a subagent in the background, tell the developer in one sentence what it
14
+ does. Then send nothing more until it returns. This holds for a repair subagent too.
13
15
 
14
16
  Give it the frontend files that publish the page context and register the tools, by path,
15
17
  from the Files changed sections the implementation returned. The subagent sends what those
@@ -32,16 +34,29 @@ device control, and have it report `skipped-cloned-starter` rather than a missin
32
34
  capability: nothing was unavailable, the run declined to spend it. That outcome completes
33
35
  the run.
34
36
 
35
- Give the subagent this guide for continued-development tools:
36
- https://docs.copilotkit.ai/build-with-agents.md
37
-
38
37
  Wait for the subagent to finish. Its result arrives as a notification. Do not sleep to
39
38
  pass the time.
40
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
+
41
56
  Record what that proof returned before you route on it:
42
57
 
43
58
  ```text
44
- npx --prefer-offline --yes copilotkit@4.27.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>
45
60
  ```
46
61
 
47
62
  Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. A
@@ -53,7 +68,7 @@ the next one starts. Until then, `onboard proof-check` counts the next failure a
53
68
  If the CLI prints `## Stop: this run deleted or moved the developer's work` instead of a
54
69
  step, show the developer the list it printed, and run what they choose:
55
70
  the `onboard restore` command the tripwire stop prints, which names each deleted file, or
56
- `npx --prefer-offline --yes copilotkit@4.27.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
57
72
  you cannot ask, use the route-out rules below.
58
73
 
59
74
  Never repair, reset, or revert a file the developer changed outside this run. That holds for
@@ -63,19 +78,24 @@ developer's, however right the diagnosis is and however small the fix. Ask the d
63
78
  allow the change, or route out. Never send it to a repair worker without their answer.
64
79
 
65
80
  This prompt pauses for the developer in several places. Before you end your turn to wait
66
- 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:
67
88
 
68
89
  ```text
69
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
90
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about uncommitted-file
70
91
  ```
71
92
 
72
93
  If the proof result starts with `Status: passed`, run
73
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard read proof/complete`. A performed surface outcome with
74
- the full round trip is core success even if a continued-development tool fails. A skipped
94
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard read proof/complete`. A skipped
75
95
  surface outcome still enters `proof/complete`. The CLI records `skipped-cloned-starter` and
76
96
  `skipped-no-browser-tool` after a passed round trip as complete, and `skipped-no-device` as
77
97
  blocked. Do not describe a
78
- skipped surface as proved. Keep the Skills result separate from the proof result.
98
+ skipped surface as proved.
79
99
 
80
100
  A passed result can carry the surface-check outcome `failed` with the cause
81
101
  `browser-control-unresponsive`. It means that the browser tool stopped answering, not that
@@ -97,7 +117,7 @@ credentials step found the model key missing, or the vendor refused it, and the
97
117
  started nothing. Do not send it to a repair worker. Run the `onboard credentials` command
98
118
  that its detail names, and act on its answer as `credentials/settle-credentials` says. Ask
99
119
  the developer its question, report the pause with
100
- `npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-model-credential`, and
120
+ `npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-model-credential`, and
101
121
  end your turn. When the key settles, run the proof subagent again. If you have not recorded
102
122
  this attempt yet, record it first, with the outcome it ended with. This attempt does not
103
123
  count toward the three.
@@ -124,7 +144,7 @@ fault, so this is not a route-out. Ask the developer to send one message in the
124
144
  thread, and to give you that thread's id. Give them the app URL and the request words from
125
145
  the result. Tell them where the id is: in the browser's network tools, the request the page
126
146
  sends to the runtime URL carries `threadId` in its body. Report the pause with
127
- `npx --prefer-offline --yes copilotkit@4.27.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
128
148
  turn. When the developer gives the id, start a new proof subagent with
129
149
  the full original proof handoff, the pinned Step 1 record, and the thread id. Tell it to run
130
150
  the proof checks with `--thread <id>`. This attempt does not count toward the three. Use the
@@ -167,19 +187,19 @@ that returns blocked because the repair needs a file the plan does not name. Han
167
187
  way `implementation/build-and-validate` does: pause and ask the developer, add the file to
168
188
  the handoff if they allow it, and use the route-out rules below if they decline. Then spawn a
169
189
  fresh repair worker with this repair handoff, not the whole-plan implementation handoff: the
170
- plan, the proof evidence, the paths that had uncommitted changes when the run started, the
171
- files the developer allowed, and the developer's answer on the Skills install.
190
+ plan, the proof evidence, the paths that had uncommitted changes when the run started, and
191
+ the files the developer allowed.
172
192
 
173
193
  Before you end your turn to wait for the developer, report the pause:
174
194
 
175
195
  ```text
176
- npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
196
+ npx --prefer-offline --yes copilotkit@4.29.0 onboard checkpoint --phase awaiting-developer --about uncommitted-file
177
197
  ```
178
198
 
179
199
  Restart each project-owned process changed by the repair. Then spawn a fresh proof subagent
180
200
  with the full original proof handoff, failed proof evidence, and new validation evidence.
181
201
  This handoff includes the plan, documentation, policy, current process IDs, ports,
182
- surface-control state, the continued-tools guide, and the failed attempt's pinned Step 1
202
+ surface-control state, and the failed attempt's pinned Step 1
183
203
  record. Carry that record so the second attempt sends the request the first one failed on.
184
204
  A fresh subagent given the plan alone writes its own request where the plan named none, and
185
205
  its grounding check then speaks about a question the failed attempt never asked.
@@ -191,7 +211,7 @@ takes the developer path above instead.
191
211
 
192
212
  Route out only when the failure is not yours to fix, when the same proof still fails after
193
213
  three attempts, or when no evidence of the round trip can be produced. In those cases run
194
- `npx --prefer-offline --yes copilotkit@4.27.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:
195
215
  this run did not finish, which is a different ending and a different report. All three are
196
216
  about the round trip itself. A round trip that proved is not one of them, whatever failed
197
217
  after it.
@@ -202,7 +222,7 @@ friction command follows the telemetry setting the developer already chose, so i
202
222
  separate question.
203
223
 
204
224
  ```text
205
- npx --prefer-offline --yes copilotkit@4.27.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>"
206
226
  ```
207
227
 
208
228
  `--message` takes one or two sentences: the step you stopped at and what stopped it.