copilotkit 4.26.0 → 4.27.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 +271 -25
- package/cli-build-info.json +7 -7
- package/index.js +6785 -3294
- package/onboarding/index.json +2 -2
- package/onboarding/prompts/authenticate/start.md +28 -23
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +34 -25
- package/onboarding/prompts/credentials/plan.md +46 -33
- package/onboarding/prompts/credentials/settle-credentials.md +38 -14
- package/onboarding/prompts/credentials/write-plan.md +104 -47
- package/onboarding/prompts/deployment/choose-local.md +17 -20
- package/onboarding/prompts/deployment/local-evaluation.md +45 -21
- package/onboarding/prompts/fallback/best-effort.md +11 -9
- package/onboarding/prompts/feature/a2ui/implement.md +4 -4
- package/onboarding/prompts/feature/a2ui/plan.md +3 -3
- package/onboarding/prompts/feature/a2ui/proof.md +5 -5
- package/onboarding/prompts/feature/a2ui/start.md +10 -8
- package/onboarding/prompts/feature/channels/implement.md +11 -8
- package/onboarding/prompts/feature/channels/plan.md +15 -7
- package/onboarding/prompts/feature/channels/proof.md +5 -5
- package/onboarding/prompts/feature/channels/start.md +11 -10
- package/onboarding/prompts/feature/chat-suggestions/implement.md +4 -4
- package/onboarding/prompts/feature/chat-suggestions/plan.md +3 -3
- package/onboarding/prompts/feature/chat-suggestions/proof.md +5 -5
- package/onboarding/prompts/feature/chat-suggestions/start.md +10 -8
- package/onboarding/prompts/feature/complete.md +2 -2
- package/onboarding/prompts/feature/learning/implement.md +14 -12
- package/onboarding/prompts/feature/learning/plan.md +4 -4
- package/onboarding/prompts/feature/learning/proof.md +24 -14
- package/onboarding/prompts/feature/learning/start.md +8 -8
- package/onboarding/prompts/feature/open-generative-ui/implement.md +4 -4
- package/onboarding/prompts/feature/open-generative-ui/plan.md +3 -3
- package/onboarding/prompts/feature/open-generative-ui/proof.md +5 -5
- package/onboarding/prompts/feature/open-generative-ui/start.md +10 -8
- package/onboarding/prompts/feature/realtime-sync/implement.md +7 -5
- package/onboarding/prompts/feature/realtime-sync/plan.md +3 -3
- package/onboarding/prompts/feature/realtime-sync/proof.md +5 -5
- package/onboarding/prompts/feature/realtime-sync/start.md +7 -7
- package/onboarding/prompts/feature/rich-threads/implement.md +8 -6
- package/onboarding/prompts/feature/rich-threads/plan.md +3 -3
- package/onboarding/prompts/feature/rich-threads/proof.md +5 -5
- package/onboarding/prompts/feature/rich-threads/start.md +7 -7
- package/onboarding/prompts/feature/stop.md +4 -4
- package/onboarding/prompts/feature/voice/implement.md +4 -4
- package/onboarding/prompts/feature/voice/plan.md +4 -4
- package/onboarding/prompts/feature/voice/proof.md +5 -5
- package/onboarding/prompts/feature/voice/start.md +10 -8
- package/onboarding/prompts/framework/ag2.md +20 -5
- package/onboarding/prompts/framework/agno.md +25 -9
- package/onboarding/prompts/framework/built-in.md +21 -6
- package/onboarding/prompts/framework/claude-sdk-python.md +11 -5
- package/onboarding/prompts/framework/claude-sdk-typescript.md +13 -6
- package/onboarding/prompts/framework/crewai-flows.md +24 -10
- package/onboarding/prompts/framework/custom-ag-ui.md +62 -28
- package/onboarding/prompts/framework/deep-agents.md +26 -9
- package/onboarding/prompts/framework/google-adk.md +18 -5
- package/onboarding/prompts/framework/langgraph-fastapi.md +20 -5
- package/onboarding/prompts/framework/langgraph-python.md +20 -5
- package/onboarding/prompts/framework/langgraph-typescript.md +27 -7
- package/onboarding/prompts/framework/llamaindex.md +24 -8
- package/onboarding/prompts/framework/mastra.md +21 -8
- package/onboarding/prompts/framework/ms-agent-dotnet.md +24 -6
- package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +24 -5
- package/onboarding/prompts/framework/ms-agent-python.md +21 -5
- package/onboarding/prompts/framework/pydantic-ai.md +20 -5
- package/onboarding/prompts/framework/strands-python.md +27 -12
- package/onboarding/prompts/framework/strands-typescript.md +27 -12
- package/onboarding/prompts/frontend/angular.md +4 -4
- package/onboarding/prompts/frontend/nextjs.md +4 -4
- package/onboarding/prompts/frontend/plan.md +21 -13
- package/onboarding/prompts/frontend/react-native.md +3 -3
- package/onboarding/prompts/frontend/react-spa.md +3 -3
- package/onboarding/prompts/frontend/vue.md +3 -3
- package/onboarding/prompts/implementation/build-and-validate.md +25 -20
- package/onboarding/prompts/proof/complete.md +10 -7
- package/onboarding/prompts/proof/oss-baseline.md +6 -6
- package/onboarding/prompts/proof/round-trip.md +10 -10
- package/onboarding/prompts/research/gather.md +8 -8
- package/onboarding/prompts/research/merge.md +3 -3
- package/onboarding/prompts/research/preflight.md +2 -2
- package/onboarding/prompts/research/route.md +4 -4
- package/onboarding/prompts/setup/questions.md +192 -159
- package/onboarding/prompts/starter/clone.md +126 -51
- package/onboarding/prompts/stopped/run-failed.md +5 -3
- package/onboarding/prompts/subagent/create-plan.md +73 -20
- package/onboarding/prompts/subagent/implement-and-validate.md +30 -14
- package/onboarding/prompts/subagent/inspect-repository.md +3 -2
- package/onboarding/prompts/subagent/prove-oss-baseline.md +10 -5
- package/onboarding/prompts/subagent/prove-round-trip.md +23 -14
- package/onboarding/prompts/unsupported/no-validated-path.md +5 -4
- package/package.json +1 -1
- package/release/release-tool.js +12 -2
package/onboarding/index.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"graphTree": "
|
|
2
|
+
"graphTree": "761ec1a0c9afe1db037029abc373e555159ce088",
|
|
3
3
|
"intentRoots": {
|
|
4
4
|
"add-a2ui": "feature/a2ui/start",
|
|
5
5
|
"add-chat-suggestions": "feature/chat-suggestions/start",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"add-rich-threads": "feature/rich-threads/start",
|
|
10
10
|
"add-voice": "feature/voice/start"
|
|
11
11
|
},
|
|
12
|
-
"packageSpec": "copilotkit@4.
|
|
12
|
+
"packageSpec": "copilotkit@4.27.0",
|
|
13
13
|
"root": "authenticate/start",
|
|
14
14
|
"prompts": [
|
|
15
15
|
{
|
|
@@ -6,24 +6,28 @@ This run executes the CopilotKit CLI through `npx`.
|
|
|
6
6
|
It spawns read-only inspection subagents inside the target project. It sends checkpoints
|
|
7
7
|
and optional friction reports to CopilotKit under the developer's telemetry setting. It
|
|
8
8
|
reads nothing outside the project
|
|
9
|
-
directory
|
|
9
|
+
directory. It changes files only after writing the plan, and asks before any risky change
|
|
10
|
+
the plan names. CopilotKit
|
|
10
11
|
Intelligence has a free Developer plan, and this run needs no paid subscription.
|
|
11
12
|
|
|
12
13
|
## Command approvals
|
|
13
14
|
|
|
14
15
|
Run each CLI call exactly as written, as its own command: no pipe, `tee`, `&&`, redirect,
|
|
15
16
|
or variable prefix. Every CLI call in this run matches the prefix rule
|
|
16
|
-
`["npx", "--prefer-offline", "--yes", "copilotkit@4.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
`["npx", "--prefer-offline", "--yes", "copilotkit@4.27.0"]`.
|
|
18
|
+
<!-- sandboxed-harness -->
|
|
19
|
+
If a command can request escalation with a prefix rule, request this one on the
|
|
20
|
+
`onboard identify` call.
|
|
21
|
+
<!-- /sandboxed-harness -->
|
|
22
|
+
If your harness asks the developer to approve commands, tell them one approval of that
|
|
23
|
+
prefix covers every CLI call. Say then that the install, the dev servers, `curl` to the local app, and
|
|
20
24
|
`ps`, `lsof`, and `kill` ask for approval later.
|
|
21
25
|
|
|
22
26
|
Never add or edit a permission rule or a settings file yourself. That choice belongs to
|
|
23
27
|
the developer.
|
|
24
28
|
|
|
25
29
|
If your harness refuses a CLI call without asking the developer, do not retry it or run it
|
|
26
|
-
another way. Report the pause: `npx --prefer-offline --yes copilotkit@4.
|
|
30
|
+
another way. Report the pause: `npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer`.
|
|
27
31
|
Name the refused command, ask the developer to approve it or to switch to a
|
|
28
32
|
mode that asks them, and end your turn. When they answer, run it once more.
|
|
29
33
|
That refusal is a pause, not a stop.
|
|
@@ -33,7 +37,7 @@ That refusal is a pause, not a stop.
|
|
|
33
37
|
Run this first, before the welcome message below:
|
|
34
38
|
|
|
35
39
|
```text
|
|
36
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
40
|
+
npx --prefer-offline --yes copilotkit@4.27.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
|
|
37
41
|
```
|
|
38
42
|
|
|
39
43
|
Report your product slug, such as `codex` or `claude-code`.
|
|
@@ -66,28 +70,29 @@ keeps each conversation as Rich Threads. Users can return to earlier work. Where
|
|
|
66
70
|
Automatic Learning then helps your agent improve from that history: it finds usage patterns
|
|
67
71
|
and proposes reusable Skills, and you approve which Skills it gets.
|
|
68
72
|
|
|
69
|
-
I will check sign-in, inspect your project, recommend a setup
|
|
70
|
-
|
|
71
|
-
|
|
73
|
+
I will check sign-in, inspect your project, and recommend a setup. You get a written plan
|
|
74
|
+
before any change, and your approval before anything risky. `onboard restore` puts back
|
|
75
|
+
the files my backup holds, and my closing report names any it left out. Then I build the
|
|
76
|
+
integration, prove the full round trip, and leave the app running with its URLs.
|
|
72
77
|
|
|
73
|
-
Everything I need from you comes
|
|
74
|
-
|
|
75
|
-
|
|
78
|
+
Everything I need from you comes first: sign-in and a few short setup questions. If I need
|
|
79
|
+
you to approve a command, or something blocks me, I will ask you here. Otherwise you hear
|
|
80
|
+
from me next when the app is running and I hand you its URLs.
|
|
76
81
|
To self-host on your machine with Docker, say so before you sign in.
|
|
77
82
|
|
|
78
83
|
That message belongs to the run. Send it only once, including after a second read of this prompt.
|
|
79
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
84
|
+
Then run `npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase welcome-sent`.
|
|
80
85
|
|
|
81
86
|
## Report a stop, wherever it happens
|
|
82
87
|
|
|
83
88
|
If you stop this run at any point, send one short report before you stop. This includes
|
|
84
89
|
unexpected stops and stops caused by your harness.
|
|
85
90
|
A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
|
|
86
|
-
Report the pause: `npx --prefer-offline --yes copilotkit@4.
|
|
91
|
+
Report the pause: `npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer`.
|
|
87
92
|
A terminal that sends the report itself, or says to file none, overrides this.
|
|
88
93
|
|
|
89
94
|
```text
|
|
90
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
95
|
+
npx --prefer-offline --yes copilotkit@4.27.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
91
96
|
```
|
|
92
97
|
|
|
93
98
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -105,15 +110,15 @@ rule that stopped you says next: send the report, then stop.
|
|
|
105
110
|
Take the local route only when the developer already asked to run CopilotKit locally,
|
|
106
111
|
with Docker, or self-hosted: in their request, the copied prompt, or a later reply, or
|
|
107
112
|
when this run already recorded local. Then run
|
|
108
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
113
|
+
`npx --prefer-offline --yes copilotkit@4.27.0 onboard read deployment/choose-local` instead.
|
|
109
114
|
|
|
110
115
|
Otherwise keep managed. Do not ask the developer to choose. Run
|
|
111
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
116
|
+
`npx --prefer-offline --yes copilotkit@4.27.0 onboard deployment --choice managed`, then continue with
|
|
112
117
|
“Check sign-in”. If it refuses because of a local stack, take the local route.
|
|
113
118
|
|
|
114
119
|
## Check sign-in
|
|
115
120
|
|
|
116
|
-
Run `npx --prefer-offline --yes copilotkit@4.
|
|
121
|
+
Run `npx --prefer-offline --yes copilotkit@4.27.0 login --json` before any project work. It checks the
|
|
117
122
|
session and starts sign-in only as needed. Treat this as a long-lived
|
|
118
123
|
streaming process. Do not wait for the command to exit before you read its standard output.
|
|
119
124
|
|
|
@@ -147,11 +152,11 @@ Read each JSON Lines record as it arrives:
|
|
|
147
152
|
7. If that process emits `type: failed`, report the error and stop onboarding. On
|
|
148
153
|
`reason: repeated_expiry`, rerun `login` with `--force` only if the developer asks.
|
|
149
154
|
|
|
150
|
-
On `type: completed`, run `npx --prefer-offline --yes copilotkit@4.
|
|
155
|
+
On `type: completed`, run `npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase sign-in-settled`
|
|
151
156
|
before you continue.
|
|
152
157
|
|
|
153
158
|
If your harness ends the login process or your turn before the process emits
|
|
154
|
-
`type: completed` or `type: failed`, that is a pause, not a failed sign-in. Report the pause: `npx --prefer-offline --yes copilotkit@4.
|
|
159
|
+
`type: completed` or `type: failed`, that is a pause, not a failed sign-in. Report the pause: `npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer`.
|
|
155
160
|
If the process
|
|
156
161
|
still runs, end your turn and wait for the developer to say they signed in, then read the
|
|
157
162
|
same process. If the process ended without emitting `type: failed`, run `login --json`
|
|
@@ -162,9 +167,9 @@ conversation.
|
|
|
162
167
|
|
|
163
168
|
Research reads only this project and needs no account. Start it as soon as the session is
|
|
164
169
|
valid or the developer has the sign-in page, and keep monitoring the login process while it
|
|
165
|
-
runs: `npx --prefer-offline --yes copilotkit@4.
|
|
170
|
+
runs: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read research/gather`. If this run already
|
|
166
171
|
started the research, do not start it again.
|
|
167
172
|
|
|
168
173
|
If sign-in stops onboarding, run
|
|
169
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
174
|
+
`npx --prefer-offline --yes copilotkit@4.27.0 onboard read stopped/run-failed`. It does not judge
|
|
170
175
|
this project's stack.
|
|
@@ -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 --prefer-offline --yes copilotkit@4.
|
|
103
|
+
fifth item is proved by `npx --prefer-offline --yes copilotkit@4.27.0 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 --prefer-offline --yes copilotkit@4.
|
|
119
|
+
Then run `npx --prefer-offline --yes copilotkit@4.27.0 onboard read credentials/finalize-plan`.
|
|
120
120
|
|
|
121
121
|
If a selected page does not load after the second method, run
|
|
122
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
122
|
+
`npx --prefer-offline --yes copilotkit@4.27.0 onboard read unsupported/no-validated-path`.
|
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
# Select the Intelligence project
|
|
2
2
|
|
|
3
3
|
For a recorded local choice, run
|
|
4
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
5
|
-
That path
|
|
4
|
+
`npx --prefer-offline --yes copilotkit@4.27.0 onboard read deployment/local-evaluation`.
|
|
5
|
+
That path connects the local project with the approval the setup message took.
|
|
6
|
+
Skip hosted selection.
|
|
6
7
|
Keep the implementation and feature-proof requirements.
|
|
7
8
|
|
|
8
9
|
Use the selected framework, frontend, model vendor, model, documentation URLs, and
|
|
9
|
-
repository findings.
|
|
10
|
+
repository findings. When the framework, frontend or vendor is not in your context, read it
|
|
11
|
+
from `npx --prefer-offline --yes copilotkit@4.27.0 onboard setup-answers`, and do not ask again. On a conversion, use the values the conversion prompt recorded, and
|
|
10
12
|
ask no framework or frontend question. Do not change application code in this phase. Do
|
|
11
13
|
not read, show, store, or request a secret value.
|
|
12
14
|
|
|
13
15
|
Ask every choice that is still open at this point in one message, one numbered line per
|
|
14
|
-
choice, and end your turn to wait for the answer.
|
|
15
|
-
|
|
16
|
+
choice, and end your turn to wait for the answer. Write each as the setup message does: the
|
|
17
|
+
recommendation first, in bold, and the alternatives on one `Other:` line. Add a short
|
|
18
|
+
reason only when it names something in the developer's own project. Do not ask about the plan here.
|
|
16
19
|
|
|
17
20
|
Before you end your turn to wait for the developer, report the pause:
|
|
18
21
|
|
|
19
22
|
```text
|
|
20
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
23
|
+
npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
|
|
21
24
|
```
|
|
22
25
|
|
|
23
26
|
## Record the audit cell
|
|
@@ -35,12 +38,12 @@ Choose the starting state from the repository findings:
|
|
|
35
38
|
A run served `proof/oss-baseline` records one of the last two.
|
|
36
39
|
|
|
37
40
|
```text
|
|
38
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
41
|
+
npx --prefer-offline --yes copilotkit@4.27.0 onboard classify --starting-state <starting-state> --agent-framework <agent-framework> --frontend <frontend> --model-vendor <model-vendor> --model-vendor-choice <model-vendor-choice>
|
|
39
42
|
```
|
|
40
43
|
|
|
41
|
-
`<model-vendor>` is `openai`, `anthropic`, `google`, or `other`.
|
|
42
|
-
how the framework step chose it: `developer`, `default`, or
|
|
43
|
-
recorded no vendor, leave out both flags.
|
|
44
|
+
`<model-vendor>` is `openai`, `anthropic`, `google`, `openai-compatible`, or `other`.
|
|
45
|
+
`<model-vendor-choice>` is how the framework step chose it: `developer`, `default`, or
|
|
46
|
+
`existing`. If the run recorded no vendor, leave out both flags.
|
|
44
47
|
|
|
45
48
|
If a value is refused, fix it from the choices the earlier prompts gave, and run the
|
|
46
49
|
command again.
|
|
@@ -52,7 +55,7 @@ runtime `.env` file, that directory is the target, not the repository root. Do n
|
|
|
52
55
|
the developer to another terminal.
|
|
53
56
|
|
|
54
57
|
```text
|
|
55
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
58
|
+
npx --prefer-offline --yes copilotkit@4.27.0 onboard credentials --json
|
|
56
59
|
```
|
|
57
60
|
|
|
58
61
|
Every credential this run writes goes to the environment path: the target's `.env`, or
|
|
@@ -71,11 +74,14 @@ Read `status`:
|
|
|
71
74
|
|
|
72
75
|
### Ask the question
|
|
73
76
|
|
|
74
|
-
|
|
75
|
-
the
|
|
76
|
-
`
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
The developer answered this in the setup message. `question.recorded` carries the answer
|
|
78
|
+
the CLI kept: run `--create` with `question.recorded.create`, or `--project` with
|
|
79
|
+
`question.recorded.project`, and do not ask again. Without `question.recorded`, use the
|
|
80
|
+
project answer `setup/questions` gave you. A new project with no recorded name takes
|
|
81
|
+
`suggestedName`. Ask the developer only when `question.taken` or `question.notFound` is
|
|
82
|
+
present, or when no answer was recorded. When they then give another project, record it
|
|
83
|
+
with `npx --prefer-offline --yes copilotkit@4.27.0 onboard setup-answers --create <name>` or
|
|
84
|
+
`--project <slug>`.
|
|
79
85
|
|
|
80
86
|
`project-name` means that no project is bound here, so creating a project for this
|
|
81
87
|
directory is the default. Ask one question: use `suggestedName`, give another name, or ask
|
|
@@ -87,7 +93,7 @@ unless the developer says that it is this app's.
|
|
|
87
93
|
Before you end your turn to wait for the developer, report the pause:
|
|
88
94
|
|
|
89
95
|
```text
|
|
90
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
96
|
+
npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
|
|
91
97
|
```
|
|
92
98
|
|
|
93
99
|
If no developer answers, create with the derived name in `suggestedName`. Never select a
|
|
@@ -96,9 +102,9 @@ project from a listing without an answer that names it.
|
|
|
96
102
|
`--runtime-url` is the URL port research settled, mount path included:
|
|
97
103
|
|
|
98
104
|
```text
|
|
99
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
105
|
+
npx --prefer-offline --yes copilotkit@4.27.0 onboard credentials --create <name> \
|
|
100
106
|
--runtime-url http://localhost:<port>/api/copilotkit --json
|
|
101
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
107
|
+
npx --prefer-offline --yes copilotkit@4.27.0 onboard credentials --project <slug-or-id> \
|
|
102
108
|
--runtime-url http://localhost:<port>/api/copilotkit --json
|
|
103
109
|
```
|
|
104
110
|
|
|
@@ -110,12 +116,12 @@ show only what they asked for, and do not order it by creation time:
|
|
|
110
116
|
Before you end your turn to wait for the developer, report the pause:
|
|
111
117
|
|
|
112
118
|
```text
|
|
113
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
119
|
+
npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
|
|
114
120
|
```
|
|
115
121
|
|
|
116
122
|
```text
|
|
117
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
118
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
123
|
+
npx --prefer-offline --yes copilotkit@4.27.0 project list --json
|
|
124
|
+
npx --prefer-offline --yes copilotkit@4.27.0 project list --search <query> --json
|
|
119
125
|
```
|
|
120
126
|
|
|
121
127
|
`app-directory` means that the key landed where no app reads it. Pick the directory in
|
|
@@ -134,7 +140,7 @@ run the same command again with `question.alternative.rerun` added. The CLI adds
|
|
|
134
140
|
If they approve the untrack, add
|
|
135
141
|
`question.ignoreLine` to `question.ignoreFile`. If `question.untrack` is present, run it
|
|
136
142
|
too. Or the developer does both. Report the pause with
|
|
137
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
143
|
+
`npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer`, end your
|
|
138
144
|
turn, and wait for the answer. Then run the same command again. Write the key only to
|
|
139
145
|
`question.file`, or to `question.alternative.file` by rerunning with
|
|
140
146
|
`question.alternative.rerun`.
|
|
@@ -142,9 +148,12 @@ turn, and wait for the answer. Then run the same command again. Write the key on
|
|
|
142
148
|
## Carry the result into the plan
|
|
143
149
|
|
|
144
150
|
- `planChanges`: list each file in the plan. Mark each one that has uncommitted changes, so
|
|
145
|
-
the developer sees it
|
|
151
|
+
the developer sees it in the plan. It is a risky change, so the plan asks about it. It
|
|
152
|
+
does not end the run.
|
|
153
|
+
- `backup`: give it to the planning subagent. A `partial` or `failed` backup is a risky
|
|
154
|
+
change, because `onboard restore` cannot put back what the backup does not hold.
|
|
146
155
|
- `project.slug` is the selected project. `"key": "unverified"` means the project was
|
|
147
156
|
reused. The round-trip proof later runs the authenticated Intelligence checks, so record
|
|
148
157
|
the reused project credentials as unverified in the plan until those checks pass.
|
|
149
158
|
|
|
150
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
159
|
+
Then run `npx --prefer-offline --yes copilotkit@4.27.0 onboard read credentials/settle-credentials`.
|
|
@@ -1,16 +1,28 @@
|
|
|
1
1
|
# Select the agent framework
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
First run `npx --prefer-offline --yes copilotkit@4.27.0 onboard setup-answers`. It prints the answers that
|
|
4
|
+
`setup/questions` recorded, even after this conversation lost them. Use its `framework` and
|
|
5
|
+
its `vendor`, with `vendor.choice`, `vendor.baseUrl` and `vendor.modelId`. That node asked
|
|
6
|
+
the developer, so ask nothing here. A run that proved its existing agent, frontend, and
|
|
5
7
|
CopilotKit integration did not read that node: keep the agent's framework from the
|
|
6
8
|
findings, with the vendor `existing`.
|
|
7
9
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
Ask only for what the record lacks and no other path settles. When it holds no
|
|
11
|
+
framework and no vendor, ask the framework and model provider lines in one message.
|
|
12
|
+
Write each as the setup message does: the recommendation first, in bold, and the
|
|
13
|
+
alternatives on one `Other:` line. When
|
|
14
|
+
it holds a framework and no vendor, ask the model provider line alone: without an answer, the
|
|
15
|
+
framework node uses OpenAI, which the developer never chose. Recommend the framework that
|
|
16
|
+
the repository findings show, or, for an empty project, a documented default. For the
|
|
17
|
+
provider, recommend the framework's default vendor, and offer only the other vendors its row
|
|
18
|
+
in the `setup/questions` table lists. On most frameworks that is OpenAI or an
|
|
19
|
+
OpenAI-compatible provider: if the developer names Anthropic or Google for a new agent
|
|
20
|
+
there, say that this release supports the row's vendors on that framework, that Anthropic
|
|
21
|
+
and Google come in a later release, and offer the Built-in CopilotKit agent if they need
|
|
22
|
+
them now. Record the answers with
|
|
23
|
+
`onboard setup-answers --framework <name> --vendor <vendor> --vendor-choice <choice>`.
|
|
12
24
|
Report the pause with
|
|
13
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
25
|
+
`npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer`, then end your
|
|
14
26
|
turn and wait for the answer. A route that records no framework or vendor on purpose is not
|
|
15
27
|
this case: an empty project with Slack or Microsoft Teams, a "Project-defined" vendor, or
|
|
16
28
|
"The agent's own" vendor.
|
|
@@ -34,36 +46,37 @@ Microsoft Teams docs page, do not ask the framework question. So does an empty p
|
|
|
34
46
|
whose frontend `setup/questions` recorded as Slack or Microsoft Teams: it recorded no
|
|
35
47
|
framework. The Channel starter brings its own agent, so an answer here decides nothing. Tell the developer that the Channel
|
|
36
48
|
starter decides the agent, then run
|
|
37
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
49
|
+
`npx --prefer-offline --yes copilotkit@4.27.0 onboard read frontend/plan`.
|
|
38
50
|
|
|
39
51
|
## Route on the recorded framework
|
|
40
52
|
|
|
41
|
-
The framework and vendor come from `setup
|
|
42
|
-
`developer`, `default`, or `existing`. The framework route uses this vendor.
|
|
53
|
+
The framework and vendor come from `onboard setup-answers`, with how the vendor was
|
|
54
|
+
chosen: `developer`, `default`, or `existing`. The framework route uses this vendor.
|
|
43
55
|
|
|
44
56
|
Use exactly one matching internal route:
|
|
45
57
|
|
|
46
|
-
1. AG2: `npx --prefer-offline --yes copilotkit@4.
|
|
47
|
-
2. Agno: `npx --prefer-offline --yes copilotkit@4.
|
|
48
|
-
3. Built-in CopilotKit agent: `npx --prefer-offline --yes copilotkit@4.
|
|
49
|
-
4. Claude Agent SDK Python: `npx --prefer-offline --yes copilotkit@4.
|
|
50
|
-
5. Claude Agent SDK TypeScript: `npx --prefer-offline --yes copilotkit@4.
|
|
51
|
-
6. CrewAI Flows: `npx --prefer-offline --yes copilotkit@4.
|
|
52
|
-
7.
|
|
53
|
-
8. Deep Agents: `npx --prefer-offline --yes copilotkit@4.
|
|
54
|
-
9. LangGraph Python: `npx --prefer-offline --yes copilotkit@4.
|
|
55
|
-
10. LangGraph FastAPI: `npx --prefer-offline --yes copilotkit@4.
|
|
56
|
-
11. LangGraph TypeScript: `npx --prefer-offline --yes copilotkit@4.
|
|
57
|
-
12. LlamaIndex: `npx --prefer-offline --yes copilotkit@4.
|
|
58
|
-
13. ADK: `npx --prefer-offline --yes copilotkit@4.
|
|
59
|
-
14. Microsoft Agent Framework Python: `npx --prefer-offline --yes copilotkit@4.
|
|
60
|
-
15. Microsoft Agent Framework .NET: `npx --prefer-offline --yes copilotkit@4.
|
|
61
|
-
16. Mastra: `npx --prefer-offline --yes copilotkit@4.
|
|
62
|
-
17. MS Agent Harness .NET: `npx --prefer-offline --yes copilotkit@4.
|
|
63
|
-
18. Pydantic AI: `npx --prefer-offline --yes copilotkit@4.
|
|
64
|
-
19. Strands Agents Python: `npx --prefer-offline --yes copilotkit@4.
|
|
65
|
-
20. Strands Agents TypeScript: `npx --prefer-offline --yes copilotkit@4.
|
|
58
|
+
1. AG2: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/ag2`
|
|
59
|
+
2. Agno: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/agno`
|
|
60
|
+
3. Built-in CopilotKit agent: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/built-in`
|
|
61
|
+
4. Claude Agent SDK Python: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/claude-sdk-python`
|
|
62
|
+
5. Claude Agent SDK TypeScript: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/claude-sdk-typescript`
|
|
63
|
+
6. CrewAI Flows: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/crewai-flows`
|
|
64
|
+
7. Custom agent: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/custom-ag-ui`
|
|
65
|
+
8. Deep Agents: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/deep-agents`
|
|
66
|
+
9. LangGraph Python: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/langgraph-python`
|
|
67
|
+
10. LangGraph FastAPI: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/langgraph-fastapi`
|
|
68
|
+
11. LangGraph TypeScript: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/langgraph-typescript`
|
|
69
|
+
12. LlamaIndex: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/llamaindex`
|
|
70
|
+
13. ADK: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/google-adk`
|
|
71
|
+
14. Microsoft Agent Framework Python: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/ms-agent-python`
|
|
72
|
+
15. Microsoft Agent Framework .NET: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/ms-agent-dotnet`
|
|
73
|
+
16. Mastra: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/mastra`
|
|
74
|
+
17. MS Agent Harness .NET: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/ms-agent-harness-dotnet`
|
|
75
|
+
18. Pydantic AI: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/pydantic-ai`
|
|
76
|
+
19. Strands Agents Python: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/strands-python`
|
|
77
|
+
20. Strands Agents TypeScript: `npx --prefer-offline --yes copilotkit@4.27.0 onboard read framework/strands-typescript`
|
|
66
78
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
79
|
+
An agent in any other framework takes route 7, whether or not it speaks AG-UI. So does a
|
|
80
|
+
new agent on a framework that is not listed. If the developer declines route 7 and every
|
|
81
|
+
listed framework, keep their current agent and run
|
|
82
|
+
`npx --prefer-offline --yes copilotkit@4.27.0 onboard read unsupported/no-validated-path`.
|
|
@@ -8,7 +8,7 @@ application code here. Do not read, show, store, or request a secret value.
|
|
|
8
8
|
Read `learningContainer` from the `onboard credentials` result:
|
|
9
9
|
|
|
10
10
|
- `exists`: reuse `id` and create nothing.
|
|
11
|
-
- `plan-create`: plan `id`, and create it after the
|
|
11
|
+
- `plan-create`: plan `id`, and create it after the run shows the plan.
|
|
12
12
|
- `skipped`: plan no container and no selector. Name `reason` in the plan and in the
|
|
13
13
|
closing report. Do not stop.
|
|
14
14
|
|
|
@@ -21,10 +21,11 @@ The plan names the model credential variables. Run this from the directory that
|
|
|
21
21
|
`environmentPath` in the project step's result, with one `--model-key` for each variable:
|
|
22
22
|
|
|
23
23
|
```text
|
|
24
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
24
|
+
npx --prefer-offline --yes copilotkit@4.27.0 onboard credentials --model-key <variable> --json
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
Run `npx --prefer-offline --yes copilotkit@4.27.0 onboard setup-answers` for the key answer the setup
|
|
28
|
+
message recorded. If it holds `key.file`, add `--env-path <key.file>` to the first check.
|
|
28
29
|
When the framework node names another env file for the credential, add
|
|
29
30
|
`--env-path <file>`. When the agent runs as its own service, such as a remote AG-UI agent,
|
|
30
31
|
that service reads its own env file. Add `--copy-to <service>/.env` for it. The command
|
|
@@ -38,25 +39,43 @@ never prints a value. Read `status`:
|
|
|
38
39
|
itself. By default, plan to copy the key into `environmentPath`, the app's env file that git ignores.
|
|
39
40
|
The copy is a file the run writes itself, so list the copy under
|
|
40
41
|
`Files the run writes itself`.
|
|
41
|
-
The developer's
|
|
42
|
-
copy the key with the command that `next` names. It has this form:
|
|
43
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
42
|
+
The developer's answer to the key file line in the setup questions is their consent to
|
|
43
|
+
the copy. After the run shows the plan, copy the key with the command that `next` names. It has this form:
|
|
44
|
+
`npx --prefer-offline --yes copilotkit@4.27.0 onboard credentials --model-key <variable> --env-path <file> --copy-to <env file> --json`.
|
|
44
45
|
`<env file>` is `environmentPath`, never the tracked `.env` of a run that chose
|
|
45
46
|
`question.alternative.file`. It writes the key without printing it. Do not copy the key
|
|
46
47
|
yourself, and do not write a `sed`, `grep`, or `cat` command for it. If you cannot run
|
|
47
48
|
the command, for example because a sandbox refuses the path, ask the developer to run it.
|
|
48
49
|
Give them exactly this one line, with `<app directory>` as the directory that holds
|
|
49
50
|
`environmentPath`:
|
|
50
|
-
`! cd <app directory> && npx --prefer-offline --yes copilotkit@4.
|
|
51
|
+
`! cd <app directory> && npx --prefer-offline --yes copilotkit@4.27.0 onboard credentials --model-key <variable> --env-path <file> --copy-to <env file>`.
|
|
51
52
|
The command needs no input. Without `!`, they run the same command in a terminal.
|
|
52
53
|
Report the pause with
|
|
53
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
54
|
+
`npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-model-credential`,
|
|
54
55
|
end your turn, and wait. When they reply, run the same command with `--json` and read `copiedKeys`.
|
|
55
56
|
If the developer declines the copy, the plan has the app read the key from an
|
|
56
57
|
environment variable that the developer sets. The plan then says how to set it. Never
|
|
57
58
|
write the outside path into a project file, not even in a config file such as
|
|
58
59
|
`langgraph.json`. A committed file that names a folder in the developer's home directory
|
|
59
60
|
gives every other machine no key. In the closing report, say where the app reads the key from.
|
|
61
|
+
The `reason` `keyless-local-endpoint` means that the base URL is a local server, such as
|
|
62
|
+
Ollama or LM Studio, that answered without a key. The key holds the stand-in
|
|
63
|
+
`not-needed`.
|
|
64
|
+
The `reason` `unread-base-url` means that the env file sets `OPENAI_API_BASE`. This app
|
|
65
|
+
reads only `OPENAI_BASE_URL`, so it sends the key to OpenAI. Rename the variable to
|
|
66
|
+
`OPENAI_BASE_URL` in that file, and run this step again.
|
|
67
|
+
The `reason` `base-url-query` means that the base URL has a query string, and
|
|
68
|
+
`base-url-redirect` means that it redirects. Name either one in the closing report.
|
|
69
|
+
The `reason` `compatible-base-url-missing` or `key-not-openai` means that the key belongs
|
|
70
|
+
to an OpenAI-compatible provider, but no file names its base URL, so nothing was sent.
|
|
71
|
+
Ask the developer for the provider's base URL, record it with
|
|
72
|
+
`npx --prefer-offline --yes copilotkit@4.27.0 onboard setup-answers --vendor openai-compatible --base-url <url> --model-id <id>`,
|
|
73
|
+
and run this step again.
|
|
74
|
+
- `needs-developer` with `question.reason` `local-endpoint-no-key`: the base URL is a local
|
|
75
|
+
server that needs no key, such as Ollama or LM Studio. The OpenAI SDKs refuse an empty
|
|
76
|
+
key. Do what `next` says: write `<variable>=not-needed` to `question.envFile`, the key's
|
|
77
|
+
own file, and run this step again. For the Microsoft Agent Framework Python starter,
|
|
78
|
+
that file is `agent/.env`.
|
|
60
79
|
- `needs-developer` with `question.status` `missing`: if the developer said they will add the
|
|
61
80
|
key later, do not ask or pause here. Carry the missing key into the plan: name the
|
|
62
81
|
variable and `question.envFile`, then continue. Otherwise ask the developer `question.ask` in
|
|
@@ -65,10 +84,14 @@ never prints a value. Read `status`:
|
|
|
65
84
|
with `--env-path <path>`. If they add the key, rerun it as it is. Do not replace the
|
|
66
85
|
question with an instruction to paste the value into a file. The key can already be in a
|
|
67
86
|
file that you can point the check at.
|
|
68
|
-
- `needs-developer` with `question.status` `fail`:
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
87
|
+
- `needs-developer` with `question.status` `fail`: ask the developer `question.ask` in
|
|
88
|
+
those words. It says why the vendor refused the key and how to fix it. If they choose
|
|
89
|
+
another provider that the framework can use, record that vendor and its variable, and
|
|
90
|
+
run this step again with that variable. The plan changes the model code. With the cause
|
|
91
|
+
`model_unavailable`, the key works and the app's model does not: the vendor does not
|
|
92
|
+
serve the model that `COPILOTKIT_AGENT_MODEL` names. When the developer agrees to the
|
|
93
|
+
model that `question.ask` names, or names another, change `COPILOTKIT_AGENT_MODEL`
|
|
94
|
+
where `question.ask` says, and run this step again.
|
|
72
95
|
- `needs-developer` with `question.kind` `env-file-exposed`: git tracks an env file the
|
|
73
96
|
key goes into, or does not ignore it. So nothing was written. Ask the developer `question.ask` in those
|
|
74
97
|
words. If they choose `question.alternative`, run the command again with the same flags
|
|
@@ -83,10 +106,11 @@ the run continues when they reply or resume this session. Under a harness that e
|
|
|
83
106
|
session with your turn, such as `codex exec`, that message is the only thing the developer
|
|
84
107
|
sees. This is a pause, not a stop. The command already reported it.
|
|
85
108
|
End your turn. When the developer answers, run the command again. Do not write a
|
|
86
|
-
placeholder or an empty value.
|
|
109
|
+
placeholder or an empty value. The one exception is `not-needed` for the reason
|
|
110
|
+
`local-endpoint-no-key` above.
|
|
87
111
|
|
|
88
112
|
Never read a file outside the project directory to find a credential: a key found that way
|
|
89
113
|
bills another project. Asking for a path is not requesting a secret. A path the developer
|
|
90
114
|
names is theirs to give, including one outside the project. A path this run finds is not.
|
|
91
115
|
|
|
92
|
-
Then run `npx --prefer-offline --yes copilotkit@4.
|
|
116
|
+
Then run `npx --prefer-offline --yes copilotkit@4.27.0 onboard read credentials/write-plan`.
|