@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.js CHANGED
@@ -491,7 +491,7 @@ var EllipsisAccountBilling = class {
491
491
  * Explain whether your account can start sessions.
492
492
  *
493
493
  * Uses the same account gate as session admission, including credit,
494
- * contact email, and personal Claude subscription eligibility. Scoped
494
+ * contact email, and personal subscription eligibility. Scoped
495
495
  * spend limits are reported separately by /v1/account/budget.
496
496
  *
497
497
  * Required permissions: read:account.
@@ -516,13 +516,11 @@ var EllipsisAccountModels = class {
516
516
  * List selectable agent models.
517
517
  *
518
518
  * Grouped by manufacturer and model family, newest versions first
519
- * within each family, with the organization's default model
520
- * flagged (`is_default_agent_model`: the `default_model` of
521
- * `GET /v1/account/settings`).
519
+ * within each family.
522
520
  *
523
521
  * Reads the same registry as the dashboard's rate table, so a
524
522
  * client's model picker can never drift from what's offered. The
525
- * selectable set is global; only the flag is account-scoped.
523
+ * selectable set is global.
526
524
  *
527
525
  * Required permissions: read:templates.
528
526
  * API key: Supported.
@@ -600,77 +598,10 @@ var EllipsisAccountOnboarding = class {
600
598
  */
601
599
  async update(options = {}) {
602
600
  const path = "/v1/account/onboarding";
603
- const body = buildBody({ other_use_case: options.other_use_case, use_cases: options.use_cases, work_email: options.work_email });
601
+ const body = buildBody({ finished: options.finished, other_use_case: options.other_use_case, use_cases: options.use_cases, work_email: options.work_email });
604
602
  return await this.transport.request("PATCH", path, { body });
605
603
  }
606
604
  };
607
- var EllipsisAccountProvidersAnthropic = class {
608
- constructor(transport) {
609
- this.transport = transport;
610
- }
611
- transport;
612
- /**
613
- * Delete Anthropic Config
614
- *
615
- * Required permissions: delete:account.
616
- * API key: Supported.
617
- * CLI user token: Supported.
618
- * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
619
- * Higher permission levels include lower levels: read < write < delete.
620
- */
621
- async delete() {
622
- const path = "/v1/account/providers/anthropic";
623
- await this.transport.request("DELETE", path);
624
- }
625
- /**
626
- * Get Anthropic Config
627
- *
628
- * Required permissions: read:account.
629
- * API key: Supported.
630
- * CLI user token: Supported.
631
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
632
- * Higher permission levels include lower levels: read < write < delete.
633
- */
634
- async get() {
635
- const path = "/v1/account/providers/anthropic";
636
- return await this.transport.request("GET", path);
637
- }
638
- /**
639
- * Put Anthropic Config
640
- *
641
- * Required permissions: write:account.
642
- * API key: Supported.
643
- * CLI user token: Supported.
644
- * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
645
- * Higher permission levels include lower levels: read < write < delete.
646
- */
647
- async set(options) {
648
- const path = "/v1/account/providers/anthropic";
649
- const body = buildBody({ api_key: options.api_key });
650
- return await this.transport.request("PUT", path, { body });
651
- }
652
- /**
653
- * Validate Anthropic Config
654
- *
655
- * Required permissions: write:account.
656
- * API key: Supported.
657
- * CLI user token: Supported.
658
- * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
659
- * Higher permission levels include lower levels: read < write < delete.
660
- */
661
- async validate() {
662
- const path = "/v1/account/providers/anthropic/validate";
663
- return await this.transport.request("POST", path);
664
- }
665
- };
666
- var EllipsisAccountProviders = class {
667
- constructor(transport) {
668
- this.transport = transport;
669
- this.anthropic = new EllipsisAccountProvidersAnthropic(transport);
670
- }
671
- transport;
672
- anthropic;
673
- };
674
605
  var EllipsisAccountSettings = class {
675
606
  constructor(transport) {
676
607
  this.transport = transport;
@@ -681,9 +612,9 @@ var EllipsisAccountSettings = class {
681
612
  *
682
613
  * Get the organization settings.
683
614
  *
684
- * Session model and budget defaults, code review and mention behavior,
685
- * analytics, retention, and notification contacts. PATCH replaces
686
- * supplied sections; PUT preserves its model-and-budget-only behavior.
615
+ * Session budget ceiling, mention behavior, analytics,
616
+ * retention, and notification contacts. PATCH replaces
617
+ * supplied sections; PUT sets the budget ceiling only.
687
618
  *
688
619
  * Required permissions: read:defaults.
689
620
  * API key: Supported.
@@ -700,13 +631,10 @@ var EllipsisAccountSettings = class {
700
631
  *
701
632
  * Set the organization settings.
702
633
  *
703
- * Replaces both: `default_model` accepts an alias or canonical id
704
- * and is stored canonical, and cannot be cleared (it is the only
705
- * default a session's model resolves against);
706
634
  * `budget_ceiling.session` is in US dollars, at most the platform
707
635
  * ceiling, and null clears it.
708
636
  * Refused for session tokens (potentially prompt-injected code must
709
- * not repoint the organization's defaults).
637
+ * not raise the organization's ceiling).
710
638
  *
711
639
  * Required permissions: write:defaults.
712
640
  * API key: Requires a CLI user token belonging to an account administrator.
@@ -714,9 +642,9 @@ var EllipsisAccountSettings = class {
714
642
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
715
643
  * Higher permission levels include lower levels: read < write < delete.
716
644
  */
717
- async set(options) {
645
+ async set(options = {}) {
718
646
  const path = "/v1/account/settings";
719
- const body = buildBody({ budget_ceiling: options.budget_ceiling, default_model: options.default_model });
647
+ const body = buildBody({ budget_ceiling: options.budget_ceiling });
720
648
  return await this.transport.request("PUT", path, { body });
721
649
  }
722
650
  /**
@@ -724,17 +652,17 @@ var EllipsisAccountSettings = class {
724
652
  *
725
653
  * Replace supplied settings sections without changing omitted sections.
726
654
  *
727
- * Changes to model or budget defaults require a GitHub administrator.
655
+ * Changes to the budget ceiling require a GitHub administrator.
728
656
  *
729
657
  * Required permissions: write:defaults.
730
- * 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.
731
- * CLI user token: Requires an account administrator when setting budget_ceiling, default_model to a non-null value.
658
+ * API key: Cannot set budget_ceiling to a non-null value; those changes require a CLI user token belonging to an account administrator.
659
+ * CLI user token: Requires an account administrator when setting budget_ceiling to a non-null value.
732
660
  * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
733
661
  * Higher permission levels include lower levels: read < write < delete.
734
662
  */
735
663
  async update(options = {}) {
736
664
  const path = "/v1/account/settings";
737
- const body = buildBody({ analytics: options.analytics, budget_ceiling: options.budget_ceiling, code_review: options.code_review, data_retention: options.data_retention, default_model: options.default_model, notifications: options.notifications });
665
+ const body = buildBody({ analytics: options.analytics, budget_ceiling: options.budget_ceiling, data_retention: options.data_retention, notifications: options.notifications });
738
666
  return await this.transport.request("PATCH", path, { body });
739
667
  }
740
668
  };
@@ -746,7 +674,6 @@ var EllipsisAccount = class {
746
674
  this.models = new EllipsisAccountModels(transport);
747
675
  this.notifications = new EllipsisAccountNotifications(transport);
748
676
  this.onboarding = new EllipsisAccountOnboarding(transport);
749
- this.providers = new EllipsisAccountProviders(transport);
750
677
  this.settings = new EllipsisAccountSettings(transport);
751
678
  }
752
679
  transport;
@@ -755,7 +682,6 @@ var EllipsisAccount = class {
755
682
  models;
756
683
  notifications;
757
684
  onboarding;
758
- providers;
759
685
  settings;
760
686
  /**
761
687
  * Get Customer Activity
@@ -853,7 +779,7 @@ var EllipsisAccount = class {
853
779
  *
854
780
  * Omit period_start for the current UTC month; select a period returned
855
781
  * in billing_periods to view history. Credit debits are distinct from
856
- * rated token usage through BYOK or a developer's Claude or Codex
782
+ * rated token usage through a developer's Claude or Codex
857
783
  * subscription. Rated usage estimates are not provider invoices.
858
784
  * Pending and unresolved requests identify missing measurements.
859
785
  *
@@ -994,17 +920,19 @@ var EllipsisAgents = class {
994
920
  /**
995
921
  * Start Agent Session
996
922
  *
997
- * Invoke an agent.
923
+ * Start an agent session.
998
924
  *
999
- * Runs a certified agent with its configured instructions, model,
1000
- * environment, permissions, skills, and budget, and returns
1001
- * the session it started. The session runs once and does not accept
1002
- * follow-up messages. If the agent declares input.json_schema,
1003
- * send only `input` for its initial message. Otherwise send a non-empty
1004
- * `prompt`, which becomes the initial message verbatim. Both fields
1005
- * together, neither field, and input that renders an empty message are
1006
- * rejected with 422. An optional `budget` lowers the session cap;
1007
- * `metadata` tags the session. Codex invocations are not supported.
925
+ * Starts a session from the agent's saved `session` settings and
926
+ * returns it. The body takes the fields of POST /v1/sessions, all
927
+ * optional: each field you send replaces the agent's value for that
928
+ * field, and each field you leave out keeps it. `metadata` is merged
929
+ * into the agent's key by key, and a `null` value removes a key.
930
+ * Other lists and maps, and `environment`, are replaced whole;
931
+ * naming the other harness replaces the agent's. An empty body starts
932
+ * the agent as written. If the agent declares input.json_schema, send
933
+ * `input`; its rendered message is added after the prompt. A run-once
934
+ * session needs a prompt or `input` from the agent or the request, or
935
+ * the call is a 400.
1008
936
  *
1009
937
  * Required permissions: write:sessions.
1010
938
  * API key: Supported.
@@ -1013,9 +941,9 @@ var EllipsisAgents = class {
1013
941
  * Higher permission levels include lower levels: read < write < delete.
1014
942
  * Grant match patterns can further restrict access to individual resources.
1015
943
  */
1016
- async run(agent_id, options = {}) {
944
+ async start(agent_id, options = {}) {
1017
945
  const path = `/v1/agents/${enc(agent_id)}/sessions`;
1018
- const body = buildBody({ budget: options.budget, input: options.input, metadata: options.metadata, prompt: options.prompt });
946
+ const body = buildBody({ budget: options.budget, claude_code: options.claude_code, codex: options.codex, conversation: options.conversation, environment: options.environment, force_rebuild: options.force_rebuild, images: options.images, input: options.input, metadata: options.metadata, output: options.output, permissions: options.permissions, skills: options.skills });
1019
947
  return await this.transport.request("POST", path, { body });
1020
948
  }
1021
949
  /**
@@ -1192,7 +1120,7 @@ var EllipsisAnalytics = class {
1192
1120
  /**
1193
1121
  * Get Analytics Reviews
1194
1122
  *
1195
- * Return code-review analytics.
1123
+ * Return pull request review analytics.
1196
1124
  *
1197
1125
  * account_type scopes reviewers (bot|user|all) — e.g. "what apps
1198
1126
  * review the most PRs?" is the reviewer facets here with
@@ -1513,7 +1441,7 @@ var EllipsisIntegrationsLinear = class {
1513
1441
  */
1514
1442
  async updateSettings(options) {
1515
1443
  const path = "/v1/integrations/linear/settings";
1516
- const body = buildBody({ mcp_inclusion: options.mcp_inclusion, teams: options.teams });
1444
+ const body = buildBody({ teams: options.teams });
1517
1445
  return await this.transport.request("PUT", path, { body });
1518
1446
  }
1519
1447
  };
@@ -1614,20 +1542,6 @@ var EllipsisIntegrationsSlack = class {
1614
1542
  const path = "/v1/integrations/slack/members";
1615
1543
  return await this.transport.request("GET", path);
1616
1544
  }
1617
- /**
1618
- * Update Slack Settings
1619
- *
1620
- * Required permissions: write:integrations.
1621
- * API key: Supported.
1622
- * CLI user token: Supported.
1623
- * Session token: Not supported by session tokens, even with permissions.ellipsis enabled.
1624
- * Higher permission levels include lower levels: read < write < delete.
1625
- */
1626
- async updateSettings(options) {
1627
- const path = "/v1/integrations/slack/settings";
1628
- const body = buildBody({ mcp_inclusion: options.mcp_inclusion });
1629
- return await this.transport.request("PUT", path, { body });
1630
- }
1631
1545
  };
1632
1546
  var EllipsisIntegrations = class {
1633
1547
  constructor(transport) {
@@ -1665,178 +1579,38 @@ var EllipsisIntegrations = class {
1665
1579
  return await this.transport.request("GET", path);
1666
1580
  }
1667
1581
  };
1668
- var EllipsisMemories = class {
1582
+ var EllipsisReviewsConfigs = class {
1669
1583
  constructor(transport) {
1670
1584
  this.transport = transport;
1671
1585
  }
1672
1586
  transport;
1673
1587
  /**
1674
- * Create Memory
1675
- *
1676
- * Save a memory for future agent sessions.
1677
- *
1678
- * Memories are durable lessons shared across the whole
1679
- * organization — conventions, past decisions, known gotchas that an
1680
- * agent cannot derive from the repository itself. One concise fact
1681
- * per memory; the description is what a reader sees in the index.
1682
- *
1683
- * Creating never overwrites: a path that already exists is a 409, so
1684
- * correcting an existing memory is an explicit edit.
1685
- *
1686
- * Required permissions: write:memories.
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
- * Grant match patterns can further restrict access to individual resources.
1692
- */
1693
- async create(options) {
1694
- const path = "/v1/memories";
1695
- const body = buildBody({ content: options.content, description: options.description, path: options.path });
1696
- return await this.transport.request("POST", path, { body });
1697
- }
1698
- /**
1699
- * Delete Memory
1700
- *
1701
- * Delete a memory that is no longer true.
1702
- *
1703
- * Available to every credential type, agents included — a wrong
1704
- * memory is worse than a missing one. The deleted content is kept in
1705
- * the memory's history for forensics, not for an undo API.
1706
- *
1707
- * Required permissions: delete:memories.
1708
- * API key: Supported.
1709
- * CLI user token: Supported.
1710
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1711
- * Higher permission levels include lower levels: read < write < delete.
1712
- * Grant match patterns can further restrict access to individual resources.
1713
- */
1714
- async delete(memory_id, options = {}) {
1715
- const path = `/v1/memories/${enc(memory_id)}`;
1716
- const query = buildQuery({ if_sha256: options.if_sha256 });
1717
- await this.transport.request("DELETE", path, { query });
1718
- }
1719
- /**
1720
- * Edit Memory
1721
- *
1722
- * Correct an existing memory in place.
1723
- *
1724
- * Pass description, content, or both. This never creates a memory (an
1725
- * unknown id is a 404) and never moves one — the path is immutable, so
1726
- * relocating a memory is a delete plus a create.
1727
- *
1728
- * Pass `if_sha256` (from a previous read) to make a concurrent write
1729
- * a 409 instead of silently overwriting it.
1730
- *
1731
- * Required permissions: write:memories.
1732
- * API key: Supported.
1733
- * CLI user token: Supported.
1734
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1735
- * Higher permission levels include lower levels: read < write < delete.
1736
- * Grant match patterns can further restrict access to individual resources.
1737
- */
1738
- async edit(memory_id, options = {}) {
1739
- const path = `/v1/memories/${enc(memory_id)}`;
1740
- const body = buildBody({ content: options.content, description: options.description, if_sha256: options.if_sha256 });
1741
- return await this.transport.request("PUT", path, { body });
1742
- }
1743
- /**
1744
- * Get Memory
1745
- *
1746
- * Read one memory's full content.
1588
+ * List Review Configs
1747
1589
  *
1748
- * The id comes from the index returned by listing memories.
1590
+ * List code review configs: every kind: code_review file synced from a repository, newest first.
1749
1591
  *
1750
- * Required permissions: read:memories.
1592
+ * Required permissions: read:reviews.
1751
1593
  * API key: Supported.
1752
1594
  * CLI user token: Supported.
1753
1595
  * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1754
1596
  * Higher permission levels include lower levels: read < write < delete.
1755
- * Grant match patterns can further restrict access to individual resources.
1756
1597
  */
1757
- async get(memory_id) {
1758
- const path = `/v1/memories/${enc(memory_id)}`;
1598
+ async list() {
1599
+ const path = "/v1/reviews/configs";
1759
1600
  return await this.transport.request("GET", path);
1760
1601
  }
1761
- /**
1762
- * List Memories
1763
- *
1764
- * List the organization's memories as a readable index.
1765
- *
1766
- * Returns the memories rendered as a markdown index (one line per
1767
- * memory, carrying its id, path, and description) plus the same
1768
- * entries structured, each with every field except `content`. Read
1769
- * the index, then fetch the ids whose content you want.
1770
- *
1771
- * Required permissions: read:memories.
1772
- * API key: Supported.
1773
- * CLI user token: Supported.
1774
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1775
- * Higher permission levels include lower levels: read < write < delete.
1776
- * Grant match patterns can further restrict access to individual resources.
1777
- */
1778
- async list(options = {}) {
1779
- const path = "/v1/memories";
1780
- const query = buildQuery({ prefix: options.prefix });
1781
- return await this.transport.request("GET", path, { query });
1782
- }
1783
1602
  };
1784
1603
  var EllipsisReviews = class {
1785
1604
  constructor(transport) {
1786
1605
  this.transport = transport;
1606
+ this.configs = new EllipsisReviewsConfigs(transport);
1787
1607
  }
1788
1608
  transport;
1789
- /**
1790
- * List Review Configs
1791
- *
1792
- * Required permissions: read:reviews.
1793
- * API key: Supported.
1794
- * CLI user token: Supported.
1795
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1796
- * Higher permission levels include lower levels: read < write < delete.
1797
- */
1798
- async configs() {
1799
- const path = "/v1/reviews/configs";
1800
- return await this.transport.request("GET", path);
1801
- }
1802
- /**
1803
- * Create Review
1804
- *
1805
- * Run a code review on demand.
1806
- *
1807
- * Reviews an open pull request. Which pipeline runs is not a
1808
- * parameter: it resolves from the repository's files exactly as
1809
- * it does for a push, so an on-demand review never disagrees with
1810
- * the automatic one.
1811
- *
1812
- * A review is one pipeline run over one commit range, with one
1813
- * agent session per stage: `review.id` is the review id, and
1814
- * `stages[].session_id` is where a client streams
1815
- * (/sessions/{id}/stream on a stage session), since the review
1816
- * itself is a pipeline rather than one process.
1817
- *
1818
- * Required permissions: write:reviews.
1819
- * API key: Supported.
1820
- * CLI user token: Supported.
1821
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1822
- * Higher permission levels include lower levels: read < write < delete.
1823
- */
1824
- async create(options) {
1825
- const path = "/v1/reviews";
1826
- const body = buildBody({ owner: options.owner, post: options.post, pull_request_number: options.pull_request_number, repo: options.repo, scope: options.scope });
1827
- return await this.transport.request("POST", path, { body });
1828
- }
1609
+ configs;
1829
1610
  /**
1830
1611
  * Get Review
1831
1612
  *
1832
- * Return one review with findings and outcome.
1833
- *
1834
- * Includes its scope, the per-stage sessions, the parsed findings,
1835
- * the finding counters, and the posting outcome.
1836
- *
1837
- * Findings only exist after a stage session finalizes — a running
1838
- * review honestly reports [] / null, which is why a client
1839
- * streams a stage session and then re-fetches the review.
1613
+ * Get a code review: its reviewers and every comment they returned, posted or held back.
1840
1614
  *
1841
1615
  * Required permissions: read:reviews.
1842
1616
  * API key: Supported.
@@ -1853,14 +1627,6 @@ var EllipsisReviews = class {
1853
1627
  *
1854
1628
  * List code reviews, newest first.
1855
1629
  *
1856
- * `findings` and `configuration` are omitted (counters only). Each
1857
- * filter is a set: repeat `repository`, `pull_request_number`, or
1858
- * `status` to match any of several values. `start` and `end` bound
1859
- * the review's creation time.
1860
- *
1861
- * Webhook-created reviews appear here too, so this answers "show
1862
- * me every review on this PR".
1863
- *
1864
1630
  * Required permissions: read:reviews.
1865
1631
  * API key: Supported.
1866
1632
  * CLI user token: Supported.
@@ -2150,7 +1916,7 @@ var EllipsisSessions = class {
2150
1916
  */
2151
1917
  async list(options = {}) {
2152
1918
  const path = "/v1/sessions";
2153
- const query = buildQuery({ agent: options.agent, source: options.source, service: options.service, handler: options.handler, days: options.days, start: options.start, end: options.end, limit: options.limit, cursor: options.cursor, author_id: options.author_id, repo: options.repo, unfinished: options.unfinished, exclude_code_review: options.exclude_code_review });
1919
+ const query = buildQuery({ agent: options.agent, source: options.source, service: options.service, handler: options.handler, days: options.days, start: options.start, end: options.end, limit: options.limit, cursor: options.cursor, author_id: options.author_id, repo: options.repo, unfinished: options.unfinished });
2154
1920
  const response = await this.transport.request("GET", path, { query });
2155
1921
  return new Page(
2156
1922
  response,
@@ -2159,25 +1925,22 @@ var EllipsisSessions = class {
2159
1925
  );
2160
1926
  }
2161
1927
  /**
2162
- * Get Session Output
1928
+ * Get Session Metrics
2163
1929
  *
2164
- * Return the session's typed output.
1930
+ * List the CPU, memory, swap, and disk readings of every VM the
1931
+ * session ran on, oldest first.
2165
1932
  *
2166
- * The payload the agent submitted through its config-declared
2167
- * output.json_schema, as the raw JSON body with no envelope. 404
2168
- * while the session is still running (poll GET /v1/sessions/{id}),
2169
- * when the agent declares no output block, or when no turn
2170
- * produced output.
1933
+ * A reading is taken every 5 seconds while the session runs.
2171
1934
  *
2172
1935
  * Required permissions: read:sessions.
2173
1936
  * API key: Supported.
2174
1937
  * CLI user token: Supported.
2175
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
1938
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own session.
2176
1939
  * Higher permission levels include lower levels: read < write < delete.
2177
1940
  * Grant match patterns can further restrict access to individual resources.
2178
1941
  */
2179
- async output(session_id) {
2180
- const path = `/v1/sessions/${enc(session_id)}/output`;
1942
+ async metrics(session_id) {
1943
+ const path = `/v1/sessions/${enc(session_id)}/metrics`;
2181
1944
  return await this.transport.request("GET", path);
2182
1945
  }
2183
1946
  /**
@@ -2228,7 +1991,7 @@ var EllipsisSessions = class {
2228
1991
  *
2229
1992
  * Send a message to a session.
2230
1993
  *
2231
- * 409 for react/cron, non-interactive, closed, and out-of-budget
1994
+ * 409 for mention, non-interactive, closed, and out-of-budget
2232
1995
  * sessions. Returns the created message and its turn; a retried send
2233
1996
  * with the same idempotency_key returns the original ones.
2234
1997
  *
@@ -2272,9 +2035,9 @@ var EllipsisSessions = class {
2272
2035
  * Set exactly one of `claude_code` or `codex`. Its `prompt` is the
2273
2036
  * first message; omit the prompt and the session starts with no
2274
2037
  * turn, waiting for one. 400 when `conversation.interactive` is false
2275
- * and there is no prompt, or when `budget` exceeds the organization's
2276
- * per-session ceiling. To run a saved agent, use
2277
- * POST /v1/agents/{agent_id}/sessions.
2038
+ * and there is no prompt, or when `budget.session` exceeds the
2039
+ * organization's per-session ceiling. To start a session from a saved
2040
+ * agent, use POST /v1/agents/{agent_id}/sessions.
2278
2041
  *
2279
2042
  * Required permissions: write:sessions.
2280
2043
  * API key: Supported.
@@ -2285,7 +2048,7 @@ var EllipsisSessions = class {
2285
2048
  */
2286
2049
  async start(options = {}) {
2287
2050
  const path = "/v1/sessions";
2288
- const body = buildBody({ budget: options.budget, claude_code: options.claude_code, codex: options.codex, conversation: options.conversation, environment: options.environment, force_rebuild: options.force_rebuild, images: options.images, metadata: options.metadata, output: options.output, permissions: options.permissions, repositories: options.repositories, skills: options.skills });
2051
+ const body = buildBody({ budget: options.budget, claude_code: options.claude_code, codex: options.codex, conversation: options.conversation, environment: options.environment, force_rebuild: options.force_rebuild, images: options.images, metadata: options.metadata, output: options.output, permissions: options.permissions, skills: options.skills });
2289
2052
  return await this.transport.request("POST", path, { body });
2290
2053
  }
2291
2054
  /**
@@ -2743,6 +2506,24 @@ var EllipsisVms = class {
2743
2506
  const query = buildQuery({ limit: options.limit, offset: options.offset });
2744
2507
  return await this.transport.request("GET", path, { query });
2745
2508
  }
2509
+ /**
2510
+ * List Vm Metrics
2511
+ *
2512
+ * List a VM's CPU, memory, swap, and disk readings, oldest first.
2513
+ *
2514
+ * A reading is taken every 5 seconds while a session runs on the VM.
2515
+ *
2516
+ * Required permissions: read:environments.
2517
+ * API key: Supported.
2518
+ * CLI user token: Supported.
2519
+ * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration. Only the token's own VM.
2520
+ * Higher permission levels include lower levels: read < write < delete.
2521
+ */
2522
+ async metrics(vm_id, options = {}) {
2523
+ const path = `/v1/vms/${enc(vm_id)}/metrics`;
2524
+ const query = buildQuery({ start: options.start, end: options.end });
2525
+ return await this.transport.request("GET", path, { query });
2526
+ }
2746
2527
  };
2747
2528
  var EllipsisWebhooksDeliveries = class {
2748
2529
  constructor(transport) {
@@ -2919,7 +2700,6 @@ var Ellipsis = class {
2919
2700
  environments;
2920
2701
  handlers;
2921
2702
  integrations;
2922
- memories;
2923
2703
  reviews;
2924
2704
  secrets;
2925
2705
  sessions;
@@ -2940,7 +2720,6 @@ var Ellipsis = class {
2940
2720
  this.environments = new EllipsisEnvironments(this.transport);
2941
2721
  this.handlers = new EllipsisHandlers(this.transport);
2942
2722
  this.integrations = new EllipsisIntegrations(this.transport);
2943
- this.memories = new EllipsisMemories(this.transport);
2944
2723
  this.reviews = new EllipsisReviews(this.transport);
2945
2724
  this.secrets = new EllipsisSecrets(this.transport);
2946
2725
  this.sessions = new EllipsisSessions(this.transport);
@@ -2957,10 +2736,12 @@ var Ellipsis = class {
2957
2736
  *
2958
2737
  * Return the identity behind the caller's credential.
2959
2738
  *
2960
- * Required permissions: read:account.
2739
+ * Any valid credential may call this; no permission grant is needed.
2740
+ *
2741
+ * Required permissions: none; any valid credential.
2961
2742
  * API key: Supported.
2962
2743
  * CLI user token: Supported.
2963
- * Session token: Requires the ellipsis:api scope and the required grants in the token's permissions.ellipsis configuration.
2744
+ * Session token: Requires the ellipsis:api scope; no permissions.ellipsis grant is needed.
2964
2745
  * Higher permission levels include lower levels: read < write < delete.
2965
2746
  */
2966
2747
  async identity() {
@@ -1,4 +1,4 @@
1
- import { q as CodexAgentMessage, cn as SessionRecord, K as CodexFileChangeItem, I as CodexEvent, X as CodexMcpToolCallItem, bM as SdkRecord, bZ as Session, ch as SessionMessage, cG as StreamFrame } from '../types-BQxZcD0_.js';
1
+ import { r as CodexAgentMessage, cp as SessionRecord, L as CodexFileChangeItem, J as CodexEvent, Y as CodexMcpToolCallItem, bM as SdkRecord, bZ as Session, ci as SessionMessage, cI as StreamFrame } from '../types-DjY1VcOe.js';
2
2
 
3
3
  type WorkPhase = 'queued' | 'preparing' | 'starting' | 'working';
4
4
  interface TurnTiming {
@@ -1,4 +1,4 @@
1
- import { cG as StreamFrame, bZ as Session } from '../types-BQxZcD0_.js';
1
+ import { cI as StreamFrame, bZ as Session } from '../types-DjY1VcOe.js';
2
2
 
3
3
  declare const SESSION_STREAM_PROTOCOL_VERSION = 6;
4
4
  declare const WS_CLOSE_NORMAL = 1000;