copilotkit 4.22.0 → 4.23.1

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 +390 -17
  2. package/cli-build-info.json +8 -8
  3. package/index.js +52224 -34474
  4. package/onboarding/index.json +83 -9
  5. package/onboarding/prompts/authenticate/start.md +44 -34
  6. package/onboarding/prompts/conversion/plan.md +3 -3
  7. package/onboarding/prompts/credentials/finalize-plan.md +12 -7
  8. package/onboarding/prompts/credentials/plan.md +23 -23
  9. package/onboarding/prompts/credentials/settle-credentials.md +10 -7
  10. package/onboarding/prompts/credentials/write-plan.md +17 -7
  11. package/onboarding/prompts/deployment/choose-local.md +46 -0
  12. package/onboarding/prompts/deployment/local-evaluation.md +71 -0
  13. package/onboarding/prompts/fallback/best-effort.md +8 -8
  14. package/onboarding/prompts/feature/a2ui/implement.md +6 -6
  15. package/onboarding/prompts/feature/a2ui/plan.md +72 -0
  16. package/onboarding/prompts/feature/a2ui/proof.md +5 -5
  17. package/onboarding/prompts/feature/a2ui/start.md +11 -32
  18. package/onboarding/prompts/feature/channels/implement.md +23 -16
  19. package/onboarding/prompts/feature/channels/plan.md +85 -0
  20. package/onboarding/prompts/feature/channels/proof.md +5 -5
  21. package/onboarding/prompts/feature/channels/start.md +14 -41
  22. package/onboarding/prompts/feature/chat-suggestions/implement.md +6 -6
  23. package/onboarding/prompts/feature/chat-suggestions/plan.md +71 -0
  24. package/onboarding/prompts/feature/chat-suggestions/proof.md +5 -5
  25. package/onboarding/prompts/feature/chat-suggestions/start.md +11 -30
  26. package/onboarding/prompts/feature/complete.md +2 -2
  27. package/onboarding/prompts/feature/learning/implement.md +13 -13
  28. package/onboarding/prompts/feature/learning/plan.md +82 -0
  29. package/onboarding/prompts/feature/learning/proof.md +6 -6
  30. package/onboarding/prompts/feature/learning/start.md +11 -40
  31. package/onboarding/prompts/feature/open-generative-ui/implement.md +6 -6
  32. package/onboarding/prompts/feature/open-generative-ui/plan.md +70 -0
  33. package/onboarding/prompts/feature/open-generative-ui/proof.md +5 -5
  34. package/onboarding/prompts/feature/open-generative-ui/start.md +11 -30
  35. package/onboarding/prompts/feature/realtime-sync/implement.md +7 -7
  36. package/onboarding/prompts/feature/realtime-sync/plan.md +75 -0
  37. package/onboarding/prompts/feature/realtime-sync/proof.md +5 -5
  38. package/onboarding/prompts/feature/realtime-sync/start.md +10 -33
  39. package/onboarding/prompts/feature/rich-threads/implement.md +8 -8
  40. package/onboarding/prompts/feature/rich-threads/plan.md +77 -0
  41. package/onboarding/prompts/feature/rich-threads/proof.md +5 -5
  42. package/onboarding/prompts/feature/rich-threads/start.md +10 -35
  43. package/onboarding/prompts/feature/stop.md +3 -3
  44. package/onboarding/prompts/feature/voice/implement.md +6 -6
  45. package/onboarding/prompts/feature/voice/plan.md +74 -0
  46. package/onboarding/prompts/feature/voice/proof.md +5 -5
  47. package/onboarding/prompts/feature/voice/start.md +11 -29
  48. package/onboarding/prompts/framework/ag2.md +2 -2
  49. package/onboarding/prompts/framework/agno.md +2 -2
  50. package/onboarding/prompts/framework/built-in.md +2 -2
  51. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  52. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  53. package/onboarding/prompts/framework/crewai-flows.md +2 -2
  54. package/onboarding/prompts/framework/custom-ag-ui.md +5 -2
  55. package/onboarding/prompts/framework/deep-agents.md +2 -2
  56. package/onboarding/prompts/framework/google-adk.md +2 -2
  57. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  58. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  59. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  60. package/onboarding/prompts/framework/llamaindex.md +2 -2
  61. package/onboarding/prompts/framework/mastra.md +2 -2
  62. package/onboarding/prompts/framework/ms-agent-dotnet.md +3 -3
  63. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +3 -3
  64. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  65. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  66. package/onboarding/prompts/framework/strands-python.md +2 -2
  67. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  68. package/onboarding/prompts/frontend/angular.md +3 -3
  69. package/onboarding/prompts/frontend/nextjs.md +3 -3
  70. package/onboarding/prompts/frontend/plan.md +7 -7
  71. package/onboarding/prompts/frontend/react-native.md +2 -2
  72. package/onboarding/prompts/frontend/react-spa.md +2 -2
  73. package/onboarding/prompts/frontend/vue.md +2 -2
  74. package/onboarding/prompts/implementation/build-and-validate.md +14 -13
  75. package/onboarding/prompts/proof/complete.md +3 -3
  76. package/onboarding/prompts/proof/oss-baseline.md +5 -5
  77. package/onboarding/prompts/proof/round-trip.md +16 -11
  78. package/onboarding/prompts/research/gather.md +9 -8
  79. package/onboarding/prompts/research/merge.md +6 -3
  80. package/onboarding/prompts/research/preflight.md +2 -2
  81. package/onboarding/prompts/research/route.md +22 -14
  82. package/onboarding/prompts/starter/clone.md +5 -5
  83. package/onboarding/prompts/stopped/run-failed.md +2 -2
  84. package/onboarding/prompts/subagent/create-plan.md +9 -2
  85. package/onboarding/prompts/subagent/implement-and-validate.md +34 -2
  86. package/onboarding/prompts/subagent/inspect-repository.md +1 -1
  87. package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
  88. package/onboarding/prompts/subagent/prove-round-trip.md +39 -21
  89. package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
  90. package/package.json +4 -1
  91. package/release/release-tool.js +167 -18
  92. package/services/local-auth-worker.js +21465 -0
@@ -1,5 +1,5 @@
1
1
  {
2
- "graphTree": "035f29b6ead15504507183ff485278d0c9ef6759",
2
+ "graphTree": "a92d5d4a1d73d583df5be10af020eeee9dc84ca9",
3
3
  "intentRoots": {
4
4
  "add-a2ui": "feature/a2ui/start",
5
5
  "add-chat-suggestions": "feature/chat-suggestions/start",
@@ -13,6 +13,7 @@
13
13
  "prompts": [
14
14
  {
15
15
  "edges": [
16
+ "deployment/choose-local",
16
17
  "research/gather",
17
18
  "stopped/run-failed"
18
19
  ],
@@ -29,6 +30,7 @@
29
30
  },
30
31
  {
31
32
  "edges": [
33
+ "deployment/local-evaluation",
32
34
  "credentials/settle-credentials"
33
35
  ],
34
36
  "milestone": "credentials",
@@ -79,6 +81,21 @@
79
81
  "milestone": "credentials",
80
82
  "name": "credentials/write-plan"
81
83
  },
84
+ {
85
+ "edges": [
86
+ "research/gather",
87
+ "stopped/run-failed"
88
+ ],
89
+ "milestone": "deployment",
90
+ "name": "deployment/choose-local"
91
+ },
92
+ {
93
+ "edges": [
94
+ "credentials/settle-credentials"
95
+ ],
96
+ "milestone": "deployment",
97
+ "name": "deployment/local-evaluation"
98
+ },
82
99
  {
83
100
  "edges": [],
84
101
  "milestone": "fallback",
@@ -92,6 +109,13 @@
92
109
  "milestone": "feature",
93
110
  "name": "feature/a2ui/implement"
94
111
  },
112
+ {
113
+ "edges": [
114
+ "feature/a2ui/implement"
115
+ ],
116
+ "milestone": "feature",
117
+ "name": "feature/a2ui/plan"
118
+ },
95
119
  {
96
120
  "edges": [
97
121
  "feature/stop",
@@ -103,7 +127,7 @@
103
127
  {
104
128
  "edges": [
105
129
  "feature/stop",
106
- "feature/a2ui/implement"
130
+ "feature/a2ui/plan"
107
131
  ],
108
132
  "milestone": "feature",
109
133
  "name": "feature/a2ui/start"
@@ -121,6 +145,13 @@
121
145
  "milestone": "feature",
122
146
  "name": "feature/channels/implement"
123
147
  },
148
+ {
149
+ "edges": [
150
+ "feature/channels/implement"
151
+ ],
152
+ "milestone": "feature",
153
+ "name": "feature/channels/plan"
154
+ },
124
155
  {
125
156
  "edges": [
126
157
  "feature/stop",
@@ -132,7 +163,7 @@
132
163
  {
133
164
  "edges": [
134
165
  "feature/stop",
135
- "feature/channels/implement"
166
+ "feature/channels/plan"
136
167
  ],
137
168
  "milestone": "feature",
138
169
  "name": "feature/channels/start"
@@ -145,6 +176,13 @@
145
176
  "milestone": "feature",
146
177
  "name": "feature/chat-suggestions/implement"
147
178
  },
179
+ {
180
+ "edges": [
181
+ "feature/chat-suggestions/implement"
182
+ ],
183
+ "milestone": "feature",
184
+ "name": "feature/chat-suggestions/plan"
185
+ },
148
186
  {
149
187
  "edges": [
150
188
  "feature/stop",
@@ -156,7 +194,7 @@
156
194
  {
157
195
  "edges": [
158
196
  "feature/stop",
159
- "feature/chat-suggestions/implement"
197
+ "feature/chat-suggestions/plan"
160
198
  ],
161
199
  "milestone": "feature",
162
200
  "name": "feature/chat-suggestions/start"
@@ -175,6 +213,13 @@
175
213
  "milestone": "feature",
176
214
  "name": "feature/learning/implement"
177
215
  },
216
+ {
217
+ "edges": [
218
+ "feature/learning/implement"
219
+ ],
220
+ "milestone": "feature",
221
+ "name": "feature/learning/plan"
222
+ },
178
223
  {
179
224
  "edges": [
180
225
  "feature/stop",
@@ -187,7 +232,7 @@
187
232
  "edges": [
188
233
  "feature/blocked-by-plan",
189
234
  "feature/stop",
190
- "feature/learning/implement"
235
+ "feature/learning/plan"
191
236
  ],
192
237
  "milestone": "feature",
193
238
  "name": "feature/learning/start"
@@ -200,6 +245,13 @@
200
245
  "milestone": "feature",
201
246
  "name": "feature/open-generative-ui/implement"
202
247
  },
248
+ {
249
+ "edges": [
250
+ "feature/open-generative-ui/implement"
251
+ ],
252
+ "milestone": "feature",
253
+ "name": "feature/open-generative-ui/plan"
254
+ },
203
255
  {
204
256
  "edges": [
205
257
  "feature/stop",
@@ -211,7 +263,7 @@
211
263
  {
212
264
  "edges": [
213
265
  "feature/stop",
214
- "feature/open-generative-ui/implement"
266
+ "feature/open-generative-ui/plan"
215
267
  ],
216
268
  "milestone": "feature",
217
269
  "name": "feature/open-generative-ui/start"
@@ -224,6 +276,13 @@
224
276
  "milestone": "feature",
225
277
  "name": "feature/realtime-sync/implement"
226
278
  },
279
+ {
280
+ "edges": [
281
+ "feature/realtime-sync/implement"
282
+ ],
283
+ "milestone": "feature",
284
+ "name": "feature/realtime-sync/plan"
285
+ },
227
286
  {
228
287
  "edges": [
229
288
  "feature/stop",
@@ -235,7 +294,7 @@
235
294
  {
236
295
  "edges": [
237
296
  "feature/stop",
238
- "feature/realtime-sync/implement"
297
+ "feature/realtime-sync/plan"
239
298
  ],
240
299
  "milestone": "feature",
241
300
  "name": "feature/realtime-sync/start"
@@ -248,6 +307,13 @@
248
307
  "milestone": "feature",
249
308
  "name": "feature/rich-threads/implement"
250
309
  },
310
+ {
311
+ "edges": [
312
+ "feature/rich-threads/implement"
313
+ ],
314
+ "milestone": "feature",
315
+ "name": "feature/rich-threads/plan"
316
+ },
251
317
  {
252
318
  "edges": [
253
319
  "feature/stop",
@@ -259,7 +325,7 @@
259
325
  {
260
326
  "edges": [
261
327
  "feature/stop",
262
- "feature/rich-threads/implement"
328
+ "feature/rich-threads/plan"
263
329
  ],
264
330
  "milestone": "feature",
265
331
  "name": "feature/rich-threads/start"
@@ -277,6 +343,14 @@
277
343
  "milestone": "feature",
278
344
  "name": "feature/voice/implement"
279
345
  },
346
+ {
347
+ "edges": [
348
+ "feature/stop",
349
+ "feature/voice/implement"
350
+ ],
351
+ "milestone": "feature",
352
+ "name": "feature/voice/plan"
353
+ },
280
354
  {
281
355
  "edges": [
282
356
  "feature/stop",
@@ -288,7 +362,7 @@
288
362
  {
289
363
  "edges": [
290
364
  "feature/stop",
291
- "feature/voice/implement"
365
+ "feature/voice/plan"
292
366
  ],
293
367
  "milestone": "feature",
294
368
  "name": "feature/voice/start"
@@ -1,11 +1,11 @@
1
1
  # Start CopilotKit onboarding
2
2
 
3
- ## What this run does on this machine
3
+ ## What this run does
4
4
 
5
- Read this before you decide whether to follow the rest of these instructions. This run
6
- executes the CopilotKit CLI through `npx`. It spawns read-only inspection subagents inside
7
- the target project, and reports progress checkpoints and optional friction reports to
8
- CopilotKit under the developer's own telemetry setting. It reads nothing outside the project
5
+ Read this before you proceed. This run executes the CopilotKit CLI through `npx`.
6
+ It spawns read-only inspection subagents inside the target project. It sends checkpoints
7
+ and optional friction reports to CopilotKit under the developer's telemetry setting. It
8
+ reads nothing outside the project
9
9
  directory and changes files only after the developer approves a written plan. CopilotKit
10
10
  Intelligence has a free Developer plan, and this run needs no paid subscription. Nothing it
11
11
  does is hidden from the developer.
@@ -14,7 +14,7 @@ does is hidden from the developer.
14
14
 
15
15
  Run each CLI call exactly as written, as its own command: no pipe, `tee`, `&&`, redirect,
16
16
  or variable prefix. Every CLI call in this run matches the prefix rule
17
- `["npx", "--prefer-offline", "--yes", "copilotkit@4.22.0"]`. If a command can request
17
+ `["npx", "--prefer-offline", "--yes", "copilotkit@4.23.1"]`. If a command can request
18
18
  escalation with a prefix rule, request this one on the `onboard identify` call. If your
19
19
  harness asks the developer to approve commands, tell them one approval of that prefix covers
20
20
  every CLI call. Say then that the install, the dev servers, `curl` to the local app, and
@@ -33,10 +33,10 @@ That refusal is a pause, not a stop.
33
33
  Run this before anything else in this prompt, including the welcome message below:
34
34
 
35
35
  ```text
36
- npx --prefer-offline --yes copilotkit@4.22.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
36
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
37
37
  ```
38
38
 
39
- Report your own product with one short slug, such as `codex` or `claude-code`.
39
+ Report your product slug, such as `codex` or `claude-code`.
40
40
 
41
41
  - `--model`: copy the model id exactly as your instructions write it. If they name no
42
42
  exact model id, leave out `--model` rather than guess.
@@ -55,17 +55,15 @@ own bookkeeping. Say what the run is doing in the developer's words instead.
55
55
  Work from the target project directory. When `onboard start` listed several projects, the
56
56
  one the developer chose is that directory.
57
57
 
58
- The command that began this run printed a line reading `onboarding_run_id:` followed by an
59
- id. Keep that id for the whole run. Every later command reports against it, and it is
60
- printed once.
58
+ The first command printed `onboarding_run_id:` followed by an id, once. Keep it for
59
+ the whole run. Every later command reports against it.
61
60
 
62
- Every later command must run from the directory this run started in. A command run
63
- somewhere else is refused, because the run it belongs to cannot be found from there. That
64
- refusal is a step, not a stop to report: run
65
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard start --run <onboarding_run_id>` where you are
61
+ Every later command must run from the directory this run started in. Elsewhere, the
62
+ command cannot find its run and refuses. Do not report that refusal as a stop. Run
63
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard start --run <onboarding_run_id>` where you are
66
64
  standing, then run the refused command again.
67
65
 
68
- If you no longer hold the id, run `npx --prefer-offline --yes copilotkit@4.22.0 onboard start` in the
66
+ If you no longer hold the id, run `npx --prefer-offline --yes copilotkit@4.23.1 onboard start` in the
69
67
  directory this run started in, with no `--run` and no `--intent`. It reprints the id of the
70
68
  run under way and starts nothing. An id this project does not already hold starts a second
71
69
  run, and the work already done stops counting toward the first.
@@ -99,34 +97,30 @@ and the plan itself. After you approve it, I build and prove the integration, wh
99
97
  long part of this run. If I need you to approve a command, or something blocks me, I will ask
100
98
  you here. Otherwise you hear from me next when the app is running and I hand you its URLs.
101
99
 
102
- That message belongs to the run, not to this prompt. If you already sent it in this run, do
103
- not send it again, including on a second read of this prompt.
100
+ That message belongs to the run. Send it only once, including after a second read of this prompt.
104
101
 
105
102
  Telemetry and friction reports follow the CLI telemetry setting the developer controls with
106
103
  `copilotkit telemetry` or `DO_NOT_TRACK=1`. Each report is one or two sentences and carries
107
- no secrets and no source. The feedback commands enforce that setting on every send, so this
108
- run says so once instead of asking again at each report.
104
+ no secrets and no source. The feedback commands enforce that setting on every send. Explain it once.
109
105
 
110
106
  ## Where commands run
111
107
 
112
108
  The directory this run started in is the run root. Every `--path` argument is read against
113
109
  it, so one path names one file from anywhere in the project.
114
110
 
115
- One command is deliberately different. `project select` writes the credential into the
116
- `.env` beside the directory it runs in, because that is the file the application process
117
- loads. Run it from the directory whose application reads that file. It hoists the project
118
- record to the repository root by itself and prints where it put it.
111
+ `project select` differs: it writes the credential into the `.env` in its current directory.
112
+ Run it from the directory whose application reads that file. It hoists the project record
113
+ to the repository root and prints its path.
119
114
 
120
115
  ## Report a stop, wherever it happens
121
116
 
122
117
  This run reports its own stops. If you stop this run at any point, send one short report
123
- before you stop. That covers a stop this prompt names, a stop a later prompt names, and a
124
- stop no prompt anticipated, including one your own harness causes. A turn that ends while
125
- the run waits is a pause, not a stop, even when your harness ends it. A terminal that sends
126
- the report itself, or says to file none, overrides this.
118
+ before you stop. This includes unexpected stops and stops caused by your harness.
119
+ A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
120
+ A terminal that sends the report itself, or says to file none, overrides this.
127
121
 
128
122
  ```text
129
- npx --prefer-offline --yes copilotkit@4.22.0 onboard friction --phase stop --category <slug> --message "<sentences>"
123
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard friction --phase stop --category <slug> --message "<sentences>"
130
124
  ```
131
125
 
132
126
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -139,9 +133,20 @@ not a failed step. Reword it and send it again, or stop without a report.
139
133
  Reporting a stop is not a route change. It does not resume the run or replace what the
140
134
  rule that stopped you says next: send the report, then stop.
141
135
 
136
+ ## Choose where the app stores data
137
+
138
+ Before sign-in, run `npx --prefer-offline --yes copilotkit@4.23.1 local --help`.
139
+ If it lists candidate setup and no choice exists, offer managed service or local Docker
140
+ evaluation. If it does not, keep the managed path. Existing local recovery still works.
141
+
142
+ For a local choice, run
143
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read deployment/choose-local`.
144
+ It records the choice for new and existing apps, completes sign-in, and starts research.
145
+ For managed service, continue with “Check sign-in”.
146
+
142
147
  ## Check sign-in
143
148
 
144
- Run `npx --prefer-offline --yes copilotkit@4.22.0 login --json` before any project work. This command
149
+ Run `npx --prefer-offline --yes copilotkit@4.23.1 login --json` before any project work. This command
145
150
  checks the current session. It starts sign-in only as needed. Treat this as a long-lived
146
151
  streaming process. Do not wait for the command to exit before you read its standard output.
147
152
 
@@ -154,6 +159,9 @@ Read each JSON Lines record as the running command writes it:
154
159
  When that first URL arrives, send this exact message once. Do not send it when the
155
160
  existing session is already valid, and do not add a feature list or another explanation:
156
161
 
162
+ For local evaluation, say: “Sign in to get the renewable evaluation license. Your
163
+ local dashboard will use CLI approval.” For the managed choice, say:
164
+
157
165
  I am opening a sign-in page. Signing in gives this project a managed CopilotKit project
158
166
  and its API key. That key is what lets your users reopen past conversations. You can
159
167
  remove it later to disconnect this workspace.
@@ -166,7 +174,7 @@ Read each JSON Lines record as the running command writes it:
166
174
  them to finish sign-in there. The page works from any device. Your own built-in browser
167
175
  does not carry the session the developer already signed in with, so do not use it.
168
176
  4. Keep monitoring the same login process. Do not start a second login command.
169
- 5. Continue onboarding only after that same process emits `type: completed`.
177
+ 5. Go past the research only after that same process emits `type: completed`.
170
178
  6. On `type: failed` with `reason: expired`, ask once whether to retry. If yes, start one
171
179
  new `login --json`. Use `--force` only when the developer asks.
172
180
  7. If that process emits `type: failed`, report the error and stop onboarding. On
@@ -181,9 +189,11 @@ again and handle a new `authentication_url` as above. Step 4 forbids a second lo
181
189
  Do not use `whoami` for this check. Do not put account tokens or credentials in the
182
190
  conversation.
183
191
 
184
- When sign-in is settled, run
185
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read research/gather`.
192
+ Research reads only this project and needs no account. Start it as soon as the session is
193
+ valid or the developer has the sign-in page, and keep monitoring the login process while it
194
+ runs: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read research/gather`. If this run already
195
+ started the research, do not start it again.
186
196
 
187
197
  If sign-in stops onboarding, run
188
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read stopped/run-failed`. It says nothing about
198
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read stopped/run-failed`. It says nothing about
189
199
  whether this project's stack is supported, which is not yet known at this point.
@@ -100,7 +100,7 @@ of this journey, and a drawer that lists nothing is not a reason to mint one. Li
100
100
  tokens stay a self-hosted concern.
101
101
 
102
102
  Where this journey's frontend framework ships no threads drawer -- React Native --, the
103
- fifth item is proved by `npx --prefer-offline --yes copilotkit@4.22.0 verify --round-trip`, which sends a
103
+ fifth item is proved by `npx --prefer-offline --yes copilotkit@4.23.1 verify --round-trip`, which sends a
104
104
  real request and reads the answer back off the thread it landed on. The run says which of
105
105
  the two it proved. Do not send a run to the managed Intelligence dashboard to prove this.
106
106
  An authenticated browser session at a hosted dashboard is the one thing an agent-driven run
@@ -116,7 +116,7 @@ and passed -- so a run scored on either one was scored on the same fact. Every r
116
116
  resolves that condition from, while `licenseStatus` is a compatibility projection of it
117
117
  for older thread surfaces and outlives them only until those surfaces go.
118
118
 
119
- Then run `npx --prefer-offline --yes copilotkit@4.22.0 onboard read credentials/finalize-plan`.
119
+ Then run `npx --prefer-offline --yes copilotkit@4.23.1 onboard read credentials/finalize-plan`.
120
120
 
121
121
  If a selected page does not load after the second method, run
122
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read unsupported/no-validated-path`.
122
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read unsupported/no-validated-path`.
@@ -1,5 +1,10 @@
1
1
  # Select the Intelligence project
2
2
 
3
+ For a recorded local choice, run
4
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read deployment/local-evaluation`.
5
+ That path obtains approval and connects the local project. Skip hosted selection.
6
+ Keep the implementation and feature-proof requirements.
7
+
3
8
  Use the selected framework, frontend, model vendor, model, documentation URLs, and
4
9
  repository findings. On a conversion, use the values the conversion prompt recorded, and
5
10
  ask no framework or frontend question. Do not change application code in this phase. Do
@@ -24,7 +29,7 @@ Choose the starting state from the repository findings:
24
29
  A run served `proof/oss-baseline` records one of the last two.
25
30
 
26
31
  ```text
27
- npx --prefer-offline --yes copilotkit@4.22.0 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend>
32
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend>
28
33
  ```
29
34
 
30
35
  If a value is refused, fix it from the choices the earlier prompts gave, and run the
@@ -37,7 +42,7 @@ runtime `.env` file, that directory is the target, not the repository root. Do n
37
42
  the developer to another terminal.
38
43
 
39
44
  ```text
40
- npx --prefer-offline --yes copilotkit@4.22.0 onboard credentials --json
45
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard credentials --json
41
46
  ```
42
47
 
43
48
  Every credential this run writes goes to the target's `.env`, the environment path. The
@@ -67,9 +72,9 @@ project from a listing without an answer that names it.
67
72
  `--runtime-url` is the URL port research settled, mount path included:
68
73
 
69
74
  ```text
70
- npx --prefer-offline --yes copilotkit@4.22.0 onboard credentials --create <name> \
75
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard credentials --create <name> \
71
76
  --runtime-url http://localhost:<port>/api/copilotkit --json
72
- npx --prefer-offline --yes copilotkit@4.22.0 onboard credentials --project <slug-or-id> \
77
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard credentials --project <slug-or-id> \
73
78
  --runtime-url http://localhost:<port>/api/copilotkit --json
74
79
  ```
75
80
 
@@ -79,8 +84,8 @@ command unless the developer asks to see their projects, or `notFound` is presen
79
84
  show only what they asked for, and do not order it by creation time:
80
85
 
81
86
  ```text
82
- npx --prefer-offline --yes copilotkit@4.22.0 project list --json
83
- npx --prefer-offline --yes copilotkit@4.22.0 project list --search <query> --json
87
+ npx --prefer-offline --yes copilotkit@4.23.1 project list --json
88
+ npx --prefer-offline --yes copilotkit@4.23.1 project list --search <query> --json
84
89
  ```
85
90
 
86
91
  `app-directory` means that the key landed where no app reads it. Pick the directory in
@@ -95,4 +100,4 @@ the `--project` command from there with `project.slug`. Do not copy or link the
95
100
  reused. The round-trip proof later runs the authenticated Intelligence checks, so record
96
101
  the reused project credentials as unverified in the plan until those checks pass.
97
102
 
98
- Then run `npx --prefer-offline --yes copilotkit@4.22.0 onboard read credentials/settle-credentials`.
103
+ Then run `npx --prefer-offline --yes copilotkit@4.23.1 onboard read credentials/settle-credentials`.
@@ -20,7 +20,7 @@ If the target directory holds no project and the copied prompt came from the Sla
20
20
  Microsoft Teams docs page, do not ask the framework question. The Channel starter brings
21
21
  its own agent, so an answer here decides nothing. Tell the developer that the Channel
22
22
  starter decides the agent, then run
23
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read frontend/plan`.
23
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read frontend/plan`.
24
24
 
25
25
  ## Frameworks this machine cannot run yet
26
26
 
@@ -42,7 +42,7 @@ things in one message:
42
42
  2. That the coding agent's shell reads PATH when it starts, so it cannot see the new
43
43
  toolchain until the developer restarts the coding agent.
44
44
  3. That the run resumes after the restart with
45
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard start --run <onboarding_run_id>`.
45
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard start --run <onboarding_run_id>`.
46
46
 
47
47
  Then end your turn and wait for the developer. That restart is a step here, not an error.
48
48
 
@@ -111,27 +111,27 @@ developer's words instead.
111
111
 
112
112
  Use exactly one matching internal route:
113
113
 
114
- 1. AG2: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/ag2`
115
- 2. Agno: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/agno`
116
- 3. Built-in CopilotKit agent: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/built-in`
117
- 4. Claude Agent SDK Python: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/claude-sdk-python`
118
- 5. Claude Agent SDK TypeScript: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/claude-sdk-typescript`
119
- 6. CrewAI Flows: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/crewai-flows`
120
- 7. Existing AG-UI agent: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/custom-ag-ui`
121
- 8. Deep Agents: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/deep-agents`
122
- 9. LangGraph Python: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/langgraph-python`
123
- 10. LangGraph FastAPI: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/langgraph-fastapi`
124
- 11. LangGraph TypeScript: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/langgraph-typescript`
125
- 12. LlamaIndex: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/llamaindex`
126
- 13. ADK: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/google-adk`
127
- 14. Microsoft Agent Framework Python: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/ms-agent-python`
128
- 15. Microsoft Agent Framework .NET: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/ms-agent-dotnet`
129
- 16. Mastra: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/mastra`
130
- 17. MS Agent Harness .NET: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/ms-agent-harness-dotnet`
131
- 18. Pydantic AI: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/pydantic-ai`
132
- 19. Strands Agents Python: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/strands-python`
133
- 20. Strands Agents TypeScript: `npx --prefer-offline --yes copilotkit@4.22.0 onboard read framework/strands-typescript`
114
+ 1. AG2: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/ag2`
115
+ 2. Agno: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/agno`
116
+ 3. Built-in CopilotKit agent: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/built-in`
117
+ 4. Claude Agent SDK Python: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/claude-sdk-python`
118
+ 5. Claude Agent SDK TypeScript: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/claude-sdk-typescript`
119
+ 6. CrewAI Flows: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/crewai-flows`
120
+ 7. Existing AG-UI agent: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/custom-ag-ui`
121
+ 8. Deep Agents: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/deep-agents`
122
+ 9. LangGraph Python: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/langgraph-python`
123
+ 10. LangGraph FastAPI: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/langgraph-fastapi`
124
+ 11. LangGraph TypeScript: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/langgraph-typescript`
125
+ 12. LlamaIndex: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/llamaindex`
126
+ 13. ADK: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/google-adk`
127
+ 14. Microsoft Agent Framework Python: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/ms-agent-python`
128
+ 15. Microsoft Agent Framework .NET: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/ms-agent-dotnet`
129
+ 16. Mastra: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/mastra`
130
+ 17. MS Agent Harness .NET: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/ms-agent-harness-dotnet`
131
+ 18. Pydantic AI: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/pydantic-ai`
132
+ 19. Strands Agents Python: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/strands-python`
133
+ 20. Strands Agents TypeScript: `npx --prefer-offline --yes copilotkit@4.23.1 onboard read framework/strands-typescript`
134
134
 
135
135
  If the project has an agent in another framework that does not speak AG-UI, or no
136
136
  listed framework fits, keep the developer's current agent and run
137
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read unsupported/no-validated-path`.
137
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read unsupported/no-validated-path`.
@@ -21,23 +21,26 @@ The plan names the model credential variables. Run this from the directory that
21
21
  `environmentPath` in the project step's result, with one `--model-key` for each variable:
22
22
 
23
23
  ```text
24
- npx --prefer-offline --yes copilotkit@4.22.0 onboard credentials --model-key <variable> --json
24
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard credentials --model-key <variable> --json
25
25
  ```
26
26
 
27
27
  When the framework node names another env file for the credential, add
28
- `--env-file <file>`. Add one `--path <file>` for each project file the developer changed for the
29
- credential. The command asks the vendor whether each key can pay for a model call, and it
28
+ `--env-path <file>`. When the agent runs as its own service, such as a remote AG-UI agent,
29
+ that service reads its own env file. Add `--copy-to <service>/.env` for it. The command
30
+ copies the key there and protects that file, so do not copy the key yourself. Add one
31
+ `--path <file>` for each project file the developer changed for the credential. The command asks the vendor whether each key can pay for a model call, and it
30
32
  never prints a value. When every key settles, it protects the credential paths. Read
31
33
  `status`:
32
34
 
33
35
  - `ready`: continue. Name each `unsupported` or `undetermined` `reason` in `modelKeys` in
34
- the closing report. When `outsideRepository` names a file, the app does not load it by
36
+ the closing report. Name each `copiedKeys` entry with the outcome `kept` or `no-value`
37
+ too: that service does not get the checked key. When `outsideRepository` names a file, the app does not load it by
35
38
  itself. By default, plan to copy the key into the app's env file, which git ignores.
36
39
  This command protects that env file, and the copy is a file the run writes itself, so
37
40
  list the copy under `Files the run writes itself`, not under `Authorization requested`.
38
41
  The developer's approval of the plan is their consent to the copy. Copy the key without
39
42
  printing it. Then record the copy with
40
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard protect --accept-credential --path <env file>`. If the developer declines the copy, the plan has the app read the key from an
43
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --accept-credential --path <env file>`. If the developer declines the copy, the plan has the app read the key from an
41
44
  environment variable that the developer sets. The plan then says how to set it. Never
42
45
  write the outside path into a project file, not even in a config file such as
43
46
  `langgraph.json`. A committed file that names a folder in the developer's home directory
@@ -46,7 +49,7 @@ never prints a value. When every key settles, it protects the credential paths.
46
49
  - `needs-developer` with `question.status` `missing`: ask the developer `question.ask` in
47
50
  those words. It offers three answers: another env file in this project, a file outside it,
48
51
  or the developer adds the key to `question.envFile`. If they name a file, rerun the command
49
- with `--env-file <path>`. If they add the key, rerun it as it is. Do not replace the
52
+ with `--env-path <path>`. If they add the key, rerun it as it is. Do not replace the
50
53
  question with an instruction to paste the value into a file. The key can already be in a
51
54
  file that you can point the check at.
52
55
  - `needs-developer` with `question.status` `fail`: tell the developer `question.cause`.
@@ -66,4 +69,4 @@ Never read a file outside the project directory to find a credential: a key foun
66
69
  bills another project. Asking for a path is not requesting a secret. A path the developer
67
70
  names is theirs to give, including one outside the project. A path this run finds is not.
68
71
 
69
- Then run `npx --prefer-offline --yes copilotkit@4.22.0 onboard read credentials/write-plan`.
72
+ Then run `npx --prefer-offline --yes copilotkit@4.23.1 onboard read credentials/write-plan`.
@@ -11,7 +11,7 @@ friction command follows the telemetry setting the developer already chose, so i
11
11
  separate question.
12
12
 
13
13
  ```text
14
- npx --prefer-offline --yes copilotkit@4.22.0 onboard friction --phase stop --category <slug> --message "<sentences>"
14
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard friction --phase stop --category <slug> --message "<sentences>"
15
15
  ```
16
16
 
17
17
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -72,18 +72,21 @@ page is selected yet, add the one for the frontend selected above to the same li
72
72
  Native, so the planner proves the thread with `verify --round-trip` instead.
73
73
 
74
74
  Spawn one planning subagent. Tell it to run
75
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read subagent/create-plan` first and follow the prompt
75
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read subagent/create-plan` first and follow the prompt
76
76
  it returns. If that read fails because the subagent cannot use the shell, stop that subagent.
77
77
  Run the same command yourself, then spawn a fresh subagent with the returned prompt and the
78
78
  same handoff. Give it the repository findings, selected framework, frontend, model, credential
79
- variable names, selected documentation URLs, and documentation policy. On a conversion, also
80
- give it the frozen criterion. Give the planning subagent the updated protected path list.
79
+ variable names, selected documentation URLs, and documentation policy. Give it each finding
80
+ that the framework route told you to record, such as how the agent connects or a `clone()`
81
+ finding. Some of those rules, such as the `clone()` override, are on no documentation page.
82
+ On a conversion, also give it the frozen criterion. Give the planning subagent the updated
83
+ protected path list.
81
84
  Wait for the subagent to finish.
82
85
 
83
86
  Continue only if the planning result starts with `Status: passed`. For `Status: failed`,
84
87
  send the result back to the planning subagent for repair, up to three attempts. For
85
88
  `Status: blocked`, or a third failed result, run
86
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read stopped/run-failed`. A plan this run cannot
89
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read stopped/run-failed`. A plan this run cannot
87
90
  write is a run that broke, not a stack the documentation does not cover. The exception is
88
91
  a blocked result that names `unsupported/no-validated-path`: the planning subagent found
89
92
  that no page supports the plan, so take the no-supported-path route at the end of this
@@ -125,8 +128,15 @@ developer a question unless a step cannot be built as approved, but a harness ca
125
128
  a command for approval. Say it in the same message as the plan, and do not turn it into a
126
129
  second question.
127
130
 
131
+ Before you end your turn to wait for the answer, report the pause, each time you show the
132
+ plan:
133
+
134
+ ```text
135
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase awaiting-plan-approval
136
+ ```
137
+
128
138
  If the developer approves the plan, run
129
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read implementation/build-and-validate`.
139
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read implementation/build-and-validate`.
130
140
 
131
141
  If no exact supported path or documentation URL exists, run
132
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read unsupported/no-validated-path`.
142
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read unsupported/no-validated-path`.