@ellipsis-dev/sdk 0.17.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  interface paths {
2
- '/v1/agents/configs': {
2
+ '/v1/alerts': {
3
3
  parameters: {
4
4
  query?: never;
5
5
  header?: never;
@@ -7,90 +7,46 @@ interface paths {
7
7
  cookie?: never;
8
8
  };
9
9
  /**
10
- * List Agent Configs
11
- * @description List saved agent configs.
12
- */
13
- get: operations['list_agent_configs'];
14
- put?: never;
15
- /**
16
- * Create Agent Config
17
- * @description Create an agent config, managed through the API: no file, live
18
- * immediately. To put its definition in a repository instead, create
19
- * it here and then POST /v1/agents/configs/{config_id}/link.
10
+ * List Alerts
11
+ * @description List budget alerts for the organization, newest first.
20
12
  *
21
- * 409 when another live agent already holds the name.
22
- */
23
- post: operations['create_agent_config'];
24
- delete?: never;
25
- options?: never;
26
- head?: never;
27
- patch?: never;
28
- trace?: never;
29
- };
30
- '/v1/agents/configs/{config_id}': {
31
- parameters: {
32
- query?: never;
33
- header?: never;
34
- path?: never;
35
- cookie?: never;
36
- };
37
- /**
38
- * Get Agent Config
39
- * @description Return one saved agent config, by id or by the agent's name.
40
- */
41
- get: operations['get_agent_config'];
42
- /**
43
- * Update Agent Config
44
- * @description Replace an agent's definition, by id or by the agent's name.
13
+ * Optionally filtered by status and source.
45
14
  *
46
- * The whole definition is replaced, and the change is live at
47
- * once. Only for agents managed through this API: one defined by a
48
- * repository file is a 409, since the next push to that file would
49
- * revert the change — unlink it first to take ownership.
15
+ * Available to all credential types, so an agent can check "is
16
+ * this org near budget?" mid-task.
50
17
  */
51
- put: operations['update_agent_config'];
18
+ get: operations['list_alerts'];
19
+ put?: never;
52
20
  post?: never;
53
- /**
54
- * Delete Agent Config
55
- * @description Delete an agent, by id or by the agent's name.
56
- *
57
- * The agent stops running and its name is freed immediately; its
58
- * past sessions remain readable. Only for agents managed through
59
- * this API — delete the file to remove one defined by a
60
- * repository.
61
- */
62
- delete: operations['delete_agent_config'];
21
+ delete?: never;
63
22
  options?: never;
64
23
  head?: never;
65
24
  patch?: never;
66
25
  trace?: never;
67
26
  };
68
- '/v1/agents/configs/{config_id}/link': {
27
+ '/v1/alerts/{alert_id}': {
69
28
  parameters: {
70
29
  query?: never;
71
30
  header?: never;
72
31
  path?: never;
73
32
  cookie?: never;
74
33
  };
75
- get?: never;
76
- put?: never;
77
34
  /**
78
- * Link Agent Config
79
- * @description Move an agent into a repository, by id or by the agent's name.
35
+ * Get Alert
36
+ * @description Return one alert by id.
80
37
  *
81
- * Opens a pull request adding the agent's config file. The agent
82
- * keeps running unchanged meanwhile; merging hands it over to the
83
- * file, after which the file is what changes it. Nothing happens
84
- * if the pull request is never merged.
38
+ * 404 if it doesn't exist or belongs to another organization.
85
39
  */
86
- post: operations['link_agent_config'];
40
+ get: operations['get_alert'];
41
+ put?: never;
42
+ post?: never;
87
43
  delete?: never;
88
44
  options?: never;
89
45
  head?: never;
90
46
  patch?: never;
91
47
  trace?: never;
92
48
  };
93
- '/v1/agents/configs/{config_id}/unlink': {
49
+ '/v1/alerts/{alert_id}/dismiss': {
94
50
  parameters: {
95
51
  query?: never;
96
52
  header?: never;
@@ -100,21 +56,19 @@ interface paths {
100
56
  get?: never;
101
57
  put?: never;
102
58
  /**
103
- * Unlink Agent Config
104
- * @description Take over an agent from its file, by id or by the agent's name.
59
+ * Dismiss Alert
60
+ * @description Dismiss an open alert and return it.
105
61
  *
106
- * The file stops governing the agent immediately and further
107
- * changes go through this API. The file is left in place, inert —
108
- * delete it whenever you like.
62
+ * 409 when the alert is not open; 404 when it doesn't exist.
109
63
  */
110
- post: operations['unlink_agent_config'];
64
+ post: operations['dismiss_alert'];
111
65
  delete?: never;
112
66
  options?: never;
113
67
  head?: never;
114
68
  patch?: never;
115
69
  trace?: never;
116
70
  };
117
- '/v1/agents/defaults': {
71
+ '/v1/analytics/metrics': {
118
72
  parameters: {
119
73
  query?: never;
120
74
  header?: never;
@@ -122,58 +76,18 @@ interface paths {
122
76
  cookie?: never;
123
77
  };
124
78
  /**
125
- * List Agent Defaults
126
- * @description Get the default agent configs.
127
- *
128
- * The account-wide default and the per-repository defaults, as config
129
- * ids. Repo rungs are keyed "owner/name"; a repository this
130
- * installation can no longer see is omitted.
131
- */
132
- get: operations['list_agent_defaults'];
133
- /**
134
- * Put Agent Default
135
- * @description Set a default agent config.
136
- *
137
- * Addressed by rung: the account rung (repository omitted) or a
138
- * repository rung ("owner/name"); the config by id or by the
139
- * agent's name. Returns the full resulting ladder.
140
- *
141
- * Refused for sandbox tokens (potentially prompt-injected code
142
- * must not repoint the account's ambient default); an unknown or
143
- * foreign repository is a 404.
144
- */
145
- put: operations['put_agent_default'];
146
- post?: never;
147
- /**
148
- * Delete Agent Default
149
- * @description Clear a default agent config.
150
- *
151
- * Addressed by rung: the account rung (repository omitted) or a
152
- * repository rung.
79
+ * Get Analytics Metrics
80
+ * @description Return PR and review analytics metrics.
153
81
  *
154
- * Refused for sandbox tokens.
155
- */
156
- delete: operations['delete_agent_default'];
157
- options?: never;
158
- head?: never;
159
- patch?: never;
160
- trace?: never;
161
- };
162
- '/v1/agents/templates': {
163
- parameters: {
164
- query?: never;
165
- header?: never;
166
- path?: never;
167
- cookie?: never;
168
- };
169
- /**
170
- * List Agent Templates
171
- * @description List the built-in starter agent templates.
82
+ * The same data as the analytics dashboard.
172
83
  *
173
- * Behind auth but not account-scoped — the data is static
174
- * product content shared by the dashboard, landing site, and CLI.
84
+ * Windowing: pass explicit start/end, or days (default: the last
85
+ * 30 days). account_type in all|user|bot scopes the authors (bot =
86
+ * the apps/agents). Available to all credential types: the
87
+ * responses expose the organization's own GitHub PR/review activity,
88
+ * no secrets.
175
89
  */
176
- get: operations['list_agent_templates'];
90
+ get: operations['get_analytics_metrics'];
177
91
  put?: never;
178
92
  post?: never;
179
93
  delete?: never;
@@ -182,7 +96,7 @@ interface paths {
182
96
  patch?: never;
183
97
  trace?: never;
184
98
  };
185
- '/v1/agents/templates/{template_id}': {
99
+ '/v1/analytics/pull-requests': {
186
100
  parameters: {
187
101
  query?: never;
188
102
  header?: never;
@@ -190,10 +104,13 @@ interface paths {
190
104
  cookie?: never;
191
105
  };
192
106
  /**
193
- * Get Agent Template
194
- * @description Return one built-in agent template by slug.
107
+ * Get Analytics Pull Requests
108
+ * @description Return pull-request analytics.
109
+ *
110
+ * Windowing: pass explicit start/end, or days (default: the last
111
+ * 30 days). account_type in all|user|bot scopes the authors.
195
112
  */
196
- get: operations['get_agent_template'];
113
+ get: operations['get_analytics_pull_requests'];
197
114
  put?: never;
198
115
  post?: never;
199
116
  delete?: never;
@@ -202,7 +119,7 @@ interface paths {
202
119
  patch?: never;
203
120
  trace?: never;
204
121
  };
205
- '/v1/alerts': {
122
+ '/v1/analytics/reviews': {
206
123
  parameters: {
207
124
  query?: never;
208
125
  header?: never;
@@ -210,15 +127,15 @@ interface paths {
210
127
  cookie?: never;
211
128
  };
212
129
  /**
213
- * List Alerts
214
- * @description List budget alerts for the organization, newest first.
215
- *
216
- * Optionally filtered by status and source.
130
+ * Get Analytics Reviews
131
+ * @description Return code-review analytics.
217
132
  *
218
- * Available to all credential types, so an agent can check "is
219
- * this org near budget?" mid-task.
133
+ * account_type scopes reviewers (bot|user|all) — e.g. "what apps
134
+ * review the most PRs?" is the reviewer facets here with
135
+ * account_type=bot. Windowing: pass explicit start/end, or days
136
+ * (default: the last 30 days).
220
137
  */
221
- get: operations['list_alerts'];
138
+ get: operations['get_analytics_reviews'];
222
139
  put?: never;
223
140
  post?: never;
224
141
  delete?: never;
@@ -227,29 +144,29 @@ interface paths {
227
144
  patch?: never;
228
145
  trace?: never;
229
146
  };
230
- '/v1/alerts/{alert_id}': {
147
+ '/v1/auth/cli/poll': {
231
148
  parameters: {
232
149
  query?: never;
233
150
  header?: never;
234
151
  path?: never;
235
152
  cookie?: never;
236
153
  };
154
+ get?: never;
155
+ put?: never;
237
156
  /**
238
- * Get Alert
239
- * @description Return one alert by id.
157
+ * Cli Auth Poll
158
+ * @description Poll a device-code auth flow for its token.
240
159
  *
241
- * 404 if it doesn't exist or belongs to another organization.
160
+ * Unauthenticated; the device code identifies the flow.
242
161
  */
243
- get: operations['get_alert'];
244
- put?: never;
245
- post?: never;
162
+ post: operations['cli_auth_poll'];
246
163
  delete?: never;
247
164
  options?: never;
248
165
  head?: never;
249
166
  patch?: never;
250
167
  trace?: never;
251
168
  };
252
- '/v1/alerts/{alert_id}/dismiss': {
169
+ '/v1/auth/cli/start': {
253
170
  parameters: {
254
171
  query?: never;
255
172
  header?: never;
@@ -259,19 +176,21 @@ interface paths {
259
176
  get?: never;
260
177
  put?: never;
261
178
  /**
262
- * Dismiss Alert
263
- * @description Dismiss an open alert and return it.
179
+ * Cli Auth Start
180
+ * @description Start a device-code auth flow for the CLI.
264
181
  *
265
- * 409 when the alert is not open; 404 when it doesn't exist.
182
+ * Unauthenticated: the CLI has no credential yet — that's what
183
+ * it's obtaining. The human authorizes out-of-band in the
184
+ * dashboard.
266
185
  */
267
- post: operations['dismiss_alert'];
186
+ post: operations['cli_auth_start'];
268
187
  delete?: never;
269
188
  options?: never;
270
189
  head?: never;
271
190
  patch?: never;
272
191
  trace?: never;
273
192
  };
274
- '/v1/analytics/metrics': {
193
+ '/v1/automations': {
275
194
  parameters: {
276
195
  query?: never;
277
196
  header?: never;
@@ -279,27 +198,27 @@ interface paths {
279
198
  cookie?: never;
280
199
  };
281
200
  /**
282
- * Get Analytics Metrics
283
- * @description Return PR and review analytics metrics.
284
- *
285
- * The same data as the analytics dashboard.
286
- *
287
- * Windowing: pass explicit start/end, or days (default: the last
288
- * 30 days). account_type in all|user|bot scopes the authors (bot =
289
- * the apps/agents). Available to all credential types: the
290
- * responses expose the organization's own GitHub PR/review activity,
291
- * no secrets.
201
+ * List Automations
202
+ * @description List automations.
292
203
  */
293
- get: operations['get_analytics_metrics'];
204
+ get: operations['list_automations'];
294
205
  put?: never;
295
- post?: never;
206
+ /**
207
+ * Create Automation
208
+ * @description Create an automation, managed through the API: no file, live
209
+ * immediately. To put its definition in a repository instead, create
210
+ * it here and then POST /v1/automations/{automation_id}/link.
211
+ *
212
+ * 409 when another live automation already holds the name.
213
+ */
214
+ post: operations['create_automation'];
296
215
  delete?: never;
297
216
  options?: never;
298
217
  head?: never;
299
218
  patch?: never;
300
219
  trace?: never;
301
220
  };
302
- '/v1/analytics/pull-requests': {
221
+ '/v1/automations/{automation_id}': {
303
222
  parameters: {
304
223
  query?: never;
305
224
  header?: never;
@@ -307,47 +226,61 @@ interface paths {
307
226
  cookie?: never;
308
227
  };
309
228
  /**
310
- * Get Analytics Pull Requests
311
- * @description Return pull-request analytics.
229
+ * Get Automation
230
+ * @description Return one automation, by id or by name.
231
+ */
232
+ get: operations['get_automation'];
233
+ /**
234
+ * Update Automation
235
+ * @description Replace an automation's definition, by id or by name.
312
236
  *
313
- * Windowing: pass explicit start/end, or days (default: the last
314
- * 30 days).
237
+ * The whole definition is replaced, and the change is live at
238
+ * once. Only for automations managed through this API: one defined
239
+ * by a repository file is a 409, since the next push to that file
240
+ * would revert the change — unlink it first to take ownership.
315
241
  */
316
- get: operations['get_analytics_pull_requests'];
317
- put?: never;
242
+ put: operations['update_automation'];
318
243
  post?: never;
319
- delete?: never;
244
+ /**
245
+ * Delete Automation
246
+ * @description Delete an automation, by id or by name.
247
+ *
248
+ * It stops running and its name is freed immediately; its past
249
+ * sessions remain readable. Only for automations managed through
250
+ * this API — delete the file to remove one defined by a repository.
251
+ */
252
+ delete: operations['delete_automation'];
320
253
  options?: never;
321
254
  head?: never;
322
255
  patch?: never;
323
256
  trace?: never;
324
257
  };
325
- '/v1/analytics/reviews': {
258
+ '/v1/automations/{automation_id}/link': {
326
259
  parameters: {
327
260
  query?: never;
328
261
  header?: never;
329
262
  path?: never;
330
263
  cookie?: never;
331
264
  };
265
+ get?: never;
266
+ put?: never;
332
267
  /**
333
- * Get Analytics Reviews
334
- * @description Return code-review analytics.
268
+ * Link Automation
269
+ * @description Move an automation into a repository, by id or by name.
335
270
  *
336
- * account_type scopes reviewers (bot|user|all) — e.g. "what apps
337
- * review the most PRs?" is the reviewer facets here with
338
- * account_type=bot. Windowing: pass explicit start/end, or days
339
- * (default: the last 30 days).
271
+ * Opens a pull request adding its definition file. The automation
272
+ * keeps running unchanged meanwhile; merging hands it over to the
273
+ * file, after which the file is what changes it. Nothing happens
274
+ * if the pull request is never merged.
340
275
  */
341
- get: operations['get_analytics_reviews'];
342
- put?: never;
343
- post?: never;
276
+ post: operations['link_automation'];
344
277
  delete?: never;
345
278
  options?: never;
346
279
  head?: never;
347
280
  patch?: never;
348
281
  trace?: never;
349
282
  };
350
- '/v1/auth/cli/poll': {
283
+ '/v1/automations/{automation_id}/sessions': {
351
284
  parameters: {
352
285
  query?: never;
353
286
  header?: never;
@@ -357,19 +290,24 @@ interface paths {
357
290
  get?: never;
358
291
  put?: never;
359
292
  /**
360
- * Cli Auth Poll
361
- * @description Poll a device-code auth flow for its token.
293
+ * Start Automation Session
294
+ * @description Invoke an automation.
362
295
  *
363
- * Unauthenticated; the device code identifies the flow.
364
- */
365
- post: operations['cli_auth_poll'];
296
+ * Runs the automation exactly as defined — its persona, model,
297
+ * environment, permissions, skills, and budget bind — and returns
298
+ * the session it started. The body carries only what a caller may
299
+ * supply: the typed `input` its schema demands, an optional tighter
300
+ * `budget`, and `metadata`. For a different persona or environment,
301
+ * start a raw session with POST /v1/sessions instead.
302
+ */
303
+ post: operations['start_automation_session'];
366
304
  delete?: never;
367
305
  options?: never;
368
306
  head?: never;
369
307
  patch?: never;
370
308
  trace?: never;
371
309
  };
372
- '/v1/auth/cli/start': {
310
+ '/v1/automations/{automation_id}/unlink': {
373
311
  parameters: {
374
312
  query?: never;
375
313
  header?: never;
@@ -379,14 +317,14 @@ interface paths {
379
317
  get?: never;
380
318
  put?: never;
381
319
  /**
382
- * Cli Auth Start
383
- * @description Start a device-code auth flow for the CLI.
320
+ * Unlink Automation
321
+ * @description Take over an automation from its file, by id or by name.
384
322
  *
385
- * Unauthenticated: the CLI has no credential yet — that's what
386
- * it's obtaining. The human authorizes out-of-band in the
387
- * dashboard.
323
+ * The file stops governing it immediately and further changes go
324
+ * through this API. The file is left in place, inert — delete it
325
+ * whenever you like.
388
326
  */
389
- post: operations['cli_auth_start'];
327
+ post: operations['unlink_automation'];
390
328
  delete?: never;
391
329
  options?: never;
392
330
  head?: never;
@@ -441,44 +379,6 @@ interface paths {
441
379
  patch?: never;
442
380
  trace?: never;
443
381
  };
444
- '/v1/environments/defaults': {
445
- parameters: {
446
- query?: never;
447
- header?: never;
448
- path?: never;
449
- cookie?: never;
450
- };
451
- /**
452
- * List Environment Defaults
453
- * @description Get the default environments.
454
- *
455
- * The account-wide default and the per-repository defaults, as
456
- * environment ids. Repo rungs are keyed "owner/name".
457
- */
458
- get: operations['list_environment_defaults'];
459
- /**
460
- * Put Environment Default
461
- * @description Set a default environment.
462
- *
463
- * Addressed by rung: the account rung (repository omitted) or a
464
- * repository rung ("owner/name"); the environment by id or name.
465
- * Returns the full resulting ladder. Refused for sandbox tokens.
466
- */
467
- put: operations['put_environment_default'];
468
- post?: never;
469
- /**
470
- * Delete Environment Default
471
- * @description Clear a default environment.
472
- *
473
- * Addressed by rung: the account rung (repository omitted) or a
474
- * repository rung. Refused for sandbox tokens.
475
- */
476
- delete: operations['delete_environment_default'];
477
- options?: never;
478
- head?: never;
479
- patch?: never;
480
- trace?: never;
481
- };
482
382
  '/v1/environments/{environment_id}': {
483
383
  parameters: {
484
384
  query?: never;
@@ -597,12 +497,12 @@ interface paths {
597
497
  cookie?: never;
598
498
  };
599
499
  /**
600
- * Get Integrations
500
+ * List Integrations
601
501
  * @description List connected integrations.
602
502
  *
603
503
  * A read-only view, so an agent authoring another agent's
604
504
  * config can learn which repositories, channels, teams, and
605
- * organizations it may name before POST /agents/configs.
505
+ * organizations it may name before POST /automations.
606
506
  *
607
507
  * Available to all credential types including sandbox tokens: the
608
508
  * responses never include OAuth tokens or any other secret.
@@ -752,7 +652,7 @@ interface paths {
752
652
  cookie?: never;
753
653
  };
754
654
  /**
755
- * Whoami
655
+ * Current Identity
756
656
  * @description Return the identity behind the caller's credential.
757
657
  */
758
658
  get: operations['whoami'];
@@ -951,7 +851,7 @@ interface paths {
951
851
  */
952
852
  get: operations['list_secrets'];
953
853
  /**
954
- * Put Secrets
854
+ * Set Secrets
955
855
  * @description Upsert secrets.
956
856
  *
957
857
  * Returns only the secrets this call wrote, names and timestamps
@@ -1001,7 +901,7 @@ interface paths {
1001
901
  * List Agent Sessions
1002
902
  * @description List cloud agent sessions, newest first.
1003
903
  *
1004
- * Optionally filtered by config (id or `ellipsis.name`), source, time
904
+ * Optionally filtered by automation (id or name), source, time
1005
905
  * window, attributed author, repository, and whether the session is
1006
906
  * still going.
1007
907
  */
@@ -1011,13 +911,15 @@ interface paths {
1011
911
  * Start Agent Session
1012
912
  * @description Start a cloud agent session.
1013
913
  *
1014
- * Provide at most one of config_id (an id or an agent name) or
1015
- * config; with neither, the account's default-config ladder
1016
- * resolves the config. `prompt` is the first message; omit it and
1017
- * the session starts idle, waiting for one. 400 when
1018
- * interactive=false and there is no prompt or input. 422 when the
1019
- * agent declares an input schema and the request's input is absent
1020
- * or invalid.
914
+ * The daily driver: a prompt, optionally where to run it
915
+ * (`environment`) and the run's own settings, in the AgentConfig
916
+ * vocabulary. Anything omitted comes from the organization's
917
+ * settings — default model, default environment, budget — so
918
+ * `{"prompt": "..."}` alone is a complete request. `prompt` is the
919
+ * first message; omit it and the session starts idle, waiting for
920
+ * one. 400 when `interactive` is false and there is no prompt, or
921
+ * when `budget` exceeds the organization's per-session ceiling. To
922
+ * run a saved automation, use POST /v1/automations/{automation_id}/sessions.
1021
923
  */
1022
924
  post: operations['start_agent_session'];
1023
925
  delete?: never;
@@ -1034,7 +936,7 @@ interface paths {
1034
936
  cookie?: never;
1035
937
  };
1036
938
  /**
1037
- * Search Sessions
939
+ * Search Agent Sessions
1038
940
  * @description Search sessions over steps, recaps, and pull requests.
1039
941
  *
1040
942
  * Grouped by session, over everything a session left behind: step text, recap text, created
@@ -1097,8 +999,7 @@ interface paths {
1097
999
  * instructions + the config's own instructions).
1098
1000
  *
1099
1001
  * Per execution because each cold wake persists its own launch
1100
- * config (a config edit or replay override between wakes changes
1101
- * it).
1002
+ * config (a config edit between wakes changes it).
1102
1003
  */
1103
1004
  get: operations['get_agent_session_executions'];
1104
1005
  put?: never;
@@ -1215,31 +1116,6 @@ interface paths {
1215
1116
  patch?: never;
1216
1117
  trace?: never;
1217
1118
  };
1218
- '/v1/sessions/{session_id}/replay': {
1219
- parameters: {
1220
- query?: never;
1221
- header?: never;
1222
- path?: never;
1223
- cookie?: never;
1224
- };
1225
- get?: never;
1226
- put?: never;
1227
- /**
1228
- * Replay Agent Session
1229
- * @description Replay a session as a new session.
1230
- *
1231
- * Reuses the original config snapshot unless config_id is given,
1232
- * and accepts the same config_override as session start — e.g.
1233
- * {"claude": {"model": ...}} to replay the same input on a
1234
- * different model.
1235
- */
1236
- post: operations['replay_agent_session'];
1237
- delete?: never;
1238
- options?: never;
1239
- head?: never;
1240
- patch?: never;
1241
- trace?: never;
1242
- };
1243
1119
  '/v1/sessions/{session_id}/stop': {
1244
1120
  parameters: {
1245
1121
  query?: never;
@@ -1288,7 +1164,7 @@ interface paths {
1288
1164
  patch?: never;
1289
1165
  trace?: never;
1290
1166
  };
1291
- '/v1/usage': {
1167
+ '/v1/settings/organization': {
1292
1168
  parameters: {
1293
1169
  query?: never;
1294
1170
  header?: never;
@@ -1296,11 +1172,26 @@ interface paths {
1296
1172
  cookie?: never;
1297
1173
  };
1298
1174
  /**
1299
- * Get Usage Endpoint
1300
- * @description Return the caller's usage dashboard data.
1175
+ * Get Organization Settings
1176
+ * @description Get the organization settings.
1177
+ *
1178
+ * The default model and default environment every session falls
1179
+ * back to when neither its request nor its automation names one,
1180
+ * and the per-session budget ceiling no session may exceed.
1301
1181
  */
1302
- get: operations['get_usage_endpoint'];
1303
- put?: never;
1182
+ get: operations['get_organization_settings'];
1183
+ /**
1184
+ * Set Organization Settings
1185
+ * @description Set the organization settings.
1186
+ *
1187
+ * Replaces all three: `default_model` accepts an alias or canonical
1188
+ * id and is stored canonical; `default_environment` accepts a name
1189
+ * or `env_` id and is stored as the id; `budget_ceiling.session` is
1190
+ * in US dollars, at most the platform ceiling. Null clears each.
1191
+ * Refused for sandbox tokens (potentially prompt-injected code must
1192
+ * not repoint the organization's defaults).
1193
+ */
1194
+ put: operations['put_organization_settings'];
1304
1195
  post?: never;
1305
1196
  delete?: never;
1306
1197
  options?: never;
@@ -1308,22 +1199,84 @@ interface paths {
1308
1199
  patch?: never;
1309
1200
  trace?: never;
1310
1201
  };
1311
- }
1312
- interface components {
1313
- schemas: {
1314
- /** AgentConfig */
1315
- AgentConfig: {
1316
- /** @default {} */
1317
- budget: components['schemas']['AgentConfigBudget'];
1318
- /**
1319
- * @default {
1320
- * "model": "claude-opus-5",
1321
- * "system": ""
1322
- * }
1323
- */
1324
- claude: components['schemas']['AgentConfigClaude'];
1325
- codex?: components['schemas']['AgentConfigCodex'] | null;
1326
- /**
1202
+ '/v1/templates': {
1203
+ parameters: {
1204
+ query?: never;
1205
+ header?: never;
1206
+ path?: never;
1207
+ cookie?: never;
1208
+ };
1209
+ /**
1210
+ * List Agent Templates
1211
+ * @description List the built-in starter agent templates.
1212
+ *
1213
+ * Behind auth but not account-scoped — the data is static
1214
+ * product content shared by the dashboard, landing site, and CLI.
1215
+ */
1216
+ get: operations['list_agent_templates'];
1217
+ put?: never;
1218
+ post?: never;
1219
+ delete?: never;
1220
+ options?: never;
1221
+ head?: never;
1222
+ patch?: never;
1223
+ trace?: never;
1224
+ };
1225
+ '/v1/templates/{template_id}': {
1226
+ parameters: {
1227
+ query?: never;
1228
+ header?: never;
1229
+ path?: never;
1230
+ cookie?: never;
1231
+ };
1232
+ /**
1233
+ * Get Agent Template
1234
+ * @description Return one built-in agent template by slug.
1235
+ */
1236
+ get: operations['get_agent_template'];
1237
+ put?: never;
1238
+ post?: never;
1239
+ delete?: never;
1240
+ options?: never;
1241
+ head?: never;
1242
+ patch?: never;
1243
+ trace?: never;
1244
+ };
1245
+ '/v1/usage': {
1246
+ parameters: {
1247
+ query?: never;
1248
+ header?: never;
1249
+ path?: never;
1250
+ cookie?: never;
1251
+ };
1252
+ /**
1253
+ * Get Usage
1254
+ * @description Return the caller's usage dashboard data.
1255
+ */
1256
+ get: operations['get_usage_endpoint'];
1257
+ put?: never;
1258
+ post?: never;
1259
+ delete?: never;
1260
+ options?: never;
1261
+ head?: never;
1262
+ patch?: never;
1263
+ trace?: never;
1264
+ };
1265
+ }
1266
+ interface components {
1267
+ schemas: {
1268
+ /** AgentConfig */
1269
+ AgentConfig: {
1270
+ /** @default {} */
1271
+ budget: components['schemas']['AgentConfigBudget'];
1272
+ /**
1273
+ * @default {
1274
+ * "system": ""
1275
+ * }
1276
+ */
1277
+ claude: components['schemas']['AgentConfigClaude'];
1278
+ codex?: components['schemas']['AgentConfigCodex'] | null;
1279
+ /**
1327
1280
  * @default {
1328
1281
  * "enabled": true,
1329
1282
  * "metadata": {
@@ -1381,11 +1334,8 @@ interface components {
1381
1334
  fallback_model?: string | null;
1382
1335
  /** Max Turns */
1383
1336
  max_turns?: number | null;
1384
- /**
1385
- * Model
1386
- * @default claude-opus-5
1387
- */
1388
- model: string;
1337
+ /** Model */
1338
+ model?: string | null;
1389
1339
  settings?: components['schemas']['AgentConfigSettingsRef'] | null;
1390
1340
  /**
1391
1341
  * System
@@ -1751,9 +1701,14 @@ interface components {
1751
1701
  /**
1752
1702
  * AgentConfigMentionPlatform
1753
1703
  * @description The surface an @ellipsis mention can come from.
1704
+ *
1705
+ * No SLACK member: Slack routing is not a trigger on an agent config, it is the
1706
+ * `slack.yaml` routing file (`SlackConfig`), which answers the questions a
1707
+ * platform list cannot — which channel, and whose DM. A mention trigger listing
1708
+ * `slack` is therefore a config error, not a silently-never-fires config.
1754
1709
  * @enum {string}
1755
1710
  */
1756
- AgentConfigMentionPlatform: 'github' | 'slack' | 'linear';
1711
+ AgentConfigMentionPlatform: 'github' | 'linear';
1757
1712
  /** AgentConfigMentionTrigger */
1758
1713
  AgentConfigMentionTrigger: {
1759
1714
  /**
@@ -1843,14 +1798,6 @@ interface components {
1843
1798
  /** Ref */
1844
1799
  ref?: string | null;
1845
1800
  };
1846
- /**
1847
- * AgentConfigResponse
1848
- * @description One saved agent config.
1849
- */
1850
- AgentConfigResponse: {
1851
- /** @description The saved agent config. */
1852
- config: components['schemas']['Config'];
1853
- };
1854
1801
  /**
1855
1802
  * AgentConfigSettingsRef
1856
1803
  * @description A config-declared Claude Code settings.json, resolved at run start and
@@ -1913,42 +1860,6 @@ interface components {
1913
1860
  file: string;
1914
1861
  repository?: components['schemas']['AgentConfigRepository'] | null;
1915
1862
  };
1916
- /**
1917
- * AgentConfigsListResponse
1918
- * @description The caller's saved agent configs.
1919
- */
1920
- AgentConfigsListResponse: {
1921
- /**
1922
- * Configs
1923
- * @description Saved agent configs.
1924
- */
1925
- configs: components['schemas']['Config'][];
1926
- };
1927
- /**
1928
- * AgentDefaults
1929
- * @description Which agent config serves sessions started without an explicit config:
1930
- * one account-wide rung, plus a rung per repository.
1931
- *
1932
- * Values are config ids — stable across renames, unlike the agent's name.
1933
- * A repo rung whose repository this installation can no longer see is absent
1934
- * from `repositories`; its row is left in place, so re-installing the repo
1935
- * brings the rung back.
1936
- */
1937
- AgentDefaults: {
1938
- /**
1939
- * Account
1940
- * @description Config id serving sessions with no repository context, or null when no account default is set.
1941
- */
1942
- account?: string | null;
1943
- /**
1944
- * Repositories
1945
- * @description Config id per repository, keyed "owner/name". A repository with no default set is absent.
1946
- * @default {}
1947
- */
1948
- repositories: {
1949
- [key: string]: string;
1950
- };
1951
- };
1952
1863
  /**
1953
1864
  * AgentTemplate
1954
1865
  * @description A built-in agent template: a ready-to-use agent config plus the
@@ -2342,6 +2253,108 @@ interface components {
2342
2253
  */
2343
2254
  prs: number;
2344
2255
  };
2256
+ /**
2257
+ * Automation
2258
+ * @description An automation: a saved agent definition that runs on its trigger or
2259
+ * when invoked, plus where it syncs from and the state of that sync.
2260
+ */
2261
+ Automation: {
2262
+ /** @description The agent definition itself, in the same schema as a YAML file under agents/. */
2263
+ agent_config: components['schemas']['AgentConfig'];
2264
+ /** @description The repository, path, and branch the automation syncs from. Null only transiently, before the creating pull request's file lands on the branch. */
2265
+ agent_config_source_details?: components['schemas']['AgentConfigSourceGithub'] | null;
2266
+ /**
2267
+ * Created At
2268
+ * Format: date-time
2269
+ * @description When the automation was created.
2270
+ */
2271
+ created_at: string;
2272
+ /**
2273
+ * Display Name
2274
+ * @description The raw ellipsis.name display text from the config file.
2275
+ */
2276
+ display_name?: string | null;
2277
+ /** @description The GitHub account that last edited the automation, when the edit came from a known user. */
2278
+ edited_by?: components['schemas']['GithubAccountSnippet'] | null;
2279
+ /**
2280
+ * Id
2281
+ * @description Unique identifier of the automation.
2282
+ */
2283
+ id: string;
2284
+ /**
2285
+ * Last Session Created At
2286
+ * @description When that most recent session was created.
2287
+ */
2288
+ last_session_created_at?: string | null;
2289
+ /**
2290
+ * Last Session Id
2291
+ * @description The most recent session this automation started, or null if it has never run.
2292
+ */
2293
+ last_session_id?: string | null;
2294
+ /**
2295
+ * Last Sync Error
2296
+ * @description The parse or validation error from the most recent sync attempt, or null when it succeeded. A non-null value means the automation is not running the YAML currently on the branch.
2297
+ */
2298
+ last_sync_error?: string | null;
2299
+ /**
2300
+ * Last Synced Commit Sha
2301
+ * @description The last commit the automation was synced from.
2302
+ */
2303
+ last_synced_commit_sha?: string | null;
2304
+ /** @description Which writer owns this automation. "github" automations are defined by a file in a repository and are changed by editing that file; "api" automations have no file and are changed through this API. */
2305
+ managed_by: components['schemas']['ConfigManagedBy'];
2306
+ /**
2307
+ * Name
2308
+ * @description The automation's account-unique addressable name (a slug of its display name); usable anywhere an automation is referenced, interchangeably with the id.
2309
+ */
2310
+ name?: string | null;
2311
+ /**
2312
+ * Pending Pull Request Url
2313
+ * @description The open pull request that adds this automation's file. Non-null means the automation is not live yet: it starts running once the pull request merges and syncs.
2314
+ */
2315
+ pending_pull_request_url?: string | null;
2316
+ /**
2317
+ * Sha
2318
+ * @description The definition's content identity: the version fingerprint frozen onto each session that runs it.
2319
+ */
2320
+ sha: string;
2321
+ /**
2322
+ * Updated At
2323
+ * Format: date-time
2324
+ * @description When the automation was last updated.
2325
+ */
2326
+ updated_at: string;
2327
+ };
2328
+ /**
2329
+ * AutomationResponse
2330
+ * @description One automation.
2331
+ */
2332
+ AutomationResponse: {
2333
+ /** @description The automation. */
2334
+ automation: components['schemas']['Automation'];
2335
+ };
2336
+ /**
2337
+ * AutomationsListResponse
2338
+ * @description The caller's automations.
2339
+ */
2340
+ AutomationsListResponse: {
2341
+ /**
2342
+ * Automations
2343
+ * @description Automations.
2344
+ */
2345
+ automations: components['schemas']['Automation'][];
2346
+ };
2347
+ /**
2348
+ * BudgetCeiling
2349
+ * @description The organization's spend ceilings, in US dollars.
2350
+ */
2351
+ BudgetCeiling: {
2352
+ /**
2353
+ * Session
2354
+ * @description The most a single session may be budgeted, in US dollars. A session request or automation asking for more is refused with 400. Null means the platform ceiling applies.
2355
+ */
2356
+ session?: number | null;
2357
+ };
2345
2358
  /**
2346
2359
  * BudgetSource
2347
2360
  * @description Which layer actually determined the enforced budget.
@@ -2894,78 +2907,6 @@ interface components {
2894
2907
  } & {
2895
2908
  [key: string]: unknown;
2896
2909
  };
2897
- /**
2898
- * Config
2899
- * @description A saved agent config: the stored row for one agent, plus where it syncs
2900
- * from and the state of that sync.
2901
- */
2902
- Config: {
2903
- /** @description The agent definition itself, as parsed from its YAML file. */
2904
- agent_config: components['schemas']['AgentConfig'];
2905
- /** @description The repository, path, and branch the config syncs from. Null only transiently, before the creating pull request's file lands on the branch. */
2906
- agent_config_source_details?: components['schemas']['AgentConfigSourceGithub'] | null;
2907
- /**
2908
- * Created At
2909
- * Format: date-time
2910
- * @description When the config was created.
2911
- */
2912
- created_at: string;
2913
- /**
2914
- * Display Name
2915
- * @description The raw ellipsis.name display text from the config file.
2916
- */
2917
- display_name?: string | null;
2918
- /** @description The GitHub account that last edited the config, when the edit came from a known user. */
2919
- edited_by?: components['schemas']['GithubAccountSnippet'] | null;
2920
- /**
2921
- * Id
2922
- * @description Unique identifier of the config.
2923
- */
2924
- id: string;
2925
- /**
2926
- * Last Session Created At
2927
- * @description When that most recent session was created.
2928
- */
2929
- last_session_created_at?: string | null;
2930
- /**
2931
- * Last Session Id
2932
- * @description The most recent session started from this config, or null if it has never run.
2933
- */
2934
- last_session_id?: string | null;
2935
- /**
2936
- * Last Sync Error
2937
- * @description The parse or validation error from the most recent sync attempt, or null when it succeeded. A non-null value means the agent is not running the YAML currently on the branch.
2938
- */
2939
- last_sync_error?: string | null;
2940
- /**
2941
- * Last Synced Commit Sha
2942
- * @description The last commit the config was synced from.
2943
- */
2944
- last_synced_commit_sha?: string | null;
2945
- /** @description Which writer owns this agent. "github" agents are defined by a file in a repository and are changed by editing that file; "api" agents have no file and are changed through this API. */
2946
- managed_by: components['schemas']['ConfigManagedBy'];
2947
- /**
2948
- * Name
2949
- * @description The agent's customer-unique addressable name (a slug of its display name); usable anywhere an agent is referenced, interchangeably with the id.
2950
- */
2951
- name?: string | null;
2952
- /**
2953
- * Pending Pull Request Url
2954
- * @description The open pull request that adds this config's file. Non-null means the agent is not live yet: it starts running once the pull request merges and syncs.
2955
- */
2956
- pending_pull_request_url?: string | null;
2957
- /**
2958
- * Sha
2959
- * @description The config's content identity: the version fingerprint frozen onto each session that runs it.
2960
- */
2961
- sha: string;
2962
- /**
2963
- * Updated At
2964
- * Format: date-time
2965
- * @description When the config was last updated.
2966
- */
2967
- updated_at: string;
2968
- };
2969
2910
  /**
2970
2911
  * ConfigManagedBy
2971
2912
  * @description Which writer owns an agent: the repository file it is defined in, or
@@ -3018,12 +2959,12 @@ interface components {
3018
2959
  reviews: number;
3019
2960
  };
3020
2961
  /**
3021
- * CreateAgentConfigRequest
3022
- * @description Parameters for creating an agent config.
2962
+ * CreateAutomationRequest
2963
+ * @description Parameters for creating an automation.
3023
2964
  */
3024
- CreateAgentConfigRequest: {
3025
- /** @description The agent's definition. */
3026
- config: components['schemas']['AgentConfig'];
2965
+ CreateAutomationRequest: {
2966
+ /** @description The automation's definition, in the same schema as a YAML file under agents/. */
2967
+ automation: components['schemas']['AgentConfig'];
3027
2968
  };
3028
2969
  /**
3029
2970
  * CreateEnvironmentRequest
@@ -3308,27 +3249,6 @@ interface components {
3308
3249
  /** Name */
3309
3250
  name?: string | null;
3310
3251
  };
3311
- /**
3312
- * EnvironmentDefaults
3313
- * @description Which environment serves sessions whose config carries no environment
3314
- * of its own: one account-wide rung, plus a rung per repository. Values are
3315
- * environment ids — stable across renames, unlike names.
3316
- */
3317
- EnvironmentDefaults: {
3318
- /**
3319
- * Account
3320
- * @description Environment id serving sessions with no repository context, or null when no account default is set.
3321
- */
3322
- account?: string | null;
3323
- /**
3324
- * Repositories
3325
- * @description Environment id per repository, keyed "owner/name". A repository with no default set is absent.
3326
- * @default {}
3327
- */
3328
- repositories: {
3329
- [key: string]: string;
3330
- };
3331
- };
3332
3252
  /**
3333
3253
  * EnvironmentResponse
3334
3254
  * @description One saved environment.
@@ -3363,7 +3283,7 @@ interface components {
3363
3283
  ErrorInfo: {
3364
3284
  /**
3365
3285
  * Code
3366
- * @description Stable machine-readable error code. Open vocabulary — handle unknown codes by HTTP status. Known values: account_blocked, conflict, contact_email_required, failed_dependency, file_quota_exceeded, forbidden, internal_error, invalid_request, not_found, rate_limit_exceeded, rate_limited, review_in_flight, session_closed, session_ephemeral_trigger, session_finished, session_harness_single_turn, session_mention_surface, session_non_interactive, unauthorized, unavailable.
3286
+ * @description Stable machine-readable error code. Open vocabulary — handle unknown codes by HTTP status. Known values: account_blocked, budget_exceeds_ceiling, conflict, contact_email_required, failed_dependency, file_quota_exceeded, forbidden, internal_error, invalid_request, not_found, rate_limit_exceeded, rate_limited, review_in_flight, session_closed, session_ephemeral_trigger, session_finished, session_harness_single_turn, session_mention_surface, session_non_interactive, session_not_spawner, unauthorized, unavailable.
3367
3287
  */
3368
3288
  code: string;
3369
3289
  /**
@@ -4148,13 +4068,13 @@ interface components {
4148
4068
  teams: components['schemas']['LinearTeam'][];
4149
4069
  };
4150
4070
  /**
4151
- * LinkAgentConfigRequest
4152
- * @description Where to put the config file of an agent being moved into a repository.
4071
+ * LinkAutomationRequest
4072
+ * @description Where to put the file of an automation being moved into a repository.
4153
4073
  */
4154
- LinkAgentConfigRequest: {
4074
+ LinkAutomationRequest: {
4155
4075
  /**
4156
4076
  * Path
4157
- * @description File path within the repo. Omit for the default agents/<slug>.yaml; if set it must be a location the config sync scans (a .yaml/.yml file under agents/, .agents/, ellipsis/, or .ellipsis/ at any depth).
4077
+ * @description File path within the repo. Omit for the default agents/<slug>.yaml; if set it must be a location the sync scans (a .yaml/.yml file under agents/, .agents/, ellipsis/, or .ellipsis/ at any depth).
4158
4078
  */
4159
4079
  path?: string | null;
4160
4080
  /**
@@ -4164,20 +4084,20 @@ interface components {
4164
4084
  repository: string;
4165
4085
  };
4166
4086
  /**
4167
- * LinkAgentConfigResponse
4168
- * @description The agent and the pull request that would put it in a repository.
4087
+ * LinkAutomationResponse
4088
+ * @description The automation and the pull request that would put it in a repository.
4169
4089
  */
4170
- LinkAgentConfigResponse: {
4171
- /** @description The agent, still managed through the API until the pull request merges. */
4172
- config: components['schemas']['Config'];
4090
+ LinkAutomationResponse: {
4091
+ /** @description The automation, still managed through the API until the pull request merges. */
4092
+ automation: components['schemas']['Automation'];
4173
4093
  /**
4174
4094
  * Path
4175
- * @description The file path the config will be written to.
4095
+ * @description The file path the definition will be written to.
4176
4096
  */
4177
4097
  path: string;
4178
4098
  /**
4179
4099
  * Pull Request Url
4180
- * @description The pull request that adds the config file. The agent becomes managed by that file once it merges.
4100
+ * @description The pull request that adds the file. The automation becomes managed by that file once it merges.
4181
4101
  */
4182
4102
  pull_request_url: string;
4183
4103
  };
@@ -4440,6 +4360,25 @@ interface components {
4440
4360
  * @enum {string}
4441
4361
  */
4442
4362
  OrganizationRole: 'admin' | 'member';
4363
+ /**
4364
+ * OrganizationSettings
4365
+ * @description The organization-wide session settings: the defaults and ceilings every
4366
+ * session in the account resolves against.
4367
+ */
4368
+ OrganizationSettings: {
4369
+ /** @description The organization's spend ceilings. */
4370
+ budget_ceiling?: components['schemas']['BudgetCeiling'];
4371
+ /**
4372
+ * Default Environment
4373
+ * @description The saved environment sessions run in when neither their request nor their automation names one: an `env_...` id or the environment's name on write, always the id on read. Null means the built-in basic sandbox.
4374
+ */
4375
+ default_environment?: string | null;
4376
+ /**
4377
+ * Default Model
4378
+ * @description Canonical model id every session falls back to when neither its request nor its automation names one, or null when unset (sessions then run the platform default).
4379
+ */
4380
+ default_model?: string | null;
4381
+ };
4443
4382
  /**
4444
4383
  * ParentKind
4445
4384
  * @description How a session relates to its predecessor (parent_agent_session_id) —
@@ -4681,48 +4620,14 @@ interface components {
4681
4620
  prs: number;
4682
4621
  };
4683
4622
  /**
4684
- * PutAgentDefaultRequest
4685
- * @description Parameters for setting a default agent config, at either the account
4686
- * or the repository level.
4623
+ * PutSecretsRequest
4624
+ * @description Store secrets for the account's sandboxes. Each secret is upserted by
4625
+ * name: existing names are overwritten.
4687
4626
  */
4688
- PutAgentDefaultRequest: {
4689
- /**
4690
- * Config Id
4691
- * @description The config to make the default: a config id, or the agent's customer-unique `ellipsis.name`.
4692
- */
4693
- config_id: string;
4627
+ PutSecretsRequest: {
4694
4628
  /**
4695
- * Repository
4696
- * @description The rung to set: "owner/name" for a repo default; omit to set the account default. Unlike session start's silent ignore, an unknown or foreign repo here is a 404.
4697
- */
4698
- repository?: string | null;
4699
- };
4700
- /**
4701
- * PutEnvironmentDefaultRequest
4702
- * @description Parameters for setting a default environment, at either the account or
4703
- * the repository level.
4704
- */
4705
- PutEnvironmentDefaultRequest: {
4706
- /**
4707
- * Environment
4708
- * @description The environment to make the default: an environment id, or its customer-unique name.
4709
- */
4710
- environment: string;
4711
- /**
4712
- * Repository
4713
- * @description The rung to set: "owner/name" for a repo default; omit to set the account default. An unknown or foreign repo is a 404.
4714
- */
4715
- repository?: string | null;
4716
- };
4717
- /**
4718
- * PutSecretsRequest
4719
- * @description Store secrets for the account's sandboxes. Each secret is upserted by
4720
- * name: existing names are overwritten.
4721
- */
4722
- PutSecretsRequest: {
4723
- /**
4724
- * Secrets
4725
- * @description The secrets to store.
4629
+ * Secrets
4630
+ * @description The secrets to store.
4726
4631
  */
4727
4632
  secrets: components['schemas']['SecretInput'][];
4728
4633
  };
@@ -4962,30 +4867,6 @@ interface components {
4962
4867
  * @enum {string}
4963
4868
  */
4964
4869
  RecordSource: 'lifecycle' | 'claude_code' | 'codex';
4965
- /**
4966
- * ReplayAgentSessionRequest
4967
- * @description Parameters for re-running an existing run's original trigger input as
4968
- * a new run.
4969
- */
4970
- ReplayAgentSessionRequest: {
4971
- /**
4972
- * Config Id
4973
- * @description A saved config to replay against. By default the original run's frozen config snapshot is reused.
4974
- */
4975
- config_id?: string | null;
4976
- /**
4977
- * Override
4978
- * @description Optional partial patch on the replayed config, applied last — e.g. {"claude": {"model": "claude-opus-4-8"}} to replay the run on a different model, or {"budget": {"session": 5.0}} to raise its budget.
4979
- */
4980
- override?: {
4981
- [key: string]: unknown;
4982
- } | null;
4983
- /**
4984
- * Prompt
4985
- * @description Per-run instructions. Omit to inherit the original run's prompt (a bare replay re-runs the same instructions); pass "" to clear it.
4986
- */
4987
- prompt?: string | null;
4988
- };
4989
4870
  /**
4990
4871
  * RepoFacet
4991
4872
  * @description A repository filter option, counted over the unfiltered window so
@@ -5267,10 +5148,10 @@ interface components {
5267
5148
  */
5268
5149
  pr_title: string;
5269
5150
  /**
5270
- * Repo Name
5271
- * @description The repository name, without the owner.
5151
+ * Repo Full Name
5152
+ * @description The repository's full "owner/name" identifier.
5272
5153
  */
5273
- repo_name: string;
5154
+ repo_full_name: string;
5274
5155
  /**
5275
5156
  * Thumbs Down
5276
5157
  * @description Thumbs-down reactions on the comment.
@@ -5523,10 +5404,10 @@ interface components {
5523
5404
  */
5524
5405
  pr_title: string;
5525
5406
  /**
5526
- * Repo Name
5527
- * @description The repository name, without the owner.
5407
+ * Repo Full Name
5408
+ * @description The repository's full "owner/name" identifier.
5528
5409
  */
5529
- repo_name: string;
5410
+ repo_full_name: string;
5530
5411
  /** @description Who submitted the review. */
5531
5412
  reviewer: components['schemas']['ReviewActor'];
5532
5413
  /**
@@ -5564,7 +5445,7 @@ interface components {
5564
5445
  ReviewRepoFacet: {
5565
5446
  /**
5566
5447
  * Repository Name
5567
- * @description The repository name, without the owner.
5448
+ * @description The repository's full "owner/name" identifier.
5568
5449
  */
5569
5450
  repository_name: string;
5570
5451
  /**
@@ -6332,23 +6213,23 @@ interface components {
6332
6213
  };
6333
6214
  /**
6334
6215
  * SessionAgent
6335
- * @description The agent this session ran: the config it actually executed, where that
6336
- * config came from, and the diff that was merged in — the same
6216
+ * @description The agent this session ran: the definition it actually executed, where
6217
+ * that definition came from, and the diff that was merged in — the same
6337
6218
  * effective-value-plus-provenance shape `SessionBudget` uses.
6338
6219
  *
6339
- * `config` is the snapshot frozen when the session was created; `config_id`
6340
- * points at the saved config as it exists NOW. They diverge legitimately: a
6341
- * YAML edit after the session started, or any `override`, leaves the pointer
6342
- * describing something the session never ran.
6220
+ * `config` is the snapshot frozen when the session was created;
6221
+ * `automation_id` points at the automation as it exists NOW. They diverge
6222
+ * legitimately: a YAML edit after the session started, or any `override`,
6223
+ * leaves the pointer describing something the session never ran.
6343
6224
  */
6344
6225
  SessionAgent: {
6345
- /** @description The agent config the session actually ran, frozen when the session was created. */
6346
- config: components['schemas']['AgentConfig'];
6347
6226
  /**
6348
- * Config Id
6349
- * @description Identifier of the saved config this session's snapshot was taken from. Null for inline, platform-default, and built-in configs. Points at the config as it exists now, which may have changed since.
6227
+ * Automation Id
6228
+ * @description Identifier of the automation this session's snapshot was taken from. Null for raw sessions (nothing saved behind them), templates, and built-in agents. Points at the automation as it exists now, which may have changed since.
6350
6229
  */
6351
- config_id?: string | null;
6230
+ automation_id?: string | null;
6231
+ /** @description The agent definition the session actually ran, frozen when the session was created. */
6232
+ config: components['schemas']['AgentConfig'];
6352
6233
  /**
6353
6234
  * Override
6354
6235
  * @description The partial-config override merged into `config` for this session, or null when the config ran unmodified. `config` is the merged result; this is the diff.
@@ -6549,6 +6430,26 @@ interface components {
6549
6430
  */
6550
6431
  repos: components['schemas']['SessionGitRepo'][];
6551
6432
  };
6433
+ /**
6434
+ * SessionGitCommit
6435
+ * @description One commit the session created in this repo (everything past the
6436
+ * provisioning checkout's sha), captured from the sandbox rather than the
6437
+ * transcript so it stays correct through amends, rebases, and commits made by
6438
+ * scripts. The repo is the parent object, so it is not repeated here.
6439
+ */
6440
+ SessionGitCommit: {
6441
+ /**
6442
+ * Committed At
6443
+ * Format: date-time
6444
+ */
6445
+ committed_at: string;
6446
+ /** Pushed */
6447
+ pushed: boolean;
6448
+ /** Sha */
6449
+ sha: string;
6450
+ /** Subject */
6451
+ subject: string;
6452
+ };
6552
6453
  /**
6553
6454
  * SessionGitFile
6554
6455
  * @description One file's uncommitted change, as `git diff HEAD --numstat` reports it
@@ -6566,10 +6467,11 @@ interface components {
6566
6467
  };
6567
6468
  /**
6568
6469
  * SessionGitPr
6569
- * @description A pull request the session opened in this repo, denormalized at capture
6570
- * time so a surface renders a labeled link without joining gh_prs. Live PR
6571
- * state (open/merged/closed) is not stored — read gh_prs where a view needs
6572
- * it. The repo is the parent object, so it is not repeated here.
6470
+ * @description A pull request the session opened in this repo, written the moment the
6471
+ * creating tool call's result lands (see extract_session_prs.PrCreateWatcher).
6472
+ * Live PR state (open/merged/closed) is not stored — it lives on gh_prs,
6473
+ * joined via `gh_pr_id` (GET /frontend/agents/sessions/{id}/git). The repo is
6474
+ * the parent object, so it is not repeated here.
6573
6475
  */
6574
6476
  SessionGitPr: {
6575
6477
  /** Gh Pr Id */
@@ -6587,6 +6489,16 @@ interface components {
6587
6489
  * it, split by whether it survived the sandbox.
6588
6490
  */
6589
6491
  SessionGitRepo: {
6492
+ /**
6493
+ * Commits
6494
+ * @default []
6495
+ */
6496
+ commits: components['schemas']['SessionGitCommit'][];
6497
+ /**
6498
+ * Commits Total
6499
+ * @default 0
6500
+ */
6501
+ commits_total: number;
6590
6502
  /** Full Name */
6591
6503
  full_name: string;
6592
6504
  /** Local Commit */
@@ -7119,37 +7031,40 @@ interface components {
7119
7031
  };
7120
7032
  /**
7121
7033
  * StartAgentSessionRequest
7122
- * @description Parameters for starting a new agent session.
7034
+ * @description Parameters for starting a raw session: where it runs, its first
7035
+ * message, and the run's own settings. Flat, in the AgentConfig vocabulary
7036
+ * — a `claude:` or `permissions:` block copied from an agents/ YAML file
7037
+ * pastes in verbatim. There is no automation behind a raw session; to run a
7038
+ * saved automation, invoke it with POST /v1/automations/{automation_id}/sessions.
7039
+ *
7040
+ * Extra keys are a 422, not silently dropped — a retired field
7041
+ * (`from_config_id`, `input`, `ellipsis`, `config_id`) must fail loudly on
7042
+ * an old client, never no-op.
7123
7043
  */
7124
7044
  StartAgentSessionRequest: {
7125
- /** @description An inline agent config to run under. At most one of config_id or config may be set; if neither is, the run resolves the account's default-config ladder (repo default, then account default, then the platform default config). */
7126
- config?: components['schemas']['AgentConfig'] | null;
7127
7045
  /**
7128
- * Config Id
7129
- * @description A saved agent config to run under: its id, or the agent's customer-unique `ellipsis.name`.
7046
+ * Budget
7047
+ * @description The most this session may spend, in US dollars. Omitted, the organization's default applies. Above the organization's per-session ceiling is a 400.
7130
7048
  */
7131
- config_id?: string | null;
7049
+ budget?: number | null;
7050
+ /** @description The Claude-harness block: `{"model": ...}` to pick this session's model, plus system/effort/fallback_model/max_turns/settings. Omit the model to run the organization's default. */
7051
+ claude?: components['schemas']['AgentConfigClaude'] | null;
7052
+ /** @description The Codex-harness block. Its presence selects the Codex harness, exactly as in a saved automation; a request may not carry both `claude` and `codex`. */
7053
+ codex?: components['schemas']['AgentConfigCodex'] | null;
7132
7054
  /**
7133
7055
  * Environment
7134
- * @description The environment to run in: a saved environment's id (`env_...`) or its customer-unique name. Only for sessions with no explicit config (the agent config decides its own environment; 400 when combined with config/config_id). Omitted, the default-environment ladder resolves: repo default, then account default, then the built-in basic sandbox.
7056
+ * @description Where the session runs. A STRING is a saved environment's name or `env_...` id. An OBJECT is an inline environment for this session only. Omitted, the session runs in the organization's default environment, else the built-in basic sandbox.
7135
7057
  */
7136
- environment?: string | null;
7058
+ environment?: string | components['schemas']['AgentConfigEnvironment'] | null;
7137
7059
  /**
7138
7060
  * Force Rebuild
7139
- * @description Skip the image cache for this session's initial provision: a fresh full build whose snapshot then refreshes the cache for later runs. A wake of a durable session provisions through the cache as usual. The CLI's `--rebuild`.
7061
+ * @description Skip the image cache for this session's initial provision: a fresh full build whose snapshot then refreshes the cache for later runs. The CLI's `--rebuild`.
7140
7062
  * @default false
7141
7063
  */
7142
7064
  force_rebuild: boolean;
7143
- /**
7144
- * Input
7145
- * @description The typed payload for an agent that declares input.json_schema: validated against the effective config's schema (422 on mismatch), rendered into the session's initial message (the agent's input.message template, or a JSON block). Required when the agent declares a schema; rejected when it does not.
7146
- */
7147
- input?: {
7148
- [key: string]: unknown;
7149
- } | null;
7150
7065
  /**
7151
7066
  * Interactive
7152
- * @description Whether the session stays open for messages after its first turn. Set false for a one-shot run that does its job and closes without holding a warm sandbox; a one-shot run must carry a prompt (or input), since nothing can ever be sent to it later. Agents on the Codex harness are one-shot regardless.
7067
+ * @description Whether the session stays open for messages after its first turn. Set false for a one-shot run that does its job and closes without holding a warm sandbox; a one-shot run must carry a prompt, since nothing can ever be sent to it later. Sessions on the Codex harness are one-shot regardless.
7153
7068
  * @default true
7154
7069
  */
7155
7070
  interactive: boolean;
@@ -7161,23 +7076,50 @@ interface components {
7161
7076
  metadata: {
7162
7077
  [key: string]: string;
7163
7078
  };
7164
- /**
7165
- * Override
7166
- * @description Optional partial patch on the RESOLVED session config, applied last — after the config and environment are chosen and the environment is substituted in. Nested objects merge key by key; scalars and arrays replace. E.g. {"environment": {"compute": {"memory": "16GB"}}} for just this session, or {"claude": {"model": "claude-opus-4-8"}}. It cannot swap in a different saved environment (it patches the resolved document; it never re-runs resolution).
7167
- */
7168
- override?: {
7169
- [key: string]: unknown;
7170
- } | null;
7079
+ /** @description The structured-output exit contract for this session. */
7080
+ output?: components['schemas']['AgentConfigOutput'] | null;
7081
+ /** @description What the session may touch, per minted credential. */
7082
+ permissions?: components['schemas']['AgentConfigPermissions'] | null;
7171
7083
  /**
7172
7084
  * Prompt
7173
7085
  * @description The session's first message. Omit it and the session starts idle: the sandbox spins up, the agent waits at the prompt, and the first message you send opens turn 0.
7174
7086
  */
7175
7087
  prompt?: string | null;
7176
7088
  /**
7177
- * Repository
7178
- * @description The "owner/name" repository the client is standing in (the CLI's detected git remote). Selects the repo rung of the defaults ladder, and is merged into the sandbox repository set (cloned at its default branch) regardless of which config source is used. An unknown or foreign repo is ignored.
7089
+ * Skills
7090
+ * @description Skills installed for this session.
7091
+ */
7092
+ skills?: components['schemas']['AgentConfigSkill'][] | null;
7093
+ };
7094
+ /**
7095
+ * StartAutomationSessionRequest
7096
+ * @description Parameters for invoking an automation. Deliberately tiny: the
7097
+ * automation's definition binds (persona, model, environment, permissions,
7098
+ * skills, budget); a caller supplies only its typed input, an optional
7099
+ * tighter budget, and metadata. Anything else is a 422 — to run with a
7100
+ * different persona or environment, start a raw session instead.
7101
+ */
7102
+ StartAutomationSessionRequest: {
7103
+ /**
7104
+ * Budget
7105
+ * @description Tighten this run's spend cap, in US dollars. May only lower the automation's own session budget; a higher number, or one above the organization's ceiling, is a 400.
7106
+ */
7107
+ budget?: number | null;
7108
+ /**
7109
+ * Input
7110
+ * @description The typed payload for an automation that declares input.json_schema: validated against it (422 on mismatch) and rendered into the session's first message through the automation's input.message template. Required when the automation declares a schema; a 422 when it does not.
7111
+ */
7112
+ input?: {
7113
+ [key: string]: unknown;
7114
+ } | null;
7115
+ /**
7116
+ * Metadata
7117
+ * @description Arbitrary string key/value metadata stored on the session.
7118
+ * @default {}
7179
7119
  */
7180
- repository?: string | null;
7120
+ metadata: {
7121
+ [key: string]: string;
7122
+ };
7181
7123
  };
7182
7124
  /**
7183
7125
  * StartCliAuthResponse
@@ -7273,12 +7215,12 @@ interface components {
7273
7215
  skipped: number;
7274
7216
  };
7275
7217
  /**
7276
- * UpdateAgentConfigRequest
7277
- * @description A replacement definition for an agent managed through the API.
7218
+ * UpdateAutomationRequest
7219
+ * @description A replacement definition for an automation managed through the API.
7278
7220
  */
7279
- UpdateAgentConfigRequest: {
7280
- /** @description The agent's new definition. Replaces the previous one wholesale — this is not a partial update. */
7281
- config: components['schemas']['AgentConfig'];
7221
+ UpdateAutomationRequest: {
7222
+ /** @description The automation's new definition. Replaces the previous one wholesale — this is not a partial update. */
7223
+ automation: components['schemas']['AgentConfig'];
7282
7224
  };
7283
7225
  /**
7284
7226
  * UpdateEnvironmentRequest
@@ -7410,9 +7352,14 @@ interface components {
7410
7352
  pathItems: never;
7411
7353
  }
7412
7354
  interface operations {
7413
- list_agent_configs: {
7355
+ list_alerts: {
7414
7356
  parameters: {
7415
- query?: never;
7357
+ query?: {
7358
+ status?: components['schemas']['AlertStatus'] | null;
7359
+ source?: components['schemas']['AlertSource'] | null;
7360
+ limit?: number;
7361
+ cursor?: string | null;
7362
+ };
7416
7363
  header?: {
7417
7364
  'user-agent'?: string | null;
7418
7365
  };
@@ -7427,7 +7374,7 @@ interface operations {
7427
7374
  [name: string]: unknown;
7428
7375
  };
7429
7376
  content: {
7430
- 'application/json': components['schemas']['AgentConfigsListResponse'];
7377
+ 'application/json': components['schemas']['AlertsListResponse'];
7431
7378
  };
7432
7379
  };
7433
7380
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7459,37 +7406,26 @@ interface operations {
7459
7406
  };
7460
7407
  };
7461
7408
  };
7462
- create_agent_config: {
7409
+ get_alert: {
7463
7410
  parameters: {
7464
7411
  query?: never;
7465
7412
  header?: {
7466
7413
  'user-agent'?: string | null;
7467
7414
  };
7468
- path?: never;
7469
- cookie?: never;
7470
- };
7471
- requestBody: {
7472
- content: {
7473
- 'application/json': components['schemas']['CreateAgentConfigRequest'];
7415
+ path: {
7416
+ alert_id: string;
7474
7417
  };
7418
+ cookie?: never;
7475
7419
  };
7420
+ requestBody?: never;
7476
7421
  responses: {
7477
7422
  /** @description Successful Response */
7478
- 201: {
7479
- headers: {
7480
- [name: string]: unknown;
7481
- };
7482
- content: {
7483
- 'application/json': components['schemas']['AgentConfigResponse'];
7484
- };
7485
- };
7486
- /** @description The config is invalid. */
7487
- 400: {
7423
+ 200: {
7488
7424
  headers: {
7489
7425
  [name: string]: unknown;
7490
7426
  };
7491
7427
  content: {
7492
- 'application/json': components['schemas']['ErrorResponse'];
7428
+ 'application/json': components['schemas']['AlertResponse'];
7493
7429
  };
7494
7430
  };
7495
7431
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7510,8 +7446,8 @@ interface operations {
7510
7446
  'application/json': components['schemas']['ErrorResponse'];
7511
7447
  };
7512
7448
  };
7513
- /** @description An agent with that name already exists. */
7514
- 409: {
7449
+ /** @description No such alert in your account. */
7450
+ 404: {
7515
7451
  headers: {
7516
7452
  [name: string]: unknown;
7517
7453
  };
@@ -7519,25 +7455,25 @@ interface operations {
7519
7455
  'application/json': components['schemas']['ErrorResponse'];
7520
7456
  };
7521
7457
  };
7522
- /** @description The agent's name contains no usable characters, or a file reference names no repository. */
7458
+ /** @description Validation Error */
7523
7459
  422: {
7524
7460
  headers: {
7525
7461
  [name: string]: unknown;
7526
7462
  };
7527
7463
  content: {
7528
- 'application/json': components['schemas']['ErrorResponse'];
7464
+ 'application/json': components['schemas']['HTTPValidationError'];
7529
7465
  };
7530
7466
  };
7531
7467
  };
7532
7468
  };
7533
- get_agent_config: {
7469
+ dismiss_alert: {
7534
7470
  parameters: {
7535
7471
  query?: never;
7536
7472
  header?: {
7537
7473
  'user-agent'?: string | null;
7538
7474
  };
7539
7475
  path: {
7540
- config_id: string;
7476
+ alert_id: string;
7541
7477
  };
7542
7478
  cookie?: never;
7543
7479
  };
@@ -7549,7 +7485,7 @@ interface operations {
7549
7485
  [name: string]: unknown;
7550
7486
  };
7551
7487
  content: {
7552
- 'application/json': components['schemas']['AgentConfigResponse'];
7488
+ 'application/json': components['schemas']['AlertResponse'];
7553
7489
  };
7554
7490
  };
7555
7491
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7570,7 +7506,7 @@ interface operations {
7570
7506
  'application/json': components['schemas']['ErrorResponse'];
7571
7507
  };
7572
7508
  };
7573
- /** @description No such config in your account. */
7509
+ /** @description No such alert in your account. */
7574
7510
  404: {
7575
7511
  headers: {
7576
7512
  [name: string]: unknown;
@@ -7579,6 +7515,15 @@ interface operations {
7579
7515
  'application/json': components['schemas']['ErrorResponse'];
7580
7516
  };
7581
7517
  };
7518
+ /** @description The alert is not open. */
7519
+ 409: {
7520
+ headers: {
7521
+ [name: string]: unknown;
7522
+ };
7523
+ content: {
7524
+ 'application/json': components['schemas']['ErrorResponse'];
7525
+ };
7526
+ };
7582
7527
  /** @description Validation Error */
7583
7528
  422: {
7584
7529
  headers: {
@@ -7590,22 +7535,27 @@ interface operations {
7590
7535
  };
7591
7536
  };
7592
7537
  };
7593
- update_agent_config: {
7538
+ get_analytics_metrics: {
7594
7539
  parameters: {
7595
- query?: never;
7540
+ query?: {
7541
+ days?: number | null;
7542
+ start?: string | null;
7543
+ end?: string | null;
7544
+ /** @description Filter to repositories by "owner/name". */
7545
+ repo?: string[] | null;
7546
+ /** @description Filter by PR-author login(s). */
7547
+ author?: string[] | null;
7548
+ account_type?: string;
7549
+ /** @description Filter by parent-PR status (open|draft|merged|closed). */
7550
+ status?: string[] | null;
7551
+ };
7596
7552
  header?: {
7597
7553
  'user-agent'?: string | null;
7598
7554
  };
7599
- path: {
7600
- config_id: string;
7601
- };
7555
+ path?: never;
7602
7556
  cookie?: never;
7603
7557
  };
7604
- requestBody: {
7605
- content: {
7606
- 'application/json': components['schemas']['UpdateAgentConfigRequest'];
7607
- };
7608
- };
7558
+ requestBody?: never;
7609
7559
  responses: {
7610
7560
  /** @description Successful Response */
7611
7561
  200: {
@@ -7613,10 +7563,10 @@ interface operations {
7613
7563
  [name: string]: unknown;
7614
7564
  };
7615
7565
  content: {
7616
- 'application/json': components['schemas']['AgentConfigResponse'];
7566
+ 'application/json': components['schemas']['GetAnalyticsMetricsResponse'];
7617
7567
  };
7618
7568
  };
7619
- /** @description The config is invalid (for example an unschedulable cron expression). */
7569
+ /** @description The time window is invalid: days combined with start, a non-positive days, or end not after start. */
7620
7570
  400: {
7621
7571
  headers: {
7622
7572
  [name: string]: unknown;
@@ -7643,66 +7593,49 @@ interface operations {
7643
7593
  'application/json': components['schemas']['ErrorResponse'];
7644
7594
  };
7645
7595
  };
7646
- /** @description No such config in your account. */
7647
- 404: {
7648
- headers: {
7649
- [name: string]: unknown;
7650
- };
7651
- content: {
7652
- 'application/json': components['schemas']['ErrorResponse'];
7653
- };
7654
- };
7655
- /** @description The agent is defined by a file in a repository, or another live agent already holds the new name. */
7656
- 409: {
7657
- headers: {
7658
- [name: string]: unknown;
7659
- };
7660
- content: {
7661
- 'application/json': components['schemas']['ErrorResponse'];
7662
- };
7663
- };
7664
- /** @description The agent's name is missing or malformed, or a file reference names no repository. */
7596
+ /** @description Validation Error */
7665
7597
  422: {
7666
7598
  headers: {
7667
7599
  [name: string]: unknown;
7668
7600
  };
7669
7601
  content: {
7670
- 'application/json': components['schemas']['ErrorResponse'];
7602
+ 'application/json': components['schemas']['HTTPValidationError'];
7671
7603
  };
7672
7604
  };
7673
7605
  };
7674
7606
  };
7675
- delete_agent_config: {
7607
+ get_analytics_pull_requests: {
7676
7608
  parameters: {
7677
- query?: never;
7609
+ query?: {
7610
+ days?: number | null;
7611
+ start?: string | null;
7612
+ end?: string | null;
7613
+ /** @description Filter to repositories by "owner/name". */
7614
+ repo?: string[] | null;
7615
+ /** @description Filter by PR-author login(s). */
7616
+ author?: string[] | null;
7617
+ account_type?: string;
7618
+ status?: string[] | null;
7619
+ };
7678
7620
  header?: {
7679
7621
  'user-agent'?: string | null;
7680
7622
  };
7681
- path: {
7682
- config_id: string;
7683
- };
7623
+ path?: never;
7684
7624
  cookie?: never;
7685
7625
  };
7686
7626
  requestBody?: never;
7687
7627
  responses: {
7688
7628
  /** @description Successful Response */
7689
- 204: {
7690
- headers: {
7691
- [name: string]: unknown;
7692
- };
7693
- content?: never;
7694
- };
7695
- /** @description The bearer token is missing, invalid, or revoked. */
7696
- 401: {
7629
+ 200: {
7697
7630
  headers: {
7698
7631
  [name: string]: unknown;
7699
7632
  };
7700
7633
  content: {
7701
- 'application/json': components['schemas']['ErrorResponse'];
7634
+ 'application/json': components['schemas']['GetAnalyticsPullRequestsResponse'];
7702
7635
  };
7703
7636
  };
7704
- /** @description The credential may not perform this action, or the account is blocked. */
7705
- 403: {
7637
+ /** @description The time window is invalid: days combined with start, a non-positive days, or end not after start. */
7638
+ 400: {
7706
7639
  headers: {
7707
7640
  [name: string]: unknown;
7708
7641
  };
@@ -7710,8 +7643,8 @@ interface operations {
7710
7643
  'application/json': components['schemas']['ErrorResponse'];
7711
7644
  };
7712
7645
  };
7713
- /** @description No such config in your account. */
7714
- 404: {
7646
+ /** @description The bearer token is missing, invalid, or revoked. */
7647
+ 401: {
7715
7648
  headers: {
7716
7649
  [name: string]: unknown;
7717
7650
  };
@@ -7719,8 +7652,8 @@ interface operations {
7719
7652
  'application/json': components['schemas']['ErrorResponse'];
7720
7653
  };
7721
7654
  };
7722
- /** @description The agent is defined by a file in a repository; delete that file instead. */
7723
- 409: {
7655
+ /** @description The credential may not perform this action, or the account is blocked. */
7656
+ 403: {
7724
7657
  headers: {
7725
7658
  [name: string]: unknown;
7726
7659
  };
@@ -7739,22 +7672,25 @@ interface operations {
7739
7672
  };
7740
7673
  };
7741
7674
  };
7742
- link_agent_config: {
7675
+ get_analytics_reviews: {
7743
7676
  parameters: {
7744
- query?: never;
7677
+ query?: {
7678
+ days?: number | null;
7679
+ start?: string | null;
7680
+ end?: string | null;
7681
+ repo?: string[] | null;
7682
+ /** @description Filter by reviewer login(s). */
7683
+ author?: string[] | null;
7684
+ account_type?: string;
7685
+ review_state?: string[] | null;
7686
+ };
7745
7687
  header?: {
7746
7688
  'user-agent'?: string | null;
7747
7689
  };
7748
- path: {
7749
- config_id: string;
7750
- };
7690
+ path?: never;
7751
7691
  cookie?: never;
7752
7692
  };
7753
- requestBody: {
7754
- content: {
7755
- 'application/json': components['schemas']['LinkAgentConfigRequest'];
7756
- };
7757
- };
7693
+ requestBody?: never;
7758
7694
  responses: {
7759
7695
  /** @description Successful Response */
7760
7696
  200: {
@@ -7762,10 +7698,10 @@ interface operations {
7762
7698
  [name: string]: unknown;
7763
7699
  };
7764
7700
  content: {
7765
- 'application/json': components['schemas']['LinkAgentConfigResponse'];
7701
+ 'application/json': components['schemas']['GetAnalyticsReviewsResponse'];
7766
7702
  };
7767
7703
  };
7768
- /** @description The path is not a synced config location, or the repository has no commits. */
7704
+ /** @description The time window is invalid: days combined with start, a non-positive days, or end not after start. */
7769
7705
  400: {
7770
7706
  headers: {
7771
7707
  [name: string]: unknown;
@@ -7792,47 +7728,29 @@ interface operations {
7792
7728
  'application/json': components['schemas']['ErrorResponse'];
7793
7729
  };
7794
7730
  };
7795
- /** @description The config or repository was not found in your account. */
7796
- 404: {
7797
- headers: {
7798
- [name: string]: unknown;
7799
- };
7800
- content: {
7801
- 'application/json': components['schemas']['ErrorResponse'];
7802
- };
7803
- };
7804
- /** @description The agent is already defined by a file, a link is already open for it, a file already exists at that path, or another agent syncs from it. */
7805
- 409: {
7806
- headers: {
7807
- [name: string]: unknown;
7808
- };
7809
- content: {
7810
- 'application/json': components['schemas']['ErrorResponse'];
7811
- };
7812
- };
7813
- /** @description GitHub rejected the pull request. */
7731
+ /** @description Validation Error */
7814
7732
  422: {
7815
7733
  headers: {
7816
7734
  [name: string]: unknown;
7817
7735
  };
7818
7736
  content: {
7819
- 'application/json': components['schemas']['ErrorResponse'];
7737
+ 'application/json': components['schemas']['HTTPValidationError'];
7820
7738
  };
7821
7739
  };
7822
7740
  };
7823
7741
  };
7824
- unlink_agent_config: {
7742
+ cli_auth_poll: {
7825
7743
  parameters: {
7826
7744
  query?: never;
7827
- header?: {
7828
- 'user-agent'?: string | null;
7829
- };
7830
- path: {
7831
- config_id: string;
7832
- };
7745
+ header?: never;
7746
+ path?: never;
7833
7747
  cookie?: never;
7834
7748
  };
7835
- requestBody?: never;
7749
+ requestBody: {
7750
+ content: {
7751
+ 'application/json': components['schemas']['CliAuthPollRequest'];
7752
+ };
7753
+ };
7836
7754
  responses: {
7837
7755
  /** @description Successful Response */
7838
7756
  200: {
@@ -7840,7 +7758,7 @@ interface operations {
7840
7758
  [name: string]: unknown;
7841
7759
  };
7842
7760
  content: {
7843
- 'application/json': components['schemas']['AgentConfigResponse'];
7761
+ 'application/json': components['schemas']['PollCliAuthResponse'];
7844
7762
  };
7845
7763
  };
7846
7764
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7861,7 +7779,7 @@ interface operations {
7861
7779
  'application/json': components['schemas']['ErrorResponse'];
7862
7780
  };
7863
7781
  };
7864
- /** @description No such config in your account. */
7782
+ /** @description Unknown device code. */
7865
7783
  404: {
7866
7784
  headers: {
7867
7785
  [name: string]: unknown;
@@ -7870,8 +7788,37 @@ interface operations {
7870
7788
  'application/json': components['schemas']['ErrorResponse'];
7871
7789
  };
7872
7790
  };
7873
- /** @description The agent is already managed through the API. */
7874
- 409: {
7791
+ /** @description Validation Error */
7792
+ 422: {
7793
+ headers: {
7794
+ [name: string]: unknown;
7795
+ };
7796
+ content: {
7797
+ 'application/json': components['schemas']['HTTPValidationError'];
7798
+ };
7799
+ };
7800
+ };
7801
+ };
7802
+ cli_auth_start: {
7803
+ parameters: {
7804
+ query?: never;
7805
+ header?: never;
7806
+ path?: never;
7807
+ cookie?: never;
7808
+ };
7809
+ requestBody?: never;
7810
+ responses: {
7811
+ /** @description Successful Response */
7812
+ 201: {
7813
+ headers: {
7814
+ [name: string]: unknown;
7815
+ };
7816
+ content: {
7817
+ 'application/json': components['schemas']['StartCliAuthResponse'];
7818
+ };
7819
+ };
7820
+ /** @description The bearer token is missing, invalid, or revoked. */
7821
+ 401: {
7875
7822
  headers: {
7876
7823
  [name: string]: unknown;
7877
7824
  };
@@ -7879,8 +7826,8 @@ interface operations {
7879
7826
  'application/json': components['schemas']['ErrorResponse'];
7880
7827
  };
7881
7828
  };
7882
- /** @description The config has a file reference that names no repository, so it cannot resolve without its source repository. */
7883
- 422: {
7829
+ /** @description The credential may not perform this action, or the account is blocked. */
7830
+ 403: {
7884
7831
  headers: {
7885
7832
  [name: string]: unknown;
7886
7833
  };
@@ -7890,7 +7837,7 @@ interface operations {
7890
7837
  };
7891
7838
  };
7892
7839
  };
7893
- list_agent_defaults: {
7840
+ list_automations: {
7894
7841
  parameters: {
7895
7842
  query?: never;
7896
7843
  header?: {
@@ -7907,7 +7854,7 @@ interface operations {
7907
7854
  [name: string]: unknown;
7908
7855
  };
7909
7856
  content: {
7910
- 'application/json': components['schemas']['AgentDefaults'];
7857
+ 'application/json': components['schemas']['AutomationsListResponse'];
7911
7858
  };
7912
7859
  };
7913
7860
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7939,7 +7886,7 @@ interface operations {
7939
7886
  };
7940
7887
  };
7941
7888
  };
7942
- put_agent_default: {
7889
+ create_automation: {
7943
7890
  parameters: {
7944
7891
  query?: never;
7945
7892
  header?: {
@@ -7950,20 +7897,20 @@ interface operations {
7950
7897
  };
7951
7898
  requestBody: {
7952
7899
  content: {
7953
- 'application/json': components['schemas']['PutAgentDefaultRequest'];
7900
+ 'application/json': components['schemas']['CreateAutomationRequest'];
7954
7901
  };
7955
7902
  };
7956
7903
  responses: {
7957
7904
  /** @description Successful Response */
7958
- 200: {
7905
+ 201: {
7959
7906
  headers: {
7960
7907
  [name: string]: unknown;
7961
7908
  };
7962
7909
  content: {
7963
- 'application/json': components['schemas']['AgentDefaults'];
7910
+ 'application/json': components['schemas']['AutomationResponse'];
7964
7911
  };
7965
7912
  };
7966
- /** @description The config is not eligible as a default: its pull request has not merged, or it is disabled. */
7913
+ /** @description The definition is invalid. */
7967
7914
  400: {
7968
7915
  headers: {
7969
7916
  [name: string]: unknown;
@@ -7990,8 +7937,8 @@ interface operations {
7990
7937
  'application/json': components['schemas']['ErrorResponse'];
7991
7938
  };
7992
7939
  };
7993
- /** @description The config or repository was not found in your account. */
7994
- 404: {
7940
+ /** @description An automation with that name already exists. */
7941
+ 409: {
7995
7942
  headers: {
7996
7943
  [name: string]: unknown;
7997
7944
  };
@@ -7999,37 +7946,38 @@ interface operations {
7999
7946
  'application/json': components['schemas']['ErrorResponse'];
8000
7947
  };
8001
7948
  };
8002
- /** @description Validation Error */
7949
+ /** @description The automation's name contains no usable characters, or a file reference names no repository. */
8003
7950
  422: {
8004
7951
  headers: {
8005
7952
  [name: string]: unknown;
8006
7953
  };
8007
7954
  content: {
8008
- 'application/json': components['schemas']['HTTPValidationError'];
7955
+ 'application/json': components['schemas']['ErrorResponse'];
8009
7956
  };
8010
7957
  };
8011
7958
  };
8012
7959
  };
8013
- delete_agent_default: {
7960
+ get_automation: {
8014
7961
  parameters: {
8015
- query?: {
8016
- /** @description Repo rung to clear ("owner/name"); omit to clear the account default. */
8017
- repository?: string | null;
8018
- };
7962
+ query?: never;
8019
7963
  header?: {
8020
7964
  'user-agent'?: string | null;
8021
7965
  };
8022
- path?: never;
7966
+ path: {
7967
+ automation_id: string;
7968
+ };
8023
7969
  cookie?: never;
8024
7970
  };
8025
7971
  requestBody?: never;
8026
7972
  responses: {
8027
7973
  /** @description Successful Response */
8028
- 204: {
7974
+ 200: {
8029
7975
  headers: {
8030
7976
  [name: string]: unknown;
8031
7977
  };
8032
- content?: never;
7978
+ content: {
7979
+ 'application/json': components['schemas']['AutomationResponse'];
7980
+ };
8033
7981
  };
8034
7982
  /** @description The bearer token is missing, invalid, or revoked. */
8035
7983
  401: {
@@ -8049,7 +7997,7 @@ interface operations {
8049
7997
  'application/json': components['schemas']['ErrorResponse'];
8050
7998
  };
8051
7999
  };
8052
- /** @description No default is set at that rung, or the repository was not found in your account. */
8000
+ /** @description No such automation in your account. */
8053
8001
  404: {
8054
8002
  headers: {
8055
8003
  [name: string]: unknown;
@@ -8069,16 +8017,22 @@ interface operations {
8069
8017
  };
8070
8018
  };
8071
8019
  };
8072
- list_agent_templates: {
8020
+ update_automation: {
8073
8021
  parameters: {
8074
8022
  query?: never;
8075
8023
  header?: {
8076
8024
  'user-agent'?: string | null;
8077
8025
  };
8078
- path?: never;
8026
+ path: {
8027
+ automation_id: string;
8028
+ };
8079
8029
  cookie?: never;
8080
8030
  };
8081
- requestBody?: never;
8031
+ requestBody: {
8032
+ content: {
8033
+ 'application/json': components['schemas']['UpdateAutomationRequest'];
8034
+ };
8035
+ };
8082
8036
  responses: {
8083
8037
  /** @description Successful Response */
8084
8038
  200: {
@@ -8086,7 +8040,16 @@ interface operations {
8086
8040
  [name: string]: unknown;
8087
8041
  };
8088
8042
  content: {
8089
- 'application/json': components['schemas']['AgentTemplatesListResponse'];
8043
+ 'application/json': components['schemas']['AutomationResponse'];
8044
+ };
8045
+ };
8046
+ /** @description The definition is invalid (for example an unschedulable cron expression). */
8047
+ 400: {
8048
+ headers: {
8049
+ [name: string]: unknown;
8050
+ };
8051
+ content: {
8052
+ 'application/json': components['schemas']['ErrorResponse'];
8090
8053
  };
8091
8054
  };
8092
8055
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -8107,38 +8070,54 @@ interface operations {
8107
8070
  'application/json': components['schemas']['ErrorResponse'];
8108
8071
  };
8109
8072
  };
8110
- /** @description Validation Error */
8073
+ /** @description No such automation in your account. */
8074
+ 404: {
8075
+ headers: {
8076
+ [name: string]: unknown;
8077
+ };
8078
+ content: {
8079
+ 'application/json': components['schemas']['ErrorResponse'];
8080
+ };
8081
+ };
8082
+ /** @description The automation is defined by a file in a repository, or another live automation already holds the new name. */
8083
+ 409: {
8084
+ headers: {
8085
+ [name: string]: unknown;
8086
+ };
8087
+ content: {
8088
+ 'application/json': components['schemas']['ErrorResponse'];
8089
+ };
8090
+ };
8091
+ /** @description The automation's name is missing or malformed, or a file reference names no repository. */
8111
8092
  422: {
8112
8093
  headers: {
8113
8094
  [name: string]: unknown;
8114
8095
  };
8115
8096
  content: {
8116
- 'application/json': components['schemas']['HTTPValidationError'];
8097
+ 'application/json': components['schemas']['ErrorResponse'];
8117
8098
  };
8118
8099
  };
8119
8100
  };
8120
8101
  };
8121
- get_agent_template: {
8102
+ delete_automation: {
8122
8103
  parameters: {
8123
8104
  query?: never;
8124
8105
  header?: {
8125
8106
  'user-agent'?: string | null;
8126
8107
  };
8127
8108
  path: {
8128
- template_id: string;
8109
+ automation_id: string;
8129
8110
  };
8130
8111
  cookie?: never;
8131
8112
  };
8132
8113
  requestBody?: never;
8133
8114
  responses: {
8134
8115
  /** @description Successful Response */
8135
- 200: {
8116
+ 204: {
8136
8117
  headers: {
8137
8118
  [name: string]: unknown;
8138
8119
  };
8139
- content: {
8140
- 'application/json': components['schemas']['AgentTemplate'];
8141
- };
8120
+ content?: never;
8142
8121
  };
8143
8122
  /** @description The bearer token is missing, invalid, or revoked. */
8144
8123
  401: {
@@ -8158,7 +8137,7 @@ interface operations {
8158
8137
  'application/json': components['schemas']['ErrorResponse'];
8159
8138
  };
8160
8139
  };
8161
- /** @description No such template. */
8140
+ /** @description No such automation in your account. */
8162
8141
  404: {
8163
8142
  headers: {
8164
8143
  [name: string]: unknown;
@@ -8167,6 +8146,15 @@ interface operations {
8167
8146
  'application/json': components['schemas']['ErrorResponse'];
8168
8147
  };
8169
8148
  };
8149
+ /** @description The automation is defined by a file in a repository; delete that file instead. */
8150
+ 409: {
8151
+ headers: {
8152
+ [name: string]: unknown;
8153
+ };
8154
+ content: {
8155
+ 'application/json': components['schemas']['ErrorResponse'];
8156
+ };
8157
+ };
8170
8158
  /** @description Validation Error */
8171
8159
  422: {
8172
8160
  headers: {
@@ -8178,21 +8166,22 @@ interface operations {
8178
8166
  };
8179
8167
  };
8180
8168
  };
8181
- list_alerts: {
8169
+ link_automation: {
8182
8170
  parameters: {
8183
- query?: {
8184
- status?: components['schemas']['AlertStatus'] | null;
8185
- source?: components['schemas']['AlertSource'] | null;
8186
- limit?: number;
8187
- cursor?: string | null;
8188
- };
8171
+ query?: never;
8189
8172
  header?: {
8190
8173
  'user-agent'?: string | null;
8191
8174
  };
8192
- path?: never;
8175
+ path: {
8176
+ automation_id: string;
8177
+ };
8193
8178
  cookie?: never;
8194
8179
  };
8195
- requestBody?: never;
8180
+ requestBody: {
8181
+ content: {
8182
+ 'application/json': components['schemas']['LinkAutomationRequest'];
8183
+ };
8184
+ };
8196
8185
  responses: {
8197
8186
  /** @description Successful Response */
8198
8187
  200: {
@@ -8200,7 +8189,16 @@ interface operations {
8200
8189
  [name: string]: unknown;
8201
8190
  };
8202
8191
  content: {
8203
- 'application/json': components['schemas']['AlertsListResponse'];
8192
+ 'application/json': components['schemas']['LinkAutomationResponse'];
8193
+ };
8194
+ };
8195
+ /** @description The path is not a synced location, or the repository has no commits. */
8196
+ 400: {
8197
+ headers: {
8198
+ [name: string]: unknown;
8199
+ };
8200
+ content: {
8201
+ 'application/json': components['schemas']['ErrorResponse'];
8204
8202
  };
8205
8203
  };
8206
8204
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -8221,37 +8219,68 @@ interface operations {
8221
8219
  'application/json': components['schemas']['ErrorResponse'];
8222
8220
  };
8223
8221
  };
8224
- /** @description Validation Error */
8222
+ /** @description The automation or repository was not found in your account. */
8223
+ 404: {
8224
+ headers: {
8225
+ [name: string]: unknown;
8226
+ };
8227
+ content: {
8228
+ 'application/json': components['schemas']['ErrorResponse'];
8229
+ };
8230
+ };
8231
+ /** @description The automation is already defined by a file, a link is already open for it, a file already exists at that path, or another automation syncs from it. */
8232
+ 409: {
8233
+ headers: {
8234
+ [name: string]: unknown;
8235
+ };
8236
+ content: {
8237
+ 'application/json': components['schemas']['ErrorResponse'];
8238
+ };
8239
+ };
8240
+ /** @description GitHub rejected the pull request. */
8225
8241
  422: {
8226
8242
  headers: {
8227
8243
  [name: string]: unknown;
8228
8244
  };
8229
8245
  content: {
8230
- 'application/json': components['schemas']['HTTPValidationError'];
8246
+ 'application/json': components['schemas']['ErrorResponse'];
8231
8247
  };
8232
8248
  };
8233
8249
  };
8234
8250
  };
8235
- get_alert: {
8251
+ start_automation_session: {
8236
8252
  parameters: {
8237
8253
  query?: never;
8238
8254
  header?: {
8239
8255
  'user-agent'?: string | null;
8240
8256
  };
8241
8257
  path: {
8242
- alert_id: string;
8258
+ automation_id: string;
8243
8259
  };
8244
8260
  cookie?: never;
8245
8261
  };
8246
- requestBody?: never;
8262
+ requestBody: {
8263
+ content: {
8264
+ 'application/json': components['schemas']['StartAutomationSessionRequest'];
8265
+ };
8266
+ };
8247
8267
  responses: {
8248
8268
  /** @description Successful Response */
8249
- 200: {
8269
+ 201: {
8250
8270
  headers: {
8251
8271
  [name: string]: unknown;
8252
8272
  };
8253
8273
  content: {
8254
- 'application/json': components['schemas']['AlertResponse'];
8274
+ 'application/json': components['schemas']['SessionResponse'];
8275
+ };
8276
+ };
8277
+ /** @description `budget` is above the automation's own session budget or the organization's ceiling, or a one-shot automation was invoked with nothing to say. */
8278
+ 400: {
8279
+ headers: {
8280
+ [name: string]: unknown;
8281
+ };
8282
+ content: {
8283
+ 'application/json': components['schemas']['ErrorResponse'];
8255
8284
  };
8256
8285
  };
8257
8286
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -8272,7 +8301,7 @@ interface operations {
8272
8301
  'application/json': components['schemas']['ErrorResponse'];
8273
8302
  };
8274
8303
  };
8275
- /** @description No such alert in your account. */
8304
+ /** @description No such automation in your account, or its environment no longer exists. */
8276
8305
  404: {
8277
8306
  headers: {
8278
8307
  [name: string]: unknown;
@@ -8281,25 +8310,25 @@ interface operations {
8281
8310
  'application/json': components['schemas']['ErrorResponse'];
8282
8311
  };
8283
8312
  };
8284
- /** @description Validation Error */
8313
+ /** @description The automation requires `input` matching its input schema (missing or failed validation), declares no input schema and `input` was sent, or the body carries a key this route does not accept. */
8285
8314
  422: {
8286
8315
  headers: {
8287
8316
  [name: string]: unknown;
8288
8317
  };
8289
8318
  content: {
8290
- 'application/json': components['schemas']['HTTPValidationError'];
8319
+ 'application/json': components['schemas']['ErrorResponse'];
8291
8320
  };
8292
8321
  };
8293
8322
  };
8294
8323
  };
8295
- dismiss_alert: {
8324
+ unlink_automation: {
8296
8325
  parameters: {
8297
8326
  query?: never;
8298
8327
  header?: {
8299
8328
  'user-agent'?: string | null;
8300
8329
  };
8301
8330
  path: {
8302
- alert_id: string;
8331
+ automation_id: string;
8303
8332
  };
8304
8333
  cookie?: never;
8305
8334
  };
@@ -8311,7 +8340,7 @@ interface operations {
8311
8340
  [name: string]: unknown;
8312
8341
  };
8313
8342
  content: {
8314
- 'application/json': components['schemas']['AlertResponse'];
8343
+ 'application/json': components['schemas']['AutomationResponse'];
8315
8344
  };
8316
8345
  };
8317
8346
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -8332,7 +8361,7 @@ interface operations {
8332
8361
  'application/json': components['schemas']['ErrorResponse'];
8333
8362
  };
8334
8363
  };
8335
- /** @description No such alert in your account. */
8364
+ /** @description No such automation in your account. */
8336
8365
  404: {
8337
8366
  headers: {
8338
8367
  [name: string]: unknown;
@@ -8341,7 +8370,7 @@ interface operations {
8341
8370
  'application/json': components['schemas']['ErrorResponse'];
8342
8371
  };
8343
8372
  };
8344
- /** @description The alert is not open. */
8373
+ /** @description The automation is already managed through the API. */
8345
8374
  409: {
8346
8375
  headers: {
8347
8376
  [name: string]: unknown;
@@ -8350,31 +8379,20 @@ interface operations {
8350
8379
  'application/json': components['schemas']['ErrorResponse'];
8351
8380
  };
8352
8381
  };
8353
- /** @description Validation Error */
8382
+ /** @description The definition has a file reference that names no repository, so it cannot resolve without its source repository. */
8354
8383
  422: {
8355
8384
  headers: {
8356
8385
  [name: string]: unknown;
8357
8386
  };
8358
8387
  content: {
8359
- 'application/json': components['schemas']['HTTPValidationError'];
8388
+ 'application/json': components['schemas']['ErrorResponse'];
8360
8389
  };
8361
8390
  };
8362
8391
  };
8363
8392
  };
8364
- get_analytics_metrics: {
8393
+ get_budget: {
8365
8394
  parameters: {
8366
- query?: {
8367
- days?: number | null;
8368
- start?: string | null;
8369
- end?: string | null;
8370
- /** @description Filter to repositories by "owner/name". */
8371
- repo?: string[] | null;
8372
- /** @description Filter by PR-author login(s). */
8373
- author?: string[] | null;
8374
- account_type?: string;
8375
- /** @description Filter by parent-PR status (open|draft|merged|closed). */
8376
- status?: string[] | null;
8377
- };
8395
+ query?: never;
8378
8396
  header?: {
8379
8397
  'user-agent'?: string | null;
8380
8398
  };
@@ -8389,16 +8407,7 @@ interface operations {
8389
8407
  [name: string]: unknown;
8390
8408
  };
8391
8409
  content: {
8392
- 'application/json': components['schemas']['GetAnalyticsMetricsResponse'];
8393
- };
8394
- };
8395
- /** @description The time window is invalid: days combined with start, a non-positive days, or end not after start. */
8396
- 400: {
8397
- headers: {
8398
- [name: string]: unknown;
8399
- };
8400
- content: {
8401
- 'application/json': components['schemas']['ErrorResponse'];
8410
+ 'application/json': components['schemas']['BudgetSummary'];
8402
8411
  };
8403
8412
  };
8404
8413
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -8430,289 +8439,9 @@ interface operations {
8430
8439
  };
8431
8440
  };
8432
8441
  };
8433
- get_analytics_pull_requests: {
8442
+ list_environments: {
8434
8443
  parameters: {
8435
- query?: {
8436
- days?: number | null;
8437
- start?: string | null;
8438
- end?: string | null;
8439
- account_type?: string[] | null;
8440
- repository_id?: number[] | null;
8441
- author_id?: number[] | null;
8442
- status?: string[] | null;
8443
- };
8444
- header?: {
8445
- 'user-agent'?: string | null;
8446
- };
8447
- path?: never;
8448
- cookie?: never;
8449
- };
8450
- requestBody?: never;
8451
- responses: {
8452
- /** @description Successful Response */
8453
- 200: {
8454
- headers: {
8455
- [name: string]: unknown;
8456
- };
8457
- content: {
8458
- 'application/json': components['schemas']['GetAnalyticsPullRequestsResponse'];
8459
- };
8460
- };
8461
- /** @description The time window is invalid: days combined with start, a non-positive days, or end not after start. */
8462
- 400: {
8463
- headers: {
8464
- [name: string]: unknown;
8465
- };
8466
- content: {
8467
- 'application/json': components['schemas']['ErrorResponse'];
8468
- };
8469
- };
8470
- /** @description The bearer token is missing, invalid, or revoked. */
8471
- 401: {
8472
- headers: {
8473
- [name: string]: unknown;
8474
- };
8475
- content: {
8476
- 'application/json': components['schemas']['ErrorResponse'];
8477
- };
8478
- };
8479
- /** @description The credential may not perform this action, or the account is blocked. */
8480
- 403: {
8481
- headers: {
8482
- [name: string]: unknown;
8483
- };
8484
- content: {
8485
- 'application/json': components['schemas']['ErrorResponse'];
8486
- };
8487
- };
8488
- /** @description Validation Error */
8489
- 422: {
8490
- headers: {
8491
- [name: string]: unknown;
8492
- };
8493
- content: {
8494
- 'application/json': components['schemas']['HTTPValidationError'];
8495
- };
8496
- };
8497
- };
8498
- };
8499
- get_analytics_reviews: {
8500
- parameters: {
8501
- query?: {
8502
- days?: number | null;
8503
- start?: string | null;
8504
- end?: string | null;
8505
- repo?: string[] | null;
8506
- /** @description Filter by reviewer login(s). */
8507
- author?: string[] | null;
8508
- account_type?: string;
8509
- review_state?: string[] | null;
8510
- };
8511
- header?: {
8512
- 'user-agent'?: string | null;
8513
- };
8514
- path?: never;
8515
- cookie?: never;
8516
- };
8517
- requestBody?: never;
8518
- responses: {
8519
- /** @description Successful Response */
8520
- 200: {
8521
- headers: {
8522
- [name: string]: unknown;
8523
- };
8524
- content: {
8525
- 'application/json': components['schemas']['GetAnalyticsReviewsResponse'];
8526
- };
8527
- };
8528
- /** @description The time window is invalid: days combined with start, a non-positive days, or end not after start. */
8529
- 400: {
8530
- headers: {
8531
- [name: string]: unknown;
8532
- };
8533
- content: {
8534
- 'application/json': components['schemas']['ErrorResponse'];
8535
- };
8536
- };
8537
- /** @description The bearer token is missing, invalid, or revoked. */
8538
- 401: {
8539
- headers: {
8540
- [name: string]: unknown;
8541
- };
8542
- content: {
8543
- 'application/json': components['schemas']['ErrorResponse'];
8544
- };
8545
- };
8546
- /** @description The credential may not perform this action, or the account is blocked. */
8547
- 403: {
8548
- headers: {
8549
- [name: string]: unknown;
8550
- };
8551
- content: {
8552
- 'application/json': components['schemas']['ErrorResponse'];
8553
- };
8554
- };
8555
- /** @description Validation Error */
8556
- 422: {
8557
- headers: {
8558
- [name: string]: unknown;
8559
- };
8560
- content: {
8561
- 'application/json': components['schemas']['HTTPValidationError'];
8562
- };
8563
- };
8564
- };
8565
- };
8566
- cli_auth_poll: {
8567
- parameters: {
8568
- query?: never;
8569
- header?: never;
8570
- path?: never;
8571
- cookie?: never;
8572
- };
8573
- requestBody: {
8574
- content: {
8575
- 'application/json': components['schemas']['CliAuthPollRequest'];
8576
- };
8577
- };
8578
- responses: {
8579
- /** @description Successful Response */
8580
- 200: {
8581
- headers: {
8582
- [name: string]: unknown;
8583
- };
8584
- content: {
8585
- 'application/json': components['schemas']['PollCliAuthResponse'];
8586
- };
8587
- };
8588
- /** @description The bearer token is missing, invalid, or revoked. */
8589
- 401: {
8590
- headers: {
8591
- [name: string]: unknown;
8592
- };
8593
- content: {
8594
- 'application/json': components['schemas']['ErrorResponse'];
8595
- };
8596
- };
8597
- /** @description The credential may not perform this action, or the account is blocked. */
8598
- 403: {
8599
- headers: {
8600
- [name: string]: unknown;
8601
- };
8602
- content: {
8603
- 'application/json': components['schemas']['ErrorResponse'];
8604
- };
8605
- };
8606
- /** @description Unknown device code. */
8607
- 404: {
8608
- headers: {
8609
- [name: string]: unknown;
8610
- };
8611
- content: {
8612
- 'application/json': components['schemas']['ErrorResponse'];
8613
- };
8614
- };
8615
- /** @description Validation Error */
8616
- 422: {
8617
- headers: {
8618
- [name: string]: unknown;
8619
- };
8620
- content: {
8621
- 'application/json': components['schemas']['HTTPValidationError'];
8622
- };
8623
- };
8624
- };
8625
- };
8626
- cli_auth_start: {
8627
- parameters: {
8628
- query?: never;
8629
- header?: never;
8630
- path?: never;
8631
- cookie?: never;
8632
- };
8633
- requestBody?: never;
8634
- responses: {
8635
- /** @description Successful Response */
8636
- 201: {
8637
- headers: {
8638
- [name: string]: unknown;
8639
- };
8640
- content: {
8641
- 'application/json': components['schemas']['StartCliAuthResponse'];
8642
- };
8643
- };
8644
- /** @description The bearer token is missing, invalid, or revoked. */
8645
- 401: {
8646
- headers: {
8647
- [name: string]: unknown;
8648
- };
8649
- content: {
8650
- 'application/json': components['schemas']['ErrorResponse'];
8651
- };
8652
- };
8653
- /** @description The credential may not perform this action, or the account is blocked. */
8654
- 403: {
8655
- headers: {
8656
- [name: string]: unknown;
8657
- };
8658
- content: {
8659
- 'application/json': components['schemas']['ErrorResponse'];
8660
- };
8661
- };
8662
- };
8663
- };
8664
- get_budget: {
8665
- parameters: {
8666
- query?: never;
8667
- header?: {
8668
- 'user-agent'?: string | null;
8669
- };
8670
- path?: never;
8671
- cookie?: never;
8672
- };
8673
- requestBody?: never;
8674
- responses: {
8675
- /** @description Successful Response */
8676
- 200: {
8677
- headers: {
8678
- [name: string]: unknown;
8679
- };
8680
- content: {
8681
- 'application/json': components['schemas']['BudgetSummary'];
8682
- };
8683
- };
8684
- /** @description The bearer token is missing, invalid, or revoked. */
8685
- 401: {
8686
- headers: {
8687
- [name: string]: unknown;
8688
- };
8689
- content: {
8690
- 'application/json': components['schemas']['ErrorResponse'];
8691
- };
8692
- };
8693
- /** @description The credential may not perform this action, or the account is blocked. */
8694
- 403: {
8695
- headers: {
8696
- [name: string]: unknown;
8697
- };
8698
- content: {
8699
- 'application/json': components['schemas']['ErrorResponse'];
8700
- };
8701
- };
8702
- /** @description Validation Error */
8703
- 422: {
8704
- headers: {
8705
- [name: string]: unknown;
8706
- };
8707
- content: {
8708
- 'application/json': components['schemas']['HTTPValidationError'];
8709
- };
8710
- };
8711
- };
8712
- };
8713
- list_environments: {
8714
- parameters: {
8715
- query?: never;
8444
+ query?: never;
8716
8445
  header?: {
8717
8446
  'user-agent'?: string | null;
8718
8447
  };
@@ -8759,208 +8488,38 @@ interface operations {
8759
8488
  };
8760
8489
  };
8761
8490
  };
8762
- create_environment: {
8763
- parameters: {
8764
- query?: never;
8765
- header?: {
8766
- 'user-agent'?: string | null;
8767
- };
8768
- path?: never;
8769
- cookie?: never;
8770
- };
8771
- requestBody: {
8772
- content: {
8773
- 'application/json': components['schemas']['CreateEnvironmentRequest'];
8774
- };
8775
- };
8776
- responses: {
8777
- /** @description Successful Response */
8778
- 201: {
8779
- headers: {
8780
- [name: string]: unknown;
8781
- };
8782
- content: {
8783
- 'application/json': components['schemas']['EnvironmentResponse'];
8784
- };
8785
- };
8786
- /** @description The environment is invalid. */
8787
- 400: {
8788
- headers: {
8789
- [name: string]: unknown;
8790
- };
8791
- content: {
8792
- 'application/json': components['schemas']['ErrorResponse'];
8793
- };
8794
- };
8795
- /** @description The bearer token is missing, invalid, or revoked. */
8796
- 401: {
8797
- headers: {
8798
- [name: string]: unknown;
8799
- };
8800
- content: {
8801
- 'application/json': components['schemas']['ErrorResponse'];
8802
- };
8803
- };
8804
- /** @description The credential may not perform this action, or the account is blocked. */
8805
- 403: {
8806
- headers: {
8807
- [name: string]: unknown;
8808
- };
8809
- content: {
8810
- 'application/json': components['schemas']['ErrorResponse'];
8811
- };
8812
- };
8813
- /** @description An environment with that name already exists. */
8814
- 409: {
8815
- headers: {
8816
- [name: string]: unknown;
8817
- };
8818
- content: {
8819
- 'application/json': components['schemas']['ErrorResponse'];
8820
- };
8821
- };
8822
- /** @description The environment's name is missing or malformed. */
8823
- 422: {
8824
- headers: {
8825
- [name: string]: unknown;
8826
- };
8827
- content: {
8828
- 'application/json': components['schemas']['ErrorResponse'];
8829
- };
8830
- };
8831
- };
8832
- };
8833
- list_environment_defaults: {
8834
- parameters: {
8835
- query?: never;
8836
- header?: {
8837
- 'user-agent'?: string | null;
8838
- };
8839
- path?: never;
8840
- cookie?: never;
8841
- };
8842
- requestBody?: never;
8843
- responses: {
8844
- /** @description Successful Response */
8845
- 200: {
8846
- headers: {
8847
- [name: string]: unknown;
8848
- };
8849
- content: {
8850
- 'application/json': components['schemas']['EnvironmentDefaults'];
8851
- };
8852
- };
8853
- /** @description The bearer token is missing, invalid, or revoked. */
8854
- 401: {
8855
- headers: {
8856
- [name: string]: unknown;
8857
- };
8858
- content: {
8859
- 'application/json': components['schemas']['ErrorResponse'];
8860
- };
8861
- };
8862
- /** @description The credential may not perform this action, or the account is blocked. */
8863
- 403: {
8864
- headers: {
8865
- [name: string]: unknown;
8866
- };
8867
- content: {
8868
- 'application/json': components['schemas']['ErrorResponse'];
8869
- };
8870
- };
8871
- /** @description Validation Error */
8872
- 422: {
8873
- headers: {
8874
- [name: string]: unknown;
8875
- };
8876
- content: {
8877
- 'application/json': components['schemas']['HTTPValidationError'];
8878
- };
8879
- };
8880
- };
8881
- };
8882
- put_environment_default: {
8883
- parameters: {
8884
- query?: never;
8885
- header?: {
8886
- 'user-agent'?: string | null;
8887
- };
8888
- path?: never;
8889
- cookie?: never;
8890
- };
8891
- requestBody: {
8892
- content: {
8893
- 'application/json': components['schemas']['PutEnvironmentDefaultRequest'];
8894
- };
8895
- };
8896
- responses: {
8897
- /** @description Successful Response */
8898
- 200: {
8899
- headers: {
8900
- [name: string]: unknown;
8901
- };
8902
- content: {
8903
- 'application/json': components['schemas']['EnvironmentDefaults'];
8904
- };
8905
- };
8906
- /** @description The bearer token is missing, invalid, or revoked. */
8907
- 401: {
8908
- headers: {
8909
- [name: string]: unknown;
8910
- };
8911
- content: {
8912
- 'application/json': components['schemas']['ErrorResponse'];
8913
- };
8914
- };
8915
- /** @description The credential may not perform this action, or the account is blocked. */
8916
- 403: {
8917
- headers: {
8918
- [name: string]: unknown;
8919
- };
8920
- content: {
8921
- 'application/json': components['schemas']['ErrorResponse'];
8922
- };
8923
- };
8924
- /** @description The environment or repository was not found in your account. */
8925
- 404: {
8926
- headers: {
8927
- [name: string]: unknown;
8928
- };
8929
- content: {
8930
- 'application/json': components['schemas']['ErrorResponse'];
8931
- };
8932
- };
8933
- /** @description Validation Error */
8934
- 422: {
8935
- headers: {
8936
- [name: string]: unknown;
8937
- };
8938
- content: {
8939
- 'application/json': components['schemas']['HTTPValidationError'];
8940
- };
8941
- };
8942
- };
8943
- };
8944
- delete_environment_default: {
8491
+ create_environment: {
8945
8492
  parameters: {
8946
- query?: {
8947
- /** @description Repo rung to clear ("owner/name"); omit to clear the account default. */
8948
- repository?: string | null;
8949
- };
8493
+ query?: never;
8950
8494
  header?: {
8951
8495
  'user-agent'?: string | null;
8952
8496
  };
8953
8497
  path?: never;
8954
8498
  cookie?: never;
8955
8499
  };
8956
- requestBody?: never;
8500
+ requestBody: {
8501
+ content: {
8502
+ 'application/json': components['schemas']['CreateEnvironmentRequest'];
8503
+ };
8504
+ };
8957
8505
  responses: {
8958
8506
  /** @description Successful Response */
8959
- 204: {
8507
+ 201: {
8960
8508
  headers: {
8961
8509
  [name: string]: unknown;
8962
8510
  };
8963
- content?: never;
8511
+ content: {
8512
+ 'application/json': components['schemas']['EnvironmentResponse'];
8513
+ };
8514
+ };
8515
+ /** @description The environment is invalid. */
8516
+ 400: {
8517
+ headers: {
8518
+ [name: string]: unknown;
8519
+ };
8520
+ content: {
8521
+ 'application/json': components['schemas']['ErrorResponse'];
8522
+ };
8964
8523
  };
8965
8524
  /** @description The bearer token is missing, invalid, or revoked. */
8966
8525
  401: {
@@ -8980,8 +8539,8 @@ interface operations {
8980
8539
  'application/json': components['schemas']['ErrorResponse'];
8981
8540
  };
8982
8541
  };
8983
- /** @description No default is set at that rung, or the repository was not found in your account. */
8984
- 404: {
8542
+ /** @description An environment with that name already exists. */
8543
+ 409: {
8985
8544
  headers: {
8986
8545
  [name: string]: unknown;
8987
8546
  };
@@ -8989,13 +8548,13 @@ interface operations {
8989
8548
  'application/json': components['schemas']['ErrorResponse'];
8990
8549
  };
8991
8550
  };
8992
- /** @description Validation Error */
8551
+ /** @description The environment's name is missing or malformed. */
8993
8552
  422: {
8994
8553
  headers: {
8995
8554
  [name: string]: unknown;
8996
8555
  };
8997
8556
  content: {
8998
- 'application/json': components['schemas']['HTTPValidationError'];
8557
+ 'application/json': components['schemas']['ErrorResponse'];
8999
8558
  };
9000
8559
  };
9001
8560
  };
@@ -10613,8 +10172,8 @@ interface operations {
10613
10172
  list_agent_sessions: {
10614
10173
  parameters: {
10615
10174
  query?: {
10616
- /** @description A saved config id, or the agent's `ellipsis.name`. */
10617
- config_id?: string | null;
10175
+ /** @description An automation id, or its name: only sessions that automation started. */
10176
+ automation?: string | null;
10618
10177
  source?: components['schemas']['SessionSource'][] | null;
10619
10178
  days?: number | null;
10620
10179
  start?: string | null;
@@ -10698,7 +10257,7 @@ interface operations {
10698
10257
  'application/json': components['schemas']['SessionResponse'];
10699
10258
  };
10700
10259
  };
10701
- /** @description The request combines incompatible fields (both config sources, or a one-shot run with no prompt or input), or the config override is invalid. */
10260
+ /** @description The request is incompatible with itself (a one-shot run with no prompt, or both `claude` and `codex`), its keys produce an invalid config, or `budget` exceeds the organization's per-session ceiling. */
10702
10261
  400: {
10703
10262
  headers: {
10704
10263
  [name: string]: unknown;
@@ -10725,7 +10284,7 @@ interface operations {
10725
10284
  'application/json': components['schemas']['ErrorResponse'];
10726
10285
  };
10727
10286
  };
10728
- /** @description The named agent does not exist in your account. */
10287
+ /** @description The named environment does not exist in your account. */
10729
10288
  404: {
10730
10289
  headers: {
10731
10290
  [name: string]: unknown;
@@ -10734,16 +10293,7 @@ interface operations {
10734
10293
  'application/json': components['schemas']['ErrorResponse'];
10735
10294
  };
10736
10295
  };
10737
- /** @description The resolved default config is broken (deleted, disabled, unmerged, or on an inaccessible repository). */
10738
- 409: {
10739
- headers: {
10740
- [name: string]: unknown;
10741
- };
10742
- content: {
10743
- 'application/json': components['schemas']['ErrorResponse'];
10744
- };
10745
- };
10746
- /** @description The agent requires 'input' matching its input schema (missing or failed validation), or declares no input schema and 'input' was sent. */
10296
+ /** @description A field is malformed, or the body carries a key this route does not accept. */
10747
10297
  422: {
10748
10298
  headers: {
10749
10299
  [name: string]: unknown;
@@ -11212,7 +10762,7 @@ interface operations {
11212
10762
  };
11213
10763
  };
11214
10764
  };
11215
- replay_agent_session: {
10765
+ stop_agent_session: {
11216
10766
  parameters: {
11217
10767
  query?: never;
11218
10768
  header?: {
@@ -11223,14 +10773,10 @@ interface operations {
11223
10773
  };
11224
10774
  cookie?: never;
11225
10775
  };
11226
- requestBody: {
11227
- content: {
11228
- 'application/json': components['schemas']['ReplayAgentSessionRequest'];
11229
- };
11230
- };
10776
+ requestBody?: never;
11231
10777
  responses: {
11232
10778
  /** @description Successful Response */
11233
- 201: {
10779
+ 200: {
11234
10780
  headers: {
11235
10781
  [name: string]: unknown;
11236
10782
  };
@@ -11238,8 +10784,8 @@ interface operations {
11238
10784
  'application/json': components['schemas']['SessionResponse'];
11239
10785
  };
11240
10786
  };
11241
- /** @description The named config does not exist, or the config override is invalid. */
11242
- 400: {
10787
+ /** @description The bearer token is missing, invalid, or revoked. */
10788
+ 401: {
11243
10789
  headers: {
11244
10790
  [name: string]: unknown;
11245
10791
  };
@@ -11247,8 +10793,8 @@ interface operations {
11247
10793
  'application/json': components['schemas']['ErrorResponse'];
11248
10794
  };
11249
10795
  };
11250
- /** @description The bearer token is missing, invalid, or revoked. */
11251
- 401: {
10796
+ /** @description The credential may not perform this action, or the account is blocked. */
10797
+ 403: {
11252
10798
  headers: {
11253
10799
  [name: string]: unknown;
11254
10800
  };
@@ -11256,8 +10802,8 @@ interface operations {
11256
10802
  'application/json': components['schemas']['ErrorResponse'];
11257
10803
  };
11258
10804
  };
11259
- /** @description The credential may not perform this action, or the account is blocked. */
11260
- 403: {
10805
+ /** @description No such session in your account. */
10806
+ 404: {
11261
10807
  headers: {
11262
10808
  [name: string]: unknown;
11263
10809
  };
@@ -11265,8 +10811,8 @@ interface operations {
11265
10811
  'application/json': components['schemas']['ErrorResponse'];
11266
10812
  };
11267
10813
  };
11268
- /** @description No such session in your account. */
11269
- 404: {
10814
+ /** @description The session has already finished. */
10815
+ 409: {
11270
10816
  headers: {
11271
10817
  [name: string]: unknown;
11272
10818
  };
@@ -11285,7 +10831,7 @@ interface operations {
11285
10831
  };
11286
10832
  };
11287
10833
  };
11288
- stop_agent_session: {
10834
+ ingest_agent_session_transcript: {
11289
10835
  parameters: {
11290
10836
  query?: never;
11291
10837
  header?: {
@@ -11296,7 +10842,11 @@ interface operations {
11296
10842
  };
11297
10843
  cookie?: never;
11298
10844
  };
11299
- requestBody?: never;
10845
+ requestBody: {
10846
+ content: {
10847
+ 'application/json': components['schemas']['IngestTranscriptRequest'];
10848
+ };
10849
+ };
11300
10850
  responses: {
11301
10851
  /** @description Successful Response */
11302
10852
  200: {
@@ -11304,7 +10854,7 @@ interface operations {
11304
10854
  [name: string]: unknown;
11305
10855
  };
11306
10856
  content: {
11307
- 'application/json': components['schemas']['SessionResponse'];
10857
+ 'application/json': components['schemas']['TranscriptIngestResult'];
11308
10858
  };
11309
10859
  };
11310
10860
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -11334,7 +10884,7 @@ interface operations {
11334
10884
  'application/json': components['schemas']['ErrorResponse'];
11335
10885
  };
11336
10886
  };
11337
- /** @description The session has already finished. */
10887
+ /** @description The session has no execution yet to attach transcript records to. */
11338
10888
  409: {
11339
10889
  headers: {
11340
10890
  [name: string]: unknown;
@@ -11354,20 +10904,67 @@ interface operations {
11354
10904
  };
11355
10905
  };
11356
10906
  };
11357
- ingest_agent_session_transcript: {
10907
+ get_organization_settings: {
11358
10908
  parameters: {
11359
10909
  query?: never;
11360
10910
  header?: {
11361
10911
  'user-agent'?: string | null;
11362
10912
  };
11363
- path: {
11364
- session_id: string;
10913
+ path?: never;
10914
+ cookie?: never;
10915
+ };
10916
+ requestBody?: never;
10917
+ responses: {
10918
+ /** @description Successful Response */
10919
+ 200: {
10920
+ headers: {
10921
+ [name: string]: unknown;
10922
+ };
10923
+ content: {
10924
+ 'application/json': components['schemas']['OrganizationSettings'];
10925
+ };
10926
+ };
10927
+ /** @description The bearer token is missing, invalid, or revoked. */
10928
+ 401: {
10929
+ headers: {
10930
+ [name: string]: unknown;
10931
+ };
10932
+ content: {
10933
+ 'application/json': components['schemas']['ErrorResponse'];
10934
+ };
10935
+ };
10936
+ /** @description The credential may not perform this action, or the account is blocked. */
10937
+ 403: {
10938
+ headers: {
10939
+ [name: string]: unknown;
10940
+ };
10941
+ content: {
10942
+ 'application/json': components['schemas']['ErrorResponse'];
10943
+ };
10944
+ };
10945
+ /** @description Validation Error */
10946
+ 422: {
10947
+ headers: {
10948
+ [name: string]: unknown;
10949
+ };
10950
+ content: {
10951
+ 'application/json': components['schemas']['HTTPValidationError'];
10952
+ };
10953
+ };
10954
+ };
10955
+ };
10956
+ put_organization_settings: {
10957
+ parameters: {
10958
+ query?: never;
10959
+ header?: {
10960
+ 'user-agent'?: string | null;
11365
10961
  };
10962
+ path?: never;
11366
10963
  cookie?: never;
11367
10964
  };
11368
10965
  requestBody: {
11369
10966
  content: {
11370
- 'application/json': components['schemas']['IngestTranscriptRequest'];
10967
+ 'application/json': components['schemas']['OrganizationSettings'];
11371
10968
  };
11372
10969
  };
11373
10970
  responses: {
@@ -11377,7 +10974,16 @@ interface operations {
11377
10974
  [name: string]: unknown;
11378
10975
  };
11379
10976
  content: {
11380
- 'application/json': components['schemas']['TranscriptIngestResult'];
10977
+ 'application/json': components['schemas']['OrganizationSettings'];
10978
+ };
10979
+ };
10980
+ /** @description The model id is unknown, internal-only, or not runnable on the Claude Code harness; or the budget ceiling is not positive or exceeds the platform's. */
10981
+ 400: {
10982
+ headers: {
10983
+ [name: string]: unknown;
10984
+ };
10985
+ content: {
10986
+ 'application/json': components['schemas']['ErrorResponse'];
11381
10987
  };
11382
10988
  };
11383
10989
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -11398,7 +11004,7 @@ interface operations {
11398
11004
  'application/json': components['schemas']['ErrorResponse'];
11399
11005
  };
11400
11006
  };
11401
- /** @description No such session in your account. */
11007
+ /** @description The default environment does not exist in your account. */
11402
11008
  404: {
11403
11009
  headers: {
11404
11010
  [name: string]: unknown;
@@ -11407,8 +11013,108 @@ interface operations {
11407
11013
  'application/json': components['schemas']['ErrorResponse'];
11408
11014
  };
11409
11015
  };
11410
- /** @description The session has no execution yet to attach transcript records to. */
11411
- 409: {
11016
+ /** @description Validation Error */
11017
+ 422: {
11018
+ headers: {
11019
+ [name: string]: unknown;
11020
+ };
11021
+ content: {
11022
+ 'application/json': components['schemas']['HTTPValidationError'];
11023
+ };
11024
+ };
11025
+ };
11026
+ };
11027
+ list_agent_templates: {
11028
+ parameters: {
11029
+ query?: never;
11030
+ header?: {
11031
+ 'user-agent'?: string | null;
11032
+ };
11033
+ path?: never;
11034
+ cookie?: never;
11035
+ };
11036
+ requestBody?: never;
11037
+ responses: {
11038
+ /** @description Successful Response */
11039
+ 200: {
11040
+ headers: {
11041
+ [name: string]: unknown;
11042
+ };
11043
+ content: {
11044
+ 'application/json': components['schemas']['AgentTemplatesListResponse'];
11045
+ };
11046
+ };
11047
+ /** @description The bearer token is missing, invalid, or revoked. */
11048
+ 401: {
11049
+ headers: {
11050
+ [name: string]: unknown;
11051
+ };
11052
+ content: {
11053
+ 'application/json': components['schemas']['ErrorResponse'];
11054
+ };
11055
+ };
11056
+ /** @description The credential may not perform this action, or the account is blocked. */
11057
+ 403: {
11058
+ headers: {
11059
+ [name: string]: unknown;
11060
+ };
11061
+ content: {
11062
+ 'application/json': components['schemas']['ErrorResponse'];
11063
+ };
11064
+ };
11065
+ /** @description Validation Error */
11066
+ 422: {
11067
+ headers: {
11068
+ [name: string]: unknown;
11069
+ };
11070
+ content: {
11071
+ 'application/json': components['schemas']['HTTPValidationError'];
11072
+ };
11073
+ };
11074
+ };
11075
+ };
11076
+ get_agent_template: {
11077
+ parameters: {
11078
+ query?: never;
11079
+ header?: {
11080
+ 'user-agent'?: string | null;
11081
+ };
11082
+ path: {
11083
+ template_id: string;
11084
+ };
11085
+ cookie?: never;
11086
+ };
11087
+ requestBody?: never;
11088
+ responses: {
11089
+ /** @description Successful Response */
11090
+ 200: {
11091
+ headers: {
11092
+ [name: string]: unknown;
11093
+ };
11094
+ content: {
11095
+ 'application/json': components['schemas']['AgentTemplate'];
11096
+ };
11097
+ };
11098
+ /** @description The bearer token is missing, invalid, or revoked. */
11099
+ 401: {
11100
+ headers: {
11101
+ [name: string]: unknown;
11102
+ };
11103
+ content: {
11104
+ 'application/json': components['schemas']['ErrorResponse'];
11105
+ };
11106
+ };
11107
+ /** @description The credential may not perform this action, or the account is blocked. */
11108
+ 403: {
11109
+ headers: {
11110
+ [name: string]: unknown;
11111
+ };
11112
+ content: {
11113
+ 'application/json': components['schemas']['ErrorResponse'];
11114
+ };
11115
+ };
11116
+ /** @description No such template. */
11117
+ 404: {
11412
11118
  headers: {
11413
11119
  [name: string]: unknown;
11414
11120
  };
@@ -11508,8 +11214,13 @@ type PullRequestAction = 'opened' | 'pushed' | 'merged' | 'closed' | 'review_sub
11508
11214
  type SentryAction = 'issue_alert' | 'metric_alert';
11509
11215
  /**
11510
11216
  * The surface an @ellipsis mention can come from.
11217
+ *
11218
+ * No SLACK member: Slack routing is not a trigger on an agent config, it is the
11219
+ * `slack.yaml` routing file (`SlackConfig`), which answers the questions a
11220
+ * platform list cannot — which channel, and whose DM. A mention trigger listing
11221
+ * `slack` is therefore a config error, not a silently-never-fires config.
11511
11222
  */
11512
- type AgentConfigMentionPlatform = 'github' | 'slack' | 'linear';
11223
+ type AgentConfigMentionPlatform = 'github' | 'linear';
11513
11224
  /**
11514
11225
  * How this session's config was chosen.
11515
11226
  */
@@ -11726,11 +11437,11 @@ interface Session {
11726
11437
  * The agent that ran: the config the session executed, where that config came from, and any override merged into it.
11727
11438
  */
11728
11439
  interface SessionAgent {
11729
- config: AgentConfig;
11730
11440
  /**
11731
- * Identifier of the saved config this session's snapshot was taken from. Null for inline, platform-default, and built-in configs. Points at the config as it exists now, which may have changed since.
11441
+ * Identifier of the automation this session's snapshot was taken from. Null for raw sessions (nothing saved behind them), templates, and built-in agents. Points at the automation as it exists now, which may have changed since.
11732
11442
  */
11733
- config_id: string | null;
11443
+ automation_id: string | null;
11444
+ config: AgentConfig;
11734
11445
  /**
11735
11446
  * The partial-config override merged into `config` for this session, or null when the config ran unmodified. `config` is the merged result; this is the diff.
11736
11447
  */
@@ -11740,7 +11451,7 @@ interface SessionAgent {
11740
11451
  source: AgentConfigSource;
11741
11452
  }
11742
11453
  /**
11743
- * The agent config the session actually ran, frozen when the session was created.
11454
+ * The agent definition the session actually ran, frozen when the session was created.
11744
11455
  */
11745
11456
  interface AgentConfig {
11746
11457
  budget: AgentConfigBudget;
@@ -11764,7 +11475,7 @@ interface AgentConfigClaude {
11764
11475
  effort: EffortLevel | null;
11765
11476
  fallback_model: string | null;
11766
11477
  max_turns: number | null;
11767
- model: string;
11478
+ model: string | null;
11768
11479
  settings: AgentConfigSettingsRef | null;
11769
11480
  system: string | AgentConfigSystemFileRef | (string | AgentConfigSystemFileRef)[];
11770
11481
  }
@@ -12253,6 +11964,8 @@ interface SessionGit {
12253
11964
  * it, split by whether it survived the sandbox.
12254
11965
  */
12255
11966
  interface SessionGitRepo {
11967
+ commits: SessionGitCommit[];
11968
+ commits_total: number;
12256
11969
  full_name: string;
12257
11970
  local_commit: string | null;
12258
11971
  local_uncommitted_files: SessionGitFile[];
@@ -12260,6 +11973,18 @@ interface SessionGitRepo {
12260
11973
  remote_branch: string | null;
12261
11974
  remote_commit: string | null;
12262
11975
  }
11976
+ /**
11977
+ * One commit the session created in this repo (everything past the
11978
+ * provisioning checkout's sha), captured from the sandbox rather than the
11979
+ * transcript so it stays correct through amends, rebases, and commits made by
11980
+ * scripts. The repo is the parent object, so it is not repeated here.
11981
+ */
11982
+ interface SessionGitCommit {
11983
+ committed_at: string;
11984
+ pushed: boolean;
11985
+ sha: string;
11986
+ subject: string;
11987
+ }
12263
11988
  /**
12264
11989
  * One file's uncommitted change, as `git diff HEAD --numstat` reports it
12265
11990
  * (with intent-to-add, so a brand-new file still counts).
@@ -12271,10 +11996,11 @@ interface SessionGitFile {
12271
11996
  status: string;
12272
11997
  }
12273
11998
  /**
12274
- * A pull request the session opened in this repo, denormalized at capture
12275
- * time so a surface renders a labeled link without joining gh_prs. Live PR
12276
- * state (open/merged/closed) is not stored — read gh_prs where a view needs
12277
- * it. The repo is the parent object, so it is not repeated here.
11999
+ * A pull request the session opened in this repo, written the moment the
12000
+ * creating tool call's result lands (see extract_session_prs.PrCreateWatcher).
12001
+ * Live PR state (open/merged/closed) is not stored — it lives on gh_prs,
12002
+ * joined via `gh_pr_id` (GET /frontend/agents/sessions/{id}/git). The repo is
12003
+ * the parent object, so it is not repeated here.
12278
12004
  */
12279
12005
  interface SessionGitPr {
12280
12006
  gh_pr_id: number | null;