copilotkit 4.22.0 → 4.23.1

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 (92) hide show
  1. package/README.md +390 -17
  2. package/cli-build-info.json +8 -8
  3. package/index.js +52224 -34474
  4. package/onboarding/index.json +83 -9
  5. package/onboarding/prompts/authenticate/start.md +44 -34
  6. package/onboarding/prompts/conversion/plan.md +3 -3
  7. package/onboarding/prompts/credentials/finalize-plan.md +12 -7
  8. package/onboarding/prompts/credentials/plan.md +23 -23
  9. package/onboarding/prompts/credentials/settle-credentials.md +10 -7
  10. package/onboarding/prompts/credentials/write-plan.md +17 -7
  11. package/onboarding/prompts/deployment/choose-local.md +46 -0
  12. package/onboarding/prompts/deployment/local-evaluation.md +71 -0
  13. package/onboarding/prompts/fallback/best-effort.md +8 -8
  14. package/onboarding/prompts/feature/a2ui/implement.md +6 -6
  15. package/onboarding/prompts/feature/a2ui/plan.md +72 -0
  16. package/onboarding/prompts/feature/a2ui/proof.md +5 -5
  17. package/onboarding/prompts/feature/a2ui/start.md +11 -32
  18. package/onboarding/prompts/feature/channels/implement.md +23 -16
  19. package/onboarding/prompts/feature/channels/plan.md +85 -0
  20. package/onboarding/prompts/feature/channels/proof.md +5 -5
  21. package/onboarding/prompts/feature/channels/start.md +14 -41
  22. package/onboarding/prompts/feature/chat-suggestions/implement.md +6 -6
  23. package/onboarding/prompts/feature/chat-suggestions/plan.md +71 -0
  24. package/onboarding/prompts/feature/chat-suggestions/proof.md +5 -5
  25. package/onboarding/prompts/feature/chat-suggestions/start.md +11 -30
  26. package/onboarding/prompts/feature/complete.md +2 -2
  27. package/onboarding/prompts/feature/learning/implement.md +13 -13
  28. package/onboarding/prompts/feature/learning/plan.md +82 -0
  29. package/onboarding/prompts/feature/learning/proof.md +6 -6
  30. package/onboarding/prompts/feature/learning/start.md +11 -40
  31. package/onboarding/prompts/feature/open-generative-ui/implement.md +6 -6
  32. package/onboarding/prompts/feature/open-generative-ui/plan.md +70 -0
  33. package/onboarding/prompts/feature/open-generative-ui/proof.md +5 -5
  34. package/onboarding/prompts/feature/open-generative-ui/start.md +11 -30
  35. package/onboarding/prompts/feature/realtime-sync/implement.md +7 -7
  36. package/onboarding/prompts/feature/realtime-sync/plan.md +75 -0
  37. package/onboarding/prompts/feature/realtime-sync/proof.md +5 -5
  38. package/onboarding/prompts/feature/realtime-sync/start.md +10 -33
  39. package/onboarding/prompts/feature/rich-threads/implement.md +8 -8
  40. package/onboarding/prompts/feature/rich-threads/plan.md +77 -0
  41. package/onboarding/prompts/feature/rich-threads/proof.md +5 -5
  42. package/onboarding/prompts/feature/rich-threads/start.md +10 -35
  43. package/onboarding/prompts/feature/stop.md +3 -3
  44. package/onboarding/prompts/feature/voice/implement.md +6 -6
  45. package/onboarding/prompts/feature/voice/plan.md +74 -0
  46. package/onboarding/prompts/feature/voice/proof.md +5 -5
  47. package/onboarding/prompts/feature/voice/start.md +11 -29
  48. package/onboarding/prompts/framework/ag2.md +2 -2
  49. package/onboarding/prompts/framework/agno.md +2 -2
  50. package/onboarding/prompts/framework/built-in.md +2 -2
  51. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  52. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  53. package/onboarding/prompts/framework/crewai-flows.md +2 -2
  54. package/onboarding/prompts/framework/custom-ag-ui.md +5 -2
  55. package/onboarding/prompts/framework/deep-agents.md +2 -2
  56. package/onboarding/prompts/framework/google-adk.md +2 -2
  57. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  58. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  59. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  60. package/onboarding/prompts/framework/llamaindex.md +2 -2
  61. package/onboarding/prompts/framework/mastra.md +2 -2
  62. package/onboarding/prompts/framework/ms-agent-dotnet.md +3 -3
  63. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +3 -3
  64. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  65. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  66. package/onboarding/prompts/framework/strands-python.md +2 -2
  67. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  68. package/onboarding/prompts/frontend/angular.md +3 -3
  69. package/onboarding/prompts/frontend/nextjs.md +3 -3
  70. package/onboarding/prompts/frontend/plan.md +7 -7
  71. package/onboarding/prompts/frontend/react-native.md +2 -2
  72. package/onboarding/prompts/frontend/react-spa.md +2 -2
  73. package/onboarding/prompts/frontend/vue.md +2 -2
  74. package/onboarding/prompts/implementation/build-and-validate.md +14 -13
  75. package/onboarding/prompts/proof/complete.md +3 -3
  76. package/onboarding/prompts/proof/oss-baseline.md +5 -5
  77. package/onboarding/prompts/proof/round-trip.md +16 -11
  78. package/onboarding/prompts/research/gather.md +9 -8
  79. package/onboarding/prompts/research/merge.md +6 -3
  80. package/onboarding/prompts/research/preflight.md +2 -2
  81. package/onboarding/prompts/research/route.md +22 -14
  82. package/onboarding/prompts/starter/clone.md +5 -5
  83. package/onboarding/prompts/stopped/run-failed.md +2 -2
  84. package/onboarding/prompts/subagent/create-plan.md +9 -2
  85. package/onboarding/prompts/subagent/implement-and-validate.md +34 -2
  86. package/onboarding/prompts/subagent/inspect-repository.md +1 -1
  87. package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
  88. package/onboarding/prompts/subagent/prove-round-trip.md +39 -21
  89. package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
  90. package/package.json +4 -1
  91. package/release/release-tool.js +167 -18
  92. package/services/local-auth-worker.js +21465 -0
@@ -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.22.0 login --json` and follow its single streaming session. Then
5
+ `npx --prefer-offline --yes copilotkit@4.23.1 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
@@ -20,14 +20,14 @@ non-zero on an app that is working. Pass what `identifyUser` reads with a repeat
20
20
  It is not a defect to repair.
21
21
 
22
22
  Run focused type/test commands, then start the app and run
23
- `npx --prefer-offline --yes copilotkit@4.22.0 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
23
+ `npx --prefer-offline --yes copilotkit@4.23.1 verify --expect-runtime intelligence --round-trip --agent <agent-id> --json`.
24
24
  Repair changed-file failures before continuing. Record changed paths and secret-safe
25
25
  validation evidence.
26
26
 
27
27
  Before you spawn the implementation subagent, take the authorized list from the CLI:
28
28
 
29
29
  ```text
30
- npx --prefer-offline --yes copilotkit@4.22.0 onboard audit
30
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard audit
31
31
  ```
32
32
 
33
33
  From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
@@ -46,7 +46,7 @@ still go on the record. Name the file and why the work needs it, then end your t
46
46
  for the developer's answer. If they allow it, record their answer before any edit:
47
47
 
48
48
  ```text
49
- npx --prefer-offline --yes copilotkit@4.22.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
49
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
50
50
  ```
51
51
 
52
52
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -58,7 +58,7 @@ feature stop route below.
58
58
  After validation and each repair, run:
59
59
 
60
60
  ```text
61
- npx --prefer-offline --yes copilotkit@4.22.0 onboard audit
61
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard audit
62
62
  ```
63
63
 
64
64
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -69,7 +69,7 @@ with the implementation subagent's `Files changed` section. If that section does
69
69
  the path, accept the developer's external change:
70
70
 
71
71
  ```text
72
- npx --prefer-offline --yes copilotkit@4.22.0 onboard protect --accept-external --path <path>
72
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --accept-external --path <path>
73
73
  ```
74
74
 
75
75
  For an env file where the developer placed a requested credential, use
@@ -82,11 +82,11 @@ Run the audit again after each accepted change. If it still fails, or starts
82
82
  with `Status: blocked`, route out and stop:
83
83
 
84
84
  ```text
85
- npx --prefer-offline --yes copilotkit@4.22.0 onboard read feature/stop
85
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/stop
86
86
  ```
87
87
 
88
88
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
89
89
  the feature stop route above without further changes.
90
90
 
91
91
  Otherwise run
92
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read feature/rich-threads/proof`.
92
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/rich-threads/proof`.
@@ -0,0 +1,77 @@
1
+ # Plan Rich Threads with the developer
2
+
3
+ The inspection in `feature/rich-threads/start` came back and proved what this intent
4
+ needs. This prompt turns it into a plan, asks the developer to approve it, and records the
5
+ protected paths the plan changes. Do not change project files in this prompt.
6
+
7
+ ## Waits and stops
8
+
9
+ The rules in `feature/rich-threads/start` still hold here.
10
+
11
+ The approval is a wait for the developer. Before you end your turn to wait, report the
12
+ pause:
13
+
14
+ ```text
15
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase awaiting-developer
16
+ ```
17
+
18
+ A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
19
+ When the answer arrives, continue from the step that paused. If the developer asks for a
20
+ change, show the changed plan and ask again.
21
+
22
+ ## What this prompt takes from the start
23
+
24
+ Keep these from `feature/rich-threads/start`, and give them to every subagent:
25
+
26
+ - the protected path list that `onboard protect` printed, and
27
+ - the paths and findings the inspection returned: the runtime route, CopilotKit provider
28
+ and chat, agent id, current thread UI or headless API, authentication boundary,
29
+ server-side user identity source, project configuration (presence only), test and dev
30
+ commands, and the round trip.
31
+
32
+ If you do not hold them, as after `onboard resume` in a new session, get them back before
33
+ you plan. Run `onboard protect` again from the target app directory: on the same run it
34
+ prints the baseline the run already holds.
35
+
36
+ ```text
37
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard protect
38
+ ```
39
+
40
+ Then have one read-only subagent repeat the inspection for the findings above, and wait
41
+ for it. It changes no files.
42
+
43
+ ## Plan the change
44
+
45
+ Fetch the current official guides before planning:
46
+ https://docs.copilotkit.ai/threads.md
47
+ https://docs.copilotkit.ai/threads-lifecycle.md
48
+ https://docs.copilotkit.ai/intelligence/quickstart.md
49
+ https://docs.copilotkit.ai/auth.md
50
+ https://docs.copilotkit.ai/prebuilt-components/copilot-threads-drawer.md
51
+ Retry unavailable pages a second way. Do not infer an identity from a browser display name or
52
+ use a client-supplied identifier as the server-side user identity. `identifyUser` names an
53
+ already-authenticated caller. It is not the authentication gate, and the auth page lists the
54
+ thread routes that do not resolve the caller through it and must be guarded separately.
55
+
56
+ Re-use a valid existing Intelligence project and credential when repository evidence proves
57
+ one. If Intelligence is missing, do not create a project or sign in yet: show a plan first.
58
+ The plan must name the documented Intelligence runtime wiring, server-side `identifyUser`,
59
+ catch-all thread routes, the selected UI (drawer or existing headless UI), preserved behavior,
60
+ tests, and a reload/reopen proof. Ask for approval as its own question.
61
+
62
+ 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.
66
+
67
+ After approval, record each approved path before implementation:
68
+
69
+ ```text
70
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
71
+ ```
72
+
73
+ If an approved path changed after capture and no implementation step has run, add
74
+ `--with-prior-change`. Continue only when every result starts with `Status: passed`. Do not
75
+ authorize a path the approved plan did not list.
76
+
77
+ Then run `npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/rich-threads/implement`.
@@ -22,7 +22,7 @@ still go on the record. Name the file and why the fix needs it, then end your tu
22
22
  for the developer's answer. If they allow it, record their answer before any edit:
23
23
 
24
24
  ```text
25
- npx --prefer-offline --yes copilotkit@4.22.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
25
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
26
26
  ```
27
27
 
28
28
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -35,12 +35,12 @@ Report the outcome of each attempt as it ends, before any repair. The command co
35
35
  attempts and the repairs:
36
36
 
37
37
  ```text
38
- npx --prefer-offline --yes copilotkit@4.22.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
38
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard proof --step round-trip --outcome <passed|failed|skipped>
39
39
  ```
40
40
 
41
41
  Use `passed` only for proved persistence and reopen, `failed` for an attempted proof that
42
42
  failed, and `skipped` when the proof could not run. Then run
43
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard audit`. Continue only when it starts with
43
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard audit`. Continue only when it starts with
44
44
  `Status: passed`.
45
45
 
46
46
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -55,9 +55,9 @@ the path and the change the audit reports. Run the audit again after each accept
55
55
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
56
56
 
57
57
  ```text
58
- npx --prefer-offline --yes copilotkit@4.22.0 onboard read feature/stop
58
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/stop
59
59
  ```
60
60
 
61
61
  When the audit passes, run
62
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read feature/complete` with the actual browser
62
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/complete` with the actual browser
63
63
  outcome.
@@ -20,13 +20,13 @@ carry on. Keep a read-only assignment read-only. If no subagent works at all, re
20
20
  once:
21
21
 
22
22
  ```text
23
- npx --prefer-offline --yes copilotkit@4.22.0 onboard checkpoint --phase delegation-unavailable
23
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase delegation-unavailable
24
24
  ```
25
25
 
26
26
  Before you end your turn to wait for the developer, report the pause:
27
27
 
28
28
  ```text
29
- npx --prefer-offline --yes copilotkit@4.22.0 onboard checkpoint --phase awaiting-developer
29
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase awaiting-developer
30
30
  ```
31
31
 
32
32
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
@@ -36,7 +36,7 @@ If you stop this run, send one short report before you stop. The friction comman
36
36
  the telemetry setting the developer already chose, so it needs no separate question.
37
37
 
38
38
  ```text
39
- npx --prefer-offline --yes copilotkit@4.22.0 onboard friction --phase stop --category <slug> --message "<sentences>"
39
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard friction --phase stop --category <slug> --message "<sentences>"
40
40
  ```
41
41
 
42
42
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -50,7 +50,7 @@ one scoped fix, and sends the report itself when no fix is approved.
50
50
  Before any subagent or project process runs, capture the developer's existing work:
51
51
 
52
52
  ```text
53
- npx --prefer-offline --yes copilotkit@4.22.0 onboard protect
53
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard protect
54
54
  ```
55
55
 
56
56
  Keep the exact protected path list it prints and give that list to every subagent. No
@@ -65,46 +65,21 @@ the current frontend-to-runtime-to-agent round trip and inspect `/info`.
65
65
  Wait for the inspection subagent to finish. Then report that the inspection came back:
66
66
 
67
67
  ```text
68
- npx --prefer-offline --yes copilotkit@4.22.0 onboard checkpoint --phase research-returned
68
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase research-returned
69
69
  ```
70
70
 
71
71
  If the inspection did not prove the baseline this intent extends, stop here without
72
72
  changing files:
73
73
 
74
74
  ```text
75
- npx --prefer-offline --yes copilotkit@4.22.0 onboard read feature/stop
75
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/stop
76
76
  ```
77
77
 
78
- Fetch the current official guides before planning:
79
- https://docs.copilotkit.ai/threads.md
80
- https://docs.copilotkit.ai/threads-lifecycle.md
81
- https://docs.copilotkit.ai/intelligence/quickstart.md
82
- https://docs.copilotkit.ai/auth.md
83
- https://docs.copilotkit.ai/prebuilt-components/copilot-threads-drawer.md
84
- Retry unavailable pages a second way. Do not infer an identity from a browser display name or
85
- use a client-supplied identifier as the server-side user identity. `identifyUser` names an
86
- already-authenticated caller; it is not the authentication gate, and the auth page lists the
87
- thread routes that do not resolve the caller through it and must be guarded separately.
88
-
89
- Re-use a valid existing Intelligence project and credential when repository evidence proves
90
- one. If Intelligence is missing, do not create a project or sign in yet: show a plan first.
91
- The plan must name the documented Intelligence runtime wiring, server-side `identifyUser`,
92
- catch-all thread routes, the selected UI (drawer or existing headless UI), preserved behavior,
93
- tests, and a reload/reopen proof. Ask for approval separately.
94
-
95
- The plan must list every protected path it needs to change under `Authorization requested`,
96
- with one sentence explaining why. Write `None` when it needs none. Authorization covers
97
- changing a protected path, not removing it, so the plan must not delete, move, or rename
98
- one.
99
-
100
- After approval, record each approved path before implementation:
78
+ When the inspection proved what this intent needs, read the next prompt now, in this turn:
101
79
 
102
80
  ```text
103
- npx --prefer-offline --yes copilotkit@4.22.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
81
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/rich-threads/plan
104
82
  ```
105
83
 
106
- If an approved path changed after capture and no implementation step has run, add
107
- `--with-prior-change`. Continue only when every result starts with `Status: passed`. Do not
108
- authorize a path the approved plan did not list.
109
-
110
- Then run `npx --prefer-offline --yes copilotkit@4.22.0 onboard read feature/rich-threads/implement`.
84
+ That prompt holds the plan, the developer's approval, and the paths the plan changes.
85
+ Do not write the plan or change project files in this prompt.
@@ -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.22.0 onboard start --run <new-12-character-id>
23
+ npx --prefer-offline --yes copilotkit@4.23.1 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
@@ -48,7 +48,7 @@ put to them, stop here and send the report below.
48
48
  If they approve it, make that one fix and nothing else. Then come back into this run:
49
49
 
50
50
  ```text
51
- npx --prefer-offline --yes copilotkit@4.22.0 onboard resume --message "<approval>"
51
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard resume --message "<approval>"
52
52
  ```
53
53
 
54
54
  Put the developer's approval in `--message`, in one or two sentences: the fix they
@@ -69,7 +69,7 @@ Send one short report. The friction command follows the telemetry setting the de
69
69
  already chose, so it needs no separate question.
70
70
 
71
71
  ```text
72
- npx --prefer-offline --yes copilotkit@4.22.0 onboard friction --phase stop --category <slug> --message "<sentences>"
72
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard friction --phase stop --category <slug> --message "<sentences>"
73
73
  ```
74
74
 
75
75
  `--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.22.0 onboard audit
17
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard audit
18
18
  ```
19
19
 
20
20
  From its result, copy the paths under `Authorized to modify:`. A passed or failed audit with
@@ -33,7 +33,7 @@ still go on the record. Name the file and why the work needs it, then end your t
33
33
  for the developer's answer. If they allow it, record their answer before any edit:
34
34
 
35
35
  ```text
36
- npx --prefer-offline --yes copilotkit@4.22.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
36
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
37
37
  ```
38
38
 
39
39
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -45,7 +45,7 @@ feature stop route below.
45
45
  After validation and each repair, run:
46
46
 
47
47
  ```text
48
- npx --prefer-offline --yes copilotkit@4.22.0 onboard audit
48
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard audit
49
49
  ```
50
50
 
51
51
  Continue only when it starts with `Status: passed`. A path under `Authorized to modify:` is
@@ -56,7 +56,7 @@ with the implementation subagent's `Files changed` section. If that section does
56
56
  the path, accept the developer's external change:
57
57
 
58
58
  ```text
59
- npx --prefer-offline --yes copilotkit@4.22.0 onboard protect --accept-external --path <path>
59
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --accept-external --path <path>
60
60
  ```
61
61
 
62
62
  For an env file where the developer placed a requested credential, use
@@ -69,11 +69,11 @@ Run the audit again after each accepted change. If it still fails, or starts
69
69
  with `Status: blocked`, route out and stop:
70
70
 
71
71
  ```text
72
- npx --prefer-offline --yes copilotkit@4.22.0 onboard read feature/stop
72
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/stop
73
73
  ```
74
74
 
75
75
  If validation cannot pass, or this intent needs a prerequisite the app does not have, use
76
76
  the feature stop route above without further changes.
77
77
 
78
78
  Otherwise run
79
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read feature/voice/proof`.
79
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/voice/proof`.
@@ -0,0 +1,74 @@
1
+ # Plan voice input with the developer
2
+
3
+ The inspection in `feature/voice/start` came back and proved what this intent needs. This
4
+ prompt turns it into a plan, asks the developer to approve it, and records the protected
5
+ paths the plan changes. Do not change project files in this prompt.
6
+
7
+ ## Waits and stops
8
+
9
+ The rules in `feature/voice/start` still hold here.
10
+
11
+ The approval is a wait for the developer. Before you end your turn to wait, report the
12
+ pause:
13
+
14
+ ```text
15
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase awaiting-developer
16
+ ```
17
+
18
+ A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
19
+ When the answer arrives, continue from the step that paused. If the developer asks for a
20
+ change, show the changed plan and ask again.
21
+
22
+ ## What this prompt takes from the start
23
+
24
+ Keep these from `feature/voice/start`, and give them to every subagent:
25
+
26
+ - the protected path list that `onboard protect` printed, and
27
+ - the paths and findings the inspection returned: the runtime route, provider and chat
28
+ composer, current agent, provider credential variable names (presence only), package
29
+ versions, browser permissions approach, test and dev commands, and the round trip that
30
+ `verify` proved.
31
+
32
+ If you do not hold them, as after `onboard resume` in a new session, get them back before
33
+ you plan. Run `onboard protect` again from the target app directory: on the same run it
34
+ prints the baseline the run already holds.
35
+
36
+ ```text
37
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard protect
38
+ ```
39
+
40
+ Then have one read-only subagent repeat the inspection for the findings above, and wait
41
+ for it. It changes no files.
42
+
43
+ ## Plan the change
44
+
45
+ Do not run login, select Intelligence, create a credential, read a credential value, or
46
+ replace the existing chat/runtime. Fetch the official voice guide before planning:
47
+ https://docs.copilotkit.ai/voice.md
48
+ Retry it a second way if needed. Use an existing user-owned provider credential only when
49
+ the repository proves its variable name is configured. Otherwise, explain the setup gate and
50
+ take the feature stop route rather than writing a placeholder:
51
+
52
+ ```text
53
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/stop
54
+ ```
55
+
56
+ Show a small plan for the documented transcription service, the existing composer, focused
57
+ tests, and a microphone/canned-transcript proof. Ask for approval as its own question.
58
+
59
+ 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.
63
+
64
+ After approval, record each approved path before implementation:
65
+
66
+ ```text
67
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
68
+ ```
69
+
70
+ If an approved path changed after capture and no implementation step has run, add
71
+ `--with-prior-change`. Continue only when every result starts with `Status: passed`. Do not
72
+ authorize a path the approved plan did not list.
73
+
74
+ Then run `npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/voice/implement`.
@@ -21,7 +21,7 @@ still go on the record. Name the file and why the fix needs it, then end your tu
21
21
  for the developer's answer. If they allow it, record their answer before any edit:
22
22
 
23
23
  ```text
24
- npx --prefer-offline --yes copilotkit@4.22.0 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
24
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard protect --authorize --unplanned --path <path> --reason "<what the developer said>"
25
25
  ```
26
26
 
27
27
  Continue only when the result starts with `Status: passed`. Run the audit again, take the
@@ -34,11 +34,11 @@ Report the outcome of each attempt as it ends, before any repair. The command co
34
34
  attempts and the repairs:
35
35
 
36
36
  ```text
37
- npx --prefer-offline --yes copilotkit@4.22.0 onboard proof --step round-trip --outcome <passed|failed|skipped>
37
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard proof --step round-trip --outcome <passed|failed|skipped>
38
38
  ```
39
39
 
40
40
  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.22.0 onboard audit`.
41
+ `skipped` when the proof could not run. Then run `npx --prefer-offline --yes copilotkit@4.23.1 onboard audit`.
42
42
  Continue only when it starts with `Status: passed`.
43
43
 
44
44
  If the audit fails, never repair, reset, or revert a protected path. Compare each named path
@@ -53,9 +53,9 @@ the path and the change the audit reports. Run the audit again after each accept
53
53
  If the audit still fails, or starts with `Status: blocked`, route out and stop:
54
54
 
55
55
  ```text
56
- npx --prefer-offline --yes copilotkit@4.22.0 onboard read feature/stop
56
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/stop
57
57
  ```
58
58
 
59
59
  When the audit passes, run
60
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read feature/complete` with the actual surface
60
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/complete` with the actual surface
61
61
  outcome.
@@ -19,13 +19,13 @@ carry on. Keep a read-only assignment read-only. If no subagent works at all, re
19
19
  once:
20
20
 
21
21
  ```text
22
- npx --prefer-offline --yes copilotkit@4.22.0 onboard checkpoint --phase delegation-unavailable
22
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase delegation-unavailable
23
23
  ```
24
24
 
25
25
  Before you end your turn to wait for the developer, report the pause:
26
26
 
27
27
  ```text
28
- npx --prefer-offline --yes copilotkit@4.22.0 onboard checkpoint --phase awaiting-developer
28
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase awaiting-developer
29
29
  ```
30
30
 
31
31
  A turn that ends while the run waits is a pause, not a stop, even when your harness ends it.
@@ -35,7 +35,7 @@ If you stop this run, send one short report before you stop. The friction comman
35
35
  the telemetry setting the developer already chose, so it needs no separate question.
36
36
 
37
37
  ```text
38
- npx --prefer-offline --yes copilotkit@4.22.0 onboard friction --phase stop --category <slug> --message "<sentences>"
38
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard friction --phase stop --category <slug> --message "<sentences>"
39
39
  ```
40
40
 
41
41
  `--message` takes one or two sentences: the step you stopped at and what stopped it.
@@ -49,7 +49,7 @@ one scoped fix, and sends the report itself when no fix is approved.
49
49
  Before any subagent or project process runs, capture the developer's existing work:
50
50
 
51
51
  ```text
52
- npx --prefer-offline --yes copilotkit@4.22.0 onboard protect
52
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard protect
53
53
  ```
54
54
 
55
55
  Keep the exact protected path list it prints and give that list to every subagent. No
@@ -59,45 +59,27 @@ approved authorization before implementation.
59
59
  Before edits, inspect the runtime route, CopilotKit provider/chat composer, current agent,
60
60
  existing provider credential variable names (presence only), package versions, browser
61
61
  permissions approach, and test/dev commands. Prove the existing OSS baseline with `/info`,
62
- `npx --prefer-offline --yes copilotkit@4.22.0 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
62
+ `npx --prefer-offline --yes copilotkit@4.23.1 verify --expect-runtime oss --round-trip --agent <agent-id> --json`,
63
63
  and a real UI request when a browser is available.
64
64
 
65
65
  Wait for the inspection subagent to finish. Then report that the inspection came back:
66
66
 
67
67
  ```text
68
- npx --prefer-offline --yes copilotkit@4.22.0 onboard checkpoint --phase research-returned
68
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase research-returned
69
69
  ```
70
70
 
71
71
  If the inspection did not prove the baseline this intent extends, stop here without
72
72
  changing files:
73
73
 
74
74
  ```text
75
- npx --prefer-offline --yes copilotkit@4.22.0 onboard read feature/stop
75
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/stop
76
76
  ```
77
77
 
78
- Do not run login, select Intelligence, create a credential, read a credential value, or
79
- replace the existing chat/runtime. Fetch the official voice guide before planning:
80
- https://docs.copilotkit.ai/voice.md
81
- Retry it a second way if needed. Use an existing user-owned provider credential only when
82
- the repository proves its variable name is configured; otherwise explain the setup gate and
83
- take the feature stop route above rather than writing a placeholder.
84
-
85
- Show a small plan for the documented transcription service, the existing composer, focused
86
- tests, and a microphone/canned-transcript proof. Ask for approval separately.
87
-
88
- The plan must list every protected path it needs to change under `Authorization requested`,
89
- with one sentence explaining why. Write `None` when it needs none. Authorization covers
90
- changing a protected path, not removing it, so the plan must not delete, move, or rename
91
- one.
92
-
93
- After approval, record each approved path before implementation:
78
+ When the inspection proved what this intent needs, read the next prompt now, in this turn:
94
79
 
95
80
  ```text
96
- npx --prefer-offline --yes copilotkit@4.22.0 onboard protect --authorize --path <path> --reason "<the plan's sentence>"
81
+ npx --prefer-offline --yes copilotkit@4.23.1 onboard read feature/voice/plan
97
82
  ```
98
83
 
99
- If an approved path changed after capture and no implementation step has run, add
100
- `--with-prior-change`. Continue only when every result starts with `Status: passed`. Do not
101
- authorize a path the approved plan did not list.
102
-
103
- Then run `npx --prefer-offline --yes copilotkit@4.22.0 onboard read feature/voice/implement`.
84
+ That prompt holds the plan, the developer's approval, and the paths the plan changes.
85
+ Do not write the plan or change project files in this prompt.
@@ -31,7 +31,7 @@ Record the selected framework, vendor, model, required credential variable names
31
31
  URLs, and the A2UI documentation gap.
32
32
 
33
33
  If the pages support the selection, run
34
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read frontend/plan`.
34
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read frontend/plan`.
35
35
 
36
36
  If the documentation does not support the selection, run
37
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read unsupported/no-validated-path`.
37
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read unsupported/no-validated-path`.
@@ -34,7 +34,7 @@ Record the selected framework, vendor, model, required credential variable names
34
34
  URLs, the documented dependencies and adapter, and the context documentation gap.
35
35
 
36
36
  If the pages support the selection, run
37
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read frontend/plan`.
37
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read frontend/plan`.
38
38
 
39
39
  If the documentation does not support the selection, run
40
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read unsupported/no-validated-path`.
40
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read unsupported/no-validated-path`.
@@ -29,7 +29,7 @@ Record the selected framework, vendor, model, required credential variable names
29
29
  these URLs.
30
30
 
31
31
  If the pages support the selection, run
32
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read frontend/plan`.
32
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read frontend/plan`.
33
33
 
34
34
  If the documentation does not support the selection, run
35
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read unsupported/no-validated-path`.
35
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read unsupported/no-validated-path`.
@@ -34,7 +34,7 @@ Record the selected framework, vendor, model, required credential variable names
34
34
  these URLs.
35
35
 
36
36
  If the pages support the selection, run
37
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read frontend/plan`.
37
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read frontend/plan`.
38
38
 
39
39
  If the documentation does not support the selection, run
40
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read unsupported/no-validated-path`.
40
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read unsupported/no-validated-path`.
@@ -37,7 +37,7 @@ Record the selected framework, vendor, model, required credential variable names
37
37
  URLs, and the context limit.
38
38
 
39
39
  If the pages support the selection, run
40
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read frontend/plan`.
40
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read frontend/plan`.
41
41
 
42
42
  If the documentation does not support the selection, run
43
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read unsupported/no-validated-path`.
43
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read unsupported/no-validated-path`.
@@ -62,7 +62,7 @@ Record the selected framework, project-defined provider and model, the credentia
62
62
  variable names the repository proves or the developer named, these URLs, and the adapter.
63
63
 
64
64
  If the pages support the selection, run
65
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read frontend/plan`.
65
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read frontend/plan`.
66
66
 
67
67
  If the documentation does not support the selection, run
68
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read unsupported/no-validated-path`.
68
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read unsupported/no-validated-path`.
@@ -37,6 +37,9 @@ Register the agent in the `agents` map of the Copilot Runtime from
37
37
  instance of the project's own class.
38
38
  - Connect an agent that runs as its own service with `HttpAgent` from `@ag-ui/client`. Its
39
39
  `url` is the service's own AG-UI endpoint, not the runtime's `/api/copilotkit` path.
40
+ That service reads its own environment, not the app's env file. When the credential
41
+ step settles the model key, pass `--copy-to <service directory>/.env`, so the key goes
42
+ into the env file that the service loads.
40
43
 
41
44
  Do not use `selfManagedAgents` or `agents__unsafe_dev_only`. Those provider options send
42
45
  requests past the runtime, so the Intelligence features that this run adds never reach
@@ -92,7 +95,7 @@ credential variable names that the agent already uses, the `clone()` finding, an
92
95
  URLs.
93
96
 
94
97
  If the pages support the selection, run
95
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read frontend/plan`.
98
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read frontend/plan`.
96
99
 
97
100
  If the documentation does not support the selection, run
98
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read unsupported/no-validated-path`.
101
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read unsupported/no-validated-path`.
@@ -33,7 +33,7 @@ Record the selected framework, language, vendor, model, required credential vari
33
33
  names, these URLs, and each documentation gap.
34
34
 
35
35
  If the pages support the selection, run
36
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read frontend/plan`.
36
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read frontend/plan`.
37
37
 
38
38
  If the documentation does not support the selection, run
39
- `npx --prefer-offline --yes copilotkit@4.22.0 onboard read unsupported/no-validated-path`.
39
+ `npx --prefer-offline --yes copilotkit@4.23.1 onboard read unsupported/no-validated-path`.