copilotkit 4.16.0 → 4.18.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 (83) hide show
  1. package/README.md +195 -8
  2. package/cli-build-info.json +7 -7
  3. package/exporters/langgraph/README.md +118 -0
  4. package/exporters/langgraph/export_checkpointer.py +125 -0
  5. package/index.js +13890 -9434
  6. package/onboarding/index.json +1 -1
  7. package/onboarding/prompts/authenticate/start.md +24 -23
  8. package/onboarding/prompts/conversion/plan.md +3 -3
  9. package/onboarding/prompts/credentials/finalize-plan.md +56 -199
  10. package/onboarding/prompts/credentials/plan.md +24 -23
  11. package/onboarding/prompts/credentials/settle-credentials.md +40 -177
  12. package/onboarding/prompts/credentials/write-plan.md +47 -23
  13. package/onboarding/prompts/fallback/best-effort.md +25 -17
  14. package/onboarding/prompts/feature/a2ui/implement.md +40 -12
  15. package/onboarding/prompts/feature/a2ui/proof.md +29 -9
  16. package/onboarding/prompts/feature/a2ui/start.md +54 -12
  17. package/onboarding/prompts/feature/blocked-by-plan.md +4 -4
  18. package/onboarding/prompts/feature/channels/implement.md +41 -13
  19. package/onboarding/prompts/feature/channels/proof.md +30 -11
  20. package/onboarding/prompts/feature/channels/start.md +54 -9
  21. package/onboarding/prompts/feature/chat-suggestions/implement.md +40 -12
  22. package/onboarding/prompts/feature/chat-suggestions/proof.md +29 -9
  23. package/onboarding/prompts/feature/chat-suggestions/start.md +51 -10
  24. package/onboarding/prompts/feature/complete.md +2 -2
  25. package/onboarding/prompts/feature/learning/implement.md +66 -29
  26. package/onboarding/prompts/feature/learning/proof.md +30 -10
  27. package/onboarding/prompts/feature/learning/start.md +46 -20
  28. package/onboarding/prompts/feature/open-generative-ui/implement.md +41 -13
  29. package/onboarding/prompts/feature/open-generative-ui/proof.md +29 -9
  30. package/onboarding/prompts/feature/open-generative-ui/start.md +51 -10
  31. package/onboarding/prompts/feature/realtime-sync/implement.md +41 -13
  32. package/onboarding/prompts/feature/realtime-sync/proof.md +31 -10
  33. package/onboarding/prompts/feature/realtime-sync/start.md +51 -9
  34. package/onboarding/prompts/feature/rich-threads/implement.md +42 -14
  35. package/onboarding/prompts/feature/rich-threads/proof.md +31 -10
  36. package/onboarding/prompts/feature/rich-threads/start.md +51 -9
  37. package/onboarding/prompts/feature/stop.md +5 -5
  38. package/onboarding/prompts/feature/voice/implement.md +40 -12
  39. package/onboarding/prompts/feature/voice/proof.md +29 -9
  40. package/onboarding/prompts/feature/voice/start.md +51 -9
  41. package/onboarding/prompts/framework/ag2.md +2 -2
  42. package/onboarding/prompts/framework/agno.md +4 -4
  43. package/onboarding/prompts/framework/built-in.md +2 -2
  44. package/onboarding/prompts/framework/claude-sdk-python.md +8 -7
  45. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  46. package/onboarding/prompts/framework/crewai-flows.md +15 -7
  47. package/onboarding/prompts/framework/deep-agents.md +4 -3
  48. package/onboarding/prompts/framework/google-adk.md +7 -7
  49. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  50. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  51. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  52. package/onboarding/prompts/framework/llamaindex.md +4 -4
  53. package/onboarding/prompts/framework/mastra.md +2 -2
  54. package/onboarding/prompts/framework/ms-agent-dotnet.md +2 -2
  55. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
  56. package/onboarding/prompts/framework/ms-agent-python.md +6 -6
  57. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  58. package/onboarding/prompts/framework/strands-python.md +4 -4
  59. package/onboarding/prompts/framework/strands-typescript.md +4 -4
  60. package/onboarding/prompts/frontend/angular.md +3 -3
  61. package/onboarding/prompts/frontend/nextjs.md +16 -3
  62. package/onboarding/prompts/frontend/plan.md +9 -8
  63. package/onboarding/prompts/frontend/react-native.md +2 -2
  64. package/onboarding/prompts/frontend/react-spa.md +2 -2
  65. package/onboarding/prompts/frontend/vue.md +2 -2
  66. package/onboarding/prompts/implementation/build-and-validate.md +68 -30
  67. package/onboarding/prompts/proof/complete.md +24 -17
  68. package/onboarding/prompts/proof/oss-baseline.md +16 -12
  69. package/onboarding/prompts/proof/round-trip.md +39 -27
  70. package/onboarding/prompts/research/gather.md +8 -7
  71. package/onboarding/prompts/research/merge.md +3 -3
  72. package/onboarding/prompts/research/preflight.md +4 -4
  73. package/onboarding/prompts/research/route.md +6 -6
  74. package/onboarding/prompts/starter/clone.md +16 -12
  75. package/onboarding/prompts/stopped/run-failed.md +11 -11
  76. package/onboarding/prompts/subagent/create-plan.md +24 -10
  77. package/onboarding/prompts/subagent/implement-and-validate.md +25 -11
  78. package/onboarding/prompts/subagent/inspect-repository.md +21 -6
  79. package/onboarding/prompts/subagent/prove-oss-baseline.md +5 -4
  80. package/onboarding/prompts/subagent/prove-round-trip.md +77 -23
  81. package/onboarding/prompts/unsupported/no-validated-path.md +4 -4
  82. package/package.json +1 -5
  83. package/release/release-tool.js +189 -44
@@ -1,13 +1,57 @@
1
1
  # Add A2UI to the existing CopilotKit app
2
2
 
3
3
  Treat this as an additive OSS feature integration, not a new-app scaffold. Act as the
4
- orchestrator and delegate inspection, implementation, and proof to focused subagents.
5
- Work only inside the target project. Do not show internal prompt names to the developer.
4
+ orchestrator and delegate inspection, implementation, and proof to focused subagents. Work
5
+ only inside the target project. Prompt names are this graph's own bookkeeping. Say what the
6
+ run is doing in the developer's words instead.
7
+
8
+ ## Waits, stops, and subagents
9
+
10
+ A run that starts here has not read these rules yet, so they come first. They cover this
11
+ prompt and every later one.
12
+
13
+ Spawning a subagent returns almost at once. That return is the dispatch succeeding, not the
14
+ work finishing: the result reaches you as a notification, or with the dispatch itself where
15
+ your harness works that way. Do the work that does not depend on the result, then end your
16
+ turn and wait for the result. That wait is a pause. Do not sleep or poll.
17
+
18
+ A subagent that returns no usable result failed in your harness, not in this graph. Every
19
+ assignment here is work you can do yourself, slower, so run that assignment yourself and
20
+ carry on. Keep a read-only assignment read-only. If no subagent works at all, report it
21
+ once:
22
+
23
+ ```text
24
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase delegation-unavailable
25
+ ```
26
+
27
+ Before you end your turn to wait for the developer, report the pause:
28
+
29
+ ```text
30
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase awaiting-developer
31
+ ```
32
+
33
+ A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
34
+ When the answer or the result arrives, continue from the step that paused.
35
+
36
+ If you stop this run, send one short report before you stop. The friction command follows
37
+ the telemetry setting the developer already chose, so it needs no separate question.
38
+
39
+ ```text
40
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --phase stop --category <slug> --message "<sentences>"
41
+ ```
42
+
43
+ `--message` takes one or two sentences: the step you stopped at and what stopped it.
44
+ Pick the category that fits from docs-missing, docs-wrong, docs-sequential, cli-gap,
45
+ sdk-gap, environment, port-collision, credential, validation-loop, and other. Leave
46
+ --cost-seconds off. Send no secrets, source code, logs, or command output. A refused report
47
+ is not a failed step: reword it and send it again, or stop without a report. A stop that
48
+ routes to `feature/stop` sends no report here: that prompt first asks the developer about
49
+ one scoped fix, and sends the report itself when no fix is approved.
6
50
 
7
51
  Before any subagent or project process runs, capture the developer's existing work:
8
52
 
9
53
  ```text
10
- npx --prefer-offline --yes copilotkit@4.16.0 onboard protect
54
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect
11
55
  ```
12
56
 
13
57
  Keep the exact protected path list it prints and give that list to every subagent. No
@@ -22,15 +66,13 @@ development/test commands. It must return paths and secret-safe presence checks
22
66
 
23
67
  Require an existing frontend, agent, and CopilotKit round trip. Start only project-owned
24
68
  processes when needed, inspect `/info`, and run
25
- `npx --prefer-offline --yes copilotkit@4.16.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.
69
+ `npx --prefer-offline --yes copilotkit@4.18.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`.
70
+ Also drive one existing request through the frontend when browser control is available.
29
71
 
30
72
  Wait for the inspection subagent to finish. Then report that the inspection came back:
31
73
 
32
74
  ```text
33
- npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase research-returned
75
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase research-returned
34
76
  ```
35
77
 
36
78
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -40,7 +82,7 @@ If the inspection did not prove the baseline this intent extends, stop here with
40
82
  changing files:
41
83
 
42
84
  ```text
43
- npx --prefer-offline --yes copilotkit@4.16.0 onboard read feature/stop
85
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
44
86
  ```
45
87
 
46
88
  Do not run `login`, select an Intelligence project, add an Intelligence client, mint a
@@ -64,7 +106,7 @@ one.
64
106
  After approval, record each approved path before implementation:
65
107
 
66
108
  ```text
67
- npx --prefer-offline --yes copilotkit@4.16.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
109
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
68
110
  ```
69
111
 
70
112
  If an approved path changed after capture and no implementation step has run, add
@@ -74,7 +116,7 @@ authorize a path the approved plan did not list.
74
116
  Then report the plan this run is about to implement:
75
117
 
76
118
  ```text
77
- npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase plan-written
119
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase plan-written
78
120
  ```
79
121
 
80
- Then run `npx --prefer-offline --yes copilotkit@4.16.0 onboard read feature/a2ui/implement`.
122
+ Then run `npx --prefer-offline --yes copilotkit@4.18.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.16.0 login --json`: the same single streaming
22
+ yourself with `npx --prefer-offline --yes copilotkit@4.18.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.18.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.18.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.16.0 onboard audit
112
+ npx --prefer-offline --yes copilotkit@4.18.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.16.0 onboard protect --accept-external --path <path>
123
+ npx --prefer-offline --yes copilotkit@4.18.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.16.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.16.0 onboard read feature/stop
136
+ npx --prefer-offline --yes copilotkit@4.18.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.16.0 onboard checkpoint --phase build-validated
172
+ npx --prefer-offline --yes copilotkit@4.18.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.16.0 onboard read feature/channels/proof`.
179
+ `npx --prefer-offline --yes copilotkit@4.18.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.18.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.16.0 onboard checkpoint --phase journey-attempted --attempt 1
46
+ npx --prefer-offline --yes copilotkit@4.18.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.16.0 onboard checkpoint --phase repair-attempted --attempt 1
52
+ npx --prefer-offline --yes copilotkit@4.18.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.16.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
58
+ npx --prefer-offline --yes copilotkit@4.18.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.16.0 onboard audit`.
62
+ failed, and `skipped` when the proof did not run. Then run `npx --prefer-offline --yes copilotkit@4.18.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.16.0 onboard read feature/stop
77
+ npx --prefer-offline --yes copilotkit@4.18.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.16.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.18.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,21 +3,66 @@
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.16.0 onboard identify --coding-agent <coding-agent-slug>
6
+ npx --prefer-offline --yes copilotkit@4.18.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.
14
16
  Orchestrate with separate read-only, implementation, and proof subagents, each
15
17
  restricted to the target project.
16
18
 
19
+ ## Waits, stops, and subagents
20
+
21
+ A run that starts here has not read these rules yet, so they come first. They cover this
22
+ prompt and every later one.
23
+
24
+ Spawning a subagent returns almost at once. That return is the dispatch succeeding, not the
25
+ work finishing: the result reaches you as a notification, or with the dispatch itself where
26
+ your harness works that way. Do the work that does not depend on the result, then end your
27
+ turn and wait for the result. That wait is a pause. Do not sleep or poll.
28
+
29
+ A subagent that returns no usable result failed in your harness, not in this graph. Every
30
+ assignment here is work you can do yourself, slower, so run that assignment yourself and
31
+ carry on. Keep a read-only assignment read-only. If no subagent works at all, report it
32
+ once:
33
+
34
+ ```text
35
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase delegation-unavailable
36
+ ```
37
+
38
+ Before you end your turn to wait for the developer, report the pause:
39
+
40
+ ```text
41
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase awaiting-developer
42
+ ```
43
+
44
+ A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
45
+ When the answer or the result arrives, continue from the step that paused.
46
+
47
+ If you stop this run, send one short report before you stop. The friction command follows
48
+ the telemetry setting the developer already chose, so it needs no separate question.
49
+
50
+ ```text
51
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --phase stop --category <slug> --message "<sentences>"
52
+ ```
53
+
54
+ `--message` takes one or two sentences: the step you stopped at and what stopped it.
55
+ Pick the category that fits from docs-missing, docs-wrong, docs-sequential, cli-gap,
56
+ sdk-gap, environment, port-collision, credential, validation-loop, and other. Leave
57
+ --cost-seconds off. Send no secrets, source code, logs, or command output. A refused report
58
+ is not a failed step: reword it and send it again, or stop without a report. A stop that
59
+ routes to `feature/stop` sends no report here: that prompt first asks the developer about
60
+ one scoped fix, and sends the report itself when no fix is approved.
61
+
17
62
  Before any subagent or project process runs, capture the developer's existing work:
18
63
 
19
64
  ```text
20
- npx --prefer-offline --yes copilotkit@4.16.0 onboard protect
65
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect
21
66
  ```
22
67
 
23
68
  Keep the exact protected path list it prints and give that list to every subagent. Do not
@@ -47,7 +92,7 @@ This one does not.
47
92
  Wait for the inspection subagent to finish. Then report that the inspection came back:
48
93
 
49
94
  ```text
50
- npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase research-returned
95
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase research-returned
51
96
  ```
52
97
 
53
98
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -64,7 +109,7 @@ and its install command in the message the developer sees: `nvm install 22` for
64
109
  for Python. Offer a custom headless build as a later path. Then route out:
65
110
 
66
111
  ```text
67
- npx --prefer-offline --yes copilotkit@4.16.0 onboard read feature/stop
112
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
68
113
  ```
69
114
 
70
115
  Do not run login, select Intelligence, or create a credential until the developer
@@ -94,7 +139,7 @@ one.
94
139
  After approval, record each approved path before implementation:
95
140
 
96
141
  ```text
97
- npx --prefer-offline --yes copilotkit@4.16.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
142
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
98
143
  ```
99
144
 
100
145
  If an approved path changed after capture and no implementation step has run, add
@@ -104,7 +149,7 @@ authorize a path the approved plan did not list.
104
149
  Then report the plan this run is about to implement:
105
150
 
106
151
  ```text
107
- npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase plan-written
152
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase plan-written
108
153
  ```
109
154
 
110
- Then run `npx --prefer-offline --yes copilotkit@4.16.0 onboard read feature/channels/implement`.
155
+ Then run `npx --prefer-offline --yes copilotkit@4.18.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.18.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.18.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.16.0 onboard audit
49
+ npx --prefer-offline --yes copilotkit@4.18.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.16.0 onboard protect --accept-external --path <path>
60
+ npx --prefer-offline --yes copilotkit@4.18.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.16.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.16.0 onboard read feature/stop
73
+ npx --prefer-offline --yes copilotkit@4.18.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.16.0 onboard checkpoint --phase build-validated
79
+ npx --prefer-offline --yes copilotkit@4.18.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.16.0 onboard read feature/chat-suggestions/proof`.
86
+ `npx --prefer-offline --yes copilotkit@4.18.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.18.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.16.0 onboard checkpoint --phase journey-attempted --attempt 1
35
+ npx --prefer-offline --yes copilotkit@4.18.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.16.0 onboard checkpoint --phase repair-attempted --attempt 1
41
+ npx --prefer-offline --yes copilotkit@4.18.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.16.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
47
+ npx --prefer-offline --yes copilotkit@4.18.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.16.0 onboard audit`.
51
+ and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.18.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.16.0 onboard read feature/stop
66
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
47
67
  ```
48
68
 
49
69
  When the audit passes, run
50
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read feature/complete` with the real browser-proof
70
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/complete` with the real browser-proof
51
71
  outcome.