copilotkit 4.20.0 → 4.21.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 (78) hide show
  1. package/README.md +28 -0
  2. package/cli-build-info.json +8 -8
  3. package/index.js +3530 -2868
  4. package/onboarding/prompts/authenticate/start.md +8 -8
  5. package/onboarding/prompts/conversion/plan.md +3 -3
  6. package/onboarding/prompts/credentials/finalize-plan.md +7 -7
  7. package/onboarding/prompts/credentials/plan.md +22 -22
  8. package/onboarding/prompts/credentials/settle-credentials.md +3 -3
  9. package/onboarding/prompts/credentials/write-plan.md +5 -5
  10. package/onboarding/prompts/fallback/best-effort.md +8 -8
  11. package/onboarding/prompts/feature/a2ui/implement.md +6 -6
  12. package/onboarding/prompts/feature/a2ui/proof.md +5 -5
  13. package/onboarding/prompts/feature/a2ui/start.md +9 -9
  14. package/onboarding/prompts/feature/channels/implement.md +7 -7
  15. package/onboarding/prompts/feature/channels/proof.md +5 -5
  16. package/onboarding/prompts/feature/channels/start.md +9 -9
  17. package/onboarding/prompts/feature/chat-suggestions/implement.md +6 -6
  18. package/onboarding/prompts/feature/chat-suggestions/proof.md +5 -5
  19. package/onboarding/prompts/feature/chat-suggestions/start.md +9 -9
  20. package/onboarding/prompts/feature/complete.md +2 -2
  21. package/onboarding/prompts/feature/learning/implement.md +13 -13
  22. package/onboarding/prompts/feature/learning/proof.md +6 -6
  23. package/onboarding/prompts/feature/learning/start.md +9 -9
  24. package/onboarding/prompts/feature/open-generative-ui/implement.md +6 -6
  25. package/onboarding/prompts/feature/open-generative-ui/proof.md +5 -5
  26. package/onboarding/prompts/feature/open-generative-ui/start.md +9 -9
  27. package/onboarding/prompts/feature/realtime-sync/implement.md +7 -7
  28. package/onboarding/prompts/feature/realtime-sync/proof.md +5 -5
  29. package/onboarding/prompts/feature/realtime-sync/start.md +8 -8
  30. package/onboarding/prompts/feature/rich-threads/implement.md +8 -8
  31. package/onboarding/prompts/feature/rich-threads/proof.md +5 -5
  32. package/onboarding/prompts/feature/rich-threads/start.md +8 -8
  33. package/onboarding/prompts/feature/stop.md +3 -3
  34. package/onboarding/prompts/feature/voice/implement.md +6 -6
  35. package/onboarding/prompts/feature/voice/proof.md +5 -5
  36. package/onboarding/prompts/feature/voice/start.md +9 -9
  37. package/onboarding/prompts/framework/ag2.md +2 -2
  38. package/onboarding/prompts/framework/agno.md +2 -2
  39. package/onboarding/prompts/framework/built-in.md +2 -2
  40. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  41. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  42. package/onboarding/prompts/framework/crewai-flows.md +2 -2
  43. package/onboarding/prompts/framework/deep-agents.md +2 -2
  44. package/onboarding/prompts/framework/google-adk.md +2 -2
  45. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  46. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  47. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  48. package/onboarding/prompts/framework/llamaindex.md +2 -2
  49. package/onboarding/prompts/framework/mastra.md +2 -2
  50. package/onboarding/prompts/framework/ms-agent-dotnet.md +3 -3
  51. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +3 -3
  52. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  53. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  54. package/onboarding/prompts/framework/strands-python.md +2 -2
  55. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  56. package/onboarding/prompts/frontend/angular.md +3 -3
  57. package/onboarding/prompts/frontend/nextjs.md +3 -3
  58. package/onboarding/prompts/frontend/plan.md +7 -7
  59. package/onboarding/prompts/frontend/react-native.md +2 -2
  60. package/onboarding/prompts/frontend/react-spa.md +2 -2
  61. package/onboarding/prompts/frontend/vue.md +2 -2
  62. package/onboarding/prompts/implementation/build-and-validate.md +12 -12
  63. package/onboarding/prompts/proof/complete.md +3 -3
  64. package/onboarding/prompts/proof/oss-baseline.md +5 -5
  65. package/onboarding/prompts/proof/round-trip.md +8 -8
  66. package/onboarding/prompts/research/gather.md +5 -5
  67. package/onboarding/prompts/research/merge.md +2 -2
  68. package/onboarding/prompts/research/preflight.md +2 -2
  69. package/onboarding/prompts/research/route.md +5 -5
  70. package/onboarding/prompts/starter/clone.md +5 -5
  71. package/onboarding/prompts/stopped/run-failed.md +2 -2
  72. package/onboarding/prompts/subagent/create-plan.md +1 -1
  73. package/onboarding/prompts/subagent/inspect-repository.md +1 -1
  74. package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
  75. package/onboarding/prompts/subagent/prove-round-trip.md +10 -10
  76. package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
  77. package/package.json +1 -1
  78. package/release/release-tool.js +9 -5
@@ -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.20.0"]`. If a command can request
17
+ `["npx", "--prefer-offline", "--yes", "copilotkit@4.21.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,7 +33,7 @@ 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.20.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
36
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
37
37
  ```
38
38
 
39
39
  Report your own product with one short slug, such as `codex` or `claude-code`.
@@ -62,10 +62,10 @@ printed once.
62
62
  Every later command must run from the directory this run started in. A command run
63
63
  somewhere else is refused, because the run it belongs to cannot be found from there. That
64
64
  refusal is a step, not a stop to report: run
65
- `npx --prefer-offline --yes copilotkit@4.20.0 onboard start --run <onboarding_run_id>` where you are
65
+ `npx --prefer-offline --yes copilotkit@4.21.0 onboard start --run <onboarding_run_id>` where you are
66
66
  standing, then run the refused command again.
67
67
 
68
- If you no longer hold the id, run `npx --prefer-offline --yes copilotkit@4.20.0 onboard start` in the
68
+ If you no longer hold the id, run `npx --prefer-offline --yes copilotkit@4.21.0 onboard start` in the
69
69
  directory this run started in, with no `--run` and no `--intent`. It reprints the id of the
70
70
  run under way and starts nothing. An id this project does not already hold starts a second
71
71
  run, and the work already done stops counting toward the first.
@@ -132,7 +132,7 @@ the run waits is a pause, not a stop, even when your harness ends it. A terminal
132
132
  the report itself, or says to file none, overrides this.
133
133
 
134
134
  ```text
135
- npx --prefer-offline --yes copilotkit@4.20.0 onboard friction --phase stop --category <slug> --message "<sentences>"
135
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard friction --phase stop --category <slug> --message "<sentences>"
136
136
  ```
137
137
 
138
138
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -147,7 +147,7 @@ rule that stopped you says next: send the report, then stop.
147
147
 
148
148
  ## Check sign-in
149
149
 
150
- Run `npx --prefer-offline --yes copilotkit@4.20.0 login --json` before any project work. This command
150
+ Run `npx --prefer-offline --yes copilotkit@4.21.0 login --json` before any project work. This command
151
151
  checks the current session. It starts sign-in only as needed. Treat this as a long-lived
152
152
  streaming process. Do not wait for the command to exit before you read its standard output.
153
153
 
@@ -188,8 +188,8 @@ Do not use `whoami` for this check. Do not put account tokens or credentials in
188
188
  conversation.
189
189
 
190
190
  When sign-in is settled, run
191
- `npx --prefer-offline --yes copilotkit@4.20.0 onboard read research/gather`.
191
+ `npx --prefer-offline --yes copilotkit@4.21.0 onboard read research/gather`.
192
192
 
193
193
  If sign-in stops onboarding, run
194
- `npx --prefer-offline --yes copilotkit@4.20.0 onboard read stopped/run-failed`. It says nothing about
194
+ `npx --prefer-offline --yes copilotkit@4.21.0 onboard read stopped/run-failed`. It says nothing about
195
195
  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.20.0 verify --round-trip`, which sends a
103
+ fifth item is proved by `npx --prefer-offline --yes copilotkit@4.21.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.20.0 onboard read credentials/finalize-plan`.
119
+ Then run `npx --prefer-offline --yes copilotkit@4.21.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.20.0 onboard read unsupported/no-validated-path`.
122
+ `npx --prefer-offline --yes copilotkit@4.21.0 onboard read unsupported/no-validated-path`.
@@ -24,7 +24,7 @@ Choose the starting state from the repository findings:
24
24
  A run served `proof/oss-baseline` records one of the last two.
25
25
 
26
26
  ```text
27
- npx --prefer-offline --yes copilotkit@4.20.0 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend>
27
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend>
28
28
  ```
29
29
 
30
30
  If a value is refused, fix it from the choices the earlier prompts gave, and run the
@@ -37,7 +37,7 @@ runtime `.env` file, that directory is the target, not the repository root. Do n
37
37
  the developer to another terminal.
38
38
 
39
39
  ```text
40
- npx --prefer-offline --yes copilotkit@4.20.0 onboard credentials --json
40
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard credentials --json
41
41
  ```
42
42
 
43
43
  Every credential this run writes goes to the target's `.env`, the environment path. The
@@ -67,9 +67,9 @@ project from a listing without an answer that names it.
67
67
  `--runtime-url` is the URL port research settled, mount path included:
68
68
 
69
69
  ```text
70
- npx --prefer-offline --yes copilotkit@4.20.0 onboard credentials --create <name> \
70
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard credentials --create <name> \
71
71
  --runtime-url http://localhost:<port>/api/copilotkit --json
72
- npx --prefer-offline --yes copilotkit@4.20.0 onboard credentials --project <slug-or-id> \
72
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard credentials --project <slug-or-id> \
73
73
  --runtime-url http://localhost:<port>/api/copilotkit --json
74
74
  ```
75
75
 
@@ -79,8 +79,8 @@ command unless the developer asks to see their projects, or `notFound` is presen
79
79
  show only what they asked for, and do not order it by creation time:
80
80
 
81
81
  ```text
82
- npx --prefer-offline --yes copilotkit@4.20.0 project list --json
83
- npx --prefer-offline --yes copilotkit@4.20.0 project list --search <query> --json
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
84
84
  ```
85
85
 
86
86
  `app-directory` means that the key landed where no app reads it. Pick the directory in
@@ -95,4 +95,4 @@ the `--project` command from there with `project.slug`. Do not copy or link the
95
95
  reused. The round-trip proof later runs the authenticated Intelligence checks, so record
96
96
  the reused project credentials as unverified in the plan until those checks pass.
97
97
 
98
- Then run `npx --prefer-offline --yes copilotkit@4.20.0 onboard read credentials/settle-credentials`.
98
+ Then run `npx --prefer-offline --yes copilotkit@4.21.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.20.0 onboard read frontend/plan`.
23
+ `npx --prefer-offline --yes copilotkit@4.21.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.20.0 onboard start --run <onboarding_run_id>`.
45
+ `npx --prefer-offline --yes copilotkit@4.21.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
 
@@ -101,26 +101,26 @@ developer's words instead.
101
101
 
102
102
  Use exactly one matching internal route:
103
103
 
104
- 1. AG2: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/ag2`
105
- 2. Agno: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/agno`
106
- 3. Built-in CopilotKit agent: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/built-in`
107
- 4. Claude Agent SDK Python: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/claude-sdk-python`
108
- 5. Claude Agent SDK TypeScript: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/claude-sdk-typescript`
109
- 6. CrewAI Flows: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/crewai-flows`
110
- 7. Deep Agents: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/deep-agents`
111
- 8. LangGraph Python: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/langgraph-python`
112
- 9. LangGraph FastAPI: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/langgraph-fastapi`
113
- 10. LangGraph TypeScript: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/langgraph-typescript`
114
- 11. LlamaIndex: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/llamaindex`
115
- 12. ADK: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/google-adk`
116
- 13. Microsoft Agent Framework Python: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/ms-agent-python`
117
- 14. Microsoft Agent Framework .NET: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/ms-agent-dotnet`
118
- 15. Mastra: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/mastra`
119
- 16. MS Agent Harness .NET: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/ms-agent-harness-dotnet`
120
- 17. Pydantic AI: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/pydantic-ai`
121
- 18. Strands Agents Python: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/strands-python`
122
- 19. Strands Agents TypeScript: `npx --prefer-offline --yes copilotkit@4.20.0 onboard read framework/strands-typescript`
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
123
 
124
124
  If the project has an agent in another framework, or no listed framework fits, keep the
125
125
  developer's current agent and run
126
- `npx --prefer-offline --yes copilotkit@4.20.0 onboard read unsupported/no-validated-path`.
126
+ `npx --prefer-offline --yes copilotkit@4.21.0 onboard read unsupported/no-validated-path`.
@@ -21,7 +21,7 @@ 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.20.0 onboard credentials --model-key <variable> --json
24
+ npx --prefer-offline --yes copilotkit@4.21.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
@@ -37,7 +37,7 @@ never prints a value. When every key settles, it protects the credential paths.
37
37
  list the copy under `Files the run writes itself`, not under `Authorization requested`.
38
38
  The developer's approval of the plan is their consent to the copy. Copy the key without
39
39
  printing it. Then record the copy with
40
- `npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --accept-credential --path <env file>`. If the developer declines the copy, the plan has the app read the key from an
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
41
41
  environment variable that the developer sets. The plan then says how to set it. Never
42
42
  write the outside path into a project file, not even in a config file such as
43
43
  `langgraph.json`. A committed file that names a folder in the developer's home directory
@@ -66,4 +66,4 @@ Never read a file outside the project directory to find a credential: a key foun
66
66
  bills another project. Asking for a path is not requesting a secret. A path the developer
67
67
  names is theirs to give, including one outside the project. A path this run finds is not.
68
68
 
69
- Then run `npx --prefer-offline --yes copilotkit@4.20.0 onboard read credentials/write-plan`.
69
+ Then run `npx --prefer-offline --yes copilotkit@4.21.0 onboard read credentials/write-plan`.
@@ -11,7 +11,7 @@ friction command follows the telemetry setting the developer already chose, so i
11
11
  separate question.
12
12
 
13
13
  ```text
14
- npx --prefer-offline --yes copilotkit@4.20.0 onboard friction --phase stop --category <slug> --message "<sentences>"
14
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard friction --phase stop --category <slug> --message "<sentences>"
15
15
  ```
16
16
 
17
17
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -72,7 +72,7 @@ page is selected yet, add the one for the frontend selected above to the same li
72
72
  Native, so the planner proves the thread with `verify --round-trip` instead.
73
73
 
74
74
  Spawn one planning subagent. Tell it to run
75
- `npx --prefer-offline --yes copilotkit@4.20.0 onboard read subagent/create-plan` first and follow the prompt
75
+ `npx --prefer-offline --yes copilotkit@4.21.0 onboard read subagent/create-plan` first and follow the prompt
76
76
  it returns. If that read fails because the subagent cannot use the shell, stop that subagent.
77
77
  Run the same command yourself, then spawn a fresh subagent with the returned prompt and the
78
78
  same handoff. Give it the repository findings, selected framework, frontend, model, credential
@@ -83,7 +83,7 @@ Wait for the subagent to finish.
83
83
  Continue only if the planning result starts with `Status: passed`. For `Status: failed`,
84
84
  send the result back to the planning subagent for repair, up to three attempts. For
85
85
  `Status: blocked`, or a third failed result, run
86
- `npx --prefer-offline --yes copilotkit@4.20.0 onboard read stopped/run-failed`. A plan this run cannot
86
+ `npx --prefer-offline --yes copilotkit@4.21.0 onboard read stopped/run-failed`. A plan this run cannot
87
87
  write is a run that broke, not a stack the documentation does not cover. The exception is
88
88
  a blocked result that names `unsupported/no-validated-path`: the planning subagent found
89
89
  that no page supports the plan, so take the no-supported-path route at the end of this
@@ -134,7 +134,7 @@ build. Keep this window open until the app runs." Decide from your own approval
134
134
  as the welcome did, not from your coding-agent slug.
135
135
 
136
136
  If the developer approves the plan, run
137
- `npx --prefer-offline --yes copilotkit@4.20.0 onboard read implementation/build-and-validate`.
137
+ `npx --prefer-offline --yes copilotkit@4.21.0 onboard read implementation/build-and-validate`.
138
138
 
139
139
  If no exact supported path or documentation URL exists, run
140
- `npx --prefer-offline --yes copilotkit@4.20.0 onboard read unsupported/no-validated-path`.
140
+ `npx --prefer-offline --yes copilotkit@4.21.0 onboard read unsupported/no-validated-path`.
@@ -16,7 +16,7 @@ you stop. The friction command follows the telemetry setting the developer alrea
16
16
  so it needs no separate question.
17
17
 
18
18
  ```text
19
- npx --prefer-offline --yes copilotkit@4.20.0 onboard friction --phase stop --category <slug> --message "<sentences>"
19
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard friction --phase stop --category <slug> --message "<sentences>"
20
20
  ```
21
21
 
22
22
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -62,19 +62,19 @@ or frontend, stop onboarding.
62
62
 
63
63
  Use these rules for every protected-path check in this fallback:
64
64
 
65
- - Run `npx --prefer-offline --yes copilotkit@4.20.0 onboard audit` from the target app directory.
65
+ - Run `npx --prefer-offline --yes copilotkit@4.21.0 onboard audit` from the target app directory.
66
66
  - If a result starts with `Status: blocked`, stop onboarding and report the printed reason.
67
67
  It proved nothing changed, so do not report a preservation failure.
68
68
  - If a result reports a changed protected path this run wrote, stop onboarding.
69
69
  - If a result reports a changed env file, this rule replaces the one above, even when this
70
70
  run wrote the file. This run asked the developer to place a
71
71
  credential there, so take the credential route rather than the external one. Accept it
72
- with `npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --accept-credential --path <path>`,
72
+ with `npx --prefer-offline --yes copilotkit@4.21.0 onboard protect --accept-credential --path <path>`,
73
73
  run the audit again, and name it in the closing report. If the command refuses because
74
74
  it names a lost variable, stop onboarding.
75
75
  - Before any proof subagent runs, a changed path that no Files changed section from this
76
76
  run names came from outside the run. Accept it by name with
77
- `npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --accept-external --path <path>`, run the
77
+ `npx --prefer-offline --yes copilotkit@4.21.0 onboard protect --accept-external --path <path>`, run the
78
78
  audit again, and name it in the closing report.
79
79
  - After a proof subagent runs, a changed path that no Files changed section from this run
80
80
  names is unsettled rather than outside the run, because the proof subagent here returns
@@ -133,16 +133,16 @@ that the selected documentation proved an inferred step.
133
133
  Record what the proof returned before you complete:
134
134
 
135
135
  ```text
136
- npx --prefer-offline --yes copilotkit@4.20.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
136
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
137
137
  ```
138
138
 
139
- When the proof is complete, run `npx --prefer-offline --yes copilotkit@4.20.0 onboard complete`, carrying the
139
+ When the proof is complete, run `npx --prefer-offline --yes copilotkit@4.21.0 onboard complete`, carrying the
140
140
  surface-check result the proof subagent returned. Pass exactly one of `--visual-check` or
141
141
  `--device-check`, matching this journey's surface:
142
142
 
143
143
  ```text
144
- npx --prefer-offline --yes copilotkit@4.20.0 onboard complete --visual-check <outcome>
145
- npx --prefer-offline --yes copilotkit@4.20.0 onboard complete --device-check <outcome>
144
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard complete --visual-check <outcome>
145
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard complete --device-check <outcome>
146
146
  ```
147
147
 
148
148
  `--visual-check` is for a web frontend and takes `performed`, `skipped-no-browser-tool`, or
@@ -18,7 +18,7 @@ without exposing secrets.
18
18
  Before you spawn the implementation subagent, take the authorized list from the CLI:
19
19
 
20
20
  ```text
21
- npx --prefer-offline --yes copilotkit@4.20.0 onboard audit
21
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard audit
22
22
  ```
23
23
 
24
24
  From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
@@ -37,7 +37,7 @@ still go on the record. Name the file and why the work needs it, then end your t
37
37
  for the developer's answer. If they allow it, record their answer before any edit:
38
38
 
39
39
  ```text
40
- npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
40
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
41
41
  ```
42
42
 
43
43
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -49,7 +49,7 @@ feature stop route below.
49
49
  After validation and each repair, run:
50
50
 
51
51
  ```text
52
- npx --prefer-offline --yes copilotkit@4.20.0 onboard audit
52
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard audit
53
53
  ```
54
54
 
55
55
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -60,7 +60,7 @@ with the implementation subagent's `Files changed` section. If that section does
60
60
  the path, accept the developer's external change:
61
61
 
62
62
  ```text
63
- npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --accept-external --path <path>
63
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard protect --accept-external --path <path>
64
64
  ```
65
65
 
66
66
  For an env file where the developer placed a requested credential, use
@@ -73,11 +73,11 @@ Run the audit again after each accepted change. If it still fails, or starts
73
73
  with `Status: blocked`, route out and stop:
74
74
 
75
75
  ```text
76
- npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/stop
76
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard read feature/stop
77
77
  ```
78
78
 
79
79
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
80
80
  the feature stop route above without further changes.
81
81
 
82
82
  Otherwise run
83
- `npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/a2ui/proof`.
83
+ `npx --prefer-offline --yes copilotkit@4.21.0 onboard read feature/a2ui/proof`.
@@ -27,7 +27,7 @@ still go on the record. Name the file and why the fix needs it, then end your tu
27
27
  for the developer's answer. If they allow it, record their answer before any edit:
28
28
 
29
29
  ```text
30
- npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
30
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
31
31
  ```
32
32
 
33
33
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -40,11 +40,11 @@ Report the outcome of each attempt as it ends, before any repair. The command co
40
40
  attempts and the repairs:
41
41
 
42
42
  ```text
43
- npx --prefer-offline --yes copilotkit@4.20.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
43
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
44
44
  ```
45
45
 
46
46
  Use `passed` only for a proved A2UI surface, `failed` for an attempted proof that failed,
47
- and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.20.0 onboard audit`.
47
+ and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.21.0 onboard audit`.
48
48
  Continue only when it starts with `Status: passed`.
49
49
 
50
50
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -59,9 +59,9 @@ the path and the change the audit reports. Run the audit again after each accept
59
59
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
60
60
 
61
61
  ```text
62
- npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/stop
62
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard read feature/stop
63
63
  ```
64
64
 
65
65
  When the audit passes, run
66
- `npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/complete` with the actual browser-proof
66
+ `npx --prefer-offline --yes copilotkit@4.21.0 onboard read feature/complete` with the actual browser-proof
67
67
  outcome.
@@ -21,13 +21,13 @@ carry on. Keep a read-only assignment read-only. If no subagent works at all, re
21
21
  once:
22
22
 
23
23
  ```text
24
- npx --prefer-offline --yes copilotkit@4.20.0 onboard checkpoint --phase delegation-unavailable
24
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard checkpoint --phase delegation-unavailable
25
25
  ```
26
26
 
27
27
  Before you end your turn to wait for the developer, report the pause:
28
28
 
29
29
  ```text
30
- npx --prefer-offline --yes copilotkit@4.20.0 onboard checkpoint --phase awaiting-developer
30
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard checkpoint --phase awaiting-developer
31
31
  ```
32
32
 
33
33
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
@@ -37,7 +37,7 @@ If you stop this run, send one short report before you stop. The friction comman
37
37
  the telemetry setting the developer already chose, so it needs no separate question.
38
38
 
39
39
  ```text
40
- npx --prefer-offline --yes copilotkit@4.20.0 onboard friction --phase stop --category <slug> --message "<sentences>"
40
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard friction --phase stop --category <slug> --message "<sentences>"
41
41
  ```
42
42
 
43
43
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -51,7 +51,7 @@ one scoped fix, and sends the report itself when no fix is approved.
51
51
  Before any subagent or project process runs, capture the developer's existing work:
52
52
 
53
53
  ```text
54
- npx --prefer-offline --yes copilotkit@4.20.0 onboard protect
54
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard protect
55
55
  ```
56
56
 
57
57
  Keep the exact protected path list it prints and give that list to every subagent. No
@@ -66,20 +66,20 @@ development/test commands. It must return paths and secret-safe presence checks
66
66
 
67
67
  Require an existing frontend, agent, and CopilotKit round trip. Start only project-owned
68
68
  processes when needed, inspect `/info`, and run
69
- `npx --prefer-offline --yes copilotkit@4.20.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`.
69
+ `npx --prefer-offline --yes copilotkit@4.21.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`.
70
70
  Also drive one existing request through the frontend when browser control is available.
71
71
 
72
72
  Wait for the inspection subagent to finish. Then report that the inspection came back:
73
73
 
74
74
  ```text
75
- npx --prefer-offline --yes copilotkit@4.20.0 onboard checkpoint --phase research-returned
75
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard checkpoint --phase research-returned
76
76
  ```
77
77
 
78
78
  If the inspection did not prove the baseline this intent extends, stop here without
79
79
  changing files:
80
80
 
81
81
  ```text
82
- npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/stop
82
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard read feature/stop
83
83
  ```
84
84
 
85
85
  Do not run `login`, select an Intelligence project, add an Intelligence client, mint a
@@ -103,11 +103,11 @@ one.
103
103
  After approval, record each approved path before implementation:
104
104
 
105
105
  ```text
106
- npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
106
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
107
107
  ```
108
108
 
109
109
  If an approved path changed after capture and no implementation step has run, add
110
110
  `--with-prior-change`. Continue only when every result starts with `Status: passed`. Do not
111
111
  authorize a path the approved plan did not list.
112
112
 
113
- Then run `npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/a2ui/implement`.
113
+ Then run `npx --prefer-offline --yes copilotkit@4.21.0 onboard read feature/a2ui/implement`.
@@ -19,7 +19,7 @@ On Teams, skip Slack-only tools and the Slack e2e harness. Do not add a CopilotK
19
19
  web app to make this run look complete. Do not replace the existing agent.
20
20
 
21
21
  If repository evidence does not prove an existing valid Intelligence selection, sign in
22
- yourself with `npx --prefer-offline --yes copilotkit@4.20.0 login --json`: the same single streaming
22
+ yourself with `npx --prefer-offline --yes copilotkit@4.21.0 login --json`: the same single streaming
23
23
  session generic onboarding uses. Read its JSON Lines while the process runs. The CLI opens
24
24
  the page itself when it can: with `"browser_opened": false` in `action_required`, show the
25
25
  developer the clickable URL and ask them to finish sign-in there. If the record carries
@@ -75,7 +75,7 @@ starter to satisfy this rule, and do not report the page that shows it.
75
75
  Before you spawn the implementation subagent, take the authorized list from the CLI:
76
76
 
77
77
  ```text
78
- npx --prefer-offline --yes copilotkit@4.20.0 onboard audit
78
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard audit
79
79
  ```
80
80
 
81
81
  From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
@@ -94,7 +94,7 @@ still go on the record. Name the file and why the work needs it, then end your t
94
94
  for the developer's answer. If they allow it, record their answer before any edit:
95
95
 
96
96
  ```text
97
- npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
97
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
98
98
  ```
99
99
 
100
100
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -106,7 +106,7 @@ feature stop route below.
106
106
  After validation and each repair, run:
107
107
 
108
108
  ```text
109
- npx --prefer-offline --yes copilotkit@4.20.0 onboard audit
109
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard audit
110
110
  ```
111
111
 
112
112
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -117,7 +117,7 @@ with the implementation subagent's `Files changed` section. If that section does
117
117
  the path, accept the developer's external change:
118
118
 
119
119
  ```text
120
- npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --accept-external --path <path>
120
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard protect --accept-external --path <path>
121
121
  ```
122
122
 
123
123
  For an env file where the developer placed a requested credential, use
@@ -130,7 +130,7 @@ Run the audit again after each accepted change. If it still fails, or starts
130
130
  with `Status: blocked`, route out and stop:
131
131
 
132
132
  ```text
133
- npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/stop
133
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard read feature/stop
134
134
  ```
135
135
 
136
136
  ## Values this run writes, and the one credential the developer supplies
@@ -167,4 +167,4 @@ If validation cannot pass, or this run needs a prerequisite the app does not hav
167
167
  the feature stop route above without further changes.
168
168
 
169
169
  Otherwise run
170
- `npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/channels/proof`.
170
+ `npx --prefer-offline --yes copilotkit@4.21.0 onboard read feature/channels/proof`.
@@ -31,7 +31,7 @@ still go on the record. Name the file and why the fix needs it, then end your tu
31
31
  for the developer's answer. If they allow it, record their answer before any edit:
32
32
 
33
33
  ```text
34
- npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
34
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
35
35
  ```
36
36
 
37
37
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -44,11 +44,11 @@ Report the outcome of each attempt as it ends, before any repair. The command co
44
44
  attempts and the repairs:
45
45
 
46
46
  ```text
47
- npx --prefer-offline --yes copilotkit@4.20.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
47
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
48
48
  ```
49
49
 
50
50
  Use `passed` only for a proved mention reply, `failed` for an attempted proof that
51
- failed, and `skipped` when the proof did not run. Then run `npx --prefer-offline --yes copilotkit@4.20.0 onboard audit`.
51
+ failed, and `skipped` when the proof did not run. Then run `npx --prefer-offline --yes copilotkit@4.21.0 onboard audit`.
52
52
  Continue only when it starts with `Status: passed`.
53
53
 
54
54
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -63,11 +63,11 @@ the path and the change the audit reports. Run the audit again after each accept
63
63
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
64
64
 
65
65
  ```text
66
- npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/stop
66
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard read feature/stop
67
67
  ```
68
68
 
69
69
  When the audit passes and the round trip you reported above was `passed`, run
70
- `npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/complete` and complete with
70
+ `npx --prefer-offline --yes copilotkit@4.21.0 onboard read feature/complete` and complete with
71
71
  `--visual-check channels-proof-passed`. The recorded mention and reply are this run's
72
72
  proof, so no web app check is missing. Use `--visual-check performed` only when a
73
73
  browser drove Slack or Teams web and proved the mention reply. Do not use
@@ -3,7 +3,7 @@
3
3
  First, report your coding agent identity using the same command as generic onboarding:
4
4
 
5
5
  ```text
6
- npx --prefer-offline --yes copilotkit@4.20.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
6
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
7
7
  ```
8
8
 
9
9
  Use your own product's slug, such as `codex` or `claude-code`. For `--model`, copy the
@@ -34,13 +34,13 @@ carry on. Keep a read-only assignment read-only. If no subagent works at all, re
34
34
  once:
35
35
 
36
36
  ```text
37
- npx --prefer-offline --yes copilotkit@4.20.0 onboard checkpoint --phase delegation-unavailable
37
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard checkpoint --phase delegation-unavailable
38
38
  ```
39
39
 
40
40
  Before you end your turn to wait for the developer, report the pause:
41
41
 
42
42
  ```text
43
- npx --prefer-offline --yes copilotkit@4.20.0 onboard checkpoint --phase awaiting-developer
43
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard checkpoint --phase awaiting-developer
44
44
  ```
45
45
 
46
46
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
@@ -50,7 +50,7 @@ If you stop this run, send one short report before you stop. The friction comman
50
50
  the telemetry setting the developer already chose, so it needs no separate question.
51
51
 
52
52
  ```text
53
- npx --prefer-offline --yes copilotkit@4.20.0 onboard friction --phase stop --category <slug> --message "<sentences>"
53
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard friction --phase stop --category <slug> --message "<sentences>"
54
54
  ```
55
55
 
56
56
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -64,7 +64,7 @@ one scoped fix, and sends the report itself when no fix is approved.
64
64
  Before any subagent or project process runs, capture the developer's existing work:
65
65
 
66
66
  ```text
67
- npx --prefer-offline --yes copilotkit@4.20.0 onboard protect
67
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard protect
68
68
  ```
69
69
 
70
70
  Keep the exact protected path list it prints and give that list to every subagent. Do not
@@ -94,7 +94,7 @@ This one does not.
94
94
  Wait for the inspection subagent to finish. Then report that the inspection came back:
95
95
 
96
96
  ```text
97
- npx --prefer-offline --yes copilotkit@4.20.0 onboard checkpoint --phase research-returned
97
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard checkpoint --phase research-returned
98
98
  ```
99
99
 
100
100
  If the folder is empty, check Node 22, `uv`, and Python before cloning. Python 3.12 or
@@ -108,7 +108,7 @@ and its install command in the message the developer sees: `nvm install 22` for
108
108
  for Python. Offer a custom headless build as a later path. Then route out:
109
109
 
110
110
  ```text
111
- npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/stop
111
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard read feature/stop
112
112
  ```
113
113
 
114
114
  Do not run login, select Intelligence, or create a credential until the developer
@@ -138,11 +138,11 @@ one.
138
138
  After approval, record each approved path before implementation:
139
139
 
140
140
  ```text
141
- npx --prefer-offline --yes copilotkit@4.20.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
141
+ npx --prefer-offline --yes copilotkit@4.21.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
142
142
  ```
143
143
 
144
144
  If an approved path changed after capture and no implementation step has run, add
145
145
  `--with-prior-change`. Continue only when every result starts with `Status: passed`. Do not
146
146
  authorize a path the approved plan did not list.
147
147
 
148
- Then run `npx --prefer-offline --yes copilotkit@4.20.0 onboard read feature/channels/implement`.
148
+ Then run `npx --prefer-offline --yes copilotkit@4.21.0 onboard read feature/channels/implement`.