@spacefast/common 0.0.26 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/dist/agents/connect-targets.d.ts +6 -146
  2. package/dist/agents/connect-targets.js +63 -295
  3. package/dist/agents/private-key-oauth.d.ts +31 -1
  4. package/dist/agents/private-key-oauth.js +124 -33
  5. package/dist/agents/registry/core.d.ts +292 -0
  6. package/dist/agents/registry/core.js +1388 -0
  7. package/dist/agents/registry/deeplink-probes.d.ts +23 -0
  8. package/dist/agents/registry/deeplink-probes.js +18 -0
  9. package/dist/agents/registry/node.d.ts +56 -0
  10. package/dist/agents/registry/node.js +339 -0
  11. package/dist/brand-assets-build.js +1 -2
  12. package/dist/brand-assets.js +4 -7
  13. package/dist/brand.d.ts +17 -0
  14. package/dist/brand.js +24 -4
  15. package/dist/config/domains.d.ts +55 -28
  16. package/dist/config/domains.js +85 -41
  17. package/dist/config/index.js +1 -2
  18. package/dist/contracts/abuse.js +9 -24
  19. package/dist/contracts/access-profiles.d.ts +86 -0
  20. package/dist/contracts/access-profiles.js +89 -0
  21. package/dist/contracts/access.d.ts +21 -27
  22. package/dist/contracts/access.js +33 -64
  23. package/dist/contracts/activity.d.ts +18 -1
  24. package/dist/contracts/activity.js +70 -26
  25. package/dist/contracts/analytics.js +8 -10
  26. package/dist/contracts/api-keys.d.ts +77 -52
  27. package/dist/contracts/api-keys.js +44 -24
  28. package/dist/contracts/application-journal.d.ts +216 -0
  29. package/dist/contracts/application-journal.js +167 -0
  30. package/dist/contracts/auth.d.ts +90 -17
  31. package/dist/contracts/auth.js +86 -17
  32. package/dist/contracts/beta.d.ts +9 -4
  33. package/dist/contracts/beta.js +20 -16
  34. package/dist/contracts/billing.js +7 -11
  35. package/dist/contracts/bootstrap.d.ts +791 -0
  36. package/dist/contracts/bootstrap.js +51 -0
  37. package/dist/contracts/builds.d.ts +186 -7
  38. package/dist/contracts/builds.js +75 -21
  39. package/dist/contracts/channels.d.ts +43 -0
  40. package/dist/contracts/channels.js +25 -9
  41. package/dist/contracts/cli.d.ts +7 -0
  42. package/dist/contracts/cli.js +6 -0
  43. package/dist/contracts/collab-public.d.ts +1 -1
  44. package/dist/contracts/collab-public.js +5 -8
  45. package/dist/contracts/comments.d.ts +45 -35
  46. package/dist/contracts/comments.js +107 -77
  47. package/dist/contracts/commerce.d.ts +165 -0
  48. package/dist/contracts/commerce.js +146 -0
  49. package/dist/contracts/common.d.ts +3 -3
  50. package/dist/contracts/common.js +18 -29
  51. package/dist/contracts/content-contract-verification.d.ts +521 -0
  52. package/dist/contracts/content-contract-verification.js +320 -0
  53. package/dist/contracts/content-platform-fixture.d.ts +1278 -0
  54. package/dist/contracts/content-platform-fixture.js +44 -0
  55. package/dist/contracts/content-program.d.ts +994 -0
  56. package/dist/contracts/content-program.js +658 -0
  57. package/dist/contracts/content-sync.d.ts +290 -0
  58. package/dist/contracts/content-sync.js +167 -0
  59. package/dist/contracts/content.d.ts +432 -0
  60. package/dist/contracts/content.js +303 -0
  61. package/dist/contracts/continuation.d.ts +17 -1
  62. package/dist/contracts/continuation.js +23 -23
  63. package/dist/contracts/countries.js +3 -4
  64. package/dist/contracts/crons.d.ts +17 -0
  65. package/dist/contracts/crons.js +33 -15
  66. package/dist/contracts/dashboard-prefs.d.ts +56 -0
  67. package/dist/contracts/dashboard-prefs.js +51 -0
  68. package/dist/contracts/device-auth.d.ts +234 -37
  69. package/dist/contracts/device-auth.js +267 -53
  70. package/dist/contracts/docs.d.ts +6 -10
  71. package/dist/contracts/docs.js +5 -13
  72. package/dist/contracts/domains.d.ts +499 -102
  73. package/dist/contracts/domains.js +169 -58
  74. package/dist/contracts/email-preferences.d.ts +3 -3
  75. package/dist/contracts/email-preferences.js +6 -7
  76. package/dist/contracts/enums.d.ts +26 -26
  77. package/dist/contracts/enums.js +61 -54
  78. package/dist/contracts/error-code-meta.d.ts +269 -7
  79. package/dist/contracts/error-code-meta.js +80 -5
  80. package/dist/contracts/error-codes.d.ts +5 -5
  81. package/dist/contracts/error-codes.js +78 -16
  82. package/dist/contracts/events.d.ts +100 -20
  83. package/dist/contracts/events.js +107 -20
  84. package/dist/contracts/execution.d.ts +47 -66
  85. package/dist/contracts/execution.js +51 -64
  86. package/dist/contracts/feature-lifecycle.d.ts +70 -14
  87. package/dist/contracts/feature-lifecycle.js +86 -15
  88. package/dist/contracts/features.d.ts +100 -37
  89. package/dist/contracts/features.js +21 -27
  90. package/dist/contracts/fixtures/content-platform-v1.json +1108 -0
  91. package/dist/contracts/frame-session.d.ts +192 -0
  92. package/dist/contracts/frame-session.js +164 -0
  93. package/dist/contracts/functions.d.ts +218 -211
  94. package/dist/contracts/functions.js +273 -260
  95. package/dist/contracts/grant-copy.d.ts +43 -0
  96. package/dist/contracts/grant-copy.js +44 -0
  97. package/dist/contracts/grants.d.ts +64 -56
  98. package/dist/contracts/grants.js +124 -23
  99. package/dist/contracts/ids.d.ts +4 -1
  100. package/dist/contracts/ids.js +4 -1
  101. package/dist/contracts/internal.d.ts +5 -4
  102. package/dist/contracts/internal.js +12 -3
  103. package/dist/contracts/mcp.d.ts +17 -0
  104. package/dist/contracts/mcp.js +23 -0
  105. package/dist/contracts/me.d.ts +6 -1
  106. package/dist/contracts/me.js +12 -6
  107. package/dist/contracts/notifications.d.ts +27 -29
  108. package/dist/contracts/notifications.js +9 -4
  109. package/dist/contracts/oauth-resources.d.ts +112 -10
  110. package/dist/contracts/oauth-resources.js +116 -11
  111. package/dist/contracts/oauth-scope-actions.d.ts +90 -0
  112. package/dist/contracts/oauth-scope-actions.js +126 -0
  113. package/dist/contracts/operations.d.ts +27 -4
  114. package/dist/contracts/operations.js +11 -5
  115. package/dist/contracts/pages.d.ts +29 -5
  116. package/dist/contracts/pages.js +22 -5
  117. package/dist/contracts/partner-notifications.d.ts +3 -0
  118. package/dist/contracts/partner-notifications.js +65 -0
  119. package/dist/contracts/{platform.d.ts → partner.d.ts} +29 -42
  120. package/dist/contracts/{platform.js → partner.js} +27 -40
  121. package/dist/contracts/plan-policy.d.ts +1 -1
  122. package/dist/contracts/principal-assertion.d.ts +43 -0
  123. package/dist/contracts/principal-assertion.js +67 -0
  124. package/dist/contracts/principals.d.ts +73 -0
  125. package/dist/contracts/principals.js +59 -0
  126. package/dist/contracts/privacy.d.ts +11 -0
  127. package/dist/contracts/privacy.js +17 -0
  128. package/dist/contracts/problem-document.js +3 -4
  129. package/dist/contracts/publish-archive.d.ts +116 -18
  130. package/dist/contracts/publish-archive.js +6 -3
  131. package/dist/contracts/push-new.d.ts +4 -4
  132. package/dist/contracts/quotas.js +3 -3
  133. package/dist/contracts/realtime.d.ts +52 -0
  134. package/dist/contracts/realtime.js +54 -0
  135. package/dist/contracts/repository-connections.d.ts +1 -1
  136. package/dist/contracts/repository-connections.js +6 -2
  137. package/dist/contracts/resources.d.ts +105 -14
  138. package/dist/contracts/resources.js +145 -21
  139. package/dist/contracts/route-inventory.d.ts +358 -0
  140. package/dist/contracts/route-inventory.js +141 -0
  141. package/dist/contracts/runtime-api.d.ts +112 -35
  142. package/dist/contracts/runtime-api.js +86 -66
  143. package/dist/contracts/runtime-app.d.ts +11 -21
  144. package/dist/contracts/runtime-app.js +39 -24
  145. package/dist/contracts/runtime-components.d.ts +143 -0
  146. package/dist/contracts/runtime-components.js +199 -0
  147. package/dist/contracts/runtime-db.d.ts +45 -19
  148. package/dist/contracts/runtime-db.js +85 -20
  149. package/dist/contracts/runtime-purge.js +3 -5
  150. package/dist/contracts/runtime-services.d.ts +43 -75
  151. package/dist/contracts/runtime-services.js +29 -49
  152. package/dist/contracts/runtime-storage.d.ts +14 -14
  153. package/dist/contracts/runtime-storage.js +28 -13
  154. package/dist/contracts/sf-config-v1.d.ts +14 -18
  155. package/dist/contracts/slugs.js +13 -4
  156. package/dist/contracts/space-config.d.ts +235 -28
  157. package/dist/contracts/space-config.js +246 -91
  158. package/dist/contracts/spaces.d.ts +360 -255
  159. package/dist/contracts/spaces.js +190 -122
  160. package/dist/contracts/superadmin-activity.d.ts +3 -43
  161. package/dist/contracts/superadmin-activity.js +6 -30
  162. package/dist/contracts/superadmin-emails.d.ts +1 -0
  163. package/dist/contracts/superadmin-emails.js +17 -1
  164. package/dist/contracts/superadmin-runtime.d.ts +199 -0
  165. package/dist/contracts/superadmin-runtime.js +141 -0
  166. package/dist/contracts/superadmin-search.d.ts +22 -2
  167. package/dist/contracts/superadmin-search.js +14 -6
  168. package/dist/contracts/superadmin-spaces.d.ts +435 -186
  169. package/dist/contracts/superadmin-spaces.js +131 -25
  170. package/dist/contracts/superadmin-teams.d.ts +3 -0
  171. package/dist/contracts/superadmin-teams.js +1 -2
  172. package/dist/contracts/superadmin-tenants.d.ts +627 -6
  173. package/dist/contracts/superadmin-tenants.js +32 -7
  174. package/dist/contracts/superadmin.d.ts +98 -16
  175. package/dist/contracts/superadmin.js +63 -10
  176. package/dist/contracts/tags.d.ts +85 -58
  177. package/dist/contracts/tags.js +44 -34
  178. package/dist/contracts/teams.d.ts +72 -9
  179. package/dist/contracts/teams.js +84 -25
  180. package/dist/contracts/tenants.d.ts +135 -0
  181. package/dist/contracts/tenants.js +120 -0
  182. package/dist/contracts/test-triggers.d.ts +70 -0
  183. package/dist/contracts/test-triggers.js +116 -0
  184. package/dist/contracts/theme-json.js +3 -8
  185. package/dist/contracts/transfers.d.ts +1 -0
  186. package/dist/contracts/transfers.js +1 -0
  187. package/dist/contracts/usage.d.ts +209 -0
  188. package/dist/contracts/usage.js +124 -12
  189. package/dist/contracts/variables.d.ts +2 -2
  190. package/dist/contracts/variables.js +9 -13
  191. package/dist/contracts/webhooks.d.ts +13 -5
  192. package/dist/contracts/webhooks.js +3 -1
  193. package/dist/contracts/zero.d.ts +57 -64
  194. package/dist/contracts/zero.js +68 -66
  195. package/dist/dashboard-paths/index.d.ts +24 -21
  196. package/dist/dashboard-paths/index.js +35 -47
  197. package/dist/dashboard-paths/route-reservations.generated.d.ts +2 -0
  198. package/dist/dashboard-paths/route-reservations.generated.js +36 -0
  199. package/dist/docs/agent-arrival.d.ts +92 -0
  200. package/dist/docs/agent-arrival.js +227 -0
  201. package/dist/docs/agent-output-policy.d.ts +6 -0
  202. package/dist/docs/agent-output-policy.js +22 -0
  203. package/dist/docs/agent-prose.d.ts +11 -17
  204. package/dist/docs/agent-prose.js +62 -37
  205. package/dist/docs/agent-setup.d.ts +72 -41
  206. package/dist/docs/agent-setup.js +336 -436
  207. package/dist/docs/catalog.d.ts +147 -89
  208. package/dist/docs/catalog.js +157 -42
  209. package/dist/docs/error-docs.d.ts +2098 -1
  210. package/dist/docs/error-docs.js +281 -16
  211. package/dist/docs/index-build.d.ts +0 -1
  212. package/dist/docs/index-build.js +2 -3
  213. package/dist/docs/page-context-prompt.d.ts +77 -0
  214. package/dist/docs/page-context-prompt.js +131 -0
  215. package/dist/docs/reference-urls.d.ts +46 -0
  216. package/dist/docs/reference-urls.js +79 -0
  217. package/dist/docs/search.d.ts +6 -8
  218. package/dist/docs/search.js +10 -13
  219. package/dist/docs/skill-distribution.d.ts +4 -1
  220. package/dist/docs/skill-distribution.js +10 -5
  221. package/dist/docs/skills.d.ts +117 -117
  222. package/dist/docs/skills.js +120 -72
  223. package/dist/docs/start-prompts.d.ts +45 -0
  224. package/dist/docs/start-prompts.js +62 -0
  225. package/dist/domain-exploration.js +9 -13
  226. package/dist/og-template.d.ts +56 -0
  227. package/dist/og-template.js +56 -0
  228. package/dist/slug-policy/index.js +5 -11
  229. package/dist/utils/browser-credential.d.ts +13 -6
  230. package/dist/utils/browser-credential.js +14 -7
  231. package/dist/utils/build-settings.d.ts +16 -0
  232. package/dist/utils/build-settings.js +63 -17
  233. package/dist/utils/canonical-json.d.ts +3 -5
  234. package/dist/utils/canonical-json.js +3 -5
  235. package/dist/utils/cast-transport.d.ts +5 -17
  236. package/dist/utils/cast-transport.js +6 -19
  237. package/dist/utils/claim-token.js +1 -2
  238. package/dist/utils/comment-avatars.js +4 -6
  239. package/dist/utils/concurrency.js +2 -3
  240. package/dist/utils/content-type.d.ts +7 -6
  241. package/dist/utils/content-type.js +73 -51
  242. package/dist/utils/credential-policy.d.ts +50 -6
  243. package/dist/utils/credential-policy.js +123 -57
  244. package/dist/utils/egress-policy.fixtures.json +1 -1
  245. package/dist/utils/generate-space-name.d.ts +3 -8
  246. package/dist/utils/generate-space-name.js +3 -8
  247. package/dist/utils/grants.d.ts +0 -1
  248. package/dist/utils/grants.js +4 -7
  249. package/dist/utils/gravatar.d.ts +2 -4
  250. package/dist/utils/gravatar.js +6 -12
  251. package/dist/utils/id-hints.js +14 -23
  252. package/dist/utils/idempotency.d.ts +3 -3
  253. package/dist/utils/idempotency.js +6 -7
  254. package/dist/utils/local-space-state.d.ts +15 -15
  255. package/dist/utils/local-space-state.js +34 -23
  256. package/dist/utils/oauth-signed-query.d.ts +3 -5
  257. package/dist/utils/oauth-signed-query.js +6 -9
  258. package/dist/utils/one-shot-replay.d.ts +3 -5
  259. package/dist/utils/one-shot-replay.js +3 -5
  260. package/dist/utils/page-colors.d.ts +4 -10
  261. package/dist/utils/page-colors.js +11 -35
  262. package/dist/utils/page-fonts.js +6 -11
  263. package/dist/utils/page-preview.d.ts +0 -1
  264. package/dist/utils/page-preview.js +0 -1
  265. package/dist/utils/pages.d.ts +22 -11
  266. package/dist/utils/pages.js +70 -30
  267. package/dist/utils/privacy-regions.d.ts +19 -0
  268. package/dist/utils/privacy-regions.js +91 -0
  269. package/dist/utils/publish-form-data.d.ts +4 -5
  270. package/dist/utils/publish-form-data.js +2 -3
  271. package/dist/utils/publish-policy.d.ts +10 -23
  272. package/dist/utils/publish-policy.js +63 -116
  273. package/dist/utils/query-client.d.ts +2 -0
  274. package/dist/utils/query-client.js +10 -1
  275. package/dist/utils/runtime-paths.d.ts +4 -4
  276. package/dist/utils/runtime-paths.js +6 -8
  277. package/dist/utils/runtime-upload.d.ts +4 -0
  278. package/dist/utils/runtime-upload.js +5 -0
  279. package/dist/utils/secure-local-file.d.ts +3 -3
  280. package/dist/utils/secure-local-file.js +18 -24
  281. package/dist/utils/space-config.d.ts +11 -14
  282. package/dist/utils/space-config.js +10 -16
  283. package/dist/utils/static-runtime-policy.d.ts +5 -8
  284. package/dist/utils/static-runtime-policy.generated.d.ts +16 -0
  285. package/dist/utils/static-runtime-policy.generated.js +70 -0
  286. package/dist/utils/static-runtime-policy.js +17 -84
  287. package/dist/utils/storage-policy.js +1 -2
  288. package/dist/utils/upload-session.js +8 -14
  289. package/dist/utils/version-path.js +11 -19
  290. package/dist/utils/wpcom-auth-redirects.d.ts +5 -14
  291. package/dist/utils/wpcom-auth-redirects.js +1 -4
  292. package/dist/vocabulary.d.ts +7 -7
  293. package/dist/vocabulary.js +30 -16
  294. package/package.json +14 -2
  295. package/dist/agents/client-registry.d.ts +0 -22
  296. package/dist/agents/client-registry.js +0 -41
  297. package/dist/docs/agent-handoff-document.d.ts +0 -15
  298. package/dist/docs/agent-handoff-document.js +0 -180
  299. package/dist/docs/agent-solutions.d.ts +0 -110
  300. package/dist/docs/agent-solutions.js +0 -183
  301. package/dist/utils/query-keys.d.ts +0 -84
  302. package/dist/utils/query-keys.js +0 -108
@@ -3,10 +3,8 @@ import { AnyObjectSchema, CursorPaginationSchema } from "./common.js";
3
3
  export const superadminActivityListQuerySchema = z.object({
4
4
  limit: z.coerce.number().int().min(1).max(100).default(50),
5
5
  });
6
- // Cross-tenant reader over the `activity_events` audit log. Every superadmin
7
- // mutation appends there, but only tenant-scoped /v1 readers existed; this is
8
- // the operator's view of the same rows. At least one selective filter is
9
- // required (see the route) so a query lands on one of the table's indexes
6
+ // Cross-tenant reader over the `activity_events` audit log. At least one
7
+ // selective filter is required (see the route) so a query lands on an index
10
8
  // instead of scanning the whole log.
11
9
  export const superadminActivityEventQuerySchema = z.object({
12
10
  spaceId: z.string().min(1).optional().describe("Filter to events for one Space, cross-tenant."),
@@ -21,7 +19,7 @@ export const superadminActivityEventQuerySchema = z.object({
21
19
  .optional()
22
20
  .describe("Owning principal id; must be paired with principalType."),
23
21
  actorType: z
24
- .enum(["user", "api_key", "oauth_client", "anonymous_claim", "system"])
22
+ .enum(["user", "api_key", "partner_token", "oauth_client", "anonymous_claim", "system"])
25
23
  .optional()
26
24
  .describe("Actor kind; must be paired with actorId."),
27
25
  actorId: z.string().min(1).optional().describe("Actor id; must be paired with actorType."),
@@ -30,8 +28,8 @@ export const superadminActivityEventQuerySchema = z.object({
30
28
  limit: z.coerce.number().int().min(1).max(200).default(50),
31
29
  cursor: z.string().min(1).optional(),
32
30
  });
33
- // Operator surface: `message` and `details` are the raw audit payloads, not the
34
- // tenant-facing projection. Nothing here widens any /v1 response.
31
+ // `message` and `details` are the raw audit payloads, not the tenant-facing
32
+ // projection.
35
33
  export const SuperadminActivityEventSchema = z.object({
36
34
  id: z.string(),
37
35
  sequence: z.number().int().nonnegative(),
@@ -57,7 +55,7 @@ export const SuperadminLatestUserSchema = z.object({
57
55
  role: z.string().nullable(),
58
56
  banned: z.boolean(),
59
57
  isAutomattician: z.boolean(),
60
- wpcom: z.boolean(),
58
+ automatticBetaGrant: z.boolean(),
61
59
  betaEnrolledAt: z.string().datetime().nullable(),
62
60
  createdAt: z.string().datetime(),
63
61
  updatedAt: z.string().datetime(),
@@ -67,28 +65,6 @@ export const SuperadminLatestUserSchema = z.object({
67
65
  export const SuperadminLatestUserListSchema = z.object({
68
66
  users: z.array(SuperadminLatestUserSchema),
69
67
  });
70
- export const SuperadminLatestSpaceSchema = z.object({
71
- id: z.string(),
72
- title: z.string(),
73
- slug: z.string(),
74
- status: z.string(),
75
- tenantId: z.string(),
76
- tenantName: z.string().nullable(),
77
- teamId: z.string().nullable(),
78
- teamSlug: z.string().nullable(),
79
- teamName: z.string().nullable(),
80
- externalCustomerId: z.string().nullable(),
81
- siteId: z.string().nullable(),
82
- siteStatus: z.string().nullable(),
83
- liveHostname: z.string().nullable(),
84
- disabledAt: z.string().datetime().nullable(),
85
- deletedAt: z.string().datetime().nullable(),
86
- createdAt: z.string().datetime(),
87
- updatedAt: z.string().datetime(),
88
- });
89
- export const SuperadminLatestSpaceListSchema = z.object({
90
- spaces: z.array(SuperadminLatestSpaceSchema),
91
- });
92
68
  export const SuperadminLatestVersionSchema = z.object({
93
69
  id: z.string(),
94
70
  number: z.number().int().nullable(),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export declare const superadminEmailStatusValues: readonly ["all", "scheduled", "sent", "suppressed", "delivered", "bounced", "dropped", "complained", "opened", "clicked", "failed"];
3
3
  export declare const superadminEmailCategoryValues: readonly ["transactional", "announcements", "offers", "system", "invites"];
4
+ export declare const emailMailboxSchema: z.ZodString;
4
5
  export declare const superadminEmailListQuerySchema: z.ZodObject<{
5
6
  limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
6
7
  offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
@@ -18,6 +18,22 @@ export const superadminEmailStatusValues = [
18
18
  // Delivery category is provider-facing telemetry/routing. Recipient control is
19
19
  // modeled independently by preferenceTopic; essential auth has no topic.
20
20
  export const superadminEmailCategoryValues = emailCategoryValues;
21
+ const bareEmailAddressSchema = z.string().email();
22
+ const namedMailboxPattern = /^(?:"(?:[^"\\\r\n]|\\.)*"|[^<>\r\n]+)\s*<([^<>\r\n]+)>$/;
23
+ // The stored sender is the provider-facing RFC mailbox header, not necessarily
24
+ // a bare addr-spec. Resend accepts both `hello@example.com` and
25
+ // `Spacefast <hello@example.com>`; the operator API must preserve that value.
26
+ export const emailMailboxSchema = z
27
+ .string()
28
+ .trim()
29
+ .min(1)
30
+ .max(320)
31
+ .refine((value) => {
32
+ if (bareEmailAddressSchema.safeParse(value).success)
33
+ return true;
34
+ const address = namedMailboxPattern.exec(value)?.[1]?.trim();
35
+ return address !== undefined && bareEmailAddressSchema.safeParse(address).success;
36
+ }, "Invalid email mailbox.");
21
37
  export const superadminEmailListQuerySchema = z.object({
22
38
  limit: z.coerce.number().int().min(1).max(100).default(25),
23
39
  offset: z.coerce.number().int().min(0).default(0),
@@ -75,7 +91,7 @@ export const SuperadminEmailSchema = z.object({
75
91
  })
76
92
  .nullable(),
77
93
  to: z.string().email(),
78
- from: z.string().email(),
94
+ from: emailMailboxSchema,
79
95
  subject: z.string(),
80
96
  text: z.string(),
81
97
  html: z.string().nullable(),
@@ -0,0 +1,199 @@
1
+ import { z } from "zod";
2
+ export declare const superadminRuntimeRevisionSchema: z.ZodString;
3
+ export declare const SuperadminRuntimeReleaseSchema: z.ZodObject<{
4
+ revision: z.ZodString;
5
+ tag: z.ZodString;
6
+ zipUrl: z.ZodString;
7
+ md5: z.ZodString;
8
+ nativeSha256: z.ZodString;
9
+ admissionPercent: z.ZodNumber;
10
+ promotedAt: z.ZodString;
11
+ current: z.ZodBoolean;
12
+ }, z.core.$strict>;
13
+ export declare const SuperadminRuntimeFleetBoxSchema: z.ZodObject<{
14
+ kind: z.ZodEnum<{
15
+ space: "space";
16
+ pool: "pool";
17
+ }>;
18
+ id: z.ZodString;
19
+ slug: z.ZodNullable<z.ZodString>;
20
+ title: z.ZodNullable<z.ZodString>;
21
+ reportedRevision: z.ZodNullable<z.ZodString>;
22
+ pinnedRevision: z.ZodNullable<z.ZodString>;
23
+ desiredRevision: z.ZodNullable<z.ZodString>;
24
+ reportedAt: z.ZodNullable<z.ZodString>;
25
+ syncState: z.ZodEnum<{
26
+ failed: "failed";
27
+ running: "running";
28
+ pending: "pending";
29
+ idle: "idle";
30
+ }>;
31
+ }, z.core.$strict>;
32
+ export declare const SuperadminRuntimeStatusSchema: z.ZodObject<{
33
+ checkedAt: z.ZodString;
34
+ releaseRepo: z.ZodString;
35
+ latest: z.ZodNullable<z.ZodObject<{
36
+ revision: z.ZodString;
37
+ tag: z.ZodString;
38
+ zipUrl: z.ZodString;
39
+ md5: z.ZodString;
40
+ nativeSha256: z.ZodString;
41
+ admissionPercent: z.ZodNumber;
42
+ promotedAt: z.ZodString;
43
+ current: z.ZodBoolean;
44
+ }, z.core.$strict>>;
45
+ releases: z.ZodArray<z.ZodObject<{
46
+ revision: z.ZodString;
47
+ tag: z.ZodString;
48
+ zipUrl: z.ZodString;
49
+ md5: z.ZodString;
50
+ nativeSha256: z.ZodString;
51
+ admissionPercent: z.ZodNumber;
52
+ promotedAt: z.ZodString;
53
+ current: z.ZodBoolean;
54
+ }, z.core.$strict>>;
55
+ available: z.ZodNullable<z.ZodArray<z.ZodObject<{
56
+ revision: z.ZodString;
57
+ tag: z.ZodString;
58
+ publishedAt: z.ZodNullable<z.ZodString>;
59
+ promoted: z.ZodBoolean;
60
+ current: z.ZodBoolean;
61
+ }, z.core.$strict>>>;
62
+ fleet: z.ZodNullable<z.ZodObject<{
63
+ spaces: z.ZodObject<{
64
+ total: z.ZodNumber;
65
+ current: z.ZodNumber;
66
+ diverged: z.ZodNumber;
67
+ pinned: z.ZodNumber;
68
+ }, z.core.$strip>;
69
+ pool: z.ZodObject<{
70
+ total: z.ZodNumber;
71
+ current: z.ZodNumber;
72
+ diverged: z.ZodNumber;
73
+ }, z.core.$strip>;
74
+ divergedBoxes: z.ZodArray<z.ZodObject<{
75
+ kind: z.ZodEnum<{
76
+ space: "space";
77
+ pool: "pool";
78
+ }>;
79
+ id: z.ZodString;
80
+ slug: z.ZodNullable<z.ZodString>;
81
+ title: z.ZodNullable<z.ZodString>;
82
+ reportedRevision: z.ZodNullable<z.ZodString>;
83
+ pinnedRevision: z.ZodNullable<z.ZodString>;
84
+ desiredRevision: z.ZodNullable<z.ZodString>;
85
+ reportedAt: z.ZodNullable<z.ZodString>;
86
+ syncState: z.ZodEnum<{
87
+ failed: "failed";
88
+ running: "running";
89
+ pending: "pending";
90
+ idle: "idle";
91
+ }>;
92
+ }, z.core.$strict>>;
93
+ pinnedSpaces: z.ZodArray<z.ZodObject<{
94
+ kind: z.ZodEnum<{
95
+ space: "space";
96
+ pool: "pool";
97
+ }>;
98
+ id: z.ZodString;
99
+ slug: z.ZodNullable<z.ZodString>;
100
+ title: z.ZodNullable<z.ZodString>;
101
+ reportedRevision: z.ZodNullable<z.ZodString>;
102
+ pinnedRevision: z.ZodNullable<z.ZodString>;
103
+ desiredRevision: z.ZodNullable<z.ZodString>;
104
+ reportedAt: z.ZodNullable<z.ZodString>;
105
+ syncState: z.ZodEnum<{
106
+ failed: "failed";
107
+ running: "running";
108
+ pending: "pending";
109
+ idle: "idle";
110
+ }>;
111
+ }, z.core.$strict>>;
112
+ }, z.core.$strip>>;
113
+ }, z.core.$strict>;
114
+ export declare const superadminRuntimePreviewBodySchema: z.ZodObject<{
115
+ revision: z.ZodString;
116
+ }, z.core.$strict>;
117
+ export declare const SuperadminRuntimePreviewActionSchema: z.ZodObject<{
118
+ action: z.ZodEnum<{
119
+ rollback: "rollback";
120
+ retry: "retry";
121
+ promote: "promote";
122
+ }>;
123
+ admissionPercent: z.ZodUnion<readonly [z.ZodLiteral<10>, z.ZodLiteral<50>, z.ZodLiteral<100>]>;
124
+ affected: z.ZodObject<{
125
+ spaces: z.ZodNumber;
126
+ pool: z.ZodNumber;
127
+ }, z.core.$strict>;
128
+ }, z.core.$strict>;
129
+ export declare const SuperadminRuntimePreviewSchema: z.ZodObject<{
130
+ revision: z.ZodString;
131
+ tag: z.ZodString;
132
+ zipUrl: z.ZodString;
133
+ md5: z.ZodString;
134
+ nativeSha256: z.ZodString;
135
+ previouslyPromotedAt: z.ZodNullable<z.ZodString>;
136
+ currentRevision: z.ZodNullable<z.ZodString>;
137
+ actions: z.ZodArray<z.ZodObject<{
138
+ action: z.ZodEnum<{
139
+ rollback: "rollback";
140
+ retry: "retry";
141
+ promote: "promote";
142
+ }>;
143
+ admissionPercent: z.ZodUnion<readonly [z.ZodLiteral<10>, z.ZodLiteral<50>, z.ZodLiteral<100>]>;
144
+ affected: z.ZodObject<{
145
+ spaces: z.ZodNumber;
146
+ pool: z.ZodNumber;
147
+ }, z.core.$strict>;
148
+ }, z.core.$strict>>;
149
+ }, z.core.$strict>;
150
+ export declare const superadminRuntimePromoteBodySchema: z.ZodObject<{
151
+ revision: z.ZodString;
152
+ confirmRevision: z.ZodString;
153
+ action: z.ZodEnum<{
154
+ rollback: "rollback";
155
+ retry: "retry";
156
+ promote: "promote";
157
+ }>;
158
+ admissionPercent: z.ZodUnion<readonly [z.ZodLiteral<10>, z.ZodLiteral<50>, z.ZodLiteral<100>]>;
159
+ }, z.core.$strict>;
160
+ export declare const SuperadminRuntimeMutationSchema: z.ZodObject<{
161
+ revision: z.ZodString;
162
+ admissionPercent: z.ZodNumber;
163
+ accepted: z.ZodNumber;
164
+ queued: z.ZodNumber;
165
+ }, z.core.$strict>;
166
+ export declare const superadminRuntimeAdmissionBodySchema: z.ZodObject<{
167
+ admissionPercent: z.ZodUnion<readonly [z.ZodLiteral<10>, z.ZodLiteral<50>, z.ZodLiteral<100>]>;
168
+ confirm: z.ZodLiteral<true>;
169
+ }, z.core.$strict>;
170
+ export declare const superadminRuntimeSyncBodySchema: z.ZodObject<{
171
+ spaceIds: z.ZodArray<z.ZodString>;
172
+ action: z.ZodEnum<{
173
+ pin: "pin";
174
+ sync: "sync";
175
+ unpin: "unpin";
176
+ }>;
177
+ revision: z.ZodOptional<z.ZodString>;
178
+ force: z.ZodOptional<z.ZodBoolean>;
179
+ }, z.core.$strict>;
180
+ export declare const SuperadminRuntimeSyncResponseSchema: z.ZodObject<{
181
+ accepted: z.ZodNumber;
182
+ queued: z.ZodNumber;
183
+ spaces: z.ZodArray<z.ZodObject<{
184
+ spaceId: z.ZodString;
185
+ targetRevision: z.ZodNullable<z.ZodString>;
186
+ desiredRevision: z.ZodNullable<z.ZodString>;
187
+ state: z.ZodEnum<{
188
+ failed: "failed";
189
+ running: "running";
190
+ pending: "pending";
191
+ idle: "idle";
192
+ }>;
193
+ }, z.core.$strict>>;
194
+ }, z.core.$strict>;
195
+ export type SuperadminRuntimeStatus = z.infer<typeof SuperadminRuntimeStatusSchema>;
196
+ export type SuperadminRuntimePreview = z.infer<typeof SuperadminRuntimePreviewSchema>;
197
+ export type SuperadminRuntimePreviewAction = z.infer<typeof SuperadminRuntimePreviewActionSchema>;
198
+ export type SuperadminRuntimeMutation = z.infer<typeof SuperadminRuntimeMutationSchema>;
199
+ export type SuperadminRuntimeSyncResponse = z.infer<typeof SuperadminRuntimeSyncResponseSchema>;
@@ -0,0 +1,141 @@
1
+ import { z } from "zod";
2
+ export const superadminRuntimeRevisionSchema = z.string().trim().min(1).max(191);
3
+ export const SuperadminRuntimeReleaseSchema = z
4
+ .object({
5
+ revision: z.string(),
6
+ tag: z.string(),
7
+ zipUrl: z.string(),
8
+ md5: z.string(),
9
+ nativeSha256: z.string(),
10
+ admissionPercent: z.number().int().min(0).max(100),
11
+ promotedAt: z.string(),
12
+ current: z.boolean(),
13
+ })
14
+ .strict();
15
+ export const SuperadminRuntimeFleetBoxSchema = z
16
+ .object({
17
+ kind: z.enum(["space", "pool"]),
18
+ id: z.string(),
19
+ slug: z.string().nullable(),
20
+ title: z.string().nullable(),
21
+ reportedRevision: z.string().nullable(),
22
+ pinnedRevision: z.string().nullable(),
23
+ desiredRevision: z.string().nullable(),
24
+ reportedAt: z.string().datetime().nullable(),
25
+ syncState: z.enum(["idle", "pending", "running", "failed"]),
26
+ })
27
+ .strict();
28
+ export const SuperadminRuntimeStatusSchema = z
29
+ .object({
30
+ checkedAt: z.string().datetime(),
31
+ releaseRepo: z.string(),
32
+ latest: SuperadminRuntimeReleaseSchema.nullable(),
33
+ releases: z.array(SuperadminRuntimeReleaseSchema),
34
+ available: z
35
+ .array(z
36
+ .object({
37
+ revision: z.string(),
38
+ tag: z.string(),
39
+ publishedAt: z.string().datetime().nullable(),
40
+ promoted: z.boolean(),
41
+ current: z.boolean(),
42
+ })
43
+ .strict())
44
+ .nullable(),
45
+ fleet: z
46
+ .object({
47
+ spaces: z.object({
48
+ total: z.number().int().nonnegative(),
49
+ current: z.number().int().nonnegative(),
50
+ diverged: z.number().int().nonnegative(),
51
+ pinned: z.number().int().nonnegative(),
52
+ }),
53
+ pool: z.object({
54
+ total: z.number().int().nonnegative(),
55
+ current: z.number().int().nonnegative(),
56
+ diverged: z.number().int().nonnegative(),
57
+ }),
58
+ divergedBoxes: z.array(SuperadminRuntimeFleetBoxSchema),
59
+ pinnedSpaces: z.array(SuperadminRuntimeFleetBoxSchema),
60
+ })
61
+ .nullable(),
62
+ })
63
+ .strict();
64
+ export const superadminRuntimePreviewBodySchema = z
65
+ .object({ revision: superadminRuntimeRevisionSchema })
66
+ .strict();
67
+ export const SuperadminRuntimePreviewActionSchema = z
68
+ .object({
69
+ action: z.enum(["promote", "rollback", "retry"]),
70
+ admissionPercent: z.union([z.literal(10), z.literal(50), z.literal(100)]),
71
+ affected: z.object({ spaces: z.number().int(), pool: z.number().int() }).strict(),
72
+ })
73
+ .strict();
74
+ export const SuperadminRuntimePreviewSchema = z
75
+ .object({
76
+ revision: z.string(),
77
+ tag: z.string(),
78
+ zipUrl: z.string(),
79
+ md5: z.string(),
80
+ nativeSha256: z.string(),
81
+ previouslyPromotedAt: z.string().nullable(),
82
+ currentRevision: z.string().nullable(),
83
+ actions: z.array(SuperadminRuntimePreviewActionSchema).min(1),
84
+ })
85
+ .strict();
86
+ export const superadminRuntimePromoteBodySchema = z
87
+ .object({
88
+ revision: superadminRuntimeRevisionSchema,
89
+ confirmRevision: superadminRuntimeRevisionSchema,
90
+ action: z.enum(["promote", "rollback", "retry"]),
91
+ admissionPercent: z.union([z.literal(10), z.literal(50), z.literal(100)]),
92
+ })
93
+ .strict();
94
+ export const SuperadminRuntimeMutationSchema = z
95
+ .object({
96
+ revision: z.string(),
97
+ admissionPercent: z.number().int().min(0).max(100),
98
+ accepted: z.number().int().nonnegative(),
99
+ queued: z.number().int().nonnegative(),
100
+ })
101
+ .strict();
102
+ export const superadminRuntimeAdmissionBodySchema = z
103
+ .object({
104
+ admissionPercent: z.union([z.literal(10), z.literal(50), z.literal(100)]),
105
+ confirm: z.literal(true),
106
+ })
107
+ .strict();
108
+ export const superadminRuntimeSyncBodySchema = z
109
+ .object({
110
+ spaceIds: z.array(z.string().min(1)).min(1).max(100),
111
+ action: z.enum(["sync", "pin", "unpin"]),
112
+ revision: superadminRuntimeRevisionSchema.optional(),
113
+ force: z.boolean().optional(),
114
+ })
115
+ .strict()
116
+ .superRefine((value, context) => {
117
+ if (value.action === "pin" && !value.revision) {
118
+ context.addIssue({ code: "custom", path: ["revision"], message: "Pin requires a revision." });
119
+ }
120
+ if (value.action !== "pin" && value.revision !== undefined) {
121
+ context.addIssue({
122
+ code: "custom",
123
+ path: ["revision"],
124
+ message: "Only pin accepts a revision.",
125
+ });
126
+ }
127
+ });
128
+ export const SuperadminRuntimeSyncResponseSchema = z
129
+ .object({
130
+ accepted: z.number().int().nonnegative(),
131
+ queued: z.number().int().nonnegative(),
132
+ spaces: z.array(z
133
+ .object({
134
+ spaceId: z.string(),
135
+ targetRevision: z.string().nullable(),
136
+ desiredRevision: z.string().nullable(),
137
+ state: z.enum(["idle", "pending", "running", "failed"]),
138
+ })
139
+ .strict()),
140
+ })
141
+ .strict();
@@ -9,10 +9,10 @@ export declare const SuperadminSearchHitSchema: z.ZodDiscriminatedUnion<[z.ZodOb
9
9
  teamSlug: z.ZodNullable<z.ZodString>;
10
10
  status: z.ZodEnum<{
11
11
  active: "active";
12
+ failed: "failed";
12
13
  provisioning: "provisioning";
13
14
  updating: "updating";
14
15
  deleting: "deleting";
15
- failed: "failed";
16
16
  }>;
17
17
  anonymous: z.ZodBoolean;
18
18
  }, z.core.$strip>, z.ZodObject<{
@@ -46,15 +46,25 @@ export declare const SuperadminSearchHitSchema: z.ZodDiscriminatedUnion<[z.ZodOb
46
46
  ready_pool: "ready_pool";
47
47
  degraded: "degraded";
48
48
  retired: "retired";
49
+ cleanup_pending: "cleanup_pending";
49
50
  }>;
51
+ }, z.core.$strip>, z.ZodObject<{
52
+ kind: z.ZodLiteral<"operation">;
53
+ id: z.ZodString;
54
+ eventType: z.ZodString;
55
+ status: z.ZodString;
56
+ resourceType: z.ZodString;
57
+ resourceId: z.ZodString;
50
58
  }, z.core.$strip>, z.ZodObject<{
51
59
  kind: z.ZodLiteral<"hostname">;
52
60
  hostname: z.ZodString;
53
61
  spaceId: z.ZodString;
54
62
  matchedBy: z.ZodEnum<{
55
63
  domain: "domain";
64
+ retired: "retired";
56
65
  hostname: "hostname";
57
66
  derived: "derived";
67
+ retained: "retained";
58
68
  }>;
59
69
  }, z.core.$strip>], "kind">;
60
70
  export declare const SuperadminSearchResultSchema: z.ZodObject<{
@@ -69,10 +79,10 @@ export declare const SuperadminSearchResultSchema: z.ZodObject<{
69
79
  teamSlug: z.ZodNullable<z.ZodString>;
70
80
  status: z.ZodEnum<{
71
81
  active: "active";
82
+ failed: "failed";
72
83
  provisioning: "provisioning";
73
84
  updating: "updating";
74
85
  deleting: "deleting";
75
- failed: "failed";
76
86
  }>;
77
87
  anonymous: z.ZodBoolean;
78
88
  }, z.core.$strip>, z.ZodObject<{
@@ -106,15 +116,25 @@ export declare const SuperadminSearchResultSchema: z.ZodObject<{
106
116
  ready_pool: "ready_pool";
107
117
  degraded: "degraded";
108
118
  retired: "retired";
119
+ cleanup_pending: "cleanup_pending";
109
120
  }>;
121
+ }, z.core.$strip>, z.ZodObject<{
122
+ kind: z.ZodLiteral<"operation">;
123
+ id: z.ZodString;
124
+ eventType: z.ZodString;
125
+ status: z.ZodString;
126
+ resourceType: z.ZodString;
127
+ resourceId: z.ZodString;
110
128
  }, z.core.$strip>, z.ZodObject<{
111
129
  kind: z.ZodLiteral<"hostname">;
112
130
  hostname: z.ZodString;
113
131
  spaceId: z.ZodString;
114
132
  matchedBy: z.ZodEnum<{
115
133
  domain: "domain";
134
+ retired: "retired";
116
135
  hostname: "hostname";
117
136
  derived: "derived";
137
+ retained: "retained";
118
138
  }>;
119
139
  }, z.core.$strip>], "kind">>;
120
140
  }, z.core.$strip>;
@@ -1,9 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { poolSiteStatus, spaceStatus, tenantStatus } from "./enums.js";
3
- // The operator omnibox. One query string, every operator-visible identity:
4
- // spaces, teams, users, tenants, provider sites, and any hostname Spacefast
5
- // serves. Each hit carries just enough to render a row and route to the
6
- // resource — the detail routes own the rest.
3
+ // The operator omnibox: one query string over every operator-visible identity.
4
+ // Each hit carries just enough to render a row and route to the resource.
7
5
  export const SuperadminSearchHitSchema = z.discriminatedUnion("kind", [
8
6
  z.object({
9
7
  kind: z.literal("space"),
@@ -42,13 +40,23 @@ export const SuperadminSearchHitSchema = z.discriminatedUnion("kind", [
42
40
  primaryHostname: z.string(),
43
41
  status: poolSiteStatus,
44
42
  }),
43
+ z.object({
44
+ kind: z.literal("operation"),
45
+ id: z.string(),
46
+ eventType: z.string(),
47
+ status: z.string(),
48
+ resourceType: z.string(),
49
+ resourceId: z.string(),
50
+ }),
45
51
  // A served hostname resolved to its space: default hostname, custom domain,
46
- // version host, or branch alias. `matchedBy` says which of those matched.
52
+ // version host, or branch alias.
47
53
  z.object({
48
54
  kind: z.literal("hostname"),
49
55
  hostname: z.string(),
50
56
  spaceId: z.string(),
51
- matchedBy: z.enum(["domain", "hostname", "derived"]),
57
+ // Mirrors the resolver's full match set (superadmin/investigate.ts):
58
+ // retained/retired hostnames are real lookup outcomes, not errors.
59
+ matchedBy: z.enum(["domain", "hostname", "derived", "retained", "retired"]),
52
60
  }),
53
61
  ]);
54
62
  export const SuperadminSearchResultSchema = z.object({