copilotkit 4.13.0 → 4.14.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 +109 -6
- package/cli-build-info.json +8 -8
- package/index.js +43866 -40955
- package/onboarding/index.json +1 -1
- package/onboarding/prompts/authenticate/start.md +38 -27
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +14 -12
- package/onboarding/prompts/credentials/plan.md +21 -21
- package/onboarding/prompts/credentials/settle-credentials.md +18 -11
- package/onboarding/prompts/credentials/write-plan.md +19 -12
- package/onboarding/prompts/fallback/best-effort.md +9 -9
- package/onboarding/prompts/feature/a2ui/implement.md +6 -6
- package/onboarding/prompts/feature/a2ui/proof.md +6 -6
- package/onboarding/prompts/feature/a2ui/start.md +7 -7
- package/onboarding/prompts/feature/channels/implement.md +41 -15
- package/onboarding/prompts/feature/channels/proof.md +12 -10
- package/onboarding/prompts/feature/channels/start.md +13 -12
- package/onboarding/prompts/feature/chat-suggestions/implement.md +6 -6
- package/onboarding/prompts/feature/chat-suggestions/proof.md +6 -6
- package/onboarding/prompts/feature/chat-suggestions/start.md +7 -7
- package/onboarding/prompts/feature/complete.md +19 -1
- package/onboarding/prompts/feature/learning/implement.md +16 -16
- package/onboarding/prompts/feature/learning/proof.md +7 -7
- package/onboarding/prompts/feature/learning/start.md +8 -8
- package/onboarding/prompts/feature/open-generative-ui/implement.md +6 -6
- package/onboarding/prompts/feature/open-generative-ui/proof.md +6 -6
- package/onboarding/prompts/feature/open-generative-ui/start.md +7 -7
- package/onboarding/prompts/feature/realtime-sync/implement.md +7 -7
- package/onboarding/prompts/feature/realtime-sync/proof.md +6 -6
- package/onboarding/prompts/feature/realtime-sync/start.md +6 -6
- package/onboarding/prompts/feature/rich-threads/implement.md +10 -10
- package/onboarding/prompts/feature/rich-threads/proof.md +6 -6
- package/onboarding/prompts/feature/rich-threads/start.md +6 -6
- package/onboarding/prompts/feature/stop.md +36 -2
- package/onboarding/prompts/feature/voice/implement.md +7 -7
- package/onboarding/prompts/feature/voice/proof.md +6 -6
- package/onboarding/prompts/feature/voice/start.md +8 -8
- 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 +7 -7
- package/onboarding/prompts/frontend/react-native.md +5 -2
- package/onboarding/prompts/frontend/react-spa.md +5 -2
- package/onboarding/prompts/frontend/vue.md +5 -2
- package/onboarding/prompts/implementation/build-and-validate.md +24 -23
- package/onboarding/prompts/proof/complete.md +8 -8
- package/onboarding/prompts/proof/oss-baseline.md +5 -5
- package/onboarding/prompts/proof/round-trip.md +11 -11
- package/onboarding/prompts/research/gather.md +36 -7
- package/onboarding/prompts/research/merge.md +3 -3
- package/onboarding/prompts/research/preflight.md +4 -4
- package/onboarding/prompts/research/route.md +10 -8
- package/onboarding/prompts/starter/clone.md +97 -26
- package/onboarding/prompts/stopped/run-failed.md +2 -2
- package/onboarding/prompts/subagent/create-plan.md +4 -4
- package/onboarding/prompts/subagent/implement-and-validate.md +26 -6
- package/onboarding/prompts/subagent/inspect-repository.md +2 -2
- package/onboarding/prompts/subagent/prove-oss-baseline.md +2 -2
- package/onboarding/prompts/subagent/prove-round-trip.md +10 -10
- package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
- package/package.json +5 -1
- package/release/release-tool.js +330 -72
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Prove the existing OSS baseline
|
|
2
2
|
|
|
3
3
|
Do not prove the baseline yourself. Spawn one proof subagent. Tell it to run
|
|
4
|
-
`npx --yes copilotkit@4.
|
|
4
|
+
`npx --yes copilotkit@4.14.0 onboard read subagent/prove-oss-baseline` first and follow the
|
|
5
5
|
prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
6
6
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
7
7
|
and the same handoff. Give it the repository findings and exact CLI package spec.
|
|
@@ -17,7 +17,7 @@ Wait for the subagent to finish.
|
|
|
17
17
|
Record what that proof returned before you route on it:
|
|
18
18
|
|
|
19
19
|
```text
|
|
20
|
-
npx --yes copilotkit@4.
|
|
20
|
+
npx --yes copilotkit@4.14.0 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
Report the gate whatever it returned. Pass `passed` when the subagent proved a predicate,
|
|
@@ -35,12 +35,12 @@ Do not change project files before this proof ends. Starting existing developmen
|
|
|
35
35
|
processes and their ignored runtime files is allowed.
|
|
36
36
|
|
|
37
37
|
If the subagent proves the `both-oss` predicate, keep its evidence with the plan and run
|
|
38
|
-
`npx --yes copilotkit@4.
|
|
38
|
+
`npx --yes copilotkit@4.14.0 onboard read conversion/plan`. That project already works.
|
|
39
39
|
What it needs is the conversion, not a build.
|
|
40
40
|
|
|
41
41
|
If the proof does not establish the baseline, record the starting state
|
|
42
42
|
`both-copilotkit-unproved` and run
|
|
43
|
-
`npx --yes copilotkit@4.
|
|
43
|
+
`npx --yes copilotkit@4.14.0 onboard read credentials/plan`. This prompt is served
|
|
44
44
|
whenever a project looks like an OSS integration, so a baseline that did not prove is an
|
|
45
45
|
ordinary starting state rather than a failure. Keep the failing predicate with the plan.
|
|
46
46
|
|
|
@@ -54,5 +54,5 @@ and the plan preserves it rather than repeating it.
|
|
|
54
54
|
|
|
55
55
|
If it cannot identify the running process safely, exposes a secret, or finds a baseline
|
|
56
56
|
failure that cannot be classified, run
|
|
57
|
-
`npx --yes copilotkit@4.
|
|
57
|
+
`npx --yes copilotkit@4.14.0 onboard read stopped/run-failed`. None of those mean the
|
|
58
58
|
project is unsupported: they mean this run did not establish what it needed to.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Prove the user journey
|
|
2
2
|
|
|
3
3
|
Do not do the proof work yourself. Spawn one proof subagent. Tell it to run
|
|
4
|
-
`npx --yes copilotkit@4.
|
|
4
|
+
`npx --yes copilotkit@4.14.0 onboard read subagent/prove-round-trip` first and follow the
|
|
5
5
|
prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
6
6
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
7
7
|
and the same handoff. Give it the selected framework, frontend, model, approved plan, selected
|
|
@@ -14,7 +14,7 @@ drives the surface and cannot see your environment, so without that finding it s
|
|
|
14
14
|
step discovering what you already know. A subagent told it has no control for the surface
|
|
15
15
|
this frontend needs reports the skip outcome rather than looking for a way around it.
|
|
16
16
|
|
|
17
|
-
A run that cloned a starter is the exception. Tell that subagent to
|
|
17
|
+
A run that cloned a starter is the exception. Tell that subagent to finish after
|
|
18
18
|
`verify --round-trip` and to open no browser. The cloned code is what this repository's
|
|
19
19
|
starter smoke jobs already drive on every change, so opening a browser re-proves in the
|
|
20
20
|
developer's run what those jobs prove before the starter ships, and it is the most
|
|
@@ -33,13 +33,13 @@ pass the time.
|
|
|
33
33
|
Report each attempt at the journey as it ends, counting from one:
|
|
34
34
|
|
|
35
35
|
```text
|
|
36
|
-
npx --yes copilotkit@4.
|
|
36
|
+
npx --yes copilotkit@4.14.0 onboard checkpoint --phase journey-attempted --attempt 1
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
Record what that proof returned before you route on it:
|
|
40
40
|
|
|
41
41
|
```text
|
|
42
|
-
npx --yes copilotkit@4.
|
|
42
|
+
npx --yes copilotkit@4.14.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. The
|
|
@@ -47,7 +47,7 @@ command prints one line and sends nothing else. Where a repair cycle runs the pr
|
|
|
47
47
|
record each attempt as it ends.
|
|
48
48
|
|
|
49
49
|
For every protected-path audit in this prompt, run
|
|
50
|
-
`npx --yes copilotkit@4.
|
|
50
|
+
`npx --yes copilotkit@4.14.0 onboard audit` from the target app directory. If its result
|
|
51
51
|
starts with `Status: blocked`, report the printed reason and use the route-out rules below.
|
|
52
52
|
A blocked audit proved nothing changed and is not a preservation failure. If a
|
|
53
53
|
protected-path audit reports a changed path, decide it the way the implementation prompt
|
|
@@ -56,7 +56,7 @@ returns none, so a finding with no Files changed section to test against routes
|
|
|
56
56
|
path one of those sections names is this run's own change and routes out too. Accept a
|
|
57
57
|
path only when a section this run collected covers the step that wrote it and does not
|
|
58
58
|
name it:
|
|
59
|
-
`npx --yes copilotkit@4.
|
|
59
|
+
`npx --yes copilotkit@4.14.0 onboard protect --accept-external --path <path>`. Then run
|
|
60
60
|
the audit again and name the path in the closing summary. Never repair, reset, or revert a
|
|
61
61
|
protected path.
|
|
62
62
|
|
|
@@ -64,12 +64,12 @@ That holds for a repair cycle too. When the fix for a failing check lands on a p
|
|
|
64
64
|
path, the path is still the developer's, however right the diagnosis is and however small
|
|
65
65
|
the fix. Reading the file never settles who wrote it. Ask the developer to allow the
|
|
66
66
|
change, and record their answer with
|
|
67
|
-
`npx --yes copilotkit@4.
|
|
67
|
+
`npx --yes copilotkit@4.14.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
|
|
68
68
|
or route out. Never repair it, and never send it to a repair worker.
|
|
69
69
|
|
|
70
70
|
If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
|
|
71
71
|
`proof/complete` only if that audit passes. After the audit passes, run
|
|
72
|
-
`npx --yes copilotkit@4.
|
|
72
|
+
`npx --yes copilotkit@4.14.0 onboard read proof/complete`. A performed surface outcome with
|
|
73
73
|
the full round trip is core success even if a continued-development tool fails. A skipped
|
|
74
74
|
surface outcome still enters `proof/complete` so the CLI records the blocked result. Do not
|
|
75
75
|
describe a skipped surface as proved. Keep the Skills and MCP results separate from the proof
|
|
@@ -136,7 +136,7 @@ Restart each project-owned process changed by the repair. Report the cycle, coun
|
|
|
136
136
|
one:
|
|
137
137
|
|
|
138
138
|
```text
|
|
139
|
-
npx --yes copilotkit@4.
|
|
139
|
+
npx --yes copilotkit@4.14.0 onboard checkpoint --phase repair-attempted --attempt 1
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
Then spawn a fresh proof subagent
|
|
@@ -154,7 +154,7 @@ and proof cycles.
|
|
|
154
154
|
|
|
155
155
|
Route out only when the failure is not yours to fix, when the same proof still fails after
|
|
156
156
|
three attempts, or when no evidence of the round trip can be produced. In those cases run
|
|
157
|
-
`npx --yes copilotkit@4.
|
|
157
|
+
`npx --yes copilotkit@4.14.0 onboard read stopped/run-failed`. The stack is supported:
|
|
158
158
|
this run did not finish, which is a different ending and a different report. All three are
|
|
159
159
|
about the round trip itself. A round trip that proved is not one of them, whatever failed
|
|
160
160
|
after it.
|
|
@@ -165,7 +165,7 @@ friction command without another developer question: it applies the telemetry se
|
|
|
165
165
|
developer already set.
|
|
166
166
|
|
|
167
167
|
```text
|
|
168
|
-
npx --yes copilotkit@4.
|
|
168
|
+
npx --yes copilotkit@4.14.0 onboard friction --phase stop --category <slug>
|
|
169
169
|
```
|
|
170
170
|
|
|
171
171
|
Write one or two sentences to standard input: the step you stopped at and what stopped it.
|
|
@@ -14,13 +14,42 @@ notification. Where your own harness hands you the report from the dispatch itse
|
|
|
14
14
|
you already hold the result. Either way there is nothing to poll.
|
|
15
15
|
|
|
16
16
|
After you dispatch, do the work that does not depend on the result -- dispatch the other
|
|
17
|
-
subagent, run the preflight the next prompt gives you -- and then
|
|
18
|
-
prompt in this graph says to wait for a subagent to finish, that is
|
|
17
|
+
subagent, run the preflight the next prompt gives you -- and then end your turn and wait for
|
|
18
|
+
the result. Wherever a prompt in this graph says to wait for a subagent to finish, that is
|
|
19
|
+
what it means. It is a pause, as "Pausing vs stopping" below describes, and not a stop.
|
|
19
20
|
|
|
20
21
|
Do not sleep to pass the time. Not `sleep`, not `/bin/sleep`, not a timer under another
|
|
21
22
|
name, and not a loop that re-checks whether a result has arrived. Sleeping tells you nothing
|
|
22
23
|
that waiting for the result does not, and it spends wall clock.
|
|
23
24
|
|
|
25
|
+
## Pausing vs stopping
|
|
26
|
+
|
|
27
|
+
This rule covers the whole run, here and in every later prompt.
|
|
28
|
+
|
|
29
|
+
In this graph, stop means one thing: end the run through a named terminal. You send the
|
|
30
|
+
stop report `authenticate/start` describes, then read the terminal that the rule names.
|
|
31
|
+
Nothing else is a stop.
|
|
32
|
+
|
|
33
|
+
A pause keeps the run open. "End your turn and wait for" something means: end this turn,
|
|
34
|
+
and continue when that thing arrives. A pause waits for one of two things:
|
|
35
|
+
|
|
36
|
+
1. A subagent result. The section above says how to wait for one.
|
|
37
|
+
2. The developer. Ask the question, then end your turn and wait for the reply. The reply
|
|
38
|
+
is the answer. A developer who replies without choosing, such as "go ahead" or "you
|
|
39
|
+
pick", gives no answer, and the default that the prompt states applies. Where the
|
|
40
|
+
prompt states no default, ask once more.
|
|
41
|
+
|
|
42
|
+
Before you end your turn to wait for the developer where the prompt states no default,
|
|
43
|
+
report the pause:
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
npx --yes copilotkit@4.14.0 onboard checkpoint --phase awaiting-developer
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
When the answer or the result arrives, continue from the step that paused. Do not read an
|
|
50
|
+
earlier prompt again, send the welcome again, or start a new run: the run id you hold still
|
|
51
|
+
names this run. A pause is not a stop. It sends no stop report and takes no stop route.
|
|
52
|
+
|
|
24
53
|
## When a subagent cannot work
|
|
25
54
|
|
|
26
55
|
This rule also covers every subagent this run spawns, here and in every later prompt.
|
|
@@ -34,7 +63,7 @@ Both research subagents failing means this harness has no working subagent at al
|
|
|
34
63
|
is worth recording once:
|
|
35
64
|
|
|
36
65
|
```text
|
|
37
|
-
npx --yes copilotkit@4.
|
|
66
|
+
npx --yes copilotkit@4.14.0 onboard checkpoint --phase delegation-unavailable
|
|
38
67
|
```
|
|
39
68
|
|
|
40
69
|
Then say once, in your own words, that this environment has no working subagents, so you
|
|
@@ -47,7 +76,7 @@ Before you ask the developer any setup question, finish every read-only investig
|
|
|
47
76
|
preflight check in this section.
|
|
48
77
|
|
|
49
78
|
Prepare two research assignments. Give each research subagent one assignment. Tell it to run
|
|
50
|
-
`npx --yes copilotkit@4.
|
|
79
|
+
`npx --yes copilotkit@4.14.0 onboard read subagent/inspect-repository` first and follow the
|
|
51
80
|
prompt it returns. If that read fails because the subagent cannot use the shell, stop that
|
|
52
81
|
subagent. Run the same command yourself, then spawn a fresh subagent with the returned prompt
|
|
53
82
|
and the same handoff. Require only its assigned packet.
|
|
@@ -61,7 +90,7 @@ Start both research subagents in parallel:
|
|
|
61
90
|
Report that both subagents started:
|
|
62
91
|
|
|
63
92
|
```text
|
|
64
|
-
npx --yes copilotkit@4.
|
|
93
|
+
npx --yes copilotkit@4.14.0 onboard checkpoint --phase research-dispatched
|
|
65
94
|
```
|
|
66
95
|
|
|
67
96
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -70,8 +99,8 @@ failed step.
|
|
|
70
99
|
The research is under way. Continue to the surface-control preflight while it runs:
|
|
71
100
|
|
|
72
101
|
```text
|
|
73
|
-
npx --yes copilotkit@4.
|
|
102
|
+
npx --yes copilotkit@4.14.0 onboard read research/preflight
|
|
74
103
|
```
|
|
75
104
|
|
|
76
105
|
If inspection stops onboarding, run
|
|
77
|
-
`npx --yes copilotkit@4.
|
|
106
|
+
`npx --yes copilotkit@4.14.0 onboard read stopped/run-failed`.
|
|
@@ -21,7 +21,7 @@ Project selection is where the settled port is written down, through `--runtime-
|
|
|
21
21
|
Then report that the research came back:
|
|
22
22
|
|
|
23
23
|
```text
|
|
24
|
-
npx --yes copilotkit@4.
|
|
24
|
+
npx --yes copilotkit@4.14.0 onboard checkpoint --phase research-returned
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -54,7 +54,7 @@ worker a focused directory check. Continue only when both workers return the sam
|
|
|
54
54
|
app directory. Both results must start with `Status: passed`. Otherwise, use the stop route.
|
|
55
55
|
|
|
56
56
|
When both research results are merged, run
|
|
57
|
-
`npx --yes copilotkit@4.
|
|
57
|
+
`npx --yes copilotkit@4.14.0 onboard read research/route`.
|
|
58
58
|
|
|
59
59
|
If inspection stops onboarding, run
|
|
60
|
-
`npx --yes copilotkit@4.
|
|
60
|
+
`npx --yes copilotkit@4.14.0 onboard read stopped/run-failed`.
|
|
@@ -45,7 +45,7 @@ mechanism a later step uses for the CopilotKit documentation server.
|
|
|
45
45
|
|
|
46
46
|
Some coding agents, Claude Code among them, load a newly registered MCP server only at the
|
|
47
47
|
next session start. Tell the developer in one line to expect one restart, then restart and
|
|
48
|
-
re-bind with `npx --yes copilotkit@4.
|
|
48
|
+
re-bind with `npx --yes copilotkit@4.14.0 onboard start --run <onboarding_run_id>`. That
|
|
49
49
|
restart is a step here, not an error.
|
|
50
50
|
|
|
51
51
|
Do not add a browser or device driver to the project. A driver added there is a
|
|
@@ -62,14 +62,14 @@ whole finding.
|
|
|
62
62
|
Report that the probe settled, whichever way it came out:
|
|
63
63
|
|
|
64
64
|
```text
|
|
65
|
-
npx --yes copilotkit@4.
|
|
65
|
+
npx --yes copilotkit@4.14.0 onboard checkpoint --phase surface-probed
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
Then merge the research:
|
|
69
69
|
|
|
70
70
|
```text
|
|
71
|
-
npx --yes copilotkit@4.
|
|
71
|
+
npx --yes copilotkit@4.14.0 onboard read research/merge
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
If inspection stops onboarding, run
|
|
75
|
-
`npx --yes copilotkit@4.
|
|
75
|
+
`npx --yes copilotkit@4.14.0 onboard read stopped/run-failed`.
|
|
@@ -9,7 +9,7 @@ sends the run down one path.
|
|
|
9
9
|
Before you route on, run this from the target app directory:
|
|
10
10
|
|
|
11
11
|
```text
|
|
12
|
-
npx --yes copilotkit@4.
|
|
12
|
+
npx --yes copilotkit@4.14.0 onboard protect
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
It reads the working tree itself, records every changed or untracked path with a digest,
|
|
@@ -41,7 +41,7 @@ On either, run this before you read the three findings below, and without asking
|
|
|
41
41
|
purpose question:
|
|
42
42
|
|
|
43
43
|
```text
|
|
44
|
-
npx --yes copilotkit@4.
|
|
44
|
+
npx --yes copilotkit@4.14.0 onboard read feature/channels/start
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
Name the provider to that node so it does not ask again. A Slack page names Slack. A Teams
|
|
@@ -96,7 +96,7 @@ settle these three from your own reading of the project. Each one comes from the
|
|
|
96
96
|
packets or it is not proved.
|
|
97
97
|
|
|
98
98
|
If all three are proved, prove the live starting state before any project file changes. Run
|
|
99
|
-
`npx --yes copilotkit@4.
|
|
99
|
+
`npx --yes copilotkit@4.14.0 onboard read proof/oss-baseline`.
|
|
100
100
|
|
|
101
101
|
Route there before you ask the developer anything else. The questions after this prompt
|
|
102
102
|
select a framework and a frontend that the findings already name, so a developer who
|
|
@@ -107,19 +107,21 @@ these three findings.
|
|
|
107
107
|
For every other combination of the three, take one more step first. If neither the
|
|
108
108
|
developer nor the repository findings prove what the project is for, ask one guided
|
|
109
109
|
question about the user outcome. This asks what the developer wants to build before you
|
|
110
|
-
select a framework. Give two or three short examples
|
|
111
|
-
|
|
112
|
-
`npx --yes copilotkit@4.
|
|
110
|
+
select a framework. Give two or three short examples. Record the answer and give it to
|
|
111
|
+
each later subagent. Then run
|
|
112
|
+
`npx --yes copilotkit@4.14.0 onboard read credentials/plan`.
|
|
113
113
|
|
|
114
114
|
Do not ask that question on the route above. A project carrying all three states its
|
|
115
115
|
purpose in the application it already serves.
|
|
116
116
|
|
|
117
117
|
Do not ask it when the target directory holds no project either.
|
|
118
|
-
The frontend they pick next decides
|
|
118
|
+
The frontend they pick next decides whether a starter exists.
|
|
119
|
+
Next.js and Angular have starters for some agent frameworks.
|
|
120
|
+
React SPA, Vue 3 and React Native have no starter, so the project is built from their documentation.
|
|
119
121
|
Slack and Microsoft Teams are choices at that step.
|
|
120
122
|
A purpose question here names a domain before that choice.
|
|
121
123
|
Take the same read named above without asking.
|
|
122
124
|
|
|
123
125
|
If authentication or inspection stops onboarding, run
|
|
124
|
-
`npx --yes copilotkit@4.
|
|
126
|
+
`npx --yes copilotkit@4.14.0 onboard read stopped/run-failed`. Neither says anything
|
|
125
127
|
about whether this project's stack is supported, which is not yet known at this point.
|
|
@@ -7,25 +7,31 @@ A directory that holds only a Git repository, a coding agent's own configuration
|
|
|
7
7
|
settings or scratch notes still qualifies. Those are not a project, and `git init` is the
|
|
8
8
|
marker this CLI anchors a run on, so it cannot also be the thing that disqualifies one.
|
|
9
9
|
|
|
10
|
+
The home folder and system folders never qualify. Neither does a directory with no Git
|
|
11
|
+
repository of its own whose folders, one or two levels down, hold a Git repository or a
|
|
12
|
+
dependency manifest: those folders are the developer's projects. `init` refuses all
|
|
13
|
+
three. If the target is one of them, stop the shortcut and ask the developer which
|
|
14
|
+
project to use, or to open the coding agent in a new empty folder.
|
|
15
|
+
|
|
10
16
|
Match the selected agent framework and frontend to this table:
|
|
11
17
|
|
|
12
|
-
| Agent framework | Frontend | Framework ID |
|
|
13
|
-
| -------------------------------- | -------- | ---------------------------------- |
|
|
14
|
-
| Agno | Next.js | `agno` |
|
|
15
|
-
| Claude Agent SDK Python | Next.js | `claude-sdk-python` |
|
|
16
|
-
| Claude Agent SDK TypeScript | Next.js | `claude-sdk-typescript` |
|
|
17
|
-
| CrewAI Flows | Next.js | `flows` |
|
|
18
|
-
| LangGraph Python | Next.js | `langgraph-py` |
|
|
19
|
-
| LangGraph TypeScript | Next.js | `langgraph-js` |
|
|
20
|
-
| LlamaIndex | Next.js | `llamaindex` |
|
|
21
|
-
| ADK | Next.js | `adk` |
|
|
22
|
-
| ADK | Angular | `adk-angular` |
|
|
23
|
-
| Microsoft Agent Framework Python | Next.js | `microsoft-agent-framework-py` |
|
|
24
|
-
| Microsoft Agent Framework .NET | Next.js | `microsoft-agent-framework-dotnet` |
|
|
25
|
-
| Mastra | Next.js | `mastra` |
|
|
26
|
-
| Pydantic AI | Next.js | `pydantic-ai` |
|
|
27
|
-
| Strands Agents Python | Next.js | `aws-strands-py` |
|
|
28
|
-
| Strands Agents TypeScript | Next.js | `aws-strands-ts` |
|
|
18
|
+
| Agent framework | Frontend | Framework ID | Model key |
|
|
19
|
+
| -------------------------------- | -------- | ---------------------------------- | ----------------------------------------- |
|
|
20
|
+
| Agno | Next.js | `agno` | `OPENAI_API_KEY` |
|
|
21
|
+
| Claude Agent SDK Python | Next.js | `claude-sdk-python` | `ANTHROPIC_API_KEY` |
|
|
22
|
+
| Claude Agent SDK TypeScript | Next.js | `claude-sdk-typescript` | `ANTHROPIC_API_KEY` |
|
|
23
|
+
| CrewAI Flows | Next.js | `flows` | `OPENAI_API_KEY` |
|
|
24
|
+
| LangGraph Python | Next.js | `langgraph-py` | `OPENAI_API_KEY` |
|
|
25
|
+
| LangGraph TypeScript | Next.js | `langgraph-js` | `OPENAI_API_KEY` |
|
|
26
|
+
| LlamaIndex | Next.js | `llamaindex` | `OPENAI_API_KEY` |
|
|
27
|
+
| ADK | Next.js | `adk` | `GOOGLE_API_KEY` |
|
|
28
|
+
| ADK | Angular | `adk-angular` | `GOOGLE_API_KEY` |
|
|
29
|
+
| Microsoft Agent Framework Python | Next.js | `microsoft-agent-framework-py` | `OPENAI_API_KEY` in `agent/.env` |
|
|
30
|
+
| Microsoft Agent Framework .NET | Next.js | `microsoft-agent-framework-dotnet` | `OPENAI_API_KEY` in `dotnet user-secrets` |
|
|
31
|
+
| Mastra | Next.js | `mastra` | `OPENAI_API_KEY` |
|
|
32
|
+
| Pydantic AI | Next.js | `pydantic-ai` | `OPENAI_API_KEY` |
|
|
33
|
+
| Strands Agents Python | Next.js | `aws-strands-py` | `OPENAI_API_KEY` |
|
|
34
|
+
| Strands Agents TypeScript | Next.js | `aws-strands-ts` | `OPENAI_API_KEY` |
|
|
29
35
|
|
|
30
36
|
Each Framework ID selects a starter that the CLI ships with Intelligence. Do not infer a
|
|
31
37
|
different pair from a similar name. AG2 does not use this shortcut because its starter does
|
|
@@ -46,24 +52,44 @@ the derived name.
|
|
|
46
52
|
Only if the developer asks for an existing project, or asks to see the projects they have,
|
|
47
53
|
read the choices:
|
|
48
54
|
|
|
49
|
-
`npx --yes copilotkit@4.
|
|
55
|
+
`npx --yes copilotkit@4.14.0 project list --json`
|
|
50
56
|
|
|
51
57
|
Then ask which one to use. Do not order the projects by creation time. If the developer
|
|
52
58
|
already gave this answer, do not ask again. Do not read a secret value. Do not show or
|
|
53
59
|
store a secret value.
|
|
54
60
|
|
|
61
|
+
## Ask where the model credential lives
|
|
62
|
+
|
|
63
|
+
The starter reads a model credential, and the `init` command below does not ask for one.
|
|
64
|
+
Ask for it now, while the developer is still here, and not after the clone. The variable
|
|
65
|
+
is the Model key column of the row you matched. Do not guess it from the framework name.
|
|
66
|
+
|
|
67
|
+
Ask the developer one question: which file holds that key, or whether they will add it
|
|
68
|
+
themselves after the clone. Asking where a credential lives is not requesting a secret
|
|
69
|
+
value. Never ask for the value itself. If no answer comes, clone anyway. The step after
|
|
70
|
+
the clone pauses for the key.
|
|
71
|
+
|
|
72
|
+
A path the developer names is theirs to give, including one outside the project. A path
|
|
73
|
+
this run finds is not. Never read a key file the developer did not name. A key found that
|
|
74
|
+
way bills a project nobody chose.
|
|
75
|
+
|
|
76
|
+
## Clone the starter
|
|
77
|
+
|
|
55
78
|
Run the command from the parent directory. Do not inspect another entry in the parent
|
|
56
79
|
directory. Replace each placeholder with the recorded value. Do not run a placeholder as
|
|
57
80
|
a shell argument.
|
|
58
81
|
|
|
59
|
-
`npx --yes copilotkit@4.
|
|
82
|
+
`npx --yes copilotkit@4.14.0 init --name <directory-name> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
|
|
60
83
|
|
|
61
|
-
|
|
62
|
-
|
|
84
|
+
`--name` is always the target directory name derived above, because `init` creates the
|
|
85
|
+
app at `<parent>/<name>`. Any other value puts the app in a new folder beside the target,
|
|
86
|
+
outside the directory this run is bound to. Pass the confirmed project name to `--create`
|
|
87
|
+
only. If the developer names an existing project,
|
|
63
88
|
use `--project <slug-or-id>` instead of `--create <name>`. If the developer asked to skip
|
|
64
89
|
the dependency install, use
|
|
65
90
|
`--no-install` instead of `--install`. Do not wait for an interactive prompt. Pass every
|
|
66
|
-
answer as a flag.
|
|
91
|
+
answer as a flag. `--no-key-prompt` stops `init` from asking for a model key. The `init`
|
|
92
|
+
output still names each missing key as `Set <VARIABLE> in .env`.
|
|
67
93
|
|
|
68
94
|
The command clones the starter into the empty target directory. It also connects the
|
|
69
95
|
starter to the developer's Intelligence project. The earlier login phase supplies the
|
|
@@ -72,7 +98,7 @@ account. The command does not need terminal input.
|
|
|
72
98
|
Report the clone before you inspect anything:
|
|
73
99
|
|
|
74
100
|
```text
|
|
75
|
-
npx --yes copilotkit@4.
|
|
101
|
+
npx --yes copilotkit@4.14.0 onboard checkpoint --phase starter-cloned
|
|
76
102
|
```
|
|
77
103
|
|
|
78
104
|
This is its own step, not an aside. A run that clones and then goes quiet is
|
|
@@ -81,11 +107,56 @@ separates them.
|
|
|
81
107
|
|
|
82
108
|
Do not rebuild the starter by hand. Then inspect only the generated
|
|
83
109
|
paths inside the target directory. Record the files, install result, project connection,
|
|
84
|
-
and validation commands.
|
|
85
|
-
|
|
110
|
+
and validation commands.
|
|
111
|
+
|
|
112
|
+
## Settle the model credential
|
|
113
|
+
|
|
114
|
+
The `init` output names each missing credential as `Set <VARIABLE> in .env`. For each
|
|
115
|
+
one, check the starter's own `.env` without reading the value:
|
|
116
|
+
|
|
117
|
+
```text
|
|
118
|
+
grep -c '^<VARIABLE>=.' <target>/.env
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
`1` means the variable holds a value. `0` means it is empty or absent. The command prints
|
|
122
|
+
a count and never the value.
|
|
123
|
+
|
|
124
|
+
If the developer named a key file, copy that one variable from it into `<target>/.env`,
|
|
125
|
+
in place of the empty line. Do not print either file, and do not print the value. Then
|
|
126
|
+
run the check again.
|
|
127
|
+
|
|
128
|
+
If a variable is still empty, ask the developer to add it to `<target>/.env` themselves.
|
|
129
|
+
|
|
130
|
+
The two Microsoft Agent Framework starters keep their key outside `<target>/.env`, so
|
|
131
|
+
`init` prints no `Set` line for them. Settle the key from the Model key column instead:
|
|
132
|
+
|
|
133
|
+
- For the Python starter, run the same check for `OPENAI_API_KEY` against
|
|
134
|
+
`<target>/agent/.env`. A missing file counts as `0`. If the developer named a key file,
|
|
135
|
+
copy the variable into `<target>/agent/.env` the same way. If it is still empty, ask the
|
|
136
|
+
developer to add it there themselves.
|
|
137
|
+
- For the .NET starter, the key lives in `dotnet user-secrets`, and no check can read it
|
|
138
|
+
without printing the value. Ask the developer to run
|
|
139
|
+
`cd <target>/agent && dotnet user-secrets set OPENAI_API_KEY "<key>"` themselves, even
|
|
140
|
+
if they named a key file.
|
|
141
|
+
|
|
142
|
+
Then report the pause and end your turn:
|
|
143
|
+
|
|
144
|
+
```text
|
|
145
|
+
npx --yes copilotkit@4.14.0 onboard checkpoint --phase awaiting-developer
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
This is a pause, not a stop. Do not send a stop report, and do not take a stop route.
|
|
149
|
+
When the developer says the credential is in place, run the check again, and continue
|
|
150
|
+
when every variable holds a value. For the .NET starter, continue on the developer's word. Do not write a placeholder or an empty value to get
|
|
151
|
+
past this step. A starter with a dummy key looks finished and fails at the first model
|
|
152
|
+
call.
|
|
153
|
+
|
|
154
|
+
If no credential is missing, report no pause and continue.
|
|
155
|
+
|
|
156
|
+
Then run `npx --yes copilotkit@4.14.0 onboard read proof/round-trip`.
|
|
86
157
|
|
|
87
158
|
If the command fails, report its exact error and do not claim that the starter is ready.
|
|
88
159
|
Then run
|
|
89
|
-
`npx --yes copilotkit@4.
|
|
160
|
+
`npx --yes copilotkit@4.14.0 onboard read stopped/run-failed`. The starter is one this
|
|
90
161
|
graph ships and the stack was chosen from its own supported list, so a command that
|
|
91
162
|
returned an error is a run that broke, not a setup this release does not support.
|
|
@@ -35,7 +35,7 @@ put to them, stop here and send the report below.
|
|
|
35
35
|
If they approve it, make that one fix and nothing else. Then come back into this run:
|
|
36
36
|
|
|
37
37
|
```text
|
|
38
|
-
npx --yes copilotkit@4.
|
|
38
|
+
npx --yes copilotkit@4.14.0 onboard resume
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
Write the developer's approval to standard input, in one or two sentences: the fix they
|
|
@@ -58,7 +58,7 @@ Send one short report. Run the friction command without another developer questi
|
|
|
58
58
|
ask the developer about telemetry: the command applies the setting they already have.
|
|
59
59
|
|
|
60
60
|
```text
|
|
61
|
-
npx --yes copilotkit@4.
|
|
61
|
+
npx --yes copilotkit@4.14.0 onboard friction --phase stop --category <slug>
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
Write one or two sentences to standard input: the step you stopped at and what stopped
|
|
@@ -119,8 +119,8 @@ different spelling, and it breaks again as soon as CopilotKit moves to `0.0.60`.
|
|
|
119
119
|
|
|
120
120
|
Plan the upgrade as its own step before the Intelligence runtime wiring, and plan to
|
|
121
121
|
re-run the recorded baseline checks immediately after it. Name the revert: restore the
|
|
122
|
-
manifest and lockfile to their recorded state and
|
|
123
|
-
onto a baseline the upgrade broke.
|
|
122
|
+
manifest and lockfile to their recorded state and report the break, rather than wiring
|
|
123
|
+
Intelligence onto a baseline the upgrade broke.
|
|
124
124
|
|
|
125
125
|
Where the SDK requires an application-level value that the repository cannot supply, such
|
|
126
126
|
as an end-user identity for threads, use one clearly marked local placeholder and name what
|
|
@@ -170,7 +170,7 @@ here is work the developer did not ask for.
|
|
|
170
170
|
Plan the threads drawer itself: add it from the selected drawer page, where this frontend
|
|
171
171
|
does not already render one. Where this journey's frontend framework ships no threads
|
|
172
172
|
drawer -- React Native --, plan that the thread is proved by
|
|
173
|
-
`npx --yes copilotkit@4.
|
|
173
|
+
`npx --yes copilotkit@4.14.0 verify --round-trip`, which needs no browser. Do not plan a
|
|
174
174
|
step that opens the managed Intelligence dashboard.
|
|
175
175
|
|
|
176
176
|
## Order the plan into steps
|
|
@@ -223,5 +223,5 @@ command rather than running them one at a time. Split a command only when its re
|
|
|
223
223
|
what you run next.
|
|
224
224
|
|
|
225
225
|
Start with `Status: passed`, `Status: failed`, or `Status: blocked`.
|
|
226
|
-
Return the plan, the URLs that you read, and each documentation gap.
|
|
226
|
+
Return the plan, the URLs that you read, and each documentation gap. End your turn after you return
|
|
227
227
|
the findings to the main coding agent.
|
|
@@ -10,7 +10,7 @@ either path is an ancestor directory on a path-segment boundary. `apps/a` overla
|
|
|
10
10
|
`apps/a/src`, but not `apps/ab`. `app.ts` does not overlap `app.tsx`.
|
|
11
11
|
|
|
12
12
|
Change only the files and directories the approved plan names as changeable. If the work
|
|
13
|
-
requires a file the plan does not name,
|
|
13
|
+
requires a file the plan does not name, return the blocker and end your turn. Do not run a
|
|
14
14
|
repository-wide formatter.
|
|
15
15
|
|
|
16
16
|
All implementation work happens in the run root's own working tree: the target app
|
|
@@ -39,6 +39,13 @@ for the symbol you are about to write. Where the selected documentation page its
|
|
|
39
39
|
a deprecated symbol, name that page under Blockers as `docs-wrong` friction and use the
|
|
40
40
|
current symbol the package's own type definitions or changelog names.
|
|
41
41
|
|
|
42
|
+
A symbol this graph names is not that case. The approved plan and the framework
|
|
43
|
+
node carry the connection API for this stack, and `LangGraphAgent` from
|
|
44
|
+
`@copilotkit/runtime/langgraph` is one of them: deprecated at its entrypoint,
|
|
45
|
+
still the documented LangSmith path, and given no replacement by its own tooltip.
|
|
46
|
+
Write what the plan names. Do not rewrite a cloned starter to satisfy this rule,
|
|
47
|
+
and do not name the page that shows it under Blockers.
|
|
48
|
+
|
|
42
49
|
The documentation supplies the wiring. The project supplies the application. Use that
|
|
43
50
|
wiring in the project's domain. Do not copy an example's agent name, tools, or data.
|
|
44
51
|
|
|
@@ -47,6 +54,17 @@ connection. Do not read, show, store, or return secrets. Do not read a file outs
|
|
|
47
54
|
project directory: not for a credential, and not for an API question the fetched
|
|
48
55
|
documentation answers. Ask the main coding agent for a missing credential.
|
|
49
56
|
|
|
57
|
+
Before running a scaffolder, check whether it writes an environment file. Never replace
|
|
58
|
+
an existing `.env` with `.env.example` or scaffolder output. Preserve its existing bytes,
|
|
59
|
+
including the provisioned Intelligence key. Do not use shell redirection or a force flag
|
|
60
|
+
to bypass this rule.
|
|
61
|
+
|
|
62
|
+
If the scaffolder cannot preserve a protected file, generate into a temporary directory
|
|
63
|
+
inside the project only when the approved plan permits it. Copy only approved paths that
|
|
64
|
+
do not overlap a protected path. Otherwise, return the conflict and end your turn before
|
|
65
|
+
running the scaffolder. Ask the main coding agent to revise credential setup when a
|
|
66
|
+
required variable is missing. Do not provision another key to repair a scaffold overwrite.
|
|
67
|
+
|
|
50
68
|
## What the existing agent's behavior is
|
|
51
69
|
|
|
52
70
|
The existing agent's behavior is four things: its system prompt and instructions, its
|
|
@@ -105,8 +123,8 @@ it fails in the threads drawer rather than at the install.
|
|
|
105
123
|
|
|
106
124
|
If one of them resolves to more than one version, restore the manifest and lockfile to
|
|
107
125
|
their recorded state, leave Intelligence unwired, and report which package resolved to more
|
|
108
|
-
than one version, which versions, and which declared range held the top of the tree.
|
|
109
|
-
Do not wire Intelligence onto a tree carrying two copies of a package.
|
|
126
|
+
than one version, which versions, and which declared range held the top of the tree. Then
|
|
127
|
+
end your turn. Do not wire Intelligence onto a tree carrying two copies of a package.
|
|
110
128
|
|
|
111
129
|
Never add an `overrides`, `resolutions`, or `pnpm.overrides` block to collapse the two
|
|
112
130
|
copies. It forces a version the developer did not approve onto their whole tree, and it
|
|
@@ -114,8 +132,9 @@ turns a reportable mismatch between two published packages into a local workarou
|
|
|
114
132
|
else can see.
|
|
115
133
|
|
|
116
134
|
If the baseline regresses, restore the manifest and lockfile to their recorded state, leave
|
|
117
|
-
Intelligence unwired, and report the regression with the failing check.
|
|
118
|
-
names no dependency change, report that the installed versions met
|
|
135
|
+
Intelligence unwired, and report the regression with the failing check. Then end your
|
|
136
|
+
turn. Where the plan names no dependency change, report that the installed versions met
|
|
137
|
+
the floor.
|
|
119
138
|
|
|
120
139
|
When the documentation uses the framework's scaffolder,
|
|
121
140
|
run that scaffolder rather than hand-authoring what it emits.
|
|
@@ -158,4 +177,5 @@ command rather than running them one at a time. Split a command only when its re
|
|
|
158
177
|
what you run next.
|
|
159
178
|
|
|
160
179
|
Start with `Status: passed`, `Status: failed`, or `Status: blocked`.
|
|
161
|
-
Return exactly four sections: Status, Files changed, Validation, and Blockers.
|
|
180
|
+
Return exactly four sections: Status, Files changed, Validation, and Blockers. Then end
|
|
181
|
+
your turn.
|
|
@@ -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 --yes copilotkit@4.
|
|
10
|
+
npx --yes copilotkit@4.14.0 onboard inspect --json
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
It answers the deterministic half of both packets exactly, from the same code
|
|
@@ -87,4 +87,4 @@ Use only `proved`, `absent`, or `unproved` for the status. State each absent or
|
|
|
87
87
|
Do not read, print, or return secret values. For `.env` and `.copilotkit/project.json`
|
|
88
88
|
checks, return only paths, presence checks, and missing field names. Do not read a file
|
|
89
89
|
outside the project directory. Do not run or return an onboarding command other than
|
|
90
|
-
`onboard inspect`.
|
|
90
|
+
`onboard inspect`. End your turn after returning the findings to the main coding agent.
|
|
@@ -19,7 +19,7 @@ Prove the live runtime in this order:
|
|
|
19
19
|
4. Confirm from project files that the runtime constructor passes a `runner` option rather
|
|
20
20
|
than an `intelligence` option. A package, import, project file, or key is not use proof.
|
|
21
21
|
5. Run
|
|
22
|
-
`npx --yes copilotkit@4.
|
|
22
|
+
`npx --yes copilotkit@4.14.0 verify --expect-runtime oss --round-trip --agent <expected-agent-id> --json`,
|
|
23
23
|
with the runtime URL or auth header options that this project needs. Require exit zero
|
|
24
24
|
and the JSON `ok` field to be `true`.
|
|
25
25
|
6. Drive one real request through the existing frontend, CopilotKit runtime, and expected
|
|
@@ -45,4 +45,4 @@ can be durable. Report the persistence that project evidence proves, or `unprove
|
|
|
45
45
|
replace it and do not describe all OSS runs as ephemeral.
|
|
46
46
|
|
|
47
47
|
Start with `Status: passed`, `Status: failed`, or `Status: blocked`.
|
|
48
|
-
|
|
48
|
+
End your turn after returning the baseline result, process ids and ports used, and evidence paths.
|