@ellipsis-dev/sdk 0.8.1 → 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.
@@ -17,9 +17,10 @@ interface paths {
17
17
  * @description Create an agent config via pull request.
18
18
  *
19
19
  * The PR adds the config file to agents/ on the target
20
- * repository.
20
+ * repository; the agent goes live when it merges.
21
21
  *
22
- * Accepts an inline config or a gallery template slug.
22
+ * Accepts an inline config or a gallery template slug. 409 when
23
+ * another live agent already holds the name.
23
24
  */
24
25
  post: operations['create_agent_config'];
25
26
  delete?: never;
@@ -37,7 +38,7 @@ interface paths {
37
38
  };
38
39
  /**
39
40
  * Get Agent Config
40
- * @description Return one saved agent config by id.
41
+ * @description Return one saved agent config, by id or by the agent's name.
41
42
  */
42
43
  get: operations['get_agent_config'];
43
44
  put?: never;
@@ -70,7 +71,8 @@ interface paths {
70
71
  * @description Set a default agent config.
71
72
  *
72
73
  * Addressed by rung: the account rung (repository omitted) or a
73
- * repository rung ("owner/name").
74
+ * repository rung ("owner/name"); the config by id or by the
75
+ * agent's name.
74
76
  *
75
77
  * Refused for sandbox tokens (potentially prompt-injected code
76
78
  * must not repoint the account's ambient default); an unknown or
@@ -830,8 +832,9 @@ interface paths {
830
832
  * List Agent Sessions
831
833
  * @description List cloud agent sessions, newest first.
832
834
  *
833
- * Optionally filtered by config, source, time window, attributed
834
- * author, repository, and whether the session is still going.
835
+ * Optionally filtered by config (id or `ellipsis.name`), source, time
836
+ * window, attributed author, repository, and whether the session is
837
+ * still going.
835
838
  */
836
839
  get: operations['list_agent_sessions'];
837
840
  put?: never;
@@ -839,10 +842,13 @@ interface paths {
839
842
  * Start Agent Session
840
843
  * @description Start a cloud agent session.
841
844
  *
842
- * Provide at most one of config_id, config, or template_id; with
843
- * none, the account's default-config ladder resolves the config.
844
- * 400 when idle_start is combined with prompt or handoff, or when
845
- * a handoff is combined with any config source or override.
845
+ * Provide at most one of config_id (an id or an agent name),
846
+ * config, or
847
+ * template_id; with none, the account's default-config ladder
848
+ * resolves the config. 400 when idle_start is combined with
849
+ * prompt, input, or handoff, or when a handoff is combined with
850
+ * any config source or override. 422 when the agent declares an
851
+ * input schema and the request's input is absent or invalid.
846
852
  */
847
853
  post: operations['start_agent_session'];
848
854
  delete?: never;
@@ -958,7 +964,7 @@ interface paths {
958
964
  patch?: never;
959
965
  trace?: never;
960
966
  };
961
- '/sessions/{session_id}/ide': {
967
+ '/sessions/{session_id}/export': {
962
968
  parameters: {
963
969
  query?: never;
964
970
  header?: never;
@@ -966,18 +972,19 @@ interface paths {
966
972
  cookie?: never;
967
973
  };
968
974
  /**
969
- * Get Agent Session Ide
970
- * @description Return the IDE link for the session's sandbox.
975
+ * Export Agent Session
976
+ * @description Export the complete session history.
971
977
  *
972
- * The membership-gated dashboard page, which performs the sandbox
973
- * proxy handoff itself.
978
+ * The complete, ordered history of the session (agent output, tool calls, thinking,
979
+ * lifecycle events, sandbox output, message events) as an ordered
980
+ * manifest of presigned segment URLs.
974
981
  *
975
- * No credential is minted here the URL grants nothing by
976
- * possession. 409 when the sandbox isn't running (send the
977
- * session a message to wake it first). Backs the `agent session
978
- * ide` CLI verb.
982
+ * Segments are gzip members: download in order and concatenate
983
+ * for one file. The JSON API never carries the bytes (same
984
+ * two-step as files). /records is the paged live view of the
985
+ * same data.
979
986
  */
980
- get: operations['get_agent_session_ide'];
987
+ get: operations['export_agent_session'];
981
988
  put?: never;
982
989
  post?: never;
983
990
  delete?: never;
@@ -986,7 +993,7 @@ interface paths {
986
993
  patch?: never;
987
994
  trace?: never;
988
995
  };
989
- '/sessions/{session_id}/log': {
996
+ '/sessions/{session_id}/ide': {
990
997
  parameters: {
991
998
  query?: never;
992
999
  header?: never;
@@ -994,19 +1001,18 @@ interface paths {
994
1001
  cookie?: never;
995
1002
  };
996
1003
  /**
997
- * Get Agent Session Log
998
- * @description Download the complete session log.
1004
+ * Get Agent Session Ide
1005
+ * @description Return the IDE link for the session's sandbox.
999
1006
  *
1000
- * The complete, ordered history of the session (agent output, tool calls, thinking,
1001
- * lifecycle events, sandbox output, message events) as an ordered
1002
- * manifest of presigned segment URLs.
1007
+ * The membership-gated dashboard page, which performs the sandbox
1008
+ * proxy handoff itself.
1003
1009
  *
1004
- * Segments are gzip members: download in order and concatenate
1005
- * for one file. The JSON API never carries the bytes (same
1006
- * two-step as files). /records is the paged live view of the
1007
- * same data.
1010
+ * No credential is minted here the URL grants nothing by
1011
+ * possession. 409 when the sandbox isn't running (send the
1012
+ * session a message to wake it first). Backs the `agent session
1013
+ * ide` CLI verb.
1008
1014
  */
1009
- get: operations['get_agent_session_log'];
1015
+ get: operations['get_agent_session_ide'];
1010
1016
  put?: never;
1011
1017
  post?: never;
1012
1018
  delete?: never;
@@ -1040,6 +1046,32 @@ interface paths {
1040
1046
  patch?: never;
1041
1047
  trace?: never;
1042
1048
  };
1049
+ '/sessions/{session_id}/output': {
1050
+ parameters: {
1051
+ query?: never;
1052
+ header?: never;
1053
+ path?: never;
1054
+ cookie?: never;
1055
+ };
1056
+ /**
1057
+ * Get Agent Session Output
1058
+ * @description Return the session's typed output.
1059
+ *
1060
+ * The payload the agent submitted through its config-declared
1061
+ * output.json_schema, as the raw JSON body with no envelope. 404
1062
+ * while the session is still running (poll GET /sessions/{id}),
1063
+ * when the agent declares no output block, or when no execution
1064
+ * produced output.
1065
+ */
1066
+ get: operations['get_agent_session_output'];
1067
+ put?: never;
1068
+ post?: never;
1069
+ delete?: never;
1070
+ options?: never;
1071
+ head?: never;
1072
+ patch?: never;
1073
+ trace?: never;
1074
+ };
1043
1075
  '/sessions/{session_id}/ports/{port}': {
1044
1076
  parameters: {
1045
1077
  query?: never;
@@ -1229,6 +1261,7 @@ interface components {
1229
1261
  * }
1230
1262
  */
1231
1263
  environment: components['schemas']['AgentConfigEnvironment'];
1264
+ input?: components['schemas']['AgentConfigInput'] | null;
1232
1265
  /** @default {} */
1233
1266
  llm: components['schemas']['AgentConfigLlm'];
1234
1267
  /**
@@ -1236,6 +1269,7 @@ interface components {
1236
1269
  * @default []
1237
1270
  */
1238
1271
  mcp_servers: (string | components['schemas']['AgentConfigMcpServer'])[];
1272
+ output?: components['schemas']['AgentConfigOutput'] | null;
1239
1273
  /**
1240
1274
  * @default {
1241
1275
  * "ellipsis": true,
@@ -1248,7 +1282,6 @@ interface components {
1248
1282
  * @default []
1249
1283
  */
1250
1284
  skills: components['schemas']['AgentConfigSkill'][];
1251
- structured_output?: components['schemas']['AgentConfigStructuredOutput'] | null;
1252
1285
  /** Trigger */
1253
1286
  trigger?: (components['schemas']['AgentConfigCronTrigger'] | components['schemas']['AgentConfigReactTrigger'] | components['schemas']['AgentConfigMentionTrigger']) | null;
1254
1287
  };
@@ -1545,6 +1578,30 @@ interface components {
1545
1578
  /** Repositories */
1546
1579
  repositories?: string[] | null;
1547
1580
  };
1581
+ /**
1582
+ * AgentConfigInput
1583
+ * @description The typed input contract: what goes INTO a session (the trigger is
1584
+ * when it happens; this is what goes in).
1585
+ *
1586
+ * `json_schema` types the payload a caller-started session takes
1587
+ * (`POST /sessions` `input`, validated at the door; required when
1588
+ * declared). It is illegal on a react-triggered agent — react payloads are
1589
+ * platform-shaped (the published surface field sets), not caller-shaped.
1590
+ *
1591
+ * `message` is the initial-message template: exact `{{path}}` substitution
1592
+ * over the caller payload (or, on a react agent, over the surface's
1593
+ * published fields), no conditionals/loops/filters. Refs are validated at
1594
+ * deploy time against the governing field set (see AgentConfig's
1595
+ * `_check_input`).
1596
+ */
1597
+ AgentConfigInput: {
1598
+ /** Json Schema */
1599
+ json_schema?: {
1600
+ [key: string]: unknown;
1601
+ } | null;
1602
+ /** Message */
1603
+ message?: string | null;
1604
+ };
1548
1605
  /**
1549
1606
  * AgentConfigLlm
1550
1607
  * @description Where this agent's completions go.
@@ -1621,6 +1678,18 @@ interface components {
1621
1678
  */
1622
1679
  labels: string[];
1623
1680
  };
1681
+ /**
1682
+ * AgentConfigOutput
1683
+ * @description The typed output contract: the JSON Schema the agent must exit through
1684
+ * (the StructuredOutput exit tool). Read back via
1685
+ * GET /sessions/{id}/output.
1686
+ */
1687
+ AgentConfigOutput: {
1688
+ /** Json Schema */
1689
+ json_schema: {
1690
+ [key: string]: unknown;
1691
+ };
1692
+ };
1624
1693
  /**
1625
1694
  * AgentConfigPermissions
1626
1695
  * @description What the agent is allowed to touch, per credential the platform mints
@@ -1723,19 +1792,6 @@ interface components {
1723
1792
  /** Repo Id */
1724
1793
  repo_id: number;
1725
1794
  };
1726
- /** AgentConfigStructuredOutput */
1727
- AgentConfigStructuredOutput: {
1728
- /** Json Schema */
1729
- json_schema: {
1730
- [key: string]: unknown;
1731
- };
1732
- /**
1733
- * Type
1734
- * @default json_schema
1735
- * @constant
1736
- */
1737
- type: 'json_schema';
1738
- };
1739
1795
  /** AgentConfigSystemFileRef */
1740
1796
  AgentConfigSystemFileRef: {
1741
1797
  /** File */
@@ -1809,46 +1865,6 @@ interface components {
1809
1865
  */
1810
1866
  defaults: components['schemas']['AgentDefault'][];
1811
1867
  };
1812
- /**
1813
- * AgentSessionExitStatus
1814
- * @description Why a terminal agent session ended — a finer-grained reason than `status`.
1815
- *
1816
- * `status` (AgentSessionStatus) is the lifecycle state: COMPLETED / ERROR /
1817
- * CANCELLED. `exit_status` explains *why* a run reached that terminal state, so
1818
- * the UI and metrics can tell a budget cutoff apart from a crashed tool call or
1819
- * a deliberate cancellation. It is None until the run reaches a terminal state.
1820
- * @enum {string}
1821
- */
1822
- AgentSessionExitStatus: 'completed' | 'budget_hit' | 'payment_required' | 'tool_call_failed' | 'lifecycle_hook_failed' | 'missing_repo_access' | 'missing_token_permissions' | 'missing_sandbox_variables' | 'cancelled' | 'interrupted' | 'error' | 'stopped';
1823
- /**
1824
- * AgentSessionPr
1825
- * @description A pull request this session created, denormalized at capture time so
1826
- * session surfaces render a labeled link without joining gh_prs. Live PR
1827
- * state (open/merged/closed) is not stored here — read it from gh_prs where
1828
- * a view needs it.
1829
- */
1830
- AgentSessionPr: {
1831
- /** Gh Pr Id */
1832
- gh_pr_id?: number | null;
1833
- /** Number */
1834
- number: number;
1835
- /** Repo Full Name */
1836
- repo_full_name: string;
1837
- /** Title */
1838
- title?: string | null;
1839
- /** Url */
1840
- url: string;
1841
- };
1842
- /**
1843
- * AgentSessionSource
1844
- * @enum {string}
1845
- */
1846
- AgentSessionSource: 'react' | 'manual' | 'api' | 'cli' | 'mention' | 'cron' | 'laptop';
1847
- /**
1848
- * AgentSessionStatus
1849
- * @enum {string}
1850
- */
1851
- AgentSessionStatus: 'scheduled' | 'creating_sandbox' | 'running' | 'retrying' | 'completed' | 'error' | 'cancelled' | 'stopped';
1852
1868
  /**
1853
1869
  * AgentTemplate
1854
1870
  * @description A built-in agent template: a ready-to-use agent config plus the
@@ -2338,6 +2354,11 @@ interface components {
2338
2354
  * @description When the config was created.
2339
2355
  */
2340
2356
  created_at: string;
2357
+ /**
2358
+ * Display Name
2359
+ * @description The raw ellipsis.name display text from the config file.
2360
+ */
2361
+ display_name?: string | null;
2341
2362
  /** @description The GitHub account that last edited the config, when the edit came from a known user. */
2342
2363
  edited_by?: components['schemas']['GithubAccountSnippet'] | null;
2343
2364
  /**
@@ -2365,11 +2386,21 @@ interface components {
2365
2386
  * @description The last commit the config was synced from.
2366
2387
  */
2367
2388
  last_synced_commit_sha?: string | null;
2389
+ /**
2390
+ * Name
2391
+ * @description The agent's customer-unique addressable name (a slug of its display name); usable anywhere an agent is referenced, interchangeably with the id.
2392
+ */
2393
+ name?: string | null;
2368
2394
  /**
2369
2395
  * Pending Pull Request Url
2370
2396
  * @description The open pull request that adds this config's file. Non-null means the agent is not live yet: it starts running once the pull request merges and syncs.
2371
2397
  */
2372
2398
  pending_pull_request_url?: string | null;
2399
+ /**
2400
+ * Sha
2401
+ * @description The config's content identity: the version fingerprint frozen onto each session that runs it.
2402
+ */
2403
+ sha: string;
2373
2404
  /**
2374
2405
  * Updated At
2375
2406
  * Format: date-time
@@ -3887,7 +3918,7 @@ interface components {
3887
3918
  PutAgentDefaultRequest: {
3888
3919
  /**
3889
3920
  * Config Id
3890
- * @description The saved config to make the default.
3921
+ * @description The config to make the default: a config id, or the agent's customer-unique `ellipsis.name`.
3891
3922
  */
3892
3923
  config_id: string;
3893
3924
  /**
@@ -4113,7 +4144,7 @@ interface components {
4113
4144
  * Output Prs
4114
4145
  * @description Pull requests the session created, so a result row can show what it shipped without fetching the session.
4115
4146
  */
4116
- output_prs?: components['schemas']['AgentSessionPr'][] | null;
4147
+ output_prs?: components['schemas']['SessionPr'][] | null;
4117
4148
  /**
4118
4149
  * Record Type
4119
4150
  * @description The record's event type.
@@ -4125,9 +4156,9 @@ interface components {
4125
4156
  */
4126
4157
  session_id: string;
4127
4158
  /** @description Where the matching session came from. */
4128
- session_source?: components['schemas']['AgentSessionSource'] | null;
4159
+ session_source?: components['schemas']['SessionSource'] | null;
4129
4160
  /** @description The matching session's status. */
4130
- session_status?: components['schemas']['AgentSessionStatus'] | null;
4161
+ session_status?: components['schemas']['SessionStatus'] | null;
4131
4162
  /**
4132
4163
  * Snippet
4133
4164
  * @description A short window of the indexed text around the first match.
@@ -5244,7 +5275,7 @@ interface components {
5244
5275
  /** @description How the session's config was resolved from the account's defaults, when no explicit config was given. */
5245
5276
  default_resolution?: components['schemas']['DefaultResolution'] | null;
5246
5277
  /** @description How the session ended; null until it is terminal. */
5247
- exit_status?: components['schemas']['AgentSessionExitStatus'] | null;
5278
+ exit_status?: components['schemas']['SessionExitStatus'] | null;
5248
5279
  /** @description The coding-agent harness the session runs on. */
5249
5280
  harness: components['schemas']['Harness'];
5250
5281
  /**
@@ -5279,7 +5310,7 @@ interface components {
5279
5310
  * Output Prs
5280
5311
  * @description Pull requests the session created or updated.
5281
5312
  */
5282
- output_prs?: components['schemas']['AgentSessionPr'][] | null;
5313
+ output_prs?: components['schemas']['SessionPr'][] | null;
5283
5314
  /** @description How this session relates to its parent session, if any. */
5284
5315
  parent_kind?: components['schemas']['ParentKind'] | null;
5285
5316
  /**
@@ -5319,9 +5350,9 @@ interface components {
5319
5350
  /** @description Lifecycle state of the durable conversation, or null for sessions without one. */
5320
5351
  session_state?: components['schemas']['SessionState'] | null;
5321
5352
  /** @description Where the session came from (e.g. react, manual, api, cli, mention, cron, laptop). */
5322
- source: components['schemas']['AgentSessionSource'];
5353
+ source: components['schemas']['SessionSource'];
5323
5354
  /** @description Execution status of the session. */
5324
- status: components['schemas']['AgentSessionStatus'];
5355
+ status: components['schemas']['SessionStatus'];
5325
5356
  /**
5326
5357
  * Status Reason
5327
5358
  * @description Human-readable reason for the current status, when there is one.
@@ -5467,6 +5498,17 @@ interface components {
5467
5498
  */
5468
5499
  executions: components['schemas']['SessionExecution'][];
5469
5500
  };
5501
+ /**
5502
+ * SessionExitStatus
5503
+ * @description Why a terminal agent session ended — a finer-grained reason than `status`.
5504
+ *
5505
+ * `status` (SessionStatus) is the lifecycle state: COMPLETED / ERROR /
5506
+ * CANCELLED. `exit_status` explains *why* a run reached that terminal state, so
5507
+ * the UI and metrics can tell a budget cutoff apart from a crashed tool call or
5508
+ * a deliberate cancellation. It is None until the run reaches a terminal state.
5509
+ * @enum {string}
5510
+ */
5511
+ SessionExitStatus: 'completed' | 'budget_hit' | 'payment_required' | 'tool_call_failed' | 'lifecycle_hook_failed' | 'missing_repo_access' | 'missing_token_permissions' | 'missing_sandbox_variables' | 'cancelled' | 'interrupted' | 'error' | 'stopped';
5470
5512
  /**
5471
5513
  * SessionLiveness
5472
5514
  * @description The durable conversation axis (backs the surfaced `session` field).
@@ -5581,6 +5623,25 @@ interface components {
5581
5623
  * @enum {string}
5582
5624
  */
5583
5625
  SessionMessageStatus: 'pending' | 'delivered';
5626
+ /**
5627
+ * SessionPr
5628
+ * @description A pull request this session created, denormalized at capture time so
5629
+ * session surfaces render a labeled link without joining gh_prs. Live PR
5630
+ * state (open/merged/closed) is not stored here — read it from gh_prs where
5631
+ * a view needs it.
5632
+ */
5633
+ SessionPr: {
5634
+ /** Gh Pr Id */
5635
+ gh_pr_id?: number | null;
5636
+ /** Number */
5637
+ number: number;
5638
+ /** Repo Full Name */
5639
+ repo_full_name: string;
5640
+ /** Title */
5641
+ title?: string | null;
5642
+ /** Url */
5643
+ url: string;
5644
+ };
5584
5645
  /**
5585
5646
  * SessionPrompting
5586
5647
  * @description The prompt-affordance projection. `enabled` answers "would a send work",
@@ -5779,16 +5840,26 @@ interface components {
5779
5840
  * @enum {string}
5780
5841
  */
5781
5842
  SessionSearchScope: 'records' | 'recaps' | 'both';
5843
+ /**
5844
+ * SessionSource
5845
+ * @enum {string}
5846
+ */
5847
+ SessionSource: 'react' | 'manual' | 'api' | 'cli' | 'mention' | 'cron' | 'laptop';
5782
5848
  /**
5783
5849
  * SessionState
5784
5850
  * @description Lifecycle of a keyed (multi-turn) session — the durable conversation.
5785
- * Distinct from AgentSessionStatus, which is per-execution (one turn's run) and
5851
+ * Distinct from SessionStatus, which is per-execution (one turn's run) and
5786
5852
  * moves to agent_turns in a later slice. IDLE: alive, waiting for the next
5787
5853
  * message. RUNNING: a turn is executing. CLOSED: the conversation is done and
5788
5854
  * its sandbox/snapshots are torn down.
5789
5855
  * @enum {string}
5790
5856
  */
5791
5857
  SessionState: 'idle' | 'running' | 'closed';
5858
+ /**
5859
+ * SessionStatus
5860
+ * @enum {string}
5861
+ */
5862
+ SessionStatus: 'scheduled' | 'creating_sandbox' | 'running' | 'retrying' | 'completed' | 'error' | 'cancelled' | 'stopped';
5792
5863
  /**
5793
5864
  * SessionSurface
5794
5865
  * @description The three fields we expose. All `None` for an un-keyed (laptop) session.
@@ -5958,7 +6029,7 @@ interface components {
5958
6029
  config?: components['schemas']['AgentConfig'] | null;
5959
6030
  /**
5960
6031
  * Config Id
5961
- * @description A saved agent config id to run under.
6032
+ * @description A saved agent config to run under: its id, or the agent's customer-unique `ellipsis.name`.
5962
6033
  */
5963
6034
  config_id?: string | null;
5964
6035
  /**
@@ -5987,6 +6058,13 @@ interface components {
5987
6058
  * @default false
5988
6059
  */
5989
6060
  idle_start: boolean;
6061
+ /**
6062
+ * Input
6063
+ * @description The typed payload for an agent that declares input.json_schema: validated against the effective config's schema (422 on mismatch), rendered into the session's initial message (the agent's input.message template, or a JSON block). Required when the agent declares a schema; rejected when it does not.
6064
+ */
6065
+ input?: {
6066
+ [key: string]: unknown;
6067
+ } | null;
5990
6068
  /**
5991
6069
  * Metadata
5992
6070
  * @description Arbitrary string key/value metadata stored on the session.
@@ -6422,7 +6500,7 @@ interface operations {
6422
6500
  'application/json': components['schemas']['ErrorResponse'];
6423
6501
  };
6424
6502
  };
6425
- /** @description Another agent is already synced from that path, or a file already exists there. */
6503
+ /** @description An agent with that name already exists, another agent is already synced from that path, or a file already exists there. */
6426
6504
  409: {
6427
6505
  headers: {
6428
6506
  [name: string]: unknown;
@@ -6431,13 +6509,13 @@ interface operations {
6431
6509
  'application/json': components['schemas']['ErrorResponse'];
6432
6510
  };
6433
6511
  };
6434
- /** @description Validation Error */
6512
+ /** @description The agent's name contains no usable characters. */
6435
6513
  422: {
6436
6514
  headers: {
6437
6515
  [name: string]: unknown;
6438
6516
  };
6439
6517
  content: {
6440
- 'application/json': components['schemas']['HTTPValidationError'];
6518
+ 'application/json': components['schemas']['ErrorResponse'];
6441
6519
  };
6442
6520
  };
6443
6521
  };
@@ -8726,8 +8804,9 @@ interface operations {
8726
8804
  list_agent_sessions: {
8727
8805
  parameters: {
8728
8806
  query?: {
8807
+ /** @description A saved config id, or the agent's `ellipsis.name`. */
8729
8808
  config_id?: string | null;
8730
- source?: components['schemas']['AgentSessionSource'][] | null;
8809
+ source?: components['schemas']['SessionSource'][] | null;
8731
8810
  days?: number | null;
8732
8811
  start?: string | null;
8733
8812
  end?: string | null;
@@ -8810,7 +8889,7 @@ interface operations {
8810
8889
  'application/json': components['schemas']['StartAgentSessionResponse'];
8811
8890
  };
8812
8891
  };
8813
- /** @description The request combines incompatible fields (multiple config sources, idle_start with prompt/handoff, a handoff with a config source, or both override forms), or the config override / handoff repo/sha is invalid. */
8892
+ /** @description The request combines incompatible fields (multiple config sources, idle_start with prompt/input/handoff, a handoff with a config source, or both override forms), or the config override / handoff repo/sha is invalid. */
8814
8893
  400: {
8815
8894
  headers: {
8816
8895
  [name: string]: unknown;
@@ -8837,7 +8916,7 @@ interface operations {
8837
8916
  'application/json': components['schemas']['ErrorResponse'];
8838
8917
  };
8839
8918
  };
8840
- /** @description The named config, template, or handoff parent session does not exist in your account. */
8919
+ /** @description The named agent, template, or handoff parent session does not exist in your account. */
8841
8920
  404: {
8842
8921
  headers: {
8843
8922
  [name: string]: unknown;
@@ -8855,13 +8934,13 @@ interface operations {
8855
8934
  'application/json': components['schemas']['ErrorResponse'];
8856
8935
  };
8857
8936
  };
8858
- /** @description Validation Error */
8937
+ /** @description The agent requires 'input' matching its input schema (missing or failed validation), or declares no input schema and 'input' was sent. */
8859
8938
  422: {
8860
8939
  headers: {
8861
8940
  [name: string]: unknown;
8862
8941
  };
8863
8942
  content: {
8864
- 'application/json': components['schemas']['HTTPValidationError'];
8943
+ 'application/json': components['schemas']['ErrorResponse'];
8865
8944
  };
8866
8945
  };
8867
8946
  };
@@ -8871,7 +8950,7 @@ interface operations {
8871
8950
  query: {
8872
8951
  q: string;
8873
8952
  scope?: components['schemas']['SessionSearchScope'];
8874
- source?: components['schemas']['AgentSessionSource'][] | null;
8953
+ source?: components['schemas']['SessionSource'][] | null;
8875
8954
  /** @description Attributed GitHub user account ids. */
8876
8955
  author_id?: number[] | null;
8877
8956
  /** @description Saved agent config ids (ORed with author_id). */
@@ -8879,7 +8958,7 @@ interface operations {
8879
8958
  session_ids?: string[] | null;
8880
8959
  /** @description "owner/name" (exact) or a bare repo name. */
8881
8960
  repo?: string | null;
8882
- status?: components['schemas']['AgentSessionStatus'][] | null;
8961
+ status?: components['schemas']['SessionStatus'][] | null;
8883
8962
  start?: string | null;
8884
8963
  end?: string | null;
8885
8964
  limit?: number;
@@ -9130,7 +9209,7 @@ interface operations {
9130
9209
  };
9131
9210
  };
9132
9211
  };
9133
- get_agent_session_ide: {
9212
+ export_agent_session: {
9134
9213
  parameters: {
9135
9214
  query?: never;
9136
9215
  header?: {
@@ -9149,7 +9228,7 @@ interface operations {
9149
9228
  [name: string]: unknown;
9150
9229
  };
9151
9230
  content: {
9152
- 'application/json': components['schemas']['GetSessionIdeResponse'];
9231
+ 'application/json': components['schemas']['GetSessionLogResponse'];
9153
9232
  };
9154
9233
  };
9155
9234
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -9179,15 +9258,6 @@ interface operations {
9179
9258
  'application/json': components['schemas']['ErrorResponse'];
9180
9259
  };
9181
9260
  };
9182
- /** @description The session's sandbox is not running; send it a message to wake it first. */
9183
- 409: {
9184
- headers: {
9185
- [name: string]: unknown;
9186
- };
9187
- content: {
9188
- 'application/json': components['schemas']['ErrorResponse'];
9189
- };
9190
- };
9191
9261
  /** @description Validation Error */
9192
9262
  422: {
9193
9263
  headers: {
@@ -9199,7 +9269,7 @@ interface operations {
9199
9269
  };
9200
9270
  };
9201
9271
  };
9202
- get_agent_session_log: {
9272
+ get_agent_session_ide: {
9203
9273
  parameters: {
9204
9274
  query?: never;
9205
9275
  header?: {
@@ -9218,7 +9288,7 @@ interface operations {
9218
9288
  [name: string]: unknown;
9219
9289
  };
9220
9290
  content: {
9221
- 'application/json': components['schemas']['GetSessionLogResponse'];
9291
+ 'application/json': components['schemas']['GetSessionIdeResponse'];
9222
9292
  };
9223
9293
  };
9224
9294
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -9248,6 +9318,15 @@ interface operations {
9248
9318
  'application/json': components['schemas']['ErrorResponse'];
9249
9319
  };
9250
9320
  };
9321
+ /** @description The session's sandbox is not running; send it a message to wake it first. */
9322
+ 409: {
9323
+ headers: {
9324
+ [name: string]: unknown;
9325
+ };
9326
+ content: {
9327
+ 'application/json': components['schemas']['ErrorResponse'];
9328
+ };
9329
+ };
9251
9330
  /** @description Validation Error */
9252
9331
  422: {
9253
9332
  headers: {
@@ -9341,6 +9420,66 @@ interface operations {
9341
9420
  };
9342
9421
  };
9343
9422
  };
9423
+ get_agent_session_output: {
9424
+ parameters: {
9425
+ query?: never;
9426
+ header?: {
9427
+ 'user-agent'?: string | null;
9428
+ };
9429
+ path: {
9430
+ session_id: string;
9431
+ };
9432
+ cookie?: never;
9433
+ };
9434
+ requestBody?: never;
9435
+ responses: {
9436
+ /** @description The session's typed output, exactly as the agent submitted it — the shape is the agent's own output.json_schema, with no envelope. */
9437
+ 200: {
9438
+ headers: {
9439
+ [name: string]: unknown;
9440
+ };
9441
+ content: {
9442
+ 'application/json': Record<string, never>;
9443
+ };
9444
+ };
9445
+ /** @description The bearer token is missing, invalid, or revoked. */
9446
+ 401: {
9447
+ headers: {
9448
+ [name: string]: unknown;
9449
+ };
9450
+ content: {
9451
+ 'application/json': components['schemas']['ErrorResponse'];
9452
+ };
9453
+ };
9454
+ /** @description The credential may not perform this action, or the account is blocked. */
9455
+ 403: {
9456
+ headers: {
9457
+ [name: string]: unknown;
9458
+ };
9459
+ content: {
9460
+ 'application/json': components['schemas']['ErrorResponse'];
9461
+ };
9462
+ };
9463
+ /** @description No such session in your account, the agent declares no output schema, the session has not completed, or it produced no output. */
9464
+ 404: {
9465
+ headers: {
9466
+ [name: string]: unknown;
9467
+ };
9468
+ content: {
9469
+ 'application/json': components['schemas']['ErrorResponse'];
9470
+ };
9471
+ };
9472
+ /** @description Validation Error */
9473
+ 422: {
9474
+ headers: {
9475
+ [name: string]: unknown;
9476
+ };
9477
+ content: {
9478
+ 'application/json': components['schemas']['HTTPValidationError'];
9479
+ };
9480
+ };
9481
+ };
9482
+ };
9344
9483
  get_agent_session_port: {
9345
9484
  parameters: {
9346
9485
  query?: never;
@@ -9770,12 +9909,12 @@ type DefaultResolution = 'repo_default' | 'account_default' | 'none';
9770
9909
  /**
9771
9910
  * Why a terminal agent session ended — a finer-grained reason than `status`.
9772
9911
  *
9773
- * `status` (AgentSessionStatus) is the lifecycle state: COMPLETED / ERROR /
9912
+ * `status` (SessionStatus) is the lifecycle state: COMPLETED / ERROR /
9774
9913
  * CANCELLED. `exit_status` explains *why* a run reached that terminal state, so
9775
9914
  * the UI and metrics can tell a budget cutoff apart from a crashed tool call or
9776
9915
  * a deliberate cancellation. It is None until the run reaches a terminal state.
9777
9916
  */
9778
- type AgentSessionExitStatus = 'completed' | 'budget_hit' | 'payment_required' | 'tool_call_failed' | 'lifecycle_hook_failed' | 'missing_repo_access' | 'missing_token_permissions' | 'missing_sandbox_variables' | 'cancelled' | 'interrupted' | 'error' | 'stopped';
9917
+ type SessionExitStatus = 'completed' | 'budget_hit' | 'payment_required' | 'tool_call_failed' | 'lifecycle_hook_failed' | 'missing_repo_access' | 'missing_token_permissions' | 'missing_sandbox_variables' | 'cancelled' | 'interrupted' | 'error' | 'stopped';
9779
9918
  /**
9780
9919
  * The coding-agent harness the session runs on.
9781
9920
  */
@@ -9803,7 +9942,7 @@ type PromptBlockedReason = 'mention_surface' | 'ephemeral_trigger' | 'non_intera
9803
9942
  type BudgetSource = 'system' | 'account' | 'config' | 'run';
9804
9943
  /**
9805
9944
  * Lifecycle of a keyed (multi-turn) session — the durable conversation.
9806
- * Distinct from AgentSessionStatus, which is per-execution (one turn's run) and
9945
+ * Distinct from SessionStatus, which is per-execution (one turn's run) and
9807
9946
  * moves to agent_turns in a later slice. IDLE: alive, waiting for the next
9808
9947
  * message. RUNNING: a turn is executing. CLOSED: the conversation is done and
9809
9948
  * its sandbox/snapshots are torn down.
@@ -9812,11 +9951,11 @@ type SessionState = 'idle' | 'running' | 'closed';
9812
9951
  /**
9813
9952
  * Where the session came from (e.g. react, manual, api, cli, mention, cron, laptop).
9814
9953
  */
9815
- type AgentSessionSource = 'react' | 'manual' | 'api' | 'cli' | 'mention' | 'cron' | 'laptop';
9954
+ type SessionSource = 'react' | 'manual' | 'api' | 'cli' | 'mention' | 'cron' | 'laptop';
9816
9955
  /**
9817
9956
  * Execution status of the session.
9818
9957
  */
9819
- type AgentSessionStatus = 'scheduled' | 'creating_sandbox' | 'running' | 'retrying' | 'completed' | 'error' | 'cancelled' | 'stopped';
9958
+ type SessionStatus = 'scheduled' | 'creating_sandbox' | 'running' | 'retrying' | 'completed' | 'error' | 'cancelled' | 'stopped';
9820
9959
  /**
9821
9960
  * What the current (or most recent) execution is doing (backs `run`).
9822
9961
  */
@@ -9954,7 +10093,7 @@ interface Session {
9954
10093
  /**
9955
10094
  * How the session ended; null until it is terminal.
9956
10095
  */
9957
- exit_status: AgentSessionExitStatus | null;
10096
+ exit_status: SessionExitStatus | null;
9958
10097
  harness: Harness;
9959
10098
  /**
9960
10099
  * Unique identifier of the session.
@@ -9981,7 +10120,7 @@ interface Session {
9981
10120
  /**
9982
10121
  * Pull requests the session created or updated.
9983
10122
  */
9984
- output_prs: AgentSessionPr[] | null;
10123
+ output_prs: SessionPr[] | null;
9985
10124
  /**
9986
10125
  * How this session relates to its parent session, if any.
9987
10126
  */
@@ -10016,8 +10155,8 @@ interface Session {
10016
10155
  * Lifecycle state of the durable conversation, or null for sessions without one.
10017
10156
  */
10018
10157
  session_state: SessionState | null;
10019
- source: AgentSessionSource;
10020
- status: AgentSessionStatus;
10158
+ source: SessionSource;
10159
+ status: SessionStatus;
10021
10160
  /**
10022
10161
  * Human-readable reason for the current status, when there is one.
10023
10162
  */
@@ -10094,7 +10233,7 @@ interface GithubAccountSnippet {
10094
10233
  * state (open/merged/closed) is not stored here — read it from gh_prs where
10095
10234
  * a view needs it.
10096
10235
  */
10097
- interface AgentSessionPr {
10236
+ interface SessionPr {
10098
10237
  gh_pr_id: number | null;
10099
10238
  number: number;
10100
10239
  repo_full_name: string;
@@ -10295,7 +10434,7 @@ interface Session1 {
10295
10434
  /**
10296
10435
  * How the session ended; null until it is terminal.
10297
10436
  */
10298
- exit_status: AgentSessionExitStatus | null;
10437
+ exit_status: SessionExitStatus | null;
10299
10438
  harness: Harness;
10300
10439
  /**
10301
10440
  * Unique identifier of the session.
@@ -10322,7 +10461,7 @@ interface Session1 {
10322
10461
  /**
10323
10462
  * Pull requests the session created or updated.
10324
10463
  */
10325
- output_prs: AgentSessionPr[] | null;
10464
+ output_prs: SessionPr[] | null;
10326
10465
  /**
10327
10466
  * How this session relates to its parent session, if any.
10328
10467
  */
@@ -10357,8 +10496,8 @@ interface Session1 {
10357
10496
  * Lifecycle state of the durable conversation, or null for sessions without one.
10358
10497
  */
10359
10498
  session_state: SessionState | null;
10360
- source: AgentSessionSource;
10361
- status: AgentSessionStatus;
10499
+ source: SessionSource;
10500
+ status: SessionStatus;
10362
10501
  /**
10363
10502
  * Human-readable reason for the current status, when there is one.
10364
10503
  */
@@ -10495,4 +10634,4 @@ type ReviewRequester = components['schemas']['ReviewRequester'];
10495
10634
  type ReviewFinding = components['schemas']['ReviewFinding'];
10496
10635
  type Finding = ReviewFinding;
10497
10636
 
10498
- export type { AgentSessionExitStatus as A, BudgetSource as B, CreateReviewRequest as C, DefaultResolution as D, ErrorFrame as E, Finding as F, GithubAccountSnippet as G, Harness as H, SessionMessage as I, SessionMessageResponse as J, SessionMessageStatus as K, SessionPrompting as L, SessionRecord as M, SessionRecordsListResponse as N, SessionResponse as O, ParentKind as P, SessionState as Q, RecordsAppendFrame as R, SendSessionMessageRequest as S, SessionStreamFrame as T, SessionSurface as U, SessionsListResponse as V, SnapshotFrame as W, StreamFrame as X, TokensInfo as Y, paths as Z, AgentSessionPr as a, AgentSessionSource as b, components as c, AgentSessionStatus as d, AttributionType as e, DeltaFrame as f, DoneFrame as g, GithubAccountType as h, HeartbeatFrame as i, PromptBlockedReason as j, ResolvedReviewScope as k, Review as l, ReviewConfiguration as m, ReviewCounters as n, ReviewFinding as o, ReviewRequester as p, ReviewScope as q, ReviewScopeKind as r, ReviewStage as s, ReviewedCommit as t, ReviewsListResponse as u, Session as v, SessionExecution as w, SessionExecutionsListResponse as x, SessionFrame as y, SessionLiveness as z };
10637
+ export type { AttributionType as A, BudgetSource as B, CreateReviewRequest as C, DefaultResolution as D, ErrorFrame as E, Finding as F, GithubAccountSnippet as G, Harness as H, SessionPr as I, SessionPrompting as J, SessionRecord as K, SessionRecordsListResponse as L, SessionResponse as M, SessionSource as N, SessionState as O, ParentKind as P, SessionStatus as Q, RecordsAppendFrame as R, SendSessionMessageRequest as S, SessionStreamFrame as T, SessionSurface as U, SessionsListResponse as V, SnapshotFrame as W, StreamFrame as X, TokensInfo as Y, paths as Z, DeltaFrame as a, DoneFrame as b, components as c, GithubAccountType as d, HeartbeatFrame as e, PromptBlockedReason as f, ResolvedReviewScope as g, Review as h, ReviewConfiguration as i, ReviewCounters as j, ReviewFinding as k, ReviewRequester as l, ReviewScope as m, ReviewScopeKind as n, ReviewStage as o, ReviewedCommit as p, ReviewsListResponse as q, Session as r, SessionExecution as s, SessionExecutionsListResponse as t, SessionExitStatus as u, SessionFrame as v, SessionLiveness as w, SessionMessage as x, SessionMessageResponse as y, SessionMessageStatus as z };