@runtypelabs/sdk 10.8.1 → 10.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +988 -215
- package/dist/index.d.cts +2061 -536
- package/dist/index.d.ts +2061 -536
- package/dist/index.mjs +967 -215
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -1480,6 +1480,8 @@ interface paths {
|
|
|
1480
1480
|
requestBody?: {
|
|
1481
1481
|
content: {
|
|
1482
1482
|
"application/json": {
|
|
1483
|
+
/** @description The complete set of capabilities (flow, sub-agent and saved-tool attachments) on this agent, in display order. Each entry names its source by name, so the declaration is portable across accounts. Capabilities on the agent but absent here are removed; omit the field to leave them untouched. When present, the capabilities are part of the content hash and of the version this converge snapshots. They are written to the agent itself, so they cannot accompany a non-live deploy. */
|
|
1484
|
+
capabilities?: components["schemas"]["AgentEnsureCapability"][];
|
|
1483
1485
|
contentHash?: string;
|
|
1484
1486
|
definition?: {
|
|
1485
1487
|
config?: {
|
|
@@ -1790,6 +1792,8 @@ interface paths {
|
|
|
1790
1792
|
* @enum {string}
|
|
1791
1793
|
*/
|
|
1792
1794
|
release?: "none" | "publish";
|
|
1795
|
+
/** @description The complete set of skills bound to this agent, in load order. Each entry names a skill by slug; `version` pins that skill versionNumber, and omitting it follows the skill's published version. Skills bound to the agent but absent here are unbound; omit the field to leave bindings untouched. Bindings are agent state, not alias state, so they take effect immediately and cannot accompany a non-live deploy. */
|
|
1796
|
+
skills?: components["schemas"]["AgentEnsureSkillBinding"][];
|
|
1793
1797
|
version?: components["schemas"]["EnsureVersionMetadata"];
|
|
1794
1798
|
};
|
|
1795
1799
|
};
|
|
@@ -1849,15 +1853,6 @@ interface paths {
|
|
|
1849
1853
|
"application/json": components["schemas"]["AgentEnsureHashMismatch"];
|
|
1850
1854
|
};
|
|
1851
1855
|
};
|
|
1852
|
-
/** @description Active preview alias quota exceeded for the organization or the agent (code PREVIEW_ALIAS_LIMIT). Archive a preview alias and retry. */
|
|
1853
|
-
429: {
|
|
1854
|
-
headers: {
|
|
1855
|
-
[name: string]: unknown;
|
|
1856
|
-
};
|
|
1857
|
-
content: {
|
|
1858
|
-
"application/json": components["schemas"]["AgentEnsurePreviewAliasLimit"];
|
|
1859
|
-
};
|
|
1860
|
-
};
|
|
1861
1856
|
/** @description Internal server error, or code alias_activation_failed when a non-live activation could not be applied (nothing was written) */
|
|
1862
1857
|
500: {
|
|
1863
1858
|
headers: {
|
|
@@ -3059,7 +3054,7 @@ interface paths {
|
|
|
3059
3054
|
};
|
|
3060
3055
|
/**
|
|
3061
3056
|
* Activate a version at a release alias
|
|
3062
|
-
* @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. Activating a preview alias renews its 14-day expiry; `live` never expires.
|
|
3057
|
+
* @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. Activating a preview alias renews its 14-day expiry; `live` never expires.
|
|
3063
3058
|
*/
|
|
3064
3059
|
put: {
|
|
3065
3060
|
parameters: {
|
|
@@ -3094,14 +3089,10 @@ interface paths {
|
|
|
3094
3089
|
};
|
|
3095
3090
|
content: {
|
|
3096
3091
|
"application/json": {
|
|
3097
|
-
/** @description How many preview aliases this agent has active after the write. Null for `live`, which is never counted. Read it beside `previewLimit` to see a per-pull-request pipeline filling up before an activation is refused with PREVIEW_ALIAS_LIMIT. */
|
|
3098
|
-
activePreviewCount: number | null;
|
|
3099
3092
|
alias: string;
|
|
3100
3093
|
/** @description Per-alias secret binding names in force after this activation. Names only, never values. */
|
|
3101
3094
|
bindingNames: string[];
|
|
3102
3095
|
changed: boolean;
|
|
3103
|
-
/** @description The active-preview ceiling this agent is counted against. Null for `live`. */
|
|
3104
|
-
previewLimit: number | null;
|
|
3105
3096
|
receiptId: string;
|
|
3106
3097
|
revision: number;
|
|
3107
3098
|
versionId: string;
|
|
@@ -3193,15 +3184,6 @@ interface paths {
|
|
|
3193
3184
|
"application/json": components["schemas"]["Error"];
|
|
3194
3185
|
};
|
|
3195
3186
|
};
|
|
3196
|
-
/** @description Active preview alias quota exceeded for the organization or the agent */
|
|
3197
|
-
429: {
|
|
3198
|
-
headers: {
|
|
3199
|
-
[name: string]: unknown;
|
|
3200
|
-
};
|
|
3201
|
-
content: {
|
|
3202
|
-
"application/json": components["schemas"]["PreviewAliasLimitError"];
|
|
3203
|
-
};
|
|
3204
|
-
};
|
|
3205
3187
|
/** @description Internal server error */
|
|
3206
3188
|
500: {
|
|
3207
3189
|
headers: {
|
|
@@ -3716,14 +3698,10 @@ interface paths {
|
|
|
3716
3698
|
};
|
|
3717
3699
|
content: {
|
|
3718
3700
|
"application/json": {
|
|
3719
|
-
/** @description How many preview aliases this agent has active after the write. Null for `live`, which is never counted. Read it beside `previewLimit` to see a per-pull-request pipeline filling up before an activation is refused with PREVIEW_ALIAS_LIMIT. */
|
|
3720
|
-
activePreviewCount: number | null;
|
|
3721
3701
|
alias: string;
|
|
3722
3702
|
/** @description Per-alias secret binding names in force after this activation. Names only, never values. */
|
|
3723
3703
|
bindingNames: string[];
|
|
3724
3704
|
changed: boolean;
|
|
3725
|
-
/** @description The active-preview ceiling this agent is counted against. Null for `live`. */
|
|
3726
|
-
previewLimit: number | null;
|
|
3727
3705
|
receiptId: string;
|
|
3728
3706
|
revision: number;
|
|
3729
3707
|
versionId: string;
|
|
@@ -10544,6 +10522,8 @@ interface paths {
|
|
|
10544
10522
|
icon: string | null;
|
|
10545
10523
|
id: string;
|
|
10546
10524
|
indexedFields: string[];
|
|
10525
|
+
/** @description Who last wrote the definition (e.g. dashboard, api, sdk); sdk/terraform mean managed in code. */
|
|
10526
|
+
lastModifiedSource: string | null;
|
|
10547
10527
|
recordCount?: number;
|
|
10548
10528
|
/** @description Constrained JSON Schema dialect: root object with string/number/boolean/array/object properties, one nesting level, no $ref/oneOf/pattern */
|
|
10549
10529
|
schema: {
|
|
@@ -10642,6 +10622,8 @@ interface paths {
|
|
|
10642
10622
|
icon: string | null;
|
|
10643
10623
|
id: string;
|
|
10644
10624
|
indexedFields: string[];
|
|
10625
|
+
/** @description Who last wrote the definition (e.g. dashboard, api, sdk); sdk/terraform mean managed in code. */
|
|
10626
|
+
lastModifiedSource: string | null;
|
|
10645
10627
|
recordCount?: number;
|
|
10646
10628
|
/** @description Constrained JSON Schema dialect: root object with string/number/boolean/array/object properties, one nesting level, no $ref/oneOf/pattern */
|
|
10647
10629
|
schema: {
|
|
@@ -10712,55 +10694,74 @@ interface paths {
|
|
|
10712
10694
|
patch?: never;
|
|
10713
10695
|
trace?: never;
|
|
10714
10696
|
};
|
|
10715
|
-
"/v1/collections/
|
|
10697
|
+
"/v1/collections/ensure": {
|
|
10716
10698
|
parameters: {
|
|
10717
10699
|
query?: never;
|
|
10718
10700
|
header?: never;
|
|
10719
10701
|
path?: never;
|
|
10720
10702
|
cookie?: never;
|
|
10721
10703
|
};
|
|
10704
|
+
get?: never;
|
|
10705
|
+
put?: never;
|
|
10722
10706
|
/**
|
|
10723
|
-
*
|
|
10724
|
-
* @description
|
|
10707
|
+
* Ensure collection (config-as-code converge)
|
|
10708
|
+
* @description Idempotently converge a repo-defined record collection (display fields, schema and validationMode) onto the platform. Identity is slug + account scope. Hash-only probes skip the payload in the steady state (a miss is a normal 200 `definitionRequired` response); full requests create the collection or update it when the canonical content hash differs. Schema changes follow the same rules as PATCH: they bump schemaVersion and append history, and a breaking change is rejected while the resulting mode is `enforce`. Set dryRun to plan without writing (CI drift gate), and onConflict: "overwrite" to converge over dashboard/API edits. Ensure never deletes a collection and never touches records.
|
|
10725
10709
|
*/
|
|
10726
|
-
|
|
10710
|
+
post: {
|
|
10727
10711
|
parameters: {
|
|
10728
10712
|
query?: never;
|
|
10729
10713
|
header?: never;
|
|
10730
10714
|
path?: never;
|
|
10731
10715
|
cookie?: never;
|
|
10732
10716
|
};
|
|
10733
|
-
requestBody?:
|
|
10734
|
-
|
|
10735
|
-
|
|
10736
|
-
|
|
10737
|
-
|
|
10738
|
-
|
|
10739
|
-
|
|
10740
|
-
|
|
10741
|
-
|
|
10717
|
+
requestBody?: {
|
|
10718
|
+
content: {
|
|
10719
|
+
"application/json": {
|
|
10720
|
+
contentHash?: string;
|
|
10721
|
+
definition?: {
|
|
10722
|
+
description?: string | null;
|
|
10723
|
+
displayName: string;
|
|
10724
|
+
icon?: string | null;
|
|
10725
|
+
/** @description Constrained JSON Schema dialect: root object with string/number/boolean/array/object properties, one nesting level, no $ref/oneOf/pattern */
|
|
10726
|
+
schema?: {
|
|
10727
|
+
[key: string]: unknown;
|
|
10728
|
+
} | null;
|
|
10729
|
+
slug: string;
|
|
10730
|
+
/** @enum {string} */
|
|
10731
|
+
validationMode?: "off" | "warn" | "enforce";
|
|
10732
|
+
};
|
|
10733
|
+
dryRun?: boolean;
|
|
10734
|
+
expectedRemoteHash?: string;
|
|
10735
|
+
/** @enum {string} */
|
|
10736
|
+
onConflict?: "error" | "overwrite";
|
|
10737
|
+
slug: string;
|
|
10742
10738
|
};
|
|
10743
10739
|
};
|
|
10744
|
-
|
|
10745
|
-
|
|
10740
|
+
};
|
|
10741
|
+
responses: {
|
|
10742
|
+
/** @description Converge result: unchanged | created | updated | definitionRequired (hash miss — retry with the full definition) | plan (dryRun) */
|
|
10743
|
+
200: {
|
|
10746
10744
|
headers: {
|
|
10747
10745
|
[name: string]: unknown;
|
|
10748
10746
|
};
|
|
10749
10747
|
content: {
|
|
10750
|
-
"application/json": components["schemas"]["
|
|
10748
|
+
"application/json": components["schemas"]["CollectionEnsureResponse"];
|
|
10751
10749
|
};
|
|
10752
10750
|
};
|
|
10753
|
-
/** @description
|
|
10754
|
-
|
|
10751
|
+
/** @description Invalid slug or schema, or a breaking schema change while enforcing (BREAKING_SCHEMA_CHANGE_REQUIRES_WARN_MODE) */
|
|
10752
|
+
400: {
|
|
10755
10753
|
headers: {
|
|
10756
10754
|
[name: string]: unknown;
|
|
10757
10755
|
};
|
|
10758
10756
|
content: {
|
|
10759
|
-
"application/json": components["schemas"]["Error"]
|
|
10757
|
+
"application/json": components["schemas"]["Error"] & {
|
|
10758
|
+
code?: string;
|
|
10759
|
+
details?: unknown;
|
|
10760
|
+
};
|
|
10760
10761
|
};
|
|
10761
10762
|
};
|
|
10762
|
-
/** @description
|
|
10763
|
-
|
|
10763
|
+
/** @description Unauthorized */
|
|
10764
|
+
401: {
|
|
10764
10765
|
headers: {
|
|
10765
10766
|
[name: string]: unknown;
|
|
10766
10767
|
};
|
|
@@ -10768,79 +10769,8 @@ interface paths {
|
|
|
10768
10769
|
"application/json": components["schemas"]["Error"];
|
|
10769
10770
|
};
|
|
10770
10771
|
};
|
|
10771
|
-
|
|
10772
|
-
|
|
10773
|
-
put?: never;
|
|
10774
|
-
post?: never;
|
|
10775
|
-
delete?: never;
|
|
10776
|
-
options?: never;
|
|
10777
|
-
head?: never;
|
|
10778
|
-
patch?: never;
|
|
10779
|
-
trace?: never;
|
|
10780
|
-
};
|
|
10781
|
-
"/v1/collections/{slug}": {
|
|
10782
|
-
parameters: {
|
|
10783
|
-
query?: never;
|
|
10784
|
-
header?: never;
|
|
10785
|
-
path?: never;
|
|
10786
|
-
cookie?: never;
|
|
10787
|
-
};
|
|
10788
|
-
/**
|
|
10789
|
-
* Get a collection
|
|
10790
|
-
* @description Get a collection by slug. `includeHistory=true` embeds the append-only schema version history.
|
|
10791
|
-
*/
|
|
10792
|
-
get: {
|
|
10793
|
-
parameters: {
|
|
10794
|
-
query?: {
|
|
10795
|
-
includeHistory?: string;
|
|
10796
|
-
};
|
|
10797
|
-
header?: never;
|
|
10798
|
-
path: {
|
|
10799
|
-
slug: string;
|
|
10800
|
-
};
|
|
10801
|
-
cookie?: never;
|
|
10802
|
-
};
|
|
10803
|
-
requestBody?: never;
|
|
10804
|
-
responses: {
|
|
10805
|
-
/** @description Collection */
|
|
10806
|
-
200: {
|
|
10807
|
-
headers: {
|
|
10808
|
-
[name: string]: unknown;
|
|
10809
|
-
};
|
|
10810
|
-
content: {
|
|
10811
|
-
"application/json": {
|
|
10812
|
-
createdAt: string;
|
|
10813
|
-
description: string | null;
|
|
10814
|
-
displayName: string;
|
|
10815
|
-
history?: {
|
|
10816
|
-
/** @enum {string} */
|
|
10817
|
-
changeKind: "additive" | "breaking";
|
|
10818
|
-
changedBy: string | null;
|
|
10819
|
-
createdAt: string;
|
|
10820
|
-
/** @description Constrained JSON Schema dialect: root object with string/number/boolean/array/object properties, one nesting level, no $ref/oneOf/pattern */
|
|
10821
|
-
schema: {
|
|
10822
|
-
[key: string]: unknown;
|
|
10823
|
-
} | null;
|
|
10824
|
-
version: number;
|
|
10825
|
-
}[];
|
|
10826
|
-
icon: string | null;
|
|
10827
|
-
id: string;
|
|
10828
|
-
indexedFields: string[];
|
|
10829
|
-
recordCount?: number;
|
|
10830
|
-
/** @description Constrained JSON Schema dialect: root object with string/number/boolean/array/object properties, one nesting level, no $ref/oneOf/pattern */
|
|
10831
|
-
schema: {
|
|
10832
|
-
[key: string]: unknown;
|
|
10833
|
-
} | null;
|
|
10834
|
-
schemaVersion: number;
|
|
10835
|
-
slug: string;
|
|
10836
|
-
updatedAt: string;
|
|
10837
|
-
/** @enum {string} */
|
|
10838
|
-
validationMode: "off" | "warn" | "enforce";
|
|
10839
|
-
};
|
|
10840
|
-
};
|
|
10841
|
-
};
|
|
10842
|
-
/** @description Unauthorized */
|
|
10843
|
-
401: {
|
|
10772
|
+
/** @description Insufficient permissions */
|
|
10773
|
+
403: {
|
|
10844
10774
|
headers: {
|
|
10845
10775
|
[name: string]: unknown;
|
|
10846
10776
|
};
|
|
@@ -10848,22 +10778,22 @@ interface paths {
|
|
|
10848
10778
|
"application/json": components["schemas"]["Error"];
|
|
10849
10779
|
};
|
|
10850
10780
|
};
|
|
10851
|
-
/** @description
|
|
10852
|
-
|
|
10781
|
+
/** @description Conflict: external_modification (last write was not ensure; pass onConflict: "overwrite") or remote_changed (expectedRemoteHash guard) */
|
|
10782
|
+
409: {
|
|
10853
10783
|
headers: {
|
|
10854
10784
|
[name: string]: unknown;
|
|
10855
10785
|
};
|
|
10856
10786
|
content: {
|
|
10857
|
-
"application/json": components["schemas"]["
|
|
10787
|
+
"application/json": components["schemas"]["CollectionEnsureConflict"];
|
|
10858
10788
|
};
|
|
10859
10789
|
};
|
|
10860
|
-
/** @description
|
|
10861
|
-
|
|
10790
|
+
/** @description Submitted contentHash does not match the server-recomputed canonical hash */
|
|
10791
|
+
422: {
|
|
10862
10792
|
headers: {
|
|
10863
10793
|
[name: string]: unknown;
|
|
10864
10794
|
};
|
|
10865
10795
|
content: {
|
|
10866
|
-
"application/json": components["schemas"]["
|
|
10796
|
+
"application/json": components["schemas"]["CollectionEnsureHashMismatch"];
|
|
10867
10797
|
};
|
|
10868
10798
|
};
|
|
10869
10799
|
/** @description Internal server error */
|
|
@@ -10877,32 +10807,39 @@ interface paths {
|
|
|
10877
10807
|
};
|
|
10878
10808
|
};
|
|
10879
10809
|
};
|
|
10880
|
-
|
|
10881
|
-
|
|
10810
|
+
delete?: never;
|
|
10811
|
+
options?: never;
|
|
10812
|
+
head?: never;
|
|
10813
|
+
patch?: never;
|
|
10814
|
+
trace?: never;
|
|
10815
|
+
};
|
|
10816
|
+
"/v1/collections/types.d.ts": {
|
|
10817
|
+
parameters: {
|
|
10818
|
+
query?: never;
|
|
10819
|
+
header?: never;
|
|
10820
|
+
path?: never;
|
|
10821
|
+
cookie?: never;
|
|
10822
|
+
};
|
|
10882
10823
|
/**
|
|
10883
|
-
*
|
|
10884
|
-
* @description
|
|
10824
|
+
* Generate TypeScript types for schematized collections
|
|
10825
|
+
* @description Emit a TypeScript `.d.ts` module (one interface per schematized collection plus a `declare module '@runtypelabs/sdk'` augmentation of `RecordCollections`) so `client.records.from('<slug>')` types record metadata. Fetch it with `runtype records typegen`; commit and diff-check the output in CI to catch collection-schema drift.
|
|
10885
10826
|
*/
|
|
10886
|
-
|
|
10827
|
+
get: {
|
|
10887
10828
|
parameters: {
|
|
10888
10829
|
query?: never;
|
|
10889
10830
|
header?: never;
|
|
10890
|
-
path
|
|
10891
|
-
slug: string;
|
|
10892
|
-
};
|
|
10831
|
+
path?: never;
|
|
10893
10832
|
cookie?: never;
|
|
10894
10833
|
};
|
|
10895
10834
|
requestBody?: never;
|
|
10896
10835
|
responses: {
|
|
10897
|
-
/** @description
|
|
10836
|
+
/** @description A TypeScript declaration module */
|
|
10898
10837
|
200: {
|
|
10899
10838
|
headers: {
|
|
10900
10839
|
[name: string]: unknown;
|
|
10901
10840
|
};
|
|
10902
10841
|
content: {
|
|
10903
|
-
"
|
|
10904
|
-
success: boolean;
|
|
10905
|
-
};
|
|
10842
|
+
"text/plain": string;
|
|
10906
10843
|
};
|
|
10907
10844
|
};
|
|
10908
10845
|
/** @description Unauthorized */
|
|
@@ -10923,15 +10860,6 @@ interface paths {
|
|
|
10923
10860
|
"application/json": components["schemas"]["Error"];
|
|
10924
10861
|
};
|
|
10925
10862
|
};
|
|
10926
|
-
/** @description Not found */
|
|
10927
|
-
404: {
|
|
10928
|
-
headers: {
|
|
10929
|
-
[name: string]: unknown;
|
|
10930
|
-
};
|
|
10931
|
-
content: {
|
|
10932
|
-
"application/json": components["schemas"]["Error"];
|
|
10933
|
-
};
|
|
10934
|
-
};
|
|
10935
10863
|
/** @description Internal server error */
|
|
10936
10864
|
500: {
|
|
10937
10865
|
headers: {
|
|
@@ -10943,84 +10871,261 @@ interface paths {
|
|
|
10943
10871
|
};
|
|
10944
10872
|
};
|
|
10945
10873
|
};
|
|
10874
|
+
put?: never;
|
|
10875
|
+
post?: never;
|
|
10876
|
+
delete?: never;
|
|
10946
10877
|
options?: never;
|
|
10947
10878
|
head?: never;
|
|
10879
|
+
patch?: never;
|
|
10880
|
+
trace?: never;
|
|
10881
|
+
};
|
|
10882
|
+
"/v1/collections/{slug}": {
|
|
10883
|
+
parameters: {
|
|
10884
|
+
query?: never;
|
|
10885
|
+
header?: never;
|
|
10886
|
+
path?: never;
|
|
10887
|
+
cookie?: never;
|
|
10888
|
+
};
|
|
10948
10889
|
/**
|
|
10949
|
-
*
|
|
10950
|
-
* @description
|
|
10890
|
+
* Get a collection
|
|
10891
|
+
* @description Get a collection by slug. `includeHistory=true` embeds the append-only schema version history.
|
|
10951
10892
|
*/
|
|
10952
|
-
|
|
10893
|
+
get: {
|
|
10953
10894
|
parameters: {
|
|
10954
|
-
query?:
|
|
10895
|
+
query?: {
|
|
10896
|
+
includeHistory?: string;
|
|
10897
|
+
};
|
|
10955
10898
|
header?: never;
|
|
10956
10899
|
path: {
|
|
10957
10900
|
slug: string;
|
|
10958
10901
|
};
|
|
10959
10902
|
cookie?: never;
|
|
10960
10903
|
};
|
|
10961
|
-
requestBody?:
|
|
10962
|
-
content: {
|
|
10963
|
-
"application/json": {
|
|
10964
|
-
description?: string | null;
|
|
10965
|
-
displayName?: string;
|
|
10966
|
-
icon?: string | null;
|
|
10967
|
-
/** @description Constrained JSON Schema dialect: root object with string/number/boolean/array/object properties, one nesting level, no $ref/oneOf/pattern */
|
|
10968
|
-
schema?: {
|
|
10969
|
-
[key: string]: unknown;
|
|
10970
|
-
} | null;
|
|
10971
|
-
slug?: string;
|
|
10972
|
-
/** @enum {string} */
|
|
10973
|
-
validationMode?: "off" | "warn" | "enforce";
|
|
10974
|
-
};
|
|
10975
|
-
};
|
|
10976
|
-
};
|
|
10904
|
+
requestBody?: never;
|
|
10977
10905
|
responses: {
|
|
10978
|
-
/** @description
|
|
10906
|
+
/** @description Collection */
|
|
10979
10907
|
200: {
|
|
10980
10908
|
headers: {
|
|
10981
10909
|
[name: string]: unknown;
|
|
10982
10910
|
};
|
|
10983
10911
|
content: {
|
|
10984
10912
|
"application/json": {
|
|
10985
|
-
|
|
10913
|
+
createdAt: string;
|
|
10914
|
+
description: string | null;
|
|
10915
|
+
displayName: string;
|
|
10916
|
+
history?: {
|
|
10917
|
+
/** @enum {string} */
|
|
10918
|
+
changeKind: "additive" | "breaking";
|
|
10919
|
+
changedBy: string | null;
|
|
10986
10920
|
createdAt: string;
|
|
10987
|
-
description: string | null;
|
|
10988
|
-
displayName: string;
|
|
10989
|
-
icon: string | null;
|
|
10990
|
-
id: string;
|
|
10991
|
-
indexedFields: string[];
|
|
10992
|
-
recordCount?: number;
|
|
10993
10921
|
/** @description Constrained JSON Schema dialect: root object with string/number/boolean/array/object properties, one nesting level, no $ref/oneOf/pattern */
|
|
10994
10922
|
schema: {
|
|
10995
10923
|
[key: string]: unknown;
|
|
10996
10924
|
} | null;
|
|
10997
|
-
|
|
10998
|
-
|
|
10999
|
-
|
|
11000
|
-
|
|
11001
|
-
|
|
11002
|
-
|
|
11003
|
-
|
|
11004
|
-
|
|
11005
|
-
|
|
11006
|
-
|
|
11007
|
-
|
|
11008
|
-
|
|
11009
|
-
|
|
11010
|
-
|
|
11011
|
-
|
|
11012
|
-
}
|
|
11013
|
-
|
|
11014
|
-
|
|
11015
|
-
|
|
11016
|
-
|
|
11017
|
-
|
|
11018
|
-
|
|
11019
|
-
|
|
11020
|
-
|
|
11021
|
-
|
|
11022
|
-
|
|
11023
|
-
|
|
10925
|
+
version: number;
|
|
10926
|
+
}[];
|
|
10927
|
+
icon: string | null;
|
|
10928
|
+
id: string;
|
|
10929
|
+
indexedFields: string[];
|
|
10930
|
+
/** @description Who last wrote the definition (e.g. dashboard, api, sdk); sdk/terraform mean managed in code. */
|
|
10931
|
+
lastModifiedSource: string | null;
|
|
10932
|
+
recordCount?: number;
|
|
10933
|
+
/** @description Constrained JSON Schema dialect: root object with string/number/boolean/array/object properties, one nesting level, no $ref/oneOf/pattern */
|
|
10934
|
+
schema: {
|
|
10935
|
+
[key: string]: unknown;
|
|
10936
|
+
} | null;
|
|
10937
|
+
schemaVersion: number;
|
|
10938
|
+
slug: string;
|
|
10939
|
+
updatedAt: string;
|
|
10940
|
+
/** @enum {string} */
|
|
10941
|
+
validationMode: "off" | "warn" | "enforce";
|
|
10942
|
+
};
|
|
10943
|
+
};
|
|
10944
|
+
};
|
|
10945
|
+
/** @description Unauthorized */
|
|
10946
|
+
401: {
|
|
10947
|
+
headers: {
|
|
10948
|
+
[name: string]: unknown;
|
|
10949
|
+
};
|
|
10950
|
+
content: {
|
|
10951
|
+
"application/json": components["schemas"]["Error"];
|
|
10952
|
+
};
|
|
10953
|
+
};
|
|
10954
|
+
/** @description Insufficient permissions */
|
|
10955
|
+
403: {
|
|
10956
|
+
headers: {
|
|
10957
|
+
[name: string]: unknown;
|
|
10958
|
+
};
|
|
10959
|
+
content: {
|
|
10960
|
+
"application/json": components["schemas"]["Error"];
|
|
10961
|
+
};
|
|
10962
|
+
};
|
|
10963
|
+
/** @description Not found */
|
|
10964
|
+
404: {
|
|
10965
|
+
headers: {
|
|
10966
|
+
[name: string]: unknown;
|
|
10967
|
+
};
|
|
10968
|
+
content: {
|
|
10969
|
+
"application/json": components["schemas"]["Error"];
|
|
10970
|
+
};
|
|
10971
|
+
};
|
|
10972
|
+
/** @description Internal server error */
|
|
10973
|
+
500: {
|
|
10974
|
+
headers: {
|
|
10975
|
+
[name: string]: unknown;
|
|
10976
|
+
};
|
|
10977
|
+
content: {
|
|
10978
|
+
"application/json": components["schemas"]["Error"];
|
|
10979
|
+
};
|
|
10980
|
+
};
|
|
10981
|
+
};
|
|
10982
|
+
};
|
|
10983
|
+
put?: never;
|
|
10984
|
+
post?: never;
|
|
10985
|
+
/**
|
|
10986
|
+
* Delete a collection
|
|
10987
|
+
* @description Delete the collection REGISTRATION only. Records of this type are not touched — they revert to schemaless behavior. Deleting records is a separate, explicit operation.
|
|
10988
|
+
*/
|
|
10989
|
+
delete: {
|
|
10990
|
+
parameters: {
|
|
10991
|
+
query?: never;
|
|
10992
|
+
header?: never;
|
|
10993
|
+
path: {
|
|
10994
|
+
slug: string;
|
|
10995
|
+
};
|
|
10996
|
+
cookie?: never;
|
|
10997
|
+
};
|
|
10998
|
+
requestBody?: never;
|
|
10999
|
+
responses: {
|
|
11000
|
+
/** @description Deleted */
|
|
11001
|
+
200: {
|
|
11002
|
+
headers: {
|
|
11003
|
+
[name: string]: unknown;
|
|
11004
|
+
};
|
|
11005
|
+
content: {
|
|
11006
|
+
"application/json": {
|
|
11007
|
+
success: boolean;
|
|
11008
|
+
};
|
|
11009
|
+
};
|
|
11010
|
+
};
|
|
11011
|
+
/** @description Unauthorized */
|
|
11012
|
+
401: {
|
|
11013
|
+
headers: {
|
|
11014
|
+
[name: string]: unknown;
|
|
11015
|
+
};
|
|
11016
|
+
content: {
|
|
11017
|
+
"application/json": components["schemas"]["Error"];
|
|
11018
|
+
};
|
|
11019
|
+
};
|
|
11020
|
+
/** @description Insufficient permissions */
|
|
11021
|
+
403: {
|
|
11022
|
+
headers: {
|
|
11023
|
+
[name: string]: unknown;
|
|
11024
|
+
};
|
|
11025
|
+
content: {
|
|
11026
|
+
"application/json": components["schemas"]["Error"];
|
|
11027
|
+
};
|
|
11028
|
+
};
|
|
11029
|
+
/** @description Not found */
|
|
11030
|
+
404: {
|
|
11031
|
+
headers: {
|
|
11032
|
+
[name: string]: unknown;
|
|
11033
|
+
};
|
|
11034
|
+
content: {
|
|
11035
|
+
"application/json": components["schemas"]["Error"];
|
|
11036
|
+
};
|
|
11037
|
+
};
|
|
11038
|
+
/** @description Internal server error */
|
|
11039
|
+
500: {
|
|
11040
|
+
headers: {
|
|
11041
|
+
[name: string]: unknown;
|
|
11042
|
+
};
|
|
11043
|
+
content: {
|
|
11044
|
+
"application/json": components["schemas"]["Error"];
|
|
11045
|
+
};
|
|
11046
|
+
};
|
|
11047
|
+
};
|
|
11048
|
+
};
|
|
11049
|
+
options?: never;
|
|
11050
|
+
head?: never;
|
|
11051
|
+
/**
|
|
11052
|
+
* Update a collection
|
|
11053
|
+
* @description Update display fields, validation mode, or the schema. Schema changes are classified additive vs breaking; breaking changes are rejected while the resulting mode is `enforce` (drop to `warn`, migrate, re-enforce). Every schema change bumps `schemaVersion` and appends a history row. When the mode transitions to `enforce`, the response includes `enforceCheck` — a bounded dry-run of existing records against the schema.
|
|
11054
|
+
*/
|
|
11055
|
+
patch: {
|
|
11056
|
+
parameters: {
|
|
11057
|
+
query?: never;
|
|
11058
|
+
header?: never;
|
|
11059
|
+
path: {
|
|
11060
|
+
slug: string;
|
|
11061
|
+
};
|
|
11062
|
+
cookie?: never;
|
|
11063
|
+
};
|
|
11064
|
+
requestBody?: {
|
|
11065
|
+
content: {
|
|
11066
|
+
"application/json": {
|
|
11067
|
+
description?: string | null;
|
|
11068
|
+
displayName?: string;
|
|
11069
|
+
icon?: string | null;
|
|
11070
|
+
/** @description Constrained JSON Schema dialect: root object with string/number/boolean/array/object properties, one nesting level, no $ref/oneOf/pattern */
|
|
11071
|
+
schema?: {
|
|
11072
|
+
[key: string]: unknown;
|
|
11073
|
+
} | null;
|
|
11074
|
+
slug?: string;
|
|
11075
|
+
/** @enum {string} */
|
|
11076
|
+
validationMode?: "off" | "warn" | "enforce";
|
|
11077
|
+
};
|
|
11078
|
+
};
|
|
11079
|
+
};
|
|
11080
|
+
responses: {
|
|
11081
|
+
/** @description Updated collection */
|
|
11082
|
+
200: {
|
|
11083
|
+
headers: {
|
|
11084
|
+
[name: string]: unknown;
|
|
11085
|
+
};
|
|
11086
|
+
content: {
|
|
11087
|
+
"application/json": {
|
|
11088
|
+
collection: {
|
|
11089
|
+
createdAt: string;
|
|
11090
|
+
description: string | null;
|
|
11091
|
+
displayName: string;
|
|
11092
|
+
icon: string | null;
|
|
11093
|
+
id: string;
|
|
11094
|
+
indexedFields: string[];
|
|
11095
|
+
/** @description Who last wrote the definition (e.g. dashboard, api, sdk); sdk/terraform mean managed in code. */
|
|
11096
|
+
lastModifiedSource: string | null;
|
|
11097
|
+
recordCount?: number;
|
|
11098
|
+
/** @description Constrained JSON Schema dialect: root object with string/number/boolean/array/object properties, one nesting level, no $ref/oneOf/pattern */
|
|
11099
|
+
schema: {
|
|
11100
|
+
[key: string]: unknown;
|
|
11101
|
+
} | null;
|
|
11102
|
+
schemaVersion: number;
|
|
11103
|
+
slug: string;
|
|
11104
|
+
updatedAt: string;
|
|
11105
|
+
/** @enum {string} */
|
|
11106
|
+
validationMode: "off" | "warn" | "enforce";
|
|
11107
|
+
};
|
|
11108
|
+
enforceCheck?: {
|
|
11109
|
+
checked: number;
|
|
11110
|
+
failed: number;
|
|
11111
|
+
truncated: boolean;
|
|
11112
|
+
};
|
|
11113
|
+
schemaChange?: {
|
|
11114
|
+
breakingChanges: string[];
|
|
11115
|
+
/** @enum {string} */
|
|
11116
|
+
kind: "additive" | "breaking";
|
|
11117
|
+
};
|
|
11118
|
+
};
|
|
11119
|
+
};
|
|
11120
|
+
};
|
|
11121
|
+
/** @description Invalid input, immutable slug (SLUG_IMMUTABLE), or breaking change while enforcing (BREAKING_SCHEMA_CHANGE_REQUIRES_WARN_MODE) */
|
|
11122
|
+
400: {
|
|
11123
|
+
headers: {
|
|
11124
|
+
[name: string]: unknown;
|
|
11125
|
+
};
|
|
11126
|
+
content: {
|
|
11127
|
+
"application/json": components["schemas"]["Error"] & {
|
|
11128
|
+
code?: string;
|
|
11024
11129
|
};
|
|
11025
11130
|
};
|
|
11026
11131
|
};
|
|
@@ -11158,6 +11263,83 @@ interface paths {
|
|
|
11158
11263
|
patch?: never;
|
|
11159
11264
|
trace?: never;
|
|
11160
11265
|
};
|
|
11266
|
+
"/v1/collections/{slug}/pull": {
|
|
11267
|
+
parameters: {
|
|
11268
|
+
query?: never;
|
|
11269
|
+
header?: never;
|
|
11270
|
+
path?: never;
|
|
11271
|
+
cookie?: never;
|
|
11272
|
+
};
|
|
11273
|
+
/**
|
|
11274
|
+
* Pull collection definition (config-as-code)
|
|
11275
|
+
* @description Return the canonical config-as-code definition and provenance for a collection — the absorb-drift direction of the ensure protocol. The contentHash is recomputed from the live collection, so it is accurate even immediately after a dashboard edit.
|
|
11276
|
+
*/
|
|
11277
|
+
get: {
|
|
11278
|
+
parameters: {
|
|
11279
|
+
query?: never;
|
|
11280
|
+
header?: never;
|
|
11281
|
+
path: {
|
|
11282
|
+
slug: string;
|
|
11283
|
+
};
|
|
11284
|
+
cookie?: never;
|
|
11285
|
+
};
|
|
11286
|
+
requestBody?: never;
|
|
11287
|
+
responses: {
|
|
11288
|
+
/** @description Canonical definition + provenance */
|
|
11289
|
+
200: {
|
|
11290
|
+
headers: {
|
|
11291
|
+
[name: string]: unknown;
|
|
11292
|
+
};
|
|
11293
|
+
content: {
|
|
11294
|
+
"application/json": components["schemas"]["CollectionPullResponse"];
|
|
11295
|
+
};
|
|
11296
|
+
};
|
|
11297
|
+
/** @description Unauthorized */
|
|
11298
|
+
401: {
|
|
11299
|
+
headers: {
|
|
11300
|
+
[name: string]: unknown;
|
|
11301
|
+
};
|
|
11302
|
+
content: {
|
|
11303
|
+
"application/json": components["schemas"]["Error"];
|
|
11304
|
+
};
|
|
11305
|
+
};
|
|
11306
|
+
/** @description Insufficient permissions */
|
|
11307
|
+
403: {
|
|
11308
|
+
headers: {
|
|
11309
|
+
[name: string]: unknown;
|
|
11310
|
+
};
|
|
11311
|
+
content: {
|
|
11312
|
+
"application/json": components["schemas"]["Error"];
|
|
11313
|
+
};
|
|
11314
|
+
};
|
|
11315
|
+
/** @description No collection with that slug in the account scope */
|
|
11316
|
+
404: {
|
|
11317
|
+
headers: {
|
|
11318
|
+
[name: string]: unknown;
|
|
11319
|
+
};
|
|
11320
|
+
content: {
|
|
11321
|
+
"application/json": components["schemas"]["Error"];
|
|
11322
|
+
};
|
|
11323
|
+
};
|
|
11324
|
+
/** @description Internal server error */
|
|
11325
|
+
500: {
|
|
11326
|
+
headers: {
|
|
11327
|
+
[name: string]: unknown;
|
|
11328
|
+
};
|
|
11329
|
+
content: {
|
|
11330
|
+
"application/json": components["schemas"]["Error"];
|
|
11331
|
+
};
|
|
11332
|
+
};
|
|
11333
|
+
};
|
|
11334
|
+
};
|
|
11335
|
+
put?: never;
|
|
11336
|
+
post?: never;
|
|
11337
|
+
delete?: never;
|
|
11338
|
+
options?: never;
|
|
11339
|
+
head?: never;
|
|
11340
|
+
patch?: never;
|
|
11341
|
+
trace?: never;
|
|
11342
|
+
};
|
|
11161
11343
|
"/v1/collections/{slug}/validate-existing": {
|
|
11162
11344
|
parameters: {
|
|
11163
11345
|
query?: never;
|
|
@@ -15806,7 +15988,7 @@ interface paths {
|
|
|
15806
15988
|
put?: never;
|
|
15807
15989
|
/**
|
|
15808
15990
|
* Ensure eval suite (config-as-code converge)
|
|
15809
|
-
* @description Idempotently converge a repo-defined eval suite (target + cases + graders) onto the platform. Identity is the suite name + account scope; the target flow/agent is resolved by name. 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 suite or replace
|
|
15991
|
+
* @description Idempotently converge a repo-defined eval suite (target + cases + graders) onto the platform. Identity is the suite name + account scope; the target flow/agent is resolved by name. 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 suite or replace the cases ensure owns when the canonical content hash differs. Cases saved from runs, added in the dashboard, or owned by a product are never replaced. Set dryRun to plan without writing (CI drift gate), and onConflict: "overwrite" to converge over dashboard/API edits. Non-executing: never runs the eval. The response always carries the server-computed canonical hash.
|
|
15810
15992
|
*/
|
|
15811
15993
|
post: {
|
|
15812
15994
|
parameters: {
|
|
@@ -15870,12 +16052,16 @@ interface paths {
|
|
|
15870
16052
|
};
|
|
15871
16053
|
virtual?: boolean;
|
|
15872
16054
|
};
|
|
16055
|
+
dryRun?: boolean;
|
|
16056
|
+
expectedRemoteHash?: string;
|
|
15873
16057
|
name: string;
|
|
16058
|
+
/** @enum {string} */
|
|
16059
|
+
onConflict?: "error" | "overwrite";
|
|
15874
16060
|
};
|
|
15875
16061
|
};
|
|
15876
16062
|
};
|
|
15877
16063
|
responses: {
|
|
15878
|
-
/** @description Converge result: unchanged | created | updated | definitionRequired (hash miss — retry with the full definition) */
|
|
16064
|
+
/** @description Converge result: unchanged | created | updated | definitionRequired (hash miss — retry with the full definition) | plan (dryRun) */
|
|
15879
16065
|
200: {
|
|
15880
16066
|
headers: {
|
|
15881
16067
|
[name: string]: unknown;
|
|
@@ -15911,6 +16097,15 @@ interface paths {
|
|
|
15911
16097
|
"application/json": components["schemas"]["Error"];
|
|
15912
16098
|
};
|
|
15913
16099
|
};
|
|
16100
|
+
/** @description Conflict: external_modification (last write was not ensure; pass onConflict: "overwrite") or remote_changed (expectedRemoteHash guard) */
|
|
16101
|
+
409: {
|
|
16102
|
+
headers: {
|
|
16103
|
+
[name: string]: unknown;
|
|
16104
|
+
};
|
|
16105
|
+
content: {
|
|
16106
|
+
"application/json": components["schemas"]["EvalEnsureConflict"];
|
|
16107
|
+
};
|
|
16108
|
+
};
|
|
15914
16109
|
/** @description Submitted contentHash does not match the server-recomputed canonical hash */
|
|
15915
16110
|
422: {
|
|
15916
16111
|
headers: {
|
|
@@ -16195,7 +16390,7 @@ interface paths {
|
|
|
16195
16390
|
};
|
|
16196
16391
|
/**
|
|
16197
16392
|
* Pull eval suite definition (config-as-code)
|
|
16198
|
-
* @description Return the canonical config-as-code definition and provenance for an eval suite by name — the absorb-drift direction of the ensure protocol. The contentHash is recomputed from
|
|
16393
|
+
* @description Return the canonical config-as-code definition and provenance for an eval suite by name — the absorb-drift direction of the ensure protocol. The definition carries the cases ensure owns (or, for a suite ensure never wrote, its unowned cases), and the contentHash is recomputed from that live state.
|
|
16199
16394
|
*/
|
|
16200
16395
|
get: {
|
|
16201
16396
|
parameters: {
|
|
@@ -16935,7 +17130,7 @@ interface paths {
|
|
|
16935
17130
|
name: string;
|
|
16936
17131
|
notes?: string;
|
|
16937
17132
|
/**
|
|
16938
|
-
* @description Case provenance. Defaults to "manual" when omitted.
|
|
17133
|
+
* @description Case provenance. Defaults to "manual" when omitted. "ensure" is reserved for config-as-code converges.
|
|
16939
17134
|
* @enum {string}
|
|
16940
17135
|
*/
|
|
16941
17136
|
origin?: "manual" | "saved_from_run" | "generated" | "imported" | "fpo";
|
|
@@ -17341,7 +17536,7 @@ interface paths {
|
|
|
17341
17536
|
name: string;
|
|
17342
17537
|
notes?: string;
|
|
17343
17538
|
/**
|
|
17344
|
-
* @description Case provenance. Defaults to "manual" when omitted.
|
|
17539
|
+
* @description Case provenance. Defaults to "manual" when omitted. "ensure" is reserved for config-as-code converges.
|
|
17345
17540
|
* @enum {string}
|
|
17346
17541
|
*/
|
|
17347
17542
|
origin?: "manual" | "saved_from_run" | "generated" | "imported" | "fpo";
|
|
@@ -18848,6 +19043,10 @@ interface paths {
|
|
|
18848
19043
|
executionLane?: "durable" | "in_process";
|
|
18849
19044
|
httpStatus?: number;
|
|
18850
19045
|
result?: unknown;
|
|
19046
|
+
/** @description Present and `true` when the execution settled but its result was too large to store or could not be retrieved; `result` then holds only a summary and `resultUnavailableReason` explains why. `error` keeps describing an execution failure; on an otherwise completed execution it repeats the reason. */
|
|
19047
|
+
resultUnavailable?: boolean;
|
|
19048
|
+
/** @description Why the result is unavailable. Present exactly when `resultUnavailable` is `true`. */
|
|
19049
|
+
resultUnavailableReason?: string;
|
|
18851
19050
|
/** @enum {string} */
|
|
18852
19051
|
status: "queued" | "running" | "paused" | "completed" | "failed" | "cancelled";
|
|
18853
19052
|
targetId?: string;
|
|
@@ -30707,6 +30906,7 @@ interface paths {
|
|
|
30707
30906
|
productGoal?: string;
|
|
30708
30907
|
/** @enum {string} */
|
|
30709
30908
|
productStage?: "idea" | "prototype" | "beta" | "production" | "scaling";
|
|
30909
|
+
stack?: components["schemas"]["ProductStack"];
|
|
30710
30910
|
targetAudience?: string;
|
|
30711
30911
|
techStack?: {
|
|
30712
30912
|
backend?: string[];
|
|
@@ -30808,7 +31008,7 @@ interface paths {
|
|
|
30808
31008
|
put?: never;
|
|
30809
31009
|
/**
|
|
30810
31010
|
* Ensure full product (config-as-code converge of the whole FPO)
|
|
30811
|
-
* @description Idempotently converge an entire Full Product Object (the nested product graph) in one shot. Fans out to the per-entity ensure services in dependency order (product → capability backing flows/agents → capability-as-tool composition → capability links → surfaces + surface items → records → schedules → secret bindings), returning a per-entity report. Identity is the product name + account scope. NON-atomic by design: a per-entity failure is reported in `entities[].result = "failed"` (and `hasFailures`) and a re-run self-heals; only a top-level product reject aborts. Set dryRun to plan without writing. Set prune to remove product-scoped capabilities/surfaces (and their items) absent from the FPO (account-scoped flows/agents/tools/records are never removed).
|
|
31011
|
+
* @description Idempotently converge an entire Full Product Object (the nested product graph) in one shot. Fans out to the per-entity ensure services in dependency order (product → capability backing flows/agents → capability-as-tool composition → capability links → surfaces + surface items → records → schedules → secret bindings), returning a per-entity report. Identity is the product name + account scope. NON-atomic by design: a per-entity failure is reported in `entities[].result = "failed"` (and `hasFailures`) and a re-run self-heals; only a top-level product reject aborts. Converged capability agents and flows are published to `live` by default; set release to "none" to save changes as drafts. Set dryRun to plan without writing. Set prune to remove product-scoped capabilities/surfaces (and their items) absent from the FPO (account-scoped flows/agents/tools/records are never removed). A hash-only probe (`name` + `contentHash`, no fpo) with release "none" answers `unchanged` when the live graph reconstructs (as GET /products/pull-fpo does) to that hash, else `definitionRequired` (retry with the full fpo); a probe that publishes (the default release) always answers `definitionRequired`, because only a full converge can publish drafts that are not yet live. The probe, the dryRun `remoteHash` and expectedRemoteHash read the live graph, so API keys need PRODUCTS:READ for them. A dryRun reports the live graph's `remoteHash`; pass it as expectedRemoteHash on the apply to refuse the write (409 remote_changed) if the product changed in between. The guard compares what GET /products/pull-fpo reconstructs, so edits to seed records, schedules or secrets (which pull-fpo omits) do not trip it. When pull-fpo has to omit part of the product (a capability, surface, schedule, eval suite or skill it cannot represent), a probe answers `definitionRequired`, a dryRun reports no `remoteHash`, and expectedRemoteHash is refused with 409. The guard is re-checked immediately before the first write but does not lock the graph, so an edit that lands while the apply is running can still be overwritten. API keys need PRODUCTS:CREATE to create the product and PRODUCTS:UPDATE to change an existing one (PRODUCTS:WRITE covers both). API keys converge each nested flow, agent, tool, surface, schedule, record, eval suite and skill only with that entity kind's own write scope (FLOWS:WRITE, AGENTS:WRITE or AGENTS:CREATE/UPDATE, TOOLS:WRITE, PRODUCTS:SURFACES:WRITE, SCHEDULES:WRITE, RECORDS:WRITE, EVALS:WRITE, SKILLS:WRITE) on top of the product scope; otherwise that entity reports `failed`. Adding or changing a capability on an existing product needs PRODUCTS:CAPABILITIES:WRITE, and adding a route to an existing surface needs PRODUCTS:SURFACES:WRITE. Prune needs PRODUCTS:CAPABILITIES:WRITE to remove capabilities and PRODUCTS:SURFACES:WRITE to remove surfaces or their items, and a pruned surface's client tokens are revoked. Binding a skill to an agent also needs agent update scope. Schedules also honor the plan's active-schedule limit and minimum frequency.
|
|
30812
31012
|
*/
|
|
30813
31013
|
post: {
|
|
30814
31014
|
parameters: {
|
|
@@ -30820,12 +31020,18 @@ interface paths {
|
|
|
30820
31020
|
requestBody?: {
|
|
30821
31021
|
content: {
|
|
30822
31022
|
"application/json": {
|
|
31023
|
+
/** @description Hash-only probe: the canonical FPO hash the caller holds. Answers `unchanged` when the live graph reconstructs (as pull-fpo does) to this hash, else `definitionRequired`. Only valid without `fpo`. */
|
|
31024
|
+
contentHash?: string;
|
|
30823
31025
|
/** @description Plan without writing — returns a per-entity plan (CI drift gate). */
|
|
30824
31026
|
dryRun?: boolean;
|
|
30825
|
-
/** @description
|
|
30826
|
-
|
|
31027
|
+
/** @description TOCTOU guard binding a dry run to its apply: the write proceeds only while the live graph still hashes to this value (the dry run's `remoteHash`); otherwise 409 remote_changed. */
|
|
31028
|
+
expectedRemoteHash?: string;
|
|
31029
|
+
/** @description A complete Full Product Object (FPO): the nested product graph (product, capabilities, tools, surfaces, ...). Validated server-side via the shared FPO validator. Omit it only for a hash-only probe (`name` + `contentHash`). */
|
|
31030
|
+
fpo?: {
|
|
30827
31031
|
[key: string]: unknown;
|
|
30828
31032
|
};
|
|
31033
|
+
/** @description The product name a hash-only probe resolves. Only valid without `fpo`. */
|
|
31034
|
+
name?: string;
|
|
30829
31035
|
/**
|
|
30830
31036
|
* @description Per nested entity: "overwrite" converges over dashboard/API edits.
|
|
30831
31037
|
* @enum {string}
|
|
@@ -30833,11 +31039,16 @@ interface paths {
|
|
|
30833
31039
|
onConflict?: "error" | "overwrite";
|
|
30834
31040
|
/** @description Opt-in removal of product-scoped capabilities/surfaces (and their items) absent from the FPO, after the converge passes. NEVER touches account-scoped flows/agents/tools/records. Honors createPolicy:"skip". With dryRun, reports would-be removals as `pruned` plan rows. */
|
|
30835
31041
|
prune?: boolean;
|
|
31042
|
+
/**
|
|
31043
|
+
* @description Whether converged capability agents and flows go live. Defaults to "publish": an agent or flow whose converged content is not yet live is versioned and published (the agent's `live` alias moves to that version), matching product creation. "none" saves changes as drafts and leaves `live` where it was. Publishing needs update authority over that entity kind, and for an agent the live deploy scope (AGENTS:DEPLOY:LIVE; AGENTS:WRITE or AGENTS:UPDATE also accepted); an API key without it converges that kind as "none".
|
|
31044
|
+
* @enum {string}
|
|
31045
|
+
*/
|
|
31046
|
+
release?: "none" | "publish";
|
|
30836
31047
|
};
|
|
30837
31048
|
};
|
|
30838
31049
|
};
|
|
30839
31050
|
responses: {
|
|
30840
|
-
/** @description Converge result: unchanged | converged | plan (dryRun), with a per-entity report. */
|
|
31051
|
+
/** @description Converge result: unchanged | converged | plan (dryRun), with a per-entity report; or definitionRequired (hash-only probe miss — retry with the full fpo). */
|
|
30841
31052
|
200: {
|
|
30842
31053
|
headers: {
|
|
30843
31054
|
[name: string]: unknown;
|
|
@@ -30873,7 +31084,7 @@ interface paths {
|
|
|
30873
31084
|
"application/json": components["schemas"]["Error"];
|
|
30874
31085
|
};
|
|
30875
31086
|
};
|
|
30876
|
-
/** @description Conflict converging the top-level product
|
|
31087
|
+
/** @description Conflict: external_modification converging the top-level product, or remote_changed (expectedRemoteHash guard). */
|
|
30877
31088
|
409: {
|
|
30878
31089
|
headers: {
|
|
30879
31090
|
[name: string]: unknown;
|
|
@@ -31601,6 +31812,18 @@ interface paths {
|
|
|
31601
31812
|
totalCost: string | null;
|
|
31602
31813
|
/** @description Trace id in the span store; null on a row the control-plane arm served. */
|
|
31603
31814
|
traceId: string | null;
|
|
31815
|
+
/** @description How the run started, for a Via column. Forward-only for schedule, api key, cli, mcp and eval detail: a header written before those stamps reads null, or falls back to the coarse origin/surface facts when they alone answer it. A label is a snapshot or a lookup and never authority; mcp, cli and sdk are self-declared by the client. */
|
|
31816
|
+
via?: {
|
|
31817
|
+
/** @description The thing that started it: the schedule id (schedule), product surface id (surface), API key id (api), the acting user id (cli) or eval suite id (eval). Null for mcp and test, and for an api run whose header predates key stamping. */
|
|
31818
|
+
id: string | null;
|
|
31819
|
+
/**
|
|
31820
|
+
* @description One word for the way the run started.
|
|
31821
|
+
* @enum {string}
|
|
31822
|
+
*/
|
|
31823
|
+
kind: "schedule" | "surface" | "api" | "mcp" | "cli" | "test" | "eval";
|
|
31824
|
+
/** @description Its display name when the API could resolve one: schedule name, surface name, API key name as it was at dispatch, MCP client name, the acting user's first name, or eval suite name. Null when unresolved, for example a deleted schedule. */
|
|
31825
|
+
label: string | null;
|
|
31826
|
+
} | null;
|
|
31604
31827
|
}[];
|
|
31605
31828
|
error?: {
|
|
31606
31829
|
message: string;
|
|
@@ -33125,7 +33348,7 @@ interface paths {
|
|
|
33125
33348
|
put?: never;
|
|
33126
33349
|
/**
|
|
33127
33350
|
* Ensure surface (config-as-code converge)
|
|
33128
|
-
* @description Idempotently converge a repo-defined surface definition onto a product. Identity is name + product. 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 surface or update it when the canonical content hash differs. The response always carries the server-computed canonical hash. Set dryRun to plan without writing (CI drift gate), and onConflict: "overwrite" to converge over dashboard/API edits. Surfaces have no version snapshots, so there is no publish option.
|
|
33351
|
+
* @description Idempotently converge a repo-defined surface definition onto a product. Identity is name + product. 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 surface or update it when the canonical content hash differs. The response always carries the server-computed canonical hash. Set dryRun to plan without writing (CI drift gate), and onConflict: "overwrite" to converge over dashboard/API edits. Surfaces have no version snapshots, so there is no publish option. inbound/outbound are excluded from the content hash, so a request carrying them must send the full definition; changes to them are reported in changedKeys (as inbound.<key> / outbound.<key>) and converge as "updated".
|
|
33129
33352
|
*/
|
|
33130
33353
|
post: {
|
|
33131
33354
|
parameters: {
|
|
@@ -33146,13 +33369,15 @@ interface paths {
|
|
|
33146
33369
|
};
|
|
33147
33370
|
/** @enum {string} */
|
|
33148
33371
|
environment?: "production" | "development";
|
|
33372
|
+
/** @description Inbound channel config. Omit to keep the stored value; null clears it. A credential value of "<redacted>" (as returned by pull) keeps the stored credential. */
|
|
33149
33373
|
inbound?: {
|
|
33150
33374
|
[key: string]: unknown;
|
|
33151
|
-
};
|
|
33375
|
+
} | null;
|
|
33152
33376
|
name: string;
|
|
33377
|
+
/** @description Outbound channel config. Omit to keep the stored value; null clears it. A credential value of "<redacted>" (as returned by pull) keeps the stored credential. */
|
|
33153
33378
|
outbound?: {
|
|
33154
33379
|
[key: string]: unknown;
|
|
33155
|
-
};
|
|
33380
|
+
} | null;
|
|
33156
33381
|
/** @enum {string} */
|
|
33157
33382
|
status?: "draft" | "active" | "paused";
|
|
33158
33383
|
/** @enum {string} */
|
|
@@ -33256,7 +33481,7 @@ interface paths {
|
|
|
33256
33481
|
};
|
|
33257
33482
|
/**
|
|
33258
33483
|
* Pull surface definition (config-as-code)
|
|
33259
|
-
* @description Return the canonical config-as-code definition and provenance for a surface by name within a product — the absorb-drift direction of the ensure protocol. The contentHash is recomputed from the live surface state, so it is accurate even immediately after a dashboard edit.
|
|
33484
|
+
* @description Return the canonical config-as-code definition and provenance for a surface by name within a product — the absorb-drift direction of the ensure protocol. The contentHash is recomputed from the live surface state, so it is accurate even immediately after a dashboard edit. Configured inbound/outbound credentials are returned as the "<redacted>" placeholder, which ensure accepts to keep the stored value; inbound/outbound are null when the surface has none.
|
|
33260
33485
|
*/
|
|
33261
33486
|
get: {
|
|
33262
33487
|
parameters: {
|
|
@@ -39609,47 +39834,72 @@ interface paths {
|
|
|
39609
39834
|
patch?: never;
|
|
39610
39835
|
trace?: never;
|
|
39611
39836
|
};
|
|
39612
|
-
"/v1/question-sets/
|
|
39837
|
+
"/v1/question-sets/ensure": {
|
|
39613
39838
|
parameters: {
|
|
39614
39839
|
query?: never;
|
|
39615
39840
|
header?: never;
|
|
39616
39841
|
path?: never;
|
|
39617
39842
|
cookie?: never;
|
|
39618
39843
|
};
|
|
39844
|
+
get?: never;
|
|
39845
|
+
put?: never;
|
|
39619
39846
|
/**
|
|
39620
|
-
*
|
|
39621
|
-
* @description
|
|
39847
|
+
* Ensure question set (config-as-code converge)
|
|
39848
|
+
* @description Idempotently converge a repo-defined question set. Identity is the slug within the organization. A hash-only probe skips the payload in the steady state (a miss is a normal 200 `definitionRequired`, not an error); a full request creates the set, or appends a draft version when the questions, input mapping or model differ. Set dryRun to plan without writing, onConflict: "overwrite" to converge over dashboard or API edits, expectedRemoteHash to bind an apply to its dry run, and release: "publish" to publish the latest version. Ensure never deletes a set or a version.
|
|
39622
39849
|
*/
|
|
39623
|
-
|
|
39850
|
+
post: {
|
|
39624
39851
|
parameters: {
|
|
39625
39852
|
query?: never;
|
|
39626
39853
|
header?: never;
|
|
39627
|
-
path
|
|
39628
|
-
id: string;
|
|
39629
|
-
};
|
|
39854
|
+
path?: never;
|
|
39630
39855
|
cookie?: never;
|
|
39631
39856
|
};
|
|
39632
|
-
requestBody?:
|
|
39857
|
+
requestBody?: {
|
|
39858
|
+
content: {
|
|
39859
|
+
"application/json": {
|
|
39860
|
+
contentHash?: string;
|
|
39861
|
+
definition?: {
|
|
39862
|
+
description?: string | null;
|
|
39863
|
+
inputMapping?: {
|
|
39864
|
+
[key: string]: string;
|
|
39865
|
+
} | null;
|
|
39866
|
+
model?: string | null;
|
|
39867
|
+
name: string;
|
|
39868
|
+
/** @description Judgment questions keyed by question id, validated like `POST /v1/question-sets`. */
|
|
39869
|
+
questions: {
|
|
39870
|
+
[key: string]: unknown;
|
|
39871
|
+
};
|
|
39872
|
+
};
|
|
39873
|
+
dryRun?: boolean;
|
|
39874
|
+
expectedRemoteHash?: string;
|
|
39875
|
+
/** @enum {string} */
|
|
39876
|
+
onConflict?: "error" | "overwrite";
|
|
39877
|
+
/** @enum {string} */
|
|
39878
|
+
release?: "none" | "publish";
|
|
39879
|
+
/** @description Identity, unique in the organization: lowercase letters, digits, `-` and `_`, up to 64. */
|
|
39880
|
+
slug: string;
|
|
39881
|
+
};
|
|
39882
|
+
};
|
|
39883
|
+
};
|
|
39633
39884
|
responses: {
|
|
39634
|
-
/** @description
|
|
39885
|
+
/** @description Converge result: unchanged | created | updated | definitionRequired (hash miss; retry with the full definition) | plan (dryRun) */
|
|
39635
39886
|
200: {
|
|
39636
39887
|
headers: {
|
|
39637
39888
|
[name: string]: unknown;
|
|
39638
39889
|
};
|
|
39639
39890
|
content: {
|
|
39640
|
-
"application/json":
|
|
39641
|
-
questionSet: components["schemas"]["QuestionSet"];
|
|
39642
|
-
versions: components["schemas"]["QuestionSetVersion"][];
|
|
39643
|
-
};
|
|
39891
|
+
"application/json": components["schemas"]["QuestionSetEnsureResponse"];
|
|
39644
39892
|
};
|
|
39645
39893
|
};
|
|
39646
|
-
/** @description Invalid request */
|
|
39894
|
+
/** @description Invalid request or invalid questions */
|
|
39647
39895
|
400: {
|
|
39648
39896
|
headers: {
|
|
39649
39897
|
[name: string]: unknown;
|
|
39650
39898
|
};
|
|
39651
39899
|
content: {
|
|
39652
|
-
"application/json": components["schemas"]["
|
|
39900
|
+
"application/json": components["schemas"]["Error"] & {
|
|
39901
|
+
code?: string;
|
|
39902
|
+
};
|
|
39653
39903
|
};
|
|
39654
39904
|
};
|
|
39655
39905
|
/** @description Unauthorized */
|
|
@@ -39670,79 +39920,37 @@ interface paths {
|
|
|
39670
39920
|
"application/json": components["schemas"]["Error"];
|
|
39671
39921
|
};
|
|
39672
39922
|
};
|
|
39673
|
-
/** @description
|
|
39923
|
+
/** @description The question set was removed while the converge ran */
|
|
39674
39924
|
404: {
|
|
39675
39925
|
headers: {
|
|
39676
39926
|
[name: string]: unknown;
|
|
39677
39927
|
};
|
|
39678
39928
|
content: {
|
|
39679
|
-
"application/json": components["schemas"]["
|
|
39680
|
-
|
|
39681
|
-
};
|
|
39682
|
-
};
|
|
39683
|
-
};
|
|
39684
|
-
/**
|
|
39685
|
-
* Update a question set
|
|
39686
|
-
* @description Update the name or description, and append a new draft version when `questions`, `inputMapping` or `model` is present. Fields left out of a new version carry over from the latest version. No existing version is changed, and the slug is fixed.
|
|
39687
|
-
*/
|
|
39688
|
-
put: {
|
|
39689
|
-
parameters: {
|
|
39690
|
-
query?: never;
|
|
39691
|
-
header?: never;
|
|
39692
|
-
path: {
|
|
39693
|
-
id: string;
|
|
39694
|
-
};
|
|
39695
|
-
cookie?: never;
|
|
39696
|
-
};
|
|
39697
|
-
requestBody?: {
|
|
39698
|
-
content: {
|
|
39699
|
-
"application/json": {
|
|
39700
|
-
description?: string | null;
|
|
39701
|
-
inputMapping?: {
|
|
39702
|
-
[key: string]: string;
|
|
39703
|
-
} | null;
|
|
39704
|
-
model?: string | null;
|
|
39705
|
-
name?: string;
|
|
39706
|
-
/** @description Judgment questions keyed by question id. Each is `{ type: "boolean" | "choice" | "score", instructions, criteria }`. The id is never sent to the model, so instructions and criteria carry the meaning. */
|
|
39707
|
-
questions?: {
|
|
39708
|
-
[key: string]: unknown;
|
|
39709
|
-
};
|
|
39710
|
-
};
|
|
39711
|
-
};
|
|
39712
|
-
};
|
|
39713
|
-
responses: {
|
|
39714
|
-
/** @description Updated */
|
|
39715
|
-
200: {
|
|
39716
|
-
headers: {
|
|
39717
|
-
[name: string]: unknown;
|
|
39718
|
-
};
|
|
39719
|
-
content: {
|
|
39720
|
-
"application/json": {
|
|
39721
|
-
questionSet: components["schemas"]["QuestionSet"];
|
|
39722
|
-
version: components["schemas"]["QuestionSetVersion"] & (Record<string, never> | null);
|
|
39929
|
+
"application/json": components["schemas"]["Error"] & {
|
|
39930
|
+
code?: string;
|
|
39723
39931
|
};
|
|
39724
39932
|
};
|
|
39725
39933
|
};
|
|
39726
|
-
/** @description
|
|
39727
|
-
|
|
39934
|
+
/** @description Conflict: external_modification (the last write was not ensure; pass onConflict: "overwrite"), remote_changed (expectedRemoteHash guard), or a concurrent write */
|
|
39935
|
+
409: {
|
|
39728
39936
|
headers: {
|
|
39729
39937
|
[name: string]: unknown;
|
|
39730
39938
|
};
|
|
39731
39939
|
content: {
|
|
39732
|
-
"application/json": components["schemas"]["
|
|
39940
|
+
"application/json": components["schemas"]["QuestionSetEnsureConflict"];
|
|
39733
39941
|
};
|
|
39734
39942
|
};
|
|
39735
|
-
/** @description
|
|
39736
|
-
|
|
39943
|
+
/** @description The submitted contentHash does not match the server-recomputed canonical hash */
|
|
39944
|
+
422: {
|
|
39737
39945
|
headers: {
|
|
39738
39946
|
[name: string]: unknown;
|
|
39739
39947
|
};
|
|
39740
39948
|
content: {
|
|
39741
|
-
"application/json": components["schemas"]["
|
|
39949
|
+
"application/json": components["schemas"]["QuestionSetEnsureHashMismatch"];
|
|
39742
39950
|
};
|
|
39743
39951
|
};
|
|
39744
|
-
/** @description
|
|
39745
|
-
|
|
39952
|
+
/** @description Internal server error */
|
|
39953
|
+
500: {
|
|
39746
39954
|
headers: {
|
|
39747
39955
|
[name: string]: unknown;
|
|
39748
39956
|
};
|
|
@@ -39750,34 +39958,15 @@ interface paths {
|
|
|
39750
39958
|
"application/json": components["schemas"]["Error"];
|
|
39751
39959
|
};
|
|
39752
39960
|
};
|
|
39753
|
-
/** @description Not found */
|
|
39754
|
-
404: {
|
|
39755
|
-
headers: {
|
|
39756
|
-
[name: string]: unknown;
|
|
39757
|
-
};
|
|
39758
|
-
content: {
|
|
39759
|
-
"application/json": components["schemas"]["QuestionSetError"];
|
|
39760
|
-
};
|
|
39761
|
-
};
|
|
39762
|
-
/** @description Conflict */
|
|
39763
|
-
409: {
|
|
39764
|
-
headers: {
|
|
39765
|
-
[name: string]: unknown;
|
|
39766
|
-
};
|
|
39767
|
-
content: {
|
|
39768
|
-
"application/json": components["schemas"]["QuestionSetError"];
|
|
39769
|
-
};
|
|
39770
|
-
};
|
|
39771
39961
|
};
|
|
39772
39962
|
};
|
|
39773
|
-
post?: never;
|
|
39774
39963
|
delete?: never;
|
|
39775
39964
|
options?: never;
|
|
39776
39965
|
head?: never;
|
|
39777
39966
|
patch?: never;
|
|
39778
39967
|
trace?: never;
|
|
39779
39968
|
};
|
|
39780
|
-
"/v1/question-sets/
|
|
39969
|
+
"/v1/question-sets/pull": {
|
|
39781
39970
|
parameters: {
|
|
39782
39971
|
query?: never;
|
|
39783
39972
|
header?: never;
|
|
@@ -39785,38 +39974,28 @@ interface paths {
|
|
|
39785
39974
|
cookie?: never;
|
|
39786
39975
|
};
|
|
39787
39976
|
/**
|
|
39788
|
-
*
|
|
39789
|
-
* @description
|
|
39977
|
+
* Pull question set definition (config-as-code)
|
|
39978
|
+
* @description Return the canonical config-as-code definition and provenance for a question set by slug. The definition is the latest version, and the contentHash is recomputed from the live row, so it is accurate right after a dashboard edit.
|
|
39790
39979
|
*/
|
|
39791
39980
|
get: {
|
|
39792
39981
|
parameters: {
|
|
39793
|
-
query
|
|
39794
|
-
|
|
39982
|
+
query: {
|
|
39983
|
+
/** @description Identity, unique in the organization: lowercase letters, digits, `-` and `_`, up to 64. */
|
|
39984
|
+
slug: string;
|
|
39795
39985
|
};
|
|
39796
39986
|
header?: never;
|
|
39797
|
-
path
|
|
39798
|
-
id: string;
|
|
39799
|
-
};
|
|
39987
|
+
path?: never;
|
|
39800
39988
|
cookie?: never;
|
|
39801
39989
|
};
|
|
39802
39990
|
requestBody?: never;
|
|
39803
39991
|
responses: {
|
|
39804
|
-
/** @description
|
|
39992
|
+
/** @description Canonical definition and provenance */
|
|
39805
39993
|
200: {
|
|
39806
39994
|
headers: {
|
|
39807
39995
|
[name: string]: unknown;
|
|
39808
39996
|
};
|
|
39809
39997
|
content: {
|
|
39810
|
-
"application/json": components["schemas"]["
|
|
39811
|
-
};
|
|
39812
|
-
};
|
|
39813
|
-
/** @description Invalid request */
|
|
39814
|
-
400: {
|
|
39815
|
-
headers: {
|
|
39816
|
-
[name: string]: unknown;
|
|
39817
|
-
};
|
|
39818
|
-
content: {
|
|
39819
|
-
"application/json": components["schemas"]["QuestionSetError"];
|
|
39998
|
+
"application/json": components["schemas"]["QuestionSetPullResponse"];
|
|
39820
39999
|
};
|
|
39821
40000
|
};
|
|
39822
40001
|
/** @description Unauthorized */
|
|
@@ -39837,69 +40016,8 @@ interface paths {
|
|
|
39837
40016
|
"application/json": components["schemas"]["Error"];
|
|
39838
40017
|
};
|
|
39839
40018
|
};
|
|
39840
|
-
/** @description
|
|
40019
|
+
/** @description No question set with that slug in the organization */
|
|
39841
40020
|
404: {
|
|
39842
|
-
headers: {
|
|
39843
|
-
[name: string]: unknown;
|
|
39844
|
-
};
|
|
39845
|
-
content: {
|
|
39846
|
-
"application/json": components["schemas"]["QuestionSetError"];
|
|
39847
|
-
};
|
|
39848
|
-
};
|
|
39849
|
-
};
|
|
39850
|
-
};
|
|
39851
|
-
put?: never;
|
|
39852
|
-
post?: never;
|
|
39853
|
-
delete?: never;
|
|
39854
|
-
options?: never;
|
|
39855
|
-
head?: never;
|
|
39856
|
-
patch?: never;
|
|
39857
|
-
trace?: never;
|
|
39858
|
-
};
|
|
39859
|
-
"/v1/question-sets/{id}/versions": {
|
|
39860
|
-
parameters: {
|
|
39861
|
-
query?: never;
|
|
39862
|
-
header?: never;
|
|
39863
|
-
path?: never;
|
|
39864
|
-
cookie?: never;
|
|
39865
|
-
};
|
|
39866
|
-
/**
|
|
39867
|
-
* List a question set's versions
|
|
39868
|
-
* @description Every version, newest first.
|
|
39869
|
-
*/
|
|
39870
|
-
get: {
|
|
39871
|
-
parameters: {
|
|
39872
|
-
query?: never;
|
|
39873
|
-
header?: never;
|
|
39874
|
-
path: {
|
|
39875
|
-
id: string;
|
|
39876
|
-
};
|
|
39877
|
-
cookie?: never;
|
|
39878
|
-
};
|
|
39879
|
-
requestBody?: never;
|
|
39880
|
-
responses: {
|
|
39881
|
-
/** @description Versions */
|
|
39882
|
-
200: {
|
|
39883
|
-
headers: {
|
|
39884
|
-
[name: string]: unknown;
|
|
39885
|
-
};
|
|
39886
|
-
content: {
|
|
39887
|
-
"application/json": {
|
|
39888
|
-
data: components["schemas"]["QuestionSetVersion"][];
|
|
39889
|
-
};
|
|
39890
|
-
};
|
|
39891
|
-
};
|
|
39892
|
-
/** @description Invalid request */
|
|
39893
|
-
400: {
|
|
39894
|
-
headers: {
|
|
39895
|
-
[name: string]: unknown;
|
|
39896
|
-
};
|
|
39897
|
-
content: {
|
|
39898
|
-
"application/json": components["schemas"]["QuestionSetError"];
|
|
39899
|
-
};
|
|
39900
|
-
};
|
|
39901
|
-
/** @description Unauthorized */
|
|
39902
|
-
401: {
|
|
39903
40021
|
headers: {
|
|
39904
40022
|
[name: string]: unknown;
|
|
39905
40023
|
};
|
|
@@ -39907,8 +40025,8 @@ interface paths {
|
|
|
39907
40025
|
"application/json": components["schemas"]["Error"];
|
|
39908
40026
|
};
|
|
39909
40027
|
};
|
|
39910
|
-
/** @description
|
|
39911
|
-
|
|
40028
|
+
/** @description Internal server error */
|
|
40029
|
+
500: {
|
|
39912
40030
|
headers: {
|
|
39913
40031
|
[name: string]: unknown;
|
|
39914
40032
|
};
|
|
@@ -39916,15 +40034,6 @@ interface paths {
|
|
|
39916
40034
|
"application/json": components["schemas"]["Error"];
|
|
39917
40035
|
};
|
|
39918
40036
|
};
|
|
39919
|
-
/** @description Not found */
|
|
39920
|
-
404: {
|
|
39921
|
-
headers: {
|
|
39922
|
-
[name: string]: unknown;
|
|
39923
|
-
};
|
|
39924
|
-
content: {
|
|
39925
|
-
"application/json": components["schemas"]["QuestionSetError"];
|
|
39926
|
-
};
|
|
39927
|
-
};
|
|
39928
40037
|
};
|
|
39929
40038
|
};
|
|
39930
40039
|
put?: never;
|
|
@@ -39935,7 +40044,7 @@ interface paths {
|
|
|
39935
40044
|
patch?: never;
|
|
39936
40045
|
trace?: never;
|
|
39937
40046
|
};
|
|
39938
|
-
"/v1/question-sets/{id}
|
|
40047
|
+
"/v1/question-sets/{id}": {
|
|
39939
40048
|
parameters: {
|
|
39940
40049
|
query?: never;
|
|
39941
40050
|
header?: never;
|
|
@@ -39943,35 +40052,361 @@ interface paths {
|
|
|
39943
40052
|
cookie?: never;
|
|
39944
40053
|
};
|
|
39945
40054
|
/**
|
|
39946
|
-
*
|
|
39947
|
-
* @description
|
|
40055
|
+
* Get a question set
|
|
40056
|
+
* @description A question set with its versions, newest first.
|
|
39948
40057
|
*/
|
|
39949
40058
|
get: {
|
|
39950
40059
|
parameters: {
|
|
39951
|
-
query?:
|
|
39952
|
-
/** @description 1-200, default 50. */
|
|
39953
|
-
limit?: string;
|
|
39954
|
-
/** @description `pagination.nextCursor` from a previous page. */
|
|
39955
|
-
cursor?: string;
|
|
39956
|
-
};
|
|
40060
|
+
query?: never;
|
|
39957
40061
|
header?: never;
|
|
39958
40062
|
path: {
|
|
39959
40063
|
id: string;
|
|
39960
|
-
versionNumber: number;
|
|
39961
40064
|
};
|
|
39962
40065
|
cookie?: never;
|
|
39963
40066
|
};
|
|
39964
40067
|
requestBody?: never;
|
|
39965
40068
|
responses: {
|
|
39966
|
-
/** @description
|
|
40069
|
+
/** @description Question set */
|
|
39967
40070
|
200: {
|
|
39968
40071
|
headers: {
|
|
39969
40072
|
[name: string]: unknown;
|
|
39970
40073
|
};
|
|
39971
40074
|
content: {
|
|
39972
40075
|
"application/json": {
|
|
39973
|
-
|
|
39974
|
-
|
|
40076
|
+
questionSet: components["schemas"]["QuestionSet"];
|
|
40077
|
+
versions: components["schemas"]["QuestionSetVersion"][];
|
|
40078
|
+
};
|
|
40079
|
+
};
|
|
40080
|
+
};
|
|
40081
|
+
/** @description Invalid request */
|
|
40082
|
+
400: {
|
|
40083
|
+
headers: {
|
|
40084
|
+
[name: string]: unknown;
|
|
40085
|
+
};
|
|
40086
|
+
content: {
|
|
40087
|
+
"application/json": components["schemas"]["QuestionSetError"];
|
|
40088
|
+
};
|
|
40089
|
+
};
|
|
40090
|
+
/** @description Unauthorized */
|
|
40091
|
+
401: {
|
|
40092
|
+
headers: {
|
|
40093
|
+
[name: string]: unknown;
|
|
40094
|
+
};
|
|
40095
|
+
content: {
|
|
40096
|
+
"application/json": components["schemas"]["Error"];
|
|
40097
|
+
};
|
|
40098
|
+
};
|
|
40099
|
+
/** @description Insufficient permissions, or no organization context */
|
|
40100
|
+
403: {
|
|
40101
|
+
headers: {
|
|
40102
|
+
[name: string]: unknown;
|
|
40103
|
+
};
|
|
40104
|
+
content: {
|
|
40105
|
+
"application/json": components["schemas"]["Error"];
|
|
40106
|
+
};
|
|
40107
|
+
};
|
|
40108
|
+
/** @description Not found */
|
|
40109
|
+
404: {
|
|
40110
|
+
headers: {
|
|
40111
|
+
[name: string]: unknown;
|
|
40112
|
+
};
|
|
40113
|
+
content: {
|
|
40114
|
+
"application/json": components["schemas"]["QuestionSetError"];
|
|
40115
|
+
};
|
|
40116
|
+
};
|
|
40117
|
+
};
|
|
40118
|
+
};
|
|
40119
|
+
/**
|
|
40120
|
+
* Update a question set
|
|
40121
|
+
* @description Update the name or description, and append a new draft version when `questions`, `inputMapping` or `model` is present. Fields left out of a new version carry over from the latest version. No existing version is changed, and the slug is fixed.
|
|
40122
|
+
*/
|
|
40123
|
+
put: {
|
|
40124
|
+
parameters: {
|
|
40125
|
+
query?: never;
|
|
40126
|
+
header?: never;
|
|
40127
|
+
path: {
|
|
40128
|
+
id: string;
|
|
40129
|
+
};
|
|
40130
|
+
cookie?: never;
|
|
40131
|
+
};
|
|
40132
|
+
requestBody?: {
|
|
40133
|
+
content: {
|
|
40134
|
+
"application/json": {
|
|
40135
|
+
description?: string | null;
|
|
40136
|
+
inputMapping?: {
|
|
40137
|
+
[key: string]: string;
|
|
40138
|
+
} | null;
|
|
40139
|
+
model?: string | null;
|
|
40140
|
+
name?: string;
|
|
40141
|
+
/** @description Judgment questions keyed by question id. Each is `{ type: "boolean" | "choice" | "score", instructions, criteria }`. The id is never sent to the model, so instructions and criteria carry the meaning. */
|
|
40142
|
+
questions?: {
|
|
40143
|
+
[key: string]: unknown;
|
|
40144
|
+
};
|
|
40145
|
+
};
|
|
40146
|
+
};
|
|
40147
|
+
};
|
|
40148
|
+
responses: {
|
|
40149
|
+
/** @description Updated */
|
|
40150
|
+
200: {
|
|
40151
|
+
headers: {
|
|
40152
|
+
[name: string]: unknown;
|
|
40153
|
+
};
|
|
40154
|
+
content: {
|
|
40155
|
+
"application/json": {
|
|
40156
|
+
questionSet: components["schemas"]["QuestionSet"];
|
|
40157
|
+
version: components["schemas"]["QuestionSetVersion"] & (Record<string, never> | null);
|
|
40158
|
+
};
|
|
40159
|
+
};
|
|
40160
|
+
};
|
|
40161
|
+
/** @description Invalid request */
|
|
40162
|
+
400: {
|
|
40163
|
+
headers: {
|
|
40164
|
+
[name: string]: unknown;
|
|
40165
|
+
};
|
|
40166
|
+
content: {
|
|
40167
|
+
"application/json": components["schemas"]["QuestionSetError"];
|
|
40168
|
+
};
|
|
40169
|
+
};
|
|
40170
|
+
/** @description Unauthorized */
|
|
40171
|
+
401: {
|
|
40172
|
+
headers: {
|
|
40173
|
+
[name: string]: unknown;
|
|
40174
|
+
};
|
|
40175
|
+
content: {
|
|
40176
|
+
"application/json": components["schemas"]["Error"];
|
|
40177
|
+
};
|
|
40178
|
+
};
|
|
40179
|
+
/** @description Insufficient permissions, or no organization context */
|
|
40180
|
+
403: {
|
|
40181
|
+
headers: {
|
|
40182
|
+
[name: string]: unknown;
|
|
40183
|
+
};
|
|
40184
|
+
content: {
|
|
40185
|
+
"application/json": components["schemas"]["Error"];
|
|
40186
|
+
};
|
|
40187
|
+
};
|
|
40188
|
+
/** @description Not found */
|
|
40189
|
+
404: {
|
|
40190
|
+
headers: {
|
|
40191
|
+
[name: string]: unknown;
|
|
40192
|
+
};
|
|
40193
|
+
content: {
|
|
40194
|
+
"application/json": components["schemas"]["QuestionSetError"];
|
|
40195
|
+
};
|
|
40196
|
+
};
|
|
40197
|
+
/** @description Conflict */
|
|
40198
|
+
409: {
|
|
40199
|
+
headers: {
|
|
40200
|
+
[name: string]: unknown;
|
|
40201
|
+
};
|
|
40202
|
+
content: {
|
|
40203
|
+
"application/json": components["schemas"]["QuestionSetError"];
|
|
40204
|
+
};
|
|
40205
|
+
};
|
|
40206
|
+
};
|
|
40207
|
+
};
|
|
40208
|
+
post?: never;
|
|
40209
|
+
delete?: never;
|
|
40210
|
+
options?: never;
|
|
40211
|
+
head?: never;
|
|
40212
|
+
patch?: never;
|
|
40213
|
+
trace?: never;
|
|
40214
|
+
};
|
|
40215
|
+
"/v1/question-sets/{id}/resolved": {
|
|
40216
|
+
parameters: {
|
|
40217
|
+
query?: never;
|
|
40218
|
+
header?: never;
|
|
40219
|
+
path?: never;
|
|
40220
|
+
cookie?: never;
|
|
40221
|
+
};
|
|
40222
|
+
/**
|
|
40223
|
+
* Resolve a question set
|
|
40224
|
+
* @description The question set exactly as an execution receives it: the current published version (or the published `version` named), with its current calibration. A draft-only set answers 404 QUESTION_SET_UNRESOLVED.
|
|
40225
|
+
*/
|
|
40226
|
+
get: {
|
|
40227
|
+
parameters: {
|
|
40228
|
+
query?: {
|
|
40229
|
+
version?: number;
|
|
40230
|
+
};
|
|
40231
|
+
header?: never;
|
|
40232
|
+
path: {
|
|
40233
|
+
id: string;
|
|
40234
|
+
};
|
|
40235
|
+
cookie?: never;
|
|
40236
|
+
};
|
|
40237
|
+
requestBody?: never;
|
|
40238
|
+
responses: {
|
|
40239
|
+
/** @description Resolved */
|
|
40240
|
+
200: {
|
|
40241
|
+
headers: {
|
|
40242
|
+
[name: string]: unknown;
|
|
40243
|
+
};
|
|
40244
|
+
content: {
|
|
40245
|
+
"application/json": components["schemas"]["ResolvedQuestionSet"];
|
|
40246
|
+
};
|
|
40247
|
+
};
|
|
40248
|
+
/** @description Invalid request */
|
|
40249
|
+
400: {
|
|
40250
|
+
headers: {
|
|
40251
|
+
[name: string]: unknown;
|
|
40252
|
+
};
|
|
40253
|
+
content: {
|
|
40254
|
+
"application/json": components["schemas"]["QuestionSetError"];
|
|
40255
|
+
};
|
|
40256
|
+
};
|
|
40257
|
+
/** @description Unauthorized */
|
|
40258
|
+
401: {
|
|
40259
|
+
headers: {
|
|
40260
|
+
[name: string]: unknown;
|
|
40261
|
+
};
|
|
40262
|
+
content: {
|
|
40263
|
+
"application/json": components["schemas"]["Error"];
|
|
40264
|
+
};
|
|
40265
|
+
};
|
|
40266
|
+
/** @description Insufficient permissions, or no organization context */
|
|
40267
|
+
403: {
|
|
40268
|
+
headers: {
|
|
40269
|
+
[name: string]: unknown;
|
|
40270
|
+
};
|
|
40271
|
+
content: {
|
|
40272
|
+
"application/json": components["schemas"]["Error"];
|
|
40273
|
+
};
|
|
40274
|
+
};
|
|
40275
|
+
/** @description Not found */
|
|
40276
|
+
404: {
|
|
40277
|
+
headers: {
|
|
40278
|
+
[name: string]: unknown;
|
|
40279
|
+
};
|
|
40280
|
+
content: {
|
|
40281
|
+
"application/json": components["schemas"]["QuestionSetError"];
|
|
40282
|
+
};
|
|
40283
|
+
};
|
|
40284
|
+
};
|
|
40285
|
+
};
|
|
40286
|
+
put?: never;
|
|
40287
|
+
post?: never;
|
|
40288
|
+
delete?: never;
|
|
40289
|
+
options?: never;
|
|
40290
|
+
head?: never;
|
|
40291
|
+
patch?: never;
|
|
40292
|
+
trace?: never;
|
|
40293
|
+
};
|
|
40294
|
+
"/v1/question-sets/{id}/versions": {
|
|
40295
|
+
parameters: {
|
|
40296
|
+
query?: never;
|
|
40297
|
+
header?: never;
|
|
40298
|
+
path?: never;
|
|
40299
|
+
cookie?: never;
|
|
40300
|
+
};
|
|
40301
|
+
/**
|
|
40302
|
+
* List a question set's versions
|
|
40303
|
+
* @description Every version, newest first.
|
|
40304
|
+
*/
|
|
40305
|
+
get: {
|
|
40306
|
+
parameters: {
|
|
40307
|
+
query?: never;
|
|
40308
|
+
header?: never;
|
|
40309
|
+
path: {
|
|
40310
|
+
id: string;
|
|
40311
|
+
};
|
|
40312
|
+
cookie?: never;
|
|
40313
|
+
};
|
|
40314
|
+
requestBody?: never;
|
|
40315
|
+
responses: {
|
|
40316
|
+
/** @description Versions */
|
|
40317
|
+
200: {
|
|
40318
|
+
headers: {
|
|
40319
|
+
[name: string]: unknown;
|
|
40320
|
+
};
|
|
40321
|
+
content: {
|
|
40322
|
+
"application/json": {
|
|
40323
|
+
data: components["schemas"]["QuestionSetVersion"][];
|
|
40324
|
+
};
|
|
40325
|
+
};
|
|
40326
|
+
};
|
|
40327
|
+
/** @description Invalid request */
|
|
40328
|
+
400: {
|
|
40329
|
+
headers: {
|
|
40330
|
+
[name: string]: unknown;
|
|
40331
|
+
};
|
|
40332
|
+
content: {
|
|
40333
|
+
"application/json": components["schemas"]["QuestionSetError"];
|
|
40334
|
+
};
|
|
40335
|
+
};
|
|
40336
|
+
/** @description Unauthorized */
|
|
40337
|
+
401: {
|
|
40338
|
+
headers: {
|
|
40339
|
+
[name: string]: unknown;
|
|
40340
|
+
};
|
|
40341
|
+
content: {
|
|
40342
|
+
"application/json": components["schemas"]["Error"];
|
|
40343
|
+
};
|
|
40344
|
+
};
|
|
40345
|
+
/** @description Insufficient permissions, or no organization context */
|
|
40346
|
+
403: {
|
|
40347
|
+
headers: {
|
|
40348
|
+
[name: string]: unknown;
|
|
40349
|
+
};
|
|
40350
|
+
content: {
|
|
40351
|
+
"application/json": components["schemas"]["Error"];
|
|
40352
|
+
};
|
|
40353
|
+
};
|
|
40354
|
+
/** @description Not found */
|
|
40355
|
+
404: {
|
|
40356
|
+
headers: {
|
|
40357
|
+
[name: string]: unknown;
|
|
40358
|
+
};
|
|
40359
|
+
content: {
|
|
40360
|
+
"application/json": components["schemas"]["QuestionSetError"];
|
|
40361
|
+
};
|
|
40362
|
+
};
|
|
40363
|
+
};
|
|
40364
|
+
};
|
|
40365
|
+
put?: never;
|
|
40366
|
+
post?: never;
|
|
40367
|
+
delete?: never;
|
|
40368
|
+
options?: never;
|
|
40369
|
+
head?: never;
|
|
40370
|
+
patch?: never;
|
|
40371
|
+
trace?: never;
|
|
40372
|
+
};
|
|
40373
|
+
"/v1/question-sets/{id}/versions/{versionNumber}/calibrations": {
|
|
40374
|
+
parameters: {
|
|
40375
|
+
query?: never;
|
|
40376
|
+
header?: never;
|
|
40377
|
+
path?: never;
|
|
40378
|
+
cookie?: never;
|
|
40379
|
+
};
|
|
40380
|
+
/**
|
|
40381
|
+
* List a question set version's calibrations
|
|
40382
|
+
* @description The calibration history of one version, newest first, with cursor pagination.
|
|
40383
|
+
*/
|
|
40384
|
+
get: {
|
|
40385
|
+
parameters: {
|
|
40386
|
+
query?: {
|
|
40387
|
+
/** @description 1-200, default 50. */
|
|
40388
|
+
limit?: string;
|
|
40389
|
+
/** @description `pagination.nextCursor` from a previous page. */
|
|
40390
|
+
cursor?: string;
|
|
40391
|
+
};
|
|
40392
|
+
header?: never;
|
|
40393
|
+
path: {
|
|
40394
|
+
id: string;
|
|
40395
|
+
versionNumber: number;
|
|
40396
|
+
};
|
|
40397
|
+
cookie?: never;
|
|
40398
|
+
};
|
|
40399
|
+
requestBody?: never;
|
|
40400
|
+
responses: {
|
|
40401
|
+
/** @description Calibrations */
|
|
40402
|
+
200: {
|
|
40403
|
+
headers: {
|
|
40404
|
+
[name: string]: unknown;
|
|
40405
|
+
};
|
|
40406
|
+
content: {
|
|
40407
|
+
"application/json": {
|
|
40408
|
+
data: components["schemas"]["JudgmentCalibrationRecord"][];
|
|
40409
|
+
pagination: components["schemas"]["Pagination"];
|
|
39975
40410
|
};
|
|
39976
40411
|
};
|
|
39977
40412
|
};
|
|
@@ -40130,7 +40565,10 @@ interface paths {
|
|
|
40130
40565
|
*/
|
|
40131
40566
|
post: {
|
|
40132
40567
|
parameters: {
|
|
40133
|
-
query?:
|
|
40568
|
+
query?: {
|
|
40569
|
+
/** @description A set managed by code (`lastModifiedSource` is `sdk` or `terraform`) answers 409 `managed_by_code_conflict` unless this is `overwrite`. */
|
|
40570
|
+
onConflict?: "error" | "overwrite";
|
|
40571
|
+
};
|
|
40134
40572
|
header?: never;
|
|
40135
40573
|
path: {
|
|
40136
40574
|
id: string;
|
|
@@ -40188,6 +40626,15 @@ interface paths {
|
|
|
40188
40626
|
"application/json": components["schemas"]["QuestionSetError"];
|
|
40189
40627
|
};
|
|
40190
40628
|
};
|
|
40629
|
+
/** @description Conflict */
|
|
40630
|
+
409: {
|
|
40631
|
+
headers: {
|
|
40632
|
+
[name: string]: unknown;
|
|
40633
|
+
};
|
|
40634
|
+
content: {
|
|
40635
|
+
"application/json": components["schemas"]["QuestionSetError"];
|
|
40636
|
+
};
|
|
40637
|
+
};
|
|
40191
40638
|
};
|
|
40192
40639
|
};
|
|
40193
40640
|
delete?: never;
|
|
@@ -42094,7 +42541,7 @@ interface paths {
|
|
|
42094
42541
|
};
|
|
42095
42542
|
/**
|
|
42096
42543
|
* List runs
|
|
42097
|
-
* @description Every agent and flow run in the span store, newest start first, including runs that write no control-plane row. The UNSCOPED feed is ROOT runs only: a subagent or nested-flow run folds under its parent, `childCount` says how many are folded there, and `parentExecutionId=<id>` reads them. Pass `includeChildren=true` for the flat enumeration. Any resource-scoped filter (`agentId`, `flowId`, `conversationId`, `surfaceId`, `recordId`, `batchExecutionId`, `parentExecutionId`, `rootExecutionId`, `executionId`) is already an explicit selection and never folds, so an agent that only ever runs as a subagent still lists under `agentId`. Each row carries `origin` (dashboard | api | internal | null), read from the caller's authenticated principal, and `test` as its derived alias for `origin === "dashboard"`; any entrance that resolves a principal stamps origin, including the Runtype MCP server tools and Code Mode (`api`) and the hosted `/v1/mcp` proxy (`internal`). A lane with no principal answers null for both by design: schedule, webhook, messaging, A2A, an agent exposed as an MCP surface, subagent, nested flow, a client-token product surface, an ingested run, and any row whose header predates the field. `overlay=live` adds live control-plane fields; the overlay never adds, drops or reorders a row. A cursor minted by the retired control-plane list lane (`cp.` prefix) restarts at page one and answers `pagination.cursorReset: true`.
|
|
42544
|
+
* @description Every agent and flow run in the span store, newest start first, including runs that write no control-plane row. The UNSCOPED feed is ROOT runs only: a subagent or nested-flow run folds under its parent, `childCount` says how many are folded there, and `parentExecutionId=<id>` reads them. Pass `includeChildren=true` for the flat enumeration. Any resource-scoped filter (`agentId`, `flowId`, `conversationId`, `surfaceId`, `recordId`, `batchExecutionId`, `parentExecutionId`, `rootExecutionId`, `executionId`) is already an explicit selection and never folds, so an agent that only ever runs as a subagent still lists under `agentId`. Each row carries `origin` (dashboard | api | internal | null), read from the caller's authenticated principal, and `test` as its derived alias for `origin === "dashboard"`; any entrance that resolves a principal stamps origin, including the Runtype MCP server tools and Code Mode (`api`) and the hosted `/v1/mcp` proxy (`internal`). A lane with no principal answers null for both by design: schedule, webhook, messaging, A2A, an agent exposed as an MCP surface, subagent, nested flow, a client-token product surface, an ingested run, and any row whose header predates the field. `overlay=live` adds live control-plane fields; the overlay never adds, drops or reorders a row. A cursor minted by the retired control-plane list lane (`cp.` prefix) restarts at page one and answers `pagination.cursorReset: true`. `includeCount=true` adds `pagination.totalCount`, counted up to 1000, and `pagination.totalCountCapped`. Each row carries `via` (schedule | surface | api | mcp | cli | test | eval, with the id and name of the thing that started it) where the entrance stated it; null otherwise.
|
|
42098
42545
|
*/
|
|
42099
42546
|
get: {
|
|
42100
42547
|
parameters: {
|
|
@@ -42137,6 +42584,8 @@ interface paths {
|
|
|
42137
42584
|
limit?: string;
|
|
42138
42585
|
/** @description Keyset cursor from a previous page. */
|
|
42139
42586
|
cursor?: string;
|
|
42587
|
+
/** @description "true" adds pagination.totalCount and pagination.totalCountCapped: the number of runs matching this request's filters within its window, ignoring the cursor and limit, counted up to 1000. Past that the count stops at 1000 and totalCountCapped is true, so read it as "more than 1000". Omitted, or any other value, the response carries neither field. */
|
|
42588
|
+
includeCount?: string;
|
|
42140
42589
|
};
|
|
42141
42590
|
header?: never;
|
|
42142
42591
|
path?: never;
|
|
@@ -42159,6 +42608,10 @@ interface paths {
|
|
|
42159
42608
|
hasPrev: boolean;
|
|
42160
42609
|
limit: number;
|
|
42161
42610
|
nextCursor: string | null;
|
|
42611
|
+
/** @description The runs the request's filters match within its window, ignoring the cursor and limit, counted up to 1000. Present only when `includeCount=true`. */
|
|
42612
|
+
totalCount?: number;
|
|
42613
|
+
/** @description True when more than 1000 runs matched, so `totalCount` is the cap rather than the total. Present only when `includeCount=true`. */
|
|
42614
|
+
totalCountCapped?: boolean;
|
|
42162
42615
|
};
|
|
42163
42616
|
/** @description The started_at window the query resolved to, after defaults. */
|
|
42164
42617
|
window: {
|
|
@@ -43848,6 +44301,8 @@ interface paths {
|
|
|
43848
44301
|
search?: string;
|
|
43849
44302
|
/** @description Filter by status */
|
|
43850
44303
|
status?: "active" | "paused";
|
|
44304
|
+
/** @description Only schedules that run this agent */
|
|
44305
|
+
agentId?: string;
|
|
43851
44306
|
/** @description Response representation. `full` (default) preserves complete values; `compact` shortens every string value longer than 100 characters to a 100-character preview followed by `…`. */
|
|
43852
44307
|
view?: "full" | "compact";
|
|
43853
44308
|
};
|
|
@@ -43896,7 +44351,7 @@ interface paths {
|
|
|
43896
44351
|
};
|
|
43897
44352
|
};
|
|
43898
44353
|
};
|
|
43899
|
-
/** @description Canonical first page (no cursor/search/status, includeCount=true) is unchanged since the ETag echoed in If-None-Match. No body. */
|
|
44354
|
+
/** @description Canonical first page (no cursor/search/status/agentId, includeCount=true) is unchanged since the ETag echoed in If-None-Match. No body. */
|
|
43900
44355
|
304: {
|
|
43901
44356
|
headers: {
|
|
43902
44357
|
[name: string]: unknown;
|
|
@@ -44027,7 +44482,239 @@ interface paths {
|
|
|
44027
44482
|
patch?: never;
|
|
44028
44483
|
trace?: never;
|
|
44029
44484
|
};
|
|
44030
|
-
"/v1/schedules/batch/{batchId}/results": {
|
|
44485
|
+
"/v1/schedules/batch/{batchId}/results": {
|
|
44486
|
+
parameters: {
|
|
44487
|
+
query?: never;
|
|
44488
|
+
header?: never;
|
|
44489
|
+
path?: never;
|
|
44490
|
+
cookie?: never;
|
|
44491
|
+
};
|
|
44492
|
+
/**
|
|
44493
|
+
* Get results for a batch execution
|
|
44494
|
+
* @description Returns the per-record results for a batch execution.
|
|
44495
|
+
*/
|
|
44496
|
+
get: {
|
|
44497
|
+
parameters: {
|
|
44498
|
+
query?: {
|
|
44499
|
+
limit?: string;
|
|
44500
|
+
offset?: string;
|
|
44501
|
+
status?: string;
|
|
44502
|
+
};
|
|
44503
|
+
header?: never;
|
|
44504
|
+
path: {
|
|
44505
|
+
batchId: string;
|
|
44506
|
+
};
|
|
44507
|
+
cookie?: never;
|
|
44508
|
+
};
|
|
44509
|
+
requestBody?: never;
|
|
44510
|
+
responses: {
|
|
44511
|
+
/** @description Batch results */
|
|
44512
|
+
200: {
|
|
44513
|
+
headers: {
|
|
44514
|
+
[name: string]: unknown;
|
|
44515
|
+
};
|
|
44516
|
+
content: {
|
|
44517
|
+
"application/json": {
|
|
44518
|
+
data: {
|
|
44519
|
+
agentExecutionId: string | null;
|
|
44520
|
+
createdAt: string;
|
|
44521
|
+
durationMs: number | null;
|
|
44522
|
+
error: string | null;
|
|
44523
|
+
executedAt: string | null;
|
|
44524
|
+
/**
|
|
44525
|
+
* @description Engine that actually executed this record execution ('runtime' | 'legacy' | 'external'). Recorded at write time from the committed lane decision; never inferred later. 'external' marks a run a customer executed outside Runtype and reported through ingest. Null for rows written before attribution shipped and for units that never started executing.
|
|
44526
|
+
* @enum {string|null}
|
|
44527
|
+
*/
|
|
44528
|
+
executionEngine?: "runtime" | "legacy" | "external" | null;
|
|
44529
|
+
failedAt: string | null;
|
|
44530
|
+
failedStepCount: number | null;
|
|
44531
|
+
flowId: string | null;
|
|
44532
|
+
flowName: string | null;
|
|
44533
|
+
record: {
|
|
44534
|
+
id: string;
|
|
44535
|
+
name: string;
|
|
44536
|
+
type: string;
|
|
44537
|
+
} | null;
|
|
44538
|
+
recordId: string;
|
|
44539
|
+
recordResultId: string | null;
|
|
44540
|
+
result?: unknown;
|
|
44541
|
+
status: string;
|
|
44542
|
+
stepCount: number | null;
|
|
44543
|
+
}[];
|
|
44544
|
+
pagination: {
|
|
44545
|
+
hasMore: boolean;
|
|
44546
|
+
limit: number;
|
|
44547
|
+
offset: number;
|
|
44548
|
+
total: number;
|
|
44549
|
+
};
|
|
44550
|
+
summary?: {
|
|
44551
|
+
recordsWithFailedSteps: number;
|
|
44552
|
+
};
|
|
44553
|
+
};
|
|
44554
|
+
};
|
|
44555
|
+
};
|
|
44556
|
+
/** @description Unauthorized */
|
|
44557
|
+
401: {
|
|
44558
|
+
headers: {
|
|
44559
|
+
[name: string]: unknown;
|
|
44560
|
+
};
|
|
44561
|
+
content: {
|
|
44562
|
+
"application/json": components["schemas"]["Error"];
|
|
44563
|
+
};
|
|
44564
|
+
};
|
|
44565
|
+
/** @description Insufficient permissions */
|
|
44566
|
+
403: {
|
|
44567
|
+
headers: {
|
|
44568
|
+
[name: string]: unknown;
|
|
44569
|
+
};
|
|
44570
|
+
content: {
|
|
44571
|
+
"application/json": components["schemas"]["Error"];
|
|
44572
|
+
};
|
|
44573
|
+
};
|
|
44574
|
+
/** @description Batch not found */
|
|
44575
|
+
404: {
|
|
44576
|
+
headers: {
|
|
44577
|
+
[name: string]: unknown;
|
|
44578
|
+
};
|
|
44579
|
+
content: {
|
|
44580
|
+
"application/json": components["schemas"]["Error"];
|
|
44581
|
+
};
|
|
44582
|
+
};
|
|
44583
|
+
};
|
|
44584
|
+
};
|
|
44585
|
+
put?: never;
|
|
44586
|
+
post?: never;
|
|
44587
|
+
delete?: never;
|
|
44588
|
+
options?: never;
|
|
44589
|
+
head?: never;
|
|
44590
|
+
patch?: never;
|
|
44591
|
+
trace?: never;
|
|
44592
|
+
};
|
|
44593
|
+
"/v1/schedules/ensure": {
|
|
44594
|
+
parameters: {
|
|
44595
|
+
query?: never;
|
|
44596
|
+
header?: never;
|
|
44597
|
+
path?: never;
|
|
44598
|
+
cookie?: never;
|
|
44599
|
+
};
|
|
44600
|
+
get?: never;
|
|
44601
|
+
put?: never;
|
|
44602
|
+
/**
|
|
44603
|
+
* Ensure schedule (config-as-code converge)
|
|
44604
|
+
* @description Idempotently converge a repo-defined schedule on a standalone flow or agent. Identity is name + target + account scope; the target may name the flow or agent instead of carrying its id, so one definition works in every environment. Hash-only probes skip the payload in the steady state (a miss is a normal 200 `definitionRequired` response); full requests create the schedule or update it when the canonical content hash differs. Set dryRun to plan without writing (CI drift gate) and onConflict: "overwrite" to converge over dashboard/API edits. Omit `enabled` to leave a paused schedule paused. Ensure never deletes; schedules owned by a product surface are never matched.
|
|
44605
|
+
*/
|
|
44606
|
+
post: {
|
|
44607
|
+
parameters: {
|
|
44608
|
+
query?: never;
|
|
44609
|
+
header?: never;
|
|
44610
|
+
path?: never;
|
|
44611
|
+
cookie?: never;
|
|
44612
|
+
};
|
|
44613
|
+
requestBody?: {
|
|
44614
|
+
content: {
|
|
44615
|
+
"application/json": {
|
|
44616
|
+
contentHash?: string;
|
|
44617
|
+
definition?: components["schemas"]["ScheduleEnsureDefinition"];
|
|
44618
|
+
dryRun?: boolean;
|
|
44619
|
+
expectedRemoteHash?: string;
|
|
44620
|
+
name: string;
|
|
44621
|
+
/** @enum {string} */
|
|
44622
|
+
onConflict?: "error" | "overwrite";
|
|
44623
|
+
target: components["schemas"]["ScheduleEnsureTarget"];
|
|
44624
|
+
};
|
|
44625
|
+
};
|
|
44626
|
+
};
|
|
44627
|
+
responses: {
|
|
44628
|
+
/** @description Converge result: unchanged | created | updated | definitionRequired (hash miss — retry with the full definition) | plan (dryRun) */
|
|
44629
|
+
200: {
|
|
44630
|
+
headers: {
|
|
44631
|
+
[name: string]: unknown;
|
|
44632
|
+
};
|
|
44633
|
+
content: {
|
|
44634
|
+
"application/json": components["schemas"]["ScheduleEnsureResponse"];
|
|
44635
|
+
};
|
|
44636
|
+
};
|
|
44637
|
+
/** @description Validation error */
|
|
44638
|
+
400: {
|
|
44639
|
+
headers: {
|
|
44640
|
+
[name: string]: unknown;
|
|
44641
|
+
};
|
|
44642
|
+
content: {
|
|
44643
|
+
"application/json": components["schemas"]["Error"];
|
|
44644
|
+
};
|
|
44645
|
+
};
|
|
44646
|
+
/** @description Unauthorized */
|
|
44647
|
+
401: {
|
|
44648
|
+
headers: {
|
|
44649
|
+
[name: string]: unknown;
|
|
44650
|
+
};
|
|
44651
|
+
content: {
|
|
44652
|
+
"application/json": components["schemas"]["Error"];
|
|
44653
|
+
};
|
|
44654
|
+
};
|
|
44655
|
+
/** @description Plan limit exceeded (cron frequency or active schedule count) */
|
|
44656
|
+
402: {
|
|
44657
|
+
headers: {
|
|
44658
|
+
[name: string]: unknown;
|
|
44659
|
+
};
|
|
44660
|
+
content: {
|
|
44661
|
+
"application/json": components["schemas"]["ScheduleEntitlementError"];
|
|
44662
|
+
};
|
|
44663
|
+
};
|
|
44664
|
+
/** @description Insufficient permissions */
|
|
44665
|
+
403: {
|
|
44666
|
+
headers: {
|
|
44667
|
+
[name: string]: unknown;
|
|
44668
|
+
};
|
|
44669
|
+
content: {
|
|
44670
|
+
"application/json": components["schemas"]["Error"];
|
|
44671
|
+
};
|
|
44672
|
+
};
|
|
44673
|
+
/** @description Target not found */
|
|
44674
|
+
404: {
|
|
44675
|
+
headers: {
|
|
44676
|
+
[name: string]: unknown;
|
|
44677
|
+
};
|
|
44678
|
+
content: {
|
|
44679
|
+
"application/json": components["schemas"]["Error"];
|
|
44680
|
+
};
|
|
44681
|
+
};
|
|
44682
|
+
/** @description Conflict: external_modification (last write was not ensure; pass onConflict: "overwrite") or remote_changed (expectedRemoteHash guard) */
|
|
44683
|
+
409: {
|
|
44684
|
+
headers: {
|
|
44685
|
+
[name: string]: unknown;
|
|
44686
|
+
};
|
|
44687
|
+
content: {
|
|
44688
|
+
"application/json": components["schemas"]["ScheduleEnsureConflict"];
|
|
44689
|
+
};
|
|
44690
|
+
};
|
|
44691
|
+
/** @description Submitted contentHash does not match the server-recomputed canonical hash */
|
|
44692
|
+
422: {
|
|
44693
|
+
headers: {
|
|
44694
|
+
[name: string]: unknown;
|
|
44695
|
+
};
|
|
44696
|
+
content: {
|
|
44697
|
+
"application/json": components["schemas"]["ScheduleEnsureHashMismatch"];
|
|
44698
|
+
};
|
|
44699
|
+
};
|
|
44700
|
+
/** @description Internal server error */
|
|
44701
|
+
500: {
|
|
44702
|
+
headers: {
|
|
44703
|
+
[name: string]: unknown;
|
|
44704
|
+
};
|
|
44705
|
+
content: {
|
|
44706
|
+
"application/json": components["schemas"]["Error"];
|
|
44707
|
+
};
|
|
44708
|
+
};
|
|
44709
|
+
};
|
|
44710
|
+
};
|
|
44711
|
+
delete?: never;
|
|
44712
|
+
options?: never;
|
|
44713
|
+
head?: never;
|
|
44714
|
+
patch?: never;
|
|
44715
|
+
trace?: never;
|
|
44716
|
+
};
|
|
44717
|
+
"/v1/schedules/pull": {
|
|
44031
44718
|
parameters: {
|
|
44032
44719
|
query?: never;
|
|
44033
44720
|
header?: never;
|
|
@@ -44035,67 +44722,40 @@ interface paths {
|
|
|
44035
44722
|
cookie?: never;
|
|
44036
44723
|
};
|
|
44037
44724
|
/**
|
|
44038
|
-
*
|
|
44039
|
-
* @description
|
|
44725
|
+
* Pull schedule definition (config-as-code)
|
|
44726
|
+
* @description Return the canonical config-as-code definition and provenance for a standalone schedule by name and target — the absorb-drift direction of the ensure protocol. The target is echoed in the form the query used, and the definition always declares `enabled`.
|
|
44040
44727
|
*/
|
|
44041
44728
|
get: {
|
|
44042
44729
|
parameters: {
|
|
44043
|
-
query
|
|
44044
|
-
|
|
44045
|
-
|
|
44046
|
-
|
|
44730
|
+
query: {
|
|
44731
|
+
name: string;
|
|
44732
|
+
flowId?: string;
|
|
44733
|
+
agentId?: string;
|
|
44734
|
+
flowName?: string;
|
|
44735
|
+
agentName?: string;
|
|
44047
44736
|
};
|
|
44048
44737
|
header?: never;
|
|
44049
|
-
path
|
|
44050
|
-
batchId: string;
|
|
44051
|
-
};
|
|
44738
|
+
path?: never;
|
|
44052
44739
|
cookie?: never;
|
|
44053
44740
|
};
|
|
44054
44741
|
requestBody?: never;
|
|
44055
44742
|
responses: {
|
|
44056
|
-
/** @description
|
|
44743
|
+
/** @description Canonical definition + provenance */
|
|
44057
44744
|
200: {
|
|
44058
44745
|
headers: {
|
|
44059
44746
|
[name: string]: unknown;
|
|
44060
44747
|
};
|
|
44061
44748
|
content: {
|
|
44062
|
-
"application/json":
|
|
44063
|
-
|
|
44064
|
-
|
|
44065
|
-
|
|
44066
|
-
|
|
44067
|
-
|
|
44068
|
-
|
|
44069
|
-
|
|
44070
|
-
|
|
44071
|
-
|
|
44072
|
-
*/
|
|
44073
|
-
executionEngine?: "runtime" | "legacy" | "external" | null;
|
|
44074
|
-
failedAt: string | null;
|
|
44075
|
-
failedStepCount: number | null;
|
|
44076
|
-
flowId: string | null;
|
|
44077
|
-
flowName: string | null;
|
|
44078
|
-
record: {
|
|
44079
|
-
id: string;
|
|
44080
|
-
name: string;
|
|
44081
|
-
type: string;
|
|
44082
|
-
} | null;
|
|
44083
|
-
recordId: string;
|
|
44084
|
-
recordResultId: string | null;
|
|
44085
|
-
result?: unknown;
|
|
44086
|
-
status: string;
|
|
44087
|
-
stepCount: number | null;
|
|
44088
|
-
}[];
|
|
44089
|
-
pagination: {
|
|
44090
|
-
hasMore: boolean;
|
|
44091
|
-
limit: number;
|
|
44092
|
-
offset: number;
|
|
44093
|
-
total: number;
|
|
44094
|
-
};
|
|
44095
|
-
summary?: {
|
|
44096
|
-
recordsWithFailedSteps: number;
|
|
44097
|
-
};
|
|
44098
|
-
};
|
|
44749
|
+
"application/json": components["schemas"]["SchedulePullResponse"];
|
|
44750
|
+
};
|
|
44751
|
+
};
|
|
44752
|
+
/** @description Validation error */
|
|
44753
|
+
400: {
|
|
44754
|
+
headers: {
|
|
44755
|
+
[name: string]: unknown;
|
|
44756
|
+
};
|
|
44757
|
+
content: {
|
|
44758
|
+
"application/json": components["schemas"]["Error"];
|
|
44099
44759
|
};
|
|
44100
44760
|
};
|
|
44101
44761
|
/** @description Unauthorized */
|
|
@@ -44116,7 +44776,7 @@ interface paths {
|
|
|
44116
44776
|
"application/json": components["schemas"]["Error"];
|
|
44117
44777
|
};
|
|
44118
44778
|
};
|
|
44119
|
-
/** @description
|
|
44779
|
+
/** @description No schedule with that name on that target in the account scope */
|
|
44120
44780
|
404: {
|
|
44121
44781
|
headers: {
|
|
44122
44782
|
[name: string]: unknown;
|
|
@@ -44125,6 +44785,15 @@ interface paths {
|
|
|
44125
44785
|
"application/json": components["schemas"]["Error"];
|
|
44126
44786
|
};
|
|
44127
44787
|
};
|
|
44788
|
+
/** @description Internal server error */
|
|
44789
|
+
500: {
|
|
44790
|
+
headers: {
|
|
44791
|
+
[name: string]: unknown;
|
|
44792
|
+
};
|
|
44793
|
+
content: {
|
|
44794
|
+
"application/json": components["schemas"]["Error"];
|
|
44795
|
+
};
|
|
44796
|
+
};
|
|
44128
44797
|
};
|
|
44129
44798
|
};
|
|
44130
44799
|
put?: never;
|
|
@@ -46523,7 +47192,7 @@ interface paths {
|
|
|
46523
47192
|
put?: never;
|
|
46524
47193
|
/**
|
|
46525
47194
|
* Ensure skill (config-as-code converge)
|
|
46526
|
-
* @description Idempotently converge a repo-defined skill (SKILL.md manifest) 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 skill or append a new version when the canonical content hash differs. The response always carries the server-computed canonical hash + the version id. Set dryRun to plan without writing (CI drift gate), onConflict: "overwrite" to converge over dashboard/API edits, and release: "publish" to publish the converged version. Admin/control plane only — no review queue.
|
|
47195
|
+
* @description Idempotently converge a repo-defined skill (SKILL.md manifest) 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 skill or append a new version when the canonical content hash differs. The response always carries the server-computed canonical hash + the version id. Set dryRun to plan without writing (CI drift gate), onConflict: "overwrite" to converge over dashboard/API edits, and release: "publish" to publish the converged version. Optional version.label / version.notes stamp provenance (a git SHA, a release tag) on the appended version row. Admin/control plane only — no review queue.
|
|
46527
47196
|
*/
|
|
46528
47197
|
post: {
|
|
46529
47198
|
parameters: {
|
|
@@ -46550,6 +47219,7 @@ interface paths {
|
|
|
46550
47219
|
onConflict?: "error" | "overwrite";
|
|
46551
47220
|
/** @enum {string} */
|
|
46552
47221
|
release?: "none" | "publish";
|
|
47222
|
+
version?: components["schemas"]["EnsureVersionMetadata"];
|
|
46553
47223
|
};
|
|
46554
47224
|
};
|
|
46555
47225
|
};
|
|
@@ -50684,6 +51354,36 @@ interface components {
|
|
|
50684
51354
|
code?: "alias_requires_organization";
|
|
50685
51355
|
error: string;
|
|
50686
51356
|
};
|
|
51357
|
+
AgentEnsureCapability: {
|
|
51358
|
+
/** @description The name of another agent in this account scope, called as a sub-agent. */
|
|
51359
|
+
agent?: string;
|
|
51360
|
+
description?: string;
|
|
51361
|
+
/** @description Defaults to true. */
|
|
51362
|
+
enabled?: boolean;
|
|
51363
|
+
/** @description The name of a flow in this account scope. */
|
|
51364
|
+
flow?: string;
|
|
51365
|
+
/** @description JSON Schema for the capability's input. Omit to derive it from the flow's inputs or the tool's own schema. */
|
|
51366
|
+
parametersSchema?: {
|
|
51367
|
+
[key: string]: unknown;
|
|
51368
|
+
};
|
|
51369
|
+
/** @description The name of a saved tool in this account scope. */
|
|
51370
|
+
tool?: string;
|
|
51371
|
+
/** @description The name the agent calls this capability by. */
|
|
51372
|
+
toolName: string;
|
|
51373
|
+
};
|
|
51374
|
+
AgentEnsureCapabilityChange: {
|
|
51375
|
+
/**
|
|
51376
|
+
* @description What this converge did (on a dry run, would do) to the capability.
|
|
51377
|
+
* @enum {string}
|
|
51378
|
+
*/
|
|
51379
|
+
action: "add" | "update" | "remove" | "unchanged";
|
|
51380
|
+
enabled: boolean;
|
|
51381
|
+
/** @enum {string|null} */
|
|
51382
|
+
kind: "flow" | "agent" | "tool" | null;
|
|
51383
|
+
/** @description The flow, agent or tool name the capability calls. */
|
|
51384
|
+
source: string | null;
|
|
51385
|
+
toolName: string;
|
|
51386
|
+
};
|
|
50687
51387
|
AgentEnsureConflict: {
|
|
50688
51388
|
/** @enum {string} */
|
|
50689
51389
|
code: "external_modification" | "remote_changed";
|
|
@@ -50704,6 +51404,10 @@ interface components {
|
|
|
50704
51404
|
AgentEnsureDeployment: {
|
|
50705
51405
|
/** @description The release alias this converge aimed. */
|
|
50706
51406
|
alias: string;
|
|
51407
|
+
/** @description Per-alias secret binding names in force after this converge (on a dry run carrying deploy.bindings, the names it would leave in force). Never values. */
|
|
51408
|
+
bindingNames?: string[];
|
|
51409
|
+
/** @description Present on a dry run carrying deploy.bindings: whether the binding names differ from the ones the alias carries now. */
|
|
51410
|
+
bindingsChanged?: boolean;
|
|
50707
51411
|
/** @description Whether this converge moved the pointer (on a dry run, whether it would move it). */
|
|
50708
51412
|
changed: boolean;
|
|
50709
51413
|
/** @description The deployment receipt this converge appended. Absent when the pointer did not move. */
|
|
@@ -50722,22 +51426,10 @@ interface components {
|
|
|
50722
51426
|
contentHash: string;
|
|
50723
51427
|
error: string;
|
|
50724
51428
|
};
|
|
50725
|
-
AgentEnsurePreviewAliasLimit: {
|
|
50726
|
-
active: number;
|
|
50727
|
-
/** @enum {string} */
|
|
50728
|
-
code: "PREVIEW_ALIAS_LIMIT";
|
|
50729
|
-
error: string;
|
|
50730
|
-
limit: number;
|
|
50731
|
-
/** @description The same remediation sentence as `error`. */
|
|
50732
|
-
message: string;
|
|
50733
|
-
/**
|
|
50734
|
-
* @description Which population was already at its active-preview limit.
|
|
50735
|
-
* @enum {string}
|
|
50736
|
-
*/
|
|
50737
|
-
scope: "organization" | "agent";
|
|
50738
|
-
};
|
|
50739
51429
|
AgentEnsureResponse: {
|
|
50740
51430
|
agentId: string;
|
|
51431
|
+
/** @description Present when the request carried capabilities: one row per declared capability, then removals. */
|
|
51432
|
+
capabilityChanges?: components["schemas"]["AgentEnsureCapabilityChange"][];
|
|
50741
51433
|
/** @description Server-computed canonical content hash. Clients should echo this hash in probes. */
|
|
50742
51434
|
contentHash: string;
|
|
50743
51435
|
deployment?: components["schemas"]["AgentEnsureDeployment"];
|
|
@@ -50745,6 +51437,8 @@ interface components {
|
|
|
50745
51437
|
remoteHash?: string;
|
|
50746
51438
|
/** @enum {string} */
|
|
50747
51439
|
result: "unchanged" | "created" | "updated";
|
|
51440
|
+
/** @description Present when the request carried skills: one row per declared binding, then unbinds. */
|
|
51441
|
+
skillBindings?: components["schemas"]["AgentEnsureSkillBindingChange"][];
|
|
50748
51442
|
/** @description The version snapshot backing this state (null if snapshotting failed). */
|
|
50749
51443
|
versionId: string | null;
|
|
50750
51444
|
} | {
|
|
@@ -50752,6 +51446,8 @@ interface components {
|
|
|
50752
51446
|
result: "definitionRequired";
|
|
50753
51447
|
} | {
|
|
50754
51448
|
agentId?: string;
|
|
51449
|
+
/** @description Present when the request carried capabilities: one row per declared capability, then removals. */
|
|
51450
|
+
capabilityChanges?: components["schemas"]["AgentEnsureCapabilityChange"][];
|
|
50755
51451
|
changedKeys: string[];
|
|
50756
51452
|
/** @enum {string} */
|
|
50757
51453
|
changes: "none" | "create" | "update";
|
|
@@ -50760,6 +51456,8 @@ interface components {
|
|
|
50760
51456
|
remoteHash?: string;
|
|
50761
51457
|
/** @enum {string} */
|
|
50762
51458
|
result: "plan";
|
|
51459
|
+
/** @description Present when the request carried skills: one row per declared binding, then unbinds. */
|
|
51460
|
+
skillBindings?: components["schemas"]["AgentEnsureSkillBindingChange"][];
|
|
50763
51461
|
};
|
|
50764
51462
|
AgentEnsureServerError: {
|
|
50765
51463
|
/** @description The release alias whose activation failed. No pointer was moved. */
|
|
@@ -50768,8 +51466,31 @@ interface components {
|
|
|
50768
51466
|
code?: "alias_activation_failed";
|
|
50769
51467
|
error: string;
|
|
50770
51468
|
};
|
|
51469
|
+
AgentEnsureSkillBinding: {
|
|
51470
|
+
/** @description Defaults to true. */
|
|
51471
|
+
enabled?: boolean;
|
|
51472
|
+
/** @description The skill slug. */
|
|
51473
|
+
name: string;
|
|
51474
|
+
/** @description Pin this skill versionNumber. Omit to follow the skill's published version. */
|
|
51475
|
+
version?: number;
|
|
51476
|
+
};
|
|
51477
|
+
AgentEnsureSkillBindingChange: {
|
|
51478
|
+
/**
|
|
51479
|
+
* @description What this converge did (on a dry run, would do) to the binding.
|
|
51480
|
+
* @enum {string}
|
|
51481
|
+
*/
|
|
51482
|
+
action: "bind" | "update" | "unbind" | "unchanged";
|
|
51483
|
+
enabled: boolean;
|
|
51484
|
+
/** @description The skill slug. */
|
|
51485
|
+
name: string;
|
|
51486
|
+
skillId: string;
|
|
51487
|
+
/** @description The pinned versionNumber; null follows the published version. */
|
|
51488
|
+
version: number | null;
|
|
51489
|
+
};
|
|
50771
51490
|
AgentPullResponse: {
|
|
50772
51491
|
agentId: string;
|
|
51492
|
+
/** @description The agent's capabilities in display order, in the shape ensure's capabilities accepts. parametersSchema appears only when it differs from the one ensure would derive. */
|
|
51493
|
+
capabilities: components["schemas"]["AgentEnsureCapability"][];
|
|
50773
51494
|
contentHash: string;
|
|
50774
51495
|
definition: {
|
|
50775
51496
|
config?: {
|
|
@@ -51070,6 +51791,8 @@ interface components {
|
|
|
51070
51791
|
name: string;
|
|
51071
51792
|
};
|
|
51072
51793
|
lastModifiedSource: string | null;
|
|
51794
|
+
/** @description The agent's skill bindings in load order, in the shape ensure's skills accepts. */
|
|
51795
|
+
skills: components["schemas"]["AgentEnsureSkillBinding"][];
|
|
51073
51796
|
updatedAt: string | null;
|
|
51074
51797
|
versionId: string | null;
|
|
51075
51798
|
/** @description Present only when a raw tool_… reference could not be emitted as a portable tool:<name> (the tool was deleted, or its name is shadowed by an older same-named tool). Those references are left as raw ids, which the ensure surface rejects; each warning explains how to fix it. */
|
|
@@ -51256,6 +51979,57 @@ interface components {
|
|
|
51256
51979
|
/** @enum {string} */
|
|
51257
51980
|
status: "pending" | "applied" | "settled" | "not_applied";
|
|
51258
51981
|
};
|
|
51982
|
+
CollectionEnsureConflict: {
|
|
51983
|
+
/** @enum {string} */
|
|
51984
|
+
code: "external_modification" | "remote_changed";
|
|
51985
|
+
currentHash?: string | null;
|
|
51986
|
+
error: string;
|
|
51987
|
+
lastModifiedSource?: string;
|
|
51988
|
+
modifiedAt?: string | null;
|
|
51989
|
+
};
|
|
51990
|
+
CollectionEnsureHashMismatch: {
|
|
51991
|
+
/** @enum {string} */
|
|
51992
|
+
code: "content_hash_mismatch";
|
|
51993
|
+
/** @description The server-computed canonical hash of the submitted definition. */
|
|
51994
|
+
contentHash: string;
|
|
51995
|
+
error: string;
|
|
51996
|
+
};
|
|
51997
|
+
CollectionEnsureResponse: {
|
|
51998
|
+
collectionId: string;
|
|
51999
|
+
/** @description Server-computed canonical content hash. Clients should echo this hash in probes. */
|
|
52000
|
+
contentHash: string;
|
|
52001
|
+
/** @description Present when this ensure moved validationMode to enforce: a bounded dry-run of existing records against the schema, as PATCH reports. */
|
|
52002
|
+
enforceCheck?: {
|
|
52003
|
+
checked: number;
|
|
52004
|
+
failed: number;
|
|
52005
|
+
truncated: boolean;
|
|
52006
|
+
};
|
|
52007
|
+
/** @enum {string} */
|
|
52008
|
+
result: "unchanged" | "created" | "updated";
|
|
52009
|
+
schemaChange?: {
|
|
52010
|
+
breakingChanges: string[];
|
|
52011
|
+
/** @enum {string} */
|
|
52012
|
+
kind: "additive" | "breaking";
|
|
52013
|
+
};
|
|
52014
|
+
} | {
|
|
52015
|
+
/** @enum {string} */
|
|
52016
|
+
result: "definitionRequired";
|
|
52017
|
+
} | {
|
|
52018
|
+
changedKeys: string[];
|
|
52019
|
+
/** @enum {string} */
|
|
52020
|
+
changes: "none" | "create" | "update";
|
|
52021
|
+
collectionId?: string;
|
|
52022
|
+
contentHash: string;
|
|
52023
|
+
remoteHash?: string;
|
|
52024
|
+
/** @enum {string} */
|
|
52025
|
+
result: "plan";
|
|
52026
|
+
/** @description How the schema would change. A breaking change is rejected when the resulting validationMode is enforce. */
|
|
52027
|
+
schemaChange?: {
|
|
52028
|
+
breakingChanges: string[];
|
|
52029
|
+
/** @enum {string} */
|
|
52030
|
+
kind: "additive" | "breaking";
|
|
52031
|
+
};
|
|
52032
|
+
};
|
|
51259
52033
|
CollectionLookupFailedError: {
|
|
51260
52034
|
/** @enum {string} */
|
|
51261
52035
|
code: "COLLECTION_LOOKUP_FAILED";
|
|
@@ -51266,6 +52040,24 @@ interface components {
|
|
|
51266
52040
|
recordId?: string;
|
|
51267
52041
|
recordName?: string;
|
|
51268
52042
|
};
|
|
52043
|
+
CollectionPullResponse: {
|
|
52044
|
+
collectionId: string;
|
|
52045
|
+
contentHash: string;
|
|
52046
|
+
definition: {
|
|
52047
|
+
description: string | null;
|
|
52048
|
+
displayName: string;
|
|
52049
|
+
icon: string | null;
|
|
52050
|
+
/** @description Constrained JSON Schema dialect: root object with string/number/boolean/array/object properties, one nesting level, no $ref/oneOf/pattern */
|
|
52051
|
+
schema: {
|
|
52052
|
+
[key: string]: unknown;
|
|
52053
|
+
} | null;
|
|
52054
|
+
slug: string;
|
|
52055
|
+
/** @enum {string} */
|
|
52056
|
+
validationMode: "off" | "warn" | "enforce";
|
|
52057
|
+
};
|
|
52058
|
+
lastModifiedSource: string | null;
|
|
52059
|
+
updatedAt: string | null;
|
|
52060
|
+
};
|
|
51269
52061
|
ContextBlocks: {
|
|
51270
52062
|
blocks: {
|
|
51271
52063
|
/** @description The block text, scrubbed of secrets. */
|
|
@@ -52196,6 +52988,14 @@ interface components {
|
|
|
52196
52988
|
name: string;
|
|
52197
52989
|
}[];
|
|
52198
52990
|
};
|
|
52991
|
+
EvalEnsureConflict: {
|
|
52992
|
+
/** @enum {string} */
|
|
52993
|
+
code: "external_modification" | "remote_changed";
|
|
52994
|
+
currentHash?: string | null;
|
|
52995
|
+
error: string;
|
|
52996
|
+
lastModifiedSource?: string;
|
|
52997
|
+
modifiedAt?: string | null;
|
|
52998
|
+
};
|
|
52199
52999
|
EvalEnsureResponse: {
|
|
52200
53000
|
/** @description Server-computed canonical content hash. Clients should echo this hash in probes. */
|
|
52201
53001
|
contentHash: string;
|
|
@@ -52205,6 +53005,15 @@ interface components {
|
|
|
52205
53005
|
} | {
|
|
52206
53006
|
/** @enum {string} */
|
|
52207
53007
|
result: "definitionRequired";
|
|
53008
|
+
} | {
|
|
53009
|
+
changedKeys: string[];
|
|
53010
|
+
/** @enum {string} */
|
|
53011
|
+
changes: "none" | "create" | "update";
|
|
53012
|
+
contentHash: string;
|
|
53013
|
+
remoteHash?: string;
|
|
53014
|
+
/** @enum {string} */
|
|
53015
|
+
result: "plan";
|
|
53016
|
+
suiteId?: string;
|
|
52208
53017
|
};
|
|
52209
53018
|
/** @description Canonical eval override field. Replaces `stepOverrides` (and its `"*"` key), `claudeManagedOverride` and `advisorOverride`; setting both spellings of one channel is a 400. */
|
|
52210
53019
|
EvalOverrides: {
|
|
@@ -53230,6 +54039,8 @@ interface components {
|
|
|
53230
54039
|
changes: "none" | "create" | "update";
|
|
53231
54040
|
contentHash: string;
|
|
53232
54041
|
flowId?: string;
|
|
54042
|
+
/** @description Present when the dry run carried release: "publish": whether the converge would re-aim the published version. */
|
|
54043
|
+
publishPending?: boolean;
|
|
53233
54044
|
remoteHash?: string;
|
|
53234
54045
|
/** @enum {string} */
|
|
53235
54046
|
result: "plan";
|
|
@@ -53388,15 +54199,6 @@ interface components {
|
|
|
53388
54199
|
totalCount?: number;
|
|
53389
54200
|
totalPages?: number;
|
|
53390
54201
|
};
|
|
53391
|
-
PreviewAliasLimitError: components["schemas"]["Error"] & {
|
|
53392
|
-
active: number;
|
|
53393
|
-
/** @enum {string} */
|
|
53394
|
-
code: "PREVIEW_ALIAS_LIMIT";
|
|
53395
|
-
limit: number;
|
|
53396
|
-
message: string;
|
|
53397
|
-
/** @enum {string} */
|
|
53398
|
-
scope: "organization" | "agent";
|
|
53399
|
-
};
|
|
53400
54202
|
ProductCanvasBlock: {
|
|
53401
54203
|
/** @description When the block was added; set by the server */
|
|
53402
54204
|
readonly addedAt?: string;
|
|
@@ -53505,11 +54307,16 @@ interface components {
|
|
|
53505
54307
|
/** @description True when one or more entities failed to converge (re-run to self-heal). */
|
|
53506
54308
|
hasFailures: boolean;
|
|
53507
54309
|
productId?: string;
|
|
54310
|
+
/** @description dryRun only: the live graph's pull-fpo hash, absent when the product does not exist or the caller cannot read every section. Pass it back as expectedRemoteHash to guard the apply. */
|
|
54311
|
+
remoteHash?: string;
|
|
53508
54312
|
/**
|
|
53509
|
-
* @description `unchanged` when every entity was unchanged, `converged` when at least one was created/updated, `plan` for dryRun.
|
|
54313
|
+
* @description `unchanged` when every entity was unchanged (a matching hash-only probe reports no entities), `converged` when at least one was created/updated, `plan` for dryRun.
|
|
53510
54314
|
* @enum {string}
|
|
53511
54315
|
*/
|
|
53512
54316
|
result: "unchanged" | "converged" | "plan";
|
|
54317
|
+
} | {
|
|
54318
|
+
/** @enum {string} */
|
|
54319
|
+
result: "definitionRequired";
|
|
53513
54320
|
};
|
|
53514
54321
|
ProductFpoPullResponse: {
|
|
53515
54322
|
/** @description Server-computed canonical whole-FPO content hash. */
|
|
@@ -53560,6 +54367,7 @@ interface components {
|
|
|
53560
54367
|
productGoal?: string;
|
|
53561
54368
|
/** @enum {string} */
|
|
53562
54369
|
productStage?: "idea" | "prototype" | "beta" | "production" | "scaling";
|
|
54370
|
+
stack?: components["schemas"]["ProductStack"];
|
|
53563
54371
|
targetAudience?: string;
|
|
53564
54372
|
techStack?: {
|
|
53565
54373
|
backend?: string[];
|
|
@@ -53615,11 +54423,52 @@ interface components {
|
|
|
53615
54423
|
currentVersionId: string | null;
|
|
53616
54424
|
description: string | null;
|
|
53617
54425
|
id: string;
|
|
54426
|
+
/** @description The surface that last wrote the set; `sdk` or `terraform` means it is managed by code through ensure. */
|
|
54427
|
+
lastModifiedSource?: string | null;
|
|
53618
54428
|
name: string;
|
|
53619
54429
|
organizationId: string;
|
|
53620
54430
|
slug: string;
|
|
53621
54431
|
updatedAt: string;
|
|
53622
54432
|
};
|
|
54433
|
+
QuestionSetEnsureConflict: {
|
|
54434
|
+
/** @description external_modification, remote_changed, or a question set code such as QUESTION_SET_SLUG_TAKEN. */
|
|
54435
|
+
code: string;
|
|
54436
|
+
currentHash?: string | null;
|
|
54437
|
+
error: string;
|
|
54438
|
+
lastModifiedSource?: string;
|
|
54439
|
+
modifiedAt?: string | null;
|
|
54440
|
+
};
|
|
54441
|
+
QuestionSetEnsureHashMismatch: {
|
|
54442
|
+
/** @enum {string} */
|
|
54443
|
+
code: "content_hash_mismatch";
|
|
54444
|
+
/** @description The server-computed canonical hash of the submitted definition. */
|
|
54445
|
+
contentHash: string;
|
|
54446
|
+
error: string;
|
|
54447
|
+
};
|
|
54448
|
+
QuestionSetEnsureResponse: {
|
|
54449
|
+
/** @description Server-computed canonical content hash. Clients should echo this hash in probes. */
|
|
54450
|
+
contentHash: string;
|
|
54451
|
+
/** @description The version executions resolve when they name none; null until a publish. */
|
|
54452
|
+
publishedVersionNumber: number | null;
|
|
54453
|
+
questionSetId: string;
|
|
54454
|
+
/** @enum {string} */
|
|
54455
|
+
result: "unchanged" | "created" | "updated";
|
|
54456
|
+
/** @description The latest version, which the converged definition matches. */
|
|
54457
|
+
versionId: string | null;
|
|
54458
|
+
versionNumber: number | null;
|
|
54459
|
+
} | {
|
|
54460
|
+
/** @enum {string} */
|
|
54461
|
+
result: "definitionRequired";
|
|
54462
|
+
} | {
|
|
54463
|
+
changedKeys: string[];
|
|
54464
|
+
/** @enum {string} */
|
|
54465
|
+
changes: "none" | "create" | "update";
|
|
54466
|
+
contentHash: string;
|
|
54467
|
+
questionSetId?: string;
|
|
54468
|
+
remoteHash?: string;
|
|
54469
|
+
/** @enum {string} */
|
|
54470
|
+
result: "plan";
|
|
54471
|
+
};
|
|
53623
54472
|
QuestionSetError: components["schemas"]["Error"] & {
|
|
53624
54473
|
/** @description Stable code, e.g. QUESTION_SET_INVALID or QUESTION_SET_UNRESOLVED. */
|
|
53625
54474
|
code?: string;
|
|
@@ -53628,6 +54477,26 @@ interface components {
|
|
|
53628
54477
|
currentVersionNumber: number | null;
|
|
53629
54478
|
latestVersionNumber: number;
|
|
53630
54479
|
};
|
|
54480
|
+
QuestionSetPullResponse: {
|
|
54481
|
+
contentHash: string;
|
|
54482
|
+
definition: {
|
|
54483
|
+
description?: string | null;
|
|
54484
|
+
inputMapping?: {
|
|
54485
|
+
[key: string]: string;
|
|
54486
|
+
} | null;
|
|
54487
|
+
model?: string | null;
|
|
54488
|
+
name: string;
|
|
54489
|
+
questions: {
|
|
54490
|
+
[key: string]: unknown;
|
|
54491
|
+
};
|
|
54492
|
+
slug: string;
|
|
54493
|
+
};
|
|
54494
|
+
lastModifiedSource: string | null;
|
|
54495
|
+
publishedVersionNumber: number | null;
|
|
54496
|
+
questionSetId: string;
|
|
54497
|
+
updatedAt: string | null;
|
|
54498
|
+
versionNumber: number | null;
|
|
54499
|
+
};
|
|
53631
54500
|
QuestionSetVersion: {
|
|
53632
54501
|
createdAt: string;
|
|
53633
54502
|
createdByUserId: string | null;
|
|
@@ -53880,6 +54749,18 @@ interface components {
|
|
|
53880
54749
|
totalCost: string | null;
|
|
53881
54750
|
/** @description Trace id in the span store; null on a row the control-plane arm served. */
|
|
53882
54751
|
traceId: string | null;
|
|
54752
|
+
/** @description How the run started, for a Via column. Forward-only for schedule, api key, cli, mcp and eval detail: a header written before those stamps reads null, or falls back to the coarse origin/surface facts when they alone answer it. A label is a snapshot or a lookup and never authority; mcp, cli and sdk are self-declared by the client. */
|
|
54753
|
+
via?: {
|
|
54754
|
+
/** @description The thing that started it: the schedule id (schedule), product surface id (surface), API key id (api), the acting user id (cli) or eval suite id (eval). Null for mcp and test, and for an api run whose header predates key stamping. */
|
|
54755
|
+
id: string | null;
|
|
54756
|
+
/**
|
|
54757
|
+
* @description One word for the way the run started.
|
|
54758
|
+
* @enum {string}
|
|
54759
|
+
*/
|
|
54760
|
+
kind: "schedule" | "surface" | "api" | "mcp" | "cli" | "test" | "eval";
|
|
54761
|
+
/** @description Its display name when the API could resolve one: schedule name, surface name, API key name as it was at dispatch, MCP client name, the acting user's first name, or eval suite name. Null when unresolved, for example a deleted schedule. */
|
|
54762
|
+
label: string | null;
|
|
54763
|
+
} | null;
|
|
53883
54764
|
};
|
|
53884
54765
|
RuntimeEmailAdmissionError: {
|
|
53885
54766
|
code?: string;
|
|
@@ -53929,6 +54810,84 @@ interface components {
|
|
|
53929
54810
|
kind: string;
|
|
53930
54811
|
reason: string;
|
|
53931
54812
|
};
|
|
54813
|
+
ScheduleEnsureConflict: {
|
|
54814
|
+
/** @enum {string} */
|
|
54815
|
+
code: "external_modification" | "remote_changed";
|
|
54816
|
+
currentHash?: string | null;
|
|
54817
|
+
error: string;
|
|
54818
|
+
lastModifiedSource?: string;
|
|
54819
|
+
modifiedAt?: string | null;
|
|
54820
|
+
};
|
|
54821
|
+
ScheduleEnsureDefinition: {
|
|
54822
|
+
/** @description Omit to leave the current paused/active state untouched; new schedules start enabled. */
|
|
54823
|
+
enabled?: boolean;
|
|
54824
|
+
executionOptions?: {
|
|
54825
|
+
chunkSize?: number;
|
|
54826
|
+
flowTimeoutMs?: number;
|
|
54827
|
+
/** @enum {string} */
|
|
54828
|
+
loggingPolicy?: "default" | "on" | "off";
|
|
54829
|
+
maxRetries?: number;
|
|
54830
|
+
modelOverride?: string;
|
|
54831
|
+
progressFlushSize?: number;
|
|
54832
|
+
recordConcurrency?: number;
|
|
54833
|
+
skipCacheWarm?: boolean;
|
|
54834
|
+
stepTimeoutMs?: number;
|
|
54835
|
+
timeoutMs?: number;
|
|
54836
|
+
};
|
|
54837
|
+
inputs?: {
|
|
54838
|
+
[key: string]: unknown;
|
|
54839
|
+
};
|
|
54840
|
+
messages?: {
|
|
54841
|
+
[key: string]: unknown;
|
|
54842
|
+
}[];
|
|
54843
|
+
name: string;
|
|
54844
|
+
recordFilter?: {
|
|
54845
|
+
[key: string]: unknown;
|
|
54846
|
+
};
|
|
54847
|
+
recordIds?: string[];
|
|
54848
|
+
recordType?: string;
|
|
54849
|
+
target: components["schemas"]["ScheduleEnsureTarget"];
|
|
54850
|
+
trigger: {
|
|
54851
|
+
cron?: string;
|
|
54852
|
+
/** Format: date-time */
|
|
54853
|
+
runAt?: string;
|
|
54854
|
+
timezone?: string;
|
|
54855
|
+
/** @enum {string} */
|
|
54856
|
+
type: "recurring" | "one_time";
|
|
54857
|
+
};
|
|
54858
|
+
};
|
|
54859
|
+
ScheduleEnsureHashMismatch: {
|
|
54860
|
+
/** @enum {string} */
|
|
54861
|
+
code: "content_hash_mismatch";
|
|
54862
|
+
/** @description The server-computed canonical hash of the submitted definition. */
|
|
54863
|
+
contentHash: string;
|
|
54864
|
+
error: string;
|
|
54865
|
+
};
|
|
54866
|
+
ScheduleEnsureResponse: {
|
|
54867
|
+
/** @description Server-computed canonical content hash. Clients should echo this hash in probes. */
|
|
54868
|
+
contentHash: string;
|
|
54869
|
+
/** @enum {string} */
|
|
54870
|
+
result: "unchanged" | "created" | "updated";
|
|
54871
|
+
scheduleId: string;
|
|
54872
|
+
} | {
|
|
54873
|
+
/** @enum {string} */
|
|
54874
|
+
result: "definitionRequired";
|
|
54875
|
+
} | {
|
|
54876
|
+
changedKeys: string[];
|
|
54877
|
+
/** @enum {string} */
|
|
54878
|
+
changes: "none" | "create" | "update";
|
|
54879
|
+
contentHash: string;
|
|
54880
|
+
remoteHash?: string;
|
|
54881
|
+
/** @enum {string} */
|
|
54882
|
+
result: "plan";
|
|
54883
|
+
scheduleId?: string;
|
|
54884
|
+
};
|
|
54885
|
+
ScheduleEnsureTarget: {
|
|
54886
|
+
agentId?: string;
|
|
54887
|
+
agentName?: string;
|
|
54888
|
+
flowId?: string;
|
|
54889
|
+
flowName?: string;
|
|
54890
|
+
};
|
|
53932
54891
|
ScheduleEntitlementError: components["schemas"]["Error"] & {
|
|
53933
54892
|
/** @description Stable error code (e.g. ACTIVE_SCHEDULE_LIMIT, SCHEDULE_FREQUENCY_LIMIT). */
|
|
53934
54893
|
code?: string;
|
|
@@ -53937,6 +54896,13 @@ interface components {
|
|
|
53937
54896
|
/** @description Dashboard-relative URL to the billing/upgrade page. */
|
|
53938
54897
|
upgradeUrl?: string;
|
|
53939
54898
|
};
|
|
54899
|
+
SchedulePullResponse: {
|
|
54900
|
+
contentHash: string;
|
|
54901
|
+
definition: components["schemas"]["ScheduleEnsureDefinition"];
|
|
54902
|
+
lastModifiedSource: string | null;
|
|
54903
|
+
scheduleId: string;
|
|
54904
|
+
updatedAt: string | null;
|
|
54905
|
+
};
|
|
53940
54906
|
ScheduleRunLink: {
|
|
53941
54907
|
/** @description The agent_executions ROW id the scheduled run stored. Provenance only: a different id space from executionId, and never a /v1/runs key. */
|
|
53942
54908
|
agentExecutionRowId: string | null;
|
|
@@ -54058,13 +55024,15 @@ interface components {
|
|
|
54058
55024
|
};
|
|
54059
55025
|
/** @enum {string} */
|
|
54060
55026
|
environment?: "production" | "development";
|
|
55027
|
+
/** @description Inbound channel config. Omit to keep the stored value; null clears it. A credential value of "<redacted>" (as returned by pull) keeps the stored credential. */
|
|
54061
55028
|
inbound?: {
|
|
54062
55029
|
[key: string]: unknown;
|
|
54063
|
-
};
|
|
55030
|
+
} | null;
|
|
54064
55031
|
name: string;
|
|
55032
|
+
/** @description Outbound channel config. Omit to keep the stored value; null clears it. A credential value of "<redacted>" (as returned by pull) keeps the stored credential. */
|
|
54065
55033
|
outbound?: {
|
|
54066
55034
|
[key: string]: unknown;
|
|
54067
|
-
};
|
|
55035
|
+
} | null;
|
|
54068
55036
|
/** @enum {string} */
|
|
54069
55037
|
status?: "draft" | "active" | "paused";
|
|
54070
55038
|
/** @enum {string} */
|
|
@@ -57003,14 +57971,14 @@ export interface ScheduleMessageSet {
|
|
|
57003
57971
|
messages: ScheduleMessage[];
|
|
57004
57972
|
}
|
|
57005
57973
|
export type ScheduleMessages = ScheduleMessage[] | ScheduleMessageSet[];
|
|
57006
|
-
|
|
57974
|
+
interface ScheduleTarget$1 {
|
|
57007
57975
|
flowId?: string;
|
|
57008
57976
|
agentId?: string;
|
|
57009
57977
|
recordIds?: string[];
|
|
57010
57978
|
recordType?: string;
|
|
57011
57979
|
recordFilter?: JsonValue | null;
|
|
57012
57980
|
}
|
|
57013
|
-
|
|
57981
|
+
interface ScheduleTrigger$1 {
|
|
57014
57982
|
type: 'one_time' | 'recurring';
|
|
57015
57983
|
/** ISO 8601 datetime — required for `one_time` triggers. */
|
|
57016
57984
|
runAt?: string;
|
|
@@ -57026,8 +57994,8 @@ export interface ScheduleTrigger {
|
|
|
57026
57994
|
*/
|
|
57027
57995
|
export type Schedule = paths['/v1/schedules/{id}']['get']['responses'][200]['content']['application/json'];
|
|
57028
57996
|
export interface CreateScheduleRequest {
|
|
57029
|
-
target: ScheduleTarget;
|
|
57030
|
-
trigger: ScheduleTrigger;
|
|
57997
|
+
target: ScheduleTarget$1;
|
|
57998
|
+
trigger: ScheduleTrigger$1;
|
|
57031
57999
|
messages?: ScheduleMessages | null;
|
|
57032
58000
|
executionOptions?: ScheduleExecutionOptions;
|
|
57033
58001
|
/** Top-level input variables; keys must not start with `_`. */
|
|
@@ -57968,6 +58936,54 @@ interface EnsureEvalResult {
|
|
|
57968
58936
|
/** The server-computed canonical hash (echo this — never your own). */
|
|
57969
58937
|
contentHash: string;
|
|
57970
58938
|
}
|
|
58939
|
+
/** The dry-run outcome of `client.evals.ensure(definition, { dryRun: true })`. */
|
|
58940
|
+
interface EnsureEvalPlan {
|
|
58941
|
+
result: 'plan';
|
|
58942
|
+
changes: 'none' | 'create' | 'update';
|
|
58943
|
+
/** Coarse keys that differ: `target`, `cases`, `recordedToolMode`, `recordedToolUnmatchedPolicy`. */
|
|
58944
|
+
changedKeys: string[];
|
|
58945
|
+
contentHash: string;
|
|
58946
|
+
/** The live suite's hash, computed over the cases ensure owns; bind an apply to it with `expectedRemoteHash`. */
|
|
58947
|
+
remoteHash?: string;
|
|
58948
|
+
suiteId?: string;
|
|
58949
|
+
}
|
|
58950
|
+
interface EnsureEvalOptions {
|
|
58951
|
+
/** Plan without writing (the CI drift gate). Sends the full definition. */
|
|
58952
|
+
dryRun?: boolean;
|
|
58953
|
+
/**
|
|
58954
|
+
* What to do when the suite's last write came from the dashboard/API rather
|
|
58955
|
+
* than ensure. Default 'error' (HTTP 409 → EvalEnsureConflictError).
|
|
58956
|
+
*/
|
|
58957
|
+
onConflict?: 'error' | 'overwrite';
|
|
58958
|
+
/** TOCTOU guard binding a dry run to its apply (409 remote_changed otherwise). */
|
|
58959
|
+
expectedRemoteHash?: string;
|
|
58960
|
+
/** Implies dryRun; throws EvalDriftError unless the plan is 'none'. */
|
|
58961
|
+
expectNoChanges?: boolean;
|
|
58962
|
+
}
|
|
58963
|
+
/** Options for a converging (non-plan) ensure. */
|
|
58964
|
+
type EnsureEvalApplyOptions = Omit<EnsureEvalOptions, 'dryRun' | 'expectNoChanges'> & {
|
|
58965
|
+
dryRun?: false;
|
|
58966
|
+
expectNoChanges?: false;
|
|
58967
|
+
};
|
|
58968
|
+
/** A 409 from the eval ensure protocol (external_modification or remote_changed). */
|
|
58969
|
+
export declare class EvalEnsureConflictError extends Error {
|
|
58970
|
+
readonly code: 'external_modification' | 'remote_changed';
|
|
58971
|
+
readonly lastModifiedSource?: string;
|
|
58972
|
+
readonly modifiedAt?: string | null;
|
|
58973
|
+
readonly currentHash?: string | null;
|
|
58974
|
+
constructor(body: {
|
|
58975
|
+
error?: string;
|
|
58976
|
+
code: 'external_modification' | 'remote_changed';
|
|
58977
|
+
lastModifiedSource?: string;
|
|
58978
|
+
modifiedAt?: string | null;
|
|
58979
|
+
currentHash?: string | null;
|
|
58980
|
+
});
|
|
58981
|
+
}
|
|
58982
|
+
/** Thrown by `ensure(def, { expectNoChanges: true })` when drift is detected. */
|
|
58983
|
+
export declare class EvalDriftError extends Error {
|
|
58984
|
+
readonly plan: EnsureEvalPlan;
|
|
58985
|
+
constructor(plan: EnsureEvalPlan);
|
|
58986
|
+
}
|
|
57971
58987
|
/** The canonical definition + provenance returned by `client.evals.pull(name)`. */
|
|
57972
58988
|
interface EvalPullResult {
|
|
57973
58989
|
suiteId: string;
|
|
@@ -58172,15 +59188,17 @@ type RunEvalInput = {
|
|
|
58172
59188
|
};
|
|
58173
59189
|
/**
|
|
58174
59190
|
* Idempotently converge an eval suite definition onto the platform. Hash-first:
|
|
58175
|
-
* probes with a content hash, and only ships the full definition
|
|
58176
|
-
*
|
|
58177
|
-
*
|
|
58178
|
-
* submit surface to run it).
|
|
58179
|
-
*
|
|
58180
|
-
* `virtual: true` definitions are ephemeral and have nothing durable to
|
|
58181
|
-
* converge — ensure rejects them. Run a virtual eval directly instead.
|
|
59191
|
+
* probes with a content hash, and only ships the full definition on a miss.
|
|
59192
|
+
* Replaces only the cases ensure owns: cases saved from runs or added in the
|
|
59193
|
+
* dashboard survive. Never executes the eval. Virtual evals cannot be ensured.
|
|
58182
59194
|
*/
|
|
58183
|
-
export declare function ensureEval(client: RuntypeClient$1, definition: EvalDefinition
|
|
59195
|
+
export declare function ensureEval(client: RuntypeClient$1, definition: EvalDefinition, options: EnsureEvalOptions & ({
|
|
59196
|
+
dryRun: true;
|
|
59197
|
+
} | {
|
|
59198
|
+
expectNoChanges: true;
|
|
59199
|
+
})): Promise<EnsureEvalPlan>;
|
|
59200
|
+
export declare function ensureEval(client: RuntypeClient$1, definition: EvalDefinition, options?: EnsureEvalApplyOptions): Promise<EnsureEvalResult>;
|
|
59201
|
+
export declare function ensureEval(client: RuntypeClient$1, definition: EvalDefinition, options?: EnsureEvalOptions): Promise<EnsureEvalResult | EnsureEvalPlan>;
|
|
58184
59202
|
/**
|
|
58185
59203
|
* Pull the canonical definition + provenance for an eval suite by name — the
|
|
58186
59204
|
* absorb-drift direction of the ensure protocol. The contentHash reflects the
|
|
@@ -58280,6 +59298,7 @@ interface EnsureFlowOptions {
|
|
|
58280
59298
|
/**
|
|
58281
59299
|
* What to do when the flow's last write came from the dashboard/API
|
|
58282
59300
|
* rather than ensure. Default 'error' (HTTP 409 → FlowEnsureConflictError).
|
|
59301
|
+
* Also applies to the flow's inline evals (409 → EvalEnsureConflictError).
|
|
58283
59302
|
*/
|
|
58284
59303
|
onConflict?: 'error' | 'overwrite';
|
|
58285
59304
|
/** 'publish' also re-aims the published-version pointer. Default 'none'. */
|
|
@@ -58295,7 +59314,10 @@ interface EnsureFlowOptions {
|
|
|
58295
59314
|
* server-generated notes.
|
|
58296
59315
|
*/
|
|
58297
59316
|
version?: components['schemas']['EnsureVersionMetadata'];
|
|
58298
|
-
/**
|
|
59317
|
+
/**
|
|
59318
|
+
* Implies dryRun; throws FlowDriftError unless the plan is 'none' and, with
|
|
59319
|
+
* `release: 'publish'`, no publish is pending.
|
|
59320
|
+
*/
|
|
58299
59321
|
expectNoChanges?: boolean;
|
|
58300
59322
|
}
|
|
58301
59323
|
interface EnsureFlowConverged {
|
|
@@ -58320,6 +59342,8 @@ interface EnsureFlowPlan {
|
|
|
58320
59342
|
contentHash: string;
|
|
58321
59343
|
remoteHash?: string;
|
|
58322
59344
|
flowId?: string;
|
|
59345
|
+
/** Present when the dry run carried `release: 'publish'`: whether it would re-aim the published version. */
|
|
59346
|
+
publishPending?: boolean;
|
|
58323
59347
|
}
|
|
58324
59348
|
type EnsureFlowResult = EnsureFlowConverged | EnsureFlowPlan;
|
|
58325
59349
|
interface FlowPullResult {
|
|
@@ -58944,7 +59968,7 @@ interface EvalSuiteDetail extends EvalSuiteSummary {
|
|
|
58944
59968
|
} | null;
|
|
58945
59969
|
}
|
|
58946
59970
|
/** Case provenance (mirror of `EvalCaseOrigin` in `@runtypelabs/shared`). */
|
|
58947
|
-
type EvalCaseOrigin = 'manual' | 'saved_from_run' | 'generated' | 'imported' | 'fpo';
|
|
59971
|
+
type EvalCaseOrigin = 'manual' | 'saved_from_run' | 'generated' | 'imported' | 'fpo' | 'ensure';
|
|
58948
59972
|
/** One case to create. */
|
|
58949
59973
|
interface EvalSuiteCaseInput {
|
|
58950
59974
|
name: string;
|
|
@@ -59475,7 +60499,9 @@ export declare class EvalsNamespace {
|
|
|
59475
60499
|
* Idempotently converge a `defineEval` suite definition onto the platform —
|
|
59476
60500
|
* the deploy-time, non-executing converge for code-colocated evals. Hash-first:
|
|
59477
60501
|
* the steady state is one tiny probe request. Upserts the eval suite + replaces
|
|
59478
|
-
*
|
|
60502
|
+
* the cases ensure owns (captured and dashboard cases survive); never runs the
|
|
60503
|
+
* eval. `dryRun` / `expectNoChanges` plan without writing; a dashboard edit
|
|
60504
|
+
* answers 409 unless `onConflict: 'overwrite'`.
|
|
59479
60505
|
*
|
|
59480
60506
|
* @example
|
|
59481
60507
|
* ```typescript
|
|
@@ -59487,7 +60513,13 @@ export declare class EvalsNamespace {
|
|
|
59487
60513
|
* const result = await Runtype.evals.ensure(suite)
|
|
59488
60514
|
* ```
|
|
59489
60515
|
*/
|
|
59490
|
-
ensure(definition: EvalDefinition
|
|
60516
|
+
ensure(definition: EvalDefinition, options: EnsureEvalOptions & ({
|
|
60517
|
+
dryRun: true;
|
|
60518
|
+
} | {
|
|
60519
|
+
expectNoChanges: true;
|
|
60520
|
+
})): Promise<EnsureEvalPlan>;
|
|
60521
|
+
ensure(definition: EvalDefinition, options?: EnsureEvalApplyOptions): Promise<EnsureEvalResult>;
|
|
60522
|
+
ensure(definition: EvalDefinition, options?: EnsureEvalOptions): Promise<EnsureEvalResult | EnsureEvalPlan>;
|
|
59491
60523
|
/**
|
|
59492
60524
|
* Pull the canonical definition + provenance for an eval suite by name — the
|
|
59493
60525
|
* absorb-drift direction of the ensure protocol.
|
|
@@ -59810,6 +60842,12 @@ interface EnsureSkillOptions {
|
|
|
59810
60842
|
* remote still hashes to this value (409 remote_changed otherwise).
|
|
59811
60843
|
*/
|
|
59812
60844
|
expectedRemoteHash?: string;
|
|
60845
|
+
/**
|
|
60846
|
+
* Provenance stamped on the version row this converge appends (a git SHA, a
|
|
60847
|
+
* release tag). Omit to keep the default 'sdk-ensure' label and the
|
|
60848
|
+
* server-generated notes.
|
|
60849
|
+
*/
|
|
60850
|
+
version?: components['schemas']['EnsureVersionMetadata'];
|
|
59813
60851
|
/** Implies dryRun; throws SkillDriftError unless the plan is 'none'. */
|
|
59814
60852
|
expectNoChanges?: boolean;
|
|
59815
60853
|
}
|
|
@@ -59953,7 +60991,7 @@ interface SkillVersion {
|
|
|
59953
60991
|
createdAt: string;
|
|
59954
60992
|
}
|
|
59955
60993
|
/** An agent ↔ skill binding row. */
|
|
59956
|
-
interface AgentSkillBinding {
|
|
60994
|
+
interface AgentSkillBinding$1 {
|
|
59957
60995
|
id: string;
|
|
59958
60996
|
agentId: string;
|
|
59959
60997
|
skillId: string;
|
|
@@ -59968,7 +61006,7 @@ interface AgentSkillBinding {
|
|
|
59968
61006
|
* {@link SkillsNamespace.listBindingsForSkill}, the by-skill twin of
|
|
59969
61007
|
* {@link SkillsNamespace.listBindings}.
|
|
59970
61008
|
*/
|
|
59971
|
-
interface SkillBindingWithAgent extends AgentSkillBinding {
|
|
61009
|
+
interface SkillBindingWithAgent extends AgentSkillBinding$1 {
|
|
59972
61010
|
agent: {
|
|
59973
61011
|
id: string;
|
|
59974
61012
|
name: string;
|
|
@@ -60236,7 +61274,7 @@ export declare class SkillsNamespace {
|
|
|
60236
61274
|
* Bind a skill to an agent. Both the agent and the skill must be owned by the
|
|
60237
61275
|
* caller.
|
|
60238
61276
|
*/
|
|
60239
|
-
bind(input: BindSkillInput): Promise<AgentSkillBinding>;
|
|
61277
|
+
bind(input: BindSkillInput): Promise<AgentSkillBinding$1>;
|
|
60240
61278
|
/**
|
|
60241
61279
|
* Remove a skill binding by its binding id.
|
|
60242
61280
|
*/
|
|
@@ -60249,7 +61287,7 @@ export declare class SkillsNamespace {
|
|
|
60249
61287
|
* const bindings = await Runtype.skills.listBindings('agent_123')
|
|
60250
61288
|
* ```
|
|
60251
61289
|
*/
|
|
60252
|
-
listBindings(agentId: string): Promise<AgentSkillBinding[]>;
|
|
61290
|
+
listBindings(agentId: string): Promise<AgentSkillBinding$1[]>;
|
|
60253
61291
|
/**
|
|
60254
61292
|
* List every agent a skill is bound to, each row joined with the agent's name
|
|
60255
61293
|
* and type. The by-agent twin is {@link listBindings}.
|
|
@@ -60338,23 +61376,6 @@ export declare class AgentAliasNotFoundError extends Error {
|
|
|
60338
61376
|
agentId: string;
|
|
60339
61377
|
});
|
|
60340
61378
|
}
|
|
60341
|
-
/**
|
|
60342
|
-
* A new preview pointer refused by the active-preview quota (HTTP 429). Archive
|
|
60343
|
-
* a preview you no longer need — archiving frees the quota immediately — or wait
|
|
60344
|
-
* for one to expire. `live` is never counted.
|
|
60345
|
-
*/
|
|
60346
|
-
export declare class AgentAliasPreviewLimitError extends Error {
|
|
60347
|
-
readonly code = "PREVIEW_ALIAS_LIMIT";
|
|
60348
|
-
readonly scope: 'organization' | 'agent';
|
|
60349
|
-
readonly limit: number;
|
|
60350
|
-
readonly active: number;
|
|
60351
|
-
constructor(body: {
|
|
60352
|
-
error?: string;
|
|
60353
|
-
scope: 'organization' | 'agent';
|
|
60354
|
-
limit: number;
|
|
60355
|
-
active: number;
|
|
60356
|
-
});
|
|
60357
|
-
}
|
|
60358
61379
|
/** A version whose named references no longer resolve in this account (HTTP 422). */
|
|
60359
61380
|
export declare class AgentAliasDependencyError extends Error {
|
|
60360
61381
|
readonly code = "alias_dependency_unresolved";
|
|
@@ -60365,7 +61386,7 @@ export declare class AgentAliasDependencyError extends Error {
|
|
|
60365
61386
|
});
|
|
60366
61387
|
}
|
|
60367
61388
|
/** Every coded refusal the alias plane maps onto a typed error. */
|
|
60368
|
-
type TypedAliasError = AgentAliasRevisionMismatchError | AgentAliasRevisionRequiredError | AgentAliasNotFoundError | AgentAliasDependencyError
|
|
61389
|
+
type TypedAliasError = AgentAliasRevisionMismatchError | AgentAliasRevisionRequiredError | AgentAliasNotFoundError | AgentAliasDependencyError;
|
|
60369
61390
|
/** The refusal code, when this is one of the typed alias errors. */
|
|
60370
61391
|
export declare function agentAliasErrorCode(err: unknown): TypedAliasError['code'] | undefined;
|
|
60371
61392
|
interface ListAgentAliasesOptions {
|
|
@@ -60714,8 +61735,61 @@ interface EnsureAgentOptions {
|
|
|
60714
61735
|
* server-generated notes.
|
|
60715
61736
|
*/
|
|
60716
61737
|
version?: components['schemas']['EnsureVersionMetadata'];
|
|
60717
|
-
/**
|
|
61738
|
+
/**
|
|
61739
|
+
* Implies dryRun; throws AgentDriftError unless the plan is 'none', no skill
|
|
61740
|
+
* binding would change and, with `release` or `deploy`, the alias would not move.
|
|
61741
|
+
*/
|
|
60718
61742
|
expectNoChanges?: boolean;
|
|
61743
|
+
/**
|
|
61744
|
+
* The complete set of skills bound to the agent, in load order. `version`
|
|
61745
|
+
* pins a skill versionNumber; omit it to follow the published version.
|
|
61746
|
+
* Bound skills absent here are unbound; omit the option to leave bindings alone.
|
|
61747
|
+
*/
|
|
61748
|
+
skills?: AgentSkillBinding[];
|
|
61749
|
+
/**
|
|
61750
|
+
* The complete set of capabilities (flow, sub-agent and saved-tool
|
|
61751
|
+
* attachments) in display order. Capabilities absent here are removed; omit
|
|
61752
|
+
* the option to leave them alone. When present they are part of the content hash.
|
|
61753
|
+
*/
|
|
61754
|
+
capabilities?: AgentCapabilityDeclaration[];
|
|
61755
|
+
}
|
|
61756
|
+
/** @example `{ toolName: 'lookup_order', flow: 'Order Lookup' }` attaches the flow named "Order Lookup". */
|
|
61757
|
+
interface AgentCapabilityDeclaration {
|
|
61758
|
+
/** The name the agent calls this capability by. */
|
|
61759
|
+
toolName: string;
|
|
61760
|
+
/** Exactly one of `flow`, `agent` or `tool`: the source's name in this account. */
|
|
61761
|
+
flow?: string;
|
|
61762
|
+
agent?: string;
|
|
61763
|
+
tool?: string;
|
|
61764
|
+
description?: string;
|
|
61765
|
+
/** Omit to derive it from the flow's inputs or the tool's own schema. */
|
|
61766
|
+
parametersSchema?: Record<string, unknown>;
|
|
61767
|
+
enabled?: boolean;
|
|
61768
|
+
}
|
|
61769
|
+
/** What one ensure did (or, on a dry run, would do) to a declared or removed capability. */
|
|
61770
|
+
interface AgentCapabilityChange {
|
|
61771
|
+
toolName: string;
|
|
61772
|
+
action: 'add' | 'update' | 'remove' | 'unchanged';
|
|
61773
|
+
kind: 'flow' | 'agent' | 'tool' | null;
|
|
61774
|
+
/** The flow, agent or tool name the capability calls. */
|
|
61775
|
+
source: string | null;
|
|
61776
|
+
enabled: boolean;
|
|
61777
|
+
}
|
|
61778
|
+
/** @example `{ name: 'refund-policy', version: 3 }` pins version 3; `{ name: 'tone-guide' }` follows published. */
|
|
61779
|
+
interface AgentSkillBinding {
|
|
61780
|
+
/** The skill slug. */
|
|
61781
|
+
name: string;
|
|
61782
|
+
version?: number;
|
|
61783
|
+
enabled?: boolean;
|
|
61784
|
+
}
|
|
61785
|
+
/** What one ensure did (or, on a dry run, would do) to a declared or removed binding. */
|
|
61786
|
+
interface AgentSkillBindingChange {
|
|
61787
|
+
name: string;
|
|
61788
|
+
skillId: string;
|
|
61789
|
+
action: 'bind' | 'update' | 'unbind' | 'unchanged';
|
|
61790
|
+
/** The pinned versionNumber; null follows the published version. */
|
|
61791
|
+
version: number | null;
|
|
61792
|
+
enabled: boolean;
|
|
60719
61793
|
}
|
|
60720
61794
|
interface EnsureAgentConverged {
|
|
60721
61795
|
result: 'unchanged' | 'created' | 'updated';
|
|
@@ -60727,6 +61801,10 @@ interface EnsureAgentConverged {
|
|
|
60727
61801
|
remoteHash?: string;
|
|
60728
61802
|
/** The pointer this converge aimed, present only when it carried release or deploy. */
|
|
60729
61803
|
deployment?: AgentEnsureDeployment;
|
|
61804
|
+
/** Present when the request carried `skills`. */
|
|
61805
|
+
skillBindings?: AgentSkillBindingChange[];
|
|
61806
|
+
/** Present when the request carried `capabilities`. */
|
|
61807
|
+
capabilityChanges?: AgentCapabilityChange[];
|
|
60730
61808
|
}
|
|
60731
61809
|
interface EnsureAgentPlan {
|
|
60732
61810
|
result: 'plan';
|
|
@@ -60737,6 +61815,10 @@ interface EnsureAgentPlan {
|
|
|
60737
61815
|
agentId?: string;
|
|
60738
61816
|
/** The pointer this dry run would aim, and whether it would move. */
|
|
60739
61817
|
deployment?: AgentEnsureDeployment;
|
|
61818
|
+
/** Present when the request carried `skills`. */
|
|
61819
|
+
skillBindings?: AgentSkillBindingChange[];
|
|
61820
|
+
/** Present when the request carried `capabilities`. */
|
|
61821
|
+
capabilityChanges?: AgentCapabilityChange[];
|
|
60740
61822
|
}
|
|
60741
61823
|
type EnsureAgentResult = EnsureAgentConverged | EnsureAgentPlan;
|
|
60742
61824
|
interface AgentPullResult {
|
|
@@ -60753,6 +61835,10 @@ interface AgentPullResult {
|
|
|
60753
61835
|
* `defineAgent`/`ensure` reject — so each warning explains how to fix it.
|
|
60754
61836
|
*/
|
|
60755
61837
|
warnings?: string[];
|
|
61838
|
+
/** The agent's skill bindings, ready to pass back as the `skills` ensure option. */
|
|
61839
|
+
skills: AgentSkillBinding[];
|
|
61840
|
+
/** The agent's capabilities, ready to pass back as the `capabilities` ensure option. */
|
|
61841
|
+
capabilities: AgentCapabilityDeclaration[];
|
|
60756
61842
|
}
|
|
60757
61843
|
/** A 409 from the ensure protocol (external_modification or remote_changed). */
|
|
60758
61844
|
export declare class AgentEnsureConflictError extends Error {
|
|
@@ -60906,6 +61992,18 @@ interface RunListRow {
|
|
|
60906
61992
|
* predates the field.
|
|
60907
61993
|
*/
|
|
60908
61994
|
test: boolean | null;
|
|
61995
|
+
/**
|
|
61996
|
+
* How the run started, for a Via column. Forward-only for schedule, API key,
|
|
61997
|
+
* CLI, MCP and eval detail: a header written before those stamps reads null or
|
|
61998
|
+
* the coarse origin. `mcp`, `cli` and `sdk` are self-declared by the client.
|
|
61999
|
+
*/
|
|
62000
|
+
via?: {
|
|
62001
|
+
kind: 'schedule' | 'surface' | 'api' | 'mcp' | 'cli' | 'test' | 'eval';
|
|
62002
|
+
/** Schedule, surface, API key, acting user or eval suite id; null for mcp and test. */
|
|
62003
|
+
id: string | null;
|
|
62004
|
+
/** Its display name when the API could resolve one; null otherwise. */
|
|
62005
|
+
label: string | null;
|
|
62006
|
+
} | null;
|
|
60909
62007
|
stopReason?: string | null;
|
|
60910
62008
|
iterations?: number | null;
|
|
60911
62009
|
/**
|
|
@@ -60959,6 +62057,8 @@ interface RunListParams {
|
|
|
60959
62057
|
overlay?: 'live' | 'none';
|
|
60960
62058
|
limit?: number;
|
|
60961
62059
|
cursor?: string;
|
|
62060
|
+
/** `'true'` adds `pagination.totalCount`, counted up to 1000, and `totalCountCapped`. */
|
|
62061
|
+
includeCount?: 'true' | 'false';
|
|
60962
62062
|
}
|
|
60963
62063
|
interface RunListResponse {
|
|
60964
62064
|
data: RunListRow[];
|
|
@@ -60969,6 +62069,10 @@ interface RunListResponse {
|
|
|
60969
62069
|
limit: number;
|
|
60970
62070
|
/** True when the supplied cursor was rejected and the read restarted at page one; stop paging. */
|
|
60971
62071
|
cursorReset?: boolean;
|
|
62072
|
+
/** Runs the filters match in the window, up to 1000; present only when `includeCount` was `'true'`. */
|
|
62073
|
+
totalCount?: number;
|
|
62074
|
+
/** True when more runs matched than `totalCount` counts, so read it as "more than". */
|
|
62075
|
+
totalCountCapped?: boolean;
|
|
60972
62076
|
};
|
|
60973
62077
|
window: {
|
|
60974
62078
|
from: string;
|
|
@@ -61135,6 +62239,115 @@ export declare class ToolsNamespace {
|
|
|
61135
62239
|
pull(name: string): Promise<ToolPullResult>;
|
|
61136
62240
|
}
|
|
61137
62241
|
//#endregion
|
|
62242
|
+
//#region src/question-sets-ensure.d.ts
|
|
62243
|
+
/** A question set declared in code. `slug` is its identity within the organization. */
|
|
62244
|
+
interface QuestionSetDefinition {
|
|
62245
|
+
slug: string;
|
|
62246
|
+
name: string;
|
|
62247
|
+
description?: string | null;
|
|
62248
|
+
/** Judgment questions keyed by question id, e.g. `{ urgent: { type: 'boolean', instructions: '...' } }`. */
|
|
62249
|
+
questions: Record<string, unknown>;
|
|
62250
|
+
inputMapping?: Record<string, string> | null;
|
|
62251
|
+
model?: string | null;
|
|
62252
|
+
}
|
|
62253
|
+
/** Canonical form of a question set definition, without its slug. */
|
|
62254
|
+
export declare function normalizeQuestionSetDefinition(definition: QuestionSetDefinition): Record<string, unknown>;
|
|
62255
|
+
/** SHA-256 (hex) over the canonical question set definition. */
|
|
62256
|
+
export declare function computeQuestionSetContentHash(definition: QuestionSetDefinition): Promise<string>;
|
|
62257
|
+
/**
|
|
62258
|
+
* Pure local constructor for a question set definition. Checks the structure
|
|
62259
|
+
* and rejects unknown fields; the server validates the questions at ensure time.
|
|
62260
|
+
*
|
|
62261
|
+
* @example
|
|
62262
|
+
* ```typescript
|
|
62263
|
+
* const triage = defineQuestionSet({
|
|
62264
|
+
* slug: 'ticket-triage',
|
|
62265
|
+
* name: 'Ticket triage',
|
|
62266
|
+
* questions: { urgent: { type: 'boolean', instructions: 'Is the ticket urgent?' } },
|
|
62267
|
+
* })
|
|
62268
|
+
* ```
|
|
62269
|
+
*/
|
|
62270
|
+
export declare function defineQuestionSet(input: QuestionSetDefinition): QuestionSetDefinition;
|
|
62271
|
+
interface EnsureQuestionSetOptions {
|
|
62272
|
+
/** Plan without writing (the CI drift gate). Sends the full definition. */
|
|
62273
|
+
dryRun?: boolean;
|
|
62274
|
+
/** What to do when the last write came from the dashboard or API. Default 'error' (409). */
|
|
62275
|
+
onConflict?: 'error' | 'overwrite';
|
|
62276
|
+
/** 'publish' makes the latest version the one executions resolve. Default 'none'. */
|
|
62277
|
+
release?: 'none' | 'publish';
|
|
62278
|
+
/** Apply only if the remote still hashes to this value (409 remote_changed otherwise). */
|
|
62279
|
+
expectedRemoteHash?: string;
|
|
62280
|
+
/** Implies dryRun; throws QuestionSetDriftError unless the plan is 'none'. */
|
|
62281
|
+
expectNoChanges?: boolean;
|
|
62282
|
+
}
|
|
62283
|
+
interface EnsureQuestionSetConverged {
|
|
62284
|
+
result: 'unchanged' | 'created' | 'updated';
|
|
62285
|
+
questionSetId: string;
|
|
62286
|
+
versionId: string | null;
|
|
62287
|
+
versionNumber: number | null;
|
|
62288
|
+
publishedVersionNumber: number | null;
|
|
62289
|
+
/** The server-computed canonical hash; echo this one, never your own. */
|
|
62290
|
+
contentHash: string;
|
|
62291
|
+
}
|
|
62292
|
+
interface EnsureQuestionSetPlan {
|
|
62293
|
+
result: 'plan';
|
|
62294
|
+
changes: 'none' | 'create' | 'update';
|
|
62295
|
+
changedKeys: string[];
|
|
62296
|
+
contentHash: string;
|
|
62297
|
+
remoteHash?: string;
|
|
62298
|
+
questionSetId?: string;
|
|
62299
|
+
}
|
|
62300
|
+
type EnsureQuestionSetResult = EnsureQuestionSetConverged | EnsureQuestionSetPlan;
|
|
62301
|
+
interface QuestionSetPullResult {
|
|
62302
|
+
questionSetId: string;
|
|
62303
|
+
definition: QuestionSetDefinition;
|
|
62304
|
+
contentHash: string;
|
|
62305
|
+
lastModifiedSource: string | null;
|
|
62306
|
+
updatedAt: string | null;
|
|
62307
|
+
versionNumber: number | null;
|
|
62308
|
+
publishedVersionNumber: number | null;
|
|
62309
|
+
}
|
|
62310
|
+
/** A 409 from the ensure protocol (external_modification or remote_changed). */
|
|
62311
|
+
export declare class QuestionSetEnsureConflictError extends Error {
|
|
62312
|
+
readonly code: 'external_modification' | 'remote_changed';
|
|
62313
|
+
readonly lastModifiedSource?: string;
|
|
62314
|
+
readonly modifiedAt?: string | null;
|
|
62315
|
+
readonly currentHash?: string | null;
|
|
62316
|
+
constructor(body: {
|
|
62317
|
+
error?: string;
|
|
62318
|
+
code: 'external_modification' | 'remote_changed';
|
|
62319
|
+
lastModifiedSource?: string;
|
|
62320
|
+
modifiedAt?: string | null;
|
|
62321
|
+
currentHash?: string | null;
|
|
62322
|
+
});
|
|
62323
|
+
}
|
|
62324
|
+
/** Thrown by `ensure(def, { expectNoChanges: true })` when the remote differs. */
|
|
62325
|
+
export declare class QuestionSetDriftError extends Error {
|
|
62326
|
+
readonly plan: EnsureQuestionSetPlan;
|
|
62327
|
+
constructor(slug: string, plan: EnsureQuestionSetPlan);
|
|
62328
|
+
}
|
|
62329
|
+
//#endregion
|
|
62330
|
+
//#region src/question-sets-namespace.d.ts
|
|
62331
|
+
/** Question set config-as-code: `ensure` and `pull`. */
|
|
62332
|
+
export declare class QuestionSetsNamespace {
|
|
62333
|
+
private getClient;
|
|
62334
|
+
constructor(getClient: () => RuntypeClient$1);
|
|
62335
|
+
/**
|
|
62336
|
+
* Converge a `defineQuestionSet` definition. The steady state is one hash
|
|
62337
|
+
* probe. Pass `release: 'publish'` so flows and agents can resolve the
|
|
62338
|
+
* latest version.
|
|
62339
|
+
*
|
|
62340
|
+
* @example
|
|
62341
|
+
* ```typescript
|
|
62342
|
+
* await Runtype.questionSets.ensure(triage, { release: 'publish' })
|
|
62343
|
+
* await Runtype.questionSets.ensure(triage, { expectNoChanges: true })
|
|
62344
|
+
* ```
|
|
62345
|
+
*/
|
|
62346
|
+
ensure(definition: QuestionSetDefinition, options?: EnsureQuestionSetOptions): Promise<EnsureQuestionSetResult>;
|
|
62347
|
+
/** Pull the live definition and provenance for a slug, to absorb a dashboard edit. */
|
|
62348
|
+
pull(slug: string): Promise<QuestionSetPullResult>;
|
|
62349
|
+
}
|
|
62350
|
+
//#endregion
|
|
61138
62351
|
//#region src/products-ensure.d.ts
|
|
61139
62352
|
/** Canonical normalized form of a product definition (name + canvas excluded). */
|
|
61140
62353
|
export declare function normalizeProductDefinition(definition: ProductContentInput): {
|
|
@@ -61267,6 +62480,28 @@ interface EnsureFpoOptions {
|
|
|
61267
62480
|
* plan rows.
|
|
61268
62481
|
*/
|
|
61269
62482
|
prune?: boolean;
|
|
62483
|
+
/** Implies dryRun; throws FpoDriftError when any entity would be created, updated, pruned or fails. */
|
|
62484
|
+
expectNoChanges?: boolean;
|
|
62485
|
+
/**
|
|
62486
|
+
* TOCTOU guard: pass the dry run's `remoteHash`; the write proceeds only while
|
|
62487
|
+
* the live graph still hashes to it (ProductEnsureConflictError `remote_changed`
|
|
62488
|
+
* otherwise). The hash covers what `pullFpo` reconstructs, so seed records,
|
|
62489
|
+
* schedules and secrets are outside it.
|
|
62490
|
+
*/
|
|
62491
|
+
expectedRemoteHash?: string;
|
|
62492
|
+
/**
|
|
62493
|
+
* With `release: 'none'`, send a hash-only probe first and skip the full FPO
|
|
62494
|
+
* when the live graph reconstructs to the same hash. A publishing converge
|
|
62495
|
+
* (the default release) always ships the full FPO, since only it can publish
|
|
62496
|
+
* drafts that are not yet live.
|
|
62497
|
+
*/
|
|
62498
|
+
hashProbe?: boolean;
|
|
62499
|
+
/**
|
|
62500
|
+
* Whether converged capability agents and flows go live. The server defaults
|
|
62501
|
+
* to `'publish'` (version, publish and move the agent's `live` alias, as
|
|
62502
|
+
* product creation does); `'none'` saves changes as drafts.
|
|
62503
|
+
*/
|
|
62504
|
+
release?: 'none' | 'publish';
|
|
61270
62505
|
}
|
|
61271
62506
|
/** One nested entity's converge result. */
|
|
61272
62507
|
interface FpoEntityOutcome {
|
|
@@ -61281,9 +62516,17 @@ interface EnsureFpoResult {
|
|
|
61281
62516
|
result: 'unchanged' | 'converged' | 'plan';
|
|
61282
62517
|
productId?: string;
|
|
61283
62518
|
contentHash: string;
|
|
62519
|
+
/** dryRun only: the live graph's hash, to pass back as `expectedRemoteHash`. */
|
|
62520
|
+
remoteHash?: string;
|
|
61284
62521
|
entities: FpoEntityOutcome[];
|
|
61285
62522
|
hasFailures: boolean;
|
|
61286
62523
|
}
|
|
62524
|
+
/** Thrown by `ensureFpo(fpo, { expectNoChanges: true })` when the plan is not clean. */
|
|
62525
|
+
export declare class FpoDriftError extends Error {
|
|
62526
|
+
readonly plan: EnsureFpoResult;
|
|
62527
|
+
constructor(plan: EnsureFpoResult);
|
|
62528
|
+
}
|
|
62529
|
+
export declare function fpoPlanHasDrift(plan: EnsureFpoResult): boolean;
|
|
61287
62530
|
interface PullFpoResult {
|
|
61288
62531
|
productId: string;
|
|
61289
62532
|
/**
|
|
@@ -61297,10 +62540,10 @@ interface PullFpoResult {
|
|
|
61297
62540
|
warnings?: string[];
|
|
61298
62541
|
}
|
|
61299
62542
|
/**
|
|
61300
|
-
* Converge an entire FPO onto the platform. Ships the full FPO
|
|
61301
|
-
*
|
|
61302
|
-
* and returns the whole-FPO hash + per-entity report.
|
|
61303
|
-
* `result.hasFailures` / `entities[].result` and re-run to self-heal.
|
|
62543
|
+
* Converge an entire FPO onto the platform. Ships the full FPO unless a
|
|
62544
|
+
* drafts-only `hashProbe` finds the live graph already matches; the server fans out to the
|
|
62545
|
+
* per-entity ensure services and returns the whole-FPO hash + per-entity report.
|
|
62546
|
+
* Non-atomic: inspect `result.hasFailures` / `entities[].result` and re-run to self-heal.
|
|
61304
62547
|
*/
|
|
61305
62548
|
export declare function ensureFpo(client: RuntypeClient$1, fpo: FpoInput, options?: EnsureFpoOptions): Promise<EnsureFpoResult>;
|
|
61306
62549
|
/**
|
|
@@ -61429,8 +62672,10 @@ interface DefineSurfaceInput {
|
|
|
61429
62672
|
name: string;
|
|
61430
62673
|
type: SurfaceDefinitionType;
|
|
61431
62674
|
behavior?: Record<string, unknown>;
|
|
61432
|
-
|
|
61433
|
-
|
|
62675
|
+
/** Omit to keep the stored value; null clears it; a `'<redacted>'` credential keeps the stored secret. */
|
|
62676
|
+
inbound?: Record<string, unknown> | null;
|
|
62677
|
+
/** Omit to keep the stored value; null clears it; a `'<redacted>'` credential keeps the stored secret. */
|
|
62678
|
+
outbound?: Record<string, unknown> | null;
|
|
61434
62679
|
status?: SurfaceDefinitionStatus;
|
|
61435
62680
|
}
|
|
61436
62681
|
/** The canonical (wire) definition produced by `defineSurface`. */
|
|
@@ -61438,8 +62683,10 @@ interface SurfaceDefinition {
|
|
|
61438
62683
|
name: string;
|
|
61439
62684
|
type: SurfaceDefinitionType;
|
|
61440
62685
|
behavior?: Record<string, unknown>;
|
|
61441
|
-
|
|
61442
|
-
|
|
62686
|
+
/** Omit to keep the stored value; null clears it; a `'<redacted>'` credential keeps the stored secret. */
|
|
62687
|
+
inbound?: Record<string, unknown> | null;
|
|
62688
|
+
/** Omit to keep the stored value; null clears it; a `'<redacted>'` credential keeps the stored secret. */
|
|
62689
|
+
outbound?: Record<string, unknown> | null;
|
|
61443
62690
|
status?: SurfaceDefinitionStatus;
|
|
61444
62691
|
}
|
|
61445
62692
|
/**
|
|
@@ -62267,6 +63514,23 @@ export declare class Runtype {
|
|
|
62267
63514
|
* ```
|
|
62268
63515
|
*/
|
|
62269
63516
|
static get tools(): ToolsNamespace;
|
|
63517
|
+
/**
|
|
63518
|
+
* Question sets namespace - Question set config-as-code (define / ensure / pull)
|
|
63519
|
+
*
|
|
63520
|
+
* @example
|
|
63521
|
+
* ```typescript
|
|
63522
|
+
* import { defineQuestionSet, Runtype } from '@runtypelabs/sdk'
|
|
63523
|
+
*
|
|
63524
|
+
* const triage = defineQuestionSet({
|
|
63525
|
+
* slug: 'ticket-triage',
|
|
63526
|
+
* name: 'Ticket triage',
|
|
63527
|
+
* questions: { urgent: { type: 'boolean', instructions: 'Is the ticket urgent?' } },
|
|
63528
|
+
* })
|
|
63529
|
+
*
|
|
63530
|
+
* await Runtype.questionSets.ensure(triage, { release: 'publish' })
|
|
63531
|
+
* ```
|
|
63532
|
+
*/
|
|
63533
|
+
static get questionSets(): QuestionSetsNamespace;
|
|
62270
63534
|
/**
|
|
62271
63535
|
* Products namespace - Product config-as-code (define / ensure / pull)
|
|
62272
63536
|
*
|
|
@@ -62464,6 +63728,238 @@ interface PromoteAgentResult {
|
|
|
62464
63728
|
*/
|
|
62465
63729
|
export declare function promoteAgent(input: PromoteAgentInput): Promise<PromoteAgentResult>;
|
|
62466
63730
|
//#endregion
|
|
63731
|
+
//#region src/schedules-ensure.d.ts
|
|
63732
|
+
/** Exactly one key: a flow or agent by id, or by name (portable across environments). */
|
|
63733
|
+
export type ScheduleTarget = {
|
|
63734
|
+
flowId: string;
|
|
63735
|
+
} | {
|
|
63736
|
+
agentId: string;
|
|
63737
|
+
} | {
|
|
63738
|
+
flowName: string;
|
|
63739
|
+
} | {
|
|
63740
|
+
agentName: string;
|
|
63741
|
+
};
|
|
63742
|
+
export type ScheduleTrigger = {
|
|
63743
|
+
type: 'recurring';
|
|
63744
|
+
cron: string;
|
|
63745
|
+
timezone: string;
|
|
63746
|
+
runAt?: string;
|
|
63747
|
+
} | {
|
|
63748
|
+
type: 'one_time';
|
|
63749
|
+
runAt: string;
|
|
63750
|
+
cron?: string;
|
|
63751
|
+
timezone?: string;
|
|
63752
|
+
};
|
|
63753
|
+
type ScheduleDefinitionMessage = {
|
|
63754
|
+
role: 'system' | 'user' | 'assistant';
|
|
63755
|
+
content: unknown;
|
|
63756
|
+
} | {
|
|
63757
|
+
name?: string;
|
|
63758
|
+
messages: Array<{
|
|
63759
|
+
role: 'system' | 'user' | 'assistant';
|
|
63760
|
+
content: unknown;
|
|
63761
|
+
}>;
|
|
63762
|
+
};
|
|
63763
|
+
/** The canonical (wire) definition produced by `defineSchedule`. */
|
|
63764
|
+
interface ScheduleDefinition {
|
|
63765
|
+
name: string;
|
|
63766
|
+
target: ScheduleTarget;
|
|
63767
|
+
trigger: ScheduleTrigger;
|
|
63768
|
+
recordIds?: string[];
|
|
63769
|
+
recordType?: string;
|
|
63770
|
+
recordFilter?: Record<string, unknown>;
|
|
63771
|
+
messages?: ScheduleDefinitionMessage[];
|
|
63772
|
+
inputs?: Record<string, unknown>;
|
|
63773
|
+
executionOptions?: Record<string, unknown>;
|
|
63774
|
+
/** Omit to leave the schedule's paused/active state alone; new schedules start enabled. */
|
|
63775
|
+
enabled?: boolean;
|
|
63776
|
+
}
|
|
63777
|
+
type DefineScheduleInput = ScheduleDefinition;
|
|
63778
|
+
interface ScheduleContentInput {
|
|
63779
|
+
triggerType: string;
|
|
63780
|
+
cron?: string | null;
|
|
63781
|
+
timezone?: string | null;
|
|
63782
|
+
runAt?: string | Date | null;
|
|
63783
|
+
recordIds?: string[] | null;
|
|
63784
|
+
recordType?: string | null;
|
|
63785
|
+
recordFilter?: Record<string, unknown> | null;
|
|
63786
|
+
messages?: unknown[] | null;
|
|
63787
|
+
inputs?: Record<string, unknown> | null;
|
|
63788
|
+
executionOptions?: Record<string, unknown> | null;
|
|
63789
|
+
enabled?: boolean | null;
|
|
63790
|
+
}
|
|
63791
|
+
/** Canonical normalized schedule content (name and target excluded — identity). */
|
|
63792
|
+
export declare function normalizeScheduleContent(definition: ScheduleContentInput): Record<string, unknown>;
|
|
63793
|
+
/** SHA-256 (hex) over canonical schedule content, in the flat content shape. */
|
|
63794
|
+
export declare function computeScheduleContentHash(definition: ScheduleContentInput): Promise<string>;
|
|
63795
|
+
/** The content hash of a `defineSchedule` definition. */
|
|
63796
|
+
export declare function computeScheduleDefinitionHash(definition: ScheduleDefinition): Promise<string>;
|
|
63797
|
+
/**
|
|
63798
|
+
* Pure-local declarative constructor for a standalone schedule. No I/O.
|
|
63799
|
+
* Validates structure; cron, timezone, record filter and plan limits are
|
|
63800
|
+
* checked server-side at ensure time.
|
|
63801
|
+
*
|
|
63802
|
+
* @example
|
|
63803
|
+
* ```typescript
|
|
63804
|
+
* const nightly = defineSchedule({
|
|
63805
|
+
* name: 'Nightly digest',
|
|
63806
|
+
* target: { flowName: 'Digest' },
|
|
63807
|
+
* trigger: { type: 'recurring', cron: '0 2 * * *', timezone: 'UTC' },
|
|
63808
|
+
* })
|
|
63809
|
+
* ```
|
|
63810
|
+
*/
|
|
63811
|
+
export declare function defineSchedule(input: DefineScheduleInput): ScheduleDefinition;
|
|
63812
|
+
interface EnsureScheduleOptions {
|
|
63813
|
+
/** Plan without writing (the CI drift gate). Sends the full definition. */
|
|
63814
|
+
dryRun?: boolean;
|
|
63815
|
+
/** What to do when the last write was not ensure. Default 'error' (409). */
|
|
63816
|
+
onConflict?: 'error' | 'overwrite';
|
|
63817
|
+
/** TOCTOU guard from a dry run; the full definition is always sent with it. */
|
|
63818
|
+
expectedRemoteHash?: string;
|
|
63819
|
+
/** Implies dryRun; throws ScheduleDriftError unless the plan is 'none'. */
|
|
63820
|
+
expectNoChanges?: boolean;
|
|
63821
|
+
}
|
|
63822
|
+
interface EnsureScheduleConverged {
|
|
63823
|
+
result: 'unchanged' | 'created' | 'updated';
|
|
63824
|
+
scheduleId: string;
|
|
63825
|
+
/** The server-computed canonical hash (echo this — never your own). */
|
|
63826
|
+
contentHash: string;
|
|
63827
|
+
}
|
|
63828
|
+
interface EnsureSchedulePlan {
|
|
63829
|
+
result: 'plan';
|
|
63830
|
+
changes: 'none' | 'create' | 'update';
|
|
63831
|
+
changedKeys: string[];
|
|
63832
|
+
contentHash: string;
|
|
63833
|
+
remoteHash?: string;
|
|
63834
|
+
scheduleId?: string;
|
|
63835
|
+
}
|
|
63836
|
+
type EnsureScheduleResult = EnsureScheduleConverged | EnsureSchedulePlan;
|
|
63837
|
+
interface SchedulePullResult {
|
|
63838
|
+
scheduleId: string;
|
|
63839
|
+
definition: ScheduleDefinition;
|
|
63840
|
+
contentHash: string;
|
|
63841
|
+
lastModifiedSource: string | null;
|
|
63842
|
+
updatedAt: string | null;
|
|
63843
|
+
}
|
|
63844
|
+
/** A 409 from the ensure protocol (external_modification or remote_changed). */
|
|
63845
|
+
export declare class ScheduleEnsureConflictError extends Error {
|
|
63846
|
+
readonly code: 'external_modification' | 'remote_changed';
|
|
63847
|
+
readonly lastModifiedSource?: string;
|
|
63848
|
+
readonly modifiedAt?: string | null;
|
|
63849
|
+
readonly currentHash?: string | null;
|
|
63850
|
+
constructor(body: {
|
|
63851
|
+
error?: string;
|
|
63852
|
+
code: 'external_modification' | 'remote_changed';
|
|
63853
|
+
lastModifiedSource?: string;
|
|
63854
|
+
modifiedAt?: string | null;
|
|
63855
|
+
currentHash?: string | null;
|
|
63856
|
+
});
|
|
63857
|
+
}
|
|
63858
|
+
/** Thrown by `ensure(def, { expectNoChanges: true })` when drift is detected. */
|
|
63859
|
+
export declare class ScheduleDriftError extends Error {
|
|
63860
|
+
readonly plan: EnsureSchedulePlan;
|
|
63861
|
+
constructor(plan: EnsureSchedulePlan);
|
|
63862
|
+
}
|
|
63863
|
+
/** The request surface ensure needs; both SDK clients satisfy it. */
|
|
63864
|
+
interface ScheduleEnsureTransport {
|
|
63865
|
+
get<T>(path: string, params?: Record<string, unknown>): Promise<T>;
|
|
63866
|
+
post<T>(path: string, data?: unknown): Promise<T>;
|
|
63867
|
+
}
|
|
63868
|
+
/**
|
|
63869
|
+
* Idempotently converge a standalone schedule. Hash-first: probes with a
|
|
63870
|
+
* content hash and ships the full definition only on a miss. Never deletes.
|
|
63871
|
+
*/
|
|
63872
|
+
export declare function ensureSchedule(client: ScheduleEnsureTransport, definition: ScheduleDefinition, options?: EnsureScheduleOptions): Promise<EnsureScheduleResult>;
|
|
63873
|
+
/** Pull the canonical definition + provenance for a schedule by name and target. */
|
|
63874
|
+
export declare function pullSchedule(client: ScheduleEnsureTransport, name: string, target: ScheduleTarget): Promise<SchedulePullResult>;
|
|
63875
|
+
//#endregion
|
|
63876
|
+
//#region src/collections-ensure.d.ts
|
|
63877
|
+
type RecordCollectionValidationMode = 'off' | 'warn' | 'enforce';
|
|
63878
|
+
/** A repo-declared record collection. `slug` is identity; omitted fields converge to create defaults. */
|
|
63879
|
+
interface RecordCollectionDefinition {
|
|
63880
|
+
slug: string;
|
|
63881
|
+
displayName: string;
|
|
63882
|
+
description?: string | null;
|
|
63883
|
+
icon?: string | null;
|
|
63884
|
+
schema?: Record<string, unknown> | null;
|
|
63885
|
+
validationMode?: RecordCollectionValidationMode;
|
|
63886
|
+
}
|
|
63887
|
+
/** Canonical normalized form of a collection definition (slug excluded — identity). */
|
|
63888
|
+
export declare function normalizeRecordCollectionDefinition(definition: RecordCollectionDefinition): {
|
|
63889
|
+
displayName: string;
|
|
63890
|
+
description?: string;
|
|
63891
|
+
icon?: string;
|
|
63892
|
+
schema?: Record<string, unknown>;
|
|
63893
|
+
validationMode: string;
|
|
63894
|
+
};
|
|
63895
|
+
/** SHA-256 (hex) over the canonical normalized collection definition. */
|
|
63896
|
+
export declare function computeRecordCollectionContentHash(definition: RecordCollectionDefinition): Promise<string>;
|
|
63897
|
+
interface EnsureCollectionOptions {
|
|
63898
|
+
/** Plan without writing (the CI drift gate). Sends the full definition. */
|
|
63899
|
+
dryRun?: boolean;
|
|
63900
|
+
/** What to do when the last write came from the dashboard/API. Default 'error' (409). */
|
|
63901
|
+
onConflict?: 'error' | 'overwrite';
|
|
63902
|
+
/** TOCTOU guard binding a dry run to its apply (409 remote_changed otherwise). */
|
|
63903
|
+
expectedRemoteHash?: string;
|
|
63904
|
+
/** Implies dryRun; throws CollectionDriftError unless the plan is 'none'. */
|
|
63905
|
+
expectNoChanges?: boolean;
|
|
63906
|
+
}
|
|
63907
|
+
interface CollectionSchemaChange {
|
|
63908
|
+
kind: 'additive' | 'breaking';
|
|
63909
|
+
breakingChanges: string[];
|
|
63910
|
+
}
|
|
63911
|
+
interface EnsureCollectionConverged {
|
|
63912
|
+
result: 'unchanged' | 'created' | 'updated';
|
|
63913
|
+
collectionId: string;
|
|
63914
|
+
/** The server-computed canonical hash (echo this — never your own). */
|
|
63915
|
+
contentHash: string;
|
|
63916
|
+
schemaChange?: CollectionSchemaChange;
|
|
63917
|
+
/** Present when this ensure moved validationMode to `enforce`: existing records checked against the schema. */
|
|
63918
|
+
enforceCheck?: {
|
|
63919
|
+
checked: number;
|
|
63920
|
+
failed: number;
|
|
63921
|
+
truncated: boolean;
|
|
63922
|
+
};
|
|
63923
|
+
}
|
|
63924
|
+
interface EnsureCollectionPlan {
|
|
63925
|
+
result: 'plan';
|
|
63926
|
+
changes: 'none' | 'create' | 'update';
|
|
63927
|
+
changedKeys: string[];
|
|
63928
|
+
contentHash: string;
|
|
63929
|
+
remoteHash?: string;
|
|
63930
|
+
collectionId?: string;
|
|
63931
|
+
schemaChange?: CollectionSchemaChange;
|
|
63932
|
+
}
|
|
63933
|
+
type EnsureCollectionResult = EnsureCollectionConverged | EnsureCollectionPlan;
|
|
63934
|
+
interface CollectionPullResult {
|
|
63935
|
+
collectionId: string;
|
|
63936
|
+
definition: Required<Omit<RecordCollectionDefinition, 'validationMode'>> & {
|
|
63937
|
+
validationMode: RecordCollectionValidationMode;
|
|
63938
|
+
};
|
|
63939
|
+
contentHash: string;
|
|
63940
|
+
lastModifiedSource: string | null;
|
|
63941
|
+
updatedAt: string | null;
|
|
63942
|
+
}
|
|
63943
|
+
/** A 409 from the ensure protocol (external_modification or remote_changed). */
|
|
63944
|
+
export declare class CollectionEnsureConflictError extends Error {
|
|
63945
|
+
readonly code: 'external_modification' | 'remote_changed';
|
|
63946
|
+
readonly lastModifiedSource?: string;
|
|
63947
|
+
readonly modifiedAt?: string | null;
|
|
63948
|
+
readonly currentHash?: string | null;
|
|
63949
|
+
constructor(body: {
|
|
63950
|
+
error?: string;
|
|
63951
|
+
code: 'external_modification' | 'remote_changed';
|
|
63952
|
+
lastModifiedSource?: string;
|
|
63953
|
+
modifiedAt?: string | null;
|
|
63954
|
+
currentHash?: string | null;
|
|
63955
|
+
});
|
|
63956
|
+
}
|
|
63957
|
+
/** Thrown by `ensure(def, { expectNoChanges: true })` when drift is detected. */
|
|
63958
|
+
export declare class CollectionDriftError extends Error {
|
|
63959
|
+
readonly plan: EnsureCollectionPlan;
|
|
63960
|
+
constructor(slug: string, plan: EnsureCollectionPlan);
|
|
63961
|
+
}
|
|
63962
|
+
//#endregion
|
|
62467
63963
|
//#region src/api-key-request-types.d.ts
|
|
62468
63964
|
/**
|
|
62469
63965
|
* Agent API key request types.
|
|
@@ -63201,6 +64697,24 @@ export declare class CollectionsEndpoint {
|
|
|
63201
64697
|
* `RecordCollections` map so `client.records.from(slug)` types metadata.
|
|
63202
64698
|
*/
|
|
63203
64699
|
typegen(): Promise<string>;
|
|
64700
|
+
/**
|
|
64701
|
+
* Idempotently converge a repo-declared collection (display fields, schema,
|
|
64702
|
+
* validationMode) by slug. Hash-first; `dryRun` / `expectNoChanges` plan
|
|
64703
|
+
* without writing. Never deletes a collection or touches records.
|
|
64704
|
+
*
|
|
64705
|
+
* @example
|
|
64706
|
+
* ```typescript
|
|
64707
|
+
* await client.collections.ensure({
|
|
64708
|
+
* slug: 'customers',
|
|
64709
|
+
* displayName: 'Customers',
|
|
64710
|
+
* schema: { type: 'object', properties: { status: { type: 'string' } } },
|
|
64711
|
+
* validationMode: 'warn',
|
|
64712
|
+
* })
|
|
64713
|
+
* ```
|
|
64714
|
+
*/
|
|
64715
|
+
ensure(definition: RecordCollectionDefinition, options?: EnsureCollectionOptions): Promise<EnsureCollectionResult>;
|
|
64716
|
+
/** Pull the canonical definition and provenance for a collection — the absorb-drift direction. */
|
|
64717
|
+
pull(slug: string): Promise<CollectionPullResult>;
|
|
63204
64718
|
}
|
|
63205
64719
|
/**
|
|
63206
64720
|
* Agent API key REQUESTS — a device-authorization-style grant.
|
|
@@ -65542,6 +67056,17 @@ export declare class SchedulesEndpoint {
|
|
|
65542
67056
|
* Create a schedule. Provide exactly one of `target.flowId` or `target.agentId`.
|
|
65543
67057
|
*/
|
|
65544
67058
|
create(data: CreateScheduleRequest): Promise<ScheduleMutationResponse>;
|
|
67059
|
+
/**
|
|
67060
|
+
* Idempotently converge a `defineSchedule` definition on a standalone flow or
|
|
67061
|
+
* agent. Identity is name + target; the steady state is one hash probe. Never
|
|
67062
|
+
* deletes, and an omitted `enabled` leaves a paused schedule paused.
|
|
67063
|
+
*/
|
|
67064
|
+
ensure(definition: ScheduleDefinition, options?: EnsureScheduleOptions): Promise<EnsureScheduleResult>;
|
|
67065
|
+
/**
|
|
67066
|
+
* Pull the canonical definition + provenance for a schedule by name and
|
|
67067
|
+
* target — the absorb-drift direction of `ensure`.
|
|
67068
|
+
*/
|
|
67069
|
+
pull(name: string, target: ScheduleTarget): Promise<SchedulePullResult>;
|
|
65545
67070
|
/**
|
|
65546
67071
|
* Update a schedule (partial update supported).
|
|
65547
67072
|
*/
|
|
@@ -67443,5 +68968,5 @@ export declare function getLikelySupportingCandidatePaths(bestCandidatePath: str
|
|
|
67443
68968
|
export declare function getDefaultPlanPath(taskName: string): string;
|
|
67444
68969
|
export declare function sanitizeTaskSlug(taskName: string): string;
|
|
67445
68970
|
//#endregion
|
|
67446
|
-
export type { AIGrader, ActivateAgentAliasInput, ActivateAgentPromotionInput, AgentAlias, AgentAliasActivation, AgentAliasArchiveFailure, AgentAliasArchived, AgentAliasList, AgentAliasTransport, AgentDefinition, AgentDefinitionConfig, AgentDeploymentList, AgentDeploymentPromotion, AgentDeploymentReceipt, AgentPromotionManifest, AgentPromotionTransport, AgentPromotionValidation, AgentPullResult, AgentStreamEvent, ApiKeyRequest, ApiKeyRequestDelivery, ApiKeyRequestEnvironment, ApiKeyRequestHandoff, ApiKeyRequestListParams, ApiKeyRequestRequester, ApiKeyRequestStatus, ApplyGeneratedProposalOptions, ApplyGeneratedProposalResult, ArchiveAgentAliasEverywhereResult, ArchiveAgentAliasInput, AttachRuntimeToolsOptions, BatchClient, BatchListParams, BatchOptions, BatchRequest, BatchResult, BatchScheduleConfig, BatchStatus, BindSkillInput, BuiltInGraderId, CaseExpected, CheckGrader, ClaimApiKeyRequestInput, ClaimApiKeyRequestResponse, ClientConversation, ClientToken, ClientTokenConfig, ClientTokenDefinition, ClientTokenEnvironment, ClientTokenVersionPin, ClientWidgetTheme, ConditionalGetResult, ConditionalStepConfig, ContextErrorHandling, ContextFallback, CreateApiKeyRequestInput, CreateApiKeyRequestResponse, CreateClientTokenRequest, CreateClientTokenResponse, CreateEvalSuiteInput, CreatePromptData, DecomposeCriteriaResult, DefineAgentInput, DefineEvalCaseInput, DefineEvalInput, DefineFlowInput, DefineProductInput, DefineSkillInput, DefineSurfaceInput, DefineToolInput, DetachedReattach, DetachedReconnectOptions, DispatchClient, DispatchEvent, DispatchOptions, EnsureAgentConverged, EnsureAgentOptions, EnsureAgentPlan, EnsureAgentResult, EnsureClientTokenConverged, EnsureClientTokenOptions, EnsureClientTokenPlan, EnsureClientTokenResult, EnsureEvalResult, EnsureFlowConverged, EnsureFlowOptions, EnsureFlowPlan, EnsureFlowResult, EnsureFpoOptions, EnsureFpoResult, EnsureProductConverged, EnsureProductOptions, EnsureProductPlan, EnsureProductResult, EnsureSkillConverged, EnsureSkillOptions, EnsureSkillPlan, EnsureSkillResult, EnsureSurfaceConverged, EnsureSurfaceOptions, EnsureSurfacePlan, EnsureSurfaceResult, EnsureToolConverged, EnsureToolOptions, EnsureToolPlan, EnsureToolResult, ErrorHandlingMode, EvalAgentSelector, EvalAgentTargetResolution, EvalCaseDefinition, EvalCaseInput, EvalCaseProposal, EvalCaseProposalAccepted, EvalCaseProposalListResult, EvalCasesGenerated, EvalClient, EvalDefinition, EvalListParams, EvalMessage, EvalOptions, EvalProposalSource, EvalProposalStatus, EvalProposedCase, EvalPullResult, EvalRecord, EvalRequest, EvalResult, EvalRunCaseScores, EvalRunConfig, EvalRunEvidence, EvalRunScores, EvalStatus, EvalSuiteCase, EvalSuiteCaseInput, EvalSuiteCoverage, EvalSuiteDetail, EvalSuiteLatestRun, EvalSuiteListResult, EvalSuiteRunQueued, EvalSuiteRunResult, EvalSuiteSummary, EvalTarget, ExecutionStreamEvent, FallbackFailEvent, FallbackStartEvent, FallbackSuccessEvent, FallbackTrigger, FallbackTriggerType, FallbacksExhaustedEvent, FallbacksInitiatedEvent, FetchUrlStepConfig, FieldFormat, FlowCompleteEvent, FlowConfig, FlowDefinition, FlowDefinitionStep, FlowErrorEvent, FlowFallback, FlowInlineEvalInput, FlowPausedEvent, FlowPullResult, FlowStartEvent, FlowStreamEvent, FlowSummary, FlowValidationClient, FlowValidationIssue, FlowValidationResult, FpoEntityOutcome, FpoInput, GenerateEmbeddingStepConfig, GenerateEvalCasesInput, GeneratedRuntimeToolGateDecision, GeneratedRuntimeToolGateOptions, GetApiKeyRequestResponse, GetRecordStepConfig, Gradeable, GraderConfig, GraderOutcome, GraderSeverity, HumanVerdict, ListAgentAliasesOptions, ListAgentDeploymentsOptions, ListConversationsResponse, ListRecordsStepConfig, LoopStepConfig, Message, MessageFallback, ModelFallback, ModelOverride, OrganizationAgentAlias, OrganizationAgentAliasList, PersistedGraderOutcome, PrepareAgentPromotionInput, ProductDefinition, ProductPullResult, PromoteAgentInput, PromoteAgentResult, PromptErrorHandling, PromptFallback, PromptListParams, PromptStepConfig, PullFpoResult, RecordConfig, RecordFilter, RecordFilterCondition, RecordFilterGroup, RecordFilterOperator, RetrieveRecordStepConfig, RetryFallback, RollbackAgentAliasInput, RunEvalCaseResult, RunEvalInput, RunEvalResult, RunListParams, RunListResponse, RunListRow, AgentSkillBinding as RuntypeAgentSkillBinding, ConditionalStepConfig$1 as RuntypeConditionalStepConfig, RuntypeConfig, FetchUrlStepConfig$1 as RuntypeFetchUrlStepConfig, FlowConfig$1 as RuntypeFlowConfig, GenerateEmbeddingStepConfig$1 as RuntypeGenerateEmbeddingStepConfig, GetRecordStepConfig$1 as RuntypeGetRecordStepConfig, ListRecordsStepConfig$1 as RuntypeListRecordsStepConfig, LoopStepConfig$1 as RuntypeLoopStepConfig, Message$1 as RuntypeMessage, ModelOverride$1 as RuntypeModelOverride, Prompt$1 as RuntypePrompt, PromptStepConfig$1 as RuntypePromptStepConfig, RecordConfig$1 as RuntypeRecordConfig, RetrieveRecordStepConfig$1 as RuntypeRetrieveRecordStepConfig, SearchStepConfig as RuntypeSearchStepConfig, SendEmailStepConfig as RuntypeSendEmailStepConfig, SendEventStepConfig as RuntypeSendEventStepConfig, SendStreamStepConfig as RuntypeSendStreamStepConfig, SetVariableStepConfig as RuntypeSetVariableStepConfig, Skill as RuntypeSkill, SkillBindingWithAgent as RuntypeSkillBindingWithAgent, SkillCapabilities as RuntypeSkillCapabilities, SkillFrontmatter as RuntypeSkillFrontmatter, SkillManifest as RuntypeSkillManifest, SkillProposal as RuntypeSkillProposal, SkillRuntypeExtensions as RuntypeSkillRuntypeExtensions, SkillVersion as RuntypeSkillVersion, TransformDataStepConfig as RuntypeTransformDataStepConfig, UpsertFlowConfig as RuntypeUpsertFlowConfig, UpsertRecordStepConfig as RuntypeUpsertRecordStepConfig, VectorSearchStepConfig as RuntypeVectorSearchStepConfig, WaitUntilStepConfig as RuntypeWaitUntilStepConfig, SearchStepConfig$1 as SearchStepConfig, SendEmailStepConfig$1 as SendEmailStepConfig, SendEventStepConfig$1 as SendEventStepConfig, SendStreamStepConfig$1 as SendStreamStepConfig, SetVariableStepConfig$1 as SetVariableStepConfig, SkillDefinition, SkillListPage, SkillListPagination, SkillListParams, SkillManifestInput, SkillMarkdownInput, SkillOrigin, SkillProposalStatus, SkillPullResult, SkillStatus, SkillTrustLevel, SkillVersionStatus, SkillWithVersion, SkillWriteInput, StepCompleteEvent, StepDeltaEvent, StepFallback, StepFieldMeta, StepStartEvent, StepWaitingLocalEvent, StreamCallbacks, StreamConsumeOptions, StreamEvent, StreamEventOf, SurfaceDefinition, SurfaceDefinitionStatus, SurfaceDefinitionType, SurfacePullResult, ToolDefinition, ToolDefinitionType, ToolPullResult, TransformDataStepConfig$1 as TransformDataStepConfig, UpdateClientTokenRequest, UpdateEvalCaseInput, UpdateEvalSuiteInput, UpdatePromptData, UpsertFlowConfig$1 as UpsertFlowConfig, UpsertRecordStepConfig$1 as UpsertRecordStepConfig, ValidateAgentPromotionInput, VectorSearchStepConfig$1 as VectorSearchStepConfig, WaitUntilStepConfig$1 as WaitUntilStepConfig, WorkflowCompileDeps, WorkflowCompletionCriteriaConfig, WorkflowConfig, WorkflowConfigFactory, WorkflowHookEntry, WorkflowHookKind, WorkflowHookRef, WorkflowHookSignatures, WorkflowMilestoneConfig, WorkflowPolicyConfig, WorkflowRecoveryConfig, WorkflowSlot };
|
|
68971
|
+
export type { AIGrader, ActivateAgentAliasInput, ActivateAgentPromotionInput, AgentAlias, AgentAliasActivation, AgentAliasArchiveFailure, AgentAliasArchived, AgentAliasList, AgentAliasTransport, AgentCapabilityChange, AgentCapabilityDeclaration, AgentDefinition, AgentDefinitionConfig, AgentDeploymentList, AgentDeploymentPromotion, AgentDeploymentReceipt, AgentPromotionManifest, AgentPromotionTransport, AgentPromotionValidation, AgentPullResult, AgentSkillBinding, AgentSkillBindingChange, AgentStreamEvent, ApiKeyRequest, ApiKeyRequestDelivery, ApiKeyRequestEnvironment, ApiKeyRequestHandoff, ApiKeyRequestListParams, ApiKeyRequestRequester, ApiKeyRequestStatus, ApplyGeneratedProposalOptions, ApplyGeneratedProposalResult, ArchiveAgentAliasEverywhereResult, ArchiveAgentAliasInput, AttachRuntimeToolsOptions, BatchClient, BatchListParams, BatchOptions, BatchRequest, BatchResult, BatchScheduleConfig, BatchStatus, BindSkillInput, BuiltInGraderId, CaseExpected, CheckGrader, ClaimApiKeyRequestInput, ClaimApiKeyRequestResponse, ClientConversation, ClientToken, ClientTokenConfig, ClientTokenDefinition, ClientTokenEnvironment, ClientTokenVersionPin, ClientWidgetTheme, CollectionPullResult, CollectionSchemaChange, ConditionalGetResult, ConditionalStepConfig, ContextErrorHandling, ContextFallback, CreateApiKeyRequestInput, CreateApiKeyRequestResponse, CreateClientTokenRequest, CreateClientTokenResponse, CreateEvalSuiteInput, CreatePromptData, DecomposeCriteriaResult, DefineAgentInput, DefineEvalCaseInput, DefineEvalInput, DefineFlowInput, DefineProductInput, DefineScheduleInput, DefineSkillInput, DefineSurfaceInput, DefineToolInput, DetachedReattach, DetachedReconnectOptions, DispatchClient, DispatchEvent, DispatchOptions, EnsureAgentConverged, EnsureAgentOptions, EnsureAgentPlan, EnsureAgentResult, EnsureClientTokenConverged, EnsureClientTokenOptions, EnsureClientTokenPlan, EnsureClientTokenResult, EnsureCollectionConverged, EnsureCollectionOptions, EnsureCollectionPlan, EnsureCollectionResult, EnsureEvalApplyOptions, EnsureEvalOptions, EnsureEvalPlan, EnsureEvalResult, EnsureFlowConverged, EnsureFlowOptions, EnsureFlowPlan, EnsureFlowResult, EnsureFpoOptions, EnsureFpoResult, EnsureProductConverged, EnsureProductOptions, EnsureProductPlan, EnsureProductResult, EnsureQuestionSetConverged, EnsureQuestionSetOptions, EnsureQuestionSetPlan, EnsureQuestionSetResult, EnsureScheduleConverged, EnsureScheduleOptions, EnsureSchedulePlan, EnsureScheduleResult, EnsureSkillConverged, EnsureSkillOptions, EnsureSkillPlan, EnsureSkillResult, EnsureSurfaceConverged, EnsureSurfaceOptions, EnsureSurfacePlan, EnsureSurfaceResult, EnsureToolConverged, EnsureToolOptions, EnsureToolPlan, EnsureToolResult, ErrorHandlingMode, EvalAgentSelector, EvalAgentTargetResolution, EvalCaseDefinition, EvalCaseInput, EvalCaseProposal, EvalCaseProposalAccepted, EvalCaseProposalListResult, EvalCasesGenerated, EvalClient, EvalDefinition, EvalListParams, EvalMessage, EvalOptions, EvalProposalSource, EvalProposalStatus, EvalProposedCase, EvalPullResult, EvalRecord, EvalRequest, EvalResult, EvalRunCaseScores, EvalRunConfig, EvalRunEvidence, EvalRunScores, EvalStatus, EvalSuiteCase, EvalSuiteCaseInput, EvalSuiteCoverage, EvalSuiteDetail, EvalSuiteLatestRun, EvalSuiteListResult, EvalSuiteRunQueued, EvalSuiteRunResult, EvalSuiteSummary, EvalTarget, ExecutionStreamEvent, FallbackFailEvent, FallbackStartEvent, FallbackSuccessEvent, FallbackTrigger, FallbackTriggerType, FallbacksExhaustedEvent, FallbacksInitiatedEvent, FetchUrlStepConfig, FieldFormat, FlowCompleteEvent, FlowConfig, FlowDefinition, FlowDefinitionStep, FlowErrorEvent, FlowFallback, FlowInlineEvalInput, FlowPausedEvent, FlowPullResult, FlowStartEvent, FlowStreamEvent, FlowSummary, FlowValidationClient, FlowValidationIssue, FlowValidationResult, FpoEntityOutcome, FpoInput, GenerateEmbeddingStepConfig, GenerateEvalCasesInput, GeneratedRuntimeToolGateDecision, GeneratedRuntimeToolGateOptions, GetApiKeyRequestResponse, GetRecordStepConfig, Gradeable, GraderConfig, GraderOutcome, GraderSeverity, HumanVerdict, ListAgentAliasesOptions, ListAgentDeploymentsOptions, ListConversationsResponse, ListRecordsStepConfig, LoopStepConfig, Message, MessageFallback, ModelFallback, ModelOverride, OrganizationAgentAlias, OrganizationAgentAliasList, PersistedGraderOutcome, PrepareAgentPromotionInput, ProductDefinition, ProductPullResult, PromoteAgentInput, PromoteAgentResult, PromptErrorHandling, PromptFallback, PromptListParams, PromptStepConfig, PullFpoResult, QuestionSetDefinition, QuestionSetPullResult, RecordCollectionDefinition, RecordCollectionValidationMode, RecordConfig, RecordFilter, RecordFilterCondition, RecordFilterGroup, RecordFilterOperator, RetrieveRecordStepConfig, RetryFallback, RollbackAgentAliasInput, RunEvalCaseResult, RunEvalInput, RunEvalResult, RunListParams, RunListResponse, RunListRow, AgentSkillBinding$1 as RuntypeAgentSkillBinding, ConditionalStepConfig$1 as RuntypeConditionalStepConfig, RuntypeConfig, FetchUrlStepConfig$1 as RuntypeFetchUrlStepConfig, FlowConfig$1 as RuntypeFlowConfig, GenerateEmbeddingStepConfig$1 as RuntypeGenerateEmbeddingStepConfig, GetRecordStepConfig$1 as RuntypeGetRecordStepConfig, ListRecordsStepConfig$1 as RuntypeListRecordsStepConfig, LoopStepConfig$1 as RuntypeLoopStepConfig, Message$1 as RuntypeMessage, ModelOverride$1 as RuntypeModelOverride, Prompt$1 as RuntypePrompt, PromptStepConfig$1 as RuntypePromptStepConfig, RecordConfig$1 as RuntypeRecordConfig, RetrieveRecordStepConfig$1 as RuntypeRetrieveRecordStepConfig, SearchStepConfig as RuntypeSearchStepConfig, SendEmailStepConfig as RuntypeSendEmailStepConfig, SendEventStepConfig as RuntypeSendEventStepConfig, SendStreamStepConfig as RuntypeSendStreamStepConfig, SetVariableStepConfig as RuntypeSetVariableStepConfig, Skill as RuntypeSkill, SkillBindingWithAgent as RuntypeSkillBindingWithAgent, SkillCapabilities as RuntypeSkillCapabilities, SkillFrontmatter as RuntypeSkillFrontmatter, SkillManifest as RuntypeSkillManifest, SkillProposal as RuntypeSkillProposal, SkillRuntypeExtensions as RuntypeSkillRuntypeExtensions, SkillVersion as RuntypeSkillVersion, TransformDataStepConfig as RuntypeTransformDataStepConfig, UpsertFlowConfig as RuntypeUpsertFlowConfig, UpsertRecordStepConfig as RuntypeUpsertRecordStepConfig, VectorSearchStepConfig as RuntypeVectorSearchStepConfig, WaitUntilStepConfig as RuntypeWaitUntilStepConfig, ScheduleDefinition, ScheduleDefinitionMessage, ScheduleEnsureTransport, SchedulePullResult, SearchStepConfig$1 as SearchStepConfig, SendEmailStepConfig$1 as SendEmailStepConfig, SendEventStepConfig$1 as SendEventStepConfig, SendStreamStepConfig$1 as SendStreamStepConfig, SetVariableStepConfig$1 as SetVariableStepConfig, SkillDefinition, SkillListPage, SkillListPagination, SkillListParams, SkillManifestInput, SkillMarkdownInput, SkillOrigin, SkillProposalStatus, SkillPullResult, SkillStatus, SkillTrustLevel, SkillVersionStatus, SkillWithVersion, SkillWriteInput, StepCompleteEvent, StepDeltaEvent, StepFallback, StepFieldMeta, StepStartEvent, StepWaitingLocalEvent, StreamCallbacks, StreamConsumeOptions, StreamEvent, StreamEventOf, SurfaceDefinition, SurfaceDefinitionStatus, SurfaceDefinitionType, SurfacePullResult, ToolDefinition, ToolDefinitionType, ToolPullResult, TransformDataStepConfig$1 as TransformDataStepConfig, UpdateClientTokenRequest, UpdateEvalCaseInput, UpdateEvalSuiteInput, UpdatePromptData, UpsertFlowConfig$1 as UpsertFlowConfig, UpsertRecordStepConfig$1 as UpsertRecordStepConfig, ValidateAgentPromotionInput, VectorSearchStepConfig$1 as VectorSearchStepConfig, WaitUntilStepConfig$1 as WaitUntilStepConfig, WorkflowCompileDeps, WorkflowCompletionCriteriaConfig, WorkflowConfig, WorkflowConfigFactory, WorkflowHookEntry, WorkflowHookKind, WorkflowHookRef, WorkflowHookSignatures, WorkflowMilestoneConfig, WorkflowPolicyConfig, WorkflowRecoveryConfig, WorkflowSlot };
|
|
67447
68972
|
export {}
|