@ellipsis-dev/sdk 0.22.0 → 0.25.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-BKAbWcLN.js';
2
- export { A as AgentConfigSource, a as AttributionType, B as BudgetSource, C as ClaudeSessionRecord, b as CodexEvent, d as CodexItem, e as CodexSessionRecord, f as CreateReviewRequest, D as DeltaFrame, g as DoneFrame, E as ErrorFrame, F as Finding, G as GithubAccountSnippet, h as GithubAccountType, H as Harness, i as HeartbeatFrame, L as LifecycleSessionRecord, P as ParentKind, j as PromptBlockedReason, R as RecordsAppendFrame, k as ResolvedReviewScope, l as Review, m as ReviewConfiguration, n as ReviewCounters, o as ReviewFinding, p as ReviewRequester, q as ReviewScope, r as ReviewScopeKind, s as ReviewStage, t as ReviewedCommit, u as ReviewsListResponse, S as SdkAssistantRecord, v as SdkContentBlock, w as SdkRateLimitRecord, x as SdkRecord, y as SdkResultRecord, z as SdkSystemRecord, I as SdkUserRecord, J as SendSessionMessageRequest, K as Session, M as SessionExitStatus, N as SessionFrame, O as SessionGit, Q as SessionLiveness, T as SessionMessage, U as SessionMessageResponse, V as SessionMessageStatus, W as SessionPrompting, X as SessionRecord, Y as SessionRecordsListResponse, Z as SessionResponse, _ as SessionSource, $ as SessionState, a0 as SessionStatus, a1 as SessionStreamFrame, a2 as SessionSurface, a3 as SessionsListResponse, a4 as SnapshotFrame, a5 as StreamFrame, a6 as TokensInfo, a7 as paths } from './types-BKAbWcLN.js';
1
+ import { c as components } from './types-DJzmFABi.js';
2
+ export { A as AttributionType, B as BudgetSource, C as ClaudeSessionRecord, a as CodexEvent, b as CodexItem, d as CodexSessionRecord, e as CreateReviewRequest, D as DeltaFrame, f as DoneFrame, E as ErrorFrame, F as Finding, G as GithubAccountSnippet, g as GithubAccountType, H as Harness, h as HeartbeatFrame, L as LifecycleSessionRecord, P as ParentKind, i as PromptBlockedReason, R as RecordsAppendFrame, j as ResolvedReviewScope, k as Review, l as ReviewConfiguration, m as ReviewCounters, n as ReviewFinding, o as ReviewRequester, p as ReviewScope, q as ReviewScopeKind, r as ReviewStage, s as ReviewedCommit, t as ReviewsListResponse, S as SdkAssistantRecord, u as SdkContentBlock, v as SdkRateLimitRecord, w as SdkRecord, x as SdkResultRecord, y as SdkSystemRecord, z as SdkUserRecord, I as SendSessionMessageRequest, J as Session, K as SessionExitStatus, M as SessionFrame, N as SessionGit, O as SessionLiveness, Q as SessionMessage, T as SessionMessageResponse, U as SessionMessageStatus, V as SessionPrompting, W as SessionRecord, X as SessionRecordsListResponse, Y as SessionResponse, Z as SessionSource, _ as SessionState, $ as SessionStatus, a0 as SessionStreamFrame, a1 as SessionSurface, a2 as SessionsListResponse, a3 as SnapshotFrame, a4 as StreamFrame, a5 as TokensInfo, a6 as paths } from './types-DJzmFABi.js';
3
3
 
4
4
  interface CursorResponse {
5
5
  has_more: boolean;
@@ -209,7 +209,7 @@ declare class EllipsisAutomations {
209
209
  * 409 when another live automation already holds the name.
210
210
  */
211
211
  create(options: {
212
- automation: S['AgentConfig'];
212
+ automation: S['AutomationConfig'];
213
213
  }): Promise<S['AutomationResponse']>;
214
214
  /**
215
215
  * Delete Automation
@@ -247,6 +247,18 @@ declare class EllipsisAutomations {
247
247
  * List automations.
248
248
  */
249
249
  list(): Promise<S['AutomationsListResponse']>;
250
+ /**
251
+ * Get Automation Metrics
252
+ *
253
+ * Return an automation's session distribution and trailing spend,
254
+ * by id or by name.
255
+ *
256
+ * `samples` carries one entry per finished session (duration, cost,
257
+ * tokens) for distributions; `spend_windows` carries what the
258
+ * automation's sessions cost over the last 1, 7, and 28 days against
259
+ * its budget for each window.
260
+ */
261
+ metrics(automation_id: string): Promise<S['AutomationMetricsResponse']>;
250
262
  /**
251
263
  * Start Automation Session
252
264
  *
@@ -285,7 +297,7 @@ declare class EllipsisAutomations {
285
297
  * would revert the change — unlink it first to take ownership.
286
298
  */
287
299
  update(automation_id: string, options: {
288
- automation: S['AgentConfig'];
300
+ automation: S['AutomationConfig'];
289
301
  }): Promise<S['AutomationResponse']>;
290
302
  }
291
303
  declare class EllipsisEnvironments {
@@ -301,7 +313,7 @@ declare class EllipsisEnvironments {
301
313
  * 409 when another live environment already holds the name.
302
314
  */
303
315
  create(options: {
304
- environment: S['EnvironmentConfig'];
316
+ environment: S['EnvironmentDocument'];
305
317
  }): Promise<S['EnvironmentResponse']>;
306
318
  /**
307
319
  * Delete Environment
@@ -338,7 +350,7 @@ declare class EllipsisEnvironments {
338
350
  * defined by a repository file is a 409.
339
351
  */
340
352
  update(environment_id: string, options: {
341
- environment: S['EnvironmentConfig'];
353
+ environment: S['EnvironmentDocument'];
342
354
  }): Promise<S['EnvironmentResponse']>;
343
355
  }
344
356
  declare class EllipsisFiles {
@@ -578,9 +590,10 @@ declare class EllipsisReviews {
578
590
  *
579
591
  * Run a code review on demand.
580
592
  *
581
- * Reviews an existing PR or a pushed branch (for a branch, the
582
- * platform finds or creates a draft PR for it, since a code
583
- * review is structurally about a PR).
593
+ * Reviews an open pull request. Which pipeline runs is not a
594
+ * parameter: it resolves from the repository's files exactly as
595
+ * it does for a push, so an on-demand review never disagrees with
596
+ * the automatic one.
584
597
  *
585
598
  * A review is one pipeline run over one commit range, with one
586
599
  * agent session per stage: `review.id` is the run id, and
@@ -613,16 +626,17 @@ declare class EllipsisReviews {
613
626
  *
614
627
  * List code reviews, newest first.
615
628
  *
616
- * `findings` is omitted (counters only).
629
+ * `findings` and `configuration` are omitted (counters only). Each
630
+ * filter is a set: repeat `repository`, `pull_request_number`, or
631
+ * `status` to match any of several values.
617
632
  *
618
633
  * Webhook-created reviews appear here too, so this answers "show
619
634
  * me every review on this PR".
620
635
  */
621
636
  list(options?: {
622
- owner?: string | null;
623
- repo?: string | null;
624
- pull_request_number?: number | null;
625
- status?: S['CodeReviewRunStatus'] | null;
637
+ repository?: (string)[];
638
+ pull_request_number?: (number)[];
639
+ status?: (S['CodeReviewRunStatus'])[];
626
640
  limit?: number;
627
641
  cursor?: string | null;
628
642
  }): Promise<Page<S['Review'], S['ReviewsListResponse']>>;
@@ -665,6 +679,18 @@ declare class EllipsisSecrets {
665
679
  declare class EllipsisSessions {
666
680
  private readonly transport;
667
681
  constructor(transport: Transport);
682
+ /**
683
+ * Get Agent Session Diff
684
+ *
685
+ * Return the session's uncommitted changes as a patch.
686
+ *
687
+ * One unified-diff section per changed file, captured from the
688
+ * sandbox's working tree when the session ended. The per-file
689
+ * counts ride on the session itself (`git.repos[].files`); this
690
+ * is the text behind them. Empty when the tree was clean. A
691
+ * sandbox token may read only its own session's diff.
692
+ */
693
+ diff(session_id: string): Promise<S['SessionDiffResponse']>;
668
694
  /**
669
695
  * Export Agent Session
670
696
  *
@@ -775,7 +801,7 @@ declare class EllipsisSessions {
775
801
  * Start a cloud agent session.
776
802
  *
777
803
  * The daily driver: a prompt, optionally where to run it
778
- * (`environment`) and the run's own settings, in the AgentConfig
804
+ * (`environment`) and the run's own settings, in the AutomationConfig
779
805
  * vocabulary. Anything omitted comes from the organization's
780
806
  * settings — default model, default environment, budget — so
781
807
  * `{"prompt": "..."}` alone is a complete request. `prompt` is the
@@ -786,16 +812,17 @@ declare class EllipsisSessions {
786
812
  */
787
813
  start(options?: {
788
814
  budget?: number | null;
789
- claude?: S['AgentConfigClaude'] | null;
790
- codex?: S['AgentConfigCodex'] | null;
791
- environment?: string | S['AgentConfigEnvironment'] | null;
815
+ claude?: S['ClaudeConfig'] | null;
816
+ codex?: S['CodexConfig'] | null;
817
+ environment?: string | S['EnvironmentConfig'] | null;
792
818
  force_rebuild?: boolean;
793
819
  interactive?: boolean;
794
820
  metadata?: Record<string, string>;
795
- output?: S['AgentConfigOutput'] | null;
796
- permissions?: S['AgentConfigPermissions'] | null;
821
+ output?: S['OutputConfig'] | null;
822
+ permissions?: S['PermissionsConfig'] | null;
797
823
  prompt?: string | null;
798
- skills?: (S['AgentConfigSkill'])[] | null;
824
+ repositories?: (string)[] | null;
825
+ skills?: (S['SkillRef'])[] | null;
799
826
  }): Promise<S['SessionResponse']>;
800
827
  /**
801
828
  * Stop Agent Session
package/dist/index.js CHANGED
@@ -445,6 +445,21 @@ var EllipsisAutomations = class {
445
445
  const path = "/v1/automations";
446
446
  return await this.transport.request("GET", path);
447
447
  }
448
+ /**
449
+ * Get Automation Metrics
450
+ *
451
+ * Return an automation's session distribution and trailing spend,
452
+ * by id or by name.
453
+ *
454
+ * `samples` carries one entry per finished session (duration, cost,
455
+ * tokens) for distributions; `spend_windows` carries what the
456
+ * automation's sessions cost over the last 1, 7, and 28 days against
457
+ * its budget for each window.
458
+ */
459
+ async metrics(automation_id) {
460
+ const path = `/v1/automations/${enc(automation_id)}/metrics`;
461
+ return await this.transport.request("GET", path);
462
+ }
448
463
  /**
449
464
  * Start Automation Session
450
465
  *
@@ -860,9 +875,10 @@ var EllipsisReviews = class {
860
875
  *
861
876
  * Run a code review on demand.
862
877
  *
863
- * Reviews an existing PR or a pushed branch (for a branch, the
864
- * platform finds or creates a draft PR for it, since a code
865
- * review is structurally about a PR).
878
+ * Reviews an open pull request. Which pipeline runs is not a
879
+ * parameter: it resolves from the repository's files exactly as
880
+ * it does for a push, so an on-demand review never disagrees with
881
+ * the automatic one.
866
882
  *
867
883
  * A review is one pipeline run over one commit range, with one
868
884
  * agent session per stage: `review.id` is the run id, and
@@ -896,14 +912,16 @@ var EllipsisReviews = class {
896
912
  *
897
913
  * List code reviews, newest first.
898
914
  *
899
- * `findings` is omitted (counters only).
915
+ * `findings` and `configuration` are omitted (counters only). Each
916
+ * filter is a set: repeat `repository`, `pull_request_number`, or
917
+ * `status` to match any of several values.
900
918
  *
901
919
  * Webhook-created reviews appear here too, so this answers "show
902
920
  * me every review on this PR".
903
921
  */
904
922
  async list(options = {}) {
905
923
  const path = "/v1/reviews";
906
- const query = buildQuery({ owner: options.owner, repo: options.repo, pull_request_number: options.pull_request_number, status: options.status, limit: options.limit, cursor: options.cursor });
924
+ const query = buildQuery({ repository: options.repository, pull_request_number: options.pull_request_number, status: options.status, limit: options.limit, cursor: options.cursor });
907
925
  const response = await this.transport.request("GET", path, { query });
908
926
  return new Page(
909
927
  response,
@@ -962,6 +980,21 @@ var EllipsisSessions = class {
962
980
  this.transport = transport;
963
981
  }
964
982
  transport;
983
+ /**
984
+ * Get Agent Session Diff
985
+ *
986
+ * Return the session's uncommitted changes as a patch.
987
+ *
988
+ * One unified-diff section per changed file, captured from the
989
+ * sandbox's working tree when the session ended. The per-file
990
+ * counts ride on the session itself (`git.repos[].files`); this
991
+ * is the text behind them. Empty when the tree was clean. A
992
+ * sandbox token may read only its own session's diff.
993
+ */
994
+ async diff(session_id) {
995
+ const path = `/v1/sessions/${enc(session_id)}/diff`;
996
+ return await this.transport.request("GET", path);
997
+ }
965
998
  /**
966
999
  * Export Agent Session
967
1000
  *
@@ -1087,7 +1120,7 @@ var EllipsisSessions = class {
1087
1120
  * Start a cloud agent session.
1088
1121
  *
1089
1122
  * The daily driver: a prompt, optionally where to run it
1090
- * (`environment`) and the run's own settings, in the AgentConfig
1123
+ * (`environment`) and the run's own settings, in the AutomationConfig
1091
1124
  * vocabulary. Anything omitted comes from the organization's
1092
1125
  * settings — default model, default environment, budget — so
1093
1126
  * `{"prompt": "..."}` alone is a complete request. `prompt` is the
@@ -1098,7 +1131,7 @@ var EllipsisSessions = class {
1098
1131
  */
1099
1132
  async start(options = {}) {
1100
1133
  const path = "/v1/sessions";
1101
- const body = buildBody({ budget: options.budget, claude: options.claude, codex: options.codex, environment: options.environment, force_rebuild: options.force_rebuild, interactive: options.interactive, metadata: options.metadata, output: options.output, permissions: options.permissions, prompt: options.prompt, skills: options.skills });
1134
+ const body = buildBody({ budget: options.budget, claude: options.claude, codex: options.codex, environment: options.environment, force_rebuild: options.force_rebuild, interactive: options.interactive, metadata: options.metadata, output: options.output, permissions: options.permissions, prompt: options.prompt, repositories: options.repositories, skills: options.skills });
1102
1135
  return await this.transport.request("POST", path, { body });
1103
1136
  }
1104
1137
  /**
@@ -1,4 +1,4 @@
1
- import { X as SessionRecord, a8 as CodexFileChangeItem, b as CodexEvent, a9 as CodexMcpToolCallItem, x as SdkRecord, K as Session, T as SessionMessage, a5 as StreamFrame } from '../types-BKAbWcLN.js';
1
+ import { W as SessionRecord, a7 as CodexFileChangeItem, a as CodexEvent, a8 as CodexMcpToolCallItem, w as SdkRecord, J as Session, Q as SessionMessage, a4 as StreamFrame } from '../types-DJzmFABi.js';
2
2
 
3
3
  interface ChatToolNode {
4
4
  key: string;
@@ -1,4 +1,4 @@
1
- import { a5 as StreamFrame, K as Session } from '../types-BKAbWcLN.js';
1
+ import { a4 as StreamFrame, J as Session } from '../types-DJzmFABi.js';
2
2
 
3
3
  declare const SESSION_STREAM_PROTOCOL_VERSION = 3;
4
4
  declare const WS_CLOSE_NORMAL = 1000;