@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
@@ -41,11 +41,9 @@ export const SuperadminSpaceVersionZeroSchema = z
41
41
  runnerCompatibilityTarget: z.string().nullable(),
42
42
  runnerSha256: z.string().nullable(),
43
43
  blockIncompatibleRollback: z.boolean(),
44
- // No log counts. A capsule's output is the space's runtime log like any
45
- // other tier's, and that lives in one place only — the provider's PHP error
46
- // log, windowed and paged. Summarising it per version would mean scanning
47
- // that window on every superadmin page load; read it on the log surface
48
- // instead.
44
+ // No log counts: a capsule's output goes to the provider's PHP error log
45
+ // like every other tier's, and summarising it per version would scan that
46
+ // window on every page load. Read it on the log surface instead.
49
47
  operations: z
50
48
  .object({
51
49
  replayEventCount: z.number().int().nonnegative(),
@@ -91,13 +89,12 @@ export const SuperadminSpaceDetailSchema = z.object({
91
89
  hostnames: z.array(SuperadminSpaceHostnameSchema),
92
90
  versions: z.array(SuperadminSpaceVersionSchema),
93
91
  });
94
- // Operator view links. Ops Slack links superadmin instead of a customer's own
95
- // private URL, so this is the hop that opens the actual page from an alert.
92
+ // Opens the customer's actual page from an operator alert.
96
93
  export const superadminSpaceViewLinkWriteSchema = z
97
94
  .object({ path: accessScopePathSchema.optional() })
98
95
  .strict();
99
- // Stateless: the URL is a signed token, so there is no row to name, list, or
100
- // revoke individually it simply expires.
96
+ // Stateless: the URL is a signed token. There is nothing to list or revoke, and
97
+ // it expires on its own.
101
98
  export const SuperadminSpaceViewLinkSchema = z
102
99
  .object({
103
100
  landingPath: z.string(),
@@ -105,10 +102,77 @@ export const SuperadminSpaceViewLinkSchema = z
105
102
  url: z.string().url(),
106
103
  })
107
104
  .strict();
108
- // The cross-tenant Space list. Same Space resource the customer API returns —
109
- // operators need the identical shape, not a parallel projection — narrowed by
110
- // the operator-only facets (tenant, team, ownership, lifecycle, serving).
111
- export const SuperadminSpaceListSchema = makeOffsetListSchema("spaces", SpaceSchema, superadminPaginationSchema);
105
+ export const SuperadminEngineSyncStateSchema = z.enum(["idle", "pending", "running", "failed"]);
106
+ export const SuperadminSpacePlacementSchema = z
107
+ .object({
108
+ state: z.enum(["placed", "unplaced"]),
109
+ providerRef: z.string().nullable(),
110
+ providerClientId: z.string().nullable(),
111
+ providerTargetId: z.string().nullable(),
112
+ primaryHostname: z.string().nullable(),
113
+ runtimeInstanceId: z.string().nullable(),
114
+ region: z.string(),
115
+ geoAffinity: z.string().nullable(),
116
+ })
117
+ .strict();
118
+ export const SuperadminSpaceEngineSchema = z
119
+ .object({
120
+ reportedRevision: z.string().nullable(),
121
+ targetRevision: z.string().nullable(),
122
+ desiredRevision: z.string().nullable(),
123
+ reportedAt: z.string().datetime().nullable(),
124
+ state: SuperadminEngineSyncStateSchema,
125
+ lastError: z.string().nullable(),
126
+ attemptCount: z.number().int().nonnegative(),
127
+ nextAttemptAt: z.string().datetime().nullable(),
128
+ diverged: z.boolean(),
129
+ })
130
+ .strict();
131
+ export const SuperadminSpaceLiveVersionSchema = z
132
+ .object({
133
+ id: z.string(),
134
+ number: z.number().int().positive().nullable(),
135
+ status: z.string(),
136
+ })
137
+ .strict();
138
+ export const SuperadminSpaceRetainedDeletionSchema = z
139
+ .object({
140
+ state: z.enum(["pending", "purging", "purged"]),
141
+ requestedAt: z.string().datetime(),
142
+ cleanupDueAt: z.string().datetime(),
143
+ overdue: z.boolean(),
144
+ })
145
+ .strict();
146
+ // The operator directory must also represent damaged legacy rows. A missing
147
+ // default hostname is an issue to repair from Manage, not a reason to fail the
148
+ // whole fleet list against the strict customer Space contract.
149
+ export const SuperadminSpaceListItemSchema = SpaceSchema.pick({
150
+ id: true,
151
+ tenantId: true,
152
+ providerRef: true,
153
+ providerClientId: true,
154
+ teamId: true,
155
+ teamSlug: true,
156
+ anonymous: true,
157
+ slug: true,
158
+ title: true,
159
+ status: true,
160
+ disabled: true,
161
+ dataLocation: true,
162
+ region: true,
163
+ burstable: true,
164
+ archivedBytes: true,
165
+ createdAt: true,
166
+ updatedAt: true,
167
+ }).extend({
168
+ defaultHostname: z.string().nullable(),
169
+ liveUrl: z.string().nullable(),
170
+ placement: SuperadminSpacePlacementSchema,
171
+ engine: SuperadminSpaceEngineSchema,
172
+ liveVersion: SuperadminSpaceLiveVersionSchema.nullable(),
173
+ retainedDeletion: SuperadminSpaceRetainedDeletionSchema.nullable(),
174
+ });
175
+ export const SuperadminSpaceListSchema = makeOffsetListSchema("spaces", SuperadminSpaceListItemSchema, superadminPaginationSchema);
112
176
  export const superadminSpaceListQuerySchema = z.object({
113
177
  limit: z.coerce.number().int().min(1).max(100).default(25),
114
178
  offset: z.coerce.number().int().min(0).default(0),
@@ -117,18 +181,57 @@ export const superadminSpaceListQuerySchema = z.object({
117
181
  search: z.string().trim().optional(),
118
182
  tenantId: z.string().trim().optional(),
119
183
  teamId: z.string().trim().optional(),
120
- // Customer-360: every space owned by any team this user is a member of.
184
+ // Every space owned by any team this user is a member of.
121
185
  memberUserId: z.string().trim().optional(),
122
186
  ownership: z.enum(["team", "external", "anonymous"]).optional(),
123
187
  status: spaceStatus.optional(),
124
- // Serving axis, independent of lifecycle status: true selects spaces whose
125
- // serving is currently disabled (takedown, suspension), false the rest.
188
+ // Independent of lifecycle status: true selects spaces whose serving is
189
+ // disabled (takedown, suspension).
126
190
  disabled: z.stringbool().optional(),
191
+ retainedDeletion: z.enum(["pending", "overdue"]).optional(),
192
+ placement: z.enum(["placed", "unplaced"]).optional(),
193
+ diverged: z.stringbool().optional(),
194
+ engineState: SuperadminEngineSyncStateSchema.optional(),
195
+ engineRevision: z.string().trim().min(1).optional(),
196
+ sort: z.enum(["created", "title", "engine", "placement"]).default("created"),
197
+ direction: z.enum(["asc", "desc"]).default("desc"),
127
198
  });
128
- // Per-space scan visibility. The evidence is content-addressed — one verdict
129
- // per (digest, engine, signature DB version), shared by every version that
130
- // published the same bytes so this projects it back onto the version's
131
- // manifest, which is the coordinate an operator actually has.
199
+ export const SuperadminSpacePurgeResponseSchema = z
200
+ .object({
201
+ // Injected by the control-plane response layer after route validation.
202
+ $schema: z.string().url().optional(),
203
+ spaceId: z.string(),
204
+ operationId: z.string(),
205
+ })
206
+ .strict();
207
+ export const SuperadminManageResponseSchema = z
208
+ .object({
209
+ // Injected by the control-plane response layer after route validation, not
210
+ // by the handler, so the browser-side contract must accept it.
211
+ $schema: z.string().url().optional(),
212
+ entity: z.enum(["space", "pool", "provider_site"]),
213
+ binding: z
214
+ .object({
215
+ spaceId: z.string().nullable(),
216
+ poolId: z.string().nullable(),
217
+ providerSiteId: z.string().nullable(),
218
+ })
219
+ .strict(),
220
+ space: SuperadminSpaceListItemSchema.nullable(),
221
+ placement: SuperadminSpacePlacementSchema,
222
+ engine: SuperadminSpaceEngineSchema,
223
+ health: z
224
+ .object({
225
+ status: z.enum(["healthy", "attention", "unknown"]),
226
+ issues: z.array(z.string()),
227
+ })
228
+ .strict(),
229
+ })
230
+ .strict();
231
+ // Per-space scan visibility. Evidence is content-addressed: one verdict per
232
+ // (digest, engine, signature DB version), shared by every version that
233
+ // published the same bytes. This projects it onto the version's manifest, the
234
+ // coordinate an operator actually has.
132
235
  export const superadminSpaceScanResultsQuerySchema = z.object({
133
236
  // Narrow to one version; otherwise the newest `versionLimit` are returned.
134
237
  versionId: z.string().trim().min(1).optional(),
@@ -138,8 +241,8 @@ export const SuperadminSpaceScanVerdictSchema = z
138
241
  .object({
139
242
  engine: z.string(),
140
243
  signatureDbVersion: z.string(),
141
- // The evidence row exactly as the engine wrote it. The hash allowlist never
142
- // rewrites this — suppression is prospective, not a retraction.
244
+ // The engine's row verbatim. The hash allowlist never rewrites it;
245
+ // suppression is prospective, not a retraction.
143
246
  verdict: z.enum(["clean", "flagged", "skipped"]),
144
247
  // What enforcement acts on: an allowlisted media-hash flag reads clean.
145
248
  effectiveVerdict: z.enum(["clean", "flagged", "skipped"]),
@@ -166,6 +269,10 @@ export const SuperadminSpaceScanVersionSchema = z
166
269
  number: z.number().int().nullable(),
167
270
  status: z.string(),
168
271
  readyAt: z.string().datetime().nullable(),
272
+ // The runtime catalog is the sole file authority. A read failure degrades
273
+ // this operator surface without substituting database evidence for files.
274
+ catalogStatus: z.enum(["available", "not_ready", "unavailable"]),
275
+ catalogFailureKind: z.enum(["fetch_failed", "invalid_payload"]).nullable(),
169
276
  files: z.array(SuperadminSpaceScanFileSchema),
170
277
  // One bucket per manifest file, by the worst effective verdict it carries:
171
278
  // flagged beats skipped beats clean, and a file with no evidence row at all
@@ -187,9 +294,8 @@ export const SuperadminSpaceScanResultsSchema = z
187
294
  versions: z.array(SuperadminSpaceScanVersionSchema),
188
295
  })
189
296
  .strict();
190
- // Operator re-home: one assign for every space, claimed or not. The reason is
191
- // the operator's own note on why ownership moved — it lands in the space's
192
- // activity feed, so the customer can read it.
297
+ // One assign for every space, claimed or not. `reason` lands in the space's
298
+ // activity feed, where the customer can read it.
193
299
  export const superadminSpaceAssignSchema = z
194
300
  .object({
195
301
  teamId: z.string().min(1),
@@ -10,6 +10,7 @@ export declare const SuperadminTeamSchema: z.ZodObject<{
10
10
  deletedAt: z.ZodNullable<z.ZodString>;
11
11
  memberCount: z.ZodNumber;
12
12
  spaceCount: z.ZodNumber;
13
+ activeSpaceCount: z.ZodNumber;
13
14
  createdAt: z.ZodString;
14
15
  updatedAt: z.ZodString;
15
16
  }, z.core.$strip>;
@@ -42,6 +43,7 @@ export declare const SuperadminTeamDetailSchema: z.ZodObject<{
42
43
  deletedAt: z.ZodNullable<z.ZodString>;
43
44
  memberCount: z.ZodNumber;
44
45
  spaceCount: z.ZodNumber;
46
+ activeSpaceCount: z.ZodNumber;
45
47
  createdAt: z.ZodString;
46
48
  updatedAt: z.ZodString;
47
49
  members: z.ZodArray<z.ZodObject<{
@@ -75,6 +77,7 @@ export declare const SuperadminTeamListSchema: z.ZodObject<{
75
77
  deletedAt: z.ZodNullable<z.ZodString>;
76
78
  memberCount: z.ZodNumber;
77
79
  spaceCount: z.ZodNumber;
80
+ activeSpaceCount: z.ZodNumber;
78
81
  createdAt: z.ZodString;
79
82
  updatedAt: z.ZodString;
80
83
  }, z.core.$strip>>;
@@ -13,11 +13,10 @@ export const SuperadminTeamSchema = z.object({
13
13
  deletedAt: z.string().datetime().nullable(),
14
14
  memberCount: z.number().int().nonnegative(),
15
15
  spaceCount: z.number().int().nonnegative(),
16
+ activeSpaceCount: z.number().int().nonnegative(),
16
17
  createdAt: z.string().datetime(),
17
18
  updatedAt: z.string().datetime(),
18
19
  });
19
- // Superadmin reads the same membership shape every other surface does, plus
20
- // the one operator-only fact the product API never exposes.
21
20
  export const SuperadminTeamMemberSchema = TeamMemberSchema.extend({
22
21
  userBanned: z.boolean().describe("Whether the member's user account is banned."),
23
22
  });