@spacefast/common 0.0.26 → 0.2.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.
- package/dist/agents/connect-targets.d.ts +6 -146
- package/dist/agents/connect-targets.js +63 -295
- package/dist/agents/private-key-oauth.d.ts +31 -1
- package/dist/agents/private-key-oauth.js +124 -33
- package/dist/agents/registry/core.d.ts +292 -0
- package/dist/agents/registry/core.js +1388 -0
- package/dist/agents/registry/deeplink-probes.d.ts +23 -0
- package/dist/agents/registry/deeplink-probes.js +18 -0
- package/dist/agents/registry/node.d.ts +56 -0
- package/dist/agents/registry/node.js +339 -0
- package/dist/brand-assets-build.js +1 -2
- package/dist/brand-assets.js +4 -7
- package/dist/brand.d.ts +17 -0
- package/dist/brand.js +24 -4
- package/dist/config/domains.d.ts +55 -28
- package/dist/config/domains.js +85 -41
- package/dist/config/index.js +1 -2
- package/dist/contracts/abuse.js +9 -24
- package/dist/contracts/access-profiles.d.ts +86 -0
- package/dist/contracts/access-profiles.js +89 -0
- package/dist/contracts/access.d.ts +21 -27
- package/dist/contracts/access.js +33 -64
- package/dist/contracts/activity.d.ts +18 -1
- package/dist/contracts/activity.js +70 -26
- package/dist/contracts/analytics.js +8 -10
- package/dist/contracts/api-keys.d.ts +77 -52
- package/dist/contracts/api-keys.js +44 -24
- package/dist/contracts/application-journal.d.ts +216 -0
- package/dist/contracts/application-journal.js +167 -0
- package/dist/contracts/auth.d.ts +90 -17
- package/dist/contracts/auth.js +86 -17
- package/dist/contracts/beta.d.ts +9 -4
- package/dist/contracts/beta.js +20 -16
- package/dist/contracts/billing.js +7 -11
- package/dist/contracts/bootstrap.d.ts +791 -0
- package/dist/contracts/bootstrap.js +51 -0
- package/dist/contracts/builds.d.ts +186 -7
- package/dist/contracts/builds.js +75 -21
- package/dist/contracts/channels.d.ts +43 -0
- package/dist/contracts/channels.js +25 -9
- package/dist/contracts/cli.d.ts +7 -0
- package/dist/contracts/cli.js +6 -0
- package/dist/contracts/collab-public.d.ts +1 -1
- package/dist/contracts/collab-public.js +5 -8
- package/dist/contracts/comments.d.ts +45 -35
- package/dist/contracts/comments.js +107 -77
- package/dist/contracts/commerce.d.ts +165 -0
- package/dist/contracts/commerce.js +146 -0
- package/dist/contracts/common.d.ts +3 -3
- package/dist/contracts/common.js +18 -29
- package/dist/contracts/content-contract-verification.d.ts +521 -0
- package/dist/contracts/content-contract-verification.js +320 -0
- package/dist/contracts/content-platform-fixture.d.ts +1278 -0
- package/dist/contracts/content-platform-fixture.js +44 -0
- package/dist/contracts/content-program.d.ts +994 -0
- package/dist/contracts/content-program.js +658 -0
- package/dist/contracts/content-sync.d.ts +290 -0
- package/dist/contracts/content-sync.js +167 -0
- package/dist/contracts/content.d.ts +432 -0
- package/dist/contracts/content.js +303 -0
- package/dist/contracts/continuation.d.ts +17 -1
- package/dist/contracts/continuation.js +23 -23
- package/dist/contracts/countries.js +3 -4
- package/dist/contracts/crons.d.ts +17 -0
- package/dist/contracts/crons.js +33 -15
- package/dist/contracts/dashboard-prefs.d.ts +56 -0
- package/dist/contracts/dashboard-prefs.js +51 -0
- package/dist/contracts/device-auth.d.ts +234 -37
- package/dist/contracts/device-auth.js +267 -53
- package/dist/contracts/docs.d.ts +6 -10
- package/dist/contracts/docs.js +5 -13
- package/dist/contracts/domains.d.ts +499 -102
- package/dist/contracts/domains.js +169 -58
- package/dist/contracts/email-preferences.d.ts +3 -3
- package/dist/contracts/email-preferences.js +6 -7
- package/dist/contracts/enums.d.ts +26 -26
- package/dist/contracts/enums.js +61 -54
- package/dist/contracts/error-code-meta.d.ts +269 -7
- package/dist/contracts/error-code-meta.js +80 -5
- package/dist/contracts/error-codes.d.ts +5 -5
- package/dist/contracts/error-codes.js +78 -16
- package/dist/contracts/events.d.ts +100 -20
- package/dist/contracts/events.js +107 -20
- package/dist/contracts/execution.d.ts +47 -66
- package/dist/contracts/execution.js +51 -64
- package/dist/contracts/feature-lifecycle.d.ts +70 -14
- package/dist/contracts/feature-lifecycle.js +86 -15
- package/dist/contracts/features.d.ts +100 -37
- package/dist/contracts/features.js +21 -27
- package/dist/contracts/fixtures/content-platform-v1.json +1108 -0
- package/dist/contracts/frame-session.d.ts +192 -0
- package/dist/contracts/frame-session.js +164 -0
- package/dist/contracts/functions.d.ts +218 -211
- package/dist/contracts/functions.js +273 -260
- package/dist/contracts/grant-copy.d.ts +43 -0
- package/dist/contracts/grant-copy.js +44 -0
- package/dist/contracts/grants.d.ts +64 -56
- package/dist/contracts/grants.js +124 -23
- package/dist/contracts/ids.d.ts +4 -1
- package/dist/contracts/ids.js +4 -1
- package/dist/contracts/internal.d.ts +5 -4
- package/dist/contracts/internal.js +12 -3
- package/dist/contracts/mcp.d.ts +17 -0
- package/dist/contracts/mcp.js +23 -0
- package/dist/contracts/me.d.ts +6 -1
- package/dist/contracts/me.js +12 -6
- package/dist/contracts/notifications.d.ts +27 -29
- package/dist/contracts/notifications.js +9 -4
- package/dist/contracts/oauth-resources.d.ts +112 -10
- package/dist/contracts/oauth-resources.js +116 -11
- package/dist/contracts/oauth-scope-actions.d.ts +90 -0
- package/dist/contracts/oauth-scope-actions.js +126 -0
- package/dist/contracts/operations.d.ts +27 -4
- package/dist/contracts/operations.js +11 -5
- package/dist/contracts/pages.d.ts +29 -5
- package/dist/contracts/pages.js +22 -5
- package/dist/contracts/partner-notifications.d.ts +3 -0
- package/dist/contracts/partner-notifications.js +65 -0
- package/dist/contracts/{platform.d.ts → partner.d.ts} +29 -42
- package/dist/contracts/{platform.js → partner.js} +27 -40
- package/dist/contracts/plan-policy.d.ts +1 -1
- package/dist/contracts/principal-assertion.d.ts +43 -0
- package/dist/contracts/principal-assertion.js +67 -0
- package/dist/contracts/principals.d.ts +73 -0
- package/dist/contracts/principals.js +59 -0
- package/dist/contracts/privacy.d.ts +11 -0
- package/dist/contracts/privacy.js +17 -0
- package/dist/contracts/problem-document.js +3 -4
- package/dist/contracts/publish-archive.d.ts +116 -18
- package/dist/contracts/publish-archive.js +6 -3
- package/dist/contracts/push-new.d.ts +4 -4
- package/dist/contracts/quotas.js +3 -3
- package/dist/contracts/realtime.d.ts +52 -0
- package/dist/contracts/realtime.js +54 -0
- package/dist/contracts/repository-connections.d.ts +1 -1
- package/dist/contracts/repository-connections.js +6 -2
- package/dist/contracts/resources.d.ts +105 -14
- package/dist/contracts/resources.js +145 -21
- package/dist/contracts/route-inventory.d.ts +358 -0
- package/dist/contracts/route-inventory.js +141 -0
- package/dist/contracts/runtime-api.d.ts +112 -35
- package/dist/contracts/runtime-api.js +86 -66
- package/dist/contracts/runtime-app.d.ts +11 -21
- package/dist/contracts/runtime-app.js +39 -24
- package/dist/contracts/runtime-components.d.ts +143 -0
- package/dist/contracts/runtime-components.js +199 -0
- package/dist/contracts/runtime-db.d.ts +45 -19
- package/dist/contracts/runtime-db.js +85 -20
- package/dist/contracts/runtime-purge.js +3 -5
- package/dist/contracts/runtime-services.d.ts +43 -75
- package/dist/contracts/runtime-services.js +29 -49
- package/dist/contracts/runtime-storage.d.ts +14 -14
- package/dist/contracts/runtime-storage.js +28 -13
- package/dist/contracts/sf-config-v1.d.ts +14 -18
- package/dist/contracts/slugs.js +13 -4
- package/dist/contracts/space-config.d.ts +235 -28
- package/dist/contracts/space-config.js +246 -91
- package/dist/contracts/spaces.d.ts +360 -255
- package/dist/contracts/spaces.js +190 -122
- package/dist/contracts/superadmin-activity.d.ts +3 -43
- package/dist/contracts/superadmin-activity.js +6 -30
- package/dist/contracts/superadmin-emails.d.ts +1 -0
- package/dist/contracts/superadmin-emails.js +17 -1
- package/dist/contracts/superadmin-runtime.d.ts +199 -0
- package/dist/contracts/superadmin-runtime.js +141 -0
- package/dist/contracts/superadmin-search.d.ts +22 -2
- package/dist/contracts/superadmin-search.js +14 -6
- package/dist/contracts/superadmin-spaces.d.ts +435 -186
- package/dist/contracts/superadmin-spaces.js +131 -25
- package/dist/contracts/superadmin-teams.d.ts +3 -0
- package/dist/contracts/superadmin-teams.js +1 -2
- package/dist/contracts/superadmin-tenants.d.ts +627 -6
- package/dist/contracts/superadmin-tenants.js +32 -7
- package/dist/contracts/superadmin.d.ts +98 -16
- package/dist/contracts/superadmin.js +63 -10
- package/dist/contracts/tags.d.ts +85 -58
- package/dist/contracts/tags.js +44 -34
- package/dist/contracts/teams.d.ts +72 -9
- package/dist/contracts/teams.js +84 -25
- package/dist/contracts/tenants.d.ts +135 -0
- package/dist/contracts/tenants.js +120 -0
- package/dist/contracts/test-triggers.d.ts +70 -0
- package/dist/contracts/test-triggers.js +116 -0
- package/dist/contracts/theme-json.js +3 -8
- package/dist/contracts/transfers.d.ts +1 -0
- package/dist/contracts/transfers.js +1 -0
- package/dist/contracts/usage.d.ts +209 -0
- package/dist/contracts/usage.js +124 -12
- package/dist/contracts/variables.d.ts +2 -2
- package/dist/contracts/variables.js +9 -13
- package/dist/contracts/webhooks.d.ts +13 -5
- package/dist/contracts/webhooks.js +3 -1
- package/dist/contracts/zero.d.ts +57 -64
- package/dist/contracts/zero.js +68 -66
- package/dist/dashboard-paths/index.d.ts +24 -21
- package/dist/dashboard-paths/index.js +35 -47
- package/dist/dashboard-paths/route-reservations.generated.d.ts +2 -0
- package/dist/dashboard-paths/route-reservations.generated.js +36 -0
- package/dist/docs/agent-arrival.d.ts +92 -0
- package/dist/docs/agent-arrival.js +227 -0
- package/dist/docs/agent-output-policy.d.ts +6 -0
- package/dist/docs/agent-output-policy.js +22 -0
- package/dist/docs/agent-prose.d.ts +11 -17
- package/dist/docs/agent-prose.js +62 -37
- package/dist/docs/agent-setup.d.ts +72 -41
- package/dist/docs/agent-setup.js +336 -436
- package/dist/docs/catalog.d.ts +147 -89
- package/dist/docs/catalog.js +157 -42
- package/dist/docs/error-docs.d.ts +2098 -1
- package/dist/docs/error-docs.js +281 -16
- package/dist/docs/index-build.d.ts +0 -1
- package/dist/docs/index-build.js +2 -3
- package/dist/docs/page-context-prompt.d.ts +77 -0
- package/dist/docs/page-context-prompt.js +131 -0
- package/dist/docs/reference-urls.d.ts +46 -0
- package/dist/docs/reference-urls.js +79 -0
- package/dist/docs/search.d.ts +6 -8
- package/dist/docs/search.js +10 -13
- package/dist/docs/skill-distribution.d.ts +4 -1
- package/dist/docs/skill-distribution.js +10 -5
- package/dist/docs/skills.d.ts +117 -117
- package/dist/docs/skills.js +120 -72
- package/dist/docs/start-prompts.d.ts +45 -0
- package/dist/docs/start-prompts.js +62 -0
- package/dist/domain-exploration.js +9 -13
- package/dist/og-template.d.ts +56 -0
- package/dist/og-template.js +56 -0
- package/dist/slug-policy/index.js +5 -11
- package/dist/utils/browser-credential.d.ts +13 -6
- package/dist/utils/browser-credential.js +14 -7
- package/dist/utils/build-settings.d.ts +16 -0
- package/dist/utils/build-settings.js +63 -17
- package/dist/utils/canonical-json.d.ts +3 -5
- package/dist/utils/canonical-json.js +3 -5
- package/dist/utils/cast-transport.d.ts +5 -17
- package/dist/utils/cast-transport.js +6 -19
- package/dist/utils/claim-token.js +1 -2
- package/dist/utils/comment-avatars.js +4 -6
- package/dist/utils/concurrency.js +2 -3
- package/dist/utils/content-type.d.ts +7 -6
- package/dist/utils/content-type.js +73 -51
- package/dist/utils/credential-policy.d.ts +50 -6
- package/dist/utils/credential-policy.js +123 -57
- package/dist/utils/egress-policy.fixtures.json +1 -1
- package/dist/utils/generate-space-name.d.ts +3 -8
- package/dist/utils/generate-space-name.js +3 -8
- package/dist/utils/grants.d.ts +0 -1
- package/dist/utils/grants.js +4 -7
- package/dist/utils/gravatar.d.ts +2 -4
- package/dist/utils/gravatar.js +6 -12
- package/dist/utils/id-hints.js +14 -23
- package/dist/utils/idempotency.d.ts +3 -3
- package/dist/utils/idempotency.js +6 -7
- package/dist/utils/local-space-state.d.ts +15 -15
- package/dist/utils/local-space-state.js +34 -23
- package/dist/utils/oauth-signed-query.d.ts +3 -5
- package/dist/utils/oauth-signed-query.js +6 -9
- package/dist/utils/one-shot-replay.d.ts +3 -5
- package/dist/utils/one-shot-replay.js +3 -5
- package/dist/utils/page-colors.d.ts +4 -10
- package/dist/utils/page-colors.js +11 -35
- package/dist/utils/page-fonts.js +6 -11
- package/dist/utils/page-preview.d.ts +0 -1
- package/dist/utils/page-preview.js +0 -1
- package/dist/utils/pages.d.ts +22 -11
- package/dist/utils/pages.js +70 -30
- package/dist/utils/privacy-regions.d.ts +19 -0
- package/dist/utils/privacy-regions.js +91 -0
- package/dist/utils/publish-form-data.d.ts +4 -5
- package/dist/utils/publish-form-data.js +2 -3
- package/dist/utils/publish-policy.d.ts +10 -23
- package/dist/utils/publish-policy.js +63 -116
- package/dist/utils/query-client.d.ts +2 -0
- package/dist/utils/query-client.js +10 -1
- package/dist/utils/runtime-paths.d.ts +4 -4
- package/dist/utils/runtime-paths.js +6 -8
- package/dist/utils/runtime-upload.d.ts +4 -0
- package/dist/utils/runtime-upload.js +5 -0
- package/dist/utils/secure-local-file.d.ts +3 -3
- package/dist/utils/secure-local-file.js +18 -24
- package/dist/utils/space-config.d.ts +11 -14
- package/dist/utils/space-config.js +10 -16
- package/dist/utils/static-runtime-policy.d.ts +5 -8
- package/dist/utils/static-runtime-policy.generated.d.ts +16 -0
- package/dist/utils/static-runtime-policy.generated.js +70 -0
- package/dist/utils/static-runtime-policy.js +17 -84
- package/dist/utils/storage-policy.js +1 -2
- package/dist/utils/upload-session.js +8 -14
- package/dist/utils/version-path.js +11 -19
- package/dist/utils/wpcom-auth-redirects.d.ts +5 -14
- package/dist/utils/wpcom-auth-redirects.js +1 -4
- package/dist/vocabulary.d.ts +7 -7
- package/dist/vocabulary.js +30 -16
- package/package.json +14 -2
- package/dist/agents/client-registry.d.ts +0 -22
- package/dist/agents/client-registry.js +0 -41
- package/dist/docs/agent-handoff-document.d.ts +0 -15
- package/dist/docs/agent-handoff-document.js +0 -180
- package/dist/docs/agent-solutions.d.ts +0 -110
- package/dist/docs/agent-solutions.js +0 -183
- package/dist/utils/query-keys.d.ts +0 -84
- package/dist/utils/query-keys.js +0 -108
package/dist/docs/error-docs.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
// Error reference content (the platform spec "Global API Conventions"):
|
|
2
|
-
//
|
|
3
|
-
// and those pages are GENERATED from this table
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
// `.md` twins from the same entries.
|
|
1
|
+
// Error reference content (the platform spec "Global API Conventions"): every
|
|
2
|
+
// problem document `type` points at `https://spacefast.com/docs/errors/{code}`,
|
|
3
|
+
// and those pages are GENERATED from this table, one entry per `ERROR_CODES`
|
|
4
|
+
// member. The conformance suite asserts completeness, so links never rot; the
|
|
5
|
+
// website renders the HTML pages and `.md` twins from the same entries.
|
|
7
6
|
import { BRAND } from "../brand.js";
|
|
8
7
|
import { serviceOrigin } from "../config/domains.js";
|
|
9
8
|
import { errorDocsUrl, errorTitle, PROBLEM_CONTENT_TYPE, } from "../contracts/error-codes.js";
|
|
@@ -69,6 +68,10 @@ export const ERROR_DOCS = {
|
|
|
69
68
|
summary: "An authorization code is required to complete this step.",
|
|
70
69
|
fix: "Pass the code returned by the authorization step.",
|
|
71
70
|
},
|
|
71
|
+
authorization_level_not_allowed: {
|
|
72
|
+
summary: "This operation is reserved for a signed-in person, or the credential is acting at an authorization level the operation does not accept.",
|
|
73
|
+
fix: "This is not a scope problem and elevation will not clear it. Ask the person to perform the action in the dashboard.",
|
|
74
|
+
},
|
|
72
75
|
authorization_pending: {
|
|
73
76
|
summary: "The device login is not approved yet.",
|
|
74
77
|
fix: "Keep polling at the advised interval until the user approves the request.",
|
|
@@ -189,9 +192,29 @@ export const ERROR_DOCS = {
|
|
|
189
192
|
summary: "The configuration declares more template files than the plan allows.",
|
|
190
193
|
fix: "Reduce the number of template entries in sf.jsonc. If you are still stuck, POST /v1/feedback with the error code and requestId.",
|
|
191
194
|
},
|
|
195
|
+
confirmation_denied: {
|
|
196
|
+
summary: "A person reviewed this exact action and denied it. The denial is terminal.",
|
|
197
|
+
fix: "Stop retrying. You cannot clear this yourself; report the denial to the person who asked for the action.",
|
|
198
|
+
},
|
|
199
|
+
confirmation_expired: {
|
|
200
|
+
summary: "The confirmation for this action expired before a person decided it.",
|
|
201
|
+
fix: "Request the action again to get a fresh confirmation URL and continuation token. Do not retry the old token.",
|
|
202
|
+
},
|
|
203
|
+
confirmation_mismatch: {
|
|
204
|
+
summary: "The continuation token is bound to different action terms or a different resource revision than the request presenting it.",
|
|
205
|
+
fix: "Request a fresh confirmation for the action you actually intend to perform.",
|
|
206
|
+
},
|
|
207
|
+
confirmation_required: {
|
|
208
|
+
summary: "This action destroys live content or spends money, so a person must approve this exact action before it runs.",
|
|
209
|
+
fix: "Send the person to the `url` in the error details, then poll `pollUrl` with the `continuationToken` every 5 seconds. Give up after 10 minutes and report back. No flag or environment variable can clear this.",
|
|
210
|
+
},
|
|
211
|
+
confirmation_token_required: {
|
|
212
|
+
summary: "This exact action already has a decision, and a retry without its continuation token cannot clear the gate.",
|
|
213
|
+
fix: "Resume the existing decision with its continuation token instead of repeating the original request.",
|
|
214
|
+
},
|
|
192
215
|
continuation_unavailable: {
|
|
193
216
|
summary: "This space key can no longer be exchanged for an API key.",
|
|
194
|
-
fix: "If the space is claimed, ask its owner for an API key (dashboard:
|
|
217
|
+
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.",
|
|
195
218
|
},
|
|
196
219
|
continuation_used: {
|
|
197
220
|
summary: "This space key was already exchanged for a durable API key.",
|
|
@@ -213,6 +236,10 @@ export const ERROR_DOCS = {
|
|
|
213
236
|
summary: "The credential used for this request was revoked.",
|
|
214
237
|
fix: "Create a new API key and update your client.",
|
|
215
238
|
},
|
|
239
|
+
credential_sponsor_inactive: {
|
|
240
|
+
summary: "The person who authorized this machine credential is no longer an active member of the team it acts for.",
|
|
241
|
+
fix: "A team admin must re-authorize the credential, or point it at a live member, before it works again.",
|
|
242
|
+
},
|
|
216
243
|
csam_blocked: {
|
|
217
244
|
summary: "The content was blocked because it matched known child sexual abuse material.",
|
|
218
245
|
fix: "This action is final and reported as required by law. Do not retry.",
|
|
@@ -221,6 +248,18 @@ export const ERROR_DOCS = {
|
|
|
221
248
|
summary: "CSAM enforcement policy cannot be set below the mandatory account-suspend floor.",
|
|
222
249
|
fix: "Set the CSAM category enforcement tier to account suspension.",
|
|
223
250
|
},
|
|
251
|
+
dashboard_prefs_key_invalid: {
|
|
252
|
+
summary: "A dashboard preference key is empty or longer than the 64-character limit.",
|
|
253
|
+
fix: "Send preference keys that are between 1 and 64 characters long.",
|
|
254
|
+
},
|
|
255
|
+
dashboard_prefs_too_large: {
|
|
256
|
+
summary: "The merged dashboard preferences would exceed the 16KB serialized size limit.",
|
|
257
|
+
fix: "Store smaller values, or delete preferences you no longer need by setting them to null.",
|
|
258
|
+
},
|
|
259
|
+
dashboard_prefs_too_many_keys: {
|
|
260
|
+
summary: "The merged dashboard preferences would hold more than the 50 allowed keys.",
|
|
261
|
+
fix: "Delete preferences you no longer need by setting them to null before adding more.",
|
|
262
|
+
},
|
|
224
263
|
data_location_immutable: {
|
|
225
264
|
summary: "This request tried to change data location through an immutable path.",
|
|
226
265
|
fix: "Data location is fixed when the space is created and cannot be changed afterwards. Create a new space in the region you want.",
|
|
@@ -229,6 +268,14 @@ export const ERROR_DOCS = {
|
|
|
229
268
|
summary: "The live version has no database to read.",
|
|
230
269
|
fix: 'Publish a Zero app, or declare `"database": true` under `runtime` in sf.jsonc for a Functions app.',
|
|
231
270
|
},
|
|
271
|
+
decision_execution_lost: {
|
|
272
|
+
summary: "The approved action's execution lease is no longer held, so its result cannot be recorded.",
|
|
273
|
+
fix: "Poll the continuation to read the decision's current state before requesting the action again.",
|
|
274
|
+
},
|
|
275
|
+
decision_in_progress: {
|
|
276
|
+
summary: "This approved action is already executing.",
|
|
277
|
+
fix: "Poll the continuation instead of retrying the action; the original receipt is returned once it finishes.",
|
|
278
|
+
},
|
|
232
279
|
device_authorization_failed: {
|
|
233
280
|
summary: "The device login request failed and cannot be completed.",
|
|
234
281
|
fix: "Start a new device login flow.",
|
|
@@ -419,7 +466,7 @@ export const ERROR_DOCS = {
|
|
|
419
466
|
},
|
|
420
467
|
domain_reserved_suffix: {
|
|
421
468
|
summary: `The hostname is under a ${BRAND.productName}-managed suffix and cannot be added as a domain.`,
|
|
422
|
-
fix: `Use a domain you own. ${BRAND.productName} assigns default
|
|
469
|
+
fix: `Use a domain you own. ${BRAND.productName} assigns default hostnames automatically.`,
|
|
423
470
|
},
|
|
424
471
|
domain_transfer_active: {
|
|
425
472
|
summary: "The domain has a transfer in progress, which blocks this operation.",
|
|
@@ -441,6 +488,18 @@ export const ERROR_DOCS = {
|
|
|
441
488
|
summary: "The version upload declares the same file path twice.",
|
|
442
489
|
fix: "Deduplicate the file list so every path appears once.",
|
|
443
490
|
},
|
|
491
|
+
elevation_not_required: {
|
|
492
|
+
summary: "The grant already includes every scope the elevation asked for.",
|
|
493
|
+
fix: "Retry the operation with the credential you already have; no elevation is needed.",
|
|
494
|
+
},
|
|
495
|
+
email_already_claimed: {
|
|
496
|
+
summary: "That email address is already verified on an account.",
|
|
497
|
+
fix: "Sign in with the address instead of adding it, or use a different address.",
|
|
498
|
+
},
|
|
499
|
+
email_verification_code_invalid: {
|
|
500
|
+
summary: "The emailed confirmation code is wrong, expired, or already used.",
|
|
501
|
+
fix: "Request a new code and enter the six digits from the newest email.",
|
|
502
|
+
},
|
|
444
503
|
enforcement_policy_overlap: {
|
|
445
504
|
summary: "Enforcement policy severity ranges overlap within a category.",
|
|
446
505
|
fix: "Adjust the category ranges so at most one policy covers each severity.",
|
|
@@ -485,6 +544,10 @@ export const ERROR_DOCS = {
|
|
|
485
544
|
summary: "An inject snippet exceeds the per-snippet size limit.",
|
|
486
545
|
fix: "Keep each inject snippet at or under 8 KB.",
|
|
487
546
|
},
|
|
547
|
+
insufficient_scope: {
|
|
548
|
+
summary: "The credential authenticated, but its granted scopes do not include a set this operation accepts.",
|
|
549
|
+
fix: "Read the `WWW-Authenticate` challenge for the missing scopes, then request elevation or reconnect with them.",
|
|
550
|
+
},
|
|
488
551
|
internal_error: {
|
|
489
552
|
summary: "Something went wrong on our side.",
|
|
490
553
|
fix: "Retry the request. If the error persists, contact support with the requestId.",
|
|
@@ -501,6 +564,10 @@ export const ERROR_DOCS = {
|
|
|
501
564
|
summary: "The requested data location is not a supported region.",
|
|
502
565
|
fix: "Pick a region from the documented data locations, or use auto.",
|
|
503
566
|
},
|
|
567
|
+
invalid_decision_state: {
|
|
568
|
+
summary: "The decision record is in a state this endpoint cannot interpret.",
|
|
569
|
+
fix: "Request the action again to open a fresh decision.",
|
|
570
|
+
},
|
|
504
571
|
invalid_device_code: {
|
|
505
572
|
summary: "The device code is invalid or expired.",
|
|
506
573
|
fix: "Start a new device login flow.",
|
|
@@ -513,6 +580,10 @@ export const ERROR_DOCS = {
|
|
|
513
580
|
summary: "The domain name is not a valid registrable hostname.",
|
|
514
581
|
fix: "Check the spelling and use a fully qualified domain name.",
|
|
515
582
|
},
|
|
583
|
+
invalid_elevation_request: {
|
|
584
|
+
summary: "An elevation request needs at least one scope and a rationale of 1 to 1024 characters.",
|
|
585
|
+
fix: "Send a non-empty scope list and a specific rationale, then retry.",
|
|
586
|
+
},
|
|
516
587
|
invalid_file_path: {
|
|
517
588
|
summary: "A file path in the request is not a valid space path.",
|
|
518
589
|
fix: "Use forward-slash relative paths without traversal segments.",
|
|
@@ -557,6 +628,18 @@ export const ERROR_DOCS = {
|
|
|
557
628
|
summary: "The user code does not match a pending device login.",
|
|
558
629
|
fix: "Enter the code exactly as your CLI shows it. Codes expire after a few minutes.",
|
|
559
630
|
},
|
|
631
|
+
invalid_usage_bucket: {
|
|
632
|
+
summary: "The usage bucket has an invalid time range.",
|
|
633
|
+
fix: "Set bucketEnd to an instant after bucketStart, then retry.",
|
|
634
|
+
},
|
|
635
|
+
invalid_usage_correction: {
|
|
636
|
+
summary: "The correction does not match the original usage record.",
|
|
637
|
+
fix: "Use the same tenant, principal, space, mode, dimension, and bucket as the original.",
|
|
638
|
+
},
|
|
639
|
+
invalid_usage_window: {
|
|
640
|
+
summary: "The requested usage window is invalid or longer than 92 days.",
|
|
641
|
+
fix: "Use a positive window of 92 days or less.",
|
|
642
|
+
},
|
|
560
643
|
invalid_version_path: {
|
|
561
644
|
summary: "A file path in the version is not a valid space path.",
|
|
562
645
|
fix: "Use forward-slash relative paths without traversal segments.",
|
|
@@ -583,7 +666,7 @@ export const ERROR_DOCS = {
|
|
|
583
666
|
},
|
|
584
667
|
invalid_zero_realtime_replay_query: {
|
|
585
668
|
summary: "The Zero realtime replay query parameters are invalid.",
|
|
586
|
-
fix: "
|
|
669
|
+
fix: "Send a retained `afterEventId` from a previous page's `nextAfterEventId`, and a replay limit between 1 and 100.",
|
|
587
670
|
},
|
|
588
671
|
invitation_already_exists: {
|
|
589
672
|
summary: "An invitation for this email already exists on the team.",
|
|
@@ -605,6 +688,26 @@ export const ERROR_DOCS = {
|
|
|
605
688
|
summary: "Requests from this IP address are blocked for abuse or policy reasons.",
|
|
606
689
|
fix: "If you believe this block is a mistake, contact support with your IP address.",
|
|
607
690
|
},
|
|
691
|
+
issuer_exists: {
|
|
692
|
+
summary: "This partner token issuer is already active for another tenant.",
|
|
693
|
+
fix: "Use a globally unique issuer URL, or revoke the existing issuer before registering it here.",
|
|
694
|
+
},
|
|
695
|
+
issuer_not_active: {
|
|
696
|
+
summary: "The partner token issuer is registered but is not active.",
|
|
697
|
+
fix: "Activate the issuer, then request a new partner token.",
|
|
698
|
+
},
|
|
699
|
+
issuer_proof_invalid: {
|
|
700
|
+
summary: "The partner token issuer key-possession proof is invalid.",
|
|
701
|
+
fix: "Sign the current challenge and minted audience with one of the registered Ed25519 keys, then retry activation.",
|
|
702
|
+
},
|
|
703
|
+
issuer_tenant_occupied: {
|
|
704
|
+
summary: "This tenant already has a pending or active partner token issuer.",
|
|
705
|
+
fix: "Activate or revoke the tenant's existing issuer before registering another one.",
|
|
706
|
+
},
|
|
707
|
+
issuer_unknown: {
|
|
708
|
+
summary: "The partner token names an issuer that Spacefast does not recognize.",
|
|
709
|
+
fix: "Register the exact token issuer, then request a new partner token.",
|
|
710
|
+
},
|
|
608
711
|
job_not_found: {
|
|
609
712
|
summary: "The background job was not found.",
|
|
610
713
|
fix: "Verify the job id. Spacefast eventually prunes completed jobs.",
|
|
@@ -685,6 +788,10 @@ export const ERROR_DOCS = {
|
|
|
685
788
|
summary: "The domain's observed nameservers diverge from the expected set.",
|
|
686
789
|
fix: "Align the registrar's nameserver records with the expected set, then re-check.",
|
|
687
790
|
},
|
|
791
|
+
no_space_selected: {
|
|
792
|
+
summary: "The command needs a Space and this directory does not select one.",
|
|
793
|
+
fix: "Pass --space, link the directory with `sf link --space <id>`, or run it where a project link already selects a Space. `sf spaces ls` lists what the credential can reach.",
|
|
794
|
+
},
|
|
688
795
|
noop_publish: {
|
|
689
796
|
summary: "The publish matched the live version exactly, so nothing changed.",
|
|
690
797
|
fix: "No action is needed. The existing live version already serves this content.",
|
|
@@ -697,6 +804,22 @@ export const ERROR_DOCS = {
|
|
|
697
804
|
summary: "The requested resource was not found.",
|
|
698
805
|
fix: "Verify that the id is correct and that your credential can access the resource.",
|
|
699
806
|
},
|
|
807
|
+
partner_preset_not_grantable: {
|
|
808
|
+
summary: "The `partner_admin` preset is a tenant-rooted partner credential and cannot be minted as an ordinary team API key.",
|
|
809
|
+
fix: "Ask an operator to bootstrap a partner key for the tenant, or request a team-scoped preset such as `space_admin`.",
|
|
810
|
+
},
|
|
811
|
+
partner_tenant_immutable_client: {
|
|
812
|
+
summary: "The tenant's provider client cannot be changed.",
|
|
813
|
+
fix: "Create a new tenant with the desired provider client instead.",
|
|
814
|
+
},
|
|
815
|
+
password_already_set: {
|
|
816
|
+
summary: "The account already has a password.",
|
|
817
|
+
fix: "Change the existing password instead of setting a new one.",
|
|
818
|
+
},
|
|
819
|
+
password_compromised: {
|
|
820
|
+
summary: "The password appears in a public breach corpus.",
|
|
821
|
+
fix: "Pick a password you have not used anywhere else, then try again.",
|
|
822
|
+
},
|
|
700
823
|
path_case_collision: {
|
|
701
824
|
summary: "Two file paths differ only by letter case, which collides on serving.",
|
|
702
825
|
fix: "Rename one of the files so that paths are unique case-insensitively.",
|
|
@@ -713,14 +836,14 @@ export const ERROR_DOCS = {
|
|
|
713
836
|
summary: "This plan grant was already revoked.",
|
|
714
837
|
fix: "No action is needed. If the team should regain the plan, create a new grant.",
|
|
715
838
|
},
|
|
839
|
+
plan_unknown: {
|
|
840
|
+
summary: "The requested plan name is not in the tenant's live plan catalog, so it cannot be assigned to a principal.",
|
|
841
|
+
fix: "Assign a plan declared in the tenant's system-space manifest. List the catalog's plan names and use one of them.",
|
|
842
|
+
},
|
|
716
843
|
placement_invalid_burstable: {
|
|
717
844
|
summary: "The placement burstable option was used with an unsupported placement mode.",
|
|
718
845
|
fix: 'Set `placement.mode` to `"dedicated"` before setting `placement.burstable`, or remove the burstable option.',
|
|
719
846
|
},
|
|
720
|
-
platform_tenant_immutable_client: {
|
|
721
|
-
summary: "The tenant's provider client cannot be changed.",
|
|
722
|
-
fix: "Create a new tenant with the desired provider client instead.",
|
|
723
|
-
},
|
|
724
847
|
policy_exceeds_grantor: {
|
|
725
848
|
summary: "The requested key policy grants more than your own credential allows.",
|
|
726
849
|
fix: "Request a policy that is a subset of the credential creating the key.",
|
|
@@ -733,14 +856,66 @@ export const ERROR_DOCS = {
|
|
|
733
856
|
summary: "Too many concurrent uploads for this space.",
|
|
734
857
|
fix: "Wait for the Retry-After window, then resume. At most 4 uploads run per space at once.",
|
|
735
858
|
},
|
|
859
|
+
primary_email_not_removable: {
|
|
860
|
+
summary: "The primary email address cannot be removed while it is the primary.",
|
|
861
|
+
fix: "Make another verified address primary first, then remove this one.",
|
|
862
|
+
},
|
|
863
|
+
principal_closed: {
|
|
864
|
+
summary: "The external principal is closed. Its spaces are tombstoned and cannot be modified.",
|
|
865
|
+
fix: "A closed principal is terminal and cannot be reopened; create a new principal to resume.",
|
|
866
|
+
},
|
|
867
|
+
principal_has_active_spaces: {
|
|
868
|
+
summary: "The external principal still owns spaces, so it cannot be closed.",
|
|
869
|
+
fix: "Delete the principal's spaces first, or retry with `force` to tombstone them as part of the close.",
|
|
870
|
+
},
|
|
871
|
+
principal_not_found: {
|
|
872
|
+
summary: "No external principal with that id exists in this tenant.",
|
|
873
|
+
fix: "List `/v1/principals` to see the ids this tenant knows; a principal appears only once it owns a resource.",
|
|
874
|
+
},
|
|
736
875
|
principal_space_mismatch: {
|
|
737
876
|
summary: "The space does not belong to the principal in the request.",
|
|
738
877
|
fix: "Use the space's owning team or account in the request path.",
|
|
739
878
|
},
|
|
879
|
+
principal_suspended: {
|
|
880
|
+
summary: "The external principal is suspended. Its spaces serve the suspended page and its mutations are blocked.",
|
|
881
|
+
fix: "Unsuspend the principal to restore serving and writes; a Spacefast-applied suspension can only be lifted by Spacefast.",
|
|
882
|
+
},
|
|
883
|
+
principal_suspension_locked: {
|
|
884
|
+
summary: "The suspension was applied by Spacefast (legal/abuse) and cannot be lifted by the partner.",
|
|
885
|
+
fix: "Contact Spacefast support to resolve a platform-applied suspension.",
|
|
886
|
+
},
|
|
740
887
|
promote_admission_exceeded: {
|
|
741
888
|
summary: "Too many archived files are being restored for this space right now.",
|
|
742
889
|
fix: "Retry shortly. Spacefast limits restores to protect the host.",
|
|
743
890
|
},
|
|
891
|
+
promotion_live_content_missing: {
|
|
892
|
+
summary: "The live tenant's system space has nothing published, so promotion has no content to carry forward.",
|
|
893
|
+
fix: "Publish the live system space once, then promote the test tenant again.",
|
|
894
|
+
},
|
|
895
|
+
promotion_live_system_space_invalid: {
|
|
896
|
+
summary: "The space designated as the live tenant's system space is not an active space that tenant owns.",
|
|
897
|
+
fix: "Designate a live, active space owned by this tenant as its system space, then promote again.",
|
|
898
|
+
},
|
|
899
|
+
promotion_live_system_space_not_designated: {
|
|
900
|
+
summary: "The live tenant has no designated system space, and promotion publishes the test manifest onto it.",
|
|
901
|
+
fix: "Set the live tenant's systemSpaceId to a space it owns, then promote again.",
|
|
902
|
+
},
|
|
903
|
+
promotion_not_live_tenant: {
|
|
904
|
+
summary: "Promotion targets a live tenant, and the tenant named in the request is not in live mode.",
|
|
905
|
+
fix: "Call promotion against the live tenant, not its test twin.",
|
|
906
|
+
},
|
|
907
|
+
promotion_nothing_to_promote: {
|
|
908
|
+
summary: "The test tenant's system space has no live manifest, so there is no configuration to promote.",
|
|
909
|
+
fix: "Publish the test tenant's system space first, then promote it.",
|
|
910
|
+
},
|
|
911
|
+
promotion_runtime_publish_incomplete: {
|
|
912
|
+
summary: "The promoted version was accepted but its runtime publish did not finish, so live is unchanged.",
|
|
913
|
+
fix: "Retry the promotion. If it keeps failing, contact support with the `requestId`.",
|
|
914
|
+
},
|
|
915
|
+
promotion_test_twin_missing: {
|
|
916
|
+
summary: "This live tenant has no linked test tenant, so there is nothing to promote from.",
|
|
917
|
+
fix: "Create the tenant's test twin and publish its system space before promoting.",
|
|
918
|
+
},
|
|
744
919
|
provider_error: {
|
|
745
920
|
summary: "WP Cloud reported an error.",
|
|
746
921
|
fix: "Retry. If the error persists, contact support with the `requestId`.",
|
|
@@ -853,6 +1028,10 @@ export const ERROR_DOCS = {
|
|
|
853
1028
|
summary: "The named job queue does not exist.",
|
|
854
1029
|
fix: "Check the queue name against the operator queue list.",
|
|
855
1030
|
},
|
|
1031
|
+
quota_exceeded: {
|
|
1032
|
+
summary: "This action would exceed a quota on the plan assigned to the owning customer. The problem details name which quota (for example, the spaces cap) and its limit.",
|
|
1033
|
+
fix: "Delete an existing resource to free room, or assign the customer a plan whose quota allows it.",
|
|
1034
|
+
},
|
|
856
1035
|
response_headers_unservable: {
|
|
857
1036
|
summary: "A file needs a response header that the platform cannot deliver for large files.",
|
|
858
1037
|
fix: "Reduce the file below 100 MiB or drop the custom header.",
|
|
@@ -890,8 +1069,8 @@ export const ERROR_DOCS = {
|
|
|
890
1069
|
fix: "Use a runtime token scoped for this action.",
|
|
891
1070
|
},
|
|
892
1071
|
runtime_api_not_found: {
|
|
893
|
-
summary: "The runtime
|
|
894
|
-
fix: "
|
|
1072
|
+
summary: "The requested runtime action was not found.",
|
|
1073
|
+
fix: "Use a supported runtime action and a token scoped for that action.",
|
|
895
1074
|
},
|
|
896
1075
|
runtime_callback_forbidden: {
|
|
897
1076
|
summary: "The runtime callback cannot be authenticated.",
|
|
@@ -989,6 +1168,10 @@ export const ERROR_DOCS = {
|
|
|
989
1168
|
summary: "The service request signature cannot be verified.",
|
|
990
1169
|
fix: "Sign the exact request method, path, body digest, timestamp, and a fresh nonce.",
|
|
991
1170
|
},
|
|
1171
|
+
session_not_fresh: {
|
|
1172
|
+
summary: "This action needs a recent identity confirmation.",
|
|
1173
|
+
fix: "Confirm it's you (password, authenticator code, or a code sent to your primary email), then retry.",
|
|
1174
|
+
},
|
|
992
1175
|
site_already_deleted: {
|
|
993
1176
|
summary: "The site was already deleted.",
|
|
994
1177
|
fix: "No action is needed. The site is gone.",
|
|
@@ -1101,6 +1284,10 @@ export const ERROR_DOCS = {
|
|
|
1101
1284
|
summary: "A space reference is required for this operation.",
|
|
1102
1285
|
fix: "Pass a `spc_` id, slug, or hostname.",
|
|
1103
1286
|
},
|
|
1287
|
+
space_selection_conflict: {
|
|
1288
|
+
summary: "The command asked to create a Space while this directory already selects one.",
|
|
1289
|
+
fix: "Drop --slug to publish to the selected Space, or publish from an unlinked directory to create a new one.",
|
|
1290
|
+
},
|
|
1104
1291
|
space_transferring: {
|
|
1105
1292
|
summary: "The space has a transfer in progress, which blocks this operation.",
|
|
1106
1293
|
fix: "Complete or cancel the transfer first.",
|
|
@@ -1177,10 +1364,26 @@ export const ERROR_DOCS = {
|
|
|
1177
1364
|
summary: "The billing provider reported an error.",
|
|
1178
1365
|
fix: "Retry. If the error persists, check the team's billing settings.",
|
|
1179
1366
|
},
|
|
1367
|
+
superadmin_two_factor_required: {
|
|
1368
|
+
summary: "The user must have two-factor authentication enrolled before being granted superadmin.",
|
|
1369
|
+
fix: "Ask them to enrol a second factor in account security, then grant the role again.",
|
|
1370
|
+
},
|
|
1371
|
+
superadmin_wpcom_account_required: {
|
|
1372
|
+
summary: "The user must have a WordPress.com account linked before being granted superadmin.",
|
|
1373
|
+
fix: "Ask them to link WordPress.com in account security, then grant the role again.",
|
|
1374
|
+
},
|
|
1180
1375
|
superseded_by_publish: {
|
|
1181
1376
|
summary: "A newer publish superseded this operation, so it was skipped.",
|
|
1182
1377
|
fix: "No action is needed. The newer publish already carries the change.",
|
|
1183
1378
|
},
|
|
1379
|
+
system_space_conflict: {
|
|
1380
|
+
summary: "The tenant's system space changed since the value you sent as `baseSystemSpaceId`, so the update was rejected.",
|
|
1381
|
+
fix: "Re-read `/v1/tenants/{tenantId}`, confirm the current `systemSpaceId`, and retry with a matching `baseSystemSpaceId`.",
|
|
1382
|
+
},
|
|
1383
|
+
system_space_invalid: {
|
|
1384
|
+
summary: "The requested system space does not exist, is disabled, or belongs to another tenant.",
|
|
1385
|
+
fix: "Designate a live space this tenant owns as its system space.",
|
|
1386
|
+
},
|
|
1184
1387
|
takeover_notice_window: {
|
|
1185
1388
|
summary: "The hostname was recently bound elsewhere. A takeover notice window applies.",
|
|
1186
1389
|
fix: "Retry after the notice window, or have the current holder release the binding.",
|
|
@@ -1197,6 +1400,10 @@ export const ERROR_DOCS = {
|
|
|
1197
1400
|
summary: "This operation requires an acting team.",
|
|
1198
1401
|
fix: "Choose a team or pass a team reference.",
|
|
1199
1402
|
},
|
|
1403
|
+
team_scope_mismatch: {
|
|
1404
|
+
summary: "The requested team conflicts with the team this credential or resource is bound to.",
|
|
1405
|
+
fix: "Drop the team parameter to act on the bound team, or use a credential for the team you named.",
|
|
1406
|
+
},
|
|
1200
1407
|
team_slug_conflict: {
|
|
1201
1408
|
summary: "The team slug is already taken.",
|
|
1202
1409
|
fix: "Choose a different slug.",
|
|
@@ -1249,6 +1456,42 @@ export const ERROR_DOCS = {
|
|
|
1249
1456
|
summary: "A theme value in the configuration is outside the allowed grammar.",
|
|
1250
1457
|
fix: "Use allowed CSS values. Otherwise the offending key is dropped with a warning.",
|
|
1251
1458
|
},
|
|
1459
|
+
token_alg_invalid: {
|
|
1460
|
+
summary: "The partner token uses a signing algorithm that Spacefast does not allow.",
|
|
1461
|
+
fix: "Sign the token with a registered Ed25519 key.",
|
|
1462
|
+
},
|
|
1463
|
+
token_audience_mismatch: {
|
|
1464
|
+
summary: "The partner token audience does not match the audience for its issuer.",
|
|
1465
|
+
fix: "Set aud to the exact audience that Spacefast assigned to the issuer.",
|
|
1466
|
+
},
|
|
1467
|
+
token_claims_invalid: {
|
|
1468
|
+
summary: "The partner token omits a required claim or contains an invalid claim value.",
|
|
1469
|
+
fix: "Add valid iss, aud, sub, client_id, jti, iat, and exp claims.",
|
|
1470
|
+
},
|
|
1471
|
+
token_header_forbidden: {
|
|
1472
|
+
summary: "The partner token contains a header that can select an untrusted key.",
|
|
1473
|
+
fix: "Remove jku, x5u, jwk, and x5c from the token header.",
|
|
1474
|
+
},
|
|
1475
|
+
token_malformed: {
|
|
1476
|
+
summary: "The partner token is not a valid compact JWT within the size limit.",
|
|
1477
|
+
fix: "Send a valid compact JWT that is no larger than 8192 bytes.",
|
|
1478
|
+
},
|
|
1479
|
+
token_signature_invalid: {
|
|
1480
|
+
summary: "The partner token signature does not match a registered issuer key.",
|
|
1481
|
+
fix: "Sign the token with an active key that is registered for the issuer.",
|
|
1482
|
+
},
|
|
1483
|
+
token_subject_invalid: {
|
|
1484
|
+
summary: "The partner token subject is not a normalized lowercase external principal id.",
|
|
1485
|
+
fix: "Use a trimmed lowercase ASCII subject without wildcards, slashes, or reserved policy characters.",
|
|
1486
|
+
},
|
|
1487
|
+
token_ttl_invalid: {
|
|
1488
|
+
summary: "The partner token time claims are expired, premature, or outside the lifetime limit.",
|
|
1489
|
+
fix: "Issue a new token with exp after iat and no more than 1800 seconds after iat.",
|
|
1490
|
+
},
|
|
1491
|
+
token_type_invalid: {
|
|
1492
|
+
summary: "The partner token has a typ header that Spacefast does not accept.",
|
|
1493
|
+
fix: "Set typ to at+jwt or application/at+jwt.",
|
|
1494
|
+
},
|
|
1252
1495
|
transfer_cross_tenant_unsupported: {
|
|
1253
1496
|
summary: "Spaces cannot be transferred across tenants.",
|
|
1254
1497
|
fix: "Export the space and import it under the target tenant instead.",
|
|
@@ -1297,6 +1540,10 @@ export const ERROR_DOCS = {
|
|
|
1297
1540
|
summary: "An uploaded file's size does not match the declared size.",
|
|
1298
1541
|
fix: "Re-check the local file and upload it again.",
|
|
1299
1542
|
},
|
|
1543
|
+
usage_period_not_found: {
|
|
1544
|
+
summary: "The requested usage period does not exist in this tenant.",
|
|
1545
|
+
fix: "List usage periods and use an id returned for the selected tenant.",
|
|
1546
|
+
},
|
|
1300
1547
|
user_banned: {
|
|
1301
1548
|
summary: "This user is banned for a policy or abuse violation and cannot perform this action.",
|
|
1302
1549
|
fix: "If you believe the ban is a mistake, contact support to appeal it.",
|
|
@@ -1397,6 +1644,10 @@ export const ERROR_DOCS = {
|
|
|
1397
1644
|
summary: "The webhook exhausted its delivery budget and was paused.",
|
|
1398
1645
|
fix: "Fix the receiving endpoint, then redeliver or re-enable the webhook.",
|
|
1399
1646
|
},
|
|
1647
|
+
webhook_managed_by_manifest: {
|
|
1648
|
+
summary: "The webhook is declared in the tenant's system-space manifest.",
|
|
1649
|
+
fix: "Edit its `system.subscriptions` entry and publish the system space.",
|
|
1650
|
+
},
|
|
1400
1651
|
whois_unavailable: {
|
|
1401
1652
|
summary: "WHOIS data is unavailable for this domain right now.",
|
|
1402
1653
|
fix: "Retry later.",
|
|
@@ -1637,10 +1888,18 @@ export const ERROR_DOCS = {
|
|
|
1637
1888
|
summary: "The Zero endpoints payload exceeds the supported endpoint count.",
|
|
1638
1889
|
fix: "Reduce the project to at most 128 Zero endpoints, then publish again.",
|
|
1639
1890
|
},
|
|
1891
|
+
zero_email_unavailable: {
|
|
1892
|
+
summary: "The local Zero email service is not configured.",
|
|
1893
|
+
fix: "Publish the capsule to call the hosted email service, or guard the `ctx.email` call so local runs skip it.",
|
|
1894
|
+
},
|
|
1640
1895
|
zero_envelope_encode_failed: {
|
|
1641
1896
|
summary: "The PHP bridge cannot encode the Zero runner request envelope.",
|
|
1642
1897
|
fix: "Retry with valid request data. If the issue persists, report it.",
|
|
1643
1898
|
},
|
|
1899
|
+
zero_gravatar_unavailable: {
|
|
1900
|
+
summary: "The local Zero gravatar service is not configured.",
|
|
1901
|
+
fix: "Publish the capsule to call the hosted gravatar service. `ctx.gravatar.avatarUrl` needs no service and works locally.",
|
|
1902
|
+
},
|
|
1644
1903
|
zero_js_context_init_failed: {
|
|
1645
1904
|
summary: "The Zero runner cannot initialize a QuickJS context.",
|
|
1646
1905
|
fix: "Retry or rebuild the runner. Report persistent runtime initialization failures.",
|
|
@@ -1715,7 +1974,7 @@ export const ERROR_DOCS = {
|
|
|
1715
1974
|
},
|
|
1716
1975
|
zero_replay_query_invalid: {
|
|
1717
1976
|
summary: "The hosted Zero realtime replay query is invalid.",
|
|
1718
|
-
fix: "
|
|
1977
|
+
fix: "Send a retained `afterEventId` from a previous page's `nextAfterEventId`, and a numeric limit.",
|
|
1719
1978
|
},
|
|
1720
1979
|
zero_replay_unavailable: {
|
|
1721
1980
|
summary: "Realtime replay is not configured for this Zero version.",
|
|
@@ -1797,6 +2056,10 @@ export const ERROR_DOCS = {
|
|
|
1797
2056
|
summary: "The Zero runner process cannot be started.",
|
|
1798
2057
|
fix: "Verify the runner binary is installed and executable in the runtime.",
|
|
1799
2058
|
},
|
|
2059
|
+
zero_spam_unavailable: {
|
|
2060
|
+
summary: "The local Zero spam service is not configured.",
|
|
2061
|
+
fix: "Publish the capsule to call the hosted spam service, or guard the `ctx.spam` call so local runs skip it.",
|
|
2062
|
+
},
|
|
1800
2063
|
zero_runs_invalid: {
|
|
1801
2064
|
summary: "The Zero run-handler payload is invalid.",
|
|
1802
2065
|
fix: "Send a valid array of generated run handlers and publish again.",
|
|
@@ -1841,6 +2104,8 @@ export const ERROR_DOCS = {
|
|
|
1841
2104
|
summary: "The infra webhook secret is not configured on this deployment.",
|
|
1842
2105
|
fix: "Set the infra webhook secret in the control-plane environment.",
|
|
1843
2106
|
},
|
|
2107
|
+
// `satisfies`, not an annotation, so the table keeps its literal types while
|
|
2108
|
+
// still failing the build the moment a code has no entry.
|
|
1844
2109
|
};
|
|
1845
2110
|
const PRODUCT = BRAND.productName;
|
|
1846
2111
|
/** One generated reference page per error code; the `.md` twin is this exact text. */
|
|
@@ -9,7 +9,6 @@ export interface DocIndexEntry extends DocEntry {
|
|
|
9
9
|
/** The bundled, generated docs index. */
|
|
10
10
|
export interface DocsIndex {
|
|
11
11
|
readonly version: typeof DOCS_INDEX_VERSION;
|
|
12
|
-
/** Provenance marker so a reader knows the artifact is generated. */
|
|
13
12
|
readonly generatedFrom: string;
|
|
14
13
|
readonly entries: readonly DocIndexEntry[];
|
|
15
14
|
}
|
package/dist/docs/index-build.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// Pure transform from the curated docs catalog (catalog.ts) to a search index.
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
// served index, the bundled artifact, and the source can never silently diverge.
|
|
2
|
+
// The CLI's generator, its drift-guard test, and the control-plane's
|
|
3
|
+
// GET /v1/docs all call buildDocsIndex, so they cannot silently diverge.
|
|
5
4
|
import { DOCS_CATALOG } from "./catalog.js";
|
|
6
5
|
/** Current on-disk index schema version; bump when the shape changes. */
|
|
7
6
|
export const DOCS_INDEX_VERSION = 1;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
export type PageContextPromptInput = {
|
|
2
|
+
readonly page: {
|
|
3
|
+
readonly title: string;
|
|
4
|
+
readonly url: string;
|
|
5
|
+
readonly description?: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Live state of the resource the page is about: which space, whether its
|
|
9
|
+
* repository is connected, where it serves. This is what makes a builds brief
|
|
10
|
+
* about *this* space's builds rather than about builds in general, so it is
|
|
11
|
+
* rendered above the references an agent would use to act on it.
|
|
12
|
+
*/
|
|
13
|
+
readonly facts?: {
|
|
14
|
+
readonly title: string;
|
|
15
|
+
readonly items: readonly {
|
|
16
|
+
readonly label: string;
|
|
17
|
+
readonly value: string;
|
|
18
|
+
}[];
|
|
19
|
+
};
|
|
20
|
+
readonly docs: readonly {
|
|
21
|
+
readonly title: string;
|
|
22
|
+
readonly url: string;
|
|
23
|
+
}[];
|
|
24
|
+
readonly operations: readonly {
|
|
25
|
+
readonly method: string;
|
|
26
|
+
readonly path: string;
|
|
27
|
+
readonly summary: string;
|
|
28
|
+
/**
|
|
29
|
+
* The operation's page in the API reference, which is also where its
|
|
30
|
+
* parameters and request/response schemas are rendered. Derived from the
|
|
31
|
+
* operation's id and tag (`apiOperationDocsUrl`), never written by hand.
|
|
32
|
+
*/
|
|
33
|
+
readonly docsUrl?: string;
|
|
34
|
+
}[];
|
|
35
|
+
/**
|
|
36
|
+
* Real invocations, e.g. `sf builds ls --space lunar-sitemap --json`, derived
|
|
37
|
+
* from the oclif manifest's own examples with the current space substituted.
|
|
38
|
+
* `docsUrl` deep-links to that command's section of the CLI reference.
|
|
39
|
+
*/
|
|
40
|
+
readonly cli: readonly {
|
|
41
|
+
readonly command: string;
|
|
42
|
+
readonly summary?: string;
|
|
43
|
+
readonly docsUrl?: string;
|
|
44
|
+
}[];
|
|
45
|
+
/** Include the short hosted-MCP pointer. */
|
|
46
|
+
readonly mcp?: boolean;
|
|
47
|
+
readonly form?: {
|
|
48
|
+
readonly surface: string;
|
|
49
|
+
readonly values: Readonly<Record<string, string | number | boolean | readonly string[]>>;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
/** Builds the copy-ready markdown prompt for one dashboard page. Pure: same input, same bytes. */
|
|
53
|
+
export declare function buildPageContextPrompt(input: PageContextPromptInput): string;
|
|
54
|
+
/**
|
|
55
|
+
* Adds one private exchange to the safe page brief. The caller must send this
|
|
56
|
+
* result only to the clipboard. The private URL must not enter a rendered node,
|
|
57
|
+
* a query string, a log, or a cache key.
|
|
58
|
+
*
|
|
59
|
+
* The wording is calibrated on fresh-agent evals. First person — the user is
|
|
60
|
+
* the one pasting it, so the user is speaking. It says what the link is BEFORE
|
|
61
|
+
* asking for the fetch, because an unexplained "fetch this and obey it" reads
|
|
62
|
+
* as a phishing template to a careful agent. And it names the right mechanics:
|
|
63
|
+
* the naive `curl <url>` puts the bearer in argv and shell history, so the
|
|
64
|
+
* prompt says to use a URL-fetch tool.
|
|
65
|
+
*/
|
|
66
|
+
export declare function buildPrivatePageContextPrompt(input: {
|
|
67
|
+
context: string;
|
|
68
|
+
expiresAt: string;
|
|
69
|
+
handoffUrl: string;
|
|
70
|
+
targetLabel: string;
|
|
71
|
+
/**
|
|
72
|
+
* What to do once connected. The default closes the loop back to the page
|
|
73
|
+
* brief above; a caller with no page brief (the /start copy) supplies its
|
|
74
|
+
* own so the prompt never points at references that are not there.
|
|
75
|
+
*/
|
|
76
|
+
closing?: string | undefined;
|
|
77
|
+
}): string;
|