copilotkit 4.11.0 → 4.12.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 (80) hide show
  1. package/LICENSE +11 -0
  2. package/README.md +145 -12
  3. package/cli-build-info.json +8 -8
  4. package/index.js +4970 -4644
  5. package/onboarding/index.json +8 -1
  6. package/onboarding/prompts/authenticate/start.md +14 -12
  7. package/onboarding/prompts/conversion/plan.md +3 -3
  8. package/onboarding/prompts/credentials/finalize-plan.md +14 -13
  9. package/onboarding/prompts/credentials/plan.md +20 -20
  10. package/onboarding/prompts/credentials/settle-credentials.md +55 -23
  11. package/onboarding/prompts/credentials/write-plan.md +5 -5
  12. package/onboarding/prompts/fallback/best-effort.md +6 -6
  13. package/onboarding/prompts/feature/a2ui/implement.md +7 -7
  14. package/onboarding/prompts/feature/a2ui/proof.md +6 -6
  15. package/onboarding/prompts/feature/a2ui/start.md +10 -8
  16. package/onboarding/prompts/feature/blocked-by-plan.md +32 -0
  17. package/onboarding/prompts/feature/channels/implement.md +7 -7
  18. package/onboarding/prompts/feature/channels/proof.md +6 -6
  19. package/onboarding/prompts/feature/channels/start.md +10 -8
  20. package/onboarding/prompts/feature/chat-suggestions/implement.md +7 -7
  21. package/onboarding/prompts/feature/chat-suggestions/proof.md +6 -6
  22. package/onboarding/prompts/feature/chat-suggestions/start.md +10 -8
  23. package/onboarding/prompts/feature/complete.md +1 -1
  24. package/onboarding/prompts/feature/learning/implement.md +73 -14
  25. package/onboarding/prompts/feature/learning/proof.md +10 -9
  26. package/onboarding/prompts/feature/learning/start.md +61 -7
  27. package/onboarding/prompts/feature/open-generative-ui/implement.md +7 -7
  28. package/onboarding/prompts/feature/open-generative-ui/proof.md +6 -6
  29. package/onboarding/prompts/feature/open-generative-ui/start.md +10 -8
  30. package/onboarding/prompts/feature/realtime-sync/implement.md +8 -8
  31. package/onboarding/prompts/feature/realtime-sync/proof.md +6 -6
  32. package/onboarding/prompts/feature/realtime-sync/start.md +9 -7
  33. package/onboarding/prompts/feature/rich-threads/implement.md +9 -9
  34. package/onboarding/prompts/feature/rich-threads/proof.md +6 -6
  35. package/onboarding/prompts/feature/rich-threads/start.md +9 -7
  36. package/onboarding/prompts/feature/stop.md +2 -2
  37. package/onboarding/prompts/feature/voice/implement.md +7 -7
  38. package/onboarding/prompts/feature/voice/proof.md +6 -6
  39. package/onboarding/prompts/feature/voice/start.md +10 -8
  40. package/onboarding/prompts/framework/ag2.md +2 -2
  41. package/onboarding/prompts/framework/agno.md +2 -2
  42. package/onboarding/prompts/framework/built-in.md +2 -2
  43. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  44. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  45. package/onboarding/prompts/framework/crewai-flows.md +2 -2
  46. package/onboarding/prompts/framework/deep-agents.md +2 -2
  47. package/onboarding/prompts/framework/google-adk.md +2 -2
  48. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  49. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  50. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  51. package/onboarding/prompts/framework/llamaindex.md +2 -2
  52. package/onboarding/prompts/framework/mastra.md +2 -2
  53. package/onboarding/prompts/framework/ms-agent-dotnet.md +2 -2
  54. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
  55. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  56. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  57. package/onboarding/prompts/framework/strands-python.md +2 -2
  58. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  59. package/onboarding/prompts/frontend/angular.md +5 -5
  60. package/onboarding/prompts/frontend/nextjs.md +4 -4
  61. package/onboarding/prompts/frontend/plan.md +7 -7
  62. package/onboarding/prompts/frontend/react-native.md +2 -2
  63. package/onboarding/prompts/frontend/react-spa.md +2 -2
  64. package/onboarding/prompts/frontend/vue.md +2 -2
  65. package/onboarding/prompts/implementation/build-and-validate.md +21 -16
  66. package/onboarding/prompts/proof/complete.md +12 -11
  67. package/onboarding/prompts/proof/oss-baseline.md +5 -5
  68. package/onboarding/prompts/proof/round-trip.md +10 -10
  69. package/onboarding/prompts/research/gather.md +41 -9
  70. package/onboarding/prompts/research/route.md +25 -4
  71. package/onboarding/prompts/starter/clone.md +5 -5
  72. package/onboarding/prompts/stopped/run-failed.md +30 -1
  73. package/onboarding/prompts/subagent/create-plan.md +7 -1
  74. package/onboarding/prompts/subagent/implement-and-validate.md +2 -1
  75. package/onboarding/prompts/subagent/inspect-repository.md +43 -16
  76. package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
  77. package/onboarding/prompts/subagent/prove-round-trip.md +27 -10
  78. package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
  79. package/package.json +4 -3
  80. package/release/release-tool.js +1 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "graphTree": "31372aea9d38d802779516dc556c136faf611b32",
2
+ "graphTree": "aca3eeff60c7fed03d24e93e166829ff405da63d",
3
3
  "intentRoots": {
4
4
  "add-a2ui": "feature/a2ui/start",
5
5
  "add-chat-suggestions": "feature/chat-suggestions/start",
@@ -106,6 +106,11 @@
106
106
  "milestone": "feature",
107
107
  "name": "feature/a2ui/start"
108
108
  },
109
+ {
110
+ "edges": [],
111
+ "milestone": "feature",
112
+ "name": "feature/blocked-by-plan"
113
+ },
109
114
  {
110
115
  "edges": [
111
116
  "feature/stop",
@@ -161,6 +166,7 @@
161
166
  },
162
167
  {
163
168
  "edges": [
169
+ "feature/blocked-by-plan",
164
170
  "feature/stop",
165
171
  "feature/learning/proof"
166
172
  ],
@@ -177,6 +183,7 @@
177
183
  },
178
184
  {
179
185
  "edges": [
186
+ "feature/blocked-by-plan",
180
187
  "feature/stop",
181
188
  "feature/learning/implement"
182
189
  ],
@@ -5,7 +5,7 @@
5
5
  Run this before anything else in this prompt, including the welcome message below:
6
6
 
7
7
  ```text
8
- npx --yes copilotkit@4.11.0 onboard identify --coding-agent <coding-agent-slug>
8
+ npx --yes copilotkit@4.12.0 onboard identify --coding-agent <coding-agent-slug>
9
9
  ```
10
10
 
11
11
  Report your own product with one short slug, such as `codex` or `claude-code`.
@@ -34,13 +34,15 @@ id. Keep that id for the whole run. Every later command reports against it, and
34
34
  printed once.
35
35
 
36
36
  Every later command must run from the directory this run started in. A command run
37
- somewhere else, such as a sibling of that directory, is refused rather than answered,
38
- because the run it belongs to cannot be found from there. That refusal is a step to take,
39
- not a stop to report: run
40
- `npx --yes copilotkit@4.11.0 onboard start --run <onboarding_run_id>` in the directory
41
- you are now in, which binds it to the same run, then run the refused command again. Do not
42
- start a run without that id. A run started without it is a second run, and the work already
43
- done stops counting toward the first.
37
+ somewhere else is refused, because the run it belongs to cannot be found from there. That
38
+ refusal is a step, not a stop to report: run
39
+ `npx --yes copilotkit@4.12.0 onboard start --run <onboarding_run_id>` where you are
40
+ standing, then run the refused command again.
41
+
42
+ If you no longer hold the id, run `npx --yes copilotkit@4.12.0 onboard start` in the
43
+ directory this run started in, with no `--run` and no `--intent`. It reprints the id of the
44
+ run under way and starts nothing. An id this project does not already hold starts a second
45
+ run, and the work already done stops counting toward the first.
44
46
 
45
47
  Read only inside the target project directory. Every subagent you spawn inherits that
46
48
  limit, including one this graph does not name. Answer a CopilotKit API or configuration
@@ -100,7 +102,7 @@ command without another developer question. Do not ask the developer about telem
100
102
  command applies the setting they already have.
101
103
 
102
104
  ```text
103
- npx --yes copilotkit@4.11.0 onboard friction --phase stop --category <slug>
105
+ npx --yes copilotkit@4.12.0 onboard friction --phase stop --category <slug>
104
106
  ```
105
107
 
106
108
  Write one or two sentences to standard input: the step you stopped at and what stopped it.
@@ -117,7 +119,7 @@ next: send the report, then stop.
117
119
 
118
120
  ## Check sign-in
119
121
 
120
- Run `npx --yes copilotkit@4.11.0 login --json` before any project work. This command
122
+ Run `npx --yes copilotkit@4.12.0 login --json` before any project work. This command
121
123
  checks the current session. It starts sign-in only as needed. Treat this as a long-lived
122
124
  streaming process. Do not wait for the command to exit before you read its standard output.
123
125
 
@@ -153,8 +155,8 @@ Do not use `whoami` for this check. It has no JSON output and some failures exit
153
155
  zero. Do not put account tokens or credentials in the conversation.
154
156
 
155
157
  When sign-in is settled, run
156
- `npx --yes copilotkit@4.11.0 onboard read research/gather`.
158
+ `npx --yes copilotkit@4.12.0 onboard read research/gather`.
157
159
 
158
160
  If sign-in stops onboarding, run
159
- `npx --yes copilotkit@4.11.0 onboard read stopped/run-failed`. It says nothing about
161
+ `npx --yes copilotkit@4.12.0 onboard read stopped/run-failed`. It says nothing about
160
162
  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 --yes copilotkit@4.11.0 verify --round-trip`, which sends a
103
+ fifth item is proved by `npx --yes copilotkit@4.12.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 --yes copilotkit@4.11.0 onboard read credentials/finalize-plan`.
119
+ Then run `npx --yes copilotkit@4.12.0 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.11.0 onboard read unsupported/no-validated-path`.
122
+ `npx --yes copilotkit@4.12.0 onboard read unsupported/no-validated-path`.
@@ -23,7 +23,7 @@ developer question. Do not ask the developer about telemetry: the command applie
23
23
  setting they already have.
24
24
 
25
25
  ```text
26
- npx --yes copilotkit@4.11.0 onboard friction --phase stop --category <slug>
26
+ npx --yes copilotkit@4.12.0 onboard friction --phase stop --category <slug>
27
27
  ```
28
28
 
29
29
  Write one or two sentences to standard input: the step you stopped at and what stopped it.
@@ -58,7 +58,7 @@ the command refuses one of them from a run that was served that node.
58
58
  Run this command with the exact selected slugs:
59
59
 
60
60
  ```text
61
- npx --yes copilotkit@4.11.0 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend>
61
+ npx --yes copilotkit@4.12.0 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend>
62
62
  ```
63
63
 
64
64
  Do not continue if a value is refused. Fix the value from the choices that the earlier
@@ -71,8 +71,8 @@ the runtime `.env` file, do not default to the repository root.
71
71
  Set the environment path to `<target>/.env`.
72
72
 
73
73
  Every credential this run writes goes to the environment path. That covers the project
74
- key, the model credential, and a license token. Do not write a credential to `.env.local`,
75
- or to any second env file beside it. A project ignore file usually covers `.env` and not
74
+ key and the model credential. Do not write a credential to `.env.local`, or to any second
75
+ env file beside it. A project ignore file usually covers `.env` and not
76
76
  `.env.local`, so a credential written there is untracked, visible, and added by the first
77
77
  `git add -A`. And a second env file beside `.env` outranks it when a key is read back, so
78
78
  the value the run depends on is the one it did not write.
@@ -155,7 +155,7 @@ passes against the wrong one.
155
155
  Create it, from the target directory, passing the port research settled:
156
156
 
157
157
  ```text
158
- npx --yes copilotkit@4.11.0 project select --create <name> \
158
+ npx --yes copilotkit@4.12.0 project select --create <name> \
159
159
  --runtime-url http://localhost:<port>/api/copilotkit --json
160
160
  ```
161
161
 
@@ -173,13 +173,13 @@ Take this branch only when the developer asks for an existing project, or asks t
173
173
  projects they have. Read the choices:
174
174
 
175
175
  ```text
176
- npx --yes copilotkit@4.11.0 project list --json
176
+ npx --yes copilotkit@4.12.0 project list --json
177
177
  ```
178
178
 
179
179
  Narrow them:
180
180
 
181
181
  ```text
182
- npx --yes copilotkit@4.11.0 project list --search <query> --json
182
+ npx --yes copilotkit@4.12.0 project list --search <query> --json
183
183
  ```
184
184
 
185
185
  With `--json` the payload is the only thing on standard output, so it is safe to parse. Do
@@ -192,7 +192,7 @@ Then record the project they name, from the target directory, with the same
192
192
  `--runtime-url`:
193
193
 
194
194
  ```text
195
- npx --yes copilotkit@4.11.0 project select --project <slug-or-id> \
195
+ npx --yes copilotkit@4.12.0 project select --project <slug-or-id> \
196
196
  --runtime-url http://localhost:<port>/api/copilotkit --json
197
197
  ```
198
198
 
@@ -200,10 +200,11 @@ The two flags cannot be combined. A slug that does not exist fails and lists the
200
200
  so a typo cannot record a selection that points at nothing.
201
201
 
202
202
  Read the JSON result. It reports `selected_project_slug`, `config_path`,
203
- `api_key_provisioned`, `project_file_written`, and `environment_file_written` at the top
204
- level. The result does not contain a secret. Report `selected_project_slug` as the project
205
- slug that the server selected or created. Require `api_key_provisioned`,
206
- `project_file_written`, and `environment_file_written` to be true.
203
+ `api_key_provisioned`, `project_file_written`, `environment_file_written`, and
204
+ `environment_file` at the top level. The result does not contain a secret. Report
205
+ `selected_project_slug` as the project slug that the server selected or created.
206
+ Require `api_key_provisioned`, `project_file_written`, and `environment_file_written`
207
+ to be true.
207
208
 
208
209
  A run that wrote the project record without a key exits 75 and reports `"type": "partial"`
209
210
  with a `retry_command`. That is the recoverable half: the record is kept, and the failure
@@ -235,4 +236,4 @@ project-record path and environment path as the credential setup path list. Do n
235
236
  to the baseline yet.
236
237
 
237
238
  When project selection is settled, run
238
- `npx --yes copilotkit@4.11.0 onboard read credentials/settle-credentials`.
239
+ `npx --yes copilotkit@4.12.0 onboard read credentials/settle-credentials`.
@@ -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.11.0 onboard read framework/ag2`
72
- 2. Agno: `npx --yes copilotkit@4.11.0 onboard read framework/agno`
73
- 3. Built-in CopilotKit agent: `npx --yes copilotkit@4.11.0 onboard read framework/built-in`
74
- 4. Claude Agent SDK Python: `npx --yes copilotkit@4.11.0 onboard read framework/claude-sdk-python`
75
- 5. Claude Agent SDK TypeScript: `npx --yes copilotkit@4.11.0 onboard read framework/claude-sdk-typescript`
76
- 6. CrewAI Flows: `npx --yes copilotkit@4.11.0 onboard read framework/crewai-flows`
77
- 7. Deep Agents: `npx --yes copilotkit@4.11.0 onboard read framework/deep-agents`
78
- 8. LangGraph Python: `npx --yes copilotkit@4.11.0 onboard read framework/langgraph-python`
79
- 9. LangGraph FastAPI: `npx --yes copilotkit@4.11.0 onboard read framework/langgraph-fastapi`
80
- 10. LangGraph TypeScript: `npx --yes copilotkit@4.11.0 onboard read framework/langgraph-typescript`
81
- 11. LlamaIndex: `npx --yes copilotkit@4.11.0 onboard read framework/llamaindex`
82
- 12. ADK: `npx --yes copilotkit@4.11.0 onboard read framework/google-adk`
83
- 13. Microsoft Agent Framework Python: `npx --yes copilotkit@4.11.0 onboard read framework/ms-agent-python`
84
- 14. Microsoft Agent Framework .NET: `npx --yes copilotkit@4.11.0 onboard read framework/ms-agent-dotnet`
85
- 15. Mastra: `npx --yes copilotkit@4.11.0 onboard read framework/mastra`
86
- 16. MS Agent Harness .NET: `npx --yes copilotkit@4.11.0 onboard read framework/ms-agent-harness-dotnet`
87
- 17. Pydantic AI: `npx --yes copilotkit@4.11.0 onboard read framework/pydantic-ai`
88
- 18. Strands Agents Python: `npx --yes copilotkit@4.11.0 onboard read framework/strands-python`
89
- 19. Strands Agents TypeScript: `npx --yes copilotkit@4.11.0 onboard read framework/strands-typescript`
71
+ 1. AG2: `npx --yes copilotkit@4.12.0 onboard read framework/ag2`
72
+ 2. Agno: `npx --yes copilotkit@4.12.0 onboard read framework/agno`
73
+ 3. Built-in CopilotKit agent: `npx --yes copilotkit@4.12.0 onboard read framework/built-in`
74
+ 4. Claude Agent SDK Python: `npx --yes copilotkit@4.12.0 onboard read framework/claude-sdk-python`
75
+ 5. Claude Agent SDK TypeScript: `npx --yes copilotkit@4.12.0 onboard read framework/claude-sdk-typescript`
76
+ 6. CrewAI Flows: `npx --yes copilotkit@4.12.0 onboard read framework/crewai-flows`
77
+ 7. Deep Agents: `npx --yes copilotkit@4.12.0 onboard read framework/deep-agents`
78
+ 8. LangGraph Python: `npx --yes copilotkit@4.12.0 onboard read framework/langgraph-python`
79
+ 9. LangGraph FastAPI: `npx --yes copilotkit@4.12.0 onboard read framework/langgraph-fastapi`
80
+ 10. LangGraph TypeScript: `npx --yes copilotkit@4.12.0 onboard read framework/langgraph-typescript`
81
+ 11. LlamaIndex: `npx --yes copilotkit@4.12.0 onboard read framework/llamaindex`
82
+ 12. ADK: `npx --yes copilotkit@4.12.0 onboard read framework/google-adk`
83
+ 13. Microsoft Agent Framework Python: `npx --yes copilotkit@4.12.0 onboard read framework/ms-agent-python`
84
+ 14. Microsoft Agent Framework .NET: `npx --yes copilotkit@4.12.0 onboard read framework/ms-agent-dotnet`
85
+ 15. Mastra: `npx --yes copilotkit@4.12.0 onboard read framework/mastra`
86
+ 16. MS Agent Harness .NET: `npx --yes copilotkit@4.12.0 onboard read framework/ms-agent-harness-dotnet`
87
+ 17. Pydantic AI: `npx --yes copilotkit@4.12.0 onboard read framework/pydantic-ai`
88
+ 18. Strands Agents Python: `npx --yes copilotkit@4.12.0 onboard read framework/strands-python`
89
+ 19. Strands Agents TypeScript: `npx --yes copilotkit@4.12.0 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.11.0 onboard read unsupported/no-validated-path`.
93
+ `npx --yes copilotkit@4.12.0 onboard read unsupported/no-validated-path`.
@@ -11,7 +11,7 @@ friction command without another developer question. Do not ask the developer ab
11
11
  telemetry: the command applies the setting they already have.
12
12
 
13
13
  ```text
14
- npx --yes copilotkit@4.11.0 onboard friction --phase stop --category <slug>
14
+ npx --yes copilotkit@4.12.0 onboard friction --phase stop --category <slug>
15
15
  ```
16
16
 
17
17
  Write one or two sentences to standard input: the step you stopped at and what stopped it.
@@ -22,32 +22,64 @@ the whole run, so the estimate is optional on a stop report and only there. Send
22
22
  source code, logs, or command output. A refused report is not a failed step: reword it and
23
23
  send it again, or stop without a report.
24
24
 
25
+ ## Check that the key landed where the application reads it
26
+
27
+ Do this first, before the Learning Container, and only on a run that selected a project.
28
+ A run that reused one wrote no key and has nothing to read.
29
+
30
+ `environment_file_written` in the selection result says a file was written. It does not say
31
+ which file, and it does not say whether the application reads it. `environment_file` says
32
+ both: `path` is the file, and `loadable_by_app` is whether an application loads env files
33
+ from that directory. Project selection is the only step that can answer the second one.
34
+
35
+ - `pass`: the key is where the application's own process reads it. Continue.
36
+ - `fail`: it is not. `environment_file.apps` names the directories that do load env files.
37
+ Run the selection again from one of them, with `--project <selected slug>` and the same
38
+ `--runtime-url`, then read the new result.
39
+ - `undetermined`: no application package was found, so the question has no answer. Record
40
+ that and continue.
41
+
42
+ Do not repair a `fail` by copying the file, linking it, or writing the key a second time.
43
+ One key in two files is a secret in a place nobody tracks, and the copy goes stale as soon
44
+ as the original is rotated.
45
+
46
+ A key the application cannot load stops nothing here. It fails the round-trip proof
47
+ instead, which is the most expensive step in the run.
48
+
25
49
  ## Settle the Learning Container for this project
26
50
 
27
51
  Do this now, directly after project selection reports `selected_project_slug`, and before
28
52
  the plan. On a run that reused a project rather than selecting one, take the slug from the
29
53
  `projectSlug` field in the project record, which the follow-up check above already proved
30
- is non-empty. Both paths reach this step. Learning assigns real threads to a Learning Container, and a thread takes its
31
- container before its first agent run. A thread whose agent already ran can never receive a
32
- first assignment later, so every thread the developer creates between this run and some
33
- later `add-learning` run is lost to Learning for good. Setting it up here is not a
34
- convenience. It is the only point at which this project's first threads can be reached.
35
-
36
- Derive the id from the selected project slug: lowercase it, replace each run of characters
37
- outside `a-z0-9` with one hyphen, drop a leading or trailing hyphen, cut the result to 64
38
- characters, and drop a trailing hyphen the cut leaves behind. The container id contract is
39
- 1-64 lowercase letters, numbers, and single hyphens, so an id that skips the last step
40
- fails the create call on the developer's behalf. Derive it this exact way: the
41
- `add-learning` intent derives the same id from the same slug, and two spellings of one
42
- project's id give it two containers, each below the 15-conversation line on its own.
43
-
44
- One container for this project is the default scope. If the slug leaves nothing usable,
45
- skip this step and name the skip, rather than inventing a name.
54
+ is non-empty. Both paths reach this step. Learning assigns real threads to a Learning Container once.
55
+ New and existing threads can receive their first assignment, including after agent runs.
56
+ Set up the container here so new conversations contribute from the start. Existing threads
57
+ can join later, and Learning can collect only history whose source events still survive.
58
+
59
+ One container for this project is the default scope, so the id comes from the selected
60
+ project slug. Ask the CLI for it, from the target directory:
61
+
62
+ ```text
63
+ npx --yes copilotkit@4.12.0 learning containers default-id --json
64
+ ```
65
+
66
+ The command reads the local project record. It needs no credential and makes no network
67
+ call, so it answers before the run asks the platform anything. Read `status` from the
68
+ payload:
69
+
70
+ - `"status": "success"` carries the id in `containerId`. Use that exact string.
71
+ - `"status": "skipped"` means there is no id to use. `slug-unusable` means the slug leaves
72
+ nothing the id contract accepts. `no-project-record` means no project is selected in
73
+ this directory. Skip this step and name the skip, rather than inventing a name.
74
+
75
+ Never spell the id yourself. Two spellings of one project's id give it two containers,
76
+ each below the 15-conversation line on its own, and nothing reports that the split
77
+ happened.
46
78
 
47
79
  Then ask the platform about that id, from the target directory:
48
80
 
49
81
  ```text
50
- npx --yes copilotkit@4.11.0 learning containers get <id> --json
82
+ npx --yes copilotkit@4.12.0 learning containers get <id> --json
51
83
  ```
52
84
 
53
85
  The read carries the same availability gate as the create, so it answers the entitlement
@@ -72,7 +104,7 @@ Never invent an id, scrape a dashboard, or treat an arbitrary string as a contai
72
104
  Report what the read found, before anything is planned:
73
105
 
74
106
  ```text
75
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase container-surveyed
107
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase container-surveyed
76
108
  ```
77
109
 
78
110
  Carry the derived id into the planning subagent's handoff, with whether the platform
@@ -102,7 +134,7 @@ protected path list. Also add each project file that the developer changed for m
102
134
  credentials. Record them in the baseline from the target app directory:
103
135
 
104
136
  ```text
105
- npx --yes copilotkit@4.11.0 onboard protect --path <path>
137
+ npx --yes copilotkit@4.12.0 onboard protect --path <path>
106
138
  ```
107
139
 
108
140
  Pass one `--path` for each. The command captures a digest for each path and never re-reads
@@ -116,7 +148,7 @@ Then re-capture the files this graph wrote itself. For each path the first captu
116
148
  as `deferred` that this run has now written, run:
117
149
 
118
150
  ```text
119
- npx --yes copilotkit@4.11.0 onboard protect --rebaseline --path <path>
151
+ npx --yes copilotkit@4.12.0 onboard protect --rebaseline --path <path>
120
152
  ```
121
153
 
122
154
  From that point they are protected like any other path, so a later step that rewrites
@@ -135,7 +167,7 @@ environment path. The command below is what to run at that point, from the targe
135
167
  directory:
136
168
 
137
169
  ```text
138
- npx --yes copilotkit@4.11.0 onboard protect --accept-credential --path <environment path>
170
+ npx --yes copilotkit@4.12.0 onboard protect --accept-credential --path <environment path>
139
171
  ```
140
172
 
141
173
  The command compares the variable names the baseline recorded with the names the file holds
@@ -150,4 +182,4 @@ now. Read its result:
150
182
  is not a failed step. It answers the question and the run carries on.
151
183
 
152
184
  When the credential question is answered, run
153
- `npx --yes copilotkit@4.11.0 onboard read credentials/write-plan`.
185
+ `npx --yes copilotkit@4.12.0 onboard read credentials/write-plan`.
@@ -11,7 +11,7 @@ friction command without another developer question. Do not ask the developer ab
11
11
  telemetry: the command applies the setting they already have.
12
12
 
13
13
  ```text
14
- npx --yes copilotkit@4.11.0 onboard friction --phase stop --category <slug>
14
+ npx --yes copilotkit@4.12.0 onboard friction --phase stop --category <slug>
15
15
  ```
16
16
 
17
17
  Write one or two sentences to standard input: the step you stopped at and what stopped it.
@@ -52,7 +52,7 @@ proof subagents:
52
52
  Fetch them together with the pages already selected rather than on their own.
53
53
 
54
54
  Spawn one planning subagent. Tell it to run
55
- `npx --yes copilotkit@4.11.0 onboard read subagent/create-plan` first and follow the prompt
55
+ `npx --yes copilotkit@4.12.0 onboard read subagent/create-plan` first and follow the prompt
56
56
  it returns. If that read fails because the subagent cannot use the shell, stop that subagent.
57
57
  Run the same command yourself, then spawn a fresh subagent with the returned prompt and the
58
58
  same handoff. Give it the repository findings, selected framework, frontend, model, credential
@@ -63,7 +63,7 @@ Wait for the subagent to finish.
63
63
  Continue only if the planning result starts with `Status: passed`. For `Status: failed`,
64
64
  send the result back to the planning subagent for repair, up to three attempts. For
65
65
  `Status: blocked`, or a third failed result, run
66
- `npx --yes copilotkit@4.11.0 onboard read stopped/run-failed`. A plan this run cannot
66
+ `npx --yes copilotkit@4.12.0 onboard read stopped/run-failed`. A plan this run cannot
67
67
  write is a run that broke, not a stack the documentation does not cover. Do not show or
68
68
  ask for approval of a non-pass plan.
69
69
 
@@ -87,7 +87,7 @@ that waits at the terminal through all of them for a question that never comes.
87
87
  the same message as the plan, and do not turn it into a second question.
88
88
 
89
89
  If the developer approves the plan, run
90
- `npx --yes copilotkit@4.11.0 onboard read implementation/build-and-validate`.
90
+ `npx --yes copilotkit@4.12.0 onboard read implementation/build-and-validate`.
91
91
 
92
92
  If no exact supported path or documentation URL exists, run
93
- `npx --yes copilotkit@4.11.0 onboard read unsupported/no-validated-path`.
93
+ `npx --yes copilotkit@4.12.0 onboard read unsupported/no-validated-path`.
@@ -14,7 +14,7 @@ command without another developer question. Do not ask the developer about telem
14
14
  command applies the setting they already have.
15
15
 
16
16
  ```text
17
- npx --yes copilotkit@4.11.0 onboard friction --phase stop --category <slug>
17
+ npx --yes copilotkit@4.12.0 onboard friction --phase stop --category <slug>
18
18
  ```
19
19
 
20
20
  Write one or two sentences to standard input: the step you stopped at and what stopped it.
@@ -60,13 +60,13 @@ stop.
60
60
 
61
61
  Use these rules for every protected-path check in this fallback:
62
62
 
63
- - Run `npx --yes copilotkit@4.11.0 onboard audit` from the target app directory.
63
+ - Run `npx --yes copilotkit@4.12.0 onboard audit` from the target app directory.
64
64
  - If a result starts with `Status: blocked`, stop onboarding and report the printed reason.
65
65
  It proved nothing changed, so do not report a preservation failure.
66
66
  - If a result reports a changed protected path this run wrote, stop onboarding.
67
67
  - If a result reports a changed path that no Files changed section from this run names,
68
68
  the change came from outside the run. Accept it by name with
69
- `npx --yes copilotkit@4.11.0 onboard protect --accept-external --path <path>`, run the
69
+ `npx --yes copilotkit@4.12.0 onboard protect --accept-external --path <path>`, run the
70
70
  audit again, and name it in the closing report.
71
71
  - If no Files changed section from this run covers the step that wrote it, stop
72
72
  onboarding. The proof subagent here returns no such section, so a finding it raises is
@@ -119,13 +119,13 @@ application passes proof. Report each tool result separately from the proof resu
119
119
  Report the documentation gap and each assumption with the proof evidence. Do not claim
120
120
  that the selected documentation proved an inferred step.
121
121
 
122
- When the proof is complete, run `npx --yes copilotkit@4.11.0 onboard complete`, carrying the
122
+ When the proof is complete, run `npx --yes copilotkit@4.12.0 onboard complete`, carrying the
123
123
  surface-check result the proof subagent returned. Pass exactly one flag, matching this
124
124
  journey's surface:
125
125
 
126
126
  ```text
127
- npx --yes copilotkit@4.11.0 onboard complete --visual-check <outcome>
128
- npx --yes copilotkit@4.11.0 onboard complete --device-check <outcome>
127
+ npx --yes copilotkit@4.12.0 onboard complete --visual-check <outcome>
128
+ npx --yes copilotkit@4.12.0 onboard complete --device-check <outcome>
129
129
  ```
130
130
 
131
131
  `--visual-check` is for a web frontend and takes `performed`, `skipped-no-browser-tool`, or
@@ -18,10 +18,10 @@ without exposing secrets.
18
18
  After validation and each repair, run:
19
19
 
20
20
  ```text
21
- npx --yes copilotkit@4.11.0 onboard audit
21
+ npx --yes copilotkit@4.12.0 onboard audit
22
22
  ```
23
23
 
24
- Continue only when it starts with `Status: passed`. A path under `Authorized to change:` is
24
+ Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
25
25
  not a finding. Carry it into the final summary with its reason.
26
26
 
27
27
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -29,7 +29,7 @@ with the implementation subagent's `Files changed` section. If that section does
29
29
  the path, accept the developer's external change:
30
30
 
31
31
  ```text
32
- npx --yes copilotkit@4.11.0 onboard protect --accept-external --path <path>
32
+ npx --yes copilotkit@4.12.0 onboard protect --accept-external --path <path>
33
33
  ```
34
34
 
35
35
  For an env file where the developer placed a requested credential, use
@@ -38,24 +38,24 @@ or its report does not settle who changed it, ask the developer to allow the unp
38
38
  change. Only after they agree, record their answer:
39
39
 
40
40
  ```text
41
- npx --yes copilotkit@4.11.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
41
+ npx --yes copilotkit@4.12.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
42
42
  ```
43
43
 
44
44
  Run the audit again after each accepted or authorized change. If it still fails, or starts
45
45
  with `Status: blocked`, route out and stop:
46
46
 
47
47
  ```text
48
- npx --yes copilotkit@4.11.0 onboard read feature/stop
48
+ npx --yes copilotkit@4.12.0 onboard read feature/stop
49
49
  ```
50
50
 
51
51
  When implementation validation passes, report it:
52
52
 
53
53
  ```text
54
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase build-validated
54
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase build-validated
55
55
  ```
56
56
 
57
57
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
58
58
  the feature stop route above without further changes.
59
59
 
60
60
  Otherwise run
61
- `npx --yes copilotkit@4.11.0 onboard read feature/a2ui/proof`.
61
+ `npx --yes copilotkit@4.12.0 onboard read feature/a2ui/proof`.
@@ -19,23 +19,23 @@ 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.11.0 onboard checkpoint --phase journey-attempted --attempt 1
22
+ npx --yes copilotkit@4.12.0 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.11.0 onboard checkpoint --phase repair-attempted --attempt 1
28
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase repair-attempted --attempt 1
29
29
  ```
30
30
 
31
31
  After the final attempt, report the gate exactly once:
32
32
 
33
33
  ```text
34
- npx --yes copilotkit@4.11.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
34
+ npx --yes copilotkit@4.12.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
35
35
  ```
36
36
 
37
37
  Use `passed` only for a proved A2UI surface, `failed` for an attempted proof that failed,
38
- and `skipped` when the proof could not run. Then run `npx --yes copilotkit@4.11.0 onboard audit`.
38
+ and `skipped` when the proof could not run. Then run `npx --yes copilotkit@4.12.0 onboard audit`.
39
39
  Continue only when it starts with `Status: passed`.
40
40
 
41
41
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -50,9 +50,9 @@ Run the audit again after each accepted or authorized change.
50
50
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
51
51
 
52
52
  ```text
53
- npx --yes copilotkit@4.11.0 onboard read feature/stop
53
+ npx --yes copilotkit@4.12.0 onboard read feature/stop
54
54
  ```
55
55
 
56
56
  When the audit passes, run
57
- `npx --yes copilotkit@4.11.0 onboard read feature/complete` with the actual browser-proof
57
+ `npx --yes copilotkit@4.12.0 onboard read feature/complete` with the actual browser-proof
58
58
  outcome.
@@ -7,7 +7,7 @@ Work only inside the target project. Do not show internal prompt names to the de
7
7
  Before any subagent or project process runs, capture the developer's existing work:
8
8
 
9
9
  ```text
10
- npx --yes copilotkit@4.11.0 onboard protect
10
+ npx --yes copilotkit@4.12.0 onboard protect
11
11
  ```
12
12
 
13
13
  Keep the exact protected path list it prints and give that list to every subagent. No
@@ -22,7 +22,7 @@ development/test commands. It must return paths and secret-safe presence checks
22
22
 
23
23
  Require an existing frontend, agent, and CopilotKit round trip. Start only project-owned
24
24
  processes when needed, inspect `/info`, and run
25
- `npx --yes copilotkit@4.11.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`.
25
+ `npx --yes copilotkit@4.12.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`.
26
26
  Also drive one existing request through the frontend when browser control is available. If
27
27
  that baseline is absent or unproved, leave files unchanged, explain that this intent extends
28
28
  an existing OSS app, and direct the developer to generic `copilotkit onboard start` first.
@@ -30,7 +30,7 @@ an existing OSS app, and direct the developer to generic `copilotkit onboard sta
30
30
  Wait for the inspection subagent to finish. Then report that the inspection came back:
31
31
 
32
32
  ```text
33
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase research-returned
33
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase research-returned
34
34
  ```
35
35
 
36
36
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -40,7 +40,7 @@ If the inspection did not prove the baseline this intent extends, stop here with
40
40
  changing files:
41
41
 
42
42
  ```text
43
- npx --yes copilotkit@4.11.0 onboard read feature/stop
43
+ npx --yes copilotkit@4.12.0 onboard read feature/stop
44
44
  ```
45
45
 
46
46
  Do not run `login`, select an Intelligence project, add an Intelligence client, mint a
@@ -57,12 +57,14 @@ catalog or runtime wiring required, the test command, and a browser proof reques
57
57
  renders a compact visible surface. Ask for plan approval as its own question.
58
58
 
59
59
  The plan must list every protected path it needs to change under `Authorization requested`,
60
- with one sentence explaining why. Write `None` when it needs none.
60
+ with one sentence explaining why. Write `None` when it needs none. Authorization covers
61
+ changing a protected path, not removing it, so the plan must not delete, move, or rename
62
+ one.
61
63
 
62
64
  After approval, record each approved path before implementation:
63
65
 
64
66
  ```text
65
- npx --yes copilotkit@4.11.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
67
+ npx --yes copilotkit@4.12.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
66
68
  ```
67
69
 
68
70
  If an approved path changed after capture and no implementation step has run, add
@@ -72,7 +74,7 @@ authorize a path the approved plan did not list.
72
74
  Then report the plan this run is about to implement:
73
75
 
74
76
  ```text
75
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase plan-written
77
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase plan-written
76
78
  ```
77
79
 
78
- Then run `npx --yes copilotkit@4.11.0 onboard read feature/a2ui/implement`.
80
+ Then run `npx --yes copilotkit@4.12.0 onboard read feature/a2ui/implement`.
@@ -0,0 +1,32 @@
1
+ # Stop this feature: the platform refused it
2
+
3
+ The platform answered the entitlement question, and the answer was no. This is a settled
4
+ refusal, not a failed step and not a missing prerequisite. Keep the developer's agent,
5
+ frontend, runtime, persistence, chat surface, and package choices exactly as they were, and
6
+ leave the project unchanged.
7
+
8
+ CopilotKit Intelligence did not refuse this run for a missing baseline. Do not read
9
+ `feature/stop`, and do not send the developer to generic onboarding. Do not start another
10
+ feature run to build a prerequisite this run never lacked. Nothing this run can build
11
+ changes the answer.
12
+
13
+ Tell the developer, in two or three sentences:
14
+
15
+ 1. Which feature was refused, and that their organization is the unit the platform refused
16
+ it for.
17
+ 2. That every current plan grants Learning, so a refusal means the organization's
18
+ entitlement is not active or its record predates that grant, rather than the feature
19
+ being unavailable to them.
20
+ 3. The one action that can change it: check the organization's plan and billing state at
21
+ https://cloud.copilotkit.ai, or reply to support with the organization name.
22
+
23
+ Then stop. Report nothing else and ask no follow-up question.
24
+
25
+ Do not run `onboard complete`. This run did not complete.
26
+
27
+ Do not file a friction report for this ending. Reading this prompt already reports it, and a
28
+ free-text report of a refusal the platform already named adds nothing.
29
+
30
+ If this run changed files before it stopped, list every path it changed and say whether it
31
+ reverted them. A refusal that arrives after the first edit still owes the developer that
32
+ list.