@ellipsis-dev/sdk 0.10.0 → 0.12.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
- '/agents/configs': {
2
+ '/v1/agents/configs': {
3
3
  parameters: {
4
4
  query?: never;
5
5
  header?: never;
@@ -14,10 +14,13 @@ interface paths {
14
14
  put?: never;
15
15
  /**
16
16
  * Create Agent Config
17
- * @description Create an agent config via pull request.
17
+ * @description Create an agent config.
18
18
  *
19
- * The PR adds the config file to agents/ on the target
20
- * repository; the agent goes live when it merges.
19
+ * Name a repository and Ellipsis opens a pull request adding the
20
+ * config file to agents/ there; the agent goes live when it
21
+ * merges. Omit it and the agent is created here, with no file,
22
+ * live immediately — and every file reference in it must name the
23
+ * repository it lives in.
21
24
  *
22
25
  * Accepts an inline config or a gallery template slug. 409 when
23
26
  * another live agent already holds the name.
@@ -29,7 +32,7 @@ interface paths {
29
32
  patch?: never;
30
33
  trace?: never;
31
34
  };
32
- '/agents/configs/{config_id}': {
35
+ '/v1/agents/configs/{config_id}': {
33
36
  parameters: {
34
37
  query?: never;
35
38
  header?: never;
@@ -41,15 +44,82 @@ interface paths {
41
44
  * @description Return one saved agent config, by id or by the agent's name.
42
45
  */
43
46
  get: operations['get_agent_config'];
44
- put?: never;
47
+ /**
48
+ * Update Agent Config
49
+ * @description Replace an agent's definition, by id or by the agent's name.
50
+ *
51
+ * The whole definition is replaced, and the change is live at
52
+ * once. Only for agents managed through this API: one defined by a
53
+ * repository file is a 409, since the next push to that file would
54
+ * revert the change — unlink it first to take ownership.
55
+ */
56
+ put: operations['update_agent_config'];
45
57
  post?: never;
58
+ /**
59
+ * Delete Agent Config
60
+ * @description Delete an agent, by id or by the agent's name.
61
+ *
62
+ * The agent stops running and its name is freed immediately; its
63
+ * past sessions remain readable. Only for agents managed through
64
+ * this API — delete the file to remove one defined by a
65
+ * repository.
66
+ */
67
+ delete: operations['delete_agent_config'];
68
+ options?: never;
69
+ head?: never;
70
+ patch?: never;
71
+ trace?: never;
72
+ };
73
+ '/v1/agents/configs/{config_id}/link': {
74
+ parameters: {
75
+ query?: never;
76
+ header?: never;
77
+ path?: never;
78
+ cookie?: never;
79
+ };
80
+ get?: never;
81
+ put?: never;
82
+ /**
83
+ * Link Agent Config
84
+ * @description Move an agent into a repository, by id or by the agent's name.
85
+ *
86
+ * Opens a pull request adding the agent's config file. The agent
87
+ * keeps running unchanged meanwhile; merging hands it over to the
88
+ * file, after which the file is what changes it. Nothing happens
89
+ * if the pull request is never merged.
90
+ */
91
+ post: operations['link_agent_config'];
92
+ delete?: never;
93
+ options?: never;
94
+ head?: never;
95
+ patch?: never;
96
+ trace?: never;
97
+ };
98
+ '/v1/agents/configs/{config_id}/unlink': {
99
+ parameters: {
100
+ query?: never;
101
+ header?: never;
102
+ path?: never;
103
+ cookie?: never;
104
+ };
105
+ get?: never;
106
+ put?: never;
107
+ /**
108
+ * Unlink Agent Config
109
+ * @description Take over an agent from its file, by id or by the agent's name.
110
+ *
111
+ * The file stops governing the agent immediately and further
112
+ * changes go through this API. The file is left in place, inert —
113
+ * delete it whenever you like.
114
+ */
115
+ post: operations['unlink_agent_config'];
46
116
  delete?: never;
47
117
  options?: never;
48
118
  head?: never;
49
119
  patch?: never;
50
120
  trace?: never;
51
121
  };
52
- '/agents/defaults': {
122
+ '/v1/agents/defaults': {
53
123
  parameters: {
54
124
  query?: never;
55
125
  header?: never;
@@ -95,7 +165,7 @@ interface paths {
95
165
  patch?: never;
96
166
  trace?: never;
97
167
  };
98
- '/agents/templates': {
168
+ '/v1/agents/templates': {
99
169
  parameters: {
100
170
  query?: never;
101
171
  header?: never;
@@ -118,7 +188,7 @@ interface paths {
118
188
  patch?: never;
119
189
  trace?: never;
120
190
  };
121
- '/agents/templates/{template_id}': {
191
+ '/v1/agents/templates/{template_id}': {
122
192
  parameters: {
123
193
  query?: never;
124
194
  header?: never;
@@ -138,7 +208,7 @@ interface paths {
138
208
  patch?: never;
139
209
  trace?: never;
140
210
  };
141
- '/alerts': {
211
+ '/v1/alerts': {
142
212
  parameters: {
143
213
  query?: never;
144
214
  header?: never;
@@ -163,7 +233,7 @@ interface paths {
163
233
  patch?: never;
164
234
  trace?: never;
165
235
  };
166
- '/alerts/{alert_id}': {
236
+ '/v1/alerts/{alert_id}': {
167
237
  parameters: {
168
238
  query?: never;
169
239
  header?: never;
@@ -185,7 +255,7 @@ interface paths {
185
255
  patch?: never;
186
256
  trace?: never;
187
257
  };
188
- '/alerts/{alert_id}/dismiss': {
258
+ '/v1/alerts/{alert_id}/dismiss': {
189
259
  parameters: {
190
260
  query?: never;
191
261
  header?: never;
@@ -207,7 +277,7 @@ interface paths {
207
277
  patch?: never;
208
278
  trace?: never;
209
279
  };
210
- '/analytics/metrics': {
280
+ '/v1/analytics/metrics': {
211
281
  parameters: {
212
282
  query?: never;
213
283
  header?: never;
@@ -235,7 +305,7 @@ interface paths {
235
305
  patch?: never;
236
306
  trace?: never;
237
307
  };
238
- '/analytics/pull-requests': {
308
+ '/v1/analytics/pull-requests': {
239
309
  parameters: {
240
310
  query?: never;
241
311
  header?: never;
@@ -258,7 +328,7 @@ interface paths {
258
328
  patch?: never;
259
329
  trace?: never;
260
330
  };
261
- '/analytics/reviews': {
331
+ '/v1/analytics/reviews': {
262
332
  parameters: {
263
333
  query?: never;
264
334
  header?: never;
@@ -283,7 +353,7 @@ interface paths {
283
353
  patch?: never;
284
354
  trace?: never;
285
355
  };
286
- '/auth/cli/poll': {
356
+ '/v1/auth/cli/poll': {
287
357
  parameters: {
288
358
  query?: never;
289
359
  header?: never;
@@ -305,7 +375,7 @@ interface paths {
305
375
  patch?: never;
306
376
  trace?: never;
307
377
  };
308
- '/auth/cli/start': {
378
+ '/v1/auth/cli/start': {
309
379
  parameters: {
310
380
  query?: never;
311
381
  header?: never;
@@ -329,7 +399,7 @@ interface paths {
329
399
  patch?: never;
330
400
  trace?: never;
331
401
  };
332
- '/budget': {
402
+ '/v1/budget': {
333
403
  parameters: {
334
404
  query?: never;
335
405
  header?: never;
@@ -349,7 +419,7 @@ interface paths {
349
419
  patch?: never;
350
420
  trace?: never;
351
421
  };
352
- '/files': {
422
+ '/v1/files': {
353
423
  parameters: {
354
424
  query?: never;
355
425
  header?: never;
@@ -382,7 +452,7 @@ interface paths {
382
452
  patch?: never;
383
453
  trace?: never;
384
454
  };
385
- '/files/{file_id}': {
455
+ '/v1/files/{file_id}': {
386
456
  parameters: {
387
457
  query?: never;
388
458
  header?: never;
@@ -420,7 +490,7 @@ interface paths {
420
490
  patch?: never;
421
491
  trace?: never;
422
492
  };
423
- '/integrations': {
493
+ '/v1/integrations': {
424
494
  parameters: {
425
495
  query?: never;
426
496
  header?: never;
@@ -447,7 +517,7 @@ interface paths {
447
517
  patch?: never;
448
518
  trace?: never;
449
519
  };
450
- '/integrations/github/members': {
520
+ '/v1/integrations/github/members': {
451
521
  parameters: {
452
522
  query?: never;
453
523
  header?: never;
@@ -473,7 +543,7 @@ interface paths {
473
543
  patch?: never;
474
544
  trace?: never;
475
545
  };
476
- '/integrations/github/repos': {
546
+ '/v1/integrations/github/repos': {
477
547
  parameters: {
478
548
  query?: never;
479
549
  header?: never;
@@ -493,7 +563,7 @@ interface paths {
493
563
  patch?: never;
494
564
  trace?: never;
495
565
  };
496
- '/integrations/linear/teams': {
566
+ '/v1/integrations/linear/teams': {
497
567
  parameters: {
498
568
  query?: never;
499
569
  header?: never;
@@ -513,7 +583,7 @@ interface paths {
513
583
  patch?: never;
514
584
  trace?: never;
515
585
  };
516
- '/integrations/sentry/organizations': {
586
+ '/v1/integrations/sentry/organizations': {
517
587
  parameters: {
518
588
  query?: never;
519
589
  header?: never;
@@ -533,7 +603,7 @@ interface paths {
533
603
  patch?: never;
534
604
  trace?: never;
535
605
  };
536
- '/integrations/slack/channels': {
606
+ '/v1/integrations/slack/channels': {
537
607
  parameters: {
538
608
  query?: never;
539
609
  header?: never;
@@ -554,7 +624,7 @@ interface paths {
554
624
  patch?: never;
555
625
  trace?: never;
556
626
  };
557
- '/integrations/slack/members': {
627
+ '/v1/integrations/slack/members': {
558
628
  parameters: {
559
629
  query?: never;
560
630
  header?: never;
@@ -575,7 +645,7 @@ interface paths {
575
645
  patch?: never;
576
646
  trace?: never;
577
647
  };
578
- '/me': {
648
+ '/v1/me': {
579
649
  parameters: {
580
650
  query?: never;
581
651
  header?: never;
@@ -595,7 +665,7 @@ interface paths {
595
665
  patch?: never;
596
666
  trace?: never;
597
667
  };
598
- '/memories': {
668
+ '/v1/memories': {
599
669
  parameters: {
600
670
  query?: never;
601
671
  header?: never;
@@ -632,7 +702,7 @@ interface paths {
632
702
  patch?: never;
633
703
  trace?: never;
634
704
  };
635
- '/memories/{memory_id}': {
705
+ '/v1/memories/{memory_id}': {
636
706
  parameters: {
637
707
  query?: never;
638
708
  header?: never;
@@ -673,7 +743,7 @@ interface paths {
673
743
  patch?: never;
674
744
  trace?: never;
675
745
  };
676
- '/models': {
746
+ '/v1/models': {
677
747
  parameters: {
678
748
  query?: never;
679
749
  header?: never;
@@ -700,7 +770,7 @@ interface paths {
700
770
  patch?: never;
701
771
  trace?: never;
702
772
  };
703
- '/reviews': {
773
+ '/v1/reviews': {
704
774
  parameters: {
705
775
  query?: never;
706
776
  header?: never;
@@ -739,7 +809,7 @@ interface paths {
739
809
  patch?: never;
740
810
  trace?: never;
741
811
  };
742
- '/reviews/{review_id}': {
812
+ '/v1/reviews/{review_id}': {
743
813
  parameters: {
744
814
  query?: never;
745
815
  header?: never;
@@ -766,7 +836,7 @@ interface paths {
766
836
  patch?: never;
767
837
  trace?: never;
768
838
  };
769
- '/secrets': {
839
+ '/v1/secrets': {
770
840
  parameters: {
771
841
  query?: never;
772
842
  header?: never;
@@ -798,7 +868,7 @@ interface paths {
798
868
  patch?: never;
799
869
  trace?: never;
800
870
  };
801
- '/secrets/{name}': {
871
+ '/v1/secrets/{name}': {
802
872
  parameters: {
803
873
  query?: never;
804
874
  header?: never;
@@ -821,7 +891,7 @@ interface paths {
821
891
  patch?: never;
822
892
  trace?: never;
823
893
  };
824
- '/sessions': {
894
+ '/v1/sessions': {
825
895
  parameters: {
826
896
  query?: never;
827
897
  header?: never;
@@ -857,7 +927,7 @@ interface paths {
857
927
  patch?: never;
858
928
  trace?: never;
859
929
  };
860
- '/sessions/search': {
930
+ '/v1/sessions/search': {
861
931
  parameters: {
862
932
  query?: never;
863
933
  header?: never;
@@ -885,7 +955,7 @@ interface paths {
885
955
  patch?: never;
886
956
  trace?: never;
887
957
  };
888
- '/sessions/sync': {
958
+ '/v1/sessions/sync': {
889
959
  parameters: {
890
960
  query?: never;
891
961
  header?: never;
@@ -909,7 +979,7 @@ interface paths {
909
979
  patch?: never;
910
980
  trace?: never;
911
981
  };
912
- '/sessions/{session_id}': {
982
+ '/v1/sessions/{session_id}': {
913
983
  parameters: {
914
984
  query?: never;
915
985
  header?: never;
@@ -936,7 +1006,7 @@ interface paths {
936
1006
  patch?: never;
937
1007
  trace?: never;
938
1008
  };
939
- '/sessions/{session_id}/executions': {
1009
+ '/v1/sessions/{session_id}/executions': {
940
1010
  parameters: {
941
1011
  query?: never;
942
1012
  header?: never;
@@ -964,7 +1034,7 @@ interface paths {
964
1034
  patch?: never;
965
1035
  trace?: never;
966
1036
  };
967
- '/sessions/{session_id}/export': {
1037
+ '/v1/sessions/{session_id}/export': {
968
1038
  parameters: {
969
1039
  query?: never;
970
1040
  header?: never;
@@ -993,35 +1063,7 @@ interface paths {
993
1063
  patch?: never;
994
1064
  trace?: never;
995
1065
  };
996
- '/sessions/{session_id}/ide': {
997
- parameters: {
998
- query?: never;
999
- header?: never;
1000
- path?: never;
1001
- cookie?: never;
1002
- };
1003
- /**
1004
- * Get Agent Session Ide
1005
- * @description Return the IDE link for the session's sandbox.
1006
- *
1007
- * The membership-gated dashboard page, which performs the sandbox
1008
- * proxy handoff itself.
1009
- *
1010
- * No credential is minted here — the URL grants nothing by
1011
- * possession. 409 when the sandbox isn't running (send the
1012
- * session a message to wake it first). Backs the `agent session
1013
- * ide` CLI verb.
1014
- */
1015
- get: operations['get_agent_session_ide'];
1016
- put?: never;
1017
- post?: never;
1018
- delete?: never;
1019
- options?: never;
1020
- head?: never;
1021
- patch?: never;
1022
- trace?: never;
1023
- };
1024
- '/sessions/{session_id}/messages': {
1066
+ '/v1/sessions/{session_id}/messages': {
1025
1067
  parameters: {
1026
1068
  query?: never;
1027
1069
  header?: never;
@@ -1046,7 +1088,7 @@ interface paths {
1046
1088
  patch?: never;
1047
1089
  trace?: never;
1048
1090
  };
1049
- '/sessions/{session_id}/output': {
1091
+ '/v1/sessions/{session_id}/output': {
1050
1092
  parameters: {
1051
1093
  query?: never;
1052
1094
  header?: never;
@@ -1059,7 +1101,7 @@ interface paths {
1059
1101
  *
1060
1102
  * The payload the agent submitted through its config-declared
1061
1103
  * output.json_schema, as the raw JSON body with no envelope. 404
1062
- * while the session is still running (poll GET /sessions/{id}),
1104
+ * while the session is still running (poll GET /v1/sessions/{id}),
1063
1105
  * when the agent declares no output block, or when no execution
1064
1106
  * produced output.
1065
1107
  */
@@ -1072,32 +1114,7 @@ interface paths {
1072
1114
  patch?: never;
1073
1115
  trace?: never;
1074
1116
  };
1075
- '/sessions/{session_id}/ports/{port}': {
1076
- parameters: {
1077
- query?: never;
1078
- header?: never;
1079
- path?: never;
1080
- cookie?: never;
1081
- };
1082
- /**
1083
- * Get Agent Session Port
1084
- * @description Return a preview link for a sandbox port.
1085
- *
1086
- * For a dev server running in the session's live sandbox: the
1087
- * same dashboard page as the IDE, deep-linked to the port.
1088
- *
1089
- * Backs `agent session port`.
1090
- */
1091
- get: operations['get_agent_session_port'];
1092
- put?: never;
1093
- post?: never;
1094
- delete?: never;
1095
- options?: never;
1096
- head?: never;
1097
- patch?: never;
1098
- trace?: never;
1099
- };
1100
- '/sessions/{session_id}/records': {
1117
+ '/v1/sessions/{session_id}/records': {
1101
1118
  parameters: {
1102
1119
  query?: never;
1103
1120
  header?: never;
@@ -1124,7 +1141,7 @@ interface paths {
1124
1141
  patch?: never;
1125
1142
  trace?: never;
1126
1143
  };
1127
- '/sessions/{session_id}/replay': {
1144
+ '/v1/sessions/{session_id}/replay': {
1128
1145
  parameters: {
1129
1146
  query?: never;
1130
1147
  header?: never;
@@ -1149,7 +1166,7 @@ interface paths {
1149
1166
  patch?: never;
1150
1167
  trace?: never;
1151
1168
  };
1152
- '/sessions/{session_id}/stop': {
1169
+ '/v1/sessions/{session_id}/stop': {
1153
1170
  parameters: {
1154
1171
  query?: never;
1155
1172
  header?: never;
@@ -1172,7 +1189,7 @@ interface paths {
1172
1189
  patch?: never;
1173
1190
  trace?: never;
1174
1191
  };
1175
- '/sessions/{session_id}/transcript': {
1192
+ '/v1/sessions/{session_id}/transcript': {
1176
1193
  parameters: {
1177
1194
  query?: never;
1178
1195
  header?: never;
@@ -1197,7 +1214,7 @@ interface paths {
1197
1214
  patch?: never;
1198
1215
  trace?: never;
1199
1216
  };
1200
- '/usage': {
1217
+ '/v1/usage': {
1201
1218
  parameters: {
1202
1219
  query?: never;
1203
1220
  header?: never;
@@ -1235,7 +1252,6 @@ interface components {
1235
1252
  /**
1236
1253
  * @default {
1237
1254
  * "enabled": true,
1238
- * "ide": true,
1239
1255
  * "interactive": true,
1240
1256
  * "metadata": {
1241
1257
  * "annotations": {},
@@ -1250,12 +1266,6 @@ interface components {
1250
1266
  * "compute": {},
1251
1267
  * "hooks": {},
1252
1268
  * "image": {},
1253
- * "ports": [
1254
- * 3000,
1255
- * 5173,
1256
- * 8000,
1257
- * 8080
1258
- * ],
1259
1269
  * "repositories": [],
1260
1270
  * "variables": []
1261
1271
  * }
@@ -1332,7 +1342,7 @@ interface components {
1332
1342
  AgentConfigCodex: {
1333
1343
  /**
1334
1344
  * Model
1335
- * @default bedrock-gpt-5.6-terra
1345
+ * @default gpt-5.6-terra
1336
1346
  */
1337
1347
  model: string;
1338
1348
  /**
@@ -1400,18 +1410,17 @@ interface components {
1400
1410
  * AgentConfigEllipsis
1401
1411
  * @description The Ellipsis product namespace for a config file: which schema this is
1402
1412
  * (`version`), the human-facing identity (`name`/`description`), freeform
1403
- * organizational `metadata`, whether the agent is `enabled`, and the two
1404
- * human-access flags (`interactive`/`ide`). The presence of a top-level
1405
- * `ellipsis:` mapping is what marks a YAML file as an Ellipsis agent config (vs
1406
- * arbitrary YAML that merely lives under a config directory) — see
1413
+ * organizational `metadata`, whether the agent is `enabled`, and the
1414
+ * human-access flag `interactive`. The presence of a top-level `ellipsis:`
1415
+ * mapping is what marks a YAML file as an Ellipsis agent config (vs arbitrary
1416
+ * YAML that merely lives under a config directory) — see
1407
1417
  * `yaml_is_ellipsis_config`.
1408
1418
  *
1409
- * `enabled`/`interactive`/`ide` are agent behavior, not freeform metadata, so
1410
- * they stay inside the config `sha` (only `metadata` is sha-excluded).
1411
- * `interactive` and `ide` are sibling human-access flags: `interactive` lets a
1412
- * human `agent session connect` to a live session (CLI relay); `ide` lets a
1413
- * human open an editor / a port URL into the sandbox. Neither decides whether a
1414
- * session is ephemeral or durable — that is the trigger's job.
1419
+ * `enabled`/`interactive` are agent behavior, not freeform metadata, so they
1420
+ * stay inside the config `sha` (only `metadata` is sha-excluded).
1421
+ * `interactive` lets a human `agent session connect` to a live session (CLI
1422
+ * relay). It does not decide whether a session is ephemeral or durable — that
1423
+ * is the trigger's job.
1415
1424
  */
1416
1425
  AgentConfigEllipsis: {
1417
1426
  /** Description */
@@ -1421,11 +1430,6 @@ interface components {
1421
1430
  * @default true
1422
1431
  */
1423
1432
  enabled: boolean;
1424
- /**
1425
- * Ide
1426
- * @default true
1427
- */
1428
- ide: boolean;
1429
1433
  /**
1430
1434
  * Interactive
1431
1435
  * @default true
@@ -1478,16 +1482,6 @@ interface components {
1478
1482
  hooks: components['schemas']['AgentConfigEnvironmentHooks'];
1479
1483
  /** @default {} */
1480
1484
  image: components['schemas']['AgentConfigEnvironmentImage'];
1481
- /**
1482
- * Ports
1483
- * @default [
1484
- * 3000,
1485
- * 5173,
1486
- * 8000,
1487
- * 8080
1488
- * ]
1489
- */
1490
- ports: number[];
1491
1485
  /**
1492
1486
  * Repositories
1493
1487
  * @default []
@@ -1553,7 +1547,7 @@ interface components {
1553
1547
  * `value`, when set, is a literal injected as-is — use it for non-secret
1554
1548
  * config (LOG_LEVEL, an API base URL). When `value` is omitted the value is
1555
1549
  * resolved at run time from the account's sandbox-secrets store (dashboard
1556
- * / `PUT /secrets`) by `name`, so a secret can be injected without
1550
+ * / `PUT /v1/secrets`) by `name`, so a secret can be injected without
1557
1551
  * ever putting it in the config file. Either way the variable only reaches
1558
1552
  * agents that name it.
1559
1553
  */
@@ -1595,7 +1589,7 @@ interface components {
1595
1589
  * when it happens; this is what goes in).
1596
1590
  *
1597
1591
  * `json_schema` types the payload a caller-started session takes
1598
- * (`POST /sessions` `input`, validated at the door; required when
1592
+ * (`POST /v1/sessions` `input`, validated at the door; required when
1599
1593
  * declared). It is illegal on a react-triggered agent — react payloads are
1600
1594
  * platform-shaped (the published surface field sets), not caller-shaped.
1601
1595
  *
@@ -1693,7 +1687,7 @@ interface components {
1693
1687
  * AgentConfigOutput
1694
1688
  * @description The typed output contract: the JSON Schema the agent must exit through
1695
1689
  * (the StructuredOutput exit tool). Read back via
1696
- * GET /sessions/{id}/output.
1690
+ * GET /v1/sessions/{id}/output.
1697
1691
  */
1698
1692
  AgentConfigOutput: {
1699
1693
  /** Json Schema */
@@ -1807,6 +1801,7 @@ interface components {
1807
1801
  AgentConfigSystemFileRef: {
1808
1802
  /** File */
1809
1803
  file: string;
1804
+ repository?: components['schemas']['AgentConfigRepository'] | null;
1810
1805
  };
1811
1806
  /**
1812
1807
  * AgentConfigsListResponse
@@ -2340,7 +2335,7 @@ interface components {
2340
2335
  CliAuthPollRequest: {
2341
2336
  /**
2342
2337
  * Device Code
2343
- * @description The device code returned by POST /auth/cli/start.
2338
+ * @description The device code returned by POST /v1/auth/cli/start.
2344
2339
  */
2345
2340
  device_code: string;
2346
2341
  };
@@ -2397,6 +2392,8 @@ interface components {
2397
2392
  * @description The last commit the config was synced from.
2398
2393
  */
2399
2394
  last_synced_commit_sha?: string | null;
2395
+ /** @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. */
2396
+ managed_by: components['schemas']['ConfigManagedBy'];
2400
2397
  /**
2401
2398
  * Name
2402
2399
  * @description The agent's customer-unique addressable name (a slug of its display name); usable anywhere an agent is referenced, interchangeably with the id.
@@ -2419,6 +2416,14 @@ interface components {
2419
2416
  */
2420
2417
  updated_at: string;
2421
2418
  };
2419
+ /**
2420
+ * ConfigManagedBy
2421
+ * @description Which writer owns an agent: the repository file it is defined in, or
2422
+ * this API. Every agent has exactly one owner, fixed when it is created and
2423
+ * changed only by linking or unlinking it.
2424
+ * @enum {string}
2425
+ */
2426
+ ConfigManagedBy: 'github' | 'api';
2422
2427
  /**
2423
2428
  * ContributorUsage
2424
2429
  * @description An author who merged a pull request in the window. The pull-request and
@@ -2464,45 +2469,46 @@ interface components {
2464
2469
  };
2465
2470
  /**
2466
2471
  * CreateAgentConfigRequest
2467
- * @description Parameters for creating an agent config via a pull request. Exactly
2468
- * one of config or template_id must be set.
2472
+ * @description Parameters for creating an agent config. Exactly one of config or
2473
+ * template_id must be set.
2469
2474
  */
2470
2475
  CreateAgentConfigRequest: {
2471
2476
  /** @description An inline agent config. */
2472
2477
  config?: components['schemas']['AgentConfig'] | null;
2473
2478
  /**
2474
2479
  * Path
2475
- * @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).
2480
+ * @description File path within the repo, when a repository is named. 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).
2476
2481
  */
2477
2482
  path?: string | null;
2478
2483
  /**
2479
2484
  * Repository
2480
- * @description Target repository name within the caller's account; the owner is always the account, so pass a bare name (e.g. "my-service"), not "owner/my-service".
2485
+ * @description Define the agent as a file in this repository: Ellipsis opens a pull request adding it, and the agent goes live when that merges. Repository name within the caller's account; the owner is always the account, so pass a bare name (e.g. "my-service"), not "owner/my-service". Omit to create the agent through the API alone, with no file and live immediately.
2481
2486
  */
2482
- repository: string;
2487
+ repository?: string | null;
2483
2488
  /**
2484
2489
  * Template Id
2485
- * @description A gallery template slug (see GET /agents/templates).
2490
+ * @description A gallery template slug (see GET /v1/agents/templates).
2486
2491
  */
2487
2492
  template_id?: string | null;
2488
2493
  };
2489
2494
  /**
2490
2495
  * CreateAgentConfigResponse
2491
- * @description The created agent config and the pull request that adds its file.
2496
+ * @description The created agent config, plus the pull request that adds its file when
2497
+ * one was opened.
2492
2498
  */
2493
2499
  CreateAgentConfigResponse: {
2494
2500
  /** @description The created agent config. */
2495
2501
  config: components['schemas']['Config'];
2496
2502
  /**
2497
2503
  * Path
2498
- * @description The file path the config was written to.
2504
+ * @description The file path the config was written to, or null when the agent has no file.
2499
2505
  */
2500
- path: string;
2506
+ path?: string | null;
2501
2507
  /**
2502
2508
  * Pull Request Url
2503
- * @description The pull request that adds the config file. The agent becomes live once it merges and syncs.
2509
+ * @description The pull request that adds the config file. The agent becomes live once it merges and syncs. Null when no repository was named: the agent is already live.
2504
2510
  */
2505
- pull_request_url: string;
2511
+ pull_request_url?: string | null;
2506
2512
  };
2507
2513
  /**
2508
2514
  * CreateFileRequest
@@ -2913,17 +2919,6 @@ interface components {
2913
2919
  /** @description The connected Slack workspace, or null if not connected. */
2914
2920
  slack?: components['schemas']['SlackIntegrationSummary'] | null;
2915
2921
  };
2916
- /**
2917
- * GetSessionIdeResponse
2918
- * @description The IDE link for a session's live sandbox.
2919
- */
2920
- GetSessionIdeResponse: {
2921
- /**
2922
- * Url
2923
- * @description The membership-gated dashboard page for the session's sandbox. The page performs the proxy handoff itself, so the URL carries no credential — safe to share with any org member, in a transcript, or in a Slack message.
2924
- */
2925
- url: string;
2926
- };
2927
2922
  /**
2928
2923
  * GetSessionLogResponse
2929
2924
  * @description The session log manifest: the complete, ordered, downloadable history
@@ -2971,22 +2966,6 @@ interface components {
2971
2966
  */
2972
2967
  session_id: string;
2973
2968
  };
2974
- /**
2975
- * GetSessionPortResponse
2976
- * @description A preview link for a port in a session's live sandbox.
2977
- */
2978
- GetSessionPortResponse: {
2979
- /**
2980
- * Port
2981
- * @description The sandbox port the link previews.
2982
- */
2983
- port: number;
2984
- /**
2985
- * Url
2986
- * @description The same membership-gated dashboard page as the IDE URL, deep-linked to a preview port (a dev server the agent or the IDE user started).
2987
- */
2988
- url: string;
2989
- };
2990
2969
  /**
2991
2970
  * GetUsageDashboardResponse
2992
2971
  * @description The account's usage over a period: token and cost totals, a per-day
@@ -3438,6 +3417,40 @@ interface components {
3438
3417
  */
3439
3418
  teams: components['schemas']['LinearTeam'][];
3440
3419
  };
3420
+ /**
3421
+ * LinkAgentConfigRequest
3422
+ * @description Where to put the config file of an agent being moved into a repository.
3423
+ */
3424
+ LinkAgentConfigRequest: {
3425
+ /**
3426
+ * Path
3427
+ * @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).
3428
+ */
3429
+ path?: string | null;
3430
+ /**
3431
+ * Repository
3432
+ * @description Repository name within the caller's account; the owner is always the account, so pass a bare name (e.g. "my-service"), not "owner/my-service".
3433
+ */
3434
+ repository: string;
3435
+ };
3436
+ /**
3437
+ * LinkAgentConfigResponse
3438
+ * @description The agent and the pull request that would put it in a repository.
3439
+ */
3440
+ LinkAgentConfigResponse: {
3441
+ /** @description The agent, still managed through the API until the pull request merges. */
3442
+ config: components['schemas']['Config'];
3443
+ /**
3444
+ * Path
3445
+ * @description The file path the config will be written to.
3446
+ */
3447
+ path: string;
3448
+ /**
3449
+ * Pull Request Url
3450
+ * @description The pull request that adds the config file. The agent becomes managed by that file once it merges.
3451
+ */
3452
+ pull_request_url: string;
3453
+ };
3441
3454
  /**
3442
3455
  * LinkedGithubIdentity
3443
3456
  * @description The GitHub identity linked to a Slack member.
@@ -3624,9 +3637,9 @@ interface components {
3624
3637
  * Serving path is irrelevant here. Anthropic built every Claude model, so all of
3625
3638
  * them are ANTHROPIC whether we reach them through the first-party Anthropic API
3626
3639
  * or through Bedrock -- a choice made per request by the llm_providers chain, so
3627
- * it is not even a fixed property of the model. Likewise the `bedrock-gpt-5.6-*`
3628
- * rows are OPENAI (OpenAI's models, served by AWS), and GLM is ZAI (Z.ai's model,
3629
- * served by Concentrate).
3640
+ * it is not even a fixed property of the model. Likewise the `gpt-5.6-*` rows
3641
+ * are OPENAI (OpenAI's models, served by AWS via bedrock-mantle), and GLM is ZAI
3642
+ * (Z.ai's model, served by Concentrate).
3630
3643
  *
3631
3644
  * So this is deliberately NOT derived from `EgressRoute.provider`: routing is an
3632
3645
  * infrastructure fact that changes when we move a model between providers, while
@@ -5245,7 +5258,7 @@ interface components {
5245
5258
  /**
5246
5259
  * Session
5247
5260
  * @description An agent session: one conversation with an agent, from trigger to
5248
- * terminal state. Returned by `GET /sessions/{id}` and carried by the
5261
+ * terminal state. Returned by `GET /v1/sessions/{id}` and carried by the
5249
5262
  * session stream's `session`/`snapshot` frames — REST and stream never
5250
5263
  * disagree about what a session looks like.
5251
5264
  */
@@ -5254,23 +5267,11 @@ interface components {
5254
5267
  attribution?: components['schemas']['SessionAttribution'];
5255
5268
  /** @description The spend budget enforced for this session. */
5256
5269
  budget?: components['schemas']['SessionBudget'];
5257
- /**
5258
- * Client Version
5259
- * @description Version of the client that started the session, if reported.
5260
- */
5261
- client_version?: string | null;
5262
5270
  /**
5263
5271
  * Config Id
5264
5272
  * @description Identifier of the saved agent config the session ran on, if any.
5265
5273
  */
5266
5274
  config_id?: string | null;
5267
- /**
5268
- * Config Override
5269
- * @description The partial-config diff applied for this run; null when the config was unmodified.
5270
- */
5271
- config_override?: {
5272
- [key: string]: unknown;
5273
- } | null;
5274
5275
  /**
5275
5276
  * Context Repository
5276
5277
  * @description The "owner/name" repository context the session was started in, if any.
@@ -5332,16 +5333,6 @@ interface components {
5332
5333
  prompt?: string | null;
5333
5334
  /** @description Whether a client may send this session a message and, when it may not, the reason to show instead of a composer. */
5334
5335
  prompting: components['schemas']['SessionPrompting'];
5335
- /**
5336
- * Sandbox Id
5337
- * @description Identifier of the sandbox the session runs in, if any.
5338
- */
5339
- sandbox_id?: string | null;
5340
- /**
5341
- * Session Key
5342
- * @description Key identifying the durable conversation this session belongs to, or null for single-shot sessions.
5343
- */
5344
- session_key?: string | null;
5345
5336
  /** @description Lifecycle state of the durable conversation, or null for sessions without one. */
5346
5337
  session_state?: components['schemas']['SessionState'] | null;
5347
5338
  /** @description Where the session came from (e.g. react, manual, api, cli, mention, cron, laptop). */
@@ -5365,13 +5356,6 @@ interface components {
5365
5356
  * @description When the session was last updated.
5366
5357
  */
5367
5358
  updated_at: string;
5368
- /**
5369
- * Webhook Id
5370
- * @description Identifier of the webhook event that triggered the session, if any.
5371
- */
5372
- webhook_id?: string | null;
5373
- /** @description Type of the webhook event that triggered the session, if any. */
5374
- webhook_type?: components['schemas']['WebhookType'] | null;
5375
5359
  };
5376
5360
  /**
5377
5361
  * SessionAttribution
@@ -6005,7 +5989,7 @@ interface components {
6005
5989
  next_cursor?: string | null;
6006
5990
  /**
6007
5991
  * Sessions
6008
- * @description Lean wire rows — the same shape GET /sessions/{id} and the stream's session frames carry. The heavy blobs (config snapshot, input/output) live on the detail endpoints.
5992
+ * @description Lean wire rows — the same shape GET /v1/sessions/{id} and the stream's session frames carry. The heavy blobs (config snapshot, input/output) live on the detail endpoints.
6009
5993
  */
6010
5994
  sessions: components['schemas']['Session'][];
6011
5995
  };
@@ -6377,6 +6361,14 @@ interface components {
6377
6361
  /** Skipped */
6378
6362
  skipped: number;
6379
6363
  };
6364
+ /**
6365
+ * UpdateAgentConfigRequest
6366
+ * @description A replacement definition for an agent managed through the API.
6367
+ */
6368
+ UpdateAgentConfigRequest: {
6369
+ /** @description The agent's new definition. Replaces the previous one wholesale — this is not a partial update. */
6370
+ config: components['schemas']['AgentConfig'];
6371
+ };
6380
6372
  /**
6381
6373
  * UsageDailyPoint
6382
6374
  * @description One day's usage: tokens split by type, and cost split into the four
@@ -6458,11 +6450,6 @@ interface components {
6458
6450
  /** Error Type */
6459
6451
  type: string;
6460
6452
  };
6461
- /**
6462
- * WebhookType
6463
- * @enum {string}
6464
- */
6465
- WebhookType: 'github.issue' | 'github.issue_comment' | 'github.push' | 'github.pull_request' | 'github.pull_request_comment' | 'github.pull_request_review' | 'github.pull_request_review_comment' | 'slack.app_mention' | 'slack.message' | 'slack.channel_created' | 'linear.issue' | 'linear.issue_comment' | 'sentry.event_alert' | 'sentry.metric_alert' | 'user.message';
6466
6453
  /**
6467
6454
  * WhoAmIResponse
6468
6455
  * @description The identity behind the caller's credential.
@@ -6622,7 +6609,7 @@ interface operations {
6622
6609
  'application/json': components['schemas']['ErrorResponse'];
6623
6610
  };
6624
6611
  };
6625
- /** @description The agent's name contains no usable characters. */
6612
+ /** @description The agent's name contains no usable characters, or a file reference names no repository. */
6626
6613
  422: {
6627
6614
  headers: {
6628
6615
  [name: string]: unknown;
@@ -6693,16 +6680,22 @@ interface operations {
6693
6680
  };
6694
6681
  };
6695
6682
  };
6696
- list_agent_defaults: {
6683
+ update_agent_config: {
6697
6684
  parameters: {
6698
6685
  query?: never;
6699
6686
  header?: {
6700
6687
  'user-agent'?: string | null;
6701
6688
  };
6702
- path?: never;
6689
+ path: {
6690
+ config_id: string;
6691
+ };
6703
6692
  cookie?: never;
6704
6693
  };
6705
- requestBody?: never;
6694
+ requestBody: {
6695
+ content: {
6696
+ 'application/json': components['schemas']['UpdateAgentConfigRequest'];
6697
+ };
6698
+ };
6706
6699
  responses: {
6707
6700
  /** @description Successful Response */
6708
6701
  200: {
@@ -6710,7 +6703,16 @@ interface operations {
6710
6703
  [name: string]: unknown;
6711
6704
  };
6712
6705
  content: {
6713
- 'application/json': components['schemas']['AgentDefaultsListResponse'];
6706
+ 'application/json': components['schemas']['AgentConfigResponse'];
6707
+ };
6708
+ };
6709
+ /** @description The config is invalid (for example an unschedulable cron expression). */
6710
+ 400: {
6711
+ headers: {
6712
+ [name: string]: unknown;
6713
+ };
6714
+ content: {
6715
+ 'application/json': components['schemas']['ErrorResponse'];
6714
6716
  };
6715
6717
  };
6716
6718
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -6731,43 +6733,57 @@ interface operations {
6731
6733
  'application/json': components['schemas']['ErrorResponse'];
6732
6734
  };
6733
6735
  };
6734
- /** @description Validation Error */
6736
+ /** @description No such config in your account. */
6737
+ 404: {
6738
+ headers: {
6739
+ [name: string]: unknown;
6740
+ };
6741
+ content: {
6742
+ 'application/json': components['schemas']['ErrorResponse'];
6743
+ };
6744
+ };
6745
+ /** @description The agent is defined by a file in a repository, or another live agent already holds the new name. */
6746
+ 409: {
6747
+ headers: {
6748
+ [name: string]: unknown;
6749
+ };
6750
+ content: {
6751
+ 'application/json': components['schemas']['ErrorResponse'];
6752
+ };
6753
+ };
6754
+ /** @description The agent's name is missing or malformed, or a file reference names no repository. */
6735
6755
  422: {
6736
6756
  headers: {
6737
6757
  [name: string]: unknown;
6738
6758
  };
6739
6759
  content: {
6740
- 'application/json': components['schemas']['HTTPValidationError'];
6760
+ 'application/json': components['schemas']['ErrorResponse'];
6741
6761
  };
6742
6762
  };
6743
6763
  };
6744
6764
  };
6745
- put_agent_default: {
6765
+ delete_agent_config: {
6746
6766
  parameters: {
6747
6767
  query?: never;
6748
6768
  header?: {
6749
6769
  'user-agent'?: string | null;
6750
6770
  };
6751
- path?: never;
6752
- cookie?: never;
6753
- };
6754
- requestBody: {
6755
- content: {
6756
- 'application/json': components['schemas']['PutAgentDefaultRequest'];
6771
+ path: {
6772
+ config_id: string;
6757
6773
  };
6774
+ cookie?: never;
6758
6775
  };
6776
+ requestBody?: never;
6759
6777
  responses: {
6760
6778
  /** @description Successful Response */
6761
- 200: {
6779
+ 204: {
6762
6780
  headers: {
6763
6781
  [name: string]: unknown;
6764
6782
  };
6765
- content: {
6766
- 'application/json': components['schemas']['AgentDefaultResponse'];
6767
- };
6783
+ content?: never;
6768
6784
  };
6769
- /** @description The config is not eligible as a default: its pull request has not merged, or it is disabled. */
6770
- 400: {
6785
+ /** @description The bearer token is missing, invalid, or revoked. */
6786
+ 401: {
6771
6787
  headers: {
6772
6788
  [name: string]: unknown;
6773
6789
  };
@@ -6775,8 +6791,8 @@ interface operations {
6775
6791
  'application/json': components['schemas']['ErrorResponse'];
6776
6792
  };
6777
6793
  };
6778
- /** @description The bearer token is missing, invalid, or revoked. */
6779
- 401: {
6794
+ /** @description The credential may not perform this action, or the account is blocked. */
6795
+ 403: {
6780
6796
  headers: {
6781
6797
  [name: string]: unknown;
6782
6798
  };
@@ -6784,8 +6800,8 @@ interface operations {
6784
6800
  'application/json': components['schemas']['ErrorResponse'];
6785
6801
  };
6786
6802
  };
6787
- /** @description The credential may not perform this action, or the account is blocked. */
6788
- 403: {
6803
+ /** @description No such config in your account. */
6804
+ 404: {
6789
6805
  headers: {
6790
6806
  [name: string]: unknown;
6791
6807
  };
@@ -6793,8 +6809,8 @@ interface operations {
6793
6809
  'application/json': components['schemas']['ErrorResponse'];
6794
6810
  };
6795
6811
  };
6796
- /** @description The config or repository was not found in your account. */
6797
- 404: {
6812
+ /** @description The agent is defined by a file in a repository; delete that file instead. */
6813
+ 409: {
6798
6814
  headers: {
6799
6815
  [name: string]: unknown;
6800
6816
  };
@@ -6813,26 +6829,40 @@ interface operations {
6813
6829
  };
6814
6830
  };
6815
6831
  };
6816
- delete_agent_default: {
6832
+ link_agent_config: {
6817
6833
  parameters: {
6818
- query?: {
6819
- /** @description Repo rung to clear ("owner/name"); omit to clear the account default. */
6820
- repository?: string | null;
6821
- };
6834
+ query?: never;
6822
6835
  header?: {
6823
6836
  'user-agent'?: string | null;
6824
6837
  };
6825
- path?: never;
6838
+ path: {
6839
+ config_id: string;
6840
+ };
6826
6841
  cookie?: never;
6827
6842
  };
6828
- requestBody?: never;
6843
+ requestBody: {
6844
+ content: {
6845
+ 'application/json': components['schemas']['LinkAgentConfigRequest'];
6846
+ };
6847
+ };
6829
6848
  responses: {
6830
6849
  /** @description Successful Response */
6831
- 204: {
6850
+ 200: {
6832
6851
  headers: {
6833
6852
  [name: string]: unknown;
6834
6853
  };
6835
- content?: never;
6854
+ content: {
6855
+ 'application/json': components['schemas']['LinkAgentConfigResponse'];
6856
+ };
6857
+ };
6858
+ /** @description The path is not a synced config location, or the repository has no commits. */
6859
+ 400: {
6860
+ headers: {
6861
+ [name: string]: unknown;
6862
+ };
6863
+ content: {
6864
+ 'application/json': components['schemas']['ErrorResponse'];
6865
+ };
6836
6866
  };
6837
6867
  /** @description The bearer token is missing, invalid, or revoked. */
6838
6868
  401: {
@@ -6852,7 +6882,264 @@ interface operations {
6852
6882
  'application/json': components['schemas']['ErrorResponse'];
6853
6883
  };
6854
6884
  };
6855
- /** @description No default is set at that rung, or the repository was not found in your account. */
6885
+ /** @description The config or repository was not found in your account. */
6886
+ 404: {
6887
+ headers: {
6888
+ [name: string]: unknown;
6889
+ };
6890
+ content: {
6891
+ 'application/json': components['schemas']['ErrorResponse'];
6892
+ };
6893
+ };
6894
+ /** @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. */
6895
+ 409: {
6896
+ headers: {
6897
+ [name: string]: unknown;
6898
+ };
6899
+ content: {
6900
+ 'application/json': components['schemas']['ErrorResponse'];
6901
+ };
6902
+ };
6903
+ /** @description GitHub rejected the pull request. */
6904
+ 422: {
6905
+ headers: {
6906
+ [name: string]: unknown;
6907
+ };
6908
+ content: {
6909
+ 'application/json': components['schemas']['ErrorResponse'];
6910
+ };
6911
+ };
6912
+ };
6913
+ };
6914
+ unlink_agent_config: {
6915
+ parameters: {
6916
+ query?: never;
6917
+ header?: {
6918
+ 'user-agent'?: string | null;
6919
+ };
6920
+ path: {
6921
+ config_id: string;
6922
+ };
6923
+ cookie?: never;
6924
+ };
6925
+ requestBody?: never;
6926
+ responses: {
6927
+ /** @description Successful Response */
6928
+ 200: {
6929
+ headers: {
6930
+ [name: string]: unknown;
6931
+ };
6932
+ content: {
6933
+ 'application/json': components['schemas']['AgentConfigResponse'];
6934
+ };
6935
+ };
6936
+ /** @description The bearer token is missing, invalid, or revoked. */
6937
+ 401: {
6938
+ headers: {
6939
+ [name: string]: unknown;
6940
+ };
6941
+ content: {
6942
+ 'application/json': components['schemas']['ErrorResponse'];
6943
+ };
6944
+ };
6945
+ /** @description The credential may not perform this action, or the account is blocked. */
6946
+ 403: {
6947
+ headers: {
6948
+ [name: string]: unknown;
6949
+ };
6950
+ content: {
6951
+ 'application/json': components['schemas']['ErrorResponse'];
6952
+ };
6953
+ };
6954
+ /** @description No such config in your account. */
6955
+ 404: {
6956
+ headers: {
6957
+ [name: string]: unknown;
6958
+ };
6959
+ content: {
6960
+ 'application/json': components['schemas']['ErrorResponse'];
6961
+ };
6962
+ };
6963
+ /** @description The agent is already managed through the API. */
6964
+ 409: {
6965
+ headers: {
6966
+ [name: string]: unknown;
6967
+ };
6968
+ content: {
6969
+ 'application/json': components['schemas']['ErrorResponse'];
6970
+ };
6971
+ };
6972
+ /** @description The config has a file reference that names no repository, so it cannot resolve without its source repository. */
6973
+ 422: {
6974
+ headers: {
6975
+ [name: string]: unknown;
6976
+ };
6977
+ content: {
6978
+ 'application/json': components['schemas']['ErrorResponse'];
6979
+ };
6980
+ };
6981
+ };
6982
+ };
6983
+ list_agent_defaults: {
6984
+ parameters: {
6985
+ query?: never;
6986
+ header?: {
6987
+ 'user-agent'?: string | null;
6988
+ };
6989
+ path?: never;
6990
+ cookie?: never;
6991
+ };
6992
+ requestBody?: never;
6993
+ responses: {
6994
+ /** @description Successful Response */
6995
+ 200: {
6996
+ headers: {
6997
+ [name: string]: unknown;
6998
+ };
6999
+ content: {
7000
+ 'application/json': components['schemas']['AgentDefaultsListResponse'];
7001
+ };
7002
+ };
7003
+ /** @description The bearer token is missing, invalid, or revoked. */
7004
+ 401: {
7005
+ headers: {
7006
+ [name: string]: unknown;
7007
+ };
7008
+ content: {
7009
+ 'application/json': components['schemas']['ErrorResponse'];
7010
+ };
7011
+ };
7012
+ /** @description The credential may not perform this action, or the account is blocked. */
7013
+ 403: {
7014
+ headers: {
7015
+ [name: string]: unknown;
7016
+ };
7017
+ content: {
7018
+ 'application/json': components['schemas']['ErrorResponse'];
7019
+ };
7020
+ };
7021
+ /** @description Validation Error */
7022
+ 422: {
7023
+ headers: {
7024
+ [name: string]: unknown;
7025
+ };
7026
+ content: {
7027
+ 'application/json': components['schemas']['HTTPValidationError'];
7028
+ };
7029
+ };
7030
+ };
7031
+ };
7032
+ put_agent_default: {
7033
+ parameters: {
7034
+ query?: never;
7035
+ header?: {
7036
+ 'user-agent'?: string | null;
7037
+ };
7038
+ path?: never;
7039
+ cookie?: never;
7040
+ };
7041
+ requestBody: {
7042
+ content: {
7043
+ 'application/json': components['schemas']['PutAgentDefaultRequest'];
7044
+ };
7045
+ };
7046
+ responses: {
7047
+ /** @description Successful Response */
7048
+ 200: {
7049
+ headers: {
7050
+ [name: string]: unknown;
7051
+ };
7052
+ content: {
7053
+ 'application/json': components['schemas']['AgentDefaultResponse'];
7054
+ };
7055
+ };
7056
+ /** @description The config is not eligible as a default: its pull request has not merged, or it is disabled. */
7057
+ 400: {
7058
+ headers: {
7059
+ [name: string]: unknown;
7060
+ };
7061
+ content: {
7062
+ 'application/json': components['schemas']['ErrorResponse'];
7063
+ };
7064
+ };
7065
+ /** @description The bearer token is missing, invalid, or revoked. */
7066
+ 401: {
7067
+ headers: {
7068
+ [name: string]: unknown;
7069
+ };
7070
+ content: {
7071
+ 'application/json': components['schemas']['ErrorResponse'];
7072
+ };
7073
+ };
7074
+ /** @description The credential may not perform this action, or the account is blocked. */
7075
+ 403: {
7076
+ headers: {
7077
+ [name: string]: unknown;
7078
+ };
7079
+ content: {
7080
+ 'application/json': components['schemas']['ErrorResponse'];
7081
+ };
7082
+ };
7083
+ /** @description The config or repository was not found in your account. */
7084
+ 404: {
7085
+ headers: {
7086
+ [name: string]: unknown;
7087
+ };
7088
+ content: {
7089
+ 'application/json': components['schemas']['ErrorResponse'];
7090
+ };
7091
+ };
7092
+ /** @description Validation Error */
7093
+ 422: {
7094
+ headers: {
7095
+ [name: string]: unknown;
7096
+ };
7097
+ content: {
7098
+ 'application/json': components['schemas']['HTTPValidationError'];
7099
+ };
7100
+ };
7101
+ };
7102
+ };
7103
+ delete_agent_default: {
7104
+ parameters: {
7105
+ query?: {
7106
+ /** @description Repo rung to clear ("owner/name"); omit to clear the account default. */
7107
+ repository?: string | null;
7108
+ };
7109
+ header?: {
7110
+ 'user-agent'?: string | null;
7111
+ };
7112
+ path?: never;
7113
+ cookie?: never;
7114
+ };
7115
+ requestBody?: never;
7116
+ responses: {
7117
+ /** @description Successful Response */
7118
+ 204: {
7119
+ headers: {
7120
+ [name: string]: unknown;
7121
+ };
7122
+ content?: never;
7123
+ };
7124
+ /** @description The bearer token is missing, invalid, or revoked. */
7125
+ 401: {
7126
+ headers: {
7127
+ [name: string]: unknown;
7128
+ };
7129
+ content: {
7130
+ 'application/json': components['schemas']['ErrorResponse'];
7131
+ };
7132
+ };
7133
+ /** @description The credential may not perform this action, or the account is blocked. */
7134
+ 403: {
7135
+ headers: {
7136
+ [name: string]: unknown;
7137
+ };
7138
+ content: {
7139
+ 'application/json': components['schemas']['ErrorResponse'];
7140
+ };
7141
+ };
7142
+ /** @description No default is set at that rung, or the repository was not found in your account. */
6856
7143
  404: {
6857
7144
  headers: {
6858
7145
  [name: string]: unknown;
@@ -9382,75 +9669,6 @@ interface operations {
9382
9669
  };
9383
9670
  };
9384
9671
  };
9385
- get_agent_session_ide: {
9386
- parameters: {
9387
- query?: never;
9388
- header?: {
9389
- 'user-agent'?: string | null;
9390
- };
9391
- path: {
9392
- session_id: string;
9393
- };
9394
- cookie?: never;
9395
- };
9396
- requestBody?: never;
9397
- responses: {
9398
- /** @description Successful Response */
9399
- 200: {
9400
- headers: {
9401
- [name: string]: unknown;
9402
- };
9403
- content: {
9404
- 'application/json': components['schemas']['GetSessionIdeResponse'];
9405
- };
9406
- };
9407
- /** @description The bearer token is missing, invalid, or revoked. */
9408
- 401: {
9409
- headers: {
9410
- [name: string]: unknown;
9411
- };
9412
- content: {
9413
- 'application/json': components['schemas']['ErrorResponse'];
9414
- };
9415
- };
9416
- /** @description The credential may not perform this action, or the account is blocked. */
9417
- 403: {
9418
- headers: {
9419
- [name: string]: unknown;
9420
- };
9421
- content: {
9422
- 'application/json': components['schemas']['ErrorResponse'];
9423
- };
9424
- };
9425
- /** @description No such session in your account. */
9426
- 404: {
9427
- headers: {
9428
- [name: string]: unknown;
9429
- };
9430
- content: {
9431
- 'application/json': components['schemas']['ErrorResponse'];
9432
- };
9433
- };
9434
- /** @description The session's sandbox is not running; send it a message to wake it first. */
9435
- 409: {
9436
- headers: {
9437
- [name: string]: unknown;
9438
- };
9439
- content: {
9440
- 'application/json': components['schemas']['ErrorResponse'];
9441
- };
9442
- };
9443
- /** @description Validation Error */
9444
- 422: {
9445
- headers: {
9446
- [name: string]: unknown;
9447
- };
9448
- content: {
9449
- 'application/json': components['schemas']['HTTPValidationError'];
9450
- };
9451
- };
9452
- };
9453
- };
9454
9672
  send_agent_session_message: {
9455
9673
  parameters: {
9456
9674
  query?: never;
@@ -9593,76 +9811,6 @@ interface operations {
9593
9811
  };
9594
9812
  };
9595
9813
  };
9596
- get_agent_session_port: {
9597
- parameters: {
9598
- query?: never;
9599
- header?: {
9600
- 'user-agent'?: string | null;
9601
- };
9602
- path: {
9603
- session_id: string;
9604
- port: number;
9605
- };
9606
- cookie?: never;
9607
- };
9608
- requestBody?: never;
9609
- responses: {
9610
- /** @description Successful Response */
9611
- 200: {
9612
- headers: {
9613
- [name: string]: unknown;
9614
- };
9615
- content: {
9616
- 'application/json': components['schemas']['GetSessionPortResponse'];
9617
- };
9618
- };
9619
- /** @description The bearer token is missing, invalid, or revoked. */
9620
- 401: {
9621
- headers: {
9622
- [name: string]: unknown;
9623
- };
9624
- content: {
9625
- 'application/json': components['schemas']['ErrorResponse'];
9626
- };
9627
- };
9628
- /** @description The credential may not perform this action, or the account is blocked. */
9629
- 403: {
9630
- headers: {
9631
- [name: string]: unknown;
9632
- };
9633
- content: {
9634
- 'application/json': components['schemas']['ErrorResponse'];
9635
- };
9636
- };
9637
- /** @description No such session in your account, or the port is not a valid TCP port. */
9638
- 404: {
9639
- headers: {
9640
- [name: string]: unknown;
9641
- };
9642
- content: {
9643
- 'application/json': components['schemas']['ErrorResponse'];
9644
- };
9645
- };
9646
- /** @description The session's sandbox is not running; send it a message to wake it first. */
9647
- 409: {
9648
- headers: {
9649
- [name: string]: unknown;
9650
- };
9651
- content: {
9652
- 'application/json': components['schemas']['ErrorResponse'];
9653
- };
9654
- };
9655
- /** @description Validation Error */
9656
- 422: {
9657
- headers: {
9658
- [name: string]: unknown;
9659
- };
9660
- content: {
9661
- 'application/json': components['schemas']['HTTPValidationError'];
9662
- };
9663
- };
9664
- };
9665
- };
9666
9814
  get_agent_session_records: {
9667
9815
  parameters: {
9668
9816
  query?: {
@@ -10002,7 +10150,7 @@ interface operations {
10002
10150
  }
10003
10151
 
10004
10152
  /**
10005
- * One server-to-client frame of the Ellipsis session stream protocol v3 (WS /sessions/{id}/stream?protocol=3). Clients MUST ignore frames with unknown `type` values — additive frames are not a protocol break.
10153
+ * One server-to-client frame of the Ellipsis session stream protocol v3 (WS /v1/sessions/{id}/stream?protocol=3). Clients MUST ignore frames with unknown `type` values — additive frames are not a protocol break.
10006
10154
  */
10007
10155
  type SessionStreamFrame = SnapshotFrame | RecordsAppendFrame | SessionFrame | DeltaFrame | HeartbeatFrame | DoneFrame | ErrorFrame;
10008
10156
  type AttributionType = 'github_user' | 'linear_user' | 'slack_user' | 'api_key';
@@ -10077,7 +10225,6 @@ type RunStatus = 'scheduled' | 'starting' | 'working' | 'waiting' | 'done' | 'fa
10077
10225
  * The durable conversation axis (backs the surfaced `session` field).
10078
10226
  */
10079
10227
  type SessionLiveness = 'alive' | 'sleeping' | 'closed';
10080
- type WebhookType = 'github.issue' | 'github.issue_comment' | 'github.push' | 'github.pull_request' | 'github.pull_request_comment' | 'github.pull_request_review' | 'github.pull_request_review_comment' | 'slack.app_mention' | 'slack.message' | 'slack.channel_created' | 'linear.issue' | 'linear.issue_comment' | 'sentry.event_alert' | 'sentry.metric_alert' | 'user.message';
10081
10228
  /**
10082
10229
  * The first frame after the stream connects: the session plus its open
10083
10230
  * inbox. Records always arrive separately via records_append frames.
@@ -10151,20 +10298,10 @@ interface SessionMessage {
10151
10298
  interface Session {
10152
10299
  attribution: SessionAttribution;
10153
10300
  budget: SessionBudget;
10154
- /**
10155
- * Version of the client that started the session, if reported.
10156
- */
10157
- client_version: string | null;
10158
10301
  /**
10159
10302
  * Identifier of the saved agent config the session ran on, if any.
10160
10303
  */
10161
10304
  config_id: string | null;
10162
- /**
10163
- * The partial-config diff applied for this run; null when the config was unmodified.
10164
- */
10165
- config_override: {
10166
- [k: string]: unknown;
10167
- } | null;
10168
10305
  /**
10169
10306
  * The "owner/name" repository context the session was started in, if any.
10170
10307
  */
@@ -10215,14 +10352,6 @@ interface Session {
10215
10352
  */
10216
10353
  prompt: string | null;
10217
10354
  prompting: SessionPrompting;
10218
- /**
10219
- * Identifier of the sandbox the session runs in, if any.
10220
- */
10221
- sandbox_id: string | null;
10222
- /**
10223
- * Key identifying the durable conversation this session belongs to, or null for single-shot sessions.
10224
- */
10225
- session_key: string | null;
10226
10355
  /**
10227
10356
  * Lifecycle state of the durable conversation, or null for sessions without one.
10228
10357
  */
@@ -10243,14 +10372,6 @@ interface Session {
10243
10372
  * When the session was last updated.
10244
10373
  */
10245
10374
  updated_at: string;
10246
- /**
10247
- * Identifier of the webhook event that triggered the session, if any.
10248
- */
10249
- webhook_id: string | null;
10250
- /**
10251
- * Type of the webhook event that triggered the session, if any.
10252
- */
10253
- webhook_type: WebhookType | null;
10254
10375
  }
10255
10376
  /**
10256
10377
  * The principal this session is attributed to.
@@ -10532,20 +10653,10 @@ interface SessionFrame {
10532
10653
  interface Session1 {
10533
10654
  attribution: SessionAttribution;
10534
10655
  budget: SessionBudget;
10535
- /**
10536
- * Version of the client that started the session, if reported.
10537
- */
10538
- client_version: string | null;
10539
10656
  /**
10540
10657
  * Identifier of the saved agent config the session ran on, if any.
10541
10658
  */
10542
10659
  config_id: string | null;
10543
- /**
10544
- * The partial-config diff applied for this run; null when the config was unmodified.
10545
- */
10546
- config_override: {
10547
- [k: string]: unknown;
10548
- } | null;
10549
10660
  /**
10550
10661
  * The "owner/name" repository context the session was started in, if any.
10551
10662
  */
@@ -10596,14 +10707,6 @@ interface Session1 {
10596
10707
  */
10597
10708
  prompt: string | null;
10598
10709
  prompting: SessionPrompting;
10599
- /**
10600
- * Identifier of the sandbox the session runs in, if any.
10601
- */
10602
- sandbox_id: string | null;
10603
- /**
10604
- * Key identifying the durable conversation this session belongs to, or null for single-shot sessions.
10605
- */
10606
- session_key: string | null;
10607
10710
  /**
10608
10711
  * Lifecycle state of the durable conversation, or null for sessions without one.
10609
10712
  */
@@ -10624,14 +10727,6 @@ interface Session1 {
10624
10727
  * When the session was last updated.
10625
10728
  */
10626
10729
  updated_at: string;
10627
- /**
10628
- * Identifier of the webhook event that triggered the session, if any.
10629
- */
10630
- webhook_id: string | null;
10631
- /**
10632
- * Type of the webhook event that triggered the session, if any.
10633
- */
10634
- webhook_type: WebhookType | null;
10635
10730
  }
10636
10731
  /**
10637
10732
  * Fire-and-forget partial assistant output for the current response.