copilotkit 4.9.50 → 4.9.60

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 (67) hide show
  1. package/README.md +44 -4
  2. package/cli-build-info.json +7 -7
  3. package/index.js +1504 -210
  4. package/onboarding/index.json +1 -1
  5. package/onboarding/prompts/authenticate/start.md +41 -14
  6. package/onboarding/prompts/conversion/plan.md +3 -3
  7. package/onboarding/prompts/credentials/finalize-plan.md +54 -13
  8. package/onboarding/prompts/credentials/plan.md +20 -20
  9. package/onboarding/prompts/fallback/best-effort.md +6 -6
  10. package/onboarding/prompts/feature/a2ui/implement.md +3 -3
  11. package/onboarding/prompts/feature/a2ui/proof.md +3 -3
  12. package/onboarding/prompts/feature/a2ui/start.md +5 -5
  13. package/onboarding/prompts/feature/chat-suggestions/implement.md +3 -3
  14. package/onboarding/prompts/feature/chat-suggestions/proof.md +3 -3
  15. package/onboarding/prompts/feature/chat-suggestions/start.md +5 -5
  16. package/onboarding/prompts/feature/learning/implement.md +70 -8
  17. package/onboarding/prompts/feature/learning/proof.md +25 -7
  18. package/onboarding/prompts/feature/learning/start.md +11 -7
  19. package/onboarding/prompts/feature/open-generative-ui/implement.md +3 -3
  20. package/onboarding/prompts/feature/open-generative-ui/proof.md +3 -3
  21. package/onboarding/prompts/feature/open-generative-ui/start.md +5 -5
  22. package/onboarding/prompts/feature/realtime-sync/implement.md +4 -4
  23. package/onboarding/prompts/feature/realtime-sync/proof.md +3 -3
  24. package/onboarding/prompts/feature/realtime-sync/start.md +4 -4
  25. package/onboarding/prompts/feature/rich-threads/implement.md +5 -5
  26. package/onboarding/prompts/feature/rich-threads/proof.md +3 -3
  27. package/onboarding/prompts/feature/rich-threads/start.md +4 -4
  28. package/onboarding/prompts/feature/stop.md +4 -4
  29. package/onboarding/prompts/feature/voice/implement.md +3 -3
  30. package/onboarding/prompts/feature/voice/proof.md +3 -3
  31. package/onboarding/prompts/feature/voice/start.md +5 -5
  32. package/onboarding/prompts/framework/ag2.md +2 -2
  33. package/onboarding/prompts/framework/agno.md +2 -2
  34. package/onboarding/prompts/framework/built-in.md +2 -2
  35. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  36. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  37. package/onboarding/prompts/framework/crewai-flows.md +2 -2
  38. package/onboarding/prompts/framework/deep-agents.md +2 -2
  39. package/onboarding/prompts/framework/google-adk.md +2 -2
  40. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  41. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  42. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  43. package/onboarding/prompts/framework/llamaindex.md +2 -2
  44. package/onboarding/prompts/framework/mastra.md +2 -2
  45. package/onboarding/prompts/framework/ms-agent-dotnet.md +2 -2
  46. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
  47. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  48. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  49. package/onboarding/prompts/framework/strands-python.md +2 -2
  50. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  51. package/onboarding/prompts/frontend/angular.md +3 -3
  52. package/onboarding/prompts/frontend/nextjs.md +3 -3
  53. package/onboarding/prompts/frontend/plan.md +6 -6
  54. package/onboarding/prompts/frontend/react-native.md +2 -2
  55. package/onboarding/prompts/frontend/react-spa.md +2 -2
  56. package/onboarding/prompts/frontend/vue.md +2 -2
  57. package/onboarding/prompts/implementation/build-and-validate.md +58 -8
  58. package/onboarding/prompts/proof/complete.md +10 -10
  59. package/onboarding/prompts/proof/oss-baseline.md +16 -7
  60. package/onboarding/prompts/proof/round-trip.md +16 -9
  61. package/onboarding/prompts/starter/clone.md +5 -5
  62. package/onboarding/prompts/subagent/create-plan.md +1 -1
  63. package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
  64. package/onboarding/prompts/subagent/prove-round-trip.md +13 -10
  65. package/onboarding/prompts/unsupported/no-validated-path.md +4 -4
  66. package/package.json +1 -1
  67. package/release/release-tool.js +1 -1
@@ -27,7 +27,7 @@ Record the selected framework, vendor, model, required credential variable names
27
27
  URLs, and the context documentation gap.
28
28
 
29
29
  If the pages support the selection, run
30
- `npx --yes copilotkit@4.9.50 onboard read frontend/plan`.
30
+ `npx --yes copilotkit@4.9.60 onboard read frontend/plan`.
31
31
 
32
32
  If the documentation does not support the selection, run
33
- `npx --yes copilotkit@4.9.50 onboard read unsupported/no-validated-path`.
33
+ `npx --yes copilotkit@4.9.60 onboard read unsupported/no-validated-path`.
@@ -28,7 +28,7 @@ Record the selected framework, vendor, model, required credential variable names
28
28
  URLs, and the context documentation gap.
29
29
 
30
30
  If the pages support the selection, run
31
- `npx --yes copilotkit@4.9.50 onboard read frontend/plan`.
31
+ `npx --yes copilotkit@4.9.60 onboard read frontend/plan`.
32
32
 
33
33
  If the documentation does not support the selection, run
34
- `npx --yes copilotkit@4.9.50 onboard read unsupported/no-validated-path`.
34
+ `npx --yes copilotkit@4.9.60 onboard read unsupported/no-validated-path`.
@@ -5,7 +5,7 @@ Preserve an existing Angular frontend. Use the selected page for a new frontend.
5
5
  Use the starter shortcut only if all these facts are true: the target directory contains
6
6
  no entries, its name is a valid `init` project name, and the selected framework is ADK.
7
7
  If all three facts are true, record Angular as the selected frontend. Then run
8
- `npx --yes copilotkit@4.9.50 onboard read starter/clone` before you fetch documentation.
8
+ `npx --yes copilotkit@4.9.60 onboard read starter/clone` before you fetch documentation.
9
9
 
10
10
  ## Documentation
11
11
 
@@ -63,7 +63,7 @@ you create or build an Angular project. If the installed version is lower, selec
63
63
  supported version first and use it for every later command in this project.
64
64
 
65
65
  If the pages support the selection, record Angular and these URLs. Then run
66
- `npx --yes copilotkit@4.9.50 onboard read credentials/finalize-plan`.
66
+ `npx --yes copilotkit@4.9.60 onboard read credentials/finalize-plan`.
67
67
 
68
68
  If the documentation does not support the selection, or the two version lines do not fit
69
- together, run `npx --yes copilotkit@4.9.50 onboard read unsupported/no-validated-path`.
69
+ together, run `npx --yes copilotkit@4.9.60 onboard read unsupported/no-validated-path`.
@@ -15,7 +15,7 @@ These TypeScript options have starters: Claude Agent SDK TypeScript, LangGraph T
15
15
  Mastra, and Strands Agents TypeScript. The .NET option is Microsoft Agent Framework .NET.
16
16
 
17
17
  If all shortcut conditions are true, record Next.js as the selected frontend. Then run
18
- `npx --yes copilotkit@4.9.50 onboard read starter/clone` before you fetch documentation.
18
+ `npx --yes copilotkit@4.9.60 onboard read starter/clone` before you fetch documentation.
19
19
 
20
20
  ## Documentation
21
21
 
@@ -27,7 +27,7 @@ agent as the default agent, which is correct only for a project that has no agen
27
27
  Do not replace the developer's existing agent with the built-in agent.
28
28
 
29
29
  If the page supports the selection, record Next.js and this URL. Then run
30
- `npx --yes copilotkit@4.9.50 onboard read credentials/finalize-plan`.
30
+ `npx --yes copilotkit@4.9.60 onboard read credentials/finalize-plan`.
31
31
 
32
32
  If the documentation does not support the selection, run
33
- `npx --yes copilotkit@4.9.50 onboard read unsupported/no-validated-path`.
33
+ `npx --yes copilotkit@4.9.60 onboard read unsupported/no-validated-path`.
@@ -24,11 +24,11 @@ process.
24
24
 
25
25
  Use exactly one matching internal route:
26
26
 
27
- 1. React SPA: `npx --yes copilotkit@4.9.50 onboard read frontend/react-spa`
28
- 2. Next.js: `npx --yes copilotkit@4.9.50 onboard read frontend/nextjs`
29
- 3. Angular: `npx --yes copilotkit@4.9.50 onboard read frontend/angular`
30
- 4. Vue 3: `npx --yes copilotkit@4.9.50 onboard read frontend/vue`
31
- 5. React Native: `npx --yes copilotkit@4.9.50 onboard read frontend/react-native`
27
+ 1. React SPA: `npx --yes copilotkit@4.9.60 onboard read frontend/react-spa`
28
+ 2. Next.js: `npx --yes copilotkit@4.9.60 onboard read frontend/nextjs`
29
+ 3. Angular: `npx --yes copilotkit@4.9.60 onboard read frontend/angular`
30
+ 4. Vue 3: `npx --yes copilotkit@4.9.60 onboard read frontend/vue`
31
+ 5. React Native: `npx --yes copilotkit@4.9.60 onboard read frontend/react-native`
32
32
 
33
33
  If no listed frontend fits, run
34
- `npx --yes copilotkit@4.9.50 onboard read unsupported/no-validated-path`.
34
+ `npx --yes copilotkit@4.9.60 onboard read unsupported/no-validated-path`.
@@ -15,7 +15,7 @@ documents `useRenderTool`, which is React Native's own hook for drawing a tool t
15
15
  already has. That is a different job and needs a tool in the agent.
16
16
 
17
17
  If the pages support the selection, record React Native and these URLs. Then run
18
- `npx --yes copilotkit@4.9.50 onboard read credentials/finalize-plan`.
18
+ `npx --yes copilotkit@4.9.60 onboard read credentials/finalize-plan`.
19
19
 
20
20
  If the documentation does not support the selection, run
21
- `npx --yes copilotkit@4.9.50 onboard read unsupported/no-validated-path`.
21
+ `npx --yes copilotkit@4.9.60 onboard read unsupported/no-validated-path`.
@@ -11,7 +11,7 @@ not move the agent into it.
11
11
  - https://docs.copilotkit.ai/react-spa.md
12
12
 
13
13
  If the page supports the selection, record React SPA and this URL. Then run
14
- `npx --yes copilotkit@4.9.50 onboard read credentials/finalize-plan`.
14
+ `npx --yes copilotkit@4.9.60 onboard read credentials/finalize-plan`.
15
15
 
16
16
  If the documentation does not support the selection, run
17
- `npx --yes copilotkit@4.9.50 onboard read unsupported/no-validated-path`.
17
+ `npx --yes copilotkit@4.9.60 onboard read unsupported/no-validated-path`.
@@ -16,7 +16,7 @@ page above. Vue has its own `useComponent`, which is not the React package. Take
16
16
  that reference page rather than from a Vue generative-UI guide, which is not published.
17
17
 
18
18
  If the pages support the selection, record Vue 3 and these URLs. Then run
19
- `npx --yes copilotkit@4.9.50 onboard read credentials/finalize-plan`.
19
+ `npx --yes copilotkit@4.9.60 onboard read credentials/finalize-plan`.
20
20
 
21
21
  If the documentation does not support the selection, run
22
- `npx --yes copilotkit@4.9.50 onboard read unsupported/no-validated-path`.
22
+ `npx --yes copilotkit@4.9.60 onboard read unsupported/no-validated-path`.
@@ -9,19 +9,38 @@ Approving the plan is the developer agreeing to every path it listed under
9
9
  app directory:
10
10
 
11
11
  ```text
12
- npx --yes copilotkit@4.9.50 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
12
+ npx --yes copilotkit@4.9.60 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
13
13
  ```
14
14
 
15
15
  Consent has to be on the record before the file moves, so a call made after the change is
16
16
  refused. Continue only if every result starts with `Status: passed`. If the plan listed
17
17
  nothing there, skip this section.
18
18
 
19
+ If a path the plan listed has already changed, the developer changed it after the capture.
20
+ No implementation step has run yet, so the change is theirs rather than this run's. Record
21
+ consent over it by adding one flag:
22
+
23
+ ```text
24
+ npx --yes copilotkit@4.9.60 onboard protect --authorize --path <path> --reason "<the plan's sentence>" --with-prior-change
25
+ ```
26
+
27
+ The flag records their change as drift beside the consent, so the closing report names both
28
+ the change they made and the change this run was allowed to make. Use it only here, before
29
+ any implementation step runs. After one has run, a changed path is this run's own work, and
30
+ the route-out rules apply.
31
+
32
+ This section is the only place the plan's own authorizations are recorded. Once this run
33
+ reports its plan, the CLI refuses `--authorize` for every path the plan did not name. The
34
+ developer approved a plan, not a permission to reach further, so there is no consent to
35
+ record for a path that comes up later. If you find such a path mid-run, use the route below
36
+ rather than this section.
37
+
19
38
  ## Protected-path audit
20
39
 
21
40
  Run the audit from the target app directory:
22
41
 
23
42
  ```text
24
- npx --yes copilotkit@4.9.50 onboard audit
43
+ npx --yes copilotkit@4.9.60 onboard audit
25
44
  ```
26
45
 
27
46
  It compares every protected path with the digest the CLI captured for it. Its result starts
@@ -45,19 +64,50 @@ run collected. If it appears in one, or the sections do not settle it, the chang
45
64
  run's own: use the route-out rules. A plan names a protected path only under
46
65
  `Authorization requested`, so a plan that does not name it there proves nothing on its own.
47
66
 
67
+ A Files changed section is the only evidence that settles who wrote a file. Reading the
68
+ file settles nothing. Recognizing the code, knowing what it is for, seeing that it matches
69
+ what this run was building, believing this run wrote it, or finding it broken in a way this
70
+ run explains are all readings of the file, and the file cannot say who wrote it.
71
+ A path you cannot find in a Files changed section is the developer's, however sure you are
72
+ that it is not.
73
+
48
74
  A path that no Files changed section names changed outside the run, and it is the
49
75
  developer's own file. Accept it by name:
50
76
 
51
77
  ```text
52
- npx --yes copilotkit@4.9.50 onboard protect --accept-external --path <path>
78
+ npx --yes copilotkit@4.9.60 onboard protect --accept-external --path <path>
53
79
  ```
54
80
 
81
+ A changed env file is its own case. This run asked the developer to place a credential
82
+ there, so it takes the credential route rather than this one:
83
+
84
+ ```text
85
+ npx --yes copilotkit@4.9.60 onboard protect --accept-credential --path <path>
86
+ ```
87
+
88
+ That route proves no recorded credential was lost, instead of taking the run's word that it
89
+ did not write the file. Read its refusal and stop if it names a lost variable.
90
+
55
91
  Pass one `--path` for each path you accept. Accept only a path the audit named, and only
56
92
  when no step of this run wrote it. The command re-captures that path, records that this
57
93
  run accepted the change, and prints it. Run the audit again afterwards: it passes and
58
94
  names every accepted path, and the closing summary must name them too. An acceptance is
59
95
  not a repair. It proves nothing about what the file now holds.
60
96
 
97
+ The prohibition on repairing a protected path holds wherever the path comes up, not only
98
+ here. A failing check is the usual way it comes up: the diagnosis lands on a file, and the
99
+ file turns out to be protected. A correct diagnosis does not make the file this run's, and
100
+ neither does a one-line fix. Never repair, reset, or revert it. Ask the developer to allow
101
+ the change, and record the answer they give:
102
+
103
+ ```text
104
+ npx --yes copilotkit@4.9.60 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
105
+ ```
106
+
107
+ Use it only for an answer a developer actually gave. It records the consent as taken
108
+ outside the approved plan, and every later audit and the closing report say so, which is
109
+ what tells the developer they were asked mid-run. If you cannot ask, route out.
110
+
61
111
  `Status: blocked` means the audit has no baseline to read. A blocked audit compared
62
112
  nothing and proved nothing changed. It is not a preservation failure: do not report a
63
113
  protected path as changed. Report the printed reason and use the route-out rules.
@@ -68,11 +118,11 @@ acceptance clears it, or route out. Do not send an audit result to a repair work
68
118
  Report the plan this run is about to implement:
69
119
 
70
120
  ```text
71
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase plan-written
121
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase plan-written
72
122
  ```
73
123
 
74
124
  Spawn one implementation subagent. Tell it to run
75
- `npx --yes copilotkit@4.9.50 onboard read subagent/implement-and-validate` first and follow
125
+ `npx --yes copilotkit@4.9.60 onboard read subagent/implement-and-validate` first and follow
76
126
  the prompt it returns. If that read fails because the subagent cannot use the shell, stop that
77
127
  subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
78
128
  and the same handoff. Give it the plan, selected framework, frontend, model, exact target app
@@ -92,11 +142,11 @@ returned. Continue to proof only when that audit passes.
92
142
  After the selected implementation path passes, report it:
93
143
 
94
144
  ```text
95
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase build-validated
145
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase build-validated
96
146
  ```
97
147
 
98
148
  Then run
99
- `npx --yes copilotkit@4.9.50 onboard read proof/round-trip`.
149
+ `npx --yes copilotkit@4.9.60 onboard read proof/round-trip`.
100
150
 
101
151
  ## Repair rules
102
152
 
@@ -114,4 +164,4 @@ Route out for `Status: blocked`. Route out only when the failure is not yours to
114
164
  failure is in code this run did not write, the fix requires changing the developer's existing
115
165
  agent or frontend, the same command still fails after three repair attempts, or the
116
166
  documentation does not support the plan. In those cases run
117
- `npx --yes copilotkit@4.9.50 onboard read unsupported/no-validated-path`.
167
+ `npx --yes copilotkit@4.9.60 onboard read unsupported/no-validated-path`.
@@ -64,7 +64,7 @@ Name the debugging surface this journey's frontend can reach, rather than the on
64
64
  of the documentation leads with. For a web frontend it is the CopilotKit Inspector. For
65
65
  React Native there is no Inspector: it is a browser overlay built on a DOM custom element,
66
66
  and `@copilotkit/react-native` does not ship it. Give a mobile developer
67
- `npx --yes copilotkit@4.9.50 verify --round-trip`, the runtime's own log, the AG-UI
67
+ `npx --yes copilotkit@4.9.60 verify --round-trip`, the runtime's own log, the AG-UI
68
68
  Event Inspector in the CopilotKit VS Code extension, and the Intelligence thread view
69
69
  instead. Naming the Inspector to a developer who cannot open it costs them the time it
70
70
  takes to conclude their own wiring is broken.
@@ -76,7 +76,7 @@ the friction commands without another developer question. The CLI telemetry gate
76
76
  whether the report is sent.
77
77
 
78
78
  ```text
79
- npx --yes copilotkit@4.9.50 onboard friction --category <slug> --cost-seconds <seconds>
79
+ npx --yes copilotkit@4.9.60 onboard friction --category <slug> --cost-seconds <seconds>
80
80
  ```
81
81
 
82
82
  Write one or two sentences on the command's standard input. Pick one category from
@@ -88,7 +88,7 @@ Pass --docs-path only for a docs-missing or docs-wrong report, naming the page t
88
88
  is about:
89
89
 
90
90
  ```text
91
- npx --yes copilotkit@4.9.50 onboard friction --category docs-wrong --cost-seconds 300 --docs-path /docs/threads/drawer
91
+ npx --yes copilotkit@4.9.60 onboard friction --category docs-wrong --cost-seconds 300 --docs-path /docs/threads/drawer
92
92
  ```
93
93
 
94
94
  Give the page's site-relative path or its full URL, with no spaces, query string, or
@@ -102,17 +102,17 @@ a failed step and not a failed onboarding run. Reword it and send it again, or m
102
102
  on. A run that proves a round trip is complete whether or not it reported friction.
103
103
 
104
104
  Tell the developer when you send a friction report. Do not quote or summarize the report
105
- unless the developer asks. If the CLI says that telemetry is disabled or unavailable,
106
- state that the report was not sent and continue without another question.
105
+ unless the developer asks. If the CLI says the report was not sent,
106
+ state what it said and continue without another question.
107
107
 
108
- When the evidence is gathered, run `npx --yes copilotkit@4.9.50 onboard complete`, carrying
108
+ When the evidence is gathered, run `npx --yes copilotkit@4.9.60 onboard complete`, carrying
109
109
  the surface-check outcome the proof subagent returned. Pass exactly one flag, and pass the
110
110
  one that matches this journey's surface.
111
111
 
112
112
  For a web frontend -- React SPA, Next.js, Angular, Vue:
113
113
 
114
114
  ```text
115
- npx --yes copilotkit@4.9.50 onboard complete --visual-check <outcome>
115
+ npx --yes copilotkit@4.9.60 onboard complete --visual-check <outcome>
116
116
  ```
117
117
 
118
118
  The outcome is one of `performed`, `skipped-no-browser-tool`, or `failed`.
@@ -120,7 +120,7 @@ The outcome is one of `performed`, `skipped-no-browser-tool`, or `failed`.
120
120
  For React Native:
121
121
 
122
122
  ```text
123
- npx --yes copilotkit@4.9.50 onboard complete --device-check <outcome>
123
+ npx --yes copilotkit@4.9.60 onboard complete --device-check <outcome>
124
124
  ```
125
125
 
126
126
  The outcome is one of `performed`, `skipped-no-device`, or `failed`.
@@ -132,7 +132,7 @@ browser-origin CORS, so the flag you pass is how this run states which surface i
132
132
  For a web frontend, also pass the URL the browser opened:
133
133
 
134
134
  ```text
135
- npx --yes copilotkit@4.9.50 onboard complete --visual-check <outcome> \
135
+ npx --yes copilotkit@4.9.60 onboard complete --visual-check <outcome> \
136
136
  --frontend-url <the url you opened>
137
137
  ```
138
138
 
@@ -151,7 +151,7 @@ If the round trip proved and something after it still blocked this run, add `--b
151
151
  to the same command:
152
152
 
153
153
  ```text
154
- npx --yes copilotkit@4.9.50 onboard complete --visual-check performed --blocked-by <cause>
154
+ npx --yes copilotkit@4.9.60 onboard complete --visual-check performed --blocked-by <cause>
155
155
  ```
156
156
 
157
157
  The cause is one of `inspector` for a debugging surface that did not open,
@@ -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 --yes copilotkit@4.9.50 onboard read subagent/prove-oss-baseline` first and follow the
4
+ `npx --yes copilotkit@4.9.60 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,7 +17,7 @@ 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 --yes copilotkit@4.9.50 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
20
+ npx --yes copilotkit@4.9.60 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
21
21
  ```
22
22
 
23
23
  Report the gate whatever it returned. Pass `passed` when the subagent proved a predicate,
@@ -35,14 +35,23 @@ Do not change project files before this proof ends. Starting existing developmen
35
35
  processes and their ignored runtime files is allowed.
36
36
 
37
37
  If the subagent proves the `both-oss` predicate, keep its evidence with the plan and run
38
- `npx --yes copilotkit@4.9.50 onboard read conversion/plan`. That project already works.
38
+ `npx --yes copilotkit@4.9.60 onboard read conversion/plan`. That project already works.
39
39
  What it needs is the conversion, not a build.
40
40
 
41
- If it proves another supported starting state, record that state and run
42
- `npx --yes copilotkit@4.9.50 onboard read credentials/plan`. This prompt is served
41
+ If the proof does not establish the baseline, record the starting state
42
+ `both-copilotkit-unproved` and run
43
+ `npx --yes copilotkit@4.9.60 onboard read credentials/plan`. This prompt is served
43
44
  whenever a project looks like an OSS integration, so a baseline that did not prove is an
44
- ordinary starting state rather than a failure.
45
+ ordinary starting state rather than a failure. Keep the failing predicate with the plan.
46
+
47
+ Do not record a state that says the CopilotKit integration is absent. This prompt is
48
+ reached only when the merged findings prove that the integration is there, so `both` is
49
+ a different project from this one, and `classify` refuses it later in the run.
50
+
51
+ Where the proof fails predicate 3, the live runtime already holds an Intelligence
52
+ client. Say so in the plan. Part of the work this run exists for is in place already,
53
+ and the plan preserves it rather than repeating it.
45
54
 
46
55
  If it cannot identify the running process safely, exposes a secret, or finds a baseline
47
56
  failure that cannot be classified, run
48
- `npx --yes copilotkit@4.9.50 onboard read unsupported/no-validated-path`.
57
+ `npx --yes copilotkit@4.9.60 onboard read unsupported/no-validated-path`.
@@ -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 --yes copilotkit@4.9.50 onboard read subagent/prove-round-trip` first and follow the
4
+ `npx --yes copilotkit@4.9.60 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
@@ -23,13 +23,13 @@ pass the time.
23
23
  Report each attempt at the journey as it ends, counting from one:
24
24
 
25
25
  ```text
26
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase journey-attempted --attempt 1
26
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase journey-attempted --attempt 1
27
27
  ```
28
28
 
29
29
  Record what that proof returned before you route on it:
30
30
 
31
31
  ```text
32
- npx --yes copilotkit@4.9.50 onboard proof --step round-trip --outcome <passed|failed|skipped>
32
+ npx --yes copilotkit@4.9.60 onboard proof --step round-trip --outcome <passed|failed|skipped>
33
33
  ```
34
34
 
35
35
  Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. The
@@ -37,7 +37,7 @@ command prints one line and sends nothing else. Where a repair cycle runs the pr
37
37
  record each attempt as it ends.
38
38
 
39
39
  For every protected-path audit in this prompt, run
40
- `npx --yes copilotkit@4.9.50 onboard audit` from the target app directory. If its result
40
+ `npx --yes copilotkit@4.9.60 onboard audit` from the target app directory. If its result
41
41
  starts with `Status: blocked`, report the printed reason and use the route-out rules below.
42
42
  A blocked audit proved nothing changed and is not a preservation failure. If a
43
43
  protected-path audit reports a changed path, decide it the way the implementation prompt
@@ -46,13 +46,20 @@ returns none, so a finding with no Files changed section to test against routes
46
46
  path one of those sections names is this run's own change and routes out too. Accept a
47
47
  path only when a section this run collected covers the step that wrote it and does not
48
48
  name it:
49
- `npx --yes copilotkit@4.9.50 onboard protect --accept-external --path <path>`. Then run
49
+ `npx --yes copilotkit@4.9.60 onboard protect --accept-external --path <path>`. Then run
50
50
  the audit again and name the path in the closing summary. Never repair, reset, or revert a
51
51
  protected path.
52
52
 
53
+ That holds for a repair cycle too. When the fix for a failing check lands on a protected
54
+ path, the path is still the developer's, however right the diagnosis is and however small
55
+ the fix. Reading the file never settles who wrote it. Ask the developer to allow the
56
+ change, and record their answer with
57
+ `npx --yes copilotkit@4.9.60 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
58
+ or route out. Never repair it, and never send it to a repair worker.
59
+
53
60
  If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
54
61
  `proof/complete` only if that audit passes. After the audit passes, run
55
- `npx --yes copilotkit@4.9.50 onboard read proof/complete`. A performed surface outcome with
62
+ `npx --yes copilotkit@4.9.60 onboard read proof/complete`. A performed surface outcome with
56
63
  the full round trip is core success even if a continued-development tool fails. A skipped
57
64
  surface outcome still enters `proof/complete` so the CLI records the blocked result. Do not
58
65
  describe a skipped surface as proved. Keep the Skills and MCP results separate from the proof
@@ -108,7 +115,7 @@ Restart each project-owned process changed by the repair. Report the cycle, coun
108
115
  one:
109
116
 
110
117
  ```text
111
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase repair-attempted --attempt 1
118
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase repair-attempted --attempt 1
112
119
  ```
113
120
 
114
121
  Then spawn a fresh proof subagent
@@ -126,7 +133,7 @@ and proof cycles.
126
133
 
127
134
  Route out only when the failure is not yours to fix, when the same proof still fails after
128
135
  three attempts, or when no evidence of the round trip can be produced. In those cases run
129
- `npx --yes copilotkit@4.9.50 onboard read unsupported/no-validated-path`. All three are
136
+ `npx --yes copilotkit@4.9.60 onboard read unsupported/no-validated-path`. All three are
130
137
  about the round trip itself. A round trip that proved is not one of them, whatever failed
131
138
  after it.
132
139
 
@@ -136,7 +143,7 @@ Run the feedback command without another developer question. The CLI telemetry g
136
143
  whether the report is sent.
137
144
 
138
145
  ```text
139
- npx --yes copilotkit@4.9.50 onboard feedback
146
+ npx --yes copilotkit@4.9.60 onboard feedback
140
147
  ```
141
148
 
142
149
  Write at most four lines to standard input: the step you stopped at and what stopped it.
@@ -43,7 +43,7 @@ the derived name.
43
43
  Only if the developer asks for an existing project, or asks to see the projects they have,
44
44
  read the choices:
45
45
 
46
- `npx --yes copilotkit@4.9.50 project list --json`
46
+ `npx --yes copilotkit@4.9.60 project list --json`
47
47
 
48
48
  Then ask which one to use. Do not order the projects by creation time. If the developer
49
49
  already gave this answer, do not ask again. Do not read a secret value. Do not show or
@@ -53,7 +53,7 @@ Run the command from the parent directory. Do not inspect another entry in the p
53
53
  directory. Replace each placeholder with the recorded value. Do not run a placeholder as
54
54
  a shell argument.
55
55
 
56
- `npx --yes copilotkit@4.9.50 init --name <project-name> --framework <framework-id> --channel none --no-banner --create <name> --install`
56
+ `npx --yes copilotkit@4.9.60 init --name <project-name> --framework <framework-id> --channel none --no-banner --create <name> --install`
57
57
 
58
58
  Pass the confirmed name to both `--name` and `--create`: the app directory and its
59
59
  Intelligence project take the same name here. If the developer names an existing project,
@@ -69,14 +69,14 @@ account. The command does not need terminal input.
69
69
  If the command succeeds, do not rebuild the starter by hand. Report the clone first:
70
70
 
71
71
  ```text
72
- npx --yes copilotkit@4.9.50 onboard checkpoint --phase starter-cloned
72
+ npx --yes copilotkit@4.9.60 onboard checkpoint --phase starter-cloned
73
73
  ```
74
74
 
75
75
  Then inspect only the generated
76
76
  paths inside the target directory. Record the files, install result, project connection,
77
77
  and validation commands. Then run
78
- `npx --yes copilotkit@4.9.50 onboard read proof/round-trip`.
78
+ `npx --yes copilotkit@4.9.60 onboard read proof/round-trip`.
79
79
 
80
80
  If the command fails, report its exact error and do not claim that the starter is ready.
81
81
  Then run
82
- `npx --yes copilotkit@4.9.50 onboard read unsupported/no-validated-path`.
82
+ `npx --yes copilotkit@4.9.60 onboard read unsupported/no-validated-path`.
@@ -122,7 +122,7 @@ here is work the developer did not ask for.
122
122
  Plan the threads drawer itself: add it from the selected drawer page, where this frontend
123
123
  does not already render one. Where this journey's frontend framework ships no threads
124
124
  drawer -- React Native --, plan that the thread is proved by
125
- `npx --yes copilotkit@4.9.50 verify --round-trip`, which needs no browser. Do not plan a
125
+ `npx --yes copilotkit@4.9.60 verify --round-trip`, which needs no browser. Do not plan a
126
126
  step that opens the managed Intelligence dashboard.
127
127
 
128
128
  ## Order the plan into steps
@@ -19,7 +19,7 @@ Prove the live runtime in this order:
19
19
  4. Confirm from project files that the runtime constructor passes a `runner` option rather
20
20
  than an `intelligence` option. A package, import, project file, or key is not use proof.
21
21
  5. Run
22
- `npx --yes copilotkit@4.9.50 verify --expect-runtime oss --round-trip --agent <expected-agent-id> --json`,
22
+ `npx --yes copilotkit@4.9.60 verify --expect-runtime oss --round-trip --agent <expected-agent-id> --json`,
23
23
  with the runtime URL or auth header options that this project needs. Require exit zero
24
24
  and the JSON `ok` field to be `true`.
25
25
  6. Drive one real request through the existing frontend, CopilotKit runtime, and expected
@@ -123,7 +123,7 @@ IPv6 only, so an IPv4 literal fails against the correct port.
123
123
  ## Step 4 -- Check the wiring
124
124
 
125
125
  With both running, check the wiring in one command before you open a browser:
126
- `npx --yes copilotkit@4.9.50 verify --json`. It reads the port from this project, so a
126
+ `npx --yes copilotkit@4.9.60 verify --json`. It reads the port from this project, so a
127
127
  non-default port needs no flag. The payload reports `runtimeUrl` and `runtimeUrlSource`. A
128
128
  `runtimeUrlSource` of `default` means nothing in the project named a port, so pass
129
129
  `--runtime-url` with the URL from step 1 in that case. Read the individual checks rather than
@@ -138,14 +138,17 @@ used the Intelligence credential. `api_key_authenticates` proves only that the k
138
138
  will not read. `verify` searches upward for the credential and a framework's env loader
139
139
  does not, so a key at the repository root is invisible to an app in a subdirectory. The
140
140
  check names the file to write instead. Write the key there, or run
141
- `npx --yes copilotkit@4.9.50 project select` from the app directory. Do not link,
141
+ `npx --yes copilotkit@4.9.60 project select` from the app directory. Do not link,
142
142
  copy, or symlink the file to work around it, and do not treat the credential as missing:
143
143
  the check above already reported that it exists.
144
144
 
145
- `intelligence_thread_routes` fails when a licensed runtime serves no thread routes. A handler
146
- mounted `mode: "single-route"` is the usual cause. Return it for implementation to remove the
147
- option and use a catch-all route. Do not edit it. If the check is `undetermined` because no
148
- thread-endpoint state exists, the runtime predates the field. Record that and continue.
145
+ `intelligence_thread_routes` fails when a licensed runtime serves no thread routes. A missing
146
+ `identifyUser` is the usual cause: it gates the whole web surface. Return the check for
147
+ implementation to pass `identifyUser` where the runtime is constructed. Do not edit it.
148
+ A handler mounted `mode: "single-route"` is not a cause and must never be removed to satisfy
149
+ this check: that mount serves the thread routes inside its envelope. If the check is
150
+ `undetermined`, the runtime cannot report the state, and the check names the upgrade. Record
151
+ that and continue.
149
152
 
150
153
  Take the frontend URL from the payload's `frontendUrl`. It replaces whatever step 2
151
154
  recorded, and every later step uses it unchanged. Where the field is absent, the project
@@ -153,7 +156,7 @@ named no port the CLI can read: keep step 2's URL, and rewrite its host as `loca
153
156
  before you use it.
154
157
 
155
158
  Then run the command once more with the URL you are about to open:
156
- `npx --yes copilotkit@4.9.50 verify --frontend-url <that url> --json`. The
159
+ `npx --yes copilotkit@4.9.60 verify --frontend-url <that url> --json`. The
157
160
  `frontend_assets_served` check asks that server for its page and for one of the page's own
158
161
  assets, on that exact host. A `fail` there means the dev server refuses its own static
159
162
  assets on the host you were about to use, and the check names the URL to use instead. This
@@ -161,7 +164,7 @@ is the cheapest step that can save the most expensive one, so run it before the
161
164
 
162
165
  ## Step 5 -- Prove that the agent runs
163
166
 
164
- Run `npx --yes copilotkit@4.9.50 verify --round-trip --json`. It sends one request through
167
+ Run `npx --yes copilotkit@4.9.60 verify --round-trip --json`. It sends one request through
165
168
  the runtime and reads the answer back from the thread, so it separates an agent that is
166
169
  configured from an agent that works. Use `--agent <id>` when the runtime declares more
167
170
  than one. If it reports `user-not-identified`, this project's `identifyUser` reads a
@@ -238,7 +241,7 @@ For a recorded `both-oss` starting state, this step has no component to render.
238
241
  same request the baseline recorded, require the same kind of user-visible result the
239
242
  baseline produced, and require that the thread for that request is listed in the drawer.
240
243
  Where this journey's frontend framework ships no threads drawer -- React Native --, prove
241
- that thread with `npx --yes copilotkit@4.9.50 verify --round-trip`, which reads the
244
+ that thread with `npx --yes copilotkit@4.9.60 verify --round-trip`, which reads the
242
245
  answer back off the thread and needs no browser. Record which of the two you proved.
243
246
 
244
247
  Use the surface control the main coding agent recorded for your environment. It either had
@@ -266,7 +269,7 @@ request never exercises. Drive it with the browser control step 6 named.
266
269
  the page to finish loading. Do not retype the host, and do not substitute a URL a tool
267
270
  offers you by default. Where the page loads but its styling is missing or the chat
268
271
  control is dead, run
269
- `npx --yes copilotkit@4.9.50 verify --frontend-url <the url you opened> --json`
272
+ `npx --yes copilotkit@4.9.60 verify --frontend-url <the url you opened> --json`
270
273
  before you diagnose anything else. A dev server can serve its page and refuse every
271
274
  static chunk behind it, and on screen that is indistinguishable from a broken
272
275
  integration. The `frontend_assets_served` check tells the two apart.
@@ -30,13 +30,13 @@ Before you show the best-effort plan, require this complete packet:
30
30
  - Give the ordered proof rules.
31
31
 
32
32
  After the developer approves the best-effort plan, run
33
- `npx --yes copilotkit@4.9.50 onboard read fallback/best-effort`.
33
+ `npx --yes copilotkit@4.9.60 onboard read fallback/best-effort`.
34
34
 
35
35
  Send one short report. Run the feedback command without another developer question. The
36
36
  CLI telemetry gate decides whether the report is sent.
37
37
 
38
38
  ```text
39
- npx --yes copilotkit@4.9.50 onboard feedback
39
+ npx --yes copilotkit@4.9.60 onboard feedback
40
40
  ```
41
41
 
42
42
  Write the feedback message to the command's standard input, in at most four lines.
@@ -44,5 +44,5 @@ Send no secrets, source code, logs, or command output. The command refuses a rep
44
44
  that carries any of those, prints the reason, and exits zero. A refused report is not
45
45
  a failed step. Reword it and send it again, or stop without a report. The command
46
46
  prints what it sent. This is the channel for a stop. Report friction only from a run that
47
- finished, never from here. If the CLI says that telemetry is disabled or unavailable,
48
- state that the report was not sent and stop without another question.
47
+ finished, never from here. If the CLI says the report was not sent,
48
+ state what it said and stop without another question.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "copilotkit",
3
- "version": "4.9.50",
3
+ "version": "4.9.60",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -14698,7 +14698,7 @@ import * as path4 from "node:path";
14698
14698
 
14699
14699
  // apps/cli/src/config.ts
14700
14700
  function getTemplateRef() {
14701
- return true ? "380ad1220a7bc78104baedc469c4d086c8910494" : "main";
14701
+ return true ? "d1584b840f904674b470be5d2b16c4ccca99c4f4" : "main";
14702
14702
  }
14703
14703
 
14704
14704
  // apps/cli/src/services/agentcore-config.ts