copilotkit 4.9.17 → 4.9.31

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 (47) hide show
  1. package/README.md +152 -51
  2. package/cli-build-info.json +8 -8
  3. package/index.js +4590 -3234
  4. package/onboarding/index.json +1 -1
  5. package/onboarding/prompts/authenticate/start.md +27 -8
  6. package/onboarding/prompts/conversion/plan.md +24 -13
  7. package/onboarding/prompts/credentials/finalize-plan.md +119 -45
  8. package/onboarding/prompts/credentials/plan.md +20 -20
  9. package/onboarding/prompts/fallback/best-effort.md +19 -10
  10. package/onboarding/prompts/framework/ag2.md +2 -2
  11. package/onboarding/prompts/framework/agno.md +2 -2
  12. package/onboarding/prompts/framework/built-in.md +2 -2
  13. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  14. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  15. package/onboarding/prompts/framework/crewai-flows.md +2 -2
  16. package/onboarding/prompts/framework/deep-agents.md +2 -2
  17. package/onboarding/prompts/framework/google-adk.md +2 -2
  18. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  19. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  20. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  21. package/onboarding/prompts/framework/llamaindex.md +2 -2
  22. package/onboarding/prompts/framework/mastra.md +2 -2
  23. package/onboarding/prompts/framework/ms-agent-dotnet.md +2 -2
  24. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
  25. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  26. package/onboarding/prompts/framework/pydantic-ai.md +3 -3
  27. package/onboarding/prompts/framework/strands-python.md +2 -2
  28. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  29. package/onboarding/prompts/frontend/angular.md +32 -4
  30. package/onboarding/prompts/frontend/nextjs.md +3 -3
  31. package/onboarding/prompts/frontend/plan.md +6 -6
  32. package/onboarding/prompts/frontend/react-native.md +2 -2
  33. package/onboarding/prompts/frontend/react-spa.md +2 -2
  34. package/onboarding/prompts/frontend/vue.md +2 -2
  35. package/onboarding/prompts/implementation/build-and-validate.md +32 -10
  36. package/onboarding/prompts/proof/complete.md +33 -12
  37. package/onboarding/prompts/proof/oss-baseline.md +13 -6
  38. package/onboarding/prompts/proof/round-trip.md +20 -12
  39. package/onboarding/prompts/starter/clone.md +17 -8
  40. package/onboarding/prompts/subagent/create-plan.md +31 -3
  41. package/onboarding/prompts/subagent/implement-and-validate.md +30 -1
  42. package/onboarding/prompts/subagent/inspect-repository.md +1 -1
  43. package/onboarding/prompts/subagent/prove-oss-baseline.md +16 -7
  44. package/onboarding/prompts/subagent/prove-round-trip.md +31 -10
  45. package/onboarding/prompts/unsupported/no-validated-path.md +6 -2
  46. package/package.json +1 -1
  47. package/release/release-tool.js +15 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "graphTree": "613209959e8d5888a5770391381eeb0055fbe68d",
2
+ "graphTree": "4d505cf0b83ae312e7331fdaca811ef5959d69c2",
3
3
  "root": "authenticate/start",
4
4
  "prompts": [
5
5
  {
@@ -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.17 onboard start --run <onboarding_run_id>` in the directory
19
+ `npx --yes copilotkit@4.9.31 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.
@@ -50,7 +50,7 @@ without another developer question. The CLI telemetry gate decides whether the r
50
50
  sent.
51
51
 
52
52
  ```text
53
- npx --yes copilotkit@4.9.17 onboard feedback
53
+ npx --yes copilotkit@4.9.31 onboard feedback
54
54
  ```
55
55
 
56
56
  Write at most four lines to the command's standard input: the step you stopped at and what
@@ -67,7 +67,7 @@ Until now the route out of an unsupported path was the only place that asked for
67
67
  so a stop anywhere else left no trace at all. A stop nobody hears about is a stop this
68
68
  graph cannot fix.
69
69
 
70
- Run `npx --yes copilotkit@4.9.17 login --json` before any project work. This command
70
+ Run `npx --yes copilotkit@4.9.31 login --json` before any project work. This command
71
71
  checks the current session. It starts sign-in only as needed. Treat this as a long-lived
72
72
  streaming process. Do not wait for the command to exit before you read its standard output.
73
73
 
@@ -84,11 +84,30 @@ Read each JSON Lines record as the running command writes it:
84
84
  Do not use `whoami` for this check. It has no JSON output and some failures exit with code
85
85
  zero. Do not put account tokens or credentials in the conversation.
86
86
 
87
+ ## How to wait for a subagent
88
+
89
+ This rule covers every subagent this run spawns, here and in every later prompt.
90
+
91
+ Spawning a subagent returns almost at once. That return is the dispatch succeeding, not the
92
+ work finishing: the subagent runs in the background, and its result reaches you as a
93
+ notification. Where your own harness hands you the report from the dispatch itself instead,
94
+ you already hold the result. Either way there is nothing to poll.
95
+
96
+ After you dispatch, do the work that does not depend on the result -- dispatch the other
97
+ subagent, run the preflight below -- and then stop and wait. Wherever a prompt in this graph
98
+ says to wait for a subagent to finish, that is what it means.
99
+
100
+ Do not sleep to pass the time. Not `sleep`, not `/bin/sleep`, not a timer under another
101
+ name, and not a loop that re-checks whether a result has arrived. Sleeping tells you nothing
102
+ that waiting for the result does not, and it spends wall clock, which is one of the things
103
+ this journey is measured on. One recorded run spent most of two hours asleep between
104
+ dispatches that had all returned in seconds.
105
+
87
106
  Before you ask the developer any setup question, finish every read-only investigation and
88
107
  preflight check in this section.
89
108
 
90
109
  Prepare two research assignments. Give each research subagent one assignment. Tell it to run
91
- `npx --yes copilotkit@4.9.17 onboard read subagent/inspect-repository` first and follow the
110
+ `npx --yes copilotkit@4.9.31 onboard read subagent/inspect-repository` first and follow the
92
111
  prompt it returns. If that read fails because the subagent cannot use the shell, stop that
93
112
  subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
94
113
  and the same handoff. Require only its assigned packet.
@@ -171,7 +190,7 @@ both workers return the same one target app directory. Both results must start w
171
190
  Before you route on, run this from the target app directory:
172
191
 
173
192
  ```text
174
- npx --yes copilotkit@4.9.17 onboard protect
193
+ npx --yes copilotkit@4.9.31 onboard protect
175
194
  ```
176
195
 
177
196
  It reads the working tree itself, records every changed or untracked path with a digest,
@@ -213,7 +232,7 @@ settle these three from your own reading of the project. Each one comes from the
213
232
  packets or it is not proved.
214
233
 
215
234
  If all three are proved, prove the live starting state before any project file changes. Run
216
- `npx --yes copilotkit@4.9.17 onboard read proof/oss-baseline`.
235
+ `npx --yes copilotkit@4.9.31 onboard read proof/oss-baseline`.
217
236
 
218
237
  Route there before you ask the developer anything else. The questions after this prompt
219
238
  select a framework and a frontend that the findings already name, so a developer who
@@ -226,10 +245,10 @@ developer nor the repository findings prove what the project is for, ask one gui
226
245
  question about the user outcome. This asks what the developer wants to build before you
227
246
  select a framework. Give two or three short examples and offer a minimal starter. Record
228
247
  the answer and give it to each later subagent. Then run
229
- `npx --yes copilotkit@4.9.17 onboard read credentials/plan`.
248
+ `npx --yes copilotkit@4.9.31 onboard read credentials/plan`.
230
249
 
231
250
  Do not ask that question on the route above. A project carrying all three states its
232
251
  purpose in the application it already serves.
233
252
 
234
253
  If authentication or inspection stops onboarding, run
235
- `npx --yes copilotkit@4.9.17 onboard read unsupported/no-validated-path`.
254
+ `npx --yes copilotkit@4.9.31 onboard read unsupported/no-validated-path`.
@@ -52,9 +52,9 @@ Then select the drawer page for the frontend the baseline found:
52
52
  1. React SPA or Next.js: https://docs.copilotkit.ai/prebuilt-components/copilot-threads-drawer.md
53
53
  2. Angular: https://docs.copilotkit.ai/angular/guides/threads-memory-attachments-headless.md
54
54
  3. Vue 3: https://docs.copilotkit.ai/vue/guides/threads-and-drawer.md
55
- 4. React Native: select no drawer page, and select the managed Intelligence dashboard as
56
- the proof surface instead. No page documents a threads drawer for React Native, and
57
- `@copilotkit/react-native` ships no thread components. The closing prompt gives a
55
+ 4. React Native: select no drawer page. No page documents a threads drawer for React
56
+ Native, and `@copilotkit/react-native` ships no thread components, so the fifth
57
+ criterion below is proved on the command line instead. The closing prompt gives a
58
58
  mobile developer a different debugging surface for the same reason.
59
59
 
60
60
  The next prompt adds the runtime pages and fetches everything in one pass, so do not fetch
@@ -79,25 +79,36 @@ steps unchanged. This conversion succeeded when all five are true:
79
79
  1. The same request the OSS baseline made still produces the same kind of user-visible
80
80
  result, on the same frontend.
81
81
  2. The runtime is constructed with an `intelligence` option rather than a `runner` option.
82
- 3. `verify --json` exits zero with `ok` true and all seven checks passing, including
83
- `intelligence_consumed` and `intelligence_thread_routes`.
82
+ 3. `verify --json` exits zero with `ok` true and every check passing, including
83
+ `intelligence_consumed`, `intelligence_thread_routes`, and
84
+ `api_key_loadable_by_app`.
84
85
  4. `/info` now reports `licenseStatus`, which the runtime emits exactly when an
85
86
  Intelligence client was constructed and passed.
86
87
  5. A thread for that request is persisted and visible to the developer.
87
88
 
88
89
  The drawer is what makes the fifth item something the developer can see. Before the
89
- conversion it renders its locked state, because it reads the license context and this
90
- project has none. After it, it lists the thread the proven request created. That before and
91
- after is the conversion's whole user-visible result, and it is why a conversion that only
92
- passes the command-line checks is worth less to the developer than one that does not.
90
+ conversion it lists nothing, because it reads the entitlement the runtime reports and an
91
+ OSS runtime reports none. After it, it lists the thread the proven request created. That
92
+ before and after is the conversion's whole user-visible result, and it is why a conversion
93
+ that only passes the command-line checks is worth less to the developer than one that does
94
+ not.
95
+
96
+ A managed Intelligence project needs no license token. The entitlement the drawer reads
97
+ comes from the project API key this run already configured, resolved by the runtime
98
+ against the managed platform. Minting a token with `copilotkit license create` is not part
99
+ of this journey, and a drawer that lists nothing is not a reason to mint one. License
100
+ tokens stay a self-hosted concern.
93
101
 
94
102
  Where this journey's frontend framework ships no threads drawer -- React Native --, the
95
- fifth item is proved in the managed Intelligence dashboard instead, and the run says which
96
- of the two it proved.
103
+ fifth item is proved by `npx --yes copilotkit@4.9.31 verify --round-trip`, which sends a
104
+ real request and reads the answer back off the thread it landed on. The run says which of
105
+ the two it proved. Do not send a run to the managed Intelligence dashboard to prove this.
106
+ An authenticated browser session at a hosted dashboard is the one thing an agent-driven run
107
+ cannot produce, so a criterion that asks for one can never be met on this route.
97
108
 
98
109
  Record this criterion as `conversion-v1` for the run report.
99
110
 
100
- Then run `npx --yes copilotkit@4.9.17 onboard read credentials/finalize-plan`.
111
+ Then run `npx --yes copilotkit@4.9.31 onboard read credentials/finalize-plan`.
101
112
 
102
113
  If a selected page does not load after the second method, run
103
- `npx --yes copilotkit@4.9.17 onboard read unsupported/no-validated-path`.
114
+ `npx --yes copilotkit@4.9.31 onboard read unsupported/no-validated-path`.
@@ -14,15 +14,16 @@ project to use. Keep final plan approval as its own later question.
14
14
 
15
15
  ## If you stop in this phase
16
16
 
17
- Several rules below stop onboarding: a refused classification value, an output path that
18
- overlaps a protected path, a project selection that reports a false field, a failed
19
- credential check, a model credential nobody can place. Each one ends a run that reached
20
- project selection and never got a plan, and more runs stop here than anywhere else. Send
21
- one short report before you stop. Run the feedback command without another developer
22
- question. The CLI telemetry gate decides whether the report is sent.
17
+ Several rules below stop onboarding: a refused classification value, a project selection
18
+ that reports a false field, a failed credential check, a model credential nobody can
19
+ place. Each one ends a run that reached project selection and never got a plan, and more
20
+ runs stop here than anywhere else. Name the exact file, value, or check that stopped you:
21
+ a report that names only the step cannot be acted on. Send one short report before you
22
+ stop. Run the feedback command without another developer question. The CLI telemetry gate
23
+ decides whether the report is sent.
23
24
 
24
25
  ```text
25
- npx --yes copilotkit@4.9.17 onboard feedback
26
+ npx --yes copilotkit@4.9.31 onboard feedback
26
27
  ```
27
28
 
28
29
  Write at most four lines to standard input: the step you stopped at and what stopped it.
@@ -45,7 +46,7 @@ starts. Choose one starting state: empty, agent-only, frontend-only, both, both-
45
46
  Run this command with the exact selected slugs:
46
47
 
47
48
  ```text
48
- npx --yes copilotkit@4.9.17 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend>
49
+ npx --yes copilotkit@4.9.31 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend>
49
50
  ```
50
51
 
51
52
  Do not continue if a value is refused. Fix the value from the choices that the earlier
@@ -57,6 +58,36 @@ Use the target app or runtime directory from the repository findings. If a neste
57
58
  the runtime `.env` file, do not default to the repository root.
58
59
  Set the environment path to `<target>/.env`.
59
60
 
61
+ Every credential this run writes goes to the environment path. That covers the project
62
+ key, the model credential, and a license token. Do not write a credential to `.env.local`,
63
+ or to any second env file beside it. A project ignore file usually covers `.env` and not
64
+ `.env.local`, so a credential written there is untracked, visible, and added by the first
65
+ `git add -A`. And a second env file beside `.env` outranks it when a key is read back, so
66
+ the value the run depends on is the one it did not write.
67
+
68
+ ### Prove the environment path is ignored
69
+
70
+ Do this before the first credential is written. Ask git whether it ignores the environment
71
+ path, from the repository the path lives in:
72
+
73
+ ```text
74
+ git check-ignore -q <environment path>
75
+ ```
76
+
77
+ Ask git rather than reading `.gitignore`. The answer also comes from a parent ignore file,
78
+ a global excludes file, or a pattern the developer already has, and reading one file gets
79
+ each of those wrong.
80
+
81
+ Exit zero means git ignores the path and nothing more is needed. Exit one means git tracks
82
+ the path, and the credential this run is about to write lands in the first commit. Add the
83
+ missing pattern to the ignore file the developer already keeps, and list that edit in the
84
+ plan with every other file change. Any other exit means there is no work tree here to
85
+ protect. Say so once and carry on.
86
+
87
+ If the path cannot be made ignored, stop onboarding and report it. Do not write the
88
+ credential and leave the problem in the closing report. A developer who commits before
89
+ reading the last screen has already published the token.
90
+
60
91
  If valid project fields and a non-empty `CPK_INTELLIGENCE_API_KEY` already exist, use this
61
92
  rule: Reuse that project without another question. Do not mint another key. The round-trip
62
93
  proof later runs the authenticated Intelligence checks. Record the reused project
@@ -64,57 +95,100 @@ credentials as unverified in the plan until those checks pass.
64
95
  If you reuse a project, set the project-record path to the exact evidence path from the
65
96
  project research subagent.
66
97
 
67
- If the developer needs a project or another project, do the selection yourself from the
68
- target directory. Do not send the developer to another terminal.
98
+ If the developer needs a project, do the work yourself from the target directory.
99
+ Do not send the developer to another terminal.
100
+
101
+ Project selection writes the environment path. It updates the nearest project record from
102
+ the target through the repository root. If no project record exists there, it writes one at
103
+ the repository root. If no repository exists, use the target. If the repository root is the
104
+ home directory, use the target.
69
105
 
70
- Read the choices first:
106
+ Before project selection, derive the expected project-record path from the repository
107
+ findings. Compare that path and the environment path with the paths the first capture
108
+ printed as `protected`. Use the path-segment overlap rule. Ignore every path it printed as
109
+ `deferred`. Those are the files project selection exists to write, so the environment path
110
+ always overlaps one of them, and a run that stops on that overlap never reaches the step
111
+ that provisions its key.
112
+
113
+ If an output path overlaps a `protected` path, do not stop. Name the path, say what
114
+ project selection writes there, list that file in the plan with every other change, and
115
+ carry on. Nothing before project selection ends the run. It is the step that provisions
116
+ this project's key, so a run that stops earlier leaves the developer with no key and no
117
+ way to finish.
118
+
119
+ ### Create a project for this directory
120
+
121
+ No project is bound to this directory, so creating a project for this directory is the
122
+ default. Take the name from the directory that holds the expected project-record path. If
123
+ that directory name is generic -- `project`, `app`, `apps`, `src`, `web`, `frontend`,
124
+ `backend`, `server`, `packages`, `repo` -- use the nearest enclosing directory whose name
125
+ is not. A generic name tells the developer nothing later, and every run that derives it
126
+ collides on it.
127
+
128
+ Ask one question: confirm that name, give another, or ask to use a project they already
129
+ have. Name that third answer, so a developer who has one is not asked to guess
130
+ that it is available. Do not list the organization's projects as part of the question: a
131
+ menu of projects is what bound one onboarding to another one's project, and a developer who
132
+ wants theirs will say so. If they ask for an existing project, take the branch below.
133
+
134
+ Do not combine this question with a frontend, framework, model, credential, or
135
+ plan-approval question. If no developer answers, create with the derived name. Never select
136
+ a project from a listing without an answer that names it. A project another run created
137
+ minutes ago reads exactly like this directory's own, and every check after the selection
138
+ passes against the wrong one.
139
+
140
+ Create it, from the target directory:
71
141
 
72
142
  ```text
73
- npx --yes copilotkit@4.9.17 project list --json
143
+ npx --yes copilotkit@4.9.31 project select --create <name> --json
74
144
  ```
75
145
 
76
- With `--json` the payload is the only thing on standard output, so it is safe to parse.
77
- Show the current selection and the five most recent projects. Sort recency by `createdAt`.
78
- Offer search, create-new, and list-all options. Do not show every project unless the
79
- developer asks.
146
+ If the command fails as a duplicate, the organization already holds that display name and
147
+ the refusal names the colliding slug. Do not select the colliding project. Ask whether that
148
+ project is this app's. If no developer answers, run the command again with the next free
149
+ `-2`, `-3` suffix on the name.
80
150
 
81
- If the developer searches, run:
151
+ ### Select an existing project instead
152
+
153
+ Take this branch only when the developer asks for an existing project, or asks to see the
154
+ projects they have. Read the choices:
82
155
 
83
156
  ```text
84
- npx --yes copilotkit@4.9.17 project list --search <query> --json
157
+ npx --yes copilotkit@4.9.31 project list --json
85
158
  ```
86
159
 
87
- If the developer asks for all projects, show the result of the first list command. Ask
88
- which project to use, or ask for a new project name. Do not combine this question with a
89
- frontend, framework, model, credential, or plan-approval question.
160
+ Narrow them:
90
161
 
91
- Project selection writes the environment path. It updates the nearest project record from
92
- the target through the repository root. If no project record exists there, it writes one at
93
- the repository root. If no repository exists, use the target. If the repository root is the
94
- home directory, use the target.
162
+ ```text
163
+ npx --yes copilotkit@4.9.31 project list --search <query> --json
164
+ ```
95
165
 
96
- Before project selection, derive the expected project-record path from the repository
97
- findings. Compare that path and the environment path with the initial protected paths. Use
98
- the path-segment overlap rule. If either output path overlaps an initial protected path, do
99
- not run project selection. Report the conflicting path and stop onboarding.
166
+ With `--json` the payload is the only thing on standard output, so it is safe to parse. Do
167
+ not run either list command unless the developer asks. Show what they asked for and nothing
168
+ more. Do not order the projects by creation time: the newest project in the organization is
169
+ the one another run created while this one was working, and it is the least likely to be
170
+ this directory's.
100
171
 
101
- Then record their answer, from the target directory:
172
+ Then record the project they name, from the target directory:
102
173
 
103
174
  ```text
104
- npx --yes copilotkit@4.9.17 project select --project <slug-or-id> --json
175
+ npx --yes copilotkit@4.9.31 project select --project <slug-or-id> --json
105
176
  ```
106
177
 
107
- Use `--create <name> --json` instead when they want a new project. The two flags cannot be
108
- combined. A slug that does not exist fails and lists the real ones, so a typo cannot record
109
- a selection that points at nothing.
178
+ The two flags cannot be combined. A slug that does not exist fails and lists the real ones,
179
+ so a typo cannot record a selection that points at nothing.
110
180
 
111
181
  Read the JSON result. It reports `selected_project_slug`, `config_path`,
112
182
  `api_key_provisioned`, `project_file_written`, and `environment_file_written` at the top
113
183
  level. The result does not contain a secret. Report `selected_project_slug` as the project
114
184
  slug that the server selected or created. Require `api_key_provisioned`,
115
- `project_file_written`, and `environment_file_written` to be true. If one is false, report
116
- the error and stop onboarding. Key provisioning is non-fatal, so the command can persist a
117
- selection and still exit zero with no key. A scaffold with no key looks finished and is not.
185
+ `project_file_written`, and `environment_file_written` to be true.
186
+
187
+ A run that wrote the project record without a key exits 75 and reports `"type": "partial"`
188
+ with a `retry_command`. That is the recoverable half: the record is kept, and the failure
189
+ is usually transient. Run the `retry_command` once. If the retry also reports
190
+ `api_key_provisioned` false, report the error and stop onboarding.
191
+ A scaffold with no key looks finished and is not.
118
192
 
119
193
  After project selection, set the project-record path to the absolute `config_path` from the
120
194
  JSON result. If it differs from the expected project-record path, report both paths and stop
@@ -162,7 +236,7 @@ protected path list. Also add each project file that the developer changed for m
162
236
  credentials. Record them in the baseline from the target app directory:
163
237
 
164
238
  ```text
165
- npx --yes copilotkit@4.9.17 onboard protect --path <path>
239
+ npx --yes copilotkit@4.9.31 onboard protect --path <path>
166
240
  ```
167
241
 
168
242
  Pass one `--path` for each. The command captures a digest for each path and never re-reads
@@ -172,7 +246,7 @@ Then re-capture the files this graph wrote itself. For each path the first captu
172
246
  as `deferred` that this run has now written, run:
173
247
 
174
248
  ```text
175
- npx --yes copilotkit@4.9.17 onboard protect --rebaseline --path <path>
249
+ npx --yes copilotkit@4.9.31 onboard protect --rebaseline --path <path>
176
250
  ```
177
251
 
178
252
  From that point they are protected like any other path, so a later step that rewrites
@@ -196,7 +270,7 @@ proof subagents:
196
270
  Fetch them together with the pages already selected rather than on their own.
197
271
 
198
272
  Spawn one planning subagent. Tell it to run
199
- `npx --yes copilotkit@4.9.17 onboard read subagent/create-plan` first and follow the prompt
273
+ `npx --yes copilotkit@4.9.31 onboard read subagent/create-plan` first and follow the prompt
200
274
  it returns. If that read fails because the subagent cannot use the shell, stop that subagent.
201
275
  Run the same command yourself, then spawn a fresh subagent with the returned prompt and the
202
276
  same handoff. Give it the repository findings, selected framework, frontend, model, credential
@@ -212,17 +286,17 @@ ask for approval of a non-pass plan.
212
286
  Make sure that the plan preserves each part that already exists. The plan must name the
213
287
  credential variables, the Intelligence runtime wiring, the application the project asks
214
288
  for, implementation steps, validation steps, and proof steps. Where the plan upgrades the
215
- CopilotKit dependencies, it must name the versions it moves and the revert it falls back
216
- to. It must not contain secret values.
289
+ CopilotKit dependencies, it must name the versions it moves, every other pin it has to
290
+ move with them, and the revert it falls back to. It must not contain secret values.
217
291
 
218
- Show only the selected framework, frontend, model, planned file changes, the CopilotKit dependency upgrade and the versions it moves, validation commands, and proof steps.
292
+ Show only the selected framework, frontend, model, planned file changes, any ignore-file line this run adds, the CopilotKit dependency upgrade and the versions it moves, every other dependency the upgrade moves and the versions it moves them to, validation commands, and proof steps.
219
293
 
220
294
  An upgrade to a working install is the developer's call, so it belongs in the plan they
221
295
  approve rather than in the implementation that follows. Do not upgrade a dependency the
222
296
  developer did not approve.
223
297
 
224
298
  If the developer approves the plan, run
225
- `npx --yes copilotkit@4.9.17 onboard read implementation/build-and-validate`.
299
+ `npx --yes copilotkit@4.9.31 onboard read implementation/build-and-validate`.
226
300
 
227
301
  If no exact supported path or documentation URL exists, run
228
- `npx --yes copilotkit@4.9.17 onboard read unsupported/no-validated-path`.
302
+ `npx --yes copilotkit@4.9.31 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.17 onboard read framework/ag2`
72
- 2. Agno: `npx --yes copilotkit@4.9.17 onboard read framework/agno`
73
- 3. Built-in CopilotKit agent: `npx --yes copilotkit@4.9.17 onboard read framework/built-in`
74
- 4. Claude Agent SDK Python: `npx --yes copilotkit@4.9.17 onboard read framework/claude-sdk-python`
75
- 5. Claude Agent SDK TypeScript: `npx --yes copilotkit@4.9.17 onboard read framework/claude-sdk-typescript`
76
- 6. CrewAI Flows: `npx --yes copilotkit@4.9.17 onboard read framework/crewai-flows`
77
- 7. Deep Agents: `npx --yes copilotkit@4.9.17 onboard read framework/deep-agents`
78
- 8. LangGraph Python: `npx --yes copilotkit@4.9.17 onboard read framework/langgraph-python`
79
- 9. LangGraph FastAPI: `npx --yes copilotkit@4.9.17 onboard read framework/langgraph-fastapi`
80
- 10. LangGraph TypeScript: `npx --yes copilotkit@4.9.17 onboard read framework/langgraph-typescript`
81
- 11. LlamaIndex: `npx --yes copilotkit@4.9.17 onboard read framework/llamaindex`
82
- 12. ADK: `npx --yes copilotkit@4.9.17 onboard read framework/google-adk`
83
- 13. Microsoft Agent Framework Python: `npx --yes copilotkit@4.9.17 onboard read framework/ms-agent-python`
84
- 14. Microsoft Agent Framework .NET: `npx --yes copilotkit@4.9.17 onboard read framework/ms-agent-dotnet`
85
- 15. Mastra: `npx --yes copilotkit@4.9.17 onboard read framework/mastra`
86
- 16. MS Agent Harness .NET: `npx --yes copilotkit@4.9.17 onboard read framework/ms-agent-harness-dotnet`
87
- 17. Pydantic AI: `npx --yes copilotkit@4.9.17 onboard read framework/pydantic-ai`
88
- 18. Strands Agents Python: `npx --yes copilotkit@4.9.17 onboard read framework/strands-python`
89
- 19. Strands Agents TypeScript: `npx --yes copilotkit@4.9.17 onboard read framework/strands-typescript`
71
+ 1. AG2: `npx --yes copilotkit@4.9.31 onboard read framework/ag2`
72
+ 2. Agno: `npx --yes copilotkit@4.9.31 onboard read framework/agno`
73
+ 3. Built-in CopilotKit agent: `npx --yes copilotkit@4.9.31 onboard read framework/built-in`
74
+ 4. Claude Agent SDK Python: `npx --yes copilotkit@4.9.31 onboard read framework/claude-sdk-python`
75
+ 5. Claude Agent SDK TypeScript: `npx --yes copilotkit@4.9.31 onboard read framework/claude-sdk-typescript`
76
+ 6. CrewAI Flows: `npx --yes copilotkit@4.9.31 onboard read framework/crewai-flows`
77
+ 7. Deep Agents: `npx --yes copilotkit@4.9.31 onboard read framework/deep-agents`
78
+ 8. LangGraph Python: `npx --yes copilotkit@4.9.31 onboard read framework/langgraph-python`
79
+ 9. LangGraph FastAPI: `npx --yes copilotkit@4.9.31 onboard read framework/langgraph-fastapi`
80
+ 10. LangGraph TypeScript: `npx --yes copilotkit@4.9.31 onboard read framework/langgraph-typescript`
81
+ 11. LlamaIndex: `npx --yes copilotkit@4.9.31 onboard read framework/llamaindex`
82
+ 12. ADK: `npx --yes copilotkit@4.9.31 onboard read framework/google-adk`
83
+ 13. Microsoft Agent Framework Python: `npx --yes copilotkit@4.9.31 onboard read framework/ms-agent-python`
84
+ 14. Microsoft Agent Framework .NET: `npx --yes copilotkit@4.9.31 onboard read framework/ms-agent-dotnet`
85
+ 15. Mastra: `npx --yes copilotkit@4.9.31 onboard read framework/mastra`
86
+ 16. MS Agent Harness .NET: `npx --yes copilotkit@4.9.31 onboard read framework/ms-agent-harness-dotnet`
87
+ 17. Pydantic AI: `npx --yes copilotkit@4.9.31 onboard read framework/pydantic-ai`
88
+ 18. Strands Agents Python: `npx --yes copilotkit@4.9.31 onboard read framework/strands-python`
89
+ 19. Strands Agents TypeScript: `npx --yes copilotkit@4.9.31 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.17 onboard read unsupported/no-validated-path`.
93
+ `npx --yes copilotkit@4.9.31 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.17 onboard feedback
17
+ npx --yes copilotkit@4.9.31 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.
@@ -40,7 +40,8 @@ from different official pages. Tell it to run every implementation and validatio
40
40
  plan order, and to run the full validation list.
41
41
 
42
42
  Give it this result format: Start with `Status: passed`, `Status: failed`, or
43
- `Status: blocked`.
43
+ `Status: blocked`. Then require a Files changed section that names every file it touched.
44
+ The protected-path rules below read that section, so a result without it settles nothing.
44
45
 
45
46
  Wait for the implementation subagent to finish.
46
47
 
@@ -55,10 +56,17 @@ stop.
55
56
 
56
57
  Use these rules for every protected-path check in this fallback:
57
58
 
58
- - Run `npx --yes copilotkit@4.9.17 onboard audit` from the target app directory.
59
+ - Run `npx --yes copilotkit@4.9.31 onboard audit` from the target app directory.
59
60
  - If a result starts with `Status: blocked`, stop onboarding and report the printed reason.
60
61
  It proved nothing changed, so do not report a preservation failure.
61
- - If a result reports a changed protected path, stop onboarding.
62
+ - If a result reports a changed protected path this run wrote, stop onboarding.
63
+ - If a result reports a changed path that no Files changed section from this run names,
64
+ the change came from outside the run. Accept it by name with
65
+ `npx --yes copilotkit@4.9.31 onboard protect --accept-external --path <path>`, run the
66
+ audit again, and name it in the closing report.
67
+ - If no Files changed section from this run covers the step that wrote it, stop
68
+ onboarding. The proof subagent here returns no such section, so a finding it raises is
69
+ unsettled rather than outside the run.
62
70
  - Never repair, reset, or revert a protected path.
63
71
 
64
72
  Run the protected-path check now. Apply the protected-path rules. Continue only when the
@@ -107,13 +115,13 @@ application passes proof. Report each tool result separately from the proof resu
107
115
  Report the documentation gap and each assumption with the proof evidence. Do not claim
108
116
  that the selected documentation proved an inferred step.
109
117
 
110
- When the proof is complete, run `npx --yes copilotkit@4.9.17 onboard complete`, carrying the
118
+ When the proof is complete, run `npx --yes copilotkit@4.9.31 onboard complete`, carrying the
111
119
  surface-check result the proof subagent returned. Pass exactly one flag, matching this
112
120
  journey's surface:
113
121
 
114
122
  ```text
115
- npx --yes copilotkit@4.9.17 onboard complete --visual-check <outcome>
116
- npx --yes copilotkit@4.9.17 onboard complete --device-check <outcome>
123
+ npx --yes copilotkit@4.9.31 onboard complete --visual-check <outcome>
124
+ npx --yes copilotkit@4.9.31 onboard complete --device-check <outcome>
117
125
  ```
118
126
 
119
127
  `--visual-check` is for a web frontend and takes `performed`, `skipped-no-browser-tool`, or
@@ -122,6 +130,7 @@ or `failed`. Anything but `performed` ends this run as blocked, and the command'
122
130
  names the evidence that is missing. Report it that way.
123
131
 
124
132
  If the proof passed and something after it still blocked this run, add
125
- `--blocked-by <cause>` to the same command, with one of `hosted-dashboard`, `inspector`,
126
- `plan-excluded-capability`, or `other`. It ends the run as blocked and names what the
127
- blocker leaves unverified.
133
+ `--blocked-by <cause>` to the same command, with one of `inspector`, `plan-excluded-capability`,
134
+ or `other`. It ends the run as blocked and names what the blocker leaves unverified. The
135
+ managed Intelligence dashboard is not a cause, because nothing in this graph asks a run to
136
+ open it.
@@ -31,7 +31,7 @@ Record the selected framework, vendor, model, required credential variable names
31
31
  URLs, and the A2UI documentation gap.
32
32
 
33
33
  If the pages support the selection, run
34
- `npx --yes copilotkit@4.9.17 onboard read frontend/plan`.
34
+ `npx --yes copilotkit@4.9.31 onboard read frontend/plan`.
35
35
 
36
36
  If the documentation does not support the selection, run
37
- `npx --yes copilotkit@4.9.17 onboard read unsupported/no-validated-path`.
37
+ `npx --yes copilotkit@4.9.31 onboard read unsupported/no-validated-path`.
@@ -34,7 +34,7 @@ Record the selected framework, vendor, model, required credential variable names
34
34
  URLs, the documented dependencies and adapter, and the context documentation gap.
35
35
 
36
36
  If the pages support the selection, run
37
- `npx --yes copilotkit@4.9.17 onboard read frontend/plan`.
37
+ `npx --yes copilotkit@4.9.31 onboard read frontend/plan`.
38
38
 
39
39
  If the documentation does not support the selection, run
40
- `npx --yes copilotkit@4.9.17 onboard read unsupported/no-validated-path`.
40
+ `npx --yes copilotkit@4.9.31 onboard read unsupported/no-validated-path`.
@@ -27,7 +27,7 @@ Record the selected framework, vendor, model, required credential variable names
27
27
  these URLs.
28
28
 
29
29
  If the pages support the selection, run
30
- `npx --yes copilotkit@4.9.17 onboard read frontend/plan`.
30
+ `npx --yes copilotkit@4.9.31 onboard read frontend/plan`.
31
31
 
32
32
  If the documentation does not support the selection, run
33
- `npx --yes copilotkit@4.9.17 onboard read unsupported/no-validated-path`.
33
+ `npx --yes copilotkit@4.9.31 onboard read unsupported/no-validated-path`.
@@ -33,7 +33,7 @@ Record the selected framework, vendor, model, required credential variable names
33
33
  URLs, and the context limit.
34
34
 
35
35
  If the pages support the selection, run
36
- `npx --yes copilotkit@4.9.17 onboard read frontend/plan`.
36
+ `npx --yes copilotkit@4.9.31 onboard read frontend/plan`.
37
37
 
38
38
  If the documentation does not support the selection, run
39
- `npx --yes copilotkit@4.9.17 onboard read unsupported/no-validated-path`.
39
+ `npx --yes copilotkit@4.9.31 onboard read unsupported/no-validated-path`.
@@ -37,7 +37,7 @@ Record the selected framework, vendor, model, required credential variable names
37
37
  URLs, and the context limit.
38
38
 
39
39
  If the pages support the selection, run
40
- `npx --yes copilotkit@4.9.17 onboard read frontend/plan`.
40
+ `npx --yes copilotkit@4.9.31 onboard read frontend/plan`.
41
41
 
42
42
  If the documentation does not support the selection, run
43
- `npx --yes copilotkit@4.9.17 onboard read unsupported/no-validated-path`.
43
+ `npx --yes copilotkit@4.9.31 onboard read unsupported/no-validated-path`.
@@ -54,7 +54,7 @@ variable names the repository proves or the developer named, these URLs, the ada
54
54
  shared-state limit.
55
55
 
56
56
  If the pages support the selection, run
57
- `npx --yes copilotkit@4.9.17 onboard read frontend/plan`.
57
+ `npx --yes copilotkit@4.9.31 onboard read frontend/plan`.
58
58
 
59
59
  If the documentation does not support the selection, run
60
- `npx --yes copilotkit@4.9.17 onboard read unsupported/no-validated-path`.
60
+ `npx --yes copilotkit@4.9.31 onboard read unsupported/no-validated-path`.
@@ -29,7 +29,7 @@ Record the selected framework, language, vendor, model, required credential vari
29
29
  names, these URLs, and each documentation gap.
30
30
 
31
31
  If the pages support the selection, run
32
- `npx --yes copilotkit@4.9.17 onboard read frontend/plan`.
32
+ `npx --yes copilotkit@4.9.31 onboard read frontend/plan`.
33
33
 
34
34
  If the documentation does not support the selection, run
35
- `npx --yes copilotkit@4.9.17 onboard read unsupported/no-validated-path`.
35
+ `npx --yes copilotkit@4.9.31 onboard read unsupported/no-validated-path`.
@@ -28,7 +28,7 @@ Record the selected framework, vendor, model, required credential variable names
28
28
  these URLs.
29
29
 
30
30
  If the pages support the selection, run
31
- `npx --yes copilotkit@4.9.17 onboard read frontend/plan`.
31
+ `npx --yes copilotkit@4.9.31 onboard read frontend/plan`.
32
32
 
33
33
  If the documentation does not support the selection, run
34
- `npx --yes copilotkit@4.9.17 onboard read unsupported/no-validated-path`.
34
+ `npx --yes copilotkit@4.9.31 onboard read unsupported/no-validated-path`.
@@ -24,7 +24,7 @@ Record the selected framework, vendor, model, required credential variable names
24
24
  these URLs.
25
25
 
26
26
  If the pages support the selection, run
27
- `npx --yes copilotkit@4.9.17 onboard read frontend/plan`.
27
+ `npx --yes copilotkit@4.9.31 onboard read frontend/plan`.
28
28
 
29
29
  If the documentation does not support the selection, run
30
- `npx --yes copilotkit@4.9.17 onboard read unsupported/no-validated-path`.
30
+ `npx --yes copilotkit@4.9.31 onboard read unsupported/no-validated-path`.