copilotkit 4.15.0 → 4.17.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 (81) hide show
  1. package/README.md +118 -10
  2. package/cli-build-info.json +8 -8
  3. package/index.js +24194 -3483
  4. package/onboarding/index.json +1 -1
  5. package/onboarding/prompts/authenticate/start.md +17 -15
  6. package/onboarding/prompts/conversion/plan.md +3 -3
  7. package/onboarding/prompts/credentials/finalize-plan.md +20 -20
  8. package/onboarding/prompts/credentials/plan.md +21 -21
  9. package/onboarding/prompts/credentials/settle-credentials.md +46 -10
  10. package/onboarding/prompts/credentials/write-plan.md +35 -20
  11. package/onboarding/prompts/fallback/best-effort.md +23 -15
  12. package/onboarding/prompts/feature/a2ui/implement.md +40 -12
  13. package/onboarding/prompts/feature/a2ui/proof.md +29 -9
  14. package/onboarding/prompts/feature/a2ui/start.md +8 -10
  15. package/onboarding/prompts/feature/blocked-by-plan.md +4 -4
  16. package/onboarding/prompts/feature/channels/implement.md +41 -13
  17. package/onboarding/prompts/feature/channels/proof.md +30 -11
  18. package/onboarding/prompts/feature/channels/start.md +11 -9
  19. package/onboarding/prompts/feature/chat-suggestions/implement.md +40 -12
  20. package/onboarding/prompts/feature/chat-suggestions/proof.md +29 -9
  21. package/onboarding/prompts/feature/chat-suggestions/start.md +8 -10
  22. package/onboarding/prompts/feature/complete.md +2 -2
  23. package/onboarding/prompts/feature/learning/implement.md +58 -26
  24. package/onboarding/prompts/feature/learning/proof.md +30 -10
  25. package/onboarding/prompts/feature/learning/start.md +15 -12
  26. package/onboarding/prompts/feature/open-generative-ui/implement.md +41 -13
  27. package/onboarding/prompts/feature/open-generative-ui/proof.md +29 -9
  28. package/onboarding/prompts/feature/open-generative-ui/start.md +8 -10
  29. package/onboarding/prompts/feature/realtime-sync/implement.md +41 -13
  30. package/onboarding/prompts/feature/realtime-sync/proof.md +31 -10
  31. package/onboarding/prompts/feature/realtime-sync/start.md +8 -9
  32. package/onboarding/prompts/feature/rich-threads/implement.md +42 -14
  33. package/onboarding/prompts/feature/rich-threads/proof.md +31 -10
  34. package/onboarding/prompts/feature/rich-threads/start.md +8 -9
  35. package/onboarding/prompts/feature/stop.md +3 -3
  36. package/onboarding/prompts/feature/voice/implement.md +40 -12
  37. package/onboarding/prompts/feature/voice/proof.md +29 -9
  38. package/onboarding/prompts/feature/voice/start.md +8 -9
  39. package/onboarding/prompts/framework/ag2.md +2 -2
  40. package/onboarding/prompts/framework/agno.md +4 -4
  41. package/onboarding/prompts/framework/built-in.md +2 -2
  42. package/onboarding/prompts/framework/claude-sdk-python.md +8 -7
  43. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  44. package/onboarding/prompts/framework/crewai-flows.md +15 -7
  45. package/onboarding/prompts/framework/deep-agents.md +4 -3
  46. package/onboarding/prompts/framework/google-adk.md +7 -7
  47. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  48. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  49. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  50. package/onboarding/prompts/framework/llamaindex.md +4 -4
  51. package/onboarding/prompts/framework/mastra.md +2 -2
  52. package/onboarding/prompts/framework/ms-agent-dotnet.md +2 -2
  53. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
  54. package/onboarding/prompts/framework/ms-agent-python.md +6 -6
  55. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  56. package/onboarding/prompts/framework/strands-python.md +4 -4
  57. package/onboarding/prompts/framework/strands-typescript.md +4 -4
  58. package/onboarding/prompts/frontend/angular.md +3 -3
  59. package/onboarding/prompts/frontend/nextjs.md +16 -3
  60. package/onboarding/prompts/frontend/plan.md +7 -7
  61. package/onboarding/prompts/frontend/react-native.md +2 -2
  62. package/onboarding/prompts/frontend/react-spa.md +2 -2
  63. package/onboarding/prompts/frontend/vue.md +2 -2
  64. package/onboarding/prompts/implementation/build-and-validate.md +67 -28
  65. package/onboarding/prompts/proof/complete.md +21 -14
  66. package/onboarding/prompts/proof/oss-baseline.md +16 -12
  67. package/onboarding/prompts/proof/round-trip.md +33 -22
  68. package/onboarding/prompts/research/gather.md +8 -7
  69. package/onboarding/prompts/research/merge.md +3 -3
  70. package/onboarding/prompts/research/preflight.md +4 -4
  71. package/onboarding/prompts/research/route.md +6 -6
  72. package/onboarding/prompts/starter/clone.md +30 -20
  73. package/onboarding/prompts/stopped/run-failed.md +15 -9
  74. package/onboarding/prompts/subagent/create-plan.md +15 -10
  75. package/onboarding/prompts/subagent/implement-and-validate.md +25 -11
  76. package/onboarding/prompts/subagent/inspect-repository.md +14 -6
  77. package/onboarding/prompts/subagent/prove-oss-baseline.md +11 -4
  78. package/onboarding/prompts/subagent/prove-round-trip.md +48 -14
  79. package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
  80. package/package.json +1 -5
  81. package/release/release-tool.js +222 -46
@@ -15,10 +15,41 @@ Start the app with its documented command. Confirm `/info` reports the expected
15
15
  capability, but do not treat that flag as proof. Record changed paths and validation output
16
16
  without exposing secrets.
17
17
 
18
+ Before you spawn the implementation subagent, take the authorized list from the CLI:
19
+
20
+ ```text
21
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
22
+ ```
23
+
24
+ From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
25
+ no such block means that nothing is authorized. Read only that block now, and decide the
26
+ findings of a failed audit after implementation, with the audit rules below. If this audit
27
+ starts with `Status: blocked`, the CLI cannot supply the list. Report the printed reason and
28
+ take the feature stop route below.
29
+
30
+ Give the implementation subagent the protected path list and the authorized list. Tell it
31
+ this rule: it can change a path on the authorized list. When the work needs any other
32
+ protected path, it must not edit it. It returns a result that starts with `Status: blocked`
33
+ and names the file under Blockers.
34
+
35
+ That result is a question for the developer. The file has not changed yet, so consent can
36
+ still go on the record. Name the file and why the work needs it, then end your turn and wait
37
+ for the developer's answer. If they allow it, record their answer before any edit:
38
+
39
+ ```text
40
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
41
+ ```
42
+
43
+ Continue only when the result starts with `Status: passed`. Run the audit again, take the
44
+ new list from its `Authorized to modify:` block, and spawn a fresh implementation subagent
45
+ with the same handoff and that list. A subagent that already returned cannot pick up consent
46
+ recorded after it was spawned. If you cannot ask, or the developer declines, take the
47
+ feature stop route below.
48
+
18
49
  After validation and each repair, run:
19
50
 
20
51
  ```text
21
- npx --prefer-offline --yes copilotkit@4.15.0 onboard audit
52
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
22
53
  ```
23
54
 
24
55
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -29,33 +60,30 @@ with the implementation subagent's `Files changed` section. If that section does
29
60
  the path, accept the developer's external change:
30
61
 
31
62
  ```text
32
- npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --accept-external --path <path>
63
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-external --path <path>
33
64
  ```
34
65
 
35
66
  For an env file where the developer placed a requested credential, use
36
67
  `onboard protect --accept-credential --path <path>` instead. If the subagent names the path,
37
- or its report does not settle who changed it, ask the developer to allow the unplanned
38
- change. Only after they agree, record their answer:
39
-
40
- ```text
41
- npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
42
- ```
68
+ or its report does not settle who changed it, the change is this run's own, made without
69
+ consent. Do not ask the developer to allow it: the CLI refuses consent for a path that
70
+ already changed. Route out, and name the path and the change the audit reports.
43
71
 
44
- Run the audit again after each accepted or authorized change. If it still fails, or starts
72
+ Run the audit again after each accepted change. If it still fails, or starts
45
73
  with `Status: blocked`, route out and stop:
46
74
 
47
75
  ```text
48
- npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
76
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
49
77
  ```
50
78
 
51
79
  When implementation validation passes, report it:
52
80
 
53
81
  ```text
54
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase build-validated
82
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase build-validated
55
83
  ```
56
84
 
57
85
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
58
86
  the feature stop route above without further changes.
59
87
 
60
88
  Otherwise run
61
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/a2ui/proof`.
89
+ `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/a2ui/proof`.
@@ -16,26 +16,46 @@ is unavailable, report that the browser proof is blocked rather than claiming su
16
16
  Fix proof failures caused by changed files, then repeat the same proof. Do not replace the
17
17
  user's agent response with a hard-coded UI.
18
18
 
19
+ Give the proof subagent the protected path list and the authorized list. Take that list from
20
+ the latest audit, and copy the paths under `Authorized to modify:`. Tell it this rule: a fix
21
+ can change a path on the authorized list. When a fix needs any other protected path, it must
22
+ not edit it. It returns a result that starts with `Status: blocked` and names the file under
23
+ Blockers.
24
+
25
+ That result is a question for the developer. The file has not changed yet, so consent can
26
+ still go on the record. Name the file and why the fix needs it, then end your turn and wait
27
+ for the developer's answer. If they allow it, record their answer before any edit:
28
+
29
+ ```text
30
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
31
+ ```
32
+
33
+ Continue only when the result starts with `Status: passed`. Run the audit again, take the
34
+ new list from its `Authorized to modify:` block, and spawn a fresh proof subagent with the
35
+ same handoff and that list. A subagent that already returned cannot pick up consent recorded
36
+ after it was spawned. If you cannot ask, or the developer declines, take the feature stop
37
+ route below.
38
+
19
39
  Report each attempt at the proof as it ends, counting from one:
20
40
 
21
41
  ```text
22
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase journey-attempted --attempt 1
42
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase journey-attempted --attempt 1
23
43
  ```
24
44
 
25
45
  Report each repair cycle the same way, counting from one:
26
46
 
27
47
  ```text
28
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase repair-attempted --attempt 1
48
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase repair-attempted --attempt 1
29
49
  ```
30
50
 
31
51
  After the final attempt, report the gate exactly once:
32
52
 
33
53
  ```text
34
- npx --prefer-offline --yes copilotkit@4.15.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
54
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
35
55
  ```
36
56
 
37
57
  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 --prefer-offline --yes copilotkit@4.15.0 onboard audit`.
58
+ and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard audit`.
39
59
  Continue only when it starts with `Status: passed`.
40
60
 
41
61
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -43,16 +63,16 @@ with the proof subagent's `Files changed` section. If that section does not name
43
63
  run `onboard protect --accept-external --path <path>`, or
44
64
  `onboard protect --accept-credential --path <path>` for an env file where the developer
45
65
  placed a requested credential. If the subagent names the path, or its report does not settle
46
- who changed it, ask the developer to allow it. Only after they agree, run
47
- `onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`.
48
- Run the audit again after each accepted or authorized change.
66
+ who changed it, the change is this run's own, made without consent. Do not ask the developer
67
+ to allow it: the CLI refuses consent for a path that already changed. Route out, and name
68
+ the path and the change the audit reports. Run the audit again after each accepted change.
49
69
 
50
70
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
51
71
 
52
72
  ```text
53
- npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
73
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
54
74
  ```
55
75
 
56
76
  When the audit passes, run
57
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/complete` with the actual browser-proof
77
+ `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/complete` with the actual browser-proof
58
78
  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 --prefer-offline --yes copilotkit@4.15.0 onboard protect
10
+ npx --prefer-offline --yes copilotkit@4.17.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,15 +22,13 @@ 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 --prefer-offline --yes copilotkit@4.15.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`.
26
- Also drive one existing request through the frontend when browser control is available. If
27
- that baseline is absent or unproved, leave files unchanged, explain that this intent extends
28
- an existing OSS app, and direct the developer to generic `copilotkit onboard start` first.
25
+ `npx --prefer-offline --yes copilotkit@4.17.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`.
26
+ Also drive one existing request through the frontend when browser control is available.
29
27
 
30
28
  Wait for the inspection subagent to finish. Then report that the inspection came back:
31
29
 
32
30
  ```text
33
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase research-returned
31
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase research-returned
34
32
  ```
35
33
 
36
34
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -40,7 +38,7 @@ If the inspection did not prove the baseline this intent extends, stop here with
40
38
  changing files:
41
39
 
42
40
  ```text
43
- npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
41
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
44
42
  ```
45
43
 
46
44
  Do not run `login`, select an Intelligence project, add an Intelligence client, mint a
@@ -64,7 +62,7 @@ one.
64
62
  After approval, record each approved path before implementation:
65
63
 
66
64
  ```text
67
- npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
65
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
68
66
  ```
69
67
 
70
68
  If an approved path changed after capture and no implementation step has run, add
@@ -74,7 +72,7 @@ authorize a path the approved plan did not list.
74
72
  Then report the plan this run is about to implement:
75
73
 
76
74
  ```text
77
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase plan-written
75
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase plan-written
78
76
  ```
79
77
 
80
- Then run `npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/a2ui/implement`.
78
+ Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/a2ui/implement`.
@@ -20,13 +20,13 @@ Tell the developer, in two or three sentences:
20
20
  3. The one action that can change it: check the organization's plan and billing state at
21
21
  https://cloud.copilotkit.ai, or reply to support with the organization name.
22
22
 
23
+ If this run changed files before it stopped, list every path it changed and say whether it
24
+ reverted them. A refusal that arrives after the first edit still owes the developer that
25
+ list.
26
+
23
27
  Then stop. Report nothing else and ask no follow-up question.
24
28
 
25
29
  Do not run `onboard complete`. This run did not complete.
26
30
 
27
31
  Do not file a friction report for this ending. Reading this prompt already reports it, and a
28
32
  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.
@@ -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.15.0 login --json`: the same single streaming
22
+ yourself with `npx --prefer-offline --yes copilotkit@4.17.0 login --json`: the same single streaming
23
23
  session generic onboarding uses. Read its JSON Lines while the process runs. Open the
24
24
  first `authentication_url` exactly once with the operating system's default browser
25
25
  opener, `open` on macOS, `xdg-open` on Linux, `Start-Process` in Windows PowerShell. Your
@@ -75,10 +75,41 @@ writes it, the starters this graph clones are built on it, and its own tooltip
75
75
  names no replacement. Write what the framework node names. Do not rewrite a cloned
76
76
  starter to satisfy this rule, and do not report the page that shows it.
77
77
 
78
+ Before you spawn the implementation subagent, take the authorized list from the CLI:
79
+
80
+ ```text
81
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
82
+ ```
83
+
84
+ From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
85
+ no such block means that nothing is authorized. Read only that block now, and decide the
86
+ findings of a failed audit after implementation, with the audit rules below. If this audit
87
+ starts with `Status: blocked`, the CLI cannot supply the list. Report the printed reason and
88
+ take the feature stop route below.
89
+
90
+ Give the implementation subagent the protected path list and the authorized list. Tell it
91
+ this rule: it can change a path on the authorized list. When the work needs any other
92
+ protected path, it must not edit it. It returns a result that starts with `Status: blocked`
93
+ and names the file under Blockers.
94
+
95
+ That result is a question for the developer. The file has not changed yet, so consent can
96
+ still go on the record. Name the file and why the work needs it, then end your turn and wait
97
+ for the developer's answer. If they allow it, record their answer before any edit:
98
+
99
+ ```text
100
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
101
+ ```
102
+
103
+ Continue only when the result starts with `Status: passed`. Run the audit again, take the
104
+ new list from its `Authorized to modify:` block, and spawn a fresh implementation subagent
105
+ with the same handoff and that list. A subagent that already returned cannot pick up consent
106
+ recorded after it was spawned. If you cannot ask, or the developer declines, take the
107
+ feature stop route below.
108
+
78
109
  After validation and each repair, run:
79
110
 
80
111
  ```text
81
- npx --prefer-offline --yes copilotkit@4.15.0 onboard audit
112
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
82
113
  ```
83
114
 
84
115
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -89,23 +120,20 @@ with the implementation subagent's `Files changed` section. If that section does
89
120
  the path, accept the developer's external change:
90
121
 
91
122
  ```text
92
- npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --accept-external --path <path>
123
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-external --path <path>
93
124
  ```
94
125
 
95
126
  For an env file where the developer placed a requested credential, use
96
127
  `onboard protect --accept-credential --path <path>` instead. If the subagent names the path,
97
- or its report does not settle who changed it, ask the developer to allow the unplanned
98
- change. Only after they agree, record their answer:
99
-
100
- ```text
101
- npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
102
- ```
128
+ or its report does not settle who changed it, the change is this run's own, made without
129
+ consent. Do not ask the developer to allow it: the CLI refuses consent for a path that
130
+ already changed. Route out, and name the path and the change the audit reports.
103
131
 
104
- Run the audit again after each accepted or authorized change. If it still fails, or starts
132
+ Run the audit again after each accepted change. If it still fails, or starts
105
133
  with `Status: blocked`, route out and stop:
106
134
 
107
135
  ```text
108
- npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
136
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
109
137
  ```
110
138
 
111
139
  ## Values this run writes, and the one credential the developer supplies
@@ -141,11 +169,11 @@ variable while every recorded one keeps its value, and run the audit again.
141
169
  When implementation validation passes, report it:
142
170
 
143
171
  ```text
144
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase build-validated
172
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase build-validated
145
173
  ```
146
174
 
147
175
  If validation cannot pass, or this run needs a prerequisite the app does not have, use
148
176
  the feature stop route above without further changes.
149
177
 
150
178
  Otherwise run
151
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/channels/proof`.
179
+ `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/channels/proof`.
@@ -20,26 +20,46 @@ defects and repeat.
20
20
  If a gate cannot run, do not complete this run. Name the gate. Use the feature stop
21
21
  route after the audit rules below.
22
22
 
23
+ Give the proof subagent the protected path list and the authorized list. Take that list from
24
+ the latest audit, and copy the paths under `Authorized to modify:`. Tell it this rule: a fix
25
+ can change a path on the authorized list. When a fix needs any other protected path, it must
26
+ not edit it. It returns a result that starts with `Status: blocked` and names the file under
27
+ Blockers.
28
+
29
+ That result is a question for the developer. The file has not changed yet, so consent can
30
+ still go on the record. Name the file and why the fix needs it, then end your turn and wait
31
+ for the developer's answer. If they allow it, record their answer before any edit:
32
+
33
+ ```text
34
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
35
+ ```
36
+
37
+ Continue only when the result starts with `Status: passed`. Run the audit again, take the
38
+ new list from its `Authorized to modify:` block, and spawn a fresh proof subagent with the
39
+ same handoff and that list. A subagent that already returned cannot pick up consent recorded
40
+ after it was spawned. If you cannot ask, or the developer declines, take the feature stop
41
+ route below.
42
+
23
43
  Report each attempt at the proof as it ends, counting from one:
24
44
 
25
45
  ```text
26
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase journey-attempted --attempt 1
46
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase journey-attempted --attempt 1
27
47
  ```
28
48
 
29
49
  Report each repair cycle the same way, counting from one:
30
50
 
31
51
  ```text
32
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase repair-attempted --attempt 1
52
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase repair-attempted --attempt 1
33
53
  ```
34
54
 
35
55
  After the final attempt, report the gate exactly once:
36
56
 
37
57
  ```text
38
- npx --prefer-offline --yes copilotkit@4.15.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
58
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
39
59
  ```
40
60
 
41
61
  Use `passed` only for a proved mention reply, `failed` for an attempted proof that
42
- failed, and `skipped` when the proof did not run. Then run `npx --prefer-offline --yes copilotkit@4.15.0 onboard audit`.
62
+ failed, and `skipped` when the proof did not run. Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard audit`.
43
63
  Continue only when it starts with `Status: passed`.
44
64
 
45
65
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -47,19 +67,18 @@ with the proof subagent's `Files changed` section. If that section does not name
47
67
  run `onboard protect --accept-external --path <path>`, or
48
68
  `onboard protect --accept-credential --path <path>` for an env file where the developer
49
69
  placed a requested credential. If the subagent names the path, or its report does not settle
50
- who changed it, ask the developer to allow it. Only after they agree, run
51
- `onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`.
52
- Run the audit again after each accepted or authorized change.
70
+ who changed it, the change is this run's own, made without consent. Do not ask the developer
71
+ to allow it: the CLI refuses consent for a path that already changed. Route out, and name
72
+ the path and the change the audit reports. Run the audit again after each accepted change.
53
73
 
54
74
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
55
75
 
56
76
  ```text
57
- npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
77
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
58
78
  ```
59
79
 
60
- When the audit passes and the mention proof passed, record it first with
61
- `onboard proof --step round-trip --outcome passed` as above. Then run
62
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/complete` and complete with
80
+ When the audit passes and the round trip you reported above was `passed`, run
81
+ `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/complete` and complete with
63
82
  `--visual-check channels-proof-passed`. The recorded mention and reply are this run's
64
83
  proof, so no web app check is missing. Use `--visual-check performed` only when a
65
84
  browser drove Slack or Teams web and proved the mention reply. Do not use
@@ -3,11 +3,13 @@
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.15.0 onboard identify --coding-agent <coding-agent-slug>
6
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id>
7
7
  ```
8
8
 
9
- Use your own product's slug, such as `codex` or `claude-code`. This also covers entry
10
- commands that omit `--coding-agent`. It needs no login, browser, or project setup.
9
+ Use your own product's slug, such as `codex` or `claude-code`. For `--model`, give the
10
+ exact model id your instructions name. If they name none, leave out `--model` rather than
11
+ guess. This also covers entry commands that omit `--coding-agent`. It needs no login,
12
+ browser, or project setup.
11
13
 
12
14
  Treat Slack or Teams as the UI for this run. A CopilotKit web app is not required.
13
15
  Empty folders, agent-only folders, and existing CopilotKit apps are all valid starts.
@@ -17,7 +19,7 @@ restricted to the target project.
17
19
  Before any subagent or project process runs, capture the developer's existing work:
18
20
 
19
21
  ```text
20
- npx --prefer-offline --yes copilotkit@4.15.0 onboard protect
22
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard protect
21
23
  ```
22
24
 
23
25
  Keep the exact protected path list it prints and give that list to every subagent. Do not
@@ -47,7 +49,7 @@ This one does not.
47
49
  Wait for the inspection subagent to finish. Then report that the inspection came back:
48
50
 
49
51
  ```text
50
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase research-returned
52
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase research-returned
51
53
  ```
52
54
 
53
55
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -64,7 +66,7 @@ and its install command in the message the developer sees: `nvm install 22` for
64
66
  for Python. Offer a custom headless build as a later path. Then route out:
65
67
 
66
68
  ```text
67
- npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
69
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
68
70
  ```
69
71
 
70
72
  Do not run login, select Intelligence, or create a credential until the developer
@@ -94,7 +96,7 @@ one.
94
96
  After approval, record each approved path before implementation:
95
97
 
96
98
  ```text
97
- npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
99
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
98
100
  ```
99
101
 
100
102
  If an approved path changed after capture and no implementation step has run, add
@@ -104,7 +106,7 @@ authorize a path the approved plan did not list.
104
106
  Then report the plan this run is about to implement:
105
107
 
106
108
  ```text
107
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase plan-written
109
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase plan-written
108
110
  ```
109
111
 
110
- Then run `npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/channels/implement`.
112
+ Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/channels/implement`.
@@ -12,10 +12,41 @@ standalone mock UI.
12
12
 
13
13
  Run focused type/test checks and start the app. Record the changed files and validation.
14
14
 
15
+ Before you spawn the implementation subagent, take the authorized list from the CLI:
16
+
17
+ ```text
18
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
19
+ ```
20
+
21
+ From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
22
+ no such block means that nothing is authorized. Read only that block now, and decide the
23
+ findings of a failed audit after implementation, with the audit rules below. If this audit
24
+ starts with `Status: blocked`, the CLI cannot supply the list. Report the printed reason and
25
+ take the feature stop route below.
26
+
27
+ Give the implementation subagent the protected path list and the authorized list. Tell it
28
+ this rule: it can change a path on the authorized list. When the work needs any other
29
+ protected path, it must not edit it. It returns a result that starts with `Status: blocked`
30
+ and names the file under Blockers.
31
+
32
+ That result is a question for the developer. The file has not changed yet, so consent can
33
+ still go on the record. Name the file and why the work needs it, then end your turn and wait
34
+ for the developer's answer. If they allow it, record their answer before any edit:
35
+
36
+ ```text
37
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
38
+ ```
39
+
40
+ Continue only when the result starts with `Status: passed`. Run the audit again, take the
41
+ new list from its `Authorized to modify:` block, and spawn a fresh implementation subagent
42
+ with the same handoff and that list. A subagent that already returned cannot pick up consent
43
+ recorded after it was spawned. If you cannot ask, or the developer declines, take the
44
+ feature stop route below.
45
+
15
46
  After validation and each repair, run:
16
47
 
17
48
  ```text
18
- npx --prefer-offline --yes copilotkit@4.15.0 onboard audit
49
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
19
50
  ```
20
51
 
21
52
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -26,33 +57,30 @@ with the implementation subagent's `Files changed` section. If that section does
26
57
  the path, accept the developer's external change:
27
58
 
28
59
  ```text
29
- npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --accept-external --path <path>
60
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-external --path <path>
30
61
  ```
31
62
 
32
63
  For an env file where the developer placed a requested credential, use
33
64
  `onboard protect --accept-credential --path <path>` instead. If the subagent names the path,
34
- or its report does not settle who changed it, ask the developer to allow the unplanned
35
- change. Only after they agree, record their answer:
36
-
37
- ```text
38
- npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
39
- ```
65
+ or its report does not settle who changed it, the change is this run's own, made without
66
+ consent. Do not ask the developer to allow it: the CLI refuses consent for a path that
67
+ already changed. Route out, and name the path and the change the audit reports.
40
68
 
41
- Run the audit again after each accepted or authorized change. If it still fails, or starts
69
+ Run the audit again after each accepted change. If it still fails, or starts
42
70
  with `Status: blocked`, route out and stop:
43
71
 
44
72
  ```text
45
- npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
73
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
46
74
  ```
47
75
 
48
76
  When implementation validation passes, report it:
49
77
 
50
78
  ```text
51
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase build-validated
79
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase build-validated
52
80
  ```
53
81
 
54
82
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
55
83
  the feature stop route above without further changes.
56
84
 
57
85
  Otherwise run
58
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/chat-suggestions/proof`.
86
+ `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/chat-suggestions/proof`.
@@ -9,26 +9,46 @@ Do not count a static DOM assertion, a hook return value, or a locally rendered
9
9
  proof. If the changed files caused a failure, repair it and repeat the interaction. Keep
10
10
  project-owned services running.
11
11
 
12
+ Give the proof subagent the protected path list and the authorized list. Take that list from
13
+ the latest audit, and copy the paths under `Authorized to modify:`. Tell it this rule: a fix
14
+ can change a path on the authorized list. When a fix needs any other protected path, it must
15
+ not edit it. It returns a result that starts with `Status: blocked` and names the file under
16
+ Blockers.
17
+
18
+ That result is a question for the developer. The file has not changed yet, so consent can
19
+ still go on the record. Name the file and why the fix needs it, then end your turn and wait
20
+ for the developer's answer. If they allow it, record their answer before any edit:
21
+
22
+ ```text
23
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
24
+ ```
25
+
26
+ Continue only when the result starts with `Status: passed`. Run the audit again, take the
27
+ new list from its `Authorized to modify:` block, and spawn a fresh proof subagent with the
28
+ same handoff and that list. A subagent that already returned cannot pick up consent recorded
29
+ after it was spawned. If you cannot ask, or the developer declines, take the feature stop
30
+ route below.
31
+
12
32
  Report each attempt at the proof as it ends, counting from one:
13
33
 
14
34
  ```text
15
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase journey-attempted --attempt 1
35
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase journey-attempted --attempt 1
16
36
  ```
17
37
 
18
38
  Report each repair cycle the same way, counting from one:
19
39
 
20
40
  ```text
21
- npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase repair-attempted --attempt 1
41
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase repair-attempted --attempt 1
22
42
  ```
23
43
 
24
44
  After the final attempt, report the gate exactly once:
25
45
 
26
46
  ```text
27
- npx --prefer-offline --yes copilotkit@4.15.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
47
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
28
48
  ```
29
49
 
30
50
  Use `passed` only for a proved sent suggestion, `failed` for an attempted proof that failed,
31
- and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.15.0 onboard audit`.
51
+ and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard audit`.
32
52
  Continue only when it starts with `Status: passed`.
33
53
 
34
54
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -36,16 +56,16 @@ with the proof subagent's `Files changed` section. If that section does not name
36
56
  run `onboard protect --accept-external --path <path>`, or
37
57
  `onboard protect --accept-credential --path <path>` for an env file where the developer
38
58
  placed a requested credential. If the subagent names the path, or its report does not settle
39
- who changed it, ask the developer to allow it. Only after they agree, run
40
- `onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`.
41
- Run the audit again after each accepted or authorized change.
59
+ who changed it, the change is this run's own, made without consent. Do not ask the developer
60
+ to allow it: the CLI refuses consent for a path that already changed. Route out, and name
61
+ the path and the change the audit reports. Run the audit again after each accepted change.
42
62
 
43
63
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
44
64
 
45
65
  ```text
46
- npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
66
+ npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
47
67
  ```
48
68
 
49
69
  When the audit passes, run
50
- `npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/complete` with the real browser-proof
70
+ `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/complete` with the real browser-proof
51
71
  outcome.