@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.
@@ -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
@@ -145,7 +147,7 @@ interface paths {
145
147
  };
146
148
  /**
147
149
  * List Alerts
148
- * @description List budget alerts for the organization.
150
+ * @description List budget alerts for the organization, newest first.
149
151
  *
150
152
  * Optionally filtered by status and source.
151
153
  *
@@ -359,7 +361,7 @@ interface paths {
359
361
  * @description List uploaded files, newest first.
360
362
  *
361
363
  * Metadata only — download URLs are minted per explicit GET, not
362
- * per row. agent_session_id scopes the list to one run's uploads.
364
+ * per row. session_id scopes the list to one run's uploads.
363
365
  */
364
366
  get: operations['list_files'];
365
367
  put?: never;
@@ -772,23 +774,23 @@ interface paths {
772
774
  cookie?: never;
773
775
  };
774
776
  /**
775
- * List Sandbox Variables
776
- * @description List sandbox variables.
777
+ * List Secrets
778
+ * @description List secrets.
777
779
  *
778
780
  * Values are write-only: the response carries only names and
779
781
  * timestamps, never the stored value.
780
782
  */
781
- get: operations['list_sandbox_variables'];
783
+ get: operations['list_secrets'];
782
784
  /**
783
- * Put Sandbox Variables
784
- * @description Upsert sandbox variables.
785
+ * Put Secrets
786
+ * @description Upsert secrets.
785
787
  *
786
- * Values are write-only: the response carries only names and
787
- * timestamps. Refused for sandbox tokens (held by
788
+ * Returns only the secrets this call wrote, names and timestamps
789
+ * only — values are write-only. Refused for sandbox tokens (held by
788
790
  * potentially-untrusted in-sandbox code); mutations require an
789
791
  * API key or user token.
790
792
  */
791
- put: operations['put_sandbox_variables'];
793
+ put: operations['put_secrets'];
792
794
  post?: never;
793
795
  delete?: never;
794
796
  options?: never;
@@ -807,13 +809,13 @@ interface paths {
807
809
  put?: never;
808
810
  post?: never;
809
811
  /**
810
- * Delete Sandbox Variable
811
- * @description Delete a sandbox variable by name.
812
+ * Delete Secret
813
+ * @description Delete a secret by name.
812
814
  *
813
815
  * Refused for sandbox tokens; mutations require an API key or
814
816
  * user token.
815
817
  */
816
- delete: operations['delete_sandbox_variable'];
818
+ delete: operations['delete_secret'];
817
819
  options?: never;
818
820
  head?: never;
819
821
  patch?: never;
@@ -828,10 +830,11 @@ interface paths {
828
830
  };
829
831
  /**
830
832
  * List Agent Sessions
831
- * @description List cloud agent sessions.
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;
@@ -1074,15 +1106,14 @@ interface paths {
1074
1106
  };
1075
1107
  /**
1076
1108
  * Get Agent Session Records
1077
- * @description Return the session's stored transcript records.
1109
+ * @description Return the session's stored transcript records, oldest first.
1078
1110
  *
1079
- * Pagination is opt-in (after_seq/limit the same feed_seq
1080
- * cursor as the stream); a bare call returns the full retained
1081
- * transcript. Available to sandbox tokens too: an agent answering
1082
- * "did X look into Y?" needs to read the session it found via
1083
- * /sessions/search, and any org member sees the same transcript
1084
- * in the dashboard (laptop transcripts are redacted client-side
1085
- * before they are ever uploaded).
1111
+ * Pagination is opt-in (cursor/limit); a bare call returns the
1112
+ * full retained transcript. Available to sandbox tokens too: an
1113
+ * agent answering "did X look into Y?" needs to read the session
1114
+ * it found via /sessions/search, and any org member sees the same
1115
+ * transcript in the dashboard (laptop transcripts are redacted
1116
+ * client-side before they are ever uploaded).
1086
1117
  */
1087
1118
  get: operations['get_agent_session_records'];
1088
1119
  put?: never;
@@ -1166,32 +1197,6 @@ interface paths {
1166
1197
  patch?: never;
1167
1198
  trace?: never;
1168
1199
  };
1169
- '/sessions/{session_id}/turns': {
1170
- parameters: {
1171
- query?: never;
1172
- header?: never;
1173
- path?: never;
1174
- cookie?: never;
1175
- };
1176
- /**
1177
- * Get Agent Session Turns
1178
- * @description Return the session's turns and inbox messages.
1179
- *
1180
- * The conversation structure, for durable (keyed) sessions; empty lists for
1181
- * single-shot sessions.
1182
- *
1183
- * The session's per-conversation state (idle | running | closed)
1184
- * rides on the session object itself (session_state).
1185
- */
1186
- get: operations['get_agent_session_turns'];
1187
- put?: never;
1188
- post?: never;
1189
- delete?: never;
1190
- options?: never;
1191
- head?: never;
1192
- patch?: never;
1193
- trace?: never;
1194
- };
1195
1200
  '/usage': {
1196
1201
  parameters: {
1197
1202
  query?: never;
@@ -1256,6 +1261,7 @@ interface components {
1256
1261
  * }
1257
1262
  */
1258
1263
  environment: components['schemas']['AgentConfigEnvironment'];
1264
+ input?: components['schemas']['AgentConfigInput'] | null;
1259
1265
  /** @default {} */
1260
1266
  llm: components['schemas']['AgentConfigLlm'];
1261
1267
  /**
@@ -1263,6 +1269,7 @@ interface components {
1263
1269
  * @default []
1264
1270
  */
1265
1271
  mcp_servers: (string | components['schemas']['AgentConfigMcpServer'])[];
1272
+ output?: components['schemas']['AgentConfigOutput'] | null;
1266
1273
  /**
1267
1274
  * @default {
1268
1275
  * "ellipsis": true,
@@ -1275,7 +1282,6 @@ interface components {
1275
1282
  * @default []
1276
1283
  */
1277
1284
  skills: components['schemas']['AgentConfigSkill'][];
1278
- structured_output?: components['schemas']['AgentConfigStructuredOutput'] | null;
1279
1285
  /** Trigger */
1280
1286
  trigger?: (components['schemas']['AgentConfigCronTrigger'] | components['schemas']['AgentConfigReactTrigger'] | components['schemas']['AgentConfigMentionTrigger']) | null;
1281
1287
  };
@@ -1572,6 +1578,30 @@ interface components {
1572
1578
  /** Repositories */
1573
1579
  repositories?: string[] | null;
1574
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
+ };
1575
1605
  /**
1576
1606
  * AgentConfigLlm
1577
1607
  * @description Where this agent's completions go.
@@ -1648,6 +1678,18 @@ interface components {
1648
1678
  */
1649
1679
  labels: string[];
1650
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
+ };
1651
1693
  /**
1652
1694
  * AgentConfigPermissions
1653
1695
  * @description What the agent is allowed to touch, per credential the platform mints
@@ -1697,6 +1739,14 @@ interface components {
1697
1739
  /** Ref */
1698
1740
  ref?: string | null;
1699
1741
  };
1742
+ /**
1743
+ * AgentConfigResponse
1744
+ * @description One saved agent config.
1745
+ */
1746
+ AgentConfigResponse: {
1747
+ /** @description The saved agent config. */
1748
+ config: components['schemas']['Config'];
1749
+ };
1700
1750
  /**
1701
1751
  * AgentConfigSettingsRef
1702
1752
  * @description A config-declared Claude Code settings.json, resolved at run start and
@@ -1742,30 +1792,28 @@ interface components {
1742
1792
  /** Repo Id */
1743
1793
  repo_id: number;
1744
1794
  };
1745
- /** AgentConfigStructuredOutput */
1746
- AgentConfigStructuredOutput: {
1747
- /** Json Schema */
1748
- json_schema: {
1749
- [key: string]: unknown;
1750
- };
1751
- /**
1752
- * Type
1753
- * @default json_schema
1754
- * @constant
1755
- */
1756
- type: 'json_schema';
1757
- };
1758
1795
  /** AgentConfigSystemFileRef */
1759
1796
  AgentConfigSystemFileRef: {
1760
1797
  /** File */
1761
1798
  file: string;
1762
1799
  };
1763
1800
  /**
1764
- * AgentDefaultV1
1801
+ * AgentConfigsListResponse
1802
+ * @description The caller's saved agent configs.
1803
+ */
1804
+ AgentConfigsListResponse: {
1805
+ /**
1806
+ * Configs
1807
+ * @description Saved agent configs.
1808
+ */
1809
+ configs: components['schemas']['Config'][];
1810
+ };
1811
+ /**
1812
+ * AgentDefault
1765
1813
  * @description A default-agent setting: which agent config serves sessions started
1766
1814
  * without an explicit config, for the whole account or for one repository.
1767
1815
  */
1768
- AgentDefaultV1: {
1816
+ AgentDefault: {
1769
1817
  /**
1770
1818
  * Broken
1771
1819
  * @description Why this default cannot serve sessions, or null when it is healthy.
@@ -1799,452 +1847,122 @@ interface components {
1799
1847
  updated_at: string;
1800
1848
  };
1801
1849
  /**
1802
- * AgentSessionExitStatus
1803
- * @description Why a terminal agent session ended — a finer-grained reason than `status`.
1804
- *
1805
- * `status` (AgentSessionStatus) is the lifecycle state: COMPLETED / ERROR /
1806
- * CANCELLED. `exit_status` explains *why* a run reached that terminal state, so
1807
- * the UI and metrics can tell a budget cutoff apart from a crashed tool call or
1808
- * a deliberate cancellation. It is None until the run reaches a terminal state.
1809
- * @enum {string}
1810
- */
1811
- 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';
1812
- /**
1813
- * AgentSessionPr
1814
- * @description A pull request this session created, denormalized at capture time so
1815
- * session surfaces render a labeled link without joining gh_prs. Live PR
1816
- * state (open/merged/closed) is not stored here — read it from gh_prs where
1817
- * a view needs it.
1850
+ * AgentDefaultResponse
1851
+ * @description One default-agent setting.
1818
1852
  */
1819
- AgentSessionPr: {
1820
- /** Gh Pr Id */
1821
- gh_pr_id?: number | null;
1822
- /** Number */
1823
- number: number;
1824
- /** Repo Full Name */
1825
- repo_full_name: string;
1826
- /** Title */
1827
- title?: string | null;
1828
- /** Url */
1829
- url: string;
1853
+ AgentDefaultResponse: {
1854
+ /** @description The default-agent setting. */
1855
+ default: components['schemas']['AgentDefault'];
1830
1856
  };
1831
1857
  /**
1832
- * AgentSessionSource
1833
- * @enum {string}
1834
- */
1835
- AgentSessionSource: 'react' | 'manual' | 'api' | 'cli' | 'mention' | 'cron' | 'laptop';
1836
- /**
1837
- * AgentSessionStatus
1838
- * @enum {string}
1858
+ * AgentDefaultsListResponse
1859
+ * @description The account's default-agent settings.
1839
1860
  */
1840
- AgentSessionStatus: 'scheduled' | 'creating_sandbox' | 'running' | 'retrying' | 'completed' | 'error' | 'cancelled' | 'stopped';
1861
+ AgentDefaultsListResponse: {
1862
+ /**
1863
+ * Defaults
1864
+ * @description The configured defaults.
1865
+ */
1866
+ defaults: components['schemas']['AgentDefault'][];
1867
+ };
1841
1868
  /**
1842
- * AgentSessionWire
1843
- * @description An agent session: one conversation with an agent, from trigger to
1844
- * terminal state. Returned by `GET /sessions/{id}` and carried by the
1845
- * session stream's `session`/`snapshot` frames — REST and stream never
1846
- * disagree about what a session looks like.
1869
+ * AgentTemplate
1870
+ * @description A built-in agent template: a ready-to-use agent config plus the
1871
+ * metadata that describes it in the template gallery.
1847
1872
  */
1848
- AgentSessionWire: {
1873
+ AgentTemplate: {
1849
1874
  /**
1850
- * Agent Config Id
1851
- * @description Identifier of the saved agent config the session ran on, if any.
1875
+ * Description
1876
+ * @description A short description of the template.
1852
1877
  */
1853
- agent_config_id?: string | null;
1854
- /** @description The GitHub user the session is attributed to, when the attribution is a GitHub user. */
1855
- attributed_user?: components['schemas']['GithubAccountSnippet'] | null;
1878
+ description: string;
1856
1879
  /**
1857
- * Attribution Id
1858
- * @description Identifier of the principal the session is attributed to.
1880
+ * Name
1881
+ * @description The template's display name.
1859
1882
  */
1860
- attribution_id?: string | null;
1861
- /** @description Kind of principal the session is attributed to (e.g. a GitHub user or an API key). */
1862
- attribution_type?: components['schemas']['AttributionType'] | null;
1883
+ name: string;
1863
1884
  /**
1864
- * Client Version
1865
- * @description Version of the client that started the session, if reported.
1885
+ * Slug
1886
+ * @description The template's unique identifier.
1866
1887
  */
1867
- client_version?: string | null;
1888
+ slug: string;
1868
1889
  /**
1869
- * Config Override
1870
- * @description The partial-config diff applied for this run; null when the config was unmodified.
1890
+ * Summary
1891
+ * @description A one-line summary of the template.
1871
1892
  */
1872
- config_override?: {
1873
- [key: string]: unknown;
1874
- } | null;
1893
+ summary: string;
1875
1894
  /**
1876
- * Context Repository
1877
- * @description The "owner/name" repository context the session was started in, if any.
1895
+ * Tags
1896
+ * @description Gallery tags for the template.
1878
1897
  */
1879
- context_repository?: string | null;
1898
+ tags: string[];
1880
1899
  /**
1881
- * Cost Fee
1882
- * @description Platform fee in millicents.
1883
- * @default 0
1900
+ * Use Case
1901
+ * @description The use case the template is designed for.
1884
1902
  */
1885
- cost_fee: number;
1903
+ use_case: string;
1886
1904
  /**
1887
- * Cost Sandbox Cpu
1888
- * @description Sandbox CPU spend in millicents.
1889
- * @default 0
1905
+ * Yaml
1906
+ * @description The complete, schema-valid agent config YAML, ready to write to disk.
1890
1907
  */
1891
- cost_sandbox_cpu: number;
1908
+ yaml: string;
1909
+ };
1910
+ /**
1911
+ * AgentTemplatesListResponse
1912
+ * @description The built-in agent templates.
1913
+ */
1914
+ AgentTemplatesListResponse: {
1892
1915
  /**
1893
- * Cost Sandbox Memory
1894
- * @description Sandbox memory spend in millicents.
1895
- * @default 0
1916
+ * Templates
1917
+ * @description The available templates.
1896
1918
  */
1897
- cost_sandbox_memory: number;
1919
+ templates: components['schemas']['AgentTemplate'][];
1898
1920
  /**
1899
- * Cost Tokens
1900
- * @description Token spend in millicents. The session's grand total cost is the sum of cost_tokens, cost_sandbox_cpu, cost_sandbox_memory, and cost_fee.
1921
+ * Walkthrough Yaml
1922
+ * @description A fully-populated example agent config, for display in setup walkthroughs. Not a template to run as-is.
1901
1923
  */
1902
- cost_tokens: number;
1924
+ walkthrough_yaml: string;
1925
+ };
1926
+ /**
1927
+ * Alert
1928
+ * @description One thing Ellipsis told (or will tell) your team about — e.g. a budget
1929
+ * threshold being crossed.
1930
+ */
1931
+ Alert: {
1932
+ /**
1933
+ * Body
1934
+ * @description The alert body, in Markdown.
1935
+ */
1936
+ body: string;
1903
1937
  /**
1904
1938
  * Created At
1905
1939
  * Format: date-time
1906
- * @description When the session was created.
1940
+ * @description When the alert was raised.
1907
1941
  */
1908
1942
  created_at: string;
1909
1943
  /**
1910
- * Customer Id
1911
- * @description Identifier of the account that owns the session.
1944
+ * Cta Label
1945
+ * @description The label for the call-to-action link.
1912
1946
  */
1913
- customer_id: string;
1914
- /** @description How the session's config was resolved from the account's defaults, when no explicit config was given. */
1915
- default_resolution?: components['schemas']['DefaultResolution'] | null;
1916
- /** @description How the session ended; null until it is terminal. */
1917
- exit_status?: components['schemas']['AgentSessionExitStatus'] | null;
1918
- /** @description The coding-agent harness the session runs on. */
1919
- harness: components['schemas']['Harness'];
1947
+ cta_label?: string | null;
1920
1948
  /**
1921
- * Id
1922
- * @description Unique identifier of the session.
1949
+ * Cta Url
1950
+ * @description An optional call-to-action link — where this alert should send the reader.
1923
1951
  */
1924
- id: string;
1952
+ cta_url?: string | null;
1925
1953
  /**
1926
- * Last Activity At
1927
- * @description When the session last showed activity.
1954
+ * Id
1955
+ * @description The alert's unique identifier.
1928
1956
  */
1929
- last_activity_at?: string | null;
1957
+ id: string;
1930
1958
  /**
1931
- * Last Message At
1932
- * @description When the session last received a message.
1959
+ * Resolved At
1960
+ * @description When the alert was resolved.
1933
1961
  */
1934
- last_message_at?: string | null;
1962
+ resolved_at?: string | null;
1935
1963
  /**
1936
- * Live Summary
1937
- * @description A live summary of the session's progress while it runs.
1938
- */
1939
- live_summary?: string | null;
1940
- /**
1941
- * Metadata
1942
- * @description Caller-supplied metadata key-value pairs.
1943
- * @default {}
1944
- */
1945
- metadata: {
1946
- [key: string]: string;
1947
- };
1948
- /**
1949
- * Output Prs
1950
- * @description Pull requests the session created or updated.
1951
- */
1952
- output_prs?: components['schemas']['AgentSessionPr'][] | null;
1953
- /**
1954
- * Parent Agent Session Id
1955
- * @description Identifier of the parent session that spawned this one, if any.
1956
- */
1957
- parent_agent_session_id?: string | null;
1958
- /** @description How this session relates to its parent session, if any. */
1959
- parent_kind?: components['schemas']['ParentKind'] | null;
1960
- /**
1961
- * Prompt
1962
- * @description The per-session prompt the session was started with.
1963
- */
1964
- prompt?: string | null;
1965
- /** @description Whether a client may send this session a message and, when it may not, the reason to show instead of a composer. */
1966
- prompting: components['schemas']['SessionPrompting'];
1967
- /**
1968
- * Replayed From Session Id
1969
- * @description Identifier of the original session this one was replayed from, if it was started via replay.
1970
- */
1971
- replayed_from_session_id?: string | null;
1972
- /**
1973
- * Resolved Budget Cents
1974
- * @description The spend budget resolved for this session, in cents.
1975
- */
1976
- resolved_budget_cents: number;
1977
- /** @description Where the resolved budget came from. */
1978
- resolved_budget_source: components['schemas']['BudgetSource'];
1979
- /**
1980
- * Sandbox Id
1981
- * @description Identifier of the sandbox the session runs in, if any.
1982
- */
1983
- sandbox_id?: string | null;
1984
- /**
1985
- * Session Key
1986
- * @description Key identifying the durable conversation this session belongs to, or null for single-shot sessions.
1987
- */
1988
- session_key?: string | null;
1989
- /** @description Lifecycle state of the durable conversation, or null for sessions without one. */
1990
- session_state?: components['schemas']['SessionState'] | null;
1991
- /** @description Where the session came from (e.g. react, manual, api, cli, mention, cron, laptop). */
1992
- source: components['schemas']['AgentSessionSource'];
1993
- /** @description Execution status of the session. */
1994
- status: components['schemas']['AgentSessionStatus'];
1995
- /**
1996
- * Status Reason
1997
- * @description Human-readable reason for the current status, when there is one.
1998
- */
1999
- status_reason?: string | null;
2000
- /**
2001
- * Stopped At
2002
- * @description When a stop was requested, if one was.
2003
- */
2004
- stopped_at?: string | null;
2005
- /**
2006
- * Stopped By
2007
- * @description GitHub account id of the user who stopped the session, if known.
2008
- */
2009
- stopped_by?: number | null;
2010
- /** @description The GitHub user who stopped the session, if it was stopped. */
2011
- stopped_by_user?: components['schemas']['GithubAccountSnippet'] | null;
2012
- /** @description The public status projection; null for laptop-synced sessions. */
2013
- surface?: components['schemas']['SessionSurface'] | null;
2014
- /**
2015
- * Tokens Cache Creation
2016
- * @description Tokens written to the prompt cache.
2017
- * @default 0
2018
- */
2019
- tokens_cache_creation: number;
2020
- /**
2021
- * Tokens Cache Read
2022
- * @description Tokens read from the prompt cache.
2023
- * @default 0
2024
- */
2025
- tokens_cache_read: number;
2026
- /**
2027
- * Tokens Input
2028
- * @description Input tokens used.
2029
- * @default 0
2030
- */
2031
- tokens_input: number;
2032
- /**
2033
- * Tokens Model
2034
- * @description The model the token counts are attributed to.
2035
- */
2036
- tokens_model: string;
2037
- /**
2038
- * Tokens Output
2039
- * @description Output tokens used.
2040
- * @default 0
2041
- */
2042
- tokens_output: number;
2043
- /**
2044
- * Tokens Total
2045
- * @description Total tokens used by the session.
2046
- * @default 0
2047
- */
2048
- tokens_total: number;
2049
- /**
2050
- * Updated At
2051
- * Format: date-time
2052
- * @description When the session was last updated.
2053
- */
2054
- updated_at: string;
2055
- /**
2056
- * Webhook Id
2057
- * @description Identifier of the webhook event that triggered the session, if any.
2058
- */
2059
- webhook_id?: string | null;
2060
- /** @description Type of the webhook event that triggered the session, if any. */
2061
- webhook_type?: components['schemas']['WebhookType'] | null;
2062
- };
2063
- /**
2064
- * AgentTemplate
2065
- * @description A built-in agent template: a ready-to-use agent config plus the
2066
- * metadata that describes it in the template gallery.
2067
- */
2068
- AgentTemplate: {
2069
- /**
2070
- * Description
2071
- * @description A short description of the template.
2072
- */
2073
- description: string;
2074
- /**
2075
- * Name
2076
- * @description The template's display name.
2077
- */
2078
- name: string;
2079
- /**
2080
- * Slug
2081
- * @description The template's unique identifier.
2082
- */
2083
- slug: string;
2084
- /**
2085
- * Summary
2086
- * @description A one-line summary of the template.
2087
- */
2088
- summary: string;
2089
- /**
2090
- * Tags
2091
- * @description Gallery tags for the template.
2092
- */
2093
- tags: string[];
2094
- /**
2095
- * Use Case
2096
- * @description The use case the template is designed for.
2097
- */
2098
- use_case: string;
2099
- /**
2100
- * Yaml
2101
- * @description The complete, schema-valid agent config YAML, ready to write to disk.
2102
- */
2103
- yaml: string;
2104
- };
2105
- /**
2106
- * AgentTurn
2107
- * @description One exchange within a session: a single Claude Code execution driven by the
2108
- * session's inbox. Over subsequent slices this absorbs the per-execution fields
2109
- * (status, cost, tokens, exit_status) that currently live on agent_sessions.
2110
- */
2111
- AgentTurn: {
2112
- /** Agent Session Id */
2113
- agent_session_id: string;
2114
- /** Completed At */
2115
- completed_at?: string | null;
2116
- /**
2117
- * Cost Fee
2118
- * @default 0
2119
- */
2120
- cost_fee: number;
2121
- /**
2122
- * Cost Sandbox Cpu
2123
- * @default 0
2124
- */
2125
- cost_sandbox_cpu: number;
2126
- /**
2127
- * Cost Sandbox Memory
2128
- * @default 0
2129
- */
2130
- cost_sandbox_memory: number;
2131
- /**
2132
- * Cost Tokens
2133
- * @default 0
2134
- */
2135
- cost_tokens: number;
2136
- /**
2137
- * Created At
2138
- * Format: date-time
2139
- */
2140
- created_at: string;
2141
- exit_status?: components['schemas']['AgentSessionExitStatus'] | null;
2142
- /** Id */
2143
- id: string;
2144
- /** React Action */
2145
- react_action?: string | null;
2146
- /** Sandbox Id */
2147
- sandbox_id?: string | null;
2148
- /** Session Execution Id */
2149
- session_execution_id?: string | null;
2150
- /** Started At */
2151
- started_at?: string | null;
2152
- status: components['schemas']['AgentTurnStatus'];
2153
- /** Status Reason */
2154
- status_reason?: string | null;
2155
- /**
2156
- * Tokens Cache Creation
2157
- * @default 0
2158
- */
2159
- tokens_cache_creation: number;
2160
- /**
2161
- * Tokens Cache Read
2162
- * @default 0
2163
- */
2164
- tokens_cache_read: number;
2165
- /**
2166
- * Tokens Input
2167
- * @default 0
2168
- */
2169
- tokens_input: number;
2170
- /** Tokens Model */
2171
- tokens_model?: string | null;
2172
- /**
2173
- * Tokens Output
2174
- * @default 0
2175
- */
2176
- tokens_output: number;
2177
- /**
2178
- * Tokens Total
2179
- * @default 0
2180
- */
2181
- tokens_total: number;
2182
- /** Turn Index */
2183
- turn_index: number;
2184
- /**
2185
- * Updated At
2186
- * Format: date-time
2187
- */
2188
- updated_at: string;
2189
- /** Webhook Id */
2190
- webhook_id?: string | null;
2191
- webhook_type?: components['schemas']['WebhookType'] | null;
2192
- };
2193
- /**
2194
- * AgentTurnStatus
2195
- * @enum {string}
2196
- */
2197
- AgentTurnStatus: 'scheduled' | 'running' | 'completed' | 'error' | 'cancelled';
2198
- /**
2199
- * Alert
2200
- * @description One thing Ellipsis told (or will tell) your team about — e.g. a budget
2201
- * threshold being crossed.
2202
- */
2203
- Alert: {
2204
- /**
2205
- * Body
2206
- * @description The alert body, in Markdown.
2207
- */
2208
- body: string;
2209
- /**
2210
- * Created At
2211
- * Format: date-time
2212
- * @description When the alert was raised.
2213
- */
2214
- created_at: string;
2215
- /**
2216
- * Cta Label
2217
- * @description The label for the call-to-action link.
2218
- */
2219
- cta_label?: string | null;
2220
- /**
2221
- * Cta Url
2222
- * @description An optional call-to-action link — where this alert should send the reader.
2223
- */
2224
- cta_url?: string | null;
2225
- /**
2226
- * Customer Id
2227
- * @description The account the alert belongs to.
2228
- */
2229
- customer_id: string;
2230
- /**
2231
- * Dedupe Key
2232
- * @description Deduplication key: at most one open alert exists per account and key, so re-raising a known condition is a no-op.
2233
- */
2234
- dedupe_key: string;
2235
- /**
2236
- * Id
2237
- * @description The alert's unique identifier.
2238
- */
2239
- id: string;
2240
- /**
2241
- * Resolved At
2242
- * @description When the alert was resolved.
2243
- */
2244
- resolved_at?: string | null;
2245
- /**
2246
- * Resolved By
2247
- * @description The GitHub account id of the person who dismissed the alert, when a human resolved it.
1964
+ * Resolved By
1965
+ * @description The GitHub account id of the person who dismissed the alert, when a human resolved it.
2248
1966
  */
2249
1967
  resolved_by?: number | null;
2250
1968
  /** @description The alert's severity. Cosmetic only; it does not affect routing. */
@@ -2264,6 +1982,14 @@ interface components {
2264
1982
  */
2265
1983
  updated_at: string;
2266
1984
  };
1985
+ /**
1986
+ * AlertResponse
1987
+ * @description One alert.
1988
+ */
1989
+ AlertResponse: {
1990
+ /** @description The alert. */
1991
+ alert: components['schemas']['Alert'];
1992
+ };
2267
1993
  /**
2268
1994
  * AlertSeverity
2269
1995
  * @description Cosmetic only (badge tone, Slack emoji, email subject prefix). Routing
@@ -2284,6 +2010,28 @@ interface components {
2284
2010
  * @enum {string}
2285
2011
  */
2286
2012
  AlertStatus: 'open' | 'dismissed' | 'expired';
2013
+ /**
2014
+ * AlertsListResponse
2015
+ * @description A page of alerts for the caller's organization.
2016
+ */
2017
+ AlertsListResponse: {
2018
+ /**
2019
+ * Alerts
2020
+ * @description The matching alerts.
2021
+ */
2022
+ alerts: components['schemas']['Alert'][];
2023
+ /**
2024
+ * Has More
2025
+ * @description Whether more results exist past this page.
2026
+ * @default false
2027
+ */
2028
+ has_more: boolean;
2029
+ /**
2030
+ * Next Cursor
2031
+ * @description Pass as `cursor` to fetch the next page. Null on the last page. Opaque — echo it back rather than parsing it.
2032
+ */
2033
+ next_cursor?: string | null;
2034
+ };
2287
2035
  /**
2288
2036
  * AnalyticsMetricsBucket
2289
2037
  * @description Pull-request and review activity on one UTC day. Each count keys on the
@@ -2590,6 +2338,76 @@ interface components {
2590
2338
  * @enum {string}
2591
2339
  */
2592
2340
  CodeReviewRunStatus: 'scheduled' | 'running' | 'posting' | 'completed' | 'skipped' | 'error' | 'cancelled';
2341
+ /**
2342
+ * Config
2343
+ * @description A saved agent config: the stored row for one agent, plus where it syncs
2344
+ * from and the state of that sync.
2345
+ */
2346
+ Config: {
2347
+ /** @description The agent definition itself, as parsed from its YAML file. */
2348
+ agent_config: components['schemas']['AgentConfig'];
2349
+ /** @description The repository, path, and branch the config syncs from. Null only transiently, before the creating pull request's file lands on the branch. */
2350
+ agent_config_source_details?: components['schemas']['AgentConfigSourceGithub'] | null;
2351
+ /**
2352
+ * Created At
2353
+ * Format: date-time
2354
+ * @description When the config was created.
2355
+ */
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;
2362
+ /** @description The GitHub account that last edited the config, when the edit came from a known user. */
2363
+ edited_by?: components['schemas']['GithubAccountSnippet'] | null;
2364
+ /**
2365
+ * Id
2366
+ * @description Unique identifier of the config.
2367
+ */
2368
+ id: string;
2369
+ /**
2370
+ * Last Session Created At
2371
+ * @description When that most recent session was created.
2372
+ */
2373
+ last_session_created_at?: string | null;
2374
+ /**
2375
+ * Last Session Id
2376
+ * @description The most recent session started from this config, or null if it has never run.
2377
+ */
2378
+ last_session_id?: string | null;
2379
+ /**
2380
+ * Last Sync Error
2381
+ * @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.
2382
+ */
2383
+ last_sync_error?: string | null;
2384
+ /**
2385
+ * Last Synced Commit Sha
2386
+ * @description The last commit the config was synced from.
2387
+ */
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;
2394
+ /**
2395
+ * Pending Pull Request Url
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.
2397
+ */
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;
2404
+ /**
2405
+ * Updated At
2406
+ * Format: date-time
2407
+ * @description When the config was last updated.
2408
+ */
2409
+ updated_at: string;
2410
+ };
2593
2411
  /**
2594
2412
  * ContributorUsage
2595
2413
  * @description An author who merged a pull request in the window. The pull-request and
@@ -2657,6 +2475,24 @@ interface components {
2657
2475
  */
2658
2476
  template_id?: string | null;
2659
2477
  };
2478
+ /**
2479
+ * CreateAgentConfigResponse
2480
+ * @description The created agent config and the pull request that adds its file.
2481
+ */
2482
+ CreateAgentConfigResponse: {
2483
+ /** @description The created agent config. */
2484
+ config: components['schemas']['Config'];
2485
+ /**
2486
+ * Path
2487
+ * @description The file path the config was written to.
2488
+ */
2489
+ path: string;
2490
+ /**
2491
+ * Pull Request Url
2492
+ * @description The pull request that adds the config file. The agent becomes live once it merges and syncs.
2493
+ */
2494
+ pull_request_url: string;
2495
+ };
2660
2496
  /**
2661
2497
  * CreateFileRequest
2662
2498
  * @description Upload a file owned by the calling account.
@@ -2684,7 +2520,7 @@ interface components {
2684
2520
  */
2685
2521
  CreateFileResponse: {
2686
2522
  /** @description The stored file's metadata. */
2687
- file: components['schemas']['FileView'];
2523
+ file: components['schemas']['File'];
2688
2524
  /**
2689
2525
  * Url
2690
2526
  * @description The file's dashboard URL (app.ellipsis.dev/files/{id}). Access is gated to members of the owning organization, so this link is safe to share, e.g. in a pull request comment.
@@ -2751,14 +2587,6 @@ interface components {
2751
2587
  */
2752
2588
  scope: components['schemas']['ReviewScope'];
2753
2589
  };
2754
- /** CreatedAgentConfig */
2755
- CreatedAgentConfig: {
2756
- config: components['schemas']['SavedAgentConfig'];
2757
- /** Path */
2758
- path: string;
2759
- /** Pull Request Url */
2760
- pull_request_url: string;
2761
- };
2762
2590
  /**
2763
2591
  * DefaultResolution
2764
2592
  * @description How a session that arrived with no explicit config source resolved its
@@ -2828,22 +2656,6 @@ interface components {
2828
2656
  * @enum {string}
2829
2657
  */
2830
2658
  EffortLevel: 'low' | 'medium' | 'high' | 'xhigh' | 'max';
2831
- /**
2832
- * EnvironmentVariableInput
2833
- * @description One environment variable to store.
2834
- */
2835
- EnvironmentVariableInput: {
2836
- /**
2837
- * Name
2838
- * @description The variable name. Must start with a letter or underscore and contain only letters, digits, and underscores.
2839
- */
2840
- name: string;
2841
- /**
2842
- * Value
2843
- * @description The variable value. Write-only: it is injected into sandboxes but never returned by the API.
2844
- */
2845
- value: string;
2846
- };
2847
2659
  /** ErrorInfo */
2848
2660
  ErrorInfo: {
2849
2661
  /**
@@ -2878,16 +2690,11 @@ interface components {
2878
2690
  */
2879
2691
  ExecutionStatus: 'running' | 'failed' | 'done';
2880
2692
  /**
2881
- * FileView
2693
+ * File
2882
2694
  * @description A file's metadata — the file itself is fetched via a separate
2883
2695
  * download URL.
2884
2696
  */
2885
- FileView: {
2886
- /**
2887
- * Agent Session Id
2888
- * @description The agent session that produced this file, when it was uploaded from a sandbox. Null for uploads made outside an agent session.
2889
- */
2890
- agent_session_id?: string | null;
2697
+ File: {
2891
2698
  /**
2892
2699
  * Content Type
2893
2700
  * @description The file's MIME type.
@@ -2908,12 +2715,40 @@ interface components {
2908
2715
  * Id
2909
2716
  * @description The file's unique identifier.
2910
2717
  */
2911
- id: string;
2718
+ id: string;
2719
+ /**
2720
+ * Session Id
2721
+ * @description The agent session that produced this file, when it was uploaded from a sandbox. Null for uploads made outside an agent session.
2722
+ */
2723
+ session_id?: string | null;
2724
+ /**
2725
+ * Size Bytes
2726
+ * @description The size of the stored file in bytes.
2727
+ */
2728
+ size_bytes: number;
2729
+ };
2730
+ /**
2731
+ * FilesListResponse
2732
+ * @description A page of the calling account's files, newest first. Metadata only —
2733
+ * fetch an individual file to get a download URL.
2734
+ */
2735
+ FilesListResponse: {
2736
+ /**
2737
+ * Files
2738
+ * @description The account's files, newest first.
2739
+ */
2740
+ files: components['schemas']['File'][];
2741
+ /**
2742
+ * Has More
2743
+ * @description Whether more results exist past this page.
2744
+ * @default false
2745
+ */
2746
+ has_more: boolean;
2912
2747
  /**
2913
- * Size Bytes
2914
- * @description The size of the stored file in bytes.
2748
+ * Next Cursor
2749
+ * @description Pass as `cursor` to fetch the next page. Null on the last page. Opaque — echo it back rather than parsing it.
2915
2750
  */
2916
- size_bytes: number;
2751
+ next_cursor?: string | null;
2917
2752
  };
2918
2753
  /**
2919
2754
  * FindingAnchor
@@ -2974,7 +2809,7 @@ interface components {
2974
2809
  * Recent
2975
2810
  * @description The most recent pull requests, newest first, capped.
2976
2811
  */
2977
- recent: components['schemas']['RecentPullRequestDTO'][];
2812
+ recent: components['schemas']['RecentPullRequest'][];
2978
2813
  /**
2979
2814
  * Series
2980
2815
  * @description Per-day activity buckets covering the window.
@@ -3026,7 +2861,7 @@ interface components {
3026
2861
  */
3027
2862
  download_url: string;
3028
2863
  /** @description The file's metadata. */
3029
- file: components['schemas']['FileView'];
2864
+ file: components['schemas']['File'];
3030
2865
  /**
3031
2866
  * Url
3032
2867
  * @description The file's dashboard URL — the same shareable link returned when the file was created.
@@ -3056,18 +2891,6 @@ interface components {
3056
2891
  /** @description The connected Slack workspace, or null if not connected. */
3057
2892
  slack?: components['schemas']['SlackIntegrationSummary'] | null;
3058
2893
  };
3059
- /**
3060
- * GetSandboxVariablesResponse
3061
- * @description The account's sandbox environment variables, names and timestamps only —
3062
- * values are never returned.
3063
- */
3064
- GetSandboxVariablesResponse: {
3065
- /**
3066
- * Variables
3067
- * @description The stored variables.
3068
- */
3069
- variables: components['schemas']['SandboxEnvironmentVariableSummary'][];
3070
- };
3071
2894
  /**
3072
2895
  * GetSessionIdeResponse
3073
2896
  * @description The IDE link for a session's live sandbox.
@@ -3085,7 +2908,7 @@ interface components {
3085
2908
  * of the session — every record (agent output, tool calls, thinking,
3086
2909
  * lifecycle events, sandbox output, message events), archived into
3087
2910
  * seq-ranged segments. For a running session `latest_feed_seq` may exceed
3088
- * `archived_through_feed_seq`; `caught_up` tells the client whether the
2911
+ * `archived_through_feed_seq`; `has_more` tells the client whether the
3089
2912
  * manifest is the whole story yet.
3090
2913
  */
3091
2914
  GetSessionLogResponse: {
@@ -3094,11 +2917,6 @@ interface components {
3094
2917
  * @description The highest feed_seq covered by an archived segment (0 when none yet).
3095
2918
  */
3096
2919
  archived_through_feed_seq: number;
3097
- /**
3098
- * Caught Up
3099
- * @description Whether the archived segments cover the session's whole history so far.
3100
- */
3101
- caught_up: boolean;
3102
2920
  /**
3103
2921
  * Earliest Feed Seq
3104
2922
  * @description The retention head: the first feed_seq still available, or null when nothing has been recorded yet.
@@ -3110,6 +2928,11 @@ interface components {
3110
2928
  * @default ellipsis_session_log@1
3111
2929
  */
3112
2930
  format: string;
2931
+ /**
2932
+ * Has More
2933
+ * @description Whether records exist past the archived segments — true for a running session whose newest records are not archived yet.
2934
+ */
2935
+ has_more: boolean;
3113
2936
  /**
3114
2937
  * Latest Feed Seq
3115
2938
  * @description The feed head: the last allocated feed_seq.
@@ -3119,7 +2942,7 @@ interface components {
3119
2942
  * Segments
3120
2943
  * @description The archived segments, in feed_seq order.
3121
2944
  */
3122
- segments: components['schemas']['SessionLogSegmentView'][];
2945
+ segments: components['schemas']['SessionLogSegment'][];
3123
2946
  /**
3124
2947
  * Session Id
3125
2948
  * @description Identifier of the session.
@@ -3142,11 +2965,6 @@ interface components {
3142
2965
  */
3143
2966
  url: string;
3144
2967
  };
3145
- /** GetSupportedModelsResponse */
3146
- GetSupportedModelsResponse: {
3147
- /** Models */
3148
- models: components['schemas']['SupportedModelApi'][];
3149
- };
3150
2968
  /**
3151
2969
  * GetUsageDashboardResponse
3152
2970
  * @description The account's usage over a period: token and cost totals, a per-day
@@ -3269,13 +3087,13 @@ interface components {
3269
3087
  suspended: boolean;
3270
3088
  };
3271
3089
  /**
3272
- * GithubMemberSummary
3090
+ * GithubMember
3273
3091
  * @description A member of the GitHub organization (or the account itself for a
3274
3092
  * personal account) — the universe of `author_id` values for session/log
3275
3093
  * queries. `slack` is set when this account is linked to a Slack workspace
3276
3094
  * user.
3277
3095
  */
3278
- GithubMemberSummary: {
3096
+ GithubMember: {
3279
3097
  /**
3280
3098
  * Avatar Url
3281
3099
  * @description The member's GitHub avatar URL.
@@ -3301,6 +3119,66 @@ interface components {
3301
3119
  /** @description The Slack identity linked to this member, when one is known. */
3302
3120
  slack?: components['schemas']['LinkedSlackIdentity'] | null;
3303
3121
  };
3122
+ /**
3123
+ * GithubMembersListResponse
3124
+ * @description The members of the account's GitHub organization.
3125
+ */
3126
+ GithubMembersListResponse: {
3127
+ /**
3128
+ * Members
3129
+ * @description The organization's members, sorted by login.
3130
+ */
3131
+ members: components['schemas']['GithubMember'][];
3132
+ };
3133
+ /**
3134
+ * GithubRepositoriesListResponse
3135
+ * @description The repositories connected to the account's GitHub installation.
3136
+ */
3137
+ GithubRepositoriesListResponse: {
3138
+ /**
3139
+ * Repositories
3140
+ * @description The connected repositories.
3141
+ */
3142
+ repositories: components['schemas']['GithubRepository'][];
3143
+ };
3144
+ /**
3145
+ * GithubRepository
3146
+ * @description A repository connected to the account's GitHub installation — a valid
3147
+ * target for `repository` when creating an agent config and for the
3148
+ * repository lists inside an agent config.
3149
+ */
3150
+ GithubRepository: {
3151
+ /**
3152
+ * Default Branch
3153
+ * @description The repository's default branch.
3154
+ */
3155
+ default_branch?: string | null;
3156
+ /**
3157
+ * Description
3158
+ * @description The repository's description on GitHub.
3159
+ */
3160
+ description?: string | null;
3161
+ /**
3162
+ * Full Name
3163
+ * @description The repository's full "owner/name" identifier.
3164
+ */
3165
+ full_name: string;
3166
+ /**
3167
+ * Id
3168
+ * @description The repository's GitHub id.
3169
+ */
3170
+ id: number;
3171
+ /**
3172
+ * Name
3173
+ * @description The repository name, without the owner.
3174
+ */
3175
+ name: string;
3176
+ /**
3177
+ * Private
3178
+ * @description Whether the repository is private.
3179
+ */
3180
+ private: boolean;
3181
+ };
3304
3182
  /**
3305
3183
  * GithubUser
3306
3184
  * @description This is a full user account. It's the most amount of info we need to represent a GitHub user.
@@ -3481,386 +3359,117 @@ interface components {
3481
3359
  * Teams
3482
3360
  * @description The organization's teams.
3483
3361
  */
3484
- teams: components['schemas']['LinearTeamSummary'][];
3485
- };
3486
- /**
3487
- * LinearIssueAction
3488
- * @enum {string}
3489
- */
3490
- LinearIssueAction: 'opened';
3491
- /**
3492
- * LinearTeamSummary
3493
- * @description One team in the connected Linear organization.
3494
- */
3495
- LinearTeamSummary: {
3496
- /**
3497
- * Id
3498
- * @description The Linear team id.
3499
- */
3500
- id: string;
3501
- /**
3502
- * Is Enabled
3503
- * @description Whether Ellipsis is enabled for this team.
3504
- */
3505
- is_enabled: boolean;
3506
- /**
3507
- * Key
3508
- * @description The team's short key (issue prefix).
3509
- */
3510
- key?: string | null;
3511
- /**
3512
- * Name
3513
- * @description The team's display name.
3514
- */
3515
- name: string;
3516
- };
3517
- /**
3518
- * LinkedGithubIdentity
3519
- * @description The GitHub identity linked to a Slack member.
3520
- */
3521
- LinkedGithubIdentity: {
3522
- /**
3523
- * Id
3524
- * @description The linked GitHub account id.
3525
- */
3526
- id: number;
3527
- /**
3528
- * Login
3529
- * @description The linked GitHub login, if known.
3530
- */
3531
- login?: string | null;
3532
- };
3533
- /**
3534
- * LinkedSlackIdentity
3535
- * @description The Slack identity linked to a GitHub member.
3536
- */
3537
- LinkedSlackIdentity: {
3538
- /**
3539
- * Slack Email
3540
- * @description The linked Slack user's email, if known.
3541
- */
3542
- slack_email?: string | null;
3543
- /**
3544
- * Slack User Id
3545
- * @description The linked Slack user id.
3546
- */
3547
- slack_user_id: string;
3548
- };
3549
- /**
3550
- * ListAgentConfigsResponse
3551
- * @description The caller's saved agent configs.
3552
- */
3553
- ListAgentConfigsResponse: {
3554
- /**
3555
- * Configs
3556
- * @description Saved agent configs.
3557
- */
3558
- configs: components['schemas']['SavedAgentConfig'][];
3559
- };
3560
- /**
3561
- * ListAgentDefaultsV1Response
3562
- * @description The account's default-agent settings.
3563
- */
3564
- ListAgentDefaultsV1Response: {
3565
- /**
3566
- * Defaults
3567
- * @description The configured defaults.
3568
- */
3569
- defaults: components['schemas']['AgentDefaultV1'][];
3570
- };
3571
- /**
3572
- * ListAgentSessionsResponse
3573
- * @description A list of sessions in the lean wire shape.
3574
- */
3575
- ListAgentSessionsResponse: {
3576
- /**
3577
- * Sessions
3578
- * @description Lean wire rows — the same shape GET /sessions/{id} and the stream's session frames carry. The heavy blobs (config snapshot, input/output) live on the detail endpoints.
3579
- */
3580
- sessions: components['schemas']['AgentSessionWire'][];
3581
- };
3582
- /**
3583
- * ListAgentTemplatesResponse
3584
- * @description The built-in agent templates.
3585
- */
3586
- ListAgentTemplatesResponse: {
3587
- /**
3588
- * Templates
3589
- * @description The available templates.
3590
- */
3591
- templates: components['schemas']['AgentTemplate'][];
3592
- /**
3593
- * Walkthrough Yaml
3594
- * @description A fully-populated example agent config, for display in setup walkthroughs. Not a template to run as-is.
3595
- */
3596
- walkthrough_yaml: string;
3597
- };
3598
- /**
3599
- * ListAlertsResponse
3600
- * @description A list of alerts for the caller's organization.
3601
- */
3602
- ListAlertsResponse: {
3603
- /**
3604
- * Alerts
3605
- * @description The matching alerts.
3606
- */
3607
- alerts: components['schemas']['Alert'][];
3608
- };
3609
- /**
3610
- * ListFilesResponse
3611
- * @description The calling account's files, newest first. Metadata only — fetch an
3612
- * individual file to get a download URL.
3613
- */
3614
- ListFilesResponse: {
3615
- /**
3616
- * Files
3617
- * @description The account's files, newest first.
3618
- */
3619
- files: components['schemas']['FileView'][];
3620
- };
3621
- /**
3622
- * ListGithubMembersResponse
3623
- * @description The members of the account's GitHub organization.
3624
- */
3625
- ListGithubMembersResponse: {
3626
- /**
3627
- * Members
3628
- * @description The organization's members, sorted by login.
3629
- */
3630
- members: components['schemas']['GithubMemberSummary'][];
3631
- };
3632
- /**
3633
- * ListGithubRepositoriesResponse
3634
- * @description The repositories connected to the account's GitHub installation.
3635
- */
3636
- ListGithubRepositoriesResponse: {
3637
- /**
3638
- * Repositories
3639
- * @description The connected repositories.
3640
- */
3641
- repositories: components['schemas']['RepositorySummary'][];
3642
- };
3643
- /**
3644
- * ListLinearTeamsResponse
3645
- * @description The teams in the connected Linear organization.
3646
- */
3647
- ListLinearTeamsResponse: {
3648
- /**
3649
- * Organization Id
3650
- * @description The Linear organization id.
3651
- */
3652
- organization_id: string;
3653
- /**
3654
- * Teams
3655
- * @description The organization's teams.
3656
- */
3657
- teams: components['schemas']['LinearTeamSummary'][];
3658
- };
3659
- /**
3660
- * ListMemoriesWireResponse
3661
- * @description The organization's memories: the rendered index a reader scans, plus the
3662
- * same entries structured. Content is fetched per memory.
3663
- */
3664
- ListMemoriesWireResponse: {
3665
- /**
3666
- * Index
3667
- * @description The memories rendered as a markdown index — one line per memory carrying its id, path, and description, grouped by top-level prefix. Read this, then fetch the ids that matter.
3668
- */
3669
- index: string;
3670
- /**
3671
- * Memories
3672
- * @description The same memories as structured entries, ordered by path.
3673
- */
3674
- memories: components['schemas']['MemoryStubWire'][];
3675
- };
3676
- /**
3677
- * ListReviewsResponse
3678
- * @description Reviews matching the query, newest first. `findings` are omitted
3679
- * (counters only); automatically-triggered reviews are included, so this
3680
- * answers "show me every review on this pull request".
3681
- */
3682
- ListReviewsResponse: {
3683
- /**
3684
- * Reviews
3685
- * @description The matching reviews.
3686
- */
3687
- reviews: components['schemas']['Review'][];
3688
- };
3689
- /**
3690
- * ListSentryOrganizationsResponse
3691
- * @description The connected Sentry organizations; empty if none are connected.
3692
- */
3693
- ListSentryOrganizationsResponse: {
3694
- /**
3695
- * Organizations
3696
- * @description The connected Sentry organizations.
3697
- */
3698
- organizations: components['schemas']['SentryOrganizationSummary'][];
3699
- };
3700
- /**
3701
- * ListSessionExecutionsResponse
3702
- * @description A session's executions with the launch context each was given.
3703
- */
3704
- ListSessionExecutionsResponse: {
3705
- /**
3706
- * Executions
3707
- * @description The session's executions (initial start, cold wakes, infra retries), ordered by execution_index. Each carries the launch context the harness was given: system_prompt_append (the text appended to Claude Code's default system prompt), the initial query, and the model.
3708
- */
3709
- executions: components['schemas']['SessionExecutionWire'][];
3362
+ teams: components['schemas']['LinearTeam'][];
3710
3363
  };
3711
3364
  /**
3712
- * ListSessionRecordsResponse
3713
- * @description A session's stored transcript records, plus its pending inbox
3714
- * messages.
3365
+ * LinearIssueAction
3366
+ * @enum {string}
3367
+ */
3368
+ LinearIssueAction: 'opened';
3369
+ /**
3370
+ * LinearTeam
3371
+ * @description One team in the connected Linear organization.
3715
3372
  */
3716
- ListSessionRecordsResponse: {
3373
+ LinearTeam: {
3717
3374
  /**
3718
- * Earliest Feed Seq
3719
- * @description The retention head: the lowest feed_seq still stored, or null when the session has no stored records.
3375
+ * Id
3376
+ * @description The Linear team id.
3720
3377
  */
3721
- earliest_feed_seq?: number | null;
3378
+ id: string;
3722
3379
  /**
3723
- * Has More
3724
- * @description Whether records past this page remain (only meaningful with `limit`).
3725
- * @default false
3380
+ * Is Enabled
3381
+ * @description Whether Ellipsis is enabled for this team.
3726
3382
  */
3727
- has_more: boolean;
3383
+ is_enabled: boolean;
3728
3384
  /**
3729
- * Messages
3730
- * @description The open inbox slice (pending rows only): queued messages not yet consumed by a turn. Delivered history comes from records plus the /turns endpoint.
3731
- * @default []
3385
+ * Key
3386
+ * @description The team's short key (issue prefix).
3732
3387
  */
3733
- messages: components['schemas']['SessionMessageWire'][];
3388
+ key?: string | null;
3734
3389
  /**
3735
- * Records
3736
- * @description The session's records (transcript + lifecycle), ordered by feed_seq. Clients render each by (source, record_format, record_type). Pagination is opt-in (`after_seq` + `limit`); a bare call returns the full retained transcript.
3390
+ * Name
3391
+ * @description The team's display name.
3737
3392
  */
3738
- records: components['schemas']['SessionRecordWire'][];
3393
+ name: string;
3739
3394
  };
3740
3395
  /**
3741
- * ListSessionTurnsResponse
3742
- * @description A session's conversation structure: its turns and inbox messages.
3743
- * Both lists are empty for single-shot sessions.
3396
+ * LinearTeamsListResponse
3397
+ * @description The teams in the connected Linear organization.
3744
3398
  */
3745
- ListSessionTurnsResponse: {
3399
+ LinearTeamsListResponse: {
3746
3400
  /**
3747
- * Messages
3748
- * @description The whole inbox oldest-first (turn 0's query included), joined to the consuming turn via delivered_turn_id (null = still pending).
3401
+ * Organization Id
3402
+ * @description The Linear organization id.
3749
3403
  */
3750
- messages: components['schemas']['SessionMessage'][];
3404
+ organization_id: string;
3751
3405
  /**
3752
- * Turns
3753
- * @description The session's turns, ordered by turn_index.
3406
+ * Teams
3407
+ * @description The organization's teams.
3754
3408
  */
3755
- turns: components['schemas']['AgentTurn'][];
3409
+ teams: components['schemas']['LinearTeam'][];
3756
3410
  };
3757
3411
  /**
3758
- * ListSlackChannelsResponse
3759
- * @description The channels the Ellipsis app can see in the connected Slack
3760
- * workspace.
3412
+ * LinkedGithubIdentity
3413
+ * @description The GitHub identity linked to a Slack member.
3761
3414
  */
3762
- ListSlackChannelsResponse: {
3763
- /**
3764
- * Channels
3765
- * @description The workspace's channels.
3766
- */
3767
- channels: components['schemas']['SlackChannelSummary'][];
3415
+ LinkedGithubIdentity: {
3768
3416
  /**
3769
- * Team Id
3770
- * @description The Slack workspace (team) id.
3417
+ * Id
3418
+ * @description The linked GitHub account id.
3771
3419
  */
3772
- team_id: string;
3420
+ id: number;
3773
3421
  /**
3774
- * Team Name
3775
- * @description The Slack workspace name.
3422
+ * Login
3423
+ * @description The linked GitHub login, if known.
3776
3424
  */
3777
- team_name: string;
3425
+ login?: string | null;
3778
3426
  };
3779
3427
  /**
3780
- * ListSlackMembersResponse
3781
- * @description The human members of the connected Slack workspace (bots excluded).
3428
+ * LinkedSlackIdentity
3429
+ * @description The Slack identity linked to a GitHub member.
3782
3430
  */
3783
- ListSlackMembersResponse: {
3784
- /**
3785
- * Members
3786
- * @description The workspace's human members.
3787
- */
3788
- members: components['schemas']['SlackMemberSummary'][];
3431
+ LinkedSlackIdentity: {
3789
3432
  /**
3790
- * Team Id
3791
- * @description The Slack workspace (team) id.
3433
+ * Slack Email
3434
+ * @description The linked Slack user's email, if known.
3792
3435
  */
3793
- team_id: string;
3436
+ slack_email?: string | null;
3794
3437
  /**
3795
- * Team Name
3796
- * @description The Slack workspace name.
3438
+ * Slack User Id
3439
+ * @description The linked Slack user id.
3797
3440
  */
3798
- team_name: string;
3441
+ slack_user_id: string;
3799
3442
  };
3800
3443
  /**
3801
- * LogSearchHit
3802
- * @description One session record matching a Logs search query, denormalized with just
3803
- * enough session context to render a result row and deep-link to the session.
3804
- * The full record/transcript hydrates from the session detail page.
3444
+ * MemoriesListResponse
3445
+ * @description The organization's memories: the rendered index a reader scans, plus the
3446
+ * same entries structured. Content is fetched per memory.
3805
3447
  */
3806
- LogSearchHit: {
3807
- /** Agent Config Id */
3808
- agent_config_id?: string | null;
3809
- /** Agent Session Id */
3810
- agent_session_id: string;
3811
- /** Attribution Id */
3812
- attribution_id?: string | null;
3813
- attribution_type?: components['schemas']['AttributionType'] | null;
3448
+ MemoriesListResponse: {
3814
3449
  /**
3815
- * Created At
3816
- * Format: date-time
3450
+ * Index
3451
+ * @description The memories rendered as a markdown index — one line per memory carrying its id, path, and description, grouped by top-level prefix. Read this, then fetch the ids that matter.
3817
3452
  */
3818
- created_at: string;
3819
- /** Id */
3820
- id: string;
3821
- /** Output Prs */
3822
- output_prs?: components['schemas']['AgentSessionPr'][] | null;
3823
- /** Record Type */
3824
- record_type: string;
3825
- /** Session Execution Id */
3826
- session_execution_id: string | null;
3827
- session_source?: components['schemas']['AgentSessionSource'] | null;
3828
- session_status?: components['schemas']['AgentSessionStatus'] | null;
3829
- /** Snippet */
3830
- snippet: string;
3831
- /** Stream Seq */
3832
- stream_seq: number;
3833
- };
3834
- /**
3835
- * MemoryActorType
3836
- * @enum {string}
3837
- */
3838
- MemoryActorType: 'agent_session' | 'api_key' | 'user';
3839
- /**
3840
- * MemoryActorWire
3841
- * @description Who wrote a memory, derived from their credential.
3842
- */
3843
- MemoryActorWire: {
3453
+ index: string;
3844
3454
  /**
3845
- * Id
3846
- * @description The writer's identifier: the agent session id, the API key id, or the GitHub account id, matching `type`.
3455
+ * Memories
3456
+ * @description The same memories as structured entries, ordered by path.
3847
3457
  */
3848
- id: string;
3849
- /** @description The kind of credential that wrote the memory: agent_session (an agent writing from inside its sandbox), api_key, or user. */
3850
- type: components['schemas']['MemoryActorType'];
3458
+ memories: components['schemas']['MemorySummary'][];
3851
3459
  };
3852
3460
  /**
3853
- * MemoryStubWire
3854
- * @description One entry in the index: a memory with every field except `content`.
3855
- *
3856
- * Content is the only omission, and it's the whole reason this shape exists —
3857
- * an account can hold 2,000 memories of 100 KB each, so a listing that carried
3858
- * content would be a 200 MB response.
3461
+ * Memory
3462
+ * @description One memory, including its full markdown content.
3859
3463
  */
3860
- MemoryStubWire: {
3464
+ Memory: {
3465
+ /**
3466
+ * Content
3467
+ * @description The memory's markdown content.
3468
+ */
3469
+ content: string;
3861
3470
  /**
3862
3471
  * Content Sha256
3863
- * @description Hex SHA-256 of the content, usable as an `if_sha256` precondition.
3472
+ * @description Hex SHA-256 of the content, computed server-side. Pass it back as `if_sha256` on an edit or delete to fail instead of overwriting a change someone else made in the meantime.
3864
3473
  */
3865
3474
  content_sha256: string;
3866
3475
  /**
@@ -3870,10 +3479,10 @@ interface components {
3870
3479
  */
3871
3480
  created_at: string;
3872
3481
  /** @description The credential that created the memory. */
3873
- created_by: components['schemas']['MemoryActorWire'];
3482
+ created_by: components['schemas']['MemoryActor'];
3874
3483
  /**
3875
3484
  * Description
3876
- * @description The one-line summary of the memory.
3485
+ * @description The one-line summary shown in the index. This is what a reader sees before deciding to open the memory.
3877
3486
  */
3878
3487
  description: string;
3879
3488
  /**
@@ -3883,7 +3492,7 @@ interface components {
3883
3492
  id: string;
3884
3493
  /**
3885
3494
  * Path
3886
- * @description The memory's address within the organization.
3495
+ * @description The memory's address, unique within the organization, e.g. repos/acme/deploys.md.
3887
3496
  */
3888
3497
  path: string;
3889
3498
  /**
@@ -3893,21 +3502,46 @@ interface components {
3893
3502
  */
3894
3503
  updated_at: string;
3895
3504
  /** @description The credential that last wrote the memory. */
3896
- updated_by: components['schemas']['MemoryActorWire'];
3505
+ updated_by: components['schemas']['MemoryActor'];
3897
3506
  };
3898
3507
  /**
3899
- * MemoryWire
3900
- * @description One memory, including its full markdown content.
3508
+ * MemoryActor
3509
+ * @description Who wrote a memory, derived from their credential.
3901
3510
  */
3902
- MemoryWire: {
3511
+ MemoryActor: {
3903
3512
  /**
3904
- * Content
3905
- * @description The memory's markdown content.
3513
+ * Id
3514
+ * @description The writer's identifier: the agent session id, the API key id, or the GitHub account id, matching `type`.
3906
3515
  */
3907
- content: string;
3516
+ id: string;
3517
+ /** @description The kind of credential that wrote the memory: agent_session (an agent writing from inside its sandbox), api_key, or user. */
3518
+ type: components['schemas']['MemoryActorType'];
3519
+ };
3520
+ /**
3521
+ * MemoryActorType
3522
+ * @enum {string}
3523
+ */
3524
+ MemoryActorType: 'agent_session' | 'api_key' | 'user';
3525
+ /**
3526
+ * MemoryResponse
3527
+ * @description One memory.
3528
+ */
3529
+ MemoryResponse: {
3530
+ /** @description The memory. */
3531
+ memory: components['schemas']['Memory'];
3532
+ };
3533
+ /**
3534
+ * MemorySummary
3535
+ * @description One entry in the index: a memory with every field except `content`.
3536
+ *
3537
+ * Content is the only omission, and it's the whole reason this shape exists —
3538
+ * an account can hold 2,000 memories of 100 KB each, so a listing that carried
3539
+ * content would be a 200 MB response.
3540
+ */
3541
+ MemorySummary: {
3908
3542
  /**
3909
3543
  * Content Sha256
3910
- * @description Hex SHA-256 of the content, computed server-side. Pass it back as `if_sha256` on an edit or delete to fail instead of overwriting a change someone else made in the meantime.
3544
+ * @description Hex SHA-256 of the content, usable as an `if_sha256` precondition.
3911
3545
  */
3912
3546
  content_sha256: string;
3913
3547
  /**
@@ -3917,10 +3551,10 @@ interface components {
3917
3551
  */
3918
3552
  created_at: string;
3919
3553
  /** @description The credential that created the memory. */
3920
- created_by: components['schemas']['MemoryActorWire'];
3554
+ created_by: components['schemas']['MemoryActor'];
3921
3555
  /**
3922
3556
  * Description
3923
- * @description The one-line summary shown in the index. This is what a reader sees before deciding to open the memory.
3557
+ * @description The one-line summary of the memory.
3924
3558
  */
3925
3559
  description: string;
3926
3560
  /**
@@ -3930,7 +3564,7 @@ interface components {
3930
3564
  id: string;
3931
3565
  /**
3932
3566
  * Path
3933
- * @description The memory's address, unique within the organization, e.g. repos/acme/deploys.md.
3567
+ * @description The memory's address within the organization.
3934
3568
  */
3935
3569
  path: string;
3936
3570
  /**
@@ -3940,7 +3574,18 @@ interface components {
3940
3574
  */
3941
3575
  updated_at: string;
3942
3576
  /** @description The credential that last wrote the memory. */
3943
- updated_by: components['schemas']['MemoryActorWire'];
3577
+ updated_by: components['schemas']['MemoryActor'];
3578
+ };
3579
+ /** Model */
3580
+ Model: {
3581
+ /** Display Name */
3582
+ display_name: string;
3583
+ /** Id */
3584
+ id: string;
3585
+ /** Is Default Agent Model */
3586
+ is_default_agent_model: boolean;
3587
+ manufacturer: components['schemas']['ModelManufacturer'];
3588
+ rate_card: components['schemas']['ModelRateCardApi'];
3944
3589
  };
3945
3590
  /**
3946
3591
  * ModelManufacturer
@@ -4013,6 +3658,11 @@ interface components {
4013
3658
  */
4014
3659
  tokens: number;
4015
3660
  };
3661
+ /** ModelsListResponse */
3662
+ ModelsListResponse: {
3663
+ /** Models */
3664
+ models: components['schemas']['Model'][];
3665
+ };
4016
3666
  /**
4017
3667
  * OrganizationRole
4018
3668
  * @enum {string}
@@ -4268,7 +3918,7 @@ interface components {
4268
3918
  PutAgentDefaultRequest: {
4269
3919
  /**
4270
3920
  * Config Id
4271
- * @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`.
4272
3922
  */
4273
3923
  config_id: string;
4274
3924
  /**
@@ -4278,16 +3928,16 @@ interface components {
4278
3928
  repository?: string | null;
4279
3929
  };
4280
3930
  /**
4281
- * PutSandboxVariablesRequest
4282
- * @description Store environment variables for the account's sandboxes. Each variable
4283
- * is upserted by name: existing names are overwritten.
3931
+ * PutSecretsRequest
3932
+ * @description Store secrets for the account's sandboxes. Each secret is upserted by
3933
+ * name: existing names are overwritten.
4284
3934
  */
4285
- PutSandboxVariablesRequest: {
3935
+ PutSecretsRequest: {
4286
3936
  /**
4287
- * Variables
4288
- * @description The variables to store.
3937
+ * Secrets
3938
+ * @description The secrets to store.
4289
3939
  */
4290
- variables: components['schemas']['EnvironmentVariableInput'][];
3940
+ secrets: components['schemas']['SecretInput'][];
4291
3941
  };
4292
3942
  /** ReactIssue */
4293
3943
  ReactIssue: {
@@ -4369,10 +4019,10 @@ interface components {
4369
4019
  /** ReactSlackChannel */
4370
4020
  ReactSlackChannel: Record<string, never>;
4371
4021
  /**
4372
- * RecentPullRequestDTO
4022
+ * RecentPullRequest
4373
4023
  * @description One pull request in the recent-activity table.
4374
4024
  */
4375
- RecentPullRequestDTO: {
4025
+ RecentPullRequest: {
4376
4026
  /**
4377
4027
  * Additions
4378
4028
  * @description Lines added, when known.
@@ -4455,6 +4105,71 @@ interface components {
4455
4105
  */
4456
4106
  user_login: string;
4457
4107
  };
4108
+ /**
4109
+ * RecordHit
4110
+ * @description One session-log record matching a search query, denormalized with just
4111
+ * enough session context to render a result row and deep-link to the
4112
+ * session.
4113
+ */
4114
+ RecordHit: {
4115
+ /**
4116
+ * Attribution Id
4117
+ * @description The actor the session is attributed to; the key into the response's attributed_users map for github_user attributions.
4118
+ */
4119
+ attribution_id?: string | null;
4120
+ /** @description What kind of actor the session is attributed to. Only github_user attributions appear in the response's attributed_users map. */
4121
+ attribution_type?: components['schemas']['AttributionType'] | null;
4122
+ /**
4123
+ * Config Id
4124
+ * @description The agent config the session ran from, when it ran from a stored config.
4125
+ */
4126
+ config_id?: string | null;
4127
+ /**
4128
+ * Created At
4129
+ * Format: date-time
4130
+ * @description When the record was written.
4131
+ */
4132
+ created_at: string;
4133
+ /**
4134
+ * Execution Id
4135
+ * @description The session execution that produced the record, or null for session-scoped lifecycle records.
4136
+ */
4137
+ execution_id?: string | null;
4138
+ /**
4139
+ * Id
4140
+ * @description The matching record's unique identifier.
4141
+ */
4142
+ id: string;
4143
+ /**
4144
+ * Output Prs
4145
+ * @description Pull requests the session created, so a result row can show what it shipped without fetching the session.
4146
+ */
4147
+ output_prs?: components['schemas']['SessionPr'][] | null;
4148
+ /**
4149
+ * Record Type
4150
+ * @description The record's event type.
4151
+ */
4152
+ record_type: string;
4153
+ /**
4154
+ * Session Id
4155
+ * @description The session the record belongs to.
4156
+ */
4157
+ session_id: string;
4158
+ /** @description Where the matching session came from. */
4159
+ session_source?: components['schemas']['SessionSource'] | null;
4160
+ /** @description The matching session's status. */
4161
+ session_status?: components['schemas']['SessionStatus'] | null;
4162
+ /**
4163
+ * Snippet
4164
+ * @description A short window of the indexed text around the first match.
4165
+ */
4166
+ snippet: string;
4167
+ /**
4168
+ * Stream Seq
4169
+ * @description The record's position within its execution's stream.
4170
+ */
4171
+ stream_seq: number;
4172
+ };
4458
4173
  /**
4459
4174
  * RecordSource
4460
4175
  * @description `session_records.source` — the client render switch. `lifecycle` rows are
@@ -4502,68 +4217,30 @@ interface components {
4502
4217
  * Prs
4503
4218
  * @description Unfiltered pull-request count for this repository in the window.
4504
4219
  */
4505
- prs: number;
4506
- /**
4507
- * Repo Full Name
4508
- * @description The repository's full "owner/name" identifier.
4509
- */
4510
- repo_full_name: string;
4511
- };
4512
- RepositoryFilter: {
4513
- /**
4514
- * Exclude
4515
- * @default []
4516
- */
4517
- exclude: string[];
4518
- /**
4519
- * Include
4520
- * @default []
4521
- */
4522
- include: string[];
4523
- } | string[];
4524
- /**
4525
- * RepositorySelection
4526
- * @enum {string}
4527
- */
4528
- RepositorySelection: 'all' | 'selected';
4529
- /**
4530
- * RepositorySummary
4531
- * @description A repository connected to the account's GitHub installation — a valid
4532
- * target for `repository` when creating an agent config and for the
4533
- * repository lists inside an agent config.
4534
- */
4535
- RepositorySummary: {
4536
- /**
4537
- * Default Branch
4538
- * @description The repository's default branch.
4539
- */
4540
- default_branch?: string | null;
4541
- /**
4542
- * Description
4543
- * @description The repository's description on GitHub.
4544
- */
4545
- description?: string | null;
4546
- /**
4547
- * Full Name
4548
- * @description The repository's full "owner/name" identifier.
4549
- */
4550
- full_name: string;
4220
+ prs: number;
4551
4221
  /**
4552
- * Id
4553
- * @description The repository's GitHub id.
4222
+ * Repo Full Name
4223
+ * @description The repository's full "owner/name" identifier.
4554
4224
  */
4555
- id: number;
4225
+ repo_full_name: string;
4226
+ };
4227
+ RepositoryFilter: {
4556
4228
  /**
4557
- * Name
4558
- * @description The repository name, without the owner.
4229
+ * Exclude
4230
+ * @default []
4559
4231
  */
4560
- name: string;
4232
+ exclude: string[];
4561
4233
  /**
4562
- * Private
4563
- * @description Whether the repository is private.
4234
+ * Include
4235
+ * @default []
4564
4236
  */
4565
- private: boolean;
4566
- };
4237
+ include: string[];
4238
+ } | string[];
4239
+ /**
4240
+ * RepositorySelection
4241
+ * @enum {string}
4242
+ */
4243
+ RepositorySelection: 'all' | 'selected';
4567
4244
  /**
4568
4245
  * ResolvedReviewScope
4569
4246
  * @description The range a minted review actually covers, read back off the (possibly
@@ -5348,6 +5025,30 @@ interface components {
5348
5025
  */
5349
5026
  reviews: number;
5350
5027
  };
5028
+ /**
5029
+ * ReviewsListResponse
5030
+ * @description A page of reviews matching the query, newest first. `findings` are
5031
+ * omitted (counters only); automatically-triggered reviews are included, so
5032
+ * this answers "show me every review on this pull request".
5033
+ */
5034
+ ReviewsListResponse: {
5035
+ /**
5036
+ * Has More
5037
+ * @description Whether more results exist past this page.
5038
+ * @default false
5039
+ */
5040
+ has_more: boolean;
5041
+ /**
5042
+ * Next Cursor
5043
+ * @description Pass as `cursor` to fetch the next page. Null on the last page. Opaque — echo it back rather than parsing it.
5044
+ */
5045
+ next_cursor?: string | null;
5046
+ /**
5047
+ * Reviews
5048
+ * @description The matching reviews.
5049
+ */
5050
+ reviews: components['schemas']['Review'][];
5051
+ };
5351
5052
  /**
5352
5053
  * ReviewsTotals
5353
5054
  * @description Window-wide review totals, computed over the full set rather than the
@@ -5402,11 +5103,11 @@ interface components {
5402
5103
  */
5403
5104
  RunStatus: 'scheduled' | 'starting' | 'working' | 'waiting' | 'done' | 'failed' | 'stopped' | 'cancelled' | 'retrying';
5404
5105
  /**
5405
- * SandboxEnvironmentVariableSummary
5106
+ * Secret
5406
5107
  * @description A stored variable WITHOUT its value. Values are write-only: once
5407
5108
  * uploaded they are injected into sandboxes but never returned to a caller.
5408
5109
  */
5409
- SandboxEnvironmentVariableSummary: {
5110
+ Secret: {
5410
5111
  /**
5411
5112
  * Created At
5412
5113
  * Format: date-time
@@ -5423,117 +5124,310 @@ interface components {
5423
5124
  * Format: date-time
5424
5125
  * @description When the variable's value was last updated.
5425
5126
  */
5426
- updated_at: string;
5427
- };
5428
- /** SavedAgentConfig */
5429
- SavedAgentConfig: {
5430
- agent_config: components['schemas']['AgentConfig'];
5431
- agent_config_source_details?: components['schemas']['AgentConfigSourceGithub'] | null;
5127
+ updated_at: string;
5128
+ };
5129
+ /**
5130
+ * SecretInput
5131
+ * @description One environment variable to store.
5132
+ */
5133
+ SecretInput: {
5134
+ /**
5135
+ * Name
5136
+ * @description The variable name. Must start with a letter or underscore and contain only letters, digits, and underscores.
5137
+ */
5138
+ name: string;
5139
+ /**
5140
+ * Value
5141
+ * @description The variable value. Write-only: it is injected into sandboxes but never returned by the API.
5142
+ */
5143
+ value: string;
5144
+ };
5145
+ /**
5146
+ * SecretsListResponse
5147
+ * @description The account's sandbox environment variables, names and timestamps only —
5148
+ * values are never returned.
5149
+ */
5150
+ SecretsListResponse: {
5151
+ /**
5152
+ * Secrets
5153
+ * @description The stored secrets.
5154
+ */
5155
+ secrets: components['schemas']['Secret'][];
5156
+ };
5157
+ /**
5158
+ * SendSessionMessageRequest
5159
+ * @description A human message posted into a durable session's conversation.
5160
+ * Delivered to the live agent at the next turn boundary, or wakes the
5161
+ * session when idle.
5162
+ */
5163
+ SendSessionMessageRequest: {
5164
+ /**
5165
+ * Idempotency Key
5166
+ * @description Optional retry-safety key, unique per (session, key): a retry with the same key returns the original message — no duplicate message, no double turn, no double spend. The SDK auto-generates one per send.
5167
+ */
5168
+ idempotency_key?: string | null;
5169
+ /**
5170
+ * Message
5171
+ * @description The message text.
5172
+ */
5173
+ message: string;
5174
+ };
5175
+ /**
5176
+ * SentryAction
5177
+ * @enum {string}
5178
+ */
5179
+ SentryAction: 'issue_alert' | 'metric_alert';
5180
+ /**
5181
+ * SentryOrganizationSummary
5182
+ * @description One connected Sentry organization.
5183
+ */
5184
+ SentryOrganizationSummary: {
5185
+ /**
5186
+ * Integration Id
5187
+ * @description The Sentry integration id.
5188
+ */
5189
+ integration_id: string;
5190
+ /**
5191
+ * Organization Slug
5192
+ * @description The Sentry organization's slug.
5193
+ */
5194
+ organization_slug: string;
5195
+ };
5196
+ /**
5197
+ * SentryOrganizationsListResponse
5198
+ * @description The connected Sentry organizations; empty if none are connected.
5199
+ */
5200
+ SentryOrganizationsListResponse: {
5201
+ /**
5202
+ * Organizations
5203
+ * @description The connected Sentry organizations.
5204
+ */
5205
+ organizations: components['schemas']['SentryOrganizationSummary'][];
5206
+ };
5207
+ /**
5208
+ * Session
5209
+ * @description An agent session: one conversation with an agent, from trigger to
5210
+ * terminal state. Returned by `GET /sessions/{id}` and carried by the
5211
+ * session stream's `session`/`snapshot` frames — REST and stream never
5212
+ * disagree about what a session looks like.
5213
+ */
5214
+ Session: {
5215
+ /** @description The GitHub user the session is attributed to, when the attribution is a GitHub user. */
5216
+ attributed_user?: components['schemas']['GithubAccountSnippet'] | null;
5217
+ /**
5218
+ * Attribution Id
5219
+ * @description Identifier of the principal the session is attributed to.
5220
+ */
5221
+ attribution_id?: string | null;
5222
+ /** @description Kind of principal the session is attributed to (e.g. a GitHub user or an API key). */
5223
+ attribution_type?: components['schemas']['AttributionType'] | null;
5224
+ /**
5225
+ * Client Version
5226
+ * @description Version of the client that started the session, if reported.
5227
+ */
5228
+ client_version?: string | null;
5229
+ /**
5230
+ * Config Id
5231
+ * @description Identifier of the saved agent config the session ran on, if any.
5232
+ */
5233
+ config_id?: string | null;
5234
+ /**
5235
+ * Config Override
5236
+ * @description The partial-config diff applied for this run; null when the config was unmodified.
5237
+ */
5238
+ config_override?: {
5239
+ [key: string]: unknown;
5240
+ } | null;
5241
+ /**
5242
+ * Context Repository
5243
+ * @description The "owner/name" repository context the session was started in, if any.
5244
+ */
5245
+ context_repository?: string | null;
5246
+ /**
5247
+ * Cost Fee
5248
+ * @description Platform fee in millicents.
5249
+ * @default 0
5250
+ */
5251
+ cost_fee: number;
5252
+ /**
5253
+ * Cost Sandbox Cpu
5254
+ * @description Sandbox CPU spend in millicents.
5255
+ * @default 0
5256
+ */
5257
+ cost_sandbox_cpu: number;
5258
+ /**
5259
+ * Cost Sandbox Memory
5260
+ * @description Sandbox memory spend in millicents.
5261
+ * @default 0
5262
+ */
5263
+ cost_sandbox_memory: number;
5264
+ /**
5265
+ * Cost Tokens
5266
+ * @description Token spend in millicents. The session's grand total cost is the sum of cost_tokens, cost_sandbox_cpu, cost_sandbox_memory, and cost_fee.
5267
+ */
5268
+ cost_tokens: number;
5269
+ /**
5270
+ * Created At
5271
+ * Format: date-time
5272
+ * @description When the session was created.
5273
+ */
5274
+ created_at: string;
5275
+ /** @description How the session's config was resolved from the account's defaults, when no explicit config was given. */
5276
+ default_resolution?: components['schemas']['DefaultResolution'] | null;
5277
+ /** @description How the session ended; null until it is terminal. */
5278
+ exit_status?: components['schemas']['SessionExitStatus'] | null;
5279
+ /** @description The coding-agent harness the session runs on. */
5280
+ harness: components['schemas']['Harness'];
5281
+ /**
5282
+ * Id
5283
+ * @description Unique identifier of the session.
5284
+ */
5285
+ id: string;
5286
+ /**
5287
+ * Last Activity At
5288
+ * @description When the session last showed activity.
5289
+ */
5290
+ last_activity_at?: string | null;
5291
+ /**
5292
+ * Last Message At
5293
+ * @description When the session last received a message.
5294
+ */
5295
+ last_message_at?: string | null;
5296
+ /**
5297
+ * Live Summary
5298
+ * @description A live summary of the session's progress while it runs.
5299
+ */
5300
+ live_summary?: string | null;
5301
+ /**
5302
+ * Metadata
5303
+ * @description Caller-supplied metadata key-value pairs.
5304
+ * @default {}
5305
+ */
5306
+ metadata: {
5307
+ [key: string]: string;
5308
+ };
5309
+ /**
5310
+ * Output Prs
5311
+ * @description Pull requests the session created or updated.
5312
+ */
5313
+ output_prs?: components['schemas']['SessionPr'][] | null;
5314
+ /** @description How this session relates to its parent session, if any. */
5315
+ parent_kind?: components['schemas']['ParentKind'] | null;
5316
+ /**
5317
+ * Parent Session Id
5318
+ * @description Identifier of the parent session that spawned this one, if any.
5319
+ */
5320
+ parent_session_id?: string | null;
5321
+ /**
5322
+ * Prompt
5323
+ * @description The per-session prompt the session was started with.
5324
+ */
5325
+ prompt?: string | null;
5326
+ /** @description Whether a client may send this session a message and, when it may not, the reason to show instead of a composer. */
5327
+ prompting: components['schemas']['SessionPrompting'];
5328
+ /**
5329
+ * Replayed From Session Id
5330
+ * @description Identifier of the original session this one was replayed from, if it was started via replay.
5331
+ */
5332
+ replayed_from_session_id?: string | null;
5333
+ /**
5334
+ * Resolved Budget Cents
5335
+ * @description The spend budget resolved for this session, in cents.
5336
+ */
5337
+ resolved_budget_cents: number;
5338
+ /** @description Where the resolved budget came from. */
5339
+ resolved_budget_source: components['schemas']['BudgetSource'];
5340
+ /**
5341
+ * Sandbox Id
5342
+ * @description Identifier of the sandbox the session runs in, if any.
5343
+ */
5344
+ sandbox_id?: string | null;
5345
+ /**
5346
+ * Session Key
5347
+ * @description Key identifying the durable conversation this session belongs to, or null for single-shot sessions.
5348
+ */
5349
+ session_key?: string | null;
5350
+ /** @description Lifecycle state of the durable conversation, or null for sessions without one. */
5351
+ session_state?: components['schemas']['SessionState'] | null;
5352
+ /** @description Where the session came from (e.g. react, manual, api, cli, mention, cron, laptop). */
5353
+ source: components['schemas']['SessionSource'];
5354
+ /** @description Execution status of the session. */
5355
+ status: components['schemas']['SessionStatus'];
5356
+ /**
5357
+ * Status Reason
5358
+ * @description Human-readable reason for the current status, when there is one.
5359
+ */
5360
+ status_reason?: string | null;
5432
5361
  /**
5433
- * Created At
5434
- * Format: date-time
5362
+ * Stopped At
5363
+ * @description When a stop was requested, if one was.
5435
5364
  */
5436
- created_at: string;
5437
- /** Customer Id */
5438
- customer_id: string;
5365
+ stopped_at?: string | null;
5439
5366
  /**
5440
- * Deleted
5441
- * @default false
5367
+ * Stopped By
5368
+ * @description GitHub account id of the user who stopped the session, if known.
5442
5369
  */
5443
- deleted: boolean;
5444
- edited_by?: components['schemas']['GithubAccountSnippet'] | null;
5445
- /** Id */
5446
- id: string;
5370
+ stopped_by?: number | null;
5371
+ /** @description The GitHub user who stopped the session, if it was stopped. */
5372
+ stopped_by_user?: components['schemas']['GithubAccountSnippet'] | null;
5373
+ /** @description The public status projection; null for laptop-synced sessions. */
5374
+ surface?: components['schemas']['SessionSurface'] | null;
5447
5375
  /**
5448
- * Is Pull Request Head Preview
5449
- * @default false
5376
+ * Tokens Cache Creation
5377
+ * @description Tokens written to the prompt cache.
5378
+ * @default 0
5450
5379
  */
5451
- is_pull_request_head_preview: boolean;
5452
- /** Last Agent Session Created At */
5453
- last_agent_session_created_at?: string | null;
5454
- /** Last Agent Session Id */
5455
- last_agent_session_id?: string | null;
5456
- /** Last Sync Error */
5457
- last_sync_error?: string | null;
5458
- /** Last Synced Commit Sha */
5459
- last_synced_commit_sha?: string | null;
5460
- /** Pending Pull Request Url */
5461
- pending_pull_request_url?: string | null;
5380
+ tokens_cache_creation: number;
5462
5381
  /**
5463
- * Updated At
5464
- * Format: date-time
5382
+ * Tokens Cache Read
5383
+ * @description Tokens read from the prompt cache.
5384
+ * @default 0
5465
5385
  */
5466
- updated_at: string;
5467
- };
5468
- /**
5469
- * SearchSessionsWireResponse
5470
- * @description A page of session search results.
5471
- */
5472
- SearchSessionsWireResponse: {
5386
+ tokens_cache_read: number;
5473
5387
  /**
5474
- * Attributed Users
5475
- * @description GitHub account snippets for the user attributions among the results, keyed by attribution_id, so callers can render author logins and avatars.
5388
+ * Tokens Input
5389
+ * @description Input tokens used.
5390
+ * @default 0
5476
5391
  */
5477
- attributed_users: {
5478
- [key: string]: components['schemas']['GithubAccountSnippet'];
5479
- };
5392
+ tokens_input: number;
5480
5393
  /**
5481
- * Results
5482
- * @description The matching sessions, newest first.
5394
+ * Tokens Model
5395
+ * @description The model the token counts are attributed to.
5483
5396
  */
5484
- results: components['schemas']['SessionSearchResultWire'][];
5485
- };
5486
- /**
5487
- * SendSessionMessageRequest
5488
- * @description A human message posted into a durable session's conversation.
5489
- * Delivered to the live agent at the next turn boundary, or wakes the
5490
- * session when idle.
5491
- */
5492
- SendSessionMessageRequest: {
5397
+ tokens_model: string;
5493
5398
  /**
5494
- * Idempotency Key
5495
- * @description Optional retry-safety key, unique per (session, key): a retry with the same key returns the original message — no duplicate message, no double turn, no double spend. The SDK auto-generates one per send.
5399
+ * Tokens Output
5400
+ * @description Output tokens used.
5401
+ * @default 0
5496
5402
  */
5497
- idempotency_key?: string | null;
5403
+ tokens_output: number;
5498
5404
  /**
5499
- * Message
5500
- * @description The message text.
5405
+ * Tokens Total
5406
+ * @description Total tokens used by the session.
5407
+ * @default 0
5501
5408
  */
5502
- message: string;
5503
- };
5504
- /**
5505
- * SentryAction
5506
- * @enum {string}
5507
- */
5508
- SentryAction: 'issue_alert' | 'metric_alert';
5509
- /**
5510
- * SentryOrganizationSummary
5511
- * @description One connected Sentry organization.
5512
- */
5513
- SentryOrganizationSummary: {
5409
+ tokens_total: number;
5514
5410
  /**
5515
- * Integration Id
5516
- * @description The Sentry integration id.
5411
+ * Updated At
5412
+ * Format: date-time
5413
+ * @description When the session was last updated.
5517
5414
  */
5518
- integration_id: string;
5415
+ updated_at: string;
5519
5416
  /**
5520
- * Organization Slug
5521
- * @description The Sentry organization's slug.
5417
+ * Webhook Id
5418
+ * @description Identifier of the webhook event that triggered the session, if any.
5522
5419
  */
5523
- organization_slug: string;
5420
+ webhook_id?: string | null;
5421
+ /** @description Type of the webhook event that triggered the session, if any. */
5422
+ webhook_type?: components['schemas']['WebhookType'] | null;
5524
5423
  };
5525
5424
  /**
5526
- * SessionExecutionWire
5425
+ * SessionExecution
5527
5426
  * @description One runtime attempt of a session — the initial start, a cold wake of a
5528
5427
  * durable conversation, or an infrastructure retry — including the launch
5529
5428
  * context the model was actually given.
5530
5429
  */
5531
- SessionExecutionWire: {
5532
- /**
5533
- * Agent Session Id
5534
- * @description Identifier of the session this execution belongs to.
5535
- */
5536
- agent_session_id: string;
5430
+ SessionExecution: {
5537
5431
  /**
5538
5432
  * Attempt Index
5539
5433
  * @description Infrastructure-retry counter within one wake.
@@ -5575,6 +5469,11 @@ interface components {
5575
5469
  * @description Whether this execution resumed a prior conversation (a cold wake with the previous state restored).
5576
5470
  */
5577
5471
  resumed: boolean;
5472
+ /**
5473
+ * Session Id
5474
+ * @description Identifier of the session this execution belongs to.
5475
+ */
5476
+ session_id: string;
5578
5477
  /** @description Execution status. */
5579
5478
  status: components['schemas']['ExecutionStatus'];
5580
5479
  /**
@@ -5588,6 +5487,28 @@ interface components {
5588
5487
  */
5589
5488
  wake_index: number;
5590
5489
  };
5490
+ /**
5491
+ * SessionExecutionsListResponse
5492
+ * @description A session's executions with the launch context each was given.
5493
+ */
5494
+ SessionExecutionsListResponse: {
5495
+ /**
5496
+ * Executions
5497
+ * @description The session's executions (initial start, cold wakes, infra retries), ordered by execution_index. Each carries the launch context the harness was given: system_prompt_append (the text appended to Claude Code's default system prompt), the initial query, and the model.
5498
+ */
5499
+ executions: components['schemas']['SessionExecution'][];
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';
5591
5512
  /**
5592
5513
  * SessionLiveness
5593
5514
  * @description The durable conversation axis (backs the surfaced `session` field).
@@ -5595,12 +5516,12 @@ interface components {
5595
5516
  */
5596
5517
  SessionLiveness: 'alive' | 'sleeping' | 'closed';
5597
5518
  /**
5598
- * SessionLogSegmentView
5519
+ * SessionLogSegment
5599
5520
  * @description One immutable archived segment of the session log: its feed_seq range
5600
5521
  * plus a short-lived presigned download URL. Segments are gzip members —
5601
5522
  * download them in order and concatenate for the whole log.
5602
5523
  */
5603
- SessionLogSegmentView: {
5524
+ SessionLogSegment: {
5604
5525
  /**
5605
5526
  * Bytes
5606
5527
  * @description The segment's size in bytes.
@@ -5634,64 +5555,10 @@ interface components {
5634
5555
  };
5635
5556
  /**
5636
5557
  * SessionMessage
5637
- * @description One entry in a session's inbox: an event, rendered into a user message,
5638
- * waiting to be consumed by a turn. body is the RENDERED text (pointers to
5639
- * code/events, never embedded diffs), so a turn's initial query is built from
5640
- * the pending messages without re-fetching the trigger.
5641
- */
5642
- SessionMessage: {
5643
- /** Agent Session Id */
5644
- agent_session_id: string;
5645
- /** Author */
5646
- author?: string | null;
5647
- /** Body */
5648
- body: string;
5649
- /**
5650
- * Closes Session
5651
- * @default false
5652
- */
5653
- closes_session: boolean;
5654
- /**
5655
- * Created At
5656
- * Format: date-time
5657
- */
5658
- created_at: string;
5659
- /** Delivered At */
5660
- delivered_at?: string | null;
5661
- /** Delivered Turn Id */
5662
- delivered_turn_id?: string | null;
5663
- /** Feed Seq */
5664
- feed_seq?: number | null;
5665
- /** Id */
5666
- id: string;
5667
- /** Idempotency Key */
5668
- idempotency_key?: string | null;
5669
- /** Platform Ts */
5670
- platform_ts?: string | null;
5671
- /** Sender Attribution Id */
5672
- sender_attribution_id?: string | null;
5673
- sender_attribution_type?: components['schemas']['AttributionType'] | null;
5674
- status: components['schemas']['SessionMessageStatus'];
5675
- /** Webhook Id */
5676
- webhook_id?: string | null;
5677
- webhook_type?: components['schemas']['WebhookType'] | null;
5678
- };
5679
- /**
5680
- * SessionMessageStatus
5681
- * @enum {string}
5682
- */
5683
- SessionMessageStatus: 'pending' | 'delivered';
5684
- /**
5685
- * SessionMessageWire
5686
5558
  * @description One message in a session's inbox: what a queued message renders and
5687
5559
  * retires on. The webhook provenance internals stay off the wire.
5688
5560
  */
5689
- SessionMessageWire: {
5690
- /**
5691
- * Agent Session Id
5692
- * @description Identifier of the session the message belongs to.
5693
- */
5694
- agent_session_id: string;
5561
+ SessionMessage: {
5695
5562
  /**
5696
5563
  * Author
5697
5564
  * @description Display attribution of the message's sender.
@@ -5735,9 +5602,46 @@ interface components {
5735
5602
  sender_attribution_id?: string | null;
5736
5603
  /** @description Kind of principal that sent the message, if attributed. */
5737
5604
  sender_attribution_type?: components['schemas']['AttributionType'] | null;
5605
+ /**
5606
+ * Session Id
5607
+ * @description Identifier of the session the message belongs to.
5608
+ */
5609
+ session_id: string;
5738
5610
  /** @description Delivery status of the message. */
5739
5611
  status: components['schemas']['SessionMessageStatus'];
5740
5612
  };
5613
+ /**
5614
+ * SessionMessageResponse
5615
+ * @description One inbox message.
5616
+ */
5617
+ SessionMessageResponse: {
5618
+ /** @description The message. */
5619
+ message: components['schemas']['SessionMessage'];
5620
+ };
5621
+ /**
5622
+ * SessionMessageStatus
5623
+ * @enum {string}
5624
+ */
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
+ };
5741
5645
  /**
5742
5646
  * SessionPrompting
5743
5647
  * @description The prompt-affordance projection. `enabled` answers "would a send work",
@@ -5755,17 +5659,12 @@ interface components {
5755
5659
  surface_name?: string | null;
5756
5660
  };
5757
5661
  /**
5758
- * SessionRecordWire
5662
+ * SessionRecord
5759
5663
  * @description One entry of a session's log: a stable envelope around the harness's
5760
5664
  * native payload. Internal-only columns are deliberately absent so internal
5761
5665
  * model evolution stays free.
5762
5666
  */
5763
- SessionRecordWire: {
5764
- /**
5765
- * Agent Session Id
5766
- * @description Identifier of the session the record belongs to.
5767
- */
5768
- agent_session_id: string;
5667
+ SessionRecord: {
5769
5668
  /**
5770
5669
  * Agent Turn Id
5771
5670
  * @description Identifier of the turn the record belongs to, if any.
@@ -5819,6 +5718,11 @@ interface components {
5819
5718
  * @description The record's type within its format.
5820
5719
  */
5821
5720
  record_type: string;
5721
+ /**
5722
+ * Session Id
5723
+ * @description Identifier of the session the record belongs to.
5724
+ */
5725
+ session_id: string;
5822
5726
  /**
5823
5727
  * Session Message Id
5824
5728
  * @description Correlates a user-echo record back to the session message it echoes, so clients can retire queued messages by id.
@@ -5840,10 +5744,70 @@ interface components {
5840
5744
  tools?: string[] | null;
5841
5745
  };
5842
5746
  /**
5843
- * SessionSearchResultWire
5747
+ * SessionRecordsListResponse
5748
+ * @description A session's stored transcript records, plus its pending inbox
5749
+ * messages.
5750
+ */
5751
+ SessionRecordsListResponse: {
5752
+ /**
5753
+ * Earliest Feed Seq
5754
+ * @description The retention head: the lowest feed_seq still stored, or null when the session has no stored records.
5755
+ */
5756
+ earliest_feed_seq?: number | null;
5757
+ /**
5758
+ * Has More
5759
+ * @description Whether more results exist past this page.
5760
+ * @default false
5761
+ */
5762
+ has_more: boolean;
5763
+ /**
5764
+ * Messages
5765
+ * @description The open inbox slice (pending rows only): queued messages not yet consumed by a turn. Delivered history comes from the records themselves.
5766
+ * @default []
5767
+ */
5768
+ messages: components['schemas']['SessionMessage'][];
5769
+ /**
5770
+ * Next Cursor
5771
+ * @description Pass as `cursor` to fetch the next page. Null on the last page. Opaque — echo it back rather than parsing it.
5772
+ */
5773
+ next_cursor?: string | null;
5774
+ /**
5775
+ * Records
5776
+ * @description The session's records (transcript + lifecycle), ordered by feed_seq. Clients render each by (source, record_format, record_type). Pagination is opt-in (`cursor` + `limit`); a bare call returns the full retained transcript.
5777
+ */
5778
+ records: components['schemas']['SessionRecord'][];
5779
+ };
5780
+ /**
5781
+ * SessionResponse
5782
+ * @description One session.
5783
+ */
5784
+ SessionResponse: {
5785
+ /** @description The session. */
5786
+ session: components['schemas']['Session'];
5787
+ };
5788
+ /**
5789
+ * SessionSearchResponse
5790
+ * @description A page of session search results.
5791
+ */
5792
+ SessionSearchResponse: {
5793
+ /**
5794
+ * Attributed Users
5795
+ * @description GitHub account snippets for the user attributions among the results, keyed by attribution_id, so callers can render author logins and avatars.
5796
+ */
5797
+ attributed_users: {
5798
+ [key: string]: components['schemas']['GithubAccountSnippet'];
5799
+ };
5800
+ /**
5801
+ * Results
5802
+ * @description The matching sessions, newest first.
5803
+ */
5804
+ results: components['schemas']['SessionSearchResult'][];
5805
+ };
5806
+ /**
5807
+ * SessionSearchResult
5844
5808
  * @description One search hit: a session plus how and where the query matched it.
5845
5809
  */
5846
- SessionSearchResultWire: {
5810
+ SessionSearchResult: {
5847
5811
  /**
5848
5812
  * Matched
5849
5813
  * @description Which search arms matched this session: "records", "recap", "pr", and/or "similar".
@@ -5865,9 +5829,9 @@ interface components {
5865
5829
  * @description Matching session-log entries, capped per session.
5866
5830
  * @default []
5867
5831
  */
5868
- record_hits: components['schemas']['LogSearchHit'][];
5832
+ record_hits: components['schemas']['RecordHit'][];
5869
5833
  /** @description The matching session. */
5870
- session: components['schemas']['AgentSessionWire'];
5834
+ session: components['schemas']['Session'];
5871
5835
  };
5872
5836
  /**
5873
5837
  * SessionSearchScope
@@ -5876,16 +5840,26 @@ interface components {
5876
5840
  * @enum {string}
5877
5841
  */
5878
5842
  SessionSearchScope: 'records' | 'recaps' | 'both';
5843
+ /**
5844
+ * SessionSource
5845
+ * @enum {string}
5846
+ */
5847
+ SessionSource: 'react' | 'manual' | 'api' | 'cli' | 'mention' | 'cron' | 'laptop';
5879
5848
  /**
5880
5849
  * SessionState
5881
5850
  * @description Lifecycle of a keyed (multi-turn) session — the durable conversation.
5882
- * 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
5883
5852
  * moves to agent_turns in a later slice. IDLE: alive, waiting for the next
5884
5853
  * message. RUNNING: a turn is executing. CLOSED: the conversation is done and
5885
5854
  * its sandbox/snapshots are torn down.
5886
5855
  * @enum {string}
5887
5856
  */
5888
5857
  SessionState: 'idle' | 'running' | 'closed';
5858
+ /**
5859
+ * SessionStatus
5860
+ * @enum {string}
5861
+ */
5862
+ SessionStatus: 'scheduled' | 'creating_sandbox' | 'running' | 'retrying' | 'completed' | 'error' | 'cancelled' | 'stopped';
5889
5863
  /**
5890
5864
  * SessionSurface
5891
5865
  * @description The three fields we expose. All `None` for an un-keyed (laptop) session.
@@ -5901,10 +5875,32 @@ interface components {
5901
5875
  status: string | null;
5902
5876
  };
5903
5877
  /**
5904
- * SlackChannelSummary
5878
+ * SessionsListResponse
5879
+ * @description A page of sessions in the lean wire shape.
5880
+ */
5881
+ SessionsListResponse: {
5882
+ /**
5883
+ * Has More
5884
+ * @description Whether more results exist past this page.
5885
+ * @default false
5886
+ */
5887
+ has_more: boolean;
5888
+ /**
5889
+ * Next Cursor
5890
+ * @description Pass as `cursor` to fetch the next page. Null on the last page. Opaque — echo it back rather than parsing it.
5891
+ */
5892
+ next_cursor?: string | null;
5893
+ /**
5894
+ * Sessions
5895
+ * @description Lean wire rows — the same shape GET /sessions/{id} and the stream's session frames carry. The heavy blobs (config snapshot, input/output) live on the detail endpoints.
5896
+ */
5897
+ sessions: components['schemas']['Session'][];
5898
+ };
5899
+ /**
5900
+ * SlackChannel
5905
5901
  * @description One channel in the connected Slack workspace.
5906
5902
  */
5907
- SlackChannelSummary: {
5903
+ SlackChannel: {
5908
5904
  /**
5909
5905
  * Id
5910
5906
  * @description The Slack channel id.
@@ -5926,6 +5922,28 @@ interface components {
5926
5922
  */
5927
5923
  name?: string | null;
5928
5924
  };
5925
+ /**
5926
+ * SlackChannelsListResponse
5927
+ * @description The channels the Ellipsis app can see in the connected Slack
5928
+ * workspace.
5929
+ */
5930
+ SlackChannelsListResponse: {
5931
+ /**
5932
+ * Channels
5933
+ * @description The workspace's channels.
5934
+ */
5935
+ channels: components['schemas']['SlackChannel'][];
5936
+ /**
5937
+ * Team Id
5938
+ * @description The Slack workspace (team) id.
5939
+ */
5940
+ team_id: string;
5941
+ /**
5942
+ * Team Name
5943
+ * @description The Slack workspace name.
5944
+ */
5945
+ team_name: string;
5946
+ };
5929
5947
  /**
5930
5948
  * SlackIntegrationSummary
5931
5949
  * @description The account's connected Slack workspace.
@@ -5948,11 +5966,11 @@ interface components {
5948
5966
  team_name: string;
5949
5967
  };
5950
5968
  /**
5951
- * SlackMemberSummary
5969
+ * SlackMember
5952
5970
  * @description A human member of the connected Slack workspace. `github` is set when
5953
5971
  * this user is linked to a GitHub account.
5954
5972
  */
5955
- SlackMemberSummary: {
5973
+ SlackMember: {
5956
5974
  /**
5957
5975
  * Display Name
5958
5976
  * @description The member's display name, if set.
@@ -5981,6 +5999,27 @@ interface components {
5981
5999
  */
5982
6000
  real_name?: string | null;
5983
6001
  };
6002
+ /**
6003
+ * SlackMembersListResponse
6004
+ * @description The human members of the connected Slack workspace (bots excluded).
6005
+ */
6006
+ SlackMembersListResponse: {
6007
+ /**
6008
+ * Members
6009
+ * @description The workspace's human members.
6010
+ */
6011
+ members: components['schemas']['SlackMember'][];
6012
+ /**
6013
+ * Team Id
6014
+ * @description The Slack workspace (team) id.
6015
+ */
6016
+ team_id: string;
6017
+ /**
6018
+ * Team Name
6019
+ * @description The Slack workspace name.
6020
+ */
6021
+ team_name: string;
6022
+ };
5984
6023
  /**
5985
6024
  * StartAgentSessionRequest
5986
6025
  * @description Parameters for starting a new agent session.
@@ -5990,7 +6029,7 @@ interface components {
5990
6029
  config?: components['schemas']['AgentConfig'] | null;
5991
6030
  /**
5992
6031
  * Config Id
5993
- * @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`.
5994
6033
  */
5995
6034
  config_id?: string | null;
5996
6035
  /**
@@ -6014,261 +6053,57 @@ interface components {
6014
6053
  /** @description Laptop-to-cloud handoff parameters. When set, the built-in handoff config is used and config_id/config/template_id must be omitted. */
6015
6054
  handoff?: components['schemas']['HandoffAgentSessionParams'] | null;
6016
6055
  /**
6017
- * Idle Start
6018
- * @description Start the session with no initial message: the sandbox spins up, the agent starts idle at the prompt, and the first message sent to the session opens turn 0. Mutually exclusive with prompt and handoff. Ignored when the resolved config is not interactive (an ephemeral run keeps its kickoff — it can never receive a message).
6019
- * @default false
6020
- */
6021
- idle_start: boolean;
6022
- /**
6023
- * Metadata
6024
- * @description Arbitrary string key/value metadata stored on the session.
6025
- * @default {}
6026
- */
6027
- metadata: {
6028
- [key: string]: string;
6029
- };
6030
- /**
6031
- * Prompt
6032
- * @description Per-run instructions appended to the initial query after the config's shared system prompt. Applies regardless of which config source is used. For a handoff, this is the developer's handoff note.
6033
- */
6034
- prompt?: string | null;
6035
- /**
6036
- * Repository
6037
- * @description The "owner/name" repository the client is standing in (the CLI's detected git remote). Selects the repo rung of the defaults ladder, and is merged into the sandbox repository set (cloned at its default branch) regardless of which config source is used. An unknown or foreign repo is ignored.
6038
- */
6039
- repository?: string | null;
6040
- /**
6041
- * Template Id
6042
- * @description A maintained run-on-demand template slug (e.g. "ellipsis-helper"), resolved server-side to its config. At most one of config_id, config, or template_id may be set; if none is, the run resolves the account's default-config ladder (repo default, then account default, then the platform default config).
6043
- */
6044
- template_id?: string | null;
6045
- };
6046
- /**
6047
- * StartAgentSessionResponse
6048
- * @description The started session, plus explicit fields describing how its config
6049
- * was resolved.
6050
- */
6051
- StartAgentSessionResponse: {
6052
- /**
6053
- * Agent Config Id
6054
- * @description Identifier of the saved agent config the session ran on, if any.
6055
- */
6056
- agent_config_id?: string | null;
6057
- /** @description The GitHub user the session is attributed to, when the attribution is a GitHub user. */
6058
- attributed_user?: components['schemas']['GithubAccountSnippet'] | null;
6059
- /**
6060
- * Attribution Id
6061
- * @description Identifier of the principal the session is attributed to.
6062
- */
6063
- attribution_id?: string | null;
6064
- /** @description Kind of principal the session is attributed to (e.g. a GitHub user or an API key). */
6065
- attribution_type?: components['schemas']['AttributionType'] | null;
6066
- /**
6067
- * Client Version
6068
- * @description Version of the client that started the session, if reported.
6069
- */
6070
- client_version?: string | null;
6071
- /**
6072
- * Config Override
6073
- * @description The partial-config diff applied for this run; null when the config was unmodified.
6074
- */
6075
- config_override?: {
6076
- [key: string]: unknown;
6077
- } | null;
6078
- /**
6079
- * Context Repository
6080
- * @description The "owner/name" repository context the session was started in, if any.
6081
- */
6082
- context_repository?: string | null;
6083
- /**
6084
- * Cost Fee
6085
- * @description Platform fee in millicents.
6086
- * @default 0
6087
- */
6088
- cost_fee: number;
6089
- /**
6090
- * Cost Sandbox Cpu
6091
- * @description Sandbox CPU spend in millicents.
6092
- * @default 0
6093
- */
6094
- cost_sandbox_cpu: number;
6095
- /**
6096
- * Cost Sandbox Memory
6097
- * @description Sandbox memory spend in millicents.
6098
- * @default 0
6099
- */
6100
- cost_sandbox_memory: number;
6101
- /**
6102
- * Cost Tokens
6103
- * @description Token spend in millicents. The session's grand total cost is the sum of cost_tokens, cost_sandbox_cpu, cost_sandbox_memory, and cost_fee.
6104
- */
6105
- cost_tokens: number;
6106
- /**
6107
- * Created At
6108
- * Format: date-time
6109
- * @description When the session was created.
6110
- */
6111
- created_at: string;
6112
- /**
6113
- * Customer Id
6114
- * @description Identifier of the account that owns the session.
6115
- */
6116
- customer_id: string;
6117
- /** @description How the session's config was resolved from the account's defaults, when no explicit config was given. */
6118
- default_resolution?: components['schemas']['DefaultResolution'] | null;
6119
- /** @description How the session ended; null until it is terminal. */
6120
- exit_status?: components['schemas']['AgentSessionExitStatus'] | null;
6121
- /** @description The coding-agent harness the session runs on. */
6122
- harness: components['schemas']['Harness'];
6123
- /**
6124
- * Id
6125
- * @description Unique identifier of the session.
6126
- */
6127
- id: string;
6128
- /**
6129
- * Last Activity At
6130
- * @description When the session last showed activity.
6131
- */
6132
- last_activity_at?: string | null;
6133
- /**
6134
- * Last Message At
6135
- * @description When the session last received a message.
6136
- */
6137
- last_message_at?: string | null;
6138
- /**
6139
- * Live Summary
6140
- * @description A live summary of the session's progress while it runs.
6141
- */
6142
- live_summary?: string | null;
6143
- /**
6144
- * Metadata
6145
- * @description Caller-supplied metadata key-value pairs.
6146
- * @default {}
6147
- */
6148
- metadata: {
6149
- [key: string]: string;
6150
- };
6151
- /**
6152
- * Output Prs
6153
- * @description Pull requests the session created or updated.
6154
- */
6155
- output_prs?: components['schemas']['AgentSessionPr'][] | null;
6156
- /**
6157
- * Parent Agent Session Id
6158
- * @description Identifier of the parent session that spawned this one, if any.
6159
- */
6160
- parent_agent_session_id?: string | null;
6161
- /** @description How this session relates to its parent session, if any. */
6162
- parent_kind?: components['schemas']['ParentKind'] | null;
6163
- /**
6164
- * Prompt
6165
- * @description The per-session prompt the session was started with.
6166
- */
6167
- prompt?: string | null;
6168
- /** @description Whether a client may send this session a message and, when it may not, the reason to show instead of a composer. */
6169
- prompting: components['schemas']['SessionPrompting'];
6170
- /**
6171
- * Replayed From Session Id
6172
- * @description Identifier of the original session this one was replayed from, if it was started via replay.
6173
- */
6174
- replayed_from_session_id?: string | null;
6175
- /** @description Which rung of the defaults ladder chose the config (repo_default | account_default | none). Null when an explicit config/config_id/template_id (or a handoff) bypassed resolution. */
6176
- resolution_source?: components['schemas']['DefaultResolution'] | null;
6177
- /**
6178
- * Resolved Budget Cents
6179
- * @description The spend budget resolved for this session, in cents.
6180
- */
6181
- resolved_budget_cents: number;
6182
- /** @description Where the resolved budget came from. */
6183
- resolved_budget_source: components['schemas']['BudgetSource'];
6184
- /**
6185
- * Resolved Config Name
6186
- * @description The name of the config the session runs under.
6187
- */
6188
- resolved_config_name?: string | null;
6189
- /**
6190
- * Sandbox Id
6191
- * @description Identifier of the sandbox the session runs in, if any.
6192
- */
6193
- sandbox_id?: string | null;
6194
- /**
6195
- * Session Key
6196
- * @description Key identifying the durable conversation this session belongs to, or null for single-shot sessions.
6197
- */
6198
- session_key?: string | null;
6199
- /** @description Lifecycle state of the durable conversation, or null for sessions without one. */
6200
- session_state?: components['schemas']['SessionState'] | null;
6201
- /** @description Where the session came from (e.g. react, manual, api, cli, mention, cron, laptop). */
6202
- source: components['schemas']['AgentSessionSource'];
6203
- /** @description Execution status of the session. */
6204
- status: components['schemas']['AgentSessionStatus'];
6205
- /**
6206
- * Status Reason
6207
- * @description Human-readable reason for the current status, when there is one.
6208
- */
6209
- status_reason?: string | null;
6210
- /**
6211
- * Stopped At
6212
- * @description When a stop was requested, if one was.
6213
- */
6214
- stopped_at?: string | null;
6215
- /**
6216
- * Stopped By
6217
- * @description GitHub account id of the user who stopped the session, if known.
6218
- */
6219
- stopped_by?: number | null;
6220
- /** @description The GitHub user who stopped the session, if it was stopped. */
6221
- stopped_by_user?: components['schemas']['GithubAccountSnippet'] | null;
6222
- /** @description The public status projection; null for laptop-synced sessions. */
6223
- surface?: components['schemas']['SessionSurface'] | null;
6224
- /**
6225
- * Tokens Cache Creation
6226
- * @description Tokens written to the prompt cache.
6227
- * @default 0
6228
- */
6229
- tokens_cache_creation: number;
6230
- /**
6231
- * Tokens Cache Read
6232
- * @description Tokens read from the prompt cache.
6233
- * @default 0
6056
+ * Idle Start
6057
+ * @description Start the session with no initial message: the sandbox spins up, the agent starts idle at the prompt, and the first message sent to the session opens turn 0. Mutually exclusive with prompt and handoff. Ignored when the resolved config is not interactive (an ephemeral run keeps its kickoff — it can never receive a message).
6058
+ * @default false
6234
6059
  */
6235
- tokens_cache_read: number;
6060
+ idle_start: boolean;
6236
6061
  /**
6237
- * Tokens Input
6238
- * @description Input tokens used.
6239
- * @default 0
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.
6240
6064
  */
6241
- tokens_input: number;
6065
+ input?: {
6066
+ [key: string]: unknown;
6067
+ } | null;
6242
6068
  /**
6243
- * Tokens Model
6244
- * @description The model the token counts are attributed to.
6069
+ * Metadata
6070
+ * @description Arbitrary string key/value metadata stored on the session.
6071
+ * @default {}
6245
6072
  */
6246
- tokens_model: string;
6073
+ metadata: {
6074
+ [key: string]: string;
6075
+ };
6247
6076
  /**
6248
- * Tokens Output
6249
- * @description Output tokens used.
6250
- * @default 0
6077
+ * Prompt
6078
+ * @description Per-run instructions appended to the initial query after the config's shared system prompt. Applies regardless of which config source is used. For a handoff, this is the developer's handoff note.
6251
6079
  */
6252
- tokens_output: number;
6080
+ prompt?: string | null;
6253
6081
  /**
6254
- * Tokens Total
6255
- * @description Total tokens used by the session.
6256
- * @default 0
6082
+ * Repository
6083
+ * @description The "owner/name" repository the client is standing in (the CLI's detected git remote). Selects the repo rung of the defaults ladder, and is merged into the sandbox repository set (cloned at its default branch) regardless of which config source is used. An unknown or foreign repo is ignored.
6257
6084
  */
6258
- tokens_total: number;
6085
+ repository?: string | null;
6259
6086
  /**
6260
- * Updated At
6261
- * Format: date-time
6262
- * @description When the session was last updated.
6087
+ * Template Id
6088
+ * @description A maintained run-on-demand template slug (e.g. "ellipsis-helper"), resolved server-side to its config. At most one of config_id, config, or template_id may be set; if none is, the run resolves the account's default-config ladder (repo default, then account default, then the platform default config).
6263
6089
  */
6264
- updated_at: string;
6090
+ template_id?: string | null;
6091
+ };
6092
+ /**
6093
+ * StartAgentSessionResponse
6094
+ * @description The started session, plus explicit fields describing how its config
6095
+ * was resolved.
6096
+ */
6097
+ StartAgentSessionResponse: {
6098
+ /** @description Which rung of the defaults ladder chose the config (repo_default | account_default | none). Null when an explicit config/config_id/template_id (or a handoff) bypassed resolution. */
6099
+ resolution_source?: components['schemas']['DefaultResolution'] | null;
6265
6100
  /**
6266
- * Webhook Id
6267
- * @description Identifier of the webhook event that triggered the session, if any.
6101
+ * Resolved Config Name
6102
+ * @description The name of the config the session runs under.
6268
6103
  */
6269
- webhook_id?: string | null;
6270
- /** @description Type of the webhook event that triggered the session, if any. */
6271
- webhook_type?: components['schemas']['WebhookType'] | null;
6104
+ resolved_config_name?: string | null;
6105
+ /** @description The started session. */
6106
+ session: components['schemas']['Session'];
6272
6107
  };
6273
6108
  /**
6274
6109
  * StartCliAuthResponse
@@ -6307,17 +6142,6 @@ interface components {
6307
6142
  */
6308
6143
  verification_uri_complete: string;
6309
6144
  };
6310
- /** SupportedModelApi */
6311
- SupportedModelApi: {
6312
- /** Display Name */
6313
- display_name: string;
6314
- /** Id */
6315
- id: string;
6316
- /** Is Default Agent Model */
6317
- is_default_agent_model: boolean;
6318
- manufacturer: components['schemas']['ModelManufacturer'];
6319
- rate_card: components['schemas']['ModelRateCardApi'];
6320
- };
6321
6145
  /**
6322
6146
  * SyncAgentSessionRequest
6323
6147
  * @description One hook-driven transcript sync from a developer laptop. The CLI reads
@@ -6584,7 +6408,7 @@ interface operations {
6584
6408
  [name: string]: unknown;
6585
6409
  };
6586
6410
  content: {
6587
- 'application/json': components['schemas']['ListAgentConfigsResponse'];
6411
+ 'application/json': components['schemas']['AgentConfigsListResponse'];
6588
6412
  };
6589
6413
  };
6590
6414
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -6637,7 +6461,7 @@ interface operations {
6637
6461
  [name: string]: unknown;
6638
6462
  };
6639
6463
  content: {
6640
- 'application/json': components['schemas']['CreatedAgentConfig'];
6464
+ 'application/json': components['schemas']['CreateAgentConfigResponse'];
6641
6465
  };
6642
6466
  };
6643
6467
  /** @description Provide exactly one of config or template_id; or the config, path, or target branch is invalid. */
@@ -6676,7 +6500,7 @@ interface operations {
6676
6500
  'application/json': components['schemas']['ErrorResponse'];
6677
6501
  };
6678
6502
  };
6679
- /** @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. */
6680
6504
  409: {
6681
6505
  headers: {
6682
6506
  [name: string]: unknown;
@@ -6685,13 +6509,13 @@ interface operations {
6685
6509
  'application/json': components['schemas']['ErrorResponse'];
6686
6510
  };
6687
6511
  };
6688
- /** @description Validation Error */
6512
+ /** @description The agent's name contains no usable characters. */
6689
6513
  422: {
6690
6514
  headers: {
6691
6515
  [name: string]: unknown;
6692
6516
  };
6693
6517
  content: {
6694
- 'application/json': components['schemas']['HTTPValidationError'];
6518
+ 'application/json': components['schemas']['ErrorResponse'];
6695
6519
  };
6696
6520
  };
6697
6521
  };
@@ -6715,7 +6539,7 @@ interface operations {
6715
6539
  [name: string]: unknown;
6716
6540
  };
6717
6541
  content: {
6718
- 'application/json': components['schemas']['SavedAgentConfig'];
6542
+ 'application/json': components['schemas']['AgentConfigResponse'];
6719
6543
  };
6720
6544
  };
6721
6545
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -6773,7 +6597,7 @@ interface operations {
6773
6597
  [name: string]: unknown;
6774
6598
  };
6775
6599
  content: {
6776
- 'application/json': components['schemas']['ListAgentDefaultsV1Response'];
6600
+ 'application/json': components['schemas']['AgentDefaultsListResponse'];
6777
6601
  };
6778
6602
  };
6779
6603
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -6826,7 +6650,7 @@ interface operations {
6826
6650
  [name: string]: unknown;
6827
6651
  };
6828
6652
  content: {
6829
- 'application/json': components['schemas']['AgentDefaultV1'];
6653
+ 'application/json': components['schemas']['AgentDefaultResponse'];
6830
6654
  };
6831
6655
  };
6832
6656
  /** @description The config is not eligible as a default: its pull request has not merged, or it is disabled. */
@@ -6952,7 +6776,7 @@ interface operations {
6952
6776
  [name: string]: unknown;
6953
6777
  };
6954
6778
  content: {
6955
- 'application/json': components['schemas']['ListAgentTemplatesResponse'];
6779
+ 'application/json': components['schemas']['AgentTemplatesListResponse'];
6956
6780
  };
6957
6781
  };
6958
6782
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7050,6 +6874,7 @@ interface operations {
7050
6874
  status?: components['schemas']['AlertStatus'] | null;
7051
6875
  source?: components['schemas']['AlertSource'] | null;
7052
6876
  limit?: number;
6877
+ cursor?: string | null;
7053
6878
  };
7054
6879
  header?: {
7055
6880
  'user-agent'?: string | null;
@@ -7065,7 +6890,7 @@ interface operations {
7065
6890
  [name: string]: unknown;
7066
6891
  };
7067
6892
  content: {
7068
- 'application/json': components['schemas']['ListAlertsResponse'];
6893
+ 'application/json': components['schemas']['AlertsListResponse'];
7069
6894
  };
7070
6895
  };
7071
6896
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7116,7 +6941,7 @@ interface operations {
7116
6941
  [name: string]: unknown;
7117
6942
  };
7118
6943
  content: {
7119
- 'application/json': components['schemas']['Alert'];
6944
+ 'application/json': components['schemas']['AlertResponse'];
7120
6945
  };
7121
6946
  };
7122
6947
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7176,7 +7001,7 @@ interface operations {
7176
7001
  [name: string]: unknown;
7177
7002
  };
7178
7003
  content: {
7179
- 'application/json': components['schemas']['Alert'];
7004
+ 'application/json': components['schemas']['AlertResponse'];
7180
7005
  };
7181
7006
  };
7182
7007
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7578,8 +7403,9 @@ interface operations {
7578
7403
  list_files: {
7579
7404
  parameters: {
7580
7405
  query?: {
7581
- agent_session_id?: string | null;
7406
+ session_id?: string | null;
7582
7407
  limit?: number;
7408
+ cursor?: string | null;
7583
7409
  };
7584
7410
  header?: {
7585
7411
  'user-agent'?: string | null;
@@ -7595,7 +7421,7 @@ interface operations {
7595
7421
  [name: string]: unknown;
7596
7422
  };
7597
7423
  content: {
7598
- 'application/json': components['schemas']['ListFilesResponse'];
7424
+ 'application/json': components['schemas']['FilesListResponse'];
7599
7425
  };
7600
7426
  };
7601
7427
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7882,7 +7708,7 @@ interface operations {
7882
7708
  [name: string]: unknown;
7883
7709
  };
7884
7710
  content: {
7885
- 'application/json': components['schemas']['ListGithubMembersResponse'];
7711
+ 'application/json': components['schemas']['GithubMembersListResponse'];
7886
7712
  };
7887
7713
  };
7888
7714
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7931,7 +7757,7 @@ interface operations {
7931
7757
  [name: string]: unknown;
7932
7758
  };
7933
7759
  content: {
7934
- 'application/json': components['schemas']['ListGithubRepositoriesResponse'];
7760
+ 'application/json': components['schemas']['GithubRepositoriesListResponse'];
7935
7761
  };
7936
7762
  };
7937
7763
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -7980,7 +7806,7 @@ interface operations {
7980
7806
  [name: string]: unknown;
7981
7807
  };
7982
7808
  content: {
7983
- 'application/json': components['schemas']['ListLinearTeamsResponse'];
7809
+ 'application/json': components['schemas']['LinearTeamsListResponse'];
7984
7810
  };
7985
7811
  };
7986
7812
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -8038,7 +7864,7 @@ interface operations {
8038
7864
  [name: string]: unknown;
8039
7865
  };
8040
7866
  content: {
8041
- 'application/json': components['schemas']['ListSentryOrganizationsResponse'];
7867
+ 'application/json': components['schemas']['SentryOrganizationsListResponse'];
8042
7868
  };
8043
7869
  };
8044
7870
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -8087,7 +7913,7 @@ interface operations {
8087
7913
  [name: string]: unknown;
8088
7914
  };
8089
7915
  content: {
8090
- 'application/json': components['schemas']['ListSlackChannelsResponse'];
7916
+ 'application/json': components['schemas']['SlackChannelsListResponse'];
8091
7917
  };
8092
7918
  };
8093
7919
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -8145,7 +7971,7 @@ interface operations {
8145
7971
  [name: string]: unknown;
8146
7972
  };
8147
7973
  content: {
8148
- 'application/json': components['schemas']['ListSlackMembersResponse'];
7974
+ 'application/json': components['schemas']['SlackMembersListResponse'];
8149
7975
  };
8150
7976
  };
8151
7977
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -8255,7 +8081,7 @@ interface operations {
8255
8081
  [name: string]: unknown;
8256
8082
  };
8257
8083
  content: {
8258
- 'application/json': components['schemas']['ListMemoriesWireResponse'];
8084
+ 'application/json': components['schemas']['MemoriesListResponse'];
8259
8085
  };
8260
8086
  };
8261
8087
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -8308,7 +8134,7 @@ interface operations {
8308
8134
  [name: string]: unknown;
8309
8135
  };
8310
8136
  content: {
8311
- 'application/json': components['schemas']['MemoryWire'];
8137
+ 'application/json': components['schemas']['MemoryResponse'];
8312
8138
  };
8313
8139
  };
8314
8140
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -8368,7 +8194,7 @@ interface operations {
8368
8194
  [name: string]: unknown;
8369
8195
  };
8370
8196
  content: {
8371
- 'application/json': components['schemas']['MemoryWire'];
8197
+ 'application/json': components['schemas']['MemoryResponse'];
8372
8198
  };
8373
8199
  };
8374
8200
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -8432,7 +8258,7 @@ interface operations {
8432
8258
  [name: string]: unknown;
8433
8259
  };
8434
8260
  content: {
8435
- 'application/json': components['schemas']['MemoryWire'];
8261
+ 'application/json': components['schemas']['MemoryResponse'];
8436
8262
  };
8437
8263
  };
8438
8264
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -8569,7 +8395,7 @@ interface operations {
8569
8395
  [name: string]: unknown;
8570
8396
  };
8571
8397
  content: {
8572
- 'application/json': components['schemas']['GetSupportedModelsResponse'];
8398
+ 'application/json': components['schemas']['ModelsListResponse'];
8573
8399
  };
8574
8400
  };
8575
8401
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -8609,6 +8435,7 @@ interface operations {
8609
8435
  pull_request_number?: number | null;
8610
8436
  status?: components['schemas']['CodeReviewRunStatus'] | null;
8611
8437
  limit?: number;
8438
+ cursor?: string | null;
8612
8439
  };
8613
8440
  header?: {
8614
8441
  'user-agent'?: string | null;
@@ -8624,7 +8451,7 @@ interface operations {
8624
8451
  [name: string]: unknown;
8625
8452
  };
8626
8453
  content: {
8627
- 'application/json': components['schemas']['ListReviewsResponse'];
8454
+ 'application/json': components['schemas']['ReviewsListResponse'];
8628
8455
  };
8629
8456
  };
8630
8457
  /** @description Filtering by repository requires both owner and repo (and pull_request_number requires them too). */
@@ -8814,7 +8641,7 @@ interface operations {
8814
8641
  };
8815
8642
  };
8816
8643
  };
8817
- list_sandbox_variables: {
8644
+ list_secrets: {
8818
8645
  parameters: {
8819
8646
  query?: never;
8820
8647
  header?: {
@@ -8831,7 +8658,7 @@ interface operations {
8831
8658
  [name: string]: unknown;
8832
8659
  };
8833
8660
  content: {
8834
- 'application/json': components['schemas']['GetSandboxVariablesResponse'];
8661
+ 'application/json': components['schemas']['SecretsListResponse'];
8835
8662
  };
8836
8663
  };
8837
8664
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -8863,7 +8690,7 @@ interface operations {
8863
8690
  };
8864
8691
  };
8865
8692
  };
8866
- put_sandbox_variables: {
8693
+ put_secrets: {
8867
8694
  parameters: {
8868
8695
  query?: never;
8869
8696
  header?: {
@@ -8874,7 +8701,7 @@ interface operations {
8874
8701
  };
8875
8702
  requestBody: {
8876
8703
  content: {
8877
- 'application/json': components['schemas']['PutSandboxVariablesRequest'];
8704
+ 'application/json': components['schemas']['PutSecretsRequest'];
8878
8705
  };
8879
8706
  };
8880
8707
  responses: {
@@ -8884,7 +8711,7 @@ interface operations {
8884
8711
  [name: string]: unknown;
8885
8712
  };
8886
8713
  content: {
8887
- 'application/json': components['schemas']['GetSandboxVariablesResponse'];
8714
+ 'application/json': components['schemas']['SecretsListResponse'];
8888
8715
  };
8889
8716
  };
8890
8717
  /** @description A variable name is invalid, or the batch would exceed the per-account variable limit. */
@@ -8925,7 +8752,7 @@ interface operations {
8925
8752
  };
8926
8753
  };
8927
8754
  };
8928
- delete_sandbox_variable: {
8755
+ delete_secret: {
8929
8756
  parameters: {
8930
8757
  query?: never;
8931
8758
  header?: {
@@ -8939,13 +8766,11 @@ interface operations {
8939
8766
  requestBody?: never;
8940
8767
  responses: {
8941
8768
  /** @description Successful Response */
8942
- 200: {
8769
+ 204: {
8943
8770
  headers: {
8944
8771
  [name: string]: unknown;
8945
8772
  };
8946
- content: {
8947
- 'application/json': components['schemas']['GetSandboxVariablesResponse'];
8948
- };
8773
+ content?: never;
8949
8774
  };
8950
8775
  /** @description The bearer token is missing, invalid, or revoked. */
8951
8776
  401: {
@@ -8979,12 +8804,14 @@ interface operations {
8979
8804
  list_agent_sessions: {
8980
8805
  parameters: {
8981
8806
  query?: {
8807
+ /** @description A saved config id, or the agent's `ellipsis.name`. */
8982
8808
  config_id?: string | null;
8983
- source?: components['schemas']['AgentSessionSource'][] | null;
8809
+ source?: components['schemas']['SessionSource'][] | null;
8984
8810
  days?: number | null;
8985
8811
  start?: string | null;
8986
8812
  end?: string | null;
8987
8813
  limit?: number;
8814
+ cursor?: string | null;
8988
8815
  /** @description A GitHub account id (see GET /v1/integrations/github/members); scopes the list to sessions attributed to that developer. */
8989
8816
  author_id?: number | null;
8990
8817
  /** @description "owner/name" (exact) or a bare repo name, matched the same way as on GET /v1/sessions/search. Sessions whose repository is named only inside their agent config — dashboard starts, cron, handoffs — do not match. */
@@ -9006,7 +8833,7 @@ interface operations {
9006
8833
  [name: string]: unknown;
9007
8834
  };
9008
8835
  content: {
9009
- 'application/json': components['schemas']['ListAgentSessionsResponse'];
8836
+ 'application/json': components['schemas']['SessionsListResponse'];
9010
8837
  };
9011
8838
  };
9012
8839
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -9062,7 +8889,7 @@ interface operations {
9062
8889
  'application/json': components['schemas']['StartAgentSessionResponse'];
9063
8890
  };
9064
8891
  };
9065
- /** @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. */
9066
8893
  400: {
9067
8894
  headers: {
9068
8895
  [name: string]: unknown;
@@ -9089,7 +8916,7 @@ interface operations {
9089
8916
  'application/json': components['schemas']['ErrorResponse'];
9090
8917
  };
9091
8918
  };
9092
- /** @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. */
9093
8920
  404: {
9094
8921
  headers: {
9095
8922
  [name: string]: unknown;
@@ -9107,13 +8934,13 @@ interface operations {
9107
8934
  'application/json': components['schemas']['ErrorResponse'];
9108
8935
  };
9109
8936
  };
9110
- /** @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. */
9111
8938
  422: {
9112
8939
  headers: {
9113
8940
  [name: string]: unknown;
9114
8941
  };
9115
8942
  content: {
9116
- 'application/json': components['schemas']['HTTPValidationError'];
8943
+ 'application/json': components['schemas']['ErrorResponse'];
9117
8944
  };
9118
8945
  };
9119
8946
  };
@@ -9123,15 +8950,15 @@ interface operations {
9123
8950
  query: {
9124
8951
  q: string;
9125
8952
  scope?: components['schemas']['SessionSearchScope'];
9126
- source?: components['schemas']['AgentSessionSource'][] | null;
8953
+ source?: components['schemas']['SessionSource'][] | null;
9127
8954
  /** @description Attributed GitHub user account ids. */
9128
8955
  author_id?: number[] | null;
9129
8956
  /** @description Saved agent config ids (ORed with author_id). */
9130
- agent_config_id?: string[] | null;
8957
+ config_id?: string[] | null;
9131
8958
  session_ids?: string[] | null;
9132
8959
  /** @description "owner/name" (exact) or a bare repo name. */
9133
8960
  repo?: string | null;
9134
- status?: components['schemas']['AgentSessionStatus'][] | null;
8961
+ status?: components['schemas']['SessionStatus'][] | null;
9135
8962
  start?: string | null;
9136
8963
  end?: string | null;
9137
8964
  limit?: number;
@@ -9150,10 +8977,10 @@ interface operations {
9150
8977
  [name: string]: unknown;
9151
8978
  };
9152
8979
  content: {
9153
- 'application/json': components['schemas']['SearchSessionsWireResponse'];
8980
+ 'application/json': components['schemas']['SessionSearchResponse'];
9154
8981
  };
9155
8982
  };
9156
- /** @description The search query is too short, or limit is out of range. */
8983
+ /** @description The search query is too short. */
9157
8984
  400: {
9158
8985
  headers: {
9159
8986
  [name: string]: unknown;
@@ -9281,7 +9108,7 @@ interface operations {
9281
9108
  [name: string]: unknown;
9282
9109
  };
9283
9110
  content: {
9284
- 'application/json': components['schemas']['AgentSessionWire'];
9111
+ 'application/json': components['schemas']['SessionResponse'];
9285
9112
  };
9286
9113
  };
9287
9114
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -9341,7 +9168,7 @@ interface operations {
9341
9168
  [name: string]: unknown;
9342
9169
  };
9343
9170
  content: {
9344
- 'application/json': components['schemas']['ListSessionExecutionsResponse'];
9171
+ 'application/json': components['schemas']['SessionExecutionsListResponse'];
9345
9172
  };
9346
9173
  };
9347
9174
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -9382,7 +9209,7 @@ interface operations {
9382
9209
  };
9383
9210
  };
9384
9211
  };
9385
- get_agent_session_ide: {
9212
+ export_agent_session: {
9386
9213
  parameters: {
9387
9214
  query?: never;
9388
9215
  header?: {
@@ -9401,7 +9228,7 @@ interface operations {
9401
9228
  [name: string]: unknown;
9402
9229
  };
9403
9230
  content: {
9404
- 'application/json': components['schemas']['GetSessionIdeResponse'];
9231
+ 'application/json': components['schemas']['GetSessionLogResponse'];
9405
9232
  };
9406
9233
  };
9407
9234
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -9431,15 +9258,6 @@ interface operations {
9431
9258
  'application/json': components['schemas']['ErrorResponse'];
9432
9259
  };
9433
9260
  };
9434
- /** @description The session's sandbox is not running; send it a message to wake it first. */
9435
- 409: {
9436
- headers: {
9437
- [name: string]: unknown;
9438
- };
9439
- content: {
9440
- 'application/json': components['schemas']['ErrorResponse'];
9441
- };
9442
- };
9443
9261
  /** @description Validation Error */
9444
9262
  422: {
9445
9263
  headers: {
@@ -9451,7 +9269,7 @@ interface operations {
9451
9269
  };
9452
9270
  };
9453
9271
  };
9454
- get_agent_session_log: {
9272
+ get_agent_session_ide: {
9455
9273
  parameters: {
9456
9274
  query?: never;
9457
9275
  header?: {
@@ -9470,7 +9288,7 @@ interface operations {
9470
9288
  [name: string]: unknown;
9471
9289
  };
9472
9290
  content: {
9473
- 'application/json': components['schemas']['GetSessionLogResponse'];
9291
+ 'application/json': components['schemas']['GetSessionIdeResponse'];
9474
9292
  };
9475
9293
  };
9476
9294
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -9500,6 +9318,15 @@ interface operations {
9500
9318
  'application/json': components['schemas']['ErrorResponse'];
9501
9319
  };
9502
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
+ };
9503
9330
  /** @description Validation Error */
9504
9331
  422: {
9505
9332
  headers: {
@@ -9534,7 +9361,7 @@ interface operations {
9534
9361
  [name: string]: unknown;
9535
9362
  };
9536
9363
  content: {
9537
- 'application/json': components['schemas']['SessionMessageWire'];
9364
+ 'application/json': components['schemas']['SessionMessageResponse'];
9538
9365
  };
9539
9366
  };
9540
9367
  /** @description The message is empty. */
@@ -9593,7 +9420,7 @@ interface operations {
9593
9420
  };
9594
9421
  };
9595
9422
  };
9596
- get_agent_session_port: {
9423
+ get_agent_session_output: {
9597
9424
  parameters: {
9598
9425
  query?: never;
9599
9426
  header?: {
@@ -9601,19 +9428,18 @@ interface operations {
9601
9428
  };
9602
9429
  path: {
9603
9430
  session_id: string;
9604
- port: number;
9605
9431
  };
9606
9432
  cookie?: never;
9607
9433
  };
9608
9434
  requestBody?: never;
9609
9435
  responses: {
9610
- /** @description Successful Response */
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. */
9611
9437
  200: {
9612
9438
  headers: {
9613
9439
  [name: string]: unknown;
9614
9440
  };
9615
9441
  content: {
9616
- 'application/json': components['schemas']['GetSessionPortResponse'];
9442
+ 'application/json': Record<string, never>;
9617
9443
  };
9618
9444
  };
9619
9445
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -9634,7 +9460,7 @@ interface operations {
9634
9460
  'application/json': components['schemas']['ErrorResponse'];
9635
9461
  };
9636
9462
  };
9637
- /** @description No such session in your account, or the port is not a valid TCP port. */
9463
+ /** @description No such session in your account, the agent declares no output schema, the session has not completed, or it produced no output. */
9638
9464
  404: {
9639
9465
  headers: {
9640
9466
  [name: string]: unknown;
@@ -9643,15 +9469,6 @@ interface operations {
9643
9469
  'application/json': components['schemas']['ErrorResponse'];
9644
9470
  };
9645
9471
  };
9646
- /** @description The session's sandbox is not running; send it a message to wake it first. */
9647
- 409: {
9648
- headers: {
9649
- [name: string]: unknown;
9650
- };
9651
- content: {
9652
- 'application/json': components['schemas']['ErrorResponse'];
9653
- };
9654
- };
9655
9472
  /** @description Validation Error */
9656
9473
  422: {
9657
9474
  headers: {
@@ -9663,17 +9480,15 @@ interface operations {
9663
9480
  };
9664
9481
  };
9665
9482
  };
9666
- get_agent_session_records: {
9483
+ get_agent_session_port: {
9667
9484
  parameters: {
9668
- query?: {
9669
- after_seq?: number;
9670
- limit?: number | null;
9671
- };
9485
+ query?: never;
9672
9486
  header?: {
9673
9487
  'user-agent'?: string | null;
9674
9488
  };
9675
9489
  path: {
9676
9490
  session_id: string;
9491
+ port: number;
9677
9492
  };
9678
9493
  cookie?: never;
9679
9494
  };
@@ -9685,7 +9500,7 @@ interface operations {
9685
9500
  [name: string]: unknown;
9686
9501
  };
9687
9502
  content: {
9688
- 'application/json': components['schemas']['ListSessionRecordsResponse'];
9503
+ 'application/json': components['schemas']['GetSessionPortResponse'];
9689
9504
  };
9690
9505
  };
9691
9506
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -9706,7 +9521,7 @@ interface operations {
9706
9521
  'application/json': components['schemas']['ErrorResponse'];
9707
9522
  };
9708
9523
  };
9709
- /** @description No such session in your account. */
9524
+ /** @description No such session in your account, or the port is not a valid TCP port. */
9710
9525
  404: {
9711
9526
  headers: {
9712
9527
  [name: string]: unknown;
@@ -9715,6 +9530,15 @@ interface operations {
9715
9530
  'application/json': components['schemas']['ErrorResponse'];
9716
9531
  };
9717
9532
  };
9533
+ /** @description The session's sandbox is not running; send it a message to wake it first. */
9534
+ 409: {
9535
+ headers: {
9536
+ [name: string]: unknown;
9537
+ };
9538
+ content: {
9539
+ 'application/json': components['schemas']['ErrorResponse'];
9540
+ };
9541
+ };
9718
9542
  /** @description Validation Error */
9719
9543
  422: {
9720
9544
  headers: {
@@ -9726,9 +9550,12 @@ interface operations {
9726
9550
  };
9727
9551
  };
9728
9552
  };
9729
- replay_agent_session: {
9553
+ get_agent_session_records: {
9730
9554
  parameters: {
9731
- query?: never;
9555
+ query?: {
9556
+ cursor?: string | null;
9557
+ limit?: number | null;
9558
+ };
9732
9559
  header?: {
9733
9560
  'user-agent'?: string | null;
9734
9561
  };
@@ -9737,28 +9564,15 @@ interface operations {
9737
9564
  };
9738
9565
  cookie?: never;
9739
9566
  };
9740
- requestBody: {
9741
- content: {
9742
- 'application/json': components['schemas']['ReplayAgentSessionRequest'];
9743
- };
9744
- };
9567
+ requestBody?: never;
9745
9568
  responses: {
9746
9569
  /** @description Successful Response */
9747
- 201: {
9748
- headers: {
9749
- [name: string]: unknown;
9750
- };
9751
- content: {
9752
- 'application/json': components['schemas']['AgentSessionWire'];
9753
- };
9754
- };
9755
- /** @description The session is a laptop session (not replayable), the named config does not exist, or the config override is invalid. */
9756
- 400: {
9570
+ 200: {
9757
9571
  headers: {
9758
9572
  [name: string]: unknown;
9759
9573
  };
9760
9574
  content: {
9761
- 'application/json': components['schemas']['ErrorResponse'];
9575
+ 'application/json': components['schemas']['SessionRecordsListResponse'];
9762
9576
  };
9763
9577
  };
9764
9578
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -9799,7 +9613,7 @@ interface operations {
9799
9613
  };
9800
9614
  };
9801
9615
  };
9802
- stop_agent_session: {
9616
+ replay_agent_session: {
9803
9617
  parameters: {
9804
9618
  query?: never;
9805
9619
  header?: {
@@ -9810,18 +9624,22 @@ interface operations {
9810
9624
  };
9811
9625
  cookie?: never;
9812
9626
  };
9813
- requestBody?: never;
9627
+ requestBody: {
9628
+ content: {
9629
+ 'application/json': components['schemas']['ReplayAgentSessionRequest'];
9630
+ };
9631
+ };
9814
9632
  responses: {
9815
9633
  /** @description Successful Response */
9816
- 200: {
9634
+ 201: {
9817
9635
  headers: {
9818
9636
  [name: string]: unknown;
9819
9637
  };
9820
9638
  content: {
9821
- 'application/json': components['schemas']['AgentSessionWire'];
9639
+ 'application/json': components['schemas']['SessionResponse'];
9822
9640
  };
9823
9641
  };
9824
- /** @description The session runs on a developer laptop and cannot be stopped from the cloud. */
9642
+ /** @description The session is a laptop session (not replayable), the named config does not exist, or the config override is invalid. */
9825
9643
  400: {
9826
9644
  headers: {
9827
9645
  [name: string]: unknown;
@@ -9857,15 +9675,6 @@ interface operations {
9857
9675
  'application/json': components['schemas']['ErrorResponse'];
9858
9676
  };
9859
9677
  };
9860
- /** @description The session has already finished. */
9861
- 409: {
9862
- headers: {
9863
- [name: string]: unknown;
9864
- };
9865
- content: {
9866
- 'application/json': components['schemas']['ErrorResponse'];
9867
- };
9868
- };
9869
9678
  /** @description Validation Error */
9870
9679
  422: {
9871
9680
  headers: {
@@ -9877,7 +9686,7 @@ interface operations {
9877
9686
  };
9878
9687
  };
9879
9688
  };
9880
- ingest_agent_session_transcript: {
9689
+ stop_agent_session: {
9881
9690
  parameters: {
9882
9691
  query?: never;
9883
9692
  header?: {
@@ -9888,11 +9697,7 @@ interface operations {
9888
9697
  };
9889
9698
  cookie?: never;
9890
9699
  };
9891
- requestBody: {
9892
- content: {
9893
- 'application/json': components['schemas']['IngestTranscriptRequest'];
9894
- };
9895
- };
9700
+ requestBody?: never;
9896
9701
  responses: {
9897
9702
  /** @description Successful Response */
9898
9703
  200: {
@@ -9900,7 +9705,16 @@ interface operations {
9900
9705
  [name: string]: unknown;
9901
9706
  };
9902
9707
  content: {
9903
- 'application/json': components['schemas']['TranscriptIngestResult'];
9708
+ 'application/json': components['schemas']['SessionResponse'];
9709
+ };
9710
+ };
9711
+ /** @description The session runs on a developer laptop and cannot be stopped from the cloud. */
9712
+ 400: {
9713
+ headers: {
9714
+ [name: string]: unknown;
9715
+ };
9716
+ content: {
9717
+ 'application/json': components['schemas']['ErrorResponse'];
9904
9718
  };
9905
9719
  };
9906
9720
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -9930,7 +9744,7 @@ interface operations {
9930
9744
  'application/json': components['schemas']['ErrorResponse'];
9931
9745
  };
9932
9746
  };
9933
- /** @description The session has no execution yet to attach transcript records to. */
9747
+ /** @description The session has already finished. */
9934
9748
  409: {
9935
9749
  headers: {
9936
9750
  [name: string]: unknown;
@@ -9950,7 +9764,7 @@ interface operations {
9950
9764
  };
9951
9765
  };
9952
9766
  };
9953
- get_agent_session_turns: {
9767
+ ingest_agent_session_transcript: {
9954
9768
  parameters: {
9955
9769
  query?: never;
9956
9770
  header?: {
@@ -9961,7 +9775,11 @@ interface operations {
9961
9775
  };
9962
9776
  cookie?: never;
9963
9777
  };
9964
- requestBody?: never;
9778
+ requestBody: {
9779
+ content: {
9780
+ 'application/json': components['schemas']['IngestTranscriptRequest'];
9781
+ };
9782
+ };
9965
9783
  responses: {
9966
9784
  /** @description Successful Response */
9967
9785
  200: {
@@ -9969,7 +9787,7 @@ interface operations {
9969
9787
  [name: string]: unknown;
9970
9788
  };
9971
9789
  content: {
9972
- 'application/json': components['schemas']['ListSessionTurnsResponse'];
9790
+ 'application/json': components['schemas']['TranscriptIngestResult'];
9973
9791
  };
9974
9792
  };
9975
9793
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -9999,6 +9817,15 @@ interface operations {
9999
9817
  'application/json': components['schemas']['ErrorResponse'];
10000
9818
  };
10001
9819
  };
9820
+ /** @description The session has no execution yet to attach transcript records to. */
9821
+ 409: {
9822
+ headers: {
9823
+ [name: string]: unknown;
9824
+ };
9825
+ content: {
9826
+ 'application/json': components['schemas']['ErrorResponse'];
9827
+ };
9828
+ };
10002
9829
  /** @description Validation Error */
10003
9830
  422: {
10004
9831
  headers: {
@@ -10082,12 +9909,12 @@ type DefaultResolution = 'repo_default' | 'account_default' | 'none';
10082
9909
  /**
10083
9910
  * Why a terminal agent session ended — a finer-grained reason than `status`.
10084
9911
  *
10085
- * `status` (AgentSessionStatus) is the lifecycle state: COMPLETED / ERROR /
9912
+ * `status` (SessionStatus) is the lifecycle state: COMPLETED / ERROR /
10086
9913
  * CANCELLED. `exit_status` explains *why* a run reached that terminal state, so
10087
9914
  * the UI and metrics can tell a budget cutoff apart from a crashed tool call or
10088
9915
  * a deliberate cancellation. It is None until the run reaches a terminal state.
10089
9916
  */
10090
- 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';
10091
9918
  /**
10092
9919
  * The coding-agent harness the session runs on.
10093
9920
  */
@@ -10115,7 +9942,7 @@ type PromptBlockedReason = 'mention_surface' | 'ephemeral_trigger' | 'non_intera
10115
9942
  type BudgetSource = 'system' | 'account' | 'config' | 'run';
10116
9943
  /**
10117
9944
  * Lifecycle of a keyed (multi-turn) session — the durable conversation.
10118
- * 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
10119
9946
  * moves to agent_turns in a later slice. IDLE: alive, waiting for the next
10120
9947
  * message. RUNNING: a turn is executing. CLOSED: the conversation is done and
10121
9948
  * its sandbox/snapshots are torn down.
@@ -10124,11 +9951,11 @@ type SessionState = 'idle' | 'running' | 'closed';
10124
9951
  /**
10125
9952
  * Where the session came from (e.g. react, manual, api, cli, mention, cron, laptop).
10126
9953
  */
10127
- type AgentSessionSource = 'react' | 'manual' | 'api' | 'cli' | 'mention' | 'cron' | 'laptop';
9954
+ type SessionSource = 'react' | 'manual' | 'api' | 'cli' | 'mention' | 'cron' | 'laptop';
10128
9955
  /**
10129
9956
  * Execution status of the session.
10130
9957
  */
10131
- type AgentSessionStatus = 'scheduled' | 'creating_sandbox' | 'running' | 'retrying' | 'completed' | 'error' | 'cancelled' | 'stopped';
9958
+ type SessionStatus = 'scheduled' | 'creating_sandbox' | 'running' | 'retrying' | 'completed' | 'error' | 'cancelled' | 'stopped';
10132
9959
  /**
10133
9960
  * What the current (or most recent) execution is doing (backs `run`).
10134
9961
  */
@@ -10150,23 +9977,19 @@ interface SnapshotFrame {
10150
9977
  /**
10151
9978
  * The session's open (pending) inbox messages.
10152
9979
  */
10153
- messages: SessionMessageWire[];
9980
+ messages: SessionMessage[];
10154
9981
  /**
10155
9982
  * Echoes the protocol version the server is serving.
10156
9983
  */
10157
9984
  protocol: number;
10158
- session: AgentSessionWire;
9985
+ session: Session;
10159
9986
  type: 'snapshot';
10160
9987
  }
10161
9988
  /**
10162
9989
  * One message in a session's inbox: what a queued message renders and
10163
9990
  * retires on. The webhook provenance internals stay off the wire.
10164
9991
  */
10165
- interface SessionMessageWire {
10166
- /**
10167
- * Identifier of the session the message belongs to.
10168
- */
10169
- agent_session_id: string;
9992
+ interface SessionMessage {
10170
9993
  /**
10171
9994
  * Display attribution of the message's sender.
10172
9995
  */
@@ -10203,16 +10026,16 @@ interface SessionMessageWire {
10203
10026
  * Kind of principal that sent the message, if attributed.
10204
10027
  */
10205
10028
  sender_attribution_type: AttributionType | null;
10029
+ /**
10030
+ * Identifier of the session the message belongs to.
10031
+ */
10032
+ session_id: string;
10206
10033
  status: SessionMessageStatus;
10207
10034
  }
10208
10035
  /**
10209
10036
  * The session's current state.
10210
10037
  */
10211
- interface AgentSessionWire {
10212
- /**
10213
- * Identifier of the saved agent config the session ran on, if any.
10214
- */
10215
- agent_config_id: string | null;
10038
+ interface Session {
10216
10039
  /**
10217
10040
  * The GitHub user the session is attributed to, when the attribution is a GitHub user.
10218
10041
  */
@@ -10229,6 +10052,10 @@ interface AgentSessionWire {
10229
10052
  * Version of the client that started the session, if reported.
10230
10053
  */
10231
10054
  client_version: string | null;
10055
+ /**
10056
+ * Identifier of the saved agent config the session ran on, if any.
10057
+ */
10058
+ config_id: string | null;
10232
10059
  /**
10233
10060
  * The partial-config diff applied for this run; null when the config was unmodified.
10234
10061
  */
@@ -10259,10 +10086,6 @@ interface AgentSessionWire {
10259
10086
  * When the session was created.
10260
10087
  */
10261
10088
  created_at: string;
10262
- /**
10263
- * Identifier of the account that owns the session.
10264
- */
10265
- customer_id: string;
10266
10089
  /**
10267
10090
  * How the session's config was resolved from the account's defaults, when no explicit config was given.
10268
10091
  */
@@ -10270,7 +10093,7 @@ interface AgentSessionWire {
10270
10093
  /**
10271
10094
  * How the session ended; null until it is terminal.
10272
10095
  */
10273
- exit_status: AgentSessionExitStatus | null;
10096
+ exit_status: SessionExitStatus | null;
10274
10097
  harness: Harness;
10275
10098
  /**
10276
10099
  * Unique identifier of the session.
@@ -10297,15 +10120,15 @@ interface AgentSessionWire {
10297
10120
  /**
10298
10121
  * Pull requests the session created or updated.
10299
10122
  */
10300
- output_prs: AgentSessionPr[] | null;
10301
- /**
10302
- * Identifier of the parent session that spawned this one, if any.
10303
- */
10304
- parent_agent_session_id: string | null;
10123
+ output_prs: SessionPr[] | null;
10305
10124
  /**
10306
10125
  * How this session relates to its parent session, if any.
10307
10126
  */
10308
10127
  parent_kind: ParentKind | null;
10128
+ /**
10129
+ * Identifier of the parent session that spawned this one, if any.
10130
+ */
10131
+ parent_session_id: string | null;
10309
10132
  /**
10310
10133
  * The per-session prompt the session was started with.
10311
10134
  */
@@ -10332,8 +10155,8 @@ interface AgentSessionWire {
10332
10155
  * Lifecycle state of the durable conversation, or null for sessions without one.
10333
10156
  */
10334
10157
  session_state: SessionState | null;
10335
- source: AgentSessionSource;
10336
- status: AgentSessionStatus;
10158
+ source: SessionSource;
10159
+ status: SessionStatus;
10337
10160
  /**
10338
10161
  * Human-readable reason for the current status, when there is one.
10339
10162
  */
@@ -10410,7 +10233,7 @@ interface GithubAccountSnippet {
10410
10233
  * state (open/merged/closed) is not stored here — read it from gh_prs where
10411
10234
  * a view needs it.
10412
10235
  */
10413
- interface AgentSessionPr {
10236
+ interface SessionPr {
10414
10237
  gh_pr_id: number | null;
10415
10238
  number: number;
10416
10239
  repo_full_name: string;
@@ -10446,7 +10269,7 @@ interface RecordsAppendFrame {
10446
10269
  /**
10447
10270
  * New session records, ordered by feed_seq.
10448
10271
  */
10449
- records: SessionRecordWire[];
10272
+ records: SessionRecord[];
10450
10273
  type: 'records_append';
10451
10274
  }
10452
10275
  /**
@@ -10454,11 +10277,7 @@ interface RecordsAppendFrame {
10454
10277
  * native payload. Internal-only columns are deliberately absent so internal
10455
10278
  * model evolution stays free.
10456
10279
  */
10457
- interface SessionRecordWire {
10458
- /**
10459
- * Identifier of the session the record belongs to.
10460
- */
10461
- agent_session_id: string;
10280
+ interface SessionRecord {
10462
10281
  /**
10463
10282
  * Identifier of the turn the record belongs to, if any.
10464
10283
  */
@@ -10501,6 +10320,10 @@ interface SessionRecordWire {
10501
10320
  * The record's type within its format.
10502
10321
  */
10503
10322
  record_type: string;
10323
+ /**
10324
+ * Identifier of the session the record belongs to.
10325
+ */
10326
+ session_id: string;
10504
10327
  /**
10505
10328
  * Correlates a user-echo record back to the session message it echoes, so clients can retire queued messages by id.
10506
10329
  */
@@ -10547,17 +10370,13 @@ interface TokensInfo {
10547
10370
  * state, and cost updates arrive. Resent whole on any field change.
10548
10371
  */
10549
10372
  interface SessionFrame {
10550
- session: AgentSessionWire1;
10373
+ session: Session1;
10551
10374
  type: 'session';
10552
10375
  }
10553
10376
  /**
10554
10377
  * The session's current state.
10555
10378
  */
10556
- interface AgentSessionWire1 {
10557
- /**
10558
- * Identifier of the saved agent config the session ran on, if any.
10559
- */
10560
- agent_config_id: string | null;
10379
+ interface Session1 {
10561
10380
  /**
10562
10381
  * The GitHub user the session is attributed to, when the attribution is a GitHub user.
10563
10382
  */
@@ -10574,6 +10393,10 @@ interface AgentSessionWire1 {
10574
10393
  * Version of the client that started the session, if reported.
10575
10394
  */
10576
10395
  client_version: string | null;
10396
+ /**
10397
+ * Identifier of the saved agent config the session ran on, if any.
10398
+ */
10399
+ config_id: string | null;
10577
10400
  /**
10578
10401
  * The partial-config diff applied for this run; null when the config was unmodified.
10579
10402
  */
@@ -10604,10 +10427,6 @@ interface AgentSessionWire1 {
10604
10427
  * When the session was created.
10605
10428
  */
10606
10429
  created_at: string;
10607
- /**
10608
- * Identifier of the account that owns the session.
10609
- */
10610
- customer_id: string;
10611
10430
  /**
10612
10431
  * How the session's config was resolved from the account's defaults, when no explicit config was given.
10613
10432
  */
@@ -10615,7 +10434,7 @@ interface AgentSessionWire1 {
10615
10434
  /**
10616
10435
  * How the session ended; null until it is terminal.
10617
10436
  */
10618
- exit_status: AgentSessionExitStatus | null;
10437
+ exit_status: SessionExitStatus | null;
10619
10438
  harness: Harness;
10620
10439
  /**
10621
10440
  * Unique identifier of the session.
@@ -10642,15 +10461,15 @@ interface AgentSessionWire1 {
10642
10461
  /**
10643
10462
  * Pull requests the session created or updated.
10644
10463
  */
10645
- output_prs: AgentSessionPr[] | null;
10646
- /**
10647
- * Identifier of the parent session that spawned this one, if any.
10648
- */
10649
- parent_agent_session_id: string | null;
10464
+ output_prs: SessionPr[] | null;
10650
10465
  /**
10651
10466
  * How this session relates to its parent session, if any.
10652
10467
  */
10653
10468
  parent_kind: ParentKind | null;
10469
+ /**
10470
+ * Identifier of the parent session that spawned this one, if any.
10471
+ */
10472
+ parent_session_id: string | null;
10654
10473
  /**
10655
10474
  * The per-session prompt the session was started with.
10656
10475
  */
@@ -10677,8 +10496,8 @@ interface AgentSessionWire1 {
10677
10496
  * Lifecycle state of the durable conversation, or null for sessions without one.
10678
10497
  */
10679
10498
  session_state: SessionState | null;
10680
- source: AgentSessionSource;
10681
- status: AgentSessionStatus;
10499
+ source: SessionSource;
10500
+ status: SessionStatus;
10682
10501
  /**
10683
10502
  * Human-readable reason for the current status, when there is one.
10684
10503
  */
@@ -10795,15 +10614,15 @@ type StreamFrame = SessionStreamFrame | {
10795
10614
  [key: string]: unknown;
10796
10615
  };
10797
10616
  type SendSessionMessageRequest = components['schemas']['SendSessionMessageRequest'];
10798
- type ListSessionRecordsResponse = components['schemas']['ListSessionRecordsResponse'];
10799
- type ListSessionTurnsResponse = components['schemas']['ListSessionTurnsResponse'];
10800
- type AgentTurn = components['schemas']['AgentTurn'];
10801
- type AgentTurnStatus = components['schemas']['AgentTurnStatus'];
10802
- type ListSessionExecutionsResponse = components['schemas']['ListSessionExecutionsResponse'];
10803
- type SessionExecutionWire = components['schemas']['SessionExecutionWire'];
10617
+ type SessionRecordsListResponse = components['schemas']['SessionRecordsListResponse'];
10618
+ type SessionExecutionsListResponse = components['schemas']['SessionExecutionsListResponse'];
10619
+ type SessionExecution = components['schemas']['SessionExecution'];
10620
+ type SessionResponse = components['schemas']['SessionResponse'];
10621
+ type SessionMessageResponse = components['schemas']['SessionMessageResponse'];
10622
+ type SessionsListResponse = components['schemas']['SessionsListResponse'];
10804
10623
  type CreateReviewRequest = components['schemas']['CreateReviewRequest'];
10805
10624
  type Review = components['schemas']['Review'];
10806
- type ListReviewsResponse = components['schemas']['ListReviewsResponse'];
10625
+ type ReviewsListResponse = components['schemas']['ReviewsListResponse'];
10807
10626
  type ReviewScope = components['schemas']['ReviewScope'];
10808
10627
  type ReviewScopeKind = components['schemas']['ReviewScopeKind'];
10809
10628
  type ResolvedReviewScope = components['schemas']['ResolvedReviewScope'];
@@ -10815,4 +10634,4 @@ type ReviewRequester = components['schemas']['ReviewRequester'];
10815
10634
  type ReviewFinding = components['schemas']['ReviewFinding'];
10816
10635
  type Finding = ReviewFinding;
10817
10636
 
10818
- export type { AgentSessionWire as A, BudgetSource as B, CreateReviewRequest as C, DefaultResolution as D, ErrorFrame as E, Finding as F, GithubAccountSnippet as G, Harness as H, SessionExecutionWire as I, SessionFrame as J, SessionLiveness as K, ListSessionRecordsResponse as L, SessionMessageStatus as M, SessionPrompting as N, SessionRecordWire as O, ParentKind as P, SessionState as Q, Review as R, SessionMessageWire as S, SessionStreamFrame as T, SessionSurface as U, SnapshotFrame as V, StreamFrame as W, TokensInfo as X, components as Y, paths as Z, ListSessionTurnsResponse as a, ListSessionExecutionsResponse as b, ListReviewsResponse as c, AgentSessionExitStatus as d, AgentSessionPr as e, AgentSessionSource as f, AgentSessionStatus as g, AgentTurn as h, AgentTurnStatus as i, AttributionType as j, DeltaFrame as k, DoneFrame as l, GithubAccountType as m, HeartbeatFrame as n, PromptBlockedReason as o, RecordsAppendFrame as p, ResolvedReviewScope as q, ReviewConfiguration as r, ReviewCounters as s, ReviewFinding as t, ReviewRequester as u, ReviewScope as v, ReviewScopeKind as w, ReviewStage as x, ReviewedCommit as y, SendSessionMessageRequest 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 };