@spacefast/common 0.0.12 → 0.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/client-registry.d.ts +22 -0
- package/dist/agents/client-registry.js +41 -0
- package/dist/agents/connect-targets.d.ts +51 -6
- package/dist/agents/connect-targets.js +93 -28
- package/dist/brand.d.ts +0 -11
- package/dist/brand.js +0 -20
- package/dist/config/domains.d.ts +15 -6
- package/dist/config/domains.js +24 -10
- package/dist/config/postgres-budget.d.ts +3 -0
- package/dist/config/postgres-budget.js +6 -1
- package/dist/config/postgres-budget.json +2 -1
- package/dist/contracts/abuse.js +1 -1
- package/dist/contracts/access.d.ts +486 -1196
- package/dist/contracts/access.js +323 -1054
- package/dist/contracts/activity.d.ts +1 -1
- package/dist/contracts/activity.js +11 -15
- package/dist/contracts/api-keys.d.ts +16 -0
- package/dist/contracts/api-keys.js +11 -9
- package/dist/contracts/archives.d.ts +1 -2
- package/dist/contracts/archives.js +15 -17
- package/dist/contracts/beta.js +1 -1
- package/dist/contracts/builds.js +14 -14
- package/dist/contracts/channels.js +2 -2
- package/dist/contracts/comments.d.ts +143 -99
- package/dist/contracts/comments.js +194 -79
- package/dist/contracts/common.d.ts +12 -12
- package/dist/contracts/common.js +33 -30
- package/dist/contracts/continuation.js +5 -5
- package/dist/contracts/countries.js +2 -7
- package/dist/contracts/data-source-routes.d.ts +20 -0
- package/dist/contracts/data-source-routes.js +15 -0
- package/dist/contracts/device-auth.d.ts +13 -9
- package/dist/contracts/device-auth.js +12 -12
- package/dist/contracts/docs.d.ts +10 -10
- package/dist/contracts/domains.js +39 -33
- package/dist/contracts/enums.d.ts +4 -14
- package/dist/contracts/enums.js +3 -10
- package/dist/contracts/error-code-meta.d.ts +122 -56
- package/dist/contracts/error-code-meta.js +43 -19
- package/dist/contracts/error-codes.d.ts +7 -4
- package/dist/contracts/error-codes.js +48 -24
- package/dist/contracts/events.d.ts +22 -15
- package/dist/contracts/events.js +33 -5
- package/dist/contracts/execution.d.ts +238 -0
- package/dist/contracts/execution.js +309 -0
- package/dist/contracts/feature-lifecycle.d.ts +39 -188
- package/dist/contracts/feature-lifecycle.js +52 -196
- package/dist/contracts/features.d.ts +13 -115
- package/dist/contracts/features.js +5 -35
- package/dist/contracts/functions.d.ts +597 -0
- package/dist/contracts/functions.js +475 -0
- package/dist/contracts/grants.d.ts +1175 -0
- package/dist/contracts/grants.js +783 -0
- package/dist/contracts/ids.d.ts +7 -5
- package/dist/contracts/ids.js +7 -7
- package/dist/contracts/internal.js +2 -2
- package/dist/contracts/mcp.d.ts +17 -556
- package/dist/contracts/mcp.js +9 -103
- package/dist/contracts/me.js +3 -4
- package/dist/contracts/notifications.d.ts +108 -0
- package/dist/contracts/notifications.js +54 -0
- package/dist/contracts/oauth-resources.d.ts +22 -5
- package/dist/contracts/oauth-resources.js +23 -2
- package/dist/contracts/operations.d.ts +0 -48
- package/dist/contracts/operations.js +0 -19
- package/dist/contracts/pages.d.ts +10 -14
- package/dist/contracts/pages.js +17 -21
- package/dist/contracts/plan-policy.d.ts +1 -8
- package/dist/contracts/plan-policy.js +1 -4
- package/dist/contracts/platform.d.ts +78 -30
- package/dist/contracts/platform.js +69 -20
- package/dist/contracts/problem-document.d.ts +14 -0
- package/dist/contracts/problem-document.js +35 -0
- package/dist/contracts/push-new.d.ts +41 -2
- package/dist/contracts/push-new.js +4 -0
- package/dist/contracts/quotas.d.ts +0 -1
- package/dist/contracts/quotas.js +0 -5
- package/dist/contracts/repository-connections.d.ts +1 -1
- package/dist/contracts/resources.d.ts +16 -71
- package/dist/contracts/resources.js +13 -16
- package/dist/contracts/runtime-api.d.ts +666 -303
- package/dist/contracts/runtime-api.js +272 -113
- package/dist/contracts/runtime-app.d.ts +168 -0
- package/dist/contracts/runtime-app.js +42 -0
- package/dist/contracts/runtime-db.d.ts +424 -0
- package/dist/contracts/runtime-db.js +108 -0
- package/dist/contracts/runtime-storage.d.ts +120 -0
- package/dist/contracts/runtime-storage.js +40 -0
- package/dist/contracts/sf-config-v1.d.ts +54 -1
- package/dist/contracts/sf-config-v1.js +2 -2
- package/dist/contracts/sites.d.ts +6 -0
- package/dist/contracts/sites.js +30 -11
- package/dist/contracts/space-config.d.ts +91 -121
- package/dist/contracts/space-config.js +464 -42
- package/dist/contracts/spaces.d.ts +300 -171
- package/dist/contracts/spaces.js +128 -98
- package/dist/contracts/superadmin-emails.d.ts +2 -2
- package/dist/contracts/superadmin-spaces.d.ts +26 -130
- package/dist/contracts/superadmin-spaces.js +22 -0
- package/dist/contracts/superadmin-tenants.js +4 -4
- package/dist/contracts/superadmin.d.ts +4 -0
- package/dist/contracts/superadmin.js +14 -1
- package/dist/contracts/tags.d.ts +6 -6
- package/dist/contracts/tags.js +1 -1
- package/dist/contracts/teams.d.ts +9 -9
- package/dist/contracts/teams.js +25 -16
- package/dist/contracts/theme-json.js +1 -1
- package/dist/contracts/transfers.d.ts +0 -1
- package/dist/contracts/transfers.js +4 -4
- package/dist/contracts/variables.js +3 -3
- package/dist/contracts/zero.d.ts +384 -596
- package/dist/contracts/zero.js +167 -299
- package/dist/dashboard-paths/index.d.ts +18 -3
- package/dist/dashboard-paths/index.js +19 -0
- package/dist/docs/agent-handoff-document.d.ts +2 -2
- package/dist/docs/agent-handoff-document.js +8 -7
- package/dist/docs/agent-prose.d.ts +22 -3
- package/dist/docs/agent-prose.js +227 -55
- package/dist/docs/agent-setup.d.ts +14 -11
- package/dist/docs/agent-setup.js +289 -61
- package/dist/docs/agent-solutions.d.ts +6 -6
- package/dist/docs/agent-solutions.js +24 -22
- package/dist/docs/catalog.d.ts +53 -98
- package/dist/docs/catalog.js +90 -117
- package/dist/docs/error-docs.js +304 -236
- package/dist/docs/skill-distribution.d.ts +2 -0
- package/dist/docs/skill-distribution.js +7 -4
- package/dist/docs/skills.d.ts +546 -0
- package/dist/docs/skills.js +340 -0
- package/dist/utils/auth-redirect.d.ts +1 -3
- package/dist/utils/auth-redirect.js +1 -21
- package/dist/utils/browser-credential.d.ts +19 -0
- package/dist/utils/browser-credential.js +62 -0
- package/dist/utils/build-settings.d.ts +2 -0
- package/dist/utils/build-settings.js +61 -9
- package/dist/utils/comment-avatars.d.ts +7 -0
- package/dist/utils/comment-avatars.js +42 -0
- package/dist/utils/content-type.d.ts +3 -3
- package/dist/utils/content-type.js +38 -61
- package/dist/utils/credential-policy.d.ts +1 -1
- package/dist/utils/credential-policy.js +4 -0
- package/dist/utils/domain-diagnostics.d.ts +5 -5
- package/dist/utils/domain-diagnostics.js +21 -10
- package/dist/utils/egress-policy.fixtures.json +1 -1
- package/dist/utils/grants.d.ts +53 -0
- package/dist/utils/grants.js +160 -0
- package/dist/utils/local-space-state.d.ts +78 -4
- package/dist/utils/local-space-state.js +384 -82
- package/dist/utils/one-shot-replay.d.ts +14 -0
- package/dist/utils/one-shot-replay.js +21 -0
- package/dist/utils/page-preview.d.ts +7 -0
- package/dist/utils/page-preview.js +9 -0
- package/dist/utils/pages.d.ts +2 -5
- package/dist/utils/pages.js +64 -33
- package/dist/utils/publish-form-data.d.ts +22 -0
- package/dist/utils/publish-form-data.js +26 -0
- package/dist/utils/publish-policy.d.ts +34 -4
- package/dist/utils/publish-policy.js +149 -62
- package/dist/utils/query-keys.d.ts +8 -10
- package/dist/utils/query-keys.js +14 -10
- package/dist/utils/runtime-paths.d.ts +3 -0
- package/dist/utils/runtime-paths.js +7 -0
- package/dist/utils/secure-local-file.d.ts +73 -0
- package/dist/utils/secure-local-file.js +1373 -0
- package/dist/utils/space-config.d.ts +17 -4
- package/dist/utils/space-config.js +151 -8
- package/dist/utils/static-runtime-policy.d.ts +5 -0
- package/dist/utils/static-runtime-policy.js +54 -10
- package/dist/utils/storage-policy.d.ts +20 -0
- package/dist/utils/storage-policy.fixtures.json +174 -0
- package/dist/utils/storage-policy.js +193 -0
- package/dist/utils/upload-session.d.ts +15 -1
- package/dist/utils/upload-session.js +68 -2
- package/dist/utils/version-file-browser.d.ts +13 -0
- package/dist/utils/version-file-browser.js +59 -0
- package/package.json +20 -1
- package/dist/contracts/mounts.d.ts +0 -142
- package/dist/contracts/mounts.js +0 -56
- package/dist/utils/access-grant.d.ts +0 -14
- package/dist/utils/access-grant.js +0 -88
- package/dist/utils/access-match.d.ts +0 -46
- package/dist/utils/access-match.fixtures.json +0 -513
- package/dist/utils/access-match.js +0 -312
- package/dist/utils/access-verdict.fixtures.json +0 -421
- package/dist/utils/asset-fingerprint.d.ts +0 -53
- package/dist/utils/asset-fingerprint.js +0 -574
- package/dist/utils/sf-config-v1.d.ts +0 -2
- package/dist/utils/sf-config-v1.fixtures.json +0 -9
- package/dist/utils/sf-config-v1.js +0 -551
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { BRAND } from "../brand.js";
|
|
2
|
+
import { DOCS_BASE_URL, serviceOrigin } from "../config/domains.js";
|
|
2
3
|
import { agentSetupPrompt, agentSetupTextUrl, agentSetupUrl } from "./agent-setup.js";
|
|
3
4
|
import { spacefastClaudePluginAddCommand, spacefastClaudePluginInstallCommand, spacefastCodexSkillInstallCommand, spacefastInstallCurlCommand, } from "./skill-distribution.js";
|
|
4
5
|
export const hostedMcpEndpointUrl = "https://mcp.spacefast.com";
|
|
6
|
+
const WEBSITE_ORIGIN = serviceOrigin("www", "prod");
|
|
5
7
|
function pluginText(label, commands, guideUrl) {
|
|
6
8
|
return [
|
|
7
9
|
`Set up ${BRAND.productName} for ${label}.`,
|
|
@@ -22,9 +24,9 @@ function hostedMcpText(label, guideUrl) {
|
|
|
22
24
|
"Transport: Streamable HTTP",
|
|
23
25
|
"Resource: https://mcp.spacefast.com",
|
|
24
26
|
"Minimum scope: mcp:tools",
|
|
25
|
-
"Common scopes: teams:read teams:create spaces:read spaces:write publish:write domains:read domains:write",
|
|
27
|
+
"Common scopes: teams:read teams:create spaces:read spaces:write spaces:rename publish:write domains:read domains:write",
|
|
26
28
|
"",
|
|
27
|
-
"Hosted MCP is for cloud/browser agents.
|
|
29
|
+
"Hosted MCP is for cloud/browser agents. Publish small generated files inline or use signed uploads for larger artifacts; it has no filesystem.",
|
|
28
30
|
`Guide: ${guideUrl}`,
|
|
29
31
|
`Plain-text setup contract: ${agentSetupTextUrl}`,
|
|
30
32
|
].join("\n");
|
|
@@ -51,9 +53,9 @@ export const agentSolutions = [
|
|
|
51
53
|
summary: "Recommended: Codex plugin.",
|
|
52
54
|
description: `Install the ${BRAND.productName} skill/plugin so Codex can publish, update, and inspect spaces from the same setup path.`,
|
|
53
55
|
commands: [spacefastCodexSkillInstallCommand],
|
|
54
|
-
guideUrl: `${
|
|
55
|
-
detailGuideUrl: `${
|
|
56
|
-
setupText: pluginText("Codex", [spacefastCodexSkillInstallCommand], `${
|
|
56
|
+
guideUrl: `${WEBSITE_ORIGIN}/for-codex`,
|
|
57
|
+
detailGuideUrl: `${WEBSITE_ORIGIN}/guides/how-to-use-with-codex`,
|
|
58
|
+
setupText: pluginText("Codex", [spacefastCodexSkillInstallCommand], `${WEBSITE_ORIGIN}/for-codex`),
|
|
57
59
|
},
|
|
58
60
|
{
|
|
59
61
|
id: "claude-code",
|
|
@@ -63,9 +65,9 @@ export const agentSolutions = [
|
|
|
63
65
|
summary: "Recommended: Claude plugin.",
|
|
64
66
|
description: `Install the ${BRAND.productName} Claude plugin once, then Claude Code can publish and operate spaces from the terminal.`,
|
|
65
67
|
commands: [spacefastClaudePluginAddCommand, spacefastClaudePluginInstallCommand],
|
|
66
|
-
guideUrl: `${
|
|
67
|
-
detailGuideUrl: `${
|
|
68
|
-
setupText: pluginText("Claude Code", [spacefastClaudePluginAddCommand, spacefastClaudePluginInstallCommand], `${
|
|
68
|
+
guideUrl: `${WEBSITE_ORIGIN}/for-claude`,
|
|
69
|
+
detailGuideUrl: `${WEBSITE_ORIGIN}/guides/how-to-use-with-claude-code`,
|
|
70
|
+
setupText: pluginText("Claude Code", [spacefastClaudePluginAddCommand, spacefastClaudePluginInstallCommand], `${WEBSITE_ORIGIN}/guides/how-to-use-with-claude-code`),
|
|
69
71
|
},
|
|
70
72
|
{
|
|
71
73
|
id: "claude-cowork",
|
|
@@ -75,9 +77,9 @@ export const agentSolutions = [
|
|
|
75
77
|
summary: "Recommended: Claude plugin.",
|
|
76
78
|
description: `Use the ${BRAND.productName} Claude plugin path so Cowork gets the same publish instructions and MCP-aware setup as Claude Code.`,
|
|
77
79
|
commands: [spacefastClaudePluginAddCommand, spacefastClaudePluginInstallCommand],
|
|
78
|
-
guideUrl: `${
|
|
79
|
-
detailGuideUrl: `${
|
|
80
|
-
setupText: pluginText("Claude Cowork", [spacefastClaudePluginAddCommand, spacefastClaudePluginInstallCommand, agentSetupPrompt], `${
|
|
80
|
+
guideUrl: `${WEBSITE_ORIGIN}/for-claude`,
|
|
81
|
+
detailGuideUrl: `${WEBSITE_ORIGIN}/guides/how-to-use-with-claude-cowork`,
|
|
82
|
+
setupText: pluginText("Claude Cowork", [spacefastClaudePluginAddCommand, spacefastClaudePluginInstallCommand, agentSetupPrompt], `${WEBSITE_ORIGIN}/guides/how-to-use-with-claude-cowork`),
|
|
81
83
|
},
|
|
82
84
|
{
|
|
83
85
|
id: "chatgpt",
|
|
@@ -85,10 +87,10 @@ export const agentSolutions = [
|
|
|
85
87
|
aliases: ["chatgpt", "custom gpt", "openai apps"],
|
|
86
88
|
lane: "hosted-mcp",
|
|
87
89
|
summary: "Recommended: direct hosted MCP.",
|
|
88
|
-
description: `Connect ChatGPT-style cloud agents to ${BRAND.productName} through hosted MCP; use
|
|
90
|
+
description: `Connect ChatGPT-style cloud agents to ${BRAND.productName} through hosted MCP; use inline files or signed uploads instead of local paths.`,
|
|
89
91
|
commands: [hostedMcpEndpointUrl],
|
|
90
|
-
guideUrl: `${
|
|
91
|
-
setupText: hostedMcpText("ChatGPT", `${
|
|
92
|
+
guideUrl: `${DOCS_BASE_URL}/getting-started/agents`,
|
|
93
|
+
setupText: hostedMcpText("ChatGPT", `${DOCS_BASE_URL}/getting-started/agents`),
|
|
92
94
|
},
|
|
93
95
|
{
|
|
94
96
|
id: "claude-ai",
|
|
@@ -98,8 +100,8 @@ export const agentSolutions = [
|
|
|
98
100
|
summary: "Recommended: direct hosted MCP.",
|
|
99
101
|
description: `Connect the web Claude app to ${BRAND.productName} through hosted MCP when it cannot read your local checkout.`,
|
|
100
102
|
commands: [hostedMcpEndpointUrl],
|
|
101
|
-
guideUrl: `${
|
|
102
|
-
setupText: hostedMcpText("Claude.ai", `${
|
|
103
|
+
guideUrl: `${DOCS_BASE_URL}/getting-started/agents`,
|
|
104
|
+
setupText: hostedMcpText("Claude.ai", `${DOCS_BASE_URL}/getting-started/agents`),
|
|
103
105
|
},
|
|
104
106
|
{
|
|
105
107
|
id: "raycast",
|
|
@@ -109,8 +111,8 @@ export const agentSolutions = [
|
|
|
109
111
|
summary: "Recommended: direct hosted MCP.",
|
|
110
112
|
description: `Use hosted MCP for Raycast and similar clients that can connect to a remote MCP server but should not need a local ${BRAND.productName} install.`,
|
|
111
113
|
commands: [hostedMcpEndpointUrl],
|
|
112
|
-
guideUrl: `${
|
|
113
|
-
setupText: hostedMcpText("Raycast", `${
|
|
114
|
+
guideUrl: `${DOCS_BASE_URL}/getting-started/agents`,
|
|
115
|
+
setupText: hostedMcpText("Raycast", `${DOCS_BASE_URL}/getting-started/agents`),
|
|
114
116
|
},
|
|
115
117
|
{
|
|
116
118
|
id: "cursor",
|
|
@@ -123,8 +125,8 @@ export const agentSolutions = [
|
|
|
123
125
|
"sf setup agent --agent auto --connect",
|
|
124
126
|
"sf mcp install --agent auto --mode local --transport stdio --connect",
|
|
125
127
|
],
|
|
126
|
-
guideUrl: `${
|
|
127
|
-
setupText: localMcpText("Cursor or another MCP client", `${
|
|
128
|
+
guideUrl: `${DOCS_BASE_URL}/getting-started/agents`,
|
|
129
|
+
setupText: localMcpText("Cursor or another MCP client", `${DOCS_BASE_URL}/getting-started/agents`),
|
|
128
130
|
},
|
|
129
131
|
{
|
|
130
132
|
id: "terminal",
|
|
@@ -134,12 +136,12 @@ export const agentSolutions = [
|
|
|
134
136
|
summary: `Recommended: ${BRAND.productName} CLI.`,
|
|
135
137
|
description: "Use the CLI for repeat publishes, CI jobs, JSON output, rollback, logs, and domains.",
|
|
136
138
|
commands: [spacefastInstallCurlCommand, "sf login", "sf publish {file-or-dir} --json"],
|
|
137
|
-
guideUrl: `${
|
|
139
|
+
guideUrl: `${DOCS_BASE_URL}/cli`,
|
|
138
140
|
setupText: [
|
|
139
141
|
`Install CLI: ${spacefastInstallCurlCommand}`,
|
|
140
142
|
"Login: sf login",
|
|
141
143
|
"Publish: sf publish {file-or-dir} --json",
|
|
142
|
-
`Guide: ${
|
|
144
|
+
`Guide: ${DOCS_BASE_URL}/cli`,
|
|
143
145
|
].join("\n"),
|
|
144
146
|
},
|
|
145
147
|
{
|
package/dist/docs/catalog.d.ts
CHANGED
|
@@ -42,6 +42,15 @@ export declare const DOCS_CATALOG: readonly [{
|
|
|
42
42
|
readonly keywords: readonly ["publish", "go live", "upload", "release", "static"];
|
|
43
43
|
readonly url: "https://spacefast.com/docs/publishing";
|
|
44
44
|
readonly body: "`sf publish` snapshots your output directory into an immutable version and promotes it to the production channel. Use `--no-wait` to return before serving finishes.";
|
|
45
|
+
}, {
|
|
46
|
+
readonly slug: "spaces/rename";
|
|
47
|
+
readonly title: "Rename a space";
|
|
48
|
+
readonly kind: "guide";
|
|
49
|
+
readonly tier: "full";
|
|
50
|
+
readonly summary: "Change a space slug and its managed view.fast address without breaking old links.";
|
|
51
|
+
readonly keywords: readonly ["space", "rename", "slug", "view.fast", "redirect", "managed hostname"];
|
|
52
|
+
readonly url: "https://spacefast.com/docs/spaces/rename";
|
|
53
|
+
readonly body: "Run `sf spaces update --space <space> --slug <new-slug> --wait`, or PATCH `/v1/spaces/{spaceId}` with `{ \"slug\": \"<new-slug>\" }`. The managed view.fast hostname changes with the slug. Former managed addresses and branch aliases redirect directly to their current counterparts with a temporary, path- and query-preserving 307 for the life of the space unless an operator explicitly releases them. Custom domains stay attached, and immutable version URLs do not change.";
|
|
45
54
|
}, {
|
|
46
55
|
readonly slug: "versions-and-rollback";
|
|
47
56
|
readonly title: "Versions and rollback";
|
|
@@ -83,10 +92,10 @@ export declare const DOCS_CATALOG: readonly [{
|
|
|
83
92
|
readonly title: "Publish receipt fields";
|
|
84
93
|
readonly kind: "workflow";
|
|
85
94
|
readonly tier: "full";
|
|
86
|
-
readonly summary: "Use the receipt as the source of truth
|
|
95
|
+
readonly summary: "Use the receipt as the source of truth. Present open.url and claim.url as the two user-facing links; liveUrl and immutableUrl identify resources for automation.";
|
|
87
96
|
readonly keywords: readonly ["receipt", "share", "claim", "diagnostics"];
|
|
88
97
|
readonly url: "https://spacefast.com/docs/api#publish";
|
|
89
|
-
readonly body: "receipt liveUrl immutableUrl
|
|
98
|
+
readonly body: "receipt liveUrl open url immutableUrl claim expiresAt diagnostics links finalize promote upload errors docsUrl";
|
|
90
99
|
}, {
|
|
91
100
|
readonly slug: "workflow/continue-after-claim";
|
|
92
101
|
readonly title: "Keep publishing after the user claims";
|
|
@@ -95,7 +104,7 @@ export declare const DOCS_CATALOG: readonly [{
|
|
|
95
104
|
readonly summary: "After the owner claims an anonymous space with continuation enabled, exchange the saved claim token once for a durable space-scoped access token, save it over the claim token, and keep publishing.";
|
|
96
105
|
readonly keywords: readonly ["continue", "exchange", "claim token", "space_claimed_credential_available", "continuation"];
|
|
97
106
|
readonly url: "https://spacefast.com/docs/agents#continue-after-claim";
|
|
98
|
-
readonly body: "continue continuation claim token exchange voucher
|
|
107
|
+
readonly body: "continue continuation claim token exchange voucher publish execute POST /v1/anonymous-claim/exchange space_claimed_credential_available continuation_used continuation_unavailable durable access token state.json update after claim";
|
|
99
108
|
}, {
|
|
100
109
|
readonly slug: "workflow/secret-handling";
|
|
101
110
|
readonly title: "Secret handling rules";
|
|
@@ -110,10 +119,10 @@ export declare const DOCS_CATALOG: readonly [{
|
|
|
110
119
|
readonly title: "CLI command surface";
|
|
111
120
|
readonly kind: "workflow";
|
|
112
121
|
readonly tier: "full";
|
|
113
|
-
readonly summary: "Use sf for repeat work: publish, versions, rollback, logs, domains,
|
|
122
|
+
readonly summary: "Use sf for repeat work: publish, versions, rollback, logs, domains, sharing, teams, API calls, and On-Device MCP serving.";
|
|
114
123
|
readonly keywords: readonly ["sf", "cli", "spacefast", "mcp", "json"];
|
|
115
124
|
readonly url: "https://spacefast.com/docs/cli";
|
|
116
|
-
readonly body: "sf spacefast CLI publish versions rollback logs domains
|
|
125
|
+
readonly body: "sf spacefast CLI publish versions rollback logs domains share teams api mcp setup profile login --json";
|
|
117
126
|
}, {
|
|
118
127
|
readonly slug: "workflow/mcp-local";
|
|
119
128
|
readonly title: "On-Device MCP through the CLI";
|
|
@@ -123,24 +132,6 @@ export declare const DOCS_CATALOG: readonly [{
|
|
|
123
132
|
readonly keywords: readonly ["mcp", "stdio", "streamable http", "on-device", "local"];
|
|
124
133
|
readonly url: "https://spacefast.com/docs/agents#mcp";
|
|
125
134
|
readonly body: "MCP on-device local CLI stdio streamable HTTP sf mcp roots files workspace tool calls structuredContent apps";
|
|
126
|
-
}, {
|
|
127
|
-
readonly slug: "workflow/workspace-files";
|
|
128
|
-
readonly title: "Agent workspace files";
|
|
129
|
-
readonly kind: "workflow";
|
|
130
|
-
readonly tier: "full";
|
|
131
|
-
readonly summary: "Hosted MCP workspace tools edit, import, export, and publish a durable virtual workspace; On-Device MCP workspace tools edit the bounded local root.";
|
|
132
|
-
readonly keywords: readonly ["workspace", "files", "patch", "diff", "virtual workspace", "workspace import", "workspace export", "just-bash"];
|
|
133
|
-
readonly url: "https://spacefast.com/docs/agents#workspace-files";
|
|
134
|
-
readonly body: "workspace file editing read write patch diff list manifest import export import_url hosted virtual workspace just-bash shell handoff on-device root SPACEFAST_MCP_WORKSPACE_ROOT secret scanning bounded files";
|
|
135
|
-
}, {
|
|
136
|
-
readonly slug: "workflow/mcp-resources";
|
|
137
|
-
readonly title: "MCP resources for account, teams, spaces, and policy";
|
|
138
|
-
readonly kind: "workflow";
|
|
139
|
-
readonly tier: "full";
|
|
140
|
-
readonly summary: "Use read-only resources for bounded context before tools: account/current, teams/current, spaces/recent, space detail, recent versions, policy/current, and workspace/manifest.";
|
|
141
|
-
readonly keywords: readonly ["resources", "account", "teams", "spaces", "policy", "context"];
|
|
142
|
-
readonly url: "https://spacefast.com/docs/agents#mcp-resources";
|
|
143
|
-
readonly body: "MCP resources account current teams current list spaces recent space detail versions recent domains logs summary policy current workspace manifest tools catalog read-only context redacted";
|
|
144
135
|
}, {
|
|
145
136
|
readonly slug: "workflow/space-files";
|
|
146
137
|
readonly title: "Space file conventions";
|
|
@@ -149,7 +140,7 @@ export declare const DOCS_CATALOG: readonly [{
|
|
|
149
140
|
readonly summary: "Spacefast recognizes _redirects, _headers, nearest 404.html, and sf.jsonc. Static artifacts are served as files; server code is not executed.";
|
|
150
141
|
readonly keywords: readonly ["_redirects", "_headers", "sf.jsonc", "spacefast.jsonc", "404"];
|
|
151
142
|
readonly url: "https://spacefast.com/docs/configuration";
|
|
152
|
-
readonly body: "_redirects _headers 404.html sf.jsonc static artifact server code not executed proxy rewrite headers
|
|
143
|
+
readonly body: "_redirects _headers 404.html sf.jsonc static artifact server code not executed proxy rewrite headers";
|
|
153
144
|
}, {
|
|
154
145
|
readonly slug: "workflow/domains-diagnostics";
|
|
155
146
|
readonly title: "Domains and DNS diagnostics";
|
|
@@ -209,10 +200,10 @@ export declare const DOCS_CATALOG: readonly [{
|
|
|
209
200
|
readonly title: "Access control";
|
|
210
201
|
readonly kind: "guide";
|
|
211
202
|
readonly tier: "full";
|
|
212
|
-
readonly summary: "
|
|
213
|
-
readonly keywords: readonly ["access", "
|
|
203
|
+
readonly summary: "Create scoped Grants, invite People, and manage Links or credentials.";
|
|
204
|
+
readonly keywords: readonly ["access", "share", "people", "links", "private", "team", "public"];
|
|
214
205
|
readonly url: "https://spacefast.com/docs/access";
|
|
215
|
-
readonly body: "
|
|
206
|
+
readonly body: "Use `sf share grant`, `sf share people`, `sf share link`, `sf share password`, or `sf share token`. Inspect one route with `sf share check`; every audience uses the same path, capability, target, and constraint evaluator.";
|
|
216
207
|
}, {
|
|
217
208
|
readonly slug: "redirects";
|
|
218
209
|
readonly title: "Redirects";
|
|
@@ -227,10 +218,10 @@ export declare const DOCS_CATALOG: readonly [{
|
|
|
227
218
|
readonly title: "Custom headers";
|
|
228
219
|
readonly kind: "guide";
|
|
229
220
|
readonly tier: "full";
|
|
230
|
-
readonly summary: "Attach response headers
|
|
231
|
-
readonly keywords: readonly ["headers", "cache", "security", "
|
|
221
|
+
readonly summary: "Attach supported response headers by path.";
|
|
222
|
+
readonly keywords: readonly ["headers", "cache", "security", "_headers", "cors"];
|
|
232
223
|
readonly url: "https://spacefast.com/docs/headers";
|
|
233
|
-
readonly body: "Add a `_headers` file at your publish root to set or remove response headers per path.
|
|
224
|
+
readonly body: "Add a `_headers` file at your publish root to set or remove supported response headers per path.";
|
|
234
225
|
}, {
|
|
235
226
|
readonly slug: "builds";
|
|
236
227
|
readonly title: "Build from Git";
|
|
@@ -239,7 +230,34 @@ export declare const DOCS_CATALOG: readonly [{
|
|
|
239
230
|
readonly summary: "Connect a repository so pushes build and publish automatically.";
|
|
240
231
|
readonly keywords: readonly ["build", "git", "github", "ci", "push", "connect", "preview"];
|
|
241
232
|
readonly url: "https://spacefast.com/docs/builds";
|
|
242
|
-
readonly body: "Connect a repository with `sf git connect`; each push runs your build on Spacefast and publishes a version
|
|
233
|
+
readonly body: "Connect a repository with `sf git connect`; each push runs your build on Spacefast and publishes a version. Branch and pull-request previews are private by default; use Open for yourself or create a scoped Link for reviewers.";
|
|
234
|
+
}, {
|
|
235
|
+
readonly slug: "runtimes";
|
|
236
|
+
readonly title: "Runtimes";
|
|
237
|
+
readonly kind: "guide";
|
|
238
|
+
readonly tier: "full";
|
|
239
|
+
readonly summary: "Run code on a space with Zero or Functions.";
|
|
240
|
+
readonly keywords: readonly ["runtime", "zero", "functions", "server", "dynamic", "code", "backend", "sf.jsonc"];
|
|
241
|
+
readonly url: "https://spacefast.com/docs/runtimes";
|
|
242
|
+
readonly body: "A space serves static files until you declare a `runtime` block in sf.jsonc. Zero is a capsule with its own database and transactions; Functions is a worker with one `fetch` handler and any npm package. Both compile during `sf publish`. Zero runs on plans with dedicated runtime isolation; Functions remains in private beta.";
|
|
243
|
+
}, {
|
|
244
|
+
readonly slug: "runtimes/zero";
|
|
245
|
+
readonly title: "Spacefast Zero";
|
|
246
|
+
readonly kind: "guide";
|
|
247
|
+
readonly tier: "full";
|
|
248
|
+
readonly summary: "A capsule with a database: schema, queries, mutations, endpoints.";
|
|
249
|
+
readonly keywords: readonly ["zero", "capsule", "database", "schema", "query", "mutation", "endpoint", "transaction", "sql", "sf dev"];
|
|
250
|
+
readonly url: "https://spacefast.com/docs/runtimes/zero";
|
|
251
|
+
readonly body: "Zero is for apps where the data is the point. Write one capsule — schema, queries, mutations, endpoints — start it locally with `sf dev`, and `sf publish` puts it live with its own database on a plan with dedicated runtime isolation.";
|
|
252
|
+
}, {
|
|
253
|
+
readonly slug: "runtimes/functions";
|
|
254
|
+
readonly title: "Spacefast Functions";
|
|
255
|
+
readonly kind: "guide";
|
|
256
|
+
readonly tier: "full";
|
|
257
|
+
readonly summary: "A worker for your space: one `fetch` handler, any npm package.";
|
|
258
|
+
readonly keywords: readonly ["functions", "worker", "fetch", "ssr", "cloudflare", "npm", "handler", "server", "api"];
|
|
259
|
+
readonly url: "https://spacefast.com/docs/runtimes/functions";
|
|
260
|
+
readonly body: "Functions runs a worker for your space: a default export with a `fetch` method, served from your space's own origin, so requests no file answers reach your code. Opt into a database with `\"database\": true`. Private beta — the team needs the flag.";
|
|
243
261
|
}, {
|
|
244
262
|
readonly slug: "collab";
|
|
245
263
|
readonly title: "Comments";
|
|
@@ -434,10 +452,10 @@ export declare const DOCS_CATALOG: readonly [{
|
|
|
434
452
|
readonly title: "sf access";
|
|
435
453
|
readonly kind: "cli";
|
|
436
454
|
readonly tier: "full";
|
|
437
|
-
readonly summary: "
|
|
438
|
-
readonly keywords: readonly ["access", "
|
|
455
|
+
readonly summary: "Emergency visitor-session revocation.";
|
|
456
|
+
readonly keywords: readonly ["access", "sessions", "revoke", "logout"];
|
|
439
457
|
readonly url: "https://spacefast.com/docs/cli";
|
|
440
|
-
readonly body: "
|
|
458
|
+
readonly body: "Use `sf access logout-all` to revoke every opened visitor session. Define audience-specific network restrictions on the corresponding Grant.";
|
|
441
459
|
}, {
|
|
442
460
|
readonly slug: "cli/teams";
|
|
443
461
|
readonly title: "sf teams";
|
|
@@ -527,7 +545,7 @@ export declare const DOCS_CATALOG: readonly [{
|
|
|
527
545
|
readonly summary: "Create, list, and update spaces over HTTP.";
|
|
528
546
|
readonly keywords: readonly ["api", "spaces", "space", "create", "list", "endpoint"];
|
|
529
547
|
readonly url: "https://spacefast.com/docs/api";
|
|
530
|
-
readonly body: "`GET /v1/spaces` lists spaces; `POST /v1/spaces` creates one. Responses carry the space id, slug, and live URL.";
|
|
548
|
+
readonly body: "`GET /v1/spaces` lists spaces; `POST /v1/spaces` creates one. `PATCH /v1/spaces/{spaceId}` with a slug-only body renames the space and managed hostname. Former managed addresses temporarily 307 to the current hostname while immutable version URLs stay unchanged. Responses carry the space id, slug, and live URL.";
|
|
531
549
|
}, {
|
|
532
550
|
readonly slug: "api/versions";
|
|
533
551
|
readonly title: "Versions API";
|
|
@@ -582,67 +600,4 @@ export declare const DOCS_CATALOG: readonly [{
|
|
|
582
600
|
readonly keywords: readonly ["api", "platform", "tenant", "infra", "openapi", "multi-tenant"];
|
|
583
601
|
readonly url: "https://spacefast.com/docs/platforms";
|
|
584
602
|
readonly body: "The platform API is the tenant-facing surface for operating Spacefast as hosting infra. It shares the `{ data }` / `{ error }` envelope and is documented via OpenAPI.";
|
|
585
|
-
}, {
|
|
586
|
-
readonly slug: "recipes/github-deploys";
|
|
587
|
-
readonly title: "Publish from GitHub";
|
|
588
|
-
readonly kind: "recipe";
|
|
589
|
-
readonly tier: "full";
|
|
590
|
-
readonly summary: "Connect a repository so pushes publish automatically.";
|
|
591
|
-
readonly keywords: readonly ["github", "git", "ci", "push", "connect", "automatic", "recipe"];
|
|
592
|
-
readonly url: "https://spacefast.com/docs/builds";
|
|
593
|
-
readonly body: "Connect a repository with `sf git connect`; each push builds on Spacefast and publishes a version, with pull requests getting preview URLs.";
|
|
594
|
-
}, {
|
|
595
|
-
readonly slug: "recipes/preview-channels";
|
|
596
|
-
readonly title: "Preview channels for pull requests";
|
|
597
|
-
readonly kind: "recipe";
|
|
598
|
-
readonly tier: "full";
|
|
599
|
-
readonly summary: "Give every branch a shareable preview URL.";
|
|
600
|
-
readonly keywords: readonly ["preview", "channel", "branch", "pull request", "staging", "recipe"];
|
|
601
|
-
readonly url: "https://spacefast.com/docs/builds";
|
|
602
|
-
readonly body: "Push a branch or open a pull request on a connected repository, or publish to a named channel, to get an isolated preview URL without touching production.";
|
|
603
|
-
}, {
|
|
604
|
-
readonly slug: "recipes/agent-publish";
|
|
605
|
-
readonly title: "Let an agent publish for you";
|
|
606
|
-
readonly kind: "recipe";
|
|
607
|
-
readonly tier: "full";
|
|
608
|
-
readonly summary: "Drive a first publish from an AI agent, then claim it.";
|
|
609
|
-
readonly keywords: readonly ["agent", "ai", "mcp", "anonymous", "claim", "automation", "recipe"];
|
|
610
|
-
readonly url: "https://spacefast.com/docs/anonymous-publish";
|
|
611
|
-
readonly body: "Let an agent publish anonymously for an instant URL and a claim token, then hand the token to a human who runs `sf spaces claim`.";
|
|
612
|
-
}, {
|
|
613
|
-
readonly slug: "recipes/custom-domain";
|
|
614
|
-
readonly title: "Add a custom domain";
|
|
615
|
-
readonly kind: "recipe";
|
|
616
|
-
readonly tier: "full";
|
|
617
|
-
readonly summary: "Point your own domain at a space with automatic TLS.";
|
|
618
|
-
readonly keywords: readonly ["domain", "custom domain", "dns", "tls", "https", "recipe"];
|
|
619
|
-
readonly url: "https://spacefast.com/help/domains";
|
|
620
|
-
readonly body: "Add the domain with `sf domains add`, set the DNS records Spacefast prints, and wait for `sf domains check` to report a ready certificate.";
|
|
621
|
-
}, {
|
|
622
|
-
readonly slug: "recipes/password-protect";
|
|
623
|
-
readonly title: "Password-protect a space";
|
|
624
|
-
readonly kind: "recipe";
|
|
625
|
-
readonly tier: "full";
|
|
626
|
-
readonly summary: "Put one shared password in front of a whole space.";
|
|
627
|
-
readonly keywords: readonly ["password", "protect", "private", "access", "gate", "recipe"];
|
|
628
|
-
readonly url: "https://spacefast.com/help/access";
|
|
629
|
-
readonly body: "Run `sf password set` to gate a space behind a single shared secret; clear it later with `sf password clear`.";
|
|
630
|
-
}, {
|
|
631
|
-
readonly slug: "recipes/redirects";
|
|
632
|
-
readonly title: "Set up redirects";
|
|
633
|
-
readonly kind: "recipe";
|
|
634
|
-
readonly tier: "reference";
|
|
635
|
-
readonly summary: "Add redirect rules that ship and roll back with a version.";
|
|
636
|
-
readonly keywords: readonly ["redirect", "rewrite", "routing", "301", "recipe"];
|
|
637
|
-
readonly url: "https://spacefast.com/help/redirects";
|
|
638
|
-
readonly body: "Add redirect rules to a `_redirects` file at your publish root so they publish as part of the version and roll back with it.";
|
|
639
|
-
}, {
|
|
640
|
-
readonly slug: "recipes/migrate-dns";
|
|
641
|
-
readonly title: "Migrate DNS to a custom domain";
|
|
642
|
-
readonly kind: "recipe";
|
|
643
|
-
readonly tier: "reference";
|
|
644
|
-
readonly summary: "Cut traffic over to a Spacefast-served domain safely.";
|
|
645
|
-
readonly keywords: readonly ["dns", "migrate", "cutover", "domain", "nameserver", "recipe"];
|
|
646
|
-
readonly url: "https://spacefast.com/help/domains";
|
|
647
|
-
readonly body: "Pre-stage the domain with `sf domains add`, verify the certificate is ready with `sf domains check`, then update DNS to flip traffic with zero downtime.";
|
|
648
603
|
}, ...DocEntry[]];
|