@ellipsis-dev/sdk 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +931 -26
- package/dist/index.js +1232 -81
- package/dist/store/index.d.ts +8 -8
- package/dist/store/index.js +1 -1
- package/dist/stream/index.d.ts +2 -2
- package/dist/{types-rf-NzI8E.d.ts → types-CStmnKVu.d.ts} +1406 -1587
- package/package.json +1 -1
- package/schema/frames.schema.json +492 -498
- package/schema/openapi.v1.json +2748 -3202
- package/schema/trigger_fields.schema.json +374 -0
|
@@ -1,48 +1,70 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$defs": {
|
|
3
|
-
"
|
|
4
|
-
"description": "Why a terminal agent session ended \u2014 a finer-grained reason than `status`.\n\n`status` (AgentSessionStatus) is the lifecycle state: COMPLETED / ERROR /\nCANCELLED. `exit_status` explains *why* a run reached that terminal state, so\nthe UI and metrics can tell a budget cutoff apart from a crashed tool call or\na deliberate cancellation. It is None until the run reaches a terminal state.",
|
|
3
|
+
"AttributionType": {
|
|
5
4
|
"enum": [
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"lifecycle_hook_failed",
|
|
11
|
-
"missing_repo_access",
|
|
12
|
-
"missing_token_permissions",
|
|
13
|
-
"missing_sandbox_variables",
|
|
14
|
-
"cancelled",
|
|
15
|
-
"interrupted",
|
|
16
|
-
"error",
|
|
17
|
-
"stopped"
|
|
5
|
+
"github_user",
|
|
6
|
+
"linear_user",
|
|
7
|
+
"slack_user",
|
|
8
|
+
"api_key"
|
|
18
9
|
],
|
|
19
|
-
"title": "
|
|
10
|
+
"title": "AttributionType",
|
|
20
11
|
"type": "string"
|
|
21
12
|
},
|
|
22
|
-
"
|
|
23
|
-
"description": "
|
|
13
|
+
"BudgetSource": {
|
|
14
|
+
"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.",
|
|
15
|
+
"enum": [
|
|
16
|
+
"system",
|
|
17
|
+
"account",
|
|
18
|
+
"config",
|
|
19
|
+
"run"
|
|
20
|
+
],
|
|
21
|
+
"title": "BudgetSource",
|
|
22
|
+
"type": "string"
|
|
23
|
+
},
|
|
24
|
+
"DefaultResolution": {
|
|
25
|
+
"description": "How a session that arrived with no explicit config source resolved its\nconfig (documents/eng/DEFAULT_CONFIGS.md \u00a74). Persisted on the session so\naudit and clients can say \"ran under X (repo default)\". A session started\nwith an explicit config/config_id/template_id never enters resolution and\nstores None.",
|
|
26
|
+
"enum": [
|
|
27
|
+
"repo_default",
|
|
28
|
+
"account_default",
|
|
29
|
+
"none"
|
|
30
|
+
],
|
|
31
|
+
"title": "DefaultResolution",
|
|
32
|
+
"type": "string"
|
|
33
|
+
},
|
|
34
|
+
"DeltaFrame": {
|
|
35
|
+
"description": "Fire-and-forget partial assistant output for the current response.\nCarries no sequence number and is never resumable; superseded by the\ncommitted record.",
|
|
24
36
|
"properties": {
|
|
25
|
-
"
|
|
37
|
+
"agent_turn_id": {
|
|
26
38
|
"anyOf": [
|
|
27
39
|
{
|
|
28
|
-
"type": "
|
|
40
|
+
"type": "string"
|
|
29
41
|
},
|
|
30
42
|
{
|
|
31
43
|
"type": "null"
|
|
32
44
|
}
|
|
33
45
|
],
|
|
34
46
|
"default": null,
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
"number": {
|
|
38
|
-
"title": "Number",
|
|
39
|
-
"type": "integer"
|
|
47
|
+
"description": "Identifier of the turn the delta belongs to, if known.",
|
|
48
|
+
"title": "Agent Turn Id"
|
|
40
49
|
},
|
|
41
|
-
"
|
|
42
|
-
"
|
|
50
|
+
"kind": {
|
|
51
|
+
"description": "What the partial text is. Known values: text ('thinking' reserved). Open vocabulary: ignore deltas with unknown kinds.",
|
|
43
52
|
"type": "string"
|
|
44
53
|
},
|
|
45
|
-
"
|
|
54
|
+
"output_tokens": {
|
|
55
|
+
"anyOf": [
|
|
56
|
+
{
|
|
57
|
+
"type": "integer"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"type": "null"
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"default": null,
|
|
64
|
+
"description": "Output tokens generated so far for the current response.",
|
|
65
|
+
"title": "Output Tokens"
|
|
66
|
+
},
|
|
67
|
+
"text": {
|
|
46
68
|
"anyOf": [
|
|
47
69
|
{
|
|
48
70
|
"type": "string"
|
|
@@ -52,66 +74,200 @@
|
|
|
52
74
|
}
|
|
53
75
|
],
|
|
54
76
|
"default": null,
|
|
55
|
-
"
|
|
77
|
+
"description": "The partial output text.",
|
|
78
|
+
"title": "Text"
|
|
56
79
|
},
|
|
57
|
-
"
|
|
58
|
-
"
|
|
80
|
+
"type": {
|
|
81
|
+
"const": "delta",
|
|
82
|
+
"default": "delta",
|
|
83
|
+
"title": "Type",
|
|
59
84
|
"type": "string"
|
|
60
85
|
}
|
|
61
86
|
},
|
|
62
87
|
"required": [
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
88
|
+
"agent_turn_id",
|
|
89
|
+
"kind",
|
|
90
|
+
"output_tokens",
|
|
91
|
+
"text",
|
|
92
|
+
"type"
|
|
68
93
|
],
|
|
69
|
-
"title": "
|
|
94
|
+
"title": "DeltaFrame",
|
|
70
95
|
"type": "object"
|
|
71
96
|
},
|
|
72
|
-
"
|
|
97
|
+
"DoneFrame": {
|
|
98
|
+
"description": "Terminal marker: the conversation is over, after the final session\nframe carried the end state. Followed by a normal close (1000).",
|
|
99
|
+
"properties": {
|
|
100
|
+
"type": {
|
|
101
|
+
"const": "done",
|
|
102
|
+
"default": "done",
|
|
103
|
+
"title": "Type",
|
|
104
|
+
"type": "string"
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"required": [
|
|
108
|
+
"type"
|
|
109
|
+
],
|
|
110
|
+
"title": "DoneFrame",
|
|
111
|
+
"type": "object"
|
|
112
|
+
},
|
|
113
|
+
"ErrorFrame": {
|
|
114
|
+
"description": "Terminal error marker, sent before the server closes with code 1011.",
|
|
115
|
+
"properties": {
|
|
116
|
+
"message": {
|
|
117
|
+
"description": "A human-readable error message.",
|
|
118
|
+
"title": "Message",
|
|
119
|
+
"type": "string"
|
|
120
|
+
},
|
|
121
|
+
"type": {
|
|
122
|
+
"const": "error",
|
|
123
|
+
"default": "error",
|
|
124
|
+
"title": "Type",
|
|
125
|
+
"type": "string"
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"required": [
|
|
129
|
+
"message",
|
|
130
|
+
"type"
|
|
131
|
+
],
|
|
132
|
+
"title": "ErrorFrame",
|
|
133
|
+
"type": "object"
|
|
134
|
+
},
|
|
135
|
+
"GithubAccountSnippet": {
|
|
136
|
+
"description": "Sometimes the GitHub API returns a user of github (can include bots)\nusing this snippet instead of the full GithubAccount model. One example,\nis when the API returns a pull request.\n\nThis is the least amount of info we need to represent a GitHub account.",
|
|
137
|
+
"properties": {
|
|
138
|
+
"avatar_url": {
|
|
139
|
+
"title": "Avatar Url",
|
|
140
|
+
"type": "string"
|
|
141
|
+
},
|
|
142
|
+
"id": {
|
|
143
|
+
"title": "Id",
|
|
144
|
+
"type": "integer"
|
|
145
|
+
},
|
|
146
|
+
"login": {
|
|
147
|
+
"title": "Login",
|
|
148
|
+
"type": "string"
|
|
149
|
+
},
|
|
150
|
+
"type": {
|
|
151
|
+
"$ref": "#/$defs/GithubAccountType"
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"required": [
|
|
155
|
+
"avatar_url",
|
|
156
|
+
"id",
|
|
157
|
+
"login",
|
|
158
|
+
"type"
|
|
159
|
+
],
|
|
160
|
+
"title": "GithubAccountSnippet",
|
|
161
|
+
"type": "object"
|
|
162
|
+
},
|
|
163
|
+
"GithubAccountType": {
|
|
73
164
|
"enum": [
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
|
|
79
|
-
|
|
165
|
+
"User",
|
|
166
|
+
"Organization",
|
|
167
|
+
"Bot",
|
|
168
|
+
"Mannequin"
|
|
169
|
+
],
|
|
170
|
+
"title": "GithubAccountType",
|
|
171
|
+
"type": "string"
|
|
172
|
+
},
|
|
173
|
+
"Harness": {
|
|
174
|
+
"enum": [
|
|
175
|
+
"claude_code",
|
|
176
|
+
"codex"
|
|
177
|
+
],
|
|
178
|
+
"title": "Harness",
|
|
179
|
+
"type": "string"
|
|
180
|
+
},
|
|
181
|
+
"HeartbeatFrame": {
|
|
182
|
+
"description": "A keepalive sent after a period of idleness; doubles as the dead-socket\nprobe. Clients should treat roughly twice the heartbeat interval of\nsilence as a dead connection.",
|
|
183
|
+
"properties": {
|
|
184
|
+
"ts": {
|
|
185
|
+
"description": "Server time when the heartbeat was sent.",
|
|
186
|
+
"format": "date-time",
|
|
187
|
+
"title": "Ts",
|
|
188
|
+
"type": "string"
|
|
189
|
+
},
|
|
190
|
+
"type": {
|
|
191
|
+
"const": "heartbeat",
|
|
192
|
+
"default": "heartbeat",
|
|
193
|
+
"title": "Type",
|
|
194
|
+
"type": "string"
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
"required": [
|
|
198
|
+
"ts",
|
|
199
|
+
"type"
|
|
200
|
+
],
|
|
201
|
+
"title": "HeartbeatFrame",
|
|
202
|
+
"type": "object"
|
|
203
|
+
},
|
|
204
|
+
"ParentKind": {
|
|
205
|
+
"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).\nHANDOFF \u2014 a session started to take over work from another surface (e.g.\nlaptop \u2192 cloud handoff; later phase).\nRESUME \u2014 a conversation re-hosted on a new box after its sandbox was torn\ndown (interactive platform; later phase).",
|
|
206
|
+
"enum": [
|
|
207
|
+
"continuation",
|
|
208
|
+
"handoff",
|
|
209
|
+
"resume"
|
|
210
|
+
],
|
|
211
|
+
"title": "ParentKind",
|
|
212
|
+
"type": "string"
|
|
213
|
+
},
|
|
214
|
+
"PromptBlockedReason": {
|
|
215
|
+
"description": "Why direct prompting is refused. Absent when prompting is allowed.",
|
|
216
|
+
"enum": [
|
|
217
|
+
"mention_surface",
|
|
218
|
+
"ephemeral_trigger",
|
|
219
|
+
"non_interactive",
|
|
220
|
+
"harness_single_turn",
|
|
221
|
+
"closed",
|
|
80
222
|
"laptop"
|
|
81
223
|
],
|
|
82
|
-
"title": "
|
|
224
|
+
"title": "PromptBlockedReason",
|
|
83
225
|
"type": "string"
|
|
84
226
|
},
|
|
85
|
-
"
|
|
227
|
+
"RecordsAppendFrame": {
|
|
228
|
+
"description": "Cursored append-only delivery of session records, ordered by feed_seq,\nfrom all sources. Every record in the frame advances the resume cursor \u2014\nincluding ones a client renders as nothing.",
|
|
229
|
+
"properties": {
|
|
230
|
+
"records": {
|
|
231
|
+
"description": "New session records, ordered by feed_seq.",
|
|
232
|
+
"items": {
|
|
233
|
+
"$ref": "#/$defs/SessionRecord"
|
|
234
|
+
},
|
|
235
|
+
"title": "Records",
|
|
236
|
+
"type": "array"
|
|
237
|
+
},
|
|
238
|
+
"type": {
|
|
239
|
+
"const": "records_append",
|
|
240
|
+
"default": "records_append",
|
|
241
|
+
"title": "Type",
|
|
242
|
+
"type": "string"
|
|
243
|
+
}
|
|
244
|
+
},
|
|
245
|
+
"required": [
|
|
246
|
+
"records",
|
|
247
|
+
"type"
|
|
248
|
+
],
|
|
249
|
+
"title": "RecordsAppendFrame",
|
|
250
|
+
"type": "object"
|
|
251
|
+
},
|
|
252
|
+
"RunStatus": {
|
|
253
|
+
"description": "What the current (or most recent) execution is doing (backs `run`).",
|
|
86
254
|
"enum": [
|
|
87
255
|
"scheduled",
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
256
|
+
"starting",
|
|
257
|
+
"working",
|
|
258
|
+
"waiting",
|
|
259
|
+
"done",
|
|
260
|
+
"failed",
|
|
261
|
+
"stopped",
|
|
93
262
|
"cancelled",
|
|
94
|
-
"
|
|
263
|
+
"retrying"
|
|
95
264
|
],
|
|
96
|
-
"title": "
|
|
265
|
+
"title": "RunStatus",
|
|
97
266
|
"type": "string"
|
|
98
267
|
},
|
|
99
|
-
"
|
|
268
|
+
"Session": {
|
|
100
269
|
"description": "An agent session: one conversation with an agent, from trigger to\nterminal state. Returned by `GET /sessions/{id}` and carried by the\nsession stream's `session`/`snapshot` frames \u2014 REST and stream never\ndisagree about what a session looks like.",
|
|
101
270
|
"properties": {
|
|
102
|
-
"agent_config_id": {
|
|
103
|
-
"anyOf": [
|
|
104
|
-
{
|
|
105
|
-
"type": "string"
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
"type": "null"
|
|
109
|
-
}
|
|
110
|
-
],
|
|
111
|
-
"default": null,
|
|
112
|
-
"description": "Identifier of the saved agent config the session ran on, if any.",
|
|
113
|
-
"title": "Agent Config Id"
|
|
114
|
-
},
|
|
115
271
|
"attributed_user": {
|
|
116
272
|
"anyOf": [
|
|
117
273
|
{
|
|
@@ -162,6 +318,19 @@
|
|
|
162
318
|
"description": "Version of the client that started the session, if reported.",
|
|
163
319
|
"title": "Client Version"
|
|
164
320
|
},
|
|
321
|
+
"config_id": {
|
|
322
|
+
"anyOf": [
|
|
323
|
+
{
|
|
324
|
+
"type": "string"
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"type": "null"
|
|
328
|
+
}
|
|
329
|
+
],
|
|
330
|
+
"default": null,
|
|
331
|
+
"description": "Identifier of the saved agent config the session ran on, if any.",
|
|
332
|
+
"title": "Config Id"
|
|
333
|
+
},
|
|
165
334
|
"config_override": {
|
|
166
335
|
"anyOf": [
|
|
167
336
|
{
|
|
@@ -218,11 +387,6 @@
|
|
|
218
387
|
"title": "Created At",
|
|
219
388
|
"type": "string"
|
|
220
389
|
},
|
|
221
|
-
"customer_id": {
|
|
222
|
-
"description": "Identifier of the account that owns the session.",
|
|
223
|
-
"title": "Customer Id",
|
|
224
|
-
"type": "string"
|
|
225
|
-
},
|
|
226
390
|
"default_resolution": {
|
|
227
391
|
"anyOf": [
|
|
228
392
|
{
|
|
@@ -238,7 +402,7 @@
|
|
|
238
402
|
"exit_status": {
|
|
239
403
|
"anyOf": [
|
|
240
404
|
{
|
|
241
|
-
"$ref": "#/$defs/
|
|
405
|
+
"$ref": "#/$defs/SessionExitStatus"
|
|
242
406
|
},
|
|
243
407
|
{
|
|
244
408
|
"type": "null"
|
|
@@ -310,7 +474,7 @@
|
|
|
310
474
|
"anyOf": [
|
|
311
475
|
{
|
|
312
476
|
"items": {
|
|
313
|
-
"$ref": "#/$defs/
|
|
477
|
+
"$ref": "#/$defs/SessionPr"
|
|
314
478
|
},
|
|
315
479
|
"type": "array"
|
|
316
480
|
},
|
|
@@ -322,30 +486,30 @@
|
|
|
322
486
|
"description": "Pull requests the session created or updated.",
|
|
323
487
|
"title": "Output Prs"
|
|
324
488
|
},
|
|
325
|
-
"
|
|
489
|
+
"parent_kind": {
|
|
326
490
|
"anyOf": [
|
|
327
491
|
{
|
|
328
|
-
"
|
|
492
|
+
"$ref": "#/$defs/ParentKind"
|
|
329
493
|
},
|
|
330
494
|
{
|
|
331
495
|
"type": "null"
|
|
332
496
|
}
|
|
333
497
|
],
|
|
334
498
|
"default": null,
|
|
335
|
-
"description": "
|
|
336
|
-
"title": "Parent Agent Session Id"
|
|
499
|
+
"description": "How this session relates to its parent session, if any."
|
|
337
500
|
},
|
|
338
|
-
"
|
|
501
|
+
"parent_session_id": {
|
|
339
502
|
"anyOf": [
|
|
340
503
|
{
|
|
341
|
-
"
|
|
504
|
+
"type": "string"
|
|
342
505
|
},
|
|
343
506
|
{
|
|
344
507
|
"type": "null"
|
|
345
508
|
}
|
|
346
509
|
],
|
|
347
510
|
"default": null,
|
|
348
|
-
"description": "
|
|
511
|
+
"description": "Identifier of the parent session that spawned this one, if any.",
|
|
512
|
+
"title": "Parent Session Id"
|
|
349
513
|
},
|
|
350
514
|
"prompt": {
|
|
351
515
|
"anyOf": [
|
|
@@ -424,120 +588,15 @@
|
|
|
424
588
|
"default": null,
|
|
425
589
|
"description": "Lifecycle state of the durable conversation, or null for sessions without one."
|
|
426
590
|
},
|
|
427
|
-
"source": {
|
|
428
|
-
"$ref": "#/$defs/
|
|
429
|
-
"description": "Where the session came from (e.g. react, manual, api, cli, mention, cron, laptop)."
|
|
430
|
-
},
|
|
431
|
-
"status": {
|
|
432
|
-
"$ref": "#/$defs/AgentSessionStatus",
|
|
433
|
-
"description": "Execution status of the session."
|
|
434
|
-
},
|
|
435
|
-
"status_reason": {
|
|
436
|
-
"anyOf": [
|
|
437
|
-
{
|
|
438
|
-
"type": "string"
|
|
439
|
-
},
|
|
440
|
-
{
|
|
441
|
-
"type": "null"
|
|
442
|
-
}
|
|
443
|
-
],
|
|
444
|
-
"default": null,
|
|
445
|
-
"description": "Human-readable reason for the current status, when there is one.",
|
|
446
|
-
"title": "Status Reason"
|
|
447
|
-
},
|
|
448
|
-
"stopped_at": {
|
|
449
|
-
"anyOf": [
|
|
450
|
-
{
|
|
451
|
-
"format": "date-time",
|
|
452
|
-
"type": "string"
|
|
453
|
-
},
|
|
454
|
-
{
|
|
455
|
-
"type": "null"
|
|
456
|
-
}
|
|
457
|
-
],
|
|
458
|
-
"default": null,
|
|
459
|
-
"description": "When a stop was requested, if one was.",
|
|
460
|
-
"title": "Stopped At"
|
|
461
|
-
},
|
|
462
|
-
"stopped_by": {
|
|
463
|
-
"anyOf": [
|
|
464
|
-
{
|
|
465
|
-
"type": "integer"
|
|
466
|
-
},
|
|
467
|
-
{
|
|
468
|
-
"type": "null"
|
|
469
|
-
}
|
|
470
|
-
],
|
|
471
|
-
"default": null,
|
|
472
|
-
"description": "GitHub account id of the user who stopped the session, if known.",
|
|
473
|
-
"title": "Stopped By"
|
|
474
|
-
},
|
|
475
|
-
"stopped_by_user": {
|
|
476
|
-
"anyOf": [
|
|
477
|
-
{
|
|
478
|
-
"$ref": "#/$defs/GithubAccountSnippet"
|
|
479
|
-
},
|
|
480
|
-
{
|
|
481
|
-
"type": "null"
|
|
482
|
-
}
|
|
483
|
-
],
|
|
484
|
-
"default": null,
|
|
485
|
-
"description": "The GitHub user who stopped the session, if it was stopped."
|
|
486
|
-
},
|
|
487
|
-
"surface": {
|
|
488
|
-
"anyOf": [
|
|
489
|
-
{
|
|
490
|
-
"$ref": "#/$defs/SessionSurface"
|
|
491
|
-
},
|
|
492
|
-
{
|
|
493
|
-
"type": "null"
|
|
494
|
-
}
|
|
495
|
-
],
|
|
496
|
-
"default": null,
|
|
497
|
-
"description": "The public status projection; null for laptop-synced sessions."
|
|
498
|
-
},
|
|
499
|
-
"tokens_cache_creation": {
|
|
500
|
-
"default": 0,
|
|
501
|
-
"description": "Tokens written to the prompt cache.",
|
|
502
|
-
"title": "Tokens Cache Creation",
|
|
503
|
-
"type": "integer"
|
|
504
|
-
},
|
|
505
|
-
"tokens_cache_read": {
|
|
506
|
-
"default": 0,
|
|
507
|
-
"description": "Tokens read from the prompt cache.",
|
|
508
|
-
"title": "Tokens Cache Read",
|
|
509
|
-
"type": "integer"
|
|
510
|
-
},
|
|
511
|
-
"tokens_input": {
|
|
512
|
-
"default": 0,
|
|
513
|
-
"description": "Input tokens used.",
|
|
514
|
-
"title": "Tokens Input",
|
|
515
|
-
"type": "integer"
|
|
516
|
-
},
|
|
517
|
-
"tokens_model": {
|
|
518
|
-
"description": "The model the token counts are attributed to.",
|
|
519
|
-
"title": "Tokens Model",
|
|
520
|
-
"type": "string"
|
|
521
|
-
},
|
|
522
|
-
"tokens_output": {
|
|
523
|
-
"default": 0,
|
|
524
|
-
"description": "Output tokens used.",
|
|
525
|
-
"title": "Tokens Output",
|
|
526
|
-
"type": "integer"
|
|
527
|
-
},
|
|
528
|
-
"tokens_total": {
|
|
529
|
-
"default": 0,
|
|
530
|
-
"description": "Total tokens used by the session.",
|
|
531
|
-
"title": "Tokens Total",
|
|
532
|
-
"type": "integer"
|
|
533
|
-
},
|
|
534
|
-
"updated_at": {
|
|
535
|
-
"description": "When the session was last updated.",
|
|
536
|
-
"format": "date-time",
|
|
537
|
-
"title": "Updated At",
|
|
538
|
-
"type": "string"
|
|
591
|
+
"source": {
|
|
592
|
+
"$ref": "#/$defs/SessionSource",
|
|
593
|
+
"description": "Where the session came from (e.g. react, manual, api, cli, mention, cron, laptop)."
|
|
539
594
|
},
|
|
540
|
-
"
|
|
595
|
+
"status": {
|
|
596
|
+
"$ref": "#/$defs/SessionStatus",
|
|
597
|
+
"description": "Execution status of the session."
|
|
598
|
+
},
|
|
599
|
+
"status_reason": {
|
|
541
600
|
"anyOf": [
|
|
542
601
|
{
|
|
543
602
|
"type": "string"
|
|
@@ -547,345 +606,203 @@
|
|
|
547
606
|
}
|
|
548
607
|
],
|
|
549
608
|
"default": null,
|
|
550
|
-
"description": "
|
|
551
|
-
"title": "
|
|
609
|
+
"description": "Human-readable reason for the current status, when there is one.",
|
|
610
|
+
"title": "Status Reason"
|
|
552
611
|
},
|
|
553
|
-
"
|
|
612
|
+
"stopped_at": {
|
|
554
613
|
"anyOf": [
|
|
555
614
|
{
|
|
556
|
-
"
|
|
615
|
+
"format": "date-time",
|
|
616
|
+
"type": "string"
|
|
557
617
|
},
|
|
558
618
|
{
|
|
559
619
|
"type": "null"
|
|
560
620
|
}
|
|
561
621
|
],
|
|
562
622
|
"default": null,
|
|
563
|
-
"description": "
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
"agent_config_id",
|
|
568
|
-
"attributed_user",
|
|
569
|
-
"attribution_id",
|
|
570
|
-
"attribution_type",
|
|
571
|
-
"client_version",
|
|
572
|
-
"config_override",
|
|
573
|
-
"context_repository",
|
|
574
|
-
"cost_fee",
|
|
575
|
-
"cost_sandbox_cpu",
|
|
576
|
-
"cost_sandbox_memory",
|
|
577
|
-
"cost_tokens",
|
|
578
|
-
"created_at",
|
|
579
|
-
"customer_id",
|
|
580
|
-
"default_resolution",
|
|
581
|
-
"exit_status",
|
|
582
|
-
"harness",
|
|
583
|
-
"id",
|
|
584
|
-
"last_activity_at",
|
|
585
|
-
"last_message_at",
|
|
586
|
-
"live_summary",
|
|
587
|
-
"metadata",
|
|
588
|
-
"output_prs",
|
|
589
|
-
"parent_agent_session_id",
|
|
590
|
-
"parent_kind",
|
|
591
|
-
"prompt",
|
|
592
|
-
"prompting",
|
|
593
|
-
"replayed_from_session_id",
|
|
594
|
-
"resolved_budget_cents",
|
|
595
|
-
"resolved_budget_source",
|
|
596
|
-
"sandbox_id",
|
|
597
|
-
"session_key",
|
|
598
|
-
"session_state",
|
|
599
|
-
"source",
|
|
600
|
-
"status",
|
|
601
|
-
"status_reason",
|
|
602
|
-
"stopped_at",
|
|
603
|
-
"stopped_by",
|
|
604
|
-
"stopped_by_user",
|
|
605
|
-
"surface",
|
|
606
|
-
"tokens_cache_creation",
|
|
607
|
-
"tokens_cache_read",
|
|
608
|
-
"tokens_input",
|
|
609
|
-
"tokens_model",
|
|
610
|
-
"tokens_output",
|
|
611
|
-
"tokens_total",
|
|
612
|
-
"updated_at",
|
|
613
|
-
"webhook_id",
|
|
614
|
-
"webhook_type"
|
|
615
|
-
],
|
|
616
|
-
"title": "AgentSessionWire",
|
|
617
|
-
"type": "object"
|
|
618
|
-
},
|
|
619
|
-
"AttributionType": {
|
|
620
|
-
"enum": [
|
|
621
|
-
"github_user",
|
|
622
|
-
"linear_user",
|
|
623
|
-
"slack_user",
|
|
624
|
-
"api_key"
|
|
625
|
-
],
|
|
626
|
-
"title": "AttributionType",
|
|
627
|
-
"type": "string"
|
|
628
|
-
},
|
|
629
|
-
"BudgetSource": {
|
|
630
|
-
"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.",
|
|
631
|
-
"enum": [
|
|
632
|
-
"system",
|
|
633
|
-
"account",
|
|
634
|
-
"config",
|
|
635
|
-
"run"
|
|
636
|
-
],
|
|
637
|
-
"title": "BudgetSource",
|
|
638
|
-
"type": "string"
|
|
639
|
-
},
|
|
640
|
-
"DefaultResolution": {
|
|
641
|
-
"description": "How a session that arrived with no explicit config source resolved its\nconfig (documents/eng/DEFAULT_CONFIGS.md \u00a74). Persisted on the session so\naudit and clients can say \"ran under X (repo default)\". A session started\nwith an explicit config/config_id/template_id never enters resolution and\nstores None.",
|
|
642
|
-
"enum": [
|
|
643
|
-
"repo_default",
|
|
644
|
-
"account_default",
|
|
645
|
-
"none"
|
|
646
|
-
],
|
|
647
|
-
"title": "DefaultResolution",
|
|
648
|
-
"type": "string"
|
|
649
|
-
},
|
|
650
|
-
"DeltaFrame": {
|
|
651
|
-
"description": "Fire-and-forget partial assistant output for the current response.\nCarries no sequence number and is never resumable; superseded by the\ncommitted record.",
|
|
652
|
-
"properties": {
|
|
653
|
-
"agent_turn_id": {
|
|
623
|
+
"description": "When a stop was requested, if one was.",
|
|
624
|
+
"title": "Stopped At"
|
|
625
|
+
},
|
|
626
|
+
"stopped_by": {
|
|
654
627
|
"anyOf": [
|
|
655
628
|
{
|
|
656
|
-
"type": "
|
|
629
|
+
"type": "integer"
|
|
657
630
|
},
|
|
658
631
|
{
|
|
659
632
|
"type": "null"
|
|
660
633
|
}
|
|
661
634
|
],
|
|
662
635
|
"default": null,
|
|
663
|
-
"description": "
|
|
664
|
-
"title": "
|
|
665
|
-
},
|
|
666
|
-
"kind": {
|
|
667
|
-
"description": "What the partial text is. Known values: text ('thinking' reserved). Open vocabulary: ignore deltas with unknown kinds.",
|
|
668
|
-
"type": "string"
|
|
636
|
+
"description": "GitHub account id of the user who stopped the session, if known.",
|
|
637
|
+
"title": "Stopped By"
|
|
669
638
|
},
|
|
670
|
-
"
|
|
639
|
+
"stopped_by_user": {
|
|
671
640
|
"anyOf": [
|
|
672
641
|
{
|
|
673
|
-
"
|
|
642
|
+
"$ref": "#/$defs/GithubAccountSnippet"
|
|
674
643
|
},
|
|
675
644
|
{
|
|
676
645
|
"type": "null"
|
|
677
646
|
}
|
|
678
647
|
],
|
|
679
648
|
"default": null,
|
|
680
|
-
"description": "
|
|
681
|
-
"title": "Output Tokens"
|
|
649
|
+
"description": "The GitHub user who stopped the session, if it was stopped."
|
|
682
650
|
},
|
|
683
|
-
"
|
|
651
|
+
"surface": {
|
|
684
652
|
"anyOf": [
|
|
685
653
|
{
|
|
686
|
-
"
|
|
654
|
+
"$ref": "#/$defs/SessionSurface"
|
|
687
655
|
},
|
|
688
656
|
{
|
|
689
657
|
"type": "null"
|
|
690
658
|
}
|
|
691
659
|
],
|
|
692
660
|
"default": null,
|
|
693
|
-
"description": "The
|
|
694
|
-
"title": "Text"
|
|
661
|
+
"description": "The public status projection; null for laptop-synced sessions."
|
|
695
662
|
},
|
|
696
|
-
"
|
|
697
|
-
"
|
|
698
|
-
"
|
|
699
|
-
"title": "
|
|
700
|
-
"type": "
|
|
701
|
-
}
|
|
702
|
-
},
|
|
703
|
-
"required": [
|
|
704
|
-
"agent_turn_id",
|
|
705
|
-
"kind",
|
|
706
|
-
"output_tokens",
|
|
707
|
-
"text",
|
|
708
|
-
"type"
|
|
709
|
-
],
|
|
710
|
-
"title": "DeltaFrame",
|
|
711
|
-
"type": "object"
|
|
712
|
-
},
|
|
713
|
-
"DoneFrame": {
|
|
714
|
-
"description": "Terminal marker: the conversation is over, after the final session\nframe carried the end state. Followed by a normal close (1000).",
|
|
715
|
-
"properties": {
|
|
716
|
-
"type": {
|
|
717
|
-
"const": "done",
|
|
718
|
-
"default": "done",
|
|
719
|
-
"title": "Type",
|
|
720
|
-
"type": "string"
|
|
721
|
-
}
|
|
722
|
-
},
|
|
723
|
-
"required": [
|
|
724
|
-
"type"
|
|
725
|
-
],
|
|
726
|
-
"title": "DoneFrame",
|
|
727
|
-
"type": "object"
|
|
728
|
-
},
|
|
729
|
-
"ErrorFrame": {
|
|
730
|
-
"description": "Terminal error marker, sent before the server closes with code 1011.",
|
|
731
|
-
"properties": {
|
|
732
|
-
"message": {
|
|
733
|
-
"description": "A human-readable error message.",
|
|
734
|
-
"title": "Message",
|
|
735
|
-
"type": "string"
|
|
663
|
+
"tokens_cache_creation": {
|
|
664
|
+
"default": 0,
|
|
665
|
+
"description": "Tokens written to the prompt cache.",
|
|
666
|
+
"title": "Tokens Cache Creation",
|
|
667
|
+
"type": "integer"
|
|
736
668
|
},
|
|
737
|
-
"
|
|
738
|
-
"
|
|
739
|
-
"
|
|
740
|
-
"title": "
|
|
741
|
-
"type": "
|
|
742
|
-
}
|
|
743
|
-
},
|
|
744
|
-
"required": [
|
|
745
|
-
"message",
|
|
746
|
-
"type"
|
|
747
|
-
],
|
|
748
|
-
"title": "ErrorFrame",
|
|
749
|
-
"type": "object"
|
|
750
|
-
},
|
|
751
|
-
"GithubAccountSnippet": {
|
|
752
|
-
"description": "Sometimes the GitHub API returns a user of github (can include bots)\nusing this snippet instead of the full GithubAccount model. One example,\nis when the API returns a pull request.\n\nThis is the least amount of info we need to represent a GitHub account.",
|
|
753
|
-
"properties": {
|
|
754
|
-
"avatar_url": {
|
|
755
|
-
"title": "Avatar Url",
|
|
756
|
-
"type": "string"
|
|
669
|
+
"tokens_cache_read": {
|
|
670
|
+
"default": 0,
|
|
671
|
+
"description": "Tokens read from the prompt cache.",
|
|
672
|
+
"title": "Tokens Cache Read",
|
|
673
|
+
"type": "integer"
|
|
757
674
|
},
|
|
758
|
-
"
|
|
759
|
-
"
|
|
675
|
+
"tokens_input": {
|
|
676
|
+
"default": 0,
|
|
677
|
+
"description": "Input tokens used.",
|
|
678
|
+
"title": "Tokens Input",
|
|
760
679
|
"type": "integer"
|
|
761
680
|
},
|
|
762
|
-
"
|
|
763
|
-
"
|
|
681
|
+
"tokens_model": {
|
|
682
|
+
"description": "The model the token counts are attributed to.",
|
|
683
|
+
"title": "Tokens Model",
|
|
764
684
|
"type": "string"
|
|
765
685
|
},
|
|
766
|
-
"
|
|
767
|
-
"
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
"
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
"enum": [
|
|
781
|
-
"User",
|
|
782
|
-
"Organization",
|
|
783
|
-
"Bot",
|
|
784
|
-
"Mannequin"
|
|
785
|
-
],
|
|
786
|
-
"title": "GithubAccountType",
|
|
787
|
-
"type": "string"
|
|
788
|
-
},
|
|
789
|
-
"Harness": {
|
|
790
|
-
"enum": [
|
|
791
|
-
"claude_code",
|
|
792
|
-
"codex"
|
|
793
|
-
],
|
|
794
|
-
"title": "Harness",
|
|
795
|
-
"type": "string"
|
|
796
|
-
},
|
|
797
|
-
"HeartbeatFrame": {
|
|
798
|
-
"description": "A keepalive sent after a period of idleness; doubles as the dead-socket\nprobe. Clients should treat roughly twice the heartbeat interval of\nsilence as a dead connection.",
|
|
799
|
-
"properties": {
|
|
800
|
-
"ts": {
|
|
801
|
-
"description": "Server time when the heartbeat was sent.",
|
|
686
|
+
"tokens_output": {
|
|
687
|
+
"default": 0,
|
|
688
|
+
"description": "Output tokens used.",
|
|
689
|
+
"title": "Tokens Output",
|
|
690
|
+
"type": "integer"
|
|
691
|
+
},
|
|
692
|
+
"tokens_total": {
|
|
693
|
+
"default": 0,
|
|
694
|
+
"description": "Total tokens used by the session.",
|
|
695
|
+
"title": "Tokens Total",
|
|
696
|
+
"type": "integer"
|
|
697
|
+
},
|
|
698
|
+
"updated_at": {
|
|
699
|
+
"description": "When the session was last updated.",
|
|
802
700
|
"format": "date-time",
|
|
803
|
-
"title": "
|
|
701
|
+
"title": "Updated At",
|
|
804
702
|
"type": "string"
|
|
805
703
|
},
|
|
806
|
-
"
|
|
807
|
-
"
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
"type": "object"
|
|
819
|
-
},
|
|
820
|
-
"ParentKind": {
|
|
821
|
-
"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).\nHANDOFF \u2014 a session started to take over work from another surface (e.g.\nlaptop \u2192 cloud handoff; later phase).\nRESUME \u2014 a conversation re-hosted on a new box after its sandbox was torn\ndown (interactive platform; later phase).",
|
|
822
|
-
"enum": [
|
|
823
|
-
"continuation",
|
|
824
|
-
"handoff",
|
|
825
|
-
"resume"
|
|
826
|
-
],
|
|
827
|
-
"title": "ParentKind",
|
|
828
|
-
"type": "string"
|
|
829
|
-
},
|
|
830
|
-
"PromptBlockedReason": {
|
|
831
|
-
"description": "Why direct prompting is refused. Absent when prompting is allowed.",
|
|
832
|
-
"enum": [
|
|
833
|
-
"mention_surface",
|
|
834
|
-
"ephemeral_trigger",
|
|
835
|
-
"non_interactive",
|
|
836
|
-
"harness_single_turn",
|
|
837
|
-
"closed",
|
|
838
|
-
"laptop"
|
|
839
|
-
],
|
|
840
|
-
"title": "PromptBlockedReason",
|
|
841
|
-
"type": "string"
|
|
842
|
-
},
|
|
843
|
-
"RecordsAppendFrame": {
|
|
844
|
-
"description": "Cursored append-only delivery of session records, ordered by feed_seq,\nfrom all sources. Every record in the frame advances the resume cursor \u2014\nincluding ones a client renders as nothing.",
|
|
845
|
-
"properties": {
|
|
846
|
-
"records": {
|
|
847
|
-
"description": "New session records, ordered by feed_seq.",
|
|
848
|
-
"items": {
|
|
849
|
-
"$ref": "#/$defs/SessionRecordWire"
|
|
850
|
-
},
|
|
851
|
-
"title": "Records",
|
|
852
|
-
"type": "array"
|
|
704
|
+
"webhook_id": {
|
|
705
|
+
"anyOf": [
|
|
706
|
+
{
|
|
707
|
+
"type": "string"
|
|
708
|
+
},
|
|
709
|
+
{
|
|
710
|
+
"type": "null"
|
|
711
|
+
}
|
|
712
|
+
],
|
|
713
|
+
"default": null,
|
|
714
|
+
"description": "Identifier of the webhook event that triggered the session, if any.",
|
|
715
|
+
"title": "Webhook Id"
|
|
853
716
|
},
|
|
854
|
-
"
|
|
855
|
-
"
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
717
|
+
"webhook_type": {
|
|
718
|
+
"anyOf": [
|
|
719
|
+
{
|
|
720
|
+
"$ref": "#/$defs/WebhookType"
|
|
721
|
+
},
|
|
722
|
+
{
|
|
723
|
+
"type": "null"
|
|
724
|
+
}
|
|
725
|
+
],
|
|
726
|
+
"default": null,
|
|
727
|
+
"description": "Type of the webhook event that triggered the session, if any."
|
|
859
728
|
}
|
|
860
729
|
},
|
|
861
730
|
"required": [
|
|
862
|
-
"
|
|
863
|
-
"
|
|
731
|
+
"attributed_user",
|
|
732
|
+
"attribution_id",
|
|
733
|
+
"attribution_type",
|
|
734
|
+
"client_version",
|
|
735
|
+
"config_id",
|
|
736
|
+
"config_override",
|
|
737
|
+
"context_repository",
|
|
738
|
+
"cost_fee",
|
|
739
|
+
"cost_sandbox_cpu",
|
|
740
|
+
"cost_sandbox_memory",
|
|
741
|
+
"cost_tokens",
|
|
742
|
+
"created_at",
|
|
743
|
+
"default_resolution",
|
|
744
|
+
"exit_status",
|
|
745
|
+
"harness",
|
|
746
|
+
"id",
|
|
747
|
+
"last_activity_at",
|
|
748
|
+
"last_message_at",
|
|
749
|
+
"live_summary",
|
|
750
|
+
"metadata",
|
|
751
|
+
"output_prs",
|
|
752
|
+
"parent_kind",
|
|
753
|
+
"parent_session_id",
|
|
754
|
+
"prompt",
|
|
755
|
+
"prompting",
|
|
756
|
+
"replayed_from_session_id",
|
|
757
|
+
"resolved_budget_cents",
|
|
758
|
+
"resolved_budget_source",
|
|
759
|
+
"sandbox_id",
|
|
760
|
+
"session_key",
|
|
761
|
+
"session_state",
|
|
762
|
+
"source",
|
|
763
|
+
"status",
|
|
764
|
+
"status_reason",
|
|
765
|
+
"stopped_at",
|
|
766
|
+
"stopped_by",
|
|
767
|
+
"stopped_by_user",
|
|
768
|
+
"surface",
|
|
769
|
+
"tokens_cache_creation",
|
|
770
|
+
"tokens_cache_read",
|
|
771
|
+
"tokens_input",
|
|
772
|
+
"tokens_model",
|
|
773
|
+
"tokens_output",
|
|
774
|
+
"tokens_total",
|
|
775
|
+
"updated_at",
|
|
776
|
+
"webhook_id",
|
|
777
|
+
"webhook_type"
|
|
864
778
|
],
|
|
865
|
-
"title": "
|
|
779
|
+
"title": "Session",
|
|
866
780
|
"type": "object"
|
|
867
781
|
},
|
|
868
|
-
"
|
|
869
|
-
"description": "
|
|
782
|
+
"SessionExitStatus": {
|
|
783
|
+
"description": "Why a terminal agent session ended \u2014 a finer-grained reason than `status`.\n\n`status` (SessionStatus) is the lifecycle state: COMPLETED / ERROR /\nCANCELLED. `exit_status` explains *why* a run reached that terminal state, so\nthe UI and metrics can tell a budget cutoff apart from a crashed tool call or\na deliberate cancellation. It is None until the run reaches a terminal state.",
|
|
870
784
|
"enum": [
|
|
871
|
-
"
|
|
872
|
-
"
|
|
873
|
-
"
|
|
874
|
-
"
|
|
875
|
-
"
|
|
876
|
-
"
|
|
877
|
-
"
|
|
785
|
+
"completed",
|
|
786
|
+
"budget_hit",
|
|
787
|
+
"payment_required",
|
|
788
|
+
"tool_call_failed",
|
|
789
|
+
"lifecycle_hook_failed",
|
|
790
|
+
"missing_repo_access",
|
|
791
|
+
"missing_token_permissions",
|
|
792
|
+
"missing_sandbox_variables",
|
|
878
793
|
"cancelled",
|
|
879
|
-
"
|
|
794
|
+
"interrupted",
|
|
795
|
+
"error",
|
|
796
|
+
"stopped"
|
|
880
797
|
],
|
|
881
|
-
"title": "
|
|
798
|
+
"title": "SessionExitStatus",
|
|
882
799
|
"type": "string"
|
|
883
800
|
},
|
|
884
801
|
"SessionFrame": {
|
|
885
802
|
"description": "A last-writer-wins snapshot of the session \u2014 the only way status,\nstate, and cost updates arrive. Resent whole on any field change.",
|
|
886
803
|
"properties": {
|
|
887
804
|
"session": {
|
|
888
|
-
"$ref": "#/$defs/
|
|
805
|
+
"$ref": "#/$defs/Session",
|
|
889
806
|
"description": "The session's current state."
|
|
890
807
|
},
|
|
891
808
|
"type": {
|
|
@@ -912,22 +829,9 @@
|
|
|
912
829
|
"title": "SessionLiveness",
|
|
913
830
|
"type": "string"
|
|
914
831
|
},
|
|
915
|
-
"
|
|
916
|
-
"enum": [
|
|
917
|
-
"pending",
|
|
918
|
-
"delivered"
|
|
919
|
-
],
|
|
920
|
-
"title": "SessionMessageStatus",
|
|
921
|
-
"type": "string"
|
|
922
|
-
},
|
|
923
|
-
"SessionMessageWire": {
|
|
832
|
+
"SessionMessage": {
|
|
924
833
|
"description": "One message in a session's inbox: what a queued message renders and\nretires on. The webhook provenance internals stay off the wire.",
|
|
925
834
|
"properties": {
|
|
926
|
-
"agent_session_id": {
|
|
927
|
-
"description": "Identifier of the session the message belongs to.",
|
|
928
|
-
"title": "Agent Session Id",
|
|
929
|
-
"type": "string"
|
|
930
|
-
},
|
|
931
835
|
"author": {
|
|
932
836
|
"anyOf": [
|
|
933
837
|
{
|
|
@@ -1022,13 +926,17 @@
|
|
|
1022
926
|
"default": null,
|
|
1023
927
|
"description": "Kind of principal that sent the message, if attributed."
|
|
1024
928
|
},
|
|
929
|
+
"session_id": {
|
|
930
|
+
"description": "Identifier of the session the message belongs to.",
|
|
931
|
+
"title": "Session Id",
|
|
932
|
+
"type": "string"
|
|
933
|
+
},
|
|
1025
934
|
"status": {
|
|
1026
935
|
"$ref": "#/$defs/SessionMessageStatus",
|
|
1027
936
|
"description": "Delivery status of the message."
|
|
1028
937
|
}
|
|
1029
938
|
},
|
|
1030
939
|
"required": [
|
|
1031
|
-
"agent_session_id",
|
|
1032
940
|
"author",
|
|
1033
941
|
"body",
|
|
1034
942
|
"created_at",
|
|
@@ -1038,9 +946,68 @@
|
|
|
1038
946
|
"id",
|
|
1039
947
|
"sender_attribution_id",
|
|
1040
948
|
"sender_attribution_type",
|
|
949
|
+
"session_id",
|
|
1041
950
|
"status"
|
|
1042
951
|
],
|
|
1043
|
-
"title": "
|
|
952
|
+
"title": "SessionMessage",
|
|
953
|
+
"type": "object"
|
|
954
|
+
},
|
|
955
|
+
"SessionMessageStatus": {
|
|
956
|
+
"enum": [
|
|
957
|
+
"pending",
|
|
958
|
+
"delivered"
|
|
959
|
+
],
|
|
960
|
+
"title": "SessionMessageStatus",
|
|
961
|
+
"type": "string"
|
|
962
|
+
},
|
|
963
|
+
"SessionPr": {
|
|
964
|
+
"description": "A pull request this session created, denormalized at capture time so\nsession surfaces render a labeled link without joining gh_prs. Live PR\nstate (open/merged/closed) is not stored here \u2014 read it from gh_prs where\na view needs it.",
|
|
965
|
+
"properties": {
|
|
966
|
+
"gh_pr_id": {
|
|
967
|
+
"anyOf": [
|
|
968
|
+
{
|
|
969
|
+
"type": "integer"
|
|
970
|
+
},
|
|
971
|
+
{
|
|
972
|
+
"type": "null"
|
|
973
|
+
}
|
|
974
|
+
],
|
|
975
|
+
"default": null,
|
|
976
|
+
"title": "Gh Pr Id"
|
|
977
|
+
},
|
|
978
|
+
"number": {
|
|
979
|
+
"title": "Number",
|
|
980
|
+
"type": "integer"
|
|
981
|
+
},
|
|
982
|
+
"repo_full_name": {
|
|
983
|
+
"title": "Repo Full Name",
|
|
984
|
+
"type": "string"
|
|
985
|
+
},
|
|
986
|
+
"title": {
|
|
987
|
+
"anyOf": [
|
|
988
|
+
{
|
|
989
|
+
"type": "string"
|
|
990
|
+
},
|
|
991
|
+
{
|
|
992
|
+
"type": "null"
|
|
993
|
+
}
|
|
994
|
+
],
|
|
995
|
+
"default": null,
|
|
996
|
+
"title": "Title"
|
|
997
|
+
},
|
|
998
|
+
"url": {
|
|
999
|
+
"title": "Url",
|
|
1000
|
+
"type": "string"
|
|
1001
|
+
}
|
|
1002
|
+
},
|
|
1003
|
+
"required": [
|
|
1004
|
+
"gh_pr_id",
|
|
1005
|
+
"number",
|
|
1006
|
+
"repo_full_name",
|
|
1007
|
+
"title",
|
|
1008
|
+
"url"
|
|
1009
|
+
],
|
|
1010
|
+
"title": "SessionPr",
|
|
1044
1011
|
"type": "object"
|
|
1045
1012
|
},
|
|
1046
1013
|
"SessionPrompting": {
|
|
@@ -1095,14 +1062,9 @@
|
|
|
1095
1062
|
"title": "SessionPrompting",
|
|
1096
1063
|
"type": "object"
|
|
1097
1064
|
},
|
|
1098
|
-
"
|
|
1065
|
+
"SessionRecord": {
|
|
1099
1066
|
"description": "One entry of a session's log: a stable envelope around the harness's\nnative payload. Internal-only columns are deliberately absent so internal\nmodel evolution stays free.",
|
|
1100
1067
|
"properties": {
|
|
1101
|
-
"agent_session_id": {
|
|
1102
|
-
"description": "Identifier of the session the record belongs to.",
|
|
1103
|
-
"title": "Agent Session Id",
|
|
1104
|
-
"type": "string"
|
|
1105
|
-
},
|
|
1106
1068
|
"agent_turn_id": {
|
|
1107
1069
|
"anyOf": [
|
|
1108
1070
|
{
|
|
@@ -1187,6 +1149,11 @@
|
|
|
1187
1149
|
"title": "Record Type",
|
|
1188
1150
|
"type": "string"
|
|
1189
1151
|
},
|
|
1152
|
+
"session_id": {
|
|
1153
|
+
"description": "Identifier of the session the record belongs to.",
|
|
1154
|
+
"title": "Session Id",
|
|
1155
|
+
"type": "string"
|
|
1156
|
+
},
|
|
1190
1157
|
"session_message_id": {
|
|
1191
1158
|
"anyOf": [
|
|
1192
1159
|
{
|
|
@@ -1239,7 +1206,6 @@
|
|
|
1239
1206
|
}
|
|
1240
1207
|
},
|
|
1241
1208
|
"required": [
|
|
1242
|
-
"agent_session_id",
|
|
1243
1209
|
"agent_turn_id",
|
|
1244
1210
|
"cost",
|
|
1245
1211
|
"created_at",
|
|
@@ -1250,17 +1216,31 @@
|
|
|
1250
1216
|
"payload",
|
|
1251
1217
|
"record_format",
|
|
1252
1218
|
"record_type",
|
|
1219
|
+
"session_id",
|
|
1253
1220
|
"session_message_id",
|
|
1254
1221
|
"source",
|
|
1255
1222
|
"stream_seq",
|
|
1256
1223
|
"tokens_info",
|
|
1257
1224
|
"tools"
|
|
1258
1225
|
],
|
|
1259
|
-
"title": "
|
|
1226
|
+
"title": "SessionRecord",
|
|
1260
1227
|
"type": "object"
|
|
1261
1228
|
},
|
|
1229
|
+
"SessionSource": {
|
|
1230
|
+
"enum": [
|
|
1231
|
+
"react",
|
|
1232
|
+
"manual",
|
|
1233
|
+
"api",
|
|
1234
|
+
"cli",
|
|
1235
|
+
"mention",
|
|
1236
|
+
"cron",
|
|
1237
|
+
"laptop"
|
|
1238
|
+
],
|
|
1239
|
+
"title": "SessionSource",
|
|
1240
|
+
"type": "string"
|
|
1241
|
+
},
|
|
1262
1242
|
"SessionState": {
|
|
1263
|
-
"description": "Lifecycle of a keyed (multi-turn) session \u2014 the durable conversation.\nDistinct from
|
|
1243
|
+
"description": "Lifecycle of a keyed (multi-turn) session \u2014 the durable conversation.\nDistinct from SessionStatus, which is per-execution (one turn's run) and\nmoves to agent_turns in a later slice. IDLE: alive, waiting for the next\nmessage. RUNNING: a turn is executing. CLOSED: the conversation is done and\nits sandbox/snapshots are torn down.",
|
|
1264
1244
|
"enum": [
|
|
1265
1245
|
"idle",
|
|
1266
1246
|
"running",
|
|
@@ -1269,6 +1249,20 @@
|
|
|
1269
1249
|
"title": "SessionState",
|
|
1270
1250
|
"type": "string"
|
|
1271
1251
|
},
|
|
1252
|
+
"SessionStatus": {
|
|
1253
|
+
"enum": [
|
|
1254
|
+
"scheduled",
|
|
1255
|
+
"creating_sandbox",
|
|
1256
|
+
"running",
|
|
1257
|
+
"retrying",
|
|
1258
|
+
"completed",
|
|
1259
|
+
"error",
|
|
1260
|
+
"cancelled",
|
|
1261
|
+
"stopped"
|
|
1262
|
+
],
|
|
1263
|
+
"title": "SessionStatus",
|
|
1264
|
+
"type": "string"
|
|
1265
|
+
},
|
|
1272
1266
|
"SessionSurface": {
|
|
1273
1267
|
"description": "The three fields we expose. All `None` for an un-keyed (laptop) session.\n\n`use_enum_values=True` (from CustomBaseModel) stores the members as their\nstring values, so this serializes to `{\"session\": \"alive\", \"run\": \"waiting\",\n\"status\": \"waiting\"}` \u2014 a plain object, not enum names.",
|
|
1274
1268
|
"properties": {
|
|
@@ -1330,7 +1324,7 @@
|
|
|
1330
1324
|
"messages": {
|
|
1331
1325
|
"description": "The session's open (pending) inbox messages.",
|
|
1332
1326
|
"items": {
|
|
1333
|
-
"$ref": "#/$defs/
|
|
1327
|
+
"$ref": "#/$defs/SessionMessage"
|
|
1334
1328
|
},
|
|
1335
1329
|
"title": "Messages",
|
|
1336
1330
|
"type": "array"
|
|
@@ -1342,7 +1336,7 @@
|
|
|
1342
1336
|
"type": "integer"
|
|
1343
1337
|
},
|
|
1344
1338
|
"session": {
|
|
1345
|
-
"$ref": "#/$defs/
|
|
1339
|
+
"$ref": "#/$defs/Session",
|
|
1346
1340
|
"description": "The session's current state."
|
|
1347
1341
|
},
|
|
1348
1342
|
"type": {
|