copilotkit 4.24.0 → 4.25.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 (91) hide show
  1. package/README.md +75 -14
  2. package/cli-build-info.json +7 -7
  3. package/index.js +8544 -6674
  4. package/onboarding/index.json +2 -2
  5. package/onboarding/prompts/authenticate/start.md +50 -45
  6. package/onboarding/prompts/conversion/plan.md +3 -3
  7. package/onboarding/prompts/credentials/finalize-plan.md +30 -8
  8. package/onboarding/prompts/credentials/plan.md +115 -49
  9. package/onboarding/prompts/credentials/settle-credentials.md +7 -5
  10. package/onboarding/prompts/credentials/write-plan.md +15 -15
  11. package/onboarding/prompts/deployment/choose-local.md +44 -7
  12. package/onboarding/prompts/deployment/local-evaluation.md +12 -6
  13. package/onboarding/prompts/fallback/best-effort.md +8 -8
  14. package/onboarding/prompts/feature/a2ui/implement.md +15 -8
  15. package/onboarding/prompts/feature/a2ui/plan.md +15 -7
  16. package/onboarding/prompts/feature/a2ui/proof.md +14 -7
  17. package/onboarding/prompts/feature/a2ui/start.md +15 -14
  18. package/onboarding/prompts/feature/channels/implement.md +21 -9
  19. package/onboarding/prompts/feature/channels/plan.md +15 -7
  20. package/onboarding/prompts/feature/channels/proof.md +14 -7
  21. package/onboarding/prompts/feature/channels/start.md +20 -13
  22. package/onboarding/prompts/feature/chat-suggestions/implement.md +15 -8
  23. package/onboarding/prompts/feature/chat-suggestions/plan.md +15 -7
  24. package/onboarding/prompts/feature/chat-suggestions/proof.md +14 -7
  25. package/onboarding/prompts/feature/chat-suggestions/start.md +15 -14
  26. package/onboarding/prompts/feature/complete.md +2 -2
  27. package/onboarding/prompts/feature/learning/implement.md +32 -18
  28. package/onboarding/prompts/feature/learning/plan.md +15 -7
  29. package/onboarding/prompts/feature/learning/proof.md +37 -13
  30. package/onboarding/prompts/feature/learning/start.md +15 -14
  31. package/onboarding/prompts/feature/open-generative-ui/implement.md +15 -8
  32. package/onboarding/prompts/feature/open-generative-ui/plan.md +15 -7
  33. package/onboarding/prompts/feature/open-generative-ui/proof.md +14 -7
  34. package/onboarding/prompts/feature/open-generative-ui/start.md +15 -14
  35. package/onboarding/prompts/feature/realtime-sync/implement.md +20 -12
  36. package/onboarding/prompts/feature/realtime-sync/plan.md +15 -7
  37. package/onboarding/prompts/feature/realtime-sync/proof.md +14 -7
  38. package/onboarding/prompts/feature/realtime-sync/start.md +14 -13
  39. package/onboarding/prompts/feature/rich-threads/implement.md +21 -13
  40. package/onboarding/prompts/feature/rich-threads/plan.md +15 -7
  41. package/onboarding/prompts/feature/rich-threads/proof.md +14 -7
  42. package/onboarding/prompts/feature/rich-threads/start.md +14 -13
  43. package/onboarding/prompts/feature/stop.md +9 -3
  44. package/onboarding/prompts/feature/voice/implement.md +15 -8
  45. package/onboarding/prompts/feature/voice/plan.md +16 -8
  46. package/onboarding/prompts/feature/voice/proof.md +14 -7
  47. package/onboarding/prompts/feature/voice/start.md +15 -14
  48. package/onboarding/prompts/framework/ag2.md +6 -5
  49. package/onboarding/prompts/framework/agno.md +6 -5
  50. package/onboarding/prompts/framework/built-in.md +9 -6
  51. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  52. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  53. package/onboarding/prompts/framework/crewai-flows.md +12 -4
  54. package/onboarding/prompts/framework/custom-ag-ui.md +8 -2
  55. package/onboarding/prompts/framework/deep-agents.md +6 -5
  56. package/onboarding/prompts/framework/google-adk.md +2 -2
  57. package/onboarding/prompts/framework/langgraph-fastapi.md +8 -5
  58. package/onboarding/prompts/framework/langgraph-python.md +8 -5
  59. package/onboarding/prompts/framework/langgraph-typescript.md +8 -5
  60. package/onboarding/prompts/framework/llamaindex.md +6 -5
  61. package/onboarding/prompts/framework/mastra.md +9 -6
  62. package/onboarding/prompts/framework/ms-agent-dotnet.md +12 -4
  63. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +12 -4
  64. package/onboarding/prompts/framework/ms-agent-python.md +6 -5
  65. package/onboarding/prompts/framework/pydantic-ai.md +6 -5
  66. package/onboarding/prompts/framework/strands-python.md +10 -6
  67. package/onboarding/prompts/framework/strands-typescript.md +10 -6
  68. package/onboarding/prompts/frontend/angular.md +10 -3
  69. package/onboarding/prompts/frontend/nextjs.md +36 -3
  70. package/onboarding/prompts/frontend/plan.md +13 -7
  71. package/onboarding/prompts/frontend/react-native.md +9 -2
  72. package/onboarding/prompts/frontend/react-spa.md +9 -2
  73. package/onboarding/prompts/frontend/vue.md +9 -2
  74. package/onboarding/prompts/implementation/build-and-validate.md +45 -19
  75. package/onboarding/prompts/proof/complete.md +3 -3
  76. package/onboarding/prompts/proof/oss-baseline.md +30 -13
  77. package/onboarding/prompts/proof/round-trip.md +55 -17
  78. package/onboarding/prompts/research/gather.md +21 -11
  79. package/onboarding/prompts/research/merge.md +8 -2
  80. package/onboarding/prompts/research/preflight.md +2 -2
  81. package/onboarding/prompts/research/route.md +14 -7
  82. package/onboarding/prompts/starter/clone.md +73 -16
  83. package/onboarding/prompts/stopped/run-failed.md +8 -2
  84. package/onboarding/prompts/subagent/create-plan.md +9 -2
  85. package/onboarding/prompts/subagent/implement-and-validate.md +2 -2
  86. package/onboarding/prompts/subagent/inspect-repository.md +12 -6
  87. package/onboarding/prompts/subagent/prove-oss-baseline.md +6 -1
  88. package/onboarding/prompts/subagent/prove-round-trip.md +50 -9
  89. package/onboarding/prompts/unsupported/no-validated-path.md +8 -2
  90. package/package.json +1 -1
  91. package/release/release-tool.js +9 -3
@@ -2,7 +2,8 @@
2
2
 
3
3
  Delegate proof to a fresh subagent. In the real authenticated app, create or use a thread,
4
4
  send a normal agent request, and confirm the resulting run reached the selected Learning
5
- Container. Confirm the thread remains associated with the expected user.
5
+ Container. Confirm the thread remains associated with the expected user. Where the proof
6
+ uses `--thread` (below), that command cannot show the user, so read the user from the app.
6
7
 
7
8
  ## Check the local Learning model first
8
9
 
@@ -11,7 +12,7 @@ A local stack runs Learning only with a model that the developer gave it. Before
11
12
  run this command from the app directory:
12
13
 
13
14
  ```text
14
- npx --prefer-offline --yes copilotkit@4.24.0 local status --json
15
+ npx --prefer-offline --yes copilotkit@4.25.0 local status --json
15
16
  ```
16
17
 
17
18
  Read `learning.configuration`. If it is `configured`, continue with the proof. Any other
@@ -25,7 +26,7 @@ it has a model. Ask them to run this command in their own terminal window, in th
25
26
  directory:
26
27
 
27
28
  ```text
28
- npx --prefer-offline --yes copilotkit@4.24.0 local setup
29
+ npx --prefer-offline --yes copilotkit@4.25.0 local setup
29
30
  ```
30
31
 
31
32
  Do not give it as a `!` line, and do not run it yourself. Its guided model prompt needs a
@@ -35,13 +36,13 @@ On a running stack, it restarts only Learning. The container and its threads sta
35
36
  ask the developer to write a model file, and do not read or print the model key.
36
37
 
37
38
  Say that the run continues when they reply or resume this session. Report the pause with
38
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard checkpoint --phase awaiting-model-credential`, end your
39
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-model-credential`, end your
39
40
  turn, and wait. When the developer replies, run `local status --json` again.
40
41
  When it reports `configured`, continue with the proof.
41
42
 
42
43
  If the developer declines, continue with the proof, because the container assignment can
43
44
  still be proved. In the closing report, write "Learning configuration incomplete". Name the
44
- command that adds the model later: `npx --prefer-offline --yes copilotkit@4.24.0 local setup`, run from
45
+ command that adds the model later: `npx --prefer-offline --yes copilotkit@4.25.0 local setup`, run from
45
46
  the app directory. `learning.verified` is always `false`. It does not mean that Learning
46
47
  failed.
47
48
 
@@ -50,12 +51,28 @@ failed.
50
51
  One command decides it:
51
52
 
52
53
  ```text
53
- npx --prefer-offline --yes copilotkit@4.24.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --expect-learning-container <id> --json
54
+ npx --prefer-offline --yes copilotkit@4.25.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --expect-learning-container <id> --json
54
55
  ```
55
56
 
56
57
  It reads the thread back from the platform, so it answers for any runtime mount, and it
57
58
  passes only when that thread carries the container this run selected.
58
59
 
60
+ That command starts its own run on a new thread. An app that runs only threads it created,
61
+ or whose `identifyUser` reads a session, refuses that run, and the container check never
62
+ runs. Do not change the app to accept it. Send one request on a new thread in the app, as
63
+ a signed-in user, read that request's `threadId` from the request body the page sent to
64
+ the runtime, and prove the same thread. Where the page needs a sign-in, do not create an
65
+ account and do not enter credentials. Where you cannot send the request yourself, ask the
66
+ developer to send one message on a new thread and give you its thread id. Report the pause
67
+ with `npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer`, then
68
+ end your turn and wait. When the developer gives the id, prove that thread:
69
+
70
+ ```text
71
+ npx --prefer-offline --yes copilotkit@4.25.0 verify --expect-runtime intelligence --thread <thread-id> --expect-learning-container <id> --json
72
+ ```
73
+
74
+ It reads that thread from the platform with the project key and starts no run.
75
+
59
76
  Two other signals look like proof and are not. `features.self_learning` is a plan
60
77
  entitlement and is already true before any wiring. The `/info` response reports Learning
61
78
  from the presence of a callback, not from a single assigned thread. Never report either one
@@ -79,11 +96,18 @@ not edit it. It returns a result that starts with `Status: blocked` and names th
79
96
  Blockers.
80
97
 
81
98
  That result is a question for the developer. The file has not changed yet, so consent can
82
- still go on the record. Name the file and why the fix needs it, then end your turn and wait
83
- for the developer's answer. If they allow it, record their answer before any edit:
99
+ still go on the record. Name the file and why the fix needs it.
100
+ Before you end your turn to wait for the developer, report the pause:
101
+
102
+ ```text
103
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
104
+ ```
105
+
106
+ Then end your turn and wait for the developer's answer. If they allow it, record their
107
+ answer before any edit:
84
108
 
85
109
  ```text
86
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
110
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
87
111
  ```
88
112
 
89
113
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -96,12 +120,12 @@ Report the outcome of each attempt as it ends, before any repair. The command co
96
120
  attempts and the repairs:
97
121
 
98
122
  ```text
99
- npx --prefer-offline --yes copilotkit@4.24.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
123
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
100
124
  ```
101
125
 
102
126
  Use `passed` only for a proved Container assignment, `failed` for an attempted proof that
103
127
  failed, and `skipped` when the proof could not run. Then run
104
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard audit`. Continue only when it starts with
128
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard audit`. Continue only when it starts with
105
129
  `Status: passed`.
106
130
 
107
131
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -116,9 +140,9 @@ the path and the change the audit reports. Run the audit again after each accept
116
140
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
117
141
 
118
142
  ```text
119
- npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/stop
143
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
120
144
  ```
121
145
 
122
146
  When the audit passes, run
123
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/complete` with the actual surface
147
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/complete` with the actual surface
124
148
  outcome.
@@ -9,17 +9,18 @@ subagents. Work only inside the target project and preserve its existing agent a
9
9
  Run this before anything else in this prompt:
10
10
 
11
11
  ```text
12
- npx --prefer-offline --yes copilotkit@4.24.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
12
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
13
13
  ```
14
14
 
15
15
  Report your product slug, such as `codex` or `claude-code`. The command needs no sign-in,
16
16
  browser, or project. If this run already ran `onboard identify`, skip this step.
17
17
 
18
- - `--model`: copy the model id exactly as your instructions write it. If they name no
19
- exact model id, leave out `--model` rather than guess.
20
- - `--model-family`: your model's family, such as `claude-opus` or `gpt-5`. Give it even
21
- without `--model`, and leave out `--model-family` if you do not know it.
22
- - Never give your product slug as a model or a family.
18
+ - `--model`: copy the model id exactly as your instructions write it. Without an exact
19
+ model id, leave out `--model` rather than guess.
20
+ - `--model-family`: give it even without `--model`. Closest of: `claude-opus`,
21
+ `claude-sonnet`, `claude-haiku`, `gpt-5`, `gemini`, `grok`, `glm`, `minimax`, `mimo`,
22
+ `deepseek`, `qwen`, `kimi`, else the model's series. Leave it out if you do not know it.
23
+ - Never give your product slug as a model, or as an unlisted family.
23
24
 
24
25
  ## Waits, stops, and subagents
25
26
 
@@ -37,13 +38,13 @@ carry on. Keep a read-only assignment read-only. If no subagent works at all, re
37
38
  once:
38
39
 
39
40
  ```text
40
- npx --prefer-offline --yes copilotkit@4.24.0 onboard checkpoint --phase delegation-unavailable
41
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase delegation-unavailable
41
42
  ```
42
43
 
43
44
  Before you end your turn to wait for the developer, report the pause:
44
45
 
45
46
  ```text
46
- npx --prefer-offline --yes copilotkit@4.24.0 onboard checkpoint --phase awaiting-developer
47
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
47
48
  ```
48
49
 
49
50
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
@@ -53,7 +54,7 @@ If you stop this run, send one short report before you stop. The friction comman
53
54
  the telemetry setting the developer already chose, so it needs no separate question.
54
55
 
55
56
  ```text
56
- npx --prefer-offline --yes copilotkit@4.24.0 onboard friction --phase stop --category <slug> --message "<sentences>"
57
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard friction --phase stop --category <slug> --message "<sentences>"
57
58
  ```
58
59
 
59
60
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -83,7 +84,7 @@ status:
83
84
  before the capture, the inspection, and any edit:
84
85
 
85
86
  ```text
86
- npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/blocked-by-plan
87
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/blocked-by-plan
87
88
  ```
88
89
 
89
90
  - `LEARNING_AVAILABILITY_UNAVAILABLE` means the platform did not resolve the answer. It is
@@ -104,7 +105,7 @@ again: it has no answer, so it carries the question forward rather than ending o
104
105
  Before any subagent or project process runs, capture the developer's existing work:
105
106
 
106
107
  ```text
107
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect
108
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect
108
109
  ```
109
110
 
110
111
  Keep the exact protected path list it prints and give that list to every subagent. No
@@ -118,20 +119,20 @@ test/dev commands. Prove the current round trip and inspect `/info`.
118
119
  Wait for the inspection subagent to finish. Then report that the inspection came back:
119
120
 
120
121
  ```text
121
- npx --prefer-offline --yes copilotkit@4.24.0 onboard checkpoint --phase research-returned
122
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase research-returned
122
123
  ```
123
124
 
124
125
  If the inspection did not prove the baseline this intent extends, stop here without
125
126
  changing files:
126
127
 
127
128
  ```text
128
- npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/stop
129
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
129
130
  ```
130
131
 
131
132
  When the inspection proved what this intent needs, read the next prompt now, in this turn:
132
133
 
133
134
  ```text
134
- npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/learning/plan
135
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/learning/plan
135
136
  ```
136
137
 
137
138
  That prompt holds the plan, the developer's approval, and the paths the plan changes.
@@ -16,7 +16,7 @@ validation results without secrets.
16
16
  Before you spawn the implementation subagent, take the authorized list from the CLI:
17
17
 
18
18
  ```text
19
- npx --prefer-offline --yes copilotkit@4.24.0 onboard audit
19
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard audit
20
20
  ```
21
21
 
22
22
  From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
@@ -31,11 +31,18 @@ protected path, it must not edit it. It returns a result that starts with `Statu
31
31
  and names the file under Blockers.
32
32
 
33
33
  That result is a question for the developer. The file has not changed yet, so consent can
34
- still go on the record. Name the file and why the work needs it, then end your turn and wait
35
- for the developer's answer. If they allow it, record their answer before any edit:
34
+ still go on the record. Name the file and why the work needs it.
35
+ Before you end your turn to wait for the developer, report the pause:
36
36
 
37
37
  ```text
38
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
38
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
39
+ ```
40
+
41
+ Then end your turn and wait for the developer's answer. If they allow it, record their
42
+ answer before any edit:
43
+
44
+ ```text
45
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
39
46
  ```
40
47
 
41
48
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -47,7 +54,7 @@ feature stop route below.
47
54
  After validation and each repair, run:
48
55
 
49
56
  ```text
50
- npx --prefer-offline --yes copilotkit@4.24.0 onboard audit
57
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard audit
51
58
  ```
52
59
 
53
60
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -58,7 +65,7 @@ with the implementation subagent's `Files changed` section. If that section does
58
65
  the path, accept the developer's external change:
59
66
 
60
67
  ```text
61
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect --accept-external --path <path>
68
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --accept-external --path <path>
62
69
  ```
63
70
 
64
71
  For an env file where the developer placed a requested credential, use
@@ -71,11 +78,11 @@ Run the audit again after each accepted change. If it still fails, or starts
71
78
  with `Status: blocked`, route out and stop:
72
79
 
73
80
  ```text
74
- npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/stop
81
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
75
82
  ```
76
83
 
77
84
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
78
85
  the feature stop route above without further changes.
79
86
 
80
87
  Otherwise run
81
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/open-generative-ui/proof`.
88
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/open-generative-ui/proof`.
@@ -12,7 +12,7 @@ The approval is a wait for the developer. Before you end your turn to wait, repo
12
12
  pause:
13
13
 
14
14
  ```text
15
- npx --prefer-offline --yes copilotkit@4.24.0 onboard checkpoint --phase awaiting-developer
15
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
16
16
  ```
17
17
 
18
18
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
@@ -33,7 +33,7 @@ you plan. Run `onboard protect` again from the target app directory: on the same
33
33
  prints the baseline the run already holds.
34
34
 
35
35
  ```text
36
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect
36
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect
37
37
  ```
38
38
 
39
39
  Then have one read-only subagent repeat the inspection for the findings above, and wait
@@ -52,19 +52,27 @@ Retry through a second retrieval method if needed. Setup is the documented
52
52
  Show a small plan covering that runtime option, the existing provider's renderer path,
53
53
  likely CSP/sandbox implications, tests, and a user-visible generated UI proof. Ask for approval as its own question.
54
54
 
55
+ Before you end your turn to wait for the developer, report the pause:
56
+
57
+ ```text
58
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-plan-approval
59
+ ```
60
+
55
61
  The plan must list every protected path it needs to change under `Authorization requested`,
56
- with one sentence explaining why. Write `None` when it needs none. Authorization covers
57
- changing a protected path, not removing it, so the plan must not delete, move, or rename
58
- one.
62
+ with one sentence explaining why. Write `None` when it needs none. A step that installs or
63
+ upgrades a package changes its manifest, so list a protected manifest such as `package.json`
64
+ or `pyproject.toml`. Its consent covers its lockfile, beside it or at the workspace root.
65
+ Authorization covers changing a protected path, not removing it, so the plan must not
66
+ delete, move, or rename one.
59
67
 
60
68
  After approval, record each approved path before implementation:
61
69
 
62
70
  ```text
63
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
71
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
64
72
  ```
65
73
 
66
74
  If an approved path changed after capture and no implementation step has run, add
67
75
  `--with-prior-change`. Continue only when every result starts with `Status: passed`. Do not
68
76
  authorize a path the approved plan did not list.
69
77
 
70
- Then run `npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/open-generative-ui/implement`.
78
+ Then run `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/open-generative-ui/implement`.
@@ -17,11 +17,18 @@ not edit it. It returns a result that starts with `Status: blocked` and names th
17
17
  Blockers.
18
18
 
19
19
  That result is a question for the developer. The file has not changed yet, so consent can
20
- still go on the record. Name the file and why the fix needs it, then end your turn and wait
21
- for the developer's answer. If they allow it, record their answer before any edit:
20
+ still go on the record. Name the file and why the fix needs it.
21
+ Before you end your turn to wait for the developer, report the pause:
22
22
 
23
23
  ```text
24
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
24
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
25
+ ```
26
+
27
+ Then end your turn and wait for the developer's answer. If they allow it, record their
28
+ answer before any edit:
29
+
30
+ ```text
31
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
25
32
  ```
26
33
 
27
34
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -34,11 +41,11 @@ Report the outcome of each attempt as it ends, before any repair. The command co
34
41
  attempts and the repairs:
35
42
 
36
43
  ```text
37
- npx --prefer-offline --yes copilotkit@4.24.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
44
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
38
45
  ```
39
46
 
40
47
  Use `passed` only for a proved generated UI, `failed` for an attempted proof that failed,
41
- and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.24.0 onboard audit`.
48
+ and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.25.0 onboard audit`.
42
49
  Continue only when it starts with `Status: passed`.
43
50
 
44
51
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -53,9 +60,9 @@ the path and the change the audit reports. Run the audit again after each accept
53
60
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
54
61
 
55
62
  ```text
56
- npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/stop
63
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
57
64
  ```
58
65
 
59
66
  When the audit passes, run
60
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/complete` with the outcome actually
67
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/complete` with the outcome actually
61
68
  observed.
@@ -8,17 +8,18 @@ implementation, and proof subagents, all restricted to the target project direct
8
8
  Run this before anything else in this prompt:
9
9
 
10
10
  ```text
11
- npx --prefer-offline --yes copilotkit@4.24.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
11
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
12
12
  ```
13
13
 
14
14
  Report your product slug, such as `codex` or `claude-code`. The command needs no sign-in,
15
15
  browser, or project. If this run already ran `onboard identify`, skip this step.
16
16
 
17
- - `--model`: copy the model id exactly as your instructions write it. If they name no
18
- exact model id, leave out `--model` rather than guess.
19
- - `--model-family`: your model's family, such as `claude-opus` or `gpt-5`. Give it even
20
- without `--model`, and leave out `--model-family` if you do not know it.
21
- - Never give your product slug as a model or a family.
17
+ - `--model`: copy the model id exactly as your instructions write it. Without an exact
18
+ model id, leave out `--model` rather than guess.
19
+ - `--model-family`: give it even without `--model`. Closest of: `claude-opus`,
20
+ `claude-sonnet`, `claude-haiku`, `gpt-5`, `gemini`, `grok`, `glm`, `minimax`, `mimo`,
21
+ `deepseek`, `qwen`, `kimi`, else the model's series. Leave it out if you do not know it.
22
+ - Never give your product slug as a model, or as an unlisted family.
22
23
 
23
24
  ## Waits, stops, and subagents
24
25
 
@@ -36,13 +37,13 @@ carry on. Keep a read-only assignment read-only. If no subagent works at all, re
36
37
  once:
37
38
 
38
39
  ```text
39
- npx --prefer-offline --yes copilotkit@4.24.0 onboard checkpoint --phase delegation-unavailable
40
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase delegation-unavailable
40
41
  ```
41
42
 
42
43
  Before you end your turn to wait for the developer, report the pause:
43
44
 
44
45
  ```text
45
- npx --prefer-offline --yes copilotkit@4.24.0 onboard checkpoint --phase awaiting-developer
46
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
46
47
  ```
47
48
 
48
49
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
@@ -52,7 +53,7 @@ If you stop this run, send one short report before you stop. The friction comman
52
53
  the telemetry setting the developer already chose, so it needs no separate question.
53
54
 
54
55
  ```text
55
- npx --prefer-offline --yes copilotkit@4.24.0 onboard friction --phase stop --category <slug> --message "<sentences>"
56
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard friction --phase stop --category <slug> --message "<sentences>"
56
57
  ```
57
58
 
58
59
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -66,7 +67,7 @@ one scoped fix, and sends the report itself when no fix is approved.
66
67
  Before any subagent or project process runs, capture the developer's existing work:
67
68
 
68
69
  ```text
69
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect
70
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect
70
71
  ```
71
72
 
72
73
  Keep the exact protected path list it prints and give that list to every subagent. No
@@ -76,26 +77,26 @@ approved authorization before implementation.
76
77
  Before edits, have a research subagent identify the current CopilotKit runtime route,
77
78
  provider/chat component, agent id, package versions, existing middleware, sandbox/CSP
78
79
  constraints, and normal test/dev commands. Prove the existing app first with `/info`,
79
- `npx --prefer-offline --yes copilotkit@4.24.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
80
+ `npx --prefer-offline --yes copilotkit@4.25.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
80
81
  and a real frontend request when browser control is available.
81
82
 
82
83
  Wait for the inspection subagent to finish. Then report that the inspection came back:
83
84
 
84
85
  ```text
85
- npx --prefer-offline --yes copilotkit@4.24.0 onboard checkpoint --phase research-returned
86
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase research-returned
86
87
  ```
87
88
 
88
89
  If the inspection did not prove the baseline this intent extends, stop here without
89
90
  changing files:
90
91
 
91
92
  ```text
92
- npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/stop
93
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
93
94
  ```
94
95
 
95
96
  When the inspection proved what this intent needs, read the next prompt now, in this turn:
96
97
 
97
98
  ```text
98
- npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/open-generative-ui/plan
99
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/open-generative-ui/plan
99
100
  ```
100
101
 
101
102
  That prompt holds the plan, the developer's approval, and the paths the plan changes.
@@ -12,19 +12,20 @@ or rewrite either endpoint. For hosted setup, do not add a speculative URL.
12
12
 
13
13
  An Intelligence runtime requires `identifyUser`, and it usually reads a signed-in session
14
14
  that a CLI request does not carry. That makes the round trip UNKNOWN and the command exit
15
- non-zero on an app that is working. Pass what `identifyUser` reads with a repeatable
16
- `--header "Name: value"`, or record UNKNOWN as the expected result for an auth-gated app.
17
- It is not a defect to repair.
15
+ non-zero on an app that is working. It is not a defect to repair. The proof step proves
16
+ such an app on a thread the app created, with `--thread <id>`, which needs no session. Pass
17
+ `--header "Name: value"` only when the developer offers what `identifyUser` reads, or
18
+ record UNKNOWN as the expected result here.
18
19
 
19
20
  Run focused tests and
20
- `npx --prefer-offline --yes copilotkit@4.24.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
21
+ `npx --prefer-offline --yes copilotkit@4.25.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
21
22
  Repair changed-file failures and record changed paths and secret-safe validation
22
23
  evidence.
23
24
 
24
25
  Before you spawn the implementation subagent, take the authorized list from the CLI:
25
26
 
26
27
  ```text
27
- npx --prefer-offline --yes copilotkit@4.24.0 onboard audit
28
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard audit
28
29
  ```
29
30
 
30
31
  From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
@@ -39,11 +40,18 @@ protected path, it must not edit it. It returns a result that starts with `Statu
39
40
  and names the file under Blockers.
40
41
 
41
42
  That result is a question for the developer. The file has not changed yet, so consent can
42
- still go on the record. Name the file and why the work needs it, then end your turn and wait
43
- for the developer's answer. If they allow it, record their answer before any edit:
43
+ still go on the record. Name the file and why the work needs it.
44
+ Before you end your turn to wait for the developer, report the pause:
44
45
 
45
46
  ```text
46
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
47
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
48
+ ```
49
+
50
+ Then end your turn and wait for the developer's answer. If they allow it, record their
51
+ answer before any edit:
52
+
53
+ ```text
54
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
47
55
  ```
48
56
 
49
57
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -55,7 +63,7 @@ feature stop route below.
55
63
  After validation and each repair, run:
56
64
 
57
65
  ```text
58
- npx --prefer-offline --yes copilotkit@4.24.0 onboard audit
66
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard audit
59
67
  ```
60
68
 
61
69
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -66,7 +74,7 @@ with the implementation subagent's `Files changed` section. If that section does
66
74
  the path, accept the developer's external change:
67
75
 
68
76
  ```text
69
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect --accept-external --path <path>
77
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --accept-external --path <path>
70
78
  ```
71
79
 
72
80
  For an env file where the developer placed a requested credential, use
@@ -79,11 +87,11 @@ Run the audit again after each accepted change. If it still fails, or starts
79
87
  with `Status: blocked`, route out and stop:
80
88
 
81
89
  ```text
82
- npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/stop
90
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
83
91
  ```
84
92
 
85
93
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
86
94
  the feature stop route above without further changes.
87
95
 
88
96
  Otherwise run
89
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/realtime-sync/proof`.
97
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/realtime-sync/proof`.
@@ -12,7 +12,7 @@ The approval is a wait for the developer. Before you end your turn to wait, repo
12
12
  pause:
13
13
 
14
14
  ```text
15
- npx --prefer-offline --yes copilotkit@4.24.0 onboard checkpoint --phase awaiting-developer
15
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
16
16
  ```
17
17
 
18
18
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
@@ -34,7 +34,7 @@ you plan. Run `onboard protect` again from the target app directory: on the same
34
34
  prints the baseline the run already holds.
35
35
 
36
36
  ```text
37
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect
37
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect
38
38
  ```
39
39
 
40
40
  Then have one read-only subagent repeat the inspection for the findings above, and wait
@@ -57,19 +57,27 @@ from explicit developer-owned values. Never derive one from the other. The clien
57
57
  `/api` itself, so an `apiUrl` that already ends in `/api` produces `/api/api/...`. Hosted setup may not
58
58
  need a `wsUrl`. Ask for approval as its own question.
59
59
 
60
+ Before you end your turn to wait for the developer, report the pause:
61
+
62
+ ```text
63
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-plan-approval
64
+ ```
65
+
60
66
  The plan must list every protected path it needs to change under `Authorization requested`,
61
- with one sentence explaining why. Write `None` when it needs none. Authorization covers
62
- changing a protected path, not removing it, so the plan must not delete, move, or rename
63
- one.
67
+ with one sentence explaining why. Write `None` when it needs none. A step that installs or
68
+ upgrades a package changes its manifest, so list a protected manifest such as `package.json`
69
+ or `pyproject.toml`. Its consent covers its lockfile, beside it or at the workspace root.
70
+ Authorization covers changing a protected path, not removing it, so the plan must not
71
+ delete, move, or rename one.
64
72
 
65
73
  After approval, record each approved path before implementation:
66
74
 
67
75
  ```text
68
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
76
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
69
77
  ```
70
78
 
71
79
  If an approved path changed after capture and no implementation step has run, add
72
80
  `--with-prior-change`. Continue only when every result starts with `Status: passed`. Do not
73
81
  authorize a path the approved plan did not list.
74
82
 
75
- Then run `npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/realtime-sync/implement`.
83
+ Then run `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/realtime-sync/implement`.
@@ -19,11 +19,18 @@ not edit it. It returns a result that starts with `Status: blocked` and names th
19
19
  Blockers.
20
20
 
21
21
  That result is a question for the developer. The file has not changed yet, so consent can
22
- still go on the record. Name the file and why the fix needs it, then end your turn and wait
23
- for the developer's answer. If they allow it, record their answer before any edit:
22
+ still go on the record. Name the file and why the fix needs it.
23
+ Before you end your turn to wait for the developer, report the pause:
24
24
 
25
25
  ```text
26
- npx --prefer-offline --yes copilotkit@4.24.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
26
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
27
+ ```
28
+
29
+ Then end your turn and wait for the developer's answer. If they allow it, record their
30
+ answer before any edit:
31
+
32
+ ```text
33
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
27
34
  ```
28
35
 
29
36
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -36,11 +43,11 @@ Report the outcome of each attempt as it ends, before any repair. The command co
36
43
  attempts and the repairs:
37
44
 
38
45
  ```text
39
- npx --prefer-offline --yes copilotkit@4.24.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
46
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
40
47
  ```
41
48
 
42
49
  Use `passed` only for proved two-client sync, `failed` for an attempted proof that failed,
43
- and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.24.0 onboard audit`.
50
+ and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.25.0 onboard audit`.
44
51
  Continue only when it starts with `Status: passed`.
45
52
 
46
53
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -55,8 +62,8 @@ the path and the change the audit reports. Run the audit again after each accept
55
62
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
56
63
 
57
64
  ```text
58
- npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/stop
65
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
59
66
  ```
60
67
 
61
68
  When the audit passes, run
62
- `npx --prefer-offline --yes copilotkit@4.24.0 onboard read feature/complete` with the actual outcome.
69
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/complete` with the actual outcome.