@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,821 @@
1
+ schemaVersion: 1.0.0
2
+ totalCount: 58
3
+ entries:
4
+ - id: approach
5
+ displayName: Approach
6
+ semanticRole: approach
7
+ version: 1.2.0
8
+ layoutHint: card-grid
9
+ acceptedCosmicNames:
10
+ - Titan
11
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/approach.yaml
12
+ layer: section
13
+ - id: article-list
14
+ displayName: Article list
15
+ semanticRole: article-index
16
+ version: 1.0.0
17
+ layoutHint: single-column
18
+ acceptedCosmicNames:
19
+ - Io
20
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/article-list.yaml
21
+ layer: section
22
+ - id: audience-cards
23
+ displayName: Audience cards
24
+ semanticRole: audience-self-identification
25
+ version: 1.2.0
26
+ layoutHint: card-grid
27
+ acceptedCosmicNames:
28
+ - Epimetheus
29
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/audience-cards.yaml
30
+ layer: section
31
+ - id: brand-label
32
+ displayName: Brand Label
33
+ semanticRole: component-brand-label
34
+ version: 1.0.0
35
+ layoutHint: split
36
+ acceptedCosmicNames:
37
+ - Proteus
38
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/brand-label.yaml
39
+ layer: component
40
+ - id: breadcrumbs
41
+ displayName: Breadcrumbs
42
+ semanticRole: breadcrumbs
43
+ version: 1.0.0
44
+ layoutHint: single-column
45
+ acceptedCosmicNames:
46
+ - Thebe
47
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/breadcrumbs.yaml
48
+ layer: section
49
+ - id: chat-widget
50
+ displayName: Chat widget
51
+ semanticRole: consent-gated-chat-launcher
52
+ version: 1.0.0
53
+ layoutHint: single-column
54
+ acceptedCosmicNames:
55
+ - Amalthea
56
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/chat-widget.yaml
57
+ layer: section
58
+ - id: comparison-cards
59
+ displayName: Comparison cards
60
+ semanticRole: side-by-side-comparison
61
+ version: 1.2.0
62
+ layoutHint: card-grid
63
+ acceptedCosmicNames:
64
+ - Janus
65
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/comparison-cards.yaml
66
+ layer: section
67
+ - id: controlled-responsibility-block
68
+ displayName: Controlled responsibility block
69
+ semanticRole: scope-of-responsibility-disclosure
70
+ version: 1.2.0
71
+ layoutHint: split
72
+ acceptedCosmicNames:
73
+ - Calypso
74
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/controlled-responsibility-block.yaml
75
+ layer: section
76
+ - id: copyright
77
+ displayName: Copyright
78
+ semanticRole: component-copyright
79
+ version: 1.0.0
80
+ layoutHint: split
81
+ acceptedCosmicNames:
82
+ - Charon
83
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/copyright.yaml
84
+ layer: component
85
+ - id: credits
86
+ displayName: Credits gallery
87
+ semanticRole: credits-gallery
88
+ version: 1.0.0
89
+ layoutHint: card-grid
90
+ acceptedCosmicNames:
91
+ - Makemake
92
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/credits.yaml
93
+ layer: section
94
+ - id: currency-aware-price-display
95
+ displayName: Currency Aware Price Display
96
+ semanticRole: component-currency-aware-price-display
97
+ version: 1.0.0
98
+ layoutHint: single-column
99
+ acceptedCosmicNames:
100
+ - Rosalind
101
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/currency-aware-price-display.yaml
102
+ layer: component
103
+ - id: currency-selector
104
+ displayName: Currency Selector
105
+ semanticRole: component-currency-selector
106
+ version: 1.0.0
107
+ layoutHint: split
108
+ acceptedCosmicNames:
109
+ - Portia
110
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/currency-selector.yaml
111
+ layer: component
112
+ - id: donation-card
113
+ displayName: Donation Card
114
+ semanticRole: donation-card
115
+ version: 1.1.0
116
+ layoutHint: single-column
117
+ acceptedCosmicNames:
118
+ - Pandora
119
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/donation-card.yaml
120
+ layer: section
121
+ - id: donation-use
122
+ displayName: Donation Use
123
+ semanticRole: donation-use
124
+ version: 1.2.0
125
+ layoutHint: card-grid
126
+ acceptedCosmicNames:
127
+ - Rhea
128
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/donation-use.yaml
129
+ layer: section
130
+ - id: dynamic-status-block
131
+ displayName: Dynamic status block
132
+ semanticRole: data-driven-status-indicator
133
+ version: 1.0.0
134
+ layoutHint: single-column
135
+ acceptedCosmicNames:
136
+ - Elara
137
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/dynamic-status-block.yaml
138
+ layer: section
139
+ - id: faq-list
140
+ displayName: Faq List
141
+ semanticRole: faq-list
142
+ version: 1.1.0
143
+ layoutHint: single-column
144
+ acceptedCosmicNames:
145
+ - Atlas
146
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/faq-list.yaml
147
+ layer: section
148
+ - id: final-cta
149
+ displayName: Final Cta
150
+ semanticRole: final-cta
151
+ version: 1.3.0
152
+ layoutHint: single-column
153
+ acceptedCosmicNames:
154
+ - Dione
155
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/final-cta.yaml
156
+ layer: section
157
+ - id: footer-promo
158
+ displayName: Footer Promo
159
+ semanticRole: component-footer-promo
160
+ version: 1.0.0
161
+ layoutHint: horizontal-row
162
+ acceptedCosmicNames:
163
+ - Nereid
164
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/footer-promo.yaml
165
+ layer: component
166
+ - id: hero
167
+ displayName: Hero
168
+ semanticRole: hero
169
+ version: 1.1.0
170
+ layoutHint: decision-card
171
+ acceptedCosmicNames:
172
+ - Europa
173
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/hero.yaml
174
+ layer: section
175
+ - id: hero-decision-card
176
+ displayName: Hero · Decision card
177
+ semanticRole: hero-with-decision-card
178
+ version: 1.1.0
179
+ layoutHint: decision-card
180
+ acceptedCosmicNames:
181
+ - Phobos
182
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/hero-decision-card.yaml
183
+ layer: section
184
+ - id: impact
185
+ displayName: Impact
186
+ semanticRole: impact
187
+ version: 1.2.0
188
+ layoutHint: split
189
+ acceptedCosmicNames:
190
+ - Ganymede
191
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/impact.yaml
192
+ layer: section
193
+ - id: lang-switcher
194
+ displayName: Lang Switcher
195
+ semanticRole: component-lang-switcher
196
+ version: 1.0.0
197
+ layoutHint: split
198
+ acceptedCosmicNames:
199
+ - Ophelia
200
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/lang-switcher.yaml
201
+ layer: component
202
+ - id: layout
203
+ displayName: Layout
204
+ semanticRole: component-layout
205
+ version: 1.0.0
206
+ layoutHint: split
207
+ acceptedCosmicNames:
208
+ - Umbriel
209
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/layout.yaml
210
+ layer: component
211
+ - id: layout.not-found
212
+ displayName: Not found
213
+ semanticRole: component-layout.not-found
214
+ version: 1.0.0
215
+ layoutHint: single-column
216
+ acceptedCosmicNames:
217
+ - Cressida
218
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/not-found.yaml
219
+ layer: component
220
+ - id: live-photo
221
+ displayName: Living photo
222
+ semanticRole: component-live-photo
223
+ version: 1.0.0
224
+ layoutHint: split
225
+ acceptedCosmicNames:
226
+ - Aegaeon
227
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/live-photo.yaml
228
+ layer: component
229
+ - id: markdown
230
+ displayName: Markdown
231
+ semanticRole: markdown
232
+ version: 1.2.0
233
+ layoutHint: single-column
234
+ acceptedCosmicNames:
235
+ - Hyperion
236
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/markdown.yaml
237
+ layer: section
238
+ - id: material-credit
239
+ displayName: Material credit
240
+ semanticRole: component-material-credit
241
+ version: 1.0.0
242
+ layoutHint: single-column
243
+ acceptedCosmicNames:
244
+ - Cordelia
245
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/material-credit.yaml
246
+ layer: component
247
+ - id: media
248
+ displayName: Media
249
+ semanticRole: component-media
250
+ version: 1.0.0
251
+ layoutHint: split
252
+ acceptedCosmicNames:
253
+ - Sycorax
254
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/media.yaml
255
+ layer: component
256
+ - id: mountain-journey
257
+ displayName: Mountain journey
258
+ semanticRole: maturity-visualization
259
+ version: 1.0.0
260
+ layoutHint: single-column
261
+ acceptedCosmicNames:
262
+ - Eris
263
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/mountain-journey.yaml
264
+ layer: section
265
+ - id: nachweis-card
266
+ displayName: Nachweis Card
267
+ semanticRole: trust-card
268
+ version: 1.0.0
269
+ layoutHint: card-grid
270
+ acceptedCosmicNames:
271
+ - Nix
272
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/nachweis-card.yaml
273
+ layer: component
274
+ - id: nachweis-detail
275
+ displayName: Nachweis Detail
276
+ semanticRole: trust-detail
277
+ version: 1.0.0
278
+ layoutHint: single-column
279
+ acceptedCosmicNames:
280
+ - Kerberos
281
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/nachweis-detail.yaml
282
+ layer: component
283
+ - id: nachweis-list
284
+ displayName: Nachweis List
285
+ semanticRole: trust-list
286
+ version: 1.0.0
287
+ layoutHint: single-column
288
+ acceptedCosmicNames:
289
+ - Hydra
290
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/nachweis-list.yaml
291
+ layer: component
292
+ - id: nachweis-verify
293
+ displayName: Nachweis Verify
294
+ semanticRole: trust-verify
295
+ version: 1.0.0
296
+ layoutHint: single-column
297
+ acceptedCosmicNames:
298
+ - Styx
299
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/nachweis-verify.yaml
300
+ layer: component
301
+ - id: navigation
302
+ displayName: Navigation
303
+ semanticRole: navigation
304
+ version: 1.0.0
305
+ layoutHint: single-column
306
+ acceptedCosmicNames:
307
+ - Phoebe
308
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/navigation.yaml
309
+ layer: section
310
+ - id: notausgang-block
311
+ displayName: Notausgang block
312
+ semanticRole: exit-clause-disclosure
313
+ version: 1.2.0
314
+ layoutHint: split
315
+ acceptedCosmicNames:
316
+ - Telesto
317
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/notausgang-block.yaml
318
+ layer: section
319
+ - id: open-source-registry
320
+ displayName: Open Source Registry
321
+ semanticRole: open-source-registry
322
+ version: 1.0.0
323
+ layoutHint: single-column
324
+ acceptedCosmicNames:
325
+ - Orcus
326
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/open-source-registry.yaml
327
+ layer: section
328
+ - id: ownership-block
329
+ displayName: Ownership block
330
+ semanticRole: client-ownership-disclosure
331
+ version: 1.2.0
332
+ layoutHint: split
333
+ acceptedCosmicNames:
334
+ - Helene
335
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/ownership-block.yaml
336
+ layer: section
337
+ - id: passport-header
338
+ displayName: Passport Header
339
+ semanticRole: component-passport-header
340
+ version: 1.0.0
341
+ layoutHint: horizontal-row
342
+ acceptedCosmicNames:
343
+ - Methone
344
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/passport-header.yaml
345
+ layer: component
346
+ - id: passport-provenance
347
+ displayName: Passport Provenance
348
+ semanticRole: component-passport-provenance
349
+ version: 1.0.0
350
+ layoutHint: split
351
+ acceptedCosmicNames:
352
+ - Bianca
353
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/passport-provenance.yaml
354
+ layer: component
355
+ - id: passport-score-grid
356
+ displayName: Passport Score Grid
357
+ semanticRole: component-passport-score-grid
358
+ version: 1.0.0
359
+ layoutHint: split
360
+ acceptedCosmicNames:
361
+ - Klarissa
362
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/passport-score-grid.yaml
363
+ layer: component
364
+ - id: passport-star-map
365
+ displayName: Passport Star Map
366
+ semanticRole: component-passport-star-map
367
+ version: 1.0.0
368
+ layoutHint: split
369
+ acceptedCosmicNames:
370
+ - Adrastea
371
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/passport-star-map.yaml
372
+ layer: component
373
+ - id: people
374
+ displayName: People
375
+ semanticRole: people
376
+ version: 2.0.0
377
+ layoutHint: card-grid
378
+ acceptedCosmicNames:
379
+ - Mimas
380
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/people.yaml
381
+ layer: section
382
+ - id: person-profile
383
+ displayName: Person Profile
384
+ semanticRole: component-person-profile
385
+ version: 1.0.0
386
+ layoutHint: split
387
+ acceptedCosmicNames:
388
+ - Miranda
389
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/person-profile.yaml
390
+ layer: component
391
+ - id: price-card
392
+ displayName: Price card
393
+ semanticRole: pricing-disclosure
394
+ version: 1.1.0
395
+ layoutHint: decision-card
396
+ acceptedCosmicNames:
397
+ - Pan
398
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/price-card.yaml
399
+ layer: section
400
+ - id: problem
401
+ displayName: Problem
402
+ semanticRole: problem
403
+ version: 1.2.0
404
+ layoutHint: split
405
+ acceptedCosmicNames:
406
+ - Callisto
407
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/problem.yaml
408
+ layer: section
409
+ - id: pulsar
410
+ displayName: Pulsar
411
+ semanticRole: component-pulsar
412
+ version: 1.0.0
413
+ layoutHint: split
414
+ acceptedCosmicNames:
415
+ - Despina
416
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/pulsar.yaml
417
+ layer: component
418
+ - id: responsive-image
419
+ displayName: Responsive image
420
+ semanticRole: component-responsive-image
421
+ version: 1.0.0
422
+ layoutHint: split
423
+ acceptedCosmicNames:
424
+ - Belinda
425
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/responsive-image.yaml
426
+ layer: component
427
+ - id: scroll-to-top
428
+ displayName: Scroll to Top
429
+ semanticRole: component-scroll-to-top
430
+ version: 1.0.0
431
+ layoutHint: single-column
432
+ acceptedCosmicNames:
433
+ - Daphnis
434
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/scroll-to-top.yaml
435
+ layer: component
436
+ - id: section-body-offer-capacity
437
+ displayName: Offer capacity
438
+ semanticRole: component-section-body.offer-capacity
439
+ version: 1.0.0
440
+ layoutHint: single-column
441
+ acceptedCosmicNames:
442
+ - Thalassa
443
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/offer-capacity.yaml
444
+ layer: component
445
+ - id: send-message
446
+ displayName: Send message
447
+ semanticRole: lead-message-capture
448
+ version: 1.3.0
449
+ layoutHint: single-column
450
+ acceptedCosmicNames:
451
+ - Ceres
452
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/send-message.yaml
453
+ layer: section
454
+ - id: service-metadata-block
455
+ displayName: Service metadata block
456
+ semanticRole: page-metadata-footer
457
+ version: 1.0.0
458
+ layoutHint: single-column
459
+ acceptedCosmicNames:
460
+ - Sedna
461
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/service-metadata-block.yaml
462
+ layer: section
463
+ - id: social-meta
464
+ displayName: Social meta
465
+ semanticRole: component-social-meta
466
+ version: 1.0.0
467
+ layoutHint: split
468
+ acceptedCosmicNames:
469
+ - Naiad
470
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/social-meta.yaml
471
+ layer: component
472
+ - id: social-proof
473
+ displayName: Social Proof
474
+ semanticRole: social-proof
475
+ version: 1.2.0
476
+ layoutHint: single-column
477
+ acceptedCosmicNames:
478
+ - Enceladus
479
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/social-proof.yaml
480
+ layer: section
481
+ - id: structured-data
482
+ displayName: Structured Data
483
+ semanticRole: component-structured-data
484
+ version: 1.0.0
485
+ layoutHint: split
486
+ acceptedCosmicNames:
487
+ - Triton
488
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/components/structured-data.yaml
489
+ layer: component
490
+ - id: transparency
491
+ displayName: Transparency
492
+ semanticRole: transparency
493
+ version: 1.3.0
494
+ layoutHint: horizontal-row
495
+ acceptedCosmicNames:
496
+ - Tethys
497
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/transparency.yaml
498
+ layer: section
499
+ - id: trust-strip
500
+ displayName: Trust strip
501
+ semanticRole: trust-evidence-row
502
+ version: 1.2.0
503
+ layoutHint: horizontal-row
504
+ acceptedCosmicNames:
505
+ - Deimos
506
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/trust-strip.yaml
507
+ layer: section
508
+ - id: video-section
509
+ displayName: Video section
510
+ semanticRole: video-feature
511
+ version: 1.0.0
512
+ layoutHint: single-column
513
+ acceptedCosmicNames:
514
+ - Quaoar
515
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/video-section.yaml
516
+ layer: section
517
+ - id: women
518
+ displayName: Women
519
+ semanticRole: women
520
+ version: 1.2.0
521
+ layoutHint: split
522
+ acceptedCosmicNames:
523
+ - Iapetus
524
+ sourceFile: packages/werkstatt-site/src/domain/ontology/archetypes/sections/women.yaml
525
+ layer: section
526
+ sectionRoles:
527
+ - approach
528
+ - article-index
529
+ - audience-self-identification
530
+ - breadcrumbs
531
+ - client-ownership-disclosure
532
+ - consent-gated-chat-launcher
533
+ - credits-gallery
534
+ - data-driven-status-indicator
535
+ - donation-card
536
+ - donation-use
537
+ - exit-clause-disclosure
538
+ - faq-list
539
+ - final-cta
540
+ - hero
541
+ - hero-with-decision-card
542
+ - impact
543
+ - lead-message-capture
544
+ - markdown
545
+ - maturity-visualization
546
+ - navigation
547
+ - open-source-registry
548
+ - page-metadata-footer
549
+ - people
550
+ - pricing-disclosure
551
+ - problem
552
+ - scope-of-responsibility-disclosure
553
+ - side-by-side-comparison
554
+ - social-proof
555
+ - transparency
556
+ - trust-evidence-row
557
+ - video-feature
558
+ - women
559
+ componentRoles:
560
+ - component-brand-label
561
+ - component-copyright
562
+ - component-currency-aware-price-display
563
+ - component-currency-selector
564
+ - component-footer-promo
565
+ - component-lang-switcher
566
+ - component-layout
567
+ - component-layout.not-found
568
+ - component-live-photo
569
+ - component-material-credit
570
+ - component-media
571
+ - component-passport-header
572
+ - component-passport-provenance
573
+ - component-passport-score-grid
574
+ - component-passport-star-map
575
+ - component-person-profile
576
+ - component-pulsar
577
+ - component-responsive-image
578
+ - component-scroll-to-top
579
+ - component-section-body.offer-capacity
580
+ - component-social-meta
581
+ - component-structured-data
582
+ - trust-card
583
+ - trust-detail
584
+ - trust-list
585
+ - trust-verify
586
+ planetImportPaths:
587
+ Titan: "@warpgogol/werkstatt-site/ui/sections/approach"
588
+ Himalia: "@warpgogol/werkstatt-site/ui/sections/article-header"
589
+ Io: "@warpgogol/werkstatt-site/ui/sections/article-list"
590
+ Epimetheus: "@warpgogol/werkstatt-site/ui/sections/audience-cards"
591
+ Thebe: "@warpgogol/werkstatt-site/ui/sections/breadcrumbs"
592
+ Prometheus: "@warpgogol/werkstatt-site/ui/sections/changelog"
593
+ Amalthea: "@warpgogol/werkstatt-site/ui/sections/chat-widget"
594
+ Janus: "@warpgogol/werkstatt-site/ui/sections/comparison-cards"
595
+ Calypso: "@warpgogol/werkstatt-site/ui/sections/controlled-responsibility-block"
596
+ Makemake: "@warpgogol/werkstatt-site/ui/sections/credits-gallery"
597
+ Pandora: "@warpgogol/werkstatt-site/ui/sections/donation-card"
598
+ Rhea: "@warpgogol/werkstatt-site/ui/sections/donation-use"
599
+ Elara: "@warpgogol/werkstatt-site/ui/sections/dynamic-status-block"
600
+ Atlas: "@warpgogol/werkstatt-site/ui/sections/faq-list"
601
+ Dione: "@warpgogol/werkstatt-site/ui/sections/final-cta"
602
+ Europa: "@warpgogol/werkstatt-site/ui/sections/hero"
603
+ Phobos: "@warpgogol/werkstatt-site/ui/sections/hero-decision-card"
604
+ Ganymede: "@warpgogol/werkstatt-site/ui/sections/impact"
605
+ Hyperion: "@warpgogol/werkstatt-site/ui/sections/markdown"
606
+ Eris: "@warpgogol/werkstatt-site/ui/sections/mountain-journey"
607
+ Phoebe: "@warpgogol/werkstatt-site/ui/sections/navigation"
608
+ Telesto: "@warpgogol/werkstatt-site/ui/sections/notausgang-block"
609
+ Orcus: "@warpgogol/werkstatt-site/ui/sections/open-source-registry"
610
+ Helene: "@warpgogol/werkstatt-site/ui/sections/ownership-block"
611
+ Mimas: "@warpgogol/werkstatt-site/ui/sections/people"
612
+ Pan: "@warpgogol/werkstatt-site/ui/sections/price-card"
613
+ Callisto: "@warpgogol/werkstatt-site/ui/sections/problem"
614
+ Ceres: "@warpgogol/werkstatt-site/ui/sections/send-message"
615
+ Sedna: "@warpgogol/werkstatt-site/ui/sections/service-metadata-block"
616
+ Enceladus: "@warpgogol/werkstatt-site/ui/sections/social-proof"
617
+ Metis: "@warpgogol/werkstatt-site/ui/sections/toc"
618
+ Tethys: "@warpgogol/werkstatt-site/ui/sections/transparency"
619
+ Deimos: "@warpgogol/werkstatt-site/ui/sections/trust-strip"
620
+ Quaoar: "@warpgogol/werkstatt-site/ui/sections/video-section"
621
+ Iapetus: "@warpgogol/werkstatt-site/ui/sections/women"
622
+ Proteus: "@warpgogol/werkstatt-site/ui/components/brand-label"
623
+ Charon: "@warpgogol/werkstatt-site/ui/components/copyright"
624
+ Rosalind: "@warpgogol/werkstatt-site/ui/components/currency-aware-price-display"
625
+ Portia: "@warpgogol/werkstatt-site/ui/components/currency-selector"
626
+ Galatea: "@warpgogol/werkstatt-site/ui/components/donation-card"
627
+ Puck: "@warpgogol/werkstatt-site/ui/components/effects"
628
+ Nereid: "@warpgogol/werkstatt-site/ui/components/footer-promo"
629
+ Ophelia: "@warpgogol/werkstatt-site/ui/components/lang-switcher"
630
+ Umbriel: "@warpgogol/werkstatt-site/ui/components/layout"
631
+ Aegaeon: "@warpgogol/werkstatt-site/ui/components/live-photo"
632
+ Cordelia: "@warpgogol/werkstatt-site/ui/components/material-credit"
633
+ Sycorax: "@warpgogol/werkstatt-site/ui/components/media"
634
+ Nix: "@warpgogol/werkstatt-site/ui/components/nachweis-card"
635
+ Kerberos: "@warpgogol/werkstatt-site/ui/components/nachweis-detail"
636
+ Hydra: "@warpgogol/werkstatt-site/ui/components/nachweis-list"
637
+ Styx: "@warpgogol/werkstatt-site/ui/components/nachweis-verify"
638
+ Cressida: "@warpgogol/werkstatt-site/ui/components/not-found"
639
+ Methone: "@warpgogol/werkstatt-site/ui/components/passport-header"
640
+ Bianca: "@warpgogol/werkstatt-site/ui/components/passport-provenance"
641
+ Klarissa: "@warpgogol/werkstatt-site/ui/components/passport-score-grid"
642
+ Adrastea: "@warpgogol/werkstatt-site/ui/components/passport-star-map"
643
+ Miranda: "@warpgogol/werkstatt-site/ui/components/person-profile"
644
+ Despina: "@warpgogol/werkstatt-site/ui/components/pulsar"
645
+ Belinda: "@warpgogol/werkstatt-site/ui/components/responsive-image"
646
+ Daphnis: "@warpgogol/werkstatt-site/ui/components/scroll-to-top"
647
+ Praxidike: "@warpgogol/werkstatt-site/ui/components/cards"
648
+ Aitne: "@warpgogol/werkstatt-site/ui/components/comparison"
649
+ Sinope: "@warpgogol/werkstatt-site/ui/components/list"
650
+ Thalassa: "@warpgogol/werkstatt-site/ui/components/offer-capacity"
651
+ Aoede: "@warpgogol/werkstatt-site/ui/components/paragraphs"
652
+ Kalyke: "@warpgogol/werkstatt-site/ui/components/rich"
653
+ Lysithea: "@warpgogol/werkstatt-site/ui/components/split-list"
654
+ Hegemone: "@warpgogol/werkstatt-site/ui/components/stats"
655
+ Isonoe: "@warpgogol/werkstatt-site/ui/components/section-cta"
656
+ Arche: "@warpgogol/werkstatt-site/ui/components/section-cta-group"
657
+ Pasiphae: "@warpgogol/werkstatt-site/ui/components/section-header"
658
+ Taygete: "@warpgogol/werkstatt-site/ui/components/section-image"
659
+ Ananke: "@warpgogol/werkstatt-site/ui/components/section-shell"
660
+ Naiad: "@warpgogol/werkstatt-site/ui/components/social-meta"
661
+ Triton: "@warpgogol/werkstatt-site/ui/components/structured-data"
662
+ blockTypeToCosmicName:
663
+ approach: Titan
664
+ article-header: Himalia
665
+ article-list: Io
666
+ audience-cards: Epimetheus
667
+ breadcrumbs: Thebe
668
+ changelog: Prometheus
669
+ chat-widget: Amalthea
670
+ comparison-cards: Janus
671
+ controlled-responsibility-block: Calypso
672
+ credits: Makemake
673
+ donation-card: Pandora
674
+ donation-use: Rhea
675
+ dynamic-status-block: Elara
676
+ faq-list: Atlas
677
+ final-cta: Dione
678
+ hero: Europa
679
+ hero-decision-card: Phobos
680
+ impact: Ganymede
681
+ markdown: Hyperion
682
+ mountain-journey: Eris
683
+ navigation: Phoebe
684
+ notausgang-block: Telesto
685
+ open-source-registry: Orcus
686
+ ownership-block: Helene
687
+ people: Mimas
688
+ price-card: Pan
689
+ problem: Callisto
690
+ send-message: Ceres
691
+ service-metadata-block: Sedna
692
+ social-proof: Enceladus
693
+ toc: Metis
694
+ transparency: Tethys
695
+ trust-strip: Deimos
696
+ video-section: Quaoar
697
+ women: Iapetus
698
+ brand-label: Proteus
699
+ copyright: Charon
700
+ currency-aware-price-display: Rosalind
701
+ currency-selector: Portia
702
+ section-shell: Puck
703
+ footer-promo: Nereid
704
+ lang-switcher: Ophelia
705
+ layout: Umbriel
706
+ live-photo: Aegaeon
707
+ material-credit: Cordelia
708
+ media: Sycorax
709
+ nachweis-card: Nix
710
+ nachweis-detail: Kerberos
711
+ nachweis-list: Hydra
712
+ nachweis-verify: Styx
713
+ layout.not-found: Cressida
714
+ passport-header: Methone
715
+ passport-provenance: Bianca
716
+ passport-score-grid: Klarissa
717
+ passport-star-map: Adrastea
718
+ person-profile: Miranda
719
+ pulsar: Despina
720
+ responsive-image: Belinda
721
+ scroll-to-top: Daphnis
722
+ section-body-cards: Praxidike
723
+ section-body-comparison: Aitne
724
+ section-body-list: Sinope
725
+ section-body-offer-capacity: Thalassa
726
+ section-body-paragraphs: Aoede
727
+ section-body-rich: Kalyke
728
+ section-body-split-list: Lysithea
729
+ section-body-stats: Hegemone
730
+ section-cta: Isonoe
731
+ section-cta-group: Arche
732
+ section-header: Pasiphae
733
+ section-image: Taygete
734
+ social-meta: Naiad
735
+ structured-data: Triton
736
+ moonImportPaths:
737
+ Ariel: "@warpgogol/werkstatt-site/ui/components/breadcrumbs"
738
+ Titania: "@warpgogol/werkstatt-site/ui/components/footer"
739
+ Oberon: "@warpgogol/werkstatt-site/ui/components/header"
740
+ Hermippe: "@warpgogol/werkstatt-site/ui/components/site-background"
741
+ roleByCosmicName:
742
+ Titan: approach
743
+ Himalia: article-metadata-header
744
+ Io: approach
745
+ Epimetheus: audience-self-identification
746
+ Thebe: navigation
747
+ Prometheus: changelog-history
748
+ Amalthea: consent-gated-chat-launcher
749
+ Janus: side-by-side-comparison
750
+ Calypso: scope-of-responsibility-disclosure
751
+ Makemake: credits-gallery
752
+ Pandora: donation-use
753
+ Rhea: donation-use
754
+ Elara: data-driven-status-indicator
755
+ Atlas: approach
756
+ Dione: final-cta
757
+ Europa: hero
758
+ Phobos: hero
759
+ Ganymede: impact
760
+ Hyperion: markdown
761
+ Eris: maturity-visualization
762
+ Phoebe: navigation
763
+ Telesto: exit-clause-disclosure
764
+ Orcus: open-source-registry
765
+ Helene: client-ownership-disclosure
766
+ Mimas: people
767
+ Pan: pricing-disclosure
768
+ Callisto: problem
769
+ Ceres: lead-message-capture
770
+ Sedna: page-metadata-footer
771
+ Enceladus: social-proof
772
+ Metis: table-of-contents
773
+ Tethys: transparency
774
+ Deimos: trust-evidence-row
775
+ Quaoar: video-feature
776
+ Iapetus: women
777
+ Proteus: brand-label
778
+ Ariel: breadcrumbs
779
+ Charon: copyright
780
+ Rosalind: price-display
781
+ Portia: currency-selector
782
+ Galatea: person-profile
783
+ Puck: section-shell
784
+ Titania: footer
785
+ Nereid: footer-promo
786
+ Oberon: header
787
+ Ophelia: lang-switcher
788
+ Umbriel: layout-shell
789
+ Aegaeon: section-image
790
+ Cordelia: section-body
791
+ Sycorax: section-image
792
+ Nix: section-body
793
+ Kerberos: section-body
794
+ Hydra: section-body
795
+ Styx: section-body
796
+ Cressida: layout-shell
797
+ Methone: header
798
+ Bianca: footer-promo
799
+ Klarissa: person-profile
800
+ Adrastea: footer
801
+ Miranda: person-profile
802
+ Despina: lang-switcher
803
+ Belinda: section-image
804
+ Daphnis: scroll-to-top
805
+ Praxidike: section-body
806
+ Aitne: section-body
807
+ Sinope: section-body
808
+ Thalassa: section-body
809
+ Aoede: section-body
810
+ Kalyke: section-body
811
+ Lysithea: section-body
812
+ Hegemone: section-body
813
+ Isonoe: section-cta
814
+ Arche: section-cta
815
+ Pasiphae: section-header
816
+ Taygete: section-image
817
+ Ananke: section-shell
818
+ Naiad: header
819
+ Triton: header
820
+ Hermippe: site-background
821
+