copilotkit 4.9.50 → 4.9.60

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 (67) hide show
  1. package/README.md +44 -4
  2. package/cli-build-info.json +7 -7
  3. package/index.js +1504 -210
  4. package/onboarding/index.json +1 -1
  5. package/onboarding/prompts/authenticate/start.md +41 -14
  6. package/onboarding/prompts/conversion/plan.md +3 -3
  7. package/onboarding/prompts/credentials/finalize-plan.md +54 -13
  8. package/onboarding/prompts/credentials/plan.md +20 -20
  9. package/onboarding/prompts/fallback/best-effort.md +6 -6
  10. package/onboarding/prompts/feature/a2ui/implement.md +3 -3
  11. package/onboarding/prompts/feature/a2ui/proof.md +3 -3
  12. package/onboarding/prompts/feature/a2ui/start.md +5 -5
  13. package/onboarding/prompts/feature/chat-suggestions/implement.md +3 -3
  14. package/onboarding/prompts/feature/chat-suggestions/proof.md +3 -3
  15. package/onboarding/prompts/feature/chat-suggestions/start.md +5 -5
  16. package/onboarding/prompts/feature/learning/implement.md +70 -8
  17. package/onboarding/prompts/feature/learning/proof.md +25 -7
  18. package/onboarding/prompts/feature/learning/start.md +11 -7
  19. package/onboarding/prompts/feature/open-generative-ui/implement.md +3 -3
  20. package/onboarding/prompts/feature/open-generative-ui/proof.md +3 -3
  21. package/onboarding/prompts/feature/open-generative-ui/start.md +5 -5
  22. package/onboarding/prompts/feature/realtime-sync/implement.md +4 -4
  23. package/onboarding/prompts/feature/realtime-sync/proof.md +3 -3
  24. package/onboarding/prompts/feature/realtime-sync/start.md +4 -4
  25. package/onboarding/prompts/feature/rich-threads/implement.md +5 -5
  26. package/onboarding/prompts/feature/rich-threads/proof.md +3 -3
  27. package/onboarding/prompts/feature/rich-threads/start.md +4 -4
  28. package/onboarding/prompts/feature/stop.md +4 -4
  29. package/onboarding/prompts/feature/voice/implement.md +3 -3
  30. package/onboarding/prompts/feature/voice/proof.md +3 -3
  31. package/onboarding/prompts/feature/voice/start.md +5 -5
  32. package/onboarding/prompts/framework/ag2.md +2 -2
  33. package/onboarding/prompts/framework/agno.md +2 -2
  34. package/onboarding/prompts/framework/built-in.md +2 -2
  35. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  36. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  37. package/onboarding/prompts/framework/crewai-flows.md +2 -2
  38. package/onboarding/prompts/framework/deep-agents.md +2 -2
  39. package/onboarding/prompts/framework/google-adk.md +2 -2
  40. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  41. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  42. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  43. package/onboarding/prompts/framework/llamaindex.md +2 -2
  44. package/onboarding/prompts/framework/mastra.md +2 -2
  45. package/onboarding/prompts/framework/ms-agent-dotnet.md +2 -2
  46. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
  47. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  48. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  49. package/onboarding/prompts/framework/strands-python.md +2 -2
  50. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  51. package/onboarding/prompts/frontend/angular.md +3 -3
  52. package/onboarding/prompts/frontend/nextjs.md +3 -3
  53. package/onboarding/prompts/frontend/plan.md +6 -6
  54. package/onboarding/prompts/frontend/react-native.md +2 -2
  55. package/onboarding/prompts/frontend/react-spa.md +2 -2
  56. package/onboarding/prompts/frontend/vue.md +2 -2
  57. package/onboarding/prompts/implementation/build-and-validate.md +58 -8
  58. package/onboarding/prompts/proof/complete.md +10 -10
  59. package/onboarding/prompts/proof/oss-baseline.md +16 -7
  60. package/onboarding/prompts/proof/round-trip.md +16 -9
  61. package/onboarding/prompts/starter/clone.md +5 -5
  62. package/onboarding/prompts/subagent/create-plan.md +1 -1
  63. package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
  64. package/onboarding/prompts/subagent/prove-round-trip.md +13 -10
  65. package/onboarding/prompts/unsupported/no-validated-path.md +4 -4
  66. package/package.json +1 -1
  67. package/release/release-tool.js +1 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "graphTree": "249d03371764b775fd5893026d7869bbf83716d6",
2
+ "graphTree": "17c99aa34ab1293ba344b5f6ff0f5eb9d05b0055",
3
3
  "intentRoots": {
4
4
  "add-a2ui": "feature/a2ui/start",
5
5
  "add-chat-suggestions": "feature/chat-suggestions/start",
@@ -16,7 +16,7 @@ Every later command must run from the directory this run started in. A command r
16
16
  somewhere else, such as a sibling of that directory, is refused rather than answered,
17
17
  because the run it belongs to cannot be found from there. That refusal is a step to take,
18
18
  not a stop to report: run
19
- `npx --yes copilotkit@4.9.50 onboard start --run <onboarding_run_id>` in the directory
19
+ `npx --yes copilotkit@4.9.60 onboard start --run <onboarding_run_id>` in the directory
20
20
  you are now in, which binds it to the same run, then run the refused command again. Do not
21
21
  start a run without that id. A run started without it is a second run, and the work already
22
22
  done stops counting toward the first.
@@ -30,9 +30,20 @@ answer they cannot get, and it hides the documentation gap that blocks them.
30
30
  Send this exact message once, as your first message in this onboarding run, before
31
31
  anything else:
32
32
 
33
- Welcome to CopilotKit. I will check sign-in, inspect your project, recommend a setup, and
34
- show you a plan before I change files. After you approve the plan, I will build the
35
- integration, prove the full round trip, and leave the app running with its URLs.
33
+ Welcome to CopilotKit. By the end of this run your own application talks to an AI agent,
34
+ and every conversation it holds is kept on the managed Intelligence platform. I prove that
35
+ round trip in the running app before I call it done. You finish with working software and
36
+ the evidence that it works.
37
+
38
+ I will check sign-in, inspect your project, recommend a setup, and show you a plan before I
39
+ change files. After you approve the plan, I will build the integration, prove the full round
40
+ trip, and leave the app running with its URLs.
41
+
42
+ Everything I need from you comes before that approval: sign-in, a few short setup questions,
43
+ and the plan itself. After you approve it, you can walk away. Building and proving the
44
+ integration is the long part of this run, and I work through it without you. You hear from
45
+ me next when the app is running and I hand you its URLs, or when something stops me and I
46
+ tell you what it was.
36
47
 
37
48
  That message belongs to the run, not to this prompt. If you already sent it in this run, do
38
49
  not send it again, including on a second read of this prompt. It has no value after the
@@ -50,7 +61,7 @@ without another developer question. The CLI telemetry gate decides whether the r
50
61
  sent.
51
62
 
52
63
  ```text
53
- npx --yes copilotkit@4.9.50 onboard feedback
64
+ npx --yes copilotkit@4.9.60 onboard feedback
54
65
  ```
55
66
 
56
67
  Write at most four lines to the command's standard input: the step you stopped at and what
@@ -67,7 +78,22 @@ Until now the route out of an unsupported path was the only place that asked for
67
78
  so a stop anywhere else left no trace at all. A stop nobody hears about is a stop this
68
79
  graph cannot fix.
69
80
 
70
- Run `npx --yes copilotkit@4.9.50 login --json` before any project work. This command
81
+ ## Say which coding agent you are
82
+
83
+ Report your own product with one short slug, such as `codex` or `claude-code`:
84
+
85
+ ```text
86
+ npx --yes copilotkit@4.9.60 onboard identify --coding-agent <coding-agent-slug>
87
+ ```
88
+
89
+ Run it before the sign-in command below. The slug tells the sign-in page which agent
90
+ sent the developer, so the page names you instead of "your coding agent". It labels this
91
+ run and nothing else: it grants no access and gates no step.
92
+
93
+ The prompt the developer copied used to ask them to pass this. It asked a human to read
94
+ an instruction written for you, so it lives here now.
95
+
96
+ Run `npx --yes copilotkit@4.9.60 login --json` before any project work. This command
71
97
  checks the current session. It starts sign-in only as needed. Treat this as a long-lived
72
98
  streaming process. Do not wait for the command to exit before you read its standard output.
73
99
 
@@ -80,8 +106,9 @@ Read each JSON Lines record as the running command writes it:
80
106
  When that first URL arrives, send this exact message once. Do not send it when the
81
107
  existing session is already valid, and do not add a feature list or another explanation:
82
108
 
83
- I will open a sign-in page so I can create a project and API key. You can remove the key
84
- later to disconnect this workspace.
109
+ I will open a sign-in page. Signing in gives this project a managed CopilotKit project
110
+ and its API key, which is what lets your app keep every conversation it holds. You can
111
+ remove the key later to disconnect this workspace.
85
112
 
86
113
  3. Open the first `authentication_url` exactly once with the operating system's default
87
114
  browser. Run the opener separately from the long-lived login process. Use the command
@@ -124,7 +151,7 @@ Before you ask the developer any setup question, finish every read-only investig
124
151
  preflight check in this section.
125
152
 
126
153
  Prepare two research assignments. Give each research subagent one assignment. Tell it to run
127
- `npx --yes copilotkit@4.9.50 onboard read subagent/inspect-repository` first and follow the
154
+ `npx --yes copilotkit@4.9.60 onboard read subagent/inspect-repository` first and follow the
128
155
  prompt it returns. If that read fails because the subagent cannot use the shell, stop that
129
156
  subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
130
157
  and the same handoff. Require only its assigned packet.
@@ -189,7 +216,7 @@ Wait for both research subagents to finish.
189
216
  Then report that the research came back:
190
217
 
191
218
  ```text
192
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase research-returned
219
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase research-returned
193
220
  ```
194
221
 
195
222
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -216,7 +243,7 @@ both workers return the same one target app directory. Both results must start w
216
243
  Before you route on, run this from the target app directory:
217
244
 
218
245
  ```text
219
- npx --yes copilotkit@4.9.50 onboard protect
246
+ npx --yes copilotkit@4.9.60 onboard protect
220
247
  ```
221
248
 
222
249
  It reads the working tree itself, records every changed or untracked path with a digest,
@@ -258,7 +285,7 @@ settle these three from your own reading of the project. Each one comes from the
258
285
  packets or it is not proved.
259
286
 
260
287
  If all three are proved, prove the live starting state before any project file changes. Run
261
- `npx --yes copilotkit@4.9.50 onboard read proof/oss-baseline`.
288
+ `npx --yes copilotkit@4.9.60 onboard read proof/oss-baseline`.
262
289
 
263
290
  Route there before you ask the developer anything else. The questions after this prompt
264
291
  select a framework and a frontend that the findings already name, so a developer who
@@ -271,10 +298,10 @@ developer nor the repository findings prove what the project is for, ask one gui
271
298
  question about the user outcome. This asks what the developer wants to build before you
272
299
  select a framework. Give two or three short examples and offer a minimal starter. Record
273
300
  the answer and give it to each later subagent. Then run
274
- `npx --yes copilotkit@4.9.50 onboard read credentials/plan`.
301
+ `npx --yes copilotkit@4.9.60 onboard read credentials/plan`.
275
302
 
276
303
  Do not ask that question on the route above. A project carrying all three states its
277
304
  purpose in the application it already serves.
278
305
 
279
306
  If authentication or inspection stops onboarding, run
280
- `npx --yes copilotkit@4.9.50 onboard read unsupported/no-validated-path`.
307
+ `npx --yes copilotkit@4.9.60 onboard read unsupported/no-validated-path`.
@@ -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 --yes copilotkit@4.9.50 verify --round-trip`, which sends a
103
+ fifth item is proved by `npx --yes copilotkit@4.9.60 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 --yes copilotkit@4.9.50 onboard read credentials/finalize-plan`.
119
+ Then run `npx --yes copilotkit@4.9.60 onboard read credentials/finalize-plan`.
120
120
 
121
121
  If a selected page does not load after the second method, run
122
- `npx --yes copilotkit@4.9.50 onboard read unsupported/no-validated-path`.
122
+ `npx --yes copilotkit@4.9.60 onboard read unsupported/no-validated-path`.
@@ -23,7 +23,7 @@ stop. Run the feedback command without another developer question. The CLI telem
23
23
  decides whether the report is sent.
24
24
 
25
25
  ```text
26
- npx --yes copilotkit@4.9.50 onboard feedback
26
+ npx --yes copilotkit@4.9.60 onboard feedback
27
27
  ```
28
28
 
29
29
  Write at most four lines to standard input: the step you stopped at and what stopped it.
@@ -35,18 +35,26 @@ not a route change and does not resume the run.
35
35
  ## Record the audit cell
36
36
 
37
37
  Use the repository findings and selected choices to record the path before project work
38
- starts. Choose one starting state: empty, agent-only, frontend-only, both, both-oss.
38
+ starts. Choose one starting state: empty, agent-only, frontend-only, both,
39
+ both-copilotkit-unproved, both-oss.
39
40
 
40
41
  - `empty`: no agent and no frontend.
41
42
  - `agent-only`: an agent and no frontend.
42
43
  - `frontend-only`: a frontend and no agent.
43
- - `both`: an agent and frontend that do not have a proved CopilotKit round trip.
44
+ - `both`: an agent and frontend with no CopilotKit integration.
45
+ - `both-copilotkit-unproved`: an agent, a frontend and a CopilotKit integration whose
46
+ round trip did not prove.
44
47
  - `both-oss`: an agent and frontend with the proved OSS CopilotKit baseline.
45
48
 
49
+ The last two are the states of a project that has CopilotKit, and the baseline proof
50
+ decides which one is true. A run served `proof/oss-baseline` records one of them. The
51
+ first four say that an agent, a frontend, or the CopilotKit integration is absent, and
52
+ the command refuses one of them from a run that was served that node.
53
+
46
54
  Run this command with the exact selected slugs:
47
55
 
48
56
  ```text
49
- npx --yes copilotkit@4.9.50 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend>
57
+ npx --yes copilotkit@4.9.60 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend>
50
58
  ```
51
59
 
52
60
  Do not continue if a value is refused. Fix the value from the choices that the earlier
@@ -140,7 +148,7 @@ passes against the wrong one.
140
148
  Create it, from the target directory:
141
149
 
142
150
  ```text
143
- npx --yes copilotkit@4.9.50 project select --create <name> --json
151
+ npx --yes copilotkit@4.9.60 project select --create <name> --json
144
152
  ```
145
153
 
146
154
  If the command fails as a duplicate, the organization already holds that display name and
@@ -154,13 +162,13 @@ Take this branch only when the developer asks for an existing project, or asks t
154
162
  projects they have. Read the choices:
155
163
 
156
164
  ```text
157
- npx --yes copilotkit@4.9.50 project list --json
165
+ npx --yes copilotkit@4.9.60 project list --json
158
166
  ```
159
167
 
160
168
  Narrow them:
161
169
 
162
170
  ```text
163
- npx --yes copilotkit@4.9.50 project list --search <query> --json
171
+ npx --yes copilotkit@4.9.60 project list --search <query> --json
164
172
  ```
165
173
 
166
174
  With `--json` the payload is the only thing on standard output, so it is safe to parse. Do
@@ -172,7 +180,7 @@ this directory's.
172
180
  Then record the project they name, from the target directory:
173
181
 
174
182
  ```text
175
- npx --yes copilotkit@4.9.50 project select --project <slug-or-id> --json
183
+ npx --yes copilotkit@4.9.60 project select --project <slug-or-id> --json
176
184
  ```
177
185
 
178
186
  The two flags cannot be combined. A slug that does not exist fails and lists the real ones,
@@ -236,7 +244,7 @@ protected path list. Also add each project file that the developer changed for m
236
244
  credentials. Record them in the baseline from the target app directory:
237
245
 
238
246
  ```text
239
- npx --yes copilotkit@4.9.50 onboard protect --path <path>
247
+ npx --yes copilotkit@4.9.60 onboard protect --path <path>
240
248
  ```
241
249
 
242
250
  Pass one `--path` for each. The command captures a digest for each path and never re-reads
@@ -246,13 +254,39 @@ Then re-capture the files this graph wrote itself. For each path the first captu
246
254
  as `deferred` that this run has now written, run:
247
255
 
248
256
  ```text
249
- npx --yes copilotkit@4.9.50 onboard protect --rebaseline --path <path>
257
+ npx --yes copilotkit@4.9.60 onboard protect --rebaseline --path <path>
250
258
  ```
251
259
 
252
260
  From that point they are protected like any other path, so a later step that rewrites
253
261
  `.env` and drops its key fails the audit rather than passing it. Continue only if every
254
262
  result starts with `Status: passed`.
255
263
 
264
+ ### When the developer writes a credential after the baseline
265
+
266
+ Asking the developer to place a credential themselves means their edit lands when they get
267
+ to it, and often after the paths above are captured. A later audit then reports the
268
+ environment path as changed. That change is the one this run asked for, so it is not
269
+ damage, and the credential route is how the run says so.
270
+
271
+ Do not run that route here as a step of its own. Run it only when an audit names the
272
+ environment path. The command below is what to run at that point, from the target app
273
+ directory:
274
+
275
+ ```text
276
+ npx --yes copilotkit@4.9.60 onboard protect --accept-credential --path <environment path>
277
+ ```
278
+
279
+ The command compares the variable names the baseline recorded with the names the file holds
280
+ now. Read its result:
281
+
282
+ - `Status: passed` means the developer added a credential and every recorded credential is
283
+ still there. Carry the accepted path into the summary.
284
+ - `credential-lost` means a variable the baseline recorded is gone or empty, and the
285
+ refusal names it. Do not repair or rewrite the file. Report the named variable and stop
286
+ onboarding. A run that lost the project key has nothing to prove a round trip with.
287
+ - `unchanged-path` means the file matches its baseline, so nothing was placed in it. That
288
+ is not a failed step. It answers the question and the run carries on.
289
+
256
290
  ## Wire the runtime to Intelligence
257
291
 
258
292
  The key in `.env` does nothing on its own. The runtime reads no environment variable for
@@ -270,7 +304,7 @@ proof subagents:
270
304
  Fetch them together with the pages already selected rather than on their own.
271
305
 
272
306
  Spawn one planning subagent. Tell it to run
273
- `npx --yes copilotkit@4.9.50 onboard read subagent/create-plan` first and follow the prompt
307
+ `npx --yes copilotkit@4.9.60 onboard read subagent/create-plan` first and follow the prompt
274
308
  it returns. If that read fails because the subagent cannot use the shell, stop that subagent.
275
309
  Run the same command yourself, then spawn a fresh subagent with the returned prompt and the
276
310
  same handoff. Give it the repository findings, selected framework, frontend, model, credential
@@ -295,8 +329,15 @@ An upgrade to a working install is the developer's call, so it belongs in the pl
295
329
  approve rather than in the implementation that follows. Do not upgrade a dependency the
296
330
  developer did not approve.
297
331
 
332
+ When you ask for approval, tell the developer in one line that this is the last thing you
333
+ need from them, and that they can leave the run once they approve. That is a fact about
334
+ this graph rather than a reassurance: no step after approval asks the developer a question,
335
+ and the steps that follow are the longest ones in the run. A developer who does not know
336
+ that waits at the terminal through all of them for a question that never comes. Say it in
337
+ the same message as the plan, and do not turn it into a second question.
338
+
298
339
  If the developer approves the plan, run
299
- `npx --yes copilotkit@4.9.50 onboard read implementation/build-and-validate`.
340
+ `npx --yes copilotkit@4.9.60 onboard read implementation/build-and-validate`.
300
341
 
301
342
  If no exact supported path or documentation URL exists, run
302
- `npx --yes copilotkit@4.9.50 onboard read unsupported/no-validated-path`.
343
+ `npx --yes copilotkit@4.9.60 onboard read unsupported/no-validated-path`.
@@ -68,26 +68,26 @@ another framework. Do not show the internal route.
68
68
 
69
69
  Use exactly one matching internal route:
70
70
 
71
- 1. AG2: `npx --yes copilotkit@4.9.50 onboard read framework/ag2`
72
- 2. Agno: `npx --yes copilotkit@4.9.50 onboard read framework/agno`
73
- 3. Built-in CopilotKit agent: `npx --yes copilotkit@4.9.50 onboard read framework/built-in`
74
- 4. Claude Agent SDK Python: `npx --yes copilotkit@4.9.50 onboard read framework/claude-sdk-python`
75
- 5. Claude Agent SDK TypeScript: `npx --yes copilotkit@4.9.50 onboard read framework/claude-sdk-typescript`
76
- 6. CrewAI Flows: `npx --yes copilotkit@4.9.50 onboard read framework/crewai-flows`
77
- 7. Deep Agents: `npx --yes copilotkit@4.9.50 onboard read framework/deep-agents`
78
- 8. LangGraph Python: `npx --yes copilotkit@4.9.50 onboard read framework/langgraph-python`
79
- 9. LangGraph FastAPI: `npx --yes copilotkit@4.9.50 onboard read framework/langgraph-fastapi`
80
- 10. LangGraph TypeScript: `npx --yes copilotkit@4.9.50 onboard read framework/langgraph-typescript`
81
- 11. LlamaIndex: `npx --yes copilotkit@4.9.50 onboard read framework/llamaindex`
82
- 12. ADK: `npx --yes copilotkit@4.9.50 onboard read framework/google-adk`
83
- 13. Microsoft Agent Framework Python: `npx --yes copilotkit@4.9.50 onboard read framework/ms-agent-python`
84
- 14. Microsoft Agent Framework .NET: `npx --yes copilotkit@4.9.50 onboard read framework/ms-agent-dotnet`
85
- 15. Mastra: `npx --yes copilotkit@4.9.50 onboard read framework/mastra`
86
- 16. MS Agent Harness .NET: `npx --yes copilotkit@4.9.50 onboard read framework/ms-agent-harness-dotnet`
87
- 17. Pydantic AI: `npx --yes copilotkit@4.9.50 onboard read framework/pydantic-ai`
88
- 18. Strands Agents Python: `npx --yes copilotkit@4.9.50 onboard read framework/strands-python`
89
- 19. Strands Agents TypeScript: `npx --yes copilotkit@4.9.50 onboard read framework/strands-typescript`
71
+ 1. AG2: `npx --yes copilotkit@4.9.60 onboard read framework/ag2`
72
+ 2. Agno: `npx --yes copilotkit@4.9.60 onboard read framework/agno`
73
+ 3. Built-in CopilotKit agent: `npx --yes copilotkit@4.9.60 onboard read framework/built-in`
74
+ 4. Claude Agent SDK Python: `npx --yes copilotkit@4.9.60 onboard read framework/claude-sdk-python`
75
+ 5. Claude Agent SDK TypeScript: `npx --yes copilotkit@4.9.60 onboard read framework/claude-sdk-typescript`
76
+ 6. CrewAI Flows: `npx --yes copilotkit@4.9.60 onboard read framework/crewai-flows`
77
+ 7. Deep Agents: `npx --yes copilotkit@4.9.60 onboard read framework/deep-agents`
78
+ 8. LangGraph Python: `npx --yes copilotkit@4.9.60 onboard read framework/langgraph-python`
79
+ 9. LangGraph FastAPI: `npx --yes copilotkit@4.9.60 onboard read framework/langgraph-fastapi`
80
+ 10. LangGraph TypeScript: `npx --yes copilotkit@4.9.60 onboard read framework/langgraph-typescript`
81
+ 11. LlamaIndex: `npx --yes copilotkit@4.9.60 onboard read framework/llamaindex`
82
+ 12. ADK: `npx --yes copilotkit@4.9.60 onboard read framework/google-adk`
83
+ 13. Microsoft Agent Framework Python: `npx --yes copilotkit@4.9.60 onboard read framework/ms-agent-python`
84
+ 14. Microsoft Agent Framework .NET: `npx --yes copilotkit@4.9.60 onboard read framework/ms-agent-dotnet`
85
+ 15. Mastra: `npx --yes copilotkit@4.9.60 onboard read framework/mastra`
86
+ 16. MS Agent Harness .NET: `npx --yes copilotkit@4.9.60 onboard read framework/ms-agent-harness-dotnet`
87
+ 17. Pydantic AI: `npx --yes copilotkit@4.9.60 onboard read framework/pydantic-ai`
88
+ 18. Strands Agents Python: `npx --yes copilotkit@4.9.60 onboard read framework/strands-python`
89
+ 19. Strands Agents TypeScript: `npx --yes copilotkit@4.9.60 onboard read framework/strands-typescript`
90
90
 
91
91
  If the project has an agent in another framework, or no listed framework fits, keep the
92
92
  developer's current agent and run
93
- `npx --yes copilotkit@4.9.50 onboard read unsupported/no-validated-path`.
93
+ `npx --yes copilotkit@4.9.60 onboard read unsupported/no-validated-path`.
@@ -14,7 +14,7 @@ command without another developer question. The CLI telemetry gate decides wheth
14
14
  report is sent.
15
15
 
16
16
  ```text
17
- npx --yes copilotkit@4.9.50 onboard feedback
17
+ npx --yes copilotkit@4.9.60 onboard feedback
18
18
  ```
19
19
 
20
20
  Write at most four lines to standard input: the step you stopped at and what stopped it.
@@ -56,13 +56,13 @@ stop.
56
56
 
57
57
  Use these rules for every protected-path check in this fallback:
58
58
 
59
- - Run `npx --yes copilotkit@4.9.50 onboard audit` from the target app directory.
59
+ - Run `npx --yes copilotkit@4.9.60 onboard audit` from the target app directory.
60
60
  - If a result starts with `Status: blocked`, stop onboarding and report the printed reason.
61
61
  It proved nothing changed, so do not report a preservation failure.
62
62
  - If a result reports a changed protected path this run wrote, stop onboarding.
63
63
  - If a result reports a changed path that no Files changed section from this run names,
64
64
  the change came from outside the run. Accept it by name with
65
- `npx --yes copilotkit@4.9.50 onboard protect --accept-external --path <path>`, run the
65
+ `npx --yes copilotkit@4.9.60 onboard protect --accept-external --path <path>`, run the
66
66
  audit again, and name it in the closing report.
67
67
  - If no Files changed section from this run covers the step that wrote it, stop
68
68
  onboarding. The proof subagent here returns no such section, so a finding it raises is
@@ -115,13 +115,13 @@ application passes proof. Report each tool result separately from the proof resu
115
115
  Report the documentation gap and each assumption with the proof evidence. Do not claim
116
116
  that the selected documentation proved an inferred step.
117
117
 
118
- When the proof is complete, run `npx --yes copilotkit@4.9.50 onboard complete`, carrying the
118
+ When the proof is complete, run `npx --yes copilotkit@4.9.60 onboard complete`, carrying the
119
119
  surface-check result the proof subagent returned. Pass exactly one flag, matching this
120
120
  journey's surface:
121
121
 
122
122
  ```text
123
- npx --yes copilotkit@4.9.50 onboard complete --visual-check <outcome>
124
- npx --yes copilotkit@4.9.50 onboard complete --device-check <outcome>
123
+ npx --yes copilotkit@4.9.60 onboard complete --visual-check <outcome>
124
+ npx --yes copilotkit@4.9.60 onboard complete --device-check <outcome>
125
125
  ```
126
126
 
127
127
  `--visual-check` is for a web frontend and takes `performed`, `skipped-no-browser-tool`, or
@@ -18,15 +18,15 @@ without exposing secrets.
18
18
  When implementation validation passes, report it:
19
19
 
20
20
  ```text
21
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase build-validated
21
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase build-validated
22
22
  ```
23
23
 
24
24
  If validation cannot pass, or this intent needs a prerequisite the app does not have, stop
25
25
  without further changes:
26
26
 
27
27
  ```text
28
- npx --yes copilotkit@4.9.50 onboard read feature/stop
28
+ npx --yes copilotkit@4.9.60 onboard read feature/stop
29
29
  ```
30
30
 
31
31
  Otherwise run
32
- `npx --yes copilotkit@4.9.50 onboard read feature/a2ui/proof`.
32
+ `npx --yes copilotkit@4.9.60 onboard read feature/a2ui/proof`.
@@ -19,16 +19,16 @@ user's agent response with a hard-coded UI.
19
19
  Report each attempt at the proof as it ends, counting from one:
20
20
 
21
21
  ```text
22
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase journey-attempted --attempt 1
22
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase journey-attempted --attempt 1
23
23
  ```
24
24
 
25
25
  Report each repair cycle the same way, counting from one:
26
26
 
27
27
  ```text
28
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase repair-attempted --attempt 1
28
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase repair-attempted --attempt 1
29
29
  ```
30
30
 
31
31
  When the actual surface was driven, run
32
- `npx --yes copilotkit@4.9.50 onboard complete --visual-check performed`. If it could not
32
+ `npx --yes copilotkit@4.9.60 onboard complete --visual-check performed`. If it could not
33
33
  be driven because no browser tool is available, run the same command with
34
34
  `--visual-check skipped-no-browser-tool`; if it failed, use `--visual-check failed`.
@@ -12,7 +12,7 @@ development/test commands. It must return paths and secret-safe presence checks
12
12
 
13
13
  Require an existing frontend, agent, and CopilotKit round trip. Start only project-owned
14
14
  processes when needed, inspect `/info`, and run
15
- `npx --yes copilotkit@4.9.50 verify --expect-runtime oss --round-trip --agent <agent-id> --json`.
15
+ `npx --yes copilotkit@4.9.60 verify --expect-runtime oss --round-trip --agent <agent-id> --json`.
16
16
  Also drive one existing request through the frontend when browser control is available. If
17
17
  that baseline is absent or unproved, leave files unchanged, explain that this intent extends
18
18
  an existing OSS app, and direct the developer to generic `copilotkit onboard start` first.
@@ -20,7 +20,7 @@ an existing OSS app, and direct the developer to generic `copilotkit onboard sta
20
20
  Wait for the inspection subagent to finish. Then report that the inspection came back:
21
21
 
22
22
  ```text
23
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase research-returned
23
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase research-returned
24
24
  ```
25
25
 
26
26
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -30,7 +30,7 @@ If the inspection did not prove the baseline this intent extends, stop here with
30
30
  changing files:
31
31
 
32
32
  ```text
33
- npx --yes copilotkit@4.9.50 onboard read feature/stop
33
+ npx --yes copilotkit@4.9.60 onboard read feature/stop
34
34
  ```
35
35
 
36
36
  Do not run `login`, select an Intelligence project, add an Intelligence client, mint a
@@ -49,7 +49,7 @@ renders a compact visible surface. Ask for plan approval as its own question.
49
49
  After approval, report the plan this run is about to implement:
50
50
 
51
51
  ```text
52
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase plan-written
52
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase plan-written
53
53
  ```
54
54
 
55
- Then run `npx --yes copilotkit@4.9.50 onboard read feature/a2ui/implement`.
55
+ Then run `npx --yes copilotkit@4.9.60 onboard read feature/a2ui/implement`.
@@ -14,15 +14,15 @@ Run focused type/test checks and start the app. Record the changed files and val
14
14
  When implementation validation passes, report it:
15
15
 
16
16
  ```text
17
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase build-validated
17
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase build-validated
18
18
  ```
19
19
 
20
20
  If validation cannot pass, or this intent needs a prerequisite the app does not have, stop
21
21
  without further changes:
22
22
 
23
23
  ```text
24
- npx --yes copilotkit@4.9.50 onboard read feature/stop
24
+ npx --yes copilotkit@4.9.60 onboard read feature/stop
25
25
  ```
26
26
 
27
27
  Otherwise run
28
- `npx --yes copilotkit@4.9.50 onboard read feature/chat-suggestions/proof`.
28
+ `npx --yes copilotkit@4.9.60 onboard read feature/chat-suggestions/proof`.
@@ -12,15 +12,15 @@ project-owned services running.
12
12
  Report each attempt at the proof as it ends, counting from one:
13
13
 
14
14
  ```text
15
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase journey-attempted --attempt 1
15
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase journey-attempted --attempt 1
16
16
  ```
17
17
 
18
18
  Report each repair cycle the same way, counting from one:
19
19
 
20
20
  ```text
21
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase repair-attempted --attempt 1
21
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase repair-attempted --attempt 1
22
22
  ```
23
23
 
24
24
  Run
25
- `npx --yes copilotkit@4.9.50 onboard complete --visual-check <performed|skipped-no-browser-tool|failed>`
25
+ `npx --yes copilotkit@4.9.60 onboard complete --visual-check <performed|skipped-no-browser-tool|failed>`
26
26
  with the real browser-proof outcome.
@@ -5,7 +5,7 @@ implementation, and proof to separate subagents and keep all work inside the tar
5
5
 
6
6
  Before edits, identify the current CopilotKit provider, chat component, message lifecycle,
7
7
  agent id, package version, and test/dev commands. Prove the existing OSS round trip with
8
- `/info`, `npx --yes copilotkit@4.9.50 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
8
+ `/info`, `npx --yes copilotkit@4.9.60 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
9
9
  and one real frontend request when browser control is available. If there is no proven
10
10
  existing CopilotKit chat, leave files unchanged and direct the developer to generic
11
11
  onboarding first.
@@ -13,7 +13,7 @@ onboarding first.
13
13
  Wait for the inspection subagent to finish. Then report that the inspection came back:
14
14
 
15
15
  ```text
16
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase research-returned
16
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase research-returned
17
17
  ```
18
18
 
19
19
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -23,7 +23,7 @@ If the inspection did not prove the baseline this intent extends, stop here with
23
23
  changing files:
24
24
 
25
25
  ```text
26
- npx --yes copilotkit@4.9.50 onboard read feature/stop
26
+ npx --yes copilotkit@4.9.60 onboard read feature/stop
27
27
  ```
28
28
 
29
29
  Do not run login, provision Intelligence, request a credential, replace the agent, or alter
@@ -40,7 +40,7 @@ that a visible suggestion submits the intended message.
40
40
  After approval, report the plan this run is about to implement:
41
41
 
42
42
  ```text
43
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase plan-written
43
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase plan-written
44
44
  ```
45
45
 
46
- Then run `npx --yes copilotkit@4.9.50 onboard read feature/chat-suggestions/implement`.
46
+ Then run `npx --yes copilotkit@4.9.60 onboard read feature/chat-suggestions/implement`.
@@ -5,10 +5,72 @@ valid existing Intelligence selection. If it is absent, use the documented strea
5
5
  `login --json` session, let the developer select or create the Intelligence project, and
6
6
  require the secret-safe project/key provisioning summary before wiring the runtime.
7
7
 
8
- After the project is selected, ask the developer to create or select a stable Learning
9
- Container in the selected project's dashboard and provide its non-secret id. This is a real
10
- human gate: stop if they cannot provide it. Do not write a placeholder, a guessed id, or a
11
- new unsupported CLI command.
8
+ After the project is selected, settle the container from the terminal.
9
+
10
+ When the plan or the repository already names an id, ask about that one id and nothing else:
11
+
12
+ ```text
13
+ npx --yes copilotkit@4.9.60 learning containers get <id> --json
14
+ ```
15
+
16
+ One call answers it, and no list is needed.
17
+
18
+ When no id is in hand, survey what the project holds:
19
+
20
+ ```text
21
+ npx --yes copilotkit@4.9.60 learning containers list --json
22
+ ```
23
+
24
+ One call returns at most 500 containers. When `nextCursor` in the result is not null, read
25
+ the next page with `--cursor <nextCursor>` and keep going until it is null. A project whose
26
+ container sits on the second page looks empty to a single call, and the run then adds a
27
+ second container for work the first one already covers.
28
+
29
+ Report what the read found before asking anyone anything:
30
+
31
+ ```text
32
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase container-surveyed
33
+ ```
34
+
35
+ Everything after this waits on a person, so a run that stops past this point stopped on a
36
+ decision rather than on a read.
37
+
38
+ Reuse an existing container when one covers the workflow this run is instrumenting, and ask
39
+ the developer which one when more than one could. Otherwise create one.
40
+
41
+ Default to one container for this project, and name it after the project. Learning needs
42
+ evidence to work with: the first automatic run wants threads from 15 distinct conversations
43
+ in one container, so splitting a new project across several leaves every one of them below
44
+ the line. One container per end user is the same trap and a harder one, because a project
45
+ holds at most 500 and each user's own container then needs 15 conversations from that one
46
+ person. Route per user only when the developer asks for it, and do it in their selector
47
+ rather than in more containers: `getLearningContainerId` receives the resolved application
48
+ user, so the callback can return a different id per tier or per customer.
49
+
50
+ Use a descriptive lowercase hyphenated id of 1-64 characters:
51
+
52
+ ```text
53
+ npx --yes copilotkit@4.9.60 learning containers create --id <id> --name <name> --json
54
+ ```
55
+
56
+ An id already in use answers `LEARNING_CONTAINER_ALREADY_EXISTS`. That is a container to
57
+ read with `get` and reuse, not a failure to repair and not a reason to pick a new id.
58
+
59
+ Confirm the id resolves before any file changes, whichever way it was settled. That check is
60
+ the cheap one to keep: a selector wired to an id the platform does not hold returns
61
+ `LEARNING_CONTAINER_NOT_FOUND` on every thread create and every run lock, so a working chat
62
+ breaks on the next message. Stop here if the id does not resolve. Do not write a placeholder
63
+ or a guessed id.
64
+
65
+ Then report that the container is settled, before any edit:
66
+
67
+ ```text
68
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase container-settled
69
+ ```
70
+
71
+ Everything above happens between two prompts, so a run that stopped on a developer who could
72
+ not choose, on a taken id, or on an id that never resolved would otherwise report the plan
73
+ and then nothing at all.
12
74
 
13
75
  Add only the documented managed runtime/thread prerequisites and the selected
14
76
  `getLearningContainerId` on the `CopilotKitIntelligence` instance. Return the same stable
@@ -24,21 +86,21 @@ non-zero on an app that is working. Pass what `identifyUser` reads with a repeat
24
86
  It is not a defect to repair.
25
87
 
26
88
  Run focused tests and
27
- `npx --yes copilotkit@4.9.50 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
89
+ `npx --yes copilotkit@4.9.60 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
28
90
  Repair changed-file failures and record secret-safe evidence.
29
91
 
30
92
  When implementation validation passes, report it:
31
93
 
32
94
  ```text
33
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase build-validated
95
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase build-validated
34
96
  ```
35
97
 
36
98
  If validation cannot pass, or this intent needs a prerequisite the app does not have, stop
37
99
  without further changes:
38
100
 
39
101
  ```text
40
- npx --yes copilotkit@4.9.50 onboard read feature/stop
102
+ npx --yes copilotkit@4.9.60 onboard read feature/stop
41
103
  ```
42
104
 
43
105
  Otherwise run
44
- `npx --yes copilotkit@4.9.50 onboard read feature/learning/proof`.
106
+ `npx --yes copilotkit@4.9.60 onboard read feature/learning/proof`.