Skip to content

Surface the Transactability Index in selat run (pre-sign confirm + dry-run preview) #167

Description

@SELAT-DEV

Summary

The Transactability Index rides the 402 challenge, and selat run already holds that challenge at two points — but never surfaces the score:

  • Ranking: selat run --live-probe runs rank.mjs --pick --live-probe (lib/commands/run.mjs:314), which live-probes the endpoint.
  • Pay time: selat run spawns selat-pay (which fetches the live 402 to build the payment). selat-pay already prints the STI to stderr today — it's just a raw [selat-pay] extensions={…} line.

Make the score a natural part of the selat run flow — the command users actually reach for, and the one holding the 402 right before it signs.

Ask (display only — no gate)

  1. Pre-sign confirmation. In the "about to pay X $Y — confirm?" step, show the index inline, e.g.:

    About to pay Alchemy $0.001 · health 24h 100% (2 paid), last 200 — confirm?

    Parse it from the selat-pay output the run already captures (same pattern lib/skill-registry.mjs:946 uses to read [selat-pay] error:), and render with the shared formatter from https://github.com/SELAT-AI/selat-pay/issues/63.

  2. Dry-run preview. selat run --dry-run --live-probe should show the index in the pick output. This needs rank.mjs (@selat-ai/selat-discovery) to carry selatTransactabilityIndex through its --pick output — tracked as a dependency there.

Explicitly out of scope

No gate flag, no threshold, no payment-blocking behavior. The index is shown, never enforced — the decision stays with the user. (Consistent with the docs primer: "it reports what it observed — it does not recommend an action or point you to a different endpoint.")

Ranking-factor / quarantine on the discovery side is a separate, larger discussion and is not part of this issue.

Semantics to preserve

Single most-recent window (24h/7d/all, or {}) · absence = unknown, not bad · paidNum is a confidence weight · successRate is transport-level ("delivered 2xx") · lastPaid = {status, timestamp}.

Depends on

Ref: docs primer https://selat.ai/docs/primers/transactability-index

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions