copilotkit 4.17.0 → 4.19.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 (81) hide show
  1. package/README.md +133 -6
  2. package/cli-build-info.json +7 -7
  3. package/exporters/langgraph/README.md +118 -0
  4. package/exporters/langgraph/export_checkpointer.py +125 -0
  5. package/index.js +13382 -9313
  6. package/onboarding/index.json +1 -1
  7. package/onboarding/prompts/authenticate/start.md +31 -23
  8. package/onboarding/prompts/conversion/plan.md +3 -3
  9. package/onboarding/prompts/credentials/finalize-plan.md +57 -200
  10. package/onboarding/prompts/credentials/plan.md +50 -23
  11. package/onboarding/prompts/credentials/settle-credentials.md +56 -217
  12. package/onboarding/prompts/credentials/write-plan.md +17 -8
  13. package/onboarding/prompts/fallback/best-effort.md +36 -24
  14. package/onboarding/prompts/feature/a2ui/implement.md +7 -7
  15. package/onboarding/prompts/feature/a2ui/proof.md +8 -8
  16. package/onboarding/prompts/feature/a2ui/start.md +53 -9
  17. package/onboarding/prompts/feature/channels/implement.md +8 -8
  18. package/onboarding/prompts/feature/channels/proof.md +7 -7
  19. package/onboarding/prompts/feature/channels/start.md +50 -7
  20. package/onboarding/prompts/feature/chat-suggestions/implement.md +7 -7
  21. package/onboarding/prompts/feature/chat-suggestions/proof.md +7 -7
  22. package/onboarding/prompts/feature/chat-suggestions/start.md +50 -7
  23. package/onboarding/prompts/feature/complete.md +2 -2
  24. package/onboarding/prompts/feature/learning/implement.md +24 -19
  25. package/onboarding/prompts/feature/learning/proof.md +8 -8
  26. package/onboarding/prompts/feature/learning/start.md +43 -20
  27. package/onboarding/prompts/feature/open-generative-ui/implement.md +7 -7
  28. package/onboarding/prompts/feature/open-generative-ui/proof.md +7 -7
  29. package/onboarding/prompts/feature/open-generative-ui/start.md +50 -7
  30. package/onboarding/prompts/feature/realtime-sync/implement.md +8 -8
  31. package/onboarding/prompts/feature/realtime-sync/proof.md +7 -7
  32. package/onboarding/prompts/feature/realtime-sync/start.md +49 -6
  33. package/onboarding/prompts/feature/rich-threads/implement.md +9 -9
  34. package/onboarding/prompts/feature/rich-threads/proof.md +7 -7
  35. package/onboarding/prompts/feature/rich-threads/start.md +49 -6
  36. package/onboarding/prompts/feature/stop.md +5 -5
  37. package/onboarding/prompts/feature/voice/implement.md +7 -7
  38. package/onboarding/prompts/feature/voice/proof.md +7 -7
  39. package/onboarding/prompts/feature/voice/start.md +50 -7
  40. package/onboarding/prompts/framework/ag2.md +2 -2
  41. package/onboarding/prompts/framework/agno.md +2 -2
  42. package/onboarding/prompts/framework/built-in.md +2 -2
  43. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  44. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  45. package/onboarding/prompts/framework/crewai-flows.md +2 -2
  46. package/onboarding/prompts/framework/deep-agents.md +2 -2
  47. package/onboarding/prompts/framework/google-adk.md +2 -2
  48. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  49. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  50. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  51. package/onboarding/prompts/framework/llamaindex.md +2 -2
  52. package/onboarding/prompts/framework/mastra.md +2 -2
  53. package/onboarding/prompts/framework/ms-agent-dotnet.md +8 -3
  54. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +8 -3
  55. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  56. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  57. package/onboarding/prompts/framework/strands-python.md +2 -2
  58. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  59. package/onboarding/prompts/frontend/angular.md +3 -3
  60. package/onboarding/prompts/frontend/nextjs.md +3 -3
  61. package/onboarding/prompts/frontend/plan.md +9 -8
  62. package/onboarding/prompts/frontend/react-native.md +2 -2
  63. package/onboarding/prompts/frontend/react-spa.md +2 -2
  64. package/onboarding/prompts/frontend/vue.md +2 -2
  65. package/onboarding/prompts/implementation/build-and-validate.md +27 -20
  66. package/onboarding/prompts/proof/complete.md +35 -19
  67. package/onboarding/prompts/proof/oss-baseline.md +5 -5
  68. package/onboarding/prompts/proof/round-trip.md +29 -20
  69. package/onboarding/prompts/research/gather.md +6 -6
  70. package/onboarding/prompts/research/merge.md +5 -4
  71. package/onboarding/prompts/research/preflight.md +15 -50
  72. package/onboarding/prompts/research/route.md +7 -6
  73. package/onboarding/prompts/starter/clone.md +8 -7
  74. package/onboarding/prompts/stopped/run-failed.md +4 -4
  75. package/onboarding/prompts/subagent/create-plan.md +19 -1
  76. package/onboarding/prompts/subagent/inspect-repository.md +18 -3
  77. package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
  78. package/onboarding/prompts/subagent/prove-round-trip.md +106 -62
  79. package/onboarding/prompts/unsupported/no-validated-path.md +4 -4
  80. package/package.json +1 -1
  81. package/release/release-tool.js +28 -5
@@ -12,12 +12,12 @@ resolve, a container id that never resolves, an audit that still fails or is blo
12
12
  cannot be cleared, validation that cannot pass, and an intent that needs a prerequisite the
13
13
  app does not have. Each one stops onboarding for a developer who has already approved a
14
14
  plan. Name the exact command, id, and error code that stopped you: a report that names only
15
- the step cannot be acted on. Send one short report before you stop. Run the friction
16
- command without another developer question. Do not ask the developer about telemetry: the
17
- command applies the setting they already have.
15
+ the step cannot be acted on. Send one short report before you stop. The friction command
16
+ follows the telemetry setting the developer already chose, so it needs no separate
17
+ question.
18
18
 
19
19
  ```text
20
- npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --phase stop --category <slug> --message "<sentences>"
20
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard friction --phase stop --category <slug> --message "<sentences>"
21
21
  ```
22
22
 
23
23
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -36,6 +36,11 @@ scoped fix, and sends the report itself when no fix is approved.
36
36
 
37
37
  After the project is selected, settle the container from the terminal.
38
38
 
39
+ The `learning containers` commands and `project select` need a CLI sign-in. A project API
40
+ key in `.env` does not replace it, even when the app already authenticates with that key:
41
+ the key serves the app's runtime only. So `AUTH_FAILED` from these commands means sign in
42
+ with `login --json`, not look for another credential.
43
+
39
44
  Whichever of the two reads below runs first also answers the entitlement question, because
40
45
  a read carries the same availability gate as the create. Read `status` and `error.code`
41
46
  from its payload. Route on the code rather than on the exit status.
@@ -44,7 +49,7 @@ settled refusal rather than a missing baseline, so stop here, before any file ch
44
49
  take its own ending:
45
50
 
46
51
  ```text
47
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/blocked-by-plan
52
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/blocked-by-plan
48
53
  ```
49
54
 
50
55
  `LEARNING_AVAILABILITY_UNAVAILABLE` means the platform did not resolve the answer. It is
@@ -58,7 +63,7 @@ then, so the read below is where its refusal surfaces.
58
63
  When the plan or the repository already names an id, ask about that one id and nothing else:
59
64
 
60
65
  ```text
61
- npx --prefer-offline --yes copilotkit@4.17.0 learning containers get <id> --json
66
+ npx --prefer-offline --yes copilotkit@4.19.0 learning containers get <id> --json
62
67
  ```
63
68
 
64
69
  One call answers it, and no list is needed.
@@ -66,7 +71,7 @@ One call answers it, and no list is needed.
66
71
  When no id is in hand, survey what the project holds:
67
72
 
68
73
  ```text
69
- npx --prefer-offline --yes copilotkit@4.17.0 learning containers list --json
74
+ npx --prefer-offline --yes copilotkit@4.19.0 learning containers list --json
70
75
  ```
71
76
 
72
77
  One call returns at most 500 containers. When `nextCursor` in the result is not null, read
@@ -77,7 +82,7 @@ second container for work the first one already covers.
77
82
  Report what the read found before asking anyone anything:
78
83
 
79
84
  ```text
80
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase container-surveyed
85
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase container-surveyed
81
86
  ```
82
87
 
83
88
  Everything after this waits on a person, so a run that stops past this point stopped on a
@@ -98,7 +103,7 @@ user, so the callback can return a different id per tier or per customer.
98
103
  Ask the CLI for the id rather than spelling one yourself:
99
104
 
100
105
  ```text
101
- npx --prefer-offline --yes copilotkit@4.17.0 learning containers default-id --json
106
+ npx --prefer-offline --yes copilotkit@4.19.0 learning containers default-id --json
102
107
  ```
103
108
 
104
109
  It derives the project-scoped id from the selected project's slug, reads the local project
@@ -112,7 +117,7 @@ run that spells the id differently gives one project two containers, each below
112
117
  above on its own. One command is what keeps the two spellings identical.
113
118
 
114
119
  ```text
115
- npx --prefer-offline --yes copilotkit@4.17.0 learning containers create --id <id> --name <name> --json
120
+ npx --prefer-offline --yes copilotkit@4.19.0 learning containers create --id <id> --name <name> --json
116
121
  ```
117
122
 
118
123
  An id already in use answers `LEARNING_CONTAINER_ALREADY_EXISTS`. That is a container to
@@ -127,7 +132,7 @@ or a guessed id.
127
132
  Then report that the container is settled, before any edit:
128
133
 
129
134
  ```text
130
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase container-settled
135
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase container-settled
131
136
  ```
132
137
 
133
138
  Everything above happens between two prompts, so a run that stopped on a developer who could
@@ -148,13 +153,13 @@ non-zero on an app that is working. Pass what `identifyUser` reads with a repeat
148
153
  It is not a defect to repair.
149
154
 
150
155
  Run focused tests and
151
- `npx --prefer-offline --yes copilotkit@4.17.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
156
+ `npx --prefer-offline --yes copilotkit@4.19.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
152
157
  Repair changed-file failures and record secret-safe evidence.
153
158
 
154
159
  Before you spawn the implementation subagent, take the authorized list from the CLI:
155
160
 
156
161
  ```text
157
- npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
162
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard audit
158
163
  ```
159
164
 
160
165
  From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
@@ -173,7 +178,7 @@ still go on the record. Name the file and why the work needs it, then end your t
173
178
  for the developer's answer. If they allow it, record their answer before any edit:
174
179
 
175
180
  ```text
176
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
181
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
177
182
  ```
178
183
 
179
184
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -185,7 +190,7 @@ feature stop route below.
185
190
  After validation and each repair, run:
186
191
 
187
192
  ```text
188
- npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
193
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard audit
189
194
  ```
190
195
 
191
196
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -196,7 +201,7 @@ with the implementation subagent's `Files changed` section. If that section does
196
201
  the path, accept the developer's external change:
197
202
 
198
203
  ```text
199
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-external --path <path>
204
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --accept-external --path <path>
200
205
  ```
201
206
 
202
207
  For an env file where the developer placed a requested credential, use
@@ -210,17 +215,17 @@ with `Status: blocked`, route out and stop. Route out the same way when
210
215
  `--accept-credential` refuses because it names a lost variable:
211
216
 
212
217
  ```text
213
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
218
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/stop
214
219
  ```
215
220
 
216
221
  When implementation validation passes, report it:
217
222
 
218
223
  ```text
219
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase build-validated
224
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase build-validated
220
225
  ```
221
226
 
222
227
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
223
228
  the feature stop route above without further changes.
224
229
 
225
230
  Otherwise run
226
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/learning/proof`.
231
+ `npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/learning/proof`.
@@ -7,7 +7,7 @@ Container. Confirm the thread remains associated with the expected user.
7
7
  One command decides it:
8
8
 
9
9
  ```text
10
- npx --prefer-offline --yes copilotkit@4.17.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --expect-learning-container <id> --json
10
+ npx --prefer-offline --yes copilotkit@4.19.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --expect-learning-container <id> --json
11
11
  ```
12
12
 
13
13
  It reads the thread back from the platform, so it answers for any runtime mount, and it
@@ -40,7 +40,7 @@ still go on the record. Name the file and why the fix needs it, then end your tu
40
40
  for the developer's answer. If they allow it, record their answer before any edit:
41
41
 
42
42
  ```text
43
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
43
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
44
44
  ```
45
45
 
46
46
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -52,24 +52,24 @@ route below.
52
52
  Report each attempt at the proof as it ends, counting from one:
53
53
 
54
54
  ```text
55
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase journey-attempted --attempt 1
55
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase journey-attempted --attempt 1
56
56
  ```
57
57
 
58
58
  Report each repair cycle the same way, counting from one:
59
59
 
60
60
  ```text
61
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase repair-attempted --attempt 1
61
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase repair-attempted --attempt 1
62
62
  ```
63
63
 
64
64
  After the final attempt, report the gate exactly once:
65
65
 
66
66
  ```text
67
- npx --prefer-offline --yes copilotkit@4.17.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
67
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
68
68
  ```
69
69
 
70
70
  Use `passed` only for a proved Container assignment, `failed` for an attempted proof that
71
71
  failed, and `skipped` when the proof could not run. Then run
72
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard audit`. Continue only when it starts with
72
+ `npx --prefer-offline --yes copilotkit@4.19.0 onboard audit`. Continue only when it starts with
73
73
  `Status: passed`.
74
74
 
75
75
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -84,9 +84,9 @@ the path and the change the audit reports. Run the audit again after each accept
84
84
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
85
85
 
86
86
  ```text
87
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
87
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/stop
88
88
  ```
89
89
 
90
90
  When the audit passes, run
91
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/complete` with the actual surface
91
+ `npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/complete` with the actual surface
92
92
  outcome.
@@ -4,28 +4,51 @@ Treat Learning as a managed Intelligence feature that assigns real threads to a
4
4
  Learning Container. Orchestrate with separate read-only, implementation, and proof
5
5
  subagents. Work only inside the target project and preserve its existing agent and chat.
6
6
 
7
- ## If you stop in this phase
7
+ ## Waits, stops, and subagents
8
8
 
9
- Name the exact command, code, or check that stopped you, then send one short report. Run the
10
- friction command without another developer question. Do not ask the developer about
11
- telemetry: the command applies the setting they already have.
9
+ A run that starts here has not read these rules yet, so they come first. They cover this
10
+ prompt and every later one.
11
+
12
+ Spawning a subagent returns almost at once. That return is the dispatch succeeding, not the
13
+ work finishing: the result reaches you as a notification, or with the dispatch itself where
14
+ your harness works that way. Do the work that does not depend on the result, then end your
15
+ turn and wait for the result. That wait is a pause. Do not sleep or poll.
16
+
17
+ A subagent that returns no usable result failed in your harness, not in this graph. Every
18
+ assignment here is work you can do yourself, slower, so run that assignment yourself and
19
+ carry on. Keep a read-only assignment read-only. If no subagent works at all, report it
20
+ once:
21
+
22
+ ```text
23
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase delegation-unavailable
24
+ ```
25
+
26
+ Before you end your turn to wait for the developer, report the pause:
27
+
28
+ ```text
29
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase awaiting-developer
30
+ ```
31
+
32
+ A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
33
+ When the answer or the result arrives, continue from the step that paused.
34
+
35
+ If you stop this run, send one short report before you stop. The friction command follows
36
+ the telemetry setting the developer already chose, so it needs no separate question.
12
37
 
13
38
  ```text
14
- npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --phase stop --category <slug> --message "<sentences>"
39
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard friction --phase stop --category <slug> --message "<sentences>"
15
40
  ```
16
41
 
17
42
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
18
43
  Pick the category that fits from docs-missing, docs-wrong, docs-sequential, cli-gap,
19
44
  sdk-gap, environment, port-collision, credential, validation-loop, and other. Leave
20
- --cost-seconds off. A run that stopped cannot separate one papercut's cost from the cost of
21
- the whole run, so the estimate is optional on a stop report and only there. Send no secrets,
22
- source code, logs, or command output. A refused report is not a failed step: reword it and
23
- send it again, or stop without a report.
45
+ --cost-seconds off. Send no secrets, source code, logs, or command output. A refused report
46
+ is not a failed step: reword it and send it again, or stop without a report. A stop that
47
+ routes to `feature/stop` sends no report here: that prompt first asks the developer about
48
+ one scoped fix, and sends the report itself when no fix is approved.
24
49
 
25
- A refusal by the platform is the one exception. It reaches `feature/blocked-by-plan`, which
26
- reports the ending by itself and says to file nothing further. A stop that routes to
27
- `feature/stop` also sends no report here: that prompt first asks the developer about one
28
- scoped fix, and sends the report itself when no fix is approved.
50
+ A refusal by the platform also sends no report here. It reaches `feature/blocked-by-plan`, which
51
+ reports the ending by itself and says to file nothing further.
29
52
 
30
53
  Ask the platform whether this organization may use Learning before doing any work. The
31
54
  read carries the same availability gate as the create, so it answers the entitlement
@@ -43,7 +66,7 @@ status:
43
66
  before the capture, the inspection, and any edit:
44
67
 
45
68
  ```text
46
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/blocked-by-plan
69
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/blocked-by-plan
47
70
  ```
48
71
 
49
72
  - `LEARNING_AVAILABILITY_UNAVAILABLE` means the platform did not resolve the answer. It is
@@ -64,7 +87,7 @@ again: it has no answer, so it carries the question forward rather than ending o
64
87
  Before any subagent or project process runs, capture the developer's existing work:
65
88
 
66
89
  ```text
67
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect
90
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard protect
68
91
  ```
69
92
 
70
93
  Keep the exact protected path list it prints and give that list to every subagent. No
@@ -78,7 +101,7 @@ test/dev commands. Prove the current round trip and inspect `/info`.
78
101
  Wait for the inspection subagent to finish. Then report that the inspection came back:
79
102
 
80
103
  ```text
81
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase research-returned
104
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase research-returned
82
105
  ```
83
106
 
84
107
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -88,7 +111,7 @@ If the inspection did not prove the baseline this intent extends, stop here with
88
111
  changing files:
89
112
 
90
113
  ```text
91
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
114
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/stop
92
115
  ```
93
116
 
94
117
  Fetch the current official guides before planning:
@@ -120,7 +143,7 @@ one.
120
143
  After approval, record each approved path before implementation:
121
144
 
122
145
  ```text
123
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
146
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
124
147
  ```
125
148
 
126
149
  If an approved path changed after capture and no implementation step has run, add
@@ -130,7 +153,7 @@ authorize a path the approved plan did not list.
130
153
  Then report the plan this run is about to implement:
131
154
 
132
155
  ```text
133
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase plan-written
156
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase plan-written
134
157
  ```
135
158
 
136
- Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/learning/implement`.
159
+ Then run `npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/learning/implement`.
@@ -16,7 +16,7 @@ validation results without secrets.
16
16
  Before you spawn the implementation subagent, take the authorized list from the CLI:
17
17
 
18
18
  ```text
19
- npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
19
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard audit
20
20
  ```
21
21
 
22
22
  From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
@@ -35,7 +35,7 @@ still go on the record. Name the file and why the work needs it, then end your t
35
35
  for the developer's answer. If they allow it, record their answer before any edit:
36
36
 
37
37
  ```text
38
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
38
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
39
39
  ```
40
40
 
41
41
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -47,7 +47,7 @@ feature stop route below.
47
47
  After validation and each repair, run:
48
48
 
49
49
  ```text
50
- npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
50
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard audit
51
51
  ```
52
52
 
53
53
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -58,7 +58,7 @@ with the implementation subagent's `Files changed` section. If that section does
58
58
  the path, accept the developer's external change:
59
59
 
60
60
  ```text
61
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-external --path <path>
61
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --accept-external --path <path>
62
62
  ```
63
63
 
64
64
  For an env file where the developer placed a requested credential, use
@@ -71,17 +71,17 @@ Run the audit again after each accepted change. If it still fails, or starts
71
71
  with `Status: blocked`, route out and stop:
72
72
 
73
73
  ```text
74
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
74
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/stop
75
75
  ```
76
76
 
77
77
  When implementation validation passes, report it:
78
78
 
79
79
  ```text
80
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase build-validated
80
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase build-validated
81
81
  ```
82
82
 
83
83
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
84
84
  the feature stop route above without further changes.
85
85
 
86
86
  Otherwise run
87
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/open-generative-ui/proof`.
87
+ `npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/open-generative-ui/proof`.
@@ -21,7 +21,7 @@ still go on the record. Name the file and why the fix needs it, then end your tu
21
21
  for the developer's answer. If they allow it, record their answer before any edit:
22
22
 
23
23
  ```text
24
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
24
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
25
25
  ```
26
26
 
27
27
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -33,23 +33,23 @@ route below.
33
33
  Report each attempt at the proof as it ends, counting from one:
34
34
 
35
35
  ```text
36
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase journey-attempted --attempt 1
36
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase journey-attempted --attempt 1
37
37
  ```
38
38
 
39
39
  Report each repair cycle the same way, counting from one:
40
40
 
41
41
  ```text
42
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase repair-attempted --attempt 1
42
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase repair-attempted --attempt 1
43
43
  ```
44
44
 
45
45
  After the final attempt, report the gate exactly once:
46
46
 
47
47
  ```text
48
- npx --prefer-offline --yes copilotkit@4.17.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
48
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
49
49
  ```
50
50
 
51
51
  Use `passed` only for a proved generated UI, `failed` for an attempted proof that failed,
52
- and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard audit`.
52
+ and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.19.0 onboard audit`.
53
53
  Continue only when it starts with `Status: passed`.
54
54
 
55
55
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -64,9 +64,9 @@ the path and the change the audit reports. Run the audit again after each accept
64
64
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
65
65
 
66
66
  ```text
67
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
67
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/stop
68
68
  ```
69
69
 
70
70
  When the audit passes, run
71
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/complete` with the outcome actually
71
+ `npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/complete` with the outcome actually
72
72
  observed.
@@ -3,10 +3,53 @@
3
3
  Treat this as a focused OSS enhancement. Orchestrate the work with separate read-only,
4
4
  implementation, and proof subagents, all restricted to the target project directory.
5
5
 
6
+ ## Waits, stops, and subagents
7
+
8
+ A run that starts here has not read these rules yet, so they come first. They cover this
9
+ prompt and every later one.
10
+
11
+ Spawning a subagent returns almost at once. That return is the dispatch succeeding, not the
12
+ work finishing: the result reaches you as a notification, or with the dispatch itself where
13
+ your harness works that way. Do the work that does not depend on the result, then end your
14
+ turn and wait for the result. That wait is a pause. Do not sleep or poll.
15
+
16
+ A subagent that returns no usable result failed in your harness, not in this graph. Every
17
+ assignment here is work you can do yourself, slower, so run that assignment yourself and
18
+ carry on. Keep a read-only assignment read-only. If no subagent works at all, report it
19
+ once:
20
+
21
+ ```text
22
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase delegation-unavailable
23
+ ```
24
+
25
+ Before you end your turn to wait for the developer, report the pause:
26
+
27
+ ```text
28
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase awaiting-developer
29
+ ```
30
+
31
+ A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
32
+ When the answer or the result arrives, continue from the step that paused.
33
+
34
+ If you stop this run, send one short report before you stop. The friction command follows
35
+ the telemetry setting the developer already chose, so it needs no separate question.
36
+
37
+ ```text
38
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard friction --phase stop --category <slug> --message "<sentences>"
39
+ ```
40
+
41
+ `--message` takes one or two sentences: the step you stopped at and what stopped it.
42
+ Pick the category that fits from docs-missing, docs-wrong, docs-sequential, cli-gap,
43
+ sdk-gap, environment, port-collision, credential, validation-loop, and other. Leave
44
+ --cost-seconds off. Send no secrets, source code, logs, or command output. A refused report
45
+ is not a failed step: reword it and send it again, or stop without a report. A stop that
46
+ routes to `feature/stop` sends no report here: that prompt first asks the developer about
47
+ one scoped fix, and sends the report itself when no fix is approved.
48
+
6
49
  Before any subagent or project process runs, capture the developer's existing work:
7
50
 
8
51
  ```text
9
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect
52
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard protect
10
53
  ```
11
54
 
12
55
  Keep the exact protected path list it prints and give that list to every subagent. No
@@ -16,13 +59,13 @@ approved authorization before implementation.
16
59
  Before edits, have a research subagent identify the current CopilotKit runtime route,
17
60
  provider/chat component, agent id, package versions, existing middleware, sandbox/CSP
18
61
  constraints, and normal test/dev commands. Prove the existing app first with `/info`,
19
- `npx --prefer-offline --yes copilotkit@4.17.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
62
+ `npx --prefer-offline --yes copilotkit@4.19.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
20
63
  and a real frontend request when browser control is available.
21
64
 
22
65
  Wait for the inspection subagent to finish. Then report that the inspection came back:
23
66
 
24
67
  ```text
25
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase research-returned
68
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase research-returned
26
69
  ```
27
70
 
28
71
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -32,7 +75,7 @@ If the inspection did not prove the baseline this intent extends, stop here with
32
75
  changing files:
33
76
 
34
77
  ```text
35
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
78
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/stop
36
79
  ```
37
80
 
38
81
  Do not sign in, select an Intelligence project, create credentials, change the existing
@@ -54,7 +97,7 @@ one.
54
97
  After approval, record each approved path before implementation:
55
98
 
56
99
  ```text
57
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
100
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
58
101
  ```
59
102
 
60
103
  If an approved path changed after capture and no implementation step has run, add
@@ -64,7 +107,7 @@ authorize a path the approved plan did not list.
64
107
  Then report the plan this run is about to implement:
65
108
 
66
109
  ```text
67
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase plan-written
110
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase plan-written
68
111
  ```
69
112
 
70
- Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/open-generative-ui/implement`.
113
+ Then run `npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/open-generative-ui/implement`.
@@ -17,14 +17,14 @@ non-zero on an app that is working. Pass what `identifyUser` reads with a repeat
17
17
  It is not a defect to repair.
18
18
 
19
19
  Run focused tests and
20
- `npx --prefer-offline --yes copilotkit@4.17.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
20
+ `npx --prefer-offline --yes copilotkit@4.19.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
21
21
  Repair changed-file failures and record changed paths and secret-safe validation
22
22
  evidence.
23
23
 
24
24
  Before you spawn the implementation subagent, take the authorized list from the CLI:
25
25
 
26
26
  ```text
27
- npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
27
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard audit
28
28
  ```
29
29
 
30
30
  From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
@@ -43,7 +43,7 @@ still go on the record. Name the file and why the work needs it, then end your t
43
43
  for the developer's answer. If they allow it, record their answer before any edit:
44
44
 
45
45
  ```text
46
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
46
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
47
47
  ```
48
48
 
49
49
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -55,7 +55,7 @@ feature stop route below.
55
55
  After validation and each repair, run:
56
56
 
57
57
  ```text
58
- npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
58
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard audit
59
59
  ```
60
60
 
61
61
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -66,7 +66,7 @@ with the implementation subagent's `Files changed` section. If that section does
66
66
  the path, accept the developer's external change:
67
67
 
68
68
  ```text
69
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-external --path <path>
69
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --accept-external --path <path>
70
70
  ```
71
71
 
72
72
  For an env file where the developer placed a requested credential, use
@@ -79,17 +79,17 @@ Run the audit again after each accepted change. If it still fails, or starts
79
79
  with `Status: blocked`, route out and stop:
80
80
 
81
81
  ```text
82
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
82
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/stop
83
83
  ```
84
84
 
85
85
  When implementation validation passes, report it:
86
86
 
87
87
  ```text
88
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase build-validated
88
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase build-validated
89
89
  ```
90
90
 
91
91
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
92
92
  the feature stop route above without further changes.
93
93
 
94
94
  Otherwise run
95
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/realtime-sync/proof`.
95
+ `npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/realtime-sync/proof`.
@@ -23,7 +23,7 @@ still go on the record. Name the file and why the fix needs it, then end your tu
23
23
  for the developer's answer. If they allow it, record their answer before any edit:
24
24
 
25
25
  ```text
26
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
26
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
27
27
  ```
28
28
 
29
29
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -35,23 +35,23 @@ route below.
35
35
  Report each attempt at the proof as it ends, counting from one:
36
36
 
37
37
  ```text
38
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase journey-attempted --attempt 1
38
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase journey-attempted --attempt 1
39
39
  ```
40
40
 
41
41
  Report each repair cycle the same way, counting from one:
42
42
 
43
43
  ```text
44
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase repair-attempted --attempt 1
44
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard checkpoint --phase repair-attempted --attempt 1
45
45
  ```
46
46
 
47
47
  After the final attempt, report the gate exactly once:
48
48
 
49
49
  ```text
50
- npx --prefer-offline --yes copilotkit@4.17.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
50
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
51
51
  ```
52
52
 
53
53
  Use `passed` only for proved two-client sync, `failed` for an attempted proof that failed,
54
- and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard audit`.
54
+ and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.19.0 onboard audit`.
55
55
  Continue only when it starts with `Status: passed`.
56
56
 
57
57
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -66,8 +66,8 @@ the path and the change the audit reports. Run the audit again after each accept
66
66
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
67
67
 
68
68
  ```text
69
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
69
+ npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/stop
70
70
  ```
71
71
 
72
72
  When the audit passes, run
73
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/complete` with the actual outcome.
73
+ `npx --prefer-offline --yes copilotkit@4.19.0 onboard read feature/complete` with the actual outcome.