@ellipsis-dev/sdk 0.34.1 → 0.35.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.
@@ -110,9 +110,9 @@ interface paths {
110
110
  * Get Account Billing
111
111
  * @description Explain whether your account can start sessions.
112
112
  *
113
- * Uses the same account gate as session admission, including credit,
114
- * contact email, and personal subscription eligibility. Scoped
115
- * spend limits are reported separately by /v1/account/budget.
113
+ * Uses the same account gate as session admission, including credit
114
+ * and contact email. Scoped spend limits are reported separately by
115
+ * /v1/account/budget.
116
116
  */
117
117
  get: operations['get_account_billing'];
118
118
  put?: never;
@@ -772,10 +772,11 @@ interface paths {
772
772
  * The same data as the analytics dashboard.
773
773
  *
774
774
  * Windowing: pass explicit start/end, or days (default: the last
775
- * 30 days). account_type in all|user|bot scopes the authors (bot =
776
- * the apps/agents). Available to all credential types: the
777
- * responses expose the organization's own GitHub PR/review activity,
778
- * no secrets.
775
+ * 30 days). `interval` names the width of each entry in `series`,
776
+ * chosen from the window's length. account_type in all|user|bot
777
+ * scopes the authors (bot = the apps/agents). Available to all
778
+ * credential types: the responses expose the organization's own
779
+ * GitHub PR/review activity, no secrets.
779
780
  */
780
781
  get: operations['get_analytics_metrics'];
781
782
  put?: never;
@@ -798,7 +799,9 @@ interface paths {
798
799
  * @description Return pull-request analytics.
799
800
  *
800
801
  * Windowing: pass explicit start/end, or days (default: the last
801
- * 30 days). account_type in all|user|bot scopes the authors.
802
+ * 30 days). `interval` names the width of each entry in `series`,
803
+ * chosen from the window's length. account_type in all|user|bot
804
+ * scopes the authors.
802
805
  */
803
806
  get: operations['get_analytics_pull_requests'];
804
807
  put?: never;
@@ -823,7 +826,8 @@ interface paths {
823
826
  * account_type scopes reviewers (bot|user|all) — e.g. "what apps
824
827
  * review the most PRs?" is the reviewer facets here with
825
828
  * account_type=bot. Windowing: pass explicit start/end, or days
826
- * (default: the last 30 days).
829
+ * (default: the last 30 days). `interval` names the width of each
830
+ * entry in `series`, chosen from the window's length.
827
831
  */
828
832
  get: operations['get_analytics_reviews'];
829
833
  put?: never;
@@ -993,8 +997,9 @@ interface paths {
993
997
  * Only sessions carrying this exact saved handler id are counted;
994
998
  * legacy sessions without handler provenance are excluded.
995
999
  *
996
- * spend_windows reports current trailing 1-, 7-, and 28-day credit
997
- * debits and effective handler budgets across all attributed sessions.
1000
+ * spend_windows reports current trailing 1-, 7-, and 28-day spend,
1001
+ * including subscription tokens, and effective handler budgets across
1002
+ * all attributed sessions.
998
1003
  * Those windows use usage timestamps and are independent of start/end.
999
1004
  *
1000
1005
  * Requires configs:read matching handlers/{service} and unrestricted
@@ -1845,166 +1850,6 @@ interface paths {
1845
1850
  patch?: never;
1846
1851
  trace?: never;
1847
1852
  };
1848
- '/v1/templates': {
1849
- parameters: {
1850
- query?: never;
1851
- header?: never;
1852
- path?: never;
1853
- cookie?: never;
1854
- };
1855
- /**
1856
- * List Agent Templates
1857
- * @description List the built-in starter agent templates.
1858
- *
1859
- * Behind auth but not account-scoped — the data is static
1860
- * product content shared by the dashboard, landing site, and CLI.
1861
- */
1862
- get: operations['list_agent_templates'];
1863
- put?: never;
1864
- post?: never;
1865
- delete?: never;
1866
- options?: never;
1867
- head?: never;
1868
- patch?: never;
1869
- trace?: never;
1870
- };
1871
- '/v1/templates/{id}': {
1872
- parameters: {
1873
- query?: never;
1874
- header?: never;
1875
- path?: never;
1876
- cookie?: never;
1877
- };
1878
- /**
1879
- * Get Agent Template
1880
- * @description Return one built-in agent template by slug.
1881
- */
1882
- get: operations['get_agent_template'];
1883
- put?: never;
1884
- post?: never;
1885
- delete?: never;
1886
- options?: never;
1887
- head?: never;
1888
- patch?: never;
1889
- trace?: never;
1890
- };
1891
- '/v1/user/subscription_tokens': {
1892
- parameters: {
1893
- query?: never;
1894
- header?: never;
1895
- path?: never;
1896
- cookie?: never;
1897
- };
1898
- /**
1899
- * List Subscription Tokens
1900
- * @description List your subscription tokens.
1901
- *
1902
- * One entry per supported provider, whether or not you have saved a
1903
- * token for it. Tokens are write-only: the response carries only
1904
- * `token_last4`, never the token.
1905
- */
1906
- get: operations['list_subscription_tokens'];
1907
- put?: never;
1908
- post?: never;
1909
- delete?: never;
1910
- options?: never;
1911
- head?: never;
1912
- patch?: never;
1913
- trace?: never;
1914
- };
1915
- '/v1/user/subscription_tokens/{provider}': {
1916
- parameters: {
1917
- query?: never;
1918
- header?: never;
1919
- path?: never;
1920
- cookie?: never;
1921
- };
1922
- /**
1923
- * Get Subscription Token
1924
- * @description Get one provider's subscription token.
1925
- *
1926
- * `configured` is false when nothing is saved. The token itself is
1927
- * never returned, only `token_last4`.
1928
- */
1929
- get: operations['get_subscription_token'];
1930
- put?: never;
1931
- /**
1932
- * Set Subscription Token
1933
- * @description Save your subscription token for a provider.
1934
- *
1935
- * Replaces whatever was stored. The token is saved DISABLED and
1936
- * routes nothing until `POST /v1/user/subscription_tokens/{provider}/verify`
1937
- * succeeds. For Claude, use `claude setup-token`. For Codex, paste
1938
- * the auth.json credentials from a ChatGPT login. Each subscription
1939
- * pays only for models from its corresponding provider.
1940
- */
1941
- post: operations['set_subscription_token'];
1942
- /**
1943
- * Delete Subscription Token
1944
- * @description Delete your subscription token for a provider.
1945
- *
1946
- * Your sessions stop billing your subscription immediately, and the
1947
- * usage reading goes with it — it described that token's plan.
1948
- */
1949
- delete: operations['delete_subscription_token'];
1950
- options?: never;
1951
- head?: never;
1952
- patch?: never;
1953
- trace?: never;
1954
- };
1955
- '/v1/user/subscription_tokens/{provider}/usage': {
1956
- parameters: {
1957
- query?: never;
1958
- header?: never;
1959
- path?: never;
1960
- cookie?: never;
1961
- };
1962
- /**
1963
- * Get Subscription Usage
1964
- * @description Get your plan's last-observed rate-limit windows.
1965
- *
1966
- * Display-only, and only as fresh as your last call through Ellipsis
1967
- * (`observed_at`) — the same plan used outside Ellipsis moves the
1968
- * real windows without us seeing them. Null unless a token is
1969
- * enabled for the provider: a disabled token routes nothing, so any
1970
- * reading behind it is stale by construction.
1971
- */
1972
- get: operations['get_subscription_usage'];
1973
- put?: never;
1974
- post?: never;
1975
- delete?: never;
1976
- options?: never;
1977
- head?: never;
1978
- patch?: never;
1979
- trace?: never;
1980
- };
1981
- '/v1/user/subscription_tokens/{provider}/verify': {
1982
- parameters: {
1983
- query?: never;
1984
- header?: never;
1985
- path?: never;
1986
- cookie?: never;
1987
- };
1988
- get?: never;
1989
- put?: never;
1990
- /**
1991
- * Verify Subscription Token
1992
- * @description Verify the stored token by using it.
1993
- *
1994
- * Makes one minimal call on the exact runtime path, so a pass proves
1995
- * the token is what will pay. This is the gate on routing: success
1996
- * enables the token, failure disables it, so verifying a revoked
1997
- * token is how you stop it routing. A 200 with `ok: false` is the
1998
- * normal way a bad token is reported — it is an answer, not a
1999
- * transport failure.
2000
- */
2001
- post: operations['verify_subscription_token'];
2002
- delete?: never;
2003
- options?: never;
2004
- head?: never;
2005
- patch?: never;
2006
- trace?: never;
2007
- };
2008
1853
  '/v1/user/tokens': {
2009
1854
  parameters: {
2010
1855
  query?: never;
@@ -2513,6 +2358,11 @@ interface components {
2513
2358
  * @description The agent's account-unique addressable name (a slug of its display name); usable anywhere an agent is referenced, interchangeably with the id.
2514
2359
  */
2515
2360
  name?: string | null;
2361
+ /**
2362
+ * Next Run At
2363
+ * @description When the agent's cron trigger next starts a session. Null when the agent has no cron trigger, its trigger is paused, or the agent is disabled.
2364
+ */
2365
+ next_run_at?: string | null;
2516
2366
  /**
2517
2367
  * Pending Pull Request Url
2518
2368
  * @description The open pull request that adds this agent's file. Non-null means the agent is not live yet: it starts running once the pull request merges and syncs.
@@ -2672,64 +2522,6 @@ interface components {
2672
2522
  /** @description The tokens the session used. */
2673
2523
  tokens: components['schemas']['Tokens'];
2674
2524
  };
2675
- /**
2676
- * AgentTemplate
2677
- * @description A built-in agent template: a ready-to-use agent plus the
2678
- * metadata that describes it in the template gallery.
2679
- */
2680
- AgentTemplate: {
2681
- /**
2682
- * Description
2683
- * @description A short description of the template.
2684
- */
2685
- description: string;
2686
- /**
2687
- * Name
2688
- * @description The template's display name.
2689
- */
2690
- name: string;
2691
- /**
2692
- * Slug
2693
- * @description The template's unique identifier.
2694
- */
2695
- slug: string;
2696
- /**
2697
- * Summary
2698
- * @description A one-line summary of the template.
2699
- */
2700
- summary: string;
2701
- /**
2702
- * Tags
2703
- * @description Gallery tags for the template.
2704
- */
2705
- tags: string[];
2706
- /**
2707
- * Use Case
2708
- * @description The use case the template is designed for.
2709
- */
2710
- use_case: string;
2711
- /**
2712
- * Yaml
2713
- * @description The complete, schema-valid agent YAML, ready to write to disk.
2714
- */
2715
- yaml: string;
2716
- };
2717
- /**
2718
- * AgentTemplatesListResponse
2719
- * @description The built-in agent templates.
2720
- */
2721
- AgentTemplatesListResponse: {
2722
- /**
2723
- * Templates
2724
- * @description The available templates.
2725
- */
2726
- templates: components['schemas']['AgentTemplate'][];
2727
- /**
2728
- * Walkthrough Yaml
2729
- * @description A fully-populated example agent, for display in setup walkthroughs. Not a template to run as-is.
2730
- */
2731
- walkthrough_yaml: string;
2732
- };
2733
2525
  /**
2734
2526
  * AgentsListResponse
2735
2527
  * @description The caller's agents.
@@ -2852,79 +2644,81 @@ interface components {
2852
2644
  };
2853
2645
  /**
2854
2646
  * AnalyticsMetricsBucket
2855
- * @description Pull-request and review activity on one UTC day. Each count keys on the
2856
- * relevant event's own timestamp: PRs on when they were opened, merged, or
2857
- * closed; review verdicts on when the review was submitted; review comments
2858
- * on when the comment was created. The "shipped" rollup (additions,
2859
- * deletions, commits, active contributors) covers PRs merged that day.
2647
+ * @description Pull-request and review activity in one bucket of the window. Each count
2648
+ * keys on its own event's timestamp. Pull requests count when they were
2649
+ * opened, merged, or closed, review verdicts when the review was submitted,
2650
+ * and review comments when the comment was created. The shipped rollup
2651
+ * (additions, deletions, commits, active contributors) covers pull requests
2652
+ * merged in the bucket.
2860
2653
  */
2861
2654
  AnalyticsMetricsBucket: {
2862
2655
  /**
2863
2656
  * Active Contributors
2864
- * @description Distinct authors who merged a pull request this day.
2657
+ * @description Distinct authors who merged a pull request in this bucket.
2865
2658
  */
2866
2659
  active_contributors: number;
2867
2660
  /**
2868
2661
  * Additions
2869
- * @description Lines added across pull requests merged this day.
2662
+ * @description Lines added across pull requests merged in this bucket.
2870
2663
  */
2871
2664
  additions: number;
2872
2665
  /**
2873
2666
  * Approved
2874
- * @description Approving reviews submitted this day.
2667
+ * @description Approving reviews submitted in this bucket.
2875
2668
  */
2876
2669
  approved: number;
2877
2670
  /**
2878
2671
  * Changes Requested
2879
- * @description Changes-requested reviews submitted this day.
2672
+ * @description Changes-requested reviews submitted in this bucket.
2880
2673
  */
2881
2674
  changes_requested: number;
2882
2675
  /**
2883
2676
  * Commented
2884
- * @description Comment-only reviews submitted this day.
2677
+ * @description Comment-only reviews submitted in this bucket.
2885
2678
  */
2886
2679
  commented: number;
2887
2680
  /**
2888
2681
  * Commits
2889
- * @description Commits across pull requests merged this day.
2682
+ * @description Commits across pull requests merged in this bucket.
2890
2683
  */
2891
2684
  commits: number;
2892
2685
  /**
2893
2686
  * Date
2894
- * @description The UTC day, formatted YYYY-MM-DD.
2687
+ * Format: date-time
2688
+ * @description When the bucket starts, in UTC.
2895
2689
  */
2896
2690
  date: string;
2897
2691
  /**
2898
2692
  * Deletions
2899
- * @description Lines deleted across pull requests merged this day.
2693
+ * @description Lines deleted across pull requests merged in this bucket.
2900
2694
  */
2901
2695
  deletions: number;
2902
2696
  /**
2903
2697
  * Prs Closed
2904
- * @description Pull requests closed without merging this day.
2698
+ * @description Pull requests closed without merging in this bucket.
2905
2699
  */
2906
2700
  prs_closed: number;
2907
2701
  /**
2908
2702
  * Prs Merged
2909
- * @description Pull requests merged this day.
2703
+ * @description Pull requests merged in this bucket.
2910
2704
  */
2911
2705
  prs_merged: number;
2912
2706
  /**
2913
2707
  * Prs Opened
2914
- * @description Pull requests opened this day.
2708
+ * @description Pull requests opened in this bucket.
2915
2709
  */
2916
2710
  prs_opened: number;
2917
2711
  /**
2918
2712
  * Review Comments
2919
- * @description Inline review comments created this day.
2713
+ * @description Inline review comments created in this bucket.
2920
2714
  */
2921
2715
  review_comments: number;
2922
2716
  /**
2923
2717
  * Reviews
2924
- * @description Reviews submitted this day.
2718
+ * @description Reviews submitted in this bucket.
2925
2719
  */
2926
2720
  reviews: number;
2927
- /** @description Time-to-merge percentiles over pull requests merged this day. */
2721
+ /** @description Time-to-merge percentiles over pull requests merged in this bucket. */
2928
2722
  time_to_merge_hours: components['schemas']['DurationPercentiles'];
2929
2723
  };
2930
2724
  /**
@@ -3180,6 +2974,10 @@ interface components {
3180
2974
  };
3181
2975
  /**
3182
2976
  * BillingSource
2977
+ * @description Who paid for a usage event's tokens. Every new request is `platform`.
2978
+ * The subscription values remain on rows written while a developer's own
2979
+ * Claude or ChatGPT plan paid, before Ellipsis retired that route, so past
2980
+ * sessions keep reporting what their tokens cost.
3183
2981
  * @enum {string}
3184
2982
  */
3185
2983
  BillingSource: 'platform' | 'claude_subscription' | 'codex_subscription' | 'unknown';
@@ -3231,9 +3029,9 @@ interface components {
3231
3029
  BillingStatus: {
3232
3030
  /**
3233
3031
  * Workflows Block Reason
3234
- * @description The account gate's reason for blocking new sessions, or null. `automations_require_credit` blocks only programmatic sessions (API keys, reacts, crons): sessions a person starts still run on their subscription. Does not include viewer-specific blocks or scoped spend limits.
3032
+ * @description The account gate's reason for blocking new sessions, or null. Does not include viewer-specific blocks or scoped spend limits.
3235
3033
  */
3236
- workflows_block_reason: ('canceled' | 'out_of_credit' | 'blocked' | 'contact_email_required' | 'subscription_or_credit_required' | 'automations_require_credit') | null;
3034
+ workflows_block_reason: ('canceled' | 'out_of_credit' | 'blocked' | 'contact_email_required') | null;
3237
3035
  };
3238
3036
  /**
3239
3037
  * BudgetAlertThresholds
@@ -3347,7 +3145,7 @@ interface components {
3347
3145
  };
3348
3146
  /**
3349
3147
  * BudgetPolicy
3350
- * @description Limits on actual Ellipsis credit debits, not allocations of credit.
3148
+ * @description Limits on actual spend, including subscription tokens, not allocations of credit.
3351
3149
  *
3352
3150
  * Developer keys are attribution_type:attribution_id; API keys use their
3353
3151
  * stable key ID, never the secret. Unattributed and Ellipsis bot activity is
@@ -4964,7 +4762,7 @@ interface components {
4964
4762
  platform_max: number;
4965
4763
  /**
4966
4764
  * Spent
4967
- * @description Recorded credit debits during the window across this configuration's sessions, in millicents.
4765
+ * @description Spend during the window across this configuration's sessions, including subscription tokens, in millicents.
4968
4766
  */
4969
4767
  spent: number;
4970
4768
  /**
@@ -5023,7 +4821,7 @@ interface components {
5023
4821
  Cost: {
5024
4822
  /**
5025
4823
  * Charged
5026
- * @description What Ellipsis charged to credit, in millicents. It is everything except subscription tokens, and it is what the budget caps.
4824
+ * @description What Ellipsis charged to credit, in millicents. It is everything except subscription tokens.
5027
4825
  * @default 0
5028
4826
  */
5029
4827
  charged: number;
@@ -5049,7 +4847,7 @@ interface components {
5049
4847
  memory: number;
5050
4848
  /**
5051
4849
  * Total
5052
- * @description Everything it cost, whoever paid, in millicents. It is the sum of llm.all.total, cpu, memory, and fee.
4850
+ * @description Everything it cost, whoever paid, in millicents. It is the sum of llm.all.total, cpu, memory, and fee, and it is what the budget caps.
5053
4851
  * @default 0
5054
4852
  */
5055
4853
  total: number;
@@ -5647,9 +5445,11 @@ interface components {
5647
5445
  /**
5648
5446
  * EnvironmentHooks
5649
5447
  * @description Environment lifecycle scripts, in order: build_base, after_checkout,
5650
- * before_start. The first two produce reusable snapshots; before_start runs
5651
- * before an agent starts or resumes its session. Scripts run as the environment's
5652
- * user in the workspace directory `/sandbox`. A nonzero exit fails the session.
5448
+ * before_start, validate. The first two produce reusable snapshots;
5449
+ * before_start runs before an agent starts or resumes its session, and
5450
+ * validate runs last to check that the environment has what the agent needs.
5451
+ * Scripts run as the environment's user in the workspace directory
5452
+ * `/sandbox`. A nonzero exit fails the session.
5653
5453
  *
5654
5454
  * Legacy post_start/post_clone scripts remain supported for existing configs;
5655
5455
  * both run after workspace preparation, before the agent starts or resumes.
@@ -5681,13 +5481,20 @@ interface components {
5681
5481
  * @description Legacy session startup script. Use before_start in new configurations.
5682
5482
  */
5683
5483
  post_start?: string | null;
5484
+ /**
5485
+ * Validate
5486
+ * @description Check that the environment works, for example that required tools are on PATH. Runs last, after before_start, each time a session starts or resumes and each time the environment is built after a change. A nonzero exit fails the session or the build. Not cached.
5487
+ */
5488
+ validate?: components['schemas']['EnvironmentScript'] | string | null;
5684
5489
  };
5685
5490
  /**
5686
5491
  * EnvironmentHooks
5687
5492
  * @description Environment lifecycle scripts, in order: build_base, after_checkout,
5688
- * before_start. The first two produce reusable snapshots; before_start runs
5689
- * before an agent starts or resumes its session. Scripts run as the environment's
5690
- * user in the workspace directory `/sandbox`. A nonzero exit fails the session.
5493
+ * before_start, validate. The first two produce reusable snapshots;
5494
+ * before_start runs before an agent starts or resumes its session, and
5495
+ * validate runs last to check that the environment has what the agent needs.
5496
+ * Scripts run as the environment's user in the workspace directory
5497
+ * `/sandbox`. A nonzero exit fails the session.
5691
5498
  *
5692
5499
  * Legacy post_start/post_clone scripts remain supported for existing configs;
5693
5500
  * both run after workspace preparation, before the agent starts or resumes.
@@ -5719,6 +5526,11 @@ interface components {
5719
5526
  * @description Legacy session startup script. Use before_start in new configurations.
5720
5527
  */
5721
5528
  post_start: string | null;
5529
+ /**
5530
+ * Validate
5531
+ * @description Check that the environment works, for example that required tools are on PATH. Runs last, after before_start, each time a session starts or resumes and each time the environment is built after a change. A nonzero exit fails the session or the build. Not cached.
5532
+ */
5533
+ validate: components['schemas']['EnvironmentScript'] | string | null;
5722
5534
  };
5723
5535
  /**
5724
5536
  * EnvironmentIdentity
@@ -6098,7 +5910,7 @@ interface components {
6098
5910
  ErrorInfo: {
6099
5911
  /**
6100
5912
  * Code
6101
- * @description Stable machine-readable error code. Open vocabulary — handle unknown codes by HTTP status. Known values: account_blocked, budget_exceeds_ceiling, conflict, contact_email_required, failed_dependency, forbidden, internal_error, invalid_cursor, invalid_request, not_found, rate_limit_exceeded, rate_limited, session_budget_exhausted, session_closed, session_finished, session_harness_single_turn, session_mention_surface, session_non_interactive, session_not_spawner, unauthorized, unavailable, unsupported_session_combination, user_credential_required, webhook_limit_reached, webhook_not_pending, webhook_ping_rate_limited, webhook_unverified, webhooks_unavailable.
5913
+ * @description Stable machine-readable error code. Open vocabulary — handle unknown codes by HTTP status. Known values: account_blocked, budget_exceeds_ceiling, conflict, contact_email_required, failed_dependency, forbidden, internal_error, invalid_cursor, invalid_request, not_found, rate_limit_exceeded, rate_limited, session_budget_exhausted, session_closed, session_finished, session_harness_single_turn, session_mention_surface, session_non_interactive, session_not_spawner, unauthorized, unavailable, unsupported_session_combination, webhook_limit_reached, webhook_not_pending, webhook_ping_rate_limited, webhook_unverified, webhooks_unavailable.
6102
5914
  */
6103
5915
  code: string;
6104
5916
  /**
@@ -6124,101 +5936,423 @@ interface components {
6124
5936
  fee_schedule: components['schemas']['PublicFeeSchedule'];
6125
5937
  };
6126
5938
  /**
6127
- * GetAnalyticsMetricsResponse
6128
- * @description Organization-wide pull-request and review analytics, aggregated
6129
- * server-side over the requested window and filters, with filter facets
6130
- * derived from the unfiltered pull-request set.
5939
+ * GeminiConfig
5940
+ * @description Native options supported by the current Gemini CLI adapter.
6131
5941
  */
6132
- GetAnalyticsMetricsResponse: {
5942
+ 'GeminiConfig-Input': {
6133
5943
  /**
6134
- * Available Authors
6135
- * @description Author filter options from the unfiltered window.
5944
+ * Model
5945
+ * @description The model the session runs on: a Gemini id from the models table. Required.
6136
5946
  */
6137
- available_authors: components['schemas']['AuthorFacet'][];
5947
+ model: string;
6138
5948
  /**
6139
- * Available Repos
6140
- * @description Repository filter options from the unfiltered window.
5949
+ * Prompt
5950
+ * @description The initial user message, passed verbatim. Omit to start an interactive session with no turn, waiting for a message.
6141
5951
  */
6142
- available_repos: components['schemas']['RepoFacet'][];
5952
+ prompt?: string | null;
5953
+ };
5954
+ /**
5955
+ * GeminiConfig
5956
+ * @description Native options supported by the current Gemini CLI adapter.
5957
+ */
5958
+ 'GeminiConfig-Output': {
6143
5959
  /**
6144
- * Contributors
6145
- * @description Per-contributor breakdown, most merged pull requests first.
5960
+ * Model
5961
+ * @description The model the session runs on: a Gemini id from the models table. Required.
6146
5962
  */
6147
- contributors: components['schemas']['ContributorUsage'][];
5963
+ model: string;
6148
5964
  /**
6149
- * Repositories
6150
- * @description Per-repository breakdown, most merged pull requests first.
5965
+ * Prompt
5966
+ * @description The initial user message, passed verbatim. Omit to start an interactive session with no turn, waiting for a message.
6151
5967
  */
6152
- repositories: components['schemas']['AnalyticsRepoUsage'][];
5968
+ prompt: string | null;
5969
+ };
5970
+ /** GeminiErrorEvent */
5971
+ GeminiErrorEvent: {
5972
+ /** Message */
5973
+ message: string;
5974
+ /** Severity */
5975
+ severity?: string | null;
5976
+ /** Timestamp */
5977
+ timestamp: string;
6153
5978
  /**
6154
- * Reviewers
6155
- * @description Per-reviewer breakdown, most reviews first.
5979
+ * @description discriminator enum property added by openapi-typescript
5980
+ * @enum {string}
6156
5981
  */
6157
- reviewers: components['schemas']['ReviewerUsage'][];
5982
+ type: 'error';
5983
+ } & {
5984
+ [key: string]: unknown;
5985
+ };
5986
+ /** GeminiInitEvent */
5987
+ GeminiInitEvent: {
5988
+ /** Model */
5989
+ model: string;
5990
+ /** Session Id */
5991
+ session_id: string;
5992
+ /** Timestamp */
5993
+ timestamp: string;
6158
5994
  /**
6159
- * Series
6160
- * @description Per-day activity buckets covering the window.
5995
+ * @description discriminator enum property added by openapi-typescript
5996
+ * @enum {string}
6161
5997
  */
6162
- series: components['schemas']['AnalyticsMetricsBucket'][];
6163
- /** @description Window-wide totals. */
6164
- totals: components['schemas']['AnalyticsMetricsTotals'];
5998
+ type: 'init';
5999
+ } & {
6000
+ [key: string]: unknown;
6165
6001
  };
6166
- /**
6167
- * GetAnalyticsPullRequestsResponse
6168
- * @description Pull-request analytics for the requested window: per-day trends with
6169
- * human/bot splits, window totals, filter facets, and the most recent pull
6170
- * requests.
6171
- */
6172
- GetAnalyticsPullRequestsResponse: {
6173
- /** @description Available filter options, from the unfiltered window. */
6174
- facets: components['schemas']['PullRequestFacets'];
6002
+ /** GeminiMessageEvent */
6003
+ GeminiMessageEvent: {
6004
+ /** Content */
6005
+ content: string;
6006
+ /** Delta */
6007
+ delta?: boolean | null;
6175
6008
  /**
6176
- * Recent
6177
- * @description The most recent pull requests, newest first, capped.
6009
+ * Role
6010
+ * @enum {string}
6178
6011
  */
6179
- recent: components['schemas']['RecentPullRequest'][];
6012
+ role: 'user' | 'assistant';
6013
+ /** Timestamp */
6014
+ timestamp: string;
6180
6015
  /**
6181
- * Series
6182
- * @description Per-day activity buckets covering the window.
6016
+ * @description discriminator enum property added by openapi-typescript
6017
+ * @enum {string}
6183
6018
  */
6184
- series: components['schemas']['PullRequestsDayBucket'][];
6185
- /** @description Window-wide totals. */
6186
- totals: components['schemas']['PullRequestsTotals'];
6019
+ type: 'message';
6020
+ } & {
6021
+ [key: string]: unknown;
6022
+ };
6023
+ /** GeminiModelStats */
6024
+ GeminiModelStats: {
6187
6025
  /**
6188
- * Truncated
6189
- * @description True when the window hit the scan limit and the figures undercount.
6026
+ * Cached
6027
+ * @default 0
6190
6028
  */
6191
- truncated: boolean;
6192
- };
6193
- /**
6194
- * GetAnalyticsReviewsResponse
6195
- * @description Review analytics for the requested window: the review and inline-comment
6196
- * feeds, per-day trends, full-set totals, and filter facets.
6197
- */
6198
- GetAnalyticsReviewsResponse: {
6199
- /** @description Available filter options. */
6200
- facets: components['schemas']['ReviewFacets'];
6029
+ cached: number;
6201
6030
  /**
6202
- * Review Comments
6203
- * @description The inline-comment feed, newest first, capped.
6031
+ * Input
6032
+ * @default 0
6204
6033
  */
6205
- review_comments: components['schemas']['ReviewCommentListItem'][];
6034
+ input: number;
6206
6035
  /**
6207
- * Reviews
6208
- * @description The review feed, newest first, capped.
6036
+ * Input Tokens
6037
+ * @default 0
6209
6038
  */
6210
- reviews: components['schemas']['ReviewListItem'][];
6039
+ input_tokens: number;
6211
6040
  /**
6212
- * Series
6213
- * @description Per-day activity buckets covering the window.
6041
+ * Output Tokens
6042
+ * @default 0
6214
6043
  */
6215
- series: components['schemas']['ReviewsDayBucket'][];
6216
- /** @description Window-wide totals. */
6217
- totals: components['schemas']['ReviewsTotals'];
6044
+ output_tokens: number;
6045
+ /**
6046
+ * Total Tokens
6047
+ * @default 0
6048
+ */
6049
+ total_tokens: number;
6050
+ } & {
6051
+ [key: string]: unknown;
6218
6052
  };
6219
6053
  /**
6220
- * GetIntegrationsResponse
6221
- * @description Everything connected for the calling account, in one call. A key is
6054
+ * GeminiOverrides
6055
+ * @description The Gemini CLI options an agent session request may replace. Every
6056
+ * field is optional: an omitted field keeps the agent's value.
6057
+ */
6058
+ GeminiOverrides: {
6059
+ /** Model */
6060
+ model?: string | null;
6061
+ /**
6062
+ * Prompt
6063
+ * @description The initial user message, passed verbatim. Omit to start an interactive session with no turn, waiting for a message.
6064
+ */
6065
+ prompt?: string | null;
6066
+ };
6067
+ /** GeminiResultEvent */
6068
+ GeminiResultEvent: {
6069
+ error?: components['schemas']['GeminiToolError'] | null;
6070
+ stats?: components['schemas']['GeminiStreamStats'] | null;
6071
+ /**
6072
+ * Status
6073
+ * @enum {string}
6074
+ */
6075
+ status: 'success' | 'error';
6076
+ /** Timestamp */
6077
+ timestamp: string;
6078
+ /**
6079
+ * @description discriminator enum property added by openapi-typescript
6080
+ * @enum {string}
6081
+ */
6082
+ type: 'result';
6083
+ } & {
6084
+ [key: string]: unknown;
6085
+ };
6086
+ /** GeminiSessionRecord */
6087
+ GeminiSessionRecord: {
6088
+ /** Cost */
6089
+ cost: number | null;
6090
+ /**
6091
+ * Created At
6092
+ * Format: date-time
6093
+ */
6094
+ created_at: string;
6095
+ /** Duration */
6096
+ duration: number | null;
6097
+ /**
6098
+ * Feed Seq
6099
+ * @description Position in the session feed and the stream's resume cursor.
6100
+ */
6101
+ feed_seq: number;
6102
+ /**
6103
+ * Id
6104
+ * @description Unique identifier of the record.
6105
+ */
6106
+ id: string;
6107
+ /**
6108
+ * Kind
6109
+ * @default gemini
6110
+ * @constant
6111
+ */
6112
+ kind: 'gemini';
6113
+ /** Model */
6114
+ model: string | null;
6115
+ payload: components['schemas']['GeminiStreamEvent'];
6116
+ /**
6117
+ * Record Format
6118
+ * @default gemini_stream_json@1
6119
+ * @constant
6120
+ */
6121
+ record_format: 'gemini_stream_json@1';
6122
+ /**
6123
+ * Record Type
6124
+ * @description Original record type within its format.
6125
+ */
6126
+ record_type: string;
6127
+ /**
6128
+ * Session Id
6129
+ * @description Session containing this record.
6130
+ */
6131
+ session_id: string;
6132
+ /**
6133
+ * Session Message Id
6134
+ * @description Message this record receives, delivers, requeues, or echoes.
6135
+ */
6136
+ session_message_id: string | null;
6137
+ /**
6138
+ * Source
6139
+ * @default gemini
6140
+ * @constant
6141
+ */
6142
+ source: 'gemini';
6143
+ tokens_info: components['schemas']['TokensInfo'] | null;
6144
+ /** Tools */
6145
+ tools: string[] | null;
6146
+ /**
6147
+ * Turn Id
6148
+ * @description Turn containing this record, when applicable.
6149
+ */
6150
+ turn_id: string | null;
6151
+ };
6152
+ GeminiStreamEvent: components['schemas']['GeminiInitEvent'] | components['schemas']['GeminiMessageEvent'] | components['schemas']['GeminiToolUseEvent'] | components['schemas']['GeminiToolResultEvent'] | components['schemas']['GeminiErrorEvent'] | components['schemas']['GeminiResultEvent'];
6153
+ /** GeminiStreamStats */
6154
+ GeminiStreamStats: {
6155
+ /**
6156
+ * Cached
6157
+ * @default 0
6158
+ */
6159
+ cached: number;
6160
+ /**
6161
+ * Duration Ms
6162
+ * @default 0
6163
+ */
6164
+ duration_ms: number;
6165
+ /**
6166
+ * Input
6167
+ * @default 0
6168
+ */
6169
+ input: number;
6170
+ /**
6171
+ * Input Tokens
6172
+ * @default 0
6173
+ */
6174
+ input_tokens: number;
6175
+ /**
6176
+ * Models
6177
+ * @default {}
6178
+ */
6179
+ models: {
6180
+ [key: string]: components['schemas']['GeminiModelStats'];
6181
+ };
6182
+ /**
6183
+ * Output Tokens
6184
+ * @default 0
6185
+ */
6186
+ output_tokens: number;
6187
+ /**
6188
+ * Tool Calls
6189
+ * @default 0
6190
+ */
6191
+ tool_calls: number;
6192
+ /**
6193
+ * Total Tokens
6194
+ * @default 0
6195
+ */
6196
+ total_tokens: number;
6197
+ } & {
6198
+ [key: string]: unknown;
6199
+ };
6200
+ /** GeminiToolError */
6201
+ GeminiToolError: {
6202
+ /** Message */
6203
+ message: string;
6204
+ /** Type */
6205
+ type: string;
6206
+ } & {
6207
+ [key: string]: unknown;
6208
+ };
6209
+ /** GeminiToolResultEvent */
6210
+ GeminiToolResultEvent: {
6211
+ error?: components['schemas']['GeminiToolError'] | null;
6212
+ /** Output */
6213
+ output?: string | null;
6214
+ /**
6215
+ * Status
6216
+ * @enum {string}
6217
+ */
6218
+ status: 'success' | 'error';
6219
+ /** Timestamp */
6220
+ timestamp: string;
6221
+ /** Tool Id */
6222
+ tool_id: string;
6223
+ /**
6224
+ * @description discriminator enum property added by openapi-typescript
6225
+ * @enum {string}
6226
+ */
6227
+ type: 'tool_result';
6228
+ } & {
6229
+ [key: string]: unknown;
6230
+ };
6231
+ /** GeminiToolUseEvent */
6232
+ GeminiToolUseEvent: {
6233
+ /**
6234
+ * Parameters
6235
+ * @default {}
6236
+ */
6237
+ parameters: {
6238
+ [key: string]: unknown;
6239
+ };
6240
+ /** Timestamp */
6241
+ timestamp: string;
6242
+ /** Tool Id */
6243
+ tool_id: string;
6244
+ /** Tool Name */
6245
+ tool_name: string;
6246
+ /**
6247
+ * @description discriminator enum property added by openapi-typescript
6248
+ * @enum {string}
6249
+ */
6250
+ type: 'tool_use';
6251
+ } & {
6252
+ [key: string]: unknown;
6253
+ };
6254
+ /**
6255
+ * GetAnalyticsMetricsResponse
6256
+ * @description Organization-wide pull-request and review analytics, aggregated
6257
+ * server-side over the requested window and filters, with filter facets
6258
+ * derived from the unfiltered pull-request set.
6259
+ */
6260
+ GetAnalyticsMetricsResponse: {
6261
+ /**
6262
+ * Available Authors
6263
+ * @description Author filter options from the unfiltered window.
6264
+ */
6265
+ available_authors: components['schemas']['AuthorFacet'][];
6266
+ /**
6267
+ * Available Repos
6268
+ * @description Repository filter options from the unfiltered window.
6269
+ */
6270
+ available_repos: components['schemas']['RepoFacet'][];
6271
+ /**
6272
+ * Contributors
6273
+ * @description Per-contributor breakdown, most merged pull requests first.
6274
+ */
6275
+ contributors: components['schemas']['ContributorUsage'][];
6276
+ /** @description The width of each bucket in series, chosen from the window's length. */
6277
+ interval: components['schemas']['SeriesInterval'];
6278
+ /**
6279
+ * Repositories
6280
+ * @description Per-repository breakdown, most merged pull requests first.
6281
+ */
6282
+ repositories: components['schemas']['AnalyticsRepoUsage'][];
6283
+ /**
6284
+ * Reviewers
6285
+ * @description Per-reviewer breakdown, most reviews first.
6286
+ */
6287
+ reviewers: components['schemas']['ReviewerUsage'][];
6288
+ /**
6289
+ * Series
6290
+ * @description Buckets covering the window, oldest first, one interval wide each.
6291
+ */
6292
+ series: components['schemas']['AnalyticsMetricsBucket'][];
6293
+ /** @description Window-wide totals. */
6294
+ totals: components['schemas']['AnalyticsMetricsTotals'];
6295
+ };
6296
+ /**
6297
+ * GetAnalyticsPullRequestsResponse
6298
+ * @description Pull-request analytics for the requested window: per-day trends with
6299
+ * human/bot splits, window totals, filter facets, and the most recent pull
6300
+ * requests.
6301
+ */
6302
+ GetAnalyticsPullRequestsResponse: {
6303
+ /** @description Available filter options, from the unfiltered window. */
6304
+ facets: components['schemas']['PullRequestFacets'];
6305
+ /** @description The width of each bucket in series, chosen from the window's length. */
6306
+ interval: components['schemas']['SeriesInterval'];
6307
+ /**
6308
+ * Recent
6309
+ * @description The most recent pull requests, newest first, capped.
6310
+ */
6311
+ recent: components['schemas']['RecentPullRequest'][];
6312
+ /**
6313
+ * Series
6314
+ * @description Buckets covering the window, oldest first, one interval wide each.
6315
+ */
6316
+ series: components['schemas']['PullRequestsBucket'][];
6317
+ /** @description Window-wide totals. */
6318
+ totals: components['schemas']['PullRequestsTotals'];
6319
+ /**
6320
+ * Truncated
6321
+ * @description True when the window hit the scan limit and the figures undercount.
6322
+ */
6323
+ truncated: boolean;
6324
+ };
6325
+ /**
6326
+ * GetAnalyticsReviewsResponse
6327
+ * @description Review analytics for the requested window: the review and inline-comment
6328
+ * feeds, per-day trends, full-set totals, and filter facets.
6329
+ */
6330
+ GetAnalyticsReviewsResponse: {
6331
+ /** @description Available filter options. */
6332
+ facets: components['schemas']['ReviewFacets'];
6333
+ /** @description The width of each bucket in series, chosen from the window's length. */
6334
+ interval: components['schemas']['SeriesInterval'];
6335
+ /**
6336
+ * Review Comments
6337
+ * @description The inline-comment feed, newest first, capped.
6338
+ */
6339
+ review_comments: components['schemas']['ReviewCommentListItem'][];
6340
+ /**
6341
+ * Reviews
6342
+ * @description The review feed, newest first, capped.
6343
+ */
6344
+ reviews: components['schemas']['ReviewListItem'][];
6345
+ /**
6346
+ * Series
6347
+ * @description Buckets covering the window, oldest first, one interval wide each.
6348
+ */
6349
+ series: components['schemas']['ReviewsBucket'][];
6350
+ /** @description Window-wide totals. */
6351
+ totals: components['schemas']['ReviewsTotals'];
6352
+ };
6353
+ /**
6354
+ * GetIntegrationsResponse
6355
+ * @description Everything connected for the calling account, in one call. A key is
6222
6356
  * null (or an empty list for sentry) when that integration isn't connected,
6223
6357
  * so callers can see the full universe of integrations, not just the
6224
6358
  * connected ones.
@@ -6653,11 +6787,6 @@ interface components {
6653
6787
  role?: components['schemas']['OrganizationRole'] | null;
6654
6788
  /** @description The Slack identity linked to this member, when one is known. */
6655
6789
  slack?: components['schemas']['LinkedSlackIdentity'] | null;
6656
- /**
6657
- * Subscriptions
6658
- * @description The subscriptions this member has connected, one per provider, in a stable order. Empty when none is saved.
6659
- */
6660
- subscriptions?: components['schemas']['MemberSubscription'][];
6661
6790
  };
6662
6791
  /**
6663
6792
  * GithubMembersListResponse
@@ -7075,7 +7204,7 @@ interface components {
7075
7204
  sessions: components['schemas']['HandlerSessionCounts'];
7076
7205
  /**
7077
7206
  * Spend Windows
7078
- * @description Current trailing 1-, 7-, and 28-day credit debits and enforced handler budgets. Based on usage timestamps across all this handler's sessions and revisions, independently of the start/end session creation filters.
7207
+ * @description Current trailing 1-, 7-, and 28-day spend, including subscription tokens, and enforced handler budgets. Based on usage timestamps across all this handler's sessions and revisions, independently of the start/end session creation filters.
7079
7208
  */
7080
7209
  spend_windows: components['schemas']['ConfigSpendWindow'][];
7081
7210
  /**
@@ -7138,7 +7267,7 @@ interface components {
7138
7267
  * Harness
7139
7268
  * @enum {string}
7140
7269
  */
7141
- Harness: 'claude_code' | 'codex';
7270
+ Harness: 'claude_code' | 'codex' | 'gemini';
7142
7271
  /**
7143
7272
  * Identity
7144
7273
  * @description The identity behind the caller's credential.
@@ -7276,12 +7405,14 @@ interface components {
7276
7405
  /** IntegrationSessionConfig */
7277
7406
  IntegrationSessionConfig: {
7278
7407
  budget?: components['schemas']['BudgetConfig-Output'];
7279
- /** @description Claude Code input and native options. Set exactly one of claude_code or codex. */
7408
+ /** @description Claude Code input and native options. Set exactly one of claude_code, codex, or gemini. */
7280
7409
  claude_code?: components['schemas']['ClaudeConfig-Output'] | null;
7281
- /** @description Codex input and native options. Set exactly one of claude_code or codex. */
7410
+ /** @description Codex input and native options. Set exactly one of claude_code, codex, or gemini. */
7282
7411
  codex?: components['schemas']['CodexConfig-Output'] | null;
7283
7412
  /** Environment */
7284
7413
  environment?: string | components['schemas']['EnvironmentConfig-Output'];
7414
+ /** @description Gemini CLI input and native options. Set exactly one of claude_code, codex, or gemini. */
7415
+ gemini?: components['schemas']['GeminiConfig-Output'] | null;
7285
7416
  /** Metadata */
7286
7417
  metadata?: {
7287
7418
  [key: string]: string;
@@ -7294,11 +7425,19 @@ interface components {
7294
7425
  [key: string]: unknown;
7295
7426
  };
7296
7427
  codex?: null;
7428
+ gemini?: null;
7297
7429
  } | {
7298
7430
  claude_code?: null;
7299
7431
  codex: {
7300
7432
  [key: string]: unknown;
7301
7433
  };
7434
+ gemini?: null;
7435
+ } | {
7436
+ claude_code?: null;
7437
+ codex?: null;
7438
+ gemini: {
7439
+ [key: string]: unknown;
7440
+ };
7302
7441
  });
7303
7442
  /**
7304
7443
  * IssueAction
@@ -7888,27 +8027,6 @@ interface components {
7888
8027
  /** Name */
7889
8028
  name: string;
7890
8029
  };
7891
- /**
7892
- * MemberSubscription
7893
- * @description One subscription a member has connected. Never carries the token or
7894
- * its last characters; those stay on the owner's `/v1/user/subscription_tokens`
7895
- * routes.
7896
- */
7897
- MemberSubscription: {
7898
- /**
7899
- * Enabled
7900
- * @description Whether the subscription is routing. Only the owner's successful verify sets it.
7901
- */
7902
- enabled: boolean;
7903
- /** @description The harness the subscription drives. */
7904
- provider: components['schemas']['SubscriptionProvider'];
7905
- /**
7906
- * Updated At
7907
- * Format: date-time
7908
- * @description When the owner last saved or verified the subscription.
7909
- */
7910
- updated_at: string;
7911
- };
7912
8030
  /**
7913
8031
  * MemorySize
7914
8032
  * @description A memory size as explicit units, summed (binary: 1GB = 1024MB = 1024MiB).
@@ -8226,7 +8344,7 @@ interface components {
8226
8344
  aliases: string[];
8227
8345
  /**
8228
8346
  * Capabilities
8229
- * @description Capabilities supported by this harness/model on the Ellipsis-managed provider route.
8347
+ * @description Capabilities supported by this harness/model.
8230
8348
  */
8231
8349
  capabilities: components['schemas']['SessionCapability'][];
8232
8350
  /**
@@ -8290,7 +8408,7 @@ interface components {
8290
8408
  * Serving path is irrelevant here. Anthropic built every Claude model, so all of
8291
8409
  * them are ANTHROPIC even though OpenRouter is what actually serves them.
8292
8410
  * Likewise the `gpt-5.6-*` rows are OPENAI (OpenAI's models, resold to us by
8293
- * OpenRouter).
8411
+ * OpenRouter) and the `gemini-*` rows are GOOGLE.
8294
8412
  *
8295
8413
  * So this is deliberately NOT derived from `EgressRoute.provider`: routing is an
8296
8414
  * infrastructure fact that changes when we move a model between providers, while
@@ -8301,7 +8419,7 @@ interface components {
8301
8419
  * model.
8302
8420
  * @enum {string}
8303
8421
  */
8304
- ModelManufacturer: 'anthropic' | 'openai';
8422
+ ModelManufacturer: 'anthropic' | 'openai' | 'google';
8305
8423
  /** ModelRateCardApi */
8306
8424
  ModelRateCardApi: {
8307
8425
  /** Cache Read Per 1M Tokens */
@@ -8602,40 +8720,41 @@ interface components {
8602
8720
  repository_name: string;
8603
8721
  };
8604
8722
  /**
8605
- * PullRequestsDayBucket
8606
- * @description Pull-request activity on one UTC day. `prs`, `lines`, `authors`, and
8607
- * `commits` count pull requests created that day; `merged` and `merge_time`
8608
- * cover pull requests merged that day; `closed` counts pull requests closed
8609
- * without merging that day.
8723
+ * PullRequestsBucket
8724
+ * @description Pull-request activity in one bucket of the window. `prs`, `lines`,
8725
+ * `authors`, and `commits` count pull requests created in the bucket.
8726
+ * `merged` and `merge_time` cover pull requests merged in the bucket, and
8727
+ * `closed` counts pull requests closed without merging in the bucket.
8610
8728
  *
8611
- * Each count of created pull requests also splits bots from humans: `*_bot` counts pull
8612
- * requests whose author is a bot (a Bot account or a `[bot]` login),
8613
- * `*_human` is everything else, so the pair always sums to the total.
8729
+ * Each count of created pull requests also splits bots from humans. `*_bot`
8730
+ * counts pull requests whose author is a bot (a Bot account or a `[bot]`
8731
+ * login), and `*_human` is everything else, so the pair always sums to the
8732
+ * total.
8614
8733
  */
8615
- PullRequestsDayBucket: {
8734
+ PullRequestsBucket: {
8616
8735
  /**
8617
8736
  * Authors
8618
- * @description Distinct pull-request authors active this day, humans and bots.
8737
+ * @description Distinct pull-request authors active in this bucket, humans and bots.
8619
8738
  */
8620
8739
  authors: number;
8621
8740
  /**
8622
8741
  * Authors Bot
8623
- * @description Distinct bot authors active this day.
8742
+ * @description Distinct bot authors active in this bucket.
8624
8743
  */
8625
8744
  authors_bot: number;
8626
8745
  /**
8627
8746
  * Authors Human
8628
- * @description Distinct human authors active this day.
8747
+ * @description Distinct human authors active in this bucket.
8629
8748
  */
8630
8749
  authors_human: number;
8631
8750
  /**
8632
8751
  * Closed
8633
- * @description Pull requests closed without merging this day.
8752
+ * @description Pull requests closed without merging in this bucket.
8634
8753
  */
8635
8754
  closed: number;
8636
8755
  /**
8637
8756
  * Commits
8638
- * @description Total commits across pull requests created this day.
8757
+ * @description Total commits across pull requests created in this bucket.
8639
8758
  */
8640
8759
  commits: number;
8641
8760
  /**
@@ -8650,12 +8769,13 @@ interface components {
8650
8769
  commits_human: number;
8651
8770
  /**
8652
8771
  * Date
8653
- * @description The UTC day, formatted YYYY-MM-DD.
8772
+ * Format: date-time
8773
+ * @description When the bucket starts, in UTC.
8654
8774
  */
8655
8775
  date: string;
8656
8776
  /**
8657
8777
  * Lines
8658
- * @description Lines added plus deleted across pull requests created this day.
8778
+ * @description Lines added plus deleted across pull requests created in this bucket.
8659
8779
  */
8660
8780
  lines: number;
8661
8781
  /**
@@ -8672,22 +8792,22 @@ interface components {
8672
8792
  merge_time: components['schemas']['DurationPercentiles'];
8673
8793
  /**
8674
8794
  * Merged
8675
- * @description Pull requests merged this day.
8795
+ * @description Pull requests merged in this bucket.
8676
8796
  */
8677
8797
  merged: number;
8678
8798
  /**
8679
8799
  * Prs
8680
- * @description Pull requests created this day.
8800
+ * @description Pull requests created in this bucket.
8681
8801
  */
8682
8802
  prs: number;
8683
8803
  /**
8684
8804
  * Prs Bot
8685
- * @description Pull requests created this day by bot authors.
8805
+ * @description Pull requests created in this bucket by bot authors.
8686
8806
  */
8687
8807
  prs_bot: number;
8688
8808
  /**
8689
8809
  * Prs Human
8690
- * @description Pull requests created this day by human authors.
8810
+ * @description Pull requests created in this bucket by human authors.
8691
8811
  */
8692
8812
  prs_human: number;
8693
8813
  };
@@ -8740,17 +8860,6 @@ interface components {
8740
8860
  */
8741
8861
  secrets: components['schemas']['SecretInput'][];
8742
8862
  };
8743
- /**
8744
- * PutSubscriptionTokenRequest
8745
- * @description The token to store. Write-only: it is never read back.
8746
- */
8747
- PutSubscriptionTokenRequest: {
8748
- /**
8749
- * Token
8750
- * @description For `claude`, the OAuth token from `claude setup-token`. For `codex`, the JSON contents of auth.json from a ChatGPT login, including tokens.access_token and tokens.account_id.
8751
- */
8752
- token: string;
8753
- };
8754
8863
  /**
8755
8864
  * ReactCheckRun
8756
8865
  * @description A check run changing state on a commit. A check run is a GitHub Actions job or a check another CI app reports. `on` lists the states that fire. `names` matches check names exactly or by a prefix ending in `*`. `branch` is the branch the check ran on. `for` is the author of the commit the check ran on. Needs the Checks permission.
@@ -9314,7 +9423,7 @@ interface components {
9314
9423
  * routes; nothing maps to it yet.
9315
9424
  * @enum {string}
9316
9425
  */
9317
- Resource: 'account' | 'alerts' | 'sessions' | 'configs' | 'defaults' | 'environments' | 'secrets' | 'templates' | 'integrations' | 'reviews' | 'tokens' | 'webhooks' | 'user';
9426
+ Resource: 'account' | 'alerts' | 'sessions' | 'configs' | 'defaults' | 'environments' | 'secrets' | 'integrations' | 'reviews' | 'tokens' | 'webhooks' | 'user';
9318
9427
  /** Review */
9319
9428
  Review: {
9320
9429
  /** Base Sha */
@@ -9482,9 +9591,9 @@ interface components {
9482
9591
  id: number;
9483
9592
  /**
9484
9593
  * Path
9485
- * @description The file path the comment is anchored to.
9594
+ * @description The file path the comment is anchored to, or null when GitHub can't place the comment in the diff.
9486
9595
  */
9487
- path: string;
9596
+ path: string | null;
9488
9597
  /**
9489
9598
  * Pr Html Url
9490
9599
  * @description The parent pull request's URL on GitHub.
@@ -9894,9 +10003,9 @@ interface components {
9894
10003
  Reviewer: {
9895
10004
  /** @default {} */
9896
10005
  budget: components['schemas']['RunBudget'];
9897
- /** @description Claude Code input and native options. Set exactly one of claude_code or codex. */
10006
+ /** @description Claude Code input and native options. Set exactly one of claude_code, codex, or gemini. */
9898
10007
  claude_code?: components['schemas']['ClaudeConfig-Output'] | null;
9899
- /** @description Codex input and native options. Set exactly one of claude_code or codex. */
10008
+ /** @description Codex input and native options. Set exactly one of claude_code, codex, or gemini. */
9900
10009
  codex?: components['schemas']['CodexConfig-Output'] | null;
9901
10010
  /** @default {} */
9902
10011
  comments: components['schemas']['ReviewerComments'];
@@ -9911,6 +10020,8 @@ interface components {
9911
10020
  * }
9912
10021
  */
9913
10022
  environment: string | components['schemas']['EnvironmentConfig-Output'];
10023
+ /** @description Gemini CLI input and native options. Set exactly one of claude_code, codex, or gemini. */
10024
+ gemini?: components['schemas']['GeminiConfig-Output'] | null;
9914
10025
  /** Name */
9915
10026
  name: string;
9916
10027
  /**
@@ -9935,11 +10046,19 @@ interface components {
9935
10046
  [key: string]: unknown;
9936
10047
  };
9937
10048
  codex?: null;
10049
+ gemini?: null;
9938
10050
  } | {
9939
10051
  claude_code?: null;
9940
10052
  codex: {
9941
10053
  [key: string]: unknown;
9942
10054
  };
10055
+ gemini?: null;
10056
+ } | {
10057
+ claude_code?: null;
10058
+ codex?: null;
10059
+ gemini: {
10060
+ [key: string]: unknown;
10061
+ };
9943
10062
  });
9944
10063
  /** ReviewerComments */
9945
10064
  ReviewerComments: {
@@ -9988,65 +10107,66 @@ interface components {
9988
10107
  reviews: number;
9989
10108
  };
9990
10109
  /**
9991
- * ReviewsDayBucket
9992
- * @description Review activity on one UTC day. Verdict counts and distinct-reviewer
9993
- * counts come from the review feed (which is capped); comment counts come
9994
- * from the full, uncapped comment metrics.
10110
+ * ReviewsBucket
10111
+ * @description Review activity in one bucket of the window. Verdict counts and
10112
+ * distinct-reviewer counts come from the review feed (which is capped), and
10113
+ * comment counts come from the full, uncapped comment metrics.
9995
10114
  */
9996
- ReviewsDayBucket: {
10115
+ ReviewsBucket: {
9997
10116
  /**
9998
10117
  * Approved
9999
- * @description Approving reviews this day.
10118
+ * @description Approving reviews in this bucket.
10000
10119
  */
10001
10120
  approved: number;
10002
10121
  /**
10003
10122
  * Changes Requested
10004
- * @description Changes-requested reviews this day.
10123
+ * @description Changes-requested reviews in this bucket.
10005
10124
  */
10006
10125
  changes_requested: number;
10007
10126
  /**
10008
10127
  * Commented
10009
- * @description Comment-only reviews this day.
10128
+ * @description Comment-only reviews in this bucket.
10010
10129
  */
10011
10130
  commented: number;
10012
10131
  /**
10013
10132
  * Comments
10014
- * @description Inline review comments created this day.
10133
+ * @description Inline review comments created in this bucket.
10015
10134
  */
10016
10135
  comments: number;
10017
10136
  /**
10018
10137
  * Comments Bot
10019
- * @description Inline review comments by bot authors this day.
10138
+ * @description Inline review comments by bot authors in this bucket.
10020
10139
  */
10021
10140
  comments_bot: number;
10022
10141
  /**
10023
10142
  * Comments Human
10024
- * @description Inline review comments by human authors this day.
10143
+ * @description Inline review comments by human authors in this bucket.
10025
10144
  */
10026
10145
  comments_human: number;
10027
10146
  /**
10028
10147
  * Date
10029
- * @description The UTC day, formatted YYYY-MM-DD.
10148
+ * Format: date-time
10149
+ * @description When the bucket starts, in UTC.
10030
10150
  */
10031
10151
  date: string;
10032
10152
  /**
10033
10153
  * Reviewers Bot
10034
- * @description Distinct bot reviewers this day.
10154
+ * @description Distinct bot reviewers in this bucket.
10035
10155
  */
10036
10156
  reviewers_bot: number;
10037
10157
  /**
10038
10158
  * Reviewers Human
10039
- * @description Distinct human reviewers this day.
10159
+ * @description Distinct human reviewers in this bucket.
10040
10160
  */
10041
10161
  reviewers_human: number;
10042
10162
  /**
10043
10163
  * Reviewers Total
10044
- * @description Distinct reviewers this day.
10164
+ * @description Distinct reviewers in this bucket.
10045
10165
  */
10046
10166
  reviewers_total: number;
10047
10167
  /**
10048
10168
  * Reviews
10049
- * @description All reviews submitted this day, regardless of verdict.
10169
+ * @description All reviews submitted in this bucket, regardless of verdict.
10050
10170
  */
10051
10171
  reviews: number;
10052
10172
  };
@@ -10618,6 +10738,15 @@ interface components {
10618
10738
  /** Projects */
10619
10739
  projects: string[];
10620
10740
  };
10741
+ /**
10742
+ * SeriesInterval
10743
+ * @description The width of one entry in a time series, chosen from the window's
10744
+ * length. A window of up to 3 days is split by hour, a window of up to 120
10745
+ * days by day, and a longer window by week. Every entry starts on a UTC
10746
+ * boundary of its interval, and a week starts on Monday.
10747
+ * @enum {string}
10748
+ */
10749
+ SeriesInterval: 'hour' | 'day' | 'week';
10621
10750
  /**
10622
10751
  * Session
10623
10752
  * @description An agent session: one conversation with an agent. Returned by
@@ -10638,9 +10767,9 @@ interface components {
10638
10767
  * @default 0
10639
10768
  */
10640
10769
  budget: number;
10641
- /** @description Claude Code input and native options. Set exactly one of claude_code or codex. */
10770
+ /** @description Claude Code input and native options. Set exactly one of claude_code, codex, or gemini. */
10642
10771
  claude_code: components['schemas']['ClaudeConfig-Output'] | null;
10643
- /** @description Codex input and native options. Set exactly one of claude_code or codex. */
10772
+ /** @description Codex input and native options. Set exactly one of claude_code, codex, or gemini. */
10644
10773
  codex: components['schemas']['CodexConfig-Output'] | null;
10645
10774
  /** @description Whether the session can take more messages, and whether an agent is warm to answer one. */
10646
10775
  conversation: components['schemas']['SessionConversation'];
@@ -10659,6 +10788,8 @@ interface components {
10659
10788
  * @description The typed external event that started the session; null for direct and scheduled starts.
10660
10789
  */
10661
10790
  event: (components['schemas']['GithubPullRequestEvent'] | components['schemas']['GithubIssueEvent'] | components['schemas']['GithubPushEvent'] | components['schemas']['GithubCheckRunEvent'] | components['schemas']['GithubCheckSuiteEvent'] | components['schemas']['GithubWorkflowRunEvent'] | components['schemas']['GithubStatusEvent'] | components['schemas']['GithubReleaseEvent'] | components['schemas']['LinearIssueEvent'] | components['schemas']['SlackMessageEvent'] | components['schemas']['SlackChannelCreatedEvent'] | components['schemas']['SentryAlertEvent']) | null;
10791
+ /** @description Gemini CLI input and native options. Set exactly one of claude_code, codex, or gemini. */
10792
+ gemini: components['schemas']['GeminiConfig-Output'] | null;
10662
10793
  /** @description What the session did to git, one entry per repository in its workspace: the commit and branch it sits on, per-file line counts for its uncommitted changes, and the pull requests it opened. Null if nothing was ever captured. */
10663
10794
  git: components['schemas']['SessionGit'] | null;
10664
10795
  /** @description The saved handler and its effective display name when this session started, frozen at creation. Null for built-in responders, legacy sessions, and sessions started without a handler. */
@@ -10706,11 +10837,19 @@ interface components {
10706
10837
  [key: string]: unknown;
10707
10838
  };
10708
10839
  codex: null;
10840
+ gemini: null;
10709
10841
  } | {
10710
10842
  claude_code: null;
10711
10843
  codex: {
10712
10844
  [key: string]: unknown;
10713
10845
  };
10846
+ gemini: null;
10847
+ } | {
10848
+ claude_code: null;
10849
+ codex: null;
10850
+ gemini: {
10851
+ [key: string]: unknown;
10852
+ };
10714
10853
  });
10715
10854
  /**
10716
10855
  * SessionAgent
@@ -10906,13 +11045,15 @@ interface components {
10906
11045
  */
10907
11046
  'SessionConfig-Input': {
10908
11047
  budget?: components['schemas']['BudgetConfig-Input'];
10909
- /** @description Claude Code input and native options. Set exactly one of claude_code or codex. */
11048
+ /** @description Claude Code input and native options. Set exactly one of claude_code, codex, or gemini. */
10910
11049
  claude_code?: components['schemas']['ClaudeConfig-Input'] | null;
10911
- /** @description Codex input and native options. Set exactly one of claude_code or codex. */
11050
+ /** @description Codex input and native options. Set exactly one of claude_code, codex, or gemini. */
10912
11051
  codex?: components['schemas']['CodexConfig-Input'] | null;
10913
11052
  conversation?: components['schemas']['SessionConversationConfig-Input'];
10914
11053
  /** Environment */
10915
11054
  environment?: string | components['schemas']['EnvironmentConfig-Input'];
11055
+ /** @description Gemini CLI input and native options. Set exactly one of claude_code, codex, or gemini. */
11056
+ gemini?: components['schemas']['GeminiConfig-Input'] | null;
10916
11057
  /**
10917
11058
  * Metadata
10918
11059
  * @description Arbitrary string key/value metadata stored on every session.
@@ -10929,11 +11070,19 @@ interface components {
10929
11070
  [key: string]: unknown;
10930
11071
  };
10931
11072
  codex?: null;
11073
+ gemini?: null;
10932
11074
  } | {
10933
11075
  claude_code?: null;
10934
11076
  codex: {
10935
11077
  [key: string]: unknown;
10936
11078
  };
11079
+ gemini?: null;
11080
+ } | {
11081
+ claude_code?: null;
11082
+ codex?: null;
11083
+ gemini: {
11084
+ [key: string]: unknown;
11085
+ };
10937
11086
  });
10938
11087
  /**
10939
11088
  * SessionConfig
@@ -10952,9 +11101,9 @@ interface components {
10952
11101
  'SessionConfig-Output': {
10953
11102
  /** @default {} */
10954
11103
  budget: components['schemas']['BudgetConfig-Output'];
10955
- /** @description Claude Code input and native options. Set exactly one of claude_code or codex. */
11104
+ /** @description Claude Code input and native options. Set exactly one of claude_code, codex, or gemini. */
10956
11105
  claude_code: components['schemas']['ClaudeConfig-Output'] | null;
10957
- /** @description Codex input and native options. Set exactly one of claude_code or codex. */
11106
+ /** @description Codex input and native options. Set exactly one of claude_code, codex, or gemini. */
10958
11107
  codex: components['schemas']['CodexConfig-Output'] | null;
10959
11108
  /**
10960
11109
  * @default {
@@ -10973,6 +11122,8 @@ interface components {
10973
11122
  * }
10974
11123
  */
10975
11124
  environment: string | components['schemas']['EnvironmentConfig-Output'];
11125
+ /** @description Gemini CLI input and native options. Set exactly one of claude_code, codex, or gemini. */
11126
+ gemini: components['schemas']['GeminiConfig-Output'] | null;
10976
11127
  /**
10977
11128
  * Metadata
10978
11129
  * @description Arbitrary string key/value metadata stored on every session.
@@ -10999,11 +11150,19 @@ interface components {
10999
11150
  [key: string]: unknown;
11000
11151
  };
11001
11152
  codex: null;
11153
+ gemini: null;
11002
11154
  } | {
11003
11155
  claude_code: null;
11004
11156
  codex: {
11005
11157
  [key: string]: unknown;
11006
11158
  };
11159
+ gemini: null;
11160
+ } | {
11161
+ claude_code: null;
11162
+ codex: null;
11163
+ gemini: {
11164
+ [key: string]: unknown;
11165
+ };
11007
11166
  });
11008
11167
  /**
11009
11168
  * SessionConversation
@@ -11566,7 +11725,7 @@ interface components {
11566
11725
  */
11567
11726
  status: 'open' | 'draft' | 'merged' | 'closed';
11568
11727
  };
11569
- SessionRecord: components['schemas']['ClaudeSessionRecord'] | components['schemas']['ClaudeNativeSessionRecord'] | components['schemas']['CodexSessionRecord'] | components['schemas']['CodexAppServerSessionRecord'] | components['schemas']['PlatformSessionRecord'] | components['schemas']['UnknownSessionRecord'];
11728
+ SessionRecord: components['schemas']['ClaudeSessionRecord'] | components['schemas']['ClaudeNativeSessionRecord'] | components['schemas']['CodexSessionRecord'] | components['schemas']['CodexAppServerSessionRecord'] | components['schemas']['GeminiSessionRecord'] | components['schemas']['PlatformSessionRecord'] | components['schemas']['UnknownSessionRecord'];
11570
11729
  /** SessionRecordSearchHit */
11571
11730
  SessionRecordSearchHit: {
11572
11731
  /**
@@ -12276,9 +12435,9 @@ interface components {
12276
12435
  StartAgentSessionRequest: {
12277
12436
  /** @description Spend limit for this session: `session` is the most it may spend, in US dollars. Omitted, an agent session keeps the agent's limit and a raw session takes the organization's default. Above the organization's per-session ceiling is a 400. `day`, `week`, and `month` are agent-wide limits and are rejected with a 422. */
12278
12437
  budget?: components['schemas']['RunBudget'] | null;
12279
- /** @description Claude Code options for this session. Sent fields replace the agent's; naming Claude Code on a Codex agent replaces its harness and requires a model. Set at most one of claude_code or codex. */
12438
+ /** @description Claude Code options for this session. Sent fields replace the agent's; naming Claude Code on an agent that runs another harness replaces its harness and requires a model. Set at most one of claude_code, codex, or gemini. */
12280
12439
  claude_code?: components['schemas']['ClaudeOverrides'] | null;
12281
- /** @description Codex options for this session. Sent fields replace the agent's; naming Codex on a Claude Code agent replaces its harness and requires a model. Set at most one of claude_code or codex. */
12440
+ /** @description Codex options for this session. Sent fields replace the agent's; naming Codex on an agent that runs another harness replaces its harness and requires a model. Set at most one of claude_code, codex, or gemini. */
12282
12441
  codex?: components['schemas']['CodexOverrides'] | null;
12283
12442
  /** @description Conversation settings. Omitted, a raw session is interactive and an agent session keeps the agent's setting. State, warmth, prompting, and the turn are server-owned response fields. */
12284
12443
  conversation?: components['schemas']['SessionConversationConfig-Input'];
@@ -12292,6 +12451,8 @@ interface components {
12292
12451
  * @description Skip the image cache for this session's initial provision: a fresh full build whose snapshot then refreshes the cache for later sessions. The CLI's `--rebuild`.
12293
12452
  */
12294
12453
  force_rebuild?: boolean;
12454
+ /** @description Gemini CLI options for this session. Sent fields replace the agent's; naming Gemini CLI on an agent that runs another harness replaces its harness and requires a model. Set at most one of claude_code, codex, or gemini. */
12455
+ gemini?: components['schemas']['GeminiOverrides'] | null;
12295
12456
  /**
12296
12457
  * Images
12297
12458
  * @description Images attached to the first message, base64 inline. Requires the model's `images` capability, listed by `/v1/account/models`. Each becomes an `[Image #N]` placeholder in the prompt and an image block on turn 0. Up to 10, 5 MiB each; PNG, JPEG, GIF, or WebP.
@@ -12374,9 +12535,9 @@ interface components {
12374
12535
  StartSessionRequest: {
12375
12536
  /** @description Spend limit for this session: `session` is the most it may spend, in US dollars. Omitted, an agent session keeps the agent's limit and a raw session takes the organization's default. Above the organization's per-session ceiling is a 400. `day`, `week`, and `month` are agent-wide limits and are rejected with a 422. */
12376
12537
  budget?: components['schemas']['RunBudget'] | null;
12377
- /** @description Claude Code input and native options. Set exactly one of claude_code or codex. */
12538
+ /** @description Claude Code input and native options. Set exactly one of claude_code, codex, or gemini. */
12378
12539
  claude_code?: components['schemas']['ClaudeConfig-Input'] | null;
12379
- /** @description Codex input and native options. Set exactly one of claude_code or codex. */
12540
+ /** @description Codex input and native options. Set exactly one of claude_code, codex, or gemini. */
12380
12541
  codex?: components['schemas']['CodexConfig-Input'] | null;
12381
12542
  /** @description Conversation settings. Omitted, a raw session is interactive and an agent session keeps the agent's setting. State, warmth, prompting, and the turn are server-owned response fields. */
12382
12543
  conversation?: components['schemas']['SessionConversationConfig-Input'];
@@ -12390,6 +12551,8 @@ interface components {
12390
12551
  * @description Skip the image cache for this session's initial provision: a fresh full build whose snapshot then refreshes the cache for later sessions. The CLI's `--rebuild`.
12391
12552
  */
12392
12553
  force_rebuild?: boolean;
12554
+ /** @description Gemini CLI input and native options. Set exactly one of claude_code, codex, or gemini. */
12555
+ gemini?: components['schemas']['GeminiConfig-Input'] | null;
12393
12556
  /**
12394
12557
  * Images
12395
12558
  * @description Images attached to the first message, base64 inline. Requires the model's `images` capability, listed by `/v1/account/models`. Each becomes an `[Image #N]` placeholder in the prompt and an image block on turn 0. Up to 10, 5 MiB each; PNG, JPEG, GIF, or WebP.
@@ -12416,11 +12579,19 @@ interface components {
12416
12579
  [key: string]: unknown;
12417
12580
  };
12418
12581
  codex?: null;
12582
+ gemini?: null;
12419
12583
  } | {
12420
12584
  claude_code?: null;
12421
12585
  codex: {
12422
12586
  [key: string]: unknown;
12423
12587
  };
12588
+ gemini?: null;
12589
+ } | {
12590
+ claude_code?: null;
12591
+ codex?: null;
12592
+ gemini: {
12593
+ [key: string]: unknown;
12594
+ };
12424
12595
  });
12425
12596
  /**
12426
12597
  * StatusAction
@@ -12441,152 +12612,6 @@ interface components {
12441
12612
  /** Ws Url */
12442
12613
  ws_url: string;
12443
12614
  };
12444
- /**
12445
- * SubscriptionOverage
12446
- * @description The plan's paid overage balance, when it has one.
12447
- */
12448
- SubscriptionOverage: {
12449
- /**
12450
- * Disabled Reason
12451
- * @description Why overage is unavailable, in the provider's own words. Empty when it is available or no reason was given.
12452
- * @default
12453
- */
12454
- disabled_reason: string;
12455
- /**
12456
- * In Use
12457
- * @description Whether calls are currently being served from the overage balance rather than the included windows.
12458
- * @default false
12459
- */
12460
- in_use: boolean;
12461
- /**
12462
- * Resets At
12463
- * @description When the overage period rolls over. Null when not reported.
12464
- */
12465
- resets_at?: string | null;
12466
- /**
12467
- * Status
12468
- * @description The provider's verdict on the overage balance itself: `allowed`, `allowed_warning`, or `rejected`. Empty when not reported.
12469
- * @default
12470
- */
12471
- status: string;
12472
- /**
12473
- * Surpassed Threshold
12474
- * @description Whether the provider marks the overage balance as nearly spent. Null when not reported.
12475
- */
12476
- surpassed_threshold?: boolean | null;
12477
- /**
12478
- * Utilization
12479
- * @description Fraction of the overage balance spent this period, 0 to 1. Null when not reported.
12480
- */
12481
- utilization?: number | null;
12482
- };
12483
- /**
12484
- * SubscriptionProvider
12485
- * @description Named for the harness the token drives, not the vendor behind it: a
12486
- * developer connects "my Claude subscription", and the path segment they
12487
- * type is `claude`.
12488
- * @enum {string}
12489
- */
12490
- SubscriptionProvider: 'claude' | 'codex';
12491
- /**
12492
- * SubscriptionToken
12493
- * @description One provider's subscription token, as the API publishes it. The token
12494
- * itself is never here — the store is write-only.
12495
- */
12496
- SubscriptionToken: {
12497
- /**
12498
- * Configured
12499
- * @description Whether a token is saved for this provider. False means nothing is stored and the other fields are empty.
12500
- * @default false
12501
- */
12502
- configured: boolean;
12503
- /**
12504
- * Enabled
12505
- * @description Whether the token is routing. Only a successful verify sets it; a failed verify clears it, so a revoked token stops routing.
12506
- * @default false
12507
- */
12508
- enabled: boolean;
12509
- /** @description The harness the token drives. */
12510
- provider: components['schemas']['SubscriptionProvider'];
12511
- /**
12512
- * Token Last4
12513
- * @description The last four characters of the stored token, for display. The token itself is never returned.
12514
- */
12515
- token_last4?: string | null;
12516
- };
12517
- /**
12518
- * SubscriptionTokensListResponse
12519
- * @description Every provider, whether or not a token is saved for it.
12520
- */
12521
- SubscriptionTokensListResponse: {
12522
- /**
12523
- * Tokens
12524
- * @description One entry per supported provider, in a stable order.
12525
- */
12526
- tokens: components['schemas']['SubscriptionToken'][];
12527
- };
12528
- /**
12529
- * SubscriptionUsage
12530
- * @description The plan's last-observed rate-limit state.
12531
- *
12532
- * Display-only. Nothing routes, retries, or falls back on it, and it is only
12533
- * as fresh as the developer's last call through Ellipsis (`observed_at`) —
12534
- * Claude Code run locally on the same plan moves the real windows without us
12535
- * seeing them.
12536
- */
12537
- SubscriptionUsage: {
12538
- /** @description The rolling five-hour session window. */
12539
- five_hour?: components['schemas']['SubscriptionUsageWindow'] | null;
12540
- /**
12541
- * Observed At
12542
- * Format: date-time
12543
- * @description When the response carrying these windows was received.
12544
- */
12545
- observed_at: string;
12546
- /** @description The paid overage balance the plan draws from once its included windows are exhausted. Null for a plan with no overage. */
12547
- overage?: components['schemas']['SubscriptionOverage'] | null;
12548
- /**
12549
- * Representative Claim
12550
- * @description Which window the provider considers binding right now, e.g. `five_hour`. Null when not reported.
12551
- */
12552
- representative_claim?: string | null;
12553
- /** @description The weekly cap. */
12554
- seven_day?: components['schemas']['SubscriptionUsageWindow'] | null;
12555
- /**
12556
- * Status
12557
- * @description The provider's own verdict on the plan right now: `allowed`, `allowed_warning`, or `rejected`.
12558
- */
12559
- status: string;
12560
- };
12561
- /**
12562
- * SubscriptionUsageResponse
12563
- * @description The usage reading, or nothing to show.
12564
- */
12565
- SubscriptionUsageResponse: {
12566
- /** @description Null when no token is enabled for the provider, or when nothing has been observed yet. */
12567
- usage?: components['schemas']['SubscriptionUsage'] | null;
12568
- };
12569
- /**
12570
- * SubscriptionUsageWindow
12571
- * @description One rate-limit window of the developer's plan.
12572
- */
12573
- SubscriptionUsageWindow: {
12574
- /**
12575
- * Resets At
12576
- * @description When the window rolls over and the allowance is restored. Null when the provider did not report it.
12577
- */
12578
- resets_at?: string | null;
12579
- /**
12580
- * Surpassed Threshold
12581
- * @description Whether the provider marks this window as nearly spent. Null when it did not report it, which is not the same as false.
12582
- */
12583
- surpassed_threshold?: boolean | null;
12584
- /**
12585
- * Utilization
12586
- * @description Fraction of the window consumed, 0 to 1.
12587
- */
12588
- utilization: number;
12589
- };
12590
12615
  /**
12591
12616
  * TokenCounts
12592
12617
  * @description Token counts.
@@ -13305,22 +13330,6 @@ interface components {
13305
13330
  /** Error Type */
13306
13331
  type: string;
13307
13332
  };
13308
- /**
13309
- * VerifySubscriptionTokenResponse
13310
- * @description The outcome of a live call on the stored token.
13311
- */
13312
- VerifySubscriptionTokenResponse: {
13313
- /**
13314
- * Message
13315
- * @description Why, in a sentence a developer can act on.
13316
- */
13317
- message: string;
13318
- /**
13319
- * Ok
13320
- * @description Whether the token answered. True means it is now routing; false means it is not, and `enabled` has been cleared.
13321
- */
13322
- ok: boolean;
13323
- };
13324
13333
  /** Webhook */
13325
13334
  Webhook: {
13326
13335
  /** Activated At */
@@ -18366,482 +18375,15 @@ interface operations {
18366
18375
  };
18367
18376
  };
18368
18377
  };
18369
- stop_session: {
18370
- parameters: {
18371
- query?: never;
18372
- header?: {
18373
- 'user-agent'?: string | null;
18374
- };
18375
- path: {
18376
- id: string;
18377
- };
18378
- cookie?: never;
18379
- };
18380
- requestBody?: never;
18381
- responses: {
18382
- /** @description Successful Response */
18383
- 200: {
18384
- headers: {
18385
- [name: string]: unknown;
18386
- };
18387
- content: {
18388
- 'application/json': components['schemas']['SessionResponse'];
18389
- };
18390
- };
18391
- /** @description The bearer token is missing, invalid, or revoked. */
18392
- 401: {
18393
- headers: {
18394
- [name: string]: unknown;
18395
- };
18396
- content: {
18397
- 'application/json': components['schemas']['ErrorResponse'];
18398
- };
18399
- };
18400
- /** @description The credential may not perform this action, or the account is blocked. */
18401
- 403: {
18402
- headers: {
18403
- [name: string]: unknown;
18404
- };
18405
- content: {
18406
- 'application/json': components['schemas']['ErrorResponse'];
18407
- };
18408
- };
18409
- /** @description No such session in your account. */
18410
- 404: {
18411
- headers: {
18412
- [name: string]: unknown;
18413
- };
18414
- content: {
18415
- 'application/json': components['schemas']['ErrorResponse'];
18416
- };
18417
- };
18418
- /** @description No turn is queued, preparing, or running. */
18419
- 409: {
18420
- headers: {
18421
- [name: string]: unknown;
18422
- };
18423
- content: {
18424
- 'application/json': components['schemas']['ErrorResponse'];
18425
- };
18426
- };
18427
- /** @description Validation Error */
18428
- 422: {
18429
- headers: {
18430
- [name: string]: unknown;
18431
- };
18432
- content: {
18433
- 'application/json': components['schemas']['HTTPValidationError'];
18434
- };
18435
- };
18436
- };
18437
- };
18438
- get_session_stream_ticket: {
18439
- parameters: {
18440
- query?: never;
18441
- header?: {
18442
- 'user-agent'?: string | null;
18443
- };
18444
- path: {
18445
- id: string;
18446
- };
18447
- cookie?: never;
18448
- };
18449
- requestBody?: never;
18450
- responses: {
18451
- /** @description Successful Response */
18452
- 200: {
18453
- headers: {
18454
- [name: string]: unknown;
18455
- };
18456
- content: {
18457
- 'application/json': components['schemas']['StreamTicketResponse'];
18458
- };
18459
- };
18460
- /** @description The bearer token is missing, invalid, or revoked. */
18461
- 401: {
18462
- headers: {
18463
- [name: string]: unknown;
18464
- };
18465
- content: {
18466
- 'application/json': components['schemas']['ErrorResponse'];
18467
- };
18468
- };
18469
- /** @description The credential may not perform this action, or the account is blocked. */
18470
- 403: {
18471
- headers: {
18472
- [name: string]: unknown;
18473
- };
18474
- content: {
18475
- 'application/json': components['schemas']['ErrorResponse'];
18476
- };
18477
- };
18478
- /** @description Validation Error */
18479
- 422: {
18480
- headers: {
18481
- [name: string]: unknown;
18482
- };
18483
- content: {
18484
- 'application/json': components['schemas']['HTTPValidationError'];
18485
- };
18486
- };
18487
- };
18488
- };
18489
- ingest_session_transcript: {
18490
- parameters: {
18491
- query?: never;
18492
- header?: {
18493
- 'user-agent'?: string | null;
18494
- };
18495
- path: {
18496
- id: string;
18497
- };
18498
- cookie?: never;
18499
- };
18500
- requestBody: {
18501
- content: {
18502
- 'application/json': components['schemas']['IngestTranscriptRequest'];
18503
- };
18504
- };
18505
- responses: {
18506
- /** @description Successful Response */
18507
- 200: {
18508
- headers: {
18509
- [name: string]: unknown;
18510
- };
18511
- content: {
18512
- 'application/json': components['schemas']['TranscriptIngestResult'];
18513
- };
18514
- };
18515
- /** @description The bearer token is missing, invalid, or revoked. */
18516
- 401: {
18517
- headers: {
18518
- [name: string]: unknown;
18519
- };
18520
- content: {
18521
- 'application/json': components['schemas']['ErrorResponse'];
18522
- };
18523
- };
18524
- /** @description The credential may not perform this action, or the account is blocked. */
18525
- 403: {
18526
- headers: {
18527
- [name: string]: unknown;
18528
- };
18529
- content: {
18530
- 'application/json': components['schemas']['ErrorResponse'];
18531
- };
18532
- };
18533
- /** @description No such session in your account. */
18534
- 404: {
18535
- headers: {
18536
- [name: string]: unknown;
18537
- };
18538
- content: {
18539
- 'application/json': components['schemas']['ErrorResponse'];
18540
- };
18541
- };
18542
- /** @description No turn has started yet. */
18543
- 409: {
18544
- headers: {
18545
- [name: string]: unknown;
18546
- };
18547
- content: {
18548
- 'application/json': components['schemas']['ErrorResponse'];
18549
- };
18550
- };
18551
- /** @description Validation Error */
18552
- 422: {
18553
- headers: {
18554
- [name: string]: unknown;
18555
- };
18556
- content: {
18557
- 'application/json': components['schemas']['HTTPValidationError'];
18558
- };
18559
- };
18560
- };
18561
- };
18562
- get_session_turns: {
18563
- parameters: {
18564
- query?: never;
18565
- header?: {
18566
- 'user-agent'?: string | null;
18567
- };
18568
- path: {
18569
- id: string;
18570
- };
18571
- cookie?: never;
18572
- };
18573
- requestBody?: never;
18574
- responses: {
18575
- /** @description Successful Response */
18576
- 200: {
18577
- headers: {
18578
- [name: string]: unknown;
18579
- };
18580
- content: {
18581
- 'application/json': components['schemas']['SessionTurnsListResponse'];
18582
- };
18583
- };
18584
- /** @description The bearer token is missing, invalid, or revoked. */
18585
- 401: {
18586
- headers: {
18587
- [name: string]: unknown;
18588
- };
18589
- content: {
18590
- 'application/json': components['schemas']['ErrorResponse'];
18591
- };
18592
- };
18593
- /** @description The credential may not perform this action, or the account is blocked. */
18594
- 403: {
18595
- headers: {
18596
- [name: string]: unknown;
18597
- };
18598
- content: {
18599
- 'application/json': components['schemas']['ErrorResponse'];
18600
- };
18601
- };
18602
- /** @description No such session in your account. */
18603
- 404: {
18604
- headers: {
18605
- [name: string]: unknown;
18606
- };
18607
- content: {
18608
- 'application/json': components['schemas']['ErrorResponse'];
18609
- };
18610
- };
18611
- /** @description Validation Error */
18612
- 422: {
18613
- headers: {
18614
- [name: string]: unknown;
18615
- };
18616
- content: {
18617
- 'application/json': components['schemas']['HTTPValidationError'];
18618
- };
18619
- };
18620
- };
18621
- };
18622
- get_session_turn: {
18623
- parameters: {
18624
- query?: never;
18625
- header?: {
18626
- 'user-agent'?: string | null;
18627
- };
18628
- path: {
18629
- session_id: string;
18630
- id: string;
18631
- };
18632
- cookie?: never;
18633
- };
18634
- requestBody?: never;
18635
- responses: {
18636
- /** @description Successful Response */
18637
- 200: {
18638
- headers: {
18639
- [name: string]: unknown;
18640
- };
18641
- content: {
18642
- 'application/json': components['schemas']['SessionTurnResponse'];
18643
- };
18644
- };
18645
- /** @description The bearer token is missing, invalid, or revoked. */
18646
- 401: {
18647
- headers: {
18648
- [name: string]: unknown;
18649
- };
18650
- content: {
18651
- 'application/json': components['schemas']['ErrorResponse'];
18652
- };
18653
- };
18654
- /** @description The credential may not perform this action, or the account is blocked. */
18655
- 403: {
18656
- headers: {
18657
- [name: string]: unknown;
18658
- };
18659
- content: {
18660
- 'application/json': components['schemas']['ErrorResponse'];
18661
- };
18662
- };
18663
- /** @description No such session or turn in your account. */
18664
- 404: {
18665
- headers: {
18666
- [name: string]: unknown;
18667
- };
18668
- content: {
18669
- 'application/json': components['schemas']['ErrorResponse'];
18670
- };
18671
- };
18672
- /** @description Validation Error */
18673
- 422: {
18674
- headers: {
18675
- [name: string]: unknown;
18676
- };
18677
- content: {
18678
- 'application/json': components['schemas']['HTTPValidationError'];
18679
- };
18680
- };
18681
- };
18682
- };
18683
- get_slack_help: {
18684
- parameters: {
18685
- query?: never;
18686
- header?: {
18687
- 'user-agent'?: string | null;
18688
- };
18689
- path?: never;
18690
- cookie?: never;
18691
- };
18692
- requestBody?: never;
18693
- responses: {
18694
- /** @description Successful Response */
18695
- 200: {
18696
- headers: {
18697
- [name: string]: unknown;
18698
- };
18699
- content: {
18700
- 'application/json': components['schemas']['SlackHelpResponse'] | null;
18701
- };
18702
- };
18703
- /** @description The bearer token is missing, invalid, or revoked. */
18704
- 401: {
18705
- headers: {
18706
- [name: string]: unknown;
18707
- };
18708
- content: {
18709
- 'application/json': components['schemas']['ErrorResponse'];
18710
- };
18711
- };
18712
- /** @description The credential may not perform this action, or the account is blocked. */
18713
- 403: {
18714
- headers: {
18715
- [name: string]: unknown;
18716
- };
18717
- content: {
18718
- 'application/json': components['schemas']['ErrorResponse'];
18719
- };
18720
- };
18721
- /** @description Validation Error */
18722
- 422: {
18723
- headers: {
18724
- [name: string]: unknown;
18725
- };
18726
- content: {
18727
- 'application/json': components['schemas']['HTTPValidationError'];
18728
- };
18729
- };
18730
- };
18731
- };
18732
- request_slack_help: {
18733
- parameters: {
18734
- query?: never;
18735
- header?: {
18736
- 'user-agent'?: string | null;
18737
- };
18738
- path?: never;
18739
- cookie?: never;
18740
- };
18741
- requestBody: {
18742
- content: {
18743
- 'application/json': components['schemas']['SlackHelpRequest'];
18744
- };
18745
- };
18746
- responses: {
18747
- /** @description Successful Response */
18748
- 201: {
18749
- headers: {
18750
- [name: string]: unknown;
18751
- };
18752
- content: {
18753
- 'application/json': components['schemas']['SlackHelpResponse'];
18754
- };
18755
- };
18756
- /** @description The bearer token is missing, invalid, or revoked. */
18757
- 401: {
18758
- headers: {
18759
- [name: string]: unknown;
18760
- };
18761
- content: {
18762
- 'application/json': components['schemas']['ErrorResponse'];
18763
- };
18764
- };
18765
- /** @description The credential may not perform this action, or the account is blocked. */
18766
- 403: {
18767
- headers: {
18768
- [name: string]: unknown;
18769
- };
18770
- content: {
18771
- 'application/json': components['schemas']['ErrorResponse'];
18772
- };
18773
- };
18774
- /** @description Validation Error */
18775
- 422: {
18776
- headers: {
18777
- [name: string]: unknown;
18778
- };
18779
- content: {
18780
- 'application/json': components['schemas']['HTTPValidationError'];
18781
- };
18782
- };
18783
- };
18784
- };
18785
- invite_to_slack_help: {
18786
- parameters: {
18787
- query?: never;
18788
- header?: {
18789
- 'user-agent'?: string | null;
18790
- };
18791
- path?: never;
18792
- cookie?: never;
18793
- };
18794
- requestBody: {
18795
- content: {
18796
- 'application/json': components['schemas']['SlackHelpRequest'];
18797
- };
18798
- };
18799
- responses: {
18800
- /** @description Successful Response */
18801
- 200: {
18802
- headers: {
18803
- [name: string]: unknown;
18804
- };
18805
- content: {
18806
- 'application/json': components['schemas']['SlackHelpResponse'];
18807
- };
18808
- };
18809
- /** @description The bearer token is missing, invalid, or revoked. */
18810
- 401: {
18811
- headers: {
18812
- [name: string]: unknown;
18813
- };
18814
- content: {
18815
- 'application/json': components['schemas']['ErrorResponse'];
18816
- };
18817
- };
18818
- /** @description The credential may not perform this action, or the account is blocked. */
18819
- 403: {
18820
- headers: {
18821
- [name: string]: unknown;
18822
- };
18823
- content: {
18824
- 'application/json': components['schemas']['ErrorResponse'];
18825
- };
18826
- };
18827
- /** @description Validation Error */
18828
- 422: {
18829
- headers: {
18830
- [name: string]: unknown;
18831
- };
18832
- content: {
18833
- 'application/json': components['schemas']['HTTPValidationError'];
18834
- };
18835
- };
18836
- };
18837
- };
18838
- list_agent_templates: {
18378
+ stop_session: {
18839
18379
  parameters: {
18840
18380
  query?: never;
18841
18381
  header?: {
18842
18382
  'user-agent'?: string | null;
18843
18383
  };
18844
- path?: never;
18384
+ path: {
18385
+ id: string;
18386
+ };
18845
18387
  cookie?: never;
18846
18388
  };
18847
18389
  requestBody?: never;
@@ -18852,7 +18394,7 @@ interface operations {
18852
18394
  [name: string]: unknown;
18853
18395
  };
18854
18396
  content: {
18855
- 'application/json': components['schemas']['AgentTemplatesListResponse'];
18397
+ 'application/json': components['schemas']['SessionResponse'];
18856
18398
  };
18857
18399
  };
18858
18400
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -18873,6 +18415,24 @@ interface operations {
18873
18415
  'application/json': components['schemas']['ErrorResponse'];
18874
18416
  };
18875
18417
  };
18418
+ /** @description No such session in your account. */
18419
+ 404: {
18420
+ headers: {
18421
+ [name: string]: unknown;
18422
+ };
18423
+ content: {
18424
+ 'application/json': components['schemas']['ErrorResponse'];
18425
+ };
18426
+ };
18427
+ /** @description No turn is queued, preparing, or running. */
18428
+ 409: {
18429
+ headers: {
18430
+ [name: string]: unknown;
18431
+ };
18432
+ content: {
18433
+ 'application/json': components['schemas']['ErrorResponse'];
18434
+ };
18435
+ };
18876
18436
  /** @description Validation Error */
18877
18437
  422: {
18878
18438
  headers: {
@@ -18884,7 +18444,7 @@ interface operations {
18884
18444
  };
18885
18445
  };
18886
18446
  };
18887
- get_agent_template: {
18447
+ get_session_stream_ticket: {
18888
18448
  parameters: {
18889
18449
  query?: never;
18890
18450
  header?: {
@@ -18903,7 +18463,7 @@ interface operations {
18903
18463
  [name: string]: unknown;
18904
18464
  };
18905
18465
  content: {
18906
- 'application/json': components['schemas']['AgentTemplate'];
18466
+ 'application/json': components['schemas']['StreamTicketResponse'];
18907
18467
  };
18908
18468
  };
18909
18469
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -18924,15 +18484,6 @@ interface operations {
18924
18484
  'application/json': components['schemas']['ErrorResponse'];
18925
18485
  };
18926
18486
  };
18927
- /** @description No such template. */
18928
- 404: {
18929
- headers: {
18930
- [name: string]: unknown;
18931
- };
18932
- content: {
18933
- 'application/json': components['schemas']['ErrorResponse'];
18934
- };
18935
- };
18936
18487
  /** @description Validation Error */
18937
18488
  422: {
18938
18489
  headers: {
@@ -18944,16 +18495,22 @@ interface operations {
18944
18495
  };
18945
18496
  };
18946
18497
  };
18947
- list_subscription_tokens: {
18498
+ ingest_session_transcript: {
18948
18499
  parameters: {
18949
18500
  query?: never;
18950
18501
  header?: {
18951
18502
  'user-agent'?: string | null;
18952
18503
  };
18953
- path?: never;
18504
+ path: {
18505
+ id: string;
18506
+ };
18954
18507
  cookie?: never;
18955
18508
  };
18956
- requestBody?: never;
18509
+ requestBody: {
18510
+ content: {
18511
+ 'application/json': components['schemas']['IngestTranscriptRequest'];
18512
+ };
18513
+ };
18957
18514
  responses: {
18958
18515
  /** @description Successful Response */
18959
18516
  200: {
@@ -18961,11 +18518,11 @@ interface operations {
18961
18518
  [name: string]: unknown;
18962
18519
  };
18963
18520
  content: {
18964
- 'application/json': components['schemas']['SubscriptionTokensListResponse'];
18521
+ 'application/json': components['schemas']['TranscriptIngestResult'];
18965
18522
  };
18966
18523
  };
18967
- /** @description The credential carries no developer, so there is no subscription to act on (an organization API key). */
18968
- 400: {
18524
+ /** @description The bearer token is missing, invalid, or revoked. */
18525
+ 401: {
18969
18526
  headers: {
18970
18527
  [name: string]: unknown;
18971
18528
  };
@@ -18973,8 +18530,8 @@ interface operations {
18973
18530
  'application/json': components['schemas']['ErrorResponse'];
18974
18531
  };
18975
18532
  };
18976
- /** @description The bearer token is missing, invalid, or revoked. */
18977
- 401: {
18533
+ /** @description The credential may not perform this action, or the account is blocked. */
18534
+ 403: {
18978
18535
  headers: {
18979
18536
  [name: string]: unknown;
18980
18537
  };
@@ -18982,8 +18539,17 @@ interface operations {
18982
18539
  'application/json': components['schemas']['ErrorResponse'];
18983
18540
  };
18984
18541
  };
18985
- /** @description The credential may not perform this action, or the account is blocked. */
18986
- 403: {
18542
+ /** @description No such session in your account. */
18543
+ 404: {
18544
+ headers: {
18545
+ [name: string]: unknown;
18546
+ };
18547
+ content: {
18548
+ 'application/json': components['schemas']['ErrorResponse'];
18549
+ };
18550
+ };
18551
+ /** @description No turn has started yet. */
18552
+ 409: {
18987
18553
  headers: {
18988
18554
  [name: string]: unknown;
18989
18555
  };
@@ -19002,14 +18568,14 @@ interface operations {
19002
18568
  };
19003
18569
  };
19004
18570
  };
19005
- get_subscription_token: {
18571
+ get_session_turns: {
19006
18572
  parameters: {
19007
18573
  query?: never;
19008
18574
  header?: {
19009
18575
  'user-agent'?: string | null;
19010
18576
  };
19011
18577
  path: {
19012
- provider: components['schemas']['SubscriptionProvider'];
18578
+ id: string;
19013
18579
  };
19014
18580
  cookie?: never;
19015
18581
  };
@@ -19021,11 +18587,11 @@ interface operations {
19021
18587
  [name: string]: unknown;
19022
18588
  };
19023
18589
  content: {
19024
- 'application/json': components['schemas']['SubscriptionToken'];
18590
+ 'application/json': components['schemas']['SessionTurnsListResponse'];
19025
18591
  };
19026
18592
  };
19027
- /** @description The credential carries no developer, so there is no subscription to act on (an organization API key). */
19028
- 400: {
18593
+ /** @description The bearer token is missing, invalid, or revoked. */
18594
+ 401: {
19029
18595
  headers: {
19030
18596
  [name: string]: unknown;
19031
18597
  };
@@ -19033,8 +18599,8 @@ interface operations {
19033
18599
  'application/json': components['schemas']['ErrorResponse'];
19034
18600
  };
19035
18601
  };
19036
- /** @description The bearer token is missing, invalid, or revoked. */
19037
- 401: {
18602
+ /** @description The credential may not perform this action, or the account is blocked. */
18603
+ 403: {
19038
18604
  headers: {
19039
18605
  [name: string]: unknown;
19040
18606
  };
@@ -19042,8 +18608,8 @@ interface operations {
19042
18608
  'application/json': components['schemas']['ErrorResponse'];
19043
18609
  };
19044
18610
  };
19045
- /** @description The credential may not perform this action, or the account is blocked. */
19046
- 403: {
18611
+ /** @description No such session in your account. */
18612
+ 404: {
19047
18613
  headers: {
19048
18614
  [name: string]: unknown;
19049
18615
  };
@@ -19062,22 +18628,19 @@ interface operations {
19062
18628
  };
19063
18629
  };
19064
18630
  };
19065
- set_subscription_token: {
18631
+ get_session_turn: {
19066
18632
  parameters: {
19067
18633
  query?: never;
19068
18634
  header?: {
19069
18635
  'user-agent'?: string | null;
19070
18636
  };
19071
18637
  path: {
19072
- provider: components['schemas']['SubscriptionProvider'];
18638
+ session_id: string;
18639
+ id: string;
19073
18640
  };
19074
18641
  cookie?: never;
19075
18642
  };
19076
- requestBody: {
19077
- content: {
19078
- 'application/json': components['schemas']['PutSubscriptionTokenRequest'];
19079
- };
19080
- };
18643
+ requestBody?: never;
19081
18644
  responses: {
19082
18645
  /** @description Successful Response */
19083
18646
  200: {
@@ -19085,11 +18648,11 @@ interface operations {
19085
18648
  [name: string]: unknown;
19086
18649
  };
19087
18650
  content: {
19088
- 'application/json': components['schemas']['SubscriptionToken'];
18651
+ 'application/json': components['schemas']['SessionTurnResponse'];
19089
18652
  };
19090
18653
  };
19091
- /** @description The provider does not route yet, the token is not a subscription OAuth token, or the credential carries no developer (an organization API key). */
19092
- 400: {
18654
+ /** @description The bearer token is missing, invalid, or revoked. */
18655
+ 401: {
19093
18656
  headers: {
19094
18657
  [name: string]: unknown;
19095
18658
  };
@@ -19097,8 +18660,8 @@ interface operations {
19097
18660
  'application/json': components['schemas']['ErrorResponse'];
19098
18661
  };
19099
18662
  };
19100
- /** @description The bearer token is missing, invalid, or revoked. */
19101
- 401: {
18663
+ /** @description The credential may not perform this action, or the account is blocked. */
18664
+ 403: {
19102
18665
  headers: {
19103
18666
  [name: string]: unknown;
19104
18667
  };
@@ -19106,8 +18669,8 @@ interface operations {
19106
18669
  'application/json': components['schemas']['ErrorResponse'];
19107
18670
  };
19108
18671
  };
19109
- /** @description The credential may not perform this action, or the account is blocked. */
19110
- 403: {
18672
+ /** @description No such session or turn in your account. */
18673
+ 404: {
19111
18674
  headers: {
19112
18675
  [name: string]: unknown;
19113
18676
  };
@@ -19126,33 +18689,24 @@ interface operations {
19126
18689
  };
19127
18690
  };
19128
18691
  };
19129
- delete_subscription_token: {
18692
+ get_slack_help: {
19130
18693
  parameters: {
19131
18694
  query?: never;
19132
18695
  header?: {
19133
18696
  'user-agent'?: string | null;
19134
18697
  };
19135
- path: {
19136
- provider: components['schemas']['SubscriptionProvider'];
19137
- };
18698
+ path?: never;
19138
18699
  cookie?: never;
19139
18700
  };
19140
18701
  requestBody?: never;
19141
18702
  responses: {
19142
18703
  /** @description Successful Response */
19143
- 204: {
19144
- headers: {
19145
- [name: string]: unknown;
19146
- };
19147
- content?: never;
19148
- };
19149
- /** @description The credential carries no developer, so there is no subscription to act on (an organization API key). */
19150
- 400: {
18704
+ 200: {
19151
18705
  headers: {
19152
18706
  [name: string]: unknown;
19153
18707
  };
19154
18708
  content: {
19155
- 'application/json': components['schemas']['ErrorResponse'];
18709
+ 'application/json': components['schemas']['SlackHelpResponse'] | null;
19156
18710
  };
19157
18711
  };
19158
18712
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -19184,35 +18738,28 @@ interface operations {
19184
18738
  };
19185
18739
  };
19186
18740
  };
19187
- get_subscription_usage: {
18741
+ request_slack_help: {
19188
18742
  parameters: {
19189
18743
  query?: never;
19190
18744
  header?: {
19191
18745
  'user-agent'?: string | null;
19192
18746
  };
19193
- path: {
19194
- provider: components['schemas']['SubscriptionProvider'];
19195
- };
18747
+ path?: never;
19196
18748
  cookie?: never;
19197
18749
  };
19198
- requestBody?: never;
18750
+ requestBody: {
18751
+ content: {
18752
+ 'application/json': components['schemas']['SlackHelpRequest'];
18753
+ };
18754
+ };
19199
18755
  responses: {
19200
18756
  /** @description Successful Response */
19201
- 200: {
19202
- headers: {
19203
- [name: string]: unknown;
19204
- };
19205
- content: {
19206
- 'application/json': components['schemas']['SubscriptionUsageResponse'];
19207
- };
19208
- };
19209
- /** @description The credential carries no developer, so there is no subscription to act on (an organization API key). */
19210
- 400: {
18757
+ 201: {
19211
18758
  headers: {
19212
18759
  [name: string]: unknown;
19213
18760
  };
19214
18761
  content: {
19215
- 'application/json': components['schemas']['ErrorResponse'];
18762
+ 'application/json': components['schemas']['SlackHelpResponse'];
19216
18763
  };
19217
18764
  };
19218
18765
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -19244,18 +18791,20 @@ interface operations {
19244
18791
  };
19245
18792
  };
19246
18793
  };
19247
- verify_subscription_token: {
18794
+ invite_to_slack_help: {
19248
18795
  parameters: {
19249
18796
  query?: never;
19250
18797
  header?: {
19251
18798
  'user-agent'?: string | null;
19252
18799
  };
19253
- path: {
19254
- provider: components['schemas']['SubscriptionProvider'];
19255
- };
18800
+ path?: never;
19256
18801
  cookie?: never;
19257
18802
  };
19258
- requestBody?: never;
18803
+ requestBody: {
18804
+ content: {
18805
+ 'application/json': components['schemas']['SlackHelpRequest'];
18806
+ };
18807
+ };
19259
18808
  responses: {
19260
18809
  /** @description Successful Response */
19261
18810
  200: {
@@ -19263,16 +18812,7 @@ interface operations {
19263
18812
  [name: string]: unknown;
19264
18813
  };
19265
18814
  content: {
19266
- 'application/json': components['schemas']['VerifySubscriptionTokenResponse'];
19267
- };
19268
- };
19269
- /** @description The credential carries no developer, so there is no subscription to act on (an organization API key). */
19270
- 400: {
19271
- headers: {
19272
- [name: string]: unknown;
19273
- };
19274
- content: {
19275
- 'application/json': components['schemas']['ErrorResponse'];
18815
+ 'application/json': components['schemas']['SlackHelpResponse'];
19276
18816
  };
19277
18817
  };
19278
18818
  /** @description The bearer token is missing, invalid, or revoked. */
@@ -20335,7 +19875,7 @@ interface operations {
20335
19875
  }
20336
19876
 
20337
19877
  /**
20338
- * One server-to-client frame of the Ellipsis session stream protocol v7 (WS /v1/sessions/{id}/stream?protocol=7). Clients MUST ignore frames with unknown `type` values — additive frames are not a protocol break.
19878
+ * One server-to-client frame of the Ellipsis session stream (WS /v1/sessions/{id}/stream). Clients ignore frames with unknown `type` values.
20339
19879
  */
20340
19880
  type SessionStreamFrame = SnapshotFrame | RecordsAppendFrame | SessionFrame | DeltaFrame | HeartbeatFrame | DoneFrame | ErrorFrame;
20341
19881
  type AttributionType = 'github_user' | 'linear_user' | 'slack_user' | 'api_key';
@@ -20361,11 +19901,11 @@ type Session = {
20361
19901
  */
20362
19902
  budget: number;
20363
19903
  /**
20364
- * Claude Code input and native options. Set exactly one of claude_code or codex.
19904
+ * Claude Code input and native options. Set exactly one of claude_code, codex, or gemini.
20365
19905
  */
20366
19906
  claude_code: ClaudeConfig | null;
20367
19907
  /**
20368
- * Codex input and native options. Set exactly one of claude_code or codex.
19908
+ * Codex input and native options. Set exactly one of claude_code, codex, or gemini.
20369
19909
  */
20370
19910
  codex: CodexConfig | null;
20371
19911
  conversation: SessionConversation;
@@ -20379,6 +19919,10 @@ type Session = {
20379
19919
  * The typed external event that started the session; null for direct and scheduled starts.
20380
19920
  */
20381
19921
  event: (GithubPullRequestEvent | GithubIssueEvent | GithubPushEvent | GithubCheckRunEvent | GithubCheckSuiteEvent | GithubWorkflowRunEvent | GithubStatusEvent | GithubReleaseEvent | LinearIssueEvent | SlackMessageEvent | SlackChannelCreatedEvent | SentryAlertEvent) | null;
19922
+ /**
19923
+ * Gemini CLI input and native options. Set exactly one of claude_code, codex, or gemini.
19924
+ */
19925
+ gemini: GeminiConfig | null;
20382
19926
  /**
20383
19927
  * What the session did to git, one entry per repository in its workspace: the commit and branch it sits on, per-file line counts for its uncommitted changes, and the pull requests it opened. Null if nothing was ever captured.
20384
19928
  */
@@ -20429,11 +19973,19 @@ type Session = {
20429
19973
  [k: string]: unknown;
20430
19974
  };
20431
19975
  codex: null;
19976
+ gemini: null;
20432
19977
  } | {
20433
19978
  claude_code: null;
20434
19979
  codex: {
20435
19980
  [k: string]: unknown;
20436
19981
  };
19982
+ gemini: null;
19983
+ } | {
19984
+ claude_code: null;
19985
+ codex: null;
19986
+ gemini: {
19987
+ [k: string]: unknown;
19988
+ };
20437
19989
  });
20438
19990
  /**
20439
19991
  * What one session runs on: its selected harness, where it runs, what it
@@ -20451,15 +20003,19 @@ type Session = {
20451
20003
  type SessionConfig = {
20452
20004
  budget: BudgetConfig;
20453
20005
  /**
20454
- * Claude Code input and native options. Set exactly one of claude_code or codex.
20006
+ * Claude Code input and native options. Set exactly one of claude_code, codex, or gemini.
20455
20007
  */
20456
20008
  claude_code: ClaudeConfig | null;
20457
20009
  /**
20458
- * Codex input and native options. Set exactly one of claude_code or codex.
20010
+ * Codex input and native options. Set exactly one of claude_code, codex, or gemini.
20459
20011
  */
20460
20012
  codex: CodexConfig | null;
20461
20013
  conversation: SessionConversationConfig;
20462
20014
  environment: string | EnvironmentConfig;
20015
+ /**
20016
+ * Gemini CLI input and native options. Set exactly one of claude_code, codex, or gemini.
20017
+ */
20018
+ gemini: GeminiConfig | null;
20463
20019
  /**
20464
20020
  * Arbitrary string key/value metadata stored on every session.
20465
20021
  */
@@ -20474,11 +20030,19 @@ type SessionConfig = {
20474
20030
  [k: string]: unknown;
20475
20031
  };
20476
20032
  codex: null;
20033
+ gemini: null;
20477
20034
  } | {
20478
20035
  claude_code: null;
20479
20036
  codex: {
20480
20037
  [k: string]: unknown;
20481
20038
  };
20039
+ gemini: null;
20040
+ } | {
20041
+ claude_code: null;
20042
+ codex: null;
20043
+ gemini: {
20044
+ [k: string]: unknown;
20045
+ };
20482
20046
  });
20483
20047
  type EffortLevel = 'low' | 'medium' | 'high' | 'xhigh' | 'max';
20484
20048
  type CodexEffortLevel = 'none' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';
@@ -20556,10 +20120,11 @@ type TurnReason = 'error' | 'tool_call_failed' | 'budget_hit' | 'payment_require
20556
20120
  * Where the turn is.
20557
20121
  */
20558
20122
  type TurnStatus = 'queued' | 'preparing' | 'running' | 'completed' | 'failed' | 'stopped' | 'cancelled';
20559
- type SessionRecord$1 = ClaudeSessionRecord | ClaudeNativeSessionRecord | CodexSessionRecord | CodexAppServerSessionRecord | PlatformSessionRecord | UnknownSessionRecord;
20123
+ type SessionRecord$1 = ClaudeSessionRecord | ClaudeNativeSessionRecord | CodexSessionRecord | CodexAppServerSessionRecord | GeminiSessionRecord | PlatformSessionRecord | UnknownSessionRecord;
20560
20124
  type CodexAppServerNotification = CodexThreadStarted | CodexTurnStarted | CodexTurnCompleted | CodexItemStarted | CodexItemCompleted | CodexTokenUsageUpdated | CodexAppServerError;
20561
20125
  type CodexAppServerItem = CodexUserMessage | CodexAgentMessage | CodexReasoning | CodexPlan | CodexCommandExecution | CodexFileChange | CodexWebSearch | CodexMcpToolCall | CodexContextCompaction;
20562
20126
  type CodexUserInput = CodexTextInput | CodexLocalImageInput;
20127
+ type GeminiStreamEvent$1 = GeminiInitEvent | GeminiMessageEvent | GeminiToolUseEvent | GeminiToolResultEvent | GeminiErrorEvent | GeminiResultEvent;
20563
20128
  type PlatformSessionRecord = SessionClosedRecord | MessageReceivedRecord | MessageDeliveredRecord | MessageRequeuedRecord | TurnQueuedRecord | TurnStartedRecord | TurnEndedRecord | EnvironmentPhaseRecord | EnvironmentOutputRecord | EnvironmentReadyRecord;
20564
20129
  /**
20565
20130
  * The session's current state.
@@ -20579,11 +20144,11 @@ type Session1 = {
20579
20144
  */
20580
20145
  budget: number;
20581
20146
  /**
20582
- * Claude Code input and native options. Set exactly one of claude_code or codex.
20147
+ * Claude Code input and native options. Set exactly one of claude_code, codex, or gemini.
20583
20148
  */
20584
20149
  claude_code: ClaudeConfig | null;
20585
20150
  /**
20586
- * Codex input and native options. Set exactly one of claude_code or codex.
20151
+ * Codex input and native options. Set exactly one of claude_code, codex, or gemini.
20587
20152
  */
20588
20153
  codex: CodexConfig | null;
20589
20154
  conversation: SessionConversation;
@@ -20597,6 +20162,10 @@ type Session1 = {
20597
20162
  * The typed external event that started the session; null for direct and scheduled starts.
20598
20163
  */
20599
20164
  event: (GithubPullRequestEvent | GithubIssueEvent | GithubPushEvent | GithubCheckRunEvent | GithubCheckSuiteEvent | GithubWorkflowRunEvent | GithubStatusEvent | GithubReleaseEvent | LinearIssueEvent | SlackMessageEvent | SlackChannelCreatedEvent | SentryAlertEvent) | null;
20165
+ /**
20166
+ * Gemini CLI input and native options. Set exactly one of claude_code, codex, or gemini.
20167
+ */
20168
+ gemini: GeminiConfig | null;
20600
20169
  /**
20601
20170
  * What the session did to git, one entry per repository in its workspace: the commit and branch it sits on, per-file line counts for its uncommitted changes, and the pull requests it opened. Null if nothing was ever captured.
20602
20171
  */
@@ -20647,11 +20216,19 @@ type Session1 = {
20647
20216
  [k: string]: unknown;
20648
20217
  };
20649
20218
  codex: null;
20219
+ gemini: null;
20650
20220
  } | {
20651
20221
  claude_code: null;
20652
20222
  codex: {
20653
20223
  [k: string]: unknown;
20654
20224
  };
20225
+ gemini: null;
20226
+ } | {
20227
+ claude_code: null;
20228
+ codex: null;
20229
+ gemini: {
20230
+ [k: string]: unknown;
20231
+ };
20655
20232
  });
20656
20233
  /**
20657
20234
  * The first frame after the stream connects: the session plus its open
@@ -20666,10 +20243,6 @@ interface SnapshotFrame {
20666
20243
  * The session's open (pending) inbox messages.
20667
20244
  */
20668
20245
  messages: SessionMessage[];
20669
- /**
20670
- * Echoes the protocol version the server is serving.
20671
- */
20672
- protocol: number;
20673
20246
  session: Session;
20674
20247
  type: 'snapshot';
20675
20248
  }
@@ -20965,9 +20538,11 @@ interface Duration {
20965
20538
  }
20966
20539
  /**
20967
20540
  * Environment lifecycle scripts, in order: build_base, after_checkout,
20968
- * before_start. The first two produce reusable snapshots; before_start runs
20969
- * before an agent starts or resumes its session. Scripts run as the environment's
20970
- * user in the workspace directory `/sandbox`. A nonzero exit fails the session.
20541
+ * before_start, validate. The first two produce reusable snapshots;
20542
+ * before_start runs before an agent starts or resumes its session, and
20543
+ * validate runs last to check that the environment has what the agent needs.
20544
+ * Scripts run as the environment's user in the workspace directory
20545
+ * `/sandbox`. A nonzero exit fails the session.
20971
20546
  *
20972
20547
  * Legacy post_start/post_clone scripts remain supported for existing configs;
20973
20548
  * both run after workspace preparation, before the agent starts or resumes.
@@ -20994,6 +20569,10 @@ interface EnvironmentHooks {
20994
20569
  * Legacy session startup script. Use before_start in new configurations.
20995
20570
  */
20996
20571
  post_start: string | null;
20572
+ /**
20573
+ * Check that the environment works, for example that required tools are on PATH. Runs last, after before_start, each time a session starts or resumes and each time the environment is built after a change. A nonzero exit fails the session or the build. Not cached.
20574
+ */
20575
+ validate: EnvironmentScript | string | null;
20997
20576
  }
20998
20577
  /**
20999
20578
  * An inline shell script run as the environment's user, with the workspace
@@ -21074,6 +20653,19 @@ interface EnvironmentVariable {
21074
20653
  name: string;
21075
20654
  value: string | null;
21076
20655
  }
20656
+ /**
20657
+ * Native options supported by the current Gemini CLI adapter.
20658
+ */
20659
+ interface GeminiConfig {
20660
+ /**
20661
+ * The model the session runs on: a Gemini id from the models table. Required.
20662
+ */
20663
+ model: string;
20664
+ /**
20665
+ * The initial user message, passed verbatim. Omit to start an interactive session with no turn, waiting for a message.
20666
+ */
20667
+ prompt: string | null;
20668
+ }
21077
20669
  /**
21078
20670
  * JSON Schema for the harness's structured result, when certified.
21079
20671
  */
@@ -21371,7 +20963,7 @@ interface SessionPrompting {
21371
20963
  */
21372
20964
  interface Cost {
21373
20965
  /**
21374
- * What Ellipsis charged to credit, in millicents. It is everything except subscription tokens, and it is what the budget caps.
20966
+ * What Ellipsis charged to credit, in millicents. It is everything except subscription tokens.
21375
20967
  */
21376
20968
  charged: number;
21377
20969
  /**
@@ -21388,7 +20980,7 @@ interface Cost {
21388
20980
  */
21389
20981
  memory: number;
21390
20982
  /**
21391
- * Everything it cost, whoever paid, in millicents. It is the sum of llm.all.total, cpu, memory, and fee.
20983
+ * Everything it cost, whoever paid, in millicents. It is the sum of llm.all.total, cpu, memory, and fee, and it is what the budget caps.
21392
20984
  */
21393
20985
  total: number;
21394
20986
  }
@@ -21493,9 +21085,11 @@ interface ComputeConfig1 {
21493
21085
  }
21494
21086
  /**
21495
21087
  * Environment lifecycle scripts, in order: build_base, after_checkout,
21496
- * before_start. The first two produce reusable snapshots; before_start runs
21497
- * before an agent starts or resumes its session. Scripts run as the environment's
21498
- * user in the workspace directory `/sandbox`. A nonzero exit fails the session.
21088
+ * before_start, validate. The first two produce reusable snapshots;
21089
+ * before_start runs before an agent starts or resumes its session, and
21090
+ * validate runs last to check that the environment has what the agent needs.
21091
+ * Scripts run as the environment's user in the workspace directory
21092
+ * `/sandbox`. A nonzero exit fails the session.
21499
21093
  *
21500
21094
  * Legacy post_start/post_clone scripts remain supported for existing configs;
21501
21095
  * both run after workspace preparation, before the agent starts or resumes.
@@ -21522,6 +21116,10 @@ interface EnvironmentHooks1 {
21522
21116
  * Legacy session startup script. Use before_start in new configurations.
21523
21117
  */
21524
21118
  post_start: string | null;
21119
+ /**
21120
+ * Check that the environment works, for example that required tools are on PATH. Runs last, after before_start, each time a session starts or resumes and each time the environment is built after a change. A nonzero exit fails the session or the build. Not cached.
21121
+ */
21122
+ validate: EnvironmentScript | string | null;
21525
21123
  }
21526
21124
  interface GithubPullRequestEvent {
21527
21125
  action: PullRequestAction | 'review_commented';
@@ -21889,7 +21487,7 @@ interface SessionTurn {
21889
21487
  */
21890
21488
  interface Cost1 {
21891
21489
  /**
21892
- * What Ellipsis charged to credit, in millicents. It is everything except subscription tokens, and it is what the budget caps.
21490
+ * What Ellipsis charged to credit, in millicents. It is everything except subscription tokens.
21893
21491
  */
21894
21492
  charged: number;
21895
21493
  /**
@@ -21906,7 +21504,7 @@ interface Cost1 {
21906
21504
  */
21907
21505
  memory: number;
21908
21506
  /**
21909
- * Everything it cost, whoever paid, in millicents. It is the sum of llm.all.total, cpu, memory, and fee.
21507
+ * Everything it cost, whoever paid, in millicents. It is the sum of llm.all.total, cpu, memory, and fee, and it is what the budget caps.
21910
21508
  */
21911
21509
  total: number;
21912
21510
  }
@@ -22694,6 +22292,117 @@ interface CodexErrorParams {
22694
22292
  willRetry: boolean;
22695
22293
  [k: string]: unknown;
22696
22294
  }
22295
+ interface GeminiSessionRecord {
22296
+ cost: number | null;
22297
+ created_at: string;
22298
+ duration: number | null;
22299
+ /**
22300
+ * Position in the session feed and the stream's resume cursor.
22301
+ */
22302
+ feed_seq: number;
22303
+ /**
22304
+ * Unique identifier of the record.
22305
+ */
22306
+ id: string;
22307
+ kind: 'gemini';
22308
+ model: string | null;
22309
+ payload: GeminiStreamEvent$1;
22310
+ record_format: 'gemini_stream_json@1';
22311
+ /**
22312
+ * Original record type within its format.
22313
+ */
22314
+ record_type: string;
22315
+ /**
22316
+ * Session containing this record.
22317
+ */
22318
+ session_id: string;
22319
+ /**
22320
+ * Message this record receives, delivers, requeues, or echoes.
22321
+ */
22322
+ session_message_id: string | null;
22323
+ source: 'gemini';
22324
+ tokens_info: TokensInfo | null;
22325
+ tools: string[] | null;
22326
+ /**
22327
+ * Turn containing this record, when applicable.
22328
+ */
22329
+ turn_id: string | null;
22330
+ }
22331
+ interface GeminiInitEvent {
22332
+ model: string;
22333
+ session_id: string;
22334
+ timestamp: string;
22335
+ type: 'init';
22336
+ [k: string]: unknown;
22337
+ }
22338
+ interface GeminiMessageEvent {
22339
+ content: string;
22340
+ delta?: boolean | null;
22341
+ role: 'user' | 'assistant';
22342
+ timestamp: string;
22343
+ type: 'message';
22344
+ [k: string]: unknown;
22345
+ }
22346
+ interface GeminiToolUseEvent {
22347
+ parameters?: {
22348
+ [k: string]: unknown;
22349
+ };
22350
+ timestamp: string;
22351
+ tool_id: string;
22352
+ tool_name: string;
22353
+ type: 'tool_use';
22354
+ [k: string]: unknown;
22355
+ }
22356
+ interface GeminiToolResultEvent {
22357
+ error?: GeminiToolError | null;
22358
+ output?: string | null;
22359
+ status: 'success' | 'error';
22360
+ timestamp: string;
22361
+ tool_id: string;
22362
+ type: 'tool_result';
22363
+ [k: string]: unknown;
22364
+ }
22365
+ interface GeminiToolError {
22366
+ message: string;
22367
+ type: string;
22368
+ [k: string]: unknown;
22369
+ }
22370
+ interface GeminiErrorEvent {
22371
+ message: string;
22372
+ severity?: string | null;
22373
+ timestamp: string;
22374
+ type: 'error';
22375
+ [k: string]: unknown;
22376
+ }
22377
+ interface GeminiResultEvent {
22378
+ error?: GeminiToolError | null;
22379
+ stats?: GeminiStreamStats | null;
22380
+ status: 'success' | 'error';
22381
+ timestamp: string;
22382
+ type: 'result';
22383
+ [k: string]: unknown;
22384
+ }
22385
+ interface GeminiStreamStats {
22386
+ cached?: number;
22387
+ duration_ms?: number;
22388
+ input?: number;
22389
+ input_tokens?: number;
22390
+ models?: {
22391
+ [k: string]: GeminiModelStats;
22392
+ };
22393
+ output_tokens?: number;
22394
+ tool_calls?: number;
22395
+ total_tokens?: number;
22396
+ [k: string]: unknown;
22397
+ }
22398
+ interface GeminiModelStats {
22399
+ cached?: number;
22400
+ input?: number;
22401
+ input_tokens?: number;
22402
+ output_tokens?: number;
22403
+ total_tokens?: number;
22404
+ [k: string]: unknown;
22405
+ }
22697
22406
  interface SessionClosedRecord {
22698
22407
  cost: number | null;
22699
22408
  created_at: string;
@@ -23261,6 +22970,7 @@ type SdkRateLimitRecord = Extract<SdkRecord, {
23261
22970
  type SdkContentBlock = NonNullable<SdkAssistantRecord['content']>[number];
23262
22971
  type CodexEvent = CodexSessionRecord['payload'];
23263
22972
  type CodexAppServerEvent = CodexAppServerSessionRecord['payload'];
22973
+ type GeminiStreamEvent = GeminiSessionRecord['payload'];
23264
22974
  type CodexItem = Extract<CodexEvent, {
23265
22975
  type: 'item.completed';
23266
22976
  }>['item'];
@@ -23283,4 +22993,4 @@ type ReviewsListResponse = components['schemas']['ReviewsListResponse'];
23283
22993
  type ReviewConfig = components['schemas']['ReviewConfig'];
23284
22994
  type ReviewConfigsListResponse = components['schemas']['ReviewConfigsListResponse'];
23285
22995
 
23286
- export type { CodexPlan as $, AgentConfig as A, BudgetConfig as B, CheckRunAction as C, CodexCommandExecutionItem as D, CodexConfig as E, CodexContextCompaction as F, CodexEffortLevel as G, CodexErrorEvent as H, CodexErrorItem as I, CodexErrorParams as J, CodexEvent as K, CodexFileChange as L, CodexFileChangeItem as M, CodexFileUpdate as N, CodexItem as O, CodexItemCompleted as P, CodexItemCompletedEvent as Q, CodexItemParams as R, CodexItemStarted as S, CodexItemStartedEvent as T, CodexItemUpdatedEvent as U, CodexLocalImageInput as V, CodexMcpToolCall as W, CodexMcpToolCallAppContext as X, CodexMcpToolCallError as Y, CodexMcpToolCallItem as Z, CodexMcpToolCallResult as _, AgentIdentity as a, GithubStatusEvent as a$, CodexReasoning as a0, CodexReasoningItem as a1, CodexSessionRecord as a2, CodexTextInput as a3, CodexThread as a4, CodexThreadStarted as a5, CodexThreadStartedEvent as a6, CodexThreadStartedParams as a7, CodexThreadTokenUsage as a8, CodexTodoListItem as a9, EllipsisGrant as aA, EllipsisPermissions as aB, EnvironmentBaseBuild as aC, EnvironmentConfig as aD, EnvironmentHooks as aE, EnvironmentHooks1 as aF, EnvironmentOutputPayload as aG, EnvironmentOutputRecord as aH, EnvironmentPhasePayload as aI, EnvironmentPhaseRecord as aJ, EnvironmentReadyPayload as aK, EnvironmentReadyRecord as aL, EnvironmentScript as aM, EnvironmentSource as aN, EnvironmentVariable as aO, ErrorFrame as aP, GithubAccountFilter as aQ, GithubAccountSelector as aR, GithubAccountSnippet as aS, GithubAccountType as aT, GithubCheckRunEvent as aU, GithubCheckSuiteEvent as aV, GithubIssueEvent as aW, GithubPermissions as aX, GithubPullRequestEvent as aY, GithubPushEvent as aZ, GithubReleaseEvent as a_, CodexTokenUsageBreakdown as aa, CodexTokenUsageParams as ab, CodexTokenUsageUpdated as ac, CodexTurn as ad, CodexTurnCompleted as ae, CodexTurnCompletedEvent as af, CodexTurnError as ag, CodexTurnFailedEvent as ah, CodexTurnParams as ai, CodexTurnStarted as aj, CodexTurnStartedEvent as ak, CodexUsage as al, CodexUserInput as am, CodexUserMessage as an, CodexWebSearch as ao, CodexWebSearchItem as ap, ComputeConfig as aq, ComputeConfig1 as ar, ConfigMetadata as as, Cost as at, Cost1 as au, CronTrigger as av, DeltaFrame as aw, DoneFrame as ax, Duration as ay, EffortLevel as az, AttributionType as b, SdkServerToolResultBlock as b$, GithubWorkflowRunEvent as b0, HandlerService as b1, HeartbeatFrame as b2, InputContract as b3, IssueAction as b4, LegacyAssistantPayload as b5, LegacyNativeUsage as b6, LegacyResultPayload as b7, Level as b8, LifecycleSessionRecord as b9, ReactPullRequest as bA, ReactPush as bB, ReactRelease as bC, ReactSentry as bD, ReactSlackChannel as bE, ReactStatus as bF, ReactTrigger as bG, ReactWorkflowRun as bH, RecordsAppendFrame as bI, ReleaseAction as bJ, RepositoryFilter as bK, RepositoryRef as bL, Review as bM, ReviewComment as bN, ReviewConfig as bO, ReviewConfigsListResponse as bP, ReviewPullRequest as bQ, ReviewPullRequestAuthor as bR, ReviewReviewer as bS, ReviewSummary as bT, ReviewsListResponse as bU, SdkAssistantRecord as bV, SdkCacheCreation as bW, SdkContentBlock as bX, SdkRateLimitRecord as bY, SdkRecord as bZ, SdkResultRecord as b_, LinearIssueAction as ba, LinearIssueEvent as bb, LlmCost as bc, LlmCostSplit as bd, McpRemoteServer as be, McpServerRef as bf, McpStdioServer as bg, MemorySize as bh, MessageDeliveredPayload as bi, MessageDeliveredRecord as bj, MessageReceivedPayload as bk, MessageReceivedRecord as bl, MessageRequeuedPayload as bm, MessageRequeuedRecord as bn, ModelLlmCostSplit as bo, ModelTokenCounts as bp, OutputConfig as bq, PermissionsConfig as br, PermissionsConfig1 as bs, PlatformSessionRecord as bt, PromptBlockedReason as bu, PullRequestAction as bv, ReactCheckRun as bw, ReactCheckSuite as bx, ReactIssue as by, ReactLinearIssue as bz, components as c, TurnReason as c$, SdkServerToolUseBlock as c0, SdkSystemRecord as c1, SdkTextBlock as c2, SdkThinkingBlock as c3, SdkToolResultBlock as c4, SdkToolUseBlock as c5, SdkUserRecord as c6, SendSessionMessageRequest as c7, SentryAction as c8, SentryAlertEvent as c9, SessionRecord as cA, SessionRecordsListResponse as cB, SessionResponse as cC, SessionSource as cD, SessionState as cE, SessionStopped as cF, SessionStreamFrame as cG, SessionSummary as cH, SessionTurn as cI, SessionTurnResponse as cJ, SessionTurnsListResponse as cK, SessionsListResponse as cL, SettingsRef as cM, SkillRef as cN, SlackChannelCreatedEvent as cO, SlackMessageEvent as cP, SnapshotFrame as cQ, StatusAction as cR, StreamFrame as cS, TokenCounts as cT, Tokens as cU, Tokens1 as cV, TokensInfo as cW, TurnEndedPayload as cX, TurnEndedRecord as cY, TurnQueuedPayload as cZ, TurnQueuedRecord as c_, Session as ca, Session1 as cb, SessionAgent as cc, SessionArchived as cd, SessionAttribution as ce, SessionClosedPayload as cf, SessionClosedRecord as cg, SessionConfig as ch, SessionConversation as ci, SessionConversationConfig as cj, SessionEnvironment as ck, SessionEventActor as cl, SessionFrame as cm, SessionGit as cn, SessionGitCommit as co, SessionGitFile as cp, SessionGitPr as cq, SessionGitRepo as cr, SessionHandler as cs, SessionMessage as ct, SessionMessageImage as cu, SessionMessageResponse as cv, SessionMessageStatus as cw, SessionOutput as cx, SessionParent as cy, SessionPrompting as cz, CheckSuiteAction as d, TurnStartedPayload as d0, TurnStartedRecord as d1, TurnStatus as d2, UnknownSessionRecord as d3, UpdateSessionRequest as d4, WorkflowRunAction as d5, paths as d6, ClaudeAssistantEvent as e, ClaudeAssistantMessage as f, ClaudeConfig as g, ClaudeConversationResetEvent as h, ClaudeNativeEvent as i, ClaudeNativeSessionRecord as j, ClaudeNativeUsage as k, ClaudeRateLimitEvent as l, ClaudeRateLimitInfo as m, ClaudeResultEvent as n, ClaudeSessionRecord as o, ClaudeSystemEvent as p, ClaudeUserEvent as q, ClaudeUserMessage as r, CodexAgentMessage as s, CodexAgentMessageItem as t, CodexAppServerError as u, CodexAppServerEvent as v, CodexAppServerItem as w, CodexAppServerNotification as x, CodexAppServerSessionRecord as y, CodexCommandExecution as z };
22996
+ export type { CodexPlan as $, AgentConfig as A, BudgetConfig as B, CheckRunAction as C, CodexCommandExecutionItem as D, CodexConfig as E, CodexContextCompaction as F, CodexEffortLevel as G, CodexErrorEvent as H, CodexErrorItem as I, CodexErrorParams as J, CodexEvent as K, CodexFileChange as L, CodexFileChangeItem as M, CodexFileUpdate as N, CodexItem as O, CodexItemCompleted as P, CodexItemCompletedEvent as Q, CodexItemParams as R, CodexItemStarted as S, CodexItemStartedEvent as T, CodexItemUpdatedEvent as U, CodexLocalImageInput as V, CodexMcpToolCall as W, CodexMcpToolCallAppContext as X, CodexMcpToolCallError as Y, CodexMcpToolCallItem as Z, CodexMcpToolCallResult as _, AgentIdentity as a, GeminiToolUseEvent as a$, CodexReasoning as a0, CodexReasoningItem as a1, CodexSessionRecord as a2, CodexTextInput as a3, CodexThread as a4, CodexThreadStarted as a5, CodexThreadStartedEvent as a6, CodexThreadStartedParams as a7, CodexThreadTokenUsage as a8, CodexTodoListItem as a9, EllipsisGrant as aA, EllipsisPermissions as aB, EnvironmentBaseBuild as aC, EnvironmentConfig as aD, EnvironmentHooks as aE, EnvironmentHooks1 as aF, EnvironmentOutputPayload as aG, EnvironmentOutputRecord as aH, EnvironmentPhasePayload as aI, EnvironmentPhaseRecord as aJ, EnvironmentReadyPayload as aK, EnvironmentReadyRecord as aL, EnvironmentScript as aM, EnvironmentSource as aN, EnvironmentVariable as aO, ErrorFrame as aP, GeminiConfig as aQ, GeminiErrorEvent as aR, GeminiInitEvent as aS, GeminiMessageEvent as aT, GeminiModelStats as aU, GeminiResultEvent as aV, GeminiSessionRecord as aW, GeminiStreamEvent as aX, GeminiStreamStats as aY, GeminiToolError as aZ, GeminiToolResultEvent as a_, CodexTokenUsageBreakdown as aa, CodexTokenUsageParams as ab, CodexTokenUsageUpdated as ac, CodexTurn as ad, CodexTurnCompleted as ae, CodexTurnCompletedEvent as af, CodexTurnError as ag, CodexTurnFailedEvent as ah, CodexTurnParams as ai, CodexTurnStarted as aj, CodexTurnStartedEvent as ak, CodexUsage as al, CodexUserInput as am, CodexUserMessage as an, CodexWebSearch as ao, CodexWebSearchItem as ap, ComputeConfig as aq, ComputeConfig1 as ar, ConfigMetadata as as, Cost as at, Cost1 as au, CronTrigger as av, DeltaFrame as aw, DoneFrame as ax, Duration as ay, EffortLevel as az, AttributionType as b, ReviewConfigsListResponse as b$, GithubAccountFilter as b0, GithubAccountSelector as b1, GithubAccountSnippet as b2, GithubAccountType as b3, GithubCheckRunEvent as b4, GithubCheckSuiteEvent as b5, GithubIssueEvent as b6, GithubPermissions as b7, GithubPullRequestEvent as b8, GithubPushEvent as b9, ModelLlmCostSplit as bA, ModelTokenCounts as bB, OutputConfig as bC, PermissionsConfig as bD, PermissionsConfig1 as bE, PlatformSessionRecord as bF, PromptBlockedReason as bG, PullRequestAction as bH, ReactCheckRun as bI, ReactCheckSuite as bJ, ReactIssue as bK, ReactLinearIssue as bL, ReactPullRequest as bM, ReactPush as bN, ReactRelease as bO, ReactSentry as bP, ReactSlackChannel as bQ, ReactStatus as bR, ReactTrigger as bS, ReactWorkflowRun as bT, RecordsAppendFrame as bU, ReleaseAction as bV, RepositoryFilter as bW, RepositoryRef as bX, Review as bY, ReviewComment as bZ, ReviewConfig as b_, GithubReleaseEvent as ba, GithubStatusEvent as bb, GithubWorkflowRunEvent as bc, HandlerService as bd, HeartbeatFrame as be, InputContract as bf, IssueAction as bg, LegacyAssistantPayload as bh, LegacyNativeUsage as bi, LegacyResultPayload as bj, Level as bk, LifecycleSessionRecord as bl, LinearIssueAction as bm, LinearIssueEvent as bn, LlmCost as bo, LlmCostSplit as bp, McpRemoteServer as bq, McpServerRef as br, McpStdioServer as bs, MemorySize as bt, MessageDeliveredPayload as bu, MessageDeliveredRecord as bv, MessageReceivedPayload as bw, MessageReceivedRecord as bx, MessageRequeuedPayload as by, MessageRequeuedRecord as bz, components as c, SlackMessageEvent as c$, ReviewPullRequest as c0, ReviewPullRequestAuthor as c1, ReviewReviewer as c2, ReviewSummary as c3, ReviewsListResponse as c4, SdkAssistantRecord as c5, SdkCacheCreation as c6, SdkContentBlock as c7, SdkRateLimitRecord as c8, SdkRecord as c9, SessionGitCommit as cA, SessionGitFile as cB, SessionGitPr as cC, SessionGitRepo as cD, SessionHandler as cE, SessionMessage as cF, SessionMessageImage as cG, SessionMessageResponse as cH, SessionMessageStatus as cI, SessionOutput as cJ, SessionParent as cK, SessionPrompting as cL, SessionRecord as cM, SessionRecordsListResponse as cN, SessionResponse as cO, SessionSource as cP, SessionState as cQ, SessionStopped as cR, SessionStreamFrame as cS, SessionSummary as cT, SessionTurn as cU, SessionTurnResponse as cV, SessionTurnsListResponse as cW, SessionsListResponse as cX, SettingsRef as cY, SkillRef as cZ, SlackChannelCreatedEvent as c_, SdkResultRecord as ca, SdkServerToolResultBlock as cb, SdkServerToolUseBlock as cc, SdkSystemRecord as cd, SdkTextBlock as ce, SdkThinkingBlock as cf, SdkToolResultBlock as cg, SdkToolUseBlock as ch, SdkUserRecord as ci, SendSessionMessageRequest as cj, SentryAction as ck, SentryAlertEvent as cl, Session as cm, Session1 as cn, SessionAgent as co, SessionArchived as cp, SessionAttribution as cq, SessionClosedPayload as cr, SessionClosedRecord as cs, SessionConfig as ct, SessionConversation as cu, SessionConversationConfig as cv, SessionEnvironment as cw, SessionEventActor as cx, SessionFrame as cy, SessionGit as cz, CheckSuiteAction as d, SnapshotFrame as d0, StatusAction as d1, StreamFrame as d2, TokenCounts as d3, Tokens as d4, Tokens1 as d5, TokensInfo as d6, TurnEndedPayload as d7, TurnEndedRecord as d8, TurnQueuedPayload as d9, TurnQueuedRecord as da, TurnReason as db, TurnStartedPayload as dc, TurnStartedRecord as dd, TurnStatus as de, UnknownSessionRecord as df, UpdateSessionRequest as dg, WorkflowRunAction as dh, paths as di, ClaudeAssistantEvent as e, ClaudeAssistantMessage as f, ClaudeConfig as g, ClaudeConversationResetEvent as h, ClaudeNativeEvent as i, ClaudeNativeSessionRecord as j, ClaudeNativeUsage as k, ClaudeRateLimitEvent as l, ClaudeRateLimitInfo as m, ClaudeResultEvent as n, ClaudeSessionRecord as o, ClaudeSystemEvent as p, ClaudeUserEvent as q, ClaudeUserMessage as r, CodexAgentMessage as s, CodexAgentMessageItem as t, CodexAppServerError as u, CodexAppServerEvent as v, CodexAppServerItem as w, CodexAppServerNotification as x, CodexAppServerSessionRecord as y, CodexCommandExecution as z };