copilotkit 4.22.0 → 4.23.1
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.
- package/README.md +390 -17
- package/cli-build-info.json +8 -8
- package/index.js +52224 -34474
- package/onboarding/index.json +83 -9
- package/onboarding/prompts/authenticate/start.md +44 -34
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +12 -7
- package/onboarding/prompts/credentials/plan.md +23 -23
- package/onboarding/prompts/credentials/settle-credentials.md +10 -7
- package/onboarding/prompts/credentials/write-plan.md +17 -7
- package/onboarding/prompts/deployment/choose-local.md +46 -0
- package/onboarding/prompts/deployment/local-evaluation.md +71 -0
- package/onboarding/prompts/fallback/best-effort.md +8 -8
- package/onboarding/prompts/feature/a2ui/implement.md +6 -6
- package/onboarding/prompts/feature/a2ui/plan.md +72 -0
- package/onboarding/prompts/feature/a2ui/proof.md +5 -5
- package/onboarding/prompts/feature/a2ui/start.md +11 -32
- package/onboarding/prompts/feature/channels/implement.md +23 -16
- package/onboarding/prompts/feature/channels/plan.md +85 -0
- package/onboarding/prompts/feature/channels/proof.md +5 -5
- package/onboarding/prompts/feature/channels/start.md +14 -41
- package/onboarding/prompts/feature/chat-suggestions/implement.md +6 -6
- package/onboarding/prompts/feature/chat-suggestions/plan.md +71 -0
- package/onboarding/prompts/feature/chat-suggestions/proof.md +5 -5
- package/onboarding/prompts/feature/chat-suggestions/start.md +11 -30
- package/onboarding/prompts/feature/complete.md +2 -2
- package/onboarding/prompts/feature/learning/implement.md +13 -13
- package/onboarding/prompts/feature/learning/plan.md +82 -0
- package/onboarding/prompts/feature/learning/proof.md +6 -6
- package/onboarding/prompts/feature/learning/start.md +11 -40
- package/onboarding/prompts/feature/open-generative-ui/implement.md +6 -6
- package/onboarding/prompts/feature/open-generative-ui/plan.md +70 -0
- package/onboarding/prompts/feature/open-generative-ui/proof.md +5 -5
- package/onboarding/prompts/feature/open-generative-ui/start.md +11 -30
- package/onboarding/prompts/feature/realtime-sync/implement.md +7 -7
- package/onboarding/prompts/feature/realtime-sync/plan.md +75 -0
- package/onboarding/prompts/feature/realtime-sync/proof.md +5 -5
- package/onboarding/prompts/feature/realtime-sync/start.md +10 -33
- package/onboarding/prompts/feature/rich-threads/implement.md +8 -8
- package/onboarding/prompts/feature/rich-threads/plan.md +77 -0
- package/onboarding/prompts/feature/rich-threads/proof.md +5 -5
- package/onboarding/prompts/feature/rich-threads/start.md +10 -35
- package/onboarding/prompts/feature/stop.md +3 -3
- package/onboarding/prompts/feature/voice/implement.md +6 -6
- package/onboarding/prompts/feature/voice/plan.md +74 -0
- package/onboarding/prompts/feature/voice/proof.md +5 -5
- package/onboarding/prompts/feature/voice/start.md +11 -29
- package/onboarding/prompts/framework/ag2.md +2 -2
- package/onboarding/prompts/framework/agno.md +2 -2
- package/onboarding/prompts/framework/built-in.md +2 -2
- package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
- package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
- package/onboarding/prompts/framework/crewai-flows.md +2 -2
- package/onboarding/prompts/framework/custom-ag-ui.md +5 -2
- package/onboarding/prompts/framework/deep-agents.md +2 -2
- package/onboarding/prompts/framework/google-adk.md +2 -2
- package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
- package/onboarding/prompts/framework/langgraph-python.md +2 -2
- package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
- package/onboarding/prompts/framework/llamaindex.md +2 -2
- package/onboarding/prompts/framework/mastra.md +2 -2
- package/onboarding/prompts/framework/ms-agent-dotnet.md +3 -3
- package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +3 -3
- package/onboarding/prompts/framework/ms-agent-python.md +2 -2
- package/onboarding/prompts/framework/pydantic-ai.md +2 -2
- package/onboarding/prompts/framework/strands-python.md +2 -2
- package/onboarding/prompts/framework/strands-typescript.md +2 -2
- package/onboarding/prompts/frontend/angular.md +3 -3
- package/onboarding/prompts/frontend/nextjs.md +3 -3
- package/onboarding/prompts/frontend/plan.md +7 -7
- package/onboarding/prompts/frontend/react-native.md +2 -2
- package/onboarding/prompts/frontend/react-spa.md +2 -2
- package/onboarding/prompts/frontend/vue.md +2 -2
- package/onboarding/prompts/implementation/build-and-validate.md +14 -13
- package/onboarding/prompts/proof/complete.md +3 -3
- package/onboarding/prompts/proof/oss-baseline.md +5 -5
- package/onboarding/prompts/proof/round-trip.md +16 -11
- package/onboarding/prompts/research/gather.md +9 -8
- package/onboarding/prompts/research/merge.md +6 -3
- package/onboarding/prompts/research/preflight.md +2 -2
- package/onboarding/prompts/research/route.md +22 -14
- package/onboarding/prompts/starter/clone.md +5 -5
- package/onboarding/prompts/stopped/run-failed.md +2 -2
- package/onboarding/prompts/subagent/create-plan.md +9 -2
- package/onboarding/prompts/subagent/implement-and-validate.md +34 -2
- package/onboarding/prompts/subagent/inspect-repository.md +1 -1
- package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
- package/onboarding/prompts/subagent/prove-round-trip.md +39 -21
- package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
- package/package.json +4 -1
- package/release/release-tool.js +167 -18
- package/services/local-auth-worker.js +21465 -0
|
@@ -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.
|
|
12
|
+
npx --prefer-offline --yes copilotkit@4.23.1 onboard protect
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
It reads the working tree itself, records every changed or untracked path with a digest,
|
|
@@ -31,28 +31,36 @@ route at the end of this prompt.
|
|
|
31
31
|
|
|
32
32
|
## Route a named Channel before the findings
|
|
33
33
|
|
|
34
|
-
The prompt the developer copied names the docs page it came from. A
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
The prompt the developer copied names the docs page it came from. A CopilotKit docs page
|
|
35
|
+
under `/channels`, `/slack`, or `/teams` names a Channel. So does a run that follows the
|
|
36
|
+
`channels-setup` skill, which `copilotkit channels setup` installs in the project. The
|
|
37
|
+
prompt that command prints names no page. So does a developer who asks for a Channel,
|
|
38
|
+
Slack, or Microsoft Teams in their own words. Any one of these settles the frontend.
|
|
37
39
|
|
|
38
|
-
Record that
|
|
39
|
-
the
|
|
40
|
+
Record that page or request and give it to every later node and subagent. No flag states
|
|
41
|
+
the surface the developer wants, so this record is its only carrier.
|
|
40
42
|
|
|
41
|
-
On
|
|
42
|
-
purpose question:
|
|
43
|
+
On any one of them, run this before you read the three findings below, and without asking
|
|
44
|
+
the purpose question:
|
|
43
45
|
|
|
44
46
|
```text
|
|
45
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
47
|
+
npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/channels/start
|
|
46
48
|
```
|
|
47
49
|
|
|
48
|
-
Name the provider to that node so it does not ask again. A
|
|
49
|
-
page names Teams.
|
|
50
|
+
Name the provider to that node so it does not ask again. A `/slack` page names Slack. A
|
|
51
|
+
`/teams` page names Teams. A request that names no provider leaves that question to the
|
|
52
|
+
node.
|
|
50
53
|
|
|
51
54
|
Take this route whatever the three findings prove. An agent, a frontend and a CopilotKit
|
|
52
55
|
integration are a valid start for a Channel, not a reason to convert the application: the
|
|
53
56
|
run keeps that code as it is and wires a managed Channel onto it. Do not send a Channel
|
|
54
57
|
request to the conversion route.
|
|
55
58
|
|
|
59
|
+
Nothing else names a Channel. A project with its own channels, bots, or coworkers does not
|
|
60
|
+
ask for one. A repository the developer asked you to clone does not ask for one either.
|
|
61
|
+
Without one of the requests above, read the findings below. `frontend/plan` offers Slack
|
|
62
|
+
and Microsoft Teams when the project has no frontend.
|
|
63
|
+
|
|
56
64
|
## What the merged findings must contain
|
|
57
65
|
|
|
58
66
|
If a repository file exists, each finding must cite it. For an empty project, the subagents
|
|
@@ -97,7 +105,7 @@ settle these three from your own reading of the project. Each one comes from the
|
|
|
97
105
|
packets or it is not proved.
|
|
98
106
|
|
|
99
107
|
If all three are proved, prove the live starting state before any project file changes. Run
|
|
100
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
108
|
+
`npx --prefer-offline --yes copilotkit@4.23.1 onboard read proof/oss-baseline`.
|
|
101
109
|
|
|
102
110
|
Route there before you ask the developer anything else. The questions after this prompt
|
|
103
111
|
select a framework and a frontend that the findings already name, so a developer who
|
|
@@ -110,7 +118,7 @@ developer nor the repository findings prove what the project is for, ask one gui
|
|
|
110
118
|
question about the user outcome. This asks what the developer wants to build before you
|
|
111
119
|
select a framework. Give two or three short examples. Record the answer and give it to
|
|
112
120
|
each later subagent. Then run
|
|
113
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
121
|
+
`npx --prefer-offline --yes copilotkit@4.23.1 onboard read credentials/plan`.
|
|
114
122
|
|
|
115
123
|
Do not ask that question on the route above. A project carrying all three states its
|
|
116
124
|
purpose in the application it already serves.
|
|
@@ -124,5 +132,5 @@ A purpose question here names a domain before that choice.
|
|
|
124
132
|
Take the same read named above without asking.
|
|
125
133
|
|
|
126
134
|
If authentication, inspection, or the baseline capture stops onboarding, run
|
|
127
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
135
|
+
`npx --prefer-offline --yes copilotkit@4.23.1 onboard read stopped/run-failed`. None of them says anything
|
|
128
136
|
about whether this project's stack is supported, which is not yet known at this point.
|
|
@@ -55,7 +55,7 @@ the derived name.
|
|
|
55
55
|
Only if the developer asks for an existing project, or asks to see the projects they have,
|
|
56
56
|
read the choices:
|
|
57
57
|
|
|
58
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
58
|
+
`npx --prefer-offline --yes copilotkit@4.23.1 project list --json`
|
|
59
59
|
|
|
60
60
|
Then ask which one to use. Do not order the projects by creation time. If the developer
|
|
61
61
|
already gave this answer, do not ask again. Do not read a secret value. Do not show or
|
|
@@ -84,7 +84,7 @@ Do not inspect another entry in the parent directory. Replace each placeholder w
|
|
|
84
84
|
recorded value. Do not run a placeholder as a shell argument. If the path holds a space,
|
|
85
85
|
put it in double quotes.
|
|
86
86
|
|
|
87
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
87
|
+
`npx --prefer-offline --yes copilotkit@4.23.1 init --dir <absolute-target-directory> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
|
|
88
88
|
|
|
89
89
|
`--dir` is always the absolute path of the target directory. `init` builds the app in that
|
|
90
90
|
directory and gives the app the directory's name. Do not add `--name`: `init` refuses
|
|
@@ -144,7 +144,7 @@ When you ask, name each variable and the file it goes in, and say that the run c
|
|
|
144
144
|
when they reply or resume this session. Then report the pause and end your turn:
|
|
145
145
|
|
|
146
146
|
```text
|
|
147
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
147
|
+
npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase awaiting-model-credential
|
|
148
148
|
```
|
|
149
149
|
|
|
150
150
|
This is a pause, not a stop. Do not send a stop report, and do not take a stop route.
|
|
@@ -155,10 +155,10 @@ call.
|
|
|
155
155
|
|
|
156
156
|
If no credential is missing, report no pause and continue.
|
|
157
157
|
|
|
158
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
158
|
+
Then run `npx --prefer-offline --yes copilotkit@4.23.1 onboard read proof/round-trip`.
|
|
159
159
|
|
|
160
160
|
If the command fails, report its exact error and do not claim that the starter is ready.
|
|
161
161
|
Then run
|
|
162
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
162
|
+
`npx --prefer-offline --yes copilotkit@4.23.1 onboard read stopped/run-failed`. The starter is one this
|
|
163
163
|
graph ships and the stack was chosen from its own supported list, so a command that
|
|
164
164
|
returned an error is a run that broke, not a setup this release does not support.
|
|
@@ -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.
|
|
44
|
+
npx --prefer-offline --yes copilotkit@4.23.1 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
|
|
@@ -64,7 +64,7 @@ Send one short report. The friction command follows the telemetry setting the de
|
|
|
64
64
|
already chose, so it needs no separate question.
|
|
65
65
|
|
|
66
66
|
```text
|
|
67
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
67
|
+
npx --prefer-offline --yes copilotkit@4.23.1 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
|
|
@@ -12,6 +12,13 @@ the documentation example differs from that purpose, the project wins.
|
|
|
12
12
|
Read only inside the project directory. Answer an API question from the documentation
|
|
13
13
|
URLs you were given, not from another checkout on this machine.
|
|
14
14
|
|
|
15
|
+
The main coding agent also gives you the findings of the framework route, such as how the
|
|
16
|
+
agent connects or whether a subclass needs a `clone()` override. Some of those rules, such
|
|
17
|
+
as the `clone()` override, are on no documentation page. Use the findings of the framework
|
|
18
|
+
route as they are. Do not confirm them again from the source of an installed package. Read
|
|
19
|
+
the project's own code only to apply them, for example to find the fields that a `clone()`
|
|
20
|
+
override copies.
|
|
21
|
+
|
|
15
22
|
List the required credential variable names. Do not read or return credential values.
|
|
16
23
|
Preserve each agent or frontend that already exists.
|
|
17
24
|
|
|
@@ -87,7 +94,7 @@ against a dead host, and the failure arrives as an empty-body 404 with no cause
|
|
|
87
94
|
Ask the CLI for the dependency upgrade, from the target directory:
|
|
88
95
|
|
|
89
96
|
```text
|
|
90
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
97
|
+
npx --prefer-offline --yes copilotkit@4.23.1 onboard upgrade-plan --json
|
|
91
98
|
```
|
|
92
99
|
|
|
93
100
|
It reads the installed tree and the registry. Read `status`:
|
|
@@ -169,7 +176,7 @@ here is work the developer did not ask for.
|
|
|
169
176
|
Plan the threads drawer itself: add it from the selected drawer page, where this frontend
|
|
170
177
|
does not already render one. Where this journey's frontend framework ships no threads
|
|
171
178
|
drawer -- React Native --, plan that the thread is proved by
|
|
172
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
179
|
+
`npx --prefer-offline --yes copilotkit@4.23.1 verify --round-trip`, which needs no browser. Do not plan a
|
|
173
180
|
step that opens the managed Intelligence dashboard.
|
|
174
181
|
|
|
175
182
|
## Name the files the run writes itself
|
|
@@ -115,7 +115,7 @@ Intelligence: declare each exact version in its app's manifest, then install wit
|
|
|
115
115
|
project's package manager. Then check the installed tree:
|
|
116
116
|
|
|
117
117
|
```text
|
|
118
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
118
|
+
npx --prefer-offline --yes copilotkit@4.23.1 onboard upgrade-plan --check --json
|
|
119
119
|
```
|
|
120
120
|
|
|
121
121
|
`single` means every direct dependency resolved to one version. `duplicates` names each
|
|
@@ -130,7 +130,7 @@ If the check finds duplicates or the baseline regresses, put the manifests and l
|
|
|
130
130
|
back, leave Intelligence unwired, and report what failed:
|
|
131
131
|
|
|
132
132
|
```text
|
|
133
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
133
|
+
npx --prefer-offline --yes copilotkit@4.23.1 onboard upgrade-plan --revert --json
|
|
134
134
|
```
|
|
135
135
|
|
|
136
136
|
Then end your turn. Never add an `overrides`, `resolutions`, or `pnpm.overrides` block to
|
|
@@ -169,6 +169,38 @@ constructor for it, and never write an id the plan does not name: a selector poi
|
|
|
169
169
|
id the platform does not hold answers `LEARNING_CONTAINER_NOT_FOUND` on every thread create.
|
|
170
170
|
Where the plan names no container, write no selector.
|
|
171
171
|
|
|
172
|
+
## Install the CopilotKit Skills
|
|
173
|
+
|
|
174
|
+
The main coding agent gives you the developer's answer on the Skills install. Where the
|
|
175
|
+
whole-plan implementation handoff carries no answer, read the approved plan. Approving the
|
|
176
|
+
plan without a word on the Skills approves the install. A repair handoff that carries no
|
|
177
|
+
Skills answer never installs them.
|
|
178
|
+
|
|
179
|
+
Where `.agents/skills` already holds the CopilotKit skills, do not install them again.
|
|
180
|
+
Report that they are in place.
|
|
181
|
+
|
|
182
|
+
Install the Skills only when the developer approved them. Where the developer declined
|
|
183
|
+
them, do not install them, and do not call that a change from the plan. Report in the
|
|
184
|
+
Validation section that the developer declined them.
|
|
185
|
+
|
|
186
|
+
Install them after you run the full validation list. Tell the developer what the skills
|
|
187
|
+
install writes into this project before you run it: a `.agents/skills` directory holding
|
|
188
|
+
one folder per CopilotKit skill, linked into `.claude/skills`. Both sit in the working tree,
|
|
189
|
+
so the install shows up in `git status` and can land in a commit. You cannot know whether
|
|
190
|
+
this project keeps those directories in version control, so name them before you write them
|
|
191
|
+
rather than after.
|
|
192
|
+
|
|
193
|
+
Then run `npx skills add CopilotKit/CopilotKit/skills -y` in the target app directory.
|
|
194
|
+
|
|
195
|
+
The plan names both directories under `Files the run writes itself`, so they are not
|
|
196
|
+
departures. Name them under Files changed. Do not register an MCP server: the Skills read
|
|
197
|
+
the CopilotKit documentation without one.
|
|
198
|
+
|
|
199
|
+
Check whether the install succeeded, and record the command result in the Validation
|
|
200
|
+
section. A failed install does not change your status. Report it and continue.
|
|
201
|
+
|
|
202
|
+
## Report the result
|
|
203
|
+
|
|
172
204
|
Report the runtime constructor you wrote. Name whether it passes `intelligence` or
|
|
173
205
|
`runner`, and whether it carries `getLearningContainerId`, with the id it returns.
|
|
174
206
|
A runtime built with `runner` is the SSE runtime and never reads the credential,
|
|
@@ -7,7 +7,7 @@ Work only on the packet you were assigned. Inspect the repository without changi
|
|
|
7
7
|
Run this first, from the target project directory:
|
|
8
8
|
|
|
9
9
|
```text
|
|
10
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
10
|
+
npx --prefer-offline --yes copilotkit@4.23.1 onboard inspect --json
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
It answers the deterministic half of both packets exactly, from the same code
|
|
@@ -32,7 +32,7 @@ Prove the live runtime in this order:
|
|
|
32
32
|
4. Confirm from project files that the runtime constructor passes a `runner` option rather
|
|
33
33
|
than an `intelligence` option. A package, import, project file, or key is not use proof.
|
|
34
34
|
5. Run
|
|
35
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
35
|
+
`npx --prefer-offline --yes copilotkit@4.23.1 verify --expect-runtime oss --round-trip --agent <expected-agent-id> --json`,
|
|
36
36
|
with the runtime URL or auth header options that this project needs. Require exit zero
|
|
37
37
|
and the JSON `ok` field to be `true`.
|
|
38
38
|
6. Drive one real request through the existing frontend, CopilotKit runtime, and expected
|
|
@@ -78,7 +78,7 @@ about the failure it was spawned to clear.
|
|
|
78
78
|
Run this from the target app directory:
|
|
79
79
|
|
|
80
80
|
```text
|
|
81
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
81
|
+
npx --prefer-offline --yes copilotkit@4.23.1 onboard proof-check --json
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
It starts each app's `dev` script unless a server from that app already listens, and
|
|
@@ -107,13 +107,14 @@ the proof. Then go to Step 5a.
|
|
|
107
107
|
|
|
108
108
|
Otherwise sort `firstFailure`, and run the command again after each repair:
|
|
109
109
|
|
|
110
|
-
- `runtime-answers`: nothing answered, or the project records no runtime URL.
|
|
110
|
+
- `runtime-answers`: nothing answered, or the project records no runtime URL. When the
|
|
111
|
+
record holds no URL, the command records one itself if exactly one port in the project
|
|
112
|
+
answers as a runtime. So this failure means it found none, or more than one. Read the
|
|
111
113
|
server log it names. A dev server whose port is taken moves to the next free one without
|
|
112
|
-
asking
|
|
113
|
-
port from the log, not from the plan, and record it:
|
|
114
|
+
asking. Read the port from the log, not from the plan, and record it:
|
|
114
115
|
|
|
115
116
|
```text
|
|
116
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
117
|
+
npx --prefer-offline --yes copilotkit@4.23.1 onboard runtime-url --url <runtime-url>
|
|
117
118
|
```
|
|
118
119
|
|
|
119
120
|
`<runtime-url>` is the project's runtime URL, or the plan's, with its port replaced by the
|
|
@@ -171,14 +172,19 @@ record it invented, and the first thing to notice is a card in a screenshot.
|
|
|
171
172
|
Where this journey shares page data with the agent, prove that path here. Read the context
|
|
172
173
|
entries this project's frontend publishes, from its own context call. Read the tool
|
|
173
174
|
declarations it registers as well, and carry both the way the page carries them, so that
|
|
174
|
-
the agent sees the request the browser sends rather than a thinner one.
|
|
175
|
+
the agent sees the request the browser sends rather than a thinner one. Read them from the
|
|
176
|
+
files the main coding agent named in the handoff, and search the project only for a file it
|
|
177
|
+
did not name. Do not search the dependencies for the shape of an entry: the page's own call
|
|
178
|
+
shows it. Send the same run
|
|
175
179
|
body twice, to `<runtime>/agent/<agent id>/run`: once carrying the context entries the page
|
|
176
180
|
publishes, and once carrying the same entries with one value changed. Use the step 1
|
|
177
181
|
request both times. Record the streamed events from each, and name both capture paths.
|
|
178
182
|
|
|
179
183
|
For the changed run, pick one record the step 1 request matches. Add a marker to a text
|
|
180
|
-
field that the answer repeats, such as its title
|
|
181
|
-
` [probe-<8 random hex characters>]`.
|
|
184
|
+
field that the answer repeats and that the step 1 request does not quote, such as its title
|
|
185
|
+
or name: ` [probe-<8 random hex characters>]`. A model can copy text the request carries
|
|
186
|
+
from the request rather than from the context, so a marker there proves nothing. Where the
|
|
187
|
+
request quotes every text field of that record, add the marker to its id. Choose a new marker for each run, record it, and
|
|
182
188
|
change nothing else. Do not remove the entry or send `context: []` instead. The page always
|
|
183
189
|
sends its entries. A model with a request about records, a tool that needs them, and
|
|
184
190
|
nothing to copy invents records. That failure belongs to the probe, not to the integration.
|
|
@@ -208,9 +214,14 @@ frontend does not know falls to a surface nothing draws. Neither writes anything
|
|
|
208
214
|
browser console, so the browser step reports a finished turn, a blank card, and no error
|
|
209
215
|
to read.
|
|
210
216
|
|
|
211
|
-
Read the registrations this project's frontend declares, by name.
|
|
212
|
-
|
|
213
|
-
|
|
217
|
+
Read the registrations this project's frontend declares, by name. Step 5a already sent the
|
|
218
|
+
step 1 request with those declarations, so read the tool calls out of the events Step 5a
|
|
219
|
+
captured for the run carrying the page's unchanged context. Do not send that request again.
|
|
220
|
+
Where Step 5a sent no run, because this journey shares no page data, send the step 1 request
|
|
221
|
+
to `<runtime>/agent/<agent id>/run`, carrying those declarations, and read the tool calls out
|
|
222
|
+
of that run's own events. Where the Step 5a run carried none of those declarations, send
|
|
223
|
+
that run once more with them, and read that run instead. Never report a wiring gap from a run
|
|
224
|
+
that carried no declarations: the agent has no component to call in it. The agent has to call one of the names the frontend registered. An
|
|
214
225
|
agent that calls nothing, or calls a name no registration matches, is a wiring gap for
|
|
215
226
|
implementation to close rather than a proof repair. Return the name and the frontend file
|
|
216
227
|
you read, before the browser.
|
|
@@ -238,7 +249,7 @@ For a recorded `both-oss` starting state, this step has no component to render.
|
|
|
238
249
|
same request the baseline recorded, require the same kind of user-visible result the
|
|
239
250
|
baseline produced, and require that the thread for that request is listed in the drawer.
|
|
240
251
|
Where this journey's frontend framework ships no threads drawer -- React Native --, prove
|
|
241
|
-
that thread with `npx --prefer-offline --yes copilotkit@4.
|
|
252
|
+
that thread with `npx --prefer-offline --yes copilotkit@4.23.1 verify --round-trip`, which reads the
|
|
242
253
|
answer back off the thread and needs no browser. Record which of the two you proved.
|
|
243
254
|
|
|
244
255
|
Use the surface control the main coding agent recorded for your environment. That finding
|
|
@@ -266,7 +277,7 @@ limit can be ten minutes. You cannot interrupt a call while it runs, so the limi
|
|
|
266
277
|
what you do after one. If a browser call took longer than 60 seconds to return, the browser
|
|
267
278
|
control is unresponsive. Do not call the browser again in this attempt. A second call to a
|
|
268
279
|
hung tool waits as long as the first one did. Run
|
|
269
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
280
|
+
`npx --prefer-offline --yes copilotkit@4.23.1 verify --frontend-url <the frontendUrl the proof checks resolved> --json` once,
|
|
270
281
|
and record the `frontend_assets_served` result. Report the outcome `failed` with the cause
|
|
271
282
|
`browser-control-unresponsive`. The application is not at fault on this evidence: every
|
|
272
283
|
step before the browser proved the runtime without one, and no repair to the project can
|
|
@@ -276,7 +287,7 @@ reach the tool.
|
|
|
276
287
|
the page to finish loading. Do not retype the host, and do not substitute a URL a tool
|
|
277
288
|
offers you by default. Where the page loads but its styling is missing or the chat
|
|
278
289
|
control is dead, run
|
|
279
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
290
|
+
`npx --prefer-offline --yes copilotkit@4.23.1 verify --frontend-url <the url you opened> --json`
|
|
280
291
|
before you diagnose anything else. A dev server can serve its page and refuse every
|
|
281
292
|
static chunk behind it, and on screen that is indistinguishable from a broken
|
|
282
293
|
integration. The `frontend_assets_served` check tells the two apart.
|
|
@@ -388,18 +399,25 @@ Step 9 can write only the tool files named by its guide or by this step.
|
|
|
388
399
|
Fetch the continued-development guide from the main coding agent with the proof
|
|
389
400
|
documentation. Try the continued-development tools after the application passes proof.
|
|
390
401
|
|
|
402
|
+
The implementation subagent installs the Skills when the developer approved them. Check that
|
|
403
|
+
it did. Look for the `.agents/skills` directory and the `.claude/skills` links in this
|
|
404
|
+
project, and read the Skills result the implementation reported. Do not install them again.
|
|
405
|
+
|
|
406
|
+
Where the developer declined them, do not install them, and do not call that a change from
|
|
407
|
+
the plan. Report the command for them to run later instead:
|
|
408
|
+
`npx skills add CopilotKit/CopilotKit/skills -y`.
|
|
409
|
+
|
|
410
|
+
Where the developer approved them and they are missing, install them as a recovery step.
|
|
391
411
|
Tell the developer what the skills install writes into this project before you run it: a
|
|
392
412
|
`.agents/skills` directory holding one folder per CopilotKit skill, linked into
|
|
393
413
|
`.claude/skills`. Both sit in the working tree, so the install shows up in `git status`
|
|
394
414
|
and can land in a commit. You cannot know whether this project keeps those directories in
|
|
395
|
-
version control, so name them before you write them rather than after.
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
for them to run later instead: `npx skills add CopilotKit/CopilotKit/skills -y`.
|
|
415
|
+
version control, so name them before you write them rather than after. Then run
|
|
416
|
+
`npx skills add CopilotKit/CopilotKit/skills -y` to install the
|
|
417
|
+
project-scoped CopilotKit Skills. Record that the proof ran the install because the
|
|
418
|
+
implementation did not.
|
|
400
419
|
|
|
401
|
-
|
|
402
|
-
Skills read the CopilotKit documentation without one.
|
|
420
|
+
Do not register an MCP server: the Skills read the CopilotKit documentation without one.
|
|
403
421
|
|
|
404
422
|
Check whether the install succeeded and record what you found. Record the command result.
|
|
405
423
|
Report the Skills result separately from the proof result. A tool error does not change the
|
|
@@ -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 --prefer-offline --yes copilotkit@4.
|
|
33
|
+
`npx --prefer-offline --yes copilotkit@4.23.1 onboard read fallback/best-effort`.
|
|
34
34
|
|
|
35
35
|
Send one short report. The friction command follows the telemetry setting the developer
|
|
36
36
|
already chose, so it needs no separate question.
|
|
37
37
|
|
|
38
38
|
```text
|
|
39
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
39
|
+
npx --prefer-offline --yes copilotkit@4.23.1 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "copilotkit",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.23.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=20.9.0"
|
|
@@ -16,5 +16,8 @@
|
|
|
16
16
|
"optionalDependencies": {
|
|
17
17
|
"@microsoft/teams.cli": "3.0.3"
|
|
18
18
|
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"oidc-provider": "9.12.2"
|
|
21
|
+
},
|
|
19
22
|
"license": "SEE LICENSE IN LICENSE"
|
|
20
23
|
}
|