copilotkit 4.9.1 → 4.9.2
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/cli-build-info.json +7 -7
- package/index.js +21 -5
- package/onboarding/index.json +10 -0
- package/onboarding/prompts/authenticate/start.md +10 -4
- package/onboarding/prompts/credentials/finalize-plan.md +36 -13
- package/onboarding/prompts/credentials/plan.md +20 -20
- package/onboarding/prompts/fallback/best-effort.md +3 -3
- 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 +7 -2
- package/onboarding/prompts/frontend/nextjs.md +17 -2
- 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 +19 -4
- package/onboarding/prompts/proof/complete.md +15 -5
- package/onboarding/prompts/proof/oss-baseline.md +3 -3
- package/onboarding/prompts/proof/round-trip.md +183 -63
- package/onboarding/prompts/starter/clone.md +67 -0
- package/onboarding/prompts/subagent/create-plan.md +22 -4
- package/onboarding/prompts/subagent/implement-and-validate.md +17 -2
- package/onboarding/prompts/subagent/inspect-repository.md +5 -0
- package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
- package/onboarding/prompts/subagent/prove-round-trip.md +175 -61
- package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
- package/package.json +1 -1
- package/release/release-tool.js +15 -1
|
@@ -29,11 +29,11 @@ unavailable only after a second method also fails.
|
|
|
29
29
|
|
|
30
30
|
Use exactly one matching internal route:
|
|
31
31
|
|
|
32
|
-
1. React SPA: `npx --yes copilotkit@4.9.
|
|
33
|
-
2. Next.js: `npx --yes copilotkit@4.9.
|
|
34
|
-
3. Angular: `npx --yes copilotkit@4.9.
|
|
35
|
-
4. Vue 3: `npx --yes copilotkit@4.9.
|
|
36
|
-
5. React Native: `npx --yes copilotkit@4.9.
|
|
32
|
+
1. React SPA: `npx --yes copilotkit@4.9.2 onboard read frontend/react-spa`
|
|
33
|
+
2. Next.js: `npx --yes copilotkit@4.9.2 onboard read frontend/nextjs`
|
|
34
|
+
3. Angular: `npx --yes copilotkit@4.9.2 onboard read frontend/angular`
|
|
35
|
+
4. Vue 3: `npx --yes copilotkit@4.9.2 onboard read frontend/vue`
|
|
36
|
+
5. React Native: `npx --yes copilotkit@4.9.2 onboard read frontend/react-native`
|
|
37
37
|
|
|
38
38
|
If no listed frontend fits, run
|
|
39
|
-
`npx --yes copilotkit@4.9.
|
|
39
|
+
`npx --yes copilotkit@4.9.2 onboard read unsupported/no-validated-path`.
|
|
@@ -17,8 +17,8 @@ not a fact about the page. Retrieve the same URL a second way before you judge i
|
|
|
17
17
|
unavailable only after a second method also fails.
|
|
18
18
|
|
|
19
19
|
If the page supports the selection, run
|
|
20
|
-
`npx --yes copilotkit@4.9.
|
|
20
|
+
`npx --yes copilotkit@4.9.2 onboard read credentials/finalize-plan`.
|
|
21
21
|
|
|
22
22
|
If a second method also fails, or the page that loads does not support the selection,
|
|
23
23
|
run
|
|
24
|
-
`npx --yes copilotkit@4.9.
|
|
24
|
+
`npx --yes copilotkit@4.9.2 onboard read unsupported/no-validated-path`.
|
|
@@ -21,7 +21,7 @@ not a fact about the page. Retrieve the same URL a second way before you judge i
|
|
|
21
21
|
unavailable only after a second method also fails.
|
|
22
22
|
|
|
23
23
|
If the page supports the selection, run
|
|
24
|
-
`npx --yes copilotkit@4.9.
|
|
24
|
+
`npx --yes copilotkit@4.9.2 onboard read credentials/finalize-plan`.
|
|
25
25
|
|
|
26
26
|
If a second method also fails, or a page that loads does not support the selection, run
|
|
27
|
-
`npx --yes copilotkit@4.9.
|
|
27
|
+
`npx --yes copilotkit@4.9.2 onboard read unsupported/no-validated-path`.
|
|
@@ -17,8 +17,8 @@ not a fact about the page. Retrieve the same URL a second way before you judge i
|
|
|
17
17
|
unavailable only after a second method also fails.
|
|
18
18
|
|
|
19
19
|
If the page supports the selection, run
|
|
20
|
-
`npx --yes copilotkit@4.9.
|
|
20
|
+
`npx --yes copilotkit@4.9.2 onboard read credentials/finalize-plan`.
|
|
21
21
|
|
|
22
22
|
If a second method also fails, or the page that loads does not support the selection,
|
|
23
23
|
run
|
|
24
|
-
`npx --yes copilotkit@4.9.
|
|
24
|
+
`npx --yes copilotkit@4.9.2 onboard read unsupported/no-validated-path`.
|
|
@@ -8,7 +8,7 @@ documentation URLs.
|
|
|
8
8
|
Wait for the subagent to finish.
|
|
9
9
|
|
|
10
10
|
If all implementation and validation steps pass, run
|
|
11
|
-
`npx --yes copilotkit@4.9.
|
|
11
|
+
`npx --yes copilotkit@4.9.2 onboard read proof/round-trip`.
|
|
12
12
|
|
|
13
13
|
If a validation command fails, decide which kind of failure it is before you route.
|
|
14
14
|
|
|
@@ -20,7 +20,7 @@ Route out only when the failure is not yours to fix: the failure is in code this
|
|
|
20
20
|
not write, or the fix requires changing the developer's existing agent or frontend,
|
|
21
21
|
or the same command still fails after three repair attempts, or the documentation does not
|
|
22
22
|
support the plan. In those cases run
|
|
23
|
-
`npx --yes copilotkit@4.9.
|
|
23
|
+
`npx --yes copilotkit@4.9.2 onboard read unsupported/no-validated-path`.
|
|
24
24
|
|
|
25
25
|
## Implementation subagent brief
|
|
26
26
|
|
|
@@ -57,8 +57,23 @@ for.
|
|
|
57
57
|
|
|
58
58
|
For a recorded `both-oss` baseline, preserve the existing agent, frontend, CopilotKit
|
|
59
59
|
integration, user-visible request, and runtime behavior. Do not replace the existing
|
|
60
|
-
persistence. Change only the approved project selection
|
|
61
|
-
|
|
60
|
+
persistence. Change only the approved project selection, the approved CopilotKit
|
|
61
|
+
dependency upgrade, and the Intelligence runtime wiring.
|
|
62
|
+
Run the recorded baseline checks again after the Intelligence wiring and report any
|
|
63
|
+
regression.
|
|
64
|
+
|
|
65
|
+
Apply the planned CopilotKit dependency upgrade before you wire Intelligence, as its own
|
|
66
|
+
step, and record each version it changed. Then re-run the recorded baseline checks. A
|
|
67
|
+
regression at this point can only be the upgrade, which is why it is checked here rather
|
|
68
|
+
than after the wiring.
|
|
69
|
+
|
|
70
|
+
If the baseline regresses, restore the manifest and lockfile to their recorded state,
|
|
71
|
+
leave Intelligence unwired, and report the regression with the failing check. A
|
|
72
|
+
half-upgraded project with no working chat is worse than the one this run was given, and
|
|
73
|
+
finishing the wiring on top of a broken baseline hides which change broke it.
|
|
74
|
+
|
|
75
|
+
Report each `@copilotkit/*` version before and after the upgrade. Where the plan named no
|
|
76
|
+
dependency change, say that the installed versions already met the floor.
|
|
62
77
|
|
|
63
78
|
When the documentation creates the frontend with the framework's own scaffolder,
|
|
64
79
|
run that scaffolder rather than hand-authoring what it emits.
|
|
@@ -36,9 +36,19 @@ The handoff must include:
|
|
|
36
36
|
|
|
37
37
|
- The URL of the running app.
|
|
38
38
|
- The command that starts the app in the future.
|
|
39
|
-
-
|
|
39
|
+
- The debugging surface this journey's frontend can reach, named below.
|
|
40
40
|
- How to use https://intelligence.copilotkit.ai to manage the Intelligence installation.
|
|
41
41
|
- The process IDs and stop commands for the running agent and frontend.
|
|
42
|
+
- The `@copilotkit/*` versions this conversion changed, and what they were before.
|
|
43
|
+
|
|
44
|
+
Name the debugging surface this journey's frontend can reach, rather than the one the rest
|
|
45
|
+
of the documentation leads with. For a web frontend it is the CopilotKit Inspector. For
|
|
46
|
+
React Native there is no Inspector: it is a browser overlay built on a DOM custom element,
|
|
47
|
+
and `@copilotkit/react-native` does not ship it. Give a mobile developer
|
|
48
|
+
`npx --yes copilotkit@4.9.2 verify --round-trip`, the runtime's own log, the AG-UI
|
|
49
|
+
Event Inspector in the CopilotKit VS Code extension, and the Intelligence thread view
|
|
50
|
+
instead. Naming the Inspector to a developer who cannot open it costs them the time it
|
|
51
|
+
takes to conclude their own wiring is broken.
|
|
42
52
|
|
|
43
53
|
State that the servers remain running after proof.
|
|
44
54
|
|
|
@@ -47,7 +57,7 @@ the friction commands without another developer question. The CLI telemetry gate
|
|
|
47
57
|
whether the report is sent.
|
|
48
58
|
|
|
49
59
|
```text
|
|
50
|
-
npx --yes copilotkit@4.9.
|
|
60
|
+
npx --yes copilotkit@4.9.2 onboard friction --category <slug> --cost-seconds <seconds>
|
|
51
61
|
```
|
|
52
62
|
|
|
53
63
|
Write one or two sentences on the command's standard input. Pick one category from
|
|
@@ -64,14 +74,14 @@ Tell the developer when you send a friction report. Do not quote or summarize th
|
|
|
64
74
|
unless the developer asks. If the CLI says that telemetry is disabled or unavailable,
|
|
65
75
|
state that the report was not sent and continue without another question.
|
|
66
76
|
|
|
67
|
-
When the evidence is gathered, run `npx --yes copilotkit@4.9.
|
|
77
|
+
When the evidence is gathered, run `npx --yes copilotkit@4.9.2 onboard complete`, carrying
|
|
68
78
|
the surface-check outcome the proof subagent returned. Pass exactly one flag, and pass the
|
|
69
79
|
one that matches this journey's surface.
|
|
70
80
|
|
|
71
81
|
For a web frontend -- React SPA, Next.js, Angular, Vue:
|
|
72
82
|
|
|
73
83
|
```text
|
|
74
|
-
npx --yes copilotkit@4.9.
|
|
84
|
+
npx --yes copilotkit@4.9.2 onboard complete --visual-check <outcome>
|
|
75
85
|
```
|
|
76
86
|
|
|
77
87
|
The outcome is one of `performed`, `skipped-no-browser-tool`, or `failed`.
|
|
@@ -79,7 +89,7 @@ The outcome is one of `performed`, `skipped-no-browser-tool`, or `failed`.
|
|
|
79
89
|
For React Native:
|
|
80
90
|
|
|
81
91
|
```text
|
|
82
|
-
npx --yes copilotkit@4.9.
|
|
92
|
+
npx --yes copilotkit@4.9.2 onboard complete --device-check <outcome>
|
|
83
93
|
```
|
|
84
94
|
|
|
85
95
|
The outcome is one of `performed`, `skipped-no-device`, or `failed`.
|
|
@@ -10,11 +10,11 @@ processes and their ignored runtime files is allowed.
|
|
|
10
10
|
|
|
11
11
|
If the subagent proves the `both-oss` predicate, keep its evidence with the plan. If it
|
|
12
12
|
proves another supported starting state, record that state. In either case, run
|
|
13
|
-
`npx --yes copilotkit@4.9.
|
|
13
|
+
`npx --yes copilotkit@4.9.2 onboard read credentials/plan`.
|
|
14
14
|
|
|
15
15
|
If it cannot identify the running process safely, exposes a secret, or finds a baseline
|
|
16
16
|
failure that cannot be classified, run
|
|
17
|
-
`npx --yes copilotkit@4.9.
|
|
17
|
+
`npx --yes copilotkit@4.9.2 onboard read unsupported/no-validated-path`.
|
|
18
18
|
|
|
19
19
|
## Baseline proof subagent brief
|
|
20
20
|
|
|
@@ -40,7 +40,7 @@ Prove the live runtime in this order:
|
|
|
40
40
|
4. Confirm from project files that the runtime constructor passes a `runner` option rather
|
|
41
41
|
than an `intelligence` option. A package, import, project file, or key is not use proof.
|
|
42
42
|
5. Run
|
|
43
|
-
`npx --yes copilotkit@4.9.
|
|
43
|
+
`npx --yes copilotkit@4.9.2 verify --expect-runtime oss --round-trip --agent <expected-agent-id> --json`,
|
|
44
44
|
with the runtime URL or auth header options that this project needs. Require exit zero
|
|
45
45
|
and the JSON `ok` field to be `true`.
|
|
46
46
|
6. Drive one real request through the existing frontend, CopilotKit runtime, and expected
|
|
@@ -5,13 +5,19 @@ Do not do the proof work yourself. Spawn one proof subagent.
|
|
|
5
5
|
Give the subagent the full text of the proof brief at the end of this prompt, the selected
|
|
6
6
|
framework, frontend, model, approved plan, selected documentation URLs, and validation
|
|
7
7
|
evidence.
|
|
8
|
+
|
|
9
|
+
Give it the browser or device control you recorded in the preflight as well. The subagent
|
|
10
|
+
drives the surface and cannot see your environment, so without that finding it spends the
|
|
11
|
+
step discovering what you already know. A subagent told it has no control for the surface
|
|
12
|
+
this frontend needs reports the skip outcome rather than looking for a way around it.
|
|
13
|
+
|
|
8
14
|
Wait for the subagent to finish.
|
|
9
15
|
|
|
10
16
|
Give the subagent this guide for continued-development tools:
|
|
11
17
|
https://docs.copilotkit.ai/build-with-agents.md
|
|
12
18
|
|
|
13
19
|
If the subagent proves the complete round trip, run
|
|
14
|
-
`npx --yes copilotkit@4.9.
|
|
20
|
+
`npx --yes copilotkit@4.9.2 onboard read proof/complete`. The round trip proves core success
|
|
15
21
|
even if a continued-development tool fails. Keep the Skills and MCP results separate from
|
|
16
22
|
the proof result.
|
|
17
23
|
|
|
@@ -21,7 +27,7 @@ the proof subagent to fix and prove again, at most three attempts.
|
|
|
21
27
|
|
|
22
28
|
Route out only when the failure is not yours to fix, when the same proof still fails after
|
|
23
29
|
three attempts, or when no evidence of the round trip can be produced. In those cases run
|
|
24
|
-
`npx --yes copilotkit@4.9.
|
|
30
|
+
`npx --yes copilotkit@4.9.2 onboard read unsupported/no-validated-path`.
|
|
25
31
|
|
|
26
32
|
## Proof subagent brief
|
|
27
33
|
|
|
@@ -35,24 +41,111 @@ Use the proof steps and documentation URLs from the approved plan. Fetch every s
|
|
|
35
41
|
URL in one step before you start, rather than one after another.
|
|
36
42
|
Do not use remembered CopilotKit instructions.
|
|
37
43
|
|
|
44
|
+
Run the steps below in the order they appear. They are the proof. Do not design a
|
|
45
|
+
different sequence of your own, and do not drop a step because an earlier one looked
|
|
46
|
+
convincing. Step 6 has a web form and a React Native form: run the one that matches this
|
|
47
|
+
journey's frontend, and run only that one.
|
|
48
|
+
|
|
49
|
+
Record the result of every step as you go. A step with nothing recorded did not happen.
|
|
50
|
+
Write each captured file to `.copilotkit/proof/` inside the project and name the path in
|
|
51
|
+
the record. That directory holds regenerable evidence rather than application code. Where
|
|
52
|
+
a browser or device tool writes to a location of its own, keep that location and record
|
|
53
|
+
it instead.
|
|
54
|
+
|
|
38
55
|
A fetch tool that refuses a URL, or fails to reach it, reports a limit of the tool and
|
|
39
56
|
not a fact about the page. Retrieve the same URL a second way before you judge it. Run
|
|
40
57
|
`curl -fsSL <url>`, or read the same page without the `.md` suffix. Report a
|
|
41
58
|
documentation gap only after a second method also fails.
|
|
42
59
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
60
|
+
Gather what you need in as few commands as possible. Combine independent reads into one
|
|
61
|
+
command rather than running them one at a time. Split a command only when its result decides
|
|
62
|
+
what you run next.
|
|
63
|
+
|
|
64
|
+
## Step 1 -- Read what the proof needs
|
|
65
|
+
|
|
66
|
+
Read all of this from the approved plan in one pass, before you start anything:
|
|
67
|
+
|
|
68
|
+
- the exact request to send through the frontend, in the words the plan gave it,
|
|
69
|
+
- the user-visible result that request has to produce,
|
|
70
|
+
- the expected agent id,
|
|
71
|
+
- where the project's own data lives, and which entities the answer has to name,
|
|
72
|
+
- the start command for the agent and for the frontend, from the plan where it named
|
|
73
|
+
one and from the project's own scripts otherwise,
|
|
74
|
+
- the runtime URL.
|
|
75
|
+
|
|
76
|
+
Where the plan named no request, write one that produces the outcome the plan named, and
|
|
77
|
+
record the request you wrote. Every later step uses these words unchanged, so that the
|
|
78
|
+
browser, the device, and the grounding check all speak about one request.
|
|
79
|
+
|
|
80
|
+
## Step 2 -- Start the agent and the frontend
|
|
81
|
+
|
|
82
|
+
Read the port the developer's agent already serves from this project's own configuration.
|
|
83
|
+
Do not assume a default, and do not start a second copy of an agent this project is
|
|
84
|
+
already running. Before you bind any new server, check that the port is free and pick
|
|
85
|
+
another one if it is not. Record every port you used.
|
|
86
|
+
|
|
87
|
+
The table names what each frontend's own scaffolder writes, for recognizing a port in a
|
|
88
|
+
started process's output. The project's configuration wins over the table.
|
|
89
|
+
|
|
90
|
+
| Frontend | Dev server the scaffolder writes |
|
|
91
|
+
| ------------ | -------------------------------- |
|
|
92
|
+
| Next.js | `next dev`, port 3000 |
|
|
93
|
+
| React SPA | Vite, port 5173 |
|
|
94
|
+
| Vue 3 | Vite, port 5173 |
|
|
95
|
+
| Angular | `ng serve`, port 4200 |
|
|
96
|
+
| React Native | Metro, port 8081 |
|
|
97
|
+
|
|
98
|
+
Where this project's runtime runs as a process of its own, the frontend documentation
|
|
99
|
+
puts it on port 8200. Use the runtime URL from step 1 rather than that number.
|
|
100
|
+
|
|
101
|
+
Start each server in the background with the project's own script. Then wait for it to
|
|
102
|
+
answer rather than for a fixed number of seconds:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
ready=
|
|
106
|
+
for _ in $(seq 90); do
|
|
107
|
+
curl -fs -o /dev/null "<url>" && ready=1 && break
|
|
108
|
+
sleep 1
|
|
109
|
+
done
|
|
110
|
+
[ "$ready" = 1 ] && echo "up" || echo "no answer from <url> after 90 seconds"
|
|
111
|
+
```
|
|
47
112
|
|
|
48
|
-
|
|
113
|
+
Read the loop's own last line rather than assuming it ended because the server answered.
|
|
114
|
+
A server that never answered has written the reason to its own output, and reading that
|
|
115
|
+
output is faster than starting it again.
|
|
49
116
|
|
|
50
117
|
Leave the agent and frontend servers running after proof. Record each process ID and a
|
|
51
118
|
safe command that stops that process. Record the frontend URL and the commands that start
|
|
52
119
|
both servers again.
|
|
53
120
|
|
|
121
|
+
## Step 3 -- Identify the process that answered
|
|
122
|
+
|
|
123
|
+
Before you trust the agent, confirm that the process answering is the one in this
|
|
124
|
+
repository. `verify` reports which agents the runtime declares and has nothing to compare
|
|
125
|
+
them against, and `--round-trip` proves an agent answers under the declared id without
|
|
126
|
+
proving which deployment did, so this comparison is yours. A health endpoint that returns
|
|
127
|
+
success proves only that something listens on
|
|
128
|
+
that port. An agent from earlier work often still holds it, and a stale process answers
|
|
129
|
+
as though it were the new one. Ask the running agent which graph or agent id it serves
|
|
130
|
+
and compare that with the id declared in this project.
|
|
131
|
+
|
|
132
|
+
If they do not match, find out whose process it is before you signal anything.
|
|
133
|
+
`lsof -ti :<port> -sTCP:LISTEN` gives the process id, and `lsof -a -p <pid> -d cwd` gives
|
|
134
|
+
the directory it runs in. Stop it only when that directory is inside this project, and
|
|
135
|
+
stop its children before the parent so nothing survives by reparenting. A holder outside
|
|
136
|
+
this project belongs to other work: leave it running, report it, and bind to another port.
|
|
137
|
+
Never stop a process because its command line matches a name. One `pkill` pattern reaches
|
|
138
|
+
every project on the machine and takes down work that has nothing to do with this run.
|
|
139
|
+
Never continue against a process you cannot identify, and never report a round trip proven
|
|
140
|
+
by one.
|
|
141
|
+
|
|
142
|
+
Address a local agent by host name rather than by an IP literal. Some local agents bind
|
|
143
|
+
IPv6 only, so an IPv4 literal fails against the correct port.
|
|
144
|
+
|
|
145
|
+
## Step 4 -- Check the wiring
|
|
146
|
+
|
|
54
147
|
With both running, check the wiring in one command before you open a browser:
|
|
55
|
-
`npx --yes copilotkit@4.9.
|
|
148
|
+
`npx --yes copilotkit@4.9.2 verify --json`. Add `--runtime-url` when the runtime is not at
|
|
56
149
|
`http://localhost:3000/api/copilotkit`. Read the individual checks rather than the summary
|
|
57
150
|
alone: a check reported `undetermined` did not run, and that is not a pass. Fix anything
|
|
58
151
|
that is not a pass before the browser, because a browser failure stacked on broken wiring
|
|
@@ -68,11 +161,12 @@ thread routes, which means saved Threads cannot load in a browser. The usual cau
|
|
|
68
161
|
handler mounted `mode: "single-route"`: remove that option so the handler serves its full
|
|
69
162
|
route set, and mount it at a catch-all route. If instead that check is `undetermined`
|
|
70
163
|
because the runtime reports no thread-endpoint state, the runtime predates the field.
|
|
71
|
-
Record that and move on
|
|
164
|
+
Record that and move on -- there is nothing to repair.
|
|
72
165
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
166
|
+
## Step 5 -- Prove that the agent runs
|
|
167
|
+
|
|
168
|
+
Run `npx --yes copilotkit@4.9.2 verify --round-trip --json`. It sends one request through
|
|
169
|
+
the runtime and reads the answer back from the thread, so it separates an agent that is
|
|
76
170
|
configured from an agent that works. Use `--agent <id>` when the runtime declares more
|
|
77
171
|
than one. If it reports `user-not-identified`, this project's `identifyUser` reads a
|
|
78
172
|
session the CLI does not carry: pass what it reads with `--header "Name: value"` and run
|
|
@@ -80,64 +174,80 @@ it again, because an auth-gated app refusing an unauthenticated caller is that a
|
|
|
80
174
|
working. Do not continue until this passes, and never report a round trip proven without
|
|
81
175
|
it.
|
|
82
176
|
|
|
83
|
-
|
|
84
|
-
CopilotKit and reaches the selected agent.
|
|
85
|
-
|
|
86
|
-
For a recorded `both-oss` starting state: Compare the final round trip with the recorded
|
|
87
|
-
OSS baseline. The same frontend request must still reach the same agent and produce the
|
|
88
|
-
same kind of user-visible result. The runtime must now report `licenseStatus`, and the
|
|
89
|
-
authenticated Intelligence checks must pass. Record both before and after evidence.
|
|
177
|
+
## Step 6 -- Drive the surface
|
|
90
178
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
and
|
|
98
|
-
|
|
99
|
-
If they do not match, find out whose process it is before you signal anything.
|
|
100
|
-
`lsof -ti :<port> -sTCP:LISTEN` gives the process id, and `lsof -a -p <pid> -d cwd` gives
|
|
101
|
-
the directory it runs in. Stop it only when that directory is inside this project, and
|
|
102
|
-
stop its children before the parent so nothing survives by reparenting. A holder outside
|
|
103
|
-
this project belongs to other work: leave it running, report it, and bind to another port.
|
|
104
|
-
Never stop a process because its command line matches a name. One `pkill` pattern reaches
|
|
105
|
-
every project on the machine and takes down work that has nothing to do with this run.
|
|
106
|
-
Never continue against a process you cannot identify, and never report a round trip proven
|
|
107
|
-
by one.
|
|
179
|
+
Now send one real request through the running frontend, on this journey's own surface.
|
|
180
|
+
Make sure that the request passes through CopilotKit and reaches the selected agent, and
|
|
181
|
+
that the frontend receives working generative UI from the agent. This is the step that
|
|
182
|
+
covers realtime delivery, the frontend provider being wired to this runtime, and a
|
|
183
|
+
generative UI component actually rendering, and no command-line check reaches any of them.
|
|
184
|
+
It is not optional polish: a run that skips it has proven the agent and not the journey,
|
|
185
|
+
and the graph ends such a run as blocked rather than complete.
|
|
108
186
|
|
|
109
|
-
|
|
110
|
-
|
|
187
|
+
Use the surface control the main coding agent recorded for your environment. Do not add a
|
|
188
|
+
browser driver or a device tool to this project: a devDependency and a browser download
|
|
189
|
+
land in the diff and tax a repository that never asked for one. If nothing in your
|
|
190
|
+
environment can drive the surface this journey needs, skip this step rather than
|
|
191
|
+
installing one, and report the skip outcome named below.
|
|
111
192
|
|
|
112
|
-
|
|
113
|
-
working generative UI from the agent. This is the step that covers realtime delivery, the
|
|
114
|
-
frontend provider being wired to this runtime, and a generative UI component actually
|
|
115
|
-
rendering, and no command-line check reaches any of them. It is not optional polish: a run
|
|
116
|
-
that skips it has proven the agent and not the journey, and the graph ends such a run as
|
|
117
|
-
blocked rather than complete.
|
|
193
|
+
Never report a result you did not see, on either surface.
|
|
118
194
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
195
|
+
### Step 6a -- Web frontends: React SPA, Next.js, Angular, Vue 3
|
|
196
|
+
|
|
197
|
+
The surface is a browser, and it also covers browser-origin CORS and CSP, which a CLI
|
|
198
|
+
request never exercises. Use a browser MCP server already configured for the coding agent
|
|
199
|
+
you are running as, the same way step 9 configures the CopilotKit documentation MCP
|
|
200
|
+
server.
|
|
201
|
+
|
|
202
|
+
1. Open the frontend URL from step 2 and wait for the page to finish loading.
|
|
203
|
+
2. Take one page snapshot. Record whether the CopilotKit surface is on the page. A page
|
|
204
|
+
that renders without it is a wiring failure rather than a proof to retry.
|
|
205
|
+
3. Read the browser console before you type anything, and record every error already
|
|
206
|
+
there. An error at this point belongs to page load rather than to the request.
|
|
207
|
+
4. Enter the step 1 request into the CopilotKit input, in the words step 1 recorded, and
|
|
208
|
+
submit it.
|
|
209
|
+
5. Wait for the assistant turn to finish rather than for a fixed number of seconds. The
|
|
210
|
+
turn is finished when the streamed text stops growing and the generative UI component
|
|
211
|
+
has rendered.
|
|
212
|
+
6. Take one screenshot of the finished turn and record where you wrote it.
|
|
213
|
+
7. Read the browser console a second time, and record every error that step 3 did not
|
|
214
|
+
already list. Those belong to the request.
|
|
215
|
+
8. Read the network requests. Record every request the page made to the runtime endpoint
|
|
216
|
+
and the status each returned. An answer on the page with no successful request to this
|
|
217
|
+
runtime behind it came from something else, and that is a failed proof rather than a
|
|
218
|
+
passing one.
|
|
219
|
+
9. Record one line for the finished turn: the time, the page URL, the element you read
|
|
220
|
+
the answer from, and what that element showed.
|
|
125
221
|
|
|
126
222
|
Report exactly one of `performed`, `skipped-no-browser-tool`, or `failed` for a web
|
|
127
223
|
frontend.
|
|
128
224
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
225
|
+
### Step 6b -- React Native
|
|
226
|
+
|
|
227
|
+
The surface is a device or emulator, and a browser cannot stand in for it.
|
|
228
|
+
|
|
229
|
+
1. List the booted devices in one command: `adb devices -l`. With no booted device this
|
|
230
|
+
step is `skipped-no-device`. Do not substitute a browser.
|
|
231
|
+
2. Build and install the app on the booted device with the project's own script, which
|
|
232
|
+
an Expo or React Native CLI project names in `package.json`.
|
|
233
|
+
3. Clear the log buffer before the request: `adb logcat -c`.
|
|
234
|
+
4. Open the CopilotKit surface in the running app and enter the step 1 request, in the
|
|
235
|
+
words step 1 recorded.
|
|
236
|
+
5. Wait for the assistant turn to finish rather than for a fixed number of seconds.
|
|
237
|
+
6. Capture the terminal state with
|
|
238
|
+
`adb exec-out screencap -p > .copilotkit/proof/surface.png`, and record that path.
|
|
239
|
+
7. Read the log for the request with `adb logcat -d -t 500`. A redbox is a runtime failure
|
|
240
|
+
the terminal state never shows.
|
|
241
|
+
8. Record one line for the finished turn: the time, the platform, the device id, the
|
|
242
|
+
screen you were on, and what that screen showed.
|
|
243
|
+
|
|
244
|
+
An Android emulator reaches a runtime on the host machine at `10.0.2.2` rather than at
|
|
245
|
+
`localhost`. A request that fails against the runtime with nothing in the runtime's own
|
|
246
|
+
log is that, rather than a broken runtime.
|
|
134
247
|
|
|
135
248
|
Report exactly one of `performed`, `skipped-no-device`, or `failed` for React Native.
|
|
136
249
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
Record the input, visible result, relevant process status, and evidence locations. Do not
|
|
140
|
-
return secret values.
|
|
250
|
+
## Step 7 -- Check the answer against the project's data
|
|
141
251
|
|
|
142
252
|
Where the answer is meant to be about data the project holds, check it against that data.
|
|
143
253
|
Read the entities the project holds -- the ids, names, or records the answer claims to
|
|
@@ -153,6 +263,16 @@ project's data never reaches the agent, the agent receives it and its instructio
|
|
|
153
263
|
it, the page loads its data after the context was registered, or the run wired a different
|
|
154
264
|
source than the page renders. Fix that cause, then prove again.
|
|
155
265
|
|
|
266
|
+
## Step 8 -- Compare with the recorded OSS baseline
|
|
267
|
+
|
|
268
|
+
Run this step only for a recorded `both-oss` starting state. Compare the final round trip
|
|
269
|
+
with the recorded OSS baseline. The same frontend request must still reach the same agent
|
|
270
|
+
and produce the same kind of user-visible result. The runtime must now report
|
|
271
|
+
`licenseStatus`, and the authenticated Intelligence checks must pass. Record both before
|
|
272
|
+
and after evidence.
|
|
273
|
+
|
|
274
|
+
## Step 9 -- Set up the continued-development tools
|
|
275
|
+
|
|
156
276
|
Fetch the continued-development guide from the main coding agent with the proof
|
|
157
277
|
documentation. Try the continued-development tools after the application passes proof.
|
|
158
278
|
Use it to install the project-scoped CopilotKit Skills.
|
|
@@ -162,9 +282,9 @@ Do not validate whether the Skills or MCP server installed correctly. Record the
|
|
|
162
282
|
result for each attempt. Report each tool result separately. A tool error does not change
|
|
163
283
|
the proof result.
|
|
164
284
|
|
|
165
|
-
|
|
166
|
-
command rather than running them one at a time. Split a command only when its result decides
|
|
167
|
-
what you run next.
|
|
285
|
+
## Step 10 -- Return the result
|
|
168
286
|
|
|
169
287
|
Return the proof or the exact failed step to the main coding agent, together with the
|
|
170
|
-
|
|
288
|
+
input, the visible result, the relevant process status, the evidence locations, the
|
|
289
|
+
surface-check outcome, and which surface that outcome speaks for. Do not return secret
|
|
290
|
+
values. Stop after you return the result.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Clone a starter
|
|
2
|
+
|
|
3
|
+
Use this shortcut only when the repository findings prove that the target project
|
|
4
|
+
directory contains no entries. If the directory contains a file or directory, do not use
|
|
5
|
+
this shortcut.
|
|
6
|
+
|
|
7
|
+
Match the selected agent framework and frontend to this table:
|
|
8
|
+
|
|
9
|
+
| Agent framework | Frontend | Framework ID |
|
|
10
|
+
| -------------------------------- | -------- | ---------------------------------- |
|
|
11
|
+
| Agno | Next.js | `agno` |
|
|
12
|
+
| Claude Agent SDK Python | Next.js | `claude-sdk-python` |
|
|
13
|
+
| Claude Agent SDK TypeScript | Next.js | `claude-sdk-typescript` |
|
|
14
|
+
| CrewAI Flows | Next.js | `flows` |
|
|
15
|
+
| LangGraph Python | Next.js | `langgraph-py` |
|
|
16
|
+
| LangGraph TypeScript | Next.js | `langgraph-js` |
|
|
17
|
+
| LlamaIndex | Next.js | `llamaindex` |
|
|
18
|
+
| ADK | Next.js | `adk` |
|
|
19
|
+
| ADK | Angular | `adk-angular` |
|
|
20
|
+
| Microsoft Agent Framework Python | Next.js | `microsoft-agent-framework-py` |
|
|
21
|
+
| Microsoft Agent Framework .NET | Next.js | `microsoft-agent-framework-dotnet` |
|
|
22
|
+
| Mastra | Next.js | `mastra` |
|
|
23
|
+
| Pydantic AI | Next.js | `pydantic-ai` |
|
|
24
|
+
| Strands Agents Python | Next.js | `aws-strands-py` |
|
|
25
|
+
| Strands Agents TypeScript | Next.js | `aws-strands-ts` |
|
|
26
|
+
|
|
27
|
+
Each Framework ID selects a starter that the CLI ships with Intelligence. Do not infer a
|
|
28
|
+
different pair from a similar name. AG2 does not use this shortcut because its starter does
|
|
29
|
+
not include Intelligence.
|
|
30
|
+
|
|
31
|
+
Get the target directory name from its path. The project name must contain 1 to 30
|
|
32
|
+
lowercase letters, numbers, or hyphens. It must not start or end with a hyphen. If the
|
|
33
|
+
selected pair is not in the table, or the directory name is not valid, stop the shortcut.
|
|
34
|
+
Do not run `init`. Treat this result as a failed shortcut and follow the final failure
|
|
35
|
+
instruction in this prompt.
|
|
36
|
+
|
|
37
|
+
If the developer did not name an Intelligence project, list the available projects:
|
|
38
|
+
|
|
39
|
+
`npx --yes copilotkit@4.9.2 project list --json`
|
|
40
|
+
|
|
41
|
+
Ask the developer to select a project or give a name for a new project. If the developer
|
|
42
|
+
already gave this answer, do not ask again. Do not read a secret value. Do not show or
|
|
43
|
+
store a secret value.
|
|
44
|
+
|
|
45
|
+
Run the command from the parent directory. Do not inspect another entry in the parent
|
|
46
|
+
directory. Replace each placeholder with the recorded value. Do not run a placeholder as
|
|
47
|
+
a shell argument.
|
|
48
|
+
|
|
49
|
+
`npx --yes copilotkit@4.9.2 init --name <project-name> --framework <framework-id> --channel none --no-banner --project <slug-or-id> --install`
|
|
50
|
+
|
|
51
|
+
If the developer wants a new project, use `--create <name>` instead of
|
|
52
|
+
`--project <slug-or-id>`. If the developer asked to skip the dependency install, use
|
|
53
|
+
`--no-install` instead of `--install`. Do not wait for an interactive prompt. Pass every
|
|
54
|
+
answer as a flag.
|
|
55
|
+
|
|
56
|
+
The command clones the starter into the empty target directory. It also connects the
|
|
57
|
+
starter to the developer's Intelligence project. The earlier login phase supplies the
|
|
58
|
+
account. The command does not need terminal input.
|
|
59
|
+
|
|
60
|
+
If the command succeeds, do not rebuild the starter by hand. Inspect only the generated
|
|
61
|
+
paths inside the target directory. Record the files, install result, project connection,
|
|
62
|
+
and validation commands. Then run
|
|
63
|
+
`npx --yes copilotkit@4.9.2 onboard read proof/round-trip`.
|
|
64
|
+
|
|
65
|
+
If the command fails, report its exact error and do not claim that the starter is ready.
|
|
66
|
+
Then run
|
|
67
|
+
`npx --yes copilotkit@4.9.2 onboard read unsupported/no-validated-path`.
|
|
@@ -31,10 +31,28 @@ combined. Take the constructor from the connect-your-runtime page. Where a frame
|
|
|
31
31
|
quickstart shows a `runner` option instead, the connect-your-runtime page wins.
|
|
32
32
|
|
|
33
33
|
When the starting state is `both-oss`, use its recorded live baseline evidence. Preserve
|
|
34
|
-
the working agent, frontend, CopilotKit integration, and OSS behavior. Plan
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
rebuild a path that already works.
|
|
34
|
+
the working agent, frontend, CopilotKit integration, and OSS behavior. Plan the project
|
|
35
|
+
selection, the CopilotKit dependency upgrade below, the Intelligence runtime
|
|
36
|
+
configuration, and the authenticated proof needed for the conversion. Preserve the
|
|
37
|
+
existing persistence and user-visible request. Do not rebuild a path that already works.
|
|
38
|
+
|
|
39
|
+
Preserving the OSS baseline preserves the application, not its CopilotKit dependency
|
|
40
|
+
versions. An install that predates the managed platform defaults carries a bundled
|
|
41
|
+
reference naming hosts that route nothing, and it requires the platform URLs the same
|
|
42
|
+
documentation calls optional. A run that reads that reference configures the runtime
|
|
43
|
+
against a dead host, and the failure arrives as an empty-body 404 with no cause named.
|
|
44
|
+
|
|
45
|
+
If any `@copilotkit/*` dependency is below 1.64.0, plan to upgrade every `@copilotkit/*`
|
|
46
|
+
dependency to its latest published version. Packages that share a version line must end
|
|
47
|
+
on the same version. Never force a package onto a version line it does not publish on.
|
|
48
|
+
Resolve each latest version at run time rather than from a remembered version number.
|
|
49
|
+
Where every `@copilotkit/*` dependency already meets that floor, plan no dependency
|
|
50
|
+
change.
|
|
51
|
+
|
|
52
|
+
Plan the upgrade as its own step before the Intelligence runtime wiring, and plan to
|
|
53
|
+
re-run the recorded baseline checks immediately after it. Name the revert: restore the
|
|
54
|
+
manifest and lockfile to their recorded state and stop, rather than wiring Intelligence
|
|
55
|
+
onto a baseline the upgrade broke.
|
|
38
56
|
|
|
39
57
|
Where the SDK requires an application-level value that the repository cannot supply, such
|
|
40
58
|
as an end-user identity for threads, use one clearly marked local placeholder and name what
|
|
@@ -27,8 +27,23 @@ for.
|
|
|
27
27
|
|
|
28
28
|
For a recorded `both-oss` baseline, preserve the existing agent, frontend, CopilotKit
|
|
29
29
|
integration, user-visible request, and runtime behavior. Do not replace the existing
|
|
30
|
-
persistence. Change only the approved project selection
|
|
31
|
-
|
|
30
|
+
persistence. Change only the approved project selection, the approved CopilotKit
|
|
31
|
+
dependency upgrade, and the Intelligence runtime wiring.
|
|
32
|
+
Run the recorded baseline checks again after the Intelligence wiring and report any
|
|
33
|
+
regression.
|
|
34
|
+
|
|
35
|
+
Apply the planned CopilotKit dependency upgrade before you wire Intelligence, as its own
|
|
36
|
+
step, and record each version it changed. Then re-run the recorded baseline checks. A
|
|
37
|
+
regression at this point can only be the upgrade, which is why it is checked here rather
|
|
38
|
+
than after the wiring.
|
|
39
|
+
|
|
40
|
+
If the baseline regresses, restore the manifest and lockfile to their recorded state,
|
|
41
|
+
leave Intelligence unwired, and report the regression with the failing check. A
|
|
42
|
+
half-upgraded project with no working chat is worse than the one this run was given, and
|
|
43
|
+
finishing the wiring on top of a broken baseline hides which change broke it.
|
|
44
|
+
|
|
45
|
+
Report each `@copilotkit/*` version before and after the upgrade. Where the plan named no
|
|
46
|
+
dependency change, say that the installed versions already met the floor.
|
|
32
47
|
|
|
33
48
|
When the documentation creates the frontend with the framework's own scaffolder,
|
|
34
49
|
run that scaffolder rather than hand-authoring what it emits.
|