@sealant/api-contracts-next 0.40.0-next.766 → 0.40.0-next.767

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.
@@ -65,6 +65,12 @@ export declare const systemIndexResponseSchema: Schema.Struct<{
65
65
  readonly kubernetesPersonLayout: Schema.optional<Schema.Boolean>;
66
66
  /** Credential homes answer placement receipts; a put takes `live`; prune exists. */
67
67
  readonly credentialPlacements: Schema.optional<Schema.Boolean>;
68
+ /**
69
+ * Claude and Codex API keys are placed: a credentials put writes a Claude key into a home as
70
+ * a file of its own, whose receipt carries `keyPath` and the key's suffix, and a Codex key as
71
+ * Codex's own key file. A `$HOME` launch still refuses a Claude key.
72
+ */
73
+ readonly connectedAccountApiKeys: Schema.optional<Schema.Boolean>;
68
74
  }>>;
69
75
  }>;
70
76
  export type SystemIndexResponse = typeof systemIndexResponseSchema.Type;
@@ -157,6 +163,12 @@ export declare const SystemGroup: HttpApiGroup.HttpApiGroup<"system", HttpApiEnd
157
163
  readonly kubernetesPersonLayout: Schema.optional<Schema.Boolean>;
158
164
  /** Credential homes answer placement receipts; a put takes `live`; prune exists. */
159
165
  readonly credentialPlacements: Schema.optional<Schema.Boolean>;
166
+ /**
167
+ * Claude and Codex API keys are placed: a credentials put writes a Claude key into a home as
168
+ * a file of its own, whose receipt carries `keyPath` and the key's suffix, and a Codex key as
169
+ * Codex's own key file. A `$HOME` launch still refuses a Claude key.
170
+ */
171
+ readonly connectedAccountApiKeys: Schema.optional<Schema.Boolean>;
160
172
  }>>;
161
173
  }>>, never, never, never> | HttpApiEndpoint.HttpApiEndpoint<"getSetupState", "GET", "/v1/system/setup-state", never, never, never, never, Schema.toCodecJson<Schema.Struct<{
162
174
  readonly needsSetup: Schema.Boolean;
@@ -66,6 +66,12 @@ export const systemIndexResponseSchema = Schema.Struct({
66
66
  kubernetesPersonLayout: Schema.optional(Schema.Boolean),
67
67
  /** Credential homes answer placement receipts; a put takes `live`; prune exists. */
68
68
  credentialPlacements: Schema.optional(Schema.Boolean),
69
+ /**
70
+ * Claude and Codex API keys are placed: a credentials put writes a Claude key into a home as
71
+ * a file of its own, whose receipt carries `keyPath` and the key's suffix, and a Codex key as
72
+ * Codex's own key file. A `$HOME` launch still refuses a Claude key.
73
+ */
74
+ connectedAccountApiKeys: Schema.optional(Schema.Boolean),
69
75
  })),
70
76
  });
71
77
  export const systemHealthResponseSchema = Schema.Struct({
@@ -864,14 +864,30 @@ export declare const putWorkspaceCredentialsRequestSchema: Schema.Struct<{
864
864
  readonly live: Schema.optional<Schema.$Array<Schema.String>>;
865
865
  }>;
866
866
  export type PutWorkspaceCredentialsRequest = typeof putWorkspaceCredentialsRequestSchema.Type;
867
+ /**
868
+ * What a placed login spends. A key carries its last four characters; a Claude key also its file's
869
+ * absolute path, which Claude reads through an `apiKeyHelper` such as `cat <keyPath>`.
870
+ */
871
+ export declare const credentialPlacementLoginSchema: Schema.Union<readonly [Schema.Struct<{
872
+ readonly kind: Schema.Literal<"subscription">;
873
+ }>, Schema.Struct<{
874
+ readonly kind: Schema.Literal<"api-key">;
875
+ readonly suffix: Schema.String;
876
+ readonly keyPath: Schema.optional<Schema.String>;
877
+ }>]>;
878
+ export type CredentialPlacementLogin = typeof credentialPlacementLoginSchema.Type;
867
879
  /** One login written into one home: its id stays the same while a refresh moves its revision. */
868
880
  export declare const credentialPlacementReceiptSchema: Schema.Struct<{
869
881
  readonly placementId: Schema.String;
870
882
  readonly accountId: Schema.String;
871
883
  readonly revision: Schema.Int;
872
- readonly login: Schema.Struct<{
884
+ readonly login: Schema.Union<readonly [Schema.Struct<{
873
885
  readonly kind: Schema.Literal<"subscription">;
874
- }>;
886
+ }>, Schema.Struct<{
887
+ readonly kind: Schema.Literal<"api-key">;
888
+ readonly suffix: Schema.String;
889
+ readonly keyPath: Schema.optional<Schema.String>;
890
+ }>]>;
875
891
  readonly pinned: Schema.Boolean;
876
892
  }>;
877
893
  export type CredentialPlacementReceipt = typeof credentialPlacementReceiptSchema.Type;
@@ -880,9 +896,13 @@ export declare const workspaceCredentialPlacementReceiptSchema: Schema.Struct<{
880
896
  readonly placementId: Schema.String;
881
897
  readonly accountId: Schema.String;
882
898
  readonly revision: Schema.Int;
883
- readonly login: Schema.Struct<{
899
+ readonly login: Schema.Union<readonly [Schema.Struct<{
884
900
  readonly kind: Schema.Literal<"subscription">;
885
- }>;
901
+ }>, Schema.Struct<{
902
+ readonly kind: Schema.Literal<"api-key">;
903
+ readonly suffix: Schema.String;
904
+ readonly keyPath: Schema.optional<Schema.String>;
905
+ }>]>;
886
906
  readonly pinned: Schema.Boolean;
887
907
  readonly provider: Schema.Literals<readonly ["claude", "codex", "github", "pi", "opencode"]>;
888
908
  }>;
@@ -904,14 +924,23 @@ export declare const workspaceCredentialHomeSchema: Schema.Struct<{
904
924
  readonly placementId: Schema.String;
905
925
  readonly accountId: Schema.String;
906
926
  readonly revision: Schema.Int;
907
- readonly login: Schema.Struct<{
927
+ readonly login: Schema.Union<readonly [Schema.Struct<{
908
928
  readonly kind: Schema.Literal<"subscription">;
909
- }>;
929
+ }>, Schema.Struct<{
930
+ readonly kind: Schema.Literal<"api-key">;
931
+ readonly suffix: Schema.String;
932
+ readonly keyPath: Schema.optional<Schema.String>;
933
+ }>]>;
910
934
  readonly pinned: Schema.Boolean;
911
935
  readonly provider: Schema.Literals<readonly ["claude", "codex", "github", "pi", "opencode"]>;
912
936
  }>>>;
913
- /** By provider; a provider the home holds no login for is absent. */
937
+ /**
938
+ * By provider, the account whose login holds the provider's one file; a provider the home holds
939
+ * no such login for is absent. Claude keys are not here: each is a placement of its own, and the
940
+ * receipts in `placements` say which logins a home holds.
941
+ */
914
942
  readonly accounts: Schema.Struct<{
943
+ /** The account of Claude's subscription file, never a Claude key's. */
915
944
  readonly claude: Schema.optional<Schema.Struct<{
916
945
  readonly connectedAccountId: Schema.String;
917
946
  /** The account's name under its provider, as it is now. */
@@ -968,14 +997,23 @@ export declare const putWorkspaceCredentialsResponseSchema: Schema.Struct<{
968
997
  readonly placementId: Schema.String;
969
998
  readonly accountId: Schema.String;
970
999
  readonly revision: Schema.Int;
971
- readonly login: Schema.Struct<{
1000
+ readonly login: Schema.Union<readonly [Schema.Struct<{
972
1001
  readonly kind: Schema.Literal<"subscription">;
973
- }>;
1002
+ }>, Schema.Struct<{
1003
+ readonly kind: Schema.Literal<"api-key">;
1004
+ readonly suffix: Schema.String;
1005
+ readonly keyPath: Schema.optional<Schema.String>;
1006
+ }>]>;
974
1007
  readonly pinned: Schema.Boolean;
975
1008
  readonly provider: Schema.Literals<readonly ["claude", "codex", "github", "pi", "opencode"]>;
976
1009
  }>>>;
977
- /** By provider; a provider the home holds no login for is absent. */
1010
+ /**
1011
+ * By provider, the account whose login holds the provider's one file; a provider the home holds
1012
+ * no such login for is absent. Claude keys are not here: each is a placement of its own, and the
1013
+ * receipts in `placements` say which logins a home holds.
1014
+ */
978
1015
  readonly accounts: Schema.Struct<{
1016
+ /** The account of Claude's subscription file, never a Claude key's. */
979
1017
  readonly claude: Schema.optional<Schema.Struct<{
980
1018
  readonly connectedAccountId: Schema.String;
981
1019
  /** The account's name under its provider, as it is now. */
@@ -1038,14 +1076,23 @@ export declare const pruneWorkspaceCredentialsResponseSchema: Schema.Struct<{
1038
1076
  readonly placementId: Schema.String;
1039
1077
  readonly accountId: Schema.String;
1040
1078
  readonly revision: Schema.Int;
1041
- readonly login: Schema.Struct<{
1079
+ readonly login: Schema.Union<readonly [Schema.Struct<{
1042
1080
  readonly kind: Schema.Literal<"subscription">;
1043
- }>;
1081
+ }>, Schema.Struct<{
1082
+ readonly kind: Schema.Literal<"api-key">;
1083
+ readonly suffix: Schema.String;
1084
+ readonly keyPath: Schema.optional<Schema.String>;
1085
+ }>]>;
1044
1086
  readonly pinned: Schema.Boolean;
1045
1087
  readonly provider: Schema.Literals<readonly ["claude", "codex", "github", "pi", "opencode"]>;
1046
1088
  }>>>;
1047
- /** By provider; a provider the home holds no login for is absent. */
1089
+ /**
1090
+ * By provider, the account whose login holds the provider's one file; a provider the home holds
1091
+ * no such login for is absent. Claude keys are not here: each is a placement of its own, and the
1092
+ * receipts in `placements` say which logins a home holds.
1093
+ */
1048
1094
  readonly accounts: Schema.Struct<{
1095
+ /** The account of Claude's subscription file, never a Claude key's. */
1049
1096
  readonly claude: Schema.optional<Schema.Struct<{
1050
1097
  readonly connectedAccountId: Schema.String;
1051
1098
  /** The account's name under its provider, as it is now. */
@@ -1108,14 +1155,23 @@ export declare const listWorkspaceCredentialsResponseSchema: Schema.Struct<{
1108
1155
  readonly placementId: Schema.String;
1109
1156
  readonly accountId: Schema.String;
1110
1157
  readonly revision: Schema.Int;
1111
- readonly login: Schema.Struct<{
1158
+ readonly login: Schema.Union<readonly [Schema.Struct<{
1112
1159
  readonly kind: Schema.Literal<"subscription">;
1113
- }>;
1160
+ }>, Schema.Struct<{
1161
+ readonly kind: Schema.Literal<"api-key">;
1162
+ readonly suffix: Schema.String;
1163
+ readonly keyPath: Schema.optional<Schema.String>;
1164
+ }>]>;
1114
1165
  readonly pinned: Schema.Boolean;
1115
1166
  readonly provider: Schema.Literals<readonly ["claude", "codex", "github", "pi", "opencode"]>;
1116
1167
  }>>>;
1117
- /** By provider; a provider the home holds no login for is absent. */
1168
+ /**
1169
+ * By provider, the account whose login holds the provider's one file; a provider the home holds
1170
+ * no such login for is absent. Claude keys are not here: each is a placement of its own, and the
1171
+ * receipts in `placements` say which logins a home holds.
1172
+ */
1118
1173
  readonly accounts: Schema.Struct<{
1174
+ /** The account of Claude's subscription file, never a Claude key's. */
1119
1175
  readonly claude: Schema.optional<Schema.Struct<{
1120
1176
  readonly connectedAccountId: Schema.String;
1121
1177
  /** The account's name under its provider, as it is now. */
@@ -2837,14 +2893,23 @@ export declare const WorkspacesGroup: HttpApiGroup.HttpApiGroup<"workspaces", Ht
2837
2893
  readonly placementId: Schema.String;
2838
2894
  readonly accountId: Schema.String;
2839
2895
  readonly revision: Schema.Int;
2840
- readonly login: Schema.Struct<{
2896
+ readonly login: Schema.Union<readonly [Schema.Struct<{
2841
2897
  readonly kind: Schema.Literal<"subscription">;
2842
- }>;
2898
+ }>, Schema.Struct<{
2899
+ readonly kind: Schema.Literal<"api-key">;
2900
+ readonly suffix: Schema.String;
2901
+ readonly keyPath: Schema.optional<Schema.String>;
2902
+ }>]>;
2843
2903
  readonly pinned: Schema.Boolean;
2844
2904
  readonly provider: Schema.Literals<readonly ["claude", "codex", "github", "pi", "opencode"]>;
2845
2905
  }>>>;
2846
- /** By provider; a provider the home holds no login for is absent. */
2906
+ /**
2907
+ * By provider, the account whose login holds the provider's one file; a provider the home holds
2908
+ * no such login for is absent. Claude keys are not here: each is a placement of its own, and the
2909
+ * receipts in `placements` say which logins a home holds.
2910
+ */
2847
2911
  readonly accounts: Schema.Struct<{
2912
+ /** The account of Claude's subscription file, never a Claude key's. */
2848
2913
  readonly claude: Schema.optional<Schema.Struct<{
2849
2914
  readonly connectedAccountId: Schema.String;
2850
2915
  /** The account's name under its provider, as it is now. */
@@ -2999,14 +3064,23 @@ export declare const WorkspacesGroup: HttpApiGroup.HttpApiGroup<"workspaces", Ht
2999
3064
  readonly placementId: Schema.String;
3000
3065
  readonly accountId: Schema.String;
3001
3066
  readonly revision: Schema.Int;
3002
- readonly login: Schema.Struct<{
3067
+ readonly login: Schema.Union<readonly [Schema.Struct<{
3003
3068
  readonly kind: Schema.Literal<"subscription">;
3004
- }>;
3069
+ }>, Schema.Struct<{
3070
+ readonly kind: Schema.Literal<"api-key">;
3071
+ readonly suffix: Schema.String;
3072
+ readonly keyPath: Schema.optional<Schema.String>;
3073
+ }>]>;
3005
3074
  readonly pinned: Schema.Boolean;
3006
3075
  readonly provider: Schema.Literals<readonly ["claude", "codex", "github", "pi", "opencode"]>;
3007
3076
  }>>>;
3008
- /** By provider; a provider the home holds no login for is absent. */
3077
+ /**
3078
+ * By provider, the account whose login holds the provider's one file; a provider the home holds
3079
+ * no such login for is absent. Claude keys are not here: each is a placement of its own, and the
3080
+ * receipts in `placements` say which logins a home holds.
3081
+ */
3009
3082
  readonly accounts: Schema.Struct<{
3083
+ /** The account of Claude's subscription file, never a Claude key's. */
3010
3084
  readonly claude: Schema.optional<Schema.Struct<{
3011
3085
  readonly connectedAccountId: Schema.String;
3012
3086
  /** The account's name under its provider, as it is now. */
@@ -3097,14 +3171,23 @@ export declare const WorkspacesGroup: HttpApiGroup.HttpApiGroup<"workspaces", Ht
3097
3171
  readonly placementId: Schema.String;
3098
3172
  readonly accountId: Schema.String;
3099
3173
  readonly revision: Schema.Int;
3100
- readonly login: Schema.Struct<{
3174
+ readonly login: Schema.Union<readonly [Schema.Struct<{
3101
3175
  readonly kind: Schema.Literal<"subscription">;
3102
- }>;
3176
+ }>, Schema.Struct<{
3177
+ readonly kind: Schema.Literal<"api-key">;
3178
+ readonly suffix: Schema.String;
3179
+ readonly keyPath: Schema.optional<Schema.String>;
3180
+ }>]>;
3103
3181
  readonly pinned: Schema.Boolean;
3104
3182
  readonly provider: Schema.Literals<readonly ["claude", "codex", "github", "pi", "opencode"]>;
3105
3183
  }>>>;
3106
- /** By provider; a provider the home holds no login for is absent. */
3184
+ /**
3185
+ * By provider, the account whose login holds the provider's one file; a provider the home holds
3186
+ * no such login for is absent. Claude keys are not here: each is a placement of its own, and the
3187
+ * receipts in `placements` say which logins a home holds.
3188
+ */
3107
3189
  readonly accounts: Schema.Struct<{
3190
+ /** The account of Claude's subscription file, never a Claude key's. */
3108
3191
  readonly claude: Schema.optional<Schema.Struct<{
3109
3192
  readonly connectedAccountId: Schema.String;
3110
3193
  /** The account's name under its provider, as it is now. */
@@ -741,12 +741,24 @@ export const putWorkspaceCredentialsRequestSchema = Schema.Struct({
741
741
  */
742
742
  live: Schema.optional(Schema.Array(NonEmptyString)),
743
743
  });
744
+ /**
745
+ * What a placed login spends. A key carries its last four characters; a Claude key also its file's
746
+ * absolute path, which Claude reads through an `apiKeyHelper` such as `cat <keyPath>`.
747
+ */
748
+ export const credentialPlacementLoginSchema = Schema.Union([
749
+ Schema.Struct({ kind: Schema.Literal("subscription") }),
750
+ Schema.Struct({
751
+ kind: Schema.Literal("api-key"),
752
+ suffix: NonEmptyString,
753
+ keyPath: Schema.optional(NonEmptyString),
754
+ }),
755
+ ]);
744
756
  /** One login written into one home: its id stays the same while a refresh moves its revision. */
745
757
  export const credentialPlacementReceiptSchema = Schema.Struct({
746
758
  placementId: NonEmptyString,
747
759
  accountId: NonEmptyString,
748
760
  revision: Schema.Int.check(Schema.isGreaterThan(0)),
749
- login: Schema.Struct({ kind: Schema.Literal("subscription") }),
761
+ login: credentialPlacementLoginSchema,
750
762
  pinned: Schema.Boolean,
751
763
  });
752
764
  /** A receipt tagged with the home provider whose slot it occupies. */
@@ -767,8 +779,13 @@ export const workspaceCredentialHomeSchema = Schema.Struct({
767
779
  onBehalfOfUserId: NonEmptyString,
768
780
  /** The logins written there, one receipt each. Absent from a server without placements. */
769
781
  placements: Schema.optional(Schema.Array(workspaceCredentialPlacementReceiptSchema)),
770
- /** By provider; a provider the home holds no login for is absent. */
782
+ /**
783
+ * By provider, the account whose login holds the provider's one file; a provider the home holds
784
+ * no such login for is absent. Claude keys are not here: each is a placement of its own, and the
785
+ * receipts in `placements` say which logins a home holds.
786
+ */
771
787
  accounts: Schema.Struct({
788
+ /** The account of Claude's subscription file, never a Claude key's. */
772
789
  claude: Schema.optional(workspaceHomeAccountSchema),
773
790
  codex: Schema.optional(workspaceHomeAccountSchema),
774
791
  github: Schema.optional(workspaceHomeAccountSchema),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sealant/api-contracts-next",
3
- "version": "0.40.0-next.766",
3
+ "version": "0.40.0-next.767",
4
4
  "description": "Contract-first HTTP API definitions for Sealant services",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -36,7 +36,7 @@
36
36
  "peerDependencies": {
37
37
  "effect": "^4.0.5"
38
38
  },
39
- "gitHead": "a8da605cc7a422a896dd2203183561cf62bde351",
39
+ "gitHead": "97076a88aa9305d64290508d681af72dfa89868f",
40
40
  "publishConfig": {
41
41
  "access": "public"
42
42
  }