copilotkit 4.23.1 → 4.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +164 -17
- package/cli-build-info.json +8 -8
- package/exporters/langgraph/README.md +33 -0
- package/exporters/langgraph/export_checkpointer.py +16 -0
- package/index.js +10909 -8245
- package/onboarding/index.json +2 -1
- package/onboarding/prompts/authenticate/start.md +50 -42
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +30 -8
- package/onboarding/prompts/credentials/plan.md +115 -49
- package/onboarding/prompts/credentials/settle-credentials.md +16 -5
- package/onboarding/prompts/credentials/write-plan.md +15 -15
- package/onboarding/prompts/deployment/choose-local.md +62 -14
- package/onboarding/prompts/deployment/local-evaluation.md +37 -7
- package/onboarding/prompts/fallback/best-effort.md +8 -8
- package/onboarding/prompts/feature/a2ui/implement.md +15 -8
- package/onboarding/prompts/feature/a2ui/plan.md +15 -7
- package/onboarding/prompts/feature/a2ui/proof.md +14 -7
- package/onboarding/prompts/feature/a2ui/start.md +26 -8
- package/onboarding/prompts/feature/channels/implement.md +21 -9
- package/onboarding/prompts/feature/channels/plan.md +15 -7
- package/onboarding/prompts/feature/channels/proof.md +14 -7
- package/onboarding/prompts/feature/channels/start.md +30 -19
- package/onboarding/prompts/feature/chat-suggestions/implement.md +15 -8
- package/onboarding/prompts/feature/chat-suggestions/plan.md +15 -7
- package/onboarding/prompts/feature/chat-suggestions/proof.md +14 -7
- package/onboarding/prompts/feature/chat-suggestions/start.md +26 -8
- package/onboarding/prompts/feature/complete.md +2 -2
- package/onboarding/prompts/feature/learning/implement.md +32 -18
- package/onboarding/prompts/feature/learning/plan.md +15 -7
- package/onboarding/prompts/feature/learning/proof.md +76 -9
- package/onboarding/prompts/feature/learning/start.md +26 -8
- package/onboarding/prompts/feature/open-generative-ui/implement.md +15 -8
- package/onboarding/prompts/feature/open-generative-ui/plan.md +15 -7
- package/onboarding/prompts/feature/open-generative-ui/proof.md +14 -7
- package/onboarding/prompts/feature/open-generative-ui/start.md +26 -8
- package/onboarding/prompts/feature/realtime-sync/implement.md +20 -12
- package/onboarding/prompts/feature/realtime-sync/plan.md +15 -7
- package/onboarding/prompts/feature/realtime-sync/proof.md +14 -7
- package/onboarding/prompts/feature/realtime-sync/start.md +25 -7
- package/onboarding/prompts/feature/rich-threads/implement.md +21 -13
- package/onboarding/prompts/feature/rich-threads/plan.md +15 -7
- package/onboarding/prompts/feature/rich-threads/proof.md +14 -7
- package/onboarding/prompts/feature/rich-threads/start.md +25 -7
- package/onboarding/prompts/feature/stop.md +9 -3
- package/onboarding/prompts/feature/voice/implement.md +15 -8
- package/onboarding/prompts/feature/voice/plan.md +16 -8
- package/onboarding/prompts/feature/voice/proof.md +14 -7
- package/onboarding/prompts/feature/voice/start.md +26 -8
- package/onboarding/prompts/framework/ag2.md +6 -5
- package/onboarding/prompts/framework/agno.md +6 -5
- package/onboarding/prompts/framework/built-in.md +9 -6
- package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
- package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
- package/onboarding/prompts/framework/crewai-flows.md +12 -4
- package/onboarding/prompts/framework/custom-ag-ui.md +8 -2
- package/onboarding/prompts/framework/deep-agents.md +6 -5
- package/onboarding/prompts/framework/google-adk.md +2 -2
- package/onboarding/prompts/framework/langgraph-fastapi.md +8 -5
- package/onboarding/prompts/framework/langgraph-python.md +8 -5
- package/onboarding/prompts/framework/langgraph-typescript.md +8 -5
- package/onboarding/prompts/framework/llamaindex.md +6 -5
- package/onboarding/prompts/framework/mastra.md +9 -6
- package/onboarding/prompts/framework/ms-agent-dotnet.md +12 -4
- package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +12 -4
- package/onboarding/prompts/framework/ms-agent-python.md +6 -5
- package/onboarding/prompts/framework/pydantic-ai.md +6 -5
- package/onboarding/prompts/framework/strands-python.md +10 -6
- package/onboarding/prompts/framework/strands-typescript.md +10 -6
- package/onboarding/prompts/frontend/angular.md +10 -3
- package/onboarding/prompts/frontend/nextjs.md +36 -3
- package/onboarding/prompts/frontend/plan.md +13 -7
- package/onboarding/prompts/frontend/react-native.md +9 -2
- package/onboarding/prompts/frontend/react-spa.md +9 -2
- package/onboarding/prompts/frontend/vue.md +9 -2
- package/onboarding/prompts/implementation/build-and-validate.md +49 -21
- package/onboarding/prompts/proof/complete.md +3 -3
- package/onboarding/prompts/proof/oss-baseline.md +30 -13
- package/onboarding/prompts/proof/round-trip.md +55 -17
- package/onboarding/prompts/research/gather.md +21 -11
- package/onboarding/prompts/research/merge.md +8 -2
- package/onboarding/prompts/research/preflight.md +2 -2
- package/onboarding/prompts/research/route.md +14 -7
- package/onboarding/prompts/starter/clone.md +151 -9
- package/onboarding/prompts/stopped/run-failed.md +8 -2
- package/onboarding/prompts/subagent/create-plan.md +9 -2
- package/onboarding/prompts/subagent/implement-and-validate.md +2 -2
- package/onboarding/prompts/subagent/inspect-repository.md +12 -6
- package/onboarding/prompts/subagent/prove-oss-baseline.md +6 -1
- package/onboarding/prompts/subagent/prove-round-trip.md +53 -10
- package/onboarding/prompts/unsupported/no-validated-path.md +8 -2
- package/package.json +1 -1
- package/release/release-tool.js +18 -1
- package/services/local-auth-worker.js +175 -159
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Preserve an existing Next.js frontend. Use the selected pages for a new frontend.
|
|
4
4
|
|
|
5
|
+
This step asks the developer nothing. If the run must wait for the developer anyway, report
|
|
6
|
+
the pause first:
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
10
|
+
```
|
|
11
|
+
|
|
5
12
|
Use the starter shortcut only if the target directory holds no project and its name is
|
|
6
13
|
a valid `init` project name. The selected framework must also match one of these options.
|
|
7
14
|
|
|
@@ -15,7 +22,7 @@ These TypeScript options have starters: Claude Agent SDK TypeScript, LangGraph T
|
|
|
15
22
|
Mastra, and Strands Agents TypeScript. The .NET option is Microsoft Agent Framework .NET.
|
|
16
23
|
|
|
17
24
|
If all shortcut conditions are true, record Next.js as the selected frontend. Then run
|
|
18
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
25
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read starter/clone` before you fetch documentation.
|
|
19
26
|
|
|
20
27
|
## Documentation
|
|
21
28
|
|
|
@@ -39,8 +46,34 @@ developer's work.
|
|
|
39
46
|
- For an existing frontend, do not change `next.config.ts` for this.
|
|
40
47
|
- Do not claim, revert, or delete these files. Name them in the report as Next.js output.
|
|
41
48
|
|
|
49
|
+
## Lockfile in a parent folder
|
|
50
|
+
|
|
51
|
+
Next.js 16 uses the highest folder with a lockfile as the workspace root. If a parent
|
|
52
|
+
folder holds a lockfile, Next.js takes that folder as the root. It then resolves packages
|
|
53
|
+
and traces output from the wrong folder. `next dev` and `next build` print this warning:
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
Warning: Next.js inferred your workspace root, but it may not be correct.
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
If you see the warning, read the lockfile paths that it lists. If the parent folder is a
|
|
60
|
+
workspace that lists this app, do not set the root. Next.js chose the correct folder.
|
|
61
|
+
Otherwise, set the root to the app folder in `next.config.ts`:
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
import { fileURLToPath } from 'node:url';
|
|
65
|
+
|
|
66
|
+
const nextConfig = {
|
|
67
|
+
turbopack: { root: fileURLToPath(new URL('.', import.meta.url)) },
|
|
68
|
+
};
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
In a CommonJS `next.config.js`, use `turbopack: { root: __dirname }` instead. This value
|
|
72
|
+
also sets `outputFileTracingRoot`. Do not set `outputFileTracingRoot` to a
|
|
73
|
+
different folder. For an existing frontend, name this change in the report.
|
|
74
|
+
|
|
42
75
|
If the page supports the selection, record Next.js and this URL. Then run
|
|
43
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
76
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read credentials/finalize-plan`.
|
|
44
77
|
|
|
45
78
|
If the documentation does not support the selection, run
|
|
46
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
79
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read unsupported/no-validated-path`.
|
|
@@ -27,6 +27,12 @@ If the project has a frontend, preserve it and use the matching route below. If
|
|
|
27
27
|
needs a frontend, show the valid choices and one recommendation based on repository
|
|
28
28
|
evidence, then ask the developer to choose.
|
|
29
29
|
|
|
30
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
34
|
+
```
|
|
35
|
+
|
|
30
36
|
The valid choices are React SPA, Next.js, Angular, Vue 3, React Native, Slack, and
|
|
31
37
|
Microsoft Teams. They are valid in every starting state. Route names are this graph's own
|
|
32
38
|
bookkeeping. Say what the run is doing in the developer's words instead.
|
|
@@ -37,15 +43,15 @@ CopilotKit web apps. Then recommend the one the developer names, and say what ea
|
|
|
37
43
|
|
|
38
44
|
Use exactly one matching internal route:
|
|
39
45
|
|
|
40
|
-
1. React SPA: `npx --prefer-offline --yes copilotkit@4.
|
|
41
|
-
2. Next.js: `npx --prefer-offline --yes copilotkit@4.
|
|
42
|
-
3. Angular: `npx --prefer-offline --yes copilotkit@4.
|
|
43
|
-
4. Vue 3: `npx --prefer-offline --yes copilotkit@4.
|
|
44
|
-
5. React Native: `npx --prefer-offline --yes copilotkit@4.
|
|
45
|
-
6. Slack or Microsoft Teams: `npx --prefer-offline --yes copilotkit@4.
|
|
46
|
+
1. React SPA: `npx --prefer-offline --yes copilotkit@4.25.0 onboard read frontend/react-spa`
|
|
47
|
+
2. Next.js: `npx --prefer-offline --yes copilotkit@4.25.0 onboard read frontend/nextjs`
|
|
48
|
+
3. Angular: `npx --prefer-offline --yes copilotkit@4.25.0 onboard read frontend/angular`
|
|
49
|
+
4. Vue 3: `npx --prefer-offline --yes copilotkit@4.25.0 onboard read frontend/vue`
|
|
50
|
+
5. React Native: `npx --prefer-offline --yes copilotkit@4.25.0 onboard read frontend/react-native`
|
|
51
|
+
6. Slack or Microsoft Teams: `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/channels/start`
|
|
46
52
|
|
|
47
53
|
If they chose Slack or Microsoft Teams, tell that node which one they chose so it
|
|
48
54
|
does not ask again.
|
|
49
55
|
|
|
50
56
|
If no listed frontend fits, run
|
|
51
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
57
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read unsupported/no-validated-path`.
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Preserve an existing React Native frontend. Use the selected page for a new frontend.
|
|
4
4
|
|
|
5
|
+
This step asks the developer nothing. If the run must wait for the developer anyway, report
|
|
6
|
+
the pause first:
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
10
|
+
```
|
|
11
|
+
|
|
5
12
|
React Native has no starter. For a target directory that holds no project, build the new
|
|
6
13
|
frontend from the documentation below.
|
|
7
14
|
|
|
@@ -18,7 +25,7 @@ documents `useRenderTool`, which is React Native's own hook for drawing a tool t
|
|
|
18
25
|
already has. That is a different job and needs a tool in the agent.
|
|
19
26
|
|
|
20
27
|
If the pages support the selection, record React Native and these URLs. Then run
|
|
21
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
28
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read credentials/finalize-plan`.
|
|
22
29
|
|
|
23
30
|
If the documentation does not support the selection, run
|
|
24
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
31
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read unsupported/no-validated-path`.
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Preserve an existing React SPA. Use the selected page for a new frontend.
|
|
4
4
|
|
|
5
|
+
This step asks the developer nothing. If the run must wait for the developer anyway, report
|
|
6
|
+
the pause first:
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
10
|
+
```
|
|
11
|
+
|
|
5
12
|
React SPA has no starter. For a target directory that holds no project, build the new
|
|
6
13
|
frontend from the documentation below.
|
|
7
14
|
|
|
@@ -14,7 +21,7 @@ not move the agent into it.
|
|
|
14
21
|
- https://docs.copilotkit.ai/react-spa.md
|
|
15
22
|
|
|
16
23
|
If the page supports the selection, record React SPA and this URL. Then run
|
|
17
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
24
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read credentials/finalize-plan`.
|
|
18
25
|
|
|
19
26
|
If the documentation does not support the selection, run
|
|
20
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
27
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read unsupported/no-validated-path`.
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Preserve an existing Vue 3 frontend. Use the selected page for a new frontend.
|
|
4
4
|
|
|
5
|
+
This step asks the developer nothing. If the run must wait for the developer anyway, report
|
|
6
|
+
the pause first:
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
10
|
+
```
|
|
11
|
+
|
|
5
12
|
Vue 3 has no starter. For a target directory that holds no project, build the new
|
|
6
13
|
frontend from the documentation below.
|
|
7
14
|
|
|
@@ -19,7 +26,7 @@ page above. Vue has its own `useComponent`, which is not the React package. Take
|
|
|
19
26
|
that reference page rather than from a Vue generative-UI guide, which is not published.
|
|
20
27
|
|
|
21
28
|
If the pages support the selection, record Vue 3 and these URLs. Then run
|
|
22
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
29
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read credentials/finalize-plan`.
|
|
23
30
|
|
|
24
31
|
If the documentation does not support the selection, run
|
|
25
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
32
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read unsupported/no-validated-path`.
|
|
@@ -12,7 +12,7 @@ acted on. Send one short report before you stop. The friction command follows th
|
|
|
12
12
|
setting the developer already chose, so it needs no separate question.
|
|
13
13
|
|
|
14
14
|
```text
|
|
15
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
15
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
@@ -49,6 +49,13 @@ spawn a fresh implementation subagent with the same handoff. Add that file to th
|
|
|
49
49
|
as a path the developer approved, and record it as a departure. If you cannot ask, or the
|
|
50
50
|
developer declines, the failure ending in the route-out rules below applies.
|
|
51
51
|
|
|
52
|
+
This prompt pauses for the developer in several places. Before you end your turn to wait
|
|
53
|
+
for the developer, report the pause:
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
57
|
+
```
|
|
58
|
+
|
|
52
59
|
The existing agent's behavior is never a departure to record and carry on from. It is four
|
|
53
60
|
things: its system prompt and instructions, its tools and what those tools do, its model
|
|
54
61
|
and provider configuration, and its memory or state handling. Repair a failing check on
|
|
@@ -60,6 +67,12 @@ change is a behavior change, and the closing report names it as one. Never call
|
|
|
60
67
|
to the agent's instructions or tools a repair. If you cannot ask, or the developer
|
|
61
68
|
declines, use the route-out rules below.
|
|
62
69
|
|
|
70
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
74
|
+
```
|
|
75
|
+
|
|
63
76
|
## Authorization requested by the plan
|
|
64
77
|
|
|
65
78
|
Approving the plan is the developer agreeing to every path it listed under
|
|
@@ -67,7 +80,7 @@ Approving the plan is the developer agreeing to every path it listed under
|
|
|
67
80
|
app directory:
|
|
68
81
|
|
|
69
82
|
```text
|
|
70
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
83
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
|
|
71
84
|
```
|
|
72
85
|
|
|
73
86
|
Consent has to be on the record before the file moves, so a call made after the change is
|
|
@@ -75,8 +88,10 @@ refused. Continue only if every result starts with `Status: passed`. If the plan
|
|
|
75
88
|
nothing there, skip this section.
|
|
76
89
|
|
|
77
90
|
Do not authorize a path the plan lists under `Files the run writes itself`. The CLI refuses
|
|
78
|
-
`--authorize` for `.env` and `.copilotkit/project.json`, because this run writes them.
|
|
79
|
-
copied model key is recorded
|
|
91
|
+
`--authorize` for `.env` and `.copilotkit/project.json`, because this run writes them.
|
|
92
|
+
A copied model key is recorded by the command that copied it.
|
|
93
|
+
`onboard credentials --copy-to` protects the file it writes. Record a key that the run
|
|
94
|
+
copied another way with `--accept-credential`, after the copy.
|
|
80
95
|
|
|
81
96
|
The implementation subagent cannot change a protected path unless it has the authorized
|
|
82
97
|
list. Take that list from the CLI rather than from the plan: run `onboard audit` after the
|
|
@@ -99,7 +114,7 @@ No implementation step has run yet, so the change is theirs rather than this run
|
|
|
99
114
|
consent over it by adding one flag:
|
|
100
115
|
|
|
101
116
|
```text
|
|
102
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
117
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>" --with-prior-change
|
|
103
118
|
```
|
|
104
119
|
|
|
105
120
|
The flag records their change as drift beside the consent, so the closing report names both
|
|
@@ -114,12 +129,18 @@ to record for a path that comes up later. If you find such a path mid-run, ask t
|
|
|
114
129
|
developer and record their answer with `--authorize --unplanned`, as the protected-path
|
|
115
130
|
audit below describes, rather than use this section.
|
|
116
131
|
|
|
132
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
133
|
+
|
|
134
|
+
```text
|
|
135
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
136
|
+
```
|
|
137
|
+
|
|
117
138
|
## Protected-path audit
|
|
118
139
|
|
|
119
140
|
Run the audit from the target app directory:
|
|
120
141
|
|
|
121
142
|
```text
|
|
122
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
143
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard audit
|
|
123
144
|
```
|
|
124
145
|
|
|
125
146
|
It compares every protected path with the digest the CLI captured for it. Its result starts
|
|
@@ -154,14 +175,14 @@ A path that no Files changed section names changed outside the run, and it is th
|
|
|
154
175
|
developer's own file. Accept it by name:
|
|
155
176
|
|
|
156
177
|
```text
|
|
157
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
178
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --accept-external --path <path>
|
|
158
179
|
```
|
|
159
180
|
|
|
160
181
|
A changed env file is its own case. This run asked the developer to place a credential
|
|
161
182
|
there, so it takes the credential route rather than this one:
|
|
162
183
|
|
|
163
184
|
```text
|
|
164
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
185
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --accept-credential --path <path>
|
|
165
186
|
```
|
|
166
187
|
|
|
167
188
|
That route proves no recorded credential was lost, instead of taking the run's word that it
|
|
@@ -177,10 +198,16 @@ The prohibition on repairing a protected path holds wherever the path comes up,
|
|
|
177
198
|
here. A failing check is the usual way it comes up: the diagnosis lands on a file, and the
|
|
178
199
|
file turns out to be protected. A correct diagnosis does not make the file this run's, and
|
|
179
200
|
neither does a one-line fix. Never repair, reset, or revert it. Ask the developer to allow
|
|
180
|
-
the change
|
|
201
|
+
the change. Before you end your turn to wait for the developer, report the pause:
|
|
202
|
+
|
|
203
|
+
```text
|
|
204
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Record the answer they give:
|
|
181
208
|
|
|
182
209
|
```text
|
|
183
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
210
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
184
211
|
```
|
|
185
212
|
|
|
186
213
|
Use it only for an answer a developer actually gave. It records the consent as taken
|
|
@@ -215,7 +242,7 @@ directory. The developer approved the id before it was made, so this is the firs
|
|
|
215
242
|
which it can be created:
|
|
216
243
|
|
|
217
244
|
```text
|
|
218
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
245
|
+
npx --prefer-offline --yes copilotkit@4.25.0 learning containers create --id <id> --name <name> --json
|
|
219
246
|
```
|
|
220
247
|
|
|
221
248
|
Pass the id the plan names. Take the name from the selected project's own display name, so
|
|
@@ -232,16 +259,17 @@ plan names no container, skip this section.
|
|
|
232
259
|
## Implement the plan
|
|
233
260
|
|
|
234
261
|
Spawn one implementation subagent. Tell it to run
|
|
235
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
236
|
-
the prompt it returns.
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
262
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read subagent/implement-and-validate` first and
|
|
263
|
+
follow the prompt it returns. Tell it to return at once, and say so, if that read is refused
|
|
264
|
+
or fails, and not to wait for an approval. If it returns that way, stop that subagent. Run
|
|
265
|
+
the same command yourself, then spawn a fresh subagent with the returned prompt and the same
|
|
266
|
+
handoff. Give it the plan, selected framework, frontend, model, exact target app directory,
|
|
267
|
+
selected documentation URLs, and the
|
|
240
268
|
documentation policy recorded during framework selection or conversion planning. On a
|
|
241
269
|
conversion, also give it the frozen criterion. Give it the protected path list and the
|
|
242
270
|
authorized list. Give it the developer's answer on the Skills install, so that it runs an
|
|
243
|
-
approved install and skips a declined one. Require it
|
|
244
|
-
|
|
271
|
+
approved install and skips a declined one. Require it to implement every step in plan order
|
|
272
|
+
and run the full validation list. Wait for it.
|
|
245
273
|
|
|
246
274
|
One subagent implements the whole plan. Do not divide the work across concurrent subagents,
|
|
247
275
|
and do not spawn a second subagent to reconcile a split.
|
|
@@ -260,7 +288,7 @@ names the same way as above, against the Files changed section that subagent jus
|
|
|
260
288
|
returned. Continue to proof only when that audit passes.
|
|
261
289
|
|
|
262
290
|
Then run
|
|
263
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
291
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read proof/round-trip`.
|
|
264
292
|
|
|
265
293
|
## Repair rules
|
|
266
294
|
|
|
@@ -286,9 +314,9 @@ the same command still fails after three repair attempts, a result starts with
|
|
|
286
314
|
declined a file the plan does not name, or the run cannot ask them about it. A defect in a
|
|
287
315
|
package this run installed is not a stack CopilotKit does not serve, a command this run cannot get to pass is not one either, and a blocked audit
|
|
288
316
|
proved nothing about the stack. In those cases run
|
|
289
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
317
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read stopped/run-failed`.
|
|
290
318
|
|
|
291
319
|
A plan with no path to follow takes the unsupported ending: the fix requires changing the
|
|
292
320
|
developer's existing agent or frontend, or the documentation does not support the plan. In
|
|
293
321
|
those cases run
|
|
294
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
322
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read unsupported/no-validated-path`.
|
|
@@ -24,7 +24,7 @@ friction commands follow the telemetry setting the developer already chose, so t
|
|
|
24
24
|
separate question.
|
|
25
25
|
|
|
26
26
|
```text
|
|
27
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
27
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
Put one or two sentences in `--message`. Pick one category from docs-missing, docs-wrong,
|
|
@@ -46,7 +46,7 @@ Pass the surface-check outcome the proof subagent returned, not the one you want
|
|
|
46
46
|
web frontend, pass `--visual-check` and the URL the browser opened, unchanged:
|
|
47
47
|
|
|
48
48
|
```text
|
|
49
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
49
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard complete --visual-check <outcome> \
|
|
50
50
|
--frontend-url <the url you opened>
|
|
51
51
|
```
|
|
52
52
|
|
|
@@ -74,7 +74,7 @@ this graph opens.
|
|
|
74
74
|
nothing drove the frontend:
|
|
75
75
|
|
|
76
76
|
```text
|
|
77
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
77
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard complete --visual-check failed --blocked-by browser-control-unresponsive
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
## Write the handoff
|
|
@@ -1,10 +1,11 @@
|
|
|
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 --prefer-offline --yes copilotkit@4.
|
|
5
|
-
prompt it returns.
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read subagent/prove-oss-baseline` first and follow
|
|
5
|
+
the prompt it returns. Tell it to return at once, and say so, if that read is refused or
|
|
6
|
+
fails, and not to wait for an approval. If it returns that way, stop that subagent. Run the
|
|
7
|
+
same command yourself, then spawn a fresh subagent with the returned prompt and the same
|
|
8
|
+
handoff. Give it the repository findings and exact CLI package spec.
|
|
8
9
|
|
|
9
10
|
Give it the browser or device control you recorded in the preflight as well. The subagent
|
|
10
11
|
proves the runtime from a shell and needs no browser for that. The control is for the one
|
|
@@ -17,7 +18,7 @@ Wait for the subagent to finish.
|
|
|
17
18
|
Record what that proof returned before you route on it:
|
|
18
19
|
|
|
19
20
|
```text
|
|
20
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
21
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard proof --step oss-baseline --outcome <passed|failed|skipped> [--predicate <1-6>]
|
|
21
22
|
```
|
|
22
23
|
|
|
23
24
|
Report the gate whatever it returned. Use the list below. A proof that never ran is `skipped`, not failed. The command prints one line and sends
|
|
@@ -39,14 +40,27 @@ Do not change project files before this proof ends. Starting existing developmen
|
|
|
39
40
|
processes and their ignored runtime files is allowed.
|
|
40
41
|
|
|
41
42
|
If the subagent proves the `both-oss` predicate, keep its evidence with the plan and run
|
|
42
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
43
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read conversion/plan`. That project already works.
|
|
43
44
|
What it needs is the conversion, not a build.
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
A failed baseline does not end the run, and this step does not repair it. Decide which
|
|
47
|
+
kind of failure it is before you route, the way `proof/round-trip` does.
|
|
48
|
+
|
|
49
|
+
An operational failure says nothing about the project: a project-owned process or port, a
|
|
50
|
+
request option, or a sandbox that blocked a local request. Spawn a fresh proof subagent
|
|
51
|
+
with the same handoff and the failure evidence, and record each attempt as it ends. Run
|
|
52
|
+
the proof at most three times in total. Never edit a project file to make the baseline
|
|
53
|
+
pass. This proof only reads.
|
|
54
|
+
|
|
55
|
+
A failed baseline whose cause is in the project is the starting state of this project. So
|
|
56
|
+
is an operational failure still there after the third attempt. Record the starting state
|
|
46
57
|
`both-copilotkit-unproved` and run
|
|
47
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
58
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read credentials/plan`. This prompt is served
|
|
48
59
|
whenever a project looks like an OSS integration, so a baseline that did not prove is an
|
|
49
|
-
ordinary starting state rather than a failure.
|
|
60
|
+
ordinary starting state rather than a failure. The build that follows fixes the
|
|
61
|
+
integration, and `proof/round-trip` proves the result, with its own bounded repair cycle.
|
|
62
|
+
Keep the failing predicate and the check the subagent named with the plan, and tell the
|
|
63
|
+
developer that the existing integration did not prove before you ask for plan approval.
|
|
50
64
|
|
|
51
65
|
Do not record a state that says the CopilotKit integration is absent. This prompt is
|
|
52
66
|
reached only when the merged findings prove that the integration is there, so `both` is
|
|
@@ -56,7 +70,10 @@ Where the proof fails predicate 3, the live runtime already holds an Intelligenc
|
|
|
56
70
|
client. Say so in the plan. Part of the work this run exists for is in place already,
|
|
57
71
|
and the plan preserves it rather than repeating it.
|
|
58
72
|
|
|
59
|
-
If
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
73
|
+
If you cannot tell whether the cause is operational or in the project, treat it as
|
|
74
|
+
operational. Run the proof again, three times in total, then record the starting state
|
|
75
|
+
above and go on. Both causes lead to the same plan.
|
|
76
|
+
|
|
77
|
+
If the proof cannot identify the running process safely, or it exposes a secret, run
|
|
78
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read stopped/run-failed`. Neither means the
|
|
79
|
+
project is unsupported: each means this run did not establish what it needed to.
|
|
@@ -1,14 +1,15 @@
|
|
|
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 --prefer-offline --yes copilotkit@4.
|
|
5
|
-
prompt it returns.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read subagent/prove-round-trip` first and follow the
|
|
5
|
+
prompt it returns. Tell it to return at once, and say so, if that read is refused or fails,
|
|
6
|
+
and not to wait for an approval. If it returns that way, stop that subagent. Run the same
|
|
7
|
+
command yourself, then spawn a fresh subagent with the returned prompt and the same handoff.
|
|
8
|
+
Give it the selected framework, frontend, model, approved plan, selected documentation URLs,
|
|
9
|
+
and validation evidence. Give it the documentation policy recorded during framework
|
|
10
|
+
selection or conversion planning. On a conversion, also give it the frozen criterion. Give
|
|
11
|
+
it the protected path list. Give it the developer's answer on the Skills install and the
|
|
12
|
+
Skills result the implementation returned.
|
|
12
13
|
|
|
13
14
|
Give it the frontend files that publish the page context and register the tools, by path,
|
|
14
15
|
from the Files changed sections the implementation returned. The subagent sends what those
|
|
@@ -40,7 +41,7 @@ pass the time.
|
|
|
40
41
|
Record what that proof returned before you route on it:
|
|
41
42
|
|
|
42
43
|
```text
|
|
43
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
44
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
44
45
|
```
|
|
45
46
|
|
|
46
47
|
Report the gate whatever it returned. A proof that never ran is `skipped`, not failed. A
|
|
@@ -49,7 +50,7 @@ to record it as `skipped`. The command prints one line and sends nothing else. W
|
|
|
49
50
|
record each attempt as it ends.
|
|
50
51
|
|
|
51
52
|
For every protected-path audit in this prompt, run
|
|
52
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
53
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard audit` from the target app directory. If its result
|
|
53
54
|
starts with `Status: blocked`, report the printed reason and use the route-out rules below.
|
|
54
55
|
A blocked audit proved nothing changed and is not a preservation failure. If a
|
|
55
56
|
protected-path audit reports a changed path, decide it the way the implementation prompt
|
|
@@ -58,7 +59,7 @@ returns none, so a finding with no Files changed section to test against routes
|
|
|
58
59
|
path one of those sections names is this run's own change and routes out too. Accept a
|
|
59
60
|
path only when a section this run collected covers the step that wrote it and does not
|
|
60
61
|
name it:
|
|
61
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
62
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --accept-external --path <path>`. Then run
|
|
62
63
|
the audit again and name the path in the closing summary. Never repair, reset, or revert a
|
|
63
64
|
protected path.
|
|
64
65
|
|
|
@@ -66,12 +67,19 @@ That holds for a repair cycle too. When the fix for a failing check lands on a p
|
|
|
66
67
|
path, the path is still the developer's, however right the diagnosis is and however small
|
|
67
68
|
the fix. Reading the file never settles who wrote it. Ask the developer to allow the
|
|
68
69
|
change, and record their answer with
|
|
69
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
70
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"`,
|
|
70
71
|
or route out. Never repair it, and never send it to a repair worker.
|
|
71
72
|
|
|
73
|
+
This prompt pauses for the developer in several places. Before you end your turn to wait
|
|
74
|
+
for the developer, report the pause:
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
78
|
+
```
|
|
79
|
+
|
|
72
80
|
If the proof result starts with `Status: passed`, run the protected-path audit. Continue to
|
|
73
81
|
`proof/complete` only if that audit passes. After the audit passes, run
|
|
74
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
82
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read proof/complete`. A performed surface outcome with
|
|
75
83
|
the full round trip is core success even if a continued-development tool fails. A skipped
|
|
76
84
|
surface outcome still enters `proof/complete`. The CLI records `skipped-cloned-starter` and
|
|
77
85
|
`skipped-no-browser-tool` after a passed round trip as complete, and `skipped-no-device` as
|
|
@@ -93,6 +101,15 @@ not for a journey that worked and then hit a wall: routing a proved run there te
|
|
|
93
101
|
developer that a framework and frontend that just worked are unsupported, and hands them a
|
|
94
102
|
stop report instead of the application they now have.
|
|
95
103
|
|
|
104
|
+
If the proof returns a `model-key` failure, it is not a defect in the new work. The
|
|
105
|
+
credentials step found the model key missing, or the vendor refused it, and the proof
|
|
106
|
+
started nothing. Do not send it to a repair worker. Run the `onboard credentials` command
|
|
107
|
+
that its detail names, and act on its answer as `credentials/settle-credentials` says. Ask
|
|
108
|
+
the developer its question, report the pause with
|
|
109
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-model-credential`, and
|
|
110
|
+
end your turn. When the key settles, run the proof subagent again. This attempt does not
|
|
111
|
+
count toward the three.
|
|
112
|
+
|
|
96
113
|
If the round trip fails, decide which kind of failure it is before you route. The proof
|
|
97
114
|
subagent can repair only project-owned processes, ports, and request options, and it can
|
|
98
115
|
run the credential command that `verify:api_key_loadable_by_app` names. A failure caused
|
|
@@ -103,7 +120,21 @@ Retry the proof subagent only for a project-owned process, port, request-option,
|
|
|
103
120
|
Give it the failure evidence and the failed attempt's pinned Step 1 record. Wait for the
|
|
104
121
|
proof subagent after each operational repair.
|
|
105
122
|
If the result passes, use the passed-result route above. Run the proof at most three times
|
|
106
|
-
in total. Use the route-out rules below for a
|
|
123
|
+
in total. Use the route-out rules below for a third failed result, and for a blocked result
|
|
124
|
+
other than the one in the next paragraph.
|
|
125
|
+
|
|
126
|
+
A proof result can start with `Status: blocked` on `round-trip:agent_answers`: the app
|
|
127
|
+
refused the run the check started, because it reads a session or runs only threads it
|
|
128
|
+
created, and the subagent cannot send a message in the app itself. The app is not at
|
|
129
|
+
fault, so this is not a route-out. Ask the developer to send one message in the app on a new
|
|
130
|
+
thread, and to give you that thread's id. Give them the app URL and the request words from
|
|
131
|
+
the result. Tell them where the id is: in the browser's network tools, the request the page
|
|
132
|
+
sends to the runtime URL carries `threadId` in its body. Report the pause with
|
|
133
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer` and end your
|
|
134
|
+
turn. When the developer gives the id, start a new proof subagent with
|
|
135
|
+
the full original proof handoff, the pinned Step 1 record, and the thread id. Tell it to run
|
|
136
|
+
the proof checks with `--thread <id>`. This attempt does not count toward the three. Use the
|
|
137
|
+
route-out rules below only when the developer declines or cannot give an id.
|
|
107
138
|
|
|
108
139
|
Enter the code-repair branch only for a source, configuration, dependency, or tracked-file
|
|
109
140
|
defect.
|
|
@@ -148,6 +179,12 @@ first. Then spawn a fresh repair worker with this repair handoff, not the whole-
|
|
|
148
179
|
implementation handoff: the plan, the proof evidence, the protected path list, the
|
|
149
180
|
authorized list from that audit, and the developer's answer on the Skills install.
|
|
150
181
|
|
|
182
|
+
Before you end your turn to wait for the developer, report the pause:
|
|
183
|
+
|
|
184
|
+
```text
|
|
185
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
|
|
186
|
+
```
|
|
187
|
+
|
|
151
188
|
Run the protected-path audit again after validation passes. Continue only if its result
|
|
152
189
|
starts with `Status: passed`.
|
|
153
190
|
|
|
@@ -162,11 +199,12 @@ Wait for the fresh proof subagent to finish.
|
|
|
162
199
|
If the fresh proof result starts with `Status: passed`, run the protected-path audit and use
|
|
163
200
|
the passed-result route above. If it starts with `Status: failed`, begin the next bounded
|
|
164
201
|
repair cycle. Use the route-out rules below for `Status: blocked`. After three repair and
|
|
165
|
-
proof cycles, use the route-out rules below.
|
|
202
|
+
proof cycles, use the route-out rules below. A blocked result that asks for a thread id
|
|
203
|
+
takes the developer path above instead.
|
|
166
204
|
|
|
167
205
|
Route out only when the failure is not yours to fix, when the same proof still fails after
|
|
168
206
|
three attempts, or when no evidence of the round trip can be produced. In those cases run
|
|
169
|
-
`npx --prefer-offline --yes copilotkit@4.
|
|
207
|
+
`npx --prefer-offline --yes copilotkit@4.25.0 onboard read stopped/run-failed`. The stack is supported:
|
|
170
208
|
this run did not finish, which is a different ending and a different report. All three are
|
|
171
209
|
about the round trip itself. A round trip that proved is not one of them, whatever failed
|
|
172
210
|
after it.
|
|
@@ -177,7 +215,7 @@ friction command follows the telemetry setting the developer already chose, so i
|
|
|
177
215
|
separate question.
|
|
178
216
|
|
|
179
217
|
```text
|
|
180
|
-
npx --prefer-offline --yes copilotkit@4.
|
|
218
|
+
npx --prefer-offline --yes copilotkit@4.25.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
181
219
|
```
|
|
182
220
|
|
|
183
221
|
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|