diff --git a/AGENTS.md b/AGENTS.md index ef87913..d736481 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -25,6 +25,8 @@ ## x402 - Public client methods send grant and policy metadata to a configured gateway; the gateway owns signing and reconciliation. +- Paid MCP client calls are restricted to explicit tool-name unions and use the gateway's native + MCP adapter; never expose an arbitrary tool proxy or accept payer material. - Bind exact HTTPS resource, method, network, asset, amount, recipient, purpose, category, grant, and idempotency. - Preserve the distinction between read-only challenge inspection and funded execution. - CDP Bazaar search/merchant helpers are public and keyless. Do not attach ACM bearer tokens, payer keys, or CDP seller credentials to discovery calls, and do not claim a seller is indexed until the catalog returns it after CDP settlement. diff --git a/README.md b/README.md index be4c040..82767fd 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Success means the report contains: } ``` -The check reads Coinbase's public x402 Bazaar catalog, confirms all seven canonical Omni routes, and validates the `0.003` Base Sepolia USDC quote. It creates no signature or payment. +The check reads Coinbase's public x402 Bazaar catalog, confirms all nine canonical Omni routes, and validates the `0.003` Base Sepolia USDC quote. It creates no signature or payment. ## Five-minute local demo @@ -92,16 +92,18 @@ The acceptance flow buys one current BTC market-risk result, requires a fresh sc | Goal | Command or guide | Status | |---|---|---| | Inspect live Bazaar routes without paying | `npx github:InTheta/agent-capability-middleware#main inspect` | Implemented | -| Build exact calls across all seven Omni x402 products | `npx github:InTheta/agent-capability-middleware#main recipes` | Implemented | +| Build exact calls across all nine Omni x402 products | `npx github:InTheta/agent-capability-middleware#main recipes` | Implemented | | Buy through a protected, policy-bound payer | [Getting started](docs/getting-started.md) | Implemented on Base Sepolia | +| Buy a bounded Omni MCP tool through the protected payer | [`consumeX402McpTestnet`](docs/sdk-api.md#consume-a-paid-mcp-tool) | Implemented on Base Sepolia | | Charge agents for a developer API | `acm demo developer-seller` | Experimental local offer helper | | Offer a user-confirmed minimum-disclosure capability | `acm demo user-seller` | Experimental local offer helper | | Compare both offer types | `acm demo exchange` | Experimental local directory | -The seven canonical Omni templates cover targeted and market-wide AI news, exact time windows, +The nine canonical Omni templates cover targeted and market-wide AI news, exact time windows, all bounded liquidation views, all seven trader ranks, public trader-profile projections, -15/60-minute composite market risk, and candles with optional liquidation overlay. `acm recipes` -prints 23 concrete no-spend request plans over those templates; it does not claim 23 Bazaar +15/60-minute composite market risk, candles with optional liquidation overlay, current market +entity resolution, and current funding/carry. `acm recipes` +prints 25 concrete no-spend request plans over those templates; it does not claim 25 Bazaar listings. ## Architecture @@ -115,7 +117,7 @@ flowchart LR G --> L["Receipt and audit"] ``` -MCP can carry tool calls, OAuth/OIDC can identify workloads and users, verifiable credentials can carry attestations, and x402 carries payment requirements and proofs. ACM composes existing standards rather than replacing them. +MCP can carry tool calls, OAuth/OIDC can identify workloads and users, verifiable credentials can carry attestations, and x402 carries payment requirements and proofs. ACM composes existing standards rather than replacing them. The protected gateway now applies the same exact grant and payment binding to four bounded Omni MCP tools. ## Experimental seller previews diff --git a/dist/cli.js b/dist/cli.js index fb3d6f7..dde8552 100644 --- a/dist/cli.js +++ b/dist/cli.js @@ -54,14 +54,14 @@ else if (command === "recipes") { console.log(JSON.stringify({ ok: true, action: "bounded_omni_agent_recipes", - canonicalRouteTemplates: 7, - catalogedRouteTemplates: 7, + canonicalRouteTemplates: 9, + catalogedRouteTemplates: 9, recipes: listOmniAgentRecipes().map(({ label, kind, resourceUrl, schema, priceUsdc, purpose, note }) => ({ label, kind, resourceUrl, schema, priceUsdc, purpose, ...(note ? { note } : {}), })), spent: false, privateKeyUsed: false, - note: "Recipes reuse seven funded Base Sepolia seller route templates, all verified in CDP Bazaar; query variants do not create extra listings.", + note: "Recipes reuse nine funded Base Sepolia seller route templates, all verified in CDP Bazaar; query variants do not create extra listings.", }, null, 2)); } else if (command === "demo") { @@ -109,7 +109,7 @@ function printHelp() { Usage: acm doctor Check the local SDK runtime. No network request or payment. acm inspect Inspect one live x402 resource through public CDP Bazaar. No payment. - acm recipes Print bounded calls across all seven real Omni x402 products. No payment. + acm recipes Print bounded calls across all nine real Omni x402 products. No payment. acm demo buyer|developer-seller|user-seller|exchange Run a local, keyless product flow. No payment. acm partner-check diff --git a/dist/index.d.ts b/dist/index.d.ts index e274c14..63ab7dd 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -331,6 +331,23 @@ export interface PayQuotedX402TestnetRequest { export interface PayQuotedX402Request extends PayQuotedX402TestnetRequest { approvalId?: string; } +export type OmniX402McpToolName = "get_market_moving_events" | "get_market_risk_context" | "resolve_market_entities" | "get_market_carry"; +export interface PayQuotedX402McpTestnetRequest { + grantId: string; + serverUrl: string; + toolName: OmniX402McpToolName; + arguments: Record; + category: string; + purpose: string; + idempotencyKey: string; + currency?: string; + expectedPayment?: { + amount: number; + network: string; + asset: string; + payTo: string; + }; +} export interface X402ConsumptionResult { decision: "paid" | "allow" | "deny" | "requires_approval" | "needs_user_approval"; reason?: string; @@ -392,6 +409,7 @@ export declare class AgentCapabilityClient { requestSpend(request: SpendRequest): Promise>; payQuotedX402Testnet(request: PayQuotedX402TestnetRequest): Promise; consumeX402Testnet(request: PayQuotedX402TestnetRequest): Promise>; + consumeX402McpTestnet(request: PayQuotedX402McpTestnetRequest): Promise>; payQuotedX402(request: PayQuotedX402Request): Promise>; consumeX402(request: PayQuotedX402Request): Promise>; approveApproval(approvalId: string): Promise>; diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map index d3afb50..c3da1e1 100644 --- a/dist/index.d.ts.map +++ b/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3G,cAAc,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACpI,gBAAgB,CAAC,EAAE;QACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,aAAa,CAAC,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC5F,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;KACrC,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,gBAAgB,GAAG,WAAW,GAAG,UAAU,CAAC;CACrD;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,gBAAgB,GAAG,eAAe,GAAG,wBAAwB,CAAC;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,QAAQ,GAAG,gBAAgB,CAAC;IACzC,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE;QACZ,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC;KACtC,CAAC;IACF,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1G,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACrF,kBAAkB,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAAC;QAAC,yBAAyB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrH;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oBAAoB,GAAG,gBAAgB,CAAC;IACjD,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,cAAc,GAAG,eAAe,CAAC;QACrC,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,oBAAoB,GAAG,sBAAsB,CAAC;KAC3D,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;QACd,OAAO,EAAE,cAAc,GAAG,eAAe,CAAC;QAC1C,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,yBAAyB,GAAG,wBAAwB,GAAG,gBAAgB,CAAC;IACjF,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,cAAc,EAAE;QACd,OAAO,EAAE,cAAc,CAAC;QACxB,OAAO,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,cAAc,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,mBAAmB,EAAE,GAAG,CAAC;QACzB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,6BAA6B,CAAC;IAC3C,sBAAsB,EAAE,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACrD,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,OAAO,CAAC;QACf,cAAc,EAAE,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC;QACjD,UAAU,EAAE,gBAAgB,GAAG,eAAe,GAAG,wBAAwB,CAAC;QAC1E,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9H,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/F;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,sBAAsB,4DAA4D,CAAC;AAgBhG,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,sBAA2B,EACpC,mBAAmB,GAAE,OAAO,KAAwB,GACnD,OAAO,CAAC,uBAAuB,CAAC,CAiBlC;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,EACjD,mBAAmB,GAAE,OAAO,KAAwB,GACnD,OAAO,CAAC,yBAAyB,CAAC,CAYpC;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzH,eAAe,EAAE,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpF,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAqB,SAAQ,2BAA2B;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,OAAO;IAChD,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE;QAAE,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;KAAE,CAAC;CAC/D;AAED,MAAM,MAAM,wBAAwB,GAChC,uBAAuB,GACvB,iBAAiB,GACjB,uBAAuB,GACvB,oBAAoB,GACpB,iBAAiB,CAAC;AAEtB,qBAAa,8BAA+B,SAAQ,KAAK;IAErD,QAAQ,CAAC,IAAI,EAAE,wBAAwB;IAEvC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC;gBAFtC,IAAI,EAAE,wBAAwB,EACvC,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC;CAKlD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,iBAAiB,EAChE,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAChC,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GACxC,CAAC,CAqCH;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAe;gBAEvC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,4BAAiC;IAMvE,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;IAIpE,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAItC,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,KAAK,CAAC;IAI7D,UAAU,CAAC,MAAM,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAQ1G,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI9E,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIpG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIrF,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIrE,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAI1F,kBAAkB,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAIxG,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAI5F,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAI1F,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIrE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAI5C,SAAS,CAAC,MAAM,SAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAIxD,gBAAgB,CAAC,MAAM,SAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/D,sBAAsB,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,CAAC;YAAC,iBAAiB,EAAE,MAAM,CAAC;YAAC,iBAAiB,EAAE,KAAK,CAAA;SAAE,CAAA;KAAE,CAAC;IAIrO,cAAc,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC;IAI1E,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC;IAI9E,iBAAiB,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI3G,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAO5G,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAI5C,iBAAiB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAIrD,sBAAsB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAItD,wBAAwB,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAI/D,6BAA6B,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAIpE,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC;IAO3H,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIpE,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIpD,iBAAiB,CAAC,MAAM,SAAc,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIzE,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIvI,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,SAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAIpF,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,SAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YAIrE,GAAG;YAMH,IAAI;IAQlB,OAAO,CAAC,OAAO;YAMD,YAAY;CAK3B;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO;gBAAtC,MAAM,EAAE,MAAM,EAAW,IAAI,EAAE,OAAO;CAI5D;AAED,6CAA6C;AAC7C,OAAO,EAAE,qBAAqB,IAAI,2BAA2B,EAAE,CAAC;AAChE,+CAA+C;AAC/C,OAAO,EAAE,uBAAuB,IAAI,6BAA6B,EAAE,CAAC;AACpE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAC5E,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3G,cAAc,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACpI,gBAAgB,CAAC,EAAE;QACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,aAAa,CAAC,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC5F,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;KACrC,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,gBAAgB,GAAG,WAAW,GAAG,UAAU,CAAC;CACrD;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,gBAAgB,GAAG,eAAe,GAAG,wBAAwB,CAAC;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,QAAQ,GAAG,gBAAgB,CAAC;IACzC,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE;QACZ,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC;KACtC,CAAC;IACF,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1G,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACrF,kBAAkB,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAAC;QAAC,yBAAyB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrH;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oBAAoB,GAAG,gBAAgB,CAAC;IACjD,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,cAAc,GAAG,eAAe,CAAC;QACrC,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,oBAAoB,GAAG,sBAAsB,CAAC;KAC3D,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;QACd,OAAO,EAAE,cAAc,GAAG,eAAe,CAAC;QAC1C,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,yBAAyB,GAAG,wBAAwB,GAAG,gBAAgB,CAAC;IACjF,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,cAAc,EAAE;QACd,OAAO,EAAE,cAAc,CAAC;QACxB,OAAO,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,cAAc,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,mBAAmB,EAAE,GAAG,CAAC;QACzB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,6BAA6B,CAAC;IAC3C,sBAAsB,EAAE,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACrD,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,OAAO,CAAC;QACf,cAAc,EAAE,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC;QACjD,UAAU,EAAE,gBAAgB,GAAG,eAAe,GAAG,wBAAwB,CAAC;QAC1E,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9H,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/F;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,sBAAsB,4DAA4D,CAAC;AAgBhG,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,sBAA2B,EACpC,mBAAmB,GAAE,OAAO,KAAwB,GACnD,OAAO,CAAC,uBAAuB,CAAC,CAiBlC;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,EACjD,mBAAmB,GAAE,OAAO,KAAwB,GACnD,OAAO,CAAC,yBAAyB,CAAC,CAYpC;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzH,eAAe,EAAE,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpF,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAqB,SAAQ,2BAA2B;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,mBAAmB,GAC3B,0BAA0B,GAC1B,yBAAyB,GACzB,yBAAyB,GACzB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,OAAO;IAChD,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE;QAAE,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;KAAE,CAAC;CAC/D;AAED,MAAM,MAAM,wBAAwB,GAChC,uBAAuB,GACvB,iBAAiB,GACjB,uBAAuB,GACvB,oBAAoB,GACpB,iBAAiB,CAAC;AAEtB,qBAAa,8BAA+B,SAAQ,KAAK;IAErD,QAAQ,CAAC,IAAI,EAAE,wBAAwB;IAEvC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC;gBAFtC,IAAI,EAAE,wBAAwB,EACvC,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC;CAKlD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,iBAAiB,EAChE,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAChC,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GACxC,CAAC,CAqCH;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAe;gBAEvC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,4BAAiC;IAMvE,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;IAIpE,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAItC,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,KAAK,CAAC;IAI7D,UAAU,CAAC,MAAM,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAQ1G,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI9E,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIpG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIrF,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIrE,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAI1F,kBAAkB,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAIxG,qBAAqB,CAAC,CAAC,GAAG,OAAO,EAC/B,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAIpC,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAI5F,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAI1F,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIrE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAI5C,SAAS,CAAC,MAAM,SAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAIxD,gBAAgB,CAAC,MAAM,SAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/D,sBAAsB,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,CAAC;YAAC,iBAAiB,EAAE,MAAM,CAAC;YAAC,iBAAiB,EAAE,KAAK,CAAA;SAAE,CAAA;KAAE,CAAC;IAIrO,cAAc,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC;IAI1E,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC;IAI9E,iBAAiB,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI3G,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAO5G,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAI5C,iBAAiB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAIrD,sBAAsB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAItD,wBAAwB,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAI/D,6BAA6B,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAIpE,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC;IAO3H,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIpE,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIpD,iBAAiB,CAAC,MAAM,SAAc,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIzE,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIvI,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,SAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAIpF,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,SAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YAIrE,GAAG;YAMH,IAAI;IAQlB,OAAO,CAAC,OAAO;YAMD,YAAY;CAK3B;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO;gBAAtC,MAAM,EAAE,MAAM,EAAW,IAAI,EAAE,OAAO;CAI5D;AAED,6CAA6C;AAC7C,OAAO,EAAE,qBAAqB,IAAI,2BAA2B,EAAE,CAAC;AAChE,+CAA+C;AAC/C,OAAO,EAAE,uBAAuB,IAAI,6BAA6B,EAAE,CAAC;AACpE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAC5E,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 17df753..06a1253 100644 --- a/dist/index.js +++ b/dist/index.js @@ -126,6 +126,9 @@ export class AgentCapabilityClient { consumeX402Testnet(request) { return this.post("/v1/pay/x402/testnet/quoted", request); } + consumeX402McpTestnet(request) { + return this.post("/v1/pay/x402/mcp/testnet/quoted", request); + } payQuotedX402(request) { return this.post("/v1/pay/x402/quoted", request); } diff --git a/dist/omni.d.ts b/dist/omni.d.ts index 47d8191..06145ef 100644 --- a/dist/omni.d.ts +++ b/dist/omni.d.ts @@ -136,7 +136,54 @@ export interface OmniMarketRiskResponse { liquidations: OmniLiquidationMapResponse; news: OmniNewsPulseResponse; } -export type OmniX402Response = OmniNewsPulseResponse | OmniTraderLeaderboardResponse | OmniLiquidationMapResponse | OmniTraderProfileResponse | OmniMarketRiskResponse | OmniMarketSnapshotResponse; +export interface OmniEntityResolutionResponse { + service: "omni.market_entity_resolution"; + product_version: "v1"; + schema: "market_entity_resolution.v1"; + generated_at: string; + data_as_of: string | null; + freshness: OmniFreshness; + venue: "hyperliquid"; + results: Array<{ + input: string; + resolution_status: "resolved" | "unsupported"; + canonical_symbol: string | null; + confidence: number; + product_supported: boolean; + [key: string]: unknown; + }>; + usage: { + mention_count: number; + resolved_count: number; + mention_limit: 20; + }; +} +export interface OmniMarketCarryResponse { + service: "omni.hyperliquid_market_carry"; + product_version: "v1"; + schema: "hyperliquid_market_carry.v1"; + symbol: string; + canonical_symbol: string; + venue: "hyperliquid"; + market_type: "perp"; + generated_at: string; + data_as_of: string | null; + freshness: OmniFreshness; + carry: { + funding_rate_per_hour: number; + funding_annualized_pct: number; + annualization_method: "simple_current_hourly_rate_x_8760"; + funding_direction: "longs_pay_shorts" | "shorts_pay_longs" | "balanced"; + premium: number | null; + }; + positioning: Record; + prices: Record; + usage: { + current_snapshot_only: true; + historical_series_included: false; + }; +} +export type OmniX402Response = OmniNewsPulseResponse | OmniTraderLeaderboardResponse | OmniLiquidationMapResponse | OmniTraderProfileResponse | OmniMarketRiskResponse | OmniMarketSnapshotResponse | OmniEntityResolutionResponse | OmniMarketCarryResponse; type NewsFilters = { limit?: number; sentiment?: OmniNewsSentiment; @@ -202,6 +249,13 @@ export type OmniRecipeInput = ({ limit?: number; scope?: OmniAnalyticsScope; includeLiquidations?: boolean; +} | { + kind: "entity_resolution"; + mentions: string[]; + venue?: "hyperliquid"; +} | { + kind: "market_carry"; + symbol: string; }; export interface OmniX402Recipe { kind: OmniRecipeInput["kind"]; @@ -211,6 +265,9 @@ export interface OmniX402Recipe { priceUsdc: 0.001 | 0.002 | 0.003; category: "market_intelligence"; purpose: string; + method?: "GET" | "POST"; + headers?: Record; + body?: string; expectedPayment: { amount: 0.001 | 0.002 | 0.003; network: typeof OMNI_BASE_SEPOLIA_NETWORK; @@ -220,7 +277,7 @@ export interface OmniX402Recipe { note?: string; } /** - * Build one deterministic, bounded Omni x402 request. These are recipes over seven seller route + * Build one deterministic, bounded Omni x402 request. These are recipes over nine seller route * templates—not additional per-query routes or a generic query proxy. Bazaar catalog status is * verified separately because a new route requires a successful CDP settlement before indexing. */ diff --git a/dist/omni.d.ts.map b/dist/omni.d.ts.map index 1d654c1..75d8b5e 100644 --- a/dist/omni.d.ts.map +++ b/dist/omni.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"omni.d.ts","sourceRoot":"","sources":["../src/omni.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAElF,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AAC3D,eAAO,MAAM,kBAAkB,+CAA+C,CAAC;AAC/E,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AACxD,eAAO,MAAM,sBAAsB,+CAA+C,CAAC;AAEnF,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AACvD,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,WAAW,CAAC;AACzD,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAC9E,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7G,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,OAAO,GACP,SAAS,GACT,cAAc,GACd,aAAa,GACb,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;IACrD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,aAAa,CAAC;IACzB,cAAc,EAAE,IAAI,GAAG;QACrB,MAAM,EAAE,mBAAmB,CAAC;QAC5B,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;KACrC,CAAC;IACF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjC,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC;QAC9B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QACtC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,qCAAqC,CAAC;IAC/C,MAAM,EAAE,mCAAmC,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,kBAAkB,CAAC;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,aAAa,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,kCAAkC,CAAC;IAC5C,MAAM,EAAE,gCAAgC,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,kBAAkB,CAAC;IAC1B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAAE,CAAC;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,aAAa,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,kCAAkC,CAAC;IAC5C,MAAM,EAAE,gCAAgC,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC,CAAC;IACH,mBAAmB,CAAC,EAAE,0BAA0B,CAAC;IACjD,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,4BAA4B,EAAE,OAAO,CAAA;KAAE,CAAC;CAC9F;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,2BAA2B,CAAC;IACrC,MAAM,EAAE,yBAAyB,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,kBAAkB,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,aAAa,GAAG;QACzB,kBAAkB,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,UAAU,EAAE;YAAE,YAAY,EAAE,aAAa,CAAC;YAAC,IAAI,EAAE,aAAa,CAAA;SAAE,CAAC;KAClE,CAAC;IACF,YAAY,EAAE,0BAA0B,CAAC;IACzC,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAED,MAAM,MAAM,gBAAgB,GACxB,qBAAqB,GACrB,6BAA6B,GAC7B,0BAA0B,GAC1B,yBAAyB,GACzB,sBAAsB,GACtB,0BAA0B,CAAC;AAE/B,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB,CAAC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAA;CAAE,GAAG,WAAW,CAAC,GACvF,CAAC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAA;CAAE,GAAG,WAAW,CAAC,GAC1F,CAAC;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,GAAG,WAAW,CAAC,GACvE,CAAC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC,GAChE,CAAC;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAAC,GAC7H;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACvK;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,GAClN;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAAC,IAAI,CAAC,EAAE,cAAc,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACtG;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,kBAAkB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE1J,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IACjC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE;QACf,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;QAC9B,OAAO,EAAE,OAAO,yBAAyB,CAAC;QAC1C,KAAK,EAAE,OAAO,sBAAsB,CAAC;QACrC,KAAK,EAAE,OAAO,kBAAkB,CAAC;KAClC,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc,CAuJ3E;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3F,kBAAkB,CAgCpB;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,MAAM,GACrB,2BAA2B,CAW7B;AAED,wBAAgB,oBAAoB,CAAC,GAAG,SAAa,GAAG,cAAc,EAAE,CA0BvE"} \ No newline at end of file +{"version":3,"file":"omni.d.ts","sourceRoot":"","sources":["../src/omni.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/omni.js b/dist/omni.js index 109263e..ea4bdbf 100644 --- a/dist/omni.js +++ b/dist/omni.js @@ -3,7 +3,7 @@ export const OMNI_X402_RECEIVER = "0x733f40A4FA0cd13d59aBADE04b9eD2e9acAc6457"; export const OMNI_BASE_SEPOLIA_NETWORK = "eip155:84532"; export const OMNI_BASE_SEPOLIA_USDC = "0x036CbD53842c5426634e7929541eC2318f3dCF7e"; /** - * Build one deterministic, bounded Omni x402 request. These are recipes over seven seller route + * Build one deterministic, bounded Omni x402 request. These are recipes over nine seller route * templates—not additional per-query routes or a generic query proxy. Bazaar catalog status is * verified separately because a new route requires a successful CDP settlement before indexing. */ @@ -145,6 +145,47 @@ export function createOmniX402Recipe(input) { purpose = `evaluate_${symbol.toLowerCase()}_price_and_liquidation_structure`; break; } + case "entity_resolution": { + const mentions = normalizedMentions(input.mentions); + const venue = input.venue ?? "hyperliquid"; + url.pathname += "symbols/resolve"; + label = "Current market entity resolution"; + schema = "market_entity_resolution.v1"; + priceUsdc = 0.001; + purpose = "resolve_current_market_entities"; + note = + "Current-only resolution for 1-20 mentions; it does not expose the full alias registry."; + return { + kind: input.kind, + label, + resourceUrl: url.toString(), + schema, + priceUsdc, + category: "market_intelligence", + purpose, + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify({ mentions, venue }), + expectedPayment: { + amount: priceUsdc, + network: OMNI_BASE_SEPOLIA_NETWORK, + asset: OMNI_BASE_SEPOLIA_USDC, + payTo: OMNI_X402_RECEIVER, + }, + note, + }; + } + case "market_carry": { + const symbol = normalizedSymbol(input.symbol); + url.pathname += `market-carry/${symbol}`; + label = `${symbol} current market carry`; + schema = "hyperliquid_market_carry.v1"; + priceUsdc = 0.001; + purpose = `evaluate_current_${symbol.toLowerCase()}_market_carry`; + note = + "Current funding annualization is mechanical and is not a forecast or historical series."; + break; + } } return { kind: input.kind, @@ -210,6 +251,9 @@ export function createOmniPaymentRequest(grantId, recipe, idempotencyKey) { purpose: recipe.purpose, idempotencyKey, expectedPayment: recipe.expectedPayment, + ...(recipe.method ? { method: recipe.method } : {}), + ...(recipe.headers ? { headers: recipe.headers } : {}), + ...(recipe.body ? { body: recipe.body } : {}), }; } export function listOmniAgentRecipes(now = Date.now()) { @@ -237,6 +281,11 @@ export function listOmniAgentRecipes(now = Date.now()) { createOmniX402Recipe({ kind: "market_risk", symbol: "BTC", eventWindowMinutes: 60, limit: 5 }), createOmniX402Recipe({ kind: "market_snapshot", symbol: "BTC", interval: "1h", limit: 120 }), createOmniX402Recipe({ kind: "market_snapshot", symbol: "BTC", interval: "15m", limit: 96, includeLiquidations: false }), + createOmniX402Recipe({ + kind: "entity_resolution", + mentions: ["bitcoin", "BTC-PERP"], + }), + createOmniX402Recipe({ kind: "market_carry", symbol: "BTC" }), ]; } function addNewsQuery(url, input, mode, eventWindowMinutes) { @@ -280,6 +329,23 @@ function normalizedAddress(value) { throw new TypeError("address must be a 20-byte EVM address"); return address; } +function normalizedMentions(values) { + if (!Array.isArray(values) || values.length < 1 || values.length > 20) { + throw new RangeError("mentions must contain from 1 to 20 items"); + } + return values.map((value) => { + if (typeof value !== "string") { + throw new TypeError("each mention must be a string"); + } + const mention = value.trim(); + if (mention.length < 1 || + mention.length > 100 || + /[\u0000-\u001f\u007f]/.test(mention)) { + throw new RangeError("each mention must contain from 1 to 100 printable characters"); + } + return mention; + }); +} function boundedInteger(value, minimum, maximum, name) { if (!Number.isInteger(value) || value < minimum || value > maximum) { throw new RangeError(`${name} must be an integer from ${minimum} to ${maximum}`); diff --git a/dist/partner-check.d.ts b/dist/partner-check.d.ts index a1fdd6f..70d7f57 100644 --- a/dist/partner-check.d.ts +++ b/dist/partner-check.d.ts @@ -2,7 +2,7 @@ export declare const CANONICAL_OMNI_RECEIVER = "0x733f40A4FA0cd13d59aBADE04b9eD2 export declare const CANONICAL_OMNI_MARKET_RISK_ROUTE = "https://omniterminal.app/api/x402/v1/market-risk/:symbol"; export declare const CANONICAL_OMNI_MARKET_RISK_RESOURCE = "https://omniterminal.app/api/x402/v1/market-risk/BTC?scope=current"; export declare const BASE_SEPOLIA_USDC = "0x036CbD53842c5426634e7929541eC2318f3dCF7e"; -export declare const CANONICAL_OMNI_ROUTES: readonly ["https://omniterminal.app/api/x402/v1/news/:symbol", "https://omniterminal.app/api/x402/v1/news", "https://omniterminal.app/api/x402/v1/trader-profile/:address", "https://omniterminal.app/api/x402/v1/liquidations/:symbol", "https://omniterminal.app/api/x402/v1/traders/:symbol", "https://omniterminal.app/api/x402/v1/market-risk/:symbol", "https://omniterminal.app/api/x402/v1/market-snapshot/:symbol"]; +export declare const CANONICAL_OMNI_ROUTES: readonly ["https://omniterminal.app/api/x402/v1/news/:symbol", "https://omniterminal.app/api/x402/v1/news", "https://omniterminal.app/api/x402/v1/trader-profile/:address", "https://omniterminal.app/api/x402/v1/liquidations/:symbol", "https://omniterminal.app/api/x402/v1/traders/:symbol", "https://omniterminal.app/api/x402/v1/market-risk/:symbol", "https://omniterminal.app/api/x402/v1/market-snapshot/:symbol", "https://omniterminal.app/api/x402/v1/symbols/resolve", "https://omniterminal.app/api/x402/v1/market-carry/:symbol"]; export interface DesignPartnerCheckOptions { gatewayUrl?: string; apiKey?: string; diff --git a/dist/partner-check.d.ts.map b/dist/partner-check.d.ts.map index 82e895c..1c27ef7 100644 --- a/dist/partner-check.d.ts.map +++ b/dist/partner-check.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"partner-check.d.ts","sourceRoot":"","sources":["../src/partner-check.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,uBAAuB,+CAA+C,CAAC;AACpF,eAAO,MAAM,gCAAgC,6DAA6D,CAAC;AAC3G,eAAO,MAAM,mCAAmC,uEAAuE,CAAC;AACxH,eAAO,MAAM,iBAAiB,+CAA+C,CAAC;AAC9E,eAAO,MAAM,qBAAqB,8ZAQxB,CAAC;AAEX,MAAM,WAAW,yBAAyB;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,yBAAyB,CAAC;IACzC,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,UAAU,GAAG,cAAc,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,eAAe,CAAC;IAChC,OAAO,EAAE;QACP,MAAM,EAAE,YAAY,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,mBAAmB,EAAE;YACnB,UAAU,EAAE,KAAK,CAAC;YAClB,OAAO,EAAE,cAAc,CAAC;YACxB,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IACF,OAAO,CAAC,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,yBAAyB,CAAC;QAClC,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,eAAe,CAAC;QAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,uBAAuB,EAAE,KAAK,CAAC;KAChC,CAAC;IACF,eAAe,EAAE,KAAK,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY;gBAAtD,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,EAAE,OAAO,EAAE,MAAM;CAI7F;AAED,wBAAsB,qBAAqB,CACzC,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,wBAAwB,CAAC,CA2KnC"} \ No newline at end of file +{"version":3,"file":"partner-check.d.ts","sourceRoot":"","sources":["../src/partner-check.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,uBAAuB,+CAA+C,CAAC;AACpF,eAAO,MAAM,gCAAgC,6DAA6D,CAAC;AAC3G,eAAO,MAAM,mCAAmC,uEAAuE,CAAC;AACxH,eAAO,MAAM,iBAAiB,+CAA+C,CAAC;AAC9E,eAAO,MAAM,qBAAqB,mhBAUxB,CAAC;AAEX,MAAM,WAAW,yBAAyB;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,yBAAyB,CAAC;IACzC,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,UAAU,GAAG,cAAc,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,eAAe,CAAC;IAChC,OAAO,EAAE;QACP,MAAM,EAAE,YAAY,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,mBAAmB,EAAE;YACnB,UAAU,EAAE,KAAK,CAAC;YAClB,OAAO,EAAE,cAAc,CAAC;YACxB,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IACF,OAAO,CAAC,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,yBAAyB,CAAC;QAClC,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,eAAe,CAAC;QAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,uBAAuB,EAAE,KAAK,CAAC;KAChC,CAAC;IACF,eAAe,EAAE,KAAK,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY;gBAAtD,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,EAAE,OAAO,EAAE,MAAM;CAI7F;AAED,wBAAsB,qBAAqB,CACzC,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,wBAAwB,CAAC,CA2KnC"} \ No newline at end of file diff --git a/dist/partner-check.js b/dist/partner-check.js index 70a8378..a1359b8 100644 --- a/dist/partner-check.js +++ b/dist/partner-check.js @@ -11,6 +11,8 @@ export const CANONICAL_OMNI_ROUTES = [ "https://omniterminal.app/api/x402/v1/traders/:symbol", CANONICAL_OMNI_MARKET_RISK_ROUTE, "https://omniterminal.app/api/x402/v1/market-snapshot/:symbol", + "https://omniterminal.app/api/x402/v1/symbols/resolve", + "https://omniterminal.app/api/x402/v1/market-carry/:symbol", ]; export class DesignPartnerCheckError extends Error { step; diff --git a/docs/assets/README.md b/docs/assets/README.md index 98dd857..1a410c2 100644 --- a/docs/assets/README.md +++ b/docs/assets/README.md @@ -3,8 +3,9 @@ These images are sanitized public documentation evidence. They contain no private keys, API keys, seed phrases, privileged bearer tokens, raw personal data, or real-value wallet balances. -- `omni-bazaar-six-routes.png` — historical capture from 2026-07-19, before the seventh canonical - route was cataloged. It is retained as provenance evidence and is no longer used in current docs. +- `omni-bazaar-six-routes.png` — historical capture from 2026-07-19, before the later three + canonical routes were cataloged. It is retained as provenance evidence and is no longer used in + current docs. - `acm-bounded-grant-audit.png` — cropped dashboard capture showing the bounded `x402.pay` grant, explicit denied scopes, and testnet paid audit entries. Demo identifiers only. - `base-sepolia-settlement.png` — public BaseScan testnet evidence captured on 2026-07-17 for a diff --git a/docs/design-partner-checklist.md b/docs/design-partner-checklist.md index 47f6bfc..de397e6 100644 --- a/docs/design-partner-checklist.md +++ b/docs/design-partner-checklist.md @@ -38,7 +38,7 @@ Open `acm-no-spend-report.json`. Success requires: } ``` -The catalog section should name all seven canonical Omni route templates and show the canonical +The catalog section should name all nine canonical Omni route templates and show the canonical `0.003` Base Sepolia USDC market-risk quote. This step performs a read-only CDP Bazaar request and creates no signature or payment. @@ -121,7 +121,8 @@ Do not return terminal history or credentials. ## Evidence status The exact pinned `v0.1.0-preview.18` command completed an operator no-spend clean-install check on -22 July 2026 against all seven canonical Bazaar templates. The same installed command then completed +22 July 2026 against the seven canonical Bazaar templates available at that time. The same +installed command then completed the funded Base Sepolia flow in 3.491 seconds: fresh `market_risk_snapshot.v1`, public receipt `0xff57ccc4b5da7121d679eb47178be563427b21b81bc88406bba1f78e9a9e5283`, ACM audit event `evt_000074`, revoked grant `grant_000072`, `grant_revoked` denial, and no second settlement. diff --git a/docs/examples.md b/docs/examples.md index 247bbcd..f51f059 100644 --- a/docs/examples.md +++ b/docs/examples.md @@ -11,7 +11,7 @@ npx --yes https://github.com/InTheta/agent-capability-middleware/archive/refs/ta > acm-no-spend-report.json ``` -This installs the pinned preview, reads Coinbase's public x402 Bazaar catalog, verifies all seven canonical Omni route templates and the `0.003` Base Sepolia USDC market-risk quote, then exits without signing or paying. +This installs the pinned preview, reads Coinbase's public x402 Bazaar catalog, verifies all nine canonical Omni route templates and the `0.003` Base Sepolia USDC market-risk quote, then exits without signing or paying. Expected fields: @@ -78,7 +78,7 @@ npm ci |---|---|---| | `npm run example:fresh-dev` | Pack, install in an empty project, grant, validate, revoke, deny | None; deterministic mock | | `npm run example:bazaar` | List the live receiver-scoped Bazaar catalog | None | -| `npm run example:omni-recipes` | Build exact news, liquidation, trader, risk, and snapshot requests | None | +| `npm run example:omni-recipes` | Build exact news, liquidation, trader, risk, snapshot, entity-resolution, and carry requests | None | | `npm run example:omni-x402` | Run the partner flow | No spend unless explicitly enabled | | `npm run verify` | Type-check, test, package-smoke, and exercise public examples | None | diff --git a/docs/getting-started.md b/docs/getting-started.md index b40db31..163bf25 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -24,7 +24,7 @@ Success requires: } ``` -This checks Coinbase's public x402 Bazaar catalog, the seven canonical Omni route templates, and the exact Base Sepolia quote. It does not sign or settle a transaction. +This checks Coinbase's public x402 Bazaar catalog, the nine canonical Omni route templates, and the exact Base Sepolia quote. It does not sign or settle a transaction. ## 2. Run the buyer lifecycle locally diff --git a/docs/omni-agent-recipes.md b/docs/omni-agent-recipes.md index 20085de..1bb1629 100644 --- a/docs/omni-agent-recipes.md +++ b/docs/omni-agent-recipes.md @@ -1,6 +1,6 @@ # Real Omni agent recipes -Omni Terminal exposes seven bounded x402 route templates. ACM recipes turn common agent questions +Omni Terminal exposes nine bounded x402 route templates. ACM recipes turn common agent questions into exact URLs, expected schemas, prices, and Base Sepolia payment constraints without putting a wallet key in agent code. @@ -23,6 +23,8 @@ This command plans requests only. It does not create a grant, sign, or pay. | What is known about this public wallet, its positions, or balances? | `trader_profile` | `/trader-profile/:address` | `0.002` USDC | | Give me one joined 15- or 60-minute news and liquidation risk input | `market_risk` | `/market-risk/:symbol` | `0.003` USDC | | Give me price structure plus liquidation levels | `market_snapshot` | `/market-snapshot/:symbol` | `0.003` USDC | +| Resolve current market names or aliases into canonical instruments | `entity_resolution` | `POST /symbols/resolve` | `0.001` USDC | +| Give me current funding, basis, open interest, and carry | `market_carry` | `/market-carry/:symbol` | `0.001` USDC | The 60-minute briefing is not a new LLM call. It combines events from the latest 60-minute slice with the existing market context refreshed every 15 minutes over a 24-hour source window. This @@ -104,6 +106,13 @@ const fastRisk = createOmniX402Recipe({ kind: "market_risk", symbol: "BTC", eventWindowMinutes: 15, limit: 5, }); +const resolved = createOmniX402Recipe({ + kind: "entity_resolution", + mentions: ["bitcoin", "BTC-PERP"], +}); +const carry = createOmniX402Recipe({ + kind: "market_carry", symbol: "BTC", +}); ``` These mirror the useful public-wallet and liquidation views proven by Omni's Telegram screenshot @@ -135,10 +144,10 @@ These correspond to `/news BTC bearish top`, `/news SOL high #2`, timestamp look symbol-filtered `/trader` profile. The SDK builds intent only; the protected ACM gateway still owns approval, signing, receipt reconciliation, and revocation. -Run `acm recipes` to print 23 no-spend examples spanning every stable news mode, all four +Run `acm recipes` to print 25 no-spend examples spanning every stable news mode, all four liquidation views, all seven trader ranks, the three useful profile projections, both composite -risk horizons, and market snapshots with or without liquidation data. These are query variants on -seven cataloged products—not 23 separate Bazaar listings. +risk horizons, market snapshots with or without liquidation data, entity resolution, and market +carry. These are query variants on nine cataloged products—not 25 separate Bazaar listings. ## Safety and freshness @@ -148,5 +157,5 @@ seven cataloged products—not 23 separate Bazaar listings. - Never automatically retry an uncertain settlement with a new idempotency key. - A recipe is request intent, not permission. The protected ACM gateway still enforces the grant, exact challenge, budget, approval, revocation, and reconciliation. -- Query variants remain part of seven coherent route templates. A variant is not another catalog +- Query variants remain part of nine coherent route templates. A variant is not another catalog listing or evidence of customer usage. diff --git a/docs/roadmap.md b/docs/roadmap.md index 7b2aec0..29ce599 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -7,8 +7,9 @@ - protected-payer quoted testnet settlement with no SDK-held key; - exact amount, network, asset, payee, domain, category and idempotency binding; - typed paid-response consumption and freshness validation; +- typed paid MCP consumption for four bounded Omni tools through the protected payer; - packaged `requireFreshPaidResult` validation for payment, receipt, body, freshness and schema; -- read-only CDP Bazaar discovery and a real seven-template Omni external-service catalog; +- read-only CDP Bazaar discovery and a real nine-template Omni external-service catalog; - one-command external package install, no-spend catalog preflight and redacted partner report; - one-command paid acceptance that validates freshness, revokes the grant and proves the next request is denied before settlement; @@ -38,7 +39,7 @@ ## Later - hosted developer sandbox with project credentials and tenant isolation; -- MCP framework packages beyond the existing private adapter; +- MCP framework-specific integrations beyond the implemented protected Omni adapter; - browser-compatible storage and importer examples; - explicit retention and data-use obligations; - capability proof-of-possession profile; diff --git a/docs/sdk-api.md b/docs/sdk-api.md index b6a40fd..95a747f 100644 --- a/docs/sdk-api.md +++ b/docs/sdk-api.md @@ -96,6 +96,7 @@ Vector search is an optional gateway feature. Sensitive namespaces should be exc | `inspectPublicX402Challenge` | Inspect a payment challenge without paying. | | `payQuotedX402Testnet` | Ask a protected ACM gateway to quote, authorize, sign, settle, and retry an exact testnet resource. | | `consumeX402Testnet` | Typed alias for the same keyless flow; returns the paid response as `resourceBody: T` with its receipt and policy result. | +| `consumeX402McpTestnet` | Call one allowlisted paid MCP tool through the same grant-bound protected testnet payer. | | `payQuotedX402` | Ask a protected gateway to quote any allowed x402 resource; mainnet requires a separate payer, explicit settlement policy and approval. | | `consumeX402` | Typed generic x402 consumption; pins `expectedPayment` and returns the protected response, receipt and approval state. | @@ -112,8 +113,8 @@ These calls are read-only and send no API key or wallet material. | Function | Purpose | |---|---| -| `createOmniX402Recipe` | Convert a bounded news, trader, liquidation, profile, risk, or market-snapshot question into an exact canonical resource and expected payment. | -| `listOmniAgentRecipes` | List 23 bounded no-spend request plans spanning the stable modes of all seven seller route templates. | +| `createOmniX402Recipe` | Convert a bounded news, trader, liquidation, profile, risk, snapshot, entity-resolution, or carry question into an exact canonical resource and expected payment. | +| `listOmniAgentRecipes` | List 25 bounded no-spend request plans spanning the stable modes of all nine seller route templates. | | `createOmniRecipeGrant` | Build the least-privilege grant policy and aggregate cap for selected recipes. | | `createOmniPaymentRequest` | Bind a grant and idempotency key to one recipe for protected gateway consumption. | @@ -121,8 +122,9 @@ Recipes never sign or settle and cannot grant themselves permission. See [Real Omni agent recipes](omni-agent-recipes.md). The exported `OmniNewsPulseResponse`, `OmniTraderLeaderboardResponse`, -`OmniLiquidationMapResponse`, `OmniTraderProfileResponse`, `OmniMarketRiskResponse`, and -`OmniMarketSnapshotResponse` interfaces +`OmniLiquidationMapResponse`, `OmniTraderProfileResponse`, `OmniMarketRiskResponse`, +`OmniMarketSnapshotResponse`, `OmniEntityResolutionResponse`, and `OmniMarketCarryResponse` +interfaces provide typed paid bodies without exposing raw upstream fields. ### Validate a paid resource before acting @@ -180,6 +182,35 @@ const marketRisk = requireFreshPaidResult(paid, { The configured gateway owns payer custody, challenge validation, budget reservation, and reconciliation. Keep live payment examples opt-in and outside CI. +### Consume a paid MCP tool + +`consumeX402McpTestnet` supports Omni's bounded +`get_market_moving_events`, `get_market_risk_context`, `resolve_market_entities`, and +`get_market_carry` tools. It sends no payer key. The gateway binds the exact endpoint, tool name, +arguments, `mcp://tool/...` resource, network, asset, amount, payee, grant, purpose, and +idempotency key before signing. + +```ts +const carry = await client.consumeX402McpTestnet<{ + schema: "hyperliquid_market_carry.v1"; + freshness: { status: string }; +}>({ + grantId: grant.id, + serverUrl: "https://omniterminal.app/api/x402/mcp", + toolName: "get_market_carry", + arguments: { symbol: "BTC" }, + category: "market_intelligence", + purpose: "check_current_btc_carry", + idempotencyKey: crypto.randomUUID(), + expectedPayment: { + amount: 0.001, + network: "eip155:84532", + asset: "0x036CbD53842c5426634e7929541eC2318f3dCF7e", + payTo: "0x733f40A4FA0cd13d59aBADE04b9eD2e9acAc6457", + }, +}); +``` + For mainnet-capable gateways, grants must explicitly allow the network, canonical asset contract and payee. The first call may return `needs_user_approval`; approve that request, then repeat with its `approvalId`. The gateway re-quotes and denies any changed resource, network, asset, payee, diff --git a/docs/x402-integration.md b/docs/x402-integration.md index d9ab6c3..d5b7a06 100644 --- a/docs/x402-integration.md +++ b/docs/x402-integration.md @@ -53,13 +53,19 @@ The standalone `searchCdpX402Bazaar` and `listCdpX402MerchantResources` helpers The SDK methods `payQuotedX402Testnet`, typed `consumeX402Testnet`, `payQuotedX402`, and typed `consumeX402` call such a gateway. They do not sign locally. +The typed `consumeX402McpTestnet` method calls the protected gateway's native MCP adapter. Its +current Omni allowlist is `get_market_moving_events`, `get_market_risk_context`, +`resolve_market_entities`, and `get_market_carry`. The gateway binds the exact server, tool, +arguments, MCP resource, payment terms, grant, purpose, and idempotency key before the protected +testnet payer signs. + Revocation is part of the paid acceptance contract, not merely a dashboard feature. The canonical runner revokes the grant after its successful purchase and proves a new request is rejected before quote or settlement. A revoked grant must never be reactivated by paying again. ## Real Omni example -Omni Terminal currently exposes seven canonical Base Sepolia paid route forms: +Omni Terminal currently exposes nine canonical Base Sepolia paid route forms: | Product | Resource | Price | |---|---|---:| @@ -70,6 +76,8 @@ Omni Terminal currently exposes seven canonical Base Sepolia paid route forms: | Trader Leaderboard | `/api/x402/v1/traders/{symbol}` | `0.002` test USDC | | Market Risk Snapshot | `/api/x402/v1/market-risk/{symbol}` | `0.003` test USDC | | Market Snapshot | `/api/x402/v1/market-snapshot/{symbol}` | `0.003` test USDC | +| Market Entity Resolution | `POST /api/x402/v1/symbols/resolve` | `0.001` test USDC | +| Market Carry | `/api/x402/v1/market-carry/{symbol}` | `0.001` test USDC | Successful Omni responses expose `schema`, `generated_at`, `data_as_of`, and `freshness`. Consumers using a current route should fail closed unless `freshness.status` is `fresh`; an exact historical @@ -121,7 +129,8 @@ A later opt-in catalog smoke paid 14 query variants: latest/context/window news, summary/buckets/clusters/flow, best/worst/largest/risk traders, a public trader profile and the composite market-risk snapshot. All 14 returned live protected results. On 21 July 2026, ACM then settled the seventh Market Snapshot template and validated a fresh candle-plus-liquidation result; -the CDP receiver catalog now returns all seven route forms. +on 28 July 2026, bounded Entity Resolution and Market Carry settlements expanded the CDP receiver +catalog to all nine route forms. ## Mainnet boundary diff --git a/examples/typecheck.ts b/examples/typecheck.ts index 811ff4e..ebfbb40 100644 --- a/examples/typecheck.ts +++ b/examples/typecheck.ts @@ -76,6 +76,27 @@ void client.consumeX402Testnet(createOmniPaymentRequest( hourlyBriefing, "typed_hourly_briefing_001", )); +void client.consumeX402McpTestnet<{ + schema: "market_entity_resolution.v1"; + freshness: { status: string }; +}>({ + grantId: "grant_example", + serverUrl: "https://omniterminal.app/api/x402/mcp", + toolName: "resolve_market_entities", + arguments: { + mentions: ["bitcoin", "BTC-PERP"], + venue: "hyperliquid", + }, + category: "market_intelligence", + purpose: "resolve_current_market_entities", + idempotencyKey: "typed_mcp_resolution_001", + expectedPayment: { + amount: 0.001, + network: "eip155:84532", + asset: "0x036CbD53842c5426634e7929541eC2318f3dCF7e", + payTo: "0x733f40A4FA0cd13d59aBADE04b9eD2e9acAc6457", + }, +}); const directory = new LocalCapabilityDirectory(); directory.publish(createDeveloperServiceOffer({ diff --git a/scripts/smoke-package.mjs b/scripts/smoke-package.mjs index fa1630b..463b8c0 100644 --- a/scripts/smoke-package.mjs +++ b/scripts/smoke-package.mjs @@ -46,6 +46,7 @@ try { typeof client.registerAgent !== "function" || typeof client.createGrant !== "function" || typeof client.consumeX402Testnet !== "function" + || typeof client.consumeX402McpTestnet !== "function" || typeof client.consumeX402 !== "function" || typeof createDeveloperServiceOffer !== "function" || typeof createOmniX402Recipe !== "function" @@ -81,9 +82,9 @@ try { if (recipes.status !== 0) throw new Error(recipes.stderr || recipes.stdout); const recipeReport = JSON.parse(recipes.stdout); if ( - recipeReport.canonicalRouteTemplates !== 7 || - recipeReport.catalogedRouteTemplates !== 7 || - recipeReport.recipes?.length < 12 || + recipeReport.canonicalRouteTemplates !== 9 || + recipeReport.catalogedRouteTemplates !== 9 || + recipeReport.recipes?.length !== 25 || recipeReport.spent !== false ) { throw new Error(`Installed ACM CLI returned an invalid recipe plan: ${recipes.stdout}`); diff --git a/src/cli.ts b/src/cli.ts index cbcae16..2ad9373 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -66,14 +66,14 @@ if (command === "help" || command === "--help" || command === "-h") { console.log(JSON.stringify({ ok: true, action: "bounded_omni_agent_recipes", - canonicalRouteTemplates: 7, - catalogedRouteTemplates: 7, + canonicalRouteTemplates: 9, + catalogedRouteTemplates: 9, recipes: listOmniAgentRecipes().map(({ label, kind, resourceUrl, schema, priceUsdc, purpose, note }) => ({ label, kind, resourceUrl, schema, priceUsdc, purpose, ...(note ? { note } : {}), })), spent: false, privateKeyUsed: false, - note: "Recipes reuse seven funded Base Sepolia seller route templates, all verified in CDP Bazaar; query variants do not create extra listings.", + note: "Recipes reuse nine funded Base Sepolia seller route templates, all verified in CDP Bazaar; query variants do not create extra listings.", }, null, 2)); } else if (command === "demo") { const flow = process.argv[3] ?? "exchange"; @@ -116,7 +116,7 @@ function printHelp(): void { Usage: acm doctor Check the local SDK runtime. No network request or payment. acm inspect Inspect one live x402 resource through public CDP Bazaar. No payment. - acm recipes Print bounded calls across all seven real Omni x402 products. No payment. + acm recipes Print bounded calls across all nine real Omni x402 products. No payment. acm demo buyer|developer-seller|user-seller|exchange Run a local, keyless product flow. No payment. acm partner-check diff --git a/src/index.ts b/src/index.ts index 6c113e0..5850850 100644 --- a/src/index.ts +++ b/src/index.ts @@ -353,6 +353,29 @@ export interface PayQuotedX402Request extends PayQuotedX402TestnetRequest { approvalId?: string; } +export type OmniX402McpToolName = + | "get_market_moving_events" + | "get_market_risk_context" + | "resolve_market_entities" + | "get_market_carry"; + +export interface PayQuotedX402McpTestnetRequest { + grantId: string; + serverUrl: string; + toolName: OmniX402McpToolName; + arguments: Record; + category: string; + purpose: string; + idempotencyKey: string; + currency?: string; + expectedPayment?: { + amount: number; + network: string; + asset: string; + payTo: string; + }; +} + export interface X402ConsumptionResult { decision: "paid" | "allow" | "deny" | "requires_approval" | "needs_user_approval"; reason?: string; @@ -502,6 +525,12 @@ export class AgentCapabilityClient { return this.post("/v1/pay/x402/testnet/quoted", request); } + consumeX402McpTestnet( + request: PayQuotedX402McpTestnetRequest, + ): Promise> { + return this.post("/v1/pay/x402/mcp/testnet/quoted", request); + } + payQuotedX402(request: PayQuotedX402Request): Promise> { return this.post("/v1/pay/x402/quoted", request); } diff --git a/src/omni.ts b/src/omni.ts index a4e20c7..3d44222 100644 --- a/src/omni.ts +++ b/src/omni.ts @@ -140,13 +140,64 @@ export interface OmniMarketRiskResponse { news: OmniNewsPulseResponse; } +export interface OmniEntityResolutionResponse { + service: "omni.market_entity_resolution"; + product_version: "v1"; + schema: "market_entity_resolution.v1"; + generated_at: string; + data_as_of: string | null; + freshness: OmniFreshness; + venue: "hyperliquid"; + results: Array<{ + input: string; + resolution_status: "resolved" | "unsupported"; + canonical_symbol: string | null; + confidence: number; + product_supported: boolean; + [key: string]: unknown; + }>; + usage: { + mention_count: number; + resolved_count: number; + mention_limit: 20; + }; +} + +export interface OmniMarketCarryResponse { + service: "omni.hyperliquid_market_carry"; + product_version: "v1"; + schema: "hyperliquid_market_carry.v1"; + symbol: string; + canonical_symbol: string; + venue: "hyperliquid"; + market_type: "perp"; + generated_at: string; + data_as_of: string | null; + freshness: OmniFreshness; + carry: { + funding_rate_per_hour: number; + funding_annualized_pct: number; + annualization_method: "simple_current_hourly_rate_x_8760"; + funding_direction: "longs_pay_shorts" | "shorts_pay_longs" | "balanced"; + premium: number | null; + }; + positioning: Record; + prices: Record; + usage: { + current_snapshot_only: true; + historical_series_included: false; + }; +} + export type OmniX402Response = | OmniNewsPulseResponse | OmniTraderLeaderboardResponse | OmniLiquidationMapResponse | OmniTraderProfileResponse | OmniMarketRiskResponse - | OmniMarketSnapshotResponse; + | OmniMarketSnapshotResponse + | OmniEntityResolutionResponse + | OmniMarketCarryResponse; type NewsFilters = { limit?: number; @@ -174,7 +225,9 @@ export type OmniRecipeInput = eventWindowMinutes?: 15 | 60; limit?: number; } - | { kind: "market_snapshot"; symbol: string; interval?: OmniMarketInterval; limit?: number; scope?: OmniAnalyticsScope; includeLiquidations?: boolean }; + | { kind: "market_snapshot"; symbol: string; interval?: OmniMarketInterval; limit?: number; scope?: OmniAnalyticsScope; includeLiquidations?: boolean } + | { kind: "entity_resolution"; mentions: string[]; venue?: "hyperliquid" } + | { kind: "market_carry"; symbol: string }; export interface OmniX402Recipe { kind: OmniRecipeInput["kind"]; @@ -184,6 +237,9 @@ export interface OmniX402Recipe { priceUsdc: 0.001 | 0.002 | 0.003; category: "market_intelligence"; purpose: string; + method?: "GET" | "POST"; + headers?: Record; + body?: string; expectedPayment: { amount: 0.001 | 0.002 | 0.003; network: typeof OMNI_BASE_SEPOLIA_NETWORK; @@ -194,7 +250,7 @@ export interface OmniX402Recipe { } /** - * Build one deterministic, bounded Omni x402 request. These are recipes over seven seller route + * Build one deterministic, bounded Omni x402 request. These are recipes over nine seller route * templates—not additional per-query routes or a generic query proxy. Bazaar catalog status is * verified separately because a new route requires a successful CDP settlement before indexing. */ @@ -331,6 +387,47 @@ export function createOmniX402Recipe(input: OmniRecipeInput): OmniX402Recipe { purpose = `evaluate_${symbol.toLowerCase()}_price_and_liquidation_structure`; break; } + case "entity_resolution": { + const mentions = normalizedMentions(input.mentions); + const venue = input.venue ?? "hyperliquid"; + url.pathname += "symbols/resolve"; + label = "Current market entity resolution"; + schema = "market_entity_resolution.v1"; + priceUsdc = 0.001; + purpose = "resolve_current_market_entities"; + note = + "Current-only resolution for 1-20 mentions; it does not expose the full alias registry."; + return { + kind: input.kind, + label, + resourceUrl: url.toString(), + schema, + priceUsdc, + category: "market_intelligence", + purpose, + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify({ mentions, venue }), + expectedPayment: { + amount: priceUsdc, + network: OMNI_BASE_SEPOLIA_NETWORK, + asset: OMNI_BASE_SEPOLIA_USDC, + payTo: OMNI_X402_RECEIVER, + }, + note, + }; + } + case "market_carry": { + const symbol = normalizedSymbol(input.symbol); + url.pathname += `market-carry/${symbol}`; + label = `${symbol} current market carry`; + schema = "hyperliquid_market_carry.v1"; + priceUsdc = 0.001; + purpose = `evaluate_current_${symbol.toLowerCase()}_market_carry`; + note = + "Current funding annualization is mechanical and is not a forecast or historical series."; + break; + } } return { @@ -403,6 +500,9 @@ export function createOmniPaymentRequest( purpose: recipe.purpose, idempotencyKey, expectedPayment: recipe.expectedPayment, + ...(recipe.method ? { method: recipe.method } : {}), + ...(recipe.headers ? { headers: recipe.headers } : {}), + ...(recipe.body ? { body: recipe.body } : {}), }; } @@ -431,6 +531,11 @@ export function listOmniAgentRecipes(now = Date.now()): OmniX402Recipe[] { createOmniX402Recipe({ kind: "market_risk", symbol: "BTC", eventWindowMinutes: 60, limit: 5 }), createOmniX402Recipe({ kind: "market_snapshot", symbol: "BTC", interval: "1h", limit: 120 }), createOmniX402Recipe({ kind: "market_snapshot", symbol: "BTC", interval: "15m", limit: 96, includeLiquidations: false }), + createOmniX402Recipe({ + kind: "entity_resolution", + mentions: ["bitcoin", "BTC-PERP"], + }), + createOmniX402Recipe({ kind: "market_carry", symbol: "BTC" }), ]; } @@ -479,6 +584,28 @@ function normalizedAddress(value: string): string { return address; } +function normalizedMentions(values: string[]): string[] { + if (!Array.isArray(values) || values.length < 1 || values.length > 20) { + throw new RangeError("mentions must contain from 1 to 20 items"); + } + return values.map((value) => { + if (typeof value !== "string") { + throw new TypeError("each mention must be a string"); + } + const mention = value.trim(); + if ( + mention.length < 1 || + mention.length > 100 || + /[\u0000-\u001f\u007f]/.test(mention) + ) { + throw new RangeError( + "each mention must contain from 1 to 100 printable characters", + ); + } + return mention; + }); +} + function boundedInteger(value: number, minimum: number, maximum: number, name: string): number { if (!Number.isInteger(value) || value < minimum || value > maximum) { throw new RangeError(`${name} must be an integer from ${minimum} to ${maximum}`); diff --git a/src/partner-check.ts b/src/partner-check.ts index 5f0b022..f79bda0 100644 --- a/src/partner-check.ts +++ b/src/partner-check.ts @@ -17,6 +17,8 @@ export const CANONICAL_OMNI_ROUTES = [ "https://omniterminal.app/api/x402/v1/traders/:symbol", CANONICAL_OMNI_MARKET_RISK_ROUTE, "https://omniterminal.app/api/x402/v1/market-snapshot/:symbol", + "https://omniterminal.app/api/x402/v1/symbols/resolve", + "https://omniterminal.app/api/x402/v1/market-carry/:symbol", ] as const; export interface DesignPartnerCheckOptions { diff --git a/tests/omni-recipes.test.mjs b/tests/omni-recipes.test.mjs index bc31d56..2300fa7 100644 --- a/tests/omni-recipes.test.mjs +++ b/tests/omni-recipes.test.mjs @@ -104,6 +104,49 @@ test("builds bounded 15-minute and 60-minute composite risk calls", () => { ); }); +test("builds bounded entity-resolution and market-carry requests", () => { + const resolution = createOmniX402Recipe({ + kind: "entity_resolution", + mentions: [" bitcoin ", "BTC-PERP"], + }); + assert.equal( + resolution.resourceUrl, + "https://omniterminal.app/api/x402/v1/symbols/resolve", + ); + assert.equal(resolution.method, "POST"); + assert.deepEqual(resolution.headers, { + "content-type": "application/json", + }); + assert.deepEqual(JSON.parse(resolution.body), { + mentions: ["bitcoin", "BTC-PERP"], + venue: "hyperliquid", + }); + assert.equal(resolution.schema, "market_entity_resolution.v1"); + assert.equal(resolution.priceUsdc, 0.001); + + const payment = createOmniPaymentRequest( + "grant_resolver", + resolution, + "resolve_request_001", + ); + assert.equal(payment.method, "POST"); + assert.deepEqual(payment.headers, { + "content-type": "application/json", + }); + assert.equal(payment.body, resolution.body); + + const carry = createOmniX402Recipe({ + kind: "market_carry", + symbol: "btc", + }); + assert.equal( + carry.resourceUrl, + "https://omniterminal.app/api/x402/v1/market-carry/BTC", + ); + assert.equal(carry.schema, "hyperliquid_market_carry.v1"); + assert.equal(carry.priceUsdc, 0.001); +}); + test("rejects unbounded or malformed inputs before a payment request exists", () => { assert.throws( () => createOmniX402Recipe({ kind: "traders", symbol: "BTC", limit: 21 }), @@ -126,11 +169,19 @@ test("rejects unbounded or malformed inputs before a payment request exists", () () => createOmniX402Recipe({ kind: "market_snapshot", symbol: "BTC", limit: 201 }), /limit must be an integer from 20 to 200/, ); + assert.throws( + () => + createOmniX402Recipe({ + kind: "entity_resolution", + mentions: Array.from({ length: 21 }, (_, index) => `symbol-${index}`), + }), + /mentions must contain from 1 to 20 items/, + ); }); test("lists coherent recipes without creating new route templates", () => { const recipes = listOmniAgentRecipes(1_800_000_000_000); - assert.equal(recipes.length, 23); + assert.equal(recipes.length, 25); assert.deepEqual( new Set( recipes @@ -147,6 +198,14 @@ test("lists coherent recipes without creating new route templates", () => { ), new Set(["summary", "buckets", "clusters", "flow"]), ); + assert.equal( + recipes.filter((recipe) => recipe.kind === "entity_resolution").length, + 1, + ); + assert.equal( + recipes.filter((recipe) => recipe.kind === "market_carry").length, + 1, + ); assert.equal(new Set(recipes.map((recipe) => new URL(recipe.resourceUrl).pathname.split("/").slice(0, 6).join("/"))).size > 0, true); assert.equal(recipes.every((recipe) => recipe.resourceUrl.startsWith("https://omniterminal.app/api/x402/v1/")), true); }); diff --git a/tests/shopping-evidence.test.mjs b/tests/shopping-evidence.test.mjs index 3d346a4..708d001 100644 --- a/tests/shopping-evidence.test.mjs +++ b/tests/shopping-evidence.test.mjs @@ -119,6 +119,52 @@ test("typed x402 consumption uses the keyless quoted-payment route", async () => }); }); +test("typed MCP consumption delegates only bounded tool metadata to the protected gateway", async () => { + let captured; + const client = new AgentCapabilityClient("https://gateway.example.com", { + fetch: async (input, init) => { + captured = { + url: String(input), + method: init?.method, + body: JSON.parse(String(init?.body)), + }; + return Response.json({ + decision: "paid", + receiptId: "0xmcp_receipt", + resourceBody: { + service: "omni.hyperliquid_market_carry", + schema: "hyperliquid_market_carry.v1", + freshness: { status: "fresh" }, + }, + }); + }, + }); + const request = { + grantId: "grant_mcp_agent", + serverUrl: "https://omniterminal.app/api/x402/mcp", + toolName: "get_market_carry", + arguments: { symbol: "BTC" }, + category: "market_intelligence", + purpose: "check_current_btc_carry", + idempotencyKey: "mcp_carry_001", + expectedPayment: { + amount: 0.001, + network: "eip155:84532", + asset: "0x036CbD53842c5426634e7929541eC2318f3dCF7e", + payTo: "0x733f40A4FA0cd13d59aBADE04b9eD2e9acAc6457", + }, + }; + + const result = await client.consumeX402McpTestnet(request); + + assert.equal(result.resourceBody.schema, "hyperliquid_market_carry.v1"); + assert.deepEqual(captured, { + url: "https://gateway.example.com/v1/pay/x402/mcp/testnet/quoted", + method: "POST", + body: request, + }); +}); + test("grant revocation uses the protected lifecycle endpoint", async () => { let captured; const client = new AgentCapabilityClient("https://gateway.example.com", {