Skip to content

Add vendor-neutral privacy router skill with HoudiniSwap adapter #2

Description

@quiz42

Summary

The current workspace adds a vendor-neutral privacy-router skill on top of the existing HoudiniSwap direct skill. The router lets agents plan privacy-preserving transfer/swap intents, compare provider quotes, create routed orders, and poll routed order status using provider-prefixed IDs.

Change set reflected in the workspace

  • Add skills/privacy-router/ with SKILL.md, provider registry, routing model, quote ranking, CLI commands, and tests.
  • Add root wrappers under scripts/router/ for list-providers, plan-transfer, get-quotes, create-order, get-order, and wait-order.
  • Add a HoudiniSwap provider adapter with independent enable/disable configuration, asset resolution, quote normalization, routed quote/order IDs, order creation, and status polling.
  • Preserve strict privacy behavior: strict requirements are not silently downgraded; unmet routes return an unmet result instead of creating an order.
  • Fix highest-available behavior so HoudiniSwap probes both regular and anonymous=true private quotes and prefers the strongest available privacy route.
  • Fix live order status handling by recognizing statusLabel, displayStatus, and status, including HoudiniSwap terminal labels like FINISHED, SWAP_COMPLETED, SWAP_FAILED, and DEPOSIT_EXPIRED.
  • Update README, .env.example, package scripts, installers, test discovery, and deployment verification to include both privacy-router and houdiniswap skills.
  • Make scripts/verify-deployment.sh --target accept both parent skills directories and direct skill directories for backward compatibility.

Acceptance criteria

  • privacy-router can list providers even when HoudiniSwap credentials are missing, with a clear disabled reason.
  • get-quotes --privacy unlinkability returns only eligible private quotes or an unmet result.
  • get-quotes --privacy highest-available probes private HoudiniSwap routes and selects the private quote when available.
  • create-order and wait-order dispatch routed IDs such as houdiniswap:q-... and houdiniswap:h-... to the correct provider adapter.
  • Install scripts link both bundled skills into existing agent skills directories.
  • Deployment verification works for both --target ~/.claude/skills and --target ~/.claude/skills/houdiniswap style paths.

Validation already run locally

  • npm test passed: 153 tests total, 151 passed, 2 live tests skipped by configuration, 0 failed.
  • npm run lint:syntax passed.
  • Functional mock flow passed: get-quotes --privacy highest-available issued both regular and anonymous=true quote probes, selected an unlinkability quote, created an order, and wait-order completed it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions