copilotkit 4.13.0 → 4.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +109 -6
  2. package/cli-build-info.json +8 -8
  3. package/index.js +43866 -40955
  4. package/onboarding/index.json +1 -1
  5. package/onboarding/prompts/authenticate/start.md +38 -27
  6. package/onboarding/prompts/conversion/plan.md +3 -3
  7. package/onboarding/prompts/credentials/finalize-plan.md +14 -12
  8. package/onboarding/prompts/credentials/plan.md +21 -21
  9. package/onboarding/prompts/credentials/settle-credentials.md +18 -11
  10. package/onboarding/prompts/credentials/write-plan.md +19 -12
  11. package/onboarding/prompts/fallback/best-effort.md +9 -9
  12. package/onboarding/prompts/feature/a2ui/implement.md +6 -6
  13. package/onboarding/prompts/feature/a2ui/proof.md +6 -6
  14. package/onboarding/prompts/feature/a2ui/start.md +7 -7
  15. package/onboarding/prompts/feature/channels/implement.md +41 -15
  16. package/onboarding/prompts/feature/channels/proof.md +12 -10
  17. package/onboarding/prompts/feature/channels/start.md +13 -12
  18. package/onboarding/prompts/feature/chat-suggestions/implement.md +6 -6
  19. package/onboarding/prompts/feature/chat-suggestions/proof.md +6 -6
  20. package/onboarding/prompts/feature/chat-suggestions/start.md +7 -7
  21. package/onboarding/prompts/feature/complete.md +19 -1
  22. package/onboarding/prompts/feature/learning/implement.md +16 -16
  23. package/onboarding/prompts/feature/learning/proof.md +7 -7
  24. package/onboarding/prompts/feature/learning/start.md +8 -8
  25. package/onboarding/prompts/feature/open-generative-ui/implement.md +6 -6
  26. package/onboarding/prompts/feature/open-generative-ui/proof.md +6 -6
  27. package/onboarding/prompts/feature/open-generative-ui/start.md +7 -7
  28. package/onboarding/prompts/feature/realtime-sync/implement.md +7 -7
  29. package/onboarding/prompts/feature/realtime-sync/proof.md +6 -6
  30. package/onboarding/prompts/feature/realtime-sync/start.md +6 -6
  31. package/onboarding/prompts/feature/rich-threads/implement.md +10 -10
  32. package/onboarding/prompts/feature/rich-threads/proof.md +6 -6
  33. package/onboarding/prompts/feature/rich-threads/start.md +6 -6
  34. package/onboarding/prompts/feature/stop.md +36 -2
  35. package/onboarding/prompts/feature/voice/implement.md +7 -7
  36. package/onboarding/prompts/feature/voice/proof.md +6 -6
  37. package/onboarding/prompts/feature/voice/start.md +8 -8
  38. package/onboarding/prompts/framework/ag2.md +2 -2
  39. package/onboarding/prompts/framework/agno.md +2 -2
  40. package/onboarding/prompts/framework/built-in.md +2 -2
  41. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  42. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  43. package/onboarding/prompts/framework/crewai-flows.md +2 -2
  44. package/onboarding/prompts/framework/deep-agents.md +2 -2
  45. package/onboarding/prompts/framework/google-adk.md +2 -2
  46. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  47. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  48. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  49. package/onboarding/prompts/framework/llamaindex.md +2 -2
  50. package/onboarding/prompts/framework/mastra.md +2 -2
  51. package/onboarding/prompts/framework/ms-agent-dotnet.md +2 -2
  52. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
  53. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  54. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  55. package/onboarding/prompts/framework/strands-python.md +2 -2
  56. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  57. package/onboarding/prompts/frontend/angular.md +3 -3
  58. package/onboarding/prompts/frontend/nextjs.md +3 -3
  59. package/onboarding/prompts/frontend/plan.md +7 -7
  60. package/onboarding/prompts/frontend/react-native.md +5 -2
  61. package/onboarding/prompts/frontend/react-spa.md +5 -2
  62. package/onboarding/prompts/frontend/vue.md +5 -2
  63. package/onboarding/prompts/implementation/build-and-validate.md +24 -23
  64. package/onboarding/prompts/proof/complete.md +8 -8
  65. package/onboarding/prompts/proof/oss-baseline.md +5 -5
  66. package/onboarding/prompts/proof/round-trip.md +11 -11
  67. package/onboarding/prompts/research/gather.md +36 -7
  68. package/onboarding/prompts/research/merge.md +3 -3
  69. package/onboarding/prompts/research/preflight.md +4 -4
  70. package/onboarding/prompts/research/route.md +10 -8
  71. package/onboarding/prompts/starter/clone.md +97 -26
  72. package/onboarding/prompts/stopped/run-failed.md +2 -2
  73. package/onboarding/prompts/subagent/create-plan.md +4 -4
  74. package/onboarding/prompts/subagent/implement-and-validate.md +26 -6
  75. package/onboarding/prompts/subagent/inspect-repository.md +2 -2
  76. package/onboarding/prompts/subagent/prove-oss-baseline.md +2 -2
  77. package/onboarding/prompts/subagent/prove-round-trip.md +10 -10
  78. package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
  79. package/package.json +5 -1
  80. package/release/release-tool.js +330 -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.13.0 onboard protect
10
+ npx --yes copilotkit@4.14.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.13.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`.
25
+ `npx --yes copilotkit@4.14.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.13.0 onboard checkpoint --phase research-returned
33
+ npx --yes copilotkit@4.14.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.13.0 onboard read feature/stop
43
+ npx --yes copilotkit@4.14.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.13.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
67
+ npx --yes copilotkit@4.14.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.13.0 onboard checkpoint --phase plan-written
77
+ npx --yes copilotkit@4.14.0 onboard checkpoint --phase plan-written
78
78
  ```
79
79
 
80
- Then run `npx --yes copilotkit@4.13.0 onboard read feature/a2ui/implement`.
80
+ Then run `npx --yes copilotkit@4.14.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 official
4
- Channels guide. Use the already chosen Slack or Teams adapter only as
5
- `channels add --adapter slack|teams`. Never read, print, synthesize, or add a secret.
6
- If a required credential variable is missing, stop with that specific setup
7
- requirement.
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.13.0 login --json`: the same single streaming
22
+ yourself with `npx --yes copilotkit@4.14.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. Never ask the developer to run a login command. If the opener is
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`. Report and stop only when it emits `type: failed`. Then list projects
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
@@ -54,10 +67,18 @@ before you write the connection. Where the selected documentation page itself sh
54
67
  deprecated symbol, report that page under the `docs-wrong` friction category and use the
55
68
  current symbol the package's own type definitions or changelog names.
56
69
 
70
+ A symbol this graph names is not that case. The `framework/<name>` nodes name the
71
+ current connection API for each framework, and one of them is deprecated at its
72
+ entrypoint while still being the documented path: `LangGraphAgent` from
73
+ `@copilotkit/runtime/langgraph` on the LangSmith route. The CopilotKit quickstart
74
+ writes it, the starters this graph clones are built on it, and its own tooltip
75
+ names no replacement. Write what the framework node names. Do not rewrite a cloned
76
+ starter to satisfy this rule, and do not report the page that shows it.
77
+
57
78
  After validation and each repair, run:
58
79
 
59
80
  ```text
60
- npx --yes copilotkit@4.13.0 onboard audit
81
+ npx --yes copilotkit@4.14.0 onboard audit
61
82
  ```
62
83
 
63
84
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -68,7 +89,7 @@ with the implementation subagent's `Files changed` section. If that section does
68
89
  the path, accept the developer's external change:
69
90
 
70
91
  ```text
71
- npx --yes copilotkit@4.13.0 onboard protect --accept-external --path <path>
92
+ npx --yes copilotkit@4.14.0 onboard protect --accept-external --path <path>
72
93
  ```
73
94
 
74
95
  For an env file where the developer placed a requested credential, use
@@ -77,14 +98,14 @@ or its report does not settle who changed it, ask the developer to allow the unp
77
98
  change. Only after they agree, record their answer:
78
99
 
79
100
  ```text
80
- npx --yes copilotkit@4.13.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
101
+ npx --yes copilotkit@4.14.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
81
102
  ```
82
103
 
83
104
  Run the audit again after each accepted or authorized change. If it still fails, or starts
84
105
  with `Status: blocked`, route out and stop:
85
106
 
86
107
  ```text
87
- npx --yes copilotkit@4.13.0 onboard read feature/stop
108
+ npx --yes copilotkit@4.14.0 onboard read feature/stop
88
109
  ```
89
110
 
90
111
  ## Values this run writes, and the one credential the developer supplies
@@ -112,14 +133,19 @@ The only credential the developer supplies is their model provider key, such as
112
133
  `OPENAI_API_KEY`, and the run asks for it once as part of plan approval. Never ask for it
113
134
  again at backend start.
114
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
+
115
141
  When implementation validation passes, report it:
116
142
 
117
143
  ```text
118
- npx --yes copilotkit@4.13.0 onboard checkpoint --phase build-validated
144
+ npx --yes copilotkit@4.14.0 onboard checkpoint --phase build-validated
119
145
  ```
120
146
 
121
147
  If validation cannot pass, or this run needs a prerequisite the app does not have, use
122
148
  the feature stop route above without further changes.
123
149
 
124
150
  Otherwise run
125
- `npx --yes copilotkit@4.13.0 onboard read feature/channels/proof`.
151
+ `npx --yes copilotkit@4.14.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.13.0 onboard checkpoint --phase journey-attempted --attempt 1
26
+ npx --yes copilotkit@4.14.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.13.0 onboard checkpoint --phase repair-attempted --attempt 1
32
+ npx --yes copilotkit@4.14.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.13.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
38
+ npx --yes copilotkit@4.14.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.13.0 onboard audit`.
42
+ failed, and `skipped` when the proof did not run. Then run `npx --yes copilotkit@4.14.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.13.0 onboard read feature/stop
57
+ npx --yes copilotkit@4.14.0 onboard read feature/stop
58
58
  ```
59
59
 
60
- When the audit passes and the mention proof passed, run
61
- `npx --yes copilotkit@4.13.0 onboard read feature/complete` with the actual surface
62
- outcome. Use `--visual-check performed` only when a browser drove Slack or Teams web
63
- and proved the mention reply. Use `--visual-check skipped-no-browser-tool` only when
64
- no browser tool was available.
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 --yes copilotkit@4.14.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.13.0 onboard identify --coding-agent <coding-agent-slug>
6
+ npx --yes copilotkit@4.14.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.13.0 onboard protect
20
+ npx --yes copilotkit@4.14.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.13.0 onboard checkpoint --phase research-returned
50
+ npx --yes copilotkit@4.14.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.13.0 onboard read feature/stop
67
+ npx --yes copilotkit@4.14.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 official Channels guide before planning:
72
- https://docs.copilotkit.ai/channels.md
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`. On Teams, skip Slack-only tools and the
85
- Slack e2e harness. Name focused tests and a real mention proof on the chosen
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.13.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
97
+ npx --yes copilotkit@4.14.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.13.0 onboard checkpoint --phase plan-written
107
+ npx --yes copilotkit@4.14.0 onboard checkpoint --phase plan-written
107
108
  ```
108
109
 
109
- Then run `npx --yes copilotkit@4.13.0 onboard read feature/channels/implement`.
110
+ Then run `npx --yes copilotkit@4.14.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.13.0 onboard audit
18
+ npx --yes copilotkit@4.14.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.13.0 onboard protect --accept-external --path <path>
29
+ npx --yes copilotkit@4.14.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.13.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
38
+ npx --yes copilotkit@4.14.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.13.0 onboard read feature/stop
45
+ npx --yes copilotkit@4.14.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.13.0 onboard checkpoint --phase build-validated
51
+ npx --yes copilotkit@4.14.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.13.0 onboard read feature/chat-suggestions/proof`.
58
+ `npx --yes copilotkit@4.14.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.13.0 onboard checkpoint --phase journey-attempted --attempt 1
15
+ npx --yes copilotkit@4.14.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.13.0 onboard checkpoint --phase repair-attempted --attempt 1
21
+ npx --yes copilotkit@4.14.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.13.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
27
+ npx --yes copilotkit@4.14.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.13.0 onboard audit`.
31
+ and `skipped` when the proof could not run. Then run `npx --yes copilotkit@4.14.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.13.0 onboard read feature/stop
46
+ npx --yes copilotkit@4.14.0 onboard read feature/stop
47
47
  ```
48
48
 
49
49
  When the audit passes, run
50
- `npx --yes copilotkit@4.13.0 onboard read feature/complete` with the real browser-proof
50
+ `npx --yes copilotkit@4.14.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.13.0 onboard protect
9
+ npx --yes copilotkit@4.14.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.13.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
18
+ `/info`, `npx --yes copilotkit@4.14.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.13.0 onboard checkpoint --phase research-returned
26
+ npx --yes copilotkit@4.14.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.13.0 onboard read feature/stop
36
+ npx --yes copilotkit@4.14.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.13.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
58
+ npx --yes copilotkit@4.14.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.13.0 onboard checkpoint --phase plan-written
68
+ npx --yes copilotkit@4.14.0 onboard checkpoint --phase plan-written
69
69
  ```
70
70
 
71
- Then run `npx --yes copilotkit@4.13.0 onboard read feature/chat-suggestions/implement`.
71
+ Then run `npx --yes copilotkit@4.14.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.13.0 onboard complete --visual-check <performed|skipped-no-browser-tool|failed>
6
+ npx --yes copilotkit@4.14.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 --yes copilotkit@4.14.0 onboard friction --category <slug> --cost-seconds <seconds>
24
+ ```
25
+
26
+ Write one or two sentences on standard input, 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,7 +16,7 @@ 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.13.0 onboard friction --phase stop --category <slug>
19
+ npx --yes copilotkit@4.14.0 onboard friction --phase stop --category <slug>
20
20
  ```
21
21
 
22
22
  Write one or two sentences to standard input: the step you stopped at and what stopped it.
@@ -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.13.0 onboard read feature/blocked-by-plan
44
+ npx --yes copilotkit@4.14.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.13.0 learning containers get <id> --json
58
+ npx --yes copilotkit@4.14.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.13.0 learning containers list --json
66
+ npx --yes copilotkit@4.14.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.13.0 onboard checkpoint --phase container-surveyed
77
+ npx --yes copilotkit@4.14.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.13.0 learning containers default-id --json
98
+ npx --yes copilotkit@4.14.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.13.0 learning containers create --id <id> --name <name> --json
112
+ npx --yes copilotkit@4.14.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. Stop here if the id does not resolve. Do not write a placeholder
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.13.0 onboard checkpoint --phase container-settled
127
+ npx --yes copilotkit@4.14.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.13.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
148
+ `npx --yes copilotkit@4.14.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.13.0 onboard audit
154
+ npx --yes copilotkit@4.14.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.13.0 onboard protect --accept-external --path <path>
165
+ npx --yes copilotkit@4.14.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.13.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
174
+ npx --yes copilotkit@4.14.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.13.0 onboard read feature/stop
181
+ npx --yes copilotkit@4.14.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.13.0 onboard checkpoint --phase build-validated
187
+ npx --yes copilotkit@4.14.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.13.0 onboard read feature/learning/proof`.
194
+ `npx --yes copilotkit@4.14.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.13.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --expect-learning-container <id> --json
10
+ npx --yes copilotkit@4.14.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.13.0 onboard checkpoint --phase journey-attempted --attempt 1
35
+ npx --yes copilotkit@4.14.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.13.0 onboard checkpoint --phase repair-attempted --attempt 1
41
+ npx --yes copilotkit@4.14.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.13.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
47
+ npx --yes copilotkit@4.14.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.13.0 onboard audit`. Continue only when it starts with
52
+ `npx --yes copilotkit@4.14.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.13.0 onboard read feature/stop
67
+ npx --yes copilotkit@4.14.0 onboard read feature/stop
68
68
  ```
69
69
 
70
70
  When the audit passes, run
71
- `npx --yes copilotkit@4.13.0 onboard read feature/complete` with the actual surface
71
+ `npx --yes copilotkit@4.14.0 onboard read feature/complete` with the actual surface
72
72
  outcome.