@openkaiden/opnshll-sdk 0.1.4 → 0.1.6

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.
@@ -1,7 +1,7 @@
1
1
  import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
2
2
  import type { ObjectMeta, Provider, Workspace, WorkspaceSelector } from "./datamodel_pb.js";
3
3
  import type { Duration, Timestamp } from "@bufbuild/protobuf/wkt";
4
- import type { GetGatewayConfigRequestSchema, GetGatewayConfigResponseSchema, GetSandboxConfigRequestSchema, GetSandboxConfigResponseSchema, L7DenyRule, L7Rule, NetworkBinary, NetworkEndpoint, NetworkPolicyRule, PolicySource, SandboxPolicy, SettingValue } from "./sandbox_pb.js";
4
+ import type { GetGatewayConfigRequestSchema, GetGatewayConfigResponseSchema, GetSandboxConfigRequestSchema, GetSandboxConfigResponseSchema, L7DenyRule, L7Rule, NetworkBinary, NetworkEndpoint, NetworkPolicyRule, PolicySource, SandboxConfigSnapshot, SandboxPolicy, SettingValue } from "./sandbox_pb.js";
5
5
  import type { JsonObject, Message } from "@bufbuild/protobuf";
6
6
  /**
7
7
  * Describes the file openshell.proto.
@@ -967,6 +967,14 @@ export type SandboxStatus = Message<"openshell.v1.SandboxStatus"> & {
967
967
  * @generated from field: google.protobuf.Timestamp main_process_started_time = 16;
968
968
  */
969
969
  mainProcessStartedTime?: Timestamp | undefined;
970
+ /**
971
+ * Latest refused token grant across all outbound HTTP protocols, including
972
+ * failures before a configured endpoint or credential could be selected.
973
+ * Matching grant success or a policy, provider, or supervisor reset clears it.
974
+ *
975
+ * @generated from field: openshell.v1.TokenGrantFailureObservation last_token_grant_failure = 17;
976
+ */
977
+ lastTokenGrantFailure?: TokenGrantFailureObservation | undefined;
970
978
  };
971
979
  /**
972
980
  * Describes the message openshell.v1.SandboxStatus.
@@ -1096,7 +1104,8 @@ export type CreateSandboxRequest = Message<"openshell.v1.CreateSandboxRequest">
1096
1104
  [key: string]: string;
1097
1105
  };
1098
1106
  /**
1099
- * Optional annotations for the sandbox (non-selector metadata).
1107
+ * Optional annotations for the sandbox (non-selector metadata). Keys under
1108
+ * the `internal.openshell.ai/` prefix are reserved for the gateway.
1100
1109
  *
1101
1110
  * @generated from field: map<string, string> annotations = 4;
1102
1111
  */
@@ -1652,6 +1661,57 @@ export type StartSandboxRequest = Message<"openshell.v1.StartSandboxRequest"> &
1652
1661
  * Use `create(StartSandboxRequestSchema)` to create a new message.
1653
1662
  */
1654
1663
  export declare const StartSandboxRequestSchema: GenMessage<StartSandboxRequest>;
1664
+ /**
1665
+ * Suspend sandbox request.
1666
+ *
1667
+ * @generated from message openshell.v1.SuspendSandboxRequest
1668
+ */
1669
+ export type SuspendSandboxRequest = Message<"openshell.v1.SuspendSandboxRequest"> & {
1670
+ /**
1671
+ * Workspace scope. Only a named workspace selection is accepted.
1672
+ *
1673
+ * @generated from field: openshell.datamodel.v1.WorkspaceSelector workspace_scope = 2;
1674
+ */
1675
+ workspaceScope?: WorkspaceSelector | undefined;
1676
+ /**
1677
+ * @generated from field: string name = 1;
1678
+ */
1679
+ name: string;
1680
+ };
1681
+ /**
1682
+ * Describes the message openshell.v1.SuspendSandboxRequest.
1683
+ * Use `create(SuspendSandboxRequestSchema)` to create a new message.
1684
+ */
1685
+ export declare const SuspendSandboxRequestSchema: GenMessage<SuspendSandboxRequest>;
1686
+ /**
1687
+ * Resume sandbox request.
1688
+ *
1689
+ * @generated from message openshell.v1.ResumeSandboxRequest
1690
+ */
1691
+ export type ResumeSandboxRequest = Message<"openshell.v1.ResumeSandboxRequest"> & {
1692
+ /**
1693
+ * Workspace scope. Only a named workspace selection is accepted.
1694
+ *
1695
+ * @generated from field: openshell.datamodel.v1.WorkspaceSelector workspace_scope = 2;
1696
+ */
1697
+ workspaceScope?: WorkspaceSelector | undefined;
1698
+ /**
1699
+ * @generated from field: string name = 1;
1700
+ */
1701
+ name: string;
1702
+ /**
1703
+ * If true, the isolation backend may boot the workload cleanly when it
1704
+ * cannot restore the retained memory state. If false, resume fails instead.
1705
+ *
1706
+ * @generated from field: bool restart_if_restore_fails = 3;
1707
+ */
1708
+ restartIfRestoreFails: boolean;
1709
+ };
1710
+ /**
1711
+ * Describes the message openshell.v1.ResumeSandboxRequest.
1712
+ * Use `create(ResumeSandboxRequestSchema)` to create a new message.
1713
+ */
1714
+ export declare const ResumeSandboxRequestSchema: GenMessage<ResumeSandboxRequest>;
1655
1715
  /**
1656
1716
  * Sandbox response.
1657
1717
  *
@@ -4713,7 +4773,9 @@ export type StaticCredentialBinding = Message<"openshell.v1.StaticCredentialBind
4713
4773
  */
4714
4774
  export declare const StaticCredentialBindingSchema: GenMessage<StaticCredentialBinding>;
4715
4775
  /**
4716
- * Get sandbox provider environment response.
4776
+ * Polling projection of ProviderEnvironmentSnapshot. The parallel maps below
4777
+ * are keyed by the same environment variable names. Removed with the polling
4778
+ * RPCs; new provider environment fields belong on the snapshot first.
4717
4779
  *
4718
4780
  * @generated from message openshell.v1.GetSandboxProviderEnvironmentResponse
4719
4781
  */
@@ -4817,6 +4879,101 @@ export type GetSandboxProviderEnvironmentResponse = Message<"openshell.v1.GetSan
4817
4879
  * Use `create(GetSandboxProviderEnvironmentResponseSchema)` to create a new message.
4818
4880
  */
4819
4881
  export declare const GetSandboxProviderEnvironmentResponseSchema: GenMessage<GetSandboxProviderEnvironmentResponse>;
4882
+ /**
4883
+ * One environment value and all metadata that shares its key. Names are unique
4884
+ * within a snapshot. static_credential_binding is present exactly when
4885
+ * classification is STATIC_CREDENTIAL. Snapshots that violate either rule are
4886
+ * invalid.
4887
+ *
4888
+ * @generated from message openshell.v1.ProviderEnvironmentValue
4889
+ */
4890
+ export type ProviderEnvironmentValue = Message<"openshell.v1.ProviderEnvironmentValue"> & {
4891
+ /**
4892
+ * @generated from field: string name = 1;
4893
+ */
4894
+ name: string;
4895
+ /**
4896
+ * @generated from field: string value = 2;
4897
+ */
4898
+ value: string;
4899
+ /**
4900
+ * @generated from field: openshell.v1.ProviderEnvironmentValueClassification classification = 4;
4901
+ */
4902
+ classification: ProviderEnvironmentValueClassification;
4903
+ /**
4904
+ * @generated from field: openshell.v1.StaticCredentialBinding static_credential_binding = 5;
4905
+ */
4906
+ staticCredentialBinding?: StaticCredentialBinding | undefined;
4907
+ /**
4908
+ * Absolute expiration time. Absence means no expiry.
4909
+ *
4910
+ * @generated from field: google.protobuf.Timestamp expiration_time = 3;
4911
+ */
4912
+ expirationTime?: Timestamp | undefined;
4913
+ /**
4914
+ * The static credential keeps one opaque resolver handle across value-only
4915
+ * provider revisions. Set only for STATIC_CREDENTIAL values whose binding
4916
+ * carries a workload_credential_handle.
4917
+ *
4918
+ * @generated from field: bool stable_placeholder = 6;
4919
+ */
4920
+ stablePlaceholder: boolean;
4921
+ };
4922
+ /**
4923
+ * Describes the message openshell.v1.ProviderEnvironmentValue.
4924
+ * Use `create(ProviderEnvironmentValueSchema)` to create a new message.
4925
+ */
4926
+ export declare const ProviderEnvironmentValueSchema: GenMessage<ProviderEnvironmentValue>;
4927
+ /**
4928
+ * Complete provider environment state delivered to a supervisor. This is the
4929
+ * canonical provider environment shape; GetSandboxProviderEnvironmentResponse
4930
+ * is its polling projection and is removed with the polling RPCs. Dynamic
4931
+ * credentials are endpoint selectors rather than environment values and stay
4932
+ * in their own collection.
4933
+ *
4934
+ * @generated from message openshell.v1.ProviderEnvironmentSnapshot
4935
+ */
4936
+ export type ProviderEnvironmentSnapshot = Message<"openshell.v1.ProviderEnvironmentSnapshot"> & {
4937
+ /**
4938
+ * @generated from field: uint64 provider_env_revision = 1;
4939
+ */
4940
+ providerEnvRevision: bigint;
4941
+ /**
4942
+ * @generated from field: repeated openshell.v1.ProviderEnvironmentValue values = 2;
4943
+ */
4944
+ values: ProviderEnvironmentValue[];
4945
+ /**
4946
+ * @generated from field: map<string, openshell.v1.ProviderProfileCredential> dynamic_credentials = 3;
4947
+ */
4948
+ dynamicCredentials: {
4949
+ [key: string]: ProviderProfileCredential;
4950
+ };
4951
+ /**
4952
+ * @generated from field: string provider_attachment_epoch = 4;
4953
+ */
4954
+ providerAttachmentEpoch: string;
4955
+ /**
4956
+ * @generated from field: string policy_hash = 5;
4957
+ */
4958
+ policyHash: string;
4959
+ /**
4960
+ * @generated from field: openshell.v1.ProviderReadinessReason readiness_reason = 6;
4961
+ */
4962
+ readinessReason: ProviderReadinessReason;
4963
+ /**
4964
+ * Complete desired set of non-secret managed files, keyed by absolute path.
4965
+ *
4966
+ * @generated from field: map<string, string> files = 7;
4967
+ */
4968
+ files: {
4969
+ [key: string]: string;
4970
+ };
4971
+ };
4972
+ /**
4973
+ * Describes the message openshell.v1.ProviderEnvironmentSnapshot.
4974
+ * Use `create(ProviderEnvironmentSnapshotSchema)` to create a new message.
4975
+ */
4976
+ export declare const ProviderEnvironmentSnapshotSchema: GenMessage<ProviderEnvironmentSnapshot>;
4820
4977
  /**
4821
4978
  * @generated from message openshell.v1.ExchangeProviderSubjectTokenRequest
4822
4979
  */
@@ -4946,7 +5103,8 @@ export type UpdateConfigRequest = Message<"openshell.v1.UpdateConfigRequest"> &
4946
5103
  * not interpret or verify their semantics. For policy updates, the gateway
4947
5104
  * stores the annotations immutably with the revision and merges them into
4948
5105
  * sandbox metadata as a convenience projection. For setting-only updates, it
4949
- * only merges them into sandbox metadata.
5106
+ * only merges them into sandbox metadata. Keys under the
5107
+ * `internal.openshell.ai/` prefix are reserved for the gateway.
4950
5108
  *
4951
5109
  * @generated from field: map<string, string> annotations = 9;
4952
5110
  */
@@ -5669,6 +5827,12 @@ export type SupervisorMessage = Message<"openshell.v1.SupervisorMessage"> & {
5669
5827
  */
5670
5828
  value: RelayClose;
5671
5829
  case: "relayClose";
5830
+ } | {
5831
+ /**
5832
+ * @generated from field: openshell.v1.ConfigUpdateResult config_update_result = 5;
5833
+ */
5834
+ value: ConfigUpdateResult;
5835
+ case: "configUpdateResult";
5672
5836
  } | {
5673
5837
  case: undefined;
5674
5838
  value?: undefined;
@@ -5724,6 +5888,12 @@ export type GatewayMessage = Message<"openshell.v1.GatewayMessage"> & {
5724
5888
  */
5725
5889
  value: SessionRedirect;
5726
5890
  case: "sessionRedirect";
5891
+ } | {
5892
+ /**
5893
+ * @generated from field: openshell.v1.ConfigUpdate config_update = 7;
5894
+ */
5895
+ value: ConfigUpdate;
5896
+ case: "configUpdate";
5727
5897
  } | {
5728
5898
  case: undefined;
5729
5899
  value?: undefined;
@@ -5781,6 +5951,15 @@ export type SupervisorHello = Message<"openshell.v1.SupervisorHello"> & {
5781
5951
  * @generated from field: bool supports_session_redirect = 6;
5782
5952
  */
5783
5953
  supportsSessionRedirect: boolean;
5954
+ /**
5955
+ * The supervisor can receive its configuration over this stream instead of
5956
+ * polling for it: it applies the bootstrap ConfigUpdate and later
5957
+ * ConfigUpdate payloads, and answers each with its result and admission.
5958
+ * Gateways push configuration only to supervisors that set this.
5959
+ *
5960
+ * @generated from field: bool supports_config_push = 7;
5961
+ */
5962
+ supportsConfigPush: boolean;
5784
5963
  };
5785
5964
  /**
5786
5965
  * Describes the message openshell.v1.SupervisorHello.
@@ -5799,6 +5978,22 @@ export type SessionAccepted = Message<"openshell.v1.SessionAccepted"> & {
5799
5978
  * @generated from field: string session_id = 1;
5800
5979
  */
5801
5980
  sessionId: string;
5981
+ /**
5982
+ * The session's first configuration update. Present exactly when
5983
+ * config_push_enabled is set.
5984
+ *
5985
+ * @generated from field: openshell.v1.ConfigUpdate bootstrap = 3;
5986
+ */
5987
+ bootstrap?: ConfigUpdate | undefined;
5988
+ /**
5989
+ * The gateway pushes configuration authoritatively on this stream instead
5990
+ * of the supervisor polling for it: the bootstrap is required, ConfigUpdate
5991
+ * payloads are applied and acknowledged, and the supervisor stops polling.
5992
+ * Set only for supervisors that set SupervisorHello.supports_config_push.
5993
+ *
5994
+ * @generated from field: bool config_push_enabled = 4;
5995
+ */
5996
+ configPushEnabled: boolean;
5802
5997
  /**
5803
5998
  * Recommended heartbeat interval.
5804
5999
  *
@@ -5811,6 +6006,131 @@ export type SessionAccepted = Message<"openshell.v1.SessionAccepted"> & {
5811
6006
  * Use `create(SessionAcceptedSchema)` to create a new message.
5812
6007
  */
5813
6008
  export declare const SessionAcceptedSchema: GenMessage<SessionAccepted>;
6009
+ /**
6010
+ * Complete gateway-owned configuration for a supervisor session. Each update
6011
+ * replaces the previous one. The supervisor applies the two parts together
6012
+ * and answers every update with one ConfigUpdateResult before the gateway
6013
+ * sends the next.
6014
+ *
6015
+ * @generated from message openshell.v1.ConfigUpdate
6016
+ */
6017
+ export type ConfigUpdate = Message<"openshell.v1.ConfigUpdate"> & {
6018
+ /**
6019
+ * Opaque non-empty identifier scoped to the active supervisor session.
6020
+ *
6021
+ * @generated from field: string update_id = 1;
6022
+ */
6023
+ updateId: string;
6024
+ /**
6025
+ * @generated from field: openshell.sandbox.v1.SandboxConfigSnapshot sandbox_config = 2;
6026
+ */
6027
+ sandboxConfig?: SandboxConfigSnapshot | undefined;
6028
+ /**
6029
+ * The provider environment the sandbox configuration names through its
6030
+ * provider revision, attachment epoch, and policy hash.
6031
+ *
6032
+ * @generated from field: openshell.v1.ProviderEnvironmentSnapshot provider_environment = 3;
6033
+ */
6034
+ providerEnvironment?: ProviderEnvironmentSnapshot | undefined;
6035
+ };
6036
+ /**
6037
+ * Describes the message openshell.v1.ConfigUpdate.
6038
+ * Use `create(ConfigUpdateSchema)` to create a new message.
6039
+ */
6040
+ export declare const ConfigUpdateSchema: GenMessage<ConfigUpdate>;
6041
+ /**
6042
+ * Sanitized application failure. Messages must not contain configuration
6043
+ * payloads, credentials, or provider values.
6044
+ *
6045
+ * @generated from message openshell.v1.ConfigApplyFailure
6046
+ */
6047
+ export type ConfigApplyFailure = Message<"openshell.v1.ConfigApplyFailure"> & {
6048
+ /**
6049
+ * @generated from field: string code = 1;
6050
+ */
6051
+ code: string;
6052
+ /**
6053
+ * @generated from field: string message = 2;
6054
+ */
6055
+ message: string;
6056
+ /**
6057
+ * @generated from field: bool retryable = 3;
6058
+ */
6059
+ retryable: boolean;
6060
+ };
6061
+ /**
6062
+ * Describes the message openshell.v1.ConfigApplyFailure.
6063
+ * Use `create(ConfigApplyFailureSchema)` to create a new message.
6064
+ */
6065
+ export declare const ConfigApplyFailureSchema: GenMessage<ConfigApplyFailure>;
6066
+ /**
6067
+ * Application result for one ConfigUpdate, including the bootstrap.
6068
+ *
6069
+ * @generated from message openshell.v1.ConfigUpdateResult
6070
+ */
6071
+ export type ConfigUpdateResult = Message<"openshell.v1.ConfigUpdateResult"> & {
6072
+ /**
6073
+ * Echoes ConfigUpdate.update_id for session-local correlation.
6074
+ *
6075
+ * @generated from field: string update_id = 1;
6076
+ */
6077
+ updateId: string;
6078
+ /**
6079
+ * @generated from field: openshell.v1.ConfigApplyOutcome outcome = 2;
6080
+ */
6081
+ outcome: ConfigApplyOutcome;
6082
+ /**
6083
+ * Why the update did not take effect. Omitted when it did.
6084
+ *
6085
+ * @generated from field: openshell.v1.ConfigApplyFailure failure = 3;
6086
+ */
6087
+ failure?: ConfigApplyFailure | undefined;
6088
+ /**
6089
+ * Admission state of the delivered sandbox configuration.
6090
+ *
6091
+ * @generated from field: openshell.v1.SandboxConfigurationAdmission admission = 4;
6092
+ */
6093
+ admission?: SandboxConfigurationAdmission | undefined;
6094
+ /**
6095
+ * Load result of the sandbox policy revision the update changed, as a
6096
+ * polling supervisor reports it with ReportPolicyStatus. Omitted when the
6097
+ * update did not change the sandbox policy.
6098
+ *
6099
+ * @generated from field: openshell.v1.PolicyLoadResult policy_load = 5;
6100
+ */
6101
+ policyLoad?: PolicyLoadResult | undefined;
6102
+ };
6103
+ /**
6104
+ * Describes the message openshell.v1.ConfigUpdateResult.
6105
+ * Use `create(ConfigUpdateResultSchema)` to create a new message.
6106
+ */
6107
+ export declare const ConfigUpdateResultSchema: GenMessage<ConfigUpdateResult>;
6108
+ /**
6109
+ * Load result of one sandbox policy revision.
6110
+ *
6111
+ * @generated from message openshell.v1.PolicyLoadResult
6112
+ */
6113
+ export type PolicyLoadResult = Message<"openshell.v1.PolicyLoadResult"> & {
6114
+ /**
6115
+ * @generated from field: uint32 version = 1;
6116
+ */
6117
+ version: number;
6118
+ /**
6119
+ * @generated from field: bool loaded = 2;
6120
+ */
6121
+ loaded: boolean;
6122
+ /**
6123
+ * Sanitized load error. Empty when loaded.
6124
+ *
6125
+ * @generated from field: string error = 3;
6126
+ */
6127
+ error: string;
6128
+ };
6129
+ /**
6130
+ * Describes the message openshell.v1.PolicyLoadResult.
6131
+ * Use `create(PolicyLoadResultSchema)` to create a new message.
6132
+ */
6133
+ export declare const PolicyLoadResultSchema: GenMessage<PolicyLoadResult>;
5814
6134
  /**
5815
6135
  * Gateway rejects the supervisor session.
5816
6136
  *
@@ -6147,6 +6467,103 @@ export type PeerRelayFrame = Message<"openshell.v1.PeerRelayFrame"> & {
6147
6467
  * Use `create(PeerRelayFrameSchema)` to create a new message.
6148
6468
  */
6149
6469
  export declare const PeerRelayFrameSchema: GenMessage<PeerRelayFrame>;
6470
+ /**
6471
+ * @generated from message openshell.v1.PeerConfigSandboxTarget
6472
+ */
6473
+ export type PeerConfigSandboxTarget = Message<"openshell.v1.PeerConfigSandboxTarget"> & {
6474
+ /**
6475
+ * @generated from field: string sandbox_id = 1;
6476
+ */
6477
+ sandboxId: string;
6478
+ /**
6479
+ * Fences a targeted notification to the session observed by the sending replica.
6480
+ *
6481
+ * @generated from field: string session_id = 2;
6482
+ */
6483
+ sessionId: string;
6484
+ };
6485
+ /**
6486
+ * Describes the message openshell.v1.PeerConfigSandboxTarget.
6487
+ * Use `create(PeerConfigSandboxTargetSchema)` to create a new message.
6488
+ */
6489
+ export declare const PeerConfigSandboxTargetSchema: GenMessage<PeerConfigSandboxTarget>;
6490
+ /**
6491
+ * Sandboxes in a workspace that attach the named provider.
6492
+ *
6493
+ * @generated from message openshell.v1.PeerConfigProviderTarget
6494
+ */
6495
+ export type PeerConfigProviderTarget = Message<"openshell.v1.PeerConfigProviderTarget"> & {
6496
+ /**
6497
+ * @generated from field: string workspace = 1;
6498
+ */
6499
+ workspace: string;
6500
+ /**
6501
+ * @generated from field: string name = 2;
6502
+ */
6503
+ name: string;
6504
+ };
6505
+ /**
6506
+ * Describes the message openshell.v1.PeerConfigProviderTarget.
6507
+ * Use `create(PeerConfigProviderTargetSchema)` to create a new message.
6508
+ */
6509
+ export declare const PeerConfigProviderTargetSchema: GenMessage<PeerConfigProviderTarget>;
6510
+ /**
6511
+ * @generated from message openshell.v1.PeerNotifyConfigUpdateRequest
6512
+ */
6513
+ export type PeerNotifyConfigUpdateRequest = Message<"openshell.v1.PeerNotifyConfigUpdateRequest"> & {
6514
+ /**
6515
+ * @generated from oneof openshell.v1.PeerNotifyConfigUpdateRequest.scope
6516
+ */
6517
+ scope: {
6518
+ /**
6519
+ * @generated from field: openshell.v1.PeerConfigSandboxTarget sandbox = 1;
6520
+ */
6521
+ value: PeerConfigSandboxTarget;
6522
+ case: "sandbox";
6523
+ } | {
6524
+ /**
6525
+ * @generated from field: string workspace = 2;
6526
+ */
6527
+ value: string;
6528
+ case: "workspace";
6529
+ } | {
6530
+ /**
6531
+ * @generated from field: bool all_connected = 3;
6532
+ */
6533
+ value: boolean;
6534
+ case: "allConnected";
6535
+ } | {
6536
+ /**
6537
+ * @generated from field: openshell.v1.PeerConfigProviderTarget provider = 4;
6538
+ */
6539
+ value: PeerConfigProviderTarget;
6540
+ case: "provider";
6541
+ } | {
6542
+ case: undefined;
6543
+ value?: undefined;
6544
+ };
6545
+ };
6546
+ /**
6547
+ * Describes the message openshell.v1.PeerNotifyConfigUpdateRequest.
6548
+ * Use `create(PeerNotifyConfigUpdateRequestSchema)` to create a new message.
6549
+ */
6550
+ export declare const PeerNotifyConfigUpdateRequestSchema: GenMessage<PeerNotifyConfigUpdateRequest>;
6551
+ /**
6552
+ * @generated from message openshell.v1.PeerNotifyConfigUpdateResponse
6553
+ */
6554
+ export type PeerNotifyConfigUpdateResponse = Message<"openshell.v1.PeerNotifyConfigUpdateResponse"> & {
6555
+ /**
6556
+ * The targeted session moved before the receiving replica accepted the notification.
6557
+ *
6558
+ * @generated from field: bool stale_owner = 1;
6559
+ */
6560
+ staleOwner: boolean;
6561
+ };
6562
+ /**
6563
+ * Describes the message openshell.v1.PeerNotifyConfigUpdateResponse.
6564
+ * Use `create(PeerNotifyConfigUpdateResponseSchema)` to create a new message.
6565
+ */
6566
+ export declare const PeerNotifyConfigUpdateResponseSchema: GenMessage<PeerNotifyConfigUpdateResponse>;
6150
6567
  /**
6151
6568
  * Supervisor reports the result of a relay open request.
6152
6569
  *
@@ -7605,6 +8022,13 @@ export type EndpointObservation = Message<"openshell.v1.EndpointObservation"> &
7605
8022
  * @generated from field: openshell.v1.EndpointResult result = 2;
7606
8023
  */
7607
8024
  result: EndpointResult;
8025
+ /**
8026
+ * Bounded cause of result, when the supervisor classified it. Each failure
8027
+ * domain names the results it can explain.
8028
+ *
8029
+ * @generated from field: openshell.v1.EndpointFailure failure = 3;
8030
+ */
8031
+ failure?: EndpointFailure | undefined;
7608
8032
  };
7609
8033
  /**
7610
8034
  * Describes the message openshell.v1.EndpointObservation.
@@ -7662,12 +8086,67 @@ export type ReportEndpointStatusRequest = Message<"openshell.v1.ReportEndpointSt
7662
8086
  * @generated from field: uint64 report_sequence = 7;
7663
8087
  */
7664
8088
  reportSequence: bigint;
8089
+ /**
8090
+ * Complete latest grant state. Omission retains legacy compatibility;
8091
+ * a present message with no last_failure explicitly clears the prior cause.
8092
+ *
8093
+ * @generated from field: openshell.v1.TokenGrantStatus token_grant_status = 8;
8094
+ */
8095
+ tokenGrantStatus?: TokenGrantStatus | undefined;
7665
8096
  };
7666
8097
  /**
7667
8098
  * Describes the message openshell.v1.ReportEndpointStatusRequest.
7668
8099
  * Use `create(ReportEndpointStatusRequestSchema)` to create a new message.
7669
8100
  */
7670
8101
  export declare const ReportEndpointStatusRequestSchema: GenMessage<ReportEndpointStatusRequest>;
8102
+ /**
8103
+ * Latest token-grant state sent by the authenticated supervisor.
8104
+ *
8105
+ * @generated from message openshell.v1.TokenGrantStatus
8106
+ */
8107
+ export type TokenGrantStatus = Message<"openshell.v1.TokenGrantStatus"> & {
8108
+ /**
8109
+ * @generated from field: openshell.v1.TokenGrantFailureObservation last_failure = 1;
8110
+ */
8111
+ lastFailure?: TokenGrantFailureObservation | undefined;
8112
+ };
8113
+ /**
8114
+ * Describes the message openshell.v1.TokenGrantStatus.
8115
+ * Use `create(TokenGrantStatusSchema)` to create a new message.
8116
+ */
8117
+ export declare const TokenGrantStatusSchema: GenMessage<TokenGrantStatus>;
8118
+ /**
8119
+ * A refused grant and its destination, without request paths or remote text.
8120
+ * This describes the failed attempt, not the destination's current health.
8121
+ *
8122
+ * @generated from message openshell.v1.TokenGrantFailureObservation
8123
+ */
8124
+ export type TokenGrantFailureObservation = Message<"openshell.v1.TokenGrantFailureObservation"> & {
8125
+ /**
8126
+ * Canonical observed host or IP address, bounded to 253 ASCII bytes.
8127
+ *
8128
+ * @generated from field: string destination_host = 1;
8129
+ */
8130
+ destinationHost: string;
8131
+ /**
8132
+ * Observed destination port in the range 1 through 65535.
8133
+ *
8134
+ * @generated from field: uint32 destination_port = 2;
8135
+ */
8136
+ destinationPort: number;
8137
+ /**
8138
+ * Bounded token_grant cause. Provider and credential may be absent when
8139
+ * selection failed; the request ID still identifies the refused exchange.
8140
+ *
8141
+ * @generated from field: openshell.v1.EndpointFailure failure = 3;
8142
+ */
8143
+ failure?: EndpointFailure | undefined;
8144
+ };
8145
+ /**
8146
+ * Describes the message openshell.v1.TokenGrantFailureObservation.
8147
+ * Use `create(TokenGrantFailureObservationSchema)` to create a new message.
8148
+ */
8149
+ export declare const TokenGrantFailureObservationSchema: GenMessage<TokenGrantFailureObservation>;
7671
8150
  /**
7672
8151
  * Empty acknowledgement for a persisted endpoint status report.
7673
8152
  *
@@ -7726,6 +8205,15 @@ export type EndpointStatus = Message<"openshell.v1.EndpointStatus"> & {
7726
8205
  * @generated from field: google.protobuf.Timestamp last_reported_time = 106;
7727
8206
  */
7728
8207
  lastReportedTime?: Timestamp | undefined;
8208
+ /**
8209
+ * Bounded cause of last_result, when the supervisor classified it. Each
8210
+ * failure domain names the results it can explain. Replaced or cleared by
8211
+ * every later observation, and cleared by the same resets that clear
8212
+ * last_result.
8213
+ *
8214
+ * @generated from field: openshell.v1.EndpointFailure last_failure = 7;
8215
+ */
8216
+ lastFailure?: EndpointFailure | undefined;
7729
8217
  };
7730
8218
  /**
7731
8219
  * Describes the message openshell.v1.EndpointStatus.
@@ -7862,6 +8350,70 @@ export type SandboxServiceExposure = Message<"openshell.v1.SandboxServiceExposur
7862
8350
  * Use `create(SandboxServiceExposureSchema)` to create a new message.
7863
8351
  */
7864
8352
  export declare const SandboxServiceExposureSchema: GenMessage<SandboxServiceExposure>;
8353
+ /**
8354
+ * Bounded cause of a failed endpoint observation, including failures before
8355
+ * any request reaches the endpoint. No field carries remote
8356
+ * text: code and stage come from the domain's closed sets, provider and
8357
+ * credential_key are configured names, and request_id is an opaque random ID.
8358
+ *
8359
+ * @generated from message openshell.v1.EndpointFailure
8360
+ */
8361
+ export type EndpointFailure = Message<"openshell.v1.EndpointFailure"> & {
8362
+ /**
8363
+ * @generated from field: openshell.v1.EndpointFailureDomain domain = 1;
8364
+ */
8365
+ domain: EndpointFailureDomain;
8366
+ /**
8367
+ * Stable lower_snake_case code from the domain's closed set, such as
8368
+ * provider_authorization_required.
8369
+ *
8370
+ * @generated from field: string code = 2;
8371
+ */
8372
+ code: string;
8373
+ /**
8374
+ * Who can resolve the failure; always the action documented for the code.
8375
+ *
8376
+ * @generated from field: openshell.v1.ProviderCredentialRefreshRecoveryAction recovery_action = 3;
8377
+ */
8378
+ recoveryAction: ProviderCredentialRefreshRecoveryAction;
8379
+ /**
8380
+ * Provider whose credential failed. Empty when the failure happened before
8381
+ * a credential was selected.
8382
+ *
8383
+ * @generated from field: string provider = 4;
8384
+ */
8385
+ provider: string;
8386
+ /**
8387
+ * Credential name within the provider. Never a credential value.
8388
+ *
8389
+ * @generated from field: string credential_key = 5;
8390
+ */
8391
+ credentialKey: string;
8392
+ /**
8393
+ * Step that observed the failure, from the domain's closed set.
8394
+ *
8395
+ * @generated from field: string stage = 6;
8396
+ */
8397
+ stage: string;
8398
+ /**
8399
+ * HTTP status a token service returned, when one was received.
8400
+ *
8401
+ * @generated from field: optional uint32 upstream_http_status = 7;
8402
+ */
8403
+ upstreamHttpStatus?: number | undefined;
8404
+ /**
8405
+ * Supervisor-minted UUID of the refused exchange. The workload receives the
8406
+ * same value in the x-openshell-request-id response header.
8407
+ *
8408
+ * @generated from field: string request_id = 8;
8409
+ */
8410
+ requestId: string;
8411
+ };
8412
+ /**
8413
+ * Describes the message openshell.v1.EndpointFailure.
8414
+ * Use `create(EndpointFailureSchema)` to create a new message.
8415
+ */
8416
+ export declare const EndpointFailureSchema: GenMessage<EndpointFailure>;
7865
8417
  /**
7866
8418
  * @generated from enum openshell.v1.ExtensionKind
7867
8419
  */
@@ -7941,7 +8493,20 @@ export declare enum SandboxPhase {
7941
8493
  *
7942
8494
  * @generated from enum value: SANDBOX_PHASE_COMPLETED = 9;
7943
8495
  */
7944
- COMPLETED = 9
8496
+ COMPLETED = 9,
8497
+ /**
8498
+ * The gateway requested suspension and the driver has not confirmed it.
8499
+ *
8500
+ * @generated from enum value: SANDBOX_PHASE_SUSPENDING = 11;
8501
+ */
8502
+ SUSPENDING = 11,
8503
+ /**
8504
+ * The workload is frozen and its memory state is retained by the isolation
8505
+ * backend. ResumeSandbox restores it; StartSandbox discards it.
8506
+ *
8507
+ * @generated from enum value: SANDBOX_PHASE_SUSPENDED = 12;
8508
+ */
8509
+ SUSPENDED = 12
7945
8510
  }
7946
8511
  /**
7947
8512
  * Describes the enum openshell.v1.SandboxPhase.
@@ -8312,6 +8877,29 @@ export declare enum ProviderProfileCategory {
8312
8877
  * Describes the enum openshell.v1.ProviderProfileCategory.
8313
8878
  */
8314
8879
  export declare const ProviderProfileCategorySchema: GenEnum<ProviderProfileCategory>;
8880
+ /**
8881
+ * Receivers treat UNSPECIFIED and unknown values as secret.
8882
+ *
8883
+ * @generated from enum openshell.v1.ProviderEnvironmentValueClassification
8884
+ */
8885
+ export declare enum ProviderEnvironmentValueClassification {
8886
+ /**
8887
+ * @generated from enum value: PROVIDER_ENVIRONMENT_VALUE_CLASSIFICATION_UNSPECIFIED = 0;
8888
+ */
8889
+ UNSPECIFIED = 0,
8890
+ /**
8891
+ * @generated from enum value: PROVIDER_ENVIRONMENT_VALUE_CLASSIFICATION_NON_SECRET = 1;
8892
+ */
8893
+ NON_SECRET = 1,
8894
+ /**
8895
+ * @generated from enum value: PROVIDER_ENVIRONMENT_VALUE_CLASSIFICATION_STATIC_CREDENTIAL = 2;
8896
+ */
8897
+ STATIC_CREDENTIAL = 2
8898
+ }
8899
+ /**
8900
+ * Describes the enum openshell.v1.ProviderEnvironmentValueClassification.
8901
+ */
8902
+ export declare const ProviderEnvironmentValueClassificationSchema: GenEnum<ProviderEnvironmentValueClassification>;
8315
8903
  /**
8316
8904
  * @generated from enum openshell.v1.ConfigurationAdmissionState
8317
8905
  */
@@ -8621,6 +9209,32 @@ export declare enum ServiceAuthorizationMode {
8621
9209
  * Describes the enum openshell.v1.ServiceAuthorizationMode.
8622
9210
  */
8623
9211
  export declare const ServiceAuthorizationModeSchema: GenEnum<ServiceAuthorizationMode>;
9212
+ /**
9213
+ * Subsystem whose closed code set explains an endpoint failure. Each domain
9214
+ * defines its codes, stages, recovery actions, and the endpoint results it
9215
+ * can explain. Kept at the end of the file so adding it does not renumber
9216
+ * existing generated descriptors.
9217
+ *
9218
+ * @generated from enum openshell.v1.EndpointFailureDomain
9219
+ */
9220
+ export declare enum EndpointFailureDomain {
9221
+ /**
9222
+ * @generated from enum value: ENDPOINT_FAILURE_DOMAIN_UNSPECIFIED = 0;
9223
+ */
9224
+ UNSPECIFIED = 0,
9225
+ /**
9226
+ * A dynamic token grant for a provider credential failed, so OpenShell
9227
+ * refused the request before any of it reached the endpoint. Explains
9228
+ * ENDPOINT_RESULT_CREDENTIAL_UNAVAILABLE.
9229
+ *
9230
+ * @generated from enum value: ENDPOINT_FAILURE_DOMAIN_TOKEN_GRANT = 1;
9231
+ */
9232
+ TOKEN_GRANT = 1
9233
+ }
9234
+ /**
9235
+ * Describes the enum openshell.v1.EndpointFailureDomain.
9236
+ */
9237
+ export declare const EndpointFailureDomainSchema: GenEnum<EndpointFailureDomain>;
8624
9238
  /**
8625
9239
  * OpenShell service provides sandbox, provider, and runtime management capabilities.
8626
9240
  *
@@ -8821,6 +9435,28 @@ export declare const OpenShell: GenService<{
8821
9435
  input: typeof StartSandboxRequestSchema;
8822
9436
  output: typeof SandboxResponseSchema;
8823
9437
  };
9438
+ /**
9439
+ * Freeze a ready sandbox and retain its memory state for a later resume.
9440
+ * Requires a compute driver and isolation backend that support state
9441
+ * retention.
9442
+ *
9443
+ * @generated from rpc openshell.v1.OpenShell.SuspendSandbox
9444
+ */
9445
+ suspendSandbox: {
9446
+ methodKind: "unary";
9447
+ input: typeof SuspendSandboxRequestSchema;
9448
+ output: typeof SandboxResponseSchema;
9449
+ };
9450
+ /**
9451
+ * Restore a suspended sandbox in a new runtime generation.
9452
+ *
9453
+ * @generated from rpc openshell.v1.OpenShell.ResumeSandbox
9454
+ */
9455
+ resumeSandbox: {
9456
+ methodKind: "unary";
9457
+ input: typeof ResumeSandboxRequestSchema;
9458
+ output: typeof SandboxResponseSchema;
9459
+ };
8824
9460
  /**
8825
9461
  * Create a short-lived SSH session for a sandbox.
8826
9462
  *
@@ -9075,7 +9711,9 @@ export declare const OpenShell: GenService<{
9075
9711
  output: typeof DeleteProviderProfileResponseSchema;
9076
9712
  };
9077
9713
  /**
9078
- * Get sandbox settings by id (called by sandbox entrypoint and poll loop).
9714
+ * Get sandbox settings by id (called by users, and by supervisors at startup
9715
+ * and in their poll loop). A supervisor whose session pushes configuration
9716
+ * receives later updates over ConnectSupervisor and stops polling.
9079
9717
  *
9080
9718
  * @generated from rpc openshell.v1.OpenShell.GetSandboxConfig
9081
9719
  */
@@ -9172,7 +9810,9 @@ export declare const OpenShell: GenService<{
9172
9810
  output: typeof ReportSandboxConfigurationResponseSchema;
9173
9811
  };
9174
9812
  /**
9175
- * Get provider environment for a sandbox (called by sandbox supervisor at startup).
9813
+ * Get provider environment for a sandbox (called by the sandbox supervisor at
9814
+ * startup and by its poll loop). Polling projection of the provider
9815
+ * environment delivered over ConnectSupervisor; removed with the polling RPCs.
9176
9816
  *
9177
9817
  * @generated from rpc openshell.v1.OpenShell.GetSandboxProviderEnvironment
9178
9818
  */
@@ -9217,9 +9857,11 @@ export declare const OpenShell: GenService<{
9217
9857
  *
9218
9858
  * The supervisor opens this stream at startup and keeps it alive for the
9219
9859
  * sandbox lifetime. The gateway uses it to coordinate relay channels for
9220
- * SSH connect, ExecSandbox, and targetable sandbox services. Raw service
9221
- * bytes flow over RelayStream calls (separate HTTP/2 streams on the same
9222
- * connection), not over this stream.
9860
+ * SSH connect, ExecSandbox, targetable sandbox services, and configuration
9861
+ * delivery. Supervisors advertise optional stream features in
9862
+ * SupervisorHello, and the gateway sends only payloads the supervisor
9863
+ * advertises. Raw service bytes flow over RelayStream calls (separate HTTP/2
9864
+ * streams on the same connection), not over this stream.
9223
9865
  *
9224
9866
  * @generated from rpc openshell.v1.OpenShell.ConnectSupervisor
9225
9867
  */
@@ -9310,6 +9952,17 @@ export declare const OpenShell: GenService<{
9310
9952
  input: typeof GetSandboxProviderStatusRequestSchema;
9311
9953
  output: typeof GetSandboxProviderStatusResponseSchema;
9312
9954
  };
9955
+ /**
9956
+ * Best-effort notification to the replica that owns a supervisor session.
9957
+ * The receiver rebuilds snapshots from authoritative state.
9958
+ *
9959
+ * @generated from rpc openshell.v1.OpenShell.PeerNotifyConfigUpdate
9960
+ */
9961
+ peerNotifyConfigUpdate: {
9962
+ methodKind: "unary";
9963
+ input: typeof PeerNotifyConfigUpdateRequestSchema;
9964
+ output: typeof PeerNotifyConfigUpdateResponseSchema;
9965
+ };
9313
9966
  /**
9314
9967
  * Watch a sandbox and stream updates.
9315
9968
  *