@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
@@ -0,0 +1,1108 @@
1
+ {
2
+ "format": "spacefast.content-platform-fixture",
3
+ "version": 1,
4
+ "capsule": {
5
+ "appName": "Project launchpad",
6
+ "collections": {
7
+ "projects": {
8
+ "id": "projects",
9
+ "fields": {
10
+ "deck": {
11
+ "kind": "text"
12
+ },
13
+ "body": {
14
+ "kind": "blocks"
15
+ }
16
+ }
17
+ }
18
+ },
19
+ "schema": {
20
+ "reactions": {
21
+ "projectId": {
22
+ "kind": "string"
23
+ },
24
+ "emoji": {
25
+ "kind": "string"
26
+ }
27
+ }
28
+ },
29
+ "queries": {
30
+ "featuredProjects": {
31
+ "reads": ["content.projects"],
32
+ "input": "project-list-input",
33
+ "output": "project-list-output"
34
+ }
35
+ },
36
+ "mutations": {
37
+ "react": {
38
+ "writes": ["table.reactions"],
39
+ "input": "reaction-input",
40
+ "output": "reaction-output"
41
+ }
42
+ },
43
+ "endpoints": {
44
+ "webhook": {
45
+ "mode": "mutation",
46
+ "route": {
47
+ "method": "POST",
48
+ "path": "/hooks/example"
49
+ }
50
+ },
51
+ "preview": {
52
+ "mode": "query"
53
+ }
54
+ },
55
+ "pages": {
56
+ "projects": "client/pages/projects.tsx"
57
+ },
58
+ "sync": {
59
+ "projectBody": "content/projects/launch.md"
60
+ }
61
+ },
62
+ "artifacts": {
63
+ "program": {
64
+ "format": "spacefast.zero-wordpress",
65
+ "version": 1,
66
+ "revision": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
67
+ "schemas": [
68
+ {
69
+ "id": "empty-object",
70
+ "sha256": "sha256:0315fc123cf5b3495e854ac63c47aaff76b34851a87baa07a783533f93acfe57",
71
+ "schema": {
72
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
73
+ "type": "object",
74
+ "additionalProperties": false
75
+ }
76
+ },
77
+ {
78
+ "id": "project-list-input",
79
+ "sha256": "sha256:030c64070ca4107870180e275e1725d6798472f714f63683d48d8791d01f9a76",
80
+ "schema": {
81
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
82
+ "type": "object",
83
+ "properties": {
84
+ "limit": {
85
+ "type": "integer",
86
+ "minimum": 1,
87
+ "maximum": 100
88
+ }
89
+ },
90
+ "required": ["limit"],
91
+ "additionalProperties": false
92
+ }
93
+ },
94
+ {
95
+ "id": "project-list-output",
96
+ "sha256": "sha256:8519907eb445b35dad6b18a21b1d6bf4b0f91e9c3bad95c2c21ec59923952ae1",
97
+ "schema": {
98
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
99
+ "type": "array",
100
+ "items": {
101
+ "$ref": "#/$defs/project"
102
+ },
103
+ "$defs": {
104
+ "project": {
105
+ "type": "object",
106
+ "properties": {
107
+ "id": {
108
+ "type": "integer"
109
+ },
110
+ "title": {
111
+ "type": "string"
112
+ }
113
+ },
114
+ "required": ["id", "title"]
115
+ }
116
+ }
117
+ }
118
+ },
119
+ {
120
+ "id": "reaction-input",
121
+ "sha256": "sha256:768f31e53c5ba3ddcb154c2f4b246272418cecbe31550558b00ec5b0b8d6adbb",
122
+ "schema": {
123
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
124
+ "type": "object",
125
+ "properties": {
126
+ "projectId": {
127
+ "type": "string"
128
+ },
129
+ "emoji": {
130
+ "type": "string"
131
+ }
132
+ },
133
+ "required": ["projectId", "emoji"],
134
+ "additionalProperties": false
135
+ }
136
+ },
137
+ {
138
+ "id": "reaction-output",
139
+ "sha256": "sha256:f9e3a0a807a8a6f934e07a0c855d7a683054b7dc145656a1bda689ab1efd407b",
140
+ "schema": {
141
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
142
+ "type": "object",
143
+ "properties": {
144
+ "id": {
145
+ "type": "string"
146
+ }
147
+ },
148
+ "required": ["id"]
149
+ }
150
+ }
151
+ ],
152
+ "wordpress": {
153
+ "format": "spacefast.wordpress-program",
154
+ "version": 1,
155
+ "resources": [
156
+ {
157
+ "id": "posts",
158
+ "name": "posts",
159
+ "label": "Posts",
160
+ "kind": "posts",
161
+ "fields": [
162
+ {
163
+ "id": "post-title",
164
+ "name": "title",
165
+ "label": "Title",
166
+ "required": true,
167
+ "value": {
168
+ "kind": "text",
169
+ "multiline": false,
170
+ "maxLength": 500
171
+ }
172
+ },
173
+ {
174
+ "id": "post-content",
175
+ "name": "content",
176
+ "label": "Content",
177
+ "required": true,
178
+ "value": {
179
+ "kind": "blocks",
180
+ "allowed": "any"
181
+ }
182
+ }
183
+ ],
184
+ "publicRead": true
185
+ },
186
+ {
187
+ "id": "pages",
188
+ "name": "pages",
189
+ "label": "Pages",
190
+ "kind": "pages",
191
+ "fields": [
192
+ {
193
+ "id": "page-content",
194
+ "name": "content",
195
+ "label": "Content",
196
+ "required": true,
197
+ "value": {
198
+ "kind": "blocks",
199
+ "allowed": "any"
200
+ }
201
+ }
202
+ ],
203
+ "publicRead": true
204
+ },
205
+ {
206
+ "id": "media",
207
+ "name": "media",
208
+ "label": "Media",
209
+ "kind": "media",
210
+ "fields": [
211
+ {
212
+ "id": "media-alt",
213
+ "name": "alt",
214
+ "label": "Alternative text",
215
+ "required": false,
216
+ "value": {
217
+ "kind": "text",
218
+ "multiline": false,
219
+ "maxLength": 2000
220
+ }
221
+ }
222
+ ],
223
+ "publicRead": true
224
+ },
225
+ {
226
+ "id": "projects",
227
+ "name": "projects",
228
+ "label": "Projects",
229
+ "kind": "collection",
230
+ "fields": [
231
+ {
232
+ "id": "project-deck",
233
+ "name": "deck",
234
+ "label": "Deck",
235
+ "required": false,
236
+ "value": {
237
+ "kind": "text",
238
+ "multiline": true,
239
+ "maxLength": 2000
240
+ }
241
+ },
242
+ {
243
+ "id": "project-body",
244
+ "name": "body",
245
+ "label": "Body",
246
+ "required": true,
247
+ "value": {
248
+ "kind": "blocks",
249
+ "allowed": "any"
250
+ }
251
+ }
252
+ ],
253
+ "publicRead": true
254
+ }
255
+ ]
256
+ },
257
+ "tables": [
258
+ {
259
+ "id": "reactions",
260
+ "name": "reactions",
261
+ "columns": [
262
+ {
263
+ "id": "project-id",
264
+ "name": "project_id",
265
+ "nullable": false,
266
+ "value": {
267
+ "kind": "string",
268
+ "maxLength": 160
269
+ }
270
+ },
271
+ {
272
+ "id": "emoji",
273
+ "name": "emoji",
274
+ "nullable": false,
275
+ "value": {
276
+ "kind": "string",
277
+ "maxLength": 32
278
+ }
279
+ }
280
+ ],
281
+ "indexes": [
282
+ {
283
+ "id": "by-project",
284
+ "fields": ["project-id"],
285
+ "unique": false
286
+ }
287
+ ]
288
+ }
289
+ ],
290
+ "abilities": [
291
+ {
292
+ "id": "content.projects.list",
293
+ "input": {
294
+ "id": "project-list-input",
295
+ "sha256": "sha256:030c64070ca4107870180e275e1725d6798472f714f63683d48d8791d01f9a76"
296
+ },
297
+ "output": {
298
+ "id": "project-list-output",
299
+ "sha256": "sha256:8519907eb445b35dad6b18a21b1d6bf4b0f91e9c3bad95c2c21ec59923952ae1"
300
+ },
301
+ "permits": [],
302
+ "reads": ["content.projects"],
303
+ "writes": [],
304
+ "exposure": {
305
+ "kind": "named",
306
+ "named": true
307
+ },
308
+ "cache": {
309
+ "kind": "public",
310
+ "maxAgeSeconds": 60,
311
+ "staleWhileRevalidateSeconds": 300
312
+ },
313
+ "kind": "query",
314
+ "mode": "read"
315
+ },
316
+ {
317
+ "id": "query.featured-projects",
318
+ "input": {
319
+ "id": "project-list-input",
320
+ "sha256": "sha256:030c64070ca4107870180e275e1725d6798472f714f63683d48d8791d01f9a76"
321
+ },
322
+ "output": {
323
+ "id": "project-list-output",
324
+ "sha256": "sha256:8519907eb445b35dad6b18a21b1d6bf4b0f91e9c3bad95c2c21ec59923952ae1"
325
+ },
326
+ "permits": [],
327
+ "reads": ["content.projects"],
328
+ "writes": [],
329
+ "exposure": {
330
+ "kind": "named",
331
+ "named": true
332
+ },
333
+ "cache": {
334
+ "kind": "public",
335
+ "maxAgeSeconds": 60,
336
+ "staleWhileRevalidateSeconds": 300
337
+ },
338
+ "kind": "query",
339
+ "mode": "read"
340
+ },
341
+ {
342
+ "id": "mutation.react",
343
+ "input": {
344
+ "id": "reaction-input",
345
+ "sha256": "sha256:768f31e53c5ba3ddcb154c2f4b246272418cecbe31550558b00ec5b0b8d6adbb"
346
+ },
347
+ "output": {
348
+ "id": "reaction-output",
349
+ "sha256": "sha256:f9e3a0a807a8a6f934e07a0c855d7a683054b7dc145656a1bda689ab1efd407b"
350
+ },
351
+ "permits": ["comments.write"],
352
+ "reads": ["table.reactions"],
353
+ "writes": ["table.reactions"],
354
+ "exposure": {
355
+ "kind": "named",
356
+ "named": true
357
+ },
358
+ "cache": {
359
+ "kind": "none"
360
+ },
361
+ "kind": "mutation",
362
+ "mode": "write"
363
+ },
364
+ {
365
+ "id": "endpoint.webhook",
366
+ "input": {
367
+ "id": "reaction-input",
368
+ "sha256": "sha256:768f31e53c5ba3ddcb154c2f4b246272418cecbe31550558b00ec5b0b8d6adbb"
369
+ },
370
+ "output": {
371
+ "id": "reaction-output",
372
+ "sha256": "sha256:f9e3a0a807a8a6f934e07a0c855d7a683054b7dc145656a1bda689ab1efd407b"
373
+ },
374
+ "permits": ["content.publish"],
375
+ "reads": ["table.reactions"],
376
+ "writes": ["table.reactions"],
377
+ "exposure": {
378
+ "kind": "routed",
379
+ "named": true,
380
+ "route": {
381
+ "id": "route.webhook",
382
+ "method": "POST",
383
+ "path": "/hooks/example",
384
+ "admission": "authenticated"
385
+ }
386
+ },
387
+ "cache": {
388
+ "kind": "none"
389
+ },
390
+ "kind": "endpoint",
391
+ "mode": "write"
392
+ },
393
+ {
394
+ "id": "endpoint.preview",
395
+ "input": {
396
+ "id": "project-list-input",
397
+ "sha256": "sha256:030c64070ca4107870180e275e1725d6798472f714f63683d48d8791d01f9a76"
398
+ },
399
+ "output": {
400
+ "id": "project-list-output",
401
+ "sha256": "sha256:8519907eb445b35dad6b18a21b1d6bf4b0f91e9c3bad95c2c21ec59923952ae1"
402
+ },
403
+ "permits": ["page.view"],
404
+ "reads": ["content.projects"],
405
+ "writes": [],
406
+ "exposure": {
407
+ "kind": "named",
408
+ "named": true
409
+ },
410
+ "cache": {
411
+ "kind": "private",
412
+ "maxAgeSeconds": 0
413
+ },
414
+ "kind": "endpoint",
415
+ "mode": "read"
416
+ }
417
+ ],
418
+ "pages": [
419
+ {
420
+ "id": "page.projects-home",
421
+ "sourceKey": "client/pages/projects.tsx",
422
+ "path": "/projects",
423
+ "title": "Projects",
424
+ "blockName": "zero/component",
425
+ "componentId": "project-grid",
426
+ "props": {
427
+ "id": "project-list-input",
428
+ "sha256": "sha256:030c64070ca4107870180e275e1725d6798472f714f63683d48d8791d01f9a76"
429
+ }
430
+ }
431
+ ],
432
+ "hooks": [
433
+ {
434
+ "id": "hook.project-published",
435
+ "runtime": "php",
436
+ "artifact": "sha256:f67bea1e29bf7fa00d04549495d9d5d3bf5fc92aa36a59fc471f792d6c8b153c",
437
+ "export": "project_published"
438
+ }
439
+ ],
440
+ "syncBindings": [
441
+ {
442
+ "id": "sync.projects-body",
443
+ "resourceId": "projects",
444
+ "fieldId": "project-body",
445
+ "source": "content/projects/launch.md",
446
+ "slug": "launch"
447
+ }
448
+ ]
449
+ },
450
+ "executables": {
451
+ "format": "spacefast.zero-executables",
452
+ "version": 1,
453
+ "inputDigest": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
454
+ "executables": [
455
+ {
456
+ "id": "content.projects.list",
457
+ "runtime": "quickjs",
458
+ "artifact": "sha256:f67bea1e29bf7fa00d04549495d9d5d3bf5fc92aa36a59fc471f792d6c8b153c",
459
+ "export": "content_projects_list"
460
+ },
461
+ {
462
+ "id": "query.featured-projects",
463
+ "runtime": "quickjs",
464
+ "artifact": "sha256:f67bea1e29bf7fa00d04549495d9d5d3bf5fc92aa36a59fc471f792d6c8b153c",
465
+ "export": "query_featured-projects"
466
+ },
467
+ {
468
+ "id": "mutation.react",
469
+ "runtime": "quickjs",
470
+ "artifact": "sha256:f67bea1e29bf7fa00d04549495d9d5d3bf5fc92aa36a59fc471f792d6c8b153c",
471
+ "export": "mutation_react"
472
+ },
473
+ {
474
+ "id": "endpoint.webhook",
475
+ "runtime": "quickjs",
476
+ "artifact": "sha256:f67bea1e29bf7fa00d04549495d9d5d3bf5fc92aa36a59fc471f792d6c8b153c",
477
+ "export": "endpoint_webhook"
478
+ },
479
+ {
480
+ "id": "endpoint.preview",
481
+ "runtime": "quickjs",
482
+ "artifact": "sha256:f67bea1e29bf7fa00d04549495d9d5d3bf5fc92aa36a59fc471f792d6c8b153c",
483
+ "export": "endpoint_preview"
484
+ },
485
+ {
486
+ "id": "hook.project-published",
487
+ "runtime": "php",
488
+ "artifact": "sha256:f67bea1e29bf7fa00d04549495d9d5d3bf5fc92aa36a59fc471f792d6c8b153c",
489
+ "export": "project_published"
490
+ }
491
+ ]
492
+ },
493
+ "sdk": {
494
+ "format": "spacefast.sdk-descriptors",
495
+ "version": 1,
496
+ "inputDigest": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
497
+ "operations": [
498
+ {
499
+ "id": "content.projects.list",
500
+ "kind": "query",
501
+ "mode": "read",
502
+ "input": {
503
+ "id": "project-list-input",
504
+ "sha256": "sha256:030c64070ca4107870180e275e1725d6798472f714f63683d48d8791d01f9a76"
505
+ },
506
+ "output": {
507
+ "id": "project-list-output",
508
+ "sha256": "sha256:8519907eb445b35dad6b18a21b1d6bf4b0f91e9c3bad95c2c21ec59923952ae1"
509
+ },
510
+ "cache": {
511
+ "kind": "public",
512
+ "maxAgeSeconds": 60,
513
+ "staleWhileRevalidateSeconds": 300
514
+ },
515
+ "invalidates": []
516
+ },
517
+ {
518
+ "id": "query.featured-projects",
519
+ "kind": "query",
520
+ "mode": "read",
521
+ "input": {
522
+ "id": "project-list-input",
523
+ "sha256": "sha256:030c64070ca4107870180e275e1725d6798472f714f63683d48d8791d01f9a76"
524
+ },
525
+ "output": {
526
+ "id": "project-list-output",
527
+ "sha256": "sha256:8519907eb445b35dad6b18a21b1d6bf4b0f91e9c3bad95c2c21ec59923952ae1"
528
+ },
529
+ "cache": {
530
+ "kind": "public",
531
+ "maxAgeSeconds": 60,
532
+ "staleWhileRevalidateSeconds": 300
533
+ },
534
+ "invalidates": []
535
+ },
536
+ {
537
+ "id": "mutation.react",
538
+ "kind": "mutation",
539
+ "mode": "write",
540
+ "input": {
541
+ "id": "reaction-input",
542
+ "sha256": "sha256:768f31e53c5ba3ddcb154c2f4b246272418cecbe31550558b00ec5b0b8d6adbb"
543
+ },
544
+ "output": {
545
+ "id": "reaction-output",
546
+ "sha256": "sha256:f9e3a0a807a8a6f934e07a0c855d7a683054b7dc145656a1bda689ab1efd407b"
547
+ },
548
+ "cache": {
549
+ "kind": "none"
550
+ },
551
+ "invalidates": []
552
+ },
553
+ {
554
+ "id": "endpoint.webhook",
555
+ "kind": "endpoint",
556
+ "mode": "write",
557
+ "input": {
558
+ "id": "reaction-input",
559
+ "sha256": "sha256:768f31e53c5ba3ddcb154c2f4b246272418cecbe31550558b00ec5b0b8d6adbb"
560
+ },
561
+ "output": {
562
+ "id": "reaction-output",
563
+ "sha256": "sha256:f9e3a0a807a8a6f934e07a0c855d7a683054b7dc145656a1bda689ab1efd407b"
564
+ },
565
+ "cache": {
566
+ "kind": "none"
567
+ },
568
+ "invalidates": []
569
+ },
570
+ {
571
+ "id": "endpoint.preview",
572
+ "kind": "endpoint",
573
+ "mode": "read",
574
+ "input": {
575
+ "id": "project-list-input",
576
+ "sha256": "sha256:030c64070ca4107870180e275e1725d6798472f714f63683d48d8791d01f9a76"
577
+ },
578
+ "output": {
579
+ "id": "project-list-output",
580
+ "sha256": "sha256:8519907eb445b35dad6b18a21b1d6bf4b0f91e9c3bad95c2c21ec59923952ae1"
581
+ },
582
+ "cache": {
583
+ "kind": "private",
584
+ "maxAgeSeconds": 0
585
+ },
586
+ "invalidates": []
587
+ }
588
+ ],
589
+ "sync": [
590
+ {
591
+ "id": "sync.projects-body",
592
+ "resourceId": "projects",
593
+ "source": "content/projects/launch.md"
594
+ }
595
+ ]
596
+ },
597
+ "routes": {
598
+ "format": "spacefast.route-contributions",
599
+ "version": 1,
600
+ "inputDigest": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
601
+ "routes": [
602
+ {
603
+ "abilityId": "endpoint.webhook",
604
+ "route": {
605
+ "id": "route.webhook",
606
+ "method": "POST",
607
+ "path": "/hooks/example",
608
+ "admission": "authenticated"
609
+ }
610
+ }
611
+ ]
612
+ },
613
+ "requirements": {
614
+ "format": "spacefast.program-requirements",
615
+ "version": 1,
616
+ "inputDigest": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
617
+ "wordpressAbi": 1,
618
+ "capabilities": [
619
+ "wordpress.content",
620
+ "wordpress.users",
621
+ "wordpress.abilities",
622
+ "wordpress.blocks",
623
+ "wordpress.typed-meta",
624
+ "lakebed.tables",
625
+ "application.journal",
626
+ "markdown.sync",
627
+ "quickjs.v1"
628
+ ]
629
+ }
630
+ },
631
+ "compiled": {
632
+ "format": "spacefast.compiled-program",
633
+ "version": 1,
634
+ "program": {
635
+ "format": "spacefast.zero-wordpress",
636
+ "version": 1,
637
+ "inputDigest": "sha256:453c1f28a31bbe19a7bb923d221ab1a16c804ca98c485c1f80981cb39b3b789b",
638
+ "sha256": "sha256:3dbc9207178f4886b12914a6fb581f35b40f7bd333e7ba1c8fbbdc92d1b4fd7f",
639
+ "bytes": 6114,
640
+ "mediaType": "application/json"
641
+ },
642
+ "executables": {
643
+ "format": "spacefast.zero-executables",
644
+ "version": 1,
645
+ "inputDigest": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
646
+ "sha256": "sha256:952d34a3f0f78c780de12216835640d1964cdc5a3be03668006f6be6e9d88c49",
647
+ "bytes": 1132,
648
+ "mediaType": "application/json"
649
+ },
650
+ "sdk": {
651
+ "format": "spacefast.sdk-descriptors",
652
+ "version": 1,
653
+ "inputDigest": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
654
+ "sha256": "sha256:35df0ef9700e718c3039a8174c32e79bd651e563ad06a542308543d768493d11",
655
+ "bytes": 2068,
656
+ "mediaType": "application/json"
657
+ },
658
+ "routes": {
659
+ "format": "spacefast.route-contributions",
660
+ "version": 1,
661
+ "inputDigest": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
662
+ "sha256": "sha256:8dcb83db26af38985f09eb1a1ccc82d2c5c34dc3dcc5fb56eb8b152b54a4153b",
663
+ "bytes": 285,
664
+ "mediaType": "application/json"
665
+ },
666
+ "requirements": {
667
+ "format": "spacefast.program-requirements",
668
+ "version": 1,
669
+ "inputDigest": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
670
+ "sha256": "sha256:eda721f19fac69de9d964a64f5d16840e3043e2210f525d0225f0f949eb9d53d",
671
+ "bytes": 347,
672
+ "mediaType": "application/json"
673
+ }
674
+ },
675
+ "runtimeComponents": {
676
+ "format": "spacefast.wordpress-components",
677
+ "version": 1,
678
+ "platformRelease": "2026.08.28.1",
679
+ "digest": "sha256:f7dfb8ce89b763198efe31f2ec4b908208316d2669ecc850bd092f2c4f63e09d",
680
+ "components": [
681
+ {
682
+ "id": "wordpress-core",
683
+ "kind": "wordpress-core",
684
+ "version": "6.8.2",
685
+ "sha256": "sha256:553f0261054a82b111f36c6565c525bfd83d207579d6ee18712ea3a65f63b9f8",
686
+ "source": {
687
+ "kind": "archive",
688
+ "url": "https://releases.spacefast.com/wordpress/6.8.2.zip",
689
+ "bytes": 27000000
690
+ },
691
+ "provides": ["wordpress.content", "wordpress.users"],
692
+ "activation": "always"
693
+ },
694
+ {
695
+ "id": "runtime-engine",
696
+ "kind": "runtime-engine",
697
+ "version": "2.0.0",
698
+ "sha256": "sha256:0088f91c205dc1626d91eb60e455987ff4914154a19b5327150126d7f5182659",
699
+ "source": {
700
+ "kind": "embedded",
701
+ "path": "runtime/static-runtime-v2.zip"
702
+ },
703
+ "provides": ["runtime.finalizer", "quickjs.v1"],
704
+ "activation": "always"
705
+ },
706
+ {
707
+ "id": "content-kernel",
708
+ "kind": "mu-plugin",
709
+ "version": "1.0.0",
710
+ "sha256": "sha256:35a33ef40e92d8e533479664e0d26e73b2579c61182f4fe542b75bef59a24b64",
711
+ "source": {
712
+ "kind": "embedded",
713
+ "path": "wordpress/content-kernel.php"
714
+ },
715
+ "provides": ["application.journal", "markdown.sync", "lakebed.tables"],
716
+ "activation": "always"
717
+ },
718
+ {
719
+ "id": "immutable-loader",
720
+ "kind": "mu-plugin",
721
+ "version": "1.0.0",
722
+ "sha256": "sha256:0fedb74da2f516486b17088da3411f8ff22d4e81c539444d06d0599ed50c5aba",
723
+ "source": {
724
+ "kind": "embedded",
725
+ "path": "wordpress/immutable-loader.php"
726
+ },
727
+ "provides": ["wordpress.abilities"],
728
+ "activation": "always"
729
+ },
730
+ {
731
+ "id": "managed-theme",
732
+ "kind": "theme",
733
+ "version": "1.0.0",
734
+ "sha256": "sha256:669e8231a102b6b39e2fa564dc96176ecc16231c2ef38a0810537b0b7d8e72f8",
735
+ "source": {
736
+ "kind": "embedded",
737
+ "path": "wordpress/themes/spacefast.zip"
738
+ },
739
+ "provides": ["wordpress.blocks"],
740
+ "activation": "always"
741
+ },
742
+ {
743
+ "id": "secure-custom-fields",
744
+ "kind": "plugin",
745
+ "version": "6.6.0",
746
+ "sha256": "sha256:a8cd16cdf9a87fab86b45131e052dfd632eab9a8d7beef039f64b5eadfa05951",
747
+ "source": {
748
+ "kind": "archive",
749
+ "url": "https://releases.spacefast.com/wordpress/secure-custom-fields-6.6.0.zip",
750
+ "bytes": 4000000
751
+ },
752
+ "provides": ["wordpress.typed-meta"],
753
+ "activation": "always"
754
+ },
755
+ {
756
+ "id": "redirection",
757
+ "kind": "plugin",
758
+ "version": "5.5.2",
759
+ "sha256": "sha256:9d2a96cea9a3237e570f20cf2604ce795fa340cc3857df6f5970ec8e05288ec4",
760
+ "source": {
761
+ "kind": "archive",
762
+ "url": "https://releases.spacefast.com/wordpress/redirection-5.5.2.zip",
763
+ "bytes": 2000000
764
+ },
765
+ "provides": ["wordpress.redirection"],
766
+ "activation": "always"
767
+ },
768
+ {
769
+ "id": "block-transformer",
770
+ "kind": "block-transformer",
771
+ "version": "1.0.0",
772
+ "sha256": "sha256:93fd0f0a01fddb5657a856c78a363847821468ca2444ae93a5422734fd1e5bc9",
773
+ "source": {
774
+ "kind": "embedded",
775
+ "path": "wordpress/block-transformer.zip"
776
+ },
777
+ "provides": ["wordpress.blocks", "markdown.sync"],
778
+ "activation": "always"
779
+ },
780
+ {
781
+ "id": "quickjs-abi",
782
+ "kind": "quickjs-abi",
783
+ "version": "1",
784
+ "sha256": "sha256:40bc15b64daa60aefd59d3779dfb9a7d91c0667143bbd48def114301d512d38e",
785
+ "source": {
786
+ "kind": "embedded",
787
+ "path": "runtime/quickjs-abi-v1.json"
788
+ },
789
+ "provides": ["quickjs.v1"],
790
+ "activation": "always"
791
+ }
792
+ ]
793
+ },
794
+ "runtimePlacementReceipt": {
795
+ "format": "spacefast.component-placement",
796
+ "version": 1,
797
+ "operationId": "op_placementfixture",
798
+ "target": {
799
+ "spaceId": "spc_fixture",
800
+ "runtimeInstanceId": "runtime-fixture",
801
+ "siteId": "site-fixture"
802
+ },
803
+ "platformRelease": "2026.08.28.1",
804
+ "expectedInventoryDigest": "sha256:f7dfb8ce89b763198efe31f2ec4b908208316d2669ecc850bd092f2c4f63e09d",
805
+ "status": "ready",
806
+ "observedInventoryDigest": "sha256:f7dfb8ce89b763198efe31f2ec4b908208316d2669ecc850bd092f2c4f63e09d",
807
+ "substrate": {
808
+ "wordpress": {
809
+ "boot": "ready",
810
+ "database": "ready",
811
+ "tables": "ready"
812
+ },
813
+ "routing": {
814
+ "state": "ready",
815
+ "snapshotRevision": "sha256:e3360f51c779df79cf84b9e6ab5480486b4716eabf2cc7120f48ab8a788163d7",
816
+ "inventoryDigest": "sha256:a31e5e70f3f19964bcfdbc7177c3b14042caee60bbd76fe4a47d4272d8fe6553"
817
+ },
818
+ "mail": {
819
+ "state": "ready"
820
+ },
821
+ "journal": {
822
+ "state": "ready"
823
+ }
824
+ }
825
+ },
826
+ "routeInventory": {
827
+ "format": "stattic.route-inventory.v1",
828
+ "routes": [
829
+ {
830
+ "id": "sha256:fd7bfbb0e34b48449178ae1aaa3e77f0aa48b8a8bf00fa8cbec1c29ada14796d",
831
+ "source": "endpoint.webhook",
832
+ "host": "*",
833
+ "path": "/hooks/example",
834
+ "methods": ["POST"],
835
+ "auth": "inherit",
836
+ "kind": "zero-endpoint",
837
+ "runtime": "quick-js"
838
+ }
839
+ ]
840
+ },
841
+ "routeSnapshot": {
842
+ "format": "spacefast.space-route-snapshot",
843
+ "version": 1,
844
+ "spaceId": "spc_fixture",
845
+ "source": "wordpress-redirection",
846
+ "capturedAt": "2026-08-28T15:00:00.000Z",
847
+ "revision": "sha256:e3360f51c779df79cf84b9e6ab5480486b4716eabf2cc7120f48ab8a788163d7",
848
+ "routes": [
849
+ {
850
+ "id": "sha256:beddaf243ca0ea56190cb8d2bcca43a7c98f2fe3b7142badd0ff957ba501bfeb",
851
+ "sourceRuleId": 42,
852
+ "priority": 10,
853
+ "host": "*",
854
+ "methods": ["GET", "HEAD"],
855
+ "match": {
856
+ "kind": "exact",
857
+ "path": "/launch"
858
+ },
859
+ "destination": "/projects/launch",
860
+ "status": 308
861
+ }
862
+ ]
863
+ },
864
+ "protocols": {
865
+ "abilityDecision": {
866
+ "format": "spacefast.ability-decision",
867
+ "version": 1,
868
+ "abilityId": "mutation.react",
869
+ "callId": "call.fixture-react",
870
+ "decision": "allowed"
871
+ },
872
+ "abilityReceipt": {
873
+ "format": "spacefast.ability-receipt",
874
+ "version": 1,
875
+ "abilityId": "mutation.react",
876
+ "callId": "call.fixture-react",
877
+ "status": "succeeded",
878
+ "output": {
879
+ "reactionId": "reaction-42",
880
+ "emoji": "rocket"
881
+ },
882
+ "invalidates": ["query.reactions"]
883
+ },
884
+ "principalAssertion": {
885
+ "format": "spacefast.principal",
886
+ "version": 1,
887
+ "audience": {
888
+ "spaceId": "spc_fixture",
889
+ "runtimeInstanceId": "runtime-fixture",
890
+ "host": "https://fixture.view.fast"
891
+ },
892
+ "sessionVersion": 4,
893
+ "accessGeneration": 12,
894
+ "nonce": "principal-fixture-nonce",
895
+ "issuedAt": 1787923200,
896
+ "expiresAt": 1787923500,
897
+ "actor": {
898
+ "kind": "user",
899
+ "id": "usr_fixture"
900
+ },
901
+ "subject": {
902
+ "issuer": "https://identity.example.test",
903
+ "subject": "customer-42"
904
+ }
905
+ },
906
+ "frameLaunchTicket": {
907
+ "format": "spacefast.frame-launch-ticket",
908
+ "version": 1,
909
+ "ticketId": "frame-launch-ticket-fixture",
910
+ "flow": "launch",
911
+ "maxUses": 1,
912
+ "audience": {
913
+ "spaceId": "spc_fixture",
914
+ "runtimeInstanceId": "runtime-fixture",
915
+ "host": "https://fixture.view.fast"
916
+ },
917
+ "link": {
918
+ "id": "lnk_fixture",
919
+ "revision": 7
920
+ },
921
+ "principal": {
922
+ "kind": "user",
923
+ "id": "usr_fixture",
924
+ "assertionNonce": "principal-fixture-nonce"
925
+ },
926
+ "target": {
927
+ "kind": "live",
928
+ "versionId": "ver_fixture",
929
+ "routeRevision": "sha256:4177b842de7c2ebfa753cd3928fc4bbf60981714a9e8c328491807c421559811"
930
+ },
931
+ "surface": "wordpress.editor",
932
+ "parentOrigin": "https://my.spacefast.com",
933
+ "capabilities": ["page.view", "content.publish"],
934
+ "grantDecisionDigest": "sha256:5c2b3c706c12c64f68ae94632b61a2ee50135d635e26db3e8ff944e13ed13b8e",
935
+ "accessGeneration": 12,
936
+ "sessionVersion": 4,
937
+ "issuedAt": 1787923205,
938
+ "expiresAt": 1787923235
939
+ },
940
+ "frameSession": {
941
+ "format": "spacefast.frame-session",
942
+ "version": 1,
943
+ "launchTicketId": "frame-launch-ticket-fixture",
944
+ "audience": {
945
+ "spaceId": "spc_fixture",
946
+ "runtimeInstanceId": "runtime-fixture",
947
+ "host": "https://fixture.view.fast"
948
+ },
949
+ "link": {
950
+ "id": "lnk_fixture",
951
+ "revision": 7
952
+ },
953
+ "principal": {
954
+ "kind": "user",
955
+ "id": "usr_fixture",
956
+ "assertionNonce": "principal-fixture-nonce"
957
+ },
958
+ "target": {
959
+ "kind": "live",
960
+ "versionId": "ver_fixture",
961
+ "routeRevision": "sha256:4177b842de7c2ebfa753cd3928fc4bbf60981714a9e8c328491807c421559811"
962
+ },
963
+ "surface": "wordpress.editor",
964
+ "parentOrigin": "https://my.spacefast.com",
965
+ "capabilities": ["page.view", "content.publish"],
966
+ "grantDecisionDigest": "sha256:5c2b3c706c12c64f68ae94632b61a2ee50135d635e26db3e8ff944e13ed13b8e",
967
+ "accessGeneration": 12,
968
+ "sessionVersion": 4,
969
+ "nonce": "frame-session-fixture-nonce",
970
+ "issuedAt": 1787923210,
971
+ "expiresAt": 1787923490
972
+ },
973
+ "syncExchange": {
974
+ "request": {
975
+ "bindingId": "sync.projects-body",
976
+ "source": "content/projects/launch.md",
977
+ "markdown": "# Launch\n\nThe launch project is ready.\n",
978
+ "observedSourceRevision": "git-fixture-abc",
979
+ "operationId": "op_syncfixture",
980
+ "state": "bound",
981
+ "baseRevision": "sha256:c2bd36ab817475221782deac9e068597bfea910284098657326da7bc511d699c"
982
+ },
983
+ "receipt": {
984
+ "format": "spacefast.markdown-sync",
985
+ "version": 1,
986
+ "operationId": "op_syncfixture",
987
+ "ledger": {
988
+ "version": 1,
989
+ "bindingId": "sync.projects-body",
990
+ "source": "content/projects/launch.md",
991
+ "baseMarkdown": "# Launch\n\nThe launch project is ready.\n",
992
+ "markdownDigest": "sha256:446c2cc77e227e78a0fab20e055fa95b1d43f65bb729144ecd0192b6500d0363",
993
+ "blocksDigest": "sha256:4238420e9cd3767bfb446219efd5ff43629d0d8e4d9a4fbd29caac22dfa8e16e",
994
+ "wordpressRevisionId": 42,
995
+ "serializerVersion": 1,
996
+ "revision": "sha256:8b2067b270a7ae09423a5126aeec05686ae2f1226e8b679fb53ffd06a043ff3c",
997
+ "lastDirection": "pull"
998
+ },
999
+ "status": "pulled",
1000
+ "sourceWrite": {
1001
+ "state": "prepared",
1002
+ "source": "content/projects/launch.md",
1003
+ "expectedSourceRevision": "git-fixture-abc",
1004
+ "markdown": "# Launch\n\nThe launch project is ready.\n",
1005
+ "markdownDigest": "sha256:446c2cc77e227e78a0fab20e055fa95b1d43f65bb729144ecd0192b6500d0363"
1006
+ }
1007
+ }
1008
+ },
1009
+ "syncSourceAcknowledgement": {
1010
+ "format": "spacefast.markdown-sync-ack",
1011
+ "version": 1,
1012
+ "bindingId": "sync.projects-body",
1013
+ "operationId": "op_syncfixture",
1014
+ "sourceRevision": "git-fixture-def",
1015
+ "baseRevision": "sha256:8b2067b270a7ae09423a5126aeec05686ae2f1226e8b679fb53ffd06a043ff3c"
1016
+ },
1017
+ "syncConflict": {
1018
+ "type": "https://spacefast.com/problems/content_markdown_conflict",
1019
+ "title": "Markdown changed on both sides",
1020
+ "status": 409,
1021
+ "detail": "The source and WordPress document both changed after the common base.",
1022
+ "code": "content_markdown_conflict",
1023
+ "details": {
1024
+ "bindingId": "sync.projects-body",
1025
+ "base": {
1026
+ "markdown": "# Launch\n",
1027
+ "digest": "sha256:fbc640ee8eab5d0c68f5715a484b9747b2359a5ce135ab15e7831339c8bff84d",
1028
+ "revision": "base-40"
1029
+ },
1030
+ "source": {
1031
+ "markdown": "# Launch source\n",
1032
+ "digest": "sha256:d930a247da873f3f46eea3af7b1d8dbb43d677c9a233a62b2b5fe43a23ffc38c",
1033
+ "revision": "git-abc"
1034
+ },
1035
+ "wordpress": {
1036
+ "markdown": "# Launch editor\n",
1037
+ "digest": "sha256:7d2a535a8e3c29ffd0b50d4be7804f12bc86be29f0406c01e351454914c73b90",
1038
+ "revision": "wp-43",
1039
+ "wordpressRevisionId": 43
1040
+ }
1041
+ },
1042
+ "requestId": "req_fixture"
1043
+ },
1044
+ "journalEntry": {
1045
+ "format": "spacefast.application-journal",
1046
+ "version": 1,
1047
+ "id": "spc_fixture:op_reactfixture:0",
1048
+ "spaceId": "spc_fixture",
1049
+ "operationId": "op_reactfixture",
1050
+ "effectOrdinal": 0,
1051
+ "store": "lakebed",
1052
+ "payloadDigest": "sha256:a130dbab33b447197c269dfab52207c18d5570db6d8b3a45d0f4d0886b105dd6",
1053
+ "createdAt": "2026-08-28T15:00:00.000Z",
1054
+ "kind": "application-event",
1055
+ "payload": {
1056
+ "name": "reaction.created",
1057
+ "body": {
1058
+ "id": "reaction-42",
1059
+ "emoji": "rocket"
1060
+ }
1061
+ }
1062
+ },
1063
+ "deliveryClaim": {
1064
+ "entry": {
1065
+ "format": "spacefast.application-journal",
1066
+ "version": 1,
1067
+ "id": "spc_fixture:op_reactfixture:0",
1068
+ "spaceId": "spc_fixture",
1069
+ "operationId": "op_reactfixture",
1070
+ "effectOrdinal": 0,
1071
+ "store": "lakebed",
1072
+ "payloadDigest": "sha256:a130dbab33b447197c269dfab52207c18d5570db6d8b3a45d0f4d0886b105dd6",
1073
+ "createdAt": "2026-08-28T15:00:00.000Z",
1074
+ "kind": "application-event",
1075
+ "payload": {
1076
+ "name": "reaction.created",
1077
+ "body": {
1078
+ "id": "reaction-42",
1079
+ "emoji": "rocket"
1080
+ }
1081
+ }
1082
+ },
1083
+ "fence": {
1084
+ "entryId": "spc_fixture:op_reactfixture:0",
1085
+ "sink": "realtime",
1086
+ "attempt": 1,
1087
+ "leaseId": "lease-delivery-fixture",
1088
+ "leaseExpiresAt": "2026-08-28T15:01:00.000Z"
1089
+ },
1090
+ "idempotencyKey": "spc_fixture:op_reactfixture:0:realtime"
1091
+ },
1092
+ "deliveryReceipt": {
1093
+ "format": "spacefast.application-delivery",
1094
+ "version": 1,
1095
+ "fence": {
1096
+ "entryId": "spc_fixture:op_reactfixture:0",
1097
+ "sink": "realtime",
1098
+ "attempt": 1,
1099
+ "leaseId": "lease-delivery-fixture",
1100
+ "leaseExpiresAt": "2026-08-28T15:01:00.000Z"
1101
+ },
1102
+ "idempotencyKey": "spc_fixture:op_reactfixture:0:realtime",
1103
+ "recordedAt": "2026-08-28T15:00:01.000Z",
1104
+ "status": "delivered",
1105
+ "downstreamReceipt": "cast:reaction-42"
1106
+ }
1107
+ }
1108
+ }