@slicervm/sdk 0.1.7 → 0.1.9

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.cts CHANGED
@@ -63,6 +63,7 @@ interface AgentHealth {
63
63
  agentVersion?: string;
64
64
  systemUptime?: number;
65
65
  userdataRan?: boolean;
66
+ userdataExitCode?: number;
66
67
  }
67
68
  interface VMLogs {
68
69
  hostname: string;
@@ -277,6 +278,112 @@ interface FSWatchEvent {
277
278
  interface ShutdownRequest {
278
279
  action?: 'shutdown' | 'reboot';
279
280
  }
281
+ interface VMCommitOptions {
282
+ tags?: string[];
283
+ labels?: Record<string, string>;
284
+ cacheKey?: string;
285
+ }
286
+ interface VMCommitResponse {
287
+ hostname: string;
288
+ commitId: string;
289
+ status: string;
290
+ parentStatus?: string;
291
+ mode: string;
292
+ tags?: string[];
293
+ labels?: Record<string, string>;
294
+ cacheKey?: string;
295
+ }
296
+ interface VMCommitListOptions {
297
+ tags?: string[];
298
+ cacheKey?: string;
299
+ source?: string;
300
+ mode?: string;
301
+ }
302
+ interface VMCommitInfo {
303
+ commitId: string;
304
+ sourceHostname: string;
305
+ sourceHostGroup: string;
306
+ createdAt: string;
307
+ mode: string;
308
+ tags?: string[];
309
+ labels?: Record<string, string>;
310
+ cacheKey?: string;
311
+ }
312
+ interface VMCommitDeleteResponse {
313
+ commitId: string;
314
+ status: string;
315
+ }
316
+ /** Isolated-network policy override for a forked VM. */
317
+ interface VMForkNetworkPolicy {
318
+ /** Omit to inherit; pass an empty array to clear the allow list. */
319
+ allow?: string[];
320
+ /** Omit to inherit; pass an empty array to clear the drop list. */
321
+ drop?: string[];
322
+ }
323
+ type VMForkWait = 'agent' | 'none';
324
+ type VMForkTagMode = 'append' | 'replace';
325
+ type VMForkFixup = 'hostname' | 'machine-id' | 'ssh-host-keys';
326
+ interface VMForkOptions {
327
+ /**
328
+ * Defaults to agent. None acknowledges launch only; the daemon removes the
329
+ * child if requested asynchronous finalisation later fails.
330
+ */
331
+ wait?: VMForkWait;
332
+ /** Server-side agent/finalisation timeout in seconds when waiting. */
333
+ waitTimeoutSec?: number;
334
+ network?: VMForkNetworkPolicy;
335
+ /** Omit to inherit tags; provided tags append unless tagMode is replace. */
336
+ tags?: string[];
337
+ tagMode?: VMForkTagMode;
338
+ /** Omit to inherit grants; pass an empty array to clear and blot secrets. */
339
+ secrets?: string[];
340
+ /** Defaults to true; false makes the fork ephemeral. */
341
+ persistent?: boolean;
342
+ /** Omit for all correctness fix-ups; pass an empty array to disable them. */
343
+ fixups?: VMForkFixup[];
344
+ /** Child vCPU count, up to the source host-group limit. */
345
+ vcpu?: number;
346
+ /** Child RAM in bytes, up to the source host-group limit. */
347
+ ramBytes?: number;
348
+ }
349
+ interface VMForkResponse {
350
+ hostname: string;
351
+ sourceHostname: string;
352
+ commitId?: string;
353
+ status: string;
354
+ parentStatus?: string;
355
+ childStatus?: string;
356
+ mode: string;
357
+ persistent?: boolean;
358
+ }
359
+ interface VMNetworkPolicy {
360
+ allow: string[];
361
+ drop: string[];
362
+ }
363
+ interface VMNetworkDescription {
364
+ mode?: string;
365
+ policySource?: string;
366
+ hostGroup: VMNetworkPolicy;
367
+ override?: CreateVMNetworkPolicy;
368
+ effective: VMNetworkPolicy;
369
+ }
370
+ interface VMDescription {
371
+ hostname: string;
372
+ hostGroup?: string;
373
+ ip?: string;
374
+ ramBytes?: number;
375
+ cpus?: number;
376
+ createdAt?: string;
377
+ arch?: string;
378
+ tags?: string[];
379
+ status?: string;
380
+ persistent?: boolean;
381
+ storage?: string;
382
+ image?: string;
383
+ commitId?: string;
384
+ parentCommitId?: string;
385
+ network: VMNetworkDescription;
386
+ }
280
387
  interface VMStat {
281
388
  hostname: string;
282
389
  ip: string;
@@ -544,6 +651,21 @@ interface VMInit {
544
651
  createdAt?: string;
545
652
  arch?: string;
546
653
  }
654
+ declare class CommittedVM {
655
+ private readonly transport;
656
+ readonly hostname: string;
657
+ readonly hostGroup: string;
658
+ readonly commitId: string;
659
+ readonly status: string;
660
+ readonly parentStatus?: string;
661
+ readonly mode: VMCommitResponse['mode'];
662
+ readonly tags?: string[];
663
+ readonly labels?: Record<string, string>;
664
+ readonly cacheKey?: string;
665
+ constructor(transport: TransportClient, hostGroup: string, response: VMCommitResponse);
666
+ fork(opts?: VMForkOptions): Promise<VM>;
667
+ forkRaw(opts?: VMForkOptions): Promise<VMForkResponse>;
668
+ }
547
669
  declare class VM {
548
670
  readonly hostname: string;
549
671
  readonly hostGroup: string;
@@ -557,6 +679,8 @@ declare class VM {
557
679
  delete(): Promise<void>;
558
680
  health(): Promise<AgentHealth>;
559
681
  logs(): Promise<VMLogs>;
682
+ /** Return configuration, fork lineage, and effective network policy. */
683
+ describe(): Promise<VMDescription>;
560
684
  waitForAgent(opts?: WaitOptions): Promise<AgentHealth>;
561
685
  waitForUserdata(opts?: WaitOptions): Promise<AgentHealth>;
562
686
  shutdown(req?: ShutdownRequest): Promise<void>;
@@ -567,6 +691,10 @@ declare class VM {
567
691
  suspend(): Promise<void>;
568
692
  /** Mac-only on current daemons. Throws `SlicerAPIError 404` on Linux. */
569
693
  restore(): Promise<void>;
694
+ /**
695
+ * Commit a stopped persistent VM disk into an immutable parent.
696
+ */
697
+ commit(opts?: VMCommitOptions): Promise<CommittedVM>;
570
698
  /**
571
699
  * Open one or more port forwards from the host to this VM. Each spec follows
572
700
  * the same syntax as `slicer vm forward -L`:
@@ -654,7 +782,7 @@ declare class VMBg {
654
782
  }
655
783
 
656
784
  /**
657
- * Top-level namespaces on SlicerClient: hostGroups, vms, secrets.
785
+ * Top-level namespaces on SlicerClient: hostGroups, vms, commits, secrets.
658
786
  * Keep control-plane operations here; per-VM operations live on the VM handle.
659
787
  */
660
788
 
@@ -686,6 +814,13 @@ declare class VMsAPI {
686
814
  */
687
815
  createRaw(hostGroup: string, req?: CreateVMRequest, opts?: CreateVMOptions): Promise<CreateVMResponse>;
688
816
  }
817
+ declare class CommitsAPI {
818
+ private readonly transport;
819
+ constructor(transport: TransportClient);
820
+ list(opts?: VMCommitListOptions): Promise<VMCommitInfo[]>;
821
+ delete(commitId: string): Promise<VMCommitDeleteResponse>;
822
+ fork(commitId: string, opts?: VMForkOptions): Promise<VMForkResponse>;
823
+ }
689
824
  declare class SecretsAPI {
690
825
  private readonly transport;
691
826
  constructor(transport: TransportClient);
@@ -719,10 +854,12 @@ declare class SecretsAPI {
719
854
  */
720
855
 
721
856
  /** Credential type for upstream injection. */
722
- type ProxySecretType = 'bearer' | 'basic';
857
+ type ProxySecretType = 'bearer' | 'basic' | 'oauth-client-creds';
723
858
  declare const ProxySecretBearer: ProxySecretType;
724
859
  /** For basic auth, the secret value must be in `user:pass` form. */
725
860
  declare const ProxySecretBasic: ProxySecretType;
861
+ /** OAuth 2.0 client credentials exchanged and renewed by the proxy host. */
862
+ declare const ProxySecretOAuthClientCredentials: ProxySecretType;
726
863
  /** A registered proxy client. Tokens are never returned by list/get. */
727
864
  interface ProxyClient {
728
865
  name: string;
@@ -762,7 +899,9 @@ interface CreateProxySecretRequest {
762
899
  /**
763
900
  * Plaintext credential. For `bearer`, the raw token. For `basic`,
764
901
  * must be in `user:pass` form (the proxy base64-encodes it on the
765
- * inner request).
902
+ * inner request). For `oauth-client-creds`, pass top-level JSON containing
903
+ * `token_endpoint`, `client_id`, and `client_secret`; optional `scope` is
904
+ * supported. The proxy obtains, caches, and renews the bearer host-side.
766
905
  */
767
906
  value: string;
768
907
  }
@@ -880,12 +1019,13 @@ declare class ProxyAllowsAPI {
880
1019
  * Shape:
881
1020
  * client.hostGroups.list() / find(name) / listVMs(name)
882
1021
  * client.vms.create(group, req, opts) → VM / get(name) / list() / stats() / attach(group, name)
1022
+ * client.commits.list() / fork(id) / delete(id)
883
1023
  * client.secrets.list / create / patch / delete
884
1024
  * client.getInfo()
885
1025
  *
886
1026
  * Per-VM operations live on the `VM` handle returned from `client.vms.create`
887
1027
  * or `client.vms.attach`: `vm.exec`, `vm.execBuffered`, `vm.fs.*`,
888
- * `vm.pause/resume/suspend/restore/shutdown/relaunch`, `vm.health/logs`,
1028
+ * `vm.pause/resume/suspend/restore/shutdown/relaunch`, `vm.commit/describe`, `vm.health/logs`,
889
1029
  * `vm.waitForAgent/waitForUserdata`, `vm.delete`.
890
1030
  */
891
1031
 
@@ -895,6 +1035,7 @@ declare class SlicerClient {
895
1035
  readonly transport: TransportClient;
896
1036
  readonly hostGroups: HostGroupsAPI;
897
1037
  readonly vms: VMsAPI;
1038
+ readonly commits: CommitsAPI;
898
1039
  readonly secrets: SecretsAPI;
899
1040
  readonly proxy: ProxyAPI;
900
1041
  constructor(opts: SlicerClientOptions);
@@ -968,4 +1109,4 @@ declare class SlicerShellSession {
968
1109
  private teardown;
969
1110
  }
970
1111
 
971
- export { type AddProxyAllowRequest, type AddressMapping, type AgentHealth, type BgDeleteResponse, type BgExecInfo, type BgExecRequest, type BgExecResponse, type BgKillOptions, type BgKillResponse, type BgLogOptions, type BgWaitExitResponse, type CreateProxyClientOptions, type CreateProxySecretRequest, type CreateSecretRequest, type CreateVMNetworkPolicy, type CreateVMOptions, type CreateVMRequest, type CreateVMResponse, type DeleteResponse, type ExecFrame, type ExecRequest, type ExecResult, type ExecResultBinary, type ExecStdio, ExecStdioBase64, ExecStdioText, FRAME_TYPE_DATA, FRAME_TYPE_HEARTBEAT, FRAME_TYPE_SESSION_CLOSE, FRAME_TYPE_SHUTDOWN, FRAME_TYPE_WINDOW_SIZE, type FSEntry, type FSMkdirRequest, type FSWatchEvent, type FSWatchEventType, type FSWatchRequest, Forwarder, type ForwarderListener, type ForwarderOptions, GiB, type HostGroup, HostGroupsAPI, type ListOptions, MiB, NonRootUser, ProxyAPI, type ProxyAllowRule, ProxyAllowsAPI, type ProxyClient, type ProxyClientCreated, ProxyClientsAPI, type ProxySecret, ProxySecretBasic, ProxySecretBearer, type ProxySecretType, ProxySecretsAPI, type RemoveProxyAllowByTupleRequest, type Secret, SecretExistsError, SecretsAPI, type ShellSessionOptions, type ShutdownRequest, SlicerAPIError, SlicerClient, type SlicerClientOptions, type SlicerInfo, SlicerShellSession, type UpdateSecretRequest, VM, VMBg, VMFileSystem, type VMInfo, type VMInit, type VMLogs, type VMSnapshot, type VMStat, VMsAPI, type WaitOptions, type XTermLike, encodeFrame, parseAddressMapping, parseFrame, resolveTransport };
1112
+ export { type AddProxyAllowRequest, type AddressMapping, type AgentHealth, type BgDeleteResponse, type BgExecInfo, type BgExecRequest, type BgExecResponse, type BgKillOptions, type BgKillResponse, type BgLogOptions, type BgWaitExitResponse, CommitsAPI, CommittedVM, type CreateProxyClientOptions, type CreateProxySecretRequest, type CreateSecretRequest, type CreateVMNetworkPolicy, type CreateVMOptions, type CreateVMRequest, type CreateVMResponse, type DeleteResponse, type ExecFrame, type ExecRequest, type ExecResult, type ExecResultBinary, type ExecStdio, ExecStdioBase64, ExecStdioText, FRAME_TYPE_DATA, FRAME_TYPE_HEARTBEAT, FRAME_TYPE_SESSION_CLOSE, FRAME_TYPE_SHUTDOWN, FRAME_TYPE_WINDOW_SIZE, type FSEntry, type FSMkdirRequest, type FSWatchEvent, type FSWatchEventType, type FSWatchRequest, Forwarder, type ForwarderListener, type ForwarderOptions, GiB, type HostGroup, HostGroupsAPI, type ListOptions, MiB, NonRootUser, ProxyAPI, type ProxyAllowRule, ProxyAllowsAPI, type ProxyClient, type ProxyClientCreated, ProxyClientsAPI, type ProxySecret, ProxySecretBasic, ProxySecretBearer, ProxySecretOAuthClientCredentials, type ProxySecretType, ProxySecretsAPI, type RemoveProxyAllowByTupleRequest, type Secret, SecretExistsError, SecretsAPI, type ShellSessionOptions, type ShutdownRequest, SlicerAPIError, SlicerClient, type SlicerClientOptions, type SlicerInfo, SlicerShellSession, type UpdateSecretRequest, VM, VMBg, type VMCommitDeleteResponse, type VMCommitInfo, type VMCommitListOptions, type VMCommitOptions, type VMCommitResponse, type VMDescription, VMFileSystem, type VMForkFixup, type VMForkNetworkPolicy, type VMForkOptions, type VMForkResponse, type VMForkTagMode, type VMForkWait, type VMInfo, type VMInit, type VMLogs, type VMNetworkDescription, type VMNetworkPolicy, type VMSnapshot, type VMStat, VMsAPI, type WaitOptions, type XTermLike, encodeFrame, parseAddressMapping, parseFrame, resolveTransport };
package/dist/index.d.ts CHANGED
@@ -63,6 +63,7 @@ interface AgentHealth {
63
63
  agentVersion?: string;
64
64
  systemUptime?: number;
65
65
  userdataRan?: boolean;
66
+ userdataExitCode?: number;
66
67
  }
67
68
  interface VMLogs {
68
69
  hostname: string;
@@ -277,6 +278,112 @@ interface FSWatchEvent {
277
278
  interface ShutdownRequest {
278
279
  action?: 'shutdown' | 'reboot';
279
280
  }
281
+ interface VMCommitOptions {
282
+ tags?: string[];
283
+ labels?: Record<string, string>;
284
+ cacheKey?: string;
285
+ }
286
+ interface VMCommitResponse {
287
+ hostname: string;
288
+ commitId: string;
289
+ status: string;
290
+ parentStatus?: string;
291
+ mode: string;
292
+ tags?: string[];
293
+ labels?: Record<string, string>;
294
+ cacheKey?: string;
295
+ }
296
+ interface VMCommitListOptions {
297
+ tags?: string[];
298
+ cacheKey?: string;
299
+ source?: string;
300
+ mode?: string;
301
+ }
302
+ interface VMCommitInfo {
303
+ commitId: string;
304
+ sourceHostname: string;
305
+ sourceHostGroup: string;
306
+ createdAt: string;
307
+ mode: string;
308
+ tags?: string[];
309
+ labels?: Record<string, string>;
310
+ cacheKey?: string;
311
+ }
312
+ interface VMCommitDeleteResponse {
313
+ commitId: string;
314
+ status: string;
315
+ }
316
+ /** Isolated-network policy override for a forked VM. */
317
+ interface VMForkNetworkPolicy {
318
+ /** Omit to inherit; pass an empty array to clear the allow list. */
319
+ allow?: string[];
320
+ /** Omit to inherit; pass an empty array to clear the drop list. */
321
+ drop?: string[];
322
+ }
323
+ type VMForkWait = 'agent' | 'none';
324
+ type VMForkTagMode = 'append' | 'replace';
325
+ type VMForkFixup = 'hostname' | 'machine-id' | 'ssh-host-keys';
326
+ interface VMForkOptions {
327
+ /**
328
+ * Defaults to agent. None acknowledges launch only; the daemon removes the
329
+ * child if requested asynchronous finalisation later fails.
330
+ */
331
+ wait?: VMForkWait;
332
+ /** Server-side agent/finalisation timeout in seconds when waiting. */
333
+ waitTimeoutSec?: number;
334
+ network?: VMForkNetworkPolicy;
335
+ /** Omit to inherit tags; provided tags append unless tagMode is replace. */
336
+ tags?: string[];
337
+ tagMode?: VMForkTagMode;
338
+ /** Omit to inherit grants; pass an empty array to clear and blot secrets. */
339
+ secrets?: string[];
340
+ /** Defaults to true; false makes the fork ephemeral. */
341
+ persistent?: boolean;
342
+ /** Omit for all correctness fix-ups; pass an empty array to disable them. */
343
+ fixups?: VMForkFixup[];
344
+ /** Child vCPU count, up to the source host-group limit. */
345
+ vcpu?: number;
346
+ /** Child RAM in bytes, up to the source host-group limit. */
347
+ ramBytes?: number;
348
+ }
349
+ interface VMForkResponse {
350
+ hostname: string;
351
+ sourceHostname: string;
352
+ commitId?: string;
353
+ status: string;
354
+ parentStatus?: string;
355
+ childStatus?: string;
356
+ mode: string;
357
+ persistent?: boolean;
358
+ }
359
+ interface VMNetworkPolicy {
360
+ allow: string[];
361
+ drop: string[];
362
+ }
363
+ interface VMNetworkDescription {
364
+ mode?: string;
365
+ policySource?: string;
366
+ hostGroup: VMNetworkPolicy;
367
+ override?: CreateVMNetworkPolicy;
368
+ effective: VMNetworkPolicy;
369
+ }
370
+ interface VMDescription {
371
+ hostname: string;
372
+ hostGroup?: string;
373
+ ip?: string;
374
+ ramBytes?: number;
375
+ cpus?: number;
376
+ createdAt?: string;
377
+ arch?: string;
378
+ tags?: string[];
379
+ status?: string;
380
+ persistent?: boolean;
381
+ storage?: string;
382
+ image?: string;
383
+ commitId?: string;
384
+ parentCommitId?: string;
385
+ network: VMNetworkDescription;
386
+ }
280
387
  interface VMStat {
281
388
  hostname: string;
282
389
  ip: string;
@@ -544,6 +651,21 @@ interface VMInit {
544
651
  createdAt?: string;
545
652
  arch?: string;
546
653
  }
654
+ declare class CommittedVM {
655
+ private readonly transport;
656
+ readonly hostname: string;
657
+ readonly hostGroup: string;
658
+ readonly commitId: string;
659
+ readonly status: string;
660
+ readonly parentStatus?: string;
661
+ readonly mode: VMCommitResponse['mode'];
662
+ readonly tags?: string[];
663
+ readonly labels?: Record<string, string>;
664
+ readonly cacheKey?: string;
665
+ constructor(transport: TransportClient, hostGroup: string, response: VMCommitResponse);
666
+ fork(opts?: VMForkOptions): Promise<VM>;
667
+ forkRaw(opts?: VMForkOptions): Promise<VMForkResponse>;
668
+ }
547
669
  declare class VM {
548
670
  readonly hostname: string;
549
671
  readonly hostGroup: string;
@@ -557,6 +679,8 @@ declare class VM {
557
679
  delete(): Promise<void>;
558
680
  health(): Promise<AgentHealth>;
559
681
  logs(): Promise<VMLogs>;
682
+ /** Return configuration, fork lineage, and effective network policy. */
683
+ describe(): Promise<VMDescription>;
560
684
  waitForAgent(opts?: WaitOptions): Promise<AgentHealth>;
561
685
  waitForUserdata(opts?: WaitOptions): Promise<AgentHealth>;
562
686
  shutdown(req?: ShutdownRequest): Promise<void>;
@@ -567,6 +691,10 @@ declare class VM {
567
691
  suspend(): Promise<void>;
568
692
  /** Mac-only on current daemons. Throws `SlicerAPIError 404` on Linux. */
569
693
  restore(): Promise<void>;
694
+ /**
695
+ * Commit a stopped persistent VM disk into an immutable parent.
696
+ */
697
+ commit(opts?: VMCommitOptions): Promise<CommittedVM>;
570
698
  /**
571
699
  * Open one or more port forwards from the host to this VM. Each spec follows
572
700
  * the same syntax as `slicer vm forward -L`:
@@ -654,7 +782,7 @@ declare class VMBg {
654
782
  }
655
783
 
656
784
  /**
657
- * Top-level namespaces on SlicerClient: hostGroups, vms, secrets.
785
+ * Top-level namespaces on SlicerClient: hostGroups, vms, commits, secrets.
658
786
  * Keep control-plane operations here; per-VM operations live on the VM handle.
659
787
  */
660
788
 
@@ -686,6 +814,13 @@ declare class VMsAPI {
686
814
  */
687
815
  createRaw(hostGroup: string, req?: CreateVMRequest, opts?: CreateVMOptions): Promise<CreateVMResponse>;
688
816
  }
817
+ declare class CommitsAPI {
818
+ private readonly transport;
819
+ constructor(transport: TransportClient);
820
+ list(opts?: VMCommitListOptions): Promise<VMCommitInfo[]>;
821
+ delete(commitId: string): Promise<VMCommitDeleteResponse>;
822
+ fork(commitId: string, opts?: VMForkOptions): Promise<VMForkResponse>;
823
+ }
689
824
  declare class SecretsAPI {
690
825
  private readonly transport;
691
826
  constructor(transport: TransportClient);
@@ -719,10 +854,12 @@ declare class SecretsAPI {
719
854
  */
720
855
 
721
856
  /** Credential type for upstream injection. */
722
- type ProxySecretType = 'bearer' | 'basic';
857
+ type ProxySecretType = 'bearer' | 'basic' | 'oauth-client-creds';
723
858
  declare const ProxySecretBearer: ProxySecretType;
724
859
  /** For basic auth, the secret value must be in `user:pass` form. */
725
860
  declare const ProxySecretBasic: ProxySecretType;
861
+ /** OAuth 2.0 client credentials exchanged and renewed by the proxy host. */
862
+ declare const ProxySecretOAuthClientCredentials: ProxySecretType;
726
863
  /** A registered proxy client. Tokens are never returned by list/get. */
727
864
  interface ProxyClient {
728
865
  name: string;
@@ -762,7 +899,9 @@ interface CreateProxySecretRequest {
762
899
  /**
763
900
  * Plaintext credential. For `bearer`, the raw token. For `basic`,
764
901
  * must be in `user:pass` form (the proxy base64-encodes it on the
765
- * inner request).
902
+ * inner request). For `oauth-client-creds`, pass top-level JSON containing
903
+ * `token_endpoint`, `client_id`, and `client_secret`; optional `scope` is
904
+ * supported. The proxy obtains, caches, and renews the bearer host-side.
766
905
  */
767
906
  value: string;
768
907
  }
@@ -880,12 +1019,13 @@ declare class ProxyAllowsAPI {
880
1019
  * Shape:
881
1020
  * client.hostGroups.list() / find(name) / listVMs(name)
882
1021
  * client.vms.create(group, req, opts) → VM / get(name) / list() / stats() / attach(group, name)
1022
+ * client.commits.list() / fork(id) / delete(id)
883
1023
  * client.secrets.list / create / patch / delete
884
1024
  * client.getInfo()
885
1025
  *
886
1026
  * Per-VM operations live on the `VM` handle returned from `client.vms.create`
887
1027
  * or `client.vms.attach`: `vm.exec`, `vm.execBuffered`, `vm.fs.*`,
888
- * `vm.pause/resume/suspend/restore/shutdown/relaunch`, `vm.health/logs`,
1028
+ * `vm.pause/resume/suspend/restore/shutdown/relaunch`, `vm.commit/describe`, `vm.health/logs`,
889
1029
  * `vm.waitForAgent/waitForUserdata`, `vm.delete`.
890
1030
  */
891
1031
 
@@ -895,6 +1035,7 @@ declare class SlicerClient {
895
1035
  readonly transport: TransportClient;
896
1036
  readonly hostGroups: HostGroupsAPI;
897
1037
  readonly vms: VMsAPI;
1038
+ readonly commits: CommitsAPI;
898
1039
  readonly secrets: SecretsAPI;
899
1040
  readonly proxy: ProxyAPI;
900
1041
  constructor(opts: SlicerClientOptions);
@@ -968,4 +1109,4 @@ declare class SlicerShellSession {
968
1109
  private teardown;
969
1110
  }
970
1111
 
971
- export { type AddProxyAllowRequest, type AddressMapping, type AgentHealth, type BgDeleteResponse, type BgExecInfo, type BgExecRequest, type BgExecResponse, type BgKillOptions, type BgKillResponse, type BgLogOptions, type BgWaitExitResponse, type CreateProxyClientOptions, type CreateProxySecretRequest, type CreateSecretRequest, type CreateVMNetworkPolicy, type CreateVMOptions, type CreateVMRequest, type CreateVMResponse, type DeleteResponse, type ExecFrame, type ExecRequest, type ExecResult, type ExecResultBinary, type ExecStdio, ExecStdioBase64, ExecStdioText, FRAME_TYPE_DATA, FRAME_TYPE_HEARTBEAT, FRAME_TYPE_SESSION_CLOSE, FRAME_TYPE_SHUTDOWN, FRAME_TYPE_WINDOW_SIZE, type FSEntry, type FSMkdirRequest, type FSWatchEvent, type FSWatchEventType, type FSWatchRequest, Forwarder, type ForwarderListener, type ForwarderOptions, GiB, type HostGroup, HostGroupsAPI, type ListOptions, MiB, NonRootUser, ProxyAPI, type ProxyAllowRule, ProxyAllowsAPI, type ProxyClient, type ProxyClientCreated, ProxyClientsAPI, type ProxySecret, ProxySecretBasic, ProxySecretBearer, type ProxySecretType, ProxySecretsAPI, type RemoveProxyAllowByTupleRequest, type Secret, SecretExistsError, SecretsAPI, type ShellSessionOptions, type ShutdownRequest, SlicerAPIError, SlicerClient, type SlicerClientOptions, type SlicerInfo, SlicerShellSession, type UpdateSecretRequest, VM, VMBg, VMFileSystem, type VMInfo, type VMInit, type VMLogs, type VMSnapshot, type VMStat, VMsAPI, type WaitOptions, type XTermLike, encodeFrame, parseAddressMapping, parseFrame, resolveTransport };
1112
+ export { type AddProxyAllowRequest, type AddressMapping, type AgentHealth, type BgDeleteResponse, type BgExecInfo, type BgExecRequest, type BgExecResponse, type BgKillOptions, type BgKillResponse, type BgLogOptions, type BgWaitExitResponse, CommitsAPI, CommittedVM, type CreateProxyClientOptions, type CreateProxySecretRequest, type CreateSecretRequest, type CreateVMNetworkPolicy, type CreateVMOptions, type CreateVMRequest, type CreateVMResponse, type DeleteResponse, type ExecFrame, type ExecRequest, type ExecResult, type ExecResultBinary, type ExecStdio, ExecStdioBase64, ExecStdioText, FRAME_TYPE_DATA, FRAME_TYPE_HEARTBEAT, FRAME_TYPE_SESSION_CLOSE, FRAME_TYPE_SHUTDOWN, FRAME_TYPE_WINDOW_SIZE, type FSEntry, type FSMkdirRequest, type FSWatchEvent, type FSWatchEventType, type FSWatchRequest, Forwarder, type ForwarderListener, type ForwarderOptions, GiB, type HostGroup, HostGroupsAPI, type ListOptions, MiB, NonRootUser, ProxyAPI, type ProxyAllowRule, ProxyAllowsAPI, type ProxyClient, type ProxyClientCreated, ProxyClientsAPI, type ProxySecret, ProxySecretBasic, ProxySecretBearer, ProxySecretOAuthClientCredentials, type ProxySecretType, ProxySecretsAPI, type RemoveProxyAllowByTupleRequest, type Secret, SecretExistsError, SecretsAPI, type ShellSessionOptions, type ShutdownRequest, SlicerAPIError, SlicerClient, type SlicerClientOptions, type SlicerInfo, SlicerShellSession, type UpdateSecretRequest, VM, VMBg, type VMCommitDeleteResponse, type VMCommitInfo, type VMCommitListOptions, type VMCommitOptions, type VMCommitResponse, type VMDescription, VMFileSystem, type VMForkFixup, type VMForkNetworkPolicy, type VMForkOptions, type VMForkResponse, type VMForkTagMode, type VMForkWait, type VMInfo, type VMInit, type VMLogs, type VMNetworkDescription, type VMNetworkPolicy, type VMSnapshot, type VMStat, VMsAPI, type WaitOptions, type XTermLike, encodeFrame, parseAddressMapping, parseFrame, resolveTransport };