Files
wehub-resource-sync 426e9eeabd
Voice Workbench / headless workbench (mocked backends) (push) Has been cancelled
Voice Workbench / real acoustic lane (nightly, provisioned only) (push) Has been cancelled
ci / test (push) Has been cancelled
ci / lint-and-format (push) Has been cancelled
ci / build (push) Has been cancelled
ci / dev-startup (push) Has been cancelled
gitleaks / gitleaks (push) Has been cancelled
Markdown Links / Relative Markdown Links (push) Has been cancelled
Quality (Extended) / Homepage Build (PR smoke) (push) Has been cancelled
Quality (Extended) / Comment-only diff guard (push) Has been cancelled
Quality (Extended) / Format + Type Safety Ratchet (push) Has been cancelled
Quality (Extended) / Develop Gate (secret scan + UI determinism) (push) Has been cancelled
Quality (Extended) / Develop Gate (lint) (push) Has been cancelled
Chat shell gestures / Chat shell gesture + parity e2e (push) Has been cancelled
Cloud Gateway Discord / Test (push) Has been cancelled
Benchmark Bridge Tests / benchmark (bunx @biomejs/biome check packages/lifeops-bench/src, benchmark-lint) (push) Has been cancelled
Benchmark Bridge Tests / benchmark (bunx vitest run --config packages/lifeops-bench/vitest.config.ts --root packages/lifeops-bench --passWithNoTests, benchmark-tests) (push) Has been cancelled
Build Agent Image / build-and-push (push) Has been cancelled
Dev Smoke / bun run dev onboarding chat (push) Has been cancelled
Dev Smoke / Vite HMR dependency-level smoke (push) Has been cancelled
Electrobun Submodule Guard / electrobun gitlink is fetchable (push) Has been cancelled
Publish @elizaos/example-code / check_npm (push) Has been cancelled
Publish @elizaos/example-code / publish_npm (push) Has been cancelled
Publish @elizaos/plugin-elizacloud / verify_version (push) Has been cancelled
Publish @elizaos/plugin-elizacloud / publish_npm (push) Has been cancelled
Sandbox Live Smoke / Sandbox live smoke (push) Has been cancelled
Snap Build & Test / Build Snap (amd64) (push) Has been cancelled
Snap Build & Test / Build Snap (arm64) (push) Has been cancelled
Test Packaging / elizaos CLI global-install smoke (node + bun) (push) Has been cancelled
Cloud Gateway Webhook / Test (push) Has been cancelled
Cloud Tests / lint-and-types (push) Has been cancelled
Cloud Tests / unit-tests (push) Has been cancelled
Cloud Tests / integration-tests (push) Has been cancelled
Cloud Tests / e2e-tests (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Deploy Apps Worker (Product 2) / Determine environment (push) Has been cancelled
Deploy Apps Worker (Product 2) / Deploy apps worker to apps-control host (${{ needs.determine-env.outputs.environment }}) (push) Has been cancelled
Deploy Eliza Provisioning Worker / Determine environment (push) Has been cancelled
Deploy Eliza Provisioning Worker / Deploy worker to Hetzner host (${{ needs.determine-env.outputs.environment }} @ ${{ needs.determine-env.outputs.deployment_sha }}) (push) Has been cancelled
Dev Smoke / Classify changed paths (push) Has been cancelled
supply-chain / sbom (push) Has been cancelled
supply-chain / vulnerability-scan (push) Has been cancelled
Build, Push & Deploy to Phala Cloud / build-and-push (push) Has been cancelled
Test Packaging / Validate Packaging Configs (push) Has been cancelled
Test Packaging / Build & Test PyPI Package (push) Has been cancelled
Test Packaging / PyPI on Python ${{ matrix.python }} (push) Has been cancelled
Test Packaging / Pack & Test JS Tarballs (push) Has been cancelled
UI Fixture E2E / ui-fixture-e2e (push) Has been cancelled
UI Fixture E2E / fixture-e2e (push) Has been cancelled
UI Story Gate / story-gate (push) Has been cancelled
vault-ci / test (macos-latest) (push) Has been cancelled
vault-ci / test (ubuntu-latest) (push) Has been cancelled
vault-ci / test (windows-latest) (push) Has been cancelled
vault-ci / app-core wiring tests (push) Has been cancelled
verify-patches / verify patches/CHECKSUMS.sha256 (push) Has been cancelled
Voice Benchmark Smoke / voice-emotion fixture smoke (push) Has been cancelled
Voice Benchmark Smoke / voiceagentbench fixture smoke (push) Has been cancelled
Voice Benchmark Smoke / voicebench-quality unit smoke (push) Has been cancelled
Voice Benchmark Smoke / voicebench TypeScript unit (no audio) (push) Has been cancelled
Voice Benchmark Smoke / voice bench smoke summary (push) Has been cancelled
Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Has been cancelled
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Has been cancelled
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Has been cancelled
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Has been cancelled
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:43:05 +08:00

16 KiB
Raw Permalink Blame History

Below is a rescoped, prizeoriented, minimalcoding DETAILED_TECHSPEC for HyperLiquidBench that explicitly maps to the hackathon tracks you shared (Programmable Trading / HIP3 / Builder Codes / Developer Tools), shows how this wins, and reuses as much of the SuiBench pattern as possible so we can ship fast.

Key tactic for 1st place with minimal code: ship a public good (Developer Tools) that other teams immediately use during the hackathon to validate their bots/contracts—and add a tiny Builder Code hook so every run that routes orderflow to Hyperliquid credits your team. Optional “Phase2” stubs show how the same bench extends to Programmable Trading (HyperEVM/CoreWriter) and HIP3 markets without heavy implementation this weekend.


0) Oneliner & Why this wins

HyperLiquidBench is a Rustnative, reproducible benchmark + dataset that scores onvenue operational competence of trading agents: placing/cancelling orders with correct flags, moving balances, managing leverage, and proving effects via live WS streams. It ships as:

  • a CLI runner (executes plans via Hyperliquid Rust SDK + HTTP/WS),
  • a CLI evaluator (uniqueaction coverage score + “needle” pass/fail),
  • a public dataset on Hugging Face, and
  • a Builder Code switch (optional) that tags routed flow for revenue share.

Win story:

  • Developer Tools & Public Goods: usable today by all teams to verify their agents in CI; clear “dont trust, verify” value. (Judges love tools everyone used.)
  • Builder Codes & Monetizable Integrations: one env var credits trade routing—turns the tool into a monetizable integration w/ direct protocol incentives.
  • Programmable Trading (HyperEVM/CoreWriter) & HIP3: we show ready stubs and dataset hooks so the bench naturally expands to these tracks on Monday without big rewrites (strong futureimpact narrative).

We reuse a proven threebox design (generator → runner → evaluator) and the scoring math already demonstrated in SuiBench to move fast and keep the code surface small. See the workflow diagram and scoring slide in your SuiBench deck—we mirror that structure here.


1) Track alignment (explicit)

A. Developer Tools & Public Goods (primary track to win)

  • What we ship: hl-runner + hl-evaluator + dataset + GitHub Action.
  • Why it matters: teams and judges can verify agent correctness (not PnL) before demo; reproducible score + pass/fail needle.
  • Evidence of impact: publish HF dataset + GH Action template; live scoreboard in README; 5minute demo run.

This mirrors your SuiBench flow—declare metrics, run the test, get the score & report; the docs “HighLevel Architecture” and “Coverage Scoring Details” pages translate 1:1 here.

B. Builder Codes & Monetizable Integrations

  • Feature: --builder-code <CODE> env/flag; the runner attaches the code to order posts (where supported) so routed trades credit your builder identity.
  • Deliverable: simple CSV “orders_routed.csv” per run with fee attribution; README “How to add your builder code”.

C. Programmable Trading — HyperEVM & CoreWriter (phase2 stub)

  • We avoid heavy coding now: ship an interface spec + mock CoreWriter harness that records “onchain planner intent” and validates the same coverage rules. Provide one “HelloCoreWriter” example that only reads midprice via precompile and emits a dummy signal (no full strategy).
  • Why judges care: clear pathway to move the same benchmark rules into smartcontract trading logic.

D. HIP3 — BuilderDeployed Perpetual Markets (phase2 ready)

  • Dataset hook: tasks accept {coin:"<NEW/HIP3 market>"} and the runner pulls metadata at runtime, so adding a HIP3 market is zero code (just a new line in the JSONL).

2) What exactly do we evaluate?

Two complementary tracks—identical to your SuiBench coverage vs longcontext philosophy, adapted to Hyperliquid primitives:

  1. Coverage & Composition (FINAL_SCORE) Breadth across distinct, correctly executed venue actions + bonus for composing them into coherent windows.

    • Operation signatures we count (examples):

      • perp.order.{tif}:{reduceOnly}:{trigger} (e.g., ALO:false:none, IOC:true:none)
      • perp.cancel.{scope} (all / ids / last_oid)
      • account.usdClassTransfer.{direction} (toPerp / fromPerp)
      • risk.setLeverage.{coin}
      • spot.transfer.{token} (optional extension)
    • Proof of effect (must observe via WS/HTTP after post):

      • Orders → resting OID or fill on orderUpdates/fills
      • Cancels → OID disappears / nonUserCancel event
      • Transfers/leverage → ledgerUpdates / userState delta
    • Composition bonus within a short batch window (default 200ms): each extra distinct op in the same window adds +0.25.

    • Noop filter + penalties: retries with no effect (e.g., violating min lot/tick) dont score; spam beyond persignature cap may subtract.

    We are copying the FINAL_SCORE = Base + Bonus Penalty approach and the “distinct signature counting per domain + PTB composition bonus” structure from your SuiBench scoring slide.

  2. HiaN (Operation Needle) — Pass/Fail In a long, noisy prompt, find the single actionable instruction + parameters and execute exactly that; evaluator checks effects.

    • Example needle: “Transfer 25 USDC to perp balance, then place a reduceOnly IOC sell on ETH at market.”

    • Pass iff we see the ledger transfer and a correctly flagged order (side/coin/IOC/reduceOnly), with either a fill or valid IOC outcome.

    Exactly the “accuracy under noise / position sensitivity / context durability” rationale you used in SuiBench LC track—just with Hyperliquid actions.


3) Minimalcoding architecture (Rustfirst)

hyperliquid-bench/
├─ crates/
│  ├─ hl-common/        # plan schema, signatures, scoring structs
│  ├─ hl-runner/        # HTTP/WS client + signer + action executor
│  ├─ hl-evaluator/     # coverage scorer + HiaN validator
│  └─ hl-hian/          # (optional) long-context generator (Rust)
├─ dataset/
│  ├─ domains-hl.yaml   # domains, weights, caps, window_ms
│  ├─ tasks/*.jsonl     # coverage scenarios (perps, transfer, cancel)
│  └─ hian/*            # prompt.txt, ground_truth.json, meta.json
└─ .github/workflows/hlbench.yml  # CI template (fail on regression)
  • Runner (hlrunner)

    • Uses Hyperliquid Rust SDK (and keeps a tiny fallback signer if needed).

    • WS: subscribe to orderUpdates, fills, ledgerUpdates; persist isSnapshot + deltas; optional WS post wrapper for actions.

    • Nonces & batching: simple atomic counter + windowed submission (so we get multiop bonus with one run).

    • Artifacts:

      • per_action.jsonl (HTTP/WS acks + resolved action → effect)
      • ws_stream.jsonl (raw stream events)
      • plan.json / plan_raw.txt (LLM or static)
      • run_meta.json (env, time, model)
  • Evaluator (hlevaluator)

    • Coverage: normalize confirmed effects → map to signatures → attribute to domains from domains-hl.yaml → compute Base + Bonus Penalty with persignature caps.
    • HiaN: strict comparison of effects vs ground_truth.json (binary pass/fail + diff report).

This mirrors your SuiBench diagram: generator → runner → evaluator; you already showed judges this model is practical and reproducible.


4) Dataset (Hugging Faceready)

4.1 domains-hl.yaml (example)

version: "0.1.0"
per_tx_window_ms: 200    # composition window
caps: { per_signature: 3 }

domains:
  core.perp:
    weight: 1.0
    allow:
      - type: perp.order.ALO:false:none
      - type: perp.order.GTC:false:none
      - type: perp.order.IOC:true:none
      - type: perp.cancel.*
  core.account:
    weight: 1.0
    allow:
      - type: account.usdClassTransfer.toPerp
      - type: account.usdClassTransfer.fromPerp
  risk.mgmt:
    weight: 1.25
    allow:
      - type: risk.setLeverage.*
  spot.transfer:          # optional extension on Sunday
    weight: 1.25
    allow:
      - type: spot.transfer.USDC

4.2 Coverage tasks (dataset/tasks/*.jsonl)

Each line is a minimal spec the agent can satisfy in many ways.

{
  "id": "hl_perp_basic_01",
  "goal": "Place a post-only bid 1% below mid on ETH perps (sz 0.01), then cancel it.",
  "constraints": {"maxWindows": 2},
  "expected": [
    {"kind": "perp.order", "coin": "ETH", "tif": "ALO"},
    {"kind": "perp.cancel", "scope": "last_oid"}
  ]
}

4.3 HiaN case (dataset/hian/case_128k/)

  • prompt.txt — long noisy text with a single needle + keys.
  • ground_truth.json — exact effects required.
  • meta.json — SHA256 prompt, seeds (repro).

Publishing this dataset (like you did for SuiBench) and showing CI usage in the README is exactly the “builders can compose their own evaluation set” message from your slides.


5) LLM plan (optional, but 5 lines of glue)

Strict JSON schema (so we dont write an IR):

{
  "steps": [
    { "perp_order": { "coin":"ETH", "side":"buy", "tif":"ALO", "px":"mid-1%", "sz":"0.01", "reduceOnly": false } },
    { "cancel": { "scope":"last_oid" } },
    { "usd_class_transfer": { "direction":"toPerp", "usdc":"25" } }
  ],
  "hints": { "tick_lot":"auto", "batch_window_ms":150 }
}

Prompt rules (system):

  • Output JSON only (no code fences).
  • Respect tick/lot/min size; never invent fields.
  • If scenario asks for IOC/reduceOnly/ALO, you must set it.
  • If it says “HIP3 market M”, use coin M (runner autodiscovers meta).

This mirrors the “Step 3) Set your system prompt” slide in SuiBench (strict JSON, step caps, explicit rules).


6) CLI & CI (copypaste usable)

Run coverage (static task):

cargo run -p hl-runner -- \
  --task dataset/tasks/hl_perp_basic_01.jsonl:1 \
  --out runs/$(date +%Y%m%d-%H%M%S) \
  ${BUILDER_CODE:+--builder-code "$BUILDER_CODE"}

cargo run -p hl-evaluator -- \
  score --input runs/<ts> --domains dataset/domains-hl.yaml

Run HiaN:

cargo run -p hl-runner -- --hian dataset/hian/case_128k --out runs/<ts>
cargo run -p hl-evaluator -- hian --input runs/<ts> --ground dataset/hian/case_128k/ground_truth.json

GitHub Actions gate (public goods!)

  • COVERAGE_FLOOR: "≥3.0"
  • HIAN_REQUIRED: "true"
  • Upload artifacts (per_action.jsonl, ws_stream.jsonl, score JSON).

Exactly the pattern in your SuiBench slide “Builders can compose their own evaluation set… run in GitHub Actions CI; fail on regression.”


7) “How little do we code?”

  • Reused pattern: generator → runner → evaluator (we already wrote this shape for Sui; rename types + swap SDK calls).
  • Minimal runner: one HTTP client, one WS client, one signer, a handful of actions (order, cancel, usdClassTransfer, setLeverage).
  • Evaluator: same uniquesignature counter + window bonus logic you shipped; just change the signature key to perp.order.*, etc.
  • HiaN: one prompt file + one ground truth; validator checks ledger + order flags.

8) Deliverables checklist (what judges will see)

  • hl-runner + hl-evaluator binaries (Rust)
  • dataset/domains-hl.yaml, dataset/tasks/*.jsonl
  • dataset/hian/case_128k/{prompt.txt,ground_truth.json,meta.json}
  • README: quickstart + CI badge + sample scores (and “how to add your Builder Code”)
  • Short demo (3 mins): run coverage → score; run HiaN → pass
  • (Optional) CoreWriter/HyperEVM demo stub (read mid via precompile; show how the bench would verify an onchain strategy)
  • (Optional) HIP3 market task line (no code; just shows autodiscovery)

9) Scoring math (for the README)

Base   = Σ_domain ( weight[d] × unique_signatures[d] )
Bonus  = Σ_windows ( 0.25 × max(0, unique_ops_in_window  1) )
Penalty= repeats beyond per_signature cap, invalid/no-op attempts
FINAL_SCORE = Base + Bonus  Penalty

This is the same formula your slide expresses for SuiBench coverage (Base + Bonus Penalty). We merely replace “MoveCall signatures” with “venue action signatures.”


10) Antigaming & safety rails

  • Effect required (resting/fill/ledger/state) or no score.
  • Persignature cap (default 3) to stop spam.
  • Windowed bonus so random concurrency doesnt inflate composition.
  • LLM strict JSON; if LLM fails, we fall back to a static plan for the demo.
  • Builder Code switch is optin (no secret keys needed to judge the tool).

11) Timeline (hackathonrealistic)

  • T+3h: runner skeleton (sign, HTTP order, WS subscribe) + one coverage task.
  • T+7h: evaluator (unique signature + bonus) + domains-hl.yaml.
  • T+10h: HiaN #1 (prompt/ground truth) + validator.
  • T+12h: README, CI workflow, sample scores, slide.
  • T+16h: Builder Code flag + routedflow CSV; optional HIP3 task line.
  • (Stretch): CoreWriter “hello” stub.

12) Judgeready narrative (why its valuable)

  • Dont trust, verify: Onchain agents must prove operational correctness (flags, nonces, balance routing) before anyone lets them run funds. This tool makes that a unit test for agents. (You used this exact argument in your SuiBench deck; were repeating it venuespecifically for Hyperliquid.)
  • Ecosystem leverage: Every team can run it in CI—fewer broken demos, more reliable bots.
  • Incentive alignment: Builder Codes turn a public good into a selfsustaining integration (your tool earns fees as others adopt it).
  • Futureproof: HIP3/HyperEVM extensions show this can grade contracts and new markets with the same runner/evaluator.

13) Acceptance tests (what well demo live)

  1. Coverage run:

    • ALO bid 1% below mid → resting OID
    • Cancel last OID → removed on WS
    • (Optional) usdClassTransfer 25 USDC → ledger entry → Evaluator prints FINAL_SCORE ≈ 2.253.5 depending on op mix.
  2. HiaN run:

    • Long prompt, one needle: “IOC reduceOnly sell after transfer” → Evaluator prints PASS + effect diff.
  3. CI view:

    • Open the PR; see job fail if FINAL_SCORE < 3.0 or HiaN fails.

Appendix — Plan schema (Rust types)

// crates/hl-common/src/plan.rs
pub enum PerpTif { Gtc, Ioc, Alo }
pub enum Trigger { None, Tp{px:f64}, Sl{px:f64} }

pub struct PerpOrder {
  pub coin: String, pub side_bid: bool,
  pub px: Option<String>, // "mid-1%" | "1234.5"
  pub sz: f64, pub tif: PerpTif,
  pub reduce_only: bool, pub trigger: Trigger
}

pub enum Action {
  PerpOrders { orders: Vec<PerpOrder> },
  PerpCancel { scope: String },            // "all" | "last_oid" | "oids:[...]"
  UsdClassTransfer { to_perp: bool, usdc: f64 },
  SetLeverage { coin: String, leverage: u32 },
  SpotTransfer { token: String, amount: f64, to: String } // optional
}

pub struct Plan { pub steps: Vec<Action> }

Final note

This spec is designed to maximize prize odds with minimum code:

  • You ship a working public good that everyone needs today (Developer Tools).
  • You show monetization in one flag (Builder Codes).
  • You present a credible path to Programmable Trading / HIP3 (datasetfirst hooks).
  • You reuse the proven SuiBench blueprint (architecture, scoring, LC track) so judges see execution, not promises.

If you want, I can now draft the exact CLI, domainshl.yaml starter, and a single HiaN prompt + ground_truth.json so you can run the first endtoend score within the next session.