copilotkit 4.18.0 → 4.20.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 (79) hide show
  1. package/README.md +26 -12
  2. package/cli-build-info.json +7 -7
  3. package/index.js +4949 -3293
  4. package/onboarding/index.json +1 -1
  5. package/onboarding/prompts/authenticate/start.md +39 -32
  6. package/onboarding/prompts/conversion/plan.md +3 -3
  7. package/onboarding/prompts/credentials/finalize-plan.md +7 -7
  8. package/onboarding/prompts/credentials/plan.md +47 -21
  9. package/onboarding/prompts/credentials/settle-credentials.md +26 -12
  10. package/onboarding/prompts/credentials/write-plan.md +9 -6
  11. package/onboarding/prompts/fallback/best-effort.md +31 -19
  12. package/onboarding/prompts/feature/a2ui/implement.md +6 -12
  13. package/onboarding/prompts/feature/a2ui/proof.md +8 -19
  14. package/onboarding/prompts/feature/a2ui/start.md +9 -18
  15. package/onboarding/prompts/feature/channels/implement.md +12 -21
  16. package/onboarding/prompts/feature/channels/proof.md +7 -18
  17. package/onboarding/prompts/feature/channels/start.md +14 -21
  18. package/onboarding/prompts/feature/chat-suggestions/implement.md +6 -12
  19. package/onboarding/prompts/feature/chat-suggestions/proof.md +7 -18
  20. package/onboarding/prompts/feature/chat-suggestions/start.md +9 -18
  21. package/onboarding/prompts/feature/complete.md +4 -2
  22. package/onboarding/prompts/feature/learning/implement.md +13 -38
  23. package/onboarding/prompts/feature/learning/proof.md +8 -19
  24. package/onboarding/prompts/feature/learning/start.md +9 -18
  25. package/onboarding/prompts/feature/open-generative-ui/implement.md +6 -12
  26. package/onboarding/prompts/feature/open-generative-ui/proof.md +7 -18
  27. package/onboarding/prompts/feature/open-generative-ui/start.md +9 -18
  28. package/onboarding/prompts/feature/realtime-sync/implement.md +7 -13
  29. package/onboarding/prompts/feature/realtime-sync/proof.md +7 -18
  30. package/onboarding/prompts/feature/realtime-sync/start.md +8 -17
  31. package/onboarding/prompts/feature/rich-threads/implement.md +8 -14
  32. package/onboarding/prompts/feature/rich-threads/proof.md +7 -18
  33. package/onboarding/prompts/feature/rich-threads/start.md +8 -17
  34. package/onboarding/prompts/feature/stop.md +3 -3
  35. package/onboarding/prompts/feature/voice/implement.md +6 -12
  36. package/onboarding/prompts/feature/voice/proof.md +7 -18
  37. package/onboarding/prompts/feature/voice/start.md +9 -18
  38. package/onboarding/prompts/framework/ag2.md +2 -2
  39. package/onboarding/prompts/framework/agno.md +2 -2
  40. package/onboarding/prompts/framework/built-in.md +2 -2
  41. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  42. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  43. package/onboarding/prompts/framework/crewai-flows.md +2 -2
  44. package/onboarding/prompts/framework/deep-agents.md +2 -2
  45. package/onboarding/prompts/framework/google-adk.md +2 -2
  46. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  47. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  48. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  49. package/onboarding/prompts/framework/llamaindex.md +2 -2
  50. package/onboarding/prompts/framework/mastra.md +2 -2
  51. package/onboarding/prompts/framework/ms-agent-dotnet.md +8 -3
  52. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +8 -3
  53. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  54. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  55. package/onboarding/prompts/framework/strands-python.md +2 -2
  56. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  57. package/onboarding/prompts/frontend/angular.md +3 -3
  58. package/onboarding/prompts/frontend/nextjs.md +3 -3
  59. package/onboarding/prompts/frontend/plan.md +7 -7
  60. package/onboarding/prompts/frontend/react-native.md +2 -2
  61. package/onboarding/prompts/frontend/react-spa.md +2 -2
  62. package/onboarding/prompts/frontend/vue.md +2 -2
  63. package/onboarding/prompts/implementation/build-and-validate.md +32 -40
  64. package/onboarding/prompts/proof/complete.md +89 -191
  65. package/onboarding/prompts/proof/oss-baseline.md +5 -5
  66. package/onboarding/prompts/proof/round-trip.md +22 -27
  67. package/onboarding/prompts/research/gather.md +5 -14
  68. package/onboarding/prompts/research/merge.md +4 -12
  69. package/onboarding/prompts/research/preflight.md +14 -55
  70. package/onboarding/prompts/research/route.md +7 -6
  71. package/onboarding/prompts/starter/clone.md +5 -15
  72. package/onboarding/prompts/stopped/run-failed.md +2 -2
  73. package/onboarding/prompts/subagent/create-plan.md +25 -1
  74. package/onboarding/prompts/subagent/inspect-repository.md +10 -2
  75. package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
  76. package/onboarding/prompts/subagent/prove-round-trip.md +78 -56
  77. package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
  78. package/package.json +1 -1
  79. package/release/release-tool.js +11 -2
@@ -21,13 +21,13 @@ carry on. Keep a read-only assignment read-only. If no subagent works at all, re
21
21
  once:
22
22
 
23
23
  ```text
24
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase delegation-unavailable
24
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard checkpoint --phase delegation-unavailable
25
25
  ```
26
26
 
27
27
  Before you end your turn to wait for the developer, report the pause:
28
28
 
29
29
  ```text
30
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase awaiting-developer
30
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard checkpoint --phase awaiting-developer
31
31
  ```
32
32
 
33
33
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
@@ -37,7 +37,7 @@ If you stop this run, send one short report before you stop. The friction comman
37
37
  the telemetry setting the developer already chose, so it needs no separate question.
38
38
 
39
39
  ```text
40
- npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --phase stop --category <slug> --message "<sentences>"
40
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard friction --phase stop --category <slug> --message "<sentences>"
41
41
  ```
42
42
 
43
43
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -51,7 +51,7 @@ one scoped fix, and sends the report itself when no fix is approved.
51
51
  Before any subagent or project process runs, capture the developer's existing work:
52
52
 
53
53
  ```text
54
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect
54
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect
55
55
  ```
56
56
 
57
57
  Keep the exact protected path list it prints and give that list to every subagent. No
@@ -66,23 +66,20 @@ development/test commands. It must return paths and secret-safe presence checks
66
66
 
67
67
  Require an existing frontend, agent, and CopilotKit round trip. Start only project-owned
68
68
  processes when needed, inspect `/info`, and run
69
- `npx --prefer-offline --yes copilotkit@4.18.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`.
69
+ `npx --prefer-offline --yes copilotkit@4.20.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`.
70
70
  Also drive one existing request through the frontend when browser control is available.
71
71
 
72
72
  Wait for the inspection subagent to finish. Then report that the inspection came back:
73
73
 
74
74
  ```text
75
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase research-returned
75
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard checkpoint --phase research-returned
76
76
  ```
77
77
 
78
- A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
79
- failed step.
80
-
81
78
  If the inspection did not prove the baseline this intent extends, stop here without
82
79
  changing files:
83
80
 
84
81
  ```text
85
- npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
82
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/stop
86
83
  ```
87
84
 
88
85
  Do not run `login`, select an Intelligence project, add an Intelligence client, mint a
@@ -106,17 +103,11 @@ one.
106
103
  After approval, record each approved path before implementation:
107
104
 
108
105
  ```text
109
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
106
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
110
107
  ```
111
108
 
112
109
  If an approved path changed after capture and no implementation step has run, add
113
110
  `--with-prior-change`. Continue only when every result starts with `Status: passed`. Do not
114
111
  authorize a path the approved plan did not list.
115
112
 
116
- Then report the plan this run is about to implement:
117
-
118
- ```text
119
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase plan-written
120
- ```
121
-
122
- Then run `npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/a2ui/implement`.
113
+ Then run `npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/a2ui/implement`.
@@ -19,15 +19,12 @@ On Teams, skip Slack-only tools and the Slack e2e harness. Do not add a CopilotK
19
19
  web app to make this run look complete. Do not replace the existing agent.
20
20
 
21
21
  If repository evidence does not prove an existing valid Intelligence selection, sign in
22
- yourself with `npx --prefer-offline --yes copilotkit@4.18.0 login --json`: the same single streaming
23
- session generic onboarding uses. Read its JSON Lines while the process runs. Open the
24
- first `authentication_url` exactly once with the operating system's default browser
25
- opener, `open` on macOS, `xdg-open` on Linux, `Start-Process` in Windows PowerShell. Your
26
- own built-in browser is not that opener and does not carry the session the developer
27
- already signed in with. If that record carries `user_code`, show the developer the code to
28
- check against the sign-in page, which works from any device. Never ask the developer to run a login command. If the opener is
29
- unavailable or fails, show the developer the clickable URL and ask them to finish sign-in
30
- there, and keep reading the same process. Continue only after that same process emits
22
+ yourself with `npx --prefer-offline --yes copilotkit@4.20.0 login --json`: the same single streaming
23
+ session generic onboarding uses. Read its JSON Lines while the process runs. The CLI opens
24
+ the page itself when it can: with `"browser_opened": false` in `action_required`, show the
25
+ developer the clickable URL and ask them to finish sign-in there. If the record carries
26
+ `user_code`, show the developer the code to check against the page. Never ask the developer
27
+ to run a login command. Keep reading the same process. Continue only after that same process emits
31
28
  `type: completed`. Only when it emits `type: failed`, report the error and take the
32
29
  feature stop route below. Then list projects and select or create one only after they choose. Require the secret-safe project/key provisioning summary
33
30
  before wiring the Channel. Never display a key.
@@ -78,7 +75,7 @@ starter to satisfy this rule, and do not report the page that shows it.
78
75
  Before you spawn the implementation subagent, take the authorized list from the CLI:
79
76
 
80
77
  ```text
81
- npx --prefer-offline --yes copilotkit@4.18.0 onboard audit
78
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard audit
82
79
  ```
83
80
 
84
81
  From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
@@ -97,7 +94,7 @@ still go on the record. Name the file and why the work needs it, then end your t
97
94
  for the developer's answer. If they allow it, record their answer before any edit:
98
95
 
99
96
  ```text
100
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
97
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
101
98
  ```
102
99
 
103
100
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -109,7 +106,7 @@ feature stop route below.
109
106
  After validation and each repair, run:
110
107
 
111
108
  ```text
112
- npx --prefer-offline --yes copilotkit@4.18.0 onboard audit
109
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard audit
113
110
  ```
114
111
 
115
112
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -120,7 +117,7 @@ with the implementation subagent's `Files changed` section. If that section does
120
117
  the path, accept the developer's external change:
121
118
 
122
119
  ```text
123
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --accept-external --path <path>
120
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --accept-external --path <path>
124
121
  ```
125
122
 
126
123
  For an env file where the developer placed a requested credential, use
@@ -133,7 +130,7 @@ Run the audit again after each accepted change. If it still fails, or starts
133
130
  with `Status: blocked`, route out and stop:
134
131
 
135
132
  ```text
136
- npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
133
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/stop
137
134
  ```
138
135
 
139
136
  ## Values this run writes, and the one credential the developer supplies
@@ -166,14 +163,8 @@ both default to 3000, append one line to that env file and change no other line.
166
163
  accept it with `onboard protect --accept-credential --path <path>`, which accepts an added
167
164
  variable while every recorded one keeps its value, and run the audit again.
168
165
 
169
- When implementation validation passes, report it:
170
-
171
- ```text
172
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase build-validated
173
- ```
174
-
175
166
  If validation cannot pass, or this run needs a prerequisite the app does not have, use
176
167
  the feature stop route above without further changes.
177
168
 
178
169
  Otherwise run
179
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/channels/proof`.
170
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/channels/proof`.
@@ -31,7 +31,7 @@ still go on the record. Name the file and why the fix needs it, then end your tu
31
31
  for the developer's answer. If they allow it, record their answer before any edit:
32
32
 
33
33
  ```text
34
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
34
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
35
35
  ```
36
36
 
37
37
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -40,26 +40,15 @@ same handoff and that list. A subagent that already returned cannot pick up cons
40
40
  after it was spawned. If you cannot ask, or the developer declines, take the feature stop
41
41
  route below.
42
42
 
43
- Report each attempt at the proof as it ends, counting from one:
43
+ Report the outcome of each attempt as it ends, before any repair. The command counts the
44
+ attempts and the repairs:
44
45
 
45
46
  ```text
46
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase journey-attempted --attempt 1
47
- ```
48
-
49
- Report each repair cycle the same way, counting from one:
50
-
51
- ```text
52
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase repair-attempted --attempt 1
53
- ```
54
-
55
- After the final attempt, report the gate exactly once:
56
-
57
- ```text
58
- npx --prefer-offline --yes copilotkit@4.18.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
47
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
59
48
  ```
60
49
 
61
50
  Use `passed` only for a proved mention reply, `failed` for an attempted proof that
62
- failed, and `skipped` when the proof did not run. Then run `npx --prefer-offline --yes copilotkit@4.18.0 onboard audit`.
51
+ failed, and `skipped` when the proof did not run. Then run `npx --prefer-offline --yes copilotkit@4.20.0 onboard audit`.
63
52
  Continue only when it starts with `Status: passed`.
64
53
 
65
54
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -74,11 +63,11 @@ the path and the change the audit reports. Run the audit again after each accept
74
63
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
75
64
 
76
65
  ```text
77
- npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
66
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/stop
78
67
  ```
79
68
 
80
69
  When the audit passes and the round trip you reported above was `passed`, run
81
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/complete` and complete with
70
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/complete` and complete with
82
71
  `--visual-check channels-proof-passed`. The recorded mention and reply are this run's
83
72
  proof, so no web app check is missing. Use `--visual-check performed` only when a
84
73
  browser drove Slack or Teams web and proved the mention reply. Do not use
@@ -3,12 +3,14 @@
3
3
  First, report your coding agent identity using the same command as generic onboarding:
4
4
 
5
5
  ```text
6
- npx --prefer-offline --yes copilotkit@4.18.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id>
6
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
7
7
  ```
8
8
 
9
- Use your own product's slug, such as `codex` or `claude-code`. For `--model`, give the
10
- exact model id your instructions name. If they name none, leave out `--model` rather than
11
- guess. This also covers entry commands that omit `--coding-agent`. It needs no login,
9
+ Use your own product's slug, such as `codex` or `claude-code`. For `--model`, copy the
10
+ model id exactly as your instructions write it. If they name no exact model id, leave out
11
+ `--model` rather than guess. For `--model-family`, give the family of the model you run,
12
+ such as `claude-opus` or `gpt-5`, and leave it out if you do not know it. Never give your
13
+ product slug as a model or a family. This also covers entry commands that omit `--coding-agent`. It needs no login,
12
14
  browser, or project setup.
13
15
 
14
16
  Treat Slack or Teams as the UI for this run. A CopilotKit web app is not required.
@@ -32,13 +34,13 @@ carry on. Keep a read-only assignment read-only. If no subagent works at all, re
32
34
  once:
33
35
 
34
36
  ```text
35
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase delegation-unavailable
37
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard checkpoint --phase delegation-unavailable
36
38
  ```
37
39
 
38
40
  Before you end your turn to wait for the developer, report the pause:
39
41
 
40
42
  ```text
41
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase awaiting-developer
43
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard checkpoint --phase awaiting-developer
42
44
  ```
43
45
 
44
46
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
@@ -48,7 +50,7 @@ If you stop this run, send one short report before you stop. The friction comman
48
50
  the telemetry setting the developer already chose, so it needs no separate question.
49
51
 
50
52
  ```text
51
- npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --phase stop --category <slug> --message "<sentences>"
53
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard friction --phase stop --category <slug> --message "<sentences>"
52
54
  ```
53
55
 
54
56
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -62,7 +64,7 @@ one scoped fix, and sends the report itself when no fix is approved.
62
64
  Before any subagent or project process runs, capture the developer's existing work:
63
65
 
64
66
  ```text
65
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect
67
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect
66
68
  ```
67
69
 
68
70
  Keep the exact protected path list it prints and give that list to every subagent. Do not
@@ -92,12 +94,9 @@ This one does not.
92
94
  Wait for the inspection subagent to finish. Then report that the inspection came back:
93
95
 
94
96
  ```text
95
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase research-returned
97
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard checkpoint --phase research-returned
96
98
  ```
97
99
 
98
- A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
99
- failed step.
100
-
101
100
  If the folder is empty, check Node 22, `uv`, and Python before cloning. Python 3.12 or
102
101
  newer satisfies the check. If no Python 3.12 or newer is present and `uv` is, offer once
103
102
  to install one with `uv python install 3.12`, and continue after the developer approves.
@@ -109,7 +108,7 @@ and its install command in the message the developer sees: `nvm install 22` for
109
108
  for Python. Offer a custom headless build as a later path. Then route out:
110
109
 
111
110
  ```text
112
- npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
111
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/stop
113
112
  ```
114
113
 
115
114
  Do not run login, select Intelligence, or create a credential until the developer
@@ -139,17 +138,11 @@ one.
139
138
  After approval, record each approved path before implementation:
140
139
 
141
140
  ```text
142
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
141
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
143
142
  ```
144
143
 
145
144
  If an approved path changed after capture and no implementation step has run, add
146
145
  `--with-prior-change`. Continue only when every result starts with `Status: passed`. Do not
147
146
  authorize a path the approved plan did not list.
148
147
 
149
- Then report the plan this run is about to implement:
150
-
151
- ```text
152
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase plan-written
153
- ```
154
-
155
- Then run `npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/channels/implement`.
148
+ Then run `npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/channels/implement`.
@@ -15,7 +15,7 @@ Run focused type/test checks and start the app. Record the changed files and val
15
15
  Before you spawn the implementation subagent, take the authorized list from the CLI:
16
16
 
17
17
  ```text
18
- npx --prefer-offline --yes copilotkit@4.18.0 onboard audit
18
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard audit
19
19
  ```
20
20
 
21
21
  From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
@@ -34,7 +34,7 @@ still go on the record. Name the file and why the work needs it, then end your t
34
34
  for the developer's answer. If they allow it, record their answer before any edit:
35
35
 
36
36
  ```text
37
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
37
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
38
38
  ```
39
39
 
40
40
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -46,7 +46,7 @@ feature stop route below.
46
46
  After validation and each repair, run:
47
47
 
48
48
  ```text
49
- npx --prefer-offline --yes copilotkit@4.18.0 onboard audit
49
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard audit
50
50
  ```
51
51
 
52
52
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -57,7 +57,7 @@ with the implementation subagent's `Files changed` section. If that section does
57
57
  the path, accept the developer's external change:
58
58
 
59
59
  ```text
60
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --accept-external --path <path>
60
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --accept-external --path <path>
61
61
  ```
62
62
 
63
63
  For an env file where the developer placed a requested credential, use
@@ -70,17 +70,11 @@ Run the audit again after each accepted change. If it still fails, or starts
70
70
  with `Status: blocked`, route out and stop:
71
71
 
72
72
  ```text
73
- npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
74
- ```
75
-
76
- When implementation validation passes, report it:
77
-
78
- ```text
79
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase build-validated
73
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/stop
80
74
  ```
81
75
 
82
76
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
83
77
  the feature stop route above without further changes.
84
78
 
85
79
  Otherwise run
86
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/chat-suggestions/proof`.
80
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/chat-suggestions/proof`.
@@ -20,7 +20,7 @@ still go on the record. Name the file and why the fix needs it, then end your tu
20
20
  for the developer's answer. If they allow it, record their answer before any edit:
21
21
 
22
22
  ```text
23
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
23
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
24
24
  ```
25
25
 
26
26
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -29,26 +29,15 @@ same handoff and that list. A subagent that already returned cannot pick up cons
29
29
  after it was spawned. If you cannot ask, or the developer declines, take the feature stop
30
30
  route below.
31
31
 
32
- Report each attempt at the proof as it ends, counting from one:
32
+ Report the outcome of each attempt as it ends, before any repair. The command counts the
33
+ attempts and the repairs:
33
34
 
34
35
  ```text
35
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase journey-attempted --attempt 1
36
- ```
37
-
38
- Report each repair cycle the same way, counting from one:
39
-
40
- ```text
41
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase repair-attempted --attempt 1
42
- ```
43
-
44
- After the final attempt, report the gate exactly once:
45
-
46
- ```text
47
- npx --prefer-offline --yes copilotkit@4.18.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
36
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
48
37
  ```
49
38
 
50
39
  Use `passed` only for a proved sent suggestion, `failed` for an attempted proof that failed,
51
- and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.18.0 onboard audit`.
40
+ and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.20.0 onboard audit`.
52
41
  Continue only when it starts with `Status: passed`.
53
42
 
54
43
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -63,9 +52,9 @@ the path and the change the audit reports. Run the audit again after each accept
63
52
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
64
53
 
65
54
  ```text
66
- npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
55
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/stop
67
56
  ```
68
57
 
69
58
  When the audit passes, run
70
- `npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/complete` with the real browser-proof
59
+ `npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/complete` with the real browser-proof
71
60
  outcome.
@@ -19,13 +19,13 @@ carry on. Keep a read-only assignment read-only. If no subagent works at all, re
19
19
  once:
20
20
 
21
21
  ```text
22
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase delegation-unavailable
22
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard checkpoint --phase delegation-unavailable
23
23
  ```
24
24
 
25
25
  Before you end your turn to wait for the developer, report the pause:
26
26
 
27
27
  ```text
28
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase awaiting-developer
28
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard checkpoint --phase awaiting-developer
29
29
  ```
30
30
 
31
31
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
@@ -35,7 +35,7 @@ If you stop this run, send one short report before you stop. The friction comman
35
35
  the telemetry setting the developer already chose, so it needs no separate question.
36
36
 
37
37
  ```text
38
- npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --phase stop --category <slug> --message "<sentences>"
38
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard friction --phase stop --category <slug> --message "<sentences>"
39
39
  ```
40
40
 
41
41
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -49,7 +49,7 @@ one scoped fix, and sends the report itself when no fix is approved.
49
49
  Before any subagent or project process runs, capture the developer's existing work:
50
50
 
51
51
  ```text
52
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect
52
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect
53
53
  ```
54
54
 
55
55
  Keep the exact protected path list it prints and give that list to every subagent. No
@@ -58,23 +58,20 @@ approved authorization before implementation.
58
58
 
59
59
  Before edits, identify the current CopilotKit provider, chat component, message lifecycle,
60
60
  agent id, package version, and test/dev commands. Prove the existing OSS round trip with
61
- `/info`, `npx --prefer-offline --yes copilotkit@4.18.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
61
+ `/info`, `npx --prefer-offline --yes copilotkit@4.20.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
62
62
  and one real frontend request when browser control is available.
63
63
 
64
64
  Wait for the inspection subagent to finish. Then report that the inspection came back:
65
65
 
66
66
  ```text
67
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase research-returned
67
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard checkpoint --phase research-returned
68
68
  ```
69
69
 
70
- A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
71
- failed step.
72
-
73
70
  If the inspection did not prove the baseline this intent extends, stop here without
74
71
  changing files:
75
72
 
76
73
  ```text
77
- npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
74
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/stop
78
75
  ```
79
76
 
80
77
  Do not run login, provision Intelligence, request a credential, replace the agent, or alter
@@ -96,17 +93,11 @@ one.
96
93
  After approval, record each approved path before implementation:
97
94
 
98
95
  ```text
99
- npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
96
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
100
97
  ```
101
98
 
102
99
  If an approved path changed after capture and no implementation step has run, add
103
100
  `--with-prior-change`. Continue only when every result starts with `Status: passed`. Do not
104
101
  authorize a path the approved plan did not list.
105
102
 
106
- Then report the plan this run is about to implement:
107
-
108
- ```text
109
- npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase plan-written
110
- ```
111
-
112
- Then run `npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/chat-suggestions/implement`.
103
+ Then run `npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/chat-suggestions/implement`.
@@ -3,7 +3,7 @@
3
3
  Use the outcome the proof step observed. Run:
4
4
 
5
5
  ```text
6
- npx --prefer-offline --yes copilotkit@4.18.0 onboard complete --visual-check <performed|skipped-no-browser-tool|channels-proof-passed|failed>
6
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard complete --visual-check <performed|skipped-no-browser-tool|channels-proof-passed|failed>
7
7
  ```
8
8
 
9
9
  Use `channels-proof-passed` for a Slack or Teams run that recorded a passed round-trip proof
@@ -14,13 +14,15 @@ Use `performed` only when browser control drove the real user-visible surface. U
14
14
  `skipped-no-browser-tool` only when no browser tool was available. Use `failed` when the
15
15
  browser proof ran but did not prove the feature.
16
16
 
17
+ Paste the **Handoff facts** block the command prints into your summary, as it is.
18
+
17
19
  ## Report friction before completing
18
20
 
19
21
  Before `onboard complete`, send the friction this run mentioned to the developer, one
20
22
  report each, at most four, costliest first:
21
23
 
22
24
  ```text
23
- npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
25
+ npx --prefer-offline --yes copilotkit@4.20.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
24
26
  ```
25
27
 
26
28
  Put one or two sentences in `--message`, with no secrets, source, or logs. Pick the