@ellipsis-dev/sdk 0.28.0 → 0.31.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/README.md +25 -0
- package/dist/{chunk-YJC53TA7.js → chunk-G2AEYZW2.js} +5 -9
- package/dist/index.d.ts +1853 -757
- package/dist/index.js +1236 -365
- package/dist/store/index.d.ts +68 -23
- package/dist/store/index.js +637 -330
- package/dist/stream/index.d.ts +3 -3
- package/dist/stream/index.js +1 -1
- package/dist/{types-B-jIFh4_.d.ts → types-BQxZcD0_.d.ts} +6342 -6117
- package/package.json +1 -1
- package/schema/collection_frames.schema.json +1485 -933
- package/schema/frames.schema.json +3379 -4844
- package/schema/lifecycle.schema.json +182 -323
- package/schema/openapi.v1.json +18809 -12100
- package/schema/trigger_fields.schema.json +1 -1
|
@@ -1,24 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$defs": {
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"github_user",
|
|
6
|
-
"linear_user",
|
|
7
|
-
"slack_user",
|
|
8
|
-
"api_key"
|
|
9
|
-
],
|
|
10
|
-
"title": "AttributionType",
|
|
11
|
-
"type": "string"
|
|
12
|
-
},
|
|
13
|
-
"Automation": {
|
|
14
|
-
"description": "An automation: a saved agent definition that runs on its trigger or\nwhen invoked, plus where it syncs from and the state of that sync.",
|
|
3
|
+
"Agent": {
|
|
4
|
+
"description": "An agent: a saved agent definition that runs on its trigger or\nwhen invoked, plus where it syncs from and the state of that sync.",
|
|
15
5
|
"properties": {
|
|
16
6
|
"config": {
|
|
17
|
-
"$ref": "#/$defs/
|
|
18
|
-
"description": "The
|
|
7
|
+
"$ref": "#/$defs/AgentConfig",
|
|
8
|
+
"description": "The agent definition itself, in the same schema as its YAML file: identity, trigger, input contract, and the session block."
|
|
19
9
|
},
|
|
20
10
|
"created_at": {
|
|
21
|
-
"description": "When the
|
|
11
|
+
"description": "When the agent was created.",
|
|
22
12
|
"format": "date-time",
|
|
23
13
|
"title": "Created At",
|
|
24
14
|
"type": "string"
|
|
@@ -46,10 +36,10 @@
|
|
|
46
36
|
}
|
|
47
37
|
],
|
|
48
38
|
"default": null,
|
|
49
|
-
"description": "The GitHub account that last edited the
|
|
39
|
+
"description": "The GitHub account that last edited the agent, when the edit came from a known user."
|
|
50
40
|
},
|
|
51
41
|
"id": {
|
|
52
|
-
"description": "Unique identifier of the
|
|
42
|
+
"description": "Unique identifier of the agent.",
|
|
53
43
|
"title": "Id",
|
|
54
44
|
"type": "string"
|
|
55
45
|
},
|
|
@@ -77,7 +67,7 @@
|
|
|
77
67
|
}
|
|
78
68
|
],
|
|
79
69
|
"default": null,
|
|
80
|
-
"description": "The most recent session this
|
|
70
|
+
"description": "The most recent session this agent started, or null if it has never run.",
|
|
81
71
|
"title": "Last Session Id"
|
|
82
72
|
},
|
|
83
73
|
"last_sync_error": {
|
|
@@ -90,7 +80,7 @@
|
|
|
90
80
|
}
|
|
91
81
|
],
|
|
92
82
|
"default": null,
|
|
93
|
-
"description": "The parse or validation error from the most recent sync attempt, or null when it succeeded. A non-null value means the
|
|
83
|
+
"description": "The parse or validation error from the most recent sync attempt, or null when it succeeded. A non-null value means the agent is not running the YAML currently on the branch.",
|
|
94
84
|
"title": "Last Sync Error"
|
|
95
85
|
},
|
|
96
86
|
"last_synced_commit_sha": {
|
|
@@ -103,12 +93,12 @@
|
|
|
103
93
|
}
|
|
104
94
|
],
|
|
105
95
|
"default": null,
|
|
106
|
-
"description": "The last commit the
|
|
96
|
+
"description": "The last commit the agent was synced from.",
|
|
107
97
|
"title": "Last Synced Commit Sha"
|
|
108
98
|
},
|
|
109
99
|
"managed_by": {
|
|
110
100
|
"$ref": "#/$defs/ConfigManagedBy",
|
|
111
|
-
"description": "Which writer owns this
|
|
101
|
+
"description": "Which writer owns this agent. \"github\" agents are defined by a file in a repository and are changed by editing that file; \"api\" agents have no file and are changed through this API."
|
|
112
102
|
},
|
|
113
103
|
"name": {
|
|
114
104
|
"anyOf": [
|
|
@@ -120,7 +110,7 @@
|
|
|
120
110
|
}
|
|
121
111
|
],
|
|
122
112
|
"default": null,
|
|
123
|
-
"description": "The
|
|
113
|
+
"description": "The agent's account-unique addressable name (a slug of its display name); usable anywhere an agent is referenced, interchangeably with the id.",
|
|
124
114
|
"title": "Name"
|
|
125
115
|
},
|
|
126
116
|
"pending_pull_request_url": {
|
|
@@ -133,7 +123,7 @@
|
|
|
133
123
|
}
|
|
134
124
|
],
|
|
135
125
|
"default": null,
|
|
136
|
-
"description": "The open pull request that adds this
|
|
126
|
+
"description": "The open pull request that adds this agent's file. Non-null means the agent is not live yet: it starts running once the pull request merges and syncs.",
|
|
137
127
|
"title": "Pending Pull Request Url"
|
|
138
128
|
},
|
|
139
129
|
"sha": {
|
|
@@ -151,10 +141,10 @@
|
|
|
151
141
|
}
|
|
152
142
|
],
|
|
153
143
|
"default": null,
|
|
154
|
-
"description": "The repository, path, and branch the
|
|
144
|
+
"description": "The repository, path, and branch the agent syncs from. Null only transiently, before the creating pull request's file lands on the branch."
|
|
155
145
|
},
|
|
156
146
|
"updated_at": {
|
|
157
|
-
"description": "When the
|
|
147
|
+
"description": "When the agent was last updated.",
|
|
158
148
|
"format": "date-time",
|
|
159
149
|
"title": "Updated At",
|
|
160
150
|
"type": "string"
|
|
@@ -177,25 +167,15 @@
|
|
|
177
167
|
"source_details",
|
|
178
168
|
"updated_at"
|
|
179
169
|
],
|
|
180
|
-
"title": "
|
|
170
|
+
"title": "Agent",
|
|
181
171
|
"type": "object"
|
|
182
172
|
},
|
|
183
|
-
"
|
|
173
|
+
"AgentConfig": {
|
|
184
174
|
"additionalProperties": false,
|
|
185
|
-
"description": "A saved
|
|
175
|
+
"description": "A saved agent, as written in its YAML file: identity\n(`ellipsis`), when it runs (`trigger`), what goes in (`input`), and the\n`session:` block every session it starts is frozen from. Field order is\nthe canonical key order for files and `to_yaml` exports.",
|
|
186
176
|
"properties": {
|
|
187
177
|
"ellipsis": {
|
|
188
|
-
"$ref": "#/$defs/
|
|
189
|
-
"default": {
|
|
190
|
-
"description": null,
|
|
191
|
-
"enabled": true,
|
|
192
|
-
"metadata": {
|
|
193
|
-
"annotations": {},
|
|
194
|
-
"labels": []
|
|
195
|
-
},
|
|
196
|
-
"name": null,
|
|
197
|
-
"version": "v1"
|
|
198
|
-
}
|
|
178
|
+
"$ref": "#/$defs/AgentIdentity"
|
|
199
179
|
},
|
|
200
180
|
"input": {
|
|
201
181
|
"anyOf": [
|
|
@@ -244,12 +224,12 @@
|
|
|
244
224
|
"session",
|
|
245
225
|
"trigger"
|
|
246
226
|
],
|
|
247
|
-
"title": "
|
|
227
|
+
"title": "AgentConfig",
|
|
248
228
|
"type": "object"
|
|
249
229
|
},
|
|
250
|
-
"
|
|
230
|
+
"AgentIdentity": {
|
|
251
231
|
"additionalProperties": false,
|
|
252
|
-
"description": "The Ellipsis product namespace for a config file: which schema this is\n(`version`), the human-facing identity (`name`/`description`), freeform\norganizational `metadata`, and whether the agent is `enabled`. The\npresence of a top-level `ellipsis:` mapping is what marks a YAML file as\nan Ellipsis
|
|
232
|
+
"description": "The Ellipsis product namespace for a config file: which schema this is\n(`version`), the human-facing identity (`name`/`description`), freeform\norganizational `metadata`, and whether the agent is `enabled`. The\npresence of a top-level `ellipsis:` mapping is what marks a YAML file as\nan Ellipsis agent (vs arbitrary YAML that merely lives under a\nconfig directory) \u2014 see `yaml_is_ellipsis_config`.\n\n`enabled` is agent behavior, not freeform metadata, so it stays inside\nthe config `sha` (only `metadata` is sha-excluded). Whether a session\naccepts messages is a per-run choice (POST /v1/sessions `interactive`),\nnot a config one.",
|
|
253
233
|
"properties": {
|
|
254
234
|
"description": {
|
|
255
235
|
"anyOf": [
|
|
@@ -268,6 +248,11 @@
|
|
|
268
248
|
"title": "Enabled",
|
|
269
249
|
"type": "boolean"
|
|
270
250
|
},
|
|
251
|
+
"kind": {
|
|
252
|
+
"const": "agent",
|
|
253
|
+
"title": "Kind",
|
|
254
|
+
"type": "string"
|
|
255
|
+
},
|
|
271
256
|
"metadata": {
|
|
272
257
|
"$ref": "#/$defs/ConfigMetadata",
|
|
273
258
|
"default": {
|
|
@@ -296,36 +281,47 @@
|
|
|
296
281
|
"required": [
|
|
297
282
|
"description",
|
|
298
283
|
"enabled",
|
|
284
|
+
"kind",
|
|
299
285
|
"metadata",
|
|
300
286
|
"name",
|
|
301
287
|
"version"
|
|
302
288
|
],
|
|
303
|
-
"title": "
|
|
289
|
+
"title": "AgentIdentity",
|
|
304
290
|
"type": "object"
|
|
305
291
|
},
|
|
306
|
-
"
|
|
292
|
+
"AgentListStreamMessage": {
|
|
307
293
|
"properties": {
|
|
308
|
-
"
|
|
294
|
+
"agents": {
|
|
309
295
|
"items": {
|
|
310
|
-
"$ref": "#/$defs/
|
|
296
|
+
"$ref": "#/$defs/Agent"
|
|
311
297
|
},
|
|
312
|
-
"title": "
|
|
298
|
+
"title": "Agents",
|
|
313
299
|
"type": "array"
|
|
314
300
|
},
|
|
315
301
|
"type": {
|
|
316
|
-
"const": "
|
|
317
|
-
"default": "
|
|
302
|
+
"const": "agents",
|
|
303
|
+
"default": "agents",
|
|
318
304
|
"title": "Type",
|
|
319
305
|
"type": "string"
|
|
320
306
|
}
|
|
321
307
|
},
|
|
322
308
|
"required": [
|
|
323
|
-
"
|
|
309
|
+
"agents",
|
|
324
310
|
"type"
|
|
325
311
|
],
|
|
326
|
-
"title": "
|
|
312
|
+
"title": "AgentListStreamMessage",
|
|
327
313
|
"type": "object"
|
|
328
314
|
},
|
|
315
|
+
"AttributionType": {
|
|
316
|
+
"enum": [
|
|
317
|
+
"github_user",
|
|
318
|
+
"linear_user",
|
|
319
|
+
"slack_user",
|
|
320
|
+
"api_key"
|
|
321
|
+
],
|
|
322
|
+
"title": "AttributionType",
|
|
323
|
+
"type": "string"
|
|
324
|
+
},
|
|
329
325
|
"BudgetConfig": {
|
|
330
326
|
"additionalProperties": false,
|
|
331
327
|
"properties": {
|
|
@@ -356,6 +352,7 @@
|
|
|
356
352
|
"session": {
|
|
357
353
|
"anyOf": [
|
|
358
354
|
{
|
|
355
|
+
"exclusiveMinimum": 0,
|
|
359
356
|
"type": "number"
|
|
360
357
|
},
|
|
361
358
|
{
|
|
@@ -387,17 +384,6 @@
|
|
|
387
384
|
"title": "BudgetConfig",
|
|
388
385
|
"type": "object"
|
|
389
386
|
},
|
|
390
|
-
"BudgetSource": {
|
|
391
|
-
"description": "Which layer actually determined the enforced budget.\n\nNot derivable from the run row alone (the run does not store the config\ncents or the account default), so we persist it for the UI / audit.",
|
|
392
|
-
"enum": [
|
|
393
|
-
"system",
|
|
394
|
-
"account",
|
|
395
|
-
"config",
|
|
396
|
-
"run"
|
|
397
|
-
],
|
|
398
|
-
"title": "BudgetSource",
|
|
399
|
-
"type": "string"
|
|
400
|
-
},
|
|
401
387
|
"ClaudeConfig": {
|
|
402
388
|
"additionalProperties": false,
|
|
403
389
|
"description": "Native Claude Code options for an explicitly selected harness.",
|
|
@@ -450,6 +436,19 @@
|
|
|
450
436
|
"default": null,
|
|
451
437
|
"title": "Model"
|
|
452
438
|
},
|
|
439
|
+
"prompt": {
|
|
440
|
+
"anyOf": [
|
|
441
|
+
{
|
|
442
|
+
"type": "string"
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
"type": "null"
|
|
446
|
+
}
|
|
447
|
+
],
|
|
448
|
+
"default": null,
|
|
449
|
+
"description": "The initial user message, passed verbatim. Omit to start an interactive session with no turn, waiting for a message.",
|
|
450
|
+
"title": "Prompt"
|
|
451
|
+
},
|
|
453
452
|
"settings": {
|
|
454
453
|
"anyOf": [
|
|
455
454
|
{
|
|
@@ -460,11 +459,6 @@
|
|
|
460
459
|
}
|
|
461
460
|
],
|
|
462
461
|
"default": null
|
|
463
|
-
},
|
|
464
|
-
"type": {
|
|
465
|
-
"const": "claude_code",
|
|
466
|
-
"title": "Type",
|
|
467
|
-
"type": "string"
|
|
468
462
|
}
|
|
469
463
|
},
|
|
470
464
|
"required": [
|
|
@@ -472,8 +466,8 @@
|
|
|
472
466
|
"fallback_model",
|
|
473
467
|
"max_turns",
|
|
474
468
|
"model",
|
|
475
|
-
"
|
|
476
|
-
"
|
|
469
|
+
"prompt",
|
|
470
|
+
"settings"
|
|
477
471
|
],
|
|
478
472
|
"title": "ClaudeConfig",
|
|
479
473
|
"type": "object"
|
|
@@ -495,20 +489,28 @@
|
|
|
495
489
|
"description": "Reasoning effort for every turn. Omit to use the model default."
|
|
496
490
|
},
|
|
497
491
|
"model": {
|
|
498
|
-
"default": "gpt-
|
|
492
|
+
"default": "gpt-6-sol",
|
|
499
493
|
"title": "Model",
|
|
500
494
|
"type": "string"
|
|
501
495
|
},
|
|
502
|
-
"
|
|
503
|
-
"
|
|
504
|
-
|
|
505
|
-
|
|
496
|
+
"prompt": {
|
|
497
|
+
"anyOf": [
|
|
498
|
+
{
|
|
499
|
+
"type": "string"
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
"type": "null"
|
|
503
|
+
}
|
|
504
|
+
],
|
|
505
|
+
"default": null,
|
|
506
|
+
"description": "The initial user message, passed verbatim. Omit to start an interactive session with no turn, waiting for a message.",
|
|
507
|
+
"title": "Prompt"
|
|
506
508
|
}
|
|
507
509
|
},
|
|
508
510
|
"required": [
|
|
509
511
|
"effort",
|
|
510
512
|
"model",
|
|
511
|
-
"
|
|
513
|
+
"prompt"
|
|
512
514
|
],
|
|
513
515
|
"title": "CodexConfig",
|
|
514
516
|
"type": "object"
|
|
@@ -542,7 +544,7 @@
|
|
|
542
544
|
},
|
|
543
545
|
"ComputeConfig": {
|
|
544
546
|
"additionalProperties": false,
|
|
545
|
-
"description": "
|
|
547
|
+
"description": "Environment compute sizing. Every field is optional; an omitted field\ninherits the platform default (2 vCPU / 4096 MiB / 3600s). A resolved value\noutside the platform bounds fails validation loudly (a sync error on the\nconfig) rather than being 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 environment is sized with.\n\n`timeout` is the max wall-clock the agent may run in one environment before\nit is stopped, capped at 1h (equal to the default, so today the knob only\nshortens a session; the cap matches the 1-hour validity of the session's\nGitHub token).\n\nCompute currently uses a temporary flat one-cent amount each time an\nenvironment is started for a session, subject to the account's existing\nfree-compute exemptions.",
|
|
546
548
|
"properties": {
|
|
547
549
|
"cpu": {
|
|
548
550
|
"anyOf": [
|
|
@@ -771,16 +773,50 @@
|
|
|
771
773
|
}
|
|
772
774
|
]
|
|
773
775
|
},
|
|
774
|
-
"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
|
|
776
|
+
"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 session token ceiling at token mint \u2014 it can\nnarrow what a session token may do, never exceed it.",
|
|
775
777
|
"propertyNames": {
|
|
776
778
|
"$ref": "#/$defs/Resource"
|
|
777
779
|
},
|
|
778
780
|
"title": "EllipsisPermissions",
|
|
779
781
|
"type": "object"
|
|
780
782
|
},
|
|
783
|
+
"EnvironmentBaseBuild": {
|
|
784
|
+
"additionalProperties": false,
|
|
785
|
+
"description": "Create a reusable base, optionally using only selected repository files.",
|
|
786
|
+
"properties": {
|
|
787
|
+
"inputs": {
|
|
788
|
+
"anyOf": [
|
|
789
|
+
{
|
|
790
|
+
"items": {
|
|
791
|
+
"type": "string"
|
|
792
|
+
},
|
|
793
|
+
"type": "array"
|
|
794
|
+
},
|
|
795
|
+
{
|
|
796
|
+
"type": "null"
|
|
797
|
+
}
|
|
798
|
+
],
|
|
799
|
+
"default": null,
|
|
800
|
+
"description": "Exact files relative to the workspace directory `/sandbox`, including the repository name. Only these files are available during build_base and their contents and modes determine reuse. Omit to use all repositories and invalidate on any source change; [] means no repository files.",
|
|
801
|
+
"title": "Inputs"
|
|
802
|
+
},
|
|
803
|
+
"run": {
|
|
804
|
+
"description": "Shell script to run in the workspace directory `/sandbox`.",
|
|
805
|
+
"minLength": 1,
|
|
806
|
+
"title": "Run",
|
|
807
|
+
"type": "string"
|
|
808
|
+
}
|
|
809
|
+
},
|
|
810
|
+
"required": [
|
|
811
|
+
"inputs",
|
|
812
|
+
"run"
|
|
813
|
+
],
|
|
814
|
+
"title": "EnvironmentBaseBuild",
|
|
815
|
+
"type": "object"
|
|
816
|
+
},
|
|
781
817
|
"EnvironmentConfig": {
|
|
782
818
|
"additionalProperties": false,
|
|
783
|
-
"description": "Everything about the environment
|
|
819
|
+
"description": "Everything about the environment the agent runs in: which\n`repositories` are cloned into it, which environment `variables` it gets,\nits `compute` sizing, 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 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.",
|
|
784
820
|
"properties": {
|
|
785
821
|
"compute": {
|
|
786
822
|
"$ref": "#/$defs/ComputeConfig",
|
|
@@ -793,17 +829,13 @@
|
|
|
793
829
|
"hooks": {
|
|
794
830
|
"$ref": "#/$defs/EnvironmentHooks",
|
|
795
831
|
"default": {
|
|
832
|
+
"after_checkout": null,
|
|
833
|
+
"before_start": null,
|
|
834
|
+
"build_base": null,
|
|
796
835
|
"post_clone": null,
|
|
797
836
|
"post_start": null
|
|
798
837
|
}
|
|
799
838
|
},
|
|
800
|
-
"image": {
|
|
801
|
-
"$ref": "#/$defs/EnvironmentImage",
|
|
802
|
-
"default": {
|
|
803
|
-
"dockerfile_append": null,
|
|
804
|
-
"setup": null
|
|
805
|
-
}
|
|
806
|
-
},
|
|
807
839
|
"mcp_servers": {
|
|
808
840
|
"default": [],
|
|
809
841
|
"items": {
|
|
@@ -845,7 +877,6 @@
|
|
|
845
877
|
"required": [
|
|
846
878
|
"compute",
|
|
847
879
|
"hooks",
|
|
848
|
-
"image",
|
|
849
880
|
"mcp_servers",
|
|
850
881
|
"repositories",
|
|
851
882
|
"variables"
|
|
@@ -855,10 +886,29 @@
|
|
|
855
886
|
},
|
|
856
887
|
"EnvironmentHooks": {
|
|
857
888
|
"additionalProperties": false,
|
|
858
|
-
"description": "
|
|
889
|
+
"description": "Environment lifecycle scripts, in order: build_base, after_checkout,\nbefore_start. The first two produce reusable snapshots; before_start runs\nbefore an agent starts or resumes its session. Scripts run as the environment's\nuser in the workspace directory `/sandbox`. A nonzero exit fails the session.\n\nLegacy post_start/post_clone scripts remain supported for existing configs;\nboth run after workspace preparation, before the agent starts or resumes.\nThey cannot be combined with the new lifecycle fields.",
|
|
859
890
|
"properties": {
|
|
860
|
-
"
|
|
891
|
+
"after_checkout": {
|
|
892
|
+
"anyOf": [
|
|
893
|
+
{
|
|
894
|
+
"$ref": "#/$defs/EnvironmentScript"
|
|
895
|
+
},
|
|
896
|
+
{
|
|
897
|
+
"type": "string"
|
|
898
|
+
},
|
|
899
|
+
{
|
|
900
|
+
"type": "null"
|
|
901
|
+
}
|
|
902
|
+
],
|
|
903
|
+
"default": null,
|
|
904
|
+
"description": "Prepare the requested source revision after Ellipsis checks out all repositories, before saving the prepared environment. Skipped when that prepared environment is reused.",
|
|
905
|
+
"title": "After Checkout"
|
|
906
|
+
},
|
|
907
|
+
"before_start": {
|
|
861
908
|
"anyOf": [
|
|
909
|
+
{
|
|
910
|
+
"$ref": "#/$defs/EnvironmentScript"
|
|
911
|
+
},
|
|
862
912
|
{
|
|
863
913
|
"type": "string"
|
|
864
914
|
},
|
|
@@ -867,10 +917,14 @@
|
|
|
867
917
|
}
|
|
868
918
|
],
|
|
869
919
|
"default": null,
|
|
870
|
-
"
|
|
920
|
+
"description": "Run before the agent starts or resumes a session, after the environment is ready. This hook is not cached and adds to session startup time.",
|
|
921
|
+
"title": "Before Start"
|
|
871
922
|
},
|
|
872
|
-
"
|
|
923
|
+
"build_base": {
|
|
873
924
|
"anyOf": [
|
|
925
|
+
{
|
|
926
|
+
"$ref": "#/$defs/EnvironmentBaseBuild"
|
|
927
|
+
},
|
|
874
928
|
{
|
|
875
929
|
"type": "string"
|
|
876
930
|
},
|
|
@@ -879,21 +933,10 @@
|
|
|
879
933
|
}
|
|
880
934
|
],
|
|
881
935
|
"default": null,
|
|
882
|
-
"
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
"post_clone",
|
|
887
|
-
"post_start"
|
|
888
|
-
],
|
|
889
|
-
"title": "EnvironmentHooks",
|
|
890
|
-
"type": "object"
|
|
891
|
-
},
|
|
892
|
-
"EnvironmentImage": {
|
|
893
|
-
"additionalProperties": false,
|
|
894
|
-
"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`.",
|
|
895
|
-
"properties": {
|
|
896
|
-
"dockerfile_append": {
|
|
936
|
+
"description": "Build a reusable environment before full checkout. Cached by declared inputs, script, toolchain, resources, and build configuration. A string is shorthand for run with all repositories as inputs.",
|
|
937
|
+
"title": "Build Base"
|
|
938
|
+
},
|
|
939
|
+
"post_clone": {
|
|
897
940
|
"anyOf": [
|
|
898
941
|
{
|
|
899
942
|
"type": "string"
|
|
@@ -903,9 +946,10 @@
|
|
|
903
946
|
}
|
|
904
947
|
],
|
|
905
948
|
"default": null,
|
|
906
|
-
"
|
|
949
|
+
"description": "Legacy session startup script. Use before_start for session setup or after_checkout for cached source preparation.",
|
|
950
|
+
"title": "Post Clone"
|
|
907
951
|
},
|
|
908
|
-
"
|
|
952
|
+
"post_start": {
|
|
909
953
|
"anyOf": [
|
|
910
954
|
{
|
|
911
955
|
"type": "string"
|
|
@@ -915,21 +959,42 @@
|
|
|
915
959
|
}
|
|
916
960
|
],
|
|
917
961
|
"default": null,
|
|
918
|
-
"
|
|
962
|
+
"description": "Legacy session startup script. Use before_start in new configurations.",
|
|
963
|
+
"title": "Post Start"
|
|
964
|
+
}
|
|
965
|
+
},
|
|
966
|
+
"required": [
|
|
967
|
+
"after_checkout",
|
|
968
|
+
"before_start",
|
|
969
|
+
"build_base",
|
|
970
|
+
"post_clone",
|
|
971
|
+
"post_start"
|
|
972
|
+
],
|
|
973
|
+
"title": "EnvironmentHooks",
|
|
974
|
+
"type": "object"
|
|
975
|
+
},
|
|
976
|
+
"EnvironmentScript": {
|
|
977
|
+
"additionalProperties": false,
|
|
978
|
+
"description": "An inline shell script run as the environment's user, with the workspace\ndirectory `/sandbox` as cwd.",
|
|
979
|
+
"properties": {
|
|
980
|
+
"run": {
|
|
981
|
+
"description": "Shell script to run in the workspace directory `/sandbox`.",
|
|
982
|
+
"minLength": 1,
|
|
983
|
+
"title": "Run",
|
|
984
|
+
"type": "string"
|
|
919
985
|
}
|
|
920
986
|
},
|
|
921
987
|
"required": [
|
|
922
|
-
"
|
|
923
|
-
"setup"
|
|
988
|
+
"run"
|
|
924
989
|
],
|
|
925
|
-
"title": "
|
|
990
|
+
"title": "EnvironmentScript",
|
|
926
991
|
"type": "object"
|
|
927
992
|
},
|
|
928
993
|
"EnvironmentSource": {
|
|
929
|
-
"description": "How a session's environment was chosen. None (the field is nullable)\nwhen the config carried an inline environment block and no resolution ran \u2014\nan inline environment is not a reference, so there is nothing to record.\n\nNot derivable from the row: `environment_id` says WHICH environment, not\nhow it was chosen, and is null for the built-in basic
|
|
994
|
+
"description": "How a session's environment was chosen. None (the field is nullable)\nwhen the config carried an inline environment block and no resolution ran \u2014\nan inline environment is not a reference, so there is nothing to record.\n\nNot derivable from the row: `environment_id` says WHICH environment, not\nhow it was chosen, and is null for the built-in basic environment.",
|
|
930
995
|
"enum": [
|
|
931
996
|
"request",
|
|
932
|
-
"
|
|
997
|
+
"agent",
|
|
933
998
|
"repo_default",
|
|
934
999
|
"account_default",
|
|
935
1000
|
"platform_default"
|
|
@@ -939,7 +1004,7 @@
|
|
|
939
1004
|
},
|
|
940
1005
|
"EnvironmentVariable": {
|
|
941
1006
|
"additionalProperties": false,
|
|
942
|
-
"description": "One environment variable injected into the
|
|
1007
|
+
"description": "One environment variable injected into the session's environment.\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 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.",
|
|
943
1008
|
"properties": {
|
|
944
1009
|
"name": {
|
|
945
1010
|
"title": "Name",
|
|
@@ -995,6 +1060,10 @@
|
|
|
995
1060
|
"title": "Include"
|
|
996
1061
|
}
|
|
997
1062
|
},
|
|
1063
|
+
"required": [
|
|
1064
|
+
"exclude",
|
|
1065
|
+
"include"
|
|
1066
|
+
],
|
|
998
1067
|
"title": "GithubAccountFilter",
|
|
999
1068
|
"type": "object"
|
|
1000
1069
|
},
|
|
@@ -1065,9 +1134,60 @@
|
|
|
1065
1134
|
"title": "GithubAccountType",
|
|
1066
1135
|
"type": "string"
|
|
1067
1136
|
},
|
|
1137
|
+
"GithubIssueEvent": {
|
|
1138
|
+
"properties": {
|
|
1139
|
+
"action": {
|
|
1140
|
+
"$ref": "#/$defs/IssueAction"
|
|
1141
|
+
},
|
|
1142
|
+
"actor": {
|
|
1143
|
+
"anyOf": [
|
|
1144
|
+
{
|
|
1145
|
+
"$ref": "#/$defs/SessionEventActor"
|
|
1146
|
+
},
|
|
1147
|
+
{
|
|
1148
|
+
"type": "null"
|
|
1149
|
+
}
|
|
1150
|
+
],
|
|
1151
|
+
"default": null
|
|
1152
|
+
},
|
|
1153
|
+
"number": {
|
|
1154
|
+
"title": "Number",
|
|
1155
|
+
"type": "integer"
|
|
1156
|
+
},
|
|
1157
|
+
"repository": {
|
|
1158
|
+
"title": "Repository",
|
|
1159
|
+
"type": "string"
|
|
1160
|
+
},
|
|
1161
|
+
"title": {
|
|
1162
|
+
"title": "Title",
|
|
1163
|
+
"type": "string"
|
|
1164
|
+
},
|
|
1165
|
+
"type": {
|
|
1166
|
+
"const": "github.issue",
|
|
1167
|
+
"default": "github.issue",
|
|
1168
|
+
"title": "Type",
|
|
1169
|
+
"type": "string"
|
|
1170
|
+
},
|
|
1171
|
+
"url": {
|
|
1172
|
+
"title": "Url",
|
|
1173
|
+
"type": "string"
|
|
1174
|
+
}
|
|
1175
|
+
},
|
|
1176
|
+
"required": [
|
|
1177
|
+
"action",
|
|
1178
|
+
"actor",
|
|
1179
|
+
"number",
|
|
1180
|
+
"repository",
|
|
1181
|
+
"title",
|
|
1182
|
+
"type",
|
|
1183
|
+
"url"
|
|
1184
|
+
],
|
|
1185
|
+
"title": "GithubIssueEvent",
|
|
1186
|
+
"type": "object"
|
|
1187
|
+
},
|
|
1068
1188
|
"GithubPermissions": {
|
|
1069
1189
|
"additionalProperties": false,
|
|
1070
|
-
"description": "The agent's GitHub access: the scope of the installation token minted for\nits
|
|
1190
|
+
"description": "The agent's GitHub access: the scope of the installation token minted for\nits session's environment \u2014 the credential `git`, `gh`, and the GitHub MCP\nserver authenticate 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 environment can\nexceed it.",
|
|
1071
1191
|
"properties": {
|
|
1072
1192
|
"permissions": {
|
|
1073
1193
|
"anyOf": [
|
|
@@ -1111,114 +1231,194 @@
|
|
|
1111
1231
|
"title": "GithubPermissions",
|
|
1112
1232
|
"type": "object"
|
|
1113
1233
|
},
|
|
1114
|
-
"
|
|
1115
|
-
"description": "Identifies the file a GitHub-sourced automation is synced from.\n\nKeyed on the repository ID (not owner/name) so repository and org renames\ndon't orphan the config; resolve display names from gh_repositories at\nread time.",
|
|
1116
|
-
"properties": {
|
|
1117
|
-
"branch": {
|
|
1118
|
-
"title": "Branch",
|
|
1119
|
-
"type": "string"
|
|
1120
|
-
},
|
|
1121
|
-
"path": {
|
|
1122
|
-
"title": "Path",
|
|
1123
|
-
"type": "string"
|
|
1124
|
-
},
|
|
1125
|
-
"repo_id": {
|
|
1126
|
-
"title": "Repo Id",
|
|
1127
|
-
"type": "integer"
|
|
1128
|
-
}
|
|
1129
|
-
},
|
|
1130
|
-
"required": [
|
|
1131
|
-
"branch",
|
|
1132
|
-
"path",
|
|
1133
|
-
"repo_id"
|
|
1134
|
-
],
|
|
1135
|
-
"title": "GithubSourceDetails",
|
|
1136
|
-
"type": "object"
|
|
1137
|
-
},
|
|
1138
|
-
"Harness": {
|
|
1139
|
-
"enum": [
|
|
1140
|
-
"claude_code",
|
|
1141
|
-
"codex"
|
|
1142
|
-
],
|
|
1143
|
-
"title": "Harness",
|
|
1144
|
-
"type": "string"
|
|
1145
|
-
},
|
|
1146
|
-
"HarnessOptions": {
|
|
1147
|
-
"discriminator": {
|
|
1148
|
-
"mapping": {
|
|
1149
|
-
"claude_code": "#/$defs/ClaudeConfig",
|
|
1150
|
-
"codex": "#/$defs/CodexConfig"
|
|
1151
|
-
},
|
|
1152
|
-
"propertyName": "type"
|
|
1153
|
-
},
|
|
1154
|
-
"oneOf": [
|
|
1155
|
-
{
|
|
1156
|
-
"$ref": "#/$defs/ClaudeConfig"
|
|
1157
|
-
},
|
|
1158
|
-
{
|
|
1159
|
-
"$ref": "#/$defs/CodexConfig"
|
|
1160
|
-
}
|
|
1161
|
-
]
|
|
1162
|
-
},
|
|
1163
|
-
"InputContract": {
|
|
1164
|
-
"additionalProperties": false,
|
|
1165
|
-
"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 AutomationConfig's\n`_check_input`).",
|
|
1234
|
+
"GithubPullRequestEvent": {
|
|
1166
1235
|
"properties": {
|
|
1167
|
-
"
|
|
1236
|
+
"action": {
|
|
1168
1237
|
"anyOf": [
|
|
1169
1238
|
{
|
|
1170
|
-
"
|
|
1171
|
-
"type": "object"
|
|
1239
|
+
"$ref": "#/$defs/PullRequestAction"
|
|
1172
1240
|
},
|
|
1173
1241
|
{
|
|
1174
|
-
"
|
|
1242
|
+
"const": "review_commented",
|
|
1243
|
+
"type": "string"
|
|
1175
1244
|
}
|
|
1176
1245
|
],
|
|
1177
|
-
"
|
|
1178
|
-
"title": "Json Schema"
|
|
1246
|
+
"title": "Action"
|
|
1179
1247
|
},
|
|
1180
|
-
"
|
|
1248
|
+
"actor": {
|
|
1181
1249
|
"anyOf": [
|
|
1182
1250
|
{
|
|
1183
|
-
"
|
|
1251
|
+
"$ref": "#/$defs/SessionEventActor"
|
|
1184
1252
|
},
|
|
1185
1253
|
{
|
|
1186
1254
|
"type": "null"
|
|
1187
1255
|
}
|
|
1188
1256
|
],
|
|
1189
|
-
"default": null
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
"required": [
|
|
1194
|
-
"json_schema",
|
|
1195
|
-
"message"
|
|
1196
|
-
],
|
|
1197
|
-
"title": "InputContract",
|
|
1198
|
-
"type": "object"
|
|
1199
|
-
},
|
|
1200
|
-
"Instructions": {
|
|
1201
|
-
"anyOf": [
|
|
1202
|
-
{
|
|
1257
|
+
"default": null
|
|
1258
|
+
},
|
|
1259
|
+
"branch": {
|
|
1260
|
+
"title": "Branch",
|
|
1203
1261
|
"type": "string"
|
|
1204
1262
|
},
|
|
1205
|
-
{
|
|
1206
|
-
"
|
|
1263
|
+
"number": {
|
|
1264
|
+
"title": "Number",
|
|
1265
|
+
"type": "integer"
|
|
1207
1266
|
},
|
|
1208
|
-
{
|
|
1209
|
-
"
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
"
|
|
1267
|
+
"repository": {
|
|
1268
|
+
"title": "Repository",
|
|
1269
|
+
"type": "string"
|
|
1270
|
+
},
|
|
1271
|
+
"title": {
|
|
1272
|
+
"title": "Title",
|
|
1273
|
+
"type": "string"
|
|
1274
|
+
},
|
|
1275
|
+
"type": {
|
|
1276
|
+
"const": "github.pull_request",
|
|
1277
|
+
"default": "github.pull_request",
|
|
1278
|
+
"title": "Type",
|
|
1279
|
+
"type": "string"
|
|
1280
|
+
},
|
|
1281
|
+
"url": {
|
|
1282
|
+
"title": "Url",
|
|
1283
|
+
"type": "string"
|
|
1220
1284
|
}
|
|
1221
|
-
|
|
1285
|
+
},
|
|
1286
|
+
"required": [
|
|
1287
|
+
"action",
|
|
1288
|
+
"actor",
|
|
1289
|
+
"branch",
|
|
1290
|
+
"number",
|
|
1291
|
+
"repository",
|
|
1292
|
+
"title",
|
|
1293
|
+
"type",
|
|
1294
|
+
"url"
|
|
1295
|
+
],
|
|
1296
|
+
"title": "GithubPullRequestEvent",
|
|
1297
|
+
"type": "object"
|
|
1298
|
+
},
|
|
1299
|
+
"GithubPushEvent": {
|
|
1300
|
+
"properties": {
|
|
1301
|
+
"actor": {
|
|
1302
|
+
"anyOf": [
|
|
1303
|
+
{
|
|
1304
|
+
"$ref": "#/$defs/SessionEventActor"
|
|
1305
|
+
},
|
|
1306
|
+
{
|
|
1307
|
+
"type": "null"
|
|
1308
|
+
}
|
|
1309
|
+
],
|
|
1310
|
+
"default": null
|
|
1311
|
+
},
|
|
1312
|
+
"after": {
|
|
1313
|
+
"title": "After",
|
|
1314
|
+
"type": "string"
|
|
1315
|
+
},
|
|
1316
|
+
"before": {
|
|
1317
|
+
"title": "Before",
|
|
1318
|
+
"type": "string"
|
|
1319
|
+
},
|
|
1320
|
+
"branch": {
|
|
1321
|
+
"title": "Branch",
|
|
1322
|
+
"type": "string"
|
|
1323
|
+
},
|
|
1324
|
+
"repository": {
|
|
1325
|
+
"title": "Repository",
|
|
1326
|
+
"type": "string"
|
|
1327
|
+
},
|
|
1328
|
+
"type": {
|
|
1329
|
+
"const": "github.push",
|
|
1330
|
+
"default": "github.push",
|
|
1331
|
+
"title": "Type",
|
|
1332
|
+
"type": "string"
|
|
1333
|
+
},
|
|
1334
|
+
"url": {
|
|
1335
|
+
"title": "Url",
|
|
1336
|
+
"type": "string"
|
|
1337
|
+
}
|
|
1338
|
+
},
|
|
1339
|
+
"required": [
|
|
1340
|
+
"actor",
|
|
1341
|
+
"after",
|
|
1342
|
+
"before",
|
|
1343
|
+
"branch",
|
|
1344
|
+
"repository",
|
|
1345
|
+
"type",
|
|
1346
|
+
"url"
|
|
1347
|
+
],
|
|
1348
|
+
"title": "GithubPushEvent",
|
|
1349
|
+
"type": "object"
|
|
1350
|
+
},
|
|
1351
|
+
"GithubSourceDetails": {
|
|
1352
|
+
"description": "Identifies the file a GitHub-sourced agent is synced from.\n\nIdentified by the repository ID (not owner/name) so repository and org renames\ndon't orphan the config; resolve display names from gh_repositories at\nread time.",
|
|
1353
|
+
"properties": {
|
|
1354
|
+
"branch": {
|
|
1355
|
+
"title": "Branch",
|
|
1356
|
+
"type": "string"
|
|
1357
|
+
},
|
|
1358
|
+
"path": {
|
|
1359
|
+
"title": "Path",
|
|
1360
|
+
"type": "string"
|
|
1361
|
+
},
|
|
1362
|
+
"repo_id": {
|
|
1363
|
+
"title": "Repo Id",
|
|
1364
|
+
"type": "integer"
|
|
1365
|
+
}
|
|
1366
|
+
},
|
|
1367
|
+
"required": [
|
|
1368
|
+
"branch",
|
|
1369
|
+
"path",
|
|
1370
|
+
"repo_id"
|
|
1371
|
+
],
|
|
1372
|
+
"title": "GithubSourceDetails",
|
|
1373
|
+
"type": "object"
|
|
1374
|
+
},
|
|
1375
|
+
"HandlerService": {
|
|
1376
|
+
"description": "The service whose events a handler responds to.",
|
|
1377
|
+
"enum": [
|
|
1378
|
+
"slack",
|
|
1379
|
+
"github",
|
|
1380
|
+
"linear",
|
|
1381
|
+
"sentry"
|
|
1382
|
+
],
|
|
1383
|
+
"title": "HandlerService",
|
|
1384
|
+
"type": "string"
|
|
1385
|
+
},
|
|
1386
|
+
"InputContract": {
|
|
1387
|
+
"additionalProperties": false,
|
|
1388
|
+
"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` validates customer data sent as `input` to\n`POST /v1/agents/{id}/sessions` and stored as `session.input`.\nInvocations require input when a schema is declared. React agents\ncannot declare schemas: the platform defines their event payloads.\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`).",
|
|
1389
|
+
"properties": {
|
|
1390
|
+
"json_schema": {
|
|
1391
|
+
"anyOf": [
|
|
1392
|
+
{
|
|
1393
|
+
"additionalProperties": true,
|
|
1394
|
+
"type": "object"
|
|
1395
|
+
},
|
|
1396
|
+
{
|
|
1397
|
+
"type": "null"
|
|
1398
|
+
}
|
|
1399
|
+
],
|
|
1400
|
+
"default": null,
|
|
1401
|
+
"title": "Json Schema"
|
|
1402
|
+
},
|
|
1403
|
+
"message": {
|
|
1404
|
+
"anyOf": [
|
|
1405
|
+
{
|
|
1406
|
+
"type": "string"
|
|
1407
|
+
},
|
|
1408
|
+
{
|
|
1409
|
+
"type": "null"
|
|
1410
|
+
}
|
|
1411
|
+
],
|
|
1412
|
+
"default": null,
|
|
1413
|
+
"title": "Message"
|
|
1414
|
+
}
|
|
1415
|
+
},
|
|
1416
|
+
"required": [
|
|
1417
|
+
"json_schema",
|
|
1418
|
+
"message"
|
|
1419
|
+
],
|
|
1420
|
+
"title": "InputContract",
|
|
1421
|
+
"type": "object"
|
|
1222
1422
|
},
|
|
1223
1423
|
"IssueAction": {
|
|
1224
1424
|
"enum": [
|
|
@@ -1246,9 +1446,77 @@
|
|
|
1246
1446
|
"title": "LinearIssueAction",
|
|
1247
1447
|
"type": "string"
|
|
1248
1448
|
},
|
|
1449
|
+
"LinearIssueEvent": {
|
|
1450
|
+
"properties": {
|
|
1451
|
+
"action": {
|
|
1452
|
+
"anyOf": [
|
|
1453
|
+
{
|
|
1454
|
+
"$ref": "#/$defs/LinearIssueAction"
|
|
1455
|
+
},
|
|
1456
|
+
{
|
|
1457
|
+
"const": "commented",
|
|
1458
|
+
"type": "string"
|
|
1459
|
+
}
|
|
1460
|
+
],
|
|
1461
|
+
"title": "Action"
|
|
1462
|
+
},
|
|
1463
|
+
"actor": {
|
|
1464
|
+
"anyOf": [
|
|
1465
|
+
{
|
|
1466
|
+
"$ref": "#/$defs/SessionEventActor"
|
|
1467
|
+
},
|
|
1468
|
+
{
|
|
1469
|
+
"type": "null"
|
|
1470
|
+
}
|
|
1471
|
+
],
|
|
1472
|
+
"default": null
|
|
1473
|
+
},
|
|
1474
|
+
"identifier": {
|
|
1475
|
+
"anyOf": [
|
|
1476
|
+
{
|
|
1477
|
+
"type": "string"
|
|
1478
|
+
},
|
|
1479
|
+
{
|
|
1480
|
+
"type": "null"
|
|
1481
|
+
}
|
|
1482
|
+
],
|
|
1483
|
+
"default": null,
|
|
1484
|
+
"title": "Identifier"
|
|
1485
|
+
},
|
|
1486
|
+
"number": {
|
|
1487
|
+
"title": "Number",
|
|
1488
|
+
"type": "integer"
|
|
1489
|
+
},
|
|
1490
|
+
"title": {
|
|
1491
|
+
"title": "Title",
|
|
1492
|
+
"type": "string"
|
|
1493
|
+
},
|
|
1494
|
+
"type": {
|
|
1495
|
+
"const": "linear.issue",
|
|
1496
|
+
"default": "linear.issue",
|
|
1497
|
+
"title": "Type",
|
|
1498
|
+
"type": "string"
|
|
1499
|
+
},
|
|
1500
|
+
"url": {
|
|
1501
|
+
"title": "Url",
|
|
1502
|
+
"type": "string"
|
|
1503
|
+
}
|
|
1504
|
+
},
|
|
1505
|
+
"required": [
|
|
1506
|
+
"action",
|
|
1507
|
+
"actor",
|
|
1508
|
+
"identifier",
|
|
1509
|
+
"number",
|
|
1510
|
+
"title",
|
|
1511
|
+
"type",
|
|
1512
|
+
"url"
|
|
1513
|
+
],
|
|
1514
|
+
"title": "LinearIssueEvent",
|
|
1515
|
+
"type": "object"
|
|
1516
|
+
},
|
|
1249
1517
|
"McpRemoteServer": {
|
|
1250
1518
|
"additionalProperties": false,
|
|
1251
|
-
"description": "A bring-your-own remote MCP server: the harness talks HTTP to `url`.\nNothing runs in the
|
|
1519
|
+
"description": "A bring-your-own remote MCP server: the harness talks HTTP to `url`.\nNothing runs in the environment image. `headers` carry static auth (e.g.\n`Authorization: Bearer ${TOKEN}`); values may embed `${NAME}` secret\nreferences, resolved at run time from the account's secrets store.",
|
|
1252
1520
|
"properties": {
|
|
1253
1521
|
"headers": {
|
|
1254
1522
|
"additionalProperties": {
|
|
@@ -1292,7 +1560,7 @@
|
|
|
1292
1560
|
},
|
|
1293
1561
|
"McpStdioServer": {
|
|
1294
1562
|
"additionalProperties": false,
|
|
1295
|
-
"description": "A bring-your-own stdio MCP server: the harness spawns `command` inside\nthe
|
|
1563
|
+
"description": "A bring-your-own stdio MCP server: the harness spawns `command` inside\nthe environment and speaks JSON-RPC over its stdin/stdout. The command must\nbe runnable in the environment image \u2014 install its runtime via `hooks.build_base` /\n`hooks.after_checkout` if the managed environment lacks it.\n\n`env` values may embed `${NAME}` references, resolved at run time from the\naccount's secrets store (see `mcp_secret_refs`); everything else is passed\nliterally.",
|
|
1296
1564
|
"properties": {
|
|
1297
1565
|
"args": {
|
|
1298
1566
|
"default": [],
|
|
@@ -1382,18 +1650,9 @@
|
|
|
1382
1650
|
"title": "OutputConfig",
|
|
1383
1651
|
"type": "object"
|
|
1384
1652
|
},
|
|
1385
|
-
"ParentKind": {
|
|
1386
|
-
"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).",
|
|
1387
|
-
"enum": [
|
|
1388
|
-
"continuation",
|
|
1389
|
-
"resume"
|
|
1390
|
-
],
|
|
1391
|
-
"title": "ParentKind",
|
|
1392
|
-
"type": "string"
|
|
1393
|
-
},
|
|
1394
1653
|
"PermissionsConfig": {
|
|
1395
1654
|
"additionalProperties": false,
|
|
1396
|
-
"description": "What the agent is allowed to touch, per credential the platform mints\ninto its
|
|
1655
|
+
"description": "What the agent is allowed to touch, per credential the platform mints\ninto its session's environment. Distinct from `environment:`, which is\nwhere the agent runs; this is what it may do from there.\n\n`ellipsis` scopes the session's Ellipsis API token (`ELLIPSIS_API_TOKEN`,\nwhat the `agent` CLI running inside the session authenticates with).\n`true` / the string `all` (the default) grant the full session token\nceiling \u2014 everything a session token can ever do. A map narrows it per\nresource (see `EllipsisPermissions`); 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 session's GitHub installation token (`GH_TOKEN`) \u2014\nsee `GithubPermissions`. GitHub enforces it at mint time.",
|
|
1397
1656
|
"properties": {
|
|
1398
1657
|
"ellipsis": {
|
|
1399
1658
|
"anyOf": [
|
|
@@ -1432,6 +1691,7 @@
|
|
|
1432
1691
|
"ephemeral_trigger",
|
|
1433
1692
|
"non_interactive",
|
|
1434
1693
|
"harness_single_turn",
|
|
1694
|
+
"budget_exhausted",
|
|
1435
1695
|
"closed"
|
|
1436
1696
|
],
|
|
1437
1697
|
"title": "PromptBlockedReason",
|
|
@@ -1759,6 +2019,10 @@
|
|
|
1759
2019
|
"type": "array"
|
|
1760
2020
|
}
|
|
1761
2021
|
},
|
|
2022
|
+
"required": [
|
|
2023
|
+
"exclude",
|
|
2024
|
+
"include"
|
|
2025
|
+
],
|
|
1762
2026
|
"title": "RepositoryFilter",
|
|
1763
2027
|
"type": "object"
|
|
1764
2028
|
},
|
|
@@ -1816,7 +2080,6 @@
|
|
|
1816
2080
|
"account",
|
|
1817
2081
|
"alerts",
|
|
1818
2082
|
"sessions",
|
|
1819
|
-
"files",
|
|
1820
2083
|
"memories",
|
|
1821
2084
|
"reviews",
|
|
1822
2085
|
"configs",
|
|
@@ -1832,22 +2095,6 @@
|
|
|
1832
2095
|
"title": "Resource",
|
|
1833
2096
|
"type": "string"
|
|
1834
2097
|
},
|
|
1835
|
-
"RunStatus": {
|
|
1836
|
-
"description": "What the current (or most recent) execution is doing (backs `run`).",
|
|
1837
|
-
"enum": [
|
|
1838
|
-
"scheduled",
|
|
1839
|
-
"starting",
|
|
1840
|
-
"working",
|
|
1841
|
-
"waiting",
|
|
1842
|
-
"done",
|
|
1843
|
-
"failed",
|
|
1844
|
-
"stopped",
|
|
1845
|
-
"cancelled",
|
|
1846
|
-
"retrying"
|
|
1847
|
-
],
|
|
1848
|
-
"title": "RunStatus",
|
|
1849
|
-
"type": "string"
|
|
1850
|
-
},
|
|
1851
2098
|
"SandboxCacheTier": {
|
|
1852
2099
|
"description": "Which image-cache tier a sandbox creation took \u2014 the customer-facing\nnames for `create_sandbox_from_default`'s exact / latest / default tiers.\nRides on `Sandbox.cache_tier` and the sandbox_ready lifecycle record.",
|
|
1853
2100
|
"enum": [
|
|
@@ -1971,237 +2218,10 @@
|
|
|
1971
2218
|
"title": "SandboxRepository",
|
|
1972
2219
|
"type": "object"
|
|
1973
2220
|
},
|
|
1974
|
-
"
|
|
2221
|
+
"SandboxSnapshotFrame": {
|
|
1975
2222
|
"properties": {
|
|
1976
|
-
"
|
|
1977
|
-
"
|
|
1978
|
-
{
|
|
1979
|
-
"$ref": "#/$defs/SandboxCacheTier"
|
|
1980
|
-
},
|
|
1981
|
-
{
|
|
1982
|
-
"type": "null"
|
|
1983
|
-
}
|
|
1984
|
-
]
|
|
1985
|
-
},
|
|
1986
|
-
"cost_sandbox_cpu": {
|
|
1987
|
-
"title": "Cost Sandbox Cpu",
|
|
1988
|
-
"type": "integer"
|
|
1989
|
-
},
|
|
1990
|
-
"cost_sandbox_memory": {
|
|
1991
|
-
"title": "Cost Sandbox Memory",
|
|
1992
|
-
"type": "integer"
|
|
1993
|
-
},
|
|
1994
|
-
"cpu": {
|
|
1995
|
-
"title": "Cpu",
|
|
1996
|
-
"type": "number"
|
|
1997
|
-
},
|
|
1998
|
-
"dockerfile": {
|
|
1999
|
-
"anyOf": [
|
|
2000
|
-
{
|
|
2001
|
-
"type": "string"
|
|
2002
|
-
},
|
|
2003
|
-
{
|
|
2004
|
-
"type": "null"
|
|
2005
|
-
}
|
|
2006
|
-
],
|
|
2007
|
-
"title": "Dockerfile"
|
|
2008
|
-
},
|
|
2009
|
-
"encrypted_ports": {
|
|
2010
|
-
"items": {
|
|
2011
|
-
"type": "integer"
|
|
2012
|
-
},
|
|
2013
|
-
"title": "Encrypted Ports",
|
|
2014
|
-
"type": "array"
|
|
2015
|
-
},
|
|
2016
|
-
"environment_variable_keys": {
|
|
2017
|
-
"items": {
|
|
2018
|
-
"type": "string"
|
|
2019
|
-
},
|
|
2020
|
-
"title": "Environment Variable Keys",
|
|
2021
|
-
"type": "array"
|
|
2022
|
-
},
|
|
2023
|
-
"failed_at": {
|
|
2024
|
-
"anyOf": [
|
|
2025
|
-
{
|
|
2026
|
-
"format": "date-time",
|
|
2027
|
-
"type": "string"
|
|
2028
|
-
},
|
|
2029
|
-
{
|
|
2030
|
-
"type": "null"
|
|
2031
|
-
}
|
|
2032
|
-
],
|
|
2033
|
-
"title": "Failed At"
|
|
2034
|
-
},
|
|
2035
|
-
"id": {
|
|
2036
|
-
"title": "Id",
|
|
2037
|
-
"type": "string"
|
|
2038
|
-
},
|
|
2039
|
-
"image_setup": {
|
|
2040
|
-
"anyOf": [
|
|
2041
|
-
{
|
|
2042
|
-
"type": "string"
|
|
2043
|
-
},
|
|
2044
|
-
{
|
|
2045
|
-
"type": "null"
|
|
2046
|
-
}
|
|
2047
|
-
],
|
|
2048
|
-
"title": "Image Setup"
|
|
2049
|
-
},
|
|
2050
|
-
"memory_mib": {
|
|
2051
|
-
"title": "Memory Mib",
|
|
2052
|
-
"type": "integer"
|
|
2053
|
-
},
|
|
2054
|
-
"phase_timings": {
|
|
2055
|
-
"additionalProperties": {
|
|
2056
|
-
"type": "number"
|
|
2057
|
-
},
|
|
2058
|
-
"title": "Phase Timings",
|
|
2059
|
-
"type": "object"
|
|
2060
|
-
},
|
|
2061
|
-
"post_clone": {
|
|
2062
|
-
"anyOf": [
|
|
2063
|
-
{
|
|
2064
|
-
"type": "string"
|
|
2065
|
-
},
|
|
2066
|
-
{
|
|
2067
|
-
"type": "null"
|
|
2068
|
-
}
|
|
2069
|
-
],
|
|
2070
|
-
"title": "Post Clone"
|
|
2071
|
-
},
|
|
2072
|
-
"post_start": {
|
|
2073
|
-
"anyOf": [
|
|
2074
|
-
{
|
|
2075
|
-
"type": "string"
|
|
2076
|
-
},
|
|
2077
|
-
{
|
|
2078
|
-
"type": "null"
|
|
2079
|
-
}
|
|
2080
|
-
],
|
|
2081
|
-
"title": "Post Start"
|
|
2082
|
-
},
|
|
2083
|
-
"repositories": {
|
|
2084
|
-
"items": {
|
|
2085
|
-
"$ref": "#/$defs/SandboxRepository"
|
|
2086
|
-
},
|
|
2087
|
-
"title": "Repositories",
|
|
2088
|
-
"type": "array"
|
|
2089
|
-
},
|
|
2090
|
-
"running_at": {
|
|
2091
|
-
"anyOf": [
|
|
2092
|
-
{
|
|
2093
|
-
"format": "date-time",
|
|
2094
|
-
"type": "string"
|
|
2095
|
-
},
|
|
2096
|
-
{
|
|
2097
|
-
"type": "null"
|
|
2098
|
-
}
|
|
2099
|
-
],
|
|
2100
|
-
"title": "Running At"
|
|
2101
|
-
},
|
|
2102
|
-
"scheduled_at": {
|
|
2103
|
-
"format": "date-time",
|
|
2104
|
-
"title": "Scheduled At",
|
|
2105
|
-
"type": "string"
|
|
2106
|
-
},
|
|
2107
|
-
"source": {
|
|
2108
|
-
"$ref": "#/$defs/SandboxSource"
|
|
2109
|
-
},
|
|
2110
|
-
"source_session_id": {
|
|
2111
|
-
"anyOf": [
|
|
2112
|
-
{
|
|
2113
|
-
"type": "string"
|
|
2114
|
-
},
|
|
2115
|
-
{
|
|
2116
|
-
"type": "null"
|
|
2117
|
-
}
|
|
2118
|
-
],
|
|
2119
|
-
"title": "Source Session Id"
|
|
2120
|
-
},
|
|
2121
|
-
"status": {
|
|
2122
|
-
"$ref": "#/$defs/SandboxStatus"
|
|
2123
|
-
},
|
|
2124
|
-
"terminated_at": {
|
|
2125
|
-
"anyOf": [
|
|
2126
|
-
{
|
|
2127
|
-
"format": "date-time",
|
|
2128
|
-
"type": "string"
|
|
2129
|
-
},
|
|
2130
|
-
{
|
|
2131
|
-
"type": "null"
|
|
2132
|
-
}
|
|
2133
|
-
],
|
|
2134
|
-
"title": "Terminated At"
|
|
2135
|
-
},
|
|
2136
|
-
"terminating_at": {
|
|
2137
|
-
"anyOf": [
|
|
2138
|
-
{
|
|
2139
|
-
"format": "date-time",
|
|
2140
|
-
"type": "string"
|
|
2141
|
-
},
|
|
2142
|
-
{
|
|
2143
|
-
"type": "null"
|
|
2144
|
-
}
|
|
2145
|
-
],
|
|
2146
|
-
"title": "Terminating At"
|
|
2147
|
-
},
|
|
2148
|
-
"timeout_seconds": {
|
|
2149
|
-
"title": "Timeout Seconds",
|
|
2150
|
-
"type": "integer"
|
|
2151
|
-
},
|
|
2152
|
-
"tunnels": {
|
|
2153
|
-
"items": {
|
|
2154
|
-
"$ref": "#/$defs/SandboxPort"
|
|
2155
|
-
},
|
|
2156
|
-
"title": "Tunnels",
|
|
2157
|
-
"type": "array"
|
|
2158
|
-
},
|
|
2159
|
-
"type": {
|
|
2160
|
-
"$ref": "#/$defs/SandboxType"
|
|
2161
|
-
},
|
|
2162
|
-
"unencrypted_ports": {
|
|
2163
|
-
"items": {
|
|
2164
|
-
"type": "integer"
|
|
2165
|
-
},
|
|
2166
|
-
"title": "Unencrypted Ports",
|
|
2167
|
-
"type": "array"
|
|
2168
|
-
}
|
|
2169
|
-
},
|
|
2170
|
-
"required": [
|
|
2171
|
-
"cache_tier",
|
|
2172
|
-
"cost_sandbox_cpu",
|
|
2173
|
-
"cost_sandbox_memory",
|
|
2174
|
-
"cpu",
|
|
2175
|
-
"dockerfile",
|
|
2176
|
-
"encrypted_ports",
|
|
2177
|
-
"environment_variable_keys",
|
|
2178
|
-
"failed_at",
|
|
2179
|
-
"id",
|
|
2180
|
-
"image_setup",
|
|
2181
|
-
"memory_mib",
|
|
2182
|
-
"phase_timings",
|
|
2183
|
-
"post_clone",
|
|
2184
|
-
"post_start",
|
|
2185
|
-
"repositories",
|
|
2186
|
-
"running_at",
|
|
2187
|
-
"scheduled_at",
|
|
2188
|
-
"source",
|
|
2189
|
-
"source_session_id",
|
|
2190
|
-
"status",
|
|
2191
|
-
"terminated_at",
|
|
2192
|
-
"terminating_at",
|
|
2193
|
-
"timeout_seconds",
|
|
2194
|
-
"tunnels",
|
|
2195
|
-
"type",
|
|
2196
|
-
"unencrypted_ports"
|
|
2197
|
-
],
|
|
2198
|
-
"title": "SandboxResponse",
|
|
2199
|
-
"type": "object"
|
|
2200
|
-
},
|
|
2201
|
-
"SandboxSnapshotFrame": {
|
|
2202
|
-
"properties": {
|
|
2203
|
-
"sandbox": {
|
|
2204
|
-
"$ref": "#/$defs/SandboxResponse"
|
|
2223
|
+
"sandbox": {
|
|
2224
|
+
"$ref": "#/$defs/VMExecutionResponse"
|
|
2205
2225
|
},
|
|
2206
2226
|
"type": {
|
|
2207
2227
|
"const": "snapshot",
|
|
@@ -2222,7 +2242,7 @@
|
|
|
2222
2242
|
"cli",
|
|
2223
2243
|
"web_ui",
|
|
2224
2244
|
"ingest_pull_request_job_run",
|
|
2225
|
-
"
|
|
2245
|
+
"session",
|
|
2226
2246
|
"image_refresh",
|
|
2227
2247
|
"test",
|
|
2228
2248
|
"script"
|
|
@@ -2253,7 +2273,7 @@
|
|
|
2253
2273
|
"SandboxUpdateFrame": {
|
|
2254
2274
|
"properties": {
|
|
2255
2275
|
"sandbox": {
|
|
2256
|
-
"$ref": "#/$defs/
|
|
2276
|
+
"$ref": "#/$defs/VMExecutionResponse"
|
|
2257
2277
|
},
|
|
2258
2278
|
"type": {
|
|
2259
2279
|
"const": "sandbox",
|
|
@@ -2277,97 +2297,59 @@
|
|
|
2277
2297
|
"title": "SentryAction",
|
|
2278
2298
|
"type": "string"
|
|
2279
2299
|
},
|
|
2280
|
-
"
|
|
2281
|
-
"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.",
|
|
2300
|
+
"SentryAlertEvent": {
|
|
2282
2301
|
"properties": {
|
|
2283
|
-
"
|
|
2284
|
-
"$ref": "#/$defs/
|
|
2285
|
-
"description": "The principal this session is attributed to."
|
|
2286
|
-
},
|
|
2287
|
-
"automation": {
|
|
2288
|
-
"anyOf": [
|
|
2289
|
-
{
|
|
2290
|
-
"$ref": "#/$defs/SessionAutomation"
|
|
2291
|
-
},
|
|
2292
|
-
{
|
|
2293
|
-
"type": "null"
|
|
2294
|
-
}
|
|
2295
|
-
],
|
|
2296
|
-
"default": null,
|
|
2297
|
-
"description": "The automation the session was started from, or null for a raw session started with POST /v1/sessions."
|
|
2298
|
-
},
|
|
2299
|
-
"budget": {
|
|
2300
|
-
"$ref": "#/$defs/SessionBudget",
|
|
2301
|
-
"description": "The spend budget enforced for this session."
|
|
2302
|
-
},
|
|
2303
|
-
"config": {
|
|
2304
|
-
"$ref": "#/$defs/SessionConfig",
|
|
2305
|
-
"description": "What the session ran on, frozen when it was created: the harness block, the resolved environment, permissions, skills, output contract, and budget."
|
|
2302
|
+
"action": {
|
|
2303
|
+
"$ref": "#/$defs/SentryAction"
|
|
2306
2304
|
},
|
|
2307
|
-
"
|
|
2305
|
+
"actor": {
|
|
2308
2306
|
"anyOf": [
|
|
2309
2307
|
{
|
|
2310
|
-
"
|
|
2308
|
+
"$ref": "#/$defs/SessionEventActor"
|
|
2311
2309
|
},
|
|
2312
2310
|
{
|
|
2313
2311
|
"type": "null"
|
|
2314
2312
|
}
|
|
2315
2313
|
],
|
|
2316
|
-
"default": null
|
|
2317
|
-
"description": "The \"owner/name\" repository context the session was started in, if any.",
|
|
2318
|
-
"title": "Context Repository"
|
|
2319
|
-
},
|
|
2320
|
-
"cost": {
|
|
2321
|
-
"$ref": "#/$defs/SessionCost",
|
|
2322
|
-
"description": "What the session cost, in millicents, broken down by leg and carrying its own total."
|
|
2314
|
+
"default": null
|
|
2323
2315
|
},
|
|
2324
|
-
"
|
|
2325
|
-
"
|
|
2326
|
-
"format": "date-time",
|
|
2327
|
-
"title": "Created At",
|
|
2316
|
+
"organization_slug": {
|
|
2317
|
+
"title": "Organization Slug",
|
|
2328
2318
|
"type": "string"
|
|
2329
2319
|
},
|
|
2330
|
-
"
|
|
2331
|
-
"$ref": "#/$defs/SessionEnvironment",
|
|
2332
|
-
"description": "The environment the session resolved: the saved environment's id and how it was chosen. The environment's frozen body is `config.environment`."
|
|
2333
|
-
},
|
|
2334
|
-
"exit_status": {
|
|
2320
|
+
"project_slug": {
|
|
2335
2321
|
"anyOf": [
|
|
2336
2322
|
{
|
|
2337
|
-
"
|
|
2323
|
+
"type": "string"
|
|
2338
2324
|
},
|
|
2339
2325
|
{
|
|
2340
2326
|
"type": "null"
|
|
2341
2327
|
}
|
|
2342
2328
|
],
|
|
2343
2329
|
"default": null,
|
|
2344
|
-
"
|
|
2330
|
+
"title": "Project Slug"
|
|
2345
2331
|
},
|
|
2346
|
-
"
|
|
2332
|
+
"title": {
|
|
2347
2333
|
"anyOf": [
|
|
2348
2334
|
{
|
|
2349
|
-
"
|
|
2335
|
+
"type": "string"
|
|
2350
2336
|
},
|
|
2351
2337
|
{
|
|
2352
2338
|
"type": "null"
|
|
2353
2339
|
}
|
|
2354
2340
|
],
|
|
2355
2341
|
"default": null,
|
|
2356
|
-
"
|
|
2357
|
-
},
|
|
2358
|
-
"harness": {
|
|
2359
|
-
"$ref": "#/$defs/Harness",
|
|
2360
|
-
"description": "The coding-agent harness the session runs on."
|
|
2342
|
+
"title": "Title"
|
|
2361
2343
|
},
|
|
2362
|
-
"
|
|
2363
|
-
"
|
|
2364
|
-
"
|
|
2344
|
+
"type": {
|
|
2345
|
+
"const": "sentry.alert",
|
|
2346
|
+
"default": "sentry.alert",
|
|
2347
|
+
"title": "Type",
|
|
2365
2348
|
"type": "string"
|
|
2366
2349
|
},
|
|
2367
|
-
"
|
|
2350
|
+
"url": {
|
|
2368
2351
|
"anyOf": [
|
|
2369
2352
|
{
|
|
2370
|
-
"format": "date-time",
|
|
2371
2353
|
"type": "string"
|
|
2372
2354
|
},
|
|
2373
2355
|
{
|
|
@@ -2375,89 +2357,261 @@
|
|
|
2375
2357
|
}
|
|
2376
2358
|
],
|
|
2377
2359
|
"default": null,
|
|
2378
|
-
"
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2360
|
+
"title": "Url"
|
|
2361
|
+
}
|
|
2362
|
+
},
|
|
2363
|
+
"required": [
|
|
2364
|
+
"action",
|
|
2365
|
+
"actor",
|
|
2366
|
+
"organization_slug",
|
|
2367
|
+
"project_slug",
|
|
2368
|
+
"title",
|
|
2369
|
+
"type",
|
|
2370
|
+
"url"
|
|
2371
|
+
],
|
|
2372
|
+
"title": "SentryAlertEvent",
|
|
2373
|
+
"type": "object"
|
|
2374
|
+
},
|
|
2375
|
+
"Session": {
|
|
2376
|
+
"additionalProperties": false,
|
|
2377
|
+
"allOf": [
|
|
2378
|
+
{
|
|
2379
|
+
"oneOf": [
|
|
2383
2380
|
{
|
|
2384
|
-
"
|
|
2385
|
-
|
|
2381
|
+
"properties": {
|
|
2382
|
+
"claude_code": {
|
|
2383
|
+
"additionalProperties": true,
|
|
2384
|
+
"type": "object"
|
|
2385
|
+
},
|
|
2386
|
+
"codex": {
|
|
2387
|
+
"type": "null"
|
|
2388
|
+
}
|
|
2389
|
+
},
|
|
2390
|
+
"required": [
|
|
2391
|
+
"claude_code",
|
|
2392
|
+
"codex"
|
|
2393
|
+
]
|
|
2386
2394
|
},
|
|
2387
2395
|
{
|
|
2388
|
-
"
|
|
2396
|
+
"properties": {
|
|
2397
|
+
"claude_code": {
|
|
2398
|
+
"type": "null"
|
|
2399
|
+
},
|
|
2400
|
+
"codex": {
|
|
2401
|
+
"additionalProperties": true,
|
|
2402
|
+
"type": "object"
|
|
2403
|
+
}
|
|
2404
|
+
},
|
|
2405
|
+
"required": [
|
|
2406
|
+
"claude_code",
|
|
2407
|
+
"codex"
|
|
2408
|
+
]
|
|
2409
|
+
}
|
|
2410
|
+
]
|
|
2411
|
+
}
|
|
2412
|
+
],
|
|
2413
|
+
"description": "An agent session: one conversation with an agent. Returned by\n`GET /v1/sessions/{id}` and carried by the session stream's\n`session`/`snapshot` frames; REST and stream never disagree about what a\nsession looks like.",
|
|
2414
|
+
"properties": {
|
|
2415
|
+
"agent": {
|
|
2416
|
+
"anyOf": [
|
|
2417
|
+
{
|
|
2418
|
+
"$ref": "#/$defs/SessionAgent"
|
|
2419
|
+
},
|
|
2420
|
+
{
|
|
2421
|
+
"type": "null"
|
|
2389
2422
|
}
|
|
2390
2423
|
],
|
|
2391
2424
|
"default": null,
|
|
2392
|
-
"description": "
|
|
2393
|
-
"title": "Last Message At"
|
|
2425
|
+
"description": "The agent the session was started from, or null for a raw session started with POST /v1/sessions."
|
|
2394
2426
|
},
|
|
2395
|
-
"
|
|
2396
|
-
"
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2427
|
+
"archived": {
|
|
2428
|
+
"anyOf": [
|
|
2429
|
+
{
|
|
2430
|
+
"$ref": "#/$defs/SessionArchived"
|
|
2431
|
+
},
|
|
2432
|
+
{
|
|
2433
|
+
"type": "null"
|
|
2434
|
+
}
|
|
2435
|
+
],
|
|
2436
|
+
"default": null,
|
|
2437
|
+
"description": "When and by whom the session was archived; null when unarchived. Archiving does not stop or close a session."
|
|
2403
2438
|
},
|
|
2404
|
-
"
|
|
2405
|
-
"$ref": "#/$defs/
|
|
2406
|
-
"description": "
|
|
2439
|
+
"attribution": {
|
|
2440
|
+
"$ref": "#/$defs/SessionAttribution",
|
|
2441
|
+
"description": "The principal this session is attributed to."
|
|
2407
2442
|
},
|
|
2408
|
-
"
|
|
2443
|
+
"budget": {
|
|
2444
|
+
"default": 0,
|
|
2445
|
+
"description": "The spend budget enforced for this session, in US dollars, after resolving defaults and ceilings.",
|
|
2446
|
+
"title": "Budget",
|
|
2447
|
+
"type": "number"
|
|
2448
|
+
},
|
|
2449
|
+
"claude_code": {
|
|
2409
2450
|
"anyOf": [
|
|
2410
2451
|
{
|
|
2411
|
-
"
|
|
2452
|
+
"$ref": "#/$defs/ClaudeConfig"
|
|
2412
2453
|
},
|
|
2413
2454
|
{
|
|
2414
2455
|
"type": "null"
|
|
2415
2456
|
}
|
|
2416
2457
|
],
|
|
2417
2458
|
"default": null,
|
|
2418
|
-
"description": "
|
|
2419
|
-
"title": "Prompt"
|
|
2459
|
+
"description": "Claude Code input and native options. Set exactly one of claude_code or codex."
|
|
2420
2460
|
},
|
|
2421
|
-
"
|
|
2422
|
-
"
|
|
2423
|
-
|
|
2461
|
+
"codex": {
|
|
2462
|
+
"anyOf": [
|
|
2463
|
+
{
|
|
2464
|
+
"$ref": "#/$defs/CodexConfig"
|
|
2465
|
+
},
|
|
2466
|
+
{
|
|
2467
|
+
"type": "null"
|
|
2468
|
+
}
|
|
2469
|
+
],
|
|
2470
|
+
"default": null,
|
|
2471
|
+
"description": "Codex input and native options. Set exactly one of claude_code or codex."
|
|
2472
|
+
},
|
|
2473
|
+
"conversation": {
|
|
2474
|
+
"$ref": "#/$defs/SessionConversation",
|
|
2475
|
+
"description": "Whether the session can take more messages, and whether an agent is warm to answer one."
|
|
2476
|
+
},
|
|
2477
|
+
"cost": {
|
|
2478
|
+
"$ref": "#/$defs/SessionCost",
|
|
2479
|
+
"description": "What the session has cost so far, in millicents, broken down by leg and carrying its own total."
|
|
2480
|
+
},
|
|
2481
|
+
"created_at": {
|
|
2482
|
+
"description": "When the session was created.",
|
|
2483
|
+
"format": "date-time",
|
|
2484
|
+
"title": "Created At",
|
|
2485
|
+
"type": "string"
|
|
2486
|
+
},
|
|
2487
|
+
"environment": {
|
|
2488
|
+
"$ref": "#/$defs/SessionEnvironment",
|
|
2489
|
+
"description": "The full environment configuration frozen when the session was created, with the saved environment's id and how it was chosen."
|
|
2490
|
+
},
|
|
2491
|
+
"event": {
|
|
2492
|
+
"anyOf": [
|
|
2493
|
+
{
|
|
2494
|
+
"discriminator": {
|
|
2495
|
+
"mapping": {
|
|
2496
|
+
"github.issue": "#/$defs/GithubIssueEvent",
|
|
2497
|
+
"github.pull_request": "#/$defs/GithubPullRequestEvent",
|
|
2498
|
+
"github.push": "#/$defs/GithubPushEvent",
|
|
2499
|
+
"linear.issue": "#/$defs/LinearIssueEvent",
|
|
2500
|
+
"sentry.alert": "#/$defs/SentryAlertEvent",
|
|
2501
|
+
"slack.channel_created": "#/$defs/SlackChannelCreatedEvent",
|
|
2502
|
+
"slack.message": "#/$defs/SlackMessageEvent"
|
|
2503
|
+
},
|
|
2504
|
+
"propertyName": "type"
|
|
2505
|
+
},
|
|
2506
|
+
"oneOf": [
|
|
2507
|
+
{
|
|
2508
|
+
"$ref": "#/$defs/GithubPullRequestEvent"
|
|
2509
|
+
},
|
|
2510
|
+
{
|
|
2511
|
+
"$ref": "#/$defs/GithubIssueEvent"
|
|
2512
|
+
},
|
|
2513
|
+
{
|
|
2514
|
+
"$ref": "#/$defs/GithubPushEvent"
|
|
2515
|
+
},
|
|
2516
|
+
{
|
|
2517
|
+
"$ref": "#/$defs/LinearIssueEvent"
|
|
2518
|
+
},
|
|
2519
|
+
{
|
|
2520
|
+
"$ref": "#/$defs/SlackMessageEvent"
|
|
2521
|
+
},
|
|
2522
|
+
{
|
|
2523
|
+
"$ref": "#/$defs/SlackChannelCreatedEvent"
|
|
2524
|
+
},
|
|
2525
|
+
{
|
|
2526
|
+
"$ref": "#/$defs/SentryAlertEvent"
|
|
2527
|
+
}
|
|
2528
|
+
]
|
|
2529
|
+
},
|
|
2530
|
+
{
|
|
2531
|
+
"type": "null"
|
|
2532
|
+
}
|
|
2533
|
+
],
|
|
2534
|
+
"default": null,
|
|
2535
|
+
"description": "The typed external event that started the session; null for direct and scheduled starts.",
|
|
2536
|
+
"title": "Event"
|
|
2424
2537
|
},
|
|
2425
|
-
"
|
|
2538
|
+
"git": {
|
|
2426
2539
|
"anyOf": [
|
|
2427
2540
|
{
|
|
2428
|
-
"$ref": "#/$defs/
|
|
2541
|
+
"$ref": "#/$defs/SessionGit"
|
|
2429
2542
|
},
|
|
2430
2543
|
{
|
|
2431
2544
|
"type": "null"
|
|
2432
2545
|
}
|
|
2433
2546
|
],
|
|
2434
2547
|
"default": null,
|
|
2435
|
-
"description": "
|
|
2548
|
+
"description": "What the session did to git, one entry per repository in its workspace: the commit and branch it sits on, per-file line counts for its uncommitted changes, and the pull requests it opened. Null if nothing was ever captured."
|
|
2436
2549
|
},
|
|
2437
|
-
"
|
|
2438
|
-
"
|
|
2439
|
-
|
|
2550
|
+
"handler": {
|
|
2551
|
+
"anyOf": [
|
|
2552
|
+
{
|
|
2553
|
+
"$ref": "#/$defs/SessionHandler"
|
|
2554
|
+
},
|
|
2555
|
+
{
|
|
2556
|
+
"type": "null"
|
|
2557
|
+
}
|
|
2558
|
+
],
|
|
2559
|
+
"default": null,
|
|
2560
|
+
"description": "The saved handler and its effective display name when this session started, frozen at creation. Null for built-in responders, legacy sessions, and sessions started without a handler."
|
|
2440
2561
|
},
|
|
2441
|
-
"
|
|
2442
|
-
"
|
|
2443
|
-
"
|
|
2562
|
+
"id": {
|
|
2563
|
+
"description": "Unique identifier of the session.",
|
|
2564
|
+
"title": "Id",
|
|
2565
|
+
"type": "string"
|
|
2566
|
+
},
|
|
2567
|
+
"metadata": {
|
|
2568
|
+
"additionalProperties": {
|
|
2569
|
+
"type": "string"
|
|
2570
|
+
},
|
|
2571
|
+
"default": {},
|
|
2572
|
+
"description": "Caller-supplied metadata key-value pairs.",
|
|
2573
|
+
"title": "Metadata",
|
|
2574
|
+
"type": "object"
|
|
2444
2575
|
},
|
|
2445
|
-
"
|
|
2576
|
+
"output": {
|
|
2446
2577
|
"anyOf": [
|
|
2447
2578
|
{
|
|
2448
|
-
"
|
|
2579
|
+
"$ref": "#/$defs/OutputConfig"
|
|
2449
2580
|
},
|
|
2450
2581
|
{
|
|
2451
2582
|
"type": "null"
|
|
2452
2583
|
}
|
|
2453
2584
|
],
|
|
2454
2585
|
"default": null,
|
|
2455
|
-
"description": "
|
|
2456
|
-
"title": "Status Reason"
|
|
2586
|
+
"description": "The structured-output exit contract for this session."
|
|
2457
2587
|
},
|
|
2458
|
-
"
|
|
2459
|
-
"
|
|
2460
|
-
|
|
2588
|
+
"parent": {
|
|
2589
|
+
"anyOf": [
|
|
2590
|
+
{
|
|
2591
|
+
"$ref": "#/$defs/SessionParent"
|
|
2592
|
+
},
|
|
2593
|
+
{
|
|
2594
|
+
"type": "null"
|
|
2595
|
+
}
|
|
2596
|
+
],
|
|
2597
|
+
"default": null,
|
|
2598
|
+
"description": "The predecessor session this session continues; null when there is none."
|
|
2599
|
+
},
|
|
2600
|
+
"permissions": {
|
|
2601
|
+
"$ref": "#/$defs/PermissionsConfig",
|
|
2602
|
+
"description": "What the session may touch, per minted credential."
|
|
2603
|
+
},
|
|
2604
|
+
"skills": {
|
|
2605
|
+
"description": "Skills installed for this session.",
|
|
2606
|
+
"items": {
|
|
2607
|
+
"$ref": "#/$defs/SkillRef"
|
|
2608
|
+
},
|
|
2609
|
+
"title": "Skills",
|
|
2610
|
+
"type": "array"
|
|
2611
|
+
},
|
|
2612
|
+
"source": {
|
|
2613
|
+
"$ref": "#/$defs/SessionSource",
|
|
2614
|
+
"description": "Where the session came from (e.g. react, web, api, cli, mention, cron)."
|
|
2461
2615
|
},
|
|
2462
2616
|
"summary": {
|
|
2463
2617
|
"anyOf": [
|
|
@@ -2471,25 +2625,21 @@
|
|
|
2471
2625
|
"default": null,
|
|
2472
2626
|
"description": "The latest live summary of the session's progress while it runs, and when it was generated."
|
|
2473
2627
|
},
|
|
2474
|
-
"surface": {
|
|
2475
|
-
"$ref": "#/$defs/SessionSurface",
|
|
2476
|
-
"description": "The public status projection: the durable conversation (`session`), the current execution (`run`), and the one derived `status` word."
|
|
2477
|
-
},
|
|
2478
2628
|
"tokens": {
|
|
2479
2629
|
"$ref": "#/$defs/SessionTokens",
|
|
2480
2630
|
"description": "The tokens the session spent and the model they went to. `total` includes the prompt-cache lanes."
|
|
2481
2631
|
},
|
|
2482
|
-
"
|
|
2632
|
+
"turn": {
|
|
2483
2633
|
"anyOf": [
|
|
2484
2634
|
{
|
|
2485
|
-
"$ref": "#/$defs/
|
|
2635
|
+
"$ref": "#/$defs/SessionTurn"
|
|
2486
2636
|
},
|
|
2487
2637
|
{
|
|
2488
2638
|
"type": "null"
|
|
2489
2639
|
}
|
|
2490
2640
|
],
|
|
2491
2641
|
"default": null,
|
|
2492
|
-
"description": "The
|
|
2642
|
+
"description": "The turn in progress, or the latest one when none is running. Null until the session has a message. Wait on it: the message you sent is answered when the turn with your message's `turn_id` reaches a final status."
|
|
2493
2643
|
},
|
|
2494
2644
|
"updated_at": {
|
|
2495
2645
|
"description": "When the session was last updated.",
|
|
@@ -2499,38 +2649,91 @@
|
|
|
2499
2649
|
}
|
|
2500
2650
|
},
|
|
2501
2651
|
"required": [
|
|
2652
|
+
"agent",
|
|
2653
|
+
"archived",
|
|
2502
2654
|
"attribution",
|
|
2503
|
-
"automation",
|
|
2504
2655
|
"budget",
|
|
2505
|
-
"
|
|
2506
|
-
"
|
|
2656
|
+
"claude_code",
|
|
2657
|
+
"codex",
|
|
2658
|
+
"conversation",
|
|
2507
2659
|
"cost",
|
|
2508
2660
|
"created_at",
|
|
2509
2661
|
"environment",
|
|
2510
|
-
"
|
|
2662
|
+
"event",
|
|
2511
2663
|
"git",
|
|
2512
|
-
"
|
|
2664
|
+
"handler",
|
|
2513
2665
|
"id",
|
|
2514
|
-
"last_activity_at",
|
|
2515
|
-
"last_message_at",
|
|
2516
2666
|
"metadata",
|
|
2667
|
+
"output",
|
|
2517
2668
|
"parent",
|
|
2518
|
-
"
|
|
2519
|
-
"
|
|
2520
|
-
"session_state",
|
|
2669
|
+
"permissions",
|
|
2670
|
+
"skills",
|
|
2521
2671
|
"source",
|
|
2522
|
-
"status",
|
|
2523
|
-
"status_reason",
|
|
2524
|
-
"stopped",
|
|
2525
2672
|
"summary",
|
|
2526
|
-
"surface",
|
|
2527
2673
|
"tokens",
|
|
2528
|
-
"
|
|
2674
|
+
"turn",
|
|
2529
2675
|
"updated_at"
|
|
2530
2676
|
],
|
|
2531
2677
|
"title": "Session",
|
|
2532
2678
|
"type": "object"
|
|
2533
2679
|
},
|
|
2680
|
+
"SessionAgent": {
|
|
2681
|
+
"description": "The agent this session was started from: the definition frozen\nwhen the session was created, and the saved agent it came from as it\nexists NOW. They diverge legitimately \u2014 a YAML edit after the session\nstarted leaves the pointer describing something the session never ran.",
|
|
2682
|
+
"properties": {
|
|
2683
|
+
"config": {
|
|
2684
|
+
"$ref": "#/$defs/AgentConfig",
|
|
2685
|
+
"description": "The agent definition the session was started from, frozen when the session was created."
|
|
2686
|
+
},
|
|
2687
|
+
"id": {
|
|
2688
|
+
"anyOf": [
|
|
2689
|
+
{
|
|
2690
|
+
"type": "string"
|
|
2691
|
+
},
|
|
2692
|
+
{
|
|
2693
|
+
"type": "null"
|
|
2694
|
+
}
|
|
2695
|
+
],
|
|
2696
|
+
"default": null,
|
|
2697
|
+
"description": "Identifier of the saved agent this session's snapshot was taken from. Null for a routing-file agent, a code-review stage agent, or the built-in mention agent, which have no saved agent behind them. Points at the agent as it exists now, which may have changed since.",
|
|
2698
|
+
"title": "Id"
|
|
2699
|
+
}
|
|
2700
|
+
},
|
|
2701
|
+
"required": [
|
|
2702
|
+
"config",
|
|
2703
|
+
"id"
|
|
2704
|
+
],
|
|
2705
|
+
"title": "SessionAgent",
|
|
2706
|
+
"type": "object"
|
|
2707
|
+
},
|
|
2708
|
+
"SessionArchived": {
|
|
2709
|
+
"description": "When the session was archived and the GitHub user who archived it.",
|
|
2710
|
+
"properties": {
|
|
2711
|
+
"at": {
|
|
2712
|
+
"description": "When the session was archived.",
|
|
2713
|
+
"format": "date-time",
|
|
2714
|
+
"title": "At",
|
|
2715
|
+
"type": "string"
|
|
2716
|
+
},
|
|
2717
|
+
"by": {
|
|
2718
|
+
"anyOf": [
|
|
2719
|
+
{
|
|
2720
|
+
"$ref": "#/$defs/GithubAccountSnippet"
|
|
2721
|
+
},
|
|
2722
|
+
{
|
|
2723
|
+
"type": "null"
|
|
2724
|
+
}
|
|
2725
|
+
],
|
|
2726
|
+
"default": null,
|
|
2727
|
+
"description": "The GitHub user who archived the session; null if unknown or unavailable."
|
|
2728
|
+
}
|
|
2729
|
+
},
|
|
2730
|
+
"required": [
|
|
2731
|
+
"at",
|
|
2732
|
+
"by"
|
|
2733
|
+
],
|
|
2734
|
+
"title": "SessionArchived",
|
|
2735
|
+
"type": "object"
|
|
2736
|
+
},
|
|
2534
2737
|
"SessionAttribution": {
|
|
2535
2738
|
"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.",
|
|
2536
2739
|
"properties": {
|
|
@@ -2580,59 +2783,45 @@
|
|
|
2580
2783
|
"title": "SessionAttribution",
|
|
2581
2784
|
"type": "object"
|
|
2582
2785
|
},
|
|
2583
|
-
"
|
|
2584
|
-
"
|
|
2585
|
-
"
|
|
2586
|
-
|
|
2587
|
-
"
|
|
2588
|
-
"description": "The automation definition the session was started from, frozen when the session was created."
|
|
2589
|
-
},
|
|
2590
|
-
"id": {
|
|
2591
|
-
"anyOf": [
|
|
2786
|
+
"SessionConfig": {
|
|
2787
|
+
"additionalProperties": false,
|
|
2788
|
+
"allOf": [
|
|
2789
|
+
{
|
|
2790
|
+
"oneOf": [
|
|
2592
2791
|
{
|
|
2593
|
-
"
|
|
2792
|
+
"properties": {
|
|
2793
|
+
"claude_code": {
|
|
2794
|
+
"additionalProperties": true,
|
|
2795
|
+
"type": "object"
|
|
2796
|
+
},
|
|
2797
|
+
"codex": {
|
|
2798
|
+
"type": "null"
|
|
2799
|
+
}
|
|
2800
|
+
},
|
|
2801
|
+
"required": [
|
|
2802
|
+
"claude_code",
|
|
2803
|
+
"codex"
|
|
2804
|
+
]
|
|
2594
2805
|
},
|
|
2595
2806
|
{
|
|
2596
|
-
"
|
|
2807
|
+
"properties": {
|
|
2808
|
+
"claude_code": {
|
|
2809
|
+
"type": "null"
|
|
2810
|
+
},
|
|
2811
|
+
"codex": {
|
|
2812
|
+
"additionalProperties": true,
|
|
2813
|
+
"type": "object"
|
|
2814
|
+
}
|
|
2815
|
+
},
|
|
2816
|
+
"required": [
|
|
2817
|
+
"claude_code",
|
|
2818
|
+
"codex"
|
|
2819
|
+
]
|
|
2597
2820
|
}
|
|
2598
|
-
]
|
|
2599
|
-
"default": null,
|
|
2600
|
-
"description": "Identifier of the saved automation this session's snapshot was taken from. Null for a routing-file agent, a code-review stage agent, or the built-in mention agent, which have no saved automation behind them. Points at the automation as it exists now, which may have changed since.",
|
|
2601
|
-
"title": "Id"
|
|
2602
|
-
}
|
|
2603
|
-
},
|
|
2604
|
-
"required": [
|
|
2605
|
-
"config",
|
|
2606
|
-
"id"
|
|
2607
|
-
],
|
|
2608
|
-
"title": "SessionAutomation",
|
|
2609
|
-
"type": "object"
|
|
2610
|
-
},
|
|
2611
|
-
"SessionBudget": {
|
|
2612
|
-
"description": "The spend budget actually enforced for this session, and which layer of\nthe cascade set it.",
|
|
2613
|
-
"properties": {
|
|
2614
|
-
"cents": {
|
|
2615
|
-
"default": 0,
|
|
2616
|
-
"description": "The spend budget resolved for this session, in cents.",
|
|
2617
|
-
"title": "Cents",
|
|
2618
|
-
"type": "integer"
|
|
2619
|
-
},
|
|
2620
|
-
"source": {
|
|
2621
|
-
"$ref": "#/$defs/BudgetSource",
|
|
2622
|
-
"default": "account",
|
|
2623
|
-
"description": "Where the resolved budget came from."
|
|
2821
|
+
]
|
|
2624
2822
|
}
|
|
2625
|
-
},
|
|
2626
|
-
"required": [
|
|
2627
|
-
"cents",
|
|
2628
|
-
"source"
|
|
2629
2823
|
],
|
|
2630
|
-
"
|
|
2631
|
-
"type": "object"
|
|
2632
|
-
},
|
|
2633
|
-
"SessionConfig": {
|
|
2634
|
-
"additionalProperties": false,
|
|
2635
|
-
"description": "What one session runs on: its selected harness, where it runs, what it\nmay touch, its skills, its exit contract, and its spend cap. Every session\nfreezes one of these (`agent_sessions.session_config`); an automation\ncarries one under `session:` (`AutomationConfig.session`); and\n`POST /v1/sessions` is this shape flattened onto the request body, plus the\nrun settings. Nothing in here is an automation's identity or trigger \u2014\nthose belong to `AutomationConfig`.\n\nField order is the canonical key order for `session:` blocks and YAML\nexports: what runs (`harness`, `instructions`), where (`environment`), what it may\ntouch (`permissions`), then the rest.",
|
|
2824
|
+
"description": "What one session runs on: its selected harness, where it runs, what it\nmay touch, its skills, its exit contract, and its spend cap. Every session\nfreezes one of these (`sessions.session_config`); an agent\ncarries one under `session:` (`AgentConfig.session`); and\n`POST /v1/sessions` is this shape flattened onto the request body, plus the\nrun settings. Nothing in here is an agent's identity or trigger \u2014\nthose belong to `AgentConfig`.\n\nField order is the canonical key order for `session:` blocks and YAML\nexports: what runs (`claude_code` or `codex`), where (`environment`), what it may\ntouch (`permissions`), then the rest.",
|
|
2636
2825
|
"properties": {
|
|
2637
2826
|
"budget": {
|
|
2638
2827
|
"$ref": "#/$defs/BudgetConfig",
|
|
@@ -2643,28 +2832,51 @@
|
|
|
2643
2832
|
"week": null
|
|
2644
2833
|
}
|
|
2645
2834
|
},
|
|
2646
|
-
"
|
|
2835
|
+
"claude_code": {
|
|
2647
2836
|
"anyOf": [
|
|
2648
2837
|
{
|
|
2649
|
-
"
|
|
2838
|
+
"$ref": "#/$defs/ClaudeConfig"
|
|
2650
2839
|
},
|
|
2651
2840
|
{
|
|
2652
|
-
"
|
|
2841
|
+
"type": "null"
|
|
2653
2842
|
}
|
|
2654
2843
|
],
|
|
2655
|
-
"default":
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2844
|
+
"default": null,
|
|
2845
|
+
"description": "Claude Code input and native options. Set exactly one of claude_code or codex."
|
|
2846
|
+
},
|
|
2847
|
+
"codex": {
|
|
2848
|
+
"anyOf": [
|
|
2849
|
+
{
|
|
2850
|
+
"$ref": "#/$defs/CodexConfig"
|
|
2660
2851
|
},
|
|
2661
|
-
|
|
2662
|
-
"
|
|
2663
|
-
|
|
2852
|
+
{
|
|
2853
|
+
"type": "null"
|
|
2854
|
+
}
|
|
2855
|
+
],
|
|
2856
|
+
"default": null,
|
|
2857
|
+
"description": "Codex input and native options. Set exactly one of claude_code or codex."
|
|
2858
|
+
},
|
|
2859
|
+
"environment": {
|
|
2860
|
+
"anyOf": [
|
|
2861
|
+
{
|
|
2862
|
+
"type": "string"
|
|
2863
|
+
},
|
|
2864
|
+
{
|
|
2865
|
+
"$ref": "#/$defs/EnvironmentConfig"
|
|
2866
|
+
}
|
|
2867
|
+
],
|
|
2868
|
+
"default": {
|
|
2869
|
+
"compute": {
|
|
2870
|
+
"cpu": null,
|
|
2871
|
+
"memory": null,
|
|
2872
|
+
"timeout": null
|
|
2664
2873
|
},
|
|
2665
|
-
"
|
|
2666
|
-
"
|
|
2667
|
-
"
|
|
2874
|
+
"hooks": {
|
|
2875
|
+
"after_checkout": null,
|
|
2876
|
+
"before_start": null,
|
|
2877
|
+
"build_base": null,
|
|
2878
|
+
"post_clone": null,
|
|
2879
|
+
"post_start": null
|
|
2668
2880
|
},
|
|
2669
2881
|
"mcp_servers": [],
|
|
2670
2882
|
"repositories": [],
|
|
@@ -2672,15 +2884,6 @@
|
|
|
2672
2884
|
},
|
|
2673
2885
|
"title": "Environment"
|
|
2674
2886
|
},
|
|
2675
|
-
"harness": {
|
|
2676
|
-
"$ref": "#/$defs/HarnessOptions",
|
|
2677
|
-
"description": "The explicitly selected harness and its native options."
|
|
2678
|
-
},
|
|
2679
|
-
"instructions": {
|
|
2680
|
-
"$ref": "#/$defs/Instructions",
|
|
2681
|
-
"default": "",
|
|
2682
|
-
"description": "Instructions appended to the harness's own prompt. Text and repository file references are resolved in order."
|
|
2683
|
-
},
|
|
2684
2887
|
"output": {
|
|
2685
2888
|
"anyOf": [
|
|
2686
2889
|
{
|
|
@@ -2713,9 +2916,9 @@
|
|
|
2713
2916
|
},
|
|
2714
2917
|
"required": [
|
|
2715
2918
|
"budget",
|
|
2919
|
+
"claude_code",
|
|
2920
|
+
"codex",
|
|
2716
2921
|
"environment",
|
|
2717
|
-
"harness",
|
|
2718
|
-
"instructions",
|
|
2719
2922
|
"output",
|
|
2720
2923
|
"permissions",
|
|
2721
2924
|
"skills"
|
|
@@ -2723,9 +2926,46 @@
|
|
|
2723
2926
|
"title": "SessionConfig",
|
|
2724
2927
|
"type": "object"
|
|
2725
2928
|
},
|
|
2929
|
+
"SessionConversation": {
|
|
2930
|
+
"description": "Whether the session can take more messages, and how quickly it would\nanswer one.",
|
|
2931
|
+
"properties": {
|
|
2932
|
+
"interactive": {
|
|
2933
|
+
"description": "Whether the session stays open after its first turn.",
|
|
2934
|
+
"title": "Interactive",
|
|
2935
|
+
"type": "boolean"
|
|
2936
|
+
},
|
|
2937
|
+
"prompting": {
|
|
2938
|
+
"$ref": "#/$defs/SessionPrompting",
|
|
2939
|
+
"description": "The session's policy for direct messages. Caller authorization and message validation are checked separately."
|
|
2940
|
+
},
|
|
2941
|
+
"state": {
|
|
2942
|
+
"$ref": "#/$defs/SessionState",
|
|
2943
|
+
"description": "`open` while the session can take messages; `closed` is permanent."
|
|
2944
|
+
},
|
|
2945
|
+
"warm": {
|
|
2946
|
+
"description": "Whether an agent is ready to answer the next message right away. When false, the next message first prepares an environment, which takes longer. A hint only; clients need no logic on it.",
|
|
2947
|
+
"title": "Warm",
|
|
2948
|
+
"type": "boolean"
|
|
2949
|
+
}
|
|
2950
|
+
},
|
|
2951
|
+
"required": [
|
|
2952
|
+
"interactive",
|
|
2953
|
+
"prompting",
|
|
2954
|
+
"state",
|
|
2955
|
+
"warm"
|
|
2956
|
+
],
|
|
2957
|
+
"title": "SessionConversation",
|
|
2958
|
+
"type": "object"
|
|
2959
|
+
},
|
|
2726
2960
|
"SessionCost": {
|
|
2727
2961
|
"description": "What a session (or one turn of it) cost, in millicents.\n\n`llm` is deliberately NOT called `tokens`: it would sit beside the `tokens`\nobject and read as \"the token count's cost\" rather than \"the cost of the\nLLM leg\".",
|
|
2728
2962
|
"properties": {
|
|
2963
|
+
"cpu": {
|
|
2964
|
+
"default": 0,
|
|
2965
|
+
"description": "CPU spend in millicents.",
|
|
2966
|
+
"title": "Cpu",
|
|
2967
|
+
"type": "integer"
|
|
2968
|
+
},
|
|
2729
2969
|
"fee": {
|
|
2730
2970
|
"default": 0,
|
|
2731
2971
|
"description": "Platform fee in millicents.",
|
|
@@ -2738,39 +2978,52 @@
|
|
|
2738
2978
|
"title": "Llm",
|
|
2739
2979
|
"type": "integer"
|
|
2740
2980
|
},
|
|
2741
|
-
"
|
|
2742
|
-
"default": 0,
|
|
2743
|
-
"description": "Sandbox CPU spend in millicents.",
|
|
2744
|
-
"title": "Sandbox Cpu",
|
|
2745
|
-
"type": "integer"
|
|
2746
|
-
},
|
|
2747
|
-
"sandbox_memory": {
|
|
2981
|
+
"memory": {
|
|
2748
2982
|
"default": 0,
|
|
2749
|
-
"description": "
|
|
2750
|
-
"title": "
|
|
2983
|
+
"description": "Memory spend in millicents.",
|
|
2984
|
+
"title": "Memory",
|
|
2751
2985
|
"type": "integer"
|
|
2752
2986
|
},
|
|
2753
2987
|
"total": {
|
|
2754
2988
|
"default": 0,
|
|
2755
|
-
"description": "The grand total in millicents: llm +
|
|
2989
|
+
"description": "The grand total in millicents: llm + cpu + memory + fee.",
|
|
2756
2990
|
"title": "Total",
|
|
2757
2991
|
"type": "integer"
|
|
2758
2992
|
}
|
|
2759
2993
|
},
|
|
2760
2994
|
"required": [
|
|
2995
|
+
"cpu",
|
|
2761
2996
|
"fee",
|
|
2762
2997
|
"llm",
|
|
2763
|
-
"
|
|
2764
|
-
"sandbox_memory",
|
|
2998
|
+
"memory",
|
|
2765
2999
|
"total"
|
|
2766
3000
|
],
|
|
2767
3001
|
"title": "SessionCost",
|
|
2768
3002
|
"type": "object"
|
|
2769
3003
|
},
|
|
2770
3004
|
"SessionEnvironment": {
|
|
2771
|
-
"
|
|
3005
|
+
"additionalProperties": false,
|
|
3006
|
+
"description": "The environment configuration frozen at session creation, enriched with\nthe saved environment's identity and how it was chosen.",
|
|
2772
3007
|
"properties": {
|
|
2773
|
-
"
|
|
3008
|
+
"compute": {
|
|
3009
|
+
"$ref": "#/$defs/ComputeConfig",
|
|
3010
|
+
"default": {
|
|
3011
|
+
"cpu": null,
|
|
3012
|
+
"memory": null,
|
|
3013
|
+
"timeout": null
|
|
3014
|
+
}
|
|
3015
|
+
},
|
|
3016
|
+
"hooks": {
|
|
3017
|
+
"$ref": "#/$defs/EnvironmentHooks",
|
|
3018
|
+
"default": {
|
|
3019
|
+
"after_checkout": null,
|
|
3020
|
+
"before_start": null,
|
|
3021
|
+
"build_base": null,
|
|
3022
|
+
"post_clone": null,
|
|
3023
|
+
"post_start": null
|
|
3024
|
+
}
|
|
3025
|
+
},
|
|
3026
|
+
"id": {
|
|
2774
3027
|
"anyOf": [
|
|
2775
3028
|
{
|
|
2776
3029
|
"type": "string"
|
|
@@ -2780,8 +3033,37 @@
|
|
|
2780
3033
|
}
|
|
2781
3034
|
],
|
|
2782
3035
|
"default": null,
|
|
2783
|
-
"description": "Identifier of the saved environment the session's config resolved. Null for an inline environment block or the built-in basic
|
|
2784
|
-
"title": "
|
|
3036
|
+
"description": "Identifier of the saved environment the session's config resolved. Null for an inline environment block or the built-in basic environment.",
|
|
3037
|
+
"title": "Id"
|
|
3038
|
+
},
|
|
3039
|
+
"mcp_servers": {
|
|
3040
|
+
"default": [],
|
|
3041
|
+
"items": {
|
|
3042
|
+
"anyOf": [
|
|
3043
|
+
{
|
|
3044
|
+
"type": "string"
|
|
3045
|
+
},
|
|
3046
|
+
{
|
|
3047
|
+
"$ref": "#/$defs/McpServerRef"
|
|
3048
|
+
},
|
|
3049
|
+
{
|
|
3050
|
+
"$ref": "#/$defs/McpStdioServer"
|
|
3051
|
+
},
|
|
3052
|
+
{
|
|
3053
|
+
"$ref": "#/$defs/McpRemoteServer"
|
|
3054
|
+
}
|
|
3055
|
+
]
|
|
3056
|
+
},
|
|
3057
|
+
"title": "Mcp Servers",
|
|
3058
|
+
"type": "array"
|
|
3059
|
+
},
|
|
3060
|
+
"repositories": {
|
|
3061
|
+
"default": [],
|
|
3062
|
+
"items": {
|
|
3063
|
+
"$ref": "#/$defs/RepositoryRef"
|
|
3064
|
+
},
|
|
3065
|
+
"title": "Repositories",
|
|
3066
|
+
"type": "array"
|
|
2785
3067
|
},
|
|
2786
3068
|
"source": {
|
|
2787
3069
|
"anyOf": [
|
|
@@ -2793,39 +3075,71 @@
|
|
|
2793
3075
|
}
|
|
2794
3076
|
],
|
|
2795
3077
|
"default": null,
|
|
2796
|
-
"description": "How the environment was chosen (request,
|
|
3078
|
+
"description": "How the environment was chosen (request, agent, platform_default; repo_default and account_default on sessions from before those ladders were removed). An inline request uses request; an inline environment declared in session configuration has no source."
|
|
3079
|
+
},
|
|
3080
|
+
"variables": {
|
|
3081
|
+
"default": [],
|
|
3082
|
+
"items": {
|
|
3083
|
+
"$ref": "#/$defs/EnvironmentVariable"
|
|
3084
|
+
},
|
|
3085
|
+
"title": "Variables",
|
|
3086
|
+
"type": "array"
|
|
2797
3087
|
}
|
|
2798
3088
|
},
|
|
2799
3089
|
"required": [
|
|
2800
|
-
"
|
|
2801
|
-
"
|
|
3090
|
+
"compute",
|
|
3091
|
+
"hooks",
|
|
3092
|
+
"id",
|
|
3093
|
+
"mcp_servers",
|
|
3094
|
+
"repositories",
|
|
3095
|
+
"source",
|
|
3096
|
+
"variables"
|
|
2802
3097
|
],
|
|
2803
3098
|
"title": "SessionEnvironment",
|
|
2804
3099
|
"type": "object"
|
|
2805
3100
|
},
|
|
2806
|
-
"
|
|
2807
|
-
"description": "
|
|
2808
|
-
"
|
|
2809
|
-
"
|
|
2810
|
-
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
"
|
|
2822
|
-
|
|
3101
|
+
"SessionEventActor": {
|
|
3102
|
+
"description": "The event's initiator, when known; never inferred from resource ownership.",
|
|
3103
|
+
"properties": {
|
|
3104
|
+
"avatar_url": {
|
|
3105
|
+
"anyOf": [
|
|
3106
|
+
{
|
|
3107
|
+
"type": "string"
|
|
3108
|
+
},
|
|
3109
|
+
{
|
|
3110
|
+
"type": "null"
|
|
3111
|
+
}
|
|
3112
|
+
],
|
|
3113
|
+
"default": null,
|
|
3114
|
+
"title": "Avatar Url"
|
|
3115
|
+
},
|
|
3116
|
+
"is_bot": {
|
|
3117
|
+
"anyOf": [
|
|
3118
|
+
{
|
|
3119
|
+
"type": "boolean"
|
|
3120
|
+
},
|
|
3121
|
+
{
|
|
3122
|
+
"type": "null"
|
|
3123
|
+
}
|
|
3124
|
+
],
|
|
3125
|
+
"default": null,
|
|
3126
|
+
"title": "Is Bot"
|
|
3127
|
+
},
|
|
3128
|
+
"name": {
|
|
3129
|
+
"title": "Name",
|
|
3130
|
+
"type": "string"
|
|
3131
|
+
}
|
|
3132
|
+
},
|
|
3133
|
+
"required": [
|
|
3134
|
+
"avatar_url",
|
|
3135
|
+
"is_bot",
|
|
3136
|
+
"name"
|
|
2823
3137
|
],
|
|
2824
|
-
"title": "
|
|
2825
|
-
"type": "
|
|
3138
|
+
"title": "SessionEventActor",
|
|
3139
|
+
"type": "object"
|
|
2826
3140
|
},
|
|
2827
3141
|
"SessionGit": {
|
|
2828
|
-
"description": "Every repo the session touched. Small enough to ride on `
|
|
3142
|
+
"description": "Every repo the session touched. Small enough to ride on `sessions`\nand be returned by every session read.",
|
|
2829
3143
|
"properties": {
|
|
2830
3144
|
"repos": {
|
|
2831
3145
|
"default": [],
|
|
@@ -2843,7 +3157,7 @@
|
|
|
2843
3157
|
"type": "object"
|
|
2844
3158
|
},
|
|
2845
3159
|
"SessionGitCommit": {
|
|
2846
|
-
"description": "One commit the session created in this repo (everything past the\nprovisioning checkout's sha), captured from the
|
|
3160
|
+
"description": "One commit the session created in this repo (everything past the\nprovisioning checkout's sha), captured from the environment rather than the\ntranscript so it stays correct through amends, rebases, and commits made by\nscripts. The repo is the parent object, so it is not repeated here.",
|
|
2847
3161
|
"properties": {
|
|
2848
3162
|
"committed_at": {
|
|
2849
3163
|
"format": "date-time",
|
|
@@ -2947,7 +3261,7 @@
|
|
|
2947
3261
|
"type": "object"
|
|
2948
3262
|
},
|
|
2949
3263
|
"SessionGitRepo": {
|
|
2950
|
-
"description": "One checkout in the session's
|
|
3264
|
+
"description": "One checkout in the session's environment and everything the session did\nto it, split by whether it survived the environment.",
|
|
2951
3265
|
"properties": {
|
|
2952
3266
|
"commits": {
|
|
2953
3267
|
"default": [],
|
|
@@ -3032,6 +3346,41 @@
|
|
|
3032
3346
|
"title": "SessionGitRepo",
|
|
3033
3347
|
"type": "object"
|
|
3034
3348
|
},
|
|
3349
|
+
"SessionHandler": {
|
|
3350
|
+
"description": "The saved handler and its display name when the session started.",
|
|
3351
|
+
"properties": {
|
|
3352
|
+
"agent_name": {
|
|
3353
|
+
"description": "The handler's effective display name when the session started: ellipsis.name, or the service default (Slack, GitHub, Linear, or sentry).",
|
|
3354
|
+
"minLength": 1,
|
|
3355
|
+
"title": "Agent Name",
|
|
3356
|
+
"type": "string"
|
|
3357
|
+
},
|
|
3358
|
+
"id": {
|
|
3359
|
+
"description": "Identifier of the saved handler.",
|
|
3360
|
+
"minLength": 1,
|
|
3361
|
+
"title": "Id",
|
|
3362
|
+
"type": "string"
|
|
3363
|
+
},
|
|
3364
|
+
"service": {
|
|
3365
|
+
"$ref": "#/$defs/HandlerService",
|
|
3366
|
+
"description": "The service the handler responds to."
|
|
3367
|
+
},
|
|
3368
|
+
"sha": {
|
|
3369
|
+
"description": "Content fingerprint of the validated handler configuration used when the session started. This is not the Git commit SHA.",
|
|
3370
|
+
"minLength": 1,
|
|
3371
|
+
"title": "Sha",
|
|
3372
|
+
"type": "string"
|
|
3373
|
+
}
|
|
3374
|
+
},
|
|
3375
|
+
"required": [
|
|
3376
|
+
"agent_name",
|
|
3377
|
+
"id",
|
|
3378
|
+
"service",
|
|
3379
|
+
"sha"
|
|
3380
|
+
],
|
|
3381
|
+
"title": "SessionHandler",
|
|
3382
|
+
"type": "object"
|
|
3383
|
+
},
|
|
3035
3384
|
"SessionListStreamMessage": {
|
|
3036
3385
|
"properties": {
|
|
3037
3386
|
"session": {
|
|
@@ -3051,44 +3400,9 @@
|
|
|
3051
3400
|
"title": "SessionListStreamMessage",
|
|
3052
3401
|
"type": "object"
|
|
3053
3402
|
},
|
|
3054
|
-
"SessionLiveness": {
|
|
3055
|
-
"description": "The durable conversation axis (backs the surfaced `session` field).",
|
|
3056
|
-
"enum": [
|
|
3057
|
-
"alive",
|
|
3058
|
-
"idle",
|
|
3059
|
-
"closed"
|
|
3060
|
-
],
|
|
3061
|
-
"title": "SessionLiveness",
|
|
3062
|
-
"type": "string"
|
|
3063
|
-
},
|
|
3064
3403
|
"SessionParent": {
|
|
3065
|
-
"description": "The
|
|
3404
|
+
"description": "The predecessor session this session continues.",
|
|
3066
3405
|
"properties": {
|
|
3067
|
-
"kind": {
|
|
3068
|
-
"anyOf": [
|
|
3069
|
-
{
|
|
3070
|
-
"$ref": "#/$defs/ParentKind"
|
|
3071
|
-
},
|
|
3072
|
-
{
|
|
3073
|
-
"type": "null"
|
|
3074
|
-
}
|
|
3075
|
-
],
|
|
3076
|
-
"default": null,
|
|
3077
|
-
"description": "How this session relates to its parent session, if any."
|
|
3078
|
-
},
|
|
3079
|
-
"replayed_from_session_id": {
|
|
3080
|
-
"anyOf": [
|
|
3081
|
-
{
|
|
3082
|
-
"type": "string"
|
|
3083
|
-
},
|
|
3084
|
-
{
|
|
3085
|
-
"type": "null"
|
|
3086
|
-
}
|
|
3087
|
-
],
|
|
3088
|
-
"default": null,
|
|
3089
|
-
"description": "Identifier of the original session this one was replayed from, if it was started via replay.",
|
|
3090
|
-
"title": "Replayed From Session Id"
|
|
3091
|
-
},
|
|
3092
3406
|
"session_id": {
|
|
3093
3407
|
"anyOf": [
|
|
3094
3408
|
{
|
|
@@ -3099,13 +3413,11 @@
|
|
|
3099
3413
|
}
|
|
3100
3414
|
],
|
|
3101
3415
|
"default": null,
|
|
3102
|
-
"description": "Identifier of the
|
|
3416
|
+
"description": "Identifier of the predecessor session this session continues, if any.",
|
|
3103
3417
|
"title": "Session Id"
|
|
3104
3418
|
}
|
|
3105
3419
|
},
|
|
3106
3420
|
"required": [
|
|
3107
|
-
"kind",
|
|
3108
|
-
"replayed_from_session_id",
|
|
3109
3421
|
"session_id"
|
|
3110
3422
|
],
|
|
3111
3423
|
"title": "SessionParent",
|
|
@@ -3177,60 +3489,24 @@
|
|
|
3177
3489
|
"type": "string"
|
|
3178
3490
|
},
|
|
3179
3491
|
"SessionState": {
|
|
3180
|
-
"description": "
|
|
3492
|
+
"description": "Whether the conversation can still take messages. `closed` is permanent:\na session with interactive false closes when its turn ends, and a conversation closes\nafter its closing message's turn.",
|
|
3181
3493
|
"enum": [
|
|
3182
|
-
"
|
|
3183
|
-
"running",
|
|
3494
|
+
"open",
|
|
3184
3495
|
"closed"
|
|
3185
3496
|
],
|
|
3186
3497
|
"title": "SessionState",
|
|
3187
3498
|
"type": "string"
|
|
3188
3499
|
},
|
|
3189
|
-
"SessionStatus": {
|
|
3190
|
-
"enum": [
|
|
3191
|
-
"scheduled",
|
|
3192
|
-
"creating_sandbox",
|
|
3193
|
-
"running",
|
|
3194
|
-
"retrying",
|
|
3195
|
-
"completed",
|
|
3196
|
-
"error",
|
|
3197
|
-
"cancelled",
|
|
3198
|
-
"stopped"
|
|
3199
|
-
],
|
|
3200
|
-
"title": "SessionStatus",
|
|
3201
|
-
"type": "string"
|
|
3202
|
-
},
|
|
3203
3500
|
"SessionStopped": {
|
|
3204
|
-
"description": "
|
|
3501
|
+
"description": "When a stop was requested and the GitHub user who requested it.",
|
|
3205
3502
|
"properties": {
|
|
3206
3503
|
"at": {
|
|
3207
|
-
"
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
},
|
|
3212
|
-
{
|
|
3213
|
-
"type": "null"
|
|
3214
|
-
}
|
|
3215
|
-
],
|
|
3216
|
-
"default": null,
|
|
3217
|
-
"description": "When a stop was requested, if one was.",
|
|
3218
|
-
"title": "At"
|
|
3504
|
+
"description": "When a stop was requested.",
|
|
3505
|
+
"format": "date-time",
|
|
3506
|
+
"title": "At",
|
|
3507
|
+
"type": "string"
|
|
3219
3508
|
},
|
|
3220
3509
|
"by": {
|
|
3221
|
-
"anyOf": [
|
|
3222
|
-
{
|
|
3223
|
-
"type": "integer"
|
|
3224
|
-
},
|
|
3225
|
-
{
|
|
3226
|
-
"type": "null"
|
|
3227
|
-
}
|
|
3228
|
-
],
|
|
3229
|
-
"default": null,
|
|
3230
|
-
"description": "GitHub account id of the user who stopped the session, if known.",
|
|
3231
|
-
"title": "By"
|
|
3232
|
-
},
|
|
3233
|
-
"by_user": {
|
|
3234
3510
|
"anyOf": [
|
|
3235
3511
|
{
|
|
3236
3512
|
"$ref": "#/$defs/GithubAccountSnippet"
|
|
@@ -3240,19 +3516,18 @@
|
|
|
3240
3516
|
}
|
|
3241
3517
|
],
|
|
3242
3518
|
"default": null,
|
|
3243
|
-
"description": "The GitHub user who stopped the session, resolved at read time."
|
|
3519
|
+
"description": "The GitHub user who stopped the session, resolved at read time. Null if the user is unknown or unavailable."
|
|
3244
3520
|
}
|
|
3245
3521
|
},
|
|
3246
3522
|
"required": [
|
|
3247
3523
|
"at",
|
|
3248
|
-
"by"
|
|
3249
|
-
"by_user"
|
|
3524
|
+
"by"
|
|
3250
3525
|
],
|
|
3251
3526
|
"title": "SessionStopped",
|
|
3252
3527
|
"type": "object"
|
|
3253
3528
|
},
|
|
3254
3529
|
"SessionSummary": {
|
|
3255
|
-
"description": "A live one-line summary of what the session is
|
|
3530
|
+
"description": "A live one-line summary of what the session is doing, refreshed\nevery few steps while it runs.",
|
|
3256
3531
|
"properties": {
|
|
3257
3532
|
"created_at": {
|
|
3258
3533
|
"anyOf": [
|
|
@@ -3269,7 +3544,7 @@
|
|
|
3269
3544
|
"title": "Created At"
|
|
3270
3545
|
},
|
|
3271
3546
|
"description": {
|
|
3272
|
-
"description": "One-line description of what the session is
|
|
3547
|
+
"description": "One-line description of what the session is doing.",
|
|
3273
3548
|
"title": "Description",
|
|
3274
3549
|
"type": "string"
|
|
3275
3550
|
}
|
|
@@ -3281,57 +3556,14 @@
|
|
|
3281
3556
|
"title": "SessionSummary",
|
|
3282
3557
|
"type": "object"
|
|
3283
3558
|
},
|
|
3284
|
-
"
|
|
3285
|
-
"description": "The
|
|
3559
|
+
"SessionTokens": {
|
|
3560
|
+
"description": "The token counts a session (or turn) spent, and the model they went to.\n\n`total` INCLUDES the cache lanes, unlike the old flat `tokens_total` which\ncounted input+output+thinking only and left callers to add cache reads and\nwrites back themselves (the deleted `tokensTotalAll` helper). Cache tokens\ndominate an agent run's token bill, so a \"total\" that omits them is the\nwrong default and produced two competing totals in the dashboard.",
|
|
3286
3561
|
"properties": {
|
|
3287
|
-
"
|
|
3288
|
-
"
|
|
3289
|
-
|
|
3290
|
-
|
|
3291
|
-
|
|
3292
|
-
{
|
|
3293
|
-
"type": "null"
|
|
3294
|
-
}
|
|
3295
|
-
]
|
|
3296
|
-
},
|
|
3297
|
-
"session": {
|
|
3298
|
-
"anyOf": [
|
|
3299
|
-
{
|
|
3300
|
-
"$ref": "#/$defs/SessionLiveness"
|
|
3301
|
-
},
|
|
3302
|
-
{
|
|
3303
|
-
"type": "null"
|
|
3304
|
-
}
|
|
3305
|
-
]
|
|
3306
|
-
},
|
|
3307
|
-
"status": {
|
|
3308
|
-
"anyOf": [
|
|
3309
|
-
{
|
|
3310
|
-
"type": "string"
|
|
3311
|
-
},
|
|
3312
|
-
{
|
|
3313
|
-
"type": "null"
|
|
3314
|
-
}
|
|
3315
|
-
],
|
|
3316
|
-
"title": "Status"
|
|
3317
|
-
}
|
|
3318
|
-
},
|
|
3319
|
-
"required": [
|
|
3320
|
-
"run",
|
|
3321
|
-
"session",
|
|
3322
|
-
"status"
|
|
3323
|
-
],
|
|
3324
|
-
"title": "SessionSurface",
|
|
3325
|
-
"type": "object"
|
|
3326
|
-
},
|
|
3327
|
-
"SessionTokens": {
|
|
3328
|
-
"description": "The token counts a session (or turn) spent, and the model they went to.\n\n`total` INCLUDES the cache lanes, unlike the old flat `tokens_total` which\ncounted input+output+thinking only and left callers to add cache reads and\nwrites back themselves (the deleted `tokensTotalAll` helper). Cache tokens\ndominate an agent run's token bill, so a \"total\" that omits them is the\nwrong default and produced two competing totals in the dashboard.",
|
|
3329
|
-
"properties": {
|
|
3330
|
-
"cache_creation": {
|
|
3331
|
-
"default": 0,
|
|
3332
|
-
"description": "Tokens written to the prompt cache.",
|
|
3333
|
-
"title": "Cache Creation",
|
|
3334
|
-
"type": "integer"
|
|
3562
|
+
"cache_creation": {
|
|
3563
|
+
"default": 0,
|
|
3564
|
+
"description": "Tokens written to the prompt cache.",
|
|
3565
|
+
"title": "Cache Creation",
|
|
3566
|
+
"type": "integer"
|
|
3335
3567
|
},
|
|
3336
3568
|
"cache_read": {
|
|
3337
3569
|
"default": 0,
|
|
@@ -3375,10 +3607,20 @@
|
|
|
3375
3607
|
"title": "SessionTokens",
|
|
3376
3608
|
"type": "object"
|
|
3377
3609
|
},
|
|
3378
|
-
"
|
|
3379
|
-
"description": "
|
|
3610
|
+
"SessionTurn": {
|
|
3611
|
+
"description": "One message and the agent's answer to it. A turn is `pending` from the\nmoment its message is received until the agent starts on it, `running`\nwhile the agent works, then `completed`, `failed`, `stopped`, or\n`cancelled`.",
|
|
3380
3612
|
"properties": {
|
|
3381
|
-
"
|
|
3613
|
+
"cost": {
|
|
3614
|
+
"$ref": "#/$defs/SessionCost",
|
|
3615
|
+
"description": "What the turn cost so far, in millicents, broken down by leg."
|
|
3616
|
+
},
|
|
3617
|
+
"created_at": {
|
|
3618
|
+
"description": "When the turn's message was received.",
|
|
3619
|
+
"format": "date-time",
|
|
3620
|
+
"title": "Created At",
|
|
3621
|
+
"type": "string"
|
|
3622
|
+
},
|
|
3623
|
+
"detail": {
|
|
3382
3624
|
"anyOf": [
|
|
3383
3625
|
{
|
|
3384
3626
|
"type": "string"
|
|
@@ -3388,22 +3630,13 @@
|
|
|
3388
3630
|
}
|
|
3389
3631
|
],
|
|
3390
3632
|
"default": null,
|
|
3391
|
-
"
|
|
3392
|
-
|
|
3393
|
-
"actor": {
|
|
3394
|
-
"anyOf": [
|
|
3395
|
-
{
|
|
3396
|
-
"$ref": "#/$defs/SessionTriggerActor"
|
|
3397
|
-
},
|
|
3398
|
-
{
|
|
3399
|
-
"type": "null"
|
|
3400
|
-
}
|
|
3401
|
-
],
|
|
3402
|
-
"default": null
|
|
3633
|
+
"description": "A human-readable explanation of a failed, stopped, or cancelled turn.",
|
|
3634
|
+
"title": "Detail"
|
|
3403
3635
|
},
|
|
3404
|
-
"
|
|
3636
|
+
"ended_at": {
|
|
3405
3637
|
"anyOf": [
|
|
3406
3638
|
{
|
|
3639
|
+
"format": "date-time",
|
|
3407
3640
|
"type": "string"
|
|
3408
3641
|
},
|
|
3409
3642
|
{
|
|
@@ -3411,23 +3644,35 @@
|
|
|
3411
3644
|
}
|
|
3412
3645
|
],
|
|
3413
3646
|
"default": null,
|
|
3414
|
-
"
|
|
3647
|
+
"description": "When the turn reached its final status.",
|
|
3648
|
+
"title": "Ended At"
|
|
3415
3649
|
},
|
|
3416
|
-
"
|
|
3650
|
+
"id": {
|
|
3651
|
+
"description": "Unique identifier of the turn.",
|
|
3652
|
+
"title": "Id",
|
|
3653
|
+
"type": "string"
|
|
3654
|
+
},
|
|
3655
|
+
"index": {
|
|
3656
|
+
"description": "Position in the session, starting at 0.",
|
|
3657
|
+
"title": "Index",
|
|
3658
|
+
"type": "integer"
|
|
3659
|
+
},
|
|
3660
|
+
"reason": {
|
|
3417
3661
|
"anyOf": [
|
|
3418
3662
|
{
|
|
3419
|
-
"
|
|
3663
|
+
"$ref": "#/$defs/TurnReason"
|
|
3420
3664
|
},
|
|
3421
3665
|
{
|
|
3422
3666
|
"type": "null"
|
|
3423
3667
|
}
|
|
3424
3668
|
],
|
|
3425
3669
|
"default": null,
|
|
3426
|
-
"
|
|
3670
|
+
"description": "Why the turn failed or was cancelled; null on every other status."
|
|
3427
3671
|
},
|
|
3428
|
-
"
|
|
3672
|
+
"started_at": {
|
|
3429
3673
|
"anyOf": [
|
|
3430
3674
|
{
|
|
3675
|
+
"format": "date-time",
|
|
3431
3676
|
"type": "string"
|
|
3432
3677
|
},
|
|
3433
3678
|
{
|
|
@@ -3435,61 +3680,118 @@
|
|
|
3435
3680
|
}
|
|
3436
3681
|
],
|
|
3437
3682
|
"default": null,
|
|
3438
|
-
"
|
|
3683
|
+
"description": "When the agent started on the message.",
|
|
3684
|
+
"title": "Started At"
|
|
3439
3685
|
},
|
|
3440
|
-
"
|
|
3686
|
+
"status": {
|
|
3687
|
+
"$ref": "#/$defs/TurnStatus",
|
|
3688
|
+
"description": "Where the turn is."
|
|
3689
|
+
},
|
|
3690
|
+
"stopped": {
|
|
3441
3691
|
"anyOf": [
|
|
3442
3692
|
{
|
|
3443
|
-
"
|
|
3693
|
+
"$ref": "#/$defs/SessionStopped"
|
|
3444
3694
|
},
|
|
3445
3695
|
{
|
|
3446
3696
|
"type": "null"
|
|
3447
3697
|
}
|
|
3448
3698
|
],
|
|
3449
3699
|
"default": null,
|
|
3450
|
-
"
|
|
3700
|
+
"description": "When and by whom a stop was requested; null when none was."
|
|
3451
3701
|
},
|
|
3452
|
-
"
|
|
3702
|
+
"tokens": {
|
|
3703
|
+
"$ref": "#/$defs/SessionTokens",
|
|
3704
|
+
"description": "The tokens the turn spent and the model they went to."
|
|
3705
|
+
}
|
|
3706
|
+
},
|
|
3707
|
+
"required": [
|
|
3708
|
+
"cost",
|
|
3709
|
+
"created_at",
|
|
3710
|
+
"detail",
|
|
3711
|
+
"ended_at",
|
|
3712
|
+
"id",
|
|
3713
|
+
"index",
|
|
3714
|
+
"reason",
|
|
3715
|
+
"started_at",
|
|
3716
|
+
"status",
|
|
3717
|
+
"stopped",
|
|
3718
|
+
"tokens"
|
|
3719
|
+
],
|
|
3720
|
+
"title": "SessionTurn",
|
|
3721
|
+
"type": "object"
|
|
3722
|
+
},
|
|
3723
|
+
"SettingsRef": {
|
|
3724
|
+
"additionalProperties": false,
|
|
3725
|
+
"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.",
|
|
3726
|
+
"properties": {
|
|
3727
|
+
"path": {
|
|
3728
|
+
"title": "Path",
|
|
3729
|
+
"type": "string"
|
|
3730
|
+
},
|
|
3731
|
+
"repository": {
|
|
3453
3732
|
"anyOf": [
|
|
3454
3733
|
{
|
|
3455
|
-
"
|
|
3734
|
+
"$ref": "#/$defs/RepositoryRef"
|
|
3456
3735
|
},
|
|
3457
3736
|
{
|
|
3458
3737
|
"type": "null"
|
|
3459
3738
|
}
|
|
3460
3739
|
],
|
|
3461
|
-
"default": null
|
|
3462
|
-
|
|
3740
|
+
"default": null
|
|
3741
|
+
}
|
|
3742
|
+
},
|
|
3743
|
+
"required": [
|
|
3744
|
+
"path",
|
|
3745
|
+
"repository"
|
|
3746
|
+
],
|
|
3747
|
+
"title": "SettingsRef",
|
|
3748
|
+
"type": "object"
|
|
3749
|
+
},
|
|
3750
|
+
"SkillRef": {
|
|
3751
|
+
"additionalProperties": false,
|
|
3752
|
+
"description": "A repository directory containing SKILL.md and supporting UTF-8 files.\nResolved at run start and installed in the selected harness's skill directory.\nExplicit skill references require a model with the skills capability.",
|
|
3753
|
+
"properties": {
|
|
3754
|
+
"path": {
|
|
3755
|
+
"title": "Path",
|
|
3756
|
+
"type": "string"
|
|
3463
3757
|
},
|
|
3464
|
-
"
|
|
3758
|
+
"repository": {
|
|
3465
3759
|
"anyOf": [
|
|
3466
3760
|
{
|
|
3467
|
-
"
|
|
3761
|
+
"$ref": "#/$defs/RepositoryRef"
|
|
3468
3762
|
},
|
|
3469
3763
|
{
|
|
3470
3764
|
"type": "null"
|
|
3471
3765
|
}
|
|
3472
3766
|
],
|
|
3473
|
-
"default": null
|
|
3474
|
-
"title": "Url"
|
|
3767
|
+
"default": null
|
|
3475
3768
|
}
|
|
3476
3769
|
},
|
|
3477
3770
|
"required": [
|
|
3478
|
-
"
|
|
3479
|
-
"
|
|
3480
|
-
"branch",
|
|
3481
|
-
"number",
|
|
3482
|
-
"repository",
|
|
3483
|
-
"surface",
|
|
3484
|
-
"title",
|
|
3485
|
-
"url"
|
|
3771
|
+
"path",
|
|
3772
|
+
"repository"
|
|
3486
3773
|
],
|
|
3487
|
-
"title": "
|
|
3774
|
+
"title": "SkillRef",
|
|
3488
3775
|
"type": "object"
|
|
3489
3776
|
},
|
|
3490
|
-
"
|
|
3777
|
+
"SlackChannelCreatedEvent": {
|
|
3491
3778
|
"properties": {
|
|
3492
|
-
"
|
|
3779
|
+
"actor": {
|
|
3780
|
+
"anyOf": [
|
|
3781
|
+
{
|
|
3782
|
+
"$ref": "#/$defs/SessionEventActor"
|
|
3783
|
+
},
|
|
3784
|
+
{
|
|
3785
|
+
"type": "null"
|
|
3786
|
+
}
|
|
3787
|
+
],
|
|
3788
|
+
"default": null
|
|
3789
|
+
},
|
|
3790
|
+
"channel_id": {
|
|
3791
|
+
"title": "Channel Id",
|
|
3792
|
+
"type": "string"
|
|
3793
|
+
},
|
|
3794
|
+
"channel_name": {
|
|
3493
3795
|
"anyOf": [
|
|
3494
3796
|
{
|
|
3495
3797
|
"type": "string"
|
|
@@ -3499,115 +3801,365 @@
|
|
|
3499
3801
|
}
|
|
3500
3802
|
],
|
|
3501
3803
|
"default": null,
|
|
3502
|
-
"title": "
|
|
3804
|
+
"title": "Channel Name"
|
|
3503
3805
|
},
|
|
3504
|
-
"
|
|
3505
|
-
"
|
|
3506
|
-
"
|
|
3507
|
-
"
|
|
3806
|
+
"type": {
|
|
3807
|
+
"const": "slack.channel_created",
|
|
3808
|
+
"default": "slack.channel_created",
|
|
3809
|
+
"title": "Type",
|
|
3810
|
+
"type": "string"
|
|
3508
3811
|
},
|
|
3509
|
-
"
|
|
3510
|
-
"title": "
|
|
3812
|
+
"url": {
|
|
3813
|
+
"title": "Url",
|
|
3511
3814
|
"type": "string"
|
|
3512
3815
|
}
|
|
3513
3816
|
},
|
|
3514
3817
|
"required": [
|
|
3515
|
-
"
|
|
3516
|
-
"
|
|
3517
|
-
"
|
|
3818
|
+
"actor",
|
|
3819
|
+
"channel_id",
|
|
3820
|
+
"channel_name",
|
|
3821
|
+
"type",
|
|
3822
|
+
"url"
|
|
3518
3823
|
],
|
|
3519
|
-
"title": "
|
|
3824
|
+
"title": "SlackChannelCreatedEvent",
|
|
3520
3825
|
"type": "object"
|
|
3521
3826
|
},
|
|
3522
|
-
"
|
|
3523
|
-
"additionalProperties": false,
|
|
3524
|
-
"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.",
|
|
3827
|
+
"SlackMessageEvent": {
|
|
3525
3828
|
"properties": {
|
|
3526
|
-
"
|
|
3527
|
-
"
|
|
3829
|
+
"action": {
|
|
3830
|
+
"enum": [
|
|
3831
|
+
"message",
|
|
3832
|
+
"app_mention"
|
|
3833
|
+
],
|
|
3834
|
+
"title": "Action",
|
|
3528
3835
|
"type": "string"
|
|
3529
3836
|
},
|
|
3530
|
-
"
|
|
3837
|
+
"actor": {
|
|
3531
3838
|
"anyOf": [
|
|
3532
3839
|
{
|
|
3533
|
-
"$ref": "#/$defs/
|
|
3840
|
+
"$ref": "#/$defs/SessionEventActor"
|
|
3534
3841
|
},
|
|
3535
3842
|
{
|
|
3536
3843
|
"type": "null"
|
|
3537
3844
|
}
|
|
3538
3845
|
],
|
|
3539
3846
|
"default": null
|
|
3540
|
-
}
|
|
3541
|
-
|
|
3542
|
-
|
|
3543
|
-
"path",
|
|
3544
|
-
"repository"
|
|
3545
|
-
],
|
|
3546
|
-
"title": "SettingsRef",
|
|
3547
|
-
"type": "object"
|
|
3548
|
-
},
|
|
3549
|
-
"SkillRef": {
|
|
3550
|
-
"additionalProperties": false,
|
|
3551
|
-
"description": "A repository directory containing SKILL.md and supporting UTF-8 files.\nResolved at run start and installed in the selected harness's skill directory.\nExplicit skill references require a model with the skills capability.",
|
|
3552
|
-
"properties": {
|
|
3553
|
-
"path": {
|
|
3554
|
-
"title": "Path",
|
|
3847
|
+
},
|
|
3848
|
+
"channel_id": {
|
|
3849
|
+
"title": "Channel Id",
|
|
3555
3850
|
"type": "string"
|
|
3556
3851
|
},
|
|
3557
|
-
"
|
|
3852
|
+
"channel_name": {
|
|
3558
3853
|
"anyOf": [
|
|
3559
3854
|
{
|
|
3560
|
-
"
|
|
3855
|
+
"type": "string"
|
|
3561
3856
|
},
|
|
3562
3857
|
{
|
|
3563
3858
|
"type": "null"
|
|
3564
3859
|
}
|
|
3565
3860
|
],
|
|
3566
|
-
"default": null
|
|
3861
|
+
"default": null,
|
|
3862
|
+
"title": "Channel Name"
|
|
3863
|
+
},
|
|
3864
|
+
"message_ts": {
|
|
3865
|
+
"title": "Message Ts",
|
|
3866
|
+
"type": "string"
|
|
3867
|
+
},
|
|
3868
|
+
"thread_ts": {
|
|
3869
|
+
"anyOf": [
|
|
3870
|
+
{
|
|
3871
|
+
"type": "string"
|
|
3872
|
+
},
|
|
3873
|
+
{
|
|
3874
|
+
"type": "null"
|
|
3875
|
+
}
|
|
3876
|
+
],
|
|
3877
|
+
"default": null,
|
|
3878
|
+
"title": "Thread Ts"
|
|
3879
|
+
},
|
|
3880
|
+
"type": {
|
|
3881
|
+
"const": "slack.message",
|
|
3882
|
+
"default": "slack.message",
|
|
3883
|
+
"title": "Type",
|
|
3884
|
+
"type": "string"
|
|
3885
|
+
},
|
|
3886
|
+
"url": {
|
|
3887
|
+
"title": "Url",
|
|
3888
|
+
"type": "string"
|
|
3567
3889
|
}
|
|
3568
3890
|
},
|
|
3569
3891
|
"required": [
|
|
3570
|
-
"
|
|
3571
|
-
"
|
|
3892
|
+
"action",
|
|
3893
|
+
"actor",
|
|
3894
|
+
"channel_id",
|
|
3895
|
+
"channel_name",
|
|
3896
|
+
"message_ts",
|
|
3897
|
+
"thread_ts",
|
|
3898
|
+
"type",
|
|
3899
|
+
"url"
|
|
3572
3900
|
],
|
|
3573
|
-
"title": "
|
|
3901
|
+
"title": "SlackMessageEvent",
|
|
3574
3902
|
"type": "object"
|
|
3575
3903
|
},
|
|
3576
|
-
"
|
|
3577
|
-
"
|
|
3904
|
+
"TurnReason": {
|
|
3905
|
+
"description": "Why a turn failed or was cancelled. Null on every other outcome.",
|
|
3906
|
+
"enum": [
|
|
3907
|
+
"error",
|
|
3908
|
+
"tool_call_failed",
|
|
3909
|
+
"budget_hit",
|
|
3910
|
+
"payment_required",
|
|
3911
|
+
"blocked",
|
|
3912
|
+
"contact_email_required",
|
|
3913
|
+
"lifecycle_hook_failed",
|
|
3914
|
+
"missing_repo_access",
|
|
3915
|
+
"missing_token_permissions",
|
|
3916
|
+
"missing_environment_variables",
|
|
3917
|
+
"missing_github_integration",
|
|
3918
|
+
"agent_unavailable",
|
|
3919
|
+
"upstream_unavailable",
|
|
3920
|
+
"unsupported_configuration",
|
|
3921
|
+
"execution_disabled",
|
|
3922
|
+
"interrupted"
|
|
3923
|
+
],
|
|
3924
|
+
"title": "TurnReason",
|
|
3925
|
+
"type": "string"
|
|
3926
|
+
},
|
|
3927
|
+
"TurnStatus": {
|
|
3928
|
+
"description": "Where one turn is: queued for an agent, being answered, or over.\n\n`pending` covers everything before the agent starts on the message: queued\nbehind another turn, waiting to start, or preparing the environment.\n`stopped` and `cancelled` are their own outcomes; `reason` explains a\n`failed` or `cancelled` turn.",
|
|
3929
|
+
"enum": [
|
|
3930
|
+
"pending",
|
|
3931
|
+
"running",
|
|
3932
|
+
"completed",
|
|
3933
|
+
"failed",
|
|
3934
|
+
"stopped",
|
|
3935
|
+
"cancelled"
|
|
3936
|
+
],
|
|
3937
|
+
"title": "TurnStatus",
|
|
3938
|
+
"type": "string"
|
|
3939
|
+
},
|
|
3940
|
+
"VMExecutionResponse": {
|
|
3578
3941
|
"properties": {
|
|
3579
|
-
"
|
|
3580
|
-
"
|
|
3942
|
+
"cache_tier": {
|
|
3943
|
+
"anyOf": [
|
|
3944
|
+
{
|
|
3945
|
+
"$ref": "#/$defs/SandboxCacheTier"
|
|
3946
|
+
},
|
|
3947
|
+
{
|
|
3948
|
+
"type": "null"
|
|
3949
|
+
}
|
|
3950
|
+
]
|
|
3951
|
+
},
|
|
3952
|
+
"cost_sandbox_cpu": {
|
|
3953
|
+
"title": "Cost Sandbox Cpu",
|
|
3954
|
+
"type": "integer"
|
|
3955
|
+
},
|
|
3956
|
+
"cost_sandbox_memory": {
|
|
3957
|
+
"title": "Cost Sandbox Memory",
|
|
3958
|
+
"type": "integer"
|
|
3959
|
+
},
|
|
3960
|
+
"cpu": {
|
|
3961
|
+
"title": "Cpu",
|
|
3962
|
+
"type": "number"
|
|
3963
|
+
},
|
|
3964
|
+
"encrypted_ports": {
|
|
3965
|
+
"items": {
|
|
3966
|
+
"type": "integer"
|
|
3967
|
+
},
|
|
3968
|
+
"title": "Encrypted Ports",
|
|
3969
|
+
"type": "array"
|
|
3970
|
+
},
|
|
3971
|
+
"environment_variable_keys": {
|
|
3972
|
+
"items": {
|
|
3973
|
+
"type": "string"
|
|
3974
|
+
},
|
|
3975
|
+
"title": "Environment Variable Keys",
|
|
3976
|
+
"type": "array"
|
|
3977
|
+
},
|
|
3978
|
+
"failed_at": {
|
|
3979
|
+
"anyOf": [
|
|
3980
|
+
{
|
|
3981
|
+
"format": "date-time",
|
|
3982
|
+
"type": "string"
|
|
3983
|
+
},
|
|
3984
|
+
{
|
|
3985
|
+
"type": "null"
|
|
3986
|
+
}
|
|
3987
|
+
],
|
|
3988
|
+
"title": "Failed At"
|
|
3989
|
+
},
|
|
3990
|
+
"hooks": {
|
|
3991
|
+
"$ref": "#/$defs/EnvironmentHooks",
|
|
3992
|
+
"default": {
|
|
3993
|
+
"after_checkout": null,
|
|
3994
|
+
"before_start": null,
|
|
3995
|
+
"build_base": null,
|
|
3996
|
+
"post_clone": null,
|
|
3997
|
+
"post_start": null
|
|
3998
|
+
}
|
|
3999
|
+
},
|
|
4000
|
+
"id": {
|
|
4001
|
+
"title": "Id",
|
|
3581
4002
|
"type": "string"
|
|
3582
4003
|
},
|
|
3583
|
-
"
|
|
4004
|
+
"memory_mib": {
|
|
4005
|
+
"title": "Memory Mib",
|
|
4006
|
+
"type": "integer"
|
|
4007
|
+
},
|
|
4008
|
+
"phase_timings": {
|
|
4009
|
+
"additionalProperties": {
|
|
4010
|
+
"type": "number"
|
|
4011
|
+
},
|
|
4012
|
+
"title": "Phase Timings",
|
|
4013
|
+
"type": "object"
|
|
4014
|
+
},
|
|
4015
|
+
"post_clone": {
|
|
3584
4016
|
"anyOf": [
|
|
3585
4017
|
{
|
|
3586
|
-
"
|
|
4018
|
+
"type": "string"
|
|
3587
4019
|
},
|
|
3588
4020
|
{
|
|
3589
4021
|
"type": "null"
|
|
3590
4022
|
}
|
|
3591
4023
|
],
|
|
3592
|
-
"
|
|
4024
|
+
"title": "Post Clone"
|
|
4025
|
+
},
|
|
4026
|
+
"post_start": {
|
|
4027
|
+
"anyOf": [
|
|
4028
|
+
{
|
|
4029
|
+
"type": "string"
|
|
4030
|
+
},
|
|
4031
|
+
{
|
|
4032
|
+
"type": "null"
|
|
4033
|
+
}
|
|
4034
|
+
],
|
|
4035
|
+
"title": "Post Start"
|
|
4036
|
+
},
|
|
4037
|
+
"repositories": {
|
|
4038
|
+
"items": {
|
|
4039
|
+
"$ref": "#/$defs/SandboxRepository"
|
|
4040
|
+
},
|
|
4041
|
+
"title": "Repositories",
|
|
4042
|
+
"type": "array"
|
|
4043
|
+
},
|
|
4044
|
+
"running_at": {
|
|
4045
|
+
"anyOf": [
|
|
4046
|
+
{
|
|
4047
|
+
"format": "date-time",
|
|
4048
|
+
"type": "string"
|
|
4049
|
+
},
|
|
4050
|
+
{
|
|
4051
|
+
"type": "null"
|
|
4052
|
+
}
|
|
4053
|
+
],
|
|
4054
|
+
"title": "Running At"
|
|
4055
|
+
},
|
|
4056
|
+
"scheduled_at": {
|
|
4057
|
+
"format": "date-time",
|
|
4058
|
+
"title": "Scheduled At",
|
|
4059
|
+
"type": "string"
|
|
4060
|
+
},
|
|
4061
|
+
"source": {
|
|
4062
|
+
"$ref": "#/$defs/SandboxSource"
|
|
4063
|
+
},
|
|
4064
|
+
"source_session_id": {
|
|
4065
|
+
"anyOf": [
|
|
4066
|
+
{
|
|
4067
|
+
"type": "string"
|
|
4068
|
+
},
|
|
4069
|
+
{
|
|
4070
|
+
"type": "null"
|
|
4071
|
+
}
|
|
4072
|
+
],
|
|
4073
|
+
"title": "Source Session Id"
|
|
4074
|
+
},
|
|
4075
|
+
"status": {
|
|
4076
|
+
"$ref": "#/$defs/SandboxStatus"
|
|
4077
|
+
},
|
|
4078
|
+
"terminated_at": {
|
|
4079
|
+
"anyOf": [
|
|
4080
|
+
{
|
|
4081
|
+
"format": "date-time",
|
|
4082
|
+
"type": "string"
|
|
4083
|
+
},
|
|
4084
|
+
{
|
|
4085
|
+
"type": "null"
|
|
4086
|
+
}
|
|
4087
|
+
],
|
|
4088
|
+
"title": "Terminated At"
|
|
4089
|
+
},
|
|
4090
|
+
"terminating_at": {
|
|
4091
|
+
"anyOf": [
|
|
4092
|
+
{
|
|
4093
|
+
"format": "date-time",
|
|
4094
|
+
"type": "string"
|
|
4095
|
+
},
|
|
4096
|
+
{
|
|
4097
|
+
"type": "null"
|
|
4098
|
+
}
|
|
4099
|
+
],
|
|
4100
|
+
"title": "Terminating At"
|
|
4101
|
+
},
|
|
4102
|
+
"timeout_seconds": {
|
|
4103
|
+
"title": "Timeout Seconds",
|
|
4104
|
+
"type": "integer"
|
|
4105
|
+
},
|
|
4106
|
+
"tunnels": {
|
|
4107
|
+
"items": {
|
|
4108
|
+
"$ref": "#/$defs/SandboxPort"
|
|
4109
|
+
},
|
|
4110
|
+
"title": "Tunnels",
|
|
4111
|
+
"type": "array"
|
|
4112
|
+
},
|
|
4113
|
+
"type": {
|
|
4114
|
+
"$ref": "#/$defs/SandboxType"
|
|
4115
|
+
},
|
|
4116
|
+
"unencrypted_ports": {
|
|
4117
|
+
"items": {
|
|
4118
|
+
"type": "integer"
|
|
4119
|
+
},
|
|
4120
|
+
"title": "Unencrypted Ports",
|
|
4121
|
+
"type": "array"
|
|
3593
4122
|
}
|
|
3594
4123
|
},
|
|
3595
4124
|
"required": [
|
|
3596
|
-
"
|
|
3597
|
-
"
|
|
4125
|
+
"cache_tier",
|
|
4126
|
+
"cost_sandbox_cpu",
|
|
4127
|
+
"cost_sandbox_memory",
|
|
4128
|
+
"cpu",
|
|
4129
|
+
"encrypted_ports",
|
|
4130
|
+
"environment_variable_keys",
|
|
4131
|
+
"failed_at",
|
|
4132
|
+
"hooks",
|
|
4133
|
+
"id",
|
|
4134
|
+
"memory_mib",
|
|
4135
|
+
"phase_timings",
|
|
4136
|
+
"post_clone",
|
|
4137
|
+
"post_start",
|
|
4138
|
+
"repositories",
|
|
4139
|
+
"running_at",
|
|
4140
|
+
"scheduled_at",
|
|
4141
|
+
"source",
|
|
4142
|
+
"source_session_id",
|
|
4143
|
+
"status",
|
|
4144
|
+
"terminated_at",
|
|
4145
|
+
"terminating_at",
|
|
4146
|
+
"timeout_seconds",
|
|
4147
|
+
"tunnels",
|
|
4148
|
+
"type",
|
|
4149
|
+
"unencrypted_ports"
|
|
3598
4150
|
],
|
|
3599
|
-
"title": "
|
|
4151
|
+
"title": "VMExecutionResponse",
|
|
3600
4152
|
"type": "object"
|
|
3601
4153
|
}
|
|
3602
4154
|
},
|
|
3603
4155
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3604
|
-
"description": "Frames on /v1/sessions/stream, /v1/
|
|
4156
|
+
"description": "Frames on /v1/sessions/stream, /v1/agents/stream and /v1/vm-executions/{id}/stream. Ignore unknown frame types.",
|
|
3605
4157
|
"oneOf": [
|
|
3606
4158
|
{
|
|
3607
4159
|
"$ref": "#/$defs/SessionListStreamMessage"
|
|
3608
4160
|
},
|
|
3609
4161
|
{
|
|
3610
|
-
"$ref": "#/$defs/
|
|
4162
|
+
"$ref": "#/$defs/AgentListStreamMessage"
|
|
3611
4163
|
},
|
|
3612
4164
|
{
|
|
3613
4165
|
"$ref": "#/$defs/CollectionStreamHeartbeat"
|