@ellipsis-dev/sdk 0.31.0 → 0.33.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,5 +1,5 @@
1
- import { c as components } from './types-BQxZcD0_.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 CreateReviewRequest, 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 Finding, aO as GithubAccountFilter, aP as GithubAccountSelector, aQ as GithubAccountSnippet, aR as GithubAccountType, aS as GithubIssueEvent, aT as GithubPermissions, aU as GithubPullRequestEvent, aV as GithubPushEvent, aW as HandlerService, aX as HeartbeatFrame, aY as InputContract, aZ as IssueAction, a_ as LegacyAssistantPayload, a$ as LegacyNativeUsage, b0 as LegacyResultPayload, b1 as Level, b2 as LifecycleSessionRecord, b3 as LinearIssueAction, b4 as LinearIssueEvent, b5 as McpRemoteServer, b6 as McpServerRef, b7 as McpStdioServer, b8 as MemorySize, b9 as MessageDeliveredPayload, ba as MessageDeliveredRecord, bb as MessageReceivedPayload, bc as MessageReceivedRecord, bd as MessageRequeuedPayload, be as MessageRequeuedRecord, bf as OutboxCollectedPayload, bg as OutboxCollectedRecord, bh as OutputConfig, bi as PermissionsConfig, bj as PermissionsConfig1, bk as PlatformSessionRecord, bl as PromptBlockedReason, bm as PullRequestAction, bn as ReactIssue, bo as ReactLinearIssue, bp as ReactPullRequest, bq as ReactPush, br as ReactSentry, bs as ReactSlackChannel, bt as ReactTrigger, bu as RecordsAppendFrame, bv as RepositoryFilter, bw as RepositoryRef, bx as ResolvedReviewScope, by as Review, bz as ReviewConfiguration, bA as ReviewCounters, bB as ReviewFinding, bC as ReviewRequester, bD as ReviewScope, bE as ReviewScopeKind, bF as ReviewStage, bG as ReviewedCommit, 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 SessionCost, c7 as SessionCost1, c8 as SessionEnvironment, c9 as SessionEventActor, ca as SessionFrame, cb as SessionGit, cc as SessionGitCommit, cd as SessionGitFile, ce as SessionGitPr, cf as SessionGitRepo, cg as SessionHandler, ch as SessionMessage, ci as SessionMessageImage, cj as SessionMessageResponse, ck as SessionMessageStatus, cl as SessionParent, cm as SessionPrompting, cn as SessionRecord, co as SessionRecordsListResponse, cp as SessionResponse, cq as SessionSource, cr as SessionState, cs as SessionStopped, ct as SessionStreamFrame, cu as SessionSummary, cv as SessionTokens, cw as SessionTokens1, cx as SessionTurn, cy as SessionTurnResponse, cz as SessionTurnsListResponse, cA as SessionsListResponse, cB as SettingsRef, cC as SkillRef, cD as SlackChannelCreatedEvent, cE as SlackMessageEvent, cF as SnapshotFrame, cG as StreamFrame, cH as TokensInfo, cI as TurnEndedPayload, cJ as TurnEndedRecord, cK as TurnReason, cL as TurnStartedPayload, cM as TurnStartedRecord, cN as TurnStatus, cO as UnknownSessionRecord, cP as UpdateSessionRequest, cQ as paths } from './types-BQxZcD0_.js';
1
+ import { c as components } from './types-CtvhpMyt.js';
2
+ export { A as AgentConfig, a as AgentIdentity, b as AttributionType, B as BudgetConfig, C as CheckRunAction, d as CheckSuiteAction, e as ClaudeAssistantEvent, f as ClaudeAssistantMessage, g as ClaudeConfig, h as ClaudeConversationResetEvent, i as ClaudeNativeEvent, j as ClaudeNativeSessionRecord, k as ClaudeNativeUsage, l as ClaudeRateLimitEvent, m as ClaudeRateLimitInfo, n as ClaudeResultEvent, o as ClaudeSessionRecord, p as ClaudeSystemEvent, q as ClaudeUserEvent, r as ClaudeUserMessage, s as CodexAgentMessage, t as CodexAgentMessageItem, u as CodexAppServerError, v as CodexAppServerEvent, w as CodexAppServerItem, x as CodexAppServerNotification, y as CodexAppServerSessionRecord, z as CodexCommandExecution, D as CodexCommandExecutionItem, E as CodexConfig, F as CodexContextCompaction, G as CodexEffortLevel, H as CodexErrorEvent, I as CodexErrorItem, J as CodexErrorParams, K as CodexEvent, L as CodexFileChange, M as CodexFileChangeItem, N as CodexFileUpdate, O as CodexItem, P as CodexItemCompleted, Q as CodexItemCompletedEvent, R as CodexItemParams, S as CodexItemStarted, T as CodexItemStartedEvent, U as CodexItemUpdatedEvent, V as CodexLocalImageInput, W as CodexMcpToolCall, X as CodexMcpToolCallAppContext, Y as CodexMcpToolCallError, Z as CodexMcpToolCallItem, _ as CodexMcpToolCallResult, $ as CodexPlan, a0 as CodexReasoning, a1 as CodexReasoningItem, a2 as CodexSessionRecord, a3 as CodexTextInput, a4 as CodexThread, a5 as CodexThreadStarted, a6 as CodexThreadStartedEvent, a7 as CodexThreadStartedParams, a8 as CodexThreadTokenUsage, a9 as CodexTodoListItem, aa as CodexTokenUsageBreakdown, ab as CodexTokenUsageParams, ac as CodexTokenUsageUpdated, ad as CodexTurn, ae as CodexTurnCompleted, af as CodexTurnCompletedEvent, ag as CodexTurnError, ah as CodexTurnFailedEvent, ai as CodexTurnParams, aj as CodexTurnStarted, ak as CodexTurnStartedEvent, al as CodexUsage, am as CodexUserInput, an as CodexUserMessage, ao as CodexWebSearch, ap as CodexWebSearchItem, aq as ComputeConfig, ar as ComputeConfig1, as as ConfigMetadata, at as Cost, au as Cost1, av as CronTrigger, aw as DeltaFrame, ax as DoneFrame, ay as Duration, az as EffortLevel, aA as EllipsisGrant, aB as EllipsisPermissions, aC as EnvironmentBaseBuild, aD as EnvironmentConfig, aE as EnvironmentHooks, aF as EnvironmentHooks1, aG as EnvironmentOutputPayload, aH as EnvironmentOutputRecord, aI as EnvironmentPhasePayload, aJ as EnvironmentPhaseRecord, aK as EnvironmentReadyPayload, aL as EnvironmentReadyRecord, aM as EnvironmentScript, aN as EnvironmentSource, aO as EnvironmentVariable, aP as ErrorFrame, aQ as GithubAccountFilter, aR as GithubAccountSelector, aS as GithubAccountSnippet, aT as GithubAccountType, aU as GithubCheckRunEvent, aV as GithubCheckSuiteEvent, aW as GithubIssueEvent, aX as GithubPermissions, aY as GithubPullRequestEvent, aZ as GithubPushEvent, a_ as GithubReleaseEvent, a$ as GithubStatusEvent, b0 as GithubWorkflowRunEvent, b1 as HandlerService, b2 as HeartbeatFrame, b3 as InputContract, b4 as IssueAction, b5 as LegacyAssistantPayload, b6 as LegacyNativeUsage, b7 as LegacyResultPayload, b8 as Level, b9 as LifecycleSessionRecord, ba as LinearIssueAction, bb as LinearIssueEvent, bc as LlmCost, bd as LlmCostSplit, be as McpRemoteServer, bf as McpServerRef, bg as McpStdioServer, bh as MemorySize, bi as MessageDeliveredPayload, bj as MessageDeliveredRecord, bk as MessageReceivedPayload, bl as MessageReceivedRecord, bm as MessageRequeuedPayload, bn as MessageRequeuedRecord, bo as ModelLlmCostSplit, bp as ModelTokenCounts, bq as OutputConfig, br as PermissionsConfig, bs as PermissionsConfig1, bt as PlatformSessionRecord, bu as PromptBlockedReason, bv as PullRequestAction, bw as ReactCheckRun, bx as ReactCheckSuite, by as ReactIssue, bz as ReactLinearIssue, bA as ReactPullRequest, bB as ReactPush, bC as ReactRelease, bD as ReactSentry, bE as ReactSlackChannel, bF as ReactStatus, bG as ReactTrigger, bH as ReactWorkflowRun, bI as RecordsAppendFrame, bJ as ReleaseAction, bK as RepositoryFilter, bL as RepositoryRef, bM as Review, bN as ReviewComment, bO as ReviewConfig, bP as ReviewConfigsListResponse, bQ as ReviewPullRequest, bR as ReviewPullRequestAuthor, bS as ReviewReviewer, bT as ReviewSummary, bU as ReviewsListResponse, bV as SdkAssistantRecord, bW as SdkCacheCreation, bX as SdkContentBlock, bY as SdkRateLimitRecord, bZ as SdkRecord, b_ as SdkResultRecord, b$ as SdkServerToolResultBlock, c0 as SdkServerToolUseBlock, c1 as SdkSystemRecord, c2 as SdkTextBlock, c3 as SdkThinkingBlock, c4 as SdkToolResultBlock, c5 as SdkToolUseBlock, c6 as SdkUserRecord, c7 as SendSessionMessageRequest, c8 as SentryAction, c9 as SentryAlertEvent, ca as Session, cb as Session1, cc as SessionAgent, cd as SessionArchived, ce as SessionAttribution, cf as SessionClosedPayload, cg as SessionClosedRecord, ch as SessionConfig, ci as SessionConversation, cj as SessionConversationConfig, ck as SessionEnvironment, cl as SessionEventActor, cm as SessionFrame, cn as SessionGit, co as SessionGitCommit, cp as SessionGitFile, cq as SessionGitPr, cr as SessionGitRepo, cs as SessionHandler, ct as SessionMessage, cu as SessionMessageImage, cv as SessionMessageResponse, cw as SessionMessageStatus, cx as SessionOutput, cy as SessionParent, cz as SessionPrompting, cA as SessionRecord, cB as SessionRecordsListResponse, cC as SessionResponse, cD as SessionSource, cE as SessionState, cF as SessionStopped, cG as SessionStreamFrame, cH as SessionSummary, cI as SessionTurn, cJ as SessionTurnResponse, cK as SessionTurnsListResponse, cL as SessionsListResponse, cM as SettingsRef, cN as SkillRef, cO as SlackChannelCreatedEvent, cP as SlackMessageEvent, cQ as SnapshotFrame, cR as StatusAction, cS as StreamFrame, cT as TokenCounts, cU as Tokens, cV as Tokens1, cW as TokensInfo, cX as TurnEndedPayload, cY as TurnEndedRecord, cZ as TurnReason, c_ as TurnStartedPayload, c$ as TurnStartedRecord, d0 as TurnStatus, d1 as UnknownSessionRecord, d2 as UpdateSessionRequest, d3 as WorkflowRunAction, d4 as paths } from './types-CtvhpMyt.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.
@@ -22,7 +22,7 @@ type Session = {
22
22
  archived: SessionArchived | null;
23
23
  attribution: SessionAttribution;
24
24
  /**
25
- * The spend budget enforced for this session, in US dollars, after resolving defaults and ceilings.
25
+ * The spend budget enforced for this session, in millicents, after resolving defaults and ceilings.
26
26
  */
27
27
  budget: number;
28
28
  /**
@@ -34,7 +34,7 @@ type Session = {
34
34
  */
35
35
  codex: CodexConfig | null;
36
36
  conversation: SessionConversation;
37
- cost: SessionCost;
37
+ cost: Cost;
38
38
  /**
39
39
  * When the session was created.
40
40
  */
@@ -43,7 +43,7 @@ type Session = {
43
43
  /**
44
44
  * The typed external event that started the session; null for direct and scheduled starts.
45
45
  */
46
- event: (GithubPullRequestEvent | GithubIssueEvent | GithubPushEvent | LinearIssueEvent | SlackMessageEvent | SlackChannelCreatedEvent | SentryAlertEvent) | null;
46
+ event: (GithubPullRequestEvent | GithubIssueEvent | GithubPushEvent | GithubCheckRunEvent | GithubCheckSuiteEvent | GithubWorkflowRunEvent | GithubStatusEvent | GithubReleaseEvent | LinearIssueEvent | SlackMessageEvent | SlackChannelCreatedEvent | SentryAlertEvent) | null;
47
47
  /**
48
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.
49
49
  */
@@ -63,9 +63,9 @@ type Session = {
63
63
  [k: string]: string;
64
64
  };
65
65
  /**
66
- * 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`.
67
67
  */
68
- output: OutputConfig | null;
68
+ output: SessionOutput | null;
69
69
  /**
70
70
  * The predecessor session this session continues; null when there is none.
71
71
  */
@@ -80,7 +80,7 @@ type Session = {
80
80
  * The latest live summary of the session's progress while it runs, and when it was generated.
81
81
  */
82
82
  summary: SessionSummary | null;
83
- tokens: SessionTokens;
83
+ tokens: Tokens;
84
84
  /**
85
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
86
  */
@@ -123,7 +123,14 @@ type SessionConfig = {
123
123
  * Codex input and native options. Set exactly one of claude_code or codex.
124
124
  */
125
125
  codex: CodexConfig | null;
126
+ conversation: SessionConversationConfig;
126
127
  environment: string | EnvironmentConfig;
128
+ /**
129
+ * Arbitrary string key/value metadata stored on every session.
130
+ */
131
+ metadata: {
132
+ [k: string]: string;
133
+ };
127
134
  output: OutputConfig | null;
128
135
  permissions: PermissionsConfig;
129
136
  skills: SkillRef[];
@@ -150,20 +157,42 @@ type GithubAccountFilter = {
150
157
  exclude: string[];
151
158
  include: string[] | boolean;
152
159
  } | boolean | string[];
153
- type IssueAction = 'opened' | 'closed' | 'commented';
160
+ /**
161
+ * The state of a check run when GitHub reports it. A run created before it finishes fires its status, and `in_progress` is `started`. A finished run fires its conclusion, `success` is `passed` and `failure` is `failed`. Every other value is the GitHub word.
162
+ */
163
+ type CheckRunAction = 'requested' | 'queued' | 'waiting' | 'pending' | 'started' | 'passed' | 'failed' | 'timed_out' | 'cancelled' | 'skipped' | 'neutral' | 'action_required' | 'stale';
154
164
  type RepositoryFilter = {
155
165
  exclude: string[];
156
166
  include: string[];
157
167
  } | string[];
168
+ /**
169
+ * The conclusion of a finished check suite. `success` is `passed` and `failure` is `failed`. Every other value is the GitHub word.
170
+ */
171
+ type CheckSuiteAction = 'passed' | 'failed' | 'timed_out' | 'cancelled' | 'skipped' | 'neutral' | 'action_required' | 'stale' | 'startup_failure';
172
+ type IssueAction = 'opened' | 'closed' | 'commented';
158
173
  type LinearIssueAction = 'opened';
159
174
  type PullRequestAction = 'opened' | 'pushed' | 'merged' | 'closed' | 'review_submitted' | 'commented';
175
+ /**
176
+ * What happened to a GitHub release. `published` is the one moment a
177
+ * release becomes visible: a release or prerelease published directly, or a
178
+ * draft published later. Edits, deletions, and unpublishes never fire.
179
+ */
180
+ type ReleaseAction = 'published';
160
181
  type SentryAction = 'issue_alert' | 'metric_alert';
182
+ /**
183
+ * The state of a commit status. `success` is `passed`, `failure` is `failed`, and `error` is `errored`.
184
+ */
185
+ type StatusAction = 'pending' | 'passed' | 'failed' | 'errored';
186
+ /**
187
+ * The state of a GitHub Actions workflow run when GitHub reports it. Before the run finishes it is the status, and `in_progress` is `started`. After it finishes it is the conclusion, `success` is `passed` and `failure` is `failed`. Every other value is the GitHub word.
188
+ */
189
+ type WorkflowRunAction = 'requested' | 'queued' | 'waiting' | 'pending' | 'started' | 'passed' | 'failed' | 'timed_out' | 'cancelled' | 'skipped' | 'neutral' | 'action_required' | 'stale' | 'startup_failure';
161
190
  type GithubAccountType = 'User' | 'Organization' | 'Bot' | 'Mannequin';
162
191
  type AttributionType = 'github_user' | 'linear_user' | 'slack_user' | 'api_key';
163
192
  /**
164
193
  * Why direct prompting is refused. Absent when prompting is allowed.
165
194
  */
166
- type PromptBlockedReason = 'mention_surface' | 'ephemeral_trigger' | 'non_interactive' | 'harness_single_turn' | 'budget_exhausted' | 'closed';
195
+ type PromptBlockedReason = 'mention_surface' | 'non_interactive' | 'harness_single_turn' | 'budget_exhausted' | 'closed';
167
196
  /**
168
197
  * `open` while the session can take messages; `closed` is permanent.
169
198
  */
@@ -184,7 +213,7 @@ type HandlerService = 'slack' | 'github' | 'linear' | 'sentry';
184
213
  /**
185
214
  * Where the session came from (e.g. react, web, api, cli, mention, cron).
186
215
  */
187
- type SessionSource = 'react' | 'web' | 'api' | 'cli' | 'mention' | 'cron';
216
+ type SessionSource = 'react' | 'code_review' | 'web' | 'api' | 'cli' | 'mention' | 'cron';
188
217
  /**
189
218
  * Why a turn failed or was cancelled. Null on every other outcome.
190
219
  */
@@ -203,7 +232,7 @@ type ConfigManagedBy = 'github' | 'api';
203
232
  * Rides on `Sandbox.cache_tier` and the sandbox_ready lifecycle record.
204
233
  */
205
234
  type SandboxCacheTier = 'exact' | 'incremental' | 'full';
206
- type SandboxSource = 'cli' | 'web_ui' | 'ingest_pull_request_job_run' | 'session' | 'image_refresh' | 'test' | 'script';
235
+ type SandboxSource = 'session' | 'image_refresh' | 'environment_check' | 'test' | 'script';
207
236
  type SandboxStatus = 'scheduled' | 'building' | 'running' | 'released' | 'terminating' | 'terminated' | 'failed';
208
237
  type SandboxType = 'claude_code';
209
238
  interface SessionListStreamMessage {
@@ -219,7 +248,7 @@ interface SessionListStreamMessage {
219
248
  interface SessionAgent {
220
249
  config: AgentConfig;
221
250
  /**
222
- * 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.
251
+ * 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.
223
252
  */
224
253
  id: string | null;
225
254
  }
@@ -241,9 +270,7 @@ interface AgentConfig {
241
270
  * config directory) — see `yaml_is_ellipsis_config`.
242
271
  *
243
272
  * `enabled` is agent behavior, not freeform metadata, so it stays inside
244
- * the config `sha` (only `metadata` is sha-excluded). Whether a session
245
- * accepts messages is a per-run choice (POST /v1/sessions `interactive`),
246
- * not a config one.
273
+ * the config `sha` (only `metadata` is sha-excluded).
247
274
  */
248
275
  interface AgentIdentity {
249
276
  description: string | null;
@@ -264,15 +291,24 @@ interface ConfigMetadata {
264
291
  * when it happens; this is what goes in).
265
292
  *
266
293
  * `json_schema` validates customer data sent as `input` to
267
- * `POST /v1/agents/{id}/sessions` and stored as `session.input`.
268
- * Invocations require input when a schema is declared. React agents
269
- * cannot declare schemas: the platform defines their event payloads.
294
+ * `POST /v1/agents/{id}/sessions` (the dashboard and the CLI start
295
+ * through the same door) and stored as `session.input`. An on-demand
296
+ * start requires input when a schema is declared. A trigger fires
297
+ * without it: a cron fire has no payload and a react fire carries the
298
+ * platform-shaped event, so an agent may declare a schema alongside
299
+ * either trigger and the schema governs only its on-demand starts.
270
300
  *
271
301
  * `message` is the initial-message template: exact `{{path}}` substitution
272
- * over the caller payload (or, on a react agent, over the surface's
273
- * published fields), no conditionals/loops/filters. Refs are validated at
274
- * deploy time against the governing field set (see AgentConfig's
275
- * `_check_input`).
302
+ * over the payload the session has (the caller payload on an on-demand
303
+ * start, the surface's published fields on a react fire, the empty
304
+ * object on a cron fire), no conditionals/loops/filters. Refs are
305
+ * validated at deploy time against every governing field set (see
306
+ * AgentConfig's `_check_input`): the caller schema's paths, the react
307
+ * surface's published fields, and both when the agent has a react trigger
308
+ * and a schema, so one template renders fully on either door (declare the
309
+ * surface's field names in the schema). Omit `message` to let each door
310
+ * render its default. An unresolved ref renders as the empty string (a
311
+ * cron fire, an optional field the payload omitted).
276
312
  */
277
313
  interface InputContract {
278
314
  json_schema: {
@@ -280,10 +316,26 @@ interface InputContract {
280
316
  } | null;
281
317
  message: string | null;
282
318
  }
319
+ /**
320
+ * A saved agent's spend limits: the per-session cap plus its total spend
321
+ * over the trailing 1, 7, and 28 days.
322
+ */
283
323
  interface BudgetConfig {
324
+ /**
325
+ * The most the agent may spend over the last day, in US dollars.
326
+ */
284
327
  day: number | null;
328
+ /**
329
+ * The most the agent may spend over the last 28 days, in US dollars.
330
+ */
285
331
  month: number | null;
332
+ /**
333
+ * The most one session may spend, in US dollars.
334
+ */
286
335
  session: number | null;
336
+ /**
337
+ * The most the agent may spend over the last 7 days, in US dollars.
338
+ */
287
339
  week: number | null;
288
340
  }
289
341
  /**
@@ -293,7 +345,10 @@ interface ClaudeConfig {
293
345
  effort: EffortLevel | null;
294
346
  fallback_model: string | null;
295
347
  max_turns: number | null;
296
- model: string | null;
348
+ /**
349
+ * The model the session runs on: an alias or canonical id from the models table. Required.
350
+ */
351
+ model: string;
297
352
  /**
298
353
  * The initial user message, passed verbatim. Omit to start an interactive session with no turn, waiting for a message.
299
354
  */
@@ -301,12 +356,10 @@ interface ClaudeConfig {
301
356
  settings: SettingsRef | null;
302
357
  }
303
358
  /**
304
- * A config-declared Claude Code settings.json, resolved at run start and
305
- * passed to `claude --settings <path>`. That is the CLI settings tier — BELOW
306
- * Ellipsis's managed-settings.json floor — so it customizes behavior (model
307
- * permissions, includeCoAuthoredBy, statusLine, ...) but can never weaken a
308
- * security setting. Lets a team point the cloud agent at the same settings file
309
- * they already use with Claude Code locally instead of re-encoding it as YAML.
359
+ * A Claude Code settings.json read from a repository and applied to the
360
+ * session. It adds permission rules and other Claude Code settings; rules the
361
+ * platform sets stay in force. Supported models list `settings` in
362
+ * `/v1/account/models`.
310
363
  */
311
364
  interface SettingsRef {
312
365
  path: string;
@@ -319,21 +372,30 @@ interface RepositoryRef {
319
372
  }
320
373
  /**
321
374
  * Native options supported by the current Codex adapter.
322
- *
323
- * Options and capabilities expand only when their runtime behavior is tested.
324
- * Unknown options are rejected instead of silently ignored.
325
375
  */
326
376
  interface CodexConfig {
327
377
  /**
328
378
  * Reasoning effort for every turn. Omit to use the model default.
329
379
  */
330
380
  effort: CodexEffortLevel | null;
381
+ /**
382
+ * The model the session runs on: a Responses-capable id from the models table. Required.
383
+ */
331
384
  model: string;
332
385
  /**
333
386
  * The initial user message, passed verbatim. Omit to start an interactive session with no turn, waiting for a message.
334
387
  */
335
388
  prompt: string | null;
336
389
  }
390
+ /**
391
+ * Conversation settings for a session, set on a saved agent or sent when starting a session or running an agent.
392
+ */
393
+ interface SessionConversationConfig {
394
+ /**
395
+ * 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.
396
+ */
397
+ interactive: boolean;
398
+ }
337
399
  /**
338
400
  * Everything about the environment the agent runs in: which
339
401
  * `repositories` are cloned into it, which environment `variables` it gets,
@@ -454,13 +516,12 @@ interface EnvironmentBaseBuild {
454
516
  run: string;
455
517
  }
456
518
  /**
457
- * One built-in MCP server this agent opts into by name (`linear`/`slack`).
519
+ * One built-in MCP server this agent attaches by name (`linear`/`slack`).
458
520
  * A name reference over the connected built-in set — the platform manages the
459
- * server's transport and credentials. It only matters when the named
460
- * integration is set to `opt_in` inclusion; an integration in the default
461
- * `all_sessions` mode is added regardless. For a server the platform does not
462
- * provide, define it instead (`McpStdioServer` /
463
- * `McpRemoteServer`).
521
+ * server's transport and credentials. A session gets a built-in server only
522
+ * when its config names it here or the session started from that server's
523
+ * own surface. For a server the platform does not provide, define it instead
524
+ * (`McpStdioServer` / `McpRemoteServer`).
464
525
  */
465
526
  interface McpServerRef {
466
527
  name: string;
@@ -524,7 +585,7 @@ interface OutputConfig {
524
585
  * where the agent runs; this is what it may do from there.
525
586
  *
526
587
  * `ellipsis` scopes the session's Ellipsis API token (`ELLIPSIS_API_TOKEN`,
527
- * what the `agent` CLI running inside the session authenticates with).
588
+ * what the `ellipsis` CLI running inside the session authenticates with).
528
589
  * `true` / the string `all` (the default) grant the full session token
529
590
  * ceiling — everything a session token can ever do. A map narrows it per
530
591
  * resource (see `EllipsisPermissions`); the minted token carries
@@ -550,8 +611,8 @@ interface EllipsisPermissions {
550
611
  }
551
612
  /**
552
613
  * One grant entry: a level, optionally narrowed to instances whose
553
- * natural key (a file's name, a memory's path, a secret's name, a config's
554
- * name, a session's id) matches any of the `match` globs.
614
+ * natural key (a file's name, a secret's name, a config's name, a session's
615
+ * id) matches any of the `match` globs.
555
616
  */
556
617
  interface EllipsisGrant {
557
618
  level: Level;
@@ -559,13 +620,13 @@ interface EllipsisGrant {
559
620
  }
560
621
  /**
561
622
  * The agent's GitHub access: the scope of the installation token minted for
562
- * its session's environment — the credential `git`, `gh`, and the GitHub MCP
563
- * server authenticate with.
623
+ * its session's environment — the credential `git` and `gh` authenticate
624
+ * with.
564
625
  *
565
626
  * By default the token carries the installation's full permissions on all of
566
627
  * the installation's repositories. `permissions` narrows what it may do:
567
- * the string `read_only` grants read access to contents, issues, metadata and
568
- * pull requests; a map requests explicit levels per GitHub App permission
628
+ * the string `read_only` grants read access to every scope the installation
629
+ * granted; a map requests explicit levels per GitHub App permission
569
630
  * scope (e.g. `{contents: read, pull_requests: write}`) and may never exceed
570
631
  * what the installation granted. `repositories` scopes the token to exactly
571
632
  * the listed repos, by name (they must belong to the installation).
@@ -589,36 +650,90 @@ interface SkillRef {
589
650
  path: string;
590
651
  repository: RepositoryRef | null;
591
652
  }
653
+ /**
654
+ * A schedule: `schedule` is a five-field cron expression in UTC.
655
+ *
656
+ * `enabled: false` pauses the trigger and keeps its definition: the schedule
657
+ * stops firing while the agent stays live for on-demand starts and open
658
+ * sessions keep taking follow-ups (`ellipsis.enabled: false` pauses the
659
+ * whole file instead). Re-enabling resumes at the next scheduled time; runs
660
+ * missed while paused are not made up.
661
+ */
592
662
  interface CronTrigger {
663
+ enabled: boolean;
593
664
  schedule: string;
594
665
  type: 'cron';
595
666
  }
667
+ /**
668
+ * An event trigger: exactly one surface block names the events to match.
669
+ *
670
+ * `enabled: false` pauses the trigger and keeps its definition: events stop
671
+ * matching while the agent stays live for on-demand starts and open
672
+ * sessions keep taking follow-ups (`ellipsis.enabled: false` pauses the
673
+ * whole file instead).
674
+ */
596
675
  interface ReactTrigger {
676
+ check_run: ReactCheckRun | null;
677
+ check_suite: ReactCheckSuite | null;
678
+ enabled: boolean;
597
679
  issue: ReactIssue | null;
598
680
  linear_issue: ReactLinearIssue | null;
599
681
  pull_request: ReactPullRequest | null;
600
682
  push: ReactPush | null;
683
+ release: ReactRelease | null;
601
684
  sentry: ReactSentry | null;
602
685
  slack_channel: ReactSlackChannel | null;
686
+ status: ReactStatus | null;
603
687
  type: 'react';
688
+ workflow_run: ReactWorkflowRun | null;
604
689
  }
605
- interface ReactIssue {
690
+ /**
691
+ * A check run changing state on a commit. A check run is a GitHub Actions job or a check another CI app reports. `on` lists the states that fire. `names` matches check names exactly or by a prefix ending in `*`. `branch` is the branch the check ran on. `for` is the author of the commit the check ran on. Needs the Checks permission.
692
+ */
693
+ interface ReactCheckRun {
694
+ branch: string[];
606
695
  for: GithubAccountSelector;
607
- labels: string[];
608
- on: IssueAction[];
696
+ names: string[];
697
+ on: CheckRunAction[];
609
698
  repositories: RepositoryFilter;
610
699
  }
611
700
  /**
612
701
  * A selector of GitHub accounts — the `for:` audience gate on react
613
- * surfaces and code review pipelines, classified on the stable entity author
614
- * (the pusher for `push`, the PR author for a review). `users` selects human
702
+ * surfaces, classified on the stable entity author (the pusher for `push`,
703
+ * the PR author for a pull request). `users` selects human
615
704
  * accounts, `bots` selects bot accounts; each is a `GithubAccountFilter`
616
705
  * (include minus exclude, with bare bool/list shorthand).
706
+ *
707
+ * `teams` narrows further to members of any of the listed GitHub teams of
708
+ * the installation's organization, by slug (`platform` for
709
+ * `@org/platform`). It applies on top of `users`: the author must pass the
710
+ * users filter AND belong to a listed team. A bot is never a team member,
711
+ * so a selector with `teams` never admits one. Membership is resolved live
712
+ * at match time (see `TriggerEventContext.is_author_team_member`), and the
713
+ * config sync refuses a team that does not exist when the file is
714
+ * accepted.
617
715
  */
618
716
  interface GithubAccountSelector {
619
717
  bots: GithubAccountFilter;
718
+ teams: string[];
620
719
  users: GithubAccountFilter;
621
720
  }
721
+ /**
722
+ * Every check one CI app reported on a commit finishing. GitHub reports a check suite only when it finishes, so `on` takes only finished states. `apps` matches the reporting app slug, such as `github-actions`, exactly or by a prefix ending in `*`. `branch` and `for` work as on `check_run`. Needs the Checks permission.
723
+ */
724
+ interface ReactCheckSuite {
725
+ apps: string[];
726
+ branch: string[];
727
+ for: GithubAccountSelector;
728
+ on: CheckSuiteAction[];
729
+ repositories: RepositoryFilter;
730
+ }
731
+ interface ReactIssue {
732
+ for: GithubAccountSelector;
733
+ labels: string[];
734
+ on: IssueAction[];
735
+ repositories: RepositoryFilter;
736
+ }
622
737
  interface ReactLinearIssue {
623
738
  for: GithubAccountSelector;
624
739
  on: LinearIssueAction[];
@@ -639,12 +754,47 @@ interface ReactPush {
639
754
  paths: string[];
640
755
  repositories: RepositoryFilter;
641
756
  }
757
+ /**
758
+ * A GitHub release being published — a release or prerelease published
759
+ * directly, or a draft published later. `tag` narrows to the release tags
760
+ * that match (exact, or a prefix ending in `*`, so `v*`); `prerelease`
761
+ * selects prereleases or full releases, like `draft` on pull requests. The
762
+ * `for:` audience is the release's author, which for a release cut by CI is
763
+ * a bot and needs `bots` to opt in.
764
+ */
765
+ interface ReactRelease {
766
+ for: GithubAccountSelector;
767
+ on: ReleaseAction[];
768
+ prerelease: boolean | null;
769
+ repositories: RepositoryFilter;
770
+ tag: string[];
771
+ }
642
772
  interface ReactSentry {
643
773
  on: SentryAction[];
644
774
  projects: string[];
645
775
  }
646
776
  interface ReactSlackChannel {
647
777
  }
778
+ /**
779
+ * A commit status changing state, from CI that posts statuses instead of checks. `names` matches status contexts exactly or by a prefix ending in `*`. `branch` matches when any branch GitHub lists for the commit matches. `for` works as on `check_run`. Needs the Commit statuses permission.
780
+ */
781
+ interface ReactStatus {
782
+ branch: string[];
783
+ for: GithubAccountSelector;
784
+ names: string[];
785
+ on: StatusAction[];
786
+ repositories: RepositoryFilter;
787
+ }
788
+ /**
789
+ * A GitHub Actions workflow run changing state. `names` matches workflow names exactly or by a prefix ending in `*`. `branch` is the branch the run is for. `for` works as on `check_run`. Needs the Actions permission.
790
+ */
791
+ interface ReactWorkflowRun {
792
+ branch: string[];
793
+ for: GithubAccountSelector;
794
+ names: string[];
795
+ on: WorkflowRunAction[];
796
+ repositories: RepositoryFilter;
797
+ }
648
798
  /**
649
799
  * When the session was archived and the GitHub user who archived it.
650
800
  */
@@ -669,6 +819,7 @@ interface GithubAccountSnippet {
669
819
  avatar_url: string;
670
820
  id: number;
671
821
  login: string;
822
+ name: string | null;
672
823
  type: GithubAccountType;
673
824
  }
674
825
  /**
@@ -713,9 +864,13 @@ interface SessionPrompting {
713
864
  surface_name: string | null;
714
865
  }
715
866
  /**
716
- * What the session has cost so far, in millicents, broken down by leg and carrying its own total.
867
+ * What the session has cost so far.
717
868
  */
718
- interface SessionCost {
869
+ interface Cost {
870
+ /**
871
+ * What Ellipsis charged to credit, in millicents. It is everything except subscription tokens, and it is what the budget caps.
872
+ */
873
+ charged: number;
719
874
  /**
720
875
  * CPU spend in millicents.
721
876
  */
@@ -724,16 +879,69 @@ interface SessionCost {
724
879
  * Platform fee in millicents.
725
880
  */
726
881
  fee: number;
727
- /**
728
- * LLM spend in millicents.
729
- */
730
- llm: number;
882
+ llm: LlmCost;
731
883
  /**
732
884
  * Memory spend in millicents.
733
885
  */
734
886
  memory: number;
735
887
  /**
736
- * The grand total in millicents: llm + cpu + memory + fee.
888
+ * Everything it cost, whoever paid, in millicents. It is the sum of llm.all.total, cpu, memory, and fee.
889
+ */
890
+ total: number;
891
+ }
892
+ /**
893
+ * LLM token cost, in total and by model, split by who paid.
894
+ */
895
+ interface LlmCost {
896
+ all: LlmCostSplit;
897
+ /**
898
+ * Token cost for each model that used tokens.
899
+ */
900
+ by_model: ModelLlmCostSplit[];
901
+ }
902
+ /**
903
+ * Token cost across every model.
904
+ */
905
+ interface LlmCostSplit {
906
+ /**
907
+ * Token cost paid by a Claude subscription, at Ellipsis rates, in millicents.
908
+ */
909
+ claude_subscription: number;
910
+ /**
911
+ * Token cost paid by a Codex subscription, at Ellipsis rates, in millicents.
912
+ */
913
+ codex_subscription: number;
914
+ /**
915
+ * Token cost charged to Ellipsis credit, in millicents.
916
+ */
917
+ platform: number;
918
+ /**
919
+ * All token cost, in millicents. It is the sum of platform, claude_subscription, and codex_subscription.
920
+ */
921
+ total: number;
922
+ }
923
+ /**
924
+ * What one model's tokens cost, in millicents, split by who paid.
925
+ */
926
+ interface ModelLlmCostSplit {
927
+ /**
928
+ * Token cost paid by a Claude subscription, at Ellipsis rates, in millicents.
929
+ */
930
+ claude_subscription: number;
931
+ /**
932
+ * Token cost paid by a Codex subscription, at Ellipsis rates, in millicents.
933
+ */
934
+ codex_subscription: number;
935
+ /**
936
+ * The model that used these tokens.
937
+ */
938
+ model: string;
939
+ /**
940
+ * Token cost charged to Ellipsis credit, in millicents.
941
+ */
942
+ platform: number;
943
+ /**
944
+ * All token cost, in millicents. It is the sum of platform, claude_subscription, and codex_subscription.
737
945
  */
738
946
  total: number;
739
947
  }
@@ -848,8 +1056,67 @@ interface GithubPushEvent {
848
1056
  type: 'github.push';
849
1057
  url: string;
850
1058
  }
1059
+ interface GithubCheckRunEvent {
1060
+ action: CheckRunAction;
1061
+ actor: SessionEventActor | null;
1062
+ branch: string | null;
1063
+ conclusion: string | null;
1064
+ head_sha: string;
1065
+ name: string;
1066
+ pull_request_number: number | null;
1067
+ repository: string;
1068
+ type: 'github.check_run';
1069
+ url: string;
1070
+ }
1071
+ interface GithubCheckSuiteEvent {
1072
+ action: CheckSuiteAction;
1073
+ actor: SessionEventActor | null;
1074
+ app: string | null;
1075
+ branch: string | null;
1076
+ conclusion: string | null;
1077
+ head_sha: string;
1078
+ pull_request_number: number | null;
1079
+ repository: string;
1080
+ type: 'github.check_suite';
1081
+ url: string;
1082
+ }
1083
+ interface GithubWorkflowRunEvent {
1084
+ action: WorkflowRunAction;
1085
+ actor: SessionEventActor | null;
1086
+ branch: string | null;
1087
+ conclusion: string | null;
1088
+ head_sha: string;
1089
+ name: string;
1090
+ pull_request_number: number | null;
1091
+ repository: string;
1092
+ run_number: number;
1093
+ type: 'github.workflow_run';
1094
+ url: string;
1095
+ }
1096
+ interface GithubStatusEvent {
1097
+ action: StatusAction;
1098
+ actor: SessionEventActor | null;
1099
+ branch: string | null;
1100
+ context: string;
1101
+ head_sha: string;
1102
+ pull_request_number: number | null;
1103
+ repository: string;
1104
+ state: string;
1105
+ type: 'github.status';
1106
+ url: string;
1107
+ }
1108
+ interface GithubReleaseEvent {
1109
+ action: ReleaseAction;
1110
+ actor: SessionEventActor | null;
1111
+ name: string | null;
1112
+ prerelease: boolean;
1113
+ repository: string;
1114
+ tag: string;
1115
+ type: 'github.release';
1116
+ url: string;
1117
+ }
851
1118
  interface LinearIssueEvent {
852
- action: LinearIssueAction | 'commented';
1119
+ action: LinearIssueAction | ('commented' | 'delegated');
853
1120
  actor: SessionEventActor | null;
854
1121
  identifier: string | null;
855
1122
  number: number;
@@ -957,6 +1224,26 @@ interface SessionHandler {
957
1224
  */
958
1225
  sha: string;
959
1226
  }
1227
+ /**
1228
+ * Structured output on the wire: the contract and, when a turn has
1229
+ * submitted one, the payload. `result` is None while the session runs and
1230
+ * when no turn submitted anything; it is the agent's own JSON, in the
1231
+ * shape of `json_schema`.
1232
+ */
1233
+ interface SessionOutput {
1234
+ /**
1235
+ * JSON Schema the agent's result must satisfy.
1236
+ */
1237
+ json_schema: {
1238
+ [k: string]: unknown;
1239
+ };
1240
+ /**
1241
+ * The payload the agent submitted, or null until a turn submits one.
1242
+ */
1243
+ result: {
1244
+ [k: string]: unknown;
1245
+ } | null;
1246
+ }
960
1247
  /**
961
1248
  * The predecessor session this session continues.
962
1249
  */
@@ -988,9 +1275,19 @@ interface SessionSummary {
988
1275
  description: string;
989
1276
  }
990
1277
  /**
991
- * The tokens the session spent and the model they went to. `total` includes the prompt-cache lanes.
1278
+ * The tokens the session has used so far.
992
1279
  */
993
- interface SessionTokens {
1280
+ interface Tokens {
1281
+ all: TokenCounts;
1282
+ /**
1283
+ * Token counts for each model that used tokens.
1284
+ */
1285
+ by_model: ModelTokenCounts[];
1286
+ }
1287
+ /**
1288
+ * Token counts across every model.
1289
+ */
1290
+ interface TokenCounts {
994
1291
  /**
995
1292
  * Tokens written to the prompt cache.
996
1293
  */
@@ -1004,7 +1301,32 @@ interface SessionTokens {
1004
1301
  */
1005
1302
  input: number;
1006
1303
  /**
1007
- * The model the token counts are attributed to.
1304
+ * Output tokens used.
1305
+ */
1306
+ output: number;
1307
+ /**
1308
+ * All tokens used, including prompt cache reads and writes. Token cost is priced on this.
1309
+ */
1310
+ total: number;
1311
+ }
1312
+ /**
1313
+ * Token counts for one model.
1314
+ */
1315
+ interface ModelTokenCounts {
1316
+ /**
1317
+ * Tokens written to the prompt cache.
1318
+ */
1319
+ cache_creation: number;
1320
+ /**
1321
+ * Tokens read from the prompt cache.
1322
+ */
1323
+ cache_read: number;
1324
+ /**
1325
+ * Input tokens used.
1326
+ */
1327
+ input: number;
1328
+ /**
1329
+ * The model that used these tokens.
1008
1330
  */
1009
1331
  model: string;
1010
1332
  /**
@@ -1012,7 +1334,7 @@ interface SessionTokens {
1012
1334
  */
1013
1335
  output: number;
1014
1336
  /**
1015
- * Total tokens consumed, INCLUDING the prompt-cache reads and writes — the same basis the token cost is priced on.
1337
+ * All tokens used, including prompt cache reads and writes. Token cost is priced on this.
1016
1338
  */
1017
1339
  total: number;
1018
1340
  }
@@ -1023,7 +1345,7 @@ interface SessionTokens {
1023
1345
  * `cancelled`.
1024
1346
  */
1025
1347
  interface SessionTurn {
1026
- cost: SessionCost1;
1348
+ cost: Cost1;
1027
1349
  /**
1028
1350
  * When the turn's message was received.
1029
1351
  */
@@ -1057,12 +1379,16 @@ interface SessionTurn {
1057
1379
  * When and by whom a stop was requested; null when none was.
1058
1380
  */
1059
1381
  stopped: SessionStopped | null;
1060
- tokens: SessionTokens1;
1382
+ tokens: Tokens1;
1061
1383
  }
1062
1384
  /**
1063
1385
  * What the turn cost so far, in millicents, broken down by leg.
1064
1386
  */
1065
- interface SessionCost1 {
1387
+ interface Cost1 {
1388
+ /**
1389
+ * What Ellipsis charged to credit, in millicents. It is everything except subscription tokens, and it is what the budget caps.
1390
+ */
1391
+ charged: number;
1066
1392
  /**
1067
1393
  * CPU spend in millicents.
1068
1394
  */
@@ -1071,16 +1397,13 @@ interface SessionCost1 {
1071
1397
  * Platform fee in millicents.
1072
1398
  */
1073
1399
  fee: number;
1074
- /**
1075
- * LLM spend in millicents.
1076
- */
1077
- llm: number;
1400
+ llm: LlmCost;
1078
1401
  /**
1079
1402
  * Memory spend in millicents.
1080
1403
  */
1081
1404
  memory: number;
1082
1405
  /**
1083
- * The grand total in millicents: llm + cpu + memory + fee.
1406
+ * Everything it cost, whoever paid, in millicents. It is the sum of llm.all.total, cpu, memory, and fee.
1084
1407
  */
1085
1408
  total: number;
1086
1409
  }
@@ -1100,31 +1423,12 @@ interface SessionStopped {
1100
1423
  /**
1101
1424
  * The tokens the turn spent and the model they went to.
1102
1425
  */
1103
- interface SessionTokens1 {
1426
+ interface Tokens1 {
1427
+ all: TokenCounts;
1104
1428
  /**
1105
- * Tokens written to the prompt cache.
1429
+ * Token counts for each model that used tokens.
1106
1430
  */
1107
- cache_creation: number;
1108
- /**
1109
- * Tokens read from the prompt cache.
1110
- */
1111
- cache_read: number;
1112
- /**
1113
- * Input tokens used.
1114
- */
1115
- input: number;
1116
- /**
1117
- * The model the token counts are attributed to.
1118
- */
1119
- model: string;
1120
- /**
1121
- * Output tokens used.
1122
- */
1123
- output: number;
1124
- /**
1125
- * Total tokens consumed, INCLUDING the prompt-cache reads and writes — the same basis the token cost is priced on.
1126
- */
1127
- total: number;
1431
+ by_model: ModelTokenCounts[];
1128
1432
  }
1129
1433
  interface AgentListStreamMessage {
1130
1434
  agents: Agent[];
@@ -1177,6 +1481,10 @@ interface Agent {
1177
1481
  * The open pull request that adds this agent's file. Non-null means the agent is not live yet: it starts running once the pull request merges and syncs.
1178
1482
  */
1179
1483
  pending_pull_request_url: string | null;
1484
+ /**
1485
+ * The agent's YAML: the file as written for agents defined in a repository, or the definition rendered as YAML for agents managed through the API. A failed sync keeps the last valid YAML.
1486
+ */
1487
+ raw_yaml: string;
1180
1488
  /**
1181
1489
  * The definition's content identity: the version fingerprint frozen onto each session that runs it.
1182
1490
  */
@@ -1411,7 +1719,7 @@ declare class EllipsisAccountApiKeys {
1411
1719
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1412
1720
  * Higher permission levels include lower levels: read < write < delete.
1413
1721
  */
1414
- revoke(api_key_id: string): Promise<S['TokenRevokedResponse']>;
1722
+ revoke(id: string): Promise<S['TokenRevokedResponse']>;
1415
1723
  }
1416
1724
  declare class EllipsisAccountBillingAutoRecharge {
1417
1725
  private readonly transport;
@@ -1439,8 +1747,8 @@ declare class EllipsisAccountBillingAutoRecharge {
1439
1747
  * Requires a human account administrator; API keys and session tokens
1440
1748
  * cannot change this policy. Supply enabled explicitly. Saving amounts
1441
1749
  * with enabled=false keeps recharge off; enabling requires a saved card.
1442
- * A recharge buys amount_cents of credit and charges the platform fee
1443
- * in addition. Amounts and thresholds preserve exact cents.
1750
+ * A recharge buys `amount` of credit and charges the platform fee in
1751
+ * addition. Amounts and thresholds are millicents in whole cents.
1444
1752
  *
1445
1753
  * Required permissions: write:account.
1446
1754
  * API key: Requires a CLI user token belonging to an account administrator.
@@ -1449,9 +1757,9 @@ declare class EllipsisAccountBillingAutoRecharge {
1449
1757
  * Higher permission levels include lower levels: read < write < delete.
1450
1758
  */
1451
1759
  set(options: {
1452
- amount_cents: number;
1760
+ amount: number;
1453
1761
  enabled: boolean;
1454
- threshold_cents: number;
1762
+ threshold: number;
1455
1763
  }): Promise<S['AutoRechargeSettings']>;
1456
1764
  }
1457
1765
  declare class EllipsisAccountBilling {
@@ -1481,7 +1789,7 @@ declare class EllipsisAccountBilling {
1481
1789
  *
1482
1790
  * Requires a human account administrator. Open the returned URL to
1483
1791
  * complete payment. Credit is granted only after payment succeeds;
1484
- * the platform fee is charged in addition to amount_cents. Returning
1792
+ * the platform fee is charged in addition to `amount`. Returning
1485
1793
  * to Billing carries the checkout session ID for receipt lookup.
1486
1794
  *
1487
1795
  * Required permissions: write:account.
@@ -1491,7 +1799,7 @@ declare class EllipsisAccountBilling {
1491
1799
  * Higher permission levels include lower levels: read < write < delete.
1492
1800
  */
1493
1801
  checkout(options: {
1494
- amount_cents: number;
1802
+ amount: number;
1495
1803
  }): Promise<S['BillingCheckout']>;
1496
1804
  /**
1497
1805
  * Claim Signup Credit
@@ -1511,7 +1819,7 @@ declare class EllipsisAccountBilling {
1511
1819
  /**
1512
1820
  * Get Fee Schedule
1513
1821
  *
1514
- * Get the account's rate card, in US dollars.
1822
+ * Get the account's rate card, in millicents.
1515
1823
  *
1516
1824
  * Required permissions: read:account.
1517
1825
  * API key: Supported.
@@ -1549,13 +1857,13 @@ declare class EllipsisAccountBilling {
1549
1857
  * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1550
1858
  * Higher permission levels include lower levels: read < write < delete.
1551
1859
  */
1552
- purchase(checkout_id: string): Promise<S['CreditPurchaseReceipt']>;
1860
+ purchase(id: string): Promise<S['CreditPurchaseReceipt']>;
1553
1861
  /**
1554
1862
  * Get Credit Purchase Options
1555
1863
  *
1556
1864
  * Get credit purchase bounds and the platform fee.
1557
1865
  *
1558
- * All amounts are integer US cents. The fee is added to the credit
1866
+ * All amounts are in millicents. The fee is added to the credit
1559
1867
  * amount; it does not reduce the credit granted.
1560
1868
  *
1561
1869
  * Required permissions: read:account.
@@ -1571,7 +1879,7 @@ declare class EllipsisAccountBilling {
1571
1879
  * Explain whether your account can start sessions.
1572
1880
  *
1573
1881
  * Uses the same account gate as session admission, including credit,
1574
- * contact email, and personal Claude subscription eligibility. Scoped
1882
+ * contact email, and personal subscription eligibility. Scoped
1575
1883
  * spend limits are reported separately by /v1/account/budget.
1576
1884
  *
1577
1885
  * Required permissions: read:account.
@@ -1591,13 +1899,11 @@ declare class EllipsisAccountModels {
1591
1899
  * List selectable agent models.
1592
1900
  *
1593
1901
  * Grouped by manufacturer and model family, newest versions first
1594
- * within each family, with the organization's default model
1595
- * flagged (`is_default_agent_model`: the `default_model` of
1596
- * `GET /v1/account/settings`).
1902
+ * within each family.
1597
1903
  *
1598
1904
  * Reads the same registry as the dashboard's rate table, so a
1599
1905
  * client's model picker can never drift from what's offered. The
1600
- * selectable set is global; only the flag is account-scoped.
1906
+ * selectable set is global.
1601
1907
  *
1602
1908
  * Required permissions: read:templates.
1603
1909
  * API key: Supported.
@@ -1662,62 +1968,12 @@ declare class EllipsisAccountOnboarding {
1662
1968
  * Higher permission levels include lower levels: read < write < delete.
1663
1969
  */
1664
1970
  update(options?: {
1971
+ finished?: boolean;
1665
1972
  other_use_case?: string | null;
1666
1973
  use_cases?: (S['AccountOnboardingUseCase'])[];
1667
1974
  work_email?: string | null;
1668
1975
  }): Promise<S['AccountOnboardingResponse']>;
1669
1976
  }
1670
- declare class EllipsisAccountProvidersAnthropic {
1671
- private readonly transport;
1672
- constructor(transport: Transport);
1673
- /**
1674
- * Delete Anthropic Config
1675
- *
1676
- * Required permissions: delete:account.
1677
- * API key: Supported.
1678
- * CLI user token: Supported.
1679
- * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1680
- * Higher permission levels include lower levels: read < write < delete.
1681
- */
1682
- delete(): Promise<void>;
1683
- /**
1684
- * Get Anthropic Config
1685
- *
1686
- * Required permissions: read:account.
1687
- * API key: Supported.
1688
- * CLI user token: Supported.
1689
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1690
- * Higher permission levels include lower levels: read < write < delete.
1691
- */
1692
- get(): Promise<S['AnthropicConfigResponse']>;
1693
- /**
1694
- * Put Anthropic Config
1695
- *
1696
- * Required permissions: write:account.
1697
- * API key: Supported.
1698
- * CLI user token: Supported.
1699
- * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1700
- * Higher permission levels include lower levels: read < write < delete.
1701
- */
1702
- set(options: {
1703
- api_key: string;
1704
- }): Promise<S['AnthropicConfigResponse']>;
1705
- /**
1706
- * Validate Anthropic Config
1707
- *
1708
- * Required permissions: write:account.
1709
- * API key: Supported.
1710
- * CLI user token: Supported.
1711
- * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1712
- * Higher permission levels include lower levels: read < write < delete.
1713
- */
1714
- validate(): Promise<S['ValidateAnthropicConfigResponse']>;
1715
- }
1716
- declare class EllipsisAccountProviders {
1717
- private readonly transport;
1718
- readonly anthropic: EllipsisAccountProvidersAnthropic;
1719
- constructor(transport: Transport);
1720
- }
1721
1977
  declare class EllipsisAccountSettings {
1722
1978
  private readonly transport;
1723
1979
  constructor(transport: Transport);
@@ -1726,9 +1982,9 @@ declare class EllipsisAccountSettings {
1726
1982
  *
1727
1983
  * Get the organization settings.
1728
1984
  *
1729
- * Session model and budget defaults, code review and mention behavior,
1730
- * analytics, retention, and notification contacts. PATCH replaces
1731
- * supplied sections; PUT preserves its model-and-budget-only behavior.
1985
+ * Session budget ceiling, mention behavior, analytics,
1986
+ * retention, and notification contacts. PATCH replaces
1987
+ * supplied sections; PUT sets the budget ceiling only.
1732
1988
  *
1733
1989
  * Required permissions: read:defaults.
1734
1990
  * API key: Supported.
@@ -1742,13 +1998,10 @@ declare class EllipsisAccountSettings {
1742
1998
  *
1743
1999
  * Set the organization settings.
1744
2000
  *
1745
- * Replaces both: `default_model` accepts an alias or canonical id
1746
- * and is stored canonical, and cannot be cleared (it is the only
1747
- * default a session's model resolves against);
1748
- * `budget_ceiling.session` is in US dollars, at most the platform
2001
+ * `budget_ceiling.session` is in millicents, at most the platform
1749
2002
  * ceiling, and null clears it.
1750
2003
  * Refused for session tokens (potentially prompt-injected code must
1751
- * not repoint the organization's defaults).
2004
+ * not raise the organization's ceiling).
1752
2005
  *
1753
2006
  * Required permissions: write:defaults.
1754
2007
  * API key: Requires a CLI user token belonging to an account administrator.
@@ -1756,29 +2009,26 @@ declare class EllipsisAccountSettings {
1756
2009
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1757
2010
  * Higher permission levels include lower levels: read < write < delete.
1758
2011
  */
1759
- set(options: {
2012
+ set(options?: {
1760
2013
  budget_ceiling?: S['BudgetCeiling'];
1761
- default_model: string;
1762
2014
  }): Promise<S['OrganizationSettings']>;
1763
2015
  /**
1764
2016
  * Patch Account Settings
1765
2017
  *
1766
2018
  * Replace supplied settings sections without changing omitted sections.
1767
2019
  *
1768
- * Changes to model or budget defaults require a GitHub administrator.
2020
+ * Changes to the budget ceiling require a GitHub administrator.
1769
2021
  *
1770
2022
  * Required permissions: write:defaults.
1771
- * 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.
1772
- * CLI user token: Requires an account administrator when setting budget_ceiling, default_model to a non-null value.
2023
+ * API key: Cannot set budget_ceiling to a non-null value; those changes require a CLI user token belonging to an account administrator.
2024
+ * CLI user token: Requires an account administrator when setting budget_ceiling to a non-null value.
1773
2025
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1774
2026
  * Higher permission levels include lower levels: read < write < delete.
1775
2027
  */
1776
2028
  update(options?: {
1777
- analytics?: S['AnalyticsSettings'] | null;
2029
+ analytics?: S['AnalyticsSettings-Input'] | null;
1778
2030
  budget_ceiling?: S['BudgetCeiling'] | null;
1779
- code_review?: S['CodeReviewSettings'] | null;
1780
- data_retention?: S['DataRetentionSettings'] | null;
1781
- default_model?: string | null;
2031
+ data_retention?: S['DataRetentionSettings-Input'] | null;
1782
2032
  notifications?: S['NotificationSettings'] | null;
1783
2033
  }): Promise<S['AccountSettings']>;
1784
2034
  }
@@ -1789,7 +2039,6 @@ declare class EllipsisAccount {
1789
2039
  readonly models: EllipsisAccountModels;
1790
2040
  readonly notifications: EllipsisAccountNotifications;
1791
2041
  readonly onboarding: EllipsisAccountOnboarding;
1792
- readonly providers: EllipsisAccountProviders;
1793
2042
  readonly settings: EllipsisAccountSettings;
1794
2043
  constructor(transport: Transport);
1795
2044
  /**
@@ -1873,13 +2122,13 @@ declare class EllipsisAccount {
1873
2122
  /**
1874
2123
  * Get Usage
1875
2124
  *
1876
- * Get usage for a calendar month, including its funding sources.
2125
+ * Get usage for a calendar month, split by billing source.
1877
2126
  *
1878
- * Omit period_start for the current UTC month; select a period returned
1879
- * in billing_periods to view history. Credit debits are distinct from
1880
- * rated token usage through BYOK or a developer's Claude or Codex
1881
- * subscription. Rated usage estimates are not provider invoices.
1882
- * Pending and unresolved requests identify missing measurements.
2127
+ * Omit period_start for the current UTC month. Pass a period from
2128
+ * billing_periods to view history. Platform usage is charged to
2129
+ * Ellipsis credit. Tokens paid by a developer's Claude or Codex
2130
+ * subscription show their cost at Ellipsis rates and charge no
2131
+ * credit. Pending and unresolved requests are missing measurements.
1883
2132
  *
1884
2133
  * Required permissions: read:account.
1885
2134
  * API key: Supported.
@@ -1899,7 +2148,7 @@ declare class EllipsisAgents {
1899
2148
  *
1900
2149
  * Create an agent, managed through the API: no file, live
1901
2150
  * immediately. To put its definition in a repository instead, create
1902
- * it here and then POST /v1/agents/{agent_id}/link.
2151
+ * it here and then POST /v1/agents/{id}/link.
1903
2152
  *
1904
2153
  * 409 when another live agent already holds the name.
1905
2154
  *
@@ -1929,7 +2178,7 @@ declare class EllipsisAgents {
1929
2178
  * Higher permission levels include lower levels: read < write < delete.
1930
2179
  * Grant match patterns can further restrict access to individual resources.
1931
2180
  */
1932
- delete(agent_id: string): Promise<void>;
2181
+ delete(id: string): Promise<void>;
1933
2182
  /**
1934
2183
  * Get Agent
1935
2184
  *
@@ -1942,7 +2191,7 @@ declare class EllipsisAgents {
1942
2191
  * Higher permission levels include lower levels: read < write < delete.
1943
2192
  * Grant match patterns can further restrict access to individual resources.
1944
2193
  */
1945
- get(agent_id: string): Promise<S['AgentResponse']>;
2194
+ get(id: string): Promise<S['AgentResponse']>;
1946
2195
  /**
1947
2196
  * Link Agent
1948
2197
  *
@@ -1960,7 +2209,7 @@ declare class EllipsisAgents {
1960
2209
  * Higher permission levels include lower levels: read < write < delete.
1961
2210
  * Grant match patterns can further restrict access to individual resources.
1962
2211
  */
1963
- link(agent_id: string, options: {
2212
+ link(id: string, options: {
1964
2213
  path?: string | null;
1965
2214
  repository: string;
1966
2215
  }): Promise<S['LinkAgentResponse']>;
@@ -1995,21 +2244,23 @@ declare class EllipsisAgents {
1995
2244
  * Higher permission levels include lower levels: read < write < delete.
1996
2245
  * Grant match patterns can further restrict access to individual resources.
1997
2246
  */
1998
- metrics(agent_id: string): Promise<S['AgentMetricsResponse']>;
2247
+ metrics(id: string): Promise<S['AgentMetricsResponse']>;
1999
2248
  /**
2000
2249
  * Start Agent Session
2001
2250
  *
2002
- * Invoke an agent.
2251
+ * Start an agent session.
2003
2252
  *
2004
- * Runs a certified agent with its configured instructions, model,
2005
- * environment, permissions, skills, and budget, and returns
2006
- * the session it started. The session runs once and does not accept
2007
- * follow-up messages. If the agent declares input.json_schema,
2008
- * send only `input` for its initial message. Otherwise send a non-empty
2009
- * `prompt`, which becomes the initial message verbatim. Both fields
2010
- * together, neither field, and input that renders an empty message are
2011
- * rejected with 422. An optional `budget` lowers the session cap;
2012
- * `metadata` tags the session. Codex invocations are not supported.
2253
+ * Starts a session from the agent's saved `session` settings and
2254
+ * returns it. The body takes the fields of POST /v1/sessions, all
2255
+ * optional: each field you send replaces the agent's value for that
2256
+ * field, and each field you leave out keeps it. `metadata` is merged
2257
+ * into the agent's key by key, and a `null` value removes a key.
2258
+ * Other lists and maps, and `environment`, are replaced whole;
2259
+ * naming the other harness replaces the agent's. An empty body starts
2260
+ * the agent as written. If the agent declares input.json_schema, send
2261
+ * `input`; its rendered message is added after the prompt. A run-once
2262
+ * session needs a prompt or `input` from the agent or the request, or
2263
+ * the call is a 400.
2013
2264
  *
2014
2265
  * Required permissions: write:sessions.
2015
2266
  * API key: Supported.
@@ -2018,11 +2269,19 @@ declare class EllipsisAgents {
2018
2269
  * Higher permission levels include lower levels: read < write < delete.
2019
2270
  * Grant match patterns can further restrict access to individual resources.
2020
2271
  */
2021
- run(agent_id: string, options?: {
2022
- budget?: number | null;
2272
+ start(id: string, options?: {
2273
+ budget?: S['RunBudget'] | null;
2274
+ claude_code?: S['ClaudeOverrides'] | null;
2275
+ codex?: S['CodexOverrides'] | null;
2276
+ conversation?: S['SessionConversationConfig-Input'];
2277
+ environment?: string | S['EnvironmentConfig-Input'] | null;
2278
+ force_rebuild?: boolean;
2279
+ images?: (S['ImageAttachment'])[];
2023
2280
  input?: Record<string, unknown> | null;
2024
- metadata?: Record<string, string>;
2025
- prompt?: string | null;
2281
+ metadata?: Record<string, string | null>;
2282
+ output?: S['OutputConfig'] | null;
2283
+ permissions?: S['PermissionsConfig-Input'] | null;
2284
+ skills?: (S['SkillRef-Input'])[] | null;
2026
2285
  }): Promise<S['SessionResponse']>;
2027
2286
  /**
2028
2287
  * Get Agents Stream Ticket
@@ -2051,7 +2310,7 @@ declare class EllipsisAgents {
2051
2310
  * Higher permission levels include lower levels: read < write < delete.
2052
2311
  * Grant match patterns can further restrict access to individual resources.
2053
2312
  */
2054
- unlink(agent_id: string): Promise<S['AgentResponse']>;
2313
+ unlink(id: string): Promise<S['AgentResponse']>;
2055
2314
  /**
2056
2315
  * Update Agent
2057
2316
  *
@@ -2069,7 +2328,7 @@ declare class EllipsisAgents {
2069
2328
  * Higher permission levels include lower levels: read < write < delete.
2070
2329
  * Grant match patterns can further restrict access to individual resources.
2071
2330
  */
2072
- update(agent_id: string, options: {
2331
+ update(id: string, options: {
2073
2332
  agent: S['AgentConfig-Input'];
2074
2333
  }): Promise<S['AgentResponse']>;
2075
2334
  }
@@ -2089,7 +2348,7 @@ declare class EllipsisAlerts {
2089
2348
  * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2090
2349
  * Higher permission levels include lower levels: read < write < delete.
2091
2350
  */
2092
- dismiss(alert_id: string): Promise<S['AlertResponse']>;
2351
+ dismiss(id: string): Promise<S['AlertResponse']>;
2093
2352
  /**
2094
2353
  * Get Alert
2095
2354
  *
@@ -2103,7 +2362,7 @@ declare class EllipsisAlerts {
2103
2362
  * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2104
2363
  * Higher permission levels include lower levels: read < write < delete.
2105
2364
  */
2106
- get(alert_id: string): Promise<S['AlertResponse']>;
2365
+ get(id: string): Promise<S['AlertResponse']>;
2107
2366
  /**
2108
2367
  * List Alerts
2109
2368
  *
@@ -2184,7 +2443,7 @@ declare class EllipsisAnalytics {
2184
2443
  /**
2185
2444
  * Get Analytics Reviews
2186
2445
  *
2187
- * Return code-review analytics.
2446
+ * Return pull request review analytics.
2188
2447
  *
2189
2448
  * account_type scopes reviewers (bot|user|all) — e.g. "what apps
2190
2449
  * review the most PRs?" is the reviewer facets here with
@@ -2278,7 +2537,7 @@ declare class EllipsisEnvironments {
2278
2537
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2279
2538
  * Higher permission levels include lower levels: read < write < delete.
2280
2539
  */
2281
- delete(environment_id: string): Promise<void>;
2540
+ delete(id: string): Promise<void>;
2282
2541
  /**
2283
2542
  * Get Environment
2284
2543
  *
@@ -2290,7 +2549,7 @@ declare class EllipsisEnvironments {
2290
2549
  * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2291
2550
  * Higher permission levels include lower levels: read < write < delete.
2292
2551
  */
2293
- get(environment_id: string): Promise<S['EnvironmentResponse']>;
2552
+ get(id: string): Promise<S['EnvironmentResponse']>;
2294
2553
  /**
2295
2554
  * List Environments
2296
2555
  *
@@ -2319,7 +2578,7 @@ declare class EllipsisEnvironments {
2319
2578
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2320
2579
  * Higher permission levels include lower levels: read < write < delete.
2321
2580
  */
2322
- update(environment_id: string, options: {
2581
+ update(id: string, options: {
2323
2582
  environment: S['EnvironmentDocument-Input'];
2324
2583
  }): Promise<S['EnvironmentResponse']>;
2325
2584
  }
@@ -2373,7 +2632,7 @@ declare class EllipsisHandlers {
2373
2632
  * Higher permission levels include lower levels: read < write < delete.
2374
2633
  * Grant match patterns can further restrict access to individual resources.
2375
2634
  */
2376
- metrics(handler_id: string, options?: {
2635
+ metrics(id: string, options?: {
2377
2636
  start?: string | null;
2378
2637
  end?: string | null;
2379
2638
  }): Promise<S['HandlerMetricsResponse']>;
@@ -2459,7 +2718,6 @@ declare class EllipsisIntegrationsLinear {
2459
2718
  * Higher permission levels include lower levels: read < write < delete.
2460
2719
  */
2461
2720
  updateSettings(options: {
2462
- mcp_inclusion?: S['McpInclusionMode'] | null;
2463
2721
  teams: (S['LinearTeamUpdate'])[];
2464
2722
  }): Promise<S['AccountActionResponse']>;
2465
2723
  }
@@ -2475,7 +2733,7 @@ declare class EllipsisIntegrationsSentry {
2475
2733
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2476
2734
  * Higher permission levels include lower levels: read < write < delete.
2477
2735
  */
2478
- delete(integration_id: string): Promise<S['AccountActionResponse']>;
2736
+ delete(id: string): Promise<S['AccountActionResponse']>;
2479
2737
  /**
2480
2738
  * List Sentry Organizations
2481
2739
  *
@@ -2538,18 +2796,6 @@ declare class EllipsisIntegrationsSlack {
2538
2796
  * Higher permission levels include lower levels: read < write < delete.
2539
2797
  */
2540
2798
  members(): Promise<S['SlackMembersListResponse']>;
2541
- /**
2542
- * Update Slack Settings
2543
- *
2544
- * Required permissions: write:integrations.
2545
- * API key: Supported.
2546
- * CLI user token: Supported.
2547
- * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
2548
- * Higher permission levels include lower levels: read < write < delete.
2549
- */
2550
- updateSettings(options: {
2551
- mcp_inclusion: S['McpInclusionMode'];
2552
- }): Promise<S['AccountActionResponse']>;
2553
2799
  }
2554
2800
  declare class EllipsisIntegrations {
2555
2801
  private readonly transport;
@@ -2578,166 +2824,30 @@ declare class EllipsisIntegrations {
2578
2824
  */
2579
2825
  list(): Promise<S['GetIntegrationsResponse']>;
2580
2826
  }
2581
- declare class EllipsisMemories {
2827
+ declare class EllipsisReviewsConfigs {
2582
2828
  private readonly transport;
2583
2829
  constructor(transport: Transport);
2584
2830
  /**
2585
- * Create Memory
2586
- *
2587
- * Save a memory for future agent sessions.
2588
- *
2589
- * Memories are durable lessons shared across the whole
2590
- * organization — conventions, past decisions, known gotchas that an
2591
- * agent cannot derive from the repository itself. One concise fact
2592
- * per memory; the description is what a reader sees in the index.
2593
- *
2594
- * Creating never overwrites: a path that already exists is a 409, so
2595
- * correcting an existing memory is an explicit edit.
2596
- *
2597
- * Required permissions: write:memories.
2598
- * API key: Supported.
2599
- * CLI user token: Supported.
2600
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2601
- * Higher permission levels include lower levels: read < write < delete.
2602
- * Grant match patterns can further restrict access to individual resources.
2603
- */
2604
- create(options: {
2605
- content: string;
2606
- description: string;
2607
- path: string;
2608
- }): Promise<S['MemoryResponse']>;
2609
- /**
2610
- * Delete Memory
2611
- *
2612
- * Delete a memory that is no longer true.
2613
- *
2614
- * Available to every credential type, agents included — a wrong
2615
- * memory is worse than a missing one. The deleted content is kept in
2616
- * the memory's history for forensics, not for an undo API.
2617
- *
2618
- * Required permissions: delete:memories.
2619
- * API key: Supported.
2620
- * CLI user token: Supported.
2621
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2622
- * Higher permission levels include lower levels: read < write < delete.
2623
- * Grant match patterns can further restrict access to individual resources.
2624
- */
2625
- delete(memory_id: string, options?: {
2626
- if_sha256?: string | null;
2627
- }): Promise<void>;
2628
- /**
2629
- * Edit Memory
2630
- *
2631
- * Correct an existing memory in place.
2632
- *
2633
- * Pass description, content, or both. This never creates a memory (an
2634
- * unknown id is a 404) and never moves one — the path is immutable, so
2635
- * relocating a memory is a delete plus a create.
2636
- *
2637
- * Pass `if_sha256` (from a previous read) to make a concurrent write
2638
- * a 409 instead of silently overwriting it.
2639
- *
2640
- * Required permissions: write:memories.
2641
- * API key: Supported.
2642
- * CLI user token: Supported.
2643
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2644
- * Higher permission levels include lower levels: read < write < delete.
2645
- * Grant match patterns can further restrict access to individual resources.
2646
- */
2647
- edit(memory_id: string, options?: {
2648
- content?: string | null;
2649
- description?: string | null;
2650
- if_sha256?: string | null;
2651
- }): Promise<S['MemoryResponse']>;
2652
- /**
2653
- * Get Memory
2654
- *
2655
- * Read one memory's full content.
2656
- *
2657
- * The id comes from the index returned by listing memories.
2658
- *
2659
- * Required permissions: read:memories.
2660
- * API key: Supported.
2661
- * CLI user token: Supported.
2662
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2663
- * Higher permission levels include lower levels: read < write < delete.
2664
- * Grant match patterns can further restrict access to individual resources.
2665
- */
2666
- get(memory_id: string): Promise<S['MemoryResponse']>;
2667
- /**
2668
- * List Memories
2669
- *
2670
- * List the organization's memories as a readable index.
2831
+ * List Review Configs
2671
2832
  *
2672
- * Returns the memories rendered as a markdown index (one line per
2673
- * memory, carrying its id, path, and description) plus the same
2674
- * entries structured, each with every field except `content`. Read
2675
- * the index, then fetch the ids whose content you want.
2833
+ * List code review configs: every kind: code_review file synced from a repository, newest first.
2676
2834
  *
2677
- * Required permissions: read:memories.
2835
+ * Required permissions: read:reviews.
2678
2836
  * API key: Supported.
2679
2837
  * CLI user token: Supported.
2680
2838
  * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2681
2839
  * Higher permission levels include lower levels: read < write < delete.
2682
- * Grant match patterns can further restrict access to individual resources.
2683
2840
  */
2684
- list(options?: {
2685
- prefix?: string | null;
2686
- }): Promise<S['MemoriesListResponse']>;
2841
+ list(): Promise<S['ReviewConfigsListResponse']>;
2687
2842
  }
2688
2843
  declare class EllipsisReviews {
2689
2844
  private readonly transport;
2845
+ readonly configs: EllipsisReviewsConfigs;
2690
2846
  constructor(transport: Transport);
2691
- /**
2692
- * List Review Configs
2693
- *
2694
- * Required permissions: read:reviews.
2695
- * API key: Supported.
2696
- * CLI user token: Supported.
2697
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2698
- * Higher permission levels include lower levels: read < write < delete.
2699
- */
2700
- configs(): Promise<S['GetCodeReviewConfigsResponse']>;
2701
- /**
2702
- * Create Review
2703
- *
2704
- * Run a code review on demand.
2705
- *
2706
- * Reviews an open pull request. Which pipeline runs is not a
2707
- * parameter: it resolves from the repository's files exactly as
2708
- * it does for a push, so an on-demand review never disagrees with
2709
- * the automatic one.
2710
- *
2711
- * A review is one pipeline run over one commit range, with one
2712
- * agent session per stage: `review.id` is the review id, and
2713
- * `stages[].session_id` is where a client streams
2714
- * (/sessions/{id}/stream on a stage session), since the review
2715
- * itself is a pipeline rather than one process.
2716
- *
2717
- * Required permissions: write:reviews.
2718
- * API key: Supported.
2719
- * CLI user token: Supported.
2720
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2721
- * Higher permission levels include lower levels: read < write < delete.
2722
- */
2723
- create(options: {
2724
- owner: string;
2725
- post?: boolean;
2726
- pull_request_number: number;
2727
- repo: string;
2728
- scope?: S['ReviewScope'];
2729
- }): Promise<S['Review']>;
2730
2847
  /**
2731
2848
  * Get Review
2732
2849
  *
2733
- * Return one review with findings and outcome.
2734
- *
2735
- * Includes its scope, the per-stage sessions, the parsed findings,
2736
- * the finding counters, and the posting outcome.
2737
- *
2738
- * Findings only exist after a stage session finalizes — a running
2739
- * review honestly reports [] / null, which is why a client
2740
- * streams a stage session and then re-fetches the review.
2850
+ * Get a code review: its reviewers and every comment they returned, posted or held back.
2741
2851
  *
2742
2852
  * Required permissions: read:reviews.
2743
2853
  * API key: Supported.
@@ -2745,20 +2855,12 @@ declare class EllipsisReviews {
2745
2855
  * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2746
2856
  * Higher permission levels include lower levels: read < write < delete.
2747
2857
  */
2748
- get(review_id: string): Promise<S['Review']>;
2858
+ get(id: string): Promise<S['Review']>;
2749
2859
  /**
2750
2860
  * List Reviews
2751
2861
  *
2752
2862
  * List code reviews, newest first.
2753
2863
  *
2754
- * `findings` and `configuration` are omitted (counters only). Each
2755
- * filter is a set: repeat `repository`, `pull_request_number`, or
2756
- * `status` to match any of several values. `start` and `end` bound
2757
- * the review's creation time.
2758
- *
2759
- * Webhook-created reviews appear here too, so this answers "show
2760
- * me every review on this PR".
2761
- *
2762
2864
  * Required permissions: read:reviews.
2763
2865
  * API key: Supported.
2764
2866
  * CLI user token: Supported.
@@ -2766,14 +2868,14 @@ declare class EllipsisReviews {
2766
2868
  * Higher permission levels include lower levels: read < write < delete.
2767
2869
  */
2768
2870
  list(options?: {
2769
- repository?: (string)[];
2770
- pull_request_number?: (number)[];
2771
- status?: (S['CodeReviewRunStatus'])[];
2871
+ repository?: (string)[] | null;
2872
+ pull_request_number?: (number)[] | null;
2873
+ status?: (S['CodeReviewStatus'])[] | null;
2772
2874
  start?: string | null;
2773
2875
  end?: string | null;
2774
2876
  limit?: number;
2775
2877
  cursor?: string | null;
2776
- }): Promise<Page<S['Review'], S['ReviewsListResponse']>>;
2878
+ }): Promise<Page<S['ReviewSummary'], S['ReviewsListResponse']>>;
2777
2879
  }
2778
2880
  declare class EllipsisSecrets {
2779
2881
  private readonly transport;
@@ -2849,7 +2951,7 @@ declare class EllipsisSessionsTurns {
2849
2951
  * Higher permission levels include lower levels: read < write < delete.
2850
2952
  * Grant match patterns can further restrict access to individual resources.
2851
2953
  */
2852
- get(session_id: string, turn_id: string): Promise<S['SessionTurnResponse']>;
2954
+ get(session_id: string, id: string): Promise<S['SessionTurnResponse']>;
2853
2955
  /**
2854
2956
  * Get Session Turns
2855
2957
  *
@@ -2866,7 +2968,7 @@ declare class EllipsisSessionsTurns {
2866
2968
  * Higher permission levels include lower levels: read < write < delete.
2867
2969
  * Grant match patterns can further restrict access to individual resources.
2868
2970
  */
2869
- list(session_id: string): Promise<S['SessionTurnsListResponse']>;
2971
+ list(id: string): Promise<S['SessionTurnsListResponse']>;
2870
2972
  }
2871
2973
  declare class EllipsisSessions {
2872
2974
  private readonly transport;
@@ -2892,7 +2994,7 @@ declare class EllipsisSessions {
2892
2994
  * Higher permission levels include lower levels: read < write < delete.
2893
2995
  * Grant match patterns can further restrict access to individual resources.
2894
2996
  */
2895
- analytics(session_id: string): Promise<S['SessionAnalytics']>;
2997
+ analytics(id: string): Promise<S['SessionAnalytics']>;
2896
2998
  /**
2897
2999
  * Get Session Diff
2898
3000
  *
@@ -2911,7 +3013,7 @@ declare class EllipsisSessions {
2911
3013
  * Higher permission levels include lower levels: read < write < delete.
2912
3014
  * Grant match patterns can further restrict access to individual resources.
2913
3015
  */
2914
- diff(session_id: string): Promise<S['SessionDiffResponse']>;
3016
+ diff(id: string): Promise<S['SessionDiffResponse']>;
2915
3017
  /**
2916
3018
  * Download Session
2917
3019
  *
@@ -2933,7 +3035,7 @@ declare class EllipsisSessions {
2933
3035
  * Higher permission levels include lower levels: read < write < delete.
2934
3036
  * Grant match patterns can further restrict access to individual resources.
2935
3037
  */
2936
- download(session_id: string): Promise<S['GetSessionLogResponse']>;
3038
+ download(id: string): Promise<S['GetSessionLogResponse']>;
2937
3039
  /**
2938
3040
  * Get Session
2939
3041
  *
@@ -2953,7 +3055,7 @@ declare class EllipsisSessions {
2953
3055
  * Higher permission levels include lower levels: read < write < delete.
2954
3056
  * Grant match patterns can further restrict access to individual resources.
2955
3057
  */
2956
- get(session_id: string): Promise<S['SessionResponse']>;
3058
+ get(id: string): Promise<S['SessionResponse']>;
2957
3059
  /**
2958
3060
  * Get Session Git
2959
3061
  *
@@ -2969,7 +3071,7 @@ declare class EllipsisSessions {
2969
3071
  * Higher permission levels include lower levels: read < write < delete.
2970
3072
  * Grant match patterns can further restrict access to individual resources.
2971
3073
  */
2972
- git(session_id: string): Promise<S['SessionGitResponse']>;
3074
+ git(id: string): Promise<S['SessionGitResponse']>;
2973
3075
  /**
2974
3076
  * Ingest Session Transcript
2975
3077
  *
@@ -2988,7 +3090,7 @@ declare class EllipsisSessions {
2988
3090
  * Higher permission levels include lower levels: read < write < delete.
2989
3091
  * Grant match patterns can further restrict access to individual resources.
2990
3092
  */
2991
- ingestTranscript(session_id: string, options: {
3093
+ ingestTranscript(id: string, options: {
2992
3094
  lines: (string)[];
2993
3095
  offset?: number;
2994
3096
  }): Promise<S['TranscriptIngestResult']>;
@@ -3021,27 +3123,23 @@ declare class EllipsisSessions {
3021
3123
  author_id?: number | null;
3022
3124
  repo?: string | null;
3023
3125
  unfinished?: boolean;
3024
- exclude_code_review?: boolean;
3025
3126
  }): Promise<Page<S['Session'], S['SessionsListResponse']>>;
3026
3127
  /**
3027
- * Get Session Output
3128
+ * Get Session Metrics
3028
3129
  *
3029
- * Return the session's typed output.
3130
+ * List the CPU, memory, swap, and disk readings of every VM the
3131
+ * session ran on, oldest first.
3030
3132
  *
3031
- * The payload the agent submitted through its config-declared
3032
- * output.json_schema, as the raw JSON body with no envelope. 404
3033
- * while the session is still running (poll GET /v1/sessions/{id}),
3034
- * when the agent declares no output block, or when no turn
3035
- * produced output.
3133
+ * A reading is taken every 5 seconds while the session runs.
3036
3134
  *
3037
3135
  * Required permissions: read:sessions.
3038
3136
  * API key: Supported.
3039
3137
  * CLI user token: Supported.
3040
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3138
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own session.
3041
3139
  * Higher permission levels include lower levels: read < write < delete.
3042
3140
  * Grant match patterns can further restrict access to individual resources.
3043
3141
  */
3044
- output(session_id: string): Promise<Record<string, unknown>>;
3142
+ metrics(id: string): Promise<S['VMMetricsResponse']>;
3045
3143
  /**
3046
3144
  * Get Session Records
3047
3145
  *
@@ -3060,7 +3158,7 @@ declare class EllipsisSessions {
3060
3158
  * Higher permission levels include lower levels: read < write < delete.
3061
3159
  * Grant match patterns can further restrict access to individual resources.
3062
3160
  */
3063
- records(session_id: string, options?: {
3161
+ records(id: string, options?: {
3064
3162
  cursor?: string | null;
3065
3163
  limit?: number | null;
3066
3164
  }): Promise<Page<S['SessionRecord'], S['SessionRecordsListResponse']>>;
@@ -3094,7 +3192,7 @@ declare class EllipsisSessions {
3094
3192
  *
3095
3193
  * Send a message to a session.
3096
3194
  *
3097
- * 409 for react/cron, non-interactive, closed, and out-of-budget
3195
+ * 409 for mention, non-interactive, closed, and out-of-budget
3098
3196
  * sessions. Returns the created message and its turn; a retried send
3099
3197
  * with the same idempotency_key returns the original ones.
3100
3198
  *
@@ -3105,7 +3203,7 @@ declare class EllipsisSessions {
3105
3203
  * Higher permission levels include lower levels: read < write < delete.
3106
3204
  * Grant match patterns can further restrict access to individual resources.
3107
3205
  */
3108
- sendMessage(session_id: string, options: {
3206
+ sendMessage(id: string, options: {
3109
3207
  idempotency_key?: string | null;
3110
3208
  images?: (S['ImageAttachment'])[];
3111
3209
  message: string;
@@ -3120,7 +3218,7 @@ declare class EllipsisSessions {
3120
3218
  * Higher permission levels include lower levels: read < write < delete.
3121
3219
  * Grant match patterns can further restrict access to individual resources.
3122
3220
  */
3123
- sessionStreamTicket(session_id: string): Promise<S['StreamTicketResponse']>;
3221
+ sessionStreamTicket(id: string): Promise<S['StreamTicketResponse']>;
3124
3222
  /**
3125
3223
  * Start Session
3126
3224
  *
@@ -3135,9 +3233,9 @@ declare class EllipsisSessions {
3135
3233
  * Set exactly one of `claude_code` or `codex`. Its `prompt` is the
3136
3234
  * first message; omit the prompt and the session starts with no
3137
3235
  * turn, waiting for one. 400 when `conversation.interactive` is false
3138
- * and there is no prompt, or when `budget` exceeds the organization's
3139
- * per-session ceiling. To run a saved agent, use
3140
- * POST /v1/agents/{agent_id}/sessions.
3236
+ * and there is no prompt, or when `budget.session` exceeds the
3237
+ * organization's per-session ceiling. To start a session from a saved
3238
+ * agent, use POST /v1/agents/{id}/sessions.
3141
3239
  *
3142
3240
  * Required permissions: write:sessions.
3143
3241
  * API key: Supported.
@@ -3147,17 +3245,16 @@ declare class EllipsisSessions {
3147
3245
  * Grant match patterns can further restrict access to individual resources.
3148
3246
  */
3149
3247
  start(options?: {
3150
- budget?: number | null;
3248
+ budget?: S['RunBudget'] | null;
3151
3249
  claude_code?: S['ClaudeConfig-Input'] | null;
3152
3250
  codex?: S['CodexConfig-Input'] | null;
3153
- conversation?: S['SessionConversationConfig'];
3251
+ conversation?: S['SessionConversationConfig-Input'];
3154
3252
  environment?: string | S['EnvironmentConfig-Input'] | null;
3155
3253
  force_rebuild?: boolean;
3156
3254
  images?: (S['ImageAttachment'])[];
3157
3255
  metadata?: Record<string, string>;
3158
3256
  output?: S['OutputConfig'] | null;
3159
3257
  permissions?: S['PermissionsConfig-Input'] | null;
3160
- repositories?: (string)[] | null;
3161
3258
  skills?: (S['SkillRef-Input'])[] | null;
3162
3259
  }): Promise<S['SessionResponse']>;
3163
3260
  /**
@@ -3176,7 +3273,7 @@ declare class EllipsisSessions {
3176
3273
  * Higher permission levels include lower levels: read < write < delete.
3177
3274
  * Grant match patterns can further restrict access to individual resources.
3178
3275
  */
3179
- stop(session_id: string): Promise<S['SessionResponse']>;
3276
+ stop(id: string): Promise<S['SessionResponse']>;
3180
3277
  /**
3181
3278
  * Get Sessions Stream Ticket
3182
3279
  *
@@ -3208,7 +3305,7 @@ declare class EllipsisSessions {
3208
3305
  * Higher permission levels include lower levels: read < write < delete.
3209
3306
  * Grant match patterns can further restrict access to individual resources.
3210
3307
  */
3211
- update(session_id: string, options: {
3308
+ update(id: string, options: {
3212
3309
  archived: boolean;
3213
3310
  }): Promise<S['SessionResponse']>;
3214
3311
  /** Start a session and return a handle over it. */
@@ -3275,7 +3372,7 @@ declare class EllipsisTemplates {
3275
3372
  * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3276
3373
  * Higher permission levels include lower levels: read < write < delete.
3277
3374
  */
3278
- get(template_id: string): Promise<S['AgentTemplate']>;
3375
+ get(id: string): Promise<S['AgentTemplate']>;
3279
3376
  /**
3280
3377
  * List Agent Templates
3281
3378
  *
@@ -3421,7 +3518,7 @@ declare class EllipsisUserTokens {
3421
3518
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3422
3519
  * Higher permission levels include lower levels: read < write < delete.
3423
3520
  */
3424
- revoke(token_id: string): Promise<S['TokenRevokedResponse']>;
3521
+ revoke(id: string): Promise<S['TokenRevokedResponse']>;
3425
3522
  }
3426
3523
  declare class EllipsisUser {
3427
3524
  private readonly transport;
@@ -3441,7 +3538,7 @@ declare class EllipsisVmExecutions {
3441
3538
  * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own sandbox.
3442
3539
  * Higher permission levels include lower levels: read < write < delete.
3443
3540
  */
3444
- get(vm_execution_id: string): Promise<S['VMExecutionResponse']>;
3541
+ get(id: string): Promise<S['VMExecutionResponse']>;
3445
3542
  /**
3446
3543
  * Get Vm Executions
3447
3544
  *
@@ -3461,7 +3558,7 @@ declare class EllipsisVmExecutions {
3461
3558
  * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own sandbox.
3462
3559
  * Higher permission levels include lower levels: read < write < delete.
3463
3560
  */
3464
- streamTicket(vm_execution_id: string): Promise<S['StreamTicketResponse']>;
3561
+ streamTicket(id: string): Promise<S['StreamTicketResponse']>;
3465
3562
  }
3466
3563
  declare class EllipsisVmImages {
3467
3564
  private readonly transport;
@@ -3477,7 +3574,7 @@ declare class EllipsisVmImages {
3477
3574
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3478
3575
  * Higher permission levels include lower levels: read < write < delete.
3479
3576
  */
3480
- get(image_id: string): Promise<S['VMImageResponse']>;
3577
+ get(id: string): Promise<S['VMImageResponse']>;
3481
3578
  /**
3482
3579
  * List Vm Images
3483
3580
  *
@@ -3510,7 +3607,7 @@ declare class EllipsisVms {
3510
3607
  * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own VM.
3511
3608
  * Higher permission levels include lower levels: read < write < delete.
3512
3609
  */
3513
- get(vm_id: string): Promise<S['VM']>;
3610
+ get(id: string): Promise<S['VM']>;
3514
3611
  /**
3515
3612
  * List Vms
3516
3613
  *
@@ -3528,6 +3625,23 @@ declare class EllipsisVms {
3528
3625
  limit?: number;
3529
3626
  offset?: number;
3530
3627
  }): Promise<S['VMListResponse']>;
3628
+ /**
3629
+ * List Vm Metrics
3630
+ *
3631
+ * List a VM's CPU, memory, swap, and disk readings, oldest first.
3632
+ *
3633
+ * A reading is taken every 5 seconds while a session runs on the VM.
3634
+ *
3635
+ * Required permissions: read:environments.
3636
+ * API key: Supported.
3637
+ * CLI user token: Supported.
3638
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own VM.
3639
+ * Higher permission levels include lower levels: read < write < delete.
3640
+ */
3641
+ metrics(id: string, options?: {
3642
+ start?: string | null;
3643
+ end?: string | null;
3644
+ }): Promise<S['VMMetricsResponse']>;
3531
3645
  }
3532
3646
  declare class EllipsisWebhooksDeliveries {
3533
3647
  private readonly transport;
@@ -3546,7 +3660,7 @@ declare class EllipsisWebhooksDeliveries {
3546
3660
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3547
3661
  * Higher permission levels include lower levels: read < write < delete.
3548
3662
  */
3549
- get(delivery_id: string): Promise<S['WebhookDeliveryResponse']>;
3663
+ get(id: string): Promise<S['WebhookDeliveryResponse']>;
3550
3664
  /**
3551
3665
  * List Webhook Deliveries
3552
3666
  *
@@ -3610,7 +3724,7 @@ declare class EllipsisWebhooks {
3610
3724
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3611
3725
  * Higher permission levels include lower levels: read < write < delete.
3612
3726
  */
3613
- delete(webhook_id: string): Promise<void>;
3727
+ delete(id: string): Promise<void>;
3614
3728
  /**
3615
3729
  * Get Webhook
3616
3730
  *
@@ -3622,7 +3736,7 @@ declare class EllipsisWebhooks {
3622
3736
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3623
3737
  * Higher permission levels include lower levels: read < write < delete.
3624
3738
  */
3625
- get(webhook_id: string): Promise<S['WebhookResponse']>;
3739
+ get(id: string): Promise<S['WebhookResponse']>;
3626
3740
  /**
3627
3741
  * List Webhooks
3628
3742
  *
@@ -3651,7 +3765,7 @@ declare class EllipsisWebhooks {
3651
3765
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3652
3766
  * Higher permission levels include lower levels: read < write < delete.
3653
3767
  */
3654
- ping(webhook_id: string): Promise<void>;
3768
+ ping(id: string): Promise<void>;
3655
3769
  /**
3656
3770
  * Update Webhook
3657
3771
  *
@@ -3667,7 +3781,7 @@ declare class EllipsisWebhooks {
3667
3781
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
3668
3782
  * Higher permission levels include lower levels: read < write < delete.
3669
3783
  */
3670
- update(webhook_id: string, options: {
3784
+ update(id: string, options: {
3671
3785
  description?: string | null;
3672
3786
  events: ("session.create")[];
3673
3787
  url: string;
@@ -3683,7 +3797,6 @@ declare class Ellipsis {
3683
3797
  readonly environments: EllipsisEnvironments;
3684
3798
  readonly handlers: EllipsisHandlers;
3685
3799
  readonly integrations: EllipsisIntegrations;
3686
- readonly memories: EllipsisMemories;
3687
3800
  readonly reviews: EllipsisReviews;
3688
3801
  readonly secrets: EllipsisSecrets;
3689
3802
  readonly sessions: EllipsisSessions;
@@ -3700,10 +3813,12 @@ declare class Ellipsis {
3700
3813
  *
3701
3814
  * Return the identity behind the caller's credential.
3702
3815
  *
3703
- * Required permissions: read:account.
3816
+ * Any valid credential may call this; no permission grant is needed.
3817
+ *
3818
+ * Required permissions: none; any valid credential.
3704
3819
  * API key: Supported.
3705
3820
  * CLI user token: Supported.
3706
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3821
+ * Session token: Requires the ellipsis:api scope; no permissions.ellipsis grant is needed.
3707
3822
  * Higher permission levels include lower levels: read < write < delete.
3708
3823
  */
3709
3824
  identity(): Promise<S['Identity']>;