copilotkit 4.23.1 → 4.24.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 +91 -5
  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 +4380 -3586
  6. package/onboarding/index.json +2 -1
  7. package/onboarding/prompts/authenticate/start.md +15 -12
  8. package/onboarding/prompts/conversion/plan.md +3 -3
  9. package/onboarding/prompts/credentials/finalize-plan.md +8 -8
  10. package/onboarding/prompts/credentials/plan.md +23 -23
  11. package/onboarding/prompts/credentials/settle-credentials.md +14 -5
  12. package/onboarding/prompts/credentials/write-plan.md +6 -6
  13. package/onboarding/prompts/deployment/choose-local.md +24 -13
  14. package/onboarding/prompts/deployment/local-evaluation.md +31 -7
  15. package/onboarding/prompts/fallback/best-effort.md +8 -8
  16. package/onboarding/prompts/feature/a2ui/implement.md +6 -6
  17. package/onboarding/prompts/feature/a2ui/plan.md +4 -4
  18. package/onboarding/prompts/feature/a2ui/proof.md +5 -5
  19. package/onboarding/prompts/feature/a2ui/start.md +25 -8
  20. package/onboarding/prompts/feature/channels/implement.md +7 -7
  21. package/onboarding/prompts/feature/channels/plan.md +4 -4
  22. package/onboarding/prompts/feature/channels/proof.md +5 -5
  23. package/onboarding/prompts/feature/channels/start.md +23 -19
  24. package/onboarding/prompts/feature/chat-suggestions/implement.md +6 -6
  25. package/onboarding/prompts/feature/chat-suggestions/plan.md +4 -4
  26. package/onboarding/prompts/feature/chat-suggestions/proof.md +5 -5
  27. package/onboarding/prompts/feature/chat-suggestions/start.md +25 -8
  28. package/onboarding/prompts/feature/complete.md +2 -2
  29. package/onboarding/prompts/feature/learning/implement.md +13 -13
  30. package/onboarding/prompts/feature/learning/plan.md +4 -4
  31. package/onboarding/prompts/feature/learning/proof.md +49 -6
  32. package/onboarding/prompts/feature/learning/start.md +25 -8
  33. package/onboarding/prompts/feature/open-generative-ui/implement.md +6 -6
  34. package/onboarding/prompts/feature/open-generative-ui/plan.md +4 -4
  35. package/onboarding/prompts/feature/open-generative-ui/proof.md +5 -5
  36. package/onboarding/prompts/feature/open-generative-ui/start.md +25 -8
  37. package/onboarding/prompts/feature/realtime-sync/implement.md +7 -7
  38. package/onboarding/prompts/feature/realtime-sync/plan.md +4 -4
  39. package/onboarding/prompts/feature/realtime-sync/proof.md +5 -5
  40. package/onboarding/prompts/feature/realtime-sync/start.md +24 -7
  41. package/onboarding/prompts/feature/rich-threads/implement.md +8 -8
  42. package/onboarding/prompts/feature/rich-threads/plan.md +4 -4
  43. package/onboarding/prompts/feature/rich-threads/proof.md +5 -5
  44. package/onboarding/prompts/feature/rich-threads/start.md +24 -7
  45. package/onboarding/prompts/feature/stop.md +3 -3
  46. package/onboarding/prompts/feature/voice/implement.md +6 -6
  47. package/onboarding/prompts/feature/voice/plan.md +5 -5
  48. package/onboarding/prompts/feature/voice/proof.md +5 -5
  49. package/onboarding/prompts/feature/voice/start.md +25 -8
  50. package/onboarding/prompts/framework/ag2.md +2 -2
  51. package/onboarding/prompts/framework/agno.md +2 -2
  52. package/onboarding/prompts/framework/built-in.md +2 -2
  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 +2 -2
  56. package/onboarding/prompts/framework/custom-ag-ui.md +2 -2
  57. package/onboarding/prompts/framework/deep-agents.md +2 -2
  58. package/onboarding/prompts/framework/google-adk.md +2 -2
  59. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  60. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  61. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  62. package/onboarding/prompts/framework/llamaindex.md +2 -2
  63. package/onboarding/prompts/framework/mastra.md +2 -2
  64. package/onboarding/prompts/framework/ms-agent-dotnet.md +3 -3
  65. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +3 -3
  66. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  67. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  68. package/onboarding/prompts/framework/strands-python.md +2 -2
  69. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  70. package/onboarding/prompts/frontend/angular.md +3 -3
  71. package/onboarding/prompts/frontend/nextjs.md +3 -3
  72. package/onboarding/prompts/frontend/plan.md +7 -7
  73. package/onboarding/prompts/frontend/react-native.md +2 -2
  74. package/onboarding/prompts/frontend/react-spa.md +2 -2
  75. package/onboarding/prompts/frontend/vue.md +2 -2
  76. package/onboarding/prompts/implementation/build-and-validate.md +16 -14
  77. package/onboarding/prompts/proof/complete.md +3 -3
  78. package/onboarding/prompts/proof/oss-baseline.md +5 -5
  79. package/onboarding/prompts/proof/round-trip.md +8 -8
  80. package/onboarding/prompts/research/gather.md +5 -5
  81. package/onboarding/prompts/research/merge.md +2 -2
  82. package/onboarding/prompts/research/preflight.md +2 -2
  83. package/onboarding/prompts/research/route.md +5 -5
  84. package/onboarding/prompts/starter/clone.md +92 -7
  85. package/onboarding/prompts/stopped/run-failed.md +2 -2
  86. package/onboarding/prompts/subagent/create-plan.md +2 -2
  87. package/onboarding/prompts/subagent/implement-and-validate.md +2 -2
  88. package/onboarding/prompts/subagent/inspect-repository.md +1 -1
  89. package/onboarding/prompts/subagent/prove-oss-baseline.md +1 -1
  90. package/onboarding/prompts/subagent/prove-round-trip.md +8 -6
  91. package/onboarding/prompts/unsupported/no-validated-path.md +2 -2
  92. package/package.json +1 -1
  93. package/release/release-tool.js +12 -1
  94. package/services/local-auth-worker.js +175 -159
@@ -55,7 +55,7 @@ the derived name.
55
55
  Only if the developer asks for an existing project, or asks to see the projects they have,
56
56
  read the choices:
57
57
 
58
- `npx --prefer-offline --yes copilotkit@4.23.1 project list --json`
58
+ `npx --prefer-offline --yes copilotkit@4.24.0 project list --json`
59
59
 
60
60
  Then ask which one to use. Do not order the projects by creation time. If the developer
61
61
  already gave this answer, do not ask again. Do not read a secret value. Do not show or
@@ -84,7 +84,7 @@ Do not inspect another entry in the parent directory. Replace each placeholder w
84
84
  recorded value. Do not run a placeholder as a shell argument. If the path holds a space,
85
85
  put it in double quotes.
86
86
 
87
- `npx --prefer-offline --yes copilotkit@4.23.1 init --dir <absolute-target-directory> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
87
+ `npx --prefer-offline --yes copilotkit@4.24.0 init --dir <absolute-target-directory> --framework <framework-id> --channel none --no-banner --no-key-prompt --create <name> --install`
88
88
 
89
89
  `--dir` is always the absolute path of the target directory. `init` builds the app in that
90
90
  directory and gives the app the directory's name. Do not add `--name`: `init` refuses
@@ -102,9 +102,64 @@ variable name and never the value. Do not read or copy the key file yourself. If
102
102
  reports that it cannot read the model key file, it stopped before it cloned anything. Ask
103
103
  the developer for the right path, or run the command again without the flag.
104
104
 
105
+ If you cannot pass the key file to `init`, for example because a sandbox refuses the path,
106
+ clone without `--model-key-file`. Then copy the key from `<target>` with one command:
107
+ `cd <target> && npx --prefer-offline --yes copilotkit@4.24.0 onboard credentials --model-key <VARIABLE> --env-path <key-file> --copy-to <env file> --json`.
108
+ `<env file>` is `.env`, or `agent/.env` for the Microsoft Agent Framework Python starter.
109
+ The command writes the key into that file without printing it and protects the file. If the
110
+ command is refused too, ask the developer to run it. Give them exactly this one line:
111
+ `! cd <target> && npx --prefer-offline --yes copilotkit@4.24.0 onboard credentials --model-key <VARIABLE> --env-path <key-file> --copy-to <env file>`.
112
+ The command needs no input. Without `!`, they run the same command in a terminal.
113
+ Do not write a `sed`, `grep`, or `cat` command to copy the key.
114
+
115
+ ### For a recorded local choice
116
+
117
+ If the run recorded the local deployment choice in `deployment/choose-local`, use this
118
+ command instead of the hosted command above. Do not ask the project questions above.
119
+ Local evaluation creates its own empty project, and `init --local` refuses `--create` and
120
+ `--project`.
121
+
122
+ `npx --prefer-offline --yes copilotkit@4.24.0 init --dir <absolute-target-directory> --framework <framework-id> --channel none --no-banner --no-key-prompt --local --defer-model --install`
123
+
124
+ Use the model choice from `deployment/choose-local`. If the developer deferred it, keep
125
+ `--defer-model`. If the developer gave model settings, replace `--defer-model` with
126
+ `--model-config <private-file>`. Do not read or print that file. The CLI selects the latest
127
+ stable release. If the developer gave a candidate manifest for release testing, add
128
+ `--candidate <manifest.json>`. Otherwise, do not add it. The `--dir`, `--no-install` and `--model-key-file` rules
129
+ above apply here too.
130
+
131
+ If the developer chose guided model setup in `deployment/choose-local`, keep `--defer-model`.
132
+ After `init` reports the stack ready:
133
+
134
+ Ask the developer to run this command in their own terminal window, in `<target>`:
135
+
136
+ ```text
137
+ npx --prefer-offline --yes copilotkit@4.24.0 local setup
138
+ ```
139
+
140
+ Do not give it as a `!` line, and do not run it yourself. Its guided model prompt needs a
141
+ terminal, and a coding agent's shell has none. Without a terminal, the command stops and
142
+ changes nothing. The prompt asks for the model and its key, and it saves them privately.
143
+ On a running stack, it restarts only Learning. Do not ask for a model file.
144
+
145
+ Say that the run continues when they reply or resume this session. Report the pause with
146
+ `npx --prefer-offline --yes copilotkit@4.24.0 onboard checkpoint --phase awaiting-model-credential`, end your
147
+ turn, and wait. When the developer replies, run
148
+ `npx --prefer-offline --yes copilotkit@4.24.0 local status --json` from `<target>` and read `learning.configuration`.
149
+
150
+ The command installs the local stack, then connects the starter to it. It writes the
151
+ gitignored `.copilotkit/local.json` stack reference and `.copilotkit/project.json` with the
152
+ local project. It writes `INTELLIGENCE_API_URL`, `INTELLIGENCE_GATEWAY_WS_URL`,
153
+ `CPK_INTELLIGENCE_API_KEY` and `SL_ENABLED` into `<target>/.env`. Later proof steps use
154
+ this local project. Do not run `project select`, and do not provision another key. The
155
+ output names the local dashboard URL. If you deferred the model, the output also says
156
+ `Learning configuration incomplete`. Report both lines to the developer.
157
+
158
+ ### What the command does
159
+
105
160
  The command clones the starter into the empty target directory. It also connects the
106
- starter to the developer's Intelligence project. The earlier login phase supplies the
107
- account. The command does not need terminal input.
161
+ starter to the developer's Intelligence project, or to the local stack for a local choice.
162
+ The earlier login phase supplies the account. The command does not need terminal input.
108
163
 
109
164
  Do not rebuild the starter by hand. Then inspect only the generated
110
165
  paths inside the target directory. Record the files, install result, project connection,
@@ -144,7 +199,7 @@ When you ask, name each variable and the file it goes in, and say that the run c
144
199
  when they reply or resume this session. Then report the pause and end your turn:
145
200
 
146
201
  ```text
147
- npx --prefer-offline --yes copilotkit@4.23.1 onboard checkpoint --phase awaiting-model-credential
202
+ npx --prefer-offline --yes copilotkit@4.24.0 onboard checkpoint --phase awaiting-model-credential
148
203
  ```
149
204
 
150
205
  This is a pause, not a stop. Do not send a stop report, and do not take a stop route.
@@ -155,10 +210,40 @@ call.
155
210
 
156
211
  If no credential is missing, report no pause and continue.
157
212
 
158
- Then run `npx --prefer-offline --yes copilotkit@4.23.1 onboard read proof/round-trip`.
213
+ Then run `npx --prefer-offline --yes copilotkit@4.24.0 onboard read proof/round-trip`.
214
+
215
+ If the local command fails, `init` keeps the cloned starter in `<target>`. Do not run
216
+ `init` again, because the target is no longer empty. Do not delete the starter or the stack.
217
+ Report the exact error, and do not claim that the starter is ready. A failure that names
218
+ Docker is an environment blocker, not a broken run. For example, Docker is stopped or
219
+ missing, or `Docker available resources` is below 4 CPUs, 12 GiB RAM, or 40 GiB storage.
220
+ Tell the developer what to change in Docker. Then report the pause and end your turn:
221
+
222
+ ```text
223
+ npx --prefer-offline --yes copilotkit@4.24.0 onboard checkpoint --phase awaiting-developer
224
+ ```
225
+
226
+ When the developer says that Docker is ready, resume from `<target>` with the same model
227
+ choice. If the run used a `--candidate`, add the same one:
228
+
229
+ ```text
230
+ npx --prefer-offline --yes copilotkit@4.24.0 local setup --defer-model --json
231
+ ```
232
+
233
+ If the run used model settings, replace `--defer-model` with `--model-config <private-file>`.
234
+ Read blockers and the recorded failed step. Do not delete or recreate a failed stack. After
235
+ setup reports the stack ready, connect the starter from `<target>`:
236
+
237
+ ```text
238
+ npx --prefer-offline --yes copilotkit@4.24.0 local connect --approve-connection --json
239
+ ```
240
+
241
+ The connection writes `.copilotkit/local.json`, `.copilotkit/project.json`, and the local
242
+ keys in `<target>/.env`. Then continue with the credential check above. If the resumed
243
+ setup fails again with an error that does not name Docker, take the route below.
159
244
 
160
245
  If the command fails, report its exact error and do not claim that the starter is ready.
161
246
  Then run
162
- `npx --prefer-offline --yes copilotkit@4.23.1 onboard read stopped/run-failed`. The starter is one this
247
+ `npx --prefer-offline --yes copilotkit@4.24.0 onboard read stopped/run-failed`. The starter is one this
163
248
  graph ships and the stack was chosen from its own supported list, so a command that
164
249
  returned an error is a run that broke, not a setup this release does not support.
@@ -41,7 +41,7 @@ put to them, stop here and send the report below.
41
41
  If they approve it, make that one fix and nothing else. Then come back into this run:
42
42
 
43
43
  ```text
44
- npx --prefer-offline --yes copilotkit@4.23.1 onboard resume --message "<approval>"
44
+ npx --prefer-offline --yes copilotkit@4.24.0 onboard resume --message "<approval>"
45
45
  ```
46
46
 
47
47
  Put the developer's approval in `--message`, in one or two sentences: the fix they
@@ -64,7 +64,7 @@ Send one short report. The friction command follows the telemetry setting the de
64
64
  already chose, so it needs no separate question.
65
65
 
66
66
  ```text
67
- npx --prefer-offline --yes copilotkit@4.23.1 onboard friction --phase stop --category <slug> --message "<sentences>"
67
+ npx --prefer-offline --yes copilotkit@4.24.0 onboard friction --phase stop --category <slug> --message "<sentences>"
68
68
  ```
69
69
 
70
70
  `--message` takes one or two sentences: the step you stopped at and what stopped
@@ -94,7 +94,7 @@ against a dead host, and the failure arrives as an empty-body 404 with no cause
94
94
  Ask the CLI for the dependency upgrade, from the target directory:
95
95
 
96
96
  ```text
97
- npx --prefer-offline --yes copilotkit@4.23.1 onboard upgrade-plan --json
97
+ npx --prefer-offline --yes copilotkit@4.24.0 onboard upgrade-plan --json
98
98
  ```
99
99
 
100
100
  It reads the installed tree and the registry. Read `status`:
@@ -176,7 +176,7 @@ here is work the developer did not ask for.
176
176
  Plan the threads drawer itself: add it from the selected drawer page, where this frontend
177
177
  does not already render one. Where this journey's frontend framework ships no threads
178
178
  drawer -- React Native --, plan that the thread is proved by
179
- `npx --prefer-offline --yes copilotkit@4.23.1 verify --round-trip`, which needs no browser. Do not plan a
179
+ `npx --prefer-offline --yes copilotkit@4.24.0 verify --round-trip`, which needs no browser. Do not plan a
180
180
  step that opens the managed Intelligence dashboard.
181
181
 
182
182
  ## Name the files the run writes itself
@@ -115,7 +115,7 @@ Intelligence: declare each exact version in its app's manifest, then install wit
115
115
  project's package manager. Then check the installed tree:
116
116
 
117
117
  ```text
118
- npx --prefer-offline --yes copilotkit@4.23.1 onboard upgrade-plan --check --json
118
+ npx --prefer-offline --yes copilotkit@4.24.0 onboard upgrade-plan --check --json
119
119
  ```
120
120
 
121
121
  `single` means every direct dependency resolved to one version. `duplicates` names each
@@ -130,7 +130,7 @@ If the check finds duplicates or the baseline regresses, put the manifests and l
130
130
  back, leave Intelligence unwired, and report what failed:
131
131
 
132
132
  ```text
133
- npx --prefer-offline --yes copilotkit@4.23.1 onboard upgrade-plan --revert --json
133
+ npx --prefer-offline --yes copilotkit@4.24.0 onboard upgrade-plan --revert --json
134
134
  ```
135
135
 
136
136
  Then end your turn. Never add an `overrides`, `resolutions`, or `pnpm.overrides` block to
@@ -7,7 +7,7 @@ Work only on the packet you were assigned. Inspect the repository without changi
7
7
  Run this first, from the target project directory:
8
8
 
9
9
  ```text
10
- npx --prefer-offline --yes copilotkit@4.23.1 onboard inspect --json
10
+ npx --prefer-offline --yes copilotkit@4.24.0 onboard inspect --json
11
11
  ```
12
12
 
13
13
  It answers the deterministic half of both packets exactly, from the same code
@@ -32,7 +32,7 @@ Prove the live runtime in this order:
32
32
  4. Confirm from project files that the runtime constructor passes a `runner` option rather
33
33
  than an `intelligence` option. A package, import, project file, or key is not use proof.
34
34
  5. Run
35
- `npx --prefer-offline --yes copilotkit@4.23.1 verify --expect-runtime oss --round-trip --agent <expected-agent-id> --json`,
35
+ `npx --prefer-offline --yes copilotkit@4.24.0 verify --expect-runtime oss --round-trip --agent <expected-agent-id> --json`,
36
36
  with the runtime URL or auth header options that this project needs. Require exit zero
37
37
  and the JSON `ok` field to be `true`.
38
38
  6. Drive one real request through the existing frontend, CopilotKit runtime, and expected
@@ -78,7 +78,7 @@ about the failure it was spawned to clear.
78
78
  Run this from the target app directory:
79
79
 
80
80
  ```text
81
- npx --prefer-offline --yes copilotkit@4.23.1 onboard proof-check --json
81
+ npx --prefer-offline --yes copilotkit@4.24.0 onboard proof-check --json
82
82
  ```
83
83
 
84
84
  It starts each app's `dev` script unless a server from that app already listens, and
@@ -103,7 +103,9 @@ A pass on `runtime-process-in-project` proves only that the process runs inside
103
103
  project. Ask the running agent which graph or agent ID it serves, and compare that with the
104
104
  expected agent ID from Step 1. If they differ, an older build still answers on the port.
105
105
  Report it, and stop it only under the rule below. The servers keep running after
106
- the proof. Then go to Step 5a.
106
+ the proof. Then go to Step 5a. On Windows, `runtime-process-in-project` is `undetermined` and
107
+ marked `advisory`, because the CLI cannot read Windows processes. The checks still pass. Ask
108
+ the agent ID question all the same.
107
109
 
108
110
  Otherwise sort `firstFailure`, and run the command again after each repair:
109
111
 
@@ -114,7 +116,7 @@ Otherwise sort `firstFailure`, and run the command again after each repair:
114
116
  asking. Read the port from the log, not from the plan, and record it:
115
117
 
116
118
  ```text
117
- npx --prefer-offline --yes copilotkit@4.23.1 onboard runtime-url --url <runtime-url>
119
+ npx --prefer-offline --yes copilotkit@4.24.0 onboard runtime-url --url <runtime-url>
118
120
  ```
119
121
 
120
122
  `<runtime-url>` is the project's runtime URL, or the plan's, with its port replaced by the
@@ -249,7 +251,7 @@ For a recorded `both-oss` starting state, this step has no component to render.
249
251
  same request the baseline recorded, require the same kind of user-visible result the
250
252
  baseline produced, and require that the thread for that request is listed in the drawer.
251
253
  Where this journey's frontend framework ships no threads drawer -- React Native --, prove
252
- that thread with `npx --prefer-offline --yes copilotkit@4.23.1 verify --round-trip`, which reads the
254
+ that thread with `npx --prefer-offline --yes copilotkit@4.24.0 verify --round-trip`, which reads the
253
255
  answer back off the thread and needs no browser. Record which of the two you proved.
254
256
 
255
257
  Use the surface control the main coding agent recorded for your environment. That finding
@@ -277,7 +279,7 @@ limit can be ten minutes. You cannot interrupt a call while it runs, so the limi
277
279
  what you do after one. If a browser call took longer than 60 seconds to return, the browser
278
280
  control is unresponsive. Do not call the browser again in this attempt. A second call to a
279
281
  hung tool waits as long as the first one did. Run
280
- `npx --prefer-offline --yes copilotkit@4.23.1 verify --frontend-url <the frontendUrl the proof checks resolved> --json` once,
282
+ `npx --prefer-offline --yes copilotkit@4.24.0 verify --frontend-url <the frontendUrl the proof checks resolved> --json` once,
281
283
  and record the `frontend_assets_served` result. Report the outcome `failed` with the cause
282
284
  `browser-control-unresponsive`. The application is not at fault on this evidence: every
283
285
  step before the browser proved the runtime without one, and no repair to the project can
@@ -287,7 +289,7 @@ reach the tool.
287
289
  the page to finish loading. Do not retype the host, and do not substitute a URL a tool
288
290
  offers you by default. Where the page loads but its styling is missing or the chat
289
291
  control is dead, run
290
- `npx --prefer-offline --yes copilotkit@4.23.1 verify --frontend-url <the url you opened> --json`
292
+ `npx --prefer-offline --yes copilotkit@4.24.0 verify --frontend-url <the url you opened> --json`
291
293
  before you diagnose anything else. A dev server can serve its page and refuse every
292
294
  static chunk behind it, and on screen that is indistinguishable from a broken
293
295
  integration. The `frontend_assets_served` check tells the two apart.
@@ -30,13 +30,13 @@ Before you show the best-effort plan, require this complete packet:
30
30
  - Give the ordered proof rules.
31
31
 
32
32
  After the developer approves the best-effort plan, run
33
- `npx --prefer-offline --yes copilotkit@4.23.1 onboard read fallback/best-effort`.
33
+ `npx --prefer-offline --yes copilotkit@4.24.0 onboard read fallback/best-effort`.
34
34
 
35
35
  Send one short report. The friction command follows the telemetry setting the developer
36
36
  already chose, so it needs no separate question.
37
37
 
38
38
  ```text
39
- npx --prefer-offline --yes copilotkit@4.23.1 onboard friction --phase stop --category <slug> --message "<sentences>"
39
+ npx --prefer-offline --yes copilotkit@4.24.0 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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "copilotkit",
3
- "version": "4.23.1",
3
+ "version": "4.24.0",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=20.9.0"
@@ -14916,6 +14916,17 @@ var FLAG_DEFINITIONS = defineFlags({
14916
14916
  defaultByEnv: { dev: false, ci: false, prod: false },
14917
14917
  envVar: "LEARNING_ENABLED"
14918
14918
  },
14919
+ // Product Trajectories v0.1: app-api mints Trajectory join tokens and the
14920
+ // gateway stores browser event batches. Both surfaces read the derived
14921
+ // FF_LEARNING_TRAJECTORIES override; the gateway mirrors the env default.
14922
+ "learning.trajectories": {
14923
+ purpose: "Gates Trajectory join tokens, operator read APIs, and the web app capability in app-api, and browser event capture on the realtime gateway.",
14924
+ owner: "learning",
14925
+ createdAt: "2026-10-01",
14926
+ status: "rollout",
14927
+ surfaces: ["app-api", "realtime-gateway", "app-frontend"],
14928
+ defaultByEnv: { dev: true, ci: true, prod: false }
14929
+ },
14919
14930
  "analytics.pipeline": {
14920
14931
  purpose: "Gates project-scoped analytics reads and realtime projection while the durable pipeline rolls out.",
14921
14932
  owner: "analytics",
@@ -14946,7 +14957,7 @@ init_define_CLI_LOCAL_EVALUATION_SUPPORT();
14946
14957
 
14947
14958
  // apps/cli/src/config.ts
14948
14959
  function getTemplateRef() {
14949
- return true ? "f835ce816112541654ded07162c2cc8ddf4f3f2c" : "main";
14960
+ return true ? "c88a2dd2a4c024e956e3f88b6b86d5715951e284" : "main";
14950
14961
  }
14951
14962
 
14952
14963
  // apps/cli/src/services/agentcore-config.ts