@spacefast/common 0.2.2 → 0.4.1

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 (226) hide show
  1. package/dist/agents/marketplace-prompts.d.ts +1 -0
  2. package/dist/agents/marketplace-prompts.js +6 -0
  3. package/dist/agents/registry/core.d.ts +4 -12
  4. package/dist/agents/registry/core.js +7 -28
  5. package/dist/config/domains.d.ts +10 -8
  6. package/dist/config/domains.js +4 -7
  7. package/dist/contracts/access-core.d.ts +135 -0
  8. package/dist/contracts/access-core.js +242 -0
  9. package/dist/contracts/access-profiles.d.ts +8 -8
  10. package/dist/contracts/access-profiles.js +8 -8
  11. package/dist/contracts/access.d.ts +14 -103
  12. package/dist/contracts/access.js +10 -210
  13. package/dist/contracts/activity.d.ts +54 -55
  14. package/dist/contracts/activity.js +38 -9
  15. package/dist/contracts/api-keys.d.ts +69 -26
  16. package/dist/contracts/api-keys.js +29 -2
  17. package/dist/contracts/application-journal.d.ts +197 -4
  18. package/dist/contracts/application-journal.js +97 -16
  19. package/dist/contracts/auth.d.ts +20 -0
  20. package/dist/contracts/auth.js +18 -0
  21. package/dist/contracts/beta.d.ts +13 -0
  22. package/dist/contracts/beta.js +28 -0
  23. package/dist/contracts/billing.d.ts +2 -2
  24. package/dist/contracts/bootstrap.d.ts +23 -6
  25. package/dist/contracts/builds.d.ts +18 -4
  26. package/dist/contracts/builds.js +7 -4
  27. package/dist/contracts/channels.d.ts +43 -0
  28. package/dist/contracts/channels.js +22 -6
  29. package/dist/contracts/comments.d.ts +49 -0
  30. package/dist/contracts/comments.js +61 -2
  31. package/dist/contracts/commerce.d.ts +19 -13
  32. package/dist/contracts/connector-access.d.ts +28 -0
  33. package/dist/contracts/connector-access.js +31 -0
  34. package/dist/contracts/connectors.d.ts +2382 -0
  35. package/dist/contracts/connectors.js +941 -0
  36. package/dist/contracts/content-contract-verification.d.ts +112 -58
  37. package/dist/contracts/content-contract-verification.js +42 -54
  38. package/dist/contracts/content-model-emit.d.ts +97 -0
  39. package/dist/contracts/content-model-emit.js +306 -0
  40. package/dist/contracts/content-model-sdk.d.ts +101 -0
  41. package/dist/contracts/content-model-sdk.js +232 -0
  42. package/dist/contracts/{content-program.d.ts → content-model.d.ts} +338 -82
  43. package/dist/contracts/{content-program.js → content-model.js} +291 -63
  44. package/dist/contracts/content-platform-fixture.d.ts +380 -110
  45. package/dist/contracts/content-platform-fixture.js +8 -8
  46. package/dist/contracts/content-sync.d.ts +197 -74
  47. package/dist/contracts/content-sync.js +98 -37
  48. package/dist/contracts/content.d.ts +30 -422
  49. package/dist/contracts/content.js +34 -294
  50. package/dist/contracts/dashboard-prefs.d.ts +10 -3
  51. package/dist/contracts/dashboard-prefs.js +6 -3
  52. package/dist/contracts/data-location.d.ts +9 -0
  53. package/dist/contracts/data-location.js +7 -0
  54. package/dist/contracts/deployment-comparison.d.ts +67 -0
  55. package/dist/contracts/deployment-comparison.js +68 -0
  56. package/dist/contracts/device-auth.d.ts +55 -11
  57. package/dist/contracts/domains.d.ts +40 -16
  58. package/dist/contracts/domains.js +23 -0
  59. package/dist/contracts/enums.d.ts +1 -10
  60. package/dist/contracts/enums.js +0 -15
  61. package/dist/contracts/error-code-meta.d.ts +384 -20
  62. package/dist/contracts/error-code-meta.js +200 -5
  63. package/dist/contracts/error-codes.d.ts +17 -4
  64. package/dist/contracts/error-codes.js +108 -10
  65. package/dist/contracts/events.d.ts +5 -0
  66. package/dist/contracts/events.js +12 -3
  67. package/dist/contracts/execution.d.ts +5 -1
  68. package/dist/contracts/execution.js +4 -0
  69. package/dist/contracts/feature-lifecycle.d.ts +53 -20
  70. package/dist/contracts/feature-lifecycle.js +65 -23
  71. package/dist/contracts/features.d.ts +57 -31
  72. package/dist/contracts/features.js +0 -1
  73. package/dist/contracts/feedback.d.ts +124 -0
  74. package/dist/contracts/feedback.js +64 -0
  75. package/dist/contracts/fixtures/content-model-sdk-v1.generated.d.ts +129 -0
  76. package/dist/contracts/fixtures/content-model-sdk-v1.generated.js +48 -0
  77. package/dist/contracts/fixtures/content-platform-v1.json +101 -49
  78. package/dist/contracts/frame-session.d.ts +60 -10
  79. package/dist/contracts/frame-session.js +52 -12
  80. package/dist/contracts/functions.d.ts +28 -2
  81. package/dist/contracts/functions.js +25 -2
  82. package/dist/contracts/grant-copy.d.ts +2 -0
  83. package/dist/contracts/grant-copy.js +2 -0
  84. package/dist/contracts/grants-core.d.ts +95 -0
  85. package/dist/contracts/grants-core.js +435 -0
  86. package/dist/contracts/grants.d.ts +13 -84
  87. package/dist/contracts/grants.js +21 -369
  88. package/dist/contracts/ids-core.d.ts +11 -0
  89. package/dist/contracts/ids-core.js +14 -0
  90. package/dist/contracts/ids.d.ts +7 -4
  91. package/dist/contracts/ids.js +12 -4
  92. package/dist/contracts/internal.d.ts +18 -0
  93. package/dist/contracts/internal.js +19 -0
  94. package/dist/contracts/mcp.d.ts +8 -18
  95. package/dist/contracts/mcp.js +2 -23
  96. package/dist/contracts/notifications.d.ts +4 -1
  97. package/dist/contracts/notifications.js +1 -0
  98. package/dist/contracts/oauth-resources.d.ts +46 -9
  99. package/dist/contracts/oauth-resources.js +50 -1
  100. package/dist/contracts/oauth-scope-actions.d.ts +27 -3
  101. package/dist/contracts/oauth-scope-actions.js +18 -8
  102. package/dist/contracts/operations.d.ts +1 -1
  103. package/dist/contracts/partner-account.d.ts +629 -0
  104. package/dist/contracts/partner-account.js +18 -0
  105. package/dist/contracts/principal-assertion.d.ts +74 -1
  106. package/dist/contracts/principal-assertion.js +67 -3
  107. package/dist/contracts/publish-archive.d.ts +22 -1
  108. package/dist/contracts/push-new.d.ts +3 -3
  109. package/dist/contracts/push-new.js +1 -1
  110. package/dist/contracts/quotas.js +2 -1
  111. package/dist/contracts/repository-connections.d.ts +10 -6
  112. package/dist/contracts/repository-connections.js +15 -0
  113. package/dist/contracts/resources.d.ts +6 -5
  114. package/dist/contracts/resources.js +7 -0
  115. package/dist/contracts/route-inventory.d.ts +74 -19
  116. package/dist/contracts/route-inventory.js +20 -6
  117. package/dist/contracts/runtime-api.d.ts +415 -4
  118. package/dist/contracts/runtime-api.js +60 -15
  119. package/dist/contracts/runtime-app.d.ts +6 -1
  120. package/dist/contracts/runtime-components.d.ts +646 -18
  121. package/dist/contracts/runtime-components.js +304 -188
  122. package/dist/contracts/runtime-services.d.ts +15 -0
  123. package/dist/contracts/runtime-services.js +25 -0
  124. package/dist/contracts/runtime-storage.d.ts +32 -0
  125. package/dist/contracts/runtime-storage.js +37 -0
  126. package/dist/contracts/source-workspaces.d.ts +511 -0
  127. package/dist/contracts/source-workspaces.js +276 -0
  128. package/dist/contracts/space-config-spacefast.d.ts +394 -0
  129. package/dist/contracts/space-config-spacefast.js +70 -0
  130. package/dist/contracts/space-config.d.ts +177 -90
  131. package/dist/contracts/space-config.js +77 -92
  132. package/dist/contracts/spaces.d.ts +132 -24
  133. package/dist/contracts/spaces.js +77 -13
  134. package/dist/contracts/superadmin-connectors.d.ts +371 -0
  135. package/dist/contracts/superadmin-connectors.js +61 -0
  136. package/dist/contracts/superadmin-emails.d.ts +1 -1
  137. package/dist/contracts/superadmin-emails.js +1 -1
  138. package/dist/contracts/superadmin-entities.d.ts +105 -0
  139. package/dist/contracts/superadmin-entities.js +64 -0
  140. package/dist/contracts/superadmin-runtime.d.ts +35 -116
  141. package/dist/contracts/superadmin-runtime.js +13 -69
  142. package/dist/contracts/superadmin-search.d.ts +12 -14
  143. package/dist/contracts/superadmin-search.js +2 -2
  144. package/dist/contracts/superadmin-spaces.d.ts +15 -72
  145. package/dist/contracts/superadmin-spaces.js +2 -7
  146. package/dist/contracts/superadmin-teams.d.ts +12 -0
  147. package/dist/contracts/superadmin-teams.js +7 -1
  148. package/dist/contracts/superadmin-tenants.d.ts +44 -16
  149. package/dist/contracts/superadmin.d.ts +2 -2
  150. package/dist/contracts/tags.d.ts +12 -12
  151. package/dist/contracts/teams.d.ts +29 -1
  152. package/dist/contracts/teams.js +24 -2
  153. package/dist/contracts/tenants.d.ts +98 -0
  154. package/dist/contracts/tenants.js +20 -0
  155. package/dist/contracts/transfers.d.ts +92 -0
  156. package/dist/contracts/transfers.js +37 -0
  157. package/dist/contracts/usage.d.ts +9 -1
  158. package/dist/contracts/usage.js +2 -0
  159. package/dist/contracts/visual-review.d.ts +448 -0
  160. package/dist/contracts/visual-review.js +156 -0
  161. package/dist/contracts/wordpress-php-toolkit.json +9 -0
  162. package/dist/contracts/work-mode.d.ts +24 -0
  163. package/dist/contracts/work-mode.js +17 -0
  164. package/dist/contracts/wp-cli.d.ts +66 -0
  165. package/dist/contracts/wp-cli.js +68 -0
  166. package/dist/contracts/zero-catalog.d.ts +29 -0
  167. package/dist/contracts/zero-catalog.js +55 -0
  168. package/dist/contracts/zero-platform-abilities.generated.d.ts +31 -0
  169. package/dist/contracts/zero-platform-abilities.generated.js +373 -0
  170. package/dist/contracts/zero-spacefast.d.ts +444 -0
  171. package/dist/contracts/zero-spacefast.js +149 -0
  172. package/dist/contracts/zero-types.d.ts +47 -0
  173. package/dist/contracts/zero-types.js +263 -0
  174. package/dist/contracts/zero.d.ts +781 -14
  175. package/dist/contracts/zero.js +204 -10
  176. package/dist/dashboard-paths/index.d.ts +2 -2
  177. package/dist/dashboard-paths/route-reservations.generated.d.ts +2 -2
  178. package/dist/dashboard-paths/route-reservations.generated.js +5 -0
  179. package/dist/docs/agent-prose.d.ts +1 -1
  180. package/dist/docs/agent-prose.js +15 -18
  181. package/dist/docs/agent-setup.d.ts +1 -1
  182. package/dist/docs/agent-setup.js +5 -13
  183. package/dist/docs/catalog.d.ts +64 -28
  184. package/dist/docs/catalog.js +155 -28
  185. package/dist/docs/error-docs.d.ts +361 -17
  186. package/dist/docs/error-docs.js +365 -21
  187. package/dist/docs/reference-urls.js +1 -1
  188. package/dist/docs/skills.d.ts +84 -84
  189. package/dist/docs/skills.js +66 -47
  190. package/dist/docs/start-prompts.d.ts +14 -0
  191. package/dist/docs/start-prompts.js +20 -0
  192. package/dist/utils/account-labels.d.ts +7 -0
  193. package/dist/utils/account-labels.js +15 -0
  194. package/dist/utils/auth.d.ts +1 -0
  195. package/dist/utils/auth.js +1 -0
  196. package/dist/utils/credential-policy.d.ts +22 -1
  197. package/dist/utils/credential-policy.js +55 -6
  198. package/dist/utils/local-space-state.d.ts +7 -0
  199. package/dist/utils/local-space-state.js +7 -0
  200. package/dist/utils/logger.d.ts +34 -0
  201. package/dist/utils/logger.js +144 -0
  202. package/dist/utils/page-routes.d.ts +9 -0
  203. package/dist/utils/page-routes.js +82 -0
  204. package/dist/utils/pages.d.ts +2 -0
  205. package/dist/utils/pages.js +7 -0
  206. package/dist/utils/publish-form-data.d.ts +2 -0
  207. package/dist/utils/publish-form-data.js +2 -0
  208. package/dist/utils/publish-policy-spacefast.d.ts +13 -0
  209. package/dist/utils/publish-policy-spacefast.js +117 -0
  210. package/dist/utils/publish-policy.d.ts +22 -16
  211. package/dist/utils/publish-policy.fixtures.json +15 -0
  212. package/dist/utils/publish-policy.js +62 -139
  213. package/dist/utils/query-client.js +9 -1
  214. package/dist/utils/runtime-upload.d.ts +4 -0
  215. package/dist/utils/runtime-upload.js +5 -0
  216. package/dist/utils/space-config.d.ts +2 -3
  217. package/dist/utils/space-config.js +1 -1
  218. package/dist/utils/uploaded-source.d.ts +4 -0
  219. package/dist/utils/uploaded-source.js +12 -0
  220. package/dist/visual-review.d.ts +4 -0
  221. package/dist/visual-review.js +208 -0
  222. package/dist/vocabulary.d.ts +38 -0
  223. package/dist/vocabulary.js +55 -0
  224. package/package.json +7 -2
  225. package/dist/agents/registry/deeplink-probes.d.ts +0 -23
  226. package/dist/agents/registry/deeplink-probes.js +0 -18
@@ -132,6 +132,10 @@ export const ERROR_DOCS = {
132
132
  summary: "A purge request must name at least one path.",
133
133
  fix: "Pass one or more request paths to purge.",
134
134
  },
135
+ catalog_unavailable: {
136
+ summary: "The connector catalog could not be built right now.",
137
+ fix: "Retry in a moment. You can still register a connector directly from its spec URL or endpoint.",
138
+ },
135
139
  channel_name_reserved: {
136
140
  summary: "The channel name collides with a reserved hostname suffix and cannot be used.",
137
141
  fix: "Choose a different channel name. V-prefixed numeric names and ver- prefixes are reserved.",
@@ -212,6 +216,94 @@ export const ERROR_DOCS = {
212
216
  summary: "This exact action already has a decision, and a retry without its continuation token cannot clear the gate.",
213
217
  fix: "Resume the existing decision with its continuation token instead of repeating the original request.",
214
218
  },
219
+ connection_ambiguous: {
220
+ summary: "The connector has more than one connection you can use, so the call did not name one.",
221
+ fix: "List connections for the connector and address the tool through one of them: `<connectionId>/<tool>`.",
222
+ },
223
+ connection_forbidden: {
224
+ summary: "This credential is not granted the connection it tried to use.",
225
+ fix: "Re-authorize with connectors:execute, or ask the connection's owner to share it with the team.",
226
+ },
227
+ connection_serving_not_granted: {
228
+ summary: "This team connection has not been granted site serving access.",
229
+ fix: "Enable serving on a team connection before binding it.",
230
+ },
231
+ owner_binding_requires_private_space: {
232
+ summary: "Owner connections require a private Space.",
233
+ fix: "Make the Space private and choose your own personal connection.",
234
+ },
235
+ visitor_role_not_bindable: {
236
+ summary: "Visitors connect their own accounts for this role.",
237
+ fix: "Declare a team or owner role to bind a connection.",
238
+ },
239
+ connector_role_unknown: {
240
+ summary: "The live capsule does not declare this connector role.",
241
+ fix: "Use a role declared by the live version.",
242
+ },
243
+ connector_serving_admin_only: {
244
+ summary: "Only team owners and admins can change serving grants.",
245
+ fix: "Ask a team owner or admin to change the grant.",
246
+ },
247
+ connector_serving_not_allowlisted: {
248
+ summary: "This connector is not allowed to serve sites.",
249
+ fix: "Ask a team admin to add its slug to the serving allowlist.",
250
+ },
251
+ connector_write_in_read_handler: {
252
+ summary: "Read handlers can only call read-only connector tools.",
253
+ fix: "Call this tool from a mutation or write endpoint.",
254
+ },
255
+ connection_needs_reauth: {
256
+ summary: "The stored credential expired or was revoked at the provider.",
257
+ fix: "Reconnect the service. Credentials are immutable, so reconnecting replaces them — there is nothing to edit.",
258
+ },
259
+ connection_not_found: {
260
+ summary: "No connection exists with this id, or this credential cannot see it.",
261
+ fix: "List connections to find the right id. Personal connections are visible only to the person who made them.",
262
+ },
263
+ connection_revoked: {
264
+ summary: "This connection was disconnected and its credential was purged.",
265
+ fix: "Connect the service again. The old connection stays as a record and cannot be reactivated.",
266
+ },
267
+ connector_approval_required: {
268
+ summary: "The call needs a person to approve it before it runs.",
269
+ fix: "Open the approval URL so someone can approve or deny it, then poll the run until it leaves awaiting_approval.",
270
+ },
271
+ connector_first_party_immutable: {
272
+ summary: "This connector is built into Spacefast and cannot be edited or removed.",
273
+ fix: "Register your own connector for the same service if you need different settings.",
274
+ },
275
+ connector_not_found: {
276
+ summary: "No connector exists with this slug for this team.",
277
+ fix: "List connectors to find the right slug, or add the service from the catalog.",
278
+ },
279
+ connector_run_budget_exhausted: {
280
+ summary: "The run hit its tool-call, egress, or time budget and stopped.",
281
+ fix: "Narrow the work and run it again — fewer tool calls, or a smaller page of results per call.",
282
+ },
283
+ connector_run_not_found: {
284
+ summary: "No run exists with this id, or this credential cannot see it.",
285
+ fix: "List runs to find the right id.",
286
+ },
287
+ connector_run_not_resumable: {
288
+ summary: "The run already settled, or its approval expired.",
289
+ fix: "Submit the work again as a new run. A settled or expired run cannot be resumed.",
290
+ },
291
+ connector_slug_taken: {
292
+ summary: "This team already has a connector with that slug.",
293
+ fix: "Pick a different slug, or edit the existing connector instead of registering a second one.",
294
+ },
295
+ connector_source_blocked: {
296
+ summary: "The source URL points somewhere the egress guard refuses to fetch.",
297
+ fix: "Use a public HTTPS URL. Private addresses, loopback, and cloud metadata endpoints are never fetched.",
298
+ },
299
+ connector_source_unreachable: {
300
+ summary: "The spec or endpoint could not be fetched.",
301
+ fix: "Check the URL is reachable and returns the document, then try again.",
302
+ },
303
+ connector_tool_blocked: {
304
+ summary: "A policy rule blocks this tool for this caller.",
305
+ fix: "Resolve the address against policy to see which rule decided it, then ask a team admin to change the rule or call a different tool.",
306
+ },
215
307
  continuation_unavailable: {
216
308
  summary: "This space key can no longer be exchanged for an API key.",
217
309
  fix: "If the space is claimed, ask its owner for an API key (dashboard: team → Agents → API keys). If it is still unclaimed, keep using the space key as bearer auth instead of exchanging it. If you are still stuck, POST /v1/feedback with the error code and requestId.",
@@ -284,6 +376,10 @@ export const ERROR_DOCS = {
284
376
  summary: "Too many incorrect device codes were entered in a short window.",
285
377
  fix: "Wait for the lockout to pass, then enter the code exactly as your CLI shows it.",
286
378
  },
379
+ dns_control_observation_indeterminate: {
380
+ summary: "The domain check could not finish because a DNS or HTTP probe did not answer.",
381
+ fix: "Wait briefly and check the domain again. An inconclusive check preserves any existing verification proof.",
382
+ },
287
383
  dns_export_required: {
288
384
  summary: "This operation requires exporting the current DNS records first.",
289
385
  fix: "Export the zone, confirm the snapshot, and retry the operation.",
@@ -436,10 +532,6 @@ export const ERROR_DOCS = {
436
532
  summary: "The requested facet does not apply to this domain.",
437
533
  fix: "Check the domain's facets and use one that applies.",
438
534
  },
439
- domain_hostname_site_mismatch: {
440
- summary: "All bindings of one hostname must point at spaces on the same underlying site.",
441
- fix: "Bind the hostname to spaces on the same site, or remove the conflicting binding.",
442
- },
443
535
  domain_in_use: {
444
536
  summary: "The domain is in use by another binding or assignment.",
445
537
  fix: "Remove the existing use of the domain before retrying.",
@@ -488,10 +580,18 @@ export const ERROR_DOCS = {
488
580
  summary: "The version upload declares the same file path twice.",
489
581
  fix: "Deduplicate the file list so every path appears once.",
490
582
  },
583
+ elevation_denied: {
584
+ summary: "The person denied the temporary access request.",
585
+ fix: "Stop retrying this request. Ask the person to perform the action if it is still necessary.",
586
+ },
491
587
  elevation_not_required: {
492
588
  summary: "The grant already includes every scope the elevation asked for.",
493
589
  fix: "Retry the operation with the credential you already have; no elevation is needed.",
494
590
  },
591
+ elevation_required: {
592
+ summary: "A person must approve temporary access before the agent can continue.",
593
+ fix: "Open the approval URL. Poll the resume URL until the person decides. After approval, retry the original operation.",
594
+ },
495
595
  email_already_claimed: {
496
596
  summary: "That email address is already verified on an account.",
497
597
  fix: "Sign in with the address instead of adding it, or use a different address.",
@@ -520,10 +620,50 @@ export const ERROR_DOCS = {
520
620
  summary: "The credential is valid but does not allow this action.",
521
621
  fix: "Use a credential whose policy grants this action on this resource.",
522
622
  },
623
+ frame_link_inactive: {
624
+ summary: "The Frame Link is revoked, expired, not yet active, or out of uses.",
625
+ fix: "Create or select an active Frame Link, then launch it again.",
626
+ },
627
+ frame_path_outside_link_resources: {
628
+ summary: "The requested Frame path is outside the Link's resource set.",
629
+ fix: "Choose a path included by the Link, or update the Link resources before launching.",
630
+ },
631
+ frame_principal_required: {
632
+ summary: "A Frame launch needs a signed-in account session, not an API token.",
633
+ fix: "Launch the Frame from a signed-in dashboard session so the runtime knows which account is editing.",
634
+ },
635
+ frame_session_invalid: {
636
+ summary: "The Frame session proof is invalid for this Space or Link.",
637
+ fix: "Launch the Frame Link again and renew only with the returned session token.",
638
+ },
639
+ frame_session_stale: {
640
+ summary: "The Frame Link changed after this session was launched.",
641
+ fix: "Launch the current Frame Link again.",
642
+ },
643
+ frame_session_target_changed: {
644
+ summary: "The server-owned Frame serving target changed after launch.",
645
+ fix: "Launch the Frame Link again to resolve its current target.",
646
+ },
647
+ frame_target_fixed: {
648
+ summary: "The request tried to override a Frame Link with a fixed serving target.",
649
+ fix: "Omit `target`; only all-Versions Frame Links accept an explicit Version target.",
650
+ },
651
+ frame_version_required: {
652
+ summary: "An all-Versions Frame Link requires one explicit immutable Version.",
653
+ fix: "Set `target.kind` to `version` and pass a ready Version id from this Space.",
654
+ },
523
655
  free_external_proxy_disabled: {
524
656
  summary: "Proxy routes to external upstreams are not available on the Free plan.",
525
657
  fix: "Remove the proxy rules before publishing. If you are still stuck, POST /v1/feedback with the error code and requestId.",
526
658
  },
659
+ hostname_contested: {
660
+ summary: "The hostname this Space would serve on is already attached to a different site at the hosting provider.",
661
+ fix: "Publish under a different slug. If the hostname should belong to this Space, free it at the provider first.",
662
+ },
663
+ human_approval_required: {
664
+ summary: "This run was parked for a person, so an agent's decision cannot settle it.",
665
+ fix: "Open the approval URL and let someone decide, then poll the run until it leaves awaiting_approval.",
666
+ },
527
667
  idempotency_conflict_in_progress: {
528
668
  summary: "Another request with the same Idempotency-Key is still in flight.",
529
669
  fix: "Wait for the original request to finish. The API will replay that request's response.",
@@ -708,6 +848,18 @@ export const ERROR_DOCS = {
708
848
  summary: "The partner token names an issuer that Spacefast does not recognize.",
709
849
  fix: "Register the exact token issuer, then request a new partner token.",
710
850
  },
851
+ jetpack_licensing_rejected: {
852
+ summary: "The Jetpack Licensing API refused the request.",
853
+ fix: "The partner account needs attention — an unaccepted Terms of Service, a revoked token, or an unknown product. Contact support; retrying will not help.",
854
+ },
855
+ jetpack_licensing_response_invalid: {
856
+ summary: "The Jetpack Licensing API returned an unexpected response.",
857
+ fix: "Retry. If the response contract remains invalid, contact support.",
858
+ },
859
+ jetpack_licensing_unavailable: {
860
+ summary: "The Jetpack Licensing API did not complete the request.",
861
+ fix: "Retry. If the partner account needs attention, contact support.",
862
+ },
711
863
  job_not_found: {
712
864
  summary: "The background job was not found.",
713
865
  fix: "Verify the job id. Spacefast eventually prunes completed jobs.",
@@ -740,6 +892,14 @@ export const ERROR_DOCS = {
740
892
  summary: "This change is temporarily unavailable while maintenance finishes.",
741
893
  fix: "Wait for the Retry-After window, then send the same request again.",
742
894
  },
895
+ malformed_policy_pattern: {
896
+ summary: "The policy pattern is not a valid tool-address pattern.",
897
+ fix: "Use `*`, `<connector>/*`, `<connectionId>/*`, or `<connectionId>/<tool>`.",
898
+ },
899
+ malformed_tool_address: {
900
+ summary: "The tool address is not `<connectionId>/<tool>`.",
901
+ fix: "Copy an address from a tool listing rather than building one by hand.",
902
+ },
743
903
  malware_detected: {
744
904
  summary: "Malware was detected in the uploaded content.",
745
905
  fix: "Remove the flagged files. If you believe the detection is a false positive, contact support.",
@@ -788,6 +948,10 @@ export const ERROR_DOCS = {
788
948
  summary: "The domain's observed nameservers diverge from the expected set.",
789
949
  fix: "Align the registrar's nameserver records with the expected set, then re-check.",
790
950
  },
951
+ next_package_layout_unsupported: {
952
+ summary: "Automatic Next.js builds do not support Yarn Plug'n'Play.",
953
+ fix: "Set nodeLinker: node-modules in .yarnrc.yml, reinstall dependencies, and build again.",
954
+ },
791
955
  next_version_unsupported: {
792
956
  summary: "This Next.js version is incompatible with the bundled server runtime adapter.",
793
957
  fix: "Upgrade Next.js to the minimum version named in the error, or publish a browser-ready static export.",
@@ -844,10 +1008,6 @@ export const ERROR_DOCS = {
844
1008
  summary: "The requested plan name is not in the tenant's live plan catalog, so it cannot be assigned to a principal.",
845
1009
  fix: "Assign a plan declared in the tenant's system-space manifest. List the catalog's plan names and use one of them.",
846
1010
  },
847
- placement_invalid_burstable: {
848
- summary: "The placement burstable option was used with an unsupported placement mode.",
849
- fix: 'Set `placement.mode` to `"dedicated"` before setting `placement.burstable`, or remove the burstable option.',
850
- },
851
1011
  policy_exceeds_grantor: {
852
1012
  summary: "The requested key policy grants more than your own credential allows.",
853
1013
  fix: "Request a policy that is a subset of the credential creating the key.",
@@ -1048,6 +1208,10 @@ export const ERROR_DOCS = {
1048
1208
  summary: "Too many requests were made in a short window.",
1049
1209
  fix: "Wait for the window in the Retry-After header to pass, then retry.",
1050
1210
  },
1211
+ realtime_cursor_expired: {
1212
+ summary: "The realtime event cursor is no longer in the retained event history.",
1213
+ fix: "Discard the expired cursor and refresh active query snapshots. Resume realtime updates from the next received event instead of retrying the expired cursor.",
1214
+ },
1051
1215
  registration_expired: {
1052
1216
  summary: "The domain registration is expired.",
1053
1217
  fix: "Renew the domain at its registrar before retrying.",
@@ -1056,6 +1220,14 @@ export const ERROR_DOCS = {
1056
1220
  summary: "The domain registration is about to expire, which blocks this operation.",
1057
1221
  fix: "Renew the domain first, then retry.",
1058
1222
  },
1223
+ repository_ref_not_found: {
1224
+ summary: "The branch, tag, or commit you asked to read does not exist in this repository. A repository nothing has been pushed to yet answers this for its own default branch.",
1225
+ fix: "List the repository's branches (`GET /v1/spaces/{spaceId}/source/branches`) and read one that exists, or push to the branch first.",
1226
+ },
1227
+ repository_stale_base: {
1228
+ summary: "The branch moved after this change was built, so the commit was refused.",
1229
+ fix: "Re-read the branch head (`error.details.headSha`), rebuild the change on it, and send the new head as `expectedHeadSha`.",
1230
+ },
1059
1231
  resource_revision_changed: {
1060
1232
  summary: "The resource changed after you loaded it, so the stale write was rejected.",
1061
1233
  fix: "Use the current resource returned in `error.details.current`, reapply the intended fields, and send its revision as `expectedRevision`.",
@@ -1068,6 +1240,10 @@ export const ERROR_DOCS = {
1068
1240
  summary: "The published _redirects and _headers exceed the plan's routing-rule allowance.",
1069
1241
  fix: "Reduce the rule count. If you still need more rules, POST to `/v1/feedback` with the error code and the `requestId`.",
1070
1242
  },
1243
+ run_replay_diverged: {
1244
+ summary: "Replaying the paused program took a different path than the first time, so it was stopped.",
1245
+ fix: "Run it again. A program that depends on the clock, randomness, or changing data cannot be resumed safely.",
1246
+ },
1071
1247
  runtime_action_forbidden: {
1072
1248
  summary: "The runtime credential does not allow this action.",
1073
1249
  fix: "Use a runtime token scoped for this action.",
@@ -1152,6 +1328,10 @@ export const ERROR_DOCS = {
1152
1328
  summary: "The runtime upload session does not support this operation.",
1153
1329
  fix: "Follow the upload instructions returned when the session was created.",
1154
1330
  },
1331
+ runtime_capabilities_pending: {
1332
+ summary: "The serving runtime is updating to support this application's compiled features.",
1333
+ fix: "Publishing retries automatically after the runtime update. Inspect the publish operation for progress.",
1334
+ },
1155
1335
  runtime_upload_required: {
1156
1336
  summary: "This step requires uploaded content, but that content is not uploaded yet.",
1157
1337
  fix: "Complete the uploads for this session, then retry the step.",
@@ -1180,14 +1360,6 @@ export const ERROR_DOCS = {
1180
1360
  summary: "The site was already deleted.",
1181
1361
  fix: "No action is needed. The site is gone.",
1182
1362
  },
1183
- site_has_live_spaces: {
1184
- summary: "The site still has live spaces assigned to it, so it cannot be deleted.",
1185
- fix: "Delete the live spaces or move them to another site before deleting this site.",
1186
- },
1187
- site_not_static: {
1188
- summary: "This operation only applies to static-runtime sites.",
1189
- fix: "Target a static-runtime site.",
1190
- },
1191
1363
  site_required: {
1192
1364
  summary: "A site reference is required for this operation.",
1193
1365
  fix: "Pass the site id.",
@@ -1209,8 +1381,8 @@ export const ERROR_DOCS = {
1209
1381
  fix: "Choose a different name that is not reserved by the shared slug policy.",
1210
1382
  },
1211
1383
  slug_unavailable: {
1212
- summary: "The slug is already in use within the relevant ownership scope.",
1213
- fix: "Choose another slug or use the available suggestion returned by the API.",
1384
+ summary: "Another resource already uses this slug. Offline spaces retain their slugs.",
1385
+ fix: "Use the suggested slug or choose a different slug. If an offline space uses this slug, ask support to purge that space.",
1214
1386
  },
1215
1387
  source_archive_decompression_timeout: {
1216
1388
  summary: "The uploaded source archive did not finish decompressing within the validation limit.",
@@ -1220,6 +1392,146 @@ export const ERROR_DOCS = {
1220
1392
  summary: "The uploaded source archive expands too much relative to its compressed size.",
1221
1393
  fix: "Rebuild the archive without highly compressible filler or generated content, then upload it again.",
1222
1394
  },
1395
+ source_branch_changed: {
1396
+ summary: "The project branch changed after the workspace read its saved base.",
1397
+ fix: "Sync the workspace. Read its new revision before committing.",
1398
+ },
1399
+ source_branch_missing: {
1400
+ summary: "The workspace project branch no longer exists in CodeStorage.",
1401
+ fix: "Restore the project branch or create a workspace for an existing branch.",
1402
+ },
1403
+ source_commit_not_saved: {
1404
+ summary: "The selected commit is not in the project branch's saved first-parent history.",
1405
+ fix: "Select a saved source commit instead of an internal workspace snapshot.",
1406
+ },
1407
+ source_conflict_content_unavailable: {
1408
+ summary: "CodeStorage did not return complete contents for a conflict file.",
1409
+ fix: "Retry the read. Never treat unavailable contents as a deletion.",
1410
+ },
1411
+ source_conflicts_missing: {
1412
+ summary: "The workspace has no active conflict operation to resolve.",
1413
+ fix: "Read the workspace status before sending another resolution.",
1414
+ },
1415
+ source_exact_diff_unsupported: {
1416
+ summary: "CodeStorage compares from the shared ancestor instead of the two selected snapshots.",
1417
+ fix: "This exact comparison requires provider support. Do not change the requested base, substitute another comparison, or retry the same request.",
1418
+ },
1419
+ source_file_incomplete: {
1420
+ summary: "CodeStorage returned fewer bytes than the selected source file requires.",
1421
+ fix: "Retry the complete file read before replacing or staging the file.",
1422
+ },
1423
+ source_file_mode_unavailable: {
1424
+ summary: "The source file has no supported mode in the provider metadata.",
1425
+ fix: "Read the file metadata again or provide an explicit supported mode.",
1426
+ },
1427
+ source_file_required: {
1428
+ summary: "The source operation requires file paths instead of folder paths.",
1429
+ fix: "List the folder and select its individual files.",
1430
+ },
1431
+ source_file_too_large: {
1432
+ summary: "The source file exceeds the complete-read size limit.",
1433
+ fix: "Use an operation that supports the full file size. Do not use a truncated replacement.",
1434
+ },
1435
+ source_file_unavailable: {
1436
+ summary: "The selected source snapshot did not return complete file contents.",
1437
+ fix: "Retry the file read with the same source commit SHA.",
1438
+ },
1439
+ source_files_too_large: {
1440
+ summary: "The selected source file contents exceed the operation size limit.",
1441
+ fix: "Split the file changes into smaller workspace operations.",
1442
+ },
1443
+ source_hunk_selection_invalid: {
1444
+ summary: "The selected hunks are duplicated or cannot be staged independently.",
1445
+ fix: "Select each hunk once. Select whole files for binary and structural changes.",
1446
+ },
1447
+ source_hunk_stale: {
1448
+ summary: "The hunk IDs do not match the current source workspace snapshots.",
1449
+ fix: "Read the current diff and use its hunk IDs and revision.",
1450
+ },
1451
+ source_merge_snapshot_changed: {
1452
+ summary: "A managed merge ref no longer matches the pinned source snapshot.",
1453
+ fix: "Retry the pending operation with its original ID and input.",
1454
+ },
1455
+ source_merge_undo_unsupported: {
1456
+ summary: "The selected source commit is a merge commit with multiple parents.",
1457
+ fix: "Select a non-merge source commit to prepare an undo.",
1458
+ },
1459
+ source_nothing_staged: {
1460
+ summary: "The staged source tree has no changes against the saved base.",
1461
+ fix: "Stage the intended source changes before committing.",
1462
+ },
1463
+ source_operation_pending: {
1464
+ summary: "A source workspace operation still has an uncertain provider result.",
1465
+ fix: "Retry the pending operation with the same operation ID and input.",
1466
+ },
1467
+ source_operation_reused: {
1468
+ summary: "The operation ID was already used with different source input.",
1469
+ fix: "Use a new operation ID for the changed request.",
1470
+ },
1471
+ source_operation_superseded: {
1472
+ summary: "The source operation no longer owns the workspace pending state.",
1473
+ fix: "Read the current workspace status before sending another operation.",
1474
+ },
1475
+ source_operation_unreconciled: {
1476
+ summary: "The provider result is uncertain and the target branch changed.",
1477
+ fix: "Retry the pending operation. Do not start another source write.",
1478
+ },
1479
+ source_patch_unavailable: {
1480
+ summary: "CodeStorage did not return a complete patch for the selected hunks.",
1481
+ fix: "Read the diff again or select the complete file.",
1482
+ },
1483
+ source_resolution_invalid: {
1484
+ summary: "The resolution contains duplicate paths or paths outside the current conflicts.",
1485
+ fix: "Read the current conflicts and resolve each selected path once.",
1486
+ },
1487
+ source_resolution_pending: {
1488
+ summary: "A conflict resolution still has an uncertain provider result.",
1489
+ fix: "Retry that resolution with its original operation ID and input.",
1490
+ },
1491
+ source_selection_invalid: {
1492
+ summary: "The selected file paths are absent from the current workspace diff.",
1493
+ fix: "Read the current diff before selecting files to stage or unstage.",
1494
+ },
1495
+ source_snapshot_changed: {
1496
+ summary: "CodeStorage created a managed branch at an unexpected source snapshot.",
1497
+ fix: "Retry the pending operation before sending another source write.",
1498
+ },
1499
+ source_tree_too_large: {
1500
+ summary: "The complete source tree exceeds the workspace operation limit.",
1501
+ fix: "Use a smaller repository for this workspace operation.",
1502
+ },
1503
+ source_workspace_closed: {
1504
+ summary: "The selected source workspace is already closed.",
1505
+ fix: "Create another workspace from the current saved source version.",
1506
+ },
1507
+ source_workspace_connection_changed: {
1508
+ summary: "The Space repository connection changed after this workspace was created.",
1509
+ fix: "Create a workspace for the current repository connection.",
1510
+ },
1511
+ source_workspace_connection_in_use: {
1512
+ summary: "An open source workspace uses this repository connection.",
1513
+ fix: "Close each open source workspace. Then retry the repository connection change.",
1514
+ },
1515
+ source_workspace_dirty: {
1516
+ summary: "The workspace contains pending staged or working changes.",
1517
+ fix: "Commit the changes or explicitly request discarding them when closing.",
1518
+ },
1519
+ source_workspace_initializing: {
1520
+ summary: "The source workspace has not finished creating its baseline snapshots.",
1521
+ fix: "Retry workspace creation with the same operation ID and input.",
1522
+ },
1523
+ source_workspace_ref_reserved: {
1524
+ summary: "The selected ref belongs to the managed source workspace namespace.",
1525
+ fix: "Use the source workspace API instead of a generic repository mutation.",
1526
+ },
1527
+ source_workspace_revision_conflict: {
1528
+ summary: "The source workspace changed after the caller read its revision.",
1529
+ fix: "Read the current workspace status and diff before another mutation.",
1530
+ },
1531
+ source_workspaces_unavailable: {
1532
+ summary: "Source workspaces are disabled because the provider cannot compare exact snapshots.",
1533
+ fix: "Wait for native provider support before using workspace tools. This request did not change source files or branches.",
1534
+ },
1223
1535
  source_archive_validation_busy: {
1224
1536
  summary: "The service is already validating its maximum number of source archives.",
1225
1537
  fix: "Wait briefly and retry the upload.",
@@ -1644,6 +1956,34 @@ export const ERROR_DOCS = {
1644
1956
  summary: "The version exceeds the maximum total size.",
1645
1957
  fix: "Reduce the content size.",
1646
1958
  },
1959
+ visual_review_context_too_large: {
1960
+ summary: "The selected page context exceeds the review limit.",
1961
+ fix: "Select a smaller element and submit the note again.",
1962
+ },
1963
+ visual_review_expired: {
1964
+ summary: "The temporary review expired after one hour.",
1965
+ fix: "Open a new preview for the deployment. Submitted feedback remains in the chat.",
1966
+ },
1967
+ visual_review_forbidden: {
1968
+ summary: "This authority cannot access the review or its recorded deployment.",
1969
+ fix: "Use the account that started the review and confirm access to the Space.",
1970
+ },
1971
+ visual_review_invalid_image: {
1972
+ summary: "The screenshot is not a valid PNG payload.",
1973
+ fix: "Remove the screenshot and send the note without it.",
1974
+ },
1975
+ visual_review_invalid_note: {
1976
+ summary: "A note has a duplicate ID or an inconsistent capture status.",
1977
+ fix: "Use unique note IDs and set captureStatus to ready only when an image is attached.",
1978
+ },
1979
+ visual_review_submitted: {
1980
+ summary: "This review already contains a different feedback batch.",
1981
+ fix: "Read the submitted feedback. Open a new review for additional notes.",
1982
+ },
1983
+ visual_review_too_large: {
1984
+ summary: "The feedback batch exceeds the screenshot delivery limit.",
1985
+ fix: "Remove a screenshot and submit the batch again.",
1986
+ },
1647
1987
  webhook_delivery_budget_exceeded: {
1648
1988
  summary: "The webhook exhausted its delivery budget and was paused.",
1649
1989
  fix: "Fix the receiving endpoint, then redeliver or re-enable the webhook.",
@@ -1940,6 +2280,10 @@ export const ERROR_DOCS = {
1940
2280
  summary: "The Zero database migration command failed during finalize.",
1941
2281
  fix: "Inspect the migration and database logs, fix the schema issue, and publish again.",
1942
2282
  },
2283
+ zero_mutation_origin_invalid: {
2284
+ summary: "The cookie-authenticated Zero mutation did not prove the serving origin.",
2285
+ fix: "Send the write from the Space's exact origin with a non-safelisted content type, or use an explicit platform bearer for a non-browser client.",
2286
+ },
1943
2287
  zero_query_name_missing: {
1944
2288
  summary: "A Zero realtime query subscription did not include a query name.",
1945
2289
  fix: "Send a `query.subscribe` frame with a valid query name.",
@@ -2100,9 +2444,9 @@ export const ERROR_DOCS = {
2100
2444
  summary: "The provider site still has assignments and cannot be released.",
2101
2445
  fix: "Remove the site's assignments first.",
2102
2446
  },
2103
- wp_cloud_team_shared_site_exists: {
2104
- summary: "The team already has a shared site of this class.",
2105
- fix: "Use the existing shared site.",
2447
+ wp_cli_timeout: {
2448
+ summary: "The WP-CLI command did not finish in time and may still be running on the site.",
2449
+ fix: "Check the site's current state before running the command again; WP-CLI is capped at five minutes.",
2106
2450
  },
2107
2451
  wp_cloud_webhook_secret_not_configured: {
2108
2452
  summary: "The infra webhook secret is not configured on this deployment.",
@@ -35,7 +35,7 @@ export const API_REFERENCE_URL = `${DOCS_BASE_URL}/api/reference`;
35
35
  * exist only in the second tree, so linking them at the consumer base lands on
36
36
  * a page that was never generated.
37
37
  */
38
- export const PARTNER_API_REFERENCE_URL = `${DOCS_BASE_URL}/partners/api/reference`;
38
+ export const PARTNER_API_REFERENCE_URL = `${DOCS_BASE_URL}/platforms/api/reference`;
39
39
  /**
40
40
  * The docs site's heading-anchor slug: lowercase, every run of anything that
41
41
  * is not a letter or digit collapsed to one dash, no leading or trailing dash.