@runtypelabs/sdk 10.4.0 → 10.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -206,6 +206,95 @@ interface paths {
206
206
  patch?: never;
207
207
  trace?: never;
208
208
  };
209
+ "/v1/agent-feedback": {
210
+ parameters: {
211
+ query?: never;
212
+ header?: never;
213
+ path?: never;
214
+ cookie?: never;
215
+ };
216
+ get?: never;
217
+ put?: never;
218
+ /**
219
+ * Report a problem
220
+ * @description Report a problem with the Runtype API, MCP tools, documentation, SDKs, CLI, or dashboard. Built for coding agents: include a category, a short note, and the affected request ID or URL. Any API key can submit, and submitting costs no credits. Secret-looking values in the note are redacted before storage.
221
+ */
222
+ post: {
223
+ parameters: {
224
+ query?: never;
225
+ header?: never;
226
+ path?: never;
227
+ cookie?: never;
228
+ };
229
+ requestBody?: {
230
+ content: {
231
+ "application/json": {
232
+ /**
233
+ * @description Which part of Runtype the problem is in.
234
+ * @enum {string}
235
+ */
236
+ category: "api" | "mcp" | "documentation" | "sdk" | "cli" | "dashboard" | "other";
237
+ /** @description Short description of the problem: what you tried, what you expected, and what happened. */
238
+ note: string;
239
+ /** @description The affected request, execution, or record ID, when there is one. */
240
+ requestId?: string;
241
+ /** @description The MCP tool, SDK method, or CLI command involved, when there is one. */
242
+ toolName?: string;
243
+ /** @description The affected endpoint path or documentation URL, when there is one. */
244
+ url?: string;
245
+ };
246
+ };
247
+ };
248
+ responses: {
249
+ /** @description Feedback received */
250
+ 202: {
251
+ headers: {
252
+ [name: string]: unknown;
253
+ };
254
+ content: {
255
+ "application/json": {
256
+ /** @description Receipt ID for this report (agfb_...). Quote it in follow-ups. */
257
+ id: string;
258
+ /** @enum {string} */
259
+ status: "received";
260
+ };
261
+ };
262
+ };
263
+ /** @description Invalid parameters */
264
+ 400: {
265
+ headers: {
266
+ [name: string]: unknown;
267
+ };
268
+ content: {
269
+ "application/json": components["schemas"]["Error"];
270
+ };
271
+ };
272
+ /** @description Unauthorized */
273
+ 401: {
274
+ headers: {
275
+ [name: string]: unknown;
276
+ };
277
+ content: {
278
+ "application/json": components["schemas"]["Error"];
279
+ };
280
+ };
281
+ /** @description Too many reports in a short window */
282
+ 429: {
283
+ headers: {
284
+ [name: string]: unknown;
285
+ };
286
+ content: {
287
+ "application/json": components["schemas"]["Error"];
288
+ };
289
+ };
290
+ };
291
+ };
292
+ delete?: never;
293
+ options?: never;
294
+ head?: never;
295
+ patch?: never;
296
+ trace?: never;
297
+ };
209
298
  "/v1/agent-versions/{agentId}": {
210
299
  parameters: {
211
300
  query?: never;
@@ -3972,6 +4061,15 @@ interface paths {
3972
4061
  "application/json": components["schemas"]["Error"];
3973
4062
  };
3974
4063
  };
4064
+ /** @description Insufficient permissions (AGENTS:WRITE required) */
4065
+ 403: {
4066
+ headers: {
4067
+ [name: string]: unknown;
4068
+ };
4069
+ content: {
4070
+ "application/json": components["schemas"]["Error"];
4071
+ };
4072
+ };
3975
4073
  /** @description Agent or capability not found */
3976
4074
  404: {
3977
4075
  headers: {
@@ -5937,92 +6035,44 @@ interface paths {
5937
6035
  patch?: never;
5938
6036
  trace?: never;
5939
6037
  };
5940
- "/v1/analytics/end-user-usage": {
6038
+ "/v1/agents/{id}/voice/drafts": {
5941
6039
  parameters: {
5942
6040
  query?: never;
5943
6041
  header?: never;
5944
6042
  path?: never;
5945
6043
  cookie?: never;
5946
6044
  };
6045
+ get?: never;
6046
+ put?: never;
5947
6047
  /**
5948
- * Get product usage by end user
5949
- * @description Get a retained, product-scoped breakdown of executions and platform spend by projected end user.
6048
+ * Create a voice test draft
6049
+ * @description Hold an unsaved agent definition for about 15 minutes so a browser voice call can run it instead of the saved agent, without saving or publishing. The body is merged onto the saved agent exactly as `PUT /agents/{id}` would merge it, and nothing is written to the agent. Runtype agents only; the merged config must have voice enabled.
5950
6050
  */
5951
- get: {
6051
+ post: {
5952
6052
  parameters: {
5953
- query: {
5954
- productId: string;
5955
- productTenantId?: string;
5956
- period?: "billing_period" | "7d" | "30d" | "90d";
5957
- days?: number;
5958
- sort?: "spend" | "executions";
5959
- limit?: number;
5960
- };
6053
+ query?: never;
5961
6054
  header?: never;
5962
- path?: never;
6055
+ path: {
6056
+ id: string;
6057
+ };
5963
6058
  cookie?: never;
5964
6059
  };
5965
- requestBody?: never;
6060
+ requestBody?: {
6061
+ content: {
6062
+ "application/json": components["schemas"]["CreateVoiceAgentDraftRequest"];
6063
+ };
6064
+ };
5966
6065
  responses: {
5967
- /** @description End-user usage breakdown */
5968
- 200: {
6066
+ /** @description Draft created */
6067
+ 201: {
5969
6068
  headers: {
5970
6069
  [name: string]: unknown;
5971
6070
  };
5972
6071
  content: {
5973
- "application/json": {
5974
- coverage: {
5975
- attributedExecutions: number;
5976
- attributedSpendThousandthsCent: number;
5977
- unattributedExecutions: number;
5978
- unattributedSpendThousandthsCent: number;
5979
- };
5980
- endUsers: {
5981
- costPerExecutionDollars: number | null;
5982
- endUser: {
5983
- email: string | null;
5984
- id: string;
5985
- name: string | null;
5986
- productTenantId: string | null;
5987
- };
5988
- executions: number;
5989
- lastSeenAt: string;
5990
- spendDollars: number;
5991
- spendThousandthsCent: number;
5992
- }[];
5993
- generatedAt: string;
5994
- period: {
5995
- days: number;
5996
- endDate: string;
5997
- /** @enum {string} */
5998
- preset?: "billing_period" | "7d" | "30d" | "90d";
5999
- startDate: string;
6000
- };
6001
- retention: {
6002
- attributionStartedAt: string | null;
6003
- earliestAvailableAt: string | null;
6004
- /** @enum {number} */
6005
- retentionDays: 93;
6006
- };
6007
- scope: {
6008
- productId: string;
6009
- productTenantId: string | null;
6010
- };
6011
- tenantIds: string[];
6012
- totals: {
6013
- executions: number;
6014
- spendDollars: number;
6015
- spendThousandthsCent: number;
6016
- };
6017
- unattributed: {
6018
- executions: number;
6019
- spendDollars: number;
6020
- spendThousandthsCent: number;
6021
- };
6022
- };
6072
+ "application/json": components["schemas"]["CreateVoiceAgentDraftResponse"];
6023
6073
  };
6024
6074
  };
6025
- /** @description Validation error */
6075
+ /** @description Invalid agent ID or draft configuration */
6026
6076
  400: {
6027
6077
  headers: {
6028
6078
  [name: string]: unknown;
@@ -6049,7 +6099,7 @@ interface paths {
6049
6099
  "application/json": components["schemas"]["Error"];
6050
6100
  };
6051
6101
  };
6052
- /** @description Feature or product not found */
6102
+ /** @description Agent not found */
6053
6103
  404: {
6054
6104
  headers: {
6055
6105
  [name: string]: unknown;
@@ -6058,8 +6108,17 @@ interface paths {
6058
6108
  "application/json": components["schemas"]["Error"];
6059
6109
  };
6060
6110
  };
6061
- /** @description Internal server error */
6062
- 500: {
6111
+ /** @description The agent is not a Runtype agent, or the draft has voice disabled */
6112
+ 422: {
6113
+ headers: {
6114
+ [name: string]: unknown;
6115
+ };
6116
+ content: {
6117
+ "application/json": components["schemas"]["Error"];
6118
+ };
6119
+ };
6120
+ /** @description Draft storage is unavailable in this environment */
6121
+ 503: {
6063
6122
  headers: {
6064
6123
  [name: string]: unknown;
6065
6124
  };
@@ -6069,15 +6128,13 @@ interface paths {
6069
6128
  };
6070
6129
  };
6071
6130
  };
6072
- put?: never;
6073
- post?: never;
6074
6131
  delete?: never;
6075
6132
  options?: never;
6076
6133
  head?: never;
6077
6134
  patch?: never;
6078
6135
  trace?: never;
6079
6136
  };
6080
- "/v1/analytics/record-results": {
6137
+ "/v1/analytics/end-user-usage": {
6081
6138
  parameters: {
6082
6139
  query?: never;
6083
6140
  header?: never;
@@ -6085,17 +6142,18 @@ interface paths {
6085
6142
  cookie?: never;
6086
6143
  };
6087
6144
  /**
6088
- * Get record results
6089
- * @description Get all record results for the current user with filtering and pagination. When a `days` parameter is provided, returns aggregated daily execution analytics instead of paginated results.
6145
+ * Get product usage by end user
6146
+ * @description Get a retained, product-scoped breakdown of executions and platform spend by projected end user.
6090
6147
  */
6091
6148
  get: {
6092
6149
  parameters: {
6093
- query?: {
6094
- days?: string;
6095
- page?: string;
6096
- limit?: string;
6097
- status?: string;
6098
- cursor?: string;
6150
+ query: {
6151
+ productId: string;
6152
+ productTenantId?: string;
6153
+ period?: "billing_period" | "7d" | "30d" | "90d";
6154
+ days?: number;
6155
+ sort?: "spend" | "executions";
6156
+ limit?: number;
6099
6157
  };
6100
6158
  header?: never;
6101
6159
  path?: never;
@@ -6103,78 +6161,217 @@ interface paths {
6103
6161
  };
6104
6162
  requestBody?: never;
6105
6163
  responses: {
6106
- /** @description Record results or aggregated daily analytics */
6164
+ /** @description End-user usage breakdown */
6107
6165
  200: {
6108
6166
  headers: {
6109
6167
  [name: string]: unknown;
6110
6168
  };
6111
6169
  content: {
6112
6170
  "application/json": {
6113
- dailyExecutions: {
6114
- date: string;
6115
- failedExecutions: number | string;
6116
- flowsFailure: number | string;
6117
- flowsSuccess: number | string;
6118
- promptsFailure: number | string;
6119
- promptsSuccess: number | string;
6120
- successfulExecutions: number | string;
6121
- totalExecutions: number | string;
6171
+ coverage: {
6172
+ attributedExecutions: number;
6173
+ attributedSpendThousandthsCent: number;
6174
+ unattributedExecutions: number;
6175
+ unattributedSpendThousandthsCent: number;
6176
+ };
6177
+ endUsers: {
6178
+ costPerExecutionDollars: number | null;
6179
+ endUser: {
6180
+ email: string | null;
6181
+ id: string;
6182
+ name: string | null;
6183
+ productTenantId: string | null;
6184
+ };
6185
+ executions: number;
6186
+ lastSeenAt: string;
6187
+ spendDollars: number;
6188
+ spendThousandthsCent: number;
6122
6189
  }[];
6190
+ generatedAt: string;
6123
6191
  period: {
6124
6192
  days: number;
6125
6193
  endDate: string;
6194
+ /** @enum {string} */
6195
+ preset?: "billing_period" | "7d" | "30d" | "90d";
6126
6196
  startDate: string;
6127
6197
  };
6128
- summary: {
6129
- failedExecutions: number;
6130
- flowExecutions: number;
6131
- promptExecutions: number;
6132
- successRate: number;
6133
- successfulExecutions: number;
6134
- totalExecutions: number;
6198
+ retention: {
6199
+ attributionStartedAt: string | null;
6200
+ earliestAvailableAt: string | null;
6201
+ /** @enum {number} */
6202
+ retentionDays: 93;
6135
6203
  };
6136
- } | {
6137
- data: {
6138
- pagination: {
6139
- hasNextPage: boolean;
6140
- hasPrevPage: boolean;
6141
- limit: number;
6142
- nextCursor: string | null;
6143
- page: number;
6144
- total: number;
6145
- totalPages: number;
6146
- };
6147
- results: {
6148
- completionTokens: number | null;
6149
- createdAt: string;
6150
- /**
6151
- * @deprecated
6152
- * @description Deprecated alias for `modelCost`; identical value.
6153
- */
6154
- estimatedCost: string | null;
6155
- executionTimeMs: number | null;
6156
- flowId: string | null;
6157
- flowName: string | null;
6158
- id: string;
6159
- modelCost: string | null;
6160
- modelUsed: string | null;
6161
- promptId: string | null;
6162
- promptName: string | null;
6163
- promptResponseFormat: string | null;
6164
- promptText: string | null;
6165
- promptTokens: number | null;
6166
- recordId: string;
6167
- recordName: string;
6168
- recordType: string;
6169
- result: string | null;
6170
- status: string;
6171
- /** @description Built-in tool spend for this execution, as a decimal string. `null` means unknown, not zero: rows written before per-run cost was split into model and tool portions carry no tool figure. A run that genuinely used no billable tool records `"0"`. Sum with `modelCost` for the run total, and treat `null` as unknown rather than zero. */
6172
- toolCost: string | null;
6173
- totalTokens: number | null;
6174
- }[];
6204
+ scope: {
6205
+ productId: string;
6206
+ productTenantId: string | null;
6207
+ };
6208
+ tenantIds: string[];
6209
+ totals: {
6210
+ executions: number;
6211
+ spendDollars: number;
6212
+ spendThousandthsCent: number;
6213
+ };
6214
+ unattributed: {
6215
+ executions: number;
6216
+ spendDollars: number;
6217
+ spendThousandthsCent: number;
6175
6218
  };
6176
- /** @enum {boolean} */
6177
- success: true;
6219
+ };
6220
+ };
6221
+ };
6222
+ /** @description Validation error */
6223
+ 400: {
6224
+ headers: {
6225
+ [name: string]: unknown;
6226
+ };
6227
+ content: {
6228
+ "application/json": components["schemas"]["Error"];
6229
+ };
6230
+ };
6231
+ /** @description Unauthorized */
6232
+ 401: {
6233
+ headers: {
6234
+ [name: string]: unknown;
6235
+ };
6236
+ content: {
6237
+ "application/json": components["schemas"]["Error"];
6238
+ };
6239
+ };
6240
+ /** @description Insufficient permissions */
6241
+ 403: {
6242
+ headers: {
6243
+ [name: string]: unknown;
6244
+ };
6245
+ content: {
6246
+ "application/json": components["schemas"]["Error"];
6247
+ };
6248
+ };
6249
+ /** @description Feature or product not found */
6250
+ 404: {
6251
+ headers: {
6252
+ [name: string]: unknown;
6253
+ };
6254
+ content: {
6255
+ "application/json": components["schemas"]["Error"];
6256
+ };
6257
+ };
6258
+ /** @description Internal server error */
6259
+ 500: {
6260
+ headers: {
6261
+ [name: string]: unknown;
6262
+ };
6263
+ content: {
6264
+ "application/json": components["schemas"]["Error"];
6265
+ };
6266
+ };
6267
+ };
6268
+ };
6269
+ put?: never;
6270
+ post?: never;
6271
+ delete?: never;
6272
+ options?: never;
6273
+ head?: never;
6274
+ patch?: never;
6275
+ trace?: never;
6276
+ };
6277
+ "/v1/analytics/record-results": {
6278
+ parameters: {
6279
+ query?: never;
6280
+ header?: never;
6281
+ path?: never;
6282
+ cookie?: never;
6283
+ };
6284
+ /**
6285
+ * Get record results
6286
+ * @description Get all record results for the current user with filtering and pagination. When a `days` parameter is provided, returns aggregated daily execution analytics instead of paginated results.
6287
+ */
6288
+ get: {
6289
+ parameters: {
6290
+ query?: {
6291
+ days?: string;
6292
+ page?: string;
6293
+ limit?: string;
6294
+ status?: string;
6295
+ cursor?: string;
6296
+ };
6297
+ header?: never;
6298
+ path?: never;
6299
+ cookie?: never;
6300
+ };
6301
+ requestBody?: never;
6302
+ responses: {
6303
+ /** @description Record results or aggregated daily analytics */
6304
+ 200: {
6305
+ headers: {
6306
+ [name: string]: unknown;
6307
+ };
6308
+ content: {
6309
+ "application/json": {
6310
+ dailyExecutions: {
6311
+ date: string;
6312
+ failedExecutions: number | string;
6313
+ flowsFailure: number | string;
6314
+ flowsSuccess: number | string;
6315
+ promptsFailure: number | string;
6316
+ promptsSuccess: number | string;
6317
+ successfulExecutions: number | string;
6318
+ totalExecutions: number | string;
6319
+ }[];
6320
+ period: {
6321
+ days: number;
6322
+ endDate: string;
6323
+ startDate: string;
6324
+ };
6325
+ summary: {
6326
+ failedExecutions: number;
6327
+ flowExecutions: number;
6328
+ promptExecutions: number;
6329
+ successRate: number;
6330
+ successfulExecutions: number;
6331
+ totalExecutions: number;
6332
+ };
6333
+ } | {
6334
+ data: {
6335
+ pagination: {
6336
+ hasNextPage: boolean;
6337
+ hasPrevPage: boolean;
6338
+ limit: number;
6339
+ nextCursor: string | null;
6340
+ page: number;
6341
+ total: number;
6342
+ totalPages: number;
6343
+ };
6344
+ results: {
6345
+ completionTokens: number | null;
6346
+ createdAt: string;
6347
+ /**
6348
+ * @deprecated
6349
+ * @description Deprecated alias for `modelCost`; identical value.
6350
+ */
6351
+ estimatedCost: string | null;
6352
+ executionTimeMs: number | null;
6353
+ flowId: string | null;
6354
+ flowName: string | null;
6355
+ id: string;
6356
+ modelCost: string | null;
6357
+ modelUsed: string | null;
6358
+ promptId: string | null;
6359
+ promptName: string | null;
6360
+ promptResponseFormat: string | null;
6361
+ promptText: string | null;
6362
+ promptTokens: number | null;
6363
+ recordId: string;
6364
+ recordName: string;
6365
+ recordType: string;
6366
+ result: string | null;
6367
+ status: string;
6368
+ /** @description Built-in tool spend for this execution, as a decimal string. `null` means unknown, not zero: rows written before per-run cost was split into model and tool portions carry no tool figure. A run that genuinely used no billable tool records `"0"`. Sum with `modelCost` for the run total, and treat `null` as unknown rather than zero. */
6369
+ toolCost: string | null;
6370
+ totalTokens: number | null;
6371
+ }[];
6372
+ };
6373
+ /** @enum {boolean} */
6374
+ success: true;
6178
6375
  };
6179
6376
  };
6180
6377
  };
@@ -7837,6 +8034,7 @@ interface paths {
7837
8034
  rateLimitPerHour?: number;
7838
8035
  /** @default 10 */
7839
8036
  rateLimitPerMinute?: number;
8037
+ revealOnce?: boolean;
7840
8038
  /** @default 30 */
7841
8039
  sessionIdleTimeoutMinutes?: number;
7842
8040
  /** @description Release alias this token follows. Re-resolved on every admission, so a deploy at that alias changes what the token runs. Mutually exclusive with targetVersionId. */
@@ -8571,6 +8769,70 @@ interface paths {
8571
8769
  patch?: never;
8572
8770
  trace?: never;
8573
8771
  };
8772
+ "/v1/client/agents/{agentId}/voice/prewarm": {
8773
+ parameters: {
8774
+ query?: never;
8775
+ header?: never;
8776
+ path?: never;
8777
+ cookie?: never;
8778
+ };
8779
+ get?: never;
8780
+ put?: never;
8781
+ /**
8782
+ * Prewarm browser voice for an agent
8783
+ * @description Signals intent to start a browser voice call (for example, the pointer entered the microphone button) so the WebSocket connect and first turn find warm state. Authenticated exactly like `/agents/{agentId}/speak`: send the client token as `Authorization: Bearer ct_…`; the token agent allowlist and origin allowlist apply. Returns 204 as soon as the caller is authenticated and warms in the background. The call never bills, reserves quota, or meters usage. Warming is rate-limited per client token and agent; a limited call still returns 204 and does nothing.
8784
+ */
8785
+ post: {
8786
+ parameters: {
8787
+ query?: {
8788
+ /** @description The client session the call will resume, when the host already has one. */
8789
+ sessionId?: string;
8790
+ };
8791
+ header?: {
8792
+ /** @description The visitor proof the call will present, sent the same way the voice WebSocket accepts it. */
8793
+ "x-visitor-token"?: string;
8794
+ };
8795
+ path: {
8796
+ /** @description The voice-enabled agent the call will open. */
8797
+ agentId: string;
8798
+ };
8799
+ cookie?: never;
8800
+ };
8801
+ requestBody?: never;
8802
+ responses: {
8803
+ /** @description Accepted. Warming, if admitted, continues in the background. */
8804
+ 204: {
8805
+ headers: {
8806
+ [name: string]: unknown;
8807
+ };
8808
+ content?: never;
8809
+ };
8810
+ /** @description Missing or invalid client token, agent not allowed for the token, or origin not allowed */
8811
+ 401: {
8812
+ headers: {
8813
+ [name: string]: unknown;
8814
+ };
8815
+ content: {
8816
+ "application/json": components["schemas"]["Error"];
8817
+ };
8818
+ };
8819
+ /** @description Malformed agent id */
8820
+ 404: {
8821
+ headers: {
8822
+ [name: string]: unknown;
8823
+ };
8824
+ content: {
8825
+ "application/json": components["schemas"]["Error"];
8826
+ };
8827
+ };
8828
+ };
8829
+ };
8830
+ delete?: never;
8831
+ options?: never;
8832
+ head?: never;
8833
+ patch?: never;
8834
+ trace?: never;
8835
+ };
8574
8836
  "/v1/client/chat": {
8575
8837
  parameters: {
8576
8838
  query?: never;
@@ -14602,6 +14864,8 @@ interface paths {
14602
14864
  content: {
14603
14865
  "application/json": {
14604
14866
  description?: string;
14867
+ /** @description Comma-separated build-product focus areas whose full guides are inlined, e.g. "embed,agent-design". */
14868
+ focus?: string;
14605
14869
  name?: string;
14606
14870
  /** @description One of: build-product, generate-flow, explain-capabilities */
14607
14871
  task?: string;
@@ -25365,6 +25629,15 @@ interface paths {
25365
25629
  };
25366
25630
  };
25367
25631
  };
25632
+ /** @description API key lacks a read scope (FLOWS:READ, AGENTS:READ or ANALYTICS:READ) */
25633
+ 403: {
25634
+ headers: {
25635
+ [name: string]: unknown;
25636
+ };
25637
+ content: {
25638
+ "application/json": components["schemas"]["Error"];
25639
+ };
25640
+ };
25368
25641
  /** @description Internal server error */
25369
25642
  500: {
25370
25643
  headers: {
@@ -25393,7 +25666,7 @@ interface paths {
25393
25666
  patch?: never;
25394
25667
  trace?: never;
25395
25668
  };
25396
- "/v1/logs/entry": {
25669
+ "/v1/logs/context/{executionId}": {
25397
25670
  parameters: {
25398
25671
  query?: never;
25399
25672
  header?: never;
@@ -25401,37 +25674,113 @@ interface paths {
25401
25674
  cookie?: never;
25402
25675
  };
25403
25676
  /**
25404
- * Read one log entry in full
25405
- * @description Returns a single log entry, including the model-call transcript the paged list projection omits. Addressed by the span key: traceId, spanId and timestamp. Bounded to one span, so a detail read never costs a page.
25677
+ * Context snapshots for an execution
25678
+ * @description Returns the ordered context manifest of every provider request in one execution: each block's category, kind, size, and hash, without content.
25679
+ */
25680
+ get: {
25681
+ parameters: {
25682
+ query?: never;
25683
+ header?: never;
25684
+ path: {
25685
+ /** @description Runtime execution_id to read (for example exec_...), not the aex_... agent-execution row ID */
25686
+ executionId: string;
25687
+ };
25688
+ cookie?: never;
25689
+ };
25690
+ requestBody?: never;
25691
+ responses: {
25692
+ /** @description Context snapshots returned */
25693
+ 200: {
25694
+ headers: {
25695
+ [name: string]: unknown;
25696
+ };
25697
+ content: {
25698
+ "application/json": {
25699
+ data: components["schemas"]["ContextSnapshots"];
25700
+ success: boolean;
25701
+ };
25702
+ };
25703
+ };
25704
+ /** @description Invalid request */
25705
+ 400: {
25706
+ headers: {
25707
+ [name: string]: unknown;
25708
+ };
25709
+ content: {
25710
+ "application/json": components["schemas"]["Error"];
25711
+ };
25712
+ };
25713
+ /** @description Unauthorized */
25714
+ 401: {
25715
+ headers: {
25716
+ [name: string]: unknown;
25717
+ };
25718
+ content: {
25719
+ "application/json": components["schemas"]["Error"];
25720
+ };
25721
+ };
25722
+ /** @description No trace for this execution */
25723
+ 404: {
25724
+ headers: {
25725
+ [name: string]: unknown;
25726
+ };
25727
+ content: {
25728
+ "application/json": components["schemas"]["Error"];
25729
+ };
25730
+ };
25731
+ /** @description Internal server error */
25732
+ 500: {
25733
+ headers: {
25734
+ [name: string]: unknown;
25735
+ };
25736
+ content: {
25737
+ "application/json": components["schemas"]["Error"];
25738
+ };
25739
+ };
25740
+ };
25741
+ };
25742
+ put?: never;
25743
+ post?: never;
25744
+ delete?: never;
25745
+ options?: never;
25746
+ head?: never;
25747
+ patch?: never;
25748
+ trace?: never;
25749
+ };
25750
+ "/v1/logs/context/{executionId}/blocks": {
25751
+ parameters: {
25752
+ query?: never;
25753
+ header?: never;
25754
+ path?: never;
25755
+ cookie?: never;
25756
+ };
25757
+ /**
25758
+ * Captured text of context blocks
25759
+ * @description Returns the captured text of the requested context blocks by manifest hash. A block whose text was not captured (logging policy, capture budget, or an older run) is omitted.
25406
25760
  */
25407
25761
  get: {
25408
25762
  parameters: {
25409
25763
  query: {
25410
- /** @description The span's exact started_at (ISO 8601) */
25411
- timestamp: string;
25412
- /** @description Trace the span belongs to; a span id is unique only within its trace. */
25413
- traceId: string;
25414
- /** @description Span to read, from a list row’s otlpSpanId. */
25415
- spanId: string;
25764
+ /** @description Comma-separated manifest entry hashes, 1 to 50. */
25765
+ hashes: string;
25416
25766
  };
25417
25767
  header?: never;
25418
- path?: never;
25768
+ path: {
25769
+ /** @description Runtime execution_id to read (for example exec_...), not the aex_... agent-execution row ID */
25770
+ executionId: string;
25771
+ };
25419
25772
  cookie?: never;
25420
25773
  };
25421
25774
  requestBody?: never;
25422
25775
  responses: {
25423
- /** @description Entry returned, or null when no row matches */
25776
+ /** @description Block text returned */
25424
25777
  200: {
25425
25778
  headers: {
25426
25779
  [name: string]: unknown;
25427
25780
  };
25428
25781
  content: {
25429
25782
  "application/json": {
25430
- data: {
25431
- entry: {
25432
- [key: string]: unknown;
25433
- } | null;
25434
- };
25783
+ data: components["schemas"]["ContextBlocks"];
25435
25784
  success: boolean;
25436
25785
  };
25437
25786
  };
@@ -25454,6 +25803,104 @@ interface paths {
25454
25803
  "application/json": components["schemas"]["Error"];
25455
25804
  };
25456
25805
  };
25806
+ /** @description No trace for this execution */
25807
+ 404: {
25808
+ headers: {
25809
+ [name: string]: unknown;
25810
+ };
25811
+ content: {
25812
+ "application/json": components["schemas"]["Error"];
25813
+ };
25814
+ };
25815
+ /** @description Internal server error */
25816
+ 500: {
25817
+ headers: {
25818
+ [name: string]: unknown;
25819
+ };
25820
+ content: {
25821
+ "application/json": components["schemas"]["Error"];
25822
+ };
25823
+ };
25824
+ };
25825
+ };
25826
+ put?: never;
25827
+ post?: never;
25828
+ delete?: never;
25829
+ options?: never;
25830
+ head?: never;
25831
+ patch?: never;
25832
+ trace?: never;
25833
+ };
25834
+ "/v1/logs/entry": {
25835
+ parameters: {
25836
+ query?: never;
25837
+ header?: never;
25838
+ path?: never;
25839
+ cookie?: never;
25840
+ };
25841
+ /**
25842
+ * Read one log entry in full
25843
+ * @description Returns a single log entry, including the model-call transcript the paged list projection omits. Addressed by the span key: traceId, spanId and timestamp. Bounded to one span, so a detail read never costs a page.
25844
+ */
25845
+ get: {
25846
+ parameters: {
25847
+ query: {
25848
+ /** @description The span's exact started_at (ISO 8601) */
25849
+ timestamp: string;
25850
+ /** @description Trace the span belongs to; a span id is unique only within its trace. */
25851
+ traceId: string;
25852
+ /** @description Span to read, from a list row’s otlpSpanId. */
25853
+ spanId: string;
25854
+ };
25855
+ header?: never;
25856
+ path?: never;
25857
+ cookie?: never;
25858
+ };
25859
+ requestBody?: never;
25860
+ responses: {
25861
+ /** @description Entry returned, or null when no row matches */
25862
+ 200: {
25863
+ headers: {
25864
+ [name: string]: unknown;
25865
+ };
25866
+ content: {
25867
+ "application/json": {
25868
+ data: {
25869
+ entry: {
25870
+ [key: string]: unknown;
25871
+ } | null;
25872
+ };
25873
+ success: boolean;
25874
+ };
25875
+ };
25876
+ };
25877
+ /** @description Invalid request */
25878
+ 400: {
25879
+ headers: {
25880
+ [name: string]: unknown;
25881
+ };
25882
+ content: {
25883
+ "application/json": components["schemas"]["Error"];
25884
+ };
25885
+ };
25886
+ /** @description Unauthorized */
25887
+ 401: {
25888
+ headers: {
25889
+ [name: string]: unknown;
25890
+ };
25891
+ content: {
25892
+ "application/json": components["schemas"]["Error"];
25893
+ };
25894
+ };
25895
+ /** @description API key lacks a read scope (FLOWS:READ, AGENTS:READ or ANALYTICS:READ) */
25896
+ 403: {
25897
+ headers: {
25898
+ [name: string]: unknown;
25899
+ };
25900
+ content: {
25901
+ "application/json": components["schemas"]["Error"];
25902
+ };
25903
+ };
25457
25904
  /** @description Internal server error */
25458
25905
  500: {
25459
25906
  headers: {
@@ -25608,6 +26055,15 @@ interface paths {
25608
26055
  };
25609
26056
  };
25610
26057
  };
26058
+ /** @description API key lacks a read scope (FLOWS:READ, AGENTS:READ or ANALYTICS:READ) */
26059
+ 403: {
26060
+ headers: {
26061
+ [name: string]: unknown;
26062
+ };
26063
+ content: {
26064
+ "application/json": components["schemas"]["Error"];
26065
+ };
26066
+ };
25611
26067
  /** @description Internal server error */
25612
26068
  500: {
25613
26069
  headers: {
@@ -25689,6 +26145,15 @@ interface paths {
25689
26145
  "application/json": components["schemas"]["Error"];
25690
26146
  };
25691
26147
  };
26148
+ /** @description API key lacks a read scope (FLOWS:READ, AGENTS:READ or ANALYTICS:READ) */
26149
+ 403: {
26150
+ headers: {
26151
+ [name: string]: unknown;
26152
+ };
26153
+ content: {
26154
+ "application/json": components["schemas"]["Error"];
26155
+ };
26156
+ };
25692
26157
  /** @description Internal server error */
25693
26158
  500: {
25694
26159
  headers: {
@@ -25761,6 +26226,15 @@ interface paths {
25761
26226
  "application/json": components["schemas"]["Error"];
25762
26227
  };
25763
26228
  };
26229
+ /** @description API key lacks a read scope (FLOWS:READ, AGENTS:READ or ANALYTICS:READ) */
26230
+ 403: {
26231
+ headers: {
26232
+ [name: string]: unknown;
26233
+ };
26234
+ content: {
26235
+ "application/json": components["schemas"]["Error"];
26236
+ };
26237
+ };
25764
26238
  /** @description Internal server error */
25765
26239
  500: {
25766
26240
  headers: {
@@ -25841,6 +26315,15 @@ interface paths {
25841
26315
  "application/json": components["schemas"]["Error"];
25842
26316
  };
25843
26317
  };
26318
+ /** @description API key lacks a read scope (FLOWS:READ, AGENTS:READ or ANALYTICS:READ) */
26319
+ 403: {
26320
+ headers: {
26321
+ [name: string]: unknown;
26322
+ };
26323
+ content: {
26324
+ "application/json": components["schemas"]["Error"];
26325
+ };
26326
+ };
25844
26327
  /** @description Internal server error */
25845
26328
  500: {
25846
26329
  headers: {
@@ -29758,6 +30241,8 @@ interface paths {
29758
30241
  y: number;
29759
30242
  };
29760
30243
  };
30244
+ /** @description Product Canvas blocks in page order. Entries merge with the stored ones by id; stored entries the request leaves out are kept after the sent ones. Saving the description or stack stamps the overview block, saving the linked docs stamps the docs block, and a changed config stamps its own block. */
30245
+ blocks?: components["schemas"]["ProductCanvasBlock"][];
29761
30246
  capabilityOrder?: string[];
29762
30247
  capabilityPositions?: {
29763
30248
  [key: string]: number;
@@ -29827,7 +30312,10 @@ interface paths {
29827
30312
  internalDocs?: {
29828
30313
  content?: string;
29829
30314
  resources?: {
30315
+ addedAt?: string;
30316
+ addedByUserId?: string;
29830
30317
  content?: string;
30318
+ source?: string;
29831
30319
  title: string;
29832
30320
  type: string;
29833
30321
  url?: string;
@@ -29838,6 +30326,7 @@ interface paths {
29838
30326
  productGoal?: string;
29839
30327
  /** @enum {string} */
29840
30328
  productStage?: "idea" | "prototype" | "beta" | "production" | "scaling";
30329
+ stack?: components["schemas"]["ProductStack"];
29841
30330
  targetAudience?: string;
29842
30331
  techStack?: {
29843
30332
  backend?: string[];
@@ -29942,7 +30431,7 @@ interface paths {
29942
30431
  put?: never;
29943
30432
  /**
29944
30433
  * Assemble product from FPO
29945
- * @description Assemble a product from a validated Full Product Object (FPO). Materializes secret bindings, so API keys must carry the SECRETS:WRITE permission.
30434
+ * @description Assemble a product from a validated Full Product Object (FPO). API keys must carry PRODUCTS:WRITE (or PRODUCTS:CREATE) and SECRETS:WRITE, plus the write scope for every entity kind the FPO materializes (FLOWS:WRITE, AGENTS:WRITE, PRODUCTS:SURFACES:WRITE, SCHEDULES:WRITE, RECORDS:WRITE, EVALS:WRITE, SKILLS:WRITE), and SECRETS:READ when an inline HTTP step references a managed secret.
29946
30435
  */
29947
30436
  post: {
29948
30437
  parameters: {
@@ -30010,7 +30499,7 @@ interface paths {
30010
30499
  "application/json": components["schemas"]["Error"];
30011
30500
  };
30012
30501
  };
30013
- /** @description Insufficient permissions (SECRETS:WRITE required) */
30502
+ /** @description Insufficient permissions for the entities this FPO materializes */
30014
30503
  403: {
30015
30504
  headers: {
30016
30505
  [name: string]: unknown;
@@ -30090,7 +30579,10 @@ interface paths {
30090
30579
  internalDocs?: {
30091
30580
  content?: string;
30092
30581
  resources?: {
30582
+ addedAt?: string;
30583
+ addedByUserId?: string;
30093
30584
  content?: string;
30585
+ source?: string;
30094
30586
  title: string;
30095
30587
  type: string;
30096
30588
  url?: string;
@@ -30204,7 +30696,7 @@ interface paths {
30204
30696
  put?: never;
30205
30697
  /**
30206
30698
  * Ensure full product (config-as-code converge of the whole FPO)
30207
- * @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). Whole-FPO fast-probe is not yet supported (PR3).
30699
+ * @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). Whole-FPO fast-probe is not yet supported (PR3). API keys converge each nested flow, agent, schedule, record, eval suite and skill only with that entity kind's own write scope (FLOWS:WRITE, AGENTS:WRITE or AGENTS:CREATE/UPDATE, SCHEDULES:WRITE, RECORDS:WRITE, EVALS:WRITE, SKILLS:WRITE) on top of the product scope; otherwise that entity reports `failed`. Binding a skill to an agent also needs agent update scope. Schedules also honor the plan's active-schedule limit and minimum frequency.
30208
30700
  */
30209
30701
  post: {
30210
30702
  parameters: {
@@ -30390,7 +30882,7 @@ interface paths {
30390
30882
  };
30391
30883
  /**
30392
30884
  * Pull full product (reconstruct the whole FPO from the live graph)
30393
- * @description Reconstruct a self-contained Full Product Object from the live product graph — the absorb-drift direction of ensure-fpo. Composes the per-entity pulls (product, backing flows/agents, surfaces) and mints deterministic FPO-local ids, so feeding the result back into POST /products/ensure-fpo converges to `unchanged`. records/schedules/secrets are NOT reconstructed and `tools` is emitted empty (tool refs are portable `tool:<name>`); see `warnings` for per-pull caveats. The contentHash is recomputed from the live graph, so it is accurate immediately after a dashboard edit.
30885
+ * @description Reconstruct a self-contained Full Product Object from the live product graph — the absorb-drift direction of ensure-fpo. Composes the per-entity pulls (product, backing flows/agents, surfaces) and mints deterministic FPO-local ids, so feeding the result back into POST /products/ensure-fpo converges to `unchanged`. records/schedules/secrets are NOT reconstructed and `tools` is emitted empty (tool refs are portable `tool:<name>`); see `warnings` for per-pull caveats. The contentHash is recomputed from the live graph, so it is accurate immediately after a dashboard edit. API keys need PRODUCTS:READ, plus FLOWS:READ, AGENTS:READ, SCHEDULES:READ, EVALS:READ or SKILLS:READ for each section the product carries.
30394
30886
  */
30395
30887
  get: {
30396
30888
  parameters: {
@@ -30494,6 +30986,8 @@ interface paths {
30494
30986
  configurationStatus?: unknown;
30495
30987
  configurationUrl?: string | null;
30496
30988
  createdAt: string;
30989
+ /** @description Who created the product; attribution only, never who owns or runs it (the organization does) */
30990
+ createdByUserId: string | null;
30497
30991
  dashboardUrl?: string;
30498
30992
  description: string | null;
30499
30993
  editorContext?: {
@@ -30502,10 +30996,24 @@ interface paths {
30502
30996
  };
30503
30997
  flowStepsMap: {
30504
30998
  [key: string]: {
30999
+ /** @description The stored step id, stable across reorders; absent when the step has none */
31000
+ id?: string;
30505
31001
  name: string;
30506
31002
  type: string;
30507
31003
  }[];
30508
31004
  };
31005
+ /** @description Published version id per capability flow or agent id; null when never published */
31006
+ publishedVersionIds?: {
31007
+ [key: string]: string | null;
31008
+ };
31009
+ /** @description Tool ids from each capability agent config (tools.toolIds) */
31010
+ toolIdsByAgent?: {
31011
+ [key: string]: string[];
31012
+ };
31013
+ /** @description Tool ids attached to the prompt steps of each capability flow */
31014
+ toolIdsByFlow?: {
31015
+ [key: string]: string[];
31016
+ };
30509
31017
  };
30510
31018
  icon: string | null;
30511
31019
  id: string;
@@ -30578,6 +31086,8 @@ interface paths {
30578
31086
  y: number;
30579
31087
  };
30580
31088
  };
31089
+ /** @description Product Canvas blocks in page order. Entries merge with the stored ones by id; stored entries the request leaves out are kept after the sent ones. Saving the description or stack stamps the overview block, saving the linked docs stamps the docs block, and a changed config stamps its own block. */
31090
+ blocks?: components["schemas"]["ProductCanvasBlock"][];
30581
31091
  capabilityOrder?: string[];
30582
31092
  capabilityPositions?: {
30583
31093
  [key: string]: number;
@@ -30647,7 +31157,10 @@ interface paths {
30647
31157
  internalDocs?: {
30648
31158
  content?: string;
30649
31159
  resources?: {
31160
+ addedAt?: string;
31161
+ addedByUserId?: string;
30650
31162
  content?: string;
31163
+ source?: string;
30651
31164
  title: string;
30652
31165
  type: string;
30653
31166
  url?: string;
@@ -30658,6 +31171,7 @@ interface paths {
30658
31171
  productGoal?: string;
30659
31172
  /** @enum {string} */
30660
31173
  productStage?: "idea" | "prototype" | "beta" | "production" | "scaling";
31174
+ stack?: components["schemas"]["ProductStack"];
30661
31175
  targetAudience?: string;
30662
31176
  techStack?: {
30663
31177
  backend?: string[];
@@ -30936,6 +31450,8 @@ interface paths {
30936
31450
  reasoningTokens?: number | null;
30937
31451
  /** @description Record this run processed. */
30938
31452
  recordId: string | null;
31453
+ /** @description The flow.id an inline /v1/dispatch named when the caller's organization does not own a flow with that id. Such a run executes as the "virtual" flow, so flowId reads "virtual" and this field carries the caller's id (control characters stripped, cut to 128 characters) so the caller can still recognise its runs. It is a label only: it grants nothing, is never used as a sender or resume identity, and is not a list filter; filter with flowId=virtual and match on this field. Absent when the run executed under the id it named. */
31454
+ requestedFlowId?: string | null;
30939
31455
  /** @description Retention removed the spans; the run still lists and reads as completed. */
30940
31456
  retentionElided?: boolean;
30941
31457
  /** @description Outermost run of the tree. */
@@ -31479,7 +31995,7 @@ interface paths {
31479
31995
  patch?: never;
31480
31996
  trace?: never;
31481
31997
  };
31482
- "/v1/products/{id}/configuration": {
31998
+ "/v1/products/{id}/comments": {
31483
31999
  parameters: {
31484
32000
  query?: never;
31485
32001
  header?: never;
@@ -31487,12 +32003,21 @@ interface paths {
31487
32003
  cookie?: never;
31488
32004
  };
31489
32005
  /**
31490
- * Get product configuration summary
31491
- * @description Get the secret configuration summary for a product. Never returns secret values — used to decide whether to show a "Configure secrets" prompt.
32006
+ * List product comments
32007
+ * @description List the comment threads on a product's canvas with their messages. Threads belong to the product's organization; a personal account's product has none.
31492
32008
  */
31493
32009
  get: {
31494
32010
  parameters: {
31495
- query?: never;
32011
+ query?: {
32012
+ /** @description Which threads to list; defaults to `all` */
32013
+ status?: "open" | "resolved" | "all";
32014
+ /** @description The newest threads to return, at most 500 (the default) */
32015
+ limit?: number;
32016
+ /** @description The `nextCursor` of the previous page: lists the threads older than that page */
32017
+ cursor?: string;
32018
+ /** @description Comma-separated thread ids, at most `limit` of them: lists only those threads, in their current state */
32019
+ ids?: string;
32020
+ };
31496
32021
  header?: never;
31497
32022
  path: {
31498
32023
  id: string;
@@ -31501,44 +32026,16 @@ interface paths {
31501
32026
  };
31502
32027
  requestBody?: never;
31503
32028
  responses: {
31504
- /** @description Configuration summary */
32029
+ /** @description Comment threads */
31505
32030
  200: {
31506
32031
  headers: {
31507
32032
  [name: string]: unknown;
31508
32033
  };
31509
32034
  content: {
31510
- "application/json": {
31511
- /** @enum {string} */
31512
- configurationStatus: "configured" | "needs_configuration" | "invalid";
31513
- configurationUrl: string;
31514
- handoff?: {
31515
- expiresAt?: string;
31516
- /** @enum {string} */
31517
- type: "url";
31518
- url: string;
31519
- };
31520
- pendingConfigurationCount: number;
31521
- productId: string;
31522
- productName: string;
31523
- requirements: {
31524
- description?: string | null;
31525
- displayName?: string | null;
31526
- docsUrl?: string;
31527
- helpText?: string;
31528
- itemId: string;
31529
- placeholder?: string;
31530
- /** @default true */
31531
- required: boolean;
31532
- secretId?: string;
31533
- secretKey: string;
31534
- /** @enum {string} */
31535
- status: "configured" | "needs_configuration" | "invalid";
31536
- version?: number;
31537
- }[];
31538
- };
32035
+ "application/json": components["schemas"]["ListProductCommentsResponse"];
31539
32036
  };
31540
32037
  };
31541
- /** @description Invalid product ID */
32038
+ /** @description Validation error */
31542
32039
  400: {
31543
32040
  headers: {
31544
32041
  [name: string]: unknown;
@@ -31556,237 +32053,607 @@ interface paths {
31556
32053
  "application/json": components["schemas"]["Error"];
31557
32054
  };
31558
32055
  };
31559
- /** @description Product not found */
31560
- 404: {
31561
- headers: {
31562
- [name: string]: unknown;
31563
- };
31564
- content: {
31565
- "application/json": components["schemas"]["Error"];
31566
- };
31567
- };
31568
- /** @description Internal server error */
31569
- 500: {
31570
- headers: {
31571
- [name: string]: unknown;
31572
- };
31573
- content: {
31574
- "application/json": components["schemas"]["Error"];
31575
- };
31576
- };
31577
- };
31578
- };
31579
- put?: never;
31580
- post?: never;
31581
- delete?: never;
31582
- options?: never;
31583
- head?: never;
31584
- patch?: never;
31585
- trace?: never;
31586
- };
31587
- "/v1/products/{id}/setup": {
31588
- parameters: {
31589
- query?: never;
31590
- header?: never;
31591
- path?: never;
31592
- cookie?: never;
31593
- };
31594
- /**
31595
- * Get product setup readiness
31596
- * @description Get structured, headless-first next steps to make a product live: pending secrets plus every surface's install steps, folded into a product-level readiness result. A sibling of the secrets-only configuration endpoint.
31597
- */
31598
- get: {
31599
- parameters: {
31600
- query?: never;
31601
- header?: never;
31602
- path: {
31603
- id: string;
31604
- };
31605
- cookie?: never;
31606
- };
31607
- requestBody?: never;
31608
- responses: {
31609
- /** @description Product setup readiness */
31610
- 200: {
31611
- headers: {
31612
- [name: string]: unknown;
31613
- };
31614
- content: {
31615
- "application/json": {
31616
- handoff?: {
31617
- reason: string;
31618
- /** @enum {string} */
31619
- rung: "browser";
31620
- summary: string;
31621
- url: string;
31622
- };
31623
- pendingCount: number;
31624
- productId: string;
31625
- productName: string;
31626
- /** @enum {string} */
31627
- state: "ready" | "needs_setup";
31628
- steps: {
31629
- alternatives?: ({
31630
- args: {
31631
- [key: string]: unknown;
31632
- };
31633
- pendingArgs?: {
31634
- [key: string]: string;
31635
- };
31636
- /** @enum {string} */
31637
- rung: "mcp_tool";
31638
- summary: string;
31639
- tool: string;
31640
- } | {
31641
- endpoint: string;
31642
- /** @enum {string} */
31643
- method: "PATCH" | "POST" | "PUT";
31644
- /** @enum {string} */
31645
- rung: "rest";
31646
- summary: string;
31647
- } | {
31648
- reason: string;
31649
- /** @enum {string} */
31650
- rung: "browser";
31651
- summary: string;
31652
- url: string;
31653
- } | {
31654
- /** @enum {string} */
31655
- rung: "satisfied";
31656
- })[];
31657
- docsUrl?: string;
31658
- fulfillment: {
31659
- args: {
31660
- [key: string]: unknown;
31661
- };
31662
- pendingArgs?: {
31663
- [key: string]: string;
31664
- };
31665
- /** @enum {string} */
31666
- rung: "mcp_tool";
31667
- summary: string;
31668
- tool: string;
31669
- } | {
31670
- endpoint: string;
31671
- /** @enum {string} */
31672
- method: "PATCH" | "POST" | "PUT";
31673
- /** @enum {string} */
31674
- rung: "rest";
31675
- summary: string;
31676
- } | {
31677
- reason: string;
31678
- /** @enum {string} */
31679
- rung: "browser";
31680
- summary: string;
31681
- url: string;
31682
- } | {
31683
- /** @enum {string} */
31684
- rung: "satisfied";
31685
- };
31686
- helpText?: string;
31687
- id: string;
31688
- /** @enum {string} */
31689
- kind: "secret" | "surface_install";
31690
- required: boolean;
31691
- secretKey?: string;
31692
- /** @enum {string} */
31693
- status: "satisfied" | "pending";
31694
- surfaceId?: string;
31695
- surfaceType?: string;
31696
- title: string;
31697
- }[];
31698
- surfaces: {
31699
- name: string;
31700
- pendingCount: number;
31701
- /** @enum {string} */
31702
- state: "ready" | "needs_setup";
31703
- steps: {
31704
- alternatives?: ({
31705
- args: {
31706
- [key: string]: unknown;
31707
- };
31708
- pendingArgs?: {
31709
- [key: string]: string;
31710
- };
31711
- /** @enum {string} */
31712
- rung: "mcp_tool";
31713
- summary: string;
31714
- tool: string;
31715
- } | {
31716
- endpoint: string;
31717
- /** @enum {string} */
31718
- method: "PATCH" | "POST" | "PUT";
31719
- /** @enum {string} */
31720
- rung: "rest";
31721
- summary: string;
31722
- } | {
31723
- reason: string;
31724
- /** @enum {string} */
31725
- rung: "browser";
31726
- summary: string;
31727
- url: string;
31728
- } | {
31729
- /** @enum {string} */
31730
- rung: "satisfied";
31731
- })[];
31732
- docsUrl?: string;
31733
- fulfillment: {
31734
- args: {
31735
- [key: string]: unknown;
31736
- };
31737
- pendingArgs?: {
31738
- [key: string]: string;
31739
- };
31740
- /** @enum {string} */
31741
- rung: "mcp_tool";
31742
- summary: string;
31743
- tool: string;
31744
- } | {
31745
- endpoint: string;
31746
- /** @enum {string} */
31747
- method: "PATCH" | "POST" | "PUT";
31748
- /** @enum {string} */
31749
- rung: "rest";
31750
- summary: string;
31751
- } | {
31752
- reason: string;
31753
- /** @enum {string} */
31754
- rung: "browser";
31755
- summary: string;
31756
- url: string;
31757
- } | {
31758
- /** @enum {string} */
31759
- rung: "satisfied";
31760
- };
31761
- helpText?: string;
31762
- id: string;
31763
- /** @enum {string} */
31764
- kind: "secret" | "surface_install";
31765
- required: boolean;
31766
- secretKey?: string;
31767
- /** @enum {string} */
31768
- status: "satisfied" | "pending";
31769
- surfaceId?: string;
31770
- surfaceType?: string;
31771
- title: string;
31772
- }[];
31773
- surfaceId: string;
31774
- surfaceType: string;
31775
- }[];
31776
- };
31777
- };
31778
- };
31779
- /** @description Invalid product ID */
31780
- 400: {
31781
- headers: {
31782
- [name: string]: unknown;
31783
- };
31784
- content: {
31785
- "application/json": components["schemas"]["Error"];
31786
- };
31787
- };
31788
- /** @description Unauthorized */
31789
- 401: {
32056
+ /** @description Insufficient permissions */
32057
+ 403: {
32058
+ headers: {
32059
+ [name: string]: unknown;
32060
+ };
32061
+ content: {
32062
+ "application/json": components["schemas"]["Error"];
32063
+ };
32064
+ };
32065
+ /** @description Product not found */
32066
+ 404: {
32067
+ headers: {
32068
+ [name: string]: unknown;
32069
+ };
32070
+ content: {
32071
+ "application/json": components["schemas"]["Error"];
32072
+ };
32073
+ };
32074
+ /** @description Internal server error */
32075
+ 500: {
32076
+ headers: {
32077
+ [name: string]: unknown;
32078
+ };
32079
+ content: {
32080
+ "application/json": components["schemas"]["Error"];
32081
+ };
32082
+ };
32083
+ };
32084
+ };
32085
+ put?: never;
32086
+ /**
32087
+ * Start a product comment thread
32088
+ * @description Start a comment thread on one element of the product canvas with its first comment. The author is the caller's credential.
32089
+ */
32090
+ post: {
32091
+ parameters: {
32092
+ query?: never;
32093
+ header?: never;
32094
+ path: {
32095
+ id: string;
32096
+ };
32097
+ cookie?: never;
32098
+ };
32099
+ requestBody: {
32100
+ content: {
32101
+ "application/json": components["schemas"]["CreateProductCommentThreadRequest"];
32102
+ };
32103
+ };
32104
+ responses: {
32105
+ /** @description Thread started */
32106
+ 201: {
32107
+ headers: {
32108
+ [name: string]: unknown;
32109
+ };
32110
+ content: {
32111
+ "application/json": components["schemas"]["ProductCommentThread"];
32112
+ };
32113
+ };
32114
+ /** @description Validation error */
32115
+ 400: {
32116
+ headers: {
32117
+ [name: string]: unknown;
32118
+ };
32119
+ content: {
32120
+ "application/json": components["schemas"]["Error"];
32121
+ };
32122
+ };
32123
+ /** @description Unauthorized */
32124
+ 401: {
32125
+ headers: {
32126
+ [name: string]: unknown;
32127
+ };
32128
+ content: {
32129
+ "application/json": components["schemas"]["Error"];
32130
+ };
32131
+ };
32132
+ /** @description Insufficient permissions */
32133
+ 403: {
32134
+ headers: {
32135
+ [name: string]: unknown;
32136
+ };
32137
+ content: {
32138
+ "application/json": components["schemas"]["Error"];
32139
+ };
32140
+ };
32141
+ /** @description Product not found */
32142
+ 404: {
32143
+ headers: {
32144
+ [name: string]: unknown;
32145
+ };
32146
+ content: {
32147
+ "application/json": components["schemas"]["Error"];
32148
+ };
32149
+ };
32150
+ /** @description Internal server error */
32151
+ 500: {
32152
+ headers: {
32153
+ [name: string]: unknown;
32154
+ };
32155
+ content: {
32156
+ "application/json": components["schemas"]["Error"];
32157
+ };
32158
+ };
32159
+ };
32160
+ };
32161
+ delete?: never;
32162
+ options?: never;
32163
+ head?: never;
32164
+ patch?: never;
32165
+ trace?: never;
32166
+ };
32167
+ "/v1/products/{id}/comments/threads/{threadId}": {
32168
+ parameters: {
32169
+ query?: never;
32170
+ header?: never;
32171
+ path?: never;
32172
+ cookie?: never;
32173
+ };
32174
+ get?: never;
32175
+ put?: never;
32176
+ post?: never;
32177
+ delete?: never;
32178
+ options?: never;
32179
+ head?: never;
32180
+ /**
32181
+ * Resolve a product comment thread
32182
+ * @description Resolve a thread, recording who resolved it and when, or open it again. Setting the state it already has changes nothing.
32183
+ */
32184
+ patch: {
32185
+ parameters: {
32186
+ query?: never;
32187
+ header?: never;
32188
+ path: {
32189
+ id: string;
32190
+ threadId: string;
32191
+ };
32192
+ cookie?: never;
32193
+ };
32194
+ requestBody: {
32195
+ content: {
32196
+ "application/json": components["schemas"]["UpdateProductCommentThreadRequest"];
32197
+ };
32198
+ };
32199
+ responses: {
32200
+ /** @description Thread updated */
32201
+ 200: {
32202
+ headers: {
32203
+ [name: string]: unknown;
32204
+ };
32205
+ content: {
32206
+ "application/json": components["schemas"]["ProductCommentThread"];
32207
+ };
32208
+ };
32209
+ /** @description Validation error */
32210
+ 400: {
32211
+ headers: {
32212
+ [name: string]: unknown;
32213
+ };
32214
+ content: {
32215
+ "application/json": components["schemas"]["Error"];
32216
+ };
32217
+ };
32218
+ /** @description Unauthorized */
32219
+ 401: {
32220
+ headers: {
32221
+ [name: string]: unknown;
32222
+ };
32223
+ content: {
32224
+ "application/json": components["schemas"]["Error"];
32225
+ };
32226
+ };
32227
+ /** @description Insufficient permissions */
32228
+ 403: {
32229
+ headers: {
32230
+ [name: string]: unknown;
32231
+ };
32232
+ content: {
32233
+ "application/json": components["schemas"]["Error"];
32234
+ };
32235
+ };
32236
+ /** @description Product or thread not found */
32237
+ 404: {
32238
+ headers: {
32239
+ [name: string]: unknown;
32240
+ };
32241
+ content: {
32242
+ "application/json": components["schemas"]["Error"];
32243
+ };
32244
+ };
32245
+ /** @description Internal server error */
32246
+ 500: {
32247
+ headers: {
32248
+ [name: string]: unknown;
32249
+ };
32250
+ content: {
32251
+ "application/json": components["schemas"]["Error"];
32252
+ };
32253
+ };
32254
+ };
32255
+ };
32256
+ trace?: never;
32257
+ };
32258
+ "/v1/products/{id}/comments/threads/{threadId}/messages": {
32259
+ parameters: {
32260
+ query?: never;
32261
+ header?: never;
32262
+ path?: never;
32263
+ cookie?: never;
32264
+ };
32265
+ get?: never;
32266
+ put?: never;
32267
+ /**
32268
+ * Reply in a product comment thread
32269
+ * @description Add a comment to a thread, resolved or not. `authorKind: assistant` posts the Assistant's answer to an `@assistant` mention, relayed by the caller's client.
32270
+ */
32271
+ post: {
32272
+ parameters: {
32273
+ query?: never;
32274
+ header?: never;
32275
+ path: {
32276
+ id: string;
32277
+ threadId: string;
32278
+ };
32279
+ cookie?: never;
32280
+ };
32281
+ requestBody: {
32282
+ content: {
32283
+ "application/json": components["schemas"]["CreateProductCommentRequest"];
32284
+ };
32285
+ };
32286
+ responses: {
32287
+ /** @description Comment added */
32288
+ 201: {
32289
+ headers: {
32290
+ [name: string]: unknown;
32291
+ };
32292
+ content: {
32293
+ "application/json": components["schemas"]["ProductComment"];
32294
+ };
32295
+ };
32296
+ /** @description Validation error */
32297
+ 400: {
32298
+ headers: {
32299
+ [name: string]: unknown;
32300
+ };
32301
+ content: {
32302
+ "application/json": components["schemas"]["Error"];
32303
+ };
32304
+ };
32305
+ /** @description Unauthorized */
32306
+ 401: {
32307
+ headers: {
32308
+ [name: string]: unknown;
32309
+ };
32310
+ content: {
32311
+ "application/json": components["schemas"]["Error"];
32312
+ };
32313
+ };
32314
+ /** @description Insufficient permissions */
32315
+ 403: {
32316
+ headers: {
32317
+ [name: string]: unknown;
32318
+ };
32319
+ content: {
32320
+ "application/json": components["schemas"]["Error"];
32321
+ };
32322
+ };
32323
+ /** @description Product or thread not found */
32324
+ 404: {
32325
+ headers: {
32326
+ [name: string]: unknown;
32327
+ };
32328
+ content: {
32329
+ "application/json": components["schemas"]["Error"];
32330
+ };
32331
+ };
32332
+ /** @description Internal server error */
32333
+ 500: {
32334
+ headers: {
32335
+ [name: string]: unknown;
32336
+ };
32337
+ content: {
32338
+ "application/json": components["schemas"]["Error"];
32339
+ };
32340
+ };
32341
+ };
32342
+ };
32343
+ delete?: never;
32344
+ options?: never;
32345
+ head?: never;
32346
+ patch?: never;
32347
+ trace?: never;
32348
+ };
32349
+ "/v1/products/{id}/configuration": {
32350
+ parameters: {
32351
+ query?: never;
32352
+ header?: never;
32353
+ path?: never;
32354
+ cookie?: never;
32355
+ };
32356
+ /**
32357
+ * Get product configuration summary
32358
+ * @description Get the secret configuration summary for a product. Never returns secret values — used to decide whether to show a "Configure secrets" prompt.
32359
+ */
32360
+ get: {
32361
+ parameters: {
32362
+ query?: never;
32363
+ header?: never;
32364
+ path: {
32365
+ id: string;
32366
+ };
32367
+ cookie?: never;
32368
+ };
32369
+ requestBody?: never;
32370
+ responses: {
32371
+ /** @description Configuration summary */
32372
+ 200: {
32373
+ headers: {
32374
+ [name: string]: unknown;
32375
+ };
32376
+ content: {
32377
+ "application/json": {
32378
+ /** @enum {string} */
32379
+ configurationStatus: "configured" | "needs_configuration" | "invalid";
32380
+ configurationUrl: string;
32381
+ handoff?: {
32382
+ expiresAt?: string;
32383
+ /** @enum {string} */
32384
+ type: "url";
32385
+ url: string;
32386
+ };
32387
+ pendingConfigurationCount: number;
32388
+ productId: string;
32389
+ productName: string;
32390
+ requirements: {
32391
+ description?: string | null;
32392
+ displayName?: string | null;
32393
+ docsUrl?: string;
32394
+ helpText?: string;
32395
+ itemId: string;
32396
+ placeholder?: string;
32397
+ /** @default true */
32398
+ required: boolean;
32399
+ secretId?: string;
32400
+ secretKey: string;
32401
+ /** @enum {string} */
32402
+ status: "configured" | "needs_configuration" | "invalid";
32403
+ version?: number;
32404
+ }[];
32405
+ };
32406
+ };
32407
+ };
32408
+ /** @description Invalid product ID */
32409
+ 400: {
32410
+ headers: {
32411
+ [name: string]: unknown;
32412
+ };
32413
+ content: {
32414
+ "application/json": components["schemas"]["Error"];
32415
+ };
32416
+ };
32417
+ /** @description Unauthorized */
32418
+ 401: {
32419
+ headers: {
32420
+ [name: string]: unknown;
32421
+ };
32422
+ content: {
32423
+ "application/json": components["schemas"]["Error"];
32424
+ };
32425
+ };
32426
+ /** @description Product not found */
32427
+ 404: {
32428
+ headers: {
32429
+ [name: string]: unknown;
32430
+ };
32431
+ content: {
32432
+ "application/json": components["schemas"]["Error"];
32433
+ };
32434
+ };
32435
+ /** @description Internal server error */
32436
+ 500: {
32437
+ headers: {
32438
+ [name: string]: unknown;
32439
+ };
32440
+ content: {
32441
+ "application/json": components["schemas"]["Error"];
32442
+ };
32443
+ };
32444
+ };
32445
+ };
32446
+ put?: never;
32447
+ post?: never;
32448
+ delete?: never;
32449
+ options?: never;
32450
+ head?: never;
32451
+ patch?: never;
32452
+ trace?: never;
32453
+ };
32454
+ "/v1/products/{id}/setup": {
32455
+ parameters: {
32456
+ query?: never;
32457
+ header?: never;
32458
+ path?: never;
32459
+ cookie?: never;
32460
+ };
32461
+ /**
32462
+ * Get product setup readiness
32463
+ * @description Get structured, headless-first next steps to make a product live: pending secrets plus every surface's install steps, folded into a product-level readiness result. A sibling of the secrets-only configuration endpoint.
32464
+ */
32465
+ get: {
32466
+ parameters: {
32467
+ query?: never;
32468
+ header?: never;
32469
+ path: {
32470
+ id: string;
32471
+ };
32472
+ cookie?: never;
32473
+ };
32474
+ requestBody?: never;
32475
+ responses: {
32476
+ /** @description Product setup readiness */
32477
+ 200: {
32478
+ headers: {
32479
+ [name: string]: unknown;
32480
+ };
32481
+ content: {
32482
+ "application/json": {
32483
+ handoff?: {
32484
+ reason: string;
32485
+ /** @enum {string} */
32486
+ rung: "browser";
32487
+ summary: string;
32488
+ url: string;
32489
+ };
32490
+ pendingCount: number;
32491
+ productId: string;
32492
+ productName: string;
32493
+ /** @enum {string} */
32494
+ state: "ready" | "needs_setup";
32495
+ steps: {
32496
+ alternatives?: ({
32497
+ args: {
32498
+ [key: string]: unknown;
32499
+ };
32500
+ pendingArgs?: {
32501
+ [key: string]: string;
32502
+ };
32503
+ /** @enum {string} */
32504
+ rung: "mcp_tool";
32505
+ summary: string;
32506
+ tool: string;
32507
+ } | {
32508
+ endpoint: string;
32509
+ /** @enum {string} */
32510
+ method: "PATCH" | "POST" | "PUT";
32511
+ /** @enum {string} */
32512
+ rung: "rest";
32513
+ summary: string;
32514
+ } | {
32515
+ reason: string;
32516
+ /** @enum {string} */
32517
+ rung: "browser";
32518
+ summary: string;
32519
+ url: string;
32520
+ } | {
32521
+ /** @enum {string} */
32522
+ rung: "satisfied";
32523
+ })[];
32524
+ docsUrl?: string;
32525
+ fulfillment: {
32526
+ args: {
32527
+ [key: string]: unknown;
32528
+ };
32529
+ pendingArgs?: {
32530
+ [key: string]: string;
32531
+ };
32532
+ /** @enum {string} */
32533
+ rung: "mcp_tool";
32534
+ summary: string;
32535
+ tool: string;
32536
+ } | {
32537
+ endpoint: string;
32538
+ /** @enum {string} */
32539
+ method: "PATCH" | "POST" | "PUT";
32540
+ /** @enum {string} */
32541
+ rung: "rest";
32542
+ summary: string;
32543
+ } | {
32544
+ reason: string;
32545
+ /** @enum {string} */
32546
+ rung: "browser";
32547
+ summary: string;
32548
+ url: string;
32549
+ } | {
32550
+ /** @enum {string} */
32551
+ rung: "satisfied";
32552
+ };
32553
+ helpText?: string;
32554
+ id: string;
32555
+ /** @enum {string} */
32556
+ kind: "secret" | "surface_install";
32557
+ required: boolean;
32558
+ secretKey?: string;
32559
+ /** @enum {string} */
32560
+ status: "satisfied" | "pending";
32561
+ surfaceId?: string;
32562
+ surfaceType?: string;
32563
+ title: string;
32564
+ }[];
32565
+ surfaces: {
32566
+ name: string;
32567
+ pendingCount: number;
32568
+ /** @enum {string} */
32569
+ state: "ready" | "needs_setup";
32570
+ steps: {
32571
+ alternatives?: ({
32572
+ args: {
32573
+ [key: string]: unknown;
32574
+ };
32575
+ pendingArgs?: {
32576
+ [key: string]: string;
32577
+ };
32578
+ /** @enum {string} */
32579
+ rung: "mcp_tool";
32580
+ summary: string;
32581
+ tool: string;
32582
+ } | {
32583
+ endpoint: string;
32584
+ /** @enum {string} */
32585
+ method: "PATCH" | "POST" | "PUT";
32586
+ /** @enum {string} */
32587
+ rung: "rest";
32588
+ summary: string;
32589
+ } | {
32590
+ reason: string;
32591
+ /** @enum {string} */
32592
+ rung: "browser";
32593
+ summary: string;
32594
+ url: string;
32595
+ } | {
32596
+ /** @enum {string} */
32597
+ rung: "satisfied";
32598
+ })[];
32599
+ docsUrl?: string;
32600
+ fulfillment: {
32601
+ args: {
32602
+ [key: string]: unknown;
32603
+ };
32604
+ pendingArgs?: {
32605
+ [key: string]: string;
32606
+ };
32607
+ /** @enum {string} */
32608
+ rung: "mcp_tool";
32609
+ summary: string;
32610
+ tool: string;
32611
+ } | {
32612
+ endpoint: string;
32613
+ /** @enum {string} */
32614
+ method: "PATCH" | "POST" | "PUT";
32615
+ /** @enum {string} */
32616
+ rung: "rest";
32617
+ summary: string;
32618
+ } | {
32619
+ reason: string;
32620
+ /** @enum {string} */
32621
+ rung: "browser";
32622
+ summary: string;
32623
+ url: string;
32624
+ } | {
32625
+ /** @enum {string} */
32626
+ rung: "satisfied";
32627
+ };
32628
+ helpText?: string;
32629
+ id: string;
32630
+ /** @enum {string} */
32631
+ kind: "secret" | "surface_install";
32632
+ required: boolean;
32633
+ secretKey?: string;
32634
+ /** @enum {string} */
32635
+ status: "satisfied" | "pending";
32636
+ surfaceId?: string;
32637
+ surfaceType?: string;
32638
+ title: string;
32639
+ }[];
32640
+ surfaceId: string;
32641
+ surfaceType: string;
32642
+ }[];
32643
+ };
32644
+ };
32645
+ };
32646
+ /** @description Invalid product ID */
32647
+ 400: {
32648
+ headers: {
32649
+ [name: string]: unknown;
32650
+ };
32651
+ content: {
32652
+ "application/json": components["schemas"]["Error"];
32653
+ };
32654
+ };
32655
+ /** @description Unauthorized */
32656
+ 401: {
31790
32657
  headers: {
31791
32658
  [name: string]: unknown;
31792
32659
  };
@@ -31822,6 +32689,96 @@ interface paths {
31822
32689
  patch?: never;
31823
32690
  trace?: never;
31824
32691
  };
32692
+ "/v1/products/{id}/stack/declared": {
32693
+ parameters: {
32694
+ query?: never;
32695
+ header?: never;
32696
+ path?: never;
32697
+ cookie?: never;
32698
+ };
32699
+ get?: never;
32700
+ /**
32701
+ * Declare product stack
32702
+ * @description Replace what one source declares the product is built on (frameworks, vector databases, upstream services, versions). The Overview shows declared items beside the ones detected from the product's own configuration. The actor is the caller's credential: a named API key reads as its name, anyone else by first name.
32703
+ */
32704
+ put: {
32705
+ parameters: {
32706
+ query?: never;
32707
+ header?: never;
32708
+ path: {
32709
+ id: string;
32710
+ };
32711
+ cookie?: never;
32712
+ };
32713
+ requestBody: {
32714
+ content: {
32715
+ "application/json": components["schemas"]["DeclareProductStackRequest"];
32716
+ };
32717
+ };
32718
+ responses: {
32719
+ /** @description Declaration stored */
32720
+ 200: {
32721
+ headers: {
32722
+ [name: string]: unknown;
32723
+ };
32724
+ content: {
32725
+ "application/json": components["schemas"]["DeclareProductStackResponse"];
32726
+ };
32727
+ };
32728
+ /** @description Validation error */
32729
+ 400: {
32730
+ headers: {
32731
+ [name: string]: unknown;
32732
+ };
32733
+ content: {
32734
+ "application/json": components["schemas"]["Error"];
32735
+ };
32736
+ };
32737
+ /** @description Unauthorized */
32738
+ 401: {
32739
+ headers: {
32740
+ [name: string]: unknown;
32741
+ };
32742
+ content: {
32743
+ "application/json": components["schemas"]["Error"];
32744
+ };
32745
+ };
32746
+ /** @description Insufficient permissions */
32747
+ 403: {
32748
+ headers: {
32749
+ [name: string]: unknown;
32750
+ };
32751
+ content: {
32752
+ "application/json": components["schemas"]["Error"];
32753
+ };
32754
+ };
32755
+ /** @description Product not found */
32756
+ 404: {
32757
+ headers: {
32758
+ [name: string]: unknown;
32759
+ };
32760
+ content: {
32761
+ "application/json": components["schemas"]["Error"];
32762
+ };
32763
+ };
32764
+ /** @description Internal server error */
32765
+ 500: {
32766
+ headers: {
32767
+ [name: string]: unknown;
32768
+ };
32769
+ content: {
32770
+ "application/json": components["schemas"]["Error"];
32771
+ };
32772
+ };
32773
+ };
32774
+ };
32775
+ post?: never;
32776
+ delete?: never;
32777
+ options?: never;
32778
+ head?: never;
32779
+ patch?: never;
32780
+ trace?: never;
32781
+ };
31825
32782
  "/v1/products/{id}/surfaces": {
31826
32783
  parameters: {
31827
32784
  query?: never;
@@ -32329,6 +33286,7 @@ interface paths {
32329
33286
  scopes: string[];
32330
33287
  usageCount: number | null;
32331
33288
  }[];
33289
+ lastModifiedSource: string | null;
32332
33290
  name: string;
32333
33291
  outbound?: unknown;
32334
33292
  productId: string;
@@ -32569,7 +33527,182 @@ interface paths {
32569
33527
  "application/json": components["schemas"]["Error"];
32570
33528
  };
32571
33529
  };
32572
- /** @description Product or surface not found */
33530
+ /** @description Product or surface not found */
33531
+ 404: {
33532
+ headers: {
33533
+ [name: string]: unknown;
33534
+ };
33535
+ content: {
33536
+ "application/json": components["schemas"]["Error"];
33537
+ };
33538
+ };
33539
+ /** @description Internal server error */
33540
+ 500: {
33541
+ headers: {
33542
+ [name: string]: unknown;
33543
+ };
33544
+ content: {
33545
+ "application/json": components["schemas"]["Error"];
33546
+ };
33547
+ };
33548
+ };
33549
+ };
33550
+ options?: never;
33551
+ head?: never;
33552
+ patch?: never;
33553
+ trace?: never;
33554
+ };
33555
+ "/v1/products/{id}/surfaces/{surfaceId}/configure-from-docs": {
33556
+ parameters: {
33557
+ query?: never;
33558
+ header?: never;
33559
+ path?: never;
33560
+ cookie?: never;
33561
+ };
33562
+ get?: never;
33563
+ put?: never;
33564
+ /**
33565
+ * Configure webhook from documentation
33566
+ * @description Trigger doc-crawling system flow to configure webhook schema from documentation URL. Not yet implemented.
33567
+ */
33568
+ post: {
33569
+ parameters: {
33570
+ query?: never;
33571
+ header?: never;
33572
+ path: {
33573
+ /** @description Product ID */
33574
+ id: string;
33575
+ /** @description Surface ID */
33576
+ surfaceId: string;
33577
+ };
33578
+ cookie?: never;
33579
+ };
33580
+ requestBody?: {
33581
+ content: {
33582
+ "application/json": {
33583
+ eventHint?: string;
33584
+ /** Format: uri */
33585
+ url: string;
33586
+ };
33587
+ };
33588
+ };
33589
+ responses: {
33590
+ /** @description Invalid request */
33591
+ 400: {
33592
+ headers: {
33593
+ [name: string]: unknown;
33594
+ };
33595
+ content: {
33596
+ "application/json": components["schemas"]["Error"];
33597
+ };
33598
+ };
33599
+ /** @description Unauthorized */
33600
+ 401: {
33601
+ headers: {
33602
+ [name: string]: unknown;
33603
+ };
33604
+ content: {
33605
+ "application/json": components["schemas"]["Error"];
33606
+ };
33607
+ };
33608
+ /** @description Not found */
33609
+ 404: {
33610
+ headers: {
33611
+ [name: string]: unknown;
33612
+ };
33613
+ content: {
33614
+ "application/json": components["schemas"]["Error"];
33615
+ };
33616
+ };
33617
+ /** @description Not yet implemented */
33618
+ 501: {
33619
+ headers: {
33620
+ [name: string]: unknown;
33621
+ };
33622
+ content: {
33623
+ "application/json": {
33624
+ error: string;
33625
+ eventHint: string | null;
33626
+ message: string;
33627
+ url: string;
33628
+ };
33629
+ };
33630
+ };
33631
+ };
33632
+ };
33633
+ delete?: never;
33634
+ options?: never;
33635
+ head?: never;
33636
+ patch?: never;
33637
+ trace?: never;
33638
+ };
33639
+ "/v1/products/{id}/surfaces/{surfaceId}/entry-point": {
33640
+ parameters: {
33641
+ query?: never;
33642
+ header?: never;
33643
+ path?: never;
33644
+ cookie?: never;
33645
+ };
33646
+ get?: never;
33647
+ /** Set the answering capability of a chat surface */
33648
+ put: {
33649
+ parameters: {
33650
+ query?: never;
33651
+ header?: never;
33652
+ path: {
33653
+ id: string;
33654
+ surfaceId: string;
33655
+ };
33656
+ cookie?: never;
33657
+ };
33658
+ requestBody?: {
33659
+ content: {
33660
+ "application/json": {
33661
+ capabilityId: string;
33662
+ };
33663
+ };
33664
+ };
33665
+ responses: {
33666
+ /** @description Entry point selected */
33667
+ 200: {
33668
+ headers: {
33669
+ [name: string]: unknown;
33670
+ };
33671
+ content: {
33672
+ "application/json": {
33673
+ capabilityId: string;
33674
+ itemId: string;
33675
+ };
33676
+ };
33677
+ };
33678
+ /** @description Invalid request */
33679
+ 400: {
33680
+ headers: {
33681
+ [name: string]: unknown;
33682
+ };
33683
+ content: {
33684
+ "application/json": components["schemas"]["Error"];
33685
+ };
33686
+ };
33687
+ /** @description Unauthorized */
33688
+ 401: {
33689
+ headers: {
33690
+ [name: string]: unknown;
33691
+ };
33692
+ content: {
33693
+ "application/json": components["schemas"]["Error"];
33694
+ };
33695
+ };
33696
+ /** @description Insufficient permissions */
33697
+ 403: {
33698
+ headers: {
33699
+ [name: string]: unknown;
33700
+ };
33701
+ content: {
33702
+ "application/json": components["schemas"]["Error"];
33703
+ };
33704
+ };
33705
+ /** @description Product, surface or capability not found */
32573
33706
  404: {
32574
33707
  headers: {
32575
33708
  [name: string]: unknown;
@@ -32589,89 +33722,7 @@ interface paths {
32589
33722
  };
32590
33723
  };
32591
33724
  };
32592
- options?: never;
32593
- head?: never;
32594
- patch?: never;
32595
- trace?: never;
32596
- };
32597
- "/v1/products/{id}/surfaces/{surfaceId}/configure-from-docs": {
32598
- parameters: {
32599
- query?: never;
32600
- header?: never;
32601
- path?: never;
32602
- cookie?: never;
32603
- };
32604
- get?: never;
32605
- put?: never;
32606
- /**
32607
- * Configure webhook from documentation
32608
- * @description Trigger doc-crawling system flow to configure webhook schema from documentation URL. Not yet implemented.
32609
- */
32610
- post: {
32611
- parameters: {
32612
- query?: never;
32613
- header?: never;
32614
- path: {
32615
- /** @description Product ID */
32616
- id: string;
32617
- /** @description Surface ID */
32618
- surfaceId: string;
32619
- };
32620
- cookie?: never;
32621
- };
32622
- requestBody?: {
32623
- content: {
32624
- "application/json": {
32625
- eventHint?: string;
32626
- /** Format: uri */
32627
- url: string;
32628
- };
32629
- };
32630
- };
32631
- responses: {
32632
- /** @description Invalid request */
32633
- 400: {
32634
- headers: {
32635
- [name: string]: unknown;
32636
- };
32637
- content: {
32638
- "application/json": components["schemas"]["Error"];
32639
- };
32640
- };
32641
- /** @description Unauthorized */
32642
- 401: {
32643
- headers: {
32644
- [name: string]: unknown;
32645
- };
32646
- content: {
32647
- "application/json": components["schemas"]["Error"];
32648
- };
32649
- };
32650
- /** @description Not found */
32651
- 404: {
32652
- headers: {
32653
- [name: string]: unknown;
32654
- };
32655
- content: {
32656
- "application/json": components["schemas"]["Error"];
32657
- };
32658
- };
32659
- /** @description Not yet implemented */
32660
- 501: {
32661
- headers: {
32662
- [name: string]: unknown;
32663
- };
32664
- content: {
32665
- "application/json": {
32666
- error: string;
32667
- eventHint: string | null;
32668
- message: string;
32669
- url: string;
32670
- };
32671
- };
32672
- };
32673
- };
32674
- };
33725
+ post?: never;
32675
33726
  delete?: never;
32676
33727
  options?: never;
32677
33728
  head?: never;
@@ -41391,6 +42442,7 @@ interface paths {
41391
42442
  cc?: string[];
41392
42443
  from?: string;
41393
42444
  html?: string;
42445
+ /** @description Managed sender local part. Must be an identity the account owns: its user id, `virtual`, or an owned `flow_`/`agent_` id; anything else is refused. Defaults to the caller's user id. */
41394
42446
  managedLocalPart?: string;
41395
42447
  rawFrom?: string;
41396
42448
  replyTo?: string;
@@ -46433,6 +47485,7 @@ interface paths {
46433
47485
  scopes: string[];
46434
47486
  usageCount: number | null;
46435
47487
  }[];
47488
+ lastModifiedSource: string | null;
46436
47489
  name: string;
46437
47490
  outbound?: unknown;
46438
47491
  productId: string;
@@ -49058,6 +50111,7 @@ interface paths {
49058
50111
  enableRuntypeApps: boolean;
49059
50112
  enableSelfServeOauthClients: boolean;
49060
50113
  enableVoice: boolean;
50114
+ enableWorkbench: boolean;
49061
50115
  enableWorkspaceModel: boolean;
49062
50116
  externalTelemetryAllowed?: boolean;
49063
50117
  modelCreditPromoMultiplier?: number;
@@ -50139,6 +51193,66 @@ interface components {
50139
51193
  /** @enum {string} */
50140
51194
  status: "pending" | "applied" | "settled" | "not_applied";
50141
51195
  };
51196
+ ContextBlocks: {
51197
+ blocks: {
51198
+ /** @description The block text, scrubbed of secrets. */
51199
+ content: string;
51200
+ /** @description The manifest entry hash this text belongs to. */
51201
+ hash: string;
51202
+ /** @description The block was cut at capture; `content` holds its head and tail. */
51203
+ truncated: boolean;
51204
+ }[];
51205
+ executionId: string;
51206
+ };
51207
+ ContextManifestEntry: {
51208
+ /** @enum {string} */
51209
+ category: "toolDefinitions" | "systemPrompt" | "recordContext" | "conversationHistory" | "toolResults" | "currentUserMessage";
51210
+ chars: number;
51211
+ /** @description chars / 4, never calibrated in storage. */
51212
+ estimatedTokens: number;
51213
+ /** @description The snapshot where this entry entered the window. */
51214
+ firstSeenSeq: number;
51215
+ flags: ("current" | "secret_scrubbed" | "unsized")[];
51216
+ /** @description Content address of the block: 16 hex chars of its SHA-256. */
51217
+ hash: string;
51218
+ /** @enum {string} */
51219
+ kind: "instructions" | "record" | "tool_definition" | "user_message" | "assistant_message" | "assistant_tool_call" | "reasoning" | "attachment" | "tool_result";
51220
+ /** @enum {string} */
51221
+ role: "system" | "user" | "assistant" | "tool";
51222
+ toolCallId?: string;
51223
+ toolName?: string;
51224
+ };
51225
+ ContextSnapshot: {
51226
+ cacheBreakpoints: number[];
51227
+ /** @description The run stored block text, readable from the blocks route. False under logging policy `redact`, and for runs recorded before block text was captured. */
51228
+ contentCaptured: boolean;
51229
+ entries: components["schemas"]["ContextManifestEntry"][];
51230
+ iteration: number | null;
51231
+ model: string | null;
51232
+ modelRequestSpanId: string;
51233
+ removedSincePrevious: {
51234
+ entry: components["schemas"]["ContextManifestEntry"];
51235
+ /** @enum {string} */
51236
+ reason: "pruned" | "compacted" | "reasoning_dropped" | "tool_item_dropped";
51237
+ }[];
51238
+ reported: {
51239
+ cacheReadTokens: number;
51240
+ cacheWriteTokens: number;
51241
+ inputTokens: number;
51242
+ } | null;
51243
+ requestIndex: number | null;
51244
+ /** @description Execution-wide request order; the key. */
51245
+ seq: number;
51246
+ startedAt: string;
51247
+ stepId: string | null;
51248
+ turnId: string | null;
51249
+ };
51250
+ ContextSnapshots: {
51251
+ executionId: string;
51252
+ snapshots: components["schemas"]["ContextSnapshot"][];
51253
+ /** @description The execution exceeded the span read ceiling; later requests are omitted. */
51254
+ truncated: boolean;
51255
+ };
50142
51256
  ConversationBusyError: {
50143
51257
  /** @enum {string} */
50144
51258
  code: "CONVERSATION_BUSY";
@@ -50271,6 +51385,323 @@ interface components {
50271
51385
  toolName: string;
50272
51386
  }[];
50273
51387
  };
51388
+ CreateProductCommentRequest: {
51389
+ /**
51390
+ * @description `assistant` when the caller's client posts the Assistant's answer to an `@assistant`; defaults to `user`
51391
+ * @enum {string}
51392
+ */
51393
+ authorKind?: "user" | "assistant";
51394
+ /** @description The comment text; backticks mark code and `@name` a mention */
51395
+ body: string;
51396
+ /** @description What the body names with `@`: `assistant`, or a teammate as their name was inserted */
51397
+ mentions?: string[];
51398
+ };
51399
+ CreateProductCommentThreadRequest: {
51400
+ /** @description The canvas element to comment on: `entity:<id>`, `step:<flow>/<step>`, `edge:<from>/<to>`, `block:<block>[/<key>]` */
51401
+ anchor: string;
51402
+ /** @description The comment text; backticks mark code and `@name` a mention */
51403
+ body: string;
51404
+ /** @description What the body names with `@`: `assistant`, or a teammate as their name was inserted */
51405
+ mentions?: string[];
51406
+ };
51407
+ CreateVoiceAgentDraftRequest: {
51408
+ config?: {
51409
+ advisor?: {
51410
+ model: string;
51411
+ systemPrompt?: string;
51412
+ } | null;
51413
+ artifacts?: {
51414
+ /** @enum {boolean} */
51415
+ enabled: true;
51416
+ types: ("markdown" | "component")[];
51417
+ };
51418
+ contextManagement?: {
51419
+ compaction?: {
51420
+ enabled?: boolean;
51421
+ instructions?: string;
51422
+ model?: string;
51423
+ retainRecentTokens?: number;
51424
+ /** @enum {string} */
51425
+ strategy?: "auto" | "provider_native" | "summary";
51426
+ thresholdRatio?: number;
51427
+ thresholdTokens?: number;
51428
+ };
51429
+ toolResults?: {
51430
+ /**
51431
+ * @deprecated
51432
+ * @description Deprecated and ignored. Tool results are never spilled.
51433
+ */
51434
+ inlineThresholdChars?: number;
51435
+ pruneHotWindowTokens?: number;
51436
+ /** @enum {string} */
51437
+ pruneMode?: "mask" | "off";
51438
+ };
51439
+ };
51440
+ durability?: {
51441
+ /** @enum {string} */
51442
+ forced?: "durable" | "in_process";
51443
+ maxBudgetMs?: number | null;
51444
+ watchLeaseMs?: number | null;
51445
+ };
51446
+ errorHandling?: {
51447
+ fallbacks?: ({
51448
+ delay?: number;
51449
+ /** @enum {string} */
51450
+ type: "retry";
51451
+ } | {
51452
+ delay?: number;
51453
+ maxTokens?: number;
51454
+ model: string;
51455
+ temperature?: number;
51456
+ /** @enum {string} */
51457
+ type: "model";
51458
+ } | {
51459
+ delay?: number;
51460
+ message: string;
51461
+ /** @enum {string} */
51462
+ type: "message";
51463
+ })[];
51464
+ /** @enum {string} */
51465
+ onError: "fail" | "continue" | "fallback";
51466
+ triggers?: {
51467
+ /** @enum {string} */
51468
+ type: "error" | "empty-output";
51469
+ }[];
51470
+ };
51471
+ frequencyPenalty?: number;
51472
+ /** @enum {string} */
51473
+ loggingPolicy?: "default" | "on" | "off";
51474
+ loopConfig?: {
51475
+ enableReflection?: boolean;
51476
+ maxCost?: number;
51477
+ maxTurns?: number;
51478
+ reflectionInterval?: number;
51479
+ treatLengthCutoffAsFailure?: boolean;
51480
+ };
51481
+ maxTokens?: number | null;
51482
+ memory?: {
51483
+ enabled: boolean;
51484
+ injectSummary?: boolean;
51485
+ /** @enum {string} */
51486
+ pointerScope?: "shared" | "alias" | "version";
51487
+ profileTemplate?: string;
51488
+ };
51489
+ model?: string;
51490
+ /** @enum {string} */
51491
+ piiRedaction?: "default" | "off" | "redact";
51492
+ presencePenalty?: number;
51493
+ reasoning?: boolean | {
51494
+ budgetTokens?: number;
51495
+ effort?: string;
51496
+ enabled: boolean;
51497
+ includeThoughts?: boolean;
51498
+ /** @enum {string} */
51499
+ reasoningEffort?: "minimal" | "low" | "medium" | "high" | "xhigh";
51500
+ /** @enum {string} */
51501
+ reasoningSummary?: "auto" | "detailed";
51502
+ thinkingBudget?: number;
51503
+ thinkingLevel?: string;
51504
+ };
51505
+ sandbox?: {
51506
+ /** @description Coding agents the Sandbox can run as typed sessions. Non-empty adds the agent_session_* tools; empty or absent adds none. */
51507
+ codingAgents?: "opencode"[];
51508
+ enabled: boolean;
51509
+ /**
51510
+ * @description Only standard-4 is supported on the hosted Agent Sandbox path; other sizes cannot be enabled.
51511
+ * @enum {string}
51512
+ */
51513
+ instanceType?: "standard-1" | "standard-2" | "standard-3" | "standard-4";
51514
+ networkAccess?: ("none" | "essentials" | "open") | {
51515
+ allow?: string[];
51516
+ /** @enum {string} */
51517
+ profile?: "none" | "essentials" | "open";
51518
+ };
51519
+ /**
51520
+ * @description Supported: ephemeral or conversation. Named remains parseable for stored configs but cannot be enabled.
51521
+ * @enum {string}
51522
+ */
51523
+ persistence?: "ephemeral" | "conversation" | "named";
51524
+ /**
51525
+ * @description Only runtype-sandbox is currently supported. Daytona is retained for stored-config parsing but rejected at authoring/execution.
51526
+ * @enum {string}
51527
+ */
51528
+ provider?: "runtype-sandbox" | "daytona";
51529
+ secretEnv?: {
51530
+ [key: string]: string;
51531
+ };
51532
+ setupCommands?: string[];
51533
+ /** @enum {string} */
51534
+ sleepAfter?: "5m" | "15m" | "30m" | "1h";
51535
+ /** @enum {string} */
51536
+ ttl?: "5m" | "1h" | "24h" | "unlimited";
51537
+ };
51538
+ seed?: number;
51539
+ state?: {
51540
+ initial?: {
51541
+ [key: string]: unknown;
51542
+ };
51543
+ /**
51544
+ * @default merge
51545
+ * @enum {string}
51546
+ */
51547
+ mergeStrategy: "replace" | "merge";
51548
+ predictState?: {
51549
+ stateKey: string;
51550
+ tool: string;
51551
+ toolArgument: string;
51552
+ }[];
51553
+ schema?: {
51554
+ [key: string]: unknown;
51555
+ };
51556
+ };
51557
+ systemPrompt?: string;
51558
+ temperature?: number;
51559
+ temporal?: {
51560
+ elapsedThresholdSeconds?: number;
51561
+ groundNow?: boolean;
51562
+ injectElapsed?: boolean;
51563
+ timezone?: string;
51564
+ };
51565
+ tenancyStrategy?: {
51566
+ assuranceFloor?: {
51567
+ /** @enum {string} */
51568
+ endUser?: "asserted" | "verified";
51569
+ /** @enum {string} */
51570
+ tenant?: "asserted" | "verified";
51571
+ };
51572
+ /** @enum {string} */
51573
+ preset: "internal" | "tenant-isolated" | "end-user-isolated";
51574
+ };
51575
+ tools?: {
51576
+ approval?: {
51577
+ choices?: {
51578
+ alwaysAllow?: boolean;
51579
+ alwaysDeny?: boolean;
51580
+ };
51581
+ requestReason?: boolean;
51582
+ require: string[] | boolean;
51583
+ timeout?: number;
51584
+ };
51585
+ codeModeConfig?: {
51586
+ description?: string;
51587
+ timeoutMs?: number;
51588
+ toolPool: string[];
51589
+ } | null;
51590
+ maxToolCalls?: number;
51591
+ mcpServers?: {
51592
+ allowedTools?: string[];
51593
+ auth?: {
51594
+ headerName?: string;
51595
+ headers?: {
51596
+ [key: string]: string;
51597
+ };
51598
+ password?: string;
51599
+ token?: string;
51600
+ /** @enum {string} */
51601
+ type: "api_key" | "bearer" | "basic" | "custom_header" | "headers" | "none";
51602
+ username?: string;
51603
+ };
51604
+ enabled?: boolean;
51605
+ id: string;
51606
+ name?: string;
51607
+ timeout?: number;
51608
+ /** @enum {string} */
51609
+ transport?: "streamable_http" | "rest";
51610
+ url: string;
51611
+ }[];
51612
+ perToolLimits?: {
51613
+ [key: string]: {
51614
+ maxCalls?: number;
51615
+ required?: boolean;
51616
+ };
51617
+ };
51618
+ runtimeTools?: {
51619
+ config: {
51620
+ [key: string]: unknown;
51621
+ };
51622
+ description: string;
51623
+ hiddenParameterNames?: string[];
51624
+ idempotent?: boolean;
51625
+ name: string;
51626
+ parametersSchema: {
51627
+ [key: string]: unknown;
51628
+ };
51629
+ /** @enum {string} */
51630
+ toolType: "flow" | "custom" | "external" | "local" | "advisor" | "subagent" | "search";
51631
+ }[];
51632
+ subagentConfig?: {
51633
+ allowNesting?: boolean;
51634
+ /** @enum {string} */
51635
+ defaultExecutionMode?: "attached" | "detached";
51636
+ defaultMaxTurns?: number;
51637
+ defaultModel?: string;
51638
+ /** @enum {string} */
51639
+ defaultNotify?: "none" | "narrate" | "react";
51640
+ defaultTimeoutMs?: number;
51641
+ detachedMaxBudgetMs?: number;
51642
+ detachedNoProgressBudgetMs?: number;
51643
+ executionModes?: ("attached" | "detached")[];
51644
+ maxSpawnsPerRun?: number;
51645
+ maxTurnsLimit?: number;
51646
+ toolPool: string[];
51647
+ } | null;
51648
+ /** @enum {string} */
51649
+ toolCallStrategy?: "auto" | "required" | "none";
51650
+ toolConfigs?: {
51651
+ [key: string]: {
51652
+ [key: string]: unknown;
51653
+ };
51654
+ };
51655
+ toolIds?: string[];
51656
+ };
51657
+ topK?: number;
51658
+ topP?: number;
51659
+ voice?: {
51660
+ elevenLabs?: {
51661
+ modelId?: string;
51662
+ similarity?: number;
51663
+ stability?: number;
51664
+ voiceId?: string;
51665
+ };
51666
+ enabled?: boolean;
51667
+ endpointing?: {
51668
+ silenceMs?: number;
51669
+ /** @enum {string} */
51670
+ strategy: "provider_vad" | "server_vad" | "client_commit" | "manual";
51671
+ };
51672
+ greeting?: string;
51673
+ /** @enum {string} */
51674
+ interruptionMode?: "none" | "cancel" | "barge-in";
51675
+ language?: string;
51676
+ provider?: string;
51677
+ speech?: {
51678
+ /** @enum {string} */
51679
+ mode: "pipeline" | "speech_to_speech" | "provider_managed";
51680
+ synthesizer: {
51681
+ model?: string;
51682
+ provider: string;
51683
+ settings?: {
51684
+ similarity?: number;
51685
+ stability?: number;
51686
+ };
51687
+ voiceId?: string;
51688
+ };
51689
+ transcriber: {
51690
+ model?: string;
51691
+ provider: string;
51692
+ };
51693
+ };
51694
+ };
51695
+ };
51696
+ description?: string;
51697
+ name?: string;
51698
+ };
51699
+ CreateVoiceAgentDraftResponse: {
51700
+ /** @description Pass as the `agentDraftId` query parameter when opening `/ws/agents/{id}/voice` to run this draft. */
51701
+ draftId: string;
51702
+ /** @description After this time the draft can no longer start a call. A call already running keeps it. */
51703
+ expiresAt: string;
51704
+ };
50274
51705
  DailyUsageResponse: {
50275
51706
  daily?: {
50276
51707
  atSpendLimit: boolean;
@@ -50315,6 +51746,22 @@ interface components {
50315
51746
  tier: string;
50316
51747
  };
50317
51748
  };
51749
+ DeclareProductStackRequest: {
51750
+ /** @description Everything this source says the product is built on. Replaces the previous declaration from the same source whole; an empty list clears it. Keys follow the detected ones (model:<id>, data:<engine>, runtime:<name>, integration:<id>) so a declared item and a detected one show once, else custom:<slug>. */
51751
+ items: components["schemas"]["ProductStackItem"][];
51752
+ /**
51753
+ * @description Where the declaration comes from: the Runtype MCP server, the CLI, or the API
51754
+ * @enum {string}
51755
+ */
51756
+ source: "mcp" | "cli" | "api";
51757
+ };
51758
+ DeclareProductStackResponse: {
51759
+ declaration: components["schemas"]["ProductDeclaredStack"];
51760
+ productId: string;
51761
+ /** @enum {string} */
51762
+ source: "mcp" | "cli" | "api";
51763
+ stack: components["schemas"]["ProductStack"];
51764
+ };
50318
51765
  DecomposeCriteriaRequest: {
50319
51766
  /** @description One plain-language AI-grader criterion to split into focused sub-checks. */
50320
51767
  criteria: string;
@@ -51752,6 +53199,14 @@ interface components {
51752
53199
  */
51753
53200
  source: "eval_suite" | "customer";
51754
53201
  };
53202
+ ListProductCommentsResponse: {
53203
+ /** @description True when older threads were left out by `limit` */
53204
+ hasMore: boolean;
53205
+ /** @description Pass as `cursor` to list the threads older than this page; null once none are left */
53206
+ nextCursor: string | null;
53207
+ /** @description Oldest first: the newest `limit` threads */
53208
+ threads: components["schemas"]["ProductCommentThread"][];
53209
+ };
51755
53210
  ManagedAgentRunOutput: {
51756
53211
  anthropicFileId: string;
51757
53212
  /** @description Asset-storage key the bytes were persisted to. */
@@ -51819,6 +53274,62 @@ interface components {
51819
53274
  /** @enum {string} */
51820
53275
  scope: "organization" | "agent";
51821
53276
  };
53277
+ ProductCanvasBlock: {
53278
+ /** @description When the block was added; set by the server */
53279
+ readonly addedAt?: string;
53280
+ /** @description Who added the block (blocks people add only); set by the server */
53281
+ readonly addedByUserId?: string;
53282
+ /** @description Block-owned settings; absent keeps the stored config */
53283
+ config?: {
53284
+ [key: string]: unknown;
53285
+ };
53286
+ /** @description When that save happened; set by the server */
53287
+ readonly editedAt?: string;
53288
+ /** @description Who last saved a change to what the block shows; set by the server */
53289
+ readonly editedByUserId?: string;
53290
+ /** @description True hides the block; absent or false shows it */
53291
+ hidden?: boolean;
53292
+ /** @description Stable block id; comment anchors read `block:<id>` */
53293
+ id: string;
53294
+ /** @description Block kind, e.g. overview, get-started, docs, architecture, cost, recent-runs, notes */
53295
+ kind: string;
53296
+ };
53297
+ ProductComment: {
53298
+ /**
53299
+ * @description `assistant` for an answer to an `@assistant` mention, else `user`
53300
+ * @enum {string}
53301
+ */
53302
+ authorKind: "user" | "assistant";
53303
+ /** @description The name it was posted under: the person's first name, the API key's name, or `Assistant` */
53304
+ authorLabel: string;
53305
+ /** @description Who posted it (for an assistant answer, whose client relayed it); null once that person's account is deleted */
53306
+ authorUserId: string | null;
53307
+ body: string;
53308
+ createdAt: string;
53309
+ id: string;
53310
+ mentions: string[];
53311
+ threadId: string;
53312
+ };
53313
+ ProductCommentThread: {
53314
+ /** @description The canvas element the thread is on; the thread outlives it when that element is removed */
53315
+ anchor: string;
53316
+ createdAt: string;
53317
+ createdByUserId: string | null;
53318
+ id: string;
53319
+ /** @description Oldest first */
53320
+ messages: components["schemas"]["ProductComment"][];
53321
+ productId: string;
53322
+ resolved: boolean;
53323
+ resolvedAt: string | null;
53324
+ resolvedByUserId: string | null;
53325
+ updatedAt: string;
53326
+ };
53327
+ ProductDeclaredStack: {
53328
+ actorLabel: string;
53329
+ actorUserId?: string;
53330
+ declaredAt: string;
53331
+ items: components["schemas"]["ProductStackItem"][];
53332
+ };
51822
53333
  ProductEnsureConflict: {
51823
53334
  /** @enum {string} */
51824
53335
  code: "external_modification" | "remote_changed";
@@ -51910,7 +53421,10 @@ interface components {
51910
53421
  internalDocs?: {
51911
53422
  content?: string;
51912
53423
  resources?: {
53424
+ addedAt?: string;
53425
+ addedByUserId?: string;
51913
53426
  content?: string;
53427
+ source?: string;
51914
53428
  title: string;
51915
53429
  type: string;
51916
53430
  url?: string;
@@ -51937,6 +53451,40 @@ interface components {
51937
53451
  productId: string;
51938
53452
  updatedAt: string | null;
51939
53453
  };
53454
+ /** @description The Overview's stack. The legacy techStack buckets are separate and unchanged. */
53455
+ ProductStack: {
53456
+ /** @description The last declaration from each source; a product save keeps it as stored */
53457
+ readonly declared?: {
53458
+ api?: components["schemas"]["ProductDeclaredStack"];
53459
+ cli?: components["schemas"]["ProductDeclaredStack"];
53460
+ mcp?: components["schemas"]["ProductDeclaredStack"];
53461
+ };
53462
+ /** @description What the last detection derived; a product save keeps it as stored */
53463
+ readonly detected?: {
53464
+ derivedAt: string;
53465
+ items: components["schemas"]["ProductStackItem"][];
53466
+ };
53467
+ /** @description Keys of detected or declared chips people hid; replaces the stored list */
53468
+ hidden?: string[];
53469
+ /** @description When each hidden key was hidden; set by the server */
53470
+ readonly hiddenAt?: {
53471
+ [key: string]: string;
53472
+ };
53473
+ /** @description Chips people added by hand; replaces the stored list */
53474
+ manual?: components["schemas"]["ProductStackItem"][];
53475
+ };
53476
+ ProductStackItem: {
53477
+ category?: string;
53478
+ /** @description Stable chip key, e.g. model:claude-sonnet-5 or custom:inngest */
53479
+ key: string;
53480
+ label: string;
53481
+ /** @description Brand or provider mark id the dashboard draws */
53482
+ mark?: string;
53483
+ url?: string;
53484
+ version?: string;
53485
+ /** @description Where a detected item was found */
53486
+ where?: string;
53487
+ };
51940
53488
  QuestionSet: {
51941
53489
  createdAt: string;
51942
53490
  createdByUserId: string | null;
@@ -52170,6 +53718,8 @@ interface components {
52170
53718
  reasoningTokens?: number | null;
52171
53719
  /** @description Record this run processed. */
52172
53720
  recordId: string | null;
53721
+ /** @description The flow.id an inline /v1/dispatch named when the caller's organization does not own a flow with that id. Such a run executes as the "virtual" flow, so flowId reads "virtual" and this field carries the caller's id (control characters stripped, cut to 128 characters) so the caller can still recognise its runs. It is a label only: it grants nothing, is never used as a sender or resume identity, and is not a list filter; filter with flowId=virtual and match on this field. Absent when the run executed under the id it named. */
53722
+ requestedFlowId?: string | null;
52173
53723
  /** @description Retention removed the spans; the run still lists and reads as completed. */
52174
53724
  retentionElided?: boolean;
52175
53725
  /** @description Outermost run of the tree. */
@@ -52637,6 +54187,10 @@ interface components {
52637
54187
  reason: "record_limit";
52638
54188
  };
52639
54189
  };
54190
+ UpdateProductCommentThreadRequest: {
54191
+ /** @description True resolves the thread, false opens it again */
54192
+ resolved: boolean;
54193
+ };
52640
54194
  UpdateUserProfileResponse: {
52641
54195
  email?: string;
52642
54196
  firstName?: string;
@@ -58866,7 +60420,7 @@ interface AgentDefinitionConfig {
58866
60420
  toolIds?: string[];
58867
60421
  toolConfigs?: Record<string, Record<string, unknown>>;
58868
60422
  runtimeTools?: Array<Record<string, unknown>>;
58869
- mcpServers?: Array<Record<string, unknown>>;
60423
+ mcpServers?: CustomMCPServer[];
58870
60424
  maxToolCalls?: number;
58871
60425
  toolCallStrategy?: 'auto' | 'required' | 'none';
58872
60426
  approval?: {
@@ -59185,6 +60739,12 @@ interface RunListRow {
59185
60739
  * saved definition by reference. NULL when the header states nothing.
59186
60740
  */
59187
60741
  inlineDefinition: boolean | null;
60742
+ /**
60743
+ * The `flow.id` an inline dispatch named when your organization owns no flow with
60744
+ * that id. The run executes as the `virtual` flow, so `flowId` reads `virtual`;
60745
+ * match on this label to find those runs. A label only, never an identity.
60746
+ */
60747
+ requestedFlowId?: string | null;
59188
60748
  /**
59189
60749
  * True when the run came from the dashboard (`origin === 'dashboard'`), such
59190
60750
  * as an editor test.
@@ -59830,6 +61390,275 @@ declare class SurfacesNamespace {
59830
61390
  pull(productId: string, name: string): Promise<SurfacePullResult>;
59831
61391
  }
59832
61392
 
61393
+ /**
61394
+ * Client Token Types
61395
+ *
61396
+ * Types for the client tokens system that enables secure browser-to-API communication.
61397
+ *
61398
+ * Note: These types are inlined from the internal shared package to avoid
61399
+ * requiring users to install @runtypelabs/shared.
61400
+ */
61401
+ /**
61402
+ * Environment for a client token
61403
+ */
61404
+ type ClientTokenEnvironment = 'test' | 'live';
61405
+ /**
61406
+ * Version pinning options for client tokens
61407
+ */
61408
+ type ClientTokenVersionPin = 'latest' | 'published' | string;
61409
+ /**
61410
+ * Theme configuration for the client widget
61411
+ */
61412
+ interface ClientWidgetTheme {
61413
+ /** Primary brand color */
61414
+ primaryColor?: string;
61415
+ /** Background color */
61416
+ backgroundColor?: string;
61417
+ /** Text color */
61418
+ textColor?: string;
61419
+ /** Font family */
61420
+ fontFamily?: string;
61421
+ /** Border radius for elements */
61422
+ borderRadius?: string;
61423
+ /** Light or dark mode */
61424
+ mode?: 'light' | 'dark';
61425
+ }
61426
+ /**
61427
+ * Client token configuration (theme, welcome message, etc.)
61428
+ */
61429
+ interface ClientTokenConfig {
61430
+ /** Welcome message shown when widget opens */
61431
+ welcomeMessage?: string;
61432
+ /** Input placeholder text */
61433
+ placeholder?: string;
61434
+ /** Theme configuration */
61435
+ theme?: ClientWidgetTheme;
61436
+ /** Custom data passed to flows */
61437
+ customData?: Record<string, unknown>;
61438
+ /**
61439
+ * Durable-turn opt-in for a token with no product surface. A surface-bound
61440
+ * token reads the surface's `behavior.durableTurns` instead and ignores this.
61441
+ */
61442
+ durableTurns?: {
61443
+ /** Defaults to false when absent. */
61444
+ enabled?: boolean;
61445
+ };
61446
+ }
61447
+ /**
61448
+ * Client token data returned from the API
61449
+ */
61450
+ interface ClientToken {
61451
+ id: string;
61452
+ name: string | null;
61453
+ flowIds: string[];
61454
+ defaultFlowId: string | null;
61455
+ agentIds: string[];
61456
+ allowedOrigins: string[];
61457
+ environment: ClientTokenEnvironment;
61458
+ pinToVersion: ClientTokenVersionPin | null;
61459
+ /** Release alias this token follows, re-resolved on every admission (ADR 0025). */
61460
+ targetAlias: string | null;
61461
+ /** Exact agent version this token is pinned to (ADR 0025). */
61462
+ targetVersionId: string | null;
61463
+ rateLimitPerMinute: number | null;
61464
+ rateLimitPerHour: number | null;
61465
+ maxMessagesPerSession: number | null;
61466
+ sessionIdleTimeoutMinutes: number | null;
61467
+ config: ClientTokenConfig;
61468
+ isActive: boolean;
61469
+ tokenPrefix: string;
61470
+ tokenHint: string | null;
61471
+ /** Publishable token value. Null for legacy rows until regenerated. */
61472
+ tokenValue: string | null;
61473
+ /** Product chat surface this token was minted for, when surface-bound. */
61474
+ productSurfaceId?: string | null;
61475
+ conversationCount?: number;
61476
+ lastUsedAt: string | null;
61477
+ createdAt: string;
61478
+ updatedAt: string;
61479
+ }
61480
+ /**
61481
+ * Request to create a client token
61482
+ */
61483
+ interface CreateClientTokenRequest {
61484
+ name: string;
61485
+ flowIds?: string[];
61486
+ defaultFlowId?: string;
61487
+ agentIds?: string[];
61488
+ allowedOrigins: string[];
61489
+ environment?: ClientTokenEnvironment;
61490
+ pinToVersion?: ClientTokenVersionPin;
61491
+ /** Release alias this token follows. Mutually exclusive with `targetVersionId`. */
61492
+ targetAlias?: string | null;
61493
+ /** Exact agent version this token pins. Mutually exclusive with `targetAlias`. */
61494
+ targetVersionId?: string | null;
61495
+ rateLimitPerMinute?: number;
61496
+ rateLimitPerHour?: number;
61497
+ maxMessagesPerSession?: number;
61498
+ sessionIdleTimeoutMinutes?: number;
61499
+ config?: ClientTokenConfig;
61500
+ productSurfaceId?: string;
61501
+ }
61502
+ /**
61503
+ * Request to update a client token
61504
+ */
61505
+ interface UpdateClientTokenRequest {
61506
+ name?: string;
61507
+ flowIds?: string[];
61508
+ defaultFlowId?: string;
61509
+ agentIds?: string[];
61510
+ allowedOrigins?: string[];
61511
+ pinToVersion?: ClientTokenVersionPin;
61512
+ /** Release alias this token follows. Mutually exclusive with `targetVersionId`. */
61513
+ targetAlias?: string | null;
61514
+ /** Exact agent version this token pins. Mutually exclusive with `targetAlias`. */
61515
+ targetVersionId?: string | null;
61516
+ rateLimitPerMinute?: number;
61517
+ rateLimitPerHour?: number;
61518
+ maxMessagesPerSession?: number;
61519
+ sessionIdleTimeoutMinutes?: number;
61520
+ config?: ClientTokenConfig;
61521
+ isActive?: boolean;
61522
+ }
61523
+ /**
61524
+ * Security warning for token configuration
61525
+ */
61526
+ interface SecurityWarning {
61527
+ type: string;
61528
+ message: string;
61529
+ }
61530
+ /**
61531
+ * Response from creating a client token
61532
+ */
61533
+ interface CreateClientTokenResponse {
61534
+ clientToken: ClientToken;
61535
+ /** The plain token value - only shown once! */
61536
+ token: string;
61537
+ warnings: SecurityWarning[];
61538
+ }
61539
+ /**
61540
+ * Conversation record from the API
61541
+ */
61542
+ interface ClientConversation {
61543
+ id: string;
61544
+ name: string;
61545
+ flowId: string;
61546
+ origin: string;
61547
+ messageCount: number;
61548
+ firstMessage: string | null;
61549
+ createdAt: string;
61550
+ updatedAt: string;
61551
+ }
61552
+ /**
61553
+ * List conversations response
61554
+ */
61555
+ interface ListConversationsResponse {
61556
+ conversations: ClientConversation[];
61557
+ pagination: {
61558
+ limit: number;
61559
+ offset: number;
61560
+ hasMore: boolean;
61561
+ };
61562
+ }
61563
+
61564
+ /**
61565
+ * The desired state of a client token, keyed by `name`. Capabilities, origins,
61566
+ * and target always converge; limits and `config` converge only when set.
61567
+ */
61568
+ interface ClientTokenDefinition {
61569
+ name: string;
61570
+ agentIds?: string[];
61571
+ flowIds?: string[];
61572
+ defaultFlowId?: string;
61573
+ allowedOrigins: string[];
61574
+ /** Fixed at creation; a mismatch with the existing token throws. */
61575
+ environment?: ClientTokenEnvironment;
61576
+ /** Absent clears any alias the token follows. */
61577
+ targetAlias?: string | null;
61578
+ /** Absent clears any version the token pins. */
61579
+ targetVersionId?: string | null;
61580
+ rateLimitPerMinute?: number;
61581
+ rateLimitPerHour?: number;
61582
+ maxMessagesPerSession?: number;
61583
+ sessionIdleTimeoutMinutes?: number;
61584
+ config?: ClientTokenConfig;
61585
+ /** Fixed at creation; a mismatch with the existing token throws. */
61586
+ productSurfaceId?: string;
61587
+ }
61588
+ interface EnsureClientTokenOptions {
61589
+ /** Plan without writing. */
61590
+ dryRun?: boolean;
61591
+ /** Implies dryRun; throws ClientTokenDriftError unless the plan is 'none'. */
61592
+ expectNoChanges?: boolean;
61593
+ }
61594
+ interface EnsureClientTokenConverged {
61595
+ result: 'created' | 'updated' | 'unchanged';
61596
+ clientToken: ClientToken;
61597
+ /** The publishable value, or null for a reveal-once live token (regenerate to get a new one). */
61598
+ token: string | null;
61599
+ changedKeys: string[];
61600
+ warnings: SecurityWarning[];
61601
+ }
61602
+ interface EnsureClientTokenPlan {
61603
+ result: 'plan';
61604
+ changes: 'none' | 'create' | 'update';
61605
+ changedKeys: string[];
61606
+ /** Absent when the plan is 'create'. */
61607
+ clientToken?: ClientToken;
61608
+ }
61609
+ type EnsureClientTokenResult = EnsureClientTokenConverged | EnsureClientTokenPlan;
61610
+ /** The definition cannot converge onto the existing token without deleting it. */
61611
+ declare class ClientTokenEnsureError extends Error {
61612
+ constructor(message: string);
61613
+ }
61614
+ declare class ClientTokenDriftError extends Error {
61615
+ readonly plan: EnsureClientTokenPlan;
61616
+ constructor(name: string, plan: EnsureClientTokenPlan);
61617
+ }
61618
+ /**
61619
+ * Client tokens — publishable, origin-restricted credentials for browser and
61620
+ * native widgets. `ensure` is the config-as-code entry point.
61621
+ */
61622
+ declare class ClientTokensNamespace {
61623
+ private getClient;
61624
+ constructor(getClient: () => RuntypeClient$1);
61625
+ list(): Promise<ClientToken[]>;
61626
+ get(id: string): Promise<ClientToken>;
61627
+ /** The response's `token` is the publishable value. */
61628
+ create(data: CreateClientTokenRequest): Promise<CreateClientTokenResponse>;
61629
+ update(id: string, data: UpdateClientTokenRequest): Promise<{
61630
+ clientToken: ClientToken;
61631
+ warnings: SecurityWarning[];
61632
+ }>;
61633
+ delete(id: string): Promise<void>;
61634
+ /** Issue a new value; the previous value stops working immediately. */
61635
+ regenerate(id: string): Promise<CreateClientTokenResponse>;
61636
+ /** Read a stored token value. Fails for a reveal-once live token. */
61637
+ getToken(id: string): Promise<{
61638
+ token: string;
61639
+ }>;
61640
+ listConversations(id: string, params?: {
61641
+ limit?: number;
61642
+ offset?: number;
61643
+ }): Promise<ListConversationsResponse>;
61644
+ /**
61645
+ * Find the token named `definition.name`, create it when missing, and update
61646
+ * it when it differs. Never deletes or regenerates. Throws when two tokens
61647
+ * share the name, or when the environment or surface differs.
61648
+ *
61649
+ * @example
61650
+ * ```typescript
61651
+ * const agent = await Runtype.agents.ensure(docsAgent, { deploy: { alias: 'live' } })
61652
+ * const { token } = await Runtype.clientTokens.ensure({
61653
+ * name: 'Docs site widget',
61654
+ * agentIds: [agent.agentId],
61655
+ * allowedOrigins: ['https://docs.example.com'],
61656
+ * })
61657
+ * ```
61658
+ */
61659
+ ensure(definition: ClientTokenDefinition, options?: EnsureClientTokenOptions): Promise<EnsureClientTokenResult>;
61660
+ }
61661
+
59833
61662
  /**
59834
61663
  * Transparent reconnect for a DETACHED agent stream (ADR 0020 point 6;
59835
61664
  * blueprint `2026-08-25-durable-by-default-agent-turns.md` §4).
@@ -60330,6 +62159,22 @@ declare class Runtype {
60330
62159
  * ```
60331
62160
  */
60332
62161
  static get surfaces(): SurfacesNamespace;
62162
+ /**
62163
+ * Client tokens — publishable credentials for widgets. `ensure` finds a token
62164
+ * by name, creates it when missing, and converges its agents, flows, origins,
62165
+ * and target; it returns the token value when the token stores one.
62166
+ *
62167
+ * @example
62168
+ * ```typescript
62169
+ * const agent = await Runtype.agents.ensure(docsAgent, { deploy: { alias: 'live' } })
62170
+ * const { token } = await Runtype.clientTokens.ensure({
62171
+ * name: 'Docs site widget',
62172
+ * agentIds: [agent.agentId],
62173
+ * allowedOrigins: ['https://docs.example.com'],
62174
+ * })
62175
+ * ```
62176
+ */
62177
+ static get clientTokens(): ClientTokensNamespace;
60333
62178
  }
60334
62179
 
60335
62180
  /**
@@ -60625,177 +62470,6 @@ interface ApiKeyRequestListParams {
60625
62470
  cursor?: string;
60626
62471
  }
60627
62472
 
60628
- /**
60629
- * Client Token Types
60630
- *
60631
- * Types for the client tokens system that enables secure browser-to-API communication.
60632
- *
60633
- * Note: These types are inlined from the internal shared package to avoid
60634
- * requiring users to install @runtypelabs/shared.
60635
- */
60636
- /**
60637
- * Environment for a client token
60638
- */
60639
- type ClientTokenEnvironment = 'test' | 'live';
60640
- /**
60641
- * Version pinning options for client tokens
60642
- */
60643
- type ClientTokenVersionPin = 'latest' | 'published' | string;
60644
- /**
60645
- * Theme configuration for the client widget
60646
- */
60647
- interface ClientWidgetTheme {
60648
- /** Primary brand color */
60649
- primaryColor?: string;
60650
- /** Background color */
60651
- backgroundColor?: string;
60652
- /** Text color */
60653
- textColor?: string;
60654
- /** Font family */
60655
- fontFamily?: string;
60656
- /** Border radius for elements */
60657
- borderRadius?: string;
60658
- /** Light or dark mode */
60659
- mode?: 'light' | 'dark';
60660
- }
60661
- /**
60662
- * Client token configuration (theme, welcome message, etc.)
60663
- */
60664
- interface ClientTokenConfig {
60665
- /** Welcome message shown when widget opens */
60666
- welcomeMessage?: string;
60667
- /** Input placeholder text */
60668
- placeholder?: string;
60669
- /** Theme configuration */
60670
- theme?: ClientWidgetTheme;
60671
- /** Custom data passed to flows */
60672
- customData?: Record<string, unknown>;
60673
- /**
60674
- * Durable-turn opt-in for a token with no product surface. A surface-bound
60675
- * token reads the surface's `behavior.durableTurns` instead and ignores this.
60676
- */
60677
- durableTurns?: {
60678
- /** Defaults to false when absent. */
60679
- enabled?: boolean;
60680
- };
60681
- }
60682
- /**
60683
- * Client token data returned from the API
60684
- */
60685
- interface ClientToken {
60686
- id: string;
60687
- name: string | null;
60688
- flowIds: string[];
60689
- defaultFlowId: string | null;
60690
- agentIds: string[];
60691
- allowedOrigins: string[];
60692
- environment: ClientTokenEnvironment;
60693
- pinToVersion: ClientTokenVersionPin | null;
60694
- /** Release alias this token follows, re-resolved on every admission (ADR 0025). */
60695
- targetAlias: string | null;
60696
- /** Exact agent version this token is pinned to (ADR 0025). */
60697
- targetVersionId: string | null;
60698
- rateLimitPerMinute: number | null;
60699
- rateLimitPerHour: number | null;
60700
- maxMessagesPerSession: number | null;
60701
- sessionIdleTimeoutMinutes: number | null;
60702
- config: ClientTokenConfig;
60703
- isActive: boolean;
60704
- tokenPrefix: string;
60705
- tokenHint: string | null;
60706
- /** Publishable token value. Null for legacy rows until regenerated. */
60707
- tokenValue: string | null;
60708
- /** Product chat surface this token was minted for, when surface-bound. */
60709
- productSurfaceId?: string | null;
60710
- conversationCount?: number;
60711
- lastUsedAt: string | null;
60712
- createdAt: string;
60713
- updatedAt: string;
60714
- }
60715
- /**
60716
- * Request to create a client token
60717
- */
60718
- interface CreateClientTokenRequest {
60719
- name: string;
60720
- flowIds?: string[];
60721
- defaultFlowId?: string;
60722
- agentIds?: string[];
60723
- allowedOrigins: string[];
60724
- environment?: ClientTokenEnvironment;
60725
- pinToVersion?: ClientTokenVersionPin;
60726
- /** Release alias this token follows. Mutually exclusive with `targetVersionId`. */
60727
- targetAlias?: string | null;
60728
- /** Exact agent version this token pins. Mutually exclusive with `targetAlias`. */
60729
- targetVersionId?: string | null;
60730
- rateLimitPerMinute?: number;
60731
- rateLimitPerHour?: number;
60732
- maxMessagesPerSession?: number;
60733
- sessionIdleTimeoutMinutes?: number;
60734
- config?: ClientTokenConfig;
60735
- productSurfaceId?: string;
60736
- }
60737
- /**
60738
- * Request to update a client token
60739
- */
60740
- interface UpdateClientTokenRequest {
60741
- name?: string;
60742
- flowIds?: string[];
60743
- defaultFlowId?: string;
60744
- agentIds?: string[];
60745
- allowedOrigins?: string[];
60746
- pinToVersion?: ClientTokenVersionPin;
60747
- /** Release alias this token follows. Mutually exclusive with `targetVersionId`. */
60748
- targetAlias?: string | null;
60749
- /** Exact agent version this token pins. Mutually exclusive with `targetAlias`. */
60750
- targetVersionId?: string | null;
60751
- rateLimitPerMinute?: number;
60752
- rateLimitPerHour?: number;
60753
- maxMessagesPerSession?: number;
60754
- sessionIdleTimeoutMinutes?: number;
60755
- config?: ClientTokenConfig;
60756
- isActive?: boolean;
60757
- }
60758
- /**
60759
- * Security warning for token configuration
60760
- */
60761
- interface SecurityWarning {
60762
- type: string;
60763
- message: string;
60764
- }
60765
- /**
60766
- * Response from creating a client token
60767
- */
60768
- interface CreateClientTokenResponse {
60769
- clientToken: ClientToken;
60770
- /** The plain token value - only shown once! */
60771
- token: string;
60772
- warnings: SecurityWarning[];
60773
- }
60774
- /**
60775
- * Conversation record from the API
60776
- */
60777
- interface ClientConversation {
60778
- id: string;
60779
- name: string;
60780
- flowId: string;
60781
- origin: string;
60782
- messageCount: number;
60783
- firstMessage: string | null;
60784
- createdAt: string;
60785
- updatedAt: string;
60786
- }
60787
- /**
60788
- * List conversations response
60789
- */
60790
- interface ListConversationsResponse {
60791
- conversations: ClientConversation[];
60792
- pagination: {
60793
- limit: number;
60794
- offset: number;
60795
- hasMore: boolean;
60796
- };
60797
- }
60798
-
60799
62473
  interface GeneratedRuntimeToolGateOptions {
60800
62474
  /**
60801
62475
  * Allowed runtime tool types.
@@ -65577,4 +67251,4 @@ declare function getLikelySupportingCandidatePaths(bestCandidatePath: string | u
65577
67251
  declare function getDefaultPlanPath(taskName: string): string;
65578
67252
  declare function sanitizeTaskSlug(taskName: string): string;
65579
67253
 
65580
- export { type AIGrader, type ActivateAgentAliasInput, type ActivateAgentPromotionInput, type Agent, type AgentAdmissionOptions, type AgentAlias, type AgentAliasActivation, type AgentAliasArchiveFailure, type AgentAliasArchived, AgentAliasDependencyError, type AgentAliasList, AgentAliasNotFoundError, AgentAliasPreviewLimitError, AgentAliasRevisionMismatchError, AgentAliasRevisionRequiredError, type AgentAliasTransport, AgentAliasesNamespace, type AgentApprovalCompleteEvent, type AgentApprovalStartEvent, type AgentCompleteEvent, type AgentDefinition, type AgentDefinitionConfig, type AgentDeploymentList, type AgentDeploymentPromotion, type AgentDeploymentReceipt, AgentDeploymentsNamespace, AgentDriftError, type AgentElicitation, type AgentElicitationRequest, AgentEnsureConflictError, type AgentErrorEvent, type AgentEvent, type AgentEventType, type AgentExecuteRequest, type AgentExecuteResponse, type AgentIterationCompleteEvent, type AgentIterationStartEvent, type AgentMediaEvent, type AgentMessage, type AgentPausedEvent, type AgentPingEvent, AgentPromotionError, type AgentPromotionManifest, type AgentPromotionTransport, type AgentPromotionValidation, type AgentPullResult, type AgentReflectionEvent, type AgentRunInsightsResponse, type AgentRuntimeToolDefinition, type AgentStartEvent, type AgentStreamCallbacks, type AgentStreamEvent, type AgentSubagentConfig, type AgentToolCompleteEvent, type AgentToolDeltaEvent, type AgentToolInputCompleteEvent, type AgentToolInputDeltaEvent, type AgentToolStartEvent, type AgentTurnCompleteEvent, type AgentTurnDeltaEvent, type AgentTurnStartEvent, type AgentVersionDetail, type AgentVersionListItem, type AgentVersionPublishResponse, AgentVersionsEndpoint, type AgentVersionsListResponse, AgentsEndpoint, AgentsNamespace, AnalyticsEndpoint, type ApiClient, type ApiKey, type ApiKeyRequest, type ApiKeyRequestDelivery, type ApiKeyRequestEnvironment, type ApiKeyRequestHandoff, type ApiKeyRequestListParams, type ApiKeyRequestRequester, type ApiKeyRequestStatus, ApiKeyRequestsEndpoint, ApiKeysEndpoint, type ApiResponse, type ApplyGeneratedProposalOptions, type ApplyGeneratedProposalResult, type ArchiveAgentAliasEverywhereResult, type ArchiveAgentAliasInput, type AssetReferenceContentPart, type AsyncExecutionHandle, type AsyncExecutionStatus, type AttachRuntimeToolsOptions, type BaseAgentEvent, BatchBuilder, type BatchClient, type BatchListParams, type BatchOptions, type BatchRequest, type BatchResult, type BatchScheduleConfig, type BatchStatus, BatchesNamespace, BillingEndpoint, type BillingSpendAnalyticsParams, type BindSkillInput, type BuiltInGraderId, type BuiltInTool, type BuiltinToolExecuteResponse, type BulkEditCondition, type BulkEditRequest, type BulkEditResponse, type BulkEditResult, type CanonicalDispatchMessageContent, type CanonicalDispatchRequest, type CaseExpected, type CatalogClientToolRef, ChatEndpoint, type CheckGrader, type ClaimApiKeyRequestInput, type ClaimApiKeyRequestResponse, type ClaudeManagedEvalOverrideValues, ClientBatchBuilder, type ClientConfig, type ClientConversation, ClientEvalBuilder, ClientFlowBuilder, type ClientToken, type ClientTokenConfig, type ClientTokenEnvironment, type ClientTokenVersionPin, ClientTokensEndpoint, type ClientToolDefinition, type ClientToolEntry, type ClientWidgetTheme, type CollectionMeta, CollectionsEndpoint, type ConditionalGetResult, type ConditionalStepConfig$1 as ConditionalStepConfig, type ContextErrorHandling, type ContextFallback, ContextTemplatesEndpoint, type Conversation, type ConversationListItem, type ConversationListParams, type ConversationMessage, type ConversationSource, ConversationsEndpoint, type ConversationsListResponse, type CreateApiKeyRequest, type CreateApiKeyRequestInput, type CreateApiKeyRequestResponse, type CreateClientTokenRequest, type CreateClientTokenResponse, type CreateCollectionRequest, type CreateConversationRequest, type CreateEvalSuiteInput, type CreateFlowRequest, type CreateModelConfigRequest, type CreatePromptData, type CreatePromptRequest, type CreateProviderKeyRequest, type CreateRecordRequest, type CreateScheduleRequest, type CreateSecretRequest, type CreateToolRequest, type CurrentBilledSpendResponse, type CurrentBilledSpendSource, type CustomMCPServer, type CustomMCPServerAuth, type CustomToolConfig, DEFAULT_MAX_DETACHED_RECONNECTS, DEFAULT_RECOVERY_AFTER_EMPTY_SESSIONS, DEFAULT_STALL_STOP_AFTER, type DecomposeCriteriaResult, type DefineAgentInput, type DefineEvalCaseInput, type DefineEvalInput, type DefineFlowInput, type DefineProductInput, type DefineSkillInput, type DefineSurfaceInput, type DefineToolInput, type DeployCfSandboxRequest, type DeployCfSandboxResponse, type DeploySandboxRequest, type DeploySandboxResponse, type DetachedReattach, type DetachedReconnectOptions, type DiscoveredModel, type DispatchAgentInput, type DispatchApprovalContinuationResponse, type DispatchApproveRequest, type DispatchApproveResponse, type DispatchClient, type DispatchContinuationRequest, type DispatchContinuationResponse, type DispatchDetachedApprovalResponse, type DispatchDetachedToolOutputResponse, DispatchEndpoint, type DispatchEnvironment, type DispatchEvent, type DispatchFlowInput, type DispatchMessageContent, type DispatchOptions$1 as DispatchOptions, type DispatchRequest, type DispatchResponse, type DispatchResumeJsonResponse, type DispatchResumeRequest, type DispatchResumeResponse, ENSURE_RELEASE_DEPLOY_CONFLICT_MESSAGE, type EndUserUsageQuery, type EndUserUsageResponse, type EnsureAgentConverged, type EnsureAgentOptions, type EnsureAgentPlan, type EnsureAgentResult, type EnsureEvalResult, type EnsureFlowConverged, type EnsureFlowOptions, type EnsureFlowPlan, type EnsureFlowResult, type EnsureFpoOptions, type EnsureFpoResult, type EnsureProductConverged, type EnsureProductOptions, type EnsureProductPlan, type EnsureProductResult, type EnsureSkillConverged, type EnsureSkillOptions, type EnsureSkillPlan, type EnsureSkillResult, type EnsureSurfaceConverged, type EnsureSurfaceOptions, type EnsureSurfacePlan, type EnsureSurfaceResult, type EnsureToolConverged, type EnsureToolOptions, type EnsureToolPlan, type EnsureToolResult, type ErrorHandlingMode, type EvalAgentSelector, type EvalAgentTargetResolution, EvalBuilder, type EvalCaseDefinition, type EvalCaseInput, type EvalCaseProposal, type EvalCaseProposalAccepted, type EvalCaseProposalListResult, type EvalCasesGenerated, type EvalClient, type EvalDefinition, EvalEndpoint, type EvalListParams, type EvalMessage, type EvalOptions, type EvalOverrideValues, type EvalProposalSource, type EvalProposalStatus, type EvalProposedCase, type EvalPullResult, type EvalRecord, type EvalRequest, type EvalResult, type EvalRunCaseScores, type EvalRunConfig, type EvalRunEvidence, type EvalRunScores, EvalRunner, type EvalStatus, type EvalSuiteCase, type EvalSuiteCaseInput, type EvalSuiteCoverage, type EvalSuiteDetail, type EvalSuiteLatestRun, type EvalSuiteListResult, type EvalSuiteRunQueued, type EvalSuiteRunResult, type EvalSuiteSummary, EvalSuitesNamespace, type EvalTarget, EvalsNamespace, type ExecuteToolRequest, type ExecuteToolResponse, type ExecutionCounts, type ExecutionStreamEvent, ExecutionsEndpoint, ExecutionsNamespace, type ExternalAgentContext, type ExternalToolConfig, type FallbackFailEvent, type FallbackStartEvent, type FallbackSuccessEvent, type FallbackTrigger, type FallbackTriggerType, type FallbacksExhaustedEvent, type FallbacksInitiatedEvent, type FetchUrlStepConfig$1 as FetchUrlStepConfig, type FieldFormat, type FileContentPart, type Flow, type FlowAttachment, FlowBuilder, type FlowCompleteEvent, type FlowConfig$1 as FlowConfig, type FlowDefinition, type FlowDefinitionStep, FlowDriftError, FlowEnsureConflictError, type FlowErrorEvent, type FlowFallback, type FlowInlineEvalInput, type FlowListItem, type FlowPausedEvent, type FlowPullResult, FlowResult, type FlowStartEvent, type FlowStep, type FlowStepDefinition, type FlowStepType, FlowStepsEndpoint, type FlowStreamEvent, type FlowSummary, type FlowToolConfig, type FlowValidationClient, type FlowValidationIssue, type FlowValidationResult, type FlowVersionDetail, type FlowVersionListItem, type FlowVersionPublishResponse, FlowVersionsEndpoint, type FlowVersionsListResponse, FlowsEndpoint, FlowsNamespace, type FpoEntityOutcome, type FpoInput, type GenerateEmbeddingStepConfig$1 as GenerateEmbeddingStepConfig, type GenerateEvalCasesInput, type GeneratedRuntimeToolGateDecision, type GeneratedRuntimeToolGateOptions, type GetApiKeyRequestResponse, type GetRecordStepConfig$1 as GetRecordStepConfig, type Gradeable, type GraderConfig, type GraderOutcome, type GraderSeverity, type HealthInsight, type HumanVerdict, type ImageContentPart, type InferCollectionSchemaResponse, type InputDeliveryReceipt, type Integration, type IntegrationTool, IntegrationsEndpoint, type IntegrationsListResponse, type JSONSchema, type JsonArray, type JsonObject, type JsonPrimitive, type JsonValue, LEDGER_ARTIFACT_LINE_PREFIX, LIVE_AGENT_ALIAS, type ListAgentAliasesOptions, type ListAgentDeploymentsOptions, type ListCollectionsResponse, type ListConversationsResponse, type ListParams, type ListRecordsStepConfig$1 as ListRecordsStepConfig, type LocalToolConfig, type LocalToolDefinition, type LocalToolExecutionCompleteEvent, type LocalToolExecutionLoopSnapshotSlice, type LocalToolExecutionStartEvent, type LogEntry, type LogQueryParams, type LogQueryResponse, type LogQueryResult, type LogSearchedWindow, type LogStatsParams, type LogStatsResponse, type LogStatsResult, LogsEndpoint, type LoopStepConfig$1 as LoopStepConfig, type Message$1 as Message, type MessageContent, type MessageFallback, type Metadata, type MetricDelta, type ModelConfig, ModelConfigsEndpoint, type ModelFallback, type ModelOverride, type ModelUsageDetail, type ModelUsageQueryParams, type ModelUsageResponse, type ModelUsageSummary, type ModelUsageTimeSeries, type OrganizationAgentAlias, type OrganizationAgentAliasList, type PaginationResponse, type PersistedGraderOutcome, type PrepareAgentPromotionInput, type ProductDefinition, ProductDriftError, ProductEnsureConflictError, type ProductPullResult, type ProductionHealthQuery, type ProductionHealthResponse, ProductsNamespace, type PromoteAgentInput, type PromoteAgentResult, type Prompt$1 as Prompt, type PromptErrorHandling, type PromptFallback, type PromptListParams, type PromptStepConfig$1 as PromptStepConfig, PromptsEndpoint, PromptsNamespace, type ProviderApiKey, type ProviderKeyModel, ProviderKeysEndpoint, type PullFpoResult, RUNTYPE_CLIENT_KIND, type ReasoningConfig, type ReasoningContentPart, type ReasoningValue, type RecordCollection, type RecordCollectionWithHistory, type RecordCollections, type RecordConfig$1 as RecordConfig, type RecordCostAggregation, type RecordCostModelBreakdown, type RecordFilter, type RecordFilterCondition, type RecordFilterGroup, type RecordFilterOperator, type RecordListItem, type RecordListParams, type RecordStepResult, type RecordStepResultsParams, type RecordStepResultsResponse, type RecordWriteResponse, RecordsEndpoint, type RetrieveRecordStepConfig$1 as RetrieveRecordStepConfig, type RetryFallback, type RollbackAgentAliasInput, type RunEvalCaseResult, type RunEvalInput, type RunEvalResult, type RunListParams, type RunListResponse, type RunListRow, type RunTaskContextBudgetBreakdown, type RunTaskContextCompactionEvent, type RunTaskContextCompactionStrategy, type RunTaskContextNoticeEvent, type RunTaskContextSummaryEntry, type RunTaskContinuation, type RunTaskOffloadRecorder, type RunTaskOnContextCompaction, type RunTaskOnContextNotice, type RunTaskOnSession, type RunTaskOptions, type RunTaskResult, type RunTaskResumeState, type RunTaskSessionSummary, type RunTaskState, type RunTaskStateSlice, type RunTaskStatus, type RunTaskToolTraceSlice, RunsNamespace, type RuntimeCustomToolConfig, type RuntimeExternalToolConfig, type RuntimeFlowToolConfig, type RuntimeLocalToolConfig, type RuntimeSubagentToolConfig, type RuntimeTool, type RuntimeToolConfig, Runtype, type AgentSkillBinding as RuntypeAgentSkillBinding, RuntypeApiError, RuntypeClient, type ConditionalStepConfig as RuntypeConditionalStepConfig, type RuntypeConfig, type FetchUrlStepConfig as RuntypeFetchUrlStepConfig, RuntypeFlowBuilder, type FlowConfig as RuntypeFlowConfig, type GenerateEmbeddingStepConfig as RuntypeGenerateEmbeddingStepConfig, type GetRecordStepConfig as RuntypeGetRecordStepConfig, type ListRecordsStepConfig as RuntypeListRecordsStepConfig, type LoopStepConfig as RuntypeLoopStepConfig, type Message as RuntypeMessage, type ModelOverride$1 as RuntypeModelOverride, type Prompt as RuntypePrompt, type PromptStepConfig as RuntypePromptStepConfig, type RuntypeRecord, type RecordConfig as RuntypeRecordConfig, type RetrieveRecordStepConfig as RuntypeRetrieveRecordStepConfig, type SearchStepConfig as RuntypeSearchStepConfig, type SendEmailStepConfig as RuntypeSendEmailStepConfig, type SendEventStepConfig as RuntypeSendEventStepConfig, type SendStreamStepConfig as RuntypeSendStreamStepConfig, type SetVariableStepConfig as RuntypeSetVariableStepConfig, type Skill as RuntypeSkill, type SkillBindingWithAgent as RuntypeSkillBindingWithAgent, type SkillCapabilities as RuntypeSkillCapabilities, type SkillFrontmatter as RuntypeSkillFrontmatter, type SkillManifest as RuntypeSkillManifest, type SkillProposal as RuntypeSkillProposal, type SkillRuntypeExtensions as RuntypeSkillRuntypeExtensions, type SkillVersion as RuntypeSkillVersion, type TransformDataStepConfig as RuntypeTransformDataStepConfig, type UpsertFlowConfig as RuntypeUpsertFlowConfig, type UpsertRecordStepConfig as RuntypeUpsertRecordStepConfig, type VectorSearchStepConfig as RuntypeVectorSearchStepConfig, type WaitUntilStepConfig as RuntypeWaitUntilStepConfig, SDK_USER_AGENT, SDK_VERSION, STEP_FIELD_REGISTRY, STEP_TYPE_TO_METHOD, type SandboxDeployEffectivePolicy, type SandboxDeployRetention, type SandboxDeploySleepPolicy, type SavedToolExecuteResponse, type Schedule, type ScheduleExecutionOptions, type ScheduleListParams, type ScheduleMessage, type ScheduleMessageSet, type ScheduleMessages, type ScheduleMutationResponse, type ScheduleRun, type ScheduleRunNowResponse, type ScheduleStatusResponse, type ScheduleTarget, type ScheduleTrigger, SchedulesEndpoint, type SearchStepConfig$1 as SearchStepConfig, type Secret, type SecretCheckResponse, type SecretDeleteResponse, type SecretSetupUrlRequest, type SecretSetupUrlResponse, SecretsEndpoint, type SelectOrganizationProviderCredentialRequest, type SelectOrganizationProviderCredentialResponse, type SendEmailStepConfig$1 as SendEmailStepConfig, type SendEventStepConfig$1 as SendEventStepConfig, type SendStreamStepConfig$1 as SendStreamStepConfig, type SetVariableStepConfig$1 as SetVariableStepConfig, type SkillDefinition, SkillDriftError, SkillEnsureConflictError, type SkillListPage, type SkillListPagination, type SkillListParams, type SkillManifestInput, type SkillMarkdownInput, type SkillOrigin, type SkillProposalStatus, SkillProposalsNamespace, type SkillPullResult, type SkillStatus, type SkillTrustLevel, type SkillVersionStatus, type SkillWithVersion, type SkillWriteInput, SkillsNamespace, type SlackAppStatusResponse, type SlackInstallRequest, type SlackManifestRequest, type SlackManifestResponse, type SlackOAuthStartRequest, type SlackOAuthStartResponse, type StepCompleteEvent, type StepDeltaEvent, type StepFallback, type StepFieldMeta, type StepStartEvent, type StepWaitingLocalEvent, type StreamCallbacks, type StreamConsumeOptions, type StreamEvent, type StreamEventOf, type SubagentToolConfig, type Surface, type SurfaceDefinition, type SurfaceDefinitionStatus, type SurfaceDefinitionType, SurfaceDriftError, SurfaceEnsureConflictError, type SurfaceListParams, type SurfacePullResult, SurfacesEndpoint, SurfacesNamespace, type TextContentPart, type Tool, type ToolApprovalGrant, ToolApprovalGrantsEndpoint, type ToolConfig, type ToolDefinition, type ToolDefinitionType, ToolDriftError, ToolEnsureConflictError, type ToolPullResult, type ToolWithValidation, type ToolsConfig, ToolsEndpoint, ToolsNamespace, type TransformDataStepConfig$1 as TransformDataStepConfig, type TypedCreateRecordRequest, type TypedRecordListItem, type TypedRecordWriteResponse, TypedRecordsScope, type TypedRuntypeRecord, UNIFIED_EVENTS_QUERY, type UpdateClientTokenRequest, type UpdateCollectionRequest, type UpdateCollectionResponse, type UpdateConversationRequest, type UpdateEvalCaseInput, type UpdateEvalSuiteInput, type UpdateFlowRequest, type UpdatePromptData, type UpdateProviderKeyRequest, type UpdateScheduleRequest, type UpdateSecretRequest, type UpdateToolRequest, type UpdatedAgent, type UpdatedFlow, type UpsertFlowConfig$1 as UpsertFlowConfig, type UpsertOptions, type UpsertRecordStepConfig$1 as UpsertRecordStepConfig, type UserProfile, UsersEndpoint, type ValidateAgentPromotionInput, type ValidateExistingRecordsResponse, type VectorSearchStepConfig$1 as VectorSearchStepConfig, type VersionPublishOptions, type VersionType, type WaitUntilStepConfig$1 as WaitUntilStepConfig, type WorkflowCompileDeps, type WorkflowCompletionCriteriaConfig, type WorkflowConfig, type WorkflowConfigFactory, type WorkflowContext, type WorkflowDefinition, type WorkflowHookEntry, type WorkflowHookKind, type WorkflowHookRef, type WorkflowHookSignatures, type WorkflowMilestoneConfig, type WorkflowPhase, type WorkflowPolicyConfig, type WorkflowRecoveryConfig, type WorkflowSlot, type WorkflowStallPolicy, activateAgentPromotion, agentAliasErrorCode, applyGeneratedRuntimeToolProposalToDispatchRequest, attachRuntimeToolsToDispatchRequest, buildAgentAdmissionHeaders, buildEmptySessionNudge, buildExecutionEventsPath, buildGeneratedRuntimeToolGateOutput, buildLedgerOffloadReference, buildObservationMaskMarker, buildPolicyGuidance, buildSendViewOffloadMarker, calledTool, combineAbortSignals, compileWorkflowConfig, completed, computeAgentContentHash, computeEvalContentHash, computeFlowContentHash, computeFpoContentHash, computeProductContentHash, computeSkillContentHash, computeSurfaceContentHash, computeToolContentHash, contains, cost, createAgentEventTranslator, createClient, createExternalTool, createFlowEventTranslator, defaultWorkflow, defaultWorkflowConfig, defineAgent, defineEval, defineFlow, defineFpo, definePlaybook, defineProduct, defineSkill, defineSurface, defineTool, deployWorkflow, ensureDefaultWorkflowHooks, ensureEval, ensureFpo, evaluateGeneratedRuntimeToolProposal, extractDeclaredToolResultChars, gameWorkflow, getDefaultPlanPath, getLikelySupportingCandidatePaths, interpolateWorkflowTemplate, isBuiltinToolExecuteResponse, isCatalogClientToolRef, isDiscoveryToolName, isMarathonArtifactPath, isPreservationSensitiveTask, isUnifiedEventType, isWorkflowHookRef, jsonField, judge, judges, latency, length, listWorkflowHooks, matchesExpected, maxToolCalls, noError, normalizeAgentDefinition, normalizeCandidatePath, normalizeFpoDefinition, normalizeProductDefinition, normalizeSkillDefinition, normalizeSurfaceDefinition, normalizeToolDefinition, notCalledTool, notContains, parseFinalBuffer, parseLedgerArtifactRelativePath, parseOffloadedOutputId, parseSSEChunk, prepareAgentPromotion, processStream, promoteAgent, promotionIdempotencyKey, pullEval, pullFpo, ranStep, regex, registerWorkflowHook, resolveStallStopAfter, resolveWorkflowHook, runEvalSuite, sanitizeTaskSlug, shouldInjectEmptySessionNudge, shouldRequestModelEscalation, stepOrder, streamEvents, toolOrder, unregisterWorkflowHook, usedNoTools, validJson, validateAgentPromotion, withDetachedReconnect, withUnifiedEvents };
67254
+ export { type AIGrader, type ActivateAgentAliasInput, type ActivateAgentPromotionInput, type Agent, type AgentAdmissionOptions, type AgentAlias, type AgentAliasActivation, type AgentAliasArchiveFailure, type AgentAliasArchived, AgentAliasDependencyError, type AgentAliasList, AgentAliasNotFoundError, AgentAliasPreviewLimitError, AgentAliasRevisionMismatchError, AgentAliasRevisionRequiredError, type AgentAliasTransport, AgentAliasesNamespace, type AgentApprovalCompleteEvent, type AgentApprovalStartEvent, type AgentCompleteEvent, type AgentDefinition, type AgentDefinitionConfig, type AgentDeploymentList, type AgentDeploymentPromotion, type AgentDeploymentReceipt, AgentDeploymentsNamespace, AgentDriftError, type AgentElicitation, type AgentElicitationRequest, AgentEnsureConflictError, type AgentErrorEvent, type AgentEvent, type AgentEventType, type AgentExecuteRequest, type AgentExecuteResponse, type AgentIterationCompleteEvent, type AgentIterationStartEvent, type AgentMediaEvent, type AgentMessage, type AgentPausedEvent, type AgentPingEvent, AgentPromotionError, type AgentPromotionManifest, type AgentPromotionTransport, type AgentPromotionValidation, type AgentPullResult, type AgentReflectionEvent, type AgentRunInsightsResponse, type AgentRuntimeToolDefinition, type AgentStartEvent, type AgentStreamCallbacks, type AgentStreamEvent, type AgentSubagentConfig, type AgentToolCompleteEvent, type AgentToolDeltaEvent, type AgentToolInputCompleteEvent, type AgentToolInputDeltaEvent, type AgentToolStartEvent, type AgentTurnCompleteEvent, type AgentTurnDeltaEvent, type AgentTurnStartEvent, type AgentVersionDetail, type AgentVersionListItem, type AgentVersionPublishResponse, AgentVersionsEndpoint, type AgentVersionsListResponse, AgentsEndpoint, AgentsNamespace, AnalyticsEndpoint, type ApiClient, type ApiKey, type ApiKeyRequest, type ApiKeyRequestDelivery, type ApiKeyRequestEnvironment, type ApiKeyRequestHandoff, type ApiKeyRequestListParams, type ApiKeyRequestRequester, type ApiKeyRequestStatus, ApiKeyRequestsEndpoint, ApiKeysEndpoint, type ApiResponse, type ApplyGeneratedProposalOptions, type ApplyGeneratedProposalResult, type ArchiveAgentAliasEverywhereResult, type ArchiveAgentAliasInput, type AssetReferenceContentPart, type AsyncExecutionHandle, type AsyncExecutionStatus, type AttachRuntimeToolsOptions, type BaseAgentEvent, BatchBuilder, type BatchClient, type BatchListParams, type BatchOptions, type BatchRequest, type BatchResult, type BatchScheduleConfig, type BatchStatus, BatchesNamespace, BillingEndpoint, type BillingSpendAnalyticsParams, type BindSkillInput, type BuiltInGraderId, type BuiltInTool, type BuiltinToolExecuteResponse, type BulkEditCondition, type BulkEditRequest, type BulkEditResponse, type BulkEditResult, type CanonicalDispatchMessageContent, type CanonicalDispatchRequest, type CaseExpected, type CatalogClientToolRef, ChatEndpoint, type CheckGrader, type ClaimApiKeyRequestInput, type ClaimApiKeyRequestResponse, type ClaudeManagedEvalOverrideValues, ClientBatchBuilder, type ClientConfig, type ClientConversation, ClientEvalBuilder, ClientFlowBuilder, type ClientToken, type ClientTokenConfig, type ClientTokenDefinition, ClientTokenDriftError, ClientTokenEnsureError, type ClientTokenEnvironment, type ClientTokenVersionPin, ClientTokensEndpoint, ClientTokensNamespace, type ClientToolDefinition, type ClientToolEntry, type ClientWidgetTheme, type CollectionMeta, CollectionsEndpoint, type ConditionalGetResult, type ConditionalStepConfig$1 as ConditionalStepConfig, type ContextErrorHandling, type ContextFallback, ContextTemplatesEndpoint, type Conversation, type ConversationListItem, type ConversationListParams, type ConversationMessage, type ConversationSource, ConversationsEndpoint, type ConversationsListResponse, type CreateApiKeyRequest, type CreateApiKeyRequestInput, type CreateApiKeyRequestResponse, type CreateClientTokenRequest, type CreateClientTokenResponse, type CreateCollectionRequest, type CreateConversationRequest, type CreateEvalSuiteInput, type CreateFlowRequest, type CreateModelConfigRequest, type CreatePromptData, type CreatePromptRequest, type CreateProviderKeyRequest, type CreateRecordRequest, type CreateScheduleRequest, type CreateSecretRequest, type CreateToolRequest, type CurrentBilledSpendResponse, type CurrentBilledSpendSource, type CustomMCPServer, type CustomMCPServerAuth, type CustomToolConfig, DEFAULT_MAX_DETACHED_RECONNECTS, DEFAULT_RECOVERY_AFTER_EMPTY_SESSIONS, DEFAULT_STALL_STOP_AFTER, type DecomposeCriteriaResult, type DefineAgentInput, type DefineEvalCaseInput, type DefineEvalInput, type DefineFlowInput, type DefineProductInput, type DefineSkillInput, type DefineSurfaceInput, type DefineToolInput, type DeployCfSandboxRequest, type DeployCfSandboxResponse, type DeploySandboxRequest, type DeploySandboxResponse, type DetachedReattach, type DetachedReconnectOptions, type DiscoveredModel, type DispatchAgentInput, type DispatchApprovalContinuationResponse, type DispatchApproveRequest, type DispatchApproveResponse, type DispatchClient, type DispatchContinuationRequest, type DispatchContinuationResponse, type DispatchDetachedApprovalResponse, type DispatchDetachedToolOutputResponse, DispatchEndpoint, type DispatchEnvironment, type DispatchEvent, type DispatchFlowInput, type DispatchMessageContent, type DispatchOptions$1 as DispatchOptions, type DispatchRequest, type DispatchResponse, type DispatchResumeJsonResponse, type DispatchResumeRequest, type DispatchResumeResponse, ENSURE_RELEASE_DEPLOY_CONFLICT_MESSAGE, type EndUserUsageQuery, type EndUserUsageResponse, type EnsureAgentConverged, type EnsureAgentOptions, type EnsureAgentPlan, type EnsureAgentResult, type EnsureClientTokenConverged, type EnsureClientTokenOptions, type EnsureClientTokenPlan, type EnsureClientTokenResult, type EnsureEvalResult, type EnsureFlowConverged, type EnsureFlowOptions, type EnsureFlowPlan, type EnsureFlowResult, type EnsureFpoOptions, type EnsureFpoResult, type EnsureProductConverged, type EnsureProductOptions, type EnsureProductPlan, type EnsureProductResult, type EnsureSkillConverged, type EnsureSkillOptions, type EnsureSkillPlan, type EnsureSkillResult, type EnsureSurfaceConverged, type EnsureSurfaceOptions, type EnsureSurfacePlan, type EnsureSurfaceResult, type EnsureToolConverged, type EnsureToolOptions, type EnsureToolPlan, type EnsureToolResult, type ErrorHandlingMode, type EvalAgentSelector, type EvalAgentTargetResolution, EvalBuilder, type EvalCaseDefinition, type EvalCaseInput, type EvalCaseProposal, type EvalCaseProposalAccepted, type EvalCaseProposalListResult, type EvalCasesGenerated, type EvalClient, type EvalDefinition, EvalEndpoint, type EvalListParams, type EvalMessage, type EvalOptions, type EvalOverrideValues, type EvalProposalSource, type EvalProposalStatus, type EvalProposedCase, type EvalPullResult, type EvalRecord, type EvalRequest, type EvalResult, type EvalRunCaseScores, type EvalRunConfig, type EvalRunEvidence, type EvalRunScores, EvalRunner, type EvalStatus, type EvalSuiteCase, type EvalSuiteCaseInput, type EvalSuiteCoverage, type EvalSuiteDetail, type EvalSuiteLatestRun, type EvalSuiteListResult, type EvalSuiteRunQueued, type EvalSuiteRunResult, type EvalSuiteSummary, EvalSuitesNamespace, type EvalTarget, EvalsNamespace, type ExecuteToolRequest, type ExecuteToolResponse, type ExecutionCounts, type ExecutionStreamEvent, ExecutionsEndpoint, ExecutionsNamespace, type ExternalAgentContext, type ExternalToolConfig, type FallbackFailEvent, type FallbackStartEvent, type FallbackSuccessEvent, type FallbackTrigger, type FallbackTriggerType, type FallbacksExhaustedEvent, type FallbacksInitiatedEvent, type FetchUrlStepConfig$1 as FetchUrlStepConfig, type FieldFormat, type FileContentPart, type Flow, type FlowAttachment, FlowBuilder, type FlowCompleteEvent, type FlowConfig$1 as FlowConfig, type FlowDefinition, type FlowDefinitionStep, FlowDriftError, FlowEnsureConflictError, type FlowErrorEvent, type FlowFallback, type FlowInlineEvalInput, type FlowListItem, type FlowPausedEvent, type FlowPullResult, FlowResult, type FlowStartEvent, type FlowStep, type FlowStepDefinition, type FlowStepType, FlowStepsEndpoint, type FlowStreamEvent, type FlowSummary, type FlowToolConfig, type FlowValidationClient, type FlowValidationIssue, type FlowValidationResult, type FlowVersionDetail, type FlowVersionListItem, type FlowVersionPublishResponse, FlowVersionsEndpoint, type FlowVersionsListResponse, FlowsEndpoint, FlowsNamespace, type FpoEntityOutcome, type FpoInput, type GenerateEmbeddingStepConfig$1 as GenerateEmbeddingStepConfig, type GenerateEvalCasesInput, type GeneratedRuntimeToolGateDecision, type GeneratedRuntimeToolGateOptions, type GetApiKeyRequestResponse, type GetRecordStepConfig$1 as GetRecordStepConfig, type Gradeable, type GraderConfig, type GraderOutcome, type GraderSeverity, type HealthInsight, type HumanVerdict, type ImageContentPart, type InferCollectionSchemaResponse, type InputDeliveryReceipt, type Integration, type IntegrationTool, IntegrationsEndpoint, type IntegrationsListResponse, type JSONSchema, type JsonArray, type JsonObject, type JsonPrimitive, type JsonValue, LEDGER_ARTIFACT_LINE_PREFIX, LIVE_AGENT_ALIAS, type ListAgentAliasesOptions, type ListAgentDeploymentsOptions, type ListCollectionsResponse, type ListConversationsResponse, type ListParams, type ListRecordsStepConfig$1 as ListRecordsStepConfig, type LocalToolConfig, type LocalToolDefinition, type LocalToolExecutionCompleteEvent, type LocalToolExecutionLoopSnapshotSlice, type LocalToolExecutionStartEvent, type LogEntry, type LogQueryParams, type LogQueryResponse, type LogQueryResult, type LogSearchedWindow, type LogStatsParams, type LogStatsResponse, type LogStatsResult, LogsEndpoint, type LoopStepConfig$1 as LoopStepConfig, type Message$1 as Message, type MessageContent, type MessageFallback, type Metadata, type MetricDelta, type ModelConfig, ModelConfigsEndpoint, type ModelFallback, type ModelOverride, type ModelUsageDetail, type ModelUsageQueryParams, type ModelUsageResponse, type ModelUsageSummary, type ModelUsageTimeSeries, type OrganizationAgentAlias, type OrganizationAgentAliasList, type PaginationResponse, type PersistedGraderOutcome, type PrepareAgentPromotionInput, type ProductDefinition, ProductDriftError, ProductEnsureConflictError, type ProductPullResult, type ProductionHealthQuery, type ProductionHealthResponse, ProductsNamespace, type PromoteAgentInput, type PromoteAgentResult, type Prompt$1 as Prompt, type PromptErrorHandling, type PromptFallback, type PromptListParams, type PromptStepConfig$1 as PromptStepConfig, PromptsEndpoint, PromptsNamespace, type ProviderApiKey, type ProviderKeyModel, ProviderKeysEndpoint, type PullFpoResult, RUNTYPE_CLIENT_KIND, type ReasoningConfig, type ReasoningContentPart, type ReasoningValue, type RecordCollection, type RecordCollectionWithHistory, type RecordCollections, type RecordConfig$1 as RecordConfig, type RecordCostAggregation, type RecordCostModelBreakdown, type RecordFilter, type RecordFilterCondition, type RecordFilterGroup, type RecordFilterOperator, type RecordListItem, type RecordListParams, type RecordStepResult, type RecordStepResultsParams, type RecordStepResultsResponse, type RecordWriteResponse, RecordsEndpoint, type RetrieveRecordStepConfig$1 as RetrieveRecordStepConfig, type RetryFallback, type RollbackAgentAliasInput, type RunEvalCaseResult, type RunEvalInput, type RunEvalResult, type RunListParams, type RunListResponse, type RunListRow, type RunTaskContextBudgetBreakdown, type RunTaskContextCompactionEvent, type RunTaskContextCompactionStrategy, type RunTaskContextNoticeEvent, type RunTaskContextSummaryEntry, type RunTaskContinuation, type RunTaskOffloadRecorder, type RunTaskOnContextCompaction, type RunTaskOnContextNotice, type RunTaskOnSession, type RunTaskOptions, type RunTaskResult, type RunTaskResumeState, type RunTaskSessionSummary, type RunTaskState, type RunTaskStateSlice, type RunTaskStatus, type RunTaskToolTraceSlice, RunsNamespace, type RuntimeCustomToolConfig, type RuntimeExternalToolConfig, type RuntimeFlowToolConfig, type RuntimeLocalToolConfig, type RuntimeSubagentToolConfig, type RuntimeTool, type RuntimeToolConfig, Runtype, type AgentSkillBinding as RuntypeAgentSkillBinding, RuntypeApiError, RuntypeClient, type ConditionalStepConfig as RuntypeConditionalStepConfig, type RuntypeConfig, type FetchUrlStepConfig as RuntypeFetchUrlStepConfig, RuntypeFlowBuilder, type FlowConfig as RuntypeFlowConfig, type GenerateEmbeddingStepConfig as RuntypeGenerateEmbeddingStepConfig, type GetRecordStepConfig as RuntypeGetRecordStepConfig, type ListRecordsStepConfig as RuntypeListRecordsStepConfig, type LoopStepConfig as RuntypeLoopStepConfig, type Message as RuntypeMessage, type ModelOverride$1 as RuntypeModelOverride, type Prompt as RuntypePrompt, type PromptStepConfig as RuntypePromptStepConfig, type RuntypeRecord, type RecordConfig as RuntypeRecordConfig, type RetrieveRecordStepConfig as RuntypeRetrieveRecordStepConfig, type SearchStepConfig as RuntypeSearchStepConfig, type SendEmailStepConfig as RuntypeSendEmailStepConfig, type SendEventStepConfig as RuntypeSendEventStepConfig, type SendStreamStepConfig as RuntypeSendStreamStepConfig, type SetVariableStepConfig as RuntypeSetVariableStepConfig, type Skill as RuntypeSkill, type SkillBindingWithAgent as RuntypeSkillBindingWithAgent, type SkillCapabilities as RuntypeSkillCapabilities, type SkillFrontmatter as RuntypeSkillFrontmatter, type SkillManifest as RuntypeSkillManifest, type SkillProposal as RuntypeSkillProposal, type SkillRuntypeExtensions as RuntypeSkillRuntypeExtensions, type SkillVersion as RuntypeSkillVersion, type TransformDataStepConfig as RuntypeTransformDataStepConfig, type UpsertFlowConfig as RuntypeUpsertFlowConfig, type UpsertRecordStepConfig as RuntypeUpsertRecordStepConfig, type VectorSearchStepConfig as RuntypeVectorSearchStepConfig, type WaitUntilStepConfig as RuntypeWaitUntilStepConfig, SDK_USER_AGENT, SDK_VERSION, STEP_FIELD_REGISTRY, STEP_TYPE_TO_METHOD, type SandboxDeployEffectivePolicy, type SandboxDeployRetention, type SandboxDeploySleepPolicy, type SavedToolExecuteResponse, type Schedule, type ScheduleExecutionOptions, type ScheduleListParams, type ScheduleMessage, type ScheduleMessageSet, type ScheduleMessages, type ScheduleMutationResponse, type ScheduleRun, type ScheduleRunNowResponse, type ScheduleStatusResponse, type ScheduleTarget, type ScheduleTrigger, SchedulesEndpoint, type SearchStepConfig$1 as SearchStepConfig, type Secret, type SecretCheckResponse, type SecretDeleteResponse, type SecretSetupUrlRequest, type SecretSetupUrlResponse, SecretsEndpoint, type SelectOrganizationProviderCredentialRequest, type SelectOrganizationProviderCredentialResponse, type SendEmailStepConfig$1 as SendEmailStepConfig, type SendEventStepConfig$1 as SendEventStepConfig, type SendStreamStepConfig$1 as SendStreamStepConfig, type SetVariableStepConfig$1 as SetVariableStepConfig, type SkillDefinition, SkillDriftError, SkillEnsureConflictError, type SkillListPage, type SkillListPagination, type SkillListParams, type SkillManifestInput, type SkillMarkdownInput, type SkillOrigin, type SkillProposalStatus, SkillProposalsNamespace, type SkillPullResult, type SkillStatus, type SkillTrustLevel, type SkillVersionStatus, type SkillWithVersion, type SkillWriteInput, SkillsNamespace, type SlackAppStatusResponse, type SlackInstallRequest, type SlackManifestRequest, type SlackManifestResponse, type SlackOAuthStartRequest, type SlackOAuthStartResponse, type StepCompleteEvent, type StepDeltaEvent, type StepFallback, type StepFieldMeta, type StepStartEvent, type StepWaitingLocalEvent, type StreamCallbacks, type StreamConsumeOptions, type StreamEvent, type StreamEventOf, type SubagentToolConfig, type Surface, type SurfaceDefinition, type SurfaceDefinitionStatus, type SurfaceDefinitionType, SurfaceDriftError, SurfaceEnsureConflictError, type SurfaceListParams, type SurfacePullResult, SurfacesEndpoint, SurfacesNamespace, type TextContentPart, type Tool, type ToolApprovalGrant, ToolApprovalGrantsEndpoint, type ToolConfig, type ToolDefinition, type ToolDefinitionType, ToolDriftError, ToolEnsureConflictError, type ToolPullResult, type ToolWithValidation, type ToolsConfig, ToolsEndpoint, ToolsNamespace, type TransformDataStepConfig$1 as TransformDataStepConfig, type TypedCreateRecordRequest, type TypedRecordListItem, type TypedRecordWriteResponse, TypedRecordsScope, type TypedRuntypeRecord, UNIFIED_EVENTS_QUERY, type UpdateClientTokenRequest, type UpdateCollectionRequest, type UpdateCollectionResponse, type UpdateConversationRequest, type UpdateEvalCaseInput, type UpdateEvalSuiteInput, type UpdateFlowRequest, type UpdatePromptData, type UpdateProviderKeyRequest, type UpdateScheduleRequest, type UpdateSecretRequest, type UpdateToolRequest, type UpdatedAgent, type UpdatedFlow, type UpsertFlowConfig$1 as UpsertFlowConfig, type UpsertOptions, type UpsertRecordStepConfig$1 as UpsertRecordStepConfig, type UserProfile, UsersEndpoint, type ValidateAgentPromotionInput, type ValidateExistingRecordsResponse, type VectorSearchStepConfig$1 as VectorSearchStepConfig, type VersionPublishOptions, type VersionType, type WaitUntilStepConfig$1 as WaitUntilStepConfig, type WorkflowCompileDeps, type WorkflowCompletionCriteriaConfig, type WorkflowConfig, type WorkflowConfigFactory, type WorkflowContext, type WorkflowDefinition, type WorkflowHookEntry, type WorkflowHookKind, type WorkflowHookRef, type WorkflowHookSignatures, type WorkflowMilestoneConfig, type WorkflowPhase, type WorkflowPolicyConfig, type WorkflowRecoveryConfig, type WorkflowSlot, type WorkflowStallPolicy, activateAgentPromotion, agentAliasErrorCode, applyGeneratedRuntimeToolProposalToDispatchRequest, attachRuntimeToolsToDispatchRequest, buildAgentAdmissionHeaders, buildEmptySessionNudge, buildExecutionEventsPath, buildGeneratedRuntimeToolGateOutput, buildLedgerOffloadReference, buildObservationMaskMarker, buildPolicyGuidance, buildSendViewOffloadMarker, calledTool, combineAbortSignals, compileWorkflowConfig, completed, computeAgentContentHash, computeEvalContentHash, computeFlowContentHash, computeFpoContentHash, computeProductContentHash, computeSkillContentHash, computeSurfaceContentHash, computeToolContentHash, contains, cost, createAgentEventTranslator, createClient, createExternalTool, createFlowEventTranslator, defaultWorkflow, defaultWorkflowConfig, defineAgent, defineEval, defineFlow, defineFpo, definePlaybook, defineProduct, defineSkill, defineSurface, defineTool, deployWorkflow, ensureDefaultWorkflowHooks, ensureEval, ensureFpo, evaluateGeneratedRuntimeToolProposal, extractDeclaredToolResultChars, gameWorkflow, getDefaultPlanPath, getLikelySupportingCandidatePaths, interpolateWorkflowTemplate, isBuiltinToolExecuteResponse, isCatalogClientToolRef, isDiscoveryToolName, isMarathonArtifactPath, isPreservationSensitiveTask, isUnifiedEventType, isWorkflowHookRef, jsonField, judge, judges, latency, length, listWorkflowHooks, matchesExpected, maxToolCalls, noError, normalizeAgentDefinition, normalizeCandidatePath, normalizeFpoDefinition, normalizeProductDefinition, normalizeSkillDefinition, normalizeSurfaceDefinition, normalizeToolDefinition, notCalledTool, notContains, parseFinalBuffer, parseLedgerArtifactRelativePath, parseOffloadedOutputId, parseSSEChunk, prepareAgentPromotion, processStream, promoteAgent, promotionIdempotencyKey, pullEval, pullFpo, ranStep, regex, registerWorkflowHook, resolveStallStopAfter, resolveWorkflowHook, runEvalSuite, sanitizeTaskSlug, shouldInjectEmptySessionNudge, shouldRequestModelEscalation, stepOrder, streamEvents, toolOrder, unregisterWorkflowHook, usedNoTools, validJson, validateAgentPromotion, withDetachedReconnect, withUnifiedEvents };