copilotkit 4.23.1 → 4.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.md +164 -17
  2. package/cli-build-info.json +8 -8
  3. package/exporters/langgraph/README.md +33 -0
  4. package/exporters/langgraph/export_checkpointer.py +16 -0
  5. package/index.js +10909 -8245
  6. package/onboarding/index.json +2 -1
  7. package/onboarding/prompts/authenticate/start.md +50 -42
  8. package/onboarding/prompts/conversion/plan.md +3 -3
  9. package/onboarding/prompts/credentials/finalize-plan.md +30 -8
  10. package/onboarding/prompts/credentials/plan.md +115 -49
  11. package/onboarding/prompts/credentials/settle-credentials.md +16 -5
  12. package/onboarding/prompts/credentials/write-plan.md +15 -15
  13. package/onboarding/prompts/deployment/choose-local.md +62 -14
  14. package/onboarding/prompts/deployment/local-evaluation.md +37 -7
  15. package/onboarding/prompts/fallback/best-effort.md +8 -8
  16. package/onboarding/prompts/feature/a2ui/implement.md +15 -8
  17. package/onboarding/prompts/feature/a2ui/plan.md +15 -7
  18. package/onboarding/prompts/feature/a2ui/proof.md +14 -7
  19. package/onboarding/prompts/feature/a2ui/start.md +26 -8
  20. package/onboarding/prompts/feature/channels/implement.md +21 -9
  21. package/onboarding/prompts/feature/channels/plan.md +15 -7
  22. package/onboarding/prompts/feature/channels/proof.md +14 -7
  23. package/onboarding/prompts/feature/channels/start.md +30 -19
  24. package/onboarding/prompts/feature/chat-suggestions/implement.md +15 -8
  25. package/onboarding/prompts/feature/chat-suggestions/plan.md +15 -7
  26. package/onboarding/prompts/feature/chat-suggestions/proof.md +14 -7
  27. package/onboarding/prompts/feature/chat-suggestions/start.md +26 -8
  28. package/onboarding/prompts/feature/complete.md +2 -2
  29. package/onboarding/prompts/feature/learning/implement.md +32 -18
  30. package/onboarding/prompts/feature/learning/plan.md +15 -7
  31. package/onboarding/prompts/feature/learning/proof.md +76 -9
  32. package/onboarding/prompts/feature/learning/start.md +26 -8
  33. package/onboarding/prompts/feature/open-generative-ui/implement.md +15 -8
  34. package/onboarding/prompts/feature/open-generative-ui/plan.md +15 -7
  35. package/onboarding/prompts/feature/open-generative-ui/proof.md +14 -7
  36. package/onboarding/prompts/feature/open-generative-ui/start.md +26 -8
  37. package/onboarding/prompts/feature/realtime-sync/implement.md +20 -12
  38. package/onboarding/prompts/feature/realtime-sync/plan.md +15 -7
  39. package/onboarding/prompts/feature/realtime-sync/proof.md +14 -7
  40. package/onboarding/prompts/feature/realtime-sync/start.md +25 -7
  41. package/onboarding/prompts/feature/rich-threads/implement.md +21 -13
  42. package/onboarding/prompts/feature/rich-threads/plan.md +15 -7
  43. package/onboarding/prompts/feature/rich-threads/proof.md +14 -7
  44. package/onboarding/prompts/feature/rich-threads/start.md +25 -7
  45. package/onboarding/prompts/feature/stop.md +9 -3
  46. package/onboarding/prompts/feature/voice/implement.md +15 -8
  47. package/onboarding/prompts/feature/voice/plan.md +16 -8
  48. package/onboarding/prompts/feature/voice/proof.md +14 -7
  49. package/onboarding/prompts/feature/voice/start.md +26 -8
  50. package/onboarding/prompts/framework/ag2.md +6 -5
  51. package/onboarding/prompts/framework/agno.md +6 -5
  52. package/onboarding/prompts/framework/built-in.md +9 -6
  53. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  54. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  55. package/onboarding/prompts/framework/crewai-flows.md +12 -4
  56. package/onboarding/prompts/framework/custom-ag-ui.md +8 -2
  57. package/onboarding/prompts/framework/deep-agents.md +6 -5
  58. package/onboarding/prompts/framework/google-adk.md +2 -2
  59. package/onboarding/prompts/framework/langgraph-fastapi.md +8 -5
  60. package/onboarding/prompts/framework/langgraph-python.md +8 -5
  61. package/onboarding/prompts/framework/langgraph-typescript.md +8 -5
  62. package/onboarding/prompts/framework/llamaindex.md +6 -5
  63. package/onboarding/prompts/framework/mastra.md +9 -6
  64. package/onboarding/prompts/framework/ms-agent-dotnet.md +12 -4
  65. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +12 -4
  66. package/onboarding/prompts/framework/ms-agent-python.md +6 -5
  67. package/onboarding/prompts/framework/pydantic-ai.md +6 -5
  68. package/onboarding/prompts/framework/strands-python.md +10 -6
  69. package/onboarding/prompts/framework/strands-typescript.md +10 -6
  70. package/onboarding/prompts/frontend/angular.md +10 -3
  71. package/onboarding/prompts/frontend/nextjs.md +36 -3
  72. package/onboarding/prompts/frontend/plan.md +13 -7
  73. package/onboarding/prompts/frontend/react-native.md +9 -2
  74. package/onboarding/prompts/frontend/react-spa.md +9 -2
  75. package/onboarding/prompts/frontend/vue.md +9 -2
  76. package/onboarding/prompts/implementation/build-and-validate.md +49 -21
  77. package/onboarding/prompts/proof/complete.md +3 -3
  78. package/onboarding/prompts/proof/oss-baseline.md +30 -13
  79. package/onboarding/prompts/proof/round-trip.md +55 -17
  80. package/onboarding/prompts/research/gather.md +21 -11
  81. package/onboarding/prompts/research/merge.md +8 -2
  82. package/onboarding/prompts/research/preflight.md +2 -2
  83. package/onboarding/prompts/research/route.md +14 -7
  84. package/onboarding/prompts/starter/clone.md +151 -9
  85. package/onboarding/prompts/stopped/run-failed.md +8 -2
  86. package/onboarding/prompts/subagent/create-plan.md +9 -2
  87. package/onboarding/prompts/subagent/implement-and-validate.md +2 -2
  88. package/onboarding/prompts/subagent/inspect-repository.md +12 -6
  89. package/onboarding/prompts/subagent/prove-oss-baseline.md +6 -1
  90. package/onboarding/prompts/subagent/prove-round-trip.md +53 -10
  91. package/onboarding/prompts/unsupported/no-validated-path.md +8 -2
  92. package/package.json +1 -1
  93. package/release/release-tool.js +18 -1
  94. package/services/local-auth-worker.js +175 -159
@@ -19,11 +19,18 @@ not edit it. It returns a result that starts with `Status: blocked` and names th
19
19
  Blockers.
20
20
 
21
21
  That result is a question for the developer. The file has not changed yet, so consent can
22
- still go on the record. Name the file and why the fix needs it, then end your turn and wait
23
- for the developer's answer. If they allow it, record their answer before any edit:
22
+ still go on the record. Name the file and why the fix needs it.
23
+ Before you end your turn to wait for the developer, report the pause:
24
24
 
25
25
  ```text
26
- npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
26
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
27
+ ```
28
+
29
+ Then end your turn and wait for the developer's answer. If they allow it, record their
30
+ answer before any edit:
31
+
32
+ ```text
33
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
27
34
  ```
28
35
 
29
36
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -36,11 +43,11 @@ Report the outcome of each attempt as it ends, before any repair. The command co
36
43
  attempts and the repairs:
37
44
 
38
45
  ```text
39
- npx --prefer-offline --yes copilotkit@4.23.1 onboard proof --step round-trip --outcome <passed|failed|skipped>
46
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
40
47
  ```
41
48
 
42
49
  Use `passed` only for proved two-client sync, `failed` for an attempted proof that failed,
43
- and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.23.1 onboard audit`.
50
+ and `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.25.0 onboard audit`.
44
51
  Continue only when it starts with `Status: passed`.
45
52
 
46
53
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -55,8 +62,8 @@ the path and the change the audit reports. Run the audit again after each accept
55
62
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
56
63
 
57
64
  ```text
58
- npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/stop
65
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
59
66
  ```
60
67
 
61
68
  When the audit passes, run
62
- `npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/complete` with the actual outcome.
69
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/complete` with the actual outcome.
@@ -4,6 +4,24 @@ Treat realtime sync as the Intelligence thread-realtime plane, not as a generic
4
4
  exercise. Act as the orchestrator and delegate read-only inspection, implementation, and
5
5
  two-context proof to subagents within the target project.
6
6
 
7
+ ## First, say which coding agent you are
8
+
9
+ Run this before anything else in this prompt:
10
+
11
+ ```text
12
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
13
+ ```
14
+
15
+ Report your product slug, such as `codex` or `claude-code`. The command needs no sign-in,
16
+ browser, or project. If this run already ran `onboard identify`, skip this step.
17
+
18
+ - `--model`: copy the model id exactly as your instructions write it. Without an exact
19
+ model id, leave out `--model` rather than guess.
20
+ - `--model-family`: give it even without `--model`. Closest of: `claude-opus`,
21
+ `claude-sonnet`, `claude-haiku`, `gpt-5`, `gemini`, `grok`, `glm`, `minimax`, `mimo`,
22
+ `deepseek`, `qwen`, `kimi`, else the model's series. Leave it out if you do not know it.
23
+ - Never give your product slug as a model, or as an unlisted family.
24
+
7
25
  ## Waits, stops, and subagents
8
26
 
9
27
  A run that starts here has not read these rules yet, so they come first. They cover this
@@ -20,13 +38,13 @@ carry on. Keep a read-only assignment read-only. If no subagent works at all, re
20
38
  once:
21
39
 
22
40
  ```text
23
- npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase delegation-unavailable
41
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase delegation-unavailable
24
42
  ```
25
43
 
26
44
  Before you end your turn to wait for the developer, report the pause:
27
45
 
28
46
  ```text
29
- npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase awaiting-developer
47
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
30
48
  ```
31
49
 
32
50
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
@@ -36,7 +54,7 @@ If you stop this run, send one short report before you stop. The friction comman
36
54
  the telemetry setting the developer already chose, so it needs no separate question.
37
55
 
38
56
  ```text
39
- npx --prefer-offline --yes copilotkit@4.23.1 onboard friction --phase stop --category <slug> --message "<sentences>"
57
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard friction --phase stop --category <slug> --message "<sentences>"
40
58
  ```
41
59
 
42
60
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -50,7 +68,7 @@ one scoped fix, and sends the report itself when no fix is approved.
50
68
  Before any subagent or project process runs, capture the developer's existing work:
51
69
 
52
70
  ```text
53
- npx --prefer-offline --yes copilotkit@4.23.1 onboard protect
71
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect
54
72
  ```
55
73
 
56
74
  Keep the exact protected path list it prints and give that list to every subagent. No
@@ -65,20 +83,20 @@ round trip and inspect `/info`.
65
83
  Wait for the inspection subagent to finish. Then report that the inspection came back:
66
84
 
67
85
  ```text
68
- npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase research-returned
86
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase research-returned
69
87
  ```
70
88
 
71
89
  If the inspection did not prove the baseline this intent extends, stop here without
72
90
  changing files:
73
91
 
74
92
  ```text
75
- npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/stop
93
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
76
94
  ```
77
95
 
78
96
  When the inspection proved what this intent needs, read the next prompt now, in this turn:
79
97
 
80
98
  ```text
81
- npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/realtime-sync/plan
99
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/realtime-sync/plan
82
100
  ```
83
101
 
84
102
  That prompt holds the plan, the developer's approval, and the paths the plan changes.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Delegate implementation to one subagent with the approved plan and fetched official guides.
4
4
  If repository evidence does not prove an existing valid Intelligence selection, run
5
- `npx --prefer-offline --yes copilotkit@4.23.1 login --json` and follow its single streaming session. Then
5
+ `npx --prefer-offline --yes copilotkit@4.25.0 login --json` and follow its single streaming session. Then
6
6
  list projects, show the developer the current/recent choices, and select or create one only
7
7
  after they choose. Require the secret-safe selection summary to confirm the project file,
8
8
  environment file, and key provisioning; never display a key. If existing configuration is
@@ -15,19 +15,20 @@ surface. Add the documented drawer only if the approved plan selected it.
15
15
 
16
16
  An Intelligence runtime requires `identifyUser`, and it usually reads a signed-in session
17
17
  that a CLI request does not carry. That makes the round trip UNKNOWN and the command exit
18
- non-zero on an app that is working. Pass what `identifyUser` reads with a repeatable
19
- `--header "Name: value"`, or record UNKNOWN as the expected result for an auth-gated app.
20
- It is not a defect to repair.
18
+ non-zero on an app that is working. It is not a defect to repair. The proof step proves
19
+ such an app on a thread the app created, with `--thread <id>`, which needs no session. Pass
20
+ `--header "Name: value"` only when the developer offers what `identifyUser` reads, or
21
+ record UNKNOWN as the expected result here.
21
22
 
22
23
  Run focused type/test commands, then start the app and run
23
- `npx --prefer-offline --yes copilotkit@4.23.1 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
24
+ `npx --prefer-offline --yes copilotkit@4.25.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
24
25
  Repair changed-file failures before continuing. Record changed paths and secret-safe
25
26
  validation evidence.
26
27
 
27
28
  Before you spawn the implementation subagent, take the authorized list from the CLI:
28
29
 
29
30
  ```text
30
- npx --prefer-offline --yes copilotkit@4.23.1 onboard audit
31
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard audit
31
32
  ```
32
33
 
33
34
  From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
@@ -42,11 +43,18 @@ protected path, it must not edit it. It returns a result that starts with `Statu
42
43
  and names the file under Blockers.
43
44
 
44
45
  That result is a question for the developer. The file has not changed yet, so consent can
45
- still go on the record. Name the file and why the work needs it, then end your turn and wait
46
- for the developer's answer. If they allow it, record their answer before any edit:
46
+ still go on the record. Name the file and why the work needs it.
47
+ Before you end your turn to wait for the developer, report the pause:
47
48
 
48
49
  ```text
49
- npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
50
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
51
+ ```
52
+
53
+ Then end your turn and wait for the developer's answer. If they allow it, record their
54
+ answer before any edit:
55
+
56
+ ```text
57
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
50
58
  ```
51
59
 
52
60
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -58,7 +66,7 @@ feature stop route below.
58
66
  After validation and each repair, run:
59
67
 
60
68
  ```text
61
- npx --prefer-offline --yes copilotkit@4.23.1 onboard audit
69
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard audit
62
70
  ```
63
71
 
64
72
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -69,7 +77,7 @@ with the implementation subagent's `Files changed` section. If that section does
69
77
  the path, accept the developer's external change:
70
78
 
71
79
  ```text
72
- npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --accept-external --path <path>
80
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --accept-external --path <path>
73
81
  ```
74
82
 
75
83
  For an env file where the developer placed a requested credential, use
@@ -82,11 +90,11 @@ Run the audit again after each accepted change. If it still fails, or starts
82
90
  with `Status: blocked`, route out and stop:
83
91
 
84
92
  ```text
85
- npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/stop
93
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
86
94
  ```
87
95
 
88
96
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
89
97
  the feature stop route above without further changes.
90
98
 
91
99
  Otherwise run
92
- `npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/rich-threads/proof`.
100
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/rich-threads/proof`.
@@ -12,7 +12,7 @@ The approval is a wait for the developer. Before you end your turn to wait, repo
12
12
  pause:
13
13
 
14
14
  ```text
15
- npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase awaiting-developer
15
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
16
16
  ```
17
17
 
18
18
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
@@ -34,7 +34,7 @@ you plan. Run `onboard protect` again from the target app directory: on the same
34
34
  prints the baseline the run already holds.
35
35
 
36
36
  ```text
37
- npx --prefer-offline --yes copilotkit@4.23.1 onboard protect
37
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect
38
38
  ```
39
39
 
40
40
  Then have one read-only subagent repeat the inspection for the findings above, and wait
@@ -59,19 +59,27 @@ The plan must name the documented Intelligence runtime wiring, server-side `iden
59
59
  catch-all thread routes, the selected UI (drawer or existing headless UI), preserved behavior,
60
60
  tests, and a reload/reopen proof. Ask for approval as its own question.
61
61
 
62
+ Before you end your turn to wait for the developer, report the pause:
63
+
64
+ ```text
65
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-plan-approval
66
+ ```
67
+
62
68
  The plan must list every protected path it needs to change under `Authorization requested`,
63
- with one sentence explaining why. Write `None` when it needs none. Authorization covers
64
- changing a protected path, not removing it, so the plan must not delete, move, or rename
65
- one.
69
+ with one sentence explaining why. Write `None` when it needs none. A step that installs or
70
+ upgrades a package changes its manifest, so list a protected manifest such as `package.json`
71
+ or `pyproject.toml`. Its consent covers its lockfile, beside it or at the workspace root.
72
+ Authorization covers changing a protected path, not removing it, so the plan must not
73
+ delete, move, or rename one.
66
74
 
67
75
  After approval, record each approved path before implementation:
68
76
 
69
77
  ```text
70
- npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
78
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
71
79
  ```
72
80
 
73
81
  If an approved path changed after capture and no implementation step has run, add
74
82
  `--with-prior-change`. Continue only when every result starts with `Status: passed`. Do not
75
83
  authorize a path the approved plan did not list.
76
84
 
77
- Then run `npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/rich-threads/implement`.
85
+ Then run `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/rich-threads/implement`.
@@ -18,11 +18,18 @@ not edit it. It returns a result that starts with `Status: blocked` and names th
18
18
  Blockers.
19
19
 
20
20
  That result is a question for the developer. The file has not changed yet, so consent can
21
- still go on the record. Name the file and why the fix needs it, then end your turn and wait
22
- for the developer's answer. If they allow it, record their answer before any edit:
21
+ still go on the record. Name the file and why the fix needs it.
22
+ Before you end your turn to wait for the developer, report the pause:
23
23
 
24
24
  ```text
25
- npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
25
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
26
+ ```
27
+
28
+ Then end your turn and wait for the developer's answer. If they allow it, record their
29
+ answer before any edit:
30
+
31
+ ```text
32
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
26
33
  ```
27
34
 
28
35
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -35,12 +42,12 @@ Report the outcome of each attempt as it ends, before any repair. The command co
35
42
  attempts and the repairs:
36
43
 
37
44
  ```text
38
- npx --prefer-offline --yes copilotkit@4.23.1 onboard proof --step round-trip --outcome <passed|failed|skipped>
45
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
39
46
  ```
40
47
 
41
48
  Use `passed` only for proved persistence and reopen, `failed` for an attempted proof that
42
49
  failed, and `skipped` when the proof could not run. Then run
43
- `npx --prefer-offline --yes copilotkit@4.23.1 onboard audit`. Continue only when it starts with
50
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard audit`. Continue only when it starts with
44
51
  `Status: passed`.
45
52
 
46
53
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -55,9 +62,9 @@ the path and the change the audit reports. Run the audit again after each accept
55
62
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
56
63
 
57
64
  ```text
58
- npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/stop
65
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
59
66
  ```
60
67
 
61
68
  When the audit passes, run
62
- `npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/complete` with the actual browser
69
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/complete` with the actual browser
63
70
  outcome.
@@ -4,6 +4,24 @@ Treat Rich Threads as a managed Intelligence feature layered onto the existing a
4
4
  reason to replace its agent or chat. Act as the orchestrator and delegate inspection,
5
5
  implementation, and proof to separate subagents within the target project.
6
6
 
7
+ ## First, say which coding agent you are
8
+
9
+ Run this before anything else in this prompt:
10
+
11
+ ```text
12
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard identify --coding-agent <coding-agent-slug> --model <model-id> --model-family <model-family>
13
+ ```
14
+
15
+ Report your product slug, such as `codex` or `claude-code`. The command needs no sign-in,
16
+ browser, or project. If this run already ran `onboard identify`, skip this step.
17
+
18
+ - `--model`: copy the model id exactly as your instructions write it. Without an exact
19
+ model id, leave out `--model` rather than guess.
20
+ - `--model-family`: give it even without `--model`. Closest of: `claude-opus`,
21
+ `claude-sonnet`, `claude-haiku`, `gpt-5`, `gemini`, `grok`, `glm`, `minimax`, `mimo`,
22
+ `deepseek`, `qwen`, `kimi`, else the model's series. Leave it out if you do not know it.
23
+ - Never give your product slug as a model, or as an unlisted family.
24
+
7
25
  ## Waits, stops, and subagents
8
26
 
9
27
  A run that starts here has not read these rules yet, so they come first. They cover this
@@ -20,13 +38,13 @@ carry on. Keep a read-only assignment read-only. If no subagent works at all, re
20
38
  once:
21
39
 
22
40
  ```text
23
- npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase delegation-unavailable
41
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase delegation-unavailable
24
42
  ```
25
43
 
26
44
  Before you end your turn to wait for the developer, report the pause:
27
45
 
28
46
  ```text
29
- npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase awaiting-developer
47
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
30
48
  ```
31
49
 
32
50
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
@@ -36,7 +54,7 @@ If you stop this run, send one short report before you stop. The friction comman
36
54
  the telemetry setting the developer already chose, so it needs no separate question.
37
55
 
38
56
  ```text
39
- npx --prefer-offline --yes copilotkit@4.23.1 onboard friction --phase stop --category <slug> --message "<sentences>"
57
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard friction --phase stop --category <slug> --message "<sentences>"
40
58
  ```
41
59
 
42
60
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -50,7 +68,7 @@ one scoped fix, and sends the report itself when no fix is approved.
50
68
  Before any subagent or project process runs, capture the developer's existing work:
51
69
 
52
70
  ```text
53
- npx --prefer-offline --yes copilotkit@4.23.1 onboard protect
71
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect
54
72
  ```
55
73
 
56
74
  Keep the exact protected path list it prints and give that list to every subagent. No
@@ -65,20 +83,20 @@ the current frontend-to-runtime-to-agent round trip and inspect `/info`.
65
83
  Wait for the inspection subagent to finish. Then report that the inspection came back:
66
84
 
67
85
  ```text
68
- npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase research-returned
86
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase research-returned
69
87
  ```
70
88
 
71
89
  If the inspection did not prove the baseline this intent extends, stop here without
72
90
  changing files:
73
91
 
74
92
  ```text
75
- npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/stop
93
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
76
94
  ```
77
95
 
78
96
  When the inspection proved what this intent needs, read the next prompt now, in this turn:
79
97
 
80
98
  ```text
81
- npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/rich-threads/plan
99
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/rich-threads/plan
82
100
  ```
83
101
 
84
102
  That prompt holds the plan, the developer's approval, and the paths the plan changes.
@@ -20,7 +20,7 @@ a `start` with no `--run` reprints the id this stopped run already holds, and on
20
20
  covering both reads as one run that did two different things.
21
21
 
22
22
  ```text
23
- npx --prefer-offline --yes copilotkit@4.23.1 onboard start --run <new-12-character-id>
23
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard start --run <new-12-character-id>
24
24
  ```
25
25
 
26
26
  Do not read a generic onboarding node from this run. A feature run and a generic run are
@@ -45,10 +45,16 @@ Name the one fix you propose, and say which file, setting, or process it touches
45
45
  developer whether they approve that one fix. If they decline, or the question cannot be
46
46
  put to them, stop here and send the report below.
47
47
 
48
+ Before you end your turn to wait for the developer, report the pause:
49
+
50
+ ```text
51
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
52
+ ```
53
+
48
54
  If they approve it, make that one fix and nothing else. Then come back into this run:
49
55
 
50
56
  ```text
51
- npx --prefer-offline --yes copilotkit@4.23.1 onboard resume --message "<approval>"
57
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard resume --message "<approval>"
52
58
  ```
53
59
 
54
60
  Put the developer's approval in `--message`, in one or two sentences: the fix they
@@ -69,7 +75,7 @@ Send one short report. The friction command follows the telemetry setting the de
69
75
  already chose, so it needs no separate question.
70
76
 
71
77
  ```text
72
- npx --prefer-offline --yes copilotkit@4.23.1 onboard friction --phase stop --category <slug> --message "<sentences>"
78
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard friction --phase stop --category <slug> --message "<sentences>"
73
79
  ```
74
80
 
75
81
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -14,7 +14,7 @@ voice proof. Record changed paths and validation results.
14
14
  Before you spawn the implementation subagent, take the authorized list from the CLI:
15
15
 
16
16
  ```text
17
- npx --prefer-offline --yes copilotkit@4.23.1 onboard audit
17
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard audit
18
18
  ```
19
19
 
20
20
  From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
@@ -29,11 +29,18 @@ protected path, it must not edit it. It returns a result that starts with `Statu
29
29
  and names the file under Blockers.
30
30
 
31
31
  That result is a question for the developer. The file has not changed yet, so consent can
32
- still go on the record. Name the file and why the work needs it, then end your turn and wait
33
- for the developer's answer. If they allow it, record their answer before any edit:
32
+ still go on the record. Name the file and why the work needs it.
33
+ Before you end your turn to wait for the developer, report the pause:
34
34
 
35
35
  ```text
36
- npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
36
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
37
+ ```
38
+
39
+ Then end your turn and wait for the developer's answer. If they allow it, record their
40
+ answer before any edit:
41
+
42
+ ```text
43
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
37
44
  ```
38
45
 
39
46
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -45,7 +52,7 @@ feature stop route below.
45
52
  After validation and each repair, run:
46
53
 
47
54
  ```text
48
- npx --prefer-offline --yes copilotkit@4.23.1 onboard audit
55
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard audit
49
56
  ```
50
57
 
51
58
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -56,7 +63,7 @@ with the implementation subagent's `Files changed` section. If that section does
56
63
  the path, accept the developer's external change:
57
64
 
58
65
  ```text
59
- npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --accept-external --path <path>
66
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --accept-external --path <path>
60
67
  ```
61
68
 
62
69
  For an env file where the developer placed a requested credential, use
@@ -69,11 +76,11 @@ Run the audit again after each accepted change. If it still fails, or starts
69
76
  with `Status: blocked`, route out and stop:
70
77
 
71
78
  ```text
72
- npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/stop
79
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
73
80
  ```
74
81
 
75
82
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
76
83
  the feature stop route above without further changes.
77
84
 
78
85
  Otherwise run
79
- `npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/voice/proof`.
86
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/voice/proof`.
@@ -12,7 +12,7 @@ The approval is a wait for the developer. Before you end your turn to wait, repo
12
12
  pause:
13
13
 
14
14
  ```text
15
- npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase awaiting-developer
15
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
16
16
  ```
17
17
 
18
18
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
@@ -34,7 +34,7 @@ you plan. Run `onboard protect` again from the target app directory: on the same
34
34
  prints the baseline the run already holds.
35
35
 
36
36
  ```text
37
- npx --prefer-offline --yes copilotkit@4.23.1 onboard protect
37
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect
38
38
  ```
39
39
 
40
40
  Then have one read-only subagent repeat the inspection for the findings above, and wait
@@ -50,25 +50,33 @@ the repository proves its variable name is configured. Otherwise, explain the se
50
50
  take the feature stop route rather than writing a placeholder:
51
51
 
52
52
  ```text
53
- npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/stop
53
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
54
54
  ```
55
55
 
56
56
  Show a small plan for the documented transcription service, the existing composer, focused
57
57
  tests, and a microphone/canned-transcript proof. Ask for approval as its own question.
58
58
 
59
+ Before you end your turn to wait for the developer, report the pause:
60
+
61
+ ```text
62
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-plan-approval
63
+ ```
64
+
59
65
  The plan must list every protected path it needs to change under `Authorization requested`,
60
- with one sentence explaining why. Write `None` when it needs none. Authorization covers
61
- changing a protected path, not removing it, so the plan must not delete, move, or rename
62
- one.
66
+ with one sentence explaining why. Write `None` when it needs none. A step that installs or
67
+ upgrades a package changes its manifest, so list a protected manifest such as `package.json`
68
+ or `pyproject.toml`. Its consent covers its lockfile, beside it or at the workspace root.
69
+ Authorization covers changing a protected path, not removing it, so the plan must not
70
+ delete, move, or rename one.
63
71
 
64
72
  After approval, record each approved path before implementation:
65
73
 
66
74
  ```text
67
- npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
75
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
68
76
  ```
69
77
 
70
78
  If an approved path changed after capture and no implementation step has run, add
71
79
  `--with-prior-change`. Continue only when every result starts with `Status: passed`. Do not
72
80
  authorize a path the approved plan did not list.
73
81
 
74
- Then run `npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/voice/implement`.
82
+ Then run `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/voice/implement`.
@@ -17,11 +17,18 @@ not edit it. It returns a result that starts with `Status: blocked` and names th
17
17
  Blockers.
18
18
 
19
19
  That result is a question for the developer. The file has not changed yet, so consent can
20
- still go on the record. Name the file and why the fix needs it, then end your turn and wait
21
- for the developer's answer. If they allow it, record their answer before any edit:
20
+ still go on the record. Name the file and why the fix needs it.
21
+ Before you end your turn to wait for the developer, report the pause:
22
22
 
23
23
  ```text
24
- npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
24
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard checkpoint --phase awaiting-developer
25
+ ```
26
+
27
+ Then end your turn and wait for the developer's answer. If they allow it, record their
28
+ answer before any edit:
29
+
30
+ ```text
31
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
25
32
  ```
26
33
 
27
34
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -34,11 +41,11 @@ Report the outcome of each attempt as it ends, before any repair. The command co
34
41
  attempts and the repairs:
35
42
 
36
43
  ```text
37
- npx --prefer-offline --yes copilotkit@4.23.1 onboard proof --step round-trip --outcome <passed|failed|skipped>
44
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
38
45
  ```
39
46
 
40
47
  Use `passed` only for proved voice input, `failed` for an attempted proof that failed, and
41
- `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.23.1 onboard audit`.
48
+ `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.25.0 onboard audit`.
42
49
  Continue only when it starts with `Status: passed`.
43
50
 
44
51
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -53,9 +60,9 @@ the path and the change the audit reports. Run the audit again after each accept
53
60
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
54
61
 
55
62
  ```text
56
- npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/stop
63
+ npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/stop
57
64
  ```
58
65
 
59
66
  When the audit passes, run
60
- `npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/complete` with the actual surface
67
+ `npx --prefer-offline --yes copilotkit@4.25.0 onboard read feature/complete` with the actual surface
61
68
  outcome.