@warpgogol/werkstatt-shared 0.2.0

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 (403) hide show
  1. package/package.json +352 -0
  2. package/src/checks/index.ts +24 -0
  3. package/src/checks/lib/astro-site-url.ts +30 -0
  4. package/src/checks/lib/i18n.ts +30 -0
  5. package/src/checks/result-helpers.ts +102 -0
  6. package/src/checks/suppressions-config.ts +195 -0
  7. package/src/index.ts +14 -0
  8. package/src/integration/README.md +38 -0
  9. package/src/integration/adapters.ts +143 -0
  10. package/src/integration/crm-buffer.ts +491 -0
  11. package/src/integration/dispatch.ts +106 -0
  12. package/src/integration/funnel.ts +379 -0
  13. package/src/integration/index.ts +56 -0
  14. package/src/integration/lifecycle.ts +155 -0
  15. package/src/integration/orchestration.ts +439 -0
  16. package/src/integration/port-barrel.ts +124 -0
  17. package/src/integration/port.ts +143 -0
  18. package/src/integration/qstash.ts +134 -0
  19. package/src/integration/sharding.ts +133 -0
  20. package/src/integration/tests/deliver-event.test.ts +52 -0
  21. package/src/integration/tests/dispatch.test.ts +88 -0
  22. package/src/integration/tests/funnel-bridge.test.ts +46 -0
  23. package/src/integration/tests/hub-runtime.test.ts +128 -0
  24. package/src/integration/tests/lifecycle.test.ts +69 -0
  25. package/src/integration/tests/qstash.test.ts +83 -0
  26. package/src/integration/tests/sharding.test.ts +64 -0
  27. package/src/integration/vitest.config.ts +8 -0
  28. package/src/integration-adapter-supabase-crm/adapter.ts +437 -0
  29. package/src/integration-adapter-supabase-crm/client.ts +605 -0
  30. package/src/integration-adapter-supabase-crm/index.ts +28 -0
  31. package/src/integration-adapter-supabase-crm/pipedrive-sync-target.ts +482 -0
  32. package/src/integration-adapter-supabase-crm/supabase-rest.ts +89 -0
  33. package/src/integration-adapter-supabase-crm/tenant-registry.ts +334 -0
  34. package/src/integration-adapter-supabase-crm/tests/change-balance.pbt.test.ts +83 -0
  35. package/src/integration-adapter-supabase-crm/tests/funnel-persistence.test.ts +409 -0
  36. package/src/integration-adapter-supabase-crm/tests/lifecycle-sync.test.ts +288 -0
  37. package/src/integration-adapter-supabase-crm/tests/stage-map.test.ts +80 -0
  38. package/src/integration-adapter-supabase-crm/vitest.config.ts +8 -0
  39. package/src/integration-adapter-supabase-crm/worker.ts +223 -0
  40. package/src/observability/conventions.ts +93 -0
  41. package/src/observability/env-resolver.ts +57 -0
  42. package/src/observability/index.ts +57 -0
  43. package/src/observability/metric-registry.ts +184 -0
  44. package/src/observability/otlp-converter.ts +125 -0
  45. package/src/observability/otlp-json.ts +135 -0
  46. package/src/observability/otlp-transport.ts +68 -0
  47. package/src/observability/pusher.ts +142 -0
  48. package/src/observability/redact.ts +27 -0
  49. package/src/observability/tests/conventions.test.ts +100 -0
  50. package/src/observability/tests/metric-registry.test.ts +117 -0
  51. package/src/observability/tests/otlp-converter.pbt.test.ts +77 -0
  52. package/src/observability/tests/otlp-converter.test.ts +157 -0
  53. package/src/observability/tests/otlp-json.test.ts +120 -0
  54. package/src/observability/tests/pusher.test.ts +75 -0
  55. package/src/observability/tests/redact.pbt.test.ts +71 -0
  56. package/src/observability/tests/redact.test.ts +37 -0
  57. package/src/observability/typed-refs.ts +137 -0
  58. package/src/observability/vitest.config.ts +8 -0
  59. package/src/ontology/analytics/matomo-binding.yaml +172 -0
  60. package/src/ontology/analytics/matomo-fleet.registry.yaml +26 -0
  61. package/src/ontology/analytics/messkanon.yaml +151 -0
  62. package/src/ontology/archetype-registry.ts +61 -0
  63. package/src/ontology/archetypes/components/brand-label.yaml +19 -0
  64. package/src/ontology/archetypes/components/copyright.yaml +19 -0
  65. package/src/ontology/archetypes/components/currency-aware-price-display.yaml +19 -0
  66. package/src/ontology/archetypes/components/currency-selector.yaml +19 -0
  67. package/src/ontology/archetypes/components/footer-promo.yaml +19 -0
  68. package/src/ontology/archetypes/components/lang-switcher.yaml +19 -0
  69. package/src/ontology/archetypes/components/layout.yaml +19 -0
  70. package/src/ontology/archetypes/components/live-photo.yaml +20 -0
  71. package/src/ontology/archetypes/components/material-credit.yaml +20 -0
  72. package/src/ontology/archetypes/components/media.yaml +21 -0
  73. package/src/ontology/archetypes/components/nachweis-card.yaml +34 -0
  74. package/src/ontology/archetypes/components/nachweis-detail.yaml +43 -0
  75. package/src/ontology/archetypes/components/nachweis-list.yaml +37 -0
  76. package/src/ontology/archetypes/components/nachweis-verify.yaml +31 -0
  77. package/src/ontology/archetypes/components/not-found.yaml +22 -0
  78. package/src/ontology/archetypes/components/offer-capacity.yaml +21 -0
  79. package/src/ontology/archetypes/components/passport-header.yaml +19 -0
  80. package/src/ontology/archetypes/components/passport-provenance.yaml +20 -0
  81. package/src/ontology/archetypes/components/passport-score-grid.yaml +20 -0
  82. package/src/ontology/archetypes/components/passport-star-map.yaml +20 -0
  83. package/src/ontology/archetypes/components/person-profile.yaml +20 -0
  84. package/src/ontology/archetypes/components/pulsar.yaml +20 -0
  85. package/src/ontology/archetypes/components/responsive-image.yaml +19 -0
  86. package/src/ontology/archetypes/components/scroll-to-top.yaml +22 -0
  87. package/src/ontology/archetypes/components/social-meta.yaml +20 -0
  88. package/src/ontology/archetypes/components/structured-data.yaml +19 -0
  89. package/src/ontology/archetypes/index.json +1003 -0
  90. package/src/ontology/archetypes/index.yaml +821 -0
  91. package/src/ontology/archetypes/sections/approach.yaml +23 -0
  92. package/src/ontology/archetypes/sections/article-list.yaml +30 -0
  93. package/src/ontology/archetypes/sections/audience-cards.yaml +30 -0
  94. package/src/ontology/archetypes/sections/breadcrumbs.yaml +21 -0
  95. package/src/ontology/archetypes/sections/chat-widget.yaml +37 -0
  96. package/src/ontology/archetypes/sections/comparison-cards.yaml +31 -0
  97. package/src/ontology/archetypes/sections/controlled-responsibility-block.yaml +34 -0
  98. package/src/ontology/archetypes/sections/credits.yaml +29 -0
  99. package/src/ontology/archetypes/sections/donation-card.yaml +53 -0
  100. package/src/ontology/archetypes/sections/donation-use.yaml +23 -0
  101. package/src/ontology/archetypes/sections/dynamic-status-block.yaml +35 -0
  102. package/src/ontology/archetypes/sections/faq-list.yaml +26 -0
  103. package/src/ontology/archetypes/sections/final-cta.yaml +53 -0
  104. package/src/ontology/archetypes/sections/hero-decision-card.yaml +65 -0
  105. package/src/ontology/archetypes/sections/hero.yaml +50 -0
  106. package/src/ontology/archetypes/sections/impact.yaml +23 -0
  107. package/src/ontology/archetypes/sections/markdown.yaml +43 -0
  108. package/src/ontology/archetypes/sections/mountain-journey.yaml +43 -0
  109. package/src/ontology/archetypes/sections/navigation.yaml +20 -0
  110. package/src/ontology/archetypes/sections/notausgang-block.yaml +41 -0
  111. package/src/ontology/archetypes/sections/open-source-registry.yaml +26 -0
  112. package/src/ontology/archetypes/sections/ownership-block.yaml +57 -0
  113. package/src/ontology/archetypes/sections/people.yaml +48 -0
  114. package/src/ontology/archetypes/sections/price-card.yaml +50 -0
  115. package/src/ontology/archetypes/sections/problem.yaml +23 -0
  116. package/src/ontology/archetypes/sections/send-message.yaml +63 -0
  117. package/src/ontology/archetypes/sections/service-metadata-block.yaml +40 -0
  118. package/src/ontology/archetypes/sections/social-proof.yaml +27 -0
  119. package/src/ontology/archetypes/sections/transparency.yaml +32 -0
  120. package/src/ontology/archetypes/sections/trust-strip.yaml +42 -0
  121. package/src/ontology/archetypes/sections/video-section.yaml +27 -0
  122. package/src/ontology/archetypes/sections/women.yaml +29 -0
  123. package/src/ontology/biome-token-projection.ts +229 -0
  124. package/src/ontology/biomes/check-concrete-blueprint.yaml +118 -0
  125. package/src/ontology/biomes/handwerk-material-warm.yaml +135 -0
  126. package/src/ontology/biomes/nonprofit-trust.yaml +123 -0
  127. package/src/ontology/blueprints/offer.yaml +39 -0
  128. package/src/ontology/blueprints/prompts/local-market-signal.md +13 -0
  129. package/src/ontology/blueprints/prompts/website-local-narrative.md +24 -0
  130. package/src/ontology/blueprints/ratgeber.yaml +62 -0
  131. package/src/ontology/blueprints/website-local.yaml +309 -0
  132. package/src/ontology/blueprints/website-service.yaml +84 -0
  133. package/src/ontology/capabilities/lead.submit.yaml +44 -0
  134. package/src/ontology/cosmic/index.ts +48 -0
  135. package/src/ontology/cosmic/moon-catalog.ts +173 -0
  136. package/src/ontology/cosmic/planet-catalog.ts +82 -0
  137. package/src/ontology/cosmic/star-catalog.ts +337 -0
  138. package/src/ontology/enums.ts +159 -0
  139. package/src/ontology/external-surfaces/index.ts +158 -0
  140. package/src/ontology/external-surfaces/jsonld-types.yaml +135 -0
  141. package/src/ontology/external-surfaces/sitemap-shape.yaml +6 -0
  142. package/src/ontology/external-surfaces/url-schema.yaml +95 -0
  143. package/src/ontology/growth/events/contact-email-click.yaml +21 -0
  144. package/src/ontology/growth/events/contact-form-submit.yaml +25 -0
  145. package/src/ontology/growth/events/contact-phone-click.yaml +21 -0
  146. package/src/ontology/growth/events/contact-route-click.yaml +21 -0
  147. package/src/ontology/growth/events/contact-submit.yaml +28 -0
  148. package/src/ontology/growth/events/contact-whatsapp-click.yaml +21 -0
  149. package/src/ontology/growth/events/cta-click.yaml +30 -0
  150. package/src/ontology/growth/events/donation-confirmed.yaml +32 -0
  151. package/src/ontology/growth/events/donation-form-start.yaml +21 -0
  152. package/src/ontology/growth/events/donation-form-submit.yaml +29 -0
  153. package/src/ontology/growth/events/donation-intent.yaml +29 -0
  154. package/src/ontology/growth/events/form-error.yaml +27 -0
  155. package/src/ontology/growth/events/form-start.yaml +21 -0
  156. package/src/ontology/growth/events/form-submit.yaml +21 -0
  157. package/src/ontology/growth/events/outbound-click.yaml +25 -0
  158. package/src/ontology/growth/events/page-view.yaml +24 -0
  159. package/src/ontology/growth/events/passport-view.yaml +28 -0
  160. package/src/ontology/growth/events/star-map-navigate.yaml +30 -0
  161. package/src/ontology/index.ts +165 -0
  162. package/src/ontology/manifest.ts +344 -0
  163. package/src/ontology/operations/index.ts +1 -0
  164. package/src/ontology/schemas/biome.ts +303 -0
  165. package/src/ontology/schemas/capability.ts +104 -0
  166. package/src/ontology/schemas/constellation.ts +114 -0
  167. package/src/ontology/schemas/dns-records.ts +53 -0
  168. package/src/ontology/schemas/index.ts +95 -0
  169. package/src/ontology/schemas/manifest-resolver.ts +123 -0
  170. package/src/ontology/schemas/page-entry.ts +213 -0
  171. package/src/ontology/schemas/section-archetype.ts +109 -0
  172. package/src/ontology/schemas/site-family.ts +98 -0
  173. package/src/ontology/schemas/system/growth.ts +80 -0
  174. package/src/ontology/schemas/system/integrations.ts +143 -0
  175. package/src/ontology/schemas/system/manifest.ts +492 -0
  176. package/src/ontology/schemas/system/page-output.ts +99 -0
  177. package/src/ontology/schemas/system/release.ts +58 -0
  178. package/src/ontology/schemas/system/text.ts +58 -0
  179. package/src/ontology/schemas/system.ts +53 -0
  180. package/src/ontology/shared-section-props/body-fragments.ts +182 -0
  181. package/src/ontology/shared-section-props/catalog.ts +195 -0
  182. package/src/ontology/shared-section-props/common.ts +178 -0
  183. package/src/ontology/shared-section-props/index.ts +34 -0
  184. package/src/ontology/shared-section-props/visual-header.ts +163 -0
  185. package/src/ontology/site-families/charity-donation-trust/cultural-rules.yaml +6 -0
  186. package/src/ontology/site-families/charity-donation-trust/family.yaml +44 -0
  187. package/src/ontology/site-families/charity-donation-trust/linguistic-rules.yaml +6 -0
  188. package/src/ontology/site-families/check-quality-operator/cultural-rules.yaml +6 -0
  189. package/src/ontology/site-families/check-quality-operator/family.yaml +40 -0
  190. package/src/ontology/site-families/check-quality-operator/linguistic-rules.yaml +6 -0
  191. package/src/ontology/site-families/handwerk-trust-engineering/cultural-rules.yaml +6 -0
  192. package/src/ontology/site-families/handwerk-trust-engineering/family.yaml +53 -0
  193. package/src/ontology/site-families/handwerk-trust-engineering/linguistic-rules.yaml +6 -0
  194. package/src/ontology/tests/catalogs.pbt.test.ts +89 -0
  195. package/src/ontology/tests/enums.test.ts +203 -0
  196. package/src/ontology/tests/sternsystem-owner.test.ts +63 -0
  197. package/src/ontology/vitest.config.ts +8 -0
  198. package/src/passport/dht-sign.test.ts +99 -0
  199. package/src/passport/dht-sign.ts +73 -0
  200. package/src/passport/identity-sign.test.ts +134 -0
  201. package/src/passport/identity-sign.ts +85 -0
  202. package/src/passport/index.ts +53 -0
  203. package/src/passport/key-rotate.ts +133 -0
  204. package/src/passport/schema.ts +198 -0
  205. package/src/passport/sign.ts +225 -0
  206. package/src/passport/tests/schema.pbt.test.ts +93 -0
  207. package/src/passport/tests/schema.test.ts +222 -0
  208. package/src/passport/vitest.config.ts +8 -0
  209. package/src/share/agent/api-catalog.ts +77 -0
  210. package/src/share/agent/capability.ts +68 -0
  211. package/src/share/agent/dns-aid.test.ts +74 -0
  212. package/src/share/agent/dns-aid.ts +53 -0
  213. package/src/share/agent/fleet-catalog.ts +149 -0
  214. package/src/share/agent/index.ts +29 -0
  215. package/src/share/agent/knowledge.ts +96 -0
  216. package/src/share/agent/manifest.ts +126 -0
  217. package/src/share/agent/mcp-card.ts +63 -0
  218. package/src/share/agent/omit-empty.ts +77 -0
  219. package/src/share/agent/openapi.ts +157 -0
  220. package/src/share/agent/proof.ts +61 -0
  221. package/src/share/attribution-display.ts +86 -0
  222. package/src/share/check-hints.ts +38 -0
  223. package/src/share/content/entity-id.ts +65 -0
  224. package/src/share/content/index.ts +16 -0
  225. package/src/share/content/merge.ts +86 -0
  226. package/src/share/content/resolve-field-path.ts +39 -0
  227. package/src/share/content/substitute-deep.ts +47 -0
  228. package/src/share/content-discipline/index.ts +14 -0
  229. package/src/share/content-discipline/parsers.ts +66 -0
  230. package/src/share/content-discipline/types.ts +118 -0
  231. package/src/share/content-reference.ts +333 -0
  232. package/src/share/counter-utils.ts +75 -0
  233. package/src/share/css-value-normalize.ts +48 -0
  234. package/src/share/dev-props-validator.ts +131 -0
  235. package/src/share/entitlement.ts +172 -0
  236. package/src/share/env.d.ts +73 -0
  237. package/src/share/feature-policy.ts +367 -0
  238. package/src/share/formula-eval.ts +364 -0
  239. package/src/share/fs/index.ts +96 -0
  240. package/src/share/i18n/localization.ts +57 -0
  241. package/src/share/image-provider.ts +314 -0
  242. package/src/share/index.ts +86 -0
  243. package/src/share/knowledge/claim.ts +129 -0
  244. package/src/share/knowledge/derivation.ts +55 -0
  245. package/src/share/knowledge/freshness.ts +127 -0
  246. package/src/share/knowledge/index.ts +23 -0
  247. package/src/share/knowledge/ledger.ts +222 -0
  248. package/src/share/knowledge/plan.ts +122 -0
  249. package/src/share/knowledge/source.ts +170 -0
  250. package/src/share/legal/translation-policy.ts +133 -0
  251. package/src/share/material-credits.ts +181 -0
  252. package/src/share/middleware/language-redirect.ts +49 -0
  253. package/src/share/offer-capacity.ts +149 -0
  254. package/src/share/onboarding-yaml/index.ts +162 -0
  255. package/src/share/page.ts +351 -0
  256. package/src/share/redirects.test.ts +62 -0
  257. package/src/share/redirects.ts +54 -0
  258. package/src/share/rfc0042-utils.ts +95 -0
  259. package/src/share/runtime-context.ts +70 -0
  260. package/src/share/schemas/claim-records.ts +69 -0
  261. package/src/share/schemas/claims.ts +150 -0
  262. package/src/share/schemas/effects.ts +212 -0
  263. package/src/share/schemas/features.ts +147 -0
  264. package/src/share/schemas/horizontal-align.ts +22 -0
  265. package/src/share/schemas/icon-color.ts +27 -0
  266. package/src/share/schemas/index.ts +43 -0
  267. package/src/share/schemas/live-photo.ts +53 -0
  268. package/src/share/schemas/material-credit.ts +292 -0
  269. package/src/share/schemas/media.ts +220 -0
  270. package/src/share/schemas/navigation.ts +74 -0
  271. package/src/share/schemas/page-base.ts +33 -0
  272. package/src/share/schemas/participant.ts +247 -0
  273. package/src/share/schemas/person.ts +24 -0
  274. package/src/share/schemas/print.ts +93 -0
  275. package/src/share/schemas/section-background.ts +106 -0
  276. package/src/share/schemas/section-body.ts +138 -0
  277. package/src/share/schemas/section-cards.ts +37 -0
  278. package/src/share/schemas/section-cta.ts +74 -0
  279. package/src/share/schemas/section-header.ts +77 -0
  280. package/src/share/schemas/section-image.ts +77 -0
  281. package/src/share/schemas/section-motion.ts +52 -0
  282. package/src/share/schemas/section-shell.ts +63 -0
  283. package/src/share/schemas/section-stats.ts +37 -0
  284. package/src/share/schemas/site-background.ts +78 -0
  285. package/src/share/schemas/standard-list-item.ts +38 -0
  286. package/src/share/scripts/external-links.ts +45 -0
  287. package/src/share/scripts/gsap-counter.ts +168 -0
  288. package/src/share/scripts/gsap-mountain-journey.ts +236 -0
  289. package/src/share/scripts/gsap-parallax.ts +50 -0
  290. package/src/share/scripts/gsap-reveal.ts +65 -0
  291. package/src/share/scripts/gsap-stagger.ts +54 -0
  292. package/src/share/scripts/index.ts +25 -0
  293. package/src/share/scripts/inline-number-animation.ts +120 -0
  294. package/src/share/scripts/lenis.ts +109 -0
  295. package/src/share/scripts/live-photos.ts +250 -0
  296. package/src/share/scripts/lordicon.ts +94 -0
  297. package/src/share/scripts/orchestrator.ts +138 -0
  298. package/src/share/scripts/scheduler.ts +53 -0
  299. package/src/share/scripts/video-player.ts +116 -0
  300. package/src/share/semantic/ai.ts +140 -0
  301. package/src/share/semantic/block-extraction.ts +52 -0
  302. package/src/share/semantic/block-extractors/index.ts +502 -0
  303. package/src/share/semantic/breadcrumbs.ts +120 -0
  304. package/src/share/semantic/build-page.ts +309 -0
  305. package/src/share/semantic/business-projection.ts +278 -0
  306. package/src/share/semantic/derived-prices-loader.ts +36 -0
  307. package/src/share/semantic/extract.ts +118 -0
  308. package/src/share/semantic/feed.ts +124 -0
  309. package/src/share/semantic/ids.ts +76 -0
  310. package/src/share/semantic/image-sitemap.ts +153 -0
  311. package/src/share/semantic/index.ts +36 -0
  312. package/src/share/semantic/jsonld/article.ts +47 -0
  313. package/src/share/semantic/jsonld/breadcrumb.ts +47 -0
  314. package/src/share/semantic/jsonld/collection-list.ts +30 -0
  315. package/src/share/semantic/jsonld/context.ts +46 -0
  316. package/src/share/semantic/jsonld/faq.ts +49 -0
  317. package/src/share/semantic/jsonld/initiative.ts +53 -0
  318. package/src/share/semantic/jsonld/organization.ts +101 -0
  319. package/src/share/semantic/jsonld/person.ts +71 -0
  320. package/src/share/semantic/jsonld/service.ts +80 -0
  321. package/src/share/semantic/jsonld/shared.ts +31 -0
  322. package/src/share/semantic/jsonld/types.ts +18 -0
  323. package/src/share/semantic/jsonld/webpage.ts +98 -0
  324. package/src/share/semantic/jsonld/website.ts +27 -0
  325. package/src/share/semantic/jsonld.ts +75 -0
  326. package/src/share/semantic/llms-policy.ts +74 -0
  327. package/src/share/semantic/llms.ts +394 -0
  328. package/src/share/semantic/markdown-hygiene.ts +68 -0
  329. package/src/share/semantic/markdown-twin-provenance.ts +242 -0
  330. package/src/share/semantic/models.ts +402 -0
  331. package/src/share/semantic/organization-profile.ts +160 -0
  332. package/src/share/semantic/output-projection.ts +131 -0
  333. package/src/share/semantic/page-builders/markdown-page.ts +84 -0
  334. package/src/share/semantic/page-markdown.ts +234 -0
  335. package/src/share/semantic/page-utils.ts +125 -0
  336. package/src/share/semantic/price-marker-resolver.ts +92 -0
  337. package/src/share/semantic/robots.ts +127 -0
  338. package/src/share/semantic/update-stamp.ts +136 -0
  339. package/src/share/shared-context.ts +177 -0
  340. package/src/share/string-utils.ts +19 -0
  341. package/src/share/tests/api-catalog.test.ts +97 -0
  342. package/src/share/tests/breadcrumbs.test.ts +126 -0
  343. package/src/share/tests/build-page-price-markers.test.ts +160 -0
  344. package/src/share/tests/capability.test.ts +107 -0
  345. package/src/share/tests/claim.test.ts +90 -0
  346. package/src/share/tests/content-ref-index.test.ts +328 -0
  347. package/src/share/tests/create-dev-props-validator.test.ts +38 -0
  348. package/src/share/tests/derivation.test.ts +39 -0
  349. package/src/share/tests/dev-props-validator.test.ts +88 -0
  350. package/src/share/tests/fleet-catalog.test.ts +134 -0
  351. package/src/share/tests/formula-eval.test.ts +619 -0
  352. package/src/share/tests/freshness.test.ts +60 -0
  353. package/src/share/tests/hero-section-numbering-parity.test.ts +51 -0
  354. package/src/share/tests/image-sitemap.test.ts +101 -0
  355. package/src/share/tests/jsonld-service.test.ts +282 -0
  356. package/src/share/tests/knowledge.test.ts +86 -0
  357. package/src/share/tests/ledger.test.ts +125 -0
  358. package/src/share/tests/llms-0789.test.ts +63 -0
  359. package/src/share/tests/manifest.test.ts +100 -0
  360. package/src/share/tests/markdown-twin-provenance.test.ts +108 -0
  361. package/src/share/tests/mcp-card.test.ts +57 -0
  362. package/src/share/tests/onboarding-yaml.test.ts +111 -0
  363. package/src/share/tests/ontology-role-by-cosmic-name.test.ts +28 -0
  364. package/src/share/tests/openapi.test.ts +116 -0
  365. package/src/share/tests/organization-jsonld.test.ts +74 -0
  366. package/src/share/tests/output-projection.test.ts +61 -0
  367. package/src/share/tests/plan.test.ts +97 -0
  368. package/src/share/tests/price-marker-resolver.test.ts +141 -0
  369. package/src/share/tests/proof.test.ts +72 -0
  370. package/src/share/tests/resolve-field-path.test.ts +52 -0
  371. package/src/share/tests/source.test.ts +81 -0
  372. package/src/share/tests/substitute-deep.test.ts +65 -0
  373. package/src/share/tests/text-normalize.pbt.test.ts +143 -0
  374. package/src/share/tests/text-normalize.test.ts +285 -0
  375. package/src/share/tests/twin-path.test.ts +43 -0
  376. package/src/share/text-normalize.ts +548 -0
  377. package/src/share/text-position.ts +19 -0
  378. package/src/share/types/hls-js-light.d.ts +16 -0
  379. package/src/share/visibility.ts +167 -0
  380. package/src/share/vitest.config.ts +8 -0
  381. package/src/share/wrap-inline-numbers.ts +139 -0
  382. package/src/surface/blueprint-schema.ts +314 -0
  383. package/src/surface/blueprint-types.ts +256 -0
  384. package/src/surface/blueprint.ts +300 -0
  385. package/src/surface/breaker.ts +57 -0
  386. package/src/surface/decision-composer.ts +156 -0
  387. package/src/surface/eligibility.ts +372 -0
  388. package/src/surface/evidence-records.ts +97 -0
  389. package/src/surface/fleet.ts +60 -0
  390. package/src/surface/geo.ts +170 -0
  391. package/src/surface/governance.ts +146 -0
  392. package/src/surface/index.ts +216 -0
  393. package/src/surface/io/index.ts +18 -0
  394. package/src/surface/io/surface-module-context-io.ts +60 -0
  395. package/src/surface/io/visibility-outcomes-io.ts +46 -0
  396. package/src/surface/module-context.ts +120 -0
  397. package/src/surface/substance.ts +161 -0
  398. package/src/surface/tests/eligibility.pbt.test.ts +137 -0
  399. package/src/surface/tests/eligibility.test.ts +302 -0
  400. package/src/surface/types.ts +289 -0
  401. package/src/surface/visibility.ts +57 -0
  402. package/src/surface/vitest.config.ts +8 -0
  403. package/tsconfig.json +17 -0
@@ -0,0 +1,1003 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "totalCount": 58,
4
+ "entries": [
5
+ {
6
+ "id": "approach",
7
+ "displayName": "Approach",
8
+ "semanticRole": "approach",
9
+ "version": "1.2.0",
10
+ "layoutHint": "card-grid",
11
+ "acceptedCosmicNames": [
12
+ "Titan"
13
+ ],
14
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/approach.yaml",
15
+ "layer": "section"
16
+ },
17
+ {
18
+ "id": "article-list",
19
+ "displayName": "Article list",
20
+ "semanticRole": "article-index",
21
+ "version": "1.0.0",
22
+ "layoutHint": "single-column",
23
+ "acceptedCosmicNames": [
24
+ "Io"
25
+ ],
26
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/article-list.yaml",
27
+ "layer": "section"
28
+ },
29
+ {
30
+ "id": "audience-cards",
31
+ "displayName": "Audience cards",
32
+ "semanticRole": "audience-self-identification",
33
+ "version": "1.2.0",
34
+ "layoutHint": "card-grid",
35
+ "acceptedCosmicNames": [
36
+ "Epimetheus"
37
+ ],
38
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/audience-cards.yaml",
39
+ "layer": "section"
40
+ },
41
+ {
42
+ "id": "brand-label",
43
+ "displayName": "Brand Label",
44
+ "semanticRole": "component-brand-label",
45
+ "version": "1.0.0",
46
+ "layoutHint": "split",
47
+ "acceptedCosmicNames": [
48
+ "Proteus"
49
+ ],
50
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/brand-label.yaml",
51
+ "layer": "component"
52
+ },
53
+ {
54
+ "id": "breadcrumbs",
55
+ "displayName": "Breadcrumbs",
56
+ "semanticRole": "breadcrumbs",
57
+ "version": "1.0.0",
58
+ "layoutHint": "single-column",
59
+ "acceptedCosmicNames": [
60
+ "Thebe"
61
+ ],
62
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/breadcrumbs.yaml",
63
+ "layer": "section"
64
+ },
65
+ {
66
+ "id": "chat-widget",
67
+ "displayName": "Chat widget",
68
+ "semanticRole": "consent-gated-chat-launcher",
69
+ "version": "1.0.0",
70
+ "layoutHint": "single-column",
71
+ "acceptedCosmicNames": [
72
+ "Amalthea"
73
+ ],
74
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/chat-widget.yaml",
75
+ "layer": "section"
76
+ },
77
+ {
78
+ "id": "comparison-cards",
79
+ "displayName": "Comparison cards",
80
+ "semanticRole": "side-by-side-comparison",
81
+ "version": "1.2.0",
82
+ "layoutHint": "card-grid",
83
+ "acceptedCosmicNames": [
84
+ "Janus"
85
+ ],
86
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/comparison-cards.yaml",
87
+ "layer": "section"
88
+ },
89
+ {
90
+ "id": "controlled-responsibility-block",
91
+ "displayName": "Controlled responsibility block",
92
+ "semanticRole": "scope-of-responsibility-disclosure",
93
+ "version": "1.2.0",
94
+ "layoutHint": "split",
95
+ "acceptedCosmicNames": [
96
+ "Calypso"
97
+ ],
98
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/controlled-responsibility-block.yaml",
99
+ "layer": "section"
100
+ },
101
+ {
102
+ "id": "copyright",
103
+ "displayName": "Copyright",
104
+ "semanticRole": "component-copyright",
105
+ "version": "1.0.0",
106
+ "layoutHint": "split",
107
+ "acceptedCosmicNames": [
108
+ "Charon"
109
+ ],
110
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/copyright.yaml",
111
+ "layer": "component"
112
+ },
113
+ {
114
+ "id": "credits",
115
+ "displayName": "Credits gallery",
116
+ "semanticRole": "credits-gallery",
117
+ "version": "1.0.0",
118
+ "layoutHint": "card-grid",
119
+ "acceptedCosmicNames": [
120
+ "Makemake"
121
+ ],
122
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/credits.yaml",
123
+ "layer": "section"
124
+ },
125
+ {
126
+ "id": "currency-aware-price-display",
127
+ "displayName": "Currency Aware Price Display",
128
+ "semanticRole": "component-currency-aware-price-display",
129
+ "version": "1.0.0",
130
+ "layoutHint": "single-column",
131
+ "acceptedCosmicNames": [
132
+ "Rosalind"
133
+ ],
134
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/currency-aware-price-display.yaml",
135
+ "layer": "component"
136
+ },
137
+ {
138
+ "id": "currency-selector",
139
+ "displayName": "Currency Selector",
140
+ "semanticRole": "component-currency-selector",
141
+ "version": "1.0.0",
142
+ "layoutHint": "split",
143
+ "acceptedCosmicNames": [
144
+ "Portia"
145
+ ],
146
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/currency-selector.yaml",
147
+ "layer": "component"
148
+ },
149
+ {
150
+ "id": "donation-card",
151
+ "displayName": "Donation Card",
152
+ "semanticRole": "donation-card",
153
+ "version": "1.1.0",
154
+ "layoutHint": "single-column",
155
+ "acceptedCosmicNames": [
156
+ "Pandora"
157
+ ],
158
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/donation-card.yaml",
159
+ "layer": "section"
160
+ },
161
+ {
162
+ "id": "donation-use",
163
+ "displayName": "Donation Use",
164
+ "semanticRole": "donation-use",
165
+ "version": "1.2.0",
166
+ "layoutHint": "card-grid",
167
+ "acceptedCosmicNames": [
168
+ "Rhea"
169
+ ],
170
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/donation-use.yaml",
171
+ "layer": "section"
172
+ },
173
+ {
174
+ "id": "dynamic-status-block",
175
+ "displayName": "Dynamic status block",
176
+ "semanticRole": "data-driven-status-indicator",
177
+ "version": "1.0.0",
178
+ "layoutHint": "single-column",
179
+ "acceptedCosmicNames": [
180
+ "Elara"
181
+ ],
182
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/dynamic-status-block.yaml",
183
+ "layer": "section"
184
+ },
185
+ {
186
+ "id": "faq-list",
187
+ "displayName": "Faq List",
188
+ "semanticRole": "faq-list",
189
+ "version": "1.1.0",
190
+ "layoutHint": "single-column",
191
+ "acceptedCosmicNames": [
192
+ "Atlas"
193
+ ],
194
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/faq-list.yaml",
195
+ "layer": "section"
196
+ },
197
+ {
198
+ "id": "final-cta",
199
+ "displayName": "Final Cta",
200
+ "semanticRole": "final-cta",
201
+ "version": "1.3.0",
202
+ "layoutHint": "single-column",
203
+ "acceptedCosmicNames": [
204
+ "Dione"
205
+ ],
206
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/final-cta.yaml",
207
+ "layer": "section"
208
+ },
209
+ {
210
+ "id": "footer-promo",
211
+ "displayName": "Footer Promo",
212
+ "semanticRole": "component-footer-promo",
213
+ "version": "1.0.0",
214
+ "layoutHint": "horizontal-row",
215
+ "acceptedCosmicNames": [
216
+ "Nereid"
217
+ ],
218
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/footer-promo.yaml",
219
+ "layer": "component"
220
+ },
221
+ {
222
+ "id": "hero",
223
+ "displayName": "Hero",
224
+ "semanticRole": "hero",
225
+ "version": "1.1.0",
226
+ "layoutHint": "decision-card",
227
+ "acceptedCosmicNames": [
228
+ "Europa"
229
+ ],
230
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/hero.yaml",
231
+ "layer": "section"
232
+ },
233
+ {
234
+ "id": "hero-decision-card",
235
+ "displayName": "Hero · Decision card",
236
+ "semanticRole": "hero-with-decision-card",
237
+ "version": "1.1.0",
238
+ "layoutHint": "decision-card",
239
+ "acceptedCosmicNames": [
240
+ "Phobos"
241
+ ],
242
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/hero-decision-card.yaml",
243
+ "layer": "section"
244
+ },
245
+ {
246
+ "id": "impact",
247
+ "displayName": "Impact",
248
+ "semanticRole": "impact",
249
+ "version": "1.2.0",
250
+ "layoutHint": "split",
251
+ "acceptedCosmicNames": [
252
+ "Ganymede"
253
+ ],
254
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/impact.yaml",
255
+ "layer": "section"
256
+ },
257
+ {
258
+ "id": "lang-switcher",
259
+ "displayName": "Lang Switcher",
260
+ "semanticRole": "component-lang-switcher",
261
+ "version": "1.0.0",
262
+ "layoutHint": "split",
263
+ "acceptedCosmicNames": [
264
+ "Ophelia"
265
+ ],
266
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/lang-switcher.yaml",
267
+ "layer": "component"
268
+ },
269
+ {
270
+ "id": "layout",
271
+ "displayName": "Layout",
272
+ "semanticRole": "component-layout",
273
+ "version": "1.0.0",
274
+ "layoutHint": "split",
275
+ "acceptedCosmicNames": [
276
+ "Umbriel"
277
+ ],
278
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/layout.yaml",
279
+ "layer": "component"
280
+ },
281
+ {
282
+ "id": "layout.not-found",
283
+ "displayName": "Not found",
284
+ "semanticRole": "component-layout.not-found",
285
+ "version": "1.0.0",
286
+ "layoutHint": "single-column",
287
+ "acceptedCosmicNames": [
288
+ "Cressida"
289
+ ],
290
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/not-found.yaml",
291
+ "layer": "component"
292
+ },
293
+ {
294
+ "id": "live-photo",
295
+ "displayName": "Living photo",
296
+ "semanticRole": "component-live-photo",
297
+ "version": "1.0.0",
298
+ "layoutHint": "split",
299
+ "acceptedCosmicNames": [
300
+ "Aegaeon"
301
+ ],
302
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/live-photo.yaml",
303
+ "layer": "component"
304
+ },
305
+ {
306
+ "id": "markdown",
307
+ "displayName": "Markdown",
308
+ "semanticRole": "markdown",
309
+ "version": "1.2.0",
310
+ "layoutHint": "single-column",
311
+ "acceptedCosmicNames": [
312
+ "Hyperion"
313
+ ],
314
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/markdown.yaml",
315
+ "layer": "section"
316
+ },
317
+ {
318
+ "id": "material-credit",
319
+ "displayName": "Material credit",
320
+ "semanticRole": "component-material-credit",
321
+ "version": "1.0.0",
322
+ "layoutHint": "single-column",
323
+ "acceptedCosmicNames": [
324
+ "Cordelia"
325
+ ],
326
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/material-credit.yaml",
327
+ "layer": "component"
328
+ },
329
+ {
330
+ "id": "media",
331
+ "displayName": "Media",
332
+ "semanticRole": "component-media",
333
+ "version": "1.0.0",
334
+ "layoutHint": "split",
335
+ "acceptedCosmicNames": [
336
+ "Sycorax"
337
+ ],
338
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/media.yaml",
339
+ "layer": "component"
340
+ },
341
+ {
342
+ "id": "mountain-journey",
343
+ "displayName": "Mountain journey",
344
+ "semanticRole": "maturity-visualization",
345
+ "version": "1.0.0",
346
+ "layoutHint": "single-column",
347
+ "acceptedCosmicNames": [
348
+ "Eris"
349
+ ],
350
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/mountain-journey.yaml",
351
+ "layer": "section"
352
+ },
353
+ {
354
+ "id": "nachweis-card",
355
+ "displayName": "Nachweis Card",
356
+ "semanticRole": "trust-card",
357
+ "version": "1.0.0",
358
+ "layoutHint": "card-grid",
359
+ "acceptedCosmicNames": [
360
+ "Nix"
361
+ ],
362
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/nachweis-card.yaml",
363
+ "layer": "component"
364
+ },
365
+ {
366
+ "id": "nachweis-detail",
367
+ "displayName": "Nachweis Detail",
368
+ "semanticRole": "trust-detail",
369
+ "version": "1.0.0",
370
+ "layoutHint": "single-column",
371
+ "acceptedCosmicNames": [
372
+ "Kerberos"
373
+ ],
374
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/nachweis-detail.yaml",
375
+ "layer": "component"
376
+ },
377
+ {
378
+ "id": "nachweis-list",
379
+ "displayName": "Nachweis List",
380
+ "semanticRole": "trust-list",
381
+ "version": "1.0.0",
382
+ "layoutHint": "single-column",
383
+ "acceptedCosmicNames": [
384
+ "Hydra"
385
+ ],
386
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/nachweis-list.yaml",
387
+ "layer": "component"
388
+ },
389
+ {
390
+ "id": "nachweis-verify",
391
+ "displayName": "Nachweis Verify",
392
+ "semanticRole": "trust-verify",
393
+ "version": "1.0.0",
394
+ "layoutHint": "single-column",
395
+ "acceptedCosmicNames": [
396
+ "Styx"
397
+ ],
398
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/nachweis-verify.yaml",
399
+ "layer": "component"
400
+ },
401
+ {
402
+ "id": "navigation",
403
+ "displayName": "Navigation",
404
+ "semanticRole": "navigation",
405
+ "version": "1.0.0",
406
+ "layoutHint": "single-column",
407
+ "acceptedCosmicNames": [
408
+ "Phoebe"
409
+ ],
410
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/navigation.yaml",
411
+ "layer": "section"
412
+ },
413
+ {
414
+ "id": "notausgang-block",
415
+ "displayName": "Notausgang block",
416
+ "semanticRole": "exit-clause-disclosure",
417
+ "version": "1.2.0",
418
+ "layoutHint": "split",
419
+ "acceptedCosmicNames": [
420
+ "Telesto"
421
+ ],
422
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/notausgang-block.yaml",
423
+ "layer": "section"
424
+ },
425
+ {
426
+ "id": "open-source-registry",
427
+ "displayName": "Open Source Registry",
428
+ "semanticRole": "open-source-registry",
429
+ "version": "1.0.0",
430
+ "layoutHint": "single-column",
431
+ "acceptedCosmicNames": [
432
+ "Orcus"
433
+ ],
434
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/open-source-registry.yaml",
435
+ "layer": "section"
436
+ },
437
+ {
438
+ "id": "ownership-block",
439
+ "displayName": "Ownership block",
440
+ "semanticRole": "client-ownership-disclosure",
441
+ "version": "1.2.0",
442
+ "layoutHint": "split",
443
+ "acceptedCosmicNames": [
444
+ "Helene"
445
+ ],
446
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/ownership-block.yaml",
447
+ "layer": "section"
448
+ },
449
+ {
450
+ "id": "passport-header",
451
+ "displayName": "Passport Header",
452
+ "semanticRole": "component-passport-header",
453
+ "version": "1.0.0",
454
+ "layoutHint": "horizontal-row",
455
+ "acceptedCosmicNames": [
456
+ "Methone"
457
+ ],
458
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/passport-header.yaml",
459
+ "layer": "component"
460
+ },
461
+ {
462
+ "id": "passport-provenance",
463
+ "displayName": "Passport Provenance",
464
+ "semanticRole": "component-passport-provenance",
465
+ "version": "1.0.0",
466
+ "layoutHint": "split",
467
+ "acceptedCosmicNames": [
468
+ "Bianca"
469
+ ],
470
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/passport-provenance.yaml",
471
+ "layer": "component"
472
+ },
473
+ {
474
+ "id": "passport-score-grid",
475
+ "displayName": "Passport Score Grid",
476
+ "semanticRole": "component-passport-score-grid",
477
+ "version": "1.0.0",
478
+ "layoutHint": "split",
479
+ "acceptedCosmicNames": [
480
+ "Klarissa"
481
+ ],
482
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/passport-score-grid.yaml",
483
+ "layer": "component"
484
+ },
485
+ {
486
+ "id": "passport-star-map",
487
+ "displayName": "Passport Star Map",
488
+ "semanticRole": "component-passport-star-map",
489
+ "version": "1.0.0",
490
+ "layoutHint": "split",
491
+ "acceptedCosmicNames": [
492
+ "Adrastea"
493
+ ],
494
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/passport-star-map.yaml",
495
+ "layer": "component"
496
+ },
497
+ {
498
+ "id": "people",
499
+ "displayName": "People",
500
+ "semanticRole": "people",
501
+ "version": "2.0.0",
502
+ "layoutHint": "card-grid",
503
+ "acceptedCosmicNames": [
504
+ "Mimas"
505
+ ],
506
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/people.yaml",
507
+ "layer": "section"
508
+ },
509
+ {
510
+ "id": "person-profile",
511
+ "displayName": "Person Profile",
512
+ "semanticRole": "component-person-profile",
513
+ "version": "1.0.0",
514
+ "layoutHint": "split",
515
+ "acceptedCosmicNames": [
516
+ "Miranda"
517
+ ],
518
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/person-profile.yaml",
519
+ "layer": "component"
520
+ },
521
+ {
522
+ "id": "price-card",
523
+ "displayName": "Price card",
524
+ "semanticRole": "pricing-disclosure",
525
+ "version": "1.1.0",
526
+ "layoutHint": "decision-card",
527
+ "acceptedCosmicNames": [
528
+ "Pan"
529
+ ],
530
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/price-card.yaml",
531
+ "layer": "section"
532
+ },
533
+ {
534
+ "id": "problem",
535
+ "displayName": "Problem",
536
+ "semanticRole": "problem",
537
+ "version": "1.2.0",
538
+ "layoutHint": "split",
539
+ "acceptedCosmicNames": [
540
+ "Callisto"
541
+ ],
542
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/problem.yaml",
543
+ "layer": "section"
544
+ },
545
+ {
546
+ "id": "pulsar",
547
+ "displayName": "Pulsar",
548
+ "semanticRole": "component-pulsar",
549
+ "version": "1.0.0",
550
+ "layoutHint": "split",
551
+ "acceptedCosmicNames": [
552
+ "Despina"
553
+ ],
554
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/pulsar.yaml",
555
+ "layer": "component"
556
+ },
557
+ {
558
+ "id": "responsive-image",
559
+ "displayName": "Responsive image",
560
+ "semanticRole": "component-responsive-image",
561
+ "version": "1.0.0",
562
+ "layoutHint": "split",
563
+ "acceptedCosmicNames": [
564
+ "Belinda"
565
+ ],
566
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/responsive-image.yaml",
567
+ "layer": "component"
568
+ },
569
+ {
570
+ "id": "scroll-to-top",
571
+ "displayName": "Scroll to Top",
572
+ "semanticRole": "component-scroll-to-top",
573
+ "version": "1.0.0",
574
+ "layoutHint": "single-column",
575
+ "acceptedCosmicNames": [
576
+ "Daphnis"
577
+ ],
578
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/scroll-to-top.yaml",
579
+ "layer": "component"
580
+ },
581
+ {
582
+ "id": "section-body-offer-capacity",
583
+ "displayName": "Offer capacity",
584
+ "semanticRole": "component-section-body.offer-capacity",
585
+ "version": "1.0.0",
586
+ "layoutHint": "single-column",
587
+ "acceptedCosmicNames": [
588
+ "Thalassa"
589
+ ],
590
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/offer-capacity.yaml",
591
+ "layer": "component"
592
+ },
593
+ {
594
+ "id": "send-message",
595
+ "displayName": "Send message",
596
+ "semanticRole": "lead-message-capture",
597
+ "version": "1.3.0",
598
+ "layoutHint": "single-column",
599
+ "acceptedCosmicNames": [
600
+ "Ceres"
601
+ ],
602
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/send-message.yaml",
603
+ "layer": "section"
604
+ },
605
+ {
606
+ "id": "service-metadata-block",
607
+ "displayName": "Service metadata block",
608
+ "semanticRole": "page-metadata-footer",
609
+ "version": "1.0.0",
610
+ "layoutHint": "single-column",
611
+ "acceptedCosmicNames": [
612
+ "Sedna"
613
+ ],
614
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/service-metadata-block.yaml",
615
+ "layer": "section"
616
+ },
617
+ {
618
+ "id": "social-meta",
619
+ "displayName": "Social meta",
620
+ "semanticRole": "component-social-meta",
621
+ "version": "1.0.0",
622
+ "layoutHint": "split",
623
+ "acceptedCosmicNames": [
624
+ "Naiad"
625
+ ],
626
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/social-meta.yaml",
627
+ "layer": "component"
628
+ },
629
+ {
630
+ "id": "social-proof",
631
+ "displayName": "Social Proof",
632
+ "semanticRole": "social-proof",
633
+ "version": "1.2.0",
634
+ "layoutHint": "single-column",
635
+ "acceptedCosmicNames": [
636
+ "Enceladus"
637
+ ],
638
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/social-proof.yaml",
639
+ "layer": "section"
640
+ },
641
+ {
642
+ "id": "structured-data",
643
+ "displayName": "Structured Data",
644
+ "semanticRole": "component-structured-data",
645
+ "version": "1.0.0",
646
+ "layoutHint": "split",
647
+ "acceptedCosmicNames": [
648
+ "Triton"
649
+ ],
650
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/components/structured-data.yaml",
651
+ "layer": "component"
652
+ },
653
+ {
654
+ "id": "transparency",
655
+ "displayName": "Transparency",
656
+ "semanticRole": "transparency",
657
+ "version": "1.3.0",
658
+ "layoutHint": "horizontal-row",
659
+ "acceptedCosmicNames": [
660
+ "Tethys"
661
+ ],
662
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/transparency.yaml",
663
+ "layer": "section"
664
+ },
665
+ {
666
+ "id": "trust-strip",
667
+ "displayName": "Trust strip",
668
+ "semanticRole": "trust-evidence-row",
669
+ "version": "1.2.0",
670
+ "layoutHint": "horizontal-row",
671
+ "acceptedCosmicNames": [
672
+ "Deimos"
673
+ ],
674
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/trust-strip.yaml",
675
+ "layer": "section"
676
+ },
677
+ {
678
+ "id": "video-section",
679
+ "displayName": "Video section",
680
+ "semanticRole": "video-feature",
681
+ "version": "1.0.0",
682
+ "layoutHint": "single-column",
683
+ "acceptedCosmicNames": [
684
+ "Quaoar"
685
+ ],
686
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/video-section.yaml",
687
+ "layer": "section"
688
+ },
689
+ {
690
+ "id": "women",
691
+ "displayName": "Women",
692
+ "semanticRole": "women",
693
+ "version": "1.2.0",
694
+ "layoutHint": "split",
695
+ "acceptedCosmicNames": [
696
+ "Iapetus"
697
+ ],
698
+ "sourceFile": "packages/werkstatt-site/src/domain/ontology/archetypes/sections/women.yaml",
699
+ "layer": "section"
700
+ }
701
+ ],
702
+ "sectionRoles": [
703
+ "approach",
704
+ "article-index",
705
+ "audience-self-identification",
706
+ "breadcrumbs",
707
+ "client-ownership-disclosure",
708
+ "consent-gated-chat-launcher",
709
+ "credits-gallery",
710
+ "data-driven-status-indicator",
711
+ "donation-card",
712
+ "donation-use",
713
+ "exit-clause-disclosure",
714
+ "faq-list",
715
+ "final-cta",
716
+ "hero",
717
+ "hero-with-decision-card",
718
+ "impact",
719
+ "lead-message-capture",
720
+ "markdown",
721
+ "maturity-visualization",
722
+ "navigation",
723
+ "open-source-registry",
724
+ "page-metadata-footer",
725
+ "people",
726
+ "pricing-disclosure",
727
+ "problem",
728
+ "scope-of-responsibility-disclosure",
729
+ "side-by-side-comparison",
730
+ "social-proof",
731
+ "transparency",
732
+ "trust-evidence-row",
733
+ "video-feature",
734
+ "women"
735
+ ],
736
+ "componentRoles": [
737
+ "component-brand-label",
738
+ "component-copyright",
739
+ "component-currency-aware-price-display",
740
+ "component-currency-selector",
741
+ "component-footer-promo",
742
+ "component-lang-switcher",
743
+ "component-layout",
744
+ "component-layout.not-found",
745
+ "component-live-photo",
746
+ "component-material-credit",
747
+ "component-media",
748
+ "component-passport-header",
749
+ "component-passport-provenance",
750
+ "component-passport-score-grid",
751
+ "component-passport-star-map",
752
+ "component-person-profile",
753
+ "component-pulsar",
754
+ "component-responsive-image",
755
+ "component-scroll-to-top",
756
+ "component-section-body.offer-capacity",
757
+ "component-social-meta",
758
+ "component-structured-data",
759
+ "trust-card",
760
+ "trust-detail",
761
+ "trust-list",
762
+ "trust-verify"
763
+ ],
764
+ "planetImportPaths": {
765
+ "Titan": "@warpgogol/werkstatt-site/ui/sections/approach",
766
+ "Himalia": "@warpgogol/werkstatt-site/ui/sections/article-header",
767
+ "Io": "@warpgogol/werkstatt-site/ui/sections/article-list",
768
+ "Epimetheus": "@warpgogol/werkstatt-site/ui/sections/audience-cards",
769
+ "Thebe": "@warpgogol/werkstatt-site/ui/sections/breadcrumbs",
770
+ "Prometheus": "@warpgogol/werkstatt-site/ui/sections/changelog",
771
+ "Amalthea": "@warpgogol/werkstatt-site/ui/sections/chat-widget",
772
+ "Janus": "@warpgogol/werkstatt-site/ui/sections/comparison-cards",
773
+ "Calypso": "@warpgogol/werkstatt-site/ui/sections/controlled-responsibility-block",
774
+ "Makemake": "@warpgogol/werkstatt-site/ui/sections/credits-gallery",
775
+ "Pandora": "@warpgogol/werkstatt-site/ui/sections/donation-card",
776
+ "Rhea": "@warpgogol/werkstatt-site/ui/sections/donation-use",
777
+ "Elara": "@warpgogol/werkstatt-site/ui/sections/dynamic-status-block",
778
+ "Atlas": "@warpgogol/werkstatt-site/ui/sections/faq-list",
779
+ "Dione": "@warpgogol/werkstatt-site/ui/sections/final-cta",
780
+ "Europa": "@warpgogol/werkstatt-site/ui/sections/hero",
781
+ "Phobos": "@warpgogol/werkstatt-site/ui/sections/hero-decision-card",
782
+ "Ganymede": "@warpgogol/werkstatt-site/ui/sections/impact",
783
+ "Hyperion": "@warpgogol/werkstatt-site/ui/sections/markdown",
784
+ "Eris": "@warpgogol/werkstatt-site/ui/sections/mountain-journey",
785
+ "Phoebe": "@warpgogol/werkstatt-site/ui/sections/navigation",
786
+ "Telesto": "@warpgogol/werkstatt-site/ui/sections/notausgang-block",
787
+ "Orcus": "@warpgogol/werkstatt-site/ui/sections/open-source-registry",
788
+ "Helene": "@warpgogol/werkstatt-site/ui/sections/ownership-block",
789
+ "Mimas": "@warpgogol/werkstatt-site/ui/sections/people",
790
+ "Pan": "@warpgogol/werkstatt-site/ui/sections/price-card",
791
+ "Callisto": "@warpgogol/werkstatt-site/ui/sections/problem",
792
+ "Ceres": "@warpgogol/werkstatt-site/ui/sections/send-message",
793
+ "Sedna": "@warpgogol/werkstatt-site/ui/sections/service-metadata-block",
794
+ "Enceladus": "@warpgogol/werkstatt-site/ui/sections/social-proof",
795
+ "Metis": "@warpgogol/werkstatt-site/ui/sections/toc",
796
+ "Tethys": "@warpgogol/werkstatt-site/ui/sections/transparency",
797
+ "Deimos": "@warpgogol/werkstatt-site/ui/sections/trust-strip",
798
+ "Quaoar": "@warpgogol/werkstatt-site/ui/sections/video-section",
799
+ "Iapetus": "@warpgogol/werkstatt-site/ui/sections/women",
800
+ "Proteus": "@warpgogol/werkstatt-site/ui/components/brand-label",
801
+ "Charon": "@warpgogol/werkstatt-site/ui/components/copyright",
802
+ "Rosalind": "@warpgogol/werkstatt-site/ui/components/currency-aware-price-display",
803
+ "Portia": "@warpgogol/werkstatt-site/ui/components/currency-selector",
804
+ "Galatea": "@warpgogol/werkstatt-site/ui/components/donation-card",
805
+ "Puck": "@warpgogol/werkstatt-site/ui/components/effects",
806
+ "Nereid": "@warpgogol/werkstatt-site/ui/components/footer-promo",
807
+ "Ophelia": "@warpgogol/werkstatt-site/ui/components/lang-switcher",
808
+ "Umbriel": "@warpgogol/werkstatt-site/ui/components/layout",
809
+ "Aegaeon": "@warpgogol/werkstatt-site/ui/components/live-photo",
810
+ "Cordelia": "@warpgogol/werkstatt-site/ui/components/material-credit",
811
+ "Sycorax": "@warpgogol/werkstatt-site/ui/components/media",
812
+ "Nix": "@warpgogol/werkstatt-site/ui/components/nachweis-card",
813
+ "Kerberos": "@warpgogol/werkstatt-site/ui/components/nachweis-detail",
814
+ "Hydra": "@warpgogol/werkstatt-site/ui/components/nachweis-list",
815
+ "Styx": "@warpgogol/werkstatt-site/ui/components/nachweis-verify",
816
+ "Cressida": "@warpgogol/werkstatt-site/ui/components/not-found",
817
+ "Methone": "@warpgogol/werkstatt-site/ui/components/passport-header",
818
+ "Bianca": "@warpgogol/werkstatt-site/ui/components/passport-provenance",
819
+ "Klarissa": "@warpgogol/werkstatt-site/ui/components/passport-score-grid",
820
+ "Adrastea": "@warpgogol/werkstatt-site/ui/components/passport-star-map",
821
+ "Miranda": "@warpgogol/werkstatt-site/ui/components/person-profile",
822
+ "Despina": "@warpgogol/werkstatt-site/ui/components/pulsar",
823
+ "Belinda": "@warpgogol/werkstatt-site/ui/components/responsive-image",
824
+ "Daphnis": "@warpgogol/werkstatt-site/ui/components/scroll-to-top",
825
+ "Praxidike": "@warpgogol/werkstatt-site/ui/components/cards",
826
+ "Aitne": "@warpgogol/werkstatt-site/ui/components/comparison",
827
+ "Sinope": "@warpgogol/werkstatt-site/ui/components/list",
828
+ "Thalassa": "@warpgogol/werkstatt-site/ui/components/offer-capacity",
829
+ "Aoede": "@warpgogol/werkstatt-site/ui/components/paragraphs",
830
+ "Kalyke": "@warpgogol/werkstatt-site/ui/components/rich",
831
+ "Lysithea": "@warpgogol/werkstatt-site/ui/components/split-list",
832
+ "Hegemone": "@warpgogol/werkstatt-site/ui/components/stats",
833
+ "Isonoe": "@warpgogol/werkstatt-site/ui/components/section-cta",
834
+ "Arche": "@warpgogol/werkstatt-site/ui/components/section-cta-group",
835
+ "Pasiphae": "@warpgogol/werkstatt-site/ui/components/section-header",
836
+ "Taygete": "@warpgogol/werkstatt-site/ui/components/section-image",
837
+ "Ananke": "@warpgogol/werkstatt-site/ui/components/section-shell",
838
+ "Naiad": "@warpgogol/werkstatt-site/ui/components/social-meta",
839
+ "Triton": "@warpgogol/werkstatt-site/ui/components/structured-data"
840
+ },
841
+ "blockTypeToCosmicName": {
842
+ "approach": "Titan",
843
+ "article-header": "Himalia",
844
+ "article-list": "Io",
845
+ "audience-cards": "Epimetheus",
846
+ "breadcrumbs": "Thebe",
847
+ "changelog": "Prometheus",
848
+ "chat-widget": "Amalthea",
849
+ "comparison-cards": "Janus",
850
+ "controlled-responsibility-block": "Calypso",
851
+ "credits": "Makemake",
852
+ "donation-card": "Pandora",
853
+ "donation-use": "Rhea",
854
+ "dynamic-status-block": "Elara",
855
+ "faq-list": "Atlas",
856
+ "final-cta": "Dione",
857
+ "hero": "Europa",
858
+ "hero-decision-card": "Phobos",
859
+ "impact": "Ganymede",
860
+ "markdown": "Hyperion",
861
+ "mountain-journey": "Eris",
862
+ "navigation": "Phoebe",
863
+ "notausgang-block": "Telesto",
864
+ "open-source-registry": "Orcus",
865
+ "ownership-block": "Helene",
866
+ "people": "Mimas",
867
+ "price-card": "Pan",
868
+ "problem": "Callisto",
869
+ "send-message": "Ceres",
870
+ "service-metadata-block": "Sedna",
871
+ "social-proof": "Enceladus",
872
+ "toc": "Metis",
873
+ "transparency": "Tethys",
874
+ "trust-strip": "Deimos",
875
+ "video-section": "Quaoar",
876
+ "women": "Iapetus",
877
+ "brand-label": "Proteus",
878
+ "copyright": "Charon",
879
+ "currency-aware-price-display": "Rosalind",
880
+ "currency-selector": "Portia",
881
+ "section-shell": "Puck",
882
+ "footer-promo": "Nereid",
883
+ "lang-switcher": "Ophelia",
884
+ "layout": "Umbriel",
885
+ "live-photo": "Aegaeon",
886
+ "material-credit": "Cordelia",
887
+ "media": "Sycorax",
888
+ "nachweis-card": "Nix",
889
+ "nachweis-detail": "Kerberos",
890
+ "nachweis-list": "Hydra",
891
+ "nachweis-verify": "Styx",
892
+ "layout.not-found": "Cressida",
893
+ "passport-header": "Methone",
894
+ "passport-provenance": "Bianca",
895
+ "passport-score-grid": "Klarissa",
896
+ "passport-star-map": "Adrastea",
897
+ "person-profile": "Miranda",
898
+ "pulsar": "Despina",
899
+ "responsive-image": "Belinda",
900
+ "scroll-to-top": "Daphnis",
901
+ "section-body-cards": "Praxidike",
902
+ "section-body-comparison": "Aitne",
903
+ "section-body-list": "Sinope",
904
+ "section-body-offer-capacity": "Thalassa",
905
+ "section-body-paragraphs": "Aoede",
906
+ "section-body-rich": "Kalyke",
907
+ "section-body-split-list": "Lysithea",
908
+ "section-body-stats": "Hegemone",
909
+ "section-cta": "Isonoe",
910
+ "section-cta-group": "Arche",
911
+ "section-header": "Pasiphae",
912
+ "section-image": "Taygete",
913
+ "social-meta": "Naiad",
914
+ "structured-data": "Triton"
915
+ },
916
+ "moonImportPaths": {
917
+ "Ariel": "@warpgogol/werkstatt-site/ui/components/breadcrumbs",
918
+ "Titania": "@warpgogol/werkstatt-site/ui/components/footer",
919
+ "Oberon": "@warpgogol/werkstatt-site/ui/components/header",
920
+ "Hermippe": "@warpgogol/werkstatt-site/ui/components/site-background"
921
+ },
922
+ "roleByCosmicName": {
923
+ "Titan": "approach",
924
+ "Himalia": "article-metadata-header",
925
+ "Io": "approach",
926
+ "Epimetheus": "audience-self-identification",
927
+ "Thebe": "navigation",
928
+ "Prometheus": "changelog-history",
929
+ "Amalthea": "consent-gated-chat-launcher",
930
+ "Janus": "side-by-side-comparison",
931
+ "Calypso": "scope-of-responsibility-disclosure",
932
+ "Makemake": "credits-gallery",
933
+ "Pandora": "donation-use",
934
+ "Rhea": "donation-use",
935
+ "Elara": "data-driven-status-indicator",
936
+ "Atlas": "approach",
937
+ "Dione": "final-cta",
938
+ "Europa": "hero",
939
+ "Phobos": "hero",
940
+ "Ganymede": "impact",
941
+ "Hyperion": "markdown",
942
+ "Eris": "maturity-visualization",
943
+ "Phoebe": "navigation",
944
+ "Telesto": "exit-clause-disclosure",
945
+ "Orcus": "open-source-registry",
946
+ "Helene": "client-ownership-disclosure",
947
+ "Mimas": "people",
948
+ "Pan": "pricing-disclosure",
949
+ "Callisto": "problem",
950
+ "Ceres": "lead-message-capture",
951
+ "Sedna": "page-metadata-footer",
952
+ "Enceladus": "social-proof",
953
+ "Metis": "table-of-contents",
954
+ "Tethys": "transparency",
955
+ "Deimos": "trust-evidence-row",
956
+ "Quaoar": "video-feature",
957
+ "Iapetus": "women",
958
+ "Proteus": "brand-label",
959
+ "Ariel": "breadcrumbs",
960
+ "Charon": "copyright",
961
+ "Rosalind": "price-display",
962
+ "Portia": "currency-selector",
963
+ "Galatea": "person-profile",
964
+ "Puck": "section-shell",
965
+ "Titania": "footer",
966
+ "Nereid": "footer-promo",
967
+ "Oberon": "header",
968
+ "Ophelia": "lang-switcher",
969
+ "Umbriel": "layout-shell",
970
+ "Aegaeon": "section-image",
971
+ "Cordelia": "section-body",
972
+ "Sycorax": "section-image",
973
+ "Nix": "section-body",
974
+ "Kerberos": "section-body",
975
+ "Hydra": "section-body",
976
+ "Styx": "section-body",
977
+ "Cressida": "layout-shell",
978
+ "Methone": "header",
979
+ "Bianca": "footer-promo",
980
+ "Klarissa": "person-profile",
981
+ "Adrastea": "footer",
982
+ "Miranda": "person-profile",
983
+ "Despina": "lang-switcher",
984
+ "Belinda": "section-image",
985
+ "Daphnis": "scroll-to-top",
986
+ "Praxidike": "section-body",
987
+ "Aitne": "section-body",
988
+ "Sinope": "section-body",
989
+ "Thalassa": "section-body",
990
+ "Aoede": "section-body",
991
+ "Kalyke": "section-body",
992
+ "Lysithea": "section-body",
993
+ "Hegemone": "section-body",
994
+ "Isonoe": "section-cta",
995
+ "Arche": "section-cta",
996
+ "Pasiphae": "section-header",
997
+ "Taygete": "section-image",
998
+ "Ananke": "section-shell",
999
+ "Naiad": "header",
1000
+ "Triton": "header",
1001
+ "Hermippe": "site-background"
1002
+ }
1003
+ }