hyperweave 0.2.22__tar.gz → 0.2.24__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.2.22 → hyperweave-0.2.24}/CHANGELOG.md +44 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/PKG-INFO +12 -7
- {hyperweave-0.2.22 → hyperweave-0.2.24}/README.md +11 -6
- hyperweave-0.2.24/assets/examples/telemetry/receipt_codex_large.svg +363 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/scripts/generate_proofset.py +99 -25
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/_version.py +2 -2
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/cli.py +147 -35
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/compose/resolver.py +176 -72
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/compose/treemap.py +177 -18
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/core/schema.py +55 -1
- hyperweave-0.2.24/src/hyperweave/data/genomes/telemetry-codex.json +110 -0
- hyperweave-0.2.24/src/hyperweave/data/telemetry/runtimes/claude-code.yaml +82 -0
- hyperweave-0.2.24/src/hyperweave/data/telemetry/runtimes/codex.yaml +59 -0
- hyperweave-0.2.24/src/hyperweave/telemetry/codex_parser.py +427 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/telemetry/contract.py +70 -13
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/telemetry/models.py +16 -9
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/telemetry/parser.py +7 -3
- hyperweave-0.2.24/src/hyperweave/telemetry/runtimes.py +205 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/receipt.svg.j2 +66 -22
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/rhythm-strip.svg.j2 +28 -2
- hyperweave-0.2.24/tests/fixtures/codex_session.jsonl +170 -0
- hyperweave-0.2.24/tests/fixtures/codex_session_patches.jsonl +745 -0
- hyperweave-0.2.24/tests/test_codex_parser.py +161 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_compose_treemap.py +230 -4
- hyperweave-0.2.24/tests/test_parse_transcript_auto.py +59 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_proofset.py +28 -7
- hyperweave-0.2.24/tests/test_runtime_registries.py +198 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_telemetry.py +10 -13
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_telemetry_integration.py +121 -11
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_telemetry_skin_dispatch.py +16 -3
- hyperweave-0.2.24/tests/test_tool_class_completeness.py +30 -0
- hyperweave-0.2.22/src/hyperweave/data/telemetry/tool-classes.yaml +0 -26
- hyperweave-0.2.22/src/hyperweave/templates/components/treemap.svg.j2 +0 -46
- {hyperweave-0.2.22 → hyperweave-0.2.24}/.dockerignore +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/.github/workflows/ci.yml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/.github/workflows/deploy.yml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/.github/workflows/publish.yml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/.gitignore +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/.pre-commit-config.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/Dockerfile +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/LICENSE +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/buttons/button-liquid.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/cards/card-butterfly.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/cards/card-python.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/cards/card-sunflower.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/cards/card-waves.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/brutalist-emerald/badge_critical.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/brutalist-emerald/badge_passing.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/brutalist-emerald/badge_warning.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/brutalist-emerald/banner.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/brutalist-emerald/icons/discord.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/brutalist-emerald/icons/notion.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/brutalist-emerald/icons/reddit.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/brutalist-emerald/icons/spotify.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/brutalist-emerald/icons/youtube.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/brutalist-emerald/marquee_counter.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/brutalist-emerald/marquee_horizontal.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/brutalist-emerald/marquee_vertical.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/brutalist-emerald/profile-cards/chart_stars_full.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/brutalist-emerald/profile-cards/stats.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/brutalist-emerald/strip.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/chrome-horizon/badge_critical.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/chrome-horizon/badge_passing.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/chrome-horizon/badge_warning.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/chrome-horizon/banner.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/chrome-horizon/icons/bluesky.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/chrome-horizon/icons/github.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/chrome-horizon/icons/instagram.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/chrome-horizon/icons/mastodon.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/chrome-horizon/icons/x.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/chrome-horizon/marquee_counter.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/chrome-horizon/marquee_horizontal.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/chrome-horizon/marquee_vertical.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/chrome-horizon/profile-cards/chart_stars_full.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/chrome-horizon/profile-cards/stats.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/chrome-horizon/strip.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/telemetry/master_card.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/telemetry/receipt.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/telemetry/receipt_claude-code_medium.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/telemetry/receipt_voltage_xlarge.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/telemetry/rhythm_strip.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/examples/telemetry/rhythm_strip_voltage_xlarge.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/footers/inneraura-footer-liquid.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/footers/inneraura-footer-purple.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/footers/inneraura-footer.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/hyperweave-banner.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/icons/cobalt-sapphire-discord.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/icons/cobalt-sapphire-docs.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/icons/cobalt-sapphire-github.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/icons/cobalt-sapphire-instagram.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/icons/cobalt-sapphire-linkedin.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/icons/cobalt-sapphire-tiktok.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/icons/cobalt-sapphire-x.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/icons/cobalt-sapphire-youtube.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/marquees/badge-showcase-triple.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/marquees/genome-marquee-triple.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/marquees/sample-badges.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/mintlify-assets/404.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/mintlify-assets/callout-icons.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/mintlify-assets/divider.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/mintlify-assets/favicon.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/mintlify-assets/hero-banner.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/mintlify-assets/hyperweave-banner-v2.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/mintlify-assets/hyperweave-navbar-logo.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/mintlify-assets/loader.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/mintlify-assets/og-image.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/assets/timelines/hyperweave-roadmap.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/assets/favicon.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/assets/hyperweave-banner.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/assets/hyperweave-navbar-logo.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/assets/og-image.svg +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/explanation/architecture.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/explanation/camo-compatibility.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/explanation/cim-compliance.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/explanation/genome-profile-system.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/explanation/metadata-tiers.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/how-to/add-motion-to-badges.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/how-to/create-session-receipts.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/how-to/set-up-claude-code-hooks.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/how-to/use-live-data-badges.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/introduction.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/mint.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/quickstart.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/reference/cli.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/reference/compose-spec.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/reference/genomes.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/reference/http-api.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/reference/mcp-tools.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/reference/motions.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/reference/telemetry-contract.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/spec/hyperweave-protocol.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/tutorials/build-an-artifact-kit.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/tutorials/compose-your-first-badge.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/docs/tutorials/install-session-telemetry.mdx +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/fly.toml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/hooks/install.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/hooks/session_end.sh +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/justfile +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/pyproject.toml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/scripts/extract_font_metrics.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/scripts/extract_glyphs.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/scripts/probe_live_stats.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/scripts/probe_star_history.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/scripts/stress_test.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/__init__.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/__main__.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/compose/__init__.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/compose/assembler.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/compose/bar_chart.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/compose/context.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/compose/engine.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/compose/lanes.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/compose/resolvers/__init__.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/compose/resolvers/chart.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/compose/resolvers/stats.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/compose/rhythm.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/compose/rhythm_strip.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/compose/validate_paradigms.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/config/__init__.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/config/genome_validator.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/config/loader.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/config/registry.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/config/settings.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/connectors/__init__.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/connectors/arxiv.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/connectors/base.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/connectors/cache.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/connectors/github.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/connectors/rest.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/core/__init__.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/core/cell_layout.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/core/color.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/core/contracts.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/core/enums.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/core/font_metrics.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/core/models.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/core/paradigm.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/core/state.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/core/text.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/core/thresholds.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/css/accessibility.css +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/css/bridge.css +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/css/expression.css +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/css/status.css +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/font-metrics/chakra-petch.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/font-metrics/inter.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/font-metrics/jetbrains-mono.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/font-metrics/orbitron.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/fonts/chakra-petch.b64 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/fonts/chakra-petch.meta.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/fonts/jetbrains-mono.b64 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/fonts/jetbrains-mono.meta.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/fonts/orbitron.b64 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/fonts/orbitron.meta.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/genomes/automata.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/genomes/brutalist.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/genomes/chrome.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/genomes/telemetry-claude-code.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/genomes/telemetry-cream.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/genomes/telemetry-voltage.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/glyphs.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/motions/border/chromatic-pulse.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/motions/border/corner-trace.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/motions/border/dual-orbit.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/motions/border/entanglement.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/motions/border/rimrun.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/motions/static.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/paradigms/brutalist.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/paradigms/cellular.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/paradigms/chrome.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/paradigms/default.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/policies/normal.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/policies/permissive.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/policies/ungoverned.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/profiles/brutalist.contract.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/profiles/brutalist.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/profiles/chrome.contract.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/profiles/chrome.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/specimens.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/telemetry/model-pricing.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/telemetry/stage-config.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/telemetry/stage-labels.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/telemetry/tool-colors.yaml +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/terminals/arrow.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/terminals/aurora.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/terminals/beacon.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/terminals/bracket3d.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/terminals/chevron.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/terminals/crosshair.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/terminals/diamond.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/terminals/rocket.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/terminals/rules/bar.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/terminals/rules/dashed.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/terminals/rules/five-wave.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/terminals/rules/spectral.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/terminals/rules/straight.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/terminals/rules/wave.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/data/terminals/stijl.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/kit.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/mcp/__init__.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/mcp/__main__.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/mcp/server.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/py.typed +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/render/__init__.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/render/chart_engine.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/render/fonts.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/render/glyphs.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/render/motion.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/render/templates.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/serve/__init__.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/serve/app.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/serve/data_tokens.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/telemetry/__init__.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/telemetry/capture.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/telemetry/corrections.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/telemetry/cost.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/telemetry/stages.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/chart-area.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/chart-axes.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/chart-empty-state.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/chart-gridlines.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/chart-markers/circle.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/chart-markers/diamond.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/chart-markers/endpoint-diamond.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/chart-markers/endpoint-rect.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/chart-markers/rect.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/chart-milestone.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/chart-polyline.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/filter.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/glyph-inline.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/glyph.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/gradient.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/metadata.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/metric.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/phase-segment.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/rule.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/status.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/components/terminal.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/document.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/error-badge.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/badge/brutalist-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/badge/brutalist-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/badge/cellular-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/badge/cellular-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/badge/chrome-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/badge/chrome-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/badge/default-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/badge/default-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/badge.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/catalog.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/chart/brutalist-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/chart/brutalist-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/chart/cellular-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/chart/cellular-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/chart/chrome-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/chart/chrome-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/chart.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/divider/brutalist-seam.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/divider/chrome-band.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/divider.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/icon/brutalist-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/icon/brutalist-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/icon/cellular-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/icon/cellular-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/icon/chrome-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/icon/chrome-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/icon/default-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/icon/default-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/icon.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/marquee-horizontal/brutalist-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/marquee-horizontal/brutalist-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/marquee-horizontal/brutalist-overlay.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/marquee-horizontal/cellular-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/marquee-horizontal/cellular-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/marquee-horizontal/cellular-overlay.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/marquee-horizontal/chrome-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/marquee-horizontal/chrome-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/marquee-horizontal/chrome-overlay.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/marquee-horizontal/default-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/marquee-horizontal/default-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/marquee-horizontal.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/master-card.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/stats/brutalist-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/stats/brutalist-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/stats/cellular-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/stats/cellular-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/stats/chrome-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/stats/chrome-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/stats.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/strip/brutalist-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/strip/brutalist-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/strip/brutalist-status.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/strip/cellular-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/strip/cellular-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/strip/cellular-status.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/strip/chrome-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/strip/chrome-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/strip/chrome-status.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/strip/default-content.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/strip/default-defs.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/strip/default-status.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/frames/strip.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/motions/border/chromatic-pulse.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/motions/border/corner-trace.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/motions/border/dual-orbit.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/motions/border/entanglement.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/motions/border/rimrun.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/partials/provider-glyphs.svg.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/src/hyperweave/templates/partials/state-signal-cascade.j2 +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/__init__.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/conftest.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/fixtures/github_contributions/synthetic.html +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/fixtures/session.json +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/fixtures/session.jsonl +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/helpers.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_assembler.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_badge_cellular.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_chart_engine.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_chart_frame.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_compose_bar_chart.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_compose_rhythm_strip.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_compose_variant_field.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_connectors.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_core.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_data_tokens.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_divider_cellular.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_divider_genome_specific.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_font_metrics_chakra.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_genome_automata.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_github_scrape.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_kit.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_marquee_v0_2_16.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_mcp.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_paradigm_cellular.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_paradigm_dispatch.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_paradigm_extensibility.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_receipt_token_compliance.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_render.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_resolver_rhythm.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_serve.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_serve_live_state.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_slot_metric_state.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_state_inference.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_stats_card.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_strip_cellular.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_strip_status_toggle.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_telemetry_contract_per_stage.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/tests/test_variant_default_resolution.py +0 -0
- {hyperweave-0.2.22 → hyperweave-0.2.24}/uv.lock +0 -0
|
@@ -5,6 +5,50 @@ 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.2.24] - 2026-05-07
|
|
9
|
+
|
|
10
|
+
Receipts no longer clip past the right edge of the card when one tool dominates the session. Cleanup pass removes an unused template, an unused styling table, and two silent default-position fallbacks in the receipt template.
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **Token map row could overflow the receipt's right edge** — sessions where a single tool used most of the tokens (for example 95% by one tool, the rest split between two others) made the smallest tool's cell extend past the card's right edge, hiding part of its label. The token map now shrinks cells proportionally when the row would otherwise overflow, with a minimum width that keeps every cell visible as a readable colored block.
|
|
15
|
+
|
|
16
|
+
### Removed
|
|
17
|
+
|
|
18
|
+
- **Unused template `templates/components/treemap.svg.j2`** — orphan from before v0.2.21 with no remaining callers in the rendering pipeline.
|
|
19
|
+
- **Unused styling table in `compose/resolver.py`** — values had drifted from the live source in `treemap.py` and no template read it.
|
|
20
|
+
- **Silent default-position fallbacks for the provider and model labels** — these positions are always computed from the actual rendered text width; missing values now raise a clear template error instead of silently rendering at the legacy hardcoded position.
|
|
21
|
+
|
|
22
|
+
### Notes
|
|
23
|
+
|
|
24
|
+
- 914 tests (was 910); 4 new tests cover token-map cell widths under heavy and balanced tool distributions plus the row of small tool cells fitting within the card.
|
|
25
|
+
- The row of small tool cells was already safe by construction (8 cells * 90px + 7 gaps * 4px = 748 <= 752); a defensive test now locks that contract.
|
|
26
|
+
- ruff + format + mypy --strict green.
|
|
27
|
+
|
|
28
|
+
## [0.2.23] - 2026-05-06
|
|
29
|
+
|
|
30
|
+
Multi-runtime tool registry replaces v0.2.22's single empirical `tool-classes.yaml`. Codex receipts ship as the second runtime via spec-driven YAML registries dispatched by JSONL-shape auto-detection.
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
|
|
34
|
+
- **Codex receipts** — new `telemetry-codex` skin renders OpenAI Codex sessions on an atmospheric gradient substrate. `codex_parser.py` handles three tool-call shapes: `function_call`, `custom_tool_call`, `web_search_call`.
|
|
35
|
+
- **Receipt geometry moves to the compose layer** — width-aware positioning via `measure_text` LUTs handles hero label x-offset, treemap detail truncation in narrow cells, and footer path truncation when the receipt id would collide with the right-aligned session date. `atmosphere_stops` + `card_inset` on `GenomeSpec` declare optional gradient backdrops.
|
|
36
|
+
- **Codex translucent borders** — card border `rgba(53,70,255,0.20)` and divider stroke `rgba(67,87,246,0.14)` let the atmospheric gradient carry the edge definition.
|
|
37
|
+
- **Per-runtime registries at `data/telemetry/runtimes/{claude-code,codex}.yaml`** — adding a runtime is a YAML drop-in plus parser module; no dispatcher / resolver / classifier edits needed.
|
|
38
|
+
- **`parse_transcript_auto` dispatcher in `telemetry/contract.py`** — sniffs JSONL envelope shape and routes to the matching parser; mutual-exclusion guard prevents a Claude line from sniffing as Codex.
|
|
39
|
+
- **`hyperweave install-hook --runtime codex`** — writes a Stop hook to the Codex hooks config and enables the `codex_hooks` feature flag; per-turn caveat surfaces in CLI help.
|
|
40
|
+
- **Claude Code tool registry completed** — 9 tools previously unmapped (MultiEdit, Agent, ToolSearch, ScheduleWakeup, Cron×3, EnterWorktree, ExitWorktree); MCP tools resolve via `mcp__` prefix pattern.
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- **Three hardcoded runtime registries deleted** from `compose/resolver.py`: `_PROVIDER_BY_RUNTIME`, `_TOOL_CLASS`, and the runtime-string branch in `_resolve_telemetry_genome`. All routes go through `telemetry.runtimes`.
|
|
45
|
+
- **Unknown-tool policy: warn, never silent** — `parser.py` no longer falls through to `ToolClass.EXPLORE` without an audit trail; the warning surfaces tool name + runtime so the YAML can be patched.
|
|
46
|
+
- **`SessionTelemetry.runtime`** is a required field stamped by each parser; `contract._RUNTIME` constant deleted.
|
|
47
|
+
|
|
48
|
+
### Notes
|
|
49
|
+
|
|
50
|
+
- 910 tests (was 866); ruff + format + mypy --strict green.
|
|
51
|
+
|
|
8
52
|
## [0.2.22] - 2026-05-05
|
|
9
53
|
|
|
10
54
|
Adaptive time-axis tick algorithm replaces v0.2.21's hardcoded two-tier threshold; one helper now drives both labels and grid lines so they can never drift. README "Agent Receipts" swaps body copy for a skin table and reorders the receipt examples.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hyperweave
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.24
|
|
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
|
|
@@ -123,14 +123,19 @@ hyperweave install-hook
|
|
|
123
123
|
</p>
|
|
124
124
|
<p align="center"><sub>Same data, different livery — claude-code</sub></p>
|
|
125
125
|
|
|
126
|
+
<p align="center">
|
|
127
|
+
<img src="https://raw.githubusercontent.com/InnerAura/hyperweave/main/assets/examples/telemetry/receipt_codex_large.svg" alt="session receipt — codex agent transcript auto-detected from JSONL shape" width="800"/>
|
|
128
|
+
</p>
|
|
129
|
+
<p align="center"><sub>Codex transcripts auto-detect from the JSONL shape</sub></p>
|
|
130
|
+
|
|
126
131
|
The livery matches the agent that produced the session:
|
|
127
132
|
|
|
128
|
-
| Agent | Livery |
|
|
129
|
-
|
|
130
|
-
| Claude Code | `claude-code` |
|
|
131
|
-
| Codex | `codex` |
|
|
132
|
-
| — | `voltage` |
|
|
133
|
-
| — | `cream` |
|
|
133
|
+
| Agent | Livery |
|
|
134
|
+
|-------|--------|
|
|
135
|
+
| Claude Code | `claude-code` |
|
|
136
|
+
| Codex | `codex` |
|
|
137
|
+
| — | `voltage` |
|
|
138
|
+
| — | `cream` |
|
|
134
139
|
|
|
135
140
|
Auto-detected from the session transcript. Pin a different default with `hyperweave install-hook --genome voltage`.
|
|
136
141
|
|
|
@@ -91,14 +91,19 @@ hyperweave install-hook
|
|
|
91
91
|
</p>
|
|
92
92
|
<p align="center"><sub>Same data, different livery — claude-code</sub></p>
|
|
93
93
|
|
|
94
|
+
<p align="center">
|
|
95
|
+
<img src="https://raw.githubusercontent.com/InnerAura/hyperweave/main/assets/examples/telemetry/receipt_codex_large.svg" alt="session receipt — codex agent transcript auto-detected from JSONL shape" width="800"/>
|
|
96
|
+
</p>
|
|
97
|
+
<p align="center"><sub>Codex transcripts auto-detect from the JSONL shape</sub></p>
|
|
98
|
+
|
|
94
99
|
The livery matches the agent that produced the session:
|
|
95
100
|
|
|
96
|
-
| Agent | Livery |
|
|
97
|
-
|
|
98
|
-
| Claude Code | `claude-code` |
|
|
99
|
-
| Codex | `codex` |
|
|
100
|
-
| — | `voltage` |
|
|
101
|
-
| — | `cream` |
|
|
101
|
+
| Agent | Livery |
|
|
102
|
+
|-------|--------|
|
|
103
|
+
| Claude Code | `claude-code` |
|
|
104
|
+
| Codex | `codex` |
|
|
105
|
+
| — | `voltage` |
|
|
106
|
+
| — | `cream` |
|
|
102
107
|
|
|
103
108
|
Auto-detected from the session transcript. Pin a different default with `hyperweave install-hook --genome voltage`.
|
|
104
109
|
|
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
2
|
+
xmlns:hw="https://hyperweave.app/hw/v1.0"
|
|
3
|
+
role="img"
|
|
4
|
+
aria-labelledby="hw-bef2e733-title hw-bef2e733-desc"
|
|
5
|
+
viewBox="0 0 800 500"
|
|
6
|
+
width="800" height="500"
|
|
7
|
+
shape-rendering="geometricPrecision"
|
|
8
|
+
data-hw-id="bef2e733-3f40-4413-9b05-23fc7d931aa9"
|
|
9
|
+
data-hw-type="receipt"
|
|
10
|
+
data-hw-frame="receipt"
|
|
11
|
+
data-hw-genome="telemetry-codex"
|
|
12
|
+
data-hw-mode="light"
|
|
13
|
+
data-hw-status="active"
|
|
14
|
+
data-hw-profile="brutalist"
|
|
15
|
+
data-hw-motion="static"
|
|
16
|
+
data-hw-generation="1"
|
|
17
|
+
data-hw-contract="bef2e733-3f40-4413-9b05-23fc7d931aa9"
|
|
18
|
+
data-hw-size="default"
|
|
19
|
+
data-hw-fonts="self-contained"
|
|
20
|
+
data-hw-regime="normal"
|
|
21
|
+
data-hw-glyph="codex-glyph"
|
|
22
|
+
data-hw-chromatic="telemetry-codex">
|
|
23
|
+
<title id="hw-bef2e733-title">HyperWeave receipt artifact</title>
|
|
24
|
+
<desc id="hw-bef2e733-desc">A receipt artifact, using telemetry-codex genome.</desc>
|
|
25
|
+
<metadata>
|
|
26
|
+
<hw:artifact id="bef2e733-3f40-4413-9b05-23fc7d931aa9" type="receipt" series="core" version="0.2.20"
|
|
27
|
+
xmlns:hw="https://hyperweave.app/hw/v1.0">
|
|
28
|
+
<hw:provenance>
|
|
29
|
+
<hw:generator>HyperWeave Compositor v0.2.20 (InnerAura Labs)</hw:generator>
|
|
30
|
+
<hw:created>2026-05-07T01:50:15.729827+00:00</hw:created>
|
|
31
|
+
<hw:human-directed>true</hw:human-directed>
|
|
32
|
+
</hw:provenance>
|
|
33
|
+
<hw:spec size="800x500" performance="composite-only"
|
|
34
|
+
theme="dark" a11y="WCAG-AA" platform="web"/>
|
|
35
|
+
</hw:artifact>
|
|
36
|
+
<hw:composition xmlns:hw="https://hyperweave.app/hw/v1.0">
|
|
37
|
+
<hw:frame>receipt</hw:frame>
|
|
38
|
+
<hw:genome>telemetry-codex@0.2.20</hw:genome>
|
|
39
|
+
<hw:profile>brutalist</hw:profile>
|
|
40
|
+
<hw:slots>
|
|
41
|
+
</hw:slots>
|
|
42
|
+
<hw:environment platform="web" motion="static" status="active"/>
|
|
43
|
+
</hw:composition>
|
|
44
|
+
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
45
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
46
|
+
<rdf:Description>
|
|
47
|
+
<dc:title>HyperWeave receipt artifact</dc:title>
|
|
48
|
+
<dc:creator>HyperWeave Compositor v0.2.20 (InnerAura Labs)</dc:creator>
|
|
49
|
+
<dc:date>2026-05-07T01:50:15.729827+00:00</dc:date>
|
|
50
|
+
<dc:rights>CC BY 4.0</dc:rights>
|
|
51
|
+
</rdf:Description>
|
|
52
|
+
</rdf:RDF>
|
|
53
|
+
<hw:aesthetic xmlns:hw="https://hyperweave.app/hw/v1.0">
|
|
54
|
+
<hw:chromatic system="telemetry-codex" space="oklch"
|
|
55
|
+
palette="" contrast-ratio="4.5:1"/>
|
|
56
|
+
<hw:motion vocabulary="static" physics="none"
|
|
57
|
+
timing="phi" duration-base="2.618s"
|
|
58
|
+
stagger-regime="contemplative" cim-compliant="true"/>
|
|
59
|
+
<hw:geometry form-language="geometric" corner-radius="5px"
|
|
60
|
+
grid="auto" proportional-system="phi"
|
|
61
|
+
mathematical-basis="golden-ratio" symmetry="bilateral"/>
|
|
62
|
+
<hw:typography stack="" hierarchy="11/18/8"
|
|
63
|
+
weight-range="500-900" metrics-method="lut"/>
|
|
64
|
+
<hw:material surface="genome-native" depth="deep" texture="none"/>
|
|
65
|
+
</hw:aesthetic>
|
|
66
|
+
<hw:reasoning xmlns:hw="https://hyperweave.app/hw/v1.0">
|
|
67
|
+
<hw:intent></hw:intent>
|
|
68
|
+
<hw:approach></hw:approach>
|
|
69
|
+
<hw:tradeoffs></hw:tradeoffs>
|
|
70
|
+
<hw:constraints-applied>self-contained, cim-compliant, wcag-aa</hw:constraints-applied>
|
|
71
|
+
<hw:spatial-notes>800x500 (1.60), left-to-right</hw:spatial-notes>
|
|
72
|
+
</hw:reasoning>
|
|
73
|
+
</metadata>
|
|
74
|
+
<style>/* hw:css-modules: genome,accessibility */
|
|
75
|
+
svg, :root {
|
|
76
|
+
--dna-surface: rgba(255,255,255,0.74);
|
|
77
|
+
--dna-surface-alt: rgba(255,255,255,0.62);
|
|
78
|
+
--dna-surface-deep: rgba(255,255,255,0.85);
|
|
79
|
+
--dna-ink-primary: #080913;
|
|
80
|
+
--dna-ink-muted: #26305D;
|
|
81
|
+
--dna-ink-on-accent: #FFFFFF;
|
|
82
|
+
--dna-ink-bright: #080913;
|
|
83
|
+
--dna-ink-sub: #6B728A;
|
|
84
|
+
--dna-signal: #4357F6;
|
|
85
|
+
--dna-signal-dim: #7f8cff;
|
|
86
|
+
--dna-border: rgba(8,9,19,0.30);
|
|
87
|
+
--dna-border-tint: rgba(53,70,255,0.18);
|
|
88
|
+
--dna-shadow-color: #1a1d4a;
|
|
89
|
+
--dna-shadow-opacity: 0.06;
|
|
90
|
+
--dna-glow: 0px;
|
|
91
|
+
--dna-corner: 4;
|
|
92
|
+
--dna-rhythm-base: 2s;
|
|
93
|
+
--dna-bg: rgba(255,255,255,0.74);
|
|
94
|
+
--dna-bg-alt: rgba(255,255,255,0.62);
|
|
95
|
+
--dna-brand-text: #080913;
|
|
96
|
+
--dna-status-passing-core: #4357F6;
|
|
97
|
+
--dna-status-warning-core: #d99a00;
|
|
98
|
+
--dna-status-failing-core: #ff2b1f;
|
|
99
|
+
--dna-ink-tertiary: #6B728A;
|
|
100
|
+
--dna-ink-ghost: #6B728A;
|
|
101
|
+
--dna-border-div: rgba(53,70,255,0.18);
|
|
102
|
+
--dna-tool-explore: #0b8dcc;
|
|
103
|
+
--dna-tool-execute: #0ea66b;
|
|
104
|
+
--dna-tool-mutate: #df2b7f;
|
|
105
|
+
--dna-tool-coordinate: #d99a00;
|
|
106
|
+
--dna-tool-reflect: #df2b7f;
|
|
107
|
+
--dna-pill-outer-bg: transparent;
|
|
108
|
+
--dna-pill-outer-stroke: transparent;
|
|
109
|
+
--dna-pill-inner-bg: #4458F5;
|
|
110
|
+
--dna-pill-text: #FFFFFF;
|
|
111
|
+
--dna-pill-rule-top: transparent;
|
|
112
|
+
--dna-pill-rule-bottom: transparent;
|
|
113
|
+
--dna-glyph-fill: #FFFFFF;
|
|
114
|
+
--dna-card-border: rgba(53,70,255,0.20);
|
|
115
|
+
--dna-card-border-top: #3546ff;
|
|
116
|
+
--dna-card-inner-glyph: #5867ff;
|
|
117
|
+
--dna-font-display: 'Söhne','OpenAI Sans','Inter',system-ui,sans-serif;
|
|
118
|
+
--dna-font-mono: 'JetBrains Mono','IBM Plex Mono','SF Mono',ui-monospace,monospace;
|
|
119
|
+
--dna-sep: rgba(8,9,19,0.30);
|
|
120
|
+
--dna-status-delta-positive: #22C55E;
|
|
121
|
+
--dna-status-delta-negative: #DC2626;
|
|
122
|
+
}
|
|
123
|
+
.m { font-family: var(--dna-font-mono); }
|
|
124
|
+
.s { font-family: var(--dna-font-display); }
|
|
125
|
+
.ink1 { fill: var(--dna-ink-primary); }
|
|
126
|
+
.ink2 { fill: var(--dna-ink-muted); }
|
|
127
|
+
.ink3 { fill: var(--dna-ink-tertiary); }
|
|
128
|
+
@media (forced-colors: active) { text { fill: CanvasText; } }
|
|
129
|
+
/* === HyperWeave Accessibility Layer ===
|
|
130
|
+
* Non-negotiable media queries for motion, color scheme, and forced colors.
|
|
131
|
+
* Included in EVERY artifact.
|
|
132
|
+
*
|
|
133
|
+
* CAMO NOTE: @media (prefers-color-scheme) and @media (forced-colors: active)
|
|
134
|
+
* are INERT when served through GitHub Camo as img tags. The img element
|
|
135
|
+
* creates an isolated browsing context — the parent document's color scheme
|
|
136
|
+
* and forced-colors mode do not propagate into it. Artifacts will always
|
|
137
|
+
* render in their default (dark) theme on GitHub READMEs.
|
|
138
|
+
*
|
|
139
|
+
* These queries DO activate when the SVG is embedded directly (svg inline,
|
|
140
|
+
* object, or opened as a standalone document). This is a known accepted
|
|
141
|
+
* tradeoff: dark-default through Camo, adaptive in direct embed.
|
|
142
|
+
*/
|
|
143
|
+
|
|
144
|
+
/* ── Reduced Motion ── */
|
|
145
|
+
@media (prefers-reduced-motion: reduce) {
|
|
146
|
+
.hw-logic-bit { animation: none !important; opacity: .8; }
|
|
147
|
+
.hw-scanner { animation: none; opacity: 0; }
|
|
148
|
+
*, *::before, *::after {
|
|
149
|
+
animation-duration: 0.01ms !important;
|
|
150
|
+
animation-iteration-count: 1 !important;
|
|
151
|
+
transition-duration: 0.01ms !important;
|
|
152
|
+
}
|
|
153
|
+
animate, animateTransform, animateMotion, set {
|
|
154
|
+
display: none !important;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* ── Light Mode Override (see CAMO NOTE above — inert through img) ── */
|
|
159
|
+
/* Light mode: genome alleles injected by CSS assembler into per-artifact @media block. */
|
|
160
|
+
|
|
161
|
+
/* ── Forced Colors (Windows High Contrast) ── */
|
|
162
|
+
@media (forced-colors: active) {
|
|
163
|
+
text { fill: CanvasText !important; }
|
|
164
|
+
rect, path, circle, ellipse, polygon, polyline, line {
|
|
165
|
+
stroke: CanvasText;
|
|
166
|
+
}
|
|
167
|
+
.hw-frame-bg { fill: Canvas !important; }
|
|
168
|
+
.hw-accent-bar { fill: Highlight !important; }
|
|
169
|
+
.hw-signal { fill: Highlight !important; }
|
|
170
|
+
.hw-logic-bit { fill: Highlight !important; }
|
|
171
|
+
}
|
|
172
|
+
</style>
|
|
173
|
+
<defs>
|
|
174
|
+
|
|
175
|
+
<symbol id="claude-glyph" viewBox="0 0 24 24" overflow="visible">
|
|
176
|
+
<path d="M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z" fill="var(--dna-glyph-fill)" fill-rule="nonzero"/>
|
|
177
|
+
</symbol>
|
|
178
|
+
|
|
179
|
+
<symbol id="codex-glyph" viewBox="0 0 24 24" overflow="visible">
|
|
180
|
+
<path d="M19.503 0H4.496A4.496 4.496 0 000 4.496v15.007A4.496 4.496 0 004.496 24h15.007A4.496 4.496 0 0024 19.503V4.496A4.496 4.496 0 0019.503 0z" fill="var(--dna-glyph-fill)"/>
|
|
181
|
+
<path d="M9.064 3.344a4.578 4.578 0 012.285-.312c1 .115 1.891.54 2.673 1.275.01.01.024.017.037.021a.09.09 0 00.043 0 4.55 4.55 0 013.046.275l.047.022.116.057a4.581 4.581 0 012.188 2.399c.209.51.313 1.041.315 1.595a4.24 4.24 0 01-.134 1.223.123.123 0 00.03.115c.594.607.988 1.33 1.183 2.17.289 1.425-.007 2.71-.887 3.854l-.136.166a4.548 4.548 0 01-2.201 1.388.123.123 0 00-.081.076c-.191.551-.383 1.023-.74 1.494-.9 1.187-2.222 1.846-3.711 1.838-1.187-.006-2.239-.44-3.157-1.302a.107.107 0 00-.105-.024c-.388.125-.78.143-1.204.138a4.441 4.441 0 01-1.945-.466 4.544 4.544 0 01-1.61-1.335c-.152-.202-.303-.392-.414-.617a5.81 5.81 0 01-.37-.961 4.582 4.582 0 01-.014-2.298.124.124 0 00.006-.056.085.085 0 00-.027-.048 4.467 4.467 0 01-1.034-1.651 3.896 3.896 0 01-.251-1.192 5.189 5.189 0 01.141-1.6c.337-1.112.982-1.985 1.933-2.618.212-.141.413-.251.601-.33.215-.089.43-.164.646-.227a.098.098 0 00.065-.066 4.51 4.51 0 01.829-1.615 4.535 4.535 0 011.837-1.388zm3.482 10.565a.637.637 0 000 1.272h3.636a.637.637 0 100-1.272h-3.636zM8.462 9.23a.637.637 0 00-1.106.631l1.272 2.224-1.266 2.136a.636.636 0 101.095.649l1.454-2.455a.636.636 0 00.005-.64L8.462 9.23z" fill="var(--dna-card-inner-glyph)"/>
|
|
182
|
+
</symbol>
|
|
183
|
+
<clipPath id="receipt-card-shape">
|
|
184
|
+
<rect width="800" height="500" rx="5.5" ry="5.5"/>
|
|
185
|
+
</clipPath>
|
|
186
|
+
<linearGradient id="receipt-atmosphere" x1="0" y1="0" x2="1" y2="1">
|
|
187
|
+
<stop offset="0%" stop-color="#8FAEFF"/>
|
|
188
|
+
<stop offset="22%" stop-color="#C9D8FF"/>
|
|
189
|
+
<stop offset="48%" stop-color="#E9EDFF"/>
|
|
190
|
+
<stop offset="74%" stop-color="#B9B4FF"/>
|
|
191
|
+
<stop offset="100%" stop-color="#6674F5"/>
|
|
192
|
+
</linearGradient>
|
|
193
|
+
<radialGradient id="receipt-bloom-cool" cx="14%" cy="16%" r="78%">
|
|
194
|
+
<stop offset="0%" stop-color="#D8E4FF" stop-opacity="0.92"/>
|
|
195
|
+
<stop offset="48%" stop-color="#9DBDFF" stop-opacity="0.34"/>
|
|
196
|
+
<stop offset="100%" stop-color="#9DBDFF" stop-opacity="0"/>
|
|
197
|
+
</radialGradient>
|
|
198
|
+
<radialGradient id="receipt-bloom-violet" cx="86%" cy="20%" r="62%">
|
|
199
|
+
<stop offset="0%" stop-color="#DCD0FF" stop-opacity="0.72"/>
|
|
200
|
+
<stop offset="52%" stop-color="#9C91FF" stop-opacity="0.26"/>
|
|
201
|
+
<stop offset="100%" stop-color="#9C91FF" stop-opacity="0"/>
|
|
202
|
+
</radialGradient>
|
|
203
|
+
<linearGradient id="receipt-card-top-highlight" x1="0" y1="0" x2="0" y2="1">
|
|
204
|
+
<stop offset="0%" stop-color="#FFFFFF" stop-opacity="0.35"/>
|
|
205
|
+
<stop offset="100%" stop-color="#FFFFFF" stop-opacity="0"/>
|
|
206
|
+
</linearGradient>
|
|
207
|
+
</defs>
|
|
208
|
+
<rect width="800" height="500" rx="5.5" ry="5.5" fill="url(#receipt-atmosphere)"/>
|
|
209
|
+
<rect width="800" height="500" rx="5.5" ry="5.5" fill="url(#receipt-bloom-cool)"/>
|
|
210
|
+
<rect width="800" height="500" rx="5.5" ry="5.5" fill="url(#receipt-bloom-violet)"/>
|
|
211
|
+
<rect x="6" y="6" width="788" height="488" rx="3" ry="3" fill="var(--dna-surface)"/>
|
|
212
|
+
<rect x="6" y="6" width="788" height="32" rx="3" ry="3" fill="url(#receipt-card-top-highlight)" pointer-events="none"/>
|
|
213
|
+
|
|
214
|
+
<use href="#codex-glyph" x="24" y="13" width="18" height="18"/>
|
|
215
|
+
<text x="50" y="27" class="s ink1" font-size="14" font-weight="700">Codex</text>
|
|
216
|
+
<text x="101" y="27" class="m ink2" font-size="11" letter-spacing="0.04em">· gpt-5.4</text>
|
|
217
|
+
<g transform="translate(673, 11)" data-hw-zone="phase-pill">
|
|
218
|
+
<rect width="103" height="22" rx="0" fill="var(--dna-pill-outer-bg)"/>
|
|
219
|
+
<rect width="103" height="22" rx="0" fill="none" stroke="var(--dna-pill-outer-stroke)" stroke-width="0.75"/>
|
|
220
|
+
<rect class="anchor-live" x="2" y="2" width="99" height="18" rx="0" fill="var(--dna-pill-inner-bg)"/>
|
|
221
|
+
<rect x="2" y="2" width="99" height="1" fill="var(--dna-pill-rule-top)"/>
|
|
222
|
+
<rect x="2" y="19" width="99" height="1" fill="var(--dna-pill-rule-bottom)"/>
|
|
223
|
+
<text class="m" x="51" y="14" text-anchor="middle" font-size="9" font-weight="800" letter-spacing="0.28em" fill="var(--dna-pill-text)">VALIDATION</text>
|
|
224
|
+
</g>
|
|
225
|
+
<text x="24" y="66" class="s ink1" font-size="26" font-weight="800" letter-spacing="-0.02em"><tspan>11.5M tokens billed · </tspan><tspan fill="var(--dna-signal)">$16.18</tspan></text>
|
|
226
|
+
<text x="24" y="82" class="m ink3" font-size="10" letter-spacing="0.04em">127m · 192 calls · 11 stages</text>
|
|
227
|
+
<g data-hw-zone="hero-right">
|
|
228
|
+
<text x="776" y="56" class="m ink2" font-size="10" text-anchor="end" letter-spacing="0.02em"
|
|
229
|
+
>1.4M in / 162.0K out</text>
|
|
230
|
+
<text x="776" y="70" class="m ink2" font-size="10" text-anchor="end" letter-spacing="0.02em"
|
|
231
|
+
>9.9M cached / 0 written</text>
|
|
232
|
+
<text x="776" y="84" class="m ink2" font-size="10" text-anchor="end" letter-spacing="0.02em"
|
|
233
|
+
>1 user turn</text>
|
|
234
|
+
</g>
|
|
235
|
+
<line x1="24" y1="96" x2="776" y2="96" stroke="var(--dna-border)" stroke-width="1"/>
|
|
236
|
+
|
|
237
|
+
<g transform="translate(24, 104)" data-hw-zone="treemap">
|
|
238
|
+
<text class="m ink3" font-size="7" font-weight="700" letter-spacing="0.22em" y="12">TOKEN MAP</text>
|
|
239
|
+
<rect x="96" y="6" width="2" height="8" fill="var(--dna-tool-coordinate)"/>
|
|
240
|
+
<text class="m ink3" x="102" y="13" font-size="9">coordinate</text>
|
|
241
|
+
<rect x="170" y="6" width="2" height="8" fill="var(--dna-tool-execute)"/>
|
|
242
|
+
<text class="m ink3" x="176" y="13" font-size="9">execute</text>
|
|
243
|
+
<rect x="232" y="6" width="2" height="8" fill="var(--dna-tool-explore)"/>
|
|
244
|
+
<text class="m ink3" x="238" y="13" font-size="9">explore</text>
|
|
245
|
+
<rect x="292" y="6" width="2" height="8" fill="var(--dna-tool-mutate)"/>
|
|
246
|
+
<text class="m ink3" x="298" y="13" font-size="9">mutate</text>
|
|
247
|
+
<text class="m ink3" x="752" y="13" font-size="9" text-anchor="end"><tspan fill="var(--dna-status-failing-core)" opacity="0.85" font-weight="700">✗N</tspan><tspan dx="3">= failed tool calls</tspan></text>
|
|
248
|
+
|
|
249
|
+
<g transform="translate(0, 22)" data-hw-tier="1" data-hw-tool="exec_command">
|
|
250
|
+
<rect width="752" height="88" fill="var(--dna-surface-deep)"/>
|
|
251
|
+
<rect width="4" height="88.0" fill="var(--dna-tool-execute)" opacity="0.85"/>
|
|
252
|
+
<rect width="752" height="88" fill="none" stroke="var(--dna-border)" stroke-width="0.5"/>
|
|
253
|
+
<text class="m ink1" font-size="13.0" font-weight="600" x="14" y="22">exec_command</text>
|
|
254
|
+
<text class="s" font-size="38.0" font-weight="800" fill="var(--dna-tool-execute)" x="14" y="66" letter-spacing="-0.02em">66%</text>
|
|
255
|
+
<text class="m ink3" font-size="10.0" x="14" y="80">1.1M · 127 calls</text>
|
|
256
|
+
</g>
|
|
257
|
+
<g transform="translate(0, 118)" data-hw-tier="2" data-hw-tool="view_image">
|
|
258
|
+
<rect width="307" height="32" fill="var(--dna-surface-deep)"/>
|
|
259
|
+
<rect width="3" height="32.0" fill="var(--dna-tool-explore)" opacity="0.85"/>
|
|
260
|
+
<rect width="307" height="32" fill="none" stroke="var(--dna-border)" stroke-width="0.5"/>
|
|
261
|
+
<text class="m ink1" font-size="9.5" font-weight="600" x="10" y="13">view_image</text>
|
|
262
|
+
<text class="m ink3" font-size="8.0" x="10" y="26">215.8K · 26 calls</text>
|
|
263
|
+
</g>
|
|
264
|
+
<g transform="translate(311, 118)" data-hw-tier="2" data-hw-tool="write_stdin">
|
|
265
|
+
<rect width="271" height="32" fill="var(--dna-surface-deep)"/>
|
|
266
|
+
<rect width="3" height="32.0" fill="var(--dna-tool-execute)" opacity="0.85"/>
|
|
267
|
+
<rect width="271" height="32" fill="none" stroke="var(--dna-border)" stroke-width="0.5"/>
|
|
268
|
+
<text class="m ink1" font-size="9.5" font-weight="600" x="10" y="13">write_stdin</text>
|
|
269
|
+
<text class="m ink3" font-size="8.0" x="10" y="26">190.9K · 23 calls</text>
|
|
270
|
+
</g>
|
|
271
|
+
<g transform="translate(586, 118)" data-hw-tier="2" data-hw-tool="apply_patch">
|
|
272
|
+
<rect width="165" height="32" fill="var(--dna-surface-deep)"/>
|
|
273
|
+
<rect width="3" height="32.0" fill="var(--dna-tool-mutate)" opacity="0.85"/>
|
|
274
|
+
<rect width="165" height="32" fill="none" stroke="var(--dna-border)" stroke-width="0.5"/>
|
|
275
|
+
<text class="m ink1" font-size="9.5" font-weight="600" x="10" y="13">apply_patch</text>
|
|
276
|
+
<text class="m ink3" font-size="8.0" x="10" y="26">116.2K · 14 calls</text>
|
|
277
|
+
</g>
|
|
278
|
+
<g transform="translate(0, 154)" data-hw-tier="3" data-hw-tool="update_plan">
|
|
279
|
+
<rect width="90" height="24" fill="var(--dna-surface-deep)"/>
|
|
280
|
+
<rect width="3" height="24.0" fill="var(--dna-tool-coordinate)" opacity="0.85"/>
|
|
281
|
+
<rect width="90" height="24" fill="none" stroke="var(--dna-border)" stroke-width="0.5"/>
|
|
282
|
+
<text class="m ink1" font-size="9.0" font-weight="600" x="10" y="12">update_plan</text>
|
|
283
|
+
<text class="m ink3" font-size="8.0" x="10" y="22">2 calls</text>
|
|
284
|
+
</g>
|
|
285
|
+
</g>
|
|
286
|
+
<line x1="24" y1="290" x2="776" y2="290" stroke="var(--dna-border)" stroke-width="1"/>
|
|
287
|
+
|
|
288
|
+
<g transform="translate(24, 306)" data-hw-zone="rhythm">
|
|
289
|
+
<text class="m ink3" font-size="7" font-weight="700" letter-spacing="0.22em">SESSION RHYTHM · 11 STAGES · HEIGHT ≈ TOKENS</text>
|
|
290
|
+
<text class="m ink3" x="752" y="0" font-size="7.5" text-anchor="end" letter-spacing="0.18em">12M · PEAK 3.7M</text>
|
|
291
|
+
|
|
292
|
+
<text class="m ink3" x="0" y="20" font-size="8">0m</text>
|
|
293
|
+
<text class="m ink3" x="58" y="20" font-size="8" text-anchor="middle">10m</text>
|
|
294
|
+
<text class="m ink3" x="117" y="20" font-size="8" text-anchor="middle">20m</text>
|
|
295
|
+
<text class="m ink3" x="176" y="20" font-size="8" text-anchor="middle">30m</text>
|
|
296
|
+
<text class="m ink3" x="235" y="20" font-size="8" text-anchor="middle">40m</text>
|
|
297
|
+
<text class="m ink3" x="294" y="20" font-size="8" text-anchor="middle">50m</text>
|
|
298
|
+
<text class="m ink3" x="353" y="20" font-size="8" text-anchor="middle">60m</text>
|
|
299
|
+
<text class="m ink3" x="411" y="20" font-size="8" text-anchor="middle">70m</text>
|
|
300
|
+
<text class="m ink3" x="470" y="20" font-size="8" text-anchor="middle">80m</text>
|
|
301
|
+
<text class="m ink3" x="529" y="20" font-size="8" text-anchor="middle">90m</text>
|
|
302
|
+
<text class="m ink3" x="588" y="20" font-size="8" text-anchor="middle">100m</text>
|
|
303
|
+
<text class="m ink3" x="647" y="20" font-size="8" text-anchor="middle">110m</text>
|
|
304
|
+
<text class="m ink3" x="752" y="20" font-size="8" text-anchor="end">128m</text>
|
|
305
|
+
|
|
306
|
+
<line x1="58" y1="30" x2="58" y2="108" stroke="var(--dna-border-tint)" stroke-width="0.5" opacity="0.55"/>
|
|
307
|
+
<line x1="117" y1="30" x2="117" y2="108" stroke="var(--dna-border-tint)" stroke-width="0.5" opacity="0.55"/>
|
|
308
|
+
<line x1="176" y1="30" x2="176" y2="108" stroke="var(--dna-border-tint)" stroke-width="0.5" opacity="0.55"/>
|
|
309
|
+
<line x1="235" y1="30" x2="235" y2="108" stroke="var(--dna-border-tint)" stroke-width="0.5" opacity="0.55"/>
|
|
310
|
+
<line x1="294" y1="30" x2="294" y2="108" stroke="var(--dna-border-tint)" stroke-width="0.5" opacity="0.55"/>
|
|
311
|
+
<line x1="353" y1="30" x2="353" y2="108" stroke="var(--dna-border-tint)" stroke-width="0.5" opacity="0.55"/>
|
|
312
|
+
<line x1="411" y1="30" x2="411" y2="108" stroke="var(--dna-border-tint)" stroke-width="0.5" opacity="0.55"/>
|
|
313
|
+
<line x1="470" y1="30" x2="470" y2="108" stroke="var(--dna-border-tint)" stroke-width="0.5" opacity="0.55"/>
|
|
314
|
+
<line x1="529" y1="30" x2="529" y2="108" stroke="var(--dna-border-tint)" stroke-width="0.5" opacity="0.55"/>
|
|
315
|
+
<line x1="588" y1="30" x2="588" y2="108" stroke="var(--dna-border-tint)" stroke-width="0.5" opacity="0.55"/>
|
|
316
|
+
<line x1="647" y1="30" x2="647" y2="108" stroke="var(--dna-border-tint)" stroke-width="0.5" opacity="0.55"/>
|
|
317
|
+
<line x1="706" y1="30" x2="706" y2="108" stroke="var(--dna-border-tint)" stroke-width="0.5" opacity="0.55"/>
|
|
318
|
+
|
|
319
|
+
<line x1="0" y1="108" x2="752" y2="108" stroke="var(--dna-border)" stroke-width="1"/>
|
|
320
|
+
|
|
321
|
+
<g data-hw-field="bars">
|
|
322
|
+
<rect x="0" y="88" width="79" height="20" fill="var(--dna-tool-execute)" opacity="0.78" rx="0.3"/>
|
|
323
|
+
<rect x="81" y="94" width="39" height="14" fill="var(--dna-tool-execute)" opacity="0.85" rx="0.3"/>
|
|
324
|
+
<rect x="122" y="103" width="5" height="5" fill="var(--dna-tool-explore)" opacity="0.78" rx="0.3"/>
|
|
325
|
+
<rect x="129" y="103" width="5" height="5" fill="var(--dna-tool-mutate)" opacity="0.78" rx="0.3"/>
|
|
326
|
+
<rect x="136" y="73" width="146" height="35" fill="var(--dna-tool-execute)" opacity="0.85" rx="0.3"/>
|
|
327
|
+
<rect x="284" y="90" width="20" height="18" fill="var(--dna-tool-execute)" opacity="0.78" rx="0.3"/>
|
|
328
|
+
<rect x="306" y="103" width="5" height="5" fill="var(--dna-tool-explore)" opacity="0.78" rx="0.3"/>
|
|
329
|
+
<rect x="313" y="103" width="5" height="5" fill="var(--dna-tool-execute)" opacity="0.78" rx="0.3"/>
|
|
330
|
+
<rect x="320" y="103" width="5" height="5" fill="var(--dna-tool-execute)" opacity="0.85" rx="0.3"/>
|
|
331
|
+
<rect x="327" y="103" width="5" height="5" fill="var(--dna-tool-mutate)" opacity="0.78" rx="0.3"/>
|
|
332
|
+
<rect x="334" y="94" width="412" height="14" fill="var(--dna-tool-execute)" opacity="0.78" rx="0.3"/>
|
|
333
|
+
</g>
|
|
334
|
+
|
|
335
|
+
<rect x="136" y="72" width="146" height="1.5" fill="var(--dna-signal)"/>
|
|
336
|
+
|
|
337
|
+
<g data-hw-field="errors">
|
|
338
|
+
</g>
|
|
339
|
+
|
|
340
|
+
<g transform="translate(0, 124)" data-hw-zone="legend">
|
|
341
|
+
<rect x="0" y="0" width="6" height="6" fill="var(--dna-tool-coordinate)"/>
|
|
342
|
+
<text class="m ink3" x="10" y="6" font-size="8.5">coordinate</text>
|
|
343
|
+
<rect x="82" y="0" width="6" height="6" fill="var(--dna-tool-execute)"/>
|
|
344
|
+
<text class="m ink3" x="92" y="6" font-size="8.5">execute</text>
|
|
345
|
+
<rect x="152" y="0" width="6" height="6" fill="var(--dna-tool-explore)"/>
|
|
346
|
+
<text class="m ink3" x="162" y="6" font-size="8.5">explore</text>
|
|
347
|
+
<rect x="220" y="0" width="6" height="6" fill="var(--dna-tool-mutate)"/>
|
|
348
|
+
<text class="m ink3" x="230" y="6" font-size="8.5">mutate</text>
|
|
349
|
+
<rect x="290" y="0" width="2" height="6" fill="var(--dna-status-failing-core)"/>
|
|
350
|
+
<text class="m ink3" x="296" y="6" font-size="8.5">error tick</text>
|
|
351
|
+
<text class="m" x="752" y="6" font-size="9" font-weight="700" fill="var(--dna-signal)" text-anchor="end" letter-spacing="0.14em">VALIDATION · 32%</text>
|
|
352
|
+
</g>
|
|
353
|
+
</g>
|
|
354
|
+
|
|
355
|
+
<line x1="24" y1="452" x2="776" y2="452" stroke="var(--dna-border)" stroke-width="0.5"/>
|
|
356
|
+
<text x="24" y="470" class="m ink3" font-size="9" letter-spacing="0.04em">aura-research · .hyperweave/receipts/019ddedf-318a-7192-b29b-c0eab28e2308.svg</text>
|
|
357
|
+
<text x="776" y="470" class="m ink3" font-size="9" text-anchor="end" letter-spacing="0.04em">session 019ddedf · 2026-04-30 14:53</text>
|
|
358
|
+
<text x="24" y="487" class="m ink2" font-size="9" letter-spacing="0.04em">1 user turn</text>
|
|
359
|
+
<text x="776" y="487" class="m ink2" font-size="9" text-anchor="end" letter-spacing="0.04em">hyperweave.app</text>
|
|
360
|
+
|
|
361
|
+
<rect x="0" y="0" width="800" height="2" fill="var(--dna-card-border-top)" fill-opacity="0.85" clip-path="url(#receipt-card-shape)"/>
|
|
362
|
+
<rect x="0.5" y="0.5" width="799" height="499" rx="5.5" ry="5.5" fill="none" stroke="var(--dna-card-border)" stroke-width="1"/>
|
|
363
|
+
</svg>
|