hyperweave 0.3.7__tar.gz → 0.3.8__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.
- {hyperweave-0.3.7 → hyperweave-0.3.8}/CHANGELOG.md +14 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/PKG-INFO +1 -1
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/_version.py +2 -2
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/serve/app.py +37 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_serve.py +48 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/.dockerignore +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/.github/workflows/ci.yml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/.github/workflows/deploy.yml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/.github/workflows/publish.yml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/.gitignore +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/.pre-commit-config.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/Dockerfile +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/LICENSE +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/README.md +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/buttons/button-liquid.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/cards/card-butterfly.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/cards/card-python.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/cards/card-sunflower.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/cards/card-waves.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/badge_critical.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/badge_passing.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/badge_warning.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/banner.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/icons/discord.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/icons/notion.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/icons/reddit.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/icons/spotify.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/icons/youtube.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/marquee_counter.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/marquee_horizontal.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/marquee_vertical.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/profile-cards/chart_stars_full.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/profile-cards/stats.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/strip.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/chrome-horizon/badge_critical.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/chrome-horizon/badge_passing.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/chrome-horizon/badge_warning.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/chrome-horizon/banner.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/chrome-horizon/icons/bluesky.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/chrome-horizon/icons/github.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/chrome-horizon/icons/instagram.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/chrome-horizon/icons/mastodon.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/chrome-horizon/icons/x.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/chrome-horizon/marquee_counter.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/chrome-horizon/marquee_horizontal.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/chrome-horizon/marquee_vertical.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/chrome-horizon/profile-cards/chart_stars_full.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/chrome-horizon/profile-cards/stats.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/chrome-horizon/strip.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/telemetry/master_card.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/telemetry/receipt.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/telemetry/receipt_claude-code_medium.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/telemetry/receipt_codex_large.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/telemetry/receipt_voltage_xlarge.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/telemetry/rhythm_strip.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/telemetry/rhythm_strip_voltage_xlarge.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/footers/inneraura-footer-liquid.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/footers/inneraura-footer-purple.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/footers/inneraura-footer.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/hyperweave-banner.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/icons/cobalt-sapphire-discord.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/icons/cobalt-sapphire-docs.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/icons/cobalt-sapphire-github.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/icons/cobalt-sapphire-instagram.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/icons/cobalt-sapphire-linkedin.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/icons/cobalt-sapphire-tiktok.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/icons/cobalt-sapphire-x.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/icons/cobalt-sapphire-youtube.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/marquees/badge-showcase-triple.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/marquees/genome-marquee-triple.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/marquees/sample-badges.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/mintlify-assets/404.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/mintlify-assets/callout-icons.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/mintlify-assets/divider.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/mintlify-assets/favicon.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/mintlify-assets/hero-banner.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/mintlify-assets/hyperweave-banner-v2.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/mintlify-assets/hyperweave-navbar-logo.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/mintlify-assets/loader.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/mintlify-assets/og-image.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/assets/timelines/hyperweave-roadmap.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/assets/favicon.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/assets/hyperweave-banner.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/assets/hyperweave-navbar-logo.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/assets/og-image.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/explanation/architecture.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/explanation/camo-compatibility.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/explanation/cim-compliance.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/explanation/genome-profile-system.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/explanation/metadata-tiers.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/how-to/add-motion-to-badges.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/how-to/create-session-receipts.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/how-to/set-up-claude-code-hooks.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/how-to/use-live-data-badges.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/introduction.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/mint.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/quickstart.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/reference/cli.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/reference/compose-spec.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/reference/genomes.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/reference/http-api.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/reference/mcp-tools.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/reference/motions.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/reference/telemetry-contract.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/spec/hyperweave-protocol.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/tutorials/build-an-artifact-kit.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/tutorials/compose-your-first-badge.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/docs/tutorials/install-session-telemetry.mdx +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/fly.toml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/hooks/install.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/hooks/session_end.sh +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/justfile +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/pyproject.toml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/scripts/extract_font_metrics.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/scripts/extract_glyphs.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/scripts/generate_proofset.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/scripts/probe_live_stats.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/scripts/probe_star_history.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/scripts/stress_test.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/__init__.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/__main__.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/cli.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/__init__.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/assembler.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/bar_chart.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/context.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/engine.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/lanes.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/layout.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/palette.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/reasoning.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/resolver.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/resolvers/__init__.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/resolvers/chart.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/resolvers/stats.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/rhythm.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/rhythm_strip.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/treemap.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/compose/validate_paradigms.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/config/__init__.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/config/genome_validator.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/config/loader.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/config/registry.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/config/settings.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/connectors/__init__.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/connectors/arxiv.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/connectors/base.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/connectors/cache.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/connectors/github.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/connectors/rest.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/core/__init__.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/core/cell_layout.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/core/color.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/core/contracts.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/core/enums.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/core/font_metrics.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/core/models.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/core/paradigm.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/core/schema.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/core/state.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/core/text.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/core/thresholds.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/badge_modes.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/css/accessibility.css +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/css/bridge.css +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/css/expression.css +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/css/status.css +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/font-embedding.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/font-metrics/chakra-petch.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/font-metrics/inter.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/font-metrics/jetbrains-mono.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/font-metrics/orbitron.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/fonts/barlow-condensed-700.b64 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/fonts/barlow-condensed-700.meta.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/fonts/barlow-condensed-900.b64 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/fonts/barlow-condensed-900.meta.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/fonts/chakra-petch.b64 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/fonts/chakra-petch.meta.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/fonts/jetbrains-mono.b64 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/fonts/jetbrains-mono.meta.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/fonts/orbitron.b64 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/fonts/orbitron.meta.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/genomes/automata.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/genomes/brutalist.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/genomes/chrome.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/genomes/telemetry-claude-code.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/genomes/telemetry-codex.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/genomes/telemetry-cream.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/genomes/telemetry-voltage.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/glyphs.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/motions/border/chromatic-pulse.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/motions/border/corner-trace.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/motions/border/dual-orbit.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/motions/border/entanglement.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/motions/border/rimrun.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/motions/static.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/paradigms/brutalist.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/paradigms/cellular.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/paradigms/chrome.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/paradigms/default.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/policies/normal.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/policies/permissive.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/policies/ungoverned.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/profiles/brutalist.contract.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/profiles/brutalist.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/profiles/chrome.contract.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/profiles/chrome.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/reasoning/__init__.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/reasoning/brutalist.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/specimens.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/telemetry/model-pricing.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/telemetry/runtimes/claude-code.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/telemetry/runtimes/codex.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/telemetry/stage-config.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/telemetry/stage-labels.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/telemetry/tool-colors.yaml +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/terminals/arrow.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/terminals/aurora.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/terminals/beacon.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/terminals/bracket3d.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/terminals/chevron.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/terminals/crosshair.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/terminals/diamond.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/terminals/rocket.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/terminals/rules/bar.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/terminals/rules/dashed.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/terminals/rules/five-wave.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/terminals/rules/spectral.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/terminals/rules/straight.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/terminals/rules/wave.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/terminals/stijl.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/kit.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/mcp/__init__.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/mcp/__main__.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/mcp/server.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/py.typed +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/render/__init__.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/render/chart_engine.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/render/fonts.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/render/glyphs.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/render/motion.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/render/templates.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/serve/__init__.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/serve/data_tokens.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/telemetry/__init__.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/telemetry/capture.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/telemetry/codex_parser.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/telemetry/contract.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/telemetry/corrections.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/telemetry/cost.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/telemetry/models.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/telemetry/parser.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/telemetry/receipt_paths.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/telemetry/runtimes.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/telemetry/stages.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/chart-area.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/chart-axes.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/chart-empty-state.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/chart-gridlines.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/chart-markers/circle.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/chart-markers/diamond.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/chart-markers/endpoint-diamond.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/chart-markers/endpoint-rect.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/chart-markers/rect.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/chart-milestone-brutalist.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/chart-milestone.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/chart-polyline.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/filter.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/glyph-inline.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/glyph.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/gradient.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/metadata.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/metric.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/phase-segment.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/rule.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/status.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/components/terminal.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/document.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/error-badge.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/badge/brutalist-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/badge/brutalist-dark-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/badge/brutalist-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/badge/brutalist-light-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/badge/cellular-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/badge/cellular-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/badge/chrome-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/badge/chrome-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/badge/default-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/badge/default-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/badge.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/catalog.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/chart/brutalist-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/chart/brutalist-dark-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/chart/brutalist-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/chart/brutalist-light-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/chart/cellular-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/chart/cellular-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/chart/chrome-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/chart/chrome-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/chart.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/divider/brutalist-seam.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/divider/chrome-band.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/divider.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/icon/brutalist-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/icon/brutalist-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/icon/cellular-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/icon/cellular-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/icon/chrome-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/icon/chrome-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/icon/default-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/icon/default-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/icon.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/marquee-horizontal/brutalist-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/marquee-horizontal/brutalist-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/marquee-horizontal/brutalist-overlay.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/marquee-horizontal/cellular-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/marquee-horizontal/cellular-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/marquee-horizontal/cellular-overlay.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/marquee-horizontal/chrome-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/marquee-horizontal/chrome-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/marquee-horizontal/chrome-overlay.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/marquee-horizontal/default-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/marquee-horizontal/default-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/marquee-horizontal.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/master-card.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/receipt.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/rhythm-strip.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/stats/brutalist-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/stats/brutalist-dark-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/stats/brutalist-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/stats/brutalist-light-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/stats/cellular-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/stats/cellular-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/stats/chrome-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/stats/chrome-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/stats.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/strip/brutalist-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/strip/brutalist-dark-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/strip/brutalist-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/strip/brutalist-light-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/strip/brutalist-status.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/strip/cellular-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/strip/cellular-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/strip/cellular-status.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/strip/chrome-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/strip/chrome-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/strip/chrome-status.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/strip/default-content.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/strip/default-defs.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/strip/default-status.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/frames/strip.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/motions/border/chromatic-pulse.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/motions/border/corner-trace.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/motions/border/dual-orbit.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/motions/border/entanglement.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/motions/border/rimrun.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/partials/provider-glyphs.svg.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/templates/partials/state-signal-cascade.j2 +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/__init__.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/conftest.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/fixtures/codex_session.jsonl +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/fixtures/codex_session_patches.jsonl +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/fixtures/github_contributions/synthetic.html +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/fixtures/session.json +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/fixtures/session.jsonl +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/fixtures/synthetic_session.jsonl +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/helpers.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/snapshots/url_stability/divider_band_chrome_static.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/snapshots/url_stability/icon_github_chrome_static.svg +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_assembler.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_badge_brutalist_dark.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_badge_cellular.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_badge_layout.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_badge_mode.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_chart_engine.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_chart_frame.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_chromatic_coverage_validator.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_chrome_variants.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_codex_parser.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_compose_bar_chart.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_compose_rhythm_strip.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_compose_treemap.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_compose_variant_field.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_connectors.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_core.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_data_tokens.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_divider_cellular.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_divider_genome_specific.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_doctor.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_font_gating.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_font_metrics_chakra.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_font_subsetting.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_genome_automata.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_github_scrape.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_install_hook.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_kit.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_marquee_v0_2_16.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_mcp.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_paradigm_cellular.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_paradigm_dispatch.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_paradigm_extensibility.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_parse_transcript_auto.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_proofset.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_receipt_paths.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_receipt_token_compliance.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_render.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_resolver_rhythm.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_runtime_registries.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_serve_live_state.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_slot_metric_state.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_state_inference.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_stats_brutalist.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_stats_card.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_strip_brutalist_grammar.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_strip_cellular.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_strip_status_toggle.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_telemetry.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_telemetry_contract_per_stage.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_telemetry_integration.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_telemetry_skin_dispatch.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_tool_class_completeness.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_url_stability.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/tests/test_variant_default_resolution.py +0 -0
- {hyperweave-0.3.7 → hyperweave-0.3.8}/uv.lock +0 -0
|
@@ -5,6 +5,20 @@ 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.8] - 2026-05-19
|
|
9
|
+
|
|
10
|
+
Every artifact request now emits one greppable `HW_REQUEST` access-log line to stdout, so Fly.io's log stream reveals which GitHub repos embed HyperWeave SVGs via Camo's referer header. Health and metrics probes stay silent so 30-second checks don't drown the signal.
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Access log middleware** — one `HW_REQUEST` line per non-probe request carries method, path with query string, user-agent, referer, x-forwarded-for, and status. Whitespace inside header values collapses to `_` so each `key=value` token stays grep-addressable.
|
|
15
|
+
- **Silent probe filter** — `/health` and `/metrics` skip the access log; Fly health-check traffic no longer pollutes the stream.
|
|
16
|
+
|
|
17
|
+
### Notes
|
|
18
|
+
|
|
19
|
+
- Logs flow through the `hyperweave.serve.access` named logger at INFO; uvicorn's stdout handler delivers them to Fly's log stream.
|
|
20
|
+
- Request and response bodies are never logged. The referer header is the only embed-attribution signal captured.
|
|
21
|
+
|
|
8
22
|
## [0.3.7] - 2026-05-18
|
|
9
23
|
|
|
10
24
|
Font payloads now embed only the characters each artifact actually renders, and fonts an artifact never displays are no longer embedded at all. Across every text-bearing artifact type — badges, strips, stats cards, star charts, marquees, receipts, and rhythm strips — and across all three genomes, gzip size drops by an average of 59% per artifact.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hyperweave
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.8
|
|
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
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.3.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 3,
|
|
21
|
+
__version__ = version = '0.3.8'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 3, 8)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
import logging
|
|
5
6
|
from contextlib import asynccontextmanager
|
|
6
7
|
from typing import TYPE_CHECKING, Annotated, Any
|
|
7
8
|
|
|
@@ -115,6 +116,42 @@ async def svg_camo_headers(request: Request, call_next): # type: ignore[no-unty
|
|
|
115
116
|
return response
|
|
116
117
|
|
|
117
118
|
|
|
119
|
+
# -- Request observability middleware ---------------------------------------
|
|
120
|
+
# Emits one greppable `HW_REQUEST` line per non-probe request so we can
|
|
121
|
+
# track which GitHub repos embed our SVGs via Camo (referer header) and how
|
|
122
|
+
# often they're viewed. Probe endpoints stay silent to keep Fly health-check
|
|
123
|
+
# noise out of the access log. Bodies are never logged.
|
|
124
|
+
|
|
125
|
+
_ACCESS_LOG = logging.getLogger("hyperweave.serve.access")
|
|
126
|
+
_SILENT_PATHS = frozenset({"/health", "/metrics"})
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
def _scrub(value: str | None) -> str:
|
|
130
|
+
"""Collapse whitespace in header values so each key=value stays a single grep token."""
|
|
131
|
+
if not value:
|
|
132
|
+
return "-"
|
|
133
|
+
return value.replace(" ", "_").replace("\t", "_")
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
@app.middleware("http")
|
|
137
|
+
async def access_log(request: Request, call_next): # type: ignore[no-untyped-def]
|
|
138
|
+
response = await call_next(request)
|
|
139
|
+
if request.url.path in _SILENT_PATHS:
|
|
140
|
+
return response
|
|
141
|
+
path = request.url.path + (f"?{request.url.query}" if request.url.query else "")
|
|
142
|
+
ip = request.headers.get("x-forwarded-for") or (request.client.host if request.client else "-")
|
|
143
|
+
_ACCESS_LOG.info(
|
|
144
|
+
"HW_REQUEST method=%s path=%s ua=%s ref=%s ip=%s status=%d",
|
|
145
|
+
request.method,
|
|
146
|
+
_scrub(path),
|
|
147
|
+
_scrub(request.headers.get("user-agent")),
|
|
148
|
+
_scrub(request.headers.get("referer")),
|
|
149
|
+
_scrub(ip),
|
|
150
|
+
response.status_code,
|
|
151
|
+
)
|
|
152
|
+
return response
|
|
153
|
+
|
|
154
|
+
|
|
118
155
|
# Request / Response models
|
|
119
156
|
|
|
120
157
|
|
|
@@ -8,6 +8,7 @@ rendering, and Camo-hardening middleware.
|
|
|
8
8
|
|
|
9
9
|
from __future__ import annotations
|
|
10
10
|
|
|
11
|
+
import logging
|
|
11
12
|
from typing import Any
|
|
12
13
|
from unittest.mock import AsyncMock, patch
|
|
13
14
|
|
|
@@ -472,6 +473,53 @@ async def test_svg_camo_headers(client: AsyncClient, mock_compose: Any) -> None:
|
|
|
472
473
|
assert resp.headers.get("x-content-type-options") == "nosniff"
|
|
473
474
|
|
|
474
475
|
|
|
476
|
+
# ===========================================================================
|
|
477
|
+
# Access log middleware (v0.3.8)
|
|
478
|
+
# ===========================================================================
|
|
479
|
+
|
|
480
|
+
|
|
481
|
+
async def test_access_log_emits_hw_request(
|
|
482
|
+
client: AsyncClient, mock_compose: Any, caplog: pytest.LogCaptureFixture
|
|
483
|
+
) -> None:
|
|
484
|
+
with caplog.at_level(logging.INFO, logger="hyperweave.serve.access"):
|
|
485
|
+
resp = await client.get(
|
|
486
|
+
"/v1/badge/build/passing/brutalist",
|
|
487
|
+
headers={
|
|
488
|
+
"user-agent": "github-camo/abc123",
|
|
489
|
+
"referer": "https://github.com/Foo/bar",
|
|
490
|
+
"x-forwarded-for": "1.2.3.4",
|
|
491
|
+
},
|
|
492
|
+
)
|
|
493
|
+
assert resp.status_code == 200
|
|
494
|
+
lines = [r.message for r in caplog.records if "HW_REQUEST" in r.message]
|
|
495
|
+
assert lines, f"no HW_REQUEST line; got {[r.message for r in caplog.records]}"
|
|
496
|
+
line = lines[0]
|
|
497
|
+
assert "method=GET" in line
|
|
498
|
+
assert "path=/v1/badge/build/passing/brutalist" in line
|
|
499
|
+
assert "ua=github-camo/abc123" in line
|
|
500
|
+
assert "ref=https://github.com/Foo/bar" in line
|
|
501
|
+
assert "ip=1.2.3.4" in line
|
|
502
|
+
assert "status=200" in line
|
|
503
|
+
|
|
504
|
+
|
|
505
|
+
async def test_access_log_skips_health(client: AsyncClient, caplog: pytest.LogCaptureFixture) -> None:
|
|
506
|
+
with caplog.at_level(logging.INFO, logger="hyperweave.serve.access"):
|
|
507
|
+
await client.get("/health")
|
|
508
|
+
assert not any("HW_REQUEST" in r.message for r in caplog.records)
|
|
509
|
+
|
|
510
|
+
|
|
511
|
+
async def test_access_log_scrubs_whitespace_in_ua(
|
|
512
|
+
client: AsyncClient, mock_compose: Any, caplog: pytest.LogCaptureFixture
|
|
513
|
+
) -> None:
|
|
514
|
+
with caplog.at_level(logging.INFO, logger="hyperweave.serve.access"):
|
|
515
|
+
await client.get(
|
|
516
|
+
"/v1/badge/build/passing/brutalist",
|
|
517
|
+
headers={"user-agent": "Mozilla/5.0 (X11; Linux x86_64)"},
|
|
518
|
+
)
|
|
519
|
+
line = next(r.message for r in caplog.records if "HW_REQUEST" in r.message)
|
|
520
|
+
assert "ua=Mozilla/5.0_(X11;_Linux_x86_64)" in line
|
|
521
|
+
|
|
522
|
+
|
|
475
523
|
# ===========================================================================
|
|
476
524
|
# Kit endpoint
|
|
477
525
|
# ===========================================================================
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/marquee_horizontal.svg
RENAMED
|
File without changes
|
{hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/marquee_vertical.svg
RENAMED
|
File without changes
|
|
File without changes
|
{hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/brutalist-emerald/profile-cards/stats.svg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/chrome-horizon/profile-cards/stats.svg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/telemetry/receipt_claude-code_medium.svg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperweave-0.3.7 → hyperweave-0.3.8}/assets/examples/telemetry/rhythm_strip_voltage_xlarge.svg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/fonts/barlow-condensed-700.meta.json
RENAMED
|
File without changes
|
|
File without changes
|
{hyperweave-0.3.7 → hyperweave-0.3.8}/src/hyperweave/data/fonts/barlow-condensed-900.meta.json
RENAMED
|
File without changes
|