copilotkit 4.9.60 → 4.10.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 +10 -3
- package/cli-build-info.json +8 -8
- package/index.js +336 -172
- package/onboarding/index.json +106 -18
- package/onboarding/prompts/authenticate/start.md +41 -202
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +15 -129
- package/onboarding/prompts/credentials/plan.md +20 -20
- package/onboarding/prompts/credentials/settle-credentials.md +153 -0
- package/onboarding/prompts/credentials/write-plan.md +93 -0
- package/onboarding/prompts/fallback/best-effort.md +12 -9
- package/onboarding/prompts/feature/a2ui/implement.md +35 -6
- package/onboarding/prompts/feature/a2ui/proof.md +30 -6
- package/onboarding/prompts/feature/a2ui/start.md +29 -6
- package/onboarding/prompts/feature/channels/implement.md +70 -0
- package/onboarding/prompts/feature/channels/proof.md +60 -0
- package/onboarding/prompts/feature/channels/start.md +87 -0
- package/onboarding/prompts/feature/chat-suggestions/implement.md +36 -6
- package/onboarding/prompts/feature/chat-suggestions/proof.md +30 -5
- package/onboarding/prompts/feature/chat-suggestions/start.md +29 -6
- package/onboarding/prompts/feature/complete.md +11 -0
- package/onboarding/prompts/feature/learning/implement.md +41 -12
- package/onboarding/prompts/feature/learning/proof.md +32 -6
- package/onboarding/prompts/feature/learning/start.md +28 -5
- package/onboarding/prompts/feature/open-generative-ui/implement.md +37 -6
- package/onboarding/prompts/feature/open-generative-ui/proof.md +30 -5
- package/onboarding/prompts/feature/open-generative-ui/start.md +29 -6
- package/onboarding/prompts/feature/realtime-sync/implement.md +36 -7
- package/onboarding/prompts/feature/realtime-sync/proof.md +29 -5
- package/onboarding/prompts/feature/realtime-sync/start.md +28 -5
- package/onboarding/prompts/feature/rich-threads/implement.md +37 -8
- package/onboarding/prompts/feature/rich-threads/proof.md +31 -5
- package/onboarding/prompts/feature/rich-threads/start.md +28 -5
- package/onboarding/prompts/feature/stop.md +17 -8
- package/onboarding/prompts/feature/voice/implement.md +35 -6
- package/onboarding/prompts/feature/voice/proof.md +30 -5
- package/onboarding/prompts/feature/voice/start.md +29 -6
- 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/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 +2 -2
- package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
- 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 +6 -6
- 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 +75 -15
- package/onboarding/prompts/proof/complete.md +21 -8
- package/onboarding/prompts/proof/oss-baseline.md +6 -5
- package/onboarding/prompts/proof/round-trip.md +27 -14
- package/onboarding/prompts/research/gather.md +121 -0
- package/onboarding/prompts/research/route.md +81 -0
- package/onboarding/prompts/starter/clone.md +18 -9
- package/onboarding/prompts/stopped/run-failed.md +44 -0
- package/onboarding/prompts/subagent/create-plan.md +32 -1
- package/onboarding/prompts/subagent/implement-and-validate.md +9 -1
- package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
- package/onboarding/prompts/subagent/prove-round-trip.md +52 -8
- package/onboarding/prompts/unsupported/no-validated-path.md +9 -6
- package/package.json +1 -1
- package/release/release-tool.js +39 -3
package/onboarding/index.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"graphTree": "
|
|
2
|
+
"graphTree": "6b3586ba65cfeed7befa35d0c8794713198ac438",
|
|
3
3
|
"intentRoots": {
|
|
4
4
|
"add-a2ui": "feature/a2ui/start",
|
|
5
|
+
"add-channels": "feature/channels/start",
|
|
5
6
|
"add-chat-suggestions": "feature/chat-suggestions/start",
|
|
6
7
|
"add-learning": "feature/learning/start",
|
|
7
8
|
"add-open-generative-ui": "feature/open-generative-ui/start",
|
|
@@ -13,10 +14,8 @@
|
|
|
13
14
|
"prompts": [
|
|
14
15
|
{
|
|
15
16
|
"edges": [
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"credentials/plan",
|
|
19
|
-
"unsupported/no-validated-path"
|
|
17
|
+
"research/gather",
|
|
18
|
+
"stopped/run-failed"
|
|
20
19
|
],
|
|
21
20
|
"milestone": "authenticate",
|
|
22
21
|
"name": "authenticate/start"
|
|
@@ -31,9 +30,7 @@
|
|
|
31
30
|
},
|
|
32
31
|
{
|
|
33
32
|
"edges": [
|
|
34
|
-
"
|
|
35
|
-
"implementation/build-and-validate",
|
|
36
|
-
"unsupported/no-validated-path"
|
|
33
|
+
"credentials/settle-credentials"
|
|
37
34
|
],
|
|
38
35
|
"milestone": "credentials",
|
|
39
36
|
"name": "credentials/finalize-plan"
|
|
@@ -64,6 +61,23 @@
|
|
|
64
61
|
"milestone": "credentials",
|
|
65
62
|
"name": "credentials/plan"
|
|
66
63
|
},
|
|
64
|
+
{
|
|
65
|
+
"edges": [
|
|
66
|
+
"credentials/write-plan"
|
|
67
|
+
],
|
|
68
|
+
"milestone": "credentials",
|
|
69
|
+
"name": "credentials/settle-credentials"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"edges": [
|
|
73
|
+
"subagent/create-plan",
|
|
74
|
+
"stopped/run-failed",
|
|
75
|
+
"implementation/build-and-validate",
|
|
76
|
+
"unsupported/no-validated-path"
|
|
77
|
+
],
|
|
78
|
+
"milestone": "credentials",
|
|
79
|
+
"name": "credentials/write-plan"
|
|
80
|
+
},
|
|
67
81
|
{
|
|
68
82
|
"edges": [],
|
|
69
83
|
"milestone": "fallback",
|
|
@@ -78,7 +92,10 @@
|
|
|
78
92
|
"name": "feature/a2ui/implement"
|
|
79
93
|
},
|
|
80
94
|
{
|
|
81
|
-
"edges": [
|
|
95
|
+
"edges": [
|
|
96
|
+
"feature/stop",
|
|
97
|
+
"feature/complete"
|
|
98
|
+
],
|
|
82
99
|
"milestone": "feature",
|
|
83
100
|
"name": "feature/a2ui/proof"
|
|
84
101
|
},
|
|
@@ -90,6 +107,30 @@
|
|
|
90
107
|
"milestone": "feature",
|
|
91
108
|
"name": "feature/a2ui/start"
|
|
92
109
|
},
|
|
110
|
+
{
|
|
111
|
+
"edges": [
|
|
112
|
+
"feature/stop",
|
|
113
|
+
"feature/channels/proof"
|
|
114
|
+
],
|
|
115
|
+
"milestone": "feature",
|
|
116
|
+
"name": "feature/channels/implement"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"edges": [
|
|
120
|
+
"feature/stop",
|
|
121
|
+
"feature/complete"
|
|
122
|
+
],
|
|
123
|
+
"milestone": "feature",
|
|
124
|
+
"name": "feature/channels/proof"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"edges": [
|
|
128
|
+
"feature/stop",
|
|
129
|
+
"feature/channels/implement"
|
|
130
|
+
],
|
|
131
|
+
"milestone": "feature",
|
|
132
|
+
"name": "feature/channels/start"
|
|
133
|
+
},
|
|
93
134
|
{
|
|
94
135
|
"edges": [
|
|
95
136
|
"feature/stop",
|
|
@@ -99,7 +140,10 @@
|
|
|
99
140
|
"name": "feature/chat-suggestions/implement"
|
|
100
141
|
},
|
|
101
142
|
{
|
|
102
|
-
"edges": [
|
|
143
|
+
"edges": [
|
|
144
|
+
"feature/stop",
|
|
145
|
+
"feature/complete"
|
|
146
|
+
],
|
|
103
147
|
"milestone": "feature",
|
|
104
148
|
"name": "feature/chat-suggestions/proof"
|
|
105
149
|
},
|
|
@@ -111,6 +155,11 @@
|
|
|
111
155
|
"milestone": "feature",
|
|
112
156
|
"name": "feature/chat-suggestions/start"
|
|
113
157
|
},
|
|
158
|
+
{
|
|
159
|
+
"edges": [],
|
|
160
|
+
"milestone": "feature",
|
|
161
|
+
"name": "feature/complete"
|
|
162
|
+
},
|
|
114
163
|
{
|
|
115
164
|
"edges": [
|
|
116
165
|
"feature/stop",
|
|
@@ -120,7 +169,10 @@
|
|
|
120
169
|
"name": "feature/learning/implement"
|
|
121
170
|
},
|
|
122
171
|
{
|
|
123
|
-
"edges": [
|
|
172
|
+
"edges": [
|
|
173
|
+
"feature/stop",
|
|
174
|
+
"feature/complete"
|
|
175
|
+
],
|
|
124
176
|
"milestone": "feature",
|
|
125
177
|
"name": "feature/learning/proof"
|
|
126
178
|
},
|
|
@@ -141,7 +193,10 @@
|
|
|
141
193
|
"name": "feature/open-generative-ui/implement"
|
|
142
194
|
},
|
|
143
195
|
{
|
|
144
|
-
"edges": [
|
|
196
|
+
"edges": [
|
|
197
|
+
"feature/stop",
|
|
198
|
+
"feature/complete"
|
|
199
|
+
],
|
|
145
200
|
"milestone": "feature",
|
|
146
201
|
"name": "feature/open-generative-ui/proof"
|
|
147
202
|
},
|
|
@@ -162,7 +217,10 @@
|
|
|
162
217
|
"name": "feature/realtime-sync/implement"
|
|
163
218
|
},
|
|
164
219
|
{
|
|
165
|
-
"edges": [
|
|
220
|
+
"edges": [
|
|
221
|
+
"feature/stop",
|
|
222
|
+
"feature/complete"
|
|
223
|
+
],
|
|
166
224
|
"milestone": "feature",
|
|
167
225
|
"name": "feature/realtime-sync/proof"
|
|
168
226
|
},
|
|
@@ -183,7 +241,10 @@
|
|
|
183
241
|
"name": "feature/rich-threads/implement"
|
|
184
242
|
},
|
|
185
243
|
{
|
|
186
|
-
"edges": [
|
|
244
|
+
"edges": [
|
|
245
|
+
"feature/stop",
|
|
246
|
+
"feature/complete"
|
|
247
|
+
],
|
|
187
248
|
"milestone": "feature",
|
|
188
249
|
"name": "feature/rich-threads/proof"
|
|
189
250
|
},
|
|
@@ -209,7 +270,10 @@
|
|
|
209
270
|
"name": "feature/voice/implement"
|
|
210
271
|
},
|
|
211
272
|
{
|
|
212
|
-
"edges": [
|
|
273
|
+
"edges": [
|
|
274
|
+
"feature/stop",
|
|
275
|
+
"feature/complete"
|
|
276
|
+
],
|
|
213
277
|
"milestone": "feature",
|
|
214
278
|
"name": "feature/voice/proof"
|
|
215
279
|
},
|
|
@@ -431,6 +495,7 @@
|
|
|
431
495
|
"edges": [
|
|
432
496
|
"subagent/implement-and-validate",
|
|
433
497
|
"proof/round-trip",
|
|
498
|
+
"stopped/run-failed",
|
|
434
499
|
"unsupported/no-validated-path"
|
|
435
500
|
],
|
|
436
501
|
"milestone": "implementation",
|
|
@@ -446,7 +511,7 @@
|
|
|
446
511
|
"subagent/prove-oss-baseline",
|
|
447
512
|
"conversion/plan",
|
|
448
513
|
"credentials/plan",
|
|
449
|
-
"
|
|
514
|
+
"stopped/run-failed"
|
|
450
515
|
],
|
|
451
516
|
"milestone": "proof",
|
|
452
517
|
"name": "proof/oss-baseline"
|
|
@@ -455,19 +520,42 @@
|
|
|
455
520
|
"edges": [
|
|
456
521
|
"subagent/prove-round-trip",
|
|
457
522
|
"proof/complete",
|
|
458
|
-
"
|
|
523
|
+
"stopped/run-failed"
|
|
459
524
|
],
|
|
460
525
|
"milestone": "proof",
|
|
461
526
|
"name": "proof/round-trip"
|
|
462
527
|
},
|
|
528
|
+
{
|
|
529
|
+
"edges": [
|
|
530
|
+
"subagent/inspect-repository",
|
|
531
|
+
"research/route",
|
|
532
|
+
"stopped/run-failed"
|
|
533
|
+
],
|
|
534
|
+
"milestone": "research",
|
|
535
|
+
"name": "research/gather"
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
"edges": [
|
|
539
|
+
"proof/oss-baseline",
|
|
540
|
+
"credentials/plan",
|
|
541
|
+
"stopped/run-failed"
|
|
542
|
+
],
|
|
543
|
+
"milestone": "research",
|
|
544
|
+
"name": "research/route"
|
|
545
|
+
},
|
|
463
546
|
{
|
|
464
547
|
"edges": [
|
|
465
548
|
"proof/round-trip",
|
|
466
|
-
"
|
|
549
|
+
"stopped/run-failed"
|
|
467
550
|
],
|
|
468
551
|
"milestone": "starter",
|
|
469
552
|
"name": "starter/clone"
|
|
470
553
|
},
|
|
554
|
+
{
|
|
555
|
+
"edges": [],
|
|
556
|
+
"milestone": "stopped",
|
|
557
|
+
"name": "stopped/run-failed"
|
|
558
|
+
},
|
|
471
559
|
{
|
|
472
560
|
"edges": [],
|
|
473
561
|
"milestone": "subagent",
|
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Start CopilotKit onboarding
|
|
2
2
|
|
|
3
|
+
## First, say which coding agent you are
|
|
4
|
+
|
|
5
|
+
Run this before anything else in this prompt, including the welcome message below:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
npx --yes copilotkit@4.10.1 onboard identify --coding-agent <coding-agent-slug>
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Report your own product with one short slug, such as `codex` or `claude-code`.
|
|
12
|
+
|
|
13
|
+
It runs first because it is how this run reports that it started working. It needs no
|
|
14
|
+
browser, no session, and no project, so nothing below it can prevent it. Every rule after
|
|
15
|
+
this point can stop a run instead, and a run that stops before this command leaves no
|
|
16
|
+
trace that it ever began. The slug also tells the sign-in page which agent sent the
|
|
17
|
+
developer, so the page names you instead of "your coding agent".
|
|
18
|
+
|
|
19
|
+
The prompt the developer copied used to ask them to pass this. It asked a human to read
|
|
20
|
+
an instruction written for you, so it lives here now.
|
|
21
|
+
|
|
22
|
+
## How to run this onboarding
|
|
23
|
+
|
|
3
24
|
Act only as the orchestrator. Rely on subagents for all project work.
|
|
4
25
|
Give every project task to a subagent.
|
|
5
26
|
Do not inspect, change, implement, or validate the project yourself.
|
|
@@ -16,7 +37,7 @@ Every later command must run from the directory this run started in. A command r
|
|
|
16
37
|
somewhere else, such as a sibling of that directory, is refused rather than answered,
|
|
17
38
|
because the run it belongs to cannot be found from there. That refusal is a step to take,
|
|
18
39
|
not a stop to report: run
|
|
19
|
-
`npx --yes copilotkit@4.
|
|
40
|
+
`npx --yes copilotkit@4.10.1 onboard start --run <onboarding_run_id>` in the directory
|
|
20
41
|
you are now in, which binds it to the same run, then run the refused command again. Do not
|
|
21
42
|
start a run without that id. A run started without it is a second run, and the work already
|
|
22
43
|
done stops counting toward the first.
|
|
@@ -31,7 +52,8 @@ Send this exact message once, as your first message in this onboarding run, befo
|
|
|
31
52
|
anything else:
|
|
32
53
|
|
|
33
54
|
Welcome to CopilotKit. By the end of this run your own application talks to an AI agent,
|
|
34
|
-
and
|
|
55
|
+
and its chat history stays. A user can close the tab, come back, and reopen any past
|
|
56
|
+
conversation in full. The managed Intelligence platform is what keeps them. I prove that
|
|
35
57
|
round trip in the running app before I call it done. You finish with working software and
|
|
36
58
|
the evidence that it works.
|
|
37
59
|
|
|
@@ -56,44 +78,32 @@ CLI telemetry setting when a later step tries to send a report.
|
|
|
56
78
|
|
|
57
79
|
This run reports its own stops. If you stop this run at any point, send one short report
|
|
58
80
|
before you stop. That covers a stop this prompt names, a stop a later prompt names, and a
|
|
59
|
-
stop no prompt anticipated, including one your own harness causes. Run the
|
|
60
|
-
without another developer question. The CLI telemetry gate decides whether the report is
|
|
81
|
+
stop no prompt anticipated, including one your own harness causes. Run the friction command without another developer question. The CLI telemetry gate decides whether the report is
|
|
61
82
|
sent.
|
|
62
83
|
|
|
63
84
|
```text
|
|
64
|
-
npx --yes copilotkit@4.
|
|
85
|
+
npx --yes copilotkit@4.10.1 onboard friction --phase stop --category <slug>
|
|
65
86
|
```
|
|
66
87
|
|
|
67
|
-
Write
|
|
68
|
-
|
|
88
|
+
Write one or two sentences to standard input: the step you stopped at and what stopped it.
|
|
89
|
+
Pick the category that fits from docs-missing, docs-wrong, docs-sequential, cli-gap,
|
|
90
|
+
sdk-gap, environment, port-collision, credential, validation-loop, and other. Leave
|
|
91
|
+
--cost-seconds off. A run that stopped cannot separate one papercut's cost from the cost
|
|
92
|
+
of the whole run, so the estimate is optional on a stop report and only there. Send no secrets, source code, logs, or command output. The command refuses a
|
|
69
93
|
report that carries any of those, prints the reason, and exits zero. A refused report is
|
|
70
94
|
not a failed step. Reword it and send it again, or stop without a report.
|
|
71
95
|
|
|
72
96
|
Reporting a stop is not a route change. It does not resume the run, it is not a question
|
|
73
97
|
for the developer, and it does not replace whatever the rule that stopped you says to do
|
|
74
|
-
next: send the report, then stop.
|
|
75
|
-
a stop.
|
|
98
|
+
next: send the report, then stop.
|
|
76
99
|
|
|
77
100
|
Until now the route out of an unsupported path was the only place that asked for a report,
|
|
78
101
|
so a stop anywhere else left no trace at all. A stop nobody hears about is a stop this
|
|
79
102
|
graph cannot fix.
|
|
80
103
|
|
|
81
|
-
##
|
|
82
|
-
|
|
83
|
-
Report your own product with one short slug, such as `codex` or `claude-code`:
|
|
104
|
+
## Check sign-in
|
|
84
105
|
|
|
85
|
-
|
|
86
|
-
npx --yes copilotkit@4.9.60 onboard identify --coding-agent <coding-agent-slug>
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
Run it before the sign-in command below. The slug tells the sign-in page which agent
|
|
90
|
-
sent the developer, so the page names you instead of "your coding agent". It labels this
|
|
91
|
-
run and nothing else: it grants no access and gates no step.
|
|
92
|
-
|
|
93
|
-
The prompt the developer copied used to ask them to pass this. It asked a human to read
|
|
94
|
-
an instruction written for you, so it lives here now.
|
|
95
|
-
|
|
96
|
-
Run `npx --yes copilotkit@4.9.60 login --json` before any project work. This command
|
|
106
|
+
Run `npx --yes copilotkit@4.10.1 login --json` before any project work. This command
|
|
97
107
|
checks the current session. It starts sign-in only as needed. Treat this as a long-lived
|
|
98
108
|
streaming process. Do not wait for the command to exit before you read its standard output.
|
|
99
109
|
|
|
@@ -107,8 +117,8 @@ Read each JSON Lines record as the running command writes it:
|
|
|
107
117
|
existing session is already valid, and do not add a feature list or another explanation:
|
|
108
118
|
|
|
109
119
|
I will open a sign-in page. Signing in gives this project a managed CopilotKit project
|
|
110
|
-
and its API key
|
|
111
|
-
remove
|
|
120
|
+
and its API key. That key is what lets your users reopen past conversations. You can
|
|
121
|
+
remove it later to disconnect this workspace.
|
|
112
122
|
|
|
113
123
|
3. Open the first `authentication_url` exactly once with the operating system's default
|
|
114
124
|
browser. Run the opener separately from the long-lived login process. Use the command
|
|
@@ -128,180 +138,9 @@ Read each JSON Lines record as the running command writes it:
|
|
|
128
138
|
Do not use `whoami` for this check. It has no JSON output and some failures exit with code
|
|
129
139
|
zero. Do not put account tokens or credentials in the conversation.
|
|
130
140
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
This rule covers every subagent this run spawns, here and in every later prompt.
|
|
134
|
-
|
|
135
|
-
Spawning a subagent returns almost at once. That return is the dispatch succeeding, not the
|
|
136
|
-
work finishing: the subagent runs in the background, and its result reaches you as a
|
|
137
|
-
notification. Where your own harness hands you the report from the dispatch itself instead,
|
|
138
|
-
you already hold the result. Either way there is nothing to poll.
|
|
139
|
-
|
|
140
|
-
After you dispatch, do the work that does not depend on the result -- dispatch the other
|
|
141
|
-
subagent, run the preflight below -- and then stop and wait. Wherever a prompt in this graph
|
|
142
|
-
says to wait for a subagent to finish, that is what it means.
|
|
143
|
-
|
|
144
|
-
Do not sleep to pass the time. Not `sleep`, not `/bin/sleep`, not a timer under another
|
|
145
|
-
name, and not a loop that re-checks whether a result has arrived. Sleeping tells you nothing
|
|
146
|
-
that waiting for the result does not, and it spends wall clock, which is one of the things
|
|
147
|
-
this journey is measured on. One recorded run spent most of two hours asleep between
|
|
148
|
-
dispatches that had all returned in seconds.
|
|
149
|
-
|
|
150
|
-
Before you ask the developer any setup question, finish every read-only investigation and
|
|
151
|
-
preflight check in this section.
|
|
152
|
-
|
|
153
|
-
Prepare two research assignments. Give each research subagent one assignment. Tell it to run
|
|
154
|
-
`npx --yes copilotkit@4.9.60 onboard read subagent/inspect-repository` first and follow the
|
|
155
|
-
prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
156
|
-
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
157
|
-
and the same handoff. Require only its assigned packet.
|
|
158
|
-
|
|
159
|
-
Start both research subagents in parallel:
|
|
160
|
-
|
|
161
|
-
1. Spawn one research subagent. Assign it the project evidence packet.
|
|
162
|
-
2. Spawn a second research subagent. Assign it the environment evidence packet.
|
|
163
|
-
3. Start both research subagents. Then continue.
|
|
164
|
-
|
|
165
|
-
Continue to the surface-control preflight.
|
|
166
|
-
|
|
167
|
-
Prove whether your coding-agent environment has browser or device control. Do not assume it
|
|
168
|
-
either way, and do not report what you expect to be true: a run that guesses here records a
|
|
169
|
-
capability the rest of the graph then trusts. Use a browser or device tool already
|
|
170
|
-
configured for the coding agent you are running as, the same way a later step uses the
|
|
171
|
-
CopilotKit documentation server. With a browser tool, open one inert page such as
|
|
172
|
-
`about:blank` and read its title. With a device tool and no browser, list the booted devices
|
|
173
|
-
in one command: `adb devices -l`. Record the outcome of that attempt: `available` when the
|
|
174
|
-
tool answered, `unavailable` when there was none to call or the page did not open. Use
|
|
175
|
-
the control that matches the selected surface later.
|
|
176
|
-
|
|
177
|
-
Where the browser probe answered, register nothing. The harness came equipped and the run
|
|
178
|
-
owes it no setup.
|
|
179
|
-
|
|
180
|
-
Where no browser tool answered, register one for the coding agent you are running as, then
|
|
181
|
-
run the same probe again and record what the second attempt did. Register this server:
|
|
182
|
-
|
|
183
|
-
```text
|
|
184
|
-
npx --yes @playwright/mcp@latest --browser chrome --isolated --output-dir <project>/.copilotkit/proof/browser
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
Replace `<project>` with the absolute path of the target project directory. The server is
|
|
188
|
-
registered against the coding agent rather than against a directory, so a relative path here
|
|
189
|
-
resolves wherever that server happens to start.
|
|
190
|
-
|
|
191
|
-
`--browser chrome` drives the Google Chrome the developer already has, so this downloads no
|
|
192
|
-
browser. `--isolated` keeps the profile in memory, so it never touches their own Chrome
|
|
193
|
-
profile. `--output-dir` is what keeps the snapshots and screenshots out of the developer's
|
|
194
|
-
repository root: without it this server writes them to `.playwright-mcp/` beside their code,
|
|
195
|
-
which a project that never asked for a browser has no reason to carry, and which the graph's
|
|
196
|
-
own evidence rule already has a place for. Register it the way your own harness registers a
|
|
197
|
-
server, which is the mechanism a later step uses for the CopilotKit documentation server.
|
|
198
|
-
|
|
199
|
-
Tell the developer in one line what you registered, that it drives their installed Chrome,
|
|
200
|
-
and that it lives in this coding agent's configuration rather than in their repository. Do
|
|
201
|
-
not ask them to approve it, and do not ask a second question about it.
|
|
202
|
-
|
|
203
|
-
Do not add a browser or device driver to the project. A driver added there is a
|
|
204
|
-
devDependency and a browser download in the diff of a repository that never asked for one,
|
|
205
|
-
which is a different thing from a server registered against the coding agent.
|
|
206
|
-
|
|
207
|
-
Where the second probe still does not answer -- no Chrome to drive, no network, or a
|
|
208
|
-
harness that cannot register a server -- record `unavailable` and carry it. Do not keep
|
|
209
|
-
trying, and do not ask the developer about this tool limit.
|
|
210
|
-
|
|
211
|
-
Registering a server does not boot a device. Where the device probe found none, that is the
|
|
212
|
-
whole finding, and a browser is not a substitute for a device.
|
|
213
|
-
|
|
214
|
-
Wait for both research subagents to finish.
|
|
215
|
-
|
|
216
|
-
Then report that the research came back:
|
|
217
|
-
|
|
218
|
-
```text
|
|
219
|
-
npx --yes copilotkit@4.9.60 onboard checkpoint --phase research-returned
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
223
|
-
failed step.
|
|
224
|
-
|
|
225
|
-
Continue only if both research results start with `Status: passed`. For `Status: failed`,
|
|
226
|
-
retry only that packet with its failed items, up to three attempts. For `Status: blocked`,
|
|
227
|
-
or a third failed result, use the stop route at the end of this prompt.
|
|
228
|
-
|
|
229
|
-
Merge both evidence packets by item. On a conflict, spawn one fresh read-only verifier with
|
|
230
|
-
the item, both cited findings, and the research limits. Require its result to start with
|
|
231
|
-
`Status: passed`, `Status: failed`, or `Status: blocked`. Use only a passed cited result. Do
|
|
232
|
-
not inspect the project to settle the conflict yourself. Use the stop route for a non-pass
|
|
233
|
-
verifier result.
|
|
234
|
-
|
|
235
|
-
Match environment evidence to the target app directory from the project packet. Require one
|
|
236
|
-
target app directory and one matching environment row. If either packet gives no match or
|
|
237
|
-
more than one match, send each research worker a focused directory check. Continue only when
|
|
238
|
-
both workers return the same one target app directory. Both results must start with
|
|
239
|
-
`Status: passed`. Otherwise, use the stop route.
|
|
240
|
-
|
|
241
|
-
## Capture the protected-path baseline
|
|
242
|
-
|
|
243
|
-
Before you route on, run this from the target app directory:
|
|
244
|
-
|
|
245
|
-
```text
|
|
246
|
-
npx --yes copilotkit@4.9.60 onboard protect
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
It reads the working tree itself, records every changed or untracked path with a digest,
|
|
250
|
-
and prints the list. Require its result to start with `Status: passed`.
|
|
251
|
-
|
|
252
|
-
Use the printed list as the protected path list for the rest of the run. Do not assemble
|
|
253
|
-
that list yourself, and do not ask a subagent to hold it: every later audit reads the
|
|
254
|
-
captured baseline back from the CLI, so no step depends on a subagent that has since
|
|
255
|
-
finished.
|
|
256
|
-
|
|
257
|
-
Paths printed as `deferred` are the ones onboarding itself writes, `.env` and
|
|
258
|
-
`.copilotkit/project.json`. Every audit reports them and none fails on them until the step
|
|
259
|
-
that writes them re-captures them, so a run whose only untracked files are the two this
|
|
260
|
-
graph exists to create is never stopped by them.
|
|
261
|
-
|
|
262
|
-
If the result starts with `Status: blocked`, report the printed reason and use the stop
|
|
263
|
-
route at the end of this prompt.
|
|
264
|
-
|
|
265
|
-
## What the merged findings must contain
|
|
266
|
-
|
|
267
|
-
If a repository file exists, each finding must cite it. For an empty project, the subagents
|
|
268
|
-
must cite the directory check and report absent parts.
|
|
269
|
-
|
|
270
|
-
The findings must cover what the project is for, the agent, frontend, CopilotKit setup,
|
|
271
|
-
authentication, credential names, and validation path. Do not ask the developer for facts
|
|
272
|
-
that the repository answers.
|
|
273
|
-
|
|
274
|
-
## Route on the merged findings
|
|
275
|
-
|
|
276
|
-
Read the route off the merged findings. Three of them decide it, and you already hold all
|
|
277
|
-
three:
|
|
278
|
-
|
|
279
|
-
1. an agent is present,
|
|
280
|
-
2. a frontend is present,
|
|
281
|
-
3. a CopilotKit integration is present.
|
|
282
|
-
|
|
283
|
-
Do not infer a working OSS path from packages, imports, project files, or keys, and do not
|
|
284
|
-
settle these three from your own reading of the project. Each one comes from the merged
|
|
285
|
-
packets or it is not proved.
|
|
286
|
-
|
|
287
|
-
If all three are proved, prove the live starting state before any project file changes. Run
|
|
288
|
-
`npx --yes copilotkit@4.9.60 onboard read proof/oss-baseline`.
|
|
289
|
-
|
|
290
|
-
Route there before you ask the developer anything else. The questions after this prompt
|
|
291
|
-
select a framework and a frontend that the findings already name, so a developer who
|
|
292
|
-
answers them has answered for work the next node exists to check. Their existing
|
|
293
|
-
application is what that node protects. Whether it works is what the proof decides, not
|
|
294
|
-
these three findings.
|
|
295
|
-
|
|
296
|
-
For every other combination of the three, take one more step first. If neither the
|
|
297
|
-
developer nor the repository findings prove what the project is for, ask one guided
|
|
298
|
-
question about the user outcome. This asks what the developer wants to build before you
|
|
299
|
-
select a framework. Give two or three short examples and offer a minimal starter. Record
|
|
300
|
-
the answer and give it to each later subagent. Then run
|
|
301
|
-
`npx --yes copilotkit@4.9.60 onboard read credentials/plan`.
|
|
302
|
-
|
|
303
|
-
Do not ask that question on the route above. A project carrying all three states its
|
|
304
|
-
purpose in the application it already serves.
|
|
141
|
+
When sign-in is settled, run
|
|
142
|
+
`npx --yes copilotkit@4.10.1 onboard read research/gather`.
|
|
305
143
|
|
|
306
|
-
If
|
|
307
|
-
`npx --yes copilotkit@4.
|
|
144
|
+
If sign-in stops onboarding, run
|
|
145
|
+
`npx --yes copilotkit@4.10.1 onboard read stopped/run-failed`. It says nothing about
|
|
146
|
+
whether this project's stack is supported, which is not yet known at this point.
|
|
@@ -100,7 +100,7 @@ of this journey, and a drawer that lists nothing is not a reason to mint one. Li
|
|
|
100
100
|
tokens stay a self-hosted concern.
|
|
101
101
|
|
|
102
102
|
Where this journey's frontend framework ships no threads drawer -- React Native --, the
|
|
103
|
-
fifth item is proved by `npx --yes copilotkit@4.
|
|
103
|
+
fifth item is proved by `npx --yes copilotkit@4.10.1 verify --round-trip`, which sends a
|
|
104
104
|
real request and reads the answer back off the thread it landed on. The run says which of
|
|
105
105
|
the two it proved. Do not send a run to the managed Intelligence dashboard to prove this.
|
|
106
106
|
An authenticated browser session at a hosted dashboard is the one thing an agent-driven run
|
|
@@ -116,7 +116,7 @@ and passed -- so a run scored on either one was scored on the same fact. Every r
|
|
|
116
116
|
resolves that condition from, while `licenseStatus` is a compatibility projection of it
|
|
117
117
|
for older thread surfaces and outlives them only until those surfaces go.
|
|
118
118
|
|
|
119
|
-
Then run `npx --yes copilotkit@4.
|
|
119
|
+
Then run `npx --yes copilotkit@4.10.1 onboard read credentials/finalize-plan`.
|
|
120
120
|
|
|
121
121
|
If a selected page does not load after the second method, run
|
|
122
|
-
`npx --yes copilotkit@4.
|
|
122
|
+
`npx --yes copilotkit@4.10.1 onboard read unsupported/no-validated-path`.
|