@spacefast/common 0.2.2 → 0.4.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 (226) hide show
  1. package/dist/agents/marketplace-prompts.d.ts +1 -0
  2. package/dist/agents/marketplace-prompts.js +6 -0
  3. package/dist/agents/registry/core.d.ts +4 -12
  4. package/dist/agents/registry/core.js +7 -28
  5. package/dist/config/domains.d.ts +10 -8
  6. package/dist/config/domains.js +4 -7
  7. package/dist/contracts/access-core.d.ts +135 -0
  8. package/dist/contracts/access-core.js +242 -0
  9. package/dist/contracts/access-profiles.d.ts +8 -8
  10. package/dist/contracts/access-profiles.js +8 -8
  11. package/dist/contracts/access.d.ts +14 -103
  12. package/dist/contracts/access.js +10 -210
  13. package/dist/contracts/activity.d.ts +54 -55
  14. package/dist/contracts/activity.js +38 -9
  15. package/dist/contracts/api-keys.d.ts +69 -26
  16. package/dist/contracts/api-keys.js +29 -2
  17. package/dist/contracts/application-journal.d.ts +197 -4
  18. package/dist/contracts/application-journal.js +97 -16
  19. package/dist/contracts/auth.d.ts +20 -0
  20. package/dist/contracts/auth.js +18 -0
  21. package/dist/contracts/beta.d.ts +13 -0
  22. package/dist/contracts/beta.js +28 -0
  23. package/dist/contracts/billing.d.ts +2 -2
  24. package/dist/contracts/bootstrap.d.ts +23 -6
  25. package/dist/contracts/builds.d.ts +18 -4
  26. package/dist/contracts/builds.js +7 -4
  27. package/dist/contracts/channels.d.ts +43 -0
  28. package/dist/contracts/channels.js +22 -6
  29. package/dist/contracts/comments.d.ts +49 -0
  30. package/dist/contracts/comments.js +61 -2
  31. package/dist/contracts/commerce.d.ts +19 -13
  32. package/dist/contracts/connector-access.d.ts +28 -0
  33. package/dist/contracts/connector-access.js +31 -0
  34. package/dist/contracts/connectors.d.ts +2382 -0
  35. package/dist/contracts/connectors.js +941 -0
  36. package/dist/contracts/content-contract-verification.d.ts +112 -58
  37. package/dist/contracts/content-contract-verification.js +42 -54
  38. package/dist/contracts/content-model-emit.d.ts +97 -0
  39. package/dist/contracts/content-model-emit.js +306 -0
  40. package/dist/contracts/content-model-sdk.d.ts +101 -0
  41. package/dist/contracts/content-model-sdk.js +232 -0
  42. package/dist/contracts/{content-program.d.ts → content-model.d.ts} +338 -82
  43. package/dist/contracts/{content-program.js → content-model.js} +291 -63
  44. package/dist/contracts/content-platform-fixture.d.ts +380 -110
  45. package/dist/contracts/content-platform-fixture.js +8 -8
  46. package/dist/contracts/content-sync.d.ts +197 -74
  47. package/dist/contracts/content-sync.js +98 -37
  48. package/dist/contracts/content.d.ts +30 -422
  49. package/dist/contracts/content.js +34 -294
  50. package/dist/contracts/dashboard-prefs.d.ts +10 -3
  51. package/dist/contracts/dashboard-prefs.js +6 -3
  52. package/dist/contracts/data-location.d.ts +9 -0
  53. package/dist/contracts/data-location.js +7 -0
  54. package/dist/contracts/deployment-comparison.d.ts +67 -0
  55. package/dist/contracts/deployment-comparison.js +68 -0
  56. package/dist/contracts/device-auth.d.ts +55 -11
  57. package/dist/contracts/domains.d.ts +40 -16
  58. package/dist/contracts/domains.js +23 -0
  59. package/dist/contracts/enums.d.ts +1 -10
  60. package/dist/contracts/enums.js +0 -15
  61. package/dist/contracts/error-code-meta.d.ts +384 -20
  62. package/dist/contracts/error-code-meta.js +200 -5
  63. package/dist/contracts/error-codes.d.ts +17 -4
  64. package/dist/contracts/error-codes.js +108 -10
  65. package/dist/contracts/events.d.ts +5 -0
  66. package/dist/contracts/events.js +12 -3
  67. package/dist/contracts/execution.d.ts +5 -1
  68. package/dist/contracts/execution.js +4 -0
  69. package/dist/contracts/feature-lifecycle.d.ts +53 -20
  70. package/dist/contracts/feature-lifecycle.js +65 -23
  71. package/dist/contracts/features.d.ts +57 -31
  72. package/dist/contracts/features.js +0 -1
  73. package/dist/contracts/feedback.d.ts +124 -0
  74. package/dist/contracts/feedback.js +64 -0
  75. package/dist/contracts/fixtures/content-model-sdk-v1.generated.d.ts +129 -0
  76. package/dist/contracts/fixtures/content-model-sdk-v1.generated.js +48 -0
  77. package/dist/contracts/fixtures/content-platform-v1.json +101 -49
  78. package/dist/contracts/frame-session.d.ts +60 -10
  79. package/dist/contracts/frame-session.js +52 -12
  80. package/dist/contracts/functions.d.ts +28 -2
  81. package/dist/contracts/functions.js +25 -2
  82. package/dist/contracts/grant-copy.d.ts +2 -0
  83. package/dist/contracts/grant-copy.js +2 -0
  84. package/dist/contracts/grants-core.d.ts +95 -0
  85. package/dist/contracts/grants-core.js +435 -0
  86. package/dist/contracts/grants.d.ts +13 -84
  87. package/dist/contracts/grants.js +21 -369
  88. package/dist/contracts/ids-core.d.ts +11 -0
  89. package/dist/contracts/ids-core.js +14 -0
  90. package/dist/contracts/ids.d.ts +7 -4
  91. package/dist/contracts/ids.js +12 -4
  92. package/dist/contracts/internal.d.ts +18 -0
  93. package/dist/contracts/internal.js +19 -0
  94. package/dist/contracts/mcp.d.ts +8 -18
  95. package/dist/contracts/mcp.js +2 -23
  96. package/dist/contracts/notifications.d.ts +4 -1
  97. package/dist/contracts/notifications.js +1 -0
  98. package/dist/contracts/oauth-resources.d.ts +46 -9
  99. package/dist/contracts/oauth-resources.js +50 -1
  100. package/dist/contracts/oauth-scope-actions.d.ts +27 -3
  101. package/dist/contracts/oauth-scope-actions.js +18 -8
  102. package/dist/contracts/operations.d.ts +1 -1
  103. package/dist/contracts/partner-account.d.ts +629 -0
  104. package/dist/contracts/partner-account.js +18 -0
  105. package/dist/contracts/principal-assertion.d.ts +74 -1
  106. package/dist/contracts/principal-assertion.js +67 -3
  107. package/dist/contracts/publish-archive.d.ts +22 -1
  108. package/dist/contracts/push-new.d.ts +3 -3
  109. package/dist/contracts/push-new.js +1 -1
  110. package/dist/contracts/quotas.js +2 -1
  111. package/dist/contracts/repository-connections.d.ts +10 -6
  112. package/dist/contracts/repository-connections.js +15 -0
  113. package/dist/contracts/resources.d.ts +6 -5
  114. package/dist/contracts/resources.js +7 -0
  115. package/dist/contracts/route-inventory.d.ts +74 -19
  116. package/dist/contracts/route-inventory.js +20 -6
  117. package/dist/contracts/runtime-api.d.ts +415 -4
  118. package/dist/contracts/runtime-api.js +60 -15
  119. package/dist/contracts/runtime-app.d.ts +6 -1
  120. package/dist/contracts/runtime-components.d.ts +646 -18
  121. package/dist/contracts/runtime-components.js +304 -188
  122. package/dist/contracts/runtime-services.d.ts +15 -0
  123. package/dist/contracts/runtime-services.js +25 -0
  124. package/dist/contracts/runtime-storage.d.ts +32 -0
  125. package/dist/contracts/runtime-storage.js +37 -0
  126. package/dist/contracts/source-workspaces.d.ts +511 -0
  127. package/dist/contracts/source-workspaces.js +276 -0
  128. package/dist/contracts/space-config-spacefast.d.ts +394 -0
  129. package/dist/contracts/space-config-spacefast.js +70 -0
  130. package/dist/contracts/space-config.d.ts +177 -90
  131. package/dist/contracts/space-config.js +77 -92
  132. package/dist/contracts/spaces.d.ts +132 -24
  133. package/dist/contracts/spaces.js +77 -13
  134. package/dist/contracts/superadmin-connectors.d.ts +371 -0
  135. package/dist/contracts/superadmin-connectors.js +61 -0
  136. package/dist/contracts/superadmin-emails.d.ts +1 -1
  137. package/dist/contracts/superadmin-emails.js +1 -1
  138. package/dist/contracts/superadmin-entities.d.ts +105 -0
  139. package/dist/contracts/superadmin-entities.js +64 -0
  140. package/dist/contracts/superadmin-runtime.d.ts +35 -116
  141. package/dist/contracts/superadmin-runtime.js +13 -69
  142. package/dist/contracts/superadmin-search.d.ts +12 -14
  143. package/dist/contracts/superadmin-search.js +2 -2
  144. package/dist/contracts/superadmin-spaces.d.ts +15 -72
  145. package/dist/contracts/superadmin-spaces.js +2 -7
  146. package/dist/contracts/superadmin-teams.d.ts +12 -0
  147. package/dist/contracts/superadmin-teams.js +7 -1
  148. package/dist/contracts/superadmin-tenants.d.ts +44 -16
  149. package/dist/contracts/superadmin.d.ts +2 -2
  150. package/dist/contracts/tags.d.ts +12 -12
  151. package/dist/contracts/teams.d.ts +29 -1
  152. package/dist/contracts/teams.js +24 -2
  153. package/dist/contracts/tenants.d.ts +98 -0
  154. package/dist/contracts/tenants.js +20 -0
  155. package/dist/contracts/transfers.d.ts +92 -0
  156. package/dist/contracts/transfers.js +37 -0
  157. package/dist/contracts/usage.d.ts +9 -1
  158. package/dist/contracts/usage.js +2 -0
  159. package/dist/contracts/visual-review.d.ts +448 -0
  160. package/dist/contracts/visual-review.js +156 -0
  161. package/dist/contracts/wordpress-php-toolkit.json +9 -0
  162. package/dist/contracts/work-mode.d.ts +24 -0
  163. package/dist/contracts/work-mode.js +17 -0
  164. package/dist/contracts/wp-cli.d.ts +66 -0
  165. package/dist/contracts/wp-cli.js +68 -0
  166. package/dist/contracts/zero-catalog.d.ts +29 -0
  167. package/dist/contracts/zero-catalog.js +55 -0
  168. package/dist/contracts/zero-platform-abilities.generated.d.ts +31 -0
  169. package/dist/contracts/zero-platform-abilities.generated.js +373 -0
  170. package/dist/contracts/zero-spacefast.d.ts +444 -0
  171. package/dist/contracts/zero-spacefast.js +149 -0
  172. package/dist/contracts/zero-types.d.ts +47 -0
  173. package/dist/contracts/zero-types.js +263 -0
  174. package/dist/contracts/zero.d.ts +781 -14
  175. package/dist/contracts/zero.js +204 -10
  176. package/dist/dashboard-paths/index.d.ts +2 -2
  177. package/dist/dashboard-paths/route-reservations.generated.d.ts +2 -2
  178. package/dist/dashboard-paths/route-reservations.generated.js +5 -0
  179. package/dist/docs/agent-prose.d.ts +1 -1
  180. package/dist/docs/agent-prose.js +15 -18
  181. package/dist/docs/agent-setup.d.ts +1 -1
  182. package/dist/docs/agent-setup.js +5 -13
  183. package/dist/docs/catalog.d.ts +64 -28
  184. package/dist/docs/catalog.js +155 -28
  185. package/dist/docs/error-docs.d.ts +361 -17
  186. package/dist/docs/error-docs.js +365 -21
  187. package/dist/docs/reference-urls.js +1 -1
  188. package/dist/docs/skills.d.ts +84 -84
  189. package/dist/docs/skills.js +66 -47
  190. package/dist/docs/start-prompts.d.ts +14 -0
  191. package/dist/docs/start-prompts.js +20 -0
  192. package/dist/utils/account-labels.d.ts +7 -0
  193. package/dist/utils/account-labels.js +15 -0
  194. package/dist/utils/auth.d.ts +1 -0
  195. package/dist/utils/auth.js +1 -0
  196. package/dist/utils/credential-policy.d.ts +22 -1
  197. package/dist/utils/credential-policy.js +55 -6
  198. package/dist/utils/local-space-state.d.ts +7 -0
  199. package/dist/utils/local-space-state.js +7 -0
  200. package/dist/utils/logger.d.ts +34 -0
  201. package/dist/utils/logger.js +144 -0
  202. package/dist/utils/page-routes.d.ts +9 -0
  203. package/dist/utils/page-routes.js +82 -0
  204. package/dist/utils/pages.d.ts +2 -0
  205. package/dist/utils/pages.js +7 -0
  206. package/dist/utils/publish-form-data.d.ts +2 -0
  207. package/dist/utils/publish-form-data.js +2 -0
  208. package/dist/utils/publish-policy-spacefast.d.ts +13 -0
  209. package/dist/utils/publish-policy-spacefast.js +117 -0
  210. package/dist/utils/publish-policy.d.ts +22 -16
  211. package/dist/utils/publish-policy.fixtures.json +15 -0
  212. package/dist/utils/publish-policy.js +62 -139
  213. package/dist/utils/query-client.js +9 -1
  214. package/dist/utils/runtime-upload.d.ts +4 -0
  215. package/dist/utils/runtime-upload.js +5 -0
  216. package/dist/utils/space-config.d.ts +2 -3
  217. package/dist/utils/space-config.js +1 -1
  218. package/dist/utils/uploaded-source.d.ts +4 -0
  219. package/dist/utils/uploaded-source.js +12 -0
  220. package/dist/visual-review.d.ts +4 -0
  221. package/dist/visual-review.js +208 -0
  222. package/dist/vocabulary.d.ts +38 -0
  223. package/dist/vocabulary.js +55 -0
  224. package/package.json +7 -2
  225. package/dist/agents/registry/deeplink-probes.d.ts +0 -23
  226. package/dist/agents/registry/deeplink-probes.js +0 -18
@@ -60,10 +60,10 @@
60
60
  }
61
61
  },
62
62
  "artifacts": {
63
- "program": {
63
+ "model": {
64
64
  "format": "spacefast.zero-wordpress",
65
65
  "version": 1,
66
- "revision": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
66
+ "revision": "sha256:5d447339ad5645d9c7473c8679a711d8bffb53053bc3875a2183a13765be772a",
67
67
  "schemas": [
68
68
  {
69
69
  "id": "empty-object",
@@ -150,7 +150,7 @@
150
150
  }
151
151
  ],
152
152
  "wordpress": {
153
- "format": "spacefast.wordpress-program",
153
+ "format": "spacefast.wordpress-content-model",
154
154
  "version": 1,
155
155
  "resources": [
156
156
  {
@@ -401,7 +401,7 @@
401
401
  "sha256": "sha256:8519907eb445b35dad6b18a21b1d6bf4b0f91e9c3bad95c2c21ec59923952ae1"
402
402
  },
403
403
  "permits": ["page.view"],
404
- "reads": ["content.projects"],
404
+ "reads": ["content.projects", "table.reactions"],
405
405
  "writes": [],
406
406
  "exposure": {
407
407
  "kind": "named",
@@ -443,14 +443,35 @@
443
443
  "resourceId": "projects",
444
444
  "fieldId": "project-body",
445
445
  "source": "content/projects/launch.md",
446
+ "format": "md",
446
447
  "slug": "launch"
448
+ },
449
+ {
450
+ "id": "sync.projects-guide",
451
+ "resourceId": "projects",
452
+ "fieldId": "project-body",
453
+ "source": "content/projects/guide.tsx",
454
+ "format": "tsx",
455
+ "compiled": {
456
+ "sha256": "sha256:5cd63a374f48166002badd36823204db55a55ce5c69ffa3c703e36b9e1662ac8"
457
+ },
458
+ "slug": "guide"
459
+ }
460
+ ],
461
+ "materializations": [
462
+ {
463
+ "resourceId": "projects",
464
+ "fieldId": "project-body",
465
+ "directory": "content/projects",
466
+ "suffix": ".md",
467
+ "format": "md"
447
468
  }
448
469
  ]
449
470
  },
450
471
  "executables": {
451
472
  "format": "spacefast.zero-executables",
452
473
  "version": 1,
453
- "inputDigest": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
474
+ "inputDigest": "sha256:5d447339ad5645d9c7473c8679a711d8bffb53053bc3875a2183a13765be772a",
454
475
  "executables": [
455
476
  {
456
477
  "id": "content.projects.list",
@@ -493,7 +514,7 @@
493
514
  "sdk": {
494
515
  "format": "spacefast.sdk-descriptors",
495
516
  "version": 1,
496
- "inputDigest": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
517
+ "inputDigest": "sha256:5d447339ad5645d9c7473c8679a711d8bffb53053bc3875a2183a13765be772a",
497
518
  "operations": [
498
519
  {
499
520
  "id": "content.projects.list",
@@ -548,7 +569,7 @@
548
569
  "cache": {
549
570
  "kind": "none"
550
571
  },
551
- "invalidates": []
572
+ "invalidates": ["endpoint.preview"]
552
573
  },
553
574
  {
554
575
  "id": "endpoint.webhook",
@@ -565,7 +586,7 @@
565
586
  "cache": {
566
587
  "kind": "none"
567
588
  },
568
- "invalidates": []
589
+ "invalidates": ["endpoint.preview"]
569
590
  },
570
591
  {
571
592
  "id": "endpoint.preview",
@@ -591,13 +612,18 @@
591
612
  "id": "sync.projects-body",
592
613
  "resourceId": "projects",
593
614
  "source": "content/projects/launch.md"
615
+ },
616
+ {
617
+ "id": "sync.projects-guide",
618
+ "resourceId": "projects",
619
+ "source": "content/projects/guide.tsx"
594
620
  }
595
621
  ]
596
622
  },
597
623
  "routes": {
598
624
  "format": "spacefast.route-contributions",
599
625
  "version": 1,
600
- "inputDigest": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
626
+ "inputDigest": "sha256:5d447339ad5645d9c7473c8679a711d8bffb53053bc3875a2183a13765be772a",
601
627
  "routes": [
602
628
  {
603
629
  "abilityId": "endpoint.webhook",
@@ -611,9 +637,9 @@
611
637
  ]
612
638
  },
613
639
  "requirements": {
614
- "format": "spacefast.program-requirements",
640
+ "format": "spacefast.content-model-requirements",
615
641
  "version": 1,
616
- "inputDigest": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
642
+ "inputDigest": "sha256:5d447339ad5645d9c7473c8679a711d8bffb53053bc3875a2183a13765be772a",
617
643
  "wordpressAbi": 1,
618
644
  "capabilities": [
619
645
  "wordpress.content",
@@ -623,52 +649,52 @@
623
649
  "wordpress.typed-meta",
624
650
  "lakebed.tables",
625
651
  "application.journal",
626
- "markdown.sync",
652
+ "source.sync",
627
653
  "quickjs.v1"
628
654
  ]
629
655
  }
630
656
  },
631
657
  "compiled": {
632
- "format": "spacefast.compiled-program",
658
+ "format": "spacefast.compiled-content-model",
633
659
  "version": 1,
634
- "program": {
660
+ "model": {
635
661
  "format": "spacefast.zero-wordpress",
636
662
  "version": 1,
637
663
  "inputDigest": "sha256:453c1f28a31bbe19a7bb923d221ab1a16c804ca98c485c1f80981cb39b3b789b",
638
- "sha256": "sha256:3dbc9207178f4886b12914a6fb581f35b40f7bd333e7ba1c8fbbdc92d1b4fd7f",
639
- "bytes": 6114,
664
+ "sha256": "sha256:74a3dbfedf29257c569651f2b43588a4eab30f97c67731a6965bd73ea7c68dbf",
665
+ "bytes": 6526,
640
666
  "mediaType": "application/json"
641
667
  },
642
668
  "executables": {
643
669
  "format": "spacefast.zero-executables",
644
670
  "version": 1,
645
- "inputDigest": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
646
- "sha256": "sha256:952d34a3f0f78c780de12216835640d1964cdc5a3be03668006f6be6e9d88c49",
671
+ "inputDigest": "sha256:5d447339ad5645d9c7473c8679a711d8bffb53053bc3875a2183a13765be772a",
672
+ "sha256": "sha256:c9f63e4135bda1befe79a66c7c8b6ae12248ab2d3f8d5f694060001ec1f13a2f",
647
673
  "bytes": 1132,
648
674
  "mediaType": "application/json"
649
675
  },
650
676
  "sdk": {
651
677
  "format": "spacefast.sdk-descriptors",
652
678
  "version": 1,
653
- "inputDigest": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
654
- "sha256": "sha256:35df0ef9700e718c3039a8174c32e79bd651e563ad06a542308543d768493d11",
655
- "bytes": 2068,
679
+ "inputDigest": "sha256:5d447339ad5645d9c7473c8679a711d8bffb53053bc3875a2183a13765be772a",
680
+ "sha256": "sha256:cc616c540fbe32b918740254646ac543b4611f3343f1c8684c48366276e92664",
681
+ "bytes": 2195,
656
682
  "mediaType": "application/json"
657
683
  },
658
684
  "routes": {
659
685
  "format": "spacefast.route-contributions",
660
686
  "version": 1,
661
- "inputDigest": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
662
- "sha256": "sha256:8dcb83db26af38985f09eb1a1ccc82d2c5c34dc3dcc5fb56eb8b152b54a4153b",
687
+ "inputDigest": "sha256:5d447339ad5645d9c7473c8679a711d8bffb53053bc3875a2183a13765be772a",
688
+ "sha256": "sha256:9ecec869bec2ef52e1942599cc79ea3ec8df47bcc4852eb0a72d550f8f854169",
663
689
  "bytes": 285,
664
690
  "mediaType": "application/json"
665
691
  },
666
692
  "requirements": {
667
- "format": "spacefast.program-requirements",
693
+ "format": "spacefast.content-model-requirements",
668
694
  "version": 1,
669
- "inputDigest": "sha256:f4727c476bcd1793f2fd8cdb232d8705a65eef10d35f6736bb2503bfe0e89e5f",
670
- "sha256": "sha256:eda721f19fac69de9d964a64f5d16840e3043e2210f525d0225f0f949eb9d53d",
671
- "bytes": 347,
695
+ "inputDigest": "sha256:5d447339ad5645d9c7473c8679a711d8bffb53053bc3875a2183a13765be772a",
696
+ "sha256": "sha256:4b8a3c552ab82921be8b4b83dab220c4e93799cccc127fc22cac0530e051f709",
697
+ "bytes": 351,
672
698
  "mediaType": "application/json"
673
699
  }
674
700
  },
@@ -676,7 +702,7 @@
676
702
  "format": "spacefast.wordpress-components",
677
703
  "version": 1,
678
704
  "platformRelease": "2026.08.28.1",
679
- "digest": "sha256:f7dfb8ce89b763198efe31f2ec4b908208316d2669ecc850bd092f2c4f63e09d",
705
+ "digest": "sha256:6ebad0f65434427fa6a65a0d60f43b47807af2f967aa125bfa9cf76ec8fed998",
680
706
  "components": [
681
707
  {
682
708
  "id": "wordpress-core",
@@ -712,7 +738,7 @@
712
738
  "kind": "embedded",
713
739
  "path": "wordpress/content-kernel.php"
714
740
  },
715
- "provides": ["application.journal", "markdown.sync", "lakebed.tables"],
741
+ "provides": ["application.journal", "source.sync", "lakebed.tables"],
716
742
  "activation": "always"
717
743
  },
718
744
  {
@@ -774,9 +800,33 @@
774
800
  "kind": "embedded",
775
801
  "path": "wordpress/block-transformer.zip"
776
802
  },
777
- "provides": ["wordpress.blocks", "markdown.sync"],
803
+ "provides": ["wordpress.blocks", "source.sync"],
804
+ "activation": "always"
805
+ },
806
+ {
807
+ "id": "php-toolkit",
808
+ "kind": "runtime-library",
809
+ "version": "0.9.0",
810
+ "sha256": "sha256:bd452b61fd6ee9f4838ff416a3d225e6c82a742ffaf325a57ad327828eda446a",
811
+ "source": {
812
+ "kind": "embedded",
813
+ "path": "engine/vendor/php-toolkit.phar"
814
+ },
815
+ "provides": ["wordpress.markdown"],
778
816
  "activation": "always"
779
817
  },
818
+ {
819
+ "id": "jetpack",
820
+ "kind": "plugin",
821
+ "version": "latest",
822
+ "sha256": "sha256:55ee45c302c9090e2be6fe18ce2f604d236355bec5d139548d9d32ede035953c",
823
+ "source": {
824
+ "kind": "provider-managed",
825
+ "software": "plugins/jetpack/latest"
826
+ },
827
+ "provides": ["wordpress.jetpack"],
828
+ "activation": "on-demand"
829
+ },
780
830
  {
781
831
  "id": "quickjs-abi",
782
832
  "kind": "quickjs-abi",
@@ -801,9 +851,9 @@
801
851
  "siteId": "site-fixture"
802
852
  },
803
853
  "platformRelease": "2026.08.28.1",
804
- "expectedInventoryDigest": "sha256:f7dfb8ce89b763198efe31f2ec4b908208316d2669ecc850bd092f2c4f63e09d",
854
+ "expectedInventoryDigest": "sha256:6ebad0f65434427fa6a65a0d60f43b47807af2f967aa125bfa9cf76ec8fed998",
805
855
  "status": "ready",
806
- "observedInventoryDigest": "sha256:f7dfb8ce89b763198efe31f2ec4b908208316d2669ecc850bd092f2c4f63e09d",
856
+ "observedInventoryDigest": "sha256:6ebad0f65434427fa6a65a0d60f43b47807af2f967aa125bfa9cf76ec8fed998",
807
857
  "substrate": {
808
858
  "wordpress": {
809
859
  "boot": "ready",
@@ -820,7 +870,8 @@
820
870
  },
821
871
  "journal": {
822
872
  "state": "ready"
823
- }
873
+ },
874
+ "onDemandActive": ["jetpack"]
824
875
  }
825
876
  },
826
877
  "routeInventory": {
@@ -894,6 +945,7 @@
894
945
  "nonce": "principal-fixture-nonce",
895
946
  "issuedAt": 1787923200,
896
947
  "expiresAt": 1787923500,
948
+ "wordpressRole": "editor",
897
949
  "actor": {
898
950
  "kind": "user",
899
951
  "id": "usr_fixture"
@@ -974,26 +1026,27 @@
974
1026
  "request": {
975
1027
  "bindingId": "sync.projects-body",
976
1028
  "source": "content/projects/launch.md",
977
- "markdown": "# Launch\n\nThe launch project is ready.\n",
1029
+ "text": "# Launch\n\nThe launch project is ready.\n",
978
1030
  "observedSourceRevision": "git-fixture-abc",
979
1031
  "operationId": "op_syncfixture",
980
1032
  "state": "bound",
981
1033
  "baseRevision": "sha256:c2bd36ab817475221782deac9e068597bfea910284098657326da7bc511d699c"
982
1034
  },
983
1035
  "receipt": {
984
- "format": "spacefast.markdown-sync",
1036
+ "format": "spacefast.content-sync",
985
1037
  "version": 1,
986
1038
  "operationId": "op_syncfixture",
987
1039
  "ledger": {
988
1040
  "version": 1,
989
1041
  "bindingId": "sync.projects-body",
990
1042
  "source": "content/projects/launch.md",
991
- "baseMarkdown": "# Launch\n\nThe launch project is ready.\n",
992
- "markdownDigest": "sha256:446c2cc77e227e78a0fab20e055fa95b1d43f65bb729144ecd0192b6500d0363",
1043
+ "format": "md",
1044
+ "baseText": "# Launch\n\nThe launch project is ready.\n",
1045
+ "textDigest": "sha256:446c2cc77e227e78a0fab20e055fa95b1d43f65bb729144ecd0192b6500d0363",
993
1046
  "blocksDigest": "sha256:4238420e9cd3767bfb446219efd5ff43629d0d8e4d9a4fbd29caac22dfa8e16e",
994
1047
  "wordpressRevisionId": 42,
995
1048
  "serializerVersion": 1,
996
- "revision": "sha256:8b2067b270a7ae09423a5126aeec05686ae2f1226e8b679fb53ffd06a043ff3c",
1049
+ "revision": "sha256:f9be9d2dff4e904b58d7023984c8a7e0c4362fb3ac0316271c5fd31550347e31",
997
1050
  "lastDirection": "pull"
998
1051
  },
999
1052
  "status": "pulled",
@@ -1001,39 +1054,38 @@
1001
1054
  "state": "prepared",
1002
1055
  "source": "content/projects/launch.md",
1003
1056
  "expectedSourceRevision": "git-fixture-abc",
1004
- "markdown": "# Launch\n\nThe launch project is ready.\n",
1005
- "markdownDigest": "sha256:446c2cc77e227e78a0fab20e055fa95b1d43f65bb729144ecd0192b6500d0363"
1057
+ "text": "# Launch\n\nThe launch project is ready.\n",
1058
+ "textDigest": "sha256:446c2cc77e227e78a0fab20e055fa95b1d43f65bb729144ecd0192b6500d0363"
1006
1059
  }
1007
1060
  }
1008
1061
  },
1009
1062
  "syncSourceAcknowledgement": {
1010
- "format": "spacefast.markdown-sync-ack",
1063
+ "format": "spacefast.content-sync-ack",
1011
1064
  "version": 1,
1012
1065
  "bindingId": "sync.projects-body",
1013
1066
  "operationId": "op_syncfixture",
1014
- "sourceRevision": "git-fixture-def",
1015
- "baseRevision": "sha256:8b2067b270a7ae09423a5126aeec05686ae2f1226e8b679fb53ffd06a043ff3c"
1067
+ "baseRevision": "sha256:f9be9d2dff4e904b58d7023984c8a7e0c4362fb3ac0316271c5fd31550347e31"
1016
1068
  },
1017
1069
  "syncConflict": {
1018
- "type": "https://spacefast.com/problems/content_markdown_conflict",
1019
- "title": "Markdown changed on both sides",
1070
+ "type": "https://spacefast.com/problems/content_sync_conflict",
1071
+ "title": "The source changed on both sides",
1020
1072
  "status": 409,
1021
1073
  "detail": "The source and WordPress document both changed after the common base.",
1022
- "code": "content_markdown_conflict",
1074
+ "code": "content_sync_conflict",
1023
1075
  "details": {
1024
1076
  "bindingId": "sync.projects-body",
1025
1077
  "base": {
1026
- "markdown": "# Launch\n",
1078
+ "text": "# Launch\n",
1027
1079
  "digest": "sha256:fbc640ee8eab5d0c68f5715a484b9747b2359a5ce135ab15e7831339c8bff84d",
1028
1080
  "revision": "base-40"
1029
1081
  },
1030
1082
  "source": {
1031
- "markdown": "# Launch source\n",
1083
+ "text": "# Launch source\n",
1032
1084
  "digest": "sha256:d930a247da873f3f46eea3af7b1d8dbb43d677c9a233a62b2b5fe43a23ffc38c",
1033
1085
  "revision": "git-abc"
1034
1086
  },
1035
1087
  "wordpress": {
1036
- "markdown": "# Launch editor\n",
1088
+ "text": "# Launch editor\n",
1037
1089
  "digest": "sha256:7d2a535a8e3c29ffd0b50d4be7804f12bc86be29f0406c01e351454914c73b90",
1038
1090
  "revision": "wp-43",
1039
1091
  "wordpressRevisionId": 43
@@ -2,7 +2,7 @@ import { z } from "zod";
2
2
  export declare const frameTargetV1Schema: z.ZodDiscriminatedUnion<[z.ZodObject<{
3
3
  kind: z.ZodLiteral<"live">;
4
4
  versionId: z.ZodTemplateLiteral<`ver_${string}`>;
5
- routeRevision: z.core.$ZodBranded<z.ZodString, "ContentProgramSha256", "out">;
5
+ routeRevision: z.core.$ZodBranded<z.ZodString, "ContentModelSha256", "out">;
6
6
  }, z.core.$strict>, z.ZodObject<{
7
7
  kind: z.ZodLiteral<"version">;
8
8
  versionId: z.ZodTemplateLiteral<`ver_${string}`>;
@@ -10,7 +10,7 @@ export declare const frameTargetV1Schema: z.ZodDiscriminatedUnion<[z.ZodObject<{
10
10
  kind: z.ZodLiteral<"branch">;
11
11
  branch: z.ZodString;
12
12
  versionId: z.ZodTemplateLiteral<`ver_${string}`>;
13
- branchRevision: z.core.$ZodBranded<z.ZodString, "ContentProgramSha256", "out">;
13
+ branchRevision: z.core.$ZodBranded<z.ZodString, "ContentModelSha256", "out">;
14
14
  }, z.core.$strict>], "kind">;
15
15
  export type FrameTargetV1 = z.infer<typeof frameTargetV1Schema>;
16
16
  export declare const framePrincipalV1Schema: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -54,7 +54,7 @@ export declare const frameGrantDecisionV1Schema: z.ZodObject<{
54
54
  target: z.ZodDiscriminatedUnion<[z.ZodObject<{
55
55
  kind: z.ZodLiteral<"live">;
56
56
  versionId: z.ZodTemplateLiteral<`ver_${string}`>;
57
- routeRevision: z.core.$ZodBranded<z.ZodString, "ContentProgramSha256", "out">;
57
+ routeRevision: z.core.$ZodBranded<z.ZodString, "ContentModelSha256", "out">;
58
58
  }, z.core.$strict>, z.ZodObject<{
59
59
  kind: z.ZodLiteral<"version">;
60
60
  versionId: z.ZodTemplateLiteral<`ver_${string}`>;
@@ -62,7 +62,7 @@ export declare const frameGrantDecisionV1Schema: z.ZodObject<{
62
62
  kind: z.ZodLiteral<"branch">;
63
63
  branch: z.ZodString;
64
64
  versionId: z.ZodTemplateLiteral<`ver_${string}`>;
65
- branchRevision: z.core.$ZodBranded<z.ZodString, "ContentProgramSha256", "out">;
65
+ branchRevision: z.core.$ZodBranded<z.ZodString, "ContentModelSha256", "out">;
66
66
  }, z.core.$strict>], "kind">;
67
67
  surface: z.ZodEnum<{
68
68
  "wordpress.editor": "wordpress.editor";
@@ -108,7 +108,7 @@ export declare const frameLaunchTicketClaimsV1Schema: z.ZodObject<{
108
108
  target: z.ZodDiscriminatedUnion<[z.ZodObject<{
109
109
  kind: z.ZodLiteral<"live">;
110
110
  versionId: z.ZodTemplateLiteral<`ver_${string}`>;
111
- routeRevision: z.core.$ZodBranded<z.ZodString, "ContentProgramSha256", "out">;
111
+ routeRevision: z.core.$ZodBranded<z.ZodString, "ContentModelSha256", "out">;
112
112
  }, z.core.$strict>, z.ZodObject<{
113
113
  kind: z.ZodLiteral<"version">;
114
114
  versionId: z.ZodTemplateLiteral<`ver_${string}`>;
@@ -116,7 +116,7 @@ export declare const frameLaunchTicketClaimsV1Schema: z.ZodObject<{
116
116
  kind: z.ZodLiteral<"branch">;
117
117
  branch: z.ZodString;
118
118
  versionId: z.ZodTemplateLiteral<`ver_${string}`>;
119
- branchRevision: z.core.$ZodBranded<z.ZodString, "ContentProgramSha256", "out">;
119
+ branchRevision: z.core.$ZodBranded<z.ZodString, "ContentModelSha256", "out">;
120
120
  }, z.core.$strict>], "kind">;
121
121
  surface: z.ZodEnum<{
122
122
  "wordpress.editor": "wordpress.editor";
@@ -130,7 +130,7 @@ export declare const frameLaunchTicketClaimsV1Schema: z.ZodObject<{
130
130
  "content.publish": "content.publish";
131
131
  "access.manage": "access.manage";
132
132
  }>>;
133
- grantDecisionDigest: z.core.$ZodBranded<z.ZodString, "ContentProgramSha256", "out">;
133
+ grantDecisionDigest: z.core.$ZodBranded<z.ZodString, "ContentModelSha256", "out">;
134
134
  accessGeneration: z.ZodNumber;
135
135
  sessionVersion: z.ZodNumber;
136
136
  issuedAt: z.ZodNumber;
@@ -160,7 +160,7 @@ export declare const frameSessionClaimsV1Schema: z.ZodObject<{
160
160
  target: z.ZodDiscriminatedUnion<[z.ZodObject<{
161
161
  kind: z.ZodLiteral<"live">;
162
162
  versionId: z.ZodTemplateLiteral<`ver_${string}`>;
163
- routeRevision: z.core.$ZodBranded<z.ZodString, "ContentProgramSha256", "out">;
163
+ routeRevision: z.core.$ZodBranded<z.ZodString, "ContentModelSha256", "out">;
164
164
  }, z.core.$strict>, z.ZodObject<{
165
165
  kind: z.ZodLiteral<"version">;
166
166
  versionId: z.ZodTemplateLiteral<`ver_${string}`>;
@@ -168,7 +168,7 @@ export declare const frameSessionClaimsV1Schema: z.ZodObject<{
168
168
  kind: z.ZodLiteral<"branch">;
169
169
  branch: z.ZodString;
170
170
  versionId: z.ZodTemplateLiteral<`ver_${string}`>;
171
- branchRevision: z.core.$ZodBranded<z.ZodString, "ContentProgramSha256", "out">;
171
+ branchRevision: z.core.$ZodBranded<z.ZodString, "ContentModelSha256", "out">;
172
172
  }, z.core.$strict>], "kind">;
173
173
  surface: z.ZodEnum<{
174
174
  "wordpress.editor": "wordpress.editor";
@@ -182,7 +182,7 @@ export declare const frameSessionClaimsV1Schema: z.ZodObject<{
182
182
  "content.publish": "content.publish";
183
183
  "access.manage": "access.manage";
184
184
  }>>;
185
- grantDecisionDigest: z.core.$ZodBranded<z.ZodString, "ContentProgramSha256", "out">;
185
+ grantDecisionDigest: z.core.$ZodBranded<z.ZodString, "ContentModelSha256", "out">;
186
186
  accessGeneration: z.ZodNumber;
187
187
  sessionVersion: z.ZodNumber;
188
188
  nonce: z.ZodString;
@@ -190,3 +190,53 @@ export declare const frameSessionClaimsV1Schema: z.ZodObject<{
190
190
  expiresAt: z.ZodNumber;
191
191
  }, z.core.$strict>;
192
192
  export type FrameSessionClaimsV1 = z.infer<typeof frameSessionClaimsV1Schema>;
193
+ export declare const SPACEFAST_FRAME_LAUNCH_TICKET_TTL_SECONDS = 60;
194
+ export declare const SPACEFAST_FRAME_SESSION_TTL_SECONDS: number;
195
+ export declare const spacefastFrameSessionLaunchSchema: z.ZodObject<{
196
+ path: z.ZodOptional<z.ZodString>;
197
+ target: z.ZodOptional<z.ZodObject<{
198
+ kind: z.ZodLiteral<"version">;
199
+ versionId: z.ZodTemplateLiteral<`ver_${string}`>;
200
+ }, z.core.$strict>>;
201
+ surface: z.ZodDefault<z.ZodEnum<{
202
+ "wordpress.editor": "wordpress.editor";
203
+ "wordpress.preview": "wordpress.preview";
204
+ }>>;
205
+ }, z.core.$strict>;
206
+ export declare const spacefastFrameSessionRenewSchema: z.ZodObject<{
207
+ sessionToken: z.ZodString;
208
+ }, z.core.$strict>;
209
+ export declare const spacefastFrameSessionSchema: z.ZodObject<{
210
+ spaceId: z.ZodTemplateLiteral<`spc_${string}`>;
211
+ linkId: z.ZodTemplateLiteral<`lnk_${string}`>;
212
+ linkRevision: z.ZodNumber;
213
+ parentOrigin: z.core.$ZodBranded<z.ZodString, "ExactOrigin", "out">;
214
+ path: z.ZodString;
215
+ target: z.ZodDiscriminatedUnion<[z.ZodObject<{
216
+ kind: z.ZodLiteral<"live">;
217
+ versionId: z.ZodTemplateLiteral<`ver_${string}`>;
218
+ routeRevision: z.core.$ZodBranded<z.ZodString, "ContentModelSha256", "out">;
219
+ }, z.core.$strict>, z.ZodObject<{
220
+ kind: z.ZodLiteral<"version">;
221
+ versionId: z.ZodTemplateLiteral<`ver_${string}`>;
222
+ }, z.core.$strict>, z.ZodObject<{
223
+ kind: z.ZodLiteral<"branch">;
224
+ branch: z.ZodString;
225
+ versionId: z.ZodTemplateLiteral<`ver_${string}`>;
226
+ branchRevision: z.core.$ZodBranded<z.ZodString, "ContentModelSha256", "out">;
227
+ }, z.core.$strict>], "kind">;
228
+ surface: z.ZodEnum<{
229
+ "wordpress.editor": "wordpress.editor";
230
+ "wordpress.preview": "wordpress.preview";
231
+ }>;
232
+ access: z.ZodEnum<{
233
+ private: "private";
234
+ public: "public";
235
+ }>;
236
+ url: z.ZodString;
237
+ sessionToken: z.ZodString;
238
+ expiresAt: z.ZodString;
239
+ }, z.core.$strict>;
240
+ export type SpacefastFrameSessionLaunch = z.infer<typeof spacefastFrameSessionLaunchSchema>;
241
+ export type SpacefastFrameSessionRenew = z.infer<typeof spacefastFrameSessionRenewSchema>;
242
+ export type SpacefastFrameSession = z.infer<typeof spacefastFrameSessionSchema>;
@@ -1,23 +1,27 @@
1
1
  import { z } from "zod";
2
- import { contentProgramSha256Schema } from "./content-program.js";
3
- import { grantCapabilitySchema } from "./grants.js";
4
- import { registeredIdSchema } from "./ids.js";
2
+ import { accessScopePathSchema } from "./access-core.js";
3
+ import { contentModelSha256Schema } from "./content-model.js";
4
+ import { grantCapabilitySchema } from "./grants-core.js";
5
+ // Frame tickets travel between the dashboard, the control plane and the serving
6
+ // runtime, so the prefixed ids below are this contract's wire format rather than
7
+ // a read of the host's prefix registry.
8
+ import { prefixedIdSchema } from "./ids-core.js";
5
9
  import { exactOriginSchema } from "./principal-assertion.js";
6
10
  export const frameTargetV1Schema = z.discriminatedUnion("kind", [
7
11
  z
8
12
  .object({
9
13
  kind: z.literal("live"),
10
- versionId: registeredIdSchema("ver"),
11
- routeRevision: contentProgramSha256Schema,
14
+ versionId: prefixedIdSchema("ver", "Version"),
15
+ routeRevision: contentModelSha256Schema,
12
16
  })
13
17
  .strict(),
14
- z.object({ kind: z.literal("version"), versionId: registeredIdSchema("ver") }).strict(),
18
+ z.object({ kind: z.literal("version"), versionId: prefixedIdSchema("ver", "Version") }).strict(),
15
19
  z
16
20
  .object({
17
21
  kind: z.literal("branch"),
18
22
  branch: z.string().min(1).max(255),
19
- versionId: registeredIdSchema("ver"),
20
- branchRevision: contentProgramSha256Schema,
23
+ versionId: prefixedIdSchema("ver", "Version"),
24
+ branchRevision: contentModelSha256Schema,
21
25
  })
22
26
  .strict(),
23
27
  ]);
@@ -33,7 +37,7 @@ export const framePrincipalV1Schema = z.discriminatedUnion("kind", [
33
37
  ]);
34
38
  export const frameAudienceV1Schema = z
35
39
  .object({
36
- spaceId: registeredIdSchema("spc"),
40
+ spaceId: prefixedIdSchema("spc", "Space"),
37
41
  runtimeInstanceId: z.string().min(1).max(255),
38
42
  host: exactOriginSchema,
39
43
  })
@@ -44,7 +48,7 @@ export const frameAudienceV1Schema = z
44
48
  // projection without translating a second revision scheme.
45
49
  export const frameLinkRevisionV1Schema = z
46
50
  .object({
47
- id: registeredIdSchema("lnk"),
51
+ id: prefixedIdSchema("lnk", "ShareLink"),
48
52
  revision: z.number().int().positive(),
49
53
  })
50
54
  .strict();
@@ -108,7 +112,7 @@ export const frameLaunchTicketClaimsV1Schema = z
108
112
  surface: z.enum(["wordpress.editor", "wordpress.preview"]),
109
113
  parentOrigin: exactOriginSchema,
110
114
  capabilities: z.array(grantCapabilitySchema).min(1).max(5),
111
- grantDecisionDigest: contentProgramSha256Schema,
115
+ grantDecisionDigest: contentModelSha256Schema,
112
116
  accessGeneration: z.number().int().nonnegative(),
113
117
  sessionVersion: z.number().int().nonnegative(),
114
118
  issuedAt: z.number().int().nonnegative(),
@@ -137,7 +141,7 @@ export const frameSessionClaimsV1Schema = z
137
141
  surface: z.enum(["wordpress.editor", "wordpress.preview"]),
138
142
  parentOrigin: exactOriginSchema,
139
143
  capabilities: z.array(grantCapabilitySchema).min(1).max(5),
140
- grantDecisionDigest: contentProgramSha256Schema,
144
+ grantDecisionDigest: contentModelSha256Schema,
141
145
  accessGeneration: z.number().int().nonnegative(),
142
146
  sessionVersion: z.number().int().nonnegative(),
143
147
  nonce: z.string().min(16).max(512),
@@ -162,3 +166,39 @@ export const frameSessionClaimsV1Schema = z
162
166
  }
163
167
  validateFrameAuthority(claims, context, "Frame sessions");
164
168
  });
169
+ export const SPACEFAST_FRAME_LAUNCH_TICKET_TTL_SECONDS = 60;
170
+ // A Frame session never outlives the principal assertion it was cut from, and
171
+ // an assertion may live at most five minutes (principal-assertion.ts). The
172
+ // renewal route re-evaluates the Link and re-cuts both, so this is the window
173
+ // between authority checks, not the life of the frame.
174
+ export const SPACEFAST_FRAME_SESSION_TTL_SECONDS = 5 * 60;
175
+ const requestedFrameVersionTargetV1Schema = z
176
+ .object({ kind: z.literal("version"), versionId: prefixedIdSchema("ver", "Version") })
177
+ .strict();
178
+ export const spacefastFrameSessionLaunchSchema = z
179
+ .object({
180
+ path: accessScopePathSchema.optional(),
181
+ target: requestedFrameVersionTargetV1Schema
182
+ .optional()
183
+ .describe("The immutable Version to launch when the Link targets all Versions."),
184
+ surface: z.enum(["wordpress.editor", "wordpress.preview"]).default("wordpress.preview"),
185
+ })
186
+ .strict();
187
+ export const spacefastFrameSessionRenewSchema = z
188
+ .object({ sessionToken: z.string().min(32).max(16_384) })
189
+ .strict();
190
+ export const spacefastFrameSessionSchema = z
191
+ .object({
192
+ spaceId: prefixedIdSchema("spc", "Space"),
193
+ linkId: prefixedIdSchema("lnk", "ShareLink"),
194
+ linkRevision: z.number().int().positive(),
195
+ parentOrigin: exactOriginSchema,
196
+ path: accessScopePathSchema,
197
+ target: frameTargetV1Schema,
198
+ surface: z.enum(["wordpress.editor", "wordpress.preview"]),
199
+ access: z.enum(["public", "private"]),
200
+ url: z.string().url(),
201
+ sessionToken: z.string().min(32),
202
+ expiresAt: z.string().datetime(),
203
+ })
204
+ .strict();