copilotkit 4.11.0 → 4.13.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 (82) hide show
  1. package/LICENSE +11 -0
  2. package/README.md +155 -12
  3. package/cli-build-info.json +8 -8
  4. package/index.js +5969 -4751
  5. package/onboarding/index.json +27 -2
  6. package/onboarding/prompts/authenticate/start.md +45 -38
  7. package/onboarding/prompts/conversion/plan.md +3 -3
  8. package/onboarding/prompts/credentials/finalize-plan.md +14 -13
  9. package/onboarding/prompts/credentials/plan.md +26 -20
  10. package/onboarding/prompts/credentials/settle-credentials.md +55 -23
  11. package/onboarding/prompts/credentials/write-plan.md +19 -6
  12. package/onboarding/prompts/fallback/best-effort.md +6 -6
  13. package/onboarding/prompts/feature/a2ui/implement.md +7 -7
  14. package/onboarding/prompts/feature/a2ui/proof.md +6 -6
  15. package/onboarding/prompts/feature/a2ui/start.md +10 -8
  16. package/onboarding/prompts/feature/blocked-by-plan.md +32 -0
  17. package/onboarding/prompts/feature/channels/implement.md +68 -13
  18. package/onboarding/prompts/feature/channels/proof.md +13 -6
  19. package/onboarding/prompts/feature/channels/start.md +30 -11
  20. package/onboarding/prompts/feature/chat-suggestions/implement.md +7 -7
  21. package/onboarding/prompts/feature/chat-suggestions/proof.md +6 -6
  22. package/onboarding/prompts/feature/chat-suggestions/start.md +10 -8
  23. package/onboarding/prompts/feature/complete.md +1 -1
  24. package/onboarding/prompts/feature/learning/implement.md +73 -14
  25. package/onboarding/prompts/feature/learning/proof.md +10 -9
  26. package/onboarding/prompts/feature/learning/start.md +61 -7
  27. package/onboarding/prompts/feature/open-generative-ui/implement.md +7 -7
  28. package/onboarding/prompts/feature/open-generative-ui/proof.md +6 -6
  29. package/onboarding/prompts/feature/open-generative-ui/start.md +10 -8
  30. package/onboarding/prompts/feature/realtime-sync/implement.md +8 -8
  31. package/onboarding/prompts/feature/realtime-sync/proof.md +6 -6
  32. package/onboarding/prompts/feature/realtime-sync/start.md +9 -7
  33. package/onboarding/prompts/feature/rich-threads/implement.md +9 -9
  34. package/onboarding/prompts/feature/rich-threads/proof.md +6 -6
  35. package/onboarding/prompts/feature/rich-threads/start.md +9 -7
  36. package/onboarding/prompts/feature/stop.md +2 -2
  37. package/onboarding/prompts/feature/voice/implement.md +7 -7
  38. package/onboarding/prompts/feature/voice/proof.md +6 -6
  39. package/onboarding/prompts/feature/voice/start.md +10 -8
  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 +4 -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 +5 -2
  47. package/onboarding/prompts/framework/google-adk.md +4 -2
  48. package/onboarding/prompts/framework/langgraph-fastapi.md +4 -3
  49. package/onboarding/prompts/framework/langgraph-python.md +6 -2
  50. package/onboarding/prompts/framework/langgraph-typescript.md +6 -2
  51. package/onboarding/prompts/framework/llamaindex.md +2 -2
  52. package/onboarding/prompts/framework/mastra.md +4 -2
  53. package/onboarding/prompts/framework/ms-agent-dotnet.md +4 -2
  54. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
  55. package/onboarding/prompts/framework/ms-agent-python.md +4 -2
  56. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  57. package/onboarding/prompts/framework/strands-python.md +4 -2
  58. package/onboarding/prompts/framework/strands-typescript.md +4 -2
  59. package/onboarding/prompts/frontend/angular.md +5 -5
  60. package/onboarding/prompts/frontend/nextjs.md +4 -4
  61. package/onboarding/prompts/frontend/plan.md +21 -10
  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 +39 -16
  66. package/onboarding/prompts/proof/complete.md +35 -15
  67. package/onboarding/prompts/proof/oss-baseline.md +5 -5
  68. package/onboarding/prompts/proof/round-trip.md +23 -12
  69. package/onboarding/prompts/research/gather.md +33 -91
  70. package/onboarding/prompts/research/merge.md +60 -0
  71. package/onboarding/prompts/research/preflight.md +75 -0
  72. package/onboarding/prompts/research/route.md +49 -4
  73. package/onboarding/prompts/starter/clone.md +5 -5
  74. package/onboarding/prompts/stopped/run-failed.md +30 -1
  75. package/onboarding/prompts/subagent/create-plan.md +24 -1
  76. package/onboarding/prompts/subagent/implement-and-validate.md +32 -1
  77. package/onboarding/prompts/subagent/inspect-repository.md +43 -16
  78. package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
  79. package/onboarding/prompts/subagent/prove-round-trip.md +37 -10
  80. package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
  81. package/package.json +7 -3
  82. package/release/release-tool.js +1 -1
@@ -14,20 +14,40 @@ notification. Where your own harness hands you the report from the dispatch itse
14
14
  you already hold the result. Either way there is nothing to poll.
15
15
 
16
16
  After you dispatch, do the work that does not depend on the result -- dispatch the other
17
- subagent, run the preflight below -- and then stop and wait. Wherever a prompt in this graph
18
- says to wait for a subagent to finish, that is what it means.
17
+ subagent, run the preflight the next prompt gives you -- and then stop and wait. Wherever a
18
+ prompt in this graph says to wait for a subagent to finish, that is what it means.
19
19
 
20
20
  Do not sleep to pass the time. Not `sleep`, not `/bin/sleep`, not a timer under another
21
21
  name, and not a loop that re-checks whether a result has arrived. Sleeping tells you nothing
22
- that waiting for the result does not, and it spends wall clock, which is one of the things
23
- this journey is measured on. One recorded run spent most of two hours asleep between
24
- dispatches that had all returned in seconds.
22
+ that waiting for the result does not, and it spends wall clock.
23
+
24
+ ## When a subagent cannot work
25
+
26
+ This rule also covers every subagent this run spawns, here and in every later prompt.
27
+
28
+ A subagent that returns no usable result has failed in your harness, not in this graph.
29
+ Delegation buys parallelism and a clean context, not capability: every assignment in this
30
+ run is work you can do yourself, slower. So run that assignment yourself and carry on,
31
+ rather than treating it as the end of the run.
32
+
33
+ Both research subagents failing means this harness has no working subagent at all, which
34
+ is worth recording once:
35
+
36
+ ```text
37
+ npx --yes copilotkit@4.13.0 onboard checkpoint --phase delegation-unavailable
38
+ ```
39
+
40
+ Then say once, in your own words, that this environment has no working subagents, so you
41
+ will carry out each step yourself and the run will take longer than usual.
42
+
43
+ For the rest of this run, wherever a prompt tells you to spawn a subagent, read that
44
+ `subagent/` brief yourself and follow it in place of spawning one.
25
45
 
26
46
  Before you ask the developer any setup question, finish every read-only investigation and
27
47
  preflight check in this section.
28
48
 
29
49
  Prepare two research assignments. Give each research subagent one assignment. Tell it to run
30
- `npx --yes copilotkit@4.11.0 onboard read subagent/inspect-repository` first and follow the
50
+ `npx --yes copilotkit@4.13.0 onboard read subagent/inspect-repository` first and follow the
31
51
  prompt it returns. If that read fails because the subagent cannot use the shell, stop that
32
52
  subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
33
53
  and the same handoff. Require only its assigned packet.
@@ -38,98 +58,20 @@ Start both research subagents in parallel:
38
58
  2. Spawn a second research subagent. Assign it the environment evidence packet.
39
59
  3. Start both research subagents. Then continue.
40
60
 
41
- Continue to the surface-control preflight.
42
-
43
- Prove whether your coding-agent environment has browser or device control. Do not assume it
44
- either way, and do not report what you expect to be true: a run that guesses here records a
45
- capability every later step then trusts. Use a browser or device tool already
46
- configured for the coding agent you are running as, the same way a later step uses the
47
- CopilotKit documentation server. With a browser tool, open one inert page such as
48
- `about:blank` and read its title. With a device tool and no browser, list the booted devices
49
- in one command: `adb devices -l`. Record the outcome of that attempt: `available` when the
50
- tool answered, `unavailable` when there was none to call or the page did not open. Use
51
- the control that matches the selected surface later.
52
-
53
- Where the browser probe answered, register nothing. The harness came equipped and the run
54
- owes it no setup.
55
-
56
- Where no browser tool answered, register one for the coding agent you are running as, then
57
- run the same probe again and record what the second attempt did. Register this server:
61
+ Report that both subagents started:
58
62
 
59
63
  ```text
60
- npx --yes @playwright/mcp@latest --browser chrome --isolated --output-dir <project>/.copilotkit/proof/browser
61
- ```
62
-
63
- Replace `<project>` with the absolute path of the target project directory. The server is
64
- registered against the coding agent rather than against a directory, so a relative path here
65
- resolves wherever that server happens to start.
66
-
67
- `--browser chrome` drives the Google Chrome the developer already has, so this downloads no
68
- browser. `--isolated` keeps the profile in memory, so it never touches their own Chrome
69
- profile. `--output-dir` is what keeps the snapshots and screenshots out of the developer's
70
- repository root: without it this server writes them to `.playwright-mcp/` beside their code,
71
- which a project that never asked for a browser has no reason to carry, and which this setup's
72
- own evidence rule already has a place for. Register it the way your own harness registers a
73
- server, which is the mechanism a later step uses for the CopilotKit documentation server.
74
-
75
- Tell the developer in one line what you registered, that it drives their installed Chrome,
76
- and that it lives in this coding agent's configuration rather than in their repository. Do
77
- not ask them to approve it, and do not ask a second question about it.
78
-
79
- Do not add a browser or device driver to the project. A driver added there is a
80
- devDependency and a browser download in the diff of a repository that never asked for one,
81
- which is a different thing from a server registered against the coding agent.
82
-
83
- Where the second probe still does not answer -- no Chrome to drive, no network, or a
84
- harness that cannot register a server -- record `unavailable` and carry it. Do not keep
85
- trying, and do not ask the developer about this tool limit.
86
-
87
- Registering a server does not boot a device. Where the device probe found none, that is the
88
- whole finding, and a browser is not a substitute for a device.
89
-
90
- Wait for both research subagents to finish.
91
-
92
- ## Settle the port
93
-
94
- The findings name the ports this project declares and the ports already held on this
95
- machine. Pick one free port for the frontend now, and use that number for the rest of the
96
- run: in the plan, in the implementation, and in the proof. Record it with the findings you
97
- hand to every later subagent.
98
-
99
- Do not let a later step pick again. A run that decides the port three times produces three
100
- numbers, and `verify` reads none of them: with no recorded URL it assumes port 3000, and
101
- whatever holds that port answers. An unrelated checkout on this machine then reports as
102
- this project's proven wiring.
103
-
104
- Project selection is where the settled port is written down, through `--runtime-url`.
105
-
106
- Then report that the research came back:
107
-
108
- ```text
109
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase research-returned
64
+ npx --yes copilotkit@4.13.0 onboard checkpoint --phase research-dispatched
110
65
  ```
111
66
 
112
67
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
113
68
  failed step.
114
69
 
115
- Continue only if both research results start with `Status: passed`. For `Status: failed`,
116
- retry only that packet with its failed items, up to three attempts. For `Status: blocked`,
117
- or a third failed result, use the stop route at the end of this prompt.
118
-
119
- Merge both evidence packets by item. On a conflict, spawn one fresh read-only verifier with
120
- the item, both cited findings, and the research limits. Require its result to start with
121
- `Status: passed`, `Status: failed`, or `Status: blocked`. Use only a passed cited result. Do
122
- not inspect the project to settle the conflict yourself. Use the stop route for a non-pass
123
- verifier result.
70
+ The research is under way. Continue to the surface-control preflight while it runs:
124
71
 
125
- Match environment evidence to the target app directory from the project packet. Require one
126
- target app directory and one matching environment row. If either packet gives no match or
127
- more than one match, send each research worker a focused directory check. Continue only when
128
- both workers return the same one target app directory. Both results must start with
129
- `Status: passed`. Otherwise, use the stop route.
130
-
131
- When both research results are merged, run
132
- `npx --yes copilotkit@4.11.0 onboard read research/route`.
72
+ ```text
73
+ npx --yes copilotkit@4.13.0 onboard read research/preflight
74
+ ```
133
75
 
134
76
  If inspection stops onboarding, run
135
- `npx --yes copilotkit@4.11.0 onboard read stopped/run-failed`.
77
+ `npx --yes copilotkit@4.13.0 onboard read stopped/run-failed`.
@@ -0,0 +1,60 @@
1
+ # Merge the research and settle the port
2
+
3
+ The surface is settled. This phase collects both research packets, picks the port the rest
4
+ of the run uses, and merges the findings into one answer.
5
+
6
+ Wait for both research subagents to finish.
7
+
8
+ ## Settle the port
9
+
10
+ The findings name the ports this project declares and the ports already held on this
11
+ machine. Pick one free port for the frontend now, and use that number for the rest of the
12
+ run: in the plan, in the implementation, and in the proof. Record it with the findings you
13
+ hand to every later subagent.
14
+
15
+ Do not let a later step pick again. A run that decides the port three times produces three
16
+ numbers, and `verify` reads none of them: with no recorded URL it assumes port 3000, and
17
+ whatever holds that port answers.
18
+
19
+ Project selection is where the settled port is written down, through `--runtime-url`.
20
+
21
+ Then report that the research came back:
22
+
23
+ ```text
24
+ npx --yes copilotkit@4.13.0 onboard checkpoint --phase research-returned
25
+ ```
26
+
27
+ A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
28
+ failed step.
29
+
30
+ Continue only if both research results start with `Status: passed`. For `Status: failed`,
31
+ retry only that packet with its failed items, up to three attempts. For `Status: blocked`,
32
+ or a third failed result, use the stop route at the end of this prompt.
33
+
34
+ Merge both evidence packets by item. On a conflict, spawn one fresh read-only verifier with
35
+ the item, both cited findings, and the research limits. Require its result to start with
36
+ `Status: passed`, `Status: failed`, or `Status: blocked`. Use only a passed cited result. Do
37
+ not inspect the project to settle the conflict yourself. Use the stop route for a non-pass
38
+ verifier result.
39
+
40
+ A target project directory that holds no project has no app directory to key on, and
41
+ that is a merged result rather than a failed merge. Record that this run has no target app
42
+ directory and no environment row, then take the read below. Do not send a focused directory
43
+ check, and do not use the stop route: neither worker can find a directory a developer has
44
+ not created yet, and the route below is where such a project picks its starter.
45
+
46
+ A directory holding only a Git repository, a coding agent's own configuration, editor
47
+ settings or scratch notes holds no project. `onboard inspect` reports that as
48
+ `appDiscovery.reason` of `no-project`.
49
+
50
+ For a target project that does hold an app, match environment evidence to the target app
51
+ directory from the project packet. Require one target app directory and one matching
52
+ environment row. If either packet gives no match or more than one match, send each research
53
+ worker a focused directory check. Continue only when both workers return the same one target
54
+ app directory. Both results must start with `Status: passed`. Otherwise, use the stop route.
55
+
56
+ When both research results are merged, run
57
+ `npx --yes copilotkit@4.13.0 onboard read research/route`.
58
+
59
+ If inspection stops onboarding, run
60
+ `npx --yes copilotkit@4.13.0 onboard read stopped/run-failed`.
@@ -0,0 +1,75 @@
1
+ # Prove what this environment can drive
2
+
3
+ The research subagents are running. This phase settles what your coding agent can drive, so
4
+ every later step reads one recorded answer instead of guessing. Do not change application
5
+ code here, and do not wait for the research packets yet.
6
+
7
+ Prove whether your coding-agent environment has browser or device control. Do not assume it
8
+ either way, and do not report what you expect to be true. Use a browser or device tool already
9
+ configured for the coding agent you are running as, the same way a later step uses the
10
+ CopilotKit documentation server. With a browser tool, open one inert page such as
11
+ `about:blank` and read its title. With a device tool and no browser, list the booted devices
12
+ in one command: `adb devices -l`. Record the outcome of that attempt: `available` when the
13
+ tool answered, `unavailable` when there was none to call or the page did not open. Use
14
+ the control that matches the selected surface later.
15
+
16
+ Where the browser probe answered, register nothing. The harness came equipped.
17
+
18
+ Where no browser tool answered, register one for the coding agent you are running as, then
19
+ run the same probe again and record what the second attempt did.
20
+
21
+ Tell the developer in one line what you are about to register, that it lives in this coding
22
+ agent's configuration rather than in their repository, and that they can remove it again.
23
+ Say that before you run the command. The run does not ask again.
24
+
25
+ Register this server:
26
+
27
+ ```text
28
+ npx --yes @playwright/mcp@latest --browser chrome --isolated --output-dir <project>/.copilotkit/proof/browser
29
+ ```
30
+
31
+ Replace `<project>` with the absolute path of the target project directory. The server is
32
+ registered against the coding agent rather than against a directory, so a relative path here
33
+ resolves wherever that server happens to start.
34
+
35
+ `--browser chrome` drives an installed Google Chrome. Where this machine has none, use
36
+ `--browser chromium` instead and expect Playwright to download a browser build. Tell the
37
+ developer before that download starts. If the server then reports no build, run
38
+ `npx playwright install chromium`, and if it still cannot find one, run
39
+ `npx @playwright/mcp install-browser chrome-for-testing`. `--isolated` keeps the profile in
40
+ memory, so it never touches their own Chrome profile. `--output-dir` keeps the snapshots and
41
+ screenshots out of the developer's repository root: without it this server writes them to
42
+ `.playwright-mcp/` beside their code, which a project that never asked for a browser has no
43
+ reason to carry. Register it the way your own harness registers a server, which is the
44
+ mechanism a later step uses for the CopilotKit documentation server.
45
+
46
+ Some coding agents, Claude Code among them, load a newly registered MCP server only at the
47
+ next session start. Tell the developer in one line to expect one restart, then restart and
48
+ re-bind with `npx --yes copilotkit@4.13.0 onboard start --run <onboarding_run_id>`. That
49
+ restart is a step here, not an error.
50
+
51
+ Do not add a browser or device driver to the project. A driver added there is a
52
+ devDependency and a browser download in the diff of a repository that never asked for one,
53
+ which is a different thing from a server registered against the coding agent.
54
+
55
+ Where the second probe still does not answer -- no browser to drive, no network, or a
56
+ harness that cannot register a server -- record `unavailable` and carry it. Do not keep
57
+ trying. Say so in one line. Nothing here is for the developer to decide.
58
+
59
+ Registering a server does not boot a device. Where the device probe found none, that is the
60
+ whole finding.
61
+
62
+ Report that the probe settled, whichever way it came out:
63
+
64
+ ```text
65
+ npx --yes copilotkit@4.13.0 onboard checkpoint --phase surface-probed
66
+ ```
67
+
68
+ Then merge the research:
69
+
70
+ ```text
71
+ npx --yes copilotkit@4.13.0 onboard read research/merge
72
+ ```
73
+
74
+ If inspection stops onboarding, run
75
+ `npx --yes copilotkit@4.13.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 --yes copilotkit@4.11.0 onboard protect
12
+ npx --yes copilotkit@4.13.0 onboard protect
13
13
  ```
14
14
 
15
15
  It reads the working tree itself, records every changed or untracked path with a digest,
@@ -28,6 +28,30 @@ graph exists to create is never stopped by them.
28
28
  If the result starts with `Status: blocked`, report the printed reason and use the stop
29
29
  route at the end of this prompt.
30
30
 
31
+ ## Route a named Channel before the findings
32
+
33
+ The prompt the developer copied names the docs page it came from. A Slack or Teams docs
34
+ page names the surface this run is for. So does a developer who has already said Slack or
35
+ Microsoft Teams. Either one settles the frontend.
36
+
37
+ Record that docs page and give it to every later node and subagent. The copied prompt is
38
+ the only carrier of the surface the developer wants, and no flag states it.
39
+
40
+ On either, run this before you read the three findings below, and without asking the
41
+ purpose question:
42
+
43
+ ```text
44
+ npx --yes copilotkit@4.13.0 onboard read feature/channels/start
45
+ ```
46
+
47
+ Name the provider to that node so it does not ask again. A Slack page names Slack. A Teams
48
+ page names Teams.
49
+
50
+ Take this route whatever the three findings prove. An agent, a frontend and a CopilotKit
51
+ integration are a valid start for a Channel, not a reason to convert the application: the
52
+ run keeps that code as it is and wires a managed Channel onto it. Do not send a Channel
53
+ request to the conversion route.
54
+
31
55
  ## What the merged findings must contain
32
56
 
33
57
  If a repository file exists, each finding must cite it. For an empty project, the subagents
@@ -37,6 +61,27 @@ The findings must cover what the project is for, the agent, frontend, CopilotKit
37
61
  authentication, credential names, and validation path. Do not ask the developer for facts
38
62
  that the repository answers.
39
63
 
64
+ ## What the CLI proposed for the framework and frontend
65
+
66
+ `onboard inspect` matched the project's manifests against the framework and frontend sets
67
+ this graph serves, and its `detection` block carries the result with the dependency and
68
+ directory behind each answer. Read it as a proposal.
69
+
70
+ - `match` names the one slug that fits. Confirm it against the findings before you use it.
71
+ - `matched` holds more than one slug where more than one fits. `langgraph-python` and
72
+ `langgraph-fastapi` are two ways of serving one framework and no dependency tells them
73
+ apart, so pick by how the agent is actually served.
74
+ - `match: null` with an empty `matched` means the CLI placed nothing. This is never a
75
+ stop, and never a reason to route out on its own. It says only that no dependency
76
+ matched. Whether the project can be onboarded is your judgment, not its.
77
+ - `unmatched` names the dependencies it did not place. Use them as evidence for what the
78
+ project runs.
79
+
80
+ Detection proposes and you dispose. Keep the documentation-gap exception exactly as it is:
81
+ an agent framework outside this set that speaks AG-UI is still yours to recognize and
82
+ route to best effort. Where your reading disagrees with the proposal, record your own
83
+ answer and say that the two disagreed.
84
+
40
85
  ## Route on the merged findings
41
86
 
42
87
  Read the route off the merged findings. Three of them decide it, and you already hold all
@@ -51,7 +96,7 @@ settle these three from your own reading of the project. Each one comes from the
51
96
  packets or it is not proved.
52
97
 
53
98
  If all three are proved, prove the live starting state before any project file changes. Run
54
- `npx --yes copilotkit@4.11.0 onboard read proof/oss-baseline`.
99
+ `npx --yes copilotkit@4.13.0 onboard read proof/oss-baseline`.
55
100
 
56
101
  Route there before you ask the developer anything else. The questions after this prompt
57
102
  select a framework and a frontend that the findings already name, so a developer who
@@ -64,7 +109,7 @@ developer nor the repository findings prove what the project is for, ask one gui
64
109
  question about the user outcome. This asks what the developer wants to build before you
65
110
  select a framework. Give two or three short examples and offer a minimal starter. Record
66
111
  the answer and give it to each later subagent. Then run
67
- `npx --yes copilotkit@4.11.0 onboard read credentials/plan`.
112
+ `npx --yes copilotkit@4.13.0 onboard read credentials/plan`.
68
113
 
69
114
  Do not ask that question on the route above. A project carrying all three states its
70
115
  purpose in the application it already serves.
@@ -76,5 +121,5 @@ A purpose question here names a domain before that choice.
76
121
  Take the same read named above without asking.
77
122
 
78
123
  If authentication or inspection stops onboarding, run
79
- `npx --yes copilotkit@4.11.0 onboard read stopped/run-failed`. Neither says anything
124
+ `npx --yes copilotkit@4.13.0 onboard read stopped/run-failed`. Neither says anything
80
125
  about whether this project's stack is supported, which is not yet known at this point.
@@ -46,7 +46,7 @@ the derived name.
46
46
  Only if the developer asks for an existing project, or asks to see the projects they have,
47
47
  read the choices:
48
48
 
49
- `npx --yes copilotkit@4.11.0 project list --json`
49
+ `npx --yes copilotkit@4.13.0 project list --json`
50
50
 
51
51
  Then ask which one to use. Do not order the projects by creation time. If the developer
52
52
  already gave this answer, do not ask again. Do not read a secret value. Do not show or
@@ -56,7 +56,7 @@ Run the command from the parent directory. Do not inspect another entry in the p
56
56
  directory. Replace each placeholder with the recorded value. Do not run a placeholder as
57
57
  a shell argument.
58
58
 
59
- `npx --yes copilotkit@4.11.0 init --name <project-name> --framework <framework-id> --channel none --no-banner --create <name> --install`
59
+ `npx --yes copilotkit@4.13.0 init --name <project-name> --framework <framework-id> --channel none --no-banner --create <name> --install`
60
60
 
61
61
  Pass the confirmed name to both `--name` and `--create`: the app directory and its
62
62
  Intelligence project take the same name here. If the developer names an existing project,
@@ -72,7 +72,7 @@ account. The command does not need terminal input.
72
72
  Report the clone before you inspect anything:
73
73
 
74
74
  ```text
75
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase starter-cloned
75
+ npx --yes copilotkit@4.13.0 onboard checkpoint --phase starter-cloned
76
76
  ```
77
77
 
78
78
  This is its own step, not an aside. A run that clones and then goes quiet is
@@ -82,10 +82,10 @@ separates them.
82
82
  Do not rebuild the starter by hand. Then inspect only the generated
83
83
  paths inside the target directory. Record the files, install result, project connection,
84
84
  and validation commands. Then run
85
- `npx --yes copilotkit@4.11.0 onboard read proof/round-trip`.
85
+ `npx --yes copilotkit@4.13.0 onboard read proof/round-trip`.
86
86
 
87
87
  If the command fails, report its exact error and do not claim that the starter is ready.
88
88
  Then run
89
- `npx --yes copilotkit@4.11.0 onboard read stopped/run-failed`. The starter is one this
89
+ `npx --yes copilotkit@4.13.0 onboard read stopped/run-failed`. The starter is one this
90
90
  graph ships and the stack was chosen from its own supported list, so a command that
91
91
  returned an error is a run that broke, not a setup this release does not support.
@@ -23,13 +23,42 @@ Say what the developer has now. Name the processes still running and the files t
23
23
  changed, so they can carry on by hand or start again from a known state. A run that stops
24
24
  without saying what it left behind leaves the developer to discover it.
25
25
 
26
+ ## If one scoped fix can finish this run
27
+
28
+ Do not decide this yourself. This run refused to widen its own scope, and that refusal
29
+ stands. The developer is the one who can widen it.
30
+
31
+ Name the one fix you propose, and say which file or process it touches. Ask the
32
+ developer whether they approve that one fix. If they decline, or the question cannot be
33
+ put to them, stop here and send the report below.
34
+
35
+ If they approve it, make that one fix and nothing else. Then come back into this run:
36
+
37
+ ```text
38
+ npx --yes copilotkit@4.13.0 onboard resume
39
+ ```
40
+
41
+ Write the developer's approval to standard input, in one or two sentences: the fix they
42
+ approved and what it touches. Send no secrets, source code, logs, or command output. The
43
+ command refuses an approval that carries any of those, prints the reason, exits zero, and
44
+ serves nothing. Reword it and send it again.
45
+
46
+ The command prints the run id, the step it puts you back on, and that step's prompt.
47
+ Follow that prompt. This is the same run, so do not run `onboard start` again, and keep
48
+ the run id you already have.
49
+
50
+ If the command refuses for any other reason, it says so and serves nothing. Report what it
51
+ said and stop.
52
+
53
+ ## If no fix is approved
54
+
26
55
  Stop onboarding without making more repository changes.
27
56
 
28
57
  Send one short report. Run the friction command without another developer question. Do not
29
58
  ask the developer about telemetry: the command applies the setting they already have.
30
59
 
31
60
  ```text
32
- npx --yes copilotkit@4.11.0 onboard friction --phase stop --category <slug>
61
+ npx --yes copilotkit@4.13.0 onboard friction --phase stop --category <slug>
33
62
  ```
34
63
 
35
64
  Write one or two sentences to standard input: the step you stopped at and what stopped
@@ -15,6 +15,23 @@ URLs you were given, not from another checkout on this machine.
15
15
  List the required credential variable names. Do not read or return credential values.
16
16
  Preserve each agent or frontend that already exists.
17
17
 
18
+ ## What the existing agent's behavior is
19
+
20
+ The existing agent's behavior is four things: its system prompt and instructions, its
21
+ tools and what those tools do, its model and provider configuration, and its memory or
22
+ state handling.
23
+
24
+ Wiring is not behavior. The CopilotKit SDK dependency, the middleware the agent is wrapped
25
+ in, the runtime mount, the AG-UI connection, and a frontend that renders what the agent
26
+ already returns are wiring. Plan them as ordinary steps.
27
+
28
+ Every item on the behavior list is a change the developer has to approve. Where a step
29
+ needs one, plan it as its own item, name the file and the exact change, and state that it
30
+ changes how the agent answers everywhere, not only in CopilotKit. A system prompt the
31
+ developer wrote is the agent's behavior rather than a setting this run tunes until a
32
+ component renders. Where the plan cannot be written without such a change and you cannot
33
+ state it that way, return `Status: blocked`.
34
+
18
35
  Plan the runtime to consume the Intelligence credential. The runtime takes an
19
36
  `intelligence` option holding a client built from the project key. A runtime given a
20
37
  `runner` option instead is the OSS runtime. It never reads the Intelligence key, and the
@@ -153,7 +170,7 @@ here is work the developer did not ask for.
153
170
  Plan the threads drawer itself: add it from the selected drawer page, where this frontend
154
171
  does not already render one. Where this journey's frontend framework ships no threads
155
172
  drawer -- React Native --, plan that the thread is proved by
156
- `npx --yes copilotkit@4.11.0 verify --round-trip`, which needs no browser. Do not plan a
173
+ `npx --yes copilotkit@4.13.0 verify --round-trip`, which needs no browser. Do not plan a
157
174
  step that opens the managed Intelligence dashboard.
158
175
 
159
176
  ## Order the plan into steps
@@ -179,6 +196,12 @@ and one sentence saying what the step changes there and why no other file will d
179
196
  step in the plan. Return `Status: blocked` only when the plan needs a protected path you
180
197
  cannot justify in that sentence.
181
198
 
199
+ Authorization covers changing a protected path, not removing it. Do not plan the deletion
200
+ of a protected path, and do not plan a step that moves or renames one, which removes it
201
+ under its captured name. If a step cannot be written any other way, return
202
+ `Status: blocked` and name the path. The developer approves a plan that changes their
203
+ files, and a plan that deletes one asks for something the audit cannot pass.
204
+
182
205
  Return the protected path list as part of the plan.
183
206
 
184
207
  Keep final validation and proof outside the implementation steps. The developer approves
@@ -3,7 +3,8 @@
3
3
  Implement every step of the approved plan in plan order, and run the full validation list.
4
4
  Do not repeat the full repository inspection.
5
5
 
6
- Do not change a protected path.
6
+ Do not change a protected path. Do not delete, move, or rename one either, whatever the
7
+ plan says: a protected path that is gone fails the audit and no command clears that.
7
8
  Do not change a path that overlaps a protected path. Paths overlap when they are equal or
8
9
  either path is an ancestor directory on a path-segment boundary. `apps/a` overlaps
9
10
  `apps/a/src`, but not `apps/ab`. `app.ts` does not overlap `app.tsx`.
@@ -12,6 +13,13 @@ Change only the files and directories the approved plan names as changeable. If
12
13
  requires a file the plan does not name, stop and return the blocker. Do not run a
13
14
  repository-wide formatter.
14
15
 
16
+ All implementation work happens in the run root's own working tree: the target app
17
+ directory the main coding agent named. Never work in a separate worktree, a branch
18
+ checkout, or a copy of the project. If any of your changes are already somewhere else,
19
+ bring them into the run root before you report, and name them under Files changed. The
20
+ completion step verifies that the changed files exist in this project, so work left in
21
+ another tree ends the run with nothing in the developer's hands.
22
+
15
23
  Before validation, read the protected path list. Inspect the current changed and untracked
16
24
  paths. Keep protected paths out of the run path set. Compare every changed path with the
17
25
  paths the plan named. Here, a changed path means one in the run path set. If a changed path
@@ -25,6 +33,12 @@ Add only the props, options, and imports that appear in the fetched documentatio
25
33
  remembered API from an earlier CopilotKit version will fail type checking against this
26
34
  release. Do not add details that the fetched documentation omits.
27
35
 
36
+ A symbol the installed package marks `@deprecated` in its type definitions is not a valid
37
+ choice, whatever documentation found elsewhere shows. Read the installed type definitions
38
+ for the symbol you are about to write. Where the selected documentation page itself shows
39
+ a deprecated symbol, name that page under Blockers as `docs-wrong` friction and use the
40
+ current symbol the package's own type definitions or changelog names.
41
+
28
42
  The documentation supplies the wiring. The project supplies the application. Use that
29
43
  wiring in the project's domain. Do not copy an example's agent name, tools, or data.
30
44
 
@@ -33,6 +47,23 @@ connection. Do not read, show, store, or return secrets. Do not read a file outs
33
47
  project directory: not for a credential, and not for an API question the fetched
34
48
  documentation answers. Ask the main coding agent for a missing credential.
35
49
 
50
+ ## What the existing agent's behavior is
51
+
52
+ The existing agent's behavior is four things: its system prompt and instructions, its
53
+ tools and what those tools do, its model and provider configuration, and its memory or
54
+ state handling. Write none of them unless the approved plan named that exact change as its
55
+ own item.
56
+
57
+ Wiring is not behavior. Add the CopilotKit SDK dependency, wrap the agent in the
58
+ middleware, mount the runtime, connect AG-UI, and render what the agent already returns.
59
+ Those are the parts this run adds.
60
+
61
+ A change on the behavior list changes how the agent answers everywhere, not only in
62
+ CopilotKit, so the developer approves it before it is written. Where a step cannot be
63
+ built without one the plan did not name, return `Status: blocked` and name the file, the
64
+ change, and the check that asked for it. Do not edit the agent's prompt to make a
65
+ component render.
66
+
36
67
  An existing `README.md` is the developer's, not this run's. Leave it exactly as you found
37
68
  it: not the title, not a section, not a line. Where this run has documentation to write,
38
69
  write it to a new file and name that file when you report the result. On an empty project