@spacefast/common 0.0.10 → 0.0.12

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 (122) hide show
  1. package/dist/agents/connect-targets.d.ts +4 -4
  2. package/dist/agents/connect-targets.js +3 -3
  3. package/dist/agents/private-key-oauth.d.ts +37 -0
  4. package/dist/agents/private-key-oauth.js +158 -0
  5. package/dist/config/domains.js +1 -1
  6. package/dist/config/index.d.ts +1 -0
  7. package/dist/config/index.js +1 -0
  8. package/dist/config/postgres-budget.d.ts +126 -0
  9. package/dist/config/postgres-budget.js +135 -0
  10. package/dist/config/postgres-budget.json +50 -0
  11. package/dist/contracts/access.d.ts +42 -24
  12. package/dist/contracts/access.js +73 -34
  13. package/dist/contracts/activity.d.ts +1 -1
  14. package/dist/contracts/activity.js +5 -5
  15. package/dist/contracts/api-keys.d.ts +53 -45
  16. package/dist/contracts/api-keys.js +1 -0
  17. package/dist/contracts/archives.d.ts +8 -8
  18. package/dist/contracts/builds.d.ts +8 -8
  19. package/dist/contracts/builds.js +28 -48
  20. package/dist/contracts/channels.js +1 -2
  21. package/dist/contracts/comments.d.ts +55 -19
  22. package/dist/contracts/comments.js +56 -17
  23. package/dist/contracts/common.d.ts +4 -3
  24. package/dist/contracts/common.js +2 -0
  25. package/dist/contracts/deployments.d.ts +3 -3
  26. package/dist/contracts/device-auth.d.ts +14 -12
  27. package/dist/contracts/docs.d.ts +5 -5
  28. package/dist/contracts/domains.d.ts +261 -1330
  29. package/dist/contracts/domains.js +39 -301
  30. package/dist/contracts/email-preferences.d.ts +50 -0
  31. package/dist/contracts/email-preferences.js +44 -0
  32. package/dist/contracts/enums.d.ts +1 -1
  33. package/dist/contracts/error-code-meta.d.ts +84 -15
  34. package/dist/contracts/error-code-meta.js +28 -4
  35. package/dist/contracts/error-codes.d.ts +1 -1
  36. package/dist/contracts/error-codes.js +24 -6
  37. package/dist/contracts/events.d.ts +13 -13
  38. package/dist/contracts/feature-lifecycle.d.ts +644 -2
  39. package/dist/contracts/feature-lifecycle.js +685 -2
  40. package/dist/contracts/features.d.ts +236 -24
  41. package/dist/contracts/features.js +3 -272
  42. package/dist/contracts/ids.d.ts +1 -2
  43. package/dist/contracts/ids.js +1 -2
  44. package/dist/contracts/internal.d.ts +3 -3
  45. package/dist/contracts/mcp.d.ts +6 -6
  46. package/dist/contracts/me.js +1 -1
  47. package/dist/contracts/mounts.d.ts +142 -0
  48. package/dist/contracts/mounts.js +56 -0
  49. package/dist/contracts/oauth-resources.d.ts +5 -5
  50. package/dist/contracts/oauth-resources.js +1 -0
  51. package/dist/contracts/operations.d.ts +2 -2
  52. package/dist/contracts/pages.d.ts +2 -2
  53. package/dist/contracts/pages.js +8 -3
  54. package/dist/contracts/plan-policy.d.ts +1 -1
  55. package/dist/contracts/platform.d.ts +3 -3
  56. package/dist/contracts/resources.d.ts +12 -20
  57. package/dist/contracts/resources.js +13 -37
  58. package/dist/contracts/runtime-api.d.ts +330 -16
  59. package/dist/contracts/runtime-api.js +58 -14
  60. package/dist/contracts/sf-config-v1.js +1 -1
  61. package/dist/contracts/sites.d.ts +12 -12
  62. package/dist/contracts/sites.js +18 -11
  63. package/dist/contracts/space-config.d.ts +2 -3
  64. package/dist/contracts/space-config.js +3 -1
  65. package/dist/contracts/spaces.d.ts +143 -102
  66. package/dist/contracts/spaces.js +109 -43
  67. package/dist/contracts/superadmin-emails.d.ts +25 -1
  68. package/dist/contracts/superadmin-emails.js +10 -15
  69. package/dist/contracts/superadmin-runtime.d.ts +2 -2
  70. package/dist/contracts/superadmin-spaces.d.ts +6 -14
  71. package/dist/contracts/tags.d.ts +43 -13
  72. package/dist/contracts/tags.js +195 -11
  73. package/dist/contracts/transfers.d.ts +1 -1
  74. package/dist/contracts/variables.d.ts +4 -4
  75. package/dist/contracts/variables.js +4 -3
  76. package/dist/contracts/webhooks.d.ts +2 -2
  77. package/dist/contracts/zero.d.ts +329 -7
  78. package/dist/contracts/zero.js +121 -2
  79. package/dist/dashboard-paths/index.d.ts +1 -1
  80. package/dist/docs/agent-setup.d.ts +4 -2
  81. package/dist/docs/agent-setup.js +15 -7
  82. package/dist/docs/agent-solutions.js +1 -1
  83. package/dist/docs/catalog.d.ts +8 -10
  84. package/dist/docs/catalog.js +8 -10
  85. package/dist/docs/error-docs.js +86 -18
  86. package/dist/utils/access-grant.d.ts +14 -0
  87. package/dist/utils/access-grant.js +88 -0
  88. package/dist/utils/access-match.d.ts +7 -0
  89. package/dist/utils/access-match.fixtures.json +513 -0
  90. package/dist/utils/access-match.js +32 -16
  91. package/dist/utils/access-verdict.fixtures.json +421 -0
  92. package/dist/utils/credential-policy.d.ts +1 -1
  93. package/dist/utils/dns-instructions.d.ts +29 -0
  94. package/dist/utils/dns-instructions.js +78 -0
  95. package/dist/utils/domain-diagnostics.d.ts +29 -0
  96. package/dist/utils/domain-diagnostics.js +63 -0
  97. package/dist/utils/egress-policy.fixtures.json +51 -0
  98. package/dist/utils/id-hints.d.ts +1 -0
  99. package/dist/utils/id-hints.js +55 -13
  100. package/dist/utils/page-colors.d.ts +50 -0
  101. package/dist/utils/page-colors.js +167 -0
  102. package/dist/utils/page-fonts.d.ts +2 -0
  103. package/dist/utils/page-fonts.js +4 -0
  104. package/dist/utils/pages.d.ts +8 -1
  105. package/dist/utils/pages.js +123 -37
  106. package/dist/utils/production-runtime.d.ts +18 -0
  107. package/dist/utils/production-runtime.js +28 -0
  108. package/dist/utils/query-keys.d.ts +6 -7
  109. package/dist/utils/query-keys.js +11 -12
  110. package/dist/utils/sf-config-v1.fixtures.json +9 -0
  111. package/dist/utils/sf-config-v1.js +28 -19
  112. package/dist/utils/source-archive-policy.d.ts +2 -0
  113. package/dist/utils/source-archive-policy.js +2 -0
  114. package/dist/utils/static-runtime-policy.fixtures.json +57 -0
  115. package/dist/utils/static-runtime-policy.js +1 -1
  116. package/package.json +5 -4
  117. package/dist/contracts/annotations.d.ts +0 -327
  118. package/dist/contracts/annotations.js +0 -235
  119. package/dist/contracts/generated-feature-launch-entries.d.ts +0 -2
  120. package/dist/contracts/generated-feature-launch-entries.js +0 -518
  121. package/dist/contracts/publishes.d.ts +0 -135
  122. package/dist/contracts/publishes.js +0 -162
@@ -37,6 +37,37 @@ export declare const runtimeVersionCreateResponseSchema: z.ZodObject<{
37
37
  upload_id: z.ZodString;
38
38
  created_at: z.ZodString;
39
39
  }, z.core.$strip>;
40
+ export declare const runtimeUploadSessionDescriptorSchema: z.ZodObject<{
41
+ upload_id: z.ZodString;
42
+ space_id: z.ZodString;
43
+ version_id: z.ZodString;
44
+ session_mode: z.ZodLiteral<"declared">;
45
+ expires_at: z.ZodString;
46
+ manifest_hash: z.ZodOptional<z.ZodString>;
47
+ files: z.ZodArray<z.ZodObject<{
48
+ path: z.ZodString;
49
+ size: z.ZodNumber;
50
+ sha256: z.ZodOptional<z.ZodString>;
51
+ contentType: z.ZodOptional<z.ZodString>;
52
+ sourceUrl: z.ZodOptional<z.ZodString>;
53
+ }, z.core.$strip>>;
54
+ retained_files: z.ZodOptional<z.ZodArray<z.ZodObject<{
55
+ path: z.ZodString;
56
+ size: z.ZodNumber;
57
+ sha256: z.ZodOptional<z.ZodString>;
58
+ contentType: z.ZodOptional<z.ZodString>;
59
+ sourceUrl: z.ZodOptional<z.ZodString>;
60
+ }, z.core.$strip>>>;
61
+ reusable_version_id: z.ZodOptional<z.ZodString>;
62
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
63
+ convention_files: z.ZodDefault<z.ZodObject<{
64
+ redirects: z.ZodOptional<z.ZodString>;
65
+ headers: z.ZodOptional<z.ZodString>;
66
+ }, z.core.$strict>>;
67
+ }, z.core.$strip>;
68
+ export type RuntimeUploadSessionDescriptor = z.infer<typeof runtimeUploadSessionDescriptorSchema>;
69
+ export declare const RUNTIME_UPLOAD_SESSION_DESCRIPTOR_MAX_BYTES = 4096;
70
+ export declare const RUNTIME_UPLOAD_SESSION_STORED_MAX_BYTES: number;
40
71
  export declare const runtimeUploadSessionResponseSchema: z.ZodObject<{
41
72
  space_id: z.ZodString;
42
73
  version_id: z.ZodString;
@@ -64,10 +95,284 @@ export declare const runtimeZeroModeSchema: z.ZodEnum<{
64
95
  export type RuntimeZeroMode = z.infer<typeof runtimeZeroModeSchema>;
65
96
  export declare const runtimeVersionFinalizeRequestSchema: z.ZodObject<{
66
97
  upload_id: z.ZodString;
98
+ session: z.ZodOptional<z.ZodObject<{
99
+ upload_id: z.ZodString;
100
+ space_id: z.ZodString;
101
+ version_id: z.ZodString;
102
+ session_mode: z.ZodLiteral<"declared">;
103
+ expires_at: z.ZodString;
104
+ manifest_hash: z.ZodOptional<z.ZodString>;
105
+ files: z.ZodArray<z.ZodObject<{
106
+ path: z.ZodString;
107
+ size: z.ZodNumber;
108
+ sha256: z.ZodOptional<z.ZodString>;
109
+ contentType: z.ZodOptional<z.ZodString>;
110
+ sourceUrl: z.ZodOptional<z.ZodString>;
111
+ }, z.core.$strip>>;
112
+ retained_files: z.ZodOptional<z.ZodArray<z.ZodObject<{
113
+ path: z.ZodString;
114
+ size: z.ZodNumber;
115
+ sha256: z.ZodOptional<z.ZodString>;
116
+ contentType: z.ZodOptional<z.ZodString>;
117
+ sourceUrl: z.ZodOptional<z.ZodString>;
118
+ }, z.core.$strip>>>;
119
+ reusable_version_id: z.ZodOptional<z.ZodString>;
120
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
121
+ convention_files: z.ZodDefault<z.ZodObject<{
122
+ redirects: z.ZodOptional<z.ZodString>;
123
+ headers: z.ZodOptional<z.ZodString>;
124
+ }, z.core.$strict>>;
125
+ }, z.core.$strip>>;
67
126
  zero_mode: z.ZodOptional<z.ZodEnum<{
68
127
  active: "active";
69
128
  activating: "activating";
70
129
  }>>;
130
+ zero: z.ZodOptional<z.ZodObject<{
131
+ auth: z.ZodDefault<z.ZodObject<{
132
+ provider: z.ZodDefault<z.ZodLiteral<"wpcom">>;
133
+ signInPath: z.ZodDefault<z.ZodNullable<z.ZodLiteral<"/__spacefast/zero/auth/wpcom/start">>>;
134
+ signInUrl: z.ZodDefault<z.ZodNullable<z.ZodString>>;
135
+ signOutPath: z.ZodDefault<z.ZodNullable<z.ZodLiteral<"/__spacefast/zero/auth/sign-out">>>;
136
+ signOutUrl: z.ZodDefault<z.ZodNullable<z.ZodString>>;
137
+ returnToParam: z.ZodDefault<z.ZodString>;
138
+ }, z.core.$strict>>;
139
+ variables: z.ZodObject<{
140
+ source: z.ZodLiteral<"stattic-variables">;
141
+ names: z.ZodDefault<z.ZodArray<z.ZodString>>;
142
+ }, z.core.$strict>;
143
+ realtime: z.ZodObject<{
144
+ mode: z.ZodEnum<{
145
+ "stattic-central": "stattic-central";
146
+ "spacefast-cast": "spacefast-cast";
147
+ "local-dev": "local-dev";
148
+ }>;
149
+ centralUrl: z.ZodDefault<z.ZodNullable<z.ZodString>>;
150
+ replayUrl: z.ZodDefault<z.ZodNullable<z.ZodString>>;
151
+ castResourceKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
152
+ eventCallback: z.ZodOptional<z.ZodObject<{
153
+ url: z.ZodString;
154
+ token: z.ZodString;
155
+ }, z.core.$strict>>;
156
+ }, z.core.$strict>;
157
+ runtimeKind: z.ZodLiteral<"zero">;
158
+ migrations: z.ZodDefault<z.ZodNullable<z.ZodObject<{
159
+ format: z.ZodLiteral<"stattic.zero.migrations.v1">;
160
+ mode: z.ZodDefault<z.ZodEnum<{
161
+ safe: "safe";
162
+ drop: "drop";
163
+ rename: "rename";
164
+ }>>;
165
+ schemaHash: z.ZodString;
166
+ operations: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
167
+ op: z.ZodLiteral<"create_table">;
168
+ table: z.ZodString;
169
+ }, z.core.$strict>, z.ZodObject<{
170
+ op: z.ZodLiteral<"add_column">;
171
+ table: z.ZodString;
172
+ column: z.ZodObject<{
173
+ name: z.ZodString;
174
+ type: z.ZodEnum<{
175
+ string: "string";
176
+ number: "number";
177
+ boolean: "boolean";
178
+ json: "json";
179
+ }>;
180
+ nullable: z.ZodDefault<z.ZodBoolean>;
181
+ default: z.ZodOptional<z.ZodUnknown>;
182
+ }, z.core.$strict>;
183
+ }, z.core.$strict>, z.ZodObject<{
184
+ op: z.ZodLiteral<"add_index">;
185
+ table: z.ZodString;
186
+ columns: z.ZodArray<z.ZodString>;
187
+ unique: z.ZodDefault<z.ZodBoolean>;
188
+ }, z.core.$strict>, z.ZodObject<{
189
+ op: z.ZodLiteral<"drop_table">;
190
+ table: z.ZodString;
191
+ explicit: z.ZodLiteral<"drop">;
192
+ }, z.core.$strict>, z.ZodObject<{
193
+ op: z.ZodLiteral<"drop_column">;
194
+ table: z.ZodString;
195
+ column: z.ZodString;
196
+ explicit: z.ZodLiteral<"drop">;
197
+ }, z.core.$strict>, z.ZodObject<{
198
+ op: z.ZodLiteral<"rename_table">;
199
+ from: z.ZodString;
200
+ to: z.ZodString;
201
+ explicit: z.ZodLiteral<"rename">;
202
+ }, z.core.$strict>, z.ZodObject<{
203
+ op: z.ZodLiteral<"rename_column">;
204
+ table: z.ZodString;
205
+ from: z.ZodString;
206
+ to: z.ZodString;
207
+ explicit: z.ZodLiteral<"rename">;
208
+ }, z.core.$strict>], "op">>;
209
+ }, z.core.$strict>>>;
210
+ install: z.ZodObject<{
211
+ runtimeKind: z.ZodLiteral<"zero">;
212
+ engine: z.ZodLiteral<"quickjs-rust">;
213
+ storageRoot: z.ZodLiteral<"__spacefast/zero">;
214
+ artifactPath: z.ZodLiteral<"__spacefast/zero/artifact.json">;
215
+ configPath: z.ZodLiteral<"__spacefast/zero/config.json">;
216
+ binary: z.ZodObject<{
217
+ path: z.ZodLiteral<"__spacefast/zero/bin/stattic-zero-runner">;
218
+ compatibilityTarget: z.ZodObject<{
219
+ profile: z.ZodLiteral<"wpcloud-linux-x86_64-gnu-v1">;
220
+ os: z.ZodLiteral<"linux">;
221
+ cpu: z.ZodLiteral<"x86_64">;
222
+ libc: z.ZodLiteral<"glibc">;
223
+ linking: z.ZodLiteral<"dynamic">;
224
+ requireExecutableBit: z.ZodLiteral<true>;
225
+ }, z.core.$strict>;
226
+ sha256: z.ZodDefault<z.ZodNullable<z.ZodString>>;
227
+ required: z.ZodLiteral<true>;
228
+ }, z.core.$strict>;
229
+ mysql: z.ZodObject<{
230
+ migrateAtFinalize: z.ZodLiteral<true>;
231
+ blockIncompatibleRollback: z.ZodLiteral<true>;
232
+ }, z.core.$strict>;
233
+ realtime: z.ZodObject<{
234
+ production: z.ZodLiteral<"stattic-central">;
235
+ local: z.ZodLiteral<"foreground-cli-ws">;
236
+ }, z.core.$strict>;
237
+ }, z.core.$strict>;
238
+ artifact: z.ZodObject<{
239
+ format: z.ZodLiteral<"stattic.zero.capsule.v1">;
240
+ appName: z.ZodString;
241
+ serverRuntime: z.ZodLiteral<"quickjs-rust">;
242
+ client: z.ZodObject<{
243
+ bundlePath: z.ZodString;
244
+ basePathAware: z.ZodDefault<z.ZodBoolean>;
245
+ }, z.core.$strict>;
246
+ server: z.ZodObject<{
247
+ bundlePath: z.ZodString;
248
+ schema: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
249
+ name: z.ZodString;
250
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
251
+ name: z.ZodString;
252
+ type: z.ZodEnum<{
253
+ string: "string";
254
+ number: "number";
255
+ boolean: "boolean";
256
+ json: "json";
257
+ }>;
258
+ nullable: z.ZodDefault<z.ZodBoolean>;
259
+ default: z.ZodOptional<z.ZodUnknown>;
260
+ }, z.core.$strict>>>;
261
+ }, z.core.$strict>>>;
262
+ queries: z.ZodDefault<z.ZodArray<z.ZodString>>;
263
+ mutations: z.ZodDefault<z.ZodArray<z.ZodString>>;
264
+ endpoints: z.ZodDefault<z.ZodArray<z.ZodObject<{
265
+ method: z.ZodEnum<{
266
+ POST: "POST";
267
+ PUT: "PUT";
268
+ GET: "GET";
269
+ HEAD: "HEAD";
270
+ PATCH: "PATCH";
271
+ DELETE: "DELETE";
272
+ OPTIONS: "OPTIONS";
273
+ }>;
274
+ path: z.ZodString;
275
+ }, z.core.$strict>>>;
276
+ sockets: z.ZodDefault<z.ZodArray<z.ZodString>>;
277
+ }, z.core.$strict>;
278
+ db: z.ZodObject<{
279
+ backend: z.ZodLiteral<"wpcloud-mysql">;
280
+ migrations: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
281
+ op: z.ZodLiteral<"create_table">;
282
+ table: z.ZodString;
283
+ }, z.core.$strict>, z.ZodObject<{
284
+ op: z.ZodLiteral<"add_column">;
285
+ table: z.ZodString;
286
+ column: z.ZodObject<{
287
+ name: z.ZodString;
288
+ type: z.ZodEnum<{
289
+ string: "string";
290
+ number: "number";
291
+ boolean: "boolean";
292
+ json: "json";
293
+ }>;
294
+ nullable: z.ZodDefault<z.ZodBoolean>;
295
+ default: z.ZodOptional<z.ZodUnknown>;
296
+ }, z.core.$strict>;
297
+ }, z.core.$strict>, z.ZodObject<{
298
+ op: z.ZodLiteral<"add_index">;
299
+ table: z.ZodString;
300
+ columns: z.ZodArray<z.ZodString>;
301
+ unique: z.ZodDefault<z.ZodBoolean>;
302
+ }, z.core.$strict>, z.ZodObject<{
303
+ op: z.ZodLiteral<"drop_table">;
304
+ table: z.ZodString;
305
+ explicit: z.ZodLiteral<"drop">;
306
+ }, z.core.$strict>, z.ZodObject<{
307
+ op: z.ZodLiteral<"drop_column">;
308
+ table: z.ZodString;
309
+ column: z.ZodString;
310
+ explicit: z.ZodLiteral<"drop">;
311
+ }, z.core.$strict>, z.ZodObject<{
312
+ op: z.ZodLiteral<"rename_table">;
313
+ from: z.ZodString;
314
+ to: z.ZodString;
315
+ explicit: z.ZodLiteral<"rename">;
316
+ }, z.core.$strict>, z.ZodObject<{
317
+ op: z.ZodLiteral<"rename_column">;
318
+ table: z.ZodString;
319
+ from: z.ZodString;
320
+ to: z.ZodString;
321
+ explicit: z.ZodLiteral<"rename">;
322
+ }, z.core.$strict>], "op">>>;
323
+ }, z.core.$strict>;
324
+ realtime: z.ZodObject<{
325
+ mode: z.ZodEnum<{
326
+ "stattic-central": "stattic-central";
327
+ "spacefast-cast": "spacefast-cast";
328
+ "local-dev": "local-dev";
329
+ }>;
330
+ mutationEvents: z.ZodDefault<z.ZodBoolean>;
331
+ }, z.core.$strict>;
332
+ limits: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
333
+ futureCapabilities: z.ZodDefault<z.ZodArray<z.ZodEnum<{
334
+ ai: "ai";
335
+ blob: "blob";
336
+ "generalized-js": "generalized-js";
337
+ }>>>;
338
+ sourceManifest: z.ZodObject<{
339
+ entries: z.ZodObject<{
340
+ client: z.ZodLiteral<"client/index.tsx">;
341
+ server: z.ZodLiteral<"server/index.ts">;
342
+ }, z.core.$strict>;
343
+ sourceRoot: z.ZodString;
344
+ files: z.ZodDefault<z.ZodArray<z.ZodObject<{
345
+ path: z.ZodString;
346
+ size: z.ZodNumber;
347
+ sha256: z.ZodString;
348
+ }, z.core.$strict>>>;
349
+ env: z.ZodDefault<z.ZodNullable<z.ZodObject<{
350
+ file: z.ZodLiteral<".env.zero.server">;
351
+ names: z.ZodDefault<z.ZodArray<z.ZodString>>;
352
+ }, z.core.$strip>>>;
353
+ sourceConfig: z.ZodDefault<z.ZodObject<{
354
+ configFile: z.ZodDefault<z.ZodNullable<z.ZodObject<{
355
+ path: z.ZodLiteral<"zero.json">;
356
+ appName: z.ZodDefault<z.ZodNullable<z.ZodString>>;
357
+ deployId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
358
+ name: z.ZodDefault<z.ZodNullable<z.ZodString>>;
359
+ title: z.ZodDefault<z.ZodNullable<z.ZodString>>;
360
+ }, z.core.$strip>>>;
361
+ deployFile: z.ZodDefault<z.ZodNullable<z.ZodObject<{
362
+ path: z.ZodLiteral<".zero/deploy.json">;
363
+ keys: z.ZodDefault<z.ZodArray<z.ZodString>>;
364
+ }, z.core.$strip>>>;
365
+ }, z.core.$strip>>;
366
+ }, z.core.$strict>;
367
+ }, z.core.$strict>;
368
+ inspect: z.ZodDefault<z.ZodObject<{
369
+ policy: z.ZodDefault<z.ZodEnum<{
370
+ public: "public";
371
+ private: "private";
372
+ }>>;
373
+ }, z.core.$strict>>;
374
+ variableValues: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
375
+ }, z.core.$strict>>;
71
376
  ready_at: z.ZodOptional<z.ZodNumber>;
72
377
  convention_files: z.ZodOptional<z.ZodObject<{
73
378
  redirects: z.ZodOptional<z.ZodString>;
@@ -123,9 +428,10 @@ export declare const runtimeVersionFinalizeRequestSchema: z.ZodObject<{
123
428
  }, z.core.$strip>>;
124
429
  zero_endpoints: z.ZodOptional<z.ZodArray<z.ZodObject<{
125
430
  method: z.ZodEnum<{
126
- PUT: "PUT";
127
431
  POST: "POST";
432
+ PUT: "PUT";
128
433
  GET: "GET";
434
+ HEAD: "HEAD";
129
435
  PATCH: "PATCH";
130
436
  DELETE: "DELETE";
131
437
  OPTIONS: "OPTIONS";
@@ -174,6 +480,7 @@ export declare const runtimeVersionFinalizeRequestSchema: z.ZodObject<{
174
480
  ipCidrs: z.ZodOptional<z.ZodArray<z.ZodString>>;
175
481
  agent: z.ZodOptional<z.ZodString>;
176
482
  country: z.ZodOptional<z.ZodString>;
483
+ countryNotIn: z.ZodOptional<z.ZodArray<z.ZodString>>;
177
484
  header: z.ZodOptional<z.ZodObject<{
178
485
  name: z.ZodString;
179
486
  value: z.ZodString;
@@ -240,6 +547,7 @@ export declare const runtimeVersionFinalizeRequestSchema: z.ZodObject<{
240
547
  externalProxy: z.ZodBoolean;
241
548
  }, z.core.$strip>>>;
242
549
  }, z.core.$strip>>;
550
+ config_digest: z.ZodOptional<z.ZodString>;
243
551
  changed_paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
244
552
  previous_version_id: z.ZodOptional<z.ZodString>;
245
553
  production_hostnames: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -251,13 +559,13 @@ export declare const runtimeVersionFinalizeRequestSchema: z.ZodObject<{
251
559
  host_canonical_redirects: z.ZodDefault<z.ZodArray<z.ZodObject<{
252
560
  from: z.ZodString;
253
561
  to: z.ZodString;
254
- status: z.ZodDefault<z.ZodLiteral<308>>;
562
+ status: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<301>, z.ZodLiteral<302>, z.ZodLiteral<307>, z.ZodLiteral<308>]>>;
255
563
  }, z.core.$strip>>>;
256
- proxy_host_routes: z.ZodDefault<z.ZodArray<z.ZodObject<{
564
+ static_mount_routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
257
565
  hostname: z.ZodString;
258
- path_prefix: z.ZodDefault<z.ZodString>;
259
- upstream: z.ZodString;
260
- noindex: z.ZodDefault<z.ZodBoolean>;
566
+ path_prefix: z.ZodString;
567
+ target_space_id: z.ZodString;
568
+ target_version_id: z.ZodString;
261
569
  }, z.core.$strip>>>;
262
570
  }, z.core.$strip>>;
263
571
  }, z.core.$strip>;
@@ -289,6 +597,7 @@ export declare const runtimeRouteUpdateRequestSchema: z.ZodObject<{
289
597
  ipCidrs: z.ZodOptional<z.ZodArray<z.ZodString>>;
290
598
  agent: z.ZodOptional<z.ZodString>;
291
599
  country: z.ZodOptional<z.ZodString>;
600
+ countryNotIn: z.ZodOptional<z.ZodArray<z.ZodString>>;
292
601
  header: z.ZodOptional<z.ZodObject<{
293
602
  name: z.ZodString;
294
603
  value: z.ZodString;
@@ -355,6 +664,7 @@ export declare const runtimeRouteUpdateRequestSchema: z.ZodObject<{
355
664
  externalProxy: z.ZodBoolean;
356
665
  }, z.core.$strip>>>;
357
666
  }, z.core.$strip>>;
667
+ config_digest: z.ZodOptional<z.ZodString>;
358
668
  changed_paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
359
669
  previous_version_id: z.ZodOptional<z.ZodString>;
360
670
  production_hostnames: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -366,13 +676,13 @@ export declare const runtimeRouteUpdateRequestSchema: z.ZodObject<{
366
676
  host_canonical_redirects: z.ZodDefault<z.ZodArray<z.ZodObject<{
367
677
  from: z.ZodString;
368
678
  to: z.ZodString;
369
- status: z.ZodDefault<z.ZodLiteral<308>>;
679
+ status: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<301>, z.ZodLiteral<302>, z.ZodLiteral<307>, z.ZodLiteral<308>]>>;
370
680
  }, z.core.$strip>>>;
371
- proxy_host_routes: z.ZodDefault<z.ZodArray<z.ZodObject<{
681
+ static_mount_routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
372
682
  hostname: z.ZodString;
373
- path_prefix: z.ZodDefault<z.ZodString>;
374
- upstream: z.ZodString;
375
- noindex: z.ZodDefault<z.ZodBoolean>;
683
+ path_prefix: z.ZodString;
684
+ target_space_id: z.ZodString;
685
+ target_version_id: z.ZodString;
376
686
  }, z.core.$strip>>>;
377
687
  }, z.core.$strip>;
378
688
  export declare const runtimeHostnameIntentUpdateRequestSchema: z.ZodObject<{
@@ -385,19 +695,20 @@ export declare const runtimeHostnameIntentUpdateRequestSchema: z.ZodObject<{
385
695
  host_canonical_redirects: z.ZodDefault<z.ZodArray<z.ZodObject<{
386
696
  from: z.ZodString;
387
697
  to: z.ZodString;
388
- status: z.ZodDefault<z.ZodLiteral<308>>;
698
+ status: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<301>, z.ZodLiteral<302>, z.ZodLiteral<307>, z.ZodLiteral<308>]>>;
389
699
  }, z.core.$strip>>>;
390
- proxy_host_routes: z.ZodDefault<z.ZodArray<z.ZodObject<{
700
+ static_mount_routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
391
701
  hostname: z.ZodString;
392
- path_prefix: z.ZodDefault<z.ZodString>;
393
- upstream: z.ZodString;
394
- noindex: z.ZodDefault<z.ZodBoolean>;
702
+ path_prefix: z.ZodString;
703
+ target_space_id: z.ZodString;
704
+ target_version_id: z.ZodString;
395
705
  }, z.core.$strip>>>;
396
706
  }, z.core.$strip>;
397
707
  export declare const runtimeRouteUpdateResponseSchema: z.ZodObject<{
398
708
  space_id: z.ZodString;
399
709
  route_name: z.ZodString;
400
710
  version_id: z.ZodString;
711
+ unchanged: z.ZodOptional<z.ZodBoolean>;
401
712
  }, z.core.$strip>;
402
713
  export declare const runtimeHostnameIntentUpdateResponseSchema: z.ZodObject<{
403
714
  space_id: z.ZodString;
@@ -472,6 +783,7 @@ export declare const runtimeSpaceExportResponseSchema: z.ZodObject<{
472
783
  completed_at: z.ZodOptional<z.ZodString>;
473
784
  }, z.core.$strip>;
474
785
  export declare const runtimeSpaceImportStartRequestSchema: z.ZodObject<{
786
+ install_access_policy: z.ZodOptional<z.ZodBoolean>;
475
787
  version_id_map: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
476
788
  zero_mode: z.ZodOptional<z.ZodEnum<{
477
789
  active: "active";
@@ -507,6 +819,7 @@ export declare const runtimeTransferBundleSourceRequestSchema: z.ZodObject<{
507
819
  space_id: z.ZodString;
508
820
  version_ids: z.ZodArray<z.ZodString>;
509
821
  cursor: z.ZodNullable<z.ZodString>;
822
+ include_serving_state: z.ZodOptional<z.ZodBoolean>;
510
823
  }, z.core.$strip>;
511
824
  export declare const runtimeTransferBundleTargetRequestSchema: z.ZodObject<{
512
825
  space_id: z.ZodString;
@@ -533,6 +846,7 @@ export declare const runtimeTransferCommitRequestSchema: z.ZodObject<{
533
846
  space_id: z.ZodString;
534
847
  version_ids: z.ZodArray<z.ZodString>;
535
848
  live_version_id: z.ZodNullable<z.ZodString>;
849
+ install_serving_state: z.ZodOptional<z.ZodBoolean>;
536
850
  }, z.core.$strip>;
537
851
  export declare const runtimeTransferCommitResponseSchema: z.ZodObject<{
538
852
  installed: z.ZodLiteral<true>;
@@ -2,11 +2,12 @@ import { z } from "zod";
2
2
  import { accessEventSchema, policyDocSchema } from "./access.js";
3
3
  import { conventionFilesSchema, manifestFileSchema } from "./internal.js";
4
4
  import { runtimePagesSchema } from "./pages.js";
5
+ import { zeroEndpointSchema, zeroRuntimeConfigSchema } from "./zero.js";
5
6
  const runtimeConventionFilesSchema = conventionFilesSchema.omit({ routes: true }).strict();
6
7
  const hostCanonicalRedirectSchema = z.object({
7
8
  from: z.string().min(1),
8
- to: z.string().min(1),
9
- status: z.literal(308).default(308),
9
+ to: z.string().url(),
10
+ status: z.union([z.literal(301), z.literal(302), z.literal(307), z.literal(308)]).default(308),
10
11
  });
11
12
  // Immutable version hosts carry their own target version: the intent is the
12
13
  // COMPLETE declarative hostname map for the space (every retained ready
@@ -15,18 +16,18 @@ const versionHostnameEntrySchema = z.object({
15
16
  hostname: z.string().min(1),
16
17
  version_id: z.string().min(1),
17
18
  });
18
- const proxyHostRouteEntrySchema = z.object({
19
+ const staticMountRouteEntrySchema = z.object({
19
20
  hostname: z.string().min(1),
20
- path_prefix: z.string().min(1).default("/"),
21
- upstream: z.string().url(),
22
- noindex: z.boolean().default(false),
21
+ path_prefix: z.string().startsWith("/").min(2),
22
+ target_space_id: z.string().min(1),
23
+ target_version_id: z.string().min(1),
23
24
  });
24
25
  const runtimeRouteIntentSchema = z.object({
25
26
  production_hostnames: z.array(z.string().min(1)).default([]),
26
27
  noindex_production_hostnames: z.array(z.string().min(1)).default([]),
27
28
  version_hostnames: z.array(versionHostnameEntrySchema).default([]),
28
29
  host_canonical_redirects: z.array(hostCanonicalRedirectSchema).default([]),
29
- proxy_host_routes: z.array(proxyHostRouteEntrySchema).default([]),
30
+ static_mount_routes: z.array(staticMountRouteEntrySchema).optional(),
30
31
  });
31
32
  // Changed-path purge contract (internal-docs/platform.md "Cache Management"):
32
33
  // finalize computes the changed-path set against the previous pointer target
@@ -78,6 +79,28 @@ export const runtimeVersionCreateResponseSchema = z.object({
78
79
  upload_id: z.string(),
79
80
  created_at: z.string(),
80
81
  });
82
+ export const runtimeUploadSessionDescriptorSchema = z.object({
83
+ upload_id: z.string().min(1),
84
+ space_id: z.string().min(1),
85
+ version_id: z.string().min(1),
86
+ session_mode: z.literal("declared"),
87
+ expires_at: z.string(),
88
+ manifest_hash: z.string().optional(),
89
+ files: z.array(manifestFileSchema),
90
+ // Retained files only travel in the authenticated finalize request: they are
91
+ // unbounded and unused while accepting a PUT.
92
+ retained_files: z.array(manifestFileSchema).optional(),
93
+ reusable_version_id: z.string().min(1).optional(),
94
+ metadata: z.record(z.string(), z.unknown()).default({}),
95
+ convention_files: runtimeConventionFilesSchema.default({}),
96
+ });
97
+ // Budget for the half that rides in the upload JWT (everything except the
98
+ // retained manifest): 4 KiB of JSON keeps the signed token inside common 8 KiB
99
+ // header buffers, since it is sent on every PUT.
100
+ export const RUNTIME_UPLOAD_SESSION_DESCRIPTOR_MAX_BYTES = 4096;
101
+ // Budget for the whole descriptor, which is persisted on the version row and
102
+ // replayed inside the durable finalize receipt.
103
+ export const RUNTIME_UPLOAD_SESSION_STORED_MAX_BYTES = 256 * 1024;
81
104
  // Runtime-truth upload session state (spec "Upload Contract"): the resume flow asks
82
105
  // the runtime which declared files/chunks are actually present instead of guessing
83
106
  // from control-plane pending-upload state.
@@ -251,8 +274,8 @@ const runtimeZeroEndpointCapabilitiesSchema = z
251
274
  })
252
275
  .default({});
253
276
  const runtimeZeroEndpointSchema = z.object({
254
- method: z.enum(["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]),
255
- path: z.string().min(1).max(2048),
277
+ method: zeroEndpointSchema.shape.method,
278
+ path: zeroEndpointSchema.shape.path,
256
279
  source: z
257
280
  .string()
258
281
  .min(1)
@@ -279,7 +302,9 @@ const runtimeZeroRunSchema = z.object({
279
302
  export const runtimeZeroModeSchema = z.enum(["active", "activating"]);
280
303
  export const runtimeVersionFinalizeRequestSchema = z.object({
281
304
  upload_id: z.string().min(1),
305
+ session: runtimeUploadSessionDescriptorSchema.optional(),
282
306
  zero_mode: runtimeZeroModeSchema.optional(),
307
+ zero: zeroRuntimeConfigSchema.optional(),
283
308
  // The version's authoritative ready timestamp (epoch seconds), passed by the
284
309
  // control plane when the version already reached ready (re-finalize, import
285
310
  // re-materialization, provider migration). The engine stamps it ONCE into the
@@ -356,13 +381,16 @@ export const runtimeVersionFinalizeRequestSchema = z.object({
356
381
  .default("production")
357
382
  .describe("Runtime route-pointer to activate; route names are runtime-only vocabulary."),
358
383
  config: runtimeRouteConfigSchema.optional(),
384
+ // Same contract as the route PUT's config_digest: stored with the
385
+ // pointer so later conditional route PUTs can no-op against it.
386
+ config_digest: z.string().min(1).optional(),
359
387
  changed_paths: changedPathsSchema,
360
388
  previous_version_id: previousVersionIdSchema,
361
389
  production_hostnames: runtimeRouteIntentSchema.shape.production_hostnames,
362
390
  noindex_production_hostnames: runtimeRouteIntentSchema.shape.noindex_production_hostnames,
363
391
  version_hostnames: runtimeRouteIntentSchema.shape.version_hostnames,
364
392
  host_canonical_redirects: runtimeRouteIntentSchema.shape.host_canonical_redirects,
365
- proxy_host_routes: runtimeRouteIntentSchema.shape.proxy_host_routes,
393
+ static_mount_routes: runtimeRouteIntentSchema.shape.static_mount_routes,
366
394
  })
367
395
  .optional(),
368
396
  });
@@ -373,32 +401,42 @@ export const runtimeVersionFinalizeResponseSchema = z.object({
373
401
  // Runtime-compiled truth from zero/endpoints-index.json. Optional so older
374
402
  // runtimes remain parseable during rolling deploys.
375
403
  zero_endpoint_count: z.number().int().nonnegative().optional(),
376
- // Open sessions: the manifest derived from what was actually uploaded
377
- // (path, size, streaming sha256). Absent for declared sessions.
404
+ // Canonical runtime-committed manifest (path, size, streaming sha256).
405
+ // Returned by both first and idempotent finalize responses so recovery
406
+ // never needs an already-consumed upload session.
378
407
  manifest: z.array(manifestFileSchema).optional(),
379
408
  });
380
409
  export const runtimeRouteUpdateRequestSchema = z.object({
381
410
  version_id: z.string().min(1),
382
411
  config: runtimeRouteConfigSchema.optional(),
412
+ // Canonical digest of `config` (control-plane routeConfigDigest). The engine
413
+ // stores it with the route pointer and no-ops the whole PUT — no policy
414
+ // store, no journal event, no edge purge — when version, digest, and
415
+ // hostname intent all match the stored route. Absent = always write.
416
+ config_digest: z.string().min(1).optional(),
383
417
  changed_paths: changedPathsSchema,
384
418
  previous_version_id: previousVersionIdSchema,
385
419
  production_hostnames: runtimeRouteIntentSchema.shape.production_hostnames,
386
420
  noindex_production_hostnames: runtimeRouteIntentSchema.shape.noindex_production_hostnames,
387
421
  version_hostnames: runtimeRouteIntentSchema.shape.version_hostnames,
388
422
  host_canonical_redirects: runtimeRouteIntentSchema.shape.host_canonical_redirects,
389
- proxy_host_routes: runtimeRouteIntentSchema.shape.proxy_host_routes,
423
+ static_mount_routes: runtimeRouteIntentSchema.shape.static_mount_routes,
390
424
  });
391
425
  export const runtimeHostnameIntentUpdateRequestSchema = z.object({
392
426
  production_hostnames: runtimeRouteIntentSchema.shape.production_hostnames,
393
427
  noindex_production_hostnames: runtimeRouteIntentSchema.shape.noindex_production_hostnames,
394
428
  version_hostnames: runtimeRouteIntentSchema.shape.version_hostnames,
395
429
  host_canonical_redirects: runtimeRouteIntentSchema.shape.host_canonical_redirects,
396
- proxy_host_routes: runtimeRouteIntentSchema.shape.proxy_host_routes,
430
+ static_mount_routes: runtimeRouteIntentSchema.shape.static_mount_routes,
397
431
  });
398
432
  export const runtimeRouteUpdateResponseSchema = z.object({
399
433
  space_id: z.string(),
400
434
  route_name: z.string(),
401
435
  version_id: z.string(),
436
+ // True when the engine skipped the write because version_id, config_digest,
437
+ // and hostname intent all matched the stored route: nothing was journaled,
438
+ // so callers skip the event drain too.
439
+ unchanged: z.boolean().optional(),
402
440
  });
403
441
  export const runtimeHostnameIntentUpdateResponseSchema = z.object({
404
442
  space_id: z.string(),
@@ -491,6 +529,10 @@ export const runtimeSpaceExportResponseSchema = z.object({
491
529
  });
492
530
  export const runtimeSpaceImportStartRequestSchema = z
493
531
  .object({
532
+ // Version installation and target-policy replacement are separate trust
533
+ // decisions. Managed imports always pass false; trusted full-restore tools
534
+ // must opt in explicitly before archive upload.
535
+ install_access_policy: z.boolean().optional(),
494
536
  version_id_map: z.record(z.string(), z.string()).optional(),
495
537
  // Plan §9 gated activation, extended to import (I-4): shares
496
538
  // runtimeZeroModeSchema with runtimeVersionFinalizeRequestSchema.
@@ -530,6 +572,7 @@ export const runtimeTransferBundleSourceRequestSchema = z.object({
530
572
  space_id: z.string().min(1),
531
573
  version_ids: z.array(z.string().min(1)),
532
574
  cursor: z.string().nullable(),
575
+ include_serving_state: z.boolean().optional(),
533
576
  });
534
577
  export const runtimeTransferBundleTargetRequestSchema = z.object({
535
578
  space_id: z.string().min(1),
@@ -548,6 +591,7 @@ export const runtimeTransferCommitRequestSchema = z.object({
548
591
  space_id: z.string().min(1),
549
592
  version_ids: z.array(z.string().min(1)),
550
593
  live_version_id: z.string().nullable(),
594
+ install_serving_state: z.boolean().optional(),
551
595
  });
552
596
  export const runtimeTransferCommitResponseSchema = z.object({
553
597
  installed: z.literal(true),
@@ -1,5 +1,5 @@
1
1
  import { BRAND } from "../brand.js";
2
- import { SPACE_CONFIG_ACCEPTED_FILES, SPACE_CONFIG_CANONICAL_FILE, } from "./space-config.js";
2
+ import { SPACE_CONFIG_ACCEPTED_FILES, SPACE_CONFIG_CANONICAL_FILE } from "./space-config.js";
3
3
  export const SF_CONFIG_V1_CANONICAL_FILE = SPACE_CONFIG_CANONICAL_FILE;
4
4
  export const SF_CONFIG_V1_FILES = SPACE_CONFIG_ACCEPTED_FILES;
5
5
  /** Published JSON Schema URL for the strict `sf.jsonc` v1 contract. */