Server definition
- Hash
- sha256:585f15afceeb2e4a42dbe3c0bbdd68d8cdc8dcfff9156c1176b23693ede13c26
- What it is
- What a remote MCP server returned when asked what it offers: 15 tools
The blob, as servednamed by its sha256
{
"instructions": "Free, one-call negotiation math for agents — no account, no key. START WITH `negotiate` (your math-optimal next move in any price haggle) or `negotiate_bundle` (several linked issues at once, logrolled); `score_deal`, `auction_bid`, `auction_reserve`, `clearance_price`, and `stable_match` round out the free math. When you need it ON THE RECORD, `session_open` opens a $2 receipted, replayable negotiation session (then session_advise / session_bundle / session_close). When your agent needs to REMEMBER, `memory_save` / `memory_load` are persistent cross-session memory — you encrypt before saving; the store holds only ciphertext (blind custody) and cannot read it. `store_catalog` shows the shelf and your balance; `store_request` files what we don't stock yet. Empirical anchor: the negotiate recommender is ~12% better head-to-head (n=20 paired LLM negotiations, p<0.0001). Power users: the FULL surface (verified agent-to-agent + AP2 settlement, first-strike attestation, auction design/sim, offer-graph engine, legacy names) is the pro door at /mcp/pro/.",
"tools": [
{
"description": "The optimal bid when you're bidding in an auction — free, no account or key needed.\n\nUSE THIS WHEN: you're a bidder and want the bid that maximizes your expected\nsurplus without overpaying. NOT for running an auction (use\nauction_reserve) or 1:1 haggling (use negotiate).\n\nProvide: auction_format (\"first_price\" sealed bid, \"second_price_vickrey\",\nor \"english_ascending\"); my_valuation (what the item is worth to YOU, in $);\nn_competing_bidders (how many OTHER bidders, not counting you); and\ncompetitor_value_prior — a rough model of what rivals will pay, e.g.\n{\"family\":\"uniform\",\"params\":{\"low\":0,\"high\":6000}} (or\n{\"family\":\"lognorm\",\"params\":{\"mu\":8.5,\"sigma\":0.4}}). Estimate it if unknown.\nReturns {optimal_bid, expected_surplus, win_probability, dominant_strategy,\nrationale} — bid and surplus in the SAME $ you passed in.\n\nExample: a domain worth $5,000 to you, 4 rivals who'd pay up to ~$6,000, in a\nsealed first-price auction -> auction_bid(auction_format=\"first_price\",\nmy_valuation=5000, n_competing_bidders=4,\ncompetitor_value_prior={\"family\":\"uniform\",\"params\":{\"low\":0,\"high\":6000}})\n-> optimal_bid ~$4,000, win_probability ~0.48.\n",
"inputSchema": {
"properties": {
"auction_format": {
"description": "'first_price' (sealed), 'second_price_vickrey', or 'english_ascending'.",
"enum": [
"first_price",
"second_price_vickrey",
"english_ascending"
],
"title": "Auction Format",
"type": "string"
},
"competitor_value_prior": {
"additionalProperties": true,
"description": "Rough model of what rivals will pay, e.g. {family:'uniform', params:{low:0, high:6000}} or {family:'lognorm', params:{mu:8.5, sigma:0.4}}.",
"title": "Competitor Value Prior",
"type": "object"
},
"my_valuation": {
"description": "What the item is worth to YOU, in dollars.",
"title": "My Valuation",
"type": "number"
},
"n_competing_bidders": {
"description": "How many OTHER bidders there are (not counting you).",
"title": "N Competing Bidders",
"type": "integer"
},
"reserve_price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "The auction's reserve/minimum bid in dollars, if any (optional).",
"title": "Reserve Price"
},
"risk_aversion": {
"default": 1,
"description": "Your risk aversion; 1.0 = risk-neutral (default 1.0).",
"title": "Risk Aversion",
"type": "number"
}
},
"required": [
"auction_format",
"my_valuation",
"n_competing_bidders",
"competitor_value_prior"
],
"title": "gt_auction_optimal_bidArguments",
"type": "object"
},
"name": "auction_bid",
"outputSchema": {
"properties": {
"dominant_strategy": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Dominant Strategy"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"expected_surplus": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Expected Surplus"
},
"optimal_bid": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Optimal Bid"
},
"rationale": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Rationale"
},
"win_probability": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Win Probability"
}
},
"title": "AuctionBidOut",
"type": "object"
}
},
{
"description": "The revenue-optimal reserve price when you're selling — free, no account or key needed.\n\nUSE THIS WHEN: you're running an auction or sale with multiple bidders and need\nthe floor price (minimum bid you'll accept) that maximizes your expected\nrevenue. NOT for one-on-one haggling (use negotiate for that).\n\nProvide: n_bidders (how many bidders), seller_valuation (what the item is worth\nto YOU, in $), and bidder_value_prior — a rough model of what bidders will pay,\ne.g. {\"family\":\"uniform\",\"params\":{\"low\":2000,\"high\":8000}}. Estimate it if\nunknown. Returns the reserve price and expected revenue.\n\nExample: a painting, ~5 bidders, worth $1,000 to you, bidders likely pay\n$2,000–$8,000 -> auction_reserve(n_bidders=5, seller_valuation=1000,\nbidder_value_prior={\"family\":\"uniform\",\"params\":{\"low\":2000,\"high\":8000}}).\n",
"inputSchema": {
"properties": {
"bidder_value_prior": {
"additionalProperties": true,
"description": "Rough model of what bidders will pay, e.g. {family:'uniform', params:{low:2000, high:8000}}.",
"title": "Bidder Value Prior",
"type": "object"
},
"n_bidders": {
"description": "How many bidders you expect.",
"title": "N Bidders",
"type": "integer"
},
"seller_valuation": {
"description": "What the item is worth to YOU, in dollars (your floor).",
"title": "Seller Valuation",
"type": "number"
}
},
"required": [
"bidder_value_prior",
"n_bidders",
"seller_valuation"
],
"title": "gt_auction_optimal_reserveArguments",
"type": "object"
},
"name": "auction_reserve",
"outputSchema": {
"properties": {
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"expected_efficiency_loss": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Expected Efficiency Loss"
},
"expected_revenue": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Expected Revenue"
},
"expected_revenue_no_reserve": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Expected Revenue No Reserve"
},
"rationale": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Rationale"
},
"reserve_price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Reserve Price"
}
},
"title": "AuctionReserveOut",
"type": "object"
}
},
{
"description": "Best price plus markdown schedule to clear stock by a deadline — free, no account or key needed.\n\nUSE THIS WHEN: you must sell a FIXED number of units before a cutoff and\ndemand arrives over time — event tickets, perishable inventory, end-of-life\nstock. NOT for 1:1 haggling (negotiate) or auctions (auction_bid/reserve).\n\nProvide: inventory (units to sell); horizon_seconds (selling window in\nSECONDS — 14 days = 14*24*3600 = 1209600); arrival_rate_per_second (expected\nshoppers per second = expected total shoppers / horizon_seconds); and\nbuyer_arrival_prior — a rough model of willingness-to-pay, e.g.\n{\"family\":\"uniform\",\"params\":{\"low\":40,\"high\":150}}. Returns {static_price\n(one good fixed price), static_expected_revenue, dynamic_schedule (list of\n{t_seconds, recommended_price} markdown waypoints), sellthrough_rate,\nrationale} — all prices in the SAME $ as your prior.\n\nExample: 200 tickets, 14-day window, ~600 shoppers willing to pay $40-$150 ->\nclearance_price(inventory=200, horizon_seconds=1209600,\narrival_rate_per_second=600/1209600,\nbuyer_arrival_prior={\"family\":\"uniform\",\"params\":{\"low\":40,\"high\":150}})\n-> static_price ~$112, schedule marks down $114 -> ~$76 as the deadline nears.\n",
"inputSchema": {
"properties": {
"arrival_rate_per_second": {
"description": "Expected shoppers per SECOND (= expected total shoppers / horizon_seconds).",
"title": "Arrival Rate Per Second",
"type": "number"
},
"buyer_arrival_prior": {
"additionalProperties": true,
"description": "Rough model of buyer willingness-to-pay, e.g. {family:'uniform', params:{low:40, high:150}}.",
"title": "Buyer Arrival Prior",
"type": "object"
},
"horizon_seconds": {
"description": "Selling window in SECONDS (14 days = 14*24*3600 = 1209600).",
"title": "Horizon Seconds",
"type": "number"
},
"inventory": {
"description": "Number of units you must sell before the cutoff.",
"title": "Inventory",
"type": "integer"
},
"n_simulations": {
"default": 2000,
"description": "Monte-Carlo sample count for the estimate (default 2000).",
"title": "N Simulations",
"type": "integer"
},
"seed": {
"default": 42,
"description": "RNG seed for reproducibility (default 42).",
"title": "Seed",
"type": "integer"
}
},
"required": [
"buyer_arrival_prior",
"arrival_rate_per_second",
"inventory",
"horizon_seconds"
],
"title": "gt_mechanism_posted_price_optimalArguments",
"type": "object"
},
"name": "clearance_price",
"outputSchema": {
"properties": {
"dynamic_schedule": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Dynamic Schedule"
},
"dynamic_value_estimate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Dynamic Value Estimate"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"rationale": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Rationale"
},
"sellthrough_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Sellthrough Rate"
},
"static_expected_revenue": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Static Expected Revenue"
},
"static_price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Static Price"
},
"static_simulated_revenue": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Static Simulated Revenue"
}
},
"title": "ClearancePriceOut",
"type": "object"
}
},
{
"description": "Load a memory you saved in an earlier session — retrieval is free.\n\nGet back an encrypted blob you parked earlier (the blind locker) by its\nclaim `ticket`. Returns {ok, blob_b64, size_bytes, expires_at} — the\nciphertext you saved, which only YOU can decrypt. A wrong owner reads as a\nmissing ticket; an expired TTL is `expired`; a lost at-rest key is\n`at_rest_key_unavailable`. Free (the save settled it).",
"inputSchema": {
"properties": {
"api_key": {
"description": "The same SNHP API key you saved under (a different owner reads as a missing ticket).",
"title": "Api Key",
"type": "string"
},
"ticket": {
"description": "The claim ticket returned by memory_save.",
"title": "Ticket",
"type": "string"
}
},
"required": [
"api_key",
"ticket"
],
"title": "store_retrieveArguments",
"type": "object"
},
"name": "memory_load",
"outputSchema": {
"properties": {
"blob_b64": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Blob B64"
},
"charged": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Charged"
},
"code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Code"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"expires_at": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Expires At"
},
"ok": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Ok"
},
"reason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Reason"
},
"size_bytes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Size Bytes"
}
},
"title": "MemoryLoadOut",
"type": "object"
}
},
{
"description": "Persistent memory for your agent across sessions — save now, load in any later session.\n\nYou encrypt before saving; the store holds only ciphertext (blind custody)\nand signs a receipt over its hash — it cannot read your memory.\n\nSaving uses your prepaid wallet; a new key's 50¢ starter credit covers\nyour first saves, and loading it back (memory_load) is free. `blob_b64`\nis YOUR ciphertext as base64 — encrypt BEFORE saving; keys never transit,\ncontents are never logged, so a breach leaks only sealed boxes. Charged a\nthin flat fee ONLY on durable store (empty/oversize/unencodable is\nuncharged). ttl_seconds is clamped to [60s, 7d] and the effective\nexpires_at is returned. The receipt's content_hash is over YOUR\nciphertext, so you can prove what you stored without the store ever seeing\nplaintext.",
"inputSchema": {
"properties": {
"api_key": {
"description": "Your SNHP API key (a new key's 50c starter credit covers first saves).",
"title": "Api Key",
"type": "string"
},
"blob_b64": {
"description": "YOUR ciphertext as base64 — encrypt BEFORE saving; the store holds only the sealed box and cannot read it.",
"title": "Blob B64",
"type": "string"
},
"ttl_seconds": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "How long to keep it, clamped to [60s, 7 days]; the effective expiry is returned (optional).",
"title": "Ttl Seconds"
}
},
"required": [
"api_key",
"blob_b64"
],
"title": "store_parkArguments",
"type": "object"
},
"name": "memory_save",
"outputSchema": {
"properties": {
"charged": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Charged"
},
"code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Code"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"expires_at": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Expires At"
},
"ok": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Ok"
},
"price_millicents": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Price Millicents"
},
"reason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Reason"
},
"receipt": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Receipt"
},
"size_bytes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Size Bytes"
},
"ticket": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Ticket"
},
"ticket_hash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Ticket Hash"
}
},
"title": "MemorySaveOut",
"type": "object"
}
},
{
"description": "Your math-optimal next move in any price negotiation — free, no account or key needed.\n\nUSE THIS WHEN: you're haggling over a single PRICE across multiple back-and-\nforth rounds and want a better outcome than winging it. Validated edge: ~12%\nbetter head-to-head (measured on this recommender, n=20 paired LLM\nnegotiations, 95% CI +6.5-17.4%, p<0.0001). NOT FOR: one-shot or fixed prices\n(it'll tell you to just negotiate directly); multi-issue bundles (use\nnegotiate_bundle — it logrolls across several linked issues); or non-price\ndecisions like accept-vs-decline a job offer (just reason it through).\n\nYou provide only what you already know — no game theory:\n side \"sell\" or \"buy\"\n walk_away your reservation in dollars (seller=floor/minimum, buyer=ceiling/max)\n target your aspiration in dollars (seller=high, buyer=low)\n counterparty_offers their offers so far, in dollars, oldest first\n rounds_left (optional, default 8) roughly how many back-and-forths remain\n compute_ms (optional, default 0; EXPERIMENTAL) milliseconds of Monte-Carlo\n rollouts to spend refining the move. 0 = instant closed form.\n Validated to show NO realized edge over the closed form (n=400,\n mc_validation.py) — kept off by default as a research mechanism,\n not a quality improvement. The reply carries a \"compute\" block\n\nYou get back, in dollars:\n {\"action\": \"counter\"|\"accept\"|\"walk\", \"recommended_price\": 5387.0,\n \"message\": \"...the best I can do is $5,387.00\", \"fit\": {...},\n \"expected_settlement\": 4943.5, \"confidence\": 0.62}\n\nWORKED EXAMPLE — selling a contract, floor $4,000, hope $6,000, the buyer has\nbid $4,200 then $4,500:\n negotiate(side=\"sell\", walk_away=4000, target=6000,\n counterparty_offers=[4200, 4500], rounds_left=6)\n -> counter ~$5,387 with a ready-to-send message; ACCEPT once their bid crosses\n the optimal target; WALK if they stay below your floor near the deadline.\n\nWorks against ANY counterparty with zero setup. (The verified-peer cooperation\npremium is the separate, advanced gt_a2a_* flow on the pro door.)\n",
"inputSchema": {
"properties": {
"compute_ms": {
"default": 0,
"description": "EXPERIMENTAL. Milliseconds of Monte-Carlo rollouts to spend refining the move; 0 = instant closed form (validated to show no realized edge, off by default).",
"title": "Compute Ms",
"type": "integer"
},
"counterparty_offers": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The other side's offers so far, in dollars, oldest first. Omit if they haven't offered yet.",
"title": "Counterparty Offers"
},
"item": {
"default": "this",
"description": "Short label for what's being negotiated (used only in the drafted message).",
"title": "Item",
"type": "string"
},
"my_previous_offers": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Your own offers so far, in dollars, oldest first (optional context).",
"title": "My Previous Offers"
},
"rounds_left": {
"default": 8,
"description": "Roughly how many back-and-forth rounds remain before the deadline (default 8).",
"title": "Rounds Left",
"type": "integer"
},
"side": {
"description": "Which side you are: 'sell' or 'buy'.",
"title": "Side",
"type": "string"
},
"target": {
"description": "Your aspiration price in dollars (seller: high; buyer: low).",
"title": "Target",
"type": "number"
},
"walk_away": {
"description": "Your reservation price in dollars — the worst you'd accept (seller: your floor/minimum; buyer: your ceiling/maximum).",
"title": "Walk Away",
"type": "number"
}
},
"required": [
"side",
"walk_away",
"target"
],
"title": "gt_negotiate_turnArguments",
"type": "object"
},
"name": "negotiate",
"outputSchema": {
"properties": {
"action": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Action"
},
"compute": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Compute"
},
"confidence": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Confidence"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"expected_settlement": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Expected Settlement"
},
"fit": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Fit"
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Message"
},
"rationale": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Rationale"
},
"recommended_price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Recommended Price"
}
},
"title": "NegotiateOut",
"type": "object"
}
},
{
"description": "Negotiate several linked issues at once by logrolling — free, no account or key needed.\n\nUSE THIS WHEN: a deal has more than one issue on the table and they trade off —\na job offer (base + equity + signing), a SaaS contract (price + seats + term +\nSLA), any package deal. It concedes on the issues you care about LESS (and the\nother side cares about MORE) to win the ones you care about most — a trade that\nbeats splitting every issue down the middle. For a single PRICE, use\nnegotiate instead.\n\nProvide `issues`: a list of {\"name\", \"options\" (the choices), \"my_utility\" (how\ngood each option is to YOU — one number per option, any scale), \"their_utility\"\n(how good each option is to THEM — their preference direction)}. Optionally\n`my_priorities` ({issue_name: weight}, how much each issue matters to you) and\n`their_offers` (their packages so far as {issue_name: option}, oldest first —\nthis is what lets it INFER their priorities). Returns {action, recommended_offer\n(issue -> option), message, my_utility, their_expected_utility,\ninferred_their_priorities, trade_logic, fit, confidence, acceptance_probability}.\n\nValidated (separately from the single-issue +12%): returns a Pareto-efficient\npackage that beats naive \"split-every-issue-down-the-middle\" bargaining by ~40%\njoint surplus (300 random 4-issue profiles). HONEST CAVEAT: the priority\nINFERENCE layered on top is weak (recovery r≈0.3) and currently adds only ~1%\n(and can be slightly NEGATIVE against some opponents) over the same engine run\nwith no inference — so the proven value today is the efficient-package search,\nnot (yet) the logrolling edge.\n\nOptional timing refinement: pass `rounds_left` (bargaining rounds remaining)\nwith `compute_ms` > 0 to spend that many ms of Monte-Carlo rollouts choosing\nWHICH package to hold for as the other side concedes over the rounds — a firmer\npackage closes later (discounted) than a generous one. 0 = the instant\nclosed-form package; the reply then carries a `compute` block. Modest by design\n(never worse than the closed form in-model; helps on a minority of deals).\n\nExample: a SaaS contract — you most want a low price_per_seat, can flex on\nseats/term/SLA. negotiate_bundle(issues=[\n {\"name\":\"price_per_seat\",\"options\":[\"$50\",\"$40\",\"$30\"],\"my_utility\":[0,0.5,1],\"their_utility\":[1,0.5,0]},\n {\"name\":\"sla\",\"options\":[\"99%\",\"99.9%\"],\"my_utility\":[0,1],\"their_utility\":[1,0]} ...],\n my_priorities={\"price_per_seat\":0.55,\"sla\":0.1,...}, their_offers=[...])\n -> a full package that gives ground on SLA to hold the price.\n",
"inputSchema": {
"properties": {
"compute_ms": {
"default": 0,
"description": "EXPERIMENTAL. Milliseconds of rollouts to choose WHICH package to hold as they concede; 0 = instant closed-form package.",
"title": "Compute Ms",
"type": "integer"
},
"issues": {
"description": "One dict per issue: {name, options (the choices), my_utility (value of each option to YOU), their_utility (value to THEM)} — utilities are one number per option, any scale.",
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Issues",
"type": "array"
},
"my_batna": {
"default": 0.4,
"description": "Your best alternative to no deal, as a utility fraction in [0,1] (default 0.40); the returned package is guaranteed to beat it.",
"title": "My Batna",
"type": "number"
},
"my_priorities": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "{issue_name: weight} — how much each issue matters to you (any scale). Optional.",
"title": "My Priorities"
},
"rounds_left": {
"default": 8,
"description": "Bargaining rounds remaining (used with compute_ms for the timing tier; default 8).",
"title": "Rounds Left",
"type": "integer"
},
"their_batna_estimate": {
"default": 0.4,
"description": "Your estimate of the other side's BATNA, [0,1] (default 0.40).",
"title": "Their Batna Estimate",
"type": "number"
},
"their_offers": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Packages the other side has tabled, oldest first, each as {issue_name: chosen_option} — lets it infer their priorities.",
"title": "Their Offers"
}
},
"required": [
"issues"
],
"title": "gt_negotiate_bundleArguments",
"type": "object"
},
"name": "negotiate_bundle",
"outputSchema": {
"properties": {
"acceptance_probability": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Acceptance Probability"
},
"action": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Action"
},
"compute": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Compute"
},
"confidence": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Confidence"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"fit": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Fit"
},
"inferred_their_priorities": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Inferred Their Priorities"
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Message"
},
"my_utility": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "My Utility"
},
"recommended_offer": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Recommended Offer"
},
"their_expected_utility": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Their Expected Utility"
},
"trade_logic": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Trade Logic"
}
},
"title": "NegotiateBundleOut",
"type": "object"
}
},
{
"description": "Score how good a deal is against your floor/target — free, no account or key needed.\n\nScore a settled package against the exact Pareto frontier — the SNHP\nleaderboard metric (\"dollars left on the table\") for YOUR negotiation.\n\nArgs:\n issues: one dict per issue: {\"name\": str, \"options\": [labels],\n \"my_utility\": [per-option value to me], \"their_utility\":\n [per-option value to them]} — both sides' TRUE per-option values.\n my_weights: {issue_name: weight} — my true priorities (any scale).\n their_weights: {issue_name: weight} — their true priorities.\n package: the settled deal, {issue_name: option_label}.\n notional: deal size in dollars for the dollars-left framing.\n\nReturns realized joint welfare, the frontier best, the naive middle-split\nbaseline, frontier capture, logroll capture, and dollars_left_on_table.\n",
"inputSchema": {
"properties": {
"issues": {
"description": "One dict per issue: {name, options, my_utility, their_utility} — both sides' TRUE per-option values (one number per option).",
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Issues",
"type": "array"
},
"my_weights": {
"additionalProperties": true,
"description": "{issue_name: weight} — your true priorities (any scale).",
"title": "My Weights",
"type": "object"
},
"notional": {
"default": 10000,
"description": "Deal size in dollars, used for the 'dollars left on the table' framing (default 10000).",
"title": "Notional",
"type": "number"
},
"package": {
"additionalProperties": true,
"description": "The settled deal as {issue_name: chosen_option_label}.",
"title": "Package",
"type": "object"
},
"their_weights": {
"additionalProperties": true,
"description": "{issue_name: weight} — their true priorities (any scale).",
"title": "Their Weights",
"type": "object"
}
},
"required": [
"issues",
"my_weights",
"their_weights",
"package"
],
"title": "score_dealArguments",
"type": "object"
},
"name": "score_deal",
"outputSchema": {
"properties": {
"dollars_left_on_table": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Dollars Left On Table"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"frontier_best": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Frontier Best"
},
"frontier_capture": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Frontier Capture"
},
"joint_welfare": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Joint Welfare"
},
"logroll_capture": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Logroll Capture"
},
"my_utility": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "My Utility"
},
"naive_split": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Naive Split"
},
"their_utility": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Their Utility"
}
},
"title": "ScoreDealOut",
"type": "object"
}
},
{
"description": "Your next move inside a receipted session (single-issue) — no additional charge (the $2 at session_open covered it).\n\nPass the FULL offer history each time, oldest first. Returns move, exact\nprice, ready-to-send message, and the receipt (why[], context_hash,\ndeterministic compute block).",
"inputSchema": {
"properties": {
"api_key": {
"description": "The API key that opened the session.",
"title": "Api Key",
"type": "string"
},
"my_offers": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Your own offer history, in dollars, oldest first (optional).",
"title": "My Offers"
},
"rounds_left": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Bargaining rounds remaining (optional).",
"title": "Rounds Left"
},
"session_id": {
"description": "The session_id returned by session_open.",
"title": "Session Id",
"type": "string"
},
"their_offers": {
"description": "The FULL counterparty offer history, in dollars, oldest first.",
"items": {
"type": "number"
},
"title": "Their Offers",
"type": "array"
}
},
"required": [
"api_key",
"session_id",
"their_offers"
],
"title": "nextmove_adviseArguments",
"type": "object"
},
"name": "session_advise",
"outputSchema": {
"properties": {
"compute": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Compute"
},
"confidence_note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Confidence Note"
},
"context_hash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Context Hash"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Message"
},
"move": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Move"
},
"move_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Move Index"
},
"offer": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Offer"
},
"policy_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Policy Id"
},
"receipt": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Receipt"
},
"why": {
"anyOf": [
{
"items": {},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Why"
}
},
"title": "SessionAdviseOut",
"type": "object"
}
},
{
"description": "Multi-issue logrolled advice inside a receipted session — no additional charge.\n\nThe logrolling tier, the thing the free tool does NOT have. Trade the\nissues you care less about for the ones you value: issues = [{name,\noptions, my_utility (per option), their_utility (your read of their\ndirection)}]; their_offers = packages they've tabled, oldest\nfirst. Returns the recommended package, trade logic, inferred\ncounterparty priorities, acceptance probability, and the receipt.\nDeterministic closed form — no rollout theater. The package is\nguaranteed to clear YOUR stated BATNA (enforced, not promised).",
"inputSchema": {
"properties": {
"api_key": {
"description": "The API key that opened the session.",
"title": "Api Key",
"type": "string"
},
"cooperation": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional cooperation dial in [0,1] biasing toward joint surplus.",
"title": "Cooperation"
},
"issues": {
"description": "One dict per issue: {name, options, my_utility (per option), their_utility (your read of their direction)}.",
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Issues",
"type": "array"
},
"my_batna": {
"default": 0.4,
"description": "Your BATNA as a utility fraction in [0,1] (default 0.40); the package is guaranteed to clear it.",
"title": "My Batna",
"type": "number"
},
"my_priorities": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "{issue_name: weight} — how much each issue matters to you (optional).",
"title": "My Priorities"
},
"session_id": {
"description": "The session_id returned by session_open.",
"title": "Session Id",
"type": "string"
},
"their_batna_estimate": {
"default": 0.4,
"description": "Your estimate of their BATNA, [0,1] (default 0.40).",
"title": "Their Batna Estimate",
"type": "number"
},
"their_offers": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Packages they've tabled, oldest first, each {issue_name: option} (optional).",
"title": "Their Offers"
}
},
"required": [
"api_key",
"session_id",
"issues"
],
"title": "nextmove_bundleArguments",
"type": "object"
},
"name": "session_bundle",
"outputSchema": {
"properties": {
"acceptance_probability": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Acceptance Probability"
},
"confidence_note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Confidence Note"
},
"context_hash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Context Hash"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"message": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Message"
},
"move": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Move"
},
"move_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Move Index"
},
"package": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Package"
},
"receipt": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Receipt"
},
"their_expected_utility": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Their Expected Utility"
},
"why": {
"anyOf": [
{
"items": {},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Why"
}
},
"title": "SessionBundleOut",
"type": "object"
}
},
{
"description": "Close a receipted session and get the signed summary receipt.\n\nOptional — sessions also expire on their own — but closing timestamps the\noutcome, which helps the machine learn real round-counts per\ncategory. Returns the `closed` flag AND a signed session-summary\nreceipt (GAUNTLET #4) — moves count, total charged (one $2 open), and\nthe per-move context_hashes — to hand your principal. An unknown session\nor key mismatch leaves `closed` false and returns an `error` instead of\nthe receipt (indistinguishable, so a session id can't be probed).",
"inputSchema": {
"properties": {
"api_key": {
"description": "The API key that opened the session.",
"title": "Api Key",
"type": "string"
},
"session_id": {
"description": "The session_id to close.",
"title": "Session Id",
"type": "string"
}
},
"required": [
"api_key",
"session_id"
],
"title": "nextmove_closeArguments",
"type": "object"
},
"name": "session_close",
"outputSchema": {
"properties": {
"closed": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Closed"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"receipt": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Receipt"
}
},
"title": "SessionCloseOut",
"type": "object"
}
},
{
"description": "Open a $2 receipted negotiation session: deterministic, replayable, every move signed.\n\nPAID ($2 once, from your credit balance) — the $2 covers EVERY move of\nthis negotiation (up to 10 moves, 7 days), tuned to the category. A new\nkey's 50¢ starter credit is a taste, not enough for a session — top up\nfirst. category: resale | supply | retail. side: buy | sell.\nwalk_away = your true floor (sell) / ceiling (buy) — private,\nnever crossed. Pass their_offers to get the first move back\nimmediately with the session. Subsequent moves: session_advise\nwith the session_id — no further charge.",
"inputSchema": {
"properties": {
"api_key": {
"description": "Your SNHP API key; $2 is debited from its credit balance (covers every move of this one negotiation).",
"title": "Api Key",
"type": "string"
},
"category": {
"description": "Negotiation category for tuning: 'resale' | 'supply' | 'retail'.",
"title": "Category",
"type": "string"
},
"my_offers": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Your own offers so far, in dollars, oldest first (optional).",
"title": "My Offers"
},
"rounds_left": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Bargaining rounds remaining for this move (optional; overrides the category default).",
"title": "Rounds Left"
},
"seed": {
"default": 0,
"description": "RNG seed for the deterministic engine (default 0).",
"title": "Seed",
"type": "integer"
},
"side": {
"description": "Which side you're on: 'buy' or 'sell'.",
"title": "Side",
"type": "string"
},
"target": {
"description": "Your aspiration price in dollars.",
"title": "Target",
"type": "number"
},
"their_offers": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The other side's offers so far, in dollars, oldest first — pass to get the first move back with the session (optional).",
"title": "Their Offers"
},
"walk_away": {
"description": "Your true reservation in dollars — floor (sell) / ceiling (buy); private, never crossed.",
"title": "Walk Away",
"type": "number"
}
},
"required": [
"api_key",
"category",
"side",
"walk_away",
"target"
],
"title": "nextmove_openArguments",
"type": "object"
},
"name": "session_open",
"outputSchema": {
"properties": {
"balance_after": {
"default": null,
"title": "Balance After"
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Category"
},
"context_hash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Context Hash"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"expires_at": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Expires At"
},
"first_move": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "First Move"
},
"first_move_error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "First Move Error"
},
"funding": {
"default": null,
"title": "Funding"
},
"how_to_pay": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "How To Pay"
},
"max_moves": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Moves"
},
"price_cents": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Price Cents"
},
"price_millicents": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Price Millicents"
},
"receipt": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Receipt"
},
"session_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Session Id"
},
"side": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Side"
}
},
"title": "SessionOpenOut",
"type": "object"
}
},
{
"description": "Match two groups by their rankings so no pair wants to swap — free, no account or key needed.\n\nA STABLE matching: USE THIS WHEN you're assigning two sides to each other by\nmutual preference — interns<->teams, students<->schools, mentors<->mentees —\nand want a result with no \"blocking pair\" (no person+slot that both prefer\neach other over what they got).\n\nProvide proposers and receivers, each a list of {\"id\": name,\n\"preferences\": [ids of the OTHER side, most-wanted first]}. Receivers may add\n\"capacity\" (default 1) to accept several. Returns {matching (name -> name),\nunmatched_proposers, blocking_pairs (empty list = provably stable),\nn_proposals}. NOTE: the result is PROPOSER-optimal, so put the side you want\nto favor in `proposers`.\n\nExample: stable_match(\n proposers=[{\"id\":\"Ana\",\"preferences\":[\"Growth\",\"Core\"]},\n {\"id\":\"Ben\",\"preferences\":[\"Core\",\"Growth\"]}],\n receivers=[{\"id\":\"Growth\",\"preferences\":[\"Ben\",\"Ana\"]},\n {\"id\":\"Core\",\"preferences\":[\"Ana\",\"Ben\"]}])\n-> matching {\"Ana\":\"Growth\",\"Ben\":\"Core\"}, blocking_pairs [].\n",
"inputSchema": {
"properties": {
"proposers": {
"description": "List of {id, preferences:[ids of the OTHER side, most-wanted first]}. The result is PROPOSER-optimal — put the side you want to favor here.",
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Proposers",
"type": "array"
},
"receivers": {
"description": "List of {id, preferences:[...], capacity (optional, default 1)}.",
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Receivers",
"type": "array"
}
},
"required": [
"proposers",
"receivers"
],
"title": "gt_mechanism_gale_shapleyArguments",
"type": "object"
},
"name": "stable_match",
"outputSchema": {
"properties": {
"blocking_pairs": {
"anyOf": [
{
"items": {},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Blocking Pairs"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"matching": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Matching"
},
"n_proposals": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "N Proposals"
},
"unmatched_proposers": {
"anyOf": [
{
"items": {},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Unmatched Proposers"
}
},
"title": "StableMatchOut",
"type": "object"
}
},
{
"description": "See what's on the shelf — free, no key needed: prices, predicates, receipt scheme, and your balance.\n\nTHE STORE: one counter, one prepaid wallet, many slots. One read covers\nthe whole shelf — the commodity slots, the blind locker (agent memory),\nand the paid receipted-session SKU (folds in what nextmove_catalog used\nto report separately).\n\nEvery commodity slot settles ON DELIVERY: the wallet is debited only\nwhen a machine-checkable predicate passes — a failed fetch is never\ncharged, because here you cannot pay for nothing. Each receipt names\nthe backend that served and its EXACT wholesale cost (passthrough, no\nper-call markup); the counter's cut is a published fee on wallet\ntop-ups, not on the calls — 5% + a fixed 30¢ per transaction (the 30¢\nis the card rail's own per-transaction toll, passed through).\n\nEvery new key gets a one-time 50¢ starter credit — unconditional, no\ncard — enough to taste the shelf before funding it. Don't see the\ncapability you need? store_request logs it; unmet demand decides what\ngets stocked next. Returns the money unit (millicents, 1000 per cent),\nper-slot {tier, max_price_millicents, predicate_id, request_doc,\nserving-backend ids}, the anchor SKUs, the paid_session card, and the\ntwo pricing facts. Never returns key material.",
"inputSchema": {
"properties": {},
"title": "store_catalogArguments",
"type": "object"
},
"name": "store_catalog",
"outputSchema": {
"properties": {
"admission": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Admission"
},
"counter_fee": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Counter Fee"
},
"counter_fee_pct": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Counter Fee Pct"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"keys": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Keys"
},
"millicents_per_cent": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Millicents Per Cent"
},
"paid_session": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Paid Session"
},
"request_privacy": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Request Privacy"
},
"slots": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Slots"
},
"starter_credit": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Starter Credit"
},
"unit": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
}
},
"title": "StoreCatalogOut",
"type": "object"
}
},
{
"description": "Ask for a capability we don't sell yet — free; filings are public and drive what we stock.\n\nTwo reads in one tool (absorbs the old store_request_status /\nnextmove_request): pass `request_id` to RE-QUERY a filing's status\ninstead of filing anew — returns {found, request_id, status, status_note,\nfiled_at, door, text} (found: false on an unknown id). Without a\nrequest_id it FILES a new ask and returns {request_id, status, watch,\ncheck}: every filing is logged verbatim (size-capped, stored as data,\nnever rendered raw) and gets an id you can come back to (GAUNTLET #5).\nCheck any filing with GET /v1/store/request/{id}; the public count is\nGET /v1/store/requests. Unmet demand decides what gets stocked next — the\nshelf writes itself from what agents ask for and can't get.\n\nPass watch=True WITH an api_key when filing to flag the ask for a heads-up\non a status flip (poll store_my_requests to see it — poll-based, no push);\nan anonymous watch is ignored, and the chosen flag is echoed as `watch`.",
"inputSchema": {
"properties": {
"api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Your SNHP API key (optional; required only if you set watch=True).",
"title": "Api Key"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Pass an existing filing id to RE-QUERY its status instead of filing a new request.",
"title": "Request Id"
},
"text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "What capability you want that we don't stock yet (free-text). Omit when re-querying with request_id.",
"title": "Text"
},
"watch": {
"default": false,
"description": "Set True (with an api_key) to flag the ask for a status-flip heads-up; anonymous watches are ignored.",
"title": "Watch",
"type": "boolean"
}
},
"title": "store_requestArguments",
"type": "object"
},
"name": "store_request",
"outputSchema": {
"properties": {
"check": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Check"
},
"door": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Door"
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Error"
},
"filed_at": {
"default": null,
"title": "Filed At"
},
"found": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Found"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Request Id"
},
"same_ask_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Same Ask Count"
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
},
"status_note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status Note"
},
"text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Text"
},
"watch": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Watch"
}
},
"title": "StoreRequestOut",
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:585f15afceeb2e4a42dbe3c0bbdd68d8cdc8dcfff9156c1176b23693ede13c26 | sha256sum