copilotkit 4.23.1 → 4.25.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.
- package/README.md +164 -17
- package/cli-build-info.json +8 -8
- package/exporters/langgraph/README.md +33 -0
- package/exporters/langgraph/export_checkpointer.py +16 -0
- package/index.js +10909 -8245
- package/onboarding/index.json +2 -1
- package/onboarding/prompts/authenticate/start.md +50 -42
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +30 -8
- package/onboarding/prompts/credentials/plan.md +115 -49
- package/onboarding/prompts/credentials/settle-credentials.md +16 -5
- package/onboarding/prompts/credentials/write-plan.md +15 -15
- package/onboarding/prompts/deployment/choose-local.md +62 -14
- package/onboarding/prompts/deployment/local-evaluation.md +37 -7
- package/onboarding/prompts/fallback/best-effort.md +8 -8
- package/onboarding/prompts/feature/a2ui/implement.md +15 -8
- package/onboarding/prompts/feature/a2ui/plan.md +15 -7
- package/onboarding/prompts/feature/a2ui/proof.md +14 -7
- package/onboarding/prompts/feature/a2ui/start.md +26 -8
- package/onboarding/prompts/feature/channels/implement.md +21 -9
- package/onboarding/prompts/feature/channels/plan.md +15 -7
- package/onboarding/prompts/feature/channels/proof.md +14 -7
- package/onboarding/prompts/feature/channels/start.md +30 -19
- package/onboarding/prompts/feature/chat-suggestions/implement.md +15 -8
- package/onboarding/prompts/feature/chat-suggestions/plan.md +15 -7
- package/onboarding/prompts/feature/chat-suggestions/proof.md +14 -7
- package/onboarding/prompts/feature/chat-suggestions/start.md +26 -8
- package/onboarding/prompts/feature/complete.md +2 -2
- package/onboarding/prompts/feature/learning/implement.md +32 -18
- package/onboarding/prompts/feature/learning/plan.md +15 -7
- package/onboarding/prompts/feature/learning/proof.md +76 -9
- package/onboarding/prompts/feature/learning/start.md +26 -8
- package/onboarding/prompts/feature/open-generative-ui/implement.md +15 -8
- package/onboarding/prompts/feature/open-generative-ui/plan.md +15 -7
- package/onboarding/prompts/feature/open-generative-ui/proof.md +14 -7
- package/onboarding/prompts/feature/open-generative-ui/start.md +26 -8
- package/onboarding/prompts/feature/realtime-sync/implement.md +20 -12
- package/onboarding/prompts/feature/realtime-sync/plan.md +15 -7
- package/onboarding/prompts/feature/realtime-sync/proof.md +14 -7
- package/onboarding/prompts/feature/realtime-sync/start.md +25 -7
- package/onboarding/prompts/feature/rich-threads/implement.md +21 -13
- package/onboarding/prompts/feature/rich-threads/plan.md +15 -7
- package/onboarding/prompts/feature/rich-threads/proof.md +14 -7
- package/onboarding/prompts/feature/rich-threads/start.md +25 -7
- package/onboarding/prompts/feature/stop.md +9 -3
- package/onboarding/prompts/feature/voice/implement.md +15 -8
- package/onboarding/prompts/feature/voice/plan.md +16 -8
- package/onboarding/prompts/feature/voice/proof.md +14 -7
- package/onboarding/prompts/feature/voice/start.md +26 -8
- package/onboarding/prompts/framework/ag2.md +6 -5
- package/onboarding/prompts/framework/agno.md +6 -5
- package/onboarding/prompts/framework/built-in.md +9 -6
- 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 +12 -4
- package/onboarding/prompts/framework/custom-ag-ui.md +8 -2
- package/onboarding/prompts/framework/deep-agents.md +6 -5
- package/onboarding/prompts/framework/google-adk.md +2 -2
- package/onboarding/prompts/framework/langgraph-fastapi.md +8 -5
- package/onboarding/prompts/framework/langgraph-python.md +8 -5
- package/onboarding/prompts/framework/langgraph-typescript.md +8 -5
- package/onboarding/prompts/framework/llamaindex.md +6 -5
- package/onboarding/prompts/framework/mastra.md +9 -6
- package/onboarding/prompts/framework/ms-agent-dotnet.md +12 -4
- package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +12 -4
- package/onboarding/prompts/framework/ms-agent-python.md +6 -5
- package/onboarding/prompts/framework/pydantic-ai.md +6 -5
- package/onboarding/prompts/framework/strands-python.md +10 -6
- package/onboarding/prompts/framework/strands-typescript.md +10 -6
- package/onboarding/prompts/frontend/angular.md +10 -3
- package/onboarding/prompts/frontend/nextjs.md +36 -3
- package/onboarding/prompts/frontend/plan.md +13 -7
- package/onboarding/prompts/frontend/react-native.md +9 -2
- package/onboarding/prompts/frontend/react-spa.md +9 -2
- package/onboarding/prompts/frontend/vue.md +9 -2
- package/onboarding/prompts/implementation/build-and-validate.md +49 -21
- package/onboarding/prompts/proof/complete.md +3 -3
- package/onboarding/prompts/proof/oss-baseline.md +30 -13
- package/onboarding/prompts/proof/round-trip.md +55 -17
- package/onboarding/prompts/research/gather.md +21 -11
- package/onboarding/prompts/research/merge.md +8 -2
- package/onboarding/prompts/research/preflight.md +2 -2
- package/onboarding/prompts/research/route.md +14 -7
- package/onboarding/prompts/starter/clone.md +151 -9
- package/onboarding/prompts/stopped/run-failed.md +8 -2
- package/onboarding/prompts/subagent/create-plan.md +9 -2
- package/onboarding/prompts/subagent/implement-and-validate.md +2 -2
- package/onboarding/prompts/subagent/inspect-repository.md +12 -6
- package/onboarding/prompts/subagent/prove-oss-baseline.md +6 -1
- package/onboarding/prompts/subagent/prove-round-trip.md +53 -10
- package/onboarding/prompts/unsupported/no-validated-path.md +8 -2
- package/package.json +1 -1
- package/release/release-tool.js +18 -1
- package/services/local-auth-worker.js +175 -159
|
@@ -41,11 +41,10 @@ and continue when that thing arrives. A pause waits for one of two things:
|
|
|
41
41
|
pick", gives no answer, and the default that the prompt states applies. Where the
|
|
42
42
|
prompt states no default, ask once more.
|
|
43
43
|
|
|
44
|
-
Before you end your turn to wait for the developer
|
|
45
|
-
report the pause:
|
|
44
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
46
45
|
|
|
47
46
|
```text
|
|
48
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
47
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
49
48
|
```
|
|
50
49
|
|
|
51
50
|
When the answer or the result arrives, continue from the step that paused. Do not read an
|
|
@@ -65,7 +64,7 @@ Both research subagents failing means this harness has no working subagent at al
|
|
|
65
64
|
is worth recording once:
|
|
66
65
|
|
|
67
66
|
```text
|
|
68
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
67
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase delegation-unavailable
|
|
69
68
|
```
|
|
70
69
|
|
|
71
70
|
Then say once, in your own words, that this environment has no working subagents, so you
|
|
@@ -77,11 +76,22 @@ For the rest of this run, wherever a prompt tells you to spawn a subagent, read
|
|
|
77
76
|
Before you ask the developer any setup question, finish every read-only investigation and
|
|
78
77
|
preflight check in this section.
|
|
79
78
|
|
|
80
|
-
Prepare two research assignments.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
79
|
+
Prepare two research assignments. Before you spawn either subagent, run these two
|
|
80
|
+
read-only commands yourself, from the target project directory:
|
|
81
|
+
|
|
82
|
+
```text
|
|
83
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard read subagent/inspect-repository
|
|
84
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard inspect --json
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Give each research subagent the prompt that the first command returns, the whole JSON that
|
|
88
|
+
the second command returns, and one assignment. Tell it that its handoff already holds both,
|
|
89
|
+
so it runs no onboarding command. A coding agent's permission layer can refuse a package
|
|
90
|
+
that runs from the registry inside a subagent, even where it lets you run the same command.
|
|
91
|
+
The run then waits for an approval that nobody sees. Require only its assigned packet.
|
|
92
|
+
|
|
93
|
+
Give the same JSON to every later subagent that this research spawns, such as a retry, a
|
|
94
|
+
focused directory check, or a conflict verifier.
|
|
85
95
|
|
|
86
96
|
Start both research subagents in parallel:
|
|
87
97
|
|
|
@@ -92,8 +102,8 @@ Start both research subagents in parallel:
|
|
|
92
102
|
The research is under way. Continue to the surface-control preflight while it runs:
|
|
93
103
|
|
|
94
104
|
```text
|
|
95
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
105
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard read research/preflight
|
|
96
106
|
```
|
|
97
107
|
|
|
98
108
|
If inspection stops onboarding, run
|
|
99
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
109
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read stopped/run-failed`.
|
|
@@ -48,8 +48,14 @@ app directory. Both results must start with `Status: passed`. Otherwise, use the
|
|
|
48
48
|
Read the next step only after `login --json` has emitted `type: completed`. If sign-in still
|
|
49
49
|
waits on the developer, end your turn and wait for it: that is a pause.
|
|
50
50
|
|
|
51
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
55
|
+
```
|
|
56
|
+
|
|
51
57
|
When both research results are merged and sign-in is done, run
|
|
52
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
58
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read research/route`.
|
|
53
59
|
|
|
54
60
|
If inspection stops onboarding, run
|
|
55
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
61
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read stopped/run-failed`.
|
|
@@ -27,8 +27,8 @@ Where the device probe found no booted device, that is the whole finding.
|
|
|
27
27
|
Then merge the research:
|
|
28
28
|
|
|
29
29
|
```text
|
|
30
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
30
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard read research/merge
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
If inspection stops onboarding, run
|
|
34
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
34
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read stopped/run-failed`.
|
|
@@ -9,7 +9,7 @@ sends the run down one path.
|
|
|
9
9
|
Before you route on, run this from the target app directory:
|
|
10
10
|
|
|
11
11
|
```text
|
|
12
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
12
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
It reads the working tree itself, records every changed or untracked path with a digest,
|
|
@@ -44,7 +44,7 @@ On any one of them, run this before you read the three findings below, and witho
|
|
|
44
44
|
the purpose question:
|
|
45
45
|
|
|
46
46
|
```text
|
|
47
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
47
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/channels/start
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
Name the provider to that node so it does not ask again. A `/slack` page names Slack. A
|
|
@@ -105,7 +105,7 @@ settle these three from your own reading of the project. Each one comes from the
|
|
|
105
105
|
packets or it is not proved.
|
|
106
106
|
|
|
107
107
|
If all three are proved, prove the live starting state before any project file changes. Run
|
|
108
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
108
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read proof/oss-baseline`.
|
|
109
109
|
|
|
110
110
|
Route there before you ask the developer anything else. The questions after this prompt
|
|
111
111
|
select a framework and a frontend that the findings already name, so a developer who
|
|
@@ -116,9 +116,16 @@ these three findings.
|
|
|
116
116
|
For every other combination of the three, take one more step first. If neither the
|
|
117
117
|
developer nor the repository findings prove what the project is for, ask one guided
|
|
118
118
|
question about the user outcome. This asks what the developer wants to build before you
|
|
119
|
-
select a framework. Give two or three short examples.
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
select a framework. Give two or three short examples.
|
|
120
|
+
|
|
121
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
122
|
+
|
|
123
|
+
```text
|
|
124
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Record the answer and give it to each later subagent. Then run
|
|
128
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read credentials/plan`.
|
|
122
129
|
|
|
123
130
|
Do not ask that question on the route above. A project carrying all three states its
|
|
124
131
|
purpose in the application it already serves.
|
|
@@ -132,5 +139,5 @@ A purpose question here names a domain before that choice.
|
|
|
132
139
|
Take the same read named above without asking.
|
|
133
140
|
|
|
134
141
|
If authentication, inspection, or the baseline capture stops onboarding, run
|
|
135
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
142
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read stopped/run-failed`. None of them says anything
|
|
136
143
|
about whether this project's stack is supported, which is not yet known at this point.
|
|
@@ -13,6 +13,12 @@ dependency manifest: those folders are the developer's projects. `init` refuses
|
|
|
13
13
|
three. If the target is one of them, stop the shortcut and ask the developer which
|
|
14
14
|
project to use, or to open the coding agent in a new empty folder.
|
|
15
15
|
|
|
16
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
20
|
+
```
|
|
21
|
+
|
|
16
22
|
Match the selected agent framework and frontend to this table:
|
|
17
23
|
|
|
18
24
|
| Agent framework | Frontend | Framework ID | Model key |
|
|
@@ -40,8 +46,14 @@ not include Intelligence.
|
|
|
40
46
|
Get the target directory name from its path. The name can contain 1 to 100 letters,
|
|
41
47
|
numbers, spaces, dots, underscores, or hyphens, in any case. It must not be `.` or `..`,
|
|
42
48
|
start or end with a space, or end with a dot. `init` accepts the name of an existing empty
|
|
43
|
-
directory as it is, so a name such as `MyApp` is valid. Do not rename the directory.
|
|
44
|
-
|
|
49
|
+
directory as it is, so a name such as `MyApp` is valid. Do not rename the directory. Stop
|
|
50
|
+
the shortcut in each of these cases:
|
|
51
|
+
|
|
52
|
+
- The selected pair is not in the table.
|
|
53
|
+
- The developer chose a model vendor whose key is not the Model key of the matched row.
|
|
54
|
+
Each starter runs on the vendor in that column only.
|
|
55
|
+
- The directory name is not valid.
|
|
56
|
+
|
|
45
57
|
Do not run `init`. No command ran, so this is not a failed shortcut. Go back to the
|
|
46
58
|
`## Documentation` section of the frontend prompt you read before this one, and build the
|
|
47
59
|
project from its pages.
|
|
@@ -55,12 +67,18 @@ the derived name.
|
|
|
55
67
|
Only if the developer asks for an existing project, or asks to see the projects they have,
|
|
56
68
|
read the choices:
|
|
57
69
|
|
|
58
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
70
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 project list --json`
|
|
59
71
|
|
|
60
72
|
Then ask which one to use. Do not order the projects by creation time. If the developer
|
|
61
73
|
already gave this answer, do not ask again. Do not read a secret value. Do not show or
|
|
62
74
|
store a secret value.
|
|
63
75
|
|
|
76
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
80
|
+
```
|
|
81
|
+
|
|
64
82
|
## Ask where the model credential lives
|
|
65
83
|
|
|
66
84
|
The starter reads a model credential, and the `init` command below does not ask for one.
|
|
@@ -72,10 +90,37 @@ themselves after the clone. Asking where a credential lives is not requesting a
|
|
|
72
90
|
value. Never ask for the value itself. If no answer comes, clone anyway. The step after
|
|
73
91
|
the clone pauses for the key.
|
|
74
92
|
|
|
93
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-model-credential
|
|
97
|
+
```
|
|
98
|
+
|
|
75
99
|
A path the developer names is theirs to give, including one outside the project. A path
|
|
76
100
|
this run finds is not. Never read a key file the developer did not name. A key found that
|
|
77
101
|
way bills a project nobody chose.
|
|
78
102
|
|
|
103
|
+
## Record the selected path
|
|
104
|
+
|
|
105
|
+
This route skips the plan step that records the path, so record it here, once, before
|
|
106
|
+
the clone:
|
|
107
|
+
|
|
108
|
+
```text
|
|
109
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend> --model-vendor <model-vendor> --model-vendor-choice <model-vendor-choice>
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
- `<starting-state>`: the starting state the research recorded, usually `empty`.
|
|
113
|
+
- `<agent-framework>`: the name of the framework prompt this run read, such as
|
|
114
|
+
`langgraph-typescript` for `framework/langgraph-typescript`. It is not the Framework ID
|
|
115
|
+
in the table.
|
|
116
|
+
- `<frontend>`: the Frontend column of the matched row, `nextjs` or `angular`.
|
|
117
|
+
- `<model-vendor>`: `openai`, `anthropic`, `google`, or `other`.
|
|
118
|
+
- `<model-vendor-choice>`: if the developer chose the provider, `developer`. Otherwise,
|
|
119
|
+
`default`.
|
|
120
|
+
|
|
121
|
+
If a value is refused, fix it from the choices the earlier prompts gave, and run the
|
|
122
|
+
command again.
|
|
123
|
+
|
|
79
124
|
## Clone the starter
|
|
80
125
|
|
|
81
126
|
Run the command in one step, from any directory. `--dir` names the target, so the app
|
|
@@ -84,7 +129,7 @@ Do not inspect another entry in the parent directory. Replace each placeholder w
|
|
|
84
129
|
recorded value. Do not run a placeholder as a shell argument. If the path holds a space,
|
|
85
130
|
put it in double quotes.
|
|
86
131
|
|
|
87
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
132
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 init --dir <absolute-target-directory> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
|
|
88
133
|
|
|
89
134
|
`--dir` is always the absolute path of the target directory. `init` builds the app in that
|
|
90
135
|
directory and gives the app the directory's name. Do not add `--name`: `init` refuses
|
|
@@ -102,9 +147,76 @@ variable name and never the value. Do not read or copy the key file yourself. If
|
|
|
102
147
|
reports that it cannot read the model key file, it stopped before it cloned anything. Ask
|
|
103
148
|
the developer for the right path, or run the command again without the flag.
|
|
104
149
|
|
|
150
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
151
|
+
|
|
152
|
+
```text
|
|
153
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-model-credential
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
If you cannot pass the key file to `init`, for example because a sandbox refuses the path,
|
|
157
|
+
clone without `--model-key-file`. Then copy the key from `<target>` with one command:
|
|
158
|
+
`cd <target> && npx --prefer-offline --yes copilotkit@4.25.0 onboard credentials --model-key <VARIABLE> --env-path <key-file> --copy-to <env file> --json`.
|
|
159
|
+
`<env file>` is `.env`, or `agent/.env` for the Microsoft Agent Framework Python starter.
|
|
160
|
+
The command writes the key into that file without printing it and protects the file. If the
|
|
161
|
+
command is refused too, ask the developer to run it. Give them exactly this one line:
|
|
162
|
+
`! cd <target> && npx --prefer-offline --yes copilotkit@4.25.0 onboard credentials --model-key <VARIABLE> --env-path <key-file> --copy-to <env file>`.
|
|
163
|
+
The command needs no input. Without `!`, they run the same command in a terminal.
|
|
164
|
+
Do not write a `sed`, `grep`, or `cat` command to copy the key.
|
|
165
|
+
|
|
166
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
167
|
+
|
|
168
|
+
```text
|
|
169
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-model-credential
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### For a recorded local choice
|
|
173
|
+
|
|
174
|
+
If the run recorded the local deployment choice in `deployment/choose-local`, use this
|
|
175
|
+
command instead of the hosted command above. Do not ask the project questions above.
|
|
176
|
+
Local evaluation creates its own empty project, and `init --local` refuses `--create` and
|
|
177
|
+
`--project`.
|
|
178
|
+
|
|
179
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 init --dir <absolute-target-directory> --framework <framework-id> --channel none --no-banner --no-key-prompt --local --defer-model --install`
|
|
180
|
+
|
|
181
|
+
Use the model choice from `deployment/choose-local`. If the developer deferred it, keep
|
|
182
|
+
`--defer-model`. If the developer gave model settings, replace `--defer-model` with
|
|
183
|
+
`--model-config <private-file>`. Do not read or print that file. The CLI selects the latest
|
|
184
|
+
stable release. If the developer gave a candidate manifest for release testing, add
|
|
185
|
+
`--candidate <manifest.json>`. Otherwise, do not add it. The `--dir`, `--no-install` and `--model-key-file` rules
|
|
186
|
+
above apply here too.
|
|
187
|
+
|
|
188
|
+
If the developer chose guided model setup in `deployment/choose-local`, keep `--defer-model`.
|
|
189
|
+
After `init` reports the stack ready:
|
|
190
|
+
|
|
191
|
+
Ask the developer to run this command in their own terminal window, in `<target>`:
|
|
192
|
+
|
|
193
|
+
```text
|
|
194
|
+
npx --prefer-offline --yes copilotkit@4.25.0 local setup
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Do not give it as a `!` line, and do not run it yourself. Its guided model prompt needs a
|
|
198
|
+
terminal, and a coding agent's shell has none. Without a terminal, the command stops and
|
|
199
|
+
changes nothing. The prompt asks for the model and its key, and it saves them privately.
|
|
200
|
+
On a running stack, it restarts only Learning. Do not ask for a model file.
|
|
201
|
+
|
|
202
|
+
Say that the run continues when they reply or resume this session. Report the pause with
|
|
203
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-model-credential`, end your
|
|
204
|
+
turn, and wait. When the developer replies, run
|
|
205
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 local status --json` from `<target>` and read `learning.configuration`.
|
|
206
|
+
|
|
207
|
+
The command installs the local stack, then connects the starter to it. It writes the
|
|
208
|
+
gitignored `.copilotkit/local.json` stack reference and `.copilotkit/project.json` with the
|
|
209
|
+
local project. It writes `INTELLIGENCE_API_URL`, `INTELLIGENCE_GATEWAY_WS_URL`,
|
|
210
|
+
`CPK_INTELLIGENCE_API_KEY` and `SL_ENABLED` into `<target>/.env`. Later proof steps use
|
|
211
|
+
this local project. Do not run `project select`, and do not provision another key. The
|
|
212
|
+
output names the local dashboard URL. If you deferred the model, the output also says
|
|
213
|
+
`Learning configuration incomplete`. Report both lines to the developer.
|
|
214
|
+
|
|
215
|
+
### What the command does
|
|
216
|
+
|
|
105
217
|
The command clones the starter into the empty target directory. It also connects the
|
|
106
|
-
starter to the developer's Intelligence project
|
|
107
|
-
account. The command does not need terminal input.
|
|
218
|
+
starter to the developer's Intelligence project, or to the local stack for a local choice.
|
|
219
|
+
The earlier login phase supplies the account. The command does not need terminal input.
|
|
108
220
|
|
|
109
221
|
Do not rebuild the starter by hand. Then inspect only the generated
|
|
110
222
|
paths inside the target directory. Record the files, install result, project connection,
|
|
@@ -144,7 +256,7 @@ When you ask, name each variable and the file it goes in, and say that the run c
|
|
|
144
256
|
when they reply or resume this session. Then report the pause and end your turn:
|
|
145
257
|
|
|
146
258
|
```text
|
|
147
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
259
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-model-credential
|
|
148
260
|
```
|
|
149
261
|
|
|
150
262
|
This is a pause, not a stop. Do not send a stop report, and do not take a stop route.
|
|
@@ -155,10 +267,40 @@ call.
|
|
|
155
267
|
|
|
156
268
|
If no credential is missing, report no pause and continue.
|
|
157
269
|
|
|
158
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
270
|
+
Then run `npx --prefer-offline --yes copilotkit@4.25.0 onboard read proof/round-trip`.
|
|
271
|
+
|
|
272
|
+
If the local command fails, `init` keeps the cloned starter in `<target>`. Do not run
|
|
273
|
+
`init` again, because the target is no longer empty. Do not delete the starter or the stack.
|
|
274
|
+
Report the exact error, and do not claim that the starter is ready. A failure that names
|
|
275
|
+
Docker is an environment blocker, not a broken run. For example, Docker is stopped or
|
|
276
|
+
missing, or `Docker available resources` is below 4 CPUs, 12 GiB RAM, or 40 GiB storage.
|
|
277
|
+
Tell the developer what to change in Docker. Then report the pause and end your turn:
|
|
278
|
+
|
|
279
|
+
```text
|
|
280
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
When the developer says that Docker is ready, resume from `<target>` with the same model
|
|
284
|
+
choice. If the run used a `--candidate`, add the same one:
|
|
285
|
+
|
|
286
|
+
```text
|
|
287
|
+
npx --prefer-offline --yes copilotkit@4.25.0 local setup --defer-model --json
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
If the run used model settings, replace `--defer-model` with `--model-config <private-file>`.
|
|
291
|
+
Read blockers and the recorded failed step. Do not delete or recreate a failed stack. After
|
|
292
|
+
setup reports the stack ready, connect the starter from `<target>`:
|
|
293
|
+
|
|
294
|
+
```text
|
|
295
|
+
npx --prefer-offline --yes copilotkit@4.25.0 local connect --approve-connection --json
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
The connection writes `.copilotkit/local.json`, `.copilotkit/project.json`, and the local
|
|
299
|
+
keys in `<target>/.env`. Then continue with the credential check above. If the resumed
|
|
300
|
+
setup fails again with an error that does not name Docker, take the route below.
|
|
159
301
|
|
|
160
302
|
If the command fails, report its exact error and do not claim that the starter is ready.
|
|
161
303
|
Then run
|
|
162
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
304
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read stopped/run-failed`. The starter is one this
|
|
163
305
|
graph ships and the stack was chosen from its own supported list, so a command that
|
|
164
306
|
returned an error is a run that broke, not a setup this release does not support.
|
|
@@ -38,10 +38,16 @@ Name the one fix you propose, and say which file or process it touches. Ask the
|
|
|
38
38
|
developer whether they approve that one fix. If they decline, or the question cannot be
|
|
39
39
|
put to them, stop here and send the report below.
|
|
40
40
|
|
|
41
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
45
|
+
```
|
|
46
|
+
|
|
41
47
|
If they approve it, make that one fix and nothing else. Then come back into this run:
|
|
42
48
|
|
|
43
49
|
```text
|
|
44
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
50
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard resume --message "<approval>"
|
|
45
51
|
```
|
|
46
52
|
|
|
47
53
|
Put the developer's approval in `--message`, in one or two sentences: the fix they
|
|
@@ -64,7 +70,7 @@ Send one short report. The friction command follows the telemetry setting the de
|
|
|
64
70
|
already chose, so it needs no separate question.
|
|
65
71
|
|
|
66
72
|
```text
|
|
67
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
73
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
68
74
|
```
|
|
69
75
|
|
|
70
76
|
`--message` takes one or two sentences: the step you stopped at and what stopped
|
|
@@ -94,7 +94,7 @@ against a dead host, and the failure arrives as an empty-body 404 with no cause
|
|
|
94
94
|
Ask the CLI for the dependency upgrade, from the target directory:
|
|
95
95
|
|
|
96
96
|
```text
|
|
97
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
97
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard upgrade-plan --json
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
It reads the installed tree and the registry. Read `status`:
|
|
@@ -176,7 +176,7 @@ here is work the developer did not ask for.
|
|
|
176
176
|
Plan the threads drawer itself: add it from the selected drawer page, where this frontend
|
|
177
177
|
does not already render one. Where this journey's frontend framework ships no threads
|
|
178
178
|
drawer -- React Native --, plan that the thread is proved by
|
|
179
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
179
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 verify --round-trip`, which needs no browser. Do not plan a
|
|
180
180
|
step that opens the managed Intelligence dashboard.
|
|
181
181
|
|
|
182
182
|
## Name the files the run writes itself
|
|
@@ -218,6 +218,13 @@ step in the plan. Where a protected path you can justify is the only obstacle, t
|
|
|
218
218
|
stays. Where the plan needs a protected path you cannot justify in that sentence, return
|
|
219
219
|
`Status: blocked`.
|
|
220
220
|
|
|
221
|
+
Installing or upgrading a package changes the manifest that lists it, such as `package.json`
|
|
222
|
+
or `pyproject.toml`. When a step does that and the manifest is a protected path, list the
|
|
223
|
+
manifest under `Authorization requested`, even if no step edits it by hand. Its consent
|
|
224
|
+
also covers its lockfile, such as `package-lock.json` or `uv.lock`, beside it or at the
|
|
225
|
+
workspace root, so do not list the lockfile on its own line. Install with the package manager's usual command, which
|
|
226
|
+
rewrites the lockfile in place. Never delete a lockfile to regenerate it.
|
|
227
|
+
|
|
221
228
|
Authorization covers changing a protected path, not removing it. Do not plan the deletion
|
|
222
229
|
of a protected path, and do not plan a step that moves or renames one, which removes it
|
|
223
230
|
under its captured name. If a step cannot be written any other way, return
|
|
@@ -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.25.0 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.25.0 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
|
|
@@ -4,13 +4,19 @@ Work only on the packet you were assigned. Inspect the repository without changi
|
|
|
4
4
|
|
|
5
5
|
## Start with what the CLI already knows
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Your handoff holds the JSON of this command, which the main coding agent ran from the
|
|
8
|
+
target project directory:
|
|
8
9
|
|
|
9
10
|
```text
|
|
10
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
11
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard inspect --json
|
|
11
12
|
```
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
Read that JSON. Do not run the command again. If the handoff holds no inspection JSON, run
|
|
15
|
+
the command yourself. If your harness refuses it, return at once with no packet. Say that
|
|
16
|
+
the harness refused the command, name it, and do not wait for an approval. That is not
|
|
17
|
+
`Status: blocked`: the main coding agent can run the command and do this work itself.
|
|
18
|
+
|
|
19
|
+
The JSON answers the deterministic half of both packets exactly, from the same code
|
|
14
20
|
`copilotkit verify` uses: the project record by presence, and, for each app or runtime
|
|
15
21
|
directory on its own, the env files, which variable carries the Intelligence key and which
|
|
16
22
|
file it came from, whether that directory's own process can load it, the package manager
|
|
@@ -111,6 +117,6 @@ Return one row for each assigned item with its status, evidence path, and a shor
|
|
|
111
117
|
Use only `proved`, `absent`, or `unproved` for the status. State each absent or unproved item.
|
|
112
118
|
Do not read, print, or return secret values. For `.env` and `.copilotkit/project.json`
|
|
113
119
|
checks, return only paths, presence checks, missing field names, and the one `.env`
|
|
114
|
-
modification time named above. Do not read a file
|
|
115
|
-
|
|
116
|
-
|
|
120
|
+
modification time named above. Do not read a file outside the project directory. Do not
|
|
121
|
+
run an onboarding command, except `onboard inspect` when the handoff holds no inspection
|
|
122
|
+
JSON. End your turn after returning the findings to the main coding agent.
|
|
@@ -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.25.0 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
|
|
@@ -54,6 +54,11 @@ passed, failed, or skipped, and do not withhold `both-oss` for a skip. A failed
|
|
|
54
54
|
on an available surface is a baseline failure and is not a skip. Return each predicate and
|
|
55
55
|
its secret-safe evidence.
|
|
56
56
|
|
|
57
|
+
For each failed predicate, say whether its cause is operational -- a project-owned process
|
|
58
|
+
or port, a request option, or a sandbox block -- or the project itself. Name the check that
|
|
59
|
+
failed, such as the `verify` check id. The main coding agent retries only an operational
|
|
60
|
+
failure.
|
|
61
|
+
|
|
57
62
|
The default in-memory OSS runner is ephemeral. SQLite, custom, or framework persistence
|
|
58
63
|
can be durable. Report the persistence that project evidence proves, or `unproved`. Do not
|
|
59
64
|
replace it and do not describe all OSS runs as ephemeral.
|
|
@@ -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.25.0 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
|
|
@@ -103,10 +103,15 @@ A pass on `runtime-process-in-project` proves only that the process runs inside
|
|
|
103
103
|
project. Ask the running agent which graph or agent ID it serves, and compare that with the
|
|
104
104
|
expected agent ID from Step 1. If they differ, an older build still answers on the port.
|
|
105
105
|
Report it, and stop it only under the rule below. The servers keep running after
|
|
106
|
-
the proof. Then go to Step 5a.
|
|
106
|
+
the proof. Then go to Step 5a. On Windows, `runtime-process-in-project` is `undetermined` and
|
|
107
|
+
marked `advisory`, because the CLI cannot read Windows processes. The checks still pass. Ask
|
|
108
|
+
the agent ID question all the same.
|
|
107
109
|
|
|
108
110
|
Otherwise sort `firstFailure`, and run the command again after each repair:
|
|
109
111
|
|
|
112
|
+
- `model-key`: the credentials step found the model key missing, or the vendor refused it.
|
|
113
|
+
The agent cannot answer a chat without it, so the command started nothing. Do not change
|
|
114
|
+
code, and do not write a key. Return it with its detail, before the browser.
|
|
110
115
|
- `runtime-answers`: nothing answered, or the project records no runtime URL. When the
|
|
111
116
|
record holds no URL, the command records one itself if exactly one port in the project
|
|
112
117
|
answers as a runtime. So this failure means it found none, or more than one. Read the
|
|
@@ -114,7 +119,7 @@ Otherwise sort `firstFailure`, and run the command again after each repair:
|
|
|
114
119
|
asking. Read the port from the log, not from the plan, and record it:
|
|
115
120
|
|
|
116
121
|
```text
|
|
117
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
122
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard runtime-url --url <runtime-url>
|
|
118
123
|
```
|
|
119
124
|
|
|
120
125
|
`<runtime-url>` is the project's runtime URL, or the plan's, with its port replaced by the
|
|
@@ -129,8 +134,37 @@ Otherwise sort `firstFailure`, and run the command again after each repair:
|
|
|
129
134
|
- `verify:intelligence_thread_routes`: usually a missing `identifyUser` where the runtime is
|
|
130
135
|
constructed. Return it for implementation. Never remove a `mode: "single-route"` mount
|
|
131
136
|
to satisfy it.
|
|
132
|
-
- `round-trip:agent_answers` naming `user-not-identified
|
|
133
|
-
|
|
137
|
+
- `round-trip:agent_answers` naming `user-not-identified`, or at `fail` because the runtime
|
|
138
|
+
refused the thread the check sent: the check starts its own run on a new thread, and this
|
|
139
|
+
app refuses that run. Its `identifyUser` reads a session the CLI does not carry, or it runs
|
|
140
|
+
only threads that it created. That is the app working. Do not change the app to accept the
|
|
141
|
+
run, and do not ask the developer for a session cookie. Prove the round trip on a thread
|
|
142
|
+
the app created:
|
|
143
|
+
1. Open the `frontendUrl` the checks resolved, under the Step 6a rules. The app needs a
|
|
144
|
+
signed-in user. Where the page asks for a sign-in, do not create an account and do not
|
|
145
|
+
enter credentials.
|
|
146
|
+
2. Send the Step 1 request once, on a new thread. On a second attempt, send it again: a
|
|
147
|
+
thread from before the repair does not prove the repaired app.
|
|
148
|
+
3. Read that request's `threadId` from the request body the page sent to the runtime
|
|
149
|
+
endpoint, in the network requests.
|
|
150
|
+
4. Run the checks again with `--thread <id>`. They read that thread from the platform with
|
|
151
|
+
the project key and start no run. The checks fail a thread that did not change during
|
|
152
|
+
this run, a thread whose newest message has no answer, and a thread of another agent.
|
|
153
|
+
Follow that detail once, with a new thread, before you report a failed proof.
|
|
154
|
+
|
|
155
|
+
Return `Status: blocked` with this check and its evidence when you cannot do these steps:
|
|
156
|
+
- a cloned-starter run, which opens no browser,
|
|
157
|
+
- no browser tool loaded,
|
|
158
|
+
- a sign-in you cannot complete,
|
|
159
|
+
- a browser tool that does not show request bodies.
|
|
160
|
+
|
|
161
|
+
Say that the developer can
|
|
162
|
+
send one message in the app and give you its thread id, which is all `--thread` needs.
|
|
163
|
+
The app is not at fault, so do not report `failed`. Pass `--header "Name: value"` instead
|
|
164
|
+
only when the developer offers what `identifyUser` reads.
|
|
165
|
+
|
|
166
|
+
Where the handoff carries a thread id from the developer, skip the numbered steps above
|
|
167
|
+
and do not open the app for them. Run the checks with `--thread <id>` at once.
|
|
134
168
|
- `round-trip:page_context_reaches_agent` at `fail`: the agent answered the plain request
|
|
135
169
|
and recorded nothing for the request that carried context. Return it with its evidence as
|
|
136
170
|
a failed proof step. At `undetermined` and marked `advisory`, the agent answered without
|
|
@@ -140,6 +174,7 @@ Otherwise sort `firstFailure`, and run the command again after each repair:
|
|
|
140
174
|
still does not complete, prove the path in Step 5a, and report the check with its detail.
|
|
141
175
|
- `round-trip:learning_container_assigned` at `fail`: the thread carries no container or
|
|
142
176
|
another one. A thread cannot move, so start a new thread rather than repairing that one.
|
|
177
|
+
With `--thread`, send the Step 1 request on a new thread in the app, and pass that id.
|
|
143
178
|
`features.self_learning` and `/info` are not evidence of an assignment.
|
|
144
179
|
- `env-files-current`: the process it names started before its env file was written, and
|
|
145
180
|
has to start again before a 401 means anything. Report it. Do not restart or stop it.
|
|
@@ -160,6 +195,11 @@ with a prefix rule for `curl`, run it again, and do not record a failed predicat
|
|
|
160
195
|
|
|
161
196
|
### Step 5a -- Prove that the page's data reaches the model
|
|
162
197
|
|
|
198
|
+
Where the proof checks needed `--thread`, the app refuses a run that Steps 5a and 5b send,
|
|
199
|
+
for the same reason. Skip both steps and send no run. Record that they sent no run for that
|
|
200
|
+
reason, and prove the page's data and the component in the browser instead, at Steps 6
|
|
201
|
+
and 7.
|
|
202
|
+
|
|
163
203
|
`verify --round-trip` asks a question that needs no context. Where the frontend's files
|
|
164
204
|
call a context hook, it also sends one token as context and reports
|
|
165
205
|
`page_context_reaches_agent`, whose `pass` proves that the agent's model sees context at
|
|
@@ -217,7 +257,8 @@ to read.
|
|
|
217
257
|
Read the registrations this project's frontend declares, by name. Step 5a already sent the
|
|
218
258
|
step 1 request with those declarations, so read the tool calls out of the events Step 5a
|
|
219
259
|
captured for the run carrying the page's unchanged context. Do not send that request again.
|
|
220
|
-
Where Step 5a sent no run
|
|
260
|
+
Where Step 5a sent no run because the proof checks needed `--thread`, send no run here
|
|
261
|
+
either. Where Step 5a sent no run, because this journey shares no page data, send the step 1 request
|
|
221
262
|
to `<runtime>/agent/<agent id>/run`, carrying those declarations, and read the tool calls out
|
|
222
263
|
of that run's own events. Where the Step 5a run carried none of those declarations, send
|
|
223
264
|
that run once more with them, and read that run instead. Never report a wiring gap from a run
|
|
@@ -249,8 +290,10 @@ For a recorded `both-oss` starting state, this step has no component to render.
|
|
|
249
290
|
same request the baseline recorded, require the same kind of user-visible result the
|
|
250
291
|
baseline produced, and require that the thread for that request is listed in the drawer.
|
|
251
292
|
Where this journey's frontend framework ships no threads drawer -- React Native --, prove
|
|
252
|
-
that thread with `npx --prefer-offline --yes copilotkit@4.
|
|
253
|
-
answer back off the thread and needs no browser.
|
|
293
|
+
that thread with `npx --prefer-offline --yes copilotkit@4.25.0 verify --round-trip`, which reads the
|
|
294
|
+
answer back off the thread and needs no browser. Where the proof checks needed `--thread`,
|
|
295
|
+
prove the thread for this request with `verify --thread <id>` instead. Record which of the
|
|
296
|
+
two you proved.
|
|
254
297
|
|
|
255
298
|
Use the surface control the main coding agent recorded for your environment. That finding
|
|
256
299
|
is the answer, and there is nothing here for you to go looking for. Do not register a
|
|
@@ -277,7 +320,7 @@ limit can be ten minutes. You cannot interrupt a call while it runs, so the limi
|
|
|
277
320
|
what you do after one. If a browser call took longer than 60 seconds to return, the browser
|
|
278
321
|
control is unresponsive. Do not call the browser again in this attempt. A second call to a
|
|
279
322
|
hung tool waits as long as the first one did. Run
|
|
280
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
323
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 verify --frontend-url <the frontendUrl the proof checks resolved> --json` once,
|
|
281
324
|
and record the `frontend_assets_served` result. Report the outcome `failed` with the cause
|
|
282
325
|
`browser-control-unresponsive`. The application is not at fault on this evidence: every
|
|
283
326
|
step before the browser proved the runtime without one, and no repair to the project can
|
|
@@ -287,7 +330,7 @@ reach the tool.
|
|
|
287
330
|
the page to finish loading. Do not retype the host, and do not substitute a URL a tool
|
|
288
331
|
offers you by default. Where the page loads but its styling is missing or the chat
|
|
289
332
|
control is dead, run
|
|
290
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
333
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 verify --frontend-url <the url you opened> --json`
|
|
291
334
|
before you diagnose anything else. A dev server can serve its page and refuse every
|
|
292
335
|
static chunk behind it, and on screen that is indistinguishable from a broken
|
|
293
336
|
integration. The `frontend_assets_served` check tells the two apart.
|