copilotkit 4.17.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 (81) hide show
  1. package/README.md +127 -5
  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 +12227 -9022
  6. package/onboarding/index.json +1 -1
  7. package/onboarding/prompts/authenticate/start.md +18 -19
  8. package/onboarding/prompts/conversion/plan.md +3 -3
  9. package/onboarding/prompts/credentials/finalize-plan.md +57 -200
  10. package/onboarding/prompts/credentials/plan.md +24 -23
  11. package/onboarding/prompts/credentials/settle-credentials.md +40 -213
  12. package/onboarding/prompts/credentials/write-plan.md +17 -8
  13. package/onboarding/prompts/fallback/best-effort.md +12 -12
  14. package/onboarding/prompts/feature/a2ui/implement.md +7 -7
  15. package/onboarding/prompts/feature/a2ui/proof.md +7 -7
  16. package/onboarding/prompts/feature/a2ui/start.md +53 -9
  17. package/onboarding/prompts/feature/channels/implement.md +8 -8
  18. package/onboarding/prompts/feature/channels/proof.md +7 -7
  19. package/onboarding/prompts/feature/channels/start.md +50 -7
  20. package/onboarding/prompts/feature/chat-suggestions/implement.md +7 -7
  21. package/onboarding/prompts/feature/chat-suggestions/proof.md +7 -7
  22. package/onboarding/prompts/feature/chat-suggestions/start.md +50 -7
  23. package/onboarding/prompts/feature/complete.md +2 -2
  24. package/onboarding/prompts/feature/learning/implement.md +24 -19
  25. package/onboarding/prompts/feature/learning/proof.md +8 -8
  26. package/onboarding/prompts/feature/learning/start.md +43 -20
  27. package/onboarding/prompts/feature/open-generative-ui/implement.md +7 -7
  28. package/onboarding/prompts/feature/open-generative-ui/proof.md +7 -7
  29. package/onboarding/prompts/feature/open-generative-ui/start.md +50 -7
  30. package/onboarding/prompts/feature/realtime-sync/implement.md +8 -8
  31. package/onboarding/prompts/feature/realtime-sync/proof.md +7 -7
  32. package/onboarding/prompts/feature/realtime-sync/start.md +49 -6
  33. package/onboarding/prompts/feature/rich-threads/implement.md +9 -9
  34. package/onboarding/prompts/feature/rich-threads/proof.md +7 -7
  35. package/onboarding/prompts/feature/rich-threads/start.md +49 -6
  36. package/onboarding/prompts/feature/stop.md +5 -5
  37. package/onboarding/prompts/feature/voice/implement.md +7 -7
  38. package/onboarding/prompts/feature/voice/proof.md +7 -7
  39. package/onboarding/prompts/feature/voice/start.md +50 -7
  40. package/onboarding/prompts/framework/ag2.md +2 -2
  41. package/onboarding/prompts/framework/agno.md +2 -2
  42. package/onboarding/prompts/framework/built-in.md +2 -2
  43. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  44. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  45. package/onboarding/prompts/framework/crewai-flows.md +2 -2
  46. package/onboarding/prompts/framework/deep-agents.md +2 -2
  47. package/onboarding/prompts/framework/google-adk.md +2 -2
  48. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  49. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  50. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  51. package/onboarding/prompts/framework/llamaindex.md +2 -2
  52. package/onboarding/prompts/framework/mastra.md +2 -2
  53. package/onboarding/prompts/framework/ms-agent-dotnet.md +2 -2
  54. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
  55. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  56. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  57. package/onboarding/prompts/framework/strands-python.md +2 -2
  58. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  59. package/onboarding/prompts/frontend/angular.md +3 -3
  60. package/onboarding/prompts/frontend/nextjs.md +3 -3
  61. package/onboarding/prompts/frontend/plan.md +9 -8
  62. package/onboarding/prompts/frontend/react-native.md +2 -2
  63. package/onboarding/prompts/frontend/react-spa.md +2 -2
  64. package/onboarding/prompts/frontend/vue.md +2 -2
  65. package/onboarding/prompts/implementation/build-and-validate.md +19 -20
  66. package/onboarding/prompts/proof/complete.md +11 -11
  67. package/onboarding/prompts/proof/oss-baseline.md +5 -5
  68. package/onboarding/prompts/proof/round-trip.md +16 -15
  69. package/onboarding/prompts/research/gather.md +6 -6
  70. package/onboarding/prompts/research/merge.md +3 -3
  71. package/onboarding/prompts/research/preflight.md +4 -4
  72. package/onboarding/prompts/research/route.md +5 -5
  73. package/onboarding/prompts/starter/clone.md +8 -7
  74. package/onboarding/prompts/stopped/run-failed.md +4 -4
  75. package/onboarding/prompts/subagent/create-plan.md +10 -1
  76. package/onboarding/prompts/subagent/inspect-repository.md +9 -2
  77. package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
  78. package/onboarding/prompts/subagent/prove-round-trip.md +47 -17
  79. package/onboarding/prompts/unsupported/no-validated-path.md +4 -4
  80. package/package.json +1 -1
  81. package/release/release-tool.js +19 -5
@@ -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.17.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
@@ -78,7 +78,7 @@ starter to satisfy this rule, and do not report the page that shows it.
78
78
  Before you spawn the implementation subagent, take the authorized list from the CLI:
79
79
 
80
80
  ```text
81
- npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
81
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard audit
82
82
  ```
83
83
 
84
84
  From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
@@ -97,7 +97,7 @@ still go on the record. Name the file and why the work needs it, then end your t
97
97
  for the developer's answer. If they allow it, record their answer before any edit:
98
98
 
99
99
  ```text
100
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
100
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
101
101
  ```
102
102
 
103
103
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -109,7 +109,7 @@ feature stop route below.
109
109
  After validation and each repair, run:
110
110
 
111
111
  ```text
112
- npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
112
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard audit
113
113
  ```
114
114
 
115
115
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -120,7 +120,7 @@ with the implementation subagent's `Files changed` section. If that section does
120
120
  the path, accept the developer's external change:
121
121
 
122
122
  ```text
123
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-external --path <path>
123
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --accept-external --path <path>
124
124
  ```
125
125
 
126
126
  For an env file where the developer placed a requested credential, use
@@ -133,7 +133,7 @@ Run the audit again after each accepted change. If it still fails, or starts
133
133
  with `Status: blocked`, route out and stop:
134
134
 
135
135
  ```text
136
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
136
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
137
137
  ```
138
138
 
139
139
  ## Values this run writes, and the one credential the developer supplies
@@ -169,11 +169,11 @@ variable while every recorded one keeps its value, and run the audit again.
169
169
  When implementation validation passes, report it:
170
170
 
171
171
  ```text
172
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase build-validated
172
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase build-validated
173
173
  ```
174
174
 
175
175
  If validation cannot pass, or this run needs a prerequisite the app does not have, use
176
176
  the feature stop route above without further changes.
177
177
 
178
178
  Otherwise run
179
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/channels/proof`.
179
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/channels/proof`.
@@ -31,7 +31,7 @@ still go on the record. Name the file and why the fix needs it, then end your tu
31
31
  for the developer's answer. If they allow it, record their answer before any edit:
32
32
 
33
33
  ```text
34
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
34
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
35
35
  ```
36
36
 
37
37
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -43,23 +43,23 @@ route below.
43
43
  Report each attempt at the proof as it ends, counting from one:
44
44
 
45
45
  ```text
46
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase journey-attempted --attempt 1
46
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase journey-attempted --attempt 1
47
47
  ```
48
48
 
49
49
  Report each repair cycle the same way, counting from one:
50
50
 
51
51
  ```text
52
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase repair-attempted --attempt 1
52
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase repair-attempted --attempt 1
53
53
  ```
54
54
 
55
55
  After the final attempt, report the gate exactly once:
56
56
 
57
57
  ```text
58
- npx --prefer-offline --yes copilotkit@4.17.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>
59
59
  ```
60
60
 
61
61
  Use `passed` only for a proved mention reply, `failed` for an attempted proof that
62
- failed, and `skipped` when the proof did not run. Then run `npx --prefer-offline --yes copilotkit@4.17.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`.
63
63
  Continue only when it starts with `Status: passed`.
64
64
 
65
65
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -74,11 +74,11 @@ the path and the change the audit reports. Run the audit again after each accept
74
74
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
75
75
 
76
76
  ```text
77
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
77
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
78
78
  ```
79
79
 
80
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
81
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/complete` and complete with
82
82
  `--visual-check channels-proof-passed`. The recorded mention and reply are this run's
83
83
  proof, so no web app check is missing. Use `--visual-check performed` only when a
84
84
  browser drove Slack or Teams web and proved the mention reply. Do not use
@@ -3,7 +3,7 @@
3
3
  First, report your coding agent identity using the same command as generic onboarding:
4
4
 
5
5
  ```text
6
- npx --prefer-offline --yes copilotkit@4.17.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id>
6
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id>
7
7
  ```
8
8
 
9
9
  Use your own product's slug, such as `codex` or `claude-code`. For `--model`, give the
@@ -16,10 +16,53 @@ Empty folders, agent-only folders, and existing CopilotKit apps are all valid st
16
16
  Orchestrate with separate read-only, implementation, and proof subagents, each
17
17
  restricted to the target project.
18
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
+
19
62
  Before any subagent or project process runs, capture the developer's existing work:
20
63
 
21
64
  ```text
22
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect
65
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect
23
66
  ```
24
67
 
25
68
  Keep the exact protected path list it prints and give that list to every subagent. Do not
@@ -49,7 +92,7 @@ This one does not.
49
92
  Wait for the inspection subagent to finish. Then report that the inspection came back:
50
93
 
51
94
  ```text
52
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase research-returned
95
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase research-returned
53
96
  ```
54
97
 
55
98
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -66,7 +109,7 @@ and its install command in the message the developer sees: `nvm install 22` for
66
109
  for Python. Offer a custom headless build as a later path. Then route out:
67
110
 
68
111
  ```text
69
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
112
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
70
113
  ```
71
114
 
72
115
  Do not run login, select Intelligence, or create a credential until the developer
@@ -96,7 +139,7 @@ one.
96
139
  After approval, record each approved path before implementation:
97
140
 
98
141
  ```text
99
- npx --prefer-offline --yes copilotkit@4.17.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>"
100
143
  ```
101
144
 
102
145
  If an approved path changed after capture and no implementation step has run, add
@@ -106,7 +149,7 @@ authorize a path the approved plan did not list.
106
149
  Then report the plan this run is about to implement:
107
150
 
108
151
  ```text
109
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase plan-written
152
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase plan-written
110
153
  ```
111
154
 
112
- Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/channels/implement`.
155
+ Then run `npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/channels/implement`.
@@ -15,7 +15,7 @@ Run focused type/test checks and start the app. Record the changed files and val
15
15
  Before you spawn the implementation subagent, take the authorized list from the CLI:
16
16
 
17
17
  ```text
18
- npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
18
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard audit
19
19
  ```
20
20
 
21
21
  From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
@@ -34,7 +34,7 @@ still go on the record. Name the file and why the work needs it, then end your t
34
34
  for the developer's answer. If they allow it, record their answer before any edit:
35
35
 
36
36
  ```text
37
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
37
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
38
38
  ```
39
39
 
40
40
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -46,7 +46,7 @@ feature stop route below.
46
46
  After validation and each repair, run:
47
47
 
48
48
  ```text
49
- npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
49
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard audit
50
50
  ```
51
51
 
52
52
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -57,7 +57,7 @@ with the implementation subagent's `Files changed` section. If that section does
57
57
  the path, accept the developer's external change:
58
58
 
59
59
  ```text
60
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-external --path <path>
60
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --accept-external --path <path>
61
61
  ```
62
62
 
63
63
  For an env file where the developer placed a requested credential, use
@@ -70,17 +70,17 @@ Run the audit again after each accepted change. If it still fails, or starts
70
70
  with `Status: blocked`, route out and stop:
71
71
 
72
72
  ```text
73
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
73
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
74
74
  ```
75
75
 
76
76
  When implementation validation passes, report it:
77
77
 
78
78
  ```text
79
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase build-validated
79
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase build-validated
80
80
  ```
81
81
 
82
82
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
83
83
  the feature stop route above without further changes.
84
84
 
85
85
  Otherwise run
86
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/chat-suggestions/proof`.
86
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/chat-suggestions/proof`.
@@ -20,7 +20,7 @@ still go on the record. Name the file and why the fix needs it, then end your tu
20
20
  for the developer's answer. If they allow it, record their answer before any edit:
21
21
 
22
22
  ```text
23
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
23
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
24
24
  ```
25
25
 
26
26
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -32,23 +32,23 @@ route below.
32
32
  Report each attempt at the proof as it ends, counting from one:
33
33
 
34
34
  ```text
35
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase journey-attempted --attempt 1
35
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase journey-attempted --attempt 1
36
36
  ```
37
37
 
38
38
  Report each repair cycle the same way, counting from one:
39
39
 
40
40
  ```text
41
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase repair-attempted --attempt 1
41
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase repair-attempted --attempt 1
42
42
  ```
43
43
 
44
44
  After the final attempt, report the gate exactly once:
45
45
 
46
46
  ```text
47
- npx --prefer-offline --yes copilotkit@4.17.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>
48
48
  ```
49
49
 
50
50
  Use `passed` only for a proved sent suggestion, `failed` for an attempted proof that failed,
51
- and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard audit`.
51
+ and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.18.0 onboard audit`.
52
52
  Continue only when it starts with `Status: passed`.
53
53
 
54
54
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -63,9 +63,9 @@ the path and the change the audit reports. Run the audit again after each accept
63
63
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
64
64
 
65
65
  ```text
66
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
66
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
67
67
  ```
68
68
 
69
69
  When the audit passes, run
70
- `npx --prefer-offline --yes copilotkit@4.17.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
71
71
  outcome.
@@ -3,10 +3,53 @@
3
3
  Treat this as an additive OSS chat-surface feature. Delegate repository inspection,
4
4
  implementation, and proof to separate subagents and keep all work inside the target project.
5
5
 
6
+ ## Waits, stops, and subagents
7
+
8
+ A run that starts here has not read these rules yet, so they come first. They cover this
9
+ prompt and every later one.
10
+
11
+ Spawning a subagent returns almost at once. That return is the dispatch succeeding, not the
12
+ work finishing: the result reaches you as a notification, or with the dispatch itself where
13
+ your harness works that way. Do the work that does not depend on the result, then end your
14
+ turn and wait for the result. That wait is a pause. Do not sleep or poll.
15
+
16
+ A subagent that returns no usable result failed in your harness, not in this graph. Every
17
+ assignment here is work you can do yourself, slower, so run that assignment yourself and
18
+ carry on. Keep a read-only assignment read-only. If no subagent works at all, report it
19
+ once:
20
+
21
+ ```text
22
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase delegation-unavailable
23
+ ```
24
+
25
+ Before you end your turn to wait for the developer, report the pause:
26
+
27
+ ```text
28
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase awaiting-developer
29
+ ```
30
+
31
+ A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
32
+ When the answer or the result arrives, continue from the step that paused.
33
+
34
+ If you stop this run, send one short report before you stop. The friction command follows
35
+ the telemetry setting the developer already chose, so it needs no separate question.
36
+
37
+ ```text
38
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --phase stop --category <slug> --message "<sentences>"
39
+ ```
40
+
41
+ `--message` takes one or two sentences: the step you stopped at and what stopped it.
42
+ Pick the category that fits from docs-missing, docs-wrong, docs-sequential, cli-gap,
43
+ sdk-gap, environment, port-collision, credential, validation-loop, and other. Leave
44
+ --cost-seconds off. Send no secrets, source code, logs, or command output. A refused report
45
+ is not a failed step: reword it and send it again, or stop without a report. A stop that
46
+ routes to `feature/stop` sends no report here: that prompt first asks the developer about
47
+ one scoped fix, and sends the report itself when no fix is approved.
48
+
6
49
  Before any subagent or project process runs, capture the developer's existing work:
7
50
 
8
51
  ```text
9
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect
52
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect
10
53
  ```
11
54
 
12
55
  Keep the exact protected path list it prints and give that list to every subagent. No
@@ -15,13 +58,13 @@ approved authorization before implementation.
15
58
 
16
59
  Before edits, identify the current CopilotKit provider, chat component, message lifecycle,
17
60
  agent id, package version, and test/dev commands. Prove the existing OSS round trip with
18
- `/info`, `npx --prefer-offline --yes copilotkit@4.17.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
61
+ `/info`, `npx --prefer-offline --yes copilotkit@4.18.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
19
62
  and one real frontend request when browser control is available.
20
63
 
21
64
  Wait for the inspection subagent to finish. Then report that the inspection came back:
22
65
 
23
66
  ```text
24
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase research-returned
67
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase research-returned
25
68
  ```
26
69
 
27
70
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -31,7 +74,7 @@ If the inspection did not prove the baseline this intent extends, stop here with
31
74
  changing files:
32
75
 
33
76
  ```text
34
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
77
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
35
78
  ```
36
79
 
37
80
  Do not run login, provision Intelligence, request a credential, replace the agent, or alter
@@ -53,7 +96,7 @@ one.
53
96
  After approval, record each approved path before implementation:
54
97
 
55
98
  ```text
56
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
99
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
57
100
  ```
58
101
 
59
102
  If an approved path changed after capture and no implementation step has run, add
@@ -63,7 +106,7 @@ authorize a path the approved plan did not list.
63
106
  Then report the plan this run is about to implement:
64
107
 
65
108
  ```text
66
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase plan-written
109
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase plan-written
67
110
  ```
68
111
 
69
- Then run `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/chat-suggestions/implement`.
112
+ Then run `npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/chat-suggestions/implement`.
@@ -3,7 +3,7 @@
3
3
  Use the outcome the proof step observed. Run:
4
4
 
5
5
  ```text
6
- npx --prefer-offline --yes copilotkit@4.17.0 onboard complete --visual-check <performed|skipped-no-browser-tool|channels-proof-passed|failed>
6
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard complete --visual-check <performed|skipped-no-browser-tool|channels-proof-passed|failed>
7
7
  ```
8
8
 
9
9
  Use `channels-proof-passed` for a Slack or Teams run that recorded a passed round-trip proof
@@ -20,7 +20,7 @@ Before `onboard complete`, send the friction this run mentioned to the developer
20
20
  report each, at most four, costliest first:
21
21
 
22
22
  ```text
23
- npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
23
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
24
24
  ```
25
25
 
26
26
  Put one or two sentences in `--message`, with no secrets, source, or logs. Pick the
@@ -12,12 +12,12 @@ resolve, a container id that never resolves, an audit that still fails or is blo
12
12
  cannot be cleared, validation that cannot pass, and an intent that needs a prerequisite the
13
13
  app does not have. Each one stops onboarding for a developer who has already approved a
14
14
  plan. Name the exact command, id, and error code that stopped you: a report that names only
15
- the step cannot be acted on. Send one short report before you stop. Run the friction
16
- command without another developer question. Do not ask the developer about telemetry: the
17
- command applies the setting they already have.
15
+ the step cannot be acted on. Send one short report before you stop. The friction command
16
+ follows the telemetry setting the developer already chose, so it needs no separate
17
+ question.
18
18
 
19
19
  ```text
20
- npx --prefer-offline --yes copilotkit@4.17.0 onboard friction --phase stop --category <slug> --message "<sentences>"
20
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --phase stop --category <slug> --message "<sentences>"
21
21
  ```
22
22
 
23
23
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -36,6 +36,11 @@ scoped fix, and sends the report itself when no fix is approved.
36
36
 
37
37
  After the project is selected, settle the container from the terminal.
38
38
 
39
+ The `learning containers` commands and `project select` need a CLI sign-in. A project API
40
+ key in `.env` does not replace it, even when the app already authenticates with that key:
41
+ the key serves the app's runtime only. So `AUTH_FAILED` from these commands means sign in
42
+ with `login --json`, not look for another credential.
43
+
39
44
  Whichever of the two reads below runs first also answers the entitlement question, because
40
45
  a read carries the same availability gate as the create. Read `status` and `error.code`
41
46
  from its payload. Route on the code rather than on the exit status.
@@ -44,7 +49,7 @@ settled refusal rather than a missing baseline, so stop here, before any file ch
44
49
  take its own ending:
45
50
 
46
51
  ```text
47
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/blocked-by-plan
52
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/blocked-by-plan
48
53
  ```
49
54
 
50
55
  `LEARNING_AVAILABILITY_UNAVAILABLE` means the platform did not resolve the answer. It is
@@ -58,7 +63,7 @@ then, so the read below is where its refusal surfaces.
58
63
  When the plan or the repository already names an id, ask about that one id and nothing else:
59
64
 
60
65
  ```text
61
- npx --prefer-offline --yes copilotkit@4.17.0 learning containers get <id> --json
66
+ npx --prefer-offline --yes copilotkit@4.18.0 learning containers get <id> --json
62
67
  ```
63
68
 
64
69
  One call answers it, and no list is needed.
@@ -66,7 +71,7 @@ One call answers it, and no list is needed.
66
71
  When no id is in hand, survey what the project holds:
67
72
 
68
73
  ```text
69
- npx --prefer-offline --yes copilotkit@4.17.0 learning containers list --json
74
+ npx --prefer-offline --yes copilotkit@4.18.0 learning containers list --json
70
75
  ```
71
76
 
72
77
  One call returns at most 500 containers. When `nextCursor` in the result is not null, read
@@ -77,7 +82,7 @@ second container for work the first one already covers.
77
82
  Report what the read found before asking anyone anything:
78
83
 
79
84
  ```text
80
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase container-surveyed
85
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase container-surveyed
81
86
  ```
82
87
 
83
88
  Everything after this waits on a person, so a run that stops past this point stopped on a
@@ -98,7 +103,7 @@ user, so the callback can return a different id per tier or per customer.
98
103
  Ask the CLI for the id rather than spelling one yourself:
99
104
 
100
105
  ```text
101
- npx --prefer-offline --yes copilotkit@4.17.0 learning containers default-id --json
106
+ npx --prefer-offline --yes copilotkit@4.18.0 learning containers default-id --json
102
107
  ```
103
108
 
104
109
  It derives the project-scoped id from the selected project's slug, reads the local project
@@ -112,7 +117,7 @@ run that spells the id differently gives one project two containers, each below
112
117
  above on its own. One command is what keeps the two spellings identical.
113
118
 
114
119
  ```text
115
- npx --prefer-offline --yes copilotkit@4.17.0 learning containers create --id <id> --name <name> --json
120
+ npx --prefer-offline --yes copilotkit@4.18.0 learning containers create --id <id> --name <name> --json
116
121
  ```
117
122
 
118
123
  An id already in use answers `LEARNING_CONTAINER_ALREADY_EXISTS`. That is a container to
@@ -127,7 +132,7 @@ or a guessed id.
127
132
  Then report that the container is settled, before any edit:
128
133
 
129
134
  ```text
130
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase container-settled
135
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase container-settled
131
136
  ```
132
137
 
133
138
  Everything above happens between two prompts, so a run that stopped on a developer who could
@@ -148,13 +153,13 @@ non-zero on an app that is working. Pass what `identifyUser` reads with a repeat
148
153
  It is not a defect to repair.
149
154
 
150
155
  Run focused tests and
151
- `npx --prefer-offline --yes copilotkit@4.17.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
156
+ `npx --prefer-offline --yes copilotkit@4.18.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
152
157
  Repair changed-file failures and record secret-safe evidence.
153
158
 
154
159
  Before you spawn the implementation subagent, take the authorized list from the CLI:
155
160
 
156
161
  ```text
157
- npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
162
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard audit
158
163
  ```
159
164
 
160
165
  From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
@@ -173,7 +178,7 @@ still go on the record. Name the file and why the work needs it, then end your t
173
178
  for the developer's answer. If they allow it, record their answer before any edit:
174
179
 
175
180
  ```text
176
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
181
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
177
182
  ```
178
183
 
179
184
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -185,7 +190,7 @@ feature stop route below.
185
190
  After validation and each repair, run:
186
191
 
187
192
  ```text
188
- npx --prefer-offline --yes copilotkit@4.17.0 onboard audit
193
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard audit
189
194
  ```
190
195
 
191
196
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -196,7 +201,7 @@ with the implementation subagent's `Files changed` section. If that section does
196
201
  the path, accept the developer's external change:
197
202
 
198
203
  ```text
199
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --accept-external --path <path>
204
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --accept-external --path <path>
200
205
  ```
201
206
 
202
207
  For an env file where the developer placed a requested credential, use
@@ -210,17 +215,17 @@ with `Status: blocked`, route out and stop. Route out the same way when
210
215
  `--accept-credential` refuses because it names a lost variable:
211
216
 
212
217
  ```text
213
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
218
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
214
219
  ```
215
220
 
216
221
  When implementation validation passes, report it:
217
222
 
218
223
  ```text
219
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase build-validated
224
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase build-validated
220
225
  ```
221
226
 
222
227
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
223
228
  the feature stop route above without further changes.
224
229
 
225
230
  Otherwise run
226
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/learning/proof`.
231
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/learning/proof`.
@@ -7,7 +7,7 @@ Container. Confirm the thread remains associated with the expected user.
7
7
  One command decides it:
8
8
 
9
9
  ```text
10
- npx --prefer-offline --yes copilotkit@4.17.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --expect-learning-container <id> --json
10
+ npx --prefer-offline --yes copilotkit@4.18.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --expect-learning-container <id> --json
11
11
  ```
12
12
 
13
13
  It reads the thread back from the platform, so it answers for any runtime mount, and it
@@ -40,7 +40,7 @@ still go on the record. Name the file and why the fix needs it, then end your tu
40
40
  for the developer's answer. If they allow it, record their answer before any edit:
41
41
 
42
42
  ```text
43
- npx --prefer-offline --yes copilotkit@4.17.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
43
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
44
44
  ```
45
45
 
46
46
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -52,24 +52,24 @@ route below.
52
52
  Report each attempt at the proof as it ends, counting from one:
53
53
 
54
54
  ```text
55
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase journey-attempted --attempt 1
55
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase journey-attempted --attempt 1
56
56
  ```
57
57
 
58
58
  Report each repair cycle the same way, counting from one:
59
59
 
60
60
  ```text
61
- npx --prefer-offline --yes copilotkit@4.17.0 onboard checkpoint --phase repair-attempted --attempt 1
61
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase repair-attempted --attempt 1
62
62
  ```
63
63
 
64
64
  After the final attempt, report the gate exactly once:
65
65
 
66
66
  ```text
67
- npx --prefer-offline --yes copilotkit@4.17.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
67
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
68
68
  ```
69
69
 
70
70
  Use `passed` only for a proved Container assignment, `failed` for an attempted proof that
71
71
  failed, and `skipped` when the proof could not run. Then run
72
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard audit`. Continue only when it starts with
72
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard audit`. Continue only when it starts with
73
73
  `Status: passed`.
74
74
 
75
75
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -84,9 +84,9 @@ the path and the change the audit reports. Run the audit again after each accept
84
84
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
85
85
 
86
86
  ```text
87
- npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/stop
87
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/stop
88
88
  ```
89
89
 
90
90
  When the audit passes, run
91
- `npx --prefer-offline --yes copilotkit@4.17.0 onboard read feature/complete` with the actual surface
91
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/complete` with the actual surface
92
92
  outcome.