@runtypelabs/sdk 9.9.1 → 9.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (5) hide show
  1. package/dist/index.cjs +10554 -10324
  2. package/dist/index.d.cts +1947 -476
  3. package/dist/index.d.ts +1947 -476
  4. package/dist/index.mjs +10552 -10324
  5. package/package.json +2 -2
package/dist/index.d.cts CHANGED
@@ -536,6 +536,8 @@ interface paths {
536
536
  agentType?: "runtype" | "external" | "claude_managed";
537
537
  /** @description Deprecated alias for `agentType`. */
538
538
  agent_type?: "runtype" | "external" | "claude_managed";
539
+ /** @description Filter by code provenance. `true` returns only agents whose `lastModifiedSource` is `sdk` or `terraform`; `false` returns every other agent, including one with no recorded source. */
540
+ managedInCode?: "true" | "false";
539
541
  /** @description Response representation. `full` (default) preserves complete values; `compact` shortens every string value longer than 100 characters to a 100-character preview followed by `…`. */
540
542
  view?: "full" | "compact";
541
543
  };
@@ -562,8 +564,18 @@ interface paths {
562
564
  description: string | null;
563
565
  icon: string | null;
564
566
  id: string;
567
+ /** @description Which surface last wrote this agent (`sdk`, `terraform`, `dashboard`, `api`, `mcp`). `sdk` and `terraform` mean the agent is managed in code. `null` on an agent last written before provenance was recorded. */
568
+ lastModifiedSource: string | null;
565
569
  lastRunAt?: string | null;
566
570
  name: string;
571
+ sandboxCapabilityIssues?: {
572
+ /** @enum {string} */
573
+ code: "unsupported_sandbox_capability";
574
+ message: string;
575
+ path: string;
576
+ requested: string;
577
+ supported: string[];
578
+ }[];
567
579
  status: string;
568
580
  updatedAt: string;
569
581
  }[];
@@ -782,16 +794,25 @@ interface paths {
782
794
  };
783
795
  sandbox?: {
784
796
  enabled: boolean;
785
- /** @enum {string} */
797
+ /**
798
+ * @description Only standard-4 is supported on the hosted Agent Sandbox path; other sizes cannot be enabled.
799
+ * @enum {string}
800
+ */
786
801
  instanceType?: "standard-1" | "standard-2" | "standard-3" | "standard-4";
787
802
  networkAccess?: ("none" | "essentials" | "open") | {
788
803
  allow?: string[];
789
804
  /** @enum {string} */
790
805
  profile?: "none" | "essentials" | "open";
791
806
  };
792
- /** @enum {string} */
807
+ /**
808
+ * @description Supported: ephemeral or conversation. Named remains parseable for stored configs but cannot be enabled.
809
+ * @enum {string}
810
+ */
793
811
  persistence?: "ephemeral" | "conversation" | "named";
794
- /** @enum {string} */
812
+ /**
813
+ * @description Only runtype-sandbox is currently supported. Daytona is retained for stored-config parsing but rejected at authoring/execution.
814
+ * @enum {string}
815
+ */
795
816
  provider?: "runtype-sandbox" | "daytona";
796
817
  secretEnv?: {
797
818
  [key: string]: string;
@@ -1090,6 +1111,14 @@ interface paths {
1090
1111
  name: string;
1091
1112
  organizationId: string | null;
1092
1113
  publishedVersionId: string | null;
1114
+ sandboxCapabilityIssues?: {
1115
+ /** @enum {string} */
1116
+ code: "unsupported_sandbox_capability";
1117
+ message: string;
1118
+ path: string;
1119
+ requested: string;
1120
+ supported: string[];
1121
+ }[];
1093
1122
  status: string;
1094
1123
  updatedAt: string;
1095
1124
  userId: string;
@@ -1169,7 +1198,7 @@ interface paths {
1169
1198
  put?: never;
1170
1199
  /**
1171
1200
  * Ensure agent (config-as-code converge)
1172
- * @description Idempotently converge a repo-defined agent definition onto the platform. Identity is name + account scope. Hash-only probes skip the payload in the steady state (a miss is a normal 200 `definitionRequired` response, not an error); full requests create the agent or append a new version when the canonical content hash differs. Non-executing: never touches the execution pipeline. The response always carries the server-computed canonical hash. Set dryRun to plan without writing (CI drift gate), onConflict: "overwrite" to converge over dashboard/API edits, and release: "publish" to also re-aim the published-version pointer.
1201
+ * @description Idempotently converge a repo-defined agent definition onto the platform. Identity is name + account scope. Hash-only probes skip the payload in the steady state (a miss is a normal 200 `definitionRequired` response, not an error); full requests create the agent or append a new version when the canonical content hash differs. Non-executing: never touches the execution pipeline. The response always carries the server-computed canonical hash. Set dryRun to plan without writing (CI drift gate), onConflict: "overwrite" to converge over dashboard/API edits, and deploy: { alias } to atomically save and activate the definition at a release alias (release: "publish" / "none" remain compatibility spellings of deploy live / save-only, and mixing the two is a 400). A non-live deploy is alias-scoped: it appends a candidate version and moves that one pointer, and never writes the agent row, its config hash, its capabilities, its draft pointer or its live pointer, so "unchanged" is decided against the hash stored on the alias rather than against the live row. onConflict, expectedRemoteHash and managed-by-code provenance describe live-row writes and therefore do not apply to a non-live deploy; remoteHash in the response is the hash the alias carried before. The one exception is an agent name that does not exist yet: the create is the live row (there is nothing to preview against), and live is still not aimed. Optional version.label / version.notes stamp provenance (a git SHA, a release tag) on the appended version row.
1173
1202
  */
1174
1203
  post: {
1175
1204
  parameters: {
@@ -1276,16 +1305,25 @@ interface paths {
1276
1305
  };
1277
1306
  sandbox?: {
1278
1307
  enabled: boolean;
1279
- /** @enum {string} */
1308
+ /**
1309
+ * @description Only standard-4 is supported on the hosted Agent Sandbox path; other sizes cannot be enabled.
1310
+ * @enum {string}
1311
+ */
1280
1312
  instanceType?: "standard-1" | "standard-2" | "standard-3" | "standard-4";
1281
1313
  networkAccess?: ("none" | "essentials" | "open") | {
1282
1314
  allow?: string[];
1283
1315
  /** @enum {string} */
1284
1316
  profile?: "none" | "essentials" | "open";
1285
1317
  };
1286
- /** @enum {string} */
1318
+ /**
1319
+ * @description Supported: ephemeral or conversation. Named remains parseable for stored configs but cannot be enabled.
1320
+ * @enum {string}
1321
+ */
1287
1322
  persistence?: "ephemeral" | "conversation" | "named";
1288
- /** @enum {string} */
1323
+ /**
1324
+ * @description Only runtype-sandbox is currently supported. Daytona is retained for stored-config parsing but rejected at authoring/execution.
1325
+ * @enum {string}
1326
+ */
1289
1327
  provider?: "runtype-sandbox" | "daytona";
1290
1328
  secretEnv?: {
1291
1329
  [key: string]: string;
@@ -1456,13 +1494,18 @@ interface paths {
1456
1494
  icon?: string;
1457
1495
  name: string;
1458
1496
  };
1497
+ deploy?: components["schemas"]["AgentEnsureDeployTarget"];
1459
1498
  dryRun?: boolean;
1460
1499
  expectedRemoteHash?: string;
1461
1500
  name: string;
1462
1501
  /** @enum {string} */
1463
1502
  onConflict?: "error" | "overwrite";
1464
- /** @enum {string} */
1503
+ /**
1504
+ * @description Compatibility input, translated to a deploy: "publish" activates live, "none" saves without activating. Prefer deploy.
1505
+ * @enum {string}
1506
+ */
1465
1507
  release?: "none" | "publish";
1508
+ version?: components["schemas"]["EnsureVersionMetadata"];
1466
1509
  };
1467
1510
  };
1468
1511
  };
@@ -1476,13 +1519,13 @@ interface paths {
1476
1519
  "application/json": components["schemas"]["AgentEnsureResponse"];
1477
1520
  };
1478
1521
  };
1479
- /** @description Validation error (or unsupported agent type for ensure) */
1522
+ /** @description Validation error, unsupported agent type, or code alias_requires_organization when a non-live deploy targets a personal-scope agent */
1480
1523
  400: {
1481
1524
  headers: {
1482
1525
  [name: string]: unknown;
1483
1526
  };
1484
1527
  content: {
1485
- "application/json": components["schemas"]["Error"];
1528
+ "application/json": components["schemas"]["AgentEnsureBadRequest"];
1486
1529
  };
1487
1530
  };
1488
1531
  /** @description Unauthorized */
@@ -1521,13 +1564,13 @@ interface paths {
1521
1564
  "application/json": components["schemas"]["AgentEnsureHashMismatch"];
1522
1565
  };
1523
1566
  };
1524
- /** @description Internal server error */
1567
+ /** @description Internal server error, or code alias_activation_failed when a non-live activation could not be applied (nothing was written) */
1525
1568
  500: {
1526
1569
  headers: {
1527
1570
  [name: string]: unknown;
1528
1571
  };
1529
1572
  content: {
1530
- "application/json": components["schemas"]["Error"];
1573
+ "application/json": components["schemas"]["AgentEnsureServerError"];
1531
1574
  };
1532
1575
  };
1533
1576
  };
@@ -1822,6 +1865,14 @@ interface paths {
1822
1865
  name: string;
1823
1866
  organizationId: string | null;
1824
1867
  publishedVersionId: string | null;
1868
+ sandboxCapabilityIssues?: {
1869
+ /** @enum {string} */
1870
+ code: "unsupported_sandbox_capability";
1871
+ message: string;
1872
+ path: string;
1873
+ requested: string;
1874
+ supported: string[];
1875
+ }[];
1825
1876
  status: string;
1826
1877
  updatedAt: string;
1827
1878
  userId: string;
@@ -2030,16 +2081,25 @@ interface paths {
2030
2081
  };
2031
2082
  sandbox?: {
2032
2083
  enabled: boolean;
2033
- /** @enum {string} */
2084
+ /**
2085
+ * @description Only standard-4 is supported on the hosted Agent Sandbox path; other sizes cannot be enabled.
2086
+ * @enum {string}
2087
+ */
2034
2088
  instanceType?: "standard-1" | "standard-2" | "standard-3" | "standard-4";
2035
2089
  networkAccess?: ("none" | "essentials" | "open") | {
2036
2090
  allow?: string[];
2037
2091
  /** @enum {string} */
2038
2092
  profile?: "none" | "essentials" | "open";
2039
2093
  };
2040
- /** @enum {string} */
2094
+ /**
2095
+ * @description Supported: ephemeral or conversation. Named remains parseable for stored configs but cannot be enabled.
2096
+ * @enum {string}
2097
+ */
2041
2098
  persistence?: "ephemeral" | "conversation" | "named";
2042
- /** @enum {string} */
2099
+ /**
2100
+ * @description Only runtype-sandbox is currently supported. Daytona is retained for stored-config parsing but rejected at authoring/execution.
2101
+ * @enum {string}
2102
+ */
2043
2103
  provider?: "runtype-sandbox" | "daytona";
2044
2104
  secretEnv?: {
2045
2105
  [key: string]: string;
@@ -2325,6 +2385,14 @@ interface paths {
2325
2385
  name: string;
2326
2386
  organizationId: string | null;
2327
2387
  publishedVersionId: string | null;
2388
+ sandboxCapabilityIssues?: {
2389
+ /** @enum {string} */
2390
+ code: "unsupported_sandbox_capability";
2391
+ message: string;
2392
+ path: string;
2393
+ requested: string;
2394
+ supported: string[];
2395
+ }[];
2328
2396
  status: string;
2329
2397
  updatedAt: string;
2330
2398
  userId: string;
@@ -2466,45 +2534,59 @@ interface paths {
2466
2534
  patch?: never;
2467
2535
  trace?: never;
2468
2536
  };
2469
- "/v1/agents/{id}/approve": {
2537
+ "/v1/agents/{id}/aliases": {
2470
2538
  parameters: {
2471
2539
  query?: never;
2472
2540
  header?: never;
2473
2541
  path?: never;
2474
2542
  cookie?: never;
2475
2543
  };
2476
- get?: never;
2477
- put?: never;
2478
2544
  /**
2479
- * Resolve a pending agent tool approval
2480
- * @description Resolve a pending tool approval on a paused agent execution (approved/denied). Streams a Server-Sent Events response when streamResponse is true (default); otherwise returns a JSON result.
2545
+ * List release aliases for an agent
2546
+ * @description List the named pointers that select which immutable version of this agent runs. `live` sorts first, then the preview aliases by name. Archived aliases are omitted unless `includeArchived=true`. Omitting `limit` returns every pointer; supplying it pages through the same order with `cursor`.
2481
2547
  */
2482
- post: {
2548
+ get: {
2483
2549
  parameters: {
2484
- query?: never;
2550
+ query?: {
2551
+ /** @description Pass `true` to include archived aliases, which never resolve for execution. */
2552
+ includeArchived?: string;
2553
+ /** @description Maximum aliases to return. Omit for the full set. */
2554
+ limit?: string;
2555
+ /** @description The `nextCursor` from a previous page of this same order. */
2556
+ cursor?: string;
2557
+ };
2485
2558
  header?: never;
2486
2559
  path: {
2487
2560
  id: string;
2488
2561
  };
2489
2562
  cookie?: never;
2490
2563
  };
2491
- requestBody?: {
2492
- content: {
2493
- "application/json": components["schemas"]["AgentApproveRequest"];
2494
- };
2495
- };
2564
+ requestBody?: never;
2496
2565
  responses: {
2497
- /** @description Server-Sent Events stream of agent execution events (or a JSON result when streamResponse is false) */
2566
+ /** @description Release aliases */
2498
2567
  200: {
2499
2568
  headers: {
2500
2569
  [name: string]: unknown;
2501
2570
  };
2502
2571
  content: {
2503
- "application/json": components["schemas"]["AgentApproveContinuationJsonResponse"];
2504
- "text/event-stream": unknown;
2572
+ "application/json": {
2573
+ data: {
2574
+ alias: string;
2575
+ archivedAt: string | null;
2576
+ contentHash: string | null;
2577
+ createdAt: string;
2578
+ expiresAt: string | null;
2579
+ label: string | null;
2580
+ revision: number;
2581
+ updatedAt: string;
2582
+ versionId: string;
2583
+ versionNumber: number | null;
2584
+ }[];
2585
+ nextCursor: string | null;
2586
+ };
2505
2587
  };
2506
2588
  };
2507
- /** @description Invalid request body */
2589
+ /** @description Invalid request */
2508
2590
  400: {
2509
2591
  headers: {
2510
2592
  [name: string]: unknown;
@@ -2522,15 +2604,6 @@ interface paths {
2522
2604
  "application/json": components["schemas"]["Error"];
2523
2605
  };
2524
2606
  };
2525
- /** @description Platform-key spend limit exceeded during a buffered continuation */
2526
- 402: {
2527
- headers: {
2528
- [name: string]: unknown;
2529
- };
2530
- content: {
2531
- "application/json": components["schemas"]["AgentApprovalContinuationJsonResponse"];
2532
- };
2533
- };
2534
2607
  /** @description Insufficient permissions */
2535
2608
  403: {
2536
2609
  headers: {
@@ -2540,7 +2613,7 @@ interface paths {
2540
2613
  "application/json": components["schemas"]["Error"];
2541
2614
  };
2542
2615
  };
2543
- /** @description Agent or execution not found */
2616
+ /** @description Agent not found */
2544
2617
  404: {
2545
2618
  headers: {
2546
2619
  [name: string]: unknown;
@@ -2549,24 +2622,6 @@ interface paths {
2549
2622
  "application/json": components["schemas"]["Error"];
2550
2623
  };
2551
2624
  };
2552
- /** @description Execution is not awaiting this approval or cannot be resumed here */
2553
- 409: {
2554
- headers: {
2555
- [name: string]: unknown;
2556
- };
2557
- content: {
2558
- "application/json": components["schemas"]["Error"];
2559
- };
2560
- };
2561
- /** @description The paused execution was armed by the retired legacy flow engine and cannot be resumed (LEGACY_PAUSE_UNRESUMABLE); re-run the flow */
2562
- 410: {
2563
- headers: {
2564
- [name: string]: unknown;
2565
- };
2566
- content: {
2567
- "application/json": components["schemas"]["Error"];
2568
- };
2569
- };
2570
2625
  /** @description Internal server error */
2571
2626
  500: {
2572
2627
  headers: {
@@ -2578,70 +2633,60 @@ interface paths {
2578
2633
  };
2579
2634
  };
2580
2635
  };
2636
+ put?: never;
2637
+ post?: never;
2581
2638
  delete?: never;
2582
2639
  options?: never;
2583
2640
  head?: never;
2584
2641
  patch?: never;
2585
2642
  trace?: never;
2586
2643
  };
2587
- "/v1/agents/{id}/capabilities": {
2644
+ "/v1/agents/{id}/aliases/{alias}": {
2588
2645
  parameters: {
2589
2646
  query?: never;
2590
2647
  header?: never;
2591
2648
  path?: never;
2592
2649
  cookie?: never;
2593
2650
  };
2594
- get?: never;
2595
- put?: never;
2596
2651
  /**
2597
- * Add capability to agent
2598
- * @description Add a capability (flow, sub-agent, or tool binding) to an agent.
2652
+ * Get one release alias
2653
+ * @description Read one pointer. A missing or archived alias answers a structured 404 naming the alias; it never falls back to live.
2599
2654
  */
2600
- post: {
2655
+ get: {
2601
2656
  parameters: {
2602
- query?: never;
2657
+ query?: {
2658
+ includeArchived?: string;
2659
+ };
2603
2660
  header?: never;
2604
2661
  path: {
2605
2662
  id: string;
2663
+ alias: string;
2606
2664
  };
2607
2665
  cookie?: never;
2608
2666
  };
2609
- requestBody?: {
2610
- content: {
2611
- "application/json": {
2612
- enabled?: boolean;
2613
- flowId?: string;
2614
- parametersSchema?: unknown;
2615
- subAgentId?: string;
2616
- toolDescription?: string;
2617
- toolId?: string;
2618
- toolName: string;
2619
- };
2620
- };
2621
- };
2667
+ requestBody?: never;
2622
2668
  responses: {
2623
- /** @description Capability added */
2624
- 201: {
2669
+ /** @description Release alias */
2670
+ 200: {
2625
2671
  headers: {
2626
2672
  [name: string]: unknown;
2627
2673
  };
2628
2674
  content: {
2629
2675
  "application/json": {
2630
- agentId?: string;
2631
- createdAt?: string;
2632
- displayOrder: number | null;
2633
- enabled: boolean;
2634
- flowId: string | null;
2635
- id: string;
2636
- parametersSchema?: unknown;
2637
- subAgentId: string | null;
2638
- toolDescription: string | null;
2639
- toolId: string | null;
2640
- toolName: string;
2676
+ alias: string;
2677
+ archivedAt: string | null;
2678
+ contentHash: string | null;
2679
+ createdAt: string;
2680
+ expiresAt: string | null;
2681
+ label: string | null;
2682
+ revision: number;
2683
+ updatedAt: string;
2684
+ versionId: string;
2685
+ versionNumber: number | null;
2641
2686
  };
2642
2687
  };
2643
2688
  };
2644
- /** @description Validation error */
2689
+ /** @description Invalid request */
2645
2690
  400: {
2646
2691
  headers: {
2647
2692
  [name: string]: unknown;
@@ -2668,22 +2713,18 @@ interface paths {
2668
2713
  "application/json": components["schemas"]["Error"];
2669
2714
  };
2670
2715
  };
2671
- /** @description Agent not found */
2716
+ /** @description Alias or agent not found */
2672
2717
  404: {
2673
2718
  headers: {
2674
2719
  [name: string]: unknown;
2675
2720
  };
2676
2721
  content: {
2677
- "application/json": components["schemas"]["Error"];
2678
- };
2679
- };
2680
- /** @description Tool name already exists for this agent */
2681
- 409: {
2682
- headers: {
2683
- [name: string]: unknown;
2684
- };
2685
- content: {
2686
- "application/json": components["schemas"]["Error"];
2722
+ "application/json": components["schemas"]["Error"] & {
2723
+ agentId: string;
2724
+ alias: string;
2725
+ /** @enum {string} */
2726
+ code: "alias_not_found";
2727
+ };
2687
2728
  };
2688
2729
  };
2689
2730
  /** @description Internal server error */
@@ -2697,138 +2738,887 @@ interface paths {
2697
2738
  };
2698
2739
  };
2699
2740
  };
2700
- delete?: never;
2701
- options?: never;
2702
- head?: never;
2703
- patch?: never;
2704
- trace?: never;
2705
- };
2706
- "/v1/agents/{id}/capabilities/{capabilityId}": {
2707
- parameters: {
2708
- query?: never;
2709
- header?: never;
2710
- path?: never;
2711
- cookie?: never;
2712
- };
2713
- get?: never;
2714
- put?: never;
2715
- post?: never;
2716
2741
  /**
2717
- * Remove capability from agent
2718
- * @description Remove a capability (flow, sub-agent, or tool binding) from an agent.
2742
+ * Activate a version at a release alias
2743
+ * @description Aim one alias at one immutable version of the same agent, appending a deployment receipt in the same transaction. Moving an existing `live` pointer requires the AGENTS:DEPLOY:LIVE scope and an `If-Match` revision; preview aliases require AGENTS:DEPLOY:PREVIEW. Dependency references the version names are fingerprinted first, and an unresolvable reference refuses the activation.
2719
2744
  */
2720
- delete: {
2745
+ put: {
2721
2746
  parameters: {
2722
2747
  query?: never;
2723
- header?: never;
2748
+ header?: {
2749
+ /** @description The alias revision this write expects. Required on a `live` alias that already exists (428 without it) and refused with 412 when the stored revision has moved on. Optional on preview aliases and on the first `live` deployment, which has no revision yet. */
2750
+ "if-match"?: string;
2751
+ /** @description Replay key. Repeating an activation with the same key returns the receipt the first call produced instead of moving the pointer twice. */
2752
+ "idempotency-key"?: string;
2753
+ };
2724
2754
  path: {
2725
2755
  id: string;
2726
- capabilityId: string;
2756
+ alias: string;
2727
2757
  };
2728
2758
  cookie?: never;
2729
2759
  };
2730
- requestBody?: never;
2731
- responses: {
2732
- /** @description Capability removed */
2733
- 200: {
2734
- headers: {
2735
- [name: string]: unknown;
2736
- };
2737
- content: {
2738
- "application/json": {
2739
- success: boolean;
2740
- };
2741
- };
2742
- };
2743
- /** @description Invalid agent or capability ID */
2744
- 400: {
2745
- headers: {
2746
- [name: string]: unknown;
2747
- };
2748
- content: {
2749
- "application/json": components["schemas"]["Error"];
2750
- };
2751
- };
2752
- /** @description Unauthorized */
2753
- 401: {
2754
- headers: {
2755
- [name: string]: unknown;
2756
- };
2757
- content: {
2758
- "application/json": components["schemas"]["Error"];
2759
- };
2760
- };
2761
- /** @description Agent or capability not found */
2762
- 404: {
2763
- headers: {
2764
- [name: string]: unknown;
2765
- };
2766
- content: {
2767
- "application/json": components["schemas"]["Error"];
2768
- };
2769
- };
2770
- /** @description Internal server error */
2771
- 500: {
2772
- headers: {
2773
- [name: string]: unknown;
2774
- };
2775
- content: {
2776
- "application/json": components["schemas"]["Error"];
2760
+ requestBody?: {
2761
+ content: {
2762
+ "application/json": {
2763
+ /** @description Why this deployment happened, recorded on the receipt for humans. Context only: nothing branches on it. */
2764
+ reason?: string;
2765
+ versionId: string;
2777
2766
  };
2778
2767
  };
2779
2768
  };
2780
- };
2781
- options?: never;
2782
- head?: never;
2783
- patch?: never;
2784
- trace?: never;
2785
- };
2786
- "/v1/agents/{id}/conversations/{conversationId}/events": {
2787
- parameters: {
2788
- query?: never;
2789
- header?: never;
2790
- path?: never;
2791
- cookie?: never;
2792
- };
2793
- /**
2794
- * List internal agent conversation events
2795
- * @description List provenance-bearing internal events posted to a saved agent conversation, including detached subagent completion activities. These events are never represented as human messages.
2796
- */
2797
- get: {
2798
- parameters: {
2799
- query?: {
2800
- limit?: string;
2801
- after?: string;
2802
- };
2803
- header?: never;
2804
- path: {
2805
- id: string;
2806
- conversationId: string;
2807
- };
2808
- cookie?: never;
2809
- };
2810
- requestBody?: never;
2811
2769
  responses: {
2812
- /** @description Conversation event list in chronological order */
2770
+ /** @description Alias activated */
2813
2771
  200: {
2814
2772
  headers: {
2815
2773
  [name: string]: unknown;
2816
2774
  };
2817
2775
  content: {
2818
2776
  "application/json": {
2819
- data: {
2820
- consumedAt: string | null;
2821
- createdAt: string;
2822
- eventKind: string;
2823
- eventRevision: number;
2824
- id: string;
2825
- /** @enum {string} */
2826
- notificationMode: "narrate" | "react";
2827
- payload: {
2828
- [key: string]: unknown;
2829
- };
2830
- runId: string;
2831
- }[];
2777
+ alias: string;
2778
+ changed: boolean;
2779
+ receiptId: string;
2780
+ revision: number;
2781
+ versionId: string;
2782
+ versionNumber: number | null;
2783
+ };
2784
+ };
2785
+ };
2786
+ /** @description Invalid request */
2787
+ 400: {
2788
+ headers: {
2789
+ [name: string]: unknown;
2790
+ };
2791
+ content: {
2792
+ "application/json": components["schemas"]["Error"];
2793
+ };
2794
+ };
2795
+ /** @description Unauthorized */
2796
+ 401: {
2797
+ headers: {
2798
+ [name: string]: unknown;
2799
+ };
2800
+ content: {
2801
+ "application/json": components["schemas"]["Error"];
2802
+ };
2803
+ };
2804
+ /** @description Insufficient permissions */
2805
+ 403: {
2806
+ headers: {
2807
+ [name: string]: unknown;
2808
+ };
2809
+ content: {
2810
+ "application/json": components["schemas"]["Error"];
2811
+ };
2812
+ };
2813
+ /** @description Agent or version not found */
2814
+ 404: {
2815
+ headers: {
2816
+ [name: string]: unknown;
2817
+ };
2818
+ content: {
2819
+ "application/json": components["schemas"]["Error"];
2820
+ };
2821
+ };
2822
+ /** @description Idempotency key already used for a different activation */
2823
+ 409: {
2824
+ headers: {
2825
+ [name: string]: unknown;
2826
+ };
2827
+ content: {
2828
+ "application/json": components["schemas"]["Error"] & {
2829
+ /** @enum {string} */
2830
+ code: "idempotency_key_reused";
2831
+ };
2832
+ };
2833
+ };
2834
+ /** @description Alias revision mismatch */
2835
+ 412: {
2836
+ headers: {
2837
+ [name: string]: unknown;
2838
+ };
2839
+ content: {
2840
+ "application/json": components["schemas"]["Error"] & {
2841
+ actual: number | null;
2842
+ /** @enum {string} */
2843
+ code: "alias_revision_mismatch";
2844
+ expected: number;
2845
+ };
2846
+ };
2847
+ };
2848
+ /** @description Version references a dependency that no longer resolves */
2849
+ 422: {
2850
+ headers: {
2851
+ [name: string]: unknown;
2852
+ };
2853
+ content: {
2854
+ "application/json": components["schemas"]["Error"] & {
2855
+ /** @enum {string} */
2856
+ code: "alias_dependency_unresolved";
2857
+ refs: string[];
2858
+ };
2859
+ };
2860
+ };
2861
+ /** @description If-Match required for the live alias */
2862
+ 428: {
2863
+ headers: {
2864
+ [name: string]: unknown;
2865
+ };
2866
+ content: {
2867
+ "application/json": components["schemas"]["Error"];
2868
+ };
2869
+ };
2870
+ /** @description Internal server error */
2871
+ 500: {
2872
+ headers: {
2873
+ [name: string]: unknown;
2874
+ };
2875
+ content: {
2876
+ "application/json": components["schemas"]["Error"];
2877
+ };
2878
+ };
2879
+ };
2880
+ };
2881
+ post?: never;
2882
+ /**
2883
+ * Archive a release alias
2884
+ * @description Archive a preview alias: it stops resolving for new executions, keeps its deployment history, and does not interrupt admitted runs. The row is never deleted, so a later activation revives the same pointer. `live` cannot be archived.
2885
+ */
2886
+ delete: {
2887
+ parameters: {
2888
+ query?: never;
2889
+ header?: {
2890
+ /** @description The alias revision this write expects. Required on a `live` alias that already exists (428 without it) and refused with 412 when the stored revision has moved on. Optional on preview aliases and on the first `live` deployment, which has no revision yet. */
2891
+ "if-match"?: string;
2892
+ /** @description Replay key. Repeating an activation with the same key returns the receipt the first call produced instead of moving the pointer twice. */
2893
+ "idempotency-key"?: string;
2894
+ };
2895
+ path: {
2896
+ id: string;
2897
+ alias: string;
2898
+ };
2899
+ cookie?: never;
2900
+ };
2901
+ requestBody?: never;
2902
+ responses: {
2903
+ /** @description Alias archived */
2904
+ 200: {
2905
+ headers: {
2906
+ [name: string]: unknown;
2907
+ };
2908
+ content: {
2909
+ "application/json": {
2910
+ alias: string;
2911
+ /** @enum {boolean} */
2912
+ archived: true;
2913
+ receiptId: string;
2914
+ revision: number;
2915
+ };
2916
+ };
2917
+ };
2918
+ /** @description Invalid request */
2919
+ 400: {
2920
+ headers: {
2921
+ [name: string]: unknown;
2922
+ };
2923
+ content: {
2924
+ "application/json": components["schemas"]["Error"];
2925
+ };
2926
+ };
2927
+ /** @description Unauthorized */
2928
+ 401: {
2929
+ headers: {
2930
+ [name: string]: unknown;
2931
+ };
2932
+ content: {
2933
+ "application/json": components["schemas"]["Error"];
2934
+ };
2935
+ };
2936
+ /** @description Insufficient permissions */
2937
+ 403: {
2938
+ headers: {
2939
+ [name: string]: unknown;
2940
+ };
2941
+ content: {
2942
+ "application/json": components["schemas"]["Error"];
2943
+ };
2944
+ };
2945
+ /** @description Alias or agent not found */
2946
+ 404: {
2947
+ headers: {
2948
+ [name: string]: unknown;
2949
+ };
2950
+ content: {
2951
+ "application/json": components["schemas"]["Error"] & {
2952
+ agentId: string;
2953
+ alias: string;
2954
+ /** @enum {string} */
2955
+ code: "alias_not_found";
2956
+ };
2957
+ };
2958
+ };
2959
+ /** @description The live alias cannot be archived */
2960
+ 409: {
2961
+ headers: {
2962
+ [name: string]: unknown;
2963
+ };
2964
+ content: {
2965
+ "application/json": components["schemas"]["Error"] & {
2966
+ /** @enum {string} */
2967
+ code: "alias_archive_forbidden";
2968
+ };
2969
+ };
2970
+ };
2971
+ /** @description Alias revision mismatch */
2972
+ 412: {
2973
+ headers: {
2974
+ [name: string]: unknown;
2975
+ };
2976
+ content: {
2977
+ "application/json": components["schemas"]["Error"] & {
2978
+ actual: number | null;
2979
+ /** @enum {string} */
2980
+ code: "alias_revision_mismatch";
2981
+ expected: number;
2982
+ };
2983
+ };
2984
+ };
2985
+ /** @description Internal server error */
2986
+ 500: {
2987
+ headers: {
2988
+ [name: string]: unknown;
2989
+ };
2990
+ content: {
2991
+ "application/json": components["schemas"]["Error"];
2992
+ };
2993
+ };
2994
+ };
2995
+ };
2996
+ options?: never;
2997
+ head?: never;
2998
+ patch?: never;
2999
+ trace?: never;
3000
+ };
3001
+ "/v1/agents/{id}/aliases/{alias}/rollback": {
3002
+ parameters: {
3003
+ query?: never;
3004
+ header?: never;
3005
+ path?: never;
3006
+ cookie?: never;
3007
+ };
3008
+ get?: never;
3009
+ put?: never;
3010
+ /**
3011
+ * Roll a release alias back to its previous version
3012
+ * @description Re-aim an alias at the version recorded as `previousVersionId` on its most recent pointer-moving receipt, walking `steps` receipts back. Writes a `rollback` receipt. Rolling back `live` follows the same scope and `If-Match` rules as activation, and restores configuration only: external data and side effects are not rolled back.
3013
+ */
3014
+ post: {
3015
+ parameters: {
3016
+ query?: never;
3017
+ header?: {
3018
+ /** @description The alias revision this write expects. Required on a `live` alias that already exists (428 without it) and refused with 412 when the stored revision has moved on. Optional on preview aliases and on the first `live` deployment, which has no revision yet. */
3019
+ "if-match"?: string;
3020
+ /** @description Replay key. Repeating an activation with the same key returns the receipt the first call produced instead of moving the pointer twice. */
3021
+ "idempotency-key"?: string;
3022
+ };
3023
+ path: {
3024
+ id: string;
3025
+ alias: string;
3026
+ };
3027
+ cookie?: never;
3028
+ };
3029
+ requestBody?: {
3030
+ content: {
3031
+ "application/json": {
3032
+ reason?: string;
3033
+ /** @default 1 */
3034
+ steps?: number;
3035
+ };
3036
+ };
3037
+ };
3038
+ responses: {
3039
+ /** @description Alias rolled back */
3040
+ 200: {
3041
+ headers: {
3042
+ [name: string]: unknown;
3043
+ };
3044
+ content: {
3045
+ "application/json": {
3046
+ alias: string;
3047
+ changed: boolean;
3048
+ receiptId: string;
3049
+ revision: number;
3050
+ versionId: string;
3051
+ versionNumber: number | null;
3052
+ };
3053
+ };
3054
+ };
3055
+ /** @description Invalid request */
3056
+ 400: {
3057
+ headers: {
3058
+ [name: string]: unknown;
3059
+ };
3060
+ content: {
3061
+ "application/json": components["schemas"]["Error"];
3062
+ };
3063
+ };
3064
+ /** @description Unauthorized */
3065
+ 401: {
3066
+ headers: {
3067
+ [name: string]: unknown;
3068
+ };
3069
+ content: {
3070
+ "application/json": components["schemas"]["Error"];
3071
+ };
3072
+ };
3073
+ /** @description Insufficient permissions */
3074
+ 403: {
3075
+ headers: {
3076
+ [name: string]: unknown;
3077
+ };
3078
+ content: {
3079
+ "application/json": components["schemas"]["Error"];
3080
+ };
3081
+ };
3082
+ /** @description Alias, agent, or rollback target not found */
3083
+ 404: {
3084
+ headers: {
3085
+ [name: string]: unknown;
3086
+ };
3087
+ content: {
3088
+ "application/json": components["schemas"]["Error"] & {
3089
+ agentId: string;
3090
+ alias: string;
3091
+ /** @enum {string} */
3092
+ code: "alias_not_found";
3093
+ };
3094
+ };
3095
+ };
3096
+ /** @description Alias revision mismatch */
3097
+ 412: {
3098
+ headers: {
3099
+ [name: string]: unknown;
3100
+ };
3101
+ content: {
3102
+ "application/json": components["schemas"]["Error"] & {
3103
+ actual: number | null;
3104
+ /** @enum {string} */
3105
+ code: "alias_revision_mismatch";
3106
+ expected: number;
3107
+ };
3108
+ };
3109
+ };
3110
+ /** @description Target version references a dependency that no longer resolves */
3111
+ 422: {
3112
+ headers: {
3113
+ [name: string]: unknown;
3114
+ };
3115
+ content: {
3116
+ "application/json": components["schemas"]["Error"] & {
3117
+ /** @enum {string} */
3118
+ code: "alias_dependency_unresolved";
3119
+ refs: string[];
3120
+ };
3121
+ };
3122
+ };
3123
+ /** @description If-Match required for the live alias */
3124
+ 428: {
3125
+ headers: {
3126
+ [name: string]: unknown;
3127
+ };
3128
+ content: {
3129
+ "application/json": components["schemas"]["Error"];
3130
+ };
3131
+ };
3132
+ /** @description Internal server error */
3133
+ 500: {
3134
+ headers: {
3135
+ [name: string]: unknown;
3136
+ };
3137
+ content: {
3138
+ "application/json": components["schemas"]["Error"];
3139
+ };
3140
+ };
3141
+ };
3142
+ };
3143
+ delete?: never;
3144
+ options?: never;
3145
+ head?: never;
3146
+ patch?: never;
3147
+ trace?: never;
3148
+ };
3149
+ "/v1/agents/{id}/approve": {
3150
+ parameters: {
3151
+ query?: never;
3152
+ header?: never;
3153
+ path?: never;
3154
+ cookie?: never;
3155
+ };
3156
+ get?: never;
3157
+ put?: never;
3158
+ /**
3159
+ * Resolve a pending agent tool approval
3160
+ * @description Resolve a pending tool approval on a paused agent execution (approved/denied). Streams a Server-Sent Events response when streamResponse is true (default); otherwise returns a JSON result.
3161
+ */
3162
+ post: {
3163
+ parameters: {
3164
+ query?: never;
3165
+ header?: never;
3166
+ path: {
3167
+ id: string;
3168
+ };
3169
+ cookie?: never;
3170
+ };
3171
+ requestBody?: {
3172
+ content: {
3173
+ "application/json": components["schemas"]["AgentApproveRequest"];
3174
+ };
3175
+ };
3176
+ responses: {
3177
+ /** @description Server-Sent Events stream of agent execution events (or a JSON result when streamResponse is false) */
3178
+ 200: {
3179
+ headers: {
3180
+ [name: string]: unknown;
3181
+ };
3182
+ content: {
3183
+ "application/json": components["schemas"]["AgentApproveContinuationJsonResponse"];
3184
+ "text/event-stream": unknown;
3185
+ };
3186
+ };
3187
+ /** @description Invalid request body */
3188
+ 400: {
3189
+ headers: {
3190
+ [name: string]: unknown;
3191
+ };
3192
+ content: {
3193
+ "application/json": components["schemas"]["Error"];
3194
+ };
3195
+ };
3196
+ /** @description Unauthorized */
3197
+ 401: {
3198
+ headers: {
3199
+ [name: string]: unknown;
3200
+ };
3201
+ content: {
3202
+ "application/json": components["schemas"]["Error"];
3203
+ };
3204
+ };
3205
+ /** @description Platform-key spend limit exceeded during a buffered continuation */
3206
+ 402: {
3207
+ headers: {
3208
+ [name: string]: unknown;
3209
+ };
3210
+ content: {
3211
+ "application/json": components["schemas"]["AgentApprovalContinuationJsonResponse"];
3212
+ };
3213
+ };
3214
+ /** @description Insufficient permissions */
3215
+ 403: {
3216
+ headers: {
3217
+ [name: string]: unknown;
3218
+ };
3219
+ content: {
3220
+ "application/json": components["schemas"]["Error"];
3221
+ };
3222
+ };
3223
+ /** @description Agent or execution not found */
3224
+ 404: {
3225
+ headers: {
3226
+ [name: string]: unknown;
3227
+ };
3228
+ content: {
3229
+ "application/json": components["schemas"]["Error"];
3230
+ };
3231
+ };
3232
+ /** @description Execution is not awaiting this approval or cannot be resumed here */
3233
+ 409: {
3234
+ headers: {
3235
+ [name: string]: unknown;
3236
+ };
3237
+ content: {
3238
+ "application/json": components["schemas"]["Error"];
3239
+ };
3240
+ };
3241
+ /** @description The paused execution was armed by the retired legacy flow engine and cannot be resumed (LEGACY_PAUSE_UNRESUMABLE); re-run the flow */
3242
+ 410: {
3243
+ headers: {
3244
+ [name: string]: unknown;
3245
+ };
3246
+ content: {
3247
+ "application/json": components["schemas"]["Error"];
3248
+ };
3249
+ };
3250
+ /** @description Internal server error */
3251
+ 500: {
3252
+ headers: {
3253
+ [name: string]: unknown;
3254
+ };
3255
+ content: {
3256
+ "application/json": components["schemas"]["Error"];
3257
+ };
3258
+ };
3259
+ };
3260
+ };
3261
+ delete?: never;
3262
+ options?: never;
3263
+ head?: never;
3264
+ patch?: never;
3265
+ trace?: never;
3266
+ };
3267
+ "/v1/agents/{id}/capabilities": {
3268
+ parameters: {
3269
+ query?: never;
3270
+ header?: never;
3271
+ path?: never;
3272
+ cookie?: never;
3273
+ };
3274
+ get?: never;
3275
+ put?: never;
3276
+ /**
3277
+ * Add capability to agent
3278
+ * @description Add a capability (flow, sub-agent, or tool binding) to an agent.
3279
+ */
3280
+ post: {
3281
+ parameters: {
3282
+ query?: never;
3283
+ header?: never;
3284
+ path: {
3285
+ id: string;
3286
+ };
3287
+ cookie?: never;
3288
+ };
3289
+ requestBody?: {
3290
+ content: {
3291
+ "application/json": {
3292
+ enabled?: boolean;
3293
+ flowId?: string;
3294
+ parametersSchema?: unknown;
3295
+ subAgentId?: string;
3296
+ toolDescription?: string;
3297
+ toolId?: string;
3298
+ toolName: string;
3299
+ };
3300
+ };
3301
+ };
3302
+ responses: {
3303
+ /** @description Capability added */
3304
+ 201: {
3305
+ headers: {
3306
+ [name: string]: unknown;
3307
+ };
3308
+ content: {
3309
+ "application/json": {
3310
+ agentId?: string;
3311
+ createdAt?: string;
3312
+ displayOrder: number | null;
3313
+ enabled: boolean;
3314
+ flowId: string | null;
3315
+ id: string;
3316
+ parametersSchema?: unknown;
3317
+ subAgentId: string | null;
3318
+ toolDescription: string | null;
3319
+ toolId: string | null;
3320
+ toolName: string;
3321
+ };
3322
+ };
3323
+ };
3324
+ /** @description Validation error */
3325
+ 400: {
3326
+ headers: {
3327
+ [name: string]: unknown;
3328
+ };
3329
+ content: {
3330
+ "application/json": components["schemas"]["Error"];
3331
+ };
3332
+ };
3333
+ /** @description Unauthorized */
3334
+ 401: {
3335
+ headers: {
3336
+ [name: string]: unknown;
3337
+ };
3338
+ content: {
3339
+ "application/json": components["schemas"]["Error"];
3340
+ };
3341
+ };
3342
+ /** @description Insufficient permissions */
3343
+ 403: {
3344
+ headers: {
3345
+ [name: string]: unknown;
3346
+ };
3347
+ content: {
3348
+ "application/json": components["schemas"]["Error"];
3349
+ };
3350
+ };
3351
+ /** @description Agent not found */
3352
+ 404: {
3353
+ headers: {
3354
+ [name: string]: unknown;
3355
+ };
3356
+ content: {
3357
+ "application/json": components["schemas"]["Error"];
3358
+ };
3359
+ };
3360
+ /** @description Tool name already exists for this agent */
3361
+ 409: {
3362
+ headers: {
3363
+ [name: string]: unknown;
3364
+ };
3365
+ content: {
3366
+ "application/json": components["schemas"]["Error"];
3367
+ };
3368
+ };
3369
+ /** @description Internal server error */
3370
+ 500: {
3371
+ headers: {
3372
+ [name: string]: unknown;
3373
+ };
3374
+ content: {
3375
+ "application/json": components["schemas"]["Error"];
3376
+ };
3377
+ };
3378
+ };
3379
+ };
3380
+ delete?: never;
3381
+ options?: never;
3382
+ head?: never;
3383
+ patch?: never;
3384
+ trace?: never;
3385
+ };
3386
+ "/v1/agents/{id}/capabilities/{capabilityId}": {
3387
+ parameters: {
3388
+ query?: never;
3389
+ header?: never;
3390
+ path?: never;
3391
+ cookie?: never;
3392
+ };
3393
+ get?: never;
3394
+ put?: never;
3395
+ post?: never;
3396
+ /**
3397
+ * Remove capability from agent
3398
+ * @description Remove a capability (flow, sub-agent, or tool binding) from an agent.
3399
+ */
3400
+ delete: {
3401
+ parameters: {
3402
+ query?: never;
3403
+ header?: never;
3404
+ path: {
3405
+ id: string;
3406
+ capabilityId: string;
3407
+ };
3408
+ cookie?: never;
3409
+ };
3410
+ requestBody?: never;
3411
+ responses: {
3412
+ /** @description Capability removed */
3413
+ 200: {
3414
+ headers: {
3415
+ [name: string]: unknown;
3416
+ };
3417
+ content: {
3418
+ "application/json": {
3419
+ success: boolean;
3420
+ };
3421
+ };
3422
+ };
3423
+ /** @description Invalid agent or capability ID */
3424
+ 400: {
3425
+ headers: {
3426
+ [name: string]: unknown;
3427
+ };
3428
+ content: {
3429
+ "application/json": components["schemas"]["Error"];
3430
+ };
3431
+ };
3432
+ /** @description Unauthorized */
3433
+ 401: {
3434
+ headers: {
3435
+ [name: string]: unknown;
3436
+ };
3437
+ content: {
3438
+ "application/json": components["schemas"]["Error"];
3439
+ };
3440
+ };
3441
+ /** @description Agent or capability not found */
3442
+ 404: {
3443
+ headers: {
3444
+ [name: string]: unknown;
3445
+ };
3446
+ content: {
3447
+ "application/json": components["schemas"]["Error"];
3448
+ };
3449
+ };
3450
+ /** @description Internal server error */
3451
+ 500: {
3452
+ headers: {
3453
+ [name: string]: unknown;
3454
+ };
3455
+ content: {
3456
+ "application/json": components["schemas"]["Error"];
3457
+ };
3458
+ };
3459
+ };
3460
+ };
3461
+ options?: never;
3462
+ head?: never;
3463
+ patch?: never;
3464
+ trace?: never;
3465
+ };
3466
+ "/v1/agents/{id}/conversations/{conversationId}/events": {
3467
+ parameters: {
3468
+ query?: never;
3469
+ header?: never;
3470
+ path?: never;
3471
+ cookie?: never;
3472
+ };
3473
+ /**
3474
+ * List internal agent conversation events
3475
+ * @description List provenance-bearing internal events posted to a saved agent conversation, including detached subagent completion activities. These events are never represented as human messages.
3476
+ */
3477
+ get: {
3478
+ parameters: {
3479
+ query?: {
3480
+ limit?: string;
3481
+ after?: string;
3482
+ };
3483
+ header?: never;
3484
+ path: {
3485
+ id: string;
3486
+ conversationId: string;
3487
+ };
3488
+ cookie?: never;
3489
+ };
3490
+ requestBody?: never;
3491
+ responses: {
3492
+ /** @description Conversation event list in chronological order */
3493
+ 200: {
3494
+ headers: {
3495
+ [name: string]: unknown;
3496
+ };
3497
+ content: {
3498
+ "application/json": {
3499
+ data: {
3500
+ consumedAt: string | null;
3501
+ createdAt: string;
3502
+ eventKind: string;
3503
+ eventRevision: number;
3504
+ id: string;
3505
+ /** @enum {string} */
3506
+ notificationMode: "narrate" | "react";
3507
+ payload: {
3508
+ [key: string]: unknown;
3509
+ };
3510
+ runId: string;
3511
+ }[];
3512
+ };
3513
+ };
3514
+ };
3515
+ /** @description Invalid request */
3516
+ 400: {
3517
+ headers: {
3518
+ [name: string]: unknown;
3519
+ };
3520
+ content: {
3521
+ "application/json": components["schemas"]["Error"];
3522
+ };
3523
+ };
3524
+ /** @description Unauthorized */
3525
+ 401: {
3526
+ headers: {
3527
+ [name: string]: unknown;
3528
+ };
3529
+ content: {
3530
+ "application/json": components["schemas"]["Error"];
3531
+ };
3532
+ };
3533
+ /** @description Insufficient permissions */
3534
+ 403: {
3535
+ headers: {
3536
+ [name: string]: unknown;
3537
+ };
3538
+ content: {
3539
+ "application/json": components["schemas"]["Error"];
3540
+ };
3541
+ };
3542
+ /** @description Agent not found */
3543
+ 404: {
3544
+ headers: {
3545
+ [name: string]: unknown;
3546
+ };
3547
+ content: {
3548
+ "application/json": components["schemas"]["Error"];
3549
+ };
3550
+ };
3551
+ /** @description Internal server error */
3552
+ 500: {
3553
+ headers: {
3554
+ [name: string]: unknown;
3555
+ };
3556
+ content: {
3557
+ "application/json": components["schemas"]["Error"];
3558
+ };
3559
+ };
3560
+ };
3561
+ };
3562
+ put?: never;
3563
+ post?: never;
3564
+ delete?: never;
3565
+ options?: never;
3566
+ head?: never;
3567
+ patch?: never;
3568
+ trace?: never;
3569
+ };
3570
+ "/v1/agents/{id}/deployments": {
3571
+ parameters: {
3572
+ query?: never;
3573
+ header?: never;
3574
+ path?: never;
3575
+ cookie?: never;
3576
+ };
3577
+ /**
3578
+ * List deployment receipts for an agent
3579
+ * @description The append-only deployment history of this agent, newest first, cursor-paginated. Each receipt records the pointer, the previous and new versions, the alias revision, the actor, provenance and the dependency fingerprints checked at activation.
3580
+ */
3581
+ get: {
3582
+ parameters: {
3583
+ query?: {
3584
+ alias?: string;
3585
+ limit?: string;
3586
+ cursor?: string;
3587
+ };
3588
+ header?: never;
3589
+ path: {
3590
+ id: string;
3591
+ };
3592
+ cookie?: never;
3593
+ };
3594
+ requestBody?: never;
3595
+ responses: {
3596
+ /** @description Deployment receipts */
3597
+ 200: {
3598
+ headers: {
3599
+ [name: string]: unknown;
3600
+ };
3601
+ content: {
3602
+ "application/json": {
3603
+ data: {
3604
+ action: string;
3605
+ actorUserId: string | null;
3606
+ alias: string;
3607
+ aliasRevision: number;
3608
+ createdAt: string;
3609
+ dependencies: {
3610
+ [key: string]: unknown;
3611
+ } | null;
3612
+ id: string;
3613
+ previousVersionId: string | null;
3614
+ source: {
3615
+ [key: string]: unknown;
3616
+ };
3617
+ versionId: string;
3618
+ }[];
3619
+ pagination: {
3620
+ [key: string]: unknown;
3621
+ };
2832
3622
  };
2833
3623
  };
2834
3624
  };
@@ -2898,7 +3688,7 @@ interface paths {
2898
3688
  put?: never;
2899
3689
  /**
2900
3690
  * Execute agent
2901
- * @description Execute an agent with a message array. Streams a Server-Sent Events response when streamResponse is true (default); otherwise returns a JSON result. Send the RFC 7240 `Prefer: respond-async` header to receive a durable execution handle immediately, then poll its status URL for completion.
3691
+ * @description Execute an agent with a message array. Streams a Server-Sent Events response when streamResponse is true (default); otherwise returns a JSON result. Send the RFC 7240 `Prefer: respond-async` header to receive a durable execution handle immediately, then poll its status URL for completion. The optional `durability` body field pins the lane for this request (`forced`: `durable` or `in_process`) or bounds its attached watch (`watchLeaseMs`), and outranks the saved agent config.
2902
3692
  */
2903
3693
  post: {
2904
3694
  parameters: {
@@ -3067,6 +3857,19 @@ interface paths {
3067
3857
  agentId: string | null;
3068
3858
  agentSource: string | null;
3069
3859
  agentSpec?: unknown;
3860
+ /**
3861
+ * @description How the run selected its definition: `alias` or `version` for a request that named a selector, `legacy-live-row` for a run that read the mutable agent row.
3862
+ * @enum {string}
3863
+ */
3864
+ agentTargetResolution: "alias" | "version" | "legacy-live-row";
3865
+ /** @description Version number and label for `agentVersionId`, joined from `agent_versions`. `null` exactly when `agentVersionId` is `null`. */
3866
+ agentVersion: {
3867
+ id: string;
3868
+ label: string | null;
3869
+ versionNumber: number;
3870
+ } | null;
3871
+ /** @description The `agent_versions` row this run was recorded against, or `null`. `null` means the surface that admitted the run stamps no version (A2A, Product API, A2A pause admission and the Product MCP capability path record none today) or the run predates version stamping. It is never a claim that the run executed an unversioned configuration. */
3872
+ agentVersionId: string | null;
3070
3873
  /** @description Whether the agent loop ended by exhausting its `maxTurns` budget. Read this rather than inferring truncation from `stopReason`: a single-turn loop publishes `end_turn` on a budget end to preserve its original payload shape, and several clean success paths publish that same value. `null` means UNKNOWN — a run recorded before this field existed, or one executed by a lane that reports no per-iteration breakdown (external agents, Claude Managed) — and must not be read as `false`. */
3071
3874
  budgetExhausted: boolean | null;
3072
3875
  cancelRequestedAt: string | null;
@@ -3204,6 +4007,19 @@ interface paths {
3204
4007
  agentId: string | null;
3205
4008
  agentSource: string | null;
3206
4009
  agentSpec?: unknown;
4010
+ /**
4011
+ * @description How the run selected its definition: `alias` or `version` for a request that named a selector, `legacy-live-row` for a run that read the mutable agent row.
4012
+ * @enum {string}
4013
+ */
4014
+ agentTargetResolution: "alias" | "version" | "legacy-live-row";
4015
+ /** @description Version number and label for `agentVersionId`, joined from `agent_versions`. `null` exactly when `agentVersionId` is `null`. */
4016
+ agentVersion: {
4017
+ id: string;
4018
+ label: string | null;
4019
+ versionNumber: number;
4020
+ } | null;
4021
+ /** @description The `agent_versions` row this run was recorded against, or `null`. `null` means the surface that admitted the run stamps no version (A2A, Product API, A2A pause admission and the Product MCP capability path record none today) or the run predates version stamping. It is never a claim that the run executed an unversioned configuration. */
4022
+ agentVersionId: string | null;
3207
4023
  /** @description Whether the agent loop ended by exhausting its `maxTurns` budget. Read this rather than inferring truncation from `stopReason`: a single-turn loop publishes `end_turn` on a budget end to preserve its original payload shape, and several clean success paths publish that same value. `null` means UNKNOWN — a run recorded before this field existed, or one executed by a lane that reports no per-iteration breakdown (external agents, Claude Managed) — and must not be read as `false`. */
3208
4024
  budgetExhausted: boolean | null;
3209
4025
  cancelRequestedAt: string | null;
@@ -4623,11 +5439,16 @@ interface paths {
4623
5439
  results: {
4624
5440
  completionTokens: number | null;
4625
5441
  createdAt: string;
5442
+ /**
5443
+ * @deprecated
5444
+ * @description Deprecated alias for `modelCost`; identical value.
5445
+ */
4626
5446
  estimatedCost: string | null;
4627
5447
  executionTimeMs: number | null;
4628
5448
  flowId: string | null;
4629
5449
  flowName: string | null;
4630
5450
  id: string;
5451
+ modelCost: string | null;
4631
5452
  modelUsed: string | null;
4632
5453
  promptId: string | null;
4633
5454
  promptName: string | null;
@@ -4639,6 +5460,8 @@ interface paths {
4639
5460
  recordType: string;
4640
5461
  result: string | null;
4641
5462
  status: string;
5463
+ /** @description Built-in tool spend for this execution, as a decimal string. `null` means unknown, not zero: rows written before per-run cost was split into model and tool portions carry no tool figure. A run that genuinely used no billable tool records `"0"`. Sum with `modelCost` for the run total, and treat `null` as unknown rather than zero. */
5464
+ toolCost: string | null;
4642
5465
  totalTokens: number | null;
4643
5466
  }[];
4644
5467
  };
@@ -11094,7 +11917,7 @@ interface paths {
11094
11917
  put?: never;
11095
11918
  /**
11096
11919
  * Execute a flow or agent
11097
- * @description Main dispatch endpoint for flow and agent execution with record resolution. Supports streaming via SSE or synchronous JSON responses. Send the RFC 7240 `Prefer: respond-async` header to receive a durable execution handle immediately, then poll its status URL for completion.
11920
+ * @description Main dispatch endpoint for flow and agent execution with record resolution. Supports streaming via SSE or synchronous JSON responses. Send the RFC 7240 `Prefer: respond-async` header to receive a durable execution handle immediately, then poll its status URL for completion. A saved agent may run on the durable session lane; the admission headers `x-runtype-concurrency` (reject, supersede, queue), `x-runtype-coalesce` (true) and `idempotency-key` then apply exactly as on `POST /v1/agents/{id}/execute`, and are ignored for a turn that resolves to the in-process lane.
11098
11921
  */
11099
11922
  post: {
11100
11923
  parameters: {
@@ -11114,6 +11937,7 @@ interface paths {
11114
11937
  agentId?: string;
11115
11938
  /** @enum {string} */
11116
11939
  agentType?: "runtype" | "claude_managed";
11940
+ alias?: string;
11117
11941
  artifacts?: {
11118
11942
  /** @enum {boolean} */
11119
11943
  enabled: true;
@@ -11129,6 +11953,12 @@ interface paths {
11129
11953
  setupMode?: "create" | "connect";
11130
11954
  systemPrompt?: string;
11131
11955
  };
11956
+ durability?: {
11957
+ /** @enum {string} */
11958
+ forced?: "durable" | "in_process";
11959
+ maxBudgetMs?: number | null;
11960
+ watchLeaseMs?: number | null;
11961
+ };
11132
11962
  errorHandling?: {
11133
11963
  fallbacks?: ({
11134
11964
  delay?: number;
@@ -11189,16 +12019,25 @@ interface paths {
11189
12019
  };
11190
12020
  sandbox?: {
11191
12021
  enabled: boolean;
11192
- /** @enum {string} */
12022
+ /**
12023
+ * @description Only standard-4 is supported on the hosted Agent Sandbox path; other sizes cannot be enabled.
12024
+ * @enum {string}
12025
+ */
11193
12026
  instanceType?: "standard-1" | "standard-2" | "standard-3" | "standard-4";
11194
12027
  networkAccess?: ("none" | "essentials" | "open") | {
11195
12028
  allow?: string[];
11196
12029
  /** @enum {string} */
11197
12030
  profile?: "none" | "essentials" | "open";
11198
12031
  };
11199
- /** @enum {string} */
12032
+ /**
12033
+ * @description Supported: ephemeral or conversation. Named remains parseable for stored configs but cannot be enabled.
12034
+ * @enum {string}
12035
+ */
11200
12036
  persistence?: "ephemeral" | "conversation" | "named";
11201
- /** @enum {string} */
12037
+ /**
12038
+ * @description Only runtype-sandbox is currently supported. Daytona is retained for stored-config parsing but rejected at authoring/execution.
12039
+ * @enum {string}
12040
+ */
11202
12041
  provider?: "runtype-sandbox" | "daytona";
11203
12042
  secretEnv?: {
11204
12043
  [key: string]: string;
@@ -11284,6 +12123,7 @@ interface paths {
11284
12123
  };
11285
12124
  topK?: number;
11286
12125
  topP?: number;
12126
+ versionId?: string;
11287
12127
  voice?: {
11288
12128
  elevenLabs?: {
11289
12129
  modelId?: string;
@@ -11514,6 +12354,7 @@ interface paths {
11514
12354
  agentId?: string;
11515
12355
  /** @enum {string} */
11516
12356
  agentType?: "runtype" | "claude_managed";
12357
+ alias?: string;
11517
12358
  artifacts?: {
11518
12359
  /** @enum {boolean} */
11519
12360
  enabled: true;
@@ -11529,6 +12370,12 @@ interface paths {
11529
12370
  setupMode?: "create" | "connect";
11530
12371
  systemPrompt?: string;
11531
12372
  };
12373
+ durability?: {
12374
+ /** @enum {string} */
12375
+ forced?: "durable" | "in_process";
12376
+ maxBudgetMs?: number | null;
12377
+ watchLeaseMs?: number | null;
12378
+ };
11532
12379
  errorHandling?: {
11533
12380
  fallbacks?: ({
11534
12381
  delay?: number;
@@ -11589,16 +12436,25 @@ interface paths {
11589
12436
  };
11590
12437
  sandbox?: {
11591
12438
  enabled: boolean;
11592
- /** @enum {string} */
12439
+ /**
12440
+ * @description Only standard-4 is supported on the hosted Agent Sandbox path; other sizes cannot be enabled.
12441
+ * @enum {string}
12442
+ */
11593
12443
  instanceType?: "standard-1" | "standard-2" | "standard-3" | "standard-4";
11594
12444
  networkAccess?: ("none" | "essentials" | "open") | {
11595
12445
  allow?: string[];
11596
12446
  /** @enum {string} */
11597
12447
  profile?: "none" | "essentials" | "open";
11598
12448
  };
11599
- /** @enum {string} */
12449
+ /**
12450
+ * @description Supported: ephemeral or conversation. Named remains parseable for stored configs but cannot be enabled.
12451
+ * @enum {string}
12452
+ */
11600
12453
  persistence?: "ephemeral" | "conversation" | "named";
11601
- /** @enum {string} */
12454
+ /**
12455
+ * @description Only runtype-sandbox is currently supported. Daytona is retained for stored-config parsing but rejected at authoring/execution.
12456
+ * @enum {string}
12457
+ */
11602
12458
  provider?: "runtype-sandbox" | "daytona";
11603
12459
  secretEnv?: {
11604
12460
  [key: string]: string;
@@ -11684,6 +12540,7 @@ interface paths {
11684
12540
  };
11685
12541
  topK?: number;
11686
12542
  topP?: number;
12543
+ versionId?: string;
11687
12544
  voice?: {
11688
12545
  elevenLabs?: {
11689
12546
  modelId?: string;
@@ -12269,7 +13126,166 @@ interface paths {
12269
13126
  "application/json": components["schemas"]["Error"];
12270
13127
  };
12271
13128
  };
12272
- /** @description Execution is not awaiting this approval or cannot be resumed here */
13129
+ /** @description Execution is not awaiting this approval or cannot be resumed here */
13130
+ 409: {
13131
+ headers: {
13132
+ [name: string]: unknown;
13133
+ };
13134
+ content: {
13135
+ "application/json": components["schemas"]["Error"];
13136
+ };
13137
+ };
13138
+ /** @description The paused execution was armed by the retired legacy flow engine and cannot be resumed (LEGACY_PAUSE_UNRESUMABLE); re-run the flow */
13139
+ 410: {
13140
+ headers: {
13141
+ [name: string]: unknown;
13142
+ };
13143
+ content: {
13144
+ "application/json": components["schemas"]["Error"];
13145
+ };
13146
+ };
13147
+ /** @description Internal server error */
13148
+ 500: {
13149
+ headers: {
13150
+ [name: string]: unknown;
13151
+ };
13152
+ content: {
13153
+ "application/json": components["schemas"]["Error"];
13154
+ };
13155
+ };
13156
+ };
13157
+ };
13158
+ delete?: never;
13159
+ options?: never;
13160
+ head?: never;
13161
+ patch?: never;
13162
+ trace?: never;
13163
+ };
13164
+ "/v1/dispatch/resume": {
13165
+ parameters: {
13166
+ query?: never;
13167
+ header?: never;
13168
+ path?: never;
13169
+ cookie?: never;
13170
+ };
13171
+ get?: never;
13172
+ put?: never;
13173
+ /**
13174
+ * Resume a paused execution
13175
+ * @description Resumes a paused flow or agent execution by providing tool outputs. Does not count against execution limits. A saved-agent dispatch that ran on the durable lane pauses under its `aex_` execution id; resuming it hands the outputs to the durable session, answers `{ executionId, status: "running" }` (or a streamed `await` with `awaitReason: "detached"`), and ignores `messages`. Follow the run through `GET /v1/executions/{executionId}/events`.
13176
+ */
13177
+ post: {
13178
+ parameters: {
13179
+ query?: never;
13180
+ header?: never;
13181
+ path?: never;
13182
+ cookie?: never;
13183
+ };
13184
+ requestBody?: {
13185
+ content: {
13186
+ "application/json": {
13187
+ /** @description The execution ID to resume */
13188
+ executionId: string;
13189
+ /** @description Optional conversation override for the resumed leg. It REPLACES the stored conversation rather than being appended to it, so send the full conversation you want the model to see, not just the new turn. Omit it to keep the stored conversation unchanged. A `system` message must come first, as in any conversation. Note this is the flow client-tool continuation contract; an agent checkpoint resume (`options.resumeFrom` on `/v1/dispatch`) instead APPENDS its `messages` after the snapshot history — send only new input there. */
13190
+ messages?: {
13191
+ content: string | ({
13192
+ text: string;
13193
+ /** @enum {string} */
13194
+ type: "text";
13195
+ } | {
13196
+ image: string;
13197
+ mimeType?: string;
13198
+ /** @enum {string} */
13199
+ type: "image";
13200
+ } | {
13201
+ data: string;
13202
+ filename: string;
13203
+ mimeType: string;
13204
+ /** @enum {string} */
13205
+ type: "file";
13206
+ } | {
13207
+ providerOptions?: {
13208
+ [key: string]: unknown;
13209
+ };
13210
+ text: string;
13211
+ /** @enum {string} */
13212
+ type: "reasoning";
13213
+ })[];
13214
+ /** @enum {string} */
13215
+ role: "system" | "user" | "assistant";
13216
+ }[];
13217
+ /**
13218
+ * @description Whether to stream the response via SSE
13219
+ * @default true
13220
+ */
13221
+ streamResponse?: boolean;
13222
+ /**
13223
+ * @description Local tool outputs for the paused execution. Key each output by the per-call `toolCallId` from the `flow_await` / `agent_await` event (preferred, and required to disambiguate parallel calls to the same tool), or by tool name (legacy; collapses same-tool parallel calls onto one slot).
13224
+ * @default {}
13225
+ */
13226
+ toolOutputs?: {
13227
+ [key: string]: unknown;
13228
+ };
13229
+ };
13230
+ };
13231
+ };
13232
+ responses: {
13233
+ /** @description Execution resumed (SSE stream or JSON). A durable-lane resume answers the `DispatchDetachedToolOutputJsonResponse` variant, or a stream that closes on `await` with `awaitReason: "detached"`. */
13234
+ 200: {
13235
+ headers: {
13236
+ [name: string]: unknown;
13237
+ };
13238
+ content: {
13239
+ "application/json": components["schemas"]["DispatchResumeJsonResponse"];
13240
+ "text/event-stream": unknown;
13241
+ };
13242
+ };
13243
+ /** @description Validation error */
13244
+ 400: {
13245
+ headers: {
13246
+ [name: string]: unknown;
13247
+ };
13248
+ content: {
13249
+ "application/json": components["schemas"]["Error"];
13250
+ };
13251
+ };
13252
+ /** @description Unauthorized */
13253
+ 401: {
13254
+ headers: {
13255
+ [name: string]: unknown;
13256
+ };
13257
+ content: {
13258
+ "application/json": components["schemas"]["Error"];
13259
+ };
13260
+ };
13261
+ /** @description Platform key spend limit exceeded */
13262
+ 402: {
13263
+ headers: {
13264
+ [name: string]: unknown;
13265
+ };
13266
+ content: {
13267
+ "application/json": components["schemas"]["DispatchToolOutputContinuationJsonResponse"];
13268
+ };
13269
+ };
13270
+ /** @description Insufficient permissions */
13271
+ 403: {
13272
+ headers: {
13273
+ [name: string]: unknown;
13274
+ };
13275
+ content: {
13276
+ "application/json": components["schemas"]["Error"];
13277
+ };
13278
+ };
13279
+ /** @description Paused execution not found */
13280
+ 404: {
13281
+ headers: {
13282
+ [name: string]: unknown;
13283
+ };
13284
+ content: {
13285
+ "application/json": components["schemas"]["Error"];
13286
+ };
13287
+ };
13288
+ /** @description The durable execution is not awaiting tool output or cannot be resumed here */
12273
13289
  409: {
12274
13290
  headers: {
12275
13291
  [name: string]: unknown;
@@ -12304,156 +13320,6 @@ interface paths {
12304
13320
  patch?: never;
12305
13321
  trace?: never;
12306
13322
  };
12307
- "/v1/dispatch/resume": {
12308
- parameters: {
12309
- query?: never;
12310
- header?: never;
12311
- path?: never;
12312
- cookie?: never;
12313
- };
12314
- get?: never;
12315
- put?: never;
12316
- /**
12317
- * Resume a paused execution
12318
- * @description Resumes a paused flow or agent execution by providing tool outputs. Does not count against execution limits.
12319
- */
12320
- post: {
12321
- parameters: {
12322
- query?: never;
12323
- header?: never;
12324
- path?: never;
12325
- cookie?: never;
12326
- };
12327
- requestBody?: {
12328
- content: {
12329
- "application/json": {
12330
- /** @description The execution ID to resume */
12331
- executionId: string;
12332
- /** @description Optional conversation override for the resumed leg. It REPLACES the stored conversation rather than being appended to it, so send the full conversation you want the model to see, not just the new turn. Omit it to keep the stored conversation unchanged. A `system` message must come first, as in any conversation. Note this is the flow client-tool continuation contract; an agent checkpoint resume (`options.resumeFrom` on `/v1/dispatch`) instead APPENDS its `messages` after the snapshot history — send only new input there. */
12333
- messages?: {
12334
- content: string | ({
12335
- text: string;
12336
- /** @enum {string} */
12337
- type: "text";
12338
- } | {
12339
- image: string;
12340
- mimeType?: string;
12341
- /** @enum {string} */
12342
- type: "image";
12343
- } | {
12344
- data: string;
12345
- filename: string;
12346
- mimeType: string;
12347
- /** @enum {string} */
12348
- type: "file";
12349
- } | {
12350
- providerOptions?: {
12351
- [key: string]: unknown;
12352
- };
12353
- text: string;
12354
- /** @enum {string} */
12355
- type: "reasoning";
12356
- })[];
12357
- /** @enum {string} */
12358
- role: "system" | "user" | "assistant";
12359
- }[];
12360
- /**
12361
- * @description Whether to stream the response via SSE
12362
- * @default true
12363
- */
12364
- streamResponse?: boolean;
12365
- /**
12366
- * @description Local tool outputs for the paused execution. Key each output by the per-call `toolCallId` from the `flow_await` / `agent_await` event (preferred, and required to disambiguate parallel calls to the same tool), or by tool name (legacy; collapses same-tool parallel calls onto one slot).
12367
- * @default {}
12368
- */
12369
- toolOutputs?: {
12370
- [key: string]: unknown;
12371
- };
12372
- };
12373
- };
12374
- };
12375
- responses: {
12376
- /** @description Execution resumed (SSE stream or JSON) */
12377
- 200: {
12378
- headers: {
12379
- [name: string]: unknown;
12380
- };
12381
- content: {
12382
- "application/json": components["schemas"]["DispatchToolOutputContinuationJsonResponse"];
12383
- "text/event-stream": unknown;
12384
- };
12385
- };
12386
- /** @description Validation error */
12387
- 400: {
12388
- headers: {
12389
- [name: string]: unknown;
12390
- };
12391
- content: {
12392
- "application/json": components["schemas"]["Error"];
12393
- };
12394
- };
12395
- /** @description Unauthorized */
12396
- 401: {
12397
- headers: {
12398
- [name: string]: unknown;
12399
- };
12400
- content: {
12401
- "application/json": components["schemas"]["Error"];
12402
- };
12403
- };
12404
- /** @description Platform key spend limit exceeded */
12405
- 402: {
12406
- headers: {
12407
- [name: string]: unknown;
12408
- };
12409
- content: {
12410
- "application/json": components["schemas"]["DispatchToolOutputContinuationJsonResponse"];
12411
- };
12412
- };
12413
- /** @description Insufficient permissions */
12414
- 403: {
12415
- headers: {
12416
- [name: string]: unknown;
12417
- };
12418
- content: {
12419
- "application/json": components["schemas"]["Error"];
12420
- };
12421
- };
12422
- /** @description Paused execution not found */
12423
- 404: {
12424
- headers: {
12425
- [name: string]: unknown;
12426
- };
12427
- content: {
12428
- "application/json": components["schemas"]["Error"];
12429
- };
12430
- };
12431
- /** @description The paused execution was armed by the retired legacy flow engine and cannot be resumed (LEGACY_PAUSE_UNRESUMABLE); re-run the flow */
12432
- 410: {
12433
- headers: {
12434
- [name: string]: unknown;
12435
- };
12436
- content: {
12437
- "application/json": components["schemas"]["Error"];
12438
- };
12439
- };
12440
- /** @description Internal server error */
12441
- 500: {
12442
- headers: {
12443
- [name: string]: unknown;
12444
- };
12445
- content: {
12446
- "application/json": components["schemas"]["Error"];
12447
- };
12448
- };
12449
- };
12450
- };
12451
- delete?: never;
12452
- options?: never;
12453
- head?: never;
12454
- patch?: never;
12455
- trace?: never;
12456
- };
12457
13323
  "/v1/docs/search": {
12458
13324
  parameters: {
12459
13325
  query?: never;
@@ -16063,6 +16929,12 @@ interface paths {
16063
16929
  content: {
16064
16930
  "application/json": {
16065
16931
  batchExecutionId: string;
16932
+ /** @description Every graded case that errored, with the failure text its scores recorded. Empty when no case errored, when the run is not scored yet, or when it was scored before the field shipped. */
16933
+ caseErrors: {
16934
+ caseId: string | null;
16935
+ error: string;
16936
+ name: string;
16937
+ }[];
16066
16938
  completedAt?: string;
16067
16939
  evalConfig?: unknown;
16068
16940
  evalGroupId?: string;
@@ -16158,6 +17030,106 @@ interface paths {
16158
17030
  patch?: never;
16159
17031
  trace?: never;
16160
17032
  };
17033
+ "/v1/executions/{executionId}/events": {
17034
+ parameters: {
17035
+ query?: never;
17036
+ header?: never;
17037
+ path?: never;
17038
+ cookie?: never;
17039
+ };
17040
+ /**
17041
+ * Stream execution events
17042
+ * @description Execution-scoped alias of `GET /v1/agents/{id}/executions/{executionId}/events`: reconnect to a durable turn and replay-and-tail its Server-Sent Events without already knowing which agent ran it. The agent is resolved from the execution's own persisted record, so a run started through `/v1/dispatch` reconnects by execution id alone; a record with no agent (an inline definition, which addresses no durable session) answers 404. A turn that streams over an expired watch lease ends with `await` / `awaitReason: "detached"` while the execution keeps running; pass the last seen SSE `id:` as `after` to rejoin it. Replays buffered events strictly past the `after` cursor, then live-tails if the turn is still running. Each event carries an SSE `id:` line — a durable row seq, or (unified vocabulary) a composite `<seq>.<subIndex>` when one durable row translates to multiple events. Pass that id verbatim after any disconnect (tab reload, sleep, stream timeout) to resume without missing or duplicating events. Replayed and live-tailed frames use the unified execution vocabulary. An API key needs `AGENTS:READ`, `AGENTS:*`, `DISPATCH:*`, or `*`; `DISPATCH:*` is admitted because this alias exists for dispatch-started runs.
17043
+ */
17044
+ get: {
17045
+ parameters: {
17046
+ query?: {
17047
+ /** @description Fallback session key, honored only for a turn that persists no session key of its own (the Claude Managed lane). A durable turn resolves its session owner from the persisted execution, and a subagent run from its private child thread. */
17048
+ conversationId?: string;
17049
+ /** @description Replay only events strictly past this cursor (the last seen SSE id, passed verbatim): a plain row seq, or the composite `<seq>.<subIndex>` a unified-vocabulary stream stamps on intermediate sub-frames. Defaults to 0 (replay the whole turn). */
17050
+ after?: string;
17051
+ };
17052
+ header?: never;
17053
+ path: {
17054
+ executionId: string;
17055
+ };
17056
+ cookie?: never;
17057
+ };
17058
+ requestBody?: never;
17059
+ responses: {
17060
+ /** @description Server-Sent Events stream (buffered replay followed by a live tail) */
17061
+ 200: {
17062
+ headers: {
17063
+ [name: string]: unknown;
17064
+ };
17065
+ content: {
17066
+ "text/event-stream": unknown;
17067
+ };
17068
+ };
17069
+ /** @description No session owner resolves for this execution */
17070
+ 400: {
17071
+ headers: {
17072
+ [name: string]: unknown;
17073
+ };
17074
+ content: {
17075
+ "application/json": components["schemas"]["Error"];
17076
+ };
17077
+ };
17078
+ /** @description Unauthorized */
17079
+ 401: {
17080
+ headers: {
17081
+ [name: string]: unknown;
17082
+ };
17083
+ content: {
17084
+ "application/json": components["schemas"]["Error"];
17085
+ };
17086
+ };
17087
+ /** @description Insufficient API key permissions */
17088
+ 403: {
17089
+ headers: {
17090
+ [name: string]: unknown;
17091
+ };
17092
+ content: {
17093
+ "application/json": components["schemas"]["Error"];
17094
+ };
17095
+ };
17096
+ /** @description Execution not found, or it addresses no durable session */
17097
+ 404: {
17098
+ headers: {
17099
+ [name: string]: unknown;
17100
+ };
17101
+ content: {
17102
+ "application/json": components["schemas"]["Error"];
17103
+ };
17104
+ };
17105
+ /** @description Internal server error */
17106
+ 500: {
17107
+ headers: {
17108
+ [name: string]: unknown;
17109
+ };
17110
+ content: {
17111
+ "application/json": components["schemas"]["Error"];
17112
+ };
17113
+ };
17114
+ /** @description Failed to attach to the execution stream */
17115
+ 502: {
17116
+ headers: {
17117
+ [name: string]: unknown;
17118
+ };
17119
+ content: {
17120
+ "application/json": components["schemas"]["Error"];
17121
+ };
17122
+ };
17123
+ };
17124
+ };
17125
+ put?: never;
17126
+ post?: never;
17127
+ delete?: never;
17128
+ options?: never;
17129
+ head?: never;
17130
+ patch?: never;
17131
+ trace?: never;
17132
+ };
16161
17133
  "/v1/executions/{executionId}/journal": {
16162
17134
  parameters: {
16163
17135
  query?: never;
@@ -16289,6 +17261,19 @@ interface paths {
16289
17261
  };
16290
17262
  content: {
16291
17263
  "application/json": {
17264
+ /**
17265
+ * @description How the run selected its definition: `alias` or `version` for a request that named a selector, `legacy-live-row` for a run that read the mutable agent row.
17266
+ * @enum {string}
17267
+ */
17268
+ agentTargetResolution?: "alias" | "version" | "legacy-live-row";
17269
+ /** @description Version number and label for `agentVersionId`. `null` exactly when `agentVersionId` is `null`. */
17270
+ agentVersion?: {
17271
+ id: string;
17272
+ label: string | null;
17273
+ versionNumber: number;
17274
+ } | null;
17275
+ /** @description The `agent_versions` row the run was recorded against. Present only for durable agent executions; `null` when that surface stamps no version. */
17276
+ agentVersionId?: string | null;
16292
17277
  createdAt: string;
16293
17278
  error?: string;
16294
17279
  executionId: string;
@@ -17528,7 +18513,7 @@ interface paths {
17528
18513
  put?: never;
17529
18514
  /**
17530
18515
  * Ensure flow (config-as-code converge)
17531
- * @description Idempotently converge a repo-defined flow definition onto the platform. Identity is name + account scope. Hash-only probes skip the payload in the steady state (a miss is a normal 200 `definitionRequired` response, not an error); full requests create the flow or append a new version when the canonical content hash differs. Non-executing: never touches the execution pipeline — the deploy-time sibling of the dispatch-coupled `flowMode: "upsert"` (which saves and runs in one request). The response always carries the server-computed canonical hash. Set dryRun to plan without writing (CI drift gate), onConflict: "overwrite" to converge over dashboard/API edits, and release: "publish" to also re-aim the published-version pointer.
18516
+ * @description Idempotently converge a repo-defined flow definition onto the platform. Identity is name + account scope. Hash-only probes skip the payload in the steady state (a miss is a normal 200 `definitionRequired` response, not an error); full requests create the flow or append a new version when the canonical content hash differs. Non-executing: never touches the execution pipeline — the deploy-time sibling of the dispatch-coupled `flowMode: "upsert"` (which saves and runs in one request). The response always carries the server-computed canonical hash. Set dryRun to plan without writing (CI drift gate), onConflict: "overwrite" to converge over dashboard/API edits, and release: "publish" to also re-aim the published-version pointer. Optional version.label / version.notes stamp provenance (a git SHA, a release tag) on the appended version row.
17532
18517
  */
17533
18518
  post: {
17534
18519
  parameters: {
@@ -17561,6 +18546,7 @@ interface paths {
17561
18546
  onConflict?: "error" | "overwrite";
17562
18547
  /** @enum {string} */
17563
18548
  release?: "none" | "publish";
18549
+ version?: components["schemas"]["EnsureVersionMetadata"];
17564
18550
  };
17565
18551
  };
17566
18552
  };
@@ -37063,6 +38049,10 @@ interface paths {
37063
38049
  "application/json": {
37064
38050
  data: {
37065
38051
  createdAt: string;
38052
+ /**
38053
+ * @deprecated
38054
+ * @description Deprecated alias for `modelCost`; identical value.
38055
+ */
37066
38056
  estimatedCost: string | null;
37067
38057
  /**
37068
38058
  * @description Engine that actually executed this record execution ('runtime' | 'legacy'). Recorded at write time from the committed lane decision; never inferred later. Null for rows written before attribution shipped and for units that never started executing (externally executed runs carry no engine).
@@ -37073,12 +38063,15 @@ interface paths {
37073
38063
  flowId: string | null;
37074
38064
  flowName: string | null;
37075
38065
  id: string;
38066
+ modelCost: string | null;
37076
38067
  modelUsed: string | null;
37077
38068
  promptId: string | null;
37078
38069
  promptName: string | null;
37079
38070
  recordId: string;
37080
38071
  result?: unknown;
37081
38072
  status: string;
38073
+ /** @description Built-in tool spend for this execution, as a decimal string. `null` means unknown, not zero: rows written before per-run cost was split into model and tool portions carry no tool figure. A run that genuinely used no billable tool records `"0"`. Sum with `modelCost` for the run total, and treat `null` as unknown rather than zero. */
38074
+ toolCost: string | null;
37082
38075
  totalTokens: number | null;
37083
38076
  }[];
37084
38077
  pagination: {
@@ -43766,7 +44759,7 @@ interface paths {
43766
44759
  put?: never;
43767
44760
  /**
43768
44761
  * Deploy Runtype Sandbox
43769
- * @description Deploy code to a persistent Runtype Sandbox container and return a preview URL.
44762
+ * @description Deploy a live Runtype Sandbox preview. Omitted retention preserves unlimited legacy retention; explicit retention is metered and rollout-gated. Provider sleep or loss can end availability earlier.
43770
44763
  */
43771
44764
  post: {
43772
44765
  parameters: {
@@ -43778,6 +44771,30 @@ interface paths {
43778
44771
  requestBody?: {
43779
44772
  content: {
43780
44773
  "application/json": {
44774
+ code: string;
44775
+ files?: {
44776
+ [key: string]: string;
44777
+ };
44778
+ /** @enum {string} */
44779
+ language?: "javascript" | "typescript" | "python";
44780
+ /** @enum {boolean} */
44781
+ managed?: false;
44782
+ packageJson?: string;
44783
+ port?: number;
44784
+ /** @enum {string} */
44785
+ retention?: "10m" | "1h" | "24h" | "unlimited";
44786
+ sandboxId?: string;
44787
+ sleepPolicy?: {
44788
+ /** @enum {string} */
44789
+ mode: "never";
44790
+ } | {
44791
+ /** @enum {string} */
44792
+ after: "5m" | "15m" | "30m" | "1h";
44793
+ /** @enum {string} */
44794
+ mode: "idle";
44795
+ };
44796
+ startCommand?: string;
44797
+ } & {
43781
44798
  [key: string]: unknown;
43782
44799
  };
43783
44800
  };
@@ -43790,6 +44807,26 @@ interface paths {
43790
44807
  };
43791
44808
  content: {
43792
44809
  "application/json": {
44810
+ effectivePolicy?: {
44811
+ autoDeleteInterval?: number;
44812
+ autoStopInterval?: number;
44813
+ expiresAt: string | null;
44814
+ /** @enum {string} */
44815
+ metering: "active" | "legacy-untracked";
44816
+ /** @enum {string} */
44817
+ origin: "explicit" | "legacy-default";
44818
+ /** @enum {string} */
44819
+ retention: "10m" | "1h" | "24h" | "unlimited";
44820
+ sleepPolicy?: {
44821
+ /** @enum {string} */
44822
+ mode: "never";
44823
+ } | {
44824
+ /** @enum {string} */
44825
+ after: "5m" | "15m" | "30m" | "1h";
44826
+ /** @enum {string} */
44827
+ mode: "idle";
44828
+ };
44829
+ };
43793
44830
  error?: string;
43794
44831
  output?: string;
43795
44832
  previewUrl?: string;
@@ -43826,6 +44863,15 @@ interface paths {
43826
44863
  "application/json": components["schemas"]["Error"];
43827
44864
  };
43828
44865
  };
44866
+ /** @description Sandbox lifecycle enrollment conflict */
44867
+ 409: {
44868
+ headers: {
44869
+ [name: string]: unknown;
44870
+ };
44871
+ content: {
44872
+ "application/json": components["schemas"]["Error"];
44873
+ };
44874
+ };
43829
44875
  /** @description Internal server error */
43830
44876
  500: {
43831
44877
  headers: {
@@ -43924,7 +44970,7 @@ interface paths {
43924
44970
  put?: never;
43925
44971
  /**
43926
44972
  * Deploy Daytona sandbox
43927
- * @description Deploy code to a persistent Daytona sandbox and return a preview URL.
44973
+ * @description Deploy a live Daytona preview. Retention defaults to 10m; provider sleep or deletion can end availability earlier. Preview URLs are not durable hosting.
43928
44974
  */
43929
44975
  post: {
43930
44976
  parameters: {
@@ -43936,6 +44982,35 @@ interface paths {
43936
44982
  requestBody?: {
43937
44983
  content: {
43938
44984
  "application/json": {
44985
+ autoDeleteInterval?: number;
44986
+ autoStopInterval?: number;
44987
+ code: string;
44988
+ files?: {
44989
+ [key: string]: string;
44990
+ };
44991
+ labels?: {
44992
+ [key: string]: string;
44993
+ };
44994
+ /** @enum {string} */
44995
+ language?: "javascript" | "typescript" | "python";
44996
+ /** @enum {boolean} */
44997
+ managed?: false;
44998
+ packageJson?: string;
44999
+ port?: number;
45000
+ /** @enum {string} */
45001
+ retention?: "10m" | "1h" | "24h" | "unlimited";
45002
+ sandboxId?: string;
45003
+ sleepPolicy?: {
45004
+ /** @enum {string} */
45005
+ mode: "never";
45006
+ } | {
45007
+ /** @enum {string} */
45008
+ after: "5m" | "15m" | "30m" | "1h";
45009
+ /** @enum {string} */
45010
+ mode: "idle";
45011
+ };
45012
+ startCommand?: string;
45013
+ } & {
43939
45014
  [key: string]: unknown;
43940
45015
  };
43941
45016
  };
@@ -43948,6 +45023,26 @@ interface paths {
43948
45023
  };
43949
45024
  content: {
43950
45025
  "application/json": {
45026
+ effectivePolicy?: {
45027
+ autoDeleteInterval?: number;
45028
+ autoStopInterval?: number;
45029
+ expiresAt: string | null;
45030
+ /** @enum {string} */
45031
+ metering: "active" | "legacy-untracked";
45032
+ /** @enum {string} */
45033
+ origin: "explicit" | "legacy-default";
45034
+ /** @enum {string} */
45035
+ retention: "10m" | "1h" | "24h" | "unlimited";
45036
+ sleepPolicy?: {
45037
+ /** @enum {string} */
45038
+ mode: "never";
45039
+ } | {
45040
+ /** @enum {string} */
45041
+ after: "5m" | "15m" | "30m" | "1h";
45042
+ /** @enum {string} */
45043
+ mode: "idle";
45044
+ };
45045
+ };
43951
45046
  error?: string;
43952
45047
  output?: string;
43953
45048
  previewUrl?: string;
@@ -43983,6 +45078,15 @@ interface paths {
43983
45078
  "application/json": components["schemas"]["Error"];
43984
45079
  };
43985
45080
  };
45081
+ /** @description Sandbox not found */
45082
+ 404: {
45083
+ headers: {
45084
+ [name: string]: unknown;
45085
+ };
45086
+ content: {
45087
+ "application/json": components["schemas"]["Error"];
45088
+ };
45089
+ };
43986
45090
  /** @description Internal server error */
43987
45091
  500: {
43988
45092
  headers: {
@@ -43992,6 +45096,15 @@ interface paths {
43992
45096
  "application/json": components["schemas"]["Error"];
43993
45097
  };
43994
45098
  };
45099
+ /** @description Sandbox metering unavailable */
45100
+ 503: {
45101
+ headers: {
45102
+ [name: string]: unknown;
45103
+ };
45104
+ content: {
45105
+ "application/json": components["schemas"]["Error"];
45106
+ };
45107
+ };
43995
45108
  };
43996
45109
  };
43997
45110
  delete?: never;
@@ -45521,6 +46634,14 @@ interface components {
45521
46634
  /** @enum {string} */
45522
46635
  status: "running";
45523
46636
  };
46637
+ AgentEnsureBadRequest: {
46638
+ /**
46639
+ * @description A release alias is organization-owned, so a personal-scope agent cannot carry one.
46640
+ * @enum {string}
46641
+ */
46642
+ code?: "alias_requires_organization";
46643
+ error: string;
46644
+ };
45524
46645
  AgentEnsureConflict: {
45525
46646
  /** @enum {string} */
45526
46647
  code: "external_modification" | "remote_changed";
@@ -45529,6 +46650,25 @@ interface components {
45529
46650
  lastModifiedSource?: string;
45530
46651
  modifiedAt?: string | null;
45531
46652
  };
46653
+ /** @description Atomically save this definition and activate it at a release alias. Use { alias: "live" } to deploy to production, or any name matching ^[a-z0-9][a-z0-9-]{0,62}$ for a preview pointer. A non-live alias appends a candidate version and moves that one pointer: it never writes the agent row, its config hash, its capabilities, its draft pointer or its live pointer, so onConflict and expectedRemoteHash describe writes it never performs and are rejected with a 400 alongside it. A release alias is organization-owned, so a non-live deploy on a personal-scope agent is a 400 with code alias_requires_organization. Mutually exclusive with release. */
46654
+ AgentEnsureDeployTarget: {
46655
+ alias: string;
46656
+ };
46657
+ /** @description Present when the converge carried release or deploy and the activation was applied. */
46658
+ AgentEnsureDeployment: {
46659
+ /** @description The release alias this converge aimed. */
46660
+ alias: string;
46661
+ /** @description Whether this converge moved the pointer (on a dry run, whether it would move it). */
46662
+ changed: boolean;
46663
+ /** @description The deployment receipt this converge appended. Absent when the pointer did not move. */
46664
+ receiptId?: string;
46665
+ /** @description Compare-and-swap revision of the alias, null when the alias does not exist yet. */
46666
+ revision: number | null;
46667
+ /** @description The version the alias selects as of this response (null on a dry run against an alias that does not exist yet). */
46668
+ versionId: string | null;
46669
+ /** @description Version number of that version, when known. */
46670
+ versionNumber: number | null;
46671
+ };
45532
46672
  AgentEnsureHashMismatch: {
45533
46673
  /** @enum {string} */
45534
46674
  code: "content_hash_mismatch";
@@ -45540,6 +46680,9 @@ interface components {
45540
46680
  agentId: string;
45541
46681
  /** @description Server-computed canonical content hash. Clients should echo this hash in probes. */
45542
46682
  contentHash: string;
46683
+ deployment?: components["schemas"]["AgentEnsureDeployment"];
46684
+ /** @description For a non-live deploy: the content hash the alias carried before this converge (absent when the alias is new). */
46685
+ remoteHash?: string;
45543
46686
  /** @enum {string} */
45544
46687
  result: "unchanged" | "created" | "updated";
45545
46688
  /** @description The version snapshot backing this state (null if snapshotting failed). */
@@ -45553,10 +46696,18 @@ interface components {
45553
46696
  /** @enum {string} */
45554
46697
  changes: "none" | "create" | "update";
45555
46698
  contentHash: string;
46699
+ deployment?: components["schemas"]["AgentEnsureDeployment"] & unknown;
45556
46700
  remoteHash?: string;
45557
46701
  /** @enum {string} */
45558
46702
  result: "plan";
45559
46703
  };
46704
+ AgentEnsureServerError: {
46705
+ /** @description The release alias whose activation failed. No pointer was moved. */
46706
+ alias?: string;
46707
+ /** @enum {string} */
46708
+ code?: "alias_activation_failed";
46709
+ error: string;
46710
+ };
45560
46711
  AgentPullResponse: {
45561
46712
  agentId: string;
45562
46713
  contentHash: string;
@@ -45654,16 +46805,25 @@ interface components {
45654
46805
  };
45655
46806
  sandbox?: {
45656
46807
  enabled: boolean;
45657
- /** @enum {string} */
46808
+ /**
46809
+ * @description Only standard-4 is supported on the hosted Agent Sandbox path; other sizes cannot be enabled.
46810
+ * @enum {string}
46811
+ */
45658
46812
  instanceType?: "standard-1" | "standard-2" | "standard-3" | "standard-4";
45659
46813
  networkAccess?: ("none" | "essentials" | "open") | {
45660
46814
  allow?: string[];
45661
46815
  /** @enum {string} */
45662
46816
  profile?: "none" | "essentials" | "open";
45663
46817
  };
45664
- /** @enum {string} */
46818
+ /**
46819
+ * @description Supported: ephemeral or conversation. Named remains parseable for stored configs but cannot be enabled.
46820
+ * @enum {string}
46821
+ */
45665
46822
  persistence?: "ephemeral" | "conversation" | "named";
45666
- /** @enum {string} */
46823
+ /**
46824
+ * @description Only runtype-sandbox is currently supported. Daytona is retained for stored-config parsing but rejected at authoring/execution.
46825
+ * @enum {string}
46826
+ */
45667
46827
  provider?: "runtype-sandbox" | "daytona";
45668
46828
  secretEnv?: {
45669
46829
  [key: string]: string;
@@ -46038,13 +47198,20 @@ interface components {
46038
47198
  upgradeUrl?: string;
46039
47199
  };
46040
47200
  DispatchApproveJsonResponse: components["schemas"]["DispatchApprovalContinuationJsonResponse"] | components["schemas"]["DispatchDetachedApprovalJsonResponse"];
46041
- DispatchContinuationJsonResponse: components["schemas"]["DispatchToolOutputContinuationJsonResponse"] | components["schemas"]["DispatchApprovalContinuationJsonResponse"] | components["schemas"]["DispatchDetachedApprovalJsonResponse"];
47201
+ DispatchContinuationJsonResponse: components["schemas"]["DispatchToolOutputContinuationJsonResponse"] | components["schemas"]["DispatchApprovalContinuationJsonResponse"] | components["schemas"]["DispatchDetachedApprovalJsonResponse"] | components["schemas"]["DispatchDetachedToolOutputJsonResponse"];
46042
47202
  DispatchDetachedApprovalJsonResponse: {
46043
47203
  approvalId: string;
46044
47204
  executionId: string;
46045
47205
  /** @enum {string} */
46046
47206
  status: "running";
46047
47207
  };
47208
+ DispatchDetachedToolOutputJsonResponse: {
47209
+ executionId: string;
47210
+ /** @enum {string} */
47211
+ pauseKind: "client_tool" | "elicitation";
47212
+ /** @enum {string} */
47213
+ status: "running";
47214
+ };
46048
47215
  DispatchFlowJsonResponse: {
46049
47216
  blockReason?: string;
46050
47217
  code?: string;
@@ -46087,6 +47254,7 @@ interface components {
46087
47254
  /** @enum {string} */
46088
47255
  type: "durable_poll";
46089
47256
  };
47257
+ DispatchResumeJsonResponse: components["schemas"]["DispatchToolOutputContinuationJsonResponse"] | components["schemas"]["DispatchDetachedToolOutputJsonResponse"];
46090
47258
  DispatchToolOutputContinuationJsonResponse: {
46091
47259
  blockReason?: string;
46092
47260
  code?: string;
@@ -46169,6 +47337,19 @@ interface components {
46169
47337
  versionNumber: number;
46170
47338
  } | null;
46171
47339
  };
47340
+ /** @description Provenance recorded on the version row this converge appends. Omit to keep the default "sdk-ensure" label and the server-generated notes. */
47341
+ EnsureVersionMetadata: {
47342
+ /**
47343
+ * @description Short provenance label recorded on the appended version row (e.g. a git SHA or release tag). Defaults to "sdk-ensure". An empty string is treated as omitted.
47344
+ * @example a1b2c3d
47345
+ */
47346
+ label?: string;
47347
+ /**
47348
+ * @description Free-form notes recorded on the appended version row, used verbatim. Defaults to the server-generated converge summary. An empty string is treated as omitted.
47349
+ * @example Promoted from CI run 4821 (main@a1b2c3d).
47350
+ */
47351
+ notes?: string;
47352
+ };
46172
47353
  Error: {
46173
47354
  details?: {
46174
47355
  /** @description Stable Runtype validation code (e.g. MISSING_REQUIRED_FIELD, INVALID_ENUM). */
@@ -46381,6 +47562,8 @@ interface components {
46381
47562
  cases: {
46382
47563
  /** @description The saved eval case id; null when the case row was deleted or the record could not be mapped to a case. */
46383
47564
  caseId: string | null;
47565
+ /** @description Why the case errored (the provider or execution failure text, 2000 chars max); null when the case did not error or the run predates this field. */
47566
+ error: string | null;
46384
47567
  /**
46385
47568
  * @description Engine that actually executed this graded case ('runtime' | 'legacy'). Recorded at write time from the committed lane decision; never inferred later. Null for rows written before attribution shipped and for units that never started executing (externally executed runs carry no engine).
46386
47569
  * @enum {string|null}
@@ -47420,6 +48603,8 @@ interface components {
47420
48603
  };
47421
48604
  RunEvalResponse: {
47422
48605
  cases: {
48606
+ /** @description Why the case errored (the provider or execution failure text, 2000 chars max). Present only when errored is true and the run reported a cause. */
48607
+ error?: string;
47423
48608
  errored: boolean;
47424
48609
  name: string;
47425
48610
  outcomes: {
@@ -49712,8 +50897,12 @@ type DispatchResponse = paths['/v1/dispatch']['post']['responses'][200]['content
49712
50897
  type AsyncExecutionHandle = components['schemas']['AsyncDispatchHandle'];
49713
50898
  /** Lifecycle response returned by the generic asynchronous execution status route. */
49714
50899
  type AsyncExecutionStatus = paths['/v1/executions/{executionId}/status']['get']['responses'][200]['content']['application/json'];
49715
- /** Buffered `/v1/dispatch/resume` response for a tool-output continuation. */
50900
+ /** Buffered ordinary tool-output continuation (a durable-lane resume uses a separate variant). */
49716
50901
  type DispatchResumeResponse = components['schemas']['DispatchToolOutputContinuationJsonResponse'];
50902
+ /** Buffered detached tool-output acknowledgement; the durable run keeps going after it. */
50903
+ type DispatchDetachedToolOutputResponse = components['schemas']['DispatchDetachedToolOutputJsonResponse'];
50904
+ /** Buffered `/v1/dispatch/resume` response, including a durable-lane acknowledgement. */
50905
+ type DispatchResumeJsonResponse = paths['/v1/dispatch/resume']['post']['responses'][200]['content']['application/json'];
49717
50906
  /** Buffered ordinary-approval result (detached approvals use a separate variant). */
49718
50907
  type DispatchApprovalContinuationResponse = components['schemas']['DispatchApprovalContinuationJsonResponse'];
49719
50908
  /** Buffered detached-approval acknowledgement; the detached run remains active. */
@@ -49879,6 +51068,22 @@ interface ExecuteToolResponse {
49879
51068
  errorMessage?: string;
49880
51069
  executionTimeMs: number;
49881
51070
  }
51071
+ type SandboxDeployRetention = '10m' | '1h' | '24h' | 'unlimited';
51072
+ type SandboxDeploySleepPolicy = {
51073
+ mode: 'never';
51074
+ } | {
51075
+ mode: 'idle';
51076
+ after: '5m' | '15m' | '30m' | '1h';
51077
+ };
51078
+ interface SandboxDeployEffectivePolicy {
51079
+ retention: SandboxDeployRetention;
51080
+ origin: 'explicit' | 'legacy-default';
51081
+ expiresAt: string | null;
51082
+ metering: 'active' | 'legacy-untracked';
51083
+ sleepPolicy?: SandboxDeploySleepPolicy;
51084
+ autoStopInterval?: number;
51085
+ autoDeleteInterval?: number;
51086
+ }
49882
51087
  interface DeploySandboxRequest {
49883
51088
  code: string;
49884
51089
  packageJson?: string;
@@ -49893,6 +51098,10 @@ interface DeploySandboxRequest {
49893
51098
  autoStopInterval?: number;
49894
51099
  /** Auto-delete interval in minutes (Daytona); 0 deletes immediately on stop. Disabled when omitted. */
49895
51100
  autoDeleteInterval?: number;
51101
+ /** Runtype destruction backstop; defaults to 10m independently of provider autostop. */
51102
+ retention?: SandboxDeployRetention;
51103
+ /** Cannot be combined with autoStopInterval. Does not extend retention. */
51104
+ sleepPolicy?: SandboxDeploySleepPolicy;
49896
51105
  }
49897
51106
  interface DeploySandboxResponse {
49898
51107
  sandboxId: string;
@@ -49900,6 +51109,7 @@ interface DeploySandboxResponse {
49900
51109
  output: string;
49901
51110
  status: 'running' | 'error';
49902
51111
  error?: string;
51112
+ effectivePolicy?: SandboxDeployEffectivePolicy;
49903
51113
  }
49904
51114
  interface DeployCfSandboxRequest {
49905
51115
  code: string;
@@ -49909,6 +51119,10 @@ interface DeployCfSandboxRequest {
49909
51119
  sandboxId?: string;
49910
51120
  startCommand?: string;
49911
51121
  files?: Record<string, string>;
51122
+ /** Omission preserves unlimited legacy retention. Explicit policy requires lifecycle rollout enablement. */
51123
+ retention?: SandboxDeployRetention;
51124
+ /** Legacy Runtype Sandbox supports idle sleep only; continuous keepAlive is unavailable. */
51125
+ sleepPolicy?: SandboxDeploySleepPolicy;
49912
51126
  }
49913
51127
  interface DeployCfSandboxResponse {
49914
51128
  sandboxId: string;
@@ -49917,6 +51131,7 @@ interface DeployCfSandboxResponse {
49917
51131
  status: 'running' | 'error';
49918
51132
  stage?: 'validate_port' | 'validate_files' | 'write_package_json' | 'npm_install' | 'write_main_file' | 'write_additional_files' | 'start_process' | 'expose_port';
49919
51133
  error?: string;
51134
+ effectivePolicy?: SandboxDeployEffectivePolicy;
49920
51135
  }
49921
51136
  interface ModelUsageQueryParams {
49922
51137
  startDate?: string;
@@ -50552,6 +51767,164 @@ interface BillingSpendAnalyticsParams {
50552
51767
  */
50553
51768
  period?: 'billing_period' | 'current_month' | 'last_7_days' | 'last_30_days' | 'last_90_days';
50554
51769
  }
51770
+ interface ProductionHealthQuery {
51771
+ /** Length of the reporting window in days (1-90). Defaults to 7. */
51772
+ days?: number;
51773
+ }
51774
+ /**
51775
+ * A metric beside its comparison value: the preceding period of equal length,
51776
+ * unless the field says otherwise. `null` means "not computable", never
51777
+ * "zero".
51778
+ *
51779
+ * These metrics are read from run ledgers that record one row per run. No row
51780
+ * exists for a run that finished before those ledgers were deployed and none
51781
+ * can be reconstructed, so `previous` is empty rather than wrong until the
51782
+ * preceding period is entirely made up of ledger-era runs.
51783
+ */
51784
+ interface MetricDelta {
51785
+ value: number | null;
51786
+ previous: number | null;
51787
+ }
51788
+ /**
51789
+ * Run counts for one population. `successes + failures + unsettled` equals
51790
+ * `current`; the success rate divides `successes` by the settled runs only, so
51791
+ * `failures` must be read rather than derived as `current - successes`.
51792
+ */
51793
+ interface ExecutionCounts {
51794
+ /** Runs that started inside the current period. */
51795
+ current: number;
51796
+ /** Runs that started inside the preceding period of equal length. */
51797
+ previous: number;
51798
+ /** Current-period runs that finished successfully. */
51799
+ successes: number;
51800
+ /** Current-period runs that ended in an error or lost their stream. */
51801
+ failures: number;
51802
+ /**
51803
+ * Current-period runs with no verdict: still running, paused waiting on an
51804
+ * approval or a client tool, or cancelled by the caller. They are inside
51805
+ * `current` because they happened, and outside the success rate entirely.
51806
+ */
51807
+ unsettled: number;
51808
+ }
51809
+ interface HealthInsight {
51810
+ id: string;
51811
+ severity: 'critical' | 'warning' | 'info';
51812
+ title: string;
51813
+ detail: string;
51814
+ href?: string;
51815
+ }
51816
+ interface ProductionHealthResponse {
51817
+ /** Daily intervals anchored to period.start, counting root runs once. */
51818
+ activity?: Array<{
51819
+ date: string;
51820
+ agents: number;
51821
+ flows: number;
51822
+ unclassified: number;
51823
+ }>;
51824
+ period: {
51825
+ days: number;
51826
+ start: string;
51827
+ end: string;
51828
+ previousStart: string;
51829
+ };
51830
+ /**
51831
+ * Run totals across BOTH populations, one row per run whatever it did.
51832
+ * `agents` is broken out first: an agent turn drives a flow internally, so
51833
+ * before this split the same run was counted on the headline and again on
51834
+ * the agents line. Every field is agents plus flows plus unclassified history.
51835
+ *
51836
+ * The two halves come from different tables because neither is complete on
51837
+ * its own. Agent counts come from `agent_executions`, which is the only
51838
+ * record of an agent the customer hosts themselves (reported over
51839
+ * OpenTelemetry, or proxied over HTTP) since no Runtype runtime ran it. Flow
51840
+ * counts come from `flow_executions` rows that no agent drove.
51841
+ */
51842
+ executions: ExecutionCounts & {
51843
+ /** Agent runs. Includes agents running outside Runtype. */
51844
+ agents: ExecutionCounts;
51845
+ /** Flow runs. */
51846
+ flows: ExecutionCounts;
51847
+ unclassified: ExecutionCounts;
51848
+ };
51849
+ /**
51850
+ * Successful runs over SETTLED runs. Runs still open, paused mid-run, or
51851
+ * cancelled are outside both halves of this division rather than counted as
51852
+ * either outcome. Null when nothing in the period settled.
51853
+ */
51854
+ successRate: MetricDelta;
51855
+ /**
51856
+ * 95th percentile of a run's wall clock, start to finish: context steps,
51857
+ * tool-call steps and queueing included. Measured over settled runs only, so
51858
+ * a run that is still open or still paused contributes nothing. A run that
51859
+ * paused for an approval or a client tool and then resumed carries that wait
51860
+ * inside its wall clock, because the caller waited for it too. Null when no
51861
+ * settled run in the period recorded a duration.
51862
+ */
51863
+ p95LatencyMs: MetricDelta;
51864
+ /**
51865
+ * Model cost including retries, compaction, fallback and descendants, divided
51866
+ * by successful runs. Null when any run has incomplete model accounting.
51867
+ * Estimated execution cost excludes billing margin and is not billed spend.
51868
+ */
51869
+ modelCostPerSuccess: MetricDelta;
51870
+ /** Estimated model cost across every run in the window, failed runs included. Same caveats. */
51871
+ totalModelCost: MetricDelta;
51872
+ costs: Record<'model' | 'tool' | 'total', MetricDelta & {
51873
+ knownValue: number;
51874
+ knownPrevious: number;
51875
+ incompleteRuns: number;
51876
+ previousIncompleteRuns: number;
51877
+ }>;
51878
+ /**
51879
+ * Share of runs where at least one attempt routed to a fallback model instead
51880
+ * of the configured one, over every run in the period. Null when any run has
51881
+ * incomplete model accounting.
51882
+ */
51883
+ fallbackShare: MetricDelta;
51884
+ /**
51885
+ * Eval pass rates. `value` and `previous` are the latest scored run and the previous scored run
51886
+ * in the same suite, compared run over run rather than period over
51887
+ * period, so either may predate the window.
51888
+ */
51889
+ evals: MetricDelta & {
51890
+ suiteId: string | null;
51891
+ suiteName: string | null;
51892
+ /** When the most recent eval run of any kind was created; null if none has ever run. */
51893
+ lastRunAt: string | null;
51894
+ /**
51895
+ * When the run behind `value` was created; null while nothing has ever
51896
+ * scored. This is older than `lastRunAt` whenever the newest run is still
51897
+ * processing, cancelled, failed, or graded nothing, so it is the only
51898
+ * timestamp a pass rate may be presented beside. Pairing `value` with
51899
+ * `lastRunAt` attributes a rate to a run that did not produce it.
51900
+ */
51901
+ lastScoredRunAt: string | null;
51902
+ /**
51903
+ * Whether `lastRunAt` falls inside the current period. Any eval run counts,
51904
+ * including one still processing, cancelled, failed, or with no graders, so
51905
+ * this can be true while `value` is null (nothing scored yet) and false
51906
+ * while `value` is set (the last run that scored predates the window).
51907
+ */
51908
+ ranInPeriod: boolean;
51909
+ };
51910
+ agents: {
51911
+ /**
51912
+ * Share of agent runs that stopped because they hit the turn ceiling.
51913
+ * Agent run counts live on `executions.agents`, not here.
51914
+ */
51915
+ maxTurnsShare: MetricDelta;
51916
+ };
51917
+ surfaces: Array<{
51918
+ /** Surface the agent executions were attributed to; rows with no surface type are grouped as `unknown`. */
51919
+ surfaceType: string;
51920
+ /** Agent executions on this surface in the current period. Counts agent runs only, not flow runs. */
51921
+ executions: number;
51922
+ /** Share of those agent executions that completed. */
51923
+ successRate: number | null;
51924
+ }>;
51925
+ insights: HealthInsight[];
51926
+ generatedAt: string;
51927
+ }
50555
51928
 
50556
51929
  /**
50557
51930
  * Per-grader severity (mirror of `@runtypelabs/shared`'s `GraderSeverity`). A
@@ -50976,6 +52349,8 @@ interface RunEvalCaseResult {
50976
52349
  outputExcerpt: string;
50977
52350
  /** Whether producing the output threw. */
50978
52351
  errored: boolean;
52352
+ /** Why the case errored (provider or execution failure text); present only when `errored` is true and a cause was reported. */
52353
+ error?: string;
50979
52354
  }
50980
52355
  /** The synchronous run + score result returned by `client.evals.runSuite(...)`. */
50981
52356
  interface RunEvalResult {
@@ -51022,6 +52397,8 @@ interface EvalRunCaseScores {
51022
52397
  outcomes: PersistedGraderOutcome[];
51023
52398
  /** Truncated snapshot of the output that was graded. */
51024
52399
  outputExcerpt: string;
52400
+ /** Why the case errored; null when it did not, or for runs recorded before this field shipped. */
52401
+ error: string | null;
51025
52402
  /**
51026
52403
  * For a checkpoint ("saved from run") case run in next-step mode: the
51027
52404
  * tool-call intent(s) the target emitted as its graded next step (captured,
@@ -51182,6 +52559,12 @@ interface EnsureFlowOptions {
51182
52559
  * the remote still hashes to this value (409 remote_changed otherwise).
51183
52560
  */
51184
52561
  expectedRemoteHash?: string;
52562
+ /**
52563
+ * Provenance stamped on the version row this converge appends (a git SHA, a
52564
+ * release tag). Omit to keep the default 'sdk-ensure' label and the
52565
+ * server-generated notes.
52566
+ */
52567
+ version?: components['schemas']['EnsureVersionMetadata'];
51185
52568
  /** Implies dryRun; throws FlowDriftError unless the plan is 'none'. */
51186
52569
  expectNoChanges?: boolean;
51187
52570
  }
@@ -53284,6 +54667,12 @@ interface EnsureAgentOptions {
53284
54667
  * the remote still hashes to this value (409 remote_changed otherwise).
53285
54668
  */
53286
54669
  expectedRemoteHash?: string;
54670
+ /**
54671
+ * Provenance stamped on the version row this converge appends (a git SHA, a
54672
+ * release tag). Omit to keep the default 'sdk-ensure' label and the
54673
+ * server-generated notes.
54674
+ */
54675
+ version?: components['schemas']['EnsureVersionMetadata'];
53287
54676
  /** Implies dryRun; throws AgentDriftError unless the plan is 'none'. */
53288
54677
  expectNoChanges?: boolean;
53289
54678
  }
@@ -53916,6 +55305,97 @@ declare class SurfacesNamespace {
53916
55305
  pull(productId: string, name: string): Promise<SurfacePullResult>;
53917
55306
  }
53918
55307
 
55308
+ /**
55309
+ * Transparent reconnect for a DETACHED agent stream (ADR 0020 point 6;
55310
+ * blueprint `2026-08-25-durable-by-default-agent-turns.md` §4).
55311
+ *
55312
+ * ## What the server does
55313
+ *
55314
+ * A durable agent turn runs inside a Durable Object, and the socket it streams
55315
+ * over carries a WATCH LEASE (10 minutes by default), not the turn's lifetime.
55316
+ * When the lease expires the server emits a unified `await` frame with
55317
+ * `awaitReason: 'detached'` and CLOSES the stream — the execution keeps running
55318
+ * server-side. Detach is part of the public contract, not an error:
55319
+ *
55320
+ * id: 118
55321
+ * event: await
55322
+ * data: {"type":"await","awaitReason":"detached","executionId":"aex_…",…}
55323
+ *
55324
+ * Raw-HTTP consumers get documented behavior. The SDKs are expected to follow
55325
+ * it, which is what this module does: it reopens the turn through the events
55326
+ * route with `?after=<last SSE id>` and keeps yielding frames until a real
55327
+ * terminal arrives.
55328
+ *
55329
+ * ## Why it wraps the stream rather than the callbacks
55330
+ *
55331
+ * `executeStream` is the single place every consumer goes through
55332
+ * (`executeWithCallbacks` and the local-tool loop both build on it), so
55333
+ * wrapping the `Response` body makes reconnect transparent for all of them at
55334
+ * once — and for a caller reading the raw stream by hand.
55335
+ *
55336
+ * Bytes are forwarded VERBATIM. This is not a re-encoder: it parses complete
55337
+ * SSE blocks only to observe three things (the last `id:`, the executionId, and
55338
+ * whether a terminal or a detach frame went by), and passes the original text
55339
+ * straight through. That matters because the `id:` line IS the relay cursor —
55340
+ * re-stamping it would break the very reconnect this exists to perform.
55341
+ *
55342
+ * ## Cursor and duplicate-freedom
55343
+ *
55344
+ * The server replays strictly AFTER the cursor, so a reconnect produces no
55345
+ * duplicates. A cursor that is malformed or lost fails OPEN to a replay from
55346
+ * the start of the turn, which is why the last-seen `id:` is tracked as the
55347
+ * raw string rather than being parsed into a number here.
55348
+ *
55349
+ * ## The detach frame is not swallowed
55350
+ *
55351
+ * It is forwarded like any other frame. The wire vocabulary is unchanged, so a
55352
+ * consumer that renders `await` states keeps rendering this one; the difference
55353
+ * is only that the stream no longer ENDS there.
55354
+ *
55355
+ * The Python SDK mirrors this behavior — a follow-up, tracked with the rest of
55356
+ * the SDK work in the blueprint's §4 slice 2.
55357
+ */
55358
+ /**
55359
+ * How many times a single logical turn may be re-opened. A detached turn is
55360
+ * bounded by its absolute budget (30 minutes by default, 24 hours at most) and
55361
+ * each leg covers a full watch lease, so this is a safety stop against a server
55362
+ * that detaches immediately and repeatedly — not a normal-path limit.
55363
+ */
55364
+ declare const DEFAULT_MAX_DETACHED_RECONNECTS = 12;
55365
+ interface DetachedReconnectOptions {
55366
+ /**
55367
+ * Turn transparent reconnect OFF and hand back the raw stream, ending at the
55368
+ * detach frame. The documented escape hatch: a caller that wants to own the
55369
+ * reconnect (its own backoff, its own cursor storage, a handoff to another
55370
+ * process) sets this and drives the events route itself.
55371
+ */
55372
+ autoReconnect?: boolean;
55373
+ /** Safety stop; see {@link DEFAULT_MAX_DETACHED_RECONNECTS}. */
55374
+ maxReconnects?: number;
55375
+ /** Milliseconds to wait before each reconnect attempt. */
55376
+ reconnectDelayMs?: number;
55377
+ }
55378
+ /**
55379
+ * Link a caller's cancellation to the reconnect wrapper's own signal.
55380
+ *
55381
+ * Cancelling the wrapped stream must abort a reattach request that is already
55382
+ * opening, so a reattach honors BOTH signals rather than only the caller's.
55383
+ */
55384
+ declare function combineAbortSignals(...signals: Array<AbortSignal | undefined>): AbortSignal | undefined;
55385
+ /** Open the next leg of a detached turn. Returns `null` when it cannot. */
55386
+ type DetachedReattach = (args: {
55387
+ executionId: string;
55388
+ after: string;
55389
+ signal?: AbortSignal;
55390
+ }) => Promise<Response | null>;
55391
+ /**
55392
+ * Wrap a durable-turn SSE `Response` so a detach transparently continues.
55393
+ *
55394
+ * A non-streaming or failed response is returned untouched — there is nothing
55395
+ * to follow, and swallowing it here would hide the error from the caller.
55396
+ */
55397
+ declare function withDetachedReconnect(response: Response, reattach: DetachedReattach, options?: DetachedReconnectOptions): Response;
55398
+
53919
55399
  interface RuntypeConfig {
53920
55400
  /** API key for authentication */
53921
55401
  apiKey?: string;
@@ -53972,8 +55452,14 @@ declare class RuntypeClient$1 {
53972
55452
  * (`RuntypeFlowBuilder`), so it normalizes the request to the canonical
53973
55453
  * `/v1/dispatch` wire contract here — every builder path inherits the same
53974
55454
  * normalization the `DispatchEndpoint` applies, with no per-builder call.
55455
+ *
55456
+ * A dispatched agent turn runs on the durable lane, so the stream follows a
55457
+ * detach through {@link executionEvents}; pass `autoReconnect: false` to own
55458
+ * the reconnect yourself.
53975
55459
  */
53976
- dispatch(config: unknown): Promise<Response>;
55460
+ dispatch(config: unknown, init?: {
55461
+ signal?: AbortSignal;
55462
+ } & DetachedReconnectOptions): Promise<Response>;
53977
55463
  /**
53978
55464
  * Dispatch flow execution (non-streaming JSON).
53979
55465
  *
@@ -53985,6 +55471,26 @@ declare class RuntypeClient$1 {
53985
55471
  /** Start a normalized dispatch and return a durable handle immediately. */
53986
55472
  dispatchAsync(config: unknown): Promise<AsyncExecutionHandle>;
53987
55473
  getExecutionStatus(executionId: string): Promise<AsyncExecutionStatus>;
55474
+ /**
55475
+ * Rejoin a durable execution's Server-Sent Events by execution id.
55476
+ *
55477
+ * The execution-scoped alias of the agent events route, so a turn started
55478
+ * through `/v1/dispatch` reconnects without knowing which agent served it.
55479
+ * Pass the last SSE `id:` the stream delivered as `after` to replay strictly
55480
+ * past that cursor and then live-tail while the run is still going. This is
55481
+ * the same leg a detached dispatch stream follows on its own, exposed for a
55482
+ * caller that stores the cursor and reattaches later or from elsewhere.
55483
+ *
55484
+ * @example
55485
+ * ```typescript
55486
+ * const events = await client.executionEvents('aex_123', { after: '118' })
55487
+ * ```
55488
+ */
55489
+ executionEvents(executionId: string, opts?: {
55490
+ after?: string;
55491
+ conversationId?: string;
55492
+ signal?: AbortSignal;
55493
+ }): Promise<Response>;
53988
55494
  /**
53989
55495
  * Build full URL with query parameters
53990
55496
  */
@@ -54287,90 +55793,6 @@ declare class Runtype {
54287
55793
  static get surfaces(): SurfacesNamespace;
54288
55794
  }
54289
55795
 
54290
- /**
54291
- * Transparent reconnect for a DETACHED agent stream (ADR 0020 point 6;
54292
- * blueprint `2026-08-25-durable-by-default-agent-turns.md` §4).
54293
- *
54294
- * ## What the server does
54295
- *
54296
- * A durable agent turn runs inside a Durable Object, and the socket it streams
54297
- * over carries a WATCH LEASE (10 minutes by default), not the turn's lifetime.
54298
- * When the lease expires the server emits a unified `await` frame with
54299
- * `awaitReason: 'detached'` and CLOSES the stream — the execution keeps running
54300
- * server-side. Detach is part of the public contract, not an error:
54301
- *
54302
- * id: 118
54303
- * event: await
54304
- * data: {"type":"await","awaitReason":"detached","executionId":"aex_…",…}
54305
- *
54306
- * Raw-HTTP consumers get documented behavior. The SDKs are expected to follow
54307
- * it, which is what this module does: it reopens the turn through the events
54308
- * route with `?after=<last SSE id>` and keeps yielding frames until a real
54309
- * terminal arrives.
54310
- *
54311
- * ## Why it wraps the stream rather than the callbacks
54312
- *
54313
- * `executeStream` is the single place every consumer goes through
54314
- * (`executeWithCallbacks` and the local-tool loop both build on it), so
54315
- * wrapping the `Response` body makes reconnect transparent for all of them at
54316
- * once — and for a caller reading the raw stream by hand.
54317
- *
54318
- * Bytes are forwarded VERBATIM. This is not a re-encoder: it parses complete
54319
- * SSE blocks only to observe three things (the last `id:`, the executionId, and
54320
- * whether a terminal or a detach frame went by), and passes the original text
54321
- * straight through. That matters because the `id:` line IS the relay cursor —
54322
- * re-stamping it would break the very reconnect this exists to perform.
54323
- *
54324
- * ## Cursor and duplicate-freedom
54325
- *
54326
- * The server replays strictly AFTER the cursor, so a reconnect produces no
54327
- * duplicates. A cursor that is malformed or lost fails OPEN to a replay from
54328
- * the start of the turn, which is why the last-seen `id:` is tracked as the
54329
- * raw string rather than being parsed into a number here.
54330
- *
54331
- * ## The detach frame is not swallowed
54332
- *
54333
- * It is forwarded like any other frame. The wire vocabulary is unchanged, so a
54334
- * consumer that renders `await` states keeps rendering this one; the difference
54335
- * is only that the stream no longer ENDS there.
54336
- *
54337
- * The Python SDK mirrors this behavior — a follow-up, tracked with the rest of
54338
- * the SDK work in the blueprint's §4 slice 2.
54339
- */
54340
- /**
54341
- * How many times a single logical turn may be re-opened. A detached turn is
54342
- * bounded by its absolute budget (30 minutes by default, 24 hours at most) and
54343
- * each leg covers a full watch lease, so this is a safety stop against a server
54344
- * that detaches immediately and repeatedly — not a normal-path limit.
54345
- */
54346
- declare const DEFAULT_MAX_DETACHED_RECONNECTS = 12;
54347
- interface DetachedReconnectOptions {
54348
- /**
54349
- * Turn transparent reconnect OFF and hand back the raw stream, ending at the
54350
- * detach frame. The documented escape hatch: a caller that wants to own the
54351
- * reconnect (its own backoff, its own cursor storage, a handoff to another
54352
- * process) sets this and drives the events route itself.
54353
- */
54354
- autoReconnect?: boolean;
54355
- /** Safety stop; see {@link DEFAULT_MAX_DETACHED_RECONNECTS}. */
54356
- maxReconnects?: number;
54357
- /** Milliseconds to wait before each reconnect attempt. */
54358
- reconnectDelayMs?: number;
54359
- }
54360
- /** Open the next leg of a detached turn. Returns `null` when it cannot. */
54361
- type DetachedReattach = (args: {
54362
- executionId: string;
54363
- after: string;
54364
- signal?: AbortSignal;
54365
- }) => Promise<Response | null>;
54366
- /**
54367
- * Wrap a durable-turn SSE `Response` so a detach transparently continues.
54368
- *
54369
- * A non-streaming or failed response is returned untouched — there is nothing
54370
- * to follow, and swallowing it here would hide the error from the caller.
54371
- */
54372
- declare function withDetachedReconnect(response: Response, reattach: DetachedReattach, options?: DetachedReconnectOptions): Response;
54373
-
54374
55796
  /**
54375
55797
  * Agent API key request types.
54376
55798
  *
@@ -54973,6 +56395,20 @@ interface ApiClient {
54973
56395
  postBinary<T>(path: string, body: Uint8Array, contentType: string): Promise<T>;
54974
56396
  requestStream(path: string, options?: RequestInit): Promise<Response>;
54975
56397
  }
56398
+ /**
56399
+ * Path of the execution-scoped events alias,
56400
+ * `GET /v1/executions/{executionId}/events`.
56401
+ *
56402
+ * The reconnect leg a dispatch-started durable turn rejoins through: it names
56403
+ * no agent, because the alias resolves the agent from the execution's own
56404
+ * persisted record. Single-sourced here so the transparent reattach inside
56405
+ * `DispatchEndpoint.executeStream` and the explicit `executionEvents` method on
56406
+ * the client build the same URL, cursor and session key included.
56407
+ */
56408
+ declare function buildExecutionEventsPath(executionId: string, query?: {
56409
+ after?: string;
56410
+ conversationId?: string;
56411
+ }): string;
54976
56412
  /**
54977
56413
  * Flows endpoint handlers
54978
56414
  */
@@ -55540,16 +56976,33 @@ declare class DispatchEndpoint {
55540
56976
  executeAsync(data: DispatchRequest): Promise<AsyncExecutionHandle>;
55541
56977
  /**
55542
56978
  * Dispatch with streaming response
56979
+ *
56980
+ * A dispatched agent turn runs on the durable lane, so its socket can close
56981
+ * with `await` / `awaitReason: 'detached'` while the run continues. The
56982
+ * stream follows that detach through the execution-scoped events alias;
56983
+ * `autoReconnect: false` hands back the raw stream instead.
56984
+ */
56985
+ executeStream(data: DispatchRequest, init?: {
56986
+ signal?: AbortSignal;
56987
+ } & DetachedReconnectOptions): Promise<Response>;
56988
+ /**
56989
+ * The `?after=` reattach leg a detached dispatch stream is followed with.
56990
+ *
56991
+ * Unlike an agent execute, a dispatch knows no agent id at the call site, so
56992
+ * it rejoins by execution id alone through the execution-scoped alias. The
56993
+ * cursor is the last SSE `id:` the stream delivered, forwarded verbatim.
55543
56994
  */
55544
- executeStream(data: DispatchRequest): Promise<Response>;
56995
+ private buildDetachedReattach;
55545
56996
  /**
55546
56997
  * Resume paused flow execution
55547
- * Uses buffered JSON when streamResponse is omitted.
56998
+ * Uses buffered JSON when streamResponse is omitted. A durable-lane (`aex_`)
56999
+ * pause answers `{ executionId, status: 'running' }` buffered, or a stream
57000
+ * that detaches and is followed through the execution events alias.
55548
57001
  *
55549
57002
  * @param data.executionId - The execution ID to resume
55550
57003
  * @param data.toolOutputs - Tool outputs to inject into the flow
55551
57004
  * @param data.streamResponse - Whether to stream the response (defaults to false)
55552
- * @param data.messages - Optional messages to override the original dispatch messages
57005
+ * @param data.messages - Optional messages that REPLACE the stored conversation; ignored by a durable-lane resume
55553
57006
  */
55554
57007
  resume(data: {
55555
57008
  executionId: string;
@@ -55563,7 +57016,9 @@ declare class DispatchEndpoint {
55563
57016
  image?: string;
55564
57017
  }>;
55565
57018
  }>;
55566
- }): Promise<any>;
57019
+ }, init?: {
57020
+ signal?: AbortSignal;
57021
+ } & DetachedReconnectOptions): Promise<any>;
55567
57022
  /**
55568
57023
  * Evaluate a model-proposed runtime tool against a configurable allowlist policy.
55569
57024
  * Useful for local `propose_runtime_tool` handlers before redispatch.
@@ -55652,6 +57107,12 @@ declare class AnalyticsEndpoint {
55652
57107
  * Get execution and platform-spend usage grouped by projected product end user.
55653
57108
  */
55654
57109
  getEndUserUsage(params: EndUserUsageQuery): Promise<EndUserUsageResponse>;
57110
+ /**
57111
+ * Get reliability, latency, unit economics, and eval health for the current
57112
+ * period against the preceding period of equal length, plus a derived feed of
57113
+ * notable changes.
57114
+ */
57115
+ getProductionHealth(params?: ProductionHealthQuery): Promise<ProductionHealthResponse>;
55655
57116
  }
55656
57117
  /**
55657
57118
  * Flow Steps endpoint handlers
@@ -55794,7 +57255,7 @@ declare class ToolsEndpoint {
55794
57255
  */
55795
57256
  getBuiltInToolSchema(toolId: string): Promise<BuiltInTool>;
55796
57257
  /**
55797
- * Deploy code to a persistent Daytona sandbox and get a preview URL
57258
+ * Deploy a Daytona preview; retention defaults to ten minutes and the URL is not durable hosting.
55798
57259
  */
55799
57260
  deploySandbox(data: DeploySandboxRequest): Promise<DeploySandboxResponse>;
55800
57261
  /**
@@ -55802,7 +57263,7 @@ declare class ToolsEndpoint {
55802
57263
  */
55803
57264
  cleanupSandbox(sandboxId: string): Promise<void>;
55804
57265
  /**
55805
- * Deploy code to a persistent Cloudflare Sandbox container and get a preview URL
57266
+ * Deploy a Runtype Sandbox preview; omitted retention preserves the legacy unlimited backstop.
55806
57267
  */
55807
57268
  deployCfSandbox(data: DeployCfSandboxRequest): Promise<DeployCfSandboxResponse>;
55808
57269
  /**
@@ -56623,6 +58084,16 @@ interface AgentExecuteRequest {
56623
58084
  * Mirrors `DispatchRequest.options.cache`.
56624
58085
  */
56625
58086
  cache?: boolean;
58087
+ /**
58088
+ * Per-request durability override. `forced` pins this turn's lane and outranks the saved
58089
+ * agent's `config.durability` pin; `watchLeaseMs` bounds only the single attached socket,
58090
+ * after which the watcher detaches and the turn keeps running. Durability does not imply
58091
+ * async: `Prefer: respond-async` stays a separate choice. Mirrors `DispatchRequest.agent.durability`.
58092
+ */
58093
+ durability?: {
58094
+ forced?: 'durable' | 'in_process';
58095
+ watchLeaseMs?: number;
58096
+ };
56626
58097
  }
56627
58098
  /**
56628
58099
  * Agent execute response (non-streaming)
@@ -59363,4 +60834,4 @@ declare function getLikelySupportingCandidatePaths(bestCandidatePath: string | u
59363
60834
  declare function getDefaultPlanPath(taskName: string): string;
59364
60835
  declare function sanitizeTaskSlug(taskName: string): string;
59365
60836
 
59366
- export { type AIGrader, type Agent, type AgentAdmissionOptions, type AgentApprovalCompleteEvent, type AgentApprovalStartEvent, type AgentCompleteEvent, type AgentDefinition, type AgentDefinitionConfig, AgentDriftError, type AgentElicitation, type AgentElicitationRequest, AgentEnsureConflictError, type AgentErrorEvent, type AgentEvent, type AgentEventType, type AgentExecuteRequest, type AgentExecuteResponse, type AgentIterationCompleteEvent, type AgentIterationStartEvent, type AgentMediaEvent, type AgentMessage, type AgentPausedEvent, type AgentPingEvent, type AgentPullResult, type AgentReflectionEvent, type AgentRuntimeToolDefinition, type AgentStartEvent, type AgentStreamCallbacks, type AgentStreamEvent, type AgentSubagentConfig, type AgentToolCompleteEvent, type AgentToolDeltaEvent, type AgentToolInputCompleteEvent, type AgentToolInputDeltaEvent, type AgentToolStartEvent, type AgentTurnCompleteEvent, type AgentTurnDeltaEvent, type AgentTurnStartEvent, type AgentVersionDetail, type AgentVersionListItem, type AgentVersionPublishResponse, AgentVersionsEndpoint, type AgentVersionsListResponse, AgentsEndpoint, AgentsNamespace, AnalyticsEndpoint, type ApiClient, type ApiKey, type ApiKeyRequest, type ApiKeyRequestDelivery, type ApiKeyRequestEnvironment, type ApiKeyRequestHandoff, type ApiKeyRequestListParams, type ApiKeyRequestRequester, type ApiKeyRequestStatus, ApiKeyRequestsEndpoint, ApiKeysEndpoint, type ApiResponse, type ApplyGeneratedProposalOptions, type ApplyGeneratedProposalResult, type AssetReferenceContentPart, type AsyncExecutionHandle, type AsyncExecutionStatus, type AttachRuntimeToolsOptions, type BaseAgentEvent, BatchBuilder, type BatchClient, type BatchListParams, type BatchOptions, type BatchRequest, type BatchResult, type BatchScheduleConfig, type BatchStatus, BatchesNamespace, BillingEndpoint, type BillingSpendAnalyticsParams, type BindSkillInput, type BuiltInGraderId, type BuiltInTool, type BulkEditCondition, type BulkEditRequest, type BulkEditResponse, type BulkEditResult, type CanonicalDispatchMessageContent, type CanonicalDispatchRequest, type CaseExpected, type CatalogClientToolRef, ChatEndpoint, type CheckGrader, type ClaimApiKeyRequestInput, type ClaimApiKeyRequestResponse, type ClaudeManagedEvalOverrideValues, ClientBatchBuilder, type ClientConfig, type ClientConversation, ClientEvalBuilder, ClientFlowBuilder, type ClientToken, type ClientTokenConfig, type ClientTokenEnvironment, type ClientTokenVersionPin, ClientTokensEndpoint, type ClientToolDefinition, type ClientToolEntry, type ClientWidgetTheme, type CollectionMeta, CollectionsEndpoint, type ConditionalGetResult, type ConditionalStepConfig$1 as ConditionalStepConfig, type ContextErrorHandling, type ContextFallback, ContextTemplatesEndpoint, type Conversation, type ConversationListItem, type ConversationListParams, type ConversationMessage, type ConversationSource, ConversationsEndpoint, type ConversationsListResponse, type CreateApiKeyRequest, type CreateApiKeyRequestInput, type CreateApiKeyRequestResponse, type CreateClientTokenRequest, type CreateClientTokenResponse, type CreateCollectionRequest, type CreateConversationRequest, type CreateEvalSuiteInput, type CreateFlowRequest, type CreateModelConfigRequest, type CreatePromptData, type CreatePromptRequest, type CreateProviderKeyRequest, type CreateRecordRequest, type CreateScheduleRequest, type CreateSecretRequest, type CreateToolRequest, type CurrentBilledSpendResponse, type CurrentBilledSpendSource, type CustomMCPServer, type CustomMCPServerAuth, type CustomToolConfig, DEFAULT_MAX_DETACHED_RECONNECTS, DEFAULT_RECOVERY_AFTER_EMPTY_SESSIONS, DEFAULT_STALL_STOP_AFTER, type DecomposeCriteriaResult, type DefineAgentInput, type DefineEvalCaseInput, type DefineEvalInput, type DefineFlowInput, type DefineProductInput, type DefineSkillInput, type DefineSurfaceInput, type DefineToolInput, type DeployCfSandboxRequest, type DeployCfSandboxResponse, type DeploySandboxRequest, type DeploySandboxResponse, type DetachedReattach, type DetachedReconnectOptions, type DiscoveredModel, type DispatchAgentInput, type DispatchApprovalContinuationResponse, type DispatchApproveRequest, type DispatchApproveResponse, type DispatchClient, type DispatchContinuationRequest, type DispatchContinuationResponse, type DispatchDetachedApprovalResponse, DispatchEndpoint, type DispatchEnvironment, type DispatchEvent, type DispatchFlowInput, type DispatchMessageContent, type DispatchOptions$1 as DispatchOptions, type DispatchRequest, type DispatchResponse, type DispatchResumeRequest, type DispatchResumeResponse, type EndUserUsageQuery, type EndUserUsageResponse, type EnsureAgentConverged, type EnsureAgentOptions, type EnsureAgentPlan, type EnsureAgentResult, type EnsureEvalResult, type EnsureFlowConverged, type EnsureFlowOptions, type EnsureFlowPlan, type EnsureFlowResult, type EnsureFpoOptions, type EnsureFpoResult, type EnsureProductConverged, type EnsureProductOptions, type EnsureProductPlan, type EnsureProductResult, type EnsureSkillConverged, type EnsureSkillOptions, type EnsureSkillPlan, type EnsureSkillResult, type EnsureSurfaceConverged, type EnsureSurfaceOptions, type EnsureSurfacePlan, type EnsureSurfaceResult, type EnsureToolConverged, type EnsureToolOptions, type EnsureToolPlan, type EnsureToolResult, type ErrorHandlingMode, EvalBuilder, type EvalCaseDefinition, type EvalCaseInput, type EvalCaseProposal, type EvalCaseProposalAccepted, type EvalCaseProposalListResult, type EvalCasesGenerated, type EvalClient, type EvalDefinition, EvalEndpoint, type EvalListParams, type EvalMessage, type EvalOptions, type EvalOverrideValues, type EvalProposalSource, type EvalProposalStatus, type EvalProposedCase, type EvalPullResult, type EvalRecord, type EvalRequest, type EvalResult, type EvalRunCaseScores, type EvalRunConfig, type EvalRunScores, EvalRunner, type EvalStatus, type EvalSuiteCase, type EvalSuiteCaseInput, type EvalSuiteCoverage, type EvalSuiteDetail, type EvalSuiteLatestRun, type EvalSuiteListResult, type EvalSuiteRunQueued, type EvalSuiteRunResult, type EvalSuiteSummary, EvalSuitesNamespace, type EvalTarget, EvalsNamespace, type ExecuteToolRequest, type ExecuteToolResponse, type ExecutionStreamEvent, ExecutionsEndpoint, ExecutionsNamespace, type ExternalAgentContext, type ExternalToolConfig, type FallbackFailEvent, type FallbackStartEvent, type FallbackSuccessEvent, type FallbackTrigger, type FallbackTriggerType, type FallbacksExhaustedEvent, type FallbacksInitiatedEvent, type FetchUrlStepConfig$1 as FetchUrlStepConfig, type FieldFormat, type FileContentPart, type Flow, type FlowAttachment, FlowBuilder, type FlowCompleteEvent, type FlowConfig$1 as FlowConfig, type FlowDefinition, type FlowDefinitionStep, FlowDriftError, FlowEnsureConflictError, type FlowErrorEvent, type FlowFallback, type FlowInlineEvalInput, type FlowListItem, type FlowPausedEvent, type FlowPullResult, FlowResult, type FlowStartEvent, type FlowStep, type FlowStepDefinition, type FlowStepType, FlowStepsEndpoint, type FlowStreamEvent, type FlowSummary, type FlowToolConfig, type FlowValidationClient, type FlowValidationIssue, type FlowValidationResult, type FlowVersionDetail, type FlowVersionListItem, type FlowVersionPublishResponse, FlowVersionsEndpoint, type FlowVersionsListResponse, FlowsEndpoint, FlowsNamespace, type FpoEntityOutcome, type FpoInput, type GenerateEmbeddingStepConfig$1 as GenerateEmbeddingStepConfig, type GenerateEvalCasesInput, type GeneratedRuntimeToolGateDecision, type GeneratedRuntimeToolGateOptions, type GetApiKeyRequestResponse, type GetRecordStepConfig$1 as GetRecordStepConfig, type Gradeable, type GraderConfig, type GraderOutcome, type GraderSeverity, type HumanVerdict, type ImageContentPart, type InferCollectionSchemaResponse, type Integration, type IntegrationTool, IntegrationsEndpoint, type IntegrationsListResponse, type JSONSchema, type JsonArray, type JsonObject, type JsonPrimitive, type JsonValue, LEDGER_ARTIFACT_LINE_PREFIX, type ListCollectionsResponse, type ListConversationsResponse, type ListParams, type ListRecordsStepConfig$1 as ListRecordsStepConfig, type LocalToolConfig, type LocalToolDefinition, type LocalToolExecutionCompleteEvent, type LocalToolExecutionLoopSnapshotSlice, type LocalToolExecutionStartEvent, type LogEntry, type LogQueryParams, type LogQueryResponse, type LogQueryResult, type LogStatsParams, type LogStatsResponse, type LogStatsResult, LogsEndpoint, type LoopStepConfig$1 as LoopStepConfig, type Message$1 as Message, type MessageContent, type MessageFallback, type Metadata, type ModelConfig, ModelConfigsEndpoint, type ModelFallback, type ModelOverride, type ModelUsageDetail, type ModelUsageQueryParams, type ModelUsageResponse, type ModelUsageSummary, type ModelUsageTimeSeries, type PaginationResponse, type PersistedGraderOutcome, type ProductDefinition, ProductDriftError, ProductEnsureConflictError, type ProductPullResult, ProductsNamespace, type Prompt$1 as Prompt, type PromptErrorHandling, type PromptFallback, type PromptListParams, type PromptStepConfig$1 as PromptStepConfig, PromptsEndpoint, PromptsNamespace, type ProviderApiKey, type ProviderKeyModel, ProviderKeysEndpoint, type PullFpoResult, RUNTYPE_CLIENT_KIND, type ReasoningConfig, type ReasoningContentPart, type ReasoningValue, type RecordCollection, type RecordCollectionWithHistory, type RecordCollections, type RecordConfig$1 as RecordConfig, type RecordCostAggregation, type RecordCostModelBreakdown, type RecordFilter, type RecordFilterCondition, type RecordFilterGroup, type RecordFilterOperator, type RecordListItem, type RecordListParams, type RecordStepResult, type RecordStepResultsParams, type RecordStepResultsResponse, type RecordWriteResponse, RecordsEndpoint, type RetrieveRecordStepConfig$1 as RetrieveRecordStepConfig, type RetryFallback, type RunEvalCaseResult, type RunEvalInput, type RunEvalResult, type RunTaskContextBudgetBreakdown, type RunTaskContextCompactionEvent, type RunTaskContextCompactionStrategy, type RunTaskContextNoticeEvent, type RunTaskContextSummaryEntry, type RunTaskContinuation, type RunTaskOffloadRecorder, type RunTaskOnContextCompaction, type RunTaskOnContextNotice, type RunTaskOnSession, type RunTaskOptions, type RunTaskResult, type RunTaskResumeState, type RunTaskSessionSummary, type RunTaskState, type RunTaskStateSlice, type RunTaskStatus, type RunTaskToolTraceSlice, type RuntimeCustomToolConfig, type RuntimeExternalToolConfig, type RuntimeFlowToolConfig, type RuntimeLocalToolConfig, type RuntimeSubagentToolConfig, type RuntimeTool, type RuntimeToolConfig, Runtype, type AgentSkillBinding as RuntypeAgentSkillBinding, RuntypeApiError, RuntypeClient, type ConditionalStepConfig as RuntypeConditionalStepConfig, type RuntypeConfig, type FetchUrlStepConfig as RuntypeFetchUrlStepConfig, RuntypeFlowBuilder, type FlowConfig as RuntypeFlowConfig, type GenerateEmbeddingStepConfig as RuntypeGenerateEmbeddingStepConfig, type GetRecordStepConfig as RuntypeGetRecordStepConfig, type ListRecordsStepConfig as RuntypeListRecordsStepConfig, type LoopStepConfig as RuntypeLoopStepConfig, type Message as RuntypeMessage, type ModelOverride$1 as RuntypeModelOverride, type Prompt as RuntypePrompt, type PromptStepConfig as RuntypePromptStepConfig, type RuntypeRecord, type RecordConfig as RuntypeRecordConfig, type RetrieveRecordStepConfig as RuntypeRetrieveRecordStepConfig, type SearchStepConfig as RuntypeSearchStepConfig, type SendEmailStepConfig as RuntypeSendEmailStepConfig, type SendEventStepConfig as RuntypeSendEventStepConfig, type SendStreamStepConfig as RuntypeSendStreamStepConfig, type SetVariableStepConfig as RuntypeSetVariableStepConfig, type Skill as RuntypeSkill, type SkillCapabilities as RuntypeSkillCapabilities, type SkillFrontmatter as RuntypeSkillFrontmatter, type SkillManifest as RuntypeSkillManifest, type SkillProposal as RuntypeSkillProposal, type SkillRuntypeExtensions as RuntypeSkillRuntypeExtensions, type SkillVersion as RuntypeSkillVersion, type TransformDataStepConfig as RuntypeTransformDataStepConfig, type UpsertFlowConfig as RuntypeUpsertFlowConfig, type UpsertRecordStepConfig as RuntypeUpsertRecordStepConfig, type VectorSearchStepConfig as RuntypeVectorSearchStepConfig, type WaitUntilStepConfig as RuntypeWaitUntilStepConfig, SDK_USER_AGENT, SDK_VERSION, STEP_FIELD_REGISTRY, STEP_TYPE_TO_METHOD, type Schedule, type ScheduleExecutionOptions, type ScheduleListParams, type ScheduleMessage, type ScheduleMessageSet, type ScheduleMessages, type ScheduleMutationResponse, type ScheduleRun, type ScheduleRunNowResponse, type ScheduleStatusResponse, type ScheduleTarget, type ScheduleTrigger, SchedulesEndpoint, type SearchStepConfig$1 as SearchStepConfig, type Secret, type SecretCheckResponse, type SecretDeleteResponse, type SecretSetupUrlRequest, type SecretSetupUrlResponse, SecretsEndpoint, type SelectOrganizationProviderCredentialRequest, type SelectOrganizationProviderCredentialResponse, type SendEmailStepConfig$1 as SendEmailStepConfig, type SendEventStepConfig$1 as SendEventStepConfig, type SendStreamStepConfig$1 as SendStreamStepConfig, type SetVariableStepConfig$1 as SetVariableStepConfig, type SkillDefinition, SkillDriftError, SkillEnsureConflictError, type SkillListPage, type SkillListPagination, type SkillListParams, type SkillManifestInput, type SkillMarkdownInput, type SkillOrigin, type SkillProposalStatus, SkillProposalsNamespace, type SkillPullResult, type SkillStatus, type SkillTrustLevel, type SkillVersionStatus, type SkillWithVersion, type SkillWriteInput, SkillsNamespace, type SlackAppStatusResponse, type SlackInstallRequest, type SlackManifestRequest, type SlackManifestResponse, type SlackOAuthStartRequest, type SlackOAuthStartResponse, type StepCompleteEvent, type StepDeltaEvent, type StepFallback, type StepFieldMeta, type StepStartEvent, type StepWaitingLocalEvent, type StreamCallbacks, type StreamConsumeOptions, type StreamEvent, type StreamEventOf, type SubagentToolConfig, type Surface, type SurfaceDefinition, type SurfaceDefinitionStatus, type SurfaceDefinitionType, SurfaceDriftError, SurfaceEnsureConflictError, type SurfaceListParams, type SurfacePullResult, SurfacesEndpoint, SurfacesNamespace, type TextContentPart, type Tool, type ToolApprovalGrant, ToolApprovalGrantsEndpoint, type ToolConfig, type ToolDefinition, type ToolDefinitionType, ToolDriftError, ToolEnsureConflictError, type ToolPullResult, type ToolWithValidation, type ToolsConfig, ToolsEndpoint, ToolsNamespace, type TransformDataStepConfig$1 as TransformDataStepConfig, type TypedCreateRecordRequest, type TypedRecordListItem, type TypedRecordWriteResponse, TypedRecordsScope, type TypedRuntypeRecord, UNIFIED_EVENTS_QUERY, type UpdateClientTokenRequest, type UpdateCollectionRequest, type UpdateCollectionResponse, type UpdateConversationRequest, type UpdateEvalCaseInput, type UpdateEvalSuiteInput, type UpdateFlowRequest, type UpdatePromptData, type UpdateProviderKeyRequest, type UpdateScheduleRequest, type UpdateSecretRequest, type UpdateToolRequest, type UpdatedFlow, type UpsertFlowConfig$1 as UpsertFlowConfig, type UpsertOptions, type UpsertRecordStepConfig$1 as UpsertRecordStepConfig, type UserProfile, UsersEndpoint, type ValidateExistingRecordsResponse, type VectorSearchStepConfig$1 as VectorSearchStepConfig, type VersionPublishOptions, type VersionType, type WaitUntilStepConfig$1 as WaitUntilStepConfig, type WorkflowCompileDeps, type WorkflowCompletionCriteriaConfig, type WorkflowConfig, type WorkflowConfigFactory, type WorkflowContext, type WorkflowDefinition, type WorkflowHookEntry, type WorkflowHookKind, type WorkflowHookRef, type WorkflowHookSignatures, type WorkflowMilestoneConfig, type WorkflowPhase, type WorkflowPolicyConfig, type WorkflowRecoveryConfig, type WorkflowSlot, type WorkflowStallPolicy, applyGeneratedRuntimeToolProposalToDispatchRequest, attachRuntimeToolsToDispatchRequest, buildAgentAdmissionHeaders, buildEmptySessionNudge, buildGeneratedRuntimeToolGateOutput, buildLedgerOffloadReference, buildObservationMaskMarker, buildPolicyGuidance, buildSendViewOffloadMarker, calledTool, compileWorkflowConfig, completed, computeAgentContentHash, computeEvalContentHash, computeFlowContentHash, computeFpoContentHash, computeProductContentHash, computeSkillContentHash, computeSurfaceContentHash, computeToolContentHash, contains, cost, createAgentEventTranslator, createClient, createExternalTool, createFlowEventTranslator, defaultWorkflow, defaultWorkflowConfig, defineAgent, defineEval, defineFlow, defineFpo, definePlaybook, defineProduct, defineSkill, defineSurface, defineTool, deployWorkflow, ensureDefaultWorkflowHooks, ensureEval, ensureFpo, evaluateGeneratedRuntimeToolProposal, extractDeclaredToolResultChars, gameWorkflow, getDefaultPlanPath, getLikelySupportingCandidatePaths, interpolateWorkflowTemplate, isCatalogClientToolRef, isDiscoveryToolName, isMarathonArtifactPath, isPreservationSensitiveTask, isUnifiedEventType, isWorkflowHookRef, jsonField, judge, judges, latency, length, listWorkflowHooks, matchesExpected, maxToolCalls, noError, normalizeAgentDefinition, normalizeCandidatePath, normalizeFpoDefinition, normalizeProductDefinition, normalizeSkillDefinition, normalizeSurfaceDefinition, normalizeToolDefinition, notCalledTool, notContains, parseFinalBuffer, parseLedgerArtifactRelativePath, parseOffloadedOutputId, parseSSEChunk, processStream, pullEval, pullFpo, ranStep, regex, registerWorkflowHook, resolveStallStopAfter, resolveWorkflowHook, runEvalSuite, sanitizeTaskSlug, shouldInjectEmptySessionNudge, shouldRequestModelEscalation, stepOrder, streamEvents, toolOrder, unregisterWorkflowHook, usedNoTools, validJson, withDetachedReconnect, withUnifiedEvents };
60837
+ export { type AIGrader, type Agent, type AgentAdmissionOptions, type AgentApprovalCompleteEvent, type AgentApprovalStartEvent, type AgentCompleteEvent, type AgentDefinition, type AgentDefinitionConfig, AgentDriftError, type AgentElicitation, type AgentElicitationRequest, AgentEnsureConflictError, type AgentErrorEvent, type AgentEvent, type AgentEventType, type AgentExecuteRequest, type AgentExecuteResponse, type AgentIterationCompleteEvent, type AgentIterationStartEvent, type AgentMediaEvent, type AgentMessage, type AgentPausedEvent, type AgentPingEvent, type AgentPullResult, type AgentReflectionEvent, type AgentRuntimeToolDefinition, type AgentStartEvent, type AgentStreamCallbacks, type AgentStreamEvent, type AgentSubagentConfig, type AgentToolCompleteEvent, type AgentToolDeltaEvent, type AgentToolInputCompleteEvent, type AgentToolInputDeltaEvent, type AgentToolStartEvent, type AgentTurnCompleteEvent, type AgentTurnDeltaEvent, type AgentTurnStartEvent, type AgentVersionDetail, type AgentVersionListItem, type AgentVersionPublishResponse, AgentVersionsEndpoint, type AgentVersionsListResponse, AgentsEndpoint, AgentsNamespace, AnalyticsEndpoint, type ApiClient, type ApiKey, type ApiKeyRequest, type ApiKeyRequestDelivery, type ApiKeyRequestEnvironment, type ApiKeyRequestHandoff, type ApiKeyRequestListParams, type ApiKeyRequestRequester, type ApiKeyRequestStatus, ApiKeyRequestsEndpoint, ApiKeysEndpoint, type ApiResponse, type ApplyGeneratedProposalOptions, type ApplyGeneratedProposalResult, type AssetReferenceContentPart, type AsyncExecutionHandle, type AsyncExecutionStatus, type AttachRuntimeToolsOptions, type BaseAgentEvent, BatchBuilder, type BatchClient, type BatchListParams, type BatchOptions, type BatchRequest, type BatchResult, type BatchScheduleConfig, type BatchStatus, BatchesNamespace, BillingEndpoint, type BillingSpendAnalyticsParams, type BindSkillInput, type BuiltInGraderId, type BuiltInTool, type BulkEditCondition, type BulkEditRequest, type BulkEditResponse, type BulkEditResult, type CanonicalDispatchMessageContent, type CanonicalDispatchRequest, type CaseExpected, type CatalogClientToolRef, ChatEndpoint, type CheckGrader, type ClaimApiKeyRequestInput, type ClaimApiKeyRequestResponse, type ClaudeManagedEvalOverrideValues, ClientBatchBuilder, type ClientConfig, type ClientConversation, ClientEvalBuilder, ClientFlowBuilder, type ClientToken, type ClientTokenConfig, type ClientTokenEnvironment, type ClientTokenVersionPin, ClientTokensEndpoint, type ClientToolDefinition, type ClientToolEntry, type ClientWidgetTheme, type CollectionMeta, CollectionsEndpoint, type ConditionalGetResult, type ConditionalStepConfig$1 as ConditionalStepConfig, type ContextErrorHandling, type ContextFallback, ContextTemplatesEndpoint, type Conversation, type ConversationListItem, type ConversationListParams, type ConversationMessage, type ConversationSource, ConversationsEndpoint, type ConversationsListResponse, type CreateApiKeyRequest, type CreateApiKeyRequestInput, type CreateApiKeyRequestResponse, type CreateClientTokenRequest, type CreateClientTokenResponse, type CreateCollectionRequest, type CreateConversationRequest, type CreateEvalSuiteInput, type CreateFlowRequest, type CreateModelConfigRequest, type CreatePromptData, type CreatePromptRequest, type CreateProviderKeyRequest, type CreateRecordRequest, type CreateScheduleRequest, type CreateSecretRequest, type CreateToolRequest, type CurrentBilledSpendResponse, type CurrentBilledSpendSource, type CustomMCPServer, type CustomMCPServerAuth, type CustomToolConfig, DEFAULT_MAX_DETACHED_RECONNECTS, DEFAULT_RECOVERY_AFTER_EMPTY_SESSIONS, DEFAULT_STALL_STOP_AFTER, type DecomposeCriteriaResult, type DefineAgentInput, type DefineEvalCaseInput, type DefineEvalInput, type DefineFlowInput, type DefineProductInput, type DefineSkillInput, type DefineSurfaceInput, type DefineToolInput, type DeployCfSandboxRequest, type DeployCfSandboxResponse, type DeploySandboxRequest, type DeploySandboxResponse, type DetachedReattach, type DetachedReconnectOptions, type DiscoveredModel, type DispatchAgentInput, type DispatchApprovalContinuationResponse, type DispatchApproveRequest, type DispatchApproveResponse, type DispatchClient, type DispatchContinuationRequest, type DispatchContinuationResponse, type DispatchDetachedApprovalResponse, type DispatchDetachedToolOutputResponse, DispatchEndpoint, type DispatchEnvironment, type DispatchEvent, type DispatchFlowInput, type DispatchMessageContent, type DispatchOptions$1 as DispatchOptions, type DispatchRequest, type DispatchResponse, type DispatchResumeJsonResponse, type DispatchResumeRequest, type DispatchResumeResponse, type EndUserUsageQuery, type EndUserUsageResponse, type EnsureAgentConverged, type EnsureAgentOptions, type EnsureAgentPlan, type EnsureAgentResult, type EnsureEvalResult, type EnsureFlowConverged, type EnsureFlowOptions, type EnsureFlowPlan, type EnsureFlowResult, type EnsureFpoOptions, type EnsureFpoResult, type EnsureProductConverged, type EnsureProductOptions, type EnsureProductPlan, type EnsureProductResult, type EnsureSkillConverged, type EnsureSkillOptions, type EnsureSkillPlan, type EnsureSkillResult, type EnsureSurfaceConverged, type EnsureSurfaceOptions, type EnsureSurfacePlan, type EnsureSurfaceResult, type EnsureToolConverged, type EnsureToolOptions, type EnsureToolPlan, type EnsureToolResult, type ErrorHandlingMode, EvalBuilder, type EvalCaseDefinition, type EvalCaseInput, type EvalCaseProposal, type EvalCaseProposalAccepted, type EvalCaseProposalListResult, type EvalCasesGenerated, type EvalClient, type EvalDefinition, EvalEndpoint, type EvalListParams, type EvalMessage, type EvalOptions, type EvalOverrideValues, type EvalProposalSource, type EvalProposalStatus, type EvalProposedCase, type EvalPullResult, type EvalRecord, type EvalRequest, type EvalResult, type EvalRunCaseScores, type EvalRunConfig, type EvalRunScores, EvalRunner, type EvalStatus, type EvalSuiteCase, type EvalSuiteCaseInput, type EvalSuiteCoverage, type EvalSuiteDetail, type EvalSuiteLatestRun, type EvalSuiteListResult, type EvalSuiteRunQueued, type EvalSuiteRunResult, type EvalSuiteSummary, EvalSuitesNamespace, type EvalTarget, EvalsNamespace, type ExecuteToolRequest, type ExecuteToolResponse, type ExecutionCounts, type ExecutionStreamEvent, ExecutionsEndpoint, ExecutionsNamespace, type ExternalAgentContext, type ExternalToolConfig, type FallbackFailEvent, type FallbackStartEvent, type FallbackSuccessEvent, type FallbackTrigger, type FallbackTriggerType, type FallbacksExhaustedEvent, type FallbacksInitiatedEvent, type FetchUrlStepConfig$1 as FetchUrlStepConfig, type FieldFormat, type FileContentPart, type Flow, type FlowAttachment, FlowBuilder, type FlowCompleteEvent, type FlowConfig$1 as FlowConfig, type FlowDefinition, type FlowDefinitionStep, FlowDriftError, FlowEnsureConflictError, type FlowErrorEvent, type FlowFallback, type FlowInlineEvalInput, type FlowListItem, type FlowPausedEvent, type FlowPullResult, FlowResult, type FlowStartEvent, type FlowStep, type FlowStepDefinition, type FlowStepType, FlowStepsEndpoint, type FlowStreamEvent, type FlowSummary, type FlowToolConfig, type FlowValidationClient, type FlowValidationIssue, type FlowValidationResult, type FlowVersionDetail, type FlowVersionListItem, type FlowVersionPublishResponse, FlowVersionsEndpoint, type FlowVersionsListResponse, FlowsEndpoint, FlowsNamespace, type FpoEntityOutcome, type FpoInput, type GenerateEmbeddingStepConfig$1 as GenerateEmbeddingStepConfig, type GenerateEvalCasesInput, type GeneratedRuntimeToolGateDecision, type GeneratedRuntimeToolGateOptions, type GetApiKeyRequestResponse, type GetRecordStepConfig$1 as GetRecordStepConfig, type Gradeable, type GraderConfig, type GraderOutcome, type GraderSeverity, type HealthInsight, type HumanVerdict, type ImageContentPart, type InferCollectionSchemaResponse, type Integration, type IntegrationTool, IntegrationsEndpoint, type IntegrationsListResponse, type JSONSchema, type JsonArray, type JsonObject, type JsonPrimitive, type JsonValue, LEDGER_ARTIFACT_LINE_PREFIX, type ListCollectionsResponse, type ListConversationsResponse, type ListParams, type ListRecordsStepConfig$1 as ListRecordsStepConfig, type LocalToolConfig, type LocalToolDefinition, type LocalToolExecutionCompleteEvent, type LocalToolExecutionLoopSnapshotSlice, type LocalToolExecutionStartEvent, type LogEntry, type LogQueryParams, type LogQueryResponse, type LogQueryResult, type LogStatsParams, type LogStatsResponse, type LogStatsResult, LogsEndpoint, type LoopStepConfig$1 as LoopStepConfig, type Message$1 as Message, type MessageContent, type MessageFallback, type Metadata, type MetricDelta, type ModelConfig, ModelConfigsEndpoint, type ModelFallback, type ModelOverride, type ModelUsageDetail, type ModelUsageQueryParams, type ModelUsageResponse, type ModelUsageSummary, type ModelUsageTimeSeries, type PaginationResponse, type PersistedGraderOutcome, type ProductDefinition, ProductDriftError, ProductEnsureConflictError, type ProductPullResult, type ProductionHealthQuery, type ProductionHealthResponse, ProductsNamespace, type Prompt$1 as Prompt, type PromptErrorHandling, type PromptFallback, type PromptListParams, type PromptStepConfig$1 as PromptStepConfig, PromptsEndpoint, PromptsNamespace, type ProviderApiKey, type ProviderKeyModel, ProviderKeysEndpoint, type PullFpoResult, RUNTYPE_CLIENT_KIND, type ReasoningConfig, type ReasoningContentPart, type ReasoningValue, type RecordCollection, type RecordCollectionWithHistory, type RecordCollections, type RecordConfig$1 as RecordConfig, type RecordCostAggregation, type RecordCostModelBreakdown, type RecordFilter, type RecordFilterCondition, type RecordFilterGroup, type RecordFilterOperator, type RecordListItem, type RecordListParams, type RecordStepResult, type RecordStepResultsParams, type RecordStepResultsResponse, type RecordWriteResponse, RecordsEndpoint, type RetrieveRecordStepConfig$1 as RetrieveRecordStepConfig, type RetryFallback, type RunEvalCaseResult, type RunEvalInput, type RunEvalResult, type RunTaskContextBudgetBreakdown, type RunTaskContextCompactionEvent, type RunTaskContextCompactionStrategy, type RunTaskContextNoticeEvent, type RunTaskContextSummaryEntry, type RunTaskContinuation, type RunTaskOffloadRecorder, type RunTaskOnContextCompaction, type RunTaskOnContextNotice, type RunTaskOnSession, type RunTaskOptions, type RunTaskResult, type RunTaskResumeState, type RunTaskSessionSummary, type RunTaskState, type RunTaskStateSlice, type RunTaskStatus, type RunTaskToolTraceSlice, type RuntimeCustomToolConfig, type RuntimeExternalToolConfig, type RuntimeFlowToolConfig, type RuntimeLocalToolConfig, type RuntimeSubagentToolConfig, type RuntimeTool, type RuntimeToolConfig, Runtype, type AgentSkillBinding as RuntypeAgentSkillBinding, RuntypeApiError, RuntypeClient, type ConditionalStepConfig as RuntypeConditionalStepConfig, type RuntypeConfig, type FetchUrlStepConfig as RuntypeFetchUrlStepConfig, RuntypeFlowBuilder, type FlowConfig as RuntypeFlowConfig, type GenerateEmbeddingStepConfig as RuntypeGenerateEmbeddingStepConfig, type GetRecordStepConfig as RuntypeGetRecordStepConfig, type ListRecordsStepConfig as RuntypeListRecordsStepConfig, type LoopStepConfig as RuntypeLoopStepConfig, type Message as RuntypeMessage, type ModelOverride$1 as RuntypeModelOverride, type Prompt as RuntypePrompt, type PromptStepConfig as RuntypePromptStepConfig, type RuntypeRecord, type RecordConfig as RuntypeRecordConfig, type RetrieveRecordStepConfig as RuntypeRetrieveRecordStepConfig, type SearchStepConfig as RuntypeSearchStepConfig, type SendEmailStepConfig as RuntypeSendEmailStepConfig, type SendEventStepConfig as RuntypeSendEventStepConfig, type SendStreamStepConfig as RuntypeSendStreamStepConfig, type SetVariableStepConfig as RuntypeSetVariableStepConfig, type Skill as RuntypeSkill, type SkillCapabilities as RuntypeSkillCapabilities, type SkillFrontmatter as RuntypeSkillFrontmatter, type SkillManifest as RuntypeSkillManifest, type SkillProposal as RuntypeSkillProposal, type SkillRuntypeExtensions as RuntypeSkillRuntypeExtensions, type SkillVersion as RuntypeSkillVersion, type TransformDataStepConfig as RuntypeTransformDataStepConfig, type UpsertFlowConfig as RuntypeUpsertFlowConfig, type UpsertRecordStepConfig as RuntypeUpsertRecordStepConfig, type VectorSearchStepConfig as RuntypeVectorSearchStepConfig, type WaitUntilStepConfig as RuntypeWaitUntilStepConfig, SDK_USER_AGENT, SDK_VERSION, STEP_FIELD_REGISTRY, STEP_TYPE_TO_METHOD, type SandboxDeployEffectivePolicy, type SandboxDeployRetention, type SandboxDeploySleepPolicy, type Schedule, type ScheduleExecutionOptions, type ScheduleListParams, type ScheduleMessage, type ScheduleMessageSet, type ScheduleMessages, type ScheduleMutationResponse, type ScheduleRun, type ScheduleRunNowResponse, type ScheduleStatusResponse, type ScheduleTarget, type ScheduleTrigger, SchedulesEndpoint, type SearchStepConfig$1 as SearchStepConfig, type Secret, type SecretCheckResponse, type SecretDeleteResponse, type SecretSetupUrlRequest, type SecretSetupUrlResponse, SecretsEndpoint, type SelectOrganizationProviderCredentialRequest, type SelectOrganizationProviderCredentialResponse, type SendEmailStepConfig$1 as SendEmailStepConfig, type SendEventStepConfig$1 as SendEventStepConfig, type SendStreamStepConfig$1 as SendStreamStepConfig, type SetVariableStepConfig$1 as SetVariableStepConfig, type SkillDefinition, SkillDriftError, SkillEnsureConflictError, type SkillListPage, type SkillListPagination, type SkillListParams, type SkillManifestInput, type SkillMarkdownInput, type SkillOrigin, type SkillProposalStatus, SkillProposalsNamespace, type SkillPullResult, type SkillStatus, type SkillTrustLevel, type SkillVersionStatus, type SkillWithVersion, type SkillWriteInput, SkillsNamespace, type SlackAppStatusResponse, type SlackInstallRequest, type SlackManifestRequest, type SlackManifestResponse, type SlackOAuthStartRequest, type SlackOAuthStartResponse, type StepCompleteEvent, type StepDeltaEvent, type StepFallback, type StepFieldMeta, type StepStartEvent, type StepWaitingLocalEvent, type StreamCallbacks, type StreamConsumeOptions, type StreamEvent, type StreamEventOf, type SubagentToolConfig, type Surface, type SurfaceDefinition, type SurfaceDefinitionStatus, type SurfaceDefinitionType, SurfaceDriftError, SurfaceEnsureConflictError, type SurfaceListParams, type SurfacePullResult, SurfacesEndpoint, SurfacesNamespace, type TextContentPart, type Tool, type ToolApprovalGrant, ToolApprovalGrantsEndpoint, type ToolConfig, type ToolDefinition, type ToolDefinitionType, ToolDriftError, ToolEnsureConflictError, type ToolPullResult, type ToolWithValidation, type ToolsConfig, ToolsEndpoint, ToolsNamespace, type TransformDataStepConfig$1 as TransformDataStepConfig, type TypedCreateRecordRequest, type TypedRecordListItem, type TypedRecordWriteResponse, TypedRecordsScope, type TypedRuntypeRecord, UNIFIED_EVENTS_QUERY, type UpdateClientTokenRequest, type UpdateCollectionRequest, type UpdateCollectionResponse, type UpdateConversationRequest, type UpdateEvalCaseInput, type UpdateEvalSuiteInput, type UpdateFlowRequest, type UpdatePromptData, type UpdateProviderKeyRequest, type UpdateScheduleRequest, type UpdateSecretRequest, type UpdateToolRequest, type UpdatedFlow, type UpsertFlowConfig$1 as UpsertFlowConfig, type UpsertOptions, type UpsertRecordStepConfig$1 as UpsertRecordStepConfig, type UserProfile, UsersEndpoint, type ValidateExistingRecordsResponse, type VectorSearchStepConfig$1 as VectorSearchStepConfig, type VersionPublishOptions, type VersionType, type WaitUntilStepConfig$1 as WaitUntilStepConfig, type WorkflowCompileDeps, type WorkflowCompletionCriteriaConfig, type WorkflowConfig, type WorkflowConfigFactory, type WorkflowContext, type WorkflowDefinition, type WorkflowHookEntry, type WorkflowHookKind, type WorkflowHookRef, type WorkflowHookSignatures, type WorkflowMilestoneConfig, type WorkflowPhase, type WorkflowPolicyConfig, type WorkflowRecoveryConfig, type WorkflowSlot, type WorkflowStallPolicy, applyGeneratedRuntimeToolProposalToDispatchRequest, attachRuntimeToolsToDispatchRequest, buildAgentAdmissionHeaders, buildEmptySessionNudge, buildExecutionEventsPath, buildGeneratedRuntimeToolGateOutput, buildLedgerOffloadReference, buildObservationMaskMarker, buildPolicyGuidance, buildSendViewOffloadMarker, calledTool, combineAbortSignals, compileWorkflowConfig, completed, computeAgentContentHash, computeEvalContentHash, computeFlowContentHash, computeFpoContentHash, computeProductContentHash, computeSkillContentHash, computeSurfaceContentHash, computeToolContentHash, contains, cost, createAgentEventTranslator, createClient, createExternalTool, createFlowEventTranslator, defaultWorkflow, defaultWorkflowConfig, defineAgent, defineEval, defineFlow, defineFpo, definePlaybook, defineProduct, defineSkill, defineSurface, defineTool, deployWorkflow, ensureDefaultWorkflowHooks, ensureEval, ensureFpo, evaluateGeneratedRuntimeToolProposal, extractDeclaredToolResultChars, gameWorkflow, getDefaultPlanPath, getLikelySupportingCandidatePaths, interpolateWorkflowTemplate, isCatalogClientToolRef, isDiscoveryToolName, isMarathonArtifactPath, isPreservationSensitiveTask, isUnifiedEventType, isWorkflowHookRef, jsonField, judge, judges, latency, length, listWorkflowHooks, matchesExpected, maxToolCalls, noError, normalizeAgentDefinition, normalizeCandidatePath, normalizeFpoDefinition, normalizeProductDefinition, normalizeSkillDefinition, normalizeSurfaceDefinition, normalizeToolDefinition, notCalledTool, notContains, parseFinalBuffer, parseLedgerArtifactRelativePath, parseOffloadedOutputId, parseSSEChunk, processStream, pullEval, pullFpo, ranStep, regex, registerWorkflowHook, resolveStallStopAfter, resolveWorkflowHook, runEvalSuite, sanitizeTaskSlug, shouldInjectEmptySessionNudge, shouldRequestModelEscalation, stepOrder, streamEvents, toolOrder, unregisterWorkflowHook, usedNoTools, validJson, withDetachedReconnect, withUnifiedEvents };