copilotkit 4.25.1 → 4.27.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 (92) hide show
  1. package/README.md +286 -35
  2. package/cli-build-info.json +8 -8
  3. package/index.js +7469 -3899
  4. package/onboarding/index.json +2 -2
  5. package/onboarding/prompts/authenticate/start.md +28 -23
  6. package/onboarding/prompts/conversion/plan.md +3 -3
  7. package/onboarding/prompts/credentials/finalize-plan.md +35 -26
  8. package/onboarding/prompts/credentials/plan.md +46 -33
  9. package/onboarding/prompts/credentials/settle-credentials.md +41 -16
  10. package/onboarding/prompts/credentials/write-plan.md +104 -47
  11. package/onboarding/prompts/deployment/choose-local.md +17 -20
  12. package/onboarding/prompts/deployment/local-evaluation.md +45 -21
  13. package/onboarding/prompts/fallback/best-effort.md +11 -9
  14. package/onboarding/prompts/feature/a2ui/implement.md +4 -4
  15. package/onboarding/prompts/feature/a2ui/plan.md +3 -3
  16. package/onboarding/prompts/feature/a2ui/proof.md +5 -5
  17. package/onboarding/prompts/feature/a2ui/start.md +10 -8
  18. package/onboarding/prompts/feature/channels/implement.md +11 -8
  19. package/onboarding/prompts/feature/channels/plan.md +15 -7
  20. package/onboarding/prompts/feature/channels/proof.md +5 -5
  21. package/onboarding/prompts/feature/channels/start.md +11 -10
  22. package/onboarding/prompts/feature/chat-suggestions/implement.md +4 -4
  23. package/onboarding/prompts/feature/chat-suggestions/plan.md +3 -3
  24. package/onboarding/prompts/feature/chat-suggestions/proof.md +5 -5
  25. package/onboarding/prompts/feature/chat-suggestions/start.md +10 -8
  26. package/onboarding/prompts/feature/complete.md +2 -2
  27. package/onboarding/prompts/feature/learning/implement.md +14 -12
  28. package/onboarding/prompts/feature/learning/plan.md +4 -4
  29. package/onboarding/prompts/feature/learning/proof.md +24 -14
  30. package/onboarding/prompts/feature/learning/start.md +8 -8
  31. package/onboarding/prompts/feature/open-generative-ui/implement.md +4 -4
  32. package/onboarding/prompts/feature/open-generative-ui/plan.md +3 -3
  33. package/onboarding/prompts/feature/open-generative-ui/proof.md +5 -5
  34. package/onboarding/prompts/feature/open-generative-ui/start.md +10 -8
  35. package/onboarding/prompts/feature/realtime-sync/implement.md +7 -5
  36. package/onboarding/prompts/feature/realtime-sync/plan.md +3 -3
  37. package/onboarding/prompts/feature/realtime-sync/proof.md +5 -5
  38. package/onboarding/prompts/feature/realtime-sync/start.md +7 -7
  39. package/onboarding/prompts/feature/rich-threads/implement.md +8 -6
  40. package/onboarding/prompts/feature/rich-threads/plan.md +3 -3
  41. package/onboarding/prompts/feature/rich-threads/proof.md +5 -5
  42. package/onboarding/prompts/feature/rich-threads/start.md +7 -7
  43. package/onboarding/prompts/feature/stop.md +4 -4
  44. package/onboarding/prompts/feature/voice/implement.md +4 -4
  45. package/onboarding/prompts/feature/voice/plan.md +4 -4
  46. package/onboarding/prompts/feature/voice/proof.md +5 -5
  47. package/onboarding/prompts/feature/voice/start.md +10 -8
  48. package/onboarding/prompts/framework/ag2.md +20 -5
  49. package/onboarding/prompts/framework/agno.md +25 -9
  50. package/onboarding/prompts/framework/built-in.md +21 -6
  51. package/onboarding/prompts/framework/claude-sdk-python.md +11 -5
  52. package/onboarding/prompts/framework/claude-sdk-typescript.md +13 -6
  53. package/onboarding/prompts/framework/crewai-flows.md +24 -10
  54. package/onboarding/prompts/framework/custom-ag-ui.md +62 -28
  55. package/onboarding/prompts/framework/deep-agents.md +26 -9
  56. package/onboarding/prompts/framework/google-adk.md +18 -5
  57. package/onboarding/prompts/framework/langgraph-fastapi.md +20 -5
  58. package/onboarding/prompts/framework/langgraph-python.md +20 -5
  59. package/onboarding/prompts/framework/langgraph-typescript.md +27 -7
  60. package/onboarding/prompts/framework/llamaindex.md +24 -8
  61. package/onboarding/prompts/framework/mastra.md +21 -8
  62. package/onboarding/prompts/framework/ms-agent-dotnet.md +24 -6
  63. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +24 -5
  64. package/onboarding/prompts/framework/ms-agent-python.md +21 -5
  65. package/onboarding/prompts/framework/pydantic-ai.md +20 -5
  66. package/onboarding/prompts/framework/strands-python.md +27 -12
  67. package/onboarding/prompts/framework/strands-typescript.md +27 -12
  68. package/onboarding/prompts/frontend/angular.md +4 -4
  69. package/onboarding/prompts/frontend/nextjs.md +4 -4
  70. package/onboarding/prompts/frontend/plan.md +21 -13
  71. package/onboarding/prompts/frontend/react-native.md +3 -3
  72. package/onboarding/prompts/frontend/react-spa.md +3 -3
  73. package/onboarding/prompts/frontend/vue.md +3 -3
  74. package/onboarding/prompts/implementation/build-and-validate.md +25 -20
  75. package/onboarding/prompts/proof/complete.md +10 -7
  76. package/onboarding/prompts/proof/oss-baseline.md +6 -6
  77. package/onboarding/prompts/proof/round-trip.md +10 -10
  78. package/onboarding/prompts/research/gather.md +8 -8
  79. package/onboarding/prompts/research/merge.md +3 -3
  80. package/onboarding/prompts/research/preflight.md +2 -2
  81. package/onboarding/prompts/research/route.md +4 -4
  82. package/onboarding/prompts/setup/questions.md +193 -158
  83. package/onboarding/prompts/starter/clone.md +129 -54
  84. package/onboarding/prompts/stopped/run-failed.md +5 -3
  85. package/onboarding/prompts/subagent/create-plan.md +80 -23
  86. package/onboarding/prompts/subagent/implement-and-validate.md +33 -14
  87. package/onboarding/prompts/subagent/inspect-repository.md +3 -2
  88. package/onboarding/prompts/subagent/prove-oss-baseline.md +10 -5
  89. package/onboarding/prompts/subagent/prove-round-trip.md +23 -14
  90. package/onboarding/prompts/unsupported/no-validated-path.md +5 -4
  91. package/package.json +1 -1
  92. package/release/release-tool.js +12 -2
@@ -26,6 +26,22 @@ bring them into the run root before you report, and name them under Files change
26
26
  completion step verifies that the changed files exist in this project, so work left in
27
27
  another tree ends the run with nothing in the developer's hands.
28
28
 
29
+ <!-- sandboxed-harness -->
30
+ If your harness runs commands in a sandbox, a sandboxed command has no network, cannot
31
+ listen on a port, and cannot connect to localhost. It does not always fail: a package
32
+ install can wait with no output until you stop it. So request escalation on the first run,
33
+ not after a hang or an error, for these commands:
34
+
35
+ - the dependency install and the Skills install,
36
+ - the commands that start the app and agent servers,
37
+ - HTTP requests to those servers.
38
+
39
+ Where the harness takes a prefix rule, request one for each command, all at once.
40
+ <!-- /sandboxed-harness -->
41
+
42
+ If a command hangs with no output, or fails because it has no network or cannot listen on a
43
+ port, a sandbox probably blocked it. Stop it and run it again with escalation.
44
+
29
45
  Before validation, inspect the current changed and untracked paths. Leave out the paths that
30
46
  were already changed or untracked when the run started and that this run did not edit.
31
47
  Compare every other changed path with the paths the plan named. If a changed path
@@ -84,6 +100,9 @@ Wiring is not behavior. Add the CopilotKit SDK dependency, wrap the agent in the
84
100
  middleware, mount the runtime, connect AG-UI, and render what the agent already returns.
85
101
  Those are the parts this run adds.
86
102
 
103
+ A run whose `environmentPath` ends in `.env.local` hosts the CopilotKit runtime in that
104
+ Next.js app, never in a separate server: no other process reads the key from that file.
105
+
87
106
  A change on the behavior list changes how the agent answers everywhere, not only in
88
107
  CopilotKit, so the developer approves it before it is written. Where a step cannot be
89
108
  built without one the plan did not name, return `Status: blocked` and name the file, the
@@ -110,7 +129,7 @@ Intelligence: declare each exact version in its app's manifest, then install wit
110
129
  project's package manager. Then check the installed tree:
111
130
 
112
131
  ```text
113
- npx --prefer-offline --yes copilotkit@4.25.1 onboard upgrade-plan --check --json
132
+ npx --prefer-offline --yes copilotkit@4.27.0 onboard upgrade-plan --check --json
114
133
  ```
115
134
 
116
135
  `single` means every direct dependency resolved to one version. `duplicates` names each
@@ -125,7 +144,7 @@ If the check finds duplicates or the baseline regresses, put the manifests and l
125
144
  back, leave Intelligence unwired, and report what failed:
126
145
 
127
146
  ```text
128
- npx --prefer-offline --yes copilotkit@4.25.1 onboard upgrade-plan --revert --json
147
+ npx --prefer-offline --yes copilotkit@4.27.0 onboard upgrade-plan --revert --json
129
148
  ```
130
149
 
131
150
  Then end your turn. Never add an `overrides`, `resolutions`, or `pnpm.overrides` block to
@@ -161,7 +180,7 @@ Where the plan names a Learning Container id, check that the container exists fi
161
180
  this from the target app directory, before you write any selector:
162
181
 
163
182
  ```text
164
- npx --prefer-offline --yes copilotkit@4.25.1 learning containers get <id> --json
183
+ npx --prefer-offline --yes copilotkit@4.27.0 learning containers get <id> --json
165
184
  ```
166
185
 
167
186
  `"status": "success"` means the container exists. An `error.code` of
@@ -185,19 +204,19 @@ Where the plan names no container, write no selector.
185
204
 
186
205
  ## Install the CopilotKit Skills
187
206
 
188
- The main coding agent gives you the developer's answer on the Skills install. Where the
189
- whole-plan implementation handoff carries no answer, read the approved plan. Approving the
190
- plan without a word on the Skills approves the install. A repair handoff that carries no
191
- Skills answer never installs them.
207
+ The plan names the Skills install on its own line, and the build does not wait for an
208
+ answer on it. Install them in a whole-plan implementation. Skip it only when the developer
209
+ said no, which the main coding agent passes in the handoff. A repair handoff never installs
210
+ them.
192
211
 
193
212
  Where `.agents/skills` already holds the CopilotKit skills, do not install them again.
194
213
  Report that they are in place.
195
214
 
196
- Install the Skills only when the developer approved them. Where the developer declined
197
- them, do not install them, and do not call that a change from the plan. Report in the
198
- Validation section that the developer declined them.
215
+ Where the developer said no, do not install them, and do not call that a change from the
216
+ plan. Report in the Validation section that the developer declined them.
199
217
 
200
- Install them after you run the full validation list. Tell the developer what the skills
218
+ Install them at the same time as the project's dependencies, not after validation: start both installs together. Where this run installs no dependencies,
219
+ install them before you run the validation list. Tell the developer what the skills
201
220
  install writes into this project before you run it: a `.agents/skills` directory holding
202
221
  one folder per CopilotKit skill, linked into `.claude/skills`. Both sit in the working tree,
203
222
  so the install shows up in `git status` and can land in a commit. You cannot know whether
@@ -206,9 +225,9 @@ rather than after.
206
225
 
207
226
  Then run `npx skills add CopilotKit/CopilotKit/skills -y` in the target app directory.
208
227
 
209
- The plan names both directories under `Files the run writes itself`, so they are not
210
- departures. Name them under Files changed. Do not register an MCP server: the Skills read
211
- the CopilotKit documentation without one.
228
+ The plan names both directories under `Skills install`, so they are not departures. Name
229
+ them under Files changed. Do not register an MCP server: the Skills read the CopilotKit
230
+ documentation without one.
212
231
 
213
232
  Check whether the install succeeded, and record the command result in the Validation
214
233
  section. A failed install does not change your status. Report it and continue.
@@ -8,7 +8,7 @@ Your handoff holds the JSON of this command, which the main coding agent ran fro
8
8
  target project directory:
9
9
 
10
10
  ```text
11
- npx --prefer-offline --yes copilotkit@4.25.1 onboard inspect --json
11
+ npx --prefer-offline --yes copilotkit@4.27.0 onboard inspect --json
12
12
  ```
13
13
 
14
14
  Read that JSON. Do not run the command again. If the handoff holds no inspection JSON, run
@@ -58,7 +58,8 @@ Find evidence for:
58
58
  `detection` block the CLI proposed
59
59
  - for an existing agent in no listed framework, whether it speaks AG-UI: a class that
60
60
  extends `AbstractAgent` and implements `run`, or an endpoint that streams AG-UI events.
61
- Cite the file
61
+ If it does not, name its entry point: the function or HTTP route that runs it. Cite the
62
+ file
62
63
  - current CopilotKit integration and configuration
63
64
  - authentication boundaries
64
65
  - initial changed and untracked paths, without file contents
@@ -13,12 +13,15 @@ instance of next dev running?`. A free port does not help. If a `next dev` proce
13
13
  runs from this app, reuse that server. Prove against its port. If a start still fails with
14
14
  that message, name the process that holds the lock. Give its PID and working directory.
15
15
 
16
+ <!-- sandboxed-harness -->
16
17
  If your harness runs commands in a sandbox, a sandboxed command cannot listen on a port or
17
18
  connect to localhost. Before the first server start, request escalation with a prefix rule
18
19
  for the project's own dev script. Before the first request to a local server, request
19
- escalation with a prefix rule for `curl`. If a local request still fails after 0 ms
20
- (`Failed to connect ... after 0 ms`) while the port shows a listener, the sandbox blocked
21
- it. Run it again with escalation, and do not record a failed predicate or step.
20
+ escalation with a prefix rule for `curl`.
21
+ <!-- /sandboxed-harness -->
22
+ If a local request fails after 0 ms (`Failed to connect ... after 0 ms`) while the port
23
+ shows a listener, a sandbox blocked it. Run it again with escalation, and do not record a
24
+ failed predicate or step.
22
25
 
23
26
  Prove the live runtime in this order:
24
27
 
@@ -32,8 +35,10 @@ Prove the live runtime in this order:
32
35
  4. Confirm from project files that the runtime constructor passes a `runner` option rather
33
36
  than an `intelligence` option. A package, import, project file, or key is not use proof.
34
37
  5. Run
35
- `npx --prefer-offline --yes copilotkit@4.25.1 verify --expect-runtime oss --round-trip --agent <expected-agent-id> --json`,
36
- with the runtime URL or auth header options that this project needs. Require exit zero
38
+ `npx --prefer-offline --yes copilotkit@4.27.0 verify --expect-runtime oss --round-trip --agent <expected-agent-id> --json`,
39
+ with the runtime URL or auth header options that this project needs. Add
40
+ `--runtime-url <url>` when the report names a runtime URL the dev server does not
41
+ serve. Require exit zero
37
42
  and the JSON `ok` field to be `true`.
38
43
  6. Drive one real request through the existing frontend, CopilotKit runtime, and expected
39
44
  agent. Require the existing user-visible result.
@@ -25,7 +25,8 @@ render, and never report a round trip proved by a prompt this run rewrote.
25
25
 
26
26
  Run the steps below in the order they appear. They are the proof. Do not design a
27
27
  different sequence of your own, and do not drop a step because an earlier one looked
28
- convincing. Step 6 has a web form and a React Native form: run the one that matches this
28
+ convincing. A check that passed is the evidence for what it checks. Send only the requests
29
+ the steps name: no SDK calls, AG-UI requests, or thread reads of your own to confirm a pass. Step 6 has a web form and a React Native form: run the one that matches this
29
30
  journey's frontend, and run only that one.
30
31
 
31
32
  A run that cloned a starter is the one exception. When the main coding agent tells you
@@ -75,7 +76,7 @@ about the failure it was spawned to clear.
75
76
  Run this from the target app directory:
76
77
 
77
78
  ```text
78
- npx --prefer-offline --yes copilotkit@4.25.1 onboard proof-check --json
79
+ npx --prefer-offline --yes copilotkit@4.27.0 onboard proof-check --json
79
80
  ```
80
81
 
81
82
  It starts each app's `dev` script unless a server from that app already listens, and
@@ -88,8 +89,12 @@ It starts only the apps that depend on CopilotKit. If the agent runs somewhere e
88
89
  example a Python agent or a root script that starts both halves, pass the start command
89
90
  from your Step 1 record with `--server <directory>=<command>`. A relative `<directory>` is
90
91
  read from the directory you run the command in, so a sibling agent folder is `../agent`. It
91
- does not start an app inside that directory a second time. If your harness runs commands in a sandbox, request
92
- escalation for this command first: it starts servers and connects to localhost.
92
+ does not start an app inside that directory a second time.
93
+ <!-- sandboxed-harness -->
94
+ If your harness runs commands in a sandbox, request escalation for this command on its
95
+ first run: it starts servers and connects to localhost. Request a prefix rule for `curl`
96
+ in the same request, because Steps 5a and 5b send local requests too.
97
+ <!-- /sandboxed-harness -->
93
98
 
94
99
  When `status` is `passed`, record `servers`, with their process IDs and stop commands, for
95
100
  the handoff, and take the URL to open from `frontendUrl`. If `frontendUrl` is absent, the
@@ -97,8 +102,9 @@ project named no port the CLI can read: take the URL from the frontend server's
97
102
  use `localhost` as its host.
98
103
 
99
104
  A pass on `runtime-process-in-project` proves only that the process runs inside this
100
- project. Ask the running agent which graph or agent ID it serves, and compare that with the
101
- expected agent ID from Step 1. If they differ, an older build still answers on the port.
105
+ project. Read the agent IDs the runtime declares from the `verify:runtime_agents_declared`
106
+ detail, and compare them with the expected agent ID from Step 1. Do not send a request of
107
+ your own for them. If they differ, an older build still answers on the port.
102
108
  Report it, and stop it only under the rule below. The servers keep running after
103
109
  the proof. Then go to Step 5a. On Windows, and in a container that hides which process
104
110
  holds a port, the CLI cannot read the port's owner. There `runtime-process-in-project` is
@@ -126,7 +132,7 @@ Otherwise sort `firstFailure`, and run the command again after each repair:
126
132
  asking. Read the port from the log, not from the plan, and record it:
127
133
 
128
134
  ```text
129
- npx --prefer-offline --yes copilotkit@4.25.1 onboard runtime-url --url <runtime-url>
135
+ npx --prefer-offline --yes copilotkit@4.27.0 onboard runtime-url --url <runtime-url>
130
136
  ```
131
137
 
132
138
  `<runtime-url>` is the project's runtime URL, or the plan's, with its port replaced by the
@@ -296,7 +302,7 @@ For a recorded `both-oss` starting state, this step has no component to render.
296
302
  same request the baseline recorded, require the same kind of user-visible result the
297
303
  baseline produced, and require that the thread for that request is listed in the drawer.
298
304
  Where this journey's frontend framework ships no threads drawer -- React Native --, prove
299
- that thread with `npx --prefer-offline --yes copilotkit@4.25.1 verify --round-trip`, which reads the
305
+ that thread with `npx --prefer-offline --yes copilotkit@4.27.0 verify --round-trip`, which reads the
300
306
  answer back off the thread and needs no browser. Where the proof checks needed `--thread`,
301
307
  prove the thread for this request with `verify --thread <id>` instead. Record which of the
302
308
  two you proved.
@@ -326,7 +332,7 @@ limit can be ten minutes. You cannot interrupt a call while it runs, so the limi
326
332
  what you do after one. If a browser call took longer than 60 seconds to return, the browser
327
333
  control is unresponsive. Do not call the browser again in this attempt. A second call to a
328
334
  hung tool waits as long as the first one did. Run
329
- `npx --prefer-offline --yes copilotkit@4.25.1 verify --frontend-url <the frontendUrl the proof checks resolved> --json` once,
335
+ `npx --prefer-offline --yes copilotkit@4.27.0 verify --frontend-url <the frontendUrl the proof checks resolved> --json` once,
330
336
  and record the `frontend_assets_served` result. Report the outcome `failed` with the cause
331
337
  `browser-control-unresponsive`. The application is not at fault on this evidence: every
332
338
  step before the browser proved the runtime without one, and no repair to the project can
@@ -336,7 +342,7 @@ reach the tool.
336
342
  the page to finish loading. Do not retype the host, and do not substitute a URL a tool
337
343
  offers you by default. Where the page loads but its styling is missing or the chat
338
344
  control is dead, run
339
- `npx --prefer-offline --yes copilotkit@4.25.1 verify --frontend-url <the url you opened> --json`
345
+ `npx --prefer-offline --yes copilotkit@4.27.0 verify --frontend-url <the url you opened> --json`
340
346
  before you diagnose anything else. A dev server can serve its page and refuse every
341
347
  static chunk behind it, and on screen that is indistinguishable from a broken
342
348
  integration. The `frontend_assets_served` check tells the two apart.
@@ -448,7 +454,7 @@ Step 9 can write only the tool files named by its guide or by this step.
448
454
  Fetch the continued-development guide from the main coding agent with the proof
449
455
  documentation. Try the continued-development tools after the application passes proof.
450
456
 
451
- The implementation subagent installs the Skills when the developer approved them. Check that
457
+ The implementation subagent installs the Skills unless the developer declined them. Check that
452
458
  it did. Look for the `.agents/skills` directory and the `.claude/skills` links in this
453
459
  project, and read the Skills result the implementation reported. Do not install them again.
454
460
 
@@ -456,15 +462,18 @@ Where the developer declined them, do not install them, and do not call that a c
456
462
  the plan. Report the command for them to run later instead:
457
463
  `npx skills add CopilotKit/CopilotKit/skills -y`.
458
464
 
459
- Where the developer approved them and they are missing, install them as a recovery step.
465
+ Where the developer did not decline them and they are missing, install them as a recovery step.
460
466
  Tell the developer what the skills install writes into this project before you run it: a
461
467
  `.agents/skills` directory holding one folder per CopilotKit skill, linked into
462
468
  `.claude/skills`. Both sit in the working tree, so the install shows up in `git status`
463
469
  and can land in a commit. You cannot know whether this project keeps those directories in
464
470
  version control, so name them before you write them rather than after. Then run
465
471
  `npx skills add CopilotKit/CopilotKit/skills -y` to install the
466
- project-scoped CopilotKit Skills. Record that the proof ran the install because the
467
- implementation did not.
472
+ project-scoped CopilotKit Skills.
473
+ <!-- sandboxed-harness -->
474
+ It needs the network, so in a sandbox request escalation for it on its first run.
475
+ <!-- /sandboxed-harness -->
476
+ Record that the proof ran the install because the implementation did not.
468
477
 
469
478
  Do not register an MCP server: the Skills read the CopilotKit documentation without one.
470
479
 
@@ -10,7 +10,8 @@ If the CLI stopped this run with `## Stop: this run deleted or moved the develop
10
10
  name each path and change it listed, in the words it printed. A report that says only that
11
11
  files changed cannot be acted on: nobody reading it can tell which file moved.
12
12
  This step prints `## The developer's files` below: relay that report as printed, with its
13
- restore command.
13
+ restore command. When the report says the run started in an empty folder, relay that one
14
+ line alone: list no files and offer no restore.
14
15
 
15
16
  Stop onboarding without making more repository changes by default.
16
17
 
@@ -35,17 +36,17 @@ Before you show the best-effort plan, require this complete packet:
35
36
  Before you end your turn to wait for the developer, report the pause:
36
37
 
37
38
  ```text
38
- npx --prefer-offline --yes copilotkit@4.25.1 onboard checkpoint --phase awaiting-developer
39
+ npx --prefer-offline --yes copilotkit@4.27.0 onboard checkpoint --phase awaiting-developer
39
40
  ```
40
41
 
41
42
  After the developer approves the best-effort plan, run
42
- `npx --prefer-offline --yes copilotkit@4.25.1 onboard read fallback/best-effort`.
43
+ `npx --prefer-offline --yes copilotkit@4.27.0 onboard read fallback/best-effort`.
43
44
 
44
45
  Send one short report. The friction command follows the telemetry setting the developer
45
46
  already chose, so it needs no separate question.
46
47
 
47
48
  ```text
48
- npx --prefer-offline --yes copilotkit@4.25.1 onboard friction --phase stop --category <slug> --message "<sentences>"
49
+ npx --prefer-offline --yes copilotkit@4.27.0 onboard friction --phase stop --category <slug> --message "<sentences>"
49
50
  ```
50
51
 
51
52
  `--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.25.1",
3
+ "version": "4.27.0",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=20.9.0"
@@ -14931,7 +14931,7 @@ var FLAG_DEFINITIONS = defineFlags({
14931
14931
  // gateway stores browser event batches. Both surfaces read the derived
14932
14932
  // FF_LEARNING_TRAJECTORIES override; the gateway mirrors the env default.
14933
14933
  "learning.trajectories": {
14934
- purpose: "Gates Trajectory capture, saved reads, and Trajectory sessions as a Learning source in app-api, the realtime gateway, the web app, and the Learning scheduler and runners.",
14934
+ purpose: "Gates Trajectory capture, saved reads, live viewing, and Trajectory sessions as a Learning source in app-api, the realtime gateway, the web app, and the Learning scheduler and runners. Live viewing also requires learning.trajectory-live-view.",
14935
14935
  owner: "learning",
14936
14936
  createdAt: "2026-10-01",
14937
14937
  status: "rollout",
@@ -14944,6 +14944,16 @@ var FLAG_DEFINITIONS = defineFlags({
14944
14944
  ],
14945
14945
  defaultByEnv: { dev: true, ci: true, prod: false }
14946
14946
  },
14947
+ // Keep existing capture deployments on saved reads until every API and gateway
14948
+ // replica supports live viewing and descending history. CI exercises both paths.
14949
+ "learning.trajectory-live-view": {
14950
+ purpose: "Enables operator live viewing and newest-first history after app-api and every realtime gateway replica support them.",
14951
+ owner: "learning",
14952
+ createdAt: "2026-10-09",
14953
+ status: "rollout",
14954
+ surfaces: ["app-api", "realtime-gateway", "app-frontend"],
14955
+ defaultByEnv: { dev: false, ci: true, prod: false }
14956
+ },
14947
14957
  "analytics.pipeline": {
14948
14958
  purpose: "Gates project-scoped analytics reads and realtime projection while the durable pipeline rolls out.",
14949
14959
  owner: "analytics",
@@ -14974,7 +14984,7 @@ init_define_CLI_LOCAL_EVALUATION_SUPPORT();
14974
14984
 
14975
14985
  // apps/cli/src/config.ts
14976
14986
  function getTemplateRef() {
14977
- return true ? "6c428329c9b81b3aa7e92b602ab1c0a9431d36a3" : "main";
14987
+ return true ? "3cddb360660503325b24564820c78a2ad7ee1843" : "main";
14978
14988
  }
14979
14989
 
14980
14990
  // apps/cli/src/services/agentcore-config.ts