@ellipsis-dev/sdk 0.30.0 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,21 +1,25 @@
1
- import { c as components } from './types-DrPhhfOb.js';
2
- export { A as AgentConfig, a as AgentIdentity, b as AttributionType, B as BudgetConfig, C as ClaudeAssistantEvent, d as ClaudeAssistantMessage, e as ClaudeConfig, f as ClaudeConversationResetEvent, g as ClaudeNativeEvent, h as ClaudeNativeSessionRecord, i as ClaudeNativeUsage, j as ClaudeRateLimitEvent, k as ClaudeRateLimitInfo, l as ClaudeResultEvent, m as ClaudeSessionRecord, n as ClaudeSystemEvent, o as ClaudeUserEvent, p as ClaudeUserMessage, q as CodexAgentMessage, r as CodexAgentMessageItem, s as CodexAppServerError, t as CodexAppServerEvent, u as CodexAppServerItem, v as CodexAppServerNotification, w as CodexAppServerSessionRecord, x as CodexCommandExecution, y as CodexCommandExecutionItem, z as CodexConfig, D as CodexContextCompaction, E as CodexEffortLevel, F as CodexErrorEvent, G as CodexErrorItem, H as CodexErrorParams, I as CodexEvent, J as CodexFileChange, K as CodexFileChangeItem, L as CodexFileUpdate, M as CodexItem, N as CodexItemCompleted, O as CodexItemCompletedEvent, P as CodexItemParams, Q as CodexItemStarted, R as CodexItemStartedEvent, S as CodexItemUpdatedEvent, T as CodexLocalImageInput, U as CodexMcpToolCall, V as CodexMcpToolCallAppContext, W as CodexMcpToolCallError, X as CodexMcpToolCallItem, Y as CodexMcpToolCallResult, Z as CodexPlan, _ as CodexReasoning, $ as CodexReasoningItem, a0 as CodexSessionRecord, a1 as CodexTextInput, a2 as CodexThread, a3 as CodexThreadStarted, a4 as CodexThreadStartedEvent, a5 as CodexThreadStartedParams, a6 as CodexThreadTokenUsage, a7 as CodexTodoListItem, a8 as CodexTokenUsageBreakdown, a9 as CodexTokenUsageParams, aa as CodexTokenUsageUpdated, ab as CodexTurn, ac as CodexTurnCompleted, ad as CodexTurnCompletedEvent, ae as CodexTurnError, af as CodexTurnFailedEvent, ag as CodexTurnParams, ah as CodexTurnStarted, ai as CodexTurnStartedEvent, aj as CodexUsage, ak as CodexUserInput, al as CodexUserMessage, am as CodexWebSearch, an as CodexWebSearchItem, ao as ComputeConfig, ap as ComputeConfig1, aq as ConfigMetadata, ar as ConversationState, as as CreateReviewRequest, at as CronTrigger, au as DeltaFrame, av as DoneFrame, aw as Duration, ax as EffortLevel, ay as EllipsisGrant, az as EllipsisPermissions, aA as EnvironmentBaseBuild, aB as EnvironmentConfig, aC as EnvironmentHooks, aD as EnvironmentHooks1, aE as EnvironmentScript, aF as EnvironmentSource, aG as EnvironmentVariable, aH as ErrorFrame, aI as ExecutionResult, aJ as Finding, aK as GithubAccountFilter, aL as GithubAccountSelector, aM as GithubAccountSnippet, aN as GithubAccountType, aO as GithubIssueEvent, aP as GithubPermissions, aQ as GithubPullRequestEvent, aR as GithubPushEvent, aS as HandlerService, aT as HeartbeatFrame, aU as InputContract, aV as IssueAction, aW as LegacyAssistantPayload, aX as LegacyNativeUsage, aY as LegacyResultPayload, aZ as Level, a_ as LifecycleSessionRecord, a$ as LinearIssueAction, b0 as LinearIssueEvent, b1 as McpRemoteServer, b2 as McpServerRef, b3 as McpStdioServer, b4 as MemorySize, b5 as MessageDeliveredPayload, b6 as MessageDeliveredRecord, b7 as MessageReceivedPayload, b8 as MessageReceivedRecord, b9 as MessageRequeuedPayload, ba as MessageRequeuedRecord, bb as OutboxCollectedPayload, bc as OutboxCollectedRecord, bd as OutputConfig, be as PermissionsConfig, bf as PermissionsConfig1, bg as PlatformSessionRecord, bh as PromptBlockedReason, bi as PullRequestAction, bj as ReactIssue, bk as ReactLinearIssue, bl as ReactPullRequest, bm as ReactPush, bn as ReactSentry, bo as ReactSlackChannel, bp as ReactTrigger, bq as RecordsAppendFrame, br as RepositoryFilter, bs as RepositoryRef, bt as ResolvedReviewScope, bu as Review, bv as ReviewConfiguration, bw as ReviewCounters, bx as ReviewFinding, by as ReviewRequester, bz as ReviewScope, bA as ReviewScopeKind, bB as ReviewStage, bC as ReviewedCommit, bD as ReviewsListResponse, bE as SandboxOutputPayload, bF as SandboxOutputRecord, bG as SandboxPhasePayload, bH as SandboxPhaseRecord, bI as SandboxReadyPayload, bJ as SandboxReadyRecord, bK as SandboxStartingPayload, bL as SandboxStartingRecord, bM as SdkAssistantRecord, bN as SdkCacheCreation, bO as SdkContentBlock, bP as SdkRateLimitRecord, bQ as SdkRecord, bR as SdkResultRecord, bS as SdkServerToolResultBlock, bT as SdkServerToolUseBlock, bU as SdkSystemRecord, bV as SdkTextBlock, bW as SdkThinkingBlock, bX as SdkToolResultBlock, bY as SdkToolUseBlock, bZ as SdkUserRecord, b_ as SendSessionMessageRequest, b$ as SentryAction, c0 as SentryAlertEvent, c1 as Session, c2 as Session1, c3 as SessionAgent, c4 as SessionArchived, c5 as SessionAttribution, c6 as SessionCancelledPayload, c7 as SessionCancelledRecord, c8 as SessionClosedPayload, c9 as SessionClosedRecord, ca as SessionConfig, cb as SessionCost, cc as SessionEnvironment, cd as SessionEventActor, ce as SessionExecution, cf as SessionExecutionResult, cg as SessionExecutionsListResponse, ch as SessionExitStatus, ci as SessionFrame, cj as SessionGit, ck as SessionGitCommit, cl as SessionGitFile, cm as SessionGitPr, cn as SessionGitRepo, co as SessionHandler, cp as SessionIdlePayload, cq as SessionIdleRecord, cr as SessionLifecycle, cs as SessionLifecycleStatus, ct as SessionMessage, cu as SessionMessageImage, cv as SessionMessageResponse, cw as SessionMessageStatus, cx as SessionParent, cy as SessionPrompting, cz as SessionRecord, cA as SessionRecordsListResponse, cB as SessionResponse, cC as SessionResumedPayload, cD as SessionResumedRecord, cE as SessionRetryingPayload, cF as SessionRetryingRecord, cG as SessionScheduledPayload, cH as SessionScheduledRecord, cI as SessionSource, cJ as SessionStartingPayload, cK as SessionStartingRecord, cL as SessionStopped, cM as SessionStreamFrame, cN as SessionSummary, cO as SessionTimestamps, cP as SessionTokens, cQ as SessionsListResponse, cR as SettingsRef, cS as SkillRef, cT as SlackChannelCreatedEvent, cU as SlackMessageEvent, cV as SnapshotFrame, cW as StreamFrame, cX as TokensInfo, cY as TurnCompletedPayload, cZ as TurnCompletedRecord, c_ as TurnFailedPayload, c$ as TurnFailedRecord, d0 as TurnStartedPayload, d1 as TurnStartedRecord, d2 as UnknownSessionRecord, d3 as UpdateSessionRequest, d4 as paths } from './types-DrPhhfOb.js';
1
+ import { c as components } from './types-DjY1VcOe.js';
2
+ export { A as AgentConfig, a as AgentIdentity, b as AttributionType, B as BudgetConfig, C as CheckRunAction, d as ClaudeAssistantEvent, e as ClaudeAssistantMessage, f as ClaudeConfig, g as ClaudeConversationResetEvent, h as ClaudeNativeEvent, i as ClaudeNativeSessionRecord, j as ClaudeNativeUsage, k as ClaudeRateLimitEvent, l as ClaudeRateLimitInfo, m as ClaudeResultEvent, n as ClaudeSessionRecord, o as ClaudeSystemEvent, p as ClaudeUserEvent, q as ClaudeUserMessage, r as CodexAgentMessage, s as CodexAgentMessageItem, t as CodexAppServerError, u as CodexAppServerEvent, v as CodexAppServerItem, w as CodexAppServerNotification, x as CodexAppServerSessionRecord, y as CodexCommandExecution, z as CodexCommandExecutionItem, D as CodexConfig, E as CodexContextCompaction, F as CodexEffortLevel, G as CodexErrorEvent, H as CodexErrorItem, I as CodexErrorParams, J as CodexEvent, K as CodexFileChange, L as CodexFileChangeItem, M as CodexFileUpdate, N as CodexItem, O as CodexItemCompleted, P as CodexItemCompletedEvent, Q as CodexItemParams, R as CodexItemStarted, S as CodexItemStartedEvent, T as CodexItemUpdatedEvent, U as CodexLocalImageInput, V as CodexMcpToolCall, W as CodexMcpToolCallAppContext, X as CodexMcpToolCallError, Y as CodexMcpToolCallItem, Z as CodexMcpToolCallResult, _ as CodexPlan, $ as CodexReasoning, a0 as CodexReasoningItem, a1 as CodexSessionRecord, a2 as CodexTextInput, a3 as CodexThread, a4 as CodexThreadStarted, a5 as CodexThreadStartedEvent, a6 as CodexThreadStartedParams, a7 as CodexThreadTokenUsage, a8 as CodexTodoListItem, a9 as CodexTokenUsageBreakdown, aa as CodexTokenUsageParams, ab as CodexTokenUsageUpdated, ac as CodexTurn, ad as CodexTurnCompleted, ae as CodexTurnCompletedEvent, af as CodexTurnError, ag as CodexTurnFailedEvent, ah as CodexTurnParams, ai as CodexTurnStarted, aj as CodexTurnStartedEvent, ak as CodexUsage, al as CodexUserInput, am as CodexUserMessage, an as CodexWebSearch, ao as CodexWebSearchItem, ap as ComputeConfig, aq as ComputeConfig1, ar as ConfigMetadata, as as CronTrigger, at as DeltaFrame, au as DoneFrame, av as Duration, aw as EffortLevel, ax as EllipsisGrant, ay as EllipsisPermissions, az as EnvironmentBaseBuild, aA as EnvironmentConfig, aB as EnvironmentHooks, aC as EnvironmentHooks1, aD as EnvironmentOutputPayload, aE as EnvironmentOutputRecord, aF as EnvironmentPhasePayload, aG as EnvironmentPhaseRecord, aH as EnvironmentReadyPayload, aI as EnvironmentReadyRecord, aJ as EnvironmentScript, aK as EnvironmentSource, aL as EnvironmentVariable, aM as ErrorFrame, aN as GithubAccountFilter, aO as GithubAccountSelector, aP as GithubAccountSnippet, aQ as GithubAccountType, aR as GithubCheckRunEvent, aS as GithubIssueEvent, aT as GithubPermissions, aU as GithubPullRequestEvent, aV as GithubPushEvent, aW as GithubReleaseEvent, aX as HandlerService, aY as HeartbeatFrame, aZ as InputContract, a_ as IssueAction, a$ as LegacyAssistantPayload, b0 as LegacyNativeUsage, b1 as LegacyResultPayload, b2 as Level, b3 as LifecycleSessionRecord, b4 as LinearIssueAction, b5 as LinearIssueEvent, b6 as McpRemoteServer, b7 as McpServerRef, b8 as McpStdioServer, b9 as MemorySize, ba as MessageDeliveredPayload, bb as MessageDeliveredRecord, bc as MessageReceivedPayload, bd as MessageReceivedRecord, be as MessageRequeuedPayload, bf as MessageRequeuedRecord, bg as OutputConfig, bh as PermissionsConfig, bi as PermissionsConfig1, bj as PlatformSessionRecord, bk as PromptBlockedReason, bl as PullRequestAction, bm as ReactCheckRun, bn as ReactIssue, bo as ReactLinearIssue, bp as ReactPullRequest, bq as ReactPush, br as ReactRelease, bs as ReactSentry, bt as ReactSlackChannel, bu as ReactTrigger, bv as RecordsAppendFrame, bw as ReleaseAction, bx as RepositoryFilter, by as RepositoryRef, bz as Review, bA as ReviewComment, bB as ReviewConfig, bC as ReviewConfigsListResponse, bD as ReviewPullRequest, bE as ReviewPullRequestAuthor, bF as ReviewReviewer, bG as ReviewSummary, bH as ReviewsListResponse, bI as SdkAssistantRecord, bJ as SdkCacheCreation, bK as SdkContentBlock, bL as SdkRateLimitRecord, bM as SdkRecord, bN as SdkResultRecord, bO as SdkServerToolResultBlock, bP as SdkServerToolUseBlock, bQ as SdkSystemRecord, bR as SdkTextBlock, bS as SdkThinkingBlock, bT as SdkToolResultBlock, bU as SdkToolUseBlock, bV as SdkUserRecord, bW as SendSessionMessageRequest, bX as SentryAction, bY as SentryAlertEvent, bZ as Session, b_ as Session1, b$ as SessionAgent, c0 as SessionArchived, c1 as SessionAttribution, c2 as SessionClosedPayload, c3 as SessionClosedRecord, c4 as SessionConfig, c5 as SessionConversation, c6 as SessionConversationConfig, c7 as SessionCost, c8 as SessionCost1, c9 as SessionEnvironment, ca as SessionEventActor, cb as SessionFrame, cc as SessionGit, cd as SessionGitCommit, ce as SessionGitFile, cf as SessionGitPr, cg as SessionGitRepo, ch as SessionHandler, ci as SessionMessage, cj as SessionMessageImage, ck as SessionMessageResponse, cl as SessionMessageStatus, cm as SessionOutput, cn as SessionParent, co as SessionPrompting, cp as SessionRecord, cq as SessionRecordsListResponse, cr as SessionResponse, cs as SessionSource, ct as SessionState, cu as SessionStopped, cv as SessionStreamFrame, cw as SessionSummary, cx as SessionTokens, cy as SessionTokens1, cz as SessionTurn, cA as SessionTurnResponse, cB as SessionTurnsListResponse, cC as SessionsListResponse, cD as SettingsRef, cE as SkillRef, cF as SlackChannelCreatedEvent, cG as SlackMessageEvent, cH as SnapshotFrame, cI as StreamFrame, cJ as TokensInfo, cK as TurnEndedPayload, cL as TurnEndedRecord, cM as TurnReason, cN as TurnStartedPayload, cO as TurnStartedRecord, cP as TurnStatus, cQ as UnknownSessionRecord, cR as UpdateSessionRequest, cS as paths } from './types-DjY1VcOe.js';
3
3
 
4
4
  /**
5
5
  * Frames on /v1/sessions/stream, /v1/agents/stream and /v1/vm-executions/{id}/stream. Ignore unknown frame types.
6
6
  */
7
7
  type CollectionStreamFrame = SessionListStreamMessage | AgentListStreamMessage | CollectionStreamHeartbeat | SandboxSnapshotFrame | SandboxUpdateFrame;
8
8
  /**
9
- * An agent session: one conversation with an agent, from trigger to
10
- * terminal state. Returned by `GET /v1/sessions/{id}` and carried by the
11
- * session stream's `session`/`snapshot` frames — REST and stream never
12
- * disagree about what a session looks like.
9
+ * An agent session: one conversation with an agent. Returned by
10
+ * `GET /v1/sessions/{id}` and carried by the session stream's
11
+ * `session`/`snapshot` frames; REST and stream never disagree about what a
12
+ * session looks like.
13
13
  */
14
14
  type Session = {
15
15
  /**
16
16
  * The agent the session was started from, or null for a raw session started with POST /v1/sessions.
17
17
  */
18
18
  agent: SessionAgent | null;
19
+ /**
20
+ * When and by whom the session was archived; null when unarchived. Archiving does not stop or close a session.
21
+ */
22
+ archived: SessionArchived | null;
19
23
  attribution: SessionAttribution;
20
24
  /**
21
25
  * The spend budget enforced for this session, in US dollars, after resolving defaults and ceilings.
@@ -29,12 +33,17 @@ type Session = {
29
33
  * Codex input and native options. Set exactly one of claude_code or codex.
30
34
  */
31
35
  codex: CodexConfig | null;
36
+ conversation: SessionConversation;
32
37
  cost: SessionCost;
38
+ /**
39
+ * When the session was created.
40
+ */
41
+ created_at: string;
33
42
  environment: SessionEnvironment;
34
43
  /**
35
44
  * The typed external event that started the session; null for direct and scheduled starts.
36
45
  */
37
- event: (GithubPullRequestEvent | GithubIssueEvent | GithubPushEvent | LinearIssueEvent | SlackMessageEvent | SlackChannelCreatedEvent | SentryAlertEvent) | null;
46
+ event: (GithubPullRequestEvent | GithubIssueEvent | GithubPushEvent | GithubCheckRunEvent | GithubReleaseEvent | LinearIssueEvent | SlackMessageEvent | SlackChannelCreatedEvent | SentryAlertEvent) | null;
38
47
  /**
39
48
  * 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.
40
49
  */
@@ -47,7 +56,6 @@ type Session = {
47
56
  * Unique identifier of the session.
48
57
  */
49
58
  id: string;
50
- lifecycle: SessionLifecycle;
51
59
  /**
52
60
  * Caller-supplied metadata key-value pairs.
53
61
  */
@@ -55,9 +63,9 @@ type Session = {
55
63
  [k: string]: string;
56
64
  };
57
65
  /**
58
- * The structured-output exit contract for this session.
66
+ * The session's structured output: the `json_schema` the agent must satisfy and, once a turn has submitted it, the `result`.
59
67
  */
60
- output: OutputConfig | null;
68
+ output: SessionOutput | null;
61
69
  /**
62
70
  * The predecessor session this session continues; null when there is none.
63
71
  */
@@ -73,6 +81,14 @@ type Session = {
73
81
  */
74
82
  summary: SessionSummary | null;
75
83
  tokens: SessionTokens;
84
+ /**
85
+ * The turn in progress, or the latest one when none is running. Null until the session has a message. Wait on it: the message you sent is answered when the turn with your message's `turn_id` reaches a final status.
86
+ */
87
+ turn: SessionTurn | null;
88
+ /**
89
+ * When the session was last updated.
90
+ */
91
+ updated_at: string;
76
92
  } & ({
77
93
  claude_code: {
78
94
  [k: string]: unknown;
@@ -107,7 +123,14 @@ type SessionConfig = {
107
123
  * Codex input and native options. Set exactly one of claude_code or codex.
108
124
  */
109
125
  codex: CodexConfig | null;
126
+ conversation: SessionConversationConfig;
110
127
  environment: string | EnvironmentConfig;
128
+ /**
129
+ * Arbitrary string key/value metadata stored on every session.
130
+ */
131
+ metadata: {
132
+ [k: string]: string;
133
+ };
111
134
  output: OutputConfig | null;
112
135
  permissions: PermissionsConfig;
113
136
  skills: SkillRef[];
@@ -134,23 +157,44 @@ type GithubAccountFilter = {
134
157
  exclude: string[];
135
158
  include: string[] | boolean;
136
159
  } | boolean | string[];
137
- type IssueAction = 'opened' | 'closed' | 'commented';
160
+ /**
161
+ * What a completed check run did. `failed` covers the conclusions that
162
+ * mean the check did not pass on its own merits (`failure`, `timed_out`); a
163
+ * cancelled, skipped, neutral or stale check is not a failure and never
164
+ * fires (see FAILED_CHECK_RUN_CONCLUSIONS).
165
+ */
166
+ type CheckRunAction = 'failed';
138
167
  type RepositoryFilter = {
139
168
  exclude: string[];
140
169
  include: string[];
141
170
  } | string[];
171
+ type IssueAction = 'opened' | 'closed' | 'commented';
142
172
  type LinearIssueAction = 'opened';
143
173
  type PullRequestAction = 'opened' | 'pushed' | 'merged' | 'closed' | 'review_submitted' | 'commented';
174
+ /**
175
+ * What happened to a GitHub release. `published` is the one moment a
176
+ * release becomes visible: a release or prerelease published directly, or a
177
+ * draft published later. Edits, deletions, and unpublishes never fire.
178
+ */
179
+ type ReleaseAction = 'published';
144
180
  type SentryAction = 'issue_alert' | 'metric_alert';
145
- type AttributionType = 'github_user' | 'linear_user' | 'slack_user' | 'api_key';
146
181
  type GithubAccountType = 'User' | 'Organization' | 'Bot' | 'Mannequin';
182
+ type AttributionType = 'github_user' | 'linear_user' | 'slack_user' | 'api_key';
183
+ /**
184
+ * Why direct prompting is refused. Absent when prompting is allowed.
185
+ */
186
+ type PromptBlockedReason = 'mention_surface' | 'non_interactive' | 'harness_single_turn' | 'budget_exhausted' | 'closed';
187
+ /**
188
+ * `open` while the session can take messages; `closed` is permanent.
189
+ */
190
+ type SessionState = 'open' | 'closed';
147
191
  /**
148
192
  * How a session's environment was chosen. None (the field is nullable)
149
193
  * when the config carried an inline environment block and no resolution ran —
150
194
  * an inline environment is not a reference, so there is nothing to record.
151
195
  *
152
196
  * Not derivable from the row: `environment_id` says WHICH environment, not
153
- * how it was chosen, and is null for the built-in basic sandbox.
197
+ * how it was chosen, and is null for the built-in basic environment.
154
198
  */
155
199
  type EnvironmentSource = 'request' | 'agent' | 'repo_default' | 'account_default' | 'platform_default';
156
200
  /**
@@ -158,25 +202,17 @@ type EnvironmentSource = 'request' | 'agent' | 'repo_default' | 'account_default
158
202
  */
159
203
  type HandlerService = 'slack' | 'github' | 'linear' | 'sentry';
160
204
  /**
161
- * Whether the conversation is open or permanently closed. Open does not imply direct messages are permitted.
162
- */
163
- type ConversationState = 'open' | 'closed';
164
- /**
165
- * Why the last execution ended; completed also includes parking an open conversation.
205
+ * Where the session came from (e.g. react, web, api, cli, mention, cron).
166
206
  */
167
- type SessionExitStatus = 'completed' | 'budget_hit' | 'payment_required' | 'tool_call_failed' | 'lifecycle_hook_failed' | 'missing_repo_access' | 'missing_token_permissions' | 'missing_sandbox_variables' | 'blocked' | 'contact_email_required' | 'cancelled' | 'interrupted' | 'error' | 'stopped';
207
+ type SessionSource = 'react' | 'code_review' | 'web' | 'api' | 'cli' | 'mention' | 'cron';
168
208
  /**
169
- * Why direct prompting is refused. Absent when prompting is allowed.
209
+ * Why a turn failed or was cancelled. Null on every other outcome.
170
210
  */
171
- type PromptBlockedReason = 'mention_surface' | 'ephemeral_trigger' | 'non_interactive' | 'harness_single_turn' | 'closed';
211
+ type TurnReason = 'error' | 'tool_call_failed' | 'budget_hit' | 'payment_required' | 'blocked' | 'contact_email_required' | 'lifecycle_hook_failed' | 'missing_repo_access' | 'missing_token_permissions' | 'missing_environment_variables' | 'missing_github_integration' | 'agent_unavailable' | 'upstream_unavailable' | 'unsupported_configuration' | 'execution_disabled' | 'interrupted';
172
212
  /**
173
- * Canonical current activity. working means a turn is in progress; waiting means the worker is warm and awaiting input; idle means parked. A failed, stopped, or cancelled execution may leave an open conversation.
213
+ * Where the turn is.
174
214
  */
175
- type SessionLifecycleStatus = 'scheduled' | 'starting' | 'working' | 'waiting' | 'retrying' | 'idle' | 'closed' | 'failed' | 'stopped' | 'cancelled';
176
- /**
177
- * Where the session came from (e.g. react, web, api, cli, mention, cron).
178
- */
179
- type SessionSource = 'react' | 'web' | 'api' | 'cli' | 'mention' | 'cron';
215
+ type TurnStatus = 'pending' | 'running' | 'completed' | 'failed' | 'stopped' | 'cancelled';
180
216
  /**
181
217
  * Which writer owns this agent. "github" agents are defined by a file in a repository and are changed by editing that file; "api" agents have no file and are changed through this API.
182
218
  */
@@ -187,7 +223,7 @@ type ConfigManagedBy = 'github' | 'api';
187
223
  * Rides on `Sandbox.cache_tier` and the sandbox_ready lifecycle record.
188
224
  */
189
225
  type SandboxCacheTier = 'exact' | 'incremental' | 'full';
190
- type SandboxSource = 'cli' | 'web_ui' | 'ingest_pull_request_job_run' | 'session' | 'image_refresh' | 'test' | 'script';
226
+ type SandboxSource = 'session' | 'image_refresh' | 'environment_check' | 'test' | 'script';
191
227
  type SandboxStatus = 'scheduled' | 'building' | 'running' | 'released' | 'terminating' | 'terminated' | 'failed';
192
228
  type SandboxType = 'claude_code';
193
229
  interface SessionListStreamMessage {
@@ -203,7 +239,7 @@ interface SessionListStreamMessage {
203
239
  interface SessionAgent {
204
240
  config: AgentConfig;
205
241
  /**
206
- * Identifier of the saved agent this session's snapshot was taken from. Null for a routing-file agent, a code-review stage agent, or the built-in mention agent, which have no saved agent behind them. Points at the agent as it exists now, which may have changed since.
242
+ * Identifier of the saved agent this session's snapshot was taken from. Null for a routing-file agent or the built-in mention agent, which have no saved agent behind them. Points at the agent as it exists now, which may have changed since.
207
243
  */
208
244
  id: string | null;
209
245
  }
@@ -225,9 +261,7 @@ interface AgentConfig {
225
261
  * config directory) — see `yaml_is_ellipsis_config`.
226
262
  *
227
263
  * `enabled` is agent behavior, not freeform metadata, so it stays inside
228
- * the config `sha` (only `metadata` is sha-excluded). Whether a session
229
- * accepts messages is a per-run choice (POST /v1/sessions `interactive`),
230
- * not a config one.
264
+ * the config `sha` (only `metadata` is sha-excluded).
231
265
  */
232
266
  interface AgentIdentity {
233
267
  description: string | null;
@@ -248,15 +282,24 @@ interface ConfigMetadata {
248
282
  * when it happens; this is what goes in).
249
283
  *
250
284
  * `json_schema` validates customer data sent as `input` to
251
- * `POST /v1/agents/{id}/sessions` and stored as `session.input`.
252
- * Invocations require input when a schema is declared. React agents
253
- * cannot declare schemas: the platform defines their event payloads.
285
+ * `POST /v1/agents/{id}/sessions` (the dashboard and the CLI start
286
+ * through the same door) and stored as `session.input`. An on-demand
287
+ * start requires input when a schema is declared. A trigger fires
288
+ * without it: a cron fire has no payload and a react fire carries the
289
+ * platform-shaped event, so an agent may declare a schema alongside
290
+ * either trigger and the schema governs only its on-demand starts.
254
291
  *
255
292
  * `message` is the initial-message template: exact `{{path}}` substitution
256
- * over the caller payload (or, on a react agent, over the surface's
257
- * published fields), no conditionals/loops/filters. Refs are validated at
258
- * deploy time against the governing field set (see AgentConfig's
259
- * `_check_input`).
293
+ * over the payload the session has (the caller payload on an on-demand
294
+ * start, the surface's published fields on a react fire, the empty
295
+ * object on a cron fire), no conditionals/loops/filters. Refs are
296
+ * validated at deploy time against every governing field set (see
297
+ * AgentConfig's `_check_input`): the caller schema's paths, the react
298
+ * surface's published fields, and both when the agent has a react trigger
299
+ * and a schema, so one template renders fully on either door (declare the
300
+ * surface's field names in the schema). Omit `message` to let each door
301
+ * render its default. An unresolved ref renders as the empty string (a
302
+ * cron fire, an optional field the payload omitted).
260
303
  */
261
304
  interface InputContract {
262
305
  json_schema: {
@@ -264,10 +307,26 @@ interface InputContract {
264
307
  } | null;
265
308
  message: string | null;
266
309
  }
310
+ /**
311
+ * A saved agent's spend limits: the per-session cap plus its total spend
312
+ * over the trailing 1, 7, and 28 days.
313
+ */
267
314
  interface BudgetConfig {
315
+ /**
316
+ * The most the agent may spend over the last day, in US dollars.
317
+ */
268
318
  day: number | null;
319
+ /**
320
+ * The most the agent may spend over the last 28 days, in US dollars.
321
+ */
269
322
  month: number | null;
323
+ /**
324
+ * The most one session may spend, in US dollars.
325
+ */
270
326
  session: number | null;
327
+ /**
328
+ * The most the agent may spend over the last 7 days, in US dollars.
329
+ */
271
330
  week: number | null;
272
331
  }
273
332
  /**
@@ -277,20 +336,21 @@ interface ClaudeConfig {
277
336
  effort: EffortLevel | null;
278
337
  fallback_model: string | null;
279
338
  max_turns: number | null;
280
- model: string | null;
281
339
  /**
282
- * The initial user message, passed verbatim. Omit to start an interactive session idle.
340
+ * The model the session runs on: an alias or canonical id from the models table. Required.
341
+ */
342
+ model: string;
343
+ /**
344
+ * The initial user message, passed verbatim. Omit to start an interactive session with no turn, waiting for a message.
283
345
  */
284
346
  prompt: string | null;
285
347
  settings: SettingsRef | null;
286
348
  }
287
349
  /**
288
- * A config-declared Claude Code settings.json, resolved at run start and
289
- * passed to `claude --settings <path>`. That is the CLI settings tier — BELOW
290
- * Ellipsis's managed-settings.json floor — so it customizes behavior (model
291
- * permissions, includeCoAuthoredBy, statusLine, ...) but can never weaken a
292
- * security setting. Lets a team point the cloud agent at the same settings file
293
- * they already use with Claude Code locally instead of re-encoding it as YAML.
350
+ * A Claude Code settings.json read from a repository and applied to the
351
+ * session. It adds permission rules and other Claude Code settings; rules the
352
+ * platform sets stay in force. Supported models list `settings` in
353
+ * `/v1/account/models`.
294
354
  */
295
355
  interface SettingsRef {
296
356
  path: string;
@@ -303,30 +363,39 @@ interface RepositoryRef {
303
363
  }
304
364
  /**
305
365
  * Native options supported by the current Codex adapter.
306
- *
307
- * Options and capabilities expand only when their runtime behavior is tested.
308
- * Unknown options are rejected instead of silently ignored.
309
366
  */
310
367
  interface CodexConfig {
311
368
  /**
312
369
  * Reasoning effort for every turn. Omit to use the model default.
313
370
  */
314
371
  effort: CodexEffortLevel | null;
372
+ /**
373
+ * The model the session runs on: a Responses-capable id from the models table. Required.
374
+ */
315
375
  model: string;
316
376
  /**
317
- * The initial user message, passed verbatim. Omit to start an interactive session idle.
377
+ * The initial user message, passed verbatim. Omit to start an interactive session with no turn, waiting for a message.
318
378
  */
319
379
  prompt: string | null;
320
380
  }
321
381
  /**
322
- * Everything about the environment (the sandbox) the agent runs in: which
382
+ * Conversation settings for a session, set on a saved agent or sent when starting a session or running an agent.
383
+ */
384
+ interface SessionConversationConfig {
385
+ /**
386
+ * Whether the session stays open after its first turn. Defaults to true; false runs once and requires a prompt. Requires the model's interactive capability when true. Direct message acceptance is reported separately in conversation.prompting.
387
+ */
388
+ interactive: boolean;
389
+ }
390
+ /**
391
+ * Everything about the environment the agent runs in: which
323
392
  * `repositories` are cloned into it, which environment `variables` it gets,
324
393
  * its `compute` sizing, and lifecycle `hooks`.
325
394
  * What the agent may *do* from that environment is the top-level
326
395
  * `permissions:` block, not this one.
327
396
  *
328
397
  * Each `variables` entry names a variable to inject; with an inline `value` it
329
- * is hardcoded, without one it is resolved from the account's sandbox-secrets
398
+ * is hardcoded, without one it is resolved from the account's secrets
330
399
  * store. Only the named variables reach this agent; the rest of the account's
331
400
  * stored variables never do. This is how a config brings in the config and
332
401
  * credentials a custom CLI needs.
@@ -339,26 +408,24 @@ interface EnvironmentConfig {
339
408
  variables: EnvironmentVariable[];
340
409
  }
341
410
  /**
342
- * Sandbox compute sizing. Every field is optional; None inherits the
343
- * platform default (2 vCPU / 4096 MiB / 3600s — see DEFAULT_SANDBOX_* in
344
- * models/ellipsis/vms/vm_execution.py). A resolved value outside the platform
345
- * bounds fails validation loudly (a sync error on the config) rather than
346
- * being clamped silently.
411
+ * Environment compute sizing. Every field is optional; an omitted field
412
+ * inherits the platform default (2 vCPU / 4096 MiB / 3600s). A resolved value
413
+ * outside the platform bounds fails validation loudly (a sync error on the
414
+ * config) rather than being clamped silently.
347
415
  *
348
416
  * `memory` and `timeout` each accept a shorthand string ("8GB", "30m") or an
349
417
  * explicit units object ({gb: 8}, {minutes: 30}); the `memory_mib` /
350
418
  * `timeout_seconds` properties resolve either form to the canonical integer
351
- * the sandbox driver consumes.
419
+ * the environment is sized with.
352
420
  *
353
- * `timeout` is the max wall-clock the agent may run before its execution is
354
- * stopped, capped at 1h (MAX_SANDBOX_TIMEOUT_SECONDS — equal to the default, so
355
- * today the knob only shortens a session; the cap matches the 1-hour validity
356
- * of the sandbox's GitHub token). The worker's lease/visibility heartbeat
357
- * ceiling is derived from that cap, so a run at the max stays owned by its
358
- * worker for its whole life.
421
+ * `timeout` is the max wall-clock the agent may run in one environment before
422
+ * it is stopped, capped at 1h (equal to the default, so today the knob only
423
+ * shortens a session; the cap matches the 1-hour validity of the session's
424
+ * GitHub token).
359
425
  *
360
- * Compute currently uses a temporary flat one-cent amount per allocated
361
- * execution, subject to the account's existing free-compute exemptions.
426
+ * Compute currently uses a temporary flat one-cent amount each time an
427
+ * environment is started for a session, subject to the account's existing
428
+ * free-compute exemptions.
362
429
  */
363
430
  interface ComputeConfig {
364
431
  cpu: number | null;
@@ -387,8 +454,8 @@ interface Duration {
387
454
  /**
388
455
  * Environment lifecycle scripts, in order: build_base, after_checkout,
389
456
  * before_start. The first two produce reusable snapshots; before_start runs
390
- * before an agent starts or resumes its session. Scripts run as the sandbox
391
- * user in /sandbox. A nonzero exit fails the session.
457
+ * before an agent starts or resumes its session. Scripts run as the environment's
458
+ * user in the workspace directory `/sandbox`. A nonzero exit fails the session.
392
459
  *
393
460
  * Legacy post_start/post_clone scripts remain supported for existing configs;
394
461
  * both run after workspace preparation, before the agent starts or resumes.
@@ -396,11 +463,11 @@ interface Duration {
396
463
  */
397
464
  interface EnvironmentHooks {
398
465
  /**
399
- * Prepare the requested source revision after Ellipsis checks out all repositories, before saving the prepared sandbox. Skipped when that prepared sandbox is reused.
466
+ * Prepare the requested source revision after Ellipsis checks out all repositories, before saving the prepared environment. Skipped when that prepared environment is reused.
400
467
  */
401
468
  after_checkout: EnvironmentScript | string | null;
402
469
  /**
403
- * Run before the agent starts or resumes a session, after the sandbox is ready. This hook is not cached and adds to session startup time.
470
+ * Run before the agent starts or resumes a session, after the environment is ready. This hook is not cached and adds to session startup time.
404
471
  */
405
472
  before_start: EnvironmentScript | string | null;
406
473
  /**
@@ -417,11 +484,12 @@ interface EnvironmentHooks {
417
484
  post_start: string | null;
418
485
  }
419
486
  /**
420
- * An inline shell script run as the sandbox user, with /sandbox as cwd.
487
+ * An inline shell script run as the environment's user, with the workspace
488
+ * directory `/sandbox` as cwd.
421
489
  */
422
490
  interface EnvironmentScript {
423
491
  /**
424
- * Shell script to run in /sandbox.
492
+ * Shell script to run in the workspace directory `/sandbox`.
425
493
  */
426
494
  run: string;
427
495
  }
@@ -430,30 +498,29 @@ interface EnvironmentScript {
430
498
  */
431
499
  interface EnvironmentBaseBuild {
432
500
  /**
433
- * Exact files relative to /sandbox, including the repository name. Only these files are available during build_base and their contents and modes determine reuse. Omit to use all repositories and invalidate on any source change; [] means no repository files.
501
+ * Exact files relative to the workspace directory `/sandbox`, including the repository name. Only these files are available during build_base and their contents and modes determine reuse. Omit to use all repositories and invalidate on any source change; [] means no repository files.
434
502
  */
435
503
  inputs: string[] | null;
436
504
  /**
437
- * Shell script to run in /sandbox.
505
+ * Shell script to run in the workspace directory `/sandbox`.
438
506
  */
439
507
  run: string;
440
508
  }
441
509
  /**
442
- * One built-in MCP server this agent opts into by name (`linear`/`slack`).
510
+ * One built-in MCP server this agent attaches by name (`linear`/`slack`).
443
511
  * A name reference over the connected built-in set — the platform manages the
444
- * server's transport and credentials. It only matters when the named
445
- * integration is set to `opt_in` inclusion; an integration in the default
446
- * `all_sessions` mode is added regardless. For a server the platform does not
447
- * provide, define it instead (`McpStdioServer` /
448
- * `McpRemoteServer`).
512
+ * server's transport and credentials. A session gets a built-in server only
513
+ * when its config names it here or the session started from that server's
514
+ * own surface. For a server the platform does not provide, define it instead
515
+ * (`McpStdioServer` / `McpRemoteServer`).
449
516
  */
450
517
  interface McpServerRef {
451
518
  name: string;
452
519
  }
453
520
  /**
454
521
  * A bring-your-own stdio MCP server: the harness spawns `command` inside
455
- * the sandbox and speaks JSON-RPC over its stdin/stdout. The command must be
456
- * runnable in the sandbox image — install its runtime via `hooks.build_base` /
522
+ * the environment and speaks JSON-RPC over its stdin/stdout. The command must
523
+ * be runnable in the environment image — install its runtime via `hooks.build_base` /
457
524
  * `hooks.after_checkout` if the managed environment lacks it.
458
525
  *
459
526
  * `env` values may embed `${NAME}` references, resolved at run time from the
@@ -470,7 +537,7 @@ interface McpStdioServer {
470
537
  }
471
538
  /**
472
539
  * A bring-your-own remote MCP server: the harness talks HTTP to `url`.
473
- * Nothing runs in the sandbox image. `headers` carry static auth (e.g.
540
+ * Nothing runs in the environment image. `headers` carry static auth (e.g.
474
541
  * `Authorization: Bearer ${TOKEN}`); values may embed `${NAME}` secret
475
542
  * references, resolved at run time from the account's secrets store.
476
543
  */
@@ -482,11 +549,11 @@ interface McpRemoteServer {
482
549
  url: string;
483
550
  }
484
551
  /**
485
- * One environment variable injected into the agent's sandbox.
552
+ * One environment variable injected into the session's environment.
486
553
  *
487
554
  * `value`, when set, is a literal injected as-is — use it for non-secret
488
555
  * config (LOG_LEVEL, an API base URL). When `value` is omitted the value is
489
- * resolved at run time from the account's sandbox-secrets store (dashboard
556
+ * resolved at run time from the account's secrets store (dashboard
490
557
  * / `PUT /v1/secrets`) by `name`, so a secret can be injected without
491
558
  * ever putting it in the config file. Either way the variable only reaches
492
559
  * agents that name it.
@@ -505,18 +572,18 @@ interface OutputConfig {
505
572
  }
506
573
  /**
507
574
  * What the agent is allowed to touch, per credential the platform mints
508
- * into its sandbox. Distinct from `environment:`, which is where the agent
509
- * runs; this is what it may do from there.
575
+ * into its session's environment. Distinct from `environment:`, which is
576
+ * where the agent runs; this is what it may do from there.
510
577
  *
511
- * `ellipsis` scopes the sandbox's Ellipsis API token
512
- * (`ELLIPSIS_API_TOKEN`, what the in-sandbox `agent` CLI authenticates
513
- * with). `true` / the string `all` (the default) grant the full sandbox
514
- * ceiling — everything a sandbox token can ever do. A map narrows it per
578
+ * `ellipsis` scopes the session's Ellipsis API token (`ELLIPSIS_API_TOKEN`,
579
+ * what the `ellipsis` CLI running inside the session authenticates with).
580
+ * `true` / the string `all` (the default) grant the full session token
581
+ * ceiling — everything a session token can ever do. A map narrows it per
515
582
  * resource (see `EllipsisPermissions`); the minted token carries
516
583
  * the intersection, so a config can only ever reduce access. `false` fails
517
584
  * validation — an agent with no API token cannot report its own progress.
518
585
  *
519
- * `github` scopes the sandbox's GitHub installation token (`GH_TOKEN`) —
586
+ * `github` scopes the session's GitHub installation token (`GH_TOKEN`) —
520
587
  * see `GithubPermissions`. GitHub enforces it at mint time.
521
588
  */
522
589
  interface PermissionsConfig {
@@ -527,16 +594,16 @@ interface PermissionsConfig {
527
594
  * `permissions.ellipsis` as a map: resource → level | grant | list of
528
595
  * grants. Levels are hierarchical (read < write < delete), so `write`
529
596
  * includes `read`. An unlisted resource is denied. The whole block is
530
- * intersected with the platform's sandbox ceiling at token mint — it can
531
- * narrow what a sandbox token may do, never exceed it.
597
+ * intersected with the platform's session token ceiling at token mint — it can
598
+ * narrow what a session token may do, never exceed it.
532
599
  */
533
600
  interface EllipsisPermissions {
534
601
  [k: string]: Level | EllipsisGrant | (Level | EllipsisGrant)[];
535
602
  }
536
603
  /**
537
604
  * One grant entry: a level, optionally narrowed to instances whose
538
- * natural key (a file's name, a memory's path, a secret's name, a config's
539
- * name, a session's id) matches any of the `match` globs.
605
+ * natural key (a file's name, a secret's name, a config's name, a session's
606
+ * id) matches any of the `match` globs.
540
607
  */
541
608
  interface EllipsisGrant {
542
609
  level: Level;
@@ -544,8 +611,8 @@ interface EllipsisGrant {
544
611
  }
545
612
  /**
546
613
  * The agent's GitHub access: the scope of the installation token minted for
547
- * its sandbox — the credential `git`, `gh`, and the GitHub MCP server
548
- * authenticate with.
614
+ * its session's environment — the credential `git` and `gh` authenticate
615
+ * with.
549
616
  *
550
617
  * By default the token carries the installation's full permissions on all of
551
618
  * the installation's repositories. `permissions` narrows what it may do:
@@ -556,7 +623,7 @@ interface EllipsisGrant {
556
623
  * the listed repos, by name (they must belong to the installation).
557
624
  *
558
625
  * Restriction is enforced by GitHub, not by Ellipsis: the token itself is
559
- * minted with the reduced scope, so nothing running in the sandbox can
626
+ * minted with the reduced scope, so nothing running in the environment can
560
627
  * exceed it.
561
628
  */
562
629
  interface GithubPermissions {
@@ -574,36 +641,86 @@ interface SkillRef {
574
641
  path: string;
575
642
  repository: RepositoryRef | null;
576
643
  }
644
+ /**
645
+ * A schedule: `schedule` is a five-field cron expression in UTC.
646
+ *
647
+ * `enabled: false` pauses the trigger and keeps its definition: the schedule
648
+ * stops firing while the agent stays live for on-demand starts and open
649
+ * sessions keep taking follow-ups (`ellipsis.enabled: false` pauses the
650
+ * whole file instead). Re-enabling resumes at the next scheduled time; runs
651
+ * missed while paused are not made up.
652
+ */
577
653
  interface CronTrigger {
654
+ enabled: boolean;
578
655
  schedule: string;
579
656
  type: 'cron';
580
657
  }
658
+ /**
659
+ * An event trigger: exactly one surface block names the events to match.
660
+ *
661
+ * `enabled: false` pauses the trigger and keeps its definition: events stop
662
+ * matching while the agent stays live for on-demand starts and open
663
+ * sessions keep taking follow-ups (`ellipsis.enabled: false` pauses the
664
+ * whole file instead).
665
+ */
581
666
  interface ReactTrigger {
667
+ check_run: ReactCheckRun | null;
668
+ enabled: boolean;
582
669
  issue: ReactIssue | null;
583
670
  linear_issue: ReactLinearIssue | null;
584
671
  pull_request: ReactPullRequest | null;
585
672
  push: ReactPush | null;
673
+ release: ReactRelease | null;
586
674
  sentry: ReactSentry | null;
587
675
  slack_channel: ReactSlackChannel | null;
588
676
  type: 'react';
589
677
  }
590
- interface ReactIssue {
678
+ /**
679
+ * A CI/CD check completing on a commit — a `check_run` from GitHub
680
+ * Actions or any other app that reports checks. `names` narrows to the check
681
+ * runs whose name matches (exact, or a prefix ending in `*`); `branch` is the
682
+ * check suite's head branch. The `for:` audience is the commit's author (the
683
+ * pull request author when the check is attached to one), never the CI app
684
+ * that completed the check — a check run's sender is always a bot.
685
+ *
686
+ * Delivery needs the Ellipsis GitHub App's `checks` permission on the
687
+ * installation; without it GitHub sends no check events and the webhook
688
+ * handler refuses the ones it does see.
689
+ */
690
+ interface ReactCheckRun {
691
+ branch: string[];
591
692
  for: GithubAccountSelector;
592
- labels: string[];
593
- on: IssueAction[];
693
+ names: string[];
694
+ on: CheckRunAction[];
594
695
  repositories: RepositoryFilter;
595
696
  }
596
697
  /**
597
698
  * A selector of GitHub accounts — the `for:` audience gate on react
598
- * surfaces and code review pipelines, classified on the stable entity author
599
- * (the pusher for `push`, the PR author for a review). `users` selects human
699
+ * surfaces, classified on the stable entity author (the pusher for `push`,
700
+ * the PR author for a pull request). `users` selects human
600
701
  * accounts, `bots` selects bot accounts; each is a `GithubAccountFilter`
601
702
  * (include minus exclude, with bare bool/list shorthand).
703
+ *
704
+ * `teams` narrows further to members of any of the listed GitHub teams of
705
+ * the installation's organization, by slug (`platform` for
706
+ * `@org/platform`). It applies on top of `users`: the author must pass the
707
+ * users filter AND belong to a listed team. A bot is never a team member,
708
+ * so a selector with `teams` never admits one. Membership is resolved live
709
+ * at match time (see `TriggerEventContext.is_author_team_member`), and the
710
+ * config sync refuses a team that does not exist when the file is
711
+ * accepted.
602
712
  */
603
713
  interface GithubAccountSelector {
604
714
  bots: GithubAccountFilter;
715
+ teams: string[];
605
716
  users: GithubAccountFilter;
606
717
  }
718
+ interface ReactIssue {
719
+ for: GithubAccountSelector;
720
+ labels: string[];
721
+ on: IssueAction[];
722
+ repositories: RepositoryFilter;
723
+ }
607
724
  interface ReactLinearIssue {
608
725
  for: GithubAccountSelector;
609
726
  on: LinearIssueAction[];
@@ -624,6 +741,21 @@ interface ReactPush {
624
741
  paths: string[];
625
742
  repositories: RepositoryFilter;
626
743
  }
744
+ /**
745
+ * A GitHub release being published — a release or prerelease published
746
+ * directly, or a draft published later. `tag` narrows to the release tags
747
+ * that match (exact, or a prefix ending in `*`, so `v*`); `prerelease`
748
+ * selects prereleases or full releases, like `draft` on pull requests. The
749
+ * `for:` audience is the release's author, which for a release cut by CI is
750
+ * a bot and needs `bots` to opt in.
751
+ */
752
+ interface ReactRelease {
753
+ for: GithubAccountSelector;
754
+ on: ReleaseAction[];
755
+ prerelease: boolean | null;
756
+ repositories: RepositoryFilter;
757
+ tag: string[];
758
+ }
627
759
  interface ReactSentry {
628
760
  on: SentryAction[];
629
761
  projects: string[];
@@ -631,21 +763,17 @@ interface ReactSentry {
631
763
  interface ReactSlackChannel {
632
764
  }
633
765
  /**
634
- * The principal this session is attributed to.
766
+ * When the session was archived and the GitHub user who archived it.
635
767
  */
636
- interface SessionAttribution {
637
- /**
638
- * Identifier of the principal the session is attributed to.
639
- */
640
- id: string | null;
768
+ interface SessionArchived {
641
769
  /**
642
- * Kind of principal the session is attributed to (e.g. a GitHub user or an API key).
770
+ * When the session was archived.
643
771
  */
644
- type: AttributionType | null;
772
+ at: string;
645
773
  /**
646
- * The GitHub user the session is attributed to, resolved at read time. Null when the attribution is not a GitHub user.
774
+ * The GitHub user who archived the session; null if unknown or unavailable.
647
775
  */
648
- user: GithubAccountSnippet | null;
776
+ by: GithubAccountSnippet | null;
649
777
  }
650
778
  /**
651
779
  * Sometimes the GitHub API returns a user of github (can include bots)
@@ -658,14 +786,56 @@ interface GithubAccountSnippet {
658
786
  avatar_url: string;
659
787
  id: number;
660
788
  login: string;
789
+ name: string | null;
661
790
  type: GithubAccountType;
662
791
  }
663
792
  /**
664
- * What the session cost, in millicents, broken down by leg and carrying its own total.
793
+ * The principal this session is attributed to.
794
+ */
795
+ interface SessionAttribution {
796
+ /**
797
+ * Identifier of the principal the session is attributed to.
798
+ */
799
+ id: string | null;
800
+ /**
801
+ * Kind of principal the session is attributed to (e.g. a GitHub user or an API key).
802
+ */
803
+ type: AttributionType | null;
804
+ /**
805
+ * The GitHub user the session is attributed to, resolved at read time. Null when the attribution is not a GitHub user.
806
+ */
807
+ user: GithubAccountSnippet | null;
808
+ }
809
+ /**
810
+ * Whether the session can take more messages, and whether an agent is warm to answer one.
811
+ */
812
+ interface SessionConversation {
813
+ /**
814
+ * Whether the session stays open after its first turn.
815
+ */
816
+ interactive: boolean;
817
+ prompting: SessionPrompting;
818
+ state: SessionState;
819
+ /**
820
+ * Whether an agent is ready to answer the next message right away. When false, the next message first prepares an environment, which takes longer. A hint only; clients need no logic on it.
821
+ */
822
+ warm: boolean;
823
+ }
824
+ /**
825
+ * The session's policy for direct messages. Caller authorization and message validation are checked separately.
826
+ */
827
+ interface SessionPrompting {
828
+ blocked_reason: PromptBlockedReason | null;
829
+ detail: string | null;
830
+ enabled: boolean;
831
+ surface_name: string | null;
832
+ }
833
+ /**
834
+ * What the session has cost so far, in millicents, broken down by leg and carrying its own total.
665
835
  */
666
836
  interface SessionCost {
667
837
  /**
668
- * Sandbox CPU spend in millicents.
838
+ * CPU spend in millicents.
669
839
  */
670
840
  cpu: number;
671
841
  /**
@@ -677,7 +847,7 @@ interface SessionCost {
677
847
  */
678
848
  llm: number;
679
849
  /**
680
- * Sandbox memory spend in millicents.
850
+ * Memory spend in millicents.
681
851
  */
682
852
  memory: number;
683
853
  /**
@@ -692,7 +862,7 @@ interface SessionEnvironment {
692
862
  compute: ComputeConfig1;
693
863
  hooks: EnvironmentHooks1;
694
864
  /**
695
- * Identifier of the saved environment the session's config resolved. Null for an inline environment block or the built-in basic sandbox.
865
+ * Identifier of the saved environment the session's config resolved. Null for an inline environment block or the built-in basic environment.
696
866
  */
697
867
  id: string | null;
698
868
  mcp_servers: (string | McpServerRef | McpStdioServer | McpRemoteServer)[];
@@ -704,26 +874,24 @@ interface SessionEnvironment {
704
874
  variables: EnvironmentVariable[];
705
875
  }
706
876
  /**
707
- * Sandbox compute sizing. Every field is optional; None inherits the
708
- * platform default (2 vCPU / 4096 MiB / 3600s — see DEFAULT_SANDBOX_* in
709
- * models/ellipsis/vms/vm_execution.py). A resolved value outside the platform
710
- * bounds fails validation loudly (a sync error on the config) rather than
711
- * being clamped silently.
877
+ * Environment compute sizing. Every field is optional; an omitted field
878
+ * inherits the platform default (2 vCPU / 4096 MiB / 3600s). A resolved value
879
+ * outside the platform bounds fails validation loudly (a sync error on the
880
+ * config) rather than being clamped silently.
712
881
  *
713
882
  * `memory` and `timeout` each accept a shorthand string ("8GB", "30m") or an
714
883
  * explicit units object ({gb: 8}, {minutes: 30}); the `memory_mib` /
715
884
  * `timeout_seconds` properties resolve either form to the canonical integer
716
- * the sandbox driver consumes.
885
+ * the environment is sized with.
717
886
  *
718
- * `timeout` is the max wall-clock the agent may run before its execution is
719
- * stopped, capped at 1h (MAX_SANDBOX_TIMEOUT_SECONDS — equal to the default, so
720
- * today the knob only shortens a session; the cap matches the 1-hour validity
721
- * of the sandbox's GitHub token). The worker's lease/visibility heartbeat
722
- * ceiling is derived from that cap, so a run at the max stays owned by its
723
- * worker for its whole life.
887
+ * `timeout` is the max wall-clock the agent may run in one environment before
888
+ * it is stopped, capped at 1h (equal to the default, so today the knob only
889
+ * shortens a session; the cap matches the 1-hour validity of the session's
890
+ * GitHub token).
724
891
  *
725
- * Compute currently uses a temporary flat one-cent amount per allocated
726
- * execution, subject to the account's existing free-compute exemptions.
892
+ * Compute currently uses a temporary flat one-cent amount each time an
893
+ * environment is started for a session, subject to the account's existing
894
+ * free-compute exemptions.
727
895
  */
728
896
  interface ComputeConfig1 {
729
897
  cpu: number | null;
@@ -733,8 +901,8 @@ interface ComputeConfig1 {
733
901
  /**
734
902
  * Environment lifecycle scripts, in order: build_base, after_checkout,
735
903
  * before_start. The first two produce reusable snapshots; before_start runs
736
- * before an agent starts or resumes its session. Scripts run as the sandbox
737
- * user in /sandbox. A nonzero exit fails the session.
904
+ * before an agent starts or resumes its session. Scripts run as the environment's
905
+ * user in the workspace directory `/sandbox`. A nonzero exit fails the session.
738
906
  *
739
907
  * Legacy post_start/post_clone scripts remain supported for existing configs;
740
908
  * both run after workspace preparation, before the agent starts or resumes.
@@ -742,11 +910,11 @@ interface ComputeConfig1 {
742
910
  */
743
911
  interface EnvironmentHooks1 {
744
912
  /**
745
- * Prepare the requested source revision after Ellipsis checks out all repositories, before saving the prepared sandbox. Skipped when that prepared sandbox is reused.
913
+ * Prepare the requested source revision after Ellipsis checks out all repositories, before saving the prepared environment. Skipped when that prepared environment is reused.
746
914
  */
747
915
  after_checkout: EnvironmentScript | string | null;
748
916
  /**
749
- * Run before the agent starts or resumes a session, after the sandbox is ready. This hook is not cached and adds to session startup time.
917
+ * Run before the agent starts or resumes a session, after the environment is ready. This hook is not cached and adds to session startup time.
750
918
  */
751
919
  before_start: EnvironmentScript | string | null;
752
920
  /**
@@ -798,8 +966,30 @@ interface GithubPushEvent {
798
966
  type: 'github.push';
799
967
  url: string;
800
968
  }
969
+ interface GithubCheckRunEvent {
970
+ action: CheckRunAction;
971
+ actor: SessionEventActor | null;
972
+ branch: string | null;
973
+ conclusion: string | null;
974
+ head_sha: string;
975
+ name: string;
976
+ pull_request_number: number | null;
977
+ repository: string;
978
+ type: 'github.check_run';
979
+ url: string;
980
+ }
981
+ interface GithubReleaseEvent {
982
+ action: ReleaseAction;
983
+ actor: SessionEventActor | null;
984
+ name: string | null;
985
+ prerelease: boolean;
986
+ repository: string;
987
+ tag: string;
988
+ type: 'github.release';
989
+ url: string;
990
+ }
801
991
  interface LinearIssueEvent {
802
- action: LinearIssueAction | 'commented';
992
+ action: LinearIssueAction | ('commented' | 'delegated');
803
993
  actor: SessionEventActor | null;
804
994
  identifier: string | null;
805
995
  number: number;
@@ -841,8 +1031,8 @@ interface SessionGit {
841
1031
  repos: SessionGitRepo[];
842
1032
  }
843
1033
  /**
844
- * One checkout in the session's sandbox and everything the session did to
845
- * it, split by whether it survived the sandbox.
1034
+ * One checkout in the session's environment and everything the session did
1035
+ * to it, split by whether it survived the environment.
846
1036
  */
847
1037
  interface SessionGitRepo {
848
1038
  commits: SessionGitCommit[];
@@ -856,7 +1046,7 @@ interface SessionGitRepo {
856
1046
  }
857
1047
  /**
858
1048
  * One commit the session created in this repo (everything past the
859
- * provisioning checkout's sha), captured from the sandbox rather than the
1049
+ * provisioning checkout's sha), captured from the environment rather than the
860
1050
  * transcript so it stays correct through amends, rebases, and commits made by
861
1051
  * scripts. The repo is the parent object, so it is not repeated here.
862
1052
  */
@@ -908,135 +1098,169 @@ interface SessionHandler {
908
1098
  sha: string;
909
1099
  }
910
1100
  /**
911
- * The session's activity, conversation state, messaging policy, outcomes, and timestamps.
1101
+ * Structured output on the wire: the contract and, when a turn has
1102
+ * submitted one, the payload. `result` is None while the session runs and
1103
+ * when no turn submitted anything; it is the agent's own JSON, in the
1104
+ * shape of `json_schema`.
912
1105
  */
913
- interface SessionLifecycle {
1106
+ interface SessionOutput {
914
1107
  /**
915
- * When and by whom the session was archived; null when unarchived. Archiving does not stop or close a session.
1108
+ * JSON Schema the agent's result must satisfy.
916
1109
  */
917
- archived: SessionArchived | null;
918
- conversation: ConversationState;
1110
+ json_schema: {
1111
+ [k: string]: unknown;
1112
+ };
919
1113
  /**
920
- * Explanation of the current status, when applicable.
1114
+ * The payload the agent submitted, or null until a turn submits one.
921
1115
  */
922
- detail: string | null;
1116
+ result: {
1117
+ [k: string]: unknown;
1118
+ } | null;
1119
+ }
1120
+ /**
1121
+ * The predecessor session this session continues.
1122
+ */
1123
+ interface SessionParent {
923
1124
  /**
924
- * Whether the session stays open after its first turn.
1125
+ * Identifier of the predecessor session this session continues, if any.
925
1126
  */
926
- interactive: boolean;
1127
+ session_id: string | null;
1128
+ }
1129
+ /**
1130
+ * What the session may touch, per minted credential.
1131
+ */
1132
+ interface PermissionsConfig1 {
1133
+ ellipsis: (true | 'all') | EllipsisPermissions;
1134
+ github: GithubPermissions;
1135
+ }
1136
+ /**
1137
+ * A live one-line summary of what the session is doing, refreshed
1138
+ * every few steps while it runs.
1139
+ */
1140
+ interface SessionSummary {
927
1141
  /**
928
- * The last finished execution's outcome, retained across resumes; null until an outcome has been recorded.
1142
+ * When this summary line was generated. Null on summaries written before generation time was tracked.
929
1143
  */
930
- last_execution_result: SessionExecutionResult | null;
931
- prompting: SessionPrompting;
932
- status: SessionLifecycleStatus;
1144
+ created_at: string | null;
933
1145
  /**
934
- * When and by whom a stop was requested; null when no stop is pending for this execution.
1146
+ * One-line description of what the session is doing.
935
1147
  */
936
- stopped: SessionStopped | null;
937
- timestamps: SessionTimestamps;
1148
+ description: string;
938
1149
  }
939
1150
  /**
940
- * When the session was archived and the GitHub user who archived it.
1151
+ * The tokens the session spent and the model they went to. `total` includes the prompt-cache lanes.
941
1152
  */
942
- interface SessionArchived {
1153
+ interface SessionTokens {
943
1154
  /**
944
- * When the session was archived.
1155
+ * Tokens written to the prompt cache.
945
1156
  */
946
- at: string;
1157
+ cache_creation: number;
947
1158
  /**
948
- * The GitHub user who archived the session; null if unknown or unavailable.
1159
+ * Tokens read from the prompt cache.
949
1160
  */
950
- by: GithubAccountSnippet | null;
951
- }
952
- /**
953
- * Outcome of the last finished execution, retained across subsequent resumes.
954
- *
955
- * An execution spans a start or resume through parking or termination, and may
956
- * contain several turns. Admission failures also produce a result, even when
957
- * provisioning never starts.
958
- */
959
- interface SessionExecutionResult {
960
- completion_reason: SessionExitStatus;
1161
+ cache_read: number;
961
1162
  /**
962
- * Human-readable explanation of that outcome.
1163
+ * Input tokens used.
963
1164
  */
964
- detail: string | null;
1165
+ input: number;
1166
+ /**
1167
+ * The model the token counts are attributed to.
1168
+ */
1169
+ model: string;
1170
+ /**
1171
+ * Output tokens used.
1172
+ */
1173
+ output: number;
1174
+ /**
1175
+ * Total tokens consumed, INCLUDING the prompt-cache reads and writes — the same basis the token cost is priced on.
1176
+ */
1177
+ total: number;
965
1178
  }
966
1179
  /**
967
- * The session's policy for direct messages. Caller authorization and message validation are checked separately.
1180
+ * One message and the agent's answer to it. A turn is `pending` from the
1181
+ * moment its message is received until the agent starts on it, `running`
1182
+ * while the agent works, then `completed`, `failed`, `stopped`, or
1183
+ * `cancelled`.
968
1184
  */
969
- interface SessionPrompting {
970
- blocked_reason: PromptBlockedReason | null;
1185
+ interface SessionTurn {
1186
+ cost: SessionCost1;
1187
+ /**
1188
+ * When the turn's message was received.
1189
+ */
1190
+ created_at: string;
1191
+ /**
1192
+ * A human-readable explanation of a failed, stopped, or cancelled turn.
1193
+ */
971
1194
  detail: string | null;
972
- enabled: boolean;
973
- surface_name: string | null;
974
- }
975
- /**
976
- * When a stop was requested and the GitHub user who requested it.
977
- */
978
- interface SessionStopped {
979
1195
  /**
980
- * When a stop was requested.
1196
+ * When the turn reached its final status.
981
1197
  */
982
- at: string;
1198
+ ended_at: string | null;
983
1199
  /**
984
- * The GitHub user who stopped the session, resolved at read time. Null if the user is unknown or unavailable.
1200
+ * Unique identifier of the turn.
985
1201
  */
986
- by: GithubAccountSnippet | null;
987
- }
988
- interface SessionTimestamps {
1202
+ id: string;
989
1203
  /**
990
- * When the session was created.
1204
+ * Position in the session, starting at 0.
991
1205
  */
992
- created_at: string;
1206
+ index: number;
993
1207
  /**
994
- * When the session last showed agent activity.
1208
+ * Why the turn failed or was cancelled; null on every other status.
995
1209
  */
996
- last_activity_at: string | null;
1210
+ reason: TurnReason | null;
997
1211
  /**
998
- * When the session last received a message.
1212
+ * When the agent started on the message.
999
1213
  */
1000
- last_message_at: string | null;
1214
+ started_at: string | null;
1215
+ status: TurnStatus;
1001
1216
  /**
1002
- * When the session was last updated.
1217
+ * When and by whom a stop was requested; null when none was.
1003
1218
  */
1004
- updated_at: string;
1219
+ stopped: SessionStopped | null;
1220
+ tokens: SessionTokens1;
1005
1221
  }
1006
1222
  /**
1007
- * The predecessor session this session continues.
1223
+ * What the turn cost so far, in millicents, broken down by leg.
1008
1224
  */
1009
- interface SessionParent {
1225
+ interface SessionCost1 {
1010
1226
  /**
1011
- * Identifier of the predecessor session this session continues, if any.
1227
+ * CPU spend in millicents.
1012
1228
  */
1013
- session_id: string | null;
1014
- }
1015
- /**
1016
- * What the session may touch, per minted credential.
1017
- */
1018
- interface PermissionsConfig1 {
1019
- ellipsis: (true | 'all') | EllipsisPermissions;
1020
- github: GithubPermissions;
1229
+ cpu: number;
1230
+ /**
1231
+ * Platform fee in millicents.
1232
+ */
1233
+ fee: number;
1234
+ /**
1235
+ * LLM spend in millicents.
1236
+ */
1237
+ llm: number;
1238
+ /**
1239
+ * Memory spend in millicents.
1240
+ */
1241
+ memory: number;
1242
+ /**
1243
+ * The grand total in millicents: llm + cpu + memory + fee.
1244
+ */
1245
+ total: number;
1021
1246
  }
1022
1247
  /**
1023
- * A live one-line summary of what the session is working on, refreshed
1024
- * every few steps while it runs.
1248
+ * When a stop was requested and the GitHub user who requested it.
1025
1249
  */
1026
- interface SessionSummary {
1250
+ interface SessionStopped {
1027
1251
  /**
1028
- * When this summary line was generated. Null on summaries written before generation time was tracked.
1252
+ * When a stop was requested.
1029
1253
  */
1030
- created_at: string | null;
1254
+ at: string;
1031
1255
  /**
1032
- * One-line description of what the session is working on.
1256
+ * The GitHub user who stopped the session, resolved at read time. Null if the user is unknown or unavailable.
1033
1257
  */
1034
- description: string;
1258
+ by: GithubAccountSnippet | null;
1035
1259
  }
1036
1260
  /**
1037
- * The tokens the session spent and the model they went to. `total` includes the prompt-cache lanes.
1261
+ * The tokens the turn spent and the model they went to.
1038
1262
  */
1039
- interface SessionTokens {
1263
+ interface SessionTokens1 {
1040
1264
  /**
1041
1265
  * Tokens written to the prompt cache.
1042
1266
  */
@@ -1138,7 +1362,7 @@ interface AgentConfig1 {
1138
1362
  /**
1139
1363
  * Identifies the file a GitHub-sourced agent is synced from.
1140
1364
  *
1141
- * Keyed on the repository ID (not owner/name) so repository and org renames
1365
+ * Identified by the repository ID (not owner/name) so repository and org renames
1142
1366
  * don't orphan the config; resolve display names from gh_repositories at
1143
1367
  * read time.
1144
1368
  */
@@ -1186,8 +1410,8 @@ interface VMExecutionResponse {
1186
1410
  /**
1187
1411
  * Environment lifecycle scripts, in order: build_base, after_checkout,
1188
1412
  * before_start. The first two produce reusable snapshots; before_start runs
1189
- * before an agent starts or resumes its session. Scripts run as the sandbox
1190
- * user in /sandbox. A nonzero exit fails the session.
1413
+ * before an agent starts or resumes its session. Scripts run as the environment's
1414
+ * user in the workspace directory `/sandbox`. A nonzero exit fails the session.
1191
1415
  *
1192
1416
  * Legacy post_start/post_clone scripts remain supported for existing configs;
1193
1417
  * both run after workspace preparation, before the agent starts or resumes.
@@ -1195,11 +1419,11 @@ interface VMExecutionResponse {
1195
1419
  */
1196
1420
  interface EnvironmentHooks2 {
1197
1421
  /**
1198
- * Prepare the requested source revision after Ellipsis checks out all repositories, before saving the prepared sandbox. Skipped when that prepared sandbox is reused.
1422
+ * Prepare the requested source revision after Ellipsis checks out all repositories, before saving the prepared environment. Skipped when that prepared environment is reused.
1199
1423
  */
1200
1424
  after_checkout: EnvironmentScript | string | null;
1201
1425
  /**
1202
- * Run before the agent starts or resumes a session, after the sandbox is ready. This hook is not cached and adds to session startup time.
1426
+ * Run before the agent starts or resumes a session, after the environment is ready. This hook is not cached and adds to session startup time.
1203
1427
  */
1204
1428
  before_start: EnvironmentScript | string | null;
1205
1429
  /**
@@ -1253,7 +1477,7 @@ declare class Page<ItemT, ResponseT extends CursorResponse> implements AsyncIter
1253
1477
  }
1254
1478
 
1255
1479
  type S$1 = components['schemas'];
1256
- declare const TERMINAL_STATUSES: ReadonlySet<string>;
1480
+ declare function isTurnFinal(status: string): boolean;
1257
1481
  interface SessionsApi {
1258
1482
  get(sessionId: string): Promise<S$1['SessionResponse']>;
1259
1483
  stop(sessionId: string): Promise<S$1['SessionResponse']>;
@@ -1262,26 +1486,25 @@ interface SessionsApi {
1262
1486
  images?: S$1['ImageAttachment'][];
1263
1487
  idempotency_key?: string | null;
1264
1488
  }): Promise<S$1['SessionMessageResponse']>;
1265
- records(sessionId: string, options?: {
1266
- cursor?: string;
1267
- limit?: number;
1268
- }): Promise<unknown>;
1489
+ turns: {
1490
+ get(sessionId: string, turnId: string): Promise<S$1['SessionTurnResponse']>;
1491
+ };
1269
1492
  }
1270
- declare function isSettled(session: S$1['Session']): boolean;
1271
1493
  declare class SessionHandle {
1272
1494
  private readonly sessions;
1273
1495
  readonly id: string;
1274
1496
  session: S$1['Session'];
1497
+ turnId: string | null;
1275
1498
  constructor(sessions: SessionsApi, session: S$1['Session']);
1276
1499
  refresh(): Promise<S$1['Session']>;
1277
1500
  wait(options?: {
1278
1501
  timeoutMs?: number;
1279
1502
  pollIntervalMs?: number;
1280
- }): Promise<S$1['Session']>;
1503
+ }): Promise<S$1['SessionTurn'] | null>;
1281
1504
  send(message: string, options?: {
1282
1505
  images?: S$1['ImageAttachment'][];
1283
1506
  idempotencyKey?: string;
1284
- }): Promise<S$1['SessionMessage']>;
1507
+ }): Promise<S$1['SessionMessageResponse']>;
1285
1508
  stop(): Promise<S$1['Session']>;
1286
1509
  }
1287
1510
 
@@ -1321,7 +1544,7 @@ declare class EllipsisAccountApiKeys {
1321
1544
  * Required permissions: write:tokens.
1322
1545
  * API key: Requires a CLI user token belonging to an account administrator.
1323
1546
  * CLI user token: Requires an account administrator.
1324
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1547
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1325
1548
  * Higher permission levels include lower levels: read < write < delete.
1326
1549
  */
1327
1550
  create(options: {
@@ -1333,7 +1556,7 @@ declare class EllipsisAccountApiKeys {
1333
1556
  * Required permissions: read:tokens.
1334
1557
  * API key: Supported.
1335
1558
  * CLI user token: Supported.
1336
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1559
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1337
1560
  * Higher permission levels include lower levels: read < write < delete.
1338
1561
  */
1339
1562
  list(): Promise<S['ListApiKeysResponse']>;
@@ -1345,7 +1568,7 @@ declare class EllipsisAccountApiKeys {
1345
1568
  * Required permissions: delete:tokens.
1346
1569
  * API key: Requires a CLI user token belonging to an account administrator.
1347
1570
  * CLI user token: Requires an account administrator.
1348
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1571
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1349
1572
  * Higher permission levels include lower levels: read < write < delete.
1350
1573
  */
1351
1574
  revoke(api_key_id: string): Promise<S['TokenRevokedResponse']>;
@@ -1364,7 +1587,7 @@ declare class EllipsisAccountBillingAutoRecharge {
1364
1587
  * Required permissions: read:account.
1365
1588
  * API key: Supported.
1366
1589
  * CLI user token: Supported.
1367
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1590
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1368
1591
  * Higher permission levels include lower levels: read < write < delete.
1369
1592
  */
1370
1593
  get(): Promise<S['AutoRechargeSettings']>;
@@ -1373,7 +1596,7 @@ declare class EllipsisAccountBillingAutoRecharge {
1373
1596
  *
1374
1597
  * Set your automatic credit recharge policy.
1375
1598
  *
1376
- * Requires a human account administrator; API keys and sandbox tokens
1599
+ * Requires a human account administrator; API keys and session tokens
1377
1600
  * cannot change this policy. Supply enabled explicitly. Saving amounts
1378
1601
  * with enabled=false keeps recharge off; enabling requires a saved card.
1379
1602
  * A recharge buys amount_cents of credit and charges the platform fee
@@ -1382,7 +1605,7 @@ declare class EllipsisAccountBillingAutoRecharge {
1382
1605
  * Required permissions: write:account.
1383
1606
  * API key: Requires a CLI user token belonging to an account administrator.
1384
1607
  * CLI user token: Requires an account administrator.
1385
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1608
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1386
1609
  * Higher permission levels include lower levels: read < write < delete.
1387
1610
  */
1388
1611
  set(options: {
@@ -1407,7 +1630,7 @@ declare class EllipsisAccountBilling {
1407
1630
  * Required permissions: write:account.
1408
1631
  * API key: Requires a CLI user token belonging to an account administrator.
1409
1632
  * CLI user token: Requires an account administrator.
1410
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1633
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1411
1634
  * Higher permission levels include lower levels: read < write < delete.
1412
1635
  */
1413
1636
  cardSetup(): Promise<S['BillingCheckout']>;
@@ -1424,7 +1647,7 @@ declare class EllipsisAccountBilling {
1424
1647
  * Required permissions: write:account.
1425
1648
  * API key: Requires a CLI user token belonging to an account administrator.
1426
1649
  * CLI user token: Requires an account administrator.
1427
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1650
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1428
1651
  * Higher permission levels include lower levels: read < write < delete.
1429
1652
  */
1430
1653
  checkout(options: {
@@ -1441,7 +1664,7 @@ declare class EllipsisAccountBilling {
1441
1664
  * Required permissions: write:account.
1442
1665
  * API key: Supported.
1443
1666
  * CLI user token: Supported.
1444
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1667
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1445
1668
  * Higher permission levels include lower levels: read < write < delete.
1446
1669
  */
1447
1670
  claimSignupCredit(): Promise<S['BillingStatus']>;
@@ -1453,7 +1676,7 @@ declare class EllipsisAccountBilling {
1453
1676
  * Required permissions: read:account.
1454
1677
  * API key: Supported.
1455
1678
  * CLI user token: Supported.
1456
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1679
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1457
1680
  * Higher permission levels include lower levels: read < write < delete.
1458
1681
  */
1459
1682
  feeSchedule(): Promise<S['FeeScheduleResponse']>;
@@ -1468,7 +1691,7 @@ declare class EllipsisAccountBilling {
1468
1691
  * Required permissions: read:account.
1469
1692
  * API key: Supported.
1470
1693
  * CLI user token: Supported.
1471
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1694
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1472
1695
  * Higher permission levels include lower levels: read < write < delete.
1473
1696
  */
1474
1697
  grants(): Promise<S['CreditGrantsResponse']>;
@@ -1483,7 +1706,7 @@ declare class EllipsisAccountBilling {
1483
1706
  * Required permissions: read:account.
1484
1707
  * API key: Supported.
1485
1708
  * CLI user token: Supported.
1486
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1709
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1487
1710
  * Higher permission levels include lower levels: read < write < delete.
1488
1711
  */
1489
1712
  purchase(checkout_id: string): Promise<S['CreditPurchaseReceipt']>;
@@ -1498,7 +1721,7 @@ declare class EllipsisAccountBilling {
1498
1721
  * Required permissions: read:account.
1499
1722
  * API key: Supported.
1500
1723
  * CLI user token: Supported.
1501
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1724
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1502
1725
  * Higher permission levels include lower levels: read < write < delete.
1503
1726
  */
1504
1727
  purchaseOptions(): Promise<S['CreditPurchaseOptions']>;
@@ -1508,13 +1731,13 @@ declare class EllipsisAccountBilling {
1508
1731
  * Explain whether your account can start sessions.
1509
1732
  *
1510
1733
  * Uses the same account gate as session admission, including credit,
1511
- * contact email, and personal Claude subscription eligibility. Scoped
1734
+ * contact email, and personal subscription eligibility. Scoped
1512
1735
  * spend limits are reported separately by /v1/account/budget.
1513
1736
  *
1514
1737
  * Required permissions: read:account.
1515
1738
  * API key: Supported.
1516
1739
  * CLI user token: Supported.
1517
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1740
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1518
1741
  * Higher permission levels include lower levels: read < write < delete.
1519
1742
  */
1520
1743
  status(): Promise<S['BillingStatus']>;
@@ -1528,18 +1751,16 @@ declare class EllipsisAccountModels {
1528
1751
  * List selectable agent models.
1529
1752
  *
1530
1753
  * Grouped by manufacturer and model family, newest versions first
1531
- * within each family, with the organization's default model
1532
- * flagged (`is_default_agent_model`: the `default_model` of
1533
- * `GET /v1/account/settings`).
1754
+ * within each family.
1534
1755
  *
1535
1756
  * Reads the same registry as the dashboard's rate table, so a
1536
1757
  * client's model picker can never drift from what's offered. The
1537
- * selectable set is global; only the flag is account-scoped.
1758
+ * selectable set is global.
1538
1759
  *
1539
1760
  * Required permissions: read:templates.
1540
1761
  * API key: Supported.
1541
1762
  * CLI user token: Supported.
1542
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1763
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1543
1764
  * Higher permission levels include lower levels: read < write < delete.
1544
1765
  */
1545
1766
  list(): Promise<S['ModelsListResponse']>;
@@ -1557,7 +1778,7 @@ declare class EllipsisAccountNotifications {
1557
1778
  * Required permissions: write:account.
1558
1779
  * API key: Supported.
1559
1780
  * CLI user token: Supported.
1560
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1781
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1561
1782
  * Higher permission levels include lower levels: read < write < delete.
1562
1783
  */
1563
1784
  testEmail(options: {
@@ -1575,7 +1796,7 @@ declare class EllipsisAccountOnboarding {
1575
1796
  * Required permissions: read:account.
1576
1797
  * API key: Supported.
1577
1798
  * CLI user token: Supported.
1578
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1799
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1579
1800
  * Higher permission levels include lower levels: read < write < delete.
1580
1801
  */
1581
1802
  get(): Promise<S['AccountOnboardingResponse']>;
@@ -1588,122 +1809,23 @@ declare class EllipsisAccountOnboarding {
1588
1809
  * Saving use cases requires a valid organization work email and at
1589
1810
  * least one choice. When Other is the only choice, describe it.
1590
1811
  * Personal accounts save a null work email. This does not change the
1591
- * billing contact email. Sandbox credentials cannot update answers.
1812
+ * billing contact email. Session tokens cannot update answers.
1592
1813
  * Supplying an organization work email requires a human user and sends
1593
1814
  * a Slack Connect invitation. Slack failures do not undo saved answers.
1594
1815
  *
1595
1816
  * Required permissions: write:account.
1596
1817
  * API key: Supported.
1597
1818
  * CLI user token: Supported.
1598
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1819
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1599
1820
  * Higher permission levels include lower levels: read < write < delete.
1600
1821
  */
1601
1822
  update(options?: {
1823
+ finished?: boolean;
1602
1824
  other_use_case?: string | null;
1603
1825
  use_cases?: (S['AccountOnboardingUseCase'])[];
1604
1826
  work_email?: string | null;
1605
1827
  }): Promise<S['AccountOnboardingResponse']>;
1606
1828
  }
1607
- declare class EllipsisAccountProvidersAnthropic {
1608
- private readonly transport;
1609
- constructor(transport: Transport);
1610
- /**
1611
- * Delete Anthropic Config
1612
- *
1613
- * Required permissions: delete:account.
1614
- * API key: Supported.
1615
- * CLI user token: Supported.
1616
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1617
- * Higher permission levels include lower levels: read < write < delete.
1618
- */
1619
- delete(): Promise<void>;
1620
- /**
1621
- * Get Anthropic Config
1622
- *
1623
- * Required permissions: read:account.
1624
- * API key: Supported.
1625
- * CLI user token: Supported.
1626
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1627
- * Higher permission levels include lower levels: read < write < delete.
1628
- */
1629
- get(): Promise<S['AnthropicConfigResponse']>;
1630
- /**
1631
- * Put Anthropic Config
1632
- *
1633
- * Required permissions: write:account.
1634
- * API key: Supported.
1635
- * CLI user token: Supported.
1636
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1637
- * Higher permission levels include lower levels: read < write < delete.
1638
- */
1639
- set(options: {
1640
- api_key: string;
1641
- }): Promise<S['AnthropicConfigResponse']>;
1642
- /**
1643
- * Validate Anthropic Config
1644
- *
1645
- * Required permissions: write:account.
1646
- * API key: Supported.
1647
- * CLI user token: Supported.
1648
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1649
- * Higher permission levels include lower levels: read < write < delete.
1650
- */
1651
- validate(): Promise<S['ValidateAnthropicConfigResponse']>;
1652
- }
1653
- declare class EllipsisAccountProvidersBedrock {
1654
- private readonly transport;
1655
- constructor(transport: Transport);
1656
- /**
1657
- * Delete Bedrock Config
1658
- *
1659
- * Required permissions: delete:account.
1660
- * API key: Supported.
1661
- * CLI user token: Supported.
1662
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1663
- * Higher permission levels include lower levels: read < write < delete.
1664
- */
1665
- delete(): Promise<void>;
1666
- /**
1667
- * Get Bedrock Config
1668
- *
1669
- * Required permissions: read:account.
1670
- * API key: Supported.
1671
- * CLI user token: Supported.
1672
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1673
- * Higher permission levels include lower levels: read < write < delete.
1674
- */
1675
- get(): Promise<S['BedrockConfigResponse']>;
1676
- /**
1677
- * Put Bedrock Config
1678
- *
1679
- * Required permissions: write:account.
1680
- * API key: Supported.
1681
- * CLI user token: Supported.
1682
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1683
- * Higher permission levels include lower levels: read < write < delete.
1684
- */
1685
- set(options: {
1686
- model_map: Record<string, string>;
1687
- region: string;
1688
- role_arn: string;
1689
- }): Promise<S['BedrockConfigResponse']>;
1690
- /**
1691
- * Validate Bedrock Config
1692
- *
1693
- * Required permissions: write:account.
1694
- * API key: Supported.
1695
- * CLI user token: Supported.
1696
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1697
- * Higher permission levels include lower levels: read < write < delete.
1698
- */
1699
- validate(): Promise<S['ValidateBedrockConfigResponse']>;
1700
- }
1701
- declare class EllipsisAccountProviders {
1702
- private readonly transport;
1703
- readonly anthropic: EllipsisAccountProvidersAnthropic;
1704
- readonly bedrock: EllipsisAccountProvidersBedrock;
1705
- constructor(transport: Transport);
1706
- }
1707
1829
  declare class EllipsisAccountSettings {
1708
1830
  private readonly transport;
1709
1831
  constructor(transport: Transport);
@@ -1712,14 +1834,14 @@ declare class EllipsisAccountSettings {
1712
1834
  *
1713
1835
  * Get the organization settings.
1714
1836
  *
1715
- * Session model and budget defaults, code review and mention behavior,
1716
- * analytics, retention, and notification contacts. PATCH replaces
1717
- * supplied sections; PUT preserves its model-and-budget-only behavior.
1837
+ * Session budget ceiling, mention behavior, analytics,
1838
+ * retention, and notification contacts. PATCH replaces
1839
+ * supplied sections; PUT sets the budget ceiling only.
1718
1840
  *
1719
1841
  * Required permissions: read:defaults.
1720
1842
  * API key: Supported.
1721
1843
  * CLI user token: Supported.
1722
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1844
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1723
1845
  * Higher permission levels include lower levels: read < write < delete.
1724
1846
  */
1725
1847
  get(): Promise<S['AccountSettings']>;
@@ -1728,43 +1850,37 @@ declare class EllipsisAccountSettings {
1728
1850
  *
1729
1851
  * Set the organization settings.
1730
1852
  *
1731
- * Replaces both: `default_model` accepts an alias or canonical id
1732
- * and is stored canonical, and cannot be cleared (it is the only
1733
- * default a session's model resolves against);
1734
1853
  * `budget_ceiling.session` is in US dollars, at most the platform
1735
1854
  * ceiling, and null clears it.
1736
- * Refused for sandbox tokens (potentially prompt-injected code must
1737
- * not repoint the organization's defaults).
1855
+ * Refused for session tokens (potentially prompt-injected code must
1856
+ * not raise the organization's ceiling).
1738
1857
  *
1739
1858
  * Required permissions: write:defaults.
1740
1859
  * API key: Requires a CLI user token belonging to an account administrator.
1741
1860
  * CLI user token: Requires an account administrator.
1742
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1861
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1743
1862
  * Higher permission levels include lower levels: read < write < delete.
1744
1863
  */
1745
- set(options: {
1864
+ set(options?: {
1746
1865
  budget_ceiling?: S['BudgetCeiling'];
1747
- default_model: string;
1748
1866
  }): Promise<S['OrganizationSettings']>;
1749
1867
  /**
1750
1868
  * Patch Account Settings
1751
1869
  *
1752
1870
  * Replace supplied settings sections without changing omitted sections.
1753
1871
  *
1754
- * Changes to model or budget defaults require a GitHub administrator.
1872
+ * Changes to the budget ceiling require a GitHub administrator.
1755
1873
  *
1756
1874
  * Required permissions: write:defaults.
1757
- * API key: Cannot set budget_ceiling, default_model to a non-null value; those changes require a CLI user token belonging to an account administrator.
1758
- * CLI user token: Requires an account administrator when setting budget_ceiling, default_model to a non-null value.
1759
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1875
+ * API key: Cannot set budget_ceiling to a non-null value; those changes require a CLI user token belonging to an account administrator.
1876
+ * CLI user token: Requires an account administrator when setting budget_ceiling to a non-null value.
1877
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1760
1878
  * Higher permission levels include lower levels: read < write < delete.
1761
1879
  */
1762
1880
  update(options?: {
1763
- analytics?: S['AnalyticsSettings'] | null;
1881
+ analytics?: S['AnalyticsSettings-Input'] | null;
1764
1882
  budget_ceiling?: S['BudgetCeiling'] | null;
1765
- code_review?: S['CodeReviewSettings'] | null;
1766
- data_retention?: S['DataRetentionSettings'] | null;
1767
- default_model?: string | null;
1883
+ data_retention?: S['DataRetentionSettings-Input'] | null;
1768
1884
  notifications?: S['NotificationSettings'] | null;
1769
1885
  }): Promise<S['AccountSettings']>;
1770
1886
  }
@@ -1775,7 +1891,6 @@ declare class EllipsisAccount {
1775
1891
  readonly models: EllipsisAccountModels;
1776
1892
  readonly notifications: EllipsisAccountNotifications;
1777
1893
  readonly onboarding: EllipsisAccountOnboarding;
1778
- readonly providers: EllipsisAccountProviders;
1779
1894
  readonly settings: EllipsisAccountSettings;
1780
1895
  constructor(transport: Transport);
1781
1896
  /**
@@ -1788,7 +1903,7 @@ declare class EllipsisAccount {
1788
1903
  * Required permissions: read:account.
1789
1904
  * API key: Supported.
1790
1905
  * CLI user token: Supported.
1791
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1906
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1792
1907
  * Higher permission levels include lower levels: read < write < delete.
1793
1908
  */
1794
1909
  activity(): Promise<S['AccountActivity']>;
@@ -1798,7 +1913,7 @@ declare class EllipsisAccount {
1798
1913
  * Required permissions: read:account.
1799
1914
  * API key: Supported.
1800
1915
  * CLI user token: Supported.
1801
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1916
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1802
1917
  * Higher permission levels include lower levels: read < write < delete.
1803
1918
  */
1804
1919
  auditLog(): Promise<S['AccountAuditLogResponse']>;
@@ -1816,7 +1931,7 @@ declare class EllipsisAccount {
1816
1931
  * Required permissions: read:account.
1817
1932
  * API key: Supported.
1818
1933
  * CLI user token: Supported.
1819
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1934
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1820
1935
  * Higher permission levels include lower levels: read < write < delete.
1821
1936
  */
1822
1937
  budget(): Promise<S['BudgetSummary']>;
@@ -1826,11 +1941,11 @@ declare class EllipsisAccount {
1826
1941
  * Required permissions: write:account.
1827
1942
  * API key: Supported.
1828
1943
  * CLI user token: Supported.
1829
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1944
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1830
1945
  * Higher permission levels include lower levels: read < write < delete.
1831
1946
  */
1832
1947
  update(options?: {
1833
- can_start_job_runs?: boolean | null;
1948
+ can_start_sessions?: boolean | null;
1834
1949
  contact_email?: string | null;
1835
1950
  }): Promise<S['AccountResponse']>;
1836
1951
  /**
@@ -1842,14 +1957,14 @@ declare class EllipsisAccount {
1842
1957
  * preserved. Set policy.developer_defaults to null to disable developer
1843
1958
  * limits. Null override windows inherit their default. API keys use
1844
1959
  * their stable ID, not their secret. Changes apply to the next paid
1845
- * request, including sessions already running. API keys and sandbox
1846
- * credentials cannot edit budgets. The session ceiling remains at
1960
+ * request, including sessions already running. API keys and session
1961
+ * tokens cannot edit budgets. The session ceiling remains at
1847
1962
  * /account/settings; purchasing credits is separate from budget policy.
1848
1963
  *
1849
1964
  * Required permissions: write:defaults.
1850
1965
  * API key: Requires a CLI user token belonging to an account administrator.
1851
1966
  * CLI user token: Requires an account administrator.
1852
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
1967
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1853
1968
  * Higher permission levels include lower levels: read < write < delete.
1854
1969
  */
1855
1970
  updateBudget(options?: {
@@ -1863,14 +1978,14 @@ declare class EllipsisAccount {
1863
1978
  *
1864
1979
  * Omit period_start for the current UTC month; select a period returned
1865
1980
  * in billing_periods to view history. Credit debits are distinct from
1866
- * rated token usage through BYOK, customer Bedrock, or a developer's
1867
- * Claude subscription. Rated usage estimates are not provider invoices.
1981
+ * rated token usage through a developer's Claude or Codex
1982
+ * subscription. Rated usage estimates are not provider invoices.
1868
1983
  * Pending and unresolved requests identify missing measurements.
1869
1984
  *
1870
1985
  * Required permissions: read:account.
1871
1986
  * API key: Supported.
1872
1987
  * CLI user token: Supported.
1873
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1988
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1874
1989
  * Higher permission levels include lower levels: read < write < delete.
1875
1990
  */
1876
1991
  usage(options?: {
@@ -1892,7 +2007,7 @@ declare class EllipsisAgents {
1892
2007
  * Required permissions: write:configs.
1893
2008
  * API key: Supported.
1894
2009
  * CLI user token: Supported.
1895
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2010
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1896
2011
  * Higher permission levels include lower levels: read < write < delete.
1897
2012
  * Grant match patterns can further restrict access to individual resources.
1898
2013
  */
@@ -1911,7 +2026,7 @@ declare class EllipsisAgents {
1911
2026
  * Required permissions: write:configs.
1912
2027
  * API key: Supported.
1913
2028
  * CLI user token: Supported.
1914
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2029
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1915
2030
  * Higher permission levels include lower levels: read < write < delete.
1916
2031
  * Grant match patterns can further restrict access to individual resources.
1917
2032
  */
@@ -1924,7 +2039,7 @@ declare class EllipsisAgents {
1924
2039
  * Required permissions: read:configs.
1925
2040
  * API key: Supported.
1926
2041
  * CLI user token: Supported.
1927
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2042
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1928
2043
  * Higher permission levels include lower levels: read < write < delete.
1929
2044
  * Grant match patterns can further restrict access to individual resources.
1930
2045
  */
@@ -1942,7 +2057,7 @@ declare class EllipsisAgents {
1942
2057
  * Required permissions: write:configs.
1943
2058
  * API key: Supported.
1944
2059
  * CLI user token: Supported.
1945
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2060
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1946
2061
  * Higher permission levels include lower levels: read < write < delete.
1947
2062
  * Grant match patterns can further restrict access to individual resources.
1948
2063
  */
@@ -1958,7 +2073,7 @@ declare class EllipsisAgents {
1958
2073
  * Required permissions: read:configs.
1959
2074
  * API key: Supported.
1960
2075
  * CLI user token: Supported.
1961
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2076
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1962
2077
  * Higher permission levels include lower levels: read < write < delete.
1963
2078
  * Grant match patterns can further restrict access to individual resources.
1964
2079
  */
@@ -1977,7 +2092,7 @@ declare class EllipsisAgents {
1977
2092
  * Required permissions: read:configs.
1978
2093
  * API key: Supported.
1979
2094
  * CLI user token: Supported.
1980
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2095
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1981
2096
  * Higher permission levels include lower levels: read < write < delete.
1982
2097
  * Grant match patterns can further restrict access to individual resources.
1983
2098
  */
@@ -1985,30 +2100,40 @@ declare class EllipsisAgents {
1985
2100
  /**
1986
2101
  * Start Agent Session
1987
2102
  *
1988
- * Invoke an agent.
2103
+ * Start an agent session.
1989
2104
  *
1990
- * Runs a certified agent with its configured instructions, model,
1991
- * environment, permissions, skills, and budget, and returns
1992
- * the session it started. The session runs once and does not accept
1993
- * follow-up messages. If the agent declares input.json_schema,
1994
- * send only `input` for its initial message. Otherwise send a non-empty
1995
- * `prompt`, which becomes the initial message verbatim. Both fields
1996
- * together, neither field, and input that renders an empty message are
1997
- * rejected with 422. An optional `budget` lowers the session cap;
1998
- * `metadata` tags the session. Codex invocations are not supported.
2105
+ * Starts a session from the agent's saved `session` settings and
2106
+ * returns it. The body takes the fields of POST /v1/sessions, all
2107
+ * optional: each field you send replaces the agent's value for that
2108
+ * field, and each field you leave out keeps it. `metadata` is merged
2109
+ * into the agent's key by key, and a `null` value removes a key.
2110
+ * Other lists and maps, and `environment`, are replaced whole;
2111
+ * naming the other harness replaces the agent's. An empty body starts
2112
+ * the agent as written. If the agent declares input.json_schema, send
2113
+ * `input`; its rendered message is added after the prompt. A run-once
2114
+ * session needs a prompt or `input` from the agent or the request, or
2115
+ * the call is a 400.
1999
2116
  *
2000
2117
  * Required permissions: write:sessions.
2001
2118
  * API key: Supported.
2002
2119
  * CLI user token: Supported.
2003
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2120
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2004
2121
  * Higher permission levels include lower levels: read < write < delete.
2005
2122
  * Grant match patterns can further restrict access to individual resources.
2006
2123
  */
2007
- run(agent_id: string, options?: {
2008
- budget?: number | null;
2124
+ start(agent_id: string, options?: {
2125
+ budget?: S['RunBudget'] | null;
2126
+ claude_code?: S['ClaudeOverrides'] | null;
2127
+ codex?: S['CodexOverrides'] | null;
2128
+ conversation?: S['SessionConversationConfig-Input'];
2129
+ environment?: string | S['EnvironmentConfig-Input'] | null;
2130
+ force_rebuild?: boolean;
2131
+ images?: (S['ImageAttachment'])[];
2009
2132
  input?: Record<string, unknown> | null;
2010
- metadata?: Record<string, string>;
2011
- prompt?: string | null;
2133
+ metadata?: Record<string, string | null>;
2134
+ output?: S['OutputConfig'] | null;
2135
+ permissions?: S['PermissionsConfig-Input'] | null;
2136
+ skills?: (S['SkillRef-Input'])[] | null;
2012
2137
  }): Promise<S['SessionResponse']>;
2013
2138
  /**
2014
2139
  * Get Agents Stream Ticket
@@ -2016,7 +2141,7 @@ declare class EllipsisAgents {
2016
2141
  * Required permissions: read:configs.
2017
2142
  * API key: Supported.
2018
2143
  * CLI user token: Supported.
2019
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2144
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2020
2145
  * Higher permission levels include lower levels: read < write < delete.
2021
2146
  * Grant match patterns can further restrict access to individual resources.
2022
2147
  */
@@ -2033,7 +2158,7 @@ declare class EllipsisAgents {
2033
2158
  * Required permissions: write:configs.
2034
2159
  * API key: Supported.
2035
2160
  * CLI user token: Supported.
2036
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2161
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2037
2162
  * Higher permission levels include lower levels: read < write < delete.
2038
2163
  * Grant match patterns can further restrict access to individual resources.
2039
2164
  */
@@ -2051,7 +2176,7 @@ declare class EllipsisAgents {
2051
2176
  * Required permissions: write:configs.
2052
2177
  * API key: Supported.
2053
2178
  * CLI user token: Supported.
2054
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2179
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2055
2180
  * Higher permission levels include lower levels: read < write < delete.
2056
2181
  * Grant match patterns can further restrict access to individual resources.
2057
2182
  */
@@ -2072,7 +2197,7 @@ declare class EllipsisAlerts {
2072
2197
  * Required permissions: write:alerts.
2073
2198
  * API key: Supported.
2074
2199
  * CLI user token: Supported.
2075
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2200
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2076
2201
  * Higher permission levels include lower levels: read < write < delete.
2077
2202
  */
2078
2203
  dismiss(alert_id: string): Promise<S['AlertResponse']>;
@@ -2086,7 +2211,7 @@ declare class EllipsisAlerts {
2086
2211
  * Required permissions: read:alerts.
2087
2212
  * API key: Supported.
2088
2213
  * CLI user token: Supported.
2089
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2214
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2090
2215
  * Higher permission levels include lower levels: read < write < delete.
2091
2216
  */
2092
2217
  get(alert_id: string): Promise<S['AlertResponse']>;
@@ -2103,7 +2228,7 @@ declare class EllipsisAlerts {
2103
2228
  * Required permissions: read:alerts.
2104
2229
  * API key: Supported.
2105
2230
  * CLI user token: Supported.
2106
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2231
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2107
2232
  * Higher permission levels include lower levels: read < write < delete.
2108
2233
  */
2109
2234
  list(options?: {
@@ -2132,7 +2257,7 @@ declare class EllipsisAnalytics {
2132
2257
  * Required permissions: read:account.
2133
2258
  * API key: Supported.
2134
2259
  * CLI user token: Supported.
2135
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2260
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2136
2261
  * Higher permission levels include lower levels: read < write < delete.
2137
2262
  */
2138
2263
  metrics(options?: {
@@ -2155,7 +2280,7 @@ declare class EllipsisAnalytics {
2155
2280
  * Required permissions: read:account.
2156
2281
  * API key: Supported.
2157
2282
  * CLI user token: Supported.
2158
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2283
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2159
2284
  * Higher permission levels include lower levels: read < write < delete.
2160
2285
  */
2161
2286
  pullRequests(options?: {
@@ -2170,7 +2295,7 @@ declare class EllipsisAnalytics {
2170
2295
  /**
2171
2296
  * Get Analytics Reviews
2172
2297
  *
2173
- * Return code-review analytics.
2298
+ * Return pull request review analytics.
2174
2299
  *
2175
2300
  * account_type scopes reviewers (bot|user|all) — e.g. "what apps
2176
2301
  * review the most PRs?" is the reviewer facets here with
@@ -2180,7 +2305,7 @@ declare class EllipsisAnalytics {
2180
2305
  * Required permissions: read:account.
2181
2306
  * API key: Supported.
2182
2307
  * CLI user token: Supported.
2183
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2308
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2184
2309
  * Higher permission levels include lower levels: read < write < delete.
2185
2310
  */
2186
2311
  reviews(options?: {
@@ -2241,7 +2366,7 @@ declare class EllipsisEnvironments {
2241
2366
  * Required permissions: write:environments.
2242
2367
  * API key: Supported.
2243
2368
  * CLI user token: Supported.
2244
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2369
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2245
2370
  * Higher permission levels include lower levels: read < write < delete.
2246
2371
  */
2247
2372
  create(options: {
@@ -2261,7 +2386,7 @@ declare class EllipsisEnvironments {
2261
2386
  * Required permissions: delete:environments.
2262
2387
  * API key: Supported.
2263
2388
  * CLI user token: Supported.
2264
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2389
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2265
2390
  * Higher permission levels include lower levels: read < write < delete.
2266
2391
  */
2267
2392
  delete(environment_id: string): Promise<void>;
@@ -2273,7 +2398,7 @@ declare class EllipsisEnvironments {
2273
2398
  * Required permissions: read:environments.
2274
2399
  * API key: Supported.
2275
2400
  * CLI user token: Supported.
2276
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2401
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2277
2402
  * Higher permission levels include lower levels: read < write < delete.
2278
2403
  */
2279
2404
  get(environment_id: string): Promise<S['EnvironmentResponse']>;
@@ -2285,7 +2410,7 @@ declare class EllipsisEnvironments {
2285
2410
  * Required permissions: read:environments.
2286
2411
  * API key: Supported.
2287
2412
  * CLI user token: Supported.
2288
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2413
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2289
2414
  * Higher permission levels include lower levels: read < write < delete.
2290
2415
  */
2291
2416
  list(): Promise<S['EnvironmentsListResponse']>;
@@ -2302,108 +2427,13 @@ declare class EllipsisEnvironments {
2302
2427
  * Required permissions: write:environments.
2303
2428
  * API key: Supported.
2304
2429
  * CLI user token: Supported.
2305
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2430
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2306
2431
  * Higher permission levels include lower levels: read < write < delete.
2307
2432
  */
2308
2433
  update(environment_id: string, options: {
2309
2434
  environment: S['EnvironmentDocument-Input'];
2310
2435
  }): Promise<S['EnvironmentResponse']>;
2311
2436
  }
2312
- declare class EllipsisFiles {
2313
- private readonly transport;
2314
- constructor(transport: Transport);
2315
- /**
2316
- * Create File
2317
- *
2318
- * Upload a file that outlives the sandbox.
2319
- *
2320
- * v1: PNG images only, base64 in the JSON body, 10 MiB cap. The
2321
- * primary caller is the in-sandbox `agent file upload` CLI (an
2322
- * agent persisting a screenshot to link on a PR), but all
2323
- * credential types work. Returns the org-membership-gated
2324
- * dashboard URL so callers never hard-code URL shapes.
2325
- *
2326
- * Required permissions: write:files.
2327
- * API key: Supported.
2328
- * CLI user token: Supported.
2329
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2330
- * Higher permission levels include lower levels: read < write < delete.
2331
- * Grant match patterns can further restrict access to individual resources.
2332
- */
2333
- create(options: {
2334
- content_type: string;
2335
- data_b64: string;
2336
- filename: string;
2337
- }): Promise<S['CreateFileResponse']>;
2338
- /**
2339
- * Delete File
2340
- *
2341
- * Delete a file.
2342
- *
2343
- * A foreign, missing, or already-deleted id is an
2344
- * indistinguishable 404, so ids can't be enumerated. Sandbox
2345
- * tokens get a 403 (a sandbox token sits next to
2346
- * potentially-untrusted code and must not be able to destroy the
2347
- * account's files — uploading is fine, destruction is not); API
2348
- * keys and user tokens may delete.
2349
- *
2350
- * Required permissions: delete:files.
2351
- * API key: Supported.
2352
- * CLI user token: Supported.
2353
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2354
- * Higher permission levels include lower levels: read < write < delete.
2355
- * Grant match patterns can further restrict access to individual resources.
2356
- */
2357
- delete(file_id: string): Promise<void>;
2358
- /**
2359
- * Get File
2360
- *
2361
- * Return one file's metadata and download link.
2362
- *
2363
- * Includes the gated dashboard URL and a short-lived presigned
2364
- * `download_url`, plus the owning account's GitHub login.
2365
- *
2366
- * Signed-in dashboard users are checked against the file's owning
2367
- * account, regardless of their selected organization. API keys,
2368
- * CLI user tokens, and sandbox tokens remain restricted to their
2369
- * own account. Missing, deleted, and inaccessible files return 404.
2370
- *
2371
- * To fetch the bytes locally, call this and then GET download_url
2372
- * immediately — the JSON API never carries the file. The CLI's
2373
- * `agent file get` wraps exactly that two-step.
2374
- *
2375
- * Required permissions: read:files.
2376
- * API key: Supported.
2377
- * CLI user token: Supported.
2378
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2379
- * Higher permission levels include lower levels: read < write < delete.
2380
- * Grant match patterns can further restrict access to individual resources.
2381
- */
2382
- get(file_id: string): Promise<S['GetFileResponse']>;
2383
- /**
2384
- * List Files
2385
- *
2386
- * List uploaded files, newest first.
2387
- *
2388
- * Metadata only by default. Set include_download_urls=true to get
2389
- * a download_urls map keyed by file id for thumbnails or batch
2390
- * downloads. URLs expire within about a minute. session_id scopes
2391
- * the list to one session's uploads.
2392
- *
2393
- * Required permissions: read:files.
2394
- * API key: Supported.
2395
- * CLI user token: Supported.
2396
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2397
- * Higher permission levels include lower levels: read < write < delete.
2398
- * Grant match patterns can further restrict access to individual resources.
2399
- */
2400
- list(options?: {
2401
- session_id?: string | null;
2402
- limit?: number;
2403
- cursor?: string | null;
2404
- include_download_urls?: boolean;
2405
- }): Promise<Page<S['File'], S['FilesListResponse']>>;
2406
- }
2407
2437
  declare class EllipsisHandlers {
2408
2438
  private readonly transport;
2409
2439
  constructor(transport: Transport);
@@ -2418,12 +2448,12 @@ declare class EllipsisHandlers {
2418
2448
  * state without fetching GitHub or triggering synchronization.
2419
2449
  *
2420
2450
  * Requires configs:read; scoped grants match handlers/{service}.
2421
- * Sandbox credentials with that grant may read handlers.
2451
+ * Session tokens with that grant may read handlers.
2422
2452
  *
2423
2453
  * Required permissions: read:configs.
2424
2454
  * API key: Supported.
2425
2455
  * CLI user token: Supported.
2426
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2456
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2427
2457
  * Higher permission levels include lower levels: read < write < delete.
2428
2458
  * Grant match patterns can further restrict access to individual resources.
2429
2459
  */
@@ -2434,8 +2464,8 @@ declare class EllipsisHandlers {
2434
2464
  * Return session counts and accumulated spend for a saved handler.
2435
2465
  *
2436
2466
  * Filters only by session creation time. Omitted bounds include all
2437
- * history. Counts use the current conversation outcome, so an idle
2438
- * session remains active. Spend includes the selected sessions' full
2467
+ * history. Counts use the current turn and conversation state, so an open
2468
+ * conversation awaiting another message remains active. Spend includes the selected sessions' full
2439
2469
  * accumulated cost, including activity after the creation-time window.
2440
2470
  * Only sessions carrying this exact saved handler id are counted;
2441
2471
  * legacy sessions without handler provenance are excluded.
@@ -2445,12 +2475,12 @@ declare class EllipsisHandlers {
2445
2475
  * Those windows use usage timestamps and are independent of start/end.
2446
2476
  *
2447
2477
  * Requires configs:read matching handlers/{service} and unrestricted
2448
- * sessions:read. Sandbox tokens with both grants may read metrics.
2478
+ * sessions:read. Session tokens with both grants may read metrics.
2449
2479
  *
2450
2480
  * Required permissions: read:sessions, read:configs.
2451
2481
  * API key: Supported.
2452
2482
  * CLI user token: Supported.
2453
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2483
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2454
2484
  * Higher permission levels include lower levels: read < write < delete.
2455
2485
  * Grant match patterns can further restrict access to individual resources.
2456
2486
  */
@@ -2476,7 +2506,7 @@ declare class EllipsisIntegrationsGithub {
2476
2506
  * Required permissions: read:integrations.
2477
2507
  * API key: Supported.
2478
2508
  * CLI user token: Supported.
2479
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2509
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2480
2510
  * Higher permission levels include lower levels: read < write < delete.
2481
2511
  */
2482
2512
  members(): Promise<S['GithubMembersListResponse']>;
@@ -2488,7 +2518,7 @@ declare class EllipsisIntegrationsGithub {
2488
2518
  * Required permissions: read:integrations.
2489
2519
  * API key: Supported.
2490
2520
  * CLI user token: Supported.
2491
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2521
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2492
2522
  * Higher permission levels include lower levels: read < write < delete.
2493
2523
  */
2494
2524
  repos(): Promise<S['GithubRepositoriesListResponse']>;
@@ -2498,7 +2528,7 @@ declare class EllipsisIntegrationsGithub {
2498
2528
  * Required permissions: write:integrations.
2499
2529
  * API key: Supported.
2500
2530
  * CLI user token: Supported.
2501
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2531
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2502
2532
  * Higher permission levels include lower levels: read < write < delete.
2503
2533
  */
2504
2534
  uninstall(options: {
@@ -2514,7 +2544,7 @@ declare class EllipsisIntegrationsLinear {
2514
2544
  * Required permissions: delete:integrations.
2515
2545
  * API key: Supported.
2516
2546
  * CLI user token: Supported.
2517
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2547
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2518
2548
  * Higher permission levels include lower levels: read < write < delete.
2519
2549
  */
2520
2550
  delete(): Promise<S['AccountActionResponse']>;
@@ -2526,7 +2556,7 @@ declare class EllipsisIntegrationsLinear {
2526
2556
  * Required permissions: read:integrations.
2527
2557
  * API key: Supported.
2528
2558
  * CLI user token: Supported.
2529
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2559
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2530
2560
  * Higher permission levels include lower levels: read < write < delete.
2531
2561
  */
2532
2562
  teams(): Promise<S['LinearTeamsListResponse']>;
@@ -2536,11 +2566,10 @@ declare class EllipsisIntegrationsLinear {
2536
2566
  * Required permissions: write:integrations.
2537
2567
  * API key: Supported.
2538
2568
  * CLI user token: Supported.
2539
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2569
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2540
2570
  * Higher permission levels include lower levels: read < write < delete.
2541
2571
  */
2542
2572
  updateSettings(options: {
2543
- mcp_inclusion?: S['McpInclusionMode'] | null;
2544
2573
  teams: (S['LinearTeamUpdate'])[];
2545
2574
  }): Promise<S['AccountActionResponse']>;
2546
2575
  }
@@ -2553,7 +2582,7 @@ declare class EllipsisIntegrationsSentry {
2553
2582
  * Required permissions: delete:integrations.
2554
2583
  * API key: Supported.
2555
2584
  * CLI user token: Supported.
2556
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2585
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2557
2586
  * Higher permission levels include lower levels: read < write < delete.
2558
2587
  */
2559
2588
  delete(integration_id: string): Promise<S['AccountActionResponse']>;
@@ -2565,7 +2594,7 @@ declare class EllipsisIntegrationsSentry {
2565
2594
  * Required permissions: read:integrations.
2566
2595
  * API key: Supported.
2567
2596
  * CLI user token: Supported.
2568
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2597
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2569
2598
  * Higher permission levels include lower levels: read < write < delete.
2570
2599
  */
2571
2600
  organizations(): Promise<S['SentryOrganizationsListResponse']>;
@@ -2582,7 +2611,7 @@ declare class EllipsisIntegrationsSlack {
2582
2611
  * Required permissions: read:integrations.
2583
2612
  * API key: Supported.
2584
2613
  * CLI user token: Supported.
2585
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2614
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2586
2615
  * Higher permission levels include lower levels: read < write < delete.
2587
2616
  */
2588
2617
  channels(): Promise<S['SlackChannelsListResponse']>;
@@ -2592,7 +2621,7 @@ declare class EllipsisIntegrationsSlack {
2592
2621
  * Required permissions: write:integrations.
2593
2622
  * API key: Supported.
2594
2623
  * CLI user token: Supported.
2595
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2624
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2596
2625
  * Higher permission levels include lower levels: read < write < delete.
2597
2626
  */
2598
2627
  createOperationsChannel(): Promise<S['SlackChannel']>;
@@ -2602,7 +2631,7 @@ declare class EllipsisIntegrationsSlack {
2602
2631
  * Required permissions: delete:integrations.
2603
2632
  * API key: Supported.
2604
2633
  * CLI user token: Supported.
2605
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2634
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2606
2635
  * Higher permission levels include lower levels: read < write < delete.
2607
2636
  */
2608
2637
  delete(): Promise<S['AccountActionResponse']>;
@@ -2615,22 +2644,10 @@ declare class EllipsisIntegrationsSlack {
2615
2644
  * Required permissions: read:integrations.
2616
2645
  * API key: Supported.
2617
2646
  * CLI user token: Supported.
2618
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2647
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2619
2648
  * Higher permission levels include lower levels: read < write < delete.
2620
2649
  */
2621
2650
  members(): Promise<S['SlackMembersListResponse']>;
2622
- /**
2623
- * Update Slack Settings
2624
- *
2625
- * Required permissions: write:integrations.
2626
- * API key: Supported.
2627
- * CLI user token: Supported.
2628
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2629
- * Higher permission levels include lower levels: read < write < delete.
2630
- */
2631
- updateSettings(options: {
2632
- mcp_inclusion: S['McpInclusionMode'];
2633
- }): Promise<S['AccountActionResponse']>;
2634
2651
  }
2635
2652
  declare class EllipsisIntegrations {
2636
2653
  private readonly transport;
@@ -2648,182 +2665,46 @@ declare class EllipsisIntegrations {
2648
2665
  * config can learn which repositories, channels, teams, and
2649
2666
  * organizations it may name before POST /agents.
2650
2667
  *
2651
- * Available to all credential types including sandbox tokens: the
2668
+ * Available to all credential types including session tokens: the
2652
2669
  * responses never include OAuth tokens or any other secret.
2653
2670
  *
2654
2671
  * Required permissions: read:integrations.
2655
2672
  * API key: Supported.
2656
2673
  * CLI user token: Supported.
2657
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2674
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2658
2675
  * Higher permission levels include lower levels: read < write < delete.
2659
2676
  */
2660
2677
  list(): Promise<S['GetIntegrationsResponse']>;
2661
2678
  }
2662
- declare class EllipsisMemories {
2679
+ declare class EllipsisReviewsConfigs {
2663
2680
  private readonly transport;
2664
2681
  constructor(transport: Transport);
2665
2682
  /**
2666
- * Create Memory
2667
- *
2668
- * Save a memory for future agent sessions.
2669
- *
2670
- * Memories are durable lessons shared across the whole
2671
- * organization — conventions, past decisions, known gotchas that an
2672
- * agent cannot derive from the repository itself. One concise fact
2673
- * per memory; the description is what a reader sees in the index.
2674
- *
2675
- * Creating never overwrites: a path that already exists is a 409, so
2676
- * correcting an existing memory is an explicit edit.
2677
- *
2678
- * Required permissions: write:memories.
2679
- * API key: Supported.
2680
- * CLI user token: Supported.
2681
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2682
- * Higher permission levels include lower levels: read < write < delete.
2683
- * Grant match patterns can further restrict access to individual resources.
2684
- */
2685
- create(options: {
2686
- content: string;
2687
- description: string;
2688
- path: string;
2689
- }): Promise<S['MemoryResponse']>;
2690
- /**
2691
- * Delete Memory
2692
- *
2693
- * Delete a memory that is no longer true.
2694
- *
2695
- * Available to every credential type, agents included — a wrong
2696
- * memory is worse than a missing one. The deleted content is kept in
2697
- * the memory's history for forensics, not for an undo API.
2698
- *
2699
- * Required permissions: delete:memories.
2700
- * API key: Supported.
2701
- * CLI user token: Supported.
2702
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2703
- * Higher permission levels include lower levels: read < write < delete.
2704
- * Grant match patterns can further restrict access to individual resources.
2705
- */
2706
- delete(memory_id: string, options?: {
2707
- if_sha256?: string | null;
2708
- }): Promise<void>;
2709
- /**
2710
- * Edit Memory
2711
- *
2712
- * Correct an existing memory in place.
2713
- *
2714
- * Pass description, content, or both. This never creates a memory (an
2715
- * unknown id is a 404) and never moves one — the path is immutable, so
2716
- * relocating a memory is a delete plus a create.
2717
- *
2718
- * Pass `if_sha256` (from a previous read) to make a concurrent write
2719
- * a 409 instead of silently overwriting it.
2720
- *
2721
- * Required permissions: write:memories.
2722
- * API key: Supported.
2723
- * CLI user token: Supported.
2724
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2725
- * Higher permission levels include lower levels: read < write < delete.
2726
- * Grant match patterns can further restrict access to individual resources.
2727
- */
2728
- edit(memory_id: string, options?: {
2729
- content?: string | null;
2730
- description?: string | null;
2731
- if_sha256?: string | null;
2732
- }): Promise<S['MemoryResponse']>;
2733
- /**
2734
- * Get Memory
2735
- *
2736
- * Read one memory's full content.
2737
- *
2738
- * The id comes from the index returned by listing memories.
2739
- *
2740
- * Required permissions: read:memories.
2741
- * API key: Supported.
2742
- * CLI user token: Supported.
2743
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2744
- * Higher permission levels include lower levels: read < write < delete.
2745
- * Grant match patterns can further restrict access to individual resources.
2746
- */
2747
- get(memory_id: string): Promise<S['MemoryResponse']>;
2748
- /**
2749
- * List Memories
2750
- *
2751
- * List the organization's memories as a readable index.
2683
+ * List Review Configs
2752
2684
  *
2753
- * Returns the memories rendered as a markdown index (one line per
2754
- * memory, carrying its id, path, and description) plus the same
2755
- * entries structured, each with every field except `content`. Read
2756
- * the index, then fetch the ids whose content you want.
2685
+ * List code review configs: every kind: code_review file synced from a repository, newest first.
2757
2686
  *
2758
- * Required permissions: read:memories.
2687
+ * Required permissions: read:reviews.
2759
2688
  * API key: Supported.
2760
2689
  * CLI user token: Supported.
2761
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2690
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2762
2691
  * Higher permission levels include lower levels: read < write < delete.
2763
- * Grant match patterns can further restrict access to individual resources.
2764
2692
  */
2765
- list(options?: {
2766
- prefix?: string | null;
2767
- }): Promise<S['MemoriesListResponse']>;
2693
+ list(): Promise<S['ReviewConfigsListResponse']>;
2768
2694
  }
2769
2695
  declare class EllipsisReviews {
2770
2696
  private readonly transport;
2697
+ readonly configs: EllipsisReviewsConfigs;
2771
2698
  constructor(transport: Transport);
2772
- /**
2773
- * List Review Configs
2774
- *
2775
- * Required permissions: read:reviews.
2776
- * API key: Supported.
2777
- * CLI user token: Supported.
2778
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2779
- * Higher permission levels include lower levels: read < write < delete.
2780
- */
2781
- configs(): Promise<S['GetCodeReviewConfigsResponse']>;
2782
- /**
2783
- * Create Review
2784
- *
2785
- * Run a code review on demand.
2786
- *
2787
- * Reviews an open pull request. Which pipeline runs is not a
2788
- * parameter: it resolves from the repository's files exactly as
2789
- * it does for a push, so an on-demand review never disagrees with
2790
- * the automatic one.
2791
- *
2792
- * A review is one pipeline run over one commit range, with one
2793
- * agent session per stage: `review.id` is the run id, and
2794
- * `stages[].session_id` is where a client streams
2795
- * (/sessions/{id}/stream on a stage session), since the review
2796
- * itself is a pipeline rather than one process.
2797
- *
2798
- * Required permissions: write:reviews.
2799
- * API key: Supported.
2800
- * CLI user token: Supported.
2801
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2802
- * Higher permission levels include lower levels: read < write < delete.
2803
- */
2804
- create(options: {
2805
- owner: string;
2806
- post?: boolean;
2807
- pull_request_number: number;
2808
- repo: string;
2809
- scope?: S['ReviewScope'];
2810
- }): Promise<S['Review']>;
2811
2699
  /**
2812
2700
  * Get Review
2813
2701
  *
2814
- * Return one review with findings and outcome.
2815
- *
2816
- * Includes its scope, the per-stage sessions, the parsed findings,
2817
- * the finding counters, and the posting outcome.
2818
- *
2819
- * Findings only exist after a stage session finalizes — a running
2820
- * review honestly reports [] / null, which is why a client
2821
- * streams a stage session and then re-fetches the review.
2702
+ * Get a code review: its reviewers and every comment they returned, posted or held back.
2822
2703
  *
2823
2704
  * Required permissions: read:reviews.
2824
2705
  * API key: Supported.
2825
2706
  * CLI user token: Supported.
2826
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2707
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2827
2708
  * Higher permission levels include lower levels: read < write < delete.
2828
2709
  */
2829
2710
  get(review_id: string): Promise<S['Review']>;
@@ -2832,29 +2713,21 @@ declare class EllipsisReviews {
2832
2713
  *
2833
2714
  * List code reviews, newest first.
2834
2715
  *
2835
- * `findings` and `configuration` are omitted (counters only). Each
2836
- * filter is a set: repeat `repository`, `pull_request_number`, or
2837
- * `status` to match any of several values. `start` and `end` bound
2838
- * the review's creation time.
2839
- *
2840
- * Webhook-created reviews appear here too, so this answers "show
2841
- * me every review on this PR".
2842
- *
2843
2716
  * Required permissions: read:reviews.
2844
2717
  * API key: Supported.
2845
2718
  * CLI user token: Supported.
2846
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2719
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2847
2720
  * Higher permission levels include lower levels: read < write < delete.
2848
2721
  */
2849
2722
  list(options?: {
2850
- repository?: (string)[];
2851
- pull_request_number?: (number)[];
2852
- status?: (S['CodeReviewRunStatus'])[];
2723
+ repository?: (string)[] | null;
2724
+ pull_request_number?: (number)[] | null;
2725
+ status?: (S['CodeReviewStatus'])[] | null;
2853
2726
  start?: string | null;
2854
2727
  end?: string | null;
2855
2728
  limit?: number;
2856
2729
  cursor?: string | null;
2857
- }): Promise<Page<S['Review'], S['ReviewsListResponse']>>;
2730
+ }): Promise<Page<S['ReviewSummary'], S['ReviewsListResponse']>>;
2858
2731
  }
2859
2732
  declare class EllipsisSecrets {
2860
2733
  private readonly transport;
@@ -2864,13 +2737,13 @@ declare class EllipsisSecrets {
2864
2737
  *
2865
2738
  * Delete a secret by name.
2866
2739
  *
2867
- * Refused for sandbox tokens; mutations require an API key or
2740
+ * Refused for session tokens; mutations require an API key or
2868
2741
  * user token.
2869
2742
  *
2870
2743
  * Required permissions: delete:secrets.
2871
2744
  * API key: Supported.
2872
2745
  * CLI user token: Supported.
2873
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2746
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2874
2747
  * Higher permission levels include lower levels: read < write < delete.
2875
2748
  * Grant match patterns can further restrict access to individual resources.
2876
2749
  */
@@ -2886,7 +2759,7 @@ declare class EllipsisSecrets {
2886
2759
  * Required permissions: read:secrets.
2887
2760
  * API key: Supported.
2888
2761
  * CLI user token: Supported.
2889
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2762
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2890
2763
  * Higher permission levels include lower levels: read < write < delete.
2891
2764
  * Grant match patterns can further restrict access to individual resources.
2892
2765
  */
@@ -2897,14 +2770,14 @@ declare class EllipsisSecrets {
2897
2770
  * Upsert secrets.
2898
2771
  *
2899
2772
  * Returns only the secrets this call wrote, names and timestamps
2900
- * only — values are write-only. Refused for sandbox tokens (held by
2901
- * potentially-untrusted in-sandbox code); mutations require an
2902
- * API key or user token.
2773
+ * only — values are write-only. Refused for session tokens (held by
2774
+ * potentially-untrusted code running inside a session); mutations
2775
+ * require an API key or user token.
2903
2776
  *
2904
2777
  * Required permissions: write:secrets.
2905
2778
  * API key: Supported.
2906
2779
  * CLI user token: Supported.
2907
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
2780
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2908
2781
  * Higher permission levels include lower levels: read < write < delete.
2909
2782
  * Grant match patterns can further restrict access to individual resources.
2910
2783
  */
@@ -2912,8 +2785,46 @@ declare class EllipsisSecrets {
2912
2785
  secrets: (S['SecretInput'])[];
2913
2786
  }): Promise<S['SecretsListResponse']>;
2914
2787
  }
2788
+ declare class EllipsisSessionsTurns {
2789
+ private readonly transport;
2790
+ constructor(transport: Transport);
2791
+ /**
2792
+ * Get Session Turn
2793
+ *
2794
+ * Return one turn.
2795
+ *
2796
+ * Poll this after sending a message: the message is answered when
2797
+ * the turn's status is completed, failed, stopped, or cancelled.
2798
+ *
2799
+ * Required permissions: read:sessions.
2800
+ * API key: Supported.
2801
+ * CLI user token: Supported.
2802
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2803
+ * Higher permission levels include lower levels: read < write < delete.
2804
+ * Grant match patterns can further restrict access to individual resources.
2805
+ */
2806
+ get(session_id: string, turn_id: string): Promise<S['SessionTurnResponse']>;
2807
+ /**
2808
+ * Get Session Turns
2809
+ *
2810
+ * Return the session's turns and messages, oldest first.
2811
+ *
2812
+ * One turn per message: pending until the agent starts on it,
2813
+ * running while it works, then completed, failed, stopped, or
2814
+ * cancelled.
2815
+ *
2816
+ * Required permissions: read:sessions.
2817
+ * API key: Supported.
2818
+ * CLI user token: Supported.
2819
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2820
+ * Higher permission levels include lower levels: read < write < delete.
2821
+ * Grant match patterns can further restrict access to individual resources.
2822
+ */
2823
+ list(session_id: string): Promise<S['SessionTurnsListResponse']>;
2824
+ }
2915
2825
  declare class EllipsisSessions {
2916
2826
  private readonly transport;
2827
+ readonly turns: EllipsisSessionsTurns;
2917
2828
  constructor(transport: Transport);
2918
2829
  /**
2919
2830
  * Get Session Analytics
@@ -2922,16 +2833,16 @@ declare class EllipsisSessions {
2922
2833
  *
2923
2834
  * Token lanes use the request's saved rates. Content attribution
2924
2835
  * apportions input/cache spend by text size, counting carried context
2925
- * on every request. It is an estimate, not a tool execution fee.
2836
+ * on every request. It is an estimate, not a tool call fee.
2926
2837
  * Only the latest 200 retained request bodies are inspected; missing
2927
2838
  * or unsupported context remains explicitly unattributed. No raw
2928
- * prompts or tool results are returned. Sandbox tokens may read only
2839
+ * prompts or tool results are returned. Session tokens may read only
2929
2840
  * their own session's analytics.
2930
2841
  *
2931
2842
  * Required permissions: read:sessions.
2932
2843
  * API key: Supported.
2933
2844
  * CLI user token: Supported.
2934
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own session.
2845
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own session.
2935
2846
  * Higher permission levels include lower levels: read < write < delete.
2936
2847
  * Grant match patterns can further restrict access to individual resources.
2937
2848
  */
@@ -2942,15 +2853,15 @@ declare class EllipsisSessions {
2942
2853
  * Return the session's uncommitted changes as a patch.
2943
2854
  *
2944
2855
  * One unified-diff section per changed file, captured from the
2945
- * sandbox's working tree when the session ended. The per-file
2856
+ * environment's working tree when the session ended. The per-file
2946
2857
  * counts ride on the session itself (`git.repos[].files`); this
2947
2858
  * is the text behind them. Empty when the tree was clean. A
2948
- * sandbox token may read only its own session's diff.
2859
+ * session token may read only its own session's diff.
2949
2860
  *
2950
2861
  * Required permissions: read:sessions.
2951
2862
  * API key: Supported.
2952
2863
  * CLI user token: Supported.
2953
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own session.
2864
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own session.
2954
2865
  * Higher permission levels include lower levels: read < write < delete.
2955
2866
  * Grant match patterns can further restrict access to individual resources.
2956
2867
  */
@@ -2961,7 +2872,7 @@ declare class EllipsisSessions {
2961
2872
  * Download the complete session history.
2962
2873
  *
2963
2874
  * The complete, ordered history of the session (agent output, tool calls, thinking,
2964
- * lifecycle events, sandbox output, message events) as an ordered
2875
+ * lifecycle events, environment output, message events) as an ordered
2965
2876
  * manifest of presigned segment URLs.
2966
2877
  *
2967
2878
  * Segments are gzip members: download in order and concatenate
@@ -2972,37 +2883,19 @@ declare class EllipsisSessions {
2972
2883
  * Required permissions: read:sessions.
2973
2884
  * API key: Supported.
2974
2885
  * CLI user token: Supported.
2975
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2886
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2976
2887
  * Higher permission levels include lower levels: read < write < delete.
2977
2888
  * Grant match patterns can further restrict access to individual resources.
2978
2889
  */
2979
2890
  download(session_id: string): Promise<S['GetSessionLogResponse']>;
2980
- /**
2981
- * List Session Executions
2982
- *
2983
- * Return the session's execution attempts, oldest first.
2984
- *
2985
- * Includes the selected harness, model, resolved instructions, initial
2986
- * query, and common result summary. Complete native outputs remain in
2987
- * the session's records. Internal launch options and checkpoint storage
2988
- * references are excluded.
2989
- *
2990
- * Required permissions: read:sessions.
2991
- * API key: Supported.
2992
- * CLI user token: Supported.
2993
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2994
- * Higher permission levels include lower levels: read < write < delete.
2995
- * Grant match patterns can further restrict access to individual resources.
2996
- */
2997
- executions(session_id: string): Promise<S['SessionExecutionsListResponse']>;
2998
2891
  /**
2999
2892
  * Get Session
3000
2893
  *
3001
2894
  * Return one session.
3002
2895
  *
3003
- * The public wire shape — the same shape the stream's session
3004
- * frames carry, with attribution, stop, and archive actors resolved
3005
- * at read time.
2896
+ * The public wire shape, the same shape the stream's session frames
2897
+ * carry, with attribution, stop, and archive actors resolved at read
2898
+ * time. `turn` is the turn in progress or the latest one.
3006
2899
  *
3007
2900
  * The heavy near-static blobs (config snapshot, input/output)
3008
2901
  * live on the detail endpoints, not here.
@@ -3010,7 +2903,7 @@ declare class EllipsisSessions {
3010
2903
  * Required permissions: read:sessions.
3011
2904
  * API key: Supported.
3012
2905
  * CLI user token: Supported.
3013
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2906
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3014
2907
  * Higher permission levels include lower levels: read < write < delete.
3015
2908
  * Grant match patterns can further restrict access to individual resources.
3016
2909
  */
@@ -3026,7 +2919,7 @@ declare class EllipsisSessions {
3026
2919
  * Required permissions: read:sessions.
3027
2920
  * API key: Supported.
3028
2921
  * CLI user token: Supported.
3029
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2922
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3030
2923
  * Higher permission levels include lower levels: read < write < delete.
3031
2924
  * Grant match patterns can further restrict access to individual resources.
3032
2925
  */
@@ -3036,15 +2929,16 @@ declare class EllipsisSessions {
3036
2929
  *
3037
2930
  * Append transcript lines to a session's record.
3038
2931
  *
3039
- * The in-sandbox tailer for interactive sessions.
2932
+ * The transcript tailer running inside the session's environment, for
2933
+ * interactive sessions.
3040
2934
  *
3041
- * A sandbox token may only push its own session's transcript.
3042
- * Idempotent by transcript line uuid; tolerant of malformed lines.
2935
+ * A session token may only push its own session's transcript.
2936
+ * Idempotent by transcript line uuid; tolerant of malformed lines.
3043
2937
  *
3044
2938
  * Required permissions: write:sessions.
3045
2939
  * API key: Supported.
3046
2940
  * CLI user token: Supported.
3047
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own session.
2941
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own session.
3048
2942
  * Higher permission levels include lower levels: read < write < delete.
3049
2943
  * Grant match patterns can further restrict access to individual resources.
3050
2944
  */
@@ -3064,7 +2958,7 @@ declare class EllipsisSessions {
3064
2958
  * Required permissions: read:sessions.
3065
2959
  * API key: Supported.
3066
2960
  * CLI user token: Supported.
3067
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2961
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3068
2962
  * Higher permission levels include lower levels: read < write < delete.
3069
2963
  * Grant match patterns can further restrict access to individual resources.
3070
2964
  */
@@ -3081,34 +2975,30 @@ declare class EllipsisSessions {
3081
2975
  author_id?: number | null;
3082
2976
  repo?: string | null;
3083
2977
  unfinished?: boolean;
3084
- exclude_code_review?: boolean;
3085
2978
  }): Promise<Page<S['Session'], S['SessionsListResponse']>>;
3086
2979
  /**
3087
- * Get Session Output
2980
+ * Get Session Metrics
3088
2981
  *
3089
- * Return the session's typed output.
2982
+ * List the CPU, memory, swap, and disk readings of every VM the
2983
+ * session ran on, oldest first.
3090
2984
  *
3091
- * The payload the agent submitted through its config-declared
3092
- * output.json_schema, as the raw JSON body with no envelope. 404
3093
- * while the session is still running (poll GET /v1/sessions/{id}),
3094
- * when the agent declares no output block, or when no execution
3095
- * produced output.
2985
+ * A reading is taken every 5 seconds while the session runs.
3096
2986
  *
3097
2987
  * Required permissions: read:sessions.
3098
2988
  * API key: Supported.
3099
2989
  * CLI user token: Supported.
3100
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2990
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own session.
3101
2991
  * Higher permission levels include lower levels: read < write < delete.
3102
2992
  * Grant match patterns can further restrict access to individual resources.
3103
2993
  */
3104
- output(session_id: string): Promise<Record<string, unknown>>;
2994
+ metrics(session_id: string): Promise<S['VMMetricsResponse']>;
3105
2995
  /**
3106
2996
  * Get Session Records
3107
2997
  *
3108
2998
  * Return the session's stored transcript records, oldest first.
3109
2999
  *
3110
3000
  * Pagination is opt-in (cursor/limit); a bare call returns the
3111
- * full retained transcript. Available to sandbox tokens too: an
3001
+ * full retained transcript. Available to session tokens too: an
3112
3002
  * agent answering "did X look into Y?" needs to read the sessions
3113
3003
  * it finds, and any org member sees the same transcript in the
3114
3004
  * dashboard.
@@ -3116,7 +3006,7 @@ declare class EllipsisSessions {
3116
3006
  * Required permissions: read:sessions.
3117
3007
  * API key: Supported.
3118
3008
  * CLI user token: Supported.
3119
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3009
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3120
3010
  * Higher permission levels include lower levels: read < write < delete.
3121
3011
  * Grant match patterns can further restrict access to individual resources.
3122
3012
  */
@@ -3130,7 +3020,7 @@ declare class EllipsisSessions {
3130
3020
  * Required permissions: read:sessions.
3131
3021
  * API key: Supported.
3132
3022
  * CLI user token: Supported.
3133
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3023
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3134
3024
  * Higher permission levels include lower levels: read < write < delete.
3135
3025
  * Grant match patterns can further restrict access to individual resources.
3136
3026
  */
@@ -3144,7 +3034,7 @@ declare class EllipsisSessions {
3144
3034
  agent_id?: (string)[] | null;
3145
3035
  session_ids?: (string)[] | null;
3146
3036
  repo?: (string)[] | null;
3147
- status?: (S['SessionLifecycleStatus'])[] | null;
3037
+ status?: (S['TurnStatus'])[] | null;
3148
3038
  start?: string | null;
3149
3039
  end?: string | null;
3150
3040
  limit?: number;
@@ -3154,15 +3044,14 @@ declare class EllipsisSessions {
3154
3044
  *
3155
3045
  * Send a message to a session.
3156
3046
  *
3157
- * 409 for react/cron, non-interactive, and closed sessions.
3158
- * Returns the created message so the caller can track it by id; a
3159
- * retried send with the same idempotency_key returns the original
3160
- * message.
3047
+ * 409 for mention, non-interactive, closed, and out-of-budget
3048
+ * sessions. Returns the created message and its turn; a retried send
3049
+ * with the same idempotency_key returns the original ones.
3161
3050
  *
3162
3051
  * Required permissions: write:sessions.
3163
3052
  * API key: Supported.
3164
3053
  * CLI user token: Supported.
3165
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3054
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3166
3055
  * Higher permission levels include lower levels: read < write < delete.
3167
3056
  * Grant match patterns can further restrict access to individual resources.
3168
3057
  */
@@ -3177,7 +3066,7 @@ declare class EllipsisSessions {
3177
3066
  * Required permissions: read:sessions.
3178
3067
  * API key: Supported.
3179
3068
  * CLI user token: Supported.
3180
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3069
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3181
3070
  * Higher permission levels include lower levels: read < write < delete.
3182
3071
  * Grant match patterns can further restrict access to individual resources.
3183
3072
  */
@@ -3188,50 +3077,51 @@ declare class EllipsisSessions {
3188
3077
  * Start a cloud agent session.
3189
3078
  *
3190
3079
  * The daily driver: a prompt, optionally where to run it
3191
- * (`environment`) and the run's own settings, in the AgentConfig
3080
+ * (`environment`) and the session's own settings, in the AgentConfig
3192
3081
  * vocabulary. What you send is what runs: omit `environment` and the
3193
- * session runs in the built-in basic sandbox. A missing model or
3082
+ * session runs in the built-in basic environment. A missing model or
3194
3083
  * budget comes from the organization's settings, so
3195
3084
  * `{"claude_code": {"prompt": "..."}}` is a complete request.
3196
3085
  * Set exactly one of `claude_code` or `codex`. Its `prompt` is the
3197
- * first message; omit the prompt and the session starts idle, waiting for
3198
- * one. 400 when `lifecycle.interactive` is false and there is no prompt, or
3199
- * when `budget` exceeds the organization's per-session ceiling. To
3200
- * run a saved agent, use POST /v1/agents/{agent_id}/sessions.
3086
+ * first message; omit the prompt and the session starts with no
3087
+ * turn, waiting for one. 400 when `conversation.interactive` is false
3088
+ * and there is no prompt, or when `budget.session` exceeds the
3089
+ * organization's per-session ceiling. To start a session from a saved
3090
+ * agent, use POST /v1/agents/{agent_id}/sessions.
3201
3091
  *
3202
3092
  * Required permissions: write:sessions.
3203
3093
  * API key: Supported.
3204
3094
  * CLI user token: Supported.
3205
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3095
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3206
3096
  * Higher permission levels include lower levels: read < write < delete.
3207
3097
  * Grant match patterns can further restrict access to individual resources.
3208
3098
  */
3209
3099
  start(options?: {
3210
- budget?: number | null;
3100
+ budget?: S['RunBudget'] | null;
3211
3101
  claude_code?: S['ClaudeConfig-Input'] | null;
3212
3102
  codex?: S['CodexConfig-Input'] | null;
3103
+ conversation?: S['SessionConversationConfig-Input'];
3213
3104
  environment?: string | S['EnvironmentConfig-Input'] | null;
3214
3105
  force_rebuild?: boolean;
3215
3106
  images?: (S['ImageAttachment'])[];
3216
- lifecycle?: S['SessionLifecycleConfig'];
3217
3107
  metadata?: Record<string, string>;
3218
3108
  output?: S['OutputConfig'] | null;
3219
3109
  permissions?: S['PermissionsConfig-Input'] | null;
3220
- repositories?: (string)[] | null;
3221
3110
  skills?: (S['SkillRef-Input'])[] | null;
3222
3111
  }): Promise<S['SessionResponse']>;
3223
3112
  /**
3224
3113
  * Stop Session
3225
3114
  *
3226
- * Stop an in-flight session and return it.
3115
+ * Stop the turn in progress and return the session.
3227
3116
  *
3228
- * stopped_by is recorded only when the caller's credential maps
3229
- * to a GitHub account.
3117
+ * The turn ends `stopped`; the conversation stays open. 409 when no
3118
+ * turn is pending or running. The stopping user is recorded only
3119
+ * when the caller's credential maps to a GitHub account.
3230
3120
  *
3231
3121
  * Required permissions: write:sessions.
3232
3122
  * API key: Supported.
3233
3123
  * CLI user token: Supported.
3234
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3124
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3235
3125
  * Higher permission levels include lower levels: read < write < delete.
3236
3126
  * Grant match patterns can further restrict access to individual resources.
3237
3127
  */
@@ -3242,7 +3132,7 @@ declare class EllipsisSessions {
3242
3132
  * Required permissions: read:sessions.
3243
3133
  * API key: Supported.
3244
3134
  * CLI user token: Supported.
3245
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3135
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3246
3136
  * Higher permission levels include lower levels: read < write < delete.
3247
3137
  * Grant match patterns can further restrict access to individual resources.
3248
3138
  */
@@ -3263,7 +3153,7 @@ declare class EllipsisSessions {
3263
3153
  * Required permissions: write:sessions.
3264
3154
  * API key: Supported.
3265
3155
  * CLI user token: Supported.
3266
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3156
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3267
3157
  * Higher permission levels include lower levels: read < write < delete.
3268
3158
  * Grant match patterns can further restrict access to individual resources.
3269
3159
  */
@@ -3284,7 +3174,7 @@ declare class EllipsisSupportSlack {
3284
3174
  * Required permissions: write:account.
3285
3175
  * API key: Requires a CLI user token.
3286
3176
  * CLI user token: Supported.
3287
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3177
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3288
3178
  * Higher permission levels include lower levels: read < write < delete.
3289
3179
  */
3290
3180
  create(options: {
@@ -3297,7 +3187,7 @@ declare class EllipsisSupportSlack {
3297
3187
  * Required permissions: read:account.
3298
3188
  * API key: Supported.
3299
3189
  * CLI user token: Supported.
3300
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3190
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3301
3191
  * Higher permission levels include lower levels: read < write < delete.
3302
3192
  */
3303
3193
  get(): Promise<void>;
@@ -3307,7 +3197,7 @@ declare class EllipsisSupportSlack {
3307
3197
  * Required permissions: write:account.
3308
3198
  * API key: Requires a CLI user token.
3309
3199
  * CLI user token: Supported.
3310
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3200
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3311
3201
  * Higher permission levels include lower levels: read < write < delete.
3312
3202
  */
3313
3203
  invite(options: {
@@ -3331,7 +3221,7 @@ declare class EllipsisTemplates {
3331
3221
  * Required permissions: read:templates.
3332
3222
  * API key: Supported.
3333
3223
  * CLI user token: Supported.
3334
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3224
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3335
3225
  * Higher permission levels include lower levels: read < write < delete.
3336
3226
  */
3337
3227
  get(template_id: string): Promise<S['AgentTemplate']>;
@@ -3346,7 +3236,7 @@ declare class EllipsisTemplates {
3346
3236
  * Required permissions: read:templates.
3347
3237
  * API key: Supported.
3348
3238
  * CLI user token: Supported.
3349
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3239
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3350
3240
  * Higher permission levels include lower levels: read < write < delete.
3351
3241
  */
3352
3242
  list(): Promise<S['AgentTemplatesListResponse']>;
@@ -3365,7 +3255,7 @@ declare class EllipsisUserSubscriptionTokens {
3365
3255
  * Required permissions: delete:user.
3366
3256
  * API key: Requires a CLI user token.
3367
3257
  * CLI user token: Supported.
3368
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3258
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3369
3259
  * Higher permission levels include lower levels: read < write < delete.
3370
3260
  */
3371
3261
  delete(provider: S['SubscriptionProvider']): Promise<void>;
@@ -3380,7 +3270,7 @@ declare class EllipsisUserSubscriptionTokens {
3380
3270
  * Required permissions: read:user.
3381
3271
  * API key: Requires a CLI user token.
3382
3272
  * CLI user token: Supported.
3383
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3273
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3384
3274
  * Higher permission levels include lower levels: read < write < delete.
3385
3275
  */
3386
3276
  get(provider: S['SubscriptionProvider']): Promise<S['SubscriptionToken']>;
@@ -3396,7 +3286,7 @@ declare class EllipsisUserSubscriptionTokens {
3396
3286
  * Required permissions: read:user.
3397
3287
  * API key: Requires a CLI user token.
3398
3288
  * CLI user token: Supported.
3399
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3289
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3400
3290
  * Higher permission levels include lower levels: read < write < delete.
3401
3291
  */
3402
3292
  list(): Promise<S['SubscriptionTokensListResponse']>;
@@ -3414,7 +3304,7 @@ declare class EllipsisUserSubscriptionTokens {
3414
3304
  * Required permissions: write:user.
3415
3305
  * API key: Requires a CLI user token.
3416
3306
  * CLI user token: Supported.
3417
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3307
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3418
3308
  * Higher permission levels include lower levels: read < write < delete.
3419
3309
  */
3420
3310
  set(provider: S['SubscriptionProvider'], options: {
@@ -3434,7 +3324,7 @@ declare class EllipsisUserSubscriptionTokens {
3434
3324
  * Required permissions: read:user.
3435
3325
  * API key: Requires a CLI user token.
3436
3326
  * CLI user token: Supported.
3437
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3327
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3438
3328
  * Higher permission levels include lower levels: read < write < delete.
3439
3329
  */
3440
3330
  usage(provider: S['SubscriptionProvider']): Promise<S['SubscriptionUsageResponse']>;
@@ -3453,7 +3343,7 @@ declare class EllipsisUserSubscriptionTokens {
3453
3343
  * Required permissions: write:user.
3454
3344
  * API key: Requires a CLI user token.
3455
3345
  * CLI user token: Supported.
3456
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3346
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3457
3347
  * Higher permission levels include lower levels: read < write < delete.
3458
3348
  */
3459
3349
  verify(provider: S['SubscriptionProvider']): Promise<S['VerifySubscriptionTokenResponse']>;
@@ -3467,7 +3357,7 @@ declare class EllipsisUserTokens {
3467
3357
  * Required permissions: read:user.
3468
3358
  * API key: Requires a CLI user token.
3469
3359
  * CLI user token: Supported.
3470
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3360
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3471
3361
  * Higher permission levels include lower levels: read < write < delete.
3472
3362
  */
3473
3363
  list(): Promise<S['ListUserTokensResponse']>;
@@ -3477,7 +3367,7 @@ declare class EllipsisUserTokens {
3477
3367
  * Required permissions: delete:user.
3478
3368
  * API key: Requires a CLI user token.
3479
3369
  * CLI user token: Supported.
3480
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3370
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3481
3371
  * Higher permission levels include lower levels: read < write < delete.
3482
3372
  */
3483
3373
  revoke(token_id: string): Promise<S['TokenRevokedResponse']>;
@@ -3497,7 +3387,7 @@ declare class EllipsisVmExecutions {
3497
3387
  * Required permissions: read:environments.
3498
3388
  * API key: Supported.
3499
3389
  * CLI user token: Supported.
3500
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own sandbox.
3390
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own sandbox.
3501
3391
  * Higher permission levels include lower levels: read < write < delete.
3502
3392
  */
3503
3393
  get(vm_execution_id: string): Promise<S['VMExecutionResponse']>;
@@ -3507,7 +3397,7 @@ declare class EllipsisVmExecutions {
3507
3397
  * Required permissions: read:environments.
3508
3398
  * API key: Supported.
3509
3399
  * CLI user token: Supported.
3510
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own sandbox.
3400
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own sandbox.
3511
3401
  * Higher permission levels include lower levels: read < write < delete.
3512
3402
  */
3513
3403
  list(): Promise<void>;
@@ -3517,7 +3407,7 @@ declare class EllipsisVmExecutions {
3517
3407
  * Required permissions: read:environments.
3518
3408
  * API key: Supported.
3519
3409
  * CLI user token: Supported.
3520
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own sandbox.
3410
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own sandbox.
3521
3411
  * Higher permission levels include lower levels: read < write < delete.
3522
3412
  */
3523
3413
  streamTicket(vm_execution_id: string): Promise<S['StreamTicketResponse']>;
@@ -3533,7 +3423,7 @@ declare class EllipsisVmImages {
3533
3423
  * Required permissions: read:environments.
3534
3424
  * API key: Supported.
3535
3425
  * CLI user token: Supported.
3536
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3426
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3537
3427
  * Higher permission levels include lower levels: read < write < delete.
3538
3428
  */
3539
3429
  get(image_id: string): Promise<S['VMImageResponse']>;
@@ -3547,7 +3437,7 @@ declare class EllipsisVmImages {
3547
3437
  * Required permissions: read:environments.
3548
3438
  * API key: Supported.
3549
3439
  * CLI user token: Supported.
3550
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3440
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3551
3441
  * Higher permission levels include lower levels: read < write < delete.
3552
3442
  */
3553
3443
  list(options?: {
@@ -3566,7 +3456,7 @@ declare class EllipsisVms {
3566
3456
  * Required permissions: read:environments.
3567
3457
  * API key: Supported.
3568
3458
  * CLI user token: Supported.
3569
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own VM.
3459
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own VM.
3570
3460
  * Higher permission levels include lower levels: read < write < delete.
3571
3461
  */
3572
3462
  get(vm_id: string): Promise<S['VM']>;
@@ -3580,13 +3470,30 @@ declare class EllipsisVms {
3580
3470
  * Required permissions: read:environments.
3581
3471
  * API key: Supported.
3582
3472
  * CLI user token: Supported.
3583
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own VM.
3473
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own VM.
3584
3474
  * Higher permission levels include lower levels: read < write < delete.
3585
3475
  */
3586
3476
  list(options?: {
3587
3477
  limit?: number;
3588
3478
  offset?: number;
3589
3479
  }): Promise<S['VMListResponse']>;
3480
+ /**
3481
+ * List Vm Metrics
3482
+ *
3483
+ * List a VM's CPU, memory, swap, and disk readings, oldest first.
3484
+ *
3485
+ * A reading is taken every 5 seconds while a session runs on the VM.
3486
+ *
3487
+ * Required permissions: read:environments.
3488
+ * API key: Supported.
3489
+ * CLI user token: Supported.
3490
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own VM.
3491
+ * Higher permission levels include lower levels: read < write < delete.
3492
+ */
3493
+ metrics(vm_id: string, options?: {
3494
+ start?: string | null;
3495
+ end?: string | null;
3496
+ }): Promise<S['VMMetricsResponse']>;
3590
3497
  }
3591
3498
  declare class EllipsisWebhooksDeliveries {
3592
3499
  private readonly transport;
@@ -3602,7 +3509,7 @@ declare class EllipsisWebhooksDeliveries {
3602
3509
  * Required permissions: read:webhooks.
3603
3510
  * API key: Supported.
3604
3511
  * CLI user token: Supported.
3605
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3512
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3606
3513
  * Higher permission levels include lower levels: read < write < delete.
3607
3514
  */
3608
3515
  get(delivery_id: string): Promise<S['WebhookDeliveryResponse']>;
@@ -3617,7 +3524,7 @@ declare class EllipsisWebhooksDeliveries {
3617
3524
  * Required permissions: read:webhooks.
3618
3525
  * API key: Supported.
3619
3526
  * CLI user token: Supported.
3620
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3527
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3621
3528
  * Higher permission levels include lower levels: read < write < delete.
3622
3529
  */
3623
3530
  list(options?: {
@@ -3647,7 +3554,7 @@ declare class EllipsisWebhooks {
3647
3554
  * Required permissions: write:webhooks.
3648
3555
  * API key: Supported.
3649
3556
  * CLI user token: Supported.
3650
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3557
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3651
3558
  * Higher permission levels include lower levels: read < write < delete.
3652
3559
  */
3653
3560
  create(options: {
@@ -3666,7 +3573,7 @@ declare class EllipsisWebhooks {
3666
3573
  * Required permissions: delete:webhooks.
3667
3574
  * API key: Supported.
3668
3575
  * CLI user token: Supported.
3669
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3576
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3670
3577
  * Higher permission levels include lower levels: read < write < delete.
3671
3578
  */
3672
3579
  delete(webhook_id: string): Promise<void>;
@@ -3678,7 +3585,7 @@ declare class EllipsisWebhooks {
3678
3585
  * Required permissions: read:webhooks.
3679
3586
  * API key: Supported.
3680
3587
  * CLI user token: Supported.
3681
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3588
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3682
3589
  * Higher permission levels include lower levels: read < write < delete.
3683
3590
  */
3684
3591
  get(webhook_id: string): Promise<S['WebhookResponse']>;
@@ -3690,7 +3597,7 @@ declare class EllipsisWebhooks {
3690
3597
  * Required permissions: read:webhooks.
3691
3598
  * API key: Supported.
3692
3599
  * CLI user token: Supported.
3693
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3600
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3694
3601
  * Higher permission levels include lower levels: read < write < delete.
3695
3602
  */
3696
3603
  list(): Promise<S['WebhooksListResponse']>;
@@ -3707,7 +3614,7 @@ declare class EllipsisWebhooks {
3707
3614
  * Required permissions: write:webhooks.
3708
3615
  * API key: Supported.
3709
3616
  * CLI user token: Supported.
3710
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3617
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3711
3618
  * Higher permission levels include lower levels: read < write < delete.
3712
3619
  */
3713
3620
  ping(webhook_id: string): Promise<void>;
@@ -3723,7 +3630,7 @@ declare class EllipsisWebhooks {
3723
3630
  * Required permissions: write:webhooks.
3724
3631
  * API key: Supported.
3725
3632
  * CLI user token: Supported.
3726
- * Sandbox token: Not supported by sandbox tokens, even with permissions.ellipsis enabled.
3633
+ * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3727
3634
  * Higher permission levels include lower levels: read < write < delete.
3728
3635
  */
3729
3636
  update(webhook_id: string, options: {
@@ -3740,10 +3647,8 @@ declare class Ellipsis {
3740
3647
  readonly analytics: EllipsisAnalytics;
3741
3648
  readonly auth: EllipsisAuth;
3742
3649
  readonly environments: EllipsisEnvironments;
3743
- readonly files: EllipsisFiles;
3744
3650
  readonly handlers: EllipsisHandlers;
3745
3651
  readonly integrations: EllipsisIntegrations;
3746
- readonly memories: EllipsisMemories;
3747
3652
  readonly reviews: EllipsisReviews;
3748
3653
  readonly secrets: EllipsisSecrets;
3749
3654
  readonly sessions: EllipsisSessions;
@@ -3760,10 +3665,12 @@ declare class Ellipsis {
3760
3665
  *
3761
3666
  * Return the identity behind the caller's credential.
3762
3667
  *
3763
- * Required permissions: read:account.
3668
+ * Any valid credential may call this; no permission grant is needed.
3669
+ *
3670
+ * Required permissions: none; any valid credential.
3764
3671
  * API key: Supported.
3765
3672
  * CLI user token: Supported.
3766
- * Sandbox token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3673
+ * Session token: Requires the ellipsis:api scope; no permissions.ellipsis grant is needed.
3767
3674
  * Higher permission levels include lower levels: read < write < delete.
3768
3675
  */
3769
3676
  identity(): Promise<S['Identity']>;
@@ -3801,4 +3708,4 @@ declare class RateLimitError extends APIError {
3801
3708
  declare class ServerError extends APIError {
3802
3709
  }
3803
3710
 
3804
- export { APIError, type AgentListStreamMessage, AuthenticationError, type CollectionStreamFrame, type CollectionStreamHeartbeat, ConflictError, DEFAULT_BASE_URL, Ellipsis, EllipsisError, ForbiddenError, NotFoundError, Page, RateLimitError, type SandboxSnapshotFrame, type SandboxUpdateFrame, ServerError, SessionHandle, type SessionListStreamMessage, TERMINAL_STATUSES, Transport, TransportError, type TransportOptions, UnprocessableError, components, isSettled };
3711
+ export { APIError, type AgentListStreamMessage, AuthenticationError, type CollectionStreamFrame, type CollectionStreamHeartbeat, ConflictError, DEFAULT_BASE_URL, Ellipsis, EllipsisError, ForbiddenError, NotFoundError, Page, RateLimitError, type SandboxSnapshotFrame, type SandboxUpdateFrame, ServerError, SessionHandle, type SessionListStreamMessage, Transport, TransportError, type TransportOptions, UnprocessableError, components, isTurnFinal };