@spacefast/common 0.2.1 → 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.
- package/dist/agents/marketplace-prompts.d.ts +1 -0
- package/dist/agents/marketplace-prompts.js +6 -0
- package/dist/agents/registry/core.d.ts +4 -12
- package/dist/agents/registry/core.js +7 -28
- package/dist/config/domains.d.ts +10 -8
- package/dist/config/domains.js +4 -7
- package/dist/contracts/access-core.d.ts +135 -0
- package/dist/contracts/access-core.js +242 -0
- package/dist/contracts/access-profiles.d.ts +8 -8
- package/dist/contracts/access-profiles.js +8 -8
- package/dist/contracts/access.d.ts +14 -103
- package/dist/contracts/access.js +10 -210
- package/dist/contracts/activity.d.ts +54 -55
- package/dist/contracts/activity.js +38 -9
- package/dist/contracts/api-keys.d.ts +69 -26
- package/dist/contracts/api-keys.js +29 -2
- package/dist/contracts/application-journal.d.ts +197 -4
- package/dist/contracts/application-journal.js +97 -16
- package/dist/contracts/auth.d.ts +20 -0
- package/dist/contracts/auth.js +18 -0
- package/dist/contracts/beta.d.ts +13 -0
- package/dist/contracts/beta.js +28 -0
- package/dist/contracts/billing.d.ts +2 -2
- package/dist/contracts/bootstrap.d.ts +23 -6
- package/dist/contracts/builds.d.ts +24 -4
- package/dist/contracts/builds.js +16 -4
- package/dist/contracts/channels.d.ts +43 -0
- package/dist/contracts/channels.js +22 -6
- package/dist/contracts/comments.d.ts +49 -0
- package/dist/contracts/comments.js +61 -2
- package/dist/contracts/commerce.d.ts +19 -13
- package/dist/contracts/connector-access.d.ts +28 -0
- package/dist/contracts/connector-access.js +31 -0
- package/dist/contracts/connectors.d.ts +2382 -0
- package/dist/contracts/connectors.js +941 -0
- package/dist/contracts/content-contract-verification.d.ts +112 -58
- package/dist/contracts/content-contract-verification.js +42 -54
- package/dist/contracts/content-model-emit.d.ts +97 -0
- package/dist/contracts/content-model-emit.js +306 -0
- package/dist/contracts/content-model-sdk.d.ts +101 -0
- package/dist/contracts/content-model-sdk.js +232 -0
- package/dist/contracts/{content-program.d.ts → content-model.d.ts} +338 -82
- package/dist/contracts/{content-program.js → content-model.js} +291 -63
- package/dist/contracts/content-platform-fixture.d.ts +380 -110
- package/dist/contracts/content-platform-fixture.js +8 -8
- package/dist/contracts/content-sync.d.ts +197 -74
- package/dist/contracts/content-sync.js +98 -37
- package/dist/contracts/content.d.ts +30 -422
- package/dist/contracts/content.js +34 -294
- package/dist/contracts/dashboard-prefs.d.ts +10 -3
- package/dist/contracts/dashboard-prefs.js +6 -3
- package/dist/contracts/data-location.d.ts +9 -0
- package/dist/contracts/data-location.js +7 -0
- package/dist/contracts/deployment-comparison.d.ts +67 -0
- package/dist/contracts/deployment-comparison.js +68 -0
- package/dist/contracts/device-auth.d.ts +55 -11
- package/dist/contracts/domains.d.ts +40 -16
- package/dist/contracts/domains.js +23 -0
- package/dist/contracts/enums.d.ts +1 -10
- package/dist/contracts/enums.js +0 -15
- package/dist/contracts/error-code-meta.d.ts +388 -20
- package/dist/contracts/error-code-meta.js +201 -5
- package/dist/contracts/error-codes.d.ts +17 -4
- package/dist/contracts/error-codes.js +109 -10
- package/dist/contracts/events.d.ts +5 -0
- package/dist/contracts/events.js +12 -3
- package/dist/contracts/execution.d.ts +5 -1
- package/dist/contracts/execution.js +4 -0
- package/dist/contracts/feature-lifecycle.d.ts +53 -20
- package/dist/contracts/feature-lifecycle.js +65 -23
- package/dist/contracts/features.d.ts +57 -31
- package/dist/contracts/features.js +0 -1
- package/dist/contracts/feedback.d.ts +124 -0
- package/dist/contracts/feedback.js +64 -0
- package/dist/contracts/fixtures/content-model-sdk-v1.generated.d.ts +129 -0
- package/dist/contracts/fixtures/content-model-sdk-v1.generated.js +48 -0
- package/dist/contracts/fixtures/content-platform-v1.json +101 -49
- package/dist/contracts/frame-session.d.ts +60 -10
- package/dist/contracts/frame-session.js +52 -12
- package/dist/contracts/functions.d.ts +28 -2
- package/dist/contracts/functions.js +25 -2
- package/dist/contracts/grant-copy.d.ts +2 -0
- package/dist/contracts/grant-copy.js +2 -0
- package/dist/contracts/grants-core.d.ts +95 -0
- package/dist/contracts/grants-core.js +435 -0
- package/dist/contracts/grants.d.ts +13 -84
- package/dist/contracts/grants.js +21 -369
- package/dist/contracts/ids-core.d.ts +11 -0
- package/dist/contracts/ids-core.js +14 -0
- package/dist/contracts/ids.d.ts +7 -4
- package/dist/contracts/ids.js +12 -4
- package/dist/contracts/internal.d.ts +18 -0
- package/dist/contracts/internal.js +19 -0
- package/dist/contracts/mcp.d.ts +8 -18
- package/dist/contracts/mcp.js +2 -23
- package/dist/contracts/notifications.d.ts +4 -1
- package/dist/contracts/notifications.js +1 -0
- package/dist/contracts/oauth-resources.d.ts +55 -9
- package/dist/contracts/oauth-resources.js +64 -1
- package/dist/contracts/oauth-scope-actions.d.ts +27 -3
- package/dist/contracts/oauth-scope-actions.js +18 -8
- package/dist/contracts/operations.d.ts +1 -1
- package/dist/contracts/partner-account.d.ts +629 -0
- package/dist/contracts/partner-account.js +18 -0
- package/dist/contracts/principal-assertion.d.ts +74 -1
- package/dist/contracts/principal-assertion.js +67 -3
- package/dist/contracts/publish-archive.d.ts +22 -1
- package/dist/contracts/push-new.d.ts +3 -3
- package/dist/contracts/push-new.js +1 -1
- package/dist/contracts/quotas.js +2 -1
- package/dist/contracts/repository-connections.d.ts +10 -6
- package/dist/contracts/repository-connections.js +15 -0
- package/dist/contracts/resources.d.ts +6 -5
- package/dist/contracts/resources.js +7 -0
- package/dist/contracts/route-inventory.d.ts +74 -19
- package/dist/contracts/route-inventory.js +20 -6
- package/dist/contracts/runtime-api.d.ts +415 -4
- package/dist/contracts/runtime-api.js +60 -15
- package/dist/contracts/runtime-app.d.ts +6 -1
- package/dist/contracts/runtime-components.d.ts +646 -18
- package/dist/contracts/runtime-components.js +304 -188
- package/dist/contracts/runtime-services.d.ts +15 -0
- package/dist/contracts/runtime-services.js +25 -0
- package/dist/contracts/runtime-storage.d.ts +32 -0
- package/dist/contracts/runtime-storage.js +37 -0
- package/dist/contracts/source-workspaces.d.ts +511 -0
- package/dist/contracts/source-workspaces.js +276 -0
- package/dist/contracts/space-config-spacefast.d.ts +394 -0
- package/dist/contracts/space-config-spacefast.js +70 -0
- package/dist/contracts/space-config.d.ts +177 -90
- package/dist/contracts/space-config.js +77 -92
- package/dist/contracts/spaces.d.ts +132 -24
- package/dist/contracts/spaces.js +77 -13
- package/dist/contracts/superadmin-connectors.d.ts +371 -0
- package/dist/contracts/superadmin-connectors.js +61 -0
- package/dist/contracts/superadmin-emails.d.ts +1 -1
- package/dist/contracts/superadmin-emails.js +1 -1
- package/dist/contracts/superadmin-entities.d.ts +105 -0
- package/dist/contracts/superadmin-entities.js +64 -0
- package/dist/contracts/superadmin-runtime.d.ts +35 -116
- package/dist/contracts/superadmin-runtime.js +13 -69
- package/dist/contracts/superadmin-search.d.ts +12 -14
- package/dist/contracts/superadmin-search.js +2 -2
- package/dist/contracts/superadmin-spaces.d.ts +15 -72
- package/dist/contracts/superadmin-spaces.js +2 -7
- package/dist/contracts/superadmin-teams.d.ts +12 -0
- package/dist/contracts/superadmin-teams.js +7 -1
- package/dist/contracts/superadmin-tenants.d.ts +44 -16
- package/dist/contracts/superadmin.d.ts +2 -2
- package/dist/contracts/tags.d.ts +12 -12
- package/dist/contracts/teams.d.ts +29 -1
- package/dist/contracts/teams.js +24 -2
- package/dist/contracts/tenants.d.ts +98 -0
- package/dist/contracts/tenants.js +20 -0
- package/dist/contracts/transfers.d.ts +92 -0
- package/dist/contracts/transfers.js +37 -0
- package/dist/contracts/usage.d.ts +9 -1
- package/dist/contracts/usage.js +2 -0
- package/dist/contracts/visual-review.d.ts +448 -0
- package/dist/contracts/visual-review.js +156 -0
- package/dist/contracts/wordpress-php-toolkit.json +9 -0
- package/dist/contracts/work-mode.d.ts +24 -0
- package/dist/contracts/work-mode.js +17 -0
- package/dist/contracts/wp-cli.d.ts +66 -0
- package/dist/contracts/wp-cli.js +68 -0
- package/dist/contracts/zero-catalog.d.ts +29 -0
- package/dist/contracts/zero-catalog.js +55 -0
- package/dist/contracts/zero-platform-abilities.generated.d.ts +31 -0
- package/dist/contracts/zero-platform-abilities.generated.js +373 -0
- package/dist/contracts/zero-spacefast.d.ts +444 -0
- package/dist/contracts/zero-spacefast.js +149 -0
- package/dist/contracts/zero-types.d.ts +47 -0
- package/dist/contracts/zero-types.js +263 -0
- package/dist/contracts/zero.d.ts +781 -14
- package/dist/contracts/zero.js +204 -10
- package/dist/dashboard-paths/index.d.ts +2 -2
- package/dist/dashboard-paths/route-reservations.generated.d.ts +2 -2
- package/dist/dashboard-paths/route-reservations.generated.js +5 -0
- package/dist/docs/agent-prose.d.ts +1 -1
- package/dist/docs/agent-prose.js +15 -18
- package/dist/docs/agent-setup.d.ts +1 -1
- package/dist/docs/agent-setup.js +5 -13
- package/dist/docs/catalog.d.ts +64 -28
- package/dist/docs/catalog.js +155 -28
- package/dist/docs/error-docs.d.ts +365 -17
- package/dist/docs/error-docs.js +369 -21
- package/dist/docs/reference-urls.js +1 -1
- package/dist/docs/skills.d.ts +84 -84
- package/dist/docs/skills.js +66 -47
- package/dist/docs/start-prompts.d.ts +14 -0
- package/dist/docs/start-prompts.js +20 -0
- package/dist/utils/account-labels.d.ts +7 -0
- package/dist/utils/account-labels.js +15 -0
- package/dist/utils/auth.d.ts +1 -0
- package/dist/utils/auth.js +1 -0
- package/dist/utils/credential-policy.d.ts +22 -1
- package/dist/utils/credential-policy.js +55 -6
- package/dist/utils/local-space-state.d.ts +7 -0
- package/dist/utils/local-space-state.js +7 -0
- package/dist/utils/logger.d.ts +34 -0
- package/dist/utils/logger.js +144 -0
- package/dist/utils/page-routes.d.ts +9 -0
- package/dist/utils/page-routes.js +82 -0
- package/dist/utils/pages.d.ts +2 -0
- package/dist/utils/pages.js +7 -0
- package/dist/utils/publish-form-data.d.ts +2 -0
- package/dist/utils/publish-form-data.js +2 -0
- package/dist/utils/publish-policy-spacefast.d.ts +13 -0
- package/dist/utils/publish-policy-spacefast.js +117 -0
- package/dist/utils/publish-policy.d.ts +22 -16
- package/dist/utils/publish-policy.fixtures.json +15 -0
- package/dist/utils/publish-policy.js +62 -139
- package/dist/utils/query-client.js +9 -1
- package/dist/utils/runtime-upload.d.ts +4 -0
- package/dist/utils/runtime-upload.js +5 -0
- package/dist/utils/space-config.d.ts +2 -3
- package/dist/utils/space-config.js +1 -1
- package/dist/utils/uploaded-source.d.ts +4 -0
- package/dist/utils/uploaded-source.js +12 -0
- package/dist/visual-review.d.ts +4 -0
- package/dist/visual-review.js +208 -0
- package/dist/vocabulary.d.ts +38 -0
- package/dist/vocabulary.js +55 -0
- package/package.json +7 -2
- package/dist/agents/registry/deeplink-probes.d.ts +0 -23
- package/dist/agents/registry/deeplink-probes.js +0 -18
package/dist/docs/skills.d.ts
CHANGED
|
@@ -27,12 +27,12 @@ export declare const SPACEFAST_SKILLS: readonly [{
|
|
|
27
27
|
readonly whenToUse: "Use when the user wants a new website built, improved, or launched.";
|
|
28
28
|
readonly keywords: readonly ["create", "website", "design", "build", "responsive", "launch", "publish"];
|
|
29
29
|
readonly runtimes: readonly ["local", "hosted"];
|
|
30
|
-
readonly tools: readonly ["publish", "operation_status", "
|
|
30
|
+
readonly tools: readonly ["publish", "operation_status", "show_space"];
|
|
31
31
|
readonly docs: readonly ["quickstart", "publishing"];
|
|
32
|
-
readonly instructions: readonly ["Use the user's brief. Infer optional design choices from the content and workspace.", "Ask a question only when a missing required value blocks safe work.", "Inspect the workspace. Reuse its framework, package manager, components, assets, and build commands when suitable.", "Build an accessible site with real content, responsive layouts, clear hierarchy, and useful interaction states.", "Run the real build. Check mobile and desktop layouts, links, assets, keyboard use, contrast, and layout stability.", "Review the final diff. Remove secrets and local authentication data from the artifact.", "Call `publish` once with the built output. Return useful access, live, and version URLs from the receipt. If the publish is anonymous, point the user to the claim action in the publish card and state its expiry.", "If `publish.result.status` is `publishing`, call `operation_status`
|
|
33
|
-
readonly verification: readonly ["
|
|
32
|
+
readonly instructions: readonly ["Use the user's brief. Infer optional design choices from the content and workspace.", "Ask a question only when a missing required value blocks safe work.", "Inspect the workspace. Reuse its framework, package manager, components, assets, and build commands when suitable.", "Build an accessible site with real content, responsive layouts, clear hierarchy, and useful interaction states.", "Run the real build. Check mobile and desktop layouts, links, assets, keyboard use, contrast, and layout stability.", "Review the final diff. Remove secrets and local authentication data from the artifact.", "Call `publish` once with the built output. Return useful access, live, and version URLs from the receipt. If the publish is anonymous, point the user to the claim action in the publish card and state its expiry.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
|
|
33
|
+
readonly verification: readonly ["If `publish.result.receipt.claim` is present, use the completed publish receipt as verification. Do not call `show_space`. The user must claim the Space before you open a detailed view.", "If `publish.result.receipt.claim` is absent, call `show_space` with `request.view: \"deployments\"` and `request.input.space: publish.result.receipt.space.id`. Confirm that the intended version is ready and current.", "If the deployment failed or stalled, report its stable error code and actionable diagnostics.", "For a claimed Space, open its access URL. Verify the main page, navigation, assets, responsive layout, and primary call to action."];
|
|
34
34
|
readonly runtimeNotes: {
|
|
35
|
-
readonly local: "On-Device can
|
|
35
|
+
readonly local: "On Linux, On-Device can publish a build path relative to the configured workspace root. On other systems, publish new artifacts inline or use a permitted CLI or HTTP upload.";
|
|
36
36
|
readonly hosted: "Hosted has no filesystem. Generate small files in the client and publish them inline, or use catalog manifest and import operations for larger artifacts.";
|
|
37
37
|
};
|
|
38
38
|
readonly prompt: true;
|
|
@@ -48,10 +48,10 @@ export declare const SPACEFAST_SKILLS: readonly [{
|
|
|
48
48
|
readonly whenToUse: "Use when the artifact already exists and the user wants it published or updated.";
|
|
49
49
|
readonly keywords: readonly ["publish", "deploy", "live", "verify", "version", "claim"];
|
|
50
50
|
readonly runtimes: readonly ["local", "hosted"];
|
|
51
|
-
readonly tools: readonly ["publish", "operation_status", "
|
|
51
|
+
readonly tools: readonly ["publish", "operation_status", "show_space"];
|
|
52
52
|
readonly docs: readonly ["publishing", "workflow/publish-receipt", "workflow/secret-handling"];
|
|
53
|
-
readonly instructions: readonly ["Identify the actual publish root or build output. Run the real build first when the source tree is not the artifact.", "Call `publish` once. Keep anonymous claim credentials in local custody.", "If `publish.result.status` is `publishing`, call `operation_status`
|
|
54
|
-
readonly verification: readonly ["
|
|
53
|
+
readonly instructions: readonly ["Identify the actual publish root or build output. Run the real build first when the source tree is not the artifact.", "Call `publish` once. Keep anonymous claim credentials in local custody.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop.", "Return the live, access, and version URLs that are present. For an anonymous publish, state the claim expiry and point the user to the claim action in the publish card.", "Never expose a raw claim credential. Never ask the user to paste one."];
|
|
54
|
+
readonly verification: readonly ["If `publish.result.receipt.claim` is present, use the completed publish receipt as verification. Do not call `show_space`. The user must claim the Space before you open a detailed view.", "If `publish.result.receipt.claim` is absent, call `show_space` with `request.view: \"deployments\"` and `request.input.space: publish.result.receipt.space.id`. Confirm that the intended version is ready and current.", "Report the stable error code and actionable diagnostics when the deployment failed or stalled.", "For a claimed Space, open its access URL. Verify representative content and assets before reporting success."];
|
|
55
55
|
readonly runtimeNotes: {
|
|
56
56
|
readonly local: "Publish a bounded local path; locally custodied claim credentials are reused automatically.";
|
|
57
57
|
readonly hosted: "Publish inline files, or use catalog manifest and import operations for larger artifacts. Hosted has no filesystem.";
|
|
@@ -86,10 +86,10 @@ export declare const SPACEFAST_SKILLS: readonly [{
|
|
|
86
86
|
readonly whenToUse: "Use when reviewers need a realistic preview before a change goes live.";
|
|
87
87
|
readonly keywords: readonly ["preview", "channel", "branch", "pull request", "review", "private"];
|
|
88
88
|
readonly runtimes: readonly ["local", "hosted"];
|
|
89
|
-
readonly tools: readonly ["publish", "operation_status", "
|
|
89
|
+
readonly tools: readonly ["publish", "operation_status", "show_space", "execute", "resume_execution"];
|
|
90
90
|
readonly docs: readonly ["builds", "access-control"];
|
|
91
|
-
readonly instructions: readonly ["
|
|
92
|
-
readonly verification: readonly ["
|
|
91
|
+
readonly instructions: readonly ["Use `publish` for a separate preview Space. Pass its `spaceId`, or set `createNew: true` when the user requests a new Space.", "For a source preview in an existing Space, describe `createSpaceBuild` through `execute`. Use a repository input pinned to the saved commit.", "Set `body.target` to `{ preview: true, channel: null }`. Set the described `Idempotency-Key` header and keep `wait` false.", "Poll `getBuild` until it succeeds or fails. A build response does not prove that a version is live.", "Direct `publish` has no channel input. Keep the production target unchanged.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop.", "Keep the preview private unless the user requests sharing.", "For reviewer access, use one bounded `execute` program. Read current access, create the narrowest Link, then read it again.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program.", "Label the preview with its branch, change, or pull request. Report what is out of scope."];
|
|
92
|
+
readonly verification: readonly ["If `publish.result.receipt.claim` is present, use the completed publish receipt as verification. Do not call `show_space`. The user must claim the Space before you open a detailed view.", "If `publish.result.receipt.claim` is absent, call `show_space` with `request.view: \"deployments\"` and `request.input.space` set to each affected Space. Confirm that the preview changed. Confirm that production did not change.", "If `publish.result.receipt.claim` is absent, test the reviewer Link in a signed-out context. Report its scope and expiry."];
|
|
93
93
|
readonly recipe: {
|
|
94
94
|
readonly slug: "recipes/preview-channels";
|
|
95
95
|
readonly tier: "full";
|
|
@@ -104,8 +104,8 @@ export declare const SPACEFAST_SKILLS: readonly [{
|
|
|
104
104
|
readonly runtimes: readonly ["local", "hosted"];
|
|
105
105
|
readonly tools: readonly ["publish", "operation_status", "execute", "resume_execution"];
|
|
106
106
|
readonly docs: readonly ["anonymous-publish", "workflow/continue-after-claim", "workflow/secret-handling"];
|
|
107
|
-
readonly instructions: readonly ["Point the user to the claim action in the publish card and state its expiry. Never copy the claim credential into model text.", "
|
|
108
|
-
readonly verification: readonly ["Confirm that the space has no claim expiry. Confirm that it belongs to the intended account or team.", "
|
|
107
|
+
readonly instructions: readonly ["Point the user to the claim action in the publish card and state its expiry. Never copy the claim credential into model text.", "Let the user complete the claim through the publish card. The card keeps the claim credential outside model text.", "After the claim, use one bounded `execute` program with the connected account to read the Space by its known ID.", "Return its owner and claim state. Do not extract the saved claim key or call its exchange through `execute`.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program.", "If account access is unavailable, reconnect Spacefast in the client.", "The next requested On-Device publish exchanges the locally held credential automatically without exposing it.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
|
|
108
|
+
readonly verification: readonly ["Confirm that the space has no claim expiry. Confirm that it belongs to the intended account or team.", "When the user next requests a publish, confirm that it succeeds through the saved credential without exposing it."];
|
|
109
109
|
readonly prompt: true;
|
|
110
110
|
}, {
|
|
111
111
|
readonly name: "rollback-safely";
|
|
@@ -114,10 +114,10 @@ export declare const SPACEFAST_SKILLS: readonly [{
|
|
|
114
114
|
readonly whenToUse: "Use when the current live version is broken and a prior healthy version is known or discoverable.";
|
|
115
115
|
readonly keywords: readonly ["rollback", "revert", "version", "incident", "restore"];
|
|
116
116
|
readonly runtimes: readonly ["local", "hosted"];
|
|
117
|
-
readonly tools: readonly ["
|
|
117
|
+
readonly tools: readonly ["show_space", "execute", "resume_execution"];
|
|
118
118
|
readonly docs: readonly ["versions-and-rollback"];
|
|
119
|
-
readonly instructions: readonly ["Call `
|
|
120
|
-
readonly verification: readonly ["Call `
|
|
119
|
+
readonly instructions: readonly ["Call `show_space` with `request.view: \"deployments\"` and `request.input.space` set to the affected Space. Select a known-good ready version that is older than the current version.", "Use one bounded `execute` program. Search and describe the version promotion operation before calling it.", "Read the live pointer, promote the selected version, then read the pointer again in the same program.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program."];
|
|
120
|
+
readonly verification: readonly ["Call `show_space` with `request.view: \"deployments\"` and `request.input.space` set to the affected Space. Confirm that the selected version is current and ready.", "Open the live URL. Verify that the failing path or behavior works again."];
|
|
121
121
|
readonly prompt: true;
|
|
122
122
|
}, {
|
|
123
123
|
readonly name: "set-up-custom-domain";
|
|
@@ -126,10 +126,10 @@ export declare const SPACEFAST_SKILLS: readonly [{
|
|
|
126
126
|
readonly whenToUse: "Use when the user owns a domain they want a Spacefast space to serve.";
|
|
127
127
|
readonly keywords: readonly ["domain", "dns", "tls", "https", "cname", "custom"];
|
|
128
128
|
readonly runtimes: readonly ["local", "hosted"];
|
|
129
|
-
readonly tools: readonly ["
|
|
129
|
+
readonly tools: readonly ["show_space", "execute", "resume_execution"];
|
|
130
130
|
readonly docs: readonly ["custom-domains", "recipes/migrate-dns"];
|
|
131
|
-
readonly instructions: readonly ["Call `
|
|
132
|
-
readonly verification: readonly ["After the external DNS change, call `
|
|
131
|
+
readonly instructions: readonly ["Call `show_space` with `request.view: \"domains\"` and `request.input.space` set to the affected Space. Read the current domain, DNS, and certificate state.", "If setup is required, use one bounded `execute` program. Search and describe the add or assign operation before calling it.", "Read the domain again in the same program after the mutation resumes.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program.", "Return the exact DNS records from Spacefast. Do not claim that Spacefast changed third-party DNS.", "Keep the existing production hostname until the custom domain is ready."];
|
|
132
|
+
readonly verification: readonly ["After the external DNS change, call `show_space` with `request.view: \"domains\"` and `request.input.space` set to the affected Space. Report the current verification state.", "Open the HTTPS URL only after DNS and certificate states are ready. Verify representative content."];
|
|
133
133
|
readonly prompt: true;
|
|
134
134
|
readonly recipe: {
|
|
135
135
|
readonly slug: "recipes/custom-domain";
|
|
@@ -143,10 +143,10 @@ export declare const SPACEFAST_SKILLS: readonly [{
|
|
|
143
143
|
readonly whenToUse: "Use for moved pages, canonical host paths, and intentional permanent or temporary redirects.";
|
|
144
144
|
readonly keywords: readonly ["redirect", "rewrite", "routing", "301", "302", "path"];
|
|
145
145
|
readonly runtimes: readonly ["local", "hosted"];
|
|
146
|
-
readonly tools: readonly ["publish", "operation_status", "
|
|
146
|
+
readonly tools: readonly ["publish", "operation_status", "show_space"];
|
|
147
147
|
readonly docs: readonly ["redirects"];
|
|
148
|
-
readonly instructions: readonly ["Inspect existing routing rules, then add the smallest non-conflicting rules to `_redirects` at the publish root.", "Choose a temporary or permanent status deliberately. Preserve required path and query behavior.", "Avoid redirect loops and rules that hide real assets.", "Call `publish` once. Include the redirect file and related content in the same immutable version.", "If `publish.result.status` is `publishing`, call `operation_status`
|
|
149
|
-
readonly verification: readonly ["
|
|
148
|
+
readonly instructions: readonly ["Inspect existing routing rules, then add the smallest non-conflicting rules to `_redirects` at the publish root.", "Choose a temporary or permanent status deliberately. Preserve required path and query behavior.", "Avoid redirect loops and rules that hide real assets.", "Call `publish` once. Include the redirect file and related content in the same immutable version.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
|
|
149
|
+
readonly verification: readonly ["If `publish.result.receipt.claim` is present, use the completed publish receipt as verification. Do not call `show_space`. The user must claim the Space before you open a detailed view.", "If `publish.result.receipt.claim` is absent, call `show_space` with `request.view: \"deployments\"` and `request.input.space: publish.result.receipt.space.id`. Confirm that the new version is current and ready.", "If `publish.result.receipt.claim` is absent, request representative old and new paths and confirm the exact status and Location header.", "If `publish.result.receipt.claim` is absent, verify the final target serves successfully and unrelated assets are not redirected."];
|
|
150
150
|
readonly recipe: {
|
|
151
151
|
readonly slug: "recipes/redirects";
|
|
152
152
|
readonly tier: "reference";
|
|
@@ -159,10 +159,10 @@ export declare const SPACEFAST_SKILLS: readonly [{
|
|
|
159
159
|
readonly whenToUse: "Use when an existing production domain must move to Spacefast.";
|
|
160
160
|
readonly keywords: readonly ["dns", "migrate", "cutover", "domain", "downtime", "certificate"];
|
|
161
161
|
readonly runtimes: readonly ["local", "hosted"];
|
|
162
|
-
readonly tools: readonly ["
|
|
162
|
+
readonly tools: readonly ["show_space", "execute", "resume_execution"];
|
|
163
163
|
readonly docs: readonly ["custom-domains"];
|
|
164
|
-
readonly instructions: readonly ["Inventory the current authoritative DNS records. Lower the TTL before cutover when the provider and timing permit it.", "Call `
|
|
165
|
-
readonly verification: readonly ["Call `
|
|
164
|
+
readonly instructions: readonly ["Inventory the current authoritative DNS records. Lower the TTL before cutover when the provider and timing permit it.", "Call `show_space` with `request.view: \"domains\"` and `request.input.space` set to the affected Space. Read the current DNS and certificate state.", "If setup is required, use one bounded `execute` program. Search and describe the add or assign operation before calling it.", "Read the domain again in the same program after the mutation resumes.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program.", "Create the returned DNS records at the provider. Keep the previous origin available during propagation.", "Cut over only after the expected content and TLS state are ready."];
|
|
165
|
+
readonly verification: readonly ["Call `show_space` with `request.view: \"domains\"` and `request.input.space` set to the affected Space. Confirm that DNS and certificate states are ready.", "Check more than one resolver. Confirm that the certificate matches the final hostname.", "Open the public HTTPS URL. Verify representative content before removing rollback records."];
|
|
166
166
|
readonly recipe: {
|
|
167
167
|
readonly slug: "recipes/migrate-dns";
|
|
168
168
|
readonly tier: "reference";
|
|
@@ -175,10 +175,10 @@ export declare const SPACEFAST_SKILLS: readonly [{
|
|
|
175
175
|
readonly whenToUse: "Use when a build, finalize, activation, or live serving step fails or stalls.";
|
|
176
176
|
readonly keywords: readonly ["debug", "failed", "build", "logs", "diagnose", "stalled"];
|
|
177
177
|
readonly runtimes: readonly ["local", "hosted"];
|
|
178
|
-
readonly tools: readonly ["
|
|
178
|
+
readonly tools: readonly ["show_space", "execute", "resume_execution", "publish", "operation_status"];
|
|
179
179
|
readonly docs: readonly ["troubleshooting"];
|
|
180
|
-
readonly instructions: readonly ["Call `
|
|
181
|
-
readonly verification: readonly ["
|
|
180
|
+
readonly instructions: readonly ["Call `show_space` with `request.view: \"deployments\"` and `request.input.space` set to the affected Space. Read the failed version, build state, stable error code, and diagnostics.", "If more detail is required, use one bounded `execute` program. Read only the required build logs or version data.", "Apply the smallest fix supported by the evidence. Run the real build.", "Call `publish` once with the fixed output.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
|
|
181
|
+
readonly verification: readonly ["If `publish.result.receipt.claim` is present, use the completed publish receipt as verification. Do not call `show_space`. The user must claim the Space before you open a detailed view.", "If `publish.result.receipt.claim` is absent, call `show_space` with `request.view: \"deployments\"` and `request.input.space: publish.result.receipt.space.id`. Confirm that the new version is current and ready.", "If `publish.result.receipt.claim` is absent, open the affected live path. Verify that the concrete failure does not occur."];
|
|
182
182
|
readonly prompt: true;
|
|
183
183
|
}, {
|
|
184
184
|
readonly name: "manage-access";
|
|
@@ -189,7 +189,7 @@ export declare const SPACEFAST_SKILLS: readonly [{
|
|
|
189
189
|
readonly runtimes: readonly ["local", "hosted"];
|
|
190
190
|
readonly tools: readonly ["execute", "resume_execution"];
|
|
191
191
|
readonly docs: readonly ["access-control"];
|
|
192
|
-
readonly instructions: readonly ["Use one bounded `execute` program. Search and describe the access operations before calling them.", "Read current access. Apply the narrowest change for one explicit access intent. Read the resulting access state.", "Run the matching access check in the same program after the mutation resumes.", "If `execute` pauses, follow its `resumePrompt`.
|
|
192
|
+
readonly instructions: readonly ["Use one bounded `execute` program. Search and describe the access operations before calling them.", "Read current access. Apply the narrowest change for one explicit access intent. Read the resulting access state.", "Run the matching access check in the same program after the mutation resumes.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program.", "Show new Link or machine secrets only to the requesting user. Never store them in logs or committed files."];
|
|
193
193
|
readonly verification: readonly ["Confirm that the access check permits the intended actor and path.", "Test a new Link in the intended signed-out context. Confirm that unrelated resources stay inaccessible."];
|
|
194
194
|
readonly prompt: true;
|
|
195
195
|
}];
|
|
@@ -200,12 +200,12 @@ export declare const SPACEFAST_PROMPT_SKILLS: ({
|
|
|
200
200
|
readonly whenToUse: "Use when the user wants a new website built, improved, or launched.";
|
|
201
201
|
readonly keywords: readonly ["create", "website", "design", "build", "responsive", "launch", "publish"];
|
|
202
202
|
readonly runtimes: readonly ["local", "hosted"];
|
|
203
|
-
readonly tools: readonly ["publish", "operation_status", "
|
|
203
|
+
readonly tools: readonly ["publish", "operation_status", "show_space"];
|
|
204
204
|
readonly docs: readonly ["quickstart", "publishing"];
|
|
205
|
-
readonly instructions: readonly ["Use the user's brief. Infer optional design choices from the content and workspace.", "Ask a question only when a missing required value blocks safe work.", "Inspect the workspace. Reuse its framework, package manager, components, assets, and build commands when suitable.", "Build an accessible site with real content, responsive layouts, clear hierarchy, and useful interaction states.", "Run the real build. Check mobile and desktop layouts, links, assets, keyboard use, contrast, and layout stability.", "Review the final diff. Remove secrets and local authentication data from the artifact.", "Call `publish` once with the built output. Return useful access, live, and version URLs from the receipt. If the publish is anonymous, point the user to the claim action in the publish card and state its expiry.", "If `publish.result.status` is `publishing`, call `operation_status`
|
|
206
|
-
readonly verification: readonly ["
|
|
205
|
+
readonly instructions: readonly ["Use the user's brief. Infer optional design choices from the content and workspace.", "Ask a question only when a missing required value blocks safe work.", "Inspect the workspace. Reuse its framework, package manager, components, assets, and build commands when suitable.", "Build an accessible site with real content, responsive layouts, clear hierarchy, and useful interaction states.", "Run the real build. Check mobile and desktop layouts, links, assets, keyboard use, contrast, and layout stability.", "Review the final diff. Remove secrets and local authentication data from the artifact.", "Call `publish` once with the built output. Return useful access, live, and version URLs from the receipt. If the publish is anonymous, point the user to the claim action in the publish card and state its expiry.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
|
|
206
|
+
readonly verification: readonly ["If `publish.result.receipt.claim` is present, use the completed publish receipt as verification. Do not call `show_space`. The user must claim the Space before you open a detailed view.", "If `publish.result.receipt.claim` is absent, call `show_space` with `request.view: \"deployments\"` and `request.input.space: publish.result.receipt.space.id`. Confirm that the intended version is ready and current.", "If the deployment failed or stalled, report its stable error code and actionable diagnostics.", "For a claimed Space, open its access URL. Verify the main page, navigation, assets, responsive layout, and primary call to action."];
|
|
207
207
|
readonly runtimeNotes: {
|
|
208
|
-
readonly local: "On-Device can
|
|
208
|
+
readonly local: "On Linux, On-Device can publish a build path relative to the configured workspace root. On other systems, publish new artifacts inline or use a permitted CLI or HTTP upload.";
|
|
209
209
|
readonly hosted: "Hosted has no filesystem. Generate small files in the client and publish them inline, or use catalog manifest and import operations for larger artifacts.";
|
|
210
210
|
};
|
|
211
211
|
readonly prompt: true;
|
|
@@ -221,10 +221,10 @@ export declare const SPACEFAST_PROMPT_SKILLS: ({
|
|
|
221
221
|
readonly whenToUse: "Use when the artifact already exists and the user wants it published or updated.";
|
|
222
222
|
readonly keywords: readonly ["publish", "deploy", "live", "verify", "version", "claim"];
|
|
223
223
|
readonly runtimes: readonly ["local", "hosted"];
|
|
224
|
-
readonly tools: readonly ["publish", "operation_status", "
|
|
224
|
+
readonly tools: readonly ["publish", "operation_status", "show_space"];
|
|
225
225
|
readonly docs: readonly ["publishing", "workflow/publish-receipt", "workflow/secret-handling"];
|
|
226
|
-
readonly instructions: readonly ["Identify the actual publish root or build output. Run the real build first when the source tree is not the artifact.", "Call `publish` once. Keep anonymous claim credentials in local custody.", "If `publish.result.status` is `publishing`, call `operation_status`
|
|
227
|
-
readonly verification: readonly ["
|
|
226
|
+
readonly instructions: readonly ["Identify the actual publish root or build output. Run the real build first when the source tree is not the artifact.", "Call `publish` once. Keep anonymous claim credentials in local custody.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop.", "Return the live, access, and version URLs that are present. For an anonymous publish, state the claim expiry and point the user to the claim action in the publish card.", "Never expose a raw claim credential. Never ask the user to paste one."];
|
|
227
|
+
readonly verification: readonly ["If `publish.result.receipt.claim` is present, use the completed publish receipt as verification. Do not call `show_space`. The user must claim the Space before you open a detailed view.", "If `publish.result.receipt.claim` is absent, call `show_space` with `request.view: \"deployments\"` and `request.input.space: publish.result.receipt.space.id`. Confirm that the intended version is ready and current.", "Report the stable error code and actionable diagnostics when the deployment failed or stalled.", "For a claimed Space, open its access URL. Verify representative content and assets before reporting success."];
|
|
228
228
|
readonly runtimeNotes: {
|
|
229
229
|
readonly local: "Publish a bounded local path; locally custodied claim credentials are reused automatically.";
|
|
230
230
|
readonly hosted: "Publish inline files, or use catalog manifest and import operations for larger artifacts. Hosted has no filesystem.";
|
|
@@ -259,10 +259,10 @@ export declare const SPACEFAST_PROMPT_SKILLS: ({
|
|
|
259
259
|
readonly whenToUse: "Use when reviewers need a realistic preview before a change goes live.";
|
|
260
260
|
readonly keywords: readonly ["preview", "channel", "branch", "pull request", "review", "private"];
|
|
261
261
|
readonly runtimes: readonly ["local", "hosted"];
|
|
262
|
-
readonly tools: readonly ["publish", "operation_status", "
|
|
262
|
+
readonly tools: readonly ["publish", "operation_status", "show_space", "execute", "resume_execution"];
|
|
263
263
|
readonly docs: readonly ["builds", "access-control"];
|
|
264
|
-
readonly instructions: readonly ["
|
|
265
|
-
readonly verification: readonly ["
|
|
264
|
+
readonly instructions: readonly ["Use `publish` for a separate preview Space. Pass its `spaceId`, or set `createNew: true` when the user requests a new Space.", "For a source preview in an existing Space, describe `createSpaceBuild` through `execute`. Use a repository input pinned to the saved commit.", "Set `body.target` to `{ preview: true, channel: null }`. Set the described `Idempotency-Key` header and keep `wait` false.", "Poll `getBuild` until it succeeds or fails. A build response does not prove that a version is live.", "Direct `publish` has no channel input. Keep the production target unchanged.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop.", "Keep the preview private unless the user requests sharing.", "For reviewer access, use one bounded `execute` program. Read current access, create the narrowest Link, then read it again.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program.", "Label the preview with its branch, change, or pull request. Report what is out of scope."];
|
|
265
|
+
readonly verification: readonly ["If `publish.result.receipt.claim` is present, use the completed publish receipt as verification. Do not call `show_space`. The user must claim the Space before you open a detailed view.", "If `publish.result.receipt.claim` is absent, call `show_space` with `request.view: \"deployments\"` and `request.input.space` set to each affected Space. Confirm that the preview changed. Confirm that production did not change.", "If `publish.result.receipt.claim` is absent, test the reviewer Link in a signed-out context. Report its scope and expiry."];
|
|
266
266
|
readonly recipe: {
|
|
267
267
|
readonly slug: "recipes/preview-channels";
|
|
268
268
|
readonly tier: "full";
|
|
@@ -277,8 +277,8 @@ export declare const SPACEFAST_PROMPT_SKILLS: ({
|
|
|
277
277
|
readonly runtimes: readonly ["local", "hosted"];
|
|
278
278
|
readonly tools: readonly ["publish", "operation_status", "execute", "resume_execution"];
|
|
279
279
|
readonly docs: readonly ["anonymous-publish", "workflow/continue-after-claim", "workflow/secret-handling"];
|
|
280
|
-
readonly instructions: readonly ["Point the user to the claim action in the publish card and state its expiry. Never copy the claim credential into model text.", "
|
|
281
|
-
readonly verification: readonly ["Confirm that the space has no claim expiry. Confirm that it belongs to the intended account or team.", "
|
|
280
|
+
readonly instructions: readonly ["Point the user to the claim action in the publish card and state its expiry. Never copy the claim credential into model text.", "Let the user complete the claim through the publish card. The card keeps the claim credential outside model text.", "After the claim, use one bounded `execute` program with the connected account to read the Space by its known ID.", "Return its owner and claim state. Do not extract the saved claim key or call its exchange through `execute`.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program.", "If account access is unavailable, reconnect Spacefast in the client.", "The next requested On-Device publish exchanges the locally held credential automatically without exposing it.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
|
|
281
|
+
readonly verification: readonly ["Confirm that the space has no claim expiry. Confirm that it belongs to the intended account or team.", "When the user next requests a publish, confirm that it succeeds through the saved credential without exposing it."];
|
|
282
282
|
readonly prompt: true;
|
|
283
283
|
} | {
|
|
284
284
|
readonly name: "rollback-safely";
|
|
@@ -287,10 +287,10 @@ export declare const SPACEFAST_PROMPT_SKILLS: ({
|
|
|
287
287
|
readonly whenToUse: "Use when the current live version is broken and a prior healthy version is known or discoverable.";
|
|
288
288
|
readonly keywords: readonly ["rollback", "revert", "version", "incident", "restore"];
|
|
289
289
|
readonly runtimes: readonly ["local", "hosted"];
|
|
290
|
-
readonly tools: readonly ["
|
|
290
|
+
readonly tools: readonly ["show_space", "execute", "resume_execution"];
|
|
291
291
|
readonly docs: readonly ["versions-and-rollback"];
|
|
292
|
-
readonly instructions: readonly ["Call `
|
|
293
|
-
readonly verification: readonly ["Call `
|
|
292
|
+
readonly instructions: readonly ["Call `show_space` with `request.view: \"deployments\"` and `request.input.space` set to the affected Space. Select a known-good ready version that is older than the current version.", "Use one bounded `execute` program. Search and describe the version promotion operation before calling it.", "Read the live pointer, promote the selected version, then read the pointer again in the same program.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program."];
|
|
293
|
+
readonly verification: readonly ["Call `show_space` with `request.view: \"deployments\"` and `request.input.space` set to the affected Space. Confirm that the selected version is current and ready.", "Open the live URL. Verify that the failing path or behavior works again."];
|
|
294
294
|
readonly prompt: true;
|
|
295
295
|
} | {
|
|
296
296
|
readonly name: "set-up-custom-domain";
|
|
@@ -299,10 +299,10 @@ export declare const SPACEFAST_PROMPT_SKILLS: ({
|
|
|
299
299
|
readonly whenToUse: "Use when the user owns a domain they want a Spacefast space to serve.";
|
|
300
300
|
readonly keywords: readonly ["domain", "dns", "tls", "https", "cname", "custom"];
|
|
301
301
|
readonly runtimes: readonly ["local", "hosted"];
|
|
302
|
-
readonly tools: readonly ["
|
|
302
|
+
readonly tools: readonly ["show_space", "execute", "resume_execution"];
|
|
303
303
|
readonly docs: readonly ["custom-domains", "recipes/migrate-dns"];
|
|
304
|
-
readonly instructions: readonly ["Call `
|
|
305
|
-
readonly verification: readonly ["After the external DNS change, call `
|
|
304
|
+
readonly instructions: readonly ["Call `show_space` with `request.view: \"domains\"` and `request.input.space` set to the affected Space. Read the current domain, DNS, and certificate state.", "If setup is required, use one bounded `execute` program. Search and describe the add or assign operation before calling it.", "Read the domain again in the same program after the mutation resumes.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program.", "Return the exact DNS records from Spacefast. Do not claim that Spacefast changed third-party DNS.", "Keep the existing production hostname until the custom domain is ready."];
|
|
305
|
+
readonly verification: readonly ["After the external DNS change, call `show_space` with `request.view: \"domains\"` and `request.input.space` set to the affected Space. Report the current verification state.", "Open the HTTPS URL only after DNS and certificate states are ready. Verify representative content."];
|
|
306
306
|
readonly prompt: true;
|
|
307
307
|
readonly recipe: {
|
|
308
308
|
readonly slug: "recipes/custom-domain";
|
|
@@ -316,10 +316,10 @@ export declare const SPACEFAST_PROMPT_SKILLS: ({
|
|
|
316
316
|
readonly whenToUse: "Use for moved pages, canonical host paths, and intentional permanent or temporary redirects.";
|
|
317
317
|
readonly keywords: readonly ["redirect", "rewrite", "routing", "301", "302", "path"];
|
|
318
318
|
readonly runtimes: readonly ["local", "hosted"];
|
|
319
|
-
readonly tools: readonly ["publish", "operation_status", "
|
|
319
|
+
readonly tools: readonly ["publish", "operation_status", "show_space"];
|
|
320
320
|
readonly docs: readonly ["redirects"];
|
|
321
|
-
readonly instructions: readonly ["Inspect existing routing rules, then add the smallest non-conflicting rules to `_redirects` at the publish root.", "Choose a temporary or permanent status deliberately. Preserve required path and query behavior.", "Avoid redirect loops and rules that hide real assets.", "Call `publish` once. Include the redirect file and related content in the same immutable version.", "If `publish.result.status` is `publishing`, call `operation_status`
|
|
322
|
-
readonly verification: readonly ["
|
|
321
|
+
readonly instructions: readonly ["Inspect existing routing rules, then add the smallest non-conflicting rules to `_redirects` at the publish root.", "Choose a temporary or permanent status deliberately. Preserve required path and query behavior.", "Avoid redirect loops and rules that hide real assets.", "Call `publish` once. Include the redirect file and related content in the same immutable version.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
|
|
322
|
+
readonly verification: readonly ["If `publish.result.receipt.claim` is present, use the completed publish receipt as verification. Do not call `show_space`. The user must claim the Space before you open a detailed view.", "If `publish.result.receipt.claim` is absent, call `show_space` with `request.view: \"deployments\"` and `request.input.space: publish.result.receipt.space.id`. Confirm that the new version is current and ready.", "If `publish.result.receipt.claim` is absent, request representative old and new paths and confirm the exact status and Location header.", "If `publish.result.receipt.claim` is absent, verify the final target serves successfully and unrelated assets are not redirected."];
|
|
323
323
|
readonly recipe: {
|
|
324
324
|
readonly slug: "recipes/redirects";
|
|
325
325
|
readonly tier: "reference";
|
|
@@ -332,10 +332,10 @@ export declare const SPACEFAST_PROMPT_SKILLS: ({
|
|
|
332
332
|
readonly whenToUse: "Use when an existing production domain must move to Spacefast.";
|
|
333
333
|
readonly keywords: readonly ["dns", "migrate", "cutover", "domain", "downtime", "certificate"];
|
|
334
334
|
readonly runtimes: readonly ["local", "hosted"];
|
|
335
|
-
readonly tools: readonly ["
|
|
335
|
+
readonly tools: readonly ["show_space", "execute", "resume_execution"];
|
|
336
336
|
readonly docs: readonly ["custom-domains"];
|
|
337
|
-
readonly instructions: readonly ["Inventory the current authoritative DNS records. Lower the TTL before cutover when the provider and timing permit it.", "Call `
|
|
338
|
-
readonly verification: readonly ["Call `
|
|
337
|
+
readonly instructions: readonly ["Inventory the current authoritative DNS records. Lower the TTL before cutover when the provider and timing permit it.", "Call `show_space` with `request.view: \"domains\"` and `request.input.space` set to the affected Space. Read the current DNS and certificate state.", "If setup is required, use one bounded `execute` program. Search and describe the add or assign operation before calling it.", "Read the domain again in the same program after the mutation resumes.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program.", "Create the returned DNS records at the provider. Keep the previous origin available during propagation.", "Cut over only after the expected content and TLS state are ready."];
|
|
338
|
+
readonly verification: readonly ["Call `show_space` with `request.view: \"domains\"` and `request.input.space` set to the affected Space. Confirm that DNS and certificate states are ready.", "Check more than one resolver. Confirm that the certificate matches the final hostname.", "Open the public HTTPS URL. Verify representative content before removing rollback records."];
|
|
339
339
|
readonly recipe: {
|
|
340
340
|
readonly slug: "recipes/migrate-dns";
|
|
341
341
|
readonly tier: "reference";
|
|
@@ -348,10 +348,10 @@ export declare const SPACEFAST_PROMPT_SKILLS: ({
|
|
|
348
348
|
readonly whenToUse: "Use when a build, finalize, activation, or live serving step fails or stalls.";
|
|
349
349
|
readonly keywords: readonly ["debug", "failed", "build", "logs", "diagnose", "stalled"];
|
|
350
350
|
readonly runtimes: readonly ["local", "hosted"];
|
|
351
|
-
readonly tools: readonly ["
|
|
351
|
+
readonly tools: readonly ["show_space", "execute", "resume_execution", "publish", "operation_status"];
|
|
352
352
|
readonly docs: readonly ["troubleshooting"];
|
|
353
|
-
readonly instructions: readonly ["Call `
|
|
354
|
-
readonly verification: readonly ["
|
|
353
|
+
readonly instructions: readonly ["Call `show_space` with `request.view: \"deployments\"` and `request.input.space` set to the affected Space. Read the failed version, build state, stable error code, and diagnostics.", "If more detail is required, use one bounded `execute` program. Read only the required build logs or version data.", "Apply the smallest fix supported by the evidence. Run the real build.", "Call `publish` once with the fixed output.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
|
|
354
|
+
readonly verification: readonly ["If `publish.result.receipt.claim` is present, use the completed publish receipt as verification. Do not call `show_space`. The user must claim the Space before you open a detailed view.", "If `publish.result.receipt.claim` is absent, call `show_space` with `request.view: \"deployments\"` and `request.input.space: publish.result.receipt.space.id`. Confirm that the new version is current and ready.", "If `publish.result.receipt.claim` is absent, open the affected live path. Verify that the concrete failure does not occur."];
|
|
355
355
|
readonly prompt: true;
|
|
356
356
|
} | {
|
|
357
357
|
readonly name: "manage-access";
|
|
@@ -362,7 +362,7 @@ export declare const SPACEFAST_PROMPT_SKILLS: ({
|
|
|
362
362
|
readonly runtimes: readonly ["local", "hosted"];
|
|
363
363
|
readonly tools: readonly ["execute", "resume_execution"];
|
|
364
364
|
readonly docs: readonly ["access-control"];
|
|
365
|
-
readonly instructions: readonly ["Use one bounded `execute` program. Search and describe the access operations before calling them.", "Read current access. Apply the narrowest change for one explicit access intent. Read the resulting access state.", "Run the matching access check in the same program after the mutation resumes.", "If `execute` pauses, follow its `resumePrompt`.
|
|
365
|
+
readonly instructions: readonly ["Use one bounded `execute` program. Search and describe the access operations before calling them.", "Read current access. Apply the narrowest change for one explicit access intent. Read the resulting access state.", "Run the matching access check in the same program after the mutation resumes.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program.", "Show new Link or machine secrets only to the requesting user. Never store them in logs or committed files."];
|
|
366
366
|
readonly verification: readonly ["Confirm that the access check permits the intended actor and path.", "Test a new Link in the intended signed-out context. Confirm that unrelated resources stay inaccessible."];
|
|
367
367
|
readonly prompt: true;
|
|
368
368
|
})[];
|
|
@@ -373,12 +373,12 @@ export declare const SPACEFAST_RECIPE_SKILLS: (({
|
|
|
373
373
|
readonly whenToUse: "Use when the user wants a new website built, improved, or launched.";
|
|
374
374
|
readonly keywords: readonly ["create", "website", "design", "build", "responsive", "launch", "publish"];
|
|
375
375
|
readonly runtimes: readonly ["local", "hosted"];
|
|
376
|
-
readonly tools: readonly ["publish", "operation_status", "
|
|
376
|
+
readonly tools: readonly ["publish", "operation_status", "show_space"];
|
|
377
377
|
readonly docs: readonly ["quickstart", "publishing"];
|
|
378
|
-
readonly instructions: readonly ["Use the user's brief. Infer optional design choices from the content and workspace.", "Ask a question only when a missing required value blocks safe work.", "Inspect the workspace. Reuse its framework, package manager, components, assets, and build commands when suitable.", "Build an accessible site with real content, responsive layouts, clear hierarchy, and useful interaction states.", "Run the real build. Check mobile and desktop layouts, links, assets, keyboard use, contrast, and layout stability.", "Review the final diff. Remove secrets and local authentication data from the artifact.", "Call `publish` once with the built output. Return useful access, live, and version URLs from the receipt. If the publish is anonymous, point the user to the claim action in the publish card and state its expiry.", "If `publish.result.status` is `publishing`, call `operation_status`
|
|
379
|
-
readonly verification: readonly ["
|
|
378
|
+
readonly instructions: readonly ["Use the user's brief. Infer optional design choices from the content and workspace.", "Ask a question only when a missing required value blocks safe work.", "Inspect the workspace. Reuse its framework, package manager, components, assets, and build commands when suitable.", "Build an accessible site with real content, responsive layouts, clear hierarchy, and useful interaction states.", "Run the real build. Check mobile and desktop layouts, links, assets, keyboard use, contrast, and layout stability.", "Review the final diff. Remove secrets and local authentication data from the artifact.", "Call `publish` once with the built output. Return useful access, live, and version URLs from the receipt. If the publish is anonymous, point the user to the claim action in the publish card and state its expiry.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
|
|
379
|
+
readonly verification: readonly ["If `publish.result.receipt.claim` is present, use the completed publish receipt as verification. Do not call `show_space`. The user must claim the Space before you open a detailed view.", "If `publish.result.receipt.claim` is absent, call `show_space` with `request.view: \"deployments\"` and `request.input.space: publish.result.receipt.space.id`. Confirm that the intended version is ready and current.", "If the deployment failed or stalled, report its stable error code and actionable diagnostics.", "For a claimed Space, open its access URL. Verify the main page, navigation, assets, responsive layout, and primary call to action."];
|
|
380
380
|
readonly runtimeNotes: {
|
|
381
|
-
readonly local: "On-Device can
|
|
381
|
+
readonly local: "On Linux, On-Device can publish a build path relative to the configured workspace root. On other systems, publish new artifacts inline or use a permitted CLI or HTTP upload.";
|
|
382
382
|
readonly hosted: "Hosted has no filesystem. Generate small files in the client and publish them inline, or use catalog manifest and import operations for larger artifacts.";
|
|
383
383
|
};
|
|
384
384
|
readonly prompt: true;
|
|
@@ -394,10 +394,10 @@ export declare const SPACEFAST_RECIPE_SKILLS: (({
|
|
|
394
394
|
readonly whenToUse: "Use when the artifact already exists and the user wants it published or updated.";
|
|
395
395
|
readonly keywords: readonly ["publish", "deploy", "live", "verify", "version", "claim"];
|
|
396
396
|
readonly runtimes: readonly ["local", "hosted"];
|
|
397
|
-
readonly tools: readonly ["publish", "operation_status", "
|
|
397
|
+
readonly tools: readonly ["publish", "operation_status", "show_space"];
|
|
398
398
|
readonly docs: readonly ["publishing", "workflow/publish-receipt", "workflow/secret-handling"];
|
|
399
|
-
readonly instructions: readonly ["Identify the actual publish root or build output. Run the real build first when the source tree is not the artifact.", "Call `publish` once. Keep anonymous claim credentials in local custody.", "If `publish.result.status` is `publishing`, call `operation_status`
|
|
400
|
-
readonly verification: readonly ["
|
|
399
|
+
readonly instructions: readonly ["Identify the actual publish root or build output. Run the real build first when the source tree is not the artifact.", "Call `publish` once. Keep anonymous claim credentials in local custody.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop.", "Return the live, access, and version URLs that are present. For an anonymous publish, state the claim expiry and point the user to the claim action in the publish card.", "Never expose a raw claim credential. Never ask the user to paste one."];
|
|
400
|
+
readonly verification: readonly ["If `publish.result.receipt.claim` is present, use the completed publish receipt as verification. Do not call `show_space`. The user must claim the Space before you open a detailed view.", "If `publish.result.receipt.claim` is absent, call `show_space` with `request.view: \"deployments\"` and `request.input.space: publish.result.receipt.space.id`. Confirm that the intended version is ready and current.", "Report the stable error code and actionable diagnostics when the deployment failed or stalled.", "For a claimed Space, open its access URL. Verify representative content and assets before reporting success."];
|
|
401
401
|
readonly runtimeNotes: {
|
|
402
402
|
readonly local: "Publish a bounded local path; locally custodied claim credentials are reused automatically.";
|
|
403
403
|
readonly hosted: "Publish inline files, or use catalog manifest and import operations for larger artifacts. Hosted has no filesystem.";
|
|
@@ -432,10 +432,10 @@ export declare const SPACEFAST_RECIPE_SKILLS: (({
|
|
|
432
432
|
readonly whenToUse: "Use when reviewers need a realistic preview before a change goes live.";
|
|
433
433
|
readonly keywords: readonly ["preview", "channel", "branch", "pull request", "review", "private"];
|
|
434
434
|
readonly runtimes: readonly ["local", "hosted"];
|
|
435
|
-
readonly tools: readonly ["publish", "operation_status", "
|
|
435
|
+
readonly tools: readonly ["publish", "operation_status", "show_space", "execute", "resume_execution"];
|
|
436
436
|
readonly docs: readonly ["builds", "access-control"];
|
|
437
|
-
readonly instructions: readonly ["
|
|
438
|
-
readonly verification: readonly ["
|
|
437
|
+
readonly instructions: readonly ["Use `publish` for a separate preview Space. Pass its `spaceId`, or set `createNew: true` when the user requests a new Space.", "For a source preview in an existing Space, describe `createSpaceBuild` through `execute`. Use a repository input pinned to the saved commit.", "Set `body.target` to `{ preview: true, channel: null }`. Set the described `Idempotency-Key` header and keep `wait` false.", "Poll `getBuild` until it succeeds or fails. A build response does not prove that a version is live.", "Direct `publish` has no channel input. Keep the production target unchanged.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop.", "Keep the preview private unless the user requests sharing.", "For reviewer access, use one bounded `execute` program. Read current access, create the narrowest Link, then read it again.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program.", "Label the preview with its branch, change, or pull request. Report what is out of scope."];
|
|
438
|
+
readonly verification: readonly ["If `publish.result.receipt.claim` is present, use the completed publish receipt as verification. Do not call `show_space`. The user must claim the Space before you open a detailed view.", "If `publish.result.receipt.claim` is absent, call `show_space` with `request.view: \"deployments\"` and `request.input.space` set to each affected Space. Confirm that the preview changed. Confirm that production did not change.", "If `publish.result.receipt.claim` is absent, test the reviewer Link in a signed-out context. Report its scope and expiry."];
|
|
439
439
|
readonly recipe: {
|
|
440
440
|
readonly slug: "recipes/preview-channels";
|
|
441
441
|
readonly tier: "full";
|
|
@@ -450,8 +450,8 @@ export declare const SPACEFAST_RECIPE_SKILLS: (({
|
|
|
450
450
|
readonly runtimes: readonly ["local", "hosted"];
|
|
451
451
|
readonly tools: readonly ["publish", "operation_status", "execute", "resume_execution"];
|
|
452
452
|
readonly docs: readonly ["anonymous-publish", "workflow/continue-after-claim", "workflow/secret-handling"];
|
|
453
|
-
readonly instructions: readonly ["Point the user to the claim action in the publish card and state its expiry. Never copy the claim credential into model text.", "
|
|
454
|
-
readonly verification: readonly ["Confirm that the space has no claim expiry. Confirm that it belongs to the intended account or team.", "
|
|
453
|
+
readonly instructions: readonly ["Point the user to the claim action in the publish card and state its expiry. Never copy the claim credential into model text.", "Let the user complete the claim through the publish card. The card keeps the claim credential outside model text.", "After the claim, use one bounded `execute` program with the connected account to read the Space by its known ID.", "Return its owner and claim state. Do not extract the saved claim key or call its exchange through `execute`.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program.", "If account access is unavailable, reconnect Spacefast in the client.", "The next requested On-Device publish exchanges the locally held credential automatically without exposing it.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
|
|
454
|
+
readonly verification: readonly ["Confirm that the space has no claim expiry. Confirm that it belongs to the intended account or team.", "When the user next requests a publish, confirm that it succeeds through the saved credential without exposing it."];
|
|
455
455
|
readonly prompt: true;
|
|
456
456
|
} | {
|
|
457
457
|
readonly name: "rollback-safely";
|
|
@@ -460,10 +460,10 @@ export declare const SPACEFAST_RECIPE_SKILLS: (({
|
|
|
460
460
|
readonly whenToUse: "Use when the current live version is broken and a prior healthy version is known or discoverable.";
|
|
461
461
|
readonly keywords: readonly ["rollback", "revert", "version", "incident", "restore"];
|
|
462
462
|
readonly runtimes: readonly ["local", "hosted"];
|
|
463
|
-
readonly tools: readonly ["
|
|
463
|
+
readonly tools: readonly ["show_space", "execute", "resume_execution"];
|
|
464
464
|
readonly docs: readonly ["versions-and-rollback"];
|
|
465
|
-
readonly instructions: readonly ["Call `
|
|
466
|
-
readonly verification: readonly ["Call `
|
|
465
|
+
readonly instructions: readonly ["Call `show_space` with `request.view: \"deployments\"` and `request.input.space` set to the affected Space. Select a known-good ready version that is older than the current version.", "Use one bounded `execute` program. Search and describe the version promotion operation before calling it.", "Read the live pointer, promote the selected version, then read the pointer again in the same program.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program."];
|
|
466
|
+
readonly verification: readonly ["Call `show_space` with `request.view: \"deployments\"` and `request.input.space` set to the affected Space. Confirm that the selected version is current and ready.", "Open the live URL. Verify that the failing path or behavior works again."];
|
|
467
467
|
readonly prompt: true;
|
|
468
468
|
} | {
|
|
469
469
|
readonly name: "set-up-custom-domain";
|
|
@@ -472,10 +472,10 @@ export declare const SPACEFAST_RECIPE_SKILLS: (({
|
|
|
472
472
|
readonly whenToUse: "Use when the user owns a domain they want a Spacefast space to serve.";
|
|
473
473
|
readonly keywords: readonly ["domain", "dns", "tls", "https", "cname", "custom"];
|
|
474
474
|
readonly runtimes: readonly ["local", "hosted"];
|
|
475
|
-
readonly tools: readonly ["
|
|
475
|
+
readonly tools: readonly ["show_space", "execute", "resume_execution"];
|
|
476
476
|
readonly docs: readonly ["custom-domains", "recipes/migrate-dns"];
|
|
477
|
-
readonly instructions: readonly ["Call `
|
|
478
|
-
readonly verification: readonly ["After the external DNS change, call `
|
|
477
|
+
readonly instructions: readonly ["Call `show_space` with `request.view: \"domains\"` and `request.input.space` set to the affected Space. Read the current domain, DNS, and certificate state.", "If setup is required, use one bounded `execute` program. Search and describe the add or assign operation before calling it.", "Read the domain again in the same program after the mutation resumes.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program.", "Return the exact DNS records from Spacefast. Do not claim that Spacefast changed third-party DNS.", "Keep the existing production hostname until the custom domain is ready."];
|
|
478
|
+
readonly verification: readonly ["After the external DNS change, call `show_space` with `request.view: \"domains\"` and `request.input.space` set to the affected Space. Report the current verification state.", "Open the HTTPS URL only after DNS and certificate states are ready. Verify representative content."];
|
|
479
479
|
readonly prompt: true;
|
|
480
480
|
readonly recipe: {
|
|
481
481
|
readonly slug: "recipes/custom-domain";
|
|
@@ -489,10 +489,10 @@ export declare const SPACEFAST_RECIPE_SKILLS: (({
|
|
|
489
489
|
readonly whenToUse: "Use for moved pages, canonical host paths, and intentional permanent or temporary redirects.";
|
|
490
490
|
readonly keywords: readonly ["redirect", "rewrite", "routing", "301", "302", "path"];
|
|
491
491
|
readonly runtimes: readonly ["local", "hosted"];
|
|
492
|
-
readonly tools: readonly ["publish", "operation_status", "
|
|
492
|
+
readonly tools: readonly ["publish", "operation_status", "show_space"];
|
|
493
493
|
readonly docs: readonly ["redirects"];
|
|
494
|
-
readonly instructions: readonly ["Inspect existing routing rules, then add the smallest non-conflicting rules to `_redirects` at the publish root.", "Choose a temporary or permanent status deliberately. Preserve required path and query behavior.", "Avoid redirect loops and rules that hide real assets.", "Call `publish` once. Include the redirect file and related content in the same immutable version.", "If `publish.result.status` is `publishing`, call `operation_status`
|
|
495
|
-
readonly verification: readonly ["
|
|
494
|
+
readonly instructions: readonly ["Inspect existing routing rules, then add the smallest non-conflicting rules to `_redirects` at the publish root.", "Choose a temporary or permanent status deliberately. Preserve required path and query behavior.", "Avoid redirect loops and rules that hide real assets.", "Call `publish` once. Include the redirect file and related content in the same immutable version.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
|
|
495
|
+
readonly verification: readonly ["If `publish.result.receipt.claim` is present, use the completed publish receipt as verification. Do not call `show_space`. The user must claim the Space before you open a detailed view.", "If `publish.result.receipt.claim` is absent, call `show_space` with `request.view: \"deployments\"` and `request.input.space: publish.result.receipt.space.id`. Confirm that the new version is current and ready.", "If `publish.result.receipt.claim` is absent, request representative old and new paths and confirm the exact status and Location header.", "If `publish.result.receipt.claim` is absent, verify the final target serves successfully and unrelated assets are not redirected."];
|
|
496
496
|
readonly recipe: {
|
|
497
497
|
readonly slug: "recipes/redirects";
|
|
498
498
|
readonly tier: "reference";
|
|
@@ -505,10 +505,10 @@ export declare const SPACEFAST_RECIPE_SKILLS: (({
|
|
|
505
505
|
readonly whenToUse: "Use when an existing production domain must move to Spacefast.";
|
|
506
506
|
readonly keywords: readonly ["dns", "migrate", "cutover", "domain", "downtime", "certificate"];
|
|
507
507
|
readonly runtimes: readonly ["local", "hosted"];
|
|
508
|
-
readonly tools: readonly ["
|
|
508
|
+
readonly tools: readonly ["show_space", "execute", "resume_execution"];
|
|
509
509
|
readonly docs: readonly ["custom-domains"];
|
|
510
|
-
readonly instructions: readonly ["Inventory the current authoritative DNS records. Lower the TTL before cutover when the provider and timing permit it.", "Call `
|
|
511
|
-
readonly verification: readonly ["Call `
|
|
510
|
+
readonly instructions: readonly ["Inventory the current authoritative DNS records. Lower the TTL before cutover when the provider and timing permit it.", "Call `show_space` with `request.view: \"domains\"` and `request.input.space` set to the affected Space. Read the current DNS and certificate state.", "If setup is required, use one bounded `execute` program. Search and describe the add or assign operation before calling it.", "Read the domain again in the same program after the mutation resumes.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program.", "Create the returned DNS records at the provider. Keep the previous origin available during propagation.", "Cut over only after the expected content and TLS state are ready."];
|
|
511
|
+
readonly verification: readonly ["Call `show_space` with `request.view: \"domains\"` and `request.input.space` set to the affected Space. Confirm that DNS and certificate states are ready.", "Check more than one resolver. Confirm that the certificate matches the final hostname.", "Open the public HTTPS URL. Verify representative content before removing rollback records."];
|
|
512
512
|
readonly recipe: {
|
|
513
513
|
readonly slug: "recipes/migrate-dns";
|
|
514
514
|
readonly tier: "reference";
|
|
@@ -521,10 +521,10 @@ export declare const SPACEFAST_RECIPE_SKILLS: (({
|
|
|
521
521
|
readonly whenToUse: "Use when a build, finalize, activation, or live serving step fails or stalls.";
|
|
522
522
|
readonly keywords: readonly ["debug", "failed", "build", "logs", "diagnose", "stalled"];
|
|
523
523
|
readonly runtimes: readonly ["local", "hosted"];
|
|
524
|
-
readonly tools: readonly ["
|
|
524
|
+
readonly tools: readonly ["show_space", "execute", "resume_execution", "publish", "operation_status"];
|
|
525
525
|
readonly docs: readonly ["troubleshooting"];
|
|
526
|
-
readonly instructions: readonly ["Call `
|
|
527
|
-
readonly verification: readonly ["
|
|
526
|
+
readonly instructions: readonly ["Call `show_space` with `request.view: \"deployments\"` and `request.input.space` set to the affected Space. Read the failed version, build state, stable error code, and diagnostics.", "If more detail is required, use one bounded `execute` program. Read only the required build logs or version data.", "Apply the smallest fix supported by the evidence. Run the real build.", "Call `publish` once with the fixed output.", "For authenticated `publish`, set a unique `requestId` before the first call. Reuse it only with the same input after uncertainty.", "If `publish.result.status` is `publishing`, call `operation_status`. Use `publish.result.job.poll.url` when present. Otherwise, use `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Wait two seconds between publish status reads.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
|
|
527
|
+
readonly verification: readonly ["If `publish.result.receipt.claim` is present, use the completed publish receipt as verification. Do not call `show_space`. The user must claim the Space before you open a detailed view.", "If `publish.result.receipt.claim` is absent, call `show_space` with `request.view: \"deployments\"` and `request.input.space: publish.result.receipt.space.id`. Confirm that the new version is current and ready.", "If `publish.result.receipt.claim` is absent, open the affected live path. Verify that the concrete failure does not occur."];
|
|
528
528
|
readonly prompt: true;
|
|
529
529
|
} | {
|
|
530
530
|
readonly name: "manage-access";
|
|
@@ -535,7 +535,7 @@ export declare const SPACEFAST_RECIPE_SKILLS: (({
|
|
|
535
535
|
readonly runtimes: readonly ["local", "hosted"];
|
|
536
536
|
readonly tools: readonly ["execute", "resume_execution"];
|
|
537
537
|
readonly docs: readonly ["access-control"];
|
|
538
|
-
readonly instructions: readonly ["Use one bounded `execute` program. Search and describe the access operations before calling them.", "Read current access. Apply the narrowest change for one explicit access intent. Read the resulting access state.", "Run the matching access check in the same program after the mutation resumes.", "If `execute` pauses, follow its `resumePrompt`.
|
|
538
|
+
readonly instructions: readonly ["Use one bounded `execute` program. Search and describe the access operations before calling them.", "Read current access. Apply the narrowest change for one explicit access intent. Read the resulting access state.", "Run the matching access check in the same program after the mutation resumes.", "Before editing an existing Space, read `get_work_mode`. If mode is null, open `show_work_mode` and wait for the user's choice.", "In vibe mode, handle routine source steps internally. Disable configured automatic deployment before committing. Build with `{preview:false,channel:null}`.", "Show the exact ready version as a visual preview. Request publishing approval separately. Do not show code or diff Apps unless asked.", "In code mode, show the existing files, diffs, commit history, and build logs for review. Reuse the saved mode on later requests.", "Describe each selected path with `tools.describe.tool({ path: item.path })`. Read `inputTypeScript` and `outputTypeScript` before calling it.", "Check `result.ok`. The HTTP body is `result.data`; a Spacefast JSON success envelope contains its payload at `result.data.data`.", "If `execute` pauses, follow its `resumePrompt`.", "For an MCP App approval, call `resume_execution` with only the same `executionId` to open the card.", "Wait for the card's user message before calling it again. Browser approval also resumes with only `executionId` after the user acts.", "For an On-Device form approval, send the requested action and content only after the user approves.", "Do not start another program. `resume_execution` continues the saved program.", "Show new Link or machine secrets only to the requesting user. Never store them in logs or committed files."];
|
|
539
539
|
readonly verification: readonly ["Confirm that the access check permits the intended actor and path.", "Test a new Link in the intended signed-out context. Confirm that unrelated resources stay inaccessible."];
|
|
540
540
|
readonly prompt: true;
|
|
541
541
|
}) & {
|