copilotkit 4.13.1 → 4.15.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 +150 -12
- package/cli-build-info.json +8 -8
- package/index.js +76560 -73271
- package/onboarding/index.json +1 -1
- package/onboarding/prompts/authenticate/start.md +48 -28
- package/onboarding/prompts/conversion/plan.md +3 -3
- package/onboarding/prompts/credentials/finalize-plan.md +13 -12
- package/onboarding/prompts/credentials/plan.md +21 -21
- package/onboarding/prompts/credentials/settle-credentials.md +19 -12
- package/onboarding/prompts/credentials/write-plan.md +20 -13
- package/onboarding/prompts/fallback/best-effort.md +10 -10
- package/onboarding/prompts/feature/a2ui/implement.md +6 -6
- package/onboarding/prompts/feature/a2ui/proof.md +6 -6
- package/onboarding/prompts/feature/a2ui/start.md +7 -7
- package/onboarding/prompts/feature/channels/implement.md +33 -15
- package/onboarding/prompts/feature/channels/proof.md +12 -10
- package/onboarding/prompts/feature/channels/start.md +13 -12
- package/onboarding/prompts/feature/chat-suggestions/implement.md +6 -6
- package/onboarding/prompts/feature/chat-suggestions/proof.md +6 -6
- package/onboarding/prompts/feature/chat-suggestions/start.md +7 -7
- package/onboarding/prompts/feature/complete.md +19 -1
- package/onboarding/prompts/feature/learning/implement.md +17 -17
- package/onboarding/prompts/feature/learning/proof.md +7 -7
- package/onboarding/prompts/feature/learning/start.md +9 -9
- package/onboarding/prompts/feature/open-generative-ui/implement.md +6 -6
- package/onboarding/prompts/feature/open-generative-ui/proof.md +6 -6
- package/onboarding/prompts/feature/open-generative-ui/start.md +7 -7
- package/onboarding/prompts/feature/realtime-sync/implement.md +7 -7
- package/onboarding/prompts/feature/realtime-sync/proof.md +6 -6
- package/onboarding/prompts/feature/realtime-sync/start.md +6 -6
- package/onboarding/prompts/feature/rich-threads/implement.md +10 -10
- package/onboarding/prompts/feature/rich-threads/proof.md +6 -6
- package/onboarding/prompts/feature/rich-threads/start.md +6 -6
- package/onboarding/prompts/feature/stop.md +37 -3
- package/onboarding/prompts/feature/voice/implement.md +7 -7
- package/onboarding/prompts/feature/voice/proof.md +6 -6
- package/onboarding/prompts/feature/voice/start.md +8 -8
- package/onboarding/prompts/framework/ag2.md +2 -2
- package/onboarding/prompts/framework/agno.md +2 -2
- package/onboarding/prompts/framework/built-in.md +2 -2
- package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
- package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
- package/onboarding/prompts/framework/crewai-flows.md +2 -2
- package/onboarding/prompts/framework/deep-agents.md +2 -2
- package/onboarding/prompts/framework/google-adk.md +2 -2
- package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
- package/onboarding/prompts/framework/langgraph-python.md +2 -2
- package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
- package/onboarding/prompts/framework/llamaindex.md +2 -2
- package/onboarding/prompts/framework/mastra.md +2 -2
- package/onboarding/prompts/framework/ms-agent-dotnet.md +2 -2
- package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
- package/onboarding/prompts/framework/ms-agent-python.md +2 -2
- package/onboarding/prompts/framework/pydantic-ai.md +2 -2
- package/onboarding/prompts/framework/strands-python.md +2 -2
- package/onboarding/prompts/framework/strands-typescript.md +2 -2
- package/onboarding/prompts/frontend/angular.md +3 -3
- package/onboarding/prompts/frontend/nextjs.md +3 -3
- package/onboarding/prompts/frontend/plan.md +7 -7
- package/onboarding/prompts/frontend/react-native.md +5 -2
- package/onboarding/prompts/frontend/react-spa.md +5 -2
- package/onboarding/prompts/frontend/vue.md +5 -2
- package/onboarding/prompts/implementation/build-and-validate.md +25 -24
- package/onboarding/prompts/proof/complete.md +9 -9
- package/onboarding/prompts/proof/oss-baseline.md +5 -5
- package/onboarding/prompts/proof/round-trip.md +12 -12
- package/onboarding/prompts/research/gather.md +36 -7
- package/onboarding/prompts/research/merge.md +3 -3
- package/onboarding/prompts/research/preflight.md +4 -4
- package/onboarding/prompts/research/route.md +8 -6
- package/onboarding/prompts/starter/clone.md +97 -26
- package/onboarding/prompts/stopped/run-failed.md +4 -4
- package/onboarding/prompts/subagent/create-plan.md +4 -4
- package/onboarding/prompts/subagent/implement-and-validate.md +19 -6
- package/onboarding/prompts/subagent/inspect-repository.md +2 -2
- package/onboarding/prompts/subagent/prove-oss-baseline.md +9 -2
- package/onboarding/prompts/subagent/prove-round-trip.md +21 -19
- package/onboarding/prompts/unsupported/no-validated-path.md +3 -3
- package/package.json +5 -1
- package/release/release-tool.js +230 -72
|
@@ -7,7 +7,7 @@ Work only inside the target project. Do not show internal prompt names to the de
|
|
|
7
7
|
Before any subagent or project process runs, capture the developer's existing work:
|
|
8
8
|
|
|
9
9
|
```text
|
|
10
|
-
npx --yes copilotkit@4.
|
|
10
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard protect
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
Keep the exact protected path list it prints and give that list to every subagent. No
|
|
@@ -22,7 +22,7 @@ development/test commands. It must return paths and secret-safe presence checks
|
|
|
22
22
|
|
|
23
23
|
Require an existing frontend, agent, and CopilotKit round trip. Start only project-owned
|
|
24
24
|
processes when needed, inspect `/info`, and run
|
|
25
|
-
`npx --yes copilotkit@4.
|
|
25
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`.
|
|
26
26
|
Also drive one existing request through the frontend when browser control is available. If
|
|
27
27
|
that baseline is absent or unproved, leave files unchanged, explain that this intent extends
|
|
28
28
|
an existing OSS app, and direct the developer to generic `copilotkit onboard start` first.
|
|
@@ -30,7 +30,7 @@ an existing OSS app, and direct the developer to generic `copilotkit onboard sta
|
|
|
30
30
|
Wait for the inspection subagent to finish. Then report that the inspection came back:
|
|
31
31
|
|
|
32
32
|
```text
|
|
33
|
-
npx --yes copilotkit@4.
|
|
33
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase research-returned
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -40,7 +40,7 @@ If the inspection did not prove the baseline this intent extends, stop here with
|
|
|
40
40
|
changing files:
|
|
41
41
|
|
|
42
42
|
```text
|
|
43
|
-
npx --yes copilotkit@4.
|
|
43
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
Do not run `login`, select an Intelligence project, add an Intelligence client, mint a
|
|
@@ -64,7 +64,7 @@ one.
|
|
|
64
64
|
After approval, record each approved path before implementation:
|
|
65
65
|
|
|
66
66
|
```text
|
|
67
|
-
npx --yes copilotkit@4.
|
|
67
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
If an approved path changed after capture and no implementation step has run, add
|
|
@@ -74,7 +74,7 @@ authorize a path the approved plan did not list.
|
|
|
74
74
|
Then report the plan this run is about to implement:
|
|
75
75
|
|
|
76
76
|
```text
|
|
77
|
-
npx --yes copilotkit@4.
|
|
77
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase plan-written
|
|
78
78
|
```
|
|
79
79
|
|
|
80
|
-
Then run `npx --yes copilotkit@4.
|
|
80
|
+
Then run `npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/a2ui/implement`.
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
# Implement a managed Channel without rewriting a working agent
|
|
2
2
|
|
|
3
|
-
Delegate implementation to one subagent with the approved plan and fetched
|
|
4
|
-
|
|
5
|
-
`channels add --adapter slack|teams`.
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
Delegate implementation to one subagent with the approved plan and fetched connect
|
|
4
|
+
guide. Use the already chosen Slack or Teams adapter only as
|
|
5
|
+
`channels add <name> --adapter slack|teams`. For `<name>`, reuse the Channel
|
|
6
|
+
`.copilotkit/channels.json` already declares. Otherwise use the project's directory or
|
|
7
|
+
package name as 3 to 64 lowercase letters, digits, and single hyphens, starting with a
|
|
8
|
+
letter. Never read, print, synthesize, or add a secret.
|
|
9
|
+
If a required credential variable is missing, name that specific setup requirement and
|
|
10
|
+
take the feature stop route below.
|
|
8
11
|
|
|
9
12
|
If the folder was empty, clone OpenTag from https://github.com/CopilotKit/OpenTag.git
|
|
10
13
|
and do not rewrite it. Point the subagent at the existing OpenTag agent and runtime
|
|
@@ -16,16 +19,17 @@ On Teams, skip Slack-only tools and the Slack e2e harness. Do not add a CopilotK
|
|
|
16
19
|
web app to make this run look complete. Do not replace the existing agent.
|
|
17
20
|
|
|
18
21
|
If repository evidence does not prove an existing valid Intelligence selection, sign in
|
|
19
|
-
yourself with `npx --yes copilotkit@4.
|
|
22
|
+
yourself with `npx --prefer-offline --yes copilotkit@4.15.0 login --json`: the same single streaming
|
|
20
23
|
session generic onboarding uses. Read its JSON Lines while the process runs. Open the
|
|
21
24
|
first `authentication_url` exactly once with the operating system's default browser
|
|
22
25
|
opener, `open` on macOS, `xdg-open` on Linux, `Start-Process` in Windows PowerShell. Your
|
|
23
26
|
own built-in browser is not that opener and does not carry the session the developer
|
|
24
|
-
already signed in with.
|
|
27
|
+
already signed in with. If that record carries `user_code`, show the developer the code to
|
|
28
|
+
check against the sign-in page, which works from any device. Never ask the developer to run a login command. If the opener is
|
|
25
29
|
unavailable or fails, show the developer the clickable URL and ask them to finish sign-in
|
|
26
30
|
there, and keep reading the same process. Continue only after that same process emits
|
|
27
|
-
`type: completed`.
|
|
28
|
-
and select or create one only after they choose. Require the secret-safe project/key provisioning summary
|
|
31
|
+
`type: completed`. Only when it emits `type: failed`, report the error and take the
|
|
32
|
+
feature stop route below. Then list projects and select or create one only after they choose. Require the secret-safe project/key provisioning summary
|
|
29
33
|
before wiring the Channel. Never display a key.
|
|
30
34
|
|
|
31
35
|
Run `channels add` until it reports completed. Run the focused type/test command and
|
|
@@ -33,6 +37,15 @@ start the long-running runtime. Confirm `/info` can return HTTP 200, but treat t
|
|
|
33
37
|
as capability evidence rather than completed Channel proof. Record changed paths
|
|
34
38
|
and validation results.
|
|
35
39
|
|
|
40
|
+
If `channels add` blocks with `slack_app_not_created`, its `Create the Slack app` step,
|
|
41
|
+
open its create-app URL exactly once with the operating system's default browser opener:
|
|
42
|
+
`open` on macOS, `xdg-open` on Linux, `Start-Process` in Windows PowerShell. A long URL is
|
|
43
|
+
printed as a file path. Open the URL that file holds. Tell the developer to create the app
|
|
44
|
+
from the prefilled manifest on that page, install it to the workspace, and finish the
|
|
45
|
+
other steps `channels add` printed. When they are done, run `channels add` again with the
|
|
46
|
+
same name. If the opener is unavailable or fails, show the developer the clickable URL
|
|
47
|
+
instead.
|
|
48
|
+
|
|
36
49
|
## Connect the Channel to the agent
|
|
37
50
|
|
|
38
51
|
Wire the Channel runtime to the agent with the connection API named on the documentation
|
|
@@ -65,7 +78,7 @@ starter to satisfy this rule, and do not report the page that shows it.
|
|
|
65
78
|
After validation and each repair, run:
|
|
66
79
|
|
|
67
80
|
```text
|
|
68
|
-
npx --yes copilotkit@4.
|
|
81
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard audit
|
|
69
82
|
```
|
|
70
83
|
|
|
71
84
|
Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
|
|
@@ -76,7 +89,7 @@ with the implementation subagent's `Files changed` section. If that section does
|
|
|
76
89
|
the path, accept the developer's external change:
|
|
77
90
|
|
|
78
91
|
```text
|
|
79
|
-
npx --yes copilotkit@4.
|
|
92
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --accept-external --path <path>
|
|
80
93
|
```
|
|
81
94
|
|
|
82
95
|
For an env file where the developer placed a requested credential, use
|
|
@@ -85,14 +98,14 @@ or its report does not settle who changed it, ask the developer to allow the unp
|
|
|
85
98
|
change. Only after they agree, record their answer:
|
|
86
99
|
|
|
87
100
|
```text
|
|
88
|
-
npx --yes copilotkit@4.
|
|
101
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
89
102
|
```
|
|
90
103
|
|
|
91
104
|
Run the audit again after each accepted or authorized change. If it still fails, or starts
|
|
92
105
|
with `Status: blocked`, route out and stop:
|
|
93
106
|
|
|
94
107
|
```text
|
|
95
|
-
npx --yes copilotkit@4.
|
|
108
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
|
|
96
109
|
```
|
|
97
110
|
|
|
98
111
|
## Values this run writes, and the one credential the developer supplies
|
|
@@ -120,14 +133,19 @@ The only credential the developer supplies is their model provider key, such as
|
|
|
120
133
|
`OPENAI_API_KEY`, and the run asks for it once as part of plan approval. Never ask for it
|
|
121
134
|
again at backend start.
|
|
122
135
|
|
|
136
|
+
To add a variable mid-run, such as `PORT` when the Channel's lifecycle server and `next dev`
|
|
137
|
+
both default to 3000, append one line to that env file and change no other line. Then
|
|
138
|
+
accept it with `onboard protect --accept-credential --path <path>`, which accepts an added
|
|
139
|
+
variable while every recorded one keeps its value, and run the audit again.
|
|
140
|
+
|
|
123
141
|
When implementation validation passes, report it:
|
|
124
142
|
|
|
125
143
|
```text
|
|
126
|
-
npx --yes copilotkit@4.
|
|
144
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase build-validated
|
|
127
145
|
```
|
|
128
146
|
|
|
129
147
|
If validation cannot pass, or this run needs a prerequisite the app does not have, use
|
|
130
148
|
the feature stop route above without further changes.
|
|
131
149
|
|
|
132
150
|
Otherwise run
|
|
133
|
-
`npx --yes copilotkit@4.
|
|
151
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/channels/proof`.
|
|
@@ -23,23 +23,23 @@ route after the audit rules below.
|
|
|
23
23
|
Report each attempt at the proof as it ends, counting from one:
|
|
24
24
|
|
|
25
25
|
```text
|
|
26
|
-
npx --yes copilotkit@4.
|
|
26
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase journey-attempted --attempt 1
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
Report each repair cycle the same way, counting from one:
|
|
30
30
|
|
|
31
31
|
```text
|
|
32
|
-
npx --yes copilotkit@4.
|
|
32
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase repair-attempted --attempt 1
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
After the final attempt, report the gate exactly once:
|
|
36
36
|
|
|
37
37
|
```text
|
|
38
|
-
npx --yes copilotkit@4.
|
|
38
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
Use `passed` only for a proved mention reply, `failed` for an attempted proof that
|
|
42
|
-
failed, and `skipped` when the proof did not run. Then run `npx --yes copilotkit@4.
|
|
42
|
+
failed, and `skipped` when the proof did not run. Then run `npx --prefer-offline --yes copilotkit@4.15.0 onboard audit`.
|
|
43
43
|
Continue only when it starts with `Status: passed`.
|
|
44
44
|
|
|
45
45
|
If the audit fails, never repair, reset, or revert a protected path. Compare each named path
|
|
@@ -54,14 +54,16 @@ Run the audit again after each accepted or authorized change.
|
|
|
54
54
|
If the audit still fails, or starts with `Status: blocked`, route out and stop:
|
|
55
55
|
|
|
56
56
|
```text
|
|
57
|
-
npx --yes copilotkit@4.
|
|
57
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
When the audit passes and the mention proof passed,
|
|
61
|
-
`
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
no
|
|
60
|
+
When the audit passes and the mention proof passed, record it first with
|
|
61
|
+
`onboard proof --step round-trip --outcome passed` as above. Then run
|
|
62
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/complete` and complete with
|
|
63
|
+
`--visual-check channels-proof-passed`. The recorded mention and reply are this run's
|
|
64
|
+
proof, so no web app check is missing. Use `--visual-check performed` only when a
|
|
65
|
+
browser drove Slack or Teams web and proved the mention reply. Do not use
|
|
66
|
+
`skipped-no-browser-tool` here: it reports a web app check this run never needed.
|
|
65
67
|
|
|
66
68
|
If the mention proof did not pass, or a gate cannot run, use the feature stop
|
|
67
69
|
route above. Do not run `onboard complete`.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
First, report your coding agent identity using the same command as generic onboarding:
|
|
4
4
|
|
|
5
5
|
```text
|
|
6
|
-
npx --yes copilotkit@4.
|
|
6
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard identify --coding-agent <coding-agent-slug>
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Use your own product's slug, such as `codex` or `claude-code`. This also covers entry
|
|
@@ -17,7 +17,7 @@ restricted to the target project.
|
|
|
17
17
|
Before any subagent or project process runs, capture the developer's existing work:
|
|
18
18
|
|
|
19
19
|
```text
|
|
20
|
-
npx --yes copilotkit@4.
|
|
20
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard protect
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
Keep the exact protected path list it prints and give that list to every subagent. Do not
|
|
@@ -47,7 +47,7 @@ This one does not.
|
|
|
47
47
|
Wait for the inspection subagent to finish. Then report that the inspection came back:
|
|
48
48
|
|
|
49
49
|
```text
|
|
50
|
-
npx --yes copilotkit@4.
|
|
50
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase research-returned
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -64,12 +64,13 @@ and its install command in the message the developer sees: `nvm install 22` for
|
|
|
64
64
|
for Python. Offer a custom headless build as a later path. Then route out:
|
|
65
65
|
|
|
66
66
|
```text
|
|
67
|
-
npx --yes copilotkit@4.
|
|
67
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
Do not run login, select Intelligence, or create a credential until the developer
|
|
71
|
-
approves the plan. Fetch the
|
|
72
|
-
https://docs.copilotkit.ai/
|
|
71
|
+
approves the plan. Fetch the connect guide for the chosen provider before planning:
|
|
72
|
+
https://docs.copilotkit.ai/slack/connect.md for Slack,
|
|
73
|
+
https://docs.copilotkit.ai/teams/connect.md for Teams.
|
|
73
74
|
Retry it a second way if needed.
|
|
74
75
|
|
|
75
76
|
For an empty folder, OpenTag runs its own agent on `OPENAI_API_KEY`. State that before the
|
|
@@ -81,9 +82,9 @@ creating a credential.
|
|
|
81
82
|
|
|
82
83
|
Show a small plan. For an empty folder, clone OpenTag and do not rewrite it. For an
|
|
83
84
|
existing agent or app, keep that code and wire a managed Channel. Slack or Teams is
|
|
84
|
-
only `channels add --adapter slack|teams
|
|
85
|
-
|
|
86
|
-
provider. Ask for approval separately.
|
|
85
|
+
only `channels add <name> --adapter slack|teams`, with the project's directory or package
|
|
86
|
+
name as `<name>`. On Teams, skip Slack-only tools and the Slack e2e harness. Name focused
|
|
87
|
+
tests and a real mention proof on the chosen provider. Ask for approval separately.
|
|
87
88
|
|
|
88
89
|
The plan must list every protected path it needs to change under `Authorization requested`,
|
|
89
90
|
with one sentence explaining why. Write `None` when it needs none. Authorization covers
|
|
@@ -93,7 +94,7 @@ one.
|
|
|
93
94
|
After approval, record each approved path before implementation:
|
|
94
95
|
|
|
95
96
|
```text
|
|
96
|
-
npx --yes copilotkit@4.
|
|
97
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
|
|
97
98
|
```
|
|
98
99
|
|
|
99
100
|
If an approved path changed after capture and no implementation step has run, add
|
|
@@ -103,7 +104,7 @@ authorize a path the approved plan did not list.
|
|
|
103
104
|
Then report the plan this run is about to implement:
|
|
104
105
|
|
|
105
106
|
```text
|
|
106
|
-
npx --yes copilotkit@4.
|
|
107
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase plan-written
|
|
107
108
|
```
|
|
108
109
|
|
|
109
|
-
Then run `npx --yes copilotkit@4.
|
|
110
|
+
Then run `npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/channels/implement`.
|
|
@@ -15,7 +15,7 @@ Run focused type/test checks and start the app. Record the changed files and val
|
|
|
15
15
|
After validation and each repair, run:
|
|
16
16
|
|
|
17
17
|
```text
|
|
18
|
-
npx --yes copilotkit@4.
|
|
18
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard audit
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
|
|
@@ -26,7 +26,7 @@ with the implementation subagent's `Files changed` section. If that section does
|
|
|
26
26
|
the path, accept the developer's external change:
|
|
27
27
|
|
|
28
28
|
```text
|
|
29
|
-
npx --yes copilotkit@4.
|
|
29
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --accept-external --path <path>
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
For an env file where the developer placed a requested credential, use
|
|
@@ -35,24 +35,24 @@ or its report does not settle who changed it, ask the developer to allow the unp
|
|
|
35
35
|
change. Only after they agree, record their answer:
|
|
36
36
|
|
|
37
37
|
```text
|
|
38
|
-
npx --yes copilotkit@4.
|
|
38
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
Run the audit again after each accepted or authorized change. If it still fails, or starts
|
|
42
42
|
with `Status: blocked`, route out and stop:
|
|
43
43
|
|
|
44
44
|
```text
|
|
45
|
-
npx --yes copilotkit@4.
|
|
45
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
When implementation validation passes, report it:
|
|
49
49
|
|
|
50
50
|
```text
|
|
51
|
-
npx --yes copilotkit@4.
|
|
51
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase build-validated
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
If validation cannot pass, or this intent needs a prerequisite the app does not have, use
|
|
55
55
|
the feature stop route above without further changes.
|
|
56
56
|
|
|
57
57
|
Otherwise run
|
|
58
|
-
`npx --yes copilotkit@4.
|
|
58
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/chat-suggestions/proof`.
|
|
@@ -12,23 +12,23 @@ project-owned services running.
|
|
|
12
12
|
Report each attempt at the proof as it ends, counting from one:
|
|
13
13
|
|
|
14
14
|
```text
|
|
15
|
-
npx --yes copilotkit@4.
|
|
15
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase journey-attempted --attempt 1
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
Report each repair cycle the same way, counting from one:
|
|
19
19
|
|
|
20
20
|
```text
|
|
21
|
-
npx --yes copilotkit@4.
|
|
21
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase repair-attempted --attempt 1
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
After the final attempt, report the gate exactly once:
|
|
25
25
|
|
|
26
26
|
```text
|
|
27
|
-
npx --yes copilotkit@4.
|
|
27
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
Use `passed` only for a proved sent suggestion, `failed` for an attempted proof that failed,
|
|
31
|
-
and `skipped` when the proof could not run. Then run `npx --yes copilotkit@4.
|
|
31
|
+
and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.15.0 onboard audit`.
|
|
32
32
|
Continue only when it starts with `Status: passed`.
|
|
33
33
|
|
|
34
34
|
If the audit fails, never repair, reset, or revert a protected path. Compare each named path
|
|
@@ -43,9 +43,9 @@ Run the audit again after each accepted or authorized change.
|
|
|
43
43
|
If the audit still fails, or starts with `Status: blocked`, route out and stop:
|
|
44
44
|
|
|
45
45
|
```text
|
|
46
|
-
npx --yes copilotkit@4.
|
|
46
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
When the audit passes, run
|
|
50
|
-
`npx --yes copilotkit@4.
|
|
50
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/complete` with the real browser-proof
|
|
51
51
|
outcome.
|
|
@@ -6,7 +6,7 @@ implementation, and proof to separate subagents and keep all work inside the tar
|
|
|
6
6
|
Before any subagent or project process runs, capture the developer's existing work:
|
|
7
7
|
|
|
8
8
|
```text
|
|
9
|
-
npx --yes copilotkit@4.
|
|
9
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard protect
|
|
10
10
|
```
|
|
11
11
|
|
|
12
12
|
Keep the exact protected path list it prints and give that list to every subagent. No
|
|
@@ -15,7 +15,7 @@ approved authorization before implementation.
|
|
|
15
15
|
|
|
16
16
|
Before edits, identify the current CopilotKit provider, chat component, message lifecycle,
|
|
17
17
|
agent id, package version, and test/dev commands. Prove the existing OSS round trip with
|
|
18
|
-
`/info`, `npx --yes copilotkit@4.
|
|
18
|
+
`/info`, `npx --prefer-offline --yes copilotkit@4.15.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
|
|
19
19
|
and one real frontend request when browser control is available. If there is no proven
|
|
20
20
|
existing CopilotKit chat, leave files unchanged and direct the developer to generic
|
|
21
21
|
onboarding first.
|
|
@@ -23,7 +23,7 @@ onboarding first.
|
|
|
23
23
|
Wait for the inspection subagent to finish. Then report that the inspection came back:
|
|
24
24
|
|
|
25
25
|
```text
|
|
26
|
-
npx --yes copilotkit@4.
|
|
26
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase research-returned
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
|
|
@@ -33,7 +33,7 @@ If the inspection did not prove the baseline this intent extends, stop here with
|
|
|
33
33
|
changing files:
|
|
34
34
|
|
|
35
35
|
```text
|
|
36
|
-
npx --yes copilotkit@4.
|
|
36
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
Do not run login, provision Intelligence, request a credential, replace the agent, or alter
|
|
@@ -55,7 +55,7 @@ one.
|
|
|
55
55
|
After approval, record each approved path before implementation:
|
|
56
56
|
|
|
57
57
|
```text
|
|
58
|
-
npx --yes copilotkit@4.
|
|
58
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
If an approved path changed after capture and no implementation step has run, add
|
|
@@ -65,7 +65,7 @@ authorize a path the approved plan did not list.
|
|
|
65
65
|
Then report the plan this run is about to implement:
|
|
66
66
|
|
|
67
67
|
```text
|
|
68
|
-
npx --yes copilotkit@4.
|
|
68
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase plan-written
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
-
Then run `npx --yes copilotkit@4.
|
|
71
|
+
Then run `npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/chat-suggestions/implement`.
|
|
@@ -3,9 +3,27 @@
|
|
|
3
3
|
Use the outcome the proof step observed. Run:
|
|
4
4
|
|
|
5
5
|
```text
|
|
6
|
-
npx --yes copilotkit@4.
|
|
6
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard complete --visual-check <performed|skipped-no-browser-tool|channels-proof-passed|failed>
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
+
Use `channels-proof-passed` for a Slack or Teams run that recorded a passed round-trip proof
|
|
10
|
+
and drove no browser: the provider mention and the reply are the proof. The command refuses
|
|
11
|
+
it when this run recorded no passed round trip.
|
|
12
|
+
|
|
9
13
|
Use `performed` only when browser control drove the real user-visible surface. Use
|
|
10
14
|
`skipped-no-browser-tool` only when no browser tool was available. Use `failed` when the
|
|
11
15
|
browser proof ran but did not prove the feature.
|
|
16
|
+
|
|
17
|
+
## Report friction before completing
|
|
18
|
+
|
|
19
|
+
Before `onboard complete`, send the friction this run mentioned to the developer, one
|
|
20
|
+
report each, at most four, costliest first:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard friction --category <slug> --cost-seconds <seconds> --message "<sentences>"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Put one or two sentences in `--message`, with no secrets, source, or logs. Pick the
|
|
27
|
+
category from docs-missing, docs-wrong, docs-sequential, cli-gap, sdk-gap, environment,
|
|
28
|
+
port-collision, credential, validation-loop, or other. Mentioning friction without sending
|
|
29
|
+
it leaves this run incomplete.
|
|
@@ -16,10 +16,10 @@ command without another developer question. Do not ask the developer about telem
|
|
|
16
16
|
command applies the setting they already have.
|
|
17
17
|
|
|
18
18
|
```text
|
|
19
|
-
npx --yes copilotkit@4.
|
|
19
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard friction --phase stop --category <slug> --message "<sentences>"
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
`--message` takes one or two sentences: the step you stopped at and what stopped it.
|
|
23
23
|
Pick the category that fits from docs-missing, docs-wrong, docs-sequential, cli-gap,
|
|
24
24
|
sdk-gap, environment, port-collision, credential, validation-loop, and other. Leave
|
|
25
25
|
--cost-seconds off. A run that stopped cannot separate one papercut's cost from the cost of
|
|
@@ -41,7 +41,7 @@ settled refusal rather than a missing baseline, so stop here, before any file ch
|
|
|
41
41
|
take its own ending:
|
|
42
42
|
|
|
43
43
|
```text
|
|
44
|
-
npx --yes copilotkit@4.
|
|
44
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/blocked-by-plan
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
`LEARNING_AVAILABILITY_UNAVAILABLE` means the platform did not resolve the answer. It is
|
|
@@ -55,7 +55,7 @@ then, so the read below is where its refusal surfaces.
|
|
|
55
55
|
When the plan or the repository already names an id, ask about that one id and nothing else:
|
|
56
56
|
|
|
57
57
|
```text
|
|
58
|
-
npx --yes copilotkit@4.
|
|
58
|
+
npx --prefer-offline --yes copilotkit@4.15.0 learning containers get <id> --json
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
One call answers it, and no list is needed.
|
|
@@ -63,7 +63,7 @@ One call answers it, and no list is needed.
|
|
|
63
63
|
When no id is in hand, survey what the project holds:
|
|
64
64
|
|
|
65
65
|
```text
|
|
66
|
-
npx --yes copilotkit@4.
|
|
66
|
+
npx --prefer-offline --yes copilotkit@4.15.0 learning containers list --json
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
One call returns at most 500 containers. When `nextCursor` in the result is not null, read
|
|
@@ -74,7 +74,7 @@ second container for work the first one already covers.
|
|
|
74
74
|
Report what the read found before asking anyone anything:
|
|
75
75
|
|
|
76
76
|
```text
|
|
77
|
-
npx --yes copilotkit@4.
|
|
77
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase container-surveyed
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
Everything after this waits on a person, so a run that stops past this point stopped on a
|
|
@@ -95,7 +95,7 @@ user, so the callback can return a different id per tier or per customer.
|
|
|
95
95
|
Ask the CLI for the id rather than spelling one yourself:
|
|
96
96
|
|
|
97
97
|
```text
|
|
98
|
-
npx --yes copilotkit@4.
|
|
98
|
+
npx --prefer-offline --yes copilotkit@4.15.0 learning containers default-id --json
|
|
99
99
|
```
|
|
100
100
|
|
|
101
101
|
It derives the project-scoped id from the selected project's slug, reads the local project
|
|
@@ -109,7 +109,7 @@ run that spells the id differently gives one project two containers, each below
|
|
|
109
109
|
above on its own. One command is what keeps the two spellings identical.
|
|
110
110
|
|
|
111
111
|
```text
|
|
112
|
-
npx --yes copilotkit@4.
|
|
112
|
+
npx --prefer-offline --yes copilotkit@4.15.0 learning containers create --id <id> --name <name> --json
|
|
113
113
|
```
|
|
114
114
|
|
|
115
115
|
An id already in use answers `LEARNING_CONTAINER_ALREADY_EXISTS`. That is a container to
|
|
@@ -118,13 +118,13 @@ read with `get` and reuse, not a failure to repair and not a reason to pick a ne
|
|
|
118
118
|
Confirm the id resolves before any file changes, whichever way it was settled. That check is
|
|
119
119
|
the cheap one to keep: a selector wired to an id the platform does not hold returns
|
|
120
120
|
`LEARNING_CONTAINER_NOT_FOUND` on every thread create and every run lock, so a working chat
|
|
121
|
-
breaks on the next message.
|
|
121
|
+
breaks on the next message. If the id does not resolve, take the feature stop route below. Do not write a placeholder
|
|
122
122
|
or a guessed id.
|
|
123
123
|
|
|
124
124
|
Then report that the container is settled, before any edit:
|
|
125
125
|
|
|
126
126
|
```text
|
|
127
|
-
npx --yes copilotkit@4.
|
|
127
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase container-settled
|
|
128
128
|
```
|
|
129
129
|
|
|
130
130
|
Everything above happens between two prompts, so a run that stopped on a developer who could
|
|
@@ -145,13 +145,13 @@ non-zero on an app that is working. Pass what `identifyUser` reads with a repeat
|
|
|
145
145
|
It is not a defect to repair.
|
|
146
146
|
|
|
147
147
|
Run focused tests and
|
|
148
|
-
`npx --yes copilotkit@4.
|
|
148
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
|
|
149
149
|
Repair changed-file failures and record secret-safe evidence.
|
|
150
150
|
|
|
151
151
|
After validation and each repair, run:
|
|
152
152
|
|
|
153
153
|
```text
|
|
154
|
-
npx --yes copilotkit@4.
|
|
154
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard audit
|
|
155
155
|
```
|
|
156
156
|
|
|
157
157
|
Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
|
|
@@ -162,7 +162,7 @@ with the implementation subagent's `Files changed` section. If that section does
|
|
|
162
162
|
the path, accept the developer's external change:
|
|
163
163
|
|
|
164
164
|
```text
|
|
165
|
-
npx --yes copilotkit@4.
|
|
165
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --accept-external --path <path>
|
|
166
166
|
```
|
|
167
167
|
|
|
168
168
|
For an env file where the developer placed a requested credential, use
|
|
@@ -171,24 +171,24 @@ or its report does not settle who changed it, ask the developer to allow the unp
|
|
|
171
171
|
change. Only after they agree, record their answer:
|
|
172
172
|
|
|
173
173
|
```text
|
|
174
|
-
npx --yes copilotkit@4.
|
|
174
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
|
|
175
175
|
```
|
|
176
176
|
|
|
177
177
|
Run the audit again after each accepted or authorized change. If it still fails, or starts
|
|
178
178
|
with `Status: blocked`, route out and stop:
|
|
179
179
|
|
|
180
180
|
```text
|
|
181
|
-
npx --yes copilotkit@4.
|
|
181
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
|
|
182
182
|
```
|
|
183
183
|
|
|
184
184
|
When implementation validation passes, report it:
|
|
185
185
|
|
|
186
186
|
```text
|
|
187
|
-
npx --yes copilotkit@4.
|
|
187
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase build-validated
|
|
188
188
|
```
|
|
189
189
|
|
|
190
190
|
If validation cannot pass, or this intent needs a prerequisite the app does not have, use
|
|
191
191
|
the feature stop route above without further changes.
|
|
192
192
|
|
|
193
193
|
Otherwise run
|
|
194
|
-
`npx --yes copilotkit@4.
|
|
194
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/learning/proof`.
|
|
@@ -7,7 +7,7 @@ Container. Confirm the thread remains associated with the expected user.
|
|
|
7
7
|
One command decides it:
|
|
8
8
|
|
|
9
9
|
```text
|
|
10
|
-
npx --yes copilotkit@4.
|
|
10
|
+
npx --prefer-offline --yes copilotkit@4.15.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --expect-learning-container <id> --json
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
It reads the thread back from the platform, so it answers for any runtime mount, and it
|
|
@@ -32,24 +32,24 @@ same threshold. Existing threads do not join automatically just because a contai
|
|
|
32
32
|
Report each attempt at the proof as it ends, counting from one:
|
|
33
33
|
|
|
34
34
|
```text
|
|
35
|
-
npx --yes copilotkit@4.
|
|
35
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase journey-attempted --attempt 1
|
|
36
36
|
```
|
|
37
37
|
|
|
38
38
|
Report each repair cycle the same way, counting from one:
|
|
39
39
|
|
|
40
40
|
```text
|
|
41
|
-
npx --yes copilotkit@4.
|
|
41
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard checkpoint --phase repair-attempted --attempt 1
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
After the final attempt, report the gate exactly once:
|
|
45
45
|
|
|
46
46
|
```text
|
|
47
|
-
npx --yes copilotkit@4.
|
|
47
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
Use `passed` only for a proved Container assignment, `failed` for an attempted proof that
|
|
51
51
|
failed, and `skipped` when the proof could not run. Then run
|
|
52
|
-
`npx --yes copilotkit@4.
|
|
52
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard audit`. Continue only when it starts with
|
|
53
53
|
`Status: passed`.
|
|
54
54
|
|
|
55
55
|
If the audit fails, never repair, reset, or revert a protected path. Compare each named path
|
|
@@ -64,9 +64,9 @@ Run the audit again after each accepted or authorized change.
|
|
|
64
64
|
If the audit still fails, or starts with `Status: blocked`, route out and stop:
|
|
65
65
|
|
|
66
66
|
```text
|
|
67
|
-
npx --yes copilotkit@4.
|
|
67
|
+
npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/stop
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
When the audit passes, run
|
|
71
|
-
`npx --yes copilotkit@4.
|
|
71
|
+
`npx --prefer-offline --yes copilotkit@4.15.0 onboard read feature/complete` with the actual surface
|
|
72
72
|
outcome.
|