{"product": "Patient agent: the slow lane (deadline-priced work)", "provider": "TextForAgents LLC", "slug": "patient-agent-slow-lane", "what_it_does": "Submit-a-future API: an operator submits deferrable work with a deadline and quality floor; the scheduler coalesces and dispatches it at batch-shaped cost timing (batch 0.50x / idle 0.25x / sync 1.00x of sync price), admission-controlled (a discount is sold only when a cheaper satisfying window is provably schedulable; otherwise an honest sync quote), with a hash-chained journal of every state transition and a deadline guarantee of dispatch-or-credit \u2014 never a silent miss.", "limits": "v1 execution backends are provider-shaped batch integrations (lab shape) running in-service demonstration tasks (arithmetic/extract/classify/summarize) \u2014 real provider batch integrations are a packet follow-up and gate marketing claims, not this ship. Real deferrable-share trace measurement is likewise a packet follow-up. There is NO payment lane in v1: the one-time trial is the on-ramp; /subscribe quotes and records intent only and never takes payment.", "prices": {"BYOK Slow Lane": {"price": "$9/mo per operator", "trial": "First month free, one-time trial: once per operator account AND once per payer wallet, server-enforced. After the grant, $9/mo applies."}, "Fronted Slow Lane": {"price": "Customer pays 75% of the sync (interactive) price at a 24h deadline; no free allotment; each task's price is quoted per task and floored at planned cost + 5% of sync price."}}, "sync_prices_usd": {"arithmetic": 0.2, "extract": 0.5, "classify": 0.4, "summarize": 1.0}, "how_to_start": "POST /register {account_name, payer_wallet} -> account_id + claim token. POST /trial {account_id, claim_token} -> one-time trial token (shown once, valid 30 days). Authenticated routes use Authorization: Bearer <token>; the token alone is the billing/scoping identity (body or header operator names are ignored). POST /v1/futures {spec:{task_type,payload}, deadline_h, quality_floor, idempotency_key?} -> quoted price + planned lane. GET /v1/futures/<id>, GET /v1/journal (own entries), GET /v1/journal/verify.", "task_payloads": "arithmetic: {a: number, b: number, op: one of '+', '-', '*'} -- word operators such as 'add' or 'multiply' are NOT valid ops. extract: {record: object, key: string}. classify: {text: string}. summarize: {keyword: string, sentences: [string, ...]}.", "scheduling_and_completion": "CLOCK: GET /health returns now_h, the service clock in hours; it advances in real time (1 service-hour = 1 real hour). deadline_h is an ABSOLUTE time on that clock, not a duration from submission. It must be greater than now_h, or POST /v1/futures returns 400 deadline_in_past. There is no fixed minimum deadline (in particular, no 3-hour minimum). PROMPT COMPLETION (sync lane): submit a valid payload (see task_payloads) with a deadline_h too soon for any cheaper window to serve it -- earlier than the next idle signal + 0.35h AND earlier than the next batch window + 0.35h -- and a quality_floor at or below the sync accuracy for the task type (arithmetic 0.99, extract 0.97, classify 0.96, summarize 0.95). Only the sync lane can satisfy such a deadline: planned_lane is 'sync', the price is the full sync price, the work dispatches inside the POST request itself, and the future is already COMPLETED when you GET it (completed_at = dispatch time + 0.1 service-hours). Example shape: at now_h 0.40 submit deadline_h 0.90, quality_floor 0.5, spec {task_type: 'arithmetic', payload: {a: 6, b: 7, op: '*'}} -- it plans sync and completes promptly with result 42. BATCH AND IDLE TIMING (discounted lanes are NOT immediate): idle pools dispatch at the fixed idle signals, service hours 2.0, 8.0 and 14.0; batch pools dispatch at the next 6-hour boundary strictly after submission (6.0, 12.0, 18.0, ...). The POST response field dispatch_at_h IS that dispatch time: an idle future submitted before hour 2 shows dispatch_at_h 2.0, a batch future submitted before hour 6 shows dispatch_at_h 6.0. The future stays PENDING until the service clock reaches dispatch_at_h, then completes (completed_at = dispatch_at_h + 0.1). DEADLINE MINIMUMS PER LANE: sync needs only deadline_h > now_h; idle needs deadline_h >= idle signal + 0.35 (0.1 execution + 0.25 safety); batch needs deadline_h >= batch window + 0.35. If no lane can meet the deadline at your quality_floor, POST returns 422 quality_floor_unsatisfiable. A quality_floor above a lane's accuracy excludes that lane (idle accuracy: arithmetic 0.98, extract 0.90, classify 0.88, summarize 0.85). PRICE BY SLACK (slack = deadline_h - now_h): non-sync quotes charge 75% of the sync price at slack >= 12h, 85% at >= 4h, 92.5% at >= 1h, floored at planned cost + 5% of sync price; the sync lane always charges the full sync price.", "mcp": {"endpoint": "https://textforagents.com/products/patient-agent-slow-lane/mcp", "also_at_base_url": "https://textforagents.com/products/patient-agent-slow-lane", "protocol": "MCP streamable-http (JSON-RPC 2.0): POST /mcp (or POST / at the product base URL) with the same Bearer token \u2014 initialize / ping / tools/list / tools/call", "tools": ["slowlane_submit_future", "slowlane_get_future", "slowlane_list_journal", "slowlane_verify_journal"]}, "support": "support@textforagents.com", "payment_lane": "none in v1 \u2014 see limits"}