copilotkit 4.21.0 → 4.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +419 -23
  2. package/cli-build-info.json +8 -8
  3. package/index.js +62600 -43650
  4. package/onboarding/index.json +92 -9
  5. package/onboarding/prompts/authenticate/start.md +47 -43
  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 +36 -25
  9. package/onboarding/prompts/credentials/settle-credentials.md +10 -7
  10. package/onboarding/prompts/credentials/write-plan.md +22 -20
  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 +101 -0
  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 +10 -21
  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 +18 -13
  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 +26 -18
  82. package/onboarding/prompts/starter/clone.md +15 -14
  83. package/onboarding/prompts/stopped/run-failed.md +2 -2
  84. package/onboarding/prompts/subagent/create-plan.md +33 -40
  85. package/onboarding/prompts/subagent/implement-and-validate.md +58 -38
  86. package/onboarding/prompts/subagent/inspect-repository.md +4 -1
  87. package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
  88. package/onboarding/prompts/subagent/prove-round-trip.md +117 -257
  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": "da1c6185427d9e627b0d6a6b6abda10dea05e09a",
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",
@@ -43,6 +45,7 @@
43
45
  "framework/claude-sdk-python",
44
46
  "framework/claude-sdk-typescript",
45
47
  "framework/crewai-flows",
48
+ "framework/custom-ag-ui",
46
49
  "framework/deep-agents",
47
50
  "framework/langgraph-python",
48
51
  "framework/langgraph-fastapi",
@@ -78,6 +81,21 @@
78
81
  "milestone": "credentials",
79
82
  "name": "credentials/write-plan"
80
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
+ },
81
99
  {
82
100
  "edges": [],
83
101
  "milestone": "fallback",
@@ -91,6 +109,13 @@
91
109
  "milestone": "feature",
92
110
  "name": "feature/a2ui/implement"
93
111
  },
112
+ {
113
+ "edges": [
114
+ "feature/a2ui/implement"
115
+ ],
116
+ "milestone": "feature",
117
+ "name": "feature/a2ui/plan"
118
+ },
94
119
  {
95
120
  "edges": [
96
121
  "feature/stop",
@@ -102,7 +127,7 @@
102
127
  {
103
128
  "edges": [
104
129
  "feature/stop",
105
- "feature/a2ui/implement"
130
+ "feature/a2ui/plan"
106
131
  ],
107
132
  "milestone": "feature",
108
133
  "name": "feature/a2ui/start"
@@ -120,6 +145,13 @@
120
145
  "milestone": "feature",
121
146
  "name": "feature/channels/implement"
122
147
  },
148
+ {
149
+ "edges": [
150
+ "feature/channels/implement"
151
+ ],
152
+ "milestone": "feature",
153
+ "name": "feature/channels/plan"
154
+ },
123
155
  {
124
156
  "edges": [
125
157
  "feature/stop",
@@ -131,7 +163,7 @@
131
163
  {
132
164
  "edges": [
133
165
  "feature/stop",
134
- "feature/channels/implement"
166
+ "feature/channels/plan"
135
167
  ],
136
168
  "milestone": "feature",
137
169
  "name": "feature/channels/start"
@@ -144,6 +176,13 @@
144
176
  "milestone": "feature",
145
177
  "name": "feature/chat-suggestions/implement"
146
178
  },
179
+ {
180
+ "edges": [
181
+ "feature/chat-suggestions/implement"
182
+ ],
183
+ "milestone": "feature",
184
+ "name": "feature/chat-suggestions/plan"
185
+ },
147
186
  {
148
187
  "edges": [
149
188
  "feature/stop",
@@ -155,7 +194,7 @@
155
194
  {
156
195
  "edges": [
157
196
  "feature/stop",
158
- "feature/chat-suggestions/implement"
197
+ "feature/chat-suggestions/plan"
159
198
  ],
160
199
  "milestone": "feature",
161
200
  "name": "feature/chat-suggestions/start"
@@ -174,6 +213,13 @@
174
213
  "milestone": "feature",
175
214
  "name": "feature/learning/implement"
176
215
  },
216
+ {
217
+ "edges": [
218
+ "feature/learning/implement"
219
+ ],
220
+ "milestone": "feature",
221
+ "name": "feature/learning/plan"
222
+ },
177
223
  {
178
224
  "edges": [
179
225
  "feature/stop",
@@ -186,7 +232,7 @@
186
232
  "edges": [
187
233
  "feature/blocked-by-plan",
188
234
  "feature/stop",
189
- "feature/learning/implement"
235
+ "feature/learning/plan"
190
236
  ],
191
237
  "milestone": "feature",
192
238
  "name": "feature/learning/start"
@@ -199,6 +245,13 @@
199
245
  "milestone": "feature",
200
246
  "name": "feature/open-generative-ui/implement"
201
247
  },
248
+ {
249
+ "edges": [
250
+ "feature/open-generative-ui/implement"
251
+ ],
252
+ "milestone": "feature",
253
+ "name": "feature/open-generative-ui/plan"
254
+ },
202
255
  {
203
256
  "edges": [
204
257
  "feature/stop",
@@ -210,7 +263,7 @@
210
263
  {
211
264
  "edges": [
212
265
  "feature/stop",
213
- "feature/open-generative-ui/implement"
266
+ "feature/open-generative-ui/plan"
214
267
  ],
215
268
  "milestone": "feature",
216
269
  "name": "feature/open-generative-ui/start"
@@ -223,6 +276,13 @@
223
276
  "milestone": "feature",
224
277
  "name": "feature/realtime-sync/implement"
225
278
  },
279
+ {
280
+ "edges": [
281
+ "feature/realtime-sync/implement"
282
+ ],
283
+ "milestone": "feature",
284
+ "name": "feature/realtime-sync/plan"
285
+ },
226
286
  {
227
287
  "edges": [
228
288
  "feature/stop",
@@ -234,7 +294,7 @@
234
294
  {
235
295
  "edges": [
236
296
  "feature/stop",
237
- "feature/realtime-sync/implement"
297
+ "feature/realtime-sync/plan"
238
298
  ],
239
299
  "milestone": "feature",
240
300
  "name": "feature/realtime-sync/start"
@@ -247,6 +307,13 @@
247
307
  "milestone": "feature",
248
308
  "name": "feature/rich-threads/implement"
249
309
  },
310
+ {
311
+ "edges": [
312
+ "feature/rich-threads/implement"
313
+ ],
314
+ "milestone": "feature",
315
+ "name": "feature/rich-threads/plan"
316
+ },
250
317
  {
251
318
  "edges": [
252
319
  "feature/stop",
@@ -258,7 +325,7 @@
258
325
  {
259
326
  "edges": [
260
327
  "feature/stop",
261
- "feature/rich-threads/implement"
328
+ "feature/rich-threads/plan"
262
329
  ],
263
330
  "milestone": "feature",
264
331
  "name": "feature/rich-threads/start"
@@ -276,6 +343,14 @@
276
343
  "milestone": "feature",
277
344
  "name": "feature/voice/implement"
278
345
  },
346
+ {
347
+ "edges": [
348
+ "feature/stop",
349
+ "feature/voice/implement"
350
+ ],
351
+ "milestone": "feature",
352
+ "name": "feature/voice/plan"
353
+ },
279
354
  {
280
355
  "edges": [
281
356
  "feature/stop",
@@ -287,7 +362,7 @@
287
362
  {
288
363
  "edges": [
289
364
  "feature/stop",
290
- "feature/voice/implement"
365
+ "feature/voice/plan"
291
366
  ],
292
367
  "milestone": "feature",
293
368
  "name": "feature/voice/start"
@@ -340,6 +415,14 @@
340
415
  "milestone": "framework",
341
416
  "name": "framework/crewai-flows"
342
417
  },
418
+ {
419
+ "edges": [
420
+ "frontend/plan",
421
+ "unsupported/no-validated-path"
422
+ ],
423
+ "milestone": "framework",
424
+ "name": "framework/custom-ag-ui"
425
+ },
343
426
  {
344
427
  "edges": [
345
428
  "frontend/plan",
@@ -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.21.0"]`. If a command can request
17
+ `["npx", "--prefer-offline", "--yes", "copilotkit@4.23.0"]`. 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.21.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
36
+ npx --prefer-offline --yes copilotkit@4.23.0 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.21.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.0 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.21.0 onboard start` in the
66
+ If you no longer hold the id, run `npx --prefer-offline --yes copilotkit@4.23.0 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.
@@ -95,44 +93,34 @@ round trip, and leave the app running with its URLs. You finish with working sof
95
93
  the evidence that it works.
96
94
 
97
95
  Everything I need from you comes before that approval: sign-in, a few short setup questions,
98
- and the plan itself. After you approve it, you can walk away. Building and proving the
99
- integration is the long part of this run, and I work through it without you. You hear from
100
- me next when the app is running and I hand you its URLs, or when something stops me and I
101
- tell you what it was.
96
+ and the plan itself. After you approve it, I build and prove the integration, which is the
97
+ long part of this run. If I need you to approve a command, or something blocks me, I will ask
98
+ you here. Otherwise you hear from me next when the app is running and I hand you its URLs.
102
99
 
103
- If your harness makes the developer approve commands before they run, replace "you can walk
104
- away" through "without you." with: "I will ask you to approve some commands while I build.
105
- Keep this window open until the app runs." Decide this from your own approval policy, not
106
- from your coding-agent slug.
107
-
108
- That message belongs to the run, not to this prompt. If you already sent it in this run, do
109
- 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.
110
101
 
111
102
  Telemetry and friction reports follow the CLI telemetry setting the developer controls with
112
103
  `copilotkit telemetry` or `DO_NOT_TRACK=1`. Each report is one or two sentences and carries
113
- no secrets and no source. The feedback commands enforce that setting on every send, so this
114
- 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.
115
105
 
116
106
  ## Where commands run
117
107
 
118
108
  The directory this run started in is the run root. Every `--path` argument is read against
119
109
  it, so one path names one file from anywhere in the project.
120
110
 
121
- One command is deliberately different. `project select` writes the credential into the
122
- `.env` beside the directory it runs in, because that is the file the application process
123
- loads. Run it from the directory whose application reads that file. It hoists the project
124
- 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.
125
114
 
126
115
  ## Report a stop, wherever it happens
127
116
 
128
117
  This run reports its own stops. If you stop this run at any point, send one short report
129
- before you stop. That covers a stop this prompt names, a stop a later prompt names, and a
130
- stop no prompt anticipated, including one your own harness causes. A turn that ends while
131
- the run waits is a pause, not a stop, even when your harness ends it. A terminal that sends
132
- 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.
133
121
 
134
122
  ```text
135
- npx --prefer-offline --yes copilotkit@4.21.0 onboard friction --phase stop --category <slug> --message "<sentences>"
123
+ npx --prefer-offline --yes copilotkit@4.23.0 onboard friction --phase stop --category <slug> --message "<sentences>"
136
124
  ```
137
125
 
138
126
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -145,9 +133,20 @@ not a failed step. Reword it and send it again, or stop without a report.
145
133
  Reporting a stop is not a route change. It does not resume the run or replace what the
146
134
  rule that stopped you says next: send the report, then stop.
147
135
 
136
+ ## Choose where the app stores data
137
+
138
+ Before sign-in, run `npx --prefer-offline --yes copilotkit@4.23.0 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.0 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
+
148
147
  ## Check sign-in
149
148
 
150
- Run `npx --prefer-offline --yes copilotkit@4.21.0 login --json` before any project work. This command
149
+ Run `npx --prefer-offline --yes copilotkit@4.23.0 login --json` before any project work. This command
151
150
  checks the current session. It starts sign-in only as needed. Treat this as a long-lived
152
151
  streaming process. Do not wait for the command to exit before you read its standard output.
153
152
 
@@ -160,6 +159,9 @@ Read each JSON Lines record as the running command writes it:
160
159
  When that first URL arrives, send this exact message once. Do not send it when the
161
160
  existing session is already valid, and do not add a feature list or another explanation:
162
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
+
163
165
  I am opening a sign-in page. Signing in gives this project a managed CopilotKit project
164
166
  and its API key. That key is what lets your users reopen past conversations. You can
165
167
  remove it later to disconnect this workspace.
@@ -172,7 +174,7 @@ Read each JSON Lines record as the running command writes it:
172
174
  them to finish sign-in there. The page works from any device. Your own built-in browser
173
175
  does not carry the session the developer already signed in with, so do not use it.
174
176
  4. Keep monitoring the same login process. Do not start a second login command.
175
- 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`.
176
178
  6. On `type: failed` with `reason: expired`, ask once whether to retry. If yes, start one
177
179
  new `login --json`. Use `--force` only when the developer asks.
178
180
  7. If that process emits `type: failed`, report the error and stop onboarding. On
@@ -187,9 +189,11 @@ again and handle a new `authentication_url` as above. Step 4 forbids a second lo
187
189
  Do not use `whoami` for this check. Do not put account tokens or credentials in the
188
190
  conversation.
189
191
 
190
- When sign-in is settled, run
191
- `npx --prefer-offline --yes copilotkit@4.21.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.0 onboard read research/gather`. If this run already
195
+ started the research, do not start it again.
192
196
 
193
197
  If sign-in stops onboarding, run
194
- `npx --prefer-offline --yes copilotkit@4.21.0 onboard read stopped/run-failed`. It says nothing about
198
+ `npx --prefer-offline --yes copilotkit@4.23.0 onboard read stopped/run-failed`. It says nothing about
195
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.21.0 verify --round-trip`, which sends a
103
+ fifth item is proved by `npx --prefer-offline --yes copilotkit@4.23.0 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.21.0 onboard read credentials/finalize-plan`.
119
+ Then run `npx --prefer-offline --yes copilotkit@4.23.0 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.21.0 onboard read unsupported/no-validated-path`.
122
+ `npx --prefer-offline --yes copilotkit@4.23.0 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.0 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.21.0 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend>
32
+ npx --prefer-offline --yes copilotkit@4.23.0 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.21.0 onboard credentials --json
45
+ npx --prefer-offline --yes copilotkit@4.23.0 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.21.0 onboard credentials --create <name> \
75
+ npx --prefer-offline --yes copilotkit@4.23.0 onboard credentials --create <name> \
71
76
  --runtime-url http://localhost:<port>/api/copilotkit --json
72
- npx --prefer-offline --yes copilotkit@4.21.0 onboard credentials --project <slug-or-id> \
77
+ npx --prefer-offline --yes copilotkit@4.23.0 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.21.0 project list --json
83
- npx --prefer-offline --yes copilotkit@4.21.0 project list --search <query> --json
87
+ npx --prefer-offline --yes copilotkit@4.23.0 project list --json
88
+ npx --prefer-offline --yes copilotkit@4.23.0 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.21.0 onboard read credentials/settle-credentials`.
103
+ Then run `npx --prefer-offline --yes copilotkit@4.23.0 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.21.0 onboard read frontend/plan`.
23
+ `npx --prefer-offline --yes copilotkit@4.23.0 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.21.0 onboard start --run <onboarding_run_id>`.
45
+ `npx --prefer-offline --yes copilotkit@4.23.0 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
 
@@ -65,6 +65,7 @@ These are the agent frameworks and their default vendors:
65
65
  | Claude Agent SDK (Python) | Anthropic |
66
66
  | Claude Agent SDK (TypeScript) | Anthropic |
67
67
  | CrewAI Flows | Project-defined |
68
+ | Existing AG-UI agent | The agent's own |
68
69
  | Deep Agents | OpenAI |
69
70
  | LangGraph FastAPI | OpenAI |
70
71
  | LangGraph Python | OpenAI |
@@ -83,9 +84,18 @@ the vendor with the developer: it keeps the one the repository already uses, and
83
84
  single question when the repository shows none. Do not read it as a framework this release
84
85
  cannot onboard.
85
86
 
87
+ "The agent's own" means that the route keeps the vendor the existing agent already uses.
88
+ Ask no vendor question for it.
89
+
86
90
  If the project already has an agent in a listed framework, preserve that framework and
87
91
  its model setup. Ask only about choices that remain unknown.
88
92
 
93
+ An existing agent that speaks AG-UI, but is none of the other frameworks above, takes the
94
+ Existing AG-UI agent route. For example, an `AbstractAgent` subclass that the project
95
+ wrote, or a service behind AG-UI middleware. Select it only for an agent that the
96
+ repository already has, and only when the findings prove that it speaks AG-UI. Do not
97
+ offer it for a new agent.
98
+
89
99
  If the project needs an agent, show the options and one recommendation based on repository
90
100
  evidence. Match the language the repository already uses. Ask the developer to choose.
91
101
 
@@ -101,26 +111,27 @@ developer's words instead.
101
111
 
102
112
  Use exactly one matching internal route:
103
113
 
104
- 1. AG2: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/ag2`
105
- 2. Agno: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/agno`
106
- 3. Built-in CopilotKit agent: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/built-in`
107
- 4. Claude Agent SDK Python: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/claude-sdk-python`
108
- 5. Claude Agent SDK TypeScript: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/claude-sdk-typescript`
109
- 6. CrewAI Flows: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/crewai-flows`
110
- 7. Deep Agents: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/deep-agents`
111
- 8. LangGraph Python: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/langgraph-python`
112
- 9. LangGraph FastAPI: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/langgraph-fastapi`
113
- 10. LangGraph TypeScript: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/langgraph-typescript`
114
- 11. LlamaIndex: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/llamaindex`
115
- 12. ADK: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/google-adk`
116
- 13. Microsoft Agent Framework Python: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/ms-agent-python`
117
- 14. Microsoft Agent Framework .NET: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/ms-agent-dotnet`
118
- 15. Mastra: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/mastra`
119
- 16. MS Agent Harness .NET: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/ms-agent-harness-dotnet`
120
- 17. Pydantic AI: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/pydantic-ai`
121
- 18. Strands Agents Python: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/strands-python`
122
- 19. Strands Agents TypeScript: `npx --prefer-offline --yes copilotkit@4.21.0 onboard read framework/strands-typescript`
123
-
124
- If the project has an agent in another framework, or no listed framework fits, keep the
125
- developer's current agent and run
126
- `npx --prefer-offline --yes copilotkit@4.21.0 onboard read unsupported/no-validated-path`.
114
+ 1. AG2: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/ag2`
115
+ 2. Agno: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/agno`
116
+ 3. Built-in CopilotKit agent: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/built-in`
117
+ 4. Claude Agent SDK Python: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/claude-sdk-python`
118
+ 5. Claude Agent SDK TypeScript: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/claude-sdk-typescript`
119
+ 6. CrewAI Flows: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/crewai-flows`
120
+ 7. Existing AG-UI agent: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/custom-ag-ui`
121
+ 8. Deep Agents: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/deep-agents`
122
+ 9. LangGraph Python: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/langgraph-python`
123
+ 10. LangGraph FastAPI: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/langgraph-fastapi`
124
+ 11. LangGraph TypeScript: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/langgraph-typescript`
125
+ 12. LlamaIndex: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/llamaindex`
126
+ 13. ADK: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/google-adk`
127
+ 14. Microsoft Agent Framework Python: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/ms-agent-python`
128
+ 15. Microsoft Agent Framework .NET: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/ms-agent-dotnet`
129
+ 16. Mastra: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/mastra`
130
+ 17. MS Agent Harness .NET: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/ms-agent-harness-dotnet`
131
+ 18. Pydantic AI: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/pydantic-ai`
132
+ 19. Strands Agents Python: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/strands-python`
133
+ 20. Strands Agents TypeScript: `npx --prefer-offline --yes copilotkit@4.23.0 onboard read framework/strands-typescript`
134
+
135
+ If the project has an agent in another framework that does not speak AG-UI, or no
136
+ listed framework fits, keep the developer's current agent and run
137
+ `npx --prefer-offline --yes copilotkit@4.23.0 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.21.0 onboard credentials --model-key <variable> --json
24
+ npx --prefer-offline --yes copilotkit@4.23.0 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.21.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.0 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.21.0 onboard read credentials/write-plan`.
72
+ Then run `npx --prefer-offline --yes copilotkit@4.23.0 onboard read credentials/write-plan`.