@cat-factory/contracts 0.58.0 → 0.59.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.
@@ -255,6 +255,24 @@ export declare const environmentManifestSchema: v.ObjectSchema<{
255
255
  readonly providerConfig: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
256
256
  }, undefined>;
257
257
  export type EnvironmentManifest = v.InferOutput<typeof environmentManifestSchema>;
258
+ /**
259
+ * The provision type a service declares — the INPUT SHAPE it produces. `infraless` means
260
+ * the service stands up no environment (the Tester runs with no infra). A `custom` service
261
+ * additionally pins a `manifestId` (see {@link serviceProvisioningSchema}).
262
+ */
263
+ export declare const provisionTypeSchema: v.PicklistSchema<["kubernetes", "docker-compose", "custom", "infraless"], undefined>;
264
+ export type ProvisionType = v.InferOutput<typeof provisionTypeSchema>;
265
+ /**
266
+ * The engine a workspace/user handler uses to stand up / connect to an environment for a
267
+ * provision type. `none` is the synthetic engine for `infraless`. `local-docker` runs a
268
+ * compose stack locally; `local-k3s`/`remote-kubernetes` drive a kube apiserver;
269
+ * `remote-custom` is the generic BYO HTTP management API.
270
+ */
271
+ export declare const infraEngineSchema: v.PicklistSchema<["local-docker", "local-k3s", "remote-kubernetes", "remote-custom", "none"], undefined>;
272
+ export type InfraEngine = v.InferOutput<typeof infraEngineSchema>;
273
+ /** A custom-manifest-type identifier (lower-kebab slug). */
274
+ export declare const manifestIdSchema: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
275
+ export type ManifestId = v.InferOutput<typeof manifestIdSchema>;
258
276
  /** The secret-bundle key the Kubernetes env backend reads the ServiceAccount token from. */
259
277
  export declare const KUBERNETES_ENV_TOKEN_SECRET_KEY = "apiToken";
260
278
  /**
@@ -702,6 +720,453 @@ export declare const environmentBackendConfigSchema: v.VariantSchema<"kind", [v.
702
720
  }, undefined>], undefined>;
703
721
  export type EnvironmentBackendConfig = v.InferOutput<typeof environmentBackendConfigSchema>;
704
722
  export type EnvironmentBackendKind = EnvironmentBackendConfig['kind'];
723
+ /**
724
+ * The per-type source a service supplies. Only the branch matching the service's
725
+ * `provisionType` is meaningful; the others are ignored. The service carries NO
726
+ * engine/credentials — only the in-repo intent. Built by merging with the workspace
727
+ * handler (the "how") at provision time.
728
+ */
729
+ export declare const serviceProvisioningSchema: v.ObjectSchema<{
730
+ readonly type: v.PicklistSchema<["kubernetes", "docker-compose", "custom", "infraless"], undefined>;
731
+ /** `kubernetes`: where the per-PR manifests live (colocated in the PR repo, or a separate repo). */
732
+ readonly manifestSource: v.OptionalSchema<v.VariantSchema<"type", [v.ObjectSchema<{
733
+ readonly type: v.LiteralSchema<"colocated", undefined>;
734
+ /** File or directory path within the PR repo (read at the PR head branch). */
735
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
736
+ }, undefined>, v.ObjectSchema<{
737
+ readonly type: v.LiteralSchema<"separate", undefined>;
738
+ /** `owner/repo` of the manifests repo. */
739
+ readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, "must be \"owner/repo\"">]>;
740
+ /** Branch/tag/sha to read at; absent ⇒ that repo's default branch. */
741
+ readonly ref: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
742
+ /** File or directory path within the manifests repo. */
743
+ readonly path: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
744
+ }, undefined>], undefined>, undefined>;
745
+ /** `docker-compose`: path to the compose file relative to the repo root. */
746
+ readonly composePath: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
747
+ /** `docker-compose`: the compose stack is for local development only (advisory). */
748
+ readonly localDevOnly: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
749
+ /** `custom`: the custom-manifest-type id this service produces (matched to a remote-custom handler). */
750
+ readonly manifestId: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>, undefined>;
751
+ /** `custom`: optional path to the custom manifest within the repo. */
752
+ readonly manifestPath: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
753
+ }, undefined>;
754
+ export type ServiceProvisioning = v.InferOutput<typeof serviceProvisioningSchema>;
755
+ /**
756
+ * The kube engine connection (the "how" for a `kubernetes` provision type), discriminated
757
+ * from the service-owned `manifestSource` (the "what/where"): apiserver + TLS + namespace
758
+ * + sizing only. The manifests to apply come from the SERVICE at provision time. Used by
759
+ * both the `local-k3s` and `remote-kubernetes` engines.
760
+ */
761
+ export declare const kubernetesEngineConfigSchema: v.ObjectSchema<{
762
+ readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
763
+ /** kube-apiserver root URL, e.g. `https://my-cluster.example:6443`. */
764
+ readonly apiServerUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
765
+ /** PEM CA bundle to verify the apiserver TLS cert (omit only for a publicly-trusted CA). */
766
+ readonly caCertPem: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
767
+ /** Skip apiserver TLS verification — strongly discouraged; kind/dev clusters only. */
768
+ readonly insecureSkipTlsVerify: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
769
+ /** Namespace name template for the per-PR environment, e.g. `cf-env-{{pullNumber}}`. */
770
+ readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
771
+ /** How the environment URL is derived once applied. */
772
+ readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
773
+ readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
774
+ /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
775
+ readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
776
+ readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
777
+ }, undefined>, v.ObjectSchema<{
778
+ readonly source: v.LiteralSchema<"ingressStatus", undefined>;
779
+ /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
780
+ readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
781
+ readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
782
+ }, undefined>, v.ObjectSchema<{
783
+ readonly source: v.LiteralSchema<"serviceStatus", undefined>;
784
+ /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
785
+ readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
786
+ readonly port: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 65535, undefined>]>, undefined>;
787
+ readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
788
+ }, undefined>], undefined>;
789
+ /** Optional image reference made available to the manifests as `{{image}}`. */
790
+ readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
791
+ /** Fallback TTL (ms) after which the env is swept + torn down. */
792
+ readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
793
+ /** Extra labels stamped on the namespace + every applied resource. */
794
+ readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
795
+ /** Extra annotations stamped on the namespace. */
796
+ readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
797
+ }, undefined>;
798
+ export type KubernetesEngineConfig = v.InferOutput<typeof kubernetesEngineConfigSchema>;
799
+ /**
800
+ * A per-type infra handler config, discriminated by `engine`. Binds a provision type to the
801
+ * engine that handles it + that engine's connection config. `local-docker` rides the
802
+ * generic compose backend (its settings in `providerConfig`); `local-k3s`/`remote-kubernetes`
803
+ * carry the kube engine connection; `remote-custom` is the generic HTTP manifest API and
804
+ * declares the manifest id it accepts.
805
+ */
806
+ export declare const infraHandlerConfigSchema: v.VariantSchema<"engine", [v.ObjectSchema<{
807
+ readonly engine: v.LiteralSchema<"local-docker", undefined>;
808
+ readonly manifest: v.ObjectSchema<{
809
+ readonly providerId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
810
+ readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
811
+ /** Management API root; provision/status/teardown paths are appended to it. */
812
+ readonly baseUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
813
+ readonly auth: v.VariantSchema<"type", [v.ObjectSchema<{
814
+ readonly type: v.LiteralSchema<"none", undefined>;
815
+ }, undefined>, v.ObjectSchema<{
816
+ readonly type: v.LiteralSchema<"api_key", undefined>;
817
+ readonly headerName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
818
+ readonly secretRef: v.ObjectSchema<{
819
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
820
+ }, undefined>;
821
+ /** Optional prefix prepended to the secret value, e.g. `Token `. */
822
+ readonly valuePrefix: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
823
+ }, undefined>, v.ObjectSchema<{
824
+ readonly type: v.LiteralSchema<"bearer", undefined>;
825
+ readonly secretRef: v.ObjectSchema<{
826
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
827
+ }, undefined>;
828
+ }, undefined>, v.ObjectSchema<{
829
+ readonly type: v.LiteralSchema<"basic", undefined>;
830
+ readonly usernameSecretRef: v.ObjectSchema<{
831
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
832
+ }, undefined>;
833
+ readonly passwordSecretRef: v.ObjectSchema<{
834
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
835
+ }, undefined>;
836
+ }, undefined>, v.ObjectSchema<{
837
+ readonly type: v.LiteralSchema<"oauth2_client_credentials", undefined>;
838
+ readonly tokenUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
839
+ readonly clientIdSecretRef: v.ObjectSchema<{
840
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
841
+ }, undefined>;
842
+ readonly clientSecretSecretRef: v.ObjectSchema<{
843
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
844
+ }, undefined>;
845
+ readonly scope: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
846
+ readonly audience: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
847
+ }, undefined>, v.ObjectSchema<{
848
+ readonly type: v.LiteralSchema<"custom_headers", undefined>;
849
+ readonly headers: v.ArraySchema<v.ObjectSchema<{
850
+ readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
851
+ readonly secretRef: v.ObjectSchema<{
852
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
853
+ }, undefined>;
854
+ }, undefined>, undefined>;
855
+ }, undefined>], undefined>;
856
+ readonly provision: v.ObjectSchema<{
857
+ readonly method: v.PicklistSchema<["GET", "POST", "PUT", "PATCH", "DELETE"], undefined>;
858
+ readonly pathTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
859
+ readonly query: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
860
+ readonly key: v.StringSchema<undefined>;
861
+ readonly value: v.StringSchema<undefined>;
862
+ }, undefined>, undefined>, undefined>;
863
+ readonly headers: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
864
+ readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
865
+ readonly value: v.StringSchema<undefined>;
866
+ }, undefined>, undefined>, undefined>;
867
+ readonly bodyTemplate: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
868
+ /** Per-call timeout (ms). Bounded; defaults applied by the adapter. */
869
+ readonly timeoutMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 60000, undefined>]>, undefined>;
870
+ }, undefined>;
871
+ /** Optional: polled to observe async provisioning progress. */
872
+ readonly status: v.OptionalSchema<v.ObjectSchema<{
873
+ readonly method: v.PicklistSchema<["GET", "POST", "PUT", "PATCH", "DELETE"], undefined>;
874
+ readonly pathTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
875
+ readonly query: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
876
+ readonly key: v.StringSchema<undefined>;
877
+ readonly value: v.StringSchema<undefined>;
878
+ }, undefined>, undefined>, undefined>;
879
+ readonly headers: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
880
+ readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
881
+ readonly value: v.StringSchema<undefined>;
882
+ }, undefined>, undefined>, undefined>;
883
+ readonly bodyTemplate: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
884
+ /** Per-call timeout (ms). Bounded; defaults applied by the adapter. */
885
+ readonly timeoutMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 60000, undefined>]>, undefined>;
886
+ }, undefined>, undefined>;
887
+ /** Optional: called to destroy the environment (manual or on TTL expiry). */
888
+ readonly teardown: v.OptionalSchema<v.ObjectSchema<{
889
+ readonly method: v.PicklistSchema<["GET", "POST", "PUT", "PATCH", "DELETE"], undefined>;
890
+ readonly pathTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
891
+ readonly query: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
892
+ readonly key: v.StringSchema<undefined>;
893
+ readonly value: v.StringSchema<undefined>;
894
+ }, undefined>, undefined>, undefined>;
895
+ readonly headers: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
896
+ readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
897
+ readonly value: v.StringSchema<undefined>;
898
+ }, undefined>, undefined>, undefined>;
899
+ readonly bodyTemplate: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
900
+ /** Per-call timeout (ms). Bounded; defaults applied by the adapter. */
901
+ readonly timeoutMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 60000, undefined>]>, undefined>;
902
+ }, undefined>, undefined>;
903
+ readonly response: v.ObjectSchema<{
904
+ readonly urlPath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
905
+ readonly statusPath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
906
+ readonly statusMap: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
907
+ readonly from: v.StringSchema<undefined>;
908
+ readonly to: v.PicklistSchema<["provisioning", "ready", "failed", "expired", "tearing_down", "torn_down"], undefined>;
909
+ }, undefined>, undefined>, undefined>;
910
+ readonly expiresAtPath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
911
+ readonly externalIdPath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
912
+ readonly access: v.OptionalSchema<v.ObjectSchema<{
913
+ readonly scheme: v.PicklistSchema<["none", "bearer", "basic", "custom_header"], undefined>;
914
+ readonly tokenPath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
915
+ readonly usernamePath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
916
+ readonly passwordPath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
917
+ readonly headerName: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
918
+ readonly headerValuePath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
919
+ }, undefined>, undefined>;
920
+ }, undefined>;
921
+ /** Fallback TTL (ms) when the response carries no explicit expiry. */
922
+ readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
923
+ /**
924
+ * Opaque, provider-specific configuration for a CUSTOM backend (e.g. a Kargo project,
925
+ * link-selection key, status map). The generic HttpEnvironmentProvider ignores it
926
+ * entirely; a custom backend — registered by reference into the app-owned
927
+ * `EnvironmentBackendRegistry` (see `backend/docs/native-environment-adapter.md`) — reads
928
+ * + validates it off the per-call
929
+ * `manifest`. This is the per-WORKSPACE config carrier: a custom backend rides the generic
930
+ * manifest member of `environmentBackendConfigSchema`, so its bespoke settings live here and
931
+ * its credentials in the secret bundle. NOT covered by the manifest URL/SSRF checks (which
932
+ * only guard `baseUrl`/`tokenUrl`); a backend that puts a URL here must guard it itself
933
+ * (reuse the exported `UrlSafetyPolicy`).
934
+ */
935
+ readonly providerConfig: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
936
+ }, undefined>;
937
+ }, undefined>, v.ObjectSchema<{
938
+ readonly engine: v.LiteralSchema<"local-k3s", undefined>;
939
+ readonly kubernetes: v.ObjectSchema<{
940
+ readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
941
+ /** kube-apiserver root URL, e.g. `https://my-cluster.example:6443`. */
942
+ readonly apiServerUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
943
+ /** PEM CA bundle to verify the apiserver TLS cert (omit only for a publicly-trusted CA). */
944
+ readonly caCertPem: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
945
+ /** Skip apiserver TLS verification — strongly discouraged; kind/dev clusters only. */
946
+ readonly insecureSkipTlsVerify: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
947
+ /** Namespace name template for the per-PR environment, e.g. `cf-env-{{pullNumber}}`. */
948
+ readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
949
+ /** How the environment URL is derived once applied. */
950
+ readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
951
+ readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
952
+ /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
953
+ readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
954
+ readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
955
+ }, undefined>, v.ObjectSchema<{
956
+ readonly source: v.LiteralSchema<"ingressStatus", undefined>;
957
+ /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
958
+ readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
959
+ readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
960
+ }, undefined>, v.ObjectSchema<{
961
+ readonly source: v.LiteralSchema<"serviceStatus", undefined>;
962
+ /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
963
+ readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
964
+ readonly port: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 65535, undefined>]>, undefined>;
965
+ readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
966
+ }, undefined>], undefined>;
967
+ /** Optional image reference made available to the manifests as `{{image}}`. */
968
+ readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
969
+ /** Fallback TTL (ms) after which the env is swept + torn down. */
970
+ readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
971
+ /** Extra labels stamped on the namespace + every applied resource. */
972
+ readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
973
+ /** Extra annotations stamped on the namespace. */
974
+ readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
975
+ }, undefined>;
976
+ }, undefined>, v.ObjectSchema<{
977
+ readonly engine: v.LiteralSchema<"remote-kubernetes", undefined>;
978
+ readonly kubernetes: v.ObjectSchema<{
979
+ readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
980
+ /** kube-apiserver root URL, e.g. `https://my-cluster.example:6443`. */
981
+ readonly apiServerUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
982
+ /** PEM CA bundle to verify the apiserver TLS cert (omit only for a publicly-trusted CA). */
983
+ readonly caCertPem: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
984
+ /** Skip apiserver TLS verification — strongly discouraged; kind/dev clusters only. */
985
+ readonly insecureSkipTlsVerify: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
986
+ /** Namespace name template for the per-PR environment, e.g. `cf-env-{{pullNumber}}`. */
987
+ readonly namespaceTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
988
+ /** How the environment URL is derived once applied. */
989
+ readonly url: v.VariantSchema<"source", [v.ObjectSchema<{
990
+ readonly source: v.LiteralSchema<"ingressTemplate", undefined>;
991
+ /** Host template, e.g. `{{branch}}.preview.example.com`; rendered with the provision vars. */
992
+ readonly hostTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
993
+ readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
994
+ }, undefined>, v.ObjectSchema<{
995
+ readonly source: v.LiteralSchema<"ingressStatus", undefined>;
996
+ /** Ingress object to read `.status.loadBalancer` from; absent ⇒ the only Ingress applied. */
997
+ readonly ingressName: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
998
+ readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
999
+ }, undefined>, v.ObjectSchema<{
1000
+ readonly source: v.LiteralSchema<"serviceStatus", undefined>;
1001
+ /** Service object to read `.status.loadBalancer` (k3s ServiceLB) from. */
1002
+ readonly serviceName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
1003
+ readonly port: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 65535, undefined>]>, undefined>;
1004
+ readonly scheme: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
1005
+ }, undefined>], undefined>;
1006
+ /** Optional image reference made available to the manifests as `{{image}}`. */
1007
+ readonly imageTemplate: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1008
+ /** Fallback TTL (ms) after which the env is swept + torn down. */
1009
+ readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
1010
+ /** Extra labels stamped on the namespace + every applied resource. */
1011
+ readonly labels: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
1012
+ /** Extra annotations stamped on the namespace. */
1013
+ readonly annotations: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
1014
+ }, undefined>;
1015
+ }, undefined>, v.ObjectSchema<{
1016
+ readonly engine: v.LiteralSchema<"remote-custom", undefined>;
1017
+ readonly manifest: v.ObjectSchema<{
1018
+ readonly providerId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1019
+ readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
1020
+ /** Management API root; provision/status/teardown paths are appended to it. */
1021
+ readonly baseUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
1022
+ readonly auth: v.VariantSchema<"type", [v.ObjectSchema<{
1023
+ readonly type: v.LiteralSchema<"none", undefined>;
1024
+ }, undefined>, v.ObjectSchema<{
1025
+ readonly type: v.LiteralSchema<"api_key", undefined>;
1026
+ readonly headerName: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1027
+ readonly secretRef: v.ObjectSchema<{
1028
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1029
+ }, undefined>;
1030
+ /** Optional prefix prepended to the secret value, e.g. `Token `. */
1031
+ readonly valuePrefix: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1032
+ }, undefined>, v.ObjectSchema<{
1033
+ readonly type: v.LiteralSchema<"bearer", undefined>;
1034
+ readonly secretRef: v.ObjectSchema<{
1035
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1036
+ }, undefined>;
1037
+ }, undefined>, v.ObjectSchema<{
1038
+ readonly type: v.LiteralSchema<"basic", undefined>;
1039
+ readonly usernameSecretRef: v.ObjectSchema<{
1040
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1041
+ }, undefined>;
1042
+ readonly passwordSecretRef: v.ObjectSchema<{
1043
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1044
+ }, undefined>;
1045
+ }, undefined>, v.ObjectSchema<{
1046
+ readonly type: v.LiteralSchema<"oauth2_client_credentials", undefined>;
1047
+ readonly tokenUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
1048
+ readonly clientIdSecretRef: v.ObjectSchema<{
1049
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1050
+ }, undefined>;
1051
+ readonly clientSecretSecretRef: v.ObjectSchema<{
1052
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1053
+ }, undefined>;
1054
+ readonly scope: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1055
+ readonly audience: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1056
+ }, undefined>, v.ObjectSchema<{
1057
+ readonly type: v.LiteralSchema<"custom_headers", undefined>;
1058
+ readonly headers: v.ArraySchema<v.ObjectSchema<{
1059
+ readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1060
+ readonly secretRef: v.ObjectSchema<{
1061
+ readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1062
+ }, undefined>;
1063
+ }, undefined>, undefined>;
1064
+ }, undefined>], undefined>;
1065
+ readonly provision: v.ObjectSchema<{
1066
+ readonly method: v.PicklistSchema<["GET", "POST", "PUT", "PATCH", "DELETE"], undefined>;
1067
+ readonly pathTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
1068
+ readonly query: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1069
+ readonly key: v.StringSchema<undefined>;
1070
+ readonly value: v.StringSchema<undefined>;
1071
+ }, undefined>, undefined>, undefined>;
1072
+ readonly headers: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1073
+ readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1074
+ readonly value: v.StringSchema<undefined>;
1075
+ }, undefined>, undefined>, undefined>;
1076
+ readonly bodyTemplate: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1077
+ /** Per-call timeout (ms). Bounded; defaults applied by the adapter. */
1078
+ readonly timeoutMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 60000, undefined>]>, undefined>;
1079
+ }, undefined>;
1080
+ /** Optional: polled to observe async provisioning progress. */
1081
+ readonly status: v.OptionalSchema<v.ObjectSchema<{
1082
+ readonly method: v.PicklistSchema<["GET", "POST", "PUT", "PATCH", "DELETE"], undefined>;
1083
+ readonly pathTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
1084
+ readonly query: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1085
+ readonly key: v.StringSchema<undefined>;
1086
+ readonly value: v.StringSchema<undefined>;
1087
+ }, undefined>, undefined>, undefined>;
1088
+ readonly headers: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1089
+ readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1090
+ readonly value: v.StringSchema<undefined>;
1091
+ }, undefined>, undefined>, undefined>;
1092
+ readonly bodyTemplate: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1093
+ /** Per-call timeout (ms). Bounded; defaults applied by the adapter. */
1094
+ readonly timeoutMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 60000, undefined>]>, undefined>;
1095
+ }, undefined>, undefined>;
1096
+ /** Optional: called to destroy the environment (manual or on TTL expiry). */
1097
+ readonly teardown: v.OptionalSchema<v.ObjectSchema<{
1098
+ readonly method: v.PicklistSchema<["GET", "POST", "PUT", "PATCH", "DELETE"], undefined>;
1099
+ readonly pathTemplate: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>;
1100
+ readonly query: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1101
+ readonly key: v.StringSchema<undefined>;
1102
+ readonly value: v.StringSchema<undefined>;
1103
+ }, undefined>, undefined>, undefined>;
1104
+ readonly headers: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1105
+ readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1106
+ readonly value: v.StringSchema<undefined>;
1107
+ }, undefined>, undefined>, undefined>;
1108
+ readonly bodyTemplate: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1109
+ /** Per-call timeout (ms). Bounded; defaults applied by the adapter. */
1110
+ readonly timeoutMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 60000, undefined>]>, undefined>;
1111
+ }, undefined>, undefined>;
1112
+ readonly response: v.ObjectSchema<{
1113
+ readonly urlPath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1114
+ readonly statusPath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1115
+ readonly statusMap: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1116
+ readonly from: v.StringSchema<undefined>;
1117
+ readonly to: v.PicklistSchema<["provisioning", "ready", "failed", "expired", "tearing_down", "torn_down"], undefined>;
1118
+ }, undefined>, undefined>, undefined>;
1119
+ readonly expiresAtPath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1120
+ readonly externalIdPath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1121
+ readonly access: v.OptionalSchema<v.ObjectSchema<{
1122
+ readonly scheme: v.PicklistSchema<["none", "bearer", "basic", "custom_header"], undefined>;
1123
+ readonly tokenPath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1124
+ readonly usernamePath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1125
+ readonly passwordPath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1126
+ readonly headerName: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1127
+ readonly headerValuePath: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1128
+ }, undefined>, undefined>;
1129
+ }, undefined>;
1130
+ /** Fallback TTL (ms) when the response carries no explicit expiry. */
1131
+ readonly defaultTtlMs: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 60000, undefined>]>, undefined>;
1132
+ /**
1133
+ * Opaque, provider-specific configuration for a CUSTOM backend (e.g. a Kargo project,
1134
+ * link-selection key, status map). The generic HttpEnvironmentProvider ignores it
1135
+ * entirely; a custom backend — registered by reference into the app-owned
1136
+ * `EnvironmentBackendRegistry` (see `backend/docs/native-environment-adapter.md`) — reads
1137
+ * + validates it off the per-call
1138
+ * `manifest`. This is the per-WORKSPACE config carrier: a custom backend rides the generic
1139
+ * manifest member of `environmentBackendConfigSchema`, so its bespoke settings live here and
1140
+ * its credentials in the secret bundle. NOT covered by the manifest URL/SSRF checks (which
1141
+ * only guard `baseUrl`/`tokenUrl`); a backend that puts a URL here must guard it itself
1142
+ * (reuse the exported `UrlSafetyPolicy`).
1143
+ */
1144
+ readonly providerConfig: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
1145
+ }, undefined>;
1146
+ /** Which custom manifest shape this remote provider consumes — matched to a service's `manifestId`. */
1147
+ readonly acceptsManifestId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1148
+ }, undefined>], undefined>;
1149
+ export type InfraHandlerConfig = v.InferOutput<typeof infraHandlerConfigSchema>;
1150
+ export declare const customManifestTypeSourceSchema: v.PicklistSchema<["registered", "workspace"], undefined>;
1151
+ export type CustomManifestTypeSource = v.InferOutput<typeof customManifestTypeSourceSchema>;
1152
+ /** A custom manifest type a service can declare (and a remote-custom handler can accept). */
1153
+ export declare const customManifestTypeSchema: v.ObjectSchema<{
1154
+ readonly manifestId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>;
1155
+ readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
1156
+ /** `registered` (from a code provider) or `workspace` (UI-defined). */
1157
+ readonly source: v.PicklistSchema<["registered", "workspace"], undefined>;
1158
+ /** Optional hint describing the input shape the provider expects. */
1159
+ readonly acceptsInputHint: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1160
+ readonly description: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
1161
+ }, undefined>;
1162
+ export type CustomManifestType = v.InferOutput<typeof customManifestTypeSchema>;
1163
+ /** Create/edit a workspace-defined custom manifest type (UI CRUD). */
1164
+ export declare const upsertCustomManifestTypeSchema: v.ObjectSchema<{
1165
+ readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
1166
+ readonly acceptsInputHint: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
1167
+ readonly description: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
1168
+ }, undefined>;
1169
+ export type UpsertCustomManifestTypeInput = v.InferOutput<typeof upsertCustomManifestTypeSchema>;
705
1170
  /** Resolved access creds for a provisioned env, as surfaced to a tester agent. */
706
1171
  export declare const environmentAccessHandleSchema: v.ObjectSchema<{
707
1172
  readonly scheme: v.PicklistSchema<["none", "bearer", "basic", "custom_header"], undefined>;
@@ -734,6 +1199,18 @@ export declare const environmentHandleSchema: v.ObjectSchema<{
734
1199
  readonly createdAt: v.NumberSchema<undefined>;
735
1200
  readonly expiresAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
736
1201
  readonly lastError: v.NullableSchema<v.StringSchema<undefined>, undefined>;
1202
+ /**
1203
+ * The service's declared provision type this environment was stood up for
1204
+ * (`kubernetes` | `docker-compose` | `custom` | `infraless`). Recorded at provision
1205
+ * time so run details can show exactly what was provisioned. Null for legacy rows.
1206
+ */
1207
+ readonly provisionType: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["kubernetes", "docker-compose", "custom", "infraless"], undefined>, undefined>, undefined>;
1208
+ /**
1209
+ * The resolved engine that handled the provisioning (`local-docker` | `local-k3s` |
1210
+ * `remote-kubernetes` | `remote-custom` | `none`). Surfaced in run details alongside
1211
+ * the provider label. Null for legacy rows.
1212
+ */
1213
+ readonly engine: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["local-docker", "local-k3s", "remote-kubernetes", "remote-custom", "none"], undefined>, undefined>, undefined>;
737
1214
  }, undefined>;
738
1215
  export type EnvironmentHandle = v.InferOutput<typeof environmentHandleSchema>;
739
1216
  /** A workspace's provider binding, as exposed to clients (never secret values). */
@@ -1 +1 @@
1
- {"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../src/environments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../src/environments.ts"],"names":[],"mappings":"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"}