@spacefast/common 0.2.2 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/dist/agents/marketplace-prompts.d.ts +1 -0
  2. package/dist/agents/marketplace-prompts.js +6 -0
  3. package/dist/agents/registry/core.d.ts +4 -12
  4. package/dist/agents/registry/core.js +7 -28
  5. package/dist/config/domains.d.ts +10 -8
  6. package/dist/config/domains.js +4 -7
  7. package/dist/contracts/access-core.d.ts +135 -0
  8. package/dist/contracts/access-core.js +242 -0
  9. package/dist/contracts/access-profiles.d.ts +8 -8
  10. package/dist/contracts/access-profiles.js +8 -8
  11. package/dist/contracts/access.d.ts +14 -103
  12. package/dist/contracts/access.js +10 -210
  13. package/dist/contracts/activity.d.ts +54 -55
  14. package/dist/contracts/activity.js +38 -9
  15. package/dist/contracts/api-keys.d.ts +69 -26
  16. package/dist/contracts/api-keys.js +29 -2
  17. package/dist/contracts/application-journal.d.ts +197 -4
  18. package/dist/contracts/application-journal.js +97 -16
  19. package/dist/contracts/auth.d.ts +20 -0
  20. package/dist/contracts/auth.js +18 -0
  21. package/dist/contracts/beta.d.ts +13 -0
  22. package/dist/contracts/beta.js +28 -0
  23. package/dist/contracts/billing.d.ts +2 -2
  24. package/dist/contracts/bootstrap.d.ts +23 -6
  25. package/dist/contracts/builds.d.ts +18 -4
  26. package/dist/contracts/builds.js +7 -4
  27. package/dist/contracts/channels.d.ts +43 -0
  28. package/dist/contracts/channels.js +22 -6
  29. package/dist/contracts/comments.d.ts +49 -0
  30. package/dist/contracts/comments.js +61 -2
  31. package/dist/contracts/commerce.d.ts +19 -13
  32. package/dist/contracts/connector-access.d.ts +28 -0
  33. package/dist/contracts/connector-access.js +31 -0
  34. package/dist/contracts/connectors.d.ts +2382 -0
  35. package/dist/contracts/connectors.js +941 -0
  36. package/dist/contracts/content-contract-verification.d.ts +112 -58
  37. package/dist/contracts/content-contract-verification.js +42 -54
  38. package/dist/contracts/content-model-emit.d.ts +97 -0
  39. package/dist/contracts/content-model-emit.js +306 -0
  40. package/dist/contracts/content-model-sdk.d.ts +101 -0
  41. package/dist/contracts/content-model-sdk.js +232 -0
  42. package/dist/contracts/{content-program.d.ts → content-model.d.ts} +338 -82
  43. package/dist/contracts/{content-program.js → content-model.js} +291 -63
  44. package/dist/contracts/content-platform-fixture.d.ts +380 -110
  45. package/dist/contracts/content-platform-fixture.js +8 -8
  46. package/dist/contracts/content-sync.d.ts +197 -74
  47. package/dist/contracts/content-sync.js +98 -37
  48. package/dist/contracts/content.d.ts +30 -422
  49. package/dist/contracts/content.js +34 -294
  50. package/dist/contracts/dashboard-prefs.d.ts +10 -3
  51. package/dist/contracts/dashboard-prefs.js +6 -3
  52. package/dist/contracts/data-location.d.ts +9 -0
  53. package/dist/contracts/data-location.js +7 -0
  54. package/dist/contracts/deployment-comparison.d.ts +67 -0
  55. package/dist/contracts/deployment-comparison.js +68 -0
  56. package/dist/contracts/device-auth.d.ts +55 -11
  57. package/dist/contracts/domains.d.ts +40 -16
  58. package/dist/contracts/domains.js +23 -0
  59. package/dist/contracts/enums.d.ts +1 -10
  60. package/dist/contracts/enums.js +0 -15
  61. package/dist/contracts/error-code-meta.d.ts +384 -20
  62. package/dist/contracts/error-code-meta.js +200 -5
  63. package/dist/contracts/error-codes.d.ts +17 -4
  64. package/dist/contracts/error-codes.js +108 -10
  65. package/dist/contracts/events.d.ts +5 -0
  66. package/dist/contracts/events.js +12 -3
  67. package/dist/contracts/execution.d.ts +5 -1
  68. package/dist/contracts/execution.js +4 -0
  69. package/dist/contracts/feature-lifecycle.d.ts +53 -20
  70. package/dist/contracts/feature-lifecycle.js +65 -23
  71. package/dist/contracts/features.d.ts +57 -31
  72. package/dist/contracts/features.js +0 -1
  73. package/dist/contracts/feedback.d.ts +124 -0
  74. package/dist/contracts/feedback.js +64 -0
  75. package/dist/contracts/fixtures/content-model-sdk-v1.generated.d.ts +129 -0
  76. package/dist/contracts/fixtures/content-model-sdk-v1.generated.js +48 -0
  77. package/dist/contracts/fixtures/content-platform-v1.json +101 -49
  78. package/dist/contracts/frame-session.d.ts +60 -10
  79. package/dist/contracts/frame-session.js +52 -12
  80. package/dist/contracts/functions.d.ts +28 -2
  81. package/dist/contracts/functions.js +25 -2
  82. package/dist/contracts/grant-copy.d.ts +2 -0
  83. package/dist/contracts/grant-copy.js +2 -0
  84. package/dist/contracts/grants-core.d.ts +95 -0
  85. package/dist/contracts/grants-core.js +435 -0
  86. package/dist/contracts/grants.d.ts +13 -84
  87. package/dist/contracts/grants.js +21 -369
  88. package/dist/contracts/ids-core.d.ts +11 -0
  89. package/dist/contracts/ids-core.js +14 -0
  90. package/dist/contracts/ids.d.ts +7 -4
  91. package/dist/contracts/ids.js +12 -4
  92. package/dist/contracts/internal.d.ts +18 -0
  93. package/dist/contracts/internal.js +19 -0
  94. package/dist/contracts/mcp.d.ts +8 -18
  95. package/dist/contracts/mcp.js +2 -23
  96. package/dist/contracts/notifications.d.ts +4 -1
  97. package/dist/contracts/notifications.js +1 -0
  98. package/dist/contracts/oauth-resources.d.ts +46 -9
  99. package/dist/contracts/oauth-resources.js +50 -1
  100. package/dist/contracts/oauth-scope-actions.d.ts +27 -3
  101. package/dist/contracts/oauth-scope-actions.js +18 -8
  102. package/dist/contracts/operations.d.ts +1 -1
  103. package/dist/contracts/partner-account.d.ts +629 -0
  104. package/dist/contracts/partner-account.js +18 -0
  105. package/dist/contracts/principal-assertion.d.ts +74 -1
  106. package/dist/contracts/principal-assertion.js +67 -3
  107. package/dist/contracts/publish-archive.d.ts +22 -1
  108. package/dist/contracts/push-new.d.ts +3 -3
  109. package/dist/contracts/push-new.js +1 -1
  110. package/dist/contracts/quotas.js +2 -1
  111. package/dist/contracts/repository-connections.d.ts +10 -6
  112. package/dist/contracts/repository-connections.js +15 -0
  113. package/dist/contracts/resources.d.ts +6 -5
  114. package/dist/contracts/resources.js +7 -0
  115. package/dist/contracts/route-inventory.d.ts +74 -19
  116. package/dist/contracts/route-inventory.js +20 -6
  117. package/dist/contracts/runtime-api.d.ts +415 -4
  118. package/dist/contracts/runtime-api.js +60 -15
  119. package/dist/contracts/runtime-app.d.ts +6 -1
  120. package/dist/contracts/runtime-components.d.ts +646 -18
  121. package/dist/contracts/runtime-components.js +304 -188
  122. package/dist/contracts/runtime-services.d.ts +15 -0
  123. package/dist/contracts/runtime-services.js +25 -0
  124. package/dist/contracts/runtime-storage.d.ts +32 -0
  125. package/dist/contracts/runtime-storage.js +37 -0
  126. package/dist/contracts/source-workspaces.d.ts +511 -0
  127. package/dist/contracts/source-workspaces.js +276 -0
  128. package/dist/contracts/space-config-spacefast.d.ts +394 -0
  129. package/dist/contracts/space-config-spacefast.js +70 -0
  130. package/dist/contracts/space-config.d.ts +177 -90
  131. package/dist/contracts/space-config.js +77 -92
  132. package/dist/contracts/spaces.d.ts +132 -24
  133. package/dist/contracts/spaces.js +77 -13
  134. package/dist/contracts/superadmin-connectors.d.ts +371 -0
  135. package/dist/contracts/superadmin-connectors.js +61 -0
  136. package/dist/contracts/superadmin-emails.d.ts +1 -1
  137. package/dist/contracts/superadmin-emails.js +1 -1
  138. package/dist/contracts/superadmin-entities.d.ts +105 -0
  139. package/dist/contracts/superadmin-entities.js +64 -0
  140. package/dist/contracts/superadmin-runtime.d.ts +35 -116
  141. package/dist/contracts/superadmin-runtime.js +13 -69
  142. package/dist/contracts/superadmin-search.d.ts +12 -14
  143. package/dist/contracts/superadmin-search.js +2 -2
  144. package/dist/contracts/superadmin-spaces.d.ts +15 -72
  145. package/dist/contracts/superadmin-spaces.js +2 -7
  146. package/dist/contracts/superadmin-teams.d.ts +12 -0
  147. package/dist/contracts/superadmin-teams.js +7 -1
  148. package/dist/contracts/superadmin-tenants.d.ts +44 -16
  149. package/dist/contracts/superadmin.d.ts +2 -2
  150. package/dist/contracts/tags.d.ts +12 -12
  151. package/dist/contracts/teams.d.ts +29 -1
  152. package/dist/contracts/teams.js +24 -2
  153. package/dist/contracts/tenants.d.ts +98 -0
  154. package/dist/contracts/tenants.js +20 -0
  155. package/dist/contracts/transfers.d.ts +92 -0
  156. package/dist/contracts/transfers.js +37 -0
  157. package/dist/contracts/usage.d.ts +9 -1
  158. package/dist/contracts/usage.js +2 -0
  159. package/dist/contracts/visual-review.d.ts +448 -0
  160. package/dist/contracts/visual-review.js +156 -0
  161. package/dist/contracts/wordpress-php-toolkit.json +9 -0
  162. package/dist/contracts/work-mode.d.ts +24 -0
  163. package/dist/contracts/work-mode.js +17 -0
  164. package/dist/contracts/wp-cli.d.ts +66 -0
  165. package/dist/contracts/wp-cli.js +68 -0
  166. package/dist/contracts/zero-catalog.d.ts +29 -0
  167. package/dist/contracts/zero-catalog.js +55 -0
  168. package/dist/contracts/zero-platform-abilities.generated.d.ts +31 -0
  169. package/dist/contracts/zero-platform-abilities.generated.js +373 -0
  170. package/dist/contracts/zero-spacefast.d.ts +444 -0
  171. package/dist/contracts/zero-spacefast.js +149 -0
  172. package/dist/contracts/zero-types.d.ts +47 -0
  173. package/dist/contracts/zero-types.js +263 -0
  174. package/dist/contracts/zero.d.ts +781 -14
  175. package/dist/contracts/zero.js +204 -10
  176. package/dist/dashboard-paths/index.d.ts +2 -2
  177. package/dist/dashboard-paths/route-reservations.generated.d.ts +2 -2
  178. package/dist/dashboard-paths/route-reservations.generated.js +5 -0
  179. package/dist/docs/agent-prose.d.ts +1 -1
  180. package/dist/docs/agent-prose.js +15 -18
  181. package/dist/docs/agent-setup.d.ts +1 -1
  182. package/dist/docs/agent-setup.js +5 -13
  183. package/dist/docs/catalog.d.ts +64 -28
  184. package/dist/docs/catalog.js +155 -28
  185. package/dist/docs/error-docs.d.ts +361 -17
  186. package/dist/docs/error-docs.js +365 -21
  187. package/dist/docs/reference-urls.js +1 -1
  188. package/dist/docs/skills.d.ts +84 -84
  189. package/dist/docs/skills.js +66 -47
  190. package/dist/docs/start-prompts.d.ts +14 -0
  191. package/dist/docs/start-prompts.js +20 -0
  192. package/dist/utils/account-labels.d.ts +7 -0
  193. package/dist/utils/account-labels.js +15 -0
  194. package/dist/utils/auth.d.ts +1 -0
  195. package/dist/utils/auth.js +1 -0
  196. package/dist/utils/credential-policy.d.ts +22 -1
  197. package/dist/utils/credential-policy.js +55 -6
  198. package/dist/utils/local-space-state.d.ts +7 -0
  199. package/dist/utils/local-space-state.js +7 -0
  200. package/dist/utils/logger.d.ts +34 -0
  201. package/dist/utils/logger.js +144 -0
  202. package/dist/utils/page-routes.d.ts +9 -0
  203. package/dist/utils/page-routes.js +82 -0
  204. package/dist/utils/pages.d.ts +2 -0
  205. package/dist/utils/pages.js +7 -0
  206. package/dist/utils/publish-form-data.d.ts +2 -0
  207. package/dist/utils/publish-form-data.js +2 -0
  208. package/dist/utils/publish-policy-spacefast.d.ts +13 -0
  209. package/dist/utils/publish-policy-spacefast.js +117 -0
  210. package/dist/utils/publish-policy.d.ts +22 -16
  211. package/dist/utils/publish-policy.fixtures.json +15 -0
  212. package/dist/utils/publish-policy.js +62 -139
  213. package/dist/utils/query-client.js +9 -1
  214. package/dist/utils/runtime-upload.d.ts +4 -0
  215. package/dist/utils/runtime-upload.js +5 -0
  216. package/dist/utils/space-config.d.ts +2 -3
  217. package/dist/utils/space-config.js +1 -1
  218. package/dist/utils/uploaded-source.d.ts +4 -0
  219. package/dist/utils/uploaded-source.js +12 -0
  220. package/dist/visual-review.d.ts +4 -0
  221. package/dist/visual-review.js +208 -0
  222. package/dist/vocabulary.d.ts +38 -0
  223. package/dist/vocabulary.js +55 -0
  224. package/package.json +7 -2
  225. package/dist/agents/registry/deeplink-probes.d.ts +0 -23
  226. package/dist/agents/registry/deeplink-probes.js +0 -18
@@ -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", "show_space_deployments"];
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` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
33
- readonly verification: readonly ["Call `show_space_deployments` with `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.", "Open the live URL. Verify the main page, navigation, assets, responsive layout, and primary call to action."];
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 work directly inside the configured local workspace root and publish a local build path.";
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", "show_space_deployments"];
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` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "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 ["Call `show_space_deployments` with `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.", "Open the live URL. Verify representative content and assets before reporting success."];
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", "show_space_deployments", "execute", "resume_execution"];
89
+ readonly tools: readonly ["publish", "operation_status", "show_space", "execute", "resume_execution"];
90
90
  readonly docs: readonly ["builds", "access-control"];
91
- readonly instructions: readonly ["Call `publish` once for an explicit non-production space or channel. Do not change the production target.", "If `publish.result.status` is `publishing`, call `operation_status` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "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.", "If `execute` pauses, follow its `resumePrompt`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` program.", "Label the preview with its branch, change, or pull request. Report what is out of scope."];
92
- readonly verification: readonly ["Call `show_space_deployments` for each affected Space. Confirm that the preview changed. Confirm that production did not change.", "Test the reviewer Link in a signed-out context. Report its scope and expiry."];
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.", "When account credentials are available, use one bounded `execute` program. Search and describe the claim operation before calling it.", "Pass only the required team ID and expected space ID.", "After the claim resumes, read the space in the same program. Return its owner and claim state.", "If `execute` pauses, follow its `resumePrompt`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` program.", "Otherwise, ask the user to use the claim action in the publish card.", "After a browser claim, call `publish` again from On-Device. It exchanges the locally held credential without exposing it.", "If `publish.result.status` is `publishing`, call `operation_status` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "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.", "Confirm that the republish uses durable access without a raw credential."];
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 ["show_space_deployments", "execute", "resume_execution"];
117
+ readonly tools: readonly ["show_space", "execute", "resume_execution"];
118
118
  readonly docs: readonly ["versions-and-rollback"];
119
- readonly instructions: readonly ["Call `show_space_deployments`. 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.", "If `execute` pauses, follow its `resumePrompt`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` program."];
120
- readonly verification: readonly ["Call `show_space_deployments`. Confirm that the selected version is current and ready.", "Open the live URL. Verify that the failing path or behavior works again."];
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 ["show_space_domains", "execute", "resume_execution"];
129
+ readonly tools: readonly ["show_space", "execute", "resume_execution"];
130
130
  readonly docs: readonly ["custom-domains", "recipes/migrate-dns"];
131
- readonly instructions: readonly ["Call `show_space_domains`. 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.", "If `execute` pauses, follow its `resumePrompt`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` 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_domains`. Report the current verification state.", "Open the HTTPS URL only after DNS and certificate states are ready. Verify representative content."];
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", "show_space_deployments"];
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` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
149
- readonly verification: readonly ["Call `show_space_deployments` with `space: publish.result.receipt.space.id`. Confirm that the new version is current and ready.", "Request representative old and new paths and confirm the exact status and Location header.", "Verify the final target serves successfully and unrelated assets are not redirected."];
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 ["show_space_domains", "execute", "resume_execution"];
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 `show_space_domains`. 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.", "If `execute` pauses, follow its `resumePrompt`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` 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_domains`. 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."];
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 ["show_space_deployments", "execute", "publish", "operation_status"];
178
+ readonly tools: readonly ["show_space", "execute", "resume_execution", "publish", "operation_status"];
179
179
  readonly docs: readonly ["troubleshooting"];
180
- readonly instructions: readonly ["Call `show_space_deployments`. 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.", "If `publish.result.status` is `publishing`, call `operation_status` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
181
- readonly verification: readonly ["Call `show_space_deployments` with `space: publish.result.receipt.space.id`. Confirm that the new version is current and ready.", "Open the affected live path. Verify that the concrete failure does not occur."];
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`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` program.", "Show new Link or machine secrets only to the requesting user. Never store them in logs or committed files."];
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", "show_space_deployments"];
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` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
206
- readonly verification: readonly ["Call `show_space_deployments` with `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.", "Open the live URL. Verify the main page, navigation, assets, responsive layout, and primary call to action."];
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 work directly inside the configured local workspace root and publish a local build path.";
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", "show_space_deployments"];
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` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "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 ["Call `show_space_deployments` with `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.", "Open the live URL. Verify representative content and assets before reporting success."];
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", "show_space_deployments", "execute", "resume_execution"];
262
+ readonly tools: readonly ["publish", "operation_status", "show_space", "execute", "resume_execution"];
263
263
  readonly docs: readonly ["builds", "access-control"];
264
- readonly instructions: readonly ["Call `publish` once for an explicit non-production space or channel. Do not change the production target.", "If `publish.result.status` is `publishing`, call `operation_status` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "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.", "If `execute` pauses, follow its `resumePrompt`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` program.", "Label the preview with its branch, change, or pull request. Report what is out of scope."];
265
- readonly verification: readonly ["Call `show_space_deployments` for each affected Space. Confirm that the preview changed. Confirm that production did not change.", "Test the reviewer Link in a signed-out context. Report its scope and expiry."];
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.", "When account credentials are available, use one bounded `execute` program. Search and describe the claim operation before calling it.", "Pass only the required team ID and expected space ID.", "After the claim resumes, read the space in the same program. Return its owner and claim state.", "If `execute` pauses, follow its `resumePrompt`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` program.", "Otherwise, ask the user to use the claim action in the publish card.", "After a browser claim, call `publish` again from On-Device. It exchanges the locally held credential without exposing it.", "If `publish.result.status` is `publishing`, call `operation_status` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "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.", "Confirm that the republish uses durable access without a raw credential."];
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 ["show_space_deployments", "execute", "resume_execution"];
290
+ readonly tools: readonly ["show_space", "execute", "resume_execution"];
291
291
  readonly docs: readonly ["versions-and-rollback"];
292
- readonly instructions: readonly ["Call `show_space_deployments`. 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.", "If `execute` pauses, follow its `resumePrompt`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` program."];
293
- readonly verification: readonly ["Call `show_space_deployments`. Confirm that the selected version is current and ready.", "Open the live URL. Verify that the failing path or behavior works again."];
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 ["show_space_domains", "execute", "resume_execution"];
302
+ readonly tools: readonly ["show_space", "execute", "resume_execution"];
303
303
  readonly docs: readonly ["custom-domains", "recipes/migrate-dns"];
304
- readonly instructions: readonly ["Call `show_space_domains`. 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.", "If `execute` pauses, follow its `resumePrompt`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` 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_domains`. Report the current verification state.", "Open the HTTPS URL only after DNS and certificate states are ready. Verify representative content."];
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", "show_space_deployments"];
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` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
322
- readonly verification: readonly ["Call `show_space_deployments` with `space: publish.result.receipt.space.id`. Confirm that the new version is current and ready.", "Request representative old and new paths and confirm the exact status and Location header.", "Verify the final target serves successfully and unrelated assets are not redirected."];
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 ["show_space_domains", "execute", "resume_execution"];
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 `show_space_domains`. 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.", "If `execute` pauses, follow its `resumePrompt`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` 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_domains`. 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."];
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 ["show_space_deployments", "execute", "publish", "operation_status"];
351
+ readonly tools: readonly ["show_space", "execute", "resume_execution", "publish", "operation_status"];
352
352
  readonly docs: readonly ["troubleshooting"];
353
- readonly instructions: readonly ["Call `show_space_deployments`. 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.", "If `publish.result.status` is `publishing`, call `operation_status` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
354
- readonly verification: readonly ["Call `show_space_deployments` with `space: publish.result.receipt.space.id`. Confirm that the new version is current and ready.", "Open the affected live path. Verify that the concrete failure does not occur."];
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`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` program.", "Show new Link or machine secrets only to the requesting user. Never store them in logs or committed files."];
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", "show_space_deployments"];
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` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
379
- readonly verification: readonly ["Call `show_space_deployments` with `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.", "Open the live URL. Verify the main page, navigation, assets, responsive layout, and primary call to action."];
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 work directly inside the configured local workspace root and publish a local build path.";
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", "show_space_deployments"];
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` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "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 ["Call `show_space_deployments` with `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.", "Open the live URL. Verify representative content and assets before reporting success."];
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", "show_space_deployments", "execute", "resume_execution"];
435
+ readonly tools: readonly ["publish", "operation_status", "show_space", "execute", "resume_execution"];
436
436
  readonly docs: readonly ["builds", "access-control"];
437
- readonly instructions: readonly ["Call `publish` once for an explicit non-production space or channel. Do not change the production target.", "If `publish.result.status` is `publishing`, call `operation_status` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "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.", "If `execute` pauses, follow its `resumePrompt`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` program.", "Label the preview with its branch, change, or pull request. Report what is out of scope."];
438
- readonly verification: readonly ["Call `show_space_deployments` for each affected Space. Confirm that the preview changed. Confirm that production did not change.", "Test the reviewer Link in a signed-out context. Report its scope and expiry."];
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.", "When account credentials are available, use one bounded `execute` program. Search and describe the claim operation before calling it.", "Pass only the required team ID and expected space ID.", "After the claim resumes, read the space in the same program. Return its owner and claim state.", "If `execute` pauses, follow its `resumePrompt`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` program.", "Otherwise, ask the user to use the claim action in the publish card.", "After a browser claim, call `publish` again from On-Device. It exchanges the locally held credential without exposing it.", "If `publish.result.status` is `publishing`, call `operation_status` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "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.", "Confirm that the republish uses durable access without a raw credential."];
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 ["show_space_deployments", "execute", "resume_execution"];
463
+ readonly tools: readonly ["show_space", "execute", "resume_execution"];
464
464
  readonly docs: readonly ["versions-and-rollback"];
465
- readonly instructions: readonly ["Call `show_space_deployments`. 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.", "If `execute` pauses, follow its `resumePrompt`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` program."];
466
- readonly verification: readonly ["Call `show_space_deployments`. Confirm that the selected version is current and ready.", "Open the live URL. Verify that the failing path or behavior works again."];
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 ["show_space_domains", "execute", "resume_execution"];
475
+ readonly tools: readonly ["show_space", "execute", "resume_execution"];
476
476
  readonly docs: readonly ["custom-domains", "recipes/migrate-dns"];
477
- readonly instructions: readonly ["Call `show_space_domains`. 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.", "If `execute` pauses, follow its `resumePrompt`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` 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_domains`. Report the current verification state.", "Open the HTTPS URL only after DNS and certificate states are ready. Verify representative content."];
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", "show_space_deployments"];
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` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
495
- readonly verification: readonly ["Call `show_space_deployments` with `space: publish.result.receipt.space.id`. Confirm that the new version is current and ready.", "Request representative old and new paths and confirm the exact status and Location header.", "Verify the final target serves successfully and unrelated assets are not redirected."];
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 ["show_space_domains", "execute", "resume_execution"];
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 `show_space_domains`. 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.", "If `execute` pauses, follow its `resumePrompt`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` 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_domains`. 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."];
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 ["show_space_deployments", "execute", "publish", "operation_status"];
524
+ readonly tools: readonly ["show_space", "execute", "resume_execution", "publish", "operation_status"];
525
525
  readonly docs: readonly ["troubleshooting"];
526
- readonly instructions: readonly ["Call `show_space_deployments`. 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.", "If `publish.result.status` is `publishing`, call `operation_status` with `publish.result.job.poll.operationId`.", "Call `operation_status` again only while `operation_status.result.done` is false.", "Continue only when `operation_status.result.status` is `succeeded`.", "Report `failed` or `canceled` and stop."];
527
- readonly verification: readonly ["Call `show_space_deployments` with `space: publish.result.receipt.space.id`. Confirm that the new version is current and ready.", "Open the affected live path. Verify that the concrete failure does not occur."];
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`. Then call `resume_execution` with the returned `executionId`.", "Do not start another `execute` program.", "Show new Link or machine secrets only to the requesting user. Never store them in logs or committed files."];
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
  }) & {