@runtypelabs/cli 2.35.4 → 2.35.6

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.
package/CHANGELOG.md DELETED
@@ -1,2436 +0,0 @@
1
- # @runtypelabs/cli
2
-
3
- ## 2.35.4
4
-
5
- ### Patch Changes
6
-
7
- - 8ab7d4a: Apply flow and agent version snapshots to the live execution rows atomically when publishing from any API surface.
8
- - Updated dependencies [ccd07e2]
9
- - Updated dependencies [8ab7d4a]
10
- - @runtypelabs/sdk@9.3.2
11
-
12
- ## 2.35.3
13
-
14
- ### Patch Changes
15
-
16
- - Updated dependencies [95e48e6]
17
- - @runtypelabs/sdk@9.3.1
18
-
19
- ## 2.35.2
20
-
21
- ### Patch Changes
22
-
23
- - 6bfcfa0: `runtype agents execute --stream` now follows a durable turn's watch-lease detach: the command routes through the SDK's `agents.executeStream()`, which reopens the run on `awaitReason: 'detached'` and keeps printing events until a real terminal arrives.
24
- - Updated dependencies [20f2a28]
25
- - Updated dependencies [6bfcfa0]
26
- - Updated dependencies [9ac677d]
27
- - Updated dependencies [9ac677d]
28
- - Updated dependencies [e1111dc]
29
- - Updated dependencies [6bfcfa0]
30
- - @runtypelabs/sdk@9.3.0
31
-
32
- ## 2.35.1
33
-
34
- ### Patch Changes
35
-
36
- - Updated dependencies [a370a11]
37
- - @runtypelabs/sdk@9.2.1
38
-
39
- ## 2.35.0
40
-
41
- ### Minor Changes
42
-
43
- - dae3030: Add `runtype api-keys request` and `runtype api-keys claim` for agent-initiated
44
- API key requests: the CLI generates a PKCE verifier/challenge, files the
45
- request, opens the approval page for a human, polls until they decide, and
46
- redeems the approval into a canonical `runtype.api-key/v1` key file
47
- (`~/.runtype/keys/<name>.json`, mode 0600), a Runtype secret reference
48
- (`--secret`), or stdout (`--inline`). `runtype api-keys create --out` writes the
49
- same key-file format, so there is one on-disk artifact across the CLI,
50
- dashboard, and MCP guidance.
51
- - 235751c: Report exact raw Runtype-funded provider and hosted-tool cost separately from blended execution cost.
52
-
53
- ### Patch Changes
54
-
55
- - Updated dependencies [d129b45]
56
- - Updated dependencies [005b795]
57
- - Updated dependencies [b216c6a]
58
- - Updated dependencies [235751c]
59
- - Updated dependencies [edefa3c]
60
- - Updated dependencies [dd54ba0]
61
- - Updated dependencies [b2ac8a0]
62
- - Updated dependencies [dae3030]
63
- - Updated dependencies [f95b02e]
64
- - Updated dependencies [f5250b6]
65
- - Updated dependencies [c5a5baf]
66
- - Updated dependencies [e305a29]
67
- - Updated dependencies [2783291]
68
- - @runtypelabs/sdk@9.2.0
69
-
70
- ## 2.34.1
71
-
72
- ### Patch Changes
73
-
74
- - Updated dependencies [7aea953]
75
- - Updated dependencies [9c9eb47]
76
- - @runtypelabs/sdk@9.1.1
77
-
78
- ## 2.34.0
79
-
80
- ### Minor Changes
81
-
82
- - ccdc5f6: Expose the first-class record/conversation `ownerId` on every client surface (#3395)
83
- - **CLI**: `records list`, `records create`, and `records export` take `--owner-id`; `records update` takes `--owner-id` plus `--clear-owner` (an explicit `null`, which clears the stored owner — omitting both leaves it untouched). `conversations list` takes `--owner-id`. `records get`/`update` render the owner, and the CSV export gains an `ownerId` column.
84
- - **SDK**: `CreateRecordRequest.ownerId` and `CreateConversationRequest.ownerId` / `UpdateConversationRequest.ownerId` accept `string | null`, so `records.update()` and `conversations.update()` can clear an owner.
85
- - **MCP**: `create_record` / `create_conversation` accept `owner_id`; `update_record` / `update_conversation` accept a nullable `owner_id` where `null` clears the owner.
86
- - **Code Mode MCP**: the `listRecords` / `createRecord` / `updateRecord` / `listConversations` / `createConversation` / `updateConversation` method docs describe `ownerId` and its null-clears semantics.
87
-
88
- ### Patch Changes
89
-
90
- - Updated dependencies [b4c1858]
91
- - Updated dependencies [cf8dd74]
92
- - Updated dependencies [ccdc5f6]
93
- - Updated dependencies [ccdc5f6]
94
- - Updated dependencies [901ee20]
95
- - Updated dependencies [86212a3]
96
- - Updated dependencies [840934b]
97
- - @runtypelabs/sdk@9.1.0
98
-
99
- ## 2.33.16
100
-
101
- ### Patch Changes
102
-
103
- - 4406dc3: Serve large static reference data from a new `runtype-catalog` worker instead of
104
- bundling it into every consumer.
105
-
106
- The rich model catalog (~848 KB) and the rich tier of the built-in tool registry
107
- (~430 KB: `parametersSchema`, `managedExecution`, `description`,
108
- `documentationUrl`, `configSchema`) move into `apps/catalog`, reached over the
109
- new `CATALOG` service binding. The api keeps a lean tool index and merges rich
110
- fields per lookup, batching through `prefetchBuiltInToolRichData` once per
111
- execution.
112
-
113
- Measured: api Worker upload 13,662.65 KiB → 12,889.70 KiB (−772.95 KiB), gzip
114
- 3,387.60 → 3,314.10 KiB, eager-evaluated bytes 6.05 MiB → 5.73 MiB. The
115
- dashboard's initial client JavaScript drops 75.8 KiB gzip (−14.1%).
116
-
117
- `@runtypelabs/shared` is a minor because the barrel surface changed:
118
- `getBuiltInToolById` now returns a `LeanBuiltInToolDefinition`, and
119
- `ORTHOGONAL_PLATFORM_TOOLS`, `validateToolConfig`, `validateConfigAgainstSchema`,
120
- `getBuiltInToolsByProvider`, and `getBuiltInToolsByCategory` are no longer
121
- exported from it. The full definitions live behind the
122
- `@runtypelabs/shared/builtin-tools-full` subpath.
123
-
124
- - Updated dependencies [b01026e]
125
- - Updated dependencies [7a5cf94]
126
- - @runtypelabs/sdk@9.0.0
127
-
128
- ## 2.33.15
129
-
130
- ### Patch Changes
131
-
132
- - Updated dependencies [e154387]
133
- - @runtypelabs/sdk@8.0.3
134
-
135
- ## 2.33.14
136
-
137
- ### Patch Changes
138
-
139
- - 3b4f69c: Normalize package authorship and copyright metadata.
140
-
141
- The `author` field reads `Runtype` rather than `Runtype Labs` across every
142
- workspace package that set it, and the copyright holder in each license file is
143
- now `Runtype, Inc` — replacing `Travrse Labs, Inc` in the CLI and the four Fern
144
- SDKs, and the `Runtype Labs` that the new `flue-otel` license was written with.
145
-
146
- Metadata only: no source, dependency, or behavior change.
147
-
148
- - Updated dependencies [3b4f69c]
149
- - @runtypelabs/terminal-animations@0.2.4
150
- - @runtypelabs/ink-components@0.3.7
151
- - @runtypelabs/sdk@8.0.2
152
-
153
- ## 2.33.13
154
-
155
- ### Patch Changes
156
-
157
- - Updated dependencies [047a57b]
158
- - @runtypelabs/sdk@8.0.1
159
-
160
- ## 2.33.12
161
-
162
- ### Patch Changes
163
-
164
- - 3c7309f: Bump `@runtypelabs/persona` from 4.17.0 to 4.17.1 across the consuming
165
- workspaces (dashboard-spa, dotapp, marketing, end-user-usage-lab, assistant,
166
- cli, shared); assistant's peer range `>=4.9.0` is unchanged. 4.17.1 regenerates
167
- the Runtype OpenAPI contract types to match the current public API spec (adds
168
- visitor/identity fields to client init, `conversationId`/`conversationRevision`/
169
- `visitor`/`app`/`targetId` on the init response, a `requests[]` array and
170
- `externalAgent` on await events, `stepErrorCount` on execution completion, and
171
- `displayContent` on chat request messages) and bumps `@mcp-b/webmcp-polyfill`
172
- to 4.0.0. Also widened the `minimumReleaseAgeExclude` entry so pnpm accepts the
173
- just-published 4.17.1.
174
-
175
- ## 2.33.11
176
-
177
- ### Patch Changes
178
-
179
- - Updated dependencies [7d284c9]
180
- - Updated dependencies [93387f9]
181
- - Updated dependencies [af59a67]
182
- - Updated dependencies [c29f1ce]
183
- - Updated dependencies [8847973]
184
- - Updated dependencies [4776fa0]
185
- - Updated dependencies [3ea4dd2]
186
- - Updated dependencies [59e5efa]
187
- - Updated dependencies [60e39b1]
188
- - Updated dependencies [553da9d]
189
- - Updated dependencies [a2c4ec7]
190
- - Updated dependencies [6671abd]
191
- - Updated dependencies [f3aef36]
192
- - @runtypelabs/sdk@8.0.0
193
-
194
- ## 2.33.10
195
-
196
- ### Patch Changes
197
-
198
- - Updated dependencies [5df5995]
199
- - Updated dependencies [1419c72]
200
- - Updated dependencies [948ceed]
201
- - Updated dependencies [c56a67e]
202
- - Updated dependencies [212bd10]
203
- - Updated dependencies [5ae8a9c]
204
- - @runtypelabs/sdk@7.3.1
205
-
206
- ## 2.33.9
207
-
208
- ### Patch Changes
209
-
210
- - 790e4a6: Remove copy-only tests so user-facing text can change without breaking behavior-focused coverage.
211
- - Updated dependencies [d1ba834]
212
- - @runtypelabs/sdk@7.3.0
213
-
214
- ## 2.33.8
215
-
216
- ### Patch Changes
217
-
218
- - Updated dependencies [083846c]
219
- - @runtypelabs/sdk@7.2.1
220
-
221
- ## 2.33.7
222
-
223
- ### Patch Changes
224
-
225
- - Updated dependencies [6ae01b5]
226
- - @runtypelabs/sdk@7.2.0
227
-
228
- ## 2.33.6
229
-
230
- ### Patch Changes
231
-
232
- - Updated dependencies [8d85ce9]
233
- - Updated dependencies [cdff95a]
234
- - Updated dependencies [27d0b95]
235
- - @runtypelabs/sdk@7.1.0
236
-
237
- ## 2.33.5
238
-
239
- ### Patch Changes
240
-
241
- - Updated dependencies [a634b53]
242
- - Updated dependencies [836fc82]
243
- - Updated dependencies [dda50f3]
244
- - @runtypelabs/sdk@7.0.0
245
-
246
- ## 2.33.4
247
-
248
- ### Patch Changes
249
-
250
- - 308c44c: Stop every consumer surface from claiming execution-count caps that no longer exist (remove-execution-caps Slice 3).
251
-
252
- Slice 2 removed execution-count caps from enforcement. This makes the dashboard, the REST responses, and the docs agree with that: a card-on-file account is never bounded by execution count, and the only remaining bound is the code-owned protective daily ceiling for accounts with no payment method, framed as "add a payment method to remove", never "upgrade your plan".
253
- - `ExecutionStats` gains `executionCapReason` (`'no_card_ceiling' | null`), the single signal a surface may branch on. The neutral fallbacks (rate-limit block, spend-cap block, DO fail-open, failed display read) no longer report a ceiling-shaped limit.
254
- - `GET /usage-limits` and `/usage-limits/daily` expose `executionCapReason` and always key the payload under `daily`; `inSlowMode` / `isOverage` / `overageCount` / `periodType` stay on the wire but are documented as inert.
255
- - `GET /v1/billing/status` gains `usage.executionsToday` (`executionsThisMonth` is a deprecated alias carrying the same daily count); `isApproachingLimits` / `isOverLimits` are documented as always `false`.
256
- - Dashboard: usage banners render only for a no-card account, the slow-mode modal is deleted (it had no producer), and the dev billing tester models the carded/no-card matrix instead of retired plan pools.
257
- - CLI: `runtype billing status` and `runtype auth whoami` read `executionsToday` instead of `executionsUsed` / `executionsLimit`, which the API has never returned, so both printed "Executions: 0" against a live API. They now show a plain count (no invented denominator) and say "unavailable" when the usage read failed.
258
-
259
- - Updated dependencies [f59e62b]
260
- - Updated dependencies [308c44c]
261
- - @runtypelabs/sdk@6.6.3
262
-
263
- ## 2.33.3
264
-
265
- ### Patch Changes
266
-
267
- - 8721b57: Bump `@runtypelabs/persona` from 4.15.0 to 4.17.0 across the consuming workspaces.
268
- 4.17.0 bundles `dompurify@3.4.13`, fixing GHSA-55q2-fjhq-7xh7 (IN_PLACE
269
- hook-removal XSS) and GHSA-c2j3-45gr-mqc4 (`CUSTOM_ELEMENT_HANDLING` bypass).
270
-
271
- ## 2.33.2
272
-
273
- ### Patch Changes
274
-
275
- - Updated dependencies [941f500]
276
- - @runtypelabs/sdk@6.6.2
277
-
278
- ## 2.33.1
279
-
280
- ### Patch Changes
281
-
282
- - 1238c60: Distinguish an unreachable API from an invalid key during auth. Key validation now
283
- returns "invalid" only when the API answers 401; any other HTTP status (an egress
284
- proxy's 403, a 407, an API 5xx) reports the real problem and names the host that
285
- needs to be reachable, instead of telling users their API key is bad.
286
- - Updated dependencies [5ad8bac]
287
- - Updated dependencies [58f5a8a]
288
- - Updated dependencies [e12b556]
289
- - Updated dependencies [e23af15]
290
- - @runtypelabs/sdk@6.6.1
291
-
292
- ## 2.33.0
293
-
294
- ### Minor Changes
295
-
296
- - bcf78f5: Add typed record collections end to end (Records→Collections plan §5.1/§5.2). The SDK gains an augmentable `RecordCollections` map, a `CollectionMeta<S>` helper, and `client.records.from(slug)` — a typed scope whose `.list/.get/.create/.update` pin the record `type` to the slug and type `metadata` for that collection (`.get`/`.update` guard against cross-collection ids). A new authed `GET /v1/collections/types.d.ts` endpoint hand-emits a `.d.ts` (one interface per schematized collection plus a `declare module '@runtypelabs/sdk'` augmentation, with `// skipped:` markers for rows whose stored schema no longer parses) from the constrained schema dialect. `runtype records typegen [-o <file>]` fetches it (commit and diff-check the output in CI to catch collection-schema drift). The typegen endpoint is fanned out across surfaces: the `get_collection_types` MCP tool (standard + code-mode `getCollectionTypegen`) and the CLI.
297
-
298
- ### Patch Changes
299
-
300
- - 5a8e7db: Bump react to 19.2.8, react-dom to 19.2.8, and @types/react to 19.2.17 (devDependencies).
301
- - db37a92: Bump `@runtypelabs/persona` from 4.14.0 to 4.15.0 across the consuming workspaces.
302
- - b83dfd2: Group dependency bumps: add-mcp 1.14.0 → 2.0.0, ws ^8.21.0 → ^8.21.1, @radix-ui/react-separator 1.1.8 → 1.1.15, eslint-config-next 16.2.9 → 16.2.12, and @cloudflare/workers-types ^5.20260703.1 → ^5.20260804.1 (workspace override + minimum-release-age exclude lifted).
303
- - Updated dependencies [5a8e7db]
304
- - Updated dependencies [bcf78f5]
305
- - @runtypelabs/ink-components@0.3.6
306
- - @runtypelabs/terminal-animations@0.2.3
307
- - @runtypelabs/sdk@6.6.0
308
-
309
- ## 2.32.5
310
-
311
- ### Patch Changes
312
-
313
- - Updated dependencies [22ab25a]
314
- - @runtypelabs/sdk@6.5.1
315
-
316
- ## 2.32.4
317
-
318
- ### Patch Changes
319
-
320
- - eab2128: Pin first-party dispatch helpers to the response mode selected by their JSON or streaming transport.
321
- - Updated dependencies [9dca3bc]
322
- - Updated dependencies [e76a310]
323
- - Updated dependencies [eab2128]
324
- - Updated dependencies [25412dc]
325
- - Updated dependencies [7ab031f]
326
- - Updated dependencies [eab2128]
327
- - @runtypelabs/sdk@6.5.0
328
-
329
- ## 2.32.3
330
-
331
- ### Patch Changes
332
-
333
- - ad943b9: Align public dispatch request types and clients with the canonical API schema.
334
- - 7fe10a4: Align portable runtime provider configuration with ModelRouter: honor Together
335
- dedicated endpoints, the operator Mixlayer Cloudflare Gateway overlay, native
336
- OpenAI/Anthropic gateway policy, and Bedrock/Vertex region defaults. Provider
337
- endpoint parsing and defaults now have one shared implementation, and CLI
338
- deploys no longer require region/location values that execution defaults.
339
- - 938ec68: Bump `@runtypelabs/persona` from 4.13.0 to 4.14.0 and adopt the new `preferences` config key in the dashboard chat. `PersonaChat` accepts an optional `preferences` prop (a `WidgetPreferenceSlice` of per-instance display overrides applied over `features` through Persona's allowlist, with live updates and explicit-undefined clearing), and the dashboard's artifact features now set a default display ruleset: documents and components render as reference cards, file-backed code artifacts render inline, and previewable HTML/SVG files get the sandboxed iframe preview in inline mode. The playground's chat panel consolidates its two header rows into one bar: Chat / Payload / Events tabs (Events opens the widget's event stream full-pane), a Display menu with artifact, tool call, and reasoning preference groups wired through the new prop (applying live and clearing back to dashboard defaults), and Logs / Clear on the right. PersonaChat gains `header="none"` plus an `onControlsChange` callback so a parent can own the chrome; all other call sites keep the built-in header. The Display menu is a shared component (`chat-display-menu.tsx`) now present across every test chat: PersonaChat's default header (agent test sheet, flow run sheet), the surface test chat, and the Claude Managed capability chat, with the latter two also picking up the dashboard's default artifact display rules.
340
- - a62d543: Preserve request-scoped local model routing inside nested flow tools and keep
341
- defaulted Bedrock and Vertex region overrides visible as optional deployment
342
- settings without requiring them as credentials.
343
- - Updated dependencies [c576866]
344
- - Updated dependencies [ad943b9]
345
- - Updated dependencies [15f3980]
346
- - Updated dependencies [41a2650]
347
- - Updated dependencies [050c834]
348
- - Updated dependencies [17382d8]
349
- - Updated dependencies [17382d8]
350
- - Updated dependencies [9e19bc0]
351
- - @runtypelabs/sdk@6.4.0
352
-
353
- ## 2.32.2
354
-
355
- ### Patch Changes
356
-
357
- - Updated dependencies [19e0d21]
358
- - @runtypelabs/sdk@6.3.6
359
-
360
- ## 2.32.1
361
-
362
- ### Patch Changes
363
-
364
- - a548a79: Bump `@runtypelabs/persona` from 4.12.0 to 4.13.0 across the consuming workspaces.
365
- - d3bb1ed: Apply security overrides for dev/build tooling (batch 1), resolving 29 Dependabot
366
- alerts. Adds bounded `overrides` entries for `@tootallnate/once`, `ajv`,
367
- `minimatch`, `path-to-regexp`, `smol-toml`, `rollup`, `@babel/core`, `js-yaml`,
368
- `brace-expansion`, `undici` (<6 only) and `sharp`, and bumps the
369
- `vercel-functions-hello` example's `vercel` devDependency 44 -> 58 so
370
- `@vercel/fun` stops pinning `tar@6.2.1` (which no `tar` override could clear).
371
-
372
- No runtime source changed; this is a lockfile/root-config change. Notable
373
- resolution shifts: `sharp` 0.34.5 -> 0.35.2 (prebuilt binary set swap, verified
374
- against the marketing Next.js build), `rollup` 4.57.0 -> 4.62.0, and `tar@6.2.1`
375
- removed from the tree entirely. `undici@7.28.0` is deliberately untouched for
376
- miniflare / wrangler / `@cloudflare/vitest-pool-workers`.
377
-
378
- - 13b718f: Apply security overrides for runtime-reachable dependencies (batch 2). Adds bounded
379
- `overrides` entries for `fast-uri`, `form-data` (3.x and 4.x), `lodash`, `uuid` (13.x),
380
- `basic-ftp`, `defu`, `flatted`, `body-parser` (2.x), `js-yaml` (4.x),
381
- `brace-expansion` (5.x), `ip-address` (10.x) and `dompurify`.
382
-
383
- Unlike batch 1 these are reachable from shipped code, not just dev/build tooling:
384
- `fast-uri` sits under `ajv` in the API worker's MCP/schema path, `form-data` and
385
- `uuid` are pulled in by the API, runtime and sandbox dependency trees, `js-yaml` 4.x
386
- reaches `@runtypelabs/cli`, and `brace-expansion` 5.x reaches
387
- `@runtypelabs/model-execution`. The `dompurify` entry drops the vulnerable 3.3.3 copy
388
- that `posthog-js` pulled in and consolidates on 3.4.12, the version
389
- `@runtypelabs/persona` already ships in the same tree.
390
-
391
- No runtime source changed; this is a lockfile/root-config change. Every override
392
- carries a deliberate upper bound, since a bare `>=X` override resolves to the newest
393
- match across all majors. Verified: no downgrades anywhere in the lockfile.
394
-
395
- - Updated dependencies [6784100]
396
- - Updated dependencies [d3bb1ed]
397
- - Updated dependencies [13b718f]
398
- - @runtypelabs/sdk@6.3.5
399
-
400
- ## 2.32.0
401
-
402
- ### Minor Changes
403
-
404
- - 17b9d49: Migrate from the v1 MCP SDK monolith (`@modelcontextprotocol/sdk` 1.29.0) to the v2 scoped packages (`@modelcontextprotocol/{server,client,core}` 2.0.0-beta.5, pinned exact until the stable release lands with the 2026-07-28 spec). The hosted API transport now serves both protocol eras: legacy `initialize` clients (2025-11-25 and earlier) take the unchanged production path, and 2026-07-28 envelope-carrying requests (including `server/discover`) are served through the SDK's modern handler. `@hono/mcp` is replaced by driving the SDK's web-standard transport directly.
405
-
406
- ### Patch Changes
407
-
408
- - 739cd8c: Bump `@runtypelabs/persona` from 4.10.0 to 4.12.0 across the consuming workspaces.
409
- - Updated dependencies [400c1f1]
410
- - Updated dependencies [400c1f1]
411
- - Updated dependencies [93a3c5b]
412
- - @runtypelabs/sdk@6.3.4
413
-
414
- ## 2.31.6
415
-
416
- ### Patch Changes
417
-
418
- - Updated dependencies [844b742]
419
- - @runtypelabs/sdk@6.3.3
420
-
421
- ## 2.31.5
422
-
423
- ### Patch Changes
424
-
425
- - Updated dependencies [f0ec44b]
426
- - @runtypelabs/sdk@6.3.2
427
-
428
- ## 2.31.4
429
-
430
- ### Patch Changes
431
-
432
- - e9fef9f: Bump `@runtypelabs/persona` from 4.9.0 to 4.10.0 across the consuming workspaces.
433
- - Updated dependencies [d547ab3]
434
- - Updated dependencies [c065bb9]
435
- - @runtypelabs/sdk@6.3.1
436
-
437
- ## 2.31.3
438
-
439
- ### Patch Changes
440
-
441
- - Updated dependencies [401acbd]
442
- - Updated dependencies [cb8cb9e]
443
- - Updated dependencies [7f77e9f]
444
- - Updated dependencies [20737ee]
445
- - @runtypelabs/sdk@6.3.0
446
-
447
- ## 2.31.2
448
-
449
- ### Patch Changes
450
-
451
- - Updated dependencies [68a503e]
452
- - @runtypelabs/sdk@6.2.1
453
-
454
- ## 2.31.1
455
-
456
- ### Patch Changes
457
-
458
- - 064d62e: Bump `@runtypelabs/persona` from 4.6.1 to 4.8.0: refreshed WebMCP clientTools snapshot on client-token resume (4.7.0) and the artifact system overhaul (4.8.0) with sandboxed file previews, display modes, inline artifact blocks, syntax-highlighted source views, and detached/flush panel appearances.
459
- - Updated dependencies [b967727]
460
- - Updated dependencies [2c8cf42]
461
- - Updated dependencies [2c8cf42]
462
- - @runtypelabs/sdk@6.2.0
463
-
464
- ## 2.31.0
465
-
466
- ### Minor Changes
467
-
468
- - 47cd4cb: Browserless agent signup: `runtype auth register --email` / `claim` / `verify` wrap the agent-auth claim ceremony so coding agents can create and verify a Runtype account from a non-TTY shell with no browser. Non-TTY `auth login`/`signup` now print actionable guidance instead of a dead-end TTY error, `auth status` reports pending-signup state with the exact next command, and `whoami` falls back to `/users/profile` for key classes that `/auth/me` rejects. The runtype.ai agent onboarding instructions now lead with this flow (the user is only ever asked for their email and the emailed 6-digit code), and auth.md documents the CLI as the preferred protocol client.
469
-
470
- ## 2.30.1
471
-
472
- ### Patch Changes
473
-
474
- - Updated dependencies [843b702]
475
- - @runtypelabs/sdk@6.1.4
476
-
477
- ## 2.30.0
478
-
479
- ### Minor Changes
480
-
481
- - 180154f: Add `runtype onboard`, a single npx-able command that collapses the agent golden path: it signs in, installs Runtype agent skills and the hosted OAuth MCP server for the current coding agent, and prints an explicit next-step payload (with `--print-instructions` to emit the canonical agent onboarding markdown verbatim).
482
-
483
- ## 2.29.0
484
-
485
- ### Minor Changes
486
-
487
- - 88cc64f: Add `runtype devices` commands that securely install and control the native macOS device provider, pair local Macs, manage policy and lifecycle, inspect relay status, and discover each device's managed MCP endpoint.
488
-
489
- ## 2.28.1
490
-
491
- ### Patch Changes
492
-
493
- - Updated dependencies [1acada7]
494
- - Updated dependencies [db2cf06]
495
- - @runtypelabs/sdk@6.1.3
496
-
497
- ## 2.28.0
498
-
499
- ### Minor Changes
500
-
501
- - 5a95da5: Add generic `runtype mcp tools`, `inspect`, and `call` commands for dynamically discovering and invoking the primary or Code Mode MCP server, with typed fields, JSON file/stdin input, and machine-readable results.
502
-
503
- ## 2.27.1
504
-
505
- ### Patch Changes
506
-
507
- - Updated dependencies [158223e]
508
- - Updated dependencies [3abba4d]
509
- - @runtypelabs/sdk@6.1.2
510
-
511
- ## 2.27.0
512
-
513
- ### Minor Changes
514
-
515
- - 43f040b: Automatically install verified stable CLI releases into a user-owned version cache, activate them
516
- on the next invocation, and add manual check, update, and rollback controls.
517
- - 9cb48c2: Add a native-first `runtype install-mcp` command that detects the active coding harness, installs its Runtype skills, configures the hosted user-level MCP server, starts client-owned OAuth when supported, and gives explicit restart instructions. Replace runtype.ai's branching OAuth/API-key/CLI setup tree with one CLI-first-session to OAuth-MCP golden path, keeping API keys as a linked headless exception and moving task-specific detail into installed skills.
518
-
519
- ## 2.26.1
520
-
521
- ### Patch Changes
522
-
523
- - Updated dependencies [40cb003]
524
- - @runtypelabs/sdk@6.1.1
525
-
526
- ## 2.26.0
527
-
528
- ### Minor Changes
529
-
530
- - cfacf11: feat: record collections on every non-REST surface
531
-
532
- Fans the `/v1/collections` REST API (Records→Collections Phase 1) out to the
533
- remaining surfaces, closing the Phase 1 acceptance loop — create → infer →
534
- warn → validate-existing → enforce → 422 works identically via REST, SDK, MCP,
535
- and CLI:
536
- - **MCP** (`@runtypelabs/mcp` + the api-internal client): seven tools —
537
- `list_collections`, `get_collection`, `create_collection`,
538
- `update_collection`, `delete_collection`, `infer_collection_schema`,
539
- `validate_collection_records` — with
540
- read-only/destructive annotations, next-step hints, and collections-domain
541
- error recovery hints.
542
- - **Code Mode MCP**: matching `runtype.listCollections(...)` /
543
- `getCollection` / `createCollection` / `updateCollection` /
544
- `deleteCollection` / `inferCollectionSchema` / `validateExistingRecords`
545
- executor methods with overlay docs and examples.
546
- - **SDK**: `client.collections` endpoint class
547
- (list/get/create/update/delete/inferSchema/validateExisting) with response
548
- types derived from the generated OpenAPI spec.
549
- - **CLI**: `runtype collections list|get|create|update|delete|infer|validate`,
550
- including `--schema-file` round-tripping and the infer → update adoption
551
- flow.
552
- - **Docs**: new user-guide page "Defining a schema" plus a collections section
553
- in the MCP server integration guide.
554
-
555
- The dashboard assistant deliberately excludes the new tools
556
- (`phase2:collections`) until the Collections UI ships.
557
-
558
- ### Patch Changes
559
-
560
- - 0da0e61: Close three friction points the onboarding E2E tester hit: document `allow_draft: true` for deploying draft examples via `create_product_from_example`, add an `execute_agent` request example (the `messages` array shape) to the runtype.ai agent prose, and make `runtype auth whoami` honor `RUNTYPE_API_KEY` (it previously read only the credential store and reported "unauthenticated" for env-key-only sessions, contradicting the documented contract that CLI commands work with the env key alone). Also carves `agent-onboarding-content` out of the shared barrel into a subpath export so the API Worker's eager graph no longer carries it.
561
- - Updated dependencies [c26556c]
562
- - Updated dependencies [cfacf11]
563
- - Updated dependencies [2c315c5]
564
- - Updated dependencies [644e057]
565
- - Updated dependencies [cd1133f]
566
- - @runtypelabs/sdk@6.1.0
567
-
568
- ## 2.25.15
569
-
570
- ### Patch Changes
571
-
572
- - Updated dependencies [a948051]
573
- - @runtypelabs/sdk@6.0.2
574
-
575
- ## 2.25.14
576
-
577
- ### Patch Changes
578
-
579
- - Updated dependencies [4b4bbe9]
580
- - Updated dependencies [9a3dd1a]
581
- - Updated dependencies [aab02e1]
582
- - Updated dependencies [ebb401b]
583
- - @runtypelabs/sdk@6.0.1
584
-
585
- ## 2.25.13
586
-
587
- ### Patch Changes
588
-
589
- - 5cff576: Enforce full-workspace ESLint coverage for published TypeScript packages.
590
- - Updated dependencies [5cff576]
591
- - Updated dependencies [51ab2d1]
592
- - Updated dependencies [a27eea9]
593
- - Updated dependencies [5f08625]
594
- - Updated dependencies [9ab9197]
595
- - @runtypelabs/sdk@6.0.0
596
- - @runtypelabs/ink-components@0.3.5
597
- - @runtypelabs/terminal-animations@0.2.2
598
-
599
- ## 2.25.12
600
-
601
- ### Patch Changes
602
-
603
- - 4849a3a: Upgrade the dashboard SPA build toolchain to Vite 8.1 (Rolldown/Oxc), @vitejs/plugin-react 6, and @cloudflare/vite-plugin 1.43. Removes the obsolete esbuild `supported: { destructuring }` workaround (no esbuild in the Vite 8 pipeline) and renames `build.rollupOptions` to `build.rolldownOptions`. Bumps @runtypelabs/persona to 4.6.1 monorepo-wide: 4.6.1 rewrites its `"message" in e` guards to `Reflect.has`, so its minified dist no longer contains the for-init arrow `in`-expression shape that Oxc rejects at parse time and Rolldown otherwise silently emits as an empty chunk — no build-side workaround needed. No user-facing behavior change.
604
- - Updated dependencies [6aac451]
605
- - @runtypelabs/sdk@5.15.0
606
-
607
- ## 2.25.11
608
-
609
- ### Patch Changes
610
-
611
- - 29ce53f: Finish hiding pre-GA Runtype Apps from public SDK/docs/CLI surfaces and keep app-only client sessions fail-closed behind the feature flag.
612
- - Updated dependencies [29ce53f]
613
- - Updated dependencies [5d828d9]
614
- - @runtypelabs/sdk@5.14.3
615
-
616
- ## 2.25.10
617
-
618
- ### Patch Changes
619
-
620
- - b00dea7: Hide pre-GA Runtype Apps surfaces from public tool catalogs, docs, schemas, skills indexes, SDK generation, and unauthenticated CLI help; keep runtime/tool access fail-closed behind the feature flag.
621
- - Updated dependencies [b00dea7]
622
- - @runtypelabs/sdk@5.14.2
623
-
624
- ## 2.25.9
625
-
626
- ### Patch Changes
627
-
628
- - Updated dependencies [0d4b1b8]
629
- - @runtypelabs/sdk@5.14.1
630
-
631
- ## 2.25.8
632
-
633
- ### Patch Changes
634
-
635
- - Updated dependencies [facb5d9]
636
- - @runtypelabs/sdk@5.14.0
637
-
638
- ## 2.25.7
639
-
640
- ### Patch Changes
641
-
642
- - Updated dependencies [89dbb72]
643
- - @runtypelabs/sdk@5.13.0
644
-
645
- ## 2.25.6
646
-
647
- ### Patch Changes
648
-
649
- - Updated dependencies [b2badd2]
650
- - @runtypelabs/sdk@5.12.1
651
-
652
- ## 2.25.5
653
-
654
- ### Patch Changes
655
-
656
- - Updated dependencies [2821ddb]
657
- - Updated dependencies [9a527cd]
658
- - Updated dependencies [ec895c9]
659
- - @runtypelabs/sdk@5.12.0
660
-
661
- ## 2.25.4
662
-
663
- ### Patch Changes
664
-
665
- - Updated dependencies [8f998e7]
666
- - Updated dependencies [e6b97e1]
667
- - Updated dependencies [e88000e]
668
- - Updated dependencies [3ac490c]
669
- - Updated dependencies [9a47ef1]
670
- - Updated dependencies [d7780b7]
671
- - @runtypelabs/sdk@5.11.0
672
-
673
- ## 2.25.3
674
-
675
- ### Patch Changes
676
-
677
- - 3458218: Remove dead code identified by an audit: the unused prompt-library table/dialog components, the unregistered CLI `talk` command (and its orphaned test), seven orphaned root scripts, the never-exposed eval-suite CRUD surface on the MCP `RuntypeClient` interface (and its API-side mirror), a one-line re-export shim in the flow-execution code-tool resolver, and duplicated local tail-event types in the CLI `tail` command in favor of the canonical `@runtypelabs/shared` exports. No behavior changes.
678
- - Updated dependencies [36d84c1]
679
- - Updated dependencies [e769fbf]
680
- - Updated dependencies [5d07273]
681
- - @runtypelabs/sdk@5.10.0
682
-
683
- ## 2.25.2
684
-
685
- ### Patch Changes
686
-
687
- - ae6f98e: Degrade gracefully when R2 SQL fails on the logs read path. When the historical (R2 SQL) leg of a merged GET /v1/logs or /v1/logs/stats query fails (e.g. the Iceberg manifest scan limit, error 40020), the request now serves hot-tier (recent) entries and counts with a new optional `degraded: true` field on the response data instead of failing the whole request with a 500. Degraded stats responses are never cached. The dashboard logs page shows a "historical logs temporarily unavailable" banner when the flag is set.
688
- - 48d0dd5: Upgrade `@cloudflare/workers-types` from v4 to v5 (`5.20260703.1`) across the monorepo.
689
-
690
- v5 ships only the latest runtime types and removes the dated entrypoints (`@cloudflare/workers-types/2023-07-01`, etc.); the bare and `/experimental` entrypoints are retained. The repo-wide pin (`pnpm.overrides`) and all workspace `devDependencies` ranges are moved to v5, and `apps/tail-worker` switches off its now-removed `/2023-07-01` dated entrypoint onto the bare entrypoint.
691
-
692
- The newer compat-date globals in v5 required a few type-only adjustments in the API and Code Mode MCP workers: the Cloudflare `ExecutionContext` now carries required `exports`/`tracing` members (so Hono's narrower `c.executionCtx` is cast where passed to Workers APIs), and `navigator` is no longer a member of `typeof globalThis`. No runtime behavior changes. The CLI deploy scaffold now emits `@cloudflare/workers-types@^5.0.0` for generated projects.
693
-
694
- - Updated dependencies [e85c67e]
695
- - Updated dependencies [ae6f98e]
696
- - Updated dependencies [f5ad9c0]
697
- - @runtypelabs/sdk@5.9.0
698
-
699
- ## 2.25.1
700
-
701
- ### Patch Changes
702
-
703
- - Updated dependencies [9087295]
704
- - Updated dependencies [7007359]
705
- - Updated dependencies [ee51039]
706
- - Updated dependencies [db60b0c]
707
- - Updated dependencies [40874d8]
708
- - Updated dependencies [41b296a]
709
- - @runtypelabs/sdk@5.8.1
710
-
711
- ## 2.25.0
712
-
713
- ### Minor Changes
714
-
715
- - 1b707f9: Add tenancy-scope parameters to the hand-written `create_secret` surfaces so they
716
- reach parity with the REST route + generated SDKs (multi-tenancy V1, inc 5). The
717
- MCP `create_secret` tool gains optional `product_tenant_id` / `end_user_id` inputs
718
- (mapped to `productTenantId` / `endUserId` on `POST /v1/secrets`), and the CLI
719
- `secrets create` command gains `--product-tenant-id` / `--end-user-id` flags. Omit
720
- both for an org-level secret (unchanged default); a scoped secret requires a value.
721
-
722
- ### Patch Changes
723
-
724
- - 451f923: Bump commander from ^12.0.0 to ^15.0.0. No runtime code changes needed: the CLI is already ESM-only with the modern .opts()/action signature, single parse() with exitOverride, and no reliance on silently-ignored excess arguments. Tightens engines.node to >=22.12.0 to match commander 15's floor. Fixes the tail command unit-test harness, which passed a bogus ['node','test'] prefix with { from: 'user' } that commander 14+ now correctly rejects as excess arguments.
725
- - 96aba76: Harden the synchronous `/eval/run` CI gate. The run now enforces a 4-minute total wall-clock deadline for case execution (cases the deadline prevents from running are returned as failed with an actionable message instead of letting the CLI's HTTP stack sever the buffered response client-side), releases the reserved daily-eval quota slot when a run throws after reservation (new `releaseEvalCount` on UsageTrackerDO + `DailyEvalLimitService.release`), and fixes `step_order` / `ran_step` trace grading for interleaved flows: the grading trace is now built in true execution order from `step_start` events (the eval dispatch runs in debug mode so `streamOutput: false` steps are captured too), and step labels match by name, type, or step id. Adds command-level tests for `runtype eval run` (exit codes, `--strict`, `--virtual`, `--junit`, ensure→run sequencing, abort-on-first-API-error) plus ensure update-path and run-service happy-path/402/deadline/release coverage.
726
- - 4c17349: Eval score persistence (Beginner-First Evals Phase 1, PR-A): grader scores now have a durable home.
727
- - **Saved-suite runs of `POST /v1/eval/run` persist by default**: the run gets a `batchExecutions` anchor row (`executionType='eval'`, `evalSuiteId` set) and one `eval_case_scores` row per (case, grader) — the data source for run history, baselines, and score-over-time. Pass `virtual: true` to keep a run ephemeral; inline `definition` runs stay ephemeral always. The response (and SDK `RunEvalResult`) gains `runId`.
728
- - **Suite-linked batch runs are scored at completion**: `completeBatch()` now grades a run with `batchExecutions.evalSuiteId` set from its persisted step results — including trace-grader coverage rebuilt from `flowStepResults` + `tool_executions` (closing the deferred batch-trace gap). Idempotent and non-fatal; dormant until a producer links batches to suites.
729
- - **New read endpoint `GET /v1/eval/runs/{batchId}/scores`** returning per-case grader outcomes in the same shape as the sync run response.
730
- - **Four new AI grader presets**: Stays on task, Same language, Refuses when it should, No personal data (mirrored in the SDK `judges.*` builders).
731
- - CLI `runtype eval run` prints the persisted run id.
732
-
733
- - ad19f94: Make the global `--json` and `--api-url` flags actually work. Commander stores an option on the command that declared it, so both flags landed on the root program's opts and were silently ignored: leaf actions reading `options.json` got an empty object (even when the subcommand declared its own `--json`), and nothing ever read the parsed `--api-url` (`getApiUrl()` only consulted the env var). A new preAction forwarding hook copies `--api-url` into `RUNTYPE_API_URL` (the single seam every client/auth path reads, flag overrides env) and injects `--json` into the action command's options. Long-standing behavior present on every published version.
734
- - 2238a2e: Fix "An unexpected error occurred: CommanderError: (outputHelp)" noise printed after `--help` output. The top-level error handler recognized `commander.help` (thrown by `.help()`) but not `commander.helpDisplayed`, which is what commander's exitOverride throws when `--help`/`-h` displays help. Long-standing bug present on every published version; surfaced by a smoke test of the commander 15 bump.
735
- - 5371c45: Fix "An unexpected error occurred" dump after `error: unknown command '...'`. The top-level error handler did not recognize commander's `commander.unknownCommand` code, so a typo'd subcommand printed the proper one-line error followed by a raw CommanderError stack. Commander already writes the message to stderr; the handler now just exits 1. Pre-existing on every published version; found in the same smoke test as the --help fix.
736
- - Updated dependencies [1422e92]
737
- - Updated dependencies [d0df6a8]
738
- - Updated dependencies [de60a30]
739
- - Updated dependencies [4c17349]
740
- - Updated dependencies [f89cb41]
741
- - Updated dependencies [9736850]
742
- - Updated dependencies [8f13a37]
743
- - Updated dependencies [fa6d18a]
744
- - Updated dependencies [9002f51]
745
- - Updated dependencies [4520c60]
746
- - Updated dependencies [49d599f]
747
- - Updated dependencies [9cbdba8]
748
- - Updated dependencies [b82d8f1]
749
- - Updated dependencies [edae98b]
750
- - @runtypelabs/sdk@5.8.0
751
-
752
- ## 2.24.1
753
-
754
- ### Patch Changes
755
-
756
- - Updated dependencies [fd2e18e]
757
- - @runtypelabs/sdk@5.7.0
758
-
759
- ## 2.24.0
760
-
761
- ### Minor Changes
762
-
763
- - 78e6f0e: feat(evals): grader severity (`gate`/`soft`) + functional `--strict`, and inline `evals:` on `flows.ensure` (code-colocated evals increment 5)
764
- - **Severity.** Every grader now carries an optional `severity: 'gate' | 'soft'` (absent ⇒ `gate`, the historical hard-gate behavior). A `soft` grader miss is tracked-but-not-failing — reported per-outcome but it does not fail the case unless the run is strict. `casePassed(outcomes, { strict })` in `@runtypelabs/shared` owns the aggregation; `EvalScoringService.scoreRun` threads a `strict` flag and stamps each outcome's severity.
765
- - **`runtype eval --strict` is now functional** (previously a stub): it sends `strict: true` to `POST /v1/eval/run`, and the server-computed severity-aware `passed` drives the exit code (a soft miss alone exits `0` without `--strict`, `1` with it; a gate miss always exits `1`). The CLI also surfaces soft misses on passing cases as warnings.
766
- - **SDK chainable severity handles.** Grader builders (`contains(...)`, `judge(...)`, `calledTool(...)`, …) return a `Gradeable` with `.gate()` / `.soft()` handles (and `.atLeast(n)` on AI graders to set the 1-5 judge cutoff). The handles are non-enumerable, so a grader still serializes byte-identically to its plain wire shape and the content hash of an un-annotated grader is unchanged.
767
- - **Inline `evals:` on `flows.ensure`.** `defineFlow({ ..., evals: [...] })` attaches eval suites that converge with the flow; an inline eval that omits `target` defaults to the enclosing flow. This is SDK-orchestrated and honors the eval-endpoints-only rule — the flow converges through `/flows/ensure` (its `{ name, steps }` wire shape and content hash are unchanged; `evals` is never sent there) and each inline suite converges through the existing `/eval/ensure`. `Runtype.flows.ensure(...)` returns the per-suite converge outcomes under `evals`.
768
-
769
- ### Patch Changes
770
-
771
- - Updated dependencies [78e6f0e]
772
- - @runtypelabs/sdk@5.6.0
773
-
774
- ## 2.23.1
775
-
776
- ### Patch Changes
777
-
778
- - Updated dependencies [edf1724]
779
- - @runtypelabs/sdk@5.5.0
780
-
781
- ## 2.23.0
782
-
783
- ### Minor Changes
784
-
785
- - a7b06ce: Code-colocated evals increment 3: the `runtype eval run` CI gate plus the
786
- synchronous run+score endpoint behind it.
787
-
788
- New `POST /v1/eval/run` runs every case of an eval suite (a saved suite by id, or
789
- an inline `--virtual` definition) against its target flow/saved-agent, grades the
790
- outputs with the suite graders via `EvalScoringService`, and returns the suite
791
- score + per-case grader outcomes in one response. Synchronous and ephemeral — no
792
- batch is created and no `eval_case_scores` are persisted (AI-grader spend is
793
- still metered); bounded by a per-run case ceiling, with a per-case timeout.
794
- `claude_managed` agents and inline/virtual agent targets are rejected with an
795
- actionable error.
796
-
797
- The SDK gains `client.evals.runSuite({ suiteId } | { definition })` (and the
798
- `runEvalSuite` helper) returning the typed `RunEvalResult`.
799
-
800
- The CLI gains `runtype eval run [idOrDirPrefix]`: it discovers `**/*.eval.ts`,
801
- loads each `defineEval(...)` default export via jiti, `ensure`s the suite (or runs
802
- it inline with `--virtual`), runs it, and maps the result to eve-style exit codes
803
- (`0` pass / `1` gate failure / `2` config error). Supports `--junit <path>`,
804
- `--url <api>`, `--cwd <dir>`, and a `--strict` stub (grader severity lands in a
805
- later increment).
806
-
807
- ### Patch Changes
808
-
809
- - Updated dependencies [0cd1d82]
810
- - Updated dependencies [a7b06ce]
811
- - Updated dependencies [17f7b6b]
812
- - @runtypelabs/sdk@5.4.0
813
-
814
- ## 2.22.17
815
-
816
- ### Patch Changes
817
-
818
- - Updated dependencies [2260366]
819
- - @runtypelabs/sdk@5.3.1
820
-
821
- ## 2.22.16
822
-
823
- ### Patch Changes
824
-
825
- - Updated dependencies [83d57ad]
826
- - Updated dependencies [9ed5154]
827
- - @runtypelabs/sdk@5.3.0
828
-
829
- ## 2.22.15
830
-
831
- ### Patch Changes
832
-
833
- - 346f947: Run workspace type-checking on the TypeScript 7 native compiler (`tsgo`, from `@typescript/native-preview`). The per-package `typecheck` / `type-check` scripts now invoke `tsgo --noEmit` instead of `tsc --noEmit` (~5x faster across the workspace). This is a type-check-only change: `typescript` stays pinned at `^6.0.3` for builds, lint, and codegen — whose compiler-API consumers (tsup `.d.ts` emit, typescript-eslint, ts-morph) are not stable on the 7.x API until ~7.1 — so no package's runtime behavior or emitted types change. The `typecheck:native` benchmark harness is updated to stay version-agnostic (it derives the `tsc` baseline for `--compare`), `@typescript/native-preview` is bumped to the latest tracked build, and the orphaned `@runtypelabs/system-product-generator` package's stray `typescript@^5.9.3` pin is aligned to `^6.0.3`.
834
- - Updated dependencies [346f947]
835
- - @runtypelabs/sdk@5.2.3
836
- - @runtypelabs/ink-components@0.3.4
837
-
838
- ## 2.22.14
839
-
840
- ### Patch Changes
841
-
842
- - ba0a50b: Upgrade the workspace TypeScript toolchain from 5.9 to 6.0 (`^6.0.3`, the transitional release before the Go-native 7.0). This is a build and type-check toolchain change only: `typescript` is a devDependency and the edits are tsconfig-level, so no package's runtime behavior changes.
843
-
844
- Config migrations required by 6.0: removed the deprecated `baseUrl` option (paths now resolve relative to the tsconfig), added `ignoreDeprecations: "6.0"` where tsup's DTS build injects a `baseUrl`, and set explicit `rootDir` / `types` where 6.0's new defaults (`types: []`, `noUncheckedSideEffectImports: true`) required it. typescript-eslint 8.61 already supports 6.0; build, typecheck, and lint are green. See `docs/typescript-6-upgrade.md`.
845
-
846
- - Updated dependencies [ba0a50b]
847
- - @runtypelabs/ink-components@0.3.3
848
-
849
- ## 2.22.13
850
-
851
- ### Patch Changes
852
-
853
- - 01e44aa: Add a local Persona Playground demo option to `runtype persona init` with WebMCP-ready provisioning and generated HTML.
854
-
855
- ## 2.22.12
856
-
857
- ### Patch Changes
858
-
859
- - 23a75ec: chore: bump @runtypelabs/persona to 4.3.1
860
-
861
- ## 2.22.11
862
-
863
- ### Patch Changes
864
-
865
- - 1a25b10: Bump `@runtypelabs/persona` to 4.1.0
866
- - 012eb68: Bump `@runtypelabs/persona` to 4.2.0
867
-
868
- ## 2.22.10
869
-
870
- ### Patch Changes
871
-
872
- - a3c41f5: Bump `@runtypelabs/persona` from 3.37.0 to 4.0.0. The embedded 4.x widget consumes the unified SSE vocabulary natively, so the dashboard no longer forces the `?events=legacy` override on its dispatch/execute/test/approve fetches. Removed the transitional `persona-legacy-sse` adapter; the two still-needed canonical helpers (`getPersonaSseErrorMessage`, `parsePersonaCanonicalSseEvent`) now live in `persona-sse.ts`.
873
- - Updated dependencies [c09b0af]
874
- - @runtypelabs/sdk@5.2.2
875
-
876
- ## 2.22.9
877
-
878
- ### Patch Changes
879
-
880
- - Updated dependencies [9a77df1]
881
- - @runtypelabs/sdk@5.2.1
882
-
883
- ## 2.22.8
884
-
885
- ### Patch Changes
886
-
887
- - Updated dependencies [049bcf9]
888
- - @runtypelabs/sdk@5.2.0
889
-
890
- ## 2.22.7
891
-
892
- ### Patch Changes
893
-
894
- - Updated dependencies [97a3431]
895
- - Updated dependencies [82d897c]
896
- - @runtypelabs/sdk@5.1.0
897
-
898
- ## 2.22.6
899
-
900
- ### Patch Changes
901
-
902
- - Updated dependencies [44779c1]
903
- - @runtypelabs/sdk@5.0.0
904
-
905
- ## 2.22.5
906
-
907
- ### Patch Changes
908
-
909
- - Updated dependencies [4bef8db]
910
- - Updated dependencies [2b788c7]
911
- - Updated dependencies [b43088f]
912
- - @runtypelabs/sdk@4.21.0
913
-
914
- ## 2.22.4
915
-
916
- ### Patch Changes
917
-
918
- - Updated dependencies [3fdf801]
919
- - @runtypelabs/sdk@4.20.0
920
-
921
- ## 2.22.3
922
-
923
- ### Patch Changes
924
-
925
- - f3ef273: Bump `@runtypelabs/persona` to 3.37.0 across the application.
926
-
927
- The 3.35.0 release split `createThemePreview` (and `ThemePreviewHandle` /
928
- `PreviewDevice`) out of `@runtypelabs/persona/theme-editor` into a new
929
- `@runtypelabs/persona/theme-editor/preview` subpath, so the dashboard's
930
- `WidgetStyleDrawer` and `now/preview-content` imports are updated to the new path.
931
-
932
- ## 2.22.2
933
-
934
- ### Patch Changes
935
-
936
- - Updated dependencies [d5b9f87]
937
- - Updated dependencies [6d5ba51]
938
- - @runtypelabs/sdk@4.19.2
939
-
940
- ## 2.22.1
941
-
942
- ### Patch Changes
943
-
944
- - Updated dependencies [cd7b402]
945
- - @runtypelabs/sdk@4.19.1
946
-
947
- ## 2.22.0
948
-
949
- ### Minor Changes
950
-
951
- - 9efb803: Marathon playbooks: opt-in `fallbackOnEmpty` to recover from empty (text-less)
952
- model output.
953
-
954
- Set `fallbackOnEmpty: true` on a milestone (or at the playbook top level as a
955
- default) to make that milestone's `fallbackModels` chain also fire when the model
956
- finishes successfully but returns no visible text — the "thinking model spends its
957
- whole budget reasoning and answers nothing" failure — instead of only on errors.
958
- It attaches the execution engine's existing `empty-output` fallback trigger to the
959
- agent `errorHandling` the marathon writes. Off by default (never automatic) and
960
- only effective when `fallbackModels` is configured; the playbook loader warns when
961
- it is enabled without a fallback chain. No API change.
962
-
963
- - 9efb803: Marathon: support per-session `maxTokens` and `temperature` overrides for the
964
- **primary** model, settable from the CLI (`--max-tokens` / `--temperature`) and
965
- in playbooks (per-milestone fields plus top-level defaults).
966
- - API: `POST /v1/agents/:id/execute` now accepts request-level `temperature` and
967
- `maxTokens`, merged into the agent config before `buildVirtualFlow` (mirrors the
968
- existing `model` / `systemPrompt` overrides). Out-of-range values are ignored.
969
- - SDK: `RunTaskOptions`, `AgentExecuteRequest`, and `WorkflowMilestoneConfig` gain
970
- optional `temperature` / `maxTokens`; the marathon runner threads them into each
971
- session's execute request.
972
- - CLI: resolves both per phase with precedence per-milestone playbook value >
973
- global CLI flag > playbook top-level default.
974
-
975
- Previously only a fallback model could carry a `maxTokens`, so a "thinking"
976
- primary model that spent its budget reasoning could return no tool call and stall
977
- the run with nothing to show.
978
-
979
- ### Patch Changes
980
-
981
- - 009a396: Extract the marathon TUI steering/follow-up message queues into a standalone,
982
- unit-tested `createSteeringQueue` module. Behavior-preserving refactor: it
983
- removes the push/drain/count bookkeeping duplicated across the composer submit
984
- handler, the Esc-Esc abort path, and the `streamRef` drain actions, and creates
985
- a single injection point so a message can be enqueued from any producer (the
986
- local keyboard today, a remote control channel later) without knowing how
987
- draining or the count display works. Groundwork for marathon tethered mode
988
- (local execution, remote control).
989
- - Updated dependencies [e96edad]
990
- - Updated dependencies [9efb803]
991
- - Updated dependencies [9efb803]
992
- - @runtypelabs/sdk@4.19.0
993
-
994
- ## 2.21.6
995
-
996
- ### Patch Changes
997
-
998
- - Updated dependencies [266280e]
999
- - @runtypelabs/sdk@4.18.0
1000
-
1001
- ## 2.21.5
1002
-
1003
- ### Patch Changes
1004
-
1005
- - Updated dependencies [408e8f4]
1006
- - Updated dependencies [fee4239]
1007
- - @runtypelabs/sdk@4.17.1
1008
-
1009
- ## 2.21.4
1010
-
1011
- ### Patch Changes
1012
-
1013
- - Updated dependencies [83e5921]
1014
- - @runtypelabs/sdk@4.17.0
1015
-
1016
- ## 2.21.3
1017
-
1018
- ### Patch Changes
1019
-
1020
- - Updated dependencies [46624dc]
1021
- - Updated dependencies [845d81b]
1022
- - Updated dependencies [45aaaa7]
1023
- - Updated dependencies [3396ef1]
1024
- - Updated dependencies [f9b537d]
1025
- - @runtypelabs/sdk@4.16.0
1026
-
1027
- ## 2.21.2
1028
-
1029
- ### Patch Changes
1030
-
1031
- - Updated dependencies [0dcd669]
1032
- - @runtypelabs/sdk@4.15.0
1033
-
1034
- ## 2.21.1
1035
-
1036
- ### Patch Changes
1037
-
1038
- - Updated dependencies [fec3688]
1039
- - Updated dependencies [26c393c]
1040
- - @runtypelabs/sdk@4.14.0
1041
-
1042
- ## 2.21.0
1043
-
1044
- ### Minor Changes
1045
-
1046
- - dc36176: `runtype records get` now renders a record's `messages` (previously only id/name/
1047
- type/metadata were shown). Multi-modal message content renders as text plus
1048
- compact `[image …]` / `[file …]` / `[attachment …]` markers, and on terminals with
1049
- an inline-image graphics protocol (iTerm2, WezTerm, Kitty, Ghostty) image parts
1050
- render inline — mirroring `conversations get`. Inline images are TTY-gated and can
1051
- be disabled with `--no-images`. Records carry rehydrated inline image data URIs on
1052
- the read path as of the asset-offload records GET seam, so a record created with
1053
- inline media now displays that media instead of hiding it. The shared content-walk
1054
- helper (`renderMessageContent`) was lifted into `lib/message-content.ts` and is now
1055
- shared by both commands.
1056
-
1057
- ## 2.20.0
1058
-
1059
- ### Minor Changes
1060
-
1061
- - 5e4f47c: Render conversation image attachments inline in `runtype conversations get` on terminals that support a graphics protocol. When stdout is an interactive terminal that implements the iTerm2 inline-images protocol (iTerm2, WezTerm) or the Kitty graphics protocol (Kitty, Ghostty), image parts are displayed inline instead of as a `[image …]` marker. The rehydrated `data:` URI bytes are passed straight to the protocol with no image-decoding dependency (iTerm2 handles any format; Kitty renders PNG dependency-free and falls back to the marker for other formats). Non-interactive output (pipes, CI), unknown terminals, and `--no-images` keep the text marker.
1062
-
1063
- ## 2.19.4
1064
-
1065
- ### Patch Changes
1066
-
1067
- - e444f67: Fix `runtype conversations get` rendering multi-modal / offloaded message content as `[object Object]`. A conversation message's `content` can be an array of typed parts (text + `image`/`file`, and rehydrated or raw `asset_ref` attachments), not just a string. The CLI now renders text parts inline and collapses each media/attachment part to a compact `[image …]` / `[file …]` / `[attachment …]` marker in both the non-TTY and TTY output paths.
1068
-
1069
- ## 2.19.3
1070
-
1071
- ### Patch Changes
1072
-
1073
- - Updated dependencies [8bffeb2]
1074
- - @runtypelabs/sdk@4.13.1
1075
-
1076
- ## 2.19.2
1077
-
1078
- ### Patch Changes
1079
-
1080
- - c9959e9: Bump `@runtypelabs/persona` to 3.34.1 across the repo.
1081
- - 78f5be1: Marathon: route fresh build-and-deploy / game goals to the deploy and game
1082
- workflows when a deploy-capable sandbox (`--sandbox daytona` or
1083
- `runtype-sandbox`) is explicitly enabled, instead of falling through to the
1084
- default create workflow (which confines writes to `public/` and never calls
1085
- `deploy_sandbox`). When the goal looks deploy/game-shaped but no deploy-capable
1086
- sandbox is enabled, the CLI now prints an actionable hint to re-run with
1087
- `--sandbox daytona`. Auto-enabling a sandbox from keywords alone is still
1088
- intentionally avoided.
1089
- - ac35549: Marathon ledger unification (increment 2): instrument session-search indexing cost.
1090
-
1091
- The default-on session-search revisit trigger was unevaluable because the `/session-context/index` POST was a silent `.catch(() => {})`. Now the marathon command:
1092
- - Counts indexed chunks and serialized payload bytes across all sessions and checkpoint restarts, and prints a cumulative `Indexed: N chunks (M KB)` line in the final task summary.
1093
- - Surfaces a context notice (`session_indexed`) when a single session's indexing payload exceeds 512 KB — the signal the revisit trigger watches for.
1094
- - Logs indexing failures once per task (`indexing_failed` notice) instead of swallowing them silently, so "search finds nothing because indexing has been failing" is diagnosable. The POST stays non-blocking.
1095
-
1096
- CLI-side observability only; no API changes.
1097
-
1098
- - Updated dependencies [04db6c7]
1099
- - Updated dependencies [7ea7ece]
1100
- - Updated dependencies [3a162cc]
1101
- - Updated dependencies [ee6f248]
1102
- - @runtypelabs/sdk@4.13.0
1103
-
1104
- ## 2.19.1
1105
-
1106
- ### Patch Changes
1107
-
1108
- - b7c3ab8: Bump `@runtypelabs/persona` 3.31.0 → 3.34.0. This picks up the push-dock fix (persona#287/#285): the docked push reveal now offsets its track with `margin-left` instead of a CSS `transform`, so it no longer establishes a containing block that pushed viewport-`fixed`/`sticky` host chrome (e.g. the dashboard editor toolbar) off-screen. Unblocks the docked dashboard-assistant rollout.
1109
- - 4cfef88: Marathon ledger unification (increment 1): route SDK hot-tail tool-output offloads through one artifact store.
1110
- - SDK: new `offloadRecorder` option on `RunTaskOptions` (and exported `RunTaskOffloadRecorder` type). When supplied, `offloadToolResult` delegates persistence to the recorder and splices its reference into the send view instead of writing to the unledgered `.runtype/marathons/<slug>/tool-outputs/` fallback. The SDK still owns the offload decision (its inline threshold); the recorder owns storage. Declining (returning `undefined`/throwing) falls back to the built-in store, so non-marathon and browser consumers are unchanged.
1111
- - CLI: supplies a recorder backed by the existing content-addressed ledger store (`offloadToolOutput`), so the 500–100k char band becomes a first-class ledger citizen (content-addressed `art_<sha256>`, hashed, `read_offloaded_output`-resolvable, deduped, on-timeline) instead of a separate unledgered store.
1112
- - CLI: fix the per-offload `loadTreeLog` reload — `recordOffloadedArtifact` now appends through a shared head accessor (`getOrLoadTreeLogSync`) so artifact entries land on-chain at the live head instead of as sibling stubs off a stale, disk-reloaded head, and offload cost is O(1) rather than O(tree-log size).
1113
-
1114
- - 062e5bd: Neutralize CSV formula injection on record export. Cells whose first character is `=`, `+`, `-`, `@`, or a leading tab/carriage return/newline are now prefixed with a single quote so spreadsheet applications (Excel, Sheets, LibreOffice) treat them as text instead of executing them as formulas. Record metadata is frequently written from external/agent input, so exported values were attacker-controllable. The trigger set lives in a single shared helper (`neutralizeCsvFormula` in `@runtypelabs/shared`) consumed by both the API export (`escapeCsvValue`) and the CLI's local CSV export (`csvEscape`), so the two surfaces cannot drift.
1115
- - 6c475fe: Close record-tool surface-parity gaps (P0.7): expose already-existing `/v1/records` API capabilities on the client surfaces that lacked them.
1116
- - MCP: add the `delete_record` tool (input schema, schema-map registration, destructive tool definition, execution handler, and `deleteRecord` on the `RuntypeClient` interface + both implementers).
1117
- - Code-Mode MCP: add `deleteRecord(id)` → `DELETE /v1/records/:id` to the executor and code-spec overlay.
1118
- - SDK: add `records.getStepResults(id, params?)` → `GET /v1/records/:id/step-results` and `records.getCosts(id)` → `GET /v1/records/:id/costs` to `RecordsEndpoint`.
1119
- - CLI: add `records results <id>` and `records costs <id>` subcommands routed through the SDK.
1120
-
1121
- - Updated dependencies [cf9eae0]
1122
- - Updated dependencies [d895f91]
1123
- - Updated dependencies [2392c5e]
1124
- - Updated dependencies [4cfef88]
1125
- - Updated dependencies [04dc52c]
1126
- - Updated dependencies [6c475fe]
1127
- - Updated dependencies [6f6dd80]
1128
- - @runtypelabs/sdk@4.12.0
1129
-
1130
- ## 2.19.0
1131
-
1132
- ### Minor Changes
1133
-
1134
- - e7a7c22: Add workflow stall policy and richer marathon playbooks. WorkflowDefinition gains an optional `stallPolicy` (`nudgeAfter` / `escalateModelAfter` / `stopAfter`) keyed on the consecutive-empty-sessions counter, so narration-only sessions trigger a recovery nudge, a model-escalation signal (`state.stallEscalationRequested`), or a configurable stall threshold instead of silently dying after 3 empty sessions. Playbooks can now declare per-milestone `recovery` messages (triggered on the same stall counter), `transitionSummary` strings, and a top-level `stallPolicy`; policy blocks also compile into model-facing tool guidance so enforced constraints (write globs, outputRoot, plan-first) are stated to the model instead of silently blocking it. The CLI consumes the escalation signal by restarting the marathon on the milestone's next `fallbackModels` entry, and surfaces playbook authoring warnings (e.g. no milestone sets `canAcceptCompletion: true`) at load time. Default (non-playbook) marathon behavior is unchanged.
1135
- - e7a7c22: TypeScript playbooks. Marathon playbooks can now be `.ts`/`.mts` modules, loaded at runtime via jiti (no Node version or transpile-step requirements) from the same search paths as YAML/JSON. Every workflow config behavior slot (instructions, tool guidance, completion criteria, recovery, transition summaries, intercepts, force-end-turn, accept-completion, classify/bootstrap/candidate-block) now accepts a plain function in addition to inline data and hook references, so TypeScript playbooks express custom logic directly without registry ceremony; `definePlaybook(...)` is exported from the SDK as optional type-inference sugar. A module playbook's default export is either a config object or a factory receiving the injected `{ registerWorkflowHook }` API for named-hook registration. Load failures, missing default exports, and non-config exports fail with actionable errors naming the playbook path.
1136
- - e7a7c22: Workflow hook registry and the default marathon workflow as data (Phase 3). The SDK gains a named hook registry (`registerWorkflowHook` with a reserved `builtin:` namespace, slot-kind validation, and actionable load-time errors) and an environment-free `compileWorkflowConfig` that turns declarative workflow configs into `WorkflowDefinition`s, with glob matching injected via deps. The default workflow's behaviors (classification, bootstrap discovery, per-phase instructions/guards/recovery/completion heuristics) are now registered as `builtin:*` hooks and composed by an exported `defaultWorkflowConfig` compiled through the same function — so playbooks and the default share one compile path and a user playbook can reuse or override any slice of the default by hook name. The CLI playbook loader delegates compilation to the SDK and adds: hook references in every behavior slot (`instructions: builtin:research-instructions`, `completionCriteria: { type: acme:my-completion }`), per-milestone `intercept`/`forceEndTurn` slots, and a `plugins:` field that loads JS modules (confined to the playbook's directory) which register custom hooks via an injected `registerWorkflowHook` API. `loadPlaybook` is now async. Compiled output for the default workflow is behavior-identical (pinned by the existing workflow test suite).
1137
-
1138
- ### Patch Changes
1139
-
1140
- - Updated dependencies [713e743]
1141
- - Updated dependencies [e7a7c22]
1142
- - Updated dependencies [e7a7c22]
1143
- - Updated dependencies [e7a7c22]
1144
- - Updated dependencies [e7a7c22]
1145
- - @runtypelabs/sdk@4.11.0
1146
-
1147
- ## 2.18.0
1148
-
1149
- ### Minor Changes
1150
-
1151
- - f07ceb8: Add marathon context-ledger artifact plumbing, derive tool-result context views without mutating saved history, and enable session context recall by default.
1152
- - 7d398a2: Mid-session hard abort for marathon (Esc Esc). The SDK's `runTask` and `executeWithLocalTools` accept an `abortSignal` that cancels the in-flight SSE stream and ends the run gracefully (cost and tokens preserved, state persisted, status `paused`/resumable). In the marathon TUI, pressing Esc twice while the agent works interrupts the turn, restores any queued steering messages and composer draft into the checkpoint input, and lands at a "stopped" checkpoint where Enter exits or new instructions continue the task.
1153
- - 6ecce93: Runtype Apps increment 1, PR 3: agent + developer deploy surfaces. Adds six MCP tools (`create_app`, `deploy_app_version`, `activate_app_version`, `list_apps`, `get_app`, `delete_app`) on both MCP servers (standard + Code Mode `runtype.*` methods), an SDK `client.apps` endpoint (incl. raw-zip `uploadVersion` and JSON `uploadVersionFiles`), a `runtype apps` CLI command family (`create`, `deploy <dir>`, `list`, `versions`, `activate`, `delete`), a JSON `{ files, filesBase64 }` upload variant on `POST /v1/apps/:id/versions` (the API zips server-side for surfaces that cannot stream binary bodies), and the `build-runtype-app` agent skill.
1154
-
1155
- ### Patch Changes
1156
-
1157
- - 92c6ae3: Marathon context ledger: window-base compaction and persistence fixes.
1158
-
1159
- SDK: compaction now records a send-window base (`RunTaskState.contextWindowBaseIndex`). After a compaction, sessions send `[stored summary, messages since base, continuation]` and only re-compact when that window itself re-crosses the threshold — previously every post-threshold session re-summarized the whole task and dropped all recent raw turns from the send. The persist path appends exactly the new continuation message per session, fixing duplicated (and fidelity-degraded) history once replay trimming made the send view shorter than the source. Send-view derivation no longer deep-clones the full history per send, and hot-tail offload skips rewriting files that already exist. Offload reference markers now live in a shared `offload-markers` module with locale-pinned size formatting.
1160
-
1161
- CLI: tree-log delta checkpoints no longer re-embed compaction summary text on every save (summary ledger entries are the durable copy; materialization and `/tree` navigation rebuild them from the chain). Repeated offloads of identical output record one artifact entry. `read_offloaded_output` verifies content against the recorded sha256 and warns on mismatch. Tools rebuilt after a `/tools` or sandbox checkpoint change keep their offload wrapping. The unused artifact GC stub (which would have deleted still-readable legacy offload files) was removed.
1162
-
1163
- - Updated dependencies [ad2dd30]
1164
- - Updated dependencies [90a4707]
1165
- - Updated dependencies [7027149]
1166
- - Updated dependencies [df3a66d]
1167
- - Updated dependencies [f07ceb8]
1168
- - Updated dependencies [7d398a2]
1169
- - Updated dependencies [92c6ae3]
1170
- - Updated dependencies [518018a]
1171
- - Updated dependencies [6ecce93]
1172
- - Updated dependencies [2bb37c4]
1173
- - Updated dependencies [c7bad37]
1174
- - Updated dependencies [4e3999f]
1175
- - Updated dependencies [6e53e7f]
1176
- - @runtypelabs/sdk@4.10.0
1177
-
1178
- ## 2.17.0
1179
-
1180
- ### Minor Changes
1181
-
1182
- - e60f98e: Marathon gains `/tree` and `/fork` at checkpoints: browse the session tree (branches recorded in the `<task>.tree.jsonl` log), switch the conversation head to any prior entry, or fork from an earlier user message and steer the new branch. The original timeline is never lost.
1183
- - 96ec88a: Mid-run steering queue for marathon (Pi-style): press Enter while the agent is working to open a composer and queue a steering message. Queued steers end the in-flight session at the next local-tool pause and are delivered at the start of the next session; Tab toggles delivery to "after all work" (follow-up). `runTask` gains additive `getQueuedUserMessages` / `hasQueuedUserMessages` options.
1184
-
1185
- ### Patch Changes
1186
-
1187
- - 727ce76: Fix headless API-key authentication: the CLI validated `RUNTYPE_API_KEY` (and `auth login --api-key` / `auth status`) against `/auth/me`, which only accepted Clerk sessions, so valid keys always fell through to interactive login. Key validation now probes `/users/profile`, `/auth/me` accepts API keys, and the CLI parses the endpoint's actual camelCase response shape.
1188
- - d14293a: Marathon help panel documents the steering composer shortcuts and the `/tree` and `/fork` checkpoint commands.
1189
- - aebb6c5: Marathon now mirrors every persisted state save into a tree-capable JSONL session log (`<task>.tree.jsonl`) recording the conversation as a parent-linked entry tree. Groundwork for `/fork` and `/tree`; no behavior change yet (the `.json` state file remains the source of truth for resume).
1190
- - Updated dependencies [96ec88a]
1191
- - @runtypelabs/sdk@4.9.0
1192
-
1193
- ## 2.16.20
1194
-
1195
- ### Patch Changes
1196
-
1197
- - 849b346: Bump safe dependencies: radix-ui patch updates (react-avatar 1.1.12, react-slot 1.2.5), conf major (15.1.0, CLI tests green), cloud-run example Node 22→26
1198
-
1199
- ## 2.16.19
1200
-
1201
- ### Patch Changes
1202
-
1203
- - Updated dependencies [15b4a2f]
1204
- - Updated dependencies [698edda]
1205
- - @runtypelabs/sdk@4.8.1
1206
-
1207
- ## 2.16.18
1208
-
1209
- ### Patch Changes
1210
-
1211
- - 4756305: Bump @runtypelabs/persona from 3.29.1 to 3.31.0
1212
-
1213
- ## 2.16.17
1214
-
1215
- ### Patch Changes
1216
-
1217
- - Updated dependencies [982da6c]
1218
- - Updated dependencies [8aeda2c]
1219
- - @runtypelabs/sdk@4.8.0
1220
-
1221
- ## 2.16.16
1222
-
1223
- ### Patch Changes
1224
-
1225
- - f3ec545: Bump @runtypelabs/persona to 3.29.1 across consuming workspaces.
1226
-
1227
- ## 2.16.15
1228
-
1229
- ### Patch Changes
1230
-
1231
- - 9e775c7: Route `persona init` snippet generation through the single source of truth — `generateCodeSnippet` from the pure `@runtypelabs/persona/codegen` subpath — instead of the hand-rolled copy in `persona-snippets.ts`. This retires the last divergent snippet generator: the CLI now emits the same install code the dashboard and MCP `generate_persona_embed_code` tool produce.
1232
-
1233
- Behavior changes for `runtype persona init`:
1234
- - `script-installer` carries the client token (and `--target` selector) in `data-config` and pins the CDN URL to the persona version (matching the dashboard), instead of the old `data-runtype-token` attribute with `@latest`.
1235
- - `script-manual` now maps to Persona's real CDN global-script setup (previously mis-mapped to the heavier DOM-collecting `script-advanced`), and `esm` maps to the non-React ESM init.
1236
- - `--target` is threaded through as the generator's mount-target option (added in `@runtypelabs/persona@3.29.0`), so it works across all formats without the CLI's own templating.
1237
-
1238
- The pure `/codegen` subpath is bundled into the CLI (tsup `noExternal`), so no browser-SDK runtime (idiomorph/marked) is pulled into a user's install.
1239
-
1240
- - Updated dependencies [2c12987]
1241
- - @runtypelabs/sdk@4.7.1
1242
-
1243
- ## 2.16.14
1244
-
1245
- ### Patch Changes
1246
-
1247
- - Updated dependencies [5d3eada]
1248
- - Updated dependencies [6efd928]
1249
- - Updated dependencies [6730e12]
1250
- - @runtypelabs/sdk@4.7.0
1251
-
1252
- ## 2.16.13
1253
-
1254
- ### Patch Changes
1255
-
1256
- - Updated dependencies [cf15960]
1257
- - @runtypelabs/sdk@4.6.1
1258
-
1259
- ## 2.16.12
1260
-
1261
- ### Patch Changes
1262
-
1263
- - Updated dependencies [e7eefe0]
1264
- - @runtypelabs/sdk@4.6.0
1265
-
1266
- ## 2.16.11
1267
-
1268
- ### Patch Changes
1269
-
1270
- - Updated dependencies [55eb091]
1271
- - Updated dependencies [3f65083]
1272
- - @runtypelabs/sdk@4.5.0
1273
-
1274
- ## 2.16.10
1275
-
1276
- ### Patch Changes
1277
-
1278
- - Updated dependencies [59fd1b6]
1279
- - @runtypelabs/sdk@4.4.0
1280
-
1281
- ## 2.16.9
1282
-
1283
- ### Patch Changes
1284
-
1285
- - Updated dependencies [e133753]
1286
- - Updated dependencies [26401de]
1287
- - @runtypelabs/sdk@4.3.0
1288
-
1289
- ## 2.16.8
1290
-
1291
- ### Patch Changes
1292
-
1293
- - Updated dependencies [52091ac]
1294
- - Updated dependencies [0aa81ed]
1295
- - @runtypelabs/sdk@4.2.0
1296
-
1297
- ## 2.16.7
1298
-
1299
- ### Patch Changes
1300
-
1301
- - Updated dependencies [88d04d6]
1302
- - Updated dependencies [2711b97]
1303
- - Updated dependencies [ac87cbe]
1304
- - Updated dependencies [84ab7da]
1305
- - @runtypelabs/sdk@4.1.0
1306
-
1307
- ## 2.16.6
1308
-
1309
- ### Patch Changes
1310
-
1311
- - e6efe4f: Bump several low-risk dependencies (combines the safe open Dependabot PRs) and drop one unused dependency:
1312
- - `yaml` 2.8.3 → 2.9.0 (minor) in `@runtypelabs/api`, `@runtypelabs/cli`, and the workspace root
1313
- - `@ai-sdk/xai` 3.0.91 → 3.0.93 (patch) in `@runtypelabs/api` and `@runtypelabs/model-execution`
1314
- - Remove `react-day-picker` from `@runtypelabs/dashboard` entirely — it had no imports anywhere in the codebase, so rather than take the Dependabot v10 major bump we drop the dead dependency
1315
-
1316
- Also bumps four GitHub Actions to their latest SHA-pinned releases (CI-only, no package impact): `actions/checkout` 6.0.2 → 6.0.3, `github/codeql-action` 4.36.0 → 4.36.1, `astral-sh/setup-uv` 8.1.0 → 8.2.0, and `changesets/action` 1.8.0 → 1.9.0.
1317
-
1318
- - Updated dependencies [2e3a776]
1319
- - @runtypelabs/sdk@4.0.4
1320
-
1321
- ## 2.16.5
1322
-
1323
- ### Patch Changes
1324
-
1325
- - 31ef33f: FPO validation no longer short-circuits on a Zod schema failure. `validateProductObject` and the four `validate*Only` helpers now run the shared semantic validators on the parsed-where-possible object and merge their findings with the schema errors, so a single `validate_product` call surfaces schema AND semantic issues together. Zod `issue.code` discriminators are preserved (`SCHEMA_<CODE>`) instead of flattening everything to `SCHEMA_ERROR`.
1326
-
1327
- The CLI's `runtype validate-product` is brought into parity with the API: its local `runValidation` applies the same schema/semantic merge and the same preserved `SCHEMA_<CODE>` mapping, so the CLI and `POST /v1/public/products/validate` return identical codes and finding sets for the same invalid FPO. Template schema failures (`validateFPOTemplate`) likewise preserve `SCHEMA_<CODE>`.
1328
-
1329
- Duplicate-ID detection is collapsed to a single source of truth: it now lives only in the imperative `validateFPO` (so it still runs when the schema parse fails) and was removed from the `fullProductObjectSchema` `.superRefine`.
1330
-
1331
- - da0df2b: Centralize FPO Zod schema issue mapping and schema-plus-semantic validation merging in the shared product-generation validators so the API, CLI, and template validator preserve `SCHEMA_<CODE>` validation codes consistently.
1332
- - Updated dependencies [8f11ab5]
1333
- - Updated dependencies [edf2b2a]
1334
- - @runtypelabs/sdk@4.0.3
1335
-
1336
- ## 2.16.4
1337
-
1338
- ### Patch Changes
1339
-
1340
- - Updated dependencies [d4ca2dd]
1341
- - @runtypelabs/sdk@4.0.2
1342
-
1343
- ## 2.16.3
1344
-
1345
- ### Patch Changes
1346
-
1347
- - Updated dependencies [a7cb0d9]
1348
- - @runtypelabs/sdk@4.0.1
1349
-
1350
- ## 2.16.2
1351
-
1352
- ### Patch Changes
1353
-
1354
- - 89b107f: feat(sdk): alias Flow/FlowStep/Tool from the OpenAPI spec; fix flow + tool response-schema drift
1355
-
1356
- Continues the OpenAPI codegen swap (after #3645/#3665). Three coupled changes that all touch `entities.ts` + the regenerated spec + SDK `types.ts`:
1357
- - **Flow phantom fix (API spec accuracy):** the flow `GET`/`LIST`/`POST` response schemas advertised a `status` field the handlers stopped returning (removed in #3404), and the shared detail schema carried a `draftVersionId` that only the `PUT` handler returns. Removed `status` everywhere and split a dedicated `UpdatedFlowResponseSchema` (`FlowDetailSchema.extend({ draftVersionId })`) for the update route so `GET`/`POST` no longer promise it.
1358
- - **Tool schema split:** `GET /v1/tools/{id}` never attaches `validation` (only create/update/convert do, when custom-tool code produces warnings). Split `ToolDetailSchema` (base, GET) from `ToolWithValidationSchema` (create/update/convert).
1359
- - **SDK aliases:** `Flow`, `FlowStep`, and `Tool` are now `paths[...]`-derived from the generated spec instead of hand-written interfaces. Added a `FlowListItem` alias for the lighter `GET /v1/flows` list item and retyped `flows.list()` to `PaginationResponse<FlowListItem>` (it was incorrectly typed as the detail shape). `FlowListItem` is named to avoid colliding with the flow-execution `FlowSummary` already exported by `flow-builder.ts`.
1360
-
1361
- This is a **major** bump for `@runtypelabs/sdk` because the generated shapes are looser/more accurate than the old interfaces: the GET flow detail no longer carries `status`/`description`, flow steps have optional `name`/`order`/`enabled`/`config`, the tool GET shape drops `validation`, and tool `config`/`parametersSchema` are typed as the JSONB records the API actually returns. Dashboard and CLI consumers are updated in lockstep.
1362
-
1363
- - Updated dependencies [c3536a2]
1364
- - Updated dependencies [8fefe6f]
1365
- - Updated dependencies [a0b30f3]
1366
- - Updated dependencies [aa97266]
1367
- - Updated dependencies [42979fc]
1368
- - Updated dependencies [55d5817]
1369
- - Updated dependencies [89b107f]
1370
- - Updated dependencies [e1a4368]
1371
- - Updated dependencies [af80a8a]
1372
- - @runtypelabs/sdk@4.0.0
1373
-
1374
- ## 2.16.1
1375
-
1376
- ### Patch Changes
1377
-
1378
- - 53bfe49: Let dispatch stream callbacks infer their event types from the SDK's `StreamCallbacks` instead of hard-coding narrower param shapes, so they stay compatible with the spec-derived streaming event union.
1379
- - Updated dependencies [53bfe49]
1380
- - @runtypelabs/sdk@3.0.0
1381
-
1382
- ## 2.16.0
1383
-
1384
- ### Minor Changes
1385
-
1386
- - 1a29b74: Expand the CLI to cover more of the API: add secrets, tools, logs, conversations, integrations, and surfaces commands; add update (and create/delete) verbs to flows, agents, records, prompts, and schedules; add batch summary/cost inspection and products list/get.
1387
- - 75c7cbd: CLI consistency polish: standardize output and pagination flags, bump Node engine
1388
- - Unify the `--json` flag description to `Output as JSON` across commands and the
1389
- root program (semantically distinct variants on `tail`, `agents task`, and
1390
- `persona init` are intentionally preserved).
1391
- - Standardize pagination flags on list commands whose API supports cursor
1392
- pagination: `--limit <n>` + `--cursor <cursor>`, with an actionable
1393
- "fetch the next page with `--cursor …`" hint when more results exist.
1394
- - Added to: `flows`, `prompts`, `records`, `agents`, `schedules`,
1395
- `conversations`, `tools`, `products`.
1396
- - `--limit` has no forced default — when omitted, the API's own page size
1397
- applies (avoids silently shrinking existing default result counts).
1398
- - `conversations`/`tools` previously printed a dead-end "pass ?limit and
1399
- ?cursor" hint without exposing the flags; they now work.
1400
- - Add shared `buildListParams` / `printNextCursorHint` helpers in `lib/output.ts`
1401
- (normalizing the `nextCursor`/`cursor` and `hasMore`/`hasNextPage` response
1402
- variants) and adopt them in `surfaces` and `logs`, replacing hand-rolled query
1403
- builders and inline hints (also fixes a `surfaces` hint that rendered a trailing
1404
- space when no cursor was present).
1405
- - Bump `engines.node` from `>=18.0.0` to `>=22.0.0` for `@runtypelabs/cli`,
1406
- `@runtypelabs/sdk`, `@runtypelabs/ink-components`, and
1407
- `@runtypelabs/terminal-animations`. Node 18 is EOL; 22 is the current LTS. (The
1408
- repo root requires `>=24`, but these are published/consumer-installed packages,
1409
- so the floor is held at the current LTS rather than the dev-toolchain version.)
1410
-
1411
- - 4c5d416: Add `runtype skills` command and a one-time prompt to install Runtype agent skills into detected AI coding agents (Claude Code, Cursor, Codex, OpenCode, Copilot, Gemini CLI, …). Detection and installation are delegated to `rosie-skills`, pulling skills from the public `runtypelabs/skills` mirror. `runtype skills list` shows detected agents; `runtype skills install` installs (with `--agent`, `--yes`, `--json` for non-interactive use). The passive offer fires once per machine on the first interactive, non-CI command run.
1412
-
1413
- ### Patch Changes
1414
-
1415
- - 64f7081: Fix `flows create` so `--name` and `--description` override values loaded from `--from-file` instead of being silently dropped (consistent with the update commands).
1416
- - 3b357cc: Route all CLI API access through the SDK client instead of a hand-rolled raw HTTP client. Every command now constructs a configured `@runtypelabs/sdk` client via `createCliClient`, using typed endpoint methods (e.g. `client.flows.list()`) where available and the SDK's generic methods elsewhere. This makes the SDK the CLI's single source of truth for the API surface, so the CLI stops drifting behind the API, and a new `runtype/cli-use-sdk` lint rule prevents reintroducing a parallel raw client. The CLI client disables request timeouts by default for long-running executions via the SDK's new `timeout: null` support. Also fixes two latent bugs surfaced during the migration: `flows run --no-stream` now correctly requests a non-streamed response (`options.streamResponse`), and `flows get` displays the step count from the actual `flowSteps`/`stepCount` response fields.
1417
- - 91df87d: Fix marathon stream session/cost/token totals for single-turn agents now that agent_iteration_complete is no longer emitted — derive sessionCount and final totals from agent_complete.
1418
- - 422b660: Route CLI delete-by-id resource commands through the SDK's typed endpoint methods (`client.<resource>.delete(id)`) instead of generic string-path calls, gaining compile-time API-contract checking. Covers agents, api-keys, client-tokens, conversations, prompts, records, schedules, secrets, and tools. List, get, create, update, and streaming calls intentionally remain on the SDK's sanctioned generic methods, since their call sites consume CLI-local summary interfaces that diverge structurally from the SDK entity types (migrating them would require disallowed casts).
1419
- - Updated dependencies [75c7cbd]
1420
- - Updated dependencies [3b357cc]
1421
- - Updated dependencies [f676234]
1422
- - @runtypelabs/sdk@2.2.0
1423
- - @runtypelabs/ink-components@0.3.2
1424
- - @runtypelabs/terminal-animations@0.2.1
1425
-
1426
- ## 2.15.6
1427
-
1428
- ### Patch Changes
1429
-
1430
- - Updated dependencies [3b6779b]
1431
- - @runtypelabs/sdk@2.1.1
1432
-
1433
- ## 2.15.5
1434
-
1435
- ### Patch Changes
1436
-
1437
- - Updated dependencies [7d37b2f]
1438
- - @runtypelabs/sdk@2.1.0
1439
-
1440
- ## 2.15.4
1441
-
1442
- ### Patch Changes
1443
-
1444
- - Updated dependencies [89dc476]
1445
- - @runtypelabs/sdk@2.0.1
1446
-
1447
- ## 2.15.3
1448
-
1449
- ### Patch Changes
1450
-
1451
- - 1da2af7: Fix MCP OAuth2 dynamic client registration for servers that return non-standard field types (e.g. PlanetScale returning `client_secret_expires_at` as a non-number)
1452
- - dc704fb: Remove the unused `status` lifecycle field from Flows and Agents (Option A from the status-field planning doc). The field gated nothing at runtime — dispatch always ran the live config row — and conflated lifecycle and draft/publish concerns. Dropped the `flows.status` and `agents.status` columns (and their now-redundant indexes), removed `status` from the REST list/create/update routes, the SDK `Flow` type, the MCP create/update agent + flow tools and list filters, the FPO agent schema, and the dashboard status pill/selectors.
1453
-
1454
- Breaking: API responses for flows/agents no longer include `status`; the create/update endpoints and MCP tools no longer accept it; `Flow.status` is removed from `@runtypelabs/sdk`. Surface status, product status, and execution/run status are unaffected. Draft vs. published is now owned entirely by the versioning system.
1455
-
1456
- - Updated dependencies [fed76a8]
1457
- - Updated dependencies [102e70b]
1458
- - Updated dependencies [cd6d918]
1459
- - Updated dependencies [dc704fb]
1460
- - Updated dependencies [95df762]
1461
- - @runtypelabs/sdk@2.0.0
1462
-
1463
- ## 2.15.2
1464
-
1465
- ### Patch Changes
1466
-
1467
- - Updated dependencies [bade11f]
1468
- - Updated dependencies [6fbe4ed]
1469
- - @runtypelabs/sdk@1.24.2
1470
-
1471
- ## 2.15.1
1472
-
1473
- ### Patch Changes
1474
-
1475
- - Updated dependencies [d659976]
1476
- - Updated dependencies [0442e36]
1477
- - @runtypelabs/sdk@1.24.1
1478
-
1479
- ## 2.15.0
1480
-
1481
- ### Minor Changes
1482
-
1483
- - d4bffd9: Add `--target cloudflare` and `--target vercel` to `runtype deploy`, and fix `applyParameterMapping` target-key collision in the api
1484
-
1485
- **CLI (`@runtypelabs/cli`)**
1486
-
1487
- `runtype deploy` now accepts `--target <cloud-run|cloudflare|vercel>` (default: `cloud-run`).
1488
- - `--target cloudflare` scaffolds a Cloudflare Workers project: raw `fetch` handler with `CloudflareAdapter`, one static JSON import per agent slug (required because Workers has no `fs` access — Wrangler bundles them at deploy time), `wrangler.toml`, `setup.sh` (pnpm pack + `file:` rewrite pattern), and a `README.md` with `wrangler secret put` instructions.
1489
- - `--target vercel` scaffolds a Vercel Functions project: Hono + `hono/vercel` catch-all route with `VercelAdapter`, static JSON imports, `vercel.json` (60 s maxDuration), `setup.sh`, and a `README.md` with `vercel env add` instructions.
1490
- - `--target cloud-run` (default) is unchanged.
1491
- - Unknown `--target` values exit with an actionable error.
1492
-
1493
- **API (`@runtypelabs/api`)**
1494
-
1495
- Fixed a target-key collision bug in both copies of `applyParameterMapping`:
1496
- - `apps/api/src/services/tool-executor.ts` (private method)
1497
- - `apps/api/src/lib/flow-execution/engine.ts` (public method)
1498
-
1499
- With `parameterMapping = { foo: 'bar' }` and the model supplying `{ foo: 'A', bar: 'B' }`, the passthrough loop's `!(key in parameterMapping)` check only tested source keys, so the raw `bar: 'B'` overwrote the renamed `bar: 'A'`. Fix: pre-compute a `Set` of cleaned target key names and skip passthrough for keys in that set so the rename always wins. Regression test added to `apps/api/tests/parameter-mapping.test.ts`.
1500
-
1501
- ### Patch Changes
1502
-
1503
- - Updated dependencies [761dd74]
1504
- - @runtypelabs/sdk@1.24.0
1505
-
1506
- ## 2.14.0
1507
-
1508
- ### Minor Changes
1509
-
1510
- - ed8ad80: Add versioning to agents (mirrors flow versioning). New `agent_versions` table, `published_version_id` / `draft_version_id` pointers on agents, audit pointer on `agent_executions`. New `/v1/agent-versions` API, `list_agent_versions` / `get_agent_version` / `get_published_agent_version` / `publish_agent_version` MCP tools, `runtype agent-versions` CLI subcommands, and an Agent Versions dashboard sheet for browsing/restoring history. Flow and agent versioning now share a generic `version-service-factory` with retry-on-conflict, and version snapshot creation is best-effort so a snapshot failure cannot fail the underlying agent save.
1511
-
1512
- ## 2.13.0
1513
-
1514
- ### Minor Changes
1515
-
1516
- - a97d521: Add `runtype deploy` CLI command: exports an agent or flow via the `/export-runtime` API and scaffolds a ready-to-deploy Cloud Run project directory with `server.ts`, `Dockerfile`, `tsconfig.json`, `package.json`, `setup.sh`, and `README.md`. The runtime package is wired as a `file:` tarball (private distribution model preserved).
1517
-
1518
- ### Patch Changes
1519
-
1520
- - Updated dependencies [96b2f28]
1521
- - Updated dependencies [5b7e3fe]
1522
- - @runtypelabs/sdk@1.23.0
1523
-
1524
- ## 2.12.8
1525
-
1526
- ### Patch Changes
1527
-
1528
- - Updated dependencies [de7f600]
1529
- - @runtypelabs/sdk@1.22.0
1530
-
1531
- ## 2.12.7
1532
-
1533
- ### Patch Changes
1534
-
1535
- - 7542451: Address `/review` findings on the schedules pagination work:
1536
- - Internal MCP client (`apps/api/src/lib/mcp-internal-client.ts`) now forwards `search` and `status` to `GET /v1/schedules`. Previously the public `RuntypeApiClient` and the Code-Mode executor forwarded these new filter params, but the internal client (used by the API's own `/api/mcp` endpoint) silently dropped them — so `list_schedules({ search, status })` returned unfiltered results.
1537
- - CLI `runtype schedules list` (non-TTY / `--json` path) now prints a yellow warning when `pagination.hasMore` is true, telling the user they're seeing only the first N results. Matches the existing API `Warning: 199` header signal so users with >50 schedules know to paginate instead of silently losing rows.
1538
- - Code-Mode MCP spec example for `listSchedules` now destructures `const { data: schedules } = ...` (was `const { schedules }`, which was always `undefined` — the API returns `{ data, pagination }`). The `returns:` description was also updated to match. Other `list*` examples in `spec.ts` have the same pre-existing key mismatch and are out of scope here.
1539
-
1540
- ## 2.12.6
1541
-
1542
- ### Patch Changes
1543
-
1544
- - Updated dependencies [569e7d5]
1545
- - @runtypelabs/sdk@1.21.3
1546
-
1547
- ## 2.12.5
1548
-
1549
- ### Patch Changes
1550
-
1551
- - 2a11be5: Enforce strict TypeScript checking across all projects in CI
1552
- - Updated dependencies [b3a580e]
1553
- - @runtypelabs/sdk@1.21.2
1554
-
1555
- ## 2.12.4
1556
-
1557
- ### Patch Changes
1558
-
1559
- - d05fa77: Add a `name` column to schedules, snapshotted server-side from the target flow or agent at create time and re-snapshotted whenever the target changes. The dashboard table and detail sheet now read `s.name` directly instead of looking up the target name on every render. Existing rows are backfilled in the migration. The column is server-managed — clients cannot override it via REST or MCP. The snapshot helper (`snapshotScheduleTargetName`) is ownership-scoped via `ownershipFilter`, so a target flow/agent the caller does not own resolves to a generic 404 — closing both a cross-org name-disclosure leak and a flow-existence enumeration oracle on `PUT /v1/schedules/:id`. All three insert sites for `flow_schedules` (the public schedules route, the product-surfaces schedules route, and the FPO product assembly path) now share the helper and persist a populated `name`. The `create_schedule` and `update_schedule` MCP tool descriptions document the snapshot behavior. The CLI `schedules create` subcommand was already broken (wrong payload shape and a `--name` flag the API never honored); fixed to emit the correct `target` / `trigger` envelope and dropped the dead `--name` flag in favor of a now-required `--timezone`.
1560
- - Updated dependencies [c5e0c1d]
1561
- - @runtypelabs/sdk@1.21.1
1562
-
1563
- ## 2.12.3
1564
-
1565
- ### Patch Changes
1566
-
1567
- - a8f5949: Remove dotenv dependency from CLI (inline minimal .env loader) and move to devDependencies in api
1568
-
1569
- ## 2.12.2
1570
-
1571
- ### Patch Changes
1572
-
1573
- - Updated dependencies [5190fd0]
1574
- - @runtypelabs/sdk@1.21.0
1575
-
1576
- ## 2.12.1
1577
-
1578
- ### Patch Changes
1579
-
1580
- - Updated dependencies [f777029]
1581
- - @runtypelabs/sdk@1.20.0
1582
-
1583
- ## 2.12.0
1584
-
1585
- ### Minor Changes
1586
-
1587
- - f519af1: Rename 'cloudflare-sandbox' to 'runtype-sandbox' across all customer-facing and internal interfaces. Old value accepted for backwards compatibility.
1588
-
1589
- ## 2.11.8
1590
-
1591
- ### Patch Changes
1592
-
1593
- - 54dee3e: Build `@runtypelabs/shared` with tsup as dual ESM+CJS and declare `"sideEffects": false`. The React-importing `use-flow-execution-streaming` hook is moved out of the main barrel into its own subpath export (`@runtypelabs/shared/hooks/use-flow-execution-streaming`), so Next.js Server Component bundles no longer transitively load React. The CLI switches from deep `dist/*` imports to barrel imports; the runtype-ai worker switches from `src/*` deep import to barrel import.
1594
-
1595
- ## 2.11.7
1596
-
1597
- ### Patch Changes
1598
-
1599
- - db40ddb: Support OAuth 2.1 client ID metadata document flow for MCP server connections
1600
-
1601
- When an MCP server's OAuth authorization server advertises `client_id_metadata_document_supported: true`, the API now uses a hosted client metadata document URL as the `client_id` instead of attempting Dynamic Client Registration (DCR). This fixes 403 errors when connecting to servers like Airtable that block server-to-server DCR from Cloudflare Worker IPs. The mock API also gains MCP OAuth2 test endpoints for validating both flows.
1602
-
1603
- - Updated dependencies [7712f0d]
1604
- - @runtypelabs/sdk@1.19.1
1605
-
1606
- ## 2.11.6
1607
-
1608
- ### Patch Changes
1609
-
1610
- - Updated dependencies [e6d59df]
1611
- - @runtypelabs/sdk@1.19.0
1612
-
1613
- ## 2.11.5
1614
-
1615
- ### Patch Changes
1616
-
1617
- - 0bed197: Expose GPT Image 2 as a built-in image generation tool and route legacy DALL-E tool usage through GPT Image 2 with token-based pricing.
1618
-
1619
- ## 2.11.4
1620
-
1621
- ### Patch Changes
1622
-
1623
- - Updated dependencies [778a8be]
1624
- - @runtypelabs/sdk@1.18.1
1625
-
1626
- ## 2.11.3
1627
-
1628
- ### Patch Changes
1629
-
1630
- - Updated dependencies [e886078]
1631
- - Updated dependencies [e6fcbe6]
1632
- - Updated dependencies [94261ac]
1633
- - Updated dependencies [91db7b9]
1634
- - Updated dependencies [7070cfb]
1635
- - @runtypelabs/sdk@1.18.0
1636
-
1637
- ## 2.11.2
1638
-
1639
- ### Patch Changes
1640
-
1641
- - 92cd427: Bump @vercel/analytics to v2.0.1; remove unused uuid dependency from CLI
1642
-
1643
- ## 2.11.1
1644
-
1645
- ### Patch Changes
1646
-
1647
- - Updated dependencies [28f126c]
1648
- - @runtypelabs/sdk@1.17.1
1649
-
1650
- ## 2.11.0
1651
-
1652
- ### Minor Changes
1653
-
1654
- - ed60fc9: Add GCP-style `?account=<clerk_id>` deep-link support to the dashboard. The parameter auto-switches the active Clerk organization (`org_...`) or personal account (`user_...`) on page load, with membership validation and a signed-in-as-wrong-user recovery screen. MCP tools, CLI output, API OAuth callbacks, and billing notification emails now include `account=` in dashboard URLs when the authenticated context is known, so recipients land in the right account regardless of which one is currently active in their browser.
1655
-
1656
- ### Patch Changes
1657
-
1658
- - Updated dependencies [060278a]
1659
- - @runtypelabs/sdk@1.17.0
1660
-
1661
- ## 2.10.9
1662
-
1663
- ### Patch Changes
1664
-
1665
- - Updated dependencies [23b42c8]
1666
- - @runtypelabs/sdk@1.16.0
1667
-
1668
- ## 2.10.8
1669
-
1670
- ### Patch Changes
1671
-
1672
- - ce93ba6: Fix CLI vitest failing on cold checkout by aliasing `@runtypelabs/shared/dist` to the shared package source. Tests no longer require shared to be pre-built.
1673
- - 60dbf93: Improve `deploy_sandbox` on the Cloudflare Sandbox provider: auto-create parent directories when writing nested `files` entries, reject reserved port 3000 up front with a clear message, default to port 8080, and return a `stage` field plus captured stdout/stderr in `output` on failure for easier debugging.
1674
- - Updated dependencies [60dbf93]
1675
- - @runtypelabs/sdk@1.15.3
1676
-
1677
- ## 2.10.7
1678
-
1679
- ### Patch Changes
1680
-
1681
- - 5e438d2: Bump Marathon TUI tool preview truncation from 48 to 96 chars so preview URLs (e.g. sandbox `runtype.run` links) render more usefully in tool output.
1682
-
1683
- ## 2.10.6
1684
-
1685
- ### Patch Changes
1686
-
1687
- - Updated dependencies [64dfdb5]
1688
- - @runtypelabs/sdk@1.15.2
1689
-
1690
- ## 2.10.5
1691
-
1692
- ### Patch Changes
1693
-
1694
- - 4271b9a: Replace stale `meta/llama3.1-8b-instruct-free` defaults across dashboard onboarding, magic buttons, schedule/cron assistants, marketing demo flow + allowlist, usage-stats mock data, smoke-test templates, and integration tests.
1695
-
1696
- Runtime code (dashboard, marketing, usage-stats, CLI README) imports `DEFAULT_MODEL_ID` from `@runtypelabs/shared` (currently `qwen/qwen3.5-9b`) so it tracks whatever model is marked as the new-account default. Tests, smoke-test JSON templates, bruno fixtures, and eval configs pin to `google/gemma-4-26b-a4b-it` so test behavior doesn't silently shift when the default rotates.
1697
-
1698
- The deprecated model stays in the catalog so existing saved configs still resolve — this is pure noise cleanup so newly-created surfaces no longer suggest a deprecated model.
1699
-
1700
- - 4dd8b2d: Fix `Dynamic require of "react" is not supported` at CLI startup by importing `DEFAULT_MODEL_ID` from the `@runtypelabs/shared/dist/default-models` subpath instead of the barrel. The shared barrel re-exports a React hook; bundling it into the CLI's ESM output left `require('react')` in the dist and broke every command (including `marathon`) since the import runs at startup. Adds an ESLint `no-restricted-imports` rule and a `node dist/index.js --version` CI smoke test to prevent regressions.
1701
-
1702
- ## 2.10.4
1703
-
1704
- ### Patch Changes
1705
-
1706
- - 43806a4: Migrate FALLBACK_MODEL and all default-model literals from `meta/llama3.1-8b-instruct-free` to `DEFAULT_MODEL_ID` (currently `qwen/qwen3.5-9b`). Updates DB schema defaults (new prompts get the modern default; drizzle migration `0019_parched_cyclops.sql` updates the `ALTER COLUMN ... SET DEFAULT`). The old model remains in `DEPRECATED_MODELS` so existing references continue to resolve.
1707
-
1708
- ## 2.10.3
1709
-
1710
- ### Patch Changes
1711
-
1712
- - Updated dependencies [ca82595]
1713
- - @runtypelabs/sdk@1.15.1
1714
-
1715
- ## 2.10.2
1716
-
1717
- ### Patch Changes
1718
-
1719
- - 16f49e2: Re-publish `@runtypelabs/cli` to npm. Previous Version Packages merges (#2217 / #2219 / #2223 / #2236 / #2247) skipped the publish step due to a stuck ignored-only changeset in `.changeset/`, so versions 2.9.0 / 2.9.1 / 2.10.0 were tagged in the repo but never pushed to npm. This changeset forces a new Version Packages PR that, when merged, drains the queue.
1720
-
1721
- ## 2.10.1
1722
-
1723
- ### Patch Changes
1724
-
1725
- - 2e144ac: Include `cloudflare-sandbox` in the `runtype marathon --sandbox` invalid-value error message so the hint matches the providers actually accepted by `parseSandboxProvider`.
1726
-
1727
- ## 2.10.0
1728
-
1729
- ### Minor Changes
1730
-
1731
- - 2820927: Replace the `cloudflare-shell` sandbox provider with `cloudflare-sandbox`, backed by `@cloudflare/sandbox`.
1732
- - `sandboxProvider` on transform-data steps and custom runtime tools accepts `'cloudflare-sandbox'` instead of `'cloudflare-shell'`.
1733
- - New `CloudflareSandboxDO` container-backed Durable Object replaces `ShellSandboxDO`. Each sandbox is a full Linux computer (Node 22, Python 3.12, pnpm, tsx, uv, git) with snapshot-backed persistence, preview URLs, and Active-CPU pricing.
1734
- - New routes: `POST /tools/sandbox/cf-sandbox/deploy` and `DELETE /tools/sandbox/cf-sandbox/:sandboxId`. The old `cf-shell` routes are removed.
1735
- - SDK: `deployCfShell` / `cleanupCfShell` renamed to `deployCfSandbox` / `cleanupCfSandbox`. `DeployCfShellRequest` / `DeployCfShellResponse` renamed to `DeployCfSandboxRequest` / `DeployCfSandboxResponse`.
1736
- - CLI: `createDeployCfShellLocalTool` / `cleanupCfShellWorkers` renamed to `createDeployCfSandboxLocalTool` / `cleanupCfSandboxes`. Python is now a supported language for Cloudflare Sandbox.
1737
- - Infrastructure: wrangler migration `v7` drops `ShellSandboxDO` and adds `CloudflareSandboxDO`. `SHELL_STORAGE` R2 binding renamed to `SANDBOX_STORAGE`. Requires Workers Paid + Containers add-on on the Cloudflare account.
1738
-
1739
- Breaking change: any caller passing `sandboxProvider: 'cloudflare-shell'` must switch to `'cloudflare-sandbox'`. There was no production usage of the old provider, so the impact is limited to internal testing.
1740
-
1741
- ### Patch Changes
1742
-
1743
- - Updated dependencies [2820927]
1744
- - @runtypelabs/sdk@1.15.0
1745
-
1746
- ## 2.9.1
1747
-
1748
- ### Patch Changes
1749
-
1750
- - 3ab8900: Auto-validate every FPO and FPO template under `docs/templates/` as part of the CLI test suite. The new `packages/cli/test/integration/published-templates.test.ts` discovers all `*.json` files recursively, skips `flows/**` (flow exports are a different artifact type) and `_`-prefixed files (drafts), and asserts each one validates cleanly via the same `detectKind` + `runValidation` functions `runtype validate-product` uses. Moved `autonomous-research-content-pipeline.json` into `docs/templates/flows/` so the FPO glob is unambiguous. See `docs/templates/README.md` for the directory conventions.
1751
-
1752
- ## 2.9.0
1753
-
1754
- ### Minor Changes
1755
-
1756
- - 50eb108: Add `runtype validate-product` command that validates FPOs (Full Product Objects) and FPO templates locally using the shared validators. Accepts a file path, raw JSON, or stdin; auto-detects FPO vs template; supports `--json`, `--quiet`, `--fpo`, and `--template` flags. Surfaces template default-resolution errors (e.g. required variables without defaults). Exits 0 when valid, 1 on errors or IO failure.
1757
-
1758
- ## 2.8.5
1759
-
1760
- ### Patch Changes
1761
-
1762
- - Updated dependencies [799f8db]
1763
- - @runtypelabs/sdk@1.14.1
1764
-
1765
- ## 2.8.4
1766
-
1767
- ### Patch Changes
1768
-
1769
- - Updated dependencies [040c7e8]
1770
- - @runtypelabs/sdk@1.14.0
1771
-
1772
- ## 2.8.3
1773
-
1774
- ### Patch Changes
1775
-
1776
- - ca1921e: fix: show error state for failed marathon sessions in TUI
1777
- - Display error message in Overview tab when viewing a session that ended with an error (e.g., context_length_exceeded)
1778
- - Show error indicator on session tabs: "Run N ✗" for errors, "Run N $" for budget exceeded
1779
- - Thread error messages through session snapshots so they persist and display on resume
1780
- - Fix live session snapshot to recognize error phase instead of showing blank screen
1781
-
1782
- ## 2.8.2
1783
-
1784
- ### Patch Changes
1785
-
1786
- - 24626bc: fix: show error state for failed marathon sessions in TUI
1787
- - Display error message in Overview tab when viewing a session that ended with an error (e.g., context_length_exceeded)
1788
- - Show error indicator on session tabs: "Run N ✗" for errors, "Run N $" for budget exceeded
1789
- - Thread error messages through session snapshots so they persist and display on resume
1790
- - Fix live session snapshot to recognize error phase instead of showing blank screen
1791
-
1792
- ## 2.8.1
1793
-
1794
- ### Patch Changes
1795
-
1796
- - e10c4d4: Add marathon `/copy-trimmed` and session menu option to copy the same session JSON with large code and tool payloads trimmed for LLM context limits.
1797
-
1798
- Publish a marketing changelog entry for the feature.
1799
-
1800
- - Updated dependencies [e10c4d4]
1801
- - @runtypelabs/sdk@1.13.3
1802
-
1803
- ## 2.8.0
1804
-
1805
- ### Minor Changes
1806
-
1807
- - 99e67a2: Add `runtype auth export-key` command that prints the stored API key to stdout
1808
-
1809
- Enables scripts and setup tools to programmatically retrieve the authenticated API key without creating new keys. Follows the same pattern as `gh auth token` and `gcloud auth print-access-token`.
1810
-
1811
- ### Patch Changes
1812
-
1813
- - 36483b1: Fix flaky tail command tests that timed out due to real retry back-off delays
1814
- - Updated dependencies [7f727ab]
1815
- - Updated dependencies [19b9c08]
1816
- - @runtypelabs/sdk@1.13.2
1817
-
1818
- ## 2.7.1
1819
-
1820
- ### Patch Changes
1821
-
1822
- - d73361a: Disable source maps in published packages to reduce npm package size
1823
- - Updated dependencies [d73361a]
1824
- - @runtypelabs/sdk@1.13.1
1825
- - @runtypelabs/ink-components@0.3.1
1826
-
1827
- ## 2.7.0
1828
-
1829
- ### Minor Changes
1830
-
1831
- - 9936443: feat: add live tail log streaming with type-safe event emission
1832
-
1833
- Adds real-time log streaming across API, CLI, and dashboard using Cloudflare's Tail Worker infrastructure with per-org tenant isolation via TailFanoutDO.
1834
- - Type-safe `LogData` discriminated union: `{ tail: true }` requires `audience` and `category` at compile time
1835
- - Logger `child()` immutable pattern for safe async context propagation
1836
- - TailFanoutDO with hibernatable WebSockets, connection limits, and `tail_gap` backpressure
1837
- - Thin tail worker relay with dual-heuristic loop suppression
1838
- - CLI `runtype tail` command with SSE streaming, reconnect, and formatted output
1839
- - Dashboard `TailLogPanel` integrated into surface, capability, and conversations panels
1840
-
1841
- ## 2.6.2
1842
-
1843
- ### Patch Changes
1844
-
1845
- - e88481e: chore: prefer Gemini 3.1 Flash-Lite and Flash Image in defaults and examples
1846
-
1847
- Use routed `gemini-3-1-flash-lite` and `gemini-3-1-flash-image` instead of `gemini-3-flash` and `gemini-3-pro-image` for new-account defaults, lightweight picks, provider routing metadata, product templates, marketing MDX examples, and the CLI talk model picker.
1848
-
1849
- ## 2.6.1
1850
-
1851
- ### Patch Changes
1852
-
1853
- - 2de3530: Fix two hangs in `persona init`: clipboard copy now uses execFileSync (promisified execFile silently ignores `input`), and quitting via 'q'/Escape now pauses stdin so the process exits cleanly
1854
- - 2de3530: Fix persona init: default agent name to "Persona Test", fix interactive key menu exiting immediately, and create agents with model (qwen3.5-35b-a3b), system prompt, and description
1855
- - Updated dependencies [2de3530]
1856
- - @runtypelabs/sdk@1.13.0
1857
-
1858
- ## 2.6.0
1859
-
1860
- ### Minor Changes
1861
-
1862
- - ee55324: Add `runtype persona init` to create an agent, a scoped client token, and a Persona embed snippet in one command (`--json` and non-interactive flags supported).
1863
-
1864
- ## 2.5.0
1865
-
1866
- ### Minor Changes
1867
-
1868
- - 62c2f83: Add Cloudflare Shell as a new sandbox provider for Marathon CLI
1869
-
1870
- Introduces `cloudflare-shell` as an alternative to Daytona for agent code execution in Marathon. Uses `@cloudflare/worker-bundler` for runtime TypeScript compilation and npm dependency resolution, and `@cloudflare/shell` for virtual filesystem persistence backed by SQLite + R2.
1871
-
1872
- Key features:
1873
- - JavaScript and TypeScript execution with npm dependencies
1874
- - Virtual filesystem persistence via `@cloudflare/shell` Workspace
1875
- - Deploy-with-preview via persistent Dynamic Workers
1876
- - No API key required (uses existing Cloudflare Workers infrastructure)
1877
- - ~1-5ms startup vs ~100-500ms for Daytona
1878
-
1879
- Usage: `runtype task "your task" --sandbox cloudflare-shell`
1880
-
1881
- ### Patch Changes
1882
-
1883
- - Updated dependencies [62c2f83]
1884
- - @runtypelabs/sdk@1.12.0
1885
-
1886
- ## 2.4.0
1887
-
1888
- ### Minor Changes
1889
-
1890
- - 4b0a612: Add client token management and Persona embed code generation across CLI and MCP server. CLI gets `client-tokens` command group (list, get, create, delete, regenerate). MCP server gets matching tools plus `generate_persona_embed_code` which uses Persona's `generateCodeSnippet` directly to produce script-installer and React component embed code. Both CLI and MCP default `allowedOrigins` to `["*"]` when not provided, matching the dashboard onboarding behavior.
1891
-
1892
- ## 2.3.0
1893
-
1894
- ### Minor Changes
1895
-
1896
- - cc9ff7a: Add Orthogonal-backed platform tools with hierarchical `platform:orthogonal:company:tool` ID format, catalog generation, managed execution, and spend tracking via DO + Analytics Engine.
1897
-
1898
- ### Patch Changes
1899
-
1900
- - Updated dependencies [cc9ff7a]
1901
- - @runtypelabs/sdk@1.11.0
1902
-
1903
- ## 2.2.1
1904
-
1905
- ### Patch Changes
1906
-
1907
- - a6cf1cd: Fix environment variable exfiltration via npm script injection in run_check tool
1908
- - Sanitize subprocess environment to whitelist-only safe variables (PATH, HOME, etc.)
1909
- - Add output secret redaction as defense-in-depth against leaked values
1910
- - Block npm/pnpm script commands when package.json has uncommitted modifications
1911
-
1912
- - 9e3fee1: Fix marathon session reliability: resolve completion deadlocks (verification auto-waive, premature TASK_COMPLETE), fix write loops and stall detection, retain accumulated cost across checkpoint restarts, retry server-side network errors in session loop, and add 'o' key to open files from Files tab or open agent in dashboard
1913
- - Updated dependencies [9e3fee1]
1914
- - @runtypelabs/sdk@1.10.2
1915
-
1916
- ## 2.2.0
1917
-
1918
- ### Minor Changes
1919
-
1920
- - 0327529: Add session context search for marathon CLI (RLM-inspired)
1921
-
1922
- Introduces semantic search over marathon session history using a platform-owned Cloudflare Vectorize index. When marathon sessions complete, content is automatically chunked and indexed. Agents can use the new `search_session_history` tool to recall information from earlier sessions that may have been compacted away.
1923
- - API: New `/v1/session-context/index`, `/v1/session-context/search`, and `DELETE /v1/session-context` endpoints
1924
- - API: New `SessionContextService` using platform Vectorize credentials with tenant namespace isolation
1925
- - CLI: New `search_session_history` local tool registered by default in marathon tasks
1926
- - CLI: Session content auto-indexed after each session via `onSession` callback
1927
- - CLI: New `--no-session-search` flag to disable the feature
1928
- - Cost tracking via `session-context:embedding` in service cost registry
1929
-
1930
- ### Patch Changes
1931
-
1932
- - ce76184: Add user-friendly error messages when marathon fails due to network issues, distinguishing between local network being offline, server being unreachable, and request timeouts
1933
- - Updated dependencies [ce76184]
1934
- - @runtypelabs/sdk@1.10.1
1935
-
1936
- ## 2.1.0
1937
-
1938
- ### Minor Changes
1939
-
1940
- - 190adf8: Add agent fallback-model and playbook policy support across the API, CLI, and SDK.
1941
-
1942
- Improve marathon task execution with safer verification handling, creation-task output constraints, and better recovery when verification is repeatedly blocked.
1943
-
1944
- ### Patch Changes
1945
-
1946
- - Updated dependencies [190adf8]
1947
- - @runtypelabs/sdk@1.10.0
1948
-
1949
- ## 2.0.2
1950
-
1951
- ### Patch Changes
1952
-
1953
- - bd08d42: Wire streamed tool input through the API, SDK, and Marathon CLI, keep local tools active through client-side execution, and enable Anthropic eager input streaming behind a feature flag.
1954
- - 73d6d60: Fix marathon session complete banner to show accumulated totals from all sessions instead of only the last session's tool calls
1955
- - bd08d42: Improve marathon CLI scrolling performance by caching rendered detail content between scroll updates.
1956
- - Updated dependencies [bd08d42]
1957
- - @runtypelabs/sdk@1.9.2
1958
-
1959
- ## 2.0.1
1960
-
1961
- ### Patch Changes
1962
-
1963
- - 8494865: Wire streamed tool input through the API, SDK, and Marathon CLI, keep local tools active through client-side execution, and enable Anthropic eager input streaming behind a feature flag.
1964
- - f49d2d6: Improve Marathon build-and-serve workflow routing for prompts that ask the agent to create a runnable web app, serve it, and verify routes.
1965
- - 8494865: Improve marathon CLI scrolling performance by caching rendered detail content between scroll updates.
1966
- - Updated dependencies [8494865]
1967
- - Updated dependencies [f49d2d6]
1968
- - @runtypelabs/sdk@1.9.1
1969
-
1970
- ## 2.0.0
1971
-
1972
- ### Major Changes
1973
-
1974
- - b6d2ceb: feat(cli): custom playbooks, visual milestone progress, and steering→checkpoint rename
1975
- - Rename "steering" to "checkpoint" throughout marathon TUI and CLI flags (`--no-steer` → `--no-checkpoint`, `--steer-timeout` → `--checkpoint-timeout`)
1976
- - Add milestone progress bar in SessionHeader showing `✓ research ── ● planning ── ○ execution` with live updates as the agent progresses through workflow phases
1977
- - Add `--playbook <name>` flag to load custom YAML playbook files from `.runtype/marathons/playbooks/` (repo-level or user-level), defining milestones, per-milestone model overrides, verification settings, and rules in a single file
1978
- - Remove recipe system (`--recipe` flag and `.marathon/recipes/`) — playbooks replace it entirely
1979
- - Add `yaml` dependency for playbook parsing
1980
- - Update CLI README with playbook documentation, YAML schema example, and marathon anatomy diagram
1981
-
1982
- ### Patch Changes
1983
-
1984
- - b6d2ceb: feat(marathon): add ghost vector startup backgrounds
1985
- - add viewport-aware `vector3d-ghost-wave` and `vector3d-ghost-box-drift` variants to `@runtypelabs/terminal-animations`
1986
- - extend `AnimatedVariant` with optional `width` and `height` props so background variants can fill the active terminal viewport without wrapping
1987
- - render a randomly selected ghost vector scene behind the marathon startup splash, resume prompt, model picker, and playbook model confirmation screen
1988
-
1989
- - Updated dependencies [152019b]
1990
- - Updated dependencies [b6d2ceb]
1991
- - Updated dependencies [b6d2ceb]
1992
- - @runtypelabs/sdk@1.9.0
1993
- - @runtypelabs/terminal-animations@0.2.0
1994
-
1995
- ## 1.9.4
1996
-
1997
- ### Patch Changes
1998
-
1999
- - b65465e: Replace `uuid` package with native `crypto.randomUUID()` for session ID generation
2000
-
2001
- ## 1.9.3
2002
-
2003
- ### Patch Changes
2004
-
2005
- - c7229a9: Standardize marathon sidecar event logs on one-based session numbering so resumed runs load Events correctly from `session-1.jsonl`, `session-2.jsonl`, and so on.
2006
- - c7229a9: Tighten marathon local tool filesystem access so agents cannot read or write outside the workspace root or inside restricted internal state directories, and switch hot-tail offload retrieval to opaque ids via `read_offloaded_output`.
2007
- - Updated dependencies [c7229a9]
2008
- - Updated dependencies [c7229a9]
2009
- - @runtypelabs/sdk@1.8.2
2010
-
2011
- ## 1.9.2
2012
-
2013
- ### Patch Changes
2014
-
2015
- - b31908e: Fix typo in CLI README: "store in wthin" → "store it within"
2016
-
2017
- ## 1.9.1
2018
-
2019
- ### Patch Changes
2020
-
2021
- - 4ec90b5: Fix `--compact-threshold` parsing to remove ambiguous bare-ratio format. The flag now accepts only two formats: percent (e.g. `--compact-threshold 80%`) and absolute token count (e.g. `--compact-threshold 120000`). Bare decimal values like `0.8` are no longer interpreted as ratios. Also ensure provider-native compaction lifecycle cleanup fires even when session execution throws, preventing a stuck compaction indicator in the TUI.
2022
- - 4ec90b5: Add provider-aware marathon context management with model-budget-aware compaction thresholds, compaction lifecycle telemetry, structured compact summaries, CLI controls for compaction strategy and instructions, and tool-output guardrails that surface or offload oversized local tool results.
2023
- - Updated dependencies [4ec90b5]
2024
- - Updated dependencies [4ec90b5]
2025
- - @runtypelabs/sdk@1.8.1
2026
-
2027
- ## 1.9.0
2028
-
2029
- ### Minor Changes
2030
-
2031
- - cb1b95d: Files tab: render markdown for .md files and show copy hint
2032
-
2033
- Markdown files (.md/.mdx) in the marathon Files tab detail view now render with terminal-styled formatting (headings, code blocks, bold, links, etc.) instead of raw text. The detail header also now displays a "c: copy" hint matching the Events and Tools panels. Added ANSI-aware line wrapping to keep scroll math correct with styled content.
2034
-
2035
- ### Patch Changes
2036
-
2037
- - 5d64851: Add automatic retry with exponential backoff for transient network errors during marathon execution. When a network connection drops mid-marathon, the CLI now retries up to 3 times (5s, 10s, 20s backoff) before falling back to saving state and exiting. Previously, any network interruption would immediately terminate the marathon.
2038
- - 097e1fd: Add Marathon execution attribution end-to-end. Marathon CLI requests now send standard CLI headers plus `X-Runtype-Client-Origin`, the API propagates `clientOrigin` through flow and agent execution context into usage analytics and execution telemetry, and usage-stats can filter and visualize Marathon-origin traffic separately from existing execution `source` values.
2039
- - Updated dependencies [cb1b95d]
2040
- - @runtypelabs/ink-components@0.3.0
2041
-
2042
- ## 1.8.5
2043
-
2044
- ### Patch Changes
2045
-
2046
- - 45e99f3: perf: defer telemetry redaction to async flush path; fix secret-detection test values and CLI update-check test
2047
- - 105c8f6: Fix update-check test failing in CI by clearing the CI environment variable in test setup
2048
-
2049
- ## 1.8.4
2050
-
2051
- ### Patch Changes
2052
-
2053
- - 16c0ef0: Add CLI upgrade notifications and API minimum CLI version enforcement.
2054
- - 16c0ef0: Add a cinematic fullscreen startup splash for marathon mode with centered resume prompts and a fade handoff into the Ink UI.
2055
- - 16c0ef0: Fix Daytona sandbox deployments to reuse existing sandboxes and persist beyond CLI exit
2056
- - Uses `daytona.get(sandboxId)` to reconnect to existing sandboxes when the in-memory cache misses (stateless Cloudflare Workers)
2057
- - Sets auto-stop interval to 120 minutes so deploy sandboxes stay alive after CLI exits
2058
- - Stops deleting sandboxes on marathon exit — users can revisit preview URLs or reconnect via --resume
2059
- - Kills existing server process on port before redeployment to avoid conflicts
2060
- - Fixes cleanup method to reconnect to sandboxes for proper deletion
2061
-
2062
- - 16c0ef0: Fix Marathon tools-screen crashes when opening a tool detail view.
2063
- - 16c0ef0: Restore the steering prompt when resuming a paused marathon without new instructions, warn clearly when a resumed state has no saved `messages` history, derive resume recap token totals from saved session summaries when aggregate totals are missing, label steering recap token usage explicitly as input/output, stage steering command changes until explicit submit, keep steer-time review navigation available for scrolling and tab/event browsing, pause the steering countdown when the user starts reviewing prior output, align marathon text-area delete shortcuts with terminal editor expectations, simplify marathon progress chrome so tabs and the runner track do not duplicate run numbering, and remove decorative runner animation fields from persisted marathon state.
2064
-
2065
- ## 1.8.3
2066
-
2067
- ### Patch Changes
2068
-
2069
- - b6f8291: docs: add documentation for --tools flag in CLI README
2070
- - 6db3feb: Fix marathon runner emoji orientation to face right on the top row and left on the bottom row
2071
- - 951e5fc: Fix marathon track growing 1 row taller when runner emoji reaches the border
2072
-
2073
- ## 1.8.2
2074
-
2075
- ### Patch Changes
2076
-
2077
- - 3f9eb94: Import from specific @runtypelabs/shared subpaths instead of barrel export to avoid bundling React hooks, fixing "Dynamic require of react is not supported" error at runtime.
2078
-
2079
- ## 1.8.1
2080
-
2081
- ### Patch Changes
2082
-
2083
- - cbe7dbd: Bundle @runtypelabs/shared into CLI dist instead of treating it as an external npm dependency. Fixes installation failure caused by npm trying to resolve the private shared package from the registry.
2084
-
2085
- ## 1.8.0
2086
-
2087
- ### Minor Changes
2088
-
2089
- - 564d33c: Add --tools flag to marathon command for enabling built-in tools (exa, firecrawl, dalle, web search, etc.) during agent runs
2090
-
2091
- ### Patch Changes
2092
-
2093
- - 5f683ed: Disable talk command from available CLI commands
2094
- - Updated dependencies [564d33c]
2095
- - @runtypelabs/sdk@1.8.0
2096
-
2097
- ## 1.7.0
2098
-
2099
- ### Minor Changes
2100
-
2101
- - 7f95a76: Improved model selector UI with searchable model list, arrow key navigation, and all available platform models
2102
-
2103
- ## 1.6.0
2104
-
2105
- ### Minor Changes
2106
-
2107
- - 6ecb8a5: Improved model selector UI with searchable model list, arrow key navigation, and all available platform models
2108
-
2109
- ## 1.5.4
2110
-
2111
- ### Patch Changes
2112
-
2113
- - 6292d58: Ring the terminal bell when marathon steering prompt appears, notifying users that the marathon is waiting for input after each iteration
2114
-
2115
- ## 1.5.3
2116
-
2117
- ### Patch Changes
2118
-
2119
- - f9b1333: Switch SDK build from tsc (CommonJS) to tsup (dual ESM + CJS) to fix named export errors when consumed by ESM packages like the CLI on Node.js v24+
2120
- - Updated dependencies [f9b1333]
2121
- - @runtypelabs/sdk@1.7.3
2122
-
2123
- ## 1.5.2
2124
-
2125
- ### Patch Changes
2126
-
2127
- - 1b18b6d: Publish @runtypelabs/terminal-animations to npm (previously private, causing install failures for CLI users)
2128
- - Updated dependencies [1b18b6d]
2129
- - @runtypelabs/terminal-animations@0.1.1
2130
-
2131
- ## 1.5.1
2132
-
2133
- ### Patch Changes
2134
-
2135
- - a9c25a3: Fix SessionHeader test truncation by widening trackWidth
2136
-
2137
- ## 1.5.0
2138
-
2139
- ### Minor Changes
2140
-
2141
- - c746431: Decompose marathon command into focused modules and add new features
2142
- - **Decomposition**: Extract monolithic agents-task.ts (2400 lines) into 10 focused modules under `packages/cli/src/marathon/`:
2143
- - `verification.ts` - Command safety validation
2144
- - `checkpoint.ts` - File checkpoint management
2145
- - `errors.ts` - API error formatting
2146
- - `repo-discovery.ts` - File search and tree utilities
2147
- - `sandbox.ts` - Sandboxed code execution
2148
- - `local-tools.ts` - Agent tool definitions
2149
- - `state.ts` - State persistence and session management
2150
- - `index.ts` - Barrel export
2151
- - **Loop Detection** (`loop-detector.ts`): Detects repeating action subsequences (length 2-5, threshold 3 repeats) and injects steering messages to break agent loops
2152
- - **Context Offloading** (`context-offload.ts`): Saves large tool outputs (>threshold chars) to files, returning compact references to reduce context window pressure
2153
- - **Workflow Recipes** (`recipes.ts`): Declarative JSON configuration for phases, rules, model cascading, and verification settings via `.marathon/recipes/` directory
2154
- - **Scoped Rules**: Load markdown rule files from `.marathon/rules/` with optional YAML frontmatter for glob-based and phase-based scoping
2155
- - **Model Cascading**: New `--planning-model` and `--execution-model` CLI flags for using different models during research/planning vs execution phases
2156
- - **Enhanced Steering**: New `/plan`, `/status`, and `/revert` steering commands
2157
- - **Context Offloading Flag**: New `--offload-threshold` flag to enable automatic tool output offloading
2158
-
2159
- ### Patch Changes
2160
-
2161
- - c746431: Polish the Ink terminal UI with a warmer low-contrast palette, calmer chrome, themed select menus, and more cohesive markdown rendering for marathon and talk flows.
2162
- - c746431: Preserve Marathon `agent_await` payloads in the Event Stream panel so local tool wait events show their real metadata instead of `{}`.
2163
- - Updated dependencies [c746431]
2164
- - @runtypelabs/ink-components@0.2.2
2165
-
2166
- ## 1.4.0
2167
-
2168
- ### Minor Changes
2169
-
2170
- - cb689ac: Add animated loading indicator before tokens stream in marathon UI
2171
- - New `@runtypelabs/terminal-animations` package (internal) with AnimatedVariant and LoadingAnimation
2172
- - Marathon shows a randomly-selected terminal animation (neon-pulse, matrix-drip, tron variants, marathon POV, etc.) centered in the content area while waiting for first tokens
2173
- - Loading displays during idle and thinking phases when no content/reasoning/tools are shown yet
2174
-
2175
- ### Patch Changes
2176
-
2177
- - cb689ac: Improve marathon safety and verification by checkpointing original files before writes, adding rollback and guarded verification tools, and requiring successful verification before completion.
2178
- - cb689ac: Add marathon session history tabs with persisted replay snapshots.
2179
- - cb689ac: Improve interactive CLI selection prompts with arrow-key navigation in TTY mode while preserving numeric shortcuts and non-interactive fallbacks.
2180
- - cb689ac: Render marathon upgrade prompts as a dismissible modal overlay with direct billing-page shortcuts.
2181
- - cb689ac: Fix marathon resume and execution-state handling so resumed or restarted runs keep their workflow phase, advance cleanly from planning into execution, avoid reusing the wrong local-tool results across resume cycles, and stop reporting errored runs as completed.
2182
- - cb689ac: Improve marathon state handling by prompting before reusing or overwriting saved local state and adding a `--fresh` flag for explicit fresh starts.
2183
- - cb689ac: Tighten marathon execution target tracking by trimming candidate paths, ignoring scratch-file writes as targets, blocking planning/execution writes to undeclared files, sanitizing poisoned saved marathon state on resume, and surfacing clearer rate-limit details when marathon hits a 429.
2184
- - cb689ac: Improve marathon transcript readability and reasoning panel contrast.
2185
- - Updated dependencies [cb689ac]
2186
- - Updated dependencies [cb689ac]
2187
- - Updated dependencies [cb689ac]
2188
- - Updated dependencies [cb689ac]
2189
- - Updated dependencies [cb689ac]
2190
- - @runtypelabs/sdk@1.7.2
2191
-
2192
- ## 1.3.1
2193
-
2194
- ### Patch Changes
2195
-
2196
- - Updated dependencies [458711d]
2197
- - @runtypelabs/sdk@1.7.1
2198
-
2199
- ## 1.3.0
2200
-
2201
- ### Minor Changes
2202
-
2203
- - 1ef582e: feat: add OAuth2 authentication for external MCP server connections
2204
-
2205
- Adds full OAuth2 support (RFC 9728) for connecting to external MCP servers that require OAuth2 authentication. Includes:
2206
- - OAuth2 auto-discovery via .well-known/oauth-authorization-server
2207
- - PKCE authorization code flow with dynamic client registration
2208
- - Token refresh with automatic retry-on-401
2209
- - Dashboard UI with popup-based OAuth2 login flow
2210
- - CLI OAuth2 auth flow using local callback server
2211
- - Test OAuth2 MCP Worker for smoke testing
2212
-
2213
- ### Patch Changes
2214
-
2215
- - d8d5e28: fix: implement RFC 9728 three-phase OAuth2 Protected Resource Metadata discovery
2216
-
2217
- The OAuth2 discovery endpoint now follows the MCP spec's two-step protocol for servers where the Authorization Server is at a different origin than the MCP server (e.g., `mcp.linear.app` with AS at `linear.app`).
2218
-
2219
- Phase 1a: Probe MCP URL → parse `resource_metadata` from `WWW-Authenticate` on 401 → extract `authorization_servers[0]` → discover AS metadata.
2220
- Phase 1b: Try `/.well-known/oauth-protected-resource` at the MCP URL → extract `authorization_servers[0]` → discover AS metadata.
2221
- Phase 2: Origin fallback — try `/.well-known/oauth-authorization-server` at MCP server's origin (backward compat).
2222
-
2223
- Also fixes BugBot finding where the discover endpoint used `id: 'discovery_temp'` causing `refreshOAuth2Token` to persist tokens under a non-existent DB name.
2224
-
2225
- ## 1.2.1
2226
-
2227
- ### Patch Changes
2228
-
2229
- - 6d08460: chore: bump dependencies (42 minor/patch updates, 15 unused deps removed)
2230
- - Updated dependencies [6d08460]
2231
- - @runtypelabs/ink-components@0.2.1
2232
-
2233
- ## 1.2.0
2234
-
2235
- ### Minor Changes
2236
-
2237
- - 3531abb: Make Cloudflare Worker the default sandbox provider for transform-data steps, soft-deprecating QuickJS as legacy
2238
-
2239
- ### Patch Changes
2240
-
2241
- - Updated dependencies [3531abb]
2242
- - @runtypelabs/sdk@1.7.0
2243
-
2244
- ## 1.1.5
2245
-
2246
- ### Patch Changes
2247
-
2248
- - Updated dependencies [57ca1e0]
2249
- - @runtypelabs/sdk@1.6.0
2250
-
2251
- ## 1.1.4
2252
-
2253
- ### Patch Changes
2254
-
2255
- - 8976cd0: Ensure agents-task restores the primary terminal screen when Ink render fails.
2256
-
2257
- The marathon command now creates the Ink UI inside the existing try/catch block, matching talk's safety pattern. This guarantees `exitAltScreen()` is called before error output when `render()` throws, preventing errors from being written to the alternate screen buffer and disappearing when the process exits.
2258
-
2259
- - 8976cd0: Fix marathon and talk scrollback in tmux by using the alternate screen buffer
2260
-
2261
- Fullscreen Ink TUI apps (marathon, talk) now enter the terminal's alternate screen buffer before rendering. This prevents render cycles from polluting the scrollback history, which was making scrollback unusable in terminal multiplexers like tmux. When the app exits, the original terminal content is restored — matching the behavior of vim, less, and htop.
2262
-
2263
- ## 1.1.3
2264
-
2265
- ### Patch Changes
2266
-
2267
- - 077b0ff: Internal maintenance: update comments and rename imports for clarity
2268
- - Updated dependencies [077b0ff]
2269
- - @runtypelabs/sdk@1.5.1
2270
-
2271
- ## 1.1.2
2272
-
2273
- ### Patch Changes
2274
-
2275
- - 28da130: Rename @runtypelabs/ink dependency to @runtypelabs/ink-components
2276
-
2277
- The ink shared component library has been renamed from @runtypelabs/ink to
2278
- @runtypelabs/ink-components so it can be published to npm without conflicting
2279
- with the existing "ink" package name.
2280
-
2281
- - Updated dependencies [8505d96]
2282
- - Updated dependencies [a52e64d]
2283
- - Updated dependencies [a96ce5d]
2284
- - @runtypelabs/sdk@1.5.0
2285
- - @runtypelabs/ink-components@0.2.0
2286
-
2287
- ## 1.1.1
2288
-
2289
- ### Patch Changes
2290
-
2291
- - ed4d85a: Unify SSE event naming across the platform
2292
- - Rename `step_chunk` to `step_delta` (aligns with Anthropic/OpenAI/Vercel convention)
2293
- - Rename `flow_paused` to `flow_await`, `step_waiting_local` to `step_await`, `agent_paused` to `agent_await`
2294
- - Consolidate fallback events: merge `fallbacks_initiated` into `fallback_start`, unify `fallback_success`/`fallback_fail` into `fallback_complete`, rename `fallbacks_exhausted` to `fallback_exhausted`
2295
- - Add structured TypeScript interfaces for tool events (`ToolStartEventData`, `ToolCompleteEventData`, `ToolErrorEventData`)
2296
- - Formalize `tool_error` as a first-class event type with `emitToolError()` method
2297
-
2298
- All renames use dual-emit for backwards compatibility: the API sends both the new and legacy event names during the transition period. SDK consumers accept both names.
2299
-
2300
- - Updated dependencies [ed4d85a]
2301
- - @runtypelabs/sdk@1.4.0
2302
-
2303
- ## 1.1.0
2304
-
2305
- ### Minor Changes
2306
-
2307
- - e4040c8: Add 'o' keyboard shortcut in marathon mode to open the agent page in the Runtype dashboard. The status bar shows the hint and the dashboard URL is printed in the post-completion summary.
2308
-
2309
- ## 1.0.0
2310
-
2311
- ### Major Changes
2312
-
2313
- - ffab49e: BREAKING: Complete Ink TUI migration — replaced readline/inquirer with Ink for talk, init, Marathon, and all CRUD commands. Output format and interactive behavior changed. Marathon continuity: terminal steering, resume, model/tools switching.
2314
-
2315
- ### Patch Changes
2316
-
2317
- - e6846a4: Fix integration test failures in non-TTY/CI environments. Add section headers to non-TTY list output, add non-TTY path for dispatch --no-stream to prevent timeout, and improve billing portal non-TTY messages.
2318
- - Updated dependencies [ffab49e]
2319
- - @runtypelabs/sdk@1.3.0
2320
-
2321
- ## 0.2.6
2322
-
2323
- ### Patch Changes
2324
-
2325
- - b7f10cd: Fix `runtype talk` 404 and improve fetch error handling: use versioned dispatch URL (/v1/dispatch) and surface underlying cause plus local-API tip on "fetch failed".
2326
-
2327
- ## 0.2.5
2328
-
2329
- ### Patch Changes
2330
-
2331
- - d59a2d0: Remove backward-compatibility tests for auth callback; callback now expects token only.
2332
-
2333
- ## 0.2.4
2334
-
2335
- ### Patch Changes
2336
-
2337
- - 5ca7894: Fix CLI auth login in production: exchange Clerk JWT directly with the Runtype API instead of using an in-memory temp code on the dashboard (which broke on Vercel's serverless functions). The CLI callback server now accepts `token` parameter alongside legacy `code` for backward compatibility.
2338
-
2339
- ## 0.2.3
2340
-
2341
- ### Patch Changes
2342
-
2343
- - Updated dependencies [0e5a64a]
2344
- - @runtypelabs/sdk@1.2.1
2345
-
2346
- ## 0.2.2
2347
-
2348
- ### Patch Changes
2349
-
2350
- - 76c322c: Fix CLI auth login in production: use dashboard URL from config (getDashboardUrl) for token exchange instead of hardcoding localhost:3001, so `runtype auth login` works against https://use.runtype.com without setting RUNTYPE_DASHBOARD_URL.
2351
-
2352
- ## 0.2.1
2353
-
2354
- ### Patch Changes
2355
-
2356
- - b0bada9: Add `end_turn` stop reason to distinguish "turn ended" from "task completed." Non-loop agents now return `end_turn` instead of `complete`, enabling multi-session marathon execution to continue across sessions. SDK includes client-side stop-phrase detection as a fallback for non-loop agents.
2357
- - Updated dependencies [b0bada9]
2358
- - @runtypelabs/sdk@1.2.0
2359
-
2360
- ## 0.2.0
2361
-
2362
- ### Minor Changes
2363
-
2364
- - ebe3c6b: Add `agents task` command and top-level `marathon` alias for multi-session long-task agent execution with streaming output, local state persistence, and `--track` flag for dashboard sync. Rename `agents run-task` to `agents task` and `--track-progress` to `--track`.
2365
-
2366
- ### Patch Changes
2367
-
2368
- - Updated dependencies [ebe3c6b]
2369
- - @runtypelabs/sdk@1.1.0
2370
-
2371
- ## 0.1.10
2372
-
2373
- ### Patch Changes
2374
-
2375
- - Updated dependencies [aa97d84]
2376
- - @runtypelabs/sdk@1.0.2
2377
-
2378
- ## 0.1.9
2379
-
2380
- ### Patch Changes
2381
-
2382
- - Updated dependencies [de81f99]
2383
- - @runtypelabs/sdk@1.0.1
2384
-
2385
- ## 0.1.8
2386
-
2387
- ### Patch Changes
2388
-
2389
- - Updated dependencies [065de96]
2390
- - @runtypelabs/sdk@1.0.0
2391
-
2392
- ## 0.1.7
2393
-
2394
- ### Patch Changes
2395
-
2396
- - Updated dependencies [0140d17]
2397
- - @runtypelabs/sdk@0.5.0
2398
-
2399
- ## 0.1.6
2400
-
2401
- ### Patch Changes
2402
-
2403
- - Updated dependencies [cf6fcdc]
2404
- - @runtypelabs/sdk@0.4.0
2405
-
2406
- ## 0.1.5
2407
-
2408
- ### Patch Changes
2409
-
2410
- - Updated dependencies [9ec83bd]
2411
- - Updated dependencies [a63f268]
2412
- - @runtypelabs/sdk@0.3.0
2413
-
2414
- ## 0.1.4
2415
-
2416
- ### Patch Changes
2417
-
2418
- - 8506aa1: Remove private @runtypelabs/shared dependency from all public packages by inlining types and constants. This fixes npm installation errors where users couldn't install packages due to the unpublished internal shared package dependency.
2419
- - Updated dependencies [8506aa1]
2420
- - @runtypelabs/sdk@0.2.1
2421
-
2422
- ## 0.1.3
2423
-
2424
- ### Patch Changes
2425
-
2426
- - Updated dependencies
2427
- - Updated dependencies [06ac26d]
2428
- - @runtypelabs/sdk@0.2.0
2429
-
2430
- ## 0.1.2
2431
-
2432
- ### Patch Changes
2433
-
2434
- - 2eb58c6: Add official CLI tool badge to README
2435
- - Updated dependencies [2eb58c6]
2436
- - @runtypelabs/sdk@0.1.3