hyperweave 0.2.26__tar.gz → 0.3.0__tar.gz

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 (416) hide show
  1. {hyperweave-0.2.26 → hyperweave-0.3.0}/CHANGELOG.md +21 -0
  2. {hyperweave-0.2.26 → hyperweave-0.3.0}/PKG-INFO +143 -104
  3. {hyperweave-0.2.26 → hyperweave-0.3.0}/README.md +142 -103
  4. {hyperweave-0.2.26 → hyperweave-0.3.0}/scripts/generate_proofset.py +396 -45
  5. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/_version.py +2 -2
  6. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/cli.py +14 -1
  7. hyperweave-0.3.0/src/hyperweave/compose/assembler.py +398 -0
  8. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/compose/context.py +43 -9
  9. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/compose/engine.py +6 -0
  10. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/compose/layout.py +6 -1
  11. hyperweave-0.3.0/src/hyperweave/compose/palette.py +135 -0
  12. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/compose/resolver.py +263 -63
  13. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/compose/resolvers/chart.py +60 -3
  14. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/compose/resolvers/stats.py +106 -44
  15. hyperweave-0.3.0/src/hyperweave/compose/validate_paradigms.py +254 -0
  16. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/config/loader.py +8 -1
  17. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/core/models.py +27 -0
  18. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/core/paradigm.py +85 -6
  19. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/core/schema.py +46 -45
  20. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/css/expression.css +16 -8
  21. hyperweave-0.3.0/src/hyperweave/data/genomes/automata.json +484 -0
  22. hyperweave-0.3.0/src/hyperweave/data/genomes/chrome.json +343 -0
  23. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/paradigms/brutalist.yaml +5 -0
  24. hyperweave-0.3.0/src/hyperweave/data/paradigms/cellular.yaml +211 -0
  25. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/paradigms/chrome.yaml +6 -0
  26. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/mcp/server.py +91 -15
  27. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/render/chart_engine.py +327 -1
  28. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/serve/app.py +125 -14
  29. hyperweave-0.3.0/src/hyperweave/templates/components/chart-milestone.svg.j2 +15 -0
  30. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/document.svg.j2 +2 -0
  31. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/badge/cellular-content.j2 +12 -10
  32. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/badge/cellular-defs.j2 +7 -7
  33. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/badge/chrome-content.j2 +8 -3
  34. hyperweave-0.3.0/src/hyperweave/templates/frames/chart/cellular-content.j2 +200 -0
  35. hyperweave-0.3.0/src/hyperweave/templates/frames/chart/cellular-defs.j2 +87 -0
  36. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/divider.svg.j2 +24 -15
  37. hyperweave-0.3.0/src/hyperweave/templates/frames/icon/cellular-content.j2 +106 -0
  38. hyperweave-0.3.0/src/hyperweave/templates/frames/icon/cellular-defs.j2 +25 -0
  39. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/icon/chrome-content.j2 +8 -4
  40. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/icon/chrome-defs.j2 +7 -3
  41. hyperweave-0.3.0/src/hyperweave/templates/frames/marquee-horizontal/cellular-overlay.j2 +22 -0
  42. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/marquee-horizontal/chrome-defs.j2 +8 -8
  43. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/marquee-horizontal.svg.j2 +15 -3
  44. hyperweave-0.3.0/src/hyperweave/templates/frames/stats/cellular-content.j2 +146 -0
  45. hyperweave-0.3.0/src/hyperweave/templates/frames/stats/cellular-defs.j2 +45 -0
  46. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/strip/cellular-content.j2 +20 -17
  47. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/strip/cellular-defs.j2 +8 -3
  48. hyperweave-0.3.0/src/hyperweave/templates/frames/strip/chrome-status.j2 +13 -0
  49. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/snapshots/url_stability/divider_band_chrome_static.svg +2 -1
  50. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/snapshots/url_stability/icon_github_chrome_static.svg +5 -4
  51. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_badge_cellular.py +12 -12
  52. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_badge_layout.py +20 -0
  53. hyperweave-0.3.0/tests/test_chrome_variants.py +309 -0
  54. hyperweave-0.3.0/tests/test_compose_variant_field.py +135 -0
  55. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_divider_cellular.py +22 -11
  56. hyperweave-0.3.0/tests/test_font_gating.py +95 -0
  57. hyperweave-0.3.0/tests/test_genome_automata.py +155 -0
  58. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_marquee_v0_2_16.py +49 -15
  59. hyperweave-0.3.0/tests/test_paradigm_cellular.py +179 -0
  60. hyperweave-0.3.0/tests/test_proofset.py +200 -0
  61. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_strip_cellular.py +19 -11
  62. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_strip_status_toggle.py +8 -4
  63. hyperweave-0.3.0/tests/test_variant_default_resolution.py +47 -0
  64. hyperweave-0.2.26/src/hyperweave/compose/assembler.py +0 -281
  65. hyperweave-0.2.26/src/hyperweave/compose/validate_paradigms.py +0 -58
  66. hyperweave-0.2.26/src/hyperweave/data/genomes/automata.json +0 -134
  67. hyperweave-0.2.26/src/hyperweave/data/genomes/chrome.json +0 -143
  68. hyperweave-0.2.26/src/hyperweave/data/paradigms/cellular.yaml +0 -175
  69. hyperweave-0.2.26/src/hyperweave/templates/components/chart-milestone.svg.j2 +0 -7
  70. hyperweave-0.2.26/src/hyperweave/templates/frames/chart/cellular-content.j2 +0 -166
  71. hyperweave-0.2.26/src/hyperweave/templates/frames/chart/cellular-defs.j2 +0 -45
  72. hyperweave-0.2.26/src/hyperweave/templates/frames/icon/cellular-content.j2 +0 -39
  73. hyperweave-0.2.26/src/hyperweave/templates/frames/icon/cellular-defs.j2 +0 -17
  74. hyperweave-0.2.26/src/hyperweave/templates/frames/marquee-horizontal/cellular-overlay.j2 +0 -13
  75. hyperweave-0.2.26/src/hyperweave/templates/frames/stats/cellular-content.j2 +0 -221
  76. hyperweave-0.2.26/src/hyperweave/templates/frames/stats/cellular-defs.j2 +0 -39
  77. hyperweave-0.2.26/src/hyperweave/templates/frames/strip/chrome-status.j2 +0 -8
  78. hyperweave-0.2.26/tests/test_compose_variant_field.py +0 -46
  79. hyperweave-0.2.26/tests/test_genome_automata.py +0 -92
  80. hyperweave-0.2.26/tests/test_paradigm_cellular.py +0 -84
  81. hyperweave-0.2.26/tests/test_proofset.py +0 -92
  82. hyperweave-0.2.26/tests/test_variant_default_resolution.py +0 -45
  83. {hyperweave-0.2.26 → hyperweave-0.3.0}/.dockerignore +0 -0
  84. {hyperweave-0.2.26 → hyperweave-0.3.0}/.github/workflows/ci.yml +0 -0
  85. {hyperweave-0.2.26 → hyperweave-0.3.0}/.github/workflows/deploy.yml +0 -0
  86. {hyperweave-0.2.26 → hyperweave-0.3.0}/.github/workflows/publish.yml +0 -0
  87. {hyperweave-0.2.26 → hyperweave-0.3.0}/.gitignore +0 -0
  88. {hyperweave-0.2.26 → hyperweave-0.3.0}/.pre-commit-config.yaml +0 -0
  89. {hyperweave-0.2.26 → hyperweave-0.3.0}/Dockerfile +0 -0
  90. {hyperweave-0.2.26 → hyperweave-0.3.0}/LICENSE +0 -0
  91. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/buttons/button-liquid.svg +0 -0
  92. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/cards/card-butterfly.svg +0 -0
  93. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/cards/card-python.svg +0 -0
  94. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/cards/card-sunflower.svg +0 -0
  95. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/cards/card-waves.svg +0 -0
  96. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/brutalist-emerald/badge_critical.svg +0 -0
  97. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/brutalist-emerald/badge_passing.svg +0 -0
  98. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/brutalist-emerald/badge_warning.svg +0 -0
  99. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/brutalist-emerald/banner.svg +0 -0
  100. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/brutalist-emerald/icons/discord.svg +0 -0
  101. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/brutalist-emerald/icons/notion.svg +0 -0
  102. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/brutalist-emerald/icons/reddit.svg +0 -0
  103. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/brutalist-emerald/icons/spotify.svg +0 -0
  104. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/brutalist-emerald/icons/youtube.svg +0 -0
  105. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/brutalist-emerald/marquee_counter.svg +0 -0
  106. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/brutalist-emerald/marquee_horizontal.svg +0 -0
  107. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/brutalist-emerald/marquee_vertical.svg +0 -0
  108. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/brutalist-emerald/profile-cards/chart_stars_full.svg +0 -0
  109. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/brutalist-emerald/profile-cards/stats.svg +0 -0
  110. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/brutalist-emerald/strip.svg +0 -0
  111. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/chrome-horizon/badge_critical.svg +0 -0
  112. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/chrome-horizon/badge_passing.svg +0 -0
  113. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/chrome-horizon/badge_warning.svg +0 -0
  114. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/chrome-horizon/banner.svg +0 -0
  115. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/chrome-horizon/icons/bluesky.svg +0 -0
  116. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/chrome-horizon/icons/github.svg +0 -0
  117. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/chrome-horizon/icons/instagram.svg +0 -0
  118. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/chrome-horizon/icons/mastodon.svg +0 -0
  119. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/chrome-horizon/icons/x.svg +0 -0
  120. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/chrome-horizon/marquee_counter.svg +0 -0
  121. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/chrome-horizon/marquee_horizontal.svg +0 -0
  122. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/chrome-horizon/marquee_vertical.svg +0 -0
  123. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/chrome-horizon/profile-cards/chart_stars_full.svg +0 -0
  124. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/chrome-horizon/profile-cards/stats.svg +0 -0
  125. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/chrome-horizon/strip.svg +0 -0
  126. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/telemetry/master_card.svg +0 -0
  127. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/telemetry/receipt.svg +0 -0
  128. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/telemetry/receipt_claude-code_medium.svg +0 -0
  129. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/telemetry/receipt_codex_large.svg +0 -0
  130. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/telemetry/receipt_voltage_xlarge.svg +0 -0
  131. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/telemetry/rhythm_strip.svg +0 -0
  132. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/examples/telemetry/rhythm_strip_voltage_xlarge.svg +0 -0
  133. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/footers/inneraura-footer-liquid.svg +0 -0
  134. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/footers/inneraura-footer-purple.svg +0 -0
  135. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/footers/inneraura-footer.svg +0 -0
  136. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/hyperweave-banner.svg +0 -0
  137. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/icons/cobalt-sapphire-discord.svg +0 -0
  138. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/icons/cobalt-sapphire-docs.svg +0 -0
  139. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/icons/cobalt-sapphire-github.svg +0 -0
  140. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/icons/cobalt-sapphire-instagram.svg +0 -0
  141. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/icons/cobalt-sapphire-linkedin.svg +0 -0
  142. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/icons/cobalt-sapphire-tiktok.svg +0 -0
  143. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/icons/cobalt-sapphire-x.svg +0 -0
  144. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/icons/cobalt-sapphire-youtube.svg +0 -0
  145. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/marquees/badge-showcase-triple.svg +0 -0
  146. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/marquees/genome-marquee-triple.svg +0 -0
  147. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/marquees/sample-badges.svg +0 -0
  148. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/mintlify-assets/404.svg +0 -0
  149. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/mintlify-assets/callout-icons.svg +0 -0
  150. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/mintlify-assets/divider.svg +0 -0
  151. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/mintlify-assets/favicon.svg +0 -0
  152. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/mintlify-assets/hero-banner.svg +0 -0
  153. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/mintlify-assets/hyperweave-banner-v2.svg +0 -0
  154. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/mintlify-assets/hyperweave-navbar-logo.svg +0 -0
  155. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/mintlify-assets/loader.svg +0 -0
  156. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/mintlify-assets/og-image.svg +0 -0
  157. {hyperweave-0.2.26 → hyperweave-0.3.0}/assets/timelines/hyperweave-roadmap.svg +0 -0
  158. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/assets/favicon.svg +0 -0
  159. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/assets/hyperweave-banner.svg +0 -0
  160. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/assets/hyperweave-navbar-logo.svg +0 -0
  161. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/assets/og-image.svg +0 -0
  162. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/explanation/architecture.mdx +0 -0
  163. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/explanation/camo-compatibility.mdx +0 -0
  164. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/explanation/cim-compliance.mdx +0 -0
  165. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/explanation/genome-profile-system.mdx +0 -0
  166. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/explanation/metadata-tiers.mdx +0 -0
  167. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/how-to/add-motion-to-badges.mdx +0 -0
  168. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/how-to/create-session-receipts.mdx +0 -0
  169. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/how-to/set-up-claude-code-hooks.mdx +0 -0
  170. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/how-to/use-live-data-badges.mdx +0 -0
  171. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/introduction.mdx +0 -0
  172. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/mint.json +0 -0
  173. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/quickstart.mdx +0 -0
  174. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/reference/cli.mdx +0 -0
  175. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/reference/compose-spec.mdx +0 -0
  176. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/reference/genomes.mdx +0 -0
  177. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/reference/http-api.mdx +0 -0
  178. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/reference/mcp-tools.mdx +0 -0
  179. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/reference/motions.mdx +0 -0
  180. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/reference/telemetry-contract.mdx +0 -0
  181. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/spec/hyperweave-protocol.mdx +0 -0
  182. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/tutorials/build-an-artifact-kit.mdx +0 -0
  183. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/tutorials/compose-your-first-badge.mdx +0 -0
  184. {hyperweave-0.2.26 → hyperweave-0.3.0}/docs/tutorials/install-session-telemetry.mdx +0 -0
  185. {hyperweave-0.2.26 → hyperweave-0.3.0}/fly.toml +0 -0
  186. {hyperweave-0.2.26 → hyperweave-0.3.0}/hooks/install.py +0 -0
  187. {hyperweave-0.2.26 → hyperweave-0.3.0}/hooks/session_end.sh +0 -0
  188. {hyperweave-0.2.26 → hyperweave-0.3.0}/justfile +0 -0
  189. {hyperweave-0.2.26 → hyperweave-0.3.0}/pyproject.toml +0 -0
  190. {hyperweave-0.2.26 → hyperweave-0.3.0}/scripts/extract_font_metrics.py +0 -0
  191. {hyperweave-0.2.26 → hyperweave-0.3.0}/scripts/extract_glyphs.py +0 -0
  192. {hyperweave-0.2.26 → hyperweave-0.3.0}/scripts/probe_live_stats.py +0 -0
  193. {hyperweave-0.2.26 → hyperweave-0.3.0}/scripts/probe_star_history.py +0 -0
  194. {hyperweave-0.2.26 → hyperweave-0.3.0}/scripts/stress_test.py +0 -0
  195. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/__init__.py +0 -0
  196. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/__main__.py +0 -0
  197. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/compose/__init__.py +0 -0
  198. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/compose/bar_chart.py +0 -0
  199. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/compose/lanes.py +0 -0
  200. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/compose/resolvers/__init__.py +0 -0
  201. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/compose/rhythm.py +0 -0
  202. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/compose/rhythm_strip.py +0 -0
  203. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/compose/treemap.py +0 -0
  204. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/config/__init__.py +0 -0
  205. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/config/genome_validator.py +0 -0
  206. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/config/registry.py +0 -0
  207. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/config/settings.py +0 -0
  208. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/connectors/__init__.py +0 -0
  209. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/connectors/arxiv.py +0 -0
  210. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/connectors/base.py +0 -0
  211. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/connectors/cache.py +0 -0
  212. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/connectors/github.py +0 -0
  213. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/connectors/rest.py +0 -0
  214. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/core/__init__.py +0 -0
  215. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/core/cell_layout.py +0 -0
  216. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/core/color.py +0 -0
  217. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/core/contracts.py +0 -0
  218. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/core/enums.py +0 -0
  219. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/core/font_metrics.py +0 -0
  220. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/core/state.py +0 -0
  221. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/core/text.py +0 -0
  222. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/core/thresholds.py +0 -0
  223. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/badge_modes.yaml +0 -0
  224. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/css/accessibility.css +0 -0
  225. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/css/bridge.css +0 -0
  226. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/css/status.css +0 -0
  227. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/font-metrics/chakra-petch.json +0 -0
  228. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/font-metrics/inter.json +0 -0
  229. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/font-metrics/jetbrains-mono.json +0 -0
  230. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/font-metrics/orbitron.json +0 -0
  231. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/fonts/chakra-petch.b64 +0 -0
  232. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/fonts/chakra-petch.meta.json +0 -0
  233. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/fonts/jetbrains-mono.b64 +0 -0
  234. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/fonts/jetbrains-mono.meta.json +0 -0
  235. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/fonts/orbitron.b64 +0 -0
  236. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/fonts/orbitron.meta.json +0 -0
  237. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/genomes/brutalist.json +0 -0
  238. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/genomes/telemetry-claude-code.json +0 -0
  239. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/genomes/telemetry-codex.json +0 -0
  240. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/genomes/telemetry-cream.json +0 -0
  241. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/genomes/telemetry-voltage.json +0 -0
  242. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/glyphs.json +0 -0
  243. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/motions/border/chromatic-pulse.yaml +0 -0
  244. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/motions/border/corner-trace.yaml +0 -0
  245. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/motions/border/dual-orbit.yaml +0 -0
  246. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/motions/border/entanglement.yaml +0 -0
  247. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/motions/border/rimrun.yaml +0 -0
  248. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/motions/static.yaml +0 -0
  249. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/paradigms/default.yaml +0 -0
  250. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/policies/normal.json +0 -0
  251. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/policies/permissive.json +0 -0
  252. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/policies/ungoverned.json +0 -0
  253. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/profiles/brutalist.contract.json +0 -0
  254. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/profiles/brutalist.yaml +0 -0
  255. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/profiles/chrome.contract.json +0 -0
  256. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/profiles/chrome.yaml +0 -0
  257. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/specimens.yaml +0 -0
  258. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/telemetry/model-pricing.yaml +0 -0
  259. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/telemetry/runtimes/claude-code.yaml +0 -0
  260. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/telemetry/runtimes/codex.yaml +0 -0
  261. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/telemetry/stage-config.yaml +0 -0
  262. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/telemetry/stage-labels.yaml +0 -0
  263. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/telemetry/tool-colors.yaml +0 -0
  264. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/terminals/arrow.json +0 -0
  265. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/terminals/aurora.json +0 -0
  266. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/terminals/beacon.json +0 -0
  267. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/terminals/bracket3d.json +0 -0
  268. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/terminals/chevron.json +0 -0
  269. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/terminals/crosshair.json +0 -0
  270. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/terminals/diamond.json +0 -0
  271. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/terminals/rocket.json +0 -0
  272. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/terminals/rules/bar.json +0 -0
  273. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/terminals/rules/dashed.json +0 -0
  274. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/terminals/rules/five-wave.json +0 -0
  275. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/terminals/rules/spectral.json +0 -0
  276. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/terminals/rules/straight.json +0 -0
  277. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/terminals/rules/wave.json +0 -0
  278. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/data/terminals/stijl.json +0 -0
  279. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/kit.py +0 -0
  280. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/mcp/__init__.py +0 -0
  281. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/mcp/__main__.py +0 -0
  282. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/py.typed +0 -0
  283. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/render/__init__.py +0 -0
  284. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/render/fonts.py +0 -0
  285. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/render/glyphs.py +0 -0
  286. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/render/motion.py +0 -0
  287. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/render/templates.py +0 -0
  288. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/serve/__init__.py +0 -0
  289. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/serve/data_tokens.py +0 -0
  290. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/telemetry/__init__.py +0 -0
  291. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/telemetry/capture.py +0 -0
  292. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/telemetry/codex_parser.py +0 -0
  293. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/telemetry/contract.py +0 -0
  294. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/telemetry/corrections.py +0 -0
  295. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/telemetry/cost.py +0 -0
  296. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/telemetry/models.py +0 -0
  297. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/telemetry/parser.py +0 -0
  298. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/telemetry/runtimes.py +0 -0
  299. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/telemetry/stages.py +0 -0
  300. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/chart-area.svg.j2 +0 -0
  301. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/chart-axes.svg.j2 +0 -0
  302. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/chart-empty-state.svg.j2 +0 -0
  303. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/chart-gridlines.svg.j2 +0 -0
  304. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/chart-markers/circle.svg.j2 +0 -0
  305. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/chart-markers/diamond.svg.j2 +0 -0
  306. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/chart-markers/endpoint-diamond.svg.j2 +0 -0
  307. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/chart-markers/endpoint-rect.svg.j2 +0 -0
  308. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/chart-markers/rect.svg.j2 +0 -0
  309. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/chart-polyline.svg.j2 +0 -0
  310. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/filter.svg.j2 +0 -0
  311. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/glyph-inline.svg.j2 +0 -0
  312. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/glyph.svg.j2 +0 -0
  313. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/gradient.svg.j2 +0 -0
  314. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/metadata.svg.j2 +0 -0
  315. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/metric.svg.j2 +0 -0
  316. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/phase-segment.svg.j2 +0 -0
  317. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/rule.svg.j2 +0 -0
  318. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/status.svg.j2 +0 -0
  319. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/components/terminal.svg.j2 +0 -0
  320. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/error-badge.svg.j2 +0 -0
  321. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/badge/brutalist-content.j2 +0 -0
  322. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/badge/brutalist-defs.j2 +0 -0
  323. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/badge/chrome-defs.j2 +0 -0
  324. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/badge/default-content.j2 +0 -0
  325. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/badge/default-defs.j2 +0 -0
  326. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/badge.svg.j2 +0 -0
  327. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/catalog.svg.j2 +0 -0
  328. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/chart/brutalist-content.j2 +0 -0
  329. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/chart/brutalist-defs.j2 +0 -0
  330. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/chart/chrome-content.j2 +0 -0
  331. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/chart/chrome-defs.j2 +0 -0
  332. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/chart.svg.j2 +0 -0
  333. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/divider/brutalist-seam.svg.j2 +0 -0
  334. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/divider/chrome-band.svg.j2 +0 -0
  335. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/icon/brutalist-content.j2 +0 -0
  336. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/icon/brutalist-defs.j2 +0 -0
  337. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/icon/default-content.j2 +0 -0
  338. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/icon/default-defs.j2 +0 -0
  339. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/icon.svg.j2 +0 -0
  340. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/marquee-horizontal/brutalist-content.j2 +0 -0
  341. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/marquee-horizontal/brutalist-defs.j2 +0 -0
  342. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/marquee-horizontal/brutalist-overlay.j2 +0 -0
  343. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/marquee-horizontal/cellular-content.j2 +0 -0
  344. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/marquee-horizontal/cellular-defs.j2 +0 -0
  345. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/marquee-horizontal/chrome-content.j2 +0 -0
  346. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/marquee-horizontal/chrome-overlay.j2 +0 -0
  347. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/marquee-horizontal/default-content.j2 +0 -0
  348. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/marquee-horizontal/default-defs.j2 +0 -0
  349. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/master-card.svg.j2 +0 -0
  350. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/receipt.svg.j2 +0 -0
  351. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/rhythm-strip.svg.j2 +0 -0
  352. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/stats/brutalist-content.j2 +0 -0
  353. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/stats/brutalist-defs.j2 +0 -0
  354. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/stats/chrome-content.j2 +0 -0
  355. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/stats/chrome-defs.j2 +0 -0
  356. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/stats.svg.j2 +0 -0
  357. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/strip/brutalist-content.j2 +0 -0
  358. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/strip/brutalist-defs.j2 +0 -0
  359. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/strip/brutalist-status.j2 +0 -0
  360. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/strip/cellular-status.j2 +0 -0
  361. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/strip/chrome-content.j2 +0 -0
  362. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/strip/chrome-defs.j2 +0 -0
  363. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/strip/default-content.j2 +0 -0
  364. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/strip/default-defs.j2 +0 -0
  365. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/strip/default-status.j2 +0 -0
  366. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/frames/strip.svg.j2 +0 -0
  367. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/motions/border/chromatic-pulse.svg.j2 +0 -0
  368. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/motions/border/corner-trace.svg.j2 +0 -0
  369. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/motions/border/dual-orbit.svg.j2 +0 -0
  370. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/motions/border/entanglement.svg.j2 +0 -0
  371. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/motions/border/rimrun.svg.j2 +0 -0
  372. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/partials/provider-glyphs.svg.j2 +0 -0
  373. {hyperweave-0.2.26 → hyperweave-0.3.0}/src/hyperweave/templates/partials/state-signal-cascade.j2 +0 -0
  374. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/__init__.py +0 -0
  375. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/conftest.py +0 -0
  376. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/fixtures/codex_session.jsonl +0 -0
  377. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/fixtures/codex_session_patches.jsonl +0 -0
  378. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/fixtures/github_contributions/synthetic.html +0 -0
  379. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/fixtures/session.json +0 -0
  380. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/fixtures/session.jsonl +0 -0
  381. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/helpers.py +0 -0
  382. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_assembler.py +0 -0
  383. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_badge_mode.py +0 -0
  384. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_chart_engine.py +0 -0
  385. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_chart_frame.py +0 -0
  386. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_codex_parser.py +0 -0
  387. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_compose_bar_chart.py +0 -0
  388. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_compose_rhythm_strip.py +0 -0
  389. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_compose_treemap.py +0 -0
  390. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_connectors.py +0 -0
  391. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_core.py +0 -0
  392. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_data_tokens.py +0 -0
  393. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_divider_genome_specific.py +0 -0
  394. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_font_metrics_chakra.py +0 -0
  395. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_github_scrape.py +0 -0
  396. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_kit.py +0 -0
  397. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_mcp.py +0 -0
  398. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_paradigm_dispatch.py +0 -0
  399. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_paradigm_extensibility.py +0 -0
  400. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_parse_transcript_auto.py +0 -0
  401. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_receipt_token_compliance.py +0 -0
  402. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_render.py +0 -0
  403. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_resolver_rhythm.py +0 -0
  404. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_runtime_registries.py +0 -0
  405. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_serve.py +0 -0
  406. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_serve_live_state.py +0 -0
  407. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_slot_metric_state.py +0 -0
  408. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_state_inference.py +0 -0
  409. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_stats_card.py +0 -0
  410. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_telemetry.py +0 -0
  411. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_telemetry_contract_per_stage.py +0 -0
  412. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_telemetry_integration.py +0 -0
  413. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_telemetry_skin_dispatch.py +0 -0
  414. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_tool_class_completeness.py +0 -0
  415. {hyperweave-0.2.26 → hyperweave-0.3.0}/tests/test_url_stability.py +0 -0
  416. {hyperweave-0.2.26 → hyperweave-0.3.0}/uv.lock +0 -0
@@ -5,6 +5,27 @@ All notable changes to HyperWeave are documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.3.0] - 2026-05-10
9
+
10
+ Chrome ships five named variants. Automata ships sixteen tones with a pairing grammar that composes any two into a bifamily strip or divider. Stat cards, star charts, marquees, and icons redesigned. Per-frame font filtering cuts artifact payloads.
11
+
12
+ ### Added
13
+
14
+ - **Chrome variants** — horizon, abyssal, lightning, graphite, moth. Each carries its own gradient, glyph tone, text color, and status indicator.
15
+ - **Automata 16 tones** — violet, teal, bone, steel, amber, jade, magenta, cobalt, toxic, solar, abyssal, crimson, sulfur, indigo, burgundy, copper.
16
+ - **Pairing grammar** — `?variant=primary&pair=secondary` composes any two tones into a bifamily strip or divider. Other frame types silently ignore the parameter. Available on CLI, HTTP, and MCP.
17
+ - **Redesigned automata stat card, star chart, marquee, and icon** — contribution heatmap, star history with threshold markers, scrolling marquee, and social icon with living cell grid.
18
+
19
+ ### Changed
20
+
21
+ - **Chrome glyph dimensions match cellular** — both paradigms declare `glyph_size: 12`.
22
+ - **Star chart threshold labels** — offset increased so annotations sit clearly above the polyline glow.
23
+ - **Per-frame font filtering** — each frame embeds only the fonts its templates use. Icons and dividers ship font-free.
24
+
25
+ ### Notes
26
+
27
+ - 1035 tests (was 960).
28
+
8
29
  ## [0.2.26] - 2026-05-07
9
30
 
10
31
  Two follow-ups to v0.2.25's badge state architecture: strip status indicators now color correctly when CI metrics fail, and the snapshot test suite no longer fails on local-vs-CI version differences.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hyperweave
3
- Version: 0.2.26
3
+ Version: 0.3.0
4
4
  Summary: Headless visual output layer for AI agents. One API call → self-contained SVG.
5
5
  Project-URL: Repository, https://github.com/InnerAura/hyperweave
6
6
  Project-URL: Issues, https://github.com/InnerAura/hyperweave/issues
@@ -42,15 +42,13 @@ Description-Content-Type: text/markdown
42
42
  Works everywhere an <code>&lt;img&gt;</code> tag works.
43
43
  </p>
44
44
 
45
- <!--
46
- <p align="center">
45
+ <!-- <p align="center">
47
46
  <img src="https://hyperweave.app/v1/badge/STARS/chrome.static?data=gh:InnerAura/hyperweave.stars" alt="stars"/>
48
47
  <img src="https://hyperweave.app/v1/badge/FORKS/chrome.static?data=gh:InnerAura/hyperweave.forks" alt="forks"/>
49
48
  <img src="https://hyperweave.app/v1/badge/VERSION/chrome.static?data=pypi:hyperweave.version" alt="version"/>
50
49
  <img src="https://hyperweave.app/v1/badge/LICENSE/chrome.static?data=gh:InnerAura/hyperweave.license" alt="license"/>
51
50
  <img src="https://hyperweave.app/v1/badge/PYTHON/chrome.static?data=pypi:hyperweave.python_requires" alt="python"/>
52
- </p>
53
- -->
51
+ </p> -->
54
52
 
55
53
  <p align="center">
56
54
  <img src="https://hyperweave.app/v1/strip/hyperweave/chrome.static?data=gh:InnerAura/hyperweave.build,pypi:hyperweave.version,gh:InnerAura/hyperweave.license&glyph=github" alt="strip"/>
@@ -101,7 +99,7 @@ HyperWeave is that primitive. One API call returns a self-contained SVG with dat
101
99
 
102
100
  ---
103
101
 
104
- ## Agent Receipts
102
+ ## Agentic Artifacts
105
103
 
106
104
  Every AI coding session produces a receipt &mdash; cost, tokens, tool distribution, session rhythm. One install, fully automatic.
107
105
 
@@ -155,269 +153,292 @@ Why genome and not theme? Because brand isn't a design problem, it's an infrastr
155
153
  <p align="center">
156
154
  <a href="#chrome"><kbd>chrome</kbd></a>
157
155
  &middot;
158
- <a href="#brutalist"><kbd>brutalist</kbd></a>
159
- &middot;
160
156
  <a href="#automata"><kbd>automata</kbd></a>
157
+ &middot;
158
+ <a href="#brutalist"><kbd>brutalist</kbd></a>
161
159
  </p>
162
160
 
163
161
  <h3 id="chrome">chrome</h3>
164
- <sub><b>chrome paradigm &middot; metallic env-mapping &middot; smooth corner radii</b></sub>
162
+
163
+ <p align="center">
164
+ <img src="https://hyperweave.app/v1/badge/BUILD/passing/chrome.static?state=passing&variant=horizon" alt="BUILD passing — horizon variant"/>
165
+ <img src="https://hyperweave.app/v1/badge/DEPLOY/live/chrome.static?state=passing&variant=abyssal" alt="DEPLOY live — abyssal variant"/>
166
+ <img src="https://hyperweave.app/v1/badge/COVERAGE/94%25/chrome.static?state=passing&variant=lightning" alt="COVERAGE 94% — lightning variant"/>
167
+ <img src="https://hyperweave.app/v1/badge/CRITICAL/0/chrome.static?state=warning&variant=graphite" alt="CRITICAL 0 — graphite variant"/>
168
+ <img src="https://hyperweave.app/v1/badge/TESTS/142/chrome.static?state=passing&variant=moth" alt="TESTS 142 — moth variant"/>
169
+ </p>
170
+
171
+ <p align="center">
172
+ <sub>5 variants: <code>horizon</code> &middot; <code>abyssal</code> &middot; <code>lightning</code> &middot; <code>graphite</code> &middot; <code>moth</code></sub>
173
+ </p>
165
174
 
166
175
  <table>
167
176
  <tr>
168
177
  <th align="left" width="160">Signals<br/><sub>state machine</sub></th>
169
178
  <td>
170
- <img src="https://hyperweave.app/v1/badge/BUILD/passing/chrome.static?state=passing" alt="passing"/>
171
- <img src="https://hyperweave.app/v1/badge/BUILD/warning/chrome.static?state=warning" alt="warning"/>
172
- <img src="https://hyperweave.app/v1/badge/BUILD/critical/chrome.static?state=critical" alt="critical"/>
179
+ <img src="https://hyperweave.app/v1/badge/BUILD/passing/chrome.static?state=passing&variant=horizon" alt="passing"/>
180
+ <img src="https://hyperweave.app/v1/badge/BUILD/warning/chrome.static?state=warning&variant=horizon" alt="warning"/>
181
+ <img src="https://hyperweave.app/v1/badge/BUILD/critical/chrome.static?state=critical&variant=horizon" alt="critical"/>
173
182
  <br/>
174
183
  <ul>
175
- <li><sub><code>/v1/badge/{title}/{value}/{genome}.static?state={state}</code></sub></li>
176
- <li><sub><code>hyperweave.app/v1/badge/BUILD/passing/chrome.static?state=passing</code></sub></li>
184
+ <li><sub><code>/v1/badge/{title}/{value}/{genome}.static?state={state}&variant={horizon|abyssal|lightning|graphite|moth}</code></sub></li>
185
+ <li><sub><code>hyperweave.app/v1/badge/BUILD/passing/chrome.static?state=passing&variant=horizon</code></sub></li>
177
186
  </ul>
178
187
  </td>
179
188
  </tr>
180
189
  <tr>
181
190
  <th align="left">Dashboard<br/><sub>strip</sub></th>
182
191
  <td>
183
- <img src="https://hyperweave.app/v1/strip/readme-ai/chrome.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version&subtitle=eli64s/readme-ai&glyph=github" alt="strip"/>
192
+ <img src="https://hyperweave.app/v1/strip/readme-ai/chrome.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version&subtitle=eli64s/readme-ai&glyph=github&variant=horizon" alt="strip"/>
184
193
  <br/>
185
194
  <ul>
186
- <li><sub><code>/v1/strip/{title}/{genome}.static?data={tokens}&subtitle={text}&glyph={glyph}</code></sub></li>
187
- <li><sub><code>hyperweave.app/v1/strip/readme-ai/chrome.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version&subtitle=eli64s/readme-ai&glyph=github</code></sub></li>
195
+ <li><sub><code>/v1/strip/{title}/{genome}.static?data={tokens}&subtitle={text}&glyph={glyph}&variant={variant}</code></sub></li>
196
+ <li><sub><code>hyperweave.app/v1/strip/readme-ai/chrome.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version&subtitle=eli64s/readme-ai&glyph=github&variant=horizon</code></sub></li>
188
197
  </ul>
189
198
  </td>
190
199
  </tr>
191
200
  <tr>
192
201
  <th align="left">Profile<br/><sub>stats card</sub></th>
193
202
  <td>
194
- <img src="https://hyperweave.app/v1/stats/eli64s/chrome.static" alt="stats" width="100%"/>
203
+ <img src="https://hyperweave.app/v1/stats/eli64s/chrome.static?variant=horizon" alt="stats" width="100%"/>
195
204
  <br/>
196
205
  <ul>
197
- <li><sub><code>/v1/stats/{username}/{genome}.static</code></sub></li>
198
- <li><sub><code>hyperweave.app/v1/stats/eli64s/chrome.static</code></sub></li>
206
+ <li><sub><code>/v1/stats/{username}/{genome}.static?variant={variant}</code></sub></li>
207
+ <li><sub><code>hyperweave.app/v1/stats/eli64s/chrome.static?variant=horizon</code></sub></li>
199
208
  </ul>
200
209
  </td>
201
210
  </tr>
202
211
  <tr>
203
212
  <th align="left">Star Chart<br/><sub>star history</sub></th>
204
213
  <td>
205
- <img src="https://hyperweave.app/v1/chart/stars/eli64s/readme-ai/chrome.static" alt="star chart" width="100%"/>
214
+ <img src="https://hyperweave.app/v1/chart/stars/eli64s/readme-ai/chrome.static?variant=horizon" alt="star chart" width="100%"/>
206
215
  <br/>
207
216
  <ul>
208
- <li><sub><code>/v1/chart/stars/{owner}/{repo}/{genome}.static</code></sub></li>
209
- <li><sub><code>hyperweave.app/v1/chart/stars/eli64s/readme-ai/chrome.static</code></sub></li>
217
+ <li><sub><code>/v1/chart/stars/{owner}/{repo}/{genome}.static?variant={variant}</code></sub></li>
218
+ <li><sub><code>hyperweave.app/v1/chart/stars/eli64s/readme-ai/chrome.static?variant=horizon</code></sub></li>
210
219
  </ul>
211
220
  </td>
212
221
  </tr>
213
222
  <tr>
214
223
  <th align="left">Marquee<br/><sub>horizontal ticker</sub></th>
215
224
  <td>
216
- <img src="https://hyperweave.app/v1/marquee/readme-ai/chrome.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version,pypi:readmeai.downloads,docker:zeroxeli/readme-ai.pull_count" alt="marquee"/>
225
+ <img src="https://hyperweave.app/v1/marquee/readme-ai/chrome.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version,pypi:readmeai.downloads,docker:zeroxeli/readme-ai.pull_count&variant=horizon" alt="marquee"/>
217
226
  <br/>
218
227
  <ul>
219
- <li><sub><code>/v1/marquee/{title}/{genome}.static?data={tokens}</code></sub></li>
220
- <li><sub><code>hyperweave.app/v1/marquee/readme-ai/chrome.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version,pypi:readmeai.downloads,docker:zeroxeli/readme-ai.pull_count</code></sub></li>
228
+ <li><sub><code>/v1/marquee/{title}/{genome}.static?data={tokens}&variant={variant}</code></sub></li>
229
+ <li><sub><code>hyperweave.app/v1/marquee/readme-ai/chrome.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version,pypi:readmeai.downloads,docker:zeroxeli/readme-ai.pull_count&variant=horizon</code></sub></li>
221
230
  </ul>
222
231
  </td>
223
232
  </tr>
224
233
  <tr>
225
234
  <th align="left">Icons<br/><sub>circle + square</sub></th>
226
235
  <td>
227
- <img src="https://hyperweave.app/v1/icon/youtube/chrome.static?shape=circle" alt="youtube" width="56"/>
228
- <img src="https://hyperweave.app/v1/icon/notion/chrome.static?shape=circle" alt="notion" width="56"/>
229
- <img src="https://hyperweave.app/v1/icon/npm/chrome.static?shape=square" alt="npm" width="56"/>
230
- <img src="https://hyperweave.app/v1/icon/instagram/chrome.static?shape=square" alt="instagram" width="56"/>
236
+ <img src="https://hyperweave.app/v1/icon/youtube/chrome.static?shape=circle&variant=horizon" alt="youtube" width="56"/>
237
+ <img src="https://hyperweave.app/v1/icon/notion/chrome.static?shape=circle&variant=horizon" alt="notion" width="56"/>
238
+ <img src="https://hyperweave.app/v1/icon/npm/chrome.static?shape=square&variant=horizon" alt="npm" width="56"/>
239
+ <img src="https://hyperweave.app/v1/icon/instagram/chrome.static?shape=square&variant=horizon" alt="instagram" width="56"/>
231
240
  <br/>
232
241
  <ul>
233
- <li><sub><code>/v1/icon/{glyph}/{genome}.static?shape={circle|square}</code></sub></li>
234
- <li><sub><code>hyperweave.app/v1/icon/youtube/chrome.static?shape=circle</code></sub></li>
242
+ <li><sub><code>/v1/icon/{glyph}/{genome}.static?shape={circle|square}&variant={variant}</code></sub></li>
243
+ <li><sub><code>hyperweave.app/v1/icon/youtube/chrome.static?shape=circle&variant=horizon</code></sub></li>
235
244
  </ul>
236
245
  </td>
237
246
  </tr>
238
247
  <tr>
239
248
  <th align="left">Divider<br/><sub>band</sub></th>
240
249
  <td>
241
- <img src="https://hyperweave.app/v1/divider/band/chrome.static" alt="chrome band divider"/>
250
+ <img src="https://hyperweave.app/v1/divider/band/chrome.static?variant=horizon" alt="chrome band divider"/>
242
251
  <br/>
243
252
  <ul>
244
- <li><sub><code>/v1/divider/band/{genome}.static</code></sub></li>
245
- <li><sub><code>hyperweave.app/v1/divider/band/chrome.static</code></sub></li>
253
+ <li><sub><code>/v1/divider/band/{genome}.static?variant={variant}</code></sub></li>
254
+ <li><sub><code>hyperweave.app/v1/divider/band/chrome.static?variant=horizon</code></sub></li>
246
255
  </ul>
247
256
  </td>
248
257
  </tr>
249
258
  </table>
250
259
 
251
- <h3 id="brutalist">brutalist</h3>
252
- <sub><b>brutalist paradigm &middot; sharp zero-radius &middot; 5 border SMIL motions</b></sub>
260
+ <h3 id="automata">automata</h3>
261
+
262
+ <p align="center">
263
+ <img src="https://hyperweave.app/v1/badge/DISCORD/JOIN/automata.static?glyph=discord&variant=indigo" alt="DISCORD JOIN — indigo variant"/>
264
+ <img src="https://hyperweave.app/v1/badge/DOCKER/PULL/automata.static?glyph=docker&variant=cobalt" alt="DOCKER PULL — cobalt variant"/>
265
+ <img src="https://hyperweave.app/v1/badge/STARS/automata.static?data=gh:InnerAura/hyperweave.stars&glyph=github&variant=bone" alt="STARS — bone variant"/>
266
+ <img src="https://hyperweave.app/v1/badge/FOLLOW/automata.static?glyph=x&variant=steel" alt="FOLLOW — steel variant"/>
267
+ <img src="https://hyperweave.app/v1/badge/HF/MODELS/automata.static?glyph=huggingface&variant=sulfur" alt="HF MODELS — sulfur variant"/>
268
+ <img src="https://hyperweave.app/v1/badge/LISTEN/automata.static?glyph=spotify&variant=jade" alt="LISTEN — jade variant"/>
269
+ </p>
270
+
271
+ <p align="center">
272
+ <sub>16 tones: <code>violet</code> &middot; <code>teal</code> &middot; <code>bone</code> &middot; <code>steel</code> &middot; <code>amber</code> &middot; <code>jade</code> &middot; <code>magenta</code> &middot; <code>cobalt</code> &middot; <code>toxic</code> &middot; <code>solar</code> &middot; <code>abyssal</code> &middot; <code>crimson</code> &middot; <code>sulfur</code> &middot; <code>indigo</code> &middot; <code>burgundy</code> &middot; <code>copper</code>. Pair any two via <code>?variant=primary&pair=secondary</code>.</sub>
273
+ </p>
253
274
 
254
275
  <table>
255
276
  <tr>
256
277
  <th align="left" width="160">Signals<br/><sub>state machine</sub></th>
257
278
  <td>
258
- <img src="https://hyperweave.app/v1/badge/BUILD/passing/brutalist.static?state=passing" alt="passing"/>
259
- <img src="https://hyperweave.app/v1/badge/BUILD/warning/brutalist.static?state=warning" alt="warning"/>
260
- <img src="https://hyperweave.app/v1/badge/BUILD/critical/brutalist.static?state=critical" alt="critical"/>
279
+ <img src="https://hyperweave.app/v1/badge/BUILD/passing/automata.static?state=passing&variant=bone" alt="passing"/>
280
+ <img src="https://hyperweave.app/v1/badge/BUILD/warning/automata.static?state=warning&variant=bone" alt="warning"/>
281
+ <img src="https://hyperweave.app/v1/badge/BUILD/critical/automata.static?state=critical&variant=bone" alt="critical"/>
261
282
  <br/>
262
283
  <ul>
263
284
  <li><sub><code>/v1/badge/{title}/{value}/{genome}.static?state={state}</code></sub></li>
264
- <li><sub><code>hyperweave.app/v1/badge/BUILD/passing/brutalist.static?state=passing</code></sub></li>
285
+ <li><sub><code>hyperweave.app/v1/badge/BUILD/passing/automata.static?state=passing&variant=bone</code></sub></li>
265
286
  </ul>
266
287
  </td>
267
288
  </tr>
268
289
  <tr>
269
290
  <th align="left">Dashboard<br/><sub>strip</sub></th>
270
291
  <td>
271
- <img src="https://hyperweave.app/v1/strip/readme-ai/brutalist.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version&subtitle=eli64s/readme-ai&glyph=github" alt="strip"/>
292
+ <img src="https://hyperweave.app/v1/strip/readme-ai/automata.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version&subtitle=eli64s/readme-ai&variant=bone&pair=steel&glyph=github" alt="strip"/>
272
293
  <br/>
273
294
  <ul>
274
- <li><sub><code>/v1/strip/{title}/{genome}.static?data={tokens}&subtitle={text}&glyph={glyph}</code></sub></li>
275
- <li><sub><code>hyperweave.app/v1/strip/readme-ai/brutalist.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version&subtitle=eli64s/readme-ai&glyph=github</code></sub></li>
295
+ <li><sub><code>/v1/strip/{title}/automata.static?data={tokens}&variant={tone}&pair={tone}&subtitle={text}&glyph={glyph}</code></sub></li>
296
+ <li><sub><code>hyperweave.app/v1/strip/readme-ai/automata.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version&subtitle=eli64s/readme-ai&variant=bone&pair=steel&glyph=github</code></sub></li>
276
297
  </ul>
277
298
  </td>
278
299
  </tr>
279
300
  <tr>
280
301
  <th align="left">Profile<br/><sub>stats card</sub></th>
281
302
  <td>
282
- <img src="https://hyperweave.app/v1/stats/eli64s/brutalist.static" alt="stats" width="100%"/>
303
+ <img src="https://hyperweave.app/v1/stats/eli64s/automata.static?variant=bone" alt="stats" width="100%"/>
283
304
  <br/>
284
305
  <ul>
285
- <li><sub><code>/v1/stats/{username}/{genome}.static</code></sub></li>
286
- <li><sub><code>hyperweave.app/v1/stats/eli64s/brutalist.static</code></sub></li>
306
+ <li><sub><code>/v1/stats/{username}/{genome}.static?variant={tone}</code></sub></li>
307
+ <li><sub><code>hyperweave.app/v1/stats/eli64s/automata.static?variant=bone</code></sub></li>
287
308
  </ul>
288
309
  </td>
289
310
  </tr>
290
311
  <tr>
291
312
  <th align="left">Star Chart<br/><sub>star history</sub></th>
292
313
  <td>
293
- <img src="https://hyperweave.app/v1/chart/stars/eli64s/readme-ai/brutalist.static" alt="star chart" width="100%"/>
314
+ <img src="https://hyperweave.app/v1/chart/stars/eli64s/readme-ai/automata.static?variant=bone" alt="star chart" width="100%"/>
294
315
  <br/>
295
316
  <ul>
296
- <li><sub><code>/v1/chart/stars/{owner}/{repo}/{genome}.static</code></sub></li>
297
- <li><sub><code>hyperweave.app/v1/chart/stars/eli64s/readme-ai/brutalist.static</code></sub></li>
317
+ <li><sub><code>/v1/chart/stars/{owner}/{repo}/{genome}.static?variant={tone}</code></sub></li>
318
+ <li><sub><code>hyperweave.app/v1/chart/stars/eli64s/readme-ai/automata.static?variant=bone</code></sub></li>
298
319
  </ul>
299
320
  </td>
300
321
  </tr>
301
322
  <tr>
302
323
  <th align="left">Marquee<br/><sub>horizontal ticker</sub></th>
303
324
  <td>
304
- <img src="https://hyperweave.app/v1/marquee/readme-ai/brutalist.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version,pypi:readmeai.downloads,docker:zeroxeli/readme-ai.pull_count" alt="marquee"/>
325
+ <img src="https://hyperweave.app/v1/marquee/readme-ai/automata.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version,pypi:readmeai.downloads,docker:zeroxeli/readme-ai.pull_count&variant=bone" alt="marquee"/>
305
326
  <br/>
306
327
  <ul>
307
- <li><sub><code>/v1/marquee/{title}/{genome}.static?data={tokens}</code></sub></li>
308
- <li><sub><code>hyperweave.app/v1/marquee/readme-ai/brutalist.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version,pypi:readmeai.downloads,docker:zeroxeli/readme-ai.pull_count</code></sub></li>
328
+ <li><sub><code>/v1/marquee/{title}/automata.static?data={tokens}&variant={tone}</code></sub></li>
329
+ <li><sub><code>hyperweave.app/v1/marquee/readme-ai/automata.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version,pypi:readmeai.downloads,docker:zeroxeli/readme-ai.pull_count&variant=bone</code></sub></li>
309
330
  </ul>
310
331
  </td>
311
332
  </tr>
312
333
  <tr>
313
- <th align="left">Icons<br/><sub>circle + square</sub></th>
334
+ <th align="left">Icons<br/><sub>square brand-matched tones</sub></th>
314
335
  <td>
315
- <img src="https://hyperweave.app/v1/icon/discord/brutalist.static?shape=circle" alt="discord" width="56"/>
316
- <img src="https://hyperweave.app/v1/icon/github/brutalist.static?shape=circle" alt="github" width="56"/>
317
- <img src="https://hyperweave.app/v1/icon/x/brutalist.static?shape=square" alt="x" width="56"/>
318
- <img src="https://hyperweave.app/v1/icon/spotify/brutalist.static?shape=square" alt="spotify" width="56"/>
336
+ <img src="https://hyperweave.app/v1/icon/docker/automata.static?shape=square&variant=cobalt" alt="docker cobalt" width="56"/>
337
+ <img src="https://hyperweave.app/v1/icon/discord/automata.static?shape=square&variant=indigo" alt="discord indigo" width="56"/>
338
+ <img src="https://hyperweave.app/v1/icon/huggingface/automata.static?shape=square&variant=sulfur" alt="huggingface sulfur" width="56"/>
339
+ <img src="https://hyperweave.app/v1/icon/youtube/automata.static?shape=square&variant=crimson" alt="youtube crimson" width="56"/>
319
340
  <br/>
320
341
  <ul>
321
- <li><sub><code>/v1/icon/{glyph}/{genome}.static?shape={circle|square}</code></sub></li>
322
- <li><sub><code>hyperweave.app/v1/icon/discord/brutalist.static?shape=circle</code></sub></li>
342
+ <li><sub><code>/v1/icon/{glyph}/automata.static?shape=square&variant={tone}</code></sub></li>
343
+ <li><sub><code>hyperweave.app/v1/icon/docker/automata.static?shape=square&variant=cobalt</code></sub></li>
323
344
  </ul>
324
345
  </td>
325
346
  </tr>
326
347
  <tr>
327
- <th align="left">Divider<br/><sub>seam</sub></th>
348
+ <th align="left">Divider<br/><sub>dissolve</sub></th>
328
349
  <td>
329
- <img src="https://hyperweave.app/v1/divider/seam/brutalist.static" alt="brutalist seam divider"/>
350
+ <img src="https://hyperweave.app/v1/divider/dissolve/automata.static?variant=bone&pair=steel" alt="automata dissolve divider"/>
330
351
  <br/>
331
352
  <ul>
332
- <li><sub><code>/v1/divider/seam/{genome}.static</code></sub></li>
333
- <li><sub><code>hyperweave.app/v1/divider/seam/brutalist.static</code></sub></li>
353
+ <li><sub><code>/v1/divider/dissolve/{genome}.static?variant={tone}&pair={tone}</code></sub></li>
354
+ <li><sub><code>hyperweave.app/v1/divider/dissolve/automata.static?variant=bone&pair=steel</code></sub></li>
334
355
  </ul>
335
356
  </td>
336
357
  </tr>
337
358
  </table>
338
359
 
339
- <h3 id="automata">automata</h3>
340
- <sub><b>cellular paradigm &middot; bifamily teal &times; amethyst &middot; abyssal-cyber chromatics</b></sub>
360
+ <h3 id="brutalist">brutalist</h3>
341
361
 
342
362
  <table>
343
363
  <tr>
344
- <th align="left" width="160">Signals<br/><sub>chromatic variant</sub></th>
364
+ <th align="left" width="160">Signals<br/><sub>state machine</sub></th>
345
365
  <td>
346
- <img src="https://hyperweave.app/v1/badge/PYPI/automata.static?data=pypi:hyperweave.version&glyph=python&variant=blue" alt="pypi teal"/>
347
- <img src="https://hyperweave.app/v1/badge/DISCORD/JOIN/automata.static?glyph=discord&variant=purple" alt="discord amethyst"/>
366
+ <img src="https://hyperweave.app/v1/badge/BUILD/passing/brutalist.static?state=passing" alt="passing"/>
367
+ <img src="https://hyperweave.app/v1/badge/BUILD/warning/brutalist.static?state=warning" alt="warning"/>
368
+ <img src="https://hyperweave.app/v1/badge/BUILD/critical/brutalist.static?state=critical" alt="critical"/>
348
369
  <br/>
349
370
  <ul>
350
- <li><sub><code>/v1/badge/{title}/automata.static?data={token}&variant={blue|purple|bifamily}</code></sub></li>
351
- <li><sub><code>hyperweave.app/v1/badge/DISCORD/JOIN/automata.static?glyph=discord&variant=purple</code></sub></li>
371
+ <li><sub><code>/v1/badge/{title}/{value}/{genome}.static?state={state}</code></sub></li>
372
+ <li><sub><code>hyperweave.app/v1/badge/BUILD/passing/brutalist.static?state=passing</code></sub></li>
352
373
  </ul>
353
374
  </td>
354
375
  </tr>
355
376
  <tr>
356
- <th align="left">Dashboard<br/><sub>strip &middot; bifamily</sub></th>
377
+ <th align="left">Dashboard<br/><sub>strip</sub></th>
357
378
  <td>
358
- <img src="https://hyperweave.app/v1/strip/readme-ai/automata.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version&subtitle=eli64s/readme-ai&variant=bifamily&glyph=github" alt="strip"/>
379
+ <img src="https://hyperweave.app/v1/strip/readme-ai/brutalist.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version&subtitle=eli64s/readme-ai&glyph=github" alt="strip"/>
359
380
  <br/>
360
381
  <ul>
361
- <li><sub><code>/v1/strip/{title}/automata.static?data={tokens}&variant=bifamily&subtitle={text}&glyph={glyph}</code></sub></li>
362
- <li><sub><code>hyperweave.app/v1/strip/readme-ai/automata.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version&subtitle=eli64s/readme-ai&variant=bifamily&glyph=github</code></sub></li>
382
+ <li><sub><code>/v1/strip/{title}/{genome}.static?data={tokens}&subtitle={text}&glyph={glyph}</code></sub></li>
383
+ <li><sub><code>hyperweave.app/v1/strip/readme-ai/brutalist.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version&subtitle=eli64s/readme-ai&glyph=github</code></sub></li>
363
384
  </ul>
364
385
  </td>
365
386
  </tr>
366
387
  <tr>
367
388
  <th align="left">Profile<br/><sub>stats card</sub></th>
368
389
  <td>
369
- <img src="https://hyperweave.app/v1/stats/eli64s/automata.static" alt="stats" width="100%"/>
390
+ <img src="https://hyperweave.app/v1/stats/eli64s/brutalist.static" alt="stats" width="100%"/>
370
391
  <br/>
371
392
  <ul>
372
393
  <li><sub><code>/v1/stats/{username}/{genome}.static</code></sub></li>
373
- <li><sub><code>hyperweave.app/v1/stats/eli64s/automata.static</code></sub></li>
394
+ <li><sub><code>hyperweave.app/v1/stats/eli64s/brutalist.static</code></sub></li>
374
395
  </ul>
375
396
  </td>
376
397
  </tr>
377
398
  <tr>
378
399
  <th align="left">Star Chart<br/><sub>star history</sub></th>
379
400
  <td>
380
- <img src="https://hyperweave.app/v1/chart/stars/eli64s/readme-ai/automata.static" alt="star chart" width="100%"/>
401
+ <img src="https://hyperweave.app/v1/chart/stars/eli64s/readme-ai/brutalist.static" alt="star chart" width="100%"/>
381
402
  <br/>
382
403
  <ul>
383
404
  <li><sub><code>/v1/chart/stars/{owner}/{repo}/{genome}.static</code></sub></li>
384
- <li><sub><code>hyperweave.app/v1/chart/stars/eli64s/readme-ai/automata.static</code></sub></li>
405
+ <li><sub><code>hyperweave.app/v1/chart/stars/eli64s/readme-ai/brutalist.static</code></sub></li>
385
406
  </ul>
386
407
  </td>
387
408
  </tr>
388
409
  <tr>
389
- <th align="left">Marquee<br/><sub>horizontal ticker &middot; bifamily</sub></th>
410
+ <th align="left">Marquee<br/><sub>horizontal ticker</sub></th>
390
411
  <td>
391
- <img src="https://hyperweave.app/v1/marquee/readme-ai/automata.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version,pypi:readmeai.downloads,docker:zeroxeli/readme-ai.pull_count&variant=bifamily" alt="marquee"/>
412
+ <img src="https://hyperweave.app/v1/marquee/readme-ai/brutalist.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version,pypi:readmeai.downloads,docker:zeroxeli/readme-ai.pull_count" alt="marquee"/>
392
413
  <br/>
393
414
  <ul>
394
- <li><sub><code>/v1/marquee/{title}/automata.static?data={tokens}&variant=bifamily</code></sub></li>
395
- <li><sub><code>hyperweave.app/v1/marquee/readme-ai/automata.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version,pypi:readmeai.downloads,docker:zeroxeli/readme-ai.pull_count&variant=bifamily</code></sub></li>
415
+ <li><sub><code>/v1/marquee/{title}/{genome}.static?data={tokens}</code></sub></li>
416
+ <li><sub><code>hyperweave.app/v1/marquee/readme-ai/brutalist.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version,pypi:readmeai.downloads,docker:zeroxeli/readme-ai.pull_count</code></sub></li>
396
417
  </ul>
397
418
  </td>
398
419
  </tr>
399
420
  <tr>
400
421
  <th align="left">Icons<br/><sub>circle + square</sub></th>
401
422
  <td>
402
- <img src="https://hyperweave.app/v1/icon/python/automata.static?shape=circle&variant=blue&v=20" alt="python" width="56"/>
403
- <img src="https://hyperweave.app/v1/icon/docker/automata.static?shape=square&variant=blue&v=20" alt="docker" width="56"/>
404
- <img src="https://hyperweave.app/v1/icon/huggingface/automata.static?shape=circle&variant=purple&v=20" alt="huggingface" width="56"/>
405
- <img src="https://hyperweave.app/v1/icon/jupyter/automata.static?shape=square&variant=purple&v=20" alt="jupyter" width="56"/>
423
+ <img src="https://hyperweave.app/v1/icon/discord/brutalist.static?shape=circle" alt="discord" width="56"/>
424
+ <img src="https://hyperweave.app/v1/icon/github/brutalist.static?shape=circle" alt="github" width="56"/>
425
+ <img src="https://hyperweave.app/v1/icon/x/brutalist.static?shape=square" alt="x" width="56"/>
426
+ <img src="https://hyperweave.app/v1/icon/spotify/brutalist.static?shape=square" alt="spotify" width="56"/>
406
427
  <br/>
407
428
  <ul>
408
- <li><sub><code>/v1/icon/{glyph}/automata.static?shape={circle|square}&variant={blue|purple}</code></sub></li>
409
- <li><sub><code>hyperweave.app/v1/icon/python/automata.static?shape=circle&variant=blue&v=20</code></sub></li>
429
+ <li><sub><code>/v1/icon/{glyph}/{genome}.static?shape={circle|square}</code></sub></li>
430
+ <li><sub><code>hyperweave.app/v1/icon/discord/brutalist.static?shape=circle</code></sub></li>
410
431
  </ul>
411
432
  </td>
412
433
  </tr>
413
434
  <tr>
414
- <th align="left">Divider<br/><sub>dissolve</sub></th>
435
+ <th align="left">Divider<br/><sub>seam</sub></th>
415
436
  <td>
416
- <img src="https://hyperweave.app/v1/divider/dissolve/automata.static" alt="automata dissolve divider"/>
437
+ <img src="https://hyperweave.app/v1/divider/seam/brutalist.static" alt="brutalist seam divider"/>
417
438
  <br/>
418
439
  <ul>
419
- <li><sub><code>/v1/divider/dissolve/{genome}.static</code></sub></li>
420
- <li><sub><code>hyperweave.app/v1/divider/dissolve/automata.static</code></sub></li>
440
+ <li><sub><code>/v1/divider/seam/{genome}.static</code></sub></li>
441
+ <li><sub><code>hyperweave.app/v1/divider/seam/brutalist.static</code></sub></li>
421
442
  </ul>
422
443
  </td>
423
444
  </tr>
@@ -425,14 +446,10 @@ Why genome and not theme? Because brand isn't a design problem, it's an infrastr
425
446
 
426
447
  | | chrome | brutalist | automata |
427
448
  |---|---|---|---|
428
- | Surface | `#000a14` deep void | `#14532D` dark field | `#04060A` void |
429
- | Signal | `#5ba3d4` metallic blue | `#10B981` emerald | `#1E849A` teal &middot; `#6B3B8A` amethyst |
430
- | Profile | chrome (smooth, env-mapped) | brutalist (sharp, zero-radius) | brutalist (cellular paradigm) |
431
- | Chromatic variant | &mdash; | &mdash; | `blue` / `purple` / `bifamily` |
432
- | Motions | 5 border SMIL | 5 border SMIL | static, chromatic-pulse, rimrun, corner-trace |
433
- | Divider | `band` (envelope drift) | `seam` (expansion joint) | `dissolve` (bifamily bridge) |
434
-
435
- <sub>The two automata signal badges share a URL and differ only in the chromatic variant: <code>?variant=blue</code> renders the teal palette, <code>?variant=purple</code> the amethyst, <code>?variant=bifamily</code> both. Each genome declares its allowed variants in its JSON config; unknown values return 422.</sub>
449
+ | Aesthetic | Metallic precision | Raw material | Living cellular grid |
450
+ | Variants | 5 named | &mdash; | 16 tones, any two pair |
451
+ | Motion | Animated border SMIL | Animated border SMIL | Animated cell grid |
452
+ | Divider | `band` | `seam` | `dissolve` |
436
453
 
437
454
  <h3 id="dividers"><code>/a/inneraura/dividers/</code></h3>
438
455
 
@@ -620,8 +637,8 @@ curl 'https://hyperweave.app/v1/badge/STARS/chrome.static?data=gh:anthropics/cla
620
637
  curl 'https://hyperweave.app/v1/strip/readme-ai/brutalist.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks'
621
638
  curl 'https://hyperweave.app/v1/marquee/SCROLL/brutalist.static?data=text:NEW%20RELEASE,gh:anthropics/claude-code.stars'
622
639
 
623
- # Chromatic variant (automata's blue/purple/bifamily axis) and size (badge default/compact)
624
- curl 'https://hyperweave.app/v1/badge/PYPI/automata.static?variant=purple&data=pypi:hyperweave.version'
640
+ # Chromatic variants (automata: 16 solo tones, pair any two via &pair=...; chrome: horizon/abyssal/lightning/graphite/moth)
641
+ curl 'https://hyperweave.app/v1/badge/PYPI/automata.static?variant=teal&pair=violet&data=pypi:hyperweave.version'
625
642
  curl 'https://hyperweave.app/v1/badge/build/passing/automata.static?size=compact'
626
643
 
627
644
  # Genome-themed dividers
@@ -672,13 +689,35 @@ Every artifact ships with:
672
689
  | Glyphs | 99 (93 Simple Icons + 6 geometric) |
673
690
  | Divider variants | 8 &mdash; 3 genome-themed (`band` chrome, `seam` brutalist, `dissolve` automata) + 5 genome-agnostic (`block`, `current`, `takeoff`, `void`, `zeropoint`) at <code>/a/inneraura/dividers/</code> |
674
691
  | Metadata tiers | 5 (Tier 0 silent &rarr; Tier 4 reasoning) |
675
- | Paradigms | 4 per frame (default, brutalist, chrome, cellular) — per-frame dispatch from genome |
676
692
  | Bundled fonts | 3 (JetBrains Mono, Orbitron, Chakra Petch — base64-embedded) |
677
693
 
678
694
  Stack: Pydantic, FastAPI, FastMCP v3, Jinja2, Typer.
679
695
 
680
696
  ---
681
697
 
698
+ ## Data Connectors
699
+
700
+ HyperWeave binds live data into any artifact through a unified token grammar (`?data=...`). Tokens are comma-separated; each token is either a literal (`text:`, `kv:`) or a live fetch (`<provider>:<identifier>.<metric>`).
701
+
702
+ | Prefix | Source | Identifier shape | Metrics |
703
+ |--------|--------|------------------|---------|
704
+ | `gh` / `github` | GitHub | `owner/repo` | `stars`, `forks`, `watchers`, `issues`, `license`, `language`, `build` |
705
+ | `pypi` | PyPI + pypistats.org | `package` | `version`, `license`, `python_requires`, `downloads` |
706
+ | `npm` | npm registry | `package` | `version`, `license`, `downloads` |
707
+ | `hf` / `huggingface` | HuggingFace Hub | `org/model` | `downloads`, `likes`, `tags`, `pipeline_tag`, `library_name` |
708
+ | `docker` | Docker Hub | `namespace/repo` | `pull_count`, `star_count`, `last_updated` |
709
+ | `arxiv` | arXiv API | `id` (e.g. `2310.06825`) | `title`, `authors`, `published`, `categories`, `summary` |
710
+ | `text` | literal | &mdash; | renders the payload as displayed text |
711
+ | `kv` | literal | `KEY=VALUE` | static role-tagged value |
712
+
713
+ Live tokens cache for 5&ndash;10 minutes per provider. Failures cache for 60s and surface as the em-dash sentinel (`—`) instead of fabricating zero values. Each provider runs through its own circuit breaker so a single upstream outage cannot trip unrelated fetches.
714
+
715
+ Embedded commas inside `text:` and `kv:` values escape as `\,`.
716
+
717
+ &rarr; [Open an issue](https://github.com/InnerAura/hyperweave/issues/new) to request a connector.
718
+
719
+ ---
720
+
682
721
  ## Contributing
683
722
 
684
723
  HyperWeave is early. If you're interested in building genomes, extending frame types, or just seeing what this looks like in your own README &mdash; [join the Discord](https://discord.gg/wVmcAZPQZ8).