@ellipsis-dev/sdk 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +13 -59
- package/dist/index.js +67 -115
- package/dist/store/index.d.ts +1 -1
- package/dist/stream/index.d.ts +1 -1
- package/dist/{types-DDQQ1Yfh.d.ts → types-egqnpL5C.d.ts} +676 -775
- package/package.json +1 -1
- package/schema/cc_step.schema.json +6036 -0
- package/schema/frames.schema.json +1806 -224
- package/schema/openapi.v1.json +194 -887
|
@@ -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;
|
|
@@ -32,7 +32,7 @@ interface paths {
|
|
|
32
32
|
patch?: never;
|
|
33
33
|
trace?: never;
|
|
34
34
|
};
|
|
35
|
-
'/agents/configs/{config_id}': {
|
|
35
|
+
'/v1/agents/configs/{config_id}': {
|
|
36
36
|
parameters: {
|
|
37
37
|
query?: never;
|
|
38
38
|
header?: never;
|
|
@@ -70,7 +70,7 @@ interface paths {
|
|
|
70
70
|
patch?: never;
|
|
71
71
|
trace?: never;
|
|
72
72
|
};
|
|
73
|
-
'/agents/configs/{config_id}/link': {
|
|
73
|
+
'/v1/agents/configs/{config_id}/link': {
|
|
74
74
|
parameters: {
|
|
75
75
|
query?: never;
|
|
76
76
|
header?: never;
|
|
@@ -95,7 +95,7 @@ interface paths {
|
|
|
95
95
|
patch?: never;
|
|
96
96
|
trace?: never;
|
|
97
97
|
};
|
|
98
|
-
'/agents/configs/{config_id}/unlink': {
|
|
98
|
+
'/v1/agents/configs/{config_id}/unlink': {
|
|
99
99
|
parameters: {
|
|
100
100
|
query?: never;
|
|
101
101
|
header?: never;
|
|
@@ -119,7 +119,7 @@ interface paths {
|
|
|
119
119
|
patch?: never;
|
|
120
120
|
trace?: never;
|
|
121
121
|
};
|
|
122
|
-
'/agents/defaults': {
|
|
122
|
+
'/v1/agents/defaults': {
|
|
123
123
|
parameters: {
|
|
124
124
|
query?: never;
|
|
125
125
|
header?: never;
|
|
@@ -128,12 +128,11 @@ interface paths {
|
|
|
128
128
|
};
|
|
129
129
|
/**
|
|
130
130
|
* List Agent Defaults
|
|
131
|
-
* @description
|
|
131
|
+
* @description Get the default agent configs.
|
|
132
132
|
*
|
|
133
|
-
* The account default and
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
* omitted, a repo rung is "owner/name" — never by row id.
|
|
133
|
+
* The account-wide default and the per-repository defaults, as config
|
|
134
|
+
* ids. Repo rungs are keyed "owner/name"; a repository this
|
|
135
|
+
* installation can no longer see is omitted.
|
|
137
136
|
*/
|
|
138
137
|
get: operations['list_agent_defaults'];
|
|
139
138
|
/**
|
|
@@ -142,7 +141,7 @@ interface paths {
|
|
|
142
141
|
*
|
|
143
142
|
* Addressed by rung: the account rung (repository omitted) or a
|
|
144
143
|
* repository rung ("owner/name"); the config by id or by the
|
|
145
|
-
* agent's name.
|
|
144
|
+
* agent's name. Returns the full resulting ladder.
|
|
146
145
|
*
|
|
147
146
|
* Refused for sandbox tokens (potentially prompt-injected code
|
|
148
147
|
* must not repoint the account's ambient default); an unknown or
|
|
@@ -165,7 +164,7 @@ interface paths {
|
|
|
165
164
|
patch?: never;
|
|
166
165
|
trace?: never;
|
|
167
166
|
};
|
|
168
|
-
'/agents/templates': {
|
|
167
|
+
'/v1/agents/templates': {
|
|
169
168
|
parameters: {
|
|
170
169
|
query?: never;
|
|
171
170
|
header?: never;
|
|
@@ -188,7 +187,7 @@ interface paths {
|
|
|
188
187
|
patch?: never;
|
|
189
188
|
trace?: never;
|
|
190
189
|
};
|
|
191
|
-
'/agents/templates/{template_id}': {
|
|
190
|
+
'/v1/agents/templates/{template_id}': {
|
|
192
191
|
parameters: {
|
|
193
192
|
query?: never;
|
|
194
193
|
header?: never;
|
|
@@ -208,7 +207,7 @@ interface paths {
|
|
|
208
207
|
patch?: never;
|
|
209
208
|
trace?: never;
|
|
210
209
|
};
|
|
211
|
-
'/alerts': {
|
|
210
|
+
'/v1/alerts': {
|
|
212
211
|
parameters: {
|
|
213
212
|
query?: never;
|
|
214
213
|
header?: never;
|
|
@@ -233,7 +232,7 @@ interface paths {
|
|
|
233
232
|
patch?: never;
|
|
234
233
|
trace?: never;
|
|
235
234
|
};
|
|
236
|
-
'/alerts/{alert_id}': {
|
|
235
|
+
'/v1/alerts/{alert_id}': {
|
|
237
236
|
parameters: {
|
|
238
237
|
query?: never;
|
|
239
238
|
header?: never;
|
|
@@ -255,7 +254,7 @@ interface paths {
|
|
|
255
254
|
patch?: never;
|
|
256
255
|
trace?: never;
|
|
257
256
|
};
|
|
258
|
-
'/alerts/{alert_id}/dismiss': {
|
|
257
|
+
'/v1/alerts/{alert_id}/dismiss': {
|
|
259
258
|
parameters: {
|
|
260
259
|
query?: never;
|
|
261
260
|
header?: never;
|
|
@@ -277,7 +276,7 @@ interface paths {
|
|
|
277
276
|
patch?: never;
|
|
278
277
|
trace?: never;
|
|
279
278
|
};
|
|
280
|
-
'/analytics/metrics': {
|
|
279
|
+
'/v1/analytics/metrics': {
|
|
281
280
|
parameters: {
|
|
282
281
|
query?: never;
|
|
283
282
|
header?: never;
|
|
@@ -305,7 +304,7 @@ interface paths {
|
|
|
305
304
|
patch?: never;
|
|
306
305
|
trace?: never;
|
|
307
306
|
};
|
|
308
|
-
'/analytics/pull-requests': {
|
|
307
|
+
'/v1/analytics/pull-requests': {
|
|
309
308
|
parameters: {
|
|
310
309
|
query?: never;
|
|
311
310
|
header?: never;
|
|
@@ -328,7 +327,7 @@ interface paths {
|
|
|
328
327
|
patch?: never;
|
|
329
328
|
trace?: never;
|
|
330
329
|
};
|
|
331
|
-
'/analytics/reviews': {
|
|
330
|
+
'/v1/analytics/reviews': {
|
|
332
331
|
parameters: {
|
|
333
332
|
query?: never;
|
|
334
333
|
header?: never;
|
|
@@ -353,7 +352,7 @@ interface paths {
|
|
|
353
352
|
patch?: never;
|
|
354
353
|
trace?: never;
|
|
355
354
|
};
|
|
356
|
-
'/auth/cli/poll': {
|
|
355
|
+
'/v1/auth/cli/poll': {
|
|
357
356
|
parameters: {
|
|
358
357
|
query?: never;
|
|
359
358
|
header?: never;
|
|
@@ -375,7 +374,7 @@ interface paths {
|
|
|
375
374
|
patch?: never;
|
|
376
375
|
trace?: never;
|
|
377
376
|
};
|
|
378
|
-
'/auth/cli/start': {
|
|
377
|
+
'/v1/auth/cli/start': {
|
|
379
378
|
parameters: {
|
|
380
379
|
query?: never;
|
|
381
380
|
header?: never;
|
|
@@ -399,7 +398,7 @@ interface paths {
|
|
|
399
398
|
patch?: never;
|
|
400
399
|
trace?: never;
|
|
401
400
|
};
|
|
402
|
-
'/budget': {
|
|
401
|
+
'/v1/budget': {
|
|
403
402
|
parameters: {
|
|
404
403
|
query?: never;
|
|
405
404
|
header?: never;
|
|
@@ -419,7 +418,7 @@ interface paths {
|
|
|
419
418
|
patch?: never;
|
|
420
419
|
trace?: never;
|
|
421
420
|
};
|
|
422
|
-
'/files': {
|
|
421
|
+
'/v1/files': {
|
|
423
422
|
parameters: {
|
|
424
423
|
query?: never;
|
|
425
424
|
header?: never;
|
|
@@ -452,7 +451,7 @@ interface paths {
|
|
|
452
451
|
patch?: never;
|
|
453
452
|
trace?: never;
|
|
454
453
|
};
|
|
455
|
-
'/files/{file_id}': {
|
|
454
|
+
'/v1/files/{file_id}': {
|
|
456
455
|
parameters: {
|
|
457
456
|
query?: never;
|
|
458
457
|
header?: never;
|
|
@@ -490,7 +489,7 @@ interface paths {
|
|
|
490
489
|
patch?: never;
|
|
491
490
|
trace?: never;
|
|
492
491
|
};
|
|
493
|
-
'/integrations': {
|
|
492
|
+
'/v1/integrations': {
|
|
494
493
|
parameters: {
|
|
495
494
|
query?: never;
|
|
496
495
|
header?: never;
|
|
@@ -517,7 +516,7 @@ interface paths {
|
|
|
517
516
|
patch?: never;
|
|
518
517
|
trace?: never;
|
|
519
518
|
};
|
|
520
|
-
'/integrations/github/members': {
|
|
519
|
+
'/v1/integrations/github/members': {
|
|
521
520
|
parameters: {
|
|
522
521
|
query?: never;
|
|
523
522
|
header?: never;
|
|
@@ -543,7 +542,7 @@ interface paths {
|
|
|
543
542
|
patch?: never;
|
|
544
543
|
trace?: never;
|
|
545
544
|
};
|
|
546
|
-
'/integrations/github/repos': {
|
|
545
|
+
'/v1/integrations/github/repos': {
|
|
547
546
|
parameters: {
|
|
548
547
|
query?: never;
|
|
549
548
|
header?: never;
|
|
@@ -563,7 +562,7 @@ interface paths {
|
|
|
563
562
|
patch?: never;
|
|
564
563
|
trace?: never;
|
|
565
564
|
};
|
|
566
|
-
'/integrations/linear/teams': {
|
|
565
|
+
'/v1/integrations/linear/teams': {
|
|
567
566
|
parameters: {
|
|
568
567
|
query?: never;
|
|
569
568
|
header?: never;
|
|
@@ -583,7 +582,7 @@ interface paths {
|
|
|
583
582
|
patch?: never;
|
|
584
583
|
trace?: never;
|
|
585
584
|
};
|
|
586
|
-
'/integrations/sentry/organizations': {
|
|
585
|
+
'/v1/integrations/sentry/organizations': {
|
|
587
586
|
parameters: {
|
|
588
587
|
query?: never;
|
|
589
588
|
header?: never;
|
|
@@ -603,7 +602,7 @@ interface paths {
|
|
|
603
602
|
patch?: never;
|
|
604
603
|
trace?: never;
|
|
605
604
|
};
|
|
606
|
-
'/integrations/slack/channels': {
|
|
605
|
+
'/v1/integrations/slack/channels': {
|
|
607
606
|
parameters: {
|
|
608
607
|
query?: never;
|
|
609
608
|
header?: never;
|
|
@@ -624,7 +623,7 @@ interface paths {
|
|
|
624
623
|
patch?: never;
|
|
625
624
|
trace?: never;
|
|
626
625
|
};
|
|
627
|
-
'/integrations/slack/members': {
|
|
626
|
+
'/v1/integrations/slack/members': {
|
|
628
627
|
parameters: {
|
|
629
628
|
query?: never;
|
|
630
629
|
header?: never;
|
|
@@ -645,7 +644,7 @@ interface paths {
|
|
|
645
644
|
patch?: never;
|
|
646
645
|
trace?: never;
|
|
647
646
|
};
|
|
648
|
-
'/me': {
|
|
647
|
+
'/v1/me': {
|
|
649
648
|
parameters: {
|
|
650
649
|
query?: never;
|
|
651
650
|
header?: never;
|
|
@@ -665,7 +664,7 @@ interface paths {
|
|
|
665
664
|
patch?: never;
|
|
666
665
|
trace?: never;
|
|
667
666
|
};
|
|
668
|
-
'/memories': {
|
|
667
|
+
'/v1/memories': {
|
|
669
668
|
parameters: {
|
|
670
669
|
query?: never;
|
|
671
670
|
header?: never;
|
|
@@ -702,7 +701,7 @@ interface paths {
|
|
|
702
701
|
patch?: never;
|
|
703
702
|
trace?: never;
|
|
704
703
|
};
|
|
705
|
-
'/memories/{memory_id}': {
|
|
704
|
+
'/v1/memories/{memory_id}': {
|
|
706
705
|
parameters: {
|
|
707
706
|
query?: never;
|
|
708
707
|
header?: never;
|
|
@@ -743,7 +742,7 @@ interface paths {
|
|
|
743
742
|
patch?: never;
|
|
744
743
|
trace?: never;
|
|
745
744
|
};
|
|
746
|
-
'/models': {
|
|
745
|
+
'/v1/models': {
|
|
747
746
|
parameters: {
|
|
748
747
|
query?: never;
|
|
749
748
|
header?: never;
|
|
@@ -770,7 +769,7 @@ interface paths {
|
|
|
770
769
|
patch?: never;
|
|
771
770
|
trace?: never;
|
|
772
771
|
};
|
|
773
|
-
'/reviews': {
|
|
772
|
+
'/v1/reviews': {
|
|
774
773
|
parameters: {
|
|
775
774
|
query?: never;
|
|
776
775
|
header?: never;
|
|
@@ -809,7 +808,7 @@ interface paths {
|
|
|
809
808
|
patch?: never;
|
|
810
809
|
trace?: never;
|
|
811
810
|
};
|
|
812
|
-
'/reviews/{review_id}': {
|
|
811
|
+
'/v1/reviews/{review_id}': {
|
|
813
812
|
parameters: {
|
|
814
813
|
query?: never;
|
|
815
814
|
header?: never;
|
|
@@ -836,7 +835,7 @@ interface paths {
|
|
|
836
835
|
patch?: never;
|
|
837
836
|
trace?: never;
|
|
838
837
|
};
|
|
839
|
-
'/secrets': {
|
|
838
|
+
'/v1/secrets': {
|
|
840
839
|
parameters: {
|
|
841
840
|
query?: never;
|
|
842
841
|
header?: never;
|
|
@@ -868,7 +867,7 @@ interface paths {
|
|
|
868
867
|
patch?: never;
|
|
869
868
|
trace?: never;
|
|
870
869
|
};
|
|
871
|
-
'/secrets/{name}': {
|
|
870
|
+
'/v1/secrets/{name}': {
|
|
872
871
|
parameters: {
|
|
873
872
|
query?: never;
|
|
874
873
|
header?: never;
|
|
@@ -891,7 +890,7 @@ interface paths {
|
|
|
891
890
|
patch?: never;
|
|
892
891
|
trace?: never;
|
|
893
892
|
};
|
|
894
|
-
'/sessions': {
|
|
893
|
+
'/v1/sessions': {
|
|
895
894
|
parameters: {
|
|
896
895
|
query?: never;
|
|
897
896
|
header?: never;
|
|
@@ -916,8 +915,7 @@ interface paths {
|
|
|
916
915
|
* config, or
|
|
917
916
|
* template_id; with none, the account's default-config ladder
|
|
918
917
|
* resolves the config. 400 when idle_start is combined with
|
|
919
|
-
* prompt
|
|
920
|
-
* any config source or override. 422 when the agent declares an
|
|
918
|
+
* prompt or input. 422 when the agent declares an
|
|
921
919
|
* input schema and the request's input is absent or invalid.
|
|
922
920
|
*/
|
|
923
921
|
post: operations['start_agent_session'];
|
|
@@ -927,7 +925,7 @@ interface paths {
|
|
|
927
925
|
patch?: never;
|
|
928
926
|
trace?: never;
|
|
929
927
|
};
|
|
930
|
-
'/sessions/search': {
|
|
928
|
+
'/v1/sessions/search': {
|
|
931
929
|
parameters: {
|
|
932
930
|
query?: never;
|
|
933
931
|
header?: never;
|
|
@@ -955,31 +953,7 @@ interface paths {
|
|
|
955
953
|
patch?: never;
|
|
956
954
|
trace?: never;
|
|
957
955
|
};
|
|
958
|
-
'/sessions/
|
|
959
|
-
parameters: {
|
|
960
|
-
query?: never;
|
|
961
|
-
header?: never;
|
|
962
|
-
path?: never;
|
|
963
|
-
cookie?: never;
|
|
964
|
-
};
|
|
965
|
-
get?: never;
|
|
966
|
-
put?: never;
|
|
967
|
-
/**
|
|
968
|
-
* Sync Agent Session
|
|
969
|
-
* @description Sync a local Claude Code session to Ellipsis.
|
|
970
|
-
*
|
|
971
|
-
* Requires a user token (device-flow `agent login`): the user is
|
|
972
|
-
* part of the sync's idempotency key, so API keys and sandbox
|
|
973
|
-
* tokens are rejected with a 403 rather than silently attributed.
|
|
974
|
-
*/
|
|
975
|
-
post: operations['sync_agent_session'];
|
|
976
|
-
delete?: never;
|
|
977
|
-
options?: never;
|
|
978
|
-
head?: never;
|
|
979
|
-
patch?: never;
|
|
980
|
-
trace?: never;
|
|
981
|
-
};
|
|
982
|
-
'/sessions/{session_id}': {
|
|
956
|
+
'/v1/sessions/{session_id}': {
|
|
983
957
|
parameters: {
|
|
984
958
|
query?: never;
|
|
985
959
|
header?: never;
|
|
@@ -1006,7 +980,7 @@ interface paths {
|
|
|
1006
980
|
patch?: never;
|
|
1007
981
|
trace?: never;
|
|
1008
982
|
};
|
|
1009
|
-
'/sessions/{session_id}/executions': {
|
|
983
|
+
'/v1/sessions/{session_id}/executions': {
|
|
1010
984
|
parameters: {
|
|
1011
985
|
query?: never;
|
|
1012
986
|
header?: never;
|
|
@@ -1034,7 +1008,7 @@ interface paths {
|
|
|
1034
1008
|
patch?: never;
|
|
1035
1009
|
trace?: never;
|
|
1036
1010
|
};
|
|
1037
|
-
'/sessions/{session_id}/export': {
|
|
1011
|
+
'/v1/sessions/{session_id}/export': {
|
|
1038
1012
|
parameters: {
|
|
1039
1013
|
query?: never;
|
|
1040
1014
|
header?: never;
|
|
@@ -1063,35 +1037,7 @@ interface paths {
|
|
|
1063
1037
|
patch?: never;
|
|
1064
1038
|
trace?: never;
|
|
1065
1039
|
};
|
|
1066
|
-
'/sessions/{session_id}/
|
|
1067
|
-
parameters: {
|
|
1068
|
-
query?: never;
|
|
1069
|
-
header?: never;
|
|
1070
|
-
path?: never;
|
|
1071
|
-
cookie?: never;
|
|
1072
|
-
};
|
|
1073
|
-
/**
|
|
1074
|
-
* Get Agent Session Ide
|
|
1075
|
-
* @description Return the IDE link for the session's sandbox.
|
|
1076
|
-
*
|
|
1077
|
-
* The membership-gated dashboard page, which performs the sandbox
|
|
1078
|
-
* proxy handoff itself.
|
|
1079
|
-
*
|
|
1080
|
-
* No credential is minted here — the URL grants nothing by
|
|
1081
|
-
* possession. 409 when the sandbox isn't running (send the
|
|
1082
|
-
* session a message to wake it first). Backs the `agent session
|
|
1083
|
-
* ide` CLI verb.
|
|
1084
|
-
*/
|
|
1085
|
-
get: operations['get_agent_session_ide'];
|
|
1086
|
-
put?: never;
|
|
1087
|
-
post?: never;
|
|
1088
|
-
delete?: never;
|
|
1089
|
-
options?: never;
|
|
1090
|
-
head?: never;
|
|
1091
|
-
patch?: never;
|
|
1092
|
-
trace?: never;
|
|
1093
|
-
};
|
|
1094
|
-
'/sessions/{session_id}/messages': {
|
|
1040
|
+
'/v1/sessions/{session_id}/messages': {
|
|
1095
1041
|
parameters: {
|
|
1096
1042
|
query?: never;
|
|
1097
1043
|
header?: never;
|
|
@@ -1116,7 +1062,7 @@ interface paths {
|
|
|
1116
1062
|
patch?: never;
|
|
1117
1063
|
trace?: never;
|
|
1118
1064
|
};
|
|
1119
|
-
'/sessions/{session_id}/output': {
|
|
1065
|
+
'/v1/sessions/{session_id}/output': {
|
|
1120
1066
|
parameters: {
|
|
1121
1067
|
query?: never;
|
|
1122
1068
|
header?: never;
|
|
@@ -1129,7 +1075,7 @@ interface paths {
|
|
|
1129
1075
|
*
|
|
1130
1076
|
* The payload the agent submitted through its config-declared
|
|
1131
1077
|
* output.json_schema, as the raw JSON body with no envelope. 404
|
|
1132
|
-
* while the session is still running (poll GET /sessions/{id}),
|
|
1078
|
+
* while the session is still running (poll GET /v1/sessions/{id}),
|
|
1133
1079
|
* when the agent declares no output block, or when no execution
|
|
1134
1080
|
* produced output.
|
|
1135
1081
|
*/
|
|
@@ -1142,32 +1088,7 @@ interface paths {
|
|
|
1142
1088
|
patch?: never;
|
|
1143
1089
|
trace?: never;
|
|
1144
1090
|
};
|
|
1145
|
-
'/sessions/{session_id}/
|
|
1146
|
-
parameters: {
|
|
1147
|
-
query?: never;
|
|
1148
|
-
header?: never;
|
|
1149
|
-
path?: never;
|
|
1150
|
-
cookie?: never;
|
|
1151
|
-
};
|
|
1152
|
-
/**
|
|
1153
|
-
* Get Agent Session Port
|
|
1154
|
-
* @description Return a preview link for a sandbox port.
|
|
1155
|
-
*
|
|
1156
|
-
* For a dev server running in the session's live sandbox: the
|
|
1157
|
-
* same dashboard page as the IDE, deep-linked to the port.
|
|
1158
|
-
*
|
|
1159
|
-
* Backs `agent session port`.
|
|
1160
|
-
*/
|
|
1161
|
-
get: operations['get_agent_session_port'];
|
|
1162
|
-
put?: never;
|
|
1163
|
-
post?: never;
|
|
1164
|
-
delete?: never;
|
|
1165
|
-
options?: never;
|
|
1166
|
-
head?: never;
|
|
1167
|
-
patch?: never;
|
|
1168
|
-
trace?: never;
|
|
1169
|
-
};
|
|
1170
|
-
'/sessions/{session_id}/records': {
|
|
1091
|
+
'/v1/sessions/{session_id}/records': {
|
|
1171
1092
|
parameters: {
|
|
1172
1093
|
query?: never;
|
|
1173
1094
|
header?: never;
|
|
@@ -1182,8 +1103,7 @@ interface paths {
|
|
|
1182
1103
|
* full retained transcript. Available to sandbox tokens too: an
|
|
1183
1104
|
* agent answering "did X look into Y?" needs to read the session
|
|
1184
1105
|
* it found via /sessions/search, and any org member sees the same
|
|
1185
|
-
* transcript in the dashboard
|
|
1186
|
-
* client-side before they are ever uploaded).
|
|
1106
|
+
* transcript in the dashboard.
|
|
1187
1107
|
*/
|
|
1188
1108
|
get: operations['get_agent_session_records'];
|
|
1189
1109
|
put?: never;
|
|
@@ -1194,7 +1114,7 @@ interface paths {
|
|
|
1194
1114
|
patch?: never;
|
|
1195
1115
|
trace?: never;
|
|
1196
1116
|
};
|
|
1197
|
-
'/sessions/{session_id}/replay': {
|
|
1117
|
+
'/v1/sessions/{session_id}/replay': {
|
|
1198
1118
|
parameters: {
|
|
1199
1119
|
query?: never;
|
|
1200
1120
|
header?: never;
|
|
@@ -1219,7 +1139,7 @@ interface paths {
|
|
|
1219
1139
|
patch?: never;
|
|
1220
1140
|
trace?: never;
|
|
1221
1141
|
};
|
|
1222
|
-
'/sessions/{session_id}/stop': {
|
|
1142
|
+
'/v1/sessions/{session_id}/stop': {
|
|
1223
1143
|
parameters: {
|
|
1224
1144
|
query?: never;
|
|
1225
1145
|
header?: never;
|
|
@@ -1242,7 +1162,7 @@ interface paths {
|
|
|
1242
1162
|
patch?: never;
|
|
1243
1163
|
trace?: never;
|
|
1244
1164
|
};
|
|
1245
|
-
'/sessions/{session_id}/transcript': {
|
|
1165
|
+
'/v1/sessions/{session_id}/transcript': {
|
|
1246
1166
|
parameters: {
|
|
1247
1167
|
query?: never;
|
|
1248
1168
|
header?: never;
|
|
@@ -1267,7 +1187,7 @@ interface paths {
|
|
|
1267
1187
|
patch?: never;
|
|
1268
1188
|
trace?: never;
|
|
1269
1189
|
};
|
|
1270
|
-
'/usage': {
|
|
1190
|
+
'/v1/usage': {
|
|
1271
1191
|
parameters: {
|
|
1272
1192
|
query?: never;
|
|
1273
1193
|
header?: never;
|
|
@@ -1305,7 +1225,6 @@ interface components {
|
|
|
1305
1225
|
/**
|
|
1306
1226
|
* @default {
|
|
1307
1227
|
* "enabled": true,
|
|
1308
|
-
* "ide": true,
|
|
1309
1228
|
* "interactive": true,
|
|
1310
1229
|
* "metadata": {
|
|
1311
1230
|
* "annotations": {},
|
|
@@ -1320,12 +1239,6 @@ interface components {
|
|
|
1320
1239
|
* "compute": {},
|
|
1321
1240
|
* "hooks": {},
|
|
1322
1241
|
* "image": {},
|
|
1323
|
-
* "ports": [
|
|
1324
|
-
* 3000,
|
|
1325
|
-
* 5173,
|
|
1326
|
-
* 8000,
|
|
1327
|
-
* 8080
|
|
1328
|
-
* ],
|
|
1329
1242
|
* "repositories": [],
|
|
1330
1243
|
* "variables": []
|
|
1331
1244
|
* }
|
|
@@ -1402,7 +1315,7 @@ interface components {
|
|
|
1402
1315
|
AgentConfigCodex: {
|
|
1403
1316
|
/**
|
|
1404
1317
|
* Model
|
|
1405
|
-
* @default
|
|
1318
|
+
* @default gpt-5.6-terra
|
|
1406
1319
|
*/
|
|
1407
1320
|
model: string;
|
|
1408
1321
|
/**
|
|
@@ -1470,18 +1383,17 @@ interface components {
|
|
|
1470
1383
|
* AgentConfigEllipsis
|
|
1471
1384
|
* @description The Ellipsis product namespace for a config file: which schema this is
|
|
1472
1385
|
* (`version`), the human-facing identity (`name`/`description`), freeform
|
|
1473
|
-
* organizational `metadata`, whether the agent is `enabled`, and the
|
|
1474
|
-
* human-access
|
|
1475
|
-
*
|
|
1476
|
-
*
|
|
1386
|
+
* organizational `metadata`, whether the agent is `enabled`, and the
|
|
1387
|
+
* human-access flag `interactive`. The presence of a top-level `ellipsis:`
|
|
1388
|
+
* mapping is what marks a YAML file as an Ellipsis agent config (vs arbitrary
|
|
1389
|
+
* YAML that merely lives under a config directory) — see
|
|
1477
1390
|
* `yaml_is_ellipsis_config`.
|
|
1478
1391
|
*
|
|
1479
|
-
* `enabled`/`interactive
|
|
1480
|
-
*
|
|
1481
|
-
* `interactive`
|
|
1482
|
-
*
|
|
1483
|
-
*
|
|
1484
|
-
* session is ephemeral or durable — that is the trigger's job.
|
|
1392
|
+
* `enabled`/`interactive` are agent behavior, not freeform metadata, so they
|
|
1393
|
+
* stay inside the config `sha` (only `metadata` is sha-excluded).
|
|
1394
|
+
* `interactive` lets a human `agent session connect` to a live session (CLI
|
|
1395
|
+
* relay). It does not decide whether a session is ephemeral or durable — that
|
|
1396
|
+
* is the trigger's job.
|
|
1485
1397
|
*/
|
|
1486
1398
|
AgentConfigEllipsis: {
|
|
1487
1399
|
/** Description */
|
|
@@ -1491,11 +1403,6 @@ interface components {
|
|
|
1491
1403
|
* @default true
|
|
1492
1404
|
*/
|
|
1493
1405
|
enabled: boolean;
|
|
1494
|
-
/**
|
|
1495
|
-
* Ide
|
|
1496
|
-
* @default true
|
|
1497
|
-
*/
|
|
1498
|
-
ide: boolean;
|
|
1499
1406
|
/**
|
|
1500
1407
|
* Interactive
|
|
1501
1408
|
* @default true
|
|
@@ -1548,16 +1455,6 @@ interface components {
|
|
|
1548
1455
|
hooks: components['schemas']['AgentConfigEnvironmentHooks'];
|
|
1549
1456
|
/** @default {} */
|
|
1550
1457
|
image: components['schemas']['AgentConfigEnvironmentImage'];
|
|
1551
|
-
/**
|
|
1552
|
-
* Ports
|
|
1553
|
-
* @default [
|
|
1554
|
-
* 3000,
|
|
1555
|
-
* 5173,
|
|
1556
|
-
* 8000,
|
|
1557
|
-
* 8080
|
|
1558
|
-
* ]
|
|
1559
|
-
*/
|
|
1560
|
-
ports: number[];
|
|
1561
1458
|
/**
|
|
1562
1459
|
* Repositories
|
|
1563
1460
|
* @default []
|
|
@@ -1623,7 +1520,7 @@ interface components {
|
|
|
1623
1520
|
* `value`, when set, is a literal injected as-is — use it for non-secret
|
|
1624
1521
|
* config (LOG_LEVEL, an API base URL). When `value` is omitted the value is
|
|
1625
1522
|
* resolved at run time from the account's sandbox-secrets store (dashboard
|
|
1626
|
-
* / `PUT /secrets`) by `name`, so a secret can be injected without
|
|
1523
|
+
* / `PUT /v1/secrets`) by `name`, so a secret can be injected without
|
|
1627
1524
|
* ever putting it in the config file. Either way the variable only reaches
|
|
1628
1525
|
* agents that name it.
|
|
1629
1526
|
*/
|
|
@@ -1665,7 +1562,7 @@ interface components {
|
|
|
1665
1562
|
* when it happens; this is what goes in).
|
|
1666
1563
|
*
|
|
1667
1564
|
* `json_schema` types the payload a caller-started session takes
|
|
1668
|
-
* (`POST /sessions` `input`, validated at the door; required when
|
|
1565
|
+
* (`POST /v1/sessions` `input`, validated at the door; required when
|
|
1669
1566
|
* declared). It is illegal on a react-triggered agent — react payloads are
|
|
1670
1567
|
* platform-shaped (the published surface field sets), not caller-shaped.
|
|
1671
1568
|
*
|
|
@@ -1763,7 +1660,7 @@ interface components {
|
|
|
1763
1660
|
* AgentConfigOutput
|
|
1764
1661
|
* @description The typed output contract: the JSON Schema the agent must exit through
|
|
1765
1662
|
* (the StructuredOutput exit tool). Read back via
|
|
1766
|
-
* GET /sessions/{id}/output.
|
|
1663
|
+
* GET /v1/sessions/{id}/output.
|
|
1767
1664
|
*/
|
|
1768
1665
|
AgentConfigOutput: {
|
|
1769
1666
|
/** Json Schema */
|
|
@@ -1857,6 +1754,17 @@ interface components {
|
|
|
1857
1754
|
path: string;
|
|
1858
1755
|
repository?: components['schemas']['AgentConfigRepository'] | null;
|
|
1859
1756
|
};
|
|
1757
|
+
/**
|
|
1758
|
+
* AgentConfigSource
|
|
1759
|
+
* @description Where a session's config came from. Total: every session has exactly one
|
|
1760
|
+
* source, including the ones that never touch defaults resolution.
|
|
1761
|
+
*
|
|
1762
|
+
* Not derivable from the row — `agent_config_id` says WHICH saved config, not
|
|
1763
|
+
* how it was chosen, and is null for inline, platform-default, and built-in
|
|
1764
|
+
* configs alike — so it is persisted for audit and the published wire.
|
|
1765
|
+
* @enum {string}
|
|
1766
|
+
*/
|
|
1767
|
+
AgentConfigSource: 'explicit' | 'inline' | 'template' | 'repo_default' | 'account_default' | 'platform_default' | 'trigger' | 'builtin';
|
|
1860
1768
|
/**
|
|
1861
1769
|
* AgentConfigSourceGithub
|
|
1862
1770
|
* @description Identifies the file a GitHub-sourced agent config is synced from.
|
|
@@ -1891,61 +1799,29 @@ interface components {
|
|
|
1891
1799
|
configs: components['schemas']['Config'][];
|
|
1892
1800
|
};
|
|
1893
1801
|
/**
|
|
1894
|
-
*
|
|
1895
|
-
* @description
|
|
1896
|
-
*
|
|
1802
|
+
* AgentDefaults
|
|
1803
|
+
* @description Which agent config serves sessions started without an explicit config:
|
|
1804
|
+
* one account-wide rung, plus a rung per repository.
|
|
1805
|
+
*
|
|
1806
|
+
* Values are config ids — stable across renames, unlike the agent's name.
|
|
1807
|
+
* A repo rung whose repository this installation can no longer see is absent
|
|
1808
|
+
* from `repositories`; its row is left in place, so re-installing the repo
|
|
1809
|
+
* brings the rung back.
|
|
1897
1810
|
*/
|
|
1898
|
-
|
|
1899
|
-
/**
|
|
1900
|
-
* Broken
|
|
1901
|
-
* @description Why this default cannot serve sessions, or null when it is healthy.
|
|
1902
|
-
*/
|
|
1903
|
-
broken?: ('config_deleted' | 'config_disabled' | 'config_pending_pr' | 'repo_inaccessible') | null;
|
|
1904
|
-
/**
|
|
1905
|
-
* Config Id
|
|
1906
|
-
* @description The agent config this default points at.
|
|
1907
|
-
*/
|
|
1908
|
-
config_id: string;
|
|
1909
|
-
/**
|
|
1910
|
-
* Config Name
|
|
1911
|
-
* @description The pointed-at config's name; null when the config no longer exists.
|
|
1912
|
-
*/
|
|
1913
|
-
config_name?: string | null;
|
|
1914
|
-
/**
|
|
1915
|
-
* Id
|
|
1916
|
-
* @description The default's unique identifier.
|
|
1917
|
-
*/
|
|
1918
|
-
id: string;
|
|
1919
|
-
/**
|
|
1920
|
-
* Repository
|
|
1921
|
-
* @description The repository this default applies to, as "owner/name", or null for the account-wide default.
|
|
1922
|
-
*/
|
|
1923
|
-
repository?: string | null;
|
|
1811
|
+
AgentDefaults: {
|
|
1924
1812
|
/**
|
|
1925
|
-
*
|
|
1926
|
-
*
|
|
1927
|
-
* @description When the default was last changed.
|
|
1813
|
+
* Account
|
|
1814
|
+
* @description Config id serving sessions with no repository context, or null when no account default is set.
|
|
1928
1815
|
*/
|
|
1929
|
-
|
|
1930
|
-
};
|
|
1931
|
-
/**
|
|
1932
|
-
* AgentDefaultResponse
|
|
1933
|
-
* @description One default-agent setting.
|
|
1934
|
-
*/
|
|
1935
|
-
AgentDefaultResponse: {
|
|
1936
|
-
/** @description The default-agent setting. */
|
|
1937
|
-
default: components['schemas']['AgentDefault'];
|
|
1938
|
-
};
|
|
1939
|
-
/**
|
|
1940
|
-
* AgentDefaultsListResponse
|
|
1941
|
-
* @description The account's default-agent settings.
|
|
1942
|
-
*/
|
|
1943
|
-
AgentDefaultsListResponse: {
|
|
1816
|
+
account?: string | null;
|
|
1944
1817
|
/**
|
|
1945
|
-
*
|
|
1946
|
-
* @description
|
|
1818
|
+
* Repositories
|
|
1819
|
+
* @description Config id per repository, keyed "owner/name". A repository with no default set is absent.
|
|
1820
|
+
* @default {}
|
|
1947
1821
|
*/
|
|
1948
|
-
|
|
1822
|
+
repositories: {
|
|
1823
|
+
[key: string]: string;
|
|
1824
|
+
};
|
|
1949
1825
|
};
|
|
1950
1826
|
/**
|
|
1951
1827
|
* AgentTemplate
|
|
@@ -2411,7 +2287,7 @@ interface components {
|
|
|
2411
2287
|
CliAuthPollRequest: {
|
|
2412
2288
|
/**
|
|
2413
2289
|
* Device Code
|
|
2414
|
-
* @description The device code returned by POST /auth/cli/start.
|
|
2290
|
+
* @description The device code returned by POST /v1/auth/cli/start.
|
|
2415
2291
|
*/
|
|
2416
2292
|
device_code: string;
|
|
2417
2293
|
};
|
|
@@ -2563,7 +2439,7 @@ interface components {
|
|
|
2563
2439
|
repository?: string | null;
|
|
2564
2440
|
/**
|
|
2565
2441
|
* Template Id
|
|
2566
|
-
* @description A gallery template slug (see GET /agents/templates).
|
|
2442
|
+
* @description A gallery template slug (see GET /v1/agents/templates).
|
|
2567
2443
|
*/
|
|
2568
2444
|
template_id?: string | null;
|
|
2569
2445
|
};
|
|
@@ -2680,16 +2556,6 @@ interface components {
|
|
|
2680
2556
|
*/
|
|
2681
2557
|
scope: components['schemas']['ReviewScope'];
|
|
2682
2558
|
};
|
|
2683
|
-
/**
|
|
2684
|
-
* DefaultResolution
|
|
2685
|
-
* @description How a session that arrived with no explicit config source resolved its
|
|
2686
|
-
* config (documents/eng/DEFAULT_CONFIGS.md §4). Persisted on the session so
|
|
2687
|
-
* audit and clients can say "ran under X (repo default)". A session started
|
|
2688
|
-
* with an explicit config/config_id/template_id never enters resolution and
|
|
2689
|
-
* stores None.
|
|
2690
|
-
* @enum {string}
|
|
2691
|
-
*/
|
|
2692
|
-
DefaultResolution: 'repo_default' | 'account_default' | 'none';
|
|
2693
2559
|
/**
|
|
2694
2560
|
* DurationPercentiles
|
|
2695
2561
|
* @description Percentiles of a duration distribution, in hours. p0 = fastest,
|
|
@@ -2764,7 +2630,7 @@ interface components {
|
|
|
2764
2630
|
ErrorInfo: {
|
|
2765
2631
|
/**
|
|
2766
2632
|
* Code
|
|
2767
|
-
* @description Stable machine-readable error code. Open vocabulary — handle unknown codes by HTTP status. Known values: account_blocked, conflict,
|
|
2633
|
+
* @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_limited, review_in_flight, session_closed, session_ephemeral_trigger, session_finished, session_harness_single_turn, session_mention_surface, session_non_interactive, unauthorized, unavailable.
|
|
2768
2634
|
*/
|
|
2769
2635
|
code: string;
|
|
2770
2636
|
/**
|
|
@@ -2995,17 +2861,6 @@ interface components {
|
|
|
2995
2861
|
/** @description The connected Slack workspace, or null if not connected. */
|
|
2996
2862
|
slack?: components['schemas']['SlackIntegrationSummary'] | null;
|
|
2997
2863
|
};
|
|
2998
|
-
/**
|
|
2999
|
-
* GetSessionIdeResponse
|
|
3000
|
-
* @description The IDE link for a session's live sandbox.
|
|
3001
|
-
*/
|
|
3002
|
-
GetSessionIdeResponse: {
|
|
3003
|
-
/**
|
|
3004
|
-
* Url
|
|
3005
|
-
* @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.
|
|
3006
|
-
*/
|
|
3007
|
-
url: string;
|
|
3008
|
-
};
|
|
3009
2864
|
/**
|
|
3010
2865
|
* GetSessionLogResponse
|
|
3011
2866
|
* @description The session log manifest: the complete, ordered, downloadable history
|
|
@@ -3053,22 +2908,6 @@ interface components {
|
|
|
3053
2908
|
*/
|
|
3054
2909
|
session_id: string;
|
|
3055
2910
|
};
|
|
3056
|
-
/**
|
|
3057
|
-
* GetSessionPortResponse
|
|
3058
|
-
* @description A preview link for a port in a session's live sandbox.
|
|
3059
|
-
*/
|
|
3060
|
-
GetSessionPortResponse: {
|
|
3061
|
-
/**
|
|
3062
|
-
* Port
|
|
3063
|
-
* @description The sandbox port the link previews.
|
|
3064
|
-
*/
|
|
3065
|
-
port: number;
|
|
3066
|
-
/**
|
|
3067
|
-
* Url
|
|
3068
|
-
* @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).
|
|
3069
|
-
*/
|
|
3070
|
-
url: string;
|
|
3071
|
-
};
|
|
3072
2911
|
/**
|
|
3073
2912
|
* GetUsageDashboardResponse
|
|
3074
2913
|
* @description The account's usage over a period: token and cost totals, a per-day
|
|
@@ -3381,35 +3220,6 @@ interface components {
|
|
|
3381
3220
|
/** Detail */
|
|
3382
3221
|
detail?: components['schemas']['ValidationError'][];
|
|
3383
3222
|
};
|
|
3384
|
-
/**
|
|
3385
|
-
* HandoffAgentSessionParams
|
|
3386
|
-
* @description Laptop-to-cloud handoff parameters (`agent session handoff`): start a
|
|
3387
|
-
* fresh session on the built-in handoff config, chained to the handed-off
|
|
3388
|
-
* session. Mutually exclusive with config_id / config / template_id — the
|
|
3389
|
-
* handoff config is platform-owned.
|
|
3390
|
-
*/
|
|
3391
|
-
HandoffAgentSessionParams: {
|
|
3392
|
-
/**
|
|
3393
|
-
* Parent Session Id
|
|
3394
|
-
* @description The session being handed off (usually a laptop-synced session).
|
|
3395
|
-
*/
|
|
3396
|
-
parent_session_id: string;
|
|
3397
|
-
/**
|
|
3398
|
-
* Ref
|
|
3399
|
-
* @description Where the WIP commit was pushed (refs/ellipsis/handoff/<short>); recorded as a metadata breadcrumb.
|
|
3400
|
-
*/
|
|
3401
|
-
ref?: string | null;
|
|
3402
|
-
/**
|
|
3403
|
-
* Repo
|
|
3404
|
-
* @description "owner/name" (or a bare name under the caller's account).
|
|
3405
|
-
*/
|
|
3406
|
-
repo: string;
|
|
3407
|
-
/**
|
|
3408
|
-
* Sha
|
|
3409
|
-
* @description The work-in-progress commit the CLI pushed (a commit of the dirty working tree) — becomes the sandbox checkout target.
|
|
3410
|
-
*/
|
|
3411
|
-
sha: string;
|
|
3412
|
-
};
|
|
3413
3223
|
/**
|
|
3414
3224
|
* Harness
|
|
3415
3225
|
* @enum {string}
|
|
@@ -3740,9 +3550,9 @@ interface components {
|
|
|
3740
3550
|
* Serving path is irrelevant here. Anthropic built every Claude model, so all of
|
|
3741
3551
|
* them are ANTHROPIC whether we reach them through the first-party Anthropic API
|
|
3742
3552
|
* or through Bedrock -- a choice made per request by the llm_providers chain, so
|
|
3743
|
-
* it is not even a fixed property of the model. Likewise the `
|
|
3744
|
-
*
|
|
3745
|
-
* served by
|
|
3553
|
+
* it is not even a fixed property of the model. Likewise the `gpt-5.6-*` rows
|
|
3554
|
+
* are OPENAI (OpenAI's models, served by AWS via bedrock-mantle), and GLM is ZAI
|
|
3555
|
+
* (Z.ai's model, served by DeepInfra via OpenRouter).
|
|
3746
3556
|
*
|
|
3747
3557
|
* So this is deliberately NOT derived from `EgressRoute.provider`: routing is an
|
|
3748
3558
|
* infrastructure fact that changes when we move a model between providers, while
|
|
@@ -3822,13 +3632,11 @@ interface components {
|
|
|
3822
3632
|
*
|
|
3823
3633
|
* CONTINUATION — a follow-up in the same conversation surface (e.g. a Slack
|
|
3824
3634
|
* thread reply spawning a fresh session on the same thread).
|
|
3825
|
-
* HANDOFF — a session started to take over work from another surface (e.g.
|
|
3826
|
-
* laptop → cloud handoff; later phase).
|
|
3827
3635
|
* RESUME — a conversation re-hosted on a new box after its sandbox was torn
|
|
3828
3636
|
* down (interactive platform; later phase).
|
|
3829
3637
|
* @enum {string}
|
|
3830
3638
|
*/
|
|
3831
|
-
ParentKind: 'continuation' | '
|
|
3639
|
+
ParentKind: 'continuation' | 'resume';
|
|
3832
3640
|
/**
|
|
3833
3641
|
* PollCliAuthResponse
|
|
3834
3642
|
* @description The state of a device-code flow. Poll until `status` leaves `pending`.
|
|
@@ -3850,7 +3658,7 @@ interface components {
|
|
|
3850
3658
|
* @description Why direct prompting is refused. Absent when prompting is allowed.
|
|
3851
3659
|
* @enum {string}
|
|
3852
3660
|
*/
|
|
3853
|
-
PromptBlockedReason: 'mention_surface' | 'ephemeral_trigger' | 'non_interactive' | 'harness_single_turn' | 'closed'
|
|
3661
|
+
PromptBlockedReason: 'mention_surface' | 'ephemeral_trigger' | 'non_interactive' | 'harness_single_turn' | 'closed';
|
|
3854
3662
|
/**
|
|
3855
3663
|
* PullRequestAction
|
|
3856
3664
|
* @enum {string}
|
|
@@ -4337,7 +4145,7 @@ interface components {
|
|
|
4337
4145
|
config_id?: string | null;
|
|
4338
4146
|
/**
|
|
4339
4147
|
* Config Override
|
|
4340
|
-
* @description Optional partial-config override merged onto the chosen config and re-validated — e.g. {"claude": {"model": "claude-opus-4-8"}} to replay the run on a different model, or {"
|
|
4148
|
+
* @description Optional partial-config override merged onto the chosen config and re-validated — 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. Mutually exclusive with config_override_yaml.
|
|
4341
4149
|
*/
|
|
4342
4150
|
config_override?: {
|
|
4343
4151
|
[key: string]: unknown;
|
|
@@ -5361,32 +5169,17 @@ interface components {
|
|
|
5361
5169
|
/**
|
|
5362
5170
|
* Session
|
|
5363
5171
|
* @description An agent session: one conversation with an agent, from trigger to
|
|
5364
|
-
* terminal state. Returned by `GET /sessions/{id}` and carried by the
|
|
5172
|
+
* terminal state. Returned by `GET /v1/sessions/{id}` and carried by the
|
|
5365
5173
|
* session stream's `session`/`snapshot` frames — REST and stream never
|
|
5366
5174
|
* disagree about what a session looks like.
|
|
5367
5175
|
*/
|
|
5368
5176
|
Session: {
|
|
5177
|
+
/** @description The agent that ran: the config the session executed, where that config came from, and any override merged into it. */
|
|
5178
|
+
agent: components['schemas']['SessionAgent'];
|
|
5369
5179
|
/** @description The principal this session is attributed to. */
|
|
5370
5180
|
attribution?: components['schemas']['SessionAttribution'];
|
|
5371
5181
|
/** @description The spend budget enforced for this session. */
|
|
5372
5182
|
budget?: components['schemas']['SessionBudget'];
|
|
5373
|
-
/**
|
|
5374
|
-
* Client Version
|
|
5375
|
-
* @description Version of the client that started the session, if reported.
|
|
5376
|
-
*/
|
|
5377
|
-
client_version?: string | null;
|
|
5378
|
-
/**
|
|
5379
|
-
* Config Id
|
|
5380
|
-
* @description Identifier of the saved agent config the session ran on, if any.
|
|
5381
|
-
*/
|
|
5382
|
-
config_id?: string | null;
|
|
5383
|
-
/**
|
|
5384
|
-
* Config Override
|
|
5385
|
-
* @description The partial-config diff applied for this run; null when the config was unmodified.
|
|
5386
|
-
*/
|
|
5387
|
-
config_override?: {
|
|
5388
|
-
[key: string]: unknown;
|
|
5389
|
-
} | null;
|
|
5390
5183
|
/**
|
|
5391
5184
|
* Context Repository
|
|
5392
5185
|
* @description The "owner/name" repository context the session was started in, if any.
|
|
@@ -5400,8 +5193,6 @@ interface components {
|
|
|
5400
5193
|
* @description When the session was created.
|
|
5401
5194
|
*/
|
|
5402
5195
|
created_at: string;
|
|
5403
|
-
/** @description How the session's config was resolved from the account's defaults, when no explicit config was given. */
|
|
5404
|
-
default_resolution?: components['schemas']['DefaultResolution'] | null;
|
|
5405
5196
|
/** @description How the session ended; null until it is terminal. */
|
|
5406
5197
|
exit_status?: components['schemas']['SessionExitStatus'] | null;
|
|
5407
5198
|
/** @description The coding-agent harness the session runs on. */
|
|
@@ -5421,11 +5212,6 @@ interface components {
|
|
|
5421
5212
|
* @description When the session last received a message.
|
|
5422
5213
|
*/
|
|
5423
5214
|
last_message_at?: string | null;
|
|
5424
|
-
/**
|
|
5425
|
-
* Live Summary
|
|
5426
|
-
* @description A live summary of the session's progress while it runs.
|
|
5427
|
-
*/
|
|
5428
|
-
live_summary?: string | null;
|
|
5429
5215
|
/**
|
|
5430
5216
|
* Metadata
|
|
5431
5217
|
* @description Caller-supplied metadata key-value pairs.
|
|
@@ -5448,19 +5234,9 @@ interface components {
|
|
|
5448
5234
|
prompt?: string | null;
|
|
5449
5235
|
/** @description Whether a client may send this session a message and, when it may not, the reason to show instead of a composer. */
|
|
5450
5236
|
prompting: components['schemas']['SessionPrompting'];
|
|
5451
|
-
/**
|
|
5452
|
-
* Sandbox Id
|
|
5453
|
-
* @description Identifier of the sandbox the session runs in, if any.
|
|
5454
|
-
*/
|
|
5455
|
-
sandbox_id?: string | null;
|
|
5456
|
-
/**
|
|
5457
|
-
* Session Key
|
|
5458
|
-
* @description Key identifying the durable conversation this session belongs to, or null for single-shot sessions.
|
|
5459
|
-
*/
|
|
5460
|
-
session_key?: string | null;
|
|
5461
5237
|
/** @description Lifecycle state of the durable conversation, or null for sessions without one. */
|
|
5462
5238
|
session_state?: components['schemas']['SessionState'] | null;
|
|
5463
|
-
/** @description Where the session came from (e.g. react, manual, api, cli, mention, cron
|
|
5239
|
+
/** @description Where the session came from (e.g. react, manual, api, cli, mention, cron). */
|
|
5464
5240
|
source: components['schemas']['SessionSource'];
|
|
5465
5241
|
/** @description Execution status of the session. */
|
|
5466
5242
|
status: components['schemas']['SessionStatus'];
|
|
@@ -5471,7 +5247,9 @@ interface components {
|
|
|
5471
5247
|
status_reason?: string | null;
|
|
5472
5248
|
/** @description The stop request, if the session was stopped. */
|
|
5473
5249
|
stopped?: components['schemas']['SessionStopped'];
|
|
5474
|
-
/** @description The
|
|
5250
|
+
/** @description The latest live summary of the session's progress while it runs, and when it was generated. */
|
|
5251
|
+
summary?: components['schemas']['SessionSummary'] | null;
|
|
5252
|
+
/** @description The public status projection; null on list/search responses, which do not derive it. */
|
|
5475
5253
|
surface?: components['schemas']['SessionSurface'] | null;
|
|
5476
5254
|
/** @description The tokens the session spent and the model they went to. `total` includes the prompt-cache lanes. */
|
|
5477
5255
|
tokens?: components['schemas']['SessionTokens'];
|
|
@@ -5481,13 +5259,35 @@ interface components {
|
|
|
5481
5259
|
* @description When the session was last updated.
|
|
5482
5260
|
*/
|
|
5483
5261
|
updated_at: string;
|
|
5262
|
+
};
|
|
5263
|
+
/**
|
|
5264
|
+
* SessionAgent
|
|
5265
|
+
* @description The agent this session ran: the config it actually executed, where that
|
|
5266
|
+
* config came from, and the diff that was merged in — the same
|
|
5267
|
+
* effective-value-plus-provenance shape `SessionBudget` uses.
|
|
5268
|
+
*
|
|
5269
|
+
* `config` is the snapshot frozen when the session was created; `config_id`
|
|
5270
|
+
* points at the saved config as it exists NOW. They diverge legitimately: a
|
|
5271
|
+
* YAML edit after the session started, or any `override`, leaves the pointer
|
|
5272
|
+
* describing something the session never ran.
|
|
5273
|
+
*/
|
|
5274
|
+
SessionAgent: {
|
|
5275
|
+
/** @description The agent config the session actually ran, frozen when the session was created. */
|
|
5276
|
+
config: components['schemas']['AgentConfig'];
|
|
5277
|
+
/**
|
|
5278
|
+
* Config Id
|
|
5279
|
+
* @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.
|
|
5280
|
+
*/
|
|
5281
|
+
config_id?: string | null;
|
|
5484
5282
|
/**
|
|
5485
|
-
*
|
|
5486
|
-
* @description
|
|
5283
|
+
* Override
|
|
5284
|
+
* @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.
|
|
5487
5285
|
*/
|
|
5488
|
-
|
|
5489
|
-
|
|
5490
|
-
|
|
5286
|
+
override?: {
|
|
5287
|
+
[key: string]: unknown;
|
|
5288
|
+
} | null;
|
|
5289
|
+
/** @description How this session's config was chosen. */
|
|
5290
|
+
source: components['schemas']['AgentConfigSource'];
|
|
5491
5291
|
};
|
|
5492
5292
|
/**
|
|
5493
5293
|
* SessionAttribution
|
|
@@ -5650,7 +5450,7 @@ interface components {
|
|
|
5650
5450
|
* a deliberate cancellation. It is None until the run reaches a terminal state.
|
|
5651
5451
|
* @enum {string}
|
|
5652
5452
|
*/
|
|
5653
|
-
SessionExitStatus: 'completed' | 'budget_hit' | 'payment_required' | 'tool_call_failed' | 'lifecycle_hook_failed' | 'missing_repo_access' | 'missing_token_permissions' | 'missing_sandbox_variables' | 'cancelled' | 'interrupted' | 'error' | 'stopped';
|
|
5453
|
+
SessionExitStatus: 'completed' | 'budget_hit' | 'payment_required' | 'tool_call_failed' | 'lifecycle_hook_failed' | 'missing_repo_access' | 'missing_token_permissions' | 'missing_sandbox_variables' | 'blocked' | 'contact_email_required' | 'cancelled' | 'interrupted' | 'error' | 'stopped';
|
|
5654
5454
|
/**
|
|
5655
5455
|
* SessionLiveness
|
|
5656
5456
|
* @description The durable conversation axis (backs the surfaced `session` field).
|
|
@@ -6006,7 +5806,7 @@ interface components {
|
|
|
6006
5806
|
* SessionSource
|
|
6007
5807
|
* @enum {string}
|
|
6008
5808
|
*/
|
|
6009
|
-
SessionSource: 'react' | 'manual' | 'api' | 'cli' | 'mention' | 'cron'
|
|
5809
|
+
SessionSource: 'react' | 'manual' | 'api' | 'cli' | 'mention' | 'cron';
|
|
6010
5810
|
/**
|
|
6011
5811
|
* SessionState
|
|
6012
5812
|
* @description Lifecycle of a keyed (multi-turn) session — the durable conversation.
|
|
@@ -6041,9 +5841,26 @@ interface components {
|
|
|
6041
5841
|
/** @description The GitHub user who stopped the session, resolved at read time. */
|
|
6042
5842
|
by_user?: components['schemas']['GithubAccountSnippet'] | null;
|
|
6043
5843
|
};
|
|
5844
|
+
/**
|
|
5845
|
+
* SessionSummary
|
|
5846
|
+
* @description A live one-line summary of what the session is working on, refreshed
|
|
5847
|
+
* every few steps while it runs.
|
|
5848
|
+
*/
|
|
5849
|
+
SessionSummary: {
|
|
5850
|
+
/**
|
|
5851
|
+
* Created At
|
|
5852
|
+
* @description When this summary line was generated. Null on summaries written before generation time was tracked.
|
|
5853
|
+
*/
|
|
5854
|
+
created_at?: string | null;
|
|
5855
|
+
/**
|
|
5856
|
+
* Description
|
|
5857
|
+
* @description One-line description of what the session is working on.
|
|
5858
|
+
*/
|
|
5859
|
+
description: string;
|
|
5860
|
+
};
|
|
6044
5861
|
/**
|
|
6045
5862
|
* SessionSurface
|
|
6046
|
-
* @description The three fields we expose.
|
|
5863
|
+
* @description The three fields we expose.
|
|
6047
5864
|
*
|
|
6048
5865
|
* `use_enum_values=True` (from CustomBaseModel) stores the members as their
|
|
6049
5866
|
* string values, so this serializes to `{"session": "alive", "run": "waiting",
|
|
@@ -6121,7 +5938,7 @@ interface components {
|
|
|
6121
5938
|
next_cursor?: string | null;
|
|
6122
5939
|
/**
|
|
6123
5940
|
* Sessions
|
|
6124
|
-
* @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.
|
|
5941
|
+
* @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.
|
|
6125
5942
|
*/
|
|
6126
5943
|
sessions: components['schemas']['Session'][];
|
|
6127
5944
|
};
|
|
@@ -6263,7 +6080,7 @@ interface components {
|
|
|
6263
6080
|
config_id?: string | null;
|
|
6264
6081
|
/**
|
|
6265
6082
|
* Config Override
|
|
6266
|
-
* @description Optional partial-config override merged onto the chosen config and re-validated (e.g. {"
|
|
6083
|
+
* @description Optional partial-config override merged onto the chosen config and re-validated (e.g. {"budget": {"session": 5.0}} to raise just this session's budget). Merged onto config_id/template_id or the platform default; with an inline config, set fields directly instead. Mutually exclusive with config_override_yaml.
|
|
6267
6084
|
*/
|
|
6268
6085
|
config_override?: {
|
|
6269
6086
|
[key: string]: unknown;
|
|
@@ -6279,11 +6096,9 @@ interface components {
|
|
|
6279
6096
|
* @default false
|
|
6280
6097
|
*/
|
|
6281
6098
|
force_rebuild: boolean;
|
|
6282
|
-
/** @description Laptop-to-cloud handoff parameters. When set, the built-in handoff config is used and config_id/config/template_id must be omitted. */
|
|
6283
|
-
handoff?: components['schemas']['HandoffAgentSessionParams'] | null;
|
|
6284
6099
|
/**
|
|
6285
6100
|
* Idle Start
|
|
6286
|
-
* @description Start the session with no initial message: the sandbox spins up, the agent starts idle at the prompt, and the first message sent to the session opens turn 0. Mutually exclusive with prompt
|
|
6101
|
+
* @description Start the session with no initial message: the sandbox spins up, the agent starts idle at the prompt, and the first message sent to the session opens turn 0. Mutually exclusive with prompt. Ignored when the resolved config is not interactive (an ephemeral run keeps its kickoff — it can never receive a message).
|
|
6287
6102
|
* @default false
|
|
6288
6103
|
*/
|
|
6289
6104
|
idle_start: boolean;
|
|
@@ -6304,7 +6119,7 @@ interface components {
|
|
|
6304
6119
|
};
|
|
6305
6120
|
/**
|
|
6306
6121
|
* Prompt
|
|
6307
|
-
* @description Per-run instructions appended to the initial query after the config's shared system prompt. Applies regardless of which config source is used.
|
|
6122
|
+
* @description Per-run instructions appended to the initial query after the config's shared system prompt. Applies regardless of which config source is used.
|
|
6308
6123
|
*/
|
|
6309
6124
|
prompt?: string | null;
|
|
6310
6125
|
/**
|
|
@@ -6318,22 +6133,6 @@ interface components {
|
|
|
6318
6133
|
*/
|
|
6319
6134
|
template_id?: string | null;
|
|
6320
6135
|
};
|
|
6321
|
-
/**
|
|
6322
|
-
* StartAgentSessionResponse
|
|
6323
|
-
* @description The started session, plus explicit fields describing how its config
|
|
6324
|
-
* was resolved.
|
|
6325
|
-
*/
|
|
6326
|
-
StartAgentSessionResponse: {
|
|
6327
|
-
/** @description Which rung of the defaults ladder chose the config (repo_default | account_default | none). Null when an explicit config/config_id/template_id (or a handoff) bypassed resolution. */
|
|
6328
|
-
resolution_source?: components['schemas']['DefaultResolution'] | null;
|
|
6329
|
-
/**
|
|
6330
|
-
* Resolved Config Name
|
|
6331
|
-
* @description The name of the config the session runs under.
|
|
6332
|
-
*/
|
|
6333
|
-
resolved_config_name?: string | null;
|
|
6334
|
-
/** @description The started session. */
|
|
6335
|
-
session: components['schemas']['Session'];
|
|
6336
|
-
};
|
|
6337
6136
|
/**
|
|
6338
6137
|
* StartCliAuthResponse
|
|
6339
6138
|
* @description A freshly minted device-code flow: show the user code (or open the
|
|
@@ -6371,72 +6170,6 @@ interface components {
|
|
|
6371
6170
|
*/
|
|
6372
6171
|
verification_uri_complete: string;
|
|
6373
6172
|
};
|
|
6374
|
-
/**
|
|
6375
|
-
* SyncAgentSessionRequest
|
|
6376
|
-
* @description One hook-driven transcript sync from a developer laptop. The CLI reads
|
|
6377
|
-
* the live on-disk Claude Code transcript, redacts it client-side, gzips
|
|
6378
|
-
* it, and POSTs it here — once per turn and at termination.
|
|
6379
|
-
*/
|
|
6380
|
-
SyncAgentSessionRequest: {
|
|
6381
|
-
/**
|
|
6382
|
-
* Cc Session Id
|
|
6383
|
-
* @description The Claude Code session uuid (from the hook payload's session_id).
|
|
6384
|
-
*/
|
|
6385
|
-
cc_session_id: string;
|
|
6386
|
-
/**
|
|
6387
|
-
* Cwd
|
|
6388
|
-
* @description The laptop working directory.
|
|
6389
|
-
*/
|
|
6390
|
-
cwd?: string | null;
|
|
6391
|
-
/**
|
|
6392
|
-
* Git Branch
|
|
6393
|
-
* @description The checked-out git branch.
|
|
6394
|
-
*/
|
|
6395
|
-
git_branch?: string | null;
|
|
6396
|
-
/**
|
|
6397
|
-
* Reason
|
|
6398
|
-
* @description Which hook fired the sync: "stop" (mid-session, once per turn) or "session_end" (the Claude Code process terminated).
|
|
6399
|
-
* @default stop
|
|
6400
|
-
* @enum {string}
|
|
6401
|
-
*/
|
|
6402
|
-
reason: 'stop' | 'session_end';
|
|
6403
|
-
/**
|
|
6404
|
-
* Repo
|
|
6405
|
-
* @description The enrolled repository ("owner/name", from the working directory's git remote).
|
|
6406
|
-
*/
|
|
6407
|
-
repo?: string | null;
|
|
6408
|
-
/**
|
|
6409
|
-
* Transcript Gzip B64
|
|
6410
|
-
* @description The redacted transcript JSONL, gzipped then base64-encoded.
|
|
6411
|
-
*/
|
|
6412
|
-
transcript_gzip_b64: string;
|
|
6413
|
-
};
|
|
6414
|
-
/**
|
|
6415
|
-
* SyncAgentSessionResponse
|
|
6416
|
-
* @description The outcome of a laptop transcript sync.
|
|
6417
|
-
*/
|
|
6418
|
-
SyncAgentSessionResponse: {
|
|
6419
|
-
/**
|
|
6420
|
-
* Accepted
|
|
6421
|
-
* @description False when the stored snapshot was already at least as long (longest snapshot wins) — acknowledged, nothing written.
|
|
6422
|
-
*/
|
|
6423
|
-
accepted: boolean;
|
|
6424
|
-
/**
|
|
6425
|
-
* Event Count
|
|
6426
|
-
* @description The number of transcript events in the stored snapshot.
|
|
6427
|
-
*/
|
|
6428
|
-
event_count: number;
|
|
6429
|
-
/**
|
|
6430
|
-
* Process Id
|
|
6431
|
-
* @description The synced Claude Code process id.
|
|
6432
|
-
*/
|
|
6433
|
-
process_id: string;
|
|
6434
|
-
/**
|
|
6435
|
-
* Session Id
|
|
6436
|
-
* @description The platform session the sync mapped to.
|
|
6437
|
-
*/
|
|
6438
|
-
session_id: string;
|
|
6439
|
-
};
|
|
6440
6173
|
/**
|
|
6441
6174
|
* TokensInfo
|
|
6442
6175
|
* @description Token/cost usage, per record (one API call's counts, aggregate fields at
|
|
@@ -6582,11 +6315,6 @@ interface components {
|
|
|
6582
6315
|
/** Error Type */
|
|
6583
6316
|
type: string;
|
|
6584
6317
|
};
|
|
6585
|
-
/**
|
|
6586
|
-
* WebhookType
|
|
6587
|
-
* @enum {string}
|
|
6588
|
-
*/
|
|
6589
|
-
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';
|
|
6590
6318
|
/**
|
|
6591
6319
|
* WhoAmIResponse
|
|
6592
6320
|
* @description The identity behind the caller's credential.
|
|
@@ -7134,7 +6862,7 @@ interface operations {
|
|
|
7134
6862
|
[name: string]: unknown;
|
|
7135
6863
|
};
|
|
7136
6864
|
content: {
|
|
7137
|
-
'application/json': components['schemas']['
|
|
6865
|
+
'application/json': components['schemas']['AgentDefaults'];
|
|
7138
6866
|
};
|
|
7139
6867
|
};
|
|
7140
6868
|
/** @description The bearer token is missing, invalid, or revoked. */
|
|
@@ -7187,7 +6915,7 @@ interface operations {
|
|
|
7187
6915
|
[name: string]: unknown;
|
|
7188
6916
|
};
|
|
7189
6917
|
content: {
|
|
7190
|
-
'application/json': components['schemas']['
|
|
6918
|
+
'application/json': components['schemas']['AgentDefaults'];
|
|
7191
6919
|
};
|
|
7192
6920
|
};
|
|
7193
6921
|
/** @description The config is not eligible as a default: its pull request has not merged, or it is disabled. */
|
|
@@ -9351,7 +9079,7 @@ interface operations {
|
|
|
9351
9079
|
cursor?: string | null;
|
|
9352
9080
|
/** @description A GitHub account id (see GET /v1/integrations/github/members); scopes the list to sessions attributed to that developer. */
|
|
9353
9081
|
author_id?: number | null;
|
|
9354
|
-
/** @description "owner/name" (exact) or a bare repo name, matched the same way as on GET /v1/sessions/search. Sessions whose repository is named only inside their agent config — dashboard starts, cron
|
|
9082
|
+
/** @description "owner/name" (exact) or a bare repo name, matched the same way as on GET /v1/sessions/search. Sessions whose repository is named only inside their agent config — dashboard starts, cron — do not match. */
|
|
9355
9083
|
repo?: string | null;
|
|
9356
9084
|
/** @description Keep only sessions whose conversation is still going — live or sleeping — dropping the ones that completed, errored, or were stopped or cancelled. A session parked between turns counts as unfinished. */
|
|
9357
9085
|
unfinished?: boolean;
|
|
@@ -9423,10 +9151,10 @@ interface operations {
|
|
|
9423
9151
|
[name: string]: unknown;
|
|
9424
9152
|
};
|
|
9425
9153
|
content: {
|
|
9426
|
-
'application/json': components['schemas']['
|
|
9154
|
+
'application/json': components['schemas']['SessionResponse'];
|
|
9427
9155
|
};
|
|
9428
9156
|
};
|
|
9429
|
-
/** @description The request combines incompatible fields (multiple config sources, idle_start with prompt/input
|
|
9157
|
+
/** @description The request combines incompatible fields (multiple config sources, idle_start with prompt/input, or both override forms), or the config override is invalid. */
|
|
9430
9158
|
400: {
|
|
9431
9159
|
headers: {
|
|
9432
9160
|
[name: string]: unknown;
|
|
@@ -9453,7 +9181,7 @@ interface operations {
|
|
|
9453
9181
|
'application/json': components['schemas']['ErrorResponse'];
|
|
9454
9182
|
};
|
|
9455
9183
|
};
|
|
9456
|
-
/** @description The named agent
|
|
9184
|
+
/** @description The named agent or template does not exist in your account. */
|
|
9457
9185
|
404: {
|
|
9458
9186
|
headers: {
|
|
9459
9187
|
[name: string]: unknown;
|
|
@@ -9555,20 +9283,18 @@ interface operations {
|
|
|
9555
9283
|
};
|
|
9556
9284
|
};
|
|
9557
9285
|
};
|
|
9558
|
-
|
|
9286
|
+
get_agent_session: {
|
|
9559
9287
|
parameters: {
|
|
9560
9288
|
query?: never;
|
|
9561
9289
|
header?: {
|
|
9562
9290
|
'user-agent'?: string | null;
|
|
9563
9291
|
};
|
|
9564
|
-
path
|
|
9565
|
-
|
|
9566
|
-
};
|
|
9567
|
-
requestBody: {
|
|
9568
|
-
content: {
|
|
9569
|
-
'application/json': components['schemas']['SyncAgentSessionRequest'];
|
|
9292
|
+
path: {
|
|
9293
|
+
session_id: string;
|
|
9570
9294
|
};
|
|
9295
|
+
cookie?: never;
|
|
9571
9296
|
};
|
|
9297
|
+
requestBody?: never;
|
|
9572
9298
|
responses: {
|
|
9573
9299
|
/** @description Successful Response */
|
|
9574
9300
|
200: {
|
|
@@ -9576,16 +9302,7 @@ interface operations {
|
|
|
9576
9302
|
[name: string]: unknown;
|
|
9577
9303
|
};
|
|
9578
9304
|
content: {
|
|
9579
|
-
'application/json': components['schemas']['
|
|
9580
|
-
};
|
|
9581
|
-
};
|
|
9582
|
-
/** @description The transcript payload is empty, or is not valid base64/gzip. */
|
|
9583
|
-
400: {
|
|
9584
|
-
headers: {
|
|
9585
|
-
[name: string]: unknown;
|
|
9586
|
-
};
|
|
9587
|
-
content: {
|
|
9588
|
-
'application/json': components['schemas']['ErrorResponse'];
|
|
9305
|
+
'application/json': components['schemas']['SessionResponse'];
|
|
9589
9306
|
};
|
|
9590
9307
|
};
|
|
9591
9308
|
/** @description The bearer token is missing, invalid, or revoked. */
|
|
@@ -9606,8 +9323,8 @@ interface operations {
|
|
|
9606
9323
|
'application/json': components['schemas']['ErrorResponse'];
|
|
9607
9324
|
};
|
|
9608
9325
|
};
|
|
9609
|
-
/** @description
|
|
9610
|
-
|
|
9326
|
+
/** @description No such session in your account. */
|
|
9327
|
+
404: {
|
|
9611
9328
|
headers: {
|
|
9612
9329
|
[name: string]: unknown;
|
|
9613
9330
|
};
|
|
@@ -9626,7 +9343,7 @@ interface operations {
|
|
|
9626
9343
|
};
|
|
9627
9344
|
};
|
|
9628
9345
|
};
|
|
9629
|
-
|
|
9346
|
+
get_agent_session_executions: {
|
|
9630
9347
|
parameters: {
|
|
9631
9348
|
query?: never;
|
|
9632
9349
|
header?: {
|
|
@@ -9645,7 +9362,7 @@ interface operations {
|
|
|
9645
9362
|
[name: string]: unknown;
|
|
9646
9363
|
};
|
|
9647
9364
|
content: {
|
|
9648
|
-
'application/json': components['schemas']['
|
|
9365
|
+
'application/json': components['schemas']['SessionExecutionsListResponse'];
|
|
9649
9366
|
};
|
|
9650
9367
|
};
|
|
9651
9368
|
/** @description The bearer token is missing, invalid, or revoked. */
|
|
@@ -9686,7 +9403,7 @@ interface operations {
|
|
|
9686
9403
|
};
|
|
9687
9404
|
};
|
|
9688
9405
|
};
|
|
9689
|
-
|
|
9406
|
+
export_agent_session: {
|
|
9690
9407
|
parameters: {
|
|
9691
9408
|
query?: never;
|
|
9692
9409
|
header?: {
|
|
@@ -9705,7 +9422,7 @@ interface operations {
|
|
|
9705
9422
|
[name: string]: unknown;
|
|
9706
9423
|
};
|
|
9707
9424
|
content: {
|
|
9708
|
-
'application/json': components['schemas']['
|
|
9425
|
+
'application/json': components['schemas']['GetSessionLogResponse'];
|
|
9709
9426
|
};
|
|
9710
9427
|
};
|
|
9711
9428
|
/** @description The bearer token is missing, invalid, or revoked. */
|
|
@@ -9746,7 +9463,7 @@ interface operations {
|
|
|
9746
9463
|
};
|
|
9747
9464
|
};
|
|
9748
9465
|
};
|
|
9749
|
-
|
|
9466
|
+
send_agent_session_message: {
|
|
9750
9467
|
parameters: {
|
|
9751
9468
|
query?: never;
|
|
9752
9469
|
header?: {
|
|
@@ -9757,7 +9474,11 @@ interface operations {
|
|
|
9757
9474
|
};
|
|
9758
9475
|
cookie?: never;
|
|
9759
9476
|
};
|
|
9760
|
-
requestBody
|
|
9477
|
+
requestBody: {
|
|
9478
|
+
content: {
|
|
9479
|
+
'application/json': components['schemas']['SendSessionMessageRequest'];
|
|
9480
|
+
};
|
|
9481
|
+
};
|
|
9761
9482
|
responses: {
|
|
9762
9483
|
/** @description Successful Response */
|
|
9763
9484
|
200: {
|
|
@@ -9765,144 +9486,11 @@ interface operations {
|
|
|
9765
9486
|
[name: string]: unknown;
|
|
9766
9487
|
};
|
|
9767
9488
|
content: {
|
|
9768
|
-
'application/json': components['schemas']['
|
|
9489
|
+
'application/json': components['schemas']['SessionMessageResponse'];
|
|
9769
9490
|
};
|
|
9770
9491
|
};
|
|
9771
|
-
/** @description The
|
|
9772
|
-
|
|
9773
|
-
headers: {
|
|
9774
|
-
[name: string]: unknown;
|
|
9775
|
-
};
|
|
9776
|
-
content: {
|
|
9777
|
-
'application/json': components['schemas']['ErrorResponse'];
|
|
9778
|
-
};
|
|
9779
|
-
};
|
|
9780
|
-
/** @description The credential may not perform this action, or the account is blocked. */
|
|
9781
|
-
403: {
|
|
9782
|
-
headers: {
|
|
9783
|
-
[name: string]: unknown;
|
|
9784
|
-
};
|
|
9785
|
-
content: {
|
|
9786
|
-
'application/json': components['schemas']['ErrorResponse'];
|
|
9787
|
-
};
|
|
9788
|
-
};
|
|
9789
|
-
/** @description No such session in your account. */
|
|
9790
|
-
404: {
|
|
9791
|
-
headers: {
|
|
9792
|
-
[name: string]: unknown;
|
|
9793
|
-
};
|
|
9794
|
-
content: {
|
|
9795
|
-
'application/json': components['schemas']['ErrorResponse'];
|
|
9796
|
-
};
|
|
9797
|
-
};
|
|
9798
|
-
/** @description Validation Error */
|
|
9799
|
-
422: {
|
|
9800
|
-
headers: {
|
|
9801
|
-
[name: string]: unknown;
|
|
9802
|
-
};
|
|
9803
|
-
content: {
|
|
9804
|
-
'application/json': components['schemas']['HTTPValidationError'];
|
|
9805
|
-
};
|
|
9806
|
-
};
|
|
9807
|
-
};
|
|
9808
|
-
};
|
|
9809
|
-
get_agent_session_ide: {
|
|
9810
|
-
parameters: {
|
|
9811
|
-
query?: never;
|
|
9812
|
-
header?: {
|
|
9813
|
-
'user-agent'?: string | null;
|
|
9814
|
-
};
|
|
9815
|
-
path: {
|
|
9816
|
-
session_id: string;
|
|
9817
|
-
};
|
|
9818
|
-
cookie?: never;
|
|
9819
|
-
};
|
|
9820
|
-
requestBody?: never;
|
|
9821
|
-
responses: {
|
|
9822
|
-
/** @description Successful Response */
|
|
9823
|
-
200: {
|
|
9824
|
-
headers: {
|
|
9825
|
-
[name: string]: unknown;
|
|
9826
|
-
};
|
|
9827
|
-
content: {
|
|
9828
|
-
'application/json': components['schemas']['GetSessionIdeResponse'];
|
|
9829
|
-
};
|
|
9830
|
-
};
|
|
9831
|
-
/** @description The bearer token is missing, invalid, or revoked. */
|
|
9832
|
-
401: {
|
|
9833
|
-
headers: {
|
|
9834
|
-
[name: string]: unknown;
|
|
9835
|
-
};
|
|
9836
|
-
content: {
|
|
9837
|
-
'application/json': components['schemas']['ErrorResponse'];
|
|
9838
|
-
};
|
|
9839
|
-
};
|
|
9840
|
-
/** @description The credential may not perform this action, or the account is blocked. */
|
|
9841
|
-
403: {
|
|
9842
|
-
headers: {
|
|
9843
|
-
[name: string]: unknown;
|
|
9844
|
-
};
|
|
9845
|
-
content: {
|
|
9846
|
-
'application/json': components['schemas']['ErrorResponse'];
|
|
9847
|
-
};
|
|
9848
|
-
};
|
|
9849
|
-
/** @description No such session in your account. */
|
|
9850
|
-
404: {
|
|
9851
|
-
headers: {
|
|
9852
|
-
[name: string]: unknown;
|
|
9853
|
-
};
|
|
9854
|
-
content: {
|
|
9855
|
-
'application/json': components['schemas']['ErrorResponse'];
|
|
9856
|
-
};
|
|
9857
|
-
};
|
|
9858
|
-
/** @description The session's sandbox is not running; send it a message to wake it first. */
|
|
9859
|
-
409: {
|
|
9860
|
-
headers: {
|
|
9861
|
-
[name: string]: unknown;
|
|
9862
|
-
};
|
|
9863
|
-
content: {
|
|
9864
|
-
'application/json': components['schemas']['ErrorResponse'];
|
|
9865
|
-
};
|
|
9866
|
-
};
|
|
9867
|
-
/** @description Validation Error */
|
|
9868
|
-
422: {
|
|
9869
|
-
headers: {
|
|
9870
|
-
[name: string]: unknown;
|
|
9871
|
-
};
|
|
9872
|
-
content: {
|
|
9873
|
-
'application/json': components['schemas']['HTTPValidationError'];
|
|
9874
|
-
};
|
|
9875
|
-
};
|
|
9876
|
-
};
|
|
9877
|
-
};
|
|
9878
|
-
send_agent_session_message: {
|
|
9879
|
-
parameters: {
|
|
9880
|
-
query?: never;
|
|
9881
|
-
header?: {
|
|
9882
|
-
'user-agent'?: string | null;
|
|
9883
|
-
};
|
|
9884
|
-
path: {
|
|
9885
|
-
session_id: string;
|
|
9886
|
-
};
|
|
9887
|
-
cookie?: never;
|
|
9888
|
-
};
|
|
9889
|
-
requestBody: {
|
|
9890
|
-
content: {
|
|
9891
|
-
'application/json': components['schemas']['SendSessionMessageRequest'];
|
|
9892
|
-
};
|
|
9893
|
-
};
|
|
9894
|
-
responses: {
|
|
9895
|
-
/** @description Successful Response */
|
|
9896
|
-
200: {
|
|
9897
|
-
headers: {
|
|
9898
|
-
[name: string]: unknown;
|
|
9899
|
-
};
|
|
9900
|
-
content: {
|
|
9901
|
-
'application/json': components['schemas']['SessionMessageResponse'];
|
|
9902
|
-
};
|
|
9903
|
-
};
|
|
9904
|
-
/** @description The message is empty. */
|
|
9905
|
-
400: {
|
|
9492
|
+
/** @description The message is empty. */
|
|
9493
|
+
400: {
|
|
9906
9494
|
headers: {
|
|
9907
9495
|
[name: string]: unknown;
|
|
9908
9496
|
};
|
|
@@ -9937,7 +9525,7 @@ interface operations {
|
|
|
9937
9525
|
'application/json': components['schemas']['ErrorResponse'];
|
|
9938
9526
|
};
|
|
9939
9527
|
};
|
|
9940
|
-
/** @description The session cannot be messaged: it is closed, non-interactive,
|
|
9528
|
+
/** @description The session cannot be messaged: it is closed, non-interactive, or steered from its triggering surface (mention/react/cron). */
|
|
9941
9529
|
409: {
|
|
9942
9530
|
headers: {
|
|
9943
9531
|
[name: string]: unknown;
|
|
@@ -10017,76 +9605,6 @@ interface operations {
|
|
|
10017
9605
|
};
|
|
10018
9606
|
};
|
|
10019
9607
|
};
|
|
10020
|
-
get_agent_session_port: {
|
|
10021
|
-
parameters: {
|
|
10022
|
-
query?: never;
|
|
10023
|
-
header?: {
|
|
10024
|
-
'user-agent'?: string | null;
|
|
10025
|
-
};
|
|
10026
|
-
path: {
|
|
10027
|
-
session_id: string;
|
|
10028
|
-
port: number;
|
|
10029
|
-
};
|
|
10030
|
-
cookie?: never;
|
|
10031
|
-
};
|
|
10032
|
-
requestBody?: never;
|
|
10033
|
-
responses: {
|
|
10034
|
-
/** @description Successful Response */
|
|
10035
|
-
200: {
|
|
10036
|
-
headers: {
|
|
10037
|
-
[name: string]: unknown;
|
|
10038
|
-
};
|
|
10039
|
-
content: {
|
|
10040
|
-
'application/json': components['schemas']['GetSessionPortResponse'];
|
|
10041
|
-
};
|
|
10042
|
-
};
|
|
10043
|
-
/** @description The bearer token is missing, invalid, or revoked. */
|
|
10044
|
-
401: {
|
|
10045
|
-
headers: {
|
|
10046
|
-
[name: string]: unknown;
|
|
10047
|
-
};
|
|
10048
|
-
content: {
|
|
10049
|
-
'application/json': components['schemas']['ErrorResponse'];
|
|
10050
|
-
};
|
|
10051
|
-
};
|
|
10052
|
-
/** @description The credential may not perform this action, or the account is blocked. */
|
|
10053
|
-
403: {
|
|
10054
|
-
headers: {
|
|
10055
|
-
[name: string]: unknown;
|
|
10056
|
-
};
|
|
10057
|
-
content: {
|
|
10058
|
-
'application/json': components['schemas']['ErrorResponse'];
|
|
10059
|
-
};
|
|
10060
|
-
};
|
|
10061
|
-
/** @description No such session in your account, or the port is not a valid TCP port. */
|
|
10062
|
-
404: {
|
|
10063
|
-
headers: {
|
|
10064
|
-
[name: string]: unknown;
|
|
10065
|
-
};
|
|
10066
|
-
content: {
|
|
10067
|
-
'application/json': components['schemas']['ErrorResponse'];
|
|
10068
|
-
};
|
|
10069
|
-
};
|
|
10070
|
-
/** @description The session's sandbox is not running; send it a message to wake it first. */
|
|
10071
|
-
409: {
|
|
10072
|
-
headers: {
|
|
10073
|
-
[name: string]: unknown;
|
|
10074
|
-
};
|
|
10075
|
-
content: {
|
|
10076
|
-
'application/json': components['schemas']['ErrorResponse'];
|
|
10077
|
-
};
|
|
10078
|
-
};
|
|
10079
|
-
/** @description Validation Error */
|
|
10080
|
-
422: {
|
|
10081
|
-
headers: {
|
|
10082
|
-
[name: string]: unknown;
|
|
10083
|
-
};
|
|
10084
|
-
content: {
|
|
10085
|
-
'application/json': components['schemas']['HTTPValidationError'];
|
|
10086
|
-
};
|
|
10087
|
-
};
|
|
10088
|
-
};
|
|
10089
|
-
};
|
|
10090
9608
|
get_agent_session_records: {
|
|
10091
9609
|
parameters: {
|
|
10092
9610
|
query?: {
|
|
@@ -10176,7 +9694,7 @@ interface operations {
|
|
|
10176
9694
|
'application/json': components['schemas']['SessionResponse'];
|
|
10177
9695
|
};
|
|
10178
9696
|
};
|
|
10179
|
-
/** @description The
|
|
9697
|
+
/** @description The named config does not exist, or the config override is invalid. */
|
|
10180
9698
|
400: {
|
|
10181
9699
|
headers: {
|
|
10182
9700
|
[name: string]: unknown;
|
|
@@ -10245,15 +9763,6 @@ interface operations {
|
|
|
10245
9763
|
'application/json': components['schemas']['SessionResponse'];
|
|
10246
9764
|
};
|
|
10247
9765
|
};
|
|
10248
|
-
/** @description The session runs on a developer laptop and cannot be stopped from the cloud. */
|
|
10249
|
-
400: {
|
|
10250
|
-
headers: {
|
|
10251
|
-
[name: string]: unknown;
|
|
10252
|
-
};
|
|
10253
|
-
content: {
|
|
10254
|
-
'application/json': components['schemas']['ErrorResponse'];
|
|
10255
|
-
};
|
|
10256
|
-
};
|
|
10257
9766
|
/** @description The bearer token is missing, invalid, or revoked. */
|
|
10258
9767
|
401: {
|
|
10259
9768
|
headers: {
|
|
@@ -10426,7 +9935,7 @@ interface operations {
|
|
|
10426
9935
|
}
|
|
10427
9936
|
|
|
10428
9937
|
/**
|
|
10429
|
-
* 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.
|
|
9938
|
+
* 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.
|
|
10430
9939
|
*/
|
|
10431
9940
|
type SessionStreamFrame = SnapshotFrame | RecordsAppendFrame | SessionFrame | DeltaFrame | HeartbeatFrame | DoneFrame | ErrorFrame;
|
|
10432
9941
|
type AttributionType = 'github_user' | 'linear_user' | 'slack_user' | 'api_key';
|
|
@@ -10434,19 +9943,38 @@ type AttributionType = 'github_user' | 'linear_user' | 'slack_user' | 'api_key';
|
|
|
10434
9943
|
* Delivery status of the message.
|
|
10435
9944
|
*/
|
|
10436
9945
|
type SessionMessageStatus = 'pending' | 'delivered';
|
|
9946
|
+
type EffortLevel = 'low' | 'medium' | 'high' | 'xhigh' | 'max';
|
|
9947
|
+
/**
|
|
9948
|
+
* What may be done to a resource. Strictly ordered: a grant at one level
|
|
9949
|
+
* includes every level below it (write-only would be a phantom capability —
|
|
9950
|
+
* no real client can create what it cannot read back).
|
|
9951
|
+
*/
|
|
9952
|
+
type Level = 'read' | 'write' | 'delete';
|
|
9953
|
+
type GithubAccountFilter = {
|
|
9954
|
+
exclude?: string[];
|
|
9955
|
+
include?: string[] | boolean;
|
|
9956
|
+
} | boolean | string[];
|
|
9957
|
+
type IssueAction = 'opened' | 'closed' | 'commented';
|
|
9958
|
+
type RepositoryFilter = {
|
|
9959
|
+
exclude?: string[];
|
|
9960
|
+
include?: string[];
|
|
9961
|
+
} | string[];
|
|
9962
|
+
type LinearIssueAction = 'opened';
|
|
9963
|
+
type PullRequestAction = 'opened' | 'pushed' | 'merged' | 'closed' | 'review_submitted' | 'commented';
|
|
9964
|
+
type SentryAction = 'issue_alert' | 'metric_alert';
|
|
9965
|
+
/**
|
|
9966
|
+
* The surface an @ellipsis mention can come from.
|
|
9967
|
+
*/
|
|
9968
|
+
type AgentConfigMentionPlatform = 'github' | 'slack' | 'linear';
|
|
9969
|
+
/**
|
|
9970
|
+
* How this session's config was chosen.
|
|
9971
|
+
*/
|
|
9972
|
+
type AgentConfigSource = 'explicit' | 'inline' | 'template' | 'repo_default' | 'account_default' | 'platform_default' | 'trigger' | 'builtin';
|
|
10437
9973
|
type GithubAccountType = 'User' | 'Organization' | 'Bot' | 'Mannequin';
|
|
10438
9974
|
/**
|
|
10439
9975
|
* Where the resolved budget came from.
|
|
10440
9976
|
*/
|
|
10441
9977
|
type BudgetSource = 'system' | 'account' | 'config' | 'run';
|
|
10442
|
-
/**
|
|
10443
|
-
* How a session that arrived with no explicit config source resolved its
|
|
10444
|
-
* config (documents/eng/DEFAULT_CONFIGS.md §4). Persisted on the session so
|
|
10445
|
-
* audit and clients can say "ran under X (repo default)". A session started
|
|
10446
|
-
* with an explicit config/config_id/template_id never enters resolution and
|
|
10447
|
-
* stores None.
|
|
10448
|
-
*/
|
|
10449
|
-
type DefaultResolution = 'repo_default' | 'account_default' | 'none';
|
|
10450
9978
|
/**
|
|
10451
9979
|
* Why a terminal agent session ended — a finer-grained reason than `status`.
|
|
10452
9980
|
*
|
|
@@ -10455,7 +9983,7 @@ type DefaultResolution = 'repo_default' | 'account_default' | 'none';
|
|
|
10455
9983
|
* the UI and metrics can tell a budget cutoff apart from a crashed tool call or
|
|
10456
9984
|
* a deliberate cancellation. It is None until the run reaches a terminal state.
|
|
10457
9985
|
*/
|
|
10458
|
-
type SessionExitStatus = 'completed' | 'budget_hit' | 'payment_required' | 'tool_call_failed' | 'lifecycle_hook_failed' | 'missing_repo_access' | 'missing_token_permissions' | 'missing_sandbox_variables' | 'cancelled' | 'interrupted' | 'error' | 'stopped';
|
|
9986
|
+
type SessionExitStatus = 'completed' | 'budget_hit' | 'payment_required' | 'tool_call_failed' | 'lifecycle_hook_failed' | 'missing_repo_access' | 'missing_token_permissions' | 'missing_sandbox_variables' | 'blocked' | 'contact_email_required' | 'cancelled' | 'interrupted' | 'error' | 'stopped';
|
|
10459
9987
|
/**
|
|
10460
9988
|
* The coding-agent harness the session runs on.
|
|
10461
9989
|
*/
|
|
@@ -10467,16 +9995,14 @@ type Harness = 'claude_code' | 'codex';
|
|
|
10467
9995
|
*
|
|
10468
9996
|
* CONTINUATION — a follow-up in the same conversation surface (e.g. a Slack
|
|
10469
9997
|
* thread reply spawning a fresh session on the same thread).
|
|
10470
|
-
* HANDOFF — a session started to take over work from another surface (e.g.
|
|
10471
|
-
* laptop → cloud handoff; later phase).
|
|
10472
9998
|
* RESUME — a conversation re-hosted on a new box after its sandbox was torn
|
|
10473
9999
|
* down (interactive platform; later phase).
|
|
10474
10000
|
*/
|
|
10475
|
-
type ParentKind = 'continuation' | '
|
|
10001
|
+
type ParentKind = 'continuation' | 'resume';
|
|
10476
10002
|
/**
|
|
10477
10003
|
* Why direct prompting is refused. Absent when prompting is allowed.
|
|
10478
10004
|
*/
|
|
10479
|
-
type PromptBlockedReason = 'mention_surface' | 'ephemeral_trigger' | 'non_interactive' | 'harness_single_turn' | 'closed'
|
|
10005
|
+
type PromptBlockedReason = 'mention_surface' | 'ephemeral_trigger' | 'non_interactive' | 'harness_single_turn' | 'closed';
|
|
10480
10006
|
/**
|
|
10481
10007
|
* Lifecycle of a keyed (multi-turn) session — the durable conversation.
|
|
10482
10008
|
* Distinct from SessionStatus, which is per-execution (one turn's run) and
|
|
@@ -10486,9 +10012,9 @@ type PromptBlockedReason = 'mention_surface' | 'ephemeral_trigger' | 'non_intera
|
|
|
10486
10012
|
*/
|
|
10487
10013
|
type SessionState = 'idle' | 'running' | 'closed';
|
|
10488
10014
|
/**
|
|
10489
|
-
* Where the session came from (e.g. react, manual, api, cli, mention, cron
|
|
10015
|
+
* Where the session came from (e.g. react, manual, api, cli, mention, cron).
|
|
10490
10016
|
*/
|
|
10491
|
-
type SessionSource = 'react' | 'manual' | 'api' | 'cli' | 'mention' | 'cron'
|
|
10017
|
+
type SessionSource = 'react' | 'manual' | 'api' | 'cli' | 'mention' | 'cron';
|
|
10492
10018
|
/**
|
|
10493
10019
|
* Execution status of the session.
|
|
10494
10020
|
*/
|
|
@@ -10501,7 +10027,6 @@ type RunStatus = 'scheduled' | 'starting' | 'working' | 'waiting' | 'done' | 'fa
|
|
|
10501
10027
|
* The durable conversation axis (backs the surfaced `session` field).
|
|
10502
10028
|
*/
|
|
10503
10029
|
type SessionLiveness = 'alive' | 'sleeping' | 'closed';
|
|
10504
|
-
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';
|
|
10505
10030
|
/**
|
|
10506
10031
|
* The first frame after the stream connects: the session plus its open
|
|
10507
10032
|
* inbox. Records always arrive separately via records_append frames.
|
|
@@ -10573,22 +10098,9 @@ interface SessionMessage {
|
|
|
10573
10098
|
* The session's current state.
|
|
10574
10099
|
*/
|
|
10575
10100
|
interface Session {
|
|
10101
|
+
agent: SessionAgent;
|
|
10576
10102
|
attribution: SessionAttribution;
|
|
10577
10103
|
budget: SessionBudget;
|
|
10578
|
-
/**
|
|
10579
|
-
* Version of the client that started the session, if reported.
|
|
10580
|
-
*/
|
|
10581
|
-
client_version: string | null;
|
|
10582
|
-
/**
|
|
10583
|
-
* Identifier of the saved agent config the session ran on, if any.
|
|
10584
|
-
*/
|
|
10585
|
-
config_id: string | null;
|
|
10586
|
-
/**
|
|
10587
|
-
* The partial-config diff applied for this run; null when the config was unmodified.
|
|
10588
|
-
*/
|
|
10589
|
-
config_override: {
|
|
10590
|
-
[k: string]: unknown;
|
|
10591
|
-
} | null;
|
|
10592
10104
|
/**
|
|
10593
10105
|
* The "owner/name" repository context the session was started in, if any.
|
|
10594
10106
|
*/
|
|
@@ -10598,10 +10110,6 @@ interface Session {
|
|
|
10598
10110
|
* When the session was created.
|
|
10599
10111
|
*/
|
|
10600
10112
|
created_at: string;
|
|
10601
|
-
/**
|
|
10602
|
-
* How the session's config was resolved from the account's defaults, when no explicit config was given.
|
|
10603
|
-
*/
|
|
10604
|
-
default_resolution: DefaultResolution | null;
|
|
10605
10113
|
/**
|
|
10606
10114
|
* How the session ended; null until it is terminal.
|
|
10607
10115
|
*/
|
|
@@ -10619,10 +10127,6 @@ interface Session {
|
|
|
10619
10127
|
* When the session last received a message.
|
|
10620
10128
|
*/
|
|
10621
10129
|
last_message_at: string | null;
|
|
10622
|
-
/**
|
|
10623
|
-
* A live summary of the session's progress while it runs.
|
|
10624
|
-
*/
|
|
10625
|
-
live_summary: string | null;
|
|
10626
10130
|
/**
|
|
10627
10131
|
* Caller-supplied metadata key-value pairs.
|
|
10628
10132
|
*/
|
|
@@ -10639,14 +10143,6 @@ interface Session {
|
|
|
10639
10143
|
*/
|
|
10640
10144
|
prompt: string | null;
|
|
10641
10145
|
prompting: SessionPrompting;
|
|
10642
|
-
/**
|
|
10643
|
-
* Identifier of the sandbox the session runs in, if any.
|
|
10644
|
-
*/
|
|
10645
|
-
sandbox_id: string | null;
|
|
10646
|
-
/**
|
|
10647
|
-
* Key identifying the durable conversation this session belongs to, or null for single-shot sessions.
|
|
10648
|
-
*/
|
|
10649
|
-
session_key: string | null;
|
|
10650
10146
|
/**
|
|
10651
10147
|
* Lifecycle state of the durable conversation, or null for sessions without one.
|
|
10652
10148
|
*/
|
|
@@ -10659,7 +10155,11 @@ interface Session {
|
|
|
10659
10155
|
status_reason: string | null;
|
|
10660
10156
|
stopped: SessionStopped;
|
|
10661
10157
|
/**
|
|
10662
|
-
* The
|
|
10158
|
+
* The latest live summary of the session's progress while it runs, and when it was generated.
|
|
10159
|
+
*/
|
|
10160
|
+
summary: SessionSummary | null;
|
|
10161
|
+
/**
|
|
10162
|
+
* The public status projection; null on list/search responses, which do not derive it.
|
|
10663
10163
|
*/
|
|
10664
10164
|
surface: SessionSurface | null;
|
|
10665
10165
|
tokens: SessionTokens;
|
|
@@ -10667,14 +10167,434 @@ interface Session {
|
|
|
10667
10167
|
* When the session was last updated.
|
|
10668
10168
|
*/
|
|
10669
10169
|
updated_at: string;
|
|
10170
|
+
}
|
|
10171
|
+
/**
|
|
10172
|
+
* The agent that ran: the config the session executed, where that config came from, and any override merged into it.
|
|
10173
|
+
*/
|
|
10174
|
+
interface SessionAgent {
|
|
10175
|
+
config: AgentConfig;
|
|
10670
10176
|
/**
|
|
10671
|
-
* Identifier of the
|
|
10177
|
+
* 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.
|
|
10672
10178
|
*/
|
|
10673
|
-
|
|
10179
|
+
config_id: string | null;
|
|
10674
10180
|
/**
|
|
10675
|
-
*
|
|
10181
|
+
* 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.
|
|
10676
10182
|
*/
|
|
10677
|
-
|
|
10183
|
+
override: {
|
|
10184
|
+
[k: string]: unknown;
|
|
10185
|
+
} | null;
|
|
10186
|
+
source: AgentConfigSource;
|
|
10187
|
+
}
|
|
10188
|
+
/**
|
|
10189
|
+
* The agent config the session actually ran, frozen when the session was created.
|
|
10190
|
+
*/
|
|
10191
|
+
interface AgentConfig {
|
|
10192
|
+
budget: AgentConfigBudget;
|
|
10193
|
+
claude: AgentConfigClaude;
|
|
10194
|
+
codex: AgentConfigCodex | null;
|
|
10195
|
+
ellipsis: AgentConfigEllipsis;
|
|
10196
|
+
environment: AgentConfigEnvironment;
|
|
10197
|
+
input: AgentConfigInput | null;
|
|
10198
|
+
llm: AgentConfigLlm;
|
|
10199
|
+
mcp_servers: (string | AgentConfigMcpServer)[];
|
|
10200
|
+
output: AgentConfigOutput | null;
|
|
10201
|
+
permissions: AgentConfigPermissions;
|
|
10202
|
+
skills: AgentConfigSkill[];
|
|
10203
|
+
trigger: (AgentConfigCronTrigger | AgentConfigReactTrigger | AgentConfigMentionTrigger) | null;
|
|
10204
|
+
}
|
|
10205
|
+
interface AgentConfigBudget {
|
|
10206
|
+
day: number | null;
|
|
10207
|
+
month: number | null;
|
|
10208
|
+
session: number | null;
|
|
10209
|
+
week: number | null;
|
|
10210
|
+
}
|
|
10211
|
+
interface AgentConfigClaude {
|
|
10212
|
+
effort: EffortLevel | null;
|
|
10213
|
+
fallback_model: string | null;
|
|
10214
|
+
max_turns: number | null;
|
|
10215
|
+
model: string;
|
|
10216
|
+
settings: AgentConfigSettingsRef | null;
|
|
10217
|
+
system: string | AgentConfigSystemFileRef | (string | AgentConfigSystemFileRef)[];
|
|
10218
|
+
}
|
|
10219
|
+
/**
|
|
10220
|
+
* A config-declared Claude Code settings.json, resolved at run start and
|
|
10221
|
+
* passed to `claude --settings <path>`. That is the CLI settings tier — BELOW
|
|
10222
|
+
* Ellipsis's managed-settings.json floor — so it customizes behavior (model
|
|
10223
|
+
* permissions, includeCoAuthoredBy, statusLine, ...) but can never weaken a
|
|
10224
|
+
* security setting. Lets a team point the cloud agent at the same settings file
|
|
10225
|
+
* they already use with Claude Code locally instead of re-encoding it as YAML.
|
|
10226
|
+
*/
|
|
10227
|
+
interface AgentConfigSettingsRef {
|
|
10228
|
+
path: string;
|
|
10229
|
+
repository: AgentConfigRepository | null;
|
|
10230
|
+
}
|
|
10231
|
+
interface AgentConfigRepository {
|
|
10232
|
+
name: string;
|
|
10233
|
+
owner: string | null;
|
|
10234
|
+
ref: string | null;
|
|
10235
|
+
}
|
|
10236
|
+
interface AgentConfigSystemFileRef {
|
|
10237
|
+
file: string;
|
|
10238
|
+
repository: AgentConfigRepository | null;
|
|
10239
|
+
}
|
|
10240
|
+
/**
|
|
10241
|
+
* The `codex:` block — run this agent on OpenAI's Codex CLI instead of
|
|
10242
|
+
* Claude Code. Declaring the block at all is what selects the harness
|
|
10243
|
+
* (`AgentConfig.harness`).
|
|
10244
|
+
*
|
|
10245
|
+
* Deliberately a small subset of `AgentConfigClaude`: the fields omitted here
|
|
10246
|
+
* are ones Codex has no equivalent for (`effort`, `fallback_model`,
|
|
10247
|
+
* `settings`) or that the platform does not yet wire through for this harness
|
|
10248
|
+
* (`max_turns`, `skills`, MCP servers). They are omitted rather than
|
|
10249
|
+
* accepted-and-ignored, because `StrictConfigModel` forbids extra keys — so a
|
|
10250
|
+
* config that sets one fails loudly at parse time instead of silently not doing
|
|
10251
|
+
* it. The budget still bounds a run regardless.
|
|
10252
|
+
*/
|
|
10253
|
+
interface AgentConfigCodex {
|
|
10254
|
+
model: string;
|
|
10255
|
+
system: string | AgentConfigSystemFileRef | (string | AgentConfigSystemFileRef)[];
|
|
10256
|
+
}
|
|
10257
|
+
/**
|
|
10258
|
+
* The Ellipsis product namespace for a config file: which schema this is
|
|
10259
|
+
* (`version`), the human-facing identity (`name`/`description`), freeform
|
|
10260
|
+
* organizational `metadata`, whether the agent is `enabled`, and the
|
|
10261
|
+
* human-access flag `interactive`. The presence of a top-level `ellipsis:`
|
|
10262
|
+
* mapping is what marks a YAML file as an Ellipsis agent config (vs arbitrary
|
|
10263
|
+
* YAML that merely lives under a config directory) — see
|
|
10264
|
+
* `yaml_is_ellipsis_config`.
|
|
10265
|
+
*
|
|
10266
|
+
* `enabled`/`interactive` are agent behavior, not freeform metadata, so they
|
|
10267
|
+
* stay inside the config `sha` (only `metadata` is sha-excluded).
|
|
10268
|
+
* `interactive` lets a human `agent session connect` to a live session (CLI
|
|
10269
|
+
* relay). It does not decide whether a session is ephemeral or durable — that
|
|
10270
|
+
* is the trigger's job.
|
|
10271
|
+
*/
|
|
10272
|
+
interface AgentConfigEllipsis {
|
|
10273
|
+
description: string | null;
|
|
10274
|
+
enabled: boolean;
|
|
10275
|
+
interactive: boolean;
|
|
10276
|
+
metadata: AgentConfigMetadata;
|
|
10277
|
+
name: string | null;
|
|
10278
|
+
version: string;
|
|
10279
|
+
}
|
|
10280
|
+
interface AgentConfigMetadata {
|
|
10281
|
+
annotations: {
|
|
10282
|
+
[k: string]: string;
|
|
10283
|
+
};
|
|
10284
|
+
labels: string[];
|
|
10285
|
+
}
|
|
10286
|
+
/**
|
|
10287
|
+
* Everything about the environment (the sandbox) the agent runs in: which
|
|
10288
|
+
* `repositories` are cloned into it, which environment `variables` it gets,
|
|
10289
|
+
* its `compute` sizing, how its `image` is customized, and lifecycle `hooks`.
|
|
10290
|
+
* What the agent may *do* from that environment is the top-level
|
|
10291
|
+
* `permissions:` block, not this one.
|
|
10292
|
+
*
|
|
10293
|
+
* Each `variables` entry names a variable to inject; with an inline `value` it
|
|
10294
|
+
* is hardcoded, without one it is resolved from the account's sandbox-secrets
|
|
10295
|
+
* store. Only the named variables reach this agent; the rest of the account's
|
|
10296
|
+
* stored variables never do. This is how a config brings in the config and
|
|
10297
|
+
* credentials a custom CLI needs.
|
|
10298
|
+
*/
|
|
10299
|
+
interface AgentConfigEnvironment {
|
|
10300
|
+
compute: AgentConfigCompute;
|
|
10301
|
+
hooks: AgentConfigEnvironmentHooks;
|
|
10302
|
+
image: AgentConfigEnvironmentImage;
|
|
10303
|
+
repositories: AgentConfigRepository[];
|
|
10304
|
+
variables: AgentConfigEnvironmentVariable[];
|
|
10305
|
+
}
|
|
10306
|
+
/**
|
|
10307
|
+
* Sandbox compute sizing. Every field is optional; None inherits the
|
|
10308
|
+
* platform default (1 vCPU / 4096 MiB / 3600s — see DEFAULT_MODAL_* in
|
|
10309
|
+
* models/ellipsis/sandboxes/sandbox.py). A resolved value outside the platform
|
|
10310
|
+
* bounds fails validation loudly (a sync error on the config) rather than
|
|
10311
|
+
* being clamped silently.
|
|
10312
|
+
*
|
|
10313
|
+
* `memory` and `timeout` each accept a shorthand string ("8GB", "30m") or an
|
|
10314
|
+
* explicit units object ({gb: 8}, {minutes: 30}); the `memory_mib` /
|
|
10315
|
+
* `timeout_seconds` properties resolve either form to the canonical integer
|
|
10316
|
+
* the sandbox driver consumes.
|
|
10317
|
+
*
|
|
10318
|
+
* `timeout` is the max wall-clock the agent may run before the sandbox is
|
|
10319
|
+
* killed, capped at 1h (MAX_SANDBOX_TIMEOUT_SECONDS — equal to the default, so
|
|
10320
|
+
* today the knob only shortens a session; the cap matches the 1-hour validity
|
|
10321
|
+
* of the sandbox's GitHub token). The worker's lease/visibility heartbeat
|
|
10322
|
+
* ceiling is derived from that cap, so a run at the max stays owned by its
|
|
10323
|
+
* worker for its whole life.
|
|
10324
|
+
*
|
|
10325
|
+
* Compute is billed on the requested allocation over the sandbox's
|
|
10326
|
+
* wall-clock lifetime, so a bigger/longer box costs proportionally more.
|
|
10327
|
+
*/
|
|
10328
|
+
interface AgentConfigCompute {
|
|
10329
|
+
cpu: number | null;
|
|
10330
|
+
memory: string | AgentConfigMemorySize | null;
|
|
10331
|
+
timeout: string | AgentConfigDuration | null;
|
|
10332
|
+
}
|
|
10333
|
+
/**
|
|
10334
|
+
* A memory size as explicit units, summed (binary: 1GB = 1024MB = 1024MiB).
|
|
10335
|
+
* Set any of `gb`/`mb` (at least one). The alternative to the `8GB`-style
|
|
10336
|
+
* shorthand string.
|
|
10337
|
+
*/
|
|
10338
|
+
interface AgentConfigMemorySize {
|
|
10339
|
+
gb: number | null;
|
|
10340
|
+
mb: number | null;
|
|
10341
|
+
}
|
|
10342
|
+
/**
|
|
10343
|
+
* A duration as explicit units, summed. Set any of `hours`/`minutes`/
|
|
10344
|
+
* `seconds` (at least one). The alternative to the `30m`-style shorthand
|
|
10345
|
+
* string wherever a duration is accepted.
|
|
10346
|
+
*/
|
|
10347
|
+
interface AgentConfigDuration {
|
|
10348
|
+
hours: number | null;
|
|
10349
|
+
minutes: number | null;
|
|
10350
|
+
seconds: number | null;
|
|
10351
|
+
}
|
|
10352
|
+
/**
|
|
10353
|
+
* Shell scripts run at points in the sandbox lifecycle, each as the sandbox
|
|
10354
|
+
* user with the sandbox's environment variables available. A non-zero exit
|
|
10355
|
+
* fails the run (exit_status = LIFECYCLE_HOOK_FAILED) and is not retried.
|
|
10356
|
+
*
|
|
10357
|
+
* `post_start` runs after the container starts, before any repo is cloned —
|
|
10358
|
+
* repo-independent setup (authenticate a CLI, e.g. `doppler setup`). On Modal
|
|
10359
|
+
* the repo is baked into the image so it is incidentally present, but
|
|
10360
|
+
* `post_start` must not depend on repo contents (that's `post_clone`).
|
|
10361
|
+
*
|
|
10362
|
+
* `post_clone` runs after all repos are cloned/checked out, before the agent —
|
|
10363
|
+
* repo-dependent setup (`pip install -r requirements.txt`, codegen).
|
|
10364
|
+
*
|
|
10365
|
+
* Hooks run on every run and their output is never cached. A dependency
|
|
10366
|
+
* install whose result should be reused across runs belongs in `image.setup`
|
|
10367
|
+
* (baked into the cached image) instead; keep hooks for per-run work — e.g.
|
|
10368
|
+
* anything that touches run-scoped credentials.
|
|
10369
|
+
*/
|
|
10370
|
+
interface AgentConfigEnvironmentHooks {
|
|
10371
|
+
post_clone: string | null;
|
|
10372
|
+
post_start: string | null;
|
|
10373
|
+
}
|
|
10374
|
+
/**
|
|
10375
|
+
* How to customize the container image the agent runs in. You
|
|
10376
|
+
* contribute appended layers (`dockerfile_append`) and a build-time script
|
|
10377
|
+
* (`setup`) only — Ellipsis owns FROM / base tooling / entrypoint / user.
|
|
10378
|
+
* Today only inline bodies are supported; a file reference (resolved at the
|
|
10379
|
+
* run's SHA) will come later.
|
|
10380
|
+
*
|
|
10381
|
+
* The split: `dockerfile_append` runs when the image is assembled, before any
|
|
10382
|
+
* repo exists — toolchain installs (a package manager binary, apt packages).
|
|
10383
|
+
* `setup` runs at image-build time *after* the configured repositories are
|
|
10384
|
+
* checked out, and its output is captured by the filesystem snapshot that
|
|
10385
|
+
* becomes the cached image — dependency installs (`poetry install`,
|
|
10386
|
+
* `npm install`), so later runs start with deps already on disk. Neither runs
|
|
10387
|
+
* per run; that's `hooks.post_start` / `hooks.post_clone`.
|
|
10388
|
+
*/
|
|
10389
|
+
interface AgentConfigEnvironmentImage {
|
|
10390
|
+
dockerfile_append: string | null;
|
|
10391
|
+
setup: string | null;
|
|
10392
|
+
}
|
|
10393
|
+
/**
|
|
10394
|
+
* One environment variable injected into the agent's sandbox.
|
|
10395
|
+
*
|
|
10396
|
+
* `value`, when set, is a literal injected as-is — use it for non-secret
|
|
10397
|
+
* config (LOG_LEVEL, an API base URL). When `value` is omitted the value is
|
|
10398
|
+
* resolved at run time from the account's sandbox-secrets store (dashboard
|
|
10399
|
+
* / `PUT /v1/secrets`) by `name`, so a secret can be injected without
|
|
10400
|
+
* ever putting it in the config file. Either way the variable only reaches
|
|
10401
|
+
* agents that name it.
|
|
10402
|
+
*/
|
|
10403
|
+
interface AgentConfigEnvironmentVariable {
|
|
10404
|
+
name: string;
|
|
10405
|
+
value: string | null;
|
|
10406
|
+
}
|
|
10407
|
+
/**
|
|
10408
|
+
* The typed input contract: what goes INTO a session (the trigger is
|
|
10409
|
+
* when it happens; this is what goes in).
|
|
10410
|
+
*
|
|
10411
|
+
* `json_schema` types the payload a caller-started session takes
|
|
10412
|
+
* (`POST /v1/sessions` `input`, validated at the door; required when
|
|
10413
|
+
* declared). It is illegal on a react-triggered agent — react payloads are
|
|
10414
|
+
* platform-shaped (the published surface field sets), not caller-shaped.
|
|
10415
|
+
*
|
|
10416
|
+
* `message` is the initial-message template: exact `{{path}}` substitution
|
|
10417
|
+
* over the caller payload (or, on a react agent, over the surface's
|
|
10418
|
+
* published fields), no conditionals/loops/filters. Refs are validated at
|
|
10419
|
+
* deploy time against the governing field set (see AgentConfig's
|
|
10420
|
+
* `_check_input`).
|
|
10421
|
+
*/
|
|
10422
|
+
interface AgentConfigInput {
|
|
10423
|
+
json_schema: {
|
|
10424
|
+
[k: string]: unknown;
|
|
10425
|
+
} | null;
|
|
10426
|
+
message: string | null;
|
|
10427
|
+
}
|
|
10428
|
+
/**
|
|
10429
|
+
* Where this agent's completions go.
|
|
10430
|
+
*
|
|
10431
|
+
* Defaults to Ellipsis's own LLM proxy (our Anthropic/Bedrock account, or the
|
|
10432
|
+
* account-wide BYO provider if one is enabled). Setting `proxy` to the id of a
|
|
10433
|
+
* proxy registered on the models settings page routes THIS agent's
|
|
10434
|
+
* completions through that gateway instead.
|
|
10435
|
+
*
|
|
10436
|
+
* Opt-in per agent by design: registering a proxy does not silently move any
|
|
10437
|
+
* existing agent's traffic. The id is account-scoped, so naming another
|
|
10438
|
+
* account's id is a terminal config error, not a route.
|
|
10439
|
+
*/
|
|
10440
|
+
interface AgentConfigLlm {
|
|
10441
|
+
proxy: string | null;
|
|
10442
|
+
}
|
|
10443
|
+
/**
|
|
10444
|
+
* One built-in MCP server this agent opts into by name (`linear`/`slack`).
|
|
10445
|
+
* This is a name reference over the connected built-in set, NOT a custom-server
|
|
10446
|
+
* definition — there is no command/url/headers shape (that was the old,
|
|
10447
|
+
* removed field, and Ellipsis does not support bring-your-own MCP servers).
|
|
10448
|
+
* It only matters when the named integration is set to `opt_in` inclusion; an
|
|
10449
|
+
* integration in the default `all_sessions` mode is added regardless.
|
|
10450
|
+
*/
|
|
10451
|
+
interface AgentConfigMcpServer {
|
|
10452
|
+
name: string;
|
|
10453
|
+
}
|
|
10454
|
+
/**
|
|
10455
|
+
* The typed output contract: the JSON Schema the agent must exit through
|
|
10456
|
+
* (the StructuredOutput exit tool). Read back via
|
|
10457
|
+
* GET /v1/sessions/{id}/output.
|
|
10458
|
+
*/
|
|
10459
|
+
interface AgentConfigOutput {
|
|
10460
|
+
json_schema: {
|
|
10461
|
+
[k: string]: unknown;
|
|
10462
|
+
};
|
|
10463
|
+
}
|
|
10464
|
+
/**
|
|
10465
|
+
* What the agent is allowed to touch, per credential the platform mints
|
|
10466
|
+
* into its sandbox. Distinct from `environment:`, which is where the agent
|
|
10467
|
+
* runs; this is what it may do from there.
|
|
10468
|
+
*
|
|
10469
|
+
* `ellipsis` scopes the sandbox's Ellipsis API token
|
|
10470
|
+
* (`ELLIPSIS_API_TOKEN`, what the in-sandbox `agent` CLI authenticates
|
|
10471
|
+
* with). `true` / the string `all` (the default) grant the full sandbox
|
|
10472
|
+
* ceiling — everything a sandbox token can ever do. A map narrows it per
|
|
10473
|
+
* resource (see `AgentConfigEllipsisPermissions`); the minted token carries
|
|
10474
|
+
* the intersection, so a config can only ever reduce access. `false` fails
|
|
10475
|
+
* validation — an agent with no API token cannot report its own progress.
|
|
10476
|
+
*
|
|
10477
|
+
* `github` scopes the sandbox's GitHub installation token (`GH_TOKEN`) —
|
|
10478
|
+
* see `AgentConfigGithubPermissions`. GitHub enforces it at mint time.
|
|
10479
|
+
*/
|
|
10480
|
+
interface AgentConfigPermissions {
|
|
10481
|
+
ellipsis: (true | 'all') | AgentConfigEllipsisPermissions;
|
|
10482
|
+
github: AgentConfigGithubPermissions;
|
|
10483
|
+
}
|
|
10484
|
+
/**
|
|
10485
|
+
* `permissions.ellipsis` as a map: resource → level | grant | list of
|
|
10486
|
+
* grants. Levels are hierarchical (read < write < delete), so `write`
|
|
10487
|
+
* includes `read`. An unlisted resource is denied. The whole block is
|
|
10488
|
+
* intersected with the platform's sandbox ceiling at token mint — it can
|
|
10489
|
+
* narrow what a sandbox token may do, never exceed it.
|
|
10490
|
+
*/
|
|
10491
|
+
interface AgentConfigEllipsisPermissions {
|
|
10492
|
+
[k: string]: Level | EllipsisGrant | (Level | EllipsisGrant)[];
|
|
10493
|
+
}
|
|
10494
|
+
/**
|
|
10495
|
+
* One grant entry: a level, optionally narrowed to instances whose
|
|
10496
|
+
* natural key (a file's name, a memory's path, a secret's name, a config's
|
|
10497
|
+
* name, a session's id) matches any of the `match` globs.
|
|
10498
|
+
*/
|
|
10499
|
+
interface EllipsisGrant {
|
|
10500
|
+
level: Level;
|
|
10501
|
+
match: string[] | null;
|
|
10502
|
+
}
|
|
10503
|
+
/**
|
|
10504
|
+
* The agent's GitHub access: the scope of the installation token minted for
|
|
10505
|
+
* its sandbox — the credential `git`, `gh`, and the GitHub MCP server
|
|
10506
|
+
* authenticate with.
|
|
10507
|
+
*
|
|
10508
|
+
* By default the token carries the installation's full permissions on all of
|
|
10509
|
+
* the installation's repositories. `permissions` narrows what it may do:
|
|
10510
|
+
* the string `read_only` grants read access to contents, issues, metadata and
|
|
10511
|
+
* pull requests; a map requests explicit levels per GitHub App permission
|
|
10512
|
+
* scope (e.g. `{contents: read, pull_requests: write}`) and may never exceed
|
|
10513
|
+
* what the installation granted. `repositories` scopes the token to exactly
|
|
10514
|
+
* the listed repos, by name (they must belong to the installation).
|
|
10515
|
+
*
|
|
10516
|
+
* Restriction is enforced by GitHub, not by Ellipsis: the token itself is
|
|
10517
|
+
* minted with the reduced scope, so nothing running in the sandbox can
|
|
10518
|
+
* exceed it.
|
|
10519
|
+
*/
|
|
10520
|
+
interface AgentConfigGithubPermissions {
|
|
10521
|
+
permissions: 'read_only' | {
|
|
10522
|
+
[k: string]: string;
|
|
10523
|
+
} | null;
|
|
10524
|
+
repositories: string[] | null;
|
|
10525
|
+
}
|
|
10526
|
+
/**
|
|
10527
|
+
* One config-declared Claude Code skill: a repository directory containing
|
|
10528
|
+
* a SKILL.md, resolved at run start and installed at the sandbox's personal
|
|
10529
|
+
* skill level (`~/.claude/skills/<basename(path)>/`). This is how a config
|
|
10530
|
+
* brings in skills its cloned repositories don't provide — cross-repo refs
|
|
10531
|
+
* (an org-wide skills repo), public third-party repos, and repo-less runs.
|
|
10532
|
+
* Skills under a cloned repo's own `.claude/skills/` load by themselves and
|
|
10533
|
+
* don't need an entry here.
|
|
10534
|
+
*/
|
|
10535
|
+
interface AgentConfigSkill {
|
|
10536
|
+
path: string;
|
|
10537
|
+
repository: AgentConfigRepository | null;
|
|
10538
|
+
}
|
|
10539
|
+
interface AgentConfigCronTrigger {
|
|
10540
|
+
schedule: string;
|
|
10541
|
+
type: 'cron';
|
|
10542
|
+
}
|
|
10543
|
+
interface AgentConfigReactTrigger {
|
|
10544
|
+
issue: ReactIssue | null;
|
|
10545
|
+
linear_issue: ReactLinearIssue | null;
|
|
10546
|
+
pull_request: ReactPullRequest | null;
|
|
10547
|
+
push: ReactPush | null;
|
|
10548
|
+
sentry: ReactSentry | null;
|
|
10549
|
+
slack_channel: ReactSlackChannel | null;
|
|
10550
|
+
type: 'react';
|
|
10551
|
+
}
|
|
10552
|
+
interface ReactIssue {
|
|
10553
|
+
for: GithubAccountSelector;
|
|
10554
|
+
labels: string[];
|
|
10555
|
+
on: IssueAction[];
|
|
10556
|
+
repositories: RepositoryFilter;
|
|
10557
|
+
}
|
|
10558
|
+
/**
|
|
10559
|
+
* A selector of GitHub accounts — the `for:` audience gate on react
|
|
10560
|
+
* surfaces and code review pipelines, classified on the stable entity author
|
|
10561
|
+
* (the pusher for `push`, the PR author for a review). `users` selects human
|
|
10562
|
+
* accounts, `bots` selects bot accounts; each is a `GithubAccountFilter`
|
|
10563
|
+
* (include minus exclude, with bare bool/list shorthand).
|
|
10564
|
+
*/
|
|
10565
|
+
interface GithubAccountSelector {
|
|
10566
|
+
bots: GithubAccountFilter;
|
|
10567
|
+
users: GithubAccountFilter;
|
|
10568
|
+
}
|
|
10569
|
+
interface ReactLinearIssue {
|
|
10570
|
+
for: GithubAccountSelector;
|
|
10571
|
+
on: LinearIssueAction[];
|
|
10572
|
+
}
|
|
10573
|
+
interface ReactPullRequest {
|
|
10574
|
+
base: string[];
|
|
10575
|
+
draft: boolean | null;
|
|
10576
|
+
for: GithubAccountSelector;
|
|
10577
|
+
head: string[];
|
|
10578
|
+
labels: string[];
|
|
10579
|
+
on: PullRequestAction[];
|
|
10580
|
+
paths: string[];
|
|
10581
|
+
repositories: RepositoryFilter;
|
|
10582
|
+
}
|
|
10583
|
+
interface ReactPush {
|
|
10584
|
+
branch: string[];
|
|
10585
|
+
for: GithubAccountSelector;
|
|
10586
|
+
paths: string[];
|
|
10587
|
+
repositories: RepositoryFilter;
|
|
10588
|
+
}
|
|
10589
|
+
interface ReactSentry {
|
|
10590
|
+
on: SentryAction[];
|
|
10591
|
+
projects: string[];
|
|
10592
|
+
}
|
|
10593
|
+
interface ReactSlackChannel {
|
|
10594
|
+
}
|
|
10595
|
+
interface AgentConfigMentionTrigger {
|
|
10596
|
+
platforms: AgentConfigMentionPlatform[];
|
|
10597
|
+
type: 'mention';
|
|
10678
10598
|
}
|
|
10679
10599
|
/**
|
|
10680
10600
|
* The principal this session is attributed to.
|
|
@@ -10797,7 +10717,21 @@ interface SessionStopped {
|
|
|
10797
10717
|
by_user: GithubAccountSnippet | null;
|
|
10798
10718
|
}
|
|
10799
10719
|
/**
|
|
10800
|
-
*
|
|
10720
|
+
* A live one-line summary of what the session is working on, refreshed
|
|
10721
|
+
* every few steps while it runs.
|
|
10722
|
+
*/
|
|
10723
|
+
interface SessionSummary {
|
|
10724
|
+
/**
|
|
10725
|
+
* When this summary line was generated. Null on summaries written before generation time was tracked.
|
|
10726
|
+
*/
|
|
10727
|
+
created_at: string | null;
|
|
10728
|
+
/**
|
|
10729
|
+
* One-line description of what the session is working on.
|
|
10730
|
+
*/
|
|
10731
|
+
description: string;
|
|
10732
|
+
}
|
|
10733
|
+
/**
|
|
10734
|
+
* The three fields we expose.
|
|
10801
10735
|
*
|
|
10802
10736
|
* `use_enum_values=True` (from CustomBaseModel) stores the members as their
|
|
10803
10737
|
* string values, so this serializes to `{"session": "alive", "run": "waiting",
|
|
@@ -10954,22 +10888,9 @@ interface SessionFrame {
|
|
|
10954
10888
|
* The session's current state.
|
|
10955
10889
|
*/
|
|
10956
10890
|
interface Session1 {
|
|
10891
|
+
agent: SessionAgent;
|
|
10957
10892
|
attribution: SessionAttribution;
|
|
10958
10893
|
budget: SessionBudget;
|
|
10959
|
-
/**
|
|
10960
|
-
* Version of the client that started the session, if reported.
|
|
10961
|
-
*/
|
|
10962
|
-
client_version: string | null;
|
|
10963
|
-
/**
|
|
10964
|
-
* Identifier of the saved agent config the session ran on, if any.
|
|
10965
|
-
*/
|
|
10966
|
-
config_id: string | null;
|
|
10967
|
-
/**
|
|
10968
|
-
* The partial-config diff applied for this run; null when the config was unmodified.
|
|
10969
|
-
*/
|
|
10970
|
-
config_override: {
|
|
10971
|
-
[k: string]: unknown;
|
|
10972
|
-
} | null;
|
|
10973
10894
|
/**
|
|
10974
10895
|
* The "owner/name" repository context the session was started in, if any.
|
|
10975
10896
|
*/
|
|
@@ -10979,10 +10900,6 @@ interface Session1 {
|
|
|
10979
10900
|
* When the session was created.
|
|
10980
10901
|
*/
|
|
10981
10902
|
created_at: string;
|
|
10982
|
-
/**
|
|
10983
|
-
* How the session's config was resolved from the account's defaults, when no explicit config was given.
|
|
10984
|
-
*/
|
|
10985
|
-
default_resolution: DefaultResolution | null;
|
|
10986
10903
|
/**
|
|
10987
10904
|
* How the session ended; null until it is terminal.
|
|
10988
10905
|
*/
|
|
@@ -11000,10 +10917,6 @@ interface Session1 {
|
|
|
11000
10917
|
* When the session last received a message.
|
|
11001
10918
|
*/
|
|
11002
10919
|
last_message_at: string | null;
|
|
11003
|
-
/**
|
|
11004
|
-
* A live summary of the session's progress while it runs.
|
|
11005
|
-
*/
|
|
11006
|
-
live_summary: string | null;
|
|
11007
10920
|
/**
|
|
11008
10921
|
* Caller-supplied metadata key-value pairs.
|
|
11009
10922
|
*/
|
|
@@ -11020,14 +10933,6 @@ interface Session1 {
|
|
|
11020
10933
|
*/
|
|
11021
10934
|
prompt: string | null;
|
|
11022
10935
|
prompting: SessionPrompting;
|
|
11023
|
-
/**
|
|
11024
|
-
* Identifier of the sandbox the session runs in, if any.
|
|
11025
|
-
*/
|
|
11026
|
-
sandbox_id: string | null;
|
|
11027
|
-
/**
|
|
11028
|
-
* Key identifying the durable conversation this session belongs to, or null for single-shot sessions.
|
|
11029
|
-
*/
|
|
11030
|
-
session_key: string | null;
|
|
11031
10936
|
/**
|
|
11032
10937
|
* Lifecycle state of the durable conversation, or null for sessions without one.
|
|
11033
10938
|
*/
|
|
@@ -11040,7 +10945,11 @@ interface Session1 {
|
|
|
11040
10945
|
status_reason: string | null;
|
|
11041
10946
|
stopped: SessionStopped;
|
|
11042
10947
|
/**
|
|
11043
|
-
* The
|
|
10948
|
+
* The latest live summary of the session's progress while it runs, and when it was generated.
|
|
10949
|
+
*/
|
|
10950
|
+
summary: SessionSummary | null;
|
|
10951
|
+
/**
|
|
10952
|
+
* The public status projection; null on list/search responses, which do not derive it.
|
|
11044
10953
|
*/
|
|
11045
10954
|
surface: SessionSurface | null;
|
|
11046
10955
|
tokens: SessionTokens;
|
|
@@ -11048,14 +10957,6 @@ interface Session1 {
|
|
|
11048
10957
|
* When the session was last updated.
|
|
11049
10958
|
*/
|
|
11050
10959
|
updated_at: string;
|
|
11051
|
-
/**
|
|
11052
|
-
* Identifier of the webhook event that triggered the session, if any.
|
|
11053
|
-
*/
|
|
11054
|
-
webhook_id: string | null;
|
|
11055
|
-
/**
|
|
11056
|
-
* Type of the webhook event that triggered the session, if any.
|
|
11057
|
-
*/
|
|
11058
|
-
webhook_type: WebhookType | null;
|
|
11059
10960
|
}
|
|
11060
10961
|
/**
|
|
11061
10962
|
* Fire-and-forget partial assistant output for the current response.
|
|
@@ -11136,4 +11037,4 @@ type ReviewRequester = components['schemas']['ReviewRequester'];
|
|
|
11136
11037
|
type ReviewFinding = components['schemas']['ReviewFinding'];
|
|
11137
11038
|
type Finding = ReviewFinding;
|
|
11138
11039
|
|
|
11139
|
-
export type {
|
|
11040
|
+
export type { AgentConfigSource as A, BudgetSource as B, CreateReviewRequest as C, DeltaFrame as D, ErrorFrame as E, Finding as F, GithubAccountSnippet as G, Harness as H, SessionPr as I, SessionPrompting as J, SessionRecord as K, SessionRecordsListResponse as L, SessionResponse as M, SessionSource as N, SessionState as O, ParentKind as P, SessionStatus as Q, RecordsAppendFrame as R, SendSessionMessageRequest as S, SessionStreamFrame as T, SessionSurface as U, SessionsListResponse as V, SnapshotFrame as W, StreamFrame as X, TokensInfo as Y, paths as Z, AttributionType as a, DoneFrame as b, components as c, GithubAccountType as d, HeartbeatFrame as e, PromptBlockedReason as f, ResolvedReviewScope as g, Review as h, ReviewConfiguration as i, ReviewCounters as j, ReviewFinding as k, ReviewRequester as l, ReviewScope as m, ReviewScopeKind as n, ReviewStage as o, ReviewedCommit as p, ReviewsListResponse as q, Session as r, SessionExecution as s, SessionExecutionsListResponse as t, SessionExitStatus as u, SessionFrame as v, SessionLiveness as w, SessionMessage as x, SessionMessageResponse as y, SessionMessageStatus as z };
|