@spacefast/common 0.0.5 → 0.0.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.
Files changed (150) hide show
  1. package/dist/agents/connect-targets.d.ts +133 -0
  2. package/dist/agents/connect-targets.js +224 -0
  3. package/dist/brand.d.ts +1 -0
  4. package/dist/brand.js +5 -0
  5. package/dist/config/domains.d.ts +12 -6
  6. package/dist/config/domains.js +30 -38
  7. package/dist/contracts/access.d.ts +825 -125
  8. package/dist/contracts/access.js +771 -148
  9. package/dist/contracts/activity.d.ts +1 -1
  10. package/dist/contracts/activity.js +28 -2
  11. package/dist/contracts/annotations.d.ts +2 -4
  12. package/dist/contracts/api-keys.d.ts +3 -4
  13. package/dist/contracts/api-keys.js +9 -6
  14. package/dist/contracts/archives.d.ts +8 -2
  15. package/dist/contracts/archives.js +11 -4
  16. package/dist/contracts/billing.d.ts +0 -9
  17. package/dist/contracts/builds.d.ts +25 -21
  18. package/dist/contracts/builds.js +12 -0
  19. package/dist/contracts/common.d.ts +2 -0
  20. package/dist/contracts/common.js +4 -0
  21. package/dist/contracts/continuation.d.ts +0 -3
  22. package/dist/contracts/countries.d.ts +2 -0
  23. package/dist/contracts/countries.js +261 -0
  24. package/dist/contracts/deployments.d.ts +34 -34
  25. package/dist/contracts/device-auth.d.ts +4 -11
  26. package/dist/contracts/device-auth.js +4 -0
  27. package/dist/contracts/docs.d.ts +119 -0
  28. package/dist/contracts/docs.js +51 -0
  29. package/dist/contracts/domains.d.ts +96 -54
  30. package/dist/contracts/domains.js +26 -4
  31. package/dist/contracts/enums.d.ts +15 -16
  32. package/dist/contracts/enums.js +25 -14
  33. package/dist/contracts/error-code-meta.d.ts +72 -0
  34. package/dist/contracts/error-code-meta.js +96 -10
  35. package/dist/contracts/error-codes.d.ts +1 -1
  36. package/dist/contracts/error-codes.js +14 -0
  37. package/dist/contracts/events.d.ts +1 -1
  38. package/dist/contracts/features.d.ts +76 -6
  39. package/dist/contracts/features.js +178 -13
  40. package/dist/contracts/git.d.ts +2 -8
  41. package/dist/contracts/ids.d.ts +5 -0
  42. package/dist/contracts/ids.js +5 -0
  43. package/dist/contracts/mcp.d.ts +8 -10
  44. package/dist/contracts/me.js +1 -1
  45. package/dist/contracts/oauth-resources.d.ts +19 -8
  46. package/dist/contracts/oauth-resources.js +44 -13
  47. package/dist/contracts/platform.d.ts +0 -102
  48. package/dist/contracts/platform.js +0 -50
  49. package/dist/contracts/push-new.d.ts +4 -4
  50. package/dist/contracts/quotas.d.ts +2 -0
  51. package/dist/contracts/quotas.js +8 -0
  52. package/dist/contracts/repository-connections.d.ts +6 -8
  53. package/dist/contracts/resources.d.ts +97 -13
  54. package/dist/contracts/resources.js +26 -2
  55. package/dist/contracts/routes.d.ts +0 -2
  56. package/dist/contracts/runtime-api.d.ts +361 -39
  57. package/dist/contracts/runtime-api.js +275 -6
  58. package/dist/contracts/sites.d.ts +19 -2
  59. package/dist/contracts/sites.js +21 -0
  60. package/dist/contracts/space-config.d.ts +201 -2
  61. package/dist/contracts/space-config.js +135 -5
  62. package/dist/contracts/spaces.d.ts +364 -193
  63. package/dist/contracts/spaces.js +40 -8
  64. package/dist/contracts/superadmin-emails.d.ts +4 -2
  65. package/dist/contracts/superadmin-emails.js +8 -0
  66. package/dist/contracts/superadmin-queues.d.ts +26 -26
  67. package/dist/contracts/superadmin-spaces.d.ts +170 -42
  68. package/dist/contracts/superadmin.d.ts +6 -93
  69. package/dist/contracts/superadmin.js +6 -14
  70. package/dist/contracts/tags.d.ts +10 -9
  71. package/dist/contracts/tags.js +2 -1
  72. package/dist/contracts/teams.d.ts +21 -22
  73. package/dist/contracts/teams.js +0 -1
  74. package/dist/contracts/theme-json.d.ts +30 -0
  75. package/dist/contracts/theme-json.js +48 -0
  76. package/dist/contracts/variables.d.ts +0 -2
  77. package/dist/contracts/variables.js +0 -5
  78. package/dist/contracts/webhooks.d.ts +2 -0
  79. package/dist/contracts/webhooks.js +1 -1
  80. package/dist/contracts/zero.d.ts +5 -10
  81. package/dist/docs/agent-prose.d.ts +43 -3
  82. package/dist/docs/agent-prose.js +146 -7
  83. package/dist/docs/agent-setup.js +45 -13
  84. package/dist/docs/agent-solutions.d.ts +5 -5
  85. package/dist/docs/agent-solutions.js +2 -2
  86. package/dist/docs/catalog.d.ts +650 -0
  87. package/dist/docs/catalog.js +758 -0
  88. package/dist/docs/error-docs.d.ts +0 -2
  89. package/dist/docs/error-docs.js +77 -35
  90. package/dist/docs/index-build.d.ts +17 -0
  91. package/dist/docs/index-build.js +24 -0
  92. package/dist/docs/search.d.ts +54 -0
  93. package/dist/docs/search.js +96 -0
  94. package/dist/docs/skill-distribution.d.ts +5 -3
  95. package/dist/docs/skill-distribution.js +8 -8
  96. package/dist/utils/access-match.d.ts +39 -0
  97. package/dist/utils/access-match.js +296 -0
  98. package/dist/utils/auth-redirect.d.ts +3 -1
  99. package/dist/utils/auth-redirect.js +21 -1
  100. package/dist/utils/build-settings.d.ts +6 -0
  101. package/dist/utils/build-settings.js +429 -46
  102. package/dist/utils/claim-token.d.ts +8 -0
  103. package/dist/utils/claim-token.js +23 -2
  104. package/dist/utils/content-type.d.ts +1 -0
  105. package/dist/utils/content-type.js +1 -1
  106. package/dist/utils/credential-policy.d.ts +54 -0
  107. package/dist/utils/{access-policy.js → credential-policy.js} +28 -2
  108. package/dist/utils/gate-theme.d.ts +61 -0
  109. package/dist/utils/gate-theme.js +217 -0
  110. package/dist/utils/git-repository.d.ts +0 -1
  111. package/dist/utils/git-repository.js +0 -3
  112. package/dist/utils/id-hints.d.ts +8 -0
  113. package/dist/utils/id-hints.js +61 -0
  114. package/dist/utils/local-space-state.d.ts +91 -0
  115. package/dist/utils/local-space-state.js +251 -0
  116. package/dist/utils/oauth-signed-query.d.ts +8 -0
  117. package/dist/utils/oauth-signed-query.js +26 -0
  118. package/dist/utils/publish-detection.d.ts +0 -8
  119. package/dist/utils/publish-detection.js +0 -93
  120. package/dist/utils/publish-policy.d.ts +6 -5
  121. package/dist/utils/publish-policy.js +71 -7
  122. package/dist/utils/query-keys.d.ts +15 -4
  123. package/dist/utils/query-keys.js +27 -4
  124. package/dist/utils/runtime-paths.d.ts +0 -1
  125. package/dist/utils/runtime-paths.js +0 -1
  126. package/dist/utils/runtime-upload-batch.d.ts +18 -0
  127. package/dist/utils/runtime-upload-batch.js +90 -0
  128. package/dist/utils/runtime-upload.d.ts +2 -0
  129. package/dist/utils/runtime-upload.js +5 -0
  130. package/dist/utils/space-config.d.ts +4 -0
  131. package/dist/utils/space-config.js +10 -1
  132. package/dist/utils/space-theme.d.ts +2 -0
  133. package/dist/utils/space-theme.js +9 -0
  134. package/dist/utils/static-runtime-policy.d.ts +0 -21
  135. package/dist/utils/static-runtime-policy.js +19 -103
  136. package/dist/utils/upload-session.d.ts +1 -1
  137. package/dist/utils/wpcom-auth-redirects.d.ts +32 -2
  138. package/dist/utils/wpcom-auth-redirects.js +26 -10
  139. package/dist/vocabulary.d.ts +130 -30
  140. package/dist/vocabulary.js +77 -36
  141. package/package.json +16 -1
  142. package/dist/contracts/account.d.ts +0 -28
  143. package/dist/contracts/account.js +0 -54
  144. package/dist/contracts/intercom.d.ts +0 -6
  145. package/dist/contracts/intercom.js +0 -5
  146. package/dist/contracts/telemetry.d.ts +0 -2
  147. package/dist/contracts/telemetry.js +0 -1
  148. package/dist/utils/access-policy.d.ts +0 -39
  149. package/dist/utils/error-display.d.ts +0 -7
  150. package/dist/utils/error-display.js +0 -42
@@ -209,12 +209,12 @@ export const spaceCustomDomainSchema = DomainSchema.extend({
209
209
  });
210
210
  export const spaceManagedDomainSchema = z.object({
211
211
  id: z.string().describe("Stable managed row id derived from the default hostname row."),
212
- source: z.literal("managed_view_fast").describe("System-managed view.fast hostname row."),
212
+ source: z.literal("managed_view_fast").describe("System-managed hostname row."),
213
213
  managed: z.literal(true),
214
214
  deletable: z.literal(false),
215
215
  assignable: z.literal(false),
216
216
  primary: z.boolean().describe("True when no custom primary domain overrides the managed URL."),
217
- name: z.string().describe("Managed view.fast hostname."),
217
+ name: z.string().describe("Managed hostname."),
218
218
  unicodeName: z.string().optional(),
219
219
  kind: z.literal("hostname"),
220
220
  publicName: z.string().describe("Left-hand public project label for the managed hostname."),
@@ -1027,7 +1027,7 @@ export const domainProviderConnectionCreateSchema = z
1027
1027
  });
1028
1028
  export const domainProviderConnectionOAuthCompleteSchema = z.object({
1029
1029
  teamId: z.string().min(1).optional(),
1030
- provider: z.literal("cloudflare"),
1030
+ provider: z.enum(["cloudflare", "wpcom"]),
1031
1031
  label: z.string().trim().min(1).max(255).optional(),
1032
1032
  });
1033
1033
  export const domainProviderZoneSchema = z.object({
@@ -1047,6 +1047,22 @@ export const domainProviderZoneAttachSchema = z.object({
1047
1047
  providerZoneId: z.string().min(1).max(255),
1048
1048
  providerZoneName: z.string().trim().min(1).max(255).optional(),
1049
1049
  });
1050
+ export const domainConnectDiscoverySchema = z.object({
1051
+ supported: z.boolean(),
1052
+ gated: z.boolean().optional(),
1053
+ provider: z
1054
+ .object({
1055
+ urlSyncUX: z.string().url().optional(),
1056
+ urlAPI: z.string().url().optional(),
1057
+ urlControlPanel: z.string().url().optional(),
1058
+ providerName: z.string().optional(),
1059
+ })
1060
+ .optional(),
1061
+ checkedAt: z.string().datetime(),
1062
+ });
1063
+ export const domainConnectDiscoveryResponseSchema = z.object({
1064
+ data: domainConnectDiscoverySchema,
1065
+ });
1050
1066
  export const domainProviderSnapshotRefreshResponseSchema = mutationEnvelope(z.object({
1051
1067
  operationId: z.string(),
1052
1068
  snapshot: z.object({
@@ -1361,7 +1377,7 @@ export const domainDnsRecordBatchSchema = z
1361
1377
  puts: z
1362
1378
  .array(domainDnsRecordFields.extend({ id: z.string() }).superRefine(requireMxSrvPriority))
1363
1379
  .default([])
1364
- .describe("Full record upserts by id, applied third."),
1380
+ .describe("Full replacements for existing records by id, applied third."),
1365
1381
  posts: z
1366
1382
  .array(domainDnsRecordFields.superRefine(requireMxSrvPriority))
1367
1383
  .default([])
@@ -1376,6 +1392,8 @@ export const domainHostnameDnsSnapshotSchema = z.object({
1376
1392
  a: z.array(z.string()).default([]),
1377
1393
  aaaa: z.array(z.string()).default([]),
1378
1394
  caa: z.array(z.string()).default([]),
1395
+ cname: z.array(z.string()).default([]),
1396
+ mx: z.array(z.string()).default([]),
1379
1397
  txt: z.array(z.string()).default([]),
1380
1398
  });
1381
1399
  export const domainHostnameSslBrokenRecordSchema = z.object({
@@ -1400,8 +1418,10 @@ export const domainHostnameDiagnosticsSchema = z.object({
1400
1418
  .default([])
1401
1419
  .describe("DNS records required for this hostname."),
1402
1420
  dns: z.object({
1421
+ observedAt: z.string().datetime(),
1403
1422
  expectedTxtValue: z.string().nullable(),
1404
1423
  pointsToProvider: z.boolean().describe("Whether observed A records point at the provider."),
1424
+ proxyDetected: z.boolean().nullable().describe("Whether observed A records look proxied."),
1405
1425
  txtVerified: z.boolean().nullable().describe("Whether the verification TXT is observed."),
1406
1426
  hasAaaaRecords: z.boolean(),
1407
1427
  hasCaaRecords: z.boolean(),
@@ -1409,6 +1429,8 @@ export const domainHostnameDiagnosticsSchema = z.object({
1409
1429
  a: z.array(z.string()).default([]),
1410
1430
  aaaa: z.array(z.string()).default([]),
1411
1431
  caa: z.array(z.string()).default([]),
1432
+ cname: z.array(z.string()).default([]),
1433
+ mx: z.array(z.string()).default([]),
1412
1434
  txt: z.array(z.string()).default([]),
1413
1435
  }),
1414
1436
  byResolver: z.array(domainHostnameDnsSnapshotSchema).default([]),
@@ -8,12 +8,13 @@ export declare const spaceStatus: z.ZodEnum<{
8
8
  deleting: "deleting";
9
9
  failed: "failed";
10
10
  }>;
11
- export declare const spaceDisabledReasonCodeValues: readonly ["anonymous_expired", "abuse_takedown", "tenant_suspended", "site_suspended"];
11
+ export declare const spaceDisabledReasonCodeValues: readonly ["anonymous_expired", "abuse_takedown", "tenant_suspended", "site_suspended", "visit_cap_exceeded"];
12
12
  export declare const spaceDisabledReasonCode: z.ZodEnum<{
13
13
  anonymous_expired: "anonymous_expired";
14
14
  abuse_takedown: "abuse_takedown";
15
15
  tenant_suspended: "tenant_suspended";
16
16
  site_suspended: "site_suspended";
17
+ visit_cap_exceeded: "visit_cap_exceeded";
17
18
  }>;
18
19
  export declare const spaceTransferStatusValues: readonly ["pending_confirmation", "confirming_domains", "moving", "completed", "canceled", "expired"];
19
20
  export declare const spaceTransferStatus: z.ZodEnum<{
@@ -61,12 +62,22 @@ export declare const siteStatus: z.ZodEnum<{
61
62
  ready_pool: "ready_pool";
62
63
  degraded: "degraded";
63
64
  }>;
64
- export declare const siteClassValues: readonly ["anonymous_pool", "shared_org", "dedicated_space"];
65
+ export declare const siteClassValues: readonly ["shared", "dedicated", "shared_org", "anonymous_pool", "dedicated_space"];
65
66
  export declare const siteClass: z.ZodEnum<{
66
- anonymous_pool: "anonymous_pool";
67
+ shared: "shared";
68
+ dedicated: "dedicated";
67
69
  shared_org: "shared_org";
70
+ anonymous_pool: "anonymous_pool";
68
71
  dedicated_space: "dedicated_space";
69
72
  }>;
73
+ export declare const normalizedSiteClassValues: readonly ["shared", "dedicated"];
74
+ export declare const normalizedSiteClass: z.ZodEnum<{
75
+ shared: "shared";
76
+ dedicated: "dedicated";
77
+ }>;
78
+ export declare function normalizeSiteClass(value: SiteClass): NormalizedSiteClass;
79
+ export declare function siteClassIsShared(value: SiteClass): boolean;
80
+ export declare function siteClassIsDedicated(value: SiteClass): boolean;
70
81
  export declare const publishSourceKindValues: readonly ["direct_upload", "cli", "dashboard", "api", "git", "import", "agent", "build", "variable_update", "config_update"];
71
82
  export declare const publishSourceKind: z.ZodEnum<{
72
83
  api: "api";
@@ -165,15 +176,6 @@ export declare const cachePurgeTarget: z.ZodEnum<{
165
176
  domain: "domain";
166
177
  path: "path";
167
178
  }>;
168
- export declare const bullJobStatus: z.ZodEnum<{
169
- active: "active";
170
- failed: "failed";
171
- completed: "completed";
172
- delayed: "delayed";
173
- prioritized: "prioritized";
174
- waiting: "waiting";
175
- "waiting-children": "waiting-children";
176
- }>;
177
179
  export declare const operationStatus: z.ZodEnum<{
178
180
  failed: "failed";
179
181
  canceled: "canceled";
@@ -181,16 +183,13 @@ export declare const operationStatus: z.ZodEnum<{
181
183
  running: "running";
182
184
  succeeded: "succeeded";
183
185
  }>;
184
- export type VersionStatus = z.infer<typeof versionStatus>;
185
186
  export type GitProvider = z.infer<typeof gitProvider>;
186
187
  export type PublishSourceKind = z.infer<typeof publishSourceKind>;
187
188
  export type SiteIsolation = z.infer<typeof siteIsolation>;
188
- export type TenantKind = z.infer<typeof tenantKind>;
189
189
  export type TenantStatus = z.infer<typeof tenantStatus>;
190
- export type ProviderClientStatus = z.infer<typeof providerClientStatus>;
191
190
  export type SiteKind = z.infer<typeof siteKind>;
192
- export type SiteStatus = z.infer<typeof siteStatus>;
193
191
  export type SiteClass = z.infer<typeof siteClass>;
192
+ export type NormalizedSiteClass = z.infer<typeof normalizedSiteClass>;
194
193
  export type OperationStatus = z.infer<typeof operationStatus>;
195
194
  export type SafetyCategory = z.infer<typeof safetyCategory>;
196
195
  export type EnforcementTier = z.infer<typeof enforcementTier>;
@@ -12,13 +12,16 @@ export const spaceStatusValues = [
12
12
  ];
13
13
  export const spaceStatus = z.enum(spaceStatusValues);
14
14
  // Serving-axis disable reasons (internal-docs/platform.md "Space"): exactly
15
- // these four. Malware takedowns are `abuse_takedown` with
16
- // `details.source = "malware_scan"`.
15
+ // these five. Malware takedowns are `abuse_takedown` with
16
+ // `details.source = "malware_scan"`. `visit_cap_exceeded` is the anonymous
17
+ // visit-quota pause (ANONYMOUS_PUBLISH_CAPS.maxLifetimeViews): recoverable,
18
+ // the claim token stays intact, and claiming the space restores serving.
17
19
  export const spaceDisabledReasonCodeValues = [
18
20
  "anonymous_expired",
19
21
  "abuse_takedown",
20
22
  "tenant_suspended",
21
23
  "site_suspended",
24
+ "visit_cap_exceeded",
22
25
  ];
23
26
  export const spaceDisabledReasonCode = z.enum(spaceDisabledReasonCodeValues);
24
27
  // SpaceTransfer status machine (internal-docs/platform.md "Transfer
@@ -72,10 +75,27 @@ export const siteStatusValues = [
72
75
  "deleted",
73
76
  ];
74
77
  export const siteStatus = z.enum(siteStatusValues);
75
- // Placement class for shared-pool sites: anonymous pool partition, one shared
76
- // site per team, or a site dedicated to a single space / tenant-created site.
77
- export const siteClassValues = ["anonymous_pool", "shared_org", "dedicated_space"];
78
+ // Placement class for a WP.Cloud site. Deploy T accepts the legacy class
79
+ // strings while new code writes the normalized shared/dedicated vocabulary.
80
+ export const siteClassValues = [
81
+ "shared",
82
+ "dedicated",
83
+ "shared_org",
84
+ "anonymous_pool",
85
+ "dedicated_space",
86
+ ];
78
87
  export const siteClass = z.enum(siteClassValues);
88
+ export const normalizedSiteClassValues = ["shared", "dedicated"];
89
+ export const normalizedSiteClass = z.enum(normalizedSiteClassValues);
90
+ export function normalizeSiteClass(value) {
91
+ return value === "dedicated" || value === "dedicated_space" ? "dedicated" : "shared";
92
+ }
93
+ export function siteClassIsShared(value) {
94
+ return normalizeSiteClass(value) === "shared";
95
+ }
96
+ export function siteClassIsDedicated(value) {
97
+ return normalizeSiteClass(value) === "dedicated";
98
+ }
79
99
  // PublishSource.kind (internal-docs/platform.md "PublishSource"): the single
80
100
  // provenance axis for how a version came to exist. `variable_update` and
81
101
  // `config_update` versions are minted by cascades/config regeneration.
@@ -199,13 +219,4 @@ export const enforcementTierValues = ["record", "space_takedown", "account_suspe
199
219
  export const enforcementTier = z.enum(enforcementTierValues);
200
220
  export const cachePurgeAction = z.enum(["invalidate"]);
201
221
  export const cachePurgeTarget = z.enum(["space", "domain", "path"]);
202
- export const bullJobStatus = z.enum([
203
- "active",
204
- "completed",
205
- "delayed",
206
- "failed",
207
- "prioritized",
208
- "waiting",
209
- "waiting-children",
210
- ]);
211
222
  export const operationStatus = z.enum(["queued", "running", "succeeded", "failed", "canceled"]);
@@ -4,6 +4,8 @@ export interface ErrorCodeMeta {
4
4
  retryable: boolean;
5
5
  /** The single actionable recovery hint for this code. */
6
6
  recovery: ErrorRecovery;
7
+ /** Copy-pasteable commands or requests an agent can run next. */
8
+ next?: readonly string[];
7
9
  }
8
10
  /** Safe default for codes outside the table (provider passthrough, future codes). */
9
11
  export declare const DEFAULT_ERROR_CODE_META: ErrorCodeMeta;
@@ -15,6 +17,7 @@ export declare const ERROR_CODE_META: {
15
17
  readonly abuse_report_rate_limited: {
16
18
  readonly retryable: true;
17
19
  readonly recovery: "wait";
20
+ readonly next: readonly ["Retry after the Retry-After seconds"];
18
21
  };
19
22
  readonly abuse_takedown: {
20
23
  readonly retryable: false;
@@ -35,6 +38,7 @@ export declare const ERROR_CODE_META: {
35
38
  readonly anonymous_expired: {
36
39
  readonly retryable: false;
37
40
  readonly recovery: "re_auth";
41
+ readonly next: readonly ["sf publish", "MCP: call publish", "curl -sS -F archive=@site.zip https://api.spacefast.com/v1/publish"];
38
42
  };
39
43
  readonly anonymous_pool_unavailable: {
40
44
  readonly retryable: true;
@@ -43,6 +47,12 @@ export declare const ERROR_CODE_META: {
43
47
  readonly anonymous_publish_rate_limited: {
44
48
  readonly retryable: true;
45
49
  readonly recovery: "wait";
50
+ readonly next: readonly ["Retry after the Retry-After seconds", "sf login", "sf publish"];
51
+ };
52
+ readonly anonymous_space_limit_reached: {
53
+ readonly retryable: false;
54
+ readonly recovery: "re_auth";
55
+ readonly next: readonly ["sf login", "Claim or delete an existing anonymous space"];
46
56
  };
47
57
  readonly archive_body_required: {
48
58
  readonly retryable: false;
@@ -168,6 +178,16 @@ export declare const ERROR_CODE_META: {
168
178
  readonly retryable: false;
169
179
  readonly recovery: "fix_input";
170
180
  };
181
+ readonly continuation_unavailable: {
182
+ readonly retryable: false;
183
+ readonly recovery: "re_auth";
184
+ readonly next: readonly ["Ask the owner to create an access token", "sf login", "sf publish --token <access-token>"];
185
+ };
186
+ readonly continuation_used: {
187
+ readonly retryable: false;
188
+ readonly recovery: "re_auth";
189
+ readonly next: readonly ["Use the saved access token", "sf publish --token <access-token>", "Ask the owner to create an access token"];
190
+ };
171
191
  readonly credential_expired: {
172
192
  readonly retryable: false;
173
193
  readonly recovery: "re_auth";
@@ -192,6 +212,10 @@ export declare const ERROR_CODE_META: {
192
212
  readonly retryable: false;
193
213
  readonly recovery: "contact_support";
194
214
  };
215
+ readonly datacenters_unavailable: {
216
+ readonly retryable: true;
217
+ readonly recovery: "retry";
218
+ };
195
219
  readonly data_location_immutable: {
196
220
  readonly retryable: false;
197
221
  readonly recovery: "fix_input";
@@ -203,6 +227,7 @@ export declare const ERROR_CODE_META: {
203
227
  readonly device_verification_rate_limited: {
204
228
  readonly retryable: true;
205
229
  readonly recovery: "wait";
230
+ readonly next: readonly ["Retry after the Retry-After seconds"];
206
231
  };
207
232
  readonly dns_export_required: {
208
233
  readonly retryable: false;
@@ -287,6 +312,7 @@ export declare const ERROR_CODE_META: {
287
312
  readonly dns_provider_rate_limited: {
288
313
  readonly retryable: true;
289
314
  readonly recovery: "wait";
315
+ readonly next: readonly ["Retry after the Retry-After seconds", "sf domains check"];
290
316
  };
291
317
  readonly dns_provider_replace_all_requires_fresh_plan: {
292
318
  readonly retryable: false;
@@ -367,6 +393,7 @@ export declare const ERROR_CODE_META: {
367
393
  readonly domain_lookup_rate_limited: {
368
394
  readonly retryable: true;
369
395
  readonly recovery: "wait";
396
+ readonly next: readonly ["Retry after the Retry-After seconds"];
370
397
  };
371
398
  readonly domain_not_bound: {
372
399
  readonly retryable: false;
@@ -415,6 +442,7 @@ export declare const ERROR_CODE_META: {
415
442
  readonly event_rate_limited: {
416
443
  readonly retryable: true;
417
444
  readonly recovery: "wait";
445
+ readonly next: readonly ["Retry after the Retry-After seconds"];
418
446
  };
419
447
  readonly expired_token: {
420
448
  readonly retryable: false;
@@ -632,6 +660,10 @@ export declare const ERROR_CODE_META: {
632
660
  readonly retryable: false;
633
661
  readonly recovery: "contact_support";
634
662
  };
663
+ readonly move_target_capacity_lost: {
664
+ readonly retryable: true;
665
+ readonly recovery: "retry";
666
+ };
635
667
  readonly managed_domain_protected: {
636
668
  readonly retryable: false;
637
669
  readonly recovery: "fix_input";
@@ -692,6 +724,14 @@ export declare const ERROR_CODE_META: {
692
724
  readonly retryable: false;
693
725
  readonly recovery: "fix_input";
694
726
  };
727
+ readonly placement_invalid_burstable: {
728
+ readonly retryable: false;
729
+ readonly recovery: "fix_input";
730
+ };
731
+ readonly placement_mode_requires_plan: {
732
+ readonly retryable: false;
733
+ readonly recovery: "fix_input";
734
+ };
695
735
  readonly platform_tenant_immutable_client: {
696
736
  readonly retryable: false;
697
737
  readonly recovery: "fix_input";
@@ -779,6 +819,7 @@ export declare const ERROR_CODE_META: {
779
819
  readonly rate_limited: {
780
820
  readonly retryable: true;
781
821
  readonly recovery: "wait";
822
+ readonly next: readonly ["Retry after the Retry-After seconds"];
782
823
  };
783
824
  readonly registration_expired: {
784
825
  readonly retryable: false;
@@ -907,15 +948,22 @@ export declare const ERROR_CODE_META: {
907
948
  readonly slow_down: {
908
949
  readonly retryable: true;
909
950
  readonly recovery: "wait";
951
+ readonly next: readonly ["Retry after the Retry-After seconds"];
910
952
  };
911
953
  readonly space_already_claimed: {
912
954
  readonly retryable: false;
913
955
  readonly recovery: "fix_input";
956
+ readonly next: readonly ["sf login", "sf publish --space <space-id>", "Ask the owner to create an access token"];
914
957
  };
915
958
  readonly space_claim_unavailable: {
916
959
  readonly retryable: false;
917
960
  readonly recovery: "fix_input";
918
961
  };
962
+ readonly space_claimed_credential_available: {
963
+ readonly retryable: false;
964
+ readonly recovery: "re_auth";
965
+ readonly next: readonly ["bash scripts/continue.sh", "MCP: call continue_space", "curl -sS -X POST -H 'Authorization: Bearer <claim-token>' https://api.spacefast.com/v1/anonymous-claim/exchange"];
966
+ };
919
967
  readonly space_disabled: {
920
968
  readonly retryable: false;
921
969
  readonly recovery: "fix_input";
@@ -992,6 +1040,10 @@ export declare const ERROR_CODE_META: {
992
1040
  readonly retryable: false;
993
1041
  readonly recovery: "fix_input";
994
1042
  };
1043
+ readonly storage_bucket_unavailable: {
1044
+ readonly retryable: true;
1045
+ readonly recovery: "retry";
1046
+ };
995
1047
  readonly storage_quota_exceeded: {
996
1048
  readonly retryable: false;
997
1049
  readonly recovery: "fix_input";
@@ -1012,6 +1064,10 @@ export declare const ERROR_CODE_META: {
1012
1064
  readonly retryable: true;
1013
1065
  readonly recovery: "wait";
1014
1066
  };
1067
+ readonly team_member_quota_exceeded: {
1068
+ readonly retryable: false;
1069
+ readonly recovery: "fix_input";
1070
+ };
1015
1071
  readonly team_ref_required: {
1016
1072
  readonly retryable: false;
1017
1073
  readonly recovery: "fix_input";
@@ -1076,6 +1132,10 @@ export declare const ERROR_CODE_META: {
1076
1132
  readonly retryable: false;
1077
1133
  readonly recovery: "fix_input";
1078
1134
  };
1135
+ readonly transfer_push_failed: {
1136
+ readonly retryable: true;
1137
+ readonly recovery: "retry";
1138
+ };
1079
1139
  readonly transfer_source_changed: {
1080
1140
  readonly retryable: false;
1081
1141
  readonly recovery: "fix_input";
@@ -1084,6 +1144,10 @@ export declare const ERROR_CODE_META: {
1084
1144
  readonly retryable: false;
1085
1145
  readonly recovery: "fix_input";
1086
1146
  };
1147
+ readonly transfer_verify_failed: {
1148
+ readonly retryable: true;
1149
+ readonly recovery: "retry";
1150
+ };
1087
1151
  readonly unauthorized: {
1088
1152
  readonly retryable: false;
1089
1153
  readonly recovery: "re_auth";
@@ -1260,6 +1324,10 @@ export declare const ERROR_CODE_META: {
1260
1324
  readonly retryable: false;
1261
1325
  readonly recovery: "fix_input";
1262
1326
  };
1327
+ readonly zero_activating: {
1328
+ readonly retryable: true;
1329
+ readonly recovery: "wait";
1330
+ };
1263
1331
  readonly zero_artifact_invalid: {
1264
1332
  readonly retryable: false;
1265
1333
  readonly recovery: "fix_input";
@@ -1500,6 +1568,10 @@ export declare const ERROR_CODE_META: {
1500
1568
  readonly retryable: false;
1501
1569
  readonly recovery: "fix_input";
1502
1570
  };
1571
+ readonly zero_requires_dedicated_plan: {
1572
+ readonly retryable: false;
1573
+ readonly recovery: "fix_input";
1574
+ };
1503
1575
  readonly zero_run_operation_unsupported: {
1504
1576
  readonly retryable: false;
1505
1577
  readonly recovery: "fix_input";
@@ -5,14 +5,35 @@ export const DEFAULT_ERROR_CODE_META = {
5
5
  };
6
6
  export const ERROR_CODE_META = {
7
7
  abuse_report_invalid_transition: { retryable: false, recovery: "fix_input" },
8
- abuse_report_rate_limited: { retryable: true, recovery: "wait" },
8
+ abuse_report_rate_limited: {
9
+ retryable: true,
10
+ recovery: "wait",
11
+ next: ["Retry after the Retry-After seconds"],
12
+ },
9
13
  abuse_takedown: { retryable: false, recovery: "contact_support" },
10
14
  access_denied: { retryable: false, recovery: "re_auth" },
11
15
  account_suspended: { retryable: false, recovery: "contact_support" },
12
16
  ambiguous_space_slug: { retryable: false, recovery: "fix_input" },
13
- anonymous_expired: { retryable: false, recovery: "re_auth" },
17
+ anonymous_expired: {
18
+ retryable: false,
19
+ recovery: "re_auth",
20
+ next: [
21
+ "sf publish",
22
+ "MCP: call publish",
23
+ "curl -sS -F archive=@site.zip https://api.spacefast.com/v1/publish",
24
+ ],
25
+ },
14
26
  anonymous_pool_unavailable: { retryable: true, recovery: "retry" },
15
- anonymous_publish_rate_limited: { retryable: true, recovery: "wait" },
27
+ anonymous_publish_rate_limited: {
28
+ retryable: true,
29
+ recovery: "wait",
30
+ next: ["Retry after the Retry-After seconds", "sf login", "sf publish"],
31
+ },
32
+ anonymous_space_limit_reached: {
33
+ retryable: false,
34
+ recovery: "re_auth",
35
+ next: ["sf login", "Claim or delete an existing anonymous space"],
36
+ },
16
37
  archive_body_required: { retryable: false, recovery: "fix_input" },
17
38
  archive_too_large: { retryable: false, recovery: "fix_input" },
18
39
  auth_code_required: { retryable: false, recovery: "re_auth" },
@@ -44,15 +65,38 @@ export const ERROR_CODE_META = {
44
65
  config_invalid: { retryable: false, recovery: "fix_input" },
45
66
  config_meta_too_long: { retryable: false, recovery: "fix_input" },
46
67
  config_templates_over_limit: { retryable: false, recovery: "fix_input" },
68
+ continuation_unavailable: {
69
+ retryable: false,
70
+ recovery: "re_auth",
71
+ next: [
72
+ "Ask the owner to create an access token",
73
+ "sf login",
74
+ "sf publish --token <access-token>",
75
+ ],
76
+ },
77
+ continuation_used: {
78
+ retryable: false,
79
+ recovery: "re_auth",
80
+ next: [
81
+ "Use the saved access token",
82
+ "sf publish --token <access-token>",
83
+ "Ask the owner to create an access token",
84
+ ],
85
+ },
47
86
  credential_expired: { retryable: false, recovery: "re_auth" },
48
87
  credential_not_yet_valid: { retryable: true, recovery: "wait" },
49
88
  credential_retired: { retryable: false, recovery: "re_auth" },
50
89
  credential_revoked: { retryable: false, recovery: "re_auth" },
51
90
  csam_blocked: { retryable: false, recovery: "contact_support" },
52
91
  csam_policy_floor: { retryable: false, recovery: "contact_support" },
92
+ datacenters_unavailable: { retryable: true, recovery: "retry" },
53
93
  data_location_immutable: { retryable: false, recovery: "fix_input" },
54
94
  device_authorization_failed: { retryable: false, recovery: "re_auth" },
55
- device_verification_rate_limited: { retryable: true, recovery: "wait" },
95
+ device_verification_rate_limited: {
96
+ retryable: true,
97
+ recovery: "wait",
98
+ next: ["Retry after the Retry-After seconds"],
99
+ },
56
100
  dns_export_required: { retryable: false, recovery: "fix_input" },
57
101
  dns_field_conflict: { retryable: false, recovery: "fix_input" },
58
102
  dns_field_not_applicable: { retryable: false, recovery: "fix_input" },
@@ -73,7 +117,11 @@ export const ERROR_CODE_META = {
73
117
  dns_provider_not_connected: { retryable: false, recovery: "re_auth" },
74
118
  dns_provider_operation_failed: { retryable: true, recovery: "retry" },
75
119
  dns_provider_permission_denied: { retryable: false, recovery: "re_auth" },
76
- dns_provider_rate_limited: { retryable: true, recovery: "wait" },
120
+ dns_provider_rate_limited: {
121
+ retryable: true,
122
+ recovery: "wait",
123
+ next: ["Retry after the Retry-After seconds", "sf domains check"],
124
+ },
77
125
  dns_provider_replace_all_requires_fresh_plan: { retryable: false, recovery: "fix_input" },
78
126
  dns_provider_replace_all_write_strategy: { retryable: false, recovery: "fix_input" },
79
127
  dns_provider_snapshot_stale: { retryable: false, recovery: "fix_input" },
@@ -93,7 +141,11 @@ export const ERROR_CODE_META = {
93
141
  domain_facet_not_applicable: { retryable: false, recovery: "fix_input" },
94
142
  domain_hostname_site_mismatch: { retryable: false, recovery: "fix_input" },
95
143
  domain_in_use: { retryable: false, recovery: "fix_input" },
96
- domain_lookup_rate_limited: { retryable: true, recovery: "wait" },
144
+ domain_lookup_rate_limited: {
145
+ retryable: true,
146
+ recovery: "wait",
147
+ next: ["Retry after the Retry-After seconds"],
148
+ },
97
149
  domain_not_bound: { retryable: false, recovery: "fix_input" },
98
150
  domain_quota_exceeded: { retryable: false, recovery: "fix_input" },
99
151
  domain_registration_active: { retryable: false, recovery: "fix_input" },
@@ -105,7 +157,11 @@ export const ERROR_CODE_META = {
105
157
  download_required: { retryable: false, recovery: "fix_input" },
106
158
  duplicate_version_path: { retryable: false, recovery: "fix_input" },
107
159
  event_payload_too_large: { retryable: false, recovery: "fix_input" },
108
- event_rate_limited: { retryable: true, recovery: "wait" },
160
+ event_rate_limited: {
161
+ retryable: true,
162
+ recovery: "wait",
163
+ next: ["Retry after the Retry-After seconds"],
164
+ },
109
165
  expired_token: { retryable: false, recovery: "re_auth" },
110
166
  export_archive_not_ready: { retryable: true, recovery: "wait" },
111
167
  export_version_not_found: { retryable: false, recovery: "fix_input" },
@@ -160,6 +216,7 @@ export const ERROR_CODE_META = {
160
216
  log_retention_clamped: { retryable: false, recovery: "fix_input" },
161
217
  lost_domain_control: { retryable: false, recovery: "fix_input" },
162
218
  malware_detected: { retryable: false, recovery: "contact_support" },
219
+ move_target_capacity_lost: { retryable: true, recovery: "retry" },
163
220
  managed_domain_protected: { retryable: false, recovery: "fix_input" },
164
221
  manifest_body_too_large: { retryable: false, recovery: "fix_input" },
165
222
  manifest_duplicate_path: { retryable: false, recovery: "fix_input" },
@@ -175,6 +232,8 @@ export const ERROR_CODE_META = {
175
232
  path_too_long: { retryable: false, recovery: "fix_input" },
176
233
  plan_grant_already_active: { retryable: false, recovery: "fix_input" },
177
234
  plan_grant_already_revoked: { retryable: false, recovery: "fix_input" },
235
+ placement_invalid_burstable: { retryable: false, recovery: "fix_input" },
236
+ placement_mode_requires_plan: { retryable: false, recovery: "fix_input" },
178
237
  platform_tenant_immutable_client: { retryable: false, recovery: "fix_input" },
179
238
  policy_exceeds_grantor: { retryable: false, recovery: "fix_input" },
180
239
  principal_space_mismatch: { retryable: false, recovery: "fix_input" },
@@ -196,7 +255,11 @@ export const ERROR_CODE_META = {
196
255
  publish_upload_failed: { retryable: true, recovery: "retry" },
197
256
  publish_verification_failed: { retryable: true, recovery: "retry" },
198
257
  queue_not_found: { retryable: false, recovery: "fix_input" },
199
- rate_limited: { retryable: true, recovery: "wait" },
258
+ rate_limited: {
259
+ retryable: true,
260
+ recovery: "wait",
261
+ next: ["Retry after the Retry-After seconds"],
262
+ },
200
263
  registration_expired: { retryable: false, recovery: "fix_input" },
201
264
  registration_expiring: { retryable: false, recovery: "fix_input" },
202
265
  routing_rules_over_plan: { retryable: false, recovery: "fix_input" },
@@ -228,9 +291,26 @@ export const ERROR_CODE_META = {
228
291
  site_not_static: { retryable: false, recovery: "fix_input" },
229
292
  site_required: { retryable: false, recovery: "fix_input" },
230
293
  site_suspended: { retryable: false, recovery: "contact_support" },
231
- slow_down: { retryable: true, recovery: "wait" },
232
- space_already_claimed: { retryable: false, recovery: "fix_input" },
294
+ slow_down: {
295
+ retryable: true,
296
+ recovery: "wait",
297
+ next: ["Retry after the Retry-After seconds"],
298
+ },
299
+ space_already_claimed: {
300
+ retryable: false,
301
+ recovery: "fix_input",
302
+ next: ["sf login", "sf publish --space <space-id>", "Ask the owner to create an access token"],
303
+ },
233
304
  space_claim_unavailable: { retryable: false, recovery: "fix_input" },
305
+ space_claimed_credential_available: {
306
+ retryable: false,
307
+ recovery: "re_auth",
308
+ next: [
309
+ "bash scripts/continue.sh",
310
+ "MCP: call continue_space",
311
+ "curl -sS -X POST -H 'Authorization: Bearer <claim-token>' https://api.spacefast.com/v1/anonymous-claim/exchange",
312
+ ],
313
+ },
234
314
  space_disabled: { retryable: false, recovery: "fix_input" },
235
315
  space_expired: { retryable: false, recovery: "fix_input" },
236
316
  space_has_active_version: { retryable: false, recovery: "fix_input" },
@@ -250,11 +330,13 @@ export const ERROR_CODE_META = {
250
330
  static_control_file_not_supported: { retryable: false, recovery: "fix_input" },
251
331
  static_runtime_control_path_not_supported: { retryable: false, recovery: "fix_input" },
252
332
  static_runtime_required: { retryable: false, recovery: "fix_input" },
333
+ storage_bucket_unavailable: { retryable: true, recovery: "retry" },
253
334
  storage_quota_exceeded: { retryable: false, recovery: "fix_input" },
254
335
  storage_usage_unavailable: { retryable: true, recovery: "retry" },
255
336
  stripe_error: { retryable: true, recovery: "retry" },
256
337
  superseded_by_publish: { retryable: false, recovery: "fix_input" },
257
338
  takeover_notice_window: { retryable: true, recovery: "wait" },
339
+ team_member_quota_exceeded: { retryable: false, recovery: "fix_input" },
258
340
  team_ref_required: { retryable: false, recovery: "fix_input" },
259
341
  team_required: { retryable: false, recovery: "fix_input" },
260
342
  team_slug_conflict: { retryable: false, recovery: "fix_input" },
@@ -271,8 +353,10 @@ export const ERROR_CODE_META = {
271
353
  transfer_cross_tenant_unsupported: { retryable: false, recovery: "fix_input" },
272
354
  transfer_move_failed: { retryable: true, recovery: "retry" },
273
355
  transfer_not_cancelable: { retryable: false, recovery: "fix_input" },
356
+ transfer_push_failed: { retryable: true, recovery: "retry" },
274
357
  transfer_source_changed: { retryable: false, recovery: "fix_input" },
275
358
  transfer_target_same_as_source: { retryable: false, recovery: "fix_input" },
359
+ transfer_verify_failed: { retryable: true, recovery: "retry" },
276
360
  unauthorized: { retryable: false, recovery: "re_auth" },
277
361
  unsupported_publish_media_type: { retryable: false, recovery: "fix_input" },
278
362
  upload_hash_mismatch: { retryable: false, recovery: "fix_input" },
@@ -317,6 +401,7 @@ export const ERROR_CODE_META = {
317
401
  wp_cloud_team_shared_site_exists: { retryable: false, recovery: "fix_input" },
318
402
  wp_cloud_webhook_secret_not_configured: { retryable: false, recovery: "contact_support" },
319
403
  zero_artifact_abi_mismatch: { retryable: false, recovery: "fix_input" },
404
+ zero_activating: { retryable: true, recovery: "wait" },
320
405
  zero_artifact_invalid: { retryable: false, recovery: "fix_input" },
321
406
  zero_artifact_malformed: { retryable: false, recovery: "fix_input" },
322
407
  zero_artifact_path_invalid: { retryable: false, recovery: "fix_input" },
@@ -377,6 +462,7 @@ export const ERROR_CODE_META = {
377
462
  zero_replay_unavailable: { retryable: false, recovery: "fix_input" },
378
463
  zero_request_body_too_large: { retryable: false, recovery: "fix_input" },
379
464
  zero_response_too_large: { retryable: false, recovery: "fix_input" },
465
+ zero_requires_dedicated_plan: { retryable: false, recovery: "fix_input" },
380
466
  zero_run_operation_unsupported: { retryable: false, recovery: "fix_input" },
381
467
  zero_runner_envelope_invalid: { retryable: false, recovery: "fix_input" },
382
468
  zero_runner_failed: { retryable: false, recovery: "fix_input" },