@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,1247 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$defs": {
|
|
3
|
+
"AgentConfig": {
|
|
4
|
+
"additionalProperties": false,
|
|
5
|
+
"properties": {
|
|
6
|
+
"budget": {
|
|
7
|
+
"$ref": "#/$defs/AgentConfigBudget",
|
|
8
|
+
"default": {
|
|
9
|
+
"day": null,
|
|
10
|
+
"month": null,
|
|
11
|
+
"session": null,
|
|
12
|
+
"week": null
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"claude": {
|
|
16
|
+
"$ref": "#/$defs/AgentConfigClaude",
|
|
17
|
+
"default": {
|
|
18
|
+
"effort": null,
|
|
19
|
+
"fallback_model": null,
|
|
20
|
+
"max_turns": null,
|
|
21
|
+
"model": "claude-opus-5",
|
|
22
|
+
"settings": null,
|
|
23
|
+
"system": ""
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"codex": {
|
|
27
|
+
"anyOf": [
|
|
28
|
+
{
|
|
29
|
+
"$ref": "#/$defs/AgentConfigCodex"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"type": "null"
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"default": null
|
|
36
|
+
},
|
|
37
|
+
"ellipsis": {
|
|
38
|
+
"$ref": "#/$defs/AgentConfigEllipsis",
|
|
39
|
+
"default": {
|
|
40
|
+
"description": null,
|
|
41
|
+
"enabled": true,
|
|
42
|
+
"interactive": true,
|
|
43
|
+
"metadata": {
|
|
44
|
+
"annotations": {},
|
|
45
|
+
"labels": []
|
|
46
|
+
},
|
|
47
|
+
"name": null,
|
|
48
|
+
"version": "v1"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"environment": {
|
|
52
|
+
"$ref": "#/$defs/AgentConfigEnvironment",
|
|
53
|
+
"default": {
|
|
54
|
+
"compute": {
|
|
55
|
+
"cpu": null,
|
|
56
|
+
"memory": null,
|
|
57
|
+
"timeout": null
|
|
58
|
+
},
|
|
59
|
+
"hooks": {
|
|
60
|
+
"post_clone": null,
|
|
61
|
+
"post_start": null
|
|
62
|
+
},
|
|
63
|
+
"image": {
|
|
64
|
+
"dockerfile_append": null,
|
|
65
|
+
"setup": null
|
|
66
|
+
},
|
|
67
|
+
"repositories": [],
|
|
68
|
+
"variables": []
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"input": {
|
|
72
|
+
"anyOf": [
|
|
73
|
+
{
|
|
74
|
+
"$ref": "#/$defs/AgentConfigInput"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"type": "null"
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"default": null
|
|
81
|
+
},
|
|
82
|
+
"llm": {
|
|
83
|
+
"$ref": "#/$defs/AgentConfigLlm",
|
|
84
|
+
"default": {
|
|
85
|
+
"proxy": null
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"mcp_servers": {
|
|
89
|
+
"default": [],
|
|
90
|
+
"items": {
|
|
91
|
+
"anyOf": [
|
|
92
|
+
{
|
|
93
|
+
"type": "string"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"$ref": "#/$defs/AgentConfigMcpServer"
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
"title": "Mcp Servers",
|
|
101
|
+
"type": "array"
|
|
102
|
+
},
|
|
103
|
+
"output": {
|
|
104
|
+
"anyOf": [
|
|
105
|
+
{
|
|
106
|
+
"$ref": "#/$defs/AgentConfigOutput"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"type": "null"
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"default": null
|
|
113
|
+
},
|
|
114
|
+
"permissions": {
|
|
115
|
+
"$ref": "#/$defs/AgentConfigPermissions",
|
|
116
|
+
"default": {
|
|
117
|
+
"ellipsis": true,
|
|
118
|
+
"github": {
|
|
119
|
+
"permissions": null,
|
|
120
|
+
"repositories": null
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"skills": {
|
|
125
|
+
"default": [],
|
|
126
|
+
"items": {
|
|
127
|
+
"$ref": "#/$defs/AgentConfigSkill"
|
|
128
|
+
},
|
|
129
|
+
"title": "Skills",
|
|
130
|
+
"type": "array"
|
|
131
|
+
},
|
|
132
|
+
"trigger": {
|
|
133
|
+
"anyOf": [
|
|
134
|
+
{
|
|
135
|
+
"discriminator": {
|
|
136
|
+
"mapping": {
|
|
137
|
+
"cron": "#/$defs/AgentConfigCronTrigger",
|
|
138
|
+
"mention": "#/$defs/AgentConfigMentionTrigger",
|
|
139
|
+
"react": "#/$defs/AgentConfigReactTrigger"
|
|
140
|
+
},
|
|
141
|
+
"propertyName": "type"
|
|
142
|
+
},
|
|
143
|
+
"oneOf": [
|
|
144
|
+
{
|
|
145
|
+
"$ref": "#/$defs/AgentConfigCronTrigger"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"$ref": "#/$defs/AgentConfigReactTrigger"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"$ref": "#/$defs/AgentConfigMentionTrigger"
|
|
152
|
+
}
|
|
153
|
+
]
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"type": "null"
|
|
157
|
+
}
|
|
158
|
+
],
|
|
159
|
+
"default": null,
|
|
160
|
+
"title": "Trigger"
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
"required": [
|
|
164
|
+
"budget",
|
|
165
|
+
"claude",
|
|
166
|
+
"codex",
|
|
167
|
+
"ellipsis",
|
|
168
|
+
"environment",
|
|
169
|
+
"input",
|
|
170
|
+
"llm",
|
|
171
|
+
"mcp_servers",
|
|
172
|
+
"output",
|
|
173
|
+
"permissions",
|
|
174
|
+
"skills",
|
|
175
|
+
"trigger"
|
|
176
|
+
],
|
|
177
|
+
"title": "AgentConfig",
|
|
178
|
+
"type": "object"
|
|
179
|
+
},
|
|
180
|
+
"AgentConfigBudget": {
|
|
181
|
+
"additionalProperties": false,
|
|
182
|
+
"properties": {
|
|
183
|
+
"day": {
|
|
184
|
+
"anyOf": [
|
|
185
|
+
{
|
|
186
|
+
"type": "number"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"type": "null"
|
|
190
|
+
}
|
|
191
|
+
],
|
|
192
|
+
"default": null,
|
|
193
|
+
"title": "Day"
|
|
194
|
+
},
|
|
195
|
+
"month": {
|
|
196
|
+
"anyOf": [
|
|
197
|
+
{
|
|
198
|
+
"type": "number"
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"type": "null"
|
|
202
|
+
}
|
|
203
|
+
],
|
|
204
|
+
"default": null,
|
|
205
|
+
"title": "Month"
|
|
206
|
+
},
|
|
207
|
+
"session": {
|
|
208
|
+
"anyOf": [
|
|
209
|
+
{
|
|
210
|
+
"type": "number"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"type": "null"
|
|
214
|
+
}
|
|
215
|
+
],
|
|
216
|
+
"default": null,
|
|
217
|
+
"title": "Session"
|
|
218
|
+
},
|
|
219
|
+
"week": {
|
|
220
|
+
"anyOf": [
|
|
221
|
+
{
|
|
222
|
+
"type": "number"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"type": "null"
|
|
226
|
+
}
|
|
227
|
+
],
|
|
228
|
+
"default": null,
|
|
229
|
+
"title": "Week"
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
"required": [
|
|
233
|
+
"day",
|
|
234
|
+
"month",
|
|
235
|
+
"session",
|
|
236
|
+
"week"
|
|
237
|
+
],
|
|
238
|
+
"title": "AgentConfigBudget",
|
|
239
|
+
"type": "object"
|
|
240
|
+
},
|
|
241
|
+
"AgentConfigClaude": {
|
|
242
|
+
"additionalProperties": false,
|
|
243
|
+
"properties": {
|
|
244
|
+
"effort": {
|
|
245
|
+
"anyOf": [
|
|
246
|
+
{
|
|
247
|
+
"$ref": "#/$defs/EffortLevel"
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"type": "null"
|
|
251
|
+
}
|
|
252
|
+
],
|
|
253
|
+
"default": null
|
|
254
|
+
},
|
|
255
|
+
"fallback_model": {
|
|
256
|
+
"anyOf": [
|
|
257
|
+
{
|
|
258
|
+
"type": "string"
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"type": "null"
|
|
262
|
+
}
|
|
263
|
+
],
|
|
264
|
+
"default": null,
|
|
265
|
+
"title": "Fallback Model"
|
|
266
|
+
},
|
|
267
|
+
"max_turns": {
|
|
268
|
+
"anyOf": [
|
|
269
|
+
{
|
|
270
|
+
"exclusiveMinimum": 0,
|
|
271
|
+
"type": "integer"
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"type": "null"
|
|
275
|
+
}
|
|
276
|
+
],
|
|
277
|
+
"default": null,
|
|
278
|
+
"title": "Max Turns"
|
|
279
|
+
},
|
|
280
|
+
"model": {
|
|
281
|
+
"default": "claude-opus-5",
|
|
282
|
+
"title": "Model",
|
|
283
|
+
"type": "string"
|
|
284
|
+
},
|
|
285
|
+
"settings": {
|
|
286
|
+
"anyOf": [
|
|
287
|
+
{
|
|
288
|
+
"$ref": "#/$defs/AgentConfigSettingsRef"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"type": "null"
|
|
292
|
+
}
|
|
293
|
+
],
|
|
294
|
+
"default": null
|
|
295
|
+
},
|
|
296
|
+
"system": {
|
|
297
|
+
"anyOf": [
|
|
298
|
+
{
|
|
299
|
+
"type": "string"
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"$ref": "#/$defs/AgentConfigSystemFileRef"
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
"items": {
|
|
306
|
+
"anyOf": [
|
|
307
|
+
{
|
|
308
|
+
"type": "string"
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"$ref": "#/$defs/AgentConfigSystemFileRef"
|
|
312
|
+
}
|
|
313
|
+
]
|
|
314
|
+
},
|
|
315
|
+
"type": "array"
|
|
316
|
+
}
|
|
317
|
+
],
|
|
318
|
+
"default": "",
|
|
319
|
+
"title": "System"
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
"required": [
|
|
323
|
+
"effort",
|
|
324
|
+
"fallback_model",
|
|
325
|
+
"max_turns",
|
|
326
|
+
"model",
|
|
327
|
+
"settings",
|
|
328
|
+
"system"
|
|
329
|
+
],
|
|
330
|
+
"title": "AgentConfigClaude",
|
|
331
|
+
"type": "object"
|
|
332
|
+
},
|
|
333
|
+
"AgentConfigCodex": {
|
|
334
|
+
"additionalProperties": false,
|
|
335
|
+
"description": "The `codex:` block \u2014 run this agent on OpenAI's Codex CLI instead of\nClaude Code. Declaring the block at all is what selects the harness\n(`AgentConfig.harness`).\n\nDeliberately a small subset of `AgentConfigClaude`: the fields omitted here\nare ones Codex has no equivalent for (`effort`, `fallback_model`,\n`settings`) or that the platform does not yet wire through for this harness\n(`max_turns`, `skills`, MCP servers). They are omitted rather than\naccepted-and-ignored, because `StrictConfigModel` forbids extra keys \u2014 so a\nconfig that sets one fails loudly at parse time instead of silently not doing\nit. The budget still bounds a run regardless.",
|
|
336
|
+
"properties": {
|
|
337
|
+
"model": {
|
|
338
|
+
"default": "gpt-5.6-terra",
|
|
339
|
+
"title": "Model",
|
|
340
|
+
"type": "string"
|
|
341
|
+
},
|
|
342
|
+
"system": {
|
|
343
|
+
"anyOf": [
|
|
344
|
+
{
|
|
345
|
+
"type": "string"
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"$ref": "#/$defs/AgentConfigSystemFileRef"
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"items": {
|
|
352
|
+
"anyOf": [
|
|
353
|
+
{
|
|
354
|
+
"type": "string"
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"$ref": "#/$defs/AgentConfigSystemFileRef"
|
|
358
|
+
}
|
|
359
|
+
]
|
|
360
|
+
},
|
|
361
|
+
"type": "array"
|
|
362
|
+
}
|
|
363
|
+
],
|
|
364
|
+
"default": "",
|
|
365
|
+
"title": "System"
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
"required": [
|
|
369
|
+
"model",
|
|
370
|
+
"system"
|
|
371
|
+
],
|
|
372
|
+
"title": "AgentConfigCodex",
|
|
373
|
+
"type": "object"
|
|
374
|
+
},
|
|
375
|
+
"AgentConfigCompute": {
|
|
376
|
+
"additionalProperties": false,
|
|
377
|
+
"description": "Sandbox compute sizing. Every field is optional; None inherits the\nplatform default (1 vCPU / 4096 MiB / 3600s \u2014 see DEFAULT_MODAL_* in\nmodels/ellipsis/sandboxes/sandbox.py). A resolved value outside the platform\nbounds fails validation loudly (a sync error on the config) rather than\nbeing clamped silently.\n\n`memory` and `timeout` each accept a shorthand string (\"8GB\", \"30m\") or an\nexplicit units object ({gb: 8}, {minutes: 30}); the `memory_mib` /\n`timeout_seconds` properties resolve either form to the canonical integer\nthe sandbox driver consumes.\n\n`timeout` is the max wall-clock the agent may run before the sandbox is\nkilled, capped at 1h (MAX_SANDBOX_TIMEOUT_SECONDS \u2014 equal to the default, so\ntoday the knob only shortens a session; the cap matches the 1-hour validity\nof the sandbox's GitHub token). The worker's lease/visibility heartbeat\nceiling is derived from that cap, so a run at the max stays owned by its\nworker for its whole life.\n\nCompute is billed on the requested allocation over the sandbox's\nwall-clock lifetime, so a bigger/longer box costs proportionally more.",
|
|
378
|
+
"properties": {
|
|
379
|
+
"cpu": {
|
|
380
|
+
"anyOf": [
|
|
381
|
+
{
|
|
382
|
+
"maximum": 16,
|
|
383
|
+
"minimum": 0.125,
|
|
384
|
+
"type": "number"
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
"type": "null"
|
|
388
|
+
}
|
|
389
|
+
],
|
|
390
|
+
"default": null,
|
|
391
|
+
"title": "Cpu"
|
|
392
|
+
},
|
|
393
|
+
"memory": {
|
|
394
|
+
"anyOf": [
|
|
395
|
+
{
|
|
396
|
+
"type": "string"
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"$ref": "#/$defs/AgentConfigMemorySize"
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"type": "null"
|
|
403
|
+
}
|
|
404
|
+
],
|
|
405
|
+
"default": null,
|
|
406
|
+
"title": "Memory"
|
|
407
|
+
},
|
|
408
|
+
"timeout": {
|
|
409
|
+
"anyOf": [
|
|
410
|
+
{
|
|
411
|
+
"type": "string"
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"$ref": "#/$defs/AgentConfigDuration"
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"type": "null"
|
|
418
|
+
}
|
|
419
|
+
],
|
|
420
|
+
"default": null,
|
|
421
|
+
"title": "Timeout"
|
|
422
|
+
}
|
|
423
|
+
},
|
|
424
|
+
"required": [
|
|
425
|
+
"cpu",
|
|
426
|
+
"memory",
|
|
427
|
+
"timeout"
|
|
428
|
+
],
|
|
429
|
+
"title": "AgentConfigCompute",
|
|
430
|
+
"type": "object"
|
|
431
|
+
},
|
|
432
|
+
"AgentConfigCronTrigger": {
|
|
433
|
+
"additionalProperties": false,
|
|
434
|
+
"properties": {
|
|
435
|
+
"schedule": {
|
|
436
|
+
"title": "Schedule",
|
|
437
|
+
"type": "string"
|
|
438
|
+
},
|
|
439
|
+
"type": {
|
|
440
|
+
"const": "cron",
|
|
441
|
+
"default": "cron",
|
|
442
|
+
"title": "Type",
|
|
443
|
+
"type": "string"
|
|
444
|
+
}
|
|
445
|
+
},
|
|
446
|
+
"required": [
|
|
447
|
+
"schedule",
|
|
448
|
+
"type"
|
|
449
|
+
],
|
|
450
|
+
"title": "AgentConfigCronTrigger",
|
|
451
|
+
"type": "object"
|
|
452
|
+
},
|
|
453
|
+
"AgentConfigDuration": {
|
|
454
|
+
"additionalProperties": false,
|
|
455
|
+
"description": "A duration as explicit units, summed. Set any of `hours`/`minutes`/\n`seconds` (at least one). The alternative to the `30m`-style shorthand\nstring wherever a duration is accepted.",
|
|
456
|
+
"properties": {
|
|
457
|
+
"hours": {
|
|
458
|
+
"anyOf": [
|
|
459
|
+
{
|
|
460
|
+
"minimum": 0,
|
|
461
|
+
"type": "integer"
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"type": "null"
|
|
465
|
+
}
|
|
466
|
+
],
|
|
467
|
+
"default": null,
|
|
468
|
+
"title": "Hours"
|
|
469
|
+
},
|
|
470
|
+
"minutes": {
|
|
471
|
+
"anyOf": [
|
|
472
|
+
{
|
|
473
|
+
"minimum": 0,
|
|
474
|
+
"type": "integer"
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
"type": "null"
|
|
478
|
+
}
|
|
479
|
+
],
|
|
480
|
+
"default": null,
|
|
481
|
+
"title": "Minutes"
|
|
482
|
+
},
|
|
483
|
+
"seconds": {
|
|
484
|
+
"anyOf": [
|
|
485
|
+
{
|
|
486
|
+
"minimum": 0,
|
|
487
|
+
"type": "integer"
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
"type": "null"
|
|
491
|
+
}
|
|
492
|
+
],
|
|
493
|
+
"default": null,
|
|
494
|
+
"title": "Seconds"
|
|
495
|
+
}
|
|
496
|
+
},
|
|
497
|
+
"required": [
|
|
498
|
+
"hours",
|
|
499
|
+
"minutes",
|
|
500
|
+
"seconds"
|
|
501
|
+
],
|
|
502
|
+
"title": "AgentConfigDuration",
|
|
503
|
+
"type": "object"
|
|
504
|
+
},
|
|
505
|
+
"AgentConfigEllipsis": {
|
|
506
|
+
"additionalProperties": false,
|
|
507
|
+
"description": "The Ellipsis product namespace for a config file: which schema this is\n(`version`), the human-facing identity (`name`/`description`), freeform\norganizational `metadata`, whether the agent is `enabled`, and the\nhuman-access flag `interactive`. The presence of a top-level `ellipsis:`\nmapping is what marks a YAML file as an Ellipsis agent config (vs arbitrary\nYAML that merely lives under a config directory) \u2014 see\n`yaml_is_ellipsis_config`.\n\n`enabled`/`interactive` are agent behavior, not freeform metadata, so they\nstay inside the config `sha` (only `metadata` is sha-excluded).\n`interactive` lets a human `agent session connect` to a live session (CLI\nrelay). It does not decide whether a session is ephemeral or durable \u2014 that\nis the trigger's job.",
|
|
508
|
+
"properties": {
|
|
509
|
+
"description": {
|
|
510
|
+
"anyOf": [
|
|
511
|
+
{
|
|
512
|
+
"type": "string"
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
"type": "null"
|
|
516
|
+
}
|
|
517
|
+
],
|
|
518
|
+
"default": null,
|
|
519
|
+
"title": "Description"
|
|
520
|
+
},
|
|
521
|
+
"enabled": {
|
|
522
|
+
"default": true,
|
|
523
|
+
"title": "Enabled",
|
|
524
|
+
"type": "boolean"
|
|
525
|
+
},
|
|
526
|
+
"interactive": {
|
|
527
|
+
"default": true,
|
|
528
|
+
"title": "Interactive",
|
|
529
|
+
"type": "boolean"
|
|
530
|
+
},
|
|
531
|
+
"metadata": {
|
|
532
|
+
"$ref": "#/$defs/AgentConfigMetadata",
|
|
533
|
+
"default": {
|
|
534
|
+
"annotations": {},
|
|
535
|
+
"labels": []
|
|
536
|
+
}
|
|
537
|
+
},
|
|
538
|
+
"name": {
|
|
539
|
+
"anyOf": [
|
|
540
|
+
{
|
|
541
|
+
"type": "string"
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"type": "null"
|
|
545
|
+
}
|
|
546
|
+
],
|
|
547
|
+
"default": null,
|
|
548
|
+
"title": "Name"
|
|
549
|
+
},
|
|
550
|
+
"version": {
|
|
551
|
+
"default": "v1",
|
|
552
|
+
"title": "Version",
|
|
553
|
+
"type": "string"
|
|
554
|
+
}
|
|
555
|
+
},
|
|
556
|
+
"required": [
|
|
557
|
+
"description",
|
|
558
|
+
"enabled",
|
|
559
|
+
"interactive",
|
|
560
|
+
"metadata",
|
|
561
|
+
"name",
|
|
562
|
+
"version"
|
|
563
|
+
],
|
|
564
|
+
"title": "AgentConfigEllipsis",
|
|
565
|
+
"type": "object"
|
|
566
|
+
},
|
|
567
|
+
"AgentConfigEllipsisPermissions": {
|
|
568
|
+
"additionalProperties": {
|
|
569
|
+
"anyOf": [
|
|
570
|
+
{
|
|
571
|
+
"$ref": "#/$defs/Level"
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
"$ref": "#/$defs/EllipsisGrant"
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
"items": {
|
|
578
|
+
"anyOf": [
|
|
579
|
+
{
|
|
580
|
+
"$ref": "#/$defs/Level"
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
"$ref": "#/$defs/EllipsisGrant"
|
|
584
|
+
}
|
|
585
|
+
]
|
|
586
|
+
},
|
|
587
|
+
"type": "array"
|
|
588
|
+
}
|
|
589
|
+
]
|
|
590
|
+
},
|
|
591
|
+
"description": "`permissions.ellipsis` as a map: resource \u2192 level | grant | list of\ngrants. Levels are hierarchical (read < write < delete), so `write`\nincludes `read`. An unlisted resource is denied. The whole block is\nintersected with the platform's sandbox ceiling at token mint \u2014 it can\nnarrow what a sandbox token may do, never exceed it.",
|
|
592
|
+
"propertyNames": {
|
|
593
|
+
"$ref": "#/$defs/Resource"
|
|
594
|
+
},
|
|
595
|
+
"title": "AgentConfigEllipsisPermissions",
|
|
596
|
+
"type": "object"
|
|
597
|
+
},
|
|
598
|
+
"AgentConfigEnvironment": {
|
|
599
|
+
"additionalProperties": false,
|
|
600
|
+
"description": "Everything about the environment (the sandbox) the agent runs in: which\n`repositories` are cloned into it, which environment `variables` it gets,\nits `compute` sizing, how its `image` is customized, and lifecycle `hooks`.\nWhat the agent may *do* from that environment is the top-level\n`permissions:` block, not this one.\n\nEach `variables` entry names a variable to inject; with an inline `value` it\nis hardcoded, without one it is resolved from the account's sandbox-secrets\nstore. Only the named variables reach this agent; the rest of the account's\nstored variables never do. This is how a config brings in the config and\ncredentials a custom CLI needs.",
|
|
601
|
+
"properties": {
|
|
602
|
+
"compute": {
|
|
603
|
+
"$ref": "#/$defs/AgentConfigCompute",
|
|
604
|
+
"default": {
|
|
605
|
+
"cpu": null,
|
|
606
|
+
"memory": null,
|
|
607
|
+
"timeout": null
|
|
608
|
+
}
|
|
609
|
+
},
|
|
610
|
+
"hooks": {
|
|
611
|
+
"$ref": "#/$defs/AgentConfigEnvironmentHooks",
|
|
612
|
+
"default": {
|
|
613
|
+
"post_clone": null,
|
|
614
|
+
"post_start": null
|
|
615
|
+
}
|
|
616
|
+
},
|
|
617
|
+
"image": {
|
|
618
|
+
"$ref": "#/$defs/AgentConfigEnvironmentImage",
|
|
619
|
+
"default": {
|
|
620
|
+
"dockerfile_append": null,
|
|
621
|
+
"setup": null
|
|
622
|
+
}
|
|
623
|
+
},
|
|
624
|
+
"repositories": {
|
|
625
|
+
"default": [],
|
|
626
|
+
"items": {
|
|
627
|
+
"$ref": "#/$defs/AgentConfigRepository"
|
|
628
|
+
},
|
|
629
|
+
"title": "Repositories",
|
|
630
|
+
"type": "array"
|
|
631
|
+
},
|
|
632
|
+
"variables": {
|
|
633
|
+
"default": [],
|
|
634
|
+
"items": {
|
|
635
|
+
"$ref": "#/$defs/AgentConfigEnvironmentVariable"
|
|
636
|
+
},
|
|
637
|
+
"title": "Variables",
|
|
638
|
+
"type": "array"
|
|
639
|
+
}
|
|
640
|
+
},
|
|
641
|
+
"required": [
|
|
642
|
+
"compute",
|
|
643
|
+
"hooks",
|
|
644
|
+
"image",
|
|
645
|
+
"repositories",
|
|
646
|
+
"variables"
|
|
647
|
+
],
|
|
648
|
+
"title": "AgentConfigEnvironment",
|
|
649
|
+
"type": "object"
|
|
650
|
+
},
|
|
651
|
+
"AgentConfigEnvironmentHooks": {
|
|
652
|
+
"additionalProperties": false,
|
|
653
|
+
"description": "Shell scripts run at points in the sandbox lifecycle, each as the sandbox\nuser with the sandbox's environment variables available. A non-zero exit\nfails the run (exit_status = LIFECYCLE_HOOK_FAILED) and is not retried.\n\n`post_start` runs after the container starts, before any repo is cloned \u2014\nrepo-independent setup (authenticate a CLI, e.g. `doppler setup`). On Modal\nthe repo is baked into the image so it is incidentally present, but\n`post_start` must not depend on repo contents (that's `post_clone`).\n\n`post_clone` runs after all repos are cloned/checked out, before the agent \u2014\nrepo-dependent setup (`pip install -r requirements.txt`, codegen).\n\nHooks run on every run and their output is never cached. A dependency\ninstall whose result should be reused across runs belongs in `image.setup`\n(baked into the cached image) instead; keep hooks for per-run work \u2014 e.g.\nanything that touches run-scoped credentials.",
|
|
654
|
+
"properties": {
|
|
655
|
+
"post_clone": {
|
|
656
|
+
"anyOf": [
|
|
657
|
+
{
|
|
658
|
+
"type": "string"
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
"type": "null"
|
|
662
|
+
}
|
|
663
|
+
],
|
|
664
|
+
"default": null,
|
|
665
|
+
"title": "Post Clone"
|
|
666
|
+
},
|
|
667
|
+
"post_start": {
|
|
668
|
+
"anyOf": [
|
|
669
|
+
{
|
|
670
|
+
"type": "string"
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
"type": "null"
|
|
674
|
+
}
|
|
675
|
+
],
|
|
676
|
+
"default": null,
|
|
677
|
+
"title": "Post Start"
|
|
678
|
+
}
|
|
679
|
+
},
|
|
680
|
+
"required": [
|
|
681
|
+
"post_clone",
|
|
682
|
+
"post_start"
|
|
683
|
+
],
|
|
684
|
+
"title": "AgentConfigEnvironmentHooks",
|
|
685
|
+
"type": "object"
|
|
686
|
+
},
|
|
687
|
+
"AgentConfigEnvironmentImage": {
|
|
688
|
+
"additionalProperties": false,
|
|
689
|
+
"description": "How to customize the container image the agent runs in. You\ncontribute appended layers (`dockerfile_append`) and a build-time script\n(`setup`) only \u2014 Ellipsis owns FROM / base tooling / entrypoint / user.\nToday only inline bodies are supported; a file reference (resolved at the\nrun's SHA) will come later.\n\nThe split: `dockerfile_append` runs when the image is assembled, before any\nrepo exists \u2014 toolchain installs (a package manager binary, apt packages).\n`setup` runs at image-build time *after* the configured repositories are\nchecked out, and its output is captured by the filesystem snapshot that\nbecomes the cached image \u2014 dependency installs (`poetry install`,\n`npm install`), so later runs start with deps already on disk. Neither runs\nper run; that's `hooks.post_start` / `hooks.post_clone`.",
|
|
690
|
+
"properties": {
|
|
691
|
+
"dockerfile_append": {
|
|
692
|
+
"anyOf": [
|
|
693
|
+
{
|
|
694
|
+
"type": "string"
|
|
695
|
+
},
|
|
696
|
+
{
|
|
697
|
+
"type": "null"
|
|
698
|
+
}
|
|
699
|
+
],
|
|
700
|
+
"default": null,
|
|
701
|
+
"title": "Dockerfile Append"
|
|
702
|
+
},
|
|
703
|
+
"setup": {
|
|
704
|
+
"anyOf": [
|
|
705
|
+
{
|
|
706
|
+
"type": "string"
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
"type": "null"
|
|
710
|
+
}
|
|
711
|
+
],
|
|
712
|
+
"default": null,
|
|
713
|
+
"title": "Setup"
|
|
714
|
+
}
|
|
715
|
+
},
|
|
716
|
+
"required": [
|
|
717
|
+
"dockerfile_append",
|
|
718
|
+
"setup"
|
|
719
|
+
],
|
|
720
|
+
"title": "AgentConfigEnvironmentImage",
|
|
721
|
+
"type": "object"
|
|
722
|
+
},
|
|
723
|
+
"AgentConfigEnvironmentVariable": {
|
|
724
|
+
"additionalProperties": false,
|
|
725
|
+
"description": "One environment variable injected into the agent's sandbox.\n\n`value`, when set, is a literal injected as-is \u2014 use it for non-secret\nconfig (LOG_LEVEL, an API base URL). When `value` is omitted the value is\nresolved at run time from the account's sandbox-secrets store (dashboard\n/ `PUT /v1/secrets`) by `name`, so a secret can be injected without\never putting it in the config file. Either way the variable only reaches\nagents that name it.",
|
|
726
|
+
"properties": {
|
|
727
|
+
"name": {
|
|
728
|
+
"title": "Name",
|
|
729
|
+
"type": "string"
|
|
730
|
+
},
|
|
731
|
+
"value": {
|
|
732
|
+
"anyOf": [
|
|
733
|
+
{
|
|
734
|
+
"type": "string"
|
|
735
|
+
},
|
|
736
|
+
{
|
|
737
|
+
"type": "null"
|
|
738
|
+
}
|
|
739
|
+
],
|
|
740
|
+
"default": null,
|
|
741
|
+
"title": "Value"
|
|
742
|
+
}
|
|
743
|
+
},
|
|
744
|
+
"required": [
|
|
745
|
+
"name",
|
|
746
|
+
"value"
|
|
747
|
+
],
|
|
748
|
+
"title": "AgentConfigEnvironmentVariable",
|
|
749
|
+
"type": "object"
|
|
750
|
+
},
|
|
751
|
+
"AgentConfigGithubPermissions": {
|
|
752
|
+
"additionalProperties": false,
|
|
753
|
+
"description": "The agent's GitHub access: the scope of the installation token minted for\nits sandbox \u2014 the credential `git`, `gh`, and the GitHub MCP server\nauthenticate with.\n\nBy default the token carries the installation's full permissions on all of\nthe installation's repositories. `permissions` narrows what it may do:\nthe string `read_only` grants read access to contents, issues, metadata and\npull requests; a map requests explicit levels per GitHub App permission\nscope (e.g. `{contents: read, pull_requests: write}`) and may never exceed\nwhat the installation granted. `repositories` scopes the token to exactly\nthe listed repos, by name (they must belong to the installation).\n\nRestriction is enforced by GitHub, not by Ellipsis: the token itself is\nminted with the reduced scope, so nothing running in the sandbox can\nexceed it.",
|
|
754
|
+
"properties": {
|
|
755
|
+
"permissions": {
|
|
756
|
+
"anyOf": [
|
|
757
|
+
{
|
|
758
|
+
"const": "read_only",
|
|
759
|
+
"type": "string"
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
"additionalProperties": {
|
|
763
|
+
"type": "string"
|
|
764
|
+
},
|
|
765
|
+
"type": "object"
|
|
766
|
+
},
|
|
767
|
+
{
|
|
768
|
+
"type": "null"
|
|
769
|
+
}
|
|
770
|
+
],
|
|
771
|
+
"default": null,
|
|
772
|
+
"title": "Permissions"
|
|
773
|
+
},
|
|
774
|
+
"repositories": {
|
|
775
|
+
"anyOf": [
|
|
776
|
+
{
|
|
777
|
+
"items": {
|
|
778
|
+
"type": "string"
|
|
779
|
+
},
|
|
780
|
+
"type": "array"
|
|
781
|
+
},
|
|
782
|
+
{
|
|
783
|
+
"type": "null"
|
|
784
|
+
}
|
|
785
|
+
],
|
|
786
|
+
"default": null,
|
|
787
|
+
"title": "Repositories"
|
|
788
|
+
}
|
|
789
|
+
},
|
|
790
|
+
"required": [
|
|
791
|
+
"permissions",
|
|
792
|
+
"repositories"
|
|
793
|
+
],
|
|
794
|
+
"title": "AgentConfigGithubPermissions",
|
|
795
|
+
"type": "object"
|
|
796
|
+
},
|
|
797
|
+
"AgentConfigInput": {
|
|
798
|
+
"additionalProperties": false,
|
|
799
|
+
"description": "The typed input contract: what goes INTO a session (the trigger is\nwhen it happens; this is what goes in).\n\n`json_schema` types the payload a caller-started session takes\n(`POST /v1/sessions` `input`, validated at the door; required when\ndeclared). It is illegal on a react-triggered agent \u2014 react payloads are\nplatform-shaped (the published surface field sets), not caller-shaped.\n\n`message` is the initial-message template: exact `{{path}}` substitution\nover the caller payload (or, on a react agent, over the surface's\npublished fields), no conditionals/loops/filters. Refs are validated at\ndeploy time against the governing field set (see AgentConfig's\n`_check_input`).",
|
|
800
|
+
"properties": {
|
|
801
|
+
"json_schema": {
|
|
802
|
+
"anyOf": [
|
|
803
|
+
{
|
|
804
|
+
"additionalProperties": true,
|
|
805
|
+
"type": "object"
|
|
806
|
+
},
|
|
807
|
+
{
|
|
808
|
+
"type": "null"
|
|
809
|
+
}
|
|
810
|
+
],
|
|
811
|
+
"default": null,
|
|
812
|
+
"title": "Json Schema"
|
|
813
|
+
},
|
|
814
|
+
"message": {
|
|
815
|
+
"anyOf": [
|
|
816
|
+
{
|
|
817
|
+
"type": "string"
|
|
818
|
+
},
|
|
819
|
+
{
|
|
820
|
+
"type": "null"
|
|
821
|
+
}
|
|
822
|
+
],
|
|
823
|
+
"default": null,
|
|
824
|
+
"title": "Message"
|
|
825
|
+
}
|
|
826
|
+
},
|
|
827
|
+
"required": [
|
|
828
|
+
"json_schema",
|
|
829
|
+
"message"
|
|
830
|
+
],
|
|
831
|
+
"title": "AgentConfigInput",
|
|
832
|
+
"type": "object"
|
|
833
|
+
},
|
|
834
|
+
"AgentConfigLlm": {
|
|
835
|
+
"additionalProperties": false,
|
|
836
|
+
"description": "Where this agent's completions go.\n\nDefaults to Ellipsis's own LLM proxy (our Anthropic/Bedrock account, or the\naccount-wide BYO provider if one is enabled). Setting `proxy` to the id of a\nproxy registered on the models settings page routes THIS agent's\ncompletions through that gateway instead.\n\nOpt-in per agent by design: registering a proxy does not silently move any\nexisting agent's traffic. The id is account-scoped, so naming another\naccount's id is a terminal config error, not a route.",
|
|
837
|
+
"properties": {
|
|
838
|
+
"proxy": {
|
|
839
|
+
"anyOf": [
|
|
840
|
+
{
|
|
841
|
+
"type": "string"
|
|
842
|
+
},
|
|
843
|
+
{
|
|
844
|
+
"type": "null"
|
|
845
|
+
}
|
|
846
|
+
],
|
|
847
|
+
"default": null,
|
|
848
|
+
"title": "Proxy"
|
|
849
|
+
}
|
|
850
|
+
},
|
|
851
|
+
"required": [
|
|
852
|
+
"proxy"
|
|
853
|
+
],
|
|
854
|
+
"title": "AgentConfigLlm",
|
|
855
|
+
"type": "object"
|
|
856
|
+
},
|
|
857
|
+
"AgentConfigMcpServer": {
|
|
858
|
+
"additionalProperties": false,
|
|
859
|
+
"description": "One built-in MCP server this agent opts into by name (`linear`/`slack`).\nThis is a name reference over the connected built-in set, NOT a custom-server\ndefinition \u2014 there is no command/url/headers shape (that was the old,\nremoved field, and Ellipsis does not support bring-your-own MCP servers).\nIt only matters when the named integration is set to `opt_in` inclusion; an\nintegration in the default `all_sessions` mode is added regardless.",
|
|
860
|
+
"properties": {
|
|
861
|
+
"name": {
|
|
862
|
+
"title": "Name",
|
|
863
|
+
"type": "string"
|
|
864
|
+
}
|
|
865
|
+
},
|
|
866
|
+
"required": [
|
|
867
|
+
"name"
|
|
868
|
+
],
|
|
869
|
+
"title": "AgentConfigMcpServer",
|
|
870
|
+
"type": "object"
|
|
871
|
+
},
|
|
872
|
+
"AgentConfigMemorySize": {
|
|
873
|
+
"additionalProperties": false,
|
|
874
|
+
"description": "A memory size as explicit units, summed (binary: 1GB = 1024MB = 1024MiB).\nSet any of `gb`/`mb` (at least one). The alternative to the `8GB`-style\nshorthand string.",
|
|
875
|
+
"properties": {
|
|
876
|
+
"gb": {
|
|
877
|
+
"anyOf": [
|
|
878
|
+
{
|
|
879
|
+
"minimum": 0,
|
|
880
|
+
"type": "integer"
|
|
881
|
+
},
|
|
882
|
+
{
|
|
883
|
+
"type": "null"
|
|
884
|
+
}
|
|
885
|
+
],
|
|
886
|
+
"default": null,
|
|
887
|
+
"title": "Gb"
|
|
888
|
+
},
|
|
889
|
+
"mb": {
|
|
890
|
+
"anyOf": [
|
|
891
|
+
{
|
|
892
|
+
"minimum": 0,
|
|
893
|
+
"type": "integer"
|
|
894
|
+
},
|
|
895
|
+
{
|
|
896
|
+
"type": "null"
|
|
897
|
+
}
|
|
898
|
+
],
|
|
899
|
+
"default": null,
|
|
900
|
+
"title": "Mb"
|
|
901
|
+
}
|
|
902
|
+
},
|
|
903
|
+
"required": [
|
|
904
|
+
"gb",
|
|
905
|
+
"mb"
|
|
906
|
+
],
|
|
907
|
+
"title": "AgentConfigMemorySize",
|
|
908
|
+
"type": "object"
|
|
909
|
+
},
|
|
910
|
+
"AgentConfigMentionPlatform": {
|
|
911
|
+
"description": "The surface an @ellipsis mention can come from.",
|
|
912
|
+
"enum": [
|
|
913
|
+
"github",
|
|
914
|
+
"slack",
|
|
915
|
+
"linear"
|
|
916
|
+
],
|
|
917
|
+
"title": "AgentConfigMentionPlatform",
|
|
918
|
+
"type": "string"
|
|
919
|
+
},
|
|
920
|
+
"AgentConfigMentionTrigger": {
|
|
921
|
+
"additionalProperties": false,
|
|
922
|
+
"properties": {
|
|
923
|
+
"platforms": {
|
|
924
|
+
"default": [],
|
|
925
|
+
"items": {
|
|
926
|
+
"$ref": "#/$defs/AgentConfigMentionPlatform"
|
|
927
|
+
},
|
|
928
|
+
"title": "Platforms",
|
|
929
|
+
"type": "array"
|
|
930
|
+
},
|
|
931
|
+
"type": {
|
|
932
|
+
"const": "mention",
|
|
933
|
+
"default": "mention",
|
|
934
|
+
"title": "Type",
|
|
935
|
+
"type": "string"
|
|
936
|
+
}
|
|
937
|
+
},
|
|
938
|
+
"required": [
|
|
939
|
+
"platforms",
|
|
940
|
+
"type"
|
|
941
|
+
],
|
|
942
|
+
"title": "AgentConfigMentionTrigger",
|
|
943
|
+
"type": "object"
|
|
944
|
+
},
|
|
945
|
+
"AgentConfigMetadata": {
|
|
946
|
+
"additionalProperties": false,
|
|
947
|
+
"properties": {
|
|
948
|
+
"annotations": {
|
|
949
|
+
"additionalProperties": {
|
|
950
|
+
"type": "string"
|
|
951
|
+
},
|
|
952
|
+
"default": {},
|
|
953
|
+
"title": "Annotations",
|
|
954
|
+
"type": "object"
|
|
955
|
+
},
|
|
956
|
+
"labels": {
|
|
957
|
+
"default": [],
|
|
958
|
+
"items": {
|
|
959
|
+
"type": "string"
|
|
960
|
+
},
|
|
961
|
+
"title": "Labels",
|
|
962
|
+
"type": "array"
|
|
963
|
+
}
|
|
964
|
+
},
|
|
965
|
+
"required": [
|
|
966
|
+
"annotations",
|
|
967
|
+
"labels"
|
|
968
|
+
],
|
|
969
|
+
"title": "AgentConfigMetadata",
|
|
970
|
+
"type": "object"
|
|
971
|
+
},
|
|
972
|
+
"AgentConfigOutput": {
|
|
973
|
+
"additionalProperties": false,
|
|
974
|
+
"description": "The typed output contract: the JSON Schema the agent must exit through\n(the StructuredOutput exit tool). Read back via\nGET /v1/sessions/{id}/output.",
|
|
975
|
+
"properties": {
|
|
976
|
+
"json_schema": {
|
|
977
|
+
"additionalProperties": true,
|
|
978
|
+
"title": "Json Schema",
|
|
979
|
+
"type": "object"
|
|
980
|
+
}
|
|
981
|
+
},
|
|
982
|
+
"required": [
|
|
983
|
+
"json_schema"
|
|
984
|
+
],
|
|
985
|
+
"title": "AgentConfigOutput",
|
|
986
|
+
"type": "object"
|
|
987
|
+
},
|
|
988
|
+
"AgentConfigPermissions": {
|
|
989
|
+
"additionalProperties": false,
|
|
990
|
+
"description": "What the agent is allowed to touch, per credential the platform mints\ninto its sandbox. Distinct from `environment:`, which is where the agent\nruns; this is what it may do from there.\n\n`ellipsis` scopes the sandbox's Ellipsis API token\n(`ELLIPSIS_API_TOKEN`, what the in-sandbox `agent` CLI authenticates\nwith). `true` / the string `all` (the default) grant the full sandbox\nceiling \u2014 everything a sandbox token can ever do. A map narrows it per\nresource (see `AgentConfigEllipsisPermissions`); the minted token carries\nthe intersection, so a config can only ever reduce access. `false` fails\nvalidation \u2014 an agent with no API token cannot report its own progress.\n\n`github` scopes the sandbox's GitHub installation token (`GH_TOKEN`) \u2014\nsee `AgentConfigGithubPermissions`. GitHub enforces it at mint time.",
|
|
991
|
+
"properties": {
|
|
992
|
+
"ellipsis": {
|
|
993
|
+
"anyOf": [
|
|
994
|
+
{
|
|
995
|
+
"enum": [
|
|
996
|
+
true,
|
|
997
|
+
"all"
|
|
998
|
+
]
|
|
999
|
+
},
|
|
1000
|
+
{
|
|
1001
|
+
"$ref": "#/$defs/AgentConfigEllipsisPermissions"
|
|
1002
|
+
}
|
|
1003
|
+
],
|
|
1004
|
+
"default": true,
|
|
1005
|
+
"title": "Ellipsis"
|
|
1006
|
+
},
|
|
1007
|
+
"github": {
|
|
1008
|
+
"$ref": "#/$defs/AgentConfigGithubPermissions",
|
|
1009
|
+
"default": {
|
|
1010
|
+
"permissions": null,
|
|
1011
|
+
"repositories": null
|
|
1012
|
+
}
|
|
1013
|
+
}
|
|
1014
|
+
},
|
|
1015
|
+
"required": [
|
|
1016
|
+
"ellipsis",
|
|
1017
|
+
"github"
|
|
1018
|
+
],
|
|
1019
|
+
"title": "AgentConfigPermissions",
|
|
1020
|
+
"type": "object"
|
|
1021
|
+
},
|
|
1022
|
+
"AgentConfigReactTrigger": {
|
|
1023
|
+
"additionalProperties": false,
|
|
1024
|
+
"properties": {
|
|
1025
|
+
"issue": {
|
|
1026
|
+
"anyOf": [
|
|
1027
|
+
{
|
|
1028
|
+
"$ref": "#/$defs/ReactIssue"
|
|
1029
|
+
},
|
|
1030
|
+
{
|
|
1031
|
+
"type": "null"
|
|
1032
|
+
}
|
|
1033
|
+
],
|
|
1034
|
+
"default": null
|
|
1035
|
+
},
|
|
1036
|
+
"linear_issue": {
|
|
1037
|
+
"anyOf": [
|
|
1038
|
+
{
|
|
1039
|
+
"$ref": "#/$defs/ReactLinearIssue"
|
|
1040
|
+
},
|
|
1041
|
+
{
|
|
1042
|
+
"type": "null"
|
|
1043
|
+
}
|
|
1044
|
+
],
|
|
1045
|
+
"default": null
|
|
1046
|
+
},
|
|
1047
|
+
"pull_request": {
|
|
1048
|
+
"anyOf": [
|
|
1049
|
+
{
|
|
1050
|
+
"$ref": "#/$defs/ReactPullRequest"
|
|
1051
|
+
},
|
|
1052
|
+
{
|
|
1053
|
+
"type": "null"
|
|
1054
|
+
}
|
|
1055
|
+
],
|
|
1056
|
+
"default": null
|
|
1057
|
+
},
|
|
1058
|
+
"push": {
|
|
1059
|
+
"anyOf": [
|
|
1060
|
+
{
|
|
1061
|
+
"$ref": "#/$defs/ReactPush"
|
|
1062
|
+
},
|
|
1063
|
+
{
|
|
1064
|
+
"type": "null"
|
|
1065
|
+
}
|
|
1066
|
+
],
|
|
1067
|
+
"default": null
|
|
1068
|
+
},
|
|
1069
|
+
"sentry": {
|
|
1070
|
+
"anyOf": [
|
|
1071
|
+
{
|
|
1072
|
+
"$ref": "#/$defs/ReactSentry"
|
|
1073
|
+
},
|
|
1074
|
+
{
|
|
1075
|
+
"type": "null"
|
|
1076
|
+
}
|
|
1077
|
+
],
|
|
1078
|
+
"default": null
|
|
1079
|
+
},
|
|
1080
|
+
"slack_channel": {
|
|
1081
|
+
"anyOf": [
|
|
1082
|
+
{
|
|
1083
|
+
"$ref": "#/$defs/ReactSlackChannel"
|
|
1084
|
+
},
|
|
1085
|
+
{
|
|
1086
|
+
"type": "null"
|
|
1087
|
+
}
|
|
1088
|
+
],
|
|
1089
|
+
"default": null
|
|
1090
|
+
},
|
|
1091
|
+
"type": {
|
|
1092
|
+
"const": "react",
|
|
1093
|
+
"default": "react",
|
|
1094
|
+
"title": "Type",
|
|
1095
|
+
"type": "string"
|
|
1096
|
+
}
|
|
1097
|
+
},
|
|
1098
|
+
"required": [
|
|
1099
|
+
"issue",
|
|
1100
|
+
"linear_issue",
|
|
1101
|
+
"pull_request",
|
|
1102
|
+
"push",
|
|
1103
|
+
"sentry",
|
|
1104
|
+
"slack_channel",
|
|
1105
|
+
"type"
|
|
1106
|
+
],
|
|
1107
|
+
"title": "AgentConfigReactTrigger",
|
|
1108
|
+
"type": "object"
|
|
1109
|
+
},
|
|
1110
|
+
"AgentConfigRepository": {
|
|
1111
|
+
"additionalProperties": false,
|
|
1112
|
+
"properties": {
|
|
1113
|
+
"name": {
|
|
1114
|
+
"title": "Name",
|
|
1115
|
+
"type": "string"
|
|
1116
|
+
},
|
|
1117
|
+
"owner": {
|
|
1118
|
+
"anyOf": [
|
|
1119
|
+
{
|
|
1120
|
+
"type": "string"
|
|
1121
|
+
},
|
|
1122
|
+
{
|
|
1123
|
+
"type": "null"
|
|
1124
|
+
}
|
|
1125
|
+
],
|
|
1126
|
+
"default": null,
|
|
1127
|
+
"title": "Owner"
|
|
1128
|
+
},
|
|
1129
|
+
"ref": {
|
|
1130
|
+
"anyOf": [
|
|
1131
|
+
{
|
|
1132
|
+
"type": "string"
|
|
1133
|
+
},
|
|
1134
|
+
{
|
|
1135
|
+
"type": "null"
|
|
1136
|
+
}
|
|
1137
|
+
],
|
|
1138
|
+
"default": null,
|
|
1139
|
+
"title": "Ref"
|
|
1140
|
+
}
|
|
1141
|
+
},
|
|
1142
|
+
"required": [
|
|
1143
|
+
"name",
|
|
1144
|
+
"owner",
|
|
1145
|
+
"ref"
|
|
1146
|
+
],
|
|
1147
|
+
"title": "AgentConfigRepository",
|
|
1148
|
+
"type": "object"
|
|
1149
|
+
},
|
|
1150
|
+
"AgentConfigSettingsRef": {
|
|
1151
|
+
"additionalProperties": false,
|
|
1152
|
+
"description": "A config-declared Claude Code settings.json, resolved at run start and\npassed to `claude --settings <path>`. That is the CLI settings tier \u2014 BELOW\nEllipsis's managed-settings.json floor \u2014 so it customizes behavior (model\npermissions, includeCoAuthoredBy, statusLine, ...) but can never weaken a\nsecurity setting. Lets a team point the cloud agent at the same settings file\nthey already use with Claude Code locally instead of re-encoding it as YAML.",
|
|
1153
|
+
"properties": {
|
|
1154
|
+
"path": {
|
|
1155
|
+
"title": "Path",
|
|
1156
|
+
"type": "string"
|
|
1157
|
+
},
|
|
1158
|
+
"repository": {
|
|
1159
|
+
"anyOf": [
|
|
1160
|
+
{
|
|
1161
|
+
"$ref": "#/$defs/AgentConfigRepository"
|
|
1162
|
+
},
|
|
1163
|
+
{
|
|
1164
|
+
"type": "null"
|
|
1165
|
+
}
|
|
1166
|
+
],
|
|
1167
|
+
"default": null
|
|
1168
|
+
}
|
|
1169
|
+
},
|
|
1170
|
+
"required": [
|
|
1171
|
+
"path",
|
|
1172
|
+
"repository"
|
|
1173
|
+
],
|
|
1174
|
+
"title": "AgentConfigSettingsRef",
|
|
1175
|
+
"type": "object"
|
|
1176
|
+
},
|
|
1177
|
+
"AgentConfigSkill": {
|
|
1178
|
+
"additionalProperties": false,
|
|
1179
|
+
"description": "One config-declared Claude Code skill: a repository directory containing\na SKILL.md, resolved at run start and installed at the sandbox's personal\nskill level (`~/.claude/skills/<basename(path)>/`). This is how a config\nbrings in skills its cloned repositories don't provide \u2014 cross-repo refs\n(an org-wide skills repo), public third-party repos, and repo-less runs.\nSkills under a cloned repo's own `.claude/skills/` load by themselves and\ndon't need an entry here.",
|
|
1180
|
+
"properties": {
|
|
1181
|
+
"path": {
|
|
1182
|
+
"title": "Path",
|
|
1183
|
+
"type": "string"
|
|
1184
|
+
},
|
|
1185
|
+
"repository": {
|
|
1186
|
+
"anyOf": [
|
|
1187
|
+
{
|
|
1188
|
+
"$ref": "#/$defs/AgentConfigRepository"
|
|
1189
|
+
},
|
|
1190
|
+
{
|
|
1191
|
+
"type": "null"
|
|
1192
|
+
}
|
|
1193
|
+
],
|
|
1194
|
+
"default": null
|
|
1195
|
+
}
|
|
1196
|
+
},
|
|
1197
|
+
"required": [
|
|
1198
|
+
"path",
|
|
1199
|
+
"repository"
|
|
1200
|
+
],
|
|
1201
|
+
"title": "AgentConfigSkill",
|
|
1202
|
+
"type": "object"
|
|
1203
|
+
},
|
|
1204
|
+
"AgentConfigSource": {
|
|
1205
|
+
"description": "Where a session's config came from. Total: every session has exactly one\nsource, including the ones that never touch defaults resolution.\n\nNot derivable from the row \u2014 `agent_config_id` says WHICH saved config, not\nhow it was chosen, and is null for inline, platform-default, and built-in\nconfigs alike \u2014 so it is persisted for audit and the published wire.",
|
|
1206
|
+
"enum": [
|
|
1207
|
+
"explicit",
|
|
1208
|
+
"inline",
|
|
1209
|
+
"template",
|
|
1210
|
+
"repo_default",
|
|
1211
|
+
"account_default",
|
|
1212
|
+
"platform_default",
|
|
1213
|
+
"trigger",
|
|
1214
|
+
"builtin"
|
|
1215
|
+
],
|
|
1216
|
+
"title": "AgentConfigSource",
|
|
1217
|
+
"type": "string"
|
|
1218
|
+
},
|
|
1219
|
+
"AgentConfigSystemFileRef": {
|
|
1220
|
+
"additionalProperties": false,
|
|
1221
|
+
"properties": {
|
|
1222
|
+
"file": {
|
|
1223
|
+
"title": "File",
|
|
1224
|
+
"type": "string"
|
|
1225
|
+
},
|
|
1226
|
+
"repository": {
|
|
1227
|
+
"anyOf": [
|
|
1228
|
+
{
|
|
1229
|
+
"$ref": "#/$defs/AgentConfigRepository"
|
|
1230
|
+
},
|
|
1231
|
+
{
|
|
1232
|
+
"type": "null"
|
|
1233
|
+
}
|
|
1234
|
+
],
|
|
1235
|
+
"default": null
|
|
1236
|
+
}
|
|
1237
|
+
},
|
|
1238
|
+
"required": [
|
|
1239
|
+
"file",
|
|
1240
|
+
"repository"
|
|
1241
|
+
],
|
|
1242
|
+
"title": "AgentConfigSystemFileRef",
|
|
1243
|
+
"type": "object"
|
|
1244
|
+
},
|
|
3
1245
|
"AttributionType": {
|
|
4
1246
|
"enum": [
|
|
5
1247
|
"github_user",
|
|
@@ -21,16 +1263,6 @@
|
|
|
21
1263
|
"title": "BudgetSource",
|
|
22
1264
|
"type": "string"
|
|
23
1265
|
},
|
|
24
|
-
"DefaultResolution": {
|
|
25
|
-
"description": "How a session that arrived with no explicit config source resolved its\nconfig (documents/eng/DEFAULT_CONFIGS.md \u00a74). Persisted on the session so\naudit and clients can say \"ran under X (repo default)\". A session started\nwith an explicit config/config_id/template_id never enters resolution and\nstores None.",
|
|
26
|
-
"enum": [
|
|
27
|
-
"repo_default",
|
|
28
|
-
"account_default",
|
|
29
|
-
"none"
|
|
30
|
-
],
|
|
31
|
-
"title": "DefaultResolution",
|
|
32
|
-
"type": "string"
|
|
33
|
-
},
|
|
34
1266
|
"DeltaFrame": {
|
|
35
1267
|
"description": "Fire-and-forget partial assistant output for the current response.\nCarries no sequence number and is never resumable; superseded by the\ncommitted record.",
|
|
36
1268
|
"properties": {
|
|
@@ -110,6 +1342,47 @@
|
|
|
110
1342
|
"title": "DoneFrame",
|
|
111
1343
|
"type": "object"
|
|
112
1344
|
},
|
|
1345
|
+
"EffortLevel": {
|
|
1346
|
+
"enum": [
|
|
1347
|
+
"low",
|
|
1348
|
+
"medium",
|
|
1349
|
+
"high",
|
|
1350
|
+
"xhigh",
|
|
1351
|
+
"max"
|
|
1352
|
+
],
|
|
1353
|
+
"title": "EffortLevel",
|
|
1354
|
+
"type": "string"
|
|
1355
|
+
},
|
|
1356
|
+
"EllipsisGrant": {
|
|
1357
|
+
"additionalProperties": false,
|
|
1358
|
+
"description": "One grant entry: a level, optionally narrowed to instances whose\nnatural key (a file's name, a memory's path, a secret's name, a config's\nname, a session's id) matches any of the `match` globs.",
|
|
1359
|
+
"properties": {
|
|
1360
|
+
"level": {
|
|
1361
|
+
"$ref": "#/$defs/Level"
|
|
1362
|
+
},
|
|
1363
|
+
"match": {
|
|
1364
|
+
"anyOf": [
|
|
1365
|
+
{
|
|
1366
|
+
"items": {
|
|
1367
|
+
"type": "string"
|
|
1368
|
+
},
|
|
1369
|
+
"type": "array"
|
|
1370
|
+
},
|
|
1371
|
+
{
|
|
1372
|
+
"type": "null"
|
|
1373
|
+
}
|
|
1374
|
+
],
|
|
1375
|
+
"default": null,
|
|
1376
|
+
"title": "Match"
|
|
1377
|
+
}
|
|
1378
|
+
},
|
|
1379
|
+
"required": [
|
|
1380
|
+
"level",
|
|
1381
|
+
"match"
|
|
1382
|
+
],
|
|
1383
|
+
"title": "EllipsisGrant",
|
|
1384
|
+
"type": "object"
|
|
1385
|
+
},
|
|
113
1386
|
"ErrorFrame": {
|
|
114
1387
|
"description": "Terminal error marker, sent before the server closes with code 1011.",
|
|
115
1388
|
"properties": {
|
|
@@ -132,6 +1405,68 @@
|
|
|
132
1405
|
"title": "ErrorFrame",
|
|
133
1406
|
"type": "object"
|
|
134
1407
|
},
|
|
1408
|
+
"GithubAccountFilter": {
|
|
1409
|
+
"anyOf": [
|
|
1410
|
+
{
|
|
1411
|
+
"additionalProperties": false,
|
|
1412
|
+
"description": "One include-minus-exclude set of GitHub accounts: an account matches iff\nit is in `include` (`true` = all, a list = exactly those, `false`/`[]` =\nnone) AND not in `exclude`. A bare bool or list is shorthand for `include`,\nso `users: true` and `users: [priya-shah]` both parse.",
|
|
1413
|
+
"properties": {
|
|
1414
|
+
"exclude": {
|
|
1415
|
+
"default": [],
|
|
1416
|
+
"items": {
|
|
1417
|
+
"type": "string"
|
|
1418
|
+
},
|
|
1419
|
+
"title": "Exclude",
|
|
1420
|
+
"type": "array"
|
|
1421
|
+
},
|
|
1422
|
+
"include": {
|
|
1423
|
+
"anyOf": [
|
|
1424
|
+
{
|
|
1425
|
+
"items": {
|
|
1426
|
+
"type": "string"
|
|
1427
|
+
},
|
|
1428
|
+
"type": "array"
|
|
1429
|
+
},
|
|
1430
|
+
{
|
|
1431
|
+
"type": "boolean"
|
|
1432
|
+
}
|
|
1433
|
+
],
|
|
1434
|
+
"default": true,
|
|
1435
|
+
"title": "Include"
|
|
1436
|
+
}
|
|
1437
|
+
},
|
|
1438
|
+
"title": "GithubAccountFilter",
|
|
1439
|
+
"type": "object"
|
|
1440
|
+
},
|
|
1441
|
+
{
|
|
1442
|
+
"type": "boolean"
|
|
1443
|
+
},
|
|
1444
|
+
{
|
|
1445
|
+
"items": {
|
|
1446
|
+
"type": "string"
|
|
1447
|
+
},
|
|
1448
|
+
"type": "array"
|
|
1449
|
+
}
|
|
1450
|
+
]
|
|
1451
|
+
},
|
|
1452
|
+
"GithubAccountSelector": {
|
|
1453
|
+
"additionalProperties": false,
|
|
1454
|
+
"description": "A selector of GitHub accounts \u2014 the `for:` audience gate on react\nsurfaces and code review pipelines, classified on the stable entity author\n(the pusher for `push`, the PR author for a review). `users` selects human\naccounts, `bots` selects bot accounts; each is a `GithubAccountFilter`\n(include minus exclude, with bare bool/list shorthand).",
|
|
1455
|
+
"properties": {
|
|
1456
|
+
"bots": {
|
|
1457
|
+
"$ref": "#/$defs/GithubAccountFilter"
|
|
1458
|
+
},
|
|
1459
|
+
"users": {
|
|
1460
|
+
"$ref": "#/$defs/GithubAccountFilter"
|
|
1461
|
+
}
|
|
1462
|
+
},
|
|
1463
|
+
"required": [
|
|
1464
|
+
"bots",
|
|
1465
|
+
"users"
|
|
1466
|
+
],
|
|
1467
|
+
"title": "GithubAccountSelector",
|
|
1468
|
+
"type": "object"
|
|
1469
|
+
},
|
|
135
1470
|
"GithubAccountSnippet": {
|
|
136
1471
|
"description": "Sometimes the GitHub API returns a user of github (can include bots)\nusing this snippet instead of the full GithubAccount model. One example,\nis when the API returns a pull request.\n\nThis is the least amount of info we need to represent a GitHub account.",
|
|
137
1472
|
"properties": {
|
|
@@ -152,77 +1487,312 @@
|
|
|
152
1487
|
}
|
|
153
1488
|
},
|
|
154
1489
|
"required": [
|
|
155
|
-
"avatar_url",
|
|
156
|
-
"id",
|
|
157
|
-
"login",
|
|
158
|
-
"type"
|
|
1490
|
+
"avatar_url",
|
|
1491
|
+
"id",
|
|
1492
|
+
"login",
|
|
1493
|
+
"type"
|
|
1494
|
+
],
|
|
1495
|
+
"title": "GithubAccountSnippet",
|
|
1496
|
+
"type": "object"
|
|
1497
|
+
},
|
|
1498
|
+
"GithubAccountType": {
|
|
1499
|
+
"enum": [
|
|
1500
|
+
"User",
|
|
1501
|
+
"Organization",
|
|
1502
|
+
"Bot",
|
|
1503
|
+
"Mannequin"
|
|
1504
|
+
],
|
|
1505
|
+
"title": "GithubAccountType",
|
|
1506
|
+
"type": "string"
|
|
1507
|
+
},
|
|
1508
|
+
"Harness": {
|
|
1509
|
+
"enum": [
|
|
1510
|
+
"claude_code",
|
|
1511
|
+
"codex"
|
|
1512
|
+
],
|
|
1513
|
+
"title": "Harness",
|
|
1514
|
+
"type": "string"
|
|
1515
|
+
},
|
|
1516
|
+
"HeartbeatFrame": {
|
|
1517
|
+
"description": "A keepalive sent after a period of idleness; doubles as the dead-socket\nprobe. Clients should treat roughly twice the heartbeat interval of\nsilence as a dead connection.",
|
|
1518
|
+
"properties": {
|
|
1519
|
+
"ts": {
|
|
1520
|
+
"description": "Server time when the heartbeat was sent.",
|
|
1521
|
+
"format": "date-time",
|
|
1522
|
+
"title": "Ts",
|
|
1523
|
+
"type": "string"
|
|
1524
|
+
},
|
|
1525
|
+
"type": {
|
|
1526
|
+
"const": "heartbeat",
|
|
1527
|
+
"default": "heartbeat",
|
|
1528
|
+
"title": "Type",
|
|
1529
|
+
"type": "string"
|
|
1530
|
+
}
|
|
1531
|
+
},
|
|
1532
|
+
"required": [
|
|
1533
|
+
"ts",
|
|
1534
|
+
"type"
|
|
1535
|
+
],
|
|
1536
|
+
"title": "HeartbeatFrame",
|
|
1537
|
+
"type": "object"
|
|
1538
|
+
},
|
|
1539
|
+
"IssueAction": {
|
|
1540
|
+
"enum": [
|
|
1541
|
+
"opened",
|
|
1542
|
+
"closed",
|
|
1543
|
+
"commented"
|
|
1544
|
+
],
|
|
1545
|
+
"title": "IssueAction",
|
|
1546
|
+
"type": "string"
|
|
1547
|
+
},
|
|
1548
|
+
"Level": {
|
|
1549
|
+
"description": "What may be done to a resource. Strictly ordered: a grant at one level\nincludes every level below it (write-only would be a phantom capability \u2014\nno real client can create what it cannot read back).",
|
|
1550
|
+
"enum": [
|
|
1551
|
+
"read",
|
|
1552
|
+
"write",
|
|
1553
|
+
"delete"
|
|
1554
|
+
],
|
|
1555
|
+
"title": "Level",
|
|
1556
|
+
"type": "string"
|
|
1557
|
+
},
|
|
1558
|
+
"LinearIssueAction": {
|
|
1559
|
+
"enum": [
|
|
1560
|
+
"opened"
|
|
1561
|
+
],
|
|
1562
|
+
"title": "LinearIssueAction",
|
|
1563
|
+
"type": "string"
|
|
1564
|
+
},
|
|
1565
|
+
"ParentKind": {
|
|
1566
|
+
"description": "How a session relates to its predecessor (parent_agent_session_id) \u2014\nthe ONE \"preceded-by\" chain for every predecessor relationship. Routing\nreads this when the distinction matters.\n\nCONTINUATION \u2014 a follow-up in the same conversation surface (e.g. a Slack\nthread reply spawning a fresh session on the same thread).\nRESUME \u2014 a conversation re-hosted on a new box after its sandbox was torn\ndown (interactive platform; later phase).",
|
|
1567
|
+
"enum": [
|
|
1568
|
+
"continuation",
|
|
1569
|
+
"resume"
|
|
1570
|
+
],
|
|
1571
|
+
"title": "ParentKind",
|
|
1572
|
+
"type": "string"
|
|
1573
|
+
},
|
|
1574
|
+
"PromptBlockedReason": {
|
|
1575
|
+
"description": "Why direct prompting is refused. Absent when prompting is allowed.",
|
|
1576
|
+
"enum": [
|
|
1577
|
+
"mention_surface",
|
|
1578
|
+
"ephemeral_trigger",
|
|
1579
|
+
"non_interactive",
|
|
1580
|
+
"harness_single_turn",
|
|
1581
|
+
"closed"
|
|
1582
|
+
],
|
|
1583
|
+
"title": "PromptBlockedReason",
|
|
1584
|
+
"type": "string"
|
|
1585
|
+
},
|
|
1586
|
+
"PullRequestAction": {
|
|
1587
|
+
"enum": [
|
|
1588
|
+
"opened",
|
|
1589
|
+
"pushed",
|
|
1590
|
+
"merged",
|
|
1591
|
+
"closed",
|
|
1592
|
+
"review_submitted",
|
|
1593
|
+
"commented"
|
|
1594
|
+
],
|
|
1595
|
+
"title": "PullRequestAction",
|
|
1596
|
+
"type": "string"
|
|
1597
|
+
},
|
|
1598
|
+
"ReactIssue": {
|
|
1599
|
+
"additionalProperties": false,
|
|
1600
|
+
"properties": {
|
|
1601
|
+
"for": {
|
|
1602
|
+
"$ref": "#/$defs/GithubAccountSelector"
|
|
1603
|
+
},
|
|
1604
|
+
"labels": {
|
|
1605
|
+
"default": [],
|
|
1606
|
+
"items": {
|
|
1607
|
+
"type": "string"
|
|
1608
|
+
},
|
|
1609
|
+
"title": "Labels",
|
|
1610
|
+
"type": "array"
|
|
1611
|
+
},
|
|
1612
|
+
"on": {
|
|
1613
|
+
"items": {
|
|
1614
|
+
"$ref": "#/$defs/IssueAction"
|
|
1615
|
+
},
|
|
1616
|
+
"title": "On",
|
|
1617
|
+
"type": "array"
|
|
1618
|
+
},
|
|
1619
|
+
"repositories": {
|
|
1620
|
+
"$ref": "#/$defs/RepositoryFilter"
|
|
1621
|
+
}
|
|
1622
|
+
},
|
|
1623
|
+
"required": [
|
|
1624
|
+
"for",
|
|
1625
|
+
"labels",
|
|
1626
|
+
"on",
|
|
1627
|
+
"repositories"
|
|
1628
|
+
],
|
|
1629
|
+
"title": "ReactIssue",
|
|
1630
|
+
"type": "object"
|
|
1631
|
+
},
|
|
1632
|
+
"ReactLinearIssue": {
|
|
1633
|
+
"additionalProperties": false,
|
|
1634
|
+
"properties": {
|
|
1635
|
+
"for": {
|
|
1636
|
+
"$ref": "#/$defs/GithubAccountSelector"
|
|
1637
|
+
},
|
|
1638
|
+
"on": {
|
|
1639
|
+
"default": [
|
|
1640
|
+
"opened"
|
|
1641
|
+
],
|
|
1642
|
+
"items": {
|
|
1643
|
+
"$ref": "#/$defs/LinearIssueAction"
|
|
1644
|
+
},
|
|
1645
|
+
"title": "On",
|
|
1646
|
+
"type": "array"
|
|
1647
|
+
}
|
|
1648
|
+
},
|
|
1649
|
+
"required": [
|
|
1650
|
+
"for",
|
|
1651
|
+
"on"
|
|
1652
|
+
],
|
|
1653
|
+
"title": "ReactLinearIssue",
|
|
1654
|
+
"type": "object"
|
|
1655
|
+
},
|
|
1656
|
+
"ReactPullRequest": {
|
|
1657
|
+
"additionalProperties": false,
|
|
1658
|
+
"properties": {
|
|
1659
|
+
"base": {
|
|
1660
|
+
"default": [],
|
|
1661
|
+
"items": {
|
|
1662
|
+
"type": "string"
|
|
1663
|
+
},
|
|
1664
|
+
"title": "Base",
|
|
1665
|
+
"type": "array"
|
|
1666
|
+
},
|
|
1667
|
+
"draft": {
|
|
1668
|
+
"anyOf": [
|
|
1669
|
+
{
|
|
1670
|
+
"type": "boolean"
|
|
1671
|
+
},
|
|
1672
|
+
{
|
|
1673
|
+
"type": "null"
|
|
1674
|
+
}
|
|
1675
|
+
],
|
|
1676
|
+
"default": null,
|
|
1677
|
+
"title": "Draft"
|
|
1678
|
+
},
|
|
1679
|
+
"for": {
|
|
1680
|
+
"$ref": "#/$defs/GithubAccountSelector"
|
|
1681
|
+
},
|
|
1682
|
+
"head": {
|
|
1683
|
+
"default": [],
|
|
1684
|
+
"items": {
|
|
1685
|
+
"type": "string"
|
|
1686
|
+
},
|
|
1687
|
+
"title": "Head",
|
|
1688
|
+
"type": "array"
|
|
1689
|
+
},
|
|
1690
|
+
"labels": {
|
|
1691
|
+
"default": [],
|
|
1692
|
+
"items": {
|
|
1693
|
+
"type": "string"
|
|
1694
|
+
},
|
|
1695
|
+
"title": "Labels",
|
|
1696
|
+
"type": "array"
|
|
1697
|
+
},
|
|
1698
|
+
"on": {
|
|
1699
|
+
"items": {
|
|
1700
|
+
"$ref": "#/$defs/PullRequestAction"
|
|
1701
|
+
},
|
|
1702
|
+
"title": "On",
|
|
1703
|
+
"type": "array"
|
|
1704
|
+
},
|
|
1705
|
+
"paths": {
|
|
1706
|
+
"default": [],
|
|
1707
|
+
"items": {
|
|
1708
|
+
"type": "string"
|
|
1709
|
+
},
|
|
1710
|
+
"title": "Paths",
|
|
1711
|
+
"type": "array"
|
|
1712
|
+
},
|
|
1713
|
+
"repositories": {
|
|
1714
|
+
"$ref": "#/$defs/RepositoryFilter"
|
|
1715
|
+
}
|
|
1716
|
+
},
|
|
1717
|
+
"required": [
|
|
1718
|
+
"base",
|
|
1719
|
+
"draft",
|
|
1720
|
+
"for",
|
|
1721
|
+
"head",
|
|
1722
|
+
"labels",
|
|
1723
|
+
"on",
|
|
1724
|
+
"paths",
|
|
1725
|
+
"repositories"
|
|
1726
|
+
],
|
|
1727
|
+
"title": "ReactPullRequest",
|
|
1728
|
+
"type": "object"
|
|
1729
|
+
},
|
|
1730
|
+
"ReactPush": {
|
|
1731
|
+
"additionalProperties": false,
|
|
1732
|
+
"properties": {
|
|
1733
|
+
"branch": {
|
|
1734
|
+
"default": [],
|
|
1735
|
+
"items": {
|
|
1736
|
+
"type": "string"
|
|
1737
|
+
},
|
|
1738
|
+
"title": "Branch",
|
|
1739
|
+
"type": "array"
|
|
1740
|
+
},
|
|
1741
|
+
"for": {
|
|
1742
|
+
"$ref": "#/$defs/GithubAccountSelector"
|
|
1743
|
+
},
|
|
1744
|
+
"paths": {
|
|
1745
|
+
"default": [],
|
|
1746
|
+
"items": {
|
|
1747
|
+
"type": "string"
|
|
1748
|
+
},
|
|
1749
|
+
"title": "Paths",
|
|
1750
|
+
"type": "array"
|
|
1751
|
+
},
|
|
1752
|
+
"repositories": {
|
|
1753
|
+
"$ref": "#/$defs/RepositoryFilter"
|
|
1754
|
+
}
|
|
1755
|
+
},
|
|
1756
|
+
"required": [
|
|
1757
|
+
"branch",
|
|
1758
|
+
"for",
|
|
1759
|
+
"paths",
|
|
1760
|
+
"repositories"
|
|
159
1761
|
],
|
|
160
|
-
"title": "
|
|
1762
|
+
"title": "ReactPush",
|
|
161
1763
|
"type": "object"
|
|
162
1764
|
},
|
|
163
|
-
"
|
|
164
|
-
"
|
|
165
|
-
"User",
|
|
166
|
-
"Organization",
|
|
167
|
-
"Bot",
|
|
168
|
-
"Mannequin"
|
|
169
|
-
],
|
|
170
|
-
"title": "GithubAccountType",
|
|
171
|
-
"type": "string"
|
|
172
|
-
},
|
|
173
|
-
"Harness": {
|
|
174
|
-
"enum": [
|
|
175
|
-
"claude_code",
|
|
176
|
-
"codex"
|
|
177
|
-
],
|
|
178
|
-
"title": "Harness",
|
|
179
|
-
"type": "string"
|
|
180
|
-
},
|
|
181
|
-
"HeartbeatFrame": {
|
|
182
|
-
"description": "A keepalive sent after a period of idleness; doubles as the dead-socket\nprobe. Clients should treat roughly twice the heartbeat interval of\nsilence as a dead connection.",
|
|
1765
|
+
"ReactSentry": {
|
|
1766
|
+
"additionalProperties": false,
|
|
183
1767
|
"properties": {
|
|
184
|
-
"
|
|
185
|
-
"
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
"
|
|
1768
|
+
"on": {
|
|
1769
|
+
"items": {
|
|
1770
|
+
"$ref": "#/$defs/SentryAction"
|
|
1771
|
+
},
|
|
1772
|
+
"title": "On",
|
|
1773
|
+
"type": "array"
|
|
189
1774
|
},
|
|
190
|
-
"
|
|
191
|
-
"
|
|
192
|
-
"
|
|
193
|
-
|
|
194
|
-
|
|
1775
|
+
"projects": {
|
|
1776
|
+
"default": [],
|
|
1777
|
+
"items": {
|
|
1778
|
+
"type": "string"
|
|
1779
|
+
},
|
|
1780
|
+
"title": "Projects",
|
|
1781
|
+
"type": "array"
|
|
195
1782
|
}
|
|
196
1783
|
},
|
|
197
1784
|
"required": [
|
|
198
|
-
"
|
|
199
|
-
"
|
|
1785
|
+
"on",
|
|
1786
|
+
"projects"
|
|
200
1787
|
],
|
|
201
|
-
"title": "
|
|
1788
|
+
"title": "ReactSentry",
|
|
202
1789
|
"type": "object"
|
|
203
1790
|
},
|
|
204
|
-
"
|
|
205
|
-
"
|
|
206
|
-
"
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
"resume"
|
|
210
|
-
],
|
|
211
|
-
"title": "ParentKind",
|
|
212
|
-
"type": "string"
|
|
213
|
-
},
|
|
214
|
-
"PromptBlockedReason": {
|
|
215
|
-
"description": "Why direct prompting is refused. Absent when prompting is allowed.",
|
|
216
|
-
"enum": [
|
|
217
|
-
"mention_surface",
|
|
218
|
-
"ephemeral_trigger",
|
|
219
|
-
"non_interactive",
|
|
220
|
-
"harness_single_turn",
|
|
221
|
-
"closed",
|
|
222
|
-
"laptop"
|
|
223
|
-
],
|
|
224
|
-
"title": "PromptBlockedReason",
|
|
225
|
-
"type": "string"
|
|
1791
|
+
"ReactSlackChannel": {
|
|
1792
|
+
"additionalProperties": false,
|
|
1793
|
+
"properties": {},
|
|
1794
|
+
"title": "ReactSlackChannel",
|
|
1795
|
+
"type": "object"
|
|
226
1796
|
},
|
|
227
1797
|
"RecordsAppendFrame": {
|
|
228
1798
|
"description": "Cursored append-only delivery of session records, ordered by feed_seq,\nfrom all sources. Every record in the frame advances the resume cursor \u2014\nincluding ones a client renders as nothing.",
|
|
@@ -249,6 +1819,59 @@
|
|
|
249
1819
|
"title": "RecordsAppendFrame",
|
|
250
1820
|
"type": "object"
|
|
251
1821
|
},
|
|
1822
|
+
"RepositoryFilter": {
|
|
1823
|
+
"anyOf": [
|
|
1824
|
+
{
|
|
1825
|
+
"additionalProperties": false,
|
|
1826
|
+
"description": "The watch scope of a trigger, by repository name (owner defaults to the\naccount). Include minus exclude: `include: []` (the default) covers every\nrepository of the installation, so `exclude`-only means \"all except these\"\nand keeps covering repositories added to the org later. A bare list is\nshorthand for `include`.",
|
|
1827
|
+
"properties": {
|
|
1828
|
+
"exclude": {
|
|
1829
|
+
"default": [],
|
|
1830
|
+
"items": {
|
|
1831
|
+
"type": "string"
|
|
1832
|
+
},
|
|
1833
|
+
"title": "Exclude",
|
|
1834
|
+
"type": "array"
|
|
1835
|
+
},
|
|
1836
|
+
"include": {
|
|
1837
|
+
"default": [],
|
|
1838
|
+
"items": {
|
|
1839
|
+
"type": "string"
|
|
1840
|
+
},
|
|
1841
|
+
"title": "Include",
|
|
1842
|
+
"type": "array"
|
|
1843
|
+
}
|
|
1844
|
+
},
|
|
1845
|
+
"title": "RepositoryFilter",
|
|
1846
|
+
"type": "object"
|
|
1847
|
+
},
|
|
1848
|
+
{
|
|
1849
|
+
"items": {
|
|
1850
|
+
"type": "string"
|
|
1851
|
+
},
|
|
1852
|
+
"type": "array"
|
|
1853
|
+
}
|
|
1854
|
+
]
|
|
1855
|
+
},
|
|
1856
|
+
"Resource": {
|
|
1857
|
+
"description": "Everything a credential can be granted access to, one value per /v1\nresource family. `TOKENS` is reserved for the future token-management\nroutes; nothing maps to it yet.",
|
|
1858
|
+
"enum": [
|
|
1859
|
+
"account",
|
|
1860
|
+
"alerts",
|
|
1861
|
+
"sessions",
|
|
1862
|
+
"files",
|
|
1863
|
+
"memories",
|
|
1864
|
+
"reviews",
|
|
1865
|
+
"configs",
|
|
1866
|
+
"defaults",
|
|
1867
|
+
"secrets",
|
|
1868
|
+
"templates",
|
|
1869
|
+
"integrations",
|
|
1870
|
+
"tokens"
|
|
1871
|
+
],
|
|
1872
|
+
"title": "Resource",
|
|
1873
|
+
"type": "string"
|
|
1874
|
+
},
|
|
252
1875
|
"RunStatus": {
|
|
253
1876
|
"description": "What the current (or most recent) execution is doing (backs `run`).",
|
|
254
1877
|
"enum": [
|
|
@@ -265,9 +1888,21 @@
|
|
|
265
1888
|
"title": "RunStatus",
|
|
266
1889
|
"type": "string"
|
|
267
1890
|
},
|
|
1891
|
+
"SentryAction": {
|
|
1892
|
+
"enum": [
|
|
1893
|
+
"issue_alert",
|
|
1894
|
+
"metric_alert"
|
|
1895
|
+
],
|
|
1896
|
+
"title": "SentryAction",
|
|
1897
|
+
"type": "string"
|
|
1898
|
+
},
|
|
268
1899
|
"Session": {
|
|
269
|
-
"description": "An agent session: one conversation with an agent, from trigger to\nterminal state. Returned by `GET /sessions/{id}` and carried by the\nsession stream's `session`/`snapshot` frames \u2014 REST and stream never\ndisagree about what a session looks like.",
|
|
1900
|
+
"description": "An agent session: one conversation with an agent, from trigger to\nterminal state. Returned by `GET /v1/sessions/{id}` and carried by the\nsession stream's `session`/`snapshot` frames \u2014 REST and stream never\ndisagree about what a session looks like.",
|
|
270
1901
|
"properties": {
|
|
1902
|
+
"agent": {
|
|
1903
|
+
"$ref": "#/$defs/SessionAgent",
|
|
1904
|
+
"description": "The agent that ran: the config the session executed, where that config came from, and any override merged into it."
|
|
1905
|
+
},
|
|
271
1906
|
"attribution": {
|
|
272
1907
|
"$ref": "#/$defs/SessionAttribution",
|
|
273
1908
|
"description": "The principal this session is attributed to."
|
|
@@ -276,46 +1911,6 @@
|
|
|
276
1911
|
"$ref": "#/$defs/SessionBudget",
|
|
277
1912
|
"description": "The spend budget enforced for this session."
|
|
278
1913
|
},
|
|
279
|
-
"client_version": {
|
|
280
|
-
"anyOf": [
|
|
281
|
-
{
|
|
282
|
-
"type": "string"
|
|
283
|
-
},
|
|
284
|
-
{
|
|
285
|
-
"type": "null"
|
|
286
|
-
}
|
|
287
|
-
],
|
|
288
|
-
"default": null,
|
|
289
|
-
"description": "Version of the client that started the session, if reported.",
|
|
290
|
-
"title": "Client Version"
|
|
291
|
-
},
|
|
292
|
-
"config_id": {
|
|
293
|
-
"anyOf": [
|
|
294
|
-
{
|
|
295
|
-
"type": "string"
|
|
296
|
-
},
|
|
297
|
-
{
|
|
298
|
-
"type": "null"
|
|
299
|
-
}
|
|
300
|
-
],
|
|
301
|
-
"default": null,
|
|
302
|
-
"description": "Identifier of the saved agent config the session ran on, if any.",
|
|
303
|
-
"title": "Config Id"
|
|
304
|
-
},
|
|
305
|
-
"config_override": {
|
|
306
|
-
"anyOf": [
|
|
307
|
-
{
|
|
308
|
-
"additionalProperties": true,
|
|
309
|
-
"type": "object"
|
|
310
|
-
},
|
|
311
|
-
{
|
|
312
|
-
"type": "null"
|
|
313
|
-
}
|
|
314
|
-
],
|
|
315
|
-
"default": null,
|
|
316
|
-
"description": "The partial-config diff applied for this run; null when the config was unmodified.",
|
|
317
|
-
"title": "Config Override"
|
|
318
|
-
},
|
|
319
1914
|
"context_repository": {
|
|
320
1915
|
"anyOf": [
|
|
321
1916
|
{
|
|
@@ -339,18 +1934,6 @@
|
|
|
339
1934
|
"title": "Created At",
|
|
340
1935
|
"type": "string"
|
|
341
1936
|
},
|
|
342
|
-
"default_resolution": {
|
|
343
|
-
"anyOf": [
|
|
344
|
-
{
|
|
345
|
-
"$ref": "#/$defs/DefaultResolution"
|
|
346
|
-
},
|
|
347
|
-
{
|
|
348
|
-
"type": "null"
|
|
349
|
-
}
|
|
350
|
-
],
|
|
351
|
-
"default": null,
|
|
352
|
-
"description": "How the session's config was resolved from the account's defaults, when no explicit config was given."
|
|
353
|
-
},
|
|
354
1937
|
"exit_status": {
|
|
355
1938
|
"anyOf": [
|
|
356
1939
|
{
|
|
@@ -400,19 +1983,6 @@
|
|
|
400
1983
|
"description": "When the session last received a message.",
|
|
401
1984
|
"title": "Last Message At"
|
|
402
1985
|
},
|
|
403
|
-
"live_summary": {
|
|
404
|
-
"anyOf": [
|
|
405
|
-
{
|
|
406
|
-
"type": "string"
|
|
407
|
-
},
|
|
408
|
-
{
|
|
409
|
-
"type": "null"
|
|
410
|
-
}
|
|
411
|
-
],
|
|
412
|
-
"default": null,
|
|
413
|
-
"description": "A live summary of the session's progress while it runs.",
|
|
414
|
-
"title": "Live Summary"
|
|
415
|
-
},
|
|
416
1986
|
"metadata": {
|
|
417
1987
|
"additionalProperties": {
|
|
418
1988
|
"type": "string"
|
|
@@ -459,32 +2029,6 @@
|
|
|
459
2029
|
"$ref": "#/$defs/SessionPrompting",
|
|
460
2030
|
"description": "Whether a client may send this session a message and, when it may not, the reason to show instead of a composer."
|
|
461
2031
|
},
|
|
462
|
-
"sandbox_id": {
|
|
463
|
-
"anyOf": [
|
|
464
|
-
{
|
|
465
|
-
"type": "string"
|
|
466
|
-
},
|
|
467
|
-
{
|
|
468
|
-
"type": "null"
|
|
469
|
-
}
|
|
470
|
-
],
|
|
471
|
-
"default": null,
|
|
472
|
-
"description": "Identifier of the sandbox the session runs in, if any.",
|
|
473
|
-
"title": "Sandbox Id"
|
|
474
|
-
},
|
|
475
|
-
"session_key": {
|
|
476
|
-
"anyOf": [
|
|
477
|
-
{
|
|
478
|
-
"type": "string"
|
|
479
|
-
},
|
|
480
|
-
{
|
|
481
|
-
"type": "null"
|
|
482
|
-
}
|
|
483
|
-
],
|
|
484
|
-
"default": null,
|
|
485
|
-
"description": "Key identifying the durable conversation this session belongs to, or null for single-shot sessions.",
|
|
486
|
-
"title": "Session Key"
|
|
487
|
-
},
|
|
488
2032
|
"session_state": {
|
|
489
2033
|
"anyOf": [
|
|
490
2034
|
{
|
|
@@ -499,7 +2043,7 @@
|
|
|
499
2043
|
},
|
|
500
2044
|
"source": {
|
|
501
2045
|
"$ref": "#/$defs/SessionSource",
|
|
502
|
-
"description": "Where the session came from (e.g. react, manual, api, cli, mention, cron
|
|
2046
|
+
"description": "Where the session came from (e.g. react, manual, api, cli, mention, cron)."
|
|
503
2047
|
},
|
|
504
2048
|
"status": {
|
|
505
2049
|
"$ref": "#/$defs/SessionStatus",
|
|
@@ -522,6 +2066,18 @@
|
|
|
522
2066
|
"$ref": "#/$defs/SessionStopped",
|
|
523
2067
|
"description": "The stop request, if the session was stopped."
|
|
524
2068
|
},
|
|
2069
|
+
"summary": {
|
|
2070
|
+
"anyOf": [
|
|
2071
|
+
{
|
|
2072
|
+
"$ref": "#/$defs/SessionSummary"
|
|
2073
|
+
},
|
|
2074
|
+
{
|
|
2075
|
+
"type": "null"
|
|
2076
|
+
}
|
|
2077
|
+
],
|
|
2078
|
+
"default": null,
|
|
2079
|
+
"description": "The latest live summary of the session's progress while it runs, and when it was generated."
|
|
2080
|
+
},
|
|
525
2081
|
"surface": {
|
|
526
2082
|
"anyOf": [
|
|
527
2083
|
{
|
|
@@ -532,7 +2088,7 @@
|
|
|
532
2088
|
}
|
|
533
2089
|
],
|
|
534
2090
|
"default": null,
|
|
535
|
-
"description": "The public status projection; null
|
|
2091
|
+
"description": "The public status projection; null on list/search responses, which do not derive it."
|
|
536
2092
|
},
|
|
537
2093
|
"tokens": {
|
|
538
2094
|
"$ref": "#/$defs/SessionTokens",
|
|
@@ -543,70 +2099,86 @@
|
|
|
543
2099
|
"format": "date-time",
|
|
544
2100
|
"title": "Updated At",
|
|
545
2101
|
"type": "string"
|
|
546
|
-
},
|
|
547
|
-
"webhook_id": {
|
|
548
|
-
"anyOf": [
|
|
549
|
-
{
|
|
550
|
-
"type": "string"
|
|
551
|
-
},
|
|
552
|
-
{
|
|
553
|
-
"type": "null"
|
|
554
|
-
}
|
|
555
|
-
],
|
|
556
|
-
"default": null,
|
|
557
|
-
"description": "Identifier of the webhook event that triggered the session, if any.",
|
|
558
|
-
"title": "Webhook Id"
|
|
559
|
-
},
|
|
560
|
-
"webhook_type": {
|
|
561
|
-
"anyOf": [
|
|
562
|
-
{
|
|
563
|
-
"$ref": "#/$defs/WebhookType"
|
|
564
|
-
},
|
|
565
|
-
{
|
|
566
|
-
"type": "null"
|
|
567
|
-
}
|
|
568
|
-
],
|
|
569
|
-
"default": null,
|
|
570
|
-
"description": "Type of the webhook event that triggered the session, if any."
|
|
571
2102
|
}
|
|
572
2103
|
},
|
|
573
2104
|
"required": [
|
|
2105
|
+
"agent",
|
|
574
2106
|
"attribution",
|
|
575
2107
|
"budget",
|
|
576
|
-
"client_version",
|
|
577
|
-
"config_id",
|
|
578
|
-
"config_override",
|
|
579
2108
|
"context_repository",
|
|
580
2109
|
"cost",
|
|
581
2110
|
"created_at",
|
|
582
|
-
"default_resolution",
|
|
583
2111
|
"exit_status",
|
|
584
2112
|
"harness",
|
|
585
2113
|
"id",
|
|
586
2114
|
"last_activity_at",
|
|
587
2115
|
"last_message_at",
|
|
588
|
-
"live_summary",
|
|
589
2116
|
"metadata",
|
|
590
2117
|
"output_prs",
|
|
591
2118
|
"parent",
|
|
592
2119
|
"prompt",
|
|
593
2120
|
"prompting",
|
|
594
|
-
"sandbox_id",
|
|
595
|
-
"session_key",
|
|
596
2121
|
"session_state",
|
|
597
2122
|
"source",
|
|
598
2123
|
"status",
|
|
599
2124
|
"status_reason",
|
|
600
2125
|
"stopped",
|
|
2126
|
+
"summary",
|
|
601
2127
|
"surface",
|
|
602
2128
|
"tokens",
|
|
603
|
-
"updated_at"
|
|
604
|
-
"webhook_id",
|
|
605
|
-
"webhook_type"
|
|
2129
|
+
"updated_at"
|
|
606
2130
|
],
|
|
607
2131
|
"title": "Session",
|
|
608
2132
|
"type": "object"
|
|
609
2133
|
},
|
|
2134
|
+
"SessionAgent": {
|
|
2135
|
+
"description": "The agent this session ran: the config it actually executed, where that\nconfig came from, and the diff that was merged in \u2014 the same\neffective-value-plus-provenance shape `SessionBudget` uses.\n\n`config` is the snapshot frozen when the session was created; `config_id`\npoints at the saved config as it exists NOW. They diverge legitimately: a\nYAML edit after the session started, or any `override`, leaves the pointer\ndescribing something the session never ran.",
|
|
2136
|
+
"properties": {
|
|
2137
|
+
"config": {
|
|
2138
|
+
"$ref": "#/$defs/AgentConfig",
|
|
2139
|
+
"description": "The agent config the session actually ran, frozen when the session was created."
|
|
2140
|
+
},
|
|
2141
|
+
"config_id": {
|
|
2142
|
+
"anyOf": [
|
|
2143
|
+
{
|
|
2144
|
+
"type": "string"
|
|
2145
|
+
},
|
|
2146
|
+
{
|
|
2147
|
+
"type": "null"
|
|
2148
|
+
}
|
|
2149
|
+
],
|
|
2150
|
+
"default": null,
|
|
2151
|
+
"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.",
|
|
2152
|
+
"title": "Config Id"
|
|
2153
|
+
},
|
|
2154
|
+
"override": {
|
|
2155
|
+
"anyOf": [
|
|
2156
|
+
{
|
|
2157
|
+
"additionalProperties": true,
|
|
2158
|
+
"type": "object"
|
|
2159
|
+
},
|
|
2160
|
+
{
|
|
2161
|
+
"type": "null"
|
|
2162
|
+
}
|
|
2163
|
+
],
|
|
2164
|
+
"default": null,
|
|
2165
|
+
"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.",
|
|
2166
|
+
"title": "Override"
|
|
2167
|
+
},
|
|
2168
|
+
"source": {
|
|
2169
|
+
"$ref": "#/$defs/AgentConfigSource",
|
|
2170
|
+
"description": "How this session's config was chosen."
|
|
2171
|
+
}
|
|
2172
|
+
},
|
|
2173
|
+
"required": [
|
|
2174
|
+
"config",
|
|
2175
|
+
"config_id",
|
|
2176
|
+
"override",
|
|
2177
|
+
"source"
|
|
2178
|
+
],
|
|
2179
|
+
"title": "SessionAgent",
|
|
2180
|
+
"type": "object"
|
|
2181
|
+
},
|
|
610
2182
|
"SessionAttribution": {
|
|
611
2183
|
"description": "The principal a session is attributed to: what kind, its id, and \u2014 when\nthe kind is a GitHub user \u2014 the resolved display snippet.",
|
|
612
2184
|
"properties": {
|
|
@@ -733,6 +2305,8 @@
|
|
|
733
2305
|
"missing_repo_access",
|
|
734
2306
|
"missing_token_permissions",
|
|
735
2307
|
"missing_sandbox_variables",
|
|
2308
|
+
"blocked",
|
|
2309
|
+
"contact_email_required",
|
|
736
2310
|
"cancelled",
|
|
737
2311
|
"interrupted",
|
|
738
2312
|
"error",
|
|
@@ -1226,8 +2800,7 @@
|
|
|
1226
2800
|
"api",
|
|
1227
2801
|
"cli",
|
|
1228
2802
|
"mention",
|
|
1229
|
-
"cron"
|
|
1230
|
-
"laptop"
|
|
2803
|
+
"cron"
|
|
1231
2804
|
],
|
|
1232
2805
|
"title": "SessionSource",
|
|
1233
2806
|
"type": "string"
|
|
@@ -1307,8 +2880,38 @@
|
|
|
1307
2880
|
"title": "SessionStopped",
|
|
1308
2881
|
"type": "object"
|
|
1309
2882
|
},
|
|
2883
|
+
"SessionSummary": {
|
|
2884
|
+
"description": "A live one-line summary of what the session is working on, refreshed\nevery few steps while it runs.",
|
|
2885
|
+
"properties": {
|
|
2886
|
+
"created_at": {
|
|
2887
|
+
"anyOf": [
|
|
2888
|
+
{
|
|
2889
|
+
"format": "date-time",
|
|
2890
|
+
"type": "string"
|
|
2891
|
+
},
|
|
2892
|
+
{
|
|
2893
|
+
"type": "null"
|
|
2894
|
+
}
|
|
2895
|
+
],
|
|
2896
|
+
"default": null,
|
|
2897
|
+
"description": "When this summary line was generated. Null on summaries written before generation time was tracked.",
|
|
2898
|
+
"title": "Created At"
|
|
2899
|
+
},
|
|
2900
|
+
"description": {
|
|
2901
|
+
"description": "One-line description of what the session is working on.",
|
|
2902
|
+
"title": "Description",
|
|
2903
|
+
"type": "string"
|
|
2904
|
+
}
|
|
2905
|
+
},
|
|
2906
|
+
"required": [
|
|
2907
|
+
"created_at",
|
|
2908
|
+
"description"
|
|
2909
|
+
],
|
|
2910
|
+
"title": "SessionSummary",
|
|
2911
|
+
"type": "object"
|
|
2912
|
+
},
|
|
1310
2913
|
"SessionSurface": {
|
|
1311
|
-
"description": "The three fields we expose
|
|
2914
|
+
"description": "The three fields we expose.\n\n`use_enum_values=True` (from CustomBaseModel) stores the members as their\nstring values, so this serializes to `{\"session\": \"alive\", \"run\": \"waiting\",\n\"status\": \"waiting\"}` \u2014 a plain object, not enum names.",
|
|
1312
2915
|
"properties": {
|
|
1313
2916
|
"run": {
|
|
1314
2917
|
"anyOf": [
|
|
@@ -1496,31 +3099,10 @@
|
|
|
1496
3099
|
],
|
|
1497
3100
|
"title": "TokensInfo",
|
|
1498
3101
|
"type": "object"
|
|
1499
|
-
},
|
|
1500
|
-
"WebhookType": {
|
|
1501
|
-
"enum": [
|
|
1502
|
-
"github.issue",
|
|
1503
|
-
"github.issue_comment",
|
|
1504
|
-
"github.push",
|
|
1505
|
-
"github.pull_request",
|
|
1506
|
-
"github.pull_request_comment",
|
|
1507
|
-
"github.pull_request_review",
|
|
1508
|
-
"github.pull_request_review_comment",
|
|
1509
|
-
"slack.app_mention",
|
|
1510
|
-
"slack.message",
|
|
1511
|
-
"slack.channel_created",
|
|
1512
|
-
"linear.issue",
|
|
1513
|
-
"linear.issue_comment",
|
|
1514
|
-
"sentry.event_alert",
|
|
1515
|
-
"sentry.metric_alert",
|
|
1516
|
-
"user.message"
|
|
1517
|
-
],
|
|
1518
|
-
"title": "WebhookType",
|
|
1519
|
-
"type": "string"
|
|
1520
3102
|
}
|
|
1521
3103
|
},
|
|
1522
3104
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1523
|
-
"description": "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 \u2014 additive frames are not a protocol break.",
|
|
3105
|
+
"description": "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 \u2014 additive frames are not a protocol break.",
|
|
1524
3106
|
"oneOf": [
|
|
1525
3107
|
{
|
|
1526
3108
|
"$ref": "#/$defs/SnapshotFrame"
|