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,7 +1,7 @@
1
1
  # Prove the existing OSS baseline
2
2
 
3
3
  Do not prove the baseline yourself. Spawn one proof subagent. Tell it to run
4
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read subagent/prove-oss-baseline` first and follow the
4
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read subagent/prove-oss-baseline` first and follow the
5
5
  prompt it returns. If that read fails because the subagent cannot use the shell, stop that
6
6
  subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
7
7
  and the same handoff. Give it the repository findings and exact CLI package spec.
@@ -17,30 +17,34 @@ Wait for the subagent to finish.
17
17
  Record what that proof returned before you route on it:
18
18
 
19
19
  ```text
20
- npx --prefer-offline --yes copilotkit@4.16.0 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
20
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
21
21
  ```
22
22
 
23
- Report the gate whatever it returned. Pass `passed` when the subagent proved a predicate,
24
- and `failed` when it cannot classify the baseline.
25
- A proof that never ran is `skipped`, not failed. The command prints one line and sends
23
+ Report the gate whatever it returned. Use the list below. A proof that never ran is `skipped`, not failed. The command prints one line and sends
26
24
  nothing else.
27
25
 
28
- Add `--predicate` with the number the subagent returned, for a failure or a skip. The
29
- subagent returns all six results, and the number is the only part of them this command
30
- carries. Pass it on a failure with the predicate that failed, and on a skip with the
31
- predicate that was skipped, which is `6` where the preflight recorded no surface control.
26
+ The subagent returns all six results. Report the gate from them this way:
27
+
28
+ - Predicates 1 to 5 true, and predicate 6 passed: `--outcome passed`.
29
+ - Predicates 1 to 5 true, and predicate 6 skipped because the preflight recorded no surface
30
+ control: `--outcome passed`. A skipped predicate 6 does not withhold `both-oss`.
31
+ - Predicates 1 to 5 true, and predicate 6 failed on an available surface:
32
+ `--outcome failed --predicate 6`. That is a baseline failure, not a skip.
33
+ - Any of predicates 1 to 5 failed: `--outcome failed --predicate <the first that failed>`.
34
+ - The proof never ran: `--outcome skipped`.
35
+
32
36
  A passed gate takes no predicate.
33
37
 
34
38
  Do not change project files before this proof ends. Starting existing development
35
39
  processes and their ignored runtime files is allowed.
36
40
 
37
41
  If the subagent proves the `both-oss` predicate, keep its evidence with the plan and run
38
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read conversion/plan`. That project already works.
42
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read conversion/plan`. That project already works.
39
43
  What it needs is the conversion, not a build.
40
44
 
41
45
  If the proof does not establish the baseline, record the starting state
42
46
  `both-copilotkit-unproved` and run
43
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read credentials/plan`. This prompt is served
47
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read credentials/plan`. This prompt is served
44
48
  whenever a project looks like an OSS integration, so a baseline that did not prove is an
45
49
  ordinary starting state rather than a failure. Keep the failing predicate with the plan.
46
50
 
@@ -54,5 +58,5 @@ and the plan preserves it rather than repeating it.
54
58
 
55
59
  If it cannot identify the running process safely, exposes a secret, or finds a baseline
56
60
  failure that cannot be classified, run
57
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read stopped/run-failed`. None of those mean the
61
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`. None of those mean the
58
62
  project is unsupported: they mean this run did not establish what it needed to.
@@ -1,7 +1,7 @@
1
1
  # Prove the user journey
2
2
 
3
3
  Do not do the proof work yourself. Spawn one proof subagent. Tell it to run
4
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read subagent/prove-round-trip` first and follow the
4
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read subagent/prove-round-trip` first and follow the
5
5
  prompt it returns. If that read fails because the subagent cannot use the shell, stop that
6
6
  subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
7
7
  and the same handoff. Give it the selected framework, frontend, model, approved plan, selected
@@ -14,8 +14,8 @@ drives the surface and cannot see your environment, so without that finding it s
14
14
  step discovering what you already know. A subagent told it has no control for the surface
15
15
  this frontend needs reports the skip outcome rather than looking for a way around it.
16
16
 
17
- A run that cloned a starter is the exception. Tell that subagent to finish after
18
- `verify --round-trip` and to open no browser. The cloned code is what this repository's
17
+ A run that cloned a starter is the exception. Tell that subagent that this run cloned a
18
+ starter, to finish after `verify --round-trip`, and to open no browser. The cloned code is what this repository's
19
19
  starter smoke jobs already drive on every change, so opening a browser re-proves in the
20
20
  developer's run what those jobs prove before the starter ships, and it is the most
21
21
  expensive step in this setup. `verify --round-trip` reads the answer back off the thread,
@@ -33,21 +33,22 @@ pass the time.
33
33
  Report each attempt at the journey as it ends, counting from one:
34
34
 
35
35
  ```text
36
- npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase journey-attempted --attempt 1
36
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase journey-attempted --attempt 1
37
37
  ```
38
38
 
39
39
  Record what that proof returned before you route on it:
40
40
 
41
41
  ```text
42
- npx --prefer-offline --yes copilotkit@4.16.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
42
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
43
43
  ```
44
44
 
45
- Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. The
46
- command prints one line and sends nothing else. Where a repair cycle runs the proof again,
45
+ Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. A
46
+ round trip that `verify --round-trip` ran and saw fail is `failed`, and the command refuses
47
+ to record it as `skipped`. The command prints one line and sends nothing else. Where a repair cycle runs the proof again,
47
48
  record each attempt as it ends.
48
49
 
49
50
  For every protected-path audit in this prompt, run
50
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard audit` from the target app directory. If its result
51
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard audit` from the target app directory. If its result
51
52
  starts with `Status: blocked`, report the printed reason and use the route-out rules below.
52
53
  A blocked audit proved nothing changed and is not a preservation failure. If a
53
54
  protected-path audit reports a changed path, decide it the way the implementation prompt
@@ -56,7 +57,7 @@ returns none, so a finding with no Files changed section to test against routes
56
57
  path one of those sections names is this run's own change and routes out too. Accept a
57
58
  path only when a section this run collected covers the step that wrote it and does not
58
59
  name it:
59
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard protect --accept-external --path <path>`. Then run
60
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --accept-external --path <path>`. Then run
60
61
  the audit again and name the path in the closing summary. Never repair, reset, or revert a
61
62
  protected path.
62
63
 
@@ -64,14 +65,15 @@ That holds for a repair cycle too. When the fix for a failing check lands on a p
64
65
  path, the path is still the developer's, however right the diagnosis is and however small
65
66
  the fix. Reading the file never settles who wrote it. Ask the developer to allow the
66
67
  change, and record their answer with
67
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
68
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
68
69
  or route out. Never repair it, and never send it to a repair worker.
69
70
 
70
71
  If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
71
72
  `proof/complete` only if that audit passes. After the audit passes, run
72
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read proof/complete`. A performed surface outcome with
73
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read proof/complete`. A performed surface outcome with
73
74
  the full round trip is core success even if a continued-development tool fails. A skipped
74
- surface outcome still enters `proof/complete` so the CLI records the blocked result. Do not
75
+ surface outcome still enters `proof/complete` so the CLI records the blocked result.
76
+ `skipped-cloned-starter` is the exception: the CLI records that run as complete. Do not
75
77
  describe a skipped surface as proved. Keep the Skills and MCP results separate from the proof
76
78
  result.
77
79
 
@@ -85,14 +87,16 @@ developer that a framework and frontend that just worked are unsupported, and ha
85
87
  stop report instead of the application they now have.
86
88
 
87
89
  If the round trip fails, decide which kind of failure it is before you route. The proof
88
- subagent can repair only project-owned processes, ports, and request options. A failure caused
90
+ subagent can repair only project-owned processes, ports, and request options, and it can
91
+ make the credential write that its Step 4 names for `api_key_loadable_by_app`. A failure caused
89
92
  by a source, configuration, dependency, or tracked-file change is a defect in the new work.
90
93
 
91
- Retry the proof subagent only for a project-owned process, port, or request-option failure.
94
+ Retry the proof subagent only for a project-owned process, port, request-option, or
95
+ `api_key_loadable_by_app` failure.
92
96
  Give it the failure evidence and the failed attempt's pinned Step 1 record. Wait for the
93
97
  proof subagent after each operational repair.
94
- If the result passes, use the passed-result route above. Retry a failed result at most three
95
- times. Use the route-out rules below for a blocked or third failed result.
98
+ If the result passes, use the passed-result route above. Run the proof at most three times
99
+ in total. Use the route-out rules below for a blocked or third failed result.
96
100
 
97
101
  Enter the code-repair branch only for a source, configuration, dependency, or tracked-file
98
102
  defect.
@@ -116,8 +120,9 @@ secret values. Require its result to start with `Status: passed`, `Status: faile
116
120
  `Status: blocked`, followed by Files changed, Validation, and Blockers. Otherwise, send the
117
121
  defect to the implementation subagent that validated the planned implementation path. Give it
118
122
  the approved plan and proof evidence. Treat the worker that gets the defect as the repair worker.
119
- Give the repair worker the protected path list. Do not let a generated or repaired path
120
- overlap a protected path.
123
+ Give the repair worker the protected path list and the authorized list from the
124
+ `Authorized to modify:` block of the latest audit. Do not let a generated or repaired path overlap a
125
+ protected path, other than an authorized path itself.
121
126
 
122
127
  Require the full validation list to pass again. Wait for the repair worker to finish.
123
128
  Continue only if its result starts with `Status: passed`. If the repair worker returns
@@ -127,7 +132,14 @@ implementation worker for a planned implementation path. Use the repair worker f
127
132
  path. Wait for the validator to finish. If its result starts with `Status: passed`, continue.
128
133
  If the validator returns `Status: failed`, return its evidence to the repair
129
134
  worker. Repeat repair and validation at most three times. If either worker returns
130
- `Status: blocked`, use the route-out rules below.
135
+ `Status: blocked`, use the route-out rules below. The exception is an implementation worker
136
+ that returns blocked because the repair needs a file the plan does not name. Handle it the
137
+ way `implementation/build-and-validate` does: pause and ask the developer, add the file to
138
+ the handoff if they allow it, and use the route-out rules below if they decline. For a
139
+ protected file, record their answer with `--authorize --unplanned` and run the audit again
140
+ first. Then spawn a fresh repair worker with this repair handoff, not the whole-plan
141
+ implementation handoff: the plan, the proof evidence, the protected path list, and the
142
+ authorized list from that audit.
131
143
 
132
144
  Run the protected-path audit again after validation passes. Continue only if its result
133
145
  starts with `Status: passed`.
@@ -136,7 +148,7 @@ Restart each project-owned process changed by the repair. Report the cycle, coun
136
148
  one:
137
149
 
138
150
  ```text
139
- npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase repair-attempted --attempt 1
151
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase repair-attempted --attempt 1
140
152
  ```
141
153
 
142
154
  Then spawn a fresh proof subagent
@@ -149,23 +161,23 @@ its grounding check then speaks about a question the failed attempt never asked.
149
161
  Wait for the fresh proof subagent to finish.
150
162
  If the fresh proof result starts with `Status: passed`, run the protected-path audit and use
151
163
  the passed-result route above. If it starts with `Status: failed`, begin the next bounded
152
- repair cycle. Use the route-out rules below for `Status: blocked`. Stop after three repair
153
- and proof cycles.
164
+ repair cycle. Use the route-out rules below for `Status: blocked`. After three repair and
165
+ proof cycles, use the route-out rules below.
154
166
 
155
167
  Route out only when the failure is not yours to fix, when the same proof still fails after
156
168
  three attempts, or when no evidence of the round trip can be produced. In those cases run
157
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read stopped/run-failed`. The stack is supported:
169
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`. The stack is supported:
158
170
  this run did not finish, which is a different ending and a different report. All three are
159
171
  about the round trip itself. A round trip that proved is not one of them, whatever failed
160
172
  after it.
161
173
 
162
174
  If you stop here without taking that route -- a repair cycle you cannot finish, a limit in
163
- your own harness, a run that has run out -- send one short report before you stop. Run the
164
- friction command without another developer question: it applies the telemetry setting the
165
- developer already set.
175
+ your own harness, a run that has run out -- send one short report before you stop. The
176
+ friction command follows the telemetry setting the developer already chose, so it needs no
177
+ separate question.
166
178
 
167
179
  ```text
168
- npx --prefer-offline --yes copilotkit@4.16.0 onboard friction --phase stop --category <slug> --message "<sentences>"
180
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --phase stop --category <slug> --message "<sentences>"
169
181
  ```
170
182
 
171
183
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -28,7 +28,8 @@ This rule covers the whole run, here and in every later prompt.
28
28
 
29
29
  In this graph, stop means one thing: end the run through a named terminal. You send the
30
30
  stop report `authenticate/start` describes, then read the terminal that the rule names.
31
- Nothing else is a stop.
31
+ Where a rule names a terminal, read that terminal first: if it sends the report itself or
32
+ says to file none, follow it, so the run sends one report at most. Nothing else is a stop.
32
33
 
33
34
  A pause keeps the run open. "End your turn and wait for" something means: end this turn,
34
35
  and continue when that thing arrives. A pause waits for one of two things:
@@ -43,7 +44,7 @@ Before you end your turn to wait for the developer where the prompt states no de
43
44
  report the pause:
44
45
 
45
46
  ```text
46
- npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase awaiting-developer
47
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase awaiting-developer
47
48
  ```
48
49
 
49
50
  When the answer or the result arrives, continue from the step that paused. Do not read an
@@ -63,7 +64,7 @@ Both research subagents failing means this harness has no working subagent at al
63
64
  is worth recording once:
64
65
 
65
66
  ```text
66
- npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase delegation-unavailable
67
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase delegation-unavailable
67
68
  ```
68
69
 
69
70
  Then say once, in your own words, that this environment has no working subagents, so you
@@ -76,7 +77,7 @@ Before you ask the developer any setup question, finish every read-only investig
76
77
  preflight check in this section.
77
78
 
78
79
  Prepare two research assignments. Give each research subagent one assignment. Tell it to run
79
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read subagent/inspect-repository` first and follow the
80
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read subagent/inspect-repository` first and follow the
80
81
  prompt it returns. If that read fails because the subagent cannot use the shell, stop that
81
82
  subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
82
83
  and the same handoff. Require only its assigned packet.
@@ -90,7 +91,7 @@ Start both research subagents in parallel:
90
91
  Report that both subagents started:
91
92
 
92
93
  ```text
93
- npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase research-dispatched
94
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase research-dispatched
94
95
  ```
95
96
 
96
97
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -99,8 +100,8 @@ failed step.
99
100
  The research is under way. Continue to the surface-control preflight while it runs:
100
101
 
101
102
  ```text
102
- npx --prefer-offline --yes copilotkit@4.16.0 onboard read research/preflight
103
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read research/preflight
103
104
  ```
104
105
 
105
106
  If inspection stops onboarding, run
106
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read stopped/run-failed`.
107
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`.
@@ -21,7 +21,7 @@ Project selection is where the settled port is written down, through `--runtime-
21
21
  Then report that the research came back:
22
22
 
23
23
  ```text
24
- npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase research-returned
24
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase research-returned
25
25
  ```
26
26
 
27
27
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -54,7 +54,7 @@ worker a focused directory check. Continue only when both workers return the sam
54
54
  app directory. Both results must start with `Status: passed`. Otherwise, use the stop route.
55
55
 
56
56
  When both research results are merged, run
57
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read research/route`.
57
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read research/route`.
58
58
 
59
59
  If inspection stops onboarding, run
60
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read stopped/run-failed`.
60
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`.
@@ -45,7 +45,7 @@ mechanism a later step uses for the CopilotKit documentation server.
45
45
 
46
46
  Some coding agents, Claude Code among them, load a newly registered MCP server only at the
47
47
  next session start. Tell the developer in one line to expect one restart, then restart and
48
- re-bind with `npx --prefer-offline --yes copilotkit@4.16.0 onboard start --run <onboarding_run_id>`. That
48
+ re-bind with `npx --prefer-offline --yes copilotkit@4.18.0 onboard start --run <onboarding_run_id>`. That
49
49
  restart is a step here, not an error.
50
50
 
51
51
  Do not add a browser or device driver to the project. A driver added there is a
@@ -62,14 +62,14 @@ whole finding.
62
62
  Report that the probe settled, whichever way it came out:
63
63
 
64
64
  ```text
65
- npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase surface-probed
65
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase surface-probed
66
66
  ```
67
67
 
68
68
  Then merge the research:
69
69
 
70
70
  ```text
71
- npx --prefer-offline --yes copilotkit@4.16.0 onboard read research/merge
71
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read research/merge
72
72
  ```
73
73
 
74
74
  If inspection stops onboarding, run
75
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read stopped/run-failed`.
75
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`.
@@ -9,7 +9,7 @@ sends the run down one path.
9
9
  Before you route on, run this from the target app directory:
10
10
 
11
11
  ```text
12
- npx --prefer-offline --yes copilotkit@4.16.0 onboard protect
12
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard protect
13
13
  ```
14
14
 
15
15
  It reads the working tree itself, records every changed or untracked path with a digest,
@@ -41,7 +41,7 @@ On either, run this before you read the three findings below, and without asking
41
41
  purpose question:
42
42
 
43
43
  ```text
44
- npx --prefer-offline --yes copilotkit@4.16.0 onboard read feature/channels/start
44
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard read feature/channels/start
45
45
  ```
46
46
 
47
47
  Name the provider to that node so it does not ask again. A Slack page names Slack. A Teams
@@ -96,7 +96,7 @@ settle these three from your own reading of the project. Each one comes from the
96
96
  packets or it is not proved.
97
97
 
98
98
  If all three are proved, prove the live starting state before any project file changes. Run
99
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read proof/oss-baseline`.
99
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read proof/oss-baseline`.
100
100
 
101
101
  Route there before you ask the developer anything else. The questions after this prompt
102
102
  select a framework and a frontend that the findings already name, so a developer who
@@ -109,7 +109,7 @@ developer nor the repository findings prove what the project is for, ask one gui
109
109
  question about the user outcome. This asks what the developer wants to build before you
110
110
  select a framework. Give two or three short examples. Record the answer and give it to
111
111
  each later subagent. Then run
112
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read credentials/plan`.
112
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read credentials/plan`.
113
113
 
114
114
  Do not ask that question on the route above. A project carrying all three states its
115
115
  purpose in the application it already serves.
@@ -122,6 +122,6 @@ Slack and Microsoft Teams are choices at that step.
122
122
  A purpose question here names a domain before that choice.
123
123
  Take the same read named above without asking.
124
124
 
125
- If authentication or inspection stops onboarding, run
126
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read stopped/run-failed`. Neither says anything
125
+ If authentication, inspection, or the baseline capture stops onboarding, run
126
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`. None of them says anything
127
127
  about whether this project's stack is supported, which is not yet known at this point.
@@ -37,11 +37,14 @@ Each Framework ID selects a starter that the CLI ships with Intelligence. Do not
37
37
  different pair from a similar name. AG2 does not use this shortcut because its starter does
38
38
  not include Intelligence.
39
39
 
40
- Get the target directory name from its path. The project name must contain 1 to 30
41
- lowercase letters, numbers, or hyphens. It must not start or end with a hyphen. If the
40
+ Get the target directory name from its path. The name can contain 1 to 100 letters,
41
+ numbers, spaces, dots, underscores, or hyphens, in any case. It must not be `.` or `..`,
42
+ start or end with a space, or end with a dot. `init` accepts the name of an existing empty
43
+ directory as it is, so a name such as `MyApp` is valid. Do not rename the directory. If the
42
44
  selected pair is not in the table, or the directory name is not valid, stop the shortcut.
43
- Do not run `init`. Treat this result as a failed shortcut and follow the final failure
44
- instruction in this prompt.
45
+ Do not run `init`. No command ran, so this is not a failed shortcut. Go back to the
46
+ `## Documentation` section of the frontend prompt you read before this one, and build the
47
+ project from its pages.
45
48
 
46
49
  If the developer did not name a project, create one for the app being
47
50
  cloned. This directory is new, so no existing project is already its own: take the project
@@ -52,7 +55,7 @@ the derived name.
52
55
  Only if the developer asks for an existing project, or asks to see the projects they have,
53
56
  read the choices:
54
57
 
55
- `npx --prefer-offline --yes copilotkit@4.16.0 project list --json`
58
+ `npx --prefer-offline --yes copilotkit@4.18.0 project list --json`
56
59
 
57
60
  Then ask which one to use. Do not order the projects by creation time. If the developer
58
61
  already gave this answer, do not ask again. Do not read a secret value. Do not show or
@@ -77,9 +80,9 @@ way bills a project nobody chose.
77
80
 
78
81
  Run the command from the parent directory. Do not inspect another entry in the parent
79
82
  directory. Replace each placeholder with the recorded value. Do not run a placeholder as
80
- a shell argument.
83
+ a shell argument. If the directory name holds a space, put it in double quotes.
81
84
 
82
- `npx --prefer-offline --yes copilotkit@4.16.0 init --name <directory-name> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
85
+ `npx --prefer-offline --yes copilotkit@4.18.0 init --name <directory-name> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
83
86
 
84
87
  `--name` is always the target directory name derived above, because `init` creates the
85
88
  app at `<parent>/<name>`. Any other value puts the app in a new folder beside the target,
@@ -105,7 +108,7 @@ account. The command does not need terminal input.
105
108
  Report the clone before you inspect anything:
106
109
 
107
110
  ```text
108
- npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase starter-cloned
111
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase starter-cloned
109
112
  ```
110
113
 
111
114
  This is its own step, not an aside. A run that clones and then goes quiet is
@@ -146,10 +149,11 @@ The two Microsoft Agent Framework starters keep their key outside `<target>/.env
146
149
  `cd <target>/agent && dotnet user-secrets set OPENAI_API_KEY "<key>"` themselves, even
147
150
  if they named a key file.
148
151
 
149
- Then report the pause and end your turn:
152
+ When you ask, name each variable and the file it goes in, and say that the run continues
153
+ when they reply or resume this session. Then report the pause and end your turn:
150
154
 
151
155
  ```text
152
- npx --prefer-offline --yes copilotkit@4.16.0 onboard checkpoint --phase awaiting-developer
156
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard checkpoint --phase awaiting-model-credential
153
157
  ```
154
158
 
155
159
  This is a pause, not a stop. Do not send a stop report, and do not take a stop route.
@@ -160,10 +164,10 @@ call.
160
164
 
161
165
  If no credential is missing, report no pause and continue.
162
166
 
163
- Then run `npx --prefer-offline --yes copilotkit@4.16.0 onboard read proof/round-trip`.
167
+ Then run `npx --prefer-offline --yes copilotkit@4.18.0 onboard read proof/round-trip`.
164
168
 
165
169
  If the command fails, report its exact error and do not claim that the starter is ready.
166
170
  Then run
167
- `npx --prefer-offline --yes copilotkit@4.16.0 onboard read stopped/run-failed`. The starter is one this
171
+ `npx --prefer-offline --yes copilotkit@4.18.0 onboard read stopped/run-failed`. The starter is one this
168
172
  graph ships and the stack was chosen from its own supported list, so a command that
169
173
  returned an error is a run that broke, not a setup this release does not support.
@@ -1,17 +1,17 @@
1
1
  # Stop because the run did not finish
2
2
 
3
- This is the ending for a run that broke. The developer's agent, frontend and package
4
- choices are supported. Something in this run stopped it, and that is what the report has
5
- to say.
3
+ This is the ending for a run that broke. Something in this run stopped it, and that is
4
+ what the report has to say. This ending makes no judgment about the stack.
6
5
 
7
- Do not tell the developer their setup is unsupported. It is not, and a run that says so
8
- sends them to change a stack that was never the problem.
6
+ Do not tell the developer their setup is unsupported. A run that says so sends them to
7
+ change a stack that was never shown to be the problem.
9
8
 
10
9
  Keep the developer's current agent, frontend, authentication, and package choices.
11
10
 
12
11
  Name the exact step that stopped the run, and what it returned. State whether
13
- authentication, project selection, project credentials, the journey, implementation,
14
- validation, or the round trip stopped it. Give the failure in the words the step printed,
12
+ authentication, repository inspection, the protected-path baseline capture, the OSS baseline
13
+ proof, project selection, project credentials, the plan, the starter clone, the journey,
14
+ implementation, validation, or the round trip stopped it. Give the failure in the words the step printed,
15
15
  not a summary of them.
16
16
 
17
17
  If a protected path stopped this run, name that path and how it changed, in the words the
@@ -41,7 +41,7 @@ put to them, stop here and send the report below.
41
41
  If they approve it, make that one fix and nothing else. Then come back into this run:
42
42
 
43
43
  ```text
44
- npx --prefer-offline --yes copilotkit@4.16.0 onboard resume --message "<approval>"
44
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard resume --message "<approval>"
45
45
  ```
46
46
 
47
47
  Put the developer's approval in `--message`, in one or two sentences: the fix they
@@ -60,11 +60,11 @@ said and stop.
60
60
 
61
61
  Stop onboarding without making more repository changes.
62
62
 
63
- Send one short report. Run the friction command without another developer question. Do not
64
- ask the developer about telemetry: the command applies the setting they already have.
63
+ Send one short report. The friction command follows the telemetry setting the developer
64
+ already chose, so it needs no separate question.
65
65
 
66
66
  ```text
67
- npx --prefer-offline --yes copilotkit@4.16.0 onboard friction --phase stop --category <slug> --message "<sentences>"
67
+ npx --prefer-offline --yes copilotkit@4.18.0 onboard friction --phase stop --category <slug> --message "<sentences>"
68
68
  ```
69
69
 
70
70
  `--message` takes one or two sentences: the step you stopped at and what stopped
@@ -37,8 +37,9 @@ Plan the runtime to consume the Intelligence credential. The runtime takes an
37
37
  `runner` option instead is the OSS runtime. It never reads the Intelligence key, and the
38
38
  Inspector reads the project as locked. The default in-memory OSS runner is ephemeral.
39
39
  SQLite, custom, or framework persistence can be durable. The two options cannot be
40
- combined. Take the constructor from the connect-your-runtime page. Where a framework
41
- quickstart shows a `runner` option instead, the connect-your-runtime page wins.
40
+ combined. Take the constructor from the Intelligence quickstart
41
+ (https://docs.copilotkit.ai/intelligence/quickstart.md). Where a framework quickstart
42
+ shows a `runner` option instead, the Intelligence quickstart wins.
42
43
 
43
44
  ## Plan the Learning Container and its selector
44
45
 
@@ -106,12 +107,14 @@ The intersection includes what a `@copilotkit/*` package on its own version line
106
107
  about the `1.x` line. `@copilotkit/angular` is the one that has this, and its declaration
107
108
  is materialized at publish time rather than written in the repository, so read it from the
108
109
  registry rather than from any checkout. Where it cannot be satisfied by the version the
109
- floor requires, there is no upgrade to plan: that is `unsupported/no-validated-path`.
110
+ floor requires, there is no upgrade to plan: return `Status: blocked` and name
111
+ `unsupported/no-validated-path` as the outcome.
110
112
 
111
113
  An exact pin is usually deliberate. Naming the move here is what makes it a step the
112
114
  developer approved rather than a repair the run invents halfway through. Do not move a pin
113
- the developer did not approve moving. Where the developer needs one held, that is
114
- `unsupported/no-validated-path`, and the upgrade step's revert is the way back.
115
+ the developer did not approve moving. Where the developer needs one held, return
116
+ `Status: blocked` and name `unsupported/no-validated-path` as the outcome. The upgrade
117
+ step's revert is the way back.
115
118
 
116
119
  Name the exact version the target requires. A caret does not stand in for it below `0.1.0`:
117
120
  `^0.0.59` admits only `0.0.59`, so a pin rewritten that way is the same pin under a
@@ -136,8 +139,9 @@ If the value of the journey depends on data the project already holds, name that
136
139
  name where it lives, and name how it reaches the agent. Rendering a list in the DOM does
137
140
  not give the agent access to it. An agent wired without the page's data answers from
138
141
  entities it invents, and the answer looks correct. Take the frontend-context step from
139
- the selected documentation. Where no selected page documents it for this framework or
140
- frontend, record that as a documentation gap rather than guessing the API.
142
+ the selected documentation, and never guess the API. Where no selected page documents it
143
+ for this framework or frontend, the data has no documented way to reach the agent: return
144
+ `Status: blocked` and name `unsupported/no-validated-path` as the outcome.
141
145
 
142
146
  Where that data exists, name the entities the proof compares against: the ids, names, or
143
147
  records the project holds and the answer has to reference. Where the outcome references
@@ -170,7 +174,7 @@ here is work the developer did not ask for.
170
174
  Plan the threads drawer itself: add it from the selected drawer page, where this frontend
171
175
  does not already render one. Where this journey's frontend framework ships no threads
172
176
  drawer -- React Native --, plan that the thread is proved by
173
- `npx --prefer-offline --yes copilotkit@4.16.0 verify --round-trip`, which needs no browser. Do not plan a
177
+ `npx --prefer-offline --yes copilotkit@4.18.0 verify --round-trip`, which needs no browser. Do not plan a
174
178
  step that opens the managed Intelligence dashboard.
175
179
 
176
180
  ## Order the plan into steps
@@ -193,8 +197,9 @@ feature to an app the developer already built is the case this exists for: the o
193
197
  in a file they wrote, and on an app whose work was never committed that file is in the
194
198
  baseline. List every such path under `Authorization requested`, one line each, with the path
195
199
  and one sentence saying what the step changes there and why no other file will do. Keep the
196
- step in the plan. Return `Status: blocked` only when the plan needs a protected path you
197
- cannot justify in that sentence.
200
+ step in the plan. Where a protected path you can justify is the only obstacle, the step
201
+ stays. Where the plan needs a protected path you cannot justify in that sentence, return
202
+ `Status: blocked`.
198
203
 
199
204
  Authorization covers changing a protected path, not removing it. Do not plan the deletion
200
205
  of a protected path, and do not plan a step that moves or renames one, which removes it
@@ -214,6 +219,15 @@ to make a build pass during onboarding.
214
219
 
215
220
  The type check runs against the project's own configuration. If the project has no
216
221
  type-check command, add one that uses the configuration the project already has.
222
+ Where the repository findings carry a `typescript.migration` for an app, plan it as its
223
+ own step, before the first step that imports a CopilotKit package in that app. Name the
224
+ migration `file` and each change in `changes`, and give its `reason` in one sentence.
225
+ Under `node` or `node10` resolution, TypeScript ignores a package's `exports` map, so
226
+ every CopilotKit subpath import fails the type check while the app still runs. A plan
227
+ without this step stops after approval to ask for it. If the file is a protected path,
228
+ list it under `Authorization requested`. Where no migration is reported, do not change
229
+ `moduleResolution` or `module`. This change does not weaken type safety.
230
+
217
231
  Do not add compiler strictness the project did not have. Nothing later in the run is
218
232
  allowed to weaken type safety, so a stricter gate named here is one the run cannot get
219
233
  back out of.