copilotkit 4.14.0 → 4.15.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 (79) hide show
  1. package/README.md +41 -6
  2. package/cli-build-info.json +8 -8
  3. package/index.js +31335 -30607
  4. package/onboarding/index.json +1 -1
  5. package/onboarding/prompts/authenticate/start.md +17 -8
  6. package/onboarding/prompts/conversion/plan.md +3 -3
  7. package/onboarding/prompts/credentials/finalize-plan.md +8 -8
  8. package/onboarding/prompts/credentials/plan.md +21 -21
  9. package/onboarding/prompts/credentials/settle-credentials.md +10 -10
  10. package/onboarding/prompts/credentials/write-plan.md +6 -6
  11. package/onboarding/prompts/fallback/best-effort.md +7 -7
  12. package/onboarding/prompts/feature/a2ui/implement.md +6 -6
  13. package/onboarding/prompts/feature/a2ui/proof.md +6 -6
  14. package/onboarding/prompts/feature/a2ui/start.md +7 -7
  15. package/onboarding/prompts/feature/channels/implement.md +7 -7
  16. package/onboarding/prompts/feature/channels/proof.md +6 -6
  17. package/onboarding/prompts/feature/channels/start.md +7 -7
  18. package/onboarding/prompts/feature/chat-suggestions/implement.md +6 -6
  19. package/onboarding/prompts/feature/chat-suggestions/proof.md +6 -6
  20. package/onboarding/prompts/feature/chat-suggestions/start.md +7 -7
  21. package/onboarding/prompts/feature/complete.md +3 -3
  22. package/onboarding/prompts/feature/learning/implement.md +16 -16
  23. package/onboarding/prompts/feature/learning/proof.md +7 -7
  24. package/onboarding/prompts/feature/learning/start.md +9 -9
  25. package/onboarding/prompts/feature/open-generative-ui/implement.md +6 -6
  26. package/onboarding/prompts/feature/open-generative-ui/proof.md +6 -6
  27. package/onboarding/prompts/feature/open-generative-ui/start.md +7 -7
  28. package/onboarding/prompts/feature/realtime-sync/implement.md +7 -7
  29. package/onboarding/prompts/feature/realtime-sync/proof.md +6 -6
  30. package/onboarding/prompts/feature/realtime-sync/start.md +6 -6
  31. package/onboarding/prompts/feature/rich-threads/implement.md +8 -8
  32. package/onboarding/prompts/feature/rich-threads/proof.md +6 -6
  33. package/onboarding/prompts/feature/rich-threads/start.md +6 -6
  34. package/onboarding/prompts/feature/stop.md +5 -5
  35. package/onboarding/prompts/feature/voice/implement.md +6 -6
  36. package/onboarding/prompts/feature/voice/proof.md +6 -6
  37. package/onboarding/prompts/feature/voice/start.md +7 -7
  38. package/onboarding/prompts/framework/ag2.md +2 -2
  39. package/onboarding/prompts/framework/agno.md +2 -2
  40. package/onboarding/prompts/framework/built-in.md +2 -2
  41. package/onboarding/prompts/framework/claude-sdk-python.md +2 -2
  42. package/onboarding/prompts/framework/claude-sdk-typescript.md +2 -2
  43. package/onboarding/prompts/framework/crewai-flows.md +2 -2
  44. package/onboarding/prompts/framework/deep-agents.md +2 -2
  45. package/onboarding/prompts/framework/google-adk.md +2 -2
  46. package/onboarding/prompts/framework/langgraph-fastapi.md +2 -2
  47. package/onboarding/prompts/framework/langgraph-python.md +2 -2
  48. package/onboarding/prompts/framework/langgraph-typescript.md +2 -2
  49. package/onboarding/prompts/framework/llamaindex.md +2 -2
  50. package/onboarding/prompts/framework/mastra.md +2 -2
  51. package/onboarding/prompts/framework/ms-agent-dotnet.md +2 -2
  52. package/onboarding/prompts/framework/ms-agent-harness-dotnet.md +2 -2
  53. package/onboarding/prompts/framework/ms-agent-python.md +2 -2
  54. package/onboarding/prompts/framework/pydantic-ai.md +2 -2
  55. package/onboarding/prompts/framework/strands-python.md +2 -2
  56. package/onboarding/prompts/framework/strands-typescript.md +2 -2
  57. package/onboarding/prompts/frontend/angular.md +3 -3
  58. package/onboarding/prompts/frontend/nextjs.md +3 -3
  59. package/onboarding/prompts/frontend/plan.md +7 -7
  60. package/onboarding/prompts/frontend/react-native.md +2 -2
  61. package/onboarding/prompts/frontend/react-spa.md +2 -2
  62. package/onboarding/prompts/frontend/vue.md +2 -2
  63. package/onboarding/prompts/implementation/build-and-validate.md +16 -16
  64. package/onboarding/prompts/proof/complete.md +9 -9
  65. package/onboarding/prompts/proof/oss-baseline.md +5 -5
  66. package/onboarding/prompts/proof/round-trip.md +11 -11
  67. package/onboarding/prompts/research/gather.md +6 -6
  68. package/onboarding/prompts/research/merge.md +3 -3
  69. package/onboarding/prompts/research/preflight.md +4 -4
  70. package/onboarding/prompts/research/route.md +5 -5
  71. package/onboarding/prompts/starter/clone.md +6 -6
  72. package/onboarding/prompts/stopped/run-failed.md +4 -4
  73. package/onboarding/prompts/subagent/create-plan.md +1 -1
  74. package/onboarding/prompts/subagent/inspect-repository.md +1 -1
  75. package/onboarding/prompts/subagent/prove-oss-baseline.md +8 -1
  76. package/onboarding/prompts/subagent/prove-round-trip.md +18 -16
  77. package/onboarding/prompts/unsupported/no-validated-path.md +3 -3
  78. package/package.json +1 -1
  79. package/release/release-tool.js +1 -1
@@ -170,7 +170,7 @@ here is work the developer did not ask for.
170
170
  Plan the threads drawer itself: add it from the selected drawer page, where this frontend
171
171
  does not already render one. Where this journey's frontend framework ships no threads
172
172
  drawer -- React Native --, plan that the thread is proved by
173
- `npx --yes copilotkit@4.14.0 verify --round-trip`, which needs no browser. Do not plan a
173
+ `npx --prefer-offline --yes copilotkit@4.15.0 verify --round-trip`, which needs no browser. Do not plan a
174
174
  step that opens the managed Intelligence dashboard.
175
175
 
176
176
  ## Order the plan into steps
@@ -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 --yes copilotkit@4.14.0 onboard inspect --json
10
+ npx --prefer-offline --yes copilotkit@4.15.0 onboard inspect --json
11
11
  ```
12
12
 
13
13
  It answers the deterministic half of both packets exactly, from the same code
@@ -7,6 +7,13 @@ Find the expected agent id from the project. Start the existing agent and fronte
7
7
  when they are not already running. Before using a port, identify its process and working
8
8
  directory. Do not stop a process outside this project.
9
9
 
10
+ If your harness runs commands in a sandbox, a sandboxed command cannot listen on a port or
11
+ connect to localhost. Before the first server start, request escalation with a prefix rule
12
+ for the project's own dev script. Before the first request to a local server, request
13
+ escalation with a prefix rule for `curl`. If a local request still fails after 0 ms
14
+ (`Failed to connect ... after 0 ms`) while the port shows a listener, the sandbox blocked
15
+ it. Run it again with escalation, and do not record a failed predicate or step.
16
+
10
17
  Prove the live runtime in this order:
11
18
 
12
19
  1. GET `/info` from the project's CopilotKit runtime and require a valid response.
@@ -19,7 +26,7 @@ Prove the live runtime in this order:
19
26
  4. Confirm from project files that the runtime constructor passes a `runner` option rather
20
27
  than an `intelligence` option. A package, import, project file, or key is not use proof.
21
28
  5. Run
22
- `npx --yes copilotkit@4.14.0 verify --expect-runtime oss --round-trip --agent <expected-agent-id> --json`,
29
+ `npx --prefer-offline --yes copilotkit@4.15.0 verify --expect-runtime oss --round-trip --agent <expected-agent-id> --json`,
23
30
  with the runtime URL or auth header options that this project needs. Require exit zero
24
31
  and the JSON `ok` field to be `true`.
25
32
  6. Drive one real request through the existing frontend, CopilotKit runtime, and expected
@@ -89,21 +89,23 @@ agent and the frontend from one `dev` script, which runs them under
89
89
  other. A second start against a project already running that script collides with a server
90
90
  that is up.
91
91
 
92
+ If your harness runs commands in a sandbox, a sandboxed command cannot listen on a port or
93
+ connect to localhost. Before the first server start, request escalation with a prefix rule
94
+ for the project's own dev script. Before the first request to a local server, request
95
+ escalation with a prefix rule for `curl`. If a local request still fails after 0 ms
96
+ (`Failed to connect ... after 0 ms`) while the port shows a listener, the sandbox blocked
97
+ it. Run it again with escalation, and do not record a failed predicate or step.
98
+
92
99
  Start each server in the background with the project's own script. Then wait for it to
93
100
  answer rather than for a fixed number of seconds:
94
101
 
95
102
  ```bash
96
- ready=
97
- for _ in $(seq 90); do
98
- curl -fs -o /dev/null "<url>" && ready=1 && break
99
- sleep 1
100
- done
101
- [ "$ready" = 1 ] && echo "up" || echo "no answer from <url> after 90 seconds"
103
+ curl -fs -o /dev/null --retry 90 --retry-delay 1 --retry-max-time 90 --retry-all-errors "<url>"
102
104
  ```
103
105
 
104
- Read the loop's own last line rather than assuming it ended because the server answered.
105
- A server that never answered has written the reason to its own output, and reading that
106
- output is faster than starting it again.
106
+ A zero exit means the server answered. Any other exit means that it did not answer in 90
107
+ seconds. A server that never answered has written the reason to its own output, and
108
+ reading that output is faster than starting it again.
107
109
 
108
110
  That coupling also turns an ordinary restart into a false failure. Where you stop a server
109
111
  to pick up an installed dependency, start both again and wait for both to answer before you
@@ -145,7 +147,7 @@ IPv6 only, so an IPv4 literal fails against the correct port.
145
147
  ## Step 4 -- Check the wiring
146
148
 
147
149
  With both running, check the wiring in one command before you open a browser:
148
- `npx --yes copilotkit@4.14.0 verify --json`. It reads the port from this project, so a
150
+ `npx --prefer-offline --yes copilotkit@4.15.0 verify --json`. It reads the port from this project, so a
149
151
  non-default port needs no flag. The payload reports `runtimeUrl` and `runtimeUrlSource`. A
150
152
  `runtimeUrlSource` of `default` means nothing in the project named a port, so pass
151
153
  `--runtime-url` with the URL from step 1 in that case. Read the individual checks rather than
@@ -179,7 +181,7 @@ named no port the CLI can read: keep step 2's URL, and rewrite its host as `loca
179
181
  before you use it.
180
182
 
181
183
  Then run the command once more with the URL you are about to open:
182
- `npx --yes copilotkit@4.14.0 verify --frontend-url <that url> --json`. The
184
+ `npx --prefer-offline --yes copilotkit@4.15.0 verify --frontend-url <that url> --json`. The
183
185
  `frontend_assets_served` check asks that server for its page and for one of the page's own
184
186
  assets, on that exact host. A `fail` there means the dev server refuses its own static
185
187
  assets on the host you were about to use, and the check names the URL to use instead. This
@@ -187,7 +189,7 @@ is the cheapest step that can save the most expensive one, so run it before the
187
189
 
188
190
  ## Step 5 -- Prove that the agent runs
189
191
 
190
- Run `npx --yes copilotkit@4.14.0 verify --round-trip --json`. It sends one request through
192
+ Run `npx --prefer-offline --yes copilotkit@4.15.0 verify --round-trip --json`. It sends one request through
191
193
  the runtime and reads the answer back from the thread, so it separates an agent that is
192
194
  configured from an agent that works. Use `--agent <id>` when the runtime declares more
193
195
  than one. If it reports `user-not-identified`, this project's `identifyUser` reads a
@@ -200,7 +202,7 @@ Where this run settled a Learning Container, add the flag to the call above rath
200
202
  running a second round trip:
201
203
 
202
204
  ```text
203
- npx --yes copilotkit@4.14.0 verify --round-trip --expect-learning-container <container id> --json
205
+ npx --prefer-offline --yes copilotkit@4.15.0 verify --round-trip --expect-learning-container <container id> --json
204
206
  ```
205
207
 
206
208
  The check reads the thread that this run created, so a second round trip proves a second
@@ -234,7 +236,7 @@ the credential was written holds an empty key while the file beside it carries t
234
236
  one. Run this from the target app directory:
235
237
 
236
238
  ```text
237
- npx --yes copilotkit@4.14.0 onboard env-staleness
239
+ npx --prefer-offline --yes copilotkit@4.15.0 onboard env-staleness
238
240
  ```
239
241
 
240
242
  A `stale` line names the env file and how long after launch it was written. Report that,
@@ -312,7 +314,7 @@ For a recorded `both-oss` starting state, this step has no component to render.
312
314
  same request the baseline recorded, require the same kind of user-visible result the
313
315
  baseline produced, and require that the thread for that request is listed in the drawer.
314
316
  Where this journey's frontend framework ships no threads drawer -- React Native --, prove
315
- that thread with `npx --yes copilotkit@4.14.0 verify --round-trip`, which reads the
317
+ that thread with `npx --prefer-offline --yes copilotkit@4.15.0 verify --round-trip`, which reads the
316
318
  answer back off the thread and needs no browser. Record which of the two you proved.
317
319
 
318
320
  Use the surface control the main coding agent recorded for your environment. It either had
@@ -340,7 +342,7 @@ request never exercises. Drive it with the browser control step 6 named.
340
342
  the page to finish loading. Do not retype the host, and do not substitute a URL a tool
341
343
  offers you by default. Where the page loads but its styling is missing or the chat
342
344
  control is dead, run
343
- `npx --yes copilotkit@4.14.0 verify --frontend-url <the url you opened> --json`
345
+ `npx --prefer-offline --yes copilotkit@4.15.0 verify --frontend-url <the url you opened> --json`
344
346
  before you diagnose anything else. A dev server can serve its page and refuse every
345
347
  static chunk behind it, and on screen that is indistinguishable from a broken
346
348
  integration. The `frontend_assets_served` check tells the two apart.
@@ -30,16 +30,16 @@ 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 --yes copilotkit@4.14.0 onboard read fallback/best-effort`.
33
+ `npx --prefer-offline --yes copilotkit@4.15.0 onboard read fallback/best-effort`.
34
34
 
35
35
  Send one short report. Run the friction command without another developer question. Do not
36
36
  ask the developer about telemetry: the command applies the setting they already have.
37
37
 
38
38
  ```text
39
- npx --yes copilotkit@4.14.0 onboard friction --phase stop --category <slug>
39
+ npx --prefer-offline --yes copilotkit@4.15.0 onboard friction --phase stop --category <slug> --message "<sentences>"
40
40
  ```
41
41
 
42
- Write one or two sentences to standard input: the step you stopped at and what stopped it.
42
+ `--message` takes one or two sentences: the step you stopped at and what stopped it.
43
43
  Pick the category that fits from docs-missing, docs-wrong, docs-sequential, cli-gap,
44
44
  sdk-gap, environment, port-collision, credential, validation-loop, and other. Leave
45
45
  --cost-seconds off. A run that stopped cannot separate one papercut's cost from the cost
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "copilotkit",
3
- "version": "4.14.0",
3
+ "version": "4.15.0",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=20.9.0"
@@ -14811,7 +14811,7 @@ var FLAG_DEFINITIONS = defineFlags({
14811
14811
 
14812
14812
  // apps/cli/src/config.ts
14813
14813
  function getTemplateRef() {
14814
- return true ? "2c42a41a7e749c4473705769d1ae985d89718465" : "main";
14814
+ return true ? "33db9a81ccfd2d6e820defe3c1616594909439af" : "main";
14815
14815
  }
14816
14816
 
14817
14817
  // apps/cli/src/services/agentcore-config.ts