@ellipsis-dev/sdk 0.31.0 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,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-DjY1VcOe.js';
2
+ export { A as AgentConfig, a as AgentIdentity, b as AttributionType, B as BudgetConfig, C as CheckRunAction, d as ClaudeAssistantEvent, e as ClaudeAssistantMessage, f as ClaudeConfig, g as ClaudeConversationResetEvent, h as ClaudeNativeEvent, i as ClaudeNativeSessionRecord, j as ClaudeNativeUsage, k as ClaudeRateLimitEvent, l as ClaudeRateLimitInfo, m as ClaudeResultEvent, n as ClaudeSessionRecord, o as ClaudeSystemEvent, p as ClaudeUserEvent, q as ClaudeUserMessage, r as CodexAgentMessage, s as CodexAgentMessageItem, t as CodexAppServerError, u as CodexAppServerEvent, v as CodexAppServerItem, w as CodexAppServerNotification, x as CodexAppServerSessionRecord, y as CodexCommandExecution, z as CodexCommandExecutionItem, D as CodexConfig, E as CodexContextCompaction, F as CodexEffortLevel, G as CodexErrorEvent, H as CodexErrorItem, I as CodexErrorParams, J as CodexEvent, K as CodexFileChange, L as CodexFileChangeItem, M as CodexFileUpdate, N as CodexItem, O as CodexItemCompleted, P as CodexItemCompletedEvent, Q as CodexItemParams, R as CodexItemStarted, S as CodexItemStartedEvent, T as CodexItemUpdatedEvent, U as CodexLocalImageInput, V as CodexMcpToolCall, W as CodexMcpToolCallAppContext, X as CodexMcpToolCallError, Y as CodexMcpToolCallItem, Z as CodexMcpToolCallResult, _ as CodexPlan, $ as CodexReasoning, a0 as CodexReasoningItem, a1 as CodexSessionRecord, a2 as CodexTextInput, a3 as CodexThread, a4 as CodexThreadStarted, a5 as CodexThreadStartedEvent, a6 as CodexThreadStartedParams, a7 as CodexThreadTokenUsage, a8 as CodexTodoListItem, a9 as CodexTokenUsageBreakdown, aa as CodexTokenUsageParams, ab as CodexTokenUsageUpdated, ac as CodexTurn, ad as CodexTurnCompleted, ae as CodexTurnCompletedEvent, af as CodexTurnError, ag as CodexTurnFailedEvent, ah as CodexTurnParams, ai as CodexTurnStarted, aj as CodexTurnStartedEvent, ak as CodexUsage, al as CodexUserInput, am as CodexUserMessage, an as CodexWebSearch, ao as CodexWebSearchItem, ap as ComputeConfig, aq as ComputeConfig1, ar as ConfigMetadata, as as CronTrigger, at as DeltaFrame, au as DoneFrame, av as Duration, aw as EffortLevel, ax as EllipsisGrant, ay as EllipsisPermissions, az as EnvironmentBaseBuild, aA as EnvironmentConfig, aB as EnvironmentHooks, aC as EnvironmentHooks1, aD as EnvironmentOutputPayload, aE as EnvironmentOutputRecord, aF as EnvironmentPhasePayload, aG as EnvironmentPhaseRecord, aH as EnvironmentReadyPayload, aI as EnvironmentReadyRecord, aJ as EnvironmentScript, aK as EnvironmentSource, aL as EnvironmentVariable, aM as ErrorFrame, aN as GithubAccountFilter, aO as GithubAccountSelector, aP as GithubAccountSnippet, aQ as GithubAccountType, aR as GithubCheckRunEvent, aS as GithubIssueEvent, aT as GithubPermissions, aU as GithubPullRequestEvent, aV as GithubPushEvent, aW as GithubReleaseEvent, aX as HandlerService, aY as HeartbeatFrame, aZ as InputContract, a_ as IssueAction, a$ as LegacyAssistantPayload, b0 as LegacyNativeUsage, b1 as LegacyResultPayload, b2 as Level, b3 as LifecycleSessionRecord, b4 as LinearIssueAction, b5 as LinearIssueEvent, b6 as McpRemoteServer, b7 as McpServerRef, b8 as McpStdioServer, b9 as MemorySize, ba as MessageDeliveredPayload, bb as MessageDeliveredRecord, bc as MessageReceivedPayload, bd as MessageReceivedRecord, be as MessageRequeuedPayload, bf as MessageRequeuedRecord, bg as OutputConfig, bh as PermissionsConfig, bi as PermissionsConfig1, bj as PlatformSessionRecord, bk as PromptBlockedReason, bl as PullRequestAction, bm as ReactCheckRun, bn as ReactIssue, bo as ReactLinearIssue, bp as ReactPullRequest, bq as ReactPush, br as ReactRelease, bs as ReactSentry, bt as ReactSlackChannel, bu as ReactTrigger, bv as RecordsAppendFrame, bw as ReleaseAction, bx as RepositoryFilter, by as RepositoryRef, bz as Review, bA as ReviewComment, bB as ReviewConfig, bC as ReviewConfigsListResponse, bD as ReviewPullRequest, bE as ReviewPullRequestAuthor, bF as ReviewReviewer, bG as ReviewSummary, bH as ReviewsListResponse, bI as SdkAssistantRecord, bJ as SdkCacheCreation, bK as SdkContentBlock, bL as SdkRateLimitRecord, bM as SdkRecord, bN as SdkResultRecord, bO as SdkServerToolResultBlock, bP as SdkServerToolUseBlock, bQ as SdkSystemRecord, bR as SdkTextBlock, bS as SdkThinkingBlock, bT as SdkToolResultBlock, bU as SdkToolUseBlock, bV as SdkUserRecord, bW as SendSessionMessageRequest, bX as SentryAction, bY as SentryAlertEvent, bZ as Session, b_ as Session1, b$ as SessionAgent, c0 as SessionArchived, c1 as SessionAttribution, c2 as SessionClosedPayload, c3 as SessionClosedRecord, c4 as SessionConfig, c5 as SessionConversation, c6 as SessionConversationConfig, c7 as SessionCost, c8 as SessionCost1, c9 as SessionEnvironment, ca as SessionEventActor, cb as SessionFrame, cc as SessionGit, cd as SessionGitCommit, ce as SessionGitFile, cf as SessionGitPr, cg as SessionGitRepo, ch as SessionHandler, ci as SessionMessage, cj as SessionMessageImage, ck as SessionMessageResponse, cl as SessionMessageStatus, cm as SessionOutput, cn as SessionParent, co as SessionPrompting, cp as SessionRecord, cq as SessionRecordsListResponse, cr as SessionResponse, cs as SessionSource, ct as SessionState, cu as SessionStopped, cv as SessionStreamFrame, cw as SessionSummary, cx as SessionTokens, cy as SessionTokens1, cz as SessionTurn, cA as SessionTurnResponse, cB as SessionTurnsListResponse, cC as SessionsListResponse, cD as SettingsRef, cE as SkillRef, cF as SlackChannelCreatedEvent, cG as SlackMessageEvent, cH as SnapshotFrame, cI as StreamFrame, cJ as TokensInfo, cK as TurnEndedPayload, cL as TurnEndedRecord, cM as TurnReason, cN as TurnStartedPayload, cO as TurnStartedRecord, cP as TurnStatus, cQ as UnknownSessionRecord, cR as UpdateSessionRequest, cS as paths } from './types-DjY1VcOe.js';
3
3
 
4
4
  /**
5
5
  * Frames on /v1/sessions/stream, /v1/agents/stream and /v1/vm-executions/{id}/stream. Ignore unknown frame types.
@@ -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 | 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
  */
@@ -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,33 @@ type GithubAccountFilter = {
150
157
  exclude: string[];
151
158
  include: string[] | boolean;
152
159
  } | boolean | string[];
153
- type IssueAction = 'opened' | 'closed' | 'commented';
160
+ /**
161
+ * What a completed check run did. `failed` covers the conclusions that
162
+ * mean the check did not pass on its own merits (`failure`, `timed_out`); a
163
+ * cancelled, skipped, neutral or stale check is not a failure and never
164
+ * fires (see FAILED_CHECK_RUN_CONCLUSIONS).
165
+ */
166
+ type CheckRunAction = 'failed';
154
167
  type RepositoryFilter = {
155
168
  exclude: string[];
156
169
  include: string[];
157
170
  } | string[];
171
+ type IssueAction = 'opened' | 'closed' | 'commented';
158
172
  type LinearIssueAction = 'opened';
159
173
  type PullRequestAction = 'opened' | 'pushed' | 'merged' | 'closed' | 'review_submitted' | 'commented';
174
+ /**
175
+ * What happened to a GitHub release. `published` is the one moment a
176
+ * release becomes visible: a release or prerelease published directly, or a
177
+ * draft published later. Edits, deletions, and unpublishes never fire.
178
+ */
179
+ type ReleaseAction = 'published';
160
180
  type SentryAction = 'issue_alert' | 'metric_alert';
161
181
  type GithubAccountType = 'User' | 'Organization' | 'Bot' | 'Mannequin';
162
182
  type AttributionType = 'github_user' | 'linear_user' | 'slack_user' | 'api_key';
163
183
  /**
164
184
  * Why direct prompting is refused. Absent when prompting is allowed.
165
185
  */
166
- type PromptBlockedReason = 'mention_surface' | 'ephemeral_trigger' | 'non_interactive' | 'harness_single_turn' | 'budget_exhausted' | 'closed';
186
+ type PromptBlockedReason = 'mention_surface' | 'non_interactive' | 'harness_single_turn' | 'budget_exhausted' | 'closed';
167
187
  /**
168
188
  * `open` while the session can take messages; `closed` is permanent.
169
189
  */
@@ -184,7 +204,7 @@ type HandlerService = 'slack' | 'github' | 'linear' | 'sentry';
184
204
  /**
185
205
  * Where the session came from (e.g. react, web, api, cli, mention, cron).
186
206
  */
187
- type SessionSource = 'react' | 'web' | 'api' | 'cli' | 'mention' | 'cron';
207
+ type SessionSource = 'react' | 'code_review' | 'web' | 'api' | 'cli' | 'mention' | 'cron';
188
208
  /**
189
209
  * Why a turn failed or was cancelled. Null on every other outcome.
190
210
  */
@@ -203,7 +223,7 @@ type ConfigManagedBy = 'github' | 'api';
203
223
  * Rides on `Sandbox.cache_tier` and the sandbox_ready lifecycle record.
204
224
  */
205
225
  type SandboxCacheTier = 'exact' | 'incremental' | 'full';
206
- type SandboxSource = 'cli' | 'web_ui' | 'ingest_pull_request_job_run' | 'session' | 'image_refresh' | 'test' | 'script';
226
+ type SandboxSource = 'session' | 'image_refresh' | 'environment_check' | 'test' | 'script';
207
227
  type SandboxStatus = 'scheduled' | 'building' | 'running' | 'released' | 'terminating' | 'terminated' | 'failed';
208
228
  type SandboxType = 'claude_code';
209
229
  interface SessionListStreamMessage {
@@ -219,7 +239,7 @@ interface SessionListStreamMessage {
219
239
  interface SessionAgent {
220
240
  config: AgentConfig;
221
241
  /**
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.
242
+ * Identifier of the saved agent this session's snapshot was taken from. Null for a routing-file agent or the built-in mention agent, which have no saved agent behind them. Points at the agent as it exists now, which may have changed since.
223
243
  */
224
244
  id: string | null;
225
245
  }
@@ -241,9 +261,7 @@ interface AgentConfig {
241
261
  * config directory) — see `yaml_is_ellipsis_config`.
242
262
  *
243
263
  * `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.
264
+ * the config `sha` (only `metadata` is sha-excluded).
247
265
  */
248
266
  interface AgentIdentity {
249
267
  description: string | null;
@@ -264,15 +282,24 @@ interface ConfigMetadata {
264
282
  * when it happens; this is what goes in).
265
283
  *
266
284
  * `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.
285
+ * `POST /v1/agents/{id}/sessions` (the dashboard and the CLI start
286
+ * through the same door) and stored as `session.input`. An on-demand
287
+ * start requires input when a schema is declared. A trigger fires
288
+ * without it: a cron fire has no payload and a react fire carries the
289
+ * platform-shaped event, so an agent may declare a schema alongside
290
+ * either trigger and the schema governs only its on-demand starts.
270
291
  *
271
292
  * `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`).
293
+ * over the payload the session has (the caller payload on an on-demand
294
+ * start, the surface's published fields on a react fire, the empty
295
+ * object on a cron fire), no conditionals/loops/filters. Refs are
296
+ * validated at deploy time against every governing field set (see
297
+ * AgentConfig's `_check_input`): the caller schema's paths, the react
298
+ * surface's published fields, and both when the agent has a react trigger
299
+ * and a schema, so one template renders fully on either door (declare the
300
+ * surface's field names in the schema). Omit `message` to let each door
301
+ * render its default. An unresolved ref renders as the empty string (a
302
+ * cron fire, an optional field the payload omitted).
276
303
  */
277
304
  interface InputContract {
278
305
  json_schema: {
@@ -280,10 +307,26 @@ interface InputContract {
280
307
  } | null;
281
308
  message: string | null;
282
309
  }
310
+ /**
311
+ * A saved agent's spend limits: the per-session cap plus its total spend
312
+ * over the trailing 1, 7, and 28 days.
313
+ */
283
314
  interface BudgetConfig {
315
+ /**
316
+ * The most the agent may spend over the last day, in US dollars.
317
+ */
284
318
  day: number | null;
319
+ /**
320
+ * The most the agent may spend over the last 28 days, in US dollars.
321
+ */
285
322
  month: number | null;
323
+ /**
324
+ * The most one session may spend, in US dollars.
325
+ */
286
326
  session: number | null;
327
+ /**
328
+ * The most the agent may spend over the last 7 days, in US dollars.
329
+ */
287
330
  week: number | null;
288
331
  }
289
332
  /**
@@ -293,7 +336,10 @@ interface ClaudeConfig {
293
336
  effort: EffortLevel | null;
294
337
  fallback_model: string | null;
295
338
  max_turns: number | null;
296
- model: string | null;
339
+ /**
340
+ * The model the session runs on: an alias or canonical id from the models table. Required.
341
+ */
342
+ model: string;
297
343
  /**
298
344
  * The initial user message, passed verbatim. Omit to start an interactive session with no turn, waiting for a message.
299
345
  */
@@ -301,12 +347,10 @@ interface ClaudeConfig {
301
347
  settings: SettingsRef | null;
302
348
  }
303
349
  /**
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.
350
+ * A Claude Code settings.json read from a repository and applied to the
351
+ * session. It adds permission rules and other Claude Code settings; rules the
352
+ * platform sets stay in force. Supported models list `settings` in
353
+ * `/v1/account/models`.
310
354
  */
311
355
  interface SettingsRef {
312
356
  path: string;
@@ -319,21 +363,30 @@ interface RepositoryRef {
319
363
  }
320
364
  /**
321
365
  * 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
366
  */
326
367
  interface CodexConfig {
327
368
  /**
328
369
  * Reasoning effort for every turn. Omit to use the model default.
329
370
  */
330
371
  effort: CodexEffortLevel | null;
372
+ /**
373
+ * The model the session runs on: a Responses-capable id from the models table. Required.
374
+ */
331
375
  model: string;
332
376
  /**
333
377
  * The initial user message, passed verbatim. Omit to start an interactive session with no turn, waiting for a message.
334
378
  */
335
379
  prompt: string | null;
336
380
  }
381
+ /**
382
+ * Conversation settings for a session, set on a saved agent or sent when starting a session or running an agent.
383
+ */
384
+ interface SessionConversationConfig {
385
+ /**
386
+ * Whether the session stays open after its first turn. Defaults to true; false runs once and requires a prompt. Requires the model's interactive capability when true. Direct message acceptance is reported separately in conversation.prompting.
387
+ */
388
+ interactive: boolean;
389
+ }
337
390
  /**
338
391
  * Everything about the environment the agent runs in: which
339
392
  * `repositories` are cloned into it, which environment `variables` it gets,
@@ -454,13 +507,12 @@ interface EnvironmentBaseBuild {
454
507
  run: string;
455
508
  }
456
509
  /**
457
- * One built-in MCP server this agent opts into by name (`linear`/`slack`).
510
+ * One built-in MCP server this agent attaches by name (`linear`/`slack`).
458
511
  * 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`).
512
+ * server's transport and credentials. A session gets a built-in server only
513
+ * when its config names it here or the session started from that server's
514
+ * own surface. For a server the platform does not provide, define it instead
515
+ * (`McpStdioServer` / `McpRemoteServer`).
464
516
  */
465
517
  interface McpServerRef {
466
518
  name: string;
@@ -524,7 +576,7 @@ interface OutputConfig {
524
576
  * where the agent runs; this is what it may do from there.
525
577
  *
526
578
  * `ellipsis` scopes the session's Ellipsis API token (`ELLIPSIS_API_TOKEN`,
527
- * what the `agent` CLI running inside the session authenticates with).
579
+ * what the `ellipsis` CLI running inside the session authenticates with).
528
580
  * `true` / the string `all` (the default) grant the full session token
529
581
  * ceiling — everything a session token can ever do. A map narrows it per
530
582
  * resource (see `EllipsisPermissions`); the minted token carries
@@ -550,8 +602,8 @@ interface EllipsisPermissions {
550
602
  }
551
603
  /**
552
604
  * 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.
605
+ * natural key (a file's name, a secret's name, a config's name, a session's
606
+ * id) matches any of the `match` globs.
555
607
  */
556
608
  interface EllipsisGrant {
557
609
  level: Level;
@@ -559,8 +611,8 @@ interface EllipsisGrant {
559
611
  }
560
612
  /**
561
613
  * 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.
614
+ * its session's environment — the credential `git` and `gh` authenticate
615
+ * with.
564
616
  *
565
617
  * By default the token carries the installation's full permissions on all of
566
618
  * the installation's repositories. `permissions` narrows what it may do:
@@ -589,36 +641,86 @@ interface SkillRef {
589
641
  path: string;
590
642
  repository: RepositoryRef | null;
591
643
  }
644
+ /**
645
+ * A schedule: `schedule` is a five-field cron expression in UTC.
646
+ *
647
+ * `enabled: false` pauses the trigger and keeps its definition: the schedule
648
+ * stops firing while the agent stays live for on-demand starts and open
649
+ * sessions keep taking follow-ups (`ellipsis.enabled: false` pauses the
650
+ * whole file instead). Re-enabling resumes at the next scheduled time; runs
651
+ * missed while paused are not made up.
652
+ */
592
653
  interface CronTrigger {
654
+ enabled: boolean;
593
655
  schedule: string;
594
656
  type: 'cron';
595
657
  }
658
+ /**
659
+ * An event trigger: exactly one surface block names the events to match.
660
+ *
661
+ * `enabled: false` pauses the trigger and keeps its definition: events stop
662
+ * matching while the agent stays live for on-demand starts and open
663
+ * sessions keep taking follow-ups (`ellipsis.enabled: false` pauses the
664
+ * whole file instead).
665
+ */
596
666
  interface ReactTrigger {
667
+ check_run: ReactCheckRun | null;
668
+ enabled: boolean;
597
669
  issue: ReactIssue | null;
598
670
  linear_issue: ReactLinearIssue | null;
599
671
  pull_request: ReactPullRequest | null;
600
672
  push: ReactPush | null;
673
+ release: ReactRelease | null;
601
674
  sentry: ReactSentry | null;
602
675
  slack_channel: ReactSlackChannel | null;
603
676
  type: 'react';
604
677
  }
605
- interface ReactIssue {
678
+ /**
679
+ * A CI/CD check completing on a commit — a `check_run` from GitHub
680
+ * Actions or any other app that reports checks. `names` narrows to the check
681
+ * runs whose name matches (exact, or a prefix ending in `*`); `branch` is the
682
+ * check suite's head branch. The `for:` audience is the commit's author (the
683
+ * pull request author when the check is attached to one), never the CI app
684
+ * that completed the check — a check run's sender is always a bot.
685
+ *
686
+ * Delivery needs the Ellipsis GitHub App's `checks` permission on the
687
+ * installation; without it GitHub sends no check events and the webhook
688
+ * handler refuses the ones it does see.
689
+ */
690
+ interface ReactCheckRun {
691
+ branch: string[];
606
692
  for: GithubAccountSelector;
607
- labels: string[];
608
- on: IssueAction[];
693
+ names: string[];
694
+ on: CheckRunAction[];
609
695
  repositories: RepositoryFilter;
610
696
  }
611
697
  /**
612
698
  * 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
699
+ * surfaces, classified on the stable entity author (the pusher for `push`,
700
+ * the PR author for a pull request). `users` selects human
615
701
  * accounts, `bots` selects bot accounts; each is a `GithubAccountFilter`
616
702
  * (include minus exclude, with bare bool/list shorthand).
703
+ *
704
+ * `teams` narrows further to members of any of the listed GitHub teams of
705
+ * the installation's organization, by slug (`platform` for
706
+ * `@org/platform`). It applies on top of `users`: the author must pass the
707
+ * users filter AND belong to a listed team. A bot is never a team member,
708
+ * so a selector with `teams` never admits one. Membership is resolved live
709
+ * at match time (see `TriggerEventContext.is_author_team_member`), and the
710
+ * config sync refuses a team that does not exist when the file is
711
+ * accepted.
617
712
  */
618
713
  interface GithubAccountSelector {
619
714
  bots: GithubAccountFilter;
715
+ teams: string[];
620
716
  users: GithubAccountFilter;
621
717
  }
718
+ interface ReactIssue {
719
+ for: GithubAccountSelector;
720
+ labels: string[];
721
+ on: IssueAction[];
722
+ repositories: RepositoryFilter;
723
+ }
622
724
  interface ReactLinearIssue {
623
725
  for: GithubAccountSelector;
624
726
  on: LinearIssueAction[];
@@ -639,6 +741,21 @@ interface ReactPush {
639
741
  paths: string[];
640
742
  repositories: RepositoryFilter;
641
743
  }
744
+ /**
745
+ * A GitHub release being published — a release or prerelease published
746
+ * directly, or a draft published later. `tag` narrows to the release tags
747
+ * that match (exact, or a prefix ending in `*`, so `v*`); `prerelease`
748
+ * selects prereleases or full releases, like `draft` on pull requests. The
749
+ * `for:` audience is the release's author, which for a release cut by CI is
750
+ * a bot and needs `bots` to opt in.
751
+ */
752
+ interface ReactRelease {
753
+ for: GithubAccountSelector;
754
+ on: ReleaseAction[];
755
+ prerelease: boolean | null;
756
+ repositories: RepositoryFilter;
757
+ tag: string[];
758
+ }
642
759
  interface ReactSentry {
643
760
  on: SentryAction[];
644
761
  projects: string[];
@@ -669,6 +786,7 @@ interface GithubAccountSnippet {
669
786
  avatar_url: string;
670
787
  id: number;
671
788
  login: string;
789
+ name: string | null;
672
790
  type: GithubAccountType;
673
791
  }
674
792
  /**
@@ -848,8 +966,30 @@ interface GithubPushEvent {
848
966
  type: 'github.push';
849
967
  url: string;
850
968
  }
969
+ interface GithubCheckRunEvent {
970
+ action: CheckRunAction;
971
+ actor: SessionEventActor | null;
972
+ branch: string | null;
973
+ conclusion: string | null;
974
+ head_sha: string;
975
+ name: string;
976
+ pull_request_number: number | null;
977
+ repository: string;
978
+ type: 'github.check_run';
979
+ url: string;
980
+ }
981
+ interface GithubReleaseEvent {
982
+ action: ReleaseAction;
983
+ actor: SessionEventActor | null;
984
+ name: string | null;
985
+ prerelease: boolean;
986
+ repository: string;
987
+ tag: string;
988
+ type: 'github.release';
989
+ url: string;
990
+ }
851
991
  interface LinearIssueEvent {
852
- action: LinearIssueAction | 'commented';
992
+ action: LinearIssueAction | ('commented' | 'delegated');
853
993
  actor: SessionEventActor | null;
854
994
  identifier: string | null;
855
995
  number: number;
@@ -957,6 +1097,26 @@ interface SessionHandler {
957
1097
  */
958
1098
  sha: string;
959
1099
  }
1100
+ /**
1101
+ * Structured output on the wire: the contract and, when a turn has
1102
+ * submitted one, the payload. `result` is None while the session runs and
1103
+ * when no turn submitted anything; it is the agent's own JSON, in the
1104
+ * shape of `json_schema`.
1105
+ */
1106
+ interface SessionOutput {
1107
+ /**
1108
+ * JSON Schema the agent's result must satisfy.
1109
+ */
1110
+ json_schema: {
1111
+ [k: string]: unknown;
1112
+ };
1113
+ /**
1114
+ * The payload the agent submitted, or null until a turn submits one.
1115
+ */
1116
+ result: {
1117
+ [k: string]: unknown;
1118
+ } | null;
1119
+ }
960
1120
  /**
961
1121
  * The predecessor session this session continues.
962
1122
  */
@@ -1571,7 +1731,7 @@ declare class EllipsisAccountBilling {
1571
1731
  * Explain whether your account can start sessions.
1572
1732
  *
1573
1733
  * Uses the same account gate as session admission, including credit,
1574
- * contact email, and personal Claude subscription eligibility. Scoped
1734
+ * contact email, and personal subscription eligibility. Scoped
1575
1735
  * spend limits are reported separately by /v1/account/budget.
1576
1736
  *
1577
1737
  * Required permissions: read:account.
@@ -1591,13 +1751,11 @@ declare class EllipsisAccountModels {
1591
1751
  * List selectable agent models.
1592
1752
  *
1593
1753
  * 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`).
1754
+ * within each family.
1597
1755
  *
1598
1756
  * Reads the same registry as the dashboard's rate table, so a
1599
1757
  * client's model picker can never drift from what's offered. The
1600
- * selectable set is global; only the flag is account-scoped.
1758
+ * selectable set is global.
1601
1759
  *
1602
1760
  * Required permissions: read:templates.
1603
1761
  * API key: Supported.
@@ -1662,62 +1820,12 @@ declare class EllipsisAccountOnboarding {
1662
1820
  * Higher permission levels include lower levels: read < write < delete.
1663
1821
  */
1664
1822
  update(options?: {
1823
+ finished?: boolean;
1665
1824
  other_use_case?: string | null;
1666
1825
  use_cases?: (S['AccountOnboardingUseCase'])[];
1667
1826
  work_email?: string | null;
1668
1827
  }): Promise<S['AccountOnboardingResponse']>;
1669
1828
  }
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
1829
  declare class EllipsisAccountSettings {
1722
1830
  private readonly transport;
1723
1831
  constructor(transport: Transport);
@@ -1726,9 +1834,9 @@ declare class EllipsisAccountSettings {
1726
1834
  *
1727
1835
  * Get the organization settings.
1728
1836
  *
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.
1837
+ * Session budget ceiling, mention behavior, analytics,
1838
+ * retention, and notification contacts. PATCH replaces
1839
+ * supplied sections; PUT sets the budget ceiling only.
1732
1840
  *
1733
1841
  * Required permissions: read:defaults.
1734
1842
  * API key: Supported.
@@ -1742,13 +1850,10 @@ declare class EllipsisAccountSettings {
1742
1850
  *
1743
1851
  * Set the organization settings.
1744
1852
  *
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
1853
  * `budget_ceiling.session` is in US dollars, at most the platform
1749
1854
  * ceiling, and null clears it.
1750
1855
  * Refused for session tokens (potentially prompt-injected code must
1751
- * not repoint the organization's defaults).
1856
+ * not raise the organization's ceiling).
1752
1857
  *
1753
1858
  * Required permissions: write:defaults.
1754
1859
  * API key: Requires a CLI user token belonging to an account administrator.
@@ -1756,29 +1861,26 @@ declare class EllipsisAccountSettings {
1756
1861
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1757
1862
  * Higher permission levels include lower levels: read < write < delete.
1758
1863
  */
1759
- set(options: {
1864
+ set(options?: {
1760
1865
  budget_ceiling?: S['BudgetCeiling'];
1761
- default_model: string;
1762
1866
  }): Promise<S['OrganizationSettings']>;
1763
1867
  /**
1764
1868
  * Patch Account Settings
1765
1869
  *
1766
1870
  * Replace supplied settings sections without changing omitted sections.
1767
1871
  *
1768
- * Changes to model or budget defaults require a GitHub administrator.
1872
+ * Changes to the budget ceiling require a GitHub administrator.
1769
1873
  *
1770
1874
  * 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.
1875
+ * API key: Cannot set budget_ceiling to a non-null value; those changes require a CLI user token belonging to an account administrator.
1876
+ * CLI user token: Requires an account administrator when setting budget_ceiling to a non-null value.
1773
1877
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1774
1878
  * Higher permission levels include lower levels: read < write < delete.
1775
1879
  */
1776
1880
  update(options?: {
1777
- analytics?: S['AnalyticsSettings'] | null;
1881
+ analytics?: S['AnalyticsSettings-Input'] | null;
1778
1882
  budget_ceiling?: S['BudgetCeiling'] | null;
1779
- code_review?: S['CodeReviewSettings'] | null;
1780
- data_retention?: S['DataRetentionSettings'] | null;
1781
- default_model?: string | null;
1883
+ data_retention?: S['DataRetentionSettings-Input'] | null;
1782
1884
  notifications?: S['NotificationSettings'] | null;
1783
1885
  }): Promise<S['AccountSettings']>;
1784
1886
  }
@@ -1789,7 +1891,6 @@ declare class EllipsisAccount {
1789
1891
  readonly models: EllipsisAccountModels;
1790
1892
  readonly notifications: EllipsisAccountNotifications;
1791
1893
  readonly onboarding: EllipsisAccountOnboarding;
1792
- readonly providers: EllipsisAccountProviders;
1793
1894
  readonly settings: EllipsisAccountSettings;
1794
1895
  constructor(transport: Transport);
1795
1896
  /**
@@ -1877,7 +1978,7 @@ declare class EllipsisAccount {
1877
1978
  *
1878
1979
  * Omit period_start for the current UTC month; select a period returned
1879
1980
  * in billing_periods to view history. Credit debits are distinct from
1880
- * rated token usage through BYOK or a developer's Claude or Codex
1981
+ * rated token usage through a developer's Claude or Codex
1881
1982
  * subscription. Rated usage estimates are not provider invoices.
1882
1983
  * Pending and unresolved requests identify missing measurements.
1883
1984
  *
@@ -1999,17 +2100,19 @@ declare class EllipsisAgents {
1999
2100
  /**
2000
2101
  * Start Agent Session
2001
2102
  *
2002
- * Invoke an agent.
2103
+ * Start an agent session.
2003
2104
  *
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.
2105
+ * Starts a session from the agent's saved `session` settings and
2106
+ * returns it. The body takes the fields of POST /v1/sessions, all
2107
+ * optional: each field you send replaces the agent's value for that
2108
+ * field, and each field you leave out keeps it. `metadata` is merged
2109
+ * into the agent's key by key, and a `null` value removes a key.
2110
+ * Other lists and maps, and `environment`, are replaced whole;
2111
+ * naming the other harness replaces the agent's. An empty body starts
2112
+ * the agent as written. If the agent declares input.json_schema, send
2113
+ * `input`; its rendered message is added after the prompt. A run-once
2114
+ * session needs a prompt or `input` from the agent or the request, or
2115
+ * the call is a 400.
2013
2116
  *
2014
2117
  * Required permissions: write:sessions.
2015
2118
  * API key: Supported.
@@ -2018,11 +2121,19 @@ declare class EllipsisAgents {
2018
2121
  * Higher permission levels include lower levels: read < write < delete.
2019
2122
  * Grant match patterns can further restrict access to individual resources.
2020
2123
  */
2021
- run(agent_id: string, options?: {
2022
- budget?: number | null;
2124
+ start(agent_id: string, options?: {
2125
+ budget?: S['RunBudget'] | null;
2126
+ claude_code?: S['ClaudeOverrides'] | null;
2127
+ codex?: S['CodexOverrides'] | null;
2128
+ conversation?: S['SessionConversationConfig-Input'];
2129
+ environment?: string | S['EnvironmentConfig-Input'] | null;
2130
+ force_rebuild?: boolean;
2131
+ images?: (S['ImageAttachment'])[];
2023
2132
  input?: Record<string, unknown> | null;
2024
- metadata?: Record<string, string>;
2025
- prompt?: string | null;
2133
+ metadata?: Record<string, string | null>;
2134
+ output?: S['OutputConfig'] | null;
2135
+ permissions?: S['PermissionsConfig-Input'] | null;
2136
+ skills?: (S['SkillRef-Input'])[] | null;
2026
2137
  }): Promise<S['SessionResponse']>;
2027
2138
  /**
2028
2139
  * Get Agents Stream Ticket
@@ -2184,7 +2295,7 @@ declare class EllipsisAnalytics {
2184
2295
  /**
2185
2296
  * Get Analytics Reviews
2186
2297
  *
2187
- * Return code-review analytics.
2298
+ * Return pull request review analytics.
2188
2299
  *
2189
2300
  * account_type scopes reviewers (bot|user|all) — e.g. "what apps
2190
2301
  * review the most PRs?" is the reviewer facets here with
@@ -2459,7 +2570,6 @@ declare class EllipsisIntegrationsLinear {
2459
2570
  * Higher permission levels include lower levels: read < write < delete.
2460
2571
  */
2461
2572
  updateSettings(options: {
2462
- mcp_inclusion?: S['McpInclusionMode'] | null;
2463
2573
  teams: (S['LinearTeamUpdate'])[];
2464
2574
  }): Promise<S['AccountActionResponse']>;
2465
2575
  }
@@ -2538,18 +2648,6 @@ declare class EllipsisIntegrationsSlack {
2538
2648
  * Higher permission levels include lower levels: read < write < delete.
2539
2649
  */
2540
2650
  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
2651
  }
2554
2652
  declare class EllipsisIntegrations {
2555
2653
  private readonly transport;
@@ -2578,166 +2676,30 @@ declare class EllipsisIntegrations {
2578
2676
  */
2579
2677
  list(): Promise<S['GetIntegrationsResponse']>;
2580
2678
  }
2581
- declare class EllipsisMemories {
2679
+ declare class EllipsisReviewsConfigs {
2582
2680
  private readonly transport;
2583
2681
  constructor(transport: Transport);
2584
2682
  /**
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.
2683
+ * List Review Configs
2671
2684
  *
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.
2685
+ * List code review configs: every kind: code_review file synced from a repository, newest first.
2676
2686
  *
2677
- * Required permissions: read:memories.
2687
+ * Required permissions: read:reviews.
2678
2688
  * API key: Supported.
2679
2689
  * CLI user token: Supported.
2680
2690
  * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2681
2691
  * Higher permission levels include lower levels: read < write < delete.
2682
- * Grant match patterns can further restrict access to individual resources.
2683
2692
  */
2684
- list(options?: {
2685
- prefix?: string | null;
2686
- }): Promise<S['MemoriesListResponse']>;
2693
+ list(): Promise<S['ReviewConfigsListResponse']>;
2687
2694
  }
2688
2695
  declare class EllipsisReviews {
2689
2696
  private readonly transport;
2697
+ readonly configs: EllipsisReviewsConfigs;
2690
2698
  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
2699
  /**
2731
2700
  * Get Review
2732
2701
  *
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.
2702
+ * Get a code review: its reviewers and every comment they returned, posted or held back.
2741
2703
  *
2742
2704
  * Required permissions: read:reviews.
2743
2705
  * API key: Supported.
@@ -2751,14 +2713,6 @@ declare class EllipsisReviews {
2751
2713
  *
2752
2714
  * List code reviews, newest first.
2753
2715
  *
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
2716
  * Required permissions: read:reviews.
2763
2717
  * API key: Supported.
2764
2718
  * CLI user token: Supported.
@@ -2766,14 +2720,14 @@ declare class EllipsisReviews {
2766
2720
  * Higher permission levels include lower levels: read < write < delete.
2767
2721
  */
2768
2722
  list(options?: {
2769
- repository?: (string)[];
2770
- pull_request_number?: (number)[];
2771
- status?: (S['CodeReviewRunStatus'])[];
2723
+ repository?: (string)[] | null;
2724
+ pull_request_number?: (number)[] | null;
2725
+ status?: (S['CodeReviewStatus'])[] | null;
2772
2726
  start?: string | null;
2773
2727
  end?: string | null;
2774
2728
  limit?: number;
2775
2729
  cursor?: string | null;
2776
- }): Promise<Page<S['Review'], S['ReviewsListResponse']>>;
2730
+ }): Promise<Page<S['ReviewSummary'], S['ReviewsListResponse']>>;
2777
2731
  }
2778
2732
  declare class EllipsisSecrets {
2779
2733
  private readonly transport;
@@ -3021,27 +2975,23 @@ declare class EllipsisSessions {
3021
2975
  author_id?: number | null;
3022
2976
  repo?: string | null;
3023
2977
  unfinished?: boolean;
3024
- exclude_code_review?: boolean;
3025
2978
  }): Promise<Page<S['Session'], S['SessionsListResponse']>>;
3026
2979
  /**
3027
- * Get Session Output
2980
+ * Get Session Metrics
3028
2981
  *
3029
- * Return the session's typed output.
2982
+ * List the CPU, memory, swap, and disk readings of every VM the
2983
+ * session ran on, oldest first.
3030
2984
  *
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.
2985
+ * A reading is taken every 5 seconds while the session runs.
3036
2986
  *
3037
2987
  * Required permissions: read:sessions.
3038
2988
  * API key: Supported.
3039
2989
  * CLI user token: Supported.
3040
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2990
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own session.
3041
2991
  * Higher permission levels include lower levels: read < write < delete.
3042
2992
  * Grant match patterns can further restrict access to individual resources.
3043
2993
  */
3044
- output(session_id: string): Promise<Record<string, unknown>>;
2994
+ metrics(session_id: string): Promise<S['VMMetricsResponse']>;
3045
2995
  /**
3046
2996
  * Get Session Records
3047
2997
  *
@@ -3094,7 +3044,7 @@ declare class EllipsisSessions {
3094
3044
  *
3095
3045
  * Send a message to a session.
3096
3046
  *
3097
- * 409 for react/cron, non-interactive, closed, and out-of-budget
3047
+ * 409 for mention, non-interactive, closed, and out-of-budget
3098
3048
  * sessions. Returns the created message and its turn; a retried send
3099
3049
  * with the same idempotency_key returns the original ones.
3100
3050
  *
@@ -3135,9 +3085,9 @@ declare class EllipsisSessions {
3135
3085
  * Set exactly one of `claude_code` or `codex`. Its `prompt` is the
3136
3086
  * first message; omit the prompt and the session starts with no
3137
3087
  * 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.
3088
+ * and there is no prompt, or when `budget.session` exceeds the
3089
+ * organization's per-session ceiling. To start a session from a saved
3090
+ * agent, use POST /v1/agents/{agent_id}/sessions.
3141
3091
  *
3142
3092
  * Required permissions: write:sessions.
3143
3093
  * API key: Supported.
@@ -3147,17 +3097,16 @@ declare class EllipsisSessions {
3147
3097
  * Grant match patterns can further restrict access to individual resources.
3148
3098
  */
3149
3099
  start(options?: {
3150
- budget?: number | null;
3100
+ budget?: S['RunBudget'] | null;
3151
3101
  claude_code?: S['ClaudeConfig-Input'] | null;
3152
3102
  codex?: S['CodexConfig-Input'] | null;
3153
- conversation?: S['SessionConversationConfig'];
3103
+ conversation?: S['SessionConversationConfig-Input'];
3154
3104
  environment?: string | S['EnvironmentConfig-Input'] | null;
3155
3105
  force_rebuild?: boolean;
3156
3106
  images?: (S['ImageAttachment'])[];
3157
3107
  metadata?: Record<string, string>;
3158
3108
  output?: S['OutputConfig'] | null;
3159
3109
  permissions?: S['PermissionsConfig-Input'] | null;
3160
- repositories?: (string)[] | null;
3161
3110
  skills?: (S['SkillRef-Input'])[] | null;
3162
3111
  }): Promise<S['SessionResponse']>;
3163
3112
  /**
@@ -3528,6 +3477,23 @@ declare class EllipsisVms {
3528
3477
  limit?: number;
3529
3478
  offset?: number;
3530
3479
  }): Promise<S['VMListResponse']>;
3480
+ /**
3481
+ * List Vm Metrics
3482
+ *
3483
+ * List a VM's CPU, memory, swap, and disk readings, oldest first.
3484
+ *
3485
+ * A reading is taken every 5 seconds while a session runs on the VM.
3486
+ *
3487
+ * Required permissions: read:environments.
3488
+ * API key: Supported.
3489
+ * CLI user token: Supported.
3490
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own VM.
3491
+ * Higher permission levels include lower levels: read < write < delete.
3492
+ */
3493
+ metrics(vm_id: string, options?: {
3494
+ start?: string | null;
3495
+ end?: string | null;
3496
+ }): Promise<S['VMMetricsResponse']>;
3531
3497
  }
3532
3498
  declare class EllipsisWebhooksDeliveries {
3533
3499
  private readonly transport;
@@ -3683,7 +3649,6 @@ declare class Ellipsis {
3683
3649
  readonly environments: EllipsisEnvironments;
3684
3650
  readonly handlers: EllipsisHandlers;
3685
3651
  readonly integrations: EllipsisIntegrations;
3686
- readonly memories: EllipsisMemories;
3687
3652
  readonly reviews: EllipsisReviews;
3688
3653
  readonly secrets: EllipsisSecrets;
3689
3654
  readonly sessions: EllipsisSessions;
@@ -3700,10 +3665,12 @@ declare class Ellipsis {
3700
3665
  *
3701
3666
  * Return the identity behind the caller's credential.
3702
3667
  *
3703
- * Required permissions: read:account.
3668
+ * Any valid credential may call this; no permission grant is needed.
3669
+ *
3670
+ * Required permissions: none; any valid credential.
3704
3671
  * API key: Supported.
3705
3672
  * CLI user token: Supported.
3706
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
3673
+ * Session token: Requires the ellipsis:api scope; no permissions.ellipsis grant is needed.
3707
3674
  * Higher permission levels include lower levels: read < write < delete.
3708
3675
  */
3709
3676
  identity(): Promise<S['Identity']>;