copilotkit 4.11.0 → 4.12.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/LICENSE +11 -0
  2. package/README.md +145 -12
  3. package/cli-build-info.json +8 -8
  4. package/index.js +4970 -4644
  5. package/onboarding/index.json +8 -1
  6. package/onboarding/prompts/authenticate/start.md +14 -12
  7. package/onboarding/prompts/conversion/plan.md +3 -3
  8. package/onboarding/prompts/credentials/finalize-plan.md +14 -13
  9. package/onboarding/prompts/credentials/plan.md +20 -20
  10. package/onboarding/prompts/credentials/settle-credentials.md +55 -23
  11. package/onboarding/prompts/credentials/write-plan.md +5 -5
  12. package/onboarding/prompts/fallback/best-effort.md +6 -6
  13. package/onboarding/prompts/feature/a2ui/implement.md +7 -7
  14. package/onboarding/prompts/feature/a2ui/proof.md +6 -6
  15. package/onboarding/prompts/feature/a2ui/start.md +10 -8
  16. package/onboarding/prompts/feature/blocked-by-plan.md +32 -0
  17. package/onboarding/prompts/feature/channels/implement.md +7 -7
  18. package/onboarding/prompts/feature/channels/proof.md +6 -6
  19. package/onboarding/prompts/feature/channels/start.md +10 -8
  20. package/onboarding/prompts/feature/chat-suggestions/implement.md +7 -7
  21. package/onboarding/prompts/feature/chat-suggestions/proof.md +6 -6
  22. package/onboarding/prompts/feature/chat-suggestions/start.md +10 -8
  23. package/onboarding/prompts/feature/complete.md +1 -1
  24. package/onboarding/prompts/feature/learning/implement.md +73 -14
  25. package/onboarding/prompts/feature/learning/proof.md +10 -9
  26. package/onboarding/prompts/feature/learning/start.md +61 -7
  27. package/onboarding/prompts/feature/open-generative-ui/implement.md +7 -7
  28. package/onboarding/prompts/feature/open-generative-ui/proof.md +6 -6
  29. package/onboarding/prompts/feature/open-generative-ui/start.md +10 -8
  30. package/onboarding/prompts/feature/realtime-sync/implement.md +8 -8
  31. package/onboarding/prompts/feature/realtime-sync/proof.md +6 -6
  32. package/onboarding/prompts/feature/realtime-sync/start.md +9 -7
  33. package/onboarding/prompts/feature/rich-threads/implement.md +9 -9
  34. package/onboarding/prompts/feature/rich-threads/proof.md +6 -6
  35. package/onboarding/prompts/feature/rich-threads/start.md +9 -7
  36. package/onboarding/prompts/feature/stop.md +2 -2
  37. package/onboarding/prompts/feature/voice/implement.md +7 -7
  38. package/onboarding/prompts/feature/voice/proof.md +6 -6
  39. package/onboarding/prompts/feature/voice/start.md +10 -8
  40. package/onboarding/prompts/framework/ag2.md +2 -2
  41. package/onboarding/prompts/framework/agno.md +2 -2
  42. package/onboarding/prompts/framework/built-in.md +2 -2
  43. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  44. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  45. package/onboarding/prompts/framework/crewai-flows.md +2 -2
  46. package/onboarding/prompts/framework/deep-agents.md +2 -2
  47. package/onboarding/prompts/framework/google-adk.md +2 -2
  48. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  49. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  50. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  51. package/onboarding/prompts/framework/llamaindex.md +2 -2
  52. package/onboarding/prompts/framework/mastra.md +2 -2
  53. package/onboarding/prompts/framework/ms-agent-dotnet.md +2 -2
  54. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
  55. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  56. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  57. package/onboarding/prompts/framework/strands-python.md +2 -2
  58. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  59. package/onboarding/prompts/frontend/angular.md +5 -5
  60. package/onboarding/prompts/frontend/nextjs.md +4 -4
  61. package/onboarding/prompts/frontend/plan.md +7 -7
  62. package/onboarding/prompts/frontend/react-native.md +2 -2
  63. package/onboarding/prompts/frontend/react-spa.md +2 -2
  64. package/onboarding/prompts/frontend/vue.md +2 -2
  65. package/onboarding/prompts/implementation/build-and-validate.md +21 -16
  66. package/onboarding/prompts/proof/complete.md +12 -11
  67. package/onboarding/prompts/proof/oss-baseline.md +5 -5
  68. package/onboarding/prompts/proof/round-trip.md +10 -10
  69. package/onboarding/prompts/research/gather.md +41 -9
  70. package/onboarding/prompts/research/route.md +25 -4
  71. package/onboarding/prompts/starter/clone.md +5 -5
  72. package/onboarding/prompts/stopped/run-failed.md +30 -1
  73. package/onboarding/prompts/subagent/create-plan.md +7 -1
  74. package/onboarding/prompts/subagent/implement-and-validate.md +2 -1
  75. package/onboarding/prompts/subagent/inspect-repository.md +43 -16
  76. package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
  77. package/onboarding/prompts/subagent/prove-round-trip.md +27 -10
  78. package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
  79. package/package.json +4 -3
  80. package/release/release-tool.js +1 -1
@@ -27,10 +27,10 @@ and validation results.
27
27
  After validation and each repair, run:
28
28
 
29
29
  ```text
30
- npx --yes copilotkit@4.11.0 onboard audit
30
+ npx --yes copilotkit@4.12.0 onboard audit
31
31
  ```
32
32
 
33
- Continue only when it starts with `Status: passed`. A path under `Authorized to change:` is
33
+ Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
34
34
  not a finding. Carry it into the final summary with its reason.
35
35
 
36
36
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -38,7 +38,7 @@ with the implementation subagent's `Files changed` section. If that section does
38
38
  the path, accept the developer's external change:
39
39
 
40
40
  ```text
41
- npx --yes copilotkit@4.11.0 onboard protect --accept-external --path <path>
41
+ npx --yes copilotkit@4.12.0 onboard protect --accept-external --path <path>
42
42
  ```
43
43
 
44
44
  For an env file where the developer placed a requested credential, use
@@ -47,24 +47,24 @@ or its report does not settle who changed it, ask the developer to allow the unp
47
47
  change. Only after they agree, record their answer:
48
48
 
49
49
  ```text
50
- npx --yes copilotkit@4.11.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
50
+ npx --yes copilotkit@4.12.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
51
51
  ```
52
52
 
53
53
  Run the audit again after each accepted or authorized change. If it still fails, or starts
54
54
  with `Status: blocked`, route out and stop:
55
55
 
56
56
  ```text
57
- npx --yes copilotkit@4.11.0 onboard read feature/stop
57
+ npx --yes copilotkit@4.12.0 onboard read feature/stop
58
58
  ```
59
59
 
60
60
  When implementation validation passes, report it:
61
61
 
62
62
  ```text
63
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase build-validated
63
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase build-validated
64
64
  ```
65
65
 
66
66
  If validation cannot pass, or this run needs a prerequisite the app does not have, use
67
67
  the feature stop route above without further changes.
68
68
 
69
69
  Otherwise run
70
- `npx --yes copilotkit@4.11.0 onboard read feature/channels/proof`.
70
+ `npx --yes copilotkit@4.12.0 onboard read feature/channels/proof`.
@@ -16,23 +16,23 @@ route after the audit rules below.
16
16
  Report each attempt at the proof as it ends, counting from one:
17
17
 
18
18
  ```text
19
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase journey-attempted --attempt 1
19
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase journey-attempted --attempt 1
20
20
  ```
21
21
 
22
22
  Report each repair cycle the same way, counting from one:
23
23
 
24
24
  ```text
25
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase repair-attempted --attempt 1
25
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase repair-attempted --attempt 1
26
26
  ```
27
27
 
28
28
  After the final attempt, report the gate exactly once:
29
29
 
30
30
  ```text
31
- npx --yes copilotkit@4.11.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
31
+ npx --yes copilotkit@4.12.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
32
32
  ```
33
33
 
34
34
  Use `passed` only for a proved mention reply, `failed` for an attempted proof that
35
- failed, and `skipped` when the proof did not run. Then run `npx --yes copilotkit@4.11.0 onboard audit`.
35
+ failed, and `skipped` when the proof did not run. Then run `npx --yes copilotkit@4.12.0 onboard audit`.
36
36
  Continue only when it starts with `Status: passed`.
37
37
 
38
38
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -47,11 +47,11 @@ Run the audit again after each accepted or authorized change.
47
47
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
48
48
 
49
49
  ```text
50
- npx --yes copilotkit@4.11.0 onboard read feature/stop
50
+ npx --yes copilotkit@4.12.0 onboard read feature/stop
51
51
  ```
52
52
 
53
53
  When the audit passes and the mention proof passed, run
54
- `npx --yes copilotkit@4.11.0 onboard read feature/complete` with the actual surface
54
+ `npx --yes copilotkit@4.12.0 onboard read feature/complete` with the actual surface
55
55
  outcome. Use `--visual-check performed` only when a browser drove Slack or Teams web
56
56
  and proved the mention reply. Use `--visual-check skipped-no-browser-tool` only when
57
57
  no browser tool was available.
@@ -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.11.0 onboard identify --coding-agent <coding-agent-slug>
6
+ npx --yes copilotkit@4.12.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.11.0 onboard protect
20
+ npx --yes copilotkit@4.12.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
@@ -43,7 +43,7 @@ This one does not.
43
43
  Wait for the inspection subagent to finish. Then report that the inspection came back:
44
44
 
45
45
  ```text
46
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase research-returned
46
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase research-returned
47
47
  ```
48
48
 
49
49
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -54,7 +54,7 @@ without cloning. Do not switch to a custom build in silence. Name the missing to
54
54
  Offer a custom headless build as a later path. Then route out:
55
55
 
56
56
  ```text
57
- npx --yes copilotkit@4.11.0 onboard read feature/stop
57
+ npx --yes copilotkit@4.12.0 onboard read feature/stop
58
58
  ```
59
59
 
60
60
  Do not run login, select Intelligence, or create a credential until the developer
@@ -69,12 +69,14 @@ Slack e2e harness. Name focused tests and a real mention proof on the chosen
69
69
  provider. Ask for approval separately.
70
70
 
71
71
  The plan must list every protected path it needs to change under `Authorization requested`,
72
- with one sentence explaining why. Write `None` when it needs none.
72
+ with one sentence explaining why. Write `None` when it needs none. Authorization covers
73
+ changing a protected path, not removing it, so the plan must not delete, move, or rename
74
+ one.
73
75
 
74
76
  After approval, record each approved path before implementation:
75
77
 
76
78
  ```text
77
- npx --yes copilotkit@4.11.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
79
+ npx --yes copilotkit@4.12.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
78
80
  ```
79
81
 
80
82
  If an approved path changed after capture and no implementation step has run, add
@@ -84,7 +86,7 @@ authorize a path the approved plan did not list.
84
86
  Then report the plan this run is about to implement:
85
87
 
86
88
  ```text
87
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase plan-written
89
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase plan-written
88
90
  ```
89
91
 
90
- Then run `npx --yes copilotkit@4.11.0 onboard read feature/channels/implement`.
92
+ Then run `npx --yes copilotkit@4.12.0 onboard read feature/channels/implement`.
@@ -15,10 +15,10 @@ 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.11.0 onboard audit
18
+ npx --yes copilotkit@4.12.0 onboard audit
19
19
  ```
20
20
 
21
- Continue only when it starts with `Status: passed`. A path under `Authorized to change:` is
21
+ Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
22
22
  not a finding. Carry it into the final summary with its reason.
23
23
 
24
24
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -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.11.0 onboard protect --accept-external --path <path>
29
+ npx --yes copilotkit@4.12.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.11.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
38
+ npx --yes copilotkit@4.12.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.11.0 onboard read feature/stop
45
+ npx --yes copilotkit@4.12.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.11.0 onboard checkpoint --phase build-validated
51
+ npx --yes copilotkit@4.12.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.11.0 onboard read feature/chat-suggestions/proof`.
58
+ `npx --yes copilotkit@4.12.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.11.0 onboard checkpoint --phase journey-attempted --attempt 1
15
+ npx --yes copilotkit@4.12.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.11.0 onboard checkpoint --phase repair-attempted --attempt 1
21
+ npx --yes copilotkit@4.12.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.11.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
27
+ npx --yes copilotkit@4.12.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.11.0 onboard audit`.
31
+ and `skipped` when the proof could not run. Then run `npx --yes copilotkit@4.12.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.11.0 onboard read feature/stop
46
+ npx --yes copilotkit@4.12.0 onboard read feature/stop
47
47
  ```
48
48
 
49
49
  When the audit passes, run
50
- `npx --yes copilotkit@4.11.0 onboard read feature/complete` with the real browser-proof
50
+ `npx --yes copilotkit@4.12.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.11.0 onboard protect
9
+ npx --yes copilotkit@4.12.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.11.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
18
+ `/info`, `npx --yes copilotkit@4.12.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.11.0 onboard checkpoint --phase research-returned
26
+ npx --yes copilotkit@4.12.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.11.0 onboard read feature/stop
36
+ npx --yes copilotkit@4.12.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
@@ -48,12 +48,14 @@ context-dependent follow-ups. Show an approved-plan-sized diff, a focused test,
48
48
  that a visible suggestion submits the intended message.
49
49
 
50
50
  The plan must list every protected path it needs to change under `Authorization requested`,
51
- with one sentence explaining why. Write `None` when it needs none.
51
+ with one sentence explaining why. Write `None` when it needs none. Authorization covers
52
+ changing a protected path, not removing it, so the plan must not delete, move, or rename
53
+ one.
52
54
 
53
55
  After approval, record each approved path before implementation:
54
56
 
55
57
  ```text
56
- npx --yes copilotkit@4.11.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
58
+ npx --yes copilotkit@4.12.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
57
59
  ```
58
60
 
59
61
  If an approved path changed after capture and no implementation step has run, add
@@ -63,7 +65,7 @@ authorize a path the approved plan did not list.
63
65
  Then report the plan this run is about to implement:
64
66
 
65
67
  ```text
66
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase plan-written
68
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase plan-written
67
69
  ```
68
70
 
69
- Then run `npx --yes copilotkit@4.11.0 onboard read feature/chat-suggestions/implement`.
71
+ Then run `npx --yes copilotkit@4.12.0 onboard read feature/chat-suggestions/implement`.
@@ -3,7 +3,7 @@
3
3
  Use the outcome the proof step observed. Run:
4
4
 
5
5
  ```text
6
- npx --yes copilotkit@4.11.0 onboard complete --visual-check <performed|skipped-no-browser-tool|failed>
6
+ npx --yes copilotkit@4.12.0 onboard complete --visual-check <performed|skipped-no-browser-tool|failed>
7
7
  ```
8
8
 
9
9
  Use `performed` only when browser control drove the real user-visible surface. Use
@@ -5,12 +5,57 @@ valid existing Intelligence selection. If it is absent, use the documented strea
5
5
  `login --json` session, let the developer select or create the Intelligence project, and
6
6
  require the secret-safe project/key provisioning summary before wiring the runtime.
7
7
 
8
+ ## If you stop in this phase
9
+
10
+ Four rules below end this run without completing it: an entitlement the platform will not
11
+ resolve, a container id that never resolves, an audit that stays blocked, and validation
12
+ that cannot pass. Each one stops onboarding for a developer who has already approved a
13
+ plan. Name the exact command, id, and error code that stopped you: a report that names only
14
+ the step cannot be acted on. Send one short report before you stop. Run the friction
15
+ command without another developer question. Do not ask the developer about telemetry: the
16
+ command applies the setting they already have.
17
+
18
+ ```text
19
+ npx --yes copilotkit@4.12.0 onboard friction --phase stop --category <slug>
20
+ ```
21
+
22
+ Write one or two sentences to standard input: the step you stopped at and what stopped it.
23
+ Pick the category that fits from docs-missing, docs-wrong, docs-sequential, cli-gap,
24
+ sdk-gap, environment, port-collision, credential, validation-loop, and other. Leave
25
+ --cost-seconds off. A run that stopped cannot separate one papercut's cost from the cost of
26
+ the whole run, so the estimate is optional on a stop report and only there. Send no secrets,
27
+ source code, logs, or command output. The command refuses a report that carries any of
28
+ those, prints the reason, and exits zero. A refused report is not a failed step. Send the
29
+ report, then stop.
30
+
31
+ A refusal by the platform is the one exception. It reaches `feature/blocked-by-plan`, which
32
+ reports the ending by itself and says to file nothing further.
33
+
8
34
  After the project is selected, settle the container from the terminal.
9
35
 
36
+ Whichever of the two reads below runs first also answers the entitlement question, because
37
+ a read carries the same availability gate as the create. Read `status` and `error.code`
38
+ from its payload. Route on the code rather than on the exit status.
39
+ `LEARNING_NOT_ENABLED` means the platform refused Learning to this organization. That is a
40
+ settled refusal rather than a missing baseline, so stop here, before any file change, and
41
+ take its own ending:
42
+
43
+ ```text
44
+ npx --yes copilotkit@4.12.0 onboard read feature/blocked-by-plan
45
+ ```
46
+
47
+ `LEARNING_AVAILABILITY_UNAVAILABLE` means the platform did not resolve the answer. It is
48
+ unknown rather than denied. Run the same command once more. If the second call answers the
49
+ same way, report the code and stop onboarding.
50
+
51
+ `feature/learning/start` asks this question first, and a run that arrives here already
52
+ signed in has its answer. A run that reached this prompt signed out could not be asked
53
+ then, so the read below is where its refusal surfaces.
54
+
10
55
  When the plan or the repository already names an id, ask about that one id and nothing else:
11
56
 
12
57
  ```text
13
- npx --yes copilotkit@4.11.0 learning containers get <id> --json
58
+ npx --yes copilotkit@4.12.0 learning containers get <id> --json
14
59
  ```
15
60
 
16
61
  One call answers it, and no list is needed.
@@ -18,7 +63,7 @@ One call answers it, and no list is needed.
18
63
  When no id is in hand, survey what the project holds:
19
64
 
20
65
  ```text
21
- npx --yes copilotkit@4.11.0 learning containers list --json
66
+ npx --yes copilotkit@4.12.0 learning containers list --json
22
67
  ```
23
68
 
24
69
  One call returns at most 500 containers. When `nextCursor` in the result is not null, read
@@ -29,7 +74,7 @@ second container for work the first one already covers.
29
74
  Report what the read found before asking anyone anything:
30
75
 
31
76
  ```text
32
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase container-surveyed
77
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase container-surveyed
33
78
  ```
34
79
 
35
80
  Everything after this waits on a person, so a run that stops past this point stopped on a
@@ -47,10 +92,24 @@ person. Route per user only when the developer asks for it, and do it in their s
47
92
  rather than in more containers: `getLearningContainerId` receives the resolved application
48
93
  user, so the callback can return a different id per tier or per customer.
49
94
 
50
- Use a descriptive lowercase hyphenated id of 1-64 characters:
95
+ Ask the CLI for the id rather than spelling one yourself:
96
+
97
+ ```text
98
+ npx --yes copilotkit@4.12.0 learning containers default-id --json
99
+ ```
100
+
101
+ It derives the project-scoped id from the selected project's slug, reads the local project
102
+ record only, and needs no credential. `"status": "success"` carries it in `containerId`.
103
+ `"status": "skipped"` means there is no id to derive: `slug-unusable` for a slug that
104
+ leaves nothing the id contract accepts, and `no-project-record` for a directory with no
105
+ selected project. Only then pick a descriptive lowercase hyphenated id of 1-64 characters.
106
+
107
+ Both this intent and a first onboarding run settle the same project's container, and the
108
+ run that spells the id differently gives one project two containers, each below the line
109
+ above on its own. One command is what keeps the two spellings identical.
51
110
 
52
111
  ```text
53
- npx --yes copilotkit@4.11.0 learning containers create --id <id> --name <name> --json
112
+ npx --yes copilotkit@4.12.0 learning containers create --id <id> --name <name> --json
54
113
  ```
55
114
 
56
115
  An id already in use answers `LEARNING_CONTAINER_ALREADY_EXISTS`. That is a container to
@@ -65,7 +124,7 @@ or a guessed id.
65
124
  Then report that the container is settled, before any edit:
66
125
 
67
126
  ```text
68
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase container-settled
127
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase container-settled
69
128
  ```
70
129
 
71
130
  Everything above happens between two prompts, so a run that stopped on a developer who could
@@ -86,16 +145,16 @@ non-zero on an app that is working. Pass what `identifyUser` reads with a repeat
86
145
  It is not a defect to repair.
87
146
 
88
147
  Run focused tests and
89
- `npx --yes copilotkit@4.11.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
148
+ `npx --yes copilotkit@4.12.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
90
149
  Repair changed-file failures and record secret-safe evidence.
91
150
 
92
151
  After validation and each repair, run:
93
152
 
94
153
  ```text
95
- npx --yes copilotkit@4.11.0 onboard audit
154
+ npx --yes copilotkit@4.12.0 onboard audit
96
155
  ```
97
156
 
98
- Continue only when it starts with `Status: passed`. A path under `Authorized to change:` is
157
+ Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
99
158
  not a finding. Carry it into the final summary with its reason.
100
159
 
101
160
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -103,7 +162,7 @@ with the implementation subagent's `Files changed` section. If that section does
103
162
  the path, accept the developer's external change:
104
163
 
105
164
  ```text
106
- npx --yes copilotkit@4.11.0 onboard protect --accept-external --path <path>
165
+ npx --yes copilotkit@4.12.0 onboard protect --accept-external --path <path>
107
166
  ```
108
167
 
109
168
  For an env file where the developer placed a requested credential, use
@@ -112,24 +171,24 @@ or its report does not settle who changed it, ask the developer to allow the unp
112
171
  change. Only after they agree, record their answer:
113
172
 
114
173
  ```text
115
- npx --yes copilotkit@4.11.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
174
+ npx --yes copilotkit@4.12.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
116
175
  ```
117
176
 
118
177
  Run the audit again after each accepted or authorized change. If it still fails, or starts
119
178
  with `Status: blocked`, route out and stop:
120
179
 
121
180
  ```text
122
- npx --yes copilotkit@4.11.0 onboard read feature/stop
181
+ npx --yes copilotkit@4.12.0 onboard read feature/stop
123
182
  ```
124
183
 
125
184
  When implementation validation passes, report it:
126
185
 
127
186
  ```text
128
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase build-validated
187
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase build-validated
129
188
  ```
130
189
 
131
190
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
132
191
  the feature stop route above without further changes.
133
192
 
134
193
  Otherwise run
135
- `npx --yes copilotkit@4.11.0 onboard read feature/learning/proof`.
194
+ `npx --yes copilotkit@4.12.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.11.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --expect-learning-container <id> --json
10
+ npx --yes copilotkit@4.12.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
@@ -25,30 +25,31 @@ process IDs, and safe stop commands. Repair changed-file defects and repeat.
25
25
  Tell the developer what happens next, because a correct run looks like a broken one
26
26
  otherwise. Learning runs on its own: the first automatic run needs new threads from 15
27
27
  distinct conversations in this container, and only the newest snapshot of each thread
28
- counts. Threads that already ran before this change are never pulled in, because a thread
29
- takes its container before its first agent run. So the container starts empty on purpose.
28
+ counts. Existing threads can join this container if they never belonged to another one.
29
+ Their surviving earlier history then becomes eligible for collection and counts toward the
30
+ same threshold. Existing threads do not join automatically just because a container exists.
30
31
 
31
32
  Report each attempt at the proof as it ends, counting from one:
32
33
 
33
34
  ```text
34
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase journey-attempted --attempt 1
35
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase journey-attempted --attempt 1
35
36
  ```
36
37
 
37
38
  Report each repair cycle the same way, counting from one:
38
39
 
39
40
  ```text
40
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase repair-attempted --attempt 1
41
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase repair-attempted --attempt 1
41
42
  ```
42
43
 
43
44
  After the final attempt, report the gate exactly once:
44
45
 
45
46
  ```text
46
- npx --yes copilotkit@4.11.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
47
+ npx --yes copilotkit@4.12.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
47
48
  ```
48
49
 
49
50
  Use `passed` only for a proved Container assignment, `failed` for an attempted proof that
50
51
  failed, and `skipped` when the proof could not run. Then run
51
- `npx --yes copilotkit@4.11.0 onboard audit`. Continue only when it starts with
52
+ `npx --yes copilotkit@4.12.0 onboard audit`. Continue only when it starts with
52
53
  `Status: passed`.
53
54
 
54
55
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -63,9 +64,9 @@ Run the audit again after each accepted or authorized change.
63
64
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
64
65
 
65
66
  ```text
66
- npx --yes copilotkit@4.11.0 onboard read feature/stop
67
+ npx --yes copilotkit@4.12.0 onboard read feature/stop
67
68
  ```
68
69
 
69
70
  When the audit passes, run
70
- `npx --yes copilotkit@4.11.0 onboard read feature/complete` with the actual surface
71
+ `npx --yes copilotkit@4.12.0 onboard read feature/complete` with the actual surface
71
72
  outcome.
@@ -4,10 +4,62 @@ Treat Learning as a managed Intelligence feature that assigns real threads to a
4
4
  Learning Container. Orchestrate with separate read-only, implementation, and proof
5
5
  subagents. Work only inside the target project and preserve its existing agent and chat.
6
6
 
7
+ ## If you stop in this phase
8
+
9
+ Name the exact command, code, or check that stopped you, then send one short report. Run the
10
+ friction command without another developer question. Do not ask the developer about
11
+ telemetry: the command applies the setting they already have.
12
+
13
+ ```text
14
+ npx --yes copilotkit@4.12.0 onboard friction --phase stop --category <slug>
15
+ ```
16
+
17
+ Write one or two sentences to standard input: the step you stopped at and what stopped it.
18
+ Pick the category that fits from docs-missing, docs-wrong, docs-sequential, cli-gap,
19
+ sdk-gap, environment, port-collision, credential, validation-loop, and other. Leave
20
+ --cost-seconds off. A run that stopped cannot separate one papercut's cost from the cost of
21
+ the whole run, so the estimate is optional on a stop report and only there. Send no secrets,
22
+ source code, logs, or command output. A refused report is not a failed step: reword it and
23
+ send it again, or stop without a report.
24
+
25
+ Ask the platform whether this organization may use Learning before doing any work. The
26
+ read carries the same availability gate as the create, so it answers the entitlement
27
+ question in one call and writes nothing:
28
+
29
+ ```text
30
+ copilotkit learning containers list --json
31
+ ```
32
+
33
+ Read `status` and `error.code` from the payload. Route on the code rather than on the exit
34
+ status:
35
+
36
+ - `"status": "success"` means Learning is available here. Continue with the capture below.
37
+ - `LEARNING_NOT_ENABLED` means the platform refused Learning to this organization. Stop
38
+ before the capture, the inspection, and any edit:
39
+
40
+ ```text
41
+ npx --yes copilotkit@4.12.0 onboard read feature/blocked-by-plan
42
+ ```
43
+
44
+ - `LEARNING_AVAILABILITY_UNAVAILABLE` means the platform did not resolve the answer. It is
45
+ unknown rather than denied. Run the same command once more. If the second call answers
46
+ the same way, report the code and stop onboarding.
47
+ - `AUTH_FAILED` and `PREREQUISITE_MISSING` mean the probe could not ask. This run reaches
48
+ this prompt before any login or project selection, so the CLI holds no session yet, or
49
+ this directory has no selected Intelligence project. Neither is a refusal. Do not stop,
50
+ and do not read `feature/blocked-by-plan`. Continue with the capture below.
51
+ `feature/learning/implement` signs in, selects the project, and asks the same question
52
+ there, still before any file changes.
53
+ - Any other code: report it and stop onboarding.
54
+
55
+ A refusal is not a missing prerequisite. It has its own ending, and `feature/stop` below is
56
+ for a baseline this project does not have. A run that has no session yet is a third thing
57
+ again: it has no answer, so it carries the question forward rather than ending on it.
58
+
7
59
  Before any subagent or project process runs, capture the developer's existing work:
8
60
 
9
61
  ```text
10
- npx --yes copilotkit@4.11.0 onboard protect
62
+ npx --yes copilotkit@4.12.0 onboard protect
11
63
  ```
12
64
 
13
65
  Keep the exact protected path list it prints and give that list to every subagent. No
@@ -23,7 +75,7 @@ onboarding.
23
75
  Wait for the inspection subagent to finish. Then report that the inspection came back:
24
76
 
25
77
  ```text
26
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase research-returned
78
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase research-returned
27
79
  ```
28
80
 
29
81
  A refused checkpoint prints its reason and leaves onboarding unaffected. It is not a
@@ -33,7 +85,7 @@ If the inspection did not prove the baseline this intent extends, stop here with
33
85
  changing files:
34
86
 
35
87
  ```text
36
- npx --yes copilotkit@4.11.0 onboard read feature/stop
88
+ npx --yes copilotkit@4.12.0 onboard read feature/stop
37
89
  ```
38
90
 
39
91
  Fetch the current official guides before planning:
@@ -58,12 +110,14 @@ the documented `getLearningContainerId` selector, validation, and a visible assi
58
110
  proof. Ask for approval separately.
59
111
 
60
112
  The plan must list every protected path it needs to change under `Authorization requested`,
61
- with one sentence explaining why. Write `None` when it needs none.
113
+ with one sentence explaining why. Write `None` when it needs none. Authorization covers
114
+ changing a protected path, not removing it, so the plan must not delete, move, or rename
115
+ one.
62
116
 
63
117
  After approval, record each approved path before implementation:
64
118
 
65
119
  ```text
66
- npx --yes copilotkit@4.11.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
120
+ npx --yes copilotkit@4.12.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
67
121
  ```
68
122
 
69
123
  If an approved path changed after capture and no implementation step has run, add
@@ -73,7 +127,7 @@ authorize a path the approved plan did not list.
73
127
  Then report the plan this run is about to implement:
74
128
 
75
129
  ```text
76
- npx --yes copilotkit@4.11.0 onboard checkpoint --phase plan-written
130
+ npx --yes copilotkit@4.12.0 onboard checkpoint --phase plan-written
77
131
  ```
78
132
 
79
- Then run `npx --yes copilotkit@4.11.0 onboard read feature/learning/implement`.
133
+ Then run `npx --yes copilotkit@4.12.0 onboard read feature/learning/implement`.